存储器控制器及其操作方法及存储设备与流程

文档序号:20163929发布日期:2020-03-24 21:17阅读:316来源:国知局
存储器控制器及其操作方法及存储设备与流程

相关申请的交叉引用

本申请要求于2018年9月17日在韩国知识产权局提交的韩国专利申请no.10-2018-0111026的权益,其公开内容通过引用整体并入本文。

本发明构思的示例实施例涉及一种半导体设备。例如,至少一些示例实施例涉及存储器控制器、操作存储器控制器的方法和/或包括存储器控制器的存储设备。



背景技术:

作为非易失性存储器,闪速存储器即使当电源关闭时也可以保存所存储的数据。近来,包括诸如嵌入式多媒体卡(emmc)、通用闪存(ufs)、固态硬盘(ssd)、nand闪速存储器和存储卡的非易失性存储器的存储设备已经被广泛使用。由于非易失性存储器不能被重写,所以当与逻辑地址相对应的数据要被更新时,存储设备可以将更新后的数据写入到非易失性存储器的可写区域,而不是写入到非易失性存储器中已经写入数据的现有区域,并且可以对包括已经写入实际数据的物理地址和逻辑地址的映射信息进行更新。另一方面,映射信息也可以存储在非易失性存储器中以便永久保存。



技术实现要素:

本发明构思的示例实施例提供了一种能够在非易失性存储器中有效地存储更新后的映射信息的存储器控制器、操作存储器控制器的方法、和/或包括存储器控制器的存储设备。

根据本发明构思的一个示例实施例,提供了一种存储器控制器,包括:存储器,所述存储器被配置为存储地址映射表和段映射表,所述段映射表包括表示多个段中的每个段在非易失性存储器中所存储的区域的物理地址;以及处理电路,所述处理电路被配置为确定所述地址映射表中包括的所述多个段中的至少两个更新后的段,作为要存储在所述非易失性存储器的一个页面中的页面数据,所述多个段中的每个段包括多个表示逻辑地址与物理地址之间的映射信息的映射条目。

根据本发明构思的另一个示例实施例,提供了一种操作存储器控制器的方法,所述操作方法包括:选择地址映射表中包括的多个段中的至少两个更新后的段;将所述至少两个更新后的段分组为一个页面数据;以及指示非易失性存储器将所述页面数据存储在物理地址处。

根据本发明构思的另一个示例实施例,提供了一种存储设备,包括:非易失性存储器;缓冲存储器,所述缓冲存储器被配置为存储地址映射表和段映射表,所述段映射表包括表示多个段中的每个段在所述非易失性存储器中所存储的区域的物理地址;以及存储器控制器,所述存储器控制器被配置为将所述地址映射表中包括的所述多个段中的至少两个更新后的段,分组为要存储在所述非易失性存储器的一个页面中的页面数据,以及向所述非易失性存储器提供所述页面数据,所述多个段中的每个段包括多个表示逻辑地址与物理地址之间的映射信息的映射条目。

附图说明

通过以下结合附图的详细描述,将更清楚地理解本发明构思的示例实施例,其中:

图1是例示了根据本发明构思的一个示例实施例的存储器系统的框图;

图2a是例示了根据本发明构思的一个示例实施例的地址映射表的示图;

图2b是例示了根据本发明构思的一个示例实施例的段映射表的示图;

图3是例示了根据本发明构思的一个示例实施例的地址映射表的更新的示图;

图4a例示了根据本发明构思的一个示例实施例的存储更新后的段的方法;图4b例示了根据本发明构思的一个示例实施例的更新段映射表的方法;

图5a和图5b是例示了根据本发明构思的一个示例实施例的具有可变的数据大小的段的示图;

图6是例示了根据本发明构思的一个示例实施例的控制器的框图;

图7是例示了根据本发明构思的一个示例实施例的控制器110b的框图;

图8是例示了根据本发明构思的一个示例实施例的存储器系统中的映射表的存储和加载的示图;

图9是例示了根据本发明构思的一个示例实施例的控制器的操作方法的流程图;

图10是例示了根据本发明构思的一个示例实施例的控制器的操作方法的示图;

图11是例示了根据本发明构思的一个示例实施例的控制器的操作方法的流程图;

图12是例示了根据本发明构思的一个示例实施例的控制器的操作方法的流程图;

图13a至图13c例示了根据本发明构思的一个示例实施例的调整段的大小的实施例;以及

图14是例示了根据本发明构思的一个示例实施例的ssd的框图。

具体实施方式

在下文中,将参照附图详细描述本发明构思的示例实施例。

图1是例示了根据本发明构思的一个示例实施例的存储器系统的框图。

参照图1,存储器系统100可以包括控制器110(也称为存储器控制器)和非易失性存储器(nvm)120。存储器系统100可以通过各种接口与主机200通信。存储器系统100可以响应于从主机200接收的读取/写入命令cmd,将数据data存储在非易失性存储器120中,或者可以从非易失性存储器120读取数据data。

主机200可以指能够处理数据的数据处理设备,诸如中央处理单元(cpu)、处理器、微处理器和应用处理器(ap)。主机200可以执行操作系统(os)和/或各种应用程序。例如,主机200可以实现为单片系统(soc)。

当请求写入数据data时,主机200可以向存储器系统100发送写入命令cmd、数据data和指示将要存储数据data的逻辑区域的逻辑地址la。当请求读取数据data时,主机200可以向存储器系统100发送读取命令cmd和指示将要读取数据data的逻辑区域的逻辑地址la。

非易失性存储器120可以包括存储单元阵列mca,存储单元阵列mca可以包括存储块blk1至blkz,并且每个存储块blk1至blkz可以包括多个页面pg1至pgk。这里,z和k可以分别是正整数,并且可以根据示例实施例进行各种改变。例如,存储块可以是擦除的单位,页面可以是写入和读取的单位。在一些实施例中,存储单元阵列mca可以包括多个平面(plane)、多个裸芯片(die)或多个芯片。在一个示例实施例中,非易失性存储器120可以包括闪速存储器件,并且可以包括例如与非(nand)闪速存储器件。然而,本发明构思不限于这些示例,并且非易失性存储器120可以包括电阻存储器件,诸如电阻ram(reram)、相变ram(pram)和磁性ram(mram)。在下文中,假设非易失性存储器120是nand闪速存储器件。

在一个示例实施例中,存储单元阵列mca可以是三维(3d)存储阵列。3d存储阵列单片地形成在布置在硅衬底上的有源区域上以及存储单元阵列的至少一个物理层级(level)上,所述至少一个物理层级具有作为与存储单元的操作相关的电路而形成在衬底上或衬底中的电路。术语“单片(monolithic)”意味着构成阵列的每个层级的层直接堆叠在阵列的每个下面的层级的层的顶上。在根据本发明构思的教导的一个示例实施例中,3d存储阵列包括在垂直方向上布置的垂直nand串,使得至少一个存储单元位于另一个存储单元的上方。所述至少一个存储单元可以包括电荷俘获层。

通过引用而并入本文的美国专利no.7,679,133、8,553,466、8,654,587和8,559,235以及美国专利申请公开no.2011/0233648公开了关于由多个层级形成的3d存储阵列的组件,在该3d存储阵列中,字线和/或位线在各层级之间共享。

控制器110可以响应于来自主机200的写入请求来控制非易失性存储器120在存储单元阵列mca中写入数据data,或者响应于来自主机200的读取命令来控制非易失性存储器120读取存储在存储单元阵列mca中的数据。控制器110可以将从主机200接收到的逻辑地址la转换为指示存储单元阵列mca中的物理区域的物理地址pa,然后可以将数据data写入到存储单元阵列mca中的由转换后的物理地址pa指示的区域,或者可以从该区域读取数据data。控制器110可以管理指示逻辑地址la与物理地址pa之间的映射信息的地址映射信息(或地址映射条目)。

参照图1,控制器110可以包括地址映射表amt、段映射表smt和映射数据管理模块mdm。例如,地址映射表amt和段映射表smt可以被加载到控制器110中的存储器(例如,图7的高速缓冲存储器18)中。参照图1,例示了地址映射表amt和段映射表smt被包括在控制器110中,但本发明构思不限于该示例。在一些示例实施例中,地址映射表amt和段映射表smt可以被加载到实现控制器110的控制器芯片外部的存储器芯片(例如,动态随机存取存储器(dram)芯片)中,或者可以被加载到非易失性存储器芯片中。

图2a是例示了根据本发明构思的一个示例实施例的地址映射表的示图。

参照图2a,地址映射表amt可以包括多个段sg0至sgn-1,并且段sg0至sgn-1中的每一个段可以包括多个映射条目et0至et3。在图2a中,段(例如,第二段sg1)被例示为包括四个映射条目et0至et3,但本发明构思不限于该示例。包括在段中的映射条目的数目可以是可变的。

多个段sg0至sgn-1的数据大小是相同的,并且每个段的数据大小可以小于存储单元阵列mca的写入单位的数据大小,例如,页面数据大小。例如,假设页面的数据大小是16千字节,段的数据大小可以是(16/2n)kb(其中n是正整数,并且2n是等于或小于16的整数)。多个段sg0至sgn-1的数据大小可以是可变的。

多个映射条目et0至et3中的每一个映射条目可以包括逻辑地址la和分配给逻辑地址la的物理地址pa。在一个示例实施例中,多个映射条目et0至et3中的每一个映射条目可以包括逻辑页号lpn和分配给逻辑页号lpn的物理页号ppn。例如,第一映射条目et0可以包括逻辑页号lpn_a0和分配给逻辑页号lpn_a0的物理页号ppn_a1。这样,将物理页号映射到逻辑页号的方案可以被称为页面映射方案。

由于非易失性存储器120是不可重写的,当要更新与逻辑地址la相对应的数据时,控制器110可以在存储单元阵列mca中的除了先前已经写入数据data的区域之外的区域(例如,处于擦除状态的有效区域)中写入要更新的数据data,并且可以基于指示已经实际写入数据的区域的新物理地址pa来更新与逻辑地址la相对应的物理地址pa。也就是说,控制器110可以更新映射条目。

例如,在对应于逻辑页号lpn_a0的数据data存储在存储单元阵列mca的与物理页号ppn_a1相对应的一个区域中的状态下,当从主机200接收到逻辑页号lpn_a0和要被写入到非易失性存储器120的数据data以及写入命令cmd时,控制器110可以将数据data存储在存储单元阵列mca的有效页面中,并且基于该有效页面的物理页号更新第一映射条目et0的物理地址pa。例如,当有效页面的物理页号是ppn_a5时,第一映射条目et0的物理地址pa可以从物理页号ppn_a1改变为物理页号ppn_a5。

控制器110可以将地址映射表amt存储在非易失性存储器120中,以持久化地址映射表amt,并且可以在存储器系统100通电时将存储在非易失性存储器120中的地址映射表amt加载到控制器110中的存储器(或控制器110外部的dram芯片)。控制器110可以定期地或响应于事件的发生,将地址映射表amt的多个段sg0至sgn-1中的至少一些更新后的段存储在非易失性存储器120中。此时,更新后的段意味着包括至少一个更新后的映射条目的段。

图2b是例示了根据本发明构思的一个示例实施例的段映射表的示图。

参照图2b,段映射表smt包括与地址映射表amt的多个段sg0至sgn-1中的每一个段相对应的每个物理地址pa。物理地址pa指示非易失性存储器120的存储单元阵列mca中存储段的区域。段映射表smt包括段映射信息,即多个段sg0至sgn-1在非易失性存储器120的存储单元阵列mca中所存储的位置。

如上面参照图2a所述,段的数据大小小于页面的数据大小,并且多个段可以存储在存储单元阵列mca的一个页面中。因此,与包括在段映射表smt中的每个段相对应的物理地址pa可以包括物理页号和偏移量。偏移量表示页面中存储段的位置。例如,偏移量表示从页面的第一个字节起多少个字节存储段。

如图2b中所示,多个段(例如,四个段)可以存储在一个页面中。例如,当第一至第四段sg0至sg3存储在一个页面中时,第一至第四段sg0至sg3的物理页号相同,但他们的偏移量可以不同。

如上面参照图2a所述,多个段sg0至sgn-1中的一些段可以被更新,并且更新后的段可以存储在非易失性存储器120中。当更新后的段存储在非易失性存储器120中时,段的物理地址pa可以在段映射表smt中改变。例如,当第二段sg1被更新并被存储在非易失性存储器120的存储单元阵列mca中时,第二段sg1的指示物理页号ppn_b0和偏移量off_1的物理地址pa可以被改变为指示存储更新后的段的物理页号及其偏移量的物理地址pa。这样,当更新后的段存储在非易失性存储器120中时,可以更新与该段相对应的物理地址pa。

另一方面,为了段映射表smt的持久性,控制器110可以将段映射表smt存储在非易失性存储器120中。控制器110可以定期地或响应于事件的发生,将段映射表smt存储在非易失性存储器120中。控制器110可以在存储器系统100的通电时间将存储在非易失性存储器120中的段映射表smt加载到控制器110中的存储器(或控制器110外部的dram芯片)中。控制器110可以基于段映射表smt的段的段映射信息从非易失性存储器120加载地址映射表amt。

参照图1,映射数据管理模块mdm可以管理地址映射表amt和段映射表smt。映射数据管理模块mdm可以将地址映射表amt的多个段sg0至sgn-1中的更新后的段存储在非易失性存储器120中。映射数据管理模块mdm可以选择多个段sg0至sgn-1中的至少两个段,作为要存储在非易失性存储器120的一个页面中的页面数据。映射数据管理模块mdm可以基于指示将要存储所述至少两个段的页面的物理地址pa来更新段映射表smt。映射数据管理模块mdm可以向非易失性存储器120提供指示要存储所述至少两个段的页面的物理地址pa。

在一个示例实施例中,如下面参照图7所讨论的那样,控制器100可以包括存储器和处理器,其中存储器存储指令,当由处理器执行该指令时将处理器配置为专用处理器以使用存储器的闪存转换层ftl执行映射数据管理模块mdm的功能。然而,本发明构思不限于该示例,并且映射数据管理模块mdm可以通过硬件或者硬件与软件的结合来实现。因此,处理器(例如,映射数据管理模块mdm)可以通过减少不必要的写入和/或写入操作次数来减少非易失性存储器120的开销(overhead),从而改善存储器系统100自身的功能。

因此,在根据本发明构思的一个示例实施例的存储器系统100中,控制器110可以将地址映射表amt的映射条目分组为存储单元阵列mca的写入单位(也就是,小于页面单位的段单位),可以将至少两个段分组为一个页面数据,并且可以将页面数据写入到存储单元阵列mca的一个页面。控制器110可以通过使用段映射表smt来管理指示地址映射表amt中包括的多个段中的每个段在存储单元阵列mca中所存储的位置的物理地址pa,并且当更新后的段被写入到存储单元阵列mca中时,控制器110可以基于指示被写入的位置的物理地址pa来更新段映射表smt。

作为本发明构思的示例实施例的比较示例,为了使控制器能逐页地管理地址映射表amt的映射条目并将更新后的映射条目存储在非易失性存储器120中,当以页面为单位分组的映射条目被写入到存储单元阵列mca时,未被更新的多个映射条目会一起被写入到存储单元阵列mca。这可能导致不必要的写入。而且,当地址映射表amt的多个位置的映射条目被更新时,即,当属于不同页面的映射条目被更新时,为了将更新后的映射条目存储在非易失性存储器120中,可能执行多次写入操作,从而导致非易失性存储器120中的开销。

然而,如上所述,在根据本发明构思的一个示例实施例的存储器系统100中,控制器110可以以小于页面单位的段单位来管理映射条目,并且将包括更新后的映射条目的更新后的段分组为页面数据从而写入到存储单元阵列mca,从而减少不必要的写入,或者使不必要的写入最少,并减少写入次数。因此,可以减少非易失性存储器120的开销。

根据本发明构思的示例实施例的存储器系统100可以嵌入在电子设备中或者实现为电子设备。电子设备可以实现为例如个人计算机(pc)、数据服务器、网络附加存储器(nas)、物联网(iot)设备或便携式电子设备。便携式电子设备可以是膝上型电脑、移动电话、智能手机、平板pc、个人数字助理(pda)、企业数字助理(eda)、数字静物摄影机、数码摄像机、个人导航设备、mp3播放器、掌上游戏机、电子书、可穿戴设备等。

在一些示例实施例中,存储器系统100可以是嵌入在电子设备中的内部存储器。例如,存储器系统100可以是ssd、嵌入式通用闪存(ufs)存储设备或嵌入式多媒体卡(emmc)。在一些示例实施例中,存储器系统100可以是可从电子设备移除的外部存储器。例如,存储器系统100可以是ufs存储卡、紧凑型闪存(cf)卡、安全数字(sd)卡、微安全数字(sd)卡、迷你安全数字(sd)卡或记忆棒。

图3是例示了根据本发明构思的一个示例实施例的地址映射表的更新的示图。

参照图3,地址映射表amt可以包括多个段sg0至sgn-1,每个段包括多个映射条目,每个映射条目包括与其逻辑地址la相对应的物理地址pa。例如,每个段可以包括四个映射条目。

例如,第二段sg1可以包括第一至第四映射条目et0至et3。第一映射条目et0可以包括逻辑页号lpn_a0及其对应的物理页号ppn_a1,第二映射条目et1可以包括逻辑页号lpn_a1及其对应的物理页号ppn_a2,第三映射条目et2可以包括逻辑页号lpn_a2及其对应的物理页号ppn_a3,第四映射条目et3可以包括逻辑页号lpn_a3及其对应的物理页号ppn_a4。

可以从图1的主机200接收将要存储数据的逻辑地址la以及写入命令,并且当逻辑页号lpn_a1和lpn_a3被接收为逻辑地址la时,与逻辑页号lpn_a1和lpn_a3相对应的物理页号可以被重新分配。例如,物理页号ppn_b1和ppn_b2可以被分别分配给第二映射条目et1的逻辑页号lpn_a1和第四映射条目et3的逻辑页号lpn_a3。来自主机200的请求写入的数据可以存储在与非易失性存储器120(图1)的存储单元阵列mca(图1)中的物理页号ppn_b1和ppn_b2相对应的区域中。

同时,第二映射条目et1和第四映射条目et3的物理页号可以分别被更改为ppn_b1和ppn_b2。换句话说,第二映射条目et1和第四映射条目et3可以被更新。另外,第二段sg1包括更新后的映射条目,并且可以被确定为更新后的段。这样,多个段sg0至sgn-1之中的包括至少一个更新后的映射条目的段可以被确定为更新后的段。

图4a例示了根据本发明构思的一个示例实施例的存储更新后的段的方法,图4b例示了根据本发明构思的一个示例实施例的更新段映射表的方法。

假设包括在地址映射表amt中的多个段sg0至sgn-1的数据大小是页面的数据大小的1/4,以及多个段sg0至sgn-1之中的段sg1、sg5、sga和sgb是更新后的段。

参照图1和图4a,控制器110的映射数据管理模块mdm可以按页面单位对更新后的段进行分组,并且可以将分组后的段存储在非易失性存储器120中。如图所示,映射数据管理模块mdm可以将更新后的段sg1、sg5、sga和sgb分组为一个页面数据并将分组后的页面数据提供给非易失性存储器120。非易失性存储器120可以通过一次写入操作将接收到的页面数据(即,包括在分组后的段sg1、sg5、sga和sgb中的数据)写入到存储单元阵列mca的一个页面中。

