专利名称:用于流水线存储器的有效读取/写入方法
技术领域:
本发明一般涉及大容量数字数据存储系统。更具体而言,本发明涉及用于减少与多态存储系统相关的内务操作的系统和方法。
背景技术:
由于诸如闪存存储系统等非易失性存储系统的实体尺寸紧凑且非易失性存储器具有可重复编程的能力,所以此类存储系统的使用正在迅速增加。闪存存储系统紧凑的实体尺寸方便了此类存储系统在日益流行的各种装置中的使用。使用此类存储系统的装置包括,但不仅限于,数字照相机、数字摄像机、数字音乐播放机、便携式个人计算机及全球定位装置。闪存存储系统内包含的可对非易失性存储器重复编程的能力使得闪存存储系统可使用和重复使用。
流式传输进一存储系统的数据普遍均逐位写入存储单元,或更普遍地,写入存储元件并逐位自该存储元件读取。如所属领域的技术人员所了解的,写入操作通常是缓慢的,例如,需要花费相对长的时间去实施。有时,某些读取操作也甚为耗时。
如所属领域的技术人员所了解,写入或自单元读取的位通常需要缓冲。当一连通存储器的数据母线的带宽实质上小于可写入、读取及在存储器内并行运行的位数时,一般会对位进行缓冲。对位进行缓冲也会缓解带宽和功率消耗问题。
待缓冲的每个位一般都需要一主从寄存器位。通常,每一主从寄存器位需要配置多达约24个晶体管。图12所示为一已知的主从寄存器或主从触发器。一包含一重置功能的主从寄存器1200适用于缓冲一个位。对于一非易失性存储系统,例如,一包含多达约4000可同步运行的单元或存储元件的存储系统,每个单元内一般可存储1或2个位。如此,当要缓冲16,000个位的每一个位时,需要16,000个主从寄存器位,这通常又会需要大量的晶体管。配置大量支持主从寄存器位的晶体管会于一存储系统内占用非人们所期望的更多的实际空间,且因此更昂贵。
为减少一存储装置内对位缓冲所需的晶体管数量,可配备单数据锁存器用作缓冲器以代替主从锁存器或主从寄存器位。可同步运行的各存储单元具有一个或更多关联缓冲器,其既适用于缓冲存储在存储单元内的数据也适用于缓冲自存储单元读取的数据。使用单数据锁存器而非主从锁存器可使得与缓冲能力相关的晶体管数量最多降低约50%。然而,当主从锁存器使用一相对简单的时钟方案来选择需存取的单独主从锁存器时,使用数据锁存器通常需要更复杂的寻址方案以存取单独数据锁存器。在某些情况下,此类寻址方案可能需要比支持主从锁存器或主从位更多的晶体管。
由于一使用大量晶体管的寻址方案可能无效,因此有时需配备脉动时钟,以能够顺次存取数据锁存器。换言之,就一存储装置内与其它存储单元相关联的数据锁存器而言,可顺次存取与各存储单元相关联的单数据锁存器。图13a所示为一脉动时钟存取数据锁存器的实例。一系统1300包含锁存器1310和主从寄存器或主从触发器1314。锁存器1310为数据锁存器,其每一个均与一存储单元相关联且可通过锁存启用(LE)信号启用。具体而言,一LEA信号启用锁存器1310a,一作为触发器1314的一输出的LEB信号启用锁存器1310b,及一作为触发器1314b的一输出的LEC信号启用锁存器1310C。触发器1314通常由一公用时钟(CK)信号进行控制。
一般而言,在任一给定时间仅置高一个LE信号,且通过触发器1314有效传播该置高的LE信号。该组置高的LE信号有效构成一脉动时钟。如图13b中一时序图所示,该图中具有一LEA信号1360a、一LEB信号1360b、及一LEC信号1360c,但在任一时间点仅置高一个LE信号1360,即置于一高值,以触发图13a中的锁存器1310。
配置在一诸如图13a系统1300等系统内的脉动时钟需要一主从锁存器或一触发器来产生启用信号,以串行存取每一组锁存器。如此的话,由于使用脉动时钟且每个存储单元均使用一单一数据锁存器,整个存储装置所需晶体管的数量不会减少。
因此,人们需要一种能够将位有效写入存储单元并有效读取而无需大量元件(诸如晶体管)的系统和方法。即,人们希望具有一种系统和方法能在有效实施写入和读取的同时减少与一多态存储单元中位写入及读取相关的内务操作。
发明内容
本发明涉及一种用于向/自存储单元有效写入数据并读取数据的系统和方法。根据本发明的一个方面,一存储系统包含一第一存储元件、一数据源、一第一元件、一第二元件及一脉动时钟。该数据源可提供多个位供存储在该第一存储元件内,而该第一元件自该数据源接收一第一个位,并且还将该第一个位的时间记录在该第二元件内。然后,在实质上将该第一个位存储入该第一存储元件的同时,该第一元件自该数据源接收多个位中的一第二个位。该脉动时钟使能够存取该第一元件和第二元件,以使该第一个位和第二个位形成流水线。
在一实施例中,该脉动时钟实质上还允许同时存取该第一存储元件以及包含在多个存储元件内的至少一第二存储元件。在另一实施例中,该第一缓冲元件是一第一锁存器及该第二缓冲元件是一第二锁存器。
使用多个诸如锁存器的缓冲元件使数据位以流水线方式写入或自一多态存储单元读出可使写入和读取操作相对更有效。如此,可减少多态存储器的内务操作费用。通过在将一个位自一第一锁存器写入该存储单元的同时将一个位加载入与一组存储单元相关联的一第二锁存器,可有效屏蔽与将该位加载入该第二锁存器相关联的时间。因此,整个写入过程可更加有效地进行。
根据本发明的另一方面,一计算系统包括一可提供一第一个位和一第二个位的主机,及一与该主机连通的存储装置。该存储装置包括一可将该第一个位的时间记录在一第二缓冲元件内的第一存储元件。实质上在该第二缓冲元件将该第一个位存储入该第一存储元件的同时,该第一缓冲元件自该主机接收该第二个位。最后,该存储装置包括一使能够存取该第一缓冲元件和第二缓冲元件的脉动时钟。
根据本发明的再一方面,一种方法可用于将多个位存储入一包括一存储元件、一第一缓冲元件及一第二缓冲元件的存储系统,该方法涉及接收多个位并将包含在多个位中的一第一个位提供至该第一缓冲元件。然后,启动一写入过程将该第一个位写入该存储元件,并且在启动将该第一个位写入该存储元件的写入过程后,将包含在多个位内的一第二个位提供至该第二缓冲元件。在将该第二个位提供至该第二缓冲元件后,即完成将该第一个位写入该存储元件的写入过程。
在阅读以下详细说明并研究图纸中的各附图后,本发明的这些及其它优点即显而易见。
通过结合所附图纸参阅以下说明,将会更好地了解本发明图1a是一根据本发明一实施例的整体主机系统的图示,,该主机系统包括一非易失性存储装置。
图1b是一根据本发明一实施例的非易失性存储装置的图示,即图1a中的非易失性存储装置120。
图2是一根据本发明一实施例的非易失性存储装置存储元件的图示,该存储元件可通过有效并行运行的锁存器接收待写入一存储元件的数据位。
图3是一根据本发明一实施例的非易失性存储装置存储元件,即图2中的非易失性存储元件的图示,该存储元件能够通过有效并行运行的锁存器自该非易失性存储元件检索数据位。
图4是一根据本发明一实施例的存储元件阵列的图示,该阵列具有2个写入锁存器和2个读取锁存器。
图5是一根据本发明一实施例的锁存器时间线的图示,可通过使用一脉动时钟可在不同时间存取该等锁存器。
图6a是一根据本发明一实施例的存储元件阵列和具有输入位的锁存器的图示。
图6b是一根据本发明一实施例的存储元件阵列和具有输入位的锁存器的图示。
图7是一根据本发明一实施例的流程图,其图解说明与一使用2个数据锁存器将数据写入一多态存储元件阵列的方法相关联的步骤。
图8是一根据本发明一实施例的流程图,其图解说明与一使用2个数据锁存器自一多态存储元件阵列读取数据的方法相关联的步骤。
图9是一根据本发明一实施例的存储元件阵列的图示,该阵列包括多个读取锁存器和多个写入锁存器。
图10是一根据本发明一实施例的存储元件阵列的图示,该阵列与用于临时存储待写入的位和待读取的位的锁存器相关联。
图11是一根据本发明一实施例包括一锁存器的读出装置的图示。
图12是一主从寄存器的图示。
图13a是一可由一脉动时钟存取的一组数据锁存器的图示。
图13b是一图解说明锁存器启用信号之间关系的时序图。
图14是一根据本发明一实施例的非易失性存储装置存储元件阵列的图示,该阵列可通过一组8个并行运行的锁存器接收数据位。
图15是一根据本发明一实施例的非易失性存储装置存储元件阵列的图示,该阵列可在一读取操作期间通过一组9个锁存器提供数据位。
图16是一根据本发明一实施例的非易失性存储装置存储元件阵列的图示,该阵列可通过有效并行运行的锁存器接收待写入一存储元件的数据位。
具体实施例方式
减少与一多态存储元件中位读取和写入相关的内务操作(例如,通过减少位读取和写入所需的晶体管数量),能够提高包括该存储单元的整个存储系统的性能。由于读取和写入操作尤其是写入操作特别耗费时间,所以减少与读取和写入操作相关的时间即可明显降低与多态存储操作相关的内务操作成本。
在读取和写入过程中使用与一多态存储元件相关的多个锁存器使位形成流水线,可提高读取和写入过程的速度。通过纳入一脉动时钟即可使用多个锁存器形成流水线,此不仅可减少与一包括存储元件的整个存储系统相关的晶体管数量,且可同时提高读取和写入的效率。
通常,数据通过一与存储系统连通的主机存储入一存储系统,例如,一非易失性存储单元。首先参照图1a,下文将介绍一通用主机系统,其包括一非易失性存储装置120,例如一CompactFlash卡。一主机或计算机系统一般包括一可允许一微处理机108、一随机存取存储器(RAM)112及输入输出电路116进行通讯的系统母线104。应了解,主机系统100通常还包括其它元件,例如,图中未显示的显示装置和网络装置。
通常,主机系统100能够捕获信息,包括但不仅限于静态图像信息、音频信息、和视频信息。此类信息既可实时捕获,也可以一无线方式传输至主机系统100。尽管主机系统100实质上可为任一系统,但是主机系统100通常为一诸如数字照相机、视频摄像机、蜂窝通讯装置、一音频播放器或视频播放器等系统。然而,人们应了解,主机系统100实质上可为任一能够存储数据或信息的系统。
在一实施例中,非易失性存储装置120为一可拆卸式非易失性存储装置,其布置为连接至母线104以存储信息。一任选输入/输出电路块132可使非易失性存储装置120间接连接至母线104。若选用了此电路块,如所属领域技术人员所了解,该输入/输出电路块132可用于降低母线104上的负荷。非易失性存储装置120包括非易失性存储器124和一存储器控制系统128。在一实施例中,非易失性存储装置120可配置在一单芯片或一电路小片上。另一选择是,非易失性存储装置120可配置在一多芯片模块上,或多个可与非易失性存储装置120一起使用的分立组件上。
非易失性存储器124可用于存储数据,以便可视需要存取和读取该些数据。尽管人们了解非易失性存储器124内的某些数据不能擦除,但存储于非易失性存储器124内的数据也可视需要擦除。存储数据、读取数据和擦除数据的过程一般由存储器控制系统128进行控制。在一实施例中,存储器控制系统128管理非易失性存储器124的运行,以便通过大体上平均消耗非易失性存储器124的各区段来基本上实现非易失性存储器124的最大使用寿命。
如前面所述,非易失性存储装置120一般都包含一存储器控制系统128,即一控制器。通常,非易失性存储装置120可包括用于非易失性存储器124和存储器控制系统128(即控制器功能)的分离芯片。举例而言,非易失性存储装置包括但不仅限于PC卡、紧凑闪存(CompactFlash)卡、多媒体(MultiMedia)卡及安全数字(secure digital)卡,其均包括装设于一分离芯片上的控制器,其它非易失性存储装置可不包括配置于一分离芯片上的控制器。在一非易失性存储装置120不包括分离存储器和控制器芯片的实施例中,如所属领域的技术人员所了解,存储器和控制器的功能可集成在一单芯片内。一般而言,其它类型的非易失性存储装置包括内存条(Memory Stick)卡和智能媒体(SmartMedia)卡。
下文将参照图1b根据本发明的一实施例更详细阐述非易失性存储装置120。如上所述,非易失性存储装置120包括非易失性存储器124和存储器控制系统128。存储器124和控制系统128或控制器是非易失性存储装置120的主要元件。存储器124可为一形成于一半导体基板上的存储单元阵列,其中通过将2个或更多电荷电平之一存储于存储单元的单独存储元件上而将一个或多个数据位存储在单独的存储单元内。用于此等系统的一普通类型存储器的实例是一非易失性闪存电可擦可编程只读存储器(EEPROM)。
控制系统128通过母线15与一主机计算机或其它使用该存储系统存储数据的系统进行通讯。母线15一般为图1a中母线104的一部分。控制系统128还控制着包括一存储单元阵列的存储器124的运行,以写入由该主机提供的数据、读取由该主机请求的数据并完成存储器124运行中的各种内务功能。控制系统128通常包括一具有配套软件存储器和各种逻辑电路的通用微处理器。通常,控制系统128也包括一个或多个状态机用于控制专用例行程序的性能。
控制系统128一般通过地址译码器17对存储单元阵列11进行寻址。译码器17给阵列11的门和位线施加正确的电压,以便在一由该控制系统128寻址的一组存储单元中编程数据、读取数据或擦除该组存储单元。附加电路19包括编程装置,其根据编程入一组已寻址单元内的数据控制施加于该阵列各元件上的电压。电路19还包括读出放大器及其它自一组已寻址存储单元读取数据所需的电路。编程至阵列11内的数据,或最近自阵列11读取的数据通常都存储在控制系统128内的一缓冲存储器21中。控制系统128通常还包含用于临时存储命令和状态数据等的各种寄存器。
阵列11分为大量的存储单元BLOCKS 0-N。通常对于闪存EEPROM系统来说,该块即为擦除单位。换言之,每个块包含可一起擦除的最小数量的存储单元。也如图3所示,每个块通常分为若干页面。一个页面即为一编程单位。换言之,一基本编程操作将数据写入单元的最少一个页面内。每个页面内通常存储一个或多个数据扇段。如图1b所示,一个数据扇段包括用户数据和内务操作数据。内务操作数据一般包括一根据该数据扇段的用户数据计算出的纠错码(ECC)。控制系统128的一部分23在数据编程进阵列11时计算该ECC,并在自阵列11读取数据时检查该ECC。另一选择是,该等ECC可存储在除与其相关的用户数据外的不同页面内,或不同块内。
一用户数据的扇段通常为512字节,对应于磁盘驱动器内一扇区的尺寸。内务操作数据通常为一附加的28字节。最常见地,每个页面包含一个数据扇段,但2个或更多个扇段也可构成一个页面。许多页面构成一个块,例如从8个页面到高达512,1024或更多个页面。块的数量须选择为可给该存储系统提供期望的数据存储容量。阵列11通常分为若干子阵列(未显示),其中每一个皆包含部分彼此略微独立运行的块,以提高实施各种存储操作时的并行度。美国第5,890,192号专利中阐述了使用多个子阵列的一个实例,该专利以全文引用的方式并入本文中。
接着参照图2,下文将根据本发明的一实施例阐述一可通过有效并行运行的锁存器接收数据位的非易失性存储器存储元件。尽管可使用任何数量的锁存器,为便于讨论起见,下文参考使用2个锁存器(例如,在一2位系统中)来阐述图2。一非易失性存储器存储元件204是可存储数据位的数据存储器的基本单位,其可为一非易失性存储系统的一部分,例如,图1a中的非易失性存储系统120。人们应了解,一诸如存储元件204的存储元件是一存储系统内的基本存储单位。尽管存储元件204实质上可为任何类型的存储单位,但在一实施例中,存储元件204可为一单元或一存储单元。
当一数据位流206将存储在存储元件204内时,数据位流206在写入存储元件204之前可有效地暂时保存在或加载入锁存器208,212内。例如,位流206内的一第一个位可加载入锁存器208,并随后通过一并行位移操作输送至锁存器212。在该第一个位自锁存器212实质上写入存储元件204的同时,可将位流206内的下一个位加载入锁存器208。因此,使用锁存器208,212可使位流206内的位形成流水线,并由此提高与将位写入存储元件204相关的写入性能。如下文参照图5所述,使用一脉动时钟可允许锁存器208,212使与位流206相关的位形成流水线。
使用锁存器208,212来代替一个锁存器(例如,锁存器208)可有效加载数据供存储在存储元件204内。除减少整个存储装置所需晶体管的数量外,与锁存器208,212相关的流水线的形成能够实质性降低将数据写入存储元件204所需的写入时间。例如,将一个位自锁存器212写入存储元件204的写入操作可在大约100微秒(μS)内完成。在将一个位自锁存器208写入存储元件204通常所需的100μS期间,另一个位也加载入锁存器208。如所属领域的技术人员所了解,除将初始位加载入锁存器208之外,由于将位加载入锁存器208,212实质上与写入操作并行发生,所以与位加载入锁存器208,212相关的时间被有效“隐藏”起来。
通常,仅锁存器212将数据写入存储元件204。尽管两个锁存器208,212皆可设置用于将数据写入存储元件204,但仅允许一个锁存器(例如,锁存器212)写入存储元件204可实质上简化与锁存器208,212相关的电路系统。另外,与位写入存储元件204相关的具体电压要求可仅施加于锁存器212而非两个锁存器208,212。
为节省一存储装置上的空间,锁存器208,212也可用于暂时保存自存储元件204读取的数据。也就是说,锁存器208,212实际上可用于缓冲待写入的数据和待读取的数据。如图3所示,当自存储元件204读取数据时,可将数据锁存入锁存器208,212,并且当自锁存器208,212读取数据时会产生一输出数据流306。通常,自存储元件204读取的第一个位可加载入锁存器212,然后将其时间记录在锁存器208内。当第一个位传送至锁存器208之后,自存储元件204读取下一个位并将其加载入锁存器212,以使该下一个位相对于该第一个位有效形成流水线。然后,通过一脉动时钟自锁存器208,212读取该些位。其结果是,与一读取操作相关的性能得以改进。
如图所示,可使用一任选第三锁存器310,以便在第一个位加载入锁存器212并移入锁存器208之后可将第二个位加载入锁存器212并移入锁存器310。一旦锁存器208,310被加载,一脉动时钟可使该第一个位和第二个位自锁存器208,310读出。即,一旦锁存器208,310满载,可自锁存器208,310读取位。当锁存器208,310是空的时,可再次自存储元件204读取位并移入锁存器208,310。通常,当存储元件204为一二位系统时,较佳在数据被读取之前使用2个锁存器存储数据。例如,在锁存器212有效地用作一门期间,锁存器208,310可在位被读取之前同时用于存储位。另一选择是,可取消锁存器310,且锁存器208,212在位被读取之前可用作存储位的2个锁存器。
应了解,尽管一组锁存器,例如图2中的锁存器208,212,可与一存储元件(诸如图2中的存储元件204)相结合,但是一组锁存器通常与多个存储元件相结合。换句话说,每个锁存器组通常与一存储元件阵列相结合。应了解,一存储元件阵列可包含任一数量的存储元件。如图16所示,一多态存储元件阵列1604可为一非易失性存储系统的一部分,可设置用于存储一数据位流1606。数据位流1606在写入存储元件阵列1604之前可有效地暂时保存在或加载入锁存器1608,1612内。位流1606中的第一个位可加载入锁存器1608,并随后通过一并行位移操作传送入锁存器1612。在该第一个位实质上自锁存器1612写入一存储元件阵列1604内的存储元件时,位流1606内的下一个位可加载入锁存器1608。
寻址电路系统1614可用于确定一加载入锁存器1612内的位将被存储在存储元件阵列1604中的哪一存储元件内。具体而言,包含多路复用和多路分解能力的寻址电路系统1614可有效用于选择存储元件阵列1604内所包含的一存储元件供连接至锁存器1612。
当一组既支持写入操作又支持读取操作的锁存器不能充分满足要求时,那么,就需要将一组“写入”锁存器和一组“读取”锁存器分配至一存储元件或一存储单元。图4是一存储元件阵列的图示,根据本发明的一实施例,该阵列具有2个写入锁存器和2个读取锁存器。当一输入数据流420写入一阵列404内的一存储元件时,包含在数据流420内的数据位可加载入锁存器410并传送入锁存器414。如上文参照图2所阐述,可将一个位传送入锁存器414,以便在将那一个位自锁存器414写入存储元件404的同时,来自数据流420的另一个位可同步加载入锁存器410。一旦来自锁存器414的位写入阵列404内的一存储元件,加载在锁存器410内的位即可传送或移至锁存器410内并写入阵列404内所包含的另一存储元件内;与此同时(实质上同时),另一个来自数据流420的位加载至锁存器410内。因此,锁存器410,414可使数据流420内的位形成流水线并有效写入阵列404内的多个存储元件。
待从阵列404读取的数据可加载入锁存器416并移入锁存器418。即,一存储在阵列404的一存储元件内的第一个位可加载入锁存器416,并且其时间记录在锁存器418内。然后,一来自一不同存储元件的第二个位加载入锁存器416。在该所阐述的实施例中,一旦锁存器416,418被加载,该些位即可作为一输出数据流的一部分流式输出。另一选择是,如上述讨论,锁存器416可用作锁存器418和另一锁存器(未显示)的一馈送门,以使数据实际上仅能自锁存器418和另一锁存器流式输出。
如上所述,可使用一脉动时钟使锁存器(诸如图2中锁存器208,212)能够形成数据流水线。图5是与本发明一实施例中一脉动时钟相关的时间线的图示,如该图所示,在一时间t1 502a,一脉动时钟实质上启动对锁存器506的并行存取。因此,当数据/存取控制信号518允许单个位存取每个锁存器506时,锁存器506即可形成数据流水线。通常,一脉动时钟使用一主从锁存器启动对一组锁存器(例如,一包括锁存器506的组)的并行存取。尽管此一主从锁存器可使用多个晶体管,但由于实际上每个脉动时钟阶段仅需要一个主从锁存器,并且每个脉动时钟可存取诸多锁存器,因此使用一脉动时钟形成数据流水线可降低与写入和读取多态存储元件相关的内务操作。
在时间t2 502b,脉动时钟可实质上启动对锁存器510的并行存取。在时间t3 502c,脉动时钟可同时使用数据/存取控制信号518启动对锁存器514的存取。应了解,一旦脉动时钟启动了所有锁存器组,诸如锁存器502、锁存器506和锁存器510,脉动时钟可循环回来再次启动对该等锁存器组的并行存取。即,例如在时间t4(未显示),脉动时钟可实质上启动对锁存器510的并行存取。
脉动时钟可启动一阶段或对一组锁存器(例如,锁存器502)的并行存取。例如,当并行存取锁存器505时,接收器可读取锁存器的数据,或一数据源可将数据放入锁存器502。换句话说,一脉动时钟可使并行读取能够在一组锁存器内同时进行,并且还实质上允许同时自该组锁存器中提取数据。在不同的时间502,可并行启动不同的锁存器组。
使用一脉动时钟通常可防止随机存取使用多个锁存器存储的数据。然而,当使用一脉动时钟实现流水线操作而使内务操作减少,即减少写入和检索数据所需的晶体管数量时,使用一脉动时钟和若干锁存器写入和读取数据就成为人们的期望。尤其是,当实际上不需要对使用多个锁存器存储的数据进行随机存取时,特别希望实现与减少存储数据所需晶体管数量相关的节省。
图6a是本发明一实施例中一写入操作期间的一存储元件阵列和锁存器的图示。锁存器604与一存储元件阵列608相结合,并可用于将位存储入阵列608内。在该所阐述的实施例中,在将位N首先加载入一锁存器604a后,例如,当一脉动时钟启动锁存器604a时,即可执行一并行位移以便将位N自锁存器604a移入锁存器604b,此后,位N+1即可加载入锁存器604a。然后,将位N自锁存器604b写入阵列608内的一存储元件。
图6b是本发明一实施例中一单一存储元件阵列及多个在一写入操作期间可存取该存储元件阵列的锁存器的图示。一脉动时钟可允许实质上同步加载锁存器616a,616b。例如,一位P+1和一位M+1可实质上同步分别加载入锁存器616a和锁存器616b内。在一实施例中,通过一并行位移可将加载入锁存器616a,616b的位提供给锁存器616d,616c。然后,位,例如,位M和位P可实质上同步存储入阵列620内的一存储元件。另一选择是,位M和位P可顺次存储入阵列620内的一存储元件。美国第6,222,762B1号专利阐述了一种用于将位M和位P存储入阵列620内的一存储元件的合适方法,该专利以全文引用的方式并入本文中。总之,在位M和位P存储入一与阵列620相关的第一存储元件的同时,位M+1和位P+1分别加载入锁存器616a和锁存器616b。
尽管几乎在一个位自锁存器616b加载入锁存器616c的同时一并行位移可将一个位自锁存器616a加载入锁存器616d,仍应了解,可以顺次加载该些位。例如,如果希望降低电噪声,可在将一个位自锁存器616b加载入锁存器616c之前或之后,将一个位自锁存器616a加载入锁存器616d。
参照图7,下文根据本发明的一实施例阐述关于一种使用2个数据锁存器将数据写入一包括一存储单元的双态或多态存储元件阵列的方法的步骤。应了解,虽然按照使用2个锁存器将数据写入一存储单元来阐述与写入数据相关的步骤,但事实上可使用任一数量的锁存器,例如,8个锁存器,将数据写入实质上任一存储元件来实施该等步骤。在步骤706开始一将数据写入一多态存储单元阵列或,更普遍而言,写入一非易失性存储器存储元件阵列的过程702,其中一写入该阵列内一存储单元的数据位N可加载入与该阵列相关的一第一锁存器。换句话说,一来自一数据流的第一个位可加载入该第一锁存器。实质上,该第一锁存器可自任一源(例如,一主机系统)接收数据位N。一旦数据位N加载入该第一锁存器,即可在步骤708通过一操作(诸如并行位移操作)将数据位N移入一第二锁存器。然后,在步骤710启动一写入过程将数据位N自该第二锁存器写入该存储单元阵列。
实质上在启动一写入过程将数据位N写入该存储单元阵列的同时,该数据流内的下一个数据位即可存储入与该存储单元阵列相关的第一锁存器内。即,在步骤714中,数据位N+1可加载入该第一锁存器。由此,数据位N和数据位N+1实际上形成流水线。在步骤714中,数据位N+1加载入该第一锁存器后,即完成在步骤710启动的写入过程,即在步骤718中完成将数据位N写入该存储单元阵列的写入过程。
一旦在步骤718中完成该写入过程,即刻在步骤720中将数据位N+1自该第一锁存器移入或加载入该第二锁存器。然后,在步骤722中启动一写入过程将存储在第二锁存器内的数据位N+1写入该存储单元阵列。当启动将数据位N+1写入该存储单元阵列的写入过程时,该数据流中的一后续数据位即可加载入第一锁存器726。在所述实施例中,数据位N+2在步骤726中加载入第一锁存器。一旦数据位N+2加载入第一锁存器,即可在步骤730完成将数据位N+1写入存储单元阵列的写入过程。然后,在步骤734中,实际重置N的值,例如,将数据位N+2初始化为新的数据位N,且过程流程返回至步骤708,在步骤708中,数据位N(即新的数据位N)将自第一锁存器移入第二锁存器。
图8是一过程流程图,其图解说明在本发明一实施例中与存储在一双态或多态存储单元阵列内的数据读入锁存器相关的步骤。在所述实施例中,使用3个锁存器自通常包含若干存储单元的存储单元阵列读取数据。在步骤806开始一过程802,其中自存储单元阵列或,更普遍而言,自一存储元件阵列获取一第一数据位N,并将其加载入与该存储单元阵列相关的一第一锁存器。在一实施例中,如图2和图3所示,该第一数据锁存器也可用于加载存储在该存储单元阵列内的数据,以及加载自该存储单元阵列获取的数据。另一选择是,如图4所示,用于加载自该存储单元阵列获取的数据的该第一数据锁存器实质上仅用于加载来自该存储单元阵列的数据。
一旦数据位N加载入在一实施例中可实际用作一门的第一锁存器,即可在步骤808中将数据位N自第一锁存器移入一第二锁存器。实质上在将数据位N移入第二锁存器的同时,在步骤814中将数据位N+1自存储单元阵列加载入第一锁存器。在数据位N+1加载入第一锁存器之后,在步骤816中将数据位N+1移入一第三锁存器。
在步骤820中,可允许运行一脉动时钟。通常,运行该脉动时钟用来启动自该第二锁存器和第三锁存器流式输出的位。因此,在步骤824中,自第二锁存器和第三锁存器读取数据。数据可实质上形成流水线。一旦在步骤824中自第二锁存器和第三锁存器读取数据,流程即返回步骤806,其中将一新的数据位自存储单元阵列加载入第一锁存器。
在一实施例中,将四个数据位当作4个位写入一存储元件,但以更高的精度读取,即读取为7个位。将4个存储位读为7个位并随后将7个位转换回4个位的方法阐述于2002年5月20日提交的标题为“使用有关所存储数据的质量的信息提高纠错码的有效性和运行多级存储系统”的共同未决美国专利申请第10/152,137号(Atty.档案号M-11304US)中,该专利申请以全文引用的方式并入本文中。在此一实施例中,为便于将位存储入一存储元件及自该存储元件检索位,可相对于该存储元件配置4个专用写入锁存器和7个专用读取锁存器。图9是一根据本发明的一实施例包含多个读取锁存器和多个写入锁存器的存储元件的图示。一存储元件904具有4个写入锁存器914,其设置用于加载由一与存储元件904通讯的数据源(未显示),例如一主机系统(未显示)提供的数据。位在写入存储元件904之前可加载入写入锁存器914。如先前所述,使用锁存器914写入存储元件904的4个位可自存储元件904读取为7个位。因此,在所示实施例中,使用7个读取锁存器916自存储元件904读取7个位。
当存储4个数据位而读取为7个数据位时,或更普遍而言,当将某一数量的存储位自一存储元件读取为更多数量的位时,用于暂时存储待写入存储元件的数据的锁存器也可用作锁存器暂时存储自存储元件读取的数据。即,一存储有某一数量的位但可读取为更多数量的位的存储元件可具有共享的读取和写入锁存器,而不具有参照图9所述的专用读取锁存器和写入锁存器。下文将参照图10阐述本发明的一实施例中一存储元件,该存储元件用于临时存储待写入位和待读取位的锁存器相关联。一存储元件1004可用于存储可读取为7个位的4个位,不过应了解,存储的位数和读取的位数通常会有很大的变化。
总之,为满足读取7个位的需要,存储元件1004需要配备7个锁存器1015a-g。锁存器1015a-g可用作自存储元件1004读取的位的临时缓冲器。通常,可自锁存器1015a-g中任取4个用作待写入存储元件1004的位的临时缓冲器。
如所属领域的技术人员所了解,写入操作要比读取操作耗时更多。因此,即使不使自存储元件1004读取的位形成流水线而仅使写入存储元件1004的位形成流水线也可提高与将信息存储入存储元件1004相关的整体效率。在写入操作期间,使用4个锁存器(例如锁存器1015a-d)作为写入锁存器并使用3个锁存器(例如锁存器1015e-g)用于形成流水线可使位以流水线方式存入存储元件。即,锁存器1015e-g的每一个皆可在位自锁存器1015a-d写入存储元件1004时用作可加载的锁存器。在一所示实施例中,一第8锁存器1015h可与存储元件1004相结合。除锁存器1015e-g之外,锁存器1015h可用作用于锁存器1015a-d的4个流水线锁存器,反之亦然。使用4个锁存器(即锁存器1015e-h)作为与4个锁存器1015a-d相关的流水线锁存器可使锁存器1015a-d中的每一个均具有一相关的流水线锁存器,因此可使4个位实质上同时写入存储元件1004。同样地,锁存器1015a-d也可作为流水线锁存器用于锁存器1015e-h。以下参照图14阐述使用8个锁存器使位以流水线方式写入一存储元件。
锁存器1015h可实质上专用于与存储元件1004相关的写入过程。即,在一写入操作期间可使用锁存器1015h,但其在一读取操作期间基本上保持不使用状态,其原因是一设置用于读取7个位的读取操作使用锁存器1015a-g。另一选择是,可改进一读取操作以将4个存储位读取为8个位,在此情况下,锁存器1015a-h可全部即用于写入操作又用于读取操作。
总之,锁存器1015h可专门用于存储元件1004。然而,在一实施例中,由于锁存器1015h实质上仅用于写入操作,因此锁存器1015h可被“共享”。例如,锁存器1015h的使用除便于将信息存储入存储元件1004外,也便于将信息下载入缓冲器。即,锁存器1015h可用作以读出装置的一部分。
图11是一根据本发明一实施例包括一锁存器的读出装置的图示。一读出装置1100通常设置用于将存储在一存储单元阵列(未显示)的信息提供至一缓冲器1105,或一数据锁存器。自该存储单元检索的数据可通过一读出放大器装置1117内的一或多个读出放大器进行处理。通常,首先自该存储单元读取最有效位,然后顺次读取其它位。
在所述实施例中,一锁存器1115设置用于在将输出下载入缓冲器1105之前锁存读出放大器装置1117的输出。通常,使用锁存器1115通过锁存每一多遍读取阶段中的数据来降低噪声灵敏度。虽然锁存器1115可与一涉及一存储元件或一存储单元的读取过程相关联,但锁存器1115也可用于一写入过程期间的一用途。例如,锁存器1115可在一写入过程期间用作图10中的锁存器1015h。即,除可在一整个读取过程期间用于锁存读取放大器装置1117所提供的数据外,锁存器1115也可在一涉及存储单元的写入过程期间用作一流水线锁存器,其中该存储单元用于为读出放大器1117提供数据。
图14是一根据本发明一实施例的非易失性存储器存储元件阵列的图示,其中该阵列可通过一组可有效并行运行的8个锁存器接收数据位。一非易失性存储器存储元件阵列1404可包括多态存储元件,但是存储元件阵列1404实质上可包括任一类型的存储元件,例如,双态存储元件。当将一数据位流1406存储入存储元件阵列1404时,数据位流1406在写入存储元件阵列1404之前可加载入锁存器1408,1412。例如,数据位流1406内的第一个位可加载入锁存器1408a并随后由一并行位移操作移入锁存器1412a,同时数据位流1406内的第二个位加载入锁存器1408b并随后通过一并行位移操作移入锁存器1412b。实质上,在第一个位自诸如锁存器1412a,1412b等锁存器写入存储元件阵列1404的同时,数据位流1406内的后续位可加载入锁存器1408a,1408b。总之,来自数据位流1406的位实质上可同步加载入锁存器1408,并使用一并行位移操作移入锁存器1412。然后,当锁存器1412内的位有效存入存储元件1404时,数据位流1406内的后续位即可加载入锁存器1408,并利用一并行位移操作移入锁存器1412。
在所述实施例中,实质上仅锁存器1412将数据写入存储元件阵列1404。尽管锁存器1408,1412皆可设置用于将数据写入存储元件阵列1401,但仅允许一组锁存器(即锁存器1412)写入存储元件阵列可实质性简化与锁存器1408,1412相关的电路系统。
一般而言,用于将数据写入一存储元件阵列的锁存器的数量可少于或等于用于自该存储元件阵列读取数据的锁存器的数量。例如,如果一非易失性存储元件阵列(诸如图14中的存储元件阵列1404)具有8个相关锁存器用于将数据存入存储元件阵列1404,那么,存储元件阵列1404通常需要8个或9个锁存器用于自存储元件阵列1404读取数据。图15是一根据本发明的一实施例的非易失性存储器存储元件阵列的图示,该阵列用于在一读取操作期间通过一组9个锁存器提供数据位。当自一存储元件阵列1504中读取一位流1506中的数据时,包含在位流1506内的第一个位即可加载入一锁存器1508,然后移入一锁存器1512a。在第一个位的时间记录在锁存器1512a内之后,一来自位流1506的后续第二个位加载入锁存器1508。然后,在一第三个位的时间记录在锁存器1512a内之前,此第二个位可移入一锁存器1512b。将位加载入锁存器1508并移入锁存器1512的过程通常连续进行,直到基本上加载了全部锁存器1512,或直到数据位流1506基本上流空。
一旦加载锁存器1512,一脉动时钟即可自锁存器1512读出其中所加载的位。作为结果,由于可并行读取8个位,所以可提高与一读取操作相关的性能。在所述实施例中,锁存器1508实际上可用作一允许将位加载入锁存器1512的门。然而,应了解,在一实施例中,锁存器1508既可用作一门亦可用作一流水线锁存器,例如,一脉动时钟实际上可直接自锁存器1508读取一个位的时间。如果锁存器1508具有形成流水线的能力,即可取消一锁存器1512(例如,锁存器1512h),其原因是锁存器1508和锁存器1512在一每个锁存器既可为一读取锁存器亦可为一写入锁存器的系统内可相当于图14中的锁存器1408,1412。尽管本文仅阐述了本发明的几个实施例,应了解,在不脱离本发明的精神或范围的条件下,可采用许多其它具体形式实施本发明。例如,通常将一存储装置内一可对加载入该存储装置内存储元件或自一该存储装置内存储元件检索的数据进行缓冲的元件称为一锁存器。然而,应了解,实质上可配置任一可对数据进行缓冲的适合元件来替代一锁存器。
如上文参照图4所述,可使用2组锁存器来锁存待写入一存储元件阵列的数据以及锁存自该存储元件阵列读取的数据。即,可将2个锁存器配置用作专用写入锁存器,2个锁存器配置用作专用读取锁存器。在一其中一存储元件阵列具有2个相关写入锁存器和2个相关读取锁存器的整体系统内,如果带宽条件不需要配备2个专用读取锁存器,则全部4个锁存器可用于缓冲写入该存储元件阵列的数据。当数据不写入该存储元件阵列时,2个锁存器也可用于缓冲自该存储元件阵列读取的数据。同样地,如果在此一系统内带宽条件至少暂时不需要2个专用写入锁存器,则2个写入锁存器也可用作读取锁存器。
总之,与本发明的过程相关的步骤会有很多不同。在不脱离本发明的精神或范围的前提下,可对步骤进行修改、再排序、增加或去除。例如,用于自一存储元件阵列读取数据及将数据写入一存储元件阵列的过程可包括若干测试,用于确定是否存在分别检索或加载的额外位。进一步,当自一读取锁存器读出数据的时间时,实质上同时将一个位加载入一门锁存器。因此,仅应将本发明实例视为举例说明性而非限制性,并且本发明不仅限于本文所给出的详细阐述,而是可在随附权利要求范围内进行修改。
权利要求
1.一种存储系统,所述存储系统适用于存储数据,所述存储系统包括多个存储元件,所述多个存储元件包括一第一存储元件;一数据源,所述数据源设置用于提供多个位,以存储于所述第一存储元件内;一第一元件,所述第一元件设置用于自所述数据源接收一包括在所述多个位内的第一个位;一第二元件,所述第二元件设置用于自所述第一元件接收一第一个位,所述第二元件进一步设置用于将所述第一个位存储入所述第一存储元件;和一脉动时钟,所述脉动时钟设置用于启动对所述第一元件和所述第二元件的存取。
2.如权利要求1所述的存储系统,其中所述脉动时钟进一步设置用于允许实质上同步存取所述第一存储元件和至少一包括在所述多个存储元件内的第二元件。
3.如权利要求1所述的存储系统,其中所述第一元件是一第一锁存器且所述第二元件是一第二锁存器。
4.如权利要求2所述的存储系统,其中所述第一元件设置用于实质上在所述第一个位存储入所述第一存储元件的同时自所述数据源接收一包括在所述多个位内的第二个位。
5.如权利要求4所述的存储系统,其中所述第二元件设置用于实质上自所述第一元件接收所述第二个位,所述第二元件进一步设置用于在所述第一元件自所述数据源接收一包括在所述多个位内的第三个位的同时将所述第二个位存储入一包括在所述多个存储元件内的第二存储元件。
6.如权利要求1所述的存储系统,其中所述第一元件设置用于在所述第一个位存储入所述第一存储元件后自所述数据源接收一包括在所述多个位内的第二个位。
7.如权利要求1所述的存储系统,其中所述存储系统进一步包括一数据接收器,并且所述第一元件进一步设置用于自所述第一存储元件接收一第三个位并将所述第三个位提供至所述数据接收器。
8.如权利要求7所述的存储系统,其中所述多个存储元件包括一第二存储元件,并且所述第二元件进一步设置用于实质上在将所述第三个位提供至所述数据接收器之后自所述第二存储元件接收一第四个位。
9.如权利要求1所述的存储系统,其中所述存储系统是一非易失性存储系统。
10.如权利要求9所述的存储系统,其中所述非易失性存储系统是一存储卡。
11.如权利要求10所述的存储系统,其中所述存储卡是一PC卡、一紧凑闪存卡、一多媒体卡、一安全数字卡、一智能媒体卡和一内存条卡其中之一。
12.如权利要求9所述的存储系统,其中所述第一存储元件是一非易失性存储元件。
13.一种计算系统,其包括一主机,所述主机设置用于提供多个位,所述多个位包括一第一个位和一第二个位;及一存储装置,其中所述存储装置与所述主机保持通讯,所述存储装置包括一存储元件阵列,所述存储元件阵列包括至少一个存储元件,一第一缓冲元件,所述第一缓冲元件设置用于自所述主机接收所述第一个位,一第二缓冲元件,所述第二缓冲元件设置用于自所述第一缓冲元件接收所述第一个位,所述第二缓冲元件进一步设置用于将所述第一个位存储入所述阵列,及一脉动时钟,所述脉动时钟设置用于启动对所述第一缓冲元件和所述第二缓冲元件的存取。
14.如权利要求13所述的计算系统,其中所述脉动时钟进一步设置用于允许实质上同时存取包括在所述阵列内的至少一个所述存储元件和至少一个第二存储元件。
15.如权利要求13所述的计算系统,其中所述第一缓冲元件是一第一锁存器和所述第二缓冲元件是一第二锁存器。
16.如权利要求13所述的计算系统,其中所述第一缓冲元件设置用于实质上在将所述第二个位存储入所述阵列的同时自所述主机接收一包括在所述多个位内的第三个位。
17.如权利要求13所述的计算系统,其中所述第二缓冲元件进一步设置用于自所述阵列接收一第三个位并将所述第三个位提供至所述主机。
18.如权利要求13所述的计算系统,其中所述第二缓冲元件进一步设置用于自阵列接收一第三个位并将所述第三个位提供至所述第一缓冲元件,其中所述第一缓冲元件设置用于提供所述第三个位至所述主机。
19.如权利要求13所述的计算系统,其中所述存储装置是一非易失性存储系统且至少一个所述存储元件是一非易失性存储元件。
20.如权利要求19所述的计算系统,其中所述存储装置是一PC卡、一紧凑闪存卡、一多媒体卡、一安全数字卡、一智能媒体卡和一内存条卡其中之一。
21.如权利要求13所述的计算系统,其中所述主机系统设置用于捕获信息,所述信息包括所述多个位,所述信息可为静态图像信息、音频信息、视频信息和以无线方式捕获的信息其中之一。
22.如权利要求21所述的计算系统,其中所述主机是一数字照相机、一摄像机、一蜂窝通讯装置、音频播放器和一视频播放器其中之一。
23.如权利要求13所述的计算系统,其中所述存储装置相对于所述主机系统可拆卸。
24.一种用于将多个位存储入一存储系统的方法,所述存储系统包括一至少包括一个存储元件的阵列、一第一缓冲元件和一第二缓冲元件,所述方法包括将一包括在多个位内的第一个位提供至所述第一缓冲元件;启动一写入过程将所述第一个位写入所述存储元件,其中启动所述写入过程将所述第一个位写入所述阵列包括将所述第一个位提供至所述第二缓冲元件;将一包括在所述多个位内的第二个位提供至所述第一缓冲元件,其中在启动所述写入过程将所述第一个位写入所述存储元件后,将所述第二个位提供至所述第二缓冲元件;及在将所述第二个位提供至所述第一缓冲元件后,完成将所述第一个位写入所述阵列的所述写入过程。
25.如权利要求24所述的方法,其进一步包括启动一写入过程将所述第二个位写入所述阵列,其中启动所述写入过程将所述第二个位写入所述阵列包括将所述第二个位提供至所述第二缓冲元件;实质上在启动所述写入过程将所述第二个位写入所述阵列后,将一包括在所述多个位内的第三个位提供至所述第一缓冲元件;及在将所述第三个位提供至所述第一缓冲元件后,完成将所述第二个位写入所述阵列的所述写入过程。
26.一种用于自一存储系统读取多个位的方法,所述存储系统包括一至少包括一个存储元件的存储元件阵列、一第一缓冲元件和一第二缓冲元件,所述方法包括将一包括在所述多个位内的第一个位提供至所述第一缓冲元件,所述第一个位由所述存储元件阵列提供;将所述第一个位自所述第一缓冲元件提供至一第二缓冲元件;及自所述第二缓冲元件获得所述第一个位。
27.如权利要求26所述的方法,其中所述存储系统进一步包括一第三缓冲元件,所述方法进一步包括实质上在将所述第一个位提供至所述第二缓冲元件后,将一包括在所述多个位内的第二个位提供至所述第一缓冲元件;将所述第二个位自所示第一缓冲元件提供至所述第三缓冲元件;及实质上在自所述第二缓冲元件获得所述第一个位的同时自所述第三缓冲元件获得所述第二个位。
28.如权利要求26所述的方法,其进一步包括实质上在将所述第一个位提供至所述第二缓冲元件后将一包括在所述多个位内的第二个位提供至所述第一缓冲元件;及实质上在自所述第二缓冲元件获得所述第一个位的同时自所述第一缓冲元件获得所述第二个位。
29.如权利要求29所述的方法,其中所述存储系统进一步包括一数据接收器,并且所述第一缓冲元件进一步设置用于自所述存储元件阵列接收一第二个位和提供所述第二个位至所述数据接收器。
30.一种存储系统,所述存储系统适用于存储数据,所述存储系统包括一第一元件;一第二元件,所述第二元件设置用于提供一第一个位和一第二个位;一第一缓冲元件,所述第一缓冲元件设置用于自所述第二元件获得所述第一个位,所述第一缓冲元件进一步设置用于将所述第一个位提供至所述第一元件;及一第二缓冲元件,所述第二缓冲元件设置用于实质上在所述第一缓冲元件将所述第一个位提供至所述第一元件的同时自所述第二元件获得所述第二个位,所述第二缓冲元件进一步设置用于在所述第一缓冲元件将所述第一个位提供至所述第一元件后提供所述第二个位至所述第一元件。
31.如权利要求30所述的存储系统,其中所述第一缓冲元件是一第一锁存器且所述第二缓冲元件是一第二锁存器。
32.如权利要求30所述的存储系统,其中所述存储系统是一非易失性存储系统。
33.如权利要求32所述的存储系统,其中所述非易失性存储系统是一存储卡。
34.如权利要求30所述的存储系统,其进一步包括一第三元件,其中所述第二缓冲元件仍进一步设置用于将所述第二个位提供至所述第三元件。
35.一种在一系统内使位形成流水线的方法,所述系统包括一第一元件、一第一锁存元件、一第二锁存元件和一脉动时钟,所述方法包括将一第一个位加载入所述第一锁存元件;启动一过程将所述第一个位提供至所述第一元件,其中所述第一元件至少设置用于暂时保存所述第一个位;及将一第二个位加载入所述第二锁存元件,其中实质上在启动所述过程将所述第一个位提供至所述第一元件的同时,所述脉动时钟使所述第二个位加载入所述第二锁存元件。
36.如权利要求36所述的方法,其进一步包括在将所述第二个位提供至所述第二锁存元件后,完成将所述第一个位提供至所述第一元件的所述过程。
37.如权利要求36所述的方法,其中所述过程是一写入过程,所述写入过程可用于将所述第一个位写入所述第一元件。
38.如权利要求37所述的方法,其中所述系统包括一第二元件,所述方法进一步包括自所述第二元件读取所述第一个位,其中自所述第二元件读取所述第一个位旨在将所述第一个位加载入所述第一锁存元件;及自所述第二元件读取所述第二个位,其中自所述第二元件读取所述第二个位旨在将所述第二个位加载入所述第二锁存元件,由此,实质上在启动所述过程将所述第一个位提供至所述第一元件的同时,所述脉动时钟使所述第二个位自所述第二元件读出。
全文摘要
用于有效向及自多态存储单元写入数据和读取数据的方法和设备。根据本发明的一个方面,一存储系统包含一第一存储元件、一数据源、一第一元件、一第二元件和一脉动时钟。该数据源可提供多个位供存储于该第一存储单元内,并且该第一元件自该数据源接收一第一个位,且也将该第一个位的时间记录在该第二元件内。然后,在该第一个位存储入该第一存储元件时,该第一元件实质上自该数据源接收包含多个位的第二个位。该脉动时钟能够存取该第一元件和该第二元件以使该第一个位和该第二个位形成流水线。
文档编号G06F12/00GK1662993SQ03814531
公开日2005年8月31日 申请日期2003年2月20日 优先权日2002年5月21日
发明者杰弗里·S·冈沃尔 申请人:桑迪士克股份有限公司