我做的网站不知道网站怎么办,国内服务器,东坑镇网站建设,临桂区建设局网站作者通过SimpleSSD仿真模型#xff0c;采用SLCQLC混合模式来开展进一步的验证工作。评估过程中#xff0c;当写入请求到达固态硬盘时#xff0c;首先会被写入缓存#xff08;DRAM#xff09;#xff0c;然后才被回写到NAND。文中引入了一个名叫做LRU(Least Recently Used…作者通过SimpleSSD仿真模型采用SLCQLC混合模式来开展进一步的验证工作。评估过程中当写入请求到达固态硬盘时首先会被写入缓存DRAM然后才被回写到NAND。文中引入了一个名叫做LRU(Least Recently Used)识别数据热度以便将热点数据和冷数据分别写入SLC和QLC区域。与页面大小对齐的写入请求会被立即写入SSD而小于16KB的IO请求则暂时保留在缓存等待与后续的IO聚合。 同时为了对比不同的workload差异论文中提供了10个workload压力模型。 在QLC NAND闪存中由于需要等待一层中的所有字线WLs完成粗略编程后才能进行精细编程因此这个时间间隔在写操作过程中是无法忽略的。研究结果显示QLC闪存中两次编程步骤间的平均时间要远大于3D TLC闪存中编写一层所需的时间。 不同工作负载之间的时间间隔表现出显著变化这主要是由于这些工作负载间写请求平均大小的巨大差异所导致。例如Src2_2和Proj_0这类具有与页面大小相同的小型子请求的工作负载在数据立即被写入底层NAND闪存的情况下其经过时间较短。大多数工作负载的平均经过时间接近50ms最坏情况下甚至可能超过300ms。在这样长的时间段内由于数据更新操作发生无效编程问题的可能性非常高。
论文提到影响无效编程严重程度的四个关键因素 缓存大小 Block块大小即一个块中包含的页数 Open Block计数SSD中可以并行写入的最大块数 LRU长度用于区分冷热数据
通过改变评估存储系统的这些参数研究发现无效编程问题在基于3D QLC的存储系统中普遍存在。具体来说两次编程步骤之间被无效化的页面数量定义为“Invalid Page Count”完成第一步编程的页面数量定义为“Page Count”而无效比例Invalid Ratio则根据这两个指标计算得出。 此外文中还提出另外一个参数“回写比例”。所有写请求所涉及的总页数为“Request Page Count”即请求页面计数。同时写到底层NAND闪存的实际页数定义为“Write Back Page Count”。 这个写回比例有助于量化存储系统处理写请求时实际需要对NAND闪存执行编程操作的数据量以及缓存系统如何有效地吸收和管理这些写入数据从而影响整体性能和闪存寿命。随着缓存大小、块大小以及开放块数量等参数的变化写回比例也会发生变化这会直接影响无效编程的发生情况。
缓存大小对无效编程Invalid Programming也有非常大的影响。在3D QLC NAND闪存中由于采用两步编程规则小于Page Size的IO请求首先被写入缓存随后回写到底层存储设备。当缓存达到其容量上限时会使用LRULeast Recently Used替换算法来淘汰较冷数据并将其写回到闪存内存中。 实验结果表明在大多数情况下随着缓存大小的增加无效比率Invalid Ratio也随之增长。这是因为更大的缓存可以容纳更多的写请求导致更少的数据需要写到底层闪存中。 对于诸如Prxy_0和Wdev_0这类平均IO请求小于Page Size的工作负载来说部分写请求会被缓存吸收写入NAND的比例较低。
简而言之缓存的大小与无效比率的增长密切相关缓存越大能暂存的待处理冷数据越多进而可能导致无效编程现象增多。