CN107506311B - 一种固态硬盘的ftl表的刷写方法及装置 - Google Patents
一种固态硬盘的ftl表的刷写方法及装置 Download PDFInfo
- Publication number
- CN107506311B CN107506311B CN201710765010.8A CN201710765010A CN107506311B CN 107506311 B CN107506311 B CN 107506311B CN 201710765010 A CN201710765010 A CN 201710765010A CN 107506311 B CN107506311 B CN 107506311B
- Authority
- CN
- China
- Prior art keywords
- incremental
- data
- storage space
- writing
- hard disk
- 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
- 239000007787 solid Substances 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000011010 flushing procedure Methods 0.000 claims abstract description 38
- 230000001680 brushing effect Effects 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000011084 recovery Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 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
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0629—Configuration or reconfiguration of 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/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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computer Security & Cryptography (AREA)
- Inks, Pencil-Leads, Or Crayons (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种固态硬盘的FTL表的刷写方法及装置,本发明包括FTL表发生更新后,FTL表的新增数据为增量数据,修改FTL表后得到的数据为修改数据,将增量数据写入在内存上预设的增量存储空间中;在增量存储空间写满后,将增量存储空间中的增量数据刷写到硬盘中,并按照预设顺序将数据量为增量存储空间容量大小的N倍的修改数据刷写到硬盘中;固态硬盘下电时,将增量存储空间中的增量数据刷写到硬盘中,按照预设顺序将数据量为增量存储空间容量大小的M倍的修改数据刷写到硬盘中。利用本发明,可以减少下电时需要刷写的数据量,并且FTL表全部的增量数据都能够保存下来,方便了在下次上电时FTL表的完全恢复,提高了固态硬盘读写数据的可靠性。
Description
技术领域
本发明涉及固态硬盘存储技术领域,特别是涉及一种固态硬盘的FTL表的刷写方法及装置。
背景技术
固态硬盘使用操作系统通过一组LBA(Logical Block Address,逻辑区块地址)来读写固态硬盘内部的数据,在普通的硬盘上,由于数据是可以直接覆盖的,所以LBA和PBA(Physical Block Address,物理区块地址)的关系是一一对应的,不会变更,但是由于固态硬盘使用的存储介质NAND闪存有需要先擦除才能写入的特性,导致LBA和PBA的关系不再是固定不变的,因此固态硬盘专门有一个层来负责上层到底层的转换,这个层叫FTL(FlashTranslation Layer,闪存转换层)层,它的主要任务是将FTL层之上的LBA转化为底层需要的PBA。就其转换任务而言,FTL层需要一张从LBA到PBA的映射表,称之为FTL表,它存放在内存中,在整个固态硬盘的读写过程中都需要实时查找、更新这张表,从而能正确读取或写入数据,所以这张表不但要保证能够正确的更新读取,还要保证设备掉电时能正确地保存以及在下一次上电时能正确恢复。
在现有技术中,对于FTL表的管理,有的方法是在固态硬盘运行的过程中将FTL表划分为几段区域,当这段FTL更新次数到达一定的阈值时,则刷写此段FTL表到cache中,在设备掉电时将更新次数不为0的FTL表段刷写到cache,这种方法存在掉电时刷写FTL数据过多,因电容放电时间不足以保存FTL表导致FTL表丢失的问题,可靠性低。
因此,如何提供一种可靠性高的的固态硬盘的FTL表刷写方法及装置是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种固态硬盘的FTL表的刷写方法及装置,其减少下电时需要刷写的数据量,提高了下电时FTL表保存的可靠性。
为解决上述技术问题,本发明提供了一种固态硬盘的FTL表的刷写方法,包括:
FTL表发生更新后,所述FTL表的新增数据为增量数据,修改所述FTL表后得到的数据为修改数据,将所述增量数据写入在内存上预设的增量存储空间中;所述FTL表保存所述固态硬盘的逻辑区块地址与物理区块地址的对应关系;
在所述增量存储空间写满后,将所述增量存储空间中的所述增量数据刷写到硬盘中,并按照预设顺序将数据量为所述增量存储空间容量大小的N倍的修改数据刷写到所述硬盘中;
所述固态硬盘下电时,将所述增量存储空间中的所述增量数据刷写到所述硬盘中,按照所述预设顺序将数据量为所述增量存储空间容量大小的M倍的修改数据刷写到所述硬盘中,所述N与所述M的值均为正数。
优选地,所述增量存储空间包括第一存储子空间和第二存储子空间,当所述FTL表更新时,将所述增量数据写入在内存上预设的增量存储空间中的方法包括:
在将所述第一存储子空间中的增量数据刷写到所述硬盘的过程中,若有新的增量数据产生,则将所述新的增量数据写入所述第二存储子空间中;
在将所述第二存储子空间中的增量数据刷写到所述硬盘的过程中,若有所述新的增量数据产生,则将所述新的增量数据写入所述第一存储子空间中。
优选地,所述N与所述M的值均为大于1的正整数,所述N与所述M的值相等。
优选地,所述按照预设顺序将数据量为所述增量存储空间容量大小的N倍的修改数据刷写到所述硬盘中的具体过程包括:
向查找管理器发送IPC写命令;
所述查找管理器接收到所述IPC写命令后,根据当前已刷写的最后一个修改数据的下标计算下一个未刷写的修改数据的内存地址,将所述下一个未刷写的修改数据刷写到所述硬盘中,直到刷写的数据量达到所述增量存储空间容量大小的N倍;
更新所述已刷写的最后一个修改数据的下标。
优选地,所述增量数据存储在辅助FTL表中,所述辅助FTL表对应的存储空间为所述增量存储空间。
优选地,在所述增量存储空间之外还设置有辅助存储空间,所述将所述增量数据写入在内存上预设增量存储空间中的方法包括:
所述增量数据先写入所述辅助存储空间,在所述辅助存储空间写满所述后,再将所述辅助存储空间内的增量数据写入所述增量存储空间。
为解决上述技术问题,本发明还提供了一种固态硬盘的FTL表的刷写装置,包括:
第一写入单元,用于FTL表发生更新后,所述FTL表的新增数据为增量数据,修改所述FTL表后得到的数据为修改数据,将所述增量数据写入在内存上预设的增量存储空间中;所述FTL表保存所述固态硬盘的逻辑区块地址与物理区块地址的对应关系;
第一刷写单元,用于在所述增量存储空间写满后,将所述增量存储空间中的所述增量数据刷写到硬盘中,并按照预设顺序将数据量为所述增量存储空间容量大小的N倍的修改数据刷写到所述硬盘中;
第二刷写单元,用于所述固态硬盘下电时,将所述增量存储空间中的所述增量数据刷写到所述硬盘中,按照所述预设顺序将数据量为所述增量存储空间容量大小的M倍的修改数据刷写到所述硬盘中,所述N与所述M的值均为正数。
优选地,所述增量存储空间包括第一存储子空间和第二存储子空间,所述第一写入单元包括:
第一写入子单元,用于在将所述第一存储子空间中的增量数据刷写到所述硬盘的过程中,若有新的增量数据产生,则将所述新的增量数据写入所述第二存储子空间中;
第二写入子单元,用于在将所述第二存储子空间中的增量数据刷写到所述硬盘的过程中,若有所述新的增量数据产生,则将所述新的增量数据写入所述第一存储子空间中。
优选地,所述第一刷写单元具体包括:
发送子单元,用于向查找管理器发送IPC写命令;
计算子单元,用于所述查找管理器接收到所述IPC写命令后,根据当前已刷写的最后一个修改数据的下标计算下一个未刷写的修改数据的内存地址,将所述下一个未刷写的修改数据刷写到所述硬盘中,直到刷写的数据量达到所述增量存储空间容量大小的N倍;
更新子单元,用于更新所述已刷写的最后一个修改数据的下标。
优选地,在所述增量存储空间之外还设置有辅助存储空间,所述第一写入单元包括:
第三写入子单元,用于所述增量数据先写入所述辅助存储空间,在所述辅助存储空间写满所述后,再将所述辅助存储空间内的增量数据写入所述增量存储空间。
本发明提供了一种固态硬盘的FTL表的刷写方法及装置,本发明包括FTL表发生更新后,FTL表的新增数据为增量数据,修改FTL表后得到的数据为修改数据,将增量数据写入在内存上预设的增量存储空间中;固态硬盘的读写操作需要查找、更新FTL表;在增量存储空间写满后,将增量存储空间中的增量数据刷写到硬盘中,并按照预设顺序将数据量为增量存储空间容量大小的N倍的修改数据刷写到硬盘中;固态硬盘下电时,将增量存储空间中的增量数据刷写到硬盘中,按照预设顺序将数据量为增量存储空间容量大小的M倍的修改数据刷写到硬盘中。利用本发明,在内存上新开辟一段增量存储空间来存储FTL表的增量数据,在固态硬盘下电时,不需要将整个FTL表刷写至硬盘中,而是只需要刷写一个增量存储空间中的增量数据以及数据量为增量存储空间容量大小的N倍的修改数据到硬盘中,因此通过这种刷写方式可以减少下电时需要刷写的数据量,并且FTL表全部的增量数据都能够保存下来,使得FTL表在下电时能够完整无误地保存,方便了在下次上电时FTL表的完全恢复,提高了固态硬盘读写数据的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种固态硬盘的FTL表的刷写方法的流程图;
图2为本发明提供的一种固态硬盘的FTL表的刷写装置的结构示意图。
具体实施方式
本发明的核心是提供一种固态硬盘的FTL表的刷写方法及装置,其减少下电时需要刷写的数据量,提高了下电时FTL表保存的可靠性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种固态硬盘的FTL表的刷写方法,如图1所示,图1为本发明提供的一种固态硬盘的FTL表的刷写方法的流程图,该方法包括以下步骤:
步骤S1:FTL表发生更新后,FTL表的新增数据为增量数据,修改FTL表后得到的数据为修改数据,将增量数据写入在内存上预设的增量存储空间中;FTL表保存固态硬盘的逻辑区块地址与物理区块地址的对应关系;
其中,由于固态硬盘的存储特性,需要有FTL表来保存固态硬盘中的数据的逻辑区块地址与物理区块地址的对应关系,对固态硬盘原有数据进行修改操作的时候,会相应地修改原有的FTL表,得到修改数据,在对固态硬盘写入新数据的时候,FTL表会产生增量数据,将增量数据写入在内存上预设的增量存储空间里。
步骤S2:在增量存储空间写满后,将增量存储空间中的增量数据刷写到硬盘中,并按照预设顺序将数据量为增量存储空间容量大小的N倍的修改数据刷写到硬盘中;
需要说明的是,所述每个修改数据都有相应的下标,在将修改数据刷写至硬盘的过程中,依据修改数据的下标将修改数据按照预设顺序刷写到硬盘中。
步骤S3:固态硬盘下电时,将增量存储空间中的增量数据刷写到硬盘中,按照预设顺序将数据量为增量存储空间容量大小的M倍的修改数据刷写到硬盘中,N与M的值均为正数。
作为优选的,增量存储空间包括第一存储子空间和第二存储子空间,当FTL表更新时,将增量数据写入在内存上预设的增量存储空间中的方法包括:
在将第一存储子空间中的增量数据刷写到硬盘的过程中,若有新的增量数据产生,则将新的增量数据写入第二存储子空间中;
在将第二存储子空间中的增量数据刷写到硬盘的过程中,若有新的增量数据产生,则将新的增量数据写入第一存储子空间中。
其中,增量存储空间大小以4K为例,在固态硬盘满带宽的情况读写数据的情况下,写满一个增量存储空间的时间为2.5ms,这远远大于将增量数据写到硬盘上的时间,因此需要至少两个增量存储空间来保存增量数据,在其中一个开始将增量数据刷写至硬盘的过程中,若有新的增量数据,则将新的增量数据保存至另一个增量存储空间中。当然,本发明不限定增量存储空间的大小。
可以理解的是,通过这种方式,可以保证增量数据可以完整地保存到硬盘中。
作为优选的,N与M的值均为大于1的正整数,N与M的值相等。
例如,当N与M的值均为3的情况下,在增量存储空间满后,将增量存储空间中的增量数据刷写至硬盘中,假设FTL表当前有数据量为4倍增量存储空间大小的修改数据,就按照预设顺序刷写FTL表中数据量为3倍增量存储空间大小的修改数据到硬盘中。在固态硬盘下电时,将当前增量存储空间中的增量数据刷写至硬盘中,并按照预设顺序刷写FTL表中数据量为3倍增量存储空间大小的修改数据到硬盘中。当然,本发明不限定N与M的值的具体数的类型,也不限定N与M的具体数值以及N与M的值是否相等。
作为优选的,按照预设顺序将数据量为增量存储空间容量大小的N倍的修改数据刷写到硬盘中的具体过程包括:
向查找管理器发送IPC写命令;
查找管理器接收到IPC写命令后,根据当前已刷写的最后一个修改数据的下标计算下一个未刷写的修改数据的内存地址,将下一个未刷写的修改数据刷写到硬盘中,直到刷写的数据量达到增量存储空间容量大小的N倍;
更新已刷写的最后一个修改数据的下标。
其中,在每一次将修改数据刷写至硬盘中后,记录下最后一个刷写的修改数据的下标,在下一次刷写开始的时候根据该下标计算下一个需要刷写的修改数据的内存地址。
可以理解的是,通过按照预设顺序刷写的方式,可以使得修改数据能够从头至尾地刷写到硬盘上,保证修改数据能够完整保存。
作为优选的,增量数据存储在辅助FTL表中,辅助FTL表对应的存储空间为增量存储空间。
当然,本发明不限定增量数据的存储形式。
作为优选的,在增量存储空间之外还设置有辅助存储空间,将增量数据写入在内存上预设增量存储空间中的方法包括:
增量数据先写入辅助存储空间,在辅助存储空间写满后,再将辅助存储空间内的增量数据写入增量存储空间。
可以理解的是,通过设置辅助存储空间的方式,使得辅助存储空间能起到缓冲的作用,这样二级存储空间的架构能提高数据保存的速度。
本发明提供了一种固态硬盘的FTL表的刷写方法,本发明包括FTL表发生更新后,FTL表的新增数据为增量数据,修改FTL表后得到的数据为修改数据,将增量数据写入在内存上预设的增量存储空间中;固态硬盘的读写操作需要查找、更新FTL表;在增量存储空间写满后,将增量存储空间中的增量数据刷写到硬盘中,并按照预设顺序将数据量为增量存储空间容量大小的N倍的修改数据刷写到硬盘中;固态硬盘下电时,将增量存储空间中的增量数据刷写到硬盘中,按照预设顺序将数据量为增量存储空间容量大小的M倍的修改数据刷写到硬盘中。利用本发明,在内存上新开辟一段增量存储空间来存储FTL表的增量数据,在固态硬盘下电时,不需要将整个FTL表刷写至硬盘中,而是只需要刷写一个增量存储空间中的增量数据以及数据量为增量存储空间容量大小的N倍的修改数据到硬盘中,因此通过这种刷写方式可以减少下电时需要刷写的数据量,并且FTL表全部的增量数据都能够保存下来,使得FTL表在下电时能够完整无误地保存,方便了在下次上电时FTL表的完全恢复,提高了固态硬盘读写数据的可靠性。
本发明还提供了一种固态硬盘的FTL表的刷写装置,如图2所示,图2为本发明提供的一种固态硬盘的FTL表的刷写装置的结构示意图,该装置包括:
第一写入单元1,用于FTL表发生更新后,FTL表的新增数据为增量数据,修改FTL表后得到的数据为修改数据,将增量数据写入在内存上预设的增量存储空间中;FTL表保存固态硬盘的逻辑区块地址与物理区块地址的对应关系;
第一刷写单元2,用于在增量存储空间写满后,将增量存储空间中的增量数据刷写到硬盘中,并按照预设顺序将数据量为增量存储空间容量大小的N倍的修改数据刷写到硬盘中;
第二刷写单元3,用于固态硬盘下电时,将增量存储空间中的增量数据刷写到硬盘中,按照预设顺序将数据量为增量存储空间容量大小的M倍的修改数据刷写到硬盘中,N与M的值均为正数。
作为优选的,增量存储空间包括第一存储子空间和第二存储子空间,第一写入单元1包括:
第一写入子单元,用于在将第一存储子空间中的增量数据刷写到硬盘的过程中,若有新的增量数据产生,则将新的增量数据写入第二存储子空间中;
第二写入子单元,用于在将第二存储子空间中的增量数据刷写到硬盘的过程中,若有新的增量数据产生,则将新的增量数据写入第一存储子空间中。
作为优选的,第一刷写单元2具体包括:
发送子单元,用于向查找管理器发送IPC写命令;
计算子单元,用于查找管理器接收到IPC写命令后,根据当前已刷写的最后一个修改数据的下标计算下一个未刷写的修改数据的内存地址,将下一个未刷写的修改数据刷写到硬盘中,直到刷写的数据量达到增量存储空间容量大小的N倍;
更新子单元,用于更新已刷写的最后一个修改数据的下标。
作为优选的,在增量存储空间之外还设置有辅助存储空间,第一写入单元1包括:
第三写入子单元,用于增量数据先写入辅助存储空间,在辅助存储空间写满后,再将辅助存储空间内的增量数据写入增量存储空间。
本发明提供了一种固态硬盘的FTL表的刷写装置,本发明包括FTL表发生更新后,FTL表的新增数据为增量数据,修改FTL表后得到的数据为修改数据,将增量数据写入在内存上预设的增量存储空间中;固态硬盘的读写操作需要查找、更新FTL表;在增量存储空间写满后,将增量存储空间中的增量数据刷写到硬盘中,并按照预设顺序将数据量为增量存储空间容量大小的N倍的修改数据刷写到硬盘中;固态硬盘下电时,将增量存储空间中的增量数据刷写到硬盘中,按照预设顺序将数据量为增量存储空间容量大小的M倍的修改数据刷写到硬盘中。利用本发明,在内存上新开辟一段增量存储空间来存储FTL表的增量数据,在固态硬盘下电时,不需要将整个FTL表刷写至硬盘中,而是只需要刷写一个增量存储空间中的增量数据以及数据量为增量存储空间容量大小的N倍的修改数据到硬盘中,因此通过这种刷写方式可以减少下电时需要刷写的数据量,并且FTL表全部的增量数据都能够保存下来,使得FTL表在下电时能够完整无误地保存,方便了在下次上电时FTL表的完全恢复,提高了固态硬盘读写数据的可靠性。
以上对本发明所提供的一种固态硬盘的FTL表的刷写方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (8)
1.一种固态硬盘的FTL表的刷写方法,其特征在于,包括:
FTL表发生更新后,所述FTL表的新增数据为增量数据,修改所述FTL表后得到的数据为修改数据,将所述增量数据写入在内存上预设的增量存储空间中;所述FTL表保存所述固态硬盘的逻辑区块地址与物理区块地址的对应关系;
在所述增量存储空间写满后,将所述增量存储空间中的所述增量数据刷写到硬盘中,并按照预设顺序将数据量为所述增量存储空间容量大小的N倍的修改数据刷写到所述硬盘中;
所述固态硬盘下电时,将所述增量存储空间中的所述增量数据刷写到所述硬盘中,按照所述预设顺序将数据量为所述增量存储空间容量大小的M倍的修改数据刷写到所述硬盘中,所述N与所述M的值均为正数;
所述增量存储空间包括第一存储子空间和第二存储子空间,当所述FTL表更新时,将所述增量数据写入在内存上预设的增量存储空间中的方法包括:
在将所述第一存储子空间中的增量数据刷写到所述硬盘的过程中,若有新的增量数据产生,则将所述新的增量数据写入所述第二存储子空间中;
在将所述第二存储子空间中的增量数据刷写到所述硬盘的过程中,若有所述新的增量数据产生,则将所述新的增量数据写入所述第一存储子空间中。
2.根据权利要求1所述的方法,所述N与所述M的值均为大于1的正整数,所述N与所述M的值相等。
3.根据权利要求2所述的方法,其特征在于,所述按照预设顺序将数据量为所述增量存储空间容量大小的N倍的修改数据刷写到所述硬盘中的具体过程包括:
向查找管理器发送IPC写命令;
所述查找管理器接收到所述IPC写命令后,根据当前已刷写的最后一个修改数据的下标计算下一个未刷写的修改数据的内存地址,将所述下一个未刷写的修改数据刷写到所述硬盘中,直到刷写的数据量达到所述增量存储空间容量大小的N倍;
更新所述已刷写的最后一个修改数据的下标。
4.根据权利要求1所述的方法,其特征在于,所述增量数据存储在辅助FTL表中,所述辅助FTL表对应的存储空间为所述增量存储空间。
5.根据权利要求1所述的方法,其特征在于,在所述增量存储空间之外还设置有辅助存储空间,所述将所述增量数据写入在内存上预设增量存储空间中的方法包括:
所述增量数据先写入所述辅助存储空间,在所述辅助存储空间写满后,再将所述辅助存储空间内的增量数据写入所述增量存储空间。
6.一种固态硬盘的FTL表的刷写装置,其特征在于,包括:
第一写入单元,用于FTL表发生更新后,所述FTL表的新增数据为增量数据,修改所述FTL表后得到的数据为修改数据,将所述增量数据写入在内存上预设的增量存储空间中;所述FTL表保存所述固态硬盘的逻辑区块地址与物理区块地址的对应关系;
第一刷写单元,用于在所述增量存储空间写满后,将所述增量存储空间中的所述增量数据刷写到硬盘中,并按照预设顺序将数据量为所述增量存储空间容量大小的N倍的修改数据刷写到所述硬盘中;
第二刷写单元,用于所述固态硬盘下电时,将所述增量存储空间中的所述增量数据刷写到所述硬盘中,按照所述预设顺序将数据量为所述增量存储空间容量大小的M倍的修改数据刷写到所述硬盘中,所述N与所述M的值均为正数;
所述增量存储空间包括第一存储子空间和第二存储子空间,所述第一写入单元包括:
第一写入子单元,用于在将所述第一存储子空间中的增量数据刷写到所述硬盘的过程中,若有新的增量数据产生,则将所述新的增量数据写入所述第二存储子空间中;
第二写入子单元,用于在将所述第二存储子空间中的增量数据刷写到所述硬盘的过程中,若有所述新的增量数据产生,则将所述新的增量数据写入所述第一存储子空间中。
7.根据权利要求6所述的装置,其特征在于,所述第一刷写单元具体包括:
发送子单元,用于向查找管理器发送IPC写命令;
计算子单元,用于所述查找管理器接收到所述IPC写命令后,根据当前已刷写的最后一个修改数据的下标计算下一个未刷写的修改数据的内存地址,将所述下一个未刷写的修改数据刷写到所述硬盘中,直到刷写的数据量达到所述增量存储空间容量大小的N倍;
更新子单元,用于更新所述已刷写的最后一个修改数据的下标。
8.根据权利要求6所述的装置,其特征在于,在所述增量存储空间之外还设置有辅助存储空间,所述第一写入单元包括:
第三写入子单元,用于所述增量数据先写入所述辅助存储空间,在所述辅助存储空间写满后,再将所述辅助存储空间内的增量数据写入所述增量存储空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710765010.8A CN107506311B (zh) | 2017-08-30 | 2017-08-30 | 一种固态硬盘的ftl表的刷写方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710765010.8A CN107506311B (zh) | 2017-08-30 | 2017-08-30 | 一种固态硬盘的ftl表的刷写方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107506311A CN107506311A (zh) | 2017-12-22 |
CN107506311B true CN107506311B (zh) | 2020-10-20 |
Family
ID=60693318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710765010.8A Active CN107506311B (zh) | 2017-08-30 | 2017-08-30 | 一种固态硬盘的ftl表的刷写方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107506311B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762989B (zh) * | 2018-06-05 | 2021-08-31 | 郑州云海信息技术有限公司 | 固态硬盘的数据存储方法、装置、设备及可读存储介质 |
CN109086222B (zh) * | 2018-07-24 | 2023-08-25 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据恢复方法以及固态硬盘 |
CN113791933B (zh) * | 2021-08-04 | 2023-03-10 | 方一信息科技(上海)有限公司 | 一种基于block管理的异常掉电恢复方法及系统 |
CN117149091A (zh) * | 2023-10-23 | 2023-12-01 | 四川云海芯科微电子科技有限公司 | 一种固态硬盘数据保存方法及相关装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033793A (zh) * | 2010-12-14 | 2011-04-27 | 成都市华为赛门铁克科技有限公司 | 快照方法和固态硬盘 |
CN102043727A (zh) * | 2009-10-10 | 2011-05-04 | 成都市华为赛门铁克科技有限公司 | 恢复固态硬盘映射表的方法及其装置 |
CN103294607A (zh) * | 2012-02-27 | 2013-09-11 | 北京华虹集成电路设计有限责任公司 | 一种存储管理方法 |
CN105550127A (zh) * | 2015-12-08 | 2016-05-04 | 中电海康集团有限公司 | 一种基于stt-mram的读写缓存分离的ssd控制器 |
CN106354615A (zh) * | 2015-07-21 | 2017-01-25 | 北京忆恒创源科技有限公司 | 固态硬盘日志生成方法及其装置 |
CN106502928A (zh) * | 2016-09-29 | 2017-03-15 | 华为技术有限公司 | 一种存储系统掉电保护方法、存储控制器及电子设备 |
CN107077427A (zh) * | 2014-10-27 | 2017-08-18 | 桑迪士克科技有限责任公司 | 跨电源周期来跟踪对写入命令和解除映射命令的混合 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924629B1 (en) * | 2011-06-07 | 2014-12-30 | Western Digital Technologies, Inc. | Mapping table for improving write operation efficiency |
US20160011782A1 (en) * | 2013-02-27 | 2016-01-14 | Hitachi, Ltd. | Semiconductor storage |
-
2017
- 2017-08-30 CN CN201710765010.8A patent/CN107506311B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043727A (zh) * | 2009-10-10 | 2011-05-04 | 成都市华为赛门铁克科技有限公司 | 恢复固态硬盘映射表的方法及其装置 |
CN102033793A (zh) * | 2010-12-14 | 2011-04-27 | 成都市华为赛门铁克科技有限公司 | 快照方法和固态硬盘 |
CN103294607A (zh) * | 2012-02-27 | 2013-09-11 | 北京华虹集成电路设计有限责任公司 | 一种存储管理方法 |
CN107077427A (zh) * | 2014-10-27 | 2017-08-18 | 桑迪士克科技有限责任公司 | 跨电源周期来跟踪对写入命令和解除映射命令的混合 |
CN106354615A (zh) * | 2015-07-21 | 2017-01-25 | 北京忆恒创源科技有限公司 | 固态硬盘日志生成方法及其装置 |
CN105550127A (zh) * | 2015-12-08 | 2016-05-04 | 中电海康集团有限公司 | 一种基于stt-mram的读写缓存分离的ssd控制器 |
CN106502928A (zh) * | 2016-09-29 | 2017-03-15 | 华为技术有限公司 | 一种存储系统掉电保护方法、存储控制器及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107506311A (zh) | 2017-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506311B (zh) | 一种固态硬盘的ftl表的刷写方法及装置 | |
CN102841851B (zh) | 闪存管理方法和闪存设备 | |
CN102054533B (zh) | 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器 | |
US8291155B2 (en) | Data access method, memory controller and memory storage system | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
EP2626792A1 (en) | Wear leveling method, memory device, and information system | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
CN103164345A (zh) | 固态存储装置遭遇断电后的数据存储方法 | |
TW201437807A (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
CN104268095A (zh) | 一种存储器及基于该存储器进行数据读/写操作的方法 | |
JPWO2009096180A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム | |
TWI584189B (zh) | 記憶體控制器、記憶體儲存裝置與資料寫入方法 | |
CN114968096A (zh) | 一种存储器的控制方法、存储器与存储系统 | |
CN104166627B (zh) | 一种基于单片机的nand‑flash写操作方法 | |
CN106844229B (zh) | 固态硬盘固件映射表的组织方法、系统及装置 | |
CN111737162A (zh) | 一种快速恢复数据的固态硬盘使用方法及计算机可读存储介质 | |
CN111104345A (zh) | 一种ssd上电恢复方法、系统及主机 | |
CN113590505B (zh) | 地址映射方法、固态硬盘控制器及固态硬盘 | |
CN105204958A (zh) | 一种延长NAND Flash数据可靠存储时间的编码方法 | |
CN102323907A (zh) | 嵌入式arm处理器对nandflash数据存储和删除方法 | |
KR101077901B1 (ko) | 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 | |
CN108733576B (zh) | 一种固态硬盘及其内存转换层对映方法 | |
CN113010091A (zh) | 数据写入固态硬盘的方法、垃圾回收的方法、装置 | |
CN111897489B (zh) | 数据写入方法、装置、设备及计算机可读存储介质 | |
US8832358B2 (en) | Data writing method, memory controller and memory storage apparatus |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200918 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |