CN111459919B - 数据查询方法、加载组件、搜索组件和存储介质 - Google Patents
数据查询方法、加载组件、搜索组件和存储介质 Download PDFInfo
- Publication number
- CN111459919B CN111459919B CN202010337214.3A CN202010337214A CN111459919B CN 111459919 B CN111459919 B CN 111459919B CN 202010337214 A CN202010337214 A CN 202010337214A CN 111459919 B CN111459919 B CN 111459919B
- Authority
- CN
- China
- Prior art keywords
- data
- information
- mapping table
- searched
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000013507 mapping Methods 0.000 claims abstract description 215
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 abstract description 13
- 230000000694 effects Effects 0.000 abstract description 11
- 230000000875 corresponding effect Effects 0.000 description 48
- 238000010586 diagram Methods 0.000 description 8
- 101150033824 PAA1 gene Proteins 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据查询方法、加载组件、搜索组件和存储介质,所述数据查询方法包括:由加载组件从二级映射表中找到要回收的区块在一级映射表中所对应的待加载地址,从一级映射表的待加载地址中加载一级映射数据作为待搜索数据,将待搜索数据按照预设容量分配给多个搜索组件,由多个搜索组件并发处理所接收到的待搜索数据,得到所有的有效物理地址信息,并提供输出数据寄存器供CPU读取有效物理地址信息之后完成有效数据的搬迁。本发明实施例通过加载组件和搜索组件来实现搬迁式GC方案的查询部分,并通过加载组件同时与多个搜索组件的协同处理,以减少CPU的参与,达到了加载组件、搜索组件与CPU并发的效果,以大大提高数据搬迁效率。
Description
技术领域
本发明涉及存储数据管理技术领域,特别涉及一种数据查询方法、加载组件、搜索组件和存储介质。
背景技术
目前主流的搬迁式GC(garbage collection,垃圾回收)方案包括如下这几个步骤:
1、从大量的mapping table(映射表)中搜索有效的PAA(physical au address,物理地址)信息;
2、读取有效PAA位置的数据;
3、写入新的block(区块),完成数据搬迁;
其中,在执行步骤1时,SSD(Solid State Disk或Solid State Drive,固态驱动器)需要从大量的映射表中找出与待回收的block stripe(块条带)之间的引用关系;例如一块256GB的SSD,一般映射的逻辑页的大小为4KB,因此,其一级映射表size=256GB/4KB*PAA size,其中,PAA size一般为4Bytes,即指向4KB用户数据的地址,即一级映射表size为256MB。由于一级映射表的size过大,当需要从一级映射表中找到需要搬迁的数据,则需要通过CPU(centralprocessing unit,中央处理器)搜索256MB的一级映射表,影响CPU性能且搬迁效率低。
发明内容
本发明所要解决的技术问题是:提供一种数据查询方法、加载组件、搜索组件和存储介质,提高数据搬迁效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种数据查询方法,包括步骤:
接收待回收区块信息以及加载组件发送的待搜索数据,所述待搜索数据为所述加载组件从二级映射表中找到的与所述待回收区块信息对应的一级映射数据,所述一级映射数据为存储在一级映射表内的数据,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系;
根据所述待搜索数据和所述待回收区块信息得到有效物理地址信息;
存储所有所述有效物理地址信息至输出数据寄存器,所述输出数据寄存器供CPU读取所述有效物理地址信息之后完成有效数据的搬迁。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种数据查询方法,包括步骤:
接收待回收区块信息,从二级映射表中找到与所述待回收区块信息对应的待加载地址,所述待加载地址为一级映射表的一级存储地址,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系;
从所述待加载地址加载待搜索数据,所述待搜索数据为存储在一级映射表内的一级映射数据;
将所述待搜索数据按照预设容量一一分配给多个搜索组件,所述待搜索数据用于多个并行处理的所述搜索组件提供有效物理地址信息供CPU读取并搬迁有效数据。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种搜索组件,包括:
输入块寄存器用于接收待回收区块信息;
输入数据寄存器用于接收加载组件发送的待搜索数据,所述待搜索数据为所述加载组件从二级映射表中找到的与所述待回收区块信息对应的一级映射数据,所述一级映射数据为存储在一级映射表内的数据,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系;
第一处理器用于根据所述待搜索数据和所述待回收区块信息得到有效物理地址信息,存储所有所述有效物理地址信息至输出数据寄存器;
输出数据寄存器用于供CPU读取所述有效物理地址信息之后完成有效数据的搬迁。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种加载组件,包括:
接收模块用于接收待回收区块信息,从二级映射表中找到与所述待回收区块信息对应的待加载地址,所述待加载地址为一级映射表的一级存储地址,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系;
加载模块用于从所述待加载地址加载待搜索数据,所述待搜索数据为存储在一级映射表内的一级映射数据;
发送模块用于将所述待搜索数据按照预设容量一一分配给多个搜索组件,所述待搜索数据用于多个并行处理的所述搜索组件提供有效物理地址信息供CPU读取并搬迁有效数据。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序存储有上述的数据查询方法。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种搜索组件,包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述第一处理器执行所述第一计算机程序时实现上述的数据查询方法。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种加载组件,包括第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的第二计算机程序,其特征在于,所述第二处理器执行所述第二计算机程序时实现上述的数据查询方法。
本发明的有益效果在于:一种数据查询方法、加载组件、搜索组件和存储介质,由加载组件从二级映射表中找到要回收的区块在一级映射表中所对应的待加载地址,从一级映射表的待加载地址中加载一级映射数据作为待搜索数据,将待搜索数据按照预设容量一一分配给多个搜索组件,由多个搜索组件并发处理所接收到的待搜索数据,得到所有的有效物理地址信息,并提供输出数据寄存器供CPU读取所述有效物理地址信息之后完成有效数据的搬迁。即通过加载组件和搜索组件来实现搬迁式GC方案的查询部分,减少CPU的参与,达到了加载组件、搜索组件这一整体与CPU并发的效果;同时一个加载组件同时与多个搜索组件协同处理,使得并行处理的每一个搜索组件只需要完成预设容量即可,从而使得加载组件和搜索组件之间也能达到并发的效果,以大大提高数据搬迁效率。
附图说明
图1为本发明实施例的一种数据查询方法的流程示意图;
图2为本发明实施例涉及的SSD的整体结构示意图;
图3为本发明实施例涉及的单个物理地址的数据结构示意图;
图4为本发明实施例涉及的加载组件和搜索组件的配合示意图;
图5为本发明实施例涉及的加载组件的整体结构示意图;
图6为本发明实施例涉及的根据索引信息和二级映射表得到待加载地址的过程示意图;
图7为本发明实施例涉及的根据待搜索数据和所述待回收区块信息得到有效物理地址信息的过程示意图;
图8为本发明另一实施例的一种数据查询方法的流程示意图;
图9为本发明另一实施例的一种搜索组件的硬件结构示意图;
图10为本发明另一实施例的一种加载组件的硬件结构示意图;
图11为本发明另一实施例的一种搜索组件的软件结构示意图;
图12为本发明另一实施例的一种加载组件的软件结构示意图。
标号说明:
1、搜索组件;11、输入块寄存器;12、输入数据寄存器;13、第一处理器;14、输出数据寄存器;15、第一存储器;2、加载组件;21、接收模块;22、加载模块;23、发送模块;24、第二处理器;25、第二存储器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1至图7,本发明实施例提供了一种数据查询方法,包括步骤:
接收待回收区块信息以及加载组件发送的待搜索数据,所述待搜索数据为所述加载组件从二级映射表中找到的与所述待回收区块信息对应的一级映射数据,所述一级映射数据为存储在一级映射表内的数据,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系;
根据所述待搜索数据和所述待回收区块信息得到有效物理地址信息;
存储所有所述有效物理地址信息至输出数据寄存器,所述输出数据寄存器供CPU读取所述有效物理地址信息之后完成有效数据的搬迁。
从上述描述可知,本发明的有益效果在于:由加载组件从二级映射表中找到要回收的区块在一级映射表中所对应的待加载地址,从一级映射表的待加载地址中加载一级映射数据作为待搜索数据,将待搜索数据按照预设容量一一分配给多个搜索组件,由多个搜索组件并发处理所接收到的待搜索数据,得到所有的有效物理地址信息,并提供输出数据寄存器供CPU读取所述有效物理地址信息之后完成有效数据的搬迁。即通过加载组件和搜索组件来实现搬迁式GC方案的查询部分,减少CPU的参与,达到了加载组件、搜索组件这一整体与CPU并发的效果;同时一个加载组件同时与多个搜索组件协同处理,使得并行处理的每一个搜索组件只需要完成预设容量即可,从而使得加载组件和搜索组件之间也能达到并发的效果,以大大提高数据搬迁效率。
进一步地,所述根据所述待搜索数据和所述待回收区块信息得到有效物理地址信息具体包括以下步骤:
获取所述待回收区块信息和所述待回收区块信息所对应的输入掩码;
将所述待搜索数据中每一个物理地址信息与所述输入掩码进行位与,得到所述待搜索数据中每一个物理地址信息的区块信息;
将所述待搜索数据中每一个物理地址信息的区块信息与所述待回收区块信息进行异或;
将所述待搜索数据中异或结果为0的所有物理地址信息作为有效物理地址信息。
从上述描述可知,通过与待回收区块信息所对应的输入掩码进行位与,得到待搜索数据中每一个物理地址信息的区块信息,通过待回收区块信息和待搜索数据中每一个物理地址信息的区块信息之间的异或,当两者相等,则相等的两个数值异或结果为0,因此,如果两个区块信息的异或结果为0,则说明该物理地址信息是在该区块上。其中,在第一映射表中存在的物理地址信息则说明还存在有映射,即说明在第一映射表的物理地址信息内的数据为有效数据,因此,将异或结果为0的所有物理地址信息作为有效物理地址信息,从而快速且准确的搜索到有效物理地址信息。
进一步地,所述存储所有所述有效物理地址信息之后还包括以下步骤:
统计所有所述有效物理地址信息的数量至输出数量寄存器,所述输出数量寄存器供CPU读取数量。
从上述描述可知,通过统计所有有效物理地址信息的数量,以在CPU调取数据时能知道数据长度,从而为此次搬迁的有效数据分配合适大小的存储空间。
请参照图2至图8,本发明另一实施例提供了一种数据查询方法,包括步骤:
接收待回收区块信息,从二级映射表中找到与所述待回收区块信息对应的待加载地址,所述待加载地址为一级映射表的一级存储地址,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系;
从所述待加载地址加载待搜索数据,所述待搜索数据为存储在一级映射表内的一级映射数据;
将所述待搜索数据按照预设容量一一分配给多个搜索组件,所述待搜索数据用于多个并行处理的所述搜索组件提供有效物理地址信息供CPU读取并搬迁有效数据。
从上述描述可知,本发明的有益效果在于:由加载组件从二级映射表中找到要回收的区块在一级映射表中所对应的待加载地址,从一级映射表的待加载地址中加载一级映射数据作为待搜索数据,将待搜索数据按照预设容量一一分配给多个搜索组件,由多个搜索组件并发处理所接收到的待搜索数据,得到所有的有效物理地址信息,并提供输出数据寄存器供CPU读取所述有效物理地址信息之后完成有效数据的搬迁。即通过加载组件和搜索组件来实现搬迁式GC方案的查询部分,减少CPU的参与,达到了加载组件、搜索组件这一整体与CPU并发的效果;同时一个加载组件同时与多个搜索组件协同处理,使得并行处理的每一个搜索组件只需要完成预设容量即可,从而使得加载组件和搜索组件之间也能达到并发的效果,以大大提高数据搬迁效率。
进一步地,所述从二级映射表中找到与所述待回收区块信息对应的待加载地址具体包括以下步骤:
获取所述待回收区块信息所对应的索引信息,按照所述索引信息中数据为1的位在所述二级映射表的对应位上读取待加载地址,所述索引信息按位保存每一个区块引用的二级映射表项索引。
从上述描述可知,当写入信息时,在一级映射表中写入逻辑页地址和物理页地址的对应关系的同时,在二级映射表写入一级存储地址和二级存储地址的映射关系,并且在写入的区块所对应的索引信息上记入这个区块被写入的情况,比如索引信息在二级存储地址写入的对应位上写入1,从而在后续进行搜索时,能通过索引信息快速找到与待回收区块信息对应的一级映射数据。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序存储有如上实施例的数据查询方法。
请参照图9,本发明另一实施例提供了一种搜索组件1,包括:
输入块寄存器11用于接收待回收区块信息;
输入数据寄存器12用于接收加载组件发送的待搜索数据,所述待搜索数据为所述加载组件2从二级映射表中找到的与所述待回收区块信息对应的一级映射数据,所述一级映射数据为存储在一级映射表内的数据,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系;
第一处理器13用于根据所述待搜索数据和所述待回收区块信息得到有效物理地址信息,存储所有所述有效物理地址信息至输出数据寄存器14;
输出数据寄存器14用于供CPU读取所述有效物理地址信息之后完成有效数据的搬迁。
其中,关于输入块寄存器11、输入数据寄存器12、第一处理器13和输出数据寄存器14所实现的具体过程和对应的效果,可以参照上述图1至图7的实施例的数据查询方法中的相关描述。
请参照图10,本发明另一实施例提供了一种加载组件2,包括:
接收模块21用于接收待回收区块信息,从二级映射表中找到与所述待回收区块信息对应的待加载地址,所述待加载地址为一级映射表的一级存储地址,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系;
加载模块22用于从所述待加载地址加载待搜索数据,所述待搜索数据为存储在一级映射表内的一级映射数据;
发送模块23用于将所述待搜索数据按照预设容量一一分配给多个搜索组件1,所述待搜索数据用于多个并行处理的所述搜索组件1提供有效物理地址信息供CPU读取并搬迁有效数据。
其中,关于接收模块21、加载模块22和发送模块23所实现的具体过程和对应的效果,可以参照上述图2至图8的实施例的数据查询方法中的相关描述。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序存储有上述的数据查询方法。
其中,关于本实施例中的计算机程序中包含的数据查询方法的具体实现过程和对应效果,可以参照上述实施例(包含图1至图7的实施例和图2至图8的实施例)的数据查询方法中的相关描述。
请参照图11,本发明另一实施例提供了一种搜索组件1,包括第一存储器15、第一处理器13及存储在第一存储器15上并可在第一处理器13上运行的第一计算机程序,所述第一处理器13执行所述第一计算机程序时实现如上述图1至图7的实施例的数据查询方法。
其中,关于本实施例中第一处理器13所实现的数据查询方法的具体实现过程和对应效果,可以参照上述图1至图7的实施例的数据查询方法中的相关描述。
请参照图12,本发明另一实施例提供了一种加载组件2,包括第二存储器25、第二处理器24及存储在第二存储器25上并可在第二处理器24上运行的第二计算机程序,所述第二处理器24执行所述第二计算机程序时实现如上述图2至图8的实施例的数据查询方法。
其中,关于本实施例中第二处理器24所实现的数据查询方法的具体实现过程和对应效果,可以参照上述图2至图8的实施例的数据查询方法中的相关描述。
本申请的数据查询方法和对应的加载组件、搜索组件和存储介质主要应用于搬迁式GC方案中搜索有效物理地址信息的应用场景,以下结合具体的应用场景进行说明:
根据以上,并结合图1至图7,本发明的实施例一为:
一种数据查询方法,包括步骤:
S21、接收待回收区块信息以及加载组件发送的待搜索数据,待搜索数据为加载组件从二级映射表中找到与待回收区块信息对应的一级映射数据;
具体的,为了理解本实施例中,先对本实施例中实现基础做以下说明:假设本实施例中为一块256GB的SSD,其一级映射表的计算公式为,一级映射表size=256GB/4KB*一级映射表项PAA size,上面公式中的一级映射表项PAA(physical au address,物理地址)size一般为4Bytes,即指向4KB用户数据的地址;由此得到一级映射表size为256MB;由于一级映射表的size还是过大,无法在sram(Static Random-Access Memory,静态随机存取存储器)中常驻,因此在本实施例中通过二级映射表来缩减算法复杂度;
其中,二级映射表size=256MB/4KB*二级映射表项PAA size。上面公式中的二级映射表项PAA size一般为4Bytes,即指向4KB一级映射表的存储地址;这样计算出来的二级映射表size为256KB,即包含了64K个二级映射表项;
如图2所示,在本实施例中,以在一块256GB的SSD中需要回收block N中的有效数据,其中,SSD中channel(通道)/cell(单元)/die/(颗粒)plane(面)的参数分别为2/2/1/2。而每一个PAA的数据长度为32bits,在这32bits中包含的信息如图3所示,其中,区块信息位于bit 16~24,则输入掩码为0x1ff0000。
其中,在本实施例中,为了区分不同映射表中的映射数据和存储地址,将存储在一级映射表内的数据统一命名为一级映射数据,将一级映射表的存储地址统一命名为一级存储地址,将二级映射表的存储地址统一命名为二级存储地址,因此,一级映射表内存储逻辑页地址和物理页地址的映射关系,二级映射表内存储二级存储地址和一级映射表的一级存储地址的映射关系。
在本实施例中,加载组件根据索引信息和二级映射表得到的与待回收区块信息对应的一级映射数据来作为待搜索数据,关于加载组件得到待搜索数据的具体实现过程可以查看实施例二,但值得说明的是,在本实施例中,由于索引信息按位保存每一个区块引用的二级映射表项索引,因此通过查询待回收区块信息所对应的索引信息可以快速定位到二级映射表内的二级存储地址上所对应的一级存储地址有哪些是与待回收区块信息相对应的,从而快速获取到待搜索数据。如图6所示,索引信息的位为1,则二级映射表上对应位上存储的一级存储地址就提取出来,如图6中所示的得到一级存储地址paan、paa4和paa2。
S22、根据待搜索数据和待回收区块信息得到有效物理地址信息;
具体的,如图4所示,当搜索组件获取到预设容量的待搜索数据时,便要开始对这些待搜索数据进行搜索,如上的举例,则此时每一个搜索组件内包含一个4KB的待搜索数据,则当加载数据获取到的待搜索数据大于4KB时,加载组件会分配给多个处于空闲状态的搜索组件进行并发处理。当然,预设容量可以为8KB等等,搜索组件内置空间就为8KB的搜索数据。
而对于每一个搜索组件来说,它需要的只是将自己存储空间内的待搜索数据进行搜索完毕即可。在搜索过程中,搜索组件接收待回收区块信息并得到其所对应的输入掩码,该输入掩码即为上述的0x1ff0000,而对于block N的原始区块信息为0x111,则应当配置为0x1110000来作为待回收区块信息。
如图5所示,搜索组件包括用于启动搜索过程的开关寄存器Switch、用于接收待回收区块信息输入块寄存器Input Block、用于接收加载组件发送的待搜索数据的输入数据寄存器Input Data、用于接收与待回收区块信息对应的输入掩码的输入掩码寄存器InputMask、配置为预设容量4KB的输入数量寄存器InputCnt、作为处理数据的第一处理器SearchEngine、用于在搜索完成后上报空闲状态的状态寄存器Status、用于供CPU读取有效物理地址信息之后完成有效数据的搬迁输出数据寄存器Output Data以及用于供CPU读取数量的输出数量寄存器Output Cnt。
此时,搜索组件将待搜索数据中每一个物理地址信息与输入掩码进行位与,得到待搜索数据中每一个物理地址信息的区块信息,将待搜索数据中每一个物理地址信息的区块信息与待回收区块信息进行异或,即为((PAA&input_mask)^input_Block)==0。如图7所示,在本实施例中,物理地址PAA1和PAA4与待回收区块信息0x1110000的最终异或结果均为0,则将待搜索数据中异或结果为0的所有物理地址信息PAA1和PAA4作为有效物理地址信息。
S23、存储所有有效物理地址信息至输出数据寄存器,统计所有有效物理地址信息的数量至输出数量寄存器,输出数据寄存器供CPU读取有效物理地址信息之后完成有效数据的搬迁,输出数量寄存器供CPU读取数量。
即在本实施例中,所有有效物理地址信息包括PAA1和PAA4,数量为2,这样,CPU不参与查询操作,只需要从输出数量寄存器和输出数据寄存器分别读取数量和有效物理地址信息以完成有效数据的搬迁即可,即通过加载组件和搜索组件来实现搬迁式GC方案的查询部分,减少CPU的参与,达到了加载组件、搜索组件这一整体与CPU并发的效果,以提高数据搬迁效率。
另外,在某一个区块需要回收时,位于同一条带上的所有区块都进行回收,其中,将位于同一条带上的所有区块合称为上述的block stripe,即块条带,则此时,待回收区块信息则可能包括多个区块信息。由此可知,本实施例中待回收区块信息并不限定为单独一个区块信息,而有可能是多个区块信息,这取决于需要回收多少区块信息。
值得说明的是,对于本实施例来说,设定SSD的容量和结构、每一个PAA的数据长度和结构、待回收区块信息和对应的输入掩码是为了便于说明本实施例中,在其他等同实施例中,SSD的容量为128GB或结构channel(通道)/cell(单元)/die/(颗粒)plane(面)的参数分别为2/3/1/2或者待回收区块信息为0x0110000等等只要在现有存在的合理范围内的数值均可。
根据以上,并结合图2至图8,本发明的实施例二为:
一种数据查询方法,与上述实施例一中的数据查询方法相对应,本实施例中为加载组件作为执行主体,具体包括以下步骤:
S11、接收待回收区块信息,从二级映射表中找到与待回收区块信息对应的待加载地址,待加载地址为一级映射表的一级存储地址;
具体的,在本实施例中,当写入信息时,在一级映射表中写入逻辑页地址和物理页地址的对应关系的同时,在二级映射表写入一级存储地址和二级存储地址的映射关系,并且在写入的区块所对应的索引信息上记入这个区块被写入的情况,比如图6中索引信息在二级存储地址写入的对应位上写入1,这样加载组件在需要获取到与待回收区块信息对应的待加载地址时,会根据索引信息上为1的位找到二级映射表上对应的位直接提取一级存储地址,即实现了快速索引,同时,也无需在二级映射表中进行遍历哪些表项与该待回收区块信息有关,只需要根据该待回收区块信息对应的索引信息中哪些位为1就知道哪些表项。
S12、从待加载地址加载待搜索数据,待搜索数据为存储在一级映射表内的一级映射数据;
即在本实施例中,当知道一级存储地址,就可以从一级存储地址加载与待回收区块信息对应的待搜索数据,如图6所示,即加载paan、paa4和paa2上存储的待搜索数据;
S13、将待搜索数据按照预设容量一一分配给多个搜索组件,待搜索数据用于搜索组件提供有效物理地址信息供CPU读取并搬迁有效数据。
具体的,比如预设容量为4KB,若待搜索数据有16KB,则可以分成4份4KB待搜索数据分别发给四个搜索组件,亦可以先给两个搜索组件分配4KB待搜索数据,待他们搜索完毕之后,再分剩余的两份,即根据与加载组件连接的搜索组件的数量进行分配,原则上,对每一个搜索组件按照顺序分配预设容量的待搜索数据,如果搜索组件比较多,则部分搜索组件不参与此次的搜索,若搜索组件比较少,则可能需要进行二轮、三轮等多轮搜索。但是无论如何,多个搜索组件对预设容量的待搜索数据进行并发处理的过程,比单个搜索组件完成所有数据的搜索要更快更准,从而提高数据搬迁效率。
值得说明的是,对应于本实施例中,每一个区块对应的索引信息只记录是否写过,如果该区块上某一物理页地址被写过之后,后续写入新的映射时不指向该物理页地址,则该区块对应的索引信息的位上虽然为1,但是在一级映射表中由于新的映射时不指向该物理页地址,则该区块对应的物理页地址信息上的数据为无效数据,即由一级映射表内是否存在该物理页地址来判断每一个区块上对应的物理页地址上的数据是否为有效数据。
请参照图9,本发明的实施例三为与上述实施例一中的数据查询方法相对应的一种搜索组件1,包括:
输入块寄存器11用于接收待回收区块信息;
输入数据寄存器12用于接收加载组件发送的待搜索数据,待搜索数据为加载组件2从二级映射表中找到的与待回收区块信息对应的一级映射数据,一级映射数据为存储在一级映射表内的数据,一级映射表内存储逻辑页地址和物理页地址的映射关系,二级映射表内存储二级存储地址和一级映射表的一级存储地址的映射关系;
第一处理器13用于根据待搜索数据和待回收区块信息得到有效物理地址信息,存储所有有效物理地址信息至输出数据寄存器14;
输出数据寄存器14用于供CPU读取有效物理地址信息之后完成有效数据的搬迁。
请参照图10,本发明的实施例四为与上述实施例一中的数据查询方法相对应的一种加载组件2,包括:
接收模块21用于接收待回收区块信息,从二级映射表中找到与待回收区块信息对应的待加载地址,待加载地址为一级映射表的一级存储地址,一级映射表内存储逻辑页地址和物理页地址的映射关系,二级映射表内存储二级存储地址和一级映射表的一级存储地址的映射关系;
加载模块22用于从待加载地址加载待搜索数据,待搜索数据为存储在一级映射表内的一级映射数据;
发送模块23用于将待搜索数据按照预设容量一一分配给多个搜索组件1,待搜索数据用于多个并行处理的搜索组件1提供有效物理地址信息供CPU读取并搬迁有效数据。
本发明的实施例五为与上述实施例一或二中的数据查询方法对应的一种计算机可读存储介质,其上存储有计算机程序,计算机程序存储有如上实施例一或二中的数据查询方法。
请参照图11,本发明的实施例六为与上述实施例一中的数据查询方法相对应的一种搜索组件1,包括第一存储器15、第一处理器13及存储在第一存储器15上并可在第一处理器13上运行的第一计算机程序,其中,第一处理器13执行第一计算机程序时实现如上述实施例一中的数据查询方法。
请参照图12,本发明的实施例七为与上述实施例二中的数据查询方法相对应的一种加载组件2,包括第二存储器25、第二处理器24及存储在第二存储器25上并可在第二处理器24上运行的第二计算机程序,其中,第二处理器24执行第二计算机程序时实现如上述实施例二中的数据查询方法。
在本申请所提供的七个实施例中,应该理解到,所揭露的方法、组件以及存储介质,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
综上所述,本发明提供的一种数据查询方法、加载组件、搜索组件和存储介质,由加载组件通过二级映射表和索引信息快速找到要回收的区块在一级映射表中所对应的待加载地址,从一级映射表的待加载地址中加载一级映射数据作为待搜索数据,将待搜索数据按照预设容量分配给多个搜索组件,由多个搜索组件并发处理所接收到的待搜索数据,通过与待回收区块信息所对应的输入掩码进行位与,得到待搜索数据中每一个物理地址信息的区块信息,以快速且准确的搜索到有效物理地址信息,并提供输出数据寄存器和输出数量寄存器供CPU读取有效物理地址信息之后完成有效数据的搬迁。即通过加载组件和搜索组件来实现搬迁式GC方案的查询部分,减少CPU的参与,达到了加载组件、搜索组件这一整体与CPU并发的效果;同时一个加载组件同时与多个搜索组件协同处理,使得并行处理的每一个搜索组件只需要完成预设容量即可,从而使得加载组件和搜索组件之间也能达到并发的效果,以大大提高数据搬迁效率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种数据查询方法,其特征在于,包括步骤:
接收待回收区块信息以及加载组件发送的待搜索数据,所述待搜索数据为所述加载组件根据索引信息和二级映射表得到的与所述待回收区块信息对应的一级映射数据,所述一级映射数据为存储在一级映射表内的数据,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系,所述索引信息按位保存每一个区块引用的二级映射表项索引,通过查询待回收区块信息所对应的索引信息,以定位到二级映射表内的二级存储地址上与待回收区块信息相对应的一级存储地址;
根据所述待搜索数据和所述待回收区块信息得到有效物理地址信息;
存储所有所述有效物理地址信息至输出数据寄存器,所述输出数据寄存器供CPU读取所述有效物理地址信息之后完成有效数据的搬迁。
2.根据权利要求1所述的一种数据查询方法,其特征在于,所述根据所述待搜索数据和所述待回收区块信息得到有效物理地址信息具体包括以下步骤:
获取所述待回收区块信息和所述待回收区块信息所对应的输入掩码;
将所述待搜索数据中每一个物理地址信息与所述输入掩码进行位与,得到所述待搜索数据中每一个物理地址信息的区块信息;
将所述待搜索数据中每一个物理地址信息的区块信息与所述待回收区块信息进行异或;
将所述待搜索数据中异或结果为0的所有物理地址信息作为有效物理地址信息。
3.根据权利要求1所述的一种数据查询方法,其特征在于,所述存储所有所述有效物理地址信息之后还包括以下步骤:
统计所有所述有效物理地址信息的数量至输出数量寄存器,所述输出数量寄存器供CPU读取数量。
4.一种数据查询方法,其特征在于,包括步骤:
接收待回收区块信息,从二级映射表中找到与所述待回收区块信息对应的待加载地址,所述待加载地址为一级映射表的一级存储地址,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系;
从所述待加载地址加载待搜索数据,所述待搜索数据为存储在一级映射表内的一级映射数据;
将所述待搜索数据按照预设容量一一分配给多个搜索组件,所述待搜索数据用于多个并行处理的所述搜索组件提供有效物理地址信息供CPU读取并搬迁有效数据;
所述从二级映射表中找到与所述待回收区块信息对应的待加载地址具体包括以下步骤:
获取所述待回收区块信息所对应的索引信息,按照所述索引信息中数据为1的位在所述二级映射表的对应位上读取待加载地址,所述索引信息按位保存每一个区块引用的二级映射表项索引。
5.一种搜索组件,其特征在于,包括:
输入块寄存器用于接收待回收区块信息;
输入数据寄存器用于接收加载组件发送的待搜索数据,所述待搜索数据为所述加载组件根据索引信息和二级映射表得到的与所述待回收区块信息对应的一级映射数据,所述一级映射数据为存储在一级映射表内的数据,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系,所述索引信息按位保存每一个区块引用的二级映射表项索引,通过查询待回收区块信息所对应的索引信息,以定位到二级映射表内的二级存储地址上与待回收区块信息相对应的一级存储地址;
第一处理器用于根据所述待搜索数据和所述待回收区块信息得到有效物理地址信息,存储所有所述有效物理地址信息至输出数据寄存器;
输出数据寄存器用于供CPU读取所述有效物理地址信息之后完成有效数据的搬迁。
6.一种加载组件,其特征在于,包括:
接收模块用于接收待回收区块信息,从二级映射表中找到与所述待回收区块信息对应的待加载地址,所述待加载地址为一级映射表的一级存储地址,所述一级映射表内存储逻辑页地址和物理页地址的映射关系,所述二级映射表内存储二级存储地址和所述一级映射表的一级存储地址的映射关系;
所述从二级映射表中找到与所述待回收区块信息对应的待加载地址具体包括以下步骤:获取所述待回收区块信息所对应的索引信息,按照所述索引信息中数据为1的位在所述二级映射表的对应位上读取待加载地址,所述索引信息按位保存每一个区块引用的二级映射表项索引;
加载模块用于从所述待加载地址加载待搜索数据,所述待搜索数据为存储在一级映射表内的一级映射数据;
发送模块用于将所述待搜索数据按照预设容量一一分配给多个搜索组件,所述待搜索数据用于多个并行处理的所述搜索组件提供有效物理地址信息供CPU读取并搬迁有效数据。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序存储有如权利要求1-4任意一项所述的数据查询方法。
8.一种搜索组件,包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,其特征在于,所述第一处理器执行所述第一计算机程序时实现如权利要求1-3任意一项所述的数据查询方法。
9.一种加载组件,包括第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的第二计算机程序,其特征在于,所述第二处理器执行所述第二计算机程序时实现如权利要求4所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010337214.3A CN111459919B (zh) | 2020-04-26 | 2020-04-26 | 数据查询方法、加载组件、搜索组件和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010337214.3A CN111459919B (zh) | 2020-04-26 | 2020-04-26 | 数据查询方法、加载组件、搜索组件和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111459919A CN111459919A (zh) | 2020-07-28 |
CN111459919B true CN111459919B (zh) | 2024-06-11 |
Family
ID=71681110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010337214.3A Active CN111459919B (zh) | 2020-04-26 | 2020-04-26 | 数据查询方法、加载组件、搜索组件和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459919B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100091B (zh) * | 2020-09-17 | 2024-06-11 | 深圳佰维存储科技股份有限公司 | 二级映射表数据映射方法、装置、存储介质及电子设备 |
CN112486861B (zh) * | 2020-11-30 | 2024-05-14 | 深圳忆联信息***有限公司 | 固态硬盘映射表数据查询方法、装置、计算机设备及存储介质 |
CN112835520A (zh) * | 2021-01-29 | 2021-05-25 | 深圳忆联信息***有限公司 | 基于映射表动态加载的读请求处理方法及装置 |
CN114625935A (zh) * | 2022-02-28 | 2022-06-14 | 深圳市世强元件网络有限公司 | 场景化搜索的方法及*** |
CN114595486B (zh) * | 2022-05-10 | 2022-08-05 | 深圳佰维存储科技股份有限公司 | 零数据识别方法、装置、可读存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744798A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘的垃圾回收方法 |
CN105243025A (zh) * | 2015-09-25 | 2016-01-13 | 联想(北京)有限公司 | 一种映射表的形成及加载方法、电子设备 |
WO2017054737A1 (zh) * | 2015-09-30 | 2017-04-06 | 华为技术有限公司 | 一种基于大容量固态存储的地址映射方法及装置 |
CN108415851A (zh) * | 2018-01-18 | 2018-08-17 | 珠海全志科技股份有限公司 | 一种提升闪存设备启动速度的方法与装置 |
-
2020
- 2020-04-26 CN CN202010337214.3A patent/CN111459919B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744798A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘的垃圾回收方法 |
CN105243025A (zh) * | 2015-09-25 | 2016-01-13 | 联想(北京)有限公司 | 一种映射表的形成及加载方法、电子设备 |
WO2017054737A1 (zh) * | 2015-09-30 | 2017-04-06 | 华为技术有限公司 | 一种基于大容量固态存储的地址映射方法及装置 |
CN108415851A (zh) * | 2018-01-18 | 2018-08-17 | 珠海全志科技股份有限公司 | 一种提升闪存设备启动速度的方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111459919A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459919B (zh) | 数据查询方法、加载组件、搜索组件和存储介质 | |
CN108804350B (zh) | 一种内存访问方法及计算机*** | |
US11874815B2 (en) | Key-value storage device and method of operating the same | |
CN102725752B (zh) | 处理脏数据的方法及装置 | |
US10416900B2 (en) | Technologies for addressing data in a memory | |
JP6147933B2 (ja) | コントローラ、フラッシュメモリ装置、データブロック安定性を識別する方法、及びデータをフラッシュメモリ装置に記憶する方法 | |
US11237980B2 (en) | File page table management technology | |
US20150113230A1 (en) | Directory storage method and query method, and node controller | |
US20100228914A1 (en) | Data caching system and method for implementing large capacity cache | |
US7870122B2 (en) | Self-tuning index for flash-based databases | |
CN111832065A (zh) | 使用电路实现的软件和用于密钥-值存储的方法 | |
CN105917303B (zh) | 一种控制器、识别数据块稳定性的方法和存储*** | |
CN113835639B (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
CN107590077B (zh) | 一种Spark负载访存行为追踪方法及装置 | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
CN115658588B (zh) | 一种axi总线的id压缩装置及方法 | |
CN115934583A (zh) | 分级缓存方法、装置及*** | |
CN107765992B (zh) | 一种处理数据的方法和装置 | |
CN111651400B (zh) | 一种具有匹配查询索引结构的存储空间访问方法及*** | |
CN111796757B (zh) | 一种固态硬盘缓存区管理方法和装置 | |
CN113126908A (zh) | 被配置为支持多流的存储装置及其操作方法 | |
CN108139980A (zh) | 用于合并存储器页的方法和存储器合并功能 | |
CN116383098B (zh) | 地址索引方法、装置、可读存储介质及电子设备 | |
CN109165172B (zh) | 缓存数据处理方法及相关设备 | |
US11409665B1 (en) | Partial logical-to-physical (L2P) address translation table for multiple namespaces |
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 | ||
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 6th floors of No.4 factory building of tongfuyu industrial city, Taoyuan Street, Nanshan District, Shenzhen City, Guangdong Province Applicant before: BIWIN STORAGE TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |