CN101137970A - 快闪存储器系统中内务处理操作的调度 - Google Patents

快闪存储器系统中内务处理操作的调度 Download PDF

Info

Publication number
CN101137970A
CN101137970A CNA2006800058966A CN200680005896A CN101137970A CN 101137970 A CN101137970 A CN 101137970A CN A2006800058966 A CNA2006800058966 A CN A2006800058966A CN 200680005896 A CN200680005896 A CN 200680005896A CN 101137970 A CN101137970 A CN 101137970A
Authority
CN
China
Prior art keywords
data
housekeeping operations
block
blocks
time
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
CNA2006800058966A
Other languages
English (en)
Other versions
CN100547570C (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.)
Delphi International Operations Luxembourg SARL
Original Assignee
SanDisk Corp
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 SanDisk Corp filed Critical SanDisk Corp
Publication of CN101137970A publication Critical patent/CN101137970A/zh
Application granted granted Critical
Publication of CN100547570C publication Critical patent/CN100547570C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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

Abstract

操作一种例如快闪EEPROM系统的可再编程非易失性存储器系统以在执行主机命令期间在前台执行存储器系统内务处理操作,所述可再编程非易失性存储器的存储器单元分组为可同时擦除的单元的区块,其中所述内务处理操作与所述主机命令的执行无关。一个或一个以上所述内务处理操作与所述主机命令的执行两者均在为执行所述特定命令而建立的时间预算内执行。一个此类命令是将正接收的数据写入到所述存储器。一个此类内务处理操作是调平所述单独区块通过反复擦除和再编程而积聚的损耗。

Description

快闪存储器系统中内务处理操作的调度
技术领域
本发明大体上涉及非易失性快闪存储器系统的操作,且更明确地说,涉及在此类存储器系统中实行例如损耗调平的内务处理操作的技术。本文参考的所有专利、专利申请案、论文和其它出版物为了所有目的而全文以引用的方式并入本文中。
背景技术
存在很多现今正在使用的商业上成功的非易失性存储器产品,尤其是以小外形尺寸可移除卡或嵌入式模块的形式,其使用形成于一个或一个以上集成电路芯片上的快闪EEPROM(电子可擦除可编程只读存储器)单元阵列。通常但不必须处于单独集成电路芯片上的存储器控制器包含在存储器系统中以与主机介接(所述系统连接到所述主机),且控制所述卡内的所述存储器阵列的操作。这种控制器通常包括微处理器、某一非易失性只读存储器(ROM)、易失性随机存取存储器(RAM)和一个或一个以上特殊电路,例如在编程和读取数据期间在数据通过控制器时根据数据计算出错误校正码(ECC)的电路。其它存储卡和嵌入式模块不包含此控制器,而是其所连接到的主机包含提供控制器功能的软件。采取卡形式的存储器系统包含与主机外部的插口相配的连接器。另一方面,不希望移除嵌入在主机内的存储器系统。
包含控制器的某些市售存储卡在以下商标下出售:CompactFlash(CF)、MultiMedia(MMC)、Secure Digital(SD)、MiniSD、MicroSD和TransFlash。不包含控制器的存储器系统的实例是SmartMedia卡。这些卡全部可从作为本文受让人的SanDisk公司购得。这些卡的每一者均具有与其可移除地连接到的主机装置的特定机械和电接口。另一类小型手持式快闪存储器装置包含通过标准通用串行总线(USB)连接器与主机介接的快闪驱动器。SanDisk公司在其Cruzer商标下提供此类装置。用于卡的主机包含个人计算机、笔记本计算机、个人数字助理(PDA)、各种数据通信装置、数码相机、蜂窝式电话、便携式音频播放器、汽车语音系统和相似类型的设备。快闪驱动器与任何具有USB插口的主机(例如,个人计算机和笔记本计算机)一起工作。
有两种通用存储器单元阵列架构获得了商业应用,NOR与NAND。在典型NOR阵列中,存储器单元连接于沿列方向延伸的相邻位线源极与漏极扩散之间,其中控制栅极连接到沿单元行延伸的字线。存储器单元包括定位于源极与漏极之间的单元沟道区域的至少一部分上方的至少一个存储元件。存储元件上的经过编程的电荷电平因此控制所述单元的操作特征,所述单元随后可通过将适当电压施加到寻址的存储器单元而被读取。第5,070,032、5,095,344、5,313,421、5,315,541、5,343,063、5,661,053和6,222,762号美国专利中给出所述单元的实例、其在存储器系统中的用途及其制造方法。
NAND阵列利用两个以上存储器单元(例如16个或32个)的串联串,其连同一个或一个以上选择晶体管一起连接在单独位线与参考电位之间以形成单元列。字线延伸横跨大量这些列内的单元。通过致使串中的剩余单元被较难地开启,在编程期间读取并验证列内的单独单元,以便使流过串的电流视存储于寻址单元中的电荷的电平而定。NAND架构阵列及其作为存储器系统的一部分的操作的实例参阅第5,570,315、5,774,397、6,046,935、6,373,746、6,456,528、6,522,580、6,771,536和6,781,877号美国专利。
如前述参考专利中所论述的当前快闪EEPROM阵列的电荷存储元件大多数通常为导电浮动栅极,通常由传导掺杂的多晶硅材料形成。可用于快闪EEPROM系统的替代类型的存储器单元利用非传导介电材料替代传导浮动栅极,从而以非易失性方式来存储电荷。由氧化硅、氮化硅和氧化硅形成的三层电介质(ONO)夹于传导控制栅极与存储器单元沟道上方的半导衬底的表面之间。通过将电子从所述单元沟道注入所述氮化物中来编程所述单元,在氮化物中所述电子被捕集并存储于有限区域中,且通过将热空穴注入所述氮化物中来擦除所述单元。Harari等人的第US 2003/0109093号美国专利申请公开案中描述了使用介电存储元件的若干特定单元结构和阵列。
如在大多数全集成电路应用中,快闪EEPROM存储器单元阵列中也存在缩减实施某一集成电路功能所需的硅衬底面积的压力。不断需要增加可存储于硅衬底的给定面积内的数字数据的量,以便增加给定尺寸存储卡和其它类型封装的存储容量,或既增加容量又减小尺寸。一种增加数据的存储密度的方式是每一存储器单元和/或每一存储单位或元件存储一个以上数据位。这通过将存储元件电荷电平电压范围的窗口划分为两种以上状态而实现。使用四种所述状态允许每一单元存储两个数据位,使用八种状态则每存储元件存储三个数据位,依此类推。第5,043,940和5,172,338号美国专利描述了使用浮动栅极的多状态快闪EEPROM结构及其操作,且前述第US 2003/0109093号美国专利申请公开案中描述使用介电浮动栅极的结构。多状态存储器单元阵列的选定部分因多种原因也可以第5,930,167和6,456,528号美国专利中所描述的方式在两种状态(二元)下操作。
典型快闪EEPROM阵列的存储器单元划分为被一起擦除的离散的单元区块。也就是说,所述区块是擦除单位,即可同时擦除的最小数目的单元。每一区块通常存储一个或一个以上页的数据,所述页是编程和读取的最小单位,但可在不同子阵列或平面中并行编程或读取一个以上页。每一页通常存储一个或一个以上扇区的数据,所述扇区的尺寸通过主机系统界定。实例扇区包括512字节的用户数据(遵循与磁盘驱动器建立的标准),加上某一数目的字节的关于所述用户数据和/或存储用户数据的区块的额外开销信息。所述存储器在每一区块内通常配置有16、32或更多页,且每一页存储一个或仅少数几个主机扇区的数据。
为了在将用户数据编程到存储器阵列中和从其中读取用户数据期间提高并行程度,通常将阵列划分为多个子阵列(一般称作平面),其含有其自身的数据寄存器和其它电路以允许并行操作,以便可同时将数据扇区编程到若干或所有平面的每一者中或从若干或所有平面的每一者读取数据扇区。单一集成电路上的阵列可物理划分为平面,或每一平面可由单独的一个或一个以上集成电路芯片形成。第5,798,968和5,890,192号美国专利中描述了所述存储器实施方案的实例。
为了进一步有效地管理存储器,可将区块链接在一起以形成虚拟区块或元区块(metablock)。也就是说,将每一元区块界定成包括来自每一平面的一个区块。第6,763,424号美国专利中描述了所述元区块的用途。通过从逻辑区块地址进行转译,将元区块的物理地址建立为编程和读取数据的目的地。类似地,元区块的所有区块被一起擦除。与此种大区块和/或元区块一起操作的存储器系统中的控制器执行许多功能,包括从主机接收的逻辑区块地址(LBA)与存储器单元阵列内的物理区块编号(PBN)之间的转译。区块内的各个页通常通过区块地址内的偏移来识别。地址转译通常涉及使用逻辑区块编号(LBN)和逻辑页的中间项。
通常操作具有保持于已擦除区块集区中的某些额外区块的大区块或元区块系统。当少于区块的容量的一个或一个以上数据页正被更新时,通常将已更新页从所述集区写入到已擦除区块,且随后将未改变的页的数据从原始区块复制到擦除集区区块。前述第6,763,424号美国专利中描述了此技术的变化形式。随着时间的过去,由于主机数据文件正被重新写入和更新,所以许多区块可以其相对较少数目的页中含有有效数据而其余页中含有不再为当前的数据的页而结束。为了能够有效地使用阵列的数据存储容量,时常从多个区块中的分段将有效数据的逻辑相关页集合在一起,并一起合并为较少数目的区块。此处理通常称为“垃圾收集”。
当区块中有显著量的数据变得过时时,也可压缩单一区块或元区块内的数据。这涉及将区块的剩余有效数据复制到空白的已擦除区块中,并接着擦除原始区块。复制区块因而含有来自原始区块的有效数据加上先前由过时数据占据的已擦除存储容量。有效数据通常也在复制区块内以逻辑次序排列,借此使数据的读取较容易。
用于存储器系统的操作的控制数据通常存储在一个或一个以上保留的区块或元区块中。此控制数据包含例如编程和擦除电压的操作参数、文件目录信息及区块分配信息。将在给定时间用于控制器操作存储器系统所必需的那样多的信息也存储在RAM中,并接着当更新时写回到快闪存储器。控制数据的频繁更新导致保留区块的频繁压缩和/或垃圾收集。如果存在多个保留区块,那么可同时触发两个或两个以上保留区块的垃圾收集。为了避免这种耗时的操作,在必要之前且在保留区块可由主机接纳时启始保留区块的自发垃圾收集。2004年8月13日申请的第10/917,725号美国专利申请案中描述了这种抢先数据再定位技术。也可在用户数据更新区块几乎变满时对其执行垃圾收集,而不是等待直到其完全变满为止且借此触发在主机提供的数据可写入到存储器中之前即刻必须完成的垃圾收集操作。
在某些存储器系统中,物理存储器单元也分组为两个或两个以上区域。区域可为物理存储器或存储器系统的指定范围的逻辑区块地址被映射到达的任一分割子集。举例来说,能够存储64兆字节的数据的存储器系统可分割为四个区域,其中每一区域存储16兆字节的数据。逻辑区块地址的范围随后也划分为四组,向所述四个区域中的每一者的物理区块指派一个组。在典型实施方案中,抑制逻辑区块地址,以便每一者的数据决不被写入到逻辑区块地址被映射到达的单一物理区域外。在划分为多个平面(子阵列)的存储器单元阵列中(其中每一平面具有其自身的寻址、编程和读取电路),每一区域优选包括来自多个平面的区块,通常包括来自所述平面的每一者的相同数目的区块。区域主要用于简化地址管理(例如,逻辑到物理的转译),从而导致转译表较小、保持这些表所需的RAM存储空间较少且用以寻址存储器的当前活动区域的存取时间较快,但由于其限制性性质,可能导致损耗调平达不到最佳水平。
各个快闪EEPROM单元在电荷存储元件或单位中存储表示一个或一个以上数据位的一定量的电荷。存储元件的电荷电平控制其存储器单元的阈值电压(通常称为VT),其用作读取所述单元的存储状态的基础。阈值电压窗口通常划分为许多范围,存储器单元的两个或两个以上存储状态中的每一者具有一个范围。这些范围由包括允许确定各个单元的存储状态的标称感测电平的安全带分隔。这些存储电平由于干扰在邻近或其它相关存储器单元、页或区块中执行的编程、读取或擦除操作的电荷而确实偏移。因此错误校正码(ECC)通常由控制器计算,并与正被编程的主机数据一起存储,且在读取期间用于验证数据并在必要时执行某水平的数据校正。并且,在干扰操作致使电荷电平完全偏移出其被界定的范围并因此导致读取错误数据之前,偏移的电荷电平可时常被恢复回到其状态范围的中心。第5,532,962和5,909,449号美国专利以及2003年10月3日申请的第10/678,345号美国专利申请案中描述了此处理,称为数据刷新或擦洗(scrub)。
快闪存储器单元的响应性通常作为单元被擦除和再编程的次数的函数而随着时间变化。这被认为是每一擦除和/或再编程操作期间截留在存储元件介电层中的少量电荷的缘故,所述电荷随着时间而积聚。这通常导致存储器单元变得不太可靠,且随着存储器单元老化可能需要较高电压来进行擦除和编程。可在其中对存储器状态进行编程的有效阈值电压窗口也可由于电荷保留的缘故而减小。举例来说,第5,268,870号美国专利中描述了这一情况。结果是存储器单元的有效寿命有限;也就是说,存储器单元区块在被映射出系统之前仅经受预设定的数目的擦除和再编程循环。快闪存储器区块理想地经受的循环的数目取决于存储器单元的特定结构、用于存储状态的阈值窗口的量、阈值窗口通常随着每一单元的存储状态的数目增加而增加的程度。视这些和其它因素而定,寿命循环的数目可低达10,000且高达100,000乃至几十万。
如果认为需要跟踪单独区块的存储器单元所经历的循环的数目,那么可为每一区块或为一群组区块中的每一者保持计数,每当区块被擦除时所述计数递增,如上述第5,268,870号美国专利中所述。此计数可存储在每一区块中(如所述专利中所描述)或连同其它额外开销信息一起存储在单独区块中(如第6,426,893号美国专利中所述)。除了在区块达到其最大寿命循环计数时将区块映射出系统的用途外,计数还可在早期用于随着存储器单元区块老化而控制擦除和编程参数。且不同于保持循环数目的准确计数,第6,345,001号美国专利描述一种当发生随机或伪随机事件时更新循环数目的压缩计数的技术。
循环计数还可用于在系统的存储器单元区块达到其寿命终止之前校平所述存储器单元区块的使用。第6,230,233号美国专利、第US 2004/0083335号美国专利申请公开案中,以及2002年10月28日申请的以下美国专利申请案中描述了若干种不同的损耗调平技术:第10/281,739号(现公开为WO 2004/040578)、第10/281,823号(现公开为第US2004/0177212号)、第10/281,670号(现公开为WO 2004/040585)和第10/281,824号(现公开为WO 2004/040459)。损耗调平的主要优点是防止某些区块达到其最大循环计数且因此必须映射出系统,而其它区块几乎没有被使用。通过在系统的所有区块上适当均匀地分布循环数目,可使存储器的整个容量以良好的性能特性维持延长的周期。也可在不维持存储器区块循环计数的情况下执行损耗调平,如2004年11月15日申请的第10/990,189号美国申请案中所述。
在损耗调平的另一方法中,通过使逻辑-物理区块地址转译一次递增一个或几个区块而在存储器单元阵列上逐渐迁移区块的物理区之间的边界。第2004/0083335号美国专利申请公开案中描述了这一情况。
少数存储器单元区块比存储器系统的其它存储器单元区块经受远为更大数目的擦除和再编程循环的主要原因是,主机在相对较少的逻辑区块地址中连续再写入数据扇区。这发生在主机连续地更新存储在存储器中的内务处理数据的某些扇区(例如,文件分配表(FAT)等)的存储器系统的许多应用中。主机的特定用途也可导致少数逻辑区块比其它逻辑区块更频繁地以用户数据进行再写入。响应于从主机接收将数据写入到指定的逻辑区块地址的命令,将数据写入到被擦除区块的集区的几个区块中的一者。也就是说,不是将数据再写入相同逻辑区块地址的原始数据所驻存的相同物理区块中,而是将逻辑区块地址再映射到被擦除区块集区的区块中。接着,立即或作为稍后垃圾收集操作的一部分而擦除含有原始的且现在无效的数据的区块,并接着将所述区块放置到被擦除区块集区中。当仅少数逻辑区块地址中的数据比其它区块更新得多得多时,结果是系统的相对较少的物理区块以较高速率循环。当然需要在存储器系统内提供当遭遇这种非常不均匀的逻辑区块存取时校平对物理区块的损耗的能力,原因上文已经给出。
发明内容
在执行从与存储器系统可操作地连接的主机系统接收的命令期间,且在为执行所述命令而设定的时间预算内,实行内务处理操作。除了使存储器系统能够执行所述命令所必需的任何内务处理操作外,还可执行与所接收的命令的执行不直接相关的或所接收的命令的执行不需要的内务处理操作。这些不相关的内务处理操作不需要在每次执行命令时执行,而是可限于仅在某些命令执行期间实行。举例来说,对需要花费过多时间完成的不相关内务处理操作的执行可等待接收到命令,此时必要的时间因为命令相关内务处理操作对于执行所述命令来说并非必需而变得可用。通过作为主机命令的执行的一部分而执行内务处理功能,关于主机是否将允许完成内务处理操作不存在不确定性,只要内务处理操作在主机所设定的已知时间预算内完成即可。
不相关内务处理操作的实例包含损耗调平、擦洗、数据压缩和垃圾收集(包含抢先垃圾收集)。除了垃圾收集或执行命令所必需的任何其它内务处理操作外,存储器系统还可实行执行命令不必需的内务处理操作。举例来说,损耗调平对于执行写入命令来说是不必需的,但在此命令的执行期间当预算中有时间这样做时便利地实行所述损耗调平。时间预算通过用于执行例如数据写入的命令的主机超时或类似情形建立,或通过存储器系统很可能被置于的应用中写入或读取期间某一最小所需数据转移速率的存在而建立。在没有足够的时间执行多个内务处理操作的一个特定实例中,在不必要进行垃圾收集的写入命令执行期间执行损耗调平。
本发明的额外方面、优点和特征包含在对本发明示范性实例的以下描述中,所述描述内容应与附图结合来理解。
附图说明
图1A和1B分别是一起操作的非易失性存储器和主机系统的方框图;
图2说明图1A的存储器阵列的第一实例组织;
图3展示具有如存储于图1A的存储器阵列中的额外开销数据的实例主机数据扇区;
图4说明图1A的存储器阵列的第二实例组织;
图5说明图1A的存储器阵列的第三实例组织;
图6展示图1A的存储器阵列的所述第三实例组织的扩展;
图7是具有一种特定配置的图1A的阵列的一组存储器单元的电路图;
图8说明图1A的存储器阵列的实例组织和用途;
图9是根据第一实施例提供存储器系统执行写入命令的实例操作的时序图;
图10和11说明以图9的时序进行的存储器系统操作的不同方面;
图12是展示图9-11说明的写入操作的一次特定执行的操作流程图;
图13A、13B和13C是说明图12说明的损耗调平操作的不同时序的曲线图;
图14是根据第二实施例展示存储器系统的响应于写入命令的操作的流程图,其展示为图12的流程图的修改形式;
图15是图14的流程图中说明的操作的实例执行的时序图;
图16说明以图15的时序进行的存储器系统操作的一个方面;
图17是展示存储器系统的操作的时序图,其为图15的时序图的替代形式;
图18是根据第三实施例说明写入命令执行期间存储器系统的操作的流程图;
图19是展示根据图18的流程图的存储器系统的实例操作的时序图;
图20和21是说明存储器系统操作的另外的实施例的时序图;和
图22是说明在读取命令执行期间利用本发明各方面的时序图。
具体实施方式
存储器架构及其操作
首先参看图1A,快闪存储器包括存储器单元阵列和控制器。在所示的实例中,两个集成电路装置(芯片)11和13包括存储器单元阵列15和多个逻辑电路17。所述逻辑电路17经由数据、命令和状态电路与单独芯片上的控制器19介接,且还向阵列13提供寻址、数据转移与感测和其它支持。视所提供的存储容量而定,若干存储器阵列芯片可为一个到很多个。或者,可将所述控制器和部分或整个阵列组合到单一集成电路芯片上,但这目前并非经济的选择。依赖于主机来提供控制器功能的快闪存储器装置含有的大约只是存储器集成电路装置11和13。
典型的控制器19包括微处理器21、主要存储固件的只读存储器(ROM)23和主要用于临时存储被写入到存储器芯片11和13或从存储器芯片11和13读取的用户数据的缓冲存储器(RAM)25。电路27与存储器阵列芯片介接,且电路29经由连接31与主机介接。在此实例中通过用专门用于计算ECC代码的电路33来计算ECC而确定数据的完整性。在用户数据正被从主机转移到快闪存储器阵列以供存储时,所述电路根据所述数据计算出ECC,且将所述代码存储于存储器中。当稍后从所述存储器读取用户数据时,再次使用户数据经过电路33,电路33通过相同的算法计算ECC并将所述代码与使用数据计算并存储的代码进行比较。如果其相当(compare),那么确定数据的完整性。如果其不同,那么视所利用的特定ECC算法而定,可识别并校正那些错误位(多达所述算法所支持的数目)。
图1A的存储器的连接31与主机系统的连接31′配对,图1B中给出其实例。图1A的所述主机与所述存储器之间的数据转移经由接口电路35。典型的主机还包括微处理器37、用于存储固件代码的ROM39,和RAM41。视特定主机系统而定,其它电路和子系统43通常包括高容量磁性数据存储磁盘驱动器,用于键盘、监视器和类似物的接口电路。所述主机的某些实例包括台式计算机、膝上型计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、MP3和其它音频播放器、数码相机、视频摄像机、电子游戏机、无线和有线电话装置、答录机、语音记录器、网络路由器和其它装置。
图1A的存储器可实施为含有控制器及其所有存储器阵列电路装置的小型封闭式存储卡或快闪驱动器,其具有可与图1B的主机可移除地连接的形式。也就是说,配对连接31和31'允许将卡分离且移动到另一主机,或通过将另一卡连接到所述主机而进行替换。或者,可将所述存储器阵列装置11和13封闭于单独卡中,所述单独卡可与含有控制器和连接31的另一卡电连接以及机械连接。作为另一选择,可将图1A的存储器嵌入图1B的主机内,其中永久地产生连接31和31′。在此情况下,所述存储器通常与其它组件一起包含于所述主机的外壳内。
本文的发明技术可实施在具有各种特定配置的系统中,图2-6中给出其实例。图2说明存储器阵列的一部分,其中将存储器单元分组为多个区块,每一区块中的单元可作为单一擦除操作的一部分而通常同时被一起擦除。区块是最小擦除单位。
图2的各个存储器单元区块的大小可变化,但一种商业实用形式在单个区块中包括数据的单一扇区。图3中说明所述数据扇区的内容。用户数据51通常为512字节。除用户数据51以外是额外开销数据,其包括根据用户数据计算出的ECC53、关于扇区数据和/或在其中编程扇区的区块的参数55,和根据所述参数55计算出的ECC57,以及可能包括的任何其它额外开销数据。或者,可根据全部的用户数据51和参数55计算出单一ECC。
参数55可包含与区块所经历的编程/擦除循环的数目有关的数量,此数量在每一循环或某数目的循环之后更新。当此经历数量用于损耗调平算法中时,逻辑区块地址有规律地再映射到不同的物理区块地址以便校平所有区块的使用(损耗)。经历数量的另一用途是,将电压及编程、读取和/或擦除的其它参数作为不同区块经历的循环数目的函数而改变。
参数55还可包含指派给存储器单元的每一存储状态的位值的指示(称为其“旋转”)。这在损耗调平方面也具有有益影响。还可在所述参数55中包括指示状况或状态的一个或一个以上旗标。用于编程和/或擦除区块的电压电平的指示也可存储于所述参数55内,这些电压随区块经历的循环的数目和其它因素的改变而更新。所述参数55的其它实例包括区块内任何缺陷单元的标识、映射到此物理区块的区块的逻辑地址,和在原始区块有缺陷的情况下任何替代区块的地址。用于任何存储器系统中的参数55的特定组合将根据设计而变化。并且,可将某些或所有额外开销数据存储于专用于所述功能的区块中,而非存储于含有用户数据或与额外开销数据有关的区块中。
与图2的单一数据扇区区块不同的是图4的多扇区区块。仍为最小擦除单位的实例区块59含有四个页0-3,每一页为最小编程单位。数据的一个或一个以上主机扇区通常与至少包括根据所述扇区的数据计算出的ECC的额外开销数据一起存储于每一页中,且可具有图3的数据扇区的形式。
重新写入整个区块的数据通常涉及将新数据编程到擦除区块集区的已擦除区块中,原始区块随后被擦除并放置于所述擦除集区中。当更新少于区块的所有页的数据时,所述更新的数据通常存储于来自擦除的区块集区的已擦除区块的页中,并将剩余未改变的页中的数据从原始区块复制到新区块中。随后擦除所述原始区块。或者,可将新数据写入到与数据正被更新的区块相关联的更新区块,且使所述更新区块尽可能长时间地保持开启以接收对区块的任何进一步更新。当必须关闭更新区块时,所述更新区块和原始区块中的有效数据在垃圾收集操作中复制到单一复制区块中。这些大区块管理技术通常涉及将经更新的数据写入到另一区块的页中,而不从所述原始区块移动数据或将其擦除。这导致多个数据页具有相同逻辑地址。数据的最近页通过某一便利的技术(例如,记录为扇区或页额外开销数据中的字段的编程时间)来识别。
图5中说明另一多扇区区块布置。此处,将整个存储器单元阵列物理上划分为两个或两个以上平面,说明四个平面0-3。每一平面是存储器单元的子阵列,其具有其自身的数据寄存器、读出放大器、寻址解码器和类似物,以便能够很大程度上独立于其它平面而操作。可在单一集成电路装置上或多个装置上提供所有平面。图5的实例系统中的每一区块含有16页P0-P15,每一页具有一个、两个或两个以上主机数据扇区和一些额外开销数据的容量。所述平面可形成在单一集成电路芯片上,或在多个芯片上。举例来说,如果是形成在多个芯片上,那么平面中有两者可形成在一个芯片上,且其它两者形成在另一芯片上。或者,一个芯片上的存储器单元可提供存储器平面中的一者,四个此类芯片一起使用。
图6中说明又一存储器单元布置。每一平面含有大量单元的区块。为了提高操作的并行程度,将不同平面内的区块逻辑上链接以形成元区块。图6中说明一个所述元区块,其由平面0的区块3、平面1的区块1、平面2的区块1和平面3的区块2形成。每一元区块为逻辑上可寻址的,且存储器控制器指派并跟踪形成各个元区块的区块。主机系统优选地以等于所述各个元区块的容量的数据单位与存储器系统介接。图6的所述逻辑数据区块61例如由逻辑区块地址(LBA)识别,所述逻辑区块地址由控制器映射成构成所述元区块的区块的物理区块编号(PBN)。所述元区块的所有区块被一起擦除,且来自每一区块的页优选地被同时编程和读取。
存在许多可用于实施上文参看图2-6描述的存储器的不同存储器阵列架构、配置和特定单元结构。图7中展示NAND型存储器阵列的一个区块。大量列定向的串联连接的存储器单元串连接于电压VSS的共用源65与位线BL0-BLN中的一者之间,位线BL0-BLN又与含有地址解码器、驱动器、读取读出放大器和类似物的电路67连接。具体来说,一个所述串含有在串的相对末端处的选择晶体管77与79之间串联连接的电荷存储晶体管70、71…72和74。在此实例中,每一串含有16个存储晶体管,但其它数目是可能的。字线WL0-WL15延伸横越每一串的一个存储晶体管,且连接到含有地址解码器和所述字线的电压源驱动器的电路81。线83和84上的电压控制将区块中所有串经由其选择晶体管一起连接到电压源65和/或位线BL0-BLN。数据和地址来自存储器控制器。
区块的每一行电荷存储晶体管(存储器单元)含有一个或一个以上页,每一页的数据被一起编程和读取。将适当电压施加到字线(WL)以便编程或读取沿着所述字线的存储器单元的数据。还将适当电压施加到其与相关的单元连接的位线(BL)。图7的电路展示沿着行的所有单元被一起编程和读取,但通常沿着行每隔一个单元作为一单位进行编程和读取。在此情况下,使用两组选择晶体管(未图示)以可操作地一次与每隔一个单元连接,每隔一个单元形成一页。选择施加到剩余字线的电压以使其各自存储晶体管传导。在编程或读取一行中的存储器单元的过程中,未选择的行上先前存储的电荷电平可能会受到干扰,因为施加到位线的电压可能影响连接到所述位线的串中的所有单元。
图8大体上说明上述类型的存储器系统的一个特定架构及其操作。为了便于阐释而大大简化的存储器单元阵列213依据所述架构而含有区块或元区块(PBN)P1-Pm。存储器系统从主机接收的数据的逻辑地址一起被分组为具有单独逻辑区块地址(LBA)的逻辑群组或区块L1-Ln。也就是说,存储器系统的整个连续逻辑地址空间划分为多个地址群组。逻辑群组L1-Ln的每一者所寻址的数据的量与物理区块或元区块的每一者的存储容量相同。存储器系统控制器包含功能215,所述功能将群组L1-Ln的每一者的逻辑地址映射到物理区块P1-Pm的不同一者中。
所包含的存储器的物理区块比存储器系统地址空间中的逻辑群组多。在图8的实例中,包含四个此类额外物理区块。出于所提供的用于说明本发明的应用的此简化描述的目的,在数据写入期间使用额外区块中的两者作为数据更新区块,且另外两个额外区块组成已擦除区块集区。通常出于各种目的而包含其它额外区块,万一区块变得有缺陷,则一个额外区块作为冗余。通常使用一个或一个以上其它区块来存储由存储器系统控制器使用以操作存储器的控制数据。通常不为任何特定目的而指派特定区块。事实上,映射215有规律地改变各个逻辑群组的数据所映射到的物理区块,所述物理区块在区块P1-Pm的任何区块之中。在存储器系统的操作期间,物理区块中的那些充当更新和已擦除集区区块的物理区块也在所有物理区块P1-Pm中迁移。物理区块中的那些当前指派为更新和已擦除集区区块的物理区块的身份由控制器保存。
现将描述将新数据写入到图8所表示的存储器系统中。假定逻辑群组L4的数据映射到物理区块P(m-2)中。还假定将区块P2指定为更新区块且被完全擦除并能够空闲使用。在此情况下,当主机命令将数据写入到群组L4内的一逻辑地址或多个连续逻辑地址时,将所述数据写入到更新区块P2。其后,使存储在区块P(m-2)中具有与新数据相同的逻辑地址的数据过时并由存储在更新区块L4中的新数据代替。
在稍后的时间,可将这些数据从P(m-2)和P2区块合并(垃圾收集)到单一物理区块中。这通过将来自区块P(m-2)的剩余有效数据和来自更新区块P2的新数据写入到已擦除区块集区中的另一区块(例如,区块P5)中而完成。接着擦除区块P(m-2)和P2以便随后充当更新或擦除集区区块。或者,可将原始区块P(m-2)中的剩余有效数据连同新数据一起写入到区块P2中(如果可能),且接着擦除区块P(m-2)。
为了使给定数据存储容量所必需的存储器阵列的大小最小化,将额外区块的数目保持最小。存储器系统控制器通常允许一次存在有限数目(此实例中为两个)的更新区块。此外,通常尽可能长时间地延缓将来自更新区块的数据与来自原始物理区块的剩余有效数据合并的垃圾收集,因为其它新数据随后可由主机写入到更新区块所关联的物理区块。所述同一更新区块接着接收额外数据。由于垃圾收集花费时间且当另一操作因此而延迟时可能不利地影响存储器系统的性能,所以并不在每次可执行垃圾收集时均执行垃圾收集。尤其当各个区块的数据存储容量非常大时(趋势是这样),将来自两个区块的数据复制到另一区块中可能花费大量时间。因此,当主机命令写入数据时,经常会发生没有空闲或空的更新区块可用于接收所述数据的情况。接着,响应于写入命令,对现有的更新区块进行垃圾收集,以便其后能够从主机接收新数据。已达到所述垃圾收集可延迟多长时间的限度。
第一损耗调平实施例
图9说明当两个更新区块均不空闲且被擦除且与更新区块的任一者均不相关联的区块的数据正被更新时存储器系统的操作。接着必须对更新区块的一者进行垃圾收集以使空白的已擦除更新区块可用于从主机接收新数据。在图9的实例中,写入两个扇区或其它单位1和2的数据。主机写入命令包含数据转移的长度(此情况下为两个单位),之后是所述数据。如图9的时序图的第二条线中所示,在接收到命令之后(图9的第一条线)立即将这两个数据单位紧密连续地转移到存储器系统控制器缓冲器,因为未维持其间的存储器系统占用信号(图9的第三条线)。当断言时,存储器系统占用信号促使主机暂停其与存储器系统的通信。
时间t4与t5之间存储器系统对占用信号的断言(如图所示)允许存储器系统执行垃圾收集(当必须执行写入命令时),且接着写入所接收的数据。当存储器系统的占用信号有效时,主机不将另一命令或任何另外的数据发送到存储器系统。如图9的最后的线中所示,这创建了进行垃圾收集(当必须创建新的更新区块时)的时间。控制器使用由数据单位1和2的转移所花费的时间来开始垃圾收集,但所述时间并不足以完成垃圾收集。因此,存储器系统拖延主机,直到垃圾收集和向更新区块中进行的数据写入完成为止。完成写入数据之后在时间t5结束占用信号,接着允许主机与存储器系统进一步通信。
然而,存储器系统可断言的占用信号的长度有限,因为大多数主机允许存储器系统用有限的固定时间量在转移数据单位之后执行写入命令。如果占用信号保持有效的时间长于所述固定时间量,那么一些主机可向数据重复所述命令,且其它主机可完全中止所述过程。存储器系统以不超过主机的此超时周期(存储器经设计以凭藉此超时周期运作)的方式操作。一个常见的主机超时周期为250毫秒。在任何情况下,可通过存储器系统对占用信号的断言来延迟主机与和主机连接的存储器系统之间的命令和数据的转移,因此需要将其使用限于延迟对于存储器系统的整体良好性能较为重要的情形。
除了主机超时周期外,在许多应用中,存储器系统的操作还受到必须维持的最小数据流动速率约束。这可能要求存储器系统断言的各个占用信号的持续时间少于主机超时所允许的最大值。
类似地,优选地调度损耗调平操作以避免过分影响其它操作和整体存储器系统性能。如上文提及的专利和申请案中所述,损耗调平包含改变逻辑群组向物理存储器区块的地址映射以便使损耗(擦除循环的数目)均匀。举例来说,将一定范围的被不断地再写入的逻辑地址从一个物理区块(其以高于平均值的速率循环)重定向到具有较低循环历史的另一物理区块中。存在许多损耗调平算法,其中一些算法监测逻辑群组再写入或单独物理区块使用的循环计数,而其它算法不使用这些计数,而是以其它方式在存储器区块上分配损耗。
通常,损耗调平操作还涉及将数据从一个区块转移(交换)到另一区块,且这是操作中最耗时的部分。存储器系统控制器时常启始损耗调平交换以校正存储器区块的使用的积增的不平衡。损耗调平的目的是,通过避免一个或几个区块被循环的次数超过存储器的有用寿命来延长存储器的寿命。几个且有时仅一个存储器区块丧失用途便可致使存储器系统不能操作。
损耗调平通常在后台执行。也就是说,区块的再映射和任何数据转移在主机闲置时发生。这具有的优点是,不会不利地影响存储器系统的性能,但缺点是不会防止主机在存储器系统正进行损耗调平时发送命令,且甚至可在损耗调平交换期间使存储器系统断电。因此,在本文描述的实例中,损耗调平时常作为数据写入的一部分在前台执行。
再次参看图9,可在垃圾收集对于执行写入命令来说不必要时改为执行损耗调平来代替垃圾收集。由于垃圾收集和损耗调平两者均涉及转移区块的数据,所以这两个操作可花费类似的时间量。当然,如上所述,在有必要进行垃圾收集以获得更新区块以便能够执行当前的写入命令时,将进行垃圾收集。但是,如果存在可用于新数据的更新区块且没有必要进行垃圾收集,那么可改为使用所述时间来执行损耗调平。在一种特定技术中,损耗调平算法指示每个需要损耗调平交换的时间,且所述交换在没有必要进行垃圾收集的下一写入操作期间发生。
图10说明在图8的存储器系统中以图9的时序进行的垃圾收集和数据写入的实例。存在两个更新区块1和2,但当两者都不可用于写入当前数据单位时,其中一个更新区块关闭,且来自已擦除区块集区的另一区块开启以便接收数据。这是因为此实例中仅允许两个更新区块。如果更新区块1通过仅接收共同逻辑群组内的数据更新而链接到区块A,那么更新区块1无法用于存储某一其它逻辑群组的数据。更新区块2可具有相同限制。因此,更新区块1通过图10说明的垃圾收集操作而关闭,其中区块A及其更新区块1的每一者中的有效数据复制到已擦除区块B。接着擦除区块A和更新区块1,借此再提供两个擦除集区区块。接着可开启其中之一作为新的第二更新区块(标注为更新区块3),接着将来自存储器控制器缓冲器的数据存储在所述新的第二更新区块中。
然而,在图8的存储器系统中执行写入命令并不始终要求进行垃圾收集。举例来说,当可将数据写入到开启的更新区块时,不必进行垃圾收集。在此情况下,当也存在用于在损耗调平操作期间使用的更新区块时,可执行损耗调平操作来代替垃圾收集,如图9所指示。图11进一步说明这一情况。在此实例中,损耗调平涉及将数据从源区块A复制到更新区块1。接着将来自控制器缓冲器的数据写入到更新区块2。接着源区块A被擦除并变为可用作擦除集区区块。图11的实例假定,存储在源区块A中的逻辑群组具有指派到所述逻辑群组的更新区块1。由于通常在使用中的系统更新区块非常少,所以这种情况不常见。较通常的情况是,需要开启新的更新区块,然后源区块A中的数据才可经受损耗调平交换。开启新的更新区块因而通常涉及关闭另一更新区块,这通常也包含垃圾收集。
图12的操作流程图说明根据图9的时序图的操作的特定实例,其中如果不需要为了实现写入操作而进行垃圾收集,那么改为执行损耗调平。响应于从主机接收写入命令(步骤225中),从主机接收待写入的数据(步骤227中),并将其存储在存储器系统控制器缓冲存储器中。在步骤229中,确定是否必须进行垃圾收集以释放更新区块用于当前的写入操作,且如果是,那么执行垃圾收集。步骤227和229的次序可颠倒,或如图9所示,可在一部分时间内同时实行。步骤229还包含在执行垃圾收集时递增垃圾收集计数器。所述计数器先前已被重置,且随后参考此计数来确定是否发生了垃圾收集。
在下一步骤231中,询问损耗调平交换是否待决。也就是说,确定是否存在启始损耗调平所必需的条件。如上文引用的专利和专利申请案所说明的,存在大量不同的损耗调平算法,不同的事件触发所述算法的运算。在本文描述的损耗调平实施例中,存储器区块或元区块的每N个擦除循环启始损耗调平。数目N可约为(例如)50。尽管如下文所述,这是起点,但当必须使损耗调平延缓相当长的时间周期时,所述确定变得稍许较复杂。此延缓可(例如)在大量连续的写入操作每一者均需要垃圾收集时发生。因而,不存在可用于损耗调平的存储器系统占用周期。这在(例如)存在不同逻辑群组中单一数据单位的大量连续写入时发生。
如果损耗调平待决,那么下一步骤233检查垃圾收集计数器的计数。如果计数不为零,那么这指示在步骤229中执行了垃圾收集操作,且因此,没有足够的时间也进行损耗调平。因此,跳过损耗调平。然而,如果计数为零,那么这指示没有发生垃圾收集,因此可能有足够的时间来进行损耗调平。但首先,通过步骤235,确定是否存在用于损耗调平的空闲或空的更新区块。如果没有,那么跳过损耗调平,因为将不会有足够的时间来进行获得更新区块所必需的垃圾收集而且还进行损耗调平。但如果存在可用的更新区块,那么在步骤237中根据上文指出的损耗调平专利和专利申请案的一者中所述的或下文描述的算法来执行损耗调平。一般来说,损耗调平操作包含为损耗调平开启可用的更新区块,将来自源区块的所有数据复制到开启的更新区块中,接着关闭更新区块,并更新地址转译表以将数据的逻辑群组从源区块再映射到更新区块(目的地区块)。
其后,在步骤239中,将接收到存储器系统控制器缓冲器中的数据写入到快闪存储器的区块或元区块中。接着,在步骤241中,将垃圾收集计数器设回零,以便在通过图12流程图的过程进行的下一数据写入期间使用。
现将描述启始损耗调平交换的实例方法。这是图12的步骤231的一部分。基本上,系统的区块每被擦除N次启始损耗调平。为了对此进行监测,在系统级维持区块的擦除数目的计数。但利用这种技术,不必为区块单独地维持擦除循环的数目的计数。
如图12的流程图中所反映,在给定的数据写入循环期间当没有足够的时间来进行待决的损耗调平交换时可能不执行所述待决的损耗调平交换。在图9和12的实例中,如果需要进行垃圾收集以便执行写入命令,那么将跳过待决的损耗调平交换。如果存储器系统经受单一扇区每一者的一连串数据写入,其中所述扇区具有不连续的逻辑地址,那么在每次写入期间执行垃圾收集。在这一情形以及其它情形下,延缓待决的损耗调平操作。是否发生此类型的延迟取决于使用存储器系统的方式。但如果所述延迟经常发生,那么损耗调平变得不太有效。优选地,损耗调平以系统区块擦除的有规律的时间间隔发生以便最为有益。
因此,当损耗调平已延缓任何较长时间时,需要使损耗调平交换之间的时间间隔不同于额定的N区块擦除时间间隔。维持已错过的损耗调平操作的数目,且其后,可单独地致使所述数目的损耗调平操作以短于N区块擦除的时间间隔待决。图13A、13B和13C的曲线展示当损耗调平已延缓的时间明显超过N个擦除循环之后进行“加紧弥补(catchup)”的三种不同方式。这些曲线的水平轴展示总计区块系统擦除计数,每隔N个计数具有一垂直标记。垂直轴指示自最近的损耗调平操作之后系统擦除循环的数目(WL计数)。图13A、13B和13C每一者指示“可进行交换”以注释在这些实例中损耗调平交换可发生的周期。名义上,当WL计数的数目增加到N时(曲线上的虚线),将发生损耗调平,且WL计数返回零。举例来说,图13A的271处展示这一情况。
在图13A的擦除计数273处,当WL计数已达到N时,不发生所调度的损耗调平。在更多的擦除循环(约N的一半)内不发生损耗调平,直到擦除计数275为止,此时条件允许发生损耗调平。此时执行损耗调平,且在小于N(约N的一半)的时间间隔之后,在擦除计数277处再次执行损耗调平,以便加紧弥补。但此时,有非常长的周期无法发生损耗调平。由于所述较长周期的缘故,所有(此情况下为四个)错过的损耗调平交换一有可能就发生,在擦除计数279处开始且在其后的每一写入命令期间持续(如果允许的话)。这种技术的优点是简单,但在其过去经历了大量错过的损耗调平交换时可能不利地影响存储器系统的性能。
图13B说明处理在非常长时间内不发生损耗调平的情况的修改的方式。在此实例中,较长周期之后第一损耗调平交换发生于281处,且在N擦除计数的一半处发生相继操作。在此实例中也弥补错过的损耗调平交换,但图13B的技术不是如图13A中一旦可再次进行损耗调平就尽可能快地执行所述损耗调平,而是以某种事物将补充的损耗调平交换隔开至少N的一半。此技术提供损耗调平交换的较均匀的分布。
图13C中说明优选的技术。不同于弥补所有错过的损耗调平交换,而是稍许减小其间的时间间隔,除此之外其它错过的损耗调平交换完全不进行弥补。283处的损耗调平在上一损耗调平之后N擦除计数的一半时发生,以便弥补在能够执行上一损耗调平时发生的延迟,与图13A和13B的实例相同。但在其后存在相同长的周期无损耗调平交换的情况下,此周期之后285处的第二损耗调平交换在第一损耗调平交换之后N擦除循环的一半时在287处发生,但后续交换以正常的N擦除循环时间间隔发生。错过的损耗调平交换中的若干者完全不进行弥补。通过此技术设立损耗调平交换的特定标准是,当WL计数已累积到N以上之后发生损耗调平交换时,第二交换在随后N擦除计数的一半时发生。但其后的损耗调平交换以正常的N擦除计数时间间隔发生,而不管错过了多少交换。
图13A、13B和13C提供处理不能执行损耗调平的延长的周期的三种不同的方式,但不是实现此目的的仅有的方式。
第二损耗调平实施例
图14-16说明用于执行不需要预先存在更新区块的损耗调平操作的替代技术。如上所述,除非存在空闲或空的更新区块,否则图9的方法跳过通过步骤235执行待决的损耗调平操作。另一方面,在图14的技术中,通过相应的步骤235′确定无更新区块可用不会促使跳过待决的损耗调平操作。事实上,待决的损耗调平操作在当前写入命令的执行期间以在稍后时间自动完成的方式开始。当前写入命令期间花费非常少的时间来开始损耗调平操作,因此允许在占用周期期间还执行垃圾收集或另一耗时的内务处理功能。并且,不需要再进行任何操作来在后续写入命令的执行期间确认所启始的损耗调平操作已完成,因为其改为通过正常的垃圾收集操作而完成。
如果存在可用的更新区块(图14,步骤235′处“是”),那么对应于图9的损耗调平239,在当前写入命令的执行期间发生损耗调平237′。但如果有限数目的存储器系统更新区块没有一个是可用的,那么图14的步骤301-304设置损耗调平操作在稍后时间完成。为了在限制一次可开启的更新区块数目的存储器系统中开启用于损耗调平交换的更新区块,必须首先关闭现有的更新区块。这在步骤301中进行,其中关闭系统更新区块,例如优选关闭系统更新区块中最近最少使用(LRU)的系统更新区块。在下一步骤302中,开启已擦除区块作为用于此损耗调平操作的更新区块。在下一步骤303中,将第一页或元页(视存储器架构而定)的数据从源区块复制到刚开启的更新区块中。在当前写入命令的执行期间仅需复制这一页或元页,但如果有时间的话可复制多于一页或元页。将来自源区块的所有数据复制到新的更新区块所必需的时间量可能比当前写入命令的执行期间可利用的时间量多,尤其在区块非常大的情况下。因此,进行了足够的工作来优选地通过从源区块复制最少量的数据(优选地,不多于源区块中数据的四分之一),而设置损耗调平交换在执行当前写入命令之后某一时间完成。
作为可选的最佳方案,下一步骤304可迫使具有所述一页或元页的数据的新的更新区块被识别为系统更新区块中最近最少使用(LRU)的系统更新区块。此更新区块当然不是最近最少使用的更新区块,因为其刚刚开启。但通过将其指定为LRU更新区块,其将在下一次需要开启另一更新区块时被关闭。关闭过程包含发生垃圾收集,其最便利地通过将剩余页从源区块复制到此区块中来执行。接着关闭此区块,且开启必要的新的更新区块。此时已在存储器系统的正常操作期间完成损耗调平交换。一旦已设置损耗调平交换,就不必为损耗调平交换的完成进行特殊操作。
图15以时序图的方式说明此过程。关于实例数据单位1和2的当前写入命令的执行在时间间隔307期间发生。使更新区块可用于执行写入命令所必需的垃圾收集在初始时间间隔309期间发生,之后是时间间隔311,在此期间如上文相对于图14的步骤301-304所述设置损耗调平操作。从主机接收到控制器缓冲存储器中的数据单位1和2接着在时间间隔313期间被写入到快闪存储器中。
在后续时间间隔315期间,当发生需要垃圾收集以便提供开启的更新区块的下一写入命令的执行时,垃圾收集317完成损耗调平交换。在此实例中,接着在时间间隔319期间将数据单位3和4写入到快闪存储器中。
图16以另一不同方式说明图14和15的过程。将一页或元页的数据从指定用于损耗调平的源区块复制到新近开启的更新区块3中(数据复制1)。假定任何一次仅允许开启两个更新区块的存储器系统,关闭更新区块2以便能够开启更新区块3。这通过图14的步骤301-304在图15的时间间隔307期间执行。其后,在图15的时间间隔315期间,将来自源区块的剩余数据复制到更新区块3中(数据复制2)。因此,执行后续写入命令所必需的垃圾收集317已完成之前设置的损耗调平交换。
将一页或一页以上的数据复制到新的更新区块中设置了所述新的更新区块以进行后续的垃圾收集,而不必修改垃圾收集过程。以相当自动的方式完成损耗调平交换。或者,无需起初将数据复制到新的更新区块中,而是可用旗标对新的更新区块进行标记,所述旗标还识别待复制到新的更新区块中的数据的源区块。因而,可促使数据交换随后响应于旗标而发生。
图17的时序图说明实现相同数据写入和损耗调平操作的替代方法。在执行单一写入命令期间,转移数据单位1、2和3的每一者之后,断言存储器占用信号。对于此实例,与上文中一样,假定有必要进行垃圾收集以获得用于执行写入命令的更新区块,且接着有必要进行另一垃圾收集以执行损耗调平。这采取来自图14的方框235′的“否”路径,但以不同于那里所示的方式处理所述情形。写入数据所必需的垃圾收集321(图17)在第一占用信号期间发生。垃圾收集323接着在第二占用信号期间创建用于损耗调平交换的更新区块。接着在第三占用信号期间发生整个损耗调平交换325,且随后(未图示)将数据单位1、2和3写入到快闪存储器。
图17的实例中发生与图14-16的实例中的功能相同的功能,但需要额外的占用信号周期来实现所述功能。借此,通过利用垃圾收集操作319来执行写入命令并且执行大部分损耗调平交换,在图14-16的实例的情况下,存储器性能较好。
通过图14-16的实例,可在每次一个损耗调平交换待决时启始损耗调平交换。因此,损耗调平可每N个存储器系统擦除循环有规律地发生,而不必如其在上文第一实施例中一样被跳过。因此,不必要进行与图13A、13B和13C中的那些程序类似的程序。
第三损耗调平实施例
图18的操作流程图类似于图12的操作流程图,但在多个相继占用周期期间实施一或多个内务处理任务的执行。在步骤243中接收写入命令之后,在下一步骤245中计算时间预算。也就是说,起初确定此写入操作中可用于执行内务处理操作的时间量。这主要涉及将(1)转移每一数据单位之后不超过主机超时而可断言的存储器系统占用信号的最大持续时间,与(2)关于通过当前写入命令转移的数据单位的数目的数据转移的长度相乘。这是因为存储器可用于进行内务处理的时间与转移每一数据单位同时以及在转移每一数据单位之后发生,如下文所述的图19和20中最佳展示。
通过下一步骤247,将多个数据单位中的第一者接收到控制器缓冲存储器中,且如果有必要进行垃圾收集以便能够执行写入命令,那么在步骤249中开始垃圾收集。接着,可通过递减计数器或类似物,使通过步骤245确定的时间预算减少进行垃圾收集所花费的时间量(未图示)。
在步骤251中,接收第二数据单位,且接着确定在当前数据写入操作期间是否也可执行损耗调平。通过步骤253,确定是否存在待决的损耗调平交换;也就是说,根据所使用的特定损耗调平算法是否存在启始损耗调平的条件。如果是,那么在下一步骤255中,确定用于损耗调平的空闲或空的更新区块的存在。如果存在一个空闲或空的更新区块,那么执行损耗调平(步骤257),之后接收当前写入命令的任何另外的数据单位(步骤259)并将当前写入命令的数据单位写入到快闪存储器中(步骤261)。当然,如果步骤253确定无待决的损耗调平交换,那么处理过程直接从步骤253移动到步骤259。
返回步骤255,如果不存在可在损耗调平期间迅速使用的更新区块,那么下一步骤263查明是否有时间执行获得此更新区块所必需的垃圾收集。在此实例中,由于垃圾收集和损耗调平交换的每一者均是在从主机接收数据单位之后来自存储器系统的占用信号期间执行的,所以此调查是是否存在第三数据单位。如果是,那么接收所述第三数据单位(步骤265)且执行必要的垃圾收集(步骤267)。其后执行步骤257的损耗调平。但如果没有时间用于此额外的垃圾收集,那么过程直接前进到步骤261。
作为图18的过程的变化形式,可在时间预算步骤245之后紧接着选择那些有时间执行的垃圾收集和损耗调平交换。接着可向前调度有时间执行的操作。在接收写入命令之后即刻可利用完成此目的所必需的所有信息。如果无法在一个存储器系统占用周期内完成特定操作,那么可将其调度为延续到另一占用周期。以此方式,用于这些和其它内务处理操作的最大时间量可得到非常有效的利用。
图19的时序图展示一种特定的操作方法,其中垃圾收集和损耗调平两者均在写入两个数据单位1和2的单一操作期间发生。存储器系统在转移第一数据单位之后维持其占用信号,持续足以进行必需的垃圾收集的时间。一旦完成垃圾收集,就移除占用信号,且主机发送第二数据单位。存储器系统接着在转移第二数据单位之后再次断言占用信号,持续足以执行损耗调平的时间。接着,将两个数据单位从控制器缓冲存储器写入到快闪存储器的区块中,其后解除占用信号以向主机指示,存储器系统准备接收新的命令。图19中,在主机向存储器系统缓冲器转移单位1和2之间插入额外占用周期。这也是上文描述的图17中的情况。
尽管在相继的存储器系统占用周期期间执行两个不同的内务处理操作(即,垃圾收集和损耗调平),但在图19的存储器系统占用周期的每一者期间仅实行一个此类操作。或者,尤其在花费大部分时间在区块之间转移数据的垃圾收集和损耗调平的情况下,垃圾收集或损耗调平交换任一者可分开在两个相继周期之间。在此情况下,数据复制的一部分在第一存储器系统占用周期期间进行,且接着在第二占用周期期间完成。
数据写入操作经常涉及转移比图9和19中说明的两个数据单位多许多的数据单位。这为在存储器系统内执行垃圾收集、损耗调平或其它内务处理功能提供了额外的机会。图20给出此情况的实例,其中主机写入命令针对四个数据单位1、2、3和4。存储器系统可(如果必要或需要)在相继的周期217、219和221内执行一个或一个以上垃圾收集、损耗调平或其它内务处理操作。为了执行这一操作并写入数据,存储器系统在每一数据转移之后插入占用信号周期。这具有的优点是,能够将内务处理功能的执行分布在多个存储器系统占用周期上,使得各个占用周期的持续时间可缩短或得到充分利用。
在图20的实例中,内务处理周期217、219和221的每一者的终止致使占用信号无效,这进而促使主机发送下一数据单位。或者,占用信号的解除断言无需与周期217、219和221的结束同步。事实上,可以某一其它方式控制占用信号的持续时间,使得包含周期217、219和221的时间可作为单一周期利用。在此情况下控制占用信号的断言的一种方式是,使其在每一情形下尽可能地长直到完成所需操作为止,其后视需要断言占用信号持续极少时间。另一种控制占用信号的方式是,促使占用信号的每一者差不多具有相同的持续时间。在接收写入命令时,通过用完成操作所必需的时间除以当前写入命令正转移的数据单位的数目来确定此共同的持续时间。
实例损耗调平算法
现将描述图12的步骤237和图18的步骤257中可执行的特定损耗调平算法。选择一个源区块和一个目的地区块。指针递增通过逻辑群组(图8的211)以便选择源区块。在一个区块经受损耗调平之后,指针按次序移动到下一逻辑群组,且选择所述群组被映射到的物理区块作为源区块。或者,指针可直接递增通过物理区块。
如果满足某一额外标准,那么选择被指向的区块作为源区块。所述区块需要含有主机数据,且当其为含有存储器系统控制数据的保留区块时将不会被选择(除了参看图8描述的内容外)。这是因为保留区块的使用性质导致其被循环经过存储器而不必对其进行损耗调平。当所述区块具有与其相关联的开启的更新区块时,也不会选择所述区块作为源区块。更新区块的存在意味着,映射到区块中的逻辑群组的数据包含在所述区块以及所述更新区块两者中。而且,当然,由于有缺陷而已经被映射出的区块不会被选择作为源区块。
如果被指向的区块由于这些原因之一或某一其它原因而不适宜作为源区块,那么指针按次序递增到下一逻辑群组或物理区块,且同样对照上述标准对此下一区块进行测试。如果此第二区块未能通过测试,那么指向并测试另一区块。优选地,对未发现适宜区块时所考虑的区块的数目设置最大数目。接着中止当前损耗调平交换,且在下一损耗调平交换期间重新开始搜索。
从已擦除集区区块中选择目的地区块,通常是按次序放置的待用于存储来自主机的数据的下一区块。但替代于存储主机数据,将来自源区块的数据复制到此目的地区块。接着更新映射表(215),使得这些数据所属的逻辑群组映射到新的区块。接着擦除源区块并将其放置到擦除集区中。
其它实施例
图21的时序图展示在两个或两个以上写入命令的执行期间发生单一内务处理操作的实例。内务处理操作的一个部分331在一个写入命令的执行期间发生,且另一部分333在下一写入命令的执行期间发生。内务处理操作可分布在两个以上写入命令执行期间,且无需在相继的写入执行期间执行,而是可随着时间进一步分布。具有此能力的优点是,实行特定内务处理操作所必需的时间可与特定写入循环存储器占用信号持续时间解除联系。实际上,可使存储器系统占用信号在相继写入命令执行期间具有均一的持续时间,且可在若干此类占用信号周期内执行单独内务处理操作。
可从延长的占用周期受益的另一内务处理功能是如上文所提及的刷新(擦洗)存储在存储器单元中的电荷电平。执行所接收的命令时未涉及的一个或一个以上区块或元区块中的存储器单元被刷新。另一内务处理功能是也在上文提及的抢先垃圾收集。也对执行所接收的命令时未涉及的区块或元区块中的数据执行此垃圾收集。在存储器系统断言的占用周期期间,也可执行类似地对于执行所接收的命令不必要和不需要的其它额外开销操作。这对于需要复制大量数据的内务处理操作来说尤其有用,因为这种复制花费大量时间。损耗调平、擦洗、抢先垃圾收集或主机命令的执行期间实行的其它类似操作均不是所述命令的执行的必要部分。其既不与所接收的命令直接相关,也不由所接收的命令触发。除了用于执行此类其它操作的时间量的限制外,对于主机命令的执行期间可进行的操作几乎没有限制。
此外,除了在写入命令的执行期间执行此类非相关操作外,其也可在其它主机命令的执行期间执行,其中存储器系统可操作以通过断言占用信号或另外的方式延迟接收另一主机命令。一个此类其它命令是读取命令。图22展示在时间间隔341期间从快闪存储器将数据单位读取到控制器存储器中。此周期期间存储器占用信号有效。但不是随后立即丢弃所述占用信号,而是将其延长以便为内务处理操作或内务处理操作的一部分提供时间,以便在时间间隔343期间发生。当确实丢弃占用信号时,将数据单位1和2转移到主机。内务处理操作也可延长通过此周期,如图所示。上文描述的用于在写入命令的执行期间执行内务处理的许多技术也可应用于在读取命令的执行期间进行内务处理。
结论
尽管已参照本发明的示范性实施例描述了本发明的各个方面,但将了解,本发明享有在所附权利要求书的整个范围内受保护的权利。