作为另一个示例,当多个段sg0至sgn-1的数据大小是页面的数据大小的一半时,映射数据管理模块mdm可以将更新后的段sg1和sg5分组为一个页面数据,并且可以将分组后的页面数据提供给非易失性存储器120。另外,映射数据管理模块mdm可以将更新后的段sga和sgb分组为另一个页面数据,并且将另一个页面数据提供给非易失性存储器120。非易失性存储器120可以通过两次写入操作将接收到的两个页面数据写入到存储单元阵列mca的两个页面。

参照图1和图4b,同时,如图4b所示,在段映射表smta中,存储在存储单元阵列mca中的更新后的段sg1、sg5、sga和sgb的物理地址pa可以被更新。由于更新后的段sg1、sg5、sga和sgb存储在存储单元阵列mca中的同一页面中,因此在段映射表smtb中,与段sg1、sg5、sga和sgb相对应的物理地址pa具有相同的页号,例如,ppn_g0。另外,与段sg1、sg5、sga和sgb相对应的物理地址pa可以包括指示段sg1、sg5、sga和sgb在与物理页号ppn_g0相对应的页面中的存储位置的不同偏移量,即,off_0、off_1、off_2和off_3。

图5a和图5b是例示了根据本发明构思的一个示例实施例的具有可变的数据大小的段的示图。

参照图5a和图5b,段sg的数据大小可以是可变的。例如,如图5a所示,段sg的数据大小可以是4kb。当页面的数据大小是16kb时,可以将四个段sg分组到一个页面中,以便更新后的段存储在图1的非易失性存储器120中。作为另一个示例,如图5b所示,段sg的数据大小可以是2kb。当页面的数据大小是16kb时,可以将8个段sg分组到一个页面中,以便更新后的段存储在图1的非易失性存储器120中。

在一个示例实施例中,可以根据存储器系统(图1的100)的通电在设置操作中设置段sg的数据大小。此时,段sg的数据大小在每次设置时可以是可变的。

在另一个示例实施例中,可以在存储器系统100的操作阶段中设置段sg的数据大小,并且段sg的数据大小在存储器系统100的操作过程中可以是可变的。

图6是例示了根据本发明构思的一个示例实施例的控制器的框图。

参照图6,控制器110a可以包括处理器11、工作存储器12、纠错码(ecc)引擎13、主机接口(i/f)14、dram接口15和非易失性存储器接口16,他们能够通过总线17彼此通信。

处理器11可以包括中央处理单元、微处理器等,并且可以控制控制器110a的整体操作。在一个示例实施例中,处理器11可以实现为多核处理器,例如,双核处理器或四核处理器。

工作存储器12可以存储用于控制控制器110a的固件和数据。存储的固件和数据可以由处理器11处理。工作存储器12可以实现为诸如dram或sram的易失性存储器,或者诸如pram或闪速存储器的非易失性存储器。

工作存储器12可以存储闪存转换层(ftl)。由于非易失性存储器(图1中的120)的写入/读取操作是逐页执行的并且擦除操作是逐块执行的,因此可以执行非易失性存储器120的写入、读取和擦除操作的管理。ftl是用于管理非易失性存储器120的写入、读取和擦除操作的系统软件(或固件)。ftl可以被加载到工作存储器12中并由处理器11操作。

例如,使用ftl,处理器11可以管理使主机(图1中的200)提供的逻辑地址与非易失性存储器120中使用的物理地址相匹配的地址映射表amt。例如,处理器11可以使用ftl来执行映射数据管理模块(图1的mdm)的功能,并且映射数据管理模块mdm可以管理地址映射表amt和段映射表smt。地址映射表amt和段映射表smt可以存储在控制器110a外部的dram130中。然而,本发明构思的示例实施例不限于该示例,并且工作存储器12可以用作缓冲存储器、高速缓冲存储器等。此外,地址映射表amt和段映射表smt可以存储在工作存储器12中。

ecc引擎13可以对要写入到非易失性存储器120的数据执行纠错编码,并且可以对从非易失性存储器120读取的数据执行纠错译码。ecc引擎13可以被配置为通过使用诸如低密度奇偶校验(ldpc)码、bch码、turbo码、里所(reed-solomon)码、卷积码、递归系统码(rsc)、网格编码调制(tcm)或块编码调制(bcm)的编码调制来执行纠错,但是本发明构思不限于这些示例。另一方面,当地址映射表amt的段被存储在非易失性存储器120中时,ecc引擎13可以对段执行纠错编码。因此,可以以ecc为单位设置段的最小单位。

主机接口14可以提供主机200与控制器110a之间的接口,并且可以包括根据通用串行总线(usb)、多媒体卡(mmc)、pci-express(pci-e)、at附件(ata)、串行at附件(sata)、并行at附件(pata)、小型计算机系统接口(scsi)、串行连接scsi(sas)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)等的接口。

dram接口15可以提供控制器110a与dram130之间的接口。dram130可以通过dram接口15临时存储从主机200提供的写入数据或从非易失性存储器120读取的数据。当非易失性存储器120中的数据在主机200的读取请求下被高速缓存在dram130中时,dram130可以支持将高速缓存的数据直接提供给主机200的高速缓存功能。此时,没有访问非易失性存储器120。通常,通过主机200的总线格式(例如,sata或sas)的数据传输速率远高于存储器系统100的存储通道的数据传输速率。也就是说,当主机200的接口速度较高时,大容量的dram130提供缓冲功能,因此,可以减小(或者,最小化)由速度差引起的性能下降。dram130还可以存储从非易失性存储器120读出的地址映射表amt和段映射表smt。

非易失性存储器接口16可以提供控制器110a与非易失性存储器120之间的接口。例如,来自主机200的请求写入或读取的数据可以通过非易失性存储器接口16在控制器110与非易失性存储器120之间发送和接收。存储在非易失性存储器120中的地址映射表amt和段映射表smt也可以通过非易失性存储器接口16在控制器110a与非易失性存储器120之间发送和接收。在一个示例实施例中,非易失性存储器接口16的数目对应于构成非易失性存储器120的非易失性存储器芯片的数目或者控制器110a与非易失性存储器120之间的通道的数目。

图7是例示了根据本发明构思的一个示例实施例的控制器110b的框图。

参照图7,控制器110b可以包括处理器11、工作存储器12、ecc引擎13、主机接口14、非易失性存储器接口16、高速缓冲存储器18,他们能够通过总线17彼此通信。

处理器11、工作存储器12、ecc引擎13、主机接口14和非易失性存储器接口16的操作与参照图6描述的操作相同,因此,这里省略对他们的冗余描述。

高速缓冲存储器18可以支持高速缓存功能,并且可以实现为寄存器、sram、dram等。存储在作为非易失性存储器的非易失性存储器120中的一部分数据可以临时存储在高速缓冲存储器18中,并且地址映射表amt和段映射表smt也可以存储在高速缓冲存储器18中。

在一个示例实施例中,当高速缓冲存储器18的容量不足以存储所有地址映射表amt和段映射表smt时,地址映射表amt的至少一部分(例如,地址映射表amt的多个段中的一些段),或者地址映射表amt和段映射表smt中的每一个的至少一部分可以存储(高速缓存)在高速缓冲存储器18中。当从主机(图1中的200)提供的逻辑地址没有包括在高速缓冲存储器18中存储的段中包括的映射条目中时,非易失性存储器120中存储的段映射表中包括的其他段可以从非易失性存储器120中被读取并存储在高速缓冲存储器18中。此时,由于高速缓冲存储器18的容量有限,因此高速缓冲存储器18中存储的一些段会被转储清除(flushed)。如上所述,更新后的段按页面单位分组,并且分组后的段可以被存储在非易失性存储器120中。

图8是例示了根据本发明构思的一个示例实施例的存储器系统中的映射表的存储和加载的示图。

参照图8,非易失性存储器120的存储单元阵列可以包括元数据区域121和用户数据区域122。来自主机200的请求写入的通用数据可以存储在用户数据区域122中。用于管理用户数据区域122中存储的数据的元数据可以存储在元数据区域121中。例如,元数据可以包括逻辑地址与物理地址之间的映射信息、每个块的写入和擦除计数、耗损均衡信息等。

在一个示例实施例中,地址映射表amt和段映射表smt可以存储在元数据区域121中。当存储器系统100通电时,控制器110可以从非易失性存储器120读取段映射表smt。控制器110还可以从非易失性存储器120读取地址映射表amt。此时,控制器110可以通过基于包括在段映射表smt中的段映射信息从非易失性存储器120读取段来读取地址映射表amt。已经读取的段映射表smt和地址映射表amt可以被加载到dram130中。然而,本发明构思的示例实施例不限于该示例,并且在一个示例实施例中,段映射表smt和地址映射表amt可以被加载到控制器110中的存储器中。

另一方面,当加载在dram130中的地址映射表amt中至少一个段被更新时,控制器110可以将该至少一个段存储在非易失性存储器120的元数据区域121中。如上所述,控制器110可以将更新后的至少两个段逐页分组并将分组后的数据提供给非易失性存储器120。另外,控制器110可以将更新后的段映射表smt存储在非易失性存储器120中。

图9是例示了根据本发明构思的一个示例实施例的控制器的操作方法的流程图。

参照图1和图9,在操作s110中,控制器110可以更新地址映射表中包括的多个段中的至少两个段。例如,控制器110可以根据来自主机200的写入请求(即,写入命令和逻辑地址)将数据存储在非易失性存储器120中,并且可以更新与逻辑地址相对应的映射条目,从而更新包括所述映射条目的段。根据来自主机200的多个写入请求,控制器110可以更新至少两个段。

在操作s120中,控制器110可以从多个段中选择至少两个更新后的段。例如,控制器110可以选择至少两个段作为要存储在非易失性存储器120的一个页面中的页面数据。在一个示例实施例中,控制器110可以从更新后的段中选择包括相对大量的更新后的映射条目的段。在另一个示例实施例中,控制器110可以确定每个段的重要性(优先级),并且可以在更新后的段中选择具有相对高重要性的段。

