CN114036079A - 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法 - Google Patents
映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法 Download PDFInfo
- Publication number
- CN114036079A CN114036079A CN202111044469.1A CN202111044469A CN114036079A CN 114036079 A CN114036079 A CN 114036079A CN 202111044469 A CN202111044469 A CN 202111044469A CN 114036079 A CN114036079 A CN 114036079A
- Authority
- CN
- China
- Prior art keywords
- data
- array
- address
- mapping table
- word line
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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
- 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
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
本申请公开了一种映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法。该映射表压缩方法包括:按照连续的编程顺序存储多个数据,将数据的逻辑地址与物理地址之间的映射关系及连续编程的计数值写入单个映射表单元;以及建立第一数组,并根据第一数组更新第二数组,其中,第二数组表征各个数据的编程顺序与数据在字线中的相对地址之间的关系,相对地址与物理地址相关联。该映射表压缩方法可以把数据的编程顺序与物理地址统一,从而编程顺序连续的所有数据只需使用一个映射表单元,提高了映射表的压缩率。
Description
技术领域
本发明涉及存储器技术领域,更具体地,涉及一种映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法。
背景技术
固态硬盘(SSD,Solid State Drive)是由控制器和存储芯片阵列组成的非挥发性数据存储装置。固态硬盘的存储介质包括闪存芯片或DRAM芯片。固态硬盘的接口可以兼容以磁盘作为存储介质的传统硬盘,与传统硬盘相比具有体积小、质量轻、功耗低、无机械噪声、读写速度快等优点,因此,已经广泛地用于替代传统硬盘,例如应用于笔记本电脑、工控、视频监控、网络监控、网络终端、导航设备等诸多领域。
由于固态硬盘的存储芯片数据读写依赖于物理特性,因此,现有的文件系统不能直接访问或操作存储芯片。固态硬盘的控制系统还包括附加的缓存芯片,例如SRAM芯片和DRAM芯片,用于存储L2P映射表。固态硬盘的控制器读取L2P映射表进行地址映射,将文件系统提供的逻辑地址转换成存储芯片的物理地址,从而实现对存储芯片的数据操作。
目前,为了提升固态硬盘的数据读取速度,通常会在缓存芯片中存储部分L2P映射表。每个L2P映射表通常包括以下三部分:基逻辑区块地址 (base Logical BlockAddress,可简称为base LBA)、基存储芯片的物理地址(base Flash Access Agent,可简称为base FAA)以及数据长度 (sequence count),其中,数据长度表征LBA与FAA同时连续的个数,每个L2P映射表可分为多个映射表单元,每个映射表单元只能存储LBA与FAA 同时连续的数据。对于主机端发送的一段连续数据,处理器按照传统的编程顺序写入存储芯片,可能出现逻辑地址连续、物理地址分段连续的情况,这时就需要用多个映射表单元来存储该数据。
期望进一步改进存储器的映射表压缩方法以进一步节省缓存空间以及提高管理效率和数据操作的性能。
发明内容
鉴于上述问题,本发明的目的在于提供一种映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法,从而提高映射表的压缩率。
根据本发明的第一方面,提供了一种映射表压缩方法,=包括:
按照连续的编程顺序存储多个数据,将所述数据的逻辑地址与物理地址之间的映射关系及连续编程的计数值写入单个映射表单元;以及
建立第一数组,并根据所述第一数组更新第二数组,
其中,所述第二数组表征各个所述数据的编程顺序与所述数据在字线中的相对地址之间的关系,所述相对地址与所述物理地址相关联。
可选的,建立所述第一数组的方法包括:按照多个所述数据的所述相对地址建立所述第一数组,所述第一数组具有多个第一元素,各个所述第一元素的编号表征所述数据的所述相对地址,各个所述第一元素存储的值表征所述数据的所述编程顺序。
可选的,根据所述第一数组更新第二数组的方法包括:将所述第一数组中的各个所述第一元素的编号与其存储的值进行置换,以获得多个第二元素,多个所述第二元素形成所述第二数组,各个所述第二元素的编号表征所述数据的所述编程顺序,各个所述第二元素存储的值表征所述数据的所述相对地址。
可选的,多个所述数据的编程顺序连续且逻辑地址连续,物理地址不完全连续。
可选的,所述相对地址包括物理页地址、逻辑单元号和页偏移。
根据本发明的第二方面,提供了一种映射表的压缩系统,包括:
处理器,用于按照连续的编程顺序存储多个数据,将所述数据的逻辑地址与物理地址之间的映射关系及连续编程的计数值写入映射表,以及建立第一数组,并根据所述第一数组更新第二数组,
其中,所述第二数组表征各个所述数据的所述编程顺序与所述数据在字线中的相对地址之间的关系,所述相对地址与所述物理地址相关联。
根据本发明的第三方面,提供了一种存储器控制器,包括耦接的控制单元和存储单元,所述控制单元执行如上所述的映射表压缩方法,所述存储单元用于存储地址映射关系数据。
根据本发明的第四方面,提供了一种固态硬盘,包括如上所述的存储器控制器和用作存储介质的闪存芯片。
根据本发明的第五方面,提供了一种数据读取方法,包括:
接收数据读取指令,以获得待读取数据对应的逻辑地址;
根据所述逻辑地址,获得所述待读取数据所在连续数据块中的首个数据对应第一数组的编号;
基于所述第一数组,根据所述首个数据对应第一数组的编号,获得所述待读取数据所在字线中的编程顺序;
基于第二数组,根据所述编程顺序,获得所述待读取数据在字线中的相对地址;以及
根据所述待读取数据的字线信息和所述待读取数据在所述字线中的所述相对地址,获得所述待读取数据在物理块中的物理地址,并读取数据。
可选的,获得所述首个数据对应第一数组的编号的方法包括:
利用所述待读取数据对应的逻辑地址和映射表,得到所述首个数据的逻辑地址,以及所述首个数据的所述逻辑地址对应的物理地址,所述物理地址包含所述首个数据在物理块中的字线信息,以及表征所述首个数据所在字线中相对地址的字段,
其中,所述首个数据所在字线中相对地址的字段对应于所述第一数组的编号。
本发明提供的映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法,通过数组转换,让多个连续的物理页的逻辑地址,仅需要一个映射表,就能寻址到相应的物理地址,即使连续的逻辑地址对应不连续的物理地址,从而可以提高映射表的压缩率,并提高了系统的管理效率和数据操作的性能。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出了一种NAND写入数据的编程顺序的示意图;
图2示出了根据本发明实施例的计算机系统的示意性框图;
图3a和3b分别示出了根据本发明实施例的一个字线(word line)内位置与编程顺序间的关系的示意图;
图4示出了根据本发明实施例的映射表压缩方法的流程图;
图5示出了根据本发明实施例的数据读取方法的流程图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
在一些固态硬盘中,例如在DRAM-less架构的固态硬盘中,为了提升数据读取速度,通常会在缓存芯片中存储部分L2P映射表。每个L2P映射表通常包括以下三部分:基逻辑区块地址(base Logical Block Address,可简称为base LBA)、基存储芯片的物理地址(base Flash Access Agent,可简称为base FAA)以及数据长度(sequence count),其中数据长度表征LBA与FAA同时连续的个数。每个L2P映射表可分为多个映射表单元,每个映射表单元只能存储LBA与FAA同时连续的数据。
在该固态硬盘构架中,每个逻辑地址对应着相应的逻辑分配单元地址 (logicallocate unit address,可简称为LAA),并要求LAA+x等于FAA+x (x<=sequence count),那么在读取操作中,处理器基于L2P映射表可以获得在LAA到LAA+sequence count-1范围内的所有对应的物理地址。
相关技术中的物理地址包括block编号、逻辑单元号(Logical Unit Number,可简称为LUN)、物理页地址(Page)和页偏移(Frag),每个物理页包括多个4KB单元格。例如,假设物理页地址page有1024个,那么物理地址FAA=Frag|(LUN<<2)|page<<(2+1)|block<<(2+1+10)。
对于主机端发送的一段连续数据,处理器将该连续数据按照编程顺序写入存储芯片,可能出现逻辑地址连续、物理地址分段连续的情况,这时就需要用多个映射表单元来存储该数据。
图1示出了一种NAND写入数据的编程顺序示意图。在图1所示,示例性的示出了将具有32个4KB数据的连续数据块,按照编程顺序,写入两个字线,每个字线包括两个Page编程单元,每个Page编程单元包括具有相同逻辑单元号(LUN)的两个物理页,每个物理页包括四个4KB单元格,每个4KB单元格内的数字表征编程顺序,编程顺序表征写入物理地址的顺序。在该物理块中,所有的page编程单元采用相同的编程顺序。
在该示例中,对于主机发送的一段连续数据,该数据具有32个4KB数据,计算机系统按照如图1所示的编程顺序写入存储器,共需要8个映射表单元。
在图1中,page x上编程顺序为0x3的4KB单元格与page x上编程顺序为0x8的4KB单元格属于物理地址连续,但是编程顺序不连续;page x上编程顺序为0x3的4KB单元格与page x+1上编程顺序为0x4的4KB单元格属于编程顺序连续,但是物理地址不连续;page x+1上编程顺序为0xf 的4KB单元格与page x+2上编程顺序为0x0的4KB单元格属于编程顺序连续,且物理地址连续。
如果从page x,编程顺序为0x0的4KB单元格开始,按照图1所示的编程顺序进行编程,那么每个物理页都需要一个映射表单元来写入数据,即需要8个映射表单元。
本公开的发明人发现了上述传统映射表单元的缺点,并对映射表压缩方法进行了改进,单个映射表单元包括连续数据块中首个数据的逻辑地址、物理地址以及连续编程的计数值,从而大大提高了数据压缩率,节省了数据占用的计算机系统的内存和功耗。该通过本示例中的映射表压缩方法仅需要使用一个映射表单元就可以存储按照图1所示的编程顺序连续、逻辑地址连续的所有数据的逻辑地址与物理地址之间的对应关系,不要求物理地址连续。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图2示出了根据本发明实施例的计算机系统的示意性框图。计算机系统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的相应存储单元进行数据访问操作。该存储器控制器128例如包括耦接的控制单元和存储单元,控制单元用于执行本公开提供的映射表压缩方法,存储单元用于存储地址映射关系数据(包括L2P映射表、第一数组、第二数组等)。
存储器130包括闪存芯片阵列。为了提高数据读写性能,控制系统120 的存储器控制器128可以经由多个通道CH0和CH1对存储器130的闪存芯片进行读写。每个通道连接一组闪存芯片。每个闪存芯片包括多个物理块,每个物理块包括多个物理页。对闪存芯片的数据访问操作包括读、写和擦除。由于闪存芯片的物理特性,数据操作的基本单位例如是物理页,擦除操作的基本单位例如是物理块。
在主机110执行数据操作时,控制系统120从主机110接收到指令。控制系统120将指令中的逻辑地址映射成物理地址,该物理地址用于表征存储器130中的位置,包括通道、物理块和物理页等。在读取操作中,控制系统120以物理页为单位读取用户数据和元数据,以及基于用户数据和元数据获取与逻辑地址相对应的读取数据。在写入操作中,控制系统120 将指令中的数据生成用户数据和元数据,然后以物理页为单位写入用户数据和元数据。元数据包括除用户数据外的数据,例如,上述的L2P映射表作为元数据也需要写入存储器130中,否则在控制系统120断电时,L2P 映射表不可恢复。
在上述计算机系统中,控制系统120中的缓存芯片包括SRAM芯片125 和DRAM芯片126。大容量的DRAM芯片126可以支持大容量固态硬盘的地址映射,例如,对于1TB的存储芯片阵列,采用1GB的缓存芯片用于存储 L2P映射表,二者例如是1:1000的关系。
在此所用的术语“模块”可以指代以下各项、作为以下各项的一部分或者包括以下各项:专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用或群组)和/或存储器(共享、专用或群组)、组合逻辑电路和/或提供所描述的功能性的其他合适的组件。
本领域技术人员可以理解,根据本发明的数据处理系统的各个模块或单元可以通过硬件、固件或软件实现。软件例如包括采用JAVA、C/C++/C#、 SQL等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。
根据本发明的数据处理系统和方法可以部署在单个或多个服务器上。例如,可以将不同的模块分别部署在不同的服务器上,形成专用服务器。或者,可以在多个服务器上分布式部署相同的功能单元、模块或系统,以减轻负载压力。服务器包括但不限于在同一个局域网以及通过Internet连接的多个PC机、PC服务器、单片机、超级计算机等。
图3a和3b分别示出了根据本发明实施例的数据在一个字线内的相对地址与编程顺序的关系示意图,在图3a和3b中,以图1所示的一个字线为例示出了数据在一个字线内的相对地址与编程顺序之间的关系示意图,图3a的虚线框内示出了第一数组,图3b的虚线框内示出了第二数组。图 4示出了根据本发明实施例的映射表压缩方法的流程图。
在步骤S101中,接收数据写入指令,并按照连续的编程顺序存储多个数据。上述数据写入指令是上位机(例如,图2所示的主机110)发送的用于将数据写入存储器的指令,上位机会将数据写入指令与数据一同发送至控制系统,控制系统将根据数据写入指令将数据写入存储器,数据例如包括用户数据和元数据,元数据包括除用户数据外的数据,例如包括本公开实施例中的第二数组,第二数组构成L2P映射表的至少一部分。在该步骤中,例如将数据写入存储器中的单层单元和/或多层单元。作为一个示例,将数据写入单层单元,每个单层单元可存储1Bit的数据,只需要两种电压就可以实现数据的表达,数据访问所需时间短,因此传输速度更块,并且稳定性高,使得存储器具有读写速度快的特性。应当理解,步骤S101为可选择执行的步骤,即,本发明实施例的映射表压缩方法可以仅包括步骤S102 至S104。
在步骤S102中,将数据的逻辑地址与物理地址之间的映射关系及连续编程的计数值写入单个映射表单元。在该步骤中,该映射表所包含的多个数据具有连续的编程顺序和逻辑地址,可选的,具有不完全连续的物理地址。
在步骤S103中,建立第一数组,第一数组具有多个第一元素,每个第一元素的编号表征数据在字线中的相对地址,每个第一元素存储的值为数据在该字线内的编程顺序。
在该实施例中,在存储器的进行每一次数据写入时,会在缓存芯片中建立第一数组,该第一数组表征数据在字线中的相对地址与编程顺序之间的对应关系。
请参见图3a,第一数组的编号表征数据在字线中的相对地址,该相对地址例如包括物理页地址(Page)、逻辑单元号(LUN)和页偏移(Frag),以图1所示的一个字线所包含的16个单元格为例,则该字线中各个单元格的相对地址可以表示为page_idx<<(2+1)|LUN<<2|Frag,在第一数组中,每个第一元素对应于一个4k单元格,将各个单元格按照相对地址从前到后的顺序排序,并将排序后的各个单元格对应的第一元素的编号设置为从小到大,每个第一元素存储的值为其对应的单元格在如图1所示的一个字线中的编程顺序。
在步骤S104中,根据第一数组更新第二数组,第二数组表征各个数据的编程顺序与数据在字线中的相对地址之间的关系,相对地址与物理地址相关联。其中,将第一数组中的各个第一元素的编号与其存储的值进行置换,以获得多个第二元素,多个第二元素构成第二数组,各个第二元素的编号表征在字线中的编程顺序,各个第二元素存储的值表征数据在字线中的相对地址。
例如,如图3a和3b所示,第一元素A[0x4]对应于在字线中的相对地址为0<<3|1<<2|0的数据,其编程顺序为0x8,即,A[0x4]=0x8。将第一数组转换为第二数组之后,得到了第二元素B[0x8]=0x4,第二元素的编号表征编程顺序,第二元素B[0x8]存储的数据0x4表征其在字线中的相对地址0<<3|1<<2|0。即,在第一数组中,按照逻辑地址顺序即可查询到该逻辑地址对应的编程顺序,在第二数组中,编程顺序对应于每个第二元素的编号,根据编程顺序即可查找到其在字线中的相对地址。
在本公开实施例中,在不改变编程顺序的情况下,将编程顺序连续的所有数据的逻辑地址与物理地址之间的映射关系存储在一个映射表单元中,在读取数据时利用该映射表单元、第一数组和第二数组查找数据的物理地址,从而大大提高了映射表的压缩率,并且编程顺序连续的数据块越大,对映射表的压缩率越高。
在该示例中,利用第一数组和第二数组采集了字线中的每个单元格内的数据在字线中的相对地址和编程顺序,因此在已知待读取数据的逻辑地址的情况下,利用第一数组可以查询待读取数据所在字线的编程顺序,利用第二数组可以实现利用编程顺序查找待读取数据在字线中的相对地址,进而获得待读取数据的物理地址。假设采用如图1所示的编程顺序,那么相关技术中16个4KB数据的数据需要使用4个映射表单元来存储一个字线中的地址映射,而该示例中的映射表压缩方法仅需要使用一个映射表单元即可存储该字线中的所有单元格的地址映射。因此,本公开实施例提供的映射表压缩方法有利于映射表压缩,在占用相同内存的情况下,该方法可以存储更多的地址映射。
在不同类型的存储器中,即使其采用不同的固件算法(包括编程顺序),都可以通过本公开实施例的映射表压缩方法进行统一,即,将不同存储器的编程顺序以及物理地址进行统一,便于固件进行管理,该该映射表压缩方法的通用性强,可适配各种编程顺序。
如图5所示,本公开还提供了一种数据读取方法,包括步骤S201至步骤S205。
在步骤S201中,接收数据读取指令,以获得所述待读取数据对应的逻辑地址。例如,接收数据读取指令,并解码出逻辑地址LAA4。
在步骤S202中,根据该逻辑地址,可以得到该待读取数据所在连续数据块中的首个数据对应第一数组的编号。在该步骤中,利用待读取数据的逻辑地址和映射表,得到该待读取数据所在连续数据块中的首个数据的逻辑地址,以及首个数据的逻辑地址对应的物理地址。该物理地址包含了该首个数据在物理块中的字线信息,以及表征首个数据所在字线中相对地址的字段,该字段即对应了第一数组的编号。例如,逻辑地址LAA4在逻辑地址LAA0的连续范围内,从而得到映射表单元中、与逻辑地址LAA0映射的首个数据的物理地址FAA0。物理地址FAA0即包含了首个数据在物理块中的字线信息。物理地址FAA0还包含了表征首个数据所在字线中相对地址的字段,即首个数据对应第一数据的编号。第一数组具有多个第一元素,每个第一元素的编号表征数据在字线中的相对地址,每个第一元素存储的值为数据在该字线内的编程顺序。
在步骤S203中,基于第一数组,根据首个数据对应第一数据的编号,获得待读取数据所在字线中的编程顺序。例如,基于如图3a所示的第一数组,假设FAA0所在字线中相对地址为0x8,即首个数据对应第一数据的编号为0x8,根据A[0x8]=0x4,得到首个数据所在字线的编程顺序为0x4。 FAA4与FAA0的编程顺序连续,可以得到FAA4的编程顺序为0x4往后4个,即为0x8。
在步骤S204中,基于第二数组,根据待读取数据所在字线中的编程顺序,得到待读取数据在字线中的相对地址。多个第二元素构成第二数组,各个第二元素的编号表征在字线中的编程顺序,各个第二元素存储的值表征数据在字线中的相对地址。例如,基于如图3b所示的第二数组,根据逻辑地址LAA4对应的编程顺序0x8,得到其所在字线中的相对地址0x4。
在步骤S205中,根据待读取数据的字线信息和待读取数据所在字线中的相对地址,获得待读取数据在物理块中的物理地址,并读取数据。待读取数据的字线信息是在步骤S203中,获得待读取数据所在字线中编程顺序的同时得到的。在该步骤中,已知待读取数据所在的字线信息及其对应的字线中的相对地址0x4,因此可以计算获得待读取数据在物理块中的物理地址。
需要说明的是,本发明实施例并不限定数据的类型,上述数据是为了使得实施例更加清晰易懂而例举的简单实施例,并不代表所有非易失存储器的指标,并且因为非易失存储器采用的元器件的制作工艺质量不同,所以能达到的工作状态会有差异,上述数据是满足一般制作工艺情况下,经过大量的仿真实验得出的数据,并不代表所有非易失存储器的指标。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种映射表压缩方法,其特征在于,包括:
按照连续的编程顺序存储多个数据,将所述数据的逻辑地址与物理地址之间的映射关系及连续编程的计数值写入单个映射表单元;以及
建立第一数组,并根据所述第一数组更新第二数组,
其中,所述第二数组表征各个所述数据的编程顺序与所述数据在字线中的相对地址之间的关系,所述相对地址与所述物理地址相关联。
2.根据权利要求1所述的映射表压缩方法,其特征在于,建立所述第一数组的方法包括:按照多个所述数据的所述相对地址建立所述第一数组,所述第一数组具有多个第一元素,各个所述第一元素的编号表征所述数据的所述相对地址,各个所述第一元素存储的值表征所述数据的所述编程顺序。
3.根据权利要求2所述的映射表压缩方法,其特征在于,根据所述第一数组更新第二数组的方法包括:将所述第一数组中的各个所述第一元素的编号与其存储的值进行置换,以获得多个第二元素,多个所述第二元素形成所述第二数组,各个所述第二元素的编号表征所述数据的所述编程顺序,各个所述第二元素存储的值表征所述数据的所述相对地址。
4.根据权利要求1所述的映射表压缩方法,其特征在于,多个所述数据的编程顺序连续且逻辑地址连续,物理地址不完全连续。
5.根据权利要求1所述的映射表压缩方法,其特征在于,所述相对地址包括物理页地址、逻辑单元号和页偏移。
6.一种映射表的压缩系统,其特征在于,包括:
处理器,用于按照连续的编程顺序存储多个数据,将所述数据的逻辑地址与物理地址之间的映射关系及连续编程的计数值写入映射表,以及建立第一数组,并根据所述第一数组更新第二数组,
其中,所述第二数组表征各个所述数据的所述编程顺序与所述数据在字线中的相对地址之间的关系,所述相对地址与所述物理地址相关联。
7.一种存储器控制器,包括耦接的控制单元和存储单元,所述控制单元执行如1至5任一项所述的映射表压缩方法,所述存储单元用于存储地址映射关系数据。
8.一种固态硬盘,包括如权利要求7所述的存储器控制器和用作存储介质的闪存芯片。
9.一种数据读取方法,其特征在于,包括:
接收数据读取指令,以获得待读取数据对应的逻辑地址;
根据所述逻辑地址,获得所述待读取数据所在连续数据块中的首个数据对应第一数组的编号;
基于所述第一数组,根据所述首个数据对应第一数组的编号,获得所述待读取数据所在字线中的编程顺序;
基于第二数组,根据所述编程顺序,获得所述待读取数据在字线中的相对地址;以及
根据所述待读取数据的字线信息和所述待读取数据在所述字线中的所述相对地址,获得所述待读取数据在物理块中的物理地址,并读取数据。
10.根据权利要求9所述的数据读取方法,其特征在于,获得所述首个数据对应第一数组的编号的方法包括:
利用所述待读取数据对应的逻辑地址和映射表,得到所述首个数据的逻辑地址,以及所述首个数据的物理地址,所述物理地址包含所述首个数据在物理块中的字线信息,以及表征所述首个数据所在字线中相对地址的字段,
其中,所述首个数据所在字线中相对地址的字段对应于所述第一数组的编号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111044469.1A CN114036079B (zh) | 2021-09-07 | 2021-09-07 | 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111044469.1A CN114036079B (zh) | 2021-09-07 | 2021-09-07 | 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114036079A true CN114036079A (zh) | 2022-02-11 |
CN114036079B CN114036079B (zh) | 2023-02-17 |
Family
ID=80140047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111044469.1A Active CN114036079B (zh) | 2021-09-07 | 2021-09-07 | 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036079B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543865A (zh) * | 2022-11-25 | 2022-12-30 | 成都佰维存储科技有限公司 | 掉电保护方法、装置、可读存储介质及电子设备 |
CN115657963A (zh) * | 2022-11-14 | 2023-01-31 | 苏州浪潮智能科技有限公司 | 基于固态硬盘的顺序写方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5696927A (en) * | 1995-12-21 | 1997-12-09 | Advanced Micro Devices, Inc. | Memory paging system and method including compressed page mapping hierarchy |
JP2006107503A (ja) * | 2002-01-09 | 2006-04-20 | Matsushita Electric Ind Co Ltd | プロセッサ及びプログラム実行方法 |
CN107562644A (zh) * | 2017-08-11 | 2018-01-09 | 记忆科技(深圳)有限公司 | 一种固态硬盘映射表的压缩方法 |
US10303655B1 (en) * | 2015-12-21 | 2019-05-28 | EMC IP Holding Company LLC | Storage array compression based on the structure of the data being compressed |
CN110262982A (zh) * | 2019-05-05 | 2019-09-20 | 杭州电子科技大学 | 一种固态硬盘地址映射的方法 |
CN111813703A (zh) * | 2019-04-10 | 2020-10-23 | 慧荣科技股份有限公司 | 数据储存装置及逻辑至物理地址映射表的更新方法 |
CN112486861A (zh) * | 2020-11-30 | 2021-03-12 | 深圳忆联信息系统有限公司 | 固态硬盘映射表数据查询方法、装置、计算机设备及存储介质 |
CN112486852A (zh) * | 2020-12-01 | 2021-03-12 | 合肥大唐存储科技有限公司 | 一种固态硬盘及其地址映射方法 |
-
2021
- 2021-09-07 CN CN202111044469.1A patent/CN114036079B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5696927A (en) * | 1995-12-21 | 1997-12-09 | Advanced Micro Devices, Inc. | Memory paging system and method including compressed page mapping hierarchy |
JP2006107503A (ja) * | 2002-01-09 | 2006-04-20 | Matsushita Electric Ind Co Ltd | プロセッサ及びプログラム実行方法 |
US10303655B1 (en) * | 2015-12-21 | 2019-05-28 | EMC IP Holding Company LLC | Storage array compression based on the structure of the data being compressed |
CN107562644A (zh) * | 2017-08-11 | 2018-01-09 | 记忆科技(深圳)有限公司 | 一种固态硬盘映射表的压缩方法 |
CN111813703A (zh) * | 2019-04-10 | 2020-10-23 | 慧荣科技股份有限公司 | 数据储存装置及逻辑至物理地址映射表的更新方法 |
CN110262982A (zh) * | 2019-05-05 | 2019-09-20 | 杭州电子科技大学 | 一种固态硬盘地址映射的方法 |
CN112486861A (zh) * | 2020-11-30 | 2021-03-12 | 深圳忆联信息系统有限公司 | 固态硬盘映射表数据查询方法、装置、计算机设备及存储介质 |
CN112486852A (zh) * | 2020-12-01 | 2021-03-12 | 合肥大唐存储科技有限公司 | 一种固态硬盘及其地址映射方法 |
Non-Patent Citations (5)
Title |
---|
YU DU等: "Supporting superpages in non-contiguous physical memory", 《2015 IEEE 21ST INTERNATIONAL SYMPOSIUM ON HIGH PERFORMANCE COMPUTER ARCHITECTURE (HPCA)》 * |
ZILIN SHI等: "ME-TCAM: Memory-Efficient Ternary Content Addressable Memory Based on Multipumping-Enabled LUTRAM on FPGA", 《2020 INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTING AND HUMAN-COMPUTER INTERACTION (ICHCI): 2020 INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTING AND HUMAN-COMPUTER INTERACTION (ICHCI)》 * |
常恒: "一种基于压缩页的固态存储FTL性能优化算法的研究", 《中国优秀硕士学位论文全文数据库》 * |
李红艳: "针对固态盘的I/O优化技术研究", 《中国博士学位论文全文数据库》》 * |
蔡晓乐等: "基于区域页级映射的闪存转换层设计", 《微电子学与计算机》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115657963A (zh) * | 2022-11-14 | 2023-01-31 | 苏州浪潮智能科技有限公司 | 基于固态硬盘的顺序写方法、装置、电子设备及存储介质 |
WO2024103870A1 (zh) * | 2022-11-14 | 2024-05-23 | 苏州元脑智能科技有限公司 | 基于固态硬盘的顺序写方法、装置、电子设备及存储介质 |
CN115543865A (zh) * | 2022-11-25 | 2022-12-30 | 成都佰维存储科技有限公司 | 掉电保护方法、装置、可读存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114036079B (zh) | 2023-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475427B (zh) | 使用低延迟非易失性存储器进行逻辑至物理映射管理 | |
US8166233B2 (en) | Garbage collection for solid state disks | |
US8180953B2 (en) | Data accessing method for flash memory, and storage system and controller system thereof | |
US8234466B2 (en) | Flash memory storage system applying SLC NAND flash memory and MLC NAND flash memory and data writing method thereof | |
US8239639B2 (en) | Method and apparatus for providing data type and host file information to a mass storage system | |
US11232041B2 (en) | Memory addressing | |
US8291155B2 (en) | Data access method, memory controller and memory storage system | |
US8713283B2 (en) | Method of interfacing a host operating through a logical address space with a direct file storage medium | |
US8312554B2 (en) | Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus | |
US20130151759A1 (en) | Storage device and operating method eliminating duplicate data storage | |
US20130073798A1 (en) | Flash memory device and data management method | |
US20110099324A1 (en) | Flash memory storage system and flash memory controller and data processing method thereof | |
US8914608B2 (en) | Data storage device and computing system including the same | |
KR102585883B1 (ko) | 메모리 시스템의 동작 방법 및 메모리 시스템 | |
CN113419675B (zh) | 用于存储器的写操作方法及读操作方法 | |
US20100042775A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
CN113419975B (zh) | 存储器的控制系统及地址映射方法和地址映射装置 | |
CN114036079B (zh) | 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法 | |
US20080307156A1 (en) | System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium | |
US20140129763A1 (en) | Data writing method, memory controller, and memory storage apparatus | |
US8812772B2 (en) | Data merging method for non-volatile memory and controller and storage apparatus using the same | |
CN114730300A (zh) | 对区命名空间存储器的增强型文件系统支持 | |
CN112463647A (zh) | 使用散列来减小前向映射表的大小 | |
JP2021533467A (ja) | 論理対物理テーブルフラグメント | |
JP2009503740A (ja) | データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け |
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 |