CN1106560A - 容错存储器系统 - Google Patents

容错存储器系统 Download PDF

Info

Publication number
CN1106560A
CN1106560A CN93118169A CN93118169A CN1106560A CN 1106560 A CN1106560 A CN 1106560A CN 93118169 A CN93118169 A CN 93118169A CN 93118169 A CN93118169 A CN 93118169A CN 1106560 A CN1106560 A CN 1106560A
Authority
CN
China
Prior art keywords
circuit
data
memory
clock
signal
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.)
Pending
Application number
CN93118169A
Other languages
English (en)
Inventor
罗伯特·L·帕潘伯格
戎千·D·杨
大卫·H·沃特林
穆哈穆德·F·里德汉
鲍尔·瓦罗辛
穆哈迈德·M·塔拉特
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.)
Zitel Corp
Original Assignee
Zitel 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 Zitel Corp filed Critical Zitel Corp
Publication of CN1106560A publication Critical patent/CN1106560A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1604Error detection or correction of the data by redundancy in hardware where the fault affects the clock signals of a processing unit and the redundancy is at or within the level of clock signal generation hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/187Voting techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits

Abstract

一种存储器系统,该系统在很少增加存储器装置 容量的情况下提供了冗余度。数据字被附加有ECC 字,以提供第一级的误差检测和校正。在传送地址信 号的过程中,冗余存储器寻址信号提供了故障余裕 度。附加的故障余裕度是通过使用冗余时钟来实现 的。多个数据位被分成多个功能块,其每一个都具有 可被ECC进行校正的位容量,从而允许地址和数据 硬件失效,并仍能提供有效数据。冗余DRAM控制 信号保证包括刷新操作在内的正确的DRAM操 作。

Description

本发明涉及一种存储器系统,特别是涉及一种能够提供容错能力的存储器系统。
容错存储器系统是一种公知的现有技术。为了在考虑到足够冗余的前提下实现容错处理,容错存储器系统使用的存储器是正常情况下所使用总量的二倍或三倍,这导致了很高的成本。另一种容错系统使用多个处理器、存储器和/或I/O单元,以便不仅仅是对存储器,同时也对CPU的操作提供冗余度。这样一种系统示于国际专利公开WO87/06037。
到目前为止,还不存在利用少于至少两倍于为实现基本系统操作所需数量的存储器来构成容错存储器系统的情况。另外,现有技术中的容错存储器系统虽然对在各单独存储器芯片数据存储和检索过程中所产生的误差提供某种程度的容错能力,但对于存储器系统中的相关逻辑(包括数据驱动器、存储器地址电路等)却没有提供容错能力。
在存储器系统中实现一定程度的容错能力的一种简单技术就是使用误差校正码,其中,需要向每个数据字附加一个或多个位。由于使用通常的汉明码作为ECC结构方式,对于64位字,需8个检验位以实现单位误差校正。同样的,对于64位数据字,需要14或更多个检验位以实现双位误差校正。一种较复杂的手段是使用两个带有多个检验位、其规模能满足基本系统操作所需的冗余存储器。这样,在带有8个检验位的64位字系统中,任何一个存储器都能够校正单位误差,并且可以检测两位不可校正误差,在这种情况下,可以使用另外一个存储器。另外一种更高级的容错存储器系统是三重模件冗余(TMR)系统。在这种系统中,使用了三个完全相互独立的存储器系统,其中的每一个都具有其自己的寻址电路,同时,正在被读出的数据字的每一位最好从所述三个存储器中的每一个以三选二的方式进行表决。
除了为改善这些现有技术的容错存储器而增加了成本以外,这些系统对某些误差类型还根本不能寻址。例如,除非整个地址逻辑由于复杂程度和成本的附带增加被制成冗余状态,否则,利用现有技术的容错存储器都不可能校正在将一个地址位传送给所有冗余存储器过程当中所产生的误差。典型的现有技术TMR容错存储器也不对由表决系统本身所引起误差的问题进行寻址。国际公开WO87/06037描述了一种三重冗余容错系统,该系统包括一个诊断方法,以对所述故障确定逻辑的正确运行周期性地作出评估。但是,这需要运行一个特殊的诊断程序,借此,在所述诊断程序运行的同时,使所述系统不能工作于其预期的使用状态,从而相反影响其性能。
根据本发明的技术,教导了一种新型的存储器系统,该系统提供了冗余度、误差检测和校正能力。不像现有技术的冗余存储器那样靠大量地复制存储器存储设备以在增加成本、复杂性和能源需求的基础上提供冗余。根据本发明,仅需要在相对较小的程度上增加存储器设备的容量,就能提供高度的误差检测和校正。根据本发明,数据字都被附加有误差校正代码字,它提供了第一级误差检测和校正能力。另外,存储器寻址信号被设置成具有冗余度,以便在将来自主CPU的地址信号传送给所述存储器的期间内供容错之用。另一级容错度是通过使用保持同步的冗余时钟来提供的,这使得表决电路从多个匹配时钟信号中选择一个以用于所述系统的各部分,从而避免故障时钟被用于损害系统性能。本发明还有另一种新颖的容错特性是通过将数据位存储器分成多个模块来实现的,每个模块的位规模都能够通过所使用的误差校正码加以校正。由于所述误差校正码具有校正至少相关于一个存储模块的位长的数据误差的能力,就允许包括与每个存储模块相关的表决电路在内并与地址和数据信号相关的硬件停止运行,而有效数据仍能通过存储器系统提供。在一个实施例中,所述的误差校正码和存储器模块容量一起工作,以提供两个完整的存储器模块的误差校正能力。在另外一个实施例中,能够对一个附加的单位误差进行检测。
在本发明的一个实施例中,向所述的存储器系统提供了冗余的DRAM控制信号,借此以保证包括刷新在内的正确DRAM操作。表决电路用于根据匹配的冗余DRAM控制信号来提供一组DRAM控制信号。在一个实施例中,使用了一个冗余的DRAM  BUSY信号,并且使得表决电路能够提供多个DRAM  BUSY信号中正确的一个,因此,即使是在所述多个冗余DRAM  BUSY信号中的一个发生了诸如固定于BUSY状态之类的故障,也能够提供正确的DRAM刷新。
在一个实施例中,使用了多个存储器控制器,以对信号存储器存储设备进行存取,每个存储器控制器具有它自己的电源,这些控制器中的每一个都可以是一个冗余系统,即使是在它自己的电源或交流电源中的一个发生了故障,也能够将电能提供给它的存储器控制器。在一个实施例中,所述用于每一个存储器控制器的电源被用于向存储器存储设备提供冗余功率,从而相对于所述电源或交流电源主要故障而言,提供了增加了的容错度。
在本发明的一个实施例中,执行了一个连续的数据清洗操作,从而使得数据与ECC字一起被写入所述存储器存储设备用于误差校正,与这个写入过程同时进行的是将所述数据的ECC代码字施加给第二ECC设备,该设备建立一个附加ECC代码字,该代码字与利用所述数据字写入到所述存储器存储设备中的ECC代码字相比较。若所述的第一和第二ECC字相互匹配,那么,就检测不到误差。假如它们相互不匹配,那么,就检测到一个误差,该误差可以利用所述的ECC代码尝试着加以校正,并且校正后的数据可重新写入所述的存储器存储设备中,或者采取适当的校正手段以修正引起误差的缺陷。通过为此目的而使用第二ECC设备,可以实时地执行这个连续误差校正而不降低系统性能。
图1的方框图示出了依据本发明之教导所构成的一个存储器系统的一个实施例;
图2的方框图是依据本发明之教导的一对存储器控制器及其冗余时钟之使用的一个实施例;
图2a的方框图示出了图2所示之存储器控制器的一个实施例,同时示出了它们的冗余DRAM刷新电路;
图2b是一个示意图,它示出了依据本发明之教导而构成的冗余时钟电路的一个实施例,该冗余时钟电路适宜用作图2和图2b所示之多个冗余时钟电路中的一个;
图2c是一个示意图,它示出了适宜用作图2b所示之刷新控制器1182的一个刷新控制器的实施例;
图3是一个方框图,它示出了依据本发明之教导所构成的存储器阵列插件板的一个实施例;
图3a是一个示意图,它示出了依据本发明并适宜用作图3所示之表决电路310的一个表决电路实施例;
图4是一个方框图,它示出了依据本发明并适宜于用作图2所示之存储器控制器102A的一个存储器控制器的实施例;
图5是依据本发明的存储器控制器的一个实施例中一部份的详细方框图,它示出了在一个存储器阵列和对所述存储器阵列进行存取的系统之间的数据通路,误差检测和校正;
图6是依据本发明并宜于用作图4所示之存储器控制处理器401的一个存储器控制处理器的一个实施例。
图1是依据本发明之教导所构成的一个存储器系统的一个实施例方框图。存储器系统100包括一个存储器阵列101,该存储器阵列不必是双重或三重冗余,因此,和现有技术的双重或三重冗余系统相比较,节省了大量的存储器元件。在本发明的一个实施例中,包括所有为提供有效容错度所需特性在内的存储器阵列101比起为完成基本的、没有冗余度的系统操作所需的存储器容量大约大20%。
存储器系统100包括A面和B面控制接口电路103A和103B,其中的每一个能够分别通过主通道A和主通道B与一个或多个主CPU进行通信,并能通过存储器总线110和存储器阵列101进行通信。为方便起见,A面和B面是相同的,因此,在此我们将仅描述有关A面的操作。
A面包括存储器控制器102A,该控制器运行以向存储器阵列101提供适当的地址和读/写控制信号,以及在读/写期间用存储器阵列101传送数据。
A面还包括电源113A,该电源接收例如线路电压,并为存储的阵列101和A面的其余电路提供所需之适当的直流电压,并为存储的阵列101和A面的其余电路提供所需之适当的直流电压。电池114A由电源113A充电,用于在电源电压113A或它的线路电压发生故障的情况下向存储器阵列101和A面电路提供直流电压。在一个实施例中,电源113A由两个相互独立的电源构成,这样,在其中一个发生故障时,另一个就会自动转入服务状态,而不会出现瞬变电压,借此以允许A面继续工作。另外,假如需要,所述的故障电源能够提供一个有关其故障的指示,用以运行处理器106,借此指示工作人员需要更换发生故障的电源。
数据档案库电路104A允许数据通过存储器控制器102A在存储器阵列101和非易失性存储媒介(诸如一个或多个磁盘或磁带单元)125A之间进行传送。这一特性为数据从存储器阵列101到非易失性存储媒介的周期性归档提供了条件。这也使得在电池114A保持有足够的能量以允许所述A面继续运行从而完成处理中的存储器操作,以及实现对非易失性存储媒介125A进行数据存档的时刻,在电源113A或交流线路电压发生故障情况下能够进行这种存档操作。在需要将存档后的数据放入存储器阵列101的情况下,例如在由电源113A的完全故障所引起的存档操作以后,数据由大容量存储单元125A传送给存储器阵列101。
接口控制模块103A在主通道120A和存储器控制器接口总线111A之间提供一个接口。接口控制模块103A在通过主通道120A通信的主机和存储器控制器接口111A之间提供兼容性。例如,假如一个主机希望与一个使用IBM3990标准的磁盘进行通信,那么,接口控制模块103A将仿真IBM3990标准,同时提供多个适当的控制信号给存储器控制器接口111A。在主机与和存储器控制器接口111A进行通信所需之控制信号相兼容的情况下,接口控制模块103A是不需要的。
图2是一个方框图,它描述了在存储器控制器102A和102B控制之下的存储器阵列101的一个实施例。存储器阵列101包括存储器阵列插件板101-1到101-N,以及备用存储器阵列插件板101-N+1。一级冗余是通过利用两个存储器控制器实现的。这样,在存储器控制器102A发生故障的情况下,存储器控制器102B仍然可以进行工作。在一个实施例中,N=4,并且每个存储器阵列插件板包含有1千兆字节,这一千兆字节被安置成64M个字,每个字具有130个数据位和20个ECC位。在一个实施例中,这150位被安排成5位一组的30个组。20个误差代码位允许5位一组的任意两组失效(即在两组之间最多有十个失效位),同时允许正确的飞击式误差校正。另外,一个单一的5位组可以与另一单一的5位误差一起失效,而这些误差可以利用ECC来进行校正。由于所选择的存储器模块具有5位宽度,所以两个存储器模块可能完全失效,但它们的十个数据位仍然能够由本发明的唯一误差校正码进行校正。这就允许两个存储器模块不论因任何原因引起失效,这些原因包括在施加给所谓“失效”存储器模块的地址信息中所存在的故障。如本专业的普通技术人员所能对本发明的理解那样,也可以使用不同数量的误差码位为给定的存储器模块容量提供所希望等级的误差检测和校正,而不脱离本发明的精神。
当标准的存储器阵列插件板101-1到101-N被确定具有不能校正的误差或超过预定阈值电平的可校正误差时,用存储器阵列插件板101-N+1来替换它们。在一个实施例中,利用一个简单的算法,以使得一个误差记录器去跟踪“硬误差”位(即由于硬件故障而永远处于误差状态的那些位,而不是“软误差”,在所谓的“软误差”中,一个适当的功能位存储区域由于例如是字母特殊瞬时中断而存储了一个错误逻辑状态)的数量,所述的“硬误差”位是在单一的存储器阵列插件板101-1到101-N上发生的。在该实施例中,若在一个单一的存储器阵列插件板上发生了两个或多个误差,就要启动一个热调动操作,以把来自有故障存储器阵列插件板的数据置入所述备用存储器阵列插件板101-N+1。在完成这种热调动操作的基础上,所述有故障的存储器阵列插件板在逻辑上被备用存储器阵列101-N+1所取代,其结果是在实际上更换所述有故障的存储器阵列插件板之前,在另一块存储器阵列插件板变得比所述在逻辑上被取代的有故障存储器阵列插件板更加失效的情况下,所述的有故障存储器阵列插件板被用作备用存储器阵列插件板。
这就允许备用存储器阵列插件板101-N+1在没有性能损失的情况下,并在所述有故障存储器阵列还没有变得具有不可校正误差的故障之前,以飞击方式进行调动。根据这种情况,服务处理器106(图1)最好去访问某个服务机构,该服务机构指示在某个适当的服务时间需被更换的存储器插件板,同时,在其间进行备用存储器阵列插件板101-N+1和损坏的存储器阵列插件板之间热调动。所述的这个热调动可以下述方式完成。首先,服务处理器106要确定有一个好的备用板101-N+1存在,并且可以被用于去替换所述坏的存储器阵列插件板。然后,服务处理器106向存储器控制器102A和102B发出一个命令,以与同替代存储器阵列插件板101-N+1并行写入的方式向有故障的存储器阵列插件板写入它们的全部数据,然后,服务处理器106指示存储器控制器102A或存储器控制器102B对所述失效存储器阵列插件板内的所有数据单元执行读出、校正以及再存储操作。由于先前的写数据指令并行于所述备用存储器阵列插件板101-N+1,所以,这将使得所述备用存储器阵列101-N+1内充满有效数据,在这个时刻,所述的服务处理器106将指示存储器控制器102A和102B中断对所述失效存储器阵列插件板的存取,而转向对在其工作区内的备用存储器阵列插件板101-N+1的存取。
时钟115A是在系统中所获得的三个时钟中的一个,用于保持冗余度和时钟同步。时钟115A控制在存储器控制器102A中所含有的各寄存器的定时。时钟电路115A作为一个受控信号时钟而工作,该受控信号时钟电路与同样的时钟电路115B和115C(图2)同步。时钟115A向存储器控制器插件板102A提供(分别由时钟电路115A、115B和115C产生的)CLKA、CLKB和CLKC时钟信号,以及表决时钟信号,该表决信号在三个时钟信号之一发生故障的情况下提供一个精确的时钟信号。在存储器控制器插件板102A内,对于为TMR目的而设置的三重电路而言,三个三重电路中的每一个接收时钟信号CLKA、CLKB和CLKC中的一个。对于那些在存储器控制器102中的非三重电路而言,使用所述的表决电路。
图2a是一个方框图,它描述了依据本发明之教导所构成的一个三重模件冗余刷新系统的实施例。本发明中的所述冗余刷新电路被用于使单个刷新定时器中的三个相互独立的刷新电路同步,并且在三个相互独立的刷新电路中的一个出现故障或被取走以进行修理或更换的情况下,允许所述的刷新电路进行工作。存储器控制器102A包括一个时钟115A,存储器控制器102B包括一个时钟115B,并且如上结合图2的讨论的,时钟115C被用于提供第三个三重模件冗余时钟。与时钟115C相关的是三个TMR刷新发生器中的一个1201C,另外两个TMR刷新发生器1201A和1202B分别形成为存储器控制器102A和102B的一部分。时钟115C将它的时钟信号馈入一个刷新计数器1203以及刷新发生器1201C的刷新状态机构1202。来自时钟电路115C的时钟信号还被施加给时钟电路115A和115B,且时钟电路115C接收来自时钟电路115A和115B的时钟信号,如上所述地提供所需的表决时钟。刷新计数器1203用于保持刷新应当发生时所指示的计数。刷新计数器1203的输出信号被提供给刷新发生器1201A和1201B,并且,刷新计数器1203接收来自刷新发生器1201A和1201B的刷新计数信号。在每一个刷新发生器1201A、1201B和1201C中,诸如表决电路1204-3的一个表决电路执行三个刷新计数信号的三选二的表决,进而将表决的结果提供给刷新计数器1203,以便确定刷新之间的正确间隔,同时该表决结果还要提供给刷新状态机构1202,以便提供刷新请求和与另外两个刷新电路相同步的刷新RAS和刷新CAS信号。存储器控制器102A和102B中的每一个都分别包括有A、B和C定时发生器1205A、1206A;1205B,1206B和1205C、1206C。每个存储器控制器102A和102B中的每一个定时发生器接收三个时钟信号中的一个,并且从所述存储器定时发生器中产生三重占线(忙)信号,用于指示此时不能执行刷新操作。这些占线信号由刷新发生器1201A、1201B和1201C中的表决电路1204-1和1204-2进行表决,以提供一个三重冗余表决指示,用于指示存储器控制器102A和102B是否处于占线(忙)状态。每个刷新存储器发生器提供三重冗余的REFRESH  REQUEST、REFRESH  RAS和REFRESH  CAS信号,如下面将要结合图3所描述的,上述这些信号被提供给所述的存储器阵列插件板301-1到301-60。
图2b是一个示意图,它给出依据本发明之教导所构成的一个三重冗余时钟系统的实施例。时钟电路115C接收来自时钟电路115A和115B的时钟信号CLKA和CLKB,并且向时钟电路115A和115B提供一个时钟信号CLKC,这一点如上面结合图2所述描述。每一个时钟电路115A、115B和115C提供与另外两个时钟相互同步的一个时钟信号。这保证了即使是在三个冗余时钟中有一个发生了故障,也能够获得两个相互同步的时钟。这就允许根据三个时钟信号中两个的表决结果去提供表决时钟信号,从而保证即使是在三个时钟信号中的一个发生了故障的情况下,也能获得一个可靠的时钟信号。象CLKC一样,时钟信号CLKA和CLKB也被提供给一个与/或电路1151。与/或电路1151提供一个单一表决输出信号,以驱动时钟电路115C的时钟电路,该时钟电路被施加于反相器1152上。反相器1152的输出信号被提供给晶体Y1的一端,晶体Y1通过电容器C1和C2被旁路接地。所述晶体Y1的另一端通过电阻器R1被耦合到由电阻R2和R3所构成的分压器上,该分压器用于在时钟电路115C出现故障的情况下建立一个已知的固定输出电压电平。这就提供了一个最后的误差状态,该误差状态可以被非常可靠地检测出来。电阻R1建立起所述CLKC信号的对称性,以便提供所希望的近似为50%的占空度。电阻R1的输出端还被耦合到二极管CR3,该二极管经与电容C3串联以后耦合接地。二极管CR3和电容器C3用于保证当电源接通时,时钟电路开始振荡。电阻R1的输出端还被耦合到反相器1153,该反相器提供一个缓冲的CLKC输出信号。这个CLKC输出信号还被提供给反相器1155A和1155B以及1155C,以向与/或电路1161提供时钟信号40NSCLKA、40N-SCLKB和40NSCLKC,从而向时钟分频电路1181提供三个输出信号中表决的两个,所述时钟分频电路1181提供输出信号80NSCLKA、80NSCLKB,160NSCLKA和160NSCLKB,用于内部的控制器定时。刷新控制器电路1182用于产生刷新时间周期(例如约16微秒)、确定所述存储器控制器是否正处于执行存储周期的忙状态,并产生一个控制信号(诸如刷新RAS、CAS等)去执行刷新周期,同时使另外两个冗余刷新/时钟电路的刷新计数器同步。图2c简要地示出了一个刷新控制器电路1182的实施例。
图3是一个方框图,它示出了适宜用作存储器阵列插件板101-1(图2)的存储器阵列插件板的一个实施例,另外的存储器阵列插件板与该示范性实施例具有类似的结构。在该实施例中,存储器阵列插件板101-1包括60个存储器模块301-1至301-60,每个存储器模块包括利用40个每个4兆字节的DRAM安排成8行×5位的DRAM存储器314。每对存储模块(即存储器模块301-1和301-31)并级联入存储体0和存储体1的地址,以便提供每个DRAM的5位×16行。按照本发明的教导,本领域的普通技术人员可以理解,所使用的特定存储器的容量、结构以及DRAM的容量能够根据特定的应用和需要而作宽范围变化,在本说明书中所描述的结构仅作为示例,而不构成对本发明的限制。
下面参考存储器模块301-1描述存储器模块301-1至301-60的工作情况。在一个实施例中,存储器总线110在冗余总线110A、110B和110C上提供跟随信号的三个拷贝,上述冗余总线构成了存储器控制器总线110的一部分:
13    ADDR    地址线
3    RSEL    DRAM行选择线
1    RAS    DRAM行地址选通
1    CAS    DRAM列地址选能
1    RFEC    刷新CAS
1    RE    读使能
1    INH    禁止信号
1    BSEL    插件选择
1    RFER    刷新RAS
1    ZOL    存储体选择
1    DIAG    诊断位
1    PREINH    预禁止
13个地址位将承载高达64兆字节DRAM芯片。在总线110A、110B和110C上分别向存储器模块301-1到301-60中的每一个提供这三个拷贝,并且这三拷贝由TMR表决电路接收到每个存储器模块中。表决电路310对这些地址和控制位的每一个执行三选二表决,以向解码器312提供一组经过误差校正的地址和控制位,并提供一个单位ZOL信号,用于在存储体零(即存储器模块301-1)和存储体壹(即存储器模块301-31)中选择一个。地址缓冲器311提供剩余的地址位,用于在存储器314中选择适当的DRAM。如在下面将要详述的那样,唯一的误差校正码与存储于每个存储器模块中的数据的未被选择宽度结合使用,从而使得该唯一的误差校正码可以检测和校正存在于任一存储器模块中的至少一个全部故障。在一个实施例中,所述的唯一误差校正码能够校正在两个存储器模块中存在的完整的(即5位)故障,而在另外一个存储器模块中存在的其它信号位误差的多种情况也可以由该唯一误差校正码加以检测。很明显,该实施例也允许任意5位误差的校正和任意可能同时出现的单位误差的校正。在这种方式之下,与具有适当容量的存储器阵列模块结合使用的单一误差校正码允许表决电路310去检测在23个地址和存储器控制位中的任一个内所存在的任意误差,所述的这些误差可以发生在从它们在存储器控制器102A或存储器控制器102B(图1)中产生、并通过所有电路和信号通路传送到表决电路310的这条通路中任何地方。这一通路包括例如在存储器插件板地址驱动器320、321和322内的底板、插件板连接器和其它的缓冲/驱动器(未示出),这些缓冲/驱动器在所述存储器控制器102A或102B与表决电路310之间可能是需要或希望的。预充电禁止信号PREINH用于通知存储器阵列插件板,在完成其当前任务以后应当中断操作,此后,所述存储器控制器将产生一个INH禁止信号,以便禁止那个存储器阵列插件板上的所有操作,从而允许它实际上被更换。在本发明的另一个实施例中,使用相对于所述存储器阵列插件板其它引线端子长度而言长度适当的实际引线端子,以在存储器阵列插件板实际移去或更换期间产生一个禁止信号,有关这点,是一种公知技术。
除了如上所述的三重信号以外,存储器总线110还能向每一个存储器阵列插件板提供如下的一组非冗余信号:
8    Status[0:7]    状态位
1    TMREA    TMR地址误差标记
1    TMREC    TMR控制器误差标记
1    GNDP    预充电接地
1    VCCAP    电流受限预充电VCCA
1    VCCBP    电流受限预充电VCCB
1    VCCA    VCCA
1    VCCB    VCCB
VCCA(和VCCAP)是由电源113A(图1)所提供的电源电压,VCCB(和VCCBP)是由电源113B(图1)所提供的电源电压。所述预充电提供VCCAP和CVVBP,以及所述预充电接地GNDP通过一个较长的接线端子加给从101-1到101-N+1的每一个存储器阵列插件板,所以,在把一个存储器插件板嵌八一个已通电系统时,预充电电压在数据信号以前先被施加给存储器插件板,以避免在所述的数据总线上产生错误的信号,同时还要在施加电压VCCA和VCCB以前施加给存储器插件板,以避免在所述电源总线上产生不需要的传送。在一个实施例中,预充电电压VCCAP和VCCBP利用一个约0.5欧姆的电阻进行电流限制,以允许正在被嵌入的所述存储器阵列插件板在不产生噪声的前提下快速预充电。
表决电路310取出三个控制信号给所述30个数据收发机323中与其相关的一个323-1(收发机323-1与其相关的存储器模块对301-1、301-31的5个数据位相关),在一个实施例中,所述的收发机可以是从Quality  Semiconductor公司获得的74FCT646装置。所述的这三个控制信号是:用于允许数据在总线110和存储器阵列插件板101-1之间进行传送的READBUS  ENABLE;用于当另外一个存储器阵列正在被存取时,阻塞存储器阵列101-1,并借此以避免数据在存储器阵列插件板101-1内进行转换,从而减少能量损耗的WRITE  ENABLE;以及用作指出在所述存储器阵列插件板101-1的读周期内可以获得有效数据的数据选通信号的READ  CLOCK。如图3所法,301-1到301-60中的每一对存储器模块都分别具有一个相关的数据收发机323-1到323-30。这样,在总线110D上,就有150个数据位进行并联通信。在这种方式之下,如果表决电路310失效,它将仅影响它自己的5个数据位,如前所述,当所述的150个数据位被组织成5位一组的30个组并且其中在任意两组中存在的误差可以被校正时,上述受影响的5位是可以被校正的。在一个实施例中,表决电路310、地址缓冲器311和解码器312构成了一个单一集成电路312(诸如一个ASIC)的一部分。
图3a描述了一个适宜用作在单一组三重冗余输入信号的基础上三选二表决的表决电路一部分的一个实施例。分别在输入引线1301A、1301B和1301C上接收的三个冗余输入信号被标为SIGNAL-A,SIGNAL-B和SIGNAL-3。每一个输入信号都被施加给施密特触发器1302A、1302B和1302C的输入端,该触发器的输出信号被分别施加给与非门1303A、1303B和1303C的一个输入端。与非门1303A、1303B和1303C的其它输入端被耦合到逻辑1信号(VDD),从而使得该与非门的工作状态为一个反相器,从而提供一个中间输出信号,用于测试的目的或所期望的其它用途。施密特触发器1303A、1303B和1303C的输出信号被提供给与/或非门1304,该门提供一个三选二表决选择。与/或非门1304的输出被提供给掩蔽与门1305,它根据选择信号(例如为参考图3所描述的,所述选择信号被用于在每对存储器模块中,诸如301-1、301-31存储器模块对中选择适当的一个),选通与/或非门1304的表决输出。该选通信号被提供给反相器1306,该反相器1306接下来又提供一个三重冗余输入信号经选通的表决拷贝。
图4是一个方框图,它描述了如前参考图2所示的存储器控制器102A的一个实施例。下面将叙述存储器控制器插件板102A的存储操作。缓冲器450通过总线111A以字组模块方式与主机进行通信。在读操作期间,例如,利用所述主机开始向缓冲器450第一次加载,以装入操作码(OP码)和字计数,后者用于限定利用存储器控制器插件板102A从存储器阵列101中所读取字的数量。如果需要,在这个第一次加载过程中也可以使用奇偶位。第二次加载传递一个32位正数的起始地址,若需要,奇偶位占8位。这就为存储器控制器插件板102A提供了足够的信息,以从起始地址执行块读出,得到在字计数中规定的字数。对一个32位字,通过利用8位奇偶位,而不是更加传统的4位奇偶性,与简单的奇数和偶数奇偶性检测相反,可以实现在8位任意组合的基础上进行的误差检测。存储器控制器插件板102A然后可以提供一系列的数据以传送给主机,以便传送开始于起始地址并持续到规定字数的数据块。在写操作期间,这种操作被倒转过来,从而使得主机能够提供待被存储于存储器中并自起始地址开始直到规定字数的数据块。
在存储器操作的第一和第二次加载以后,紧跟着缓冲器450暂存所述数据,用以向字计数寄存器415发送指令。起始地址被存入起始地址寄存器416,操作码被存入命令译码寄存器/译码器417。四端口判优电路418接收输入信号,这些输入信号用以规定存储器控制器插件板102A什么时候可以获得存储器总线110。四端口判优电路418从微机401、命令译码寄存器/译码器417中接收输入信号,并在引线端420和421接收来自存储器控制器插件板102B(图1)的合成信号,所述的存储器控制器插件板102B与存储器控制器插件板102A共享总线110。在引线端子420所接收的合成信号指示在什么时候存储器控制器插件板102B正在执行诸如软误差洗涤、刷新,数据移开或数据保存操作等存储操作,引线端子421接收来自存储器控制器102B的信号,用以指示在什么时候存储器控制器102B正在执行对存储器阵列101的读请求或写请求。在这些情况的任一种情况中,存储器控制器102B具有对存储器总线110增益的存取,而对存储器控制器102A而言,存储器总线110则是不可得的。
当存储器控制器102A正在执行一个读请求或存储器控制器102A希望获得一个写请求时,来自命令寄存器/译码器417的输出总线指向四端口判优电路418。同样,微机401提供一个信号给四端口判优电路418,用以指示微机410在什么时候企图执行诸如洗涤、刷新、数据移动以及数据保存等某项操作。所述的刷新信号被三重化,其拷贝如上所述是由时钟插件板、存储器控制器A和存储器控制器B所产生的。四端口判优电路418判优这些变化的输入信号,并为存储器定时发生器423提供一个输出信号(所述的存储器定时发生器包括时钟115a、定时发生器1205a、b和c以及图2的刷新发生器1201a),所述的输出信号用以表示存储器控制器102A是否同意对存储器总线110进行存取。存储器定时发生器423接下来控制地址计数器多路转换器424以及与存储器总线110可获得性相关的存储变换电路425。存储阵列变换电路425用于将一个地址变换成一个适当的存储器阵列插件板101-1到101-N(图2),借此在需要时,允许在各种存储器阵列插件板中使用不同容量的存储器。在一个实施例中,存储器阵列变换电路425是一个ROM,它是利用微机401将其构成一个查询表以便提供快速变换操作。
当存储器总线110是可以获得的时,存储器控制器102A执行一个所希望的存储操作。这是通过将存储于起始地址寄存器416中的起始地址的最高有效位加载到地址多路转换器431中来实现的,该最高有效位接下来又如前所述地被馈送给存储器阵列变换电路425。存储于起始地址寄存器416中的起始地址的最低有效位被传送给地址计数器430,该计数器430顺次地对每个存储器操作进行计数,以便控制所需要的存储器块。存储于字计数寄存器415中的字计数被传输给字计数器432,该计数器随着地址计数器430的每次计数倒计数到零,以便确定当整个存储块操作完成时,什么时候应当产生块(EOBLK)信号的结束符。这个EOBLK信号被馈送给存储器定时发生器423,该发生器结束控制周期,并且与FIFO缓冲器控制器402通信,以表示操作已经完成并中断存储总线110。
在四端口判优电路418选择微机401作为对存储总线110进行增益存取的设备的情况下,地址计数器430、地址多路转换器431、字计数器432和地址计数器多路转换器424进行工作,以从微机401而不是从来自缓冲器450并作为输入信号可以获得的信号中选择它们的输入信号。在一个实施例中,四端口判优电路418允许存储器控制器102A和102B以交错方式进行工作,例如,在传送32个字节以后,在存储器控制器102A和102B之间进行触发,借此以增加在各种主机中的执行时间。
ECC数据通路电路407执行在接口总线111A和数据总线110D(该总线是存储总线110的数据线的)之间的数据流的高级误差校正。任一所需之误差校正技术均可以使用。在本发明的一个实施例中,使用了在表1中所描述的单一码。该单一码的新颖特性在于它使用了相对少的误差校正位(减化了硬件设计和降低了费用),同时,它又允许对5位一组的两个组同时进行校正,以及通过使用表查询存储器,允许快速地检测和校正故障数据位。
在现有技术中使用了一定数量的技术以改进存储于存储器系统中的数据的可靠性。最简单的一种办法就是把一个唯一奇偶位加到数据字上,以表示在整个数据字中,“1”位的个数是偶数还是奇数。另一种比较复杂的办法包括使用汉明码,该汉明码取所述的数据字,并产生一个“代码字”(也被称作“检查位”),该“代码字”用以表示数据。这个“代码字”被附加到所述数据字上,然后将这种组合存储于存储器中。因为所述的汉明码不仅可以检测误差,而且能够校正固定数量的误差,所以,它具有超越奇偶技术的优点。在存储器系统中执行这种代码包括在唯一数据字中校正一个唯一位误差和检测两个误差。最复杂的代码是Reed-Solomon(R-S)误差校正码。在检测和校正存储器中的多位和“段”类型误差的过程中,上述的这些代码是特别有效的。这些检测和校正操作更多地被用于存储于诸如硬盘和软盘等磁媒体上的数据。
根据本发明之教导使用了唯一误差校正码。这个唯一误差校正码结合了带有Reed  Solomon代码校正能力的可靠的汉明码的特性。根据本发明的一个实施例,这个唯一误差校正码被这样构成,以执行5位数据一组的分组操作,在这种执行的情况下,有30个5位组用于总数为150位的信息。在150位信息当中,130位是用户数据位,20位用于误差校正代码字。执行这种唯一码提供以在150位存储字中可靠地对高达两个5位组(总数为10位)进行校正的能力。除了在任意两个5位组中对所述位进行校正以外,它还能对位于第三个5位组中存在的误差进行检测。根据本发明,能够对这个唯一误差校正码进行修改,从而根据所述存储器系统所需的可靠性提供不同的误差校正和检测的组合。
通过取所述用户数据位唯一组合的“负”奇偶性来产生20个ECC“检查位”中的每一个。这20个“检查位”的产生是由所述ECC电路执行的。表1示出了用于产生每一个ECC“检查位”的所述用户位的各种组合。
在存储器系统一般的应用当中,用户数据字(高达130位)被送到一个误差校正码(ECC)电路,该电路可以通过传统手段予以提供,例如是一个ASIC。这个ECC电路在130位数据字的基础上执行一系列的逻辑操作,并形成一个20位的误差校正代码字。这个代码字与130位的用户数据合并,以形成一个150位的存储器字,然后,这个存储器字被写入存储器存储起来,所述存储器通常是由多个DRAM装置制成的。一旦由所述存储器读出存储器字,130位用户数据部分被送往所述ECC电路,在这里产生一个新的误差校正代码字。这个新的误差校正代码字随后与20位误差校正代码字相比较,后者是从所述存储器中读出的。这种比较导致产生了含有被称之为20个“出错位”的代码字。所述的出错位被译码,并指出所读存储器字的可靠状态。这里主要有三种状态:1.未检测出误差,2.可校正误差,3.虽检测出但却是不要校正之误差。(注意:有一小类数据误差应归属于状态3,但却被错误地编入了1或2。这一类的大小取决于误差校正码)。
误差记录器438接收来自存储器定时发生器423和ECC数据通路电路407的信号,以便使存储器地址和由ECC数据通路电路407所检测出来的误差相互联系起来,并且以实时的方式存储这个数据。在时间允许的情况下,当微机401请求执行误差分析时,微机401是可以获得存储于所述误差记录器438中的信息的。微机401例如还可以通过确定形成存储器阵列101的存储器阵列插件板101-1到101-N(图3)的大小,和在需要时根据存储器阵列插件板的大小和数量对存储器变换电路进行编程来启动一种构型配置。微机401还被用于执行一个存储器洗涤操作,在该操作中,在存储器阵列101中所存储数据内的软误差可以被确定,并被正确地重新写入。这是通过连续地读取存储器阵列101中的地址和确定明显是由ECC数据通路电路407以造成误差的方法来实现的。在误差被确定的情况下,利用ECC数据通路电路407对这些误差进行校正,并且利用校正后的数据对那些存储阵列101中的地址单元重新写入。与服务处理机106相关的微机401的这种功能包括向服务处理机传送信息,用以指出在存储器阵列101中检测出了不能利用存储器控制器插件板102A进行校正的误差。
微机401还和服务处理机106进行通信,以指出在什么时候有任一种其它的误差在存储器控制器102A中被检测出。这实现了两个目的,首先,倘若所述误差已对存储器的运行构成了足够的危害,那么将利用存储器控制器102A指令主机不对存储器阵列101进行存取,它们的存储操作将改道经过存储器控制器102B(图1)。其次,指示操作人员对存储器控制器102A进行维修。另外,存储器控制器102A根据所述主机对存储器运行状态可起动的每一个存储请求通过状态字与所述主机进行通信,所述存储器运行状态包括不可校正的误差,对于这种误差,主机可以通过存储器控制器102A选择中断对存储器阵列101的存取。作为构型功能的一部分,微机401也可以用于执行将具有可校正误差的存储器阵列插件板转换成备用插件板的操作,这正如前所述一样。微机401还可以在存储器控制器102A和存储器阵列101上执行一个诊断。
微机401还可以执行一个数据保存操作,例如,在全部电源失效的情况下,存储于存储器阵列101中的数据都被传送给非易失性媒体125A(图1)。微机401还可以执行一个复原操作,例如,当电源复原时,在所述数据保存操作期间被存入非易失性媒体125A的数据将被放回到存储器阵列101中。例如是在希望得到存储的阵列数据档案的时候,也可能发生这种数据保存操作。存储器操作监视器439监视总线110上的控制信号,而不考虑这些控制信号的来源(即是来自存储器控制器102A还是来自存储器控制器102B)。这就允许例如一个表来保持在存储阵列101中已经被作了变化的数据这可能对于例如下述情况是很有用的:即允许存储器操作监视器439去连续地更新存储于非易失性媒体125A中的数据,从而例如由存储器阵列101向非易失性媒体125A提供数据的“缓入”(trickle  in)档案。这就允许待被连续修改的数据在可以获得存储总线110时被传送给非易失性媒体125A而不损害存储器的性能。因此,存储器操作监视器439保持有一个在存储器阵列101中的地址表,该表在传送给非易失性媒体以后,要适时地进行修改,借此,在所述存储器阵列101和非易失性媒体125A之间提供一个相容性。
图5是一个ECC数据通路407的详细方框图,一起示出的还有缓冲器450和FIFO406。ECC数据通路407以两种主要模式进行工作,如果需要还具有一种辅助的诊断模式。在第一种模式中,数据从主机接收,以写入存储器阵列101,在第二种运行模式中,数据从存储器阵列101中读出,并送往主机。
当从主机接收数据时,通过总线111A接收数据,并且在由缓冲控制器402(图4)控制输出给总线441之前,一直存储在FIFO406中。当在总线441上接收到字组传送中的每一个32位字时,检查和检查器508用于计算一个检查和,借此对正被传送的整个字组累积总的检查和。在完成字组传输的基础上,检查和检查器508将它所累积的检查和与由所述主机送来的检查和相比较。如果这两个检查和相互不匹配,那么,检查和检查器508将通过总线111A通知所述主机所述的字组传输发生了故障,从而允许所述主机重复所需的次数,或者在预定数量的失效以后,中止重试或转到另外的存储器控制器通路,以用于利用存储器控制器102B对存储器阵列101进行存取。检查和检查器508还通过检查和误差的总线441对微机401作出标记(图4),以供微机401在执行其诊断程序中使用。当在总线441上接收到每一个32位字时,它被提供给漏斗507,以便累积一个128位存储器字加上其相关的32个奇偶位。128个数据位被施加给ECC电路509,该电路根据从漏斗507所接收的128个数据位,产生20个检查位。这20个检查位,以及128位存储器字加上其32个奇偶位被施加给存储器数据缓冲器506。在把128位存储器字加上20个检查位通过存储器数据总线110D送往存储器阵列102以前,存储器数据缓冲器506利用32个奇偶位检查存储器数据字的奇偶性。在一个实施例中,在所述存储器数据总线上进行传送的有150位:148个数据位加上两个可以任何方式加以使用的预约位,诸如是标记位或附加的误差校正位。这种操作现在以下述方式加以证实。存储器数据缓冲器506向ECC电路送出与它送往存储器阵列101数目相同的150个位,所述ECC电路占128个数据位,并利用与ECC电路509中所使用的相同树形网络产生20个检查位。ECC电路505然后将它的20个检查位与由ECC电路509所产生的20个检查位相比较,如果这二组20个检查位相互不匹配,那么,就会特别与在存储器数据缓冲器506中所发生的那样,在ECC编码电路509和ECC电路505之间的通路内检测到一个误差。如果检测到这样一个误差,ECC电路505就会将这个误差通知给主机,并借此在需要时允许主机再作或重新指向另一个控制器,以重新传送所述字组。ECC505还能向微机401通报这个误差。
当准备将数据从存储器阵列101中读出并提供给主机时,使用如下的处理步骤。对所需要的存储器单元进行存取,通过存储器数据缓冲器506接收来自存储器阵列101的148个位(128个数据位和20个检查位),并提供给ECC电路505和ECC电路503。在一个实施例中,接收包括两个可以被用作标记位或附加误差校正位的预约位的150个位。ECC电路505接收128个数据并产生20个检查位。这20个检查位和接收自存储器阵列101的20个检查位相比较,它们之间的差变成将被提供给误差变换存储器504的20位出错字,假如这20个出错位全部为逻辑零,就表示未检测到误差。反之,就表示检测到了一个误差,所述的误差变换存储器接收20个出错位,作为限定处于误差状态的150位地址的20位地址。参考表2,产生20个出错位以用作在接收自存储器阵列101的20个检查位和由ECC电路505根据接收自存储器阵列101的150个位而产生的20个检查位之间的差。这20个出错位通常被称作5位6边(hex)字。每一个出错都表示从存储器阵列101中所接收的150个位中的一个或多个处于误差状态。为简便起见,表2仅仅示出了用于表示唯一位误差的出错。多于唯一位的误差(可高达5位一组的整个两组)由下述的出错来表示,这个出错是与这些失效位中的每一个相关的出错进行“异”操作的结果,前提是所述的这些位已经处于唯一位误差状态。在本发明的一个实施例中,使用了包括了与唯一或多位误差相关的出错的所选择子集的查询表,以提供一个可管理容量的查询表,所述表提供了误差检测和校正所需要的水平。
ECC校正电路503随后校正有误差的位,并且为每32位字提供在32位字加8个奇偶位中的校正后的位。该输出被提供给总线441,从而允许检查和发生器501为每32位字产生一个检查和,所述第32位字被接收来用于正从存储器阵列101向主机传送的整个字组,并且在完成从存储器阵列101传送字组的基础上向主机提供一个累积检查和。8个奇偶位也被送往主机。同时,这32个数据位和8个奇偶位被送往FIFO502,并随后送往漏斗507,以用于组合128位存储器字和32个奇偶位。128个数据位被施加给ECC电路509,该电路产生20个检查位,这20个检查位和来自ECC电路503的累积20位检查位进行比较。假如这两组20个检查位相匹配,表明未检测到误差。相反,假如在这两组20个检查位中存在有差异,ECC电路509就判定出有一个误差存在于二者之间的通路之中并且包括ECC校正电路503,和ECC电路509(即ECC校正电路503、FIFO406、FIFO502、漏斗507、ECC电路509,检查和发生器501以及它们之间的总线)。如果检测到这样一种误差,主机就会得到通知,从而可以使字组进行再次传送或改变指向。在一个实施例中,当检测到一个误差时,ECC电路505向微机401发出通报,从而允许微机401去收集统计资料以用于诊断。同样,误差变换存储器504提供一个输出信号,用以根据所述20个出错位的译码,指出在所述128位存储字中的哪一位或哪几位出现了误差。
图6是微机401的一个实施例的详细方框图。微机401包括CPU660,EEPROM661以及通过局部总线665进行通信的局部总线译码器663。CPU660还通过局部总线665与一个或多个复位控制端口662进行通信,如在现有技术中所公知的,所述复位控制端口662用于在一旦变位情况下将状态机构、处理器和寄存器复位到已知状态。服务处理机接口440接下来与服务处理机101进行通信(图1)。局部总线到外围总线缓冲器664允许在局部总线665和外围总线667之间进行通信。为方便起见,局部总线665和外围总线667被简单地示作如图4所示的微机存取总线481,并且在另外一个实施例中可以被形成一个单一的总线。微处理机401还包括一个ECC控制/状态端口607,该端口在外围总线667和ECC数据通路407(图4)之间进行通信。外围总线667还和存储器定时发生器控制/状态端进口623进行通信,该端口接下来与存储器定时发生器423(图4)进行通信。杂项端口寄存器672用于允许在外围总线667和包含于存储器控制器102A(图4)之内的各种杂项寄存器之间进行通信。误差记录器438(图4)还被耦合到外围总线667,以允许误差记录器438和CPU660之间进行通信。存储器变换接口635允许在外围总一667和存储器变换电路425(图4)之间进行通信。缓冲器接口控制状态端口609允许在外围部线667和缓冲器控制器407(图4)之间进行通信。如图6所示,存储器运行监视器接口439如同CPU接到存储器总线接口/端口669一样,也被耦合到外围总线667,以允许在外围总线667和存储器接口数据总线441(图4)之间进行通信。在一个实施例中,数据保存电路405包括两个相互独立的通道,每一个都包括一个SCSI数据漏斗670-1、670-2和一个SCSI接口671-1、671-2。每一个数据漏斗670-1、670-2被耦合到存储器接数据总线441,用于与其相关的SCSI接口671-1、671-2进行通信。SCSI接口671-1和671-2被耦合到外围总线667,并分别耦合到它们相关的大容量存储设备(或设备串)125A-1和125A-2。微机401用于执行存储器控制器102A运行的诊断和监视、存储器控制器102A的配置以及数据保存档案工作。
在本说明书中所述及的所有公开和专利申请在这里都被作为参考。
现在,已对本发明进行了完整的描述。很明显,对于本领域的普通技术人员而言,可以对本发明作出许多变动和修改而不脱离所述权利要求所规定的精神和范围。
Figure 931181690_IMG3
Figure 931181690_IMG4
Figure 931181690_IMG6
Figure 931181690_IMG8
Figure 931181690_IMG9
Figure 931181690_IMG10
Figure 931181690_IMG11
字位    出错    字位    出错    字位    出错
[128]    F5CCD    [136]    02000    [144]    00020
[129]    7FC72    [137]    01000    [145]    00010
[130]    80000    [138]    00800    [146]    00008
[131]    40000    [139]    00400    [147]    00004
[132]    20000    [140]    00200    [148]    00002
[133]    10000    [141]    00100    [149]    00001
[134]    08000    [142]    00080
[135]    04000    [143]    00040

Claims (39)

1、一种存储器系统,包括:
一个存储器存储单元;
一个第一存储器控制器,它具有一个用于与一个存取装置进行通信的第一端口,一个用于对所述存储器存储单元进行存取的第二端口,和一个用于提供第一时钟信号的第一时钟电路;
一个第二存储器控制器,它具有一个用于与一个存取装置进行通信的第一端口,一个用于对所述存储器存储单元进行存取的第二端口,和一个用于提供第二种时钟信号的第二时钟电路;
一个用于将所述第一时钟信号传送给所述第二时钟电路的装置;
一个用于将所述第二时钟信号传送给所述第一时钟电路的装置;
一个用于使所述第一和第二时钟电路同步的装置;以及
一个用于从所述第一和第二时钟中选择其中一个,以供所述第一和第二存储器控制器去控制对所述存储器存储单元进行存取的装置。
2、根据权利要求1所述的存储器系统,其中还包括:
用于提供第三时钟信号的第三时钟电路;
用于将所述第三时钟信号传送给所述第一和第二时钟电路的装置,以及
用于将所述第一和第二时钟信号传送给所述第三时钟电路的装置;
其中,用于使所述第一和第二时钟同步的装置使所述第一、第二和第三时钟同步,用来选择的装置用于从所述第一、第二和第三时钟信号中选择一个。
3、根据权利要求1所述的存储器系统,其中,所述用于选择的装置从所述时钟电路中不选择如下的时钟电路进行工作,这些时钟电路所提供的时钟信号基本上不同于所述时钟电路所提供的其它时钟信号。
4、根据权利要求2所述的存储器系统,其中,用于选择的装置从所述时钟电路中不选择如下的时钟电路进行工作,这些电路提供的时钟信号基本上不同于所述时钟电路所提供的其它时钟信号。
5、根据权利要求1所述的存储器系统,其中,所述将第一存储器控制器相对于所述第二存储器控制器而言,独立地并且没有冗余地运行。
6、根据权利要求2所述的存储器系统,其中,所述的第一存储器控制器相对于所述第二存储器控制器而言,独立地并且没有冗余地运行。
7、一种存储器系统,包括:
一个存储器存储单元;
多个冗余刷新电路,每一个包括:
用于提供时钟信号的一个时钟电路;
用于将所述时钟信号提供给所述多了冗余刷新电路中其它电路的装置;
用于使所述的时钟信号与所述多个冗余刷新电路中其它电路的时钟信号彼此同步的装置;
用于从来自所述多个冗余刷新电路的所述时钟信号中选择一个的装置;
用于根据上述所选择的时钟信号,来确定所希望的刷新间隔已经经过的时刻的刷新计数器;
用于接收多组冗余忙信号,以表示所述存储器存储单元处于占线状态的装置;
用于依据所述的一组冗余忙信号,向每一组冗余忙信号提供已表决的忙信号的装置,以及
一个用于根据所述多个已表决的忙信号,禁止所述存储器存储单元进行刷新的装置。
8、根据权利要求7所述的存储器系统,其中,所述用于选择的装置从所述时钟电路中不选择如下的时钟电路加以运行,这些时钟电路所提供的时钟信号基本上不同于所述时钟电路所提供的其它时钟信号。
9、如权利要求7所述的刷新控制器,其中,所述冗余刷新电路中的每一个都提供有多个输出信号,这些输出信号是从一组由刷新请求、刷新RAS和刷新CAS所构成的信号中选择出来的。
10、如权利要求9所述的刷新控制器,其中,所述的存储器存储单元包括这样一个装置,该装置用于从所述多个刷新控制器中选择所希望的一组所述输出信号。
11、如权利要求10所述的刷新控制器,其中,通过选择基本上与其冗余对应信号相匹配的信号,来选择所希望的一组所述输出信号。
12、根据权利要求7所述的刷新控制器,其中,所述多个冗余刷新控制电路中至少若干个的每一个构成了一个存储器控制器的一部分。
13、根据权利要求12的刷新控制器,其中,所述多个冗余刷新控制电路中的至少一个构成了一个不包括存储器控制器在内的冗余时钟系统的一部分。
14、一种冗余时钟电路,包括:
多个同步时钟发生电路,每一个包括:
多个输入引线端子,用于从所述多个同步时钟发生电路中的每一个接收多个时钟信号;
表决电路,用于在所述多个时钟信号的多个相匹配的信号中选择一个;
振荡电路,它具有一个输入引线端,用于接收从所述多个时钟信号中所选择的一个,它还具有一个输出引线端,用于提供一个时钟信号输出。
15、如权利要求14所述的冗余时钟电路,其中,所述的振荡电路包括:
第一反相器,具有用作所述振荡电路所述输入引线端的一个输入端,和一个输出引线端;
晶体检波器,具有耦合到所述第一反相器的所述输出端的第一端子,和一个输出端;
第二反相器,具有耦合到所述晶体检波器的所述输出端的一个输入端子,还具有一个用作所述振荡电路输出端的输出端子。
16、如权利要求15所述的冗余时钟电路,其中,所述的振荡电路还包括:
分压器,它具有一个耦合到所述第二反相器所述输入端的中心抽头,借此在不产生振荡的情况下,向所述第二反相器提供一个已知的电压电平。
17、如权利要求16所述的冗余时钟电路,其中,所述的振荡电路还包括:
在所述晶体检波器的所述输出端和所述第二反相器之间以串联方式耦合的电阻,用于建立所述时钟信号所希望的占空度。
18、如权利要求15所述的冗余时钟电路,其中,所述的振荡电路还包括:
在所述第二反相器的所述输入端和电源之间,以与一个电容器相串联方式连接的一个二极管。
19、如权利要求15所述的冗余时钟电路,其中,所述的表决电路通过不选择下述的时钟信号来从所述的时钟信号中选择一个,上面所述的时钟信号是指它所提供的时钟信号与所述时钟电路所提供的其它时钟信号基本上不相同。
20、一种存储器系统,包括:
多人地址总线,每一个都携有至少是地址信号的一个冗余拷贝;
一个表决电路,用于从来自一组至少是两个相匹配地址信号的所述冗余地址信号的每一个中选择一个;
一个或多个DRAM控制信号的冗余组;
表决电路,用于从一组至少两个相互匹配的DRAM控制信号的所述每一多个冗余DRAM控制信号中选择一个;
包括多个DRAM存储器存储单元;
用于向所述存储器存储单元提供所述从每一所述多个冗余DRAM控制信号中所选出的一个的装置;以及
用于响应上述从每一所述多个冗余地址信号中所选出的信号对位于所述存储器存储单元中所需存储单元进行存取的装置。
21、如权利要求20所述的存储器系统,该系统还包括一个用于响应写使能信号,从而将来自至少一个数据总线的所述数据信号写入所述所希望的存储器单元的装置。
22、如权利要求21所述的存储器系统,其中,所述的写使能信号中的每一个都被携带于所述多个地址总线的一个之上。
23、如权利要求20所述的存储器系统,该系统还包括一个响应读使能信号,以从所述所希望的存储器单元中读出数据,并将该数据提供给至少一个数据总线的装置。
24、如权利要求23所述的存储器系统,其中,所述的读使能信号是从多个冗余读使能信号中选择的一个,所述读使能信号的每一个都被携带于所述多个地址总线的一个之上。
25、如权利要求20所述、并被组织成多个模块的存储器,每个模块包括:
存储器区域,用于存储利用所述的存储器存储单元所存储的多个数据字中每一个的所述位的子集;
表决电路,用于从所述地址总线接收至少一个与所述模块的存储器区域相关的冗余寻址信号,并提供唯一一组从所述冗余寻址信号中所选择的至少是寻址信号的信号;
译码逻辑,用于对所述的唯一一组至少是寻址信号的信号进行译码,以提供给所述的存储器区域,以及
数据总线装置,用于在所述的存储器区域和所述的至少一个数据总线之间耦合数据。
26、一种系统存储器,包括:
存储器存储区域,用于存储所述选择的地址数据加上误差校正代码字;
数据总线,用于在所述存储器存储单元区域和一个存储装置之间进行数据通信;
地址总线,用于在所述的存取装置和存储器存储区域之间传送地址信息;
耦合于所述数据总线和所述存储器存储区域之间的第一误差校正码电路,所述的第一误差校正码电路利用一个误差校正码产生一个与在所述数据总线上接收的一个数据定相关的第一误差校正代码字,并将之存储于所述存储器存储区域中;
一个装置,用于在所述存储器存储区域内的由在所述地址总线上接收自所述存取装置的地址信息所规定的地址处进行存储,所述的数据字以及与所述数据字相关的所述第一误差校正码,所述的数据字是在所述数据总线上从所述存取装置接收的;
第二误差校正电路,该电路利用所述第一误差校正电路所使用的所述误差校正码,该电路以在基本上和它被施加给所述存储器存储区域的同时被耦合来接收数据,并且产生第二误差校正代码字;
比较器,用于比较所述第一第二误差校正代码字,并指出所述的第一和第二误差校正代码字是否不相匹配。
27、如权利要求26所述的系统,其中,所述的比较器产生一个出错字,用于指示一个或多个数据位处于误差之中。
28、如权利要求27所述的系统,其中,所述的第二误差校正电路和所述的比较器还进行工作,以在从所述存储器存储装置读出数据的基础上产生所述的出错字。
29、如权利要求28所述的存储器系统,其中还包括一个误差校正装置,该误差校正装置与所述的出错字相关,该装置用于在所述的数据总线上提供一个经校正的数据字,以响应在所述存储器存储装置中数据存储单元的读出。
30、如权利要求26所述的存储器系统,还进一步包括一个装置,用于在所述第一和第二误差代码字不匹配的情况下,重复对所述存储器存储装置的写存取。
31、如权利要求26所述的存储器系统,还包括一个数据漏斗,用于从所述的数据总线接收多个数据字并建立具有较大长度的一个唯一数据字,以提供给所述误差校正电路,并最终与一个相关误差代码字一起存入所述存储器存储区域内。
32、一种存储器系统,包括:
多个地址总线,每一个都带有至少多个地址信号的一个冗余拷贝;
存储器存储装置,该装置具有位宽度,所述存储器存储装置包括:
多个存储模块,每个具有一个所选择的数据宽度,所述多个存储模块的所述位宽度的和构成了所述存储器存储装置的所述位宽度;
表决电路,用于从所述冗余地址信号的至少两个匹配地址信号中选择一组所希望的地址位;以及
一个装置,用于对所述存储器存储单元内所希望的存储器单元进行存取,以响应在所述多个冗余地址信号的每一个中所选择的一个,以使从所述存储模块中阅读数据;
数据总线,用于从所述存储模块的每一个中同时地接收所读出的数据;以及
误差校正电路,它响应一个误差校正代码,在从所述存储模块的至少一个模块中所读出的数据出现误差的情况下,该电路用于去校正在所述数据总线上的数据内所存在的误差。
33、如权利要求32所述的存储器系统,其中,所述的误差校正电路用于在从所述多个存储器模块的至少两个中所读出的位出现误差的情况下,去校正在所述数据总线上的数据内的误差。
34、一种存储器系统,包括:
存储器存储装置;
多个存储器通道,用于对所述的存储器存储装置进行存取,每个所述的存储通道包括:
一个存储器控制器;
一个第一电源;
一个第二电源;以及
第一电源开关,用于从所述第一和第二两个电源当中选择一个,以向至少一个所述存储器通道的所述存储顺控制器提供能源;
第二电源开关,用于在由多个存储器通道中每一个的所述第一电源开关所选择的电源中选择一个或两个,以向所述的存储器存储装置提供能源。
35、如权利要求34所述的存储器系统,其中,所述电源的至少一个包括:
一个由主电源供能的电源转换器;
一个电池;以及
一个电源开关,用于从所述电源转换器和所述电池中选择一个或二个作为所述电源的输出。
36、如权利要求34所述的存储器系统,其中还包括:
一个非易失性存储装置;
一个数据总线,用于从所述存储器存储装置向所述非易失性存储装置传送数据;以及
一个数据保存控制器,用于使数据有规则地从所述存储器存储装置中读出,并通过所述数据总线提供给所述非易失性存储装置,以用于写的目的。
37、如权利要求36所述的存储器系统,其中,所述的数据保存控制器包括:
一个用于检测在所述存储器存储装置中紧急电源故障的装置;
一个用于禁止所述存储器存储单元正常运行,以响应所述检测到的紧急电源故障的装置;以及
一个用于从所述存储器存储装置中读出数据,并将所述数据写入所述非易失性存储装置中的装置。
38、如权利要求36所述的存储器系统,其中,所述的数据保存控制器确定所述的存储器存储装置在什么时刻不被存取,并且该控制器执行所述存储器存储装置的部分所述读出运行,以用于向所述非易失性存储装置的写入。
39、如权利要求38所述的存储器系统,其中还包括:
一个地址档案表,该档案表在所述存储器存储装置中保存有这些地址的一个表,在所述的存储器存储装置中,由于在所述非易失性存储媒体中,所述的数据是最后被归档的,所以这些数据是可以被改变的;以及
一个装置,用于依据有关归档的要求,将在所述地址档案表中所表示的地址读出,并将所述读出的数据在所述非易失性存储装置中进行校正。
CN93118169A 1992-09-29 1993-09-29 容错存储器系统 Pending CN1106560A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/954,169 1992-09-29
US07/954,169 US5379415A (en) 1992-09-29 1992-09-29 Fault tolerant memory system

Publications (1)

Publication Number Publication Date
CN1106560A true CN1106560A (zh) 1995-08-09

Family

ID=25495031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN93118169A Pending CN1106560A (zh) 1992-09-29 1993-09-29 容错存储器系统

Country Status (8)

Country Link
US (2) US5379415A (zh)
EP (1) EP0663084A4 (zh)
JP (1) JPH08502137A (zh)
KR (1) KR950703763A (zh)
CN (1) CN1106560A (zh)
AU (1) AU673687B2 (zh)
CA (1) CA2144980A1 (zh)
WO (1) WO1994018622A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100431045C (zh) * 2000-09-28 2008-11-05 株式会社东芝 非易失半导体存储装置
CN100476785C (zh) * 2001-02-24 2009-04-08 国际商业机器公司 用于计算结构的装置和方法
CN102142268A (zh) * 2010-02-02 2011-08-03 慧荣科技股份有限公司 控制装置与其相关控制方法
CN106463179A (zh) * 2014-04-16 2017-02-22 英特尔公司 利用存储器控制器处理数据错误事件的方法、装置和系统
CN113655745A (zh) * 2021-08-19 2021-11-16 无锡中微亿芯有限公司 一种实现配置码流自动检纠错的fpga

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535399A (en) * 1993-09-30 1996-07-09 Quantum Corporation Solid state disk drive unit having on-board backup non-volatile memory
EP0717358B1 (en) * 1994-12-15 2001-10-10 Hewlett-Packard Company, A Delaware Corporation Failure detection system for a mirrored memory dual controller disk storage system
US5758132A (en) * 1995-03-29 1998-05-26 Telefonaktiebolaget Lm Ericsson Clock control system and method using circuitry operating at lower clock frequency for selecting and synchronizing the switching of higher frequency clock signals
US5577004A (en) * 1995-12-01 1996-11-19 Emc Corporation Memory system and method
US5751740A (en) * 1995-12-14 1998-05-12 Gorca Memory Systems Error detection and correction system for use with address translation memory controller
JPH09306198A (ja) * 1996-02-07 1997-11-28 Lsi Logic Corp 冗長列及び入/出力線を備えたasicメモリを修復するための方法
US5881072A (en) * 1996-06-28 1999-03-09 International Business Machines Corporation Method of detecting error correction devices on plug-compatible memory modules
US5784386A (en) * 1996-07-03 1998-07-21 General Signal Corporation Fault tolerant synchronous clock distribution
DE19635237A1 (de) * 1996-08-30 1998-03-05 Siemens Ag Speichersystem
US5862314A (en) * 1996-11-01 1999-01-19 Micron Electronics, Inc. System and method for remapping defective memory locations
US6571324B1 (en) * 1997-06-26 2003-05-27 Hewlett-Packard Development Company, L.P. Warmswap of failed memory modules and data reconstruction in a mirrored writeback cache system
US6035432A (en) * 1997-07-31 2000-03-07 Micron Electronics, Inc. System for remapping defective memory bit sets
US5974564A (en) * 1997-07-31 1999-10-26 Micron Electronics, Inc. Method for remapping defective memory bit sets to non-defective memory bit sets
US6044487A (en) * 1997-12-16 2000-03-28 International Business Machines Corporation Majority voting scheme for hard error sites
US6182239B1 (en) * 1998-02-06 2001-01-30 Stmicroelectronics, Inc. Fault-tolerant codes for multi-level memories
US6332183B1 (en) 1998-03-05 2001-12-18 Micron Technology, Inc. Method for recovery of useful areas of partially defective synchronous memory components
US6314527B1 (en) 1998-03-05 2001-11-06 Micron Technology, Inc. Recovery of useful areas of partially defective synchronous memory components
US6381708B1 (en) 1998-04-28 2002-04-30 Micron Technology, Inc. Method for decoding addresses for a defective memory array
US6381707B1 (en) 1998-04-28 2002-04-30 Micron Technology, Inc. System for decoding addresses for a defective memory array
JP2000089622A (ja) * 1998-09-08 2000-03-31 Canon Inc カウント装置及びコンピュータ読み取り可能な記憶媒体
US6219656B1 (en) * 1998-11-25 2001-04-17 Schlumberger Resource Management Services, Inc. Memory integrity for meters
US6496876B1 (en) 1998-12-21 2002-12-17 Micron Technology, Inc. System and method for storing a tag to identify a functional storage location in a memory device
US6370604B1 (en) * 1999-05-07 2002-04-09 Intel Corporation Hot replacement of storage device in serial array of storage devices
US6239626B1 (en) 2000-01-07 2001-05-29 Cisco Technology, Inc. Glitch-free clock selector
EP1124332A1 (en) * 2000-02-08 2001-08-16 The Boeing Company Error detection and correction interleave system
US6578157B1 (en) 2000-03-06 2003-06-10 Micron Technology, Inc. Method and apparatus for recovery of useful areas of partially defective direct rambus rimm components
US7269765B1 (en) 2000-04-13 2007-09-11 Micron Technology, Inc. Method and apparatus for storing failing part locations in a module
FR2808904A1 (fr) * 2000-05-12 2001-11-16 Ibm Systeme d'acces a des memoires redondantes
US7073089B2 (en) * 2000-10-31 2006-07-04 Hewlett-Packard Development Company, L.P. External fault tolerant shared memory unit in a distributed multiprocessing system
US6879522B2 (en) * 2001-03-12 2005-04-12 Micron Technology, Inc. Method for making a memory device with plural substrates each having a memory array, a read only memory, and a write state machine
US6708285B2 (en) 2001-03-15 2004-03-16 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having system and method for handling controller resets
US6802023B2 (en) 2001-03-15 2004-10-05 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having hot insertion system and method
US6715101B2 (en) 2001-03-15 2004-03-30 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having an on-line controller removal system and method
US20020184576A1 (en) * 2001-03-29 2002-12-05 International Business Machines Corporation Method and apparatus for isolating failing hardware in a PCI recoverable error
US6773083B2 (en) 2001-08-29 2004-08-10 Lexmark International, Inc. Method and apparatus for non-volatile memory usage in an ink jet printer
US7032123B2 (en) 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
US7039851B2 (en) * 2002-06-08 2006-05-02 Axiowave Networks, Inc. Method of and apparatus for correcting errors in data packet flow streams as in closed ring sequential address generators and the like without data flow stream interruption
JP3930446B2 (ja) * 2003-03-13 2007-06-13 株式会社東芝 半導体装置
EP1714294B1 (en) * 2004-02-10 2016-04-20 Semiconductor Energy Laboratory Co., Ltd. Nonvolatile memory
US8799706B2 (en) * 2004-03-30 2014-08-05 Hewlett-Packard Development Company, L.P. Method and system of exchanging information between processors
KR101174936B1 (ko) * 2004-10-14 2012-08-17 주식회사 아도반테스토 오류 정정 부호가 부가된 데이터열을 기억하는 피시험메모리를 시험하는 시험 장치 및 시험 방법
US7831882B2 (en) 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US9459960B2 (en) 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
JP2008077783A (ja) * 2006-09-22 2008-04-03 Fujitsu Ltd 記憶データ処理装置、記憶装置、記憶データ処理プログラム
EP2077502A4 (en) * 2006-10-27 2012-05-09 Fujitsu Ltd APPARATUS FOR PROCESSING ADDRESS LINES ABNORMALITY, METHOD FOR PROCESSING ADDRESS LINES ABNORMALITIES, PROGRAM FOR PROCESSING ADDRESS LINE DEFECTS, INFORMATION PROCESSING APPARATUS AND MEMORY CONTROL UNIT
US7818597B2 (en) * 2007-03-26 2010-10-19 International Business Machines Corporation Computer system fault detection
KR100882484B1 (ko) * 2007-04-10 2009-02-09 삼성전자주식회사 에러 검출 기능을 가지는 반도체 메모리 장치, 이를 구비한메모리 시스템 및 반도체 메모리 장치의 데이터 출력 방법
US20080282120A1 (en) * 2007-05-11 2008-11-13 Macronix International Co., Ltd. Memory structure, repair system and method for testing the same
US7725762B2 (en) * 2007-06-06 2010-05-25 International Business Machines Corporation Implementing redundant memory access using multiple controllers on the same bank of memory
US7882479B2 (en) * 2007-06-06 2011-02-01 International Business Machines Corporation Method and apparatus for implementing redundant memory access using multiple controllers on the same bank of memory
US8255758B2 (en) * 2008-01-21 2012-08-28 Apple Inc. Decoding of error correction code using partial bit inversion
JP5220185B2 (ja) * 2008-05-16 2013-06-26 フュージョン−アイオー・インコーポレーテッド 故障したデータ記憶機構を検出し、置き換えるための装置、システム及び方法
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8812892B1 (en) * 2009-09-22 2014-08-19 Nvidia Corporation Hardware WCK2CK training engine using meta-EDC sweeping and adjustably accurate voting algorithm for clock phase detection
US8473818B2 (en) * 2009-10-12 2013-06-25 Empire Technology Development Llc Reliable communications in on-chip networks
US8543863B2 (en) 2009-11-18 2013-09-24 Microsoft Corporation Efficiency of hardware memory access using dynamically replicated memory
US8255742B2 (en) * 2009-11-18 2012-08-28 Microsoft Corporation Dynamically replicated memory
US8281188B2 (en) 2010-08-05 2012-10-02 Miller Gary L Data processing system with peripheral configuration information error detection
US9092357B2 (en) 2010-10-29 2015-07-28 Microsoft Technology Licensing, Llc Remapping of inoperable memory blocks
US9032244B2 (en) 2012-11-16 2015-05-12 Microsoft Technology Licensing, Llc Memory segment remapping to address fragmentation
US8966348B2 (en) * 2012-11-30 2015-02-24 Hewlett-Packard Development Company, L.P. Memory error identification based on corrupted symbol patterns
US9116822B2 (en) * 2012-12-07 2015-08-25 Micron Technology, Inc. Stopping criteria for layered iterative error correction
DE102013202253A1 (de) * 2013-02-12 2014-08-14 Paravan Gmbh Schaltung zur Steuerung eines Beschleunigungs-, Brems- und Lenksystems eines Fahrzeugs
CN109243513A (zh) 2013-09-01 2019-01-18 英派尔科技开发有限公司 Dram中增加的刷新间隔和能量效率
JP2015222467A (ja) * 2014-05-22 2015-12-10 ルネサスエレクトロニクス株式会社 マイクロコントローラ及びそれを用いた電子制御装置
US10375106B1 (en) * 2016-01-13 2019-08-06 National Technology & Engineering Solutions Of Sandia, Llc Backplane filtering and firewalls
CN106531224B (zh) * 2016-10-25 2019-07-16 哈尔滨工业大学 一种基于sram型fpga的ram数据可靠性加固装置及方法
US11361839B2 (en) 2018-03-26 2022-06-14 Rambus Inc. Command/address channel error detection

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3218612A (en) * 1961-11-09 1965-11-16 Ibm Data transfer system
CH556576A (de) * 1973-03-28 1974-11-29 Hasler Ag Einrichtung zur synchronisierung dreier rechner.
DE2458736C2 (de) * 1974-12-12 1981-09-17 Ibm Deutschland Gmbh, 7000 Stuttgart Verfahren und Anordnung zur Überwachung von Stromversorgungsanlagen
US4021784A (en) * 1976-03-12 1977-05-03 Sperry Rand Corporation Clock synchronization system
US4183278A (en) * 1977-10-17 1980-01-15 Lectron Products, Inc. Driver circuit for tone generator
US4307455A (en) * 1978-02-27 1981-12-22 Rockwell International Corporation Power supply for computing means with data protected shut-down
US4277844A (en) * 1979-07-26 1981-07-07 Storage Technology Corporation Method of detecting and correcting errors in digital data storage systems
US4363125A (en) * 1979-12-26 1982-12-07 International Business Machines Corporation Memory readback check method and apparatus
JPS573164A (en) * 1980-06-04 1982-01-08 Nippon Denso Co Ltd Microcomputer control device
US4547867A (en) * 1980-10-01 1985-10-15 Intel Corporation Multiple bit dynamic random-access memory
US4453237A (en) * 1980-10-01 1984-06-05 Intel Corporation Multiple bit output dynamic random-access memory
US4375683A (en) * 1980-11-12 1983-03-01 August Systems Fault tolerant computational system and voter circuit
US4384353A (en) * 1981-02-19 1983-05-17 Fairchild Camera And Instrument Corp. Method and means for internal error check in a digital memory
US4920540A (en) * 1987-02-25 1990-04-24 Stratus Computer, Inc. Fault-tolerant digital timing apparatus and method
US4523314A (en) * 1983-02-07 1985-06-11 Sperry Corporation Read error occurrence detector for error checking and correcting system
US4644498A (en) * 1983-04-04 1987-02-17 General Electric Company Fault-tolerant real time clock
US4827401A (en) * 1984-10-24 1989-05-02 International Business Machines Corporation Method and apparatus for synchronizing clocks prior to the execution of a flush operation
US4757503A (en) * 1985-01-18 1988-07-12 The University Of Michigan Self-testing dynamic ram
US4683570A (en) * 1985-09-03 1987-07-28 General Electric Company Self-checking digital fault detector for modular redundant real time clock
NL8502768A (nl) * 1985-10-10 1987-05-04 Philips Nv Dataverwerkingsinrichting, die uit meerdere, parallel-werkende dataverwerkingsmodules bestaat, multipel redundante klokinrichting, bevattende een aantal onderling zelf-synchroniserende klokschakelingen voor gebruik in zo een dataverwerkingsinrichting, en klokschakeling voor gebruik in zo een klokinrichting.
US4805173A (en) * 1986-09-15 1989-02-14 Thinking Machines Corporation Error control method and apparatus
US4817095A (en) * 1987-05-15 1989-03-28 Digital Equipment Corporation Byte write error code method and apparatus
EP0306211A3 (en) * 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronized twin computer system
US5027357A (en) * 1988-10-14 1991-06-25 Advanced Micro Devices, Inc. ECC/CRC error detection and correction system
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US4984241A (en) * 1989-01-23 1991-01-08 The Boeing Company Tightly synchronized fault tolerant clock
US4995041A (en) * 1989-02-03 1991-02-19 Digital Equipment Corporation Write back buffer with error correcting capabilities
US4979191A (en) * 1989-05-17 1990-12-18 The Boeing Company Autonomous N-modular redundant fault tolerant clock system
US5331645A (en) * 1990-01-17 1994-07-19 Integrated Device Technology, Inc. Expandable digital error detection and correction device
US5086429A (en) * 1990-04-10 1992-02-04 Honeywell Inc. Fault-tolerant digital computing system with reduced memory redundancy
US5255270A (en) * 1990-11-07 1993-10-19 Emc Corporation Method of assuring data write integrity on a data storage device
US5291498A (en) * 1991-01-29 1994-03-01 Convex Computer Corporation Error detecting method and apparatus for computer memory having multi-bit output memory circuits
US5289478A (en) * 1991-03-11 1994-02-22 Fujitsu Limited Method and means for verification of write data
US5313624A (en) * 1991-05-14 1994-05-17 Next Computer, Inc. DRAM multiplexer
US5285456A (en) * 1991-05-15 1994-02-08 International Business Machines Corporation System and method for improving the integrity of control information
US5233615A (en) * 1991-06-06 1993-08-03 Honeywell Inc. Interrupt driven, separately clocked, fault tolerant processor synchronization

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100431045C (zh) * 2000-09-28 2008-11-05 株式会社东芝 非易失半导体存储装置
CN101154465B (zh) * 2000-09-28 2011-10-05 株式会社东芝 半导体存储装置
CN100476785C (zh) * 2001-02-24 2009-04-08 国际商业机器公司 用于计算结构的装置和方法
CN102142268A (zh) * 2010-02-02 2011-08-03 慧荣科技股份有限公司 控制装置与其相关控制方法
CN102142268B (zh) * 2010-02-02 2014-04-30 慧荣科技股份有限公司 控制装置与其相关控制方法
CN106463179A (zh) * 2014-04-16 2017-02-22 英特尔公司 利用存储器控制器处理数据错误事件的方法、装置和系统
CN106463179B (zh) * 2014-04-16 2019-11-19 英特尔公司 利用存储器控制器处理数据错误事件的方法、装置和系统
CN113655745A (zh) * 2021-08-19 2021-11-16 无锡中微亿芯有限公司 一种实现配置码流自动检纠错的fpga

Also Published As

Publication number Publication date
US5553231A (en) 1996-09-03
KR950703763A (ko) 1995-09-20
US5379415A (en) 1995-01-03
AU673687B2 (en) 1996-11-21
JPH08502137A (ja) 1996-03-05
EP0663084A4 (en) 1997-05-02
AU4858693A (en) 1994-08-29
WO1994018622A1 (en) 1994-08-18
CA2144980A1 (en) 1994-08-18
EP0663084A1 (en) 1995-07-19

Similar Documents

Publication Publication Date Title
CN1106560A (zh) 容错存储器系统
CN107391026B (zh) 闪存装置及闪存存储管理方法
CN107403646B (zh) 闪存装置及闪存存储管理方法
US5331646A (en) Error correcting code technique for improving reliablility of a disk array
US5077736A (en) Disk drive memory
EP0136443B1 (en) Memory correction scheme using spare arrays
AU647280B2 (en) Disk drive memory
US7331010B2 (en) System, method and storage medium for providing fault detection and correction in a memory subsystem
US4989205A (en) Disk drive memory
US4989206A (en) Disk drive memory
US8386891B2 (en) Anamorphic codes
CN102194527A (zh) 半导体存储器装置
CN111710358B (zh) 闪存装置、闪存控制器及闪存存储管理方法
EP1644834B1 (en) Redundancy in array storage system
EP2810176B1 (en) Single and double chip spare

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
C20 Patent right or utility model deemed to be abandoned or is abandoned