掌桥专利:专业的专利平台
掌桥专利
首页

Nand Flash地址映射管理方法、管理系统、终端设备及介质

文献发布时间:2024-04-18 19:58:26


Nand Flash地址映射管理方法、管理系统、终端设备及介质

技术领域

本发明涉及Nand Flash存储技术领域,具体涉及Nand Flash地址映射管理方法、管理系统、终端设备及介质。

背景技术

Nand Flash存储设备相比传统磁盘,具有存储延迟低、功耗低、存储密度高、噪声低、体积小等特点,因此在存储领域得到广泛使用,Nand Flash存储设备通常由主机接口逻辑单元、DRAM、主控芯片和多个闪存芯片组成;Nand Flash存储设备通过闪存转换层(FTL)实现逻辑/物理地址映射、垃圾回收等功能,常规的映射包括块映射、页映射和混合映射,其中混合映射采用多级映射,通过多个区域组合进行读写操作;现有的Nand Flash存储设备对闪存芯片进行分区,分为所述第二区和第一区,所述第二区用于存储大批量数据,第一区用于存储小批量数据;

但是小批量数据的存储和读取较为频繁,过多的使用容易,会出现将第一区被塞满的意外情况,此时如向第一区写入数据,则需要等候第一区数据搬运和块擦除两个操作后才能继续,降低了第一区的写入速度。

发明内容

鉴于现有技术中的上述缺陷或不足,本发明旨在提供Nand Flash地址映射管理方法、管理系统、设备及介质。

第一方面,本发明提供Nand Flash地址映射管理方法,包括如下步骤:

S100.在Flash存储中设定第一区和第二区,所述第一区包括第一数据块,所述第一数据块包括多个第一数据页;所述第二区包括多个第二数据块,每个所述第二数据块包括多个第二数据页;

S200.设定所述第一区的初始写入阈值和设定使用率;

S300.获取缓存数据包,并获取所述缓存数据包的数据大小;

S400.判断所述数据大小与所述初始写入阈值的大小,若所述数据大小小于或者等于所述初始写入阈值,将所述缓存数据包存入所述第一区,若所述数据大小大于所述初始写入阈值,将所述缓存数据包存入所述第二区;

S500.获取所述第一区的页使用率;

S600.基于所述页使用率、所述设定使用率和所述初始写入阈值计算更新所述初始写入阈值,得到更新写入阈值;

S700.将所述初始写入阈值更新为所述更新写入阈值,并重复执行步骤S300-S700。

根据本发明提供的技术方案,所述步骤S600包括如下步骤:

S601.建立写入阈值关系式,所述写入阈值关系式如下所示:

S

其中,S

S602.将所述页使用率、所述设定使用率和所述初始写入阈值代入所述写入阈值关系式得到所述更新写入阈值。

根据本发明提供的技术方案,步骤S100后还包括如下步骤:

S101.获取逻辑地址;

S102.检索所述第一区,判断所述第一区是否有与所述逻辑地址相同的第一地址,若有,则执行步骤S103,若没有,则执行步骤S104;

S103.提取与所述第一地址对应的数据;

S104.检索所述第二区,获取所述第二区内与所述逻辑地址相同的第二地址,并提取所述第二地址对应的数据。

根据本发明提供的技术方案,所述第二数据块包括空闲块和非空闲块,所述非空闲块包括第一无效数据页和第一有效数据页,步骤S100之后还包括如下步骤:

S111.设定所述第二区的空闲块阈值,并获取所述第二区的所述空闲块个数;

S112.判断所述空闲块个数小于所述空闲块阈值时,比较所述非空闲块中所述第一无效数据页的数量,获取所述第一无效数据页数量最大的所述非空闲块,并设定其为最大非空闲块;

S113.将所述最大非空闲块中的所有所述第一有效数据页的数据写入所述空闲块;

S114.擦除所述最大非空闲块。

根据本发明提供的技术方案,所述第一数据页包括占用页和空闲页,所述占用页为第一区存储所述缓存数据包的页数,包括所述第二无效数据页和第二有效数据页,步骤S100后还包括如下步骤:

S121.设定所述第一区的无效数据页阈值,并获取所述第二无效数据页的个数;

S122.判断所述第二无效数据页的个数大于所述无效数据页阈值时将所述第二有效数据页的数据写入所述空闲页;

S123.擦除所述占用页。

根据本发明提供的技术方案,步骤S500包括如下步骤:

S501.获取所述第一区的所述第一数据页的总数,为第一总数;

S502.获取所述占用页的总数,为占用页数;

S503.将所述占用页数除以所述第一总数,得到所述页使用率。

第二方面,本发明提供一种基于以上所述的Nand Flash地址映射管理方法的管理系统,包括:

第一设定模块,所述第一设定模块配置用于在Flash存储中设定第一区和第二区,所述第一区包括第一数据块,所述第一块包括多个第一数据页;所述第二区包括多个第二数据块,每个所述第二数据块包括多个第二数据页,

第二设定模块,所述第二设定模块配置用于设定所述第一区的初始写入阈值和设定使用率;

采集模块,所述采集模块配置用于获取缓存数据包,并获取所述缓存数据包的数据大小;

判断模块,所述判断模块配置用于判断所述数据大小与所述初始写入阈值大小,若所述数据大小大于所述初始写入阈值,将所述缓存数据包存入所述第一区,若所述数据大小小于所述初始写入阈值,将所述缓存数据包存入所述第二区;

第一计算模块,所述第一计算模块配置用于获取所述第一区的页使用率;

第二计算模块,所述第二计算模块配置用于基于所述页使用率、所述设定使用率和所述初始写入阈值计算更新所述初始写入阈值,得到更新写入阈值;

写入模块,所述写入模块配置用于将所述初始写入阈值更新为所述更新写入阈值,并重复执行步骤S300-S700。

第三方面,本发明提供一种终端设备,包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行以上所述的Nand Flash地址映射管理方法的步骤。

第四方面,本发明提供一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如以上所述的Nand Flash地址映射管理方法。

综上所述,本发明提出一种Nand Flash地址映射管理方法,通过在Flash存储中设定第一区和第二区,并设定第一区的初始写入阈值和设定使用率,判断获取的缓存数据包的数据大小和初始写入阈值的大小,并根据判断结果将缓存数据包存入第一区或第二区,存入后,得到第一区的页使用率,并通过页使用率、设定使用率和初始写入阈值计算更新,得到更新写入阈值,并在下次存入缓存数据包时,将其数据大小与更新写入阈值对比;本申请通过页使用率更新写入阈值,保证第一区具有足够的预留空间,避免第一区被塞满的情况,提高第一区的读写速度。

附图说明

图1为本发明实施例提供的Nand Flash地址映射管理方法的流程示意图;

图2为本发明实施例提供的Nand Flash地址映射管理方法的结构示意图;

图3为本发明实施例提供的终端设备结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

实施例1

诚如背景技术中提到的,针对现有技术中的问题,本发明提出了Nand Flash地址映射管理方法,如图1所示,包括如下步骤:

S100.在Flash存储4中设定第一区和第二区,所述第一区包括第一数据块,所述第一数据块包括多个第一数据页;所述第二区包括多个第二数据块,每个所述第二数据块包括多个第二数据页;

请参考图2所示,包括Cache缓存1、FTL2(Flash Translation Layer,闪存转换层)、DRAM3(Dynamic Random Access Memory,动态随机存取存储器)以及Flash存储4,其中Cache缓存1用于发送或接收数据包,将所述Flash存储4空间中的一个物理块作为所述第一区,其余物理块作为所述第二区,所述第一区用于读/写小批量数据,所述第二区用于读/写大批量数据。

S200.设定所述第一区的初始写入阈值和设定使用率;

可选地,设定所述初始写入阈值S

S300.获取缓存数据包,并获取所述缓存数据包的数据大小;

其中,所述缓存数据包首先存储至所述Cache缓存1中,所述缓存数据包的数据分为n个大小为s的数据包,其中s为一个所述第一数据页或所述第二数据页的大小。

S400.判断所述数据大小与所述初始写入阈值的大小,若所述数据大小小于或者等于所述初始写入阈值,将所述缓存数据包存入所述第一区,若所述数据大小大于所述初始写入阈值,将所述缓存数据包存入所述第二区;

所述FTL2将所述缓存数据包的数据大小n*s与所述初始写入阈值St比较,并在比较完毕后,将所述Cache缓存1内的所述缓存数据包存入到所述第一区或所述第二区。

S500.获取所述第一区的页使用率;

其中,若所述缓存数据包存入所述第一区,则所述页使用率会发生改变,若所述缓存数据包存入所述第二区,则所述页使用率不会发生改变。

S600.基于所述页使用率、所述设定使用率和所述初始写入阈值计算更新所述初始写入阈值,得到更新写入阈值;包括如下步骤:

S601.建立写入阈值关系式,所述写入阈值关系式如下所示:

S

其中,S

S602.将所述页使用率、所述设定使用率和所述初始写入阈值代入所述写入阈值关系式得到所述更新写入阈值。

S700.将所述初始写入阈值更新为所述更新写入阈值,并重复执行步骤S300-S700。

其中,所述Cache缓存1将所述缓存数据包发送到所述FTL2中,根据公式S

在u

在u

本发明通过将所述Flash存储4分为所述第一区和所述第二区,通过判断要存储的缓存数据包的大小,将所述缓存数据包存储至所述第一区或者所述第二区,将小批量数据存入所述第一区中,提高了读取小批量数据的速度,另外,引入了页使用率理念,通过每次存入数据后自适应更新得到更新写入阈值,控制存入所述第一区和所述第二区的写入数据,充分利用所述第一区空间,且保证了所述第一区具有足够的预留空间,避免所述第一区被塞满的情况,进一步提高了所述第一区的读写速度。

实施例2

实施例1具体解释了数据写入的过程,在实施例1的基础上,本实施例具体解释数据提取的过程,步骤S100后还包括如下步骤:

S101.获取逻辑地址;

所述Cache缓存1向所述FTL2发出的访问指令,所述访问指令包括逻辑地址;

S102.检索所述第一区,判断所述第一区是否有与所述逻辑地址相同的第一地址,若有,则执行步骤S103,若没有,则执行步骤S104;

S103.提取与所述第一地址对应的数据;

所述DRAM3为动态随机存取内存,用于存储映射表,所述映射表包括第一区页映射表、第二区块映射表和多个第二区页映射表;

当把所述逻辑地址发送至所述DRAM前,需将所述逻辑地址转化为第一页逻辑地址,并根据所述第一页逻辑地址在所述第一区页映射表进行检索;所述第一区页映射表的格式如表-1所示:

表-1

其中,LPN为页逻辑地址,PPN为Flash存储4上的页物理地址,所述第一区数据存储格式如表-2所示:

表-2

举例说明,若所述逻辑地址转化为第一页逻辑地址LPN=3,根据表-1,则PPN=1,根据表-2得知对应的数据为数据2,则所述FTL2会提取数据2发送至所述Cache缓存1。

S104.检索所述第二区,获取所述第二区内与所述逻辑地址相同的第二地址,并提取所述第二地址对应的数据。

当在所述第一区未检索到所述第一页逻辑地址,则所述FTL2将所述页逻辑地址转化为第二块逻辑地址和第二页逻辑地址,并在所述第二区进行检索;所述第二区块映射表如表-3所示:

表-3

其中,LBN为块逻辑地址,PBN为所述第二区的块物理地址,为方便描述举例说明,当所述逻辑地址转化为所述第二块逻辑地址LBN=3和所述第二页逻辑地址LPN=0时,则根据表-3,其对应的PBN=2的第二区页映射表,如表-4所示:

表-4

所述第二区的数据存储格式如表-5所示:

表-5

当所述第二页逻辑地址LPN=0时,根据表-4得知PPN=15,根据表-5得知对应的数据为数据19,则所述FTL2会提取数据19发送至所述Cache缓存1。

实施例3

在实施例1的基础上,本发明还提出了对无效数据进行垃圾回收的方法,所述第二数据块包括空闲块和非空闲块,所述非空闲块包括第一无效数据页和第一有效数据页,步骤S100之后还包括如下步骤:

S111.设定所述第二区的空闲块阈值,并获取所述第二区的所述空闲块个数;

S112.判断所述空闲块个数小于所述空闲块阈值时,比较所述非空闲块中所述第一无效数据页的数量,获取所述第一无效数据页数量最大的所述非空闲块,并设定其为最大非空闲块;

S113.将所述最大非空闲块中的所有所述第一有效数据页的数据写入所述空闲块;

S114.擦除所述最大非空闲块。

以上步骤对所述第二区进行垃圾回收,所述空闲块为未被占用的块,所述非空闲块为已被存储的数据占用的块,当所述空闲块个数小于所述空闲块阈值时,说明所述第二区的可存储空间过小,需对其进行垃圾回收,当擦除所述最大非空闲块后,则所述最大非空闲块变为所述空闲块,增加了可写入的所述空闲块的数据,避免了在写入过程中执行数据搬运和擦除操作,确保所述第二区的写入速度。

在一优选实施例中,所述第一数据页包括占用页和空闲页,所述占用页为第一区存储所述缓存数据包的页数,包括所述第二无效数据页和第二有效数据页,步骤S100后还包括如下步骤:

S121.设定所述第一区的无效数据页阈值,并获取所述第二无效数据页的个数;

S122.判断所述第二无效数据页的个数大于所述无效数据页阈值时将所述第二有效数据页的数据写入所述空闲页;

S123.擦除所述占用页。

以上步骤对所述第一区进行垃圾回收,所述空闲页为未被占用的页,所述占用页为已被存储的数据占用的页,当所述第二无效数据页的较多时,需对所述第一区进行垃圾回收,避免所述第一区被所述第二无效数据页占用后无法被写入的情况,避免写入时,因所述第一区被所述第二无效数据页占用,需要等待第一区数据搬运和擦除,从而造成的写入速度降低的情况。

进一步地,所述DRAM3还用于存储日志表,所述日志表包括用于记录块擦除次数的块日志表和用于记录页物理位置状态的页日志表,当垃圾回收操作完毕后,更新所述DRAM3中的所述块日志表,记录块的擦除次数,用于其他算法对擦除寿命的优化;所述块日志表如表-6所示:

表-6

在一优选实施例中,步骤S500包括如下步骤:

S501.获取所述第一区的所述第一数据页的总数,为第一总数;

S502.获取所述占用页的总数,为占用页数;

S503.将所述占用页数除以所述第一总数,得到所述页使用率。

其中,所述FTL2通过所述页日志表获取所述占用页数和所述第一总数,所述页日志表如表-7所示:

表-7

0代表该第一数据页未写入数据,标记为所述空闲页,1代表该所述第一数据页写入数据,数据有效,标记为第二有效数据页,2代表该所述第一数据页写入数据,数据无效,标记为第二无效数据页,当所述缓存数据包的数据大小小于或者等于所述初始写入阈值时,将所述缓存数据包存入所述第一区,写入的所述第一数据页的状态为1,当1状态的所述第一数据页需要被删除时,应最小擦除单位为块,因此不会立刻删除,会将所述第一数据页的状态由1修改为2,等待垃圾回收时删除。故,通过表-7可得到所述第一总数和所述占用页数,所述第一总数为当前状态为0,1,2的所述第一数据页的总和,所述占用页数为当前状态为1和2的总和。

实施例4

在实施例1的基础上,本发明提出一种基于Nand Flash地址映射管理方法的管理系统,包括:

第一设定模块,所述第一设定模块配置用于在Flash存储中设定第一区和第二区,所述第一区包括第一数据块,所述第一块包括多个第一数据页;所述第二区包括多个第二数据块,每个所述第二数据块包括多个第二数据页,

第二设定模块,所述第二设定模块配置用于设定所述第一区的初始写入阈值和设定使用率;

采集模块,所述采集模块配置用于获取缓存数据包,并获取所述缓存数据包的数据大小;

判断模块,所述判断模块配置用于判断所述数据大小与所述初始写入阈值大小,若所述数据大小大于所述初始写入阈值,将所述缓存数据包存入所述第一区,若所述数据大小小于所述初始写入阈值,将所述缓存数据包存入所述第二区;

第一计算模块,所述第一计算模块配置用于获取所述第一区的页使用率;

第二计算模块,所述第二计算模块配置用于基于所述页使用率、所述设定使用率和所述初始写入阈值计算更新所述初始写入阈值,得到更新写入阈值;

写入模块,所述写入模块配置用于将所述初始写入阈值更新为所述更新写入阈值,并重复执行步骤S300-S700。

本发明提出Nand Flash地址映射管理方法,通过在所述Flash存储4中设定所述第一区和所述第二区,并设定所述第一区的所述初始写入阈值和所述设定使用率,判断获取的所述缓存数据包的数据大小和所述初始写入阈值的大小,并根据判断结果将所述缓存数据包存入所述第一区或所述第二区,存入后,得到所述第一区的所述页使用率,并通过所述页使用率、所述设定使用率和所述初始写入阈值计算更新,得到所述更新写入阈值,并在下次存入所述缓存数据包时,将其数据大小与所述更新写入阈值对比;本申请通过所述页使用率更新所述写入阈值,保证所述第一区具有足够的预留空间,避免所述第一区被塞满的情况,提高所述第一区的读写速度。本发明实施例提供的管理系统能够实现以上方法实施例实现的各个过程,具有与之对应的功能模块和有益效果,为避免重复,这里不再赘述。

实施例5

本发明提出一种终端设备,如图3所示,所述终端设备的计算机系统700包括CPU(中央处理单元)701,其可以根据存储在ROM(只读存储器)702中的程序或者从存储部分708加载到RAM(随机访问存储器)703中的程序而执行各种适当的动作和处理。在RAM703中,还存储有系统操作所需的各种程序和数据。CPU701、ROM702以及RAM703通过总线704彼此相连。I/O(输入/输出)接口705也连接至总线704。以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

特别地,根据本发明的实施例,上文参考流程图1描述的过程可以被实现为计算机软件程序。例如,本发明的实施例1包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被CPU701执行时,执行本计算机系统700中限定的上述功能。

实施例6

本发明还提供了一种计算机可读介质,该计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的Nand Flash地址映射管理方法。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

此外,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。

相关技术
  • 一种基于NAND FLASH的数据存储方法、终端设备及存储介质
  • 一种用于Nand Flash的指针式逻辑地址映射表实现方法
  • 一种NAND FLASH阵列二级地址映射表的实现方法
技术分类

06120116489853