CN112486852A - 一种固态硬盘及其地址映射方法 - Google Patents
一种固态硬盘及其地址映射方法 Download PDFInfo
- Publication number
- CN112486852A CN112486852A CN202011387849.0A CN202011387849A CN112486852A CN 112486852 A CN112486852 A CN 112486852A CN 202011387849 A CN202011387849 A CN 202011387849A CN 112486852 A CN112486852 A CN 112486852A
- Authority
- CN
- China
- Prior art keywords
- data
- solid state
- state disk
- logical block
- continuous
- 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
- 238000013507 mapping Methods 0.000 title claims abstract description 126
- 239000007787 solid Substances 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000007726 management method Methods 0.000 abstract description 6
- 238000012005 ligant binding assay Methods 0.000 description 8
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 8
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 1
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
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/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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- 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
-
- 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/0877—Cache access modes
- G06F12/0882—Page mode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例公开了一种固态硬盘及其地址映射方法,该方法包括:当固态硬盘接收到主机端发送的一段数据及该段数据相应的逻辑区块地址时,判断该段数据相应的逻辑区块地址是否连续;当该段数据相应的逻辑区块地址连续时,将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中,并采用二叉树数据结构保存首尾两个逻辑区块地址和对应的物理区块地址这种新的页映射表管理方法来替代原有的用线性表管理页映射表的方法。该实施例方案对于有缓存的固态硬盘减少了在缓存方面的投入成本,可将多余的缓存空间用于提高固态硬盘性能;对于无缓存的固态硬盘大大缩短从闪存中读写映页映射表的时间,提高了固态硬盘的读写性能。
Description
技术领域
本文涉及数据处理与存储技术,尤指一种固态硬盘及其地址映射方法。
背景技术
由于主机端发送的数据的地址(逻辑区块地址:LBA)与其存储在闪存(NAND)中的地址(物理块地址:PBA)并不是顺序对应的,意味着LBA x并不一定存储在闪存中的PBA x位置上,需要固态硬盘(SSD)中的固件(一段运行在固态硬盘固件芯片中的程序)将二者进行一一对应。否则主机端要读取某一逻辑区块地址对应的数据时,固件找不到该数据在闪存中的位置,造成数据丢失。
已有技术现状:当前固态硬盘普遍采用页映射的方式管理LBA到PBA的映射关系,具体情况如图1所示。
即每当主机端写入一个页(PAGE)大小的数据时,固态硬盘的固件就会将该笔数据写入到某一物理页中,并将该数据的逻辑区块地址与物理块地址相对应。具体步骤:主机端将要写入的数据及相应的逻辑区块地址送达固态硬盘端;固件找到空闲的闪存物理块及相应的物理地址;固态硬盘中的固件将主机端发送的数据写入到物理块中;最后固件将该数据的逻辑区块地址与物理块地址相关联。在有缓存(DRAM)的固态硬盘中,固件会专门将一段连续的缓存空间用作映射表的存储,即缓存地址X存储LBA0所对应的PBA,缓存地址X+1存储LBA1所对应的PBA,缓存地址X+y存储LBAy所对应的PBA。
该方案使得在有缓存的固件中,主机端读取速度更快,且持续读写时性能波动较小,但是缓存硬件成本较高;在无缓存的固件中,空盘读写的性能较高,随后主机端读写速度大幅下降,性能较低。
目前无缓存的固态硬盘性能和有缓存的固态硬盘差距较大,其中一个重要原因在于有缓存的固态硬盘将页映射表存储在缓存中,在缓存中读取页映射表远快于从闪存中读取页映射表,因此前者性能更好;但是有缓存的固态硬盘会因为大容量的缓存而拉高了生产成本和销售价格,削弱了产品的价格竞争力。
因此,按照现有的闪存组织结构,页映射表大小约为固态硬盘可使用空间的1/1024。由于页映射表需要占用一定的空间,在有缓存的固态硬盘中会占用大部分的缓存空间,造成缓存成本增高;其次,在无缓存的固态硬盘中,主机端每次读取或写入某一逻辑区块地址的数据时,固件都要从闪存中读取或写入页映射表,这样会降低主机端数据的读写速度。
发明内容
本申请实施例提供了一种固态硬盘及其地址映射方法,对于有缓存的固态硬盘,能够减少生产商在缓存方面的投入成本,也可以将多余的缓存空间用于提高固态硬盘性能或可靠性;对于无缓存的固态硬盘,能够大大减少从闪存中读写映射关系的数据量,进而提高固态硬盘的读写性能。
本申请实施例提供了一种固态硬盘的地址映射方法,所述方法可以包括:
当固态硬盘接收到主机端发送的一段数据及该段数据相应的逻辑区块地址时,判断该段数据相应的逻辑区块地址是否连续;
当该段数据相应的逻辑区块地址连续时,将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中;
采用二叉树数据结构保存该段数据相应的首尾两个逻辑区块地址和对应的物理区块地址。
在本申请的示例性实施例中,当所述固态硬盘具有缓存时,所述方法还可以包括:
在所述固态硬盘接收到该段数据及该段数据相应的逻辑区块地址后,将该段数据及该段数据相应的逻辑区块地址存储于所述缓存中,并且将缓存中待写入闪存中的数据根据所述数据的逻辑区块地址进行排序,当所述缓存中存储的数据积累到预设的数据阈值时,判断所述缓存中排序好的数据相应的逻辑区块地址是否连续;
当所述缓存中的数据相应的逻辑区块地址连续时,将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中;
当所述缓存中的数据相应的逻辑区块地址不连续时,将所述逻辑区块地址中不连续的数据存储到闪存中连续的或不连续的物理块地址中。
在本申请的示例性实施例中,当所述固态硬盘具有缓存时,所述方法还可以包括:建立连续的逻辑区块地址的首尾地址与连续的物理块地址的首尾地址之间的映射关系,并将所述映射关系存储在二叉树数据结构中。
在本申请的示例性实施例中,所述将所述映射关系存储在二叉树数据结构中可以包括:
从所述二叉树数据结构中找到所述逻辑区块地址,检测所述逻辑区块地址以前是否写入过数据,当所述逻辑区块地址以前未写入过数据,则在所述二叉树数据结构中新***所述映射关系;当所述逻辑区块地址以前写入过数据,则在所述二叉树数据结构中采用所述映射关系更新以前的映射关系,并通知预设的垃圾回收模块对以前的映射关系进行垃圾回收。
在本申请的示例性实施例中,所述方法还可以包括:
当所述二叉树数据结构中新增和修改的映射关系积累到设定阈值时,将所述二叉树数据结构中新增和修改的映射关系保存到闪存中。
在本申请的示例性实施例中,所述方法还可以包括:
在将待存储的数据存入闪存之前,将所述待存储的数据划分成多个部分;将所述多个部分通过多个通道并行存储到闪存中。
在本申请的示例性实施例中,当所述固态硬盘不具有缓存时,所述方法还可以包括:
当该段数据相应的逻辑区块地址连续时,直接将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中。
在本申请的示例性实施例中,所述方法还可以包括:
根据该段数据相应的逻辑区块地址从闪存中加载相应的页映射表,并更新所述页映射表中该段数据相应的逻辑区块地址对应的映射关系,将修改后的页映射表存储到闪存中;
当主机端读取数据时,根据所述数据段对应的逻辑区块地址加载对应的页映射表,查询所述页映射表中相应的映射关系获得对应的物理块地址的范围,并根据所述物理块地址的范围从闪存中读取相应数据返回给主机端。
在本申请的示例性实施例中,在将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中之前,所述方法还可以包括:
从所述闪存中寻找该段连续的物理区块地址,并返回该段连续的物理区块地址的首尾地址;
当该段连续的物理区块地址含有坏块时,在读写时自动跳过所述坏块。
本申请实施例还提供了一种固态硬盘,可以包括闪存和固件芯片,所述固件芯片中存储有指令,当所述指令被所述固件芯片执行时,实现上述任意一项所述的固态硬盘的地址映射方法。
与相关技术相比,本申请实施例可以包括:当固态硬盘接收到主机端发送的一段数据及该段数据相应的逻辑区块地址时,判断该段数据相应的逻辑区块地址是否连续;当该段数据相应的逻辑区块地址连续时,将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中;采用二叉树数据结构保存该段数据相应的首尾两个逻辑区块地址和对应的物理区块地址。通过该实施例方案,对于有缓存的固态硬盘,减少了生产商在缓存方面的投入成本,也可以将多余的缓存空间用于提高固态硬盘性能或可靠性;对于无缓存的固态硬盘,大大减少了从闪存中读写映射关系的数据量,进而提高了固态硬盘的读写性能。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例的固态硬盘的地址映射方法流程图;
图2为本申请实施例的采用二叉树数据结构管理页映射表的示意图;
图3为本申请实施例的固态硬盘组成框图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
本申请实施例提供了一种固态硬盘的地址映射方法,如图1所示,所述方法可以包括步骤S101-S103:
S101、当固态硬盘接收到主机端发送的一段数据及该段数据相应的逻辑区块地址时,判断该段数据相应的逻辑区块地址是否连续;
S102、当该段数据相应的逻辑区块地址连续时,将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中;
S103、采用二叉树数据结构保存该段数据相应的首尾两个逻辑区块地址和对应的物理区块地址。
在本申请的示例性实施例中,当固件接收到主机端要存储的数据及相应的逻辑区块地址时,会将该笔数据按顺序存储在闪存(NAND)中,即用一段数据对应的首尾LBA(逻辑区块地址)和PBA(物理块地址,或称物理区块地址)建立页映射表,有别于现有的用线性表建立页映射表的方法。由于页映射表占用一定的存储空间,在有缓存的固态硬盘中会占用大量缓存空间,用首尾LBA和PBA建立映射表的方法可有效降低映射表在缓存中占用的存储空间,可以降低厂家在缓存方面的成本;在无缓存的固态硬盘中,本发明可以有效减少要读写的映射表数量,从而减少固件(一段运行在固态硬盘固件芯片中的程序)从闪存读写映射表的时间,进而提高了无缓存固态硬盘的主机端读写速度。
在本申请的示例性实施例中,当所述固态硬盘具有缓存时,所述方法还可以包括:
在所述固态硬盘接收到该段数据及该段数据相应的逻辑区块地址后,将该段数据及该段数据相应的逻辑区块地址存储于所述缓存中,并且将缓存中待写入闪存中的数据根据所述数据的逻辑区块地址进行排序,当所述缓存中存储的数据积累到预设的数据阈值时,判断所述缓存中排序好的数据相应的逻辑区块地址是否连续;
当所述缓存中的数据相应的逻辑区块地址连续时,将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中;
当所述缓存中的数据相应的逻辑区块地址不连续时,将所述逻辑区块地址中不连续的数据存储到闪存中连续的或不连续的物理块地址中。
在本申请的示例性实施例中,当主机端发送一段数据及相应的逻辑区块地址至固态硬盘时,固件首先将该笔数据及相应的LBA存储于缓存中,当缓存中存储的数据积累到某一数据阈值(可根据具体情况设置)时,判断这些数据的LBA是否连续,如果是连续的,则将LBA连续的数据按顺序存储到闪存中一段连续的物理空间中(即PBA为连续的),将LBA不是连续的数据存储在不同的闪存物理块中。
在本申请的示例性实施例中,在将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中之前,所述方法还可以包括:
从所述闪存中寻找该段连续的物理区块地址,并返回该段连续的物理区块地址的首尾地址;
当该段连续的物理区块地址含有坏块时,在读写时自动跳过所述坏块。
在本申请的示例性实施例中,当缓存中的数据积累到某一阈值时,固件在闪存中寻找一段连续的物理区块地址,并返回这段连续的物理区块地址的首尾两个地址,如果这段连续的物理区块地址含有坏块或坏页,则固件在读写时自动跳过。
在本申请的示例性实施例中,所述方法还可以包括:
在将待存储的数据存入闪存之前,将所述待存储的数据划分成多个部分;将所述多个部分通过多个通道并行存储到闪存中。
在本申请的示例性实施例中,为了加快读写速率,固件可以启用多通道存储,即将一段数据划分为多个部分,不同部分的数据同时通过多个通道发送给闪存,此时PBA的组织方式可采取通道0的块0的页0作为PBA0,通道1的块0的页0作为PBA1的方式来管理。
在本申请的示例性实施例中,当所述固态硬盘具有缓存时,所述方法还可以包括:建立连续的逻辑区块地址的首尾地址与连续的物理块地址的首尾地址之间的映射关系,并将所述映射关系存储在二叉树数据结构中。
在本申请的示例性实施例中,对于页映射表的管理,现在流行的方案是采用线性表的方式管理页映射表,即,将某一段连续的缓存用作存储页映射表,需要查找LBAx所对应的PBA时,直接访问页映射表在缓存中的基地址和LBA的偏移量即可,如页映射表的LBA0存储于缓存a处,一个PBA占用i个字节,那么LBAx所对应的PBA存储在(a+x*i)处。但是本申请实施例方案产生的页映射关系并不适用于此种管理方法,本申请实施例方案采用二叉树的管理方案,即,将映射关系LBAx-PBAy存储在二叉树数据结构中以方便管理,如图2所示。
在本申请的示例性实施例中,核心创新点即为用二叉树数据结构管理和存储与以往不同的、新的页映射表,使得本申请实施例在页映射表的管理和存储上具有高效、可应用于实践的特性。
在本申请的示例性实施例中,所述将所述映射关系存储在二叉树数据结构中可以包括:
从所述二叉树数据结构中找到所述逻辑区块地址,检测所述逻辑区块地址以前是否写入过数据,当所述逻辑区块地址以前未写入过数据,则在所述二叉树数据结构中新***所述映射关系;当所述逻辑区块地址以前写入过数据,则在所述二叉树数据结构中采用所述映射关系更新以前的映射关系,并通知预设的垃圾回收模块对以前的映射关系进行垃圾回收。
在本申请的示例性实施例中,当数据已经存储到闪存中时,固件已经获得该笔数据的LBA及对应的PBA,即LBAx-LBA(x+y)对应着PBAk-PBA(k+y)。固件可以根据LBA查找二叉树,如果该段LBA以前未写入过数据,则在二叉树中新***该笔映射关系;如果该段LBA以前写入过数据,则用新的映射关系替换旧的的映射关系,并将旧的映射关系反馈给垃圾回收模块进行垃圾回收。
在本申请的示例性实施例中,所述方法还可以包括:
当所述二叉树数据结构中新增和修改的映射关系积累到设定阈值时,将所述二叉树数据结构中新增和修改的映射关系保存到闪存中。
在本申请的示例性实施例中,由于固态硬盘在某些情况下需保证用户数据在异常掉电时不丢失,需要经常将最新的页映射表保存到闪存中,避免页映射表丢失或错误导致用户数据丢失。因此,当新的映射关系积累到某一阈值(可人为设置)时,可以将新的映射关系保存到闪存中,以防异常掉电造成用户数据丢失。
在本申请的示例性实施例中,当所述固态硬盘不具有缓存时,如果主机端需要读取某一数据时,固件则先从二叉树页映射表查询该笔数据LBA所对应的PBA,然后根据PBA范围从闪存对应区域读取数据送至主机端。
在本申请的示例性实施例中,当所述固态硬盘不具有缓存时,所述方法还可以包括:
当该段数据相应的逻辑区块地址连续时,直接将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中。
在本申请的示例性实施例中,所述方法还可以包括:
根据该段数据相应的逻辑区块地址从闪存中加载相应的页映射表,并更新所述页映射表中该段数据相应的逻辑区块地址对应的映射关系,将修改后的页映射表存储到闪存中。
在本申请的示例性实施例中,当主机端读取数据时,根据所述数据段对应的逻辑区块地址加载对应的页映射表,查询所述页映射表中相应的映射关系获得对应的物理块地址的范围,并根据所述物理块地址的范围从闪存中读取相应数据返回给主机端。
在本申请的示例性实施例中,当固态硬盘未带缓存时:当主机端发送一段数据及相应的逻辑区块地址至固态硬盘时,固件会将该笔数据直接存储到闪存中;并且固件会根据该笔数据的LBA从闪存中加载相应的页映射表,然后更新该段LBA的映射关系,最后将修改后的映射表存储到闪存中。如果是从固态硬盘中读取数据,固件则首先根据该数据对应的LBA加载对应的页映射表,查询相应的映射关系获得PBA范围,然后根据PBA范围从闪存中读取相应数据返回给主机端。
在本申请的示例性实施例中,下面通过两个具体实施例说明本申请实施例的方案。
在本申请的示例性实施例中,例如,当前的社交软件服务器上通常会存储用户发布的大量图片,而一张图片的大小经过压缩后往往有数十KB(千比特)的大小,部分图片可能达到数MB(兆比特)大小。如果采用现有的运用线性表管理映射关系的固态硬盘,假如每4KB大小的数据会产生一个映射关系,则一张28KB大小的图片会产生7个映射关系,即存储7个PBA;如果采用本申请实施例的方法,则只需存储两个LBA(数据对应的首尾LBA)和两个PBA(数据存储时对应的首尾PBA),一般LBA和PBA大小相等,比常规方法节约了不小的空间。如果是4MB的图片大小,则采用线性表管理映射关系的固态硬盘会存储4096/4即1024个PBA,而采用本申请实施例的固态硬盘还是只需存储两个LBA和两个PBA,映射表的大小会大幅减小。
在本申请的示例性实施例中,又例如,假设一个LBA大小为a字节,一个PBA为b字节,固态硬盘每存储4096个字节的数据产生一个映射关系,如果固态硬盘要存储c字节的数据,那么现有的采用线性表管理映射关系的固态硬盘一般会花费(c/4096)*b个字节存储该笔数据产生的映射关系;如果采用本申请实施例的新型映射关系建立方法,则只需2(a+b)个字节存储该数据产生的映射关系。另外,在有缓存的固态硬盘中,现有的固态硬盘会将绝大部分的缓存空间用于存储映射关系,映射关系的减少一方面可以减少生产商在缓存方面的投入成本,也可以将多余的缓存空间用于提高固态硬盘性能或可靠性;在无缓存的固态硬盘中,本申请实施例方案可以大大减少从闪存中读写映射关系的数据量,进而提高固态硬盘的读写性能。
本申请实施例还提供了一种固态硬盘1,如图3所示,可以包括闪存11和固件芯片12,所述固件芯片中存储有指令,当所述指令被所述固件芯片执行时,实现上述任意一项所述的固态硬盘的地址映射方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (10)
1.一种固态硬盘的地址映射方法,其特征在于,所述方法包括:
当固态硬盘接收到主机端发送的一段数据及该段数据相应的逻辑区块地址时,判断该段数据相应的逻辑区块地址是否连续;
当该段数据相应的逻辑区块地址连续时,将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中;
采用二叉树数据结构保存该段数据相应的首尾两个逻辑区块地址和对应的物理区块地址。
2.根据权利要求1所述的固态硬盘的地址映射方法,其特征在于,当所述固态硬盘具有缓存时,所述方法还包括:
在所述固态硬盘接收到该段数据及该段数据相应的逻辑区块地址后,将该段数据及该段数据相应的逻辑区块地址存储于所述缓存中,并且将缓存中待写入闪存中的数据根据所述数据的逻辑区块地址进行排序,当所述缓存中存储的数据积累到预设的数据阈值时,判断所述缓存中排序好的数据相应的逻辑区块地址是否连续;
当所述缓存中的数据相应的逻辑区块地址连续时,将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中;
当所述缓存中的数据相应的逻辑区块地址不连续时,将所述逻辑区块地址中不连续的数据存储到闪存中连续的或不连续的物理块地址中。
3.根据权利要求2所述的固态硬盘的地址映射方法,其特征在于,当所述固态硬盘具有缓存时,所述方法还包括:建立连续的逻辑区块地址的首尾地址与连续的物理块地址的首尾地址之间的映射关系,并将所述映射关系存储在二叉树数据结构中。
4.根据权利要求3所述的固态硬盘的地址映射方法,其特征在于,所述将所述映射关系存储在二叉树数据结构中包括:
从所述二叉树数据结构中找到所述逻辑区块地址,检测所述逻辑区块地址以前是否写入过数据,当所述逻辑区块地址以前未写入过数据,则在所述二叉树数据结构中新***所述映射关系;当所述逻辑区块地址以前写入过数据,则在所述二叉树数据结构中采用所述映射关系更新以前的映射关系,并通知预设的垃圾回收模块对以前的映射关系进行垃圾回收。
5.根据权利要求3或4所述的固态硬盘的地址映射方法,其特征在于,所述方法还包括:
当所述二叉树数据结构中新增和修改的映射关系积累到设定阈值时,将所述二叉树数据结构中新增和修改的映射关系保存到闪存中。
6.根据权利要求2所述的固态硬盘的地址映射方法,其特征在于,所述方法还包括:
在将待存储的数据存入闪存之前,将所述待存储的数据划分成多个部分;将所述多个部分通过多个通道并行存储到闪存中。
7.根据权利要求1所述的固态硬盘的地址映射方法,其特征在于,当所述固态硬盘不具有缓存时,所述方法还包括:
当该段数据相应的逻辑区块地址连续时,直接将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中。
8.根据权利要求7所述的固态硬盘的地址映射方法,其特征在于,所述方法还包括:
根据该段数据相应的逻辑区块地址从闪存中加载相应的页映射表,并更新所述页映射表中该段数据相应的逻辑区块地址对应的映射关系,将修改后的页映射表存储到闪存中;
当主机端读取数据时,根据所述数据段对应的逻辑区块地址加载对应的页映射表,查询所述页映射表中相应的映射关系获得对应的物理块地址的范围,并根据所述物理块地址的范围从闪存中读取相应数据返回给主机端。
9.根据权利要求2或7所述的固态硬盘的地址映射方法,其特征在于,在将所述逻辑区块地址中连续的数据按顺序存储到闪存中一段连续的物理块地址中之前,所述方法还包括:
从所述闪存中寻找该段连续的物理区块地址,并返回该段连续的物理区块地址的首尾地址;
当该段连续的物理区块地址含有坏块时,在读写时自动跳过所述坏块。
10.一种固态硬盘,包括闪存和固件芯片,所述固件芯片中存储有指令,其特征在于,当所述指令被所述固件芯片执行时,实现如权利要求1-9任意一项所述的固态硬盘的地址映射方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011387849.0A CN112486852B (zh) | 2020-12-01 | 2020-12-01 | 一种固态硬盘及其地址映射方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011387849.0A CN112486852B (zh) | 2020-12-01 | 2020-12-01 | 一种固态硬盘及其地址映射方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112486852A true CN112486852A (zh) | 2021-03-12 |
CN112486852B CN112486852B (zh) | 2024-05-14 |
Family
ID=74938841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011387849.0A Active CN112486852B (zh) | 2020-12-01 | 2020-12-01 | 一种固态硬盘及其地址映射方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486852B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326001A (zh) * | 2021-05-20 | 2021-08-31 | 锐掣(杭州)科技有限公司 | 数据处理方法、装置、设备、***、介质及程序 |
CN113555057A (zh) * | 2021-07-26 | 2021-10-26 | 成都储迅科技有限责任公司 | 一种扩大固态硬盘映射表单元的实现方法 |
CN113625973A (zh) * | 2021-08-30 | 2021-11-09 | 深圳市得一微电子有限责任公司 | 数据写入方法、装置、电子设备及计算机可读存储介质 |
CN113704140A (zh) * | 2021-08-27 | 2021-11-26 | 锐掣(杭州)科技有限公司 | 一种固态硬盘地址映射方法及装置 |
CN114036079A (zh) * | 2021-09-07 | 2022-02-11 | 联芸科技(杭州)有限公司 | 映射表压缩方法、***、存储器控制器、固态硬盘及数据读取方法 |
CN115033175A (zh) * | 2022-05-27 | 2022-09-09 | 阿里巴巴(中国)有限公司 | 数据读取方法和装置、存储介质及处理器 |
CN115629720A (zh) * | 2022-12-20 | 2023-01-20 | 鹏钛存储技术(南京)有限公司 | 基于闪存为介质的存储设备上的非对称条带化方法 |
CN115756341A (zh) * | 2023-01-09 | 2023-03-07 | 苏州浪潮智能科技有限公司 | 固态硬盘的垃圾回收方法、装置、电子设备及存储介质 |
CN115933995A (zh) * | 2023-01-09 | 2023-04-07 | 苏州浪潮智能科技有限公司 | 固态硬盘中数据写入方法、装置、电子设备及可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070118688A1 (en) * | 2000-01-06 | 2007-05-24 | Super Talent Electronics Inc. | Flash-Memory Card for Caching a Hard Disk Drive with Data-Area Toggling of Pointers Stored in a RAM Lookup Table |
CN1996464A (zh) * | 2006-01-04 | 2007-07-11 | 日立环球储存科技荷兰有限公司 | 地址分配方法、磁盘驱动器和数据写入方法 |
CN101552032A (zh) * | 2008-12-12 | 2009-10-07 | 深圳市晶凯电子技术有限公司 | 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置 |
CN107066393A (zh) * | 2017-01-12 | 2017-08-18 | 安徽大学 | 提高地址映射表中映射信息密度的方法 |
CN108121670A (zh) * | 2017-08-07 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种减少固态硬盘元数据回刷频率的映射方法 |
CN108255420A (zh) * | 2017-12-22 | 2018-07-06 | 深圳忆联信息***有限公司 | 一种固态硬盘缓存管理方法及固态硬盘 |
-
2020
- 2020-12-01 CN CN202011387849.0A patent/CN112486852B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070118688A1 (en) * | 2000-01-06 | 2007-05-24 | Super Talent Electronics Inc. | Flash-Memory Card for Caching a Hard Disk Drive with Data-Area Toggling of Pointers Stored in a RAM Lookup Table |
CN1996464A (zh) * | 2006-01-04 | 2007-07-11 | 日立环球储存科技荷兰有限公司 | 地址分配方法、磁盘驱动器和数据写入方法 |
CN101552032A (zh) * | 2008-12-12 | 2009-10-07 | 深圳市晶凯电子技术有限公司 | 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置 |
CN107066393A (zh) * | 2017-01-12 | 2017-08-18 | 安徽大学 | 提高地址映射表中映射信息密度的方法 |
CN108121670A (zh) * | 2017-08-07 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种减少固态硬盘元数据回刷频率的映射方法 |
CN108255420A (zh) * | 2017-12-22 | 2018-07-06 | 深圳忆联信息***有限公司 | 一种固态硬盘缓存管理方法及固态硬盘 |
Non-Patent Citations (1)
Title |
---|
朱贵宪;魏胜利: "缓存—主存地址映射方式解析", 《电脑知识与技术》, vol. 14, no. 9, pages 292 - 294 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326001B (zh) * | 2021-05-20 | 2023-08-01 | 锐掣(杭州)科技有限公司 | 数据处理方法、装置、设备、***、介质及程序 |
CN113326001A (zh) * | 2021-05-20 | 2021-08-31 | 锐掣(杭州)科技有限公司 | 数据处理方法、装置、设备、***、介质及程序 |
CN113555057A (zh) * | 2021-07-26 | 2021-10-26 | 成都储迅科技有限责任公司 | 一种扩大固态硬盘映射表单元的实现方法 |
CN113704140A (zh) * | 2021-08-27 | 2021-11-26 | 锐掣(杭州)科技有限公司 | 一种固态硬盘地址映射方法及装置 |
CN113625973A (zh) * | 2021-08-30 | 2021-11-09 | 深圳市得一微电子有限责任公司 | 数据写入方法、装置、电子设备及计算机可读存储介质 |
CN113625973B (zh) * | 2021-08-30 | 2024-01-16 | 得一微电子股份有限公司 | 数据写入方法、装置、电子设备及计算机可读存储介质 |
CN114036079A (zh) * | 2021-09-07 | 2022-02-11 | 联芸科技(杭州)有限公司 | 映射表压缩方法、***、存储器控制器、固态硬盘及数据读取方法 |
CN115033175A (zh) * | 2022-05-27 | 2022-09-09 | 阿里巴巴(中国)有限公司 | 数据读取方法和装置、存储介质及处理器 |
CN115629720A (zh) * | 2022-12-20 | 2023-01-20 | 鹏钛存储技术(南京)有限公司 | 基于闪存为介质的存储设备上的非对称条带化方法 |
CN115629720B (zh) * | 2022-12-20 | 2023-07-28 | 鹏钛存储技术(南京)有限公司 | 基于闪存为介质的存储设备上的非对称条带化方法 |
CN115933995A (zh) * | 2023-01-09 | 2023-04-07 | 苏州浪潮智能科技有限公司 | 固态硬盘中数据写入方法、装置、电子设备及可读介质 |
CN115933995B (zh) * | 2023-01-09 | 2023-05-09 | 苏州浪潮智能科技有限公司 | 固态硬盘中数据写入方法、装置、电子设备及可读介质 |
CN115756341B (zh) * | 2023-01-09 | 2023-04-07 | 苏州浪潮智能科技有限公司 | 固态硬盘的垃圾回收方法、装置、电子设备及存储介质 |
CN115756341A (zh) * | 2023-01-09 | 2023-03-07 | 苏州浪潮智能科技有限公司 | 固态硬盘的垃圾回收方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112486852B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112486852B (zh) | 一种固态硬盘及其地址映射方法 | |
CN110149803B (zh) | 数据存储方法、***及终端设备 | |
CN104346357B (zh) | 一种嵌入式终端的文件存取方法及*** | |
US8745353B2 (en) | Block boundary resolution for mismatched logical and physical block sizes | |
US8892812B2 (en) | Flash memory device and data writing method for a flash memory | |
US8140737B2 (en) | Method for enhancing life cycle of memory | |
CN109976669B (zh) | 一种边缘存储方法、装置和存储介质 | |
CN109918316B (zh) | 一种减少ftl地址映射空间的方法及其*** | |
CN101645043A (zh) | 写数据的方法、读数据的方法及存储设备 | |
CN113419675B (zh) | 用于存储器的写操作方法及读操作方法 | |
CN112597072A (zh) | 一种Flash存储器的数据更新方法和装置 | |
CN111966281B (zh) | 数据储存装置与数据处理方法 | |
CN113190180A (zh) | 一种基于混合介质的存储装置及分布式存储*** | |
CN108427648B (zh) | 存储***页内脏数据索引方法和装置 | |
CN113835639B (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
CN112486861B (zh) | 固态硬盘映射表数据查询方法、装置、计算机设备及存储介质 | |
CN117370222A (zh) | 存储映射方法、装置、计算机可读存储介质及电子设备 | |
CN110262980B (zh) | 基于有限寿命存储介质的高速存储*** | |
JP6361130B2 (ja) | ファイルアクセスプログラム、ファイルアクセス方法 | |
CN113434438B (zh) | 一种提高智能卡flash写入寿命的方法 | |
CN114003169B (zh) | 一种用于ssd的数据压缩方法 | |
CN115237351A (zh) | Nand块动态重映射、读写命令处理方法及存储设备 | |
CN111758086B (zh) | 用于ssd的映射表的刷新方法 | |
CN114296644A (zh) | 一种固态硬盘的数据管理方法和装置 | |
CN115729439A (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 | ||
CB02 | Change of applicant information |
Address after: 230088 floor 7, block C, building J2, phase II, innovation industrial park, high tech Zone, Hefei, Anhui Province Applicant after: HEFEI DATANG STORAGE TECHNOLOGY Co.,Ltd. Address before: 100094 No. 6 Yongjia North Road, Beijing, Haidian District Applicant before: HEFEI DATANG STORAGE TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |