CN107301015A - 用于减少存储器设备上的压力的系统和方法 - Google Patents
用于减少存储器设备上的压力的系统和方法 Download PDFInfo
- Publication number
- CN107301015A CN107301015A CN201610232779.9A CN201610232779A CN107301015A CN 107301015 A CN107301015 A CN 107301015A CN 201610232779 A CN201610232779 A CN 201610232779A CN 107301015 A CN107301015 A CN 107301015A
- Authority
- CN
- China
- Prior art keywords
- memory block
- memory
- block
- count value
- controller
- 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
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/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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- 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/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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
- G11C16/28—Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- 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
- G06F2212/1036—Life time enhancement
-
- 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/7211—Wear leveling
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
Abstract
本公开涉及一种用于减少具有多个存储器块的存储器设备上的压力的系统和方法。系统包括计数单元,用于递增与存储器块分别相关联的计数值。计数值中的每一个指示已经擦除关联存储器块的次数。控制器监控计数值。当检测与第一存储器块相关联的计数值达到预定义阈值时,控制器基于与第二存储器块相关联的计数值从存储器块选择要与第一存储器块交换的第二存储器块。
Description
技术领域
本发明涉及存储器设备并且更具体地涉及用于减少存储器设备上的压力的系统和方法。
背景技术
图1示出了常规系统100,包括用于存储代码和数据的存储器102和连接至存储器102用于执行存储器102中存储的代码以及从存储器102读取数据或者将数据写入存储器102的处理器104。例如,系统100可以是片上系统(SoC),该片上系统(SoC)是将处理器、存储器和其它部件集成到单个芯片上的集成电路。
图2示出了图1的系统中的存储器102的常规结构。存储器102可以是广泛用于存储代码和数据的非易失性存储器(NVM)。典型地,NVM被逻辑上分成许多相同大小的逻辑存储器块,其中存储器块中的一些被配置为存储代码以及存储块中的一些被配置为存储数据。例如,如图2所示,具有1280 kB大小的NVM 102被分成第一至第五存储器块106-114,各自具有256 kB的大小。第一和第二存储器块106和108存储代码(即代码块),以及第三至第五块110-114存储数据(即数据块)。通常在制造期间对代码块106和108中的代码进行编程,并且很少由用户进行重新编程。在系统100的操作期间频繁地读取和写入数据块110-114。将数据写入数据块包括擦除先前存储在数据块中的数据以及将新数据存储在数据块中。因此,数据块110-114比代码块106-108遭受更多擦除压力,并且比代码块106-108早达到擦除周期。系统100的使用寿命部分地取决于存储器102的使用寿命,而存储器102的使用寿命由达到最大擦除周期数量的NVM的第一存储器块限定。因此,找到用于减少存储器设备上的擦除压力的方法以延长SoC寿命是理想的。
附图说明
可以通过参照优选实施例的下列描述连同附图一起最好地理解本发明连同其目的和优点,在附图中:
图1示出了常规系统的框图;
图2示出了图1的系统中的存储器设备的常规结构;
图3是根据本发明实施例用于减少存储器设备的压力的系统的框图;
图4是根据本发明实施例图3的系统的计数单元的框图;
图5是根据本发明另一个实施例图3的系统的计数单元的框图;
图6是根据本发明实施例图3的系统的交换单元的框图;
图7示出了根据本发明实施例图3的系统的存储器设备的存储器块的结构;
图8是根据本发明第一实施例用于减少存储器设备上的压力的方法的流程图;
图9是根据本发明第二实施例用于减少存储器设备上的压力的方法的流程图;
图10是根据本发明第三实施例用于减少存储器设备上的压力的方法的流程图;以及
图11是根据本发明实施例通过图10的虚设存储器块交换存储器块的方法的流程图。
具体实施方式
下面结合附图阐述的详细说明旨在作为本发明当前优选实施例的描述,并且不旨在表示可以实施本发明的唯一形式。应当理解,可以通过旨在包括在本发明精神和范围内的不同实施例实现相同功能或者等效功能。在附图中,相似的标号始终用于指代相似的元件。此外,术语“包括”、“包含”或者它们的任何变型旨在覆盖非排他性包括,使得包括一系列元件或者步骤的模块、电路、设备部件、结构和方法步骤不仅包括那些元件,而且可以包括没有明确列出的或者这种模块、电路、设备部件或者步骤固有的其它元件或者步骤。由“包括...一”引导出的元件或者步骤在没有更多约束的情况下并不排除包括元件或者步骤的另外的相同元件或者步骤的存在。
在一个实施例中,本发明提供用于减少存储器设备上的压力的系统,其中存储器设备包括多个存储器块。系统包括:用于基于给定地址读取和写入存储器设备的读取和写入单元,其中所述写入包括擦除存储器设备中存储的数据;连接至读取和写入单元的计数单元,用于递增多个计数值,其中存储器块中的每一个与指示擦除与其关联的存储器块的次数的至少一个计数值相关联;以及连接至计数单元用于监控计数值的控制器,其中当检测与多个存储器块的第一存储器块相关联的计数值达到预定阈值时,控制器基于与第二存储器块相关联的计数值从多个存储器块选择要与第一存储器块交换的第二存储器块、交换第一和第二存储器块中存储的数据,并生成相应的交换信息。
在另一个实施例中,本发明提供减少存储器设备上的压力的方法,其中存储器设备包括多个存储器块。该方法包括:每次擦除所述存储器块都递增与存储器块相关联的计数值;检测多个存储器块的第一存储器块的计数值是否已经达到预定阈值;当检测计数值已经达到预定阈值时从多个存储器块选择第二存储器块并且将第一存储器块中存储的数据与第二存储器块中存储的数据交换,其中第二存储器块的计数值小于第一存储器块的计数值;以及生成相应的交换信息。
现在参考图3,示出了根据本发明实施例用于减少存储器设备的压力的系统200的框图。系统200包括:分成多个存储器块204-214的存储器202,其中存储器202中存储的数据包括系统200的代码和数据;和连接至存储器202的处理器220,用于执行系统200的代码以及从存储器202读取数据或者将数据写入存储器202。在优选实施例中,多个存储器块204-214包括存储系统200的数据的至少第一存储器块204以及存储系统200的代码的至少第二存储器块208。在优选实施例中,存储器202是非易失性存储器(NVM)、闪速存储器或者电可擦除可编程只读存储器(EEPROM)。处理器220优选地包括系统200的MCU的处理器,或者替换地可以包括系统200内的单独处理器。
处理器220包括:用于读取和写入存储器200的读取和写入(R/W)单元222,其中所述写入包括擦除先前存储在存储器200中的数据;和连接至读取和写入单元222用于更新多个计数值的计数单元224,其中存储器块204-214中的每一个与指示已经擦除与其关联的存储器块的次数的至少一个计数值相关联。
图4示出了根据本发明实施例图3的系统的计数单元224的框图。在优选实施例中,计数单元224包括各自与存储器块204-214中的一个相关联的多个计数器224a-224f。图5示出了根据本发明另一个实施例图3的系统的计数单元224的框图。在优选实施例中,计数单元224包括计数器226和多个第一寄存器228,其中多个第一寄存器228中的每一个存储与其关联的存储器块的计数值,其中计数器226更新多个第一寄存器228中存储的计数值。
返回参照图3,处理器220还包括连接至计数单元224用于监控计数值的控制器230。在优选实施例中,当检测与第一存储器块204相关联的计数值已经达到预定阈值时,控制器230基于第二存储器块210的计数值从多个存储器块204-214选择要与第一存储器块204交换的第二存储器块210,该第二存储器块210的计数值低于第一存储器块204的计数值。控制器230将第一存储器块204和第二存储器块210中存储的数据交换并且生成相应的交换信息。在优选实施例中,基于存储器202的擦除周期设定预定阈值。在优选实施例中,第二存储器块210是多个存储器块204-214当中具有最低计数值的存储器块。
在优选实施例中,控制器230通过将系统200存储在第二存储器块210中的代码复制到第一存储器块204以及如果已经擦除了第一存储器块204中存储的所有数据则擦除系统在第二存储器块210中存储的代码,将第一存储器块204和第二存储器块210中存储的数据交换。
在另一个优选实施例中,存储器202还包括虚设存储器块214,其中如果仅擦除了第一存储器块204中存储的数据的一部分,则控制器230通过虚设存储器块214将第一存储器块204和第二存储器块210中存储的数据交换。在优选实施例中,当在选择第二存储器块210之后检测到第二存储器块210的计数值也达到预定阈值时,控制器230选择要与第一存储器块204交换的虚设存储器块214并且生成相应的交换信息。
在优选实施例中,处理器220还包括连接至控制器230的第二寄存器232,该第二寄存器232存储与存储器块204-214分别相关联的多个标志。如果与第一存储器块204相关联的计数值已经达到预定阈值并且第一存储器块204已经与第二存储器块210交换,则控制器230将与第一存储器块204相关联的标志设定为第一值,并且如果将与第一存储器块204相关联的标志设定为第一值,则控制器230停止监控与第一存储器块204相关联的计数值。在优选实施例中,如果与第一存储器块204相关联的标志设定为第一值,则计数单元224停止更新与第一存储器块204相关联的计数值。
处理器220还包括:连接于读取和写入单元222与控制器230之间的交换单元234,用于使第一存储器块和第二存储器块彼此重新映射。图6是根据本发明实施例图3的系统的交换单元234的框图。交换单元234包括:查找表(LUT)236,存储由控制器230提供的交换信息;和块重映射单元238,基于查找表236和给定地址从多个存储器块204-214选择存储器块以使得读取和写入单元222从所选择的存储器块读取数据或者将数据写入所选择的存储器块。在优选实施例中,交换信息包括第一存储器块204与第二存储器块210的地址之间的映射,反之亦然。
在优选实施例中,计数器值、多个标志和查找表236还存储在系统200的与存储器202分离的第二存储器设备(未示出)中,并且在已经在重置系统200期间初始化处理器220之前在初始化存储器202期间加载到处理器220。
在优选实施例中,控制器230在将系统在第二存储器块210中存储的代码复制到第一存储器块204时保持读取第二存储器块210中存储的代码的请求,并且在已经生成交换信息之后释放请求。
在另一个优选实施例中,系统200还包括与处理器220通信的单独中央处理单元(CPU),用于执行系统200的代码以及通过处理器220读取和写入存储器202,其中处理器220是专门用于存储器202的存储器控制设备。
现在参考图7,示出了根据本发明实施例图3的存储器202的存储器块300的结构。在优选实施例中,存储器块204-214中的每一个被分成多个子块302。例如,具有256kB大小的存储器块被分成各自具有8kB大小的32个子块,其中将每个子块的大小确定为NVM的最小擦除大小的n倍,其中n是自然数。在优选实施例中,每次擦除存储器块300,都基于擦除的子块302的数量更新存储器块300的计数值。在另一个优选实施例中,子块302中的每一个与一旦擦除与其关联的子块302就更新的多个计数值中的一个相关联,其中基于在第二存储器块300的多个子块302当中具有最高计数值的子块302选择第二存储器块210。
图8是根据本发明第一实施例由系统200执行的用于减少存储器设备上的压力的方法的流程图400。如图3所示的存储器202被分成多个存储器块204-214,其中存储器202中存储的数据包括系统200的代码和数据。系统200还包括连接至存储器202的处理器220,用于执行系统200的代码以及从存储器202读取数据或者将数据写入存储器202。在优选实施例中,多个存储器块204-214包括存储系统200的数据的至少第一存储器块204以及存储系统200的代码的至少第二存储器块208。在优选实施例中,存储器202是非易失性存储器(NVM)、闪速存储器或者EEPROM。处理器220优选地包括系统200的MCU的处理器,或者替换地可以包括系统200内的单独处理器。
从步骤402开始,控制器230接收擦除指令以基于给定地址擦除第一存储器块204中存储的数据的至少一部分。在优选实施例中,擦除指令包括在将数据写入第一存储器块204的写入指令中。
在步骤404处,读取和写入单元222擦除第一存储器块204中存储的数据的一部分以及更新与第一存储器块204相关联的计数值,其中计数值指示已经擦除与其关联的存储器块的次数。在优选实施例中,如图7所示,存储器块204-214中的每一个被分成多个子块302。例如,具有256kB大小的存储器块被分成各自具有8kB大小的32个子块,其中将每个子块的大小确定为NVM的最小擦除大小的n倍,其中n是自然数。在优选实施例中,每次擦除存储器块300,都基于擦除的子块302的数量更新与存储器块300相关联的计数值。
在步骤406处,控制器230检测与第一存储器块204相关联的计数值是否已经达到预定阈值。在优选实施例中,基于存储器202的擦除周期设定该预定阈值。
在步骤408处,如果与第一存储器块204相关联的计数值已经达到预定阈值,则控制器230进一步确定数据的该部分是否包括第一存储器块204中存储的所有数据。
在步骤410处,如果数据的该部分包括第一存储器块204中存储的所有数据(即,已经擦除第一存储器块204中存储的所有数据),则控制器230基于第二存储器块210的计数值从多个存储器块204-214选择要与第一存储器块204交换的第二存储器块210,该第二存储器块210的计数值低于第一存储器块204的计数值。在优选实施例中,第二存储器块210是多个存储器块204-214当中具有最低计数值的存储器块。
在步骤412处,控制器230将系统200在第二存储器块210中存储的代码复制到第一存储器块204。
在步骤414处,控制器230将系统200在第二存储器块210中存储的代码擦除以及更新与第二存储器块210相关联的计数值。
在步骤416处,控制器230更新交换信息以使第一存储器块和第二存储器块彼此重新映射。在优选实施例中,交换信息包括第一存储器块204与第二存储器块210的地址之间的映射,反之亦然。
在图8的流程图400中,直到与第一存储器块204相关联的计数值达到预定阈值以及已经擦除的数据的部分包括第一存储器块204中存储的所有数据,控制器230才会选择要与第一存储器块204交换的第二存储器块210。
图9是根据本发明第二实施例用于减少存储器设备上的压力的方法的流程图500。在优选实施例中,子块中的每一个具有与其关联的计数值,指示已经擦除子块的次数。
除在步骤504处,一旦擦除关联子块就更新子块中的每一个的计数值,以及在步骤506处,控制器230检测子块的计数值中的任何一个是否已经达到预定阈值以外,图9的流程图500与图8的流程图基本上相同。
图10是根据本发明第三实施例用于减少存储器设备上的压力的方法的流程图600。在另一个优选实施例中,存储器202还包括虚设存储器块214。图10的流程图600中的前三个步骤602-606可以与图8的流程图400中的前三个步骤402-406或者图9的流程图500中的前三个步骤502-506相同。在步骤608处,如果与第一存储器块204相关联的计数值已经达到预定阈值,则控制器230选择要与第一存储器块204交换的第二存储器块210。
在步骤610处,控制器230还检测第二存储器块210的计数值是否已经达到预定阈值。在步骤612处,如果与第二存储器块210相关联的计数值没有达到预定阈值,则控制器230通过虚设块214将第一存储器块204和第二存储器块210中存储的数据交换,以及在步骤614处,控制器230更新交换信息以使第一存储器块204和第二存储器块210彼此重新映射。
在步骤616处,如果第二存储器块210的计数值已经达到预定阈值,则控制器230将第一存储器块204中保留的数据复制到虚设存储器块214,以及在步骤618处,控制器230更新交换信息以使第一存储器块204和虚设存储器块214彼此重新映射。
图11是根据本发明实施例通过图10的虚设存储器块交换存储器块的步骤612的流程图700。
从步骤702开始,控制器230将第一存储器块204中保留的数据复制到虚设存储器块214。在步骤704处,控制器230擦除第一存储器块204以及更新与第一存储器块204相关联的计数值。在步骤706处,控制器230将系统在第二存储器块210中存储的代码复制到第一存储器块204。在步骤708处,控制器230将系统在第二存储器块210中存储的代码擦除以及更新与第二存储器块210相关联的计数值。在步骤710处,控制器230将虚设存储器块214中的数据复制到第二存储器块210,以及在步骤712处,控制器擦除虚设存储器块214中的数据并且更新与虚设存储器块214相关联的计数值。
尽管为了图示和描述的目的已经提供了本发明优选实施例的描述,但是并不旨在穷举或者将本发明限于所公开的形式。本领域技术人员应当理解,在不背离其广泛发明构思的情况下,可以对上面描述的实施例做出改变。因此,应当理解,本发明不限于所公开的特定实施例,而覆盖如由所附权利要求限定的本发明的精神和范围内的修改。
Claims (12)
1.一种用于减少存储器设备上的压力的系统,其中所述存储器设备包括多个存储器块,所述系统包括:
读取和写入单元,用于基于给定地址读取和写入所述存储器设备,其中所述写入包括擦除所述存储器设备中存储的数据;
连接至所述读取和写入单元的计数单元,用于更新多个计数值,其中所述存储器块中的每一个与指示擦除与其关联的所述存储器块的次数的至少一个所述计数值相关联;以及
连接至所述计数单元的控制器,用于监控所述计数值,其中当检测与所述多个存储器块中的第一存储器块相关联的计数值达到预定阈值时,所述控制器基于与第二存储器块相关联的计数值从所述多个存储器块选择要与所述第一存储器块交换的所述第二存储器块、交换所述第一存储器块和所述第二存储器块中存储的数据以及生成相应的交换信息。
2.根据权利要求1所述的系统,其中所述系统还包括交换单元,用于使所述第一存储器块和所述第二存储器块彼此重新映射,其中所述交换单元包括:
查找表,存储由所述控制器提供的所述交换信息,以及
块重映射单元,基于所述查找表和所述给定地址从所述多个存储器块选择存储器块,使得所述读取和写入单元与所述选择的存储器块交换数据。
3.根据权利要求1所述的系统,其中所述存储器块中的每一个包括多个子块,其中每次擦除所述存储器块中的一个,所述存储器块的所述计数值都基于擦除的所述子块的数量更新。
4.根据权利要求1所述的系统,其中所述存储器块中的每一个包括多个子块,其中所述子块中的每一个与一旦擦除与其关联的所述子块就更新的所述多个计数值中的一个相关联,其中所述第二存储器块基于所述第二存储器块的所述多个子块当中具有最高计数值的子块选择。
5.根据权利要求1所述的系统,其中所述控制器在已经更新所述第一存储器块的所述计数值之后监控所述计数值,其中当检测所述第一存储器块的所述计数值达到所述预定阈值时,如果擦除了所述第一存储器块中的所有数据,则所述控制器选择所述第二存储器块用于交换。
6.根据权利要求5所述的系统,其中所述控制器通过将所述第二存储器块中的数据复制到所述第一存储器块以及擦除所述第二存储器块中存储的所述数据交换所述第一存储器块和所述第二存储器块中存储的数据。
7.根据权利要求1所述的系统,其中所述存储器设备还包括虚设存储器块,其中所述控制器通过所述虚设存储器块交换所述第一存储器块和所示第二存储器块中存储的数据。
8.根据权利要求7所述的系统,其中当在选择所述第二存储器块之后检测到所述第二存储器块的所述计数值达到所述预定阈值时,控制器选择要与所述第一存储器块交换的所述虚设存储器块并且生成所述相应的交换信息。
9.根据权利要求1所述的系统,其中所述计数单元包括一个计数器和多个第一寄存器,其中所述多个第一寄存器中的每一个存储与其关联的所述存储器块的所述计数值。
10.根据权利要求1所述的系统,其中所述第二存储器块包括具有最低计数值的所述存储器块。
11.根据权利要求1所述的系统,其中所述系统还包括存储与所述存储器块分别相关联的多个标志的第二寄存器,其中如果与所述第一存储器块相关联的所述计数值已经达到所述预定阈值以及所述第一存储器块已经与所述第二存储器块交换,则所述控制器将与所述第一存储器块相关联的标志设定为第一值,其中如果将与所述第一存储器块相关联的所述标志设定为所述第一值,则所述控制器停止监控与所述第一存储器块相关联的所述计数值。
12.一种减少存储器设备上的压力的方法,其中所述存储器设备包括多个存储器块,所述方法包括:
每次擦除存储器块就递增与所述存储器块相关联的计数值;
检测所述多个存储器块中的第一存储器块的计数值是否已经达到预定阈值;
当检测所述计数值已经达到所述预定阈值时,从所述多个存储器块中选择第二存储器块以及将所述第一存储器块中存储的数据与所述第二存储器块中存储的数据交换,其中所述第二存储器块的计数值小于所述第一存储器块的所述计数值;以及
生成相应的交换信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610232779.9A CN107301015B (zh) | 2016-04-15 | 2016-04-15 | 用于减少存储器设备上的压力的系统和方法 |
US15/356,667 US9971682B2 (en) | 2016-04-15 | 2016-11-21 | Wear-leveling system and method for reducing stress on memory device using erase counters |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610232779.9A CN107301015B (zh) | 2016-04-15 | 2016-04-15 | 用于减少存储器设备上的压力的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107301015A true CN107301015A (zh) | 2017-10-27 |
CN107301015B CN107301015B (zh) | 2022-05-13 |
Family
ID=60038178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610232779.9A Active CN107301015B (zh) | 2016-04-15 | 2016-04-15 | 用于减少存储器设备上的压力的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9971682B2 (zh) |
CN (1) | CN107301015B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102461751B1 (ko) * | 2018-07-31 | 2022-11-02 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 동작 방법 |
CN110888596B (zh) * | 2019-06-25 | 2021-07-09 | 北京华弘集成电路设计有限责任公司 | 一种Flash存储区域的文件擦写方法及装置 |
US10902929B1 (en) | 2019-08-29 | 2021-01-26 | Micron Technology, Inc. | Zone swapping for wear leveling memory |
KR20210051644A (ko) * | 2019-10-31 | 2021-05-10 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070156587A1 (en) * | 2000-01-06 | 2007-07-05 | Super Talent Electronics Inc. | Content Protection Using Encryption Key Embedded with Content File |
US20080313505A1 (en) * | 2007-06-14 | 2008-12-18 | Samsung Electronics Co., Ltd. | Flash memory wear-leveling |
US20090287875A1 (en) * | 2008-05-15 | 2009-11-19 | Silicon Motion, Inc. | Memory module and method for performing wear-leveling of memory module |
CN102063377A (zh) * | 2009-11-16 | 2011-05-18 | 联发科技股份有限公司 | 存储介质的数据存取管理方法及存储控制器 |
CN103064792A (zh) * | 2012-12-26 | 2013-04-24 | 北京创毅讯联科技股份有限公司 | 数据写入方法及装置 |
CN104657280A (zh) * | 2007-12-28 | 2015-05-27 | 株式会社东芝 | 存储器系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096313B1 (en) * | 2002-10-28 | 2006-08-22 | Sandisk Corporation | Tracking the least frequently erased blocks in non-volatile memory systems |
JP2005267240A (ja) * | 2004-03-18 | 2005-09-29 | Hitachi Global Storage Technologies Netherlands Bv | デフラグメントを行う方法及び記憶装置 |
US7426605B2 (en) | 2005-09-30 | 2008-09-16 | Rudelic John C | Method and apparatus for optimizing flash device erase distribution |
KR20100108697A (ko) | 2009-03-30 | 2010-10-08 | 삼성전자주식회사 | 데이터 출력 패드들의 스왑 기능을 갖는 반도체 메모리 장치 |
US8447915B2 (en) * | 2009-07-23 | 2013-05-21 | Hitachi, Ltd. | Flash memory device for allocating physical blocks to logical blocks based on an erase count |
KR20120028146A (ko) | 2010-09-14 | 2012-03-22 | 삼성전자주식회사 | 입출력 경로 스왑을 지원하는 메모리 시스템 |
US8612804B1 (en) * | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
-
2016
- 2016-04-15 CN CN201610232779.9A patent/CN107301015B/zh active Active
- 2016-11-21 US US15/356,667 patent/US9971682B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070156587A1 (en) * | 2000-01-06 | 2007-07-05 | Super Talent Electronics Inc. | Content Protection Using Encryption Key Embedded with Content File |
US20080313505A1 (en) * | 2007-06-14 | 2008-12-18 | Samsung Electronics Co., Ltd. | Flash memory wear-leveling |
CN104657280A (zh) * | 2007-12-28 | 2015-05-27 | 株式会社东芝 | 存储器系统 |
US20090287875A1 (en) * | 2008-05-15 | 2009-11-19 | Silicon Motion, Inc. | Memory module and method for performing wear-leveling of memory module |
CN102063377A (zh) * | 2009-11-16 | 2011-05-18 | 联发科技股份有限公司 | 存储介质的数据存取管理方法及存储控制器 |
CN103064792A (zh) * | 2012-12-26 | 2013-04-24 | 北京创毅讯联科技股份有限公司 | 数据写入方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US9971682B2 (en) | 2018-05-15 |
US20170300408A1 (en) | 2017-10-19 |
CN107301015B (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI261168B (en) | Non-volatile memory system with erase counts stored in an erase count block | |
CN108733510A (zh) | 数据储存装置及映射表重建方法 | |
CN103632730B (zh) | 使用参考块的固态驱动保持监控器 | |
US10445005B2 (en) | Memory system and operating method thereof | |
CN100507875C (zh) | 非易失性存储器的平均抹除方法与装置 | |
TWI249100B (en) | Tracking the least frequently erased blocks in non-volatile memory systems | |
CN107301015A (zh) | 用于减少存储器设备上的压力的系统和方法 | |
TWI585770B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN108139871A (zh) | 具有基于存储器寿命周期的可变逻辑容量的固态存储装置 | |
US20100125696A1 (en) | Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor | |
CN103699491B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
TW200416707A (en) | Maintaining an average erase count in a non-volatile storage system | |
CN104584135A (zh) | 采用目标读擦洗算法的闪存 | |
US8516213B2 (en) | Method and apparatus for EEPROM emulation for preventing data loss in the event of a flash block failure | |
TW200406771A (en) | Wear leveling in non-volatile storage systems | |
CN106990921B (zh) | 数据写入方法、存储器存储装置与存储器控制电路单元 | |
KR20140064980A (ko) | 솔리드 스테이트 드라이브 내의 메모리 장치로의 논리 주소의 적응적 매핑 | |
CN104794063A (zh) | 一种具备电阻式存储器的固态储存装置的控制方法 | |
EP3724769A1 (en) | Multilevel addressing | |
KR20190020179A (ko) | 수명 종료 상태에 도달할 경우, 솔리드 스테이트 메모리로의 기록들을 제한하기 위한 방법 및 장치 | |
CN109521944A (zh) | 数据储存装置以及数据储存方法 | |
CN108139917A (zh) | 从nand媒体快速引导的固态存储装置 | |
CN106484308B (zh) | 数据保护方法、存储器控制电路单元及存储器储存装置 | |
KR20180042699A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
JP4488048B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Texas in the United States Applicant after: NXP America Co Ltd Address before: Texas in the United States Applicant before: Fisical Semiconductor Inc. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |