论文部分内容阅读
随着互联网、多媒体和传感器等技术的飞速发展,全球信息量呈指数级增长。信息社会的数字化进程对数据存储规模和数据服务能力的要求不断提高,而传统存储系统的能力明显落后于计算能力的趋势却愈演愈烈。非易失固态存储介质的出现改变了传统磁盘通过机械部件进行数据访问的特性,带来了存储技术的革命性变化。闪存(Flash Memory)作为固态存储介质的一种,具有低延迟、低功耗、高并行度等优势,发展最为迅速,具有广阔的应用前景。本文针对基于闪存的大容量存储设备,从缓存管理、存储管理、I/O队列调度和操作并行化等方面对设备内部多级并行硬件的访问控制技术展开研究。本文的主要工作及创新点如下:1.提出了一种具有通道感知和重排序机制的缓存管理策略(第二章)目前,基于闪存的存储设备内部通常包含一个数据缓存,从主机到来的数据首先被写入缓存,然后才会被写入底层的闪存存储介质。基于闪存的缓存管理必须适应闪存介质独有的存储特性,以及闪存设备的系统结构。传统的基于闪存的缓存管理策略普遍缺乏对并行硬件结构的支持,现有的两种并行化缓存策略也缺乏考虑并行化后数据页面的分布对内部管理操作的影响。本研究针对以上问题,提出了一种新的具有通道感知和重排序机制(Channel-Aware Write Reordering,CAWR)的缓存结构及其相应的缓存替换策略,CAWR在缓存中使用一个重排序区域对即将从缓存中淘汰的页面进行排序,同时使用多发射机制将多个无关的数据同时写入多个并行部件。因此,CAWR策略适用于并行硬件体系结构。此外,由于重排序的过程能够识别和维护写的空间局部性,因此能够减少垃圾回收的开销。最后,由于CAWR只会改变被认为是冷数据的页面的淘汰顺序,以此能够维持相对较高的缓存命中率。本项工作的创新点体现在具有重排序区结构的缓存设计。2.提出了一种基于非均衡通道调度的多通道闪存转换层设计(第三章)为了获得更高的访问带宽和更大的存储容量,当前闪存存储设备内部使用多条独立的并行通道将多块闪存芯片组织成闪存阵列。而为这一架构所设计的闪存转换层除了隐藏底层物理介质的存储特性以外,还必须能够维护通道间的负载均衡,同时提高闪存操作的并行性和通道的利用率。另外,闪存转换层本身的存储管理任务会产生额外的开销,影响设备对主机I/O请求的响应服务。为了避免存储管理任务可能造成的对I/O请求服务的阻塞,本章提出了一种基于非均衡通道调度的多通道闪存转换层(Multi-channel FTL with Unbalanced channel management,U-MFTL)设计。U-MFTL采用分层的设计思想,通道级闪存转换层在每个通道内部管理存储介质空间,设备级闪存转换层通过一个调度器在独立通道之间进行调度。本项工作的创新之处在于通过非均衡的通道调度策略,既避免将主机请求调度到正在忙于内部任务的通道,同时也避免在多个通道上同时触发多个内部管理任务的执行。3.提出了一种利用微结构级并行性的I/O命令队列机制(第四章)闪存芯片内部的多个Die,以及Die内部的多个Plane之间存在微操作级的并行,闪存芯片制造商在芯片内除了实现基本的Read、Program、Erase操作外,还提供几种高级指令模式。高级指令利用芯片内部的并行性来提高操作执行的效率。但是,硬件并行指令的使用受到操作种类和操作地址的约束,因此增加了将基本指令打包成高级并行指令的命令调度工作的难度。另一方面,现有的研究成果中通常利用条带化的地址分配机制实现对芯片内部微结构级并行性的利用,但是由于FTL无法获知硬件资源的使用情况,条带化的静态分配策略可能存在由硬件资源竞争引起的硬件利用率低的问题,而现有的命令队列机制无法解决这一问题。本研究以简化调度算法和增加并行化为目标,提出了一种能够进一步挖掘闪存芯片内部Die级并行性的平铺式命令队列机制(Tiled Multi-line command Queue,TMQ),以及以队列资源为依据的动态地址分配机制。TMQ为每个芯片建立一条多行结构的命令队列,可以将不同地址上不同种类的操作分离开来,因此更易于并行硬件指令的封装。而以命令队列的资源剩余情况为依据的地址分配策略能够产生更多的可被并行化的操作,因此提高了硬件资源的利用率。4.提出了一种并行化垃圾回收操作序列的方法(第五章)由于闪存设备内部包含多级硬件并行性,因此对闪存操作的并行化是提高设备性能的关键。现有的研究成果通过把主机的访问请求分割成子请求序列,同时将子请求分别调度到不同的并行硬件部件上实现I/O请求的并发。但是,已有的工作极少涉及对内部垃圾回收过程所产生的那部分额外操作的并行化。一次垃圾回收过程产生一串包括读、写和擦除在内的操作序列,这串操作序列具有相当可观的执行开销。本研究针对垃圾回收的开销,提出了一种新的切片式垃圾回收策略(Subdivided Garbage Collection,SGC)。SGC将一次垃圾回收过程的执行范围限制在单个芯片之内,因此垃圾回收和对主机访问请求的服务能够在不同的芯片上并行进行。同时,垃圾回收的操作序列被拆分成子操作串,操作串通过重新排序后进入命令队列,成为芯片并行硬件指令的一部分,从而实现了垃圾回收操作的并行化。在并行化过程中,SGC还设计了一种新的可以检测硬件竞争的地址分配机制,消除主机请求和垃圾回收操作对关键硬件资源的竞争,因此增加了能够被并行化的操作,提高了硬件执行效率。