CN1105973C - 快速电可擦除可编程只读存储器中存储数据的方法 - Google Patents

快速电可擦除可编程只读存储器中存储数据的方法 Download PDF

Info

Publication number
CN1105973C
CN1105973C CN96198473A CN96198473A CN1105973C CN 1105973 C CN1105973 C CN 1105973C CN 96198473 A CN96198473 A CN 96198473A CN 96198473 A CN96198473 A CN 96198473A CN 1105973 C CN1105973 C CN 1105973C
Authority
CN
China
Prior art keywords
cache
data
memory
buffer
cache line
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.)
Expired - Fee Related
Application number
CN96198473A
Other languages
English (en)
Other versions
CN1206480A (zh
Inventor
R·N·哈斯布
A·费兹
J·林
P·J·鲁思托
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1206480A publication Critical patent/CN1206480A/zh
Application granted granted Critical
Publication of CN1105973C publication Critical patent/CN1105973C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Read Only Memory (AREA)

Abstract

电可擦除可编程只读存储器中存储数据的方法,包括将接收的高速缓存行存储到高速缓存器,每一高速缓存行与只读存储器的多个块的一个标识块中的一个地址相关;在高速缓冲缓存器为满时,将与一个同样标识的块相关的每一高速缓存行从缓存器拷贝到多个保持缓存器的一个同样的保持缓存器;将缓存器中的每一个所复制的高速缓存行标记为无效;将同一保持缓存器中的标识为无效的每一高速缓存行用来自同一所标识的块的一个对应的有效的高速缓存行来替换;擦除同一所标识的块;将同一保持缓存器复制到同一所标识的块。

Description

快速电可擦除可编程只读存储器中存储数据的方法
本发明涉及计算机系统,特别涉及将一个快速EEPROM存储器阵列用作计算机系统中的主存储器的方法和装置。
近来,快速电可擦可编程只读存储器(EEPROM)存储设备作为一种新型的永久存储器已被应用到存储器阵列中。一个快速EEPROM存储器阵列由大量的浮栅金属-氧化物-硅场效应晶体管器件构成,这些器件利用在不同的存储器状态下访问单个单元并设置那些单元的存储器晶体管的电路,以典型的行和列形式排列成存储器单元。这种晶体管可通过在浮栅上存储电荷而被编程。当该阵列被断电时,该电荷被保持。在读取该器件时可检测该电荷的有(一个“0”或被编程状态)或无(一个“1”或擦除状态)。
这些阵列被设计成用于完成以前由数字系统,特别是计算机系统中的其它形式的存储器完成的多种操作。例如,快速存储器正被用于取代计算机系统的各种只读存储器,如基本输入输出启动(BIOS)存储器。适当编程快速存储器的能力提供了优于大多数现有EPROM存储器的优点。最近,快速存储器已被用于提供更小更轻而功能上等同于一个机电硬盘驱动器的存储器。由于快速存储器读取速度更快而且对于物理损伤不象机电硬盘驱动器那样敏感,从而使其非常有用。在空间非常宝贵且重量尤其重要的便携式计算机中,快速硬盘驱动存储器尤为重要。
通常,一个快速EEPROM存储器阵列被分成多个相互连接的数据块,以使存储器单元的每个数据块可被同时擦除。这种擦除将数据块中的所有单元置为被擦除状态。此后,一个单元可单独被编程以存储数据。由于一个存储器阵列数据块的所有晶体管是为了被同时擦除而连在一起的,所以一个被编程状态下的单元不能被转换到擦除状态,直到该阵列的整个数据块被擦除为止。然而,一个机电硬盘驱动器典型地将信息存储在磁盘的第一区域并在该信息发生变化时重写该盘的同一区域,对于一个快速EEPROM存储器阵列来说,不擦除与无效信息一起保存在该数据块中的所有有效信息是不可能的。因此,在现有技术中,当数据项的信息发生变化时,新信息被写到一个新的存储器区域,而不是盖写在旧数据上;并且将该旧数据标记为无效。然后,在一个数据块的足够多的部分被标记为无效并且只有在保留在该数据块中的所有有效信息被写到新的存储器区域之后,才可以擦除整个数据块。
通常,可以以与动态随机存取存储器(DRAM)相同的速率和大于机电硬盘驱动器的速率来读快速存储器,因为对一个行列阵列的访问要比访问一个旋转磁盘快得多。但是,由于对一个快速设备进行写操作所需的电平非常大,所以即使是写到快速存储器的一个空数据块上所花费的时间也比写到DRAM上花费的时间长。而且,由于变化的数据没有直接覆盖一个快速存储器数据块中的无效数据,而是被写到一个新的区域,旧数据被无效掉,且带有无效数据的数据块最终被擦除,所以写到快速存储器的平均时间要比写到DRAM的平均时间长得多。
这样,虽然快速存储器在计算机系统中已被用于实现多种功能,但是还没有被用作主存储器,尽管它不需要刷新周期和附带的功率消耗并提供了数据的永久存储。人们认为用于快速存储器写操作的时间太长以致于不能将快速存储器用作主存储器。
人们希望在计算机系统中将快速存储器用作主存储器。
因此,本发明的一个目的是提供在计算机系统中用于将快速存储器用作主存储器的装置和方法。
根据本发明,一种在一个快速电可擦除可编程只读存储器中存储数据的方法,包括如下步骤:
a)将所接收的高速缓存行存储到一个高速缓冲缓存器,其中每一个高速缓存行与非易失性存储器的多个块的一个所标识块中的一个地址相关;
b)在达到一个阈值的状态时,将与一个同样所标识的块相关的每一高速缓存行从该高速缓冲缓存器拷贝到多个保持缓存器的一个同样的保持缓存器;
c)将该高速缓冲缓存器中的每一个所复制的高速缓存行标记为无效;
d)将该同一保持缓存器中的标识为无效的每一高速缓存行用来自该同一所标识的块的一个对应的有效的高速缓存行来替换;
e)擦除该同一所标识的块;以及
f)将该同一保持缓存器复制到该同一所标识的块。
通过参照下列附图的详细说明,可以更好地理解本发明的目的和特征。在这几个图中,相似的元件用相似的标记来表示。
图1是依据本发明设计的计算机系统的方框图。
图2是依据本发明而设计的、用作图1所示系统的主存储器的快速存储器阵列的方框图。
图3是用于说明依据本发明而设计的快速存储器阵列中的数据存储的示意图。
图4是用于说明依据本发明的方法的流程图。
下面的部分详细描述中使用了符号标记来表示对一个计算机存储器中数据位的操作。这些描述和表示方法是数据处理领域的技术人员用来向本领域其他技术人员表达其工作实质内容的最有效的方法。所述的操作是那些需要物理量的物理控制的操作。尽管不是必然的,但这些物理量通常采用能被存储、传送、组合、比较及进行其它操作的电或磁信号的形式。主要是常用的缘故,将这些信号作为位(BIT)、数值(VALUE)、元素(ELEMENT)、符号(SYMBOL)、字符(CHARACTER)、项(TERM)、数字(NUMBER)等已证明是很方便的。但是,应当记住所有这些及相似的项是与适当的物理量相关的,并且它们只是为方便地应用这些物理量而采用的标记。
而且,所执行的操作通常是针对项(TERM)的,如相加或比较,它们通常与操作员所进行的思维操作有关。在这里描述的构成本发明的一部分的操作中,在大多数情况下不需要或不希望加入了操作员的因素;这些操作是机器操作。用于执行本发明操作的有用机器包括通用的数字计算机或其它类似的设备。应当记住在所有情况下操作计算机的方法操作与计算方法本身之间的区别。本发明涉及一种用于操作计算机以在处理电或其它(如机械,化学)物理信号的过程中产生其他所需的物理信号的方法和装置。
现参照图1,说明依据本发明的一个实施例而配置的计算机系统10。所示的系统10包括一个执行各种指令以控制系统10的操作的中央处理单元11。中央处理单元11通常通过一条处理器总线与一个桥接电路14相连接,该桥接电路控制对一个适用于在系统10各种部件之间传送信息的输入/输出总线12的访问。在图1中,总线12最好是外围部件互连(PCI)总线或其它尤其适于提供数据快速传送的局部总线。在图1选择这种总线的目的只是为了进行说明。在一个典型的系统10中,各种不同的输入/输出设备被连接到总线12上,作为总线主控器和总线受控器电路。例如,在本示例中,永久存储器15可被连接到PCI总线12上作为一个总线受控器电路。其他的输入/输出设备,如声音板(SOUND BOARDS)、帧缓冲存储器等也可连接到总线12上。
桥接电路14也可由一条存储器总线通过一个次级高速缓冲存储器16(通常称作L,高速缓冲存储器)而被连接到主存储器13。主存储器13一般由动态随机存取存储器(DRAM)按照本领域技术人员所公知的方式排列构成,以在向系统10提供电源期间存储信息。在本发明中,主存储器13是一个依据本发明而设计的快速EEPROM存储器阵列。
图2是一个快速EEPROM存储器模块20的方框图,该存储模块20可用作图1所示的主存储器13.该模块20通过一个快速控制器21与存储器总线相连。快速控制器21从存储器总线向高速缓冲存储器23、从高速缓冲存储器23向保持缓冲存储器25以及从保持缓冲存储器25向快速存储器阵列27写入数据。快速控制器21还从快速存储器阵列27向保持缓冲存储器25中写入数据。除了写操作以外,控制器21还对高速缓冲存储器23、保持缓冲存储器25和快速存储器阵列27按照这种顺序对其中的每一个进行读操作。
为了完成其操作,快速控制器21可包括多个部件电路,在现有技术中已经详细描述了这些电路。例如,控制器21可利用一个微处理器和局部缓冲存储器来执行与局部只读存储器或固件控制下的模块相关的操作。可选择地,控制器21也可以包括一个微控制器和用于执行与该模块相关的各种功能的状态机。该控制器能够执行的功能包括访问高速缓冲存储器23、保持缓冲存储器25和快速存储器阵列27中的每一个;一旦进行访问,就对高速缓冲存储器23、保持缓冲存储器25和快速存储器阵列27中的每一个进行读操作;一旦进行访问,就对高速缓冲存储器23、保持缓冲存储器25和快速存储器阵列27中的每一个进行写操作。控制器21还能够以一种后面将要描述的方式擦除快速存储器阵列的多个数据块中的每一个。此外,控制器21还包括以完成每个功能所需的各个步骤的逻辑(无论是以软件、固件还是硬件形式)。后面将详细描述这些步骤。
图3是用于说明数据被存入图2所示的模块20的高速缓冲存储器23、保持缓冲存储器25和快速存储器阵列27中的方式的示图。可以看到,模块20包括一个用于在较佳实施例中存储数据行的超高速缓冲存储器23。在一个基于INTEL微处理器,如PENTIUM处理器的系统中,主存储器13可以被用来接收从第二级(L,)高速缓冲存储器发送的等于32字节的数据行。尽管从一个L,高速缓冲存储器提供数据不是必须的,但本发明的一个实施例仍采用此方案。在任何特定下,所提供的数据行的大小可以改变,如果是这样,则高速缓冲存储器23的每个数据行的大小也会发生变化以使得高速缓冲存储器数据行的大小等于所述实施例中的一行数据。
本实施例中所示的高速缓冲存储器23是一个完全相联的DRAM高速缓冲存储器,使得向主存储器发送的一行数据可被放在任何可用存储位置上。一个已写入数据的存储位置其中包括一个有效位,一个作为快速EEPROM存储器的一个数据块内的偏移量的标记地址,一个块地址和数据。在高速缓冲存储器23中,一个用于一行数据的存储位置是可用的,并且如果对于已存入高速缓冲存储器的一行数据来说其标记地址与块地址相匹配或是一个高速缓冲存储器数据行为无效,则可以通过控制器21对该位置进行写操作。
如图3所示,模块20在阵列27中包括4个单独的快速EEPROM存储器块27a-27d。在任一个现实的阵列27中,可能会提供大量的快速EEPROM块,其数量足以应付系统使用的任意大小的主存储器;此处所示的数量只是为了进行说明。在任何情况下,都可以看到(从BLK项)高速缓冲存储器23存储了来自4个数据块0-3的每一个的数据行;这些块可能是所述的4个快速存储器阵列块27a-27d中的任意一个。如图3所述的实施例所示,高速缓冲存储器23是一个完全相联的高速缓冲存储器,使得高速缓冲存储器的任一数据行都能保持被写到任何地址的数据。在示例中(参看高速缓冲存储器23中的V或有效项),在高速缓冲存储器中除了一个数据行以外都是有效的。因此,寻址到该标记地址的数据以及在任何有效行的数据块可以被存到  高速缓冲存储器23中。这样,对块0中标记地址00000000的写入将使要存入的数据代替了当前存在高速缓冲存储器23中最高数据行的数据位置中的数据。同样,控制器21对图中行的左侧V项位置中前缀1的任一个标记地址和块地址的写入被称为一次高速缓冲存储器命中,并且将使要被存入所寻址行的数据代替了当前存在该行位置上的数据。为了更好地理解模块20的操作,我们将参考图4的流程图。
在控制器21尝试将数据写入高速缓冲存储器23失中的情况下,举例说明了一个能够写入的数据行,高速缓冲存储器23的倒数第四个数据行左侧V项位置的前缀为0,表明当前存在该位置上的数据是无效的。
一旦高速缓冲存储器23中存满了有效数据,控制器21就将那些高速缓冲存储器23中被寻址到该高速缓冲存储器中具有最大行数的数据块的数据行写入多个保持缓冲存储器25a、25b和25c中的一个中,这些保持缓冲存储器一起组成了图2所示的保持缓冲存储器25。象高速缓冲存储器23一样,这些保持缓冲存储器也可以是DRAM。如快速存储器的数据块一样,保持缓冲存储器的个数随各个系统而变;此处的个数3只是为了举例说明。但是,应当注意每个保持缓冲存储器的大小与快速存储器的数据块的大小相同(包含相同的行数)。在较佳实施例中,控制器21被设计成将要存入快速存储器阵列的一个数据块中的数据写入一个不包含数据或包含无效数据的各个保持缓冲存储器中的一个中。这些数据被写入下一个可用的空保持缓冲存储器中。由于这些数据都被编址指向一个快速存储器数据块,所以在任何时间任一个保持缓冲存储器都存储只指向一个数据块的数据。
在高速缓冲存储器23中存满了有效数据而且达到了一个快速存储器数据块的行数阈值时,所设计的用于控制从高速缓冲存储器23向保持缓冲存储器25写入数据的算法开始进行写。作为一条一般规则,阈值等于可以存入一个快速存储器数据块的数据行数。为了允许执行该算法以便于选择在高速缓冲存储器被填满时的每数据块的最大行数或在高速缓冲存储器被填满之前的阈值,控制器21包括一个存储器30,对于快速存储器阵列中的每个数据块,该存储器用于存储当前存在高速缓冲存储器23中的有效数据行数。该存储器可以是局部存储器中的一个数据结构,一组寄存器,或用于存储在执行这样的一个过程中所用的数据的任何装置。一个特定数据块的行数用计数存储器30来表示,可以通过在将该数据块的一行新数据存入高速缓冲存储器23时就增加该特定数据块的值来设置行数。
保持缓冲存储器25a、25b和25c中的每一个都被设计成保存其行数和一个快速存储器数据块的行数相等的一个数。在从高速缓冲存储器23向一个保持缓冲存储器写入数据行时,保持缓冲存储器被标记为有效(参看保持缓冲存储器25a的左上角),表示有效数据行被存入缓冲存储器中;并且该数据所寻址的快速存储器数据块的标识被存入保持缓冲存储器中(参看保持缓冲存储器25a最上行的BLK#)。在每个数据行被写到保持缓冲存储器中时,该数据行被标记为有效;并且此次写操作所对应的高速缓冲存储器23的数据行被标记为无效,计数存储器30中为该数据块所保存的数减1。这样就允许保留适当的读命令。根据该命令,只要在高速缓冲存储器中该数据行保持有效,对一个指向主存储器模块20的特定地址的读操作就将从高速缓冲存储器23中读出数据并停止操作。如果高速缓冲存储器数据行是无效的,则在保持缓冲存储器中试着对被寻址的数据块进行读操作;如果发现了有效数据行,则该操作是成功的,并在保持缓冲存储器级上停止该操作。如果高速缓冲存储器和保持缓冲存储器在该地址都不包含有效数据行,则读取快速存储器阵列的所寻址块。以这种方式,总是对最新的数据进行读操作。
一旦高速缓冲存储器23中具有最大行数的数据块的所有有效数据行已从高速缓冲存储器23写入了保持缓冲存储器并被标记为有效,在高速缓冲存储器23中就将这些被写的数据行标记为无效,并且对于快速存储器的该数据块计数存储器30数值递减为0,控制器21测试保持缓冲存储器中的无效数据行。如果在保持缓冲存储器中存在一些无效数据行(例如,图3中缓冲存储器25a的第7行为无效),则控制器21读取被寻址的快速存储器数据块27a(或27b,27c,27d)中的那些无效数据行并将从那些数据行中读出的数据写入保持缓冲存储器中的同一无效数据行中。以这种方式,保持缓冲存储器中存满了有效数据。
一旦保持缓冲存储器的所有数据行中都已存满了有效数据,控制器21就利用软件、固件或硬件等适当的处理过程来擦除这些数据所指向的快速存储器数据块。保持缓冲存储器一直将指向快速存储器数据块的数据保持到擦除该数据块为止。一旦控制器21完成了对快速存储器数据块27的擦除,控制器21就将数据从保持缓冲存储器写到空的数据块中。在将每个数据行从保持缓冲存储器写到快速存储器数据块中时,快速存储器数据块中的该数据行被标记为有效而保持缓冲存储器中的该数据块被标记为无效。当保持缓冲存储器中的所有数据行都被标记为无效时,该保持缓冲存储器被标记为无效且可以用来存储来自指向任何快速存储器数据块的高速缓冲存储器23的数据。
在本发明的较佳实施例中,在将一个保持缓冲存储器的数据写到所寻址的快速存储器数据块中之前,控制器检测高速缓冲存储器23以确定存在保持缓冲存储器中的任一有效数据行在高速缓冲存储器中是否也有效。由于高速缓冲存储器中的数据行在被写入保持缓冲存储器之后即被标记为无效,现在存在于高速缓冲存储器中的任何有效数据行一定比保持缓冲存储器中该地址的数据新。如果是这样,那些数据行被从高速缓冲存储器写到保持缓冲存储器中,保持缓冲存储器中的该数据行被标记为有效,且在数据被写到快速存储器数据块中之前,高速缓冲存储器中的该数据行被标记为无效,使得最新数据(而不是旧数据)最终被存入快速存储器数据块中。
在任何时候,可针对主存储器模块20中的一个地址进行读取。控制器首先在高速缓冲存储器23中尝试读操作。如果在高速缓冲存储器23中发现了具有该地址的有效数据行,则从高速缓冲存储器23中读出该数据并将其放至存储器总线上。即使该数据行中的数据刚刚被写到保持缓冲存储器中并在保持缓冲存储器中被标记为有效,如果在高速缓冲存储器23中该数据行还没有被标记为无效,那么也要从高速缓冲存储器23中读出该数据行。由于在高速缓冲存储器和保持缓冲存储器的所寻址的数据行中存有相同的数据,所以该数据保持有效;并且读操作的执行时间(LATENCY)保持在尽可能短的时间内。如果在高速缓冲存储器23中这种搜索失中,则控制器通过读取保持缓冲存储器而继续工作。控制器首先查找一个标记为有效的数据块地址。如果找到了,则控制器检查对应于被读出的数据行地址的标记。如果发现了一个有效的所寻址的数据行,则读取该数据行并将其放至存储器总线上。如果在保持缓冲存储器中的读操作失中,则控制器继续在所寻址的快速存储器数据块27a,27b,27c或27d中进行读操作。当满足匹配条件时,就从快速存储器数据块中读出该数据行。
应当注意在擦除任何一个快速存储器数据块和从保持缓冲存储器向该数据块写入数据的过程中,还可能发生该模块的其它操作。例如,由控制器21运行的某些进程可能被重复以致于也可能对于另一个快速存储器数据块发生第二个擦除过程。在高速缓冲存储器23级中可能出现读和写操作,而保持缓冲存储器和快速存储器数据块并没有参与该擦除和重写过程。
正如本领域技术人员所理解的,由于这里所述的独特配置,一个包括一快速存储器阵列27的模块20能够响应在当前中央处理单元所能够操作的范围之内的读操作和写操作。该读操作以同于DRAM主存储器的操作速度被执行。因为最初的写操作是直接针对DRAM高速缓冲存储器23的,所以在高速缓冲存储器23完全填满之前可以以同于DRAM主存储器的速度执行写操作。其它能够快写的存储器可被用来代替DRAM作为高速缓冲存储器。利用一个在保持缓冲存储器和快速存储器块的大小相对较大的高速缓冲存储器,响应一个要达到的数据块大小的临界值时,相比于其变为空的情况该高速缓冲存储器被填满的可能性越小。因此,从高速缓冲存储器23向保持缓冲存储器25写数据通常作为一个不会减慢读或写 高速缓冲存储器的速度的后台过程。
而且,如本领域技术人员所注意到的,对保持缓冲存储器的写过程被设计成删除,故在擦除该快速存储器块之前要求从快速存储器块向保持缓冲存储器回写有效数据行是可能的。如果该数据块的阈值触发了从高速缓冲存储器向保持缓冲存储器的写操作,则由于所选择的阈值等于填满一个快速存储器阵列数据块或一个保持缓冲存储器所需的数据行数,所以该保持缓冲存储器中存满了有效数据行并且不需要从快速存储器块回写。
但是,既使在高速缓冲存储器被填满而使得对高速缓冲存储器的写操作占用了控制器21时,其总速度仍足以跟得上个人计算机的中央处理单元。这是由于从高速缓冲存储器23的写操作是直接指向可进行快写的第二级DRAM缓冲存储器的。最后,对快速EEPROM数据块的写操作只在后台进行以致这些操作通常不会减慢进程的速度。
尽管已经以较佳实施例的形式详细描述了本发明,但是应该理解,本领域的技术人员在不偏离本发明构思和范围的情况下对本发明作出各种修改和改进是可能的。因此,本发明的保护范围应限定在下述的权利要求书的范围内。

Claims (7)

1.一种在一个快速电可擦除可编程只读存储器中存储数据的方法,包括如下步骤:
a)将所接收的高速缓存行存储到一个高速缓冲缓存器,其中每一个高速缓存行与非易失性存储器的多个块的一个所标识块中的一个地址相关;
b)在达到一个阈值的状态时,将与一个同样所标识的块相关的每一高速缓存行从该高速缓冲缓存器拷贝到多个保持缓存器的一个同样的保持缓存器;
c)将该高速缓冲缓存器中的每一个所复制的高速缓存行标记为无效;
d)将该同一保持缓存器中的标识为无效的每一高速缓存行用来自该同一所标识的块的一个对应的有效的高速缓存行来替换;
e)擦除该同一所标识的块;以及
f)将该同一保持缓存器复制到该同一所标识的块。
2.权利要求1的方法,其特征在于步骤a)还包括以下步骤:
i)以一个所选择接收的高速缓存行替换一个高速缓冲缓存器行项,如果该高速缓冲缓存器行项具有与该所选择接收的高速缓存行相同的地址和相同的所标识的块的话;以及
ii)如果没有一个高速缓冲缓存器行项具有与该所选择接收的高速缓存行相同的地址和相同的所标识的块,将所选择接收的高速缓存行存储在一个空的高速缓冲缓存器行项中。
3.如权利要求1的方法,其特征在于所述的阈值状态是该高速缓冲缓存器为满的状态。
4.如权利要求1的方法,其特征在于所述的阈值状态是对于同一所标识的块,高速缓存行的阈值存储在高速缓冲缓存器中,其中该阈值等于该同一所标识的块的大小。
5.如权利要求1的方法,其特征在于所述的阈值状态是对于同一所标识的块,高速缓存行的阈值存储在高速缓冲缓存器中,其中该阈值等于该同一保持缓存器的大小。
6.如权利要求1的方法,其特征在于该高速缓冲缓存器包括随机存取存储器。
7.如权利要求1的方法,其特征在于该高速缓冲缓存器是一个全相联高速缓存。
CN96198473A 1995-10-03 1996-10-03 快速电可擦除可编程只读存储器中存储数据的方法 Expired - Fee Related CN1105973C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/538,261 US5696929A (en) 1995-10-03 1995-10-03 Flash EEPROM main memory in a computer system
US08/538,261 1995-10-03

Publications (2)

Publication Number Publication Date
CN1206480A CN1206480A (zh) 1999-01-27
CN1105973C true CN1105973C (zh) 2003-04-16

Family

ID=24146162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN96198473A Expired - Fee Related CN1105973C (zh) 1995-10-03 1996-10-03 快速电可擦除可编程只读存储器中存储数据的方法

Country Status (8)

Country Link
US (1) US5696929A (zh)
EP (1) EP0853790B1 (zh)
KR (1) KR100307894B1 (zh)
CN (1) CN1105973C (zh)
AU (1) AU7390896A (zh)
DE (1) DE69635663T2 (zh)
HK (1) HK1015478A1 (zh)
WO (1) WO1997013204A1 (zh)

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
TW261687B (zh) 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JP2669365B2 (ja) * 1994-11-24 1997-10-27 日本電気株式会社 書換え可能なromファイル装置
DE19544571A1 (de) * 1995-11-30 1997-06-05 Sel Alcatel Ag Verfahren und Vorrichtung zum Programmieren eines Flash-EEProms
KR100232231B1 (ko) * 1996-09-13 2000-03-02 김영환 비휘발성 메모리 소자의 데이터 기입 장치 및 방법
EP0834812A1 (en) * 1996-09-30 1998-04-08 Cummins Engine Company, Inc. A method for accessing flash memory and an automotive electronic control system
GB2317722B (en) * 1996-09-30 2001-07-18 Nokia Mobile Phones Ltd Memory device
US5937423A (en) * 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
US6260102B1 (en) * 1996-12-26 2001-07-10 Intel Corporation Interface for flash EEPROM memory arrays
US6279069B1 (en) * 1996-12-26 2001-08-21 Intel Corporation Interface for flash EEPROM memory arrays
US6823435B1 (en) 1997-11-20 2004-11-23 Advanced Micro Devices, Inc. Non-volatile memory system having a programmably selectable boot code section size
US6571312B1 (en) * 1999-02-19 2003-05-27 Mitsubishi Denki Kabushiki Kaisha Data storage method and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory
US6795890B1 (en) * 1999-02-19 2004-09-21 Mitsubishi Denki Kabushiki Kaisha Data storage method, and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory
US7953931B2 (en) * 1999-08-04 2011-05-31 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US6477676B1 (en) * 1999-11-03 2002-11-05 Unisys Corporation Intermediate stage of a multi-stage algorithmic pattern generator for testing IC chips
US6415408B1 (en) * 1999-11-03 2002-07-02 Unisys Corporation Multi-stage algorithmic pattern generator for testing IC chips
JP3578265B2 (ja) * 1999-11-19 2004-10-20 日本電気株式会社 不揮発性メモリへのデータ書き込み方法および情報処理装置ならびに記録媒体
US8019943B2 (en) * 2000-01-06 2011-09-13 Super Talent Electronics, Inc. High endurance non-volatile memory devices
KR20010076897A (ko) * 2000-01-28 2001-08-17 박태진 실시간 처리 시스템에서의 데이타 저장 제어 방법
EP1297434B1 (en) * 2000-06-27 2005-04-20 Koninklijke Philips Electronics N.V. Integrated circuit with flash
US6704835B1 (en) * 2000-09-26 2004-03-09 Intel Corporation Posted write-through cache for flash memory
US6584017B2 (en) 2001-04-05 2003-06-24 Saifun Semiconductors Ltd. Method for programming a reference cell
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
TW539946B (en) * 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
DE10151733A1 (de) * 2001-10-19 2003-04-30 Infineon Technologies Ag Prozessor-Speicher-System
US6928527B2 (en) * 2002-01-31 2005-08-09 Saifun Semiconductors Ltd. Look ahead methods and apparatus
US6917544B2 (en) 2002-07-10 2005-07-12 Saifun Semiconductors Ltd. Multiple use memory chip
US7103731B2 (en) * 2002-08-29 2006-09-05 International Business Machines Corporation Method, system, and program for moving data among storage units
US7136304B2 (en) 2002-10-29 2006-11-14 Saifun Semiconductor Ltd Method, system and circuit for programming a non-volatile memory array
US7117306B2 (en) * 2002-12-19 2006-10-03 Intel Corporation Mitigating access penalty of a semiconductor nonvolatile memory
US7178004B2 (en) 2003-01-31 2007-02-13 Yan Polansky Memory array programming circuit and a method for using the circuit
CN100428358C (zh) * 2003-06-24 2008-10-22 群联电子股份有限公司 闪存高速大区块的数据写入方法
US7173852B2 (en) 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7412581B2 (en) * 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
KR100606242B1 (ko) * 2004-01-30 2006-07-31 삼성전자주식회사 불휘발성 메모리와 호스트간에 버퍼링 동작을 수행하는멀티 포트 휘발성 메모리 장치, 이를 이용한 멀티-칩패키지 반도체 장치 및 이를 이용한 데이터 처리장치
KR101085406B1 (ko) * 2004-02-16 2011-11-21 삼성전자주식회사 불 휘발성 메모리를 제어하기 위한 컨트롤러
US20050273560A1 (en) * 2004-06-03 2005-12-08 Hulbert Jared E Method and apparatus to avoid incoherency between a cache memory and flash memory
US7258100B2 (en) * 2004-08-03 2007-08-21 Bruce Pinkston Internal combustion engine control
JP4713867B2 (ja) * 2004-09-22 2011-06-29 株式会社東芝 メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
US7638850B2 (en) 2004-10-14 2009-12-29 Saifun Semiconductors Ltd. Non-volatile memory structure and method of fabrication
KR100650839B1 (ko) * 2004-10-25 2006-11-27 에스티마이크로일렉트로닉스 엔.브이. 플래시 메모리 시스템 및 그 소거방법
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7395404B2 (en) * 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7315916B2 (en) 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
KR100578143B1 (ko) * 2004-12-21 2006-05-10 삼성전자주식회사 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US8053812B2 (en) 2005-03-17 2011-11-08 Spansion Israel Ltd Contact in planar NROM technology
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8619452B2 (en) 2005-09-02 2013-12-31 Google Inc. Methods and apparatus of stacking DRAMs
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US7786512B2 (en) 2005-07-18 2010-08-31 Saifun Semiconductors Ltd. Dense non-volatile memory array and method of fabrication
US7668017B2 (en) 2005-08-17 2010-02-23 Saifun Semiconductors Ltd. Method of erasing non-volatile memory cells
US7808818B2 (en) 2006-01-12 2010-10-05 Saifun Semiconductors Ltd. Secondary injection for NROM
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7760554B2 (en) 2006-02-21 2010-07-20 Saifun Semiconductors Ltd. NROM non-volatile memory and mode of operation
US7692961B2 (en) 2006-02-21 2010-04-06 Saifun Semiconductors Ltd. Method, circuit and device for disturb-control of programming nonvolatile memory cells by hot-hole injection (HHI) and by channel hot-electron (CHE) injection
US8253452B2 (en) 2006-02-21 2012-08-28 Spansion Israel Ltd Circuit and method for powering up an integrated circuit and an integrated circuit utilizing same
US7701779B2 (en) 2006-04-27 2010-04-20 Sajfun Semiconductors Ltd. Method for programming a reference cell
US20080025136A1 (en) * 2006-07-31 2008-01-31 Metaram, Inc. System and method for storing at least a portion of information received in association with a first operation for use in performing a second operation
KR100874702B1 (ko) * 2006-10-02 2008-12-18 삼성전자주식회사 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
TWI344085B (en) * 2007-11-15 2011-06-21 Genesys Logic Inc Storage system for improving efficiency in accessing flash memory and method for the same
CN101458664B (zh) * 2007-12-13 2012-09-19 鑫创科技股份有限公司 数据快取架构使用的快取方法与快取装置
US7590001B2 (en) 2007-12-18 2009-09-15 Saifun Semiconductors Ltd. Flash memory with optimized write sector spares
US8261006B2 (en) * 2007-12-19 2012-09-04 Spansion Llc Efficient memory hierarchy in solid state drive design
KR101050339B1 (ko) * 2008-08-19 2011-07-19 재단법인서울대학교산학협력재단 플래시 메모리 장치 및 데이터 읽기 방법
US8019920B2 (en) * 2008-10-01 2011-09-13 Hewlett-Packard Development Company, L.P. Method to improve operating performance of a computing device
WO2010144624A1 (en) 2009-06-09 2010-12-16 Google Inc. Programming of dimm termination resistance values
JP2011022657A (ja) * 2009-07-13 2011-02-03 Fujitsu Ltd メモリシステムおよび情報処理装置
US8145848B2 (en) * 2009-11-30 2012-03-27 Oracle America, Inc. Processor and method for writeback buffer reuse
US8639885B2 (en) 2009-12-21 2014-01-28 Oracle America, Inc. Reducing implementation costs of communicating cache invalidation information in a multicore processor
US10073696B2 (en) * 2013-07-15 2018-09-11 Texas Instruments Incorporated Streaming engine with cache-like stream data storage and lifetime tracking
KR102384864B1 (ko) * 2017-11-03 2022-04-08 삼성전자주식회사 불량 스트링을 리페어하는 방법 및 불휘발성 메모리 장치
CN111587424A (zh) * 2018-01-29 2020-08-25 惠普发展公司,有限责任合伙企业 存储器中存储的数据集的有效性
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112100087B (zh) * 2019-06-17 2024-04-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130750B (zh) 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
FR3103620B1 (fr) * 2019-11-21 2021-11-26 St Microelectronics Rousset Procédé d’écriture dans une mémoire volatile et circuit intégré correspondant

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0392895A2 (en) * 1989-04-13 1990-10-17 Sundisk Corporation Flash EEprom system
WO1994023369A1 (en) * 1993-03-26 1994-10-13 Cirrus Logic, Inc. Flash memory mass storage architecture
US5369754A (en) * 1993-06-30 1994-11-29 Intel Corporation Block specific status information in a memory device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4369754A (en) * 1980-11-04 1983-01-25 Bob Lofman Vacuum responsive injection system for engines
US5535328A (en) * 1989-04-13 1996-07-09 Sandisk Corporation Non-volatile memory system card with flash erasable sectors of EEprom cells including a mechanism for substituting defective cells
US5359569A (en) * 1991-10-29 1994-10-25 Hitachi Ltd. Semiconductor memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0392895A2 (en) * 1989-04-13 1990-10-17 Sundisk Corporation Flash EEprom system
US5297148A (en) * 1989-04-13 1994-03-22 Sundisk Corporation Flash eeprom system
WO1994023369A1 (en) * 1993-03-26 1994-10-13 Cirrus Logic, Inc. Flash memory mass storage architecture
US5369754A (en) * 1993-06-30 1994-11-29 Intel Corporation Block specific status information in a memory device

Also Published As

Publication number Publication date
EP0853790B1 (en) 2005-12-28
WO1997013204A1 (en) 1997-04-10
DE69635663D1 (de) 2006-02-02
US5696929A (en) 1997-12-09
EP0853790A1 (en) 1998-07-22
KR19990063999A (ko) 1999-07-26
HK1015478A1 (en) 1999-10-15
EP0853790A4 (en) 2000-07-05
KR100307894B1 (ko) 2001-11-30
CN1206480A (zh) 1999-01-27
AU7390896A (en) 1997-04-28
DE69635663T2 (de) 2006-08-17

Similar Documents

Publication Publication Date Title
CN1105973C (zh) 快速电可擦除可编程只读存储器中存储数据的方法
US20210073122A1 (en) Memory controller supporting nonvolatile physical memory
US6076137A (en) Method and apparatus for storing location identification information within non-volatile memory devices
EP1242868B1 (en) Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
CN101563729B (zh) 具有易失性和非易失性存储器的混合固态存储器系统
US7962695B2 (en) Method and system for integrating SRAM and DRAM architecture in set associative cache
US5611067A (en) Nonvolatile semiconductor memory device having means for selective transfer of memory block contents and for chaining together unused memory blocks
CN101162608B (zh) 闪存的存储块的标识方法
CN103246613B (zh) 缓存装置及用于缓存装置的缓存数据获取方法
CN102521160B (zh) 写缓冲检测器、并行通道写入方法
US20080270680A1 (en) Controller for Non-Volatile Memories and Methods of Operating the Memory Controller
EP1914757A2 (en) Storage device and storing method
US20010023472A1 (en) Data storage control method and apparatus for external storage device using a plurality of flash memories
CN1197520A (zh) 存储器管理
JP2002513484A (ja) フラッシュメモリ大容量記憶システム
CN1195817A (zh) 在非包含的高速缓存存储器分级体系内使用的实现高速缓存一致性机制的方法和系统
CN104102591A (zh) 计算机子系统及在其中实现闪存转换层的方法
US20050144396A1 (en) Coalescing disk write back requests
KR19990029196A (ko) 반도체 기억 장치 및 그 데이터 관리 방법
US20220283941A1 (en) Nonvolatile Physical Memory with DRAM Cache
CN109753234A (zh) 存储器系统及非易失性存储器的控制方法
CN100437518C (zh) 低功率组关联缓存
EP3532933A1 (en) Hybrid memory module
CN107507644A (zh) 存储器装置及其操作方法
CN106257432A (zh) 数据储存设备及其操作方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20030416

Termination date: 20151003

EXPY Termination of patent right or utility model