CN115221072A - 固态存储装置的快闪转换层对应表处理方法 - Google Patents
固态存储装置的快闪转换层对应表处理方法 Download PDFInfo
- Publication number
- CN115221072A CN115221072A CN202110431915.8A CN202110431915A CN115221072A CN 115221072 A CN115221072 A CN 115221072A CN 202110431915 A CN202110431915 A CN 202110431915A CN 115221072 A CN115221072 A CN 115221072A
- Authority
- CN
- China
- Prior art keywords
- ftl table
- block
- control circuit
- solid
- layer corresponding
- 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.)
- Pending
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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- 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/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
-
- 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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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]
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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明为一种运用于固态存储装置的快闪转换层对应表(简称FTL表)处理方法。于进行FTL表备份时,控制电路判断使用区块中剩余空间的大小,进一步决定是否将完整的FTL表备份至空白区块。当使用区块中剩余空间充足时,控制电路将FTL表中的修改内容以及内容变更表存储于使用区块中的剩余空间。当使用区块中剩余空间不足时,控制电路将完整的FTL表存储于空白区块中。
Description
技术领域
本发明是有关于一种运用于固态存储装置的控制方法,且特别是有关于一种运用于固态存储装置的快闪转换层对应表处理方法。
背景技术
众所周知,固态存储装置(Solid State Device,SSD)使用非易失性存储器(non-volatile memory)为主要存储元件。也就是说,当数据写入非易失性存储器后,一旦***电源关闭(power off),数据仍可保存在非易失性存储器中。
请参照图1,其为已知固态存储装置的示意图。固态存储装置10中包括一控制电路110、缓冲元件(buffering element)130与一非易失性存储器120,控制电路110连接至缓冲元件130与非易失性存储器120。
在固态存储装置10外部,控制电路110通过一外部总线20与主机(host)12之间进行指令与数据的传递。其中,外部总线20可为USB总线、SATA总线、M.2总线或PCIe总线等等。再者,缓冲元件130也可以直接设计在控制电路110中。缓冲元件130可为易失性存储器(volatile memory),例如为DRAM或SRAM。亦即,当***电源关闭(power off)时,缓冲元件130所存储的内容皆会消失。
非易失性存储器120包括多个区块,每个区块中包括多个页(page)。例如,非易失性存储器120中有1024个区块,而每个区块中有64页,每个页的容量为16Kbytes。亦即,每个区块的容量为1Mbytes。当然,非易失性存储器120不限定于仅有1024个区块,而非易失性存储器120制造商可以决定每个区块中的页数以及每页的容量。也就是说,每个区块并不限定于只有64页,每个页也不限定于只有16Kbytes的容量。
再者,由于非易失性存储器120的特性,控制电路110是以页为基本单位来进行编程动作(program action),且控制电路110则是以区块为单位进行区块抹除动作(blockerase action)。
缓冲元件130的存储空间被规划分为多个部分。缓冲元件130的第一部分存储空间可作为数据缓冲区(data buffering area)132。其中,数据缓冲区132用来暂存主机12输入的写入数据(write data)。举例来说,当主机12欲将写入数据存储至非易失性存储器120时,控制电路110会由外部总线20接收写入数据并暂存至数据缓冲区132。而控制电路110会适时地由数据缓冲区132将写入数据存储至非易失性存储器120。
缓冲元件130的第二部分存储空间可作为快闪转换层对应表(flash translationlayer table,以下简称FTL表)136。在固态存储装置10中,控制电路110利用FTL表136来快速地存取非易失性存储器120中的数据,以下详细说明FTL表136的用途。
基本上,主机12是利用逻辑区块地址(Logical Block Address,以下简称LBA地址)来定义固态存储装置10中的数据存储位置。而在非易失性存储器120端则是利用实体配置地址(Physical Allocation Address,以下简称PAA地址)来定义非易失性存储器120中的数据存储位置。因此,在固态存储装置10中需要通过FTL表136来表示LBA地址与PBA地址之间的映射(mapping)关系,而FTL表136即存储于缓冲元件130中。
举例来说,当主机12发出写入指令(write command)时,主机12会产生LBA地址与写入数据(write data),用以指示控制电路110将该写入数据存储于LBA地址。接着,控制电路110会于非易失性存储器120中决定PAA地址,用来存储该写入数据。再者,控制电路110会进一步的将LBA地址与PAA地址之间的映射关系记录于FTL表136中。
当主机12发出读取指令(read command)时,主机12会产生LBA地址。控制电路110则根据FTL表136确认LBA地址对应的PAA地址,并在非易失性存储器120的PAA地址取得读取数据(read data),并回传至主机12。换言之,根据FTL表136的内容,控制电路110可根据LBA地址来决定PAA地址,并于非易失性存储器120中找到该读取数据。
以下以简单的范例来介绍已知固态存储装置10运作的过程,FTL表136与非易失性存储器120之间映射关系,以及FTL表136的备份(backup)与载入(load)。请参照图2A至图2C,其为控制电路进行读取动作与写入动作时,FTL表与非易失性存储器之间的映射关系。请参照图2D至图2E,其为电源开启与关闭时,FTL表的备份与载入示意图。
如图2A所示,非易失性存储器120中具有6个区块(block)B1~B6,每个区块各有4个存储空间(storage space)。在FTL表136中,b11代表第一区块B1中第一存储空间的PAA地址、b12代表第一区块B1中第二存储空间的PAA地址,并依此类推。再者,a、c、d皆代表一个特定数字。
当固态存储装置10接收电源而正常运作时,如图2A中的FTL表136的内容可知,PAA地址b11映射(mapping)至LBA地址(a)、PAA地址b12映射至LBA地址(a+1)、PAA地址b13映射至LBA地址(a+2)、PAA地址b14映射至LBA地址(a+3)。亦即,第一区块B1的第一存储空间存储LBA地址(a)的数据Da,第一区块B1的第二存储空间存储LBA地址(a+1)的数据Da+1,第一区块B1的第三存储空间存储LBA地址(a+2)的数据Da+2,第一区块B1的第四存储空间存储LBA地址(a+3)的数据Da+3。
同理,PAA地址b21映射至LBA地址(c)。亦即,第二区块B2的第一存储空间存储LBA地址(c)的数据Dc。另外,在FTL表136中,其他PAA地址皆无映射至LBA地址,代表非易失性存储器120中的其他存储空间可能未存储数据或者存储无效数据(invalid data)。也就是说,非易失性存储器120中的其他存储空间没有存储有效数据(valid data)。
基本上,主机12可以发出读取命令(read command)来控制固态存储装置10。举例来说,当主机12发出读取命令(read command)与LBA地址(a+2)至控制电路110时,控制电路110进行读取动作(read action)。此时,控制电路110根据FTL表136,确认LBA地址(a+2)对应至PAA地址b13。因此,控制电路110即读取(read)第一区块B1的第三存储空间中的数据Da+2,并回传至主机12并完成读取动作。
当然,主机12可以发出写入命令(write command)来控制固态存储装置10。举例来说,如图2B所示,当主机12发出写入命令(write command)、LBA地址(d)与写入数据Dd至控制电路110时,控制电路110进行写入动作。此时,控制电路110在FTL表136中新增LBA地址(d)与PAA地址b22的映射关系,并将写入数据Dd存储于第二区块B2的第二存储空间以完成写入动作。
再者,主机12也可以发出写入命令(write command)来修改(amend)LBA地址的数据。举例来说,如图2C所示,主机12发出写入命令(write command)、LBA地址(a)~LBA地址(a+3)与修改的写入数据(amended write data)Da'~Da+3'至控制电路110时,控制电路110进行写入动作。此时,控制电路110删除原先LBA地址(a)~LBA地址(a+3)与PAA地址b11~b14之间的映射关系,使得第一区块B1中四个存储空间的数据Da~Da+3为无效数据(以交叉线表示)。再者,控制电路110在FTL表136中将LBA地址(a)~LBA地址(a+3)映射至PAA地址b23、b24、b31、b32,并将修改的写入数据(amended write data)Da'~Da+3'存储于第二区块B2的第三存储空间、第二区块B2的第四存储空间、第三区块B3的第一存储空间、第三区块B3的第二存储空间,并完成写入动作。
此外,由于第一区块B1中的数据皆已变为无效数据,因此,控制电路100可在适当的时机进行抹除动作(erase action),将第一区块B1抹除为空白区块(blank block),并可再次用来存储数据。
再者,当固态存储装置10的供电即将停止之前,控制电路110会将FTL表136的内容完整地备份(backup)于非易失性存储器120的空白存储空间中。举例来说,如图2D所示,于电源即将停止供应(power off)之前,图2C中的FTL表136的内容会完整地备份于第六区块B6的第一存储空间(斜线区域)。而在停止供电后,存储在缓冲元件130中FTL表136的内容将会消失,如图2D中的FTL表136所示。
由于在停止供电(power off)后,FTL表136的内容已经存储于非易失性存储器120中。因此,当固态存储装置10再次接收电源启动(power on)时,控制电路110会先将非易失性存储器120中最后备份的FTL表136的内容载入(load)至缓冲元件130中。之后,固态存储装置10即可正常运作。如图2E所示,当电源再次开启(power on)时,控制电路110会先将第六区块B6的第一存储空间中内容载入缓冲元件130中的FTL表136。
当FTL表136成功地载入缓冲元件130后,固态存储装置10的控制电路110即可正常运作。亦即,固态存储装置10可根据主机12的读取命令与写入命令来进行读取动作与写入动作。并且,控制电路110于写入动作时,会修改FTL表136用以修改LBA地址与PAA地址之间的映射关系。
相同地,于再次停止供电时,控制电路110会将FTL表136的内容再次完整地备份于非易失性存储器120的空白存储空间中,例如,FTL表136的内容完整地备份于第六区块B6的第二存储空间。当固态存储装置10再次接收电源启动时,控制电路110会先将非易失性存储器120中最后备份的FTL表136的内容载入至缓冲元件130中。亦即,将最后备份在第六区块B6的第二存储空间的FTL表136的内容载入至缓冲元件130中。而前一次存储于第六区块B1的第一存储空间中的内容则会变成无效数据。
由以上的说明可知,FTL表136存储LBA地址与PAA地址之间的映射关系,一旦FTL表136中的内容错误,则控制电路110将无法找到正确的数据。因此,当固态存储装置10接收电源而正常运作时,FTL表136会存储在缓冲元件130中,以便于快速读取、存储及修改LBA地址与PAA地址之间的映射关系。当固态存储装置10的电源停止之前,控制电路110会将完整的FTL表136备份(backup)在非易失性存储器120中。当固态存储装置10的电源再次供应时,控制电路110会先将最后备份的完整的FTL表136由非易失性存储器120载入(load)缓冲元件130中。之后,固态存储装置10才能正常运作。
当然,除了进行写入动作时,控制电路110会修改FTL表136中的映射关系之外,还有其他时刻也需要修改FTL表136。举例来说,控制电路110进行垃圾搜集(garbagecollection)时,待抹除区块中的有效数据会被搬移(move)至其他区块。此时,控制电路110也需要修改FTL表136中的映射关系。换句话说,当有效数据写入非易失性存储器120,或者有效数据在非易失性存储器120中搬移时,控制电路110皆需要修改FTL表136中的映射关系。
请参照图3A至图3D,其为已知固态存储装置电源开启/关闭时的FTL表的处理示意图。实际的应用上,FTL表136的容量会随着非易失性存储器120的容量增加而增加。举例来说,如图3B所示,4Gbytes的固态存储装置10中非易失性存储器120包括四通道(channel)CH1~CH4,每个通道包括1024个区块(block),每个区块有64个页(page),每个页的容量为16Kbytes。而在4Gbytes的固态存储装置10中,其缓冲元件130的FTL表136所需的容量大约为2Mbytes~3Mbytes之间。亦即,FTL表136的容量大于二个区块的容量并小于三个区块的容量。因此,在此例中,当控制电路110将FTL表136备份至非易失性存储器120时,需要使用到非易失性存储器120的三个区块来存储FTL表136。
以图3A为例,当电源开启(power on)时,控制电路110将存储于非易失性存储器120中区块B4084~区块B4086的完整FTL表载入(load)至缓冲元件130。
如图3B所示,当固态存储装置10正常运作的过程,只要非易失性存储器120中写入或移动有效数据,控制电路110即修改缓冲元件130中的FTL表136。FTL表136修改的方式即类似图2A至图2E,此处不再赘述。换句话说,当控制电路110修改缓冲元件130中的FTL表136之后,FTL表136的内容将会不同于区块B4084~区块B4086存储的内容。
如图3C所示,当固态存储装置10电源关闭时,控制电路110将存储于缓冲元件130的完整FTL136表备份(backup)至空白区块B4087~区块B4089。另外,原先存储于区块B4084~区块B4086中的内容即成为无效数据(以交叉线表示)。
同理,如图3D所示,当电源开启(power on)时,控制电路110将最后备份存储于非易失性存储器120中区块B4087~区块B4089的完整FTL表载入(load)至缓冲元件130。
根据上述例子,当电源开启/关闭一次之后,非易失性存储器120中会出现三个存储无效数据的区块。而为了再次使用这三个区块,控制电路110会进行抹除动作,将存储无效数据的三个区块抹除为三个空白区块(blank block),而此三个区块的编程/抹除次数(program/erase cycle,简称P/E cycle)会增加一次。
众所周知,非挥性存储器120中,编程/抹除次数越高的区块,其越容易损坏。也就是说,非易失性存储器120的寿命(life time)相关于区块的编程/抹除次数。根据上述例子,如果固态存储装置10电源开启/关闭100次,则非易失性存储器120中将会产生300个存储无效数据的区块。于进行抹除动作后,300个区块会各增加一次编程/抹除次数。如此,将造成易失性存储器120的寿命(life time)缩短。
发明内容
本发明有关于一种固态存储装置的快闪转换层对应表处理方法,该固态存储装置具有一控制电路、一缓冲元件与一非易失性存储器,该控制电路连接至该缓冲元件与该非易失性存储器。快闪转换层对应表处理方法包括下列步骤:当该固态存储装置的一电源开启时,由该非易失性存储器中的多个使用区块中载入一快闪转换层对应表至该缓冲元件中,其中该快闪转换层对应表的容量小于该些多个使用区块的总容量;当一有效数据写入该非易失性存储器或者该写入数据在该非易失性存储器中搬移时,修改该缓冲元件中的该快闪转换层对应表,使该快闪转换层对应表具有至少一修改内容,且利用一内容变更表来记录该至少一修改内容在该快闪转换层对应表中的位置;判断是否欲对该快闪转换层对应表进行一备份动作;当判断欲对该快闪转换层对应表进行该备份动作时,根据该快闪转换层对应表中的该至少一修改内容以及该内容变更表的总数据量来决定是否将完整的该快闪转换层对应表备份至该非易失性存储器。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为已知固态存储装置的示意图。;
图2A至图2C为控制电路进行读取动作与写入动作时,FTL表与非易失性存储器之间的映射关系;
图2D至图2E为电源开启与关闭时,FTL表的备份与载入示意图;
图3A至图3D为已知固态存储装置电源开启/关闭时FTL表的处理示意图;
图4为本发明固态存储装置的示意图;
图5A为本发明固态存储装置的FTL表处理方法;以及
图5B至图5H为本发明固态存储装置电源开启/关闭时FTL表的处理示意图。
具体实施方式
下面结合附图对本发明的结构原理和工作原理作具体的描述:
众所周知,于固态存储装置正常运作的过程,当非易失性存储器中的有效数据写入或者搬移时,控制电路皆需要修改缓冲元件中的FTL表中的映射关系。为了解决缓冲元件中的FTL表会因电源正常关闭或不正常断电而消失的问题,在固态存储装置电源正常关闭前,会进行FTL表的备份(backup)动作,即,将FTL表的内容存储至非易失性存储器中。此外,在固态存储装置正常运作的过程中,亦会定期或不定期地进行FTL表的备份动作。
在实际的应用上,在FTL表的每次备份动作之间,固态存储装置的FTL表中可能仅有少部分的内容会被修改,而大部分的内容并没有被修改。如果每次备份FTL表时,控制电路皆将完整的FTL表存储至非易失性存储器的空白区块,则会造成非易失性存储器的编程/抹除次数快速上升,影响到固态存储装置的寿命。此外,多次备份完整的FTL表亦会占据过多的非易失性存储器的存储空间,使非易失性存储器的存储空间的使用效率变差。
本发明提出一种运用于固态存储装置的FTL表处理方法。本发明在固态存储装置的缓冲元件中再规划一个部分作为内容变更表(content changed table),用以记录FTL表中被变更内容的位置(position)。于备份FTL表时,控制电路可决定FTL表备份的方式。例如,控制电路可仅将FTL表的修改内容备份至非易失性存储器中的使用区块,或者控制电路可将完整的FTL表备份至非易失性存储器的空白区块。以下详细说明之。
请参照图4,其为本发明固态存储装置的示意图。固态存储装置40中包括一控制电路410、缓冲元件430与一非易失性存储器120,控制电路410连接至缓冲元件430与非易失性存储器120。在固态存储装置40外部,控制电路410通过一外部总线20与主机(host)12之间进行指令与数据的传递。
相同地,非易失性存储器120包括多个区块,每个区块中包括多个页(page)。例如,非易失性存储器120中有1024个区块,而每个区块中有64页,每个页的容量为16Kbytes。亦即,每个区块的容量为1Mbytes。当然,非易失性存储器120不限定于仅有1024个区块,而非易失性存储器120制造商可以决定每个区块中的页数以及每页的容量。也就是说,每个区块并不限定于只有64页,每个页也不限定于只有16Kbytes的容量。
再者,由于非易失性存储器120的特性,控制电路410是以页为基本单位来进行编程动作(program action),且控制电路410则是以区块为单位进行区块抹除动作(blockerase action)。
根据本发明的实施例,缓冲元件430的存储空间被规划分为多个部分。缓冲元件430的第一部分存储空间作为数据缓冲区432,第二部分存储空间作为FTL表436、第三部分存储空间作为内容变更表438。
数据缓冲区432用来暂存主机12输入的写入数据(write data)。举例来说,当主机12欲将写入数据存储至非易失性存储器120时,控制电路410会将由外部总线20接收到的写入数据暂存至数据缓冲区432。而控制电路410会适时地由数据缓冲区432将写入数据存储至非易失性存储器120。
FTL表436用来存储LBA地址与PBA地址之间的映射(mapping)关系。当非易失性存储器120中的有效数据写入或者搬移时,控制电路410会修改FTL表436中的映射关系。而FTL表436修改的方式即类似图2A至图2E,此处不再赘述。
根据本发明的实施例,于固态存储装置40接收电源并开始运作的过程,当FTL表436被修改时,FTL表436会具有修改内容,而该修改内容的位置会被记录于内容变更表438。亦即,在缓冲元件430用来作为FTL表436的第二部分存储空间中,该修改内容的存储位置会被记录于内容变更表438。也就是说,由内容变更表438可以得知FTL表436中内容被修改的位置。以图2B为例,FTL表136中新增纪录了LBA地址(d)与PAA地址b22的映射关系,根据本发明的实施例,LBA地址(d)即为修改内容,而控制电路410会将LBA地址(d)存储在FTL表436中的位置记录于内容变更表438中。
当固态存储装置40的电源关闭之前,或在固态存储装置40正常运作的过程欲进行FTL表的备份动作时,控制电路410可根据内容变更表438以及FTL表436中的修改内容的总数据量,来决定是否备份完整的FTL表。当控制电路410决定不备份完整的FTL表时,控制电路410可根据内容变更表438,仅将FTL表436的修改内容备份于非易失性存储器120中的使用区块,而FTL表436中未变动的内容则不会被备份至非易失性存储器120。因此,备份的数据量会较少,并且可以有效地减少区块的编程/抹除次数。其中,上述的使用区块为非易失性存储器120中存储前次备份的FTL表的区块。
请参照图5A,其为本发明固态存储装置的FTL表处理方法。当电源开启时(步骤S502),控制电路410将非易失性存储器120中的FTL表载入至缓冲元件430(步骤S504)。于固态存储装置40正常运作的过程,当写入或移动有效数据时(步骤506),控制电路410修改缓冲元件430中的FTL表436,使FTL表436具有修改内容,并在内容变更表438中记录FTL表436中被修改内容的位置(步骤S508)。再者,当固态存储装置40未欲进行FTL表436的备份动作(步骤S510)时,固态存储装置40仍持续正常运作,并回到步骤S506。当固态存储装置40欲进行FTL表436的备份动作(步骤S510)时,控制电路410决定是否备份完整FTL表436(步骤S512)。再者,当控制电路410决定不备份完整FTL表436(步骤S512)时,控制电路410根据内容变更表438,将缓冲元件430中FTL表436的修改内容备份至非易失性存储器120中使用区块的剩余空间(步骤S514)。反之,控制电路410将缓冲元件430中的完整FTL表136备份至非易失性存储器120中的空白区块(步骤S516)。
请参照图5B至图5H,其为本发明固态存储装置的FTL表处理的示意图。举例来说,如图5B所示,4Gbytes的固态存储装置40中非易失性存储器120包括四通道CH1~CH4,每个通道包括1024个区块,每个区块有64个页,每个页的容量为16Kbytes。而固态存储装置10中,缓冲元件430的FTL表436所需之容量大约为2Mbytes~3Mbytes之间。亦即,完整的FTL表436的容量大于二个区块的容量并小于三个区块的容量。因此,于备份完整的FTL表436时,控制电路410需使用非易失性存储器120的三个区块来存储完整的FTL表436,且完整的FTL表436无法占满三个区块的存储空间,并会产生剩余空间。如图5B所示,FTL表436存储于非易失性存储器120中区块B4084~区块B4086,而区块B4086中尚有剩余空间A。
如图5B所示,当电源开启(power on)时,控制电路410将存储于非易失性存储器120中区块B4084~区块B4086的内容载入(load)至缓冲元件430并建立FTL表436。再者,由于非易失性存储器120中尚未写入或移动有效数据,因此缓冲元件430中的内容变更表438未存储任何信息。
当固态存储装置40正常运作的过程,非易失性存储器120中写入或移动有效数据时,控制电路410即修改缓冲元件430中的FTL表436,使FTL表436具有修改内容。根据本发明的实施例,由于FTL表436被修改,所以控制电路410也会在内容变更表438中记录FTL表436中修改内容的位置。
根据本发明的实施例,以16Kbytes页的大小(16Kbytes Page size)为单位,将FTL表436划分为多个区域(area),每个区域对应至FTL表436中的不同的位置(position)。而每个位置皆对应至缓冲元件430内的一个地址信息(address information)。
如图5C所示,在固态存储装置40正常运作的过程,FTL表436中三个区域的内容被修改而具有修改内容1~3。此时,控制电路410在内容变更表438中记录FTL表436中三处被修改区域的位置,亦即位置p、位置q、位置r。换言之,由内容变更表438中记录的位置p、位置q、位置r,控制电路410可得知FTL表436的该三处区域中存储了修改内容1~3。其中,位置p、位置q、位置r为存储元件430中对应区域的地址信息(address information)。
如图5D所示,当固态存储装置40欲进行FTL表436的备份动作时,例如欲将固态存储装置40的电源关闭时,由于FTL表436的修改内容1~3以及内容变更表438的总数据量(total data size)小于区块B4086中的剩余空间A可存储的数据量,因此控制电路410将修改内容1~3以及内容变更表438备份于区块B4086中的剩余空间A。换句话说,区块B4086为使用区块且其剩余空间A足够,所以控制电路410将FTL表436修改内容1~3以及内容变更表438备份于区块B4086中的剩余空间A。
如图5D所示,当控制电路410将修改内容1~3以及内容变更表438备份于区块B4086中的剩余空间A后,区块B4086中的剩余空间A减少为剩余空间A’。
如第5E图所示,当固态存储装置40电源关闭之后,缓冲元件430所存储的内容皆会消失。
如图5F所示,当电源再次开启时,控制电路410将存储于非易失性存储器120中区块B4084~区块B4086的内容载入(load)至缓冲元件430并建立FTL表436。根据本发明的实施例,控制电路410先依序读取区块区块B4084~区块B4086的内容并建立先前备份的FTL表。接着,控制电路410再根据剩余空间A中的内容变更表438来更新FTL表436。换句话说,控制电路410根据剩余空间A中的内容变更表438得知FTL表436中的位置p、位置q、位置r中的内容已被修改,并由剩余空间A中将备份的修改内容1~3分别更新至FTL表436中的位置p、位置q、位置r所对应的区域中,使FTL表436的内容完全相同于电源关闭之前的内容。再者,由于非易失性存储器120中尚未写入或移动有效数据,因此缓冲元件430中的内容变更表438未存储任何信息。也就是说,前一次电源关闭之前的位置p、位置q、位置r已经未存储在内容变更表438。
除了上述方式载入FTL表436之外,在本发明的其他实施例中,也可以用另外的方式来载入FTL表436。举例来说,控制电路410在将区块B4084~区块B4086的内容载入缓冲元件430的过程中,同时根据剩余空间A中的内容变更表438,在FTL表436的位置p的区域直接以内容1来取代,位置q的区域直接以内容2来取代,位置r的区域直接以内容3来取代。因此,当FTL表436建立完成后,其内容完全相同于电源关闭之前的内容。也就是说,于读取区块B4084~区块B4086的过程,结合该内容变更表438所指示的修改内容1~3来一并建立该FTL表436。
如图5G所示,当固态存储装置40正常运作的过程,非易失性存储器120中写入或移动有效数据,控制电路410即修改缓冲元件430中的FTL表436,使FTL表436具有修改内容。举例来说,FTL表436中三处区域的内容被修改而具有修改内容4~6。此时,控制电路410在内容变更表438中记录FTL表436中三处被修改区域的位置,亦即位置x、位置y、位置z。换言之,由内容变更表438中记录的位置x、位置y、位置z,控制电路410可得知FTL表436中该三处区域中的内容已经被修改。其中,位置x、位置y、位置z为存储元件430中对应区域的地址信息(address information)。
如图5H所示,当固态存储装置40欲再次进行FTL表436的备份动作时,例如欲将固态存储装置40的电源关闭时,由于FTL表436的修改内容4~6以及内容变更表438的总数据量大于区块B4086中的剩余空间A’。因此,控制电路410将完整的FTL表436备份于空白区块B4087~空白区块B4089。另外,原先存储于区块B4084~与区块B4086中的内容即成为无效数据(以交叉线表示)。也就是说,控制电路410可将区块B4084~与区块B4086进行抹除动作而成为空白区块。
同样地,由于完整FTL表436的大小(size)小于三个空白区块B4087~空白区块B4089的大小,所以当FTL表436备份至空白区块B4087~空白区块B4089之后,区块B4089内会有剩余空间C。
同理,当固态存储装置40再次电源开启时,控制电路410可由使用区块B4087~区块B4089载入FTL表436。并且,于欲进行FTL表436的备份动作时,根据剩余空间C来判断是否将完整的FTL表436备份于空白区块。
相反地,假设FTL表436的修改内容4~6以及内容变更表438的总数据量小于区块B4086中的剩余空间A’,则控制电路410将采取备份修改内容的方式,即,将修改内容4~6以及内容变更表438备份于区块B4086中的剩余空间A’中。
由以上的说明可知,本发明提出一种运用于固态存储装置的FTL表处理方法。于欲进行FTL表436的备份动作时,控制电路410判断用于备份FTL表436的使用区块中剩余空间的大小,进一步决定是否将完整的FTL表436备份至空白区块。其中,上述使用区块即为存储前次备份的FTL表的区块。
当使用区块中剩余空间充足时,控制电路410将FTL表436中的修改内容1~3以及内容变更表438存储于使用区块中的剩余空间。反之,当使用区块中剩余空间不足时,控制电路410将完整的FTL表436备份于空白区块中。
于实际的运用上,大部分的情况,只要存储前次备份的FTL表的使用区块的剩余空间足够,则控制电路410都会利用使用区块的剩余空间来进行FTL表436的备份动作。当FTL表436的备份动作超过数十次以上,控制电路410才可能进行一次将完整的FTL表436备份于空白区块B4087~空白区块B4089。换句话说,相较于已知FTL表处理方法,本发明的FTL表处理方法确实可以降低非易失性存储器120的编程/抹除次数,并延长易失性存储器120的寿命(life time)。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (6)
1.一种固态存储装置的快闪转换层对应表处理方法,该固态存储装置具有一控制电路、一缓冲元件与一非易失性存储器,该控制电路连接至该缓冲元件与该非易失性存储器,其特征在于,该方法包括下列步骤:
当该固态存储装置的一电源开启时,由该非易失性存储器中的多个使用区块中载入一快闪转换层对应表至该缓冲元件中,其中该快闪转换层对应表的容量小于该些使用区块的总容量;
当一有效数据写入该非易失性存储器或者该有效数据在该非易失性存储器中搬移时,修改该缓冲元件中的该快闪转换层对应表且利用一内容变更表来记录该快闪转换层对应表中修改内容的位置;
判断是否欲对该快闪转换层对应表进行一备份动作;
当判断欲对该快闪转换层对应表进行该备份动作时,根据该快闪转换层对应表中的该至少一修改内容以及该内容变更表的总数据量来决定是否将完整的该快闪转换层对应表备份至该非易失性存储器。
2.如权利要求1所述的处理方法,其特征在于,更包括下列步骤:
于决定备份完整的该快闪转换层对应表时,将该缓冲元件中完整的该快闪转换层对应表备份至该非易失性存储器中的多个空白区块;以及
于决定不备份完整的该快闪转换层对应表时,根据该内容变更表,将该快闪转换层对应表中的该至少一修改内容备份至该些使用区块中的一剩余空间。
3.如权利要求2所述的处理方法,其特征在于,更包括下列步骤:
于决定不备份完整的该快闪转换层对应表时,将该内容变更表备份至该些使用区块中的该剩余空间。
4.如权利要求1所述的处理方法,其特征在于,该缓冲元件中的该快闪转换层对应表被划分为多个区域,当该些区域中的一第一区域被修改时,该第一区域所对应的一第一位置被记录于该内容变更表。
5.如权利要求4所述的处理方法,其特征在于,该缓冲元件为一易失性存储器,且该缓冲元件的该第一位置为该易失性存储器内的一地址信息。
6.如权利要求1所述的处理方法,其特征在于,当该快闪转换层对应表中的该至少一修改内容与该内容变更表的总数据量大于该些使用区块中的一剩余空间时,则决定备份完整的该快闪转换层对应表;以及
当该快闪转换层对应表中的该至少一修改内容与该内容变更表的总数据量小于该些使用区块中的该剩余空间时,则决定不备份完整的该快闪转换层对应表。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110431915.8A CN115221072A (zh) | 2021-04-21 | 2021-04-21 | 固态存储装置的快闪转换层对应表处理方法 |
US17/321,541 US11487429B1 (en) | 2021-04-21 | 2021-05-17 | Flash translation layer table processing method for solid state drive |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110431915.8A CN115221072A (zh) | 2021-04-21 | 2021-04-21 | 固态存储装置的快闪转换层对应表处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115221072A true CN115221072A (zh) | 2022-10-21 |
Family
ID=83605238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110431915.8A Pending CN115221072A (zh) | 2021-04-21 | 2021-04-21 | 固态存储装置的快闪转换层对应表处理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11487429B1 (zh) |
CN (1) | CN115221072A (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7363421B2 (en) * | 2005-01-13 | 2008-04-22 | Stmicroelectronics S.R.L. | Optimizing write/erase operations in memory devices |
US8913335B2 (en) * | 2011-05-23 | 2014-12-16 | HGST Netherlands B.V. | Storage device with shingled data and unshingled cache regions |
US8954694B2 (en) * | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
US9652164B2 (en) * | 2015-05-14 | 2017-05-16 | Toshiba Corporation | Solid-state mass storage device and method for processing forced unit access write commands |
US10162561B2 (en) * | 2016-03-21 | 2018-12-25 | Apple Inc. | Managing backup of logical-to-physical translation information to control boot-time and write amplification |
KR102605560B1 (ko) * | 2018-11-30 | 2023-11-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
-
2021
- 2021-04-21 CN CN202110431915.8A patent/CN115221072A/zh active Pending
- 2021-05-17 US US17/321,541 patent/US11487429B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11487429B1 (en) | 2022-11-01 |
US20220342545A1 (en) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US8108589B2 (en) | Wear leveling method and controller using the same | |
US8606987B2 (en) | Data writing method for flash memory and controller using the same | |
US11354236B2 (en) | Garbage collection method for data storage device | |
US7039788B1 (en) | Method and apparatus for splitting a logical block | |
US8452940B2 (en) | Optimized memory management for random and sequential data writing | |
US8417872B2 (en) | Write and merge methods in memory card systems for reducing the number of page copies | |
KR100946286B1 (ko) | 플래시 파일 시스템에서 가상-물리 주소 변환 방법 및 시스템 | |
US8131911B2 (en) | Data writing method, and flash storage system and controller using the same | |
JP5612514B2 (ja) | 不揮発性メモリコントローラ及び不揮発性記憶装置 | |
US7649794B2 (en) | Wear leveling method and controller using the same | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
CN107092560B (zh) | 固态储存装置及运用于其中的快闪转换层对应表重建方法 | |
CN111158579B (zh) | 固态硬盘及其数据存取的方法 | |
US11593008B2 (en) | Control method for flash memory controller and associated flash memory controller and storage device | |
JP7095568B2 (ja) | メモリコントローラ及びこれを備えるフラッシュメモリシステム | |
JP2012113343A (ja) | 記憶装置 | |
US20090210612A1 (en) | Memory controller, nonvolatile memory device, and nonvolatile memory system | |
US20220269440A1 (en) | Control method for flash memory controller and associated flash memory controller and storage device | |
JP4829202B2 (ja) | 記憶装置及びメモリ制御方法 | |
CN115221072A (zh) | 固态存储装置的快闪转换层对应表处理方法 | |
US11455246B2 (en) | Garbage collection method for data storage device | |
US10942858B2 (en) | Data storage devices and data processing methods | |
CN112527692B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN110928480B (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 |