包括交叉切换器的用于闪存的存储控制器制造技术

技术编号:8801072 阅读:163 留言:0更新日期:2013-06-13 05:45
提供了一种设计为与闪存存储模块一起使用的控制器,包括设计来将多个内部处理器与包括多个内部存储器的各种内部资源连接的交叉切换器。存储器包含用于处理器的工作列表。在一个实施例中,处理器通过使用交叉切换器在其它处理器的工作列表上放置任务来通信。

【技术实现步骤摘要】

这里所描述的专利技术涉及数据存储领域,特别涉及使用固态非易失性存储器件的数据存储应用。该技术特别相关于包含部署在大型数据中心的多用户计算和存储平台的高性能企业系统,但其也可应用于较小规模的企业应用和最终用户大容量存储。
技术介绍
目前企业级的大容量存储依靠硬盘驱动器,所述硬盘驱动器的典型特征为3.5英寸形状因子,15000rpm的转轴马达、以及73GB和450GB之间的存储容量。该机械设计与带有单个致动器与横穿8个表面移动的8个读/写头的传统硬盘驱动器相同。头(head)/介质技术的约束将读/写能力限制为每次仅一个有效头。发送到该驱动器的所有数据请求被以串行的方式处理,这在每个如致动器将读/写头移动到所需位置、以及介质旋转以将数据置于读/写头下的操作之间导致很长的延迟。由于等待致动器的请求队列,系统观察到响应时间增加到用户不可忍受的程度。大容量存储系统已经通过限制对每个驱动器的未决请求的数量来适应该问题。这具有这样的效果:即使这些驱动器具有高至450GB的容量,也将每个驱动器的有效和可用的容量降低到每个驱动器12GB。随之,该较低的容量恶化了分层空间、冷却与功率的问题,对企业级的大容量存储系统,所有这些都变得极为成问题。为了试图减轻这些问题,该行业转向2.5英寸的驱动器。然而,虽然较小的形状因子在相同空间中允许更多数量的驱动器,但硬盘驱动器操作的串行性质意味着即使较小形状因子的驱动器也存在严重的空间、冷却与功率的问题。因为闪存系统没有与硬盘驱动器关联的机械延迟,从而允许更高的性能以及相当低的成本、功率、发热与空间使用,所以在企业级存储环境中,闪存很有吸引力。然而,传统上,由于某些技术限制,闪存未被用于这样的环境中。第一个技术问题是写速度,其可以低至机械硬盘驱动器的写速度的十分之一。这是由于这样的事实:如果在写之前没有很长的擦除周期,数据就不能被覆写在NAND闪存上。因为擦除周期直接影响写性能,所以,大多数闪存设计将写数据移动到新位置,并将擦除延迟到以后。在繁忙的系统中,所延迟的擦除周期可逐步增大,直到处理器耗尽了空闲闪存页面而不得不停下来创建新页面为止,因此非常影响系统的性能。第二个技术问题是对于每个闪存页面的特定限制:对“单层单元”(“SLC”)器件来说,100000个擦除周期;对“多层单元”(“MLC”)器件来说,10000个周期。这些对以不可预见的数据流操作的数据中心造成可以引起“热点”的特殊问题,产生存储器中某些遭受大量次数的擦除而被高度使用的区域。第三个问题是数据丢失,其可以由于各种影响闪存的因素而发生,所述因素包括读干扰或程序干扰,它们导致由与被干扰的单元相邻的存储器单元的读或写弓I起的数据比特的丢失。由于时间的流逝,闪存单元的状态可能也以不可预见的方式改变。这些技术问题对闪存在高容量、高性能的存储应用中的使用产生严重的问题。在每种情况中,存在技术解决方案,但这些解决方案对通常包括单个处理器的标准闪存控制器中可用的处理能力施加了很大的压力。该压力使得很难克服这些环境中的技术问题。
技术实现思路
在一个实施例中,所描述的对闪存的性能限制的解决方案包括在控制器设计中使用多个微处理器,由此创建多个并行的独立流水线,每个流水线都能够处理单个事务的一部分。该设计最大化主机和闪存接口的使用,并允许单个事务被分解为许多小部分,这些小部分可以被重新排序并被并行地处理,以提高性能。设计该结构来允许多个处理器在不使用代价高且无效率的中断的情况下执行它们的功能。并行流水线的使用允许控制器有效地掩盖闪存的使用中固有的写等待时间。此夕卜,多个独立处理器的使用提供足够的处理能力来处理由解决上述寿命和错误问题所施加的系统开销。通过将主机发起的事务分解为大量独立闪存读写,这里所描述的控制器结构允许在使用传统控制器设计中不可能的高水平性能。根据本专利技术的一个实施例,提供了在掉电之后重建在闪存控制器中使用的元数据的方法,包括以下步骤:(a)将包含关于闪存中的第一块的元数据的第一表从闪存复制到易失性存储器,每个块包括闪存的多个页,其中该第一表包含对于闪存中的一系列物理位置的每个的逻辑地址;(b)基于一个或多个指示符,确定闪存中的第一块在掉电时是开放的、关闭的还是被擦除的;(C)如果第一块是被擦除的,则将第一块的标识符放置在存储器结构中,该存储器结构包含可以被写入的闪存块的标识;(d)如果第一块是关闭的,则对于多个闪存页的每个进行以下子步骤,每个这样的页是第一闪存块的部分,该第一表包含每个这样的页的元数据:(1)从该第一表读取逻辑地址;(2)确定是否在易失性存储器的第二表中发现对应于该逻辑地址并且与第二块相关联的条目,该第二表包含一系列逻辑地址的每个在闪存中的物理位置信息;(3)如果未发现这样的条目,则将易失性存储器中的第一有效位设置到指示存储在第一页中的第一数据有效的状态;(4)如果发现这样的条目,则进行以下子步骤:1.从第一表读取与第一块的关闭时间有关的第一时间戳;i1.将该第一时间戳与易失性存储器中存储的第二时间戳相比较,该第二时间戳与该第二块的关闭时间有关如果该比较指示该第一数据更早被写入,则将该第一有效位设置到指示第一数据无效的状态如果该比较指示该第一数据更晚被写入,则将易失性存储器中的第二有效位设置到指示第二数据无效的状态;(e)如果第一块是开放的,则从该第一块读取与该第一块内的每页相关联的元数据,并使用该元数据来填充该第一表。根据本专利技术的另一实施例,提供了闪存装置,包括非易失性存储介质,并且还包括:用于将包含关于闪存中的第一块的元数据的第一表从闪存复制到易失性存储器的部件,每个块包括闪存的多个页,其中该第一表包含对于闪存中的一系列物理位置的每个的逻辑地址;用于基于一个或多个指示符确定闪存中的第一块在掉电时是开放的、关闭的还是被擦除的部件;用于如果该第一块是被擦除的、则将第一块的标识符放置在存储器结构中的部件,该存储器结构包含可以被写入的闪存块的标识;用于如果第一块是关闭的、则对于多个闪存页的每个进行以下子步骤的部件,每个这样的页是第一闪存块的部分,该第一表包含每个这样的页的元数据:(1)从该第一表读取逻辑地址;(2)确定是否在易失性存储器的第二表中发现对应于该逻辑地址并且与第二块相关联的条目,该第二表包含一系列逻辑地址的每个在闪存中的物理位置信息;(3)如果未发现这样的条目,则将易失性存储器中的第一有效位设置到指示存储在第一页中的第一数据有效的状态;(4)如果发现这样的条目,则进行以下子步骤:1.从第一表读取与第一块的关闭时间有关的第一时间戳;i1.将该第一时间戳与易失性存储器中存储的第二时间戳相比较,该第二时间戳与该第二块的关闭时间有关如果该比较指示该第一数据更早被写入,则将该第一有效位设置到指示第一数据无效的状态如果该比较指示该第一数据更晚被写入,则将易失性存储器中的第二有效位设置到指示第二数据无效的状态;用于如果第一块是开放的、则从该第一块读取与该第一块内的每页相关联的元数据并使用该元数据来填充该第一表的部件。附图说明图1图示包含SSD( “固态驱动器”)控制器和闪存的系统。图2图示用于将主机命令转换为闪存读和写的数据结构的分级结构。图3更详细地图示了图1的系统。图4以高级别图示了主机读操作。图5以高级本文档来自技高网
...

