存储设备、其操作方法及包括其的电子设备与流程

文档序号:23800958发布日期:2021-02-02 13:22阅读:139来源:国知局
存储设备、其操作方法及包括其的电子设备与流程
存储设备、其操作方法及包括其的电子设备
[0001]
相关申请的交叉引用
[0002]
本申请要求于2019年7月23日在韩国知识产权局提交的韩国专利申请no.10-2019-0088963的优先权,通过引用将所述韩国专利申请的全部公开内容合并于此。
技术领域
[0003]
本文描述的本发明构思的示例性实施例涉及用于改善日志重放的存储设备及其操作方法和包括该存储设备的电子设备。


背景技术:

[0004]
作为非易失性存储介质的存储设备不管是否向其供电都可以永久地或半永久地保留数据。该存储设备可以包括非易失性存储器和易失性存储器二者,易失性存储器的容量小于非易失性存储器的容量但具有快速的输入/输出速度。例如,存储设备可以将易失性存储器用作关于非易失性存储器的高速缓冲存储器。
[0005]
然而,当发生诸如突然断电(spo)和系统崩溃的电源事件时,存储在存储设备的易失性存储器中的数据会丢失。因此,为了防止数据丢失,存储设备可以将存储在易失性存储器中的数据存储在非易失性存储器中。


技术实现要素:

[0006]
根据本发明构思的示例性实施例,一种存储设备包括非易失性存储器和控制器,所述非易失性存储器包括主元数据区域和日志区域。所控制器通过执行存储在工作存储器中的闪存转换层(ftl)来更新地址映射表,所述地址映射表包括被划分为多个片段的多个页映射条目;将所述多个页映射条目中的更新后的页映射条目作为日志数据存储在所述日志区域中;并且将所述多个片段存储在所述主元数据区域中,所述多个片段均具有小于所述非易失性存储器的物理页的大小。
[0007]
根据本发明构思的示例性实施例,一种存储设备的操作方法,所述存储设备包括控制器和非易失性存储器,所述控制器被配置为执行闪存转换层(ftl),所述非易失性存储器包括主元数据区域和日志区域。所述操作方法包括:由所述控制器更新包括多个页映射条目的地址映射表;将所述多个页映射条目中的更新后的页映射条目作为日志数据存储在所述日志区域中;并且基于所述更新后的页映射条目被存储在所述日志区域中的顺序以及划分所述多个页映射条目的多个片段中的每个片段的所述更新后的页映射条目的数量,将所述多个片段存储在所述主元数据区域中。
[0008]
根据本发明构思的示例性实施例,一种电子设备包括主机和存储设备,所述主机被配置为发送包括逻辑地址的请求,所述存储设备包括非易失性存储器和控制器。所述非易失性存储器包括主元数据区域和日志区域。所述控制器被配置为:通过处理所述主机的所述请求来更新地址映射表,所述地址映射表包括被划分为多个片段的多个页映射条目;将所述多个页映射条目中的更新后的页映射条目作为日志数据存储在所述日志区域中;并
且将所述多个片段存储在所述主元数据区域中,所述多个片段均具有小于所述非易失性存储器的物理页的大小。
附图说明
[0009]
通过参照附图详细描述本发明构思的示例性实施例,本发明构思的以上以及其他目的和特征将变得清楚。
[0010]
图1示出根据本发明构思的示例性实施例的电子设备的框图。
[0011]
图2示出根据本发明构思的示例性实施例的电子设备的框图。
[0012]
图3至图6示出用于描述根据本发明构思的示例性实施例的控制器如何将元数据存储在非易失性存储器中的示图。
[0013]
图7和图8示出根据本发明构思的示例性实施例的控制器将元数据与时间戳一起存储的示例。
[0014]
图9示出包括根据本发明构思的示例性实施例的控制器将地址映射表存储在非易失性存储器中的过程的流程图。
[0015]
图10示出根据本发明构思的示例性实施例的包括构成图9的操作s160的详细操作的流程图。
[0016]
图11示出包括根据本发明构思的示例性实施例的控制器恢复地址映射表的过程的流程图。
[0017]
图12示出根据本发明构思的示例性实施例的图1的控制器的详细框图。
[0018]
图13示出根据本发明构思的示例性实施例的图2的控制器的详细框图。
[0019]
图14示出根据本发明构思的示例性实施例的电子设备的框图。
[0020]
图15是示出包括根据本发明构思的示例性实施例的存储设备的计算系统的框图。
具体实施方式
[0021]
本发明构思的示例性实施例提供了一种用于改善日志重放(journal replay)的存储设备、其操作方法及包括该存储设备的电子设备。
[0022]
在下文中将参考附图更全面地描述本发明构思的示例性实施例。贯穿本申请,相似的参考标号可以指代相似的元件。
[0023]
图1示出根据本发明构思的示例性实施例的电子设备的框图。电子设备10a可以是个人计算机、工作站、笔记本、平板电脑、移动设备或智能电话,并且可以被称为“计算系统”、“电子系统”或“移动系统”。电子设备10a可以包括主机11和存储设备100a。
[0024]
主机11可以将命令cmd发送到存储设备100a。主机11可以与存储设备100a交换数据“data”。主机11可以从存储设备100a接收对命令cmd的响应rsp。主机11可以被实现为包括一个或更多个处理器核。例如,主机11可以包括通用处理器、专用处理器或应用处理器。主机11可以是处理器本身,或者主机11可以是包括处理器的系统或电子设备。
[0025]
存储设备100a可以根据各种接口协议与主机11通信。例如,存储设备100a可以是固态硬盘(ssd)、集成在电子设备10a中的嵌入式存储卡、电子设备10a的可拆卸存储卡、安全数字(sd)卡、嵌入式多媒体卡(emmc)、通用闪存(ufs)卡等。存储设备100a可以包括控制器110a和非易失性存储器130。控制器110a可以基于主机11的命令cmd将数据“data”写入非
易失性存储器130中;或者,基于主机11的命令cmd,控制器110a可以从非易失性存储器130读取数据“data”,并且可以将读取到的数据“data”发送到主机11。控制器110a可以处理命令cmd,并且可以向主机11发送指示处理结果的响应rsp。控制器110a可以包括具有比非易失性存储器130快的数据输入/输出速度的工作存储器112a。控制器110a可以将工作存储器112a用作高速缓冲存储器。
[0026]
控制器110a可以执行存储在工作存储器112a中的闪存转换层(ftl)。ftl可以作为存储在rom或存储设备100a的非易失性存储器130中的固件或程序被加载到工作存储器112a。ftl可以存在于主机11的文件系统(参考图14)与非易失性存储器130之间。ftl可以执行地址映射操作,以管理从主机11提供的逻辑地址与非易失性存储器130的物理地址之间的映射。除了执行地址映射操作,ftl还可以执行垃圾收集操作、损耗均衡操作等。ftl可以由控制器110a执行以解决非易失性存储器130的以下限制:不可重写或不可原地写入(in-place write)、存储器单元的寿命、有限数量的编程/擦除循环以及擦除速度比写入速度慢。当逻辑地址与命令cmd或请求一起从主机11发送到控制器110a并且控制器110a处理命令cmd或请求时,ftl可以更新包括关于逻辑地址与物理地址之间的映射的信息的地址映射表amt。地址映射表amt可以存储在工作存储器112a中。
[0027]
ftl可以管理片段映射表smt,片段映射表smt指示非易失性存储器130的存储了地址映射表amt的映射信息的位置。片段映射表smt可以存储在工作存储器112a中,并且片段映射表smt的大小可以小于地址映射表amt的大小。当控制器110a处理主机11的请求时,ftl可以更新地址映射表amt中的映射信息的一部分(部分映射信息),并且可以将地址映射表amt的更新信息存储在日志缓冲器jb中。日志缓冲器jb可以位于工作存储器112a处。
[0028]
工作存储器112a可以包括或存储ftl、地址映射表amt、片段映射表smt和日志缓冲器jb。工作存储器112a可以包括用于存储ftl的区域、用于存储地址映射表amt的区域、用于存储片段映射表smt的区域以及分配给日志缓冲器jb的区域,并且控制器110a可以预先在工作存储器112a中设置上述区域,或者可以根据主机11或用户的请求来调整上述区域。例如,工作存储器112a可以是包括锁存器、寄存器、静态随机存取存储器(sram)、动态随机存取存储器(dram)、晶闸管随机存取存储器(tram)、紧密耦合存储器(tcm)等的存储介质或片上存储器。
[0029]
在控制器110a的控制下,非易失性存储器130可以存储(或写入或编程)数据,或可以将存储在其中的数据提供给控制器110a。非易失性存储器130可以包括用户数据区域user data和预留区域op。用户数据区域user data可以是分配给主机11的区域,并且可以基于主机11的请求来存储数据。预留区域op可以不是分配给主机11的区域,并且可以不对主机11开放。控制器110a可以使用预留区域op来管理非易失性存储器130。例如,预留区域op也可以被称为“元数据区域”。
[0030]
例如,当发生诸如突然断电(spo)或系统崩溃(易失(volatile))的电源事件时,存储在工作存储器112a中的元数据可能会丢失。元数据可以包括地址映射表amt、片段映射表smt以及地址映射表amt的存储在日志缓冲器jb中的更新信息(在下文称为“日志数据”)。此外,元数据还可以包括关于非易失性存储器130的读取/写入单元(例如,页)的信息、关于非易失性存储器的擦除单元(例如,块blk(参考图14))的信息等。为了防止上述丢失,控制器110a可以将存储在工作存储器112a中的元数据存储在非易失性存储器130的预留区域op
中。ftl可以将地址映射表amt存储在主元数据区域mma1和mma2中,可以将片段映射表smt存储在片段映射表区域smta中,并且可以将存储在日志缓冲器jb中的日志数据存储在日志区域ja1和ja2中。控制器110a可以预先在工作存储器112a中设置上述区域,或者可以根据主机11或用户的请求来调整上述区域。非易失性存储器130可以包括诸如nand闪存单元、nor闪存单元、电阻随机存取存储器(rram)单元、铁电随机存取存储器(fram)单元、相变随机存取存储器(pram)单元或磁性随机存取存储器(mram)单元的非易失性存储器单元。
[0031]
图2示出根据本发明构思的示例性实施例的电子设备的框图。电子设备10b可以包括主机11和存储设备100b。除了存储设备100b之外,电子设备10b可以与电子设备10a基本相同。存储设备100b可以包括控制器110b和非易失性存储器130。与存储设备100a相比,存储设备100b还可以包括缓冲存储器120。控制器110b可以包括与工作存储器112a基本相同的工作存储器112b,并且与控制器110a不同,控制器110b还可以将缓冲存储器120用作高速缓冲存储器。例如,缓冲存储器120可以位于控制器110b的外部。
[0032]
控制器110b可以将地址映射表amt存储并加载到缓冲存储器120。与图1所示的示例不同,控制器110b可以将地址映射表amt存储并加载到工作存储器112b和缓冲存储器120二者。随着非易失性存储器130的容量增加,地址映射表amt的大小可以增加。在这种情况下,地址映射表amt可以存储在位于控制器110b外部的缓冲存储器120中。例如,缓冲存储器120可以是包括锁存器、寄存器、sram、dram、tram、tcm等的存储介质。控制器110b可以将ftl、片段映射表smt和日志缓冲器jb存储并加载到工作存储器112b。除了存储设备100b还包括缓冲存储器120之外,存储设备100b的操作可以类似于存储设备100a的操作。在下面,存储设备100可以指代存储设备100a和100b之一,控制器110可以指代控制器110a和110b之一,并且工作存储器112可以指代工作存储器112a和112b之一。
[0033]
根据本发明构思的示例性实施例的由存储设备100的控制器110执行的ftl可以减少执行日志重放的时间或成本,所述日志重放用于基于从非易失性存储器130的日志区域ja1和ja2读取的信息,恢复加载到工作存储器112或缓冲存储器120的地址映射表amt。
[0034]
图3至图6示出用于描述根据本发明构思的示例性实施例的控制器如何将元数据存储在非易失性存储器中的示图。将一起参照图1和图2来描述图3至图6。
[0035]
地址映射表amt可以包括页映射条目pme。页映射条目pme可以存储与逻辑地址la相对应的物理地址pa。页映射条目pme在地址映射表amt上的位置可以对应于逻辑页编号lpn,并且页映射条目pme可以存储与逻辑页编号lpn相对应的物理页编号ppn。参照图3,地址映射表amt的一些页映射条目pme可以存储分别与逻辑页编号lpn1至lpn3和lpn20相对应的物理页编号ppna至ppnd。这里,逻辑页编号lpn1至lpn3和lpn20以及物理页编号ppna至ppnd仅是示例。物理页编号ppna至ppnd可以指示分配给图1和图2的用户数据区域user data的块的一些物理页。例如,地址映射表amt的页映射条目pme可以以阵列的形式来实现,并且可以以页为单位来划分。地址映射表amt的页可以对应于主机11上可执行的文件系统的数据输入/输出大小,并且可以是4kb,但是本发明构思不限于以上数值。地址映射表amt的页映射条目pme的数量不限于图3至图6所示的示例。
[0036]
片段映射表smt可以指示非易失性存储器130的主元数据区域mma1的存储片段sg的位置(或物理地址pa)。片段sg1至sg8可以包括地址映射表amt的页映射条目pme。地址映射表amt的页映射条目pme可以被划分为片段sg1至sg8。非易失性存储器130的物理页(nvm
页)的大小可以对应于非易失性存储器130的写入单位或读取单位,并且片段sg的大小可以小于非易失性存储器130的物理页的大小。通常,在收集到具有非易失性存储器130的物理页大小的数据时,此数据可以被写入非易失性存储器130中。在不使用片段映射表smt的情况下,控制器110可以以非易失性存储器130的物理页的大小为单位,将页映射条目pme写入主元数据区域mma1中。例如,控制器110可以改变或调整片段sg的大小。
[0037]
相反,根据本发明构思的示例性实施例的控制器110可以在逻辑上将非易失性存储器130的未被物理地划分得更小的一个物理页划分为多个片段,可以以片段的大小为单位收集页映射条目pme,并且可以以非易失性存储器130的一个物理页的大小为单位,将片段写入主元数据区域mma1中。参照图3,片段映射表smt可以包括片段sg1至sg8以及指示片段sg1至sg8的存储位置的物理页编号ppn1至ppn4及偏移off1和off2。偏移off1可以指示物理页的特定区域的位置,偏移off2可以指示物理页的另一个区域的位置。在将一个物理页分为两个或更多个片段的情况下,偏移的数量可以根据片段的数量而增加。
[0038]
为了便于描述和说明,示出了一个示例,在该示例中,地址映射表amt的页大小与片段sg的大小相同,但是地址映射表amt的页大小和片段sg的大小可以彼此不同。分配给片段sg的页映射条目pme的数量、每个物理页的片段的数量以及包括在主元数据区域mma1中的物理页的数量不限于图3所示的示例,并且主元数据区域mma1可以包括一个或更多个块。
[0039]
在图3中,假设存储在工作存储器112或缓冲存储器120中的地址映射表amt的页映射条目被存储或写入非易失性存储器130的主元数据区域mma1中。在图3中,存储在工作存储器112或缓冲存储器120中的地址映射表amt可以与存储在非易失性存储器130的主元数据区域mma1中的地址映射表amt一致(相同、一样或匹配)。
[0040]
控制器110可以执行ftl,ftl可以更新地址映射表amt。例如,ftl可以将与逻辑页编号lpn1至lpn3和lpn20相对应的物理页编号从图3的ppna至ppnd更新或改变为图4的ppne至ppnh。物理页编号ppne至ppnh可以指示分配给用户数据区域user data的块的物理页中的一些其余的物理页。由ftl更新的页映射条目在图4中由“u1”标记。更新后的页映射条目的数量及其位置不限于图4所示的示例。在这种情况下,存储在工作存储器112或缓冲存储器120中的地址映射表amt可以不同于存储在非易失性存储器130的主元数据区域mma1中的地址映射表amt。
[0041]
代替将整个地址映射表amt(例如,地址映射表amt的所有页映射条目)写入非易失性存储器130中以实现数据一致性,ftl可以将地址映射表amt的所有页映射条目中的更新后的页映射条目u1存储或收集在工作存储器112的日志缓冲器jb中,然后可以将存储在日志缓冲器jb中的更新后的页映射条目u1存储或写入非易失性存储器130的日志区域ja1中。例如,当随着更新后的页映射条目u1被存储在日志缓冲器jb中而使得日志缓冲器jb变满时,ftl可以将存储在日志缓冲器jb中的更新后的页映射条目存储在非易失性存储器130的日志区域ja1中。
[0042]
参照图4,ftl可以更新页映射条目u1,并且可以将页映射条目u1的逻辑页编号lpn1至lpn3和lpn20以及更新后的物理页编号ppne至ppnh存储在日志缓冲器jb中。例如,每个页映射条目pme可以仅存储与逻辑页编号lpn相对应的物理页编号ppn,而日志缓冲器jb的每个日志条目je可以存储物理页编号ppn和逻辑页编号lpn二者。每个日志条目je的大小可以大于每个页映射条目pme的大小。日志缓冲器jb的大小可以与非易失性存储器130的物
理页的大小相同,或者可以小于非易失性存储器130的物理页的大小。日志缓冲器jb的日志条目je的数量不限于图4所示的示例,并且日志条目je可以对应于日志数据。
[0043]
当更新地址映射表amt时,ftl还可以更新片段映射表smt。更新后的片段sg的数量及其位置不限于图4所示的示例。片段映射表smt还可以包括关于片段sg被更新的时间ut的信息以及关于每个片段sg具有的更新后的页映射条目u1的数量(或计数cnt)的信息。
[0044]
图4示出了片段sg3的三个页映射条目u1被更新的示例。在片段映射表smt中,ftl可以将片段sg3被更新的时间(在下文称为“更新时间”)标记为“ut1”,并且可以将片段sg3的更新后的页映射条目u1的数量cnt标记为“3”。例如,属于片段sg3的更新后的页映射条目u1的更新时间可以相同或不同,并且ftl可以基于最近更新的页映射条目来确定片段sg3的更新时间。例如,ftl可以对属于片段sg3的页映射条目的更新后的页映射条目u1进行计数。如上所述,ftl可以将片段sg7的更新时间标记为“ut1”,并且可以将片段sg7的更新后的页映射条目u1的数量cnt标记为“1”。
[0045]
如上所述,ftl可以基于最近更新的页映射条目来确定片段sg的更新时间ut。作为另一示例,ftl可以基于存储在日志缓冲器jb中的更新后的页映射条目被存储在日志区域ja1中或被发送到日志区域ja1的时间,来确定片段sg的更新时间ut。片段映射表smt中的片段sg3和sg7的更新时间ut1可以相同或不同。在任何情况下,片段sg3和sg7的更新时间ut1可以指示片段sg3和sg7被更新的顺序,或者片段sg3和sg7的更新后的页映射条目u1被存储在日志区域ja1中的顺序。
[0046]
ftl可以更新页映射条目u1,然后还可以更新地址映射表amt中的其他页映射条目u2。参考图5,示出了由ftl更新的页映射条目u2的示例。ftl可以将更新后的页映射条目pme存储或重写在日志缓冲器jb中。之后,ftl可以将存储在日志缓冲器jb中的更新后的页映射条目u2存储或写入非易失性存储器130的日志区域ja1中。参照图4和图5,ftl可以将更新后的页映射条目u1存储在日志区域ja1的物理页ppn5处,并且可以将更新后的页映射条目u2存储在日志区域ja1的物理页ppn6处。ftl可以更新地址映射表amt的页映射条目u1和u2,可以将更新后的页映射条目u1和u2存储在日志缓冲器jb中,并且可以将日志缓冲器jb中的更新后的页映射条目u1和u2存储在日志区域ja1中。由控制器110更新的页映射条目u1和u2可以通过日志缓冲器jb累积在日志区域ja1中。
[0047]
参照图5,ftl可以更新页映射条目u2,并且还可以更新片段映射表smt。在片段映射表smt中,ftl可以将片段sg1被更新的时间标记为“ut2”,并且可以将片段sg1的更新后的页映射条目u2的数量cnt标记为“2”。如上面所述,在片段映射表smt中,ftl可以将片段sg5被更新的时间标记为“ut2”,并且可以将片段sg5的更新后的页映射条目u2的数量cnt标记为“2”。ftl可以识别(检查)片段映射表smt的更新时间ut1和ut2,并且可以识别出片段sg3和sg7在片段sg1和sg5之前被更新,以及片段sg3和sg7的更新后的片段映射条目在片段sg1和sg5的更新后的片段映射条目之前被存储在日志区域ja1中。ftl可以识别出片段映射表smt的计数cnt,并且可以识别出片段sg3具有最大数量的更新后的页映射条目u1,而片段sg7具有最小数量的更新后的页映射条目u1。
[0048]
分配给日志区域ja1的物理页的数量不限于图5所示的示例,日志区域ja1可以包括一个或更多个块。然而,由控制器110分配的日志区域ja1的大小或容量可能是有限的,并且控制器110可能无法无限地将更新后的页映射条目存储在日志区域ja1中。为了便于描述
和说明,假设当更新后的页映射条目u2存储在日志区域ja1的物理页ppn6时,日志区域ja1已满。
[0049]
当日志区域ja1已满时,ftl可以将地址映射表amt存储在非易失性存储器130的主元数据区域mma2中。主元数据区域mma2的物理页ppn1至ppn4不同于主元数据区域mma1的物理页ppn1至ppn4,并且主元数据区域mma1和mma2是不同的区域。地址映射表amt的页映射条目pme可以被划分为片段sg1至sg8。在图3至图6中,为了描述数据一致性、地址映射表amt的更新以及日志技术,片段sg1和sg2、片段sg3和sg4、片段sg5和sg6以及片段sg7和sg8被示为顺序地分别存储在主元数据区域mma1的物理页ppn1、ppn2、ppn3和ppn4。然而,根据本发明构思的示例性实施例,ftl可以基于优先级将片段sg1至sg8存储在非易失性存储器130中。
[0050]
ftl可以参考片段映射表smt,将片段sg1至sg8存储在主元数据区域mma2中。ftl可以识别片段sg1至sg8被更新的时间(例如,ut1和ut2),并且可以基于更新片段sg1至sg8的顺序将片段sg1至sg8存储在主元数据区域mma2中。例如,因为片段sg3和sg7在片段sg1和sg5之前被更新,所以ftl可以首先将片段sg3和sg7存储在主元数据区域mma2中,然后可以将片段sg1和sg5存储在主元数据区域mma2中。
[0051]
此外,ftl可以检查片段sg1至sg8中的每一者的更新后的页映射条目(例如,u1和u2)的数量cnt,并且可以基于片段sg1至sg8中的每一者的更新后的页映射条目(例如,u1和u2)的数量cnt,将片段sg1至sg8存储在主元数据区域mma2中。例如,因为片段sg3的更新后的页映射条目的数量大于片段sg7的更新后的页映射条目的数量,所以ftl可以将片段sg3存储在主元数据区域mma2中,然后可以将片段sg7存储在主元数据区域mma2中。然而,即使片段sg1和sg5中的每一者的更新后的页映射条目的数量大于片段sg7的更新后的页映射条目的数量,但是因为片段sg7在片段sg1和sg5之前被更新,所以ftl仍可以首先将片段sg7存储在主元数据区域mma2中。ftl可以首先考虑片段sg1至sg8的更新时间(例如,ut1和ut2),然后考虑片段sg1至sg8中的每一者的更新后的页映射条目(例如,u1和u2)的数量cnt,来确定将片段sg1至sg8存储在主元数据区域mma2中的优先级。
[0052]
在本发明构思的示例性实施例中,ftl可以基于元数据的类型,来确定将元数据存储在非易失性存储器130中的优先级。如上所述,元数据类型可以包括地址映射表amt(该地址映射表amt包括关于逻辑地址与物理地址之间的页映射的信息)、片段映射表smt和日志数据,并且还可以包括关于非易失性存储器130的信息(例如,关于物理页作为读取/写入单位的信息和关于块作为擦除单位的信息)。例如,ftl可以在存储关于非易失性存储器130的信息之前,将关于逻辑地址与物理地址之间的页映射的信息存储在非易失性存储器130中。ftl可以考虑片段sg1至sg8的更新时间(例如,ut1和ut2)、片段sg1至sg8中的每一者的更新后的页映射条目(例如,u1和u2)的数量cnt以及元数据的类型,来确定将元数据存储在非易失性存储器130中的优先级。
[0053]
图5和图6示出了这样的示例:在相同或相似时间ut1更新的片段(即,sg3和sg7)的数量是2并且在相同或相似时间ut2更新的片段(即,sg1和sg5)的数量是2。然而,在相同或相似的时间更新的片段的数量可以是2个以上。ftl可以参考在相同或相似时间更新的每个片段的更新后的页映射条目(例如,u1/u2)的数量cnt,来确定将在相同或相似时间更新的片段存储在主元数据区域mma2中的优先级。ftl可以将更新后的页映射条目的数量相对大的片段先于更新后的页映射条目的数量相对小的片段存储在主元数据区域mma2中。
[0054]
基于以上优先级,ftl可以将在时间ut1更新的片段sg3和sg7存储在主元数据区域mma2的物理页ppn1中,可以将在时间ut2更新的片段sg1和sg5存储在主元数据区域mma2的物理页ppn2中,并且可以将未更新的其余片段sg2、sg4、sg6和sg8存储在主元数据区域mma2的物理页ppn3和ppn4中。控制器110可以将一个物理页单位的数据发送到非易失性存储器130,并且非易失性存储器130可以将从控制器110发送的数据存储或写入在控制器110所请求的位置(例如,物理页)。在图6中,假设控制器110将要存储在一个物理页处的数据发送到非易失性存储器130,但是控制器110可以将要存储在一个或更多个物理页处的数据发送到非易失性存储器130。
[0055]
在写入时间w1,片段sg3和sg7可以被存储在主元数据区域mma2的物理页ppn1;在写入时间w1之后的写入时间w2,片段sg1和sg5可以被存储在主元数据区域mma2的物理页ppn2;在写入时间w2之后的写入时间w3,片段sg2和sg4可以被存储在主元数据区域mma2的物理页ppn3;在写入时间w3之后的写入时间w4,片段sg6和sg8可以被存储在主元数据区域mma2的物理页ppn4。在写入时间w4,在地址映射表amt的所有片段sg被存储在主元数据区域mma2中的情况下,与存储在主元数据区域mma1中的地址映射表amt相比,存储在主元数据区域mma2中的地址映射表amt可以是最近的(最新的)。在写入时间w4之后,ftl可以使存储在主元数据区域mma1中的地址映射表amt无效,并且可以擦除存储在主元数据区域mma1中的地址映射表amt。ftl可以擦除非易失性存储器130中的分配给主元数据区域mma1的至少一个块。
[0056]
如上所述,ftl可以基于优先级将片段sg1至sg8存储在主元数据区域mma2中。存储在主元数据区域mma1中的地址映射表amt可以在写入时间w4被无效;相比之下,因为片段sg1至sg8是基于优先级被存储在主元数据区域mma2中的,因此,与存储在日志区域ja1中的更新后的页映射条目u1和u2相关联的日志数据可以在写入时间w4之前被无效。当片段sg3和sg7在写入时间w1被存储在主元数据区域mma2中时,与存储在日志区域ja1的物理页ppn5的页映射条目u1相关联的日志数据可以在写入时间w1被无效。类似地,当片段sg1和sg5在写入时间w2被存储在主元数据区域mma2中时,与存储在日志区域ja1的物理页ppn6的页映射条目u2相关联的日志数据可以在写入时间w2被无效。基于优先级,ftl可以将具有存储在日志区域ja1中的日志数据的片段存储在主元数据区域mma2中,并且可以相对早地使存储在日志区域ja1中的日志数据无效。例如,ftl可以在写入时间w2之后擦除存储在日志区域ja1中的日志数据。ftl可以擦除非易失性存储器130中的分配给日志区域ja1的至少一个块。
[0057]
根据本发明构思的示例性实施例的ftl可以基于优先级将片段sg1至sg8存储在主元数据区域mma2中。ftl可以以将日志数据存储在日志区域ja1中的顺序将片段sg存储在主元数据区域mma2中,并且可以从具有最大数量的更新后的页映射条目的片段开始,降序将片段sg存储在主元数据区域mma2中。根据本发明构思的示例性实施例,因为存储在日志区域ja1中的日志数据相对早地被无效,所以可以减少执行日志重放的时间或成本,日志重放是ftl读取存储在日志区域ja1中的日志数据并基于日志数据更新工作存储器112或缓冲存储器120上的地址映射表amt的操作。例如,随着要被无效的日志数据量的增加,ftl读取的日志数据量可以减少。此外,可以改善存储设备100的写入放大因子(waf)。此外,在存储设备100上电或向存储设备100提供电源电压之后,初始化存储设备100所花费的时间可以减
少。
[0058]
在本发明构思的示例性实施例中,ftl可以基于优先级将片段sg1至sg8存储在主元数据区域mma2中,并且可以更新片段映射表smt,使得片段映射表smt具有主元数据区域mma2的存储片段sg1至sg8的位置。片段映射表smt可以包括非易失性存储器130的存储片段sg3的位置(例如,ppn1和off1)。如片段sg3的位置一样,可以在片段映射表smt中更新其余片段sg1、sg2以及sg4至sg8的位置。例如,ftl可以在写入时间w4之后将更新后的片段映射表smt存储在非易失性存储器130的片段映射表区域smta中。
[0059]
ftl还可以在写入时间w4之后或者在将地址映射表amt存储在主元数据区域mma2中的同时,更新工作存储器112或缓冲存储器120上的地址映射表amt。参照图6,ftl可以更新地址映射表amt中的用“u3”标记的页映射条目。ftl可以将更新后的页映射条目u3存储或重写在日志缓冲器jb中。ftl可以将存储在日志缓冲器jb中的更新后的页映射条目u3存储或写入非易失性存储器130的日志区域ja2中。参照图3至图5,上述过程类似于在日志区域ja1中存储和累积日志数据的操作。日志区域ja1的物理页ppn5和ppn6不同于日志区域ja2的物理页ppn5,并且日志区域ja1和ja2是不同的。当日志区域ja2已满时,ftl可以将地址映射表amt存储在与主元数据区域mma2不同的主元数据区域中。不同的主元数据区域可以是(已擦除的)主元数据区域mma1,或者可以是非易失性存储器130的预留区域op的另外分配的用于存储地址映射表amt的主元数据区域。一个主元数据区域和一个日志区域可以配置(构成)一个组,并且参考图3至图6描述了组的数量为2的示例。然而,预留区域op中的组的数量可以是2个以上。如参考图3至图6所描述的,ftl可以将地址映射表amt和日志缓冲器jb的日志数据无限重复地存储在两个或更多个组中。
[0060]
图7和图8示出根据本发明构思的示例性实施例的控制器将元数据与时间戳一起存储的示例。例如,控制器110可以生成时间戳,并且可以将元数据和时间戳一起发送到非易失性存储器130。非易失性存储器130可以将元数据和时间戳存储在控制器110请求的位置处。
[0061]
图3至图6示出了非易失性存储器130的每个物理页存储两个片段的示例,但是本发明构思不限于此。图7和图8示出了非易失性存储器130的每个物理页存储两个或更多个片段的示例。物理页的数量以及分配给主元数据区域mma1和mma2以及日志区域ja1和ja2的块的数量不限于图7和图8所示的示例。
[0062]
参照图7,控制器110可以将多个片段(例如,sg111至sg11y:y是自然数)和一个时间戳(例如,ts11)发送到非易失性存储器130。在这种情况下,多个片段sg111至sg11y和一个时间戳ts11的总大小可以对应于非易失性存储器130的一个物理页的大小。与多个片段sg111至sg11y一起发送的时间戳ts11可以指示片段sg111至sg11y被发送到非易失性存储器130或者被存储在非易失性存储器130中的时间。例如,存储在主元数据区域mma1的物理页的时间戳ts11至ts1x(x是自然数)的值可以不同于存储在主元数据区域mma2的物理页的时间戳ts21至ts2x的值。与上面存储片段sg111至sg11y和时间戳ts11的方式类似,其余片段sg121至sg1xy和sg211至sg2xy以及其余时间戳ts12至ts1x和ts21至ts2x可以存储在主元数据区域mma1和mma2中。
[0063]
控制器110可以将存储在日志缓冲器jb中的日志条目(例如,je111至je11n:n为自然数)和一个时间戳ts31发送到非易失性存储器130。在这种情况下,日志条目je111至
je11n和一个时间戳ts31的总大小可以对应于非易失性存储器130的一个物理页的大小。日志条目je111至je11n可以是日志数据。与多个日志条目je111至je11n一起发送的时间戳ts31可以指示日志条目je111至je11n被发送到非易失性存储器130或者被存储在非易失性存储器130中的时间。例如,存储在日志区域ja1的物理页的日志条目ts31至ts3m的值可以不同于存储在日志区域ja2的物理页的日志条目ts41至ts4m的值。此外,存储在日志区域ja1和ja2中的时间戳ts31至ts3m和ts41至ts4m的值可以不同于存储在主元数据区域mma1和mma2中的时间戳ts11至ts1x和ts21至ts2x的值。与上面存储日志条目je111至je11n和时间戳ts31的方式类似,其余日志条目je1m1至je1mn和je211至je2mn以及其余时间戳ts3m和ts41至ts4m可以存储在日志区域ja1和ja2中。
[0064]
参照图8,控制器110可以针对每个片段(例如,sg111)向非易失性存储器130发送一个时间戳(例如,ts111)。在这种情况下,多个片段(例如,sg111至sg11y)和多个时间戳(例如,ts111至ts11y)的总大小可以对应于非易失性存储器130的一个物理页的大小。图8的时间戳ts111至ts1xy和ts211至ts2xy可以分别指示片段sg111至sg1xy和sg211至sg2xy被发送到非易失性存储器130或被存储在非易失性存储器130中的时间。例如,存储在主元数据区域mma1中的时间戳ts111至ts1xy的值可以不同于存储在主元数据区域mma2中的时间戳ts211到ts2xy的值。
[0065]
在本发明构思的示例性实施例中,在恢复地址映射表amt的情况下,ftl可以识别分别存储在主元数据区域mma1和mma2以及日志区域ja1和ja2中的时间戳ts11至ts1x、ts21至ts2x、ts31至ts3m和ts41至ts4m(在图7的情况下)或者ts111至ts1xy、ts211至ts2xy、ts31至ts3m和ts41至ts4m(在图8的情况下)。基于时间戳ts,ftl可以从主元数据区域mma1和mma2中识别出存储有最近的地址映射表amt的主元数据区域,并且可以从日志区域ja1和ja2中识别出存储有最近的地址映射表amt的日志数据的日志区域。此外,ftl可以基于图6的日志区域ja1和主元数据区域mma2的时间戳ts,使存储在图6的日志区域ja1中的日志数据无效。ftl可以基于最近的地址映射表amt和最近的日志数据,恢复工作存储器112或缓冲存储器120上的地址映射表amt。
[0066]
图9示出包括根据本发明构思的示例性实施例的控制器将地址映射表存储在非易失性存储器中的过程的流程图。将参照图1至图8来描述图9。
[0067]
在操作s110中,控制器110可以从主机11接收请求。主机11的请求可以包括逻辑地址。在操作s120中,控制器110可以根据主机11的请求来更新地址映射表amt、日志缓冲器jb和片段映射表smt。在操作s120中,控制器110可以如图3至图6所示的那样更新地址映射表amt的页映射条目u1、u2和u3。控制器110可以如图3至图6所示的那样将更新后的页映射条目u1、u2和u3存储或重写在日志缓冲器jb中。控制器110可以如图3至图6所示的那样更新片段映射表smt中的片段sg的页映射条目u1、u2和u3的更新时间ut以及片段映射表smt中的相应片段sg的页映射条目u1、u2和u3的数目。
[0068]
在操作s130中,控制器110可以识别日志缓冲器jb是否已满。当日志缓冲器jb已满(是)时,控制器110可以执行操作s140;当日志缓冲器jb未满(否)时,控制器110可以重复地执行操作s110至操作s130。
[0069]
在操作s140中,控制器110可以将存储在日志缓冲器jb中的日志数据存储或重写在非易失性存储器130的日志区域(ja1和ja2之一)中。如参照图7和图8所描述的,控制器
110可以将存储在日志缓冲器jb中的日志数据与时间戳一起发送到非易失性存储器130。存储在日志缓冲器jb中的日志数据和时间戳可以一起存储在日志区域中(ja1和ja2之一)。
[0070]
在操作s150中,控制器110可以识别日志区域(ja1和ja2之一)是否已满。当日志区域(ja1和ja2之一)已满(是)时,控制器110可以执行操作s160;当日志区域(ja1和ja2之一)未满(否)时,控制器110可以重复地执行操作s110至操作s150。
[0071]
在操作s160中,控制器110可以基于优先级将地址映射表amt的片段sg写入或存储在新的主元数据区域(在图6的情况下为mma2)中。控制器110可以在基于优先级将片段sg存储在新的主元数据区域中的同时,使存储在另一个主元数据区域(在图6的情况下为mma1)中的先前地址映射表amt和存储在日志区域(在图6的情况下为ja1)中的日志数据无效。
[0072]
图10示出根据本发明构思的示例性实施例的包括构成图9的操作s160的详细操作的流程图。在操作s161中,控制器110可以以日志数据被存储在日志区域(在图6的情况下为ja1)中的顺序来选择片段sg。在图6的情况下,控制器110可以选择与先存储在日志区域ja1中的日志数据相对应的片段sg3和sg7。
[0073]
在操作s162中,控制器110可以根据片段映射表smt的计数cnt来选择片段sg。如上所述,片段映射表smt的计数cnt可以指示每个片段sg的更新后的页映射条目的数量。在图6的情况下,控制器110可以选择片段sg3和sg7。作为另一示例,与图6的情况相比,当在操作s161中选择的片段的数量更多的情况下,可以根据片段映射表smt的计数cnt来选择片段sg。
[0074]
在操作s163中,控制器110可以将在操作s161和s162中选择的片段发送到非易失性存储器130的主元数据区域(在图6的情况下为mma2)。在操作s164中,控制器110可以更新片段映射表smt,使得片段映射表smt具有非易失性存储器130存储在操作s163中发送的片段的位置。在操作s165中,控制器110可以识别地址映射表amt的所有片段sg是否被发送到非易失性存储器130。当部分片段sg未被发送到非易失性存储器130(否)时,控制器110可以重复地执行操作s161至操作s165;当所有片段sg被发送到非易失性存储器130(是)时,控制器110可以执行操作s166。
[0075]
在操作s166中,控制器110可以擦除非易失性存储器130中的分配给先前主元数据区域(在图6的情况下为mma1)的块,或者存储在块中的地址映射表amt和日志数据。在本发明构思的示例性实施例中,控制器110可以识别存储在各个主元数据区域中的时间戳和存储在各个日志区域中的时间戳,可以识别不是最近的主元数据区域和日志区域(例如,对应于先前的主元数据区域和日志区域),并且可以删除存储在识别出的区域中的数据。
[0076]
在本发明构思的示例性实施例中,控制器110可以在执行操作s120至操作s160以及操作s161至操作s166的同时,处理在操作s110中接收到的主机11的请求。可以同时执行或可以在不同时间执行分别在图9和图10的流程图中示出的操作s110至操作s160以及操作s161至操作s166。
[0077]
图11示出包括根据本发明构思的示例性实施例的控制器恢复地址映射表的过程的流程图。在操作s210中,存储设备100可以被上电,或者可以向存储设备100提供电源电压,并且控制器110可以开始恢复操作。恢复操作可以指在电源事件之后的以下过程:从非易失性存储器130读取元数据,并且将元数据再次加载到工作存储器112或缓冲存储器120上。恢复操作需要如下日志重放:读取存储在日志区域中的日志数据并基于日志数据(例
如,地址映射表amt)更新再次加载的元数据。
[0078]
在操作s220中,控制器110可以识别存储在主元数据区域中的时间戳。控制器110可以比较时间戳,以识别最近日期的主元数据区域。在操作s230中,控制器110可以读取存储在具有最近时间戳的主元数据区域中的地址映射表amt。在地址映射表amt的片段被存储在主元数据区域mma2中的同时(在图6的写入时间w1与写入时间w4之间的时间)发生电源事件的情况下,所有的片段可以无法正常地存储在主元数据区域mma2中。在这种情况下,控制器110可以读取存储在具有最近时间戳的主元数据区域mma2和具有紧接在最近时间戳之前的时间戳的主元数据区域mma1中的片段,并且可以将通过组合读取到的片段而获得的地址映射表amt加载到工作存储器112或缓冲存储器120上。
[0079]
在操作s240中,控制器110可以识别存储在日志区域中的时间戳。控制器110可以比较时间戳,以识别最近的日志区域。此外,控制器110可以通过比较操作s220的时间戳和操作s240的时间戳,来识别存储在每个日志区域中的日志数据是否无效。例如,控制器110可以通过将与图6的日志区域ja1的物理页ppn5的日志数据一起存储的时间戳和与图6的主元数据区域mma2的物理页ppn1的片段一起存储的时间戳进行比较,识别出图6的日志区域ja1的物理页ppn5的日志数据在写入时间w1之后被无效。如以上方式,控制器110可以识别出图6的日志区域ja1的物理页ppn6的日志数据在写入时间w2之后被无效。
[0080]
在操作s250中,控制器110可以读取具有最近时间戳的日志区域中的日志数据,并且可以基于读取到的日志数据来更新加载到工作存储器112或缓冲存储器120上的地址映射表amt,并且控制器110可以执行日志重放。
[0081]
下面将描述根据本发明构思的示例性实施例的几种示例场景。
[0082]
假设以下条件:1)在图6的写入时间w4之后将日志数据存储在日志区域ja2的物理页ppn5之后发生电源事件;2)加载在工作存储器112或缓冲存储器120上的地址映射表amt由于电源事件而丢失;3)存储设备100再次上电,或者向存储设备100提供电源电压。控制器110可以比较存储在各个主元数据区域mma1和mma2中的时间戳,可以从最近的主元数据区域mma2读取地址映射表amt的片段sg1至sg8,并且可以将地址映射表amt加载到工作存储器112或缓冲存储器120。控制器110可以比较存储在各个日志区域ja1和ja2中的时间戳,可以从最近的日志区域ja2读取日志数据,并且可以基于日志数据更新加载到工作存储器112或缓冲存储器120的地址映射表amt。
[0083]
假设以下条件:1)在图6的写入时间w2之后写入时间w3之前,发生电源事件;2)加载在工作存储器112或缓冲存储器120上的地址映射表amt由于电源事件而丢失;3)存储设备100再次上电,或者向存储设备100提供电源电压。因为主元数据区域mma2中未存储有完整的最近的地址映射表amt,所以控制器110可以基于存储在主元数据区域mma1和mma2中的地址映射表amt,来恢复工作存储器112或缓冲存储器120上的地址映射表amt。控制器110可以比较存储在各个主元数据区域mma1和mma2中的时间戳,可以从最近的主元数据区域mma2读取地址映射表amt的片段sg3、sg7、sg1和sg5,可以从先前的主元数据区域mma1读取地址映射表amt的片段sg2、sg4、sg6和sg8,并且可以将包括主元数据区域mma2中的片段sg3、sg7、sg1和sg5以及主元数据区域mma1中的片段sg2、sg4、sg6和sg8的地址映射表amt加载到工作存储器112或缓冲存储器120上。控制器110可以比较存储在日志区域ja1中的时间戳和存储在主元数据区域mma2中的时间戳,并且可以识别出存储在日志区域ja1中的所有日志
数据是无效的。控制器110可以不执行日志重放,并且可以恢复工作存储器112或缓冲存储器120上的地址映射表amt。
[0084]
假设以下条件:1)在图6的写入时间w1之后写入时间w2之前,发生电源事件;2)加载在工作存储器112或缓冲存储器120上的地址映射表amt由于电源事件而丢失;3)存储设备100再次上电,或者向存储设备100提供电源电压。控制器110可以比较存储在各个主元数据区域mma1和mma2中的时间戳,可以从最近的主元数据区域mma2读取地址映射表amt的片段sg3和sg7,可以从先前的主元数据区域mma1读取地址映射表amt的片段sg1、sg5、sg2、sg4、sg6和sg8,并且可以将包括主元数据区域mma2中的片段sg3和sg7以及主元数据区域mma1中的片段sg1、sg5、sg2、sg4、sg6和sg8的地址映射表amt加载到工作存储器112或缓冲存储器120上。通过比较存储在日志区域ja1中的时间戳和存储在主元数据区域mma2中的时间戳,控制器110可以识别出存储在日志区域ja1的物理页ppn5的日志数据是无效的,并且可以识别出存储在日志区域ja1的物理页ppn6的日志数据是有效的。在这种情况下,控制器110不需要执行读取存储在日志区域ja1的物理页ppn5的日志数据并将日志数据应用于地址映射表amt的日志重放。相比之下,控制器110可以执行读取存储在日志区域ja1的物理页ppn6的日志数据并将日志数据应用于地址映射表amt的日志重放。
[0085]
图12示出根据本发明构思的示例性实施例的图1的控制器的详细框图。控制器110a可以包括处理器111、工作存储器112a、主机接口电路(主机i/f)113和非易失性存储器接口电路(nvm i/f)114。参考图1描述了工作存储器112a。例如,可以通过使用片上系统(soc)、专用集成电路(asic)或现场可编程门阵列(fpga)来实现控制器110a。
[0086]
处理器111可以控制工作存储器112a、主机接口电路113和非易失性存储器接口电路114。处理器111可以包括一个或更多个核(例如,同质多核或异质多核)。例如,处理器111可以包括中央处理单元(cpu)、图像信号处理单元(isp)、数字信号处理单元(dsp)、图形处理单元(gpu)、视觉处理单元(vpu)或神经处理单元(npu)中的至少一种。处理器111可以执行加载到工作存储器112a上的ftl,并且可以执行图9至图11的流程图中的操作s110至操作s160、操作s161至操作s166以及操作s210至操作s250。
[0087]
主机接口电路113可以根据接口协议与主机11通信。例如,接口协议可以是通用串行总线(usb)、小型计算机系统接口(scsi)、快速外围组件互连(pcie)、移动pcie(m-pcie)、快速非易失性存储器(nvme)、高级技术附件(ata)、并行ata(pata)、串行ata(sata)、串行连接的scsi(sas)、集成驱动电子设备(ide)、通用闪存(ufs)、firewire等。
[0088]
非易失性存储器接口电路114可以根据诸如双态双倍数据速率(ddr)的接口协议与非易失性存储器130通信。非易失性存储器接口电路114可以基于优先级并且在执行ftl的处理器111的控制下,将地址映射表amt的片段发送到非易失性存储器130。非易失性存储器接口电路114可以在处理器111的控制下,将片段映射表smt发送到非易失性存储器130。非易失性存储器接口电路114可以在处理器111的控制下,将存储在日志缓冲器jb中的日志数据发送到非易失性存储器130。
[0089]
图13示出根据本发明构思的示例性实施例的图2的控制器的详细框图。控制器110b可以包括处理器111、工作存储器112b、主机接口电路(主机i/f)113、非易失性存储器接口电路(nvm i/f)114和缓冲存储器接口电路(buffer i/f)115。参考图12描述了处理器111、主机接口电路113和非易失性存储器接口电路114。参照图2描述了工作存储器112b。缓
冲存储器接口电路115可以根据诸如ddr标准的接口协议与缓冲存储器120通信。缓冲存储器接口电路115可以在处理器111的控制下,将地址映射表amt加载并更新到缓冲存储器120。此外,缓冲存储器接口电路115可以在处理器111的控制下,向非易失性存储器接口电路114提供加载到缓冲存储器120上的地址映射表amt的片段。
[0090]
图14示出根据本发明构思的示例性实施例的电子设备的框图。电子设备1000可以包括主机1100和存储设备1200。主机1100可以包括处理器1110、主机存储器1120和接口电路1130。处理器1110可以执行加载到主机存储器1120上的软件。处理器1110可以包括同质多核或异质多核。例如,处理器1110可以包括中央处理单元(cpu)、图像信号处理单元(isp)、数字信号处理单元(dsp)、图形处理单元(gpu)、视觉处理单元(vpu)或神经处理单元(npu)中的至少一种。
[0091]
管理电子设备1000中的所有硬件和软件的操作系统os可以被加载到主机存储器1120上。用户空间中包括的应用程序、内核空间中包括的文件系统以及设备驱动程序可以被加载到主机存储器1120。加载到主机存储器1120上的程序和软件层不限于图14所示的示例。加载到主机存储器1120上的软件层可以包括在用于访问存储设备1200的软件堆栈中。
[0092]
主机存储器1120可以包括诸如寄存器、片上存储器、sram设备、tcm设备或dram设备的存储介质。应用程序可以作为基本(或默认)服务来执行,或者可以根据用户的请求来执行。存储应用程序的用户空间和存储包括文件系统、设备驱动程序等的内核空间可以彼此分离。应用程序不直接访问诸如存储设备1200的资源。相反,应用程序可以调用在包括系统调用函数的库中定义的函数,并且可以从内核请求必要的任务。在调用系统调用函数的情况下,可以发生从用户模式到内核模式的切换。
[0093]
文件系统可以管理存储在存储设备1200中的文件或数据。例如,文件系统可以包括文件分配表(fat)、新技术文件系统(ntfs)、分层文件系统(hfs)、高性能文件系统(hpfs)、unix文件系统(ufs)、辅助扩展文件系统(ext2)、ext3、ext4、日志文件系统(jfs)、jsf2、iso 9660、files-11、veritas文件系统(vxfs)、zfs、reiserfs、reiser4、通用磁盘格式(udf)、gnome vfs、bfs、winfs等。
[0094]
设备驱动程序是用作内核的一部分以控制诸如存储设备1200的硬件设备的程序。设备驱动程序可以在文件系统的控制下,生成用于控制存储设备1200的命令或请求。设备驱动程序可以起到将文件系统管理的信息转换成存储设备1200可识别的信息的作用。
[0095]
接口电路1130可以在主机1100与存储设备1200之间提供物理连接。例如,接口电路1130可以根据与存储设备1200通信的方式,对与由主机1100生成的各种io请求相对应的命令、地址和数据进行转换。
[0096]
存储设备1200可以处理主机1100的请求。存储设备1200可以包括控制器1210、缓冲存储器1220和非易失性存储装置1230。控制器1210可以是参照图1至图13描述的控制器110、110a和110b之一。缓冲存储器1220可以是参照图2至图13描述的缓冲存储器120。非易失性存储装置1230可以包括参照图1至图13描述的非易失性存储器130中的至少一种。非易失性存储装置1230可以包括通过信道ch1与控制器1210通信的一个或更多个非易失性存储器130、以及通过信道ch2与控制器1210通信的一个或更多个非易失性存储器130。非易失性存储装置1230与控制器1210之间的信道数不限于图14所示的示例。
[0097]
在本发明构思的示例性实施例中,非易失性存储器130可以包括具有三维阵列结
构的三维存储器阵列。三维存储器阵列可以单片地形成在存储器单元阵列的一个或多个物理层中,存储器单元阵列具有布置在与存储器单元的操作有关的电路上的有源区域。与存储器单元的操作有关的电路可以位于硅衬底中或硅衬底上。术语“单片(monolithic)”是指阵列的每一级的层直接沉积在阵列的位于该级下面的级的层上。
[0098]
三维存储器阵列包括垂直取向的垂直nand串,使得至少一个存储器单元位于另一存储器单元上方。至少一个存储器单元包括电荷俘获层。每个垂直nand串可以包括位于存储器单元上方的至少一个选择晶体管。至少一个选择晶体管可以具有与存储器单元的结构基本上相同的结构,并且可以与存储器单元一起单片地成形。三维存储器阵列可以包括多个块blk,并且具有三维存储器阵列的存储器单元可以被划分为多个块blk。多个块blk可以被分配给上述用户数据区域user data、预留区域op、主元数据区域mma1和mma2、日志区域ja1和ja2以及片段映射表区域smta。通过引入的方式将以下描述了三维存储器结构的合适配置的专利文件的整体合并于此:美国专利号为7,679,133、8,553,466、8,654,587和8,559,235以及美国专利公开号为2011/0233648。
[0099]
图15是示出包括根据本发明构思的示例性实施例的存储设备的计算系统的框图。计算系统2000可以包括应用处理器2100、存储器模块2200、网络模块2300、存储设备2400和用户接口2500。应用处理器2100可以驱动操作系统(os)以及包括在作为soc的计算系统2000中的组件。例如,应用处理器2100可以包括参照图1至图14描述的主机11和1100之一。存储器模块2200可以用作计算系统2000的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块2200可以包括易失性随机存取存储器或非易失性随机存取存储器。网络模块2300可以以有线/无线通信方式与外部设备通信。存储设备2400可以是参考图1至图14描述的存储设备100a、100b和1200之一。用户接口2500可以包括向应用处理器2100输入数据或命令或者向外部设备输出数据的接口。
[0100]
如上所述,根据本发明构思的示例性实施例的控制器可以通过根据优先级存储地址映射表的片段来减少日志重放的成本。
[0101]
尽管已经参考本发明构思的示例性实施例描述了本发明构思,但是对于本领域普通技术人员而言显而易见的是,在不脱离所附权利要求阐述的本发明构思的精神和范围的情况下,可以在形式和细节上进行各种改变和修改。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1