CN112799972A - Ssd映射表的实现方法、装置、可读存储介质及电子设备 - Google Patents
Ssd映射表的实现方法、装置、可读存储介质及电子设备 Download PDFInfo
- Publication number
- CN112799972A CN112799972A CN202110109273.XA CN202110109273A CN112799972A CN 112799972 A CN112799972 A CN 112799972A CN 202110109273 A CN202110109273 A CN 202110109273A CN 112799972 A CN112799972 A CN 112799972A
- Authority
- CN
- China
- Prior art keywords
- logical address
- balanced binary
- preset
- binary tree
- address
- 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
Images
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种SSD映射表的实现方法、装置、可读存储介质及电子设备,通过接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设逻辑地址区间,根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、预设的逻辑地址对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树,再将所述待存储的映射项存储至所述目标平衡二叉树,避免了在小范围内进行随机读写时,所有映射项都存入同一颗平衡二叉树中,造成平衡二叉树层级过高的情况,均衡了各颗平衡二叉树的映射项,提高了对映射表的访问性能。
Description
技术领域
本发明涉及固态硬盘技术领域,尤其涉及一种SSD映射表的实现方法、装置、可读存储介质及电子设备。
背景技术
在SSD(Solid State Disk,固态硬盘)的使用过程中,firmware(固件)为了记录主机的LBA(Logical Block Address,逻辑地址块)地址与真实的NAND(闪存)地址之间的关系,需要建立一张从逻辑地址到物理地址的映射表。在DRAM-less(Dynamic Random AccessMemory-less,无动态随机存储器或少动态随机存储器)产品中,由于内存资源有限,映射表只会部分缓存在内存中,采用何种方式实现内存的映射表,将直接影响SSD的读写性能。
对于映射表,若内存资源充足,那么构建一个逻辑地址到物理地址的映射数组是比较理想的实现方式。但是在DRAM-less产品中,由于内存不足,传统的做法多是使用平衡二叉树如AVL(Adelson-Velsky-Landis Tree,高度平衡树)树或者红黑树等方式来存储映射表:
法一是使用一棵平衡二叉树,当firmware产生一个entry(映射项)时,插入到该二叉树当中,该方式实现简单,但是当entry个数较多时,会造成树的层级多,而层级越多,对其进行增删查改的性能将会越慢;
法二是基于法一进行优化,使用多棵平衡二叉树组成树的集合,每一棵树只负责存储一段逻辑地址空间,如图4所示,假设整个SSD的容量包含了10000个逻辑地址,逻辑地址从0~9999,则最多有10000个映射entry;按照逻辑地址从小到大,每1000个entry放入一颗平衡二叉树中,那么最多需要10颗平衡二叉树,每颗二叉树的层级相对于法一中的层级来说就会大幅度下降,可以提高对entry的增删查改性能。该方式在对于全盘随机写的场景下,每颗树中的entry个数大致是比较均衡的,但是若使用场景为在小范围内,例如1G空间内,那么entry将会集中在个别的树上,导致这些树的层级很高,而其他区间对应的树上则没有entry,不能充分利用多棵平衡二叉树,且对于层级很高的个别树,降低了对其进行增删查改的性能。
发明内容
本发明所要解决的技术问题是:提供了一种SSD映射表的实现方法、装置、可读存储介质及电子设备,能够均衡各颗平衡二叉树的映射项,提高对映射表的访问性能。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种SSD映射表的实现方法,包括步骤:
接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设的逻辑地址区间;
根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、所述预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树;
将所述待存储的映射项存储至所述目标平衡二叉树。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种SSD映射表的实现装置,包括:
数据接收模块,用于接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设的逻辑地址区间;
数据计算模块,用于根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、所述预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树;
数据存储模块,用于将所述待存储的映射项存储至所述目标平衡二叉树。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述SSD映射表的实现方法中的各个步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述SSD映射表的实现方法中的各个步骤。
本发明的有益效果在于:
通过接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设的逻辑地址区间,根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、预设的逻辑地址对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树,再将所述待存储的映射项存储至所述目标平衡二叉树,通过哈希算法能够确定映射项要存储至哪颗平衡二叉树中,改变传统的直接按照逻辑地址分段的方式,能够将映射项均匀地存储至多个平衡二叉树中,避免了在小范围内进行随机读写时,所有映射项都存入同一颗平衡二叉树中,造成平衡二叉树层级过高的情况,均衡了各颗平衡二叉树的映射项,提高了对映射表的访问性能。
附图说明
图1为本发明实施例的一种SSD映射表的实现方法的步骤流程图;
图2为本发明实施例的一种SSD映射表的实现装置的结构示意图;
图3为本发明实施例的一种电子设备的结构示意图;
图4为本发明背景技术中直接按照逻辑地址分段的映射表实现方法示意图;
图5为本发明实施例的SSD映射表的实现方法中1G范围内使用8颗平衡二叉树存储映射项的示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种SSD映射表的实现方法,包括步骤:
接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设的逻辑地址区间;
根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、所述预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树;
将所述待存储的映射项存储至所述目标平衡二叉树。
从上述描述可知,本发明的有益效果在于:通过接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设的逻辑地址区间,根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、预设的逻辑地址对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树,再将所述待存储的映射项存储至所述目标平衡二叉树,通过哈希算法能够确定映射项要存储至哪颗平衡二叉树中,改变传统的直接按照逻辑地址分段的方式,能够将映射项均匀地存储至多个平衡二叉树中,避免了在小范围内进行随机读写时,所有映射项都存入同一颗平衡二叉树中,造成平衡二叉树层级过高的情况,均衡了各颗平衡二叉树的映射项,提高了对映射表的访问性能。
进一步地,所述接收待存储的映射项之前包括步骤:
将所述预设的逻辑地址区间进行划分,得到与所述预设平衡二叉树个数对应数量的逻辑地址子区间。
由上述描述可知,由于一个逻辑地址对应一个映射项,将预设的逻辑地址区间划分成与预设平衡二叉树个数对应数量的逻辑地址子区间,便于后续将映射项均匀的打散至不同的平衡二叉树中。
进一步地,所述根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、所述预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树包括:
根据所述逻辑地址对应的逻辑地址子区间确定所述逻辑地址子区间的首位的逻辑地址与末位的逻辑地址;
将所述逻辑地址子区间的首位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的首位的逻辑地址的第一平衡二叉树;
将所述逻辑地址子区间的末位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的末位的逻辑地址的第二平衡二叉树;
根据所述第一平衡二叉树与所述第二平衡二叉树确定存储所述逻辑地址子区间的目标平衡二叉树。
由上述描述可知,分别通过哈希算法计算存储所述逻辑地址子区间的首位的逻辑地址的第一平衡二叉树以及存储所述逻辑地址子区间的末位的逻辑地址的第二平衡二叉树,从而确定存储该逻辑地址子区间的目标平衡二叉树,能够将映射项分散存储至平衡二叉树中,与传统方式相比,减少了每棵平衡二叉树的映射项个数,均衡了各颗平衡二叉树的映射项。
进一步地,所述将所述逻辑地址子区间的首位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的首位的逻辑地址的第一平衡二叉树包括:
所述存储所述逻辑地址子区间的首位的逻辑地址的第一平衡二叉树标识ID为:
式中,LAAfist_N表示所述逻辑地址子区间的首位的逻辑地址的标识,R表示所述预设的逻辑地址区间对应的逻辑地址个数,CNT表示所述预设平衡二叉树个数;
所述将所述逻辑地址子区间的末位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的末位的逻辑地址的第二平衡二叉树包括:
所述存储所述逻辑地址子区间的末位的逻辑地址的第二平衡二叉树标识ID为:
式中,LAAlast_N表示所述逻辑地址子区间的末位的逻辑地址的标识。
由上述描述可知,通过哈希算法计算得到存储逻辑地址子区间的首位的逻辑地址的第一平衡二叉树以及末位的逻辑地址的第二平衡二叉树,算法复杂度低,以利于数字化实现。
进一步地,还包括步骤:
判断任意两个预设的逻辑地址区间的逻辑地址子区间在对应的预设的逻辑地址区间内的相对偏移量是否相同,若是,则所述任意两个预设的逻辑地址区间的逻辑地址子区间存储在同一平衡二叉树。
由上述描述可知,通过判断任意两个预设的逻辑地址区间的逻辑地址子区间在对应的预设的逻辑地址区间内的相对偏移量是否相同,能够确定任意两个预设的逻辑地址区间的逻辑地址子区间是否可以存储在同一颗平衡二叉树中,如果相同,就只需进行一次哈希计算,将其存储至同一平衡二叉树,提高了映射表的实现效率。
进一步地,还包括步骤:
接收映射项查询请求,所述映射项查询请求中包括待查询的映射项;
根据所述待查询的映射项包括的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址的目标平衡二叉树;
查询所述目标平衡二叉树,确定所述逻辑地址对应的物理地址。
进一步地,所述根据所述待查询的映射项包括的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址的目标平衡二叉树包括:
所述存储所述逻辑地址的目标平衡二叉树标识ID为:
式中,LAAn_N表示所述逻辑地址的标识。
由上述描述可知,查询任一映射项时,根据哈希算法确定其在哪颗平衡二叉树中,确定之后对平衡二叉树进行查询操作,得到该逻辑地址对应的物理地址,能够实现对映射表的访问,提高了对映射表的访问性能。
请参照图2,本发明另一实施例提供了一种SSD映射表的实现装置,包括:
数据接收模块,用于接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设的逻辑地址区间;
数据计算模块,用于根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、所述预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树;
数据存储模块,用于将所述待存储的映射项存储至所述目标平衡二叉树。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述SSD映射表的实现方法中的各个步骤。
请参照图3,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述SSD映射表的实现方法中的各个步骤。
本发明上述SSD映射表的实现方法、装置、计算机可读存储介质及电子设备能够适用于任何类型的固态硬盘,比如基于闪存的固态硬盘、基于DRAM(Dynamic Random AccessMemory)的固态硬盘等,以下通过具体实施方式进行说明:
实施例一
请参照图1、5,本发明实施例提供了一种SSD映射表的实现方法,其特征在于,包括步骤:
S0、将所述预设的逻辑地址区间进行划分,得到与所述预设平衡二叉树个数对应数量的逻辑地址子区间;
本实施例中,主机对SSD中1G范围内进行随机读写操作,按照LAA(逻辑地址)为4k一个的粒度,1G范围内的entry(映射项)个数为256K个,即256K个LAA,所述预设平衡二叉树个数为8颗,所述预设的逻辑地址区间为1G,其对应的LAA个数为256K,如图5所示;
其中,CNT(平衡二叉树个数)可以根据实际情况自由设置,比如根据内存的大小;RGU(逻辑地址区间)可以根据不同的使用场景进行设置,或者按照逻辑地址大小对齐;
比如,将RGU进行划分,得到8个逻辑地址子区间,每个逻辑地址子区间中包含32K个LAA,即第一个逻辑地址子区间为LAA0~LAA32767,第二个逻辑地址子区间为LAA32768~LAA65535,第三个逻辑地址子区间为LAA65536~LAA98303,依此类推;
S1、接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设的逻辑地址区间;
比如,接收映射项存储请求,映射项存储请求中包括待存储的entry和预设的RGU;
S2、根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、所述预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树;
具体的,根据所述逻辑地址对应的逻辑地址子区间确定所述逻辑地址子区间的首位的逻辑地址与末位的逻辑地址;
将所述逻辑地址子区间的首位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的首位的逻辑地址的第一平衡二叉树;
将所述逻辑地址子区间的末位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的末位的逻辑地址的第二平衡二叉树;
根据所述第一平衡二叉树与所述第二平衡二叉树确定存储所述逻辑地址子区间的目标平衡二叉树;
其中,所述将所述逻辑地址子区间的首位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的首位的逻辑地址的第一平衡二叉树包括:
所述存储所述逻辑地址子区间的首位的逻辑地址的第一平衡二叉树标识ID为:
式中,LAAfist_N表示所述逻辑地址子区间的首位的逻辑地址的标识,R表示所述预设的逻辑地址区间对应的逻辑地址个数,CNT表示所述预设平衡二叉树个数;
所述将所述逻辑地址子区间的末位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的末位的逻辑地址的第二平衡二叉树包括:
所述存储所述逻辑地址子区间的末位的逻辑地址的第二平衡二叉树标识ID为:
式中,LAAlast_N表示所述逻辑地址子区间的末位的逻辑地址的标识;
S3、将所述待存储的映射项存储至所述目标平衡二叉树;
比如,假设待存储的entry包括的LAAn对应的逻辑地址子区间是第一个逻辑地址子区间LAA0~LAA32767,确定该逻辑地址子区间的首位的逻辑地址LAA0,末位的逻辑地址LAA32767,则LAA0的标识为0,LAA32767的标识为32767;
将LAA0的标识、RGU对应的LAA个数以及CNT基于哈希算法进行计算,那么存储LAA0的第一平衡二叉树标识ID为:
将LAA32767的标识、RGU对应的LAA个数以及CNT基于哈希算法进行计算,那么存储LAA32767的第二平衡二叉树标识ID为:
所以存储第一个逻辑地址子区间LAA0~LAA32767的目标平衡二叉树标识ID为0;
将待存储的entry存储至标识ID为0的平衡二叉树中;
假设LAAn对应的逻辑地址子区间是第二个逻辑地址子区间LAA32768~LAA65535,确定该逻辑地址子区间的首位的逻辑地址LAA32768,末位的逻辑地址LAA65535,则LAA32768的标识为32768,LAA65535的标识为65535;
存储LAA32768的第一平衡二叉树标识ID为:
存储LAA65535的第二平衡二叉树标识ID为:
将待存储的entry存储至标识ID为1的平衡二叉树中,依此类推;
本发明的映射表实现方法与法二的实现方法相比,例如对于一块256G的SSD,1G范围内随机读写,采用8棵平衡二叉树的情况下,在法二的实现方式下,32G范围的LAA都会放入同一棵树中,那么1G范围内的LAA必然都在同一棵树中,且最大会存储256K个entry;
而使用本发明,1G范围内,这256K个entry会被均匀的存储至8棵不同的树中,那么每棵树最大只会存储32K个entry;平衡二叉树存储的entry越少,其增删查改的性能就会越高,并且当设置的平衡二叉树的个数越多的时候,两种方法下对于实现的映射表的访问性能差异越明显。
本发明在大范围随机读写的情况下,对于最终实现的映射表的访问性能也能与法二持平。
实施例二
本实施例在实施例一的基础上进一步限定了如何提高映射表的实现效率,具体为:
还包括步骤:
判断任意两个预设的逻辑地址区间的逻辑地址子区间在对应的预设的逻辑地址区间内的相对偏移量是否相同,若是,则所述任意两个预设的逻辑地址区间的逻辑地址子区间存储在同一平衡二叉树;
比如,接收到两个映射项存储请求,每个映射项存储请求中包括对应的RGU,判断这两个RGU的逻辑地址子区间在对应的RGU内的相对偏移量是否相同,若是,则这两个RGU的逻辑地址子区间存储在同一平衡二叉树;
假设第一个RGU的第一个逻辑地址子区间是第0~128MB空间,那么第二个RGU的第一个逻辑地址子区间是第1024~1024+128MB空间,判断这两个逻辑地址子区间在各自的RGU内都属于第一个逻辑地址子区间,则这两个逻辑地址子区间存储在同一颗平衡二叉树中。
实施例三
请参照图,本实施例在实施例一或实施例二的基础上进一步限定了如何实现对映射表的访问,具体的:
还包括步骤:
接收映射项查询请求,所述映射项查询请求中包括待查询的映射项;
根据所述待查询的映射项包括的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址的目标平衡二叉树;
具体的,所述存储所述逻辑地址的目标平衡二叉树标识ID为:
式中,LAAn_N表示所述逻辑地址的标识;
查询所述目标平衡二叉树,确定所述逻辑地址对应的物理地址;
比如,接收映射项查询请求,该映射项查询请求中包括待查询的entry,待查询的entry包括LAA65545,则LAA65545的标识为65545;
存储LAA65545的目标平衡二叉树标识ID为:
查询标识ID为2的平衡二叉树,确定LAA65545对应的PAA(物理地址)。
实施例四
请参照图2,一种SSD映射表的实现装置,包括:
数据接收模块,用于接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设逻辑地址区间;
数据计算模块,用于根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、所述预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树;
数据存储模块,用于将所述待存储的映射项存储至所述目标平衡二叉树。
实施例五
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可实现实施例一、实施例二或实施例三中SSD映射表的实现方法的各个步骤。
实施例六
请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一、实施例二或实施例三中SSD映射表的实现方法的各个步骤。
综上所述,本发明提供的一种SSD映射表的实现方法、装置、可读存储介质及电子设备,将预设的逻辑地址区间进行划分,得到与预设平衡二叉树个数对应数量的逻辑地址子区间,便于后续将映射项均匀的打散至不同的平衡二叉树中;接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设的逻辑地址区间;根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的平衡二叉树;将所述待存储的映射项存储至所述平衡二叉树;判断任意两个预设的逻辑地址区间的逻辑地址子区间在对应的预设的逻辑地址区间内的相对偏移量是否相同,若是,则所述任意两个预设的逻辑地址区间的逻辑地址子区间存储在同一平衡二叉树,能够提高了映射表的实现效率,当接收映射项查询请求时,根据所述待查询的映射项包括的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址的平衡二叉树;查询所述平衡二叉树,确定所述逻辑地址对应的物理地址,能够实现对映射表的访问,通过哈希算法能够确定映射项要存储至哪颗平衡二叉树中,能够将映射项均匀地存储至多个平衡二叉树中,避免了在小范围内进行随机读写时,所有映射项都存入同一颗平衡二叉树中,造成平衡二叉树层级过高的情况,均衡了各颗平衡二叉树的映射项,提高了对映射表的访问性能,且算法复杂度低,有利于数字化实现。
在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种SSD映射表的实现方法,其特征在于,包括步骤:
接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设的逻辑地址区间;
根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、所述预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树;
将所述待存储的映射项存储至所述目标平衡二叉树。
2.根据权利要求1所述的一种SSD映射表的实现方法,其特征在于,所述接收待存储的映射项之前包括步骤:
将所述预设的逻辑地址区间进行划分,得到与所述预设平衡二叉树个数对应数量的逻辑地址子区间。
3.根据权利要求1所述的一种SSD映射表的实现方法,其特征在于,所述根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、所述预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树包括:
根据所述逻辑地址对应的逻辑地址子区间确定所述逻辑地址子区间的首位的逻辑地址与末位的逻辑地址;
将所述逻辑地址子区间的首位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的首位的逻辑地址的第一平衡二叉树;
将所述逻辑地址子区间的末位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的末位的逻辑地址的第二平衡二叉树;
根据所述第一平衡二叉树与所述第二平衡二叉树确定存储所述逻辑地址子区间的目标平衡二叉树。
4.根据权利要求3所述的一种SSD映射表的实现方法,其特征在于,所述将所述逻辑地址子区间的首位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的首位的逻辑地址的第一平衡二叉树包括:
所述存储所述逻辑地址子区间的首位的逻辑地址的第一平衡二叉树标识ID为:
式中,LAAfist_N表示所述逻辑地址子区间的首位的逻辑地址的标识,R表示所述预设的逻辑地址区间对应的逻辑地址个数,CNT表示所述预设平衡二叉树个数;
所述将所述逻辑地址子区间的末位的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的末位的逻辑地址的第二平衡二叉树包括:
所述存储所述逻辑地址子区间的末位的逻辑地址的第二平衡二叉树标识ID为:
式中,LAAlast_N表示所述逻辑地址子区间的末位的逻辑地址的标识。
5.根据权利要求1至4任一项所述的一种SSD映射表的实现方法,其特征在于,还包括步骤:
判断任意两个预设的逻辑地址区间的逻辑地址子区间在对应的预设的逻辑地址区间内的相对偏移量是否相同,若是,则所述任意两个预设的逻辑地址区间的逻辑地址子区间存储在同一平衡二叉树。
6.根据权利要求1所述的一种SSD映射表的实现方法,其特征在于,还包括步骤:
接收映射项查询请求,所述映射项查询请求中包括待查询的映射项;
根据所述待查询的映射项包括的逻辑地址、预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址的目标平衡二叉树;
查询所述目标平衡二叉树,确定所述逻辑地址对应的物理地址。
8.一种SSD映射表的实现装置,其特征在于,包括:
数据接收模块,用于接收映射项存储请求,所述映射项存储请求中包括待存储的映射项和预设的逻辑地址区间;
数据计算模块,用于根据所述待存储的映射项包括的逻辑地址对应的逻辑地址子区间、所述预设的逻辑地址区间对应的逻辑地址个数以及预设平衡二叉树个数基于哈希算法进行计算,确定存储所述逻辑地址子区间的目标平衡二叉树;
数据存储模块,用于将所述待存储的映射项存储至所述目标平衡二叉树。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的一种SSD映射表的实现方法中的各个步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的一种SSD映射表的实现方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110109273.XA CN112799972B (zh) | 2021-01-27 | 2021-01-27 | Ssd映射表的实现方法、装置、可读存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110109273.XA CN112799972B (zh) | 2021-01-27 | 2021-01-27 | Ssd映射表的实现方法、装置、可读存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112799972A true CN112799972A (zh) | 2021-05-14 |
CN112799972B CN112799972B (zh) | 2023-04-07 |
Family
ID=75812059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110109273.XA Active CN112799972B (zh) | 2021-01-27 | 2021-01-27 | Ssd映射表的实现方法、装置、可读存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799972B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778948A (zh) * | 2021-09-01 | 2021-12-10 | 中国人民银行清算总中心 | 消息持久化存储方法及装置 |
CN114661238A (zh) * | 2022-03-29 | 2022-06-24 | 江苏安超云软件有限公司 | 带缓存的存储系统空间回收的方法及应用 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493794A (zh) * | 2009-01-19 | 2009-07-29 | 成都市华为赛门铁克科技有限公司 | 一种闪存数据处理方法及装置 |
CN103064641A (zh) * | 2013-02-05 | 2013-04-24 | 威盛电子股份有限公司 | 非易失性存储装置及其操作方法 |
US20130238855A1 (en) * | 2012-03-12 | 2013-09-12 | Infinidat Ltd. | Management of cache memory in a storage system |
US20130346725A1 (en) * | 2012-06-20 | 2013-12-26 | Microsoft Corporation | Structuring storage based on latch-free b-trees |
CN104360956A (zh) * | 2014-10-31 | 2015-02-18 | 华为技术有限公司 | 一种数据拷贝方法及装置 |
CN109947670A (zh) * | 2017-12-20 | 2019-06-28 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110377230A (zh) * | 2019-06-29 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种应用于固态硬盘的原子写入方法及装置 |
CN112069088A (zh) * | 2020-08-18 | 2020-12-11 | 浙江大华存储科技有限公司 | 一种地址映射管理方法及相关装置、设备 |
JP2021007059A (ja) * | 2020-10-23 | 2021-01-21 | キオクシア株式会社 | メモリシステム |
-
2021
- 2021-01-27 CN CN202110109273.XA patent/CN112799972B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493794A (zh) * | 2009-01-19 | 2009-07-29 | 成都市华为赛门铁克科技有限公司 | 一种闪存数据处理方法及装置 |
US20130238855A1 (en) * | 2012-03-12 | 2013-09-12 | Infinidat Ltd. | Management of cache memory in a storage system |
US20130346725A1 (en) * | 2012-06-20 | 2013-12-26 | Microsoft Corporation | Structuring storage based on latch-free b-trees |
CN103064641A (zh) * | 2013-02-05 | 2013-04-24 | 威盛电子股份有限公司 | 非易失性存储装置及其操作方法 |
CN104360956A (zh) * | 2014-10-31 | 2015-02-18 | 华为技术有限公司 | 一种数据拷贝方法及装置 |
CN109947670A (zh) * | 2017-12-20 | 2019-06-28 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110377230A (zh) * | 2019-06-29 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种应用于固态硬盘的原子写入方法及装置 |
CN112069088A (zh) * | 2020-08-18 | 2020-12-11 | 浙江大华存储科技有限公司 | 一种地址映射管理方法及相关装置、设备 |
JP2021007059A (ja) * | 2020-10-23 | 2021-01-21 | キオクシア株式会社 | メモリシステム |
Non-Patent Citations (3)
Title |
---|
YONG-GOO LEE: ""μ-FTL:: a memory-efficient flash translation layer supporting multiple mapping granularities"", 《EMSOFT "08: PROCEEDINGS OF THE 8TH ACM INTERNATIONAL CONFERENCE ON EMBEDDED SOFTWARE》 * |
李国徽等: "LD_B~+树:闪存系统上一种DBMS索引结构", 《小型微型计算机系统》 * |
柯剑等: "动态地址映射虚拟存储系统", 《计算机工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778948A (zh) * | 2021-09-01 | 2021-12-10 | 中国人民银行清算总中心 | 消息持久化存储方法及装置 |
CN114661238A (zh) * | 2022-03-29 | 2022-06-24 | 江苏安超云软件有限公司 | 带缓存的存储系统空间回收的方法及应用 |
CN114661238B (zh) * | 2022-03-29 | 2024-01-02 | 江苏安超云软件有限公司 | 带缓存的存储系统空间回收的方法及应用 |
Also Published As
Publication number | Publication date |
---|---|
CN112799972B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347787B2 (en) | Image retrieval method and apparatus, system, server, and storage medium | |
CN112799972B (zh) | Ssd映射表的实现方法、装置、可读存储介质及电子设备 | |
CN106326475B (zh) | 一种高效的静态哈希表实现方法及系统 | |
US7761648B2 (en) | Caching method for NAND flash translation layer | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN108932257B (zh) | 多维度数据的查询方法及装置 | |
US20150058352A1 (en) | Thin database indexing | |
CN111459919B (zh) | 数据查询方法、加载组件、搜索组件和存储介质 | |
CN111475105A (zh) | 监控数据存储方法、设备、服务器及存储介质 | |
WO2023045407A1 (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
CN109460406A (zh) | 一种数据处理方法及装置 | |
CN107423425A (zh) | 一种对k/v格式的数据快速存储和查询方法 | |
US20240012800A1 (en) | Data processing method, server, and system | |
CN112380004B (zh) | 内存管理方法、装置、计算机可读存储介质及电子设备 | |
CN112148925B (zh) | 用户标识关联查询方法、装置、设备及可读存储介质 | |
CN110674086A (zh) | 数据合并方法、装置、电子设备及存储介质 | |
CN111625198A (zh) | 一种元数据缓存方法和元数据缓存装置 | |
CN116501760A (zh) | 一种内存与前缀树相结合的高效分布式元数据管理方法 | |
CN112069088B (zh) | 一种地址映射管理方法及相关装置、设备 | |
US9292553B2 (en) | Queries for thin database indexing | |
CN111104435B (zh) | 一种元数据组织方法、装置、设备及计算机可读存储介质 | |
WO2022001626A1 (zh) | 注入时序数据的方法、查询时序数据的方法及数据库系统 | |
CN112860712B (zh) | 一种基于区块链的交易数据库构建方法、系统及电子设备 | |
CN114398373A (zh) | 应用于数据库存储的文件数据存储读取方法及装置 | |
CN114416741A (zh) | 基于多级索引的kv数据写入读取方法、装置及存储介质 |
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 |