![](https://csdnimg.cn/release/download_crawler_static/88804963/bg7.jpg)
ACM Transactions on Storage,Vol.号144、第三十二条。出版日期:2018年12月
但是当写入频率高时不能忽略,因为每次写入都会弄脏CMT条目。回写操作是昂
贵的,因为它在闪存上引入了写操作,与RAM访问相比,写操作具有显著更高的
延迟更糟糕的是,如果没有空闲块可供写入,闪存写入也可能考虑到地址转换数
据的垃圾收集和块写入的成本,DFTL回写操作是其高地址转换开销的重要贡献
者。映射加载对于所有写操作是必要的,并且对于当CMT未命中发生时的读操作
是必要的因此,对于时间局部性较差的工作负载,与时间局部性良好的工作负载
相比,对闪存的读写操作大约是其两倍(参见图2)。
2.4 地址转换的优化
为了减轻地址转换的开销,原始DFTL设计使用
延迟复制
和
批量更新
技术来延迟写
入闪存的映射更新并减少写入闪存的次数当垃圾收集选择受害者数据块时,在受
害者准备好被擦除之前,任何有效数据都应该被移动到新的块由于数据移动,映
射信息应在CMT(如果缓存)和翻译页面(闪存)中更新。
延迟复制
方案仅更新
CMT中的映射信息,并且稍后
批量更新
方案将脏映射条目批量写入翻译页由于大
量映射条目共同位于同一转换页面上,因此可以在对转换页面的单个页面写入中
组合许多更新,从而显著减少闪存写入计数。
即使延迟复制和批量更新方案能够减少地址转换开销,但它们仅适用于垃圾收
集或写入操作,而不适用于数据读取。在这项工作中,我们扩展了懒惰复制和批
量更新的使用所有写操作。如写入请求处理序列的步骤4所示,一旦写入完成,映
射条目就被更新到CMT和转换页中在采用延迟复制和批量更新之后,在步骤4中仅
更新CMT,并且条目被标记为脏。稍后,脏条目可以批量更新到闪存中的翻译页
面
2.5
解耦合地址转换
延迟复制和批量更新减少了翻译开销,但它们只适用于步骤4 在写操作(映射加
载)中。它们对读写操作的回写和读取的映射加载没有帮助。但是,我们可以通过优
化地址转换来优化这些操作。
在图3中,案例1和案例2比较了DFTL地址转换和数据访问的成本与理想页面映射
方法的成本,在理想页面映射方法中,整个页面映射表保存在板载DRAM中。该图
显示了SSD处理三个传入IO请求R1、R2和R3时的时间轴在这两种情况下,地址转
换必须在数据访问之前发生,我们假设内部并行性允许并行访问数据页对于页面
映射(情况1),与访问数据所需的时间相比,地址转换所需的时间非常小,因为
地址转换信息保存在设备上的DRAM中。相反,对于DFTL(情况2),地址转换涉
及长延迟闪存访问,其持续时间可以与数据访问本身的持续时间相在没有重新排
序的先进先出(FIFO)调度的情况下,地址转换操作和数据访问不能同时进行,
因为转换操作在数据访问之间交错地址转换和数据访问操作必须在未修改的DFTL
方法中顺序发生