一种存储器及其控制方法转让专利

申请号 : CN202311734155.3

文献号 : CN117420965B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 付应辉王守磊

申请人 : 合肥康芯威存储技术有限公司

摘要 :

本发明提供了一种存储器及其控制方法,其中存储器包括:数据转移模块,电性连接于主机,并对主机传输用户数据;数据类型判断单元,设置于数据转移模块中,数据类型判断单元将用户数据划分为第一类数据或第二类数据,其中第一类数据为循环数据,且第一类数据包括循环体;缓存器,缓存器中存储地址映射表,当用户数据为第一类数据,地址映射表包括第一类数据的数据标识和逻辑地址,以及第一类数据的循环体;闪存芯片,电性连接于缓存器;以及缓冲模块,当用户数据为第二类数据,缓冲模块电性连接于数据转移模块和闪存芯片,且缓冲模块为第二类数据的数据传输中转部件。本发明提供了一种存储器及其控制方法,能够极大程度地提升存储器的性能。

权利要求 :

1.一种存储器,其特征在于,包括:

数据转移模块,电性连接于主机,并对所述主机传输用户数据;

数据类型判断单元,设置于所述数据转移模块中,所述数据类型判断单元将所述用户数据划分为第一类数据或第二类数据,其中所述第一类数据为循环数据,且所述第一类数据包括循环体;

缓存器,所述缓存器中存储地址映射表,当所述用户数据为第一类数据,所述地址映射表包括所述第一类数据的数据标识和逻辑地址,以及所述第一类数据的循环体类型;

闪存芯片,电性连接于所述缓存器;以及

缓冲模块,当所述用户数据为所述第二类数据,所述缓冲模块电性连接于所述数据转移模块和所述闪存芯片,且所述缓冲模块为所述第二类数据的数据传输中转部件;

其中,所述数据转移模块包括预存单元,所述预存单元中存储所述第一类数据或所述第二类数据的数据标识;

其中,在读出所述第一类数据时,根据所述第一类数据的逻辑地址,查找所述地址映射表,并获取所述第一类数据的循环体类型,所述数据转移模块从所述预存单元中获取与所述循环体类型对应的循环体数据。

2.根据权利要求1所述的一种存储器,其特征在于,当所述用户数据为第一类数据,所述预存单元中存储所述第一类数据的循环体类型。

3.根据权利要求1所述的一种存储器,其特征在于,所述预存单元包括第一数据区域,所述第一数据区域用于存储所述第一类数据的循环体,且所述第一数据区域的存储位数和所述循环体的位数相同。

4.根据权利要求3所述的一种存储器,其特征在于,所述预存单元包括第一保留区域,当所述循环体的位数大于所述第一数据区域的位数,所述第一保留区域的部分存储位转移至所述第一数据区域。

5.根据权利要求1所述的一种存储器,其特征在于,当所述用户数据为第二类数据,所述地址映射表包括所述第二类数据的数据标识、所述第二类数据的逻辑地址和所述第二类数据的物理地址。

6.根据权利要求1所述的一种存储器,其特征在于,所述存储器包括控制模块,当所述用户数据为所述第一类数据,所述控制模块电性连接于所述数据转移模块和所述缓存器。

7.一种存储器的控制方法,其特征在于,包括以下步骤:

在接收主机的读写命令时,判断待读写的用户数据为第一类数据或第二类数据,其中所述第一类数据为循环数据,且所述第一类数据包括循环体;

当读写所述第一类数据时,获取所述第一类数据的循环体类型,并在数据转移模块的预存单元中置起所述第一类数据的数据标识;

根据所述数据标识、所述循环体类型和所述第一类数据的逻辑地址,形成地址映射表,并将所述地址映射表存储在缓存器中;以及当读写第二类数据时,以缓冲模块作为数据传输中转部件,所述数据转移模块从闪存芯片中读出或对所述闪存芯片写入所述第二类数据;

其中,读出所述第一类数据的步骤包括:

根据所述第一类数据的逻辑地址,查找所述地址映射表,并获取所述第一类数据的循环体类型;

在所述预存单元中获取所述循环体类型的循环体数据;以及

获取所述第一类数据的数据量,所述数据转移模块对所述主机循环发送所述循环体数据,直到发送的所述循环体数据达到所述第一类数据的数据量。

8.根据权利要求7所述的一种存储器的控制方法,其特征在于,写入所述第一类数据的步骤包括:在所述预存单元中置起所述第一类数据的数据标识,并将所述数据标识存储在所述地址映射表的标识位中;

获取所述第一类数据的循环体,并将所述循环体的循环体类型和所述第一类数据的逻辑地址存储在所述地址映射表中;以及将所述循环体的循环体数据存储在所述预存单元中。

说明书 :

一种存储器及其控制方法

技术领域

[0001] 本发明涉及存储技术领域,特别涉及一种存储器及其控制方法。

背景技术

[0002] 在闪存的数据存储进程中,对用户数据的读写进程涉及到将数据写入闪存颗粒中,以及将数据从闪存颗粒中读出。对于存储器,数据的读写速度是存储器最直观也最影响用户体验的性能。并且数据读写速度的提升,也能为存储器中多种控制方法的实现提供硬件基础,在同样的时间内,硬件读写越快,进入空闲状态的时间也越多,在存储器空闲状态下能够允许的操作也越多,例如对存储器进行扫描、垃圾处理等等。
[0003] 而对于各个厂家,在成本相同的情况下,存储硬件的读写速度是有上限的,即便是不断地提升地址细信息的查找速度,也很难再有更大的提升。

发明内容

[0004] 本发明的目的在于提供一种存储器及其控制方法,能够极大程度地提升存储器的性能。
[0005] 为解决上述技术问题,本发明是通过以下技术方案实现的:
[0006] 本发明提供了一种存储器,包括:
[0007] 数据转移模块,电性连接于主机,并对所述主机传输用户数据;
[0008] 数据类型判断单元,设置于所述数据转移模块中,所述数据类型判断单元将所述用户数据划分为第一类数据或第二类数据,其中所述第一类数据为循环数据,且所述第一类数据包括循环体;
[0009] 缓存器,所述缓存器中存储地址映射表,当所述用户数据为第一类数据,所述地址映射表包括所述第一类数据的数据标识和逻辑地址,以及所述第一类数据的所述循环体;
[0010] 闪存芯片,电性连接于所述缓存器;以及
[0011] 缓冲模块,当所述用户数据为所述第二类数据,所述缓冲模块电性连接于所述数据转移模块和所述闪存芯片,且所述缓冲模块为所述第二类数据的数据传输中转部件。
[0012] 在本发明一实施例中,所述数据转移模块包括预存单元,所述预存单元中存储所述第一类数据或所述第二类数据的数据标识。
[0013] 在本发明一实施例中,当所述用户数据为第一类数据,所述预存单元中存储所述第一类数据的循环体类型。
[0014] 在本发明一实施例中,所述预存单元包括第一数据区域,所述第一数据区域用于存储所述第一类数据的循环体,且所述第一数据区域的存储位数和所述循环体的位数相同。
[0015] 在本发明一实施例中,所述预存单元包括第一保留区域,当所述循环体的位数大于所述第一数据区域的位数,所述第一保留区域的部分存储位转移至所述第一数据区域。
[0016] 在本发明一实施例中,当所述用户数据为第二类数据,所述地址映射表包括所述第二类数据的数据标识、所述第二类数据的逻辑地址和所述第二类数据的物理地址。
[0017] 在本发明一实施例中,所述存储器包括控制模块,当所述用户数据为所述第一类数据,所述控制模块电性连接于所述数据转移模块和所述缓存器。
[0018] 本发明提供了一种存储器的控制方法,包括以下步骤:
[0019] 在接收主机的读写命令时,判断待读写的用户数据为第一类数据或第二类数据,其中所述第一类数据为循环数据,且所述第一类数据包括循环体;
[0020] 当读写所述第一类数据时,获取所述第一类数据的循环体类型,并在数据转移模块的预存单元中置起数据标识;
[0021] 根据所述数据标识、所述循环体类型和所述第一类数据的逻辑地址,形成地址映射表,并将所述地址映射表存储在缓存器中;以及
[0022] 当读写第二类数据时,以缓冲模块作为数据传输中转部件,所述数据转移模块从闪存芯片中读出或对所述闪存芯片写入所述第二类数据。
[0023] 在本发明一实施例中,读出所述第一类数据的步骤包括:
[0024] 根据所述第一类数据的逻辑地址,查找所述地址映射表,并获取所述第一类数据的循环体类型;
[0025] 在所述预存单元中获取所述循环体类型的循环体数据;以及
[0026] 获取所述第一类数据的数据量,所述数据转移模块对所述主机循环发送所述循环体数据,直到发送的所述循环体数据达到所述第一类数据的数据量。
[0027] 在本发明一实施例中,写入所述第一类数据的步骤包括:
[0028] 在所述预存单元中置起所述第一类数据的数据标识,并将所述数据标识存储在所述地址映射表的标识位中;
[0029] 获取所述第一类数据的循环体,并将所述循环体的循环体类型和所述第一类数据的逻辑地址存储在所述地址映射表中;以及
[0030] 将所述循环体的循环体数据存储在所述预存单元中。
[0031] 如上所述,本发明提供了一种存储器及其控制方法,能够有序地完成用户数据的读写进程,控制方法的稳定性好。并且,本发明提供的存储器及其控制方法,能够跳过将部分数据写入闪存芯片的过程或是从闪存芯片中读出部分数据的过程,从而极大程度地提升存储器的数据读写效率,从而提升存储器的性能。并且根据本发明提供的存储器及其控制方法,还能够降低闪存芯片的读写次数,从而降低擦除次数,提升了闪存存储介质的使用寿命。并且,根据本发明提供的存储器及其控制方法,还能降低地址映射表的更新频率,无需频繁应对物理地址更换的存储问题,在掉上电情况的应对上,能够更好地保证数据的完整性。本发明提供的存储器及其控制方法,能够较好且定制性地应对各种工况,并且加工难度不大,有利于产品的批量出产。
[0032] 当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