Claims (27)

1.一种操作可擦除且可再编程的非易失性存储器系统的方法,其包括响应于从所述存储器系统外部接收具有用于执行的时间预算的命令:
执行对于执行所述命令必要的任何功能,
在所述存储器系统外部断言占用信号持续一时间,所述时间延续超过用于执行所述任何必要功能的时间同时保持在所述时间预算内,以及
在所述延续的占用信号时间期间,在所述存储器系统内执行对于执行所述接收的命令不必要的一个内务处理操作的至少一部分。
2.根据权利要求1所述的方法,其中所述接收的命令包含写入命令,之后是待写入到所述存储器系统中的一个或一个以上数据单位。
3.根据权利要求2所述的方法,其中接收待写入到所述存储器系统中的多个数据单位,且其中在接收所述数据单位之间的至少两个时间间隔中断言所述占用信号,在所述时间期间,通过完成所述至少一个内务处理操作来执行一个内务处理操作的所述至少一部分。
4.根据权利要求3所述的方法,其中在所述至少两个时间间隔的一个以上时间间隔期间执行所述至少一个内务处理操作。
5.根据权利要求4所述的方法,其中所述对于执行所述命令必要的任何功能包含垃圾收集操作和将所述接收的数据写入到所述存储器系统。
6.根据权利要求1所述的方法,其中所述一个内务处理操作包含在所述存储器系统内将某一量的数据从一个位置转移到另一位置,且其中执行此内务处理操作的至少一部分包含仅转移所述量的数据的一部分。
7.根据权利要求6所述的方法,其中随后在执行并非特定针对于执行所述一个内务处理操作的垃圾收集操作期间,转移所述量的数据的剩余部分。
8.根据权利要求1所述的方法,其中所述至少一个内务处理操作包含在所述存储器的所述命令的执行中未涉及的一部分中执行的损耗调平操作。
9.根据权利要求1所述的方法,其中所述至少一个内务处理操作包含刷新存储在所述存储器的所述命令的执行中未涉及的一部分中的数据。
10.根据权利要求1所述的方法,其中所述至少一个内务处理操作包含在所述存储器的所述命令的执行中未涉及的一部分中执行的垃圾收集操作。
11.一种操作可擦除且可再编程的非易失性存储器系统的方法,其包括响应于接收到在给定时间预算内转移一个或一个以上数据单位的命令:
确定为了能够转移所述一个或一个以上数据单位是否必须进行任何内务处理操作,
如果为了能够转移所述一个或一个以上数据单位必须进行任何内务处理操作,那么执行至少所述必需的内务处理操作,
确定对于转移一个或一个以上数据单位不必要的内务处理操作是否待决,如果对于所述数据转移不必要的内务处理操作待决,那么确定所述时间预算内任何剩余时间是否足以执行对于所述数据转移不必要的所述待决的内务处理操作,如果所述时间预算内剩余足够的时间,那么在执行所述接收的命令期间执行对于所述数据转移不必要的所述待决的内务处理操作的至少一部分,以及在所述给定时间预算内转移所述一个或一个以上数据单位。
12.根据权利要求11所述的方法,其中确定为了能够写入所述一个或一个以上数据单位是否必须进行任何内务处理操作包含确定所述存储器的两个或两个以上位置内的数据是否需要合并到单一位置中,且如果是,那么在所述给定时间预算内合并此数据。
13.根据权利要求11所述的方法,其中确定对于所述数据转移不必要的内务处理操作是否待决包含识别待决的损耗调平交换,且其中执行对于所述数据转移不必要的所述待决的内务处理操作包含在所述给定时间预算内执行所述待决的损耗调平交换的至少一部分。
14.根据权利要求13所述的方法,其中执行对于所述数据转移不必要的所述待决的内务处理操作包含在所述给定时间预算内执行所述待决的损耗调平交换的全部。
15.根据权利要求11所述的方法,其中确定对于所述数据转移不必要的内务处理操作是否待决包含识别刷新指定的数据的操作,所述指定的数据存储在所述存储器系统的与执行所述接收的数据转移命令过程中所涉及的一部分不同的一部分中,且其中执行对于所述数据转移不必要的所述待决的内务处理操作包含在所述给定时间预算内刷新所述指定的数据的至少一部分。
16.根据权利要求15所述的方法,其中执行对于所述数据转移不必要的所述待决的内务处理操作包含在所述给定时间预算内刷新所述指定的数据的全部。
17.根据权利要求11所述的方法,其中确定对于所述数据转移不必要的内务处理操作是否待决包含识别在所述存储器系统的与执行所述接收的写入命令过程中所涉及的一部分不同的一部分中执行垃圾收集的操作,以及其后在所述给定时间预算内执行此垃圾收集的至少一部分。
18.根据权利要求17所述的方法,其中执行对于所述数据转移不必要的所述待决的内务处理操作包含在所述给定时间预算内执行此数据转移的全部。
19.根据权利要求11所述的方法,其额外包括接连接收两个或两个以上数据单位,且其中确定所述时间预算内用于执行对于所述数据转移不必要的所述内务处理操作的任何剩余时间量导致确定剩余足够的时间,且所述方法额外包括断言对于完成所述数据转移命令的执行不必要的至少一个占用周期。
20.根据权利要求11所述的方法,其中如果对于所述数据转移不必要的内务处理操作待决且所述时间预算内没有足够的时间来执行对于所述数据转移不必要的所述待决的内务处理操作的至少一部分,那么将所述未执行的内务处理操作添加到此类未执行操作的计数。
21.根据权利要求20所述的方法,响应于在所述计数中包含多个未执行的内务处理操作,按照顺序促使每一未执行的内务处理操作呈现为待决以便在所有后续数据写入命令的执行期间执行,直到所述计数为零为止。
22.根据权利要求20所述的方法,其中响应于在所述计数中包含多个未执行的内务处理操作,按照顺序促使每一未执行的内务处理操作一次一个地呈现为待决以便在所有后续数据转移命令的执行期间执行,直到所述计数为零为止。
23.根据权利要求20所述的方法,其中通常以预界定的时间间隔呈现与所述数据转移命令的执行无关的内务处理操作,且其中响应于在所述计数中包含多个未执行的内务处理操作,按照顺序促使所述未执行的内务处理操作一次一个地呈现为待决以便在后续数据转移命令的执行期间以小于所述预界定的时间间隔的时间间隔执行,直到所述计数为零为止。
24.根据权利要求20所述的方法,其中与所述数据转移命令的执行无关的内务处理操作通常以预界定的时间间隔呈现,且其中响应于在所述计数中包含多个未执行的内务处理操作,促使所述未执行的内务处理操作中的至少一者呈现为待决以便在后续数据转移命令的执行期间以小于所述预界定的时间间隔的时间间隔执行,而所述未执行的内务处理操作中的至少另一者不被执行。
25.一种操作可擦除且可再编程的非易失性存储器单元的系统的方法,所述存储器单元组织成多个由若干可同时擦除的存储器单元构成的物理区块,且其中将逻辑群组地址内的数据映射到所述物理区块中,所述方法包括响应于接收将数据写入到所述逻辑群组中一者的命令和所述待写入的数据:
确定是否将所述逻辑群组内的数据映射到所述物理区块中的一者以上,确定所述多个区块的两者之间是否存在待决的损耗调平交换,以及
(a)如果将所述逻辑群组内的数据映射到所述物理区块中的一者以上,那么将所述物理区块中的所述一者以上的数据合并到单一区块中,以及将所述接收的数据写入到与所述逻辑群组相关联的更新区块,或
(b)如果不将所述逻辑群组内的数据映射到所述物理区块中的一者以上但存在待决的损耗调平交换,
那么在所述物理区块的所述两者之间执行损耗调平交换,以及
将所述接收的数据写入到与所述逻辑群组相关联的更新区块。
26.一种操作可擦除且可再编程的非易失性存储器单元的系统的方法,所述存储器单元组织成多个由若干可同时擦除的存储器单元构成的物理区块,且其中将映射到所述物理区块的一者的逻辑群组地址内的传入数据编程到逻辑上链接到所述一个区块的更新物理区块中,所述方法包括响应于接收写入命令和待写入的数据:确定更新区块是否可用于接收所述待写入的数据,
(a)如果更新区块不可用,
那么将多个更新区块的一者的数据与所述更新区块的数据逻辑上所链接到的物理区块的数据合并,借此使更新区块可用,以及
其后将数据写入到所述可用的更新区块,或
(b)如果更新区块可用,
那么在所述物理区块的两者之间执行数据的损耗调平交换,以及
其后将数据写入到所述可用的更新区块。
27.一种操作可擦除且可再编程的非易失性存储器单元的系统的方法,所述存储器单元组织成多个由若干可同时擦除的存储器单元构成的物理区块,且其中将映射到所述物理区块的一者的逻辑地址内的传入数据编程到逻辑上链接到所述一个区块的更新物理区块中,其中将所述多个区块中有限数目的区块指定为更新区块,且通过将来自至少两个区块的数据合并到一个区块中的垃圾收集来创建新的更新区块,所述方法包括响应于接收写入命令和待写入的数据:
确定对于执行所述写入命令不必要的内务处理操作是否待决,以及其是否包含将来自所述多个区块的一者的多个数据单位复制到更新区块的必要性,
如果是,那么在执行所述写入命令期间,将来自所述一个区块的所述多个数据单位的一者或一者以上但少于所述单位的四分之一复制到所述更新区块的一者中,
将所述一个更新区块识别为按次序需将其数据合并的下一更新区块,以及
在执行所述写入命令之后,对所述一个更新区块执行垃圾收集,借此将所述一个区块内的所述多个数据单位的剩余部分与所述一个或一个以上复制的单位一起放置到共同区块中。
CNB2006800058966A 2005-01-20 2006-01-11 一种操作可擦除且可再编程的非易失性存储器系统的方法 Expired - Fee Related CN100547570C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/040,325 US20060161724A1 (en) 2005-01-20 2005-01-20 Scheduling of housekeeping operations in flash memory systems
US11/040,325 2005-01-20
US11/312,985 2005-12-19

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN200910166134XA Division CN101645044B (zh) 2005-01-20 2006-01-11 一种操作可擦除且可再编程的非易失性存储器系统的方法

Publications (2)

Publication Number Publication Date
CN101137970A true CN101137970A (zh) 2008-03-05
CN100547570C CN100547570C (zh) 2009-10-07

Family

ID=36685299

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2006800058966A Expired - Fee Related CN100547570C (zh) 2005-01-20 2006-01-11 一种操作可擦除且可再编程的非易失性存储器系统的方法
CN200910166134XA Expired - Fee Related CN101645044B (zh) 2005-01-20 2006-01-11 一种操作可擦除且可再编程的非易失性存储器系统的方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN200910166134XA Expired - Fee Related CN101645044B (zh) 2005-01-20 2006-01-11 一种操作可擦除且可再编程的非易失性存储器系统的方法

Country Status (2)

Country Link
US (1) US20060161724A1 (zh)
CN (2) CN100547570C (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777026B (zh) * 2009-01-09 2011-12-28 成都市华为赛门铁克科技有限公司 一种存储管理方法、硬盘及存储系统
CN103425586A (zh) * 2012-05-17 2013-12-04 群联电子股份有限公司 储存单元管理方法、存储器控制器与存储器储存装置
CN104123900A (zh) * 2014-07-25 2014-10-29 西安诺瓦电子科技有限公司 Led灯板校验系统及校验方法
US9274943B2 (en) 2012-05-08 2016-03-01 Phison Electronics Corp. Storage unit management method, memory controller and memory storage device using the same
CN105683926A (zh) * 2013-06-25 2016-06-15 美光科技公司 按需块管理
CN112764880A (zh) * 2021-01-19 2021-05-07 福建天泉教育科技有限公司 一种Java垃圾回收监控方法及终端
CN113625939A (zh) * 2020-05-06 2021-11-09 爱思开海力士有限公司 保持非易失性存储器装置中的一致写入延迟
CN113806254A (zh) * 2020-06-15 2021-12-17 爱思开海力士有限公司 存储器系统、存储器控制器及存储器系统的操作方法

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
JP4394047B2 (ja) * 2005-08-05 2010-01-06 信越ポリマー株式会社 キーフレームおよび押釦スイッチ用カバー部材
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US20070136671A1 (en) * 2005-12-12 2007-06-14 Buhrke Eric R Method and system for directing attention during a conversation
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7436708B2 (en) * 2006-03-01 2008-10-14 Micron Technology, Inc. NAND memory device column charging
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7451265B2 (en) * 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
KR100855467B1 (ko) * 2006-09-27 2008-09-01 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법
US7441071B2 (en) * 2006-09-28 2008-10-21 Sandisk Corporation Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US7444462B2 (en) * 2006-09-28 2008-10-28 Sandisk Corporation Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US7464216B2 (en) * 2006-09-29 2008-12-09 Sandisk Corporation Method for phased garbage collection with state indicators
US7444463B2 (en) * 2006-09-29 2008-10-28 Sandisk Corporation System for phased garbage collection with state indicators
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
KR100789406B1 (ko) * 2006-11-03 2007-12-28 삼성전자주식회사 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
US20080162787A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin System for block relinking
US20080162612A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin Method for block relinking
US7669092B2 (en) 2007-02-26 2010-02-23 Micron Technology, Inc. Apparatus, method, and system of NAND defect management
US7689762B2 (en) * 2007-05-03 2010-03-30 Atmel Corporation Storage device wear leveling
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
US20080294813A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
US9396103B2 (en) * 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
US8504784B2 (en) * 2007-06-27 2013-08-06 Sandisk Technologies Inc. Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
KR101454817B1 (ko) * 2008-01-11 2014-10-30 삼성전자주식회사 반도체 메모리 장치 및 그것의 마모도 관리 방법
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
JP2011192240A (ja) * 2010-03-17 2011-09-29 Sony Corp 記憶装置および記憶システム
JP5066209B2 (ja) * 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US8626986B2 (en) * 2010-06-30 2014-01-07 Sandisk Technologies Inc. Pre-emptive garbage collection of memory blocks
JP4910064B2 (ja) 2010-08-31 2012-04-04 株式会社東芝 記憶制御装置、記憶装置、及びデータ移動制御方法
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US10049040B2 (en) 2011-01-21 2018-08-14 Seagate Technology Llc Just in time garbage collection
US8874872B2 (en) * 2011-01-21 2014-10-28 Seagate Technology Llc Garbage collection management in memories
JP5917163B2 (ja) * 2011-01-27 2016-05-11 キヤノン株式会社 情報処理装置、その制御方法及びプログラム並びに記憶媒体
CN103946816B (zh) * 2011-09-30 2018-06-26 英特尔公司 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram)
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US20130179614A1 (en) * 2012-01-10 2013-07-11 Diarmuid P. Ross Command Abort to Reduce Latency in Flash Memory Access
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9436595B1 (en) * 2013-03-15 2016-09-06 Google Inc. Use of application data and garbage-collected data to improve write efficiency of a data storage device
CN104951241B (zh) * 2014-03-31 2018-02-27 群联电子股份有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
US20150339223A1 (en) * 2014-05-22 2015-11-26 Kabushiki Kaisha Toshiba Memory system and method
US9383926B2 (en) * 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
US9760481B2 (en) * 2014-06-13 2017-09-12 Sandisk Technologies Llc Multiport memory
US11334478B2 (en) * 2014-10-30 2022-05-17 Kioxia Corporation Memory system and nonvolatile memory medium in which program is stored to optimize operating life
US20160179399A1 (en) * 2014-12-23 2016-06-23 Sandisk Technologies Inc. System and Method for Selecting Blocks for Garbage Collection Based on Block Health
US10338817B2 (en) * 2014-12-30 2019-07-02 Sandisk Technologies Llc Systems and methods for storage recovery
IN2015CH01601A (zh) * 2015-03-28 2015-05-01 Wipro Ltd
KR102291803B1 (ko) 2015-04-07 2021-08-24 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법, 및 그것을 포함하는 사용자 시스템의 동작 방법
US10013174B2 (en) 2015-09-30 2018-07-03 Western Digital Technologies, Inc. Mapping system selection for data storage device
US10324833B2 (en) * 2015-10-27 2019-06-18 Toshiba Memory Corporation Memory controller, data storage device, and memory control method
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
TWI615710B (zh) 2016-12-14 2018-02-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN106775479B (zh) * 2016-12-21 2020-05-12 合肥兆芯电子有限公司 存储器管理方法、存储器储存装置及存储器控制电路单元
TWI612473B (zh) * 2017-03-22 2018-01-21 慧榮科技股份有限公司 垃圾回收方法以及使用該方法的裝置
KR102620255B1 (ko) * 2018-05-18 2024-01-04 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20200085513A (ko) 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11003396B2 (en) * 2019-03-01 2021-05-11 Micron Technology, Inc. Dual speed memory
US11061815B2 (en) * 2019-07-05 2021-07-13 SK Hynix Inc. Memory system, memory controller and operating method
KR20210051803A (ko) * 2019-10-31 2021-05-10 에스케이하이닉스 주식회사 메모리 시스템 및 컨트롤러
KR102456176B1 (ko) * 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
CN113127377B (zh) * 2021-04-08 2022-11-25 武汉导航与位置服务工业技术研究院有限责任公司 一种非易失存储器件写擦除的磨损均衡方法
US11894060B2 (en) 2022-03-25 2024-02-06 Western Digital Technologies, Inc. Dual performance trim for optimization of non-volatile memory performance, endurance, and reliability

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US5095344A (en) * 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5070032A (en) * 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5172338B1 (en) * 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US5343063A (en) * 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
TW261687B (zh) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US5313421A (en) * 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US5532962A (en) * 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
JP3328321B2 (ja) * 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
US5315541A (en) * 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5479633A (en) * 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5555204A (en) * 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US5640529A (en) * 1993-07-29 1997-06-17 Intel Corporation Method and system for performing clean-up of a solid state disk during host command execution
US5661053A (en) * 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
US5798968A (en) * 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5956743A (en) * 1997-08-25 1999-09-21 Bit Microsystems, Inc. Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6233644B1 (en) * 1998-06-05 2001-05-15 International Business Machines Corporation System of performing parallel cleanup of segments of a lock structure located within a coupling facility
US6286016B1 (en) * 1998-06-09 2001-09-04 Sun Microsystems, Inc. Incremental heap expansion in a real-time garbage collector
US20050204187A1 (en) * 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
US6345001B1 (en) * 2000-09-14 2002-02-05 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US6732221B2 (en) * 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
US6950837B2 (en) * 2001-06-19 2005-09-27 Intel Corporation Method for using non-temporal streaming to improve garbage collection algorithm
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US20060053247A1 (en) * 2004-09-08 2006-03-09 Hugo Cheung Incremental erasing of flash memory to improve system performance

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777026B (zh) * 2009-01-09 2011-12-28 成都市华为赛门铁克科技有限公司 一种存储管理方法、硬盘及存储系统
US9274943B2 (en) 2012-05-08 2016-03-01 Phison Electronics Corp. Storage unit management method, memory controller and memory storage device using the same
CN103425586A (zh) * 2012-05-17 2013-12-04 群联电子股份有限公司 储存单元管理方法、存储器控制器与存储器储存装置
CN103425586B (zh) * 2012-05-17 2016-09-14 群联电子股份有限公司 储存单元管理方法、存储器控制器与存储器储存装置
CN105683926A (zh) * 2013-06-25 2016-06-15 美光科技公司 按需块管理
CN104123900A (zh) * 2014-07-25 2014-10-29 西安诺瓦电子科技有限公司 Led灯板校验系统及校验方法
CN113625939A (zh) * 2020-05-06 2021-11-09 爱思开海力士有限公司 保持非易失性存储器装置中的一致写入延迟
CN113625939B (zh) * 2020-05-06 2023-10-20 爱思开海力士有限公司 保持非易失性存储器装置中的一致写入延迟
CN113806254A (zh) * 2020-06-15 2021-12-17 爱思开海力士有限公司 存储器系统、存储器控制器及存储器系统的操作方法
CN113806254B (zh) * 2020-06-15 2024-02-20 爱思开海力士有限公司 存储器系统、存储器控制器及存储器系统的操作方法
CN112764880A (zh) * 2021-01-19 2021-05-07 福建天泉教育科技有限公司 一种Java垃圾回收监控方法及终端
CN112764880B (zh) * 2021-01-19 2023-07-07 福建天泉教育科技有限公司 一种Java垃圾回收监控方法及终端

Also Published As

Publication number Publication date
CN101645044B (zh) 2012-12-05
CN100547570C (zh) 2009-10-07
US20060161724A1 (en) 2006-07-20
CN101645044A (zh) 2010-02-10

Similar Documents

Publication Publication Date Title
CN100547570C (zh) 一种操作可擦除且可再编程的非易失性存储器系统的方法
EP1856616B1 (en) Scheduling of housekeeping operations in flash memory systems
CN100524209C (zh) 在非易失性存储器阵列中更新数据的方法
CN101095121B (zh) 高速暂存区块
US7433993B2 (en) Adaptive metablocks
CN100487672C (zh) 用于分割一逻辑块的方法及设备
US20120191927A1 (en) Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US9652386B2 (en) Management of memory array with magnetic random access memory (MRAM)
US7441067B2 (en) Cyclic flash memory wear leveling
CN102831071B (zh) 用于存储器装置的存储地址重新映射的方法和系统
JP5069256B2 (ja) 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法
US20050144363A1 (en) Data boundary management
CN107025178A (zh) 存储器控制器、非易失性存储器系统及其操作方法
US20080294814A1 (en) Flash Memory System with Management of Housekeeping Operations
US20080294813A1 (en) Managing Housekeeping Operations in Flash Memory
KR20100139149A (ko) 다중 뱅크 메모리 장치에 대한 저장 주소 재매핑을 위한 방법과 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SANDISK CORP.

Effective date: 20120411

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120411

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American California

Patentee before: Sandisk Corp.

C56 Change in the name or address of the patentee

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: SANDISK TECHNOLOGIES, INC.

CP01 Change in the name or title of a patent holder

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American Texas

Patentee before: Sandisk Corp.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: American Texas

Patentee after: DELPHI INT OPERATIONS LUX SRL

Address before: American Texas

Patentee before: Sandisk Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091007

Termination date: 20200111

CF01 Termination of patent right due to non-payment of annual fee