在操作s130中,控制器110可以将所选择的至少两个段存储在非易失性存储器120中。例如,控制器110可以对所选择的至少两个段进行分组以生成页面数据,并且向非易失性存储器120提供页面数据以及指示将要存储页面数据的位置的物理地址。非易失性存储器120可以基于物理地址将页面数据存储在存储单元阵列mca中。包括至少两个段的页面数据可以存储在存储单元阵列mca的元数据区域中。

在操作s140中,控制器110可以基于至少两个段在非易失性存储器120的存储单元阵列mca中所存储的物理地址来更新段映射表。例如,基于所存储的存储段的物理页号及其偏移量,控制器110可以管理地址映射表amt中包括的多个段中的每个段的物理地址,并且可以更新与这两个段相对应的物理地址。

在操作s150中,控制器110可以定期地或在发生诸如存储器系统100断电之类的特定事件时,将段映射表smt存储在非易失性存储器120中。

图10是例示了根据本发明构思的一个示例实施例的控制器的操作方法的示图。

参照图10,控制器110可以包括高速缓冲存储器18,并且地址映射表amt的部分amta可以被加载(存储)到高速缓冲存储器18中。高速缓冲存储器18的容量可能相对较小,不能加载整个地址映射表amt,因此可以将存储在非易失性存储器120中的地址映射表amt的部分amta加载到高速缓冲存储器18中。例如,第一至第八段sg0至sg7可以被加载到高速缓冲存储器18中。此外,尽管未示出,但段映射表smt可以被加载到高速缓冲存储器18中。

在第一至第八段sg0至sg7的第二段sg1、第七段sg6和第八段sg7被更新的状态下,当要将其他段加载到高速缓冲存储器18中时,更新后的段中的一些段可能被转储清除。也就是说,更新后的段中的一些段可以存储在非易失性存储器120中。

映射数据管理模块mdm可以选择更新后的段sg1、sg6和sg7中的一些段,并将所选择的段分组为页面数据。在一个示例实施例中,映射数据管理模块mdm可以选择包括更多更新的映射条目的段或重要性相对高的段。例如,映射数据管理模块mdm可以选择第二段sg1和第八段sg7,并且可以将所选择的第二段sg1和第八段sg7分组为页面数据。第二段sg1和第八段sg7可以被提供给非易失性存储器120,并且非易失性存储器120可以将第二段sg1和第八段sg7存储在元数据区域121的一个页面中。

另一方面,在非易失性存储器120中存储的地址映射表amt中包括的多个段中,未加载到高速缓冲存储器18中的其他段可以被加载到高速缓冲存储器18中。例如,第九段sg8和第十段sg9可以高速缓存在高速缓冲存储器18中。因此,地址映射表amt的另一部分amtb可以被加载到高速缓冲存储器18中。

图11是例示了根据本发明构思的一个示例实施例的控制器的操作方法的流程图。图11示出了当存储器系统通电时控制器的操作方法。

参照图1和图11,在操作s210中,存储器系统100和控制器110可以通电,并且控制器110可以根据通电进入设置阶段。

在操作s220中,控制器110可以加载段映射表smt。例如,控制器110可以将存储在非易失性存储器120中的段映射表smt加载到控制器110中的存储器或控制器110外部的缓冲器(例如,dram)中。

在操作s230中,控制器110可以基于段映射表smt的段映射信息来加载地址映射表amt。段映射表smt包括地址映射表amt中包括的每个段的物理地址。因此,控制器110可以基于段映射表smt的段映射信息,通过访问存储单元阵列mca中的每个段所存储的区域来读取段。因此,段映射表smt可以被加载到控制器110中的存储器或位于控制器110外部的缓冲器(例如,dram)中。

图12是例示了根据本发明构思的一个示例实施例的控制器的操作方法的流程图。在该实施例中,控制器可以在存储器系统的操作过程中改变段的大小。

参照图1和图12,在操作s310中,控制器110可以将段的大小(数据大小)设置为最小的大小。在一个示例实施例中,最小的大小可以是ecc单位,并且段可以包括多个映射条目。

在操作s320中,控制器110可以确定地址映射表amt中包括的多个段中的更新后的段的数目。例如,控制器110可以在存储器系统100的操作期间对更新后的段的数目进行计数。

在操作s330中,控制器110可以基于所确定的数目重置段的大小并重置段映射表。例如,主机200请求写入的数据的逻辑地址la可能集中在两个特定段中,因此,控制器110可以确定这两个段已被更新。控制器110可以将段的大小设置为页面的1/2,使得这两个段可以被分组为页面数据。设置为最小的大小的多个段可以被重置为一个段。另一方面,段映射表包括多个段中的每个段的物理地址。当多个段被重置为一个段时,多个段中的每个段的物理地址可以被设置为与该一个段相对应的物理地址。

图13a至图13c例示了根据本发明构思的一个示例实施例的调整段的大小的实施例。

参照图13a至图13c,地址映射表amt可以包括多个段sg0至sgn-1,段的大小可以是2kb,并且写入单位(即,页面)的大小可以是16kb。

参照图13a,多个段sg0至sgn-1中的两个段sg2和sga可能被更新。控制器(图1的110)可以将更新后的两个段sg2和sga存储在非易失性存储器(图1中的120)中。此时,控制器110可以将段的大小重置为8kb,并且可以将多个段sg0至sgn-1中的四个段重置为一个段。例如,第一至第四段sg0至sg3可以被重置为第一段sg'0。控制器110可以将分别包括更新后的段sg2和sga的重置段sg'0和sg'm分组为一个页面数据,并且可以将该页面数据存储在非易失性存储器120中。

参照图13b,多个段sg0至sgn-1中的四个段sg2、sg7、sga和sgb可能被更新。控制器(图1的110)可以将更新后的四个段sg2、sg7、sga和sgb存储在非易失性存储器(图1中的120)中。此时,控制器110可以将段的大小重置为4kb,并且可以将多个段sg0至sgn-1中的两个段重置为一个段。例如,第一段sg0和第二段sg1可以被重置为第一段sg'0。控制器110可以将分别包括更新后的段sg2、sg7、sga和sgb的重置段sg'1、sg'3、sg'r和sg't分组为一个页面数据,并且可以将该页面数据存储在非易失性存储器120中。

参照图13c,多个段sg0至sgn-1中的七个段sg2、sg4、sg5、sg7、sga、sgb和sgn-1可能被更新。控制器(图1的110)可以将更新后的七个段sg2、sg4、sg5、sg7、sga、sgb和sgn-1存储在非易失性存储器(图1中的120)中。七个段的大小为14kb。因此,不需要重置段的大小。控制器110可以将七个段sg2、sg4、sg5、sg7、sga、sgb和sgn-1分组为一个页面数据,并将该页面数据存储在非易失性存储器120中。

这样,根据本发明构思的一个示例实施例,在存储器系统100的操作过程中,段的大小可以是可变的。另一方面,如上参照图13a至图13c所述,当段的大小被重置时,多个段中的每个段的物理地址可以被设置为与所述多个段合并并被重置成的一个段相对应的物理地址。段映射表smt可以被重置以包括重置的段的物理地址。

图14是例示了根据本发明构思的一个示例实施例的ssd的框图。

参照图14,ssd系统1000包括主机1100和ssd1200。

ssd1200可以包括ssd控制器1210、缓冲存储器1220和非易失性存储器件1230。

ssd控制器1210提供主机1100与ssd1200之间的物理连接。ssd控制器1210响应于主机1100的总线格式给ssd1200提供接口。具体地,ssd控制器1210对从主机1100提供的命令进行译码。根据译码结果,ssd控制器1210访问非易失性存储器件1230。通用串行总线(usb)、小型计算机系统接口(scsi)、pciexpress、ata、并行ata(pata)、串行ata(sata)、串行连接scsi(sas)等可以用作主机1100的总线格式。

另外,ssd控制器1210可以包括被配置为执行映射数据管理模块mdm的功能的处理器,并且可以管理如参照图1至图13所述的地址映射表amt和段映射表smt。当将加载到缓冲存储器1220的地址映射表amt中包括的多个段中的更新后的段存储到非易失性存储器件1230中时,ssd控制器1210可以选择至少两个更新后的段,将所选择的至少两个段分组为页面数据,并将该页面数据连同物理地址提供给非易失性存储器件1230。可以基于提供给非易失性存储器件1230的物理地址和页面数据来更新段映射表smt。

从主机1100提供的写入数据或从非易失性存储器件1230读取的数据临时存储在缓冲存储器1220中。当非易失性存储器件1230中的数据在主机1100的读取请求下被高速缓存时,缓冲存储器1220支持直接向主机1100提供高速缓存数据的高速缓存功能。通常,主机1100以总线格式(例如,sata或sas)传输数据的速率远高于ssd1200的存储通道的传输速率。也就是说,当主机1100的接口速度较高时,通过提供大容量的缓冲存储器1220,可以减少(或者,最小化)由速度差引起的性能下降。

缓冲存储器1220还可以存储地址映射表amt和段映射表smt。

非易失性存储器件1230被提供为ssd1200的存储介质。例如,非易失性存储器件1230可以被提供为具有大存储容量的nand型闪速存储器。非易失性存储器件1230通过多个通道耦接到ssd控制器1210。尽管已经通过nand闪速存储器的示例描述了作为存储介质的非易失性存储器件1230,但非易失性存储器件1230也可以与其他非易失性存储器件一起配置。例如,pram、mram、reram、fram、nor闪速存储器等可以用作存储介质,并且还可以应用不同种类的存储器件相结合的存储器系统。另外,易失性存储器件(例如,dram)可以被包括为存储介质。

如上所述,已经在附图和说明书中公开了示例实施例。虽然本文已经参照特定术语描述了示例实施例,但是应当理解的是,他们仅用于描述本发明构思的技术理念的目的,而不是用于限制所附权利要求中限定的发明构思的范围。因此,本领域技术人员将理解的是,在不脱离本发明构思的范围的情况下,各种修改和等同实施例是可能的。因此,应当基于所附权利要求来确定本发明构思的示例实施例的真实保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1