CN110928480A - 固态储存装置的数据处理方法 - Google Patents
固态储存装置的数据处理方法 Download PDFInfo
- Publication number
- CN110928480A CN110928480A CN201811091896.3A CN201811091896A CN110928480A CN 110928480 A CN110928480 A CN 110928480A CN 201811091896 A CN201811091896 A CN 201811091896A CN 110928480 A CN110928480 A CN 110928480A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- trimming
- processing method
- storage device
- 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
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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/1458—Management of the backup or restore process
-
- 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
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0653—Monitoring storage devices or 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种固态储存装置的数据处理方法,包括下列步骤:于将写入数据写入该些区块中的一数据区块的一数据区时,当该数据区被写满时,对该数据区块进行一区块关闭动作,将对应该数据区块的一关闭信息储存于该数据区块中的一信息区,并认定该数据区块为一使用区块;于接收到一修剪指令时,判断该使用区块是否根据该修剪指令而变更为一非使用区块;以及当该使用区块变更为该非使用区块时,将该关闭信息储存至该些区块中的一修剪区块。
Description
技术领域
本发明涉及一种固态储存装置的数据处理方法,且特别涉及一种固态储存装置对应于修剪指令的数据处理的方法,以及其对应的逻辑至实体对应表(Logical-to-PhysicalTable)重建方法。
背景技术
众所周知,固态储存装置(Solid State Drive,简称SSD)使用非挥发性记忆体(non-volatile memory)为主要储存元件。也就是说,当数据写入非挥发性记忆体后,一旦***电源关闭,数据仍保存在固态储存装置中。
请参照图1,其所绘示为现有固态储存装置的示意图。固态储存装置10中包括一控制电路101与一非挥发性记忆体105。其中,非挥发性记忆体105可为一与非门快闪记忆体(NAND flash memory),且非挥发性记忆体105中包括多个区块Block_0、Block_1等等。再者,该些区块的其中之一被规划用来储存部分建立表(Partial Build Table,简称PBT表)的用途。
在固态储存装置10外部,控制电路101利用一外部总线20与主机(host)12之间进行指令与数据的传递。其中,外部总线12可为USB总线、SATA总线、PCIe总线、M.2总线或者U.2总线等等。
在固态储存装置10内部,控制电路101连接至非挥发性记忆体105,用以根据主机12所发出的写入指令进一步将主机12的写入数据存入非挥发性记忆体105。或者,根据主机12所发出的读取指令由非挥发性记忆体105中取得读取数据,经由控制电路101传递至主机12。
控制电路101更包括一逻辑至实体对应表(Logical-to-Physical Table,简称L2P表)107,用来管理非挥发性记忆体105内的储存数据。
为了能够即时更新L2P表107,L2P表107一般储存于挥发性记忆体中。例如,L2P表107的内容可储存于控制电路101内的静态随机存取记忆体(SRAM)或动态随机存取记忆体(DRAM)。当然,L2P表107的内容也可储存于控制电路101外的动态随机存取记忆体(DRAM)。
由于L2P表107储存于挥发性记忆体中,当固态储存装置10未接受电源时,L2P表107的内容将被删除。因此,当固态储存装置10断电之前,控制电路101需要将L2P表107的内容储存于非挥发性记忆体105中的一特定位置。因此,于固态储存装置10断电之后,虽然控制电路101中L2P表107的内容消失,但是非挥发性记忆体105中仍旧保存L2P表107的内容。
当固态储存装置10再次开机时,控制电路101需要先将非挥发性记忆体105中特定位置所记录的内容载入控制电路101中。当L2P表107的内容成功载入控制电路101后,固态储存装置10即可以正常运作。
再者,为了防止固态储存装置10于运作的过程发生突然断电的状况导致L2P表107的内容消失,控制电路101会在固态储存装置10运作的过程中进行备份动作(backupaction),用以将L2P表107的内容更新于非挥发性记忆体105的PBT表中。
再者,主机12可利用修剪指令(Trim command)来删除区块中的储存数据。一般来说,由于区块中储存数据的抹除需要花费较长的时间,因此当控制电路101接收到修剪指令时,并不会立刻对区块进行抹除动作(erase action),即控制电路101不会立刻将区块中的数据抹除,而仅是在L2P表107中进行注销动作。后续,在适当的时机时,例如在待机时,控制电路101才会对区块进行抹除动作,使得区块中的储存数据完全被删除。
因此,于固态储存装置10的运作过程中,若控制电路101在进行L2P表107的备份动作之后至发生突然断电的期间,主机12曾发出修剪指令(Trim command),则被注销的地址会因断电而消失,使控制电路101将无法正确地重建L2P表107。
发明内容
有鉴于上述现有技术的问题,本发明的目的在于提供一种固态储存装置的数据处理方法。
为达上述目的,本发明提供一种固态储存装置的数据处理方法,该固态储存装置包括一控制电路具有一逻辑至实体对应表以及一非挥发性记忆体具有多个区块,该方法包括下列步骤:于将写入数据写入该些区块中的一数据区块的一数据区时,当该数据区被写满时,对该数据区块进行一区块关闭动作,将对应该数据区块的一关闭信息储存于该数据区块中的一信息区,并认定该数据区块为一使用区块;于接收到一修剪指令时,判断该使用区块是否根据该修剪指令而变更为一非使用区块;以及当该使用区块变更为该非使用区块时,将该关闭信息储存至该些区块中的一修剪区块。
为达上述目的,本发明还提供一种固态储存装置的数据处理方法,该固态储存装置包括一控制电路具有一逻辑至实体对应表以及一非挥发性记忆体具有多个区块,该方法包括下列步骤:于遭遇突然断电后再次接收电源时,将储存于该非挥发性记忆体的一部分建立表的内容载入至该逻辑至实体对应表;以及根据该些区块中的一修剪区块的内容来注销该逻辑至实体对应表中的部分逻辑配置地址与实体配置地址之间的对应关系,其中该修剪区块用来储存一关闭信息。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为现有固态储存装置示意图;
图2为本发明固态储存装置的示意图;
图3A至图3C为固态储存装置的运作过程中非挥发性记忆体与L2P表的用途示意图;
图3D至图3H为固态储存装置进行SPOR动作来重建L2P表的流程示意图;
图4为本发明固态储存装置的数据处理流程示意图;
图5为本发明固态储存装置进行SPOR动作来重建L2P表的流程示意图;
图6A至图6E为本发明固态储存装置的数据处理运作以及进行SPOR动作的示意图。
具体实施方式
下面结合附图对本发明的结构原理和工作原理作具体的描述:
请参照图2,其所绘示为本发明固态储存装置的示意图。固态储存装置40经由一外部总线20连接至主机12。再者,固态储存装置40中包括一控制电路401与一非挥发性记忆体405。其中,非挥发性记忆体405可为一与非门快闪记忆体。
控制电路401包括一逻辑至实体对应表(Logical-to-Physical Table,简称L2P表)407,用来管理非挥发性记忆体405内的储存数据。非挥发性记忆体405中包括多个区块Block_0、Block_1等等。另外,在该些区块中规划至少一个区块PBT用来储存部分建立表(partial build table,简称PBT表)的用途,而另规划至少一个区块为修剪区块Block_trim用来储存关闭信息。
一般来说,非挥发性记忆体405中包括许多区块(block),而每个区块中又包括多个页(page),其中至少一个页被规划为信息区(information area),用以储存关闭数据(close information)。例如,一个区块中有8页,而每个页的容量为4K bytes。其中,第一页至第七页为数据区(data area),用以储存主机的写入数据;第八页为信息区,用以储存关闭数据。
一般来说,L2P表107提供逻辑配置地址(Logical Allocation Address,以下简称LAA)与实体配置地址(Physical Allocation Address,以下简称PAA)之间的对应关系。请参照图3A至图3C,其所绘示为固态储存装置的运作过程中非挥发性记忆体与L2P表的用途示意图。
如图3A所示,非挥发性记忆体405中有6个区块。其中一个区块PBT被规划用来储存PBT表的用途,一个区块被规划为修剪区块Block_trim用来储存关闭信息,而另外四个区块Block_0~Block_3为数据区块,用以储存数据。再者,每个区块中有8个页。举例来说,PAA(00)~PAA(07)位于第零区块Block_0、PAA(08)~PAA(0F)位于第一区块Block_1、PAA(10)~PAA(17)位于第二区块Block_2、PAA(18)~PAA(1F)位于第三区块Block_3。再者,非挥发性记忆体405中每个PAA与LAA的储存容量皆为4Kbytes。
如图3A所示,4个区块Block_0~Block_3中尚未储存数据,所以4个区块Block_0~Block_3皆为自由区块(free block)。另外,L2P表407中尚未有任何对应关系。
如图3B所示,主机12发出写入指令(write command)欲将写入数据储存至逻辑配置地址LAA(18)、LAA(19)、LAA(1A)、LAA(1B)、LAA(1C)、LAA(1D)、LAA(1E)的位置,而控制电路401由自由区块中选择第一区块Block-_1里的实体配置地址PAA(08)、PAA(09)、PAA(0A)、PAA(0B)、PAA(0C)、PAA(0D)、PAA(0E),亦即第一页至第七页,来储存上述写入数据。
因此,如图3B所示,第一区块Block-_1的实体配置地址PAA(08)、PAA(09)、PAA(0A)、PAA(0B)、PAA(0C)、PAA(0D)、PAA(0E)内储存写入数据(斜线区域)。另外,控制电路401会在L2P表407中记录LAA与PAA之间对应的关系。举例来说,L2P表407中记录LAA(18)的写入数据储存于PAA(08)。
再者,第一区块Block_1的最后一个页被规划为信息区,用来储存关闭信息(closeinformation)。当区块的数据区写满时,会对区块执行一区块关闭动作,其中控制电路401会将关闭信息储存于第一区块Block_1的最后一个页中。关闭信息中至少包括该第一区块Block_1中所有PAA至LAA的对应数据(Physical-to-Logical data)D1P2L。也就是说,第一区块Block_1的最后一页至少会记录该区块中每一个PAA所对应的LAA。再者,第一区块Block_1中的对应数据D1P2L的地址对应关系与L2P表407内的地址对应关系相同。再者,于完成区块关闭动作后,第一区块Block_1即为使用区块(used block),而剩下三个区块仍为自由区块(free block)。
如图3C所示,主机12再次发出写入指令(write command)欲将数据写入逻辑配置地址LAA(01)、LAA(02)、LAA(03)、LAA(04)、LAA(10)、LAA(11)、LAA(12)的位置,而控制电路401由自由区块中选择第二区块Block-_2里的实体配置地址PAA(10)、PAA(11)、PAA(12)、PAA(13)、PAA(14)、PAA(15)、PAA(16),亦即第一页至第七页,来储存上述写入数据。
如图3C所示,第二区块Block-_2的实体配置地址PAA(10)、PAA(11)、PAA(12)、PAA(13)、PAA(14)、PAA(15)、PAA(16)内储存写入数据(斜线区域)。相同地,控制电路401会在L2P表407中记录LAA与PAA之间对应的关系。
同理,控制电路401对第二区块Block_2执行区块关闭动作时,第二区块Block_2中所有PAA至LAA的对应数据D2P2L会记录于第二区块Block_2中被规划为信息区的最后一页。再者,于完成区块关闭动作后,第二区块Block_2即为使用区块(used block)。
由以上的说明可知,当控制电路401在执行写入指令时,控制电路401会同步更新L2P表407的内容。因此,控制电路401能够根据L2P表407的内容来掌握非挥发性记忆体405中所有数据的对应关系。
举例来说,假设主机12发出读取指令(read command)欲读取逻辑配置地址LAA(18)中的数据时,控制电路401根据L2P表407确认该数据储存于实体配置地址PAA(08)处。因此,控制电路401读取第一区块Block_1中实体配置地址PAA(08)的数据并将数据传递至主机12。
为了防止固态储存装置40于运作的过程发生突然断电的状况导致L2P表407的内容消失,控制电路401会在固态储存装置40运作的过程中进行备份动作(backup action),用以将L2P表407的内容更新于非挥发性记忆体405的PBT表中。例如,当写入数据到达一特定数据量时,控制电路401进行备份动作,将L2P表407的内容更新于PBT表中。
请参照图3D至图3H,其所绘示为固态储存装置进行突然断电回复动作(suddenpower off and recovery,简称SPOR动作)来重建L2P表的示意图。
接续图3C,如图3D所示,当写入数据量到达特定数据量时,控制电路401进行备份动作,用以将L2P表407的内容D_L2P更新于PBT表中。
接着,如图3E所示,主机12再次发出写入指令(write command)欲将数据写入逻辑配置地址为LAA(16)、LAA(06)、LAA(07)、LAA(08)、LAA(09)、LAA(0A)、LAA(0B)的位置,而控制电路401由自由区块中选择第三区块Block-_3里的实体配置地址PAA(18)、PAA(19)、PAA(1A)、PAA(1B)、PAA(1C)、PAA(1D)、PAA(1E),亦即第一页至第七页,来储存上述写入数据。
如图3E所示,第三区块Block-_3的实体配置地址PAA(18)、PAA(19)、PAA(1A)、PAA(1B)、PAA(1C)、PAA(1D)、PAA(1E)内储存写入数据(斜线区域)。相同地,控制电路401会在L2P表407中记录LAA与PAA之间对应的关系。
同理,控制电路401对第三区块Block_3执行区块关闭动作时,第三区块Block_3中所有PAA至LAA的对应数据D3P2L将记录于第三区块Block_3中被规划为信息区的最后一页。再者,于完成区块关闭动作后,第三区块Block_3即为使用区块(used block)。
如图3F所示,假设固态储存装置40发生突然断电的状况,使得L2P表407的内容消失。当固态储存装置40再次接收电源时,固态储存装置40先进行SPOR动作。
首先,如图3G所示,控制电路401由非挥发性记忆体405的PBT表中取得最后更新的内容D_L2P并载入L2P表407中。因此,控制电路401可确认第一区块Block_1与第二区块Block_2为使用区块。
之后,控制电路401搜寻非挥发性记忆体405内的其它区块,并确认第三区块Block_3为使用区块,但L2P表407并未记录其对应关系。因此,如图3H所示,控制电路401由第三区块Block_3的信息区中取得PAA至LAA的对应数据D3P2L,并记录于L2P表407。
如图3H所示,L2P表407重建完成,L2P表407的内容回复至突然断电之前的内容,亦即固态储存装置40完成SPOR动作。此时,固态储存装置40可再次正常运作。
为了避免因修剪指令而被注销的地址,因断电而无法正确地被重建,根据本发明的实施例,当控制电路401执行修剪指令时,如果发生使用区块变更为非使用区块时,该非使用区块的关闭信息会被储存至修剪区块Block_trim中。
请参照图4,其所绘示为本发明固态储存装置的数据处理流程示意图。于固态储存装置40正常运作时,控制电路401会接收主机所发出的指令(步骤S412),并判断接收的指令是否为修剪指令(步骤S414)。当控制电路401接收的指令不是修剪指令时(S414),则控制电路401执行该指令(步骤S416)后回到步骤S412。举例来说,当控制电路401接收到写入指令时,则控制电路401将写入数据储存至非挥发性记忆体405中。或者,当控制电路401接收到读取指令时,则控制电路401将非挥发性记忆体405中的数据传递至主机12。
再者,当控制电路401接收的指令为修剪指令时(S414),则控制电路401执行该修剪指令(步骤S418)。举例来说,当控制电路401执行该修剪指令时,控制电路401会注销L2P表407中部分LAA与PAA之间的对应关系。
根据本发明的实施例,控制电路401会判断是否有使用区块变更为非使用区块的情况发生(步骤S420)。当没有发生使用区块变更为非使用区块的情况时(步骤S418),回到步骤S412。反之,当发生使用区块变更为非使用区块的情况时(步骤S418),则控制电路401将非使用区块中的关闭信息储存至修剪区块Block_trim中,并回到步骤S412。
举例来说,于执行修剪指令时,其中一个使用区块内的写入数据皆变为无效数据,则控制电路401确认该使用区块变更为非使用区块。接着,控制电路401将该非使用区块内的关闭信息储存至修剪区块Block_trim中。之后,控制电路401可在适当时机对该非使用区块进行抹除动作,使该非使用区块成为自由区块。
请参照图5,其所绘示为本发明固态储存装置进行SPOR动作来重建L2P表的流程示意图。当固态储存装置40进行SPOR动作时,控制电路401将PBT表的内容载入L2P表(步骤S452)。接着,控制电路401搜寻非挥发性记忆体405内未记录于L2P表407的其它使用区块,并将其信息区中的PAA至LAA的对应关系记录于L2P表407(步骤S454)。接着,控制电路401根据修剪区块Block_trim的内容来注销L2P表中部分LAA至PAA的对应关系(步骤S456)。
请参照图6A至图6E,其所绘示为本发明固态储存装置的数据处理运作以及进行SPOR动作的示意图。其中,图6A中的非挥发性记忆体405与L2P表407中的内容相同于图3E。
如图6B所示,主机12发出修剪指令(Trim command)删除逻辑配置地址LAA(01)、LAA(02)、LAA(03)、LAA(04)、LAA(10)、LAA(11)、LAA(12)中的数据。
此时,控制电路101注销L2P表中逻辑配置地址LAA(01)、LAA(02)、LAA(03)、LAA(04)、LAA(10)、LAA(11)、LAA(12)与实体配置地址PAA(10)、PAA(11)、PAA(12)、PAA(13)、PAA(14)、PAA(15)、PAA(16)之间的对应关系。因此,第二区块Block_2中的所有数据(交叉线区域)即成为无效数据(invalid data),亦即第二区块Block_2变为非使用区块。
根据本发明的实施例,当控制电路401确认第二区块Block_2变为非使用区块时,控制电路401更将第二区块Block_2的信息区中的关闭信息,亦即PAA至LAA的对应数据D2P2L,储存至修剪区块Block_trim。之后,控制电路101可于适当时机抹除(erase)第二区块Black_2,使第二区块Block_2成为自由区块。
假设此时固态储存装置40发生突然断电的状况,造成L2P表407的内容消失。当固态储存装置40再次接收电源时,固态储存装置40进行SPOR动作。
首先,如图6C所示,控制电路401由非挥发性记忆体405的PBT表中取得最后更新的内容D_L2P并载入L2P表407中。
接着,控制电路401搜寻非挥发性记忆体405内的其它区块,并确认第三区块Block_3为使用区块,但L2P表407并未记录其对应关系。因此,如图6D所示,控制电路401由第三区块Block_3的信息区中取得PAA至LAA的对应数据D3P2L,并载入L2P表407中。
之后,如图6E所示,修剪区块Block_trim中储存第二区块Block_2的关闭信息,亦即PAA至LAA的对应数据D2P2L。因此,控制电路401确认第二区块Block_2为非使用区块,并进一步注销L2P表407中第二区块Block_2的对应关系。亦即,控制电路401注销L2P表407中PAA(10)、PAA(11)、PAA(12)、PAA(13)、PAA(14)、PAA(15)、PAA(16)与LAA(01)、LAA(02)、LAA(03)、LAA(04)、LAA(10)、LAA(11)、LAA(12)之间的对应关系。
由以上的说明可知,当固态储存装置40执行修剪指令时,控制电路401于修剪区块Block_trim中记录变更为非使用区块的对应数据。当固态储存装置40突然断电并进行SPOR动作后,可正确地重建L2P表407,使L2P表407的内容回复至突然断电之前的内容,而固态储存装置40可再次正常运作。
以上的实施例是以非挥发性记忆体405中有六个区块,且每个区块中仅有8个页为例来进行说明。当然本发明并不限定于此。再者,以上的实施例是将区块中的最后一个页规划为信息区,然本发明亦不限定于此。
在实际的运用上,非挥发性记忆体405中包括更多个区块,而每个区块中包括更多个页。举例来说,非挥发性记忆体405中包括1024个区块,而每个区块中包括2000个页。在此情况之下,每个区块的第1页至第1990页可规划为数据区(data area),用以储存主机的写入数据;第1991页至第2000页可规划为信息区(information area),用以储存关闭数据(close information)。
再者,于固态储存装置40于正常运作时,当写入数据量到达20Gbytes时,控制电路401进行备份动作,并将L2P表407的内容更新于PBT表中。
另外,由于修剪区块Block_trim的容量有限,当修剪区块Block_trim到达一储存上限时,控制电路401可进行备份动作,将L2P表407的内容更新于PBT表中。之后,控制电路401再对修剪区块Block_trim进行抹除动作。如此,当控制电路401再次执行修剪指令时,修剪区块Block_trim即有足够的空间来储存非使用区块的对应数据量。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (11)
1.一种固态储存装置的数据处理方法,该固态储存装置包括一控制电路具有一逻辑至实体对应表以及一非挥发性记忆体具有多个区块,其特征在于,该方法包括下列步骤:
于将写入数据写入该些区块中的一数据区块的一数据区时,当该数据区被写满时,对该数据区块进行一区块关闭动作,将对应该数据区块的一关闭信息储存于该数据区块中的一信息区,并认定该数据区块为一使用区块;
于接收到一修剪指令时,判断该使用区块是否根据该修剪指令而变更为一非使用区块;以及
当该使用区块变更为该非使用区块时,将该关闭信息储存至该些区块中的一修剪区块。
2.根据权利要求1所述的数据处理方法,其特征在于,更包括下列步骤:
于遭遇突然断电后再次接收电源时,将储存于该非挥发性记忆体的一部分建立表的内容载入至该逻辑至实体对应表;以及
根据该修剪区块的内容来注销该逻辑至实体对应表中的部分逻辑配置地址与实体配置地址之间的对应关系。
3.根据权利要求1所述的数据处理方法,其特征在于,当该使用区块的该数据区中的所有数据变更为无效数据时,认定该使用区块变更为该非使用区块。
4.根据权利要求1所述的数据处理方法,其特征在于,更包括下列步骤:
当该修剪区块到达一储存上限时,进行一备份动作,将该逻辑至实体对应表的内容储存于该非挥发性记忆体中;以及
对该修剪区块进行一抹除动作。
5.根据权利要求1所述的数据处理方法,其特征在于,更包括下列步骤:
判断写入该非挥发性记忆体中的写入数据量是否大于一特定数据量;
当该写入数据量到达该特定数据量时,进行一备份动作,将该逻辑至实体对应表的内容储存该非挥发性记忆体中。
6.根据权利要求1所述的数据处理方法,其特征在于,该数据区块中包括多个页,且该些页被区分为该数据区与该信息区,该数据区用以储存写入数据且该信息区用以储存该关闭数据。
7.一种固态储存装置的数据处理方法,该固态储存装置包括一控制电路具有一逻辑至实体对应表以及一非挥发性记忆体具有多个区块,其特征在于,该方法包括下列步骤:
于遭遇突然断电后再次接收电源时,将储存于该非挥发性记忆体的一部分建立表的内容载入至该逻辑至实体对应表;以及
根据该些区块中的一修剪区块的内容来注销该逻辑至实体对应表中的部分逻辑配置地址与实体配置地址之间的对应关系,其中该修剪区块用来储存一关闭信息。
8.根据权利要求7所述的数据处理方法,其特征在于,更包括下列步骤:
于将写入数据写入该些区块中的一数据区块的一数据区时,当该数据区被写满时,对该数据区块进行一区块关闭动作,将对应该数据区块的该关闭信息储存于该数据区块中的一信息区,并认定该数据区块为一使用区块;
于接收到一修剪指令时,判断该使用区块是否根据该修剪指令而变更为一非使用区块;以及
当该使用区块变更为该非使用区块时,将该关闭信息储存至该些区块中的该修剪区块。
9.根据权利要求8所述的数据处理方法,其特征在于,当该使用区块的该数据区中的所有数据变更为无效数据时,认定该使用区块变更为该非使用区块。
10.根据权利要求7所述的数据处理方法,其特征在于,更包括下列步骤:
当该修剪区块到达一储存上限时,进行一备份动作,将该逻辑至实体对应表的内容储存于该部分建立表中;以及
对该修剪区块进行一抹除动作。
11.根据权利要求7所述的数据处理方法,其特征在于,更包括下列步骤:
判断写入该非挥发性记忆体中的写入数据量是否大于一特定数据量;
当该写入数据量到达该特定数据量时,进行一备份动作,将该逻辑至实体对应表的内容储存该部分建立表中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811091896.3A CN110928480B (zh) | 2018-09-19 | 2018-09-19 | 固态储存装置的数据处理方法 |
US16/225,757 US10732875B2 (en) | 2018-09-19 | 2018-12-19 | Data processing method for solid state drive |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811091896.3A CN110928480B (zh) | 2018-09-19 | 2018-09-19 | 固态储存装置的数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928480A true CN110928480A (zh) | 2020-03-27 |
CN110928480B CN110928480B (zh) | 2023-06-09 |
Family
ID=69774088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811091896.3A Active CN110928480B (zh) | 2018-09-19 | 2018-09-19 | 固态储存装置的数据处理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10732875B2 (zh) |
CN (1) | CN110928480B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130054880A1 (en) * | 2011-08-26 | 2013-02-28 | Stec, Inc. | Systems and methods for reducing a number of close operations in a flash memory |
CN103164345A (zh) * | 2011-12-08 | 2013-06-19 | 建兴电子科技股份有限公司 | 固态存储装置遭遇断电后的数据存储方法 |
CN107092560A (zh) * | 2016-02-17 | 2017-08-25 | 光宝电子(广州)有限公司 | 固态储存装置及运用于其中的快闪转换层对应表重建方法 |
-
2018
- 2018-09-19 CN CN201811091896.3A patent/CN110928480B/zh active Active
- 2018-12-19 US US16/225,757 patent/US10732875B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130054880A1 (en) * | 2011-08-26 | 2013-02-28 | Stec, Inc. | Systems and methods for reducing a number of close operations in a flash memory |
CN103164345A (zh) * | 2011-12-08 | 2013-06-19 | 建兴电子科技股份有限公司 | 固态存储装置遭遇断电后的数据存储方法 |
CN107092560A (zh) * | 2016-02-17 | 2017-08-25 | 光宝电子(广州)有限公司 | 固态储存装置及运用于其中的快闪转换层对应表重建方法 |
Also Published As
Publication number | Publication date |
---|---|
US10732875B2 (en) | 2020-08-04 |
CN110928480B (zh) | 2023-06-09 |
US20200089405A1 (en) | 2020-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11068391B2 (en) | Mapping table updating method for data storage device | |
US9645894B2 (en) | Data storage device and flash memory control method | |
US8909986B2 (en) | Data storing method for solid state drive to preserve data integrity after power failure | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US20170039141A1 (en) | Mapping table updating method, memory storage device and memory control circuit unit | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20150268879A1 (en) | Memory management method, memory storage device and memory control circuit unit | |
US10055143B2 (en) | Solid state drive and data programming method thereof | |
US20110231597A1 (en) | Data access method, memory controller and memory storage system | |
US9058255B2 (en) | Solid state drive and method for constructing logical-to-physical table thereof | |
US20140328127A1 (en) | Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
JP2006285600A (ja) | 記憶装置、メモリ管理装置、メモリ管理方法及びプログラム | |
US20130346674A1 (en) | Data writing method, memory controller and memory storage device | |
US11809328B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
CN106445401B (zh) | 表格更新方法、存储器储存装置及存储器控制电路单元 | |
US9378130B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20160054935A1 (en) | Data storing method and memory controller and memory storage device using the same | |
CN111221750B (zh) | 固态储存装置的数据处理方法 | |
TWI718516B (zh) | 用於快閃記憶體中保護已抹除區塊的寫入管理機制 | |
CN110928480B (zh) | 固态储存装置的数据处理方法 | |
US20120124275A1 (en) | Memory system and data storage method | |
US7996598B2 (en) | Memory management module | |
CN115221072A (zh) | 固态存储装置的快闪转换层对应表处理方法 | |
CN118069410A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |