CN114816223A - 运用于固态存储装置的相关控制方法 - Google Patents
运用于固态存储装置的相关控制方法 Download PDFInfo
- Publication number
- CN114816223A CN114816223A CN202110108700.2A CN202110108700A CN114816223A CN 114816223 A CN114816223 A CN 114816223A CN 202110108700 A CN202110108700 A CN 202110108700A CN 114816223 A CN114816223 A CN 114816223A
- Authority
- CN
- China
- Prior art keywords
- block
- capacity
- write data
- lba
- blocks
- 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
- 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
- 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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0647—Migration mechanisms
-
- 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/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)
- Read Only Memory (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种运用于固态存储装置的控制方法。固态存储装置包括一非易失性存储器且非易失性存储器中包括多个区块。此控制方法包括下列步骤:(a1)开启一区块;(a2)于进行一编程动作时,将有效写入数据存储于开启区块;(a3)判断开启区块中存储的有效写入数据是否到达一预定容量;(a4)当开启区块中存储的有效写入数据未到达预定容量时,回到该步骤(a2);以及(a5)当开启区块中存储的有效写入数据到达预定容量时,关闭开启区块,并回到该步骤(a1);其中,预定容量小于一个区块的容量。
Description
技术领域
本发明是有关于一种存储装置的运作方法,且特别是有关于一种运用于固态存储装置的相关控制方法。
背景技术
众所周知,固态存储装置(Solid State Device,SSD)使用非易失性存储器(non-volatile memory)为主要存储元件。也就是说,当数据写入非易失性存储器后,一旦系统电源关闭,数据仍保存在固态存储装置中。
请参照图1,其所示为已知固态存储装置的示意图。固态存储装置10中包括一控制器110、缓冲元件(buffering element)130与一非易失性存储器120。而在固态存储装置10外部,控制器110通过一外部总线20与主机(host)12之间进行指令与数据的传递。其中,缓冲元件130为快取存储器(cache memory),非易失性存储器120可为快闪存储器(flashmemory),且缓冲元件130可利用SRAM或者DRAM来实现。另外,外部总线20可为USB总线、IEEE1394总线、M.2总线、PCIe总线或SATA总线等等。
再者,非易失性存储器120包括主存储区(main storage area)122以及超额配置区(over provisioning area,简称OP区)124。基本上,主机12仅能存取主存储区122中的数据,而超额配置区124是控制器110用来执行特定功能的用途。举例来说,超额配置区124中包括备用区块,用以取代主存储区122中的损坏区块(bad block)。或者,控制器110可利用超额配置区124中的区块来进行垃圾搜集(garbage collection,简称GC)动作。
当主机12输出写入数据(write data)欲存储至非易失性存储器120的主存储区122时,控制器110会先将写入数据进行ECC(Error Correcting Code)编码程序,之后再将写入数据暂存于缓冲元件130。而控制器110会适时的进行编程动作,将缓冲元件130中的写入数据存储至非易失性存储器120的主存储区122。
请参照图2,其所示为4通道的非易失性存储器示意图。非易失性存储器120中包括四个通道CH1~CH4,每个通道有1024个区块。而控制器110可将写入数据写入四个通道CH1~CH4中的开启区块(open clock)。其中,开启区块即为可进行编程动作的区块。
四个通道CH1~CH4的第一个区块的编号依序为区块B0、区块B1、区块B2、区块B3。四个通道CH1~CH4的第二个区块的编号依序为区块B4、区块B5、区块B6、区块B7。依此类推。
同理,四个通道CH1~CH4的第(n+1)个区块的编号依序为区块B4n、区块B4n+1、区块B4n+2、区块B4n+3。其中,n为整数,n大于等于0,且n小于等于1023。因此,四个通道CH1~CH4的第1023个区块的编号依序为区块B4092、区块B4093、区块B4094、区块B4095。
再者,非易失性存储器120中包括主存储区122与超额配置区124。每个通道CH1~CH4皆有一部分的区块位于主存储区122,作为主机12存取的用途,每个通道CH1~CH4其他部分区块位于超额配置区124则受控于控制器110。
一般来说,非易失性存储器120的每个通道CH1~CH4中有多个区块,每个区块中包括多个页(page)。例如,非易失性存储器120的每个通道中有1024个区块,而每个区块中有64页,每个页的容量为4Kbytes。由于非易失性存储器120的特性,数据编程是以页为基本单位来进行编程动作(program action),而数据抹除(erase)则是以区块为单位进行区块抹除动作(block erase action)。
当然,非易失性存储器120也不限定于仅有四个通道,每个通道也不限定于仅有1024个区块。另外,非易失性存储器120制造商可以决定每个区块中的页数以及每页的容量。也就是说,每个区块并不限定于只有64页,每个页也不限定于只有4Kbytes的容量。
于正常运作时,主机12是以逻辑区块地址(logical block address,简称LBA)来存取非易失性存储器120。LBA所对应的LBA数据量(LBA size)为512位字节(512bytes)。换言之,一个区块中可存储的数据量等于500个LBA数据量,亦即256Kbytes(64×4Kbytes)。
当主机12欲将写入数据编程至非易失性存储器120中的主存储区122时,主机12会先产生写入命令(write command)及LBA至控制器110。之后,主机12再将对应的LBA写入数据(LBA write data)输出至控制器110。而控制器110会先将LBA写入数据暂存于缓冲元件130中,之后才将缓冲元件130中的LBA写入数据存储至非易失性存储器120的主存储区122。其中,LBA写入数据的数据量即为LBA数据量,亦即512位字节(512bytes)。当然,主机12也可以发出连续的LBA,并输出多个LBA写入数据至控制器110。为了方便说明,以下皆以LBA以及LBA写入数据来说明之。
请参照图3A至图3D,其所示为控制器110进行编程动作的示意图。基本上,控制器110进行编程动作时,会依据区块的编号由小到大依序将LBA写入数据存入其中。举例来说,LBA写入数据填满区块B0后,控制器110关闭(close)区块B0,并继续将LBA写入数据写入区块B1,依此类推。
如图3A所示,以斜线方框代表一个有效LBA写入数据(valid LBA write data)。区块B0至区块B3已经被多个LBA写入数据所填满,而控制器110继续将LBA写入数据存储于区块B4。其中,LBAz的LBA写入数据存储于区块B1,LBAy的LBA写入数据存储于区块B2,LBAx的LBA写入数据存储于区块B3。
另外,主机12也可以更新先前已经存储的LBA写入数据。当主机12更新特定LBA的LBA写入数据时,更新的LBA写入数据会存储于正在使用的区块。而先前特定LBA的LBA写入数据则会被设定为无效LBA写入数据(invalid LBA write data),且主机12无法再读取(read)无效LBA写入数据。
如图3B所示,当主机12更新LBAx的LBA写入数据时,更新的LBA写入数据会存储于正在使用的区块B4。而先前存储于区块B3中LBAx的写入数据则会被设定为无效LBA写入数据。其中,无效LBA写入数据以交叉方框代表。
如图3C所示,区块B4已经被多个LBA写入数据所填满,而控制器110继续将LBA写入数据存储于区块B5。此时,主机12更新LBAy与LBAz的LBA写入数据,而更新的两笔LBA写入数据会存储于正在使用的区块B5。另外,先前存储于区块B2中LBAy的LBA写入数据以及存储于区块B1中LBAz的LBA写入数据则会被设定为无效LBA写入数据。
如图3D所示,区块B5已经被多个LBA写入数据所填满,而控制器110继续将LBA写入数据存储于区块B6。此时,主机12再次更新LBAx的LBA写入数据,而更新的LBA写入数据会存储于正在使用的区块B6。另外,先前存储于区块B4中LBAx的LBA写入数据则会被设定为无效LBA写入数据。
由以上的说明可知,当控制器110执行多次编程动作后,非易失性存储器120中的空白区块(blank block)会逐渐减少,亦即非易失性存储器120的可编程空间会逐渐减少。并且,由于主机12持续更新LBA写入数据,所以已使用的区块中会出现许多的无效LBA写入数据。
由于非易失性存储器120的抹除最小单位为区块,而非易失性存储器120中虽然有部分区块中具有无效LBA写入数据,但是这些区块中尚存储着有效LBA写入数据,因此控制器110无法直接抹除这些区块。
当非易失性存储器120中已经没有足够的空白区块时,为了将已使用区块内的无效LBA写入数据的空间释放出来,固态存储装置10的控制器110会进行垃圾搜集动作,以释放无效LBA写入数据的空间,用以增加可编程空间。以下简单介绍垃圾搜集动作。
当控制器110进行垃圾搜集动作时,控制器110会逐一检查每个区块的有效数据率(valid data rate)。举例来说,一个区块的有效数据率为100%时,代表区块存储的数据中皆为有效LBA写入数据。一个区块的有效数据率为90%时,代表区块存储的数据中有1/10的无效LBA写入数据,有9/10的有效LBA写入数据。一个区块的有效数据率为80%时,代表区块存储的数据中有1/5的无效LBA写入数据,有4/5的有效LBA写入数据。
于进行垃圾搜集动作时,控制器110会逐一检查非易失性存储器120中每个区块的有效数据率,并根据有效数据率来决定多个选定区块(selected block),而将所有选定区块内的有效LBA写入数据搬移至空白区块之后,即可抹除(erase)所有的选定区块,并且成功地释放无效LBA写入数据的空间并增加非易失性存储器120的可编程空间。
举例来说,如图4A所示的垃圾搜集动作。控制器110逐一检查非易失性存储器120中每个区块的有效数据率之后,搜寻到有效数据率为80%的五个选定区块Ba1~Ba5。接着,控制器110将五个选定区块Ba1~Ba5内的有效LBA写入数据搬移至四个新的空白区块Bb1~Bb4后,即抹除五个选定区块Ba1~Ba5。因此,非易失性存储器120中即可增加一个空白区块,用以增加非易失性存储器120的可编程空间。再者,于上述的垃圾搜集动作中,五个选定区块Ba1~Ba5的编程/抹除次数(program/erase count,简称P/E count)会增加一次。
一般来说,已知固态存储装置10中的控制器110进行垃圾搜集动作时,会搜寻多个有效数据率较低的区块作为选定区块。当这些选定区块中的有效LBA写入数据搬移至其他区块之后,再将这些选定区块抹除成空白区块后即完成垃圾搜集动作。
由于固态存储装置10是根据主机12的写入指令来接收LBA以及有效LBA写入数据,并存储至非易失性存储器120。因此,固态存储装置10无法得知非易失性存储器120中每个区块的有效数据率,控制器110必须在垃圾搜集动作时逐一搜寻非易失性存储器120中的区块,以确认其有效数据率。然而,由于非易失性存储器120中的区块数目相当多,当控制器110进行垃圾搜集动作时,控制器110在决定选定区块以及搬移有效LBA写入数据的过程中会耗费相当长的时间,造成固态存储装置10系统延迟时间(system latency)增加,效能(performance)降低。
举例来说,在较差的情况下的垃圾搜集动作即如图4B所示。于进行垃圾搜集动作时,控制器110搜寻到非易失性存储器120中有效数据率为99%的一百个选定区块Ba1~Ba100。接着,控制器110将一百个选定区块Ba1~Ba100内的有效LBA写入数据搬移至九十九个新的空白区块Bb1~Bb99后,即抹除一百个选定区块Ba1~Ba100。明显地,上述垃圾搜集动作将会耗费相当长的时间,造成固态存储装置10几乎产生最大系统延迟时间(maximum systemlatency),使得系统效能大幅降低。另外,一百个选定区块Ba1~Ba100的编程/抹除次数会增加一次。
由以上的说明可知,由于已知固态存储装置10无法得知非易失性存储器120中每个区块的有效数据率。因此,已知固态存储装置10在进行垃圾搜集动作时,系统延迟时间非常不稳定且无法预期。再者,由于控制器110搜寻有效数据率较低的区块作为选定区块,所以进行多次的垃圾搜集动作后,非易失性存储器120中区块的编程/抹除次数会非常的不平均。亦即,非易失性存储器120内一部分的区块的编程/抹除次数会非常高,另一部分区块的编程/抹除次数很低。
基本上,影响固态存储装置10寿命的参数主要就是环境温度以及区块的编程/抹除次数。一般来说,固态存储装置10在搬移有效LBA写入数据时,会根据搬移有效LBA写入数据的多寡而增加多次的编程/抹除次数,称之为写入放大指标(write amplificationindex,简称WAI)。
当写入放大指标越小,代表搬移的有效LBA写入数据较少,且区块的编程/抹除次数较少,可以延长固态存储装置10的寿命。反之,写入放大指标越大,代表搬移的有效LBA写入数据较多,且区块的编程/抹除次数较多,会缩短固态存储装置10的寿命。举例来说,图4A所示的垃圾搜集动作所产生的写入放大指标小于图4B所示的垃圾搜集动作所产生的写入放大指标。
发明内容
本发明提出一种运用于固态存储装置的相关控制方法,可以控制有效数据率与写入放大指标,达成延长固态存储装置寿命的目的。
本发明提出一种固态存储装置的控制方法,该固态存储装置包括一非易失性存储器,该非易失性存储器中包括多个区块,该控制方法包括下列步骤:(a1)开启一区块;(a2)于进行一编程动作时,将有效写入数据存储于该开启区块;(a3)判断该开启区块中存储的有效写入数据是否到达一预定容量;(a4)当该开启区块中存储的有效写入数据未到达该预定容量时,回到该步骤(a2);以及(a5)当该开启区块中存储的有效写入数据到达该预定容量时,关闭该开启区块,并回到该步骤(a1);其中,该预定容量小于一个区块的容量。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为已知固态存储装置的示意图。
图2为4通道的非易失性存储器示意图。
图3A至图3D为控制器进行编程动作的示意图。
图4A与图4B为控制器进行垃圾搜集动作的示意图。
图5为本发明固态存储装置的示意图。
图6为本发明非易失性存储器的写入控制方法。
图7为本发明的垃圾搜集动作流程图。
具体实施方式
下面结合附图对本发明的结构原理和工作原理作具体的描述:
已知固态存储装置10在进行垃圾搜集动作时,系统延迟时间非常不稳定且无法预期。在较差的情况下,将造成系统延迟时间非常的长,并大幅影响固态存储装置10的效能。
请参照图5,其所示为本发明固态存储装置的示意图。固态存储装置50中包括一控制器510、缓冲元件130与一非易失性存储器120。而在固态存储装置50外部,控制器510通过一外部总线20与主机12之间进行指令与数据的传递。其中,缓冲元件130为快取存储器,非易失性存储器120为快闪存储器,且缓冲元件130可利用SRAM或者DRAM来实现。另外,外部总线20可为USB总线、IEEE 1394总线、M.2总线、PCIe总线或SATA总线等等。
相同地,非易失性存储器120内部包括主存储区122以及超额配置区124,其结构相同于图2,此处不再赘述。基本上,主机12仅能存取主存储区122中的数据。而超额配置区124是控制器510用来执行特定功能的用途。举例来说,总容量512Gbytes的非易失性存储器120,其主存储区122的容量可设定为480Gbytes,超额配置区124的容量可设定为32Gbytes,因此超额配置率约为7%,[(512-480)/480]。
根据本发明的实施例,本发明固态存储装置50的控制器510可于编程动作时控制每个区块的最高有效数据率上限。因此,于进行垃圾搜集动作时,控制器510决定的选定区块数目会低于一预定数目,使得固态存储装置50的系统延迟时间受到控制,不会造成系统效能的大幅变化。在本发明的其他实施例中,控制器510可以根据非易失性存储器120的超额配置率来决定每个区块的最高有效数据率上限。
请参照图6,其所示为本发明非易失性存储器的写入控制方法。首先,于固态存储装置50开始运作时,控制器510会在非易失性存储器120的主存储区122中开启新区块(步骤S610)。于进行编程动作时,控制器510会将有效LBA写入数据存储于开启的区块内(步骤S612)。
之后,判断存储的LBA写入数据是否已经到达预定容量(步骤S614)。预定容量是小于一个区块的容量,举例来说,预定容量为一个区块容量的95%。当存储的LBA写入数据尚未到达预定容量时(步骤S614),回到步骤S612,继续将有效LBA写入数据存储于开启的区块内。反之,当存储的LBA写入数据已到达预定容量时(步骤S614),则控制器510关闭目前使用的区块(步骤S616)。之后,回到步骤S610,开启另一个新区块(步骤S610)。
相较于已知固态存储装置于编程动作时将写入数据填满整个区块后,才将写入数据存储至另一新的区块,本发明的控制器510于编程动作时仅使用区块中部分容量来存储写入数据。也就是说,当存储的写入数据到达预定容量时,控制器510即关闭目前使用区块。接着,开启另一个区块,并以相同的方式来存储写入数据。
根据本发明的实施例,控制器510可设定预定容量在一个区块容量的90%~95%之间。也就是说,将每个区块的最高有效数据率上限设定在一个区块容量的90%~95%之间。而在其他的实施例中,更可以根据固态存储装置120的超额配置率来决定预定容量。例如当超额配置率为7%时,预定容量等于1减去超额配置率的结果乘以一个区块容量,亦即预定容量为一个区块容量的93%(1-7%)。
以下以预定容量为一个区块容量的95%为例来说明,亦即控制器510于编程动作时仅能存储一个区块容量的95%,使得每个区块的最高有效数据率上限为95%。另外,在后续的编程动作中,如果主机12曾经在区块中更新先前已经存储的LBA写入数据,则可确认区块的有效数据率必定会小于95%。
因此,于进行垃圾搜集动作时,控制器510决定的选定区块数目必定会低于二十个。由于可以确定选定区块的最大数目,所以控制器510在可预期的系统延迟时间之内,将选定区块中的有效LBA写入数据搬移至其他区块,并将选定区块抹除成空白区块。另外,由于固态存储装置50的系统延迟时间受到控制,因此不会造成系统效能的大幅变化。
另外,由于非易失性存储器120中已经使用的区块(关闭区块)的最高有效数据率上限为95%。于进行垃圾搜集动作时,控制器510不须逐一搜寻每个区块的有效数据率,控制器510可以选择连续编号的区块来作为选定区块,并进行垃圾搜集动作。请参照图7,其所示为本发明搭配上述写入控制方法的垃圾搜集动作流程图。
于进行垃圾搜集动作时,控制器510决定第M区块BM为选定区块(M为正整数),并根据第M区块BM的有效数据率来计算无效数据容量(步骤S710)。其中,M为大于等于0的整数。举例来说,假设第M区块BM的有效数据率为95%,则代表第M区块BM中无效数据的容量为一个区块容量的1/20。
接着,判断累计的无效数据是否充足(步骤S712)。当累计的无效数据不充足时,控制器510尚无法搬移选定区块中的有效LBA写入数据,因此将M增加1(步骤S714)后,回到步骤S710。另外,当累计的无效数据充足时,控制器510即可将所有选定区块中的有效LBA写入数据搬移至空白区块(步骤S716),之后控制器510即抹除所有选定区块(步骤S718),并完成垃圾搜集动作。
举例来说,控制器510进行垃圾搜集动作时,根据图7的流程决定区块B100至区块B110(亦即,连续11个区块)为选定区块。且这些区块中的无效数据容量依序为一个区块容量的5%、7%、10%、15%、8%、5%、9%、20%、5%、6%、10%。控制器510累计上述11个选定区块(区块B100~B110)的无效数据已经足够,亦即选定区块(区块B100~B110)的无效数据已经累计到达或者超过一个区块容量。因此,控制器510即可将11个选定区块(区块B100~B110)中的有效LBA写入数据搬移至10个空白区块,之后控制器510即抹除所有选定区块(区块B100~B110),并完成垃圾搜集动作。再者,当控制器510再次进行垃圾搜集动作时,控制器510可由后续的区块B111开始决定连续的多个区块为选定区块。
由于已知固态存储装置10进行的垃圾搜集动作时,控制器110搜寻有效数据率较低的区块作为选定区块,所以进行多次的垃圾搜集动作后,非易失性存储器120中区块的编程/抹除次数(P/E count)会非常的不平均。
对照于已知固态存储装置10,运用本发明固态存储装置50的写入控制方法搭配垃圾搜集动作的流程,非易失性存储器120中的所有区块会依序成为垃圾搜集动作中的选定区块。因此,进行多次的垃圾搜集动作后,所有区块的编程/抹除次数(P/E count)几乎相同,可以有效地延长固态存储装置50的寿命。
再者,由于本发明于编程动作时,控制每个区块的最高有效数据率上限。因此,于垃圾搜集动作时可以确定选定区块的最大数目,所以可以稳定地控制写入放大指标,进而达成延长固态存储装置寿命的目的。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (6)
1.一种固态存储装置的控制方法,该固态存储装置包括一非易失性存储器,该非易失性存储器中包括多个区块,其特征在于,该控制方法包括下列步骤:
(a1)开启一区块;
(a2)于进行一编程动作时,将有效写入数据存储于该开启区块;
(a3)判断该开启区块中存储的该有效写入数据是否到达一预定容量;
(a4)当该开启区块中存储的该有效写入数据未到达该预定容量时,回到该步骤(a2);以及
(a5)当该开启区块中存储的该有效写入数据到达该预定容量时,关闭该开启区块,并回到该步骤(a1);
其中,该预定容量小于该区块的容量。
2.如权利要求1所述的控制方法,其特征在于,该预定容量设定在该区块容量的90%~95%之间。
3.如权利要求1所述的控制方法,其特征在于,利用该非易失性存储器中的一主存储区容量与一超额配置区容量决定一超额配置率,且根据该超额配置率决定该预定容量。
4.如权利要求4所述的控制方法,其特征在于,该预定容量等于1减去该超额配置率的结果乘以一个区块容量。
5.如权利要求1所述的控制方法,其特征在于,更包括下列步骤:
(b1)开始进行一垃圾搜集动作;
(b2)决定第M区块为选定区块,并根据该第M区块的有效数据率来计算无效数据的容量,其中M为正整数;
(b3)判断累计的该无效数据容量是否足够;
(b4)当累计的该无效数据容量不足够时,将M加1,并回到步骤(b2);
(b5)当累计的该无效数据容量足够时,将所有选定区块中的该有效写入数据搬移至空白区块;以及
(b6)抹除该所有选定区块。
6.如权利要求5所述的控制方法,其特征在于,该有效写入数据为有效逻辑区块地址(LBA)写入数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110108700.2A CN114816223A (zh) | 2021-01-27 | 2021-01-27 | 运用于固态存储装置的相关控制方法 |
US17/194,342 US11579795B2 (en) | 2021-01-27 | 2021-03-08 | Control method for solid state drive |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110108700.2A CN114816223A (zh) | 2021-01-27 | 2021-01-27 | 运用于固态存储装置的相关控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114816223A true CN114816223A (zh) | 2022-07-29 |
Family
ID=82494701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110108700.2A Pending CN114816223A (zh) | 2021-01-27 | 2021-01-27 | 运用于固态存储装置的相关控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11579795B2 (zh) |
CN (1) | CN114816223A (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8479080B1 (en) * | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US9026716B2 (en) * | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US8850104B2 (en) * | 2011-03-21 | 2014-09-30 | Apple Inc. | Independent management of data and parity logical block addresses |
GB2511325A (en) * | 2013-02-28 | 2014-09-03 | Ibm | Cache allocation in a computerized system |
US11061814B1 (en) * | 2013-03-15 | 2021-07-13 | EMC IP Holding Company LLC | Managing data storage caching and tiering |
US10235056B2 (en) * | 2014-09-26 | 2019-03-19 | Western Digital Technologies, Inc. | Storage device health diagnosis |
TWI621129B (zh) * | 2016-10-25 | 2018-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料寫入方法 |
CN110134322B (zh) * | 2018-02-02 | 2022-05-31 | 建兴储存科技(广州)有限公司 | 运用dram的储存装置及其相关数据处理方法 |
KR20190106008A (ko) * | 2018-03-07 | 2019-09-18 | 에스케이하이닉스 주식회사 | 메모리 시스템, 그것의 동작 방법 및 전자 장치 |
TWI733360B (zh) * | 2020-03-09 | 2021-07-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
-
2021
- 2021-01-27 CN CN202110108700.2A patent/CN114816223A/zh active Pending
- 2021-03-08 US US17/194,342 patent/US11579795B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220236906A1 (en) | 2022-07-28 |
US11579795B2 (en) | 2023-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5418808B2 (ja) | 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置 | |
KR101454817B1 (ko) | 반도체 메모리 장치 및 그것의 마모도 관리 방법 | |
JP4844639B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US8392476B2 (en) | Semiconductor memory device | |
US20210405900A1 (en) | Storage device, storage system, and control method | |
US20170039141A1 (en) | Mapping table updating method, memory storage device and memory control circuit unit | |
TWI534618B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
US20110145485A1 (en) | Method for managing address mapping table and a memory device using the method | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
CN106951186B (zh) | 数据程序化方法、存储器存储装置及存储器控制电路单元 | |
CN113885692B (zh) | 存储器效能优化方法、存储器控制电路单元以及存储装置 | |
JP7095568B2 (ja) | メモリコントローラ及びこれを備えるフラッシュメモリシステム | |
CN110879793A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN106775479B (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
US20090210612A1 (en) | Memory controller, nonvolatile memory device, and nonvolatile memory system | |
US9613705B1 (en) | Method for managing programming mode of rewritable non-volatile memory module, and memory storage device and memory control circuit unit using the same | |
CN111078146A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US10545700B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
JP5494086B2 (ja) | 不揮発性記憶装置および不揮発性メモリコントローラ | |
US10871914B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
JP2008097132A (ja) | メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
CN114816223A (zh) | 运用于固态存储装置的相关控制方法 | |
US11307982B2 (en) | Memory management method with a data merging process based on risk physical units and distribution counts, memory storage device and memory control circuit unit | |
CN112394883B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
CN106469019B (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 |