CN112506438A - 一种映射表管理方法及固态硬盘 - Google Patents
一种映射表管理方法及固态硬盘 Download PDFInfo
- Publication number
- CN112506438A CN112506438A CN202011474713.3A CN202011474713A CN112506438A CN 112506438 A CN112506438 A CN 112506438A CN 202011474713 A CN202011474713 A CN 202011474713A CN 112506438 A CN112506438 A CN 112506438A
- Authority
- CN
- China
- Prior art keywords
- mapping table
- page
- physical
- flash memory
- page 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.)
- Granted
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 325
- 239000007787 solid Substances 0.000 title claims abstract description 41
- 238000007726 management method Methods 0.000 title claims abstract description 23
- 230000015654 memory Effects 0.000 claims abstract description 125
- 238000000034 method Methods 0.000 claims abstract description 31
- 239000000126 substance Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 30
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 10
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 101100242890 Quaranfil virus (isolate QrfV/Tick/Afghanistan/EG_T_377/1968) PA gene Proteins 0.000 description 5
- 101100247669 Quaranfil virus (isolate QrfV/Tick/Afghanistan/EG_T_377/1968) PB1 gene Proteins 0.000 description 5
- 101100242901 Quaranfil virus (isolate QrfV/Tick/Afghanistan/EG_T_377/1968) PB2 gene Proteins 0.000 description 5
- 101150025928 Segment-1 gene Proteins 0.000 description 5
- 101150082826 Segment-2 gene Proteins 0.000 description 5
- 101150027881 Segment-3 gene Proteins 0.000 description 5
- 101100242902 Thogoto virus (isolate SiAr 126) Segment 1 gene Proteins 0.000 description 5
- 101100194052 Thogoto virus (isolate SiAr 126) Segment 2 gene Proteins 0.000 description 5
- 101100242891 Thogoto virus (isolate SiAr 126) Segment 3 gene Proteins 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000011010 flushing procedure Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000012212 insulator Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012005 ligant binding assay Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052814 silicon oxide Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例涉及固态硬盘应用领域,公开了一种映射表管理方法及固态硬盘,所述方法包括:预先为每一逻辑块设置一张小页映射表,其中,所述小页映射表用于记录对应逻辑块中的所有逻辑页与闪存物理页的映射关系;接收主机发送的IO数据;确定所述逻辑块地址对应的物理块的当前写入物理页,以确定所述IO数据对应的闪存物理页,并更新所述小页映射表;将所述IO数据写入到对应的闪存物理页的数据区域,以及,将更新后的小页映射表写入到对应的闪存物理页的备用区域。通过为每一逻辑块设置一张小页映射表,并将更新后的小页映射表与IO数据同步写入闪存物理页,本发明能够有效提升固态硬盘的服务质量。
Description
技术领域
本发明涉及固态硬盘应用领域,特别是涉及一种闪存控制器、固态硬盘及其控制器、闪存命令管理方法。
背景技术
固态硬盘(Solid State Drives,SSD),是采用固态电子存储芯片阵列而制成的硬盘,固态硬盘包括控制单元和存储单元(FLASH存储芯片或DRAM存储芯片)。目前固态硬盘系统中有相当部分是存在动态随机存取存储器(Dynamic Random Access Memory,DRAM)的,所以SSD有较大的数据缓存空间用来缓存数据。
服务质量(Quality of Service,QoS)表达的是时延"置信级"(ConfidenceLevel),例如:在测试规定的时间内使用2个9(99%)到5个9(99.999%)的百分比的命令中最大的时延(Max Latency),也就是最慢的那条命令的响应时间。整体上看,一个SSD盘QoS时延分布整体越靠左越好,即时延越小越好。企业级SSD的服务质量(Qos,Quality ofService)指标比其他性能都更重要。
基于NAND闪存的SSD由于其异地写入的特性,固件需要维护一张与容量成正比的映射表,它记录了主机逻辑页(Logical Block Address,LBA)与物理页的对应关系,后续主机读IO需查询该表获得物理地址,然后从NAND闪存中读取数据。为提升访问映射表的效率,通常都将映射表完整的缓存在动态随机存储器(Dynamic Random Access Memory,DRAM)中,由于DRAM掉电丢失数据的特性固件需设计某种机制将DRAM中的映射表写入(下刷)到闪存中,而不同的下刷映射表的机制将会对SSD的服务质量产生不同的影响,尤其是对稳态写场景下的服务质量影响最大。
目前的技术方案通常将更新的映射表先缓存在DRAM,累积到一定量时再集中下刷到闪存,导致影响主机IO的响应时间。
发明内容
本发明实施例旨在提供一种映射表管理方法及固态硬盘,其解决了现有固态硬盘通过集中下刷映射表到闪存导致影响主机IO的响应时间的问题,提高固态硬盘的服务质量。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种映射表管理方法,应用于固态硬盘,所述固态硬盘包括存储介质,所述存储介质包括至少一个闪存物理页,每一所述闪存物理页包括数据区域和备用区域,所述方法包括:
预先为每一逻辑块设置一张小页映射表,其中,所述小页映射表用于记录对应逻辑块中的所有逻辑页与物理页的映射关系;
接收主机发送的I O数据;
计算所述IO数据对应的逻辑块地址,并查询块映射表确定所述逻辑块地址对应的物理块;
确定所述逻辑块地址对应的物理块的当前写入物理页,以确定所述IO数据对应的闪存物理页,并更新所述小页映射表;
将所述IO数据写入到对应的闪存物理页的数据区域,以及,将更新后的小页映射表写入到对应的闪存物理页的备用区域。
在一些实施例中,每一小页映射表包括多个页映射表项,每一页映射表项用于记录与其对应的逻辑页与闪存物理页的映射关系。
在一些实施例中,所述更新所述小页映射表,包括:
根据所述IO数据对应的闪存物理页,更新每一闪存物理页对应的逻辑页对应的页映射表项。
在一些实施例中,所述方法还包括:
判断所述小页映射表的存储空间是否大于所述闪存物理页的备用区域;
若所述小页映射表的存储空间小于或等于所述闪存物理页的备用区域,则直接将更新后的小页映射表写入到对应的闪存物理页的备用区域。
在一些实施例中,所述方法还包括:
若所述小页映射表的存储空间大于所述闪存物理页的备用区域,则将所述小页映射表划分为第一预设数量的表段,其中,每一表段包括第二预设数量的页映射表项;
为每一小页映射表设置一张二级小页映射表,其中,所述二级小页映射表用于记录所述小页映射表中的每一表段所存储的物理位置信息;
确定所述逻辑块地址对应的物理块的当前写入物理页,以确定所述IO数据对应的闪存物理页,并更新所述表段以及所述二级小页映射表;
将所述IO数据写入到对应的闪存物理页的数据区域,以及,将更新后的表段和更新后的二级小页映射表写入到对应的闪存物理页的备用区域。
在一些实施例中,所述更新所述表段,包括:
根据所述IO数据对应的闪存物理页,更新所述表段中所述闪存物理页对应的逻辑页对应的页映射表项。
在一些实施例中,所述更新所述二级小页映射表,包括:
根据所述表段的物理位置信息,更新所述二级小页映射表,其中,所述表段的物理位置信息为与该表段对应的闪存物理页的位置。
在一些实施例中,所述方法还包括:确定所述第一预设数量,具体包括:
获取所述小页映射表中存储的页映射表项的数量、每一页映射表项的存储空间的大小以及所述备用区域的存储空间的大小;
根据所述小页映射表中存储的页映射表项的数量、每一页映射表项的存储空间的大小以及所述备用区域的存储空间的大小,确定所述第一预设数量。
在一些实施例中,所述根据所述小页映射表中存储的页映射表项的数量、每一页映射表项的存储空间的大小以及所述备用区域的存储空间的大小,确定所述第一预设数量,包括:
假设所述第一预设数量为t,则根据如下公式确定所述第一预设数量t:
z*X+t*X≤P
t*z≥Y
其中,Y为每一小页映射表存储的页映射表项的数量,z为每一表段包括的页映射表项的数量,X为每一页映射表项的存储空间的大小,P为备用区域的存储空间的大小。
第二方面,本发明实施例提供一种固态硬盘控制器,包括:
至少一个闪存介质,用于存储闪存数据;
主控制器,通信连接至少一个所述闪存介质,
其中,所述主控制器包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的缓存器;其中,
所述缓存器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的映射表管理方法。
第三方面,本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使固态硬盘能够执行如上所述的映射表管理方法。
本发明实施例的有益效果是:区别于现有技术的情况下,本发明实施例提供的一种映射表管理方法,应用于固态硬盘,所述固态硬盘包括存储介质,所述存储介质包括至少一个闪存物理页,每一所述闪存物理页包括数据区域和备用区域,所述方法包括:预先为每一逻辑块设置一张小页映射表,其中,所述小页映射表用于记录对应逻辑块中的所有逻辑页与闪存物理页的映射关系;接收主机发送的IO数据;计算所述IO数据对应的逻辑块地址,并查询块映射表确定所述逻辑块地址对应的物理块;确定所述逻辑块地址对应的物理块的当前写入物理页,以确定所述IO数据对应的闪存物理页,并更新所述小页映射表;将所述IO数据写入到对应的闪存物理页的数据区域,以及,将更新后的小页映射表写入到对应的闪存物理页的备用区域。通过为每一逻辑块设置一张小页映射表,并将更新后的小页映射表与IO数据同步写入闪存物理页,本发明能够有效提升固态硬盘的服务质量。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是现有技术的映射机制的示意图;
图2是现有技术的服务时间的示意图;
图3是本发明实施例提供的一种固态硬盘的结构示意图;
图4是本发明实施例提供的一种映射机制的示意图;
图5是本发明实施例提供的一种映射管理方法的流程示意图;
图6a是本发明实施例提供的一种主机写场景的初始状态的示意图;
图6b是本发明实施例提供的一种主机写场景的第一写入状态的示意图;
图6c是本发明实施例提供的一种主机写场景的第二写入状态的示意图;
图6d是本发明实施例提供的一种主机写场景的第三写入状态的示意图;
图7是本发明实施例提供的一种主机写IO的流程示意图;
图8是本发明实施例提供的另一种映射管理方法的流程示意图;
图9是本发明实施例提供的一种逻辑块、小页映射表及闪存的示意图;
图10是本发明实施例提供的二级小页映射表的示意图;
图11a是本发明实施例提供的另一种主机写场景的第一写入状态的示意图;
图11b是本发明实施例提供的另一种主机写场景的第二写入状态的示意图;
图11c是本发明实施例提供的另一种主机写场景的第三写入状态的示意图;
图11d是本发明实施例提供的另一种主机写场景的第四写入状态的示意图;
图11e是本发明实施例提供的另一种主机写场景的第五写入状态的示意图;
图12是本发明实施例提供的另一种主机写IO的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
典型的固态硬盘(Solid State Drives,SSD)通常包括固态硬盘控制器(主控制器)、闪存阵列、缓存单元以及其他外围单元。
其中,固态硬盘控制器用于作为控制运算单元,管理SSD内部系统;闪存阵列(NANDFlash),作为存储单元,用于存储数据,包括用户数据和系统数据,闪存阵列一般呈现多个通道(Channel,简写CH),一个通道独立连接一组NAND Flash,例如CH0/CH1……CHx。其中闪存(NAND Flash),其特性是写入之前,必须进行擦除,且每个闪存擦除次数有限;缓存单元,用于缓存映射表,所述缓存单元一般为动态随机存取存储器(Dynamic Random AccessMemory,DRAM)。其他外围单元可以包括传感器、寄存器等部件。
假设逻辑页(Logical Block Address,LBA)的大小为4KB,闪存物理页大小也为4KB,主流的SSD均采用4KB颗粒度的映射机制。
请参阅图1,图1是现有技术的映射机制的示意图;
如图1所示,动态随机存取存储器(Dynamic Random Access Memory,DRAM)中缓存了最新的映射表(刚上电时,从闪存中读取最新的映射表到DRAM),后续主机写入数据(LBA)时,直接更新DRAM中对应的映射表项,随着主机写入数据(LBA)越来越多,DRAM中更新的映射表项也越来越多,为了防止突然掉电丢失DRAM中过多的最新映射表项,现有技术设计了如下机制来条件性地下刷DRAM中映射表到闪存中,即当DRAM中更新的映射表项达到预设的阈值TH(可根据实际情况动态调整)时,启动图1中所示的刷映射表的内部任务,该内部任务会产生较多的内部写入操作,它们会占据一定(由TH决定)的NAND闪存带宽。
请再参阅图2,图2是现有技术的服务时间的示意图;
如图2所示,当DRAM中映射表下刷到闪存中时,会占据较多的NAND闪存带宽,从而导致主机读写IO的性能将会下降,服务时间将会增加,导致服务质量下降。
有鉴于此,本发明提供一种映射表管理方法及固态硬盘,以解决目前的技术方案通常将更新的映射表先缓存在DRAM,累积到一定量时再集中下刷到闪存,导致影响主机IO的响应时间的技术问题,有效提升固态硬盘的服务质量。
下面结合说明书附图阐述本发明的技术方案。
请参阅图3,为本发明实施例提供的一种固态硬盘的结构示意图。
如图3所示,所述固态硬盘300包括闪存介质310以及与所述闪存介质310连接的固态硬盘控制器320。其中,所述固态硬盘300通过有线或无线的方式与所述主机400通信连接,用以实现数据交互。
闪存介质310,作为所述固态硬盘300的存储介质,也称作闪存、Flash、Flash存储器或Flash颗粒,属于存储器件的一种,是一种非易失性存储器,在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘,使得闪存介质310得以成为各类便携型数字设备的存储介质的基础。
其中,闪存介质310可以为Nand FLASH,Nand FLASH以单晶体管作为二进制信号的存储单元,其结构与普通的半导体晶体管非常相似,区别在于Nand FLASH的单晶体管加入了浮动栅和控制栅,浮动栅用于贮存电子,表面被一层硅氧化物绝缘体所包覆,并通过电容与控制栅相耦合,当负电子在控制栅的作用下被注入到浮动栅中,Nand FLASH的单晶体的存储状态就由“1”变成了“0”,而当负电子从浮动栅中移走后,存储状态就由“0”变成了“1”,包覆在浮动栅表面的绝缘体用于将浮动栅中的负电子困住,实现数据存储。即Nand FLASH的存储单元为浮动栅晶体管,使用浮动栅晶体管以电荷的形式存储数据。存储电荷的多少与浮动栅晶体管所被施加的电压的大小有关。
一个Nand FLASH包括至少一个Chip芯片,每一个Chip芯片由若干个Block物理块组成,每一个Block物理块包括若干个Page页。其中,Block物理块是Nand FLASH执行擦除操作的最小单位,Page页为Nand FLASH执行读写操作的最小单位,一个Nand FLASH的容量等于其Block物理块的数量*一个Block物理块包含的Page页的数量*一个Page页的容量。具体的,闪存介质10按照存储单元的电压的不同层次,可分为SLC、MLC、TLC以及QLC。
固态硬盘控制器320,包括数据转换器321、处理器322、缓存器323、闪存控制器324以及接口325。
数据转换器321,分别与处理器322和闪存控制器324连接,所述数据转换器321用于将二进制数据转换为十六进制数据,以及将十六进制数据转换为二进制数据。具体地,当所述闪存控制器324向所述闪存介质310写入数据时,通过所述数据转换器321将待写入的二进制数据转换为十六进制数据,然后再写入闪存介质310。当所述闪存控制器324从所述闪存介质310读取数据时,通过所述数据转换器321将闪存介质310中存储的十六进制数据转换为二进制数据,然后从二进制数据页寄存器中读取转换后的数据。其中,所述数据转换器321可以包括二进制数据寄存器和十六进制数据寄存器。所述二进制数据寄存器可以用于保存由十六进制转换为二进制后的数据,所述十六进制数据寄存器可以用于保存由二进制转换为十六进制后的数据。
处理器322,分别与数据转换器321、缓存器323、闪存控制器324以及接口325连接,其中,处理器322与数据转换器321、缓存器323、闪存控制器324以及接口325可以通过总线或者其他方式连接,所述处理器用于运行存储在缓存器323中的非易失性软件程序、指令以及模块,从而实现本发明任一方法实施例。
缓存器323,主要用于缓存主机400发送的读/写指令以及根据主机400发送的读/写指令从闪存介质310获取的读数据或者写数据。缓存器323作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。缓存器323可以包括存储程序区,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,缓存器323可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,缓存器323可选包括相对于处理器324远程设置的存储器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述缓存器323可以为静态随机存取存储器(StaticRandom Access Memory,SRAM)或者耦合内存(Tightly Coupled Memory,TCM)或者双倍速率同步动态随机存储器(Double DataRateSynchronous Dynamic Random Access Memory,DDR SRAM)。
闪存控制器324,与闪存介质310、数据转换器321、处理器322以及缓存器323连接,用于访问后端的闪存介质310,管理闪存介质310的各种参数和数据I/O;或者,用于提供访问的接口和协议,实现对应的SAS/SATA target协议端或者NVMe协议端,获取主机发出的I/O指令并解码和生成内部私有数据结果等待执行;或者,用于负责FTL(Flash translationlayer,闪存转换层)的核心处理。
接口325,连接主机400以及数据转换器321、处理器322以及缓存器323,用于接收主机400发送的数据,或者,接收所述处理器322发送的数据,实现主机400与处理器322之间的数据传输,所述接口325可以为SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2NVME/SATA协议。
请参阅图4,图4是本发明实施例提供的一种映射机制的示意图;
如图4所示,固件将整个逻辑页分为若干个逻辑块,使得每个逻辑块中的逻辑页数目等于物理块中的物理页数目,即每一逻辑块包括m个逻辑页以及每一物理块包括m个物理页,且固件维护了一个块映射表,所述块映射表记录每一个逻辑块对应的物理块号,如图4所示,逻辑块0映射到物理块2,则属于逻辑块0的所有逻辑页(LBA0~LBAm-1)只能写到物理块2中的物理页上,这就是块映射的大致思想。
在本发明实施例中,为了保证随机写的性能,逻辑块中仍采用页映射机制,如图4所示,逻辑块0中的逻辑页可映射到物理块2中任一物理页,优选地,物理块中的物理页是顺序写入的,因此固件还需为每一个逻辑块维护一个很小的页映射表,用来记录逻辑页与物理页的映射关系。
也就是说,本发明实施例将现有技术中一张巨大的页映射表拆分成了若干张非常小的页映射表,举例来说,假设总共有1M个逻辑页(LBA),每个逻辑页大小为4KB,每个物理块包含256个物理页,每个物理页也是4KB大小,那么现有技术中总的页映射表大小为1M*4B=4MB。
而本发明实施例将所有逻辑页分为1M/256=4K个逻辑块,每个逻辑块对应有一张小页映射表,小页映射表中存储了256个页映射表项,由于小表中存储的页映射表项的表项数目等于物理块中物理页的数目,所以每个表项只需8bit,因此每张小表的大小为256*8bit=256B,从而大幅减少了页映射表的存储空间。
在本发明实施例中,闪存介质的每一闪存物理页均包括数据区域和备用区域(P),所述备用区域用于提供主控存储自定义的数据,可以理解的是,闪存芯片写入物理页的过程实际是数据区域(4KB)和备用区域一起同时写入的,如果主控没有为备用区域提供数据,则闪存芯片会用自己填充无效数据。
在本发明实施例中,所述方法还包括:根据所述数据区域的存储空间大小,确定备用区域的存储空间大小,例如:预设比例系数,根据所述比例系数以及数据区域的存储空间大小,确定所述备用区域的存储空间大小,比如:4KB物理页对应有512B左右的备用区域。
请参阅图5,图5是本发明实施例提供的一种映射管理方法的流程示意图;
如图5所示,该映射管理方法,应用于如上所述的固态硬盘,所述方法包括:
步骤S10:预先为每一逻辑块设置一张小页映射表,其中,所述小页映射表用于记录对应逻辑块中的所有逻辑页与物理页的映射关系;
具体的,每一逻辑块一一对应一张小页映射表,所述小页映射表用于记录对应逻辑块中的所有逻辑页与物理页的映射关系,其中,每一小页映射表包括多个页映射表项,每一页映射表项用于记录与其对应的逻辑页与闪存物理页的映射关系。
步骤S20:接收主机发送的IO数据;
具体的,每一IO数据对应一张小页映射表,也就是说,主机在随机写场景下每个IO只会更新一张小页映射表,因此,本发明实施例通过将更新后的小页映射表跟随IO数据一起写入到闪存物理页中。
步骤S30:计算所述IO数据对应的逻辑块地址,并查询块映射表确定所述逻辑块地址对应的物理块;
具体的,所述IO数据包括至少一个物理页,主控通过计算所述IO数据对应的逻辑块地址,并查询块映射表确定所述逻辑块地址对应的物理块,其中,所述块映射表存储逻辑块地址与物理块地址的映射关系。可以理解的是,所述计算所述IO数据对应的逻辑块地址的方式,其属于现有技术,在此不再赘述。
请一并参阅图6a至图6d,其中,图6a是本发明实施例提供的一种主机写场景的初始状态的示意图;图6b是本发明实施例提供的一种主机写场景的第一写入状态的示意图;图6c是本发明实施例提供的一种主机写场景的第二写入状态的示意图;图6d是本发明实施例提供的一种主机写场景的第三写入状态的示意图;
如图6a所示,假设主机发送的IO数据包括LBA3,LBA2,LBA1,则主控确定LBA3,LBA2,LBA1均属于逻辑块0,且主控申请物理块2来存储逻辑块0中的数据,其中,图6a所示为初始状态,且物理块2为刚分配的物理块,其本身没有存储数据,因此,当前写入物理页为物理页0,且逻辑块0的页映射表项都是无效值,本发明实施例中的无效值以N表示。
步骤S40:确定所述逻辑块地址对应的物理块的当前写入物理页,以确定所述IO数据对应的闪存物理页,并更新所述小页映射表;
具体的,在确定所述逻辑块地址对应的物理块的当前写入物理页之后,确定所述IO数据对应的闪存物理页,并根据所述IO数据的写入情况,逐一更新所述小页映射表中的页映射表项,以更新所述小页映射表。
具体的,所述更新所述小页映射表,包括:
根据所述IO数据对应的闪存物理页,更新每一闪存物理页对应的逻辑页对应的页映射表项。
应当说明的是,本发明实施例中,以逻辑页的大小为4KB进行说明,并不是对逻辑页的大小的限制,逻辑页的大小也可以为其他数据,例如:8KB、16KB等。
如图6b所示,写入LBA3的过程如下:主控首先判断LBA3将写入物理块2的物理页0,即更新LBA3对应的页映射表项为0,当逻辑块0中的逻辑页LBA3准备写入到物理块2的物理页0之后,更新所述逻辑页LBA3对应的页映射表项为0,之后将LBA3的数据和逻辑块0的整个页映射表项写入物理块2的物理页0中。
如图6c所示,写入LBA2的过程如下:主控判断LBA2将写入物理块2的物理页1,即更新LBA2对应的页映射表项为1,然后将LBA2的4KB数据和逻辑块0的整个页映射表写入物理块2的物理页1中;
如图6d所示,写入LBA1的过程如下:主控判断LBA1将写入物理块2的物理页2,即更新LBA1对应的页映射表项为2,然后将LBA1的4KB数据和逻辑块0的整个页映射表写入物理块2的物理页2中;
可以理解的是,在处理IO数据中的最后一个逻辑页之后,更新后的小页映射表为最新的小页映射表,因此,当最后一个逻辑页与更新后的小页映射表同步写入闪存之后,可以根据最后一个逻辑页对应的闪存物理页的备用区域,确定最新的小页映射表,因此,无需下刷映射表,从而减少了响应时间,能够有效提升固态硬盘的服务质量。
步骤S50:将所述IO数据写入到对应的闪存物理页的数据区域,以及,将更新后的小页映射表写入到对应的闪存物理页的备用区域。
具体的,所述IO数据与更新后的小页映射表同步写入,即,将所述IO数据写入到对应的闪存物理页的数据区域,同时,将更新后的小页映射表写入到对应的闪存物理页的备用区域。
请再参阅图7,图7是本发明实施例提供的一种主机写IO的流程示意图;
如图7所示,该主机写IO的流程,包括:
步骤S701:主机写逻辑页;
具体的,假设所述主机发送的逻辑页为LBA_x;
步骤S702:计算逻辑页对应的逻辑块地址;
具体的,假设逻辑页对应的逻辑块地址为LK,则计算所述逻辑页对应的逻辑块地址通过位移运算完成,例如:LK=LBA_x/m,其中,m为2的幂次方。
步骤S703:查询块映射表,确定逻辑块地址对应的物理块;
具体的,查询块映射表,找到逻辑块地址LK对应的物理块PK;
步骤S704:确定物理块的当前写入物理页位置;
具体的,确定物理块PK的当前写入物理页位置PBA。
步骤S705:根据逻辑块地址对应的物理页地址,更新页映射表项;
具体的,用物理页位置PBA更新LBA_x对应的页映射表项,即LK对应小页映射表中的LBA_x/m位置处。
步骤S706:将逻辑页数据与逻辑页对应的更新后的小页映射表写入物理页;
具体的,将逻辑页LBA_x对应的更新后的小页映射表与LBA_x数据一起写入物理页PBA处。
在本发明实施例中,通过提供一种映射表管理方法,应用于固态硬盘,所述固态硬盘包括存储介质,所述存储介质包括至少一个闪存物理页,每一所述闪存物理页包括数据区域和备用区域,所述方法包括:预先为每一逻辑块设置一张小页映射表,其中,所述小页映射表用于记录对应逻辑块中的所有逻辑页与物理页的映射关系;接收主机发送的IO数据;计算所述IO数据对应的逻辑块地址,并查询块映射表确定所述逻辑块地址对应的物理块;确定所述逻辑块地址对应的物理块的当前写入物理页,以确定所述IO数据对应的闪存物理页,并更新所述小页映射表;将所述IO数据写入到对应的闪存物理页的数据区域,以及,将更新后的小页映射表写入到对应的闪存物理页的备用区域。通过为每一逻辑块设置一张小页映射表,并将更新后的小页映射表与IO数据同步写入闪存物理页,本发明能够避免下刷映射表导致的主机读写性能下降,以减少服务时间,有效提升固态硬盘的服务质量。
在上述实施例中,其映射表管理方法是基于闪存物理页的备用区域大于或等于小页映射表的存储空间,因此,当备用区域的存储空间小于小页映射表的存储空间时,本发明进一步提供相应的处理方式进行处理。
请再参阅图8,图8是本发明实施例提供的另一种映射管理方法的流程示意图;
如图8所示,所述映射表管理方法,还包括:
步骤S801:获取闪存物理页的备用区域的存储空间大小;
具体的,请参阅图9,图9是本发明实施例提供的一种逻辑块、小页映射表及闪存的示意图;
如图9所示,该闪存的每一闪存物理页均包括数据区域和备用区域(P),通过获取闪存物理页的备用区域的存储空间大小,与小页映射表的存储空间大小进行比较,本发明能够确定不同的映射表策略进行映射管理。
步骤S802:判断小页映射表的存储空间是否大于所述闪存物理页的备用区域;
步骤S803:将所述小页映射表划分为第一预设数量的表段,其中,每一表段包括第二预设数量的页映射表项;
具体的,若所述小页映射表的存储空间大于所述闪存物理页的备用区域,则将所述小页映射表划分为第一预设数量的表段,其中,每一表段包括第二预设数量的页映射表项;
具体的,假设小页映射表大小为M(Byte),备用区域P大小为N(Byte),且M>N,请再参阅图10,图10是本发明实施例提供的二级小页映射表的示意图;
如图10所示,所述小页映射表被划分为若干个表段(Segment),其中,假设所述表段(Segment)的第一预设数量为t,所述小页映射表的表段分别编号为Segment 0到Segmentt-1,其中,每一表段包括第二预设数量个页映射表项,假设第二预设数量为z,可以理解的是,所述页映射表项与上述实施例中的页映射表项相同,每一页映射表项用于记录与其对应的逻辑页与闪存物理页的映射关系。
可以理解的是,每个IO数据在写入闪存时,只需要更新小页映射表中的一个页映射表项(x bit),而其他的页映射表项其实是没有变化的,因此只需要保证将更新的页映射表项实时写入到闪存中,但是,由于物理块的最后一个闪存物理页的备用区域只存储一个表段,因此,在固态硬盘上电之后,由于无法获知其他表段的存储位置,可能会导致无法恢复出整个小页映射表,因此,本发明提出为每一小页映射表设置一张二级小页映射表。
在本发明实施例中,所述方法还包括:确定所述第一预设数量,具体包括:
获取所述小页映射表中存储的页映射表项的数量、每一页映射表项的存储空间的大小以及所述备用区域的存储空间的大小;
根据所述小页映射表中存储的页映射表项的数量、每一页映射表项的存储空间的大小以及所述备用区域的存储空间的大小,确定所述第一预设数量。
具体的,所述根据所述小页映射表中存储的页映射表项的数量、每一页映射表项的存储空间的大小以及所述备用区域的存储空间的大小,确定所述第一预设数量,包括:
假设所述第一预设数量为t,则根据如下公式确定所述第一预设数量t:
z*X+t*X≤P
t*z≥Y
其中,Y为每一小页映射表存储的页映射表项的数量,z为每一表段包括的页映射表项的数量,X为每一页映射表项的存储空间的大小,P为备用区域的存储空间的大小。可以理解的是,t为满足上述公式的最小值,且t、z均为正整数且t≤z。
例如:假设每一小页映射表中存储了256个页映射表项,即每一小页映射表存储的页映射表项的数量P=256,每个表项的存储空间大小为X,假设X=8bit,所以每张小页映射表的大小为256*8bit=256B,再假设所述备用区域的大小P为80B,即,80*8bit,则所述确定所述第一预设数量t的方式如下式:
z*X+t*X≤P
t*z≥256
其中,每一页映射表项的存储空间的大小X的值由物理块中物理页的数目决定,比如上述假设的数据,X=8bit,再代入P=80B,可以得出t=4,即,将所述小页映射表分割成4个表段(segment),每个segment包含64个表项,二级小页映射表的大小为t*Xbit=4*8bit=32bit=4Byte。
步骤S804:为每一小页映射表设置一张二级小页映射表,其中,所述二级小页映射表用于记录所述小页映射表中的每一表段所存储的物理位置信息;
具体的,所述二级小页映射表用于记录所述小页映射表中的每一表段所存储的物理位置信息,每个IO写入除了将对应的更新的表段写入备用区域,还需要将整个更新后的二级小页映射表写入到备用区域,以确定其他表段的物理位置信息。因此,在SSD上电后就可以读取物理块中最后一个写入物理页的备用区域得到完整的二级小页映射表,继而读出所有的表段,从而得到完整的小页映射表。
步骤S805:确定所述逻辑块地址对应的物理块的当前写入物理页,以确定所述IO数据对应的闪存物理页,并更新所述表段以及所述二级小页映射表;
具体的,所述更新所述表段,包括:
根据所述IO数据对应的闪存物理页,更新所述表段中所述闪存物理页对应的逻辑页对应的页映射表项。
步骤S806:将所述IO数据写入到对应的闪存物理页的数据区域,以及,将更新后的表段和更新后的二级小页映射表写入到对应的闪存物理页的备用区域。
步骤S807:直接将更新后的小页映射表写入到对应的闪存物理页的备用区域;
具体的,若所述小页映射表的存储空间小于或等于所述闪存物理页的备用区域,则直接将更新后的小页映射表写入到对应的闪存物理页的备用区域。
下面举例对所述映射表管理方法进行说明,请一并参阅图11a至图11e,其中,图11a是本发明实施例提供的另一种主机写场景的第一写入状态的示意图;图11b是本发明实施例提供的另一种主机写场景的第二写入状态的示意图;图11c是本发明实施例提供的另一种主机写场景的第三写入状态的示意图;图11d是本发明实施例提供的另一种主机写场景的第四写入状态的示意图;图11e是本发明实施例提供的另一种主机写场景的第五写入状态的示意图;
其中,假设主机写入逻辑页LBA0,LBA64,LBA128,LBA192以及LBA1到SSD,SSD分别将它们写入到物理块1的物理页0,1,2,3,4,以下分别对每次IO写入后,二级小页映射表,小页映射表,闪存物理块的状态进行说明:
(1)如图11a所示,LBA0写入到物理块1的物理页0中,所以小页映射表中LBA0的表项内容更新为物理页0,由于小页映射表的segment0被更新了,所以最后固件会将更新后的segment0跟随IO一起存储到物理页0的备用区域(图中’更新的segment’位置),由于segment0的存储位置发生变化(新的存储位置是物理页0),所以二级小页映射表中segment0的表项内容更新为物理页0,最后固件会将更新后的完整二级小页映射表跟随IO一起存储到物理页0的备用区域(图中’二级表’的位置).所以最后固件一次性将IO数据(LBA0)和更新后的小页映射表的segment0数据和更新后的完整二级小页映射表数据一起写入到闪存的物理块1的物理页0中。
(2)如图11b所示,LBA64写入到物理块1的物理页1中,所以小页映射表中LBA64的表项内容更新为物理页1,由于小页映射表的segment1被更新了,所以最后固件会将更新后的segment1跟随IO一起存储到物理页1的备用区域(图中’更新的segment’位置),由于segment1的存储位置发生变化(新的存储位置是物理页1),所以二级小页映射表中segment1的表项内容更新为物理页1,最后固件会将更新后的完整二级小页映射表跟随IO一起存储到物理页1的备用区域(图中’二级表’的位置).所以最后固件一次性将IO数据(LBA64)和更新后的小页映射表的segment1数据和更新后的完整二级小页映射表数据一起写入闪存的物理块1的物理页1中。
(3)如图11c所示,LBA128写入到物理块1的物理页2中,所以小页映射表中LBA128的表项内容更新为物理页2,由于小页映射表的segment2被更新了,所以最后固件会将更新后的segment2跟随IO一起存储到物理页2的备用区域(图中’更新的segment’位置),由于segment2的存储位置发生变化(新的存储位置是物理页2),所以二级小页映射表中segment2的表项内容更新为物理页2,最后固件会将更新后的完整二级小页映射表跟随IO一起存储到物理页2的备用区域(图中’二级表’的位置).所以最后固件一次性将IO数据(LBA128)和更新后的小页映射表的segment2数据和更新后的完整二级小页映射表数据一起写入到闪存的物理块1的物理页2中。
(4)如图11d所示,LBA192写入到物理块1的物理页3中,所以小页映射表中LBA192的表项内容更新为物理页3,由于小页映射表的segment3被更新了,所以最后固件会将更新后的segment3跟随IO一起存储到物理页3的备用区域(图中’更新的segment’位置),由于segment3的存储位置发生变化(新的存储位置是物理页3),所以二级小页映射表中segment3的表项内容更新为物理页3,最后固件会将更新后的完整二级小页映射表跟随IO一起存储到物理页3的备用区域(图中’二级表’的位置).所以最后固件一次性将IO数据(LBA192)和更新后的小页映射表的segment3数据和更新后的完整二级小页映射表数据一起写入到闪存的物理块1的物理页3中;
(5)如图11e所示,LBA1写入到物理块1的物理页4中,所以小页映射表中LBA1的表项内容更新为物理页4,由于小页映射表的segment0被更新了,所以最后固件会将更新后的segment0跟随IO一起存储到物理页4的备用区域(图中’更新的segment’位置),由于segment0的存储位置发生变化(新的存储位置是物理页4),所以二级小页映射表中segment0的表项内容更新为物理页4,最后固件会将更新后的完整二级小页映射表跟随IO一起存储到物理页4的备用区域(图中’二级表’的位置).所以最后固件一次性将IO数据(LBA1)和更新后的小页映射表的segment0数据和更新后的完整二级小页映射表数据一起写入到闪存的物理块1的物理页4中;
在本发明实施例中,SSD上电恢复小页映射表时,首先读取最后一个写入物理页(物理页4)的备用区域得到最新的二级小页映射表,得到小页映射表的最新的segment0~3分别存储在物理页4,1,2,3的备用区域中,则分别读出以构建成完整的小页映射表。
请再参阅图12,图12是本发明实施例提供的另一种主机写IO的流程示意图;
如图12所示,该主机写IO的流程,包括:
步骤S121:主机写逻辑页;
步骤S122:计算逻辑页对应的逻辑块地址;
步骤S123:查询块映射表,确定逻辑块地址对应的物理块;
步骤S124:确定物理块的当前写入物理页位置;
步骤S125:根据逻辑块地址对应的物理页地址,更新页映射表项;
具体的,计算LBA_x在逻辑块LK中的偏移位置ofst=LBA_x/m,并用PBA更新小页映射表中ofst处的表项内容(这表示LBA_x的数据写入到PBA处)
步骤S126:确定逻辑页所在的表段,更新二级小页映射表的页映射表项;
具体的,计算LBA_x处于的小页映射表的segment位置,其中,segment_idx=ofst/z,并用闪存物理页PBA更新二级小页映射表的第segment_idx个表项内容(表示小页映射表的第segment_idx个segment存储在PBA的备用区域内);
步骤S127:将IO数据写入到对应的闪存物理页的数据区域,以及,将更新后的表段和更新后的二级小页映射表写入到对应的闪存物理页的备用区域;
具体的,将LBA_x对应IO数据(写到PBA的数据区)和完整的二级小页映射表(写到备用区域的二级映射表区域)和小页映射表的第segment_idx个segment数据(写入到备用区域的更新segment区域)一起写入闪存物理页PBA中;
在本发明实施例中,通过判断所述小页映射表的存储空间是否大于所述闪存物理页的备用区域,若所述小页映射表的存储空间大于所述闪存物理页的备用区域,则将所述小页映射表划分为第一预设数量的表段,其中,每一表段包括第二预设数量的页映射表项;为每一小页映射表设置一张二级小页映射表,其中,所述二级小页映射表用于记录所述小页映射表中的每一表段的所存储的物理位置信息;确定所述逻辑块地址对应的物理块的当前写入物理页,以确定所述IO数据对应的闪存物理页,并更新所述表段以及所述二级小页映射表;将所述IO数据写入到对应的闪存物理页的数据区域,以及,将更新后的表段和更新后的二级小页映射表写入到对应的闪存物理页的备用区域,本发明实施例能够实现在任意大小的备用区域的条件下,实现有效提升固态硬盘的服务质量。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,使得上述一个或多个处理器可执行上述任意方法实施例中的映射表管理方法,例如,执行上述任意方法实施例中的映射表管理方法。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种映射表管理方法,应用于固态硬盘,所述固态硬盘包括存储介质,其特征在于,所述存储介质包括至少一个闪存物理页,每一所述闪存物理页包括数据区域和备用区域,所述方法包括:
预先为每一逻辑块设置一张小页映射表,其中,所述小页映射表用于记录对应逻辑块中的所有逻辑页与闪存物理页的映射关系;
接收主机发送的IO数据;
计算所述IO数据对应的逻辑块地址,并查询块映射表确定所述逻辑块地址对应的物理块;
确定所述逻辑块地址对应的物理块的当前写入物理页,以确定所述IO数据对应的闪存物理页,并更新所述小页映射表;
将所述IO数据写入到对应的闪存物理页的数据区域,以及,将更新后的小页映射表写入到对应的闪存物理页的备用区域。
2.根据权利要求1所述的方法,其特征在于,每一小页映射表包括多个页映射表项,每一页映射表项用于记录与其对应的逻辑页与闪存物理页的映射关系。
3.根据权利要求2所述的方法,其特征在于,所述更新所述小页映射表,包括:
根据所述IO数据对应的闪存物理页,更新闪存物理页对应的逻辑页对应的页映射表项。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述小页映射表的存储空间是否大于所述闪存物理页的备用区域;
若所述小页映射表的存储空间小于或等于所述闪存物理页的备用区域,则直接将更新后的小页映射表写入到对应的闪存物理页的备用区域。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述小页映射表的存储空间大于所述闪存物理页的备用区域,则将所述小页映射表划分为第一预设数量的表段,其中,每一表段包括第二预设数量的页映射表项;
为每一小页映射表设置一张二级小页映射表,其中,所述二级小页映射表用于记录所述小页映射表中的每一表段所存储的物理位置信息;
确定所述逻辑块地址对应的物理块的当前写入物理页,以确定所述IO数据对应的闪存物理页,并更新所述表段以及所述二级小页映射表;
将所述IO数据写入到对应的闪存物理页的数据区域,以及,将更新后的表段和更新后的二级小页映射表写入到对应的闪存物理页的备用区域。
6.根据权利要求5所述的方法,其特征在于,所述更新所述表段,包括:
根据所述IO数据对应的闪存物理页,更新所述表段中所述闪存物理页对应的逻辑页对应的页映射表项。
7.根据权利要求6所述的方法,其特征在于,所述更新所述二级小页映射表,包括:
根据所述表段的物理位置信息,更新所述二级小页映射表,其中,所述表段的物理位置信息为与该表段对应的闪存物理页的位置。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:确定所述第一预设数量,具体包括:
获取所述小页映射表中存储的页映射表项的数量、每一页映射表项的存储空间的大小以及所述备用区域的存储空间的大小;
根据所述小页映射表中存储的页映射表项的数量、每一页映射表项的存储空间的大小以及所述备用区域的存储空间的大小,确定所述第一预设数量。
9.根据权利要求8所述的方法,其特征在于,所述根据所述小页映射表中存储的页映射表项的数量、每一页映射表项的存储空间的大小以及所述备用区域的存储空间的大小,确定所述第一预设数量,包括:
假设所述第一预设数量为t,则根据如下公式确定所述第一预设数量t:
z*X+t*X≤P
t*z≥Y
其中,Y为每一小页映射表存储的页映射表项的数量,z为每一表段包括的页映射表项的数量,X为每一页映射表项的存储空间的大小,P为备用区域的存储空间的大小。
10.一种固态硬盘,其特征在于,包括:
至少一个闪存介质,用于存储闪存数据;
主控制器,通信连接至少一个所述闪存介质,
其中,所述主控制器包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的缓存器;其中,
所述缓存器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-9任一项所述的映射表管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011474713.3A CN112506438B (zh) | 2020-12-14 | 2020-12-14 | 一种映射表管理方法及固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011474713.3A CN112506438B (zh) | 2020-12-14 | 2020-12-14 | 一种映射表管理方法及固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112506438A true CN112506438A (zh) | 2021-03-16 |
CN112506438B CN112506438B (zh) | 2024-03-26 |
Family
ID=74973381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011474713.3A Active CN112506438B (zh) | 2020-12-14 | 2020-12-14 | 一种映射表管理方法及固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506438B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190472A (zh) * | 2021-05-27 | 2021-07-30 | 深圳忆联信息系统有限公司 | 固态存储设备nomap信息快速重建方法、装置、计算机设备及存储介质 |
CN113590505A (zh) * | 2021-06-30 | 2021-11-02 | 深圳大普微电子科技有限公司 | 地址映射方法、固态硬盘控制器及固态硬盘 |
CN113835639A (zh) * | 2021-09-26 | 2021-12-24 | 深圳大普微电子科技有限公司 | 一种i/o请求处理方法、装置、设备及可读存储介质 |
WO2022237916A1 (zh) * | 2021-05-10 | 2022-11-17 | 苏州库瀚信息科技有限公司 | 基于固态硬盘的快照实现方法、存储系统 |
CN117476086A (zh) * | 2023-12-26 | 2024-01-30 | 成都佰维存储科技有限公司 | 存储器性能测试方法、装置、可读存储介质及电子设备 |
WO2024108939A1 (zh) * | 2022-11-24 | 2024-05-30 | 苏州元脑智能科技有限公司 | 一种多级映射框架、数据操作请求处理方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
CN101625661A (zh) * | 2008-07-07 | 2010-01-13 | 群联电子股份有限公司 | 用于闪存的数据管理方法、储存系统与控制器 |
CN102662849A (zh) * | 2012-03-07 | 2012-09-12 | 忆正科技(武汉)有限公司 | 多通道闪存的区块管理方法 |
CN102831072A (zh) * | 2012-08-10 | 2012-12-19 | 深圳市江波龙电子有限公司 | 闪存设备及其管理方法、数据读写方法及读写装置 |
CN102841851A (zh) * | 2012-07-19 | 2012-12-26 | 深圳市江波龙电子有限公司 | 闪存管理方法和闪存设备 |
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN103176916A (zh) * | 2013-03-07 | 2013-06-26 | 中国科学院苏州纳米技术与纳米仿生研究所 | 闪存及闪存的地址转换方法 |
CN103744795A (zh) * | 2013-12-19 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘快速启动的方法及其固态硬盘 |
CN106326134A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | Ftl地址映射的方法及装置 |
-
2020
- 2020-12-14 CN CN202011474713.3A patent/CN112506438B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
CN101625661A (zh) * | 2008-07-07 | 2010-01-13 | 群联电子股份有限公司 | 用于闪存的数据管理方法、储存系统与控制器 |
CN102662849A (zh) * | 2012-03-07 | 2012-09-12 | 忆正科技(武汉)有限公司 | 多通道闪存的区块管理方法 |
CN102841851A (zh) * | 2012-07-19 | 2012-12-26 | 深圳市江波龙电子有限公司 | 闪存管理方法和闪存设备 |
CN102831072A (zh) * | 2012-08-10 | 2012-12-19 | 深圳市江波龙电子有限公司 | 闪存设备及其管理方法、数据读写方法及读写装置 |
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN103176916A (zh) * | 2013-03-07 | 2013-06-26 | 中国科学院苏州纳米技术与纳米仿生研究所 | 闪存及闪存的地址转换方法 |
CN103744795A (zh) * | 2013-12-19 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘快速启动的方法及其固态硬盘 |
CN106326134A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | Ftl地址映射的方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022237916A1 (zh) * | 2021-05-10 | 2022-11-17 | 苏州库瀚信息科技有限公司 | 基于固态硬盘的快照实现方法、存储系统 |
CN113190472A (zh) * | 2021-05-27 | 2021-07-30 | 深圳忆联信息系统有限公司 | 固态存储设备nomap信息快速重建方法、装置、计算机设备及存储介质 |
CN113190472B (zh) * | 2021-05-27 | 2023-10-13 | 深圳忆联信息系统有限公司 | 固态存储设备nomap信息快速重建方法、装置、计算机设备及存储介质 |
CN113590505A (zh) * | 2021-06-30 | 2021-11-02 | 深圳大普微电子科技有限公司 | 地址映射方法、固态硬盘控制器及固态硬盘 |
CN113835639A (zh) * | 2021-09-26 | 2021-12-24 | 深圳大普微电子科技有限公司 | 一种i/o请求处理方法、装置、设备及可读存储介质 |
CN113835639B (zh) * | 2021-09-26 | 2024-03-19 | 深圳大普微电子科技有限公司 | 一种i/o请求处理方法、装置、设备及可读存储介质 |
WO2024108939A1 (zh) * | 2022-11-24 | 2024-05-30 | 苏州元脑智能科技有限公司 | 一种多级映射框架、数据操作请求处理方法及系统 |
CN117476086A (zh) * | 2023-12-26 | 2024-01-30 | 成都佰维存储科技有限公司 | 存储器性能测试方法、装置、可读存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112506438B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112506438B (zh) | 一种映射表管理方法及固态硬盘 | |
US20230152969A1 (en) | Memory system and method of controlling memory system | |
JP7366795B2 (ja) | メモリシステムおよび制御方法 | |
US9384123B2 (en) | Memory system | |
US11372753B2 (en) | Memory system and method | |
JP5728672B2 (ja) | ハイブリッドメモリ管理 | |
CN105808156B (zh) | 将数据写入固态硬盘的方法及固态硬盘 | |
CN113093993B (zh) | 一种闪存空间动态分配方法及固态硬盘 | |
CN108369818A (zh) | 一种闪存设备的刷新方法和装置 | |
KR20190101095A (ko) | 키-밸류 스토리지 장치 및 이의 동작 방법 | |
US11734189B2 (en) | Caching of logical-to-physical mapping information in a memory sub-system | |
CN110955384A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN113655955B (zh) | 缓存管理方法、固态硬盘控制器及固态硬盘 | |
US11755495B2 (en) | Storing a logical-to-physical mapping in NAND memory | |
US20200293221A1 (en) | Storage device and computing device including storage device | |
CN113467713A (zh) | 数据分离方法及固态硬盘 | |
CN113590505A (zh) | 地址映射方法、固态硬盘控制器及固态硬盘 | |
CN115203085A (zh) | 用于存储装置的超小区域支持 | |
JP2022146519A (ja) | メモリシステム、情報処理システム、およびホスト装置 | |
JP2023039459A (ja) | メモリシステムおよび方法 | |
KR20220052353A (ko) | 조정된 파라미터를 사용한 메모리 컴포넌트의 가비지 수집 | |
US20230409470A1 (en) | Scratchpad cache for gaming and iot hosts | |
CN112947848B (zh) | 分层异构储存的数据中心 | |
US20240061589A1 (en) | Code rate as function of logical saturation | |
US20240143187A1 (en) | Storage device, controller and method for performing global wear-leveling |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |