CN107301015A - 用于减少存储器设备上的压力的系统和方法 - Google Patents

用于减少存储器设备上的压力的系统和方法 Download PDF

Info

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
Application number
CN201610232779.9A
Other languages
English (en)
Other versions
CN107301015B (zh
Inventor
李尧桥
陈新捷
耿晓祥
周建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
Freescale Semiconductor Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Priority to CN201610232779.9A priority Critical patent/CN107301015B/zh
Priority to US15/356,667 priority patent/US9971682B2/en
Publication of CN107301015A publication Critical patent/CN107301015A/zh
Application granted granted Critical
Publication of CN107301015B publication Critical patent/CN107301015B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing 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.一种减少存储器设备上的压力的方法,其中所述存储器设备包括多个存储器块,所述方法包括:
每次擦除存储器块就递增与所述存储器块相关联的计数值;
检测所述多个存储器块中的第一存储器块的计数值是否已经达到预定阈值;
当检测所述计数值已经达到所述预定阈值时,从所述多个存储器块中选择第二存储器块以及将所述第一存储器块中存储的数据与所述第二存储器块中存储的数据交换,其中所述第二存储器块的计数值小于所述第一存储器块的所述计数值;以及
生成相应的交换信息。
CN201610232779.9A 2016-04-15 2016-04-15 用于减少存储器设备上的压力的系统和方法 Active CN107301015B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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