CN113419675B - 用于存储器的写操作方法及读操作方法 - Google Patents
用于存储器的写操作方法及读操作方法 Download PDFInfo
- Publication number
- CN113419675B CN113419675B CN202110655606.9A CN202110655606A CN113419675B CN 113419675 B CN113419675 B CN 113419675B CN 202110655606 A CN202110655606 A CN 202110655606A CN 113419675 B CN113419675 B CN 113419675B
- Authority
- CN
- China
- Prior art keywords
- address
- data
- memory
- write
- mapping table
- 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/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
- 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/0608—Saving storage space on storage systems
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种用于存储器的写操作方法及读操作方法。该写操作方法包括:接收写数据和元信息;根据元信息为所述写数据确定第一逻辑地址;检索所述地址映射表,确定是否存在与所述写数据匹配的条目,所述地址映射表记录写数据的逻辑地址与物理地址之间的映射关系,所述匹配的条目是指该条目中的逻辑地址与所述写数据的第一逻辑地址是连续的;如果存在,则将所述匹配的条目中的计数值加一;如果不存在,则为所述写数据在所述地址映射表***新的条目,所述新的条目的计数值为初始值。该方法利用计数值使地址映射关系数据的一个条目表征多个逻辑地址和物理地址的映射关系,从而降低了地址映射关系数据需要的存储空间。
Description
技术领域
本申请涉及存储器领域,并且更具体地涉及一种用于存储器的写操作方法及读操作方法,以及存储器控制器。
背景技术
固态硬盘(SSD,Solid State Drive)是由控制器和存储芯片阵列组成的非挥发性数据存储装置。固态硬盘的存储介质包括闪存芯片或DRAM芯片。固态硬盘的接口可以兼容以磁盘作为存储介质的传统硬盘,与传统硬盘相比具有体积小、质量轻、功耗低、无机械噪声、读写速度快等优点,因此,已经广泛地用于替代传统硬盘,例如应用于笔记本电脑、工控、视频监控、网络监控、网络终端、导航设备等诸多领域。
由于固态硬盘的存储芯片数据读写依赖于物理特性,因此,现有的文件***不能直接访问或操作存储芯片。固态硬盘的控制***还包括附加的缓存芯片,例如SRAM芯片和DRAM芯片,用于存储L2P映射表。固态硬盘的控制器读取L2P映射表进行地址映射,将文件***提供的逻辑地址转换成存储芯片的物理地址,从而实现对存储芯片的数据操作。
随着固态硬盘的存储容量越来越大,缓存芯片的存储容量需求也相应地提高。对于1TB的存储芯片阵列,如果采用一级映射表,则需要1GB的缓存芯片用于存储L2P映射表,二者例如是1:1000的关系。在高成本方案中,缓存芯片包括SRAM芯片和DRAM芯片,足以提供L2P映射表所需的存储容量。然而,在低成本方案(也称为dramless方案)中,缓存芯片例如仅包括SRAM芯片,存储容量例如是1MB,因此,控制***需要采用多级映射表以节省缓存空间。
期望进一步改进存储器的地址映射方法以进一步节省缓存空间以及提高管理效率和数据操作的性能。
发明内容
有鉴于此,本发明提供一种针对存储器的写操作方法、写操作控制装置以及存储器控制器,通过减少映射关系数据的开销来提高读写操作的性能。
根据本公开实施例的第一方面,提供一种用于存储器的写操作方法,包括:
接收写数据和元信息;
根据元信息为所述写数据确定第一逻辑地址;
检索所述地址映射表,确定是否存在与所述写数据匹配的条目,所述地址映射表记录写数据的逻辑地址与物理地址之间的映射关系,所述匹配的条目是指该条目中的逻辑地址与所述写数据的第一逻辑地址是连续的;
如果存在,则将所述匹配的条目中的计数值加一;
如果不存在,则为所述写数据在所述地址映射表***新的条目,所述新的条目的逻辑地址为第二逻辑地址,物理地址是第一物理地址,计数值为初始值。
可选地,还包括:对于逻辑地址连续的多个写数据,根据其物理地址一并写入到所述存储器的对应位置。
可选地,如果判断逻辑地址连续的多个写数据的数据量等于所述存储介质的寻址单位,则执行所述根据其物理地址一并写入到所述存储器的对应位置的操作。
可选地,所述地址映射表为二级映射表,第一级映射表存储多个二级映射表在所述存储器的存储介质上的位置索引信息,所述多个二级映射表存储地址映射关系数据的各个部分。
可选地,所述一级映射表和所述多个二级映射表中的最新操作过的二级映射表存储在所述存储器控制器中,所述多个二级映射表中除所述最新操作过的二级映射表之外的其余二级映射表存储在所述存储介质中。
可选地,还包括:在判断所述最新操作的二级映射表的数据量超过设定阈值时,将所述最新操作过的二级映射表转移到所述存储介质中;以及在所述存储器控制器新建一个新的二级映射表。
可选地,所述写数据为以下数据中的一种:从主机直接接收到的数据;根据存储器的寻址单位对从主机接收的数据进行整合后的数据。
第二方面,本公开实施例提供一种用于存储器的读操作方法,所述存储器包括存储器控制器和存储介质,包括:
接收读请求,所述读请求包括元信息;
根据元信息确定第一逻辑地址;
基于所述第一逻辑地址与地址映射关系数据中的各个条目的逻辑地址进行比较和计算,以得到待读数据的物理地址,所述地址映射关系数据用于表征所述存储介质中存储的数据的逻辑地址、物理地址和计数值;
根据所述物理地址从存储介质中读取所述待读数据。
可选地,所述基于所述第一逻辑地址与地址映射关系数据中的各个条目的逻辑地址进行比较和计算,以得到所述待读数据的物理地址包括:
当所述地址映射关系数据中存在其逻辑地址与所述第一逻辑地址相同的条目时,从该条目中取出其物理地址,并从其物理地址读取待读数据;
当所述地址映射关系数据中不存在其逻辑地址与所述第一逻辑地址相同的条目时,如果基于其计数值确定该条目对应多个待读数据,则基于其逻辑地址和计数值分别计算该条目对应的多个待读数据的多个逻辑地址,当该条目对应的多个逻辑地址的第二逻辑地址与所述第一逻辑地址相同时,则通过计算得到所述第二逻辑地址对应的第二物理地址,并基于所述第二物理地址读取所述待读数据。
根据本公开实施例的第三方面,提供一种存储器控制器,包括耦接的控制单元和存储单元,所述控制单元执行上述任一项所述的写操作方法,所述存储单元用于存储地址映射关系数据。
根据本公开实施例的第四方面,提供一种存储器,包括上述的存储器控制器和用作存储介质的闪存芯片。
基于本公开实施例,利用计数值使地址映射关系数据的一条数据表征多个逻辑地址和物理地址的映射关系,和现有技术中地址映射关系中一条数据只能表征一个逻辑地址和物理地址的映射关系相比,本实施例降低了地址映射关系数据的存储空间。
附图说明
通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1示出根据现有技术的计算机***的示意性框图;
图2示出根据本发明实施例的计算机***的示意性框图;
图3是用于存储器的写操作方法的流程图;
图4示出了二级地址映射表的示例图;
图5是本公开实施例提供的读操作方法的流程图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
附图中的流程图、框图图示了本发明实施例的***、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
下文使用以下术语。
地址映射:负责逻辑地址到物理地址的映射,核心中的核心,是许多其他模块的基础。
损耗均衡:避免某一个块使用过于频繁,过早达到使用寿命。
GC:垃圾回收,异地更新产生的脏数据所占空间的回收工作。
错误处理:erase/program/read error,坏块管理。
掉电恢复:POR,Power off Recovery。
图1示出根据现有技术的计算机***的示意性框图。计算机***100包括主机110、控制***120和存储器130。在下文以固态硬盘为例进行描述。固态硬盘例如包括图中所示的控制***120和存储器130,存储器130的存储介质例如为闪存芯片阵列。
控制***120的主机接口121连接至主机110,以传输指令。主机接口121例如是SATA、M.2、mSATA和PCI-E。处理器123与主机接口121、缓存控制器124和存储器控制器128相连接。控制***120中的缓存芯片包括SRAM芯片125和DRAM芯片126,例如存储L2P映射表。处理器123用于实现存储器控制的核心软件层,即FTL(Flash Translation Layer,闪存转换层),使得操作***和文件***能够像访问硬盘一样访问存储器。该FTL还有例如支持所有SLC(Single Level Cell,单层单元)和MLC(Multi-Level Cell,多层单元)、支持坏块管理、损耗均衡、垃圾回收、断电恢复、写平衡技术等特点。FTL的核心功能是地址映射,其中,处理器123经由缓存控制器124读取缓存芯片以获得L2P映射表,基于L2P映射表将从主机110接收到的逻辑地址映射成存储器130的物理地址。控制***120的存储器控制器128连接至存储器130,根据处理器123提供的物理地址对存储器130的相应存储单元进行数据访问操作。
存储器130包括闪存芯片阵列。为了提高数据读写性能,控制***120的存储器控制器128可以经由多个通道CH0和CH1对存储器130的闪存芯片进行读写。每个通道连接一组闪存芯片。每个闪存芯片包括多个物理块,每个物理块包括多个物理页。对闪存芯片的数据访问操作包括读、写和擦除。由于闪存芯片的物理特性,数据操作的基本单位例如是物理页,擦除操作的基本单位例如是物理块。
在主机110执行数据操作时,控制***120从主机110接收到指令。控制***120将指令中的逻辑地址映射成物理地址,该物理地址用于表征存储器130中的位置,包括通道、物理块和物理页等。在读取操作中,控制***120以物理页为单位读取数据,以及从中获取与逻辑地址相对应的读取数据。在写入操作中,控制***120将指令中的数据生成以物理页为单位的数据,然后以物理页为单位写入到闪存芯片中。在写入操作时,还需要更新L2P映射表。
在上述现有技术的计算机***中,控制***120中的缓存芯片包括SRAM芯片125和DRAM芯片126。大容量的DRAM芯片126可以支持大容量固态硬盘的地址映射,例如,对于1TB的存储芯片阵列,采用1GB的缓存芯片用于存储L2P映射表,二者例如是1:1000的关系。
图2示出根据本发明实施例的计算机***的示意性框图。计算机***200包括主机110、控制***220和存储器130。在下文以固态硬盘为例进行描述。固态硬盘例如包括图中所示的控制***220和存储器130,存储器130的存储介质例如为闪存芯片阵列。
控制***220的主机接口121连接至主机110,以接收数据操作指令。主机接口121例如是SATA、M.2、mSATA和PCI-E。处理器123与主机接口121、缓存控制器124和存储器控制器128相连接。控制***220中的缓存芯片包括SRAM芯片225,例如存储L2P映射表。处理器123用于实现存储器控制的核心软件层,即FTL(Flash Translation Layer,闪存转换层),使得操作***和文件***能够像访问硬盘一样访问存储器。该FTL还有例如支持所有SLC(Single Level Cell,单层单元)和MLC(Multi-Level Cell,多层单元)、支持坏块管理、损耗均衡、垃圾回收、断电恢复、写平衡技术等特点。FTL的核心功能是地址映射,其中,处理器123经由缓存控制器124读取缓存芯片以获得L2P映射表,基于L2P映射表将从主机110接收到的逻辑地址映射成存储器130的物理地址。控制***220的存储器控制器128连接至存储器130,根据处理器123提供的物理地址对存储器130的相应存储单元进行数据访问操作。
存储器130包括闪存芯片阵列。如上所述,控制***220的存储器控制器128可以经由多个通道CH0和CH1对存储器130的闪存芯片进行读写。在主机110执行数据操作时,控制***220从主机110接收到指令。控制***220将指令中的逻辑地址映射成物理地址,该物理地址用于表征存储器130中的位置,包括通道、物理块和物理页等。在读取操作中,控制***220以物理页为单位读取数据,以及从中获取与逻辑地址相对应的读取数据。在写入操作中,控制***220将指令中的数据生成以物理页为单位的数据,然后以物理页为单位写入到闪存芯片中。在写入操作时,还需要更新L2P映射表。
在根据本发明实施例的计算机***中,控制***220中的缓存芯片仅包括SRAM芯片225,而未包括DRAM芯片。该计算机***采用低成本方案(也称为dramless方案)。SRAM芯片225的存储容量例如为1MB。为了支持大容量固态硬盘的地址映射,需要尽量减少缓存芯片的存储容量需求。
图3是用于存储器的写操作方法的流程图。由图2的处理器123执行。首先需要澄清的是,主机发送的写数据一般以扇区为单位,即512字节,闪存芯片的页大小一般为8KB或16KB,存储器的控制***220的管理单位是4KB,主机发送的每8个写数据(8*512Byte=4KB)凑成4KB(4KB是控制***的管理的最小单位),2或4个4KB可以凑成一个物理页(物理页是NAND最小的写单位)。对应的,由于控制***管理的最小单位是4KB,所以地址映射表中的逻辑地址以及物理地址寻址的单位也是4KB。如果要写一个数据,主机发送多个扇区的写数据,在控制***220整合成多个4KB,计算得到逻辑地址(扇区号/8),接受更多的数据,凑多个4KB,如果凑够了8KB或16KB(也就是页的大小),写入NAND的物理页。也即,控制***将从主机110接收的写数据整合成向闪存写入的写数据,并建立逻辑地址(后续主机110还需要基于逻辑地址访问写数据)和物理地址(用于指定实际的写数据在存储介质130的存储位置)的对应关系,逻辑地址和物理地址的寻址单位是4KB。
该写操作方法具体包括以下步骤。
在步骤S301中,接收写数据以及写数据的元信息。
在步骤S302中,根据元信息为写数据确定第一逻辑地址。
写数据可以是直接来自主机发送过来的数据,也可以是经由控制器整合后的元数据。元信息则用于表征写数据的特征,如果写数据是主机直接发送的,则该写数据例如为发送数据的应用名称、标识、发送序号等,如果写数据为整合后的数据,则该元数据表征该写数据的组成以及构成该写数据的一些原始信息。根据元信息控制***为其确定一个逻辑地址并将其称为第一逻辑地址。
在步骤303中,检索地址映射表,以确定是否存在与写数据匹配的条目,地址映射表用于表征写数据的逻辑地址和物理地址的对应关系,而与写数据匹配的条目是指该条目中的逻辑地址与所述写数据的第一逻辑地址是连续的。如果存在这样一个条目,则执行步骤S304,否则执行步骤S305。
在步骤S304中,如果存在,在地址映射关系数据中将匹配的条目中的计数值加一。步骤S303指出匹配的条目中的逻辑地址与写数据的第一逻辑地址是连续的。由此本步骤相当于对于逻辑地址连续的写数据,给其分配连续的物理地址,从而可以通过一个条目表征多个逻辑地址和物理地址连续的写数据的映射关系。
在步骤S305中,如果不存在,在地址映射关系数据中为写数据新增一个条目,该新增的条目的逻辑地址是***给其分配的第二逻辑地址,物理地址是***给其分配的第一物理地址,计数值为初始值(通常为0)。
综上,当确定写数据的逻辑地址为第一逻辑地址之后,根据第一逻辑地址和地址映射关系表检查第一逻辑地址与在先写数据的逻辑地址是否连续,例如第一逻辑地址为n,而地址映射关系数据中存在一个在先写数据,其逻辑地址为n-1(例如寻址单位是4K的情况下,-1表示-4K),说明第一逻辑地址和这条在先写数据的逻辑地址是连续的,在这种情况下,将地址映射关系数据中该在先写数据的计数值加一,而如果地址映射关系数据中不存在这样的写数据,则为写数据确定一个物理地址,然后将该写数据的物理地址、逻辑地址和初始值(通常设定为1)新增为地址映射关系数据的一个条目。因此地址映射关系数据应至少包括逻辑地址、物理地址和计数值,当一条地址映射关系数据的计数值等于初始值时,这条数据只表征一个逻辑地址和物理地址的映射关系,当计数值大于初始值时意味着该条数据表征了多个(计数值个)逻辑地址和物理地址的映射关系。
基于本实施例,利用计数值使地址映射关系数据的一条数据表征多个逻辑地址和物理地址的映射关系,和现有技术中地址映射关系中一条数据只能表征一个逻辑地址和物理地址的映射关系相比,本实施例降低了地址映射关系数据所需的存储空间。
最终,需要将写数据写入到存储器的存储介质中,例如在缓存超过一定阈值的情况下,开始写入到存储介质中,对于逻辑地址连续的多个写数据,由于其物理地址也是连续的,因此根据其物理地址一并写入到存储介质的相应位置。
下面对本实施例进行举例说明。如果多个写数据的逻辑地址和物理地址是连续的,可以在原来的数据结构增加一个计数值来表示这一段连续的写数据。如果限制该计数值的个数最大为256(2^8)个,也就是说此字段用8bit(1字节)表征256个连续的写数据。假设每笔写数据大小为4KB,现有技术中每笔写数据对应的地址映射关系中一条数据的表项开销(用于存储物理地址和逻辑地址的映射关系的数据结构所占用的存储空间大小)是8Byte,则1024笔写数据为1K*4KB=4MB,需要1024个表项条目,表项开销为1K*8B=8KB。而如果采用包含计数值的数据结构,在现有技术中的表项基础上,为了数据结构访问的对齐,假设额外增加8字节(这8字节中的1个字节表示计数值字段),则新表项的一个条目为8Byte+8Byte=16Byte,则1024个表项条目的开销为1K*16B=16KB,该1024个表项条目对应缓存的写数据可以达到1K*256*4KB=1GB。对比而言,额外的表项开销只提高了16KB-8KB=8KB,仅增加一倍开销,就可以缓存1GB的数据,数据量大约提升了256倍。相较于现有技术,同样开销的表项对应缓存的数据量更多了,所对应的逻辑地址和物理地址间的映射关系也就更多,意味着可以很少得同步元信息到NAND中,也就无需频繁得更新二级表,可以减少更新二级表的次数,提升SSD性能。
在dramless方案中,地址映射关系数据可存储在SRAM 122中,但也可以一部分存储在SRAM 122,另一部分存储在存储介质140中,此外,地址映射关系数据可采用一级映射表组织,也可采用多级映射表组织。图4是一个二级映射表的示例图。如图上所示,一级映射表401是用于管理多个二级映射表202的表,具体地,将地址映射关系数据分割为多个等分,将多个等分分别存储在多个二级映射表402中,然后在一级映射表401中存储多个二级映射表402的地址索引信息。
在一个实施例中,每当使用图3的写操作方法完成当前写数据的处理后,判断当前最新的二级映射表的数据量,如果大于或等于N,则将该二级映射表存储到存储器140,并同时更新一级映射表。其中,N是一个可配置的阈值,可通过多种方式确定。例如,基于存储器130包含的读写单位(闪存芯片的读写单位是页)总量确定N。
在一个实施例中,受限于SRAM 122的存储空间,只将当前最新的二级映射表存储在SRAM 122中,而其余二级映射表和一级映射表都存储在存储器130中。
图5是本公开实施例提供的读操作方法的流程图。该方法包括步骤S501至S504。
在步骤S501中,接收读请求,所述读请求包含待读数据的元信息。
在步骤S502中,基于所述元信息判断地址映射关系表中是否存在匹配的条目。
在步骤S504中,如果存在,根据物理地址从存储介质中读取数据,并从数据中得到要读取的该待读数据。
对本实施例进行举例说明。如果主机要查询的待读数据的逻辑地址为LBA1,假设转化成映射表中的逻辑地址为L1,假设地址映射关系数据有条目{L1,P1,C1},C1=3,即该条目表征3个连续的写数据,其中第一个写数据的逻辑地址和物理地址分别为L1和P1,第二个写数据的逻辑地址和物理地址分别为(L1+1)和(P1+1),第三个写数据的逻辑地址和物理地址分别为(L1+2)和(P1+2),则通过查询得到这一条目,然后根据P1从存储介质130的指定物理地址P1处读取,由于主机读写单位是扇区尺寸(一般为512个字节),因此可以从P1处读取4K字节,再根据LBA1与L1之间的转化关系,可以从4K字节中得到512个字节的数据;假设要查询的待读数据的逻辑地址LBA2,其转化为映射表中的逻辑地址为Lx,假设Lx等于(L1+1),而根据{L1,P1,C1}进行计算发现,Lx在[L1,(L1+C1-1)]逻辑地址范围内,则根据条目{L1,P1,C1},可从Lx对应的物理地址(P1+1)处读取4K数据,同理可得LBA2对应的待读数据。
由此可见,根据上述得到的地址映射关系数据能够实现读数据操作,虽然存储器控制器需要根据地址映射关系数据作适量计算,但是这些计算对存储器控制器的性能影响很小。
在此所用的术语“模块”可以指代以下各项、作为以下各项的一部分或者包括以下各项:专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用或群组)和/或存储器(共享、专用或群组)、组合逻辑电路和/或提供所描述的功能性的其他合适的组件。
本领域技术人员可以理解,根据本发明的数据处理***的各个模块或单元可以通过硬件、固件或软件实现。软件例如包括采用JAVA、C/C++/C#、SQL等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种用于存储器的写操作方法,包括:
接收写数据和元信息;
根据元信息为所述写数据确定第一逻辑地址;
检索地址映射表,确定是否存在与所述写数据匹配的条目,所述地址映射表记录写数据的逻辑地址与物理地址之间的映射关系,所述匹配的条目是指该条目中的逻辑地址与所述写数据的第一逻辑地址是连续的;
如果存在,则将所述匹配的条目中的计数值加一;
如果不存在,则为所述写数据在所述地址映射表***新的条目,所述新的条目的逻辑地址为第二逻辑地址,物理地址是第一物理地址,计数值为初始值,
所述地址映射表中的地址映射关系数据被分割为多个等分,将多个等分分别存储在多个二级映射表中,然后在一级映射表中存储多个二级映射表的地址索引信息。
2.根据权利要求1所述的写操作方法,还包括:对于逻辑地址连续的多个写数据,根据其物理地址一并写入到所述存储器的对应位置。
3.根据权利要求2所述的写操作方法,其中,如果判断逻辑地址连续的多个写数据的数据量等于存储介质的寻址单位,则执行所述根据其物理地址一并写入到所述存储器的对应位置的操作。
4.根据权利要求1所述的写操作方法,其中,所述一级映射表和所述多个二级映射表中的最新操作过的二级映射表存储在所述存储器控制器中,所述多个二级映射表中除所述最新操作过的二级映射表之外的其余二级映射表存储在存储介质中。
5.根据权利要求4所述的写操作方法,还包括:在判断所述最新操作的二级映射表的数据量超过设定阈值时,将所述最新操作过的二级映射表转移到所述存储介质中;以及在所述存储器控制器新建一个新的二级映射表。
6.根据权利要求1所述的写操作方法,其中,所述写数据包括:
从主机直接接收到的数据;
根据存储器的寻址单位对从主机接收的数据进行整合后的数据。
7.一种用于存储器的读操作方法,所述存储器包括存储器控制器和存储介质,包括:
接收读请求,所述读请求包括元信息;
基于所述元信息判断地址映射关系表中是否存在匹配的条目,如果存在,则
根据匹配的条目的物理地址从存储介质中读取数据,并从数据中获取待读数据,
其中,所述地址映射表中的地址映射关系数据被分割为多个等分,将多个等分分别存储在多个二级映射表中,然后在一级映射表中存储多个二级映射表的地址索引信息。
8.一种存储器控制器,包括耦接的控制单元和存储单元,所述控制单元执行如1至6任一项所述的写操作方法,所述存储单元用于存储地址映射关系数据。
9.一种存储器,包括如权利要求8所述的存储器控制器和用作存储介质的闪存芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110655606.9A CN113419675B (zh) | 2021-06-11 | 2021-06-11 | 用于存储器的写操作方法及读操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110655606.9A CN113419675B (zh) | 2021-06-11 | 2021-06-11 | 用于存储器的写操作方法及读操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113419675A CN113419675A (zh) | 2021-09-21 |
CN113419675B true CN113419675B (zh) | 2023-03-03 |
Family
ID=77788347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110655606.9A Active CN113419675B (zh) | 2021-06-11 | 2021-06-11 | 用于存储器的写操作方法及读操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419675B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114415942B (zh) * | 2021-12-21 | 2022-11-04 | 联芸科技(杭州)股份有限公司 | L2p映射表重建方法及固态硬盘 |
CN116467224B (zh) * | 2022-01-12 | 2023-10-31 | 联芸科技(杭州)股份有限公司 | L2p映射表重建方法及固态硬盘 |
CN114840447B (zh) * | 2022-04-01 | 2024-06-04 | 成都忆芯科技有限公司 | 一种加速器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727295A (zh) * | 2008-10-31 | 2010-06-09 | 西安奇维测控科技有限公司 | 一种基于虚拟块闪存地址映射的数据写入及读出方法 |
CN102591589A (zh) * | 2010-11-15 | 2012-07-18 | 三星电子株式会社 | 数据存储设备、用户设备以及数据写方法 |
CN107066393A (zh) * | 2017-01-12 | 2017-08-18 | 安徽大学 | 提高地址映射表中映射信息密度的方法 |
CN110858129A (zh) * | 2018-08-22 | 2020-03-03 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831072B (zh) * | 2012-08-10 | 2016-03-02 | 深圳市江波龙电子有限公司 | 闪存设备及其管理方法、数据读写方法及读写装置 |
US9383927B2 (en) * | 2014-05-28 | 2016-07-05 | SandDisk Technologies LLC | Method and system for creating a mapping table cache from an interleaved subset of contiguous mapping data for a storage device |
-
2021
- 2021-06-11 CN CN202110655606.9A patent/CN113419675B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727295A (zh) * | 2008-10-31 | 2010-06-09 | 西安奇维测控科技有限公司 | 一种基于虚拟块闪存地址映射的数据写入及读出方法 |
CN102591589A (zh) * | 2010-11-15 | 2012-07-18 | 三星电子株式会社 | 数据存储设备、用户设备以及数据写方法 |
CN107066393A (zh) * | 2017-01-12 | 2017-08-18 | 安徽大学 | 提高地址映射表中映射信息密度的方法 |
CN110858129A (zh) * | 2018-08-22 | 2020-03-03 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
Non-Patent Citations (1)
Title |
---|
Flash存储管理的研究与设计;朱念好等;《计算机工程与设计》;20100216(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113419675A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475427B (zh) | 使用低延迟非易失性存储器进行逻辑至物理映射管理 | |
CN113419675B (zh) | 用于存储器的写操作方法及读操作方法 | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
CN110998550B (zh) | 存储器寻址 | |
US8612721B2 (en) | Semiconductor memory controlling device | |
CN102419735B (zh) | 存储器*** | |
CN108121503B (zh) | 一种NandFlash地址映射及块管理方法 | |
US8291155B2 (en) | Data access method, memory controller and memory storage system | |
KR101852668B1 (ko) | 어드레스 매핑 | |
KR101491943B1 (ko) | 트랜잭션 로그 복구 | |
US20080195801A1 (en) | Method for operating buffer cache of storage device including flash memory | |
CN113419975B (zh) | 存储器的控制***及地址映射方法和地址映射装置 | |
US8819387B2 (en) | Memory storage device, memory controller, and method for identifying valid data | |
US11150819B2 (en) | Controller for allocating memory blocks, operation method of the controller, and memory system including the controller | |
CN114036079B (zh) | 映射表压缩方法、***、存储器控制器、固态硬盘及数据读取方法 | |
US10592427B2 (en) | Logical to physical table fragments | |
JP2009503740A (ja) | データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け | |
US20200310669A1 (en) | Optimized handling of multiple copies in storage management | |
CN112860193B (zh) | 整理指令处理方法、存储器控制电路单元与存储装置 | |
CN110597741B (zh) | 一种l2p表的读写、更新方法及l2p表 | |
KR101191650B1 (ko) | 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법 | |
US20110264848A1 (en) | Data recording device | |
CN115729439A (zh) | 数据管理方法、装置及固态硬盘 | |
CN113590506A (zh) | Hmb的表项管理方法及固态硬盘的控制*** | |
CN113467697A (zh) | 存储器控制器与数据处理方法 |
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: 310051 room c1-604, building C, No. 459, Qianmo Road, Xixing street, Binjiang District, Hangzhou, Zhejiang Province Applicant after: Lianyun Technology (Hangzhou) Co.,Ltd. Address before: 6 / F, block C1, spotlight center, 459 Qianmo Road, Binjiang District, Hangzhou City, Zhejiang Province, 310051 Applicant before: MAXIO TECHNOLOGY (HANGZHOU) Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |