CN113094003B - 数据处理方法、数据存储装置及电子设备 - Google Patents
数据处理方法、数据存储装置及电子设备 Download PDFInfo
- Publication number
- CN113094003B CN113094003B CN202110518110.7A CN202110518110A CN113094003B CN 113094003 B CN113094003 B CN 113094003B CN 202110518110 A CN202110518110 A CN 202110518110A CN 113094003 B CN113094003 B CN 113094003B
- Authority
- CN
- China
- Prior art keywords
- address
- data
- mapping table
- storage module
- virtual
- 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
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
- G06F3/064—Management of blocks
-
- 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]
Abstract
本发明涉及存储领域,提供一种数据处理方法、数据存储装置及电子设备。数据存储装置包括控制模块和存储模块,存储模块可以划分为第一存储模块和第二存储模块;控制模块维护第一映射表,第一映射表包括逻辑地址与虚拟块地址的对应关系,存储模块维护第二映射表,第二映射表包括虚拟地址与物理地址的对应关系,物理地址指向第一存模块的地址或者第二存储模块的地址。通过虚拟地址间接建立逻辑地址与物理地址的对应关系,并采用两张表分别记录逻辑地址与虚拟块地址的对应关系,以及虚拟地址与物理地址的对应关系,可以降低维护FTL表的损耗,提高地址管理的效率,提升装置的性能。
Description
技术领域
本发明涉及存储领域,具体而言,涉及一种数据处理方法、数据存储装置及电子设备。
背景技术
现有技术,存储设备在对数据进行读写的过程中,通常需要使用逻辑地址与物理地址的映射关系,目前通常采用FTL表(Flash TranslationLayer,地址转换表)用于维护映射关系,而FTL表较大,不便于维护和管理,并且对存储设备的性能会产生影响。
发明内容
有鉴于此,本发明的目的在于提供一种数据处理方法、数据存储装置及电子设备。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明提供一种数据处理方法,应用于数据存储装置,所述数据存储装置包括第一存储模块和第二存储模块;所述方法包括:
建立第一映射表和第二映射表;所述第一映射表包括逻辑地址与虚拟地址的对应关系;所述第二映射表包括所述虚拟地址与物理地址的对应关系;所述物理地址指向所述第一存储模块的地址或者所述第二存储模块的地址;
根据所述第一映射表和/或所述第二映射表,对数据进行处理。
在可选的实施方式中,所述根据所述第一映射表和/或所述第二映射表,对数据进行处理的步骤,包括:
当接收到写入第一数据的指令时,获取所述第一数据的第一逻辑地址;
根据所述第一映射表,确定与所述第一逻辑地址对应的第一虚拟地址;
根据所述第二映射表,确定与所述第一虚拟地址对应的第一物理地址,所述第一物理地址指向所述第一存储模块的地址;
根据所述第一物理地址,将所述第一数据存储到所述第一存储模块。
在可选的实施方式中,所述根据所述第一映射表,确定与所述第一逻辑地址对应的第一虚拟地址的步骤,包括:
根据所述第一映射表,检查所述第一逻辑地址是否存在对应的有效虚拟地址;
若是,则将所述有效虚拟地址作为所述第一虚拟地址;
若否,则给所述第一逻辑地址分配对应的有效虚拟地址,将所述有效虚拟地址作为所述第一虚拟地址。
在可选的实施方式中,所述根据所述第一映射表和/或所述第二映射表,对数据进行处理的步骤,包括:
当接收到读取第二数据的指令时,获取所述第二数据的第二逻辑地址;
根据所述第一映射表,确定与所述第二逻辑地址对应的第二虚拟地址;
根据所述第二映射表,确定与所述第二虚拟地址对应的第二物理地址;
当所述第二物理地址指向所述第一存储模块的地址时,从所述第一存储模块读取所述第二数据;
当所述第二物理地址指向所述第二存储模块的地址时,从所述第二存储模块读取所述第二数据。
在可选的实施方式中,所述方法还包括:
当所述第一存储模块处于空闲或者达到阈值的情况下,将所述第一存储模块的目标数据搬移到所述第二存储模块;
获取所述目标数据的目标虚拟地址和所述目标数据在所述第二存储模块的目标物理地址;
根据所述目标虚拟地址和所述目标物理地址,更新所述第二映射表。
在可选的实施方式中,所述虚拟地址包括虚拟块编号;所述物理地址包括物理块编号;所述第二映射表包括所述虚拟块编号与所述物理块编号的对应关系和块模式,所述块模式用于标记所述物理块编号是所述第一存储模块的地址或者所述第二存储模块的地址。
第二方面,本发明提供一种数据存储装置,所述装置包括:控制模块和存储模块,所述存储模块划分为第一存储模块和第二存储模块;
所述控制模块,用于维护第一映射表,所述第一映射表包括逻辑地址与虚拟地址的对应关系;
所述存储模块,用于维护第二映射表,所述第二映射表包括所述虚拟地址与物理地址的对应关系;所述物理地址指向第一存储模块的地址或者第二存储模块的地址。
在可选的实施方式中,所述控制模块还用于:
当接收到写入第一数据的指令时,获取所述第一数据的第一逻辑地址;
根据所述第一映射表,确定与所述第一逻辑地址对应的第一虚拟地址;
根据所述第二映射表,确定与所述第一虚拟地址对应的第一物理地址,所述第一物理地址指向所述第一存储模块的地址;
根据所述第一物理地址,将所述第一数据存储到所述第一存储模块。
在可选的实施方式中,所述存储模块还用于:
当所述第一存储模块处于存满的情况下,将所述第一存储模块的目标数据搬移到所述第二存储模块;
获取所述目标数据的目标虚拟地址和所述目标数据在所述第二存储模块的目标物理地址;
根据所述目标虚拟地址和所述目标物理地址,更新所述第二映射表。
第三方面,本发明提供一种电子设备,包括如前述实施方式任意一种所述装置。
本发明实施例提供的数据处理方法、数据存储装置及电子设备。数据存储装置包括控制模块和存储模块,存储模块可以划分为第一存储模块和第二存储模块。控制模块维护第一映射表,第一映射表包括逻辑地址与虚拟块地址的对应关系,存储模块维护第二映射表,第二映射表包括虚拟地址与物理地址的对应关系,物理地址指向第一存模块的地址或者第二存储模块的地址。通过虚拟地址间接建立逻辑地址与物理地址的对应关系,并采用两张表分别记录逻辑地址与虚拟块地址的对应关系,以及虚拟地址与物理地址的对应关系,可以降低维护FTL表的损耗,提高地址管理的效率,提升装置的性能。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了现有技术的存储装置的结构示意图;
图2示出了本发明实施例提供的数据存储装置的一种功能模块图;
图3示出了本发明实施例提供的数据处理方法的一种流程示意图;
图4示出了本发明实施例提供的数据处理方法的一个示例图;
图5示出了本发明实施例提供的数据处理方法的又一个示例图;
图6示出了本发明实施例提供的数据处理方法的又一种流程示意图;
图7示出了本发明实施例提供的数据处理方法的又一种流程示意图;
图8示出了本发明实施例提供的数据处理方法的又一个示例图;
图9示出了本发明实施例提供的数据处理方法的一种流程示意图;
图10示出了本发明实施例提供的数据处理方法的又一个示例图;
图11示出了本发明实施例提供的数据处理方法的一种流程示意图。
图标:100-数据存储装置;130-控制模块;150-存储模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
如图1所示,是现有技术中的存储装置的结构示意图,存储装置包括控制模块和存储模块。存储模块中包括FTL表,FTL表记录的是逻辑地址和物理地址的对应关系。
逻辑地址是在访问指令中使用的地址,物理地址是在硬件中实际存放的地址。通过FTL表可以实现地址的转换。存储装置在对数据进行读取或者写入操作时,需要获取逻辑地址和物理地址,可以通过FTL表,实现读写过程中地址的转换。
当地址的对应关系发生变化时,需要重新维护FTL表,而FTL表较大,更新FTL表会带来性能损耗,对存储装置的性能会产生影响。
由于经常更新导致FTL表会导致性能下降,本发明提出了虚拟地址的这个概念,目的是通过虚拟地址建立起逻辑地址与物理地址的对应关系;并且采用两张表来记录这两组对应关系,即本发明实施例中的FTL表是用于记录逻辑地址与虚拟地址的对应关系,然后另一张表记录虚拟地址和物理地址的对应关系。
由此,通过虚拟地址可以实现逻辑地址到物理地址的对应关系,并且在物理地址发生变化的时,只需要维护虚拟地址与物理地址的对应关系,不需要更新FTL表,也就可以降低更新FTL表带来的损耗。
为了便于理解,将多个虚拟地址用一个虚拟模块来表示,那么就可以理解,虚拟模块并不占用实际的存储空间,是一个逻辑概念。
下面请参照图2,是本发明实施例提供的一种数据存储装置的结构示意图。数据存储装置100包括控制模块130和存储模块150,以及虚拟模块。存储模块可以划分为第一存储模块和第二存储模块。控制模块130维护有第一映射表,存储模块150维护有第二映射表。
第一映射表是FTL表,与现有技术不同的是,本发明实施例中的FTL表是用于记录逻辑地址和虚拟地址的对应关系。
第二映射表是用于记录虚拟地址与物理地址的对应关系。物理地址可以是第一存储模块的地址,也可以是第二存储模块的地址。
本发明实施例提供的数据存储装置,控制模块维护第一映射表,第一映射表包括逻辑地址与虚拟块地址的对应关系,存储模块维护第二映射表,第二映射表包括虚拟地址与物理地址的对应关系。通过虚拟地址间接建立逻辑地址与物理地址的对应关系,并采用两张表分别记录逻辑地址与虚拟块地址的对应关系,以及虚拟地址与物理地址的对应关系,可以降低维护FTL表的损耗,提高地址管理的效率,提升装置的性能。
可选地,上述数据存储装置中的存储模块可以划分为两个存储空间,即第一存储模块和第二存储模块。第一存储模块作为加速缓存区,可以使用SLC模式来存储数据。第二存储模块可以使用XLC模式来存储数据。
SLC模式(Single Level Cell,单层单元)是指每个存储单元可以存储1bit的数据。
XLC模式是指每个存储单元可以存储多比特数据的存储模式,如MLC模式(Multi-Level Cell,多层单元),TLC模式(Triple Level Cell,三层单元)等,本发明实施例不做限定。
可选地,第二存储模块可以使用TLC模式来存储数据,每个存储单元可以存储3bit的数据。
SLC模式相比TLC模式具有更好的读写性能。在同样的大小的存储空间下,TLC模式相比SLC模式,可以存储更多的数据。
第一存储模块使用SLC模式,第二模块使用TLC模式,在一种可能实现的方式中,可以将存储模块的小部分存储空间作为第一存储模块,大部分存储空间作为第二存储模块,使得装置不仅具有良好的读写性能,也可以保证较大的存储空间。
由于SLC模块是每个存储单元可以存储1bit的数据,TLC模式是每个存储单元可以存储3bit的数据,可以知道,在同样的存储空间下,SLC模式与TLC模式可存储的数据量之比是1:3,可以将第一存储模块设置为第二存储模块的三分之一。根据实际的应用情况,以及所采用的存储方式,也可以将比例设置为其他值,本发明实施例不进行限定。
基于上述数据存储装置,对本发明实施例所提供的数据处理方法进行详细阐述,图3是本发明实施例所提供的数据处理方法的一种流程示意图。
步骤S202,建立第一映射表和第二映射表;
其中,第一映射表是上述数据存储装置中,存储模块维护的表,用于记录逻辑地址和虚拟地址的对应关系;
第二映射表是上述数据存储装置中,控制模块维护的表,用于记录虚拟地址和物理地址的对应关系;
步骤S204,根据第一映射表和/或第二映射表,对数据进行处理;
可选地,对数据的处理可以是写入数据,也可以是读取数据,可以通过第一映射表和/或第二映射表得到地址,对数据的进行处理。
通过上述步骤,分别建立第一映射表和第二映射表,其中第一映射表包括逻辑地址和虚拟地址的对应关系,第二映射表包括虚拟地址和物理地址的对应关系;基于这两张映射表和虚拟地址,建立起了逻辑地址与物理地址的对应关系;在数据处理过程中,提高了查表的便利性,可以灵活地根据地址得到数据。
可以理解的是,上述的虚拟地址间接地建立起了逻辑地址与物理地址之间的对应关系。那么可以将虚拟地址理解为用于标记逻辑地址和物理地址的记号,通过这个记号,可以获取到具体的逻辑地址和具体的物理地址。这个记号可以是编号,那么就可以用虚拟块编号来表示虚拟地址。可以理解的是,数据在写入或者读取时,数据的虚拟地址不一定恰好是实际的起始位置,因此也可以采用虚拟块编号和偏移量来共同表示虚拟地址。
对于虚拟块地址,也有另一种理解方式。将虚拟模块看成一个虚拟空间,即不占用具体存储空间,将这个虚拟空间划分为多个小空间,这个小空间称为虚拟块,每个虚拟块都有一个编号,这个编号就是虚拟块编号。如果对一个虚拟块进行更细的划分,就可以采用偏移量来表示在这个虚拟块内的位置。偏移量和虚拟块编号可以共同定位到物理地址。
对于上述的物理地址,物理地址可以包括物理块编号。存储模块中有多个存储单元,用于存储数据,可以给每个存储单元一个编号,这个物理块编号用于表示具体的存储单元。由于存储模块可以划分为两个存储空间,第一存储模块使用SLC模式,第二存储模块使用TLC模式,可以采用块模式来区分物理块编号表示的是第一存储模块的存储单元,还是第二存储模块的存储单元。
如图4所示,是本发明实施例提供的第一映射表和第二映射表的部分信息。其中,第一映射表包括逻辑地址和虚拟地址,虚拟地址包括虚拟块编号和偏移量。第二映射表包括虚拟地址和物理地址以及块模式;虚拟地址包括虚拟块编号,物理地址包括物理块编号,块模式用于表示物理块编号是第一存储模块的地址,还是第二存储模块的地址。
块模式为0表示SCL模式,即表示物理块编号指向的是第一存储模块的存储单元;块模式为1表示TCL模式,即表示物理块编号指向的是第二存储模块的存储单元。
可选地,根据SLC模式和TLC模式在同样的存储空间下,可存储的数据量之比是1:3。可以最多将三个SCL模式的物理块编号与一个虚拟块编号进行对应;将一个TLC模块的物理块编号与一个虚拟块编号进行对应。
需要说明的是,图4中所示的第一映射表和第二映射表仅作为介绍本发明的示意图,并不对两张映射表的具体形式构成限定,本领域技术人员可以根据实际情况使用其他展示映射关系的表现形式。
下面将基于这两张表,分别介绍对数据进行写入、对数据进行读取,和对数据进行搬移,这三种数据处理方法的实施例。
请参照图5,是本发明实施例提供的对数据进行写入的示例图。其中,数据A表示写入到装置的数据,001是数据A的逻辑地址。请结合图6,下面将步骤进行详细阐述。
步骤S204A-1,当接收到写入第一数据的指令时,获取第一数据的第一逻辑地址;
其中,第一数据是数据A,第一逻辑地址是001;
可选地,当控制模块接收到写入数据A的指令时,获取到数据A的逻辑地址001。
步骤S204A-3,根据第一映射表,确定与第一逻辑地址对应的第一虚拟地址;
可选地,根据第一映射表,得到逻辑地址001对应的(1,4),即第一虚拟地址(1,4),其中虚拟块编号是1,偏移量是4。
可以理解的是,在写入数据时,数据的逻辑地址不一定存在对应的有效虚拟地址,后面会针对这种情况进行说明。
请继续参见图6,步骤S204A-5,根据第二映射表,确定与第一虚拟地址对应的第一物理地址;
可选地,虚拟地址(1,4)的虚拟块编号是1,则根据第二映射表,得到块模式为0是SLC模式,即是第一存储模块的存储单元,对应的物理块编号是12。根据偏移量4,可以得到第一物理地址是(12,4)。
步骤S204A-7,根据第一物理地址,将第一数据存储到第一存储模块;
可选地,根据获得的物理地址,即(12,4),将数据A存储到第一存储模块。
可选地,有可能出现物理块编号指向的存储单元已经没有可使用的空间,在这种情况下,可以重新划分一个存储单元,并将这个存储单元的编号维护在第二映射表中,与虚拟地址建立对应关系。
在上述步骤S204A-3中提到了,在数据写入时,数据的逻辑地址不一定有对应的有效虚拟地址,针对这种情况,本发明实施例提供了一种可能的实现方式,请参阅图7,其中,步骤S204-3还可以包括以下步骤:
步骤S204A-3-1,根据第一映射表,检查第一逻辑地址是否存在对应的有效虚拟地址;
其中,有效虚拟地址表示存在对应的虚拟地址,且虚拟地址对应的物理地址的存储单元有效。
可以理解为,在写入数据时,数据的逻辑地址可能存在没有对应的虚拟地址的情况,如图4中第一映射表的逻辑地址006就没有对应的虚拟地址,逻辑地址006就不存在对应的有效逻辑地址。
还有可能存在逻辑地址有对应的虚拟地址,但是虚拟地址使用完毕的情况,即虚拟地址所对应的物理地址,这个物理地址指向的存储单元没有可使用的空间。这种情况下,逻辑地址就不存在对应的有效逻辑地址。
可选地,可以根据第一映射表,检查第一逻辑地址是否有对应的虚拟地址,且虚拟地址是否有效。当不存在有效虚拟地址时,执行步骤S204A-3-3;当存在有效虚拟地址时,执行步骤S204A-3-5;
步骤S204A-3-3,给第一逻辑地址分配对应的有效虚拟地址,将有效虚拟地址作为第一虚拟地址;
可选地,当第一逻辑地址不存在有效虚拟地址时,给第一逻辑地址分配对应的有效虚拟地址,可以从虚拟模块中划分出一个虚拟地址,这个虚拟地址与其他逻辑地址是没有对应关系的,建立这个虚拟地址与第一逻辑地址的对应关系,然后将这个虚拟地址确定为第一逻辑地址对应的第一虚拟地址。
可选地,在给第一逻辑地址分配对应的有效虚拟地址后,还可以在第二映射表中维护这个有效虚拟地址,即给这个有效虚拟地址分配有效的物理地址,这个有效的物理地址与其他的虚拟地址没有对应关系,并且这个有效的物理地址所指向的存储单元是可使用的。
步骤S204A-3-5,将有效虚拟地址作为第一虚拟地址;
可选地,当第一逻辑地址存在对应的有效虚拟地址时,将这个有效虚拟地址确定为第一逻辑地址对应的第一虚拟地址;如上述实施例中,第一逻辑地址001存在对应的有效虚拟地址(1,4),且虚拟地址(1,4)对应的物理地址是有效的,则将有效虚拟地址(1,4)确定为第一逻辑地址001对应的第一虚拟地址(1,4)。
在实际应用中,第一存储模块采用SLC模式,具有良好的读写性能,数据在写入时优先存储到第一存储模块。可能会出现第一存储模块没有可以使用的空间,或者具有较少可使用空间的情况。为了避免在这种情况下数据无法写入到装置,可以在装置处于空闲时,对数据进行搬移,即将第一存储模块的数据搬移到第二存储模块。
下面请参照图8,是本发明实施例提供的对数据进行搬移的示例图。其中,数据C1、数据C2和数据C3表示搬移的数据,物理块编号21、22、23表示第一存储模块中三个存储单元的编号,物理块编号71表示第二存储模块中一个存储单元的编号。请结合图9,下面将步骤进行详细阐述。
步骤S212,当第一存储模块处于空闲或者达到阈值的情况下,将第一存储模块的目标数据搬移到所述第二存储模块;
可以理解的是,当数据存储装置即没有写入数据,也没有读取数据时,装置处于空闲状态,第一存储模块处于空闲的情况下,可以进行数据搬移。
可选地,也可以预先设置一个阈值,当第一存储模块中已使用的存储空间达到这个阈值时,表示第一存储模块的具有较少或者已经没有可以使用的空间了,可以将第一存储模块的数据搬移到第二存储模块。
其中,目标数据是指数据C1、数据C2和数据C3。
数据C1是物理块编号为21的存储单元中所有数据,数据C2是物理块编号为22的存储单元中所有数据,数据C3是物理块编号为23的存储单元中所有数据。
步骤S214,获取目标数据的目标虚拟地址和目标数据在第二存储模块的目标物理地址;
可选地,在搬移之前,可以根据数据在第一存储模块的物理地址,得到数据的虚拟地址,数据C1、数据C2和数据C3的虚拟地址为(2,128),即目标虚拟地址,其中虚拟块编号为2。
根据SLC模式与TLC模式,可以知道,第二储存模块的一个存储单元可存储的数据量等于第一存模块的三个存储单元可存储的数据量。
从第二存储模块分配一个存储单元,将数据C1、数据C2和数据C3搬移到第二存储模块的存储单元,即物理块编号为51的存储单元,得到目标物理地址为物理块编号71。
步骤S216,根据目标虚拟地址和目标物理地址,更新第二映射表;
可选地,根据目标虚拟地址和目标地址,将目标虚拟地址对应的物理地址修改为目标物理地址,对应修改块模式,修改物理块编号,以更新第二映射表。
即根据得到了虚拟块编号为2和物理块编号71,将虚拟块编号为2对应的块模式修改为1,对应的物理块编号修改为71,得到更新后的第二映射表。
可以理解的是,当数据从第一存储模块搬移到第二存储模块之后,第一存储模块中存储存储空间释放。
下面请参照图10,是本发明实施例提供的对数据进行读取的示例图。其中,数据B表示读取的数据,004表示数据B的逻辑地址。请结合图11,下面将步骤进行详细阐述。
步骤S204B-1,当接收到读取第二数据的指令时,获取第二数据的第二逻辑地址;
其中,第二数据是数据B,第二逻辑地址是004;
可选地,当控制模块接收到读取数据B的指令时,获取到数据B的逻辑地址004。
步骤S204B-3,根据第一映射表,确定与第二逻辑地址对应的第二虚拟地址;
可选地,根据第一映射表,得到逻辑地址004对应的(4,28),即第一虚拟地址(4,28),其中虚拟块编号是4,偏移量是28。
步骤S204B-5,根据第二映射表,确定与第二虚拟地址对应的第二物理地址;
可选地,虚拟地址(4,28)的虚拟块编号是4,则根据第二映射表,得到块模式为1是TLC模式,即是第二存储模块的存储单元,对应的物理块编号是41。根据偏移量28,可以得到第二物理地址是(41,28)。
步骤S204B-7-1,当第二物理地址指向第一存储模块的地址时,从第一存储模块读取第二数据;
可选地,根据第二物理地址的块模式,确定第二物理地址指向第一存储模块的地址还是第二存储模块的地址;
当块模式为0即SLC模式时,指向第一存储模块的地址,从第一存储模块读取数据。
由于数据可能存储到第一存储模块,也有可能从第一存储模块搬移到了第二存储模块,所以第二物理地址也有可能指向第二存储模块。因此,在步骤S204B-5之后还可以包括步骤:
S204B-7-2,当第二物理地址指向所述第二存储模块的地址时,从第二存储模块读取所述第二数据;
例如,数据B的物理地址是(41,28),块模式为1即TLC模式,指向第二存储模块的地址,则从第二存储模块,物理编号为41的存储单元上读取数据B。
通过上述的数据处理方法的介绍,可以知道,现有技术中,FTL表用于记录逻辑地址到物理地址的对应关系。若采用页地址映射,则每页的容量可能为4KB,如对于一个固态硬盘,当固态硬盘的存储空间为128G,FTL表中每条表项占4B,则FTL表大小为128M,当数据的物理地址发生改变时,则需要重新维护FTL表,会产生损耗,使得装置的性能下降。
而本发明实施例提供的数据存储装置,有第一映射表和第二映射表,当数据的物理发生变化时,不需要更新第一映射表,只需要更新第二映射表。如对于一个固态硬盘,固态硬盘的中的block不超过8192个,而第二映射表中每个表项最多占用8个byte,则第二映射表的大小不会超过64KB,则更新第二映射表,不会影响装置的性能,并且提高了地址的管理效率。
本发明实施例还提供了一种数据存储装置,可以是存储介质,固态硬盘等。该数据存储装置可以执行上述步骤,以实现本发明实施例揭示的数据处理方法。需要说明的是,本发明实施例提供的数据存储装置,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,在此不再赘述,可参考上述的实施例中相应内容。该数据存储装置100包括:控制模块130和存储模块150,存储模块可以划分为第一存储模块和第二存储模块。
控制模块130:用于维护第一映射表,第一映射表包括逻辑地址与虚拟地址的对应关系。
存储模块150:用于维护第二映射表,第二映射表包括虚拟地址与物理地址的对应关系;物理地址指向第一存储模块的地址或者第二存储模块的地址。
可选地,控制模块130还用于:
当接收到写入第一数据的指令时,获取第一数据的第一逻辑地址;
根据第一映射表,确定与第一逻辑地址对应的第一虚拟地址;
根据第二映射表,确定与第一虚拟地址对应的第一物理地址,第一物理地址指向第一存储模块的地址;
根据第一物理地址,将第一数据存储到第一存储模块。
可选地,控制模块130还用于:
根据第一映射表,检查第一逻辑地址是否存在对应的有效虚拟地址;
若是,则将有效虚拟地址作为第一虚拟地址;
若否,则给第一逻辑地址分配对应的有效虚拟地址,将有效虚拟地址作为第一虚拟地址。
可选地,控制模块130还用于:
当接收到读取第二数据的指令时,获取第二数据的第二逻辑地址;
根据第一映射表,确定与第二逻辑地址对应的第二虚拟地址;
根据第二映射表,确定与第二虚拟地址对应的第二物理地址;
当第二物理地址指向第一存储模块的地址时,从第一存储模块读取第二数据;
当第二物理地址指向第二存储模块时,从第二存储模块的读取第二数据。
存储模块150还用于:
当第一存储模块处于存满的情况下,将第一存储模块的目标数据搬移到第二存储模块;
获取目标数据的目标虚拟地址和目标数据在第二存储模块的目标物理地址;
根据目标虚拟地址和目标物理地址,更新第二映射表。
本发明还提供了一种电子设备,可以是个人计算机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputer,UMPC)、上网本、个人数字助理(personaldigitalassistant,PDA)等,本发明实施例对此不作任何限制。电子设备包括上述数据存储装置,可以实现上述实施例揭示的数据处理方法。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据处理方法,其特征在于,应用于数据存储装置,所述数据存储装置包括第一存储模块和第二存储模块;所述方法包括:
建立第一映射表和第二映射表;所述第一映射表包括逻辑地址与虚拟地址的对应关系;所述第二映射表包括所述虚拟地址与物理地址的对应关系;所述物理地址指向所述第一存储模块的地址或者所述第二存储模块的地址;
根据所述第一映射表和/或所述第二映射表,对数据进行处理;
所述第二映射表包括所述虚拟地址对应的块模式,所述块模式用于标记所述物理地址指向的是所述第一存储模块的地址还是所述第二存储模块的地址;
当所述第一存储模块处于空闲或者达到阈值的情况下,将所述第一存储模块的目标数据搬移到所述第二存储模块;
获取所述目标数据的目标虚拟地址和所述目标数据在所述第二存储模块的目标物理地址;
在所述第二映射表中修改所述目标虚拟地址对应的块模式,并将所述目标虚拟地址对应的物理地址修改为所述目标物理地址,以更新所述第二映射表。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一映射表和/或所述第二映射表,对数据进行处理的步骤,包括:
当接收到写入第一数据的指令时,获取所述第一数据的第一逻辑地址;
根据所述第一映射表,确定与所述第一逻辑地址对应的第一虚拟地址;
根据所述第二映射表,确定与所述第一虚拟地址对应的第一物理地址,所述第一物理地址指向所述第一存储模块的地址;
根据所述第一物理地址,将所述第一数据存储到所述第一存储模块。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一映射表,确定与所述第一逻辑地址对应的第一虚拟地址的步骤,包括:
根据所述第一映射表,检查所述第一逻辑地址是否存在对应的有效虚拟地址;
若是,则将所述有效虚拟地址作为所述第一虚拟地址;
若否,则给所述第一逻辑地址分配对应的有效虚拟地址,将所述有效虚拟地址作为所述第一虚拟地址。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一映射表和/或所述第二映射表,对数据进行处理的步骤,包括:
当接收到读取第二数据的指令时,获取所述第二数据的第二逻辑地址;
根据所述第一映射表,确定与所述第二逻辑地址对应的第二虚拟地址;
根据所述第二映射表,确定与所述第二虚拟地址对应的第二物理地址;
当所述第二物理地址指向所述第一存储模块的地址时,从所述第一存储模块读取所述第二数据;
当所述第二物理地址指向所述第二存储模块的地址时,从所述第二存储模块读取所述第二数据。
5.根据权利要求1所述的方法,其特征在于,所述虚拟地址包括虚拟块编号;所述物理地址包括物理块编号;所述第二映射表包括所述虚拟块编号与所述物理块编号的对应关系和块模式;所述块模式用于标记所述物理块编号是所述第一存储模块的地址或者所述第二存储模块的地址。
6.一种数据存储装置,其特征在于,所述装置包括:控制模块和存储模块,所述存储模块划分为第一存储模块和第二存储模块;
所述控制模块,用于维护第一映射表,所述第一映射表包括逻辑地址与虚拟地址的对应关系;
所述存储模块,用于维护第二映射表,所述第二映射表包括所述虚拟地址与物理地址的对应关系;所述物理地址指向第一存储模块的地址或者第二存储模块的地址;
所述第二映射表包括所述虚拟地址对应的块模式,所述块模式用于标记所述物理地址指向的是所述第一存储模块的地址还是所述第二存储模块的地址;
所述存储模块还用于:当所述第一存储模块处于空闲或者达到阈值的情况下,将所述第一存储模块的目标数据搬移到所述第二存储模块;
获取所述目标数据的目标虚拟地址和所述目标数据在所述第二存储模块的目标物理地址;
在所述第二映射表中修改所述目标虚拟地址对应的块模式,并将所述目标虚拟地址对应的物理地址修改为所述目标物理地址,以更新所述第二映射表。
7.根据权利要求6所述的装置,其特征在于,所述控制模块还用于:
当接收到写入第一数据的指令时,获取所述第一数据的第一逻辑地址;
根据所述第一映射表,确定与所述第一逻辑地址对应的第一虚拟地址;
根据所述第二映射表,确定与所述第一虚拟地址对应的第一物理地址,所述第一物理地址指向所述第一存储模块的地址;
根据所述第一物理地址,将所述第一数据存储到所述第一存储模块。
8.一种电子设备,其特征在于,包括如权利要求6或者7所述装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110518110.7A CN113094003B (zh) | 2021-05-12 | 2021-05-12 | 数据处理方法、数据存储装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110518110.7A CN113094003B (zh) | 2021-05-12 | 2021-05-12 | 数据处理方法、数据存储装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113094003A CN113094003A (zh) | 2021-07-09 |
CN113094003B true CN113094003B (zh) | 2022-12-09 |
Family
ID=76665541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110518110.7A Active CN113094003B (zh) | 2021-05-12 | 2021-05-12 | 数据处理方法、数据存储装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113094003B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115729846A (zh) * | 2021-08-31 | 2023-03-03 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN113885808B (zh) * | 2021-10-28 | 2024-03-15 | 合肥兆芯电子有限公司 | 映射信息记录方法以及存储器控制电路单元与存储装置 |
US20230153238A1 (en) * | 2021-11-12 | 2023-05-18 | Samsung Electronics Co., Ltd. | Method of operating a storage device using multi-level address translation and a storage device performing the same |
CN114296658A (zh) * | 2021-12-31 | 2022-04-08 | 深圳市兆珑科技有限公司 | 一种存储空间分配方法、装置、终端设备及存储介质 |
CN114741343A (zh) * | 2022-02-28 | 2022-07-12 | 惠州华阳通用电子有限公司 | 一种控制器端口扩展装置及方法 |
CN116339916B (zh) * | 2023-03-17 | 2023-11-10 | 摩尔线程智能科技(北京)有限责任公司 | 一种内存虚拟化方法及装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326134A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | Ftl地址映射的方法及装置 |
US10732877B1 (en) * | 2019-03-25 | 2020-08-04 | Western Digital Technologies, Inc. | Smart mapping table update post background operations |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11086562B2 (en) * | 2016-09-13 | 2021-08-10 | Hitachi, Ltd. | Computer system having data amount reduction function and storage control method |
-
2021
- 2021-05-12 CN CN202110518110.7A patent/CN113094003B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326134A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | Ftl地址映射的方法及装置 |
US10732877B1 (en) * | 2019-03-25 | 2020-08-04 | Western Digital Technologies, Inc. | Smart mapping table update post background operations |
Also Published As
Publication number | Publication date |
---|---|
CN113094003A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113094003B (zh) | 数据处理方法、数据存储装置及电子设备 | |
KR102382887B1 (ko) | 가비지 컬렉션 | |
US8949507B2 (en) | Method for performing block management, and associated memory device and controller thereof | |
TWI221553B (en) | Semiconductor memory device with block alignment function | |
US11232041B2 (en) | Memory addressing | |
US8621139B2 (en) | Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件系统 | |
US8341336B2 (en) | Region-based management method of non-volatile memory | |
CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
US8090900B2 (en) | Storage device and data management method | |
US10521339B2 (en) | Retired page utilization (RPU) for improved write capacity of solid state drives | |
KR100608602B1 (ko) | 플래시 메모리, 이를 위한 사상 제어 장치 및 방법 | |
US20110320689A1 (en) | Data Storage Devices and Data Management Methods for Processing Mapping Tables | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
US9009442B2 (en) | Data writing method, memory controller and memory storage apparatus | |
CN114968096A (zh) | 一种存储器的控制方法、存储器与存储系统 | |
TWI388986B (zh) | 快閃記憶體裝置的運作方法及快閃記憶體裝置 | |
Lee et al. | An efficient buffer management scheme for implementing a B-tree on NAND flash memory | |
Ross | Modeling the performance of algorithms on flash memory devices | |
KR100977709B1 (ko) | 플래시메모리 저장장치 및 그에 따른 관리 방법 | |
US11416151B2 (en) | Data storage device with hierarchical mapping information management, and non-volatile memory control method | |
CN116364148A (zh) | 一种面向分布式全闪存储系统的磨损均衡方法及系统 | |
CN110825658B (zh) | 闪存控制器及方法 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
KR100982440B1 (ko) | 단일 플래시 메모리의 데이터 관리시스템 |
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 |