减少基于闪存的存储系统中的存取争用技术方案

技术编号:7868264 阅读:189 留言:0更新日期:2012-10-15 02:30
示例性实施例包括一种用于减少基于闪存的存储系统中的存取争用的方法,该方法包括:从具有多个通道和多个存储块的存储设备中选择空闲状态的芯片带,其中,该芯片带包括多个页面;将芯片带设置为写入状态;设置多个通道中的每个通道中的写队列头;对于闪存带中的多个通道的每个通道,将写队列头设置到来自芯片带的属于该通道的芯片中的第一空闲页面;根据写入分配调度器,在通道间分配写入请求;生成页面写入,以及响应于页面写入,递增写队列头;以及当芯片带已满时,将芯片带设置为在线状态。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及基于闪存的存储系统,具体而言,涉及用于减少基于闪存的存储系统中的或与基于闪存的存储系统具有类似属性的其它存储系统中的存取争用的方法和系统 。
技术介绍
闪存是能够被电擦除和重新编程的非易失性计算机存储器。诸如固态驱动器 (SSD)之类的基于闪存的存储设备具有以下硬件特征其中,通常以页面大小的字节片来执行读和写,该字节片通常大小为2到4KB。擦除通常以完整的块执行,其中,一个块通常包括64到128个页面。闪存包括NOR类型和NAND类型。一般而言,存在两种不同类型的 NAND闪存芯片基于单电平单元(SLC)的类型存储一个比特,以及基于多电平单元的类型保持多个电压电平以便存储多于一个的比特。基于SLC的闪存芯片中的4KB页面分别具有典型的25和600 μ s的读取和写入时间。擦除一个完整的块要花费显著较长的时间量,并且在企业级闪存芯片中要花费7ms。这些读取/写入/擦除特征不管工作负荷如何都是有效的。相比之下,在基于硬盘驱动器(HDD)的存储系统中,寻道时间限制了随机存取性能。 然而,在基于闪存的存储设备中,在单元能够被编程(例如,写入)之前必须首先擦除它们。 因此,用来隐藏块擦除等待时间的常见技术是始终错位地写入数据,并推迟对块的擦除,直到启动无用存储单元收集。当发出擦除命令时,芯片忙碌直到操作完成,并且没有办法在此时间期间对此芯片读取或写入,这被称为“阻止擦除”。错位写入策略要求被叫做闪存转换层(FTL, Flash Translation Layer)的一个特殊层,该层保持闪存中的逻辑块地址(LBA, logical block address)和实际物理页面 / 块地址(PBA, physical page/block address) 之间的映射。对基于闪存的存储设备的存取时间仍能够受到延迟变化。图I示出了模拟的现有技术系统的概率密度函数相对于等待时间的图100。图2示出了模拟的现有技术系统的累积分布函数相对于等待时间的图200。图I和2示出了高负荷情况下的闪存模拟器。在示例中,当一个块正被擦除时,对同一个芯片的后续读取请求可能必须等待7ms才能被服务。 类似地,读取请求可被正在进行的写入请求延迟高达600 μ S。这样显著的延迟在某些环境下是不可接受的。另外,某些国家(例如,日本)对于特定IT应用甚至强制最大延迟范围 r5-10ms)。因此,潜在的总延迟可能会超出所要求的延迟范围。此外,传统的DRAM存储技术没有与闪存相同的限制,因此,提供显著的、更加均匀的存取延迟。闪存高速缓存解决方案试图用闪存来替换昂贵的有后备电池的DRAM存储器(被叫做NVRAM)。因此,这样的闪存高速缓存的特征类似于那些存储技术的特征。因此,利用基于闪存的存储技术来提供这样的特征是有益的,但不普通。
技术实现思路
示例性实施例包括一种用于减少基于闪存的存储系统中的或与基于闪存的存储系统具有类似属性的存储系统中的存取争用的方法,该方法包括从具有多个通道和多个存储块的存储设备中选择空闲状态的芯片带,其中,所述芯片带包括多个页面;将所述芯片带设置为写入状态;设置所述多个通道的每个通道中的写队列头;对于闪存带中的多个通道的每个通道,将写队列头设置到来自所述芯片带的属于该通道的芯片中的第一空闲页面;根据写入分配调度器,在通道间分配写入请求;生成页面写入;以及响应于所述页面写入,递增所述写队列头。另外的示例性实施例包括一种用于減少基于闪存的存储系统中的存取争用的计算机程序产品,该计算机程序产品包括用于使计算机实现ー种方法的指令,该方法包括:从具有多个通道和多个存储块的存储设备中选择空闲状态的芯片带,其中,所述芯片带包括多个块,以及块包括多个页面;将芯片带设置为写入状态;设置多个通道的每个通道中的写队列头;对于闪存带中的多个通道的每个通道,将写队列头设置到来自所述芯片带的属于该通道的芯片中的第一空闲页面;根据写入分配调度器,在通道间分配写入请求;生成页面写入;以及响应于所述页面写入,递增所述写队列头。进ー步的示例性实施例包括ー种存储设备,包括具有写入分配调度器的多个通 道、可通信地耦接到多个通道的每个通道的至少ー个芯片带,所述至少ー个芯片带具有空闲状态、写入状态、在线状态和擦除状态,其中,所述至少ー个芯片带被配置成被从所述空闲状态设置为所述写入状态以分配写入请求,并进一歩被配置成被从所述写入状态设置为所述在线状态以服务读取请求。另外的功能和优点通过本专利技术的技术来实现。此处将详细描述本专利技术的其它实施例和方面,它们被视为所要求保护的专利技术的一部分。为了更好地理解具有这些优点和功能的本专利技术,请參阅说明和附图。附图说明在本说明书结尾时在权利要求书中特别指出了并明确声明了被视为本专利技术的主题。通过下面的结合附图对本专利技术进行的详细说明,可以更好地理解本专利技术的前述和其它 特征和优点,其中图I示出了模拟的现有技术系统的概率密度函数相对于等待时间的图;图2示出了模拟的现有技术系统的累积分布函数相对于等待时间的图;图3示出了其中能够实现示例性存取争用減少方法的示例性闪存体系结构;图4示出了显示这里所述的示例性四种状态和相应的转变的示例性状态图;图5示出了根据示例性实施例的用于减少基于闪存的存储系统中的存取争用的方法的流程图;图6示出了示例性无用存储单元收集方法的流程图;以及图7示出了显示图6的进ー步细节的示例性无用存储单元收集方法的流程图。具体实施例方式在各示例性实施例中,这里所描述的系统和方法減少/消除由基于闪存的存储系统的擦除和写入延迟引起的存取争用。这里所描述的示例性实施例作为说明性示例讨论了基于闪存的存储系统。应当理解,在其它示例性实施例中,这里所描述的方法可被应用于在存取时间和阻止写入或擦除操作方面与基于闪存的存储系统具有类似属性的任何存储系统。在各示例性实施例中,基于闪存的存储设备体系结构能够提供针对读取和写入请求的严格延迟范围。另外,该体系结构提供有效的无用存储单元收集和磨损平衡,特别是对于闪存高速缓存解决方案。在各示例性实施例中,此处所描述的系统和方法通过分离读取、写入以及擦除操作,来完全隐藏来自对同一芯片的在先操作的附加延迟。为了使得对芯片的读取和写入免于由对同一个芯片的在先擦除操作引起的附加延迟,读取和写入操作只对没有发生擦除而仍提供对存储的所有信息的存取的芯片执行(即,设备的完全LBA空间)。类似地,能够实现此处所描述的方法,以保护读取操作免受对同一个芯片的在先请求的擦除和写入延迟的不利影响。在各示例性实施例中,使读取操作免受不利影响,实现了其中闪存芯片被附接到通道总线并被分组到通道之中的芯片带的体系结构。此体系结构与利用写入页面分配器和无用存储单元收集算法的基于每通道空闲块队列的写入策略组合。诸如闪存高速缓存或SSD之类的基于闪存的存储设备包括闪存芯片被附接到的若干通道。每个通道具有管理对芯片的所有请求的低复杂度通道控制器。通道被专用通道控制器控制,所述通道控制器对芯片执行读取、写入以及擦除操作,并可能执行诸如添加或验证纠错信息的其它操作。通道控制器由主控制器控制,该主控制器执行诸如LBA到PBA 映射、无用存储单元收集、空闲块和坏块管理之类的主要任务。图3示出了其中可以实现示例性存取争用减少方法的示例性闪存体本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2009.12.15 US 12/637,8971.一种用于减少存储芯片中的存取争用的方法,所述方法包括 从具有多个通道和多个存储块的存储设备中选择空闲状态的芯片带,其中,所述芯片带包括多个页面; 将所述芯片带设置为写入状态; 设置所述多个通道中的每个通道中的写队列头; 对于所述芯片带中的所述多个通道中的每个通道, 将写队列头设置到来自所述芯片带的属于该通道的芯片中的第一空闲页面; 根据写入分配调度器,在所述通道间分配写入请求; 生成页面写入; 响应于所述页面写入,递增所述写队列头;以及 当所述芯片带已满时,将所述芯片带设置为在线状态。2.如权利要求I所述的方法,进一步包括触发无用存储单元收集。3.如权利要求I所述的方法,其中,所述多个存储块以与所述存储芯片上的所述多个存储块的相应地址相同的顺序,被保持在所述存储芯片上的空闲块队列中。4.如权利要求2所述的方法,其中,响应于所述芯片带是被改变为所述写入状态的最后一个空闲芯片带,触发无用存储单元收集。5.如权利要求2所述的方法,其中,响应于达到所述存储芯片上的空闲状态芯片带的预定阈值,触发无用存储单元收集。6.如权利要求2所述的方法,其中,响应于所述存储块变满,触发无用存储单元收集。7.如权利要求2所述的方法,其中,无用存储单元收集包括 将所述芯片带设置为清理状态; 对于所述多个页面中的每个页面 读取页面元数据和LBA到PBA映射信息; 响应于所述页面有效, 读取完整的页面数据; 获取所述页面的目标位置; 将页面数据写入到新位置; 将所述芯片带设置为擦除状态; 擦除所述芯片带中的所有块; 将所述芯片带设置为空闲状态。8.一种用于减少存储芯片中的存取争用的计算机程序产品,所述计算机程序产品包括用于使计算机实现一种方法的指令,所述方法包括 从具有多个通道和多个存储块的存储设备中选择空闲状态的芯片带,其中,所述芯片带包括多个页面; 将所述芯片带设置为写入状态; 设置所述多个通道中的每个通道中的写队列头; 对于所述芯片带中的所述多个通道中的每个通道, 将写队列头设置到来自所述芯片带的属于该通道的芯片中的第一空闲页面; 根据写入分配调度器,在所述通道间分配写入请求;生成页面写入; 响应于所述页面写入,递增所述写队列头;以及 当所述芯片带已满时,将它设置为在线状态。9.如权利要求8所述的计算机程序产品,其中,递增所述写队列头包括将所述写队列头设置到来自所述多个存储块的存储块中的下一个空闲页面。10.如权利要求8所述的计算机程序产品,其中,所述方法进一步包括触发无用存储单元收集。11.如权利要求8所述的计算机程...

【专利技术属性】
技术研发人员:E·S·埃列夫特里奥R·哈斯P·米勒R·A·普莱卡
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1