[0033] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034] 图1为本发明一实施例中存储器的结构示意图。
[0035] 图2为本发明一实施例中数据转移模块的结构示意图。
[0036] 图3为本发明一实施例中预存单元的存储结构示意图。
[0037] 图4为本发明一实施例中地址映射表的示意图。
[0038] 图5为本发明一实施例中逻辑地址和物理地址的对应关系示意图。
[0039] 图6为本发明一实施例中缓存器和闪存芯片间的地址映射信息转移示意图。
[0040] 图7为本发明一实施例中存储器控制方法的流程图。
[0041] 图中:10、主机;20、存储器;30、主控制器;301、数据转移模块;3011、数据类型判断单元;3012、预存单元;3013、数据标识;3014、第一保留区域;3015、第一数据区域;302、控制模块;303、缓冲模块;40、闪存芯片;50、缓存器;501、地址映射表;5011、标识位;5012、逻辑地址存储区域;5013、物理地址存储区域;5014、第二保留区域;5015、第二数据区域。

具体实施方式

[0042] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0043] 请参阅图1所示,本发明提供的存储器20包括闪存芯片40,其中闪存芯片40为NAND闪存颗粒。闪存芯片40包括多个物理区块(block),其中物理区块具有唯一的器件编号。其中物理区块包括多个物理页面(page),不同的物理页面也具有不同的器件编号。通过物理地址可以定位闪存芯片40的物理页面。在本实施例中,用户数据具有逻辑地址。其中在写入用户数据时,在用户数据的逻辑地址和用户数据实际存储的物理地址之间建立映射关系,形成地址映射关系。在需要读出用户数据时,可以通过地址映射关系以及需读出用户数据的逻辑地址,确认用户数据的物理地址,接着从对应的物理地址中调出用户数据。其中地址映射关系按照链表形式存储在存储器20中。
[0044] 请参阅图1所示,本发明提供的存储器20包括主控制器30、闪存芯片40和缓存器50。其中主控制器30与主机10电性连接,以接收主机10的读写命令,并与主机10之间发生数据传输。其中闪存芯片40与主控制器30电性连接,以对闪存芯片40进行数据写入、数据读出以及多种控制进程。在本实施例中,控制进程可以是扫描进程和垃圾回收进程等等。其中,缓存器50与主控制器30电性连接,且缓存器50与闪存芯片40电性连接。缓存器50为静态随机存取存储器(Static Random‑Access Memory,SRAM)。主控制器30对读写命令的分析和控制进程的实现,可以基于精简指令系统计算机(Reduced Instruction System Computer,RISC),且具体可以基于ARM处理器。
[0045] 请参阅图1所示,在本发明一实施例中,主控制器30包括数据转移模块301、控制模块302和缓冲模块303。其中数据转移模块301电性连接于主机10,以与主机10发生数据交换。且数据转移模块301与控制模块302和缓冲模块303连接。其中,同一时间数据转移模块301与控制模块302电性连接或与缓冲模块303电性连接。在本实施例中,控制模块302与缓存器50电性连接。控制模块302中存储了控制固件,运行控制固件可以实现本发明提供的存储器20的控制方法。其中缓冲模块303电性连接于闪存芯片40。缓冲模块303为缓冲寄存器,在数据转移模块301与闪存芯片40发生数据交换时,数据先发送至缓冲模块303,接着将数据转移至数据转移模块301或闪存芯片40。缓存器50与闪存芯片40电性连接,以实现数据的交换。
[0046] 请参阅图1和图2所示,在本发明一实施例中,数据转移模块301包括数据类型判断单元3011和预存单元3012。其中数据类型判断单元3011能够对读写命令所涉及到的用户数据类型进行判断。在本实施例中,将用户数据划分为第一类数据和第二类数据。其中第一类数据为具备循环规律的数据。例如全0循环数据,00000000。例如全1循环数据,11111111。例如0xA5循环数据,10100101。例如0x5A循环数据01011010。上述举例仅为部分规律,根据存储器20的实际应用环境,可以继续增加第一类数据涉及到的规律类型。需要说明的是,本发明不限定第一类数据中循环体的位数。第二类数据为第一类数据以外的用户数据。数据类型判断单元3011首先判断数据类型是否为第一类数据,若是第一类数据,则标记用户数据为第一类数据。若用户数据不是第一类数据,则标记用户数据为第二类数据。
[0047] 请参阅图1至图3所示,在本发明一实施例中,预存单元3012为数据寄存器,且具体为例如16bit的数据寄存器。其中预存单元3012包括数据标识3013、第一保留区域3014和第一数据区域3015。其中,数据标识3013为逻辑电平1或逻辑电平0。第一类数据和第二类数据对应的数据标识3013不同。在本实施例中,当用户数据被识别为第一类数据,则数据标识3013可以是逻辑电平1。当用户数据被识别为第二类数据,则数据标识3013可以是逻辑电平
0。第一数据区域3015用于存储第一类数据的循环体。第一保留区域3014不存储任何数据。
其中,在预存单元3012中,数据标识3013占用单个比特位,且数据标识3013存储在预存单元
3012的边缘比特位中,如图3所示,数据标识3013存储在第16个比特位bit15。第一保留区域
3014设置在数据标识3013和第一数据区域3015之间。在本实施例中,第一数据区域3015占用例如8个比特位,且如图3所示,第一数据区域3015占用预存单元3012的第一个比特位bit1至第八个比特位bit8。第一保留区域3014占用了预存单元3012的第九个比特位bit8至第十五个比特位bit14。当采用的循环体位数超出8位,可以调用第一保留区域3014的部分或全部比特位划分至第一数据区域3015中,以保证第一数据区域3015中的循环体能够完整保存。需要说明的是,本发明的图3显示的是16比特的数据寄存器,以作为示例。本发明提供的预存单元3012也可以是例如32位数据寄存器、例如64位数据寄存器等等。在本实施中,预存单元3012有多个,以存储多个第一类数据。
[0048] 请参阅图1、图3和图4所示,在本发明一实施例中,在用户数据的写入进程中,数据类型判断单元3011判断用户数据为第一类数据后,启动控制模块302。在控制固件的运行进程中,在预存单元3012中置起第一类数据的数据标识3013,并将数据标识3013发送至缓存器50中。且在控制固件的运行下,获取第一类数据的循环体,并将第一类数据的循环体存储在第一数据区域3015中。接着在形成第一类数据的地址映射信息时,将预存单元3012中的数据传输给缓存器50。在用户数据的写入进程中,数据类型判断单元3011判断用户数据为第二类数据后,控制模块302关闭,数据转移模块301将第二类数据写入缓冲模块303。在接着缓冲模块303将数据写入闪存芯片40中。在将第二类数据存入闪存芯片40后,将第二类数据的地址映射信息存储在缓存器50中。
[0049] 请参阅图1、图3和图4所示,在本发明一实施例中,在用户数据的读出进程中,数据类型判断单元3011判断用户数据为第一类数据后,启动控制模块302。在控制固件的运行进程中,根据逻辑地址在地址映射信息中获取第一类数据的循环体。根据第一类数据的循环体,数据转移模块301直接将对应循环体的数据发送至主机10中。在用户数据的读出进程中,数据类型判断单元3011判断用户数据为第二类数据后,主控制器30根据第二类数据的逻辑地址,找到第二类数据的物理地址,接着从闪存芯片40对应的物理地址中读出所需用户数据。读出的用户数据存储在缓冲模块303中。接着数据转移模块301将缓冲模块303中的数据转移至主机10。
[0050] 请参阅图1、图3和图4所示,在本发明一实施例中,缓存器50包括地址映射表501。用户数据的地址映射信息按照链表形式存储在缓存器50或闪存芯片40中。具体的,缓存器
50包括地址映射表501。其中地址映射表501包括标识位5011、逻辑地址存储区域5012、物理地址存储区域5013、第二保留区域5014和第二数据区域5015。标识位5011与数据标识3013对应,具体的,将标识位5011的数据置为数据标识3013的数据。在本实施例中,当读写的数据为第一类数据,则数据标识3013被置起,且置为逻辑电平1。对应的,标识位5011的数据被置为逻辑电平1。在本实施例中,当标识位5011被置为逻辑电平1,物理地址存储区域5013被划分为第二保留区域5014和第二数据区域5015。在本实施例中,第二保留区域5014不存储数据,第二数据区域5015的初始预留位数为例如8位,当第一类数据的循环体位数大于初始预留位数时,则将第二保留区域5014的部分比特位划分至第二数据区域5015中,以保证循环体位数能被完整存储。其中,第二数据区域5015和第一数据区域3015的预留位数相同,第二保留区域5014的位数大于等于第一保留区域3014的预留位数。而逻辑地址存储区域5012用于存储第一类数据的逻辑地址LBA1。
[0051] 请参阅图1、图3和图4所示,在本发明一实施例中,如图4所示,地址映射表501为例如64bit,且具体为bit0 bit63。其中标识位5011设置在逻辑地址存储区域5012和物理地址~存储区域5013之间。第二保留区域5014设置在标识位5011和第二数据区域5015之间。在本实施例中,如图4所示,逻辑地址存储区域5012的比特位数量为地址映射表501的总比特位数量的一半,且具体为例如32个。如图4所示,逻辑地址存储区域5012存储在第三十三个比特位bit32至第六十四个比特位bit63中。标识位5011为第三十二个比特位bit31。第二保留区域5014占用第九个比特位bit8至第三十一个比特位bit30。第二数据区域5015占用第一个比特位bit0至第八个比特位bit7。
[0052] 请参阅图1、图3至图5所示,在本发明一实施例中,当读写第二类数据时,数据标识3013为初始电平0,此时地址映射表501中的标识位5011未被置起,并保持为默认值0。此时地址映射表501包括逻辑地址存储区域5012、标识位5011和物理地址存储区域5013。其中逻辑地址存储区域5012存储的是第二类数据的逻辑地址LBA2,物理地址存储区域5013存储的是第二类数据在闪存芯片40中的物理地址PBA1。其中逻辑地址存储区域5012的数据与物理地址存储区域5013的数据相对应。例如,如图5所示,逻辑地址LBA0对应物理地址PBA4。逻辑地址LBA1对应物理地址PBA5。逻辑地址LBA3对应物理地址PBA7。以此类推。
[0053] 请参阅图1和图6所示,在本发明一实施例中,缓存器50中存储了多个地址映射表501。当地址映射表501达到缓存器50的存储容量上限,或是即将达到缓存器50的存储容量上限时,将地址映射表501转移至闪存芯片40中。其中,可以设置存储容量阈值来限制如何是即将达到缓存器50的存储容量上限。具体的,当缓存器50中的地址映射表501的大小大于等于存储容量阈值时,将地址映射表501转移至闪存芯片40中。需要说明的是,可以转移部分地址映射表501,也可以转移缓存器50中的全部地址映射表501。如图6所示,本实施例转移了部分地址映射表501,且具体为地址映射表a和地址映射表b。其中可以根据逻辑地址区别地址映射表a和地址映射表b。在本实施例中,转移的部分地址映射表501可以是按照写入时间顺序进行转移,将写入时间更早的地址映射表501转移至闪存芯片40中。也可以随机选取部分地址映射表501转移至闪存芯片40中。也可以按照地址映射表501的排列顺序转移地址映射表501。在本实施例中,在转移部分地址映射表501时,当部分地址映射表501转移至闪存芯片40后,若是此时缓存器50中地址映射表501的存储量小于存储容量阈值,则可以停止转移进程。在本实施例中,在转移地址映射表501至闪存芯片40的同时,若是有新的地址映射表501生成,等待地址映射表501转移完毕,再对缓存器50写入新的地址映射表501。在本发明的其他实施例中,在硬件支持的情况下,也可以边转移地址映射表501,并对缓存器
50写入新的地址映射表501。在本实施例中,当需要读出第一类数据和第二类数据时,将对应逻辑地址的地址映射表501重新读出到缓存器50中。接着若是第一类数据,则根据地址映射表501确定第一类数据的循环体类型后,数据转移模块301直接将第一类数据发送至主机
10,完成数据读出。若是第二类数据,则根据地址映射表501确定用户数据的物理地址,并从相应的物理地址中读出用户数据到缓冲模块303中,接着数据转移模块301将数据从缓冲模块303中取出,并转移至主机10中。
[0054] 请参阅图1所示,在本发明一实施例中,在主控制器30执行主机10的读写命令时,可以通过低密度奇偶校验码(Low Density Parity‑Check Code,LDPC)完成对写入数据和读出数据的错误检查和校正,并生成校验码,例如生成循环冗余校验码(Cyclic Redundancy Check,CRC)。例如,在读出用户数据时,数据转移模块301会同时将校验码和数据一起发送至主机10。
[0055] 请参阅图1和图7所示,本发明提供了存储器20的控制方法,以实现对存储器20读写性能的提升。其中存储器20的控制方法包括步骤S10至步骤S40。
[0056] 步骤S10、在接收主机的读写命令时,判断待读写的用户数据为第一类数据或第二类数据,其中第一类数据为循环数据,且第一类数据包括循环体。
[0057] 步骤S20、当读写第一类数据时,获取第一类数据的循环体类型,并在数据转移模块的预存单元中置起数据标识。
[0058] 步骤S30、根据数据标识、循环体类型和第一类数据的逻辑地址,形成地址映射表,并将地址映射表存储在缓存器中。
[0059] 步骤S40、当读写第二类数据时,以缓冲模块作为数据传输中转部件,数据转移模块从闪存芯片中读出或对闪存芯片写入第二类数据。
[0060] 请参阅图1和图7所示,在本发明一实施例中,在步骤S10中,主控制器30接收到主机10的读写命令,获取待读写用户数据的数据量。数据类型判断单元3011判断用户数据是否具有循环体,若是具有循环体,则用户数据为第一类数据,若是不具有循环体,则用户数据为第二类数据。在本实施例中,在预存单元3012中存储有多种循环体数据,根据用户应用场景的不同,可以在预存单元3012中写入不同的循环体数据。具体的,预存单元3012中的循环体数据为数据类型判断单元3011可识别的循环体。例如全1循环体、全0循环体、0x5A循环体和0xA5循环体等等。根据采用的循环体不同,第一数据区域3015的存储位数也不同。具体的,第一数据区域3015的存储位数与循环体数据的位数相同。
[0061] 请参阅图1和图7所示,在本发明一实施例中,在步骤S20中,当主机10对存储器20写入第一类数据,则在预存单元3012中置起数据标识3013。需要说明的是,第一类数据和第二类数据都具有对应的数据标识3013。其中第二类数据的数据标识3013为低逻辑电平0,且预存单元3012中的默认数据标识3013为低逻辑电平0。因此在写入的是第一类数据时,将第一类数据的数据标识3013置起,且具体的,将数据标识3013置为高逻辑电平1。并且获取第一类数据的循环体类型。在本实施例中,循环体类型和循环体数据可以是一致的。例如,全1循环体的循环体类型为11111111,全1循环体的循环体数据内容为11111111。当循环体的存储位数较多,循环体类型也可以是预设的标记数据。在本实施例中,判断用户数据为第一类数据的同时,获取第一类数据的循环体类型。在读出第一类数据时,根据第一类数据的逻辑地址,获取第一类数据的循环体类型。
[0062] 请参阅图1和图7所示,在本发明一实施例中,在步骤S30中,将预存单元3012中的数据标识3013存储至地址映射表501的标识位5011。当用户数据为第二类数据,标识位5011为数据0。当用户数据为第一类数据,标识位5011为数据1。在本实施例中,将用户数据的逻辑地址存储至地址映射表501中。而当用户数据为第一类数据时,将第一类数据的循环体类型存储在地址映射表501中,且具体的,存储至第二数据区域5015中。当循环体类型的位数超出了第二数据区域5015当前的存储位数,则将第二保留区域5014的部分存储位转移至第二数据区域5015中,以扩充第二数据区域5015的存储位数,保证第一类数据的循环体类型能够被完整存储。在本实施例中,当用户数据为第二类数据,则将第二类数据存储至闪存芯片40中。在写入第一类数据时,将第一类数据的数据标识3013写入地址映射表501的标识位5011,将第一类数据的逻辑地址写入地址映射表501的逻辑地址存储区域5012,将第一类数据的循环体类型写入第二数据区域5015。在读出第一类数据时,根据第一类数据的逻辑地址,查找地址映射表501,获取第一类数据的循环体类型。数据转移模块301从预存单元3012中直接获取与循环体类型对应的循环体数据,并将循环体数据循环发送至主机10中,直到达到主机10记录的数据量,完成第一类数据的读出。
[0063] 请参阅图1和图7所示,在本发明一实施例中,在步骤S40中,在写入第二类数据时,数据转移模块301将第二类数据转移至缓冲模块303中,再将第二类数据从缓冲模块303转移至闪存芯片40中。在第二类数据写入闪存芯片40后,获取第二类数据的物理地址。在本实施例中,将第二类数据对应的数据标识3013存储在地址映射表501的标识位5011,将第二类数据的逻辑地址存储在地址映射表501的逻辑地址存储区域5012,将第二类数据的物理地址存储在地址映射表501的物理地址存储区域5013。在读出第二类数据时,根据用户数据的逻辑地址,在地址映射表501中查找用户数据的物理地址,接着闪存芯片40对应物理地址读出第二类数据。第二类数据存储在缓冲模块303中。接着数据转移模块301将数据从缓冲模块303转移至主机10中,完成对第二类数据的读出。
[0064] 本发明提供了一种存储器及其控制方法,其中存储器包括数据转移模块、数据类型判断单元、缓存器和闪存芯片,以及缓冲模块。其中数据转移模块电性连接于主机,并对主机传输用户数据。数据类型判断单元设置于数据转移模块中,数据类型判断单元将用户数据划分为第一类数据或第二类数据,其中第一类数据为循环数据,且第一类数据包括循环体。缓存器中存储地址映射表,当用户数据为第一类数据,地址映射表包括第一类数据的数据标识和逻辑地址,以及第一类数据的循环体。闪存芯片电性连接于缓存器。当用户数据为第二类数据,缓冲模块电性连接于数据转移模块和闪存芯片,且缓冲模块为第二类数据的数据传输中转部件。本发明提供了一种存储器及其控制方法,能够有序地完成用户数据的读写进程,控制方法的稳定性好。并且,本发明提供的存储器及其控制方法,能够跳过将部分数据写入闪存芯片的过程或是从闪存芯片中读出部分数据的过程,从而极大程度地提升存储器的数据读写效率,从而提升存储器的性能。并且根据本发明提供的存储器及其控制方法,还能够降低闪存芯片的读写次数,从而降低擦除次数,提升了闪存存储介质的使用寿命。并且,根据本发明提供的存储器及其控制方法,还能降低地址映射表的更新频率,无需频繁应对物理地址更换的存储问题,在掉上电情况的应对上,能够更好地保证数据的完整性。本发明提供的存储器及其控制方法,能够较好且定制性地应对各种工况,并且加工难度不大,有利于产品的批量出产。
[0065] 以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。