具体实施方式
本发明提供一种用于以后台模式执行块擦除的方法及设备,其可提高总存储器性能并展开其中快闪存储器系统可确信即使在暂态功率系统中仍可恰当擦除块的时间周期。
在以下说明中,为了不在不必要的细节中模糊本发明,可能以框图形式显示电路及功能。相反,所显示及所说明的具体电路实施方案仅为实例性且除非本文另外明确说明否则不应将其理解为实施本发明的唯一方式。此外,块定义及各个块之间的逻辑分割是具体实施方案的实例。所属技术领域中的技术人员将容易地明了,可通过多种其它分割解决方案实践本发明。大概地,已在关于时序考虑等的细节对于获得对本发明的完整理解并非必需且所述细节在相关技术领域中的技术人员的能力以内的地方省略所述细节。
在此说明中,出于清楚陈述及说明的目的,一些图式可能将若干信号图解说明为单个信号。所属技术领域中的技术人员应了解,所述信号可表示信号的总线,其中所述总线可具有各种位宽度且本发明可在任何数量的数据信号(包括单个数据信号)上实施。此外,可将一些信号描述为具有断言或求反的状态。同样,可将数据位描述为断言或求反,或另一选择为,描述为设定或清除。所属技术领域中的技术人员应认识到,在大多数实例中,对断言、求反、设定或清除的选择可以是任意的且本发明可用所述信号及位的相反状态实施。
虽然已参照具体数据宽度、页大小、块大小及存储器大小说明了代表性实施例,但所属技术领域中的技术人员应认识到,可容易地在本发明的范围内涵盖具有不同的数据宽度值、页大小值、块大小值及存储器大小值的其它实施例。
如本文中使用,存储器装置意指任何使用块擦除操作来擦除所述存储器装置的一部分的存储器装置,例如快闪存储器装置或EEPROM存储器装置。此外,在本文中可将所述存储器装置称作存储器或快闪存储器。
在其它参考中可将后台擦除定义为在相对于软件环境的后台中发生的擦除,其中在所述软件看来,所述擦除可从软件层隐藏且在相对于所述软件所请求的文件及数据存取的后台中发生。然而,如本发明的上下文中使用,后台擦除是指在从快闪存储器的角度来看的后台中执行擦除操作。换句话说,后台擦除可相对于向快闪存储器卡或快闪存储器装置发出的其它操作或命令而发生。
图1图解说明根据本发明的存储器装置100的代表性实施例的框图。已简化存储器装置100的框图以聚焦于有助于理解本发明的存储器特征。所属技术领域中的技术人员已知快闪存储器的内部电路及功能的更详细理解。
存储器装置100包括耦合到I/O接口110的输入/输出(I/O)总线115。其中还包括耦合到控制逻辑120的控制总线125。虽然控制逻辑120未显示到内部功能块的连接,但所属技术领域中的技术人员应认识到,控制逻辑120可包括到任何或所有所述内部功能块的内部信号。一般来说,控制逻辑120结合I/O总线115使用控制总线125上的信号,以辨识来自外部装置的命令。这些命令中的一些命令可用于将来自I/O总线115的数据存储在地址寄存器130、数据寄存器180、命令寄存器150或状态寄存器140中。其它命令可用于从数据寄存器180、命令寄存器150或状态寄存器140读取到I/O总线115的数据。另外其它命令可用于对存储器装置100中的页进行编程或擦除存储器装置100中的块。
一个或一个以上地址寄存器130从I/O接口110捕获地址。所述地址的一部分耦合到列解码器170以选择存储器阵列190中的适当列,且耦合到行解码器160以选择存储器阵列190中的适当行。当读取存储器阵列190时,将来自存储器阵列190的数据传送到数据寄存器180。从数据寄存器180,可将数据传送到I/O总线115上以传送出存储器装置100。为将数据写入到存储器阵列190,首先将数据从I/O总线115写入到数据寄存器180中,当已写入足以填充存储器阵列190的一页的数据时,可向存储器装置100发送命令以将数据寄存器180中的所述数据传送到存储器阵列190中的页。
图2图解说明所述存储器阵列的逻辑组织200的代表性实施例。数据寄存器180可经组织而具有8位字节的深度及2112字节的宽度。可将所述2112字节的宽度分割为2048字节的数据区域及64字节的扩展区域。在许多快闪存储器装置中,所述扩展区域可用于错误管理功能或其它控制功能。
所述存储器中的页210可与数据寄存器180大小相同。因此,一次一页地从所述存储器区域读取数据并将其传送到数据寄存器180。同样,向数据寄存器180写入数据直到存储器的整个页准备进行编程,且然后将数据从数据寄存器180传送到存储器阵列190中的页210。
存储器阵列190的块220可包括64个页210。整个存储器阵列190可包括2048个块220。当然,所属技术领域中的技术人员应认识到,所述存储器装置可存在许多其它逻辑组织。存储器装置的容量频繁地变大且存储器装置可用于各种位宽度(例如,8位字节及16位字)。因此,可存在数据宽度、页大小、块大小的许多其它组织及这些各种组织定义之间的逻辑分割且其涵盖于本发明的范围内。
图3图解说明包括处理器310及至少一个存储器卡320的存储器系统300的框图,其中每一存储器卡320包括存储器控制器330及至少一个存储器装置100。处理器310经由外部总线315与存储器控制器330进行通信。存储器控制器330经由内部总线335与存储器装置100进行通信。
可在存储器卡320上配置许多个存储器装置100且存在许多不同类型的存储器卡320,例如小型快闪(CF)、多媒体卡(MMC)、安全数字(SD)卡、智能媒体(SM)卡及记忆棒(MS)。
这些卡中的每一者可用于许多不同类型的主机系统中,所述主机系统可具有用于与存储器卡320上的存储器控制器330进行通信的不同方法及协议。这些主机系统可包括电子装置,例如个人计算机、个人数字助理、数码相机及数字音乐播放器。所述主机系统由标记为处理器310的块表示。
存储器控制器330将来自处理器310的外部总线315循环转译成存储器装置100理解的命令,且然后针对存储器装置100在内部总线335上呈现那些命令。此外,所述控制器可管理到外部总线315以及内部总线335的数据移动及数据业务。
后台控制器350可实施于存储器控制器330中。如图3A中图解说明,后台控制器350包括用于管理擦除命令的后台模式的操作的逻辑及旗标。在下文中详细解释后台控制器350。
图4图解说明包括处理器310及至少一个存储器卡320的另一存储器系统300A的框图,其中每一存储器卡320包括至少一个存储器装置100。一些存储器装置100在存储器装置100上可包括存储器控制器330及后台控制器350。在这些实施例中,可能不需要如图3中所图解说明的存储器卡上的单独存储器控制器。因此,处理器310经由外部总线315与存储器卡320进行通信。此外,此外部总线315可与存储器装置100进行通信。当然,所属技术领域中的技术人员应认识到,在存储器卡320上,外部总线315与存储器装置100之间可存在某种缓冲及时序控制(未显示)。
图4A是对包括处理器310及至少一个存储器装置100的另一存储器系统300B的示意性描绘。许多存储器系统可不包括存储器卡320。而是,主机可直接与存储器装置100进行通信。所属技术领域中的技术人员应认识到,非常宽泛地使用“直接”。主机处理器310可包括用于将处理器循环转换为通用存储器循环、快闪存储器装置循环或其组合的其它总线控制器。图4A的存储器系统300B、图4的存储器系统300A及图3的存储器系统300可包括用于管理快闪存储器操作的软件、固件或其组合。
图5是对可用于图3、4及4A的代表性实施例中的软件组织500的示意性描绘。可将所述软件组织为向文件系统520作出数据请求的操作系统510。如果所述数据请求针对快闪存储器装置100,那么文件系统520可从快闪驱动器530请求所述数据。
快闪驱动器530可包括例如地址映射540及快闪控制550等组件。地址映射540将与文件系统520相关联的逻辑域中的地址转换为与存储器装置100中的位置相关联的物理域。快闪控制550可用于将文件请求转换为用于存储器卡320或存储器装置100的总线循环命令。根据本发明的快闪驱动器530还包括图3A的后台控制器350。
返回到图3A,后台控制器350包括用于管理擦除命令的后台模式的操作的逻辑及旗标。后台-过程-忙碌旗标364指示后台擦除可能在进行中或可能正在等待执行。即将-掉电旗标366指示处理器310(即,主机系统)想要立刻从存储器卡320或存储器装置100移除电力。后台启用旗标362指示后台擦除操作得到准许。此外,在一些代表性实施例中,后台启用旗标362可不存在。在那些不存在后台启用旗标362的代表性实施例中,且根据本文中的说明,对后台启用旗标362的提及将假设操作就像总是断言所述后台启用旗标那样发生。
后台控制器还可包括后台持续时间寄存器368。后台持续时间寄存器368可以是经编程使得后台控制器可解释其必须执行多长时间的后台操作的寄存器。另一选择为,可将后台持续时间寄存器368设定为一时间(例如,固定时间、所编程时间或基于多少后台操作未决的时间),以使得当后台控制器350接收即将-掉电旗标366时,所述后台控制器可通过将所估计完成时间发送回处理器来响应。在所述模式中,所述处理器可在没有信号交换操作的情况下确定何时掉电适当,如下文更加全面地解释。
根据本发明,后台控制器350可存在于存储器装置100中,作为硬件存在于存储器控制器330中,作为软件/固件存在于存储器控制器330中,作为软件/固件存在于处理器310中或其组合。后台控制器350包括用于管理擦除命令的后台模式的操作的逻辑及旗标。
如前文所陈述,快闪存储器单元经擦除而为“1”且可经编程而为“0”。如果所述存储器单元中的数据需要再次为1,那么需要擦除所述单元。然而,一次一块地擦除快闪存储器装置100。因此,存储器系统包括用于管理如何编程及擦除数据的程序。当新数据进来时,快闪存储器系统不会擦除旧数据及在相同的位置覆写所述新数据。而是,所述存储器系统所做的是将所述旧数据加标签为坏并将所述新数据写入到某个其它位置中,同时更新地址转译映射以指向存储所述新数据的地方。然而,在某一点处,所述控制器需要回收被加标签为坏的区域并移动周围的一些好数据以使所述存储器系统更加高效地操作。
记住,擦除在存储器的块上发生,所述数据管理可追踪块变得如何“脏”。换句话说,追踪块中可能有多少坏位置。在某一点处,所述存储器系统可决定清洗块。为进行此步骤,所述存储器系统将大部分是好数据的页移动到另一块。存储器系统300还可重新布置数据以将好数据压缩在一起并将其移动到不同的块。一旦已将所有好数据移动到另一块,那么可擦除有问题的块。此大扫除可使存储器装置100的总性能降级高达约10%。
不同的存储器系统可具有不同的性能特性。在许多实例中,这些存储器系统的性能可直接与存储器装置的性能相关。举例来说,卡的处理量通常与向快闪存储器中存储数据的速度相关。还存在许多其它因素,例如连接到控制器的存储器装置的数量及可如何交错所述存储器装置以产生不同的存储器组织。
本发明可通过执行后台擦除来提高存储器系统的总性能。换句话说,后台控制器350提供用于在存储器系统300未正在存取存储器装置100时执行这些大扫除操作中的一些操作的手段。
然而,许多存储器系统300可对存储器装置100或存储器卡320加电及掉电以降低电力消耗。当此电力循环发生时,存储器装置100可能不能够执行后台擦除操作,因为电力到存储器装置100的持续时间是暂态的且可不为存储器装置100所知。
可认为块擦除操作是可阻碍存储器装置的总性能的大扫除操作,因为正常操作(例如,读取及写入)不能够在块擦除期间发生。
可将NAND类型的快闪存储器的第一级性能模型近似为包括写入传送模型及读取传送模型。块擦除主要影响所述写入传送模型。因此,在本文中不对所述读取传送模型加以论述。
可基于完全编程及擦除一个NAND块所需要的时间来计算第一级写入传送速率:
T写入=n字节/块/((n页/块(n字节/页*tWC+tPROG))+tBERS)
对于典型的512Mb x8的装置来说,这些变量可以是:
n字节/块=每块的字节数量=16896;
n页/块=每块的页数量=32;
n字节/页=每页的字节数量=528;
tWC=写入循环时间=50nS;
tPROG=编程时间=200uS;及
tBERS=块擦除时间=2mS。
因此,T写入=16896/((32(528*50ns+200us))+2ms)=1.8MB/秒
在本发明的实施例中,可在空闲时间期间、部分地在空闲时间期间或在未正在执行其它操作时的掉电时进行块擦除时间,以改善总写入传送速率。因此,如果在后台进行所有块擦除,那么所述写入传送速率可高达:
T写入=16896/(32(528*50ns+200us))=2.3MB/秒
需注意的一点是,总的大扫除工作不会因执行后台擦除而改变,因此对所述系统的总能量需求不存在影响。后台控制器350恰好在不同的时间且以可改善总的存储器系统性能的方式执行所述擦除操作。
如图3A中图解说明,可以不同的配置实施各种旗标,其中某些配置在软件实施方案中可更便利且某些配置在硬件实施方案中可更便利。请回忆,存储器装置100可接收命令且其也可将读取/写入循环接收到状态寄存器140或命令寄存器150。因此,可将所述旗标实施为已接收命令总线循环、已发送响应总线循环、状态寄存器140或命令寄存器150中的位或硬件信号。因此,后台启用旗标362可以是每当接收后台启用命令时设定的旗标,其可以是状态/命令寄存器中的后台启用位,其可以是后台启用信号372,或其可实施为以上的组合。同样,后台-过程-忙碌旗标364可以是由后台控制器350发出的指示后台-过程-忙碌总线响应或后台-过程-已进行总线响应的总线循环。后台-过程-忙碌旗标364还可以是状态/命令寄存器中的后台-过程-忙碌位,其可以是后台-过程-忙碌信号374,或其可实施为以上的组合。最后,即将-掉电旗标366可以是每当接收即将-掉电命令时设定的旗标,其可以是状态/命令寄存器150中的即将-掉电位,其可以是即将-掉电信号376,或其可实施为以上的组合。
分别图解说明于图6及图7中的过程600及700图解说明可由后台控制器350执行的代表性过程及使用各种旗标的方式。除非另外明确说明,否则并非既定将说明所述过程的次序理解为限制。此外,所述过程可实施于任何适合的硬件、软件、固件或其组合中。通过实例的方式,过程600可实施于图3中所示的存储器控制器330、图1、3及4中所示的存储器装置100或图5中所示的快闪驱动器530上。当然,可在图3及4中所示的处理器310、图3中所示的存储器控制器330或其组合上执行快闪驱动器530。
当作为固件或软件执行时,可将用于执行所述过程的指令存储在计算机可读媒体上。计算机可读媒体包括但不限于磁性及光学存储装置,例如磁盘驱动器、磁带、CD(光盘)、DVD(数字通用光盘或数字视频光盘)及半导体装置(例如,RAM、DRAM、ROM、EPROM及快闪存储器)。
本发明的代表性实施例可在正常操作期间以后台模式操作,其中可在空闲时间期间执行后台擦除以提高总性能。如图6中所示,过程600图解说明所述存储器装置的正常操作期间的此后台模式。本发明的代表性实施例还可以结合在不久的将来掉电的存储器装置的后台模式操作,其中可通过在电力的移除(在所述存储器装置中可能存在很少或不存在其它活动的时间周期)之前等待执行后台擦除来改善总性能。如图7中所示,过程700图解说明结合在不久的将来掉电的存储器装置的此后台模式。
图6中所图解说明的过程600包括动作610-670且可用于其中需要在正常操作期间且可能利用空闲时间以及掉电时间进行后台擦除的存储器系统中。过程600在决策块610处开始,其一直等到接收到擦除命令。所述擦除命令可由至少一个指示要擦除存储器装置100中的哪一块的可擦除块地址伴随。过程600在决策块610上循环,直到接收到所述擦除命令,然后进行到决策块620。决策块620进行测试以断定是否断言了后台启用旗标362,可在过程600的开始之前的任何时间断言后台启用旗标362。如果未断言后台启用旗标362,那么执行在操作块660处继续,如下文所解释。如果断言了后台启用旗标362,那么执行在操作块630处继续,操作块630用指示所述操作为可选的虚线显示。
如前文所陈述,一些实施例可不包括后台启用旗标362。在那些实施例中,可认为决策块620不存在(即,控制从决策块610的真评估流动且在操作块630处继续),或可认为决策块620总是评估为真。
在操作块630处,一些实施例可在此点处断言后台-过程-忙碌旗标364以指示擦除指令待处理。其它实施例可稍后断言后台-过程-忙碌旗标364。
接下来,决策块640在其自身上循环,直到时间延迟事件发生。所述时间延迟事件可以是任何数量的事件。举例来说,所述时间延迟可以是等待由多个时钟循环测量的预定时间延迟,一直等到接收到后续命令,或一直等到预定数量的空闲循环已在总线上发生。所述时间延迟可经配置以尝试一直等到所述存储器装置为空闲,以便通过不在所述存储器装置忙于执行其它操作时尝试擦除循环来改善总存储性能。在其它实施例中,所述时间延迟可经配置以在接收到即将-掉电旗标366时期满。在所述实施例中,可将一个或一个以上擦除命令拖延到确定几乎要掉电的时间,然后在移除电力之前执行所述擦除循环。
在所述时间延迟事件发生之后,所述过程转向操作块650,其中断言后台-过程-忙碌旗标364。注意,后台-过程-忙碌旗标364可能已在可选操作块630中被断言,在此情况下,只是重新断言后台-过程-忙碌旗标364。接下来,在操作块660中,执行任何待处理擦除循环。在执行所述擦除循环之后,操作块670求反后台-过程-忙碌旗标364以完成过程600。
所属技术领域中的技术人员应认识到,过程600包括信号交换机构,其中发出擦除命令的代理可等待后台过程忙碌旗标被求反,以确定所述擦除命令实际上已被执行。此信号交换过程在图7中所图解说明的有些不同的代表性实施例中甚至更明显。
图7图解说明过程700,其包括动作710-790且可用于频繁地循环电力的存储器系统300中。过程700包括两个过程,一个(包括动作710-730)由请求者实施,且另一个(包括动作740-790)由执行者实施。举例来说,在图3中,所述请求者可以是处理器310,而所述执行者可以是存储器控制器330或存储器装置100。作为另一实例,在图4中,所述请求者可以是处理器310且所述执行者可以是存储器装置100。作为再一实例,在图4及5中,所述请求者可以是在处理器310上执行的文件系统520,而所述执行者可以是在处理器310上执行的快闪驱动器530。
过程700在操作块710处开始,其中请求者断言即将-掉电旗标366。在断言所述即将-掉电旗标366之后,所述请求者转向决策块720,其中所述请求者循环等待直到不再断言后台-过程-忙碌旗标364。作为所述信号交换过程的部分,所述执行者控制后台-过程-忙碌旗标364。
所述执行者在检测到即将-掉电旗标366被断言时开始操作,如操作块740所图解说明。接下来,在决策块750中,测试后台启用旗标362。如果未断言后台启用旗标362,那么控制转向操作块790,因为后台擦除过程未被使用。如前文所陈述,一些实施例可不包括后台启用旗标362。在那些实施例中,可认为决策块750不存在(即,控制从操作块740流到决策块760),或可认为决策块750总是评估为真。
在决策块760处,进行测试以看是否存在任何擦除命令未决。如果不存在,那么不需要所述后台擦除信号交换且控制转向操作块790。如果存在任何擦除命令未决,那么控制转移到操作块770。在操作块770中,断言后台-过程-忙碌旗标364,其是到请求者的指示移除电力还不安全的信号交换信号。
接下来,可选操作块775可执行将所估计完成时间发送回处理器的过程。如果所述后台控制器包括启用的后台持续时间寄存器368,那么所述后台控制器可解释其必须执行多长时间的后台操作。然后,其可将所述所估计完成时间发送回所述处理器。在此所估计完成时间模式中,所述处理器可在没有信号交换操作的情况下确定何时掉电适当。
接下来,操作块780执行待处理的擦除操作。最后,在操作块790处,求反后台-过程-忙碌旗标364,从而指示现在可安全地移除电力。注意,如果从分支795到达操作块790,那么就未曾断言后台-过程-忙碌旗标364。换句话说,分支795也可直接转到执行者的过程的末尾,而不求反后台-过程-忙碌旗标364,因为早前未对其进行断言。图中显示分支795转到操作块790作为加强等待后台-过程-忙碌旗标364变为求反状态的请求者的信号交换机构的方式。然而,在包括所估计完成时间的操作中,可不需要所述信号交换机构。
在检测到后台-过程-忙碌旗标364被求反之后,或在所述所估计完成时间已期满之后,执行者转向操作块730,其中其可安全地从存储器装置移除电力,而不丢失任何擦除命令。
虽然已参照特定实施例说明了本发明,但本发明并不受限于所说明的这些实施例。而是,本发明仅受所附权利要求书的限制,所述权利要求书在其范围内包括根据所说明的本发明原理操作的所有等效装置或方法。