数据存储装置及其操作方法转让专利

申请号 : CN201910748761.8

文献号 : CN110858129A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵荣翼朴炳奎洪性宽

申请人 : 爱思开海力士有限公司

摘要 :

本发明涉及一种数据存储装置。该数据存储装置包括:非易失性存储器装置,包括地址映射表;存储器,包括顺序映射表,该顺序映射表存储逻辑块地址之中的连续逻辑块地址的顺序映射条目,从主机装置接收逻辑块地址与写入请求;以及处理器,被配置成当触发映射更新操作时,从地址映射表中读取包括其映射信息将被更新的逻辑块地址的一个或多个映射段;将所读取的一个或多个映射段存储在存储器中;使用包括存储在顺序映射表中的将被更新的逻辑块地址的第一顺序映射条目,顺序地改变映射到将被更新的各个逻辑块地址的物理块地址;并且将所改变的物理块地址存储在存储器中。

权利要求 :

1.一种数据存储装置,包括:

非易失性存储器装置,包括地址映射表;

存储器,包括顺序映射表,其中所述顺序映射表存储逻辑块地址之中的连续逻辑块地址的顺序映射条目,从主机装置接收所述逻辑块地址与写入请求;以及处理器:当触发映射更新操作时,从所述地址映射表中读取包括逻辑块地址的一个或多个映射段,所述逻辑块地址的映射信息将被更新;

将所读取的一个或多个映射段存储在所述存储器中;

使用包括存储在所述顺序映射表中的将被更新的所述逻辑块地址的第一顺序映射条目,顺序地改变映射到将被更新的各个所述逻辑块地址的物理块地址;并且将所改变的物理块地址存储在所述存储器中。

2.根据权利要求1所述的数据存储装置,其中所述第一顺序映射条目包括起始逻辑块地址、逻辑块地址长度和起始物理块地址。

3.根据权利要求2所述的数据存储装置,其中所述起始物理块地址包括块编号和偏移。

4.根据权利要求3所述的数据存储装置,其中所述处理器通过将映射到将被更新的所述逻辑块地址的起始逻辑块地址的物理块地址改变为所述起始物理块地址,并且通过将映射到其它逻辑块地址的物理块地址改变为通过从所述起始物理块地址顺序地递增所述偏移而获得的所述物理块地址,顺序地改变映射到将被更新的各个所述逻辑块地址的所述物理块地址。

5.根据权利要求1所述的数据存储装置,其中所述存储器进一步包括地址缓冲器,所述地址缓冲器具有存储与所述写入请求一起从所述主机装置接收的所述逻辑块地址的区域。

6.根据权利要求5所述的数据存储装置,其中所述处理器确定所述第一顺序映射条目是否存在于所述顺序映射表中,其中,当不存在所述第一顺序映射条目时,所述处理器检测将被更新的所述逻辑块地址被分别存储在所述地址缓冲器中的区域,并使用分别对应于所检测到的区域的物理块地址改变映射到将被更新的所述逻辑块地址的所述物理块地址。

7.根据权利要求5所述的数据存储装置,其中当所述地址缓冲器被填充到具有逻辑块地址的容量时,触发所述映射更新操作。

8.一种数据存储装置的操作方法,所述数据存储装置包括:非易失性存储器装置,包括地址映射表;以及控制器,控制所述非易失性存储器装置,所述操作方法包括:当触发映射更新操作时,从所述地址映射表中读取包括逻辑块地址的映射段,并且将所读取的映射段存储在所述存储器中,所述逻辑块地址的映射信息将被更新;以及使用包括将被更新的所述逻辑块地址的顺序映射条目,顺序地改变映射到将被更新的各个所述逻辑块地址的物理块地址,并将所改变的物理块地址存储在所述存储器中。

9.根据权利要求8所述的操作方法,其中通过参考存储在所述存储器中的更新映射段列表,执行从所述地址映射表读取所述映射段和将所读取的映射段存储在所述存储器中。

10.根据权利要求8所述的操作方法,进一步包括:确定是否存在包括将被更新的所述逻辑块地址的所述顺序映射条目。

11.根据权利要求8所述的操作方法,其中所述顺序映射条目包括起始逻辑块地址、逻辑块地址长度和起始物理块地址。

12.根据权利要求11所述的操作方法,其中所述起始物理块地址包括块编号和偏移。

13.根据权利要求12所述的操作方法,其中顺序地改变映射到将被更新的各个所述逻辑块地址的所述物理块地址包括:将映射到将被更新的所述逻辑块地址的起始逻辑块地址的物理块地址改变为所述起始物理块地址;以及将映射到将被更新的所述逻辑块地址的其它逻辑块地址的所述物理块地址改变为通过从所述起始物理块地址顺序地增加偏移1而获得的所述物理块地址。

14.根据权利要求8所述的操作方法,进一步包括:确定是否存在包括将被更新的所述逻辑块地址的所述顺序映射条目。

15.根据权利要求14所述的操作方法,进一步包括:

当不存在所述顺序映射条目时,检测将被更新的所述逻辑块地址存储在地址缓冲器中的区域,所述地址缓冲器包括分别存储与写入请求一起从主机装置接收的所述逻辑块地址的区域;以及将映射到将被更新的所述逻辑块地址的物理块地址改变为对应于所检测到的区域的物理块地址。

16.根据权利要求15所述的操作方法,其中当所述地址缓冲器被填充到具有逻辑块地址的容量时,触发所述映射更新操作。

17.一种数据存储装置,包括:

地址映射表,包含分别相互映射的逻辑地址和物理地址之间的第一信息;

顺序映射表,包含一个或多个顺序映射条目,每个所述顺序映射条目包括起始逻辑地址和连续逻辑地址的长度以及起始物理地址;以及控制组件:

基于所述第一信息之中的将被更新的第二信息中的连续逻辑地址,识别在所述顺序映射表内的将被更新的顺序映射条目;

基于所识别的顺序映射条目,更新对应于所述第二信息中的所述连续逻辑地址的连续物理地址;并且基于所述第二信息更新所述第一信息。

说明书 :

数据存储装置及其操作方法

[0001] 相关申请的交叉引用
[0002] 本申请要求于2018年8月22日向韩国知识产权局提交的申请号为10-2018-0097844的韩国申请的优先权,其通过引用整体并入本文。

技术领域

[0003] 各个实施例总体涉及一种电子装置,且更特别地,涉及一种数据存储装置及其操作方法。

背景技术

[0004] 最近,计算环境的范例已经变为可以随时随地使用计算机系统的普适计算环境。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增长。这些便携式电子装置通常采用使用存储器装置的数据存储装置。数据存储装置用于存储便携式电子装置中使用的数据。
[0005] 由于使用存储器装置的数据存储装置不具有机械驱动器,因此数据存储装置具有优异的稳定性和耐用性、高信息访问速度和低功耗。具有这些优点的数据存储装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪存(UFS)装置和固态驱动器(SSD)。

发明内容

[0006] 各个实施例涉及一种能够减少映射更新时间的数据存储装置及其操作方法。
[0007] 在实施例中,一种数据存储装置可以包括:非易失性存储器装置,包括地址映射表;存储器,包括顺序映射表,其中顺序映射表存储逻辑块地址之中的连续逻辑块地址的顺序映射条目,从主机装置接收逻辑块地址与写入请求;以及处理器,被配置成当触发映射更新操作时,从地址映射表中读取包括其映射信息将被更新的逻辑块地址的一个或多个映射段;将所读取的一个或多个映射段存储在存储器中;使用包括存储在顺序映射表中的将被更新的逻辑块地址的第一顺序映射条目,顺序地改变映射到将被更新的各个逻辑块地址的物理块地址;并且将所改变的物理块地址存储在存储器中。
[0008] 在实施例中,一种数据存储装置的操作方法可以包括:当触发映射更新操作时,从地址映射表中读取包括其映射信息将被更新的逻辑块地址的映射段;将所读取的映射段存储在存储器中;使用包括将被更新的逻辑块地址的顺序映射条目,顺序地改变映射到将被更新的各个逻辑块地址的物理块地址;以及将所改变的物理块地址存储在存储器中。
[0009] 在实施例中,一种数据存储装置可以包括:地址映射表,包含分别相互映射的逻辑地址和物理地址之间的第一信息;顺序映射表,包含一个或多个顺序映射条目,每个顺序映射条目包括起始逻辑地址和连续逻辑地址的长度以及起始物理地址;以及控制组件,被配置为:基于第一信息之中的将被更新的第二信息中的连续逻辑地址,识别在顺序映射表内的将被更新的顺序映射条目;基于所识别的顺序映射条目,更新对应于第二信息中的连续逻辑地址的连续物理地址;并且基于第二信息更新第一信息。

附图说明

[0010] 图1是示出根据实施例的数据存储装置的框图。
[0011] 图2是示出诸如图1的存储器的示图。
[0012] 图3A是示出诸如图2的闪存转换层(FTL)的示图。
[0013] 图3B是示出诸如图2的元数据区域的示图。
[0014] 图3C是示出诸如图3B的更新映射段列表的结构的示图。
[0015] 图3D和图3E分别是示出诸如图3B的映射段列表指针和顺序映射表指针的示图。
[0016] 图4A是示出诸如图2的地址缓冲器的示图。
[0017] 图4B是示出示例性存储块的示图。
[0018] 图4C是示出诸如图2的顺序映射表的示图。
[0019] 图5是示出诸如图1的地址映射表的示图。
[0020] 图6A是示出根据实施例的存储在地址缓冲器的逻辑块地址和在写入操作期间生成的映射段列表和顺序映射表的示图。
[0021] 图6B是示出改变连续逻辑块地址的映射信息的示例的示图。
[0022] 图6C是示出改变随机逻辑块地址的映射信息的示例的示图。
[0023] 图7是示出根据实施例的数据存储装置的操作方法的流程图。
[0024] 图8是示出根据实施例的包括固态驱动器(SSD)的数据处理系统的示图。
[0025] 图9是示出诸如图8中所示的控制器的示图。
[0026] 图10是示出根据实施例的包括数据存储装置的数据处理系统的示图。
[0027] 图11是示出根据实施例的包括数据存储装置的数据处理系统的示图。
[0028] 图12是示出根据实施例的包括数据存储装置的网络系统的示图。
[0029] 图13是示出根据实施例的包括在数据存储装置中的非易失性存储器装置的示图。

具体实施方式

[0030] 下面参照附图并通过各个实施例描述数据存储装置及其操作方法。在整个说明书中,对“实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
[0031] 图1示出根据实施例的数据存储装置10的配置。
[0032] 参照图1,数据存储装置10可以存储由诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV或车载信息娱乐系统的主机装置(未示出)访问的数据。数据存储装置10可以被称为存储器系统。
[0033] 根据联接到主机装置的接口协议,数据存储装置10可以被配置为各种存储装置中的任意一种。例如,数据存储装置10可以被配置为固态驱动器(SSD)、诸如eMMC、RS-MMC或微型MMC的多媒体卡(MMC)、诸如迷你-SD或微型-SD的安全数字(SD)卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡型存储装置、外围组件互连(PCI)卡型存储装置、高速PCI(PCI-E)卡型存储装置、紧凑型闪存(CF)卡、智能媒体卡和记忆棒中的任意一种。
[0034] 数据存储装置10可以被制造为诸如以下的各种类型的封装中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
[0035] 数据存储装置10可以包括非易失性存储器装置100和控制器200。
[0036] 非易失性存储器装置100可以作为数据存储装置10的存储介质而操作。非易失性存储器装置100可根据存储器单元而被配置为诸如以下的各种类型的非易失性存储器装置中的任意一种:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧穿磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)和使用过渡金属氧化物的电阻式随机存取存储器(ReRAM)。
[0037] 为了清楚说明,图1示出数据存储装置10的一个示例,但这仅是示例。数据存储装置10可以包括多个非易失性存储器装置100,并且本发明也可以以相同的方式应用于包括多个非易失性存储器装置100的数据存储装置10。
[0038] 非易失性存储器装置100可以包括存储器单元阵列(未示出),该存储器单元阵列具有布置在多个位线(未示出)和多个字线(未示出)之间的各个交叉点处的多个存储器单元。存储器单元阵列可以包括多个存储块,并且每个存储块可以包括多个页面。
[0039] 例如,存储器单元阵列的每个存储器单元可以被配置为存储1位数据的单层单元(SLC)、存储2位数据的多层单元(MLC)、存储3位数据的三层单元(TLC)或存储4位数据的四层单元(QLC)。存储器单元阵列110可以包括SLC、MLC、TLC和QLC中的一个或多个。此外,存储器单元阵列110可以包括具有二维水平结构的存储器单元或具有三维垂直结构的存储器单元。
[0040] 控制器200可以通过驱动加载到存储器230的固件或软件来控制数据存储装置10的全部操作。控制器200可以解码并驱动基于代码的指令或算法,例如固件或软件。控制器200可以以硬件或硬件和软件的组合来实现。
[0041] 控制器200可以包括主机接口210、处理器220、存储器230和存储器接口240。尽管未在图1中示出,但是控制器200可以进一步包括错误校正码(ECC)引擎,其通过对从主机装置提供的写入数据执行ECC编码来生成奇偶校验数据,并且使用奇偶校验数据对从非易失性存储器装置100读取的读取数据执行ECC解码。
[0042] 主机接口210可以响应于主机装置的协议来接合连接主机装置和数据存储装置10。例如,主机接口210可以通过包括以下的各种协议中任一种与主机装置通信:USB(通用串行总线)、UFS(通用闪存)、MMC(多媒体卡)、PATA(并行高级技术附件)、SATA(串行高级技术附件)、SCSI(小型计算机系统接口)、SAS(串行连接SCSI)、PCI(外围组件互连)和PCI-E(高速PCI)。
[0043] 处理器220可以包括微控制单元(MCU)和/或中央处理单元(CPU)。处理器220可以处理从主机装置传送的请求。为了处理从主机装置传送的请求,处理器220可以驱动被加载到存储器230的基于代码的指令或算法,即固件,并且控制非易失性存储器装置100和诸如主机接口210、存储器230和存储器接口240的内部功能块。
[0044] 处理器220可以基于从主机装置传送的请求生成用于控制非易失性存储器装置100的操作的控制信号,并且通过存储器接口240将所生成的控制信号提供给非易失性存储器装置100。
[0045] 存储器230可以配置为诸如动态RAM(DRAM)或静态RAM(SRAM)的RAM。存储器230可以存储由处理器220驱动的固件。此外,存储器230可以存储驱动固件所需的数据,例如元数据。也就是说,存储器230可以作为处理器220的工作存储器而操作。
[0046] 存储器230可以包括缓冲器,用于临时存储将被从主机装置传送到非易失性存储器装置100的写入数据或者临时存储将被从非易失性存储器装置100传送到主机装置的读取数据。也就是说,存储器230可以作为缓冲存储器而操作。
[0047] 存储器接口240可以在处理器220的控制下控制非易失性存储器装置100。存储器接口240还可以称为存储器控制器。存储器接口240可以将由处理器220生成的控制信号提供给非易失性存储器装置100。控制信号可以包括被提供以控制非易失性存储器装置100的命令、地址和操作控制信号等。存储器接口240可以向非易失性存储器装置100提供写入数据或者从非易失性存储器装置100接收读取数据。
[0048] 图2示出图1的存储器230。
[0049] 参照图2,根据实施例的存储器230可以包括第一区域231、第二区域233、第三区域234和第四区域235。为了清楚说明,图2示出存储器230包括四个区域。然而,存储器230可以进一步包括用于存储各种数据的一个或多个其它区域。例如,存储器230可以进一步包括命令队列区域,用于对基于从主机装置接收的请求生成的命令进行排队。
[0050] 存储器230的第一区域231可以存储闪存转换层(FTL)。FTL可以是由处理器220驱动的软件,并且处理器220可以驱动FTL以控制非易失性存储器装置100的独有操作,并向主机装置提供装置兼容性。当驱动FTL时,数据存储装置10可以被主机装置识别并用作诸如硬盘的通用数据存储装置。FTL可以包括用于执行各种功能的模块。FTL可以存储在非易失性存储器装置100的系统区域(未示出)中。当数据存储装置10通电时,可以从非易失性存储器装置100的系统区域读取FTL并将该FTL加载到存储器230的第一区域231中。
[0051] 存储器230的第一区域231可以包括元数据区域232,用于存储驱动包括在FTL中的各种模块所需的元数据。下面将参照图3B描述存储在元数据区域232中的元数据。
[0052] 存储器230的第二区域233可以用作地址缓冲器AB,该地址缓冲器AB存储表示从主机装置接收的写入地址即逻辑块地址LBA与非易失性存储器装置100的相应实际地址即物理块地址PBA之间的关系的映射信息。下面将参照图4A描述地址缓冲器AB。
[0053] 存储器230的第三区域234可以用于存储顺序映射表SMT,其包括与从主机装置接收的顺序写入请求对应的顺序映射条目。顺序映射条目可以包括连续逻辑块地址LBA的起始逻辑块地址,连续逻辑块地址LBA的数量(长度)大于或等于阈值,并且起始物理块地址对应于连续逻辑块地址LBA的起始逻辑块地址。
[0054] 存储器230的第四区域235可以用作映射更新缓冲器MUB,用于存储包括多个映射段MS0至MS99(参见图5)之中的将被更新的逻辑块地址LBA的一个或多个映射段,多个映射段MS0至MS99包括在地址映射表(AMT)150中(见图1和5)。
[0055] 图3A示出FTL。
[0056] 参照图3A,FTL可以包括映射模块MM。然而,本发明不限于该特定配置;FTL可以包括其它各种模块。例如,FTL可以进一步包括本领域所公知的读取模块、写入模块、垃圾收集模块、损耗均衡模块、坏块管理模块等。
[0057] 映射模块MM可以管理非易失性存储器装置100和存储器230以执行与映射数据相关的操作。与映射数据相关的操作通常可以包括地址映射(或转换)操作、映射更新操作、映射高速缓存操作等,但是本发明不限于此。
[0058] 当从主机装置提供写入请求、逻辑块地址和写入数据时,处理器220可以驱动映射模块MM以将逻辑块地址存储在地址缓冲器AB的区域中,该区域对应于将存储写入数据的物理块地址。以该方式,逻辑块地址和物理块地址可以彼此映射。
[0059] 处理器220可以基于存储在地址缓冲器区AB中的、物理块地址与逻辑块地址之间的映射信息来驱动映射模块MM以生成连续逻辑块地址LBA(大于或等于阈值)的顺序映射条目,并将所生成的顺序映射条目存储在顺序映射表SMT中。
[0060] 图3B示出包括在存储器230的第一区域231中的元数据区域232。
[0061] 参照图3B,更新映射段列表UMSL、映射段列表指针MSLP、顺序映射表指针SMTP等可以存储在元数据区域232中,但是本发明不限于该配置。尽管未在图3B中示出,但是如本领域中已知的,驱动包括在FTL中的各种模块所需的各种元数据可以存储在元数据区域232中。
[0062] 图3C示出更新映射段列表UMSL,图3D和3E分别示出映射段列表指针MSLP和顺序映射表指针SMTP。
[0063] 参照图3C,更新映射段列表UMSL可以被配置为存储在非易失性存储器装置100的地址映射表150中的多个映射段MS0到MS99之中的将被更新的每个映射段的索引(例如,“MSa”、“MSb”和“MSc”)。索引可以是许多字母数字指示符的数量。将被更新的映射段可以指示包括其映射信息将被更新的一个或多个逻辑块地址的映射段。
[0064] 当从主机装置接收到写入请求和逻辑块地址时,处理器220可以驱动映射模块MM以将映射段的索引存储在更新映射段列表UMSL中,该映射段包括从主机装置接收的逻辑块地址。
[0065] 参照图3D,映射段列表指针MSLP可以被配置为包括x位B0至Bx-1的位图。此处,x可以是大于等于0的自然数。映射段列表指针MSLP的位B0至Bx-1可以被配置为指示对应映射段在更新映射段列表UMSL中的位置。也就是说,映射段列表指针MSLP的位B0至Bx-1可以指示将被通过映射更新操作更新的对应映射段的位置。
[0066] 参照图3E,顺序映射表指针SMTP可以被配置为包括x位B0至Bx-1的位图。此处,x可以是等于或大于0的自然数。顺序映射表指针SMTP的位B0至Bx-1可以被配置为指示顺序映射表SMT中的对应顺序映射条目的位置。在映射更新操作期间,可以从由顺序映射表指针SMTP的位B0至Bx-1指示的顺序映射条目开始检测操作。
[0067] 图4A示出地址缓冲器AB,图4B示出开放存储块OBLK,并且图4C示出顺序映射表SMT。
[0068] 参照图4A,地址缓冲器AB可以包括多个区域1至ij。与写入请求一起从主机装置接收的逻辑块地址可以存储在相应的区域1至ij中。
[0069] 参照图4B,开放存储块OBLK可以包括多个扇区。开放存储块OBLK可以指示被分配以存储从主机装置接收的写入数据的存储块。开放存储块OBLK可以是通过对非易失性存储器装置100内的多个存储块进行分组而获得的单个存储块或存储区域的一部分或全部。作为示例,在开放存储块OBLK是整个单个存储块的背景下描述本实施例。
[0070] 如图4B所示,开放存储块OBLK的每个扇区可以具有唯一的物理块地址。例如,每个扇区的物理块地址可以表示为基本地址和偏移的总和。当如图4B所示,开放存储块OBLK包括z个扇区时,第一扇区的物理块地址可以表示为“基本地址+偏移0”,第二至第z扇区的物理块地址可以表示为“基本地址+偏移1”至“基本地址+偏移z-1”。
[0071] 虽然未示出,但是开放存储块OBLK可以具有其自己的块编号,并且在分配开放存储块OBLK时,处理器220可以获取块编号。
[0072] 参照图4A和图4B,地址缓冲器AB的区域1至ij可以对应于指示开放存储块OBLK的各个扇区的物理块地址。例如,地址缓冲器AB的区域“1”可以对应于指示开放存储块OBLK的第一扇区的物理块地址“基本地址+偏移0”,并且地址缓冲器AB的区域“ij”可以对应于指示开放存储块OBLK的第z扇区的物理块地址“基本地址+偏移z-1”。也就是说,包括在地址缓冲器AB中的区域可以分别对应于包括在开放存储块OBLK中的扇区。此外,包括在地址缓冲器AB中的区域的顺序可以与包括在开放存储块OBLK中的扇区的顺序相同。基于该配置,可以识别映射到存储在地址缓冲器AB的各个区域1至ij中的逻辑块地址的物理块地址。
[0073] 参照图4C,顺序映射表SMT可以包括多个顺序映射条目和指示对应的顺序映射条目是否有效的信息(例如,有效信息)。
[0074] 当从主机装置接收到顺序写入请求和连续逻辑块地址时,写入数据可以顺序地存储在开放存储块OBLK内的连续扇区中。因此,分别映射到连续逻辑块地址的物理块地址也可以是连续的。
[0075] 处理器220可以驱动映射模块MM以生成对应于所提供的连续逻辑块地址的顺序映射条目。顺序映射条目可以包括连续逻辑块地址的起始逻辑块地址(Start LBA)和长度(Length)以及映射到连续逻辑块地址的连续物理块地址的起始物理块地址(Start PBA),并将所生成的顺序映射条目存储在顺序映射表SMT中。也就是说,顺序映射表SMT是用于仅存储连续逻辑块地址和连续物理块地址之间的映射信息的单独表。在顺序映射条目中,长度可以对应于连续逻辑块地址的数量。
[0076] 顺序映射表SMT的有效信息可以指示对应的顺序映射条目是否有效。例如,当第一时间从主机装置接收第一连续逻辑块地址和顺序写入请求,并且作为在第一时间之后的设定时间间隔的第二时间又从主机装置接收第一连续逻辑块地址和顺序写入请求时,对应于第一时间接收的第一连续逻辑块地址的顺序映射条目可能变为无效条目,并且对应于第二时间接收的第一连续逻辑块地址的顺序映射条目可能变为有效条目。也就是说,当对同一逻辑块地址执行多个写入操作时,仅逻辑块地址的最新映射信息是有效的。
[0077] 图5示出图1的AMT 150。
[0078] 参照图5,AMT 150可以包括多个映射段。每个映射段可以包括多个逻辑到物理(L2P)条目。每个L2P条目可以包括彼此映射的一个物理块地址和一个逻辑块地址。包括在每个映射段中的逻辑块地址可以按升序排列和固定,并且可以仅更新映射到各个逻辑块地址的物理块地址。
[0079] 图5示出AMT 150包括100个映射段(0至99),并且每个映射段0至99包括100个L2P条目。然而,映射段的数量和每个映射段的L2P条目的数量不限于此。
[0080] 图6A示出在写入操作期间逻辑块地址存储在地址缓冲器AB中,将被更新的映射段存储在更新映射段列表UMSL中,并且顺序映射条目存储在顺序映射表SMT中。在图6A中,“写入工作负荷”可以表示从主机装置接收并处理的写入请求。作为示例,图6A示出“写入工作负荷”包括命令编号、起始逻辑块地址和长度。此外,假设从主机装置顺序地接收命令1至9。
[0081] 参照图6A,对应于命令1、4和6至9的写入请求可以是顺序写入请求,对应于命令2、3和5的写入请求可以是随机写入请求。
[0082] 当从主机装置接收写入请求和逻辑块地址时,处理器220可以驱动映射模块MM以将逻辑块地址存储在地址缓冲器AB的任意区域中。其中待存储逻辑块地址的地址缓冲器AB的区域可以由地址缓冲器指针(未示出)指示。当逻辑块地址存储在由地址缓冲器指针指示的区域中时,地址缓冲器指针可以改变为指示下一个逻辑块地址将存储在地址缓冲器AB内的区域的值。作为示例,本实施例基于地址缓冲器AB为空的假设。
[0083] 处理器220可以将对应于命令1的从起始逻辑块地址LBA100起的30个逻辑块地址(LBA100至LBA129)顺序地存储在地址缓冲器AB内的从第一区域起的30个区域中。如上所述,由于地址缓冲器AB的区域分别对应于开放存储块OBLK的扇区(参照图4B),因此可以根据逻辑块地址LBA100至LBA129在地址缓冲器AB内存储的区域来确定其扇区存储写入数据的物理块地址。
[0084] 以相同的方式,对应于命令2至9的逻辑块地址可以顺序地存储在地址缓冲器AB的区域中。由于对应于命令7的起始逻辑块地址LBA250等于对应于命令4的起始逻辑块地址LBA250,因此映射到对应于在命令7之前接收的命令4的逻辑块地址的物理块地址可能变为无效映射信息,并且映射到对应于在命令4之后接收的命令7的逻辑块地址的物理块地址可能变为有效映射信息。
[0085] 处理器220可以将映射段的数量顺序地存储在更新映射段列表UMSL中,映射段包括与写入请求一起从主机装置接收的逻辑块地址。
[0086] 例如,参照图6A,对应于命令1的逻辑块地址LBA100至LBA129可以包括在映射段1中。因此,处理器220可以将映射段1的索引存储在更新映射段列表UMSL中。类似地,包括分别对应于命令2至9的逻辑块地址的映射段的索引(即,如图6A的更新映射段列表UMSL中所示的映射段20、映射段30、映射段2、映射段40、映射段3、映射段5和映射段10的索引)可以顺序地存储在更新映射段列表UMSL中。然后,当执行映射更新操作时,处理器220可以通过参考更新映射段列表UMSL从AMT 150读取将被更新的映射段,并将所读取的映射段存储在存储器230的映射更新缓冲器MUB中。
[0087] 处理器220可以生成存储在地址缓冲器AB中的逻辑块地址之中的连续逻辑块地址的顺序映射条目,并且将所生成的顺序映射条目存储在顺序映射表SMT中。参照图6A,顺序映射表SMT可以包括分别对应于命令1、命令4和命令6至9的顺序映射条目。命令4的无效顺序映射条目的有效信息可以显示为“X”,并且命令7的有效顺序映射条目的有效信息可以显示为“O”。
[0088] 作为示例,假设开放存储块OBLK的块编号是“A”,并且写入数据存储在第一扇区的开放存储块OBLK中。
[0089] 图6B示出更新连续逻辑块地址的映射信息的示例。
[0090] 当触发映射更新操作时,处理器220可以通过参考更新映射段列表UMSL来驱动映射模块MM以识别将被更新的映射段的索引。当识别出将被更新的映射段的索引时,映射模块MM可以从非易失性存储器装置100的AMT 150读取该映射段,即映射段1,并将所读取的映射段存储在存储器230的映射更新缓冲器MUB中。在映射更新缓冲器MUB中存储映射段1的每个区域可以指示一个逻辑块地址,并且存储在该区域中的空值,即“XXX”可以指示先前映射的物理块地址或映射信息不存在。
[0091] 参照图6A,对应于响应于命令1的完成的写入操作的逻辑块地址的范围可以是从LBA100到LBA129。因此,如图6B所示,仅由虚线框指示的逻辑块地址可以是将被更新的地址,并且在响应于命令1完成写入操作时,其它逻辑块地址可以不是将被更新的地址。
[0092] 映射模块MM可以首先检查包括逻辑块地址“LBA100至LBA129”的顺序映射条目是否存在于顺序映射表SMT中。如图6A所示,包括逻辑块地址“LBA100至LBA129”的顺序映射条目可以存在于顺序映射表SMT中。因此,映射模块MM可以将起始物理块地址“A,0”存储在对应于逻辑块地址“LBA100至LBA129”的起始逻辑块地址LBA100相对应的区域中,并将物理块地址顺序地存储在对应于其它逻辑块地址“LBA101至LBA129”的区域中,该物理块地址具有从起始物理块地址“A,0”开始顺序地增加1的偏移。以这种方式,可以完成关于逻辑块地址“LBA100至LBA129”的映射信息的改变。已完全改变映射信息的映射段1可以再存储在非易失性存储器装置100的AMT 150中。
[0093] 图6C示出改变随机逻辑块地址的映射信息的示例。
[0094] 映射模块MM可以从非易失性存储器装置100的AMT 150读取将对其执行映射更新操作的映射段(即,映射段20),并将所读取的映射段20存储在存储器230的映射更新缓冲器MUB中。
[0095] 映射模块MM可以首先检查在顺序映射表SMT中是否存在包括逻辑块地址“LBA2000”的顺序映射条目。如图6A所示,包括逻辑块地址“LBA2000”的顺序映射条目不存在于顺序映射表SMT中。因此,映射模块MM可以检测在地址缓冲器AB中存储逻辑块地址“LBA2000”的区域。
[0096] 当检测到在地址缓冲器AB中存储逻辑块地址“LBA2000”的区域时,映射模块MM可以将对应于地址缓冲器AB的检测到的区域的物理块地址“A,30”存储在对应于映射更新缓冲器MUB内的逻辑块地址LBA2000的区域中。以这种方式,可以完成关于逻辑块地址“LBA2000”的映射信息的改变。已完全改变映射信息的映射段20可以再存储在非易失性存储器装置100的AMT 150中。
[0097] 这样,数据存储装置可以单独地生成并管理还将被映射到连续的物理块地址的连续逻辑块地址的顺序映射条目,并在映射更新操作期间基于该顺序映射条目改变被映射到连续物理块地址的连续逻辑块地址的信息,从而减少映射更新操作所需的时间。
[0098] 图7是示出根据实施例的数据存储装置的操作方法的流程图。在描述这种方法时,除了图7之外,还可以参照图1至图6C中的一个或多个。
[0099] 在步骤S710中,控制器200的处理器220可以确定是否执行映射更新操作。当地址缓冲器AB充满逻辑块地址时,可以执行映射更新操作,但是本发明不限于该具体条件。例如,当存储在地址缓冲器AB中的逻辑地址达到地址缓冲器AB的容量的特定百分比时,可以执行映射更新操作。当确定需要执行映射更新操作时,过程可以进行到步骤S720。
[0100] 在步骤S720中,处理器220可以驱动映射模块MM以从非易失性存储器装置100的AMT 150读取映射段,该映射段包括其映射信息将被更新的逻辑块地址。然后,处理器220可以将所读取的映射段存储在存储器230的映射更新缓冲器MUB中。处理器220可以通过参考存储在存储器230的元数据区域232中的映射段列表指针MSLP和更新映射段列表UMSL来识别将被更新的映射段。
[0101] 在步骤S730中,处理器220可以检查存储在元数据区域232中的顺序映射表指针SMTP和存储在存储器230中的顺序映射表SMT,并确定是否存在包括将被更新的逻辑块地址的顺序映射条目。当存在包括将被更新的逻辑块地址的顺序映射条目时,过程可以进行到步骤S740。另一方面,当不存在顺序映射条目时,过程可以进行到步骤S750。
[0102] 在步骤S740中,处理器220可以将连续物理地址存储在映射更新缓冲器MUB内,该连续物理地址由在步骤S730中标识的顺序映射条目中的起始逻辑地址(Start LBA)、长度(Length)和起始物理地址(Start PBA)标识,在指示连续逻辑地址LBA的连续区域中,该物理位置由所标识的顺序映射条目中的起始逻辑地址(Start LBA)和长度(Length)标识。也就是说,处理器220可以将映射更新缓冲器MUB内的物理块地址改变为顺序映射条目的起始物理块地址,该物理块地址被映射到在步骤S730中标识的顺序映射条目中的起始逻辑块地址。此外,处理器220可以将其它逻辑块地址的物理块地址改变为通过将起始物理块地址顺序地增加1而获得的物理块地址,并存储所改变的物理块地址。起始物理块地址可以包括块编号和偏移,并且分别映射到其它逻辑块地址的所改变的物理块地址可以具有顺序地增加1的偏移。
[0103] 在步骤S750中,处理器220可以检测将被更新的逻辑块地址存储在存储器230的地址缓冲器AB中的区域,并获取对应于所检测到的区域的物理块地址。
[0104] 在步骤S760中,处理器220可以将映射到将被更新的各个逻辑块地址的物理块地址改变为在步骤S750中获取的物理块地址,并将所改变的物理块地址存储在映射更新缓冲器MUB内。
[0105] 可以重复执行步骤S750和S760,直到已经完成将被更新的所有逻辑块地址的映射信息。
[0106] 在步骤S770中,处理器220可以确定是否已经完成将被更新的逻辑块地址的映射信息的改变。当未完成映射信息的改变时,过程可以进行到步骤S750。当完成映射信息的改变时,过程可以进行到步骤S780。
[0107] 在步骤S780中,处理器220可以确定映射更新操作是否已完成。确定映射更新操作是否已完成的操作可以指示确定关于包括将被更新的逻辑块地址的多个映射段的映射信息是否已经完全改变的操作。当映射更新操作已完成时,可以结束该过程。当映射更新操作未完成时,过程可以进行到步骤S790。
[0108] 在步骤S790中,处理器220可以通过参考映射段列表指针MSLP和更新映射段列表UMSL从非易失性存储器装置100的AMT 150读取映射段,该映射段包括其映射信息将被按照以下顺序更新的逻辑块地址。然后,处理器220可以将所读取的映射段存储在存储器230的映射更新缓冲器MUB中。随后,过程可以进行到步骤S730。
[0109] 根据本发明的实施例,数据存储装置可以单独地生成和管理对应于顺序写入请求的连续逻辑块地址的顺序映射条目,并且通过使用顺序映射条目顺序地增加映射信息来改变连续逻辑块地址的映射信息,从而减少映射更新时间。
[0110] 图8示出根据实施例的包括固态驱动器(SSD)的数据处理系统。参照图8,数据处理系统2000可包括主机装置2100和SSD 2200。
[0111] SSD 2200可包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231至223n、电源2240、信号连接器2250和电源连接器2260。
[0112] 控制器2210可控制SSD 2220的全部操作。
[0113] 缓冲存储器装置2220可临时存储将被存储在非易失性存储器装置2231至223n中的数据。缓冲存储器装置2220可临时存储从非易失性存储器装置2231至223n读取的数据。根据控制器2210的控制,被临时存储在缓冲存储器装置2220中的数据可被传输到主机装置
2100或非易失性存储器装置2231至223n。
[0114] 非易失性存储器装置2231至223n可用作SSD 2200的存储介质。非易失性存储器装置2231至223n可通过多个通道CH1至CHn联接到控制器2210。一个或多个非易失性存储器装置可联接到一个通道。联接到一个通道的非易失性存储器装置可联接到相同的信号总线和相同的数据总线。
[0115] 电源2240可将通过电源连接器2260输入的电力PWR提供到SSD 2200的内部。电源2240可包括辅助电源2241。辅助电源2241可供应电力,使得即使发生突然断电,SSD 2200也恰当地终止。辅助电源2241可包括能够充电电力PWR的大容量电容器。
[0116] 控制器2210可通过信号连接器2250与主机装置2100交换信号SGL。信号SGL可包括命令、地址、数据等。根据主机装置2100和SSD 2200之间的接口连接方法,信号连接器2250可被配置成各种类型的连接器中的任意一种。
[0117] 图9示出图8的控制器2210。参照图9,控制器2210可包括主机接口2211、控制组件2212、随机存取存储器(RAM)2213、错误校正码(ECC)组件2214和存储器接口2215。
[0118] 主机接口2211可以根据主机装置2100的协议执行主机装置2100和SSD 2200之间的接口连接。例如,主机接口2211可通过下列中的任意一个与主机装置2100通信:安全数字协议、通用串行总线(USB)协议、多媒体卡(MMC)协议、嵌入式MMC(eMMC)协议、个人计算机存储卡国际协会(PCMCIA)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议、串列SCSI(SAS)协议、外围组件互连(PCI)协议、高速PCI(PCI-E)协议和通用闪存(UFS)协议。主机接口2211可以执行磁盘仿真功能,即主机装置2100将SSD 2200识别为通用数据存储装置,例如硬盘驱动器HDD。
[0119] 控制组件2212可以分析并处理从主机装置2100输入的信号SGL。控制组件2212可以根据用于驱动SSD 2200的固件和/或软件来控制内部功能块的操作。RAM 2213可以作为用于驱动固件或软件的工作存储器而操作。
[0120] ECC组件2214可以生成用于待传送至非易失性存储器装置2231至223n的数据的奇偶校验数据。生成的奇偶校验数据可以与数据一起存储在非易失性存储器装置2231至223n中。ECC组件2214可以基于奇偶校验数据来检测从非易失性存储器装置2231至223n读取的数据的错误。当检测到的错误处于可校正范围内时,ECC组件2214可以校正检测到的错误。
[0121] 存储器接口2215可以根据控制组件2212的控制,将诸如命令和地址的控制信号提供至非易失性存储器装置2231至223n。存储器接口2215可以根据控制组件2212的控制来与非易失性存储器装置2231至223n交换数据。例如,存储器接口2215可以将存储在缓冲存储器装置2220中的数据提供至非易失性存储器装置2231至223n,或将从非易失性存储器装置2231至223n读取的数据提供至缓冲存储器装置2220。
[0122] 图10示出根据实施例的包括数据存储装置的数据处理系统。参照图10,数据处理系统3000可以包括主机装置3100和数据存储装置3200。
[0123] 主机装置3100可以以诸如印刷电路板(PCB)的板形式来配置。虽然图10中未示出,但是主机装置3100可以包括被配置成执行主机装置3100的功能的内部功能块。
[0124] 主机装置3100可以包括连接端子3110,诸如插座、插槽或连接器。数据存储装置3200可以安装在连接端子3110上。
[0125] 数据存储装置3200可以以诸如PCB的板形式来配置。数据存储装置3200也可称为存储器模块或存储卡。数据存储装置3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240和连接端子3250。
[0126] 控制器3210可以控制数据存储装置3200的全部操作。控制器3210可被配置成具有与图9中所示的控制器2210相同的配置。
[0127] 缓冲存储器装置3220可临时存储将被存储在非易失性存储器装置3231和3232中的数据。缓冲存储器装置3220可以临时存储从非易失性存储器装置3231和3232读取的数据。根据控制器3210的控制,临时存储在缓冲存储器装置3220中的数据可被传输至主机装置3100或非易失性存储器装置3231和3232。
[0128] 非易失性存储器装置3231和3232可以用作数据存储装置3200的存储介质。
[0129] PMIC 3240可以将通过连接端子3250输入的电力提供至数据存储装置3200的内部。PMIC 3240可以根据控制器3210的控制来管理数据存储装置3200的电力。
[0130] 连接端子3250可以联接至主机装置3100的连接端子3110。诸如命令、地址、数据和电力的信号可以通过连接端子3250而在主机装置3100和数据存储装置3200之间传输。根据主机装置3100和数据存储装置3200之间的接口连接方法,可以各种形式配置连接端子3250。连接端子3250可被布置在数据存储装置3200的任意一侧上。
[0131] 图11示出根据实施例的包括数据存储装置的数据处理系统。参照图11,数据处理系统4000可以包括主机装置4100和数据存储装置4200。
[0132] 主机装置4100可以以诸如PCB的板形式来配置。虽然图11中未示出,但是主机装置4100可以包括被配置成执行主机装置4100的功能的内部功能块。
[0133] 数据存储装置4200可以以表面安装封装的形式来配置。数据存储装置4200可以通过焊球4250而安装在主机装置4100上。数据存储装置4200可以包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
[0134] 控制器4210可以控制数据存储装置4200的全部操作。控制器4210可以被配置成具有与图9中所示的控制器2210相同的配置。
[0135] 缓冲存储器装置4220可以临时存储将被存储在非易失性存储器装置4230中的数据。缓冲存储器装置4220可以临时存储从非易失性存储器装置4230读取的数据。通过控制器4210的控制,临时存储在缓冲存储器装置4220中的数据可以被传输至主机装置4100或非易失性存储器装置4230。
[0136] 非易失性存储器装置4230可以用作数据存储装置4200的存储介质。
[0137] 图12示出根据实施例的包括数据存储装置的网络系统5000。参照图12,网络系统5000可包括通过网络5500联接的服务器系统5300和多个客户端系统5410至5430。
[0138] 服务器系统5300可以响应于多个客户端系统5410至5430的请求来服务数据。例如,服务器系统5300可以存储从多个客户端系统5410至5430提供的数据。在另一示例中,服务器系统5300可以将数据提供至多个客户端系统5410至5430。
[0139] 服务器系统5300可以包括主机装置5100和数据存储装置5200。数据存储装置5200可以被配置为图1的数据存储装置10、图8的SSD 2200、图10的数据存储装置3200或图11的数据存储装置4200。
[0140] 图13是示出根据实施例的包括在数据存储装置中的非易失性存储器装置。参照图13,非易失性存储器装置100可以包括存储器单元阵列110、行解码器120、列解码器140、数据读取/写入块130、电压生成器150和控制逻辑160。
[0141] 存储器单元阵列110可以包括布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域处的存储器单元MC。
[0142] 行解码器120可以通过字线WL1至WLm联接至存储器单元阵列110。行解码器120可以通过控制逻辑160的控制而操作。行解码器120可以解码从外部设备(未示出)提供的地址。行解码器120可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器120可以将从电压生成器150提供的字线电压提供至字线WL1至WLm。
[0143] 数据读取/写入块130可以通过位线BL1至BLn联接至存储器单元阵列110。数据读取/写入块130可以包括与位线BL1至BLn对应的读取/写入电路RW1至RWn。数据读取/写入块130可以根据控制逻辑160的控制而操作。数据读取/写入块130可以根据操作模式而操作为写入驱动器或读出放大器。例如,在写入操作中,数据读取/写入块130可以操作为被配置成将从外部设备提供的数据存储在存储器单元阵列110中的写入驱动器。在另一示例中,在读取操作中,数据读取/写入块130可以操作为被配置成从存储器单元阵列110读取数据的读出放大器。
[0144] 列解码器140可以通过控制逻辑160的控制而操作。行解码器140可以解码从外部设备(未示出)提供的地址。列解码器140可以基于解码结果,将数据读取/写入块130的、与位线BL1至BLn对应的读取/写入电路RW1至RWn与数据输入/输出(I/O)线(或数据I/O缓冲器)联接。
[0145] 电压生成器150可以生成用于非易失性存储器装置100的内部操作的电压。通过电压生成器150生成的电压可以被施加到存储器单元阵列110的存储器单元。例如,在编程操作中生成的编程电压可被施加到待执行编程操作的存储器单元的字线。在另一示例中,在擦除操作中生成的擦除电压可以被施加到待执行擦除操作的存储器单元的阱区域。在另一示例中,在读取操作中生成的读取电压可以被施加到待执行读取操作的存储器单元的字线。
[0146] 控制逻辑160可以基于从外部设备提供的控制信号来控制非易失性存储器装置100的全部操作。例如,控制逻辑160可以控制非易失性存储器装置100的操作,诸如非易失性存储器装置100的读取操作、写入操作和擦除操作。
[0147] 虽然已经示出和描述了各个实施例,但是本领域技术人员将理解的是,所描述的实施例仅为示例。因此,本发明不限于基于所描述的实施例。相反,本发明涵盖落入权利要求及其等同方案范围内的所有变型和修改。