CN112100091B - 二级映射表数据映射方法、装置、存储介质及电子设备 - Google Patents
二级映射表数据映射方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN112100091B CN112100091B CN202010979565.4A CN202010979565A CN112100091B CN 112100091 B CN112100091 B CN 112100091B CN 202010979565 A CN202010979565 A CN 202010979565A CN 112100091 B CN112100091 B CN 112100091B
- Authority
- CN
- China
- Prior art keywords
- mapping table
- physical page
- secondary mapping
- stored
- table data
- 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.)
- Active
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 218
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000013506 data mapping Methods 0.000 title claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 15
- 238000007726 management method Methods 0.000 abstract description 7
- 238000013403 standard screening design Methods 0.000 description 26
- 230000000875 corresponding effect Effects 0.000 description 21
- 229920002125 Sokalan® Polymers 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000003068 static effect Effects 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本发明公开了一种二级映射表数据映射方法、装置、存储介质及电子设备,该二级映射表数据映射方法包括:在nand上预先分配一个二级映射表存储区;接收待存储二级映射表数据,将待存储二级映射表数据按照物理页的结构存储在二级映射表存储区;将存储待存储二级映射表数据的所有物理页面地址保存在内存中;本发明通过物理页的结构来对二级映射表数据表数据进行存储,一方面,通过物理页面地址可以访问对应的物理页,因此在内存中只需要存储有物理页面地址即可,从而支持大容量SSD的空间访问。同时因为没有采用三级映射表来实现大容量SSD的空间访问,从而避免了引入三级映射表的开销,不仅简化了firmware(固件)的管理还可以提升***的性能。
Description
技术领域
本发明涉及存储芯片数据存储技术领域,特别涉及一种二级映射表数据映射方法、装置、存储介质及电子设备。
背景技术
目前在固件领域,针对大容量SSD(Solid State Disk或Solid State Drive,指固态硬盘或固态驱动器)的映射机制一般采用逐级化简的方式;例如针对1TB的SSD,以4KB大小为单位进行映射索引,每条映射项需要4Bytes空间,1TB的SSD需要1GB大小的一级映射空间;同样的索引方式,一级映射表也按照4KB的映射索引,每条映射项需要4Bytes空间,1GB的一级映射表需要1MB大小的二级映射空间;但是对于DRAM-less(非易失性内存)类型的主控芯片来说,1MB的SRAM(Static Random-Access Memory,静态随机存取存储器)同样是巨大的空间开销;因此常见的做法是将二级映射表,通过三级映射表来索引,三级映射表的大小就只需要1KB的大小;
这样的好处是三级映射表足够小,可以常驻在SRAM,但引入的问题是:
1、增加了读写过程中查询元数据的开销;如果需要访问二级映射表,需要从三级映射表中获取地址,然后从nand(闪存)介质中读取;
2、针对二级映射表的管理也需要采用一级映射表的管理机制,包括内存页面配额的设置、nand空间的分配和回收;
3、二级映射表的访问会触发三级映射表的读写,增加了***的读写负担。
发明内容
本发明所要解决的技术问题是:提供一种二级映射表数据映射方法、装置、存储介质及电子设备,在支持大容量SSD的空间访问的同时,避免了引入三级映射表所造成的问题。
为了解决上述技术问题,本发明采用的技术方案为:
一种二级映射表数据映射方法,包括步骤:
在nand上预先分配一个二级映射表存储区;
接收待存储二级映射表数据,将所述待存储二级映射表数据按照物理页的结构存储在所述二级映射表存储区;
将存储所述待存储二级映射表数据的所有物理页面地址保存在内存中。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种二级映射表数据映射装置,包括:
分配模块,用于在nand上预先分配一个二级映射表存储区;
存储模块,用于接收待存储二级映射表数据,将所述待存储二级映射表数据按照物理页的结构存储在所述二级映射表存储区;
保存模块,将存储所述待存储二级映射表数据的所有物理页面地址保存在内存中。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序存储有上述所示的二级映射表数据映射方法。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所示的二级映射表数据映射方法。
本发明的有益效果在于:一种二级映射表数据映射方法、装置、存储介质及电子设备,通过物理页的结构来对二级映射表数据表数据进行存储,一方面,通过物理页面地址可以访问对应的物理页,因此在内存中只需要存储有物理页面地址即可,从而支持大容量SSD的空间访问。同时因为没有采用三级映射表来实现大容量SSD的空间访问,从而避免了引入三级映射表的开销,不仅简化了firmware(固件)的管理还可以提升***的性能。
附图说明
图1为本发明实施例的二级映射表数据映射方法的流程示意图;
图2为本发明实施例涉及的新数据块的选取流程示意图;
图3为本发明实施例涉及的block stripe的说明示意图;
图4为本发明实施例的二级映射表数据映射方法的数据存储示意图;
图5为现有技术中的三级映射表的数据存储示意图;
图6为本发明实施例的二级映射表数据映射装置的模块连接示意图;
图7为本发明实施例的电子设备的结构示意图。
标号说明:
1、二级映射表数据映射装置;2、电子设备;11、分配模块;12、存储模块;21、处理器;22、存储器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1至图4,本发明实施例提供了一种二级映射表数据映射方法,包括步骤:
在nand上预先分配一个二级映射表存储区;
接收待存储二级映射表数据,将所述待存储二级映射表数据按照物理页的结构存储在所述二级映射表存储区;
将存储所述待存储二级映射表数据的所有物理页面地址保存在内存中。
从上述描述可知,通过物理页的结构来对二级映射表数据表数据进行存储,一方面,通过物理页面地址可以访问对应的物理页,因此在内存中只需要存储有物理页面地址即可,从而支持大容量SSD的空间访问。同时因为没有采用三级映射表来实现大容量SSD的空间访问,从而避免了引入三级映射表的开销,不仅简化了firmware(固件)的管理还可以提升***的性能。
进一步地,所述二级映射表存储区至少能够存储N个物理页,所述N根据SSD的容量所需要的二级映射空间确定。
从上述描述可知,SSD的容量和映射索引的空间大小均为预先固定的,由此可以计算出写满整个SSD时所需要的二级映射数据所占用的二级映射空间,而对于预设大小的物理页来说,可以根据写满整个SSD时二级映射空间来得到所需要的物理页的个数,从而保证所分配的二级映射表存储区足够存储写满整个SSD时所需要的二级映射数据。
进一步地,每一个所述物理页包括控制头信息和已存储二级映射表数据,所述控制头信息中包括头部信息和N个所述物理页一一对应的物理页面地址,所述头部信息包括魔术字和CRC值;
所述二级映射表数据映射方法还包括以下步骤:
当接收到二级映射表数据读取请求时,根据所述二级映射表数据读取请求计算出所需要读取的目标二级映射表数据所存储的目标物理页以及在所述目标物理页中的目标物理地址;
判断所述目标物理页中存储的魔术字和预设魔术字是否一致,若一致,则计算所述目标物理页中除所述头部信息以外的其他数据的CRC值,判断计算出来的CRC值与所述目标物理页中存储的CRC值是否一致,若一致,则从所述目标物理地址读取目标二级映射表数据。
从上述描述可知,通过魔术字(MagicWord)和CRC(Cyclic Redundancy Check,循环冗余校验)值来防止物理页的存储数据被篡改以及保证物理页的存储数据的完整性。
进一步地,得到所述N的步骤包括如下:
通过第一不等式计算所分配的物理页的个数N,所述第一不等式为:
(a-(b+c*N))*N≥M
所述a为单个所述物理页的存储空间,所述b为所述头部信息的存储空间,所述c为单个所述物理页面地址的存储空间,所述M为SSD的容量所需要的二级映射空间。
从上述描述可知,通过上述公式以快速得到所需要的物理页的个数,从而分配足够的空间进行存储。
进一步地,所述在nand上预先分配一个二级映射表存储区具体包括以下步骤:
分配一条处于空闲状态的block stripe来作为存储所述二级映射表数据的二级映射表存储区;
所述接收待存储二级映射表数据,将所述待存储二级映射表数据按照物理页的结构存储在所述二级映射表存储区具体包括以下步骤:
按照从左到右的预设顺序,在所述二级映射表存储区上每次分配一个物理页;
接收待存储二级映射表数据,将所述待存储二级映射表数据写入到所分配的物理页上,直到当前分配的物理页写满数据,继续分配一个新的物理页来存储新的二级映射表数据。
进一步地,当每一个物理页写满数据时,还包括以下步骤:
根据当前分配的物理页所对应的物理页面地址对内存进行更新。
进一步地,还包括以下步骤:
若所分配的block stripe的空间已存满,则将内存中所存储的N个物理页面地址所对应的物理页上的数据整体搬移至新分配的block strip上。
从上述描述可知,针对二级映射表的nand空间进行顺序分配,在后续垃圾回收时,只需要将N个物理页的数据整体搬移至新分配的block stripe中,老的block stripe则进行整体回收,避免出现过多垃圾回收的操作。
请参照图6,本发明另一实施例提供了一种二级映射表数据映射装置1,包括:
一种二级映射表数据映射装置1,包括:
分配模块11,用于在nand上预先分配一个二级映射表存储区;
存储模块12,用于接收待存储二级映射表数据,将所述待存储二级映射表数据按照物理页的结构存储在所述二级映射表存储区;
保存模块13,将存储所述待存储二级映射表数据的所有物理页面地址保存在内存中。
其中,关于分配模块11、存储模块12和保存模块13所实现的具体过程和对应的效果,可以参照上述实施例的二级映射表数据映射方法中的相关描述。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序存储有上述实施例的二级映射表数据映射方法。
其中,关于本实施例中的计算机程序中包含的二级映射表数据映射方法的具体实现过程和对应效果,可以参照上述实施例的二级映射表数据映射方法中的相关描述。
请参照图7,本发明另一实施例提供了一种电子设备2,包括存储器22、处理器21及存储在存储器22上并可在处理器21上运行的计算机程序,所述处理器21执行所述计算机程序时实现上述实施例的二级映射表数据映射方法。
其中,关于本实施例中处理器21所实现的二级映射表数据映射方法的具体实现过程和对应效果,可以参照上述的实施例的二级映射表数据映射方法中的相关描述。
本申请的二级映射表数据映射方法和对应的装置、存储介质及电子设备2主要应用于对任何SSD需要二级映射表数据映射的应用场景,尤其是大容量的SSD,比如500GB、1TB等等的SSD,以下结合具体的应用场景进行说明:
根据以上所述,并结合图1至图4,本发明的实施例一为:
一种二级映射表数据映射方法,包括步骤:
S1、在nand上预先分配一个二级映射表存储区;
其中,二级映射表存储区至少能够存储N个物理页,N根据SSD的容量所需要的二级映射空间确定。
在本实施例中,SSD的容量为1TB,映射索引的空间大小为4KB,则需要1MB的二级映射空间,单个物理页的存储空间为16KB,每个物理页面地址项为4Bytes,则需要多个物理页进行存储。
如图2上述为单个物理页的存储结构,其中,每一个物理页包括控制头信息和已存储二级映射表数据,控制头信息中包括头部信息和N个物理页一一对应的物理页面地址,头部信息包括魔术字和CRC值。图2中的HEAD即为头部信息,Page_0为物理页的索引,Page_0Address至Page_N Address即为N个物理页一一对应的N个物理页面地址。
由此,每一个16K的物理页并不能全部用来存储二级映射表数据。因此,在计算所需要的物理页的个数N时通过第一不等式来计算,第一不等式为:
(a-(b+c*N))*N≥M
其中,a为单个物理页的存储空间,b为头部信息的存储空间,c为单个物理页面地址的存储空间,M为SSD的容量所需要的二级映射空间。
对应于本实施例,即为(16*1024-(8+4*N))*N>=1024*1024(1MB),求得N为66,即需要66个物理页,这样,由于每个二级映射表项的大小为4bytes,则每个物理页除去控制头信息的大小之外的部分还可以存储4028个二级映射表项。
对于本实施例来说,更具体地,该预设魔术字保存在固件(Firmware)中,当需要进行比较时,从该固件中读取该预设魔术字。
在本发明实施例中,每个物理页中的头部信息中保存的魔术字根据实际需要进行设置,可将所有的物理页的头部信息中的魔术字设置为统一的字段或者字符,如0xabcdefbc,则此时该固件中保存的预设魔术字即为0xabcdefbc,若物理页中的头部信息中的魔术字设置成不同的字段或者字符,则该固件中保存有对应关系表,该对应关系表中保存有每一物理页的魔术字对应的预设魔术字。当物理页中的头部信息的魔术字不一样时,在进行魔术字比较时,需要先获取该需要比较的物理页的标识信息,该标识信息包括编号或者关键字等,根据该标识信息读取该固件中保存的对应关系表的预设魔术字,根据读取的预设魔术字与该物理页中的魔术字进行比较。
本实施例中,先比较魔术字,该魔术字的比较结果表示该物理页中保存的数据是否为二级映射表数据,再计算CRC值则是判断该二级映射表数据是否有篡改,如果有数据变化则计算的CRC和保存的CRC会不一致。
S2、接收待存储二级映射表数据,将待存储二级映射表数据按照物理页的结构存储在二级映射表存储区。
在本实施例中,将二级映射表数据和控制头信息整体打包写到nand(闪存)上,减少了需要额外单独写三级映射表的开销,不仅简化了流程还可以提升性能。
例如***下发了LBA(logic block address,逻辑区块地址)56842365的写请求,该写请求的数据写到了PAA(logic area address,物理地址)为0x345e23d4;按照4k的映射管理,首先计算LBA->LAA:
LAA(7105295)=56842365/8(8sector=4kB)
通过LAA计算二级映射表的索引:
二级映射表索引(6938)=7105295/1024(4KB/PAA大小4Bytes=1024);
如果使用三级映射表的机制,则需要计算二级映射表索引在三级映射表中的位置:
三级映射表索引(6)=6398/1024(4KB/PAA大小=1024);
因此使用三级映射表的机制,一次写需要更新一级映射表、二级映射表和三级映射表;而使用本实施例,通过计算好的二级映射表索引(6938),可以直接算出二级映射数据落在66个物理页中索引为1(6938/4028)的物理页,直接更新该物理页和控制器头信息中索引为1的PAA,保存下即可,减少一次更新三级映射表的操作。
S3、将存储所述待存储二级映射表数据的所有物理页面地址保存在内存中;
这样,对于1TB的SSD来说,内存只需要维护66个物理页面地址即264Bytes即可,而在上电扫描过程中,只要找到最新的Page数据,即可以找到66个物理页面地址,恢复所有的二级映射表数据。
其中,每次分配新的物理页,并且写完成后,都需要将更新的物理页面地址保存在内存中,以使得内存里保存的均为有效的物理页面地址。
S4、当接收到二级映射表数据读取请求时,根据二级映射表数据读取请求计算出所需要读取的目标二级映射表数据所存储的目标物理页以及在目标物理页中的目标物理地址;
判断目标物理页中存储的魔术字和预设魔术字是否一致,若一致,则计算目标物理页中除头部信息以外的其他数据的CRC值,判断计算出来的CRC值与目标物理页中存储的CRC值是否一致,若一致,则从目标物理地址读取目标二级映射表数据。
根据以上所述,并结合图1至图4,本发明的实施例二为:
一种二级映射表数据映射方法,在上述实施例一的基础上,步骤S1具体包括以下步骤:
分配一条处于空闲状态的block stripe来作为存储二级映射表数据的二级映射表存储区;
如图4所示,Channel即为数据通道,block即为数据块,为SSD的最小擦除单元,plane即为数据面,为SSD的最小执行单元,LUN即为逻辑单元号,Target即为目标,Blockstripe即每个plane上的相同位置的block组成的条带块。
其中,步骤S2具体包括以下步骤:
S21、按照从左到右的预设顺序,在二级映射表存储区上每次分配一个物理页;
如图4所示,我们假设分的是block N,按照上述实施例一中对1TB的SSD的分析,每一个物理页中存储有4028个二级映射表项,由此,每产生一个二级映射表项,则先分配一个物理页。
S22、接收待存储二级映射表数据,将待存储二级映射表数据写入到所分配的物理页上,直到当前分配的物理页写满数据,根据当前分配的物理页所对应的物理页面地址对内存进行更新,继续分配一个新的物理页来存储新的二级映射表数据;
在本实施例中,将二级映射表项填入到所分配的物理页中,如分配到图4中的Page0,待Page 0这个物理页分配完成后继续分配Page 1的空间,如此循环直到整条blockstripe都分配完成。
S23、若所分配的block stripe的空间已存满,则将内存中所存储的N个物理页面地址所对应的物理页上的数据整体搬移至新分配的block strip上。
一旦整条block stripe的空间分配完后,而这条block stripe只用来存储二级映射表数据,因此,整条block stripe最多只有66个物理页里的数据为有效数据,此时,只需要将66个物理页的数据整体搬移至新分配的block stripe中,老的block stripe则进行整体回收。
而现有技术中如5所示使用三级映射表的方式,一旦block stripe分配完成则需要将256(三级映射表大小为1KB,每个PAA大小为4Bytes,所以三级映射表为256个PAA)个PAA的数据搬迁至新的block stripe上,因此本实施例能避免出现过多垃圾回收的操作。
请参照图4,本发明的实施例三为与上述实施例一或二中的二级映射表数据映射方法相对应的一种二级映射表数据映射装置1,包括:
分配模块11,用于在nand上预先分配一个二级映射表存储区;
存储模块12,用于接收待存储二级映射表数据,将所述待存储二级映射表数据按照物理页的结构存储在所述二级映射表存储区;
保存模块13,将存储所述待存储二级映射表数据的所有物理页面地址保存在内存中。
本发明的实施例四为与上述实施例一或二中的二级映射表数据映射方法对应的一种计算机可读存储介质,其上存储有计算机程序,计算机程序存储有如上实施例一或二中的二级映射表数据映射方法。
请参照图5,本发明的实施例五为与上述实施例一或二中的二级映射表数据映射方法相对应的一种电子设备2,包括存储器22、处理器21及存储在存储器22上并可在处理器21上运行的计算机程序,其中,处理器21执行计算机程序时实现上述实施例一或二中的二级映射表数据映射方法。
在本申请所提供的五个实施例中,应该理解到,所揭露的方法、装置、存储介质以及电子设备2,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
综上所述,本发明提供的一种二级映射表数据映射方法、装置、存储介质及电子设备,通过物理页的结构来对二级映射表数据表数据进行存储,一方面,通过物理页面地址可以访问对应的物理页,因此在内存中只需要存储有物理页面地址即可,从而支持大容量SSD的空间访问。同时因为没有采用三级映射表来实现大容量SSD的空间访问,从而避免了引入三级映射表的开销,不仅简化了firmware(固件)的管理还可以提升***的性能。针对二级映射表的nand空间进行顺序分配,在后续垃圾回收时,只需要将N个物理页的数据整体搬移至新分配的block stripe中,老的block stripe则进行整体回收,避免出现过多垃圾回收的操作。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种二级映射表数据映射方法,其特征在于,包括步骤:
在nand上预先分配一个二级映射表存储区;
接收待存储二级映射表数据,将所述待存储二级映射表数据按照物理页的结构存储在所述二级映射表存储区;
将存储所述待存储二级映射表数据的所有物理页面地址保存在内存中;
进一步地,所述二级映射表存储区至少能够存储N个物理页,所述N根据SSD的容量所需要的二级映射空间确定;
进一步地,每一个所述物理页包括控制头信息和已存储二级映射表数据,所述控制头信息中包括头部信息和N个所述物理页一一对应的物理页面地址,所述头部信息包括魔术字和CRC值;
所述二级映射表数据映射方法还包括以下步骤:
当接收到二级映射表数据读取请求时,根据所述二级映射表数据读取请求计算出所需要读取的目标二级映射表数据所存储的目标物理页以及在所述目标物理页中的目标物理地址;
判断所述目标物理页中存储的魔术字和预设魔术字是否一致,若一致,则计算所述目标物理页中除所述头部信息以外的其他数据的CRC值,判断计算出来的CRC值与所述目标物理页中存储的CRC值是否一致,若一致,则从所述目标物理地址读取目标二级映射表数据;
进一步地,得到所述N的步骤包括如下:
通过第一不等式计算所分配的物理页的个数N,所述第一不等式为:
(a-(b+c*N))*N≥M
所述a为单个所述物理页的存储空间,所述b为所述头部信息的存储空间,所述c为单个所述物理页面地址的存储空间,所述M为SSD的容量所需要的二级映射空间。
2.根据权利要求1所述的二级映射表数据映射方法,其特征在于,所述在nand上预先分配一个二级映射表存储区具体包括以下步骤:
分配一条处于空闲状态的block stripe来作为存储所述二级映射表数据的二级映射表存储区;
所述接收待存储二级映射表数据,将所述待存储二级映射表数据按照物理页的结构存储在所述二级映射表存储区具体包括以下步骤:
按照从左到右的预设顺序,在所述二级映射表存储区上每次分配一个物理页;
接收待存储二级映射表数据,将所述待存储二级映射表数据写入到所分配的物理页上,直到当前分配的物理页写满数据,继续分配一个新的物理页来存储新的二级映射表数据。
3.根据权利要求2所述的二级映射表数据映射方法,其特征在于,当每一个物理页写满数据时,还包括以下步骤:
根据当前分配的物理页所对应的物理页面地址对内存进行更新。
4.根据权利要求2所述的二级映射表数据映射方法,其特征在于,还包括以下步骤:
若所分配的block stripe的空间已存满,则将内存中所存储的N个物理页面地址所对应的物理页上的数据整体搬移至新分配的block strip上。
5.一种二级映射表数据映射装置,其特征在于,包括:
分配模块,用于在nand上预先分配一个二级映射表存储区,所述二级映射表存储区至少能够存储N个物理页,所述N根据SSD的容量所需要的二级映射空间确定,每一个所述物理页包括控制头信息和已存储二级映射表数据,所述控制头信息中包括头部信息和N个所述物理页一一对应的物理页面地址,所述头部信息包括魔术字和CRC值;
得到所述N的步骤包括如下:
通过第一不等式计算所分配的物理页的个数N,所述第一不等式为:
(a-(b+c*N))*N≥M
所述a为单个所述物理页的存储空间,所述b为所述头部信息的存储空间,所述c为单个所述物理页面地址的存储空间,所述M为SSD的容量所需要的二级映射空间;
存储模块,用于接收待存储二级映射表数据,将所述待存储二级映射表数据按照物理页的结构存储在所述二级映射表存储区;
保存模块,将存储所述待存储二级映射表数据的所有物理页面地址保存在内存中;
一种二级映射表数据映射装置还用于执行如下步骤:
当接收到二级映射表数据读取请求时,根据所述二级映射表数据读取请求计算出所需要读取的目标二级映射表数据所存储的目标物理页以及在所述目标物理页中的目标物理地址;
判断所述目标物理页中存储的魔术字和预设魔术字是否一致,若一致,则计算所述目标物理页中除所述头部信息以外的其他数据的CRC值,判断计算出来的CRC值与所述目标物理页中存储的CRC值是否一致,若一致,则从所述目标物理地址读取目标二级映射表数据。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序存储有如权利要求1-4任意一项所述的二级映射表数据映射方法。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-4任意一项所述的二级映射表数据映射方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010979565.4A CN112100091B (zh) | 2020-09-17 | 2020-09-17 | 二级映射表数据映射方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010979565.4A CN112100091B (zh) | 2020-09-17 | 2020-09-17 | 二级映射表数据映射方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112100091A CN112100091A (zh) | 2020-12-18 |
CN112100091B true CN112100091B (zh) | 2024-06-11 |
Family
ID=73759804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010979565.4A Active CN112100091B (zh) | 2020-09-17 | 2020-09-17 | 二级映射表数据映射方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100091B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176916A (zh) * | 2013-03-07 | 2013-06-26 | 中国科学院苏州纳米技术与纳米仿生研究所 | 闪存及闪存的地址转换方法 |
CN103279366A (zh) * | 2013-04-24 | 2013-09-04 | 中国科学院苏州纳米技术与纳米仿生研究所 | 固态硬盘及掉电后基于固态硬盘快速开机的方法 |
WO2015114754A1 (ja) * | 2014-01-29 | 2015-08-06 | 株式会社日立製作所 | ストレージ装置 |
CN105224478A (zh) * | 2015-09-25 | 2016-01-06 | 联想(北京)有限公司 | 一种映射表的形成、更新和恢复方法及电子设备 |
CN105243025A (zh) * | 2015-09-25 | 2016-01-13 | 联想(北京)有限公司 | 一种映射表的形成及加载方法、电子设备 |
CN108415851A (zh) * | 2018-01-18 | 2018-08-17 | 珠海全志科技股份有限公司 | 一种提升闪存设备启动速度的方法与装置 |
CN111459919A (zh) * | 2020-04-26 | 2020-07-28 | 深圳佰维存储科技股份有限公司 | 数据查询方法、加载组件、搜索组件和存储介质 |
-
2020
- 2020-09-17 CN CN202010979565.4A patent/CN112100091B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176916A (zh) * | 2013-03-07 | 2013-06-26 | 中国科学院苏州纳米技术与纳米仿生研究所 | 闪存及闪存的地址转换方法 |
CN103279366A (zh) * | 2013-04-24 | 2013-09-04 | 中国科学院苏州纳米技术与纳米仿生研究所 | 固态硬盘及掉电后基于固态硬盘快速开机的方法 |
WO2015114754A1 (ja) * | 2014-01-29 | 2015-08-06 | 株式会社日立製作所 | ストレージ装置 |
CN105224478A (zh) * | 2015-09-25 | 2016-01-06 | 联想(北京)有限公司 | 一种映射表的形成、更新和恢复方法及电子设备 |
CN105243025A (zh) * | 2015-09-25 | 2016-01-13 | 联想(北京)有限公司 | 一种映射表的形成及加载方法、电子设备 |
CN108415851A (zh) * | 2018-01-18 | 2018-08-17 | 珠海全志科技股份有限公司 | 一种提升闪存设备启动速度的方法与装置 |
CN111459919A (zh) * | 2020-04-26 | 2020-07-28 | 深圳佰维存储科技股份有限公司 | 数据查询方法、加载组件、搜索组件和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112100091A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10067684B2 (en) | File access method and apparatus, and storage device | |
US10303596B2 (en) | Read-write control method for memory, and corresponding memory and server | |
US9229876B2 (en) | Method and system for dynamic compression of address tables in a memory | |
CN111125447A (zh) | 一种元数据访问方法、装置、设备及可读存储介质 | |
US7761648B2 (en) | Caching method for NAND flash translation layer | |
JP2019020788A (ja) | メモリシステムおよび制御方法 | |
CN111522507B (zh) | 一种低延迟的文件***地址空间管理方法、***及介质 | |
CN113419675B (zh) | 用于存储器的写操作方法及读操作方法 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN108491290B (zh) | 一种数据写入方法及装置 | |
CN110569000A (zh) | 基于固态硬盘阵列的主机端raid管理方法和装置 | |
CN112052193B (zh) | 一种垃圾回收方法、装置、可读存储介质及电子设备 | |
KR101936364B1 (ko) | 플래시 메모리를 이용한 메모리 관리 시스템 및 메모리 관리 방법 | |
CN112100091B (zh) | 二级映射表数据映射方法、装置、存储介质及电子设备 | |
CN110968527B (zh) | Ftl提供的缓存 | |
CN115904255A (zh) | 一种数据请求方法、装置、设备及存储介质 | |
KR101377923B1 (ko) | 지연 갱신을 수행하는 b-트리를 사용하여 플래시 메모리 내에 데이터를 저장하는 장치 및 방법 | |
CN111796757B (zh) | 一种固态硬盘缓存区管理方法和装置 | |
CN110968520B (zh) | 基于统一缓存架构的多流存储设备 | |
CN112084121A (zh) | 硬盘预读方法、装置、计算机可读存储介质及电子设备 | |
CN117891415B (zh) | 一种存储装置的p2l数据管理方法及装置 | |
CN107832234B (zh) | 一种用于nand flash的日志块快速命中方法 | |
CN113703671B (zh) | 一种数据块擦除方法及相关装置 | |
US20240070081A1 (en) | Method and system of using hmb as a cache of physical address mapping table | |
CN114063919B (zh) | 用于ssd的物理块分配顺序获取方法及数据恢复方法 |
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 | ||
CB02 | Change of applicant information |
Address after: 518000 floors 1-3 and 4 of buildings 4 and 8, zone 2, Zhongguan honghualing Industrial South Zone, No. 1213 Liuxian Avenue, Pingshan community, Taoyuan Street, Nanshan District, Shenzhen, Guangdong Applicant after: BIWIN STORAGE TECHNOLOGY Co.,Ltd. Address before: 518000 1st, 2nd, 4th and 5th floors of No.4 factory building, tongfuyu industrial town, Taoyuan Street, Nanshan District, Shenzhen City, Guangdong Province Applicant before: BIWIN STORAGE TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |