CN118193517A - 应用于存储器的映射信息处理方法和存储器控制器 - Google Patents
应用于存储器的映射信息处理方法和存储器控制器 Download PDFInfo
- Publication number
- CN118193517A CN118193517A CN202211599279.0A CN202211599279A CN118193517A CN 118193517 A CN118193517 A CN 118193517A CN 202211599279 A CN202211599279 A CN 202211599279A CN 118193517 A CN118193517 A CN 118193517A
- Authority
- CN
- China
- Prior art keywords
- mapping information
- vfc
- cache unit
- physical
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 197
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 230000010365 information processing Effects 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 18
- 239000000872 buffer Substances 0.000 claims description 22
- 239000007787 solid Substances 0.000 claims description 22
- 230000005012 migration Effects 0.000 claims description 13
- 238000013508 migration Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 abstract description 10
- 101100127688 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FAA1 gene Proteins 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开一种映射信息处理方法、存储器控制器和存储器。该方法包括:将缓存单元上存储的最新的映射信息输入给硬件加速器,以得到第一VFC表;从最新的映射信息中依次读取索引地址;对当前索引地址,判断当前索引地址是否指向存储介质上的物理块,如果当前索引地址指向存储介质上的物理块,则将物理块上的二级映射表读取到缓存单元中,并根据所述缓存单元上对应的映射信息更新所述缓存单元上的二级映射表,并获取二级映射表中与映射信息中具有相同逻辑地址但不同物理地址的记录,并将其中的物理地址写到第二物理地址集合中;将第二物理地址集合输入给硬件加速器,以得到第二VFC表;采用第一VFC表减去第二VFC表。该方法提高缓存映射信息的处理速度。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种应用于存储器的映射信息处理方法、存储器控制器和存储器。
背景技术
固态硬盘(SSD,Solid State Drives)是使用固态电子存储芯片制作的存储硬盘,存储硬盘包括存储器控制器和存储介质。目前最主流的固态硬盘采用闪存存储介质(flashMemory),例如以NAND flash为例的非易失性存储器。
存储器控制器在存储主机发送过来的写数据时,需要用到FTL(flashTranslation Layer,闪存转换层)的映射信息,映射信息记录主机的逻辑地址到存储介质的物理地址之间的映射关系。
目前主流的固态硬盘一般有两种硬件设计:一种是存储器控制器带有SRAM和DRAM作为存储映射信息的缓存单元;另一种是只使用SRAM作为缓存单元(即不包括DRAM),通常这种固态硬盘被称为Dramless固态硬盘。Dramless固态硬盘由于缓存单元的容量很小,因此将小部分的映射信息存放在缓存单元中,全部的映射信息则存放在存储介质中,并以二级映射表或多级映射表的形式进行管理。因此,Dramless固态硬盘的存储器控制器在处理写操作时,会将新增的映射表数据先更新到缓存单元中,当缓存单元快要用完时,再将新增的映射信息保存到存储介质中,并同时更新VFC,但现有方案中,这些操作的处理效率还可以进一步提高。
发明内容
本发明的目的在于提供一种应用于存储器的映射信息处理方法、存储器控制器和存储器,以提高将映射信息刷新到存储介质中的处理效率。
根据本发明的第一方面,提供一种应用于存储器的映射信息处理方法,所述存储器包括存储器控制器和存储介质,所述存储控制器包括缓存单元,所述存储器控制器采用两级映射表管理物理地址和逻辑地址之间的映射信息,所述映射信息处理方法包括:
将缓存单元上存储的最新的映射信息输入给专用于计算VFC表的硬件加速器,以得到第一VFC表;
从所述最新的映射信息中依次读取索引地址;
对每次读取到的当前索引地址,判断所述当前索引地址是否指向所述存储介质上的物理块;
如果所述当前索引地址指向所述存储介质上的物理块,则将所述物理块上的二级映射表读取到所述缓存单元中,根据所述缓存单元上对应的映射信息更新所述缓存单元中的二级映射表,并获取所述缓存单元中的二级映射表中与所述对应的映射信息中具有相同逻辑地址但不同物理地址的记录,并将所述记录中的物理地址写到第二物理地址集合中;
将更新后的二级映射表刷新到所述物理块中;
将所述第二物理地址集合输入给所述硬件加速器,以得到第二VFC表;
采用所述第一VFC表减去所述第二VFC表作为最新的VFC表。
在一些实施例中,还包括:如果所述当前索引地址未指向所述存储介质上的任何物理块,则将所述缓存单元上对应的映射信息以某种格式刷新到物理块中。
在一些实施例中,采用硬件完成所述根据所述缓存单元上对应的映射信息更新所述缓存单元中的二级映射表,并获取所述缓存单元中的二级映射表中与所述映射信息中具有相同逻辑地址但不同物理地址的记录,并将所述记录中的物理地址写到第二物理地址集合中的步骤。
在一些实施例中,所述获取所述缓存单元中的二级映射表中与所述映射信息中具有相同逻辑地址但不同物理地址的记录,并将所述记录中的物理地址写到第二物理地址集合中包括:
根据所述对应的映射信息的每个逻辑地址,找到所述缓存单元中的二级映射表中该逻辑地址对应的第一物理地址,如果所述第一物理地址有效,则将所述第一物理地址记录到所述第二物理地址集合中。
在一些实施例中,还包括:将所述最新的VFC表的数据存储到所述存储介质上。
根据本发明的第二方面,提供一种处理方法,当存储器的缓存单元缓存的映射信息的大小超过设定阈值时,启动上述任意一项所述的映射信息处理方法。
根据本发明的第三方面,提供一种应用于存储器的垃圾回收方法,包括:
利用上述任一项所述的数据处理方法获得所述最新的VFC表;
从所述最新的VFC表中选择对应的VFC值小于设定阈值的物理块进行垃圾回收。
根据本发明的第四方面,提供一种存储器控制器,包括:
处理器;
缓存单元;
硬件模块,包括迁移电路和专用于计算VFC表的硬件加速器;
其中,所述处理器存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时,实现以下操作:
将缓存单元上存储的最新的映射信息输入给所述硬件加速器,以得到第一VFC表;
从所述最新的映射信息中依次读取索引地址;
对每次读取到的当前索引地址,判断所述当前索引地址是否指向所述存储介质上的物理块;
如果所述当前索引地址指向所述存储介质上的物理块,则将所述物理块上的二级映射表读取到所述缓存单元中,并将所述缓存单元上对应的映射信息和所述缓存单元中的二级映射表提供给所述硬件模块并从所述硬件模块接收所述第二VFC表;
将更新后的二级映射表刷新到所述物理块中;以及
采用第一VFC表减去第二VFC表作为最新的VFC表;
所述迁移电路用于执行以下操作:
根据根据所述缓存单元上对应的映射信息更新所述缓存单元中的二级映射表,记录所述缓存单元中的二级映射表中与所述对应的映射信息中具有相同逻辑地址但不同物理地址的记录的物理地址到第二物理地址集合中,并将所述第二物理地址集合输入给所述硬件加速器,以便所述第二所述硬件加速器生成所述第二VFC表。
在一些实施例中,所述迁移电路包括:控制电路和执行单元电路集合,
所述控制电路获取所述缓存单元上对应的映射信息,并分发给从所述执行单元电路集合中的处于空闲状态的至少一个执行单元电路;
所述处于空闲状态的至少一个执行电路单元根据输入的映射信息更新所述缓存单元中的二级映射表,记录所述缓存单元中的二级映射表中与所述对应的映射信息中具有相同逻辑地址但不同物理地址的记录的物理地址到第二物理地址集合中。
根据本发明的第五方面,提供一种存储器,包括上述所述的存储器控制器和存储介质。进一步地,所述存储器为Dramless固态硬盘。
本公开实施例提供的数据处理方法,通过硬件加速器获取缓存单元的某个二级映射表的物理地址集合对应的第一VFC表,并获取该二级映射表中在写操作过程中会被替换的物理地址集合,并继续通过硬件加速器根据会被替换的物理地址集合得到第二VFC表,然后根据两个VFC表得到最新的VFC表,由于硬件加速器的处理性能优于软件处理性能,因此写操作中将映射信息刷新到存储介质的处理效率得到提高,进而写操作的整体处理性能得到提高。该方法适用于Dramless固态硬盘、通用快闪存储UFS等。
在一些实施例中,所述根据所述缓存单元上对应的映射信息更新所述缓存单元中的二级映射表,并获取所述缓存单元中的二级映射表中与所述映射信息中具有相同逻辑地址但不同物理地址的记录,并将所述记录中的物理地址写到第二物理地址集合中的操作同样采用硬件完成,以进一步提高处理效率。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出了根据本发明实施例的固态硬盘的示意性框图;
图2是用于示意Dramless固态硬盘中的两级映射表的框图;
图3是将缓存中的映射信息刷新到存储介质的物理块的现有技术方案的流程图;
图4是专用于计算VFC表的硬件加速器的功能示意图;
图5是图4中的硬件加速器的实现原理的示意图;
图6是本发明实施例提供的应用于存储器的数据处理方法的流程图;
图7是图6中的步骤S601的更具体的示意图;
图8是图6中的步骤S602-S608的更具体的示意图;
图9是本公开实施例改进的存储器控制器的示意图;
图10是本公开实施例提供的示例性的硬件实现的迁移电路的示意图。
具体实施方式
以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下文使用以下术语。
地址映射:逻辑地址到物理地址的映射,存储器控制***的核心功能,这是许多其他模块的基础。映射关系数据用于记录主机逻辑空间地址到存储介质的物理地址之间的映射关系
有效单元、无效单元、VFC(Valid frag count,有效单元计数)和VFC表:固态硬盘的存储介质上的每个物理块一般被划分为若干个写入单元,在初始状态下,每个写入单元上没有有效数据(此时写入单元的所有字节都用一种特殊值填充),此时所有写入单元都是无效单元,存储器控制器在处理写入操作时,将数据写入到一些写入单元上,这些写入单元变为有效单元,后期还可将这些有效写入单元上的数据移走从而将这些有效写入单元重新变为无效单元。因此,有效单元是指其上的数据为有效的写入单元,无效单元是指其上的数据为无效的写入单元,VFC则用于记录和维护固态硬盘的存储介质上的每个物理块上有多少个有效单元。相应地,VFC表是指记录存储介质上的各个物理块的VFC数据的表格。该表格可在缓存单元中生成,并定期刷新到存储介质上。
垃圾回收(Garbage Collection,可简称为GC):是指回收固态硬盘的存储介质上的物理块。垃圾回收简单分为三步:1)挑选要回收的物理块;2)从要回收的物理块中找到有效单元;3)把有效单元内的数据写入到另一个物理块上。在挑选要回收的物理块时,可选择VFC较小的物理块,这样需要重写的有效数据就越少,回收一个物理块付出的代价也小。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1示出了根据本发明实施例的固态硬盘的示意性框图。
如图1所示,计算机***100包括主机110和固态硬盘,固态硬盘包括存储器控制器120和存储介质130,存储器控制器120与主机110连接,用于与主机110交换数据。存储器控制器120连接主机110与存储介质130,将主机110的写数据存入存储介质130。
存储器控制器120包括主机接口121、处理器123、缓存单元124和闪存控制器128。控制器120的主机接口121连接至主机110,以传输数据和读写指令。处理器123与主机接口121、缓存单元124和闪存控制器128相连接,处理器123对读写指令进行解析并执行读写操作。缓存单元124可用于存储映射关系数据,闪存控制器128控制数据的传输和存储。处理器123还用于实现存储器控制的核心软件层,即FTL(flash Translation Layer,闪存转换层),FTL由若干程序组成,处理器123执行程序,使得在接收到读写指令时,能够对指令进行转换,从而完成对存储介质130的访问,从而主机110的文件***和操作***可以像访问自己的存储器一样访问存储介质。该FTL还有例如支持坏块管理、损耗均衡、垃圾回收、断电恢复、写平衡技术等功能。
存储介质130例如为闪存芯片阵列。为了提高数据读写性能,控制器120的闪存控制器128可以经由多个通道(例如CH0和CH2)对存储介质130的闪存芯片进行读写,每个通道连接一组闪存芯片。
缓存单元124可以使用SRAM和/或DRAM。比较而言,SRAM作为缓存,具有速度优势,但价格更昂贵且单位空间上存储容量更小。相应地,为了提升缓存空间利用率,Dramless固态硬盘(无DRAM)采用二级映射表或多级映射表进行管理映射关系数据。
图2是用于示意Dramless固态硬盘中的两级映射表的框图。如图2所示,缓存单元124包括用于存储一级映射表的缓存区1241和用于存储二级映射表的写缓存区1242。首先将所有逻辑地址LAA(logic allocate unit address)被等分成(n+1)个组(0至n),然后可以将一级映射表看作有(n+1)个元素的数组L1[n](下标从0开始)。数组L1[n]用于存储(n+1)个索引地址,该(n+1)个索引地址分别指向存储在存储介质130上的多个二级映射表,每个二级映射表存储若干个逻辑地址和物理地址之间的对应关系,每个二级映射表存储的记录数相同。图上的L2P映射是逻辑地址和物理地址之间的对应关系的一条记录。
在主机写数据时,FTL会将新增的映射信息相应地更新到一级和二级映射表中,当缓存快要用完时,则需要将新增的映射信息保存到存储介质130的物理块中。
图3是将缓存中的映射信息刷新到存储介质的物理块的现有技术方案的流程图。具体包括以下步骤。
在步骤S301中,依次从一级映射表中读取索引地址。
在步骤S302中,判断当前索引地址是否指向物理块,如果是,则执行步骤S304,如果否,则执行步骤S303。
在步骤S303中,将当前索引地址指向的缓存单元中的映射信息以某种格式存储到物理块中,并更新VFC。
在步骤S304中,将物理块中的当前索引地址指向的映射信息和缓存单元中的对应映射信息合并,并以某种格式将合并后的映射信息存储到物理块中,并更新VFC。
在步骤S305中,修改一级映射表,使得当前索引地址指向该物理地址。
在步骤S306中,是否处理完一级映射表中的所有索引地址。
下面以示例详细描述本实施例。从一级映射表中依次读取索引地址并进行如下处理。假设读取到的索引地址为L1 cache index1,要将其对应的映射信息保存到物理块中,则首先判断L1 cache index1是否指向存储介质的某个物理块,如果否,则将缓存中所有属于L1 cache index1的映射信息以某种数据格式存储在该物理块中并更新缓存中的VFC,然后修改一级映射表,使得L1 cache index1指向物理块,如果是,则将缓存中所有属于L1cache index1的映射信息与该物理块中的二级映射表中存储的映射信息合并,并将合并的映射信息以某种数据格式存储在该物理块中,并更新缓存单元中的VFC,然后修改一级映射表,将L1 cache index1指向该物理块。
下面以表格1为例介绍如何合并映射信息。表格1给出了缓存单元中L1 cacheindex1对应的映射信息和存储介质中L1 cache index1对应的映射信息。
表格1
其中,LAA X+1~LAA X+6这段范围的映射信息,缓存单元与存储介质都存在,缓存单元中的映射信息是最新的,因此要使用缓存单元中的映射信息覆盖存储介质中的映射信息。但LAAX+200~LAAX+300这段范围的映射信息,存储介质中不存在,因此直接新增。则合并后的映射信息为表格1所示。但需要指出的是例子中的映射信息并不代表实际存储的格式,而且可能会将映射信息压缩后存储。
继续以上述示例说明如何更新VFC。在上述示例中,LAA X+1对应的FAA从FAA z修改为FAA y,则相应地,FAAz所属的物理块对应的VFC减去1,而FAAy所属的物理块对应的VFC加上1;接着新增LAA X+200对应到FAA y200,此时需要将FAA y200对应的物理块的VFC加1。应该指出的是,存储介质上的各个物理块的VFC可表示为一个数组blkvfc[],数组的下标是物理块的编号,数组的内容是相应物理块对应的VFC值。
应该指出的是,如图3所示的技术方案通常实现为FTL中的软件程序,由存储器控制器中的处理器(如图1中的存储器控制器120中的处理器123)执行,该方案中需要加减VFC,因此会消耗非常多的处理器时间,从而影响写操作的性能。
在改进的技术方案中,提出一种硬件实现的加速器,该加速器专用于计算VFC表。其功能示意图如图4所示。加速器400的输入是用于存储一组FAA地址的连续内存空间,加速器遍历所有FAA,计算每个FAA对应的物理块,并将对应的物理块的VFC值加1,最终输出该组FAA地址对应的VFC表。
加速器400的实现原理如图5所示。由于存储介质中的物理地址需要遵循一定的格式。一般物理地址会告指定这些信息:block(物理块)、page(页)、cech(段)和frag(片)。以图5中的502为例,block_shift=10,page_shift=9,cech_shift=2,frag_shift=4。加速器400获取FAA来计算每个物理块的有效单元计数,因此当给加速器输入存储有二级映射表的内存空间501时,需要关注的是该内存空间的有效起始地址、存储的映射关系数据的数量、LAA的起始地址、FAA的起始位置,以及每个物理地址占了几位(block_shift),其他总共占了几位(offset),这些信息会被配置到加速器500的寄存器中。硬件加速器会扫描内存空间501,对block域相同值的有效条目进行聚集,并将结果暂存在加速器的内部缓存中。图上的加速器400的内部缓存为401。内部缓存401的大小例如为4KB,用于存储1K个物理块的VFC值,每个VFC值使用4个字节。参考图上所示,假设现在有6个条目,其中属于物理块3的有505,508;属于物理块4的有506,509,210;属于物理块5的有507。在加速器将这三个物理块的VFC值存储其内部缓存401中,分别为2、3和1,而VC表504则为加速器的最终输出,其内容与内部缓存401完全一致。应该注意的是,加速器400需要输入的连续内存空间。此外,取决于加速器400的具体设计,在一些实施例中,从图上501中提取出所有FAA,存储到一个连续的内存空间上并输入给加速器400,以生成VFC表。
图6是本发明实施例提供的应用于存储器的数据处理方法的流程图,该方法用于将缓存单元中的映射表信息刷新到存储介质中并生成VFC表。具体包括以下步骤。
在步骤S601中,将缓存单元上存储的最新映射信息输入给硬件加速器,以得到第一VFC表。
在步骤S602中,从最新的映射信息中依次读取索引地址。
在步骤S603中,判断判断索引地址是否指向存储介质上的物理块,如果是,则执行S604,否则执行S605。
在步骤S604中,将缓存在缓存单元中的映射信息以某种格式刷新到指定物理块中。
在步骤S605中,将指向的物理块上的二级映射表读取到缓存单元上,然后将缓存单元上的映射信息和物理块上对应的二级映射表中进行合并,并将合并后的二级映射表刷新到指定物理块中。
在步骤S606中,在合并过程中,记录物理上和缓存单元上具有相同逻辑地址但不同物理地址的映射记录,将物理块上的映射记录中的物理地址记录到第二物理地址集合中。
在步骤S607中,是否处理完最新映射信息中的所有索引地址,如果是,则跳出循环,如果否,则跳转到步骤S602上继续执行循环。
在步骤S608中,将第二物理地址集合输入给硬件加速器,以得到第二VFC表。
在步骤S609中,采用第一VFC表减去第二VFC表作为最新的VFC表。
下面以示例详细描述本实施例。首先,步骤S601如图7所示。在图7中,缓存单元上缓存的映射信息的组织形式如701所示,二级映射表集合7011表示缓存单元上存储的二级映射表集合。一级映射表7012存储二级映射表的索引地址。将二级映射表中的FAA数组提供给加速器702,由加速器702输出第一VFC表703。关于加速器702可参见上文图4和5的相应描述。关于S602-S609,首先从如701所示的映射信息中依次读取索引地址,判断索引地址是否指向存储介质的存储介质上的物理块(物理块上存储着该索引地址对应的二级映射表),如果是,则将指向的物理块上的二级映射表读取到缓存单元上,然后将缓存单元上的映射信息和物理块上对应的二级映射表中进行合并,并将合并后的二级映射表刷新到指定物理块中,并在合并过程中,获取物理上和缓存单元上具有相同逻辑地址但不同物理地址的映射记录,并将物理块上的映射记录中的物理地址记录到第二物理地址集合中,如果否,则将缓存在缓存单元中的映射信息以某种格式刷新到指定物理块中,重复这样的操作直到处理完所有最新的映射信息,然后将第二物理地址集合输入给硬件加速器,以得到第二VFC表,然后采用第一VFC表减去第二VFC表作为最新的VFC表。其中采用的加速器计算第一VFC表和第二VFC表的具体实施过程可参考关于图4和图5描述。
在一些实施例中,当缓存单元中的映射信息的大小超过设定阈值时,启动上述将缓存单元中的映射信息刷新到存储介质上的操作。
图8是图6中的步骤S602-S608的更具体的示意图。
在S1中,由于逻辑地址包括高比特位和低位比特位(高比特位和低位比特位的比特位数固定),高比特位表示逻辑地址对应的索引地址。如图上所示,假设LAA的高比特位对应的是索引地址为L1 cache index 100,低比特位则表示L1 cache index 100下的偏移量(如在L1 cache index 100下的第10个条目),则也就可以知道“LAA对应的FAA”(在二级表数据中的第10个条目)。
在S2中,根据上述偏移量,就可以在L1 cache index100对应的二级表数据中,找到LAA的FAA1值。
在S3中,判断FAA1是否有效。
在S4中,如果FAA1值无效,则直接用LAA对应的当前FAA覆盖FAA1,跳过步骤S5,执行步骤S6。
在S5中,如果FAA1值有效,则将FAA1加入事先在缓存单元中创建的sub faa集合中。
在S6中,按照步骤S1至S6,处理下一个映射关系。
在S7中,当所有索引地址集合对应的映射关系处理完成后或者sub faa集合满时,然后将sub faa集合输入给加速器,以得到第二VFC表,sub faa集合包含了所有将要被替换的FAA,由此输出的第二VFC表是需要减去的vfc值。
图9是本公开一实施例改进的存储器控制器的示意图。控制器900和图1的不同之处在于,增加了用于实现本发明实施例的硬件模块125。
在一些实施例中,硬件模块125负责完成图8中的步骤S602至S608。
在一些实施例中,硬件模块125包括专用于计算VFC的硬件加速器和迁移电路。专用于计算VFC的硬件加速器(例如图4的硬件加速器400、图7-8中加速器702),上文中已经详细介绍过了,这里就不再赘述。迁移电路用于完成根据缓存单元上存储的最新的映射信息更新从存储介质上获取到的二级映射表,并同时记录缓存单元中的二级映射表中与对应的映射信息中具有相同逻辑地址但不同物理地址的记录的物理地址的功能。图10是本公开实施例提供的示例性的硬件实现的迁移电路1000的示意图。
如图上所示,迁移电路1000包括输入队列缓冲器1011、输出队列缓冲器1012、控制电路1013、执行单元电路集合1014、多路选择电路1015、缓冲器1016和集合控制电路1017。
迁移电路1000的处理逻辑为:
1、当外部启动迁移电路160之后,控制电路1013从输入队列缓冲器1011(先进先出)中逐一读取任务。每个任务指示本任务要合并的两个数据各自的起始地址和数据大小,具体而言,第一数据是指本任务要合并的从原物理块读取到缓存单元124上的LAA和FAA对应关系数据;第二数据是指本任务要合并的原缓存单元124上的LAA和FAA对应关系数据,这两个数据一般对应于一级映射表中的同一索引地址。
2、控制电路1013查询执行单元电路集合1014,确定是否有处于空闲状态,找到处于空闲状态的一个执行单元电路,将读取到的任务提供给该执行电路单元。该执行电路单元进行以下操作:
1)根据读取到的任务从缓存单元124读取两个数据;
2)从第二数据中的LAA和FAA的记录中取LAA的低位,获取偏移量,在第一数据中根据偏移量找到FAA1,如果FAA1无效则用FAA覆盖FAA1,如果FAA1有效,则将FAA1加到缓冲器1016中(先进先出),然后使用FAA覆盖FAA1,覆盖操作可直接在缓存单元124上进行;
3)任务完成后,将任务结果通过控制电路1013发送到输出队列缓冲器1012中,任务结果可指定修改后的LAA和FAA对应关系数据在缓存单元124上的起始地址和数据量。
3、集合控制电路1017主要负责从缓冲器1016的FAA1数据放到缓存单元124中,并且当发现数据量到达阈值时,通知控制电路1013,由控制电路1013启动加速器150,根据缓存单元124中的FAA1数据计算VFC。
后续,处理器123从输出队列缓冲器1012中取出任务结果,将修改后的LAA和FAA对应关系数据刷新到相应的物理块中。
图10所示的硬件实施例,通过多个执行单元电路并行处理任务,因此整体上的处理性能有很大提升。
依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (11)
1.一种应用于存储器的映射信息处理方法,所述存储器包括存储器控制器和存储介质,所述存储器控制器包括缓存单元,所述存储器控制器采用两级映射表管理物理地址和逻辑地址之间的映射信息,所述映射信息处理方法包括:
将缓存单元上存储的最新的映射信息输入给专用于计算VFC表的硬件加速器,以得到第一VFC表;
从所述最新的映射信息中依次读取索引地址;
对每次读取到的当前索引地址,判断所述当前索引地址是否指向所述存储介质上的物理块;
如果所述当前索引地址指向所述存储介质上的物理块,则将所述物理块上的二级映射表读取到所述缓存单元中,根据所述缓存单元上对应的映射信息更新所述缓存单元中的二级映射表,并获取所述缓存单元中的二级映射表中与所述对应的映射信息中具有相同逻辑地址但不同物理地址的记录,并将记录中的物理地址写到第二物理地址集合中;
将更新后的二级映射表刷新到所述物理块中;
将所述第二物理地址集合输入给所述硬件加速器,以得到第二VFC表;
采用所述第一VFC表减去所述第二VFC表作为最新的VFC表。
2.根据权利要求1所述的映射信息处理方法,还包括:如果所述当前索引地址未指向所述存储介质上的任何物理块,则将所述缓存单元上对应的映射信息以某种格式刷新到物理块中。
3.根据权利要求1所述的映射信息处理方法,其中,采用硬件完成所述根据所述缓存单元上对应的映射信息更新所述缓存单元中的二级映射表,并获取所述缓存单元中的二级映射表中与所述映射信息中具有相同逻辑地址但不同物理地址的记录,并将所述记录中的物理地址写到第二物理地址集合中的步骤。
4.根据权利要求1所述的映射信息处理方法,其中,所述获取所述缓存单元中的二级映射表中与所述映射信息中具有相同逻辑地址但不同物理地址的记录,并将所述记录中的物理地址写到第二物理地址集合中包括:
根据所述对应的映射信息的每个逻辑地址,找到所述缓存单元中的二级映射表中该逻辑地址对应的第一物理地址,如果所述第一物理地址有效,则将所述第一物理地址记录到所述第二物理地址集合中。
5.根据权利要求1至4任一项所述的映射信息处理方法,还包括:将所述最新的VFC表的数据存储到所述存储介质上。
6.一种处理方法,当缓存单元上存储的最新的映射信息的大小超过设定阈值时,启动如权利要求1至5任意一项所述的映射信息处理方法。
7.一种应用于存储器的垃圾回收方法,包括:
利用权利要求1至5任一项所述的映射信息处理方法获得所述最新的VFC表;
根据所述最新的VFC表中选择VFC值小于设定阈值的物理块进行垃圾回收。
8.一种存储器控制器,包括:
处理器;
缓存单元;
硬件模块,包括迁移电路和专用于计算VFC表的硬件加速器;
其中,所述处理器存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时,实现以下操作:
将缓存单元上存储的最新的映射信息输入给所述硬件加速器,以得到第一VFC表;
从所述最新的映射信息中依次读取索引地址;
对每次读取到的当前索引地址,判断所述当前索引地址是否指向所述存储介质上的物理块;
如果所述当前索引地址指向所述存储介质上的物理块,则将所述物理块上的二级映射表读取到所述缓存单元中,并将所述缓存单元上对应的映射信息和所述缓存单元中的二级映射表提供给所述硬件模块并从所述硬件模块接收所述第二VFC表;
将更新后的二级映射表刷新到所述物理块中;以及
采用第一VFC表减去第二VFC表作为最新的VFC表;
所述迁移电路用于执行以下操作:
根据根据所述缓存单元上对应的映射信息更新所述缓存单元中的二级映射表,记录所述缓存单元中的二级映射表中与所述对应的映射信息中具有相同逻辑地址但不同物理地址的记录的物理地址到第二物理地址集合中,并将所述第二物理地址集合输入给所述硬件加速器,以便所述第二所述硬件加速器生成所述第二VFC表。
9.根据权利要求8所述的存储器控制器,其中,所述迁移电路包括:控制电路和执行单元电路集合,
所述控制电路获取所述缓存单元上对应的映射信息,并分发给从所述执行单元电路集合中的处于空闲状态的至少一个执行单元电路;
所述处于空闲状态的至少一个执行电路单元根据输入的映射信息更新所述缓存单元中的二级映射表,记录所述缓存单元中的二级映射表中与所述对应的映射信息中具有相同逻辑地址但不同物理地址的记录的物理地址到第二物理地址集合中。
10.一种存储器,包括如权利要求8所述的存储器控制器和存储介质。
11.根据权利要求9所述的存储器,所述存储器为Dramless固态硬盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211599279.0A CN118193517A (zh) | 2022-12-12 | 2022-12-12 | 应用于存储器的映射信息处理方法和存储器控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211599279.0A CN118193517A (zh) | 2022-12-12 | 2022-12-12 | 应用于存储器的映射信息处理方法和存储器控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118193517A true CN118193517A (zh) | 2024-06-14 |
Family
ID=91391739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211599279.0A Pending CN118193517A (zh) | 2022-12-12 | 2022-12-12 | 应用于存储器的映射信息处理方法和存储器控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118193517A (zh) |
-
2022
- 2022-12-12 CN CN202211599279.0A patent/CN118193517A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11789860B2 (en) | Logical to physical mapping management using low-latency non-volatile memory | |
US20230152969A1 (en) | Memory system and method of controlling memory system | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
KR100823171B1 (ko) | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 | |
US9069657B2 (en) | LBA bitmap usage | |
US7536500B2 (en) | Header blocks for flash memory writes | |
KR100772863B1 (ko) | 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 | |
US10740251B2 (en) | Hybrid drive translation layer | |
CN104268094A (zh) | 一种优化的闪存地址映射方法 | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN109471594B (zh) | 一种mlc闪存读写方法 | |
KR20100115090A (ko) | 버퍼를 고려한 가비지 컬렉션 기법 | |
CN110968269A (zh) | 基于scm与ssd的键值存储***及读写请求处理方法 | |
CN113419675B (zh) | 用于存储器的写操作方法及读操作方法 | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
CN116364148A (zh) | 一种面向分布式全闪存储***的磨损均衡方法及*** | |
KR101191650B1 (ko) | 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법 | |
CN118193517A (zh) | 应用于存储器的映射信息处理方法和存储器控制器 | |
Kumar et al. | A survey on flash translation layer for NAND flash memory | |
Kumar et al. | A survey of erase operation in NAND flash memory | |
EP4369206A1 (en) | Techniques for instance storage using segment-based storage | |
US20230138215A1 (en) | Memory system controlling nonvolatile memory | |
EP3862863A1 (en) | Method for managing performance of logical disk, and storage array | |
CN107832234B (zh) | 一种用于nand flash的日志块快速命中方法 | |
KR101791855B1 (ko) | 스토리지 장치 및 이의 공간 재수거 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |