固态驱动器中的原子写入命令支持的制作方法

文档序号:9401919阅读:290来源:国知局
固态驱动器中的原子写入命令支持的制作方法
【专利说明】
【背景技术】
[0001]由于固态驱动器(SSD)中闪速存储器的本质,数据通常由页进行编程并且以块擦除。在SSD中的页一般大小是8-16千字节(KB),而块包含大量页(例如,256或512)。因此,SSD中特定的物理位置(例如,页)不能直接进行覆写,而不覆写相同块中页内的数据,这在磁性硬盘驱动中是可能的。这样,需要间接地址。传统的数据存储设备控制器管理数据存储设备上的闪速存储器并且与主机系统连接,其使用作为闪存转换层(FTL)的一部分的被称为逻辑块寻址(LBA)的逻辑到物理(L2P)映射系统。当新数据代替已经写入的较旧数据时,数据存储设备控制器使得新的数据写在新位置(因为数据存储设备不能直接覆写旧数据),并且更新逻辑映射以指向新的物理位置。此时,旧的物理位置不再保存有效数据。这样,旧的物理位置将最终需要在能够被再次写入之前被擦除。
[0002]通常,大的L2P映射表将逻辑条目映射到SSD上的物理地址位置。当写入到来时,该大的L2P映射表通常被保存在小段中。例如,如果发生随机写入,虽然系统可能不得不只更新一个条目,但是仍然必须要保存整个表或其部分,包括未被更新的条目,这是固有低效的。
[0003]图1示出了用于数据存储设备的传统逻辑块寻址(LBA)方案的方面。如图所示,映射表104包括针对数据存储设备的闪速存储器106定义的每一个逻辑块102的一个条目。例如,支持512字节逻辑块的64GB数据存储设备可以将自己呈现给主机作为具有125,000, 000个逻辑块。映射表104中的一个条目包括闪速存储器106中的125,000个逻辑块中每一个的当前位置。在常规的数据存储设备中,闪存页保存有整数个逻辑块(即,逻辑块不跨闪存页)。在该常规示例中,8KB闪存页将保存有16个(大小为512字节的)逻辑块。因此,逻辑到物理映射表104中的每一个条目包含识别在其上存储有LBA的管芯的字段108,识别在其上存储有LBA的闪存块的字段110,识别闪存块内的闪存页的另一字段112,以及识别用于识别LBA数据开始于所识别出的闪存页中何处的闪存页内的偏移的字段114。映射表104的大尺寸防止该表被保存于SSD控制器内。照惯例,大的映射表104被保存在与SSD控制器连接的外部DRAM中。由于映射表104存储在易失性DRAM中,所以其必须在SSD加电时恢复,因为表的大尺寸,这将花费很长时间。
[0004]当写入逻辑块时,更新映射表104中的相对应的条目以反映逻辑块的新位置。当读取逻辑块时,读取映射表104中的相对应的条目以确定在闪速存储器中将要读取的位置。然后针对在映射表104中相对应的条目指定的闪存页来执行读取。当所读取的数据对于闪存页可用时,将在映射条目指定的偏移处的数据从闪存设备传送到主机。当写入逻辑块时,保存有“旧”版本数据的闪速存储器变成“垃圾”(即,数据不再有效)。需要注意的是,当写入逻辑块时,闪速存储器将初始包含至少两个版本的逻辑块;即,有效的、最近写入的版本(由映射表104指向),以及其至少一个其它的旧版本,其是陈旧的并且不再由映射表104中的任何条目所指向。这些“陈旧的”条目被称作“垃圾”,其占据了必须被计数、收集、擦除以及供将来使用可用的空间。这个过程被称作“垃圾收集”。
[0005]原子命令是一种完全执行或完全不执行的命令。由于电力循环通常是一些命令不能结束的原因,所以任何原子写入命令必须考虑电力循环问题。在基于闪存的数据存储设备中实现原子写入命令的传统方法不允许对未完全处理的原子写入命令的有效检测、对具有处理中的原子写入的块和元数据进行有效垃圾收集,或者依赖于在缓冲器中复制原子写入数据,由此增加了写入放大、系统复杂性并且生成空闲空间计数问题。
【附图说明】
[0006]图1示出了用于SSD的常规逻辑块寻址方案的方面。
[0007]图2是根据一个实施例的数据存储设备,以及这样的数据存储设备的物理和逻辑数据组织的方面的框图。
[0008]图3示出了根据一个实施例的逻辑到物理地址转换映射及其图示条目。
[0009]图4示出了根据一个实施例的用于更新逻辑到物理地址转换映射以及用于创建S日志条目的方法的方面。
[0010]图5是根据一个实施例的S日志的框图。
[0011]图6示出了根据一个实施例的S日志的一个条目的示例性组织。
[0012]图7是根据一个实施例的超级块(S块)的框图。
[0013]图8示出了根据一个实施例的超级页(S页)的另一视图。
[0014]图9A示出了根据一个实施例的逻辑到物理地址转换映射、S日志以及S块之间的关系O
[0015]图9B是根据一个实施例的S日志映射的框图。
[0016]图10是根据一个实施例的数据结构的框图,在所述数据结构中可以存储用于处理原子写入命令的原子序列号。
[0017]图11是示出了根据一个实施例的非原子写入和原子写入的方面的框图。
[0018]图12示出了根据一个实施例的包括用于原子写入的S日志条目的S日志的方面。
[0019]图13是根据一个实施例的用于处理原子写入命令的方法的流程图。
[0020]图14是根据一个实施例的用于处理原子写入命令的方法的其它方面的流程图。
[0021]图15A-D示出了根据一个实施例的槽号分配的处理。
[0022]图16A-C示出了根据一个实施例的局部原子写入命令的处理。
【具体实施方式】
[0023]系统概览
[0024]图2是示出了根据一个实施例的数据存储设备的物理和逻辑数据组织的方面的框图。在一个实施例中,数据存储设备是SSD。在另一实施例中,数据存储设备是混合驱动器,其包括闪速存储器和旋转磁性存储介质。本公开适应于SSD和混合实现方式二种,但是为了简单,将结合基于SSD的实现来描述各种实施例。根据一个实施例的数据存储设备控制器202可以被配置为与如附图标记218示出的主机耦合。控制器可以包括执行以下描述的由控制器执行的一些或全部功能的一个或多个处理器。主机218可以利用逻辑块寻址(LBA)方案。虽然LBA大小一般是固定的,但主机可以动态地改变LBA的大小。例如,LBA大小可以通过接口和接口模式而改变。事实上,虽然512字节是最常见的,但4KB也变得更加普通,如作为512+(520、528等)和4KB+(4KB+8、4KB+16等)格式。如图所示,数据存储设备控制器202可以包括页寄存器204或与页寄存器204耦合。页寄存器204可以被配置为使得控制器202能够从数据存储设备读取数据以及向数据存储设备存储数据。控制器202可以被配置为响应于来自主机218的数据访问命令对来自闪速存储器设备的阵列的数据进行编程并且从闪速存储器设备的阵列读取数据。虽然本文的描述提及闪速存储器,但可以理解的是存储器设备的阵列可以包括其它类型的非易失性存储器设备,例如,闪存集成电路、硫属化合物RAM (C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM (PMC-RAM或PMCm)、双向通用存储器(OUM)、阻抗RAM(RRAM)、NAND存储器(例如,单层单元(SLC)存储器、多级单元(MLC)存储器、或其任意组合)、NOR存储器、EEPR0M、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其它分立的NVM(非易失性存储器)芯片、或其任意组合。
[0025]页寄存器204可以被配置为使得控制器202从阵列读取数据以及将数据存储到阵列。根据一个实施例,闪速存储器设备的阵列可以包括管芯(例如,128个管芯)中的多个非易失性存储器设备,所述多个非易失性存储器设备中的每一个包括多个块,例如图2的206所示出的。其它页寄存器204(未示出)可以耦合到另一管芯上的块。闪存块的组合被分组到一起可以被称作超级块或S块。在一些实施例中,形成S块的个体块可以从一个或多个管芯、平面或其它级别粒度中选择。因此,S块可以包括分布于一个或多个管芯的、组合到一起的多个闪存块。以这种方式,S块可以形成闪存管理系统(FMS)在其上操作的单元。在一些实施例中,形成S块的个体块可以根据不同于管芯级别的粒度来选择,例如当存储器设备包括细分为例如平面的结构的管芯(即,块可以取自个体平面)的情况。根据一个实施例,可以在S块级别实施分配、擦除以及垃圾收集。在其它实施例中,FMS可以根据例如页、块、平面、管芯等的其它逻辑分组来执行数据操作。
[0026]接下来,闪存块206中的每一个包括多个闪存页(F页)208。每一个F页可以具有固定的大小,例如16KB。根据一个实施例,F页为给定闪存设备的最小程序单元的大小。如图3所示,每一个F页208可以被配置为容纳多个物理页,下文中被称为E页210。术语“E页”指的是存储在闪速存储器中的数据结构,在其上应用了误差校正码(ECC)。根据一个实施例,E页210可以形成在数据存储设备内进行物理寻址的基础,并且可以构成闪存读取数据传送的最小单位。因此,E页210可以(但不必)具有预定的固定大小(例如,2KB),并且确定ECC系统的有效载荷(例如,主机数据)的大小。根据一个实施例,每一个F页208可以被配置为在其边界内适应预定的多个E页210。例如,给定16KB大小的F页208以及每E页210固定大小2KB,如图3所示,八个E页210在单个F页208内适应。在任何情况下,根据一个实施例,包括ECC的E页210的2的幂次可以被配置为适应F页208。每一个E页210可以包括数据部分214,以及取决于E页210所在之处,还可以包括ECC部分216。数据部分214和ECC部分216在大小上都不需要是固定的。E页的地址唯一地识别E页在闪速存储器内的位置。例如,E页的地址可以指定闪存信道、在识别出的闪存信道内的特定管芯、管芯内的特定块、特定的F页,以及最后在所识别出的F页内的E页。
[0027]为了桥接主机在数据存储设备上的物理寻址和逻辑块寻址,引入逻辑页(L页)构造。L页在图3中由附图标记212示出,其可以包括FMS所使用的地址变换的最小单元。根据一个实施例,每一个L页可以与L页号相关联。因此,L页212的L页号可以被配置为使控制器202能够逻辑地引用存储在一个或多个物理页(例如,E页210)中的主机数据。L页212还可以用作压缩的基本单元。根据一个实施例,与F页208和E页210不同,由于要存储的数据压缩的可变性,L页
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1