【技术保护点】
一种在掉电之后重建在闪存控制器中使用的元数据的方法,包括以下步骤:(a)将包含关于闪存中的第一块的元数据的第一表从闪存复制到易失性存储器,每个块包括闪存的多个页,其中该第一表包含对于闪存中的一系列物理位置的每个的逻辑地址;(b)基于一个或多个指示符,确定闪存中的第一块在掉电时是开放的、关闭的还是被擦除的;(c)如果第一块是被擦除的,则将第一块的标识符放置在存储器结构中,该存储器结构包含可以被写入的闪存块的标识;(d)如果第一块是关闭的,则对于多个闪存页的每个进行以下子步骤,每个这样的页是第一闪存块的部分,该第一表包含每个这样的页的元数据:(1)从该第一表读取逻辑地址;(2)确定是否在易失性存储器的第二表中发现对应于该逻辑地址并且与第二块相关联的条目,该第二表包含一系列逻辑地址的每个在闪存中的物理位置信息;(3)如果未发现这样的条目,则将易失性存储器中的第一有效位设置到指示存储在第一页中的第一数据有效的状态;(4)如果发现这样的条目,则进行以下子步骤:i.从第一表读取与第一块的关闭时间有关的第一时间戳;ii.将该第一时间戳与易失性存储器中存储的第二时间戳相比较,该第二时间戳与该第二块的关闭时间有关;iii.如果该比较指示该第一数据更早被写入,则将该第一有效位设置到指示第一数据无效的状态;iv.如果该比较指示该第一数据更晚被写入,则将易失性存储器中的第二有效位设置到指示第二数据无效的状态;(e)如果第一块是开放的,则从该第一块读取与该第一块内的每页相关联的元数据,并使用该元数据来填充该第一表。...

【技术特征摘要】
2007.12.27 US 61/017,123;2008.04.08 US 12/082,2071.一种在掉电之后重建在闪存控制器中使用的元数据的方法,包括以下步骤: (a)将包含关于闪存中的第一块的元数据的第一表从闪存复制到易失性存储器,每个块包括闪存的多个页,其中该第一表包含对于闪存中的一系列物理位置的每个的逻辑地址; (b)基于一个或多个指示符,确定闪存中的第一块在掉电时是开放的、关闭的还是被擦除的; (C)如果第一块是被擦除的,则将第一块的标识符放置在存储器结构中,该存储器结构包含可以被写入的闪存块的标识; (d)如果第一块是关闭的,则对于多个闪存页的每个进行以下子步骤,每个这样的页是第一闪存块的部分,该第一表包含每个这样的页的元数据: (O从该第一表读取逻辑地址; (2)确定是否在易失性存储器的第二表中发现对应于该逻辑地址并且与第二块相关联的条目,该第二表包含一系列逻辑地址的每个在闪存中的物理位置信息; (3)如果未发现这样的条目,则将易失性存储器中的第一有效位设置到指示存储在第一页中的第一数据有效的状态; (4)如果发现这样的条目,则进行以下子步骤: 1.从第一表读取与第一块的关闭时间有关的第一时间戳; .将该第一时间戳与易失性存储器中存储的第二时间戳相比较,该第二时间戳与该第二块的关闭时间有关; ii1.如果该比较指示该第一数据更早被写入,则将该第一有效位设置到指示第一数据无效的状态; iv.如果该比较指示该第一数据更晚被写入,则将易失性存储器中的第二有效位设置到指示第二数据无效的状态; (e)如果第一块是开放的,则从该第一块读取与该第一块内的每页相关联的元数据,并使用该元数据来填充该第一表。2.如权利要求1的方法,其中: (d)(3)还包括将物理地址信息写到易失性存储器,该地址信息包括闪存中的第一数据的地址信息。3.如权利要求2的方法,其中: 该物理地址信息被写到该易失性存储器中的该第二表中的条目。4.如权利要求1的方法,其中: 关于由多个闪存器件组成的第一闪存组实行步骤(a) - (e),以及 关于由多个闪存器件组成的第二闪存组独立地实行相同的步骤,对该第一闪存组的步骤和对该第二闪存组的步骤并行进行。5.如权利要求4的方法,其中: 关于由多个闪存器件组成的第三、第四、第五、第六、第七和第八闪存组独立地实行步骤(a)_ (e),对所有八个闪存组的步骤并行进行。6.如权利要求4的方法,其中: 闪存中的每个块包括在多个分离的闪存器件上的存储器位置。7.如权利要求6的方法,其中: 闪存的每个块可作为单位由闪存控制器擦除。8.如权利要求7的方法,其中: 每页包括在多个分离的闪存器件上的分离的存储器位置。9.如权利要求8的方法,其中: 每页包括多个快闪页,每个快闪页存储在分离的闪存小片上。10.如权利要求3的方法,其中: 在步骤(e)填充第一表之后,对第一块的每页进行步骤(d) (O- (4)。11.如权利要求1的方法,其中: 步骤(d) (4) (iii)还包括将物理地址信息写到易失性存储器,该地址信息包括闪存中的第二数据的地址信息。12.如权利要求11的方法,其中: 该物理地址信息被写到该第二表中。13.如权利要求12的方法,其中: 该物理地址信息被写到的第二表位置是对于逻辑地址的第二表中的条目。14.一种闪存装置,包括非易失性存储介质,并且还包括: 用于将包含关于闪存中的第一块的元数据的第一表从闪存复制到易失性存储器的部件,每个块包括闪存的多个页,其中该第一表包含对于闪存中的一系列物理位置的每个的逻辑地址...

【专利技术属性】
技术研发人员:道格拉斯普林斯阿伦奥尔布里科
申请(专利权)人:桑迪士克企业知识产权有限责任公司
类型:发明
国别省市:

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

1