CN106951186B - 数据程序化方法、存储器存储装置及存储器控制电路单元 - Google Patents
数据程序化方法、存储器存储装置及存储器控制电路单元 Download PDFInfo
- Publication number
- CN106951186B CN106951186B CN201710130537.3A CN201710130537A CN106951186B CN 106951186 B CN106951186 B CN 106951186B CN 201710130537 A CN201710130537 A CN 201710130537A CN 106951186 B CN106951186 B CN 106951186B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- programming
- units
- condition
- 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
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
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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
Abstract
本发明涉及一种数据程序化方法、存储器存储装置及存储器控制电路单元。此方法包括将第一类实体抹除单元的程序化模式预设为第一程序化模式,并且将第二类实体抹除单元的程序化模式预设为第二程序化模式。此方法也包括根据第一类实体抹除单元与第二类实体抹除单元的使用参数获取变更参数。此方法还包括判断变更参数是否符合第一变更条件,并且若变更参数符合第一变更条件时,使用所述第一程序化模式将写入数据程序化至第二类实体抹除单元中。
Description
技术领域
本发明涉及一种数据程序化方法,尤其涉及一种可复写式非易失性存储器模块的数据程序化方法、存储器存储装置及存储器控制电路单元。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
某些类型的可复写式非易失性存储器模块中的一个存储单元可用来存储多二进制位,例如多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块。而此类型的可复写式非易失性存储器模块的存储器控制器通常会将实体抹除单元划分为使用不同程序化模式来执行程序化操作的不同群组。当主机系统欲将数据存储至可复写式非易失性存储器模块时,存储器控制器会根据欲存储的数据来从不同群组中选取用来存储数据的实体抹除单元。例如,当主机系统欲存储的数据为不连续的随机数据时,存储器控制器可使用程序化速度较快的程序化模式来将数据程序化至对应群组中的实体抹除单元中。
然而,在持续使用同一群组的实体抹除单元来存储数据时,往往会造成属于此群组的实体抹除单元的抹除次数远大于属于其他群组的实体抹除单元的抹除次数。如此一来,属于此群组的实体抹除单元的抹除次数会加速到达上限值而使可复写式非易失性存储器模块的使用寿命因而缩短。
发明内容
本发明提供一种数据程序化方法、存储器存储装置及存储器控制电路单元,可提升可复写式非易失性存储器模块的可靠度。
本发明的数据程序化方法,用于包括多个实体抹除单元的可复写式非易失性存储器模块。本数据程序化方法包括将实体抹除单元划分为多个第一类实体抹除单元与多个第二类实体抹除单元,其中第一类实体抹除单元的程序化模式被预设为第一程序化模式,并且第二类实体抹除单元的程序化模式被预设为第二程序化模式。本方法也包括为每一个实体抹除单元记录使用参数,并且根据第一类实体抹除单元的使用参数与第二类实体抹除单元的使用参数获取变更参数。本方法还包括从主机系统接收写入数据,并且判断变更参数是否符合第一变更条件。倘若判定变更参数符合第一变更条件时,从第二类实体抹除单元中选取至少一个实体抹除单元,并且使用第一程序化模式将写入数据程序化至从第二类实体抹除单元中选取的至少一个实体抹除单元中。
在本发明的一实施例中,上述判断变更参数是否符合第一变更条件的步骤包括判断变更参数是否大于第一门槛值,并且当变更参数大于第一门槛值时,判定变更参数符合第一变更条件。
在本发明的一实施例中,上述判断变更参数是否符合第一变更条件的步骤之前还包括设定第一类实体抹除单元为使用区域的步骤。
在本发明的一实施例中,上述的数据程序化方法还包括当第二类实体抹除单元被设定为使用区域时,判断变更参数是否符合第二变更条件。倘若判定变更参数符合第二变更条件时,设定第一类实体抹除单元为使用区域,从第一类实体抹除单元中选取至少一个实体抹除单元并且使用第一程序化模式将写入数据程序化至从第一类实体抹除单元中选取的至少一个实体抹除单元中。
在本发明的一实施例中,上述判断变更参数是否符合第二变更条件的步骤包括判断变更参数是否小于第二门槛值,并且倘若变更参数小于第二门槛值,判定变更参数符合第二变更条件。
在本发明的一实施例中,上述的数据程序化方法还包括判断该写入数据是否符合数据条件,并且当判定写入数据符合数据条件时,执行上述判断变更参数是否符合第一变更条件的步骤。
在本发明的一实施例中,上述判断写入数据是否符合数据条件的步骤包括判断写入数据的数据量是否大于数据量门槛值,并且当写入数据的数据量不大于数据量门槛值时,判定写入数据符合数据条件。
在本发明的一实施例中,上述判断写入数据是否符合数据条件的步骤包括判断写入数据是否为系统数据,并且当写入数据为系统数据时,判定写入数据符合数据条件。
在本发明的一实施例中,上述根据第一类实体抹除单元的使用参数与第二类实体抹除单元的使用参数获取变更参数的步骤包括根据第一类实体抹除单元的抹除次数计算第一平均抹除次数,并且根据第二类实体抹除单元的抹除次数计算第二平均抹除次数,以及根据第一平均抹除次数与第二平均抹除次数计算抹除次数比例以获取变更参数。
在本发明的一实施例中,上述根据第一类实体抹除单元的使用参数与第二类实体抹除单元的使用参数获取变更参数的步骤包括根据第一类实体抹除单元的程序化次数计算第一平均程序化次数,并且根据第二类实体抹除单元的程序化次数计算第二平均程序化次数,以及根据第一平均程序化次数与第二平均程序化次数计算程序化次数比例以获取变更参数。
在本发明的一实施例中,所述实体抹除单元是由多个存储单元所构成,所述存储单元之中构成第一类实体抹除单元的每一个存储单元在使用第一程序化模式程序化后所存储的二进制位数据的数目小于所述存储单元之中构成第二类实体抹除单元的每一个存储单元在使用第二程序化模式程序化后所存储的二进制位数据的数目。
本发明的存储器存储装置包括连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。连接接口单元用以连接至主机系统。可复写式非易失性存储器模块包括多个实体抹除单元。所述存储器控制电路单元连接至连接接口单元与可复写式非易失性存储器模块。所述存储器控制电路单元用以将实体抹除单元划分为多个第一类实体抹除单元与多个第二类实体抹除单元,其中第一类实体抹除单元的程序化模式被预设为第一程序化模式,并且第二类实体抹除单元的程序化模式被预设为第二程序化模式。再者,所述存储器控制电路单元还用以为每一个实体抹除单元记录使用参数,并且根据第一类实体抹除单元的使用参数与第二类实体抹除单元的使用参数获取变更参数。此外,所述存储器控制电路单元还用以从主机系统接收写入数据,并且判断变更参数是否符合第一变更条件。倘若判定变更参数符合第一变更条件时,所述存储器控制电路单元还用以从第二类实体抹除单元中选取至少一个实体抹除单元,并且使用第一程序化模式将写入数据程序化至从第二类实体抹除单元中选取的至少一个实体抹除单元中。
在本发明的一实施例中,所述存储器控制电路单元判断变更参数是否符合第一变更条件的操作包括:判断变更参数是否大于第一门槛值,并且当变更参数大于第一门槛值时,判定变更参数符合第一变更条件。
在本发明的一实施例中,上述判断变更参数是否符合第一变更条件的操作之前,所述存储器控制电路单元还用以设定第一类实体抹除单元为使用区域。
在本发明的一实施例中,当第二类实体抹除单元被设定为使用区域时,所述存储器控制电路单元还用以判断变更参数是否符合第二变更条件。倘若判定变更参数符合第二变更条件时,所述存储器控制电路单元还用以将第一类实体抹除单元设定为使用区域,从第一类实体抹除单元中选取至少一个实体抹除单元并且使用第一程序化模式将写入数据程序化至从第一类实体抹除单元中选取的至少一个实体抹除单元中。
在本发明的一实施例中,所述存储器控制电路单元判断变更参数是否符合第二变更条件的操作包括:判断变更参数是否小于第二门槛值,并且倘若变更参数小于第二门槛值时,判定变更参数符合第二变更条件。
在本发明的一实施例中,所述存储器控制电路单元还用以判断写入数据是否符合数据条件,并且当判定写入数据符合数据条件时,执行上述判断变更参数是否符合第一变更条件的步骤。
在本发明的一实施例中,所述存储器控制电路单元判断写入数据是否符合数据条件的操作包括:判断写入数据的数据量是否大于数据量门槛值,并且当写入数据的数据量不大于数据量门槛值时,判定写入数据符合数据条件。
在本发明的一实施例中,所述存储器控制电路单元判断写入数据是否符合数据条件的操作包括:判断写入数据是否为系统数据,并且当写入数据为系统数据时,判定写入数据符合数据条件。
在本发明的一实施例中,所述存储器控制电路单元根据第一类实体抹除单元的使用参数与第二类实体抹除单元的使用参数获取变更参数的操作包括:根据第一类实体抹除单元的抹除次数计算第一平均抹除次数,并且根据第二类实体抹除单元的抹除次数计算第二平均抹除次数,以及根据第一平均抹除次数与第二平均抹除次数计算抹除次数比例以获取变更参数。
在本发明的一实施例中,所述存储器控制电路单元根据第一类实体抹除单元的使用参数与第二类实体抹除单元的使用参数获取变更参数的操作包括:根据第一类实体抹除单元的程序化次数计算第一平均程序化次数,并且根据第二类实体抹除单元的程序化次数计算第二平均程序化次数,以及根据第一平均程序化次数与第二平均程序化次数计算程序化次数比例以获取变更参数。
在本发明的一实施例中,所述实体抹除单元是由多个存储单元所构成,所述存储单元之中构成第一类实体抹除单元的每一个存储单元在使用第一程序化模式程序化后所存储的二进制位数据的数目小于所述存储单元之中构成第二类实体抹除单元的每一个存储单元在使用第二程序化模式程序化后所存储的二进制位数据的数目。
本发明的存储器控制电路单元,用于控制可复写式非易失性存储器模块。可复写式非易失性存储器模块包括多个实体抹除单元。本存储器控制电路单元包括主机接口、存储器接口及存储器管理电路。主机接口用以连接至主机系统。存储器接口用以连接至可复写式非易失性存储器模块。存储器管理电路连接至主机接口与存储器接口。所述存储器管理电路用以将实体抹除单元划分为多个第一类实体抹除单元与多个第二类实体抹除单元,其中第一类实体抹除单元的程序化模式被预设为第一程序化模式,并且第二类实体抹除单元的程序化模式被预设为第二程序化模式。再者,所述存储器管理电路还用以为每一个实体抹除单元记录使用参数,并且根据第一类实体抹除单元的使用参数与第二类实体抹除单元的使用参数获取变更参数。此外,所述存储器管理电路还用以从主机系统接收写入数据,并且判断变更参数是否符合第一变更条件。倘若判定变更参数符合第一变更条件时,所述存储器管理电路还用以从第二类实体抹除单元中选取至少一个实体抹除单元,并且使用第一程序化模式将写入数据程序化至从第二类实体抹除单元中选取的所述至少一个实体抹除单元中。
在本发明的一实施例中,所述存储器管理电路判断变更参数是否符合第一变更条件的操作包括:判断变更参数是否大于第一门槛值,并且当变更参数大于第一门槛值时,判定变更参数符合第一变更条件。
在本发明的一实施例中,上述判断变更参数是否符合第一变更条件的操作之前,所述存储器管理电路还用以设定第一类实体抹除单元为使用区域。
在本发明的一实施例中,当第二类实体抹除单元被设定为使用区域时,所述存储器管理电路还用以判断变更参数是否符合第二变更条件。倘若判定变更参数符合第二变更条件时,所述存储器管理电路还用以将第一类实体抹除单元设定为使用区域,从第一类实体抹除单元中选取至少一个实体抹除单元并且使用第一程序化模式将写入数据程序化至从第一类实体抹除单元中选取的至少一个实体抹除单元中。
在本发明的一实施例中,所述存储器管理电路判断变更参数是否符合第二变更条件的操作包括:判断变更参数是否小于第二门槛值,并且倘若变更参数小于第二门槛值时,判定变更参数符合第二变更条件。
在本发明的一实施例中,所述存储器管理电路还用以判断写入数据是否符合数据条件,并且当判定写入数据符合数据条件时,执行上述判断变更参数是否符合第一变更条件的步骤。
在本发明的一实施例中,所述存储器管理电路判断写入数据是否符合数据条件的操作包括:判断写入数据的数据量是否大于数据量门槛值,并且当写入数据的数据量不大于数据量门槛值时,判定写入数据符合数据条件。
在本发明的一实施例中,所述存储器管理电路判断写入数据是否符合数据条件的操作包括:判断写入数据是否为系统数据,并且当写入数据为系统数据时,判定写入数据符合数据条件。
在本发明的一实施例中,所述存储器管理电路根据第一类实体抹除单元的使用参数与第二类实体抹除单元的使用参数获取变更参数的操作包括:根据第一类实体抹除单元的抹除次数计算第一平均抹除次数,并且根据第二类实体抹除单元的抹除次数计算第二平均抹除次数,以及根据第一平均抹除次数与第二平均抹除次数计算抹除次数比例以获取变更参数。
在本发明的一实施例中,所述存储器管理电路根据第一类实体抹除单元的使用参数与第二类实体抹除单元的使用参数获取变更参数的操作包括:根据第一类实体抹除单元的程序化次数计算第一平均程序化次数,并且根据第二类实体抹除单元的程序化次数计算第二平均程序化次数,以及根据第一平均程序化次数与第二平均程序化次数计算程序化次数比例以获取变更参数。
在本发明的一实施例中,所述实体抹除单元是由多个存储单元所构成,所述存储单元之中构成第一类实体抹除单元的每一个存储单元在使用第一程序化模式程序化后所存储的二进制位数据的数目小于所述存储单元之中构成第二类实体抹除单元的每一个存储单元在使用第二程序化模式程序化后所存储的二进制位数据的数目。
基于上述,当所接收的写入数据符合数据条件时,通过判断第一类实体抹除单元与第二类实体抹除单元之间的变更参数是否符合变更条件,来动态地选取第一类实体抹除单元或第二类实体抹除单元来存储数据。藉此,可提升可复写式非易失性存储器模块的可靠度。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据一实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。
图2是根据另一实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。
图3是根据另一实施例所示出的主机系统与存储器存储装置的示意图。
图4是根据一实施例所示出的主机系统与存储器存储装置的概要方块图。
图5是根据一实施例所示出的存储器控制电路单元的概要方块图。
图6A与6B是根据一实施例所示出的管理实体抹除单元的范例示意图。
图7是根据一实施例所示出的存储单元的临界电压分布的示意图。
图8是根据本发明的一实施例所示出的获取变更参数的示意图。
图9是根据本发明的一实施例所示出的程序化数据的示意图。
图10是根据图9的实施例所示出的数据程序化方法的流程图。
图11是根据本发明的另一实施例所示出的程序化数据的示意图。
图12是根据图11的实施例所示出的数据程序化方法的流程图。
附图标记说明:
10:存储器存储装置
11:主机系统
30:存储器存储装置
110:系统总线
111:处理器
112:随机存取存储器
113:只读存储器
114:数据传输接口
12:输入/输出(I/O)装置
20:主机板
201:U盘
202:记忆卡
203:固态硬盘
204:无线存储器存储装置
205:全球定位系统模块
206:网络接口卡
207:无线传输装置
208:键盘
209:屏幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式存储装置
341:嵌入式多媒体卡
342:嵌入式多芯片封装存储装置
402:连接接口单元
404:存储器控制电路单元
406:可复写式非易失性存储器模块
410(0)~410(N):实体抹除单元
502:存储器管理电路
504:主机接口
506:存储器接口
508:缓冲存储器
510:电源管理电路
512:错误检查与校正电路
602:数据区
604:闲置区
606:系统区
608:取代区
LBA(0)~LBA(H):逻辑单元
LZ(0)~LZ(M):逻辑区域
701、702、711~714、721~728:临界电压分布
801(0)~801(A)、901(0)~901(C):第一类实体抹除单元
802(0)~802(B)、902(0)~902(D):第二类实体抹除单元
N_801(0)~N_801(A)、N_802(0)~N_802(B):抹除次数
AEC(1):第一平均抹除次数
AEC(2):第二平均抹除次数
PA、PA(1)、PA(2):变更参数
D1、D2:写入数据
TS(1):第一门槛值
TS(2):第二门槛值
S1001、S1201:将实体抹除单元划分为多个第一类实体抹除单元与多个第二类实体抹除单元,其中第一类实体抹除单元的程序化模式被预设为第一程序化模式,第二类实体抹除单元的程序化模式被预设为第二程序化模式的步骤
S1003、S1203:为每一个实体抹除单元记录使用参数的步骤
S1005、S1205:根据第一类实体抹除单元的使用参数与第二类实体抹除单元的使用参数获取变更参数的步骤
S1007、S1207:从主机系统接收写入数据的步骤
S1009、S1209:判断写入数据是否符合数据条件的步骤
S1011、S1211:使用第二程序化模式将写入数据程序化至至少一个第二类实体抹除单元中的步骤
S1013:判断变更参数是否符合第一变更条件的步骤
S1015:从第二类实体抹除单元中选取至少一个实体抹除单元且使用第一程序化模式将写入数据程序化至所选取的至少一个实体抹除单元的步骤
S1017:从第一类实体抹除单元中选取至少一个实体抹除单元且使用第一程序化模式将写入数据程序化至所选取的至少一个实体抹除单元的步骤
S1213:判断使用区域为第一类实体抹除单元或第二类实体抹除单元的步骤
S1215:当第一类实体抹除单元被设定为使用区域时,判断变更参数是否符合第一变更条件的步骤
S1217:将第二类实体抹除单元设定为使用区域的步骤
S1219:从使用区域中选取至少一个实体抹除单元,并且使用第一程序化模式将写入数据程序化至所选取的至少一个实体抹除单元中的步骤
S1221:当第二类实体抹除单元被设定为使用区域时,判断变更参数是否符合第二变更条件的步骤
S1223:将第一类实体抹除单元设定为使用区域的步骤
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路单元)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据一实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图,并且图2是根据另一实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。
请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccess memory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆连接至系统总线(system bus)110。
在本实施例中,主机系统11是通过数据传输接口114与存储器存储装置10连接。例如,主机系统11可经由数据传输接口114将数据写入至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11是通过系统总线110与I/O装置12连接。例如,主机系统11可经由系统总线110将输出信号传送至I/O装置12或从I/O装置12接收输入信号。
在本实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114是可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式连接至存储器存储装置10。存储器存储装置10可例如是U盘201、记忆卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通讯(Near FieldCommunication Storage,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110连接至全球定位系统(Global Positioning System,GPS)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式I/O装置。例如,在一实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。
在一实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述实施例中,主机系统是以电脑系统来作说明,然而,图3是根据另一实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一实施例中,主机系统31也可以是数码相机、摄影机、通讯装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的SD卡32、CF卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embedded MMC,eMMC)341和/或嵌入式多晶片封装存储装置(embedded Multi Chip Package,eMCP)342等各类型将存储器模块直接连接于主机系统的基板上的嵌入式存储装置。
图4是根据一实施例所示出的主机系统与存储器存储装置的概要方块图。
请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
在本实施例中,连接接口单元402是相容于串行高级技术附件(Serial AdvancedTechnology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级技术附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用序列总线(Universal Serial Bus,USB)标准、超高速一代(UltraHigh Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、安全数字(Secure Digital,SD)接口标准、记忆棒(Memory Stick,MS)接口标准、多晶片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、嵌入式多媒体存储卡(Embedded Multimedia Card,eMMC)接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、嵌入式多晶片封装(embedded Multi ChipPackage,eMCP)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。在本实施例中,连接接口单元402可与存储器控制电路单元404封装在一个晶片中,或者连接接口单元402是布设于一包含存储器控制电路单元的晶片外。
存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等操作。
可复写式非易失性存储器模块406是连接至存储器控制电路单元404,并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406具有实体抹除单元410(0)~410(N)。例如,实体抹除单元410(0)~410(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有多个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据二进制位区与冗余二进制位区。数据二进制位区包含多个实体存取地址用以存储使用者的数据,而冗余二进制位区用以存储系统的数据(例如,控制信息与错误更正码)。在本实施例中,每一个实体程序化单元的数据二进制位区中会包含8个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他实施例中,数据二进制位区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。
可复写式非易失性存储器模块406可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个二进制位的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个二进制位的快闪存储器模块)、复数阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个二进制位的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
可复写式非易失性存储器模块406中的每一个存储单元是以电压(以下也称为临界电压)的改变来存储一或多个二进制位。具体来说,每一个存储单元的控制闸极(controlgate)与通道之间有一个电荷捕捉层。通过施予写入电压至控制闸极,可以改变电荷补捉层的电子量,进而改变存储单元的临界电压。此改变临界电压的程序也称为“把数据写入至存储单元”或“程序化存储单元”。随着临界电压的改变,可复写式非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个二进制位。
在本实施例中,可复写式非易失性存储器模块406的存储单元会构成多个实体程序化单元,并且这些实体程序化单元会构成多个实体抹除单元。具体来说,同一条字符线上的存储单元会组成一或多个实体程序化单元。若每一个存储单元可存储2个以上的二进制位,则同一条字符线上的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,一存储单元的最低有效二进制位(Least Significant Bit,LSB)是属于下实体程序化单元,并且一存储单元的最高有效二进制位(Most Significant Bit,MSB)是属于上实体程序化单元。一般来说,在MLC NAND型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。
图5是根据一实施例所示出的存储器控制电路单元的概要方块图。
请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504与存储器接口506、缓冲存储器508、电源管理电路510与错误检查与校正电路512。
存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,这些控制指令会被执行以进行数据的写入、读取与抹除等操作。
在本实施例中,存储器管理电路502的控制指令是以韧体型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等操作。
在本发明另一实施例中,存储器管理电路502的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转这些控制指令以进行数据的写入、读取与抹除等操作。
此外,在本发明另一实施例中,存储器管理电路502的控制指令也可以硬件型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是连接至微控制器。其中,存储单元管理电路用以管理可复写式非易失性存储器模块406的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令以将数据写入至可复写式非易失性存储器模块406中;存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令以从可复写式非易失性存储器模块406中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令以将数据从可复写式非易失性存储器模块406中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。
主机接口504是连接至存储器管理电路502并且用以连接至连接接口单元402,以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本实施例中,主机接口504是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504也可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口506是连接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。
缓冲存储器508是连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。
电源管理电路510是连接至存储器管理电路502并且用以控制存储器存储装置10的电源。
错误检查与校正电路512是连接至存储器管理电路502并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路512会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路502会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路512会根据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
以下描述存储器管理电路502、主机接口504与存储器接口506、缓冲存储器508、电源管理电路510与错误检查与校正电路512所执行的操作,也可参考为由存储器控制电路单元404所执行。
图6A~6B是根据一实施例所示出的管理实体抹除单元的范例示意图。
必须了解的是,在此描述可复写式非易失性存储器模块406的实体抹除单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的实体抹除单元进行操作。
请参照图6A,存储器管理电路502会将实体抹除单元410(0)~410(N)逻辑地分组为数据区602、闲置区604、系统区606与取代区608。
逻辑上属于数据区602与闲置区604的实体抹除单元是用以存储来自于主机系统11的数据。具体来说,数据区602的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区604的实体抹除单元是用以替换数据区602的实体抹除单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器管理电路502会从闲置区604中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区602的实体抹除单元。
逻辑上属于系统区606的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
逻辑上属于取代区608中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区608中仍存有正常的实体抹除单元并且数据区602的实体抹除单元损坏时,存储器管理电路502会从取代区608中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区602、闲置区604、系统区606与取代区608的实体抹除单元的数量会根据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,实体抹除单元关联至数据区602、闲置区604、系统区606与取代区608的分组关系会动态地变动。例如,当闲置区604中的实体抹除单元损坏而被取代区608的实体抹除单元取代时,则原本取代区608的实体抹除单元会被关联至闲置区604。
请参照图6B,存储器管理电路502会配置逻辑单元LBA(0)~LBA(H)以映射数据区602的实体抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统11欲写入数据至逻辑单元或更新存储于逻辑单元中的数据时,存储器管理电路502会从闲置区604中提取一个实体抹除单元来写入数据,以轮替数据区602的实体抹除单元。在本实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。
为了识别每个逻辑单元的数据被存储在哪个实体抹除单元,在本实施例中,存储器管理电路502会记录逻辑单元与实体抹除单元之间的映射。并且,当主机系统11欲在逻辑子单元中存取数据时,存储器管理电路502会确认此逻辑子单元所属的逻辑单元,并且在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本实施例中,存储器管理电路502会在可复写式非易失性存储器模块406中存储逻辑地址-实体地址映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器管理电路502会将逻辑地址-实体地址映射表载入至缓冲存储器508来维护。
值得一提的是,由于缓冲存储器508的容量有限无法存储记录所有逻辑单元的映射关系的映射表,因此,在本实施例中,存储器管理电路502会将逻辑单元LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑地址-实体地址映射表。特别是,当存储器管理电路502欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑地址-实体地址映射表会被载入至缓冲存储器508来被更新。
在本实施例中,可复写式非易失性存储器模块406可以是以实体程序化单元为基础(也称为页面为基础(page based)来进行管理)。例如,在执行写入指令时,不管写入指令是指示将写入数据写入至那个逻辑单元的逻辑子单元,存储器管理电路502皆会以一个实体程序化单元接续一个实体程序化单元的方式来写入数据(也称为随机写入机制)。具体而言,存储器管理电路502会从闲置区604中提取一个空的实体抹除单元作为目前使用的实体抹除单元来写入数据。并且,当此目前使用的实体抹除单元已被写满时,存储器管理电路502会再从闲置区604中提取另一个空的实体抹除单元作为目前使用的实体抹除单元,以继续写入对应来自于主机系统11的写入指令的写入数据。
在本实施例,存储器管理电路502会将可复写式非易失性存储器模块406中的至少部份的实体抹除单元划分为第一类实体抹除单元,并且将第一类实体抹除单元的程序化模式预设为某一程序化模式(以下也称第一程序化模式)。此外,存储器管理电路502还将可复写式非易失性存储器模块406中的至少另一部份的实体抹除单元划分为第二类实体抹除单元,并且将第二类实体抹除单元的程序化模式预设为另一程序化模式(以下也称第二程序化模式)。一般来说,使用第一程序化模式来程序化存储单元的程序化速度会高于使用第二程序化模式来程序化存储单元的程序化速度,且使用第一程序化模式来程序化的数据的可靠度也往往高于使用第二程序化模式来程序化数据的可靠度。此外,在一实施例中,存储器管理电路502可以伫列(queue)的形式来管理第一类实体抹除单元与第二类实体抹除单元。
在本实施例中,第一程序化模式是指单层存储单元(single layer memory cell,SLC)模式、下实体程序化(lower physical programming)模式、混合程序化(mixtureprogramming)模式及少层存储单元(less layer memory cell)模式的其中之一。在单层存储单元模式中,一个存储单元只存储一个二进制位的数据。在下实体程序化模式中,只有下实体程序化单元会被程序化,而此下实体程序化单元所对应的上实体程序化单元可不被程序化。在混合程序化模式中,有效数据(或,真实数据)会被程序化于下实体程序化单元中,而同时虚拟数据(dummy data)会被程序化至存储有效数据的下实体程序化单元所对应的上实体程序化单元中。在少层存储单元模式中,一个存储单元存储一第一数目的二进制位的数据。例如,此第一数目可设为“1”。
在本实施例中,第二程序化模式是指多阶存储单元(MLC)程序化模式、复数阶(TLC)存储单元程序化模式或类似模式。在第二程序化模式中,一个存储单元存储有一第二数目的二进制位的数据,其中此第二数目等于或大于“2”。例如,此第二数目可设为2或3。在另一实施例中,上述第一程序化模式中的第一数目与第二程序化模式中的第二数目皆可以是其他数目,只要满足第二数目大于第一数目即可。换句话说,构成第一类实体抹除单元的每一个存储单元在使用第一程序化模式程序化后所存储的二进制位数据的数目(也即第一数目)会小于构成第二类实体抹除单元的每一个存储单元在使用第二程序化模式程序化后所存储的二进制位数据的数目(也即第二数目)。
值得一提的是,由于第一程序化模式与第二程序化模式对实体抹除单元的耗损程度不同,因此,在本实施例中,第一类实体抹除单元只会使用第一程序化模式来程序化数据。也就是说,倘若某个第一类实体抹除单元的数据被抹除之后要再次程序化数据,此第一类实体抹除单元仍只会使用第一程序化模式来程序化数据而不会使用第二程序化模式来程序化数据。另一方面,倘若某个第二类实体抹除单元的数据被抹除之后要再次程序化数据,此第二类实体抹除单元则可根据实际需求而使用第一程序化模式或第二程序化模式来程序化数据。
图7是根据一实施例所示出的存储单元的临界电压分布的示意图。
请参照图7,在本实施例中,若使用第一程序化模式来程序化多个存储单元,则程序化后的存储单元的临界电压分布可能会包括分布701与702。例如,若某一个存储单元被程序化以存储二进制位“0”,则此存储单元的临界电压会属于分布701;若某一个存储单元被程序化以存储二进制位“1”,则此存储单元的临界电压会属于分布702。然而,在另一实施例中,临界电压属于分布701的存储单元也可以是被用以存储二进制位“1”,并且临界电压属于分布702的存储单元也可以是被用以存储二进制位“0”。此外,若基于第二程序化模式来程序化多个存储单元,则程序化后的存储单元的临界电压分布可能会包括分布711~714或者721~728。
在上述第二数目为“2”的实施例中,若某一个存储单元被程序化以存储二进制位“00”,则此存储单元的临界电压会属于分布711;若某一个存储单元被程序化以存储二进制位“01”,则此存储单元的临界电压会属于分布712;若某一个存储单元被程序化以存储二进制位“10”,则此存储单元的临界电压会属于分布713;若某一个存储单元被程序化以存储二进制位“11”,则此存储单元的临界电压会属于分布714。然而,在另一实施例中,临界电压属于分布711~714的存储单元也可以分别用以存储二进制位“11”、“10”、“01”及“00”或者其他二进制位总数为“2”的二进制位值。
在上述第二数目为“3”的实施例中,属于分布721~728的存储单元分别用以存储二进制位“000”、“001”、“010”、“011”、“100”、“101”、“110”及“111”。然而,在另一实施例中,属于分布721~728的存储单元也可以分别用以存储二进制位“111”、“110”、“101”、“100”、“011”、“010”、“001”及“000”或者其他二进制位总数为“3”的二进制位值。
为了说明方便,在以下实施例中,是以每一个存储单元存储“1”个二进制位的数据的SLC模式来作为第一程序化模式的范例,并且以每一个存储单元存储有“2”或“3”个二进制位的数据的程序化模式来作为第二程序化模式的范例。但是,在其他实施例中,只要满足上述条件的第一程序化模式与第二程序化模式皆可以被采用。
当主机系统11欲存储数据时,主机系统11会发送写入指令至存储器存储装置10。在本实施例中,当接收到写入指令时,存储器管理电路502会判断所接收的写入数据是否符合一数据条件来决定要使用第一程序化模式或第二程序化模式来将写入数据程序化至实体抹除单元中。例如,存储器管理电路502会使用第一程序化模式来将符合数据条件的写入数据程序化至实体抹除单元中,并且使用第二程序化模式来将不符合数据条件的写入数据程序化至实体抹除单元中。
例如,在一实施例中,存储器管理电路502可预设一个数据量门槛值,并且通过比对写入数据的数据量与预设的数据量门槛值来决定写入数据是否符合数据条件。当写入数据的数据量大于预设的数据量门槛值时,存储器管理电路502可判定此写入数据不符合数据条件。另外,当写入数据的数据量不大于预设的数据量门槛值时,存储器管理电路502可判定此写入数据符合数据条件。例如,预设的数据量门槛值可设定为一个页面的大小。当写入数据的数据量不大于一个页面的大小时,存储器管理电路502会判断出此写入数据为随机数据(random data),因而判定此写入数据符合数据条件。另外,当写入数据的数据量大于一个页面的大小时,存储器管理电路502会判断出此写入数据为连续数据(sequentialdata),因而判定此写入数据不符合数据条件。然而,在另一实施例中,存储器管理电路502也可在判断出写入数据为系统数据时,判定此写入数据符合数据条件。
值得一提的是,当判定写入数据不符合数据条件(例如所接收的数据为连续数据)时,存储器管理电路502会使用第二程序化模式来将不符合数据条件的写入数据(例如连续数据)程序化至至少一个第二类实体抹除单元中。另外,存储器管理电路502会使用第一程序化模式来将符合数据条件的写入数据(例如随机数据或系统数据)程序化至第一实体抹除单元或第二类实体抹除单元中。
举例而言,存储器管理电路502可将第一类实体抹除单元与第二类实体抹除单元轮流地设定为使用区域,并且从使用区域中选取实体抹除单元来存储符合数据条件的写入数据。具体而言,存储器管理电路502可取得表示第一类实体抹除单元的使用状态的使用参数与表示第二类实体抹除单元的使用状态的使用参数来获取一变更参数,并且根据所获取的变更参数来决定使用区域。
图8是根据本发明的一实施例所示出的获取变更参数的示意图。请参照图8,存储器管理电路502将可复写式非易失性存储器模块406中的实体抹除单元划分为第一类实体抹除单元801(0)~801(A)以及第二类实体抹除单元802(0)~802(B)。A和B为正整数。
在本实施例中,使用参数为一个实体抹除单元被执行抹除操作的抹除次数。存储器管理电路502可为每一个实体抹除单元记录抹除次数,并且将抹除次数记录在抹除次数表中。抹除次数表可存储在系统区606中的至少一个实体抹除单元中。存储器管理电路502可利用一或多个抹除次数表来记录第一类实体抹除单元与第二类实体抹除单元的抹除次数。例如,存储器管理电路502将第一类实体抹除单元801(0)~801(A)的抹除次数N_801(0)~N_801(A)记录在抹除次数表T(1)中,并且将第二类实体抹除单元802(0)~802(B)的抹除次数N_802(0)~N_802(B)记录在抹除次数表T(2)中。存储器管理电路502可在完成某个实体抹除单元的抹除操作之后即更新抹除次数表中对应此实体抹除单元的抹除次数,例如将对应此实体抹除单元的抹除次数加1。
存储器管理电路502可分别计算第一类实体抹除单元801(0)~801(A)的平均抹除次数(以下也称第一平均抹除次数)与第二类实体抹除单元802(0)~802(B)的平均抹除次数(以下也称第二平均抹除次数)。例如,存储器管理电路502可将第一类实体抹除单元801(0)~801(A)的抹除次数N_801(0)~N_801(A)加总后除以第一类实体抹除单元801(0)~801(A)的数目(也即A+1)以计算出第一类实体抹除单元801(0)~801(A)的平均抹除次数(以下也称第一平均抹除次数AEC(1)),并将第二类实体抹除单元802(0)~802(B)的抹除次数N_802(0)~N_802(B)加总后除以第二类实体抹除单元802(0)~802(B)的数目(也即B+1)以计算出第一类实体抹除单元801(0)~801(A)的平均抹除次数(以下也称第二平均抹除次数AEC(2))。之后,存储器管理电路502可根据第一平均抹除次数AEC(1)与第二平均抹除次数AEC(2)获取抹除次数比例,并将此抹除次数比例设定为变更参数。此外,存储器管理电路502也可将第一平均抹除次数AEC(1)除以第二平均抹除次数AEC(2)以计算出抹除次数比例的比值,并且将抹除次数比例的比值设定为变更参数。举例而言,假设第一平均抹除次数AEC(1)为2000且第二平均抹除次数AEC(2)为100,则抹除次数比例为20:1且抹除次数比例的比值为20。
进一步地,存储器管理电路502可将变更参数存储在缓冲存储器508中。然而,存储器管理电路502也可将变更参数存储至可复写式非易失性存储器模块406中。在一实施例中,存储器管理电路502可每隔一段预设的时间便重新获取变更参数。而在另一实施例中,存储器管理电路502也可在收到写入指令并且此写入指令指示的写入数据符合数据条件时重新获取变更新数。本发明并不限制重新获取变更参数的时间点以及存储变更参数的方式。
虽然,在图8的实施例中,使用参数是以抹除次数为例,然而,在其他实施例中,使用参数也可为与使用状态有关的其他参数。例如,在另一实施例中,使用参数可为一个实体抹除单元被执行程序化操作(也即写入操作)的程序化次数。存储器管理电路502可将实体抹除单元的程序化次数记录在一或多个程序化次数表中,并将程序化次数表存储在系统区606中的至少一个实体抹除单元中。在此实施例中,存储器管理电路502可分别计算出第一类实体抹除单元801(0)~801(A)的平均程序化次数(以下也称第一平均程序化次数)与第二类实体抹除单元802(0)~802(B)的平均程序化次数(以下也称第二平均程序化次数)。进而,存储器管理电路502可根据第一平均程序化次数与第二平均程序化次数取得程序化次数比例或比值以获取变更参数。
此外,在其他的实施例中,使用参数也可以是对应各类实体抹除单元的程序化次数总和。例如,当第一类实体抹除单元(或第二类实体抹除单元)被设定为使用区域时,存储器管理电路502会计算所有第一类实体抹除单元(或所有第二类实体抹除单元)在被设定为使用区域的期间的程序化次数总和,并且将程序化次数总和设定为变更参数。存储器管理电路502可在完成某个第一类实体抹除单元或某个第二类实体抹除单元的程序化操作之后将对应第一类实体抹除单元的使用参数加1或将对应第二类实体抹除单元的使用参数加1。特别的是,在此实施例中,当使用区域变更时,变更参数会被重置为0。
值得一提的是,在一实施例中,存储器管理电路502可在开始运作时初始地设定第一类实体抹除单元为使用区域。之后,当接收到符合数据条件的写入数据时,存储器管理电路502可根据第一类实体抹除单元801(0)~801(A)与第二类实体抹除单元802(0)~802(B)当时的使用参数来获取当时的变更参数。
图9是根据本发明的一实施例所示出的程序化数据的示意图。
请参照图9,存储器管理电路502将可复写式非易失性存储器模块406中的实体抹除单元划分为第一类实体抹除单元901(0)~901(C)以及第二类实体抹除单元902(0)~902(D),其中C和D为正整数。
在本实施例中,存储器管理电路502可预设一个门槛值,例如第一门槛值TS(1),并且将第一门槛值TS(1)存储在系统区606的实体抹除单元中。在本实施例中,第一门槛值TS(1)是根据第一类实体抹除单元的最大抹除次数与第二类实体抹除单元的最大抹除次数来设定。最大抹除次数是一个实体抹除单元在其生命周期(life cycle)内可被执行抹除操作的次数。最大抹除次数可为可复写式非易失性存储器模块406在出厂时的预估数值。一般来说,由于第一程序化模式与第二程序化模式对实体抹除单元造成的耗损程度不同,第一类实体抹除单元的最大抹除次数会大于第二类实体抹除单元的最大抹除次数。例如,第一类实体抹除单元的最大抹除次数为25000次,而第二类实体抹除单元的最大抹除次数为1000次。在此情况下,第一类实体抹除单元与第二类实体抹除单元的最大抹除次数的比例为25:1,而对应此比例的比值为25。存储器管理电路502可将第一门槛值TS(1)设定为大于0且不大于25的数值,例如20。
如图9所示,假设第一类实体抹除单元901(0)~901(C)为目前的使用区域,并且所接收到的写入指令所指示的写入数据D1符合数据条件。此时,存储器管理电路502会比对缓冲存储器508中的变更参数PA(1)与系统区606中的第一门槛值TS(1)来判断变更参数PA(1)是否符合一变更条件(以下也称为第一变更条件)。倘若当时的变更参数PA(1)不大于第一门槛值TS(1),存储器管理电路502会判定变更参数PA(1)不符合第一变更条件。接着,存储器管理电路502会从目前的使用区域(也即第一类实体抹除单元901(0)~901(C))中选取至少一个第一类实体抹除单元(例如第一类实体抹除单元901(E)),并使用第一程序化模式将写入数据D1程序化至第一类实体抹除单元901(E)中。另一方面,倘若当时的变更参数PA(1)大于第一门槛值TS(1)时,存储器管理电路502会判定变更参数PA(1)符合第一变更条件。此时,存储器管理电路502会将第二类实体抹除单元902(0)~902(D)设定为使用区域。接着,存储器管理电路502会使用第一程序化模式将写入数据D1程序化至目前的使用区域(也即第二类实体抹除单元902(0)~902(D))中的至少一个第二类实体抹除单元中。之后,当接收到其他符合数据条件的写入数据时,倘若当时的变更参数PA(1)不符合第一变更条件,存储器管理电路502又会将第一类实体抹除单元901(0)~901(C)设定为目前的使用区域,并使用第一程序化模式将写入数据程序化至至少一个第一类实体抹除单元中。
也就是说,在预设一个门槛值的实施例中,当变更参数不符合变更条件(也即不大于预设的门槛值)时,存储器管理电路502会使用第一程序化模式将写入数据程序化至至少一个第一类实体抹除单元中。然而,在持续使用第一类实体抹除单元之后,当变更参数变大且符合变更条件(也即大于预设的门槛值)时,存储器管理电路502会使用第一程序化模式将写入数据程序化至至少一个第二类实体抹除单元中。而在持续使用第二类实体抹除单元之后,当变更参数变小且不符合变更条件时,存储器管理电路502又会使用第一程序化模式将写入数据程序化至至少一个第一类实体抹除单元中。
图10为根据图9的实施例所示出的数据程序化方法的流程图。
请参照图10,在步骤S1001中,存储器管理电路502将可复写式非易失性存储器模块406中的实体抹除单元划分为多个第一类实体抹除单元与多个第二类实体抹除单元,其中第一类实体抹除单元的程序化模式被预设为第一程序化模式,第二类实体抹除单元的程序化模式被预设为第二程序化模式。
在步骤S1003中,存储器管理电路502为每一个实体抹除单元记录使用参数。接着,在步骤S1005中,存储器管理电路502根据第一类实体抹除单元的使用参数与第二类实体抹除单元的使用参数获取变更参数。
在步骤S1007中,存储器管理电路502从主机系统接收写入数据。接着,在步骤S1009中,存储器管理电路502判断写入数据是否符合数据条件。倘若写入数据不符合数据条件,在步骤S1011中,存储器管理电路502使用第二程序化模式将写入数据程序化至至少一个第二类实体抹除单元中。
然而,倘若写入数据符合数据条件,在步骤S1013中,存储器管理电路502会判断变更参数是否符合第一变更条件。倘若变更参数符合第一变更条件时,在步骤S1015中,存储器管理电路502会从第二类实体抹除单元中选取至少一个实体抹除单元并且使用第一程序化模式将写入数据程序化至所选取的至少一个实体抹除单元中。另一方面,倘若变更参数不符合第一变更条件时,在步骤S1017中,存储器管理电路502会从第一类实体抹除单元中选取至少一个实体抹除单元并且使用第一程序化模式将写入数据程序化至所选取的至少一个实体抹除单元中。图10中各步骤中详细操作方式已于前述的实施例中详细说明,在此不再赘述。
图11是根据本发明的另一实施例所示出的程序化数据的示意图。
图11的实施例的存储器存储装置的硬件结构本质上是相同于图9的实施例的存储器存储装置的硬件结构。其差异之处在于图9的实施例是预设一个门槛值,而图11的实施例是预设两个门槛值。以下将使用图9的实施例的存储器存储装置的图式与元件编号来详细说明图11的实施例的存储器存储装置的操作。
请参照图11,除了第一门槛值TS(1)以外,存储器管理电路502还可预设第二门槛值TS(2)。在本实施例中,第一门槛值TS(1)与第二门槛值TS(2)可根据第一类实体抹除单元901(0)~901(C)的最大抹除次数与第二类实体抹除单元902(0)~902(D)的最大抹除次数而被设定为不同的数值。例如,第一类实体抹除单元901(0)~901(C)与第二类实体抹除单元902(0)~902(D)的最大抹除次数的比例的比值为25。存储器管理电路502可将第一门槛值TS(1)与第二门槛值TS(2)设定为大于0且不大于25的数值,并且将第一门槛值TS(1)设定为大于第二门槛值TS(2)。例如将第一门槛值TS(1)预设为20,且将第二门槛值TS(2)预设为10。
在本实施例中,存储器管理电路502会根据目前的使用区域来决定要将变更参数PA(2)与第一门槛值TS(1)或第二门槛值TS(2)比对。如图11所示,假设第二类实体抹除单元902(0)~902(D)被设定为目前的使用区域,并且所接收到的写入指令所指示的写入数据D2符合数据条件。此时,存储器管理电路502会比对缓冲存储器508中的变更参数PA(2)与系统区606中的第二门槛值TS(2)来判断变更参数PA(2)是否符合一变更条件(以下也称为第二变更条件)。倘若当时的变更参数PA(2)不小于第二门槛值TS(2)时,存储器管理电路502会判定变更参数PA(2)不符合变更条件。接着,存储器管理电路502会从目前的使用区域(也即第二类实体抹除单元902(0)~902(D))中选取至少一个第二类实体抹除单元(例如第二类实体抹除单元902(K)),并且使用第一程序化模式将写入数据D2程序化至第二类实体抹除单元902(K)中。另一方面,倘若当时的变更参数PA(2)小于第二门槛值TS(2)时,存储器管理电路502会判定变更参数PA(2)符合第二变更条件。此时,存储器管理电路502会将第一类实体抹除单元901(0)~901(C)设定为使用区域。接着,存储器管理电路502会使用第一程序化模式将写入数据D2程序化至目前的使用区域(也即第一类实体抹除单元901(0)~901(C))中的至少一个第一类实体抹除单元中。然而,在将第一类实体抹除单元901(0)~901(C)设定为使用区域之后,当又接收到符合数据条件的写入数据时,存储器管理电路502会将当时的变更参数与第一门槛值TS(1)比对。倘若当时的变更参数符合第一变更条件,存储器管理电路502又会将第二类实体抹除单元902(0)~902(D)设定为目前的使用区域,并使用第一程序化模式将写入数据程序化至至少一个第二类实体抹除单元中。
也就是说,在预设两个门槛值的实施例中,在使用区域被设定为第一类实体抹除单元901(0)~901(C)并运作一段时间后,若变更参数符合第一变更条件(也即变更参数PA(2)大于第一门槛值TS(1))时,存储器管理电路502会将使用区域从第一类实体抹除单元901(0)~901(C)变更为第二类实体抹除单元902(0)~902(D)。而当使用区域被设定为第二类实体抹除单元902(0)~902(D)且运作一段时间后,若变更参数符合第二变更条件(也即变更参数PA(2)小于第二门槛值TS(2))时,存储器管理电路502会将使用区域从第二类实体抹除单元902(0)~902(D)变更为第一类实体抹除单元901(0)~901(C)。
图12为根据本发明的另一实施例所示出的数据程序化方法的流程图。
在本实施例中,在步骤S1201~S1211中,存储器管理电路502会执行与步骤S1001~S1011中相同的操作,在此便不再赘述。以下将针对图12中与图10的实施例不同的步骤进行说明。
请参照图12,当从主机系统接收写入数据时,倘若写入数据符合数据条件,在步骤S1213中,存储器管理电路502会判断使用区域为第一类实体抹除单元或第二类实体抹除单元。例如,存储器管理电路502可初始地将第一类实体抹除单元设定为使用区域。
在步骤S1215中,当第一类实体抹除单元被设定为使用区域时,存储器管理电路502会判断变更参数是否符合第一变更条件。
倘若变更参数符合第一变更条件时,在步骤S1217中,存储器管理电路502会将第二类实体抹除单元设定为使用区域。接着,在步骤S1219中,存储器管理电路502会从使用区域中选取至少一个实体抹除单元,并且使用第一程序化模式将写入数据程序化至所选取的至少一个实体抹除单元中。然而,倘若变更参数不符合第一变更条件,存储器管理电路502会直接执行步骤S1219。也就是说,在使用区域为第一类实体抹除单元的情况下,当变更参数符合第一变更条件时,存储器管理电路502会变更使用区域而从第二类实体抹除单元中选取实体抹除单元。而当变更参数不符合第一变更条件时,存储器管理电路502则不会变更使用区域而从第一类实体抹除单元中选取实体抹除单元。
另一方面,在步骤S1221中,当第二类实体抹除单元被设定为使用区域时,存储器管理电路502会判断变更参数是否符合第二变更条件。倘若变更参数符合第二变更条件,在步骤S1223中,存储器管理电路502会将第一类实体抹除单元设定为使用区域。接着,存储器管理电路502会执行步骤S1219。然而,倘若变更参数不符合第二变更条件,存储器管理电路502会直接执行步骤S1219。也就是说,在使用区域为第二类实体抹除单元的情况下,当变更参数符合第二变更条件时,存储器管理电路502会变更使用区域而从第一类实体抹除单元中选取实体抹除单元。而当变更参数不符合第二变更条件时,存储器管理电路502则不会变更使用区域而从第二类实体抹除单元中选取实体抹除单元。图12中各步骤中详细运作方式已于前述的实施例中详细说明,在此不再赘述。
在前述图9及图11的实施例中,使用参数为抹除次数。然而,在其他的实施例中,使用参数也可为程序化次数或程序化次数总和。例如,在图11的实施例中,当使用参数为程序化次数总和时,存储器管理电路可将第一门槛值TS(1)预设为500,且将第二门槛值TS(2)预设为20。换句话说,第一门槛值TS(1)与第二门槛值TS(2)的比例可等于25。在第一类实体抹除单元901(0)~901(C)被设定为使用区域的例子中,当变更参数PA(2)等于第一门槛值TS(1)时,存储器管理电路会判定变更参数PA(2)符合变更条件。而在第二类实体抹除单元902(0)~902(D)被设定为使用区域的例子中,当变更参数PA(2)等于第二门槛值TS(2)时,存储器管理电路会判定变更参数PA(2)符合变更条件。
综上所述,本发明通过监控第一类实体抹除单元与第二类实体抹除单元的抹除次数(或程序化次数)来获取第一类实体抹除单元与第二类实体抹除单元之间的变更参数。并且,当写入数据符合数据条件时,通过判断变更参数是否符合变更条件而轮流地选取第一类实体抹除单元或第二类实体抹除单元来存储数据。如此一来,可避免过度使用其中一类的实体抹除单元以致于可复写式非易失性存储器模块提早损坏的情况。由此可提升可复写式非易失性存储器模块的可靠度及稳定性。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。
Claims (27)
1.一种数据程序化方法,其特征在于,用于可复写式非易失性存储器模块,所述可复写式非易失性存储器模块包括多个实体抹除单元,所述数据程序化方法包括:
将所述多个实体抹除单元划分为多个第一类实体抹除单元与多个第二类实体抹除单元,其中所述多个第一类实体抹除单元的程序化模式被预设为第一程序化模式,并且所述多个第二类实体抹除单元的程序化模式被预设为第二程序化模式;
为所述多个实体抹除单元之中的每一个实体抹除单元记录使用参数;
根据所述多个第一类实体抹除单元的使用参数与所述多个第二类实体抹除单元的使用参数获取变更参数;
从主机系统接收写入数据;
判断所述变更参数是否符合第一变更条件,其中判断所述变更参数是否符合所述第一变更条件的步骤之前,设定所述多个第一类实体抹除单元为使用区域;以及
倘若判定所述变更参数符合所述第一变更条件时,设定所述多个第二类实体抹除单元为所述使用区域,从所述多个第二类实体抹除单元中选取至少一实体抹除单元,并使用所述第一程序化模式将所述写入数据程序化至从所述多个第二类实体抹除单元中选取的至少一实体抹除单元中,
其中当所述多个第二类实体抹除单元被设定为所述使用区域时,判断所述变更参数是否符合第二变更条件,
倘若判定所述变更参数符合所述第二变更条件时,设定所述多个第一类实体抹除单元为所述使用区域,从所述多个第一类实体抹除单元中选取至少一实体抹除单元并且使用所述第一程序化模式将所述写入数据程序化至从所述多个第一类实体抹除单元中选取的至少一实体抹除单元中。
2.根据权利要求1所述的数据程序化方法,其特征在于,上述判断所述变更参数是否符合所述第一变更条件的步骤包括:
判断所述变更参数是否大于第一门槛值;以及
当所述变更参数大于所述第一门槛值时,判定所述变更参数符合所述第一变更条件。
3.根据权利要求1所述的数据程序化方法,其特征在于,上述判断所述变更参数是否符合所述第二变更条件的步骤包括:
判断所述变更参数是否小于第二门槛值;以及
倘若所述变更参数小于所述第二门槛值,判定所述变更参数符合所述第二变更条件。
4.根据权利要求1所述的数据程序化方法,其特征在于,还包括:
判断所述写入数据是否符合数据条件;以及
当判定所述写入数据符合所述数据条件时,执行上述判断所述变更参数是否符合所述第一变更条件的步骤。
5.根据权利要求4所述的数据程序化方法,其特征在于,上述判断所述写入数据是否符合所述数据条件的步骤包括:
判断所述写入数据的数据量是否大于数据量门槛值;以及
当所述写入数据的数据量不大于所述数据量门槛值时,判定所述写入数据符合所述数据条件。
6.根据权利要求4所述的数据程序化方法,其特征在于,判断所述写入数据是否符合所述数据条件的步骤包括:
判断所述写入数据是否为系统数据;以及
当所述写入数据为所述系统数据时,判定所述写入数据符合所述数据条件。
7.根据权利要求1所述的数据程序化方法,其特征在于,上述根据所述多个第一类实体抹除单元的使用参数与所述多个第二类实体抹除单元的使用参数获取所述变更参数的步骤包括:
根据所述多个第一类实体抹除单元的抹除次数计算第一平均抹除次数,并且根据所述多个第二类实体抹除单元的抹除次数计算第二平均抹除次数;以及
根据所述第一平均抹除次数与所述第二平均抹除次数计算抹除次数比例以获取所述变更参数。
8.根据权利要求1所述的数据程序化方法,其特征在于,上述根据所述多个第一类实体抹除单元的使用参数与所述多个第二类实体抹除单元的使用参数获取所述变更参数的步骤包括:
根据所述多个第一类实体抹除单元的程序化次数计算第一平均程序化次数,并且根据所述多个第二类实体抹除单元的程序化次数计算第二平均程序化次数;以及
根据所述第一平均程序化次数与所述第二平均程序化次数计算程序化次数比例以获取所述变更参数。
9.根据权利要求1所述的数据程序化方法,其特征在于,所述多个实体抹除单元是由多个存储单元所构成,所述多个存储单元之中构成所述多个第一类实体抹除单元的每一个存储单元在使用所述第一程序化模式程序化后所存储的二进制位数据的数目小于所述多个存储单元之中构成所述多个第二类实体抹除单元的每一个存储单元在使用所述第二程序化模式程序化后所存储的二进制位数据的数目。
10.一种存储器存储装置,其特征在于,包括:
连接接口单元,用以连接至主机系统;
可复写式非易失性存储器模块,包括多个实体抹除单元;以及
存储器控制电路单元,连接至所述连接接口单元与所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元用以将所述多个实体抹除单元划分为多个第一类实体抹除单元与多个第二类实体抹除单元,其中所述多个第一类实体抹除单元的程序化模式被预设为第一程序化模式,并且所述多个第二类实体抹除单元的程序化模式被预设为第二程序化模式,
其中所述存储器控制电路单元更用以为所述多个实体抹除单元之中的每一个实体抹除单元记录使用参数,
其中所述存储器控制电路单元还用以根据所述多个第一类实体抹除单元的使用参数与所述多个第二类实体抹除单元的使用参数获取变更参数,
其中所述存储器控制电路单元还用以从所述主机系统接收写入数据,
其中所述存储器控制电路单元还用以判断所述变更参数是否符合第一变更条件,其中判断所述变更参数是否符合所述第一变更条件的操作之前,所述存储器控制电路单元还用以设定所述多个第一类实体抹除单元为使用区域,
其中倘若判定所述变更参数符合所述第一变更条件时,所述存储器控制电路单元还用以设定所述多个第二类实体抹除单元为所述使用区域,从所述多个第二类实体抹除单元中选取至少一实体抹除单元,并使用所述第一程序化模式将所述写入数据程序化至从所述多个第二类实体抹除单元中选取的至少一实体抹除单元中,
其中当所述多个第二类实体抹除单元被设定为所述使用区域时,所述存储器控制电路单元还用以判断所述变更参数是否符合第二变更条件,
倘若判定所述变更参数符合所述第二变更条件时,所述存储器控制电路单元还用以设定所述多个第一类实体抹除单元为所述使用区域,从所述多个第一类实体抹除单元中选取至少一实体抹除单元并且使用所述第一程序化模式将所述写入数据程序化至从所述多个第一类实体抹除单元中选取的至少一实体抹除单元中。
11.根据权利要求10所述的存储器存储装置,其特征在于,所述存储器控制电路单元判断所述变更参数是否符合所述第一变更条件的操作包括:
判断所述变更参数是否大于第一门槛值;以及
当所述变更参数大于所述第一门槛值时,判定所述变更参数符合所述第一变更条件。
12.根据权利要求10所述的存储器存储装置,其特征在于,所述存储器控制电路单元判断所述变更参数是否符合所述第二变更条件的操作包括:
判断所述变更参数是否小于第二门槛值;以及
倘若所述变更参数小于所述第二门槛值时,判定所述变更参数符合所述第二变更条件。
13.根据权利要求10所述的存储器存储装置,其特征在于,所述存储器控制电路单元还用以判断所述写入数据是否符合数据条件,并且当判定所述写入数据符合所述数据条件时,执行上述判断所述变更参数是否符合所述第一变更条件的步骤。
14.根据权利要求13所述的存储器存储装置,其特征在于,所述存储器控制电路单元判断所述写入数据是否符合所述数据条件的操作包括:
判断所述写入数据的数据量是否大于数据量门槛值;以及
当所述写入数据的数据量不大于所述数据量门槛值时,判定所述写入数据符合所述数据条件。
15.根据权利要求13所述的存储器存储装置,其特征在于,所述存储器控制电路单元判断所述写入数据是否符合所述数据条件的操作包括:
判断所述写入数据是否为系统数据;以及
当所述写入数据为所述系统数据时,判定所述写入数据符合所述数据条件。
16.根据权利要求10所述的存储器存储装置,其特征在于,所述存储器控制电路单元根据所述多个第一类实体抹除单元的使用参数与所述多个第二类实体抹除单元的使用参数获取所述变更参数的操作包括:
根据所述多个第一类实体抹除单元的抹除次数计算第一平均抹除次数,并且根据所述多个第二类实体抹除单元的抹除次数计算第二平均抹除次数;以及
根据所述第一平均抹除次数与所述第二平均抹除次数计算抹除次数比例以获取所述变更参数。
17.根据权利要求10所述的存储器存储装置,其特征在于,所述存储器控制电路单元根据所述多个第一类实体抹除单元的使用参数与所述多个第二类实体抹除单元的使用参数获取所述变更参数的操作包括:
根据所述多个第一类实体抹除单元的程序化次数计算第一平均程序化次数,并且根据所述多个第二类实体抹除单元的程序化次数计算第二平均程序化次数;以及
根据所述第一平均程序化次数与所述第二平均程序化次数计算程序化次数比例以获取所述变更参数。
18.根据权利要求10所述的存储器存储装置,其特征在于,所述多个实体抹除单元是由多个存储单元所构成,所述多个存储单元之中构成所述多个所述多个第一类实体抹除单元的每一个存储单元在使用所述第一程序化模式程序化后所存储的二进制位数据的数目小于所述多个存储单元之中构成所述多个第二类实体抹除单元的每一个存储单元在使用所述第二程序化模式程序化后所存储的二进制位数据的数目。
19.一种存储器控制电路单元,其特征在于,用于控制可复写式非易失性存储器模块,所述可复写式非易失性存储器模块包括多个实体抹除单元,所述存储器控制电路单元包括:
主机接口,用以连接至主机系统;
存储器接口,用以连接至所述可复写式非易失性存储器模块;以及
存储器管理电路,连接所述主机接口与所述存储器接口,
其中所述存储器管理电路用以将所述多个实体抹除单元划分为多个第一类实体抹除单元与多个第二类实体抹除单元,其中所述多个第一类实体抹除单元的程序化模式被预设为第一程序化模式,并且所述多个第二类实体抹除单元的程序化模式被预设为第二程序化模式,
其中所述存储器管理电路还用以为所述多个实体抹除单元之中的每一个实体抹除单元记录使用参数,
其中所述存储器管理电路更用以根据所述多个第一类实体抹除单元的使用参数与所述多个第二类实体抹除单元的使用参数获取变更参数,
其中所述存储器管理电路还用以从所述主机系统接收写入数据,
其中所述存储器管理电路还用以判断所述变更参数是否符合第一变更条件,其中判断所述变更参数是否符合所述第一变更条件的操作之前,所述存储器管理电路还用以设定所述多个第一类实体抹除单元为使用区域,
其中倘若判定所述变更参数符合所述第一变更条件,所述存储器管理电路还用以设定所述多个第二类实体抹除单元为所述使用区域,从所述多个第二类实体抹除单元中选取至少一实体抹除单元,并使用所述第一程序化模式将所述写入数据程序化至从所述多个第二类实体抹除单元中选取的至少一实体抹除单元中,
其中当所述多个第二类实体抹除单元被设定为所述使用区域时,所述存储器管理电路还用以判断所述变更参数是否符合第二变更条件,
倘若判定所述变更参数符合所述第二变更条件,所述存储器管理电路还用以设定所述多个第一类实体抹除单元设定为所述使用区域,从所述多个第一类实体抹除单元中选取至少一实体抹除单元并且使用所述第一程序化模式将所述写入数据程序化至从所述多个第一类实体抹除单元中选取的至少一实体抹除单元中。
20.根据权利要求19所述的存储器控制电路单元,其特征在于,所述存储器管理电路判断所述变更参数是否符合所述第一变更条件的操作包括:
判断所述变更参数是否大于第一门槛值;以及
当所述变更参数大于所述第一门槛值时,判定所述变更参数符合所述第一变更条件。
21.根据权利要求19所述的存储器控制电路单元,其特征在于,所述存储器管理电路判断所述变更参数是否符合所述第二变更条件的操作包括:
判断所述变更参数是否小于第二门槛值;以及
倘若所述变更参数小于所述第二门槛值,判定所述变更参数符合所述第二变更条件。
22.根据权利要求19所述的存储器控制电路单元,其特征在于,所述存储器管理电路还用以判断所述写入数据是否符合数据条件,并且当判定所述写入数据符合所述数据条件时,执行上述判断所述变更参数是否符合所述第一变更条件的步骤。
23.根据权利要求22所述的存储器控制电路单元,其特征在于,所述存储器管理电路判断所述写入数据是否符合所述数据条件的操作包括:
判断所述写入数据的数据量是否大于数据量门槛值;以及
当所述写入数据的数据量不大于所述数据量门槛值时,判定所述写入数据符合所述数据条件。
24.根据权利要求22所述的存储器控制电路单元,其特征在于,所述存储器管理电路判断所述写入数据是否符合所述数据条件的操作包括:
判断所述写入数据是否为系统数据;以及
当所述写入数据为所述系统数据时,判定所述写入数据符合所述数据条件。
25.根据权利要求19所述的存储器控制电路单元,其特征在于,所述存储器管理电路根据所述多个第一类实体抹除单元的使用参数与所述多个第二类实体抹除单元的使用参数获取所述变更参数的操作包括:
根据所述多个第一类实体抹除单元的抹除次数计算第一平均抹除次数,并且根据所述多个第二类实体抹除单元的抹除次数计算第二平均抹除次数;以及
根据所述第一平均抹除次数与所述第二平均抹除次数计算抹除次数比例以获取所述变更参数。
26.根据权利要求19所述的存储器控制电路单元,其特征在于,所述存储器管理电路根据所述多个第一类实体抹除单元的使用参数与所述多个第二类实体抹除单元的使用参数获取所述变更参数的操作包括:
根据所述多个第一类实体抹除单元的程序化次数计算第一平均程序化次数,并且根据所述多个第二类实体抹除单元的程序化次数计算第二平均程序化次数;以及
根据所述第一平均程序化次数与所述第二平均程序化次数计算程序化次数比例以获取所述变更参数。
27.根据权利要求19所述的存储器控制电路单元,其特征在于,所述多个实体抹除单元是由多个存储单元所构成,所述多个存储单元之中构成所述多个第一类实体抹除单元的每一个存储单元在使用所述第一程序化模式程序化后所存储的二进制位数据的数目小于所述多个存储单元之中构成所述多个第二类实体抹除单元的每一个存储单元在使用所述第二程序化模式程序化后所存储的二进制位数据的数目。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710130537.3A CN106951186B (zh) | 2017-03-07 | 2017-03-07 | 数据程序化方法、存储器存储装置及存储器控制电路单元 |
US15/590,018 US10922028B2 (en) | 2017-03-07 | 2017-05-09 | Data programming method, memory storage device and memory control circuit unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710130537.3A CN106951186B (zh) | 2017-03-07 | 2017-03-07 | 数据程序化方法、存储器存储装置及存储器控制电路单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106951186A CN106951186A (zh) | 2017-07-14 |
CN106951186B true CN106951186B (zh) | 2020-02-07 |
Family
ID=59467833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710130537.3A Active CN106951186B (zh) | 2017-03-07 | 2017-03-07 | 数据程序化方法、存储器存储装置及存储器控制电路单元 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10922028B2 (zh) |
CN (1) | CN106951186B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776627B (zh) * | 2018-05-29 | 2021-08-24 | 青岛海尔科技有限公司 | 一种数据存储方法、装置、读取方法及装置 |
CN109491592B (zh) * | 2018-09-20 | 2022-11-15 | 中山市江波龙电子有限公司 | 存储设备及其数据写入方法、存储装置 |
CN109491925A (zh) * | 2018-09-20 | 2019-03-19 | 中山市江波龙电子有限公司 | 存储设备及其数据写入方法、存储装置 |
CN111951857B (zh) * | 2019-05-15 | 2023-06-09 | 兆易创新科技集团股份有限公司 | 一种非易失性存储器的编程方法及控制装置 |
CN112860274A (zh) * | 2019-11-27 | 2021-05-28 | 华为技术有限公司 | 程序包部署的方法、装置、终端设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104126178A (zh) * | 2011-12-29 | 2014-10-29 | 桑迪士克科技股份有限公司 | Slc-mlc损耗平衡 |
CN105320464A (zh) * | 2014-07-21 | 2016-02-10 | 群联电子股份有限公司 | 防止读取干扰的方法、存储器控制电路单元与存储装置 |
CN105955672A (zh) * | 2016-05-19 | 2016-09-21 | 河南中天亿科电子科技有限公司 | 用于灵活控制损耗均衡的固态存储系统及方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060719B2 (en) * | 2008-05-28 | 2011-11-15 | Micron Technology, Inc. | Hybrid memory management |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8407400B2 (en) * | 2008-11-12 | 2013-03-26 | Micron Technology, Inc. | Dynamic SLC/MLC blocks allocations for non-volatile memory |
US8040744B2 (en) * | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
US8291152B2 (en) * | 2009-01-07 | 2012-10-16 | Silicon Motion, Inc. | Method for operating non-volatile memory and data storage system using the same |
US9021177B2 (en) * | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
US8760922B2 (en) * | 2012-04-10 | 2014-06-24 | Sandisk Technologies Inc. | System and method for micro-tiering in non-volatile memory |
US8804415B2 (en) * | 2012-06-19 | 2014-08-12 | Fusion-Io, Inc. | Adaptive voltage range management in non-volatile memory |
KR101989018B1 (ko) * | 2012-06-25 | 2019-06-13 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
US9965199B2 (en) * | 2013-08-22 | 2018-05-08 | Sandisk Technologies Llc | Smart dynamic wear balancing between memory pools |
US9336129B2 (en) * | 2013-10-02 | 2016-05-10 | Sandisk Technologies Inc. | System and method for bank logical data remapping |
US20160041760A1 (en) * | 2014-08-08 | 2016-02-11 | International Business Machines Corporation | Multi-Level Cell Flash Memory Control Mechanisms |
TWI591635B (zh) * | 2016-02-05 | 2017-07-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
-
2017
- 2017-03-07 CN CN201710130537.3A patent/CN106951186B/zh active Active
- 2017-05-09 US US15/590,018 patent/US10922028B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104126178A (zh) * | 2011-12-29 | 2014-10-29 | 桑迪士克科技股份有限公司 | Slc-mlc损耗平衡 |
CN105320464A (zh) * | 2014-07-21 | 2016-02-10 | 群联电子股份有限公司 | 防止读取干扰的方法、存储器控制电路单元与存储装置 |
CN105955672A (zh) * | 2016-05-19 | 2016-09-21 | 河南中天亿科电子科技有限公司 | 用于灵活控制损耗均衡的固态存储系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US10922028B2 (en) | 2021-02-16 |
CN106951186A (zh) | 2017-07-14 |
US20180260163A1 (en) | 2018-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951186B (zh) | 数据程序化方法、存储器存储装置及存储器控制电路单元 | |
US10235094B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
CN110879793B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN110390985B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI658405B (zh) | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN106775479B (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
CN111078146A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN113885692A (zh) | 存储器效能优化方法、存储器控制电路单元以及存储装置 | |
CN107103930B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN107204205B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN107132989B (zh) | 数据程序化方法、存储器控制电路单元及存储器存储装置 | |
US10203886B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus for writing data from buffer memory and moving valid data | |
US20220164133A1 (en) | Memory control method, memory storage device and memory control circuit unit | |
US20210223981A1 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
CN109669620B (zh) | 存储器管理方法、存储器控制电路单元及存储器储存装置 | |
US9613707B1 (en) | Data programming method for avoiding unavailability of rewritable non-volatile memory module due to higher erase count of part of physical erasing units, and memory control circuit unit and memory storage device using the same | |
CN111240602B (zh) | 闪存的数据整理方法、控制电路单元与存储装置 | |
CN113312274B (zh) | 存储器的数据整理方法、存储器存储装置及控制电路单元 | |
CN117632038B (zh) | 损耗平衡方法、存储器存储装置及存储器控制电路单元 | |
CN111143230B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
CN112445418B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111583976B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN112114737B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN112216329B (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 |