CN115185858A - 地址映射表的处理方法、装置和存储设备 - Google Patents

地址映射表的处理方法、装置和存储设备 Download PDF

Info

Publication number
CN115185858A
CN115185858A CN202211100859.0A CN202211100859A CN115185858A CN 115185858 A CN115185858 A CN 115185858A CN 202211100859 A CN202211100859 A CN 202211100859A CN 115185858 A CN115185858 A CN 115185858A
Authority
CN
China
Prior art keywords
mapping table
processing
mapping
level
level 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
Application number
CN202211100859.0A
Other languages
English (en)
Other versions
CN115185858B (zh
Inventor
修宸
张博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongguancun Technology Leasing Co ltd
Original Assignee
Beijing Tenafei Electronic Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Tenafei Electronic Technology Co ltd filed Critical Beijing Tenafei Electronic Technology Co ltd
Priority to CN202211100859.0A priority Critical patent/CN115185858B/zh
Publication of CN115185858A publication Critical patent/CN115185858A/zh
Application granted granted Critical
Publication of CN115185858B publication Critical patent/CN115185858B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本公开提供了一种地址映射表的处理方法、装置和存储设备,涉及存储技术领域。其中,地址映射表的处理方法包括:基于多处理架构配置对多级映射表的映射式处理方式;基于映射式处理方式对多级映射表进行处理,其中,多级映射表分别存储在具有不同操作延时的存储空间中,在多级映射表中,上一级映射表存储相邻的下一级映射表的物理地址,多级映射表中的最下一级映射表存储单块数据的L2P映射表。通过本公开的技术方案,基于多处理架构配置出的对应的映射式处理方式,能够更高效地对一个总任务中多个操作延时不同的子任务并行处理,在提升存储器的寻址效率的同时,实现对映射表以及数据读写的效率优化。

Description

地址映射表的处理方法、装置和存储设备
技术领域
本公开涉及存储技术领域,尤其涉及一种地址映射表的处理方法、装置和存储设备。
背景技术
固态硬盘(SSD,Solid State Drive)是由控制器和存储芯片阵列组成的非挥发性数据存储装置,而对固态硬盘中的存储芯片的数据读写依赖于其物理特性,因此可以通过存储L2P(logic to physical)映射表,以基于逻辑地址和物理地址之间的映射关系,将基于控制器的文件系统提供的逻辑地址转换成存储芯片的物理地址,从而实现对存储芯片的寻址操作,但是目前存储芯片针对多级映射的寻址效率仍有待提高。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种地址映射表的处理方法、装置、存储设备和计算机可读存储介质,至少在一定程度上克服相关技术中存储芯片的寻址效率仍有待提高的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种地址映射表的处理方法,包括:基于多处理架构配置对多级映射表的映射式处理方式;基于所述映射式处理方式对所述多级映射表进行处理,其中,所述多级映射表分别存储在具有不同操作延时的存储空间中,在所述多级映射表中,上一级映射表存储相邻的下一级映射表的物理地址,所述多级映射表中的最下一级映射表存储单块数据的L2P映射表。
在本公开的一个实施例中,所述多处理架构包括对称多处理结构,所述基于多处理架构配置对多级映射表的映射式处理方式包括:采用所述对称多处理结构中的一个处理器处理所述多级映射表中的第一级映射表;采用所述对称多处理结构的所有处理器基于多级映射对应规则对所述多级映射表中的其它层级的映射表进行寻址分配,以配置出所述映射式处理方式。
在本公开的一个实施例中,所述多处理架构包括非对称多处理结构,所述基于多处理架构配置对多级映射表的映射式处理方式包括:采用所述非对称多处理结构中的一个处理器处理所述多级映射表中的第一级映射表;采用所述非对称多处理结构中的其它处理器基于多级映射对应规则对所述多级映射表中的其它层级的映射表进行寻址分配,以配置出所述映射式处理方式。
在本公开的一个实施例中,所述基于所述映射式处理方式对所述多级映射表进行处理包括:基于所述映射式处理方式执行所述多级映射表的读写操作。
在本公开的一个实施例中,所述基于所述映射式处理方式对所述多级映射表进行处理包括:响应于对所述单块数据的读取操作,确定所述单块数据的读取数量;基于所述多处理架构对所述读取数量进行均分处理;基于所述映射式处理方式对均分处理结果执行所述多级映射表的读取操作,确定对应的L2P映射表,以基于所述L2P映射表将接收到的逻辑地址映射成存储所述单块数据的存储物理地址。
在本公开的一个实施例中,所述基于所述映射式处理方式对多级映射表进行处理包括:检测到存储器中具有垃圾对象,基于所述映射式处理方式执行所述多级映射表的读取操作,以读取所述垃圾对象;对读取的所述垃圾对象进行重写操作;以及基于所述重写操作的写入结果,更新所述多级映射表。
在本公开的一个实施例中,所述基于所述映射式处理方式对多级映射表进行处理包括:响应于用户数据的写入操作,确定所述写入操作对应的物理地址;基于所述写入操作对应的物理地址所在的逻辑单元号LUN的奇偶类型和所述多处理架构,确定处理所述写入操作的处理器;以及基于对所述用户数据的写入结果,得到写入的单块数据,以基于所述写入的单块数据和所述映射式处理方式更新所述多级映射表。
在本公开的一个实施例中,所述基于多级映射对应规则对所述多级映射表中的其 它层级的映射表进行寻址分配包括:基于参与寻址分配的处理器数量确定寻址分配间隔; 基于所述寻址分配间隔和相邻层级之间对应的映射地址进行寻址均分,以对所述其它层级 的映射表进行寻址分配,其中,所述间隔均分式的寻址分配方式为将编号为a×n+i-1的映 射表分配给第i个处理器,a为参与寻址分配的处理器数量,
Figure 943417DEST_PATH_IMAGE001
,i为 对所述其它层级的映射表进行寻址分配的处理器序号,m为所述其它层级的层级序号。
在本公开的一个实施例中,所述多级映射表分别存储在具有不同所述操作延时的缓存中;或所述多级映射表分别存储在具有不同所述操作时延的缓存与闪存中;或所述多级映射表分别存储在具有不同所述操作时延的闪存中。
根据本公开的另一个方面,提供一种地址映射表的处理装置,包括:配置模块,用于基于多处理架构配置对多级映射表的映射式处理方式;处理模块,用于基于所述映射式处理方式对所述多级映射表进行处理,其中,所述多级映射表分别存储在具有不同操作延时的存储空间中,在所述多级映射表中,上一级映射表存储相邻的下一级映射表的物理地址,所述多级映射表中的最下一级映射表存储单块数据的L2P映射表。
根据本公开的再一个方面,提供一种存储设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的地址映射表的处理方法。
根据本公开的又一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一项的地址映射表的处理方法。
本公开的实施例所提供的地址映射表的处理方案,针对分别存储在具有不同操作延时的存储空间中的多级映射表,通过基于包括多处理器的多处理架构,配置对应的对多级映射表的映射式处理方式,以进行任务分配,以得到对应的映射式处理方式,基于映射式处理方式能够更高效地对一个总任务中多个操作延时不同的子任务并行处理,在提升存储器的寻址效率的同时,实现对映射表以及数据读写的效率优化。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开实施例中一种计算机系统的示意图;
图2示出本公开实施例中一种地址映射表的处理方法的流程图;
图3示出本公开实施例中另一种地址映射表的处理方法的流程图;
图4示出本公开实施例中再一种地址映射表的处理方法的流程图;
图5示出本公开实施例中一种地址映射表的映射结构示意图;
图6示出本公开实施例中另一种地址映射表的映射结构示意图;
图7示出本公开实施例中又一种地址映射表的处理方法的流程图;
图8示出本公开实施例中又一种地址映射表的处理方法的流程图;
图9示出本公开实施例中又一种地址映射表的处理方法的流程图;
图10示出本公开实施例中一种地址映射表的处理装置的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
为了便于理解,下面首先对本申请涉及到的几个名词进行解释。
物理地址:在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址。
逻辑地址:由CPU生成的地址,指在计算机体系结构中是指应用程序角度看到的内存单元(memory cell)、存储单元(storage element)、网络主机(network host)的地址。
垃圾回收(Garbage Collection,GC):值将某个闪存块上的有效数据读取出来并重写,然后将该闪存块进行擦除,并得到新的可用闪存块。
LUN(Logical Unit Number,逻辑单元号):用于对存储器的存储空间进行编码。
本申请实施例提供的方案涉及存储等技术,具体通过如下实施例进行说明。
图1示出了根据本公开实施例的计算机系统的示意性框图。计算机系统包括主机110、控制系统120和存储器130。以固态硬盘为例,固态硬盘包括存储器控制器和闪存芯片,例如,固态硬盘包括图中所示的控制系统120和存储器130,存储器130 的存储介质可以为闪存芯片阵列。
控制系统120的主机接口121连接至主机110,以传输指令,处理器122可以为固态硬盘的前端处理器,并与主机接口121、缓存控制器123和存储器控制器124相连接。
控制系统120中的缓存芯片包括SRAM芯片125和DRAM芯片126,例如存储L0映射表和L1映射表。
控制系统120的存储器控制器124连接至存储器130,根据处理器122提供的物理地址对存储器130的相应存储单元进行数据访问操作,该存储器控制器124可以包括耦接的控制单元和存储单元,控制单元用于执行本公开提供的映射表处理方法,存储单元用于存储地址映射关系数据,比如多级映射表。
在本公开中,存储器控制器124的控制单元的架构可以为对称多处理(SymmetricMulti-Processing,SMP)结构和非对称多处理(Asymmetric Multi-Processing)结构。
存储器130包括物理块131和物理块132等构成的闪存芯片阵列,为了提高数据读写性能,控制系统120 的存储器控制器124可以经由多个通道CH0和CH1对存储器130的闪存芯片进行读写,每个通道连接一组闪存芯片,每个闪存芯片包括多个物理块,每个物理块包括多个物理页,对闪存芯片的数据访问操作包括读、写和擦除,由于闪存芯片的物理特性,数据操作的基本单位可以是物理页,擦除操作的基本单位可以是物理块, 一个物理页大小为8KB或4KB,一个物理块拥有256个物理页,一个逻辑单元号LUN有4096个物理块。
在主机110执行数据操作时,控制系统120接收主机110发送的指令,控制系统120将指令中的逻辑地址映射成物理地址,该物理地址用于表征存储器130中的位置。
下面,将结合附图及实施例对本示例实施方式中的地址映射表的处理方法的各个步骤进行更详细的说明。
图2示出本公开实施例中一种地址映射表的处理方法流程图。本公开实施例提供的方法可以由任意具备计算处理能力的存储设备执行。
如图2所示,存储设备执行地址映射表的处理方法,包括以下步骤:
步骤S202,基于多处理架构配置对多级映射表的映射式处理方式。
其中,多处理架构具体为图1中的存储器控制器124的架构,包括但不限于对称多处理(Symmetric Multi-Processing,SMP)结构和非对称多处理(Asymmetric Multi-Processing)结构。
映射式处理方式包括但不限于对多级映射表中具有映射关系的映射表的读取、写入以及更新操作等采用同一个处理器执行。
另外,多级映射表为映射结构大于或等于二级的映射表。
步骤S204,基于处理方式对多级映射表进行处理,其中,多级映射表分别存储在具有不同操作延时的存储空间中,在多级映射表中,上一级映射表存储相邻的下一级映射表的物理地址,多级映射表中的最下一级映射表存储单块数据的L2P映射表。
其中,操作延时包括写操作延时和读操作延时。
另外,下级映射表的容量是相邻的上级映射表的容量1024倍。
在本公开的一个实施例中,作为对多级映射表分别存储在具有不同操作延时的存储空间中的具体的设置方式,多级映射表可以分别存储在具有不同操作延时的缓存中;或多级映射表分别存储在具有不同操作时延的缓存与闪存中;或多级映射表分别存储在具有不同操作时延的闪存中。
基于上述的多级映射表的存储方式,由于对不同的存储空间的操作延时不同,因此在将一个总任务中划分出多个子任务时,多个子任务的操作延时不同。
具体地,处理器通过逻辑地址读写数据,闪存通过物理地址读取数据,而逻辑地址与物理地址之间具有一对一的L2P(logic to physical)映射关系,为了将接收到的逻辑地址映射成存储器的物理地址,需要获取L2P映射表,基于L2P映射表中的映射关系,获得对应的物理地址。
以三级映射表为例,三级映射表具体包括第一级映射表L0、第二级映射表L1和第三级映射表L2,即最下一级映射表,在第三级映射表L2中,一张映射表通常由1024个L2P构成,每个L2P分别存储单块数据。
可以将L0、L1、L2级别的映射表都存储在具有不同操作延时的非易失性闪存中。
或将L2级别的映射表存储在非易失性闪存中,而在运行中将L0、L1级别的映射表缓存在易失性的cache中。
或将L1和L2级别的映射表存储在非易失性闪存中,而在运行中将L0级别的映射表缓存在易失性的cache中。
或将L0、L1、L2级别的映射表都存储在具有不同操作延时的易失性的cache中。
例如,如图1所示,cache可以位于SRAM125或DRAM126中,也可以位于存储器控制器124中。
多级映射表的读取流程包括:首先读取第一级映射表L0,以从第一级映射表L0中获取某个第二级映射表L1的物理地址,然后读取该第二级映射表L1的物理地址,进一步获取某个第三级映射表L2的物理地址,读取该第三级映射表L2的物理地址,获取某一个L2P数据,该L2P即为读写数据所需的L2P,从而能够基于L2P确定对应的存储器中的物理地址。
结合图1描述多级映射表的读取流程,存储器控制器124经由处理器122通过缓存控制器123读取第一级映射表L0和第二级映射表L1,结合闪存中的第三级映射表L2以获得L2P映射表,基于L2P映射表将从主机110接收到的逻辑地址映射成存储器130的物理地址。
另外,本领域的技术人员能够理解的是,映射表的结构可以不限于三级,将映射表的结构设计为三级是一种较优的实施方式,能够保证较高的存储器的寻址效率。
在该实施例中,针对分别存储在具有不同操作延时的存储空间中的多级映射表,通过基于包括多处理器的多处理架构,配置对应的对多级映射表的映射式处理方式,以进行任务分配,以得到对应的映射式处理方式,基于映射式处理方式能够更高效地对一个总任务中多个操作延时不同的子任务进行并行处理,在提升存储器的寻址效率的同时,实现对映射表以及数据读写的效率优化。
如图3所示,在本公开的一个实施例中,以对称多处理结构SMP作为多处理架构,基于多处理架构配置对多级映射表的映射式处理方式的一种具体实现方式,包括:
步骤S302,采用对称多处理结构中的一个处理器处理多级映射表中的第一级映射表。
步骤S304,采用对称多处理结构的所有处理器基于多级映射对应规则对多级映射表中的其它层级的映射表进行寻址分配,以配置出映射式处理方式。
其中,存储有L2P映射表的最下一级映射为SMP结构的最小操作单位,SMP结构包括2n个处理器,n为正整数。
多级映射对应规则指上下级对应的映射表由同一CPU连续执行的规则。
具体地,基于对称多处理结构的所有处理器对多级映射表中的其它层级的映射表进行寻址分配可以基于对称多处理结构的处理器数量对映射表的页表项(每个页表为一个内存页,每个内存页以4KB的大小被分为1024项)进行分配,每2n项为一组,分别对应2n个处理器,比如前四项分别为0、1、2和3,则0对应于第一个处理器,1对应于第二个处理器,2对应于第三个处理器,3对应于第四个处理器。
在该实施例中,由于映射表的操作可能涉及到多个具有映射关系的层级的映射表的修改操作,比如除了第一级映射表之外的其它层级的映射表的操作,为了使一项完整的映射表的修改过程采用同一处理器执行,可以直接基于SMP结构的处理器数量对多级映射表中的其它层级的映射表进行寻址均分,使上下级对应的映射表能够根据简单的多级映射对应规则,在同一CPU中连续执行,防止了在多级映射表处理时多个CPU之间相互通信造成的性能和效率的损失,以提升寻址效率。
作为一种具体的实施方式,以包括两个处理器的SMP结构修改三级映射表(L0-L1-L2)为例,假设修改映射表的操作涉及两个步骤,即修改L2中的映射表,以及L1中对应的该应映射表的物理地址,使用上述操作可以使L2以及其相关的L1,通过以2均分的操作进行寻址,可以使得同一CPU 更加简单快速的寻址到L2以及关联的L1,有利于更快的完成完整的映射表的修改操作。
如图4所示,在本公开的一个实施例中,以非对称多处理结构AMP作为多处理架构,基于多处理架构配置对多级映射表的映射式处理方式的另一种具体实现方式,包括:
步骤S402,采用非对称多处理结构中的一个处理器处理多级映射表中的第一级映射表。
步骤S404,采用非对称多处理结构中的其它处理器基于多级映射对应规则对多级映射表中的其它层级的映射表进行寻址分配,以配置出映射式处理方式。
具体地,以包括5个处理器(包括CPU0至CPU4)的AMP结构处理三级映射表为例,可以采用CPU0负责管理L0级别的映射表,采用CPU1至CPU4并行地管理L1或L2级别的映射表。
在该实施例中,由于映射表的操作可能涉及到多个层级的映射表的修改操作,对于具有奇数数量处理器的AMP结构,可以使用其中一个管理第一级映射表,使用剩余的偶数数量处理器管理第一级映射表之外的其它层级的映射表的操作,也能够实现基于偶数数量处理器对多级映射表中的其它层级的映射表进行寻址均分,防止了在多级映射表处理时多个CPU之间相互通信造成的性能和效率的损失,以提升寻址效率。
在本公开的一个实施例中,步骤S204中,基于映射式处理方式对多级映射表进行处理的一种实现方式包括:
基于映射式处理方式执行多级映射表的读写操作。
在本公开的一个实施例中,作为步骤304和步骤404中的基于多级映射对应规则对多级映射表中的其它层级的映射表进行寻址分配的一种具体实现方式,包括:
基于参与寻址分配的处理器数量确定寻址分配间隔。
具体地,假设参与寻址分配的处理器数量为2,则寻址分配间隔为1,假设参与寻址分配的处理器数量为4,则寻址分配间隔为3。
基于寻址分配间隔和相邻层级之间对应的映射地址进行寻址均分,以对其它层级的映射表进行寻址分配。
间隔均分式的寻址分配方式为将编号为a×n+i-1的映射表分配给第i个处理器, 其中,a为参与寻址分配的处理器数量,a为偶数,
Figure 188453DEST_PATH_IMAGE001
,i为对其它层级 的映射表进行寻址分配的处理器序号,i=1,……,a,m为其它层级的层级序号。
例如,假设a=4,则编号为0的映射表分配给第一个处理器处理,将编号为1的映射表分配给第二个处理器处理,将编号为2的映射表分配给第三个处理器处理,将编号为3的映射表分配给第四个处理器,将编号为4的映射表分配给第一个处理器,将编号为5的映射表分配给第二个处理器处理,将编号为6的映射表分配给第三个处理器处理,将编号为7的映射表分配给第四个处理器,依次分配。
具体地,假设a=4,则对于第一个处理器,i=1,对应的第二级(L1)映射表(m=2)的编号包括(0、4、……、4092),对应的第三级(L2)映射表(m=3)的编号包括(0、4、……、4092×1024+4092)。
在该实施例中,通过采用间隔均分式的寻址分配方式,即将处理器的数量作为分配的间隔量,进行间隔分配,在实现多个处理器对映射表并行处理,即使各处理器的工作负载更均衡的同时,有利于提高寻址操作的便捷性和高效性,并且还能够使得数据所针对的指令之间的去耦合性更好。
另外,本领域的技术人员能够理解的是,基于多级映射对应规则对多级映射表中的其它层级的映射表进行寻址分配的另一种具体实现方式为将连续的2n个映射表分配给同一个处理器处理,比如将0、1、2、3、…、1023分配给第一处理器,将1024~2047分配给第二个处理器处理。
如图5所示,以包括两个处理器的SMP结构修改三级映射表(L0-L1-L2)的处理过程为例,L0映射表包括两个物理地址(0和1),每个物理地址对应于L1映射表中的1024个地址(0对应于L1中的0,2,……,2046,1对应于L1中的1,3,……,2047),L1映射表中的每个地址(0~2047)又对应于L2映射表中的1024个地址,L2映射表中的每个地址(0~ 2046×1024+2047)又包括1024个L2P映射关系,每个映射关系即对应于存储器中的一个物理地址,通过将偶数编号的映射配置给第一处理器处理,将奇数编号的配置给第二个处理器处理,以实现并行的寻址操作。
如图6所示,以包括四个处理器(CPU0只CPU3)的SMP结构修改三级映射表(L0-L1-L2)为例,L0映射表包括四个物理地址,每个物理地址对应于L1映射表中的1024个地址,L1映射表中的每个地址(0~4095)又对应于L2映射表中的1024个地址,L2映射表中的每个地址(4092×1024+4095)又包括1024个L2P映射关系,每个映射关系即对应于存储器中的一个物理地址,如图6所示,将L0层级的4个地址分配给四个处理器中的任意一个处理,将L1层级中的0,4,……2046,以及具有映射关系的L2层级中的0,4,……4092,4096,4100,……,8188,……,4092×1024,4092×1024+4,……,4092×1024+4092,分配给CPU0处理,将L1层级中的1,5,……4093,以及具有映射关系的L2层级中的1,5,……4093,……,分配给CPU1处理,将L1层级中的2,6,……4094,以及具有映射关系的L2层级中的2,6,……4094,……,分配给CPU2处理,将L1层级中的3,7,……4095,以及具有映射关系的L2层级中的3,7,……4095,……,4092×1024+3,4092×1024+7,……,4092×1024+4095,分配给CPU3处理。
如图7所示,在本公开的一个实施例中,步骤S204中,基于映射式处理方式对多级映射表进行处理的另一种实现方式,包括:
步骤S702,响应于对单块数据的读取操作,确定单块数据的读取数量。
步骤S704,基于多处理架构对读取数量进行均分处理。
步骤S706,基于映射式处理方式对均分处理结果执行多级映射表的读取操作,确定对应的L2P映射表,以基于L2P映射表将接收到的逻辑地址映射成存储单块数据的存储器的物理地址。
如图8所示,在本公开的一个实施例中,步骤S204中,基于映射式处理方式对多级映射表进行处理的再一种实现方式,包括:
步骤S802,检测到存储器中具有垃圾对象,基于映射式处理方式执行多级映射表的读取操作,以读取垃圾对象。
步骤S804,对读取的垃圾对象进行重写操作。
步骤S806,基于重写操作的写入结果和映射式处理方式,更新多级映射表。
具体地,读操作包括但不限于Host读操作和GC(垃圾回收)的对象读操作。
对于Host读操作,在接收到主机发送的对对单块数据的读取操作时,基于读写请求的数量和处理器的数量进行均分处理,然后基于上述的多级映射表的读取操作进行对应于读写请求对应的寻址操作,确定与读写请求对应的存储器中的物理地址,以执行数据读取操作。
对于GC读操作,则不需要执行基于读写请求的数量和处理器的数量进行均分处理的操作,即相对于上述的基于多级映射对应规则对多级映射表中的其它层级的映射表进行寻址分配的基础上,进一步基于寻址得到的物理地址进行数据读取的操作。
在该实施例中,对于Host读操作,在接收到主机110发送的数据读取请求时,通过基于处理器的数量对读写请求进行均分处理,实现了基于多个处理器的对读取请求的并行处理,并进一步基于接收到的主机发送的所要读取数据的逻辑地址,结合基于多个处理器对多级映射表的寻址操作,得到L2P映射表,以基于L2P映射表查询到与逻辑地址对应的存储器的物理地址,执行数据读取操作,而对于GC读取操作,与Host读操作相比,省去了基于处理器的数量对读写请求进行均分处理的步骤,以上的读取操作,结合多处理架构,均能够提升读数据的处理效率。
如图9所示,在本公开的一个实施例中,基于映射式处理方式对多级映射表进行处理包括:
步骤S902,响应于用户数据的写入操作,确定写入操作对应的物理地址。
步骤S904,基于写入操作对应的物理地址所在的逻辑单元号LUN的奇偶类型和多处理架构,确定处理写入操作的处理器。
步骤S906,基于对用户数据的写入结果得到写入的单块数据,以基于写入的单块数据更新多级映射表。
在该实施例中,在接收到主机110发送的写入请求时,基于写入请求确定对应的写入地址,以基于写入操作对应的物理地址所在的逻辑单元号LUN的奇偶类型和多处理架构确定处理该写入操作的处理器,并在完成接入操作后,由于新的写入数据占据了存储器中的某些物理地址,则基于L2P关系,需要对L2P映射表进行更新,进一步对相邻两级的映射关系进行更新,以实现多级映射表的更新操作,上述的写入操作的映射式处理方式,也有利于提升数据写入的效率。
以包括2个处理器(CPU0和CPU1)的SMP结构为例,对于偶数LUN的写操作采用CPU0处理,对于奇数LUN则采用CPU1处理。
具体地,在读取操作中,如图1所示,控制系统120以物理页为单位读取用户数据和元数据,以及基于用户数据和元数据获取与逻辑地址相对应的读取数据。在写入操作中,控制系统 120 将指令中的数据生成用户数据和元数据,然后以物理页为单位写入用户数据和元数据。元数据包括除用户数据外的数据,例如,上述的L2P映射表作为元数据也需要写入存储器130中,否则在控制系统120断电时,L2P 映射表不可恢复。
需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图10来描述根据本发明的这种实施方式的地址映射表的处理装置1000。图10所示的地址映射表的处理装置1000仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
地址映射表的处理装置1000以硬件模块的形式表现。地址映射表的处理装置1000的组件可以包括但不限于:配置模块1002,用于基于多处理架构配置对多级映射表的映射式处理方式;处理模块1004,用于基于映射式处理方式对多级映射表进行处理,其中,多级映射表分别存储在具有不同操作延时的存储空间中,在多级映射表中,上一级映射表存储相邻的下一级映射表的物理地址,多级映射表中的最下一级映射表存储单块数据的L2P映射表。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (10)

1.一种地址映射表的处理方法,其特征在于,包括:
基于多处理架构配置对多级映射表的映射式处理方式;
基于所述映射式处理方式对所述多级映射表进行处理,
其中,所述多级映射表分别存储在具有不同操作延时的存储空间中,在所述多级映射表中,上一级映射表存储相邻的下一级映射表的物理地址,所述多级映射表中的最下一级映射表存储单块数据的L2P映射表。
2.根据权利要求1所述的地址映射表的处理方法,其特征在于,所述多处理架构包括对称多处理结构,所述基于多处理架构配置对多级映射表的映射式处理方式包括:
采用所述对称多处理结构中的一个处理器处理所述多级映射表中的第一级映射表;
采用所述对称多处理结构的所有处理器基于多级映射对应规则对所述多级映射表中的其它层级的映射表进行寻址分配,以配置出所述映射式处理方式。
3.根据权利要求1所述的地址映射表的处理方法,其特征在于,所述多处理架构包括非对称多处理结构,所述基于多处理架构配置对多级映射表的映射式处理方式包括:
采用所述非对称多处理结构中的一个处理器处理所述多级映射表中的第一级映射表;
采用所述非对称多处理结构中的其它处理器基于多级映射对应规则对所述多级映射表中的其它层级的映射表进行寻址分配,以配置出所述映射式处理方式。
4.根据权利要求1所述的地址映射表的处理方法,其特征在于,所述基于所述映射式处理方式对所述多级映射表进行处理包括:
基于所述映射式处理方式执行所述多级映射表的读写操作。
5.根据权利要求1所述的地址映射表的处理方法,其特征在于,所述基于所述映射式处理方式对所述多级映射表进行处理包括:
响应于对所述单块数据的读取操作,确定所述单块数据的读取数量;
基于所述多处理架构对所述读取数量进行均分处理;
基于所述映射式处理方式对均分处理结果执行所述多级映射表的读取操作,确定最下一级映射表存储对应的所述L2P映射表,以基于所述L2P映射表将接收到的逻辑地址映射成存储所述单块数据的存储物理地址。
6.根据权利要求1所述的地址映射表的处理方法,其特征在于,所述基于所述映射式处理方式对多级映射表进行处理包括:
响应于用户数据的写入操作,确定所述写入操作对应的物理地址;
基于所述写入操作对应的物理地址所在的逻辑单元号LUN的奇偶类型和所述多处理架构,确定处理所述写入操作的处理器;以及
基于对所述用户数据的写入结果,得到写入的单块数据,以基于所述写入的单块数据和所述映射式处理方式更新所述多级映射表。
7.根据权利要求1所述的地址映射表的处理方法,其特征在于,所述基于所述映射式处理方式对多级映射表进行处理包括:
检测到存储器中具有垃圾对象,基于所述映射式处理方式执行所述多级映射表的读取操作,以读取所述垃圾对象;
对读取的所述垃圾对象进行重写操作;
以及基于所述重写操作的写入结果,更新所述多级映射表。
8.根据权利要求2或3所述的地址映射表的处理方法,其特征在于,所述基于多级映射对应规则对所述多级映射表中的其它层级的映射表进行寻址分配包括:
基于参与寻址分配的所述处理器的数量确定寻址分配间隔;
基于所述寻址分配间隔和相邻层级之间对应的映射地址进行寻址均分,以对所述其它层级的映射表进行寻址分配,
其中,所述基于所述寻址分配间隔和相邻层级之间对应的映射地址进行寻址均分为将 编号为a×n+i-1的映射表分配给第i个处理器,a为参与寻址分配的处理器数量,
Figure 760418DEST_PATH_IMAGE001
,i为对所述其它层级的映射表进行寻址分配的处理器序号,m为所 述其它层级的层级序号。
9.一种地址映射表的处理装置,其特征在于,包括:
配置模块,用于基于多处理架构配置对多级映射表的映射式处理方式;
处理模块,用于基于所述映射式处理方式对所述多级映射表进行处理,
其中,所述多级映射表分别存储在具有不同操作延时的存储空间中,在所述多级映射表中,上一级映射表存储相邻的下一级映射表的物理地址,所述多级映射表中的最下一级映射表存储单块数据的L2P映射表。
10.一种存储设备,其特征在于,包括:
存储器控制器,包括多个处理器,所述多个处理器被配置为对称多处理结构或非对称多处理结构;以及
存储器,用于存储所述多个处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求 1~8中任意一项所述的地址映射表的处理方法。
CN202211100859.0A 2022-09-09 2022-09-09 地址映射表的处理方法、装置和存储设备 Active CN115185858B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211100859.0A CN115185858B (zh) 2022-09-09 2022-09-09 地址映射表的处理方法、装置和存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211100859.0A CN115185858B (zh) 2022-09-09 2022-09-09 地址映射表的处理方法、装置和存储设备

Publications (2)

Publication Number Publication Date
CN115185858A true CN115185858A (zh) 2022-10-14
CN115185858B CN115185858B (zh) 2023-01-24

Family

ID=83524209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211100859.0A Active CN115185858B (zh) 2022-09-09 2022-09-09 地址映射表的处理方法、装置和存储设备

Country Status (1)

Country Link
CN (1) CN115185858B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115576868A (zh) * 2022-11-24 2023-01-06 苏州浪潮智能科技有限公司 一种多级映射框架、数据操作请求处理方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567244A (zh) * 2011-12-13 2012-07-11 清华大学 闪存和磁盘转换存取方法
US20130086353A1 (en) * 2011-09-30 2013-04-04 John Colgrove Variable length encoding in a storage system
CN103440206A (zh) * 2013-07-25 2013-12-11 记忆科技(深圳)有限公司 一种固态硬盘及其混合映射方法
CN108121685A (zh) * 2017-08-07 2018-06-05 鸿秦(北京)科技有限公司 一种嵌入式多核cpu固件运行方法
CN111651124A (zh) * 2020-06-03 2020-09-11 深圳忆联信息系统有限公司 Ssd映射表多核分区并行重建方法、装置、设备及介质
CN112328533A (zh) * 2020-11-09 2021-02-05 哲库科技(上海)有限公司 多核处理系统及其核间通信方法、存储介质
CN113419975A (zh) * 2021-06-11 2021-09-21 联芸科技(杭州)有限公司 存储器的控制系统及地址映射方法和地址映射装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130086353A1 (en) * 2011-09-30 2013-04-04 John Colgrove Variable length encoding in a storage system
CN102567244A (zh) * 2011-12-13 2012-07-11 清华大学 闪存和磁盘转换存取方法
CN103440206A (zh) * 2013-07-25 2013-12-11 记忆科技(深圳)有限公司 一种固态硬盘及其混合映射方法
CN108121685A (zh) * 2017-08-07 2018-06-05 鸿秦(北京)科技有限公司 一种嵌入式多核cpu固件运行方法
CN111651124A (zh) * 2020-06-03 2020-09-11 深圳忆联信息系统有限公司 Ssd映射表多核分区并行重建方法、装置、设备及介质
CN112328533A (zh) * 2020-11-09 2021-02-05 哲库科技(上海)有限公司 多核处理系统及其核间通信方法、存储介质
CN113419975A (zh) * 2021-06-11 2021-09-21 联芸科技(杭州)有限公司 存储器的控制系统及地址映射方法和地址映射装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115576868A (zh) * 2022-11-24 2023-01-06 苏州浪潮智能科技有限公司 一种多级映射框架、数据操作请求处理方法及系统

Also Published As

Publication number Publication date
CN115185858B (zh) 2023-01-24

Similar Documents

Publication Publication Date Title
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
CN101784993B (zh) 使用闪存作为存储器的设备及其操作方法
US8412907B1 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
JP2021128582A (ja) メモリシステムおよび制御方法
US8453132B2 (en) System and method for recompiling code based on locality domain and thread affinity in NUMA computer systems
US20050080986A1 (en) Priority-based flash memory control apparatus for XIP in serial flash memory,memory management method using the same, and flash memory chip thereof
US7971026B2 (en) Information processing apparatus and access control method
CN103999060A (zh) 固态存储管理
US8185694B2 (en) Testing real page number bits in a cache directory
KR20220041937A (ko) 메모리 유형에 대한 페이지 테이블 후크
US20130166828A1 (en) Data update apparatus and method for flash memory file system
KR20120068454A (ko) 원격 페이지 폴트 처리 장치 및 그 방법
CN101271383A (zh) 操作数据处理系统的系统、方法以及计算机程序产品
US20070220195A1 (en) Multi-processor system, and method of distributing memory access load in multi-processor system
JP2001051959A (ja) 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード
KR102686749B1 (ko) 맵 스케줄링을 수행하기 위한 스토리지 장치 및 그것을 포함하는 전자 장치
CN111258496A (zh) 动态分配数据路径的装置和方法
US7721047B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
JP2020087470A (ja) データアクセス方法、データアクセス装置、機器及び記憶媒体
CN105094691A (zh) 一种数据操作的方法、设备和系统
CN115185858B (zh) 地址映射表的处理方法、装置和存储设备
US7882327B2 (en) Communicating between partitions in a statically partitioned multiprocessing system
WO2024036985A1 (zh) 存储系统及其计算存储处理器、固体硬盘和数据读写方法
CN113641597A (zh) 管理数据存储的方法及装置以及计算机可读取存储介质
US20080005726A1 (en) Methods and systems for modifying software applications to implement memory allocation

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
TR01 Transfer of patent right

Effective date of registration: 20230704

Address after: 610, Floor 6, Block A, No. 2, Lize Middle Second Road, Chaoyang District, Beijing 100102

Patentee after: Zhongguancun Technology Leasing Co.,Ltd.

Address before: Room 0406, Floor 4, No. 10, Haidian North Second Street, Haidian District, Beijing 100080

Patentee before: Beijing Tenafei Electronic Technology Co.,Ltd.

TR01 Transfer of patent right