CN116737613A - 映射表管理方法及存储器 - Google Patents
映射表管理方法及存储器 Download PDFInfo
- Publication number
- CN116737613A CN116737613A CN202210210608.1A CN202210210608A CN116737613A CN 116737613 A CN116737613 A CN 116737613A CN 202210210608 A CN202210210608 A CN 202210210608A CN 116737613 A CN116737613 A CN 116737613A
- Authority
- CN
- China
- Prior art keywords
- mapping table
- storage medium
- flash memory
- records
- threshold
- 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 221
- 230000015654 memory Effects 0.000 title claims abstract description 96
- 238000007726 management method Methods 0.000 title claims abstract description 35
- 238000012546 transfer Methods 0.000 claims description 12
- 238000000034 method Methods 0.000 abstract description 18
- 239000007787 solid Substances 0.000 description 38
- 230000000875 corresponding effect Effects 0.000 description 24
- 230000004044 response Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000005070 sampling Methods 0.000 description 5
- 239000003086 colorant Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开了一种应用于存储器的映射表管理方法及存储器,存储器包括存储介质和缓存单元,该方法包括:根据从主机接收到的写命令和写数据更新缓存单元中存储的映射表;判断在缓存单元中存储的映射表的记录数量是否达到设定的第一阈值;以及当在缓存单元中存储的映射表的记录数量达到第一阈值时,将在缓存单元中存储的映射表的设定数量的记录转移至存储介质中,第一阈值大于设定数量。在该方法中,每当缓存单元中的映射表数量达到第一阈值时,就将小于第一阈值的设定数量的映射表存储至闪存存储器,如此既完整地保存了映射表,又降低了因存储映射表对主机写性能的影响,使主机随机写的性能平缓,降低了写性能波动。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种映射表管理方法及存储器。
背景技术
固态硬盘(SSD,Solid State Drives)是用固态电子存储芯片制作的存储硬盘,主要由控制器和存储介质组成,控制器中还包括缓存单元。目前最主流的固态硬盘采用闪存存储器(flash Memory)作为存储介质来存储数据,例如以NAND flash为例的非易失性存储器。
固态硬盘已经被广泛使用在各种场合,在使用SSD存储写数据时,需要用到FTL(flash Translation Layer,闪存转换层)中的映射表,映射表用于记录主机逻辑空间地址到flash闪存物理地址的映射关系。因此,SSD中不仅保存着用户写入的写数据,也保存着映射表中的记录。但是由于成本和工艺的限制,缓存单元容量有限,所以缓存单元只能存储映射表中的少部分记录,而其余的大部分记录则保存在存储介质中,因而固态硬盘的控制器会定期或不定期地执行将缓存单元中的映射表中的记录转移到存储介质的操作。但是在将缓存单元中的映射表中的记录转移到存储介质的操作过程中,是无法实时响应用户的写操作的,所以这个过程中,写的性能会大幅的降低,而等到这个过程结束后,又可以响应用户的写操作,此时写的性能又会恢复到正常水平。所以在用户进行大量的随机写操作的时候,写的性能会出现频繁的波动。
发明内容
鉴于上述问题,本发明的目的在于提供一种映射表管理方法及存储器,以解决现有技术中存在的问题。
根据本发明的一方面,提供一种应用于存储器的映射表管理方法,所述存储器包括存储介质和缓存单元,所述映射表管理方法包括:
根据从主机接收到的写命令和写数据更新所述缓存单元中存储的映射表;
判断在所述缓存单元中存储的所述映射表的记录数量是否达到设定的第一阈值;以及
当在所述缓存单元中存储的所述映射表的记录数量达到所述第一阈值时,将在所述缓存单元中存储的所述映射表的设定数量的记录转移至所述存储介质中,所述第一阈值大于所述设定数量。
在一些实施例中,还包括:
根据所述存储介质的固有属性设置所述设定数量。
在一些实施例中,所述存储介质为闪存存储器,所述闪存存储器由多个DIE组成,则所述根据所述存储介质的固有属性设置所述设定数量包括:
根据所述闪存存储器中的DIE的数量判断是否需要设置所述设定数量;
当需要设置所述设定数量时,根据每个DIE的容量设置所述设定数量。
在一些实施例中,其中,所述根据所述闪存存储器中的DIE的数量判断是否需要设置所述设定数量包括:
当所述闪存存储器中的DIE的数量大于第二阈值时,需要设置所述设定数量;
当所述闪存存储器中的DIE的数量小于或等于第二阈值时,无需设置所述设定数量。
在一些实施例中,所述设定数量的最小值等于所述DIE的容量与所述映射表的一条记录在所述闪存存储器所占用的空间大小的比值,且大于或等于所述DIE中的一个物理页所占空间与所述映射表的一条记录在所述闪存存储器所占用的空间大小的比值。
在一些实施例中,在根据从主机接收到的写命令和写数据更新所述缓存单元中存储的映射表的步骤之前,还包括:
设置所述第一阈值,所述第一阈值小于所述缓存单元能存储的所述映射表的记录数量。
在一些实施例中,还包括:在垃圾回收时更新所述映射表。
根据本发明的另一方面,提供一种存储器,包括:
控制器,与主机连接,用于从所述主机接收写数据;
存储介质,与所述控制器连接,用于存储所述写数据,
所述控制器还包括缓存单元,用于存储与所述写数据对应的映射表中的部分记录,并且所述控制器判断在所述缓存单元中存储的所述映射表的记录数量达到第一阈值时,将在所述缓存单元中存储的所述映射表的设定数量的记录转移至所述存储介质中,所述第一阈值大于所述设定数量。
在一些实施例中,所述存储介质为闪存存储器,所述缓存单元包括SRAM和/或DRAM。
在一些实施例中,所述闪存存储器由多个DIE组成,所述控制器根据所述存储介质的DIE的数量和每个DIE的容量固设置所述设定数量。
本申请提供的映射表管理方法及存储器,在存储写数据时还存储了与写数据对应的映射表,并且每当缓存单元中的映射表中的记录数量达到第一阈值时,就将映射表中小于第一阈值的设定数量的记录转移至闪存存储器,之后接着响应用户的写操作,并继续更新存储单元中的映射表,通过将缓存单元中的映射表分多次地转移至存储介质,也就是,现有技术中的一次性保存到存储介质的映射表中的记录分多次转移至存储介质中,从而减少了单次转移至存储介质的映射表的记录数量。因此,本发明实施例在完整保存映射表从而保证数据的完整性的基础上,降低了因转移映射表中的记录对主机写性能带来的影响,使主机随机写的性能趋于平缓,降低了写性能的波动。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出了传统的固态硬盘的写性能波动示意图;
图2示出了根据本发明实施例的映射表管理方法的流程图;
图3示出了根据本发明实施例的固态硬盘的写性能波动示意图;
图4示出了根据本发明实施例的映射表管理方法的完整流程图;
图5示出了根据本发明实施例的固态硬盘在存储数据时数据从控制器传输至存储介质的过程示意图;
图6和图7分别示出了传统的固态硬盘和本发明实施例的固态硬盘在响应用户操作存储写数据和映射表时的过程示意图;
图8示出了根据本发明实施例的固态硬盘的示意性框图。
具体实施方式
以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1示出了传统的固态硬盘的写性能波动示意图。
传统的固态硬盘在响应用户的写操作时,先将写数据保存至存储介质,并在缓存单元中存储与写数据对应的映射表,当映射表中的记录达到一定数量时,将其转移到闪存存储器中,此时不执行写操作,当执行转移操作之后,再响应用户的写操作。图1中在数据流中采用多个采样点采样固态硬盘的写性能,多个采样点的时间间隔相同。可以看到,写用户数据和将映射表数据转移至存储介质的操作是间隔执行的,在将映射表数据转移至存储介质的操作过程中,由于不能实时响应写操作,因此写操作性能变差。从图上可以看出,两个时段的写性能差距很大,因此在用户进行大量的随机写操作的时候,写的性能会出现频繁的波动。
本发明实施例提供了一种分阶段保存映射表的方法,根据SSD的固有属性计算出单次需要保存到存储介质的映射表中的记录数量,将之前需要一次性保存到存储介质中的映射表中的记录分两次或更多次保存。通过算法来实现单次仅保存缓存单元中的映射表中的一部分记录,以降低单次保存映射表中的记录所需的时间,将一次性的长时间的操作拆分到更长的时间轴上分多次完成,即将一次需要长时间的操作拆分为多次较短时间的操作从而平衡主机的写性能,减缓写性能的波动。
下面基于图2和3对本公开实施例进行详细介绍。图2示出了根据本发明实施例的映射表管理方法的流程图。图3示出了根据本发明实施例的固态硬盘的写性能波动示意图。
如图2所示,本实施例的映射表管理方法包括以下流程:
在步骤S101中,根据存储介质的固有属性设置设定数量。
本实施例的映射表管理方法可应用于固态硬盘(SSD),包括控制器和存储介质,控制器包括缓存单元,例如为SRAM和/或DRAM,用于存储一部分的映射表。存储介质例如为闪存存储器(例如为NAND flash),用于存储写数据和另一部分的映射表。采用控制器执行本实施例的映射表管理方法。
本步骤中,首先根据固态硬盘的固有属性设置单次保存至存储介质的映射表的记录数量,提前设定一个固定的数值。例如A条记录,那么单次存储至闪存存储器的映射表的记录数量就为A。
SSD的固有属性由SSD在出产时的规格参数确定,例如SSD规格参数指定SSD的容量为64M(即SSD名义上能够存储的最大数据量)。如果存储介质为闪存存储器,由于闪存存储器由多个DIE组成,则根据存储介质的固有属性设置设定数量包括:根据闪存存储器中的DIE的数量判断是否需要设置设定数量;以及当需要设置设定数量时,根据每个DIE的容量设置设定数量。例如某一SSD,包含4个DIE,每个DIE能存储96KB的数据,那么闪存存储器的数量为4个DIE,每个DIE的容量为96KB(每个DIE的容量相同)。
而根据闪存存储器中的DIE的数量判断是否需要设置设定数量的步骤包括:当闪存存储器中的DIE的数量大于第二阈值时,需要设置设定数量;当容量小于或等于第二阈值时,无需设置设定数量。即当SSD中的DIE的数量较小时,就无需分多次保存映射表,因为这对写性能的改变帮助较小,而当SSD中的DIE的数量较大时,可以分多次保存映射表,以降低写性能的波动。第二阈值例如为4个,即当闪存存储器包含的DIE的数量大于4个时,需要设置设定数量,即需要设置单次保存映射表的记录数量,否则不进行设置,按照传统固态硬盘的保存方法保存映射表即可。在确定需要设置设定数量后,再根据闪存存储器的每个DIE的容量决定单次需要保存的映射表的数量,例如容量大的DIE对应的闪存存储器可以一次多存储几条映射表中的记录,最终设定好设定数量A,A就是单次需要保存到闪存存储器的映射表的记录数量。
这一步骤可以视为初始化步骤,即对设定数量A的初始化过程。
在步骤S102中,设置第一阈值。
本步骤中,设置第一阈值,该第一阈值是对于缓存单元而言的,第一阈值通常小于缓存单元的容量,第一阈值例如以B表示。例如,缓存单元的容量为可存储100条记录,则第一阈值可以设置为80条,当映射表的记录数量达到第一阈值时就需要执行相应的动作。可选地,定义一个比值,例如70%或80%,则第一阈值等于缓存单元的容量乘以该比值。
上述两个步骤分别设置了设定数量A和第一阈值B,下面的步骤S103-S105则为开始执行映射表管理。
在步骤S103中,根据从主机接收到的写命令和写数据更新缓存单元中存储的映射表。
本步骤中,响应用户的写操作,固态硬盘接收主机下发的写命令和写数据,将写数据存储至存储介质中,并建立表征写数据的逻辑地址到物理地址的映射关系的映射表,该映射表先存储在缓存单元中,且该缓存单元中存储的映射表不断更新,随着时间推移,固态硬盘中存储的写数据不断增多,缓存单元中的映射表的记录数量也在不断增加。
在步骤S104中,判断缓存单元中的映射表的记录数量是否达到第一阈值。
本步骤中,判断缓存单元中的映射表的记录数量是否达到第一阈值B,当缓存单元中的映射表的记录数量达到第一阈值时,执行步骤S105;否则返回执行步骤S103。
在步骤S105中,将在缓存单元中存储的映射表的设定数量的记录转移至存储介质中,第一阈值大于设定数量。
本步骤中,当缓存单元中存储的映射表中的记录数量达到第一阈值时,说明缓存单元的剩余空间较少,此时需要将映射表中的一部分记录转移至存储介质中,以释放缓存单元的空间,但是为了避免转移映射表的记录占用时间太长无法及时响应主机的写操作,此时只将缓存单元中的映射表的一部分记录转移至存储介质,即设定数量A小于第一阈值B。
在具体的实施例中,假设缓存单元能存储的映射表的数量为N,即缓存单元的容量为N,设N为100条,B为80条,A为60条。按照传统的固态硬盘存储映射表的方法,当缓存单元中映射表的数量达到80条时,将这80条映射表全部保存至存储介质,保存完后再接着响应用户的写操作,写性能的波动较大,对应图1。而在本实施例中,设置了设定数量A,A小于B,即当缓存单元中的映射表数量达到80时,开始将80条记录中的60条转移保存到存储介质中,缓存单元释放出可供使用的60条映射表的空间。此后可以继续响应用户的写操作,而80条中的另外20条映射表中的记录此时还存储在缓存单元里,那么缓存单元中可供写操作使用的映射表空间还有100-20=80条。当用户写操作存储在缓存单元中的映射表数量再次达到80条(上次80条中的另外20条+当前新存储的60条)时,又执行转移60条映射表中的记录至存储介质的操作。这样多次重复,将一次需要保存至存储介质的80条映射表分成两次(60+20)保存在了存储介质中。相比于传统的固态硬盘,缓存单元中的第一个80条映射表会分阶段分两次保存到存储介质中,写性能的波动减少了。而对于随时间不断存储的写数据,由于映射表转移至存储介质的时间被放在更长的时间轴上比较,因此写性能的波动的减少更加明显。
如图3所示,采用本实施例的映射表管理方法在存储介质中存储映射表,与图1采用相同的采样频率和采样点对数据流进行采样,测试写性能。映射表数据被分段多次保存至存储介质,单次保存的映射表数量减少,对应时间段的写性能的波动较小。将之前单一的保存映射表数据或保存用户数据的时间分开,一段时间保存映射表数据,一段时间保存用户数据。与图1的结果比较,在测写性能的采样频率不变的情况下,总的需要存储的映射表的数量不变的情况下,写性能明显提高了。将此结果放在更长的时间轴上进行对比,那么写数据的性能波动的减缓会更加明显。因此,采用本实施例的映射表管理方法确实可以减少写性能的波动,而对于大容量的SSD来说,其能保存的映射表的数量更加庞大,写性能波动的减少更为明显。
进一步地,本实施例的步骤S101中,存储介质为闪存存储器时,设定数量的最小值为DIE的容量与映射表的一条记录在闪存存储器所占用的空间大小的比值,且该最小值应大于或等于DIE中一个物理页所占空间与映射表的一条记录在闪存存储器所占用的空间大小的比值。
具体地,DIE的容量由存储介质的规格参数确定,DIE的容量例如为64KB,如果一条映射表占用的空间大小为4K Byte(即存储介质为每条记录分配的固定大小的空间),则A的最小值为64KB/4KB=16。另外,单次存储至闪存存储器的映射表的数量在大于最小值的基础上越小越好,这样保存映射表的操作将分散在更长的时间跨度上去完成,对主机写的影响降低更多。即A在大于最小值的基础上越小,写性能的波动越小。在具体实施例中,例如N为100条,B为80条,A为35条,当用户写操作使缓存单元中的映射表记录数量达到80条时,执行保存映射表中的记录至闪存存储器的操作,此时保存80条映射表中的35条记录到NA NDflash中。然后继续响应用户的写操作,80条映射表中的另外45条还保留在缓存单元里,缓存单元中剩余空间可继续存储的映射表为100-45=55条。当用户写操作使缓存单元中的映射表记录数量再次达到80条(上次80条中的另外45条+当前新缓存的35条)时,再次执行保存35条映射表中的记录至存储介质的操作。那么,一个80条的映射表需要分三次保存到存储介质中,写性能的波动更小。但同时如果A的数值太小,那么所对应的固件的消耗就会较大,反而可能会有副作用。因此这里限定了A需要大于最小值。并且,因为在存储介质中,写操作的最小单位是物理页(Page),所以单次存储至闪存存储器的映射表的设定数量A对应的存储空间还应该大于一个物理页所占用的空间。一个物理页的大小由存储介质的规格参数确定,例如16KB或8KB,16KB是目前常用的,那么,以16K为示例,A的最小值还应该大于16K/4K=4。因此设定数量A的最小值大于或等于DIE中一个物理页所占空间与映射表的一条记录在所述闪存存储器所占用的空间大小的比值。
应该理解,第一阈值B设置也必须要适当,太大会导致映射表保存不及时,致使数据丢失,异常断电后也不好恢复;太小又可能会导致频繁的保存映射表和无效数据至存储介质,导致写的性能降低。用户执行一次写操作对应产生映射表中的一条记录,且存储介质存储数据是以物理页为单位的,如果第一阈值设置的太小,可能会在存储介质中存入较多的无效数据。例如假设N仍为100,第一阈值B设置为30,而A大于30(例如为70),那么当缓存单元中使用的映射表的数量达到30的时候就要执行保存映射表至存储介质的操作,会导致频繁刷表,影响固态硬盘的性能。而且由于A大于30,此时30条映射表达不到保存至闪存存储器的条件,需要补无效数据使得映射表的数量达到A。A为70,还要额外补40条无效数据,等70条数据全部保存至存储介质后,缓存空间才能释放出前次30条映射表使用的空间,继续响应用户的写操作,这样反而会影响写的性能,因此B大于A,且B的值不能太小。
进一步地,控制器还需要进行垃圾回收并根据垃圾回收更新映射表。具体地,由于控制单元会进行三种写操作:主机写操作、垃圾回收的写操作和映射表的写操作,且主机写操作和垃圾回收的写操作都会更新映射表,因此第一阈值B要设置得小于缓存单元的容量,以便有空间余量进行垃圾回收中的写操作,如此能够保证主机写操作和垃圾回收的写操作各有一次机会取得优先写操作的权限,避免由于主机写操作占用映射表内的空间太多而使得垃圾回收的写操作无法写映射表,以至于数据丢失。例如将第一阈值B设置为90,N为100,当缓存的映射表的数量达到90条时就需要保存映射表的记录至存储介质,但是由于某种原因暂时无法执行这一操作,却执行了垃圾回收的操作,垃圾回收的操作使用了缓存单元中映射表中的剩下的空间(对应10条记录),并且还在不断更新数据,那么垃圾回收的操作在操作完该剩下的空间(对应10条记录)之后没有可使用的空间了,导致数据丢失。所以在实际应用中,在设置第一阈值时,需要考虑到缓存单元的分配情况,使第一阈值对应的缓存空间等于一定比例乘以缓存单元的容量,例如第一阈值对应的缓存空间占缓存单元的容量的60%-80%。
本申请提供的映射表管理方法及固态硬盘,在存储写数据时还存储了与写数据对应的映射表,并且每当缓存单元中的映射表中的记录数量达到第一阈值时,就将映射表中小于第一阈值的设定数量的记录转移至闪存存储器,之后接着响应用户的写操作,并继续存储单元中的映射表,将缓存单元中的映射表分多次地转移至存储介质,减少了单次转移至存储介质的映射表的记录数量,也就是,将一次性要保存到存储介质的映射表中的记录分多次转移至存储介质中。因此,本发明实施例在完整保存映射表从而保证数据的完整性的基础上,降低了因转移映射表中的记录对主机写性能带来的影响,使主机随机写的性能趋于平缓,降低了写性能的波动。
图4示出了根据本发明实施例的映射表管理方法的完整流程图。
图4与图2公开的实施例基本一致。如图4所示,该操作流程包括步骤S201-S205。具体地:
在步骤S201中,根据闪存存储器中的DIE的数量判断是否需要设置设定数量。
在步骤S202中,当需要设置设定数量时,根据每个DIE的容量设置设定数量A。
步骤S201-S202为初始化阶段,即对于闪存存储器,根据闪存存储器的DIE的数量确定是否需要分段多次存储映射表至闪存存储器,如果是,则设置根据每个DIE的容量设置设定数量A。
在步骤S203中,响应用户的写操作,存储写数据和映射表。
在步骤S204中,判断缓存单元的映射表的记录数量是否达到阈值B。当缓存单元的映射表的记录数量达到阈值B时,执行步骤S205;否则执行步骤S203。
本步骤中,响应用户写操作的时候,随时判断当前缓存(如SRAM或TCM)中所使用的映射表的量是否达到阈值B。例如用户的写操作使用缓存中的映射表的记录数量达到阈值B时,就需要保存这些映射表中的记录到存储介质。
在步骤S205中,保存映射表中的数量A的记录到存储介质中。
本步骤中,缓存中的映射表数量达到阈值B后,按照单次存储的映射表的量A(A<B),将B条记录分多次保存到存储介质中,但单次实际保存到存储介质中的记录数量为A。
然后继续响应用户的写操作,即在执行完步骤S205之后返回执行步骤S203-S204,完成映射表的多次存储。
通过本实施例的映射表管理方法可以通过算法来实现单次只保存一部分的映射表至存储介质,降低单次保存映射表所需的时间,将一次需要长时间的操作拆分到更长的时间跨度上,降低写性能的波动。
图5示出了根据本发明实施例的固态硬盘在存储数据时数据从控制器传输至存储介质的过程示意图。如图5所示,固态硬盘中的数据从控制器120保存至存储介质130时需要经过两个过程。在第一阶段中,由控制器120的缓存单元124保存至NAND缓存133,在第二阶段中,由NAND缓存133保存至NAND底层134,第二阶段是闪存存储器内部执行的操作,不占用主机的写操作。图6和图7的固态硬盘在响应用户操作将写数据或映射表保存至存储介质时,也会经历图5的两个阶段。
图6和图7分别示出了传统的固态硬盘和本发明实施例的固态硬盘在响应用户操作存储写数据和映射表时的过程示意图。
图6和图7均列出了用户数据和映射表数据保存分别占用的时间,以1个CH(通道)对应4个CE(片选)的NAND flash为例说明,同一个DIE/LUN中,当CE0-CE3为填充色时,表示执行保存用户数据的操作;当CE0-CE3为非填充色时,表示执行保存映射表数据的操作。CE0-CE3在执行动作时对应时间轴分别对应的横条就是保存数据需要的时间。在一个横条中,包括填充色的时间和非填充色的时间,填充色的时间为图5中第一阶段所用的时间,非填充色时间为图5中第二阶段所用的时间。
图6和图7的固态硬盘在响应用户操作将写数据或映射表数据保存至存储介质时,也会经历图5的两个阶段。图6和图7均列出了用户数据和映射表数据保存分别占用的时间,以1个CH(通道)对应4个CE(片选)的闪存存储器为例说明,同一个DIE/LUN中,当CE0-CE3为填充色时,表示执行保存用户数据的操作;当CE0-CE3为非填充色时,表示执行保存映射表数据的操作。CE0-CE3在执行动作时对应时间轴分别对应的横条就是保存数据需要的时间。在一个横条中,包括填充色的时间和非填充色的时间,填充色的时间为图5中第一阶段所用的时间,非填充色时间为图5中第二阶段所用的时间。
如图6所示,按照闪存存储器收到的写命令从头至尾的序列存储数据,对应存储映射表的时间为非填充色的CE0-CE3中填充色对应的时间,此时缓存可释放,对应写映射表的时间较长。如图7所示,按照闪存存储器收到的写命令从头至尾的序列存储数据,对应存储映射表的时间为非填充色的CE0-CE1或CE2-CE3中填充色对应的时间,此时缓存可释放,对应写映射表的时间较少。通过比较图6和图7,在相同的写用户数据需要的时间下,映射表被分成多次存储,这次在CE0和CE1中存储,下次在CE2和CE3中存储,降低了单位时间内存储映射表的时间。结合图1和图3,可以得知,图7对应的固态硬盘采用的映射表管理方法相对图6来说可以降低写性能的波动。
图8示出了根据本发明实施例的固态硬盘的示意性框图。
如图8所示,计算机系统100包括主机110和固态硬盘,固态硬盘包括控制器120和作为存储介质的闪存存储器130,控制器120与主机110连接,用于与主机110交换写数据,闪存存储器130例如为NAND闪存芯片阵列。控制器120连接主机110与闪存存储器130,将主机110的写数据存入闪存存储器130。控制器120用于执行上述图2-图4的映射表管理方法。
控制器120包括主机接口121、处理器123、缓存单元(例如为SRAM或DRAM)124和存储器控制器128。控制系统120的主机接口121连接至主机110,以传输写数据和读写指令。处理器123与主机接口121、缓存单元124和存储器控制器128相连接,处理器123例如用于执行上述映射表管理方法,缓存单元124例如为SRAM,用于存储写数据对应的映射表和垃圾回收时更新的映射表,存储器控制器128控制写数据的传输和存储。处理器123还用于实现存储器控制的核心软件层,即FTL(flash Translation Layer,闪存转换层),使得操作系统和文件系统能够像访问硬盘一样访问存储器。该FTL还有例如支持坏块管理、损耗均衡、垃圾回收、断电恢复、写平衡技术等特点。
闪存存储器130包括闪存芯片阵列。为了提高数据读写性能,控制器120的存储器控制器128可以经由多个通道(例如CH0和CH2)对闪存存储器130的闪存芯片进行读写,每个通道连接一组闪存芯片。
控制器120响应主机的写命令,执行写操作,将写数据存储至闪存存储器130,并将写数据对应的映射表存储至缓存单元124中,处理器123用于设置单次存储至闪存存储器的映射表的记录的设定数量和第一阈值,控制器120可主要根据闪存存储器130的固有属性(由其规格参数确定)确定设定数量。当缓存单元124中存储的映射表中的记录数量达到第一阈值时,将设定数量的映射表中的记录保存至闪存存储器130中,该设定数量小于第一阈值。然后继续响应用户的写操作,更新缓存单元124中的映射表,再次判断是否达到第一阈值,重复执行上述操作,将原本需要一次存储至闪存存储器130中的映射表分多次存储,以平衡主机的写性能。
综上,本申请提供的映射表管理方法及固态硬盘,在存储写数据时还存储了与写数据对应的映射表,并且每当缓存单元中的映射表中的记录数量达到第一阈值时,就将映射表中小于第一阈值的设定数量的记录转移至闪存存储器,之后接着响应用户的写操作,并继续存储单元中的映射表,将缓存单元中的映射表分多次地转移至存储介质,减少了单次转移至存储介质的映射表的记录数量,也就是,将一次性要保存到存储介质的映射表中的记录分多次转移至存储介质中。因此,本发明实施例在完整保存映射表从而保证数据的完整性的基础上,降低了因转移映射表中的记录对主机写性能带来的影响,使主机随机写的性能趋于平缓,降低了写性能的波动。
应理解,上述映射表管理方法不仅可以应用到固态硬盘,还可以应用到诸如eMMC、UFS等类型的存储器中。eMMC、UFS等类型的存储器和固态硬盘一样具有控制器和存储介质,并可以由控制器实施上述映射表管理方法。
依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种应用于存储器的映射表管理方法,所述存储器包括存储介质和缓存单元,所述映射表管理方法包括:
根据从主机接收到的写命令和写数据更新所述缓存单元中存储的映射表;
判断在所述缓存单元中存储的所述映射表的记录数量是否达到设定的第一阈值;以及
当在所述缓存单元中存储的所述映射表的记录数量达到所述第一阈值时,将在所述缓存单元中存储的所述映射表的设定数量的记录转移至所述存储介质中,所述第一阈值大于所述设定数量。
2.根据权利要求1所述的映射表管理方法,还包括:
根据所述存储介质的固有属性设置所述设定数量。
3.根据权利要求2所述的映射表管理方法,其中,所述存储介质为闪存存储器,所述闪存存储器由多个DIE组成,则所述根据所述存储介质的固有属性设置所述设定数量包括:
根据所述闪存存储器中的DIE的数量判断是否需要设置所述设定数量;
当需要设置所述设定数量时,根据每个DIE的容量设置所述设定数量。
4.根据权利要求3所述的映射表管理方法,其中,所述根据所述闪存存储器中的DIE的数量判断是否需要设置所述设定数量包括:
当所述闪存存储器中的DIE的数量大于第二阈值时,需要设置所述设定数量;
当所述闪存存储器中的DIE的数量小于或等于第二阈值时,无需设置所述设定数量。
5.根据权利要求3或4所述的映射表管理方法,其中,所述设定数量的最小值等于所述DIE的容量与所述映射表的一条记录在所述闪存存储器所占用的空间大小的比值,且大于或等于所述DIE中的一个物理页所占空间与所述映射表的一条记录在所述闪存存储器所占用的空间大小的比值。
6.根据权利要求1所述的映射表管理方法,其中,在根据从主机接收到的写命令和写数据更新所述缓存单元中存储的映射表的步骤之前,还包括:
设置所述第一阈值,所述第一阈值小于所述缓存单元能存储的所述映射表的记录数量。
7.根据权利要求1所述的映射表管理方法,还包括:在垃圾回收时更新所述映射表。
8.一种存储器,包括:
控制器,与主机连接,用于从所述主机接收写数据;
存储介质,与所述控制器连接,用于存储所述写数据,
所述控制器还包括缓存单元,用于存储与所述写数据对应的映射表中的部分记录,并且所述控制器判断在所述缓存单元中存储的所述映射表的记录数量达到第一阈值时,将在所述缓存单元中存储的所述映射表的设定数量的记录转移至所述存储介质中,所述第一阈值大于所述设定数量。
9.根据权利要求8所述的存储器,其中,所述存储介质为闪存存储器,所述缓存单元包括SRAM和/或DRAM。
10.根据权利要求9所述的存储器,其中,所述闪存存储器由多个DIE组成,所述控制器根据所述存储介质的DIE的数量和每个DIE的容量设置所述设定数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210210608.1A CN116737613A (zh) | 2022-03-04 | 2022-03-04 | 映射表管理方法及存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210210608.1A CN116737613A (zh) | 2022-03-04 | 2022-03-04 | 映射表管理方法及存储器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737613A true CN116737613A (zh) | 2023-09-12 |
Family
ID=87903208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210210608.1A Pending CN116737613A (zh) | 2022-03-04 | 2022-03-04 | 映射表管理方法及存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737613A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492663A (zh) * | 2023-12-29 | 2024-02-02 | 合肥康芯威存储技术有限公司 | 一种存储器及其数据处理方法 |
-
2022
- 2022-03-04 CN CN202210210608.1A patent/CN116737613A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492663A (zh) * | 2023-12-29 | 2024-02-02 | 合肥康芯威存储技术有限公司 | 一种存储器及其数据处理方法 |
CN117492663B (zh) * | 2023-12-29 | 2024-03-26 | 合肥康芯威存储技术有限公司 | 一种存储器及其数据处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7613870B2 (en) | Efficient memory usage in systems including volatile and high-density memories | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US20190220396A1 (en) | Data Storage Device | |
US8296504B2 (en) | Data management method and flash memory storage system and controller using the same | |
CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
US11194737B2 (en) | Storage device, controller and method for operating the controller for pattern determination | |
US9208101B2 (en) | Virtual NAND capacity extension in a hybrid drive | |
CN109952565B (zh) | 内存访问技术 | |
WO2014074449A2 (en) | Wear leveling in flash memory devices with trim commands | |
KR20110117099A (ko) | 메모리 장치에서 맵핑 어드레스 테이블을 유지관리하는 방법 | |
CN110347338B (zh) | 混合内存数据交换处理方法、系统及可读存储介质 | |
CN109960471B (zh) | 数据存储方法、装置、设备以及存储介质 | |
KR20100115090A (ko) | 버퍼를 고려한 가비지 컬렉션 기법 | |
CN110413211B (zh) | 存储管理方法、电子设备以及计算机可读介质 | |
CN112506438A (zh) | 一种映射表管理方法及固态硬盘 | |
CN115080461A (zh) | 增强高速缓存脏信息 | |
WO2023087861A1 (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN113590505B (zh) | 地址映射方法、固态硬盘控制器及固态硬盘 | |
CN116737613A (zh) | 映射表管理方法及存储器 | |
CN116540950B (zh) | 一种存储器件及其写入数据的控制方法 | |
CN116795735A (zh) | 固态硬盘空间分配方法、装置、介质及系统 | |
KR20220052353A (ko) | 조정된 파라미터를 사용한 메모리 컴포넌트의 가비지 수집 | |
CN114546292B (zh) | 一种nand flash坏块管理方法及系统 | |
KR20150139383A (ko) | 반도체 장치 | |
CN107544866B (zh) | 一种日志更新方法与装置 |
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 |