利用硬件自动擦除存储器中的纠错码差错的方法和装置的制作方法

文档序号:6409659阅读:280来源:国知局
专利名称:利用硬件自动擦除存储器中的纠错码差错的方法和装置的制作方法
发明的背景发明的领域本发明涉及计算机系统中的数据通信,更具体地,本发明涉及在微处理器和存储器子系统之间传送的数据的可校正差错的检测和校正。
背景技术
为了保持数据一致性,当今市场上的大多数计算机系统采用在存储器控制器的纠错码(ECC)电路内实施的ECC方案来检测以及在某些情况下来校正在从存储器读出的数据中所检测出的差错。在采用ECC方案的计算机系统中,通过给要被写入到存储器的数据添加ECC奇偶校验位来首先将其编码成为代码字,ECC奇偶校验位是通过计算该数据和所确立的ECC代码的生成矩阵的标量积来获得的。一旦从存储器中读出该代码字,就利用该生成矩阵的变换来对其进行译码,以便除了产生可被用来对任何出现的差错进行检测和区分的校正子外还产生原先的数据。
如果没有检测到差错,则读出的数据就被放置在系统总线上供微处理器或其它总线工具(bus agent)以后使用。如果检测到不可校正差错,则数据也被放置在系统总线上,同时向微处理器报告差错状态。但是,如果检测到可校正差错,代码字就首先被输入到校正电路以便校正该数据,该数据然后被输出到系统总线。(注意如果计算机总线是流水线性质的,则作为该系统总线和存储器之间的接口的存储器控制器将可能包括单独的读和写数据缓冲器,以便当数据在系统总线和存储器之间被传送时对其进行暂存。)由于所有进入系统的数据在其被使用之前都对其进行ECC差错检测,所以上述处理有效地提高了系统的可靠性。但是,由于大多数ECC方案只能校正一个字节内的一个和两个位的差错,所以存储器的一个存储单元中的多个差错的出现可能造成在该存储单元处的数据是不可校正的,由此严重地影响了需要该数据的任何操作。因此,系统设计人员已开发了校正从存储器恢复的数据的差错并将被校正数据回写到存储器的基于软件的ECC擦除处理。
在第一种传统的基于软件的擦除处理中,在从存储器读出的数据中的可校正差错的检测使微代码保存出错的存储单元的逻辑地址和产生对中断例行程序的系统调用。被调用的中断例行程序然后利用该逻辑地址来计算该存储单元的物理地址并再从该指定的存储单元读出数据。一旦数据再从存储器中被读出,它就被输入到ECC检测及校正电路,以便校正该数据。在数据已被校正后,中断服务例行程序就向微处理器发出指令,以便一旦数据已被放置在系统总线上就将其写回到存储器的同一存储单元并向微处理器提出合适的请求。
显然,这种处理的主要缺点在于为了执行即使很小的擦除操作,除了需要大量的软件支持外还需要大量的时间。因为这一处理需要完全独立于以前所使用的当数据最初从存储器中被读出时对其差错进行检测及校正处理的处理,所以它需要以微代码进行编程的相当复杂的中断例行程序来重新计算存储单元的物理地址和发出控制该擦除操作的读写命令。因此,这种基于软件的处理不仅需要对整个系统进行大量的设计改进,还由于以下的缘故降低了系统的性能,即例行程序必须化费时间来重新计算正确的地址、产生合适的命令和重复在最初的存储器读出期间已经被执行的许多步骤。
另一方面,在另一种普通的基于软件的擦除处理中,软件被用来周期性地(而不是连续地)对整个存储器进行扫描来对其发现的差错进行检测及校正。这是通过顺序地读出每一存储单元、检测数据的差错、校正被检测的任何可校正差错以及将被校正的数据写回到同一存储单元的方法来实现的。没有错误的数据在被检测之后简单地被丢弃。此外,由于类似于上述的处理,所以这一处理也具有需要大量的时间和软件支持来执行操作的缺点。而且,这一处理还利用了大量的存储器带宽,由此妨碍了对存储器带宽的最有效的利用并影响了系统的性能。
发明概要因此,本发明的目的是提供通过利用对软件透明的硬件实现的机制在检测到从存储器读出的数据的可校正差错时就自动地擦除存储器中的ECC差错的方法和装置。
本发明的另一个目的是提供通过连接在读出和写入数据缓冲器的输出端之间的回写通道在检测到从存储器读出的数据的可校正差错时就自动地擦除存储器中的ECC差错的方法和装置。
本发明的再一个目的是提供通过避免使用费用大的中断例行程序并只需要少量的存储器带宽来校正在存储器读出的数据中的被专门指定的差错而显著地提高了系统性能的自动擦除存储器中的ECC差错的方法和装置。
本发明的还有一个目的是提供通过在同一存储单元的第二个单个位的差错造成存储器数据的丢失之前立即校正存储器数据的单个位差错而提高了系统可靠性的自动擦除存储器中的ECC差错的方法和装置。
本发明在存储器控制器内提供了有效和透明的擦除机制来将已被ECC硬件进行了校正的数据写回到存储器,由此擦除出错的存储单元。虽然在优选实施例中提供了单独的读出和写入数据缓冲器,但采用了擦除机制的存储器控制器除了包括单个数据缓冲器外还至少包括对流入和流出存储器的数据流进行控制的存储器控制逻辑。
从存储器读出的数据被ECC硬件进行差错检测并被存储在读出数据缓冲器中。如果存储器控制器在读出数据中检测到可校正的ECC差错,它就在数据被写入读出缓冲器时对该数据进行校正。如通常所做的那样,读出数据随后被放置在系统总线上以便供与之连接的微处理器或其它总线工具使用。但是,为擦除存储器中的出错数据,提供了从读出数据缓冲器的输出端至写入数据缓冲器的输出端的回写通道。
一旦准备就绪,存储器控制逻辑就向控制流入和流出存储器的数据流的数据通道状态机发出存储器擦除命令,以表明在读出缓冲器内的被校正数据将要被回写到其原来所在的存储单元。当对命令进行译码,状态机首先发出读出源选择信号给读出数据缓冲器的控制多路转换器,以便选择控制源,它将发出用来存取特定缓冲器的命令和将发起该缓冲器中的读操作。状态机还发出缓冲器选择信号给输出多路转换器,该输出多路转换器的输入是来自相应缓冲器的写入数据和读出数据,其输出端通过存储器输入/输出缓冲器和存储器接口部件与存储器连接。
一旦完成了这一切,被选定的控制源就要求读出数据缓冲器的读选通以便从该缓冲器读出数据。数据通过输出多路转换器并进入ECC代码字产生单元,在该ECC代码字产生单元中,相应的代码字被产生并被存储在存储器输入/输出缓冲器内。控制逻辑然后发出恰当的地址和请求属性信号给存储器接口部件,该存储器接口部件再产生恰当的RAS#和CAS#信号,以使被校正的数据被写入到由原先的读请求规定的存储单元中去。
根据第一个替代的实施例,这一机制还可被用来执行对存储器阵列的周期性的基于软件的擦除。由于任何出错的存储单元都在出错的读出数据被校正时被自动地擦除,所以通过顺序地读出存储器中的每一存储单元就能够擦除整个存储器。
根据第二个替代的实施例,相同的机制可被用来在读-修改-写操作被执行时产生新的ECC代码字。这是通过首先将部分写入数据存储在写入缓冲器中、然后从存储器中读出要被修改的数据并将其存储在读出数据缓冲器中来实现的。由于控制逻辑发出的恰当的控制信号,读出和写入数据在它们被写入存储器时在输出多路转换器中被合并。
附图概述

图1是由多个微处理器和一存储器子系统组成的一般的计算机系统的方框图,在该存储器子系统中,存储器控制器通过存储器接口部件与存储器阵列连接。
图2是按照本发明的图1所示存储器控制器的方框图。
图3是构成本发明的自动擦除机制的存储器控制器的具体部件以及它们的互连的方框图。
发明的详细描述本发明提供了通过利用连接在存储器控制器的读出和写入数据缓冲器的输出端之间的回写通道在检测到从存储器读出的数据的可校正差错时就自动地擦除存储器中的ECC差错的方法和装置。为说明起见,详细地示出具体的实施例以便彻底地理解本发明。但是,可以利用其它实施例并且不需要所给出的所有具体的细节来实施本发明,这对本领域的普通技术人员而言是显而易见的。在其它情况下,为了避免不必要地使本发明难于理解,没有详细地给出众所周知的结构元件、部件、电路、处理步骤等。
I.存储器控制器综述根据本发明的一个实施例,擦除机制在如图1概括地所示的流水线的多处理器计算机系统中被实现,该计算机系统由多达4个微处理器、一系统总线和一存储器子系统组成,该存储器子系统最好包括DRAM存储器阵列、用于处理存储器存取请求的存储器控制器(MC),和用于通过对来自交错存储器的读出数据进行多路复用和将写入数据缓冲至交错存储器而使MC与存储器阵列接合的存储器接口部件(MIC)。
系统总线提供36位的地址、64位的数据和支持数据一致性所需的控制信号,以便执行总线事项处理和在有多个高速缓存的情况下维持一致的共享存储器。系统总线能够在66.7MHz下支持8个物理负载(在较低的频率下能够支持更多的负载),所以附加I/O总线桥接器、MC或其它定制的附属装置可以与总线连接。
就存储器阵列而言,可支持3种不同类型的存储器结构具有采用64兆位技术的高达4千兆字节的存储器的4∶1交错DRAM结构,具有高达2千兆字节的存储器的2∶1交错DRAM结构以及具有高达1千兆字节的存储器的非交错DRAM结构。在这一特定实施例中,多达4个的MC可被连接至系统总线,所以完全配置的系统将具有最大为16千兆字节的可寻址存储器。
MC支持的存储器最好被排列为8行,1、2或4行交叉存取。虽然该存储器可用任何类型的RAM器件来实现,但优先采用的RAM器件不是由独立的存储器器件、单面SIMM就是由双面SIMM组成。对于所有这三种存储器结构类型,MC提供8个逻辑RAS#信号,每行一个,同时为扇出提供RAS#信号的两个拷贝。对于采用独立存储器器件或单面SIMM的实现,MC提供8个逻辑CAS#信号,每行一个,同时也为扇出提供两个拷贝。但是,在双面SIMM的情形中,只有4个逻辑CAS#信号(每对行一个),每CAS#信号的装载被加倍。
如图1和2所示,MC被划分成为两个ASIC,一个构成“DRAM控制器(DC)”部件而另一个构成“数据通道(DP)”部件,由此分离流过MC的地址及数据流,以便改善流水线系统的速度和效率。DC部件除了对存储器地址进行地址译码外还负责处理所有的存储器存取请求和命令,DP部件负责数据流入和流出存储器。
两部件通过芯片间互连(ICIC)在功能上相互连接,芯片间互连包括通信路径和在两个部件之间传送数据和控制信息所需的缓冲器。两个ASIC被设计成直接与系统总线连接而不需要外部粘接部件,并共同构成仅一个总线负载。应当指出,虽然在这一特定的实施例中,MC被优选地划分成为单独的ASIC部件,以便改善效率、速度和成本有效度,但它可作为一单个包装的存储器控制器被实现,还可以被应用在多处理器和单处理器中,以及被应用在流水线和非流水线系统中。
参看图2,MC的DC部件在功能上可被划分成为三个主要部分“总线引擎(BEC)”、“队列管理单元(QMUC)”和“存储器接口(MMIC)”。BEC提供对于系统总线的接口,而QMUC将BEC连接至MMIC。BEC除了包括为控制总线和安排在总线和MC数据缓冲器(未示出)之间的数据传送所需的状态机(未示出)外,还包含为系统总线请求的有序队列。BEC还负责在DP部件中的缓冲器分配和负责在DP部件内的ICIC的系统一侧的接口(SYSIDP)的控制。QMUC是BEC和MMIC之间的主接口,包括对系统总线请求和从BEC接收的供MMIC在译码请求和执行存储器存取时使用的相应地址进行缓冲的输出请求队列(ORQ)。
MMIC提供MC的所有存储器控制器特有功能。MMIC的主要功能是控制QMUC的MMIC侧、控制外部存储器和控制对于DP部件的芯片间接口。该单元还将系统请求转换为DRAM存储器周期和芯片间周期。就MMIC和QMUC的ORQ之间的接口而言,MMIC利用ORQ来1)向ORQ提供当前请求的有效地址、2)从ORQ读出下一个请求以及3)读出下一个请求的状态。在这一方面,MMIC还通过QMUC向BEC返回响应信息。
MMIC的主要单元最好包括1)地址译码单元(未示出),用来确定登记的总线请求是否是指定给MC的和用来计算对于DRAM阵列的存取的有效地址,2)请求地址单元(未示出),用来确定在存储器阵列中请求指定的位置和用来在存储器阵列中维持开放页面表,3)存储器控制逻辑(MCL),根据来自QMUC的当前请求来控制其它单元,并产生存储器子系统控制信号、存储器侧芯片间互连信号、MIC接口信号以及存储器复位和差错信号,4)配置寄存器单元(未示出),它包含为预先计算内部参数和通过ICIC控制配置空间的读和写所需的全部配置寄存器、逻辑和状态机,以及5)存储器刷新单元(未示出),用来控制存储器刷新速率。
在数据通道侧,MC的DP部件支持从系统总线到存储器阵列的数据流,并且由于所有对总线和存储器接口的控制都是由DC部件产生的,所以DP部件与存储器控制接口无关系。DP部件的主要功能是提供从总线至存储器的64位数据通道、为总线上和存储器中的数据提供ECC支持、擦除(或校正)存储器阵列中的任何可校正差错以及为单时钟周期的数据传送脉冲串提供支持。
类似于DC部件,DP在功能上被划分成为三个主要部分“总线引擎(BED)”、“队列管理单元(QMUD)”和“存储器接口(MMID)”。BED提供对于系统数据总线的接口,而QMUD利用多个数据缓冲器将BED连接至MMID。如图2所示,QMUD包括在从存储器读出的数据被放置在系统总线上之前对其进行暂时缓冲的一组读数据缓冲器、和在从系统总线接收的写入数据被写入存储器之前对其进行暂时缓冲的一组写数据缓冲器。每一请求的状态由产生事项处理命令的DC部件的MCL进行跟踪。为了最优化流水线系统的系统性能,每一组数据缓冲器最好包括四个缓冲器,以便在任何一个时刻可以同时处理总共8个不同的存储器存取。然而,不违背本发明的精神,在流水线或非流水线系统中可以使用任何个数的读和写数据缓冲器。
如图2所示,MMID包括连到QMUQ、BED、ICIC和外部存储器阵列的多个数据及控制接口。MMID的主要功能单元包括1)存储器输入/输出(MIO)缓冲器,它缓冲被用来存取存储器阵列的信号,2)DP操作寄存器,它可通过DC部件被编程来对DP部件进行操作控制,3)数据通道单元(DPU),它将数据从QMUD缓冲器传送至选定的存储单元(反之亦然)并对数据进行变换,4)ICIC,它包括ICIC缓冲器、连到DP部件的系统一侧的接口(SYSIDP)和连到DP部件的存储器一侧的接口(MEMIDP),用来缓冲从DC部件的MCL接收的数据和命令和将这些命令变换成为数据传送控制信号,以及5)数据通道状态机(DPSM),它们根据经由ICIC的MCL的当前命令为所有其它单元提供控制。
给ICIC设置了处理所有与BED和QMUD的数据业务量有关的命令的系统侧接口(SYSIDP)以及处理所有与QMUD、存储器数据业务量和DP部件的配置编程有关的命令的存储器侧接口(MEMIDP)。指向MC的总线请求将导致至少一个由MCL产生的、被传送给SYSIDP的命令,在SYSIDP中这些命令被处理并被变换成为控制信号,这些控制信号然后引导数据从BED至QMUD的流动,或者相反。被SYSIDP处理的命令还将被传送给MEMIDP以便开启向存储器或来自存储器的数据传送。
DPSM处理从DC部件接收的存储器命令并控制在QMUD和存储器阵列之间的数据流。它们还在每一存储器命令结束时通过ICIC向DC部件报告差错类型。DP寄存器还特别包括被用来对系统数据和存储器数据进行ECC检测的可配置ECC寄存器。
就图2和3所示的DPU而言,在DPU内设置了读出数据总线和写入数据总线,以便分别将数据从存储器传送至QMUD的读出数据缓冲器和将数据从QMUD的写入数据缓冲器传送至存储器。如图3所示,DPU还包括ECC检测及校正单元和ECC代码字产生单元。输出的写入数据(即优选实施例中的64位DWORD)首先从写入数据缓冲器出栈,然后输入到ECC代码字产生单元,在该单元中计算8个奇偶校验位并将它们附加到DWORD以构成72位的代码字,然后通过MIO缓冲器将该代码字顺序写入存储器。
相反地,以72位代码字形式的输入的读出数据首先在MIO缓冲器中被缓冲,然后被传送至ECC检测及校正单元,以便在其被存储到QMUD的读数据缓冲器内之前译码该代码字、检测数据的差错并校正任何可校正差错。此时该72位代码字被译码成为原来的64位DWORD并进一步被用来计算该代码字的校正子。该校正子被输入到差错分类电路(未示出),以便确定是否已出现了差错。如果确定已出现了差错,就通过“差错”总线把这一差错状态作为可校正差错或不可校正差错报告给DC部件的MCL。如果是可校正的,该代码字的校正子就输入到纠错电路(未示出),以便产生被校正的DWORD作为到QMUD的读数据缓冲器的输出。
虽然原则上在本发明中可以采用任何的ECC代码,但在本发明的这一实施例中优选采用的ECC代码包括一个(72,64)SEC-DED-S4ED循环差错控制代码,1993年12月30日申请的、被转让给SantaCLara的Intel公司的待审查美国专利申请第08/176351号详细描述了这一代码。该代码的H矩阵被设计成支持在72位数据通道内的奇偶校验。H矩阵的所有列是线性无关的,并具有奇数加权,每一4位宽的列被安排来允许检测4位字节的差错。一位和两位差错被SEC-DED特性所覆盖,而三倍差错产生不等于H中的任一加权5列的加权5的一奇数校正子。另外,四位差错给出一非零的偶数加权校正子。因此,这一特定的ECC代码能够(1)检测和校正一单个的位差错(由于每一列是唯一的)、(2)检测两个位的差错(由于每一列具有奇数加权)、(3)检测4位一字节内的三个位的差错(由于这种差错将产生具有一半加权2和一半加权3的校正子)、以及(4)检测4位一字节内的四个位的差错(由于这种差错将产生不能被求和成为零的校正子)。
II.自动ECC擦除机制根据上述MC的实施例,借助于连接在QMUD读出和写入缓冲器的输出端之间的被校正数据回写通道和在MCL的控制下通过DPSM实现了存储器读出时的自动存储器擦除。参看图3,一旦ECC检测及校正单元已在从存储器读出的代码字中检测到可校正差错,该单元就利用差错总线将这一状态通知给MCL、校正出错的数据、然后将该数据传送到QMUD中的下一个被分配的读出缓冲器。在MMIC的控制下,BED最终将来自读缓冲器的数据放置在系统总线上以供微处理器或其它总线工具使用。但是,在DC部件的请求队列中的相应请求被撤消之前,在被分配的读出缓冲器中继续保持该数据的拷贝。
MCL保持对缓冲器分配的跟踪、特别是对存储了现今被校正数据的缓冲器的跟踪,并用差错标记来标记在请求队列中的相应的总线请求。然后MCL(通过ICIC)向在MEMCMD总线上的DPSM发出存储器擦除命令,指出在读出缓冲器内的被校正数据将要被写回到其原来所在的存储单元。由于MC的流水线性质,MCL可以利用QMUD的其它数据缓冲器来选择执行或结束较高优先级的事项处理,所以擦除命令不必立即发出。但是,如果仅设置了一个读出数据缓冲器,就不得不在被校正读数据从缓冲器中被删除或被后来的读出复盖写入之前执行存储器擦除。
一旦擦除命令被DPSM接收,该擦除命令除了识别数据的长度外还识别存储了被校正数据的特定缓冲器,则它就被译码,擦除处理状态机(SPSM)就被选择来启动擦除处理。在擦除处理中,SPSM首先发出读出源选择信号给读出数据缓冲器的控制多路转换器(CTL MUX),以便选择控制源,它将发出命令来存取该特定缓冲器并在其内开始读操作。一旦确定了读出源选择信号,CTL MUX的输出就从(经由系统总线的)第一“总线工具”控制输入改变成为(经由MCMCMD总线的)第二MCL控制输入,所以MCL现在控制读出数据缓冲器的寻址和选通。
SPSM还发出缓冲器选择信号给输出多路转换器(OUTMUX),该多路转换器的输入是来自其各自的缓冲器的写入数据和读出数据,其输出端通过MIO缓冲器和MIC与存储器连接。一旦做完了这一切,SPSM就给CTL MUX发出读允许信号,以便从读出数据缓冲器中读出数据。数据通过OUT MUX,进入产生代码字并将其存储在MMID的MIO缓冲器内的ECC代码字产生单元。MCL然后通过存储器控制总线向MIC和存储器阵列发送正确的地址和请求属性信号,以便被校正数据然后被写入由仍在DC部件的请求队列中的原先的读请求指定的存储器的存储单元中。一旦被校正数据已被写回到同一存储单元,就撤消在DC部件的请求队列中的被标记请求,重新分配相应的读出数据缓冲器以供以后使用。
在本发明的另一实施例中,上述擦除机制被用来利用硬布线的回写通道执行存储器阵列的周期性擦除。由于在出错的读出数据被校正时自动地擦除出错的任何存储单元,所以通过顺序地读出存储器中的每一存储单元就能够简单地擦除整个存储器。此外,因为MC的MCL在检测到可校正差错时就产生适合于控制被校正数据的回写的控制信号,所以微处理器所需的唯一的软件支持是为这一特定操作准备配置寄存器所需的软件支持。
根据第二个替代的实施例,相同的机制可被用来在读-修改-写操作被执行时产生新的ECC代码字。这是通过首先将部分写入数据存储在写入缓冲器中、然后从存储器中读出要被修改的数据并将其存储在读出数据缓冲器中来实现的。通过向输出多路转换器施加合适的缓冲器选择和字节使能信号,数据通道状态机就将在读出和写入数据被写入存储器时利用该输出多路转换器来合并读出和写入数据。这不仅为读-修改-写操作提供了产生ECC的简单和有效的手段,而且保证了在处理期间将不会产生不可校正的两个位的差错,由此提高了系统的可靠性。
因此,通过利用包括到达存储器的被校正数据回写通道的硬件擦除机制,本发明能够克服在通常的基于软件的擦除机制中所固有的缺点。通过使用已有的ECC检测及校正电路并利用其操作的优点,本发明能够在减少存储器擦除操作所需的存储器带宽的数量的同时简化以前的ECC擦除处理,以便改善整个系统的性能和可靠性。
应当懂得,本领域的普通技术人员在不违背本发明的精神和不超出本发明的范围的条件下可以做出各种改进和变动。因此,应当知道本发明不受上述说明性的描述所限定,而是被所附的权利要求进行限定。
权利要求
1.在连接在系统总线和存储器之间的、至少具有用于在存储器和系统总线之间传送数据的存储器控制逻辑和第一数据缓冲器的存储器控制器中,提供了一种一旦检测到从特定存储单元读出的数据的可校正差错就自动地擦除存储器中的ECC差错的方法,该方法包括以下步骤校正出错的读出数据;将被校正的读出数据存储在第一数据缓冲器中;将存储在第一数据缓冲器中的被校正读出数据写到回写通道上,该回写通道的输入端连接在第一数据缓冲器和系统总线之间,输出端与存储器连接;以及按照由存储器控制逻辑产生的存储器控制信号将被校正读出数据从回写通道写入到该特定的存储单元。
2.权利要求1的方法,其特征在于,其中在检测到从存储器读出的数据的可校正差错时,该方法还包括向存储器控制逻辑指出存在可校正差错的步骤。
3.权利要求2的方法,其特征在于,其中将存储在第一数据缓冲器中的被校正读出数据写到回写通道上的步骤包括把第一数据缓冲器的控制从与系统总线连接的总线工具传送到存储器控制逻辑、以便用由存储器控制逻辑产生的存储器控制信号来专门地控制被校正读出数据的写入的步骤。
4.权利要求2的方法,其特征在于,其中存储器控制器包括多个数据缓冲器,从而允许通过向存储器控制逻辑提出的相应存储器存取请求同时存取存储器,且将存储在第一数据缓冲器中的被校正的读出数据写到回写通道上的步骤包括以下步骤在指出存在可校正差错时,使差错标记与在存储器控制逻辑的请求队列中的当前存储器存取请求相连系,以便识别与出错的读出数据相关的存储器存取请求;把第一数据缓冲器的控制从与系统总线连接的总线工具传送到存储器控制逻辑;以及用由存储器控制逻辑产生的存储器控制信号来专门地控制被校正的读出数据的写入。
5.权利要求4的方法,其特征在于,其中将存储在第一数据缓冲器中的被校正读出数据写到回写通道上的步骤在具有较高优先级的其它存储器存取之后执行。
6.权利要求2的方法,其特征在于,其中将存储在第一数据缓冲器中的被校正读出数据写到回写通道上的步骤包括以下步骤把由总线工具产生的并利用系统总线传送的存储器控制信号作为第一输入提供给控制多路转换器;把由存储器控制逻辑产生的存储器控制信号作为第二输入提供给控制多路转换器;在指出存在可校正差错时,选择由存储器控制逻辑产生的存储器控制信号作为控制多路转换器的输出;以及把控制多路转换器的输出作为控制/地址输入提供给第一数据缓冲器,以便按照由存储器控制逻辑产生的存储器控制信号将存储在第一数据缓冲器中的被校正数据读出到回写通道上。
7.权利要求6的方法,其特征在于,其中将被校正读出数据从回写通道写入到特定存储单元的步骤包括以下步骤把由总线工具产生的并利用系统总线传送的写入数据作为第一输入提供给输出多路转换器;把在回写通道上的被校正读出数据作为第二输入提供给输出多路转换器;在指出存在可校正差错时,由存储器控制逻辑选择被校正读出数据作为输出多路转换器的输出;以及将从输出多路转换器输出的被选定数据写入到特定的存储单元。
8.权利要求7的方法,其特征在于,其中第一数据缓冲器包括用于存储从存储器读出的数据的读出数据缓冲器,而存储器控制器还包括用于存储将要被写入存储器的数据的写入数据缓冲器,以及把由总线工具产生的并利用系统总线传送的写入数据作为第一输入提供给输出多路转换器的步骤包括以下步骤将总线工具产生的写入数据从系统总线写入到写入数据缓冲器;以及把存储在写入缓冲器中的写入数据作为第一输入提供给输出多路转换器。
9.权利要求7的方法,其特征在于,其中向存储器控制逻辑指出存在可校正差错的步骤通过以下步骤来执行将从存储器读出的数据输入给差错检测及校正电路;以及在检测到可校正差错时,将可校正差错检测信号从差错检测及校正电路传送到控制逻辑。
10.权利要求1的方法,其特征在于,其中存储器控制器包括多个读出和写入数据缓冲器,每一数据缓冲器构成双端口随机存取存储器,第一数据缓冲器构成读出数据缓冲器。
11.在连接在系统总线和存储器之间的、至少具有用于在存储器和系统总线之间传送数据的存储器控制逻辑和第一数据缓冲器的存储器控制器中,提供了一个自动地擦除存储器中的ECC差错的方法,该方法包括以下步骤从存储器读出数据;将该读出数据输入给ECC差错检测及校正电路,以便检测该读出数据的差错并校正该读出数据的任何可校正差错;在检测到从特定存储单元读出的数据的可校正差错时,将可校正差错检测信号从差错检测及校正电路传送到存储器控制逻辑;将差错检测及校正电路输出的被校正读出数据存储在第一数据缓冲器中;在从差错检测及校正电路接收到可校正差错检测信号时,就利用存储器控制逻辑产生第一源选择信号和第二缓冲器选择信号;将第一源选择信号传送给一个把来自每个经由系统总线的总线工具和存储器控制逻辑的存储器控制信号作为其输入的控制多路转换器,以便选择从存储器控制逻辑输入的存储器控制信号作为控制多路转换器的输出;把控制多路转换器的输出作为控制输入提供给第一数据缓冲器,以便利用存储器控制逻辑专门地控制存储在第一数据缓冲器中的被校正读出数据的写入;将第一数据缓冲器的被校正读出数据写到回写通道上,该回写通道连接在第一数据缓冲器的输出端和输出多路转换器的第一输入端之间,输出多路转换器把由总线工具通过系统总线提供的写入数据作为第二输入;把第二缓冲器选择信号作为控制输入提供给输出多路转换器,以便选择被校正读出数据作为输出多路转换器的输出;以及按照由存储器控制逻辑产生的存储器控制信号将被校正读出数据写回到特定的存储单元。
12.权利要求11的方法,其特征在于,其中存储器控制器包括多个数据缓冲器,从而允许通过向存储器控制逻辑提出的相应存储器存取请求同时存取存储器,以及将第一数据缓冲器的被校正读出数据写到回写通道上的步骤藉助于一旦从差错检测及校正电路接收到可校正差错检测信号就使差错标记与在存储器控制逻辑的请求队列中的当前存储器存取请求相连系的步骤来执行。
13.权利要求12的方法,其特征在于,其中将来自第一数据缓冲器的被校正读出数据写到回写通道上的步骤在具有较高优先级的其它存储器存取之后执行。
14.权利要求11的方法,其特征在于,其中第一数据缓冲器包括用于存储从存储器读出的数据的读出数据缓冲器,而存储器控制器还包括用于存储将要被写入存储器的数据的写入数据缓冲器,该方法还包括以下步骤将总线工具提供的写入数据从系统总线写入到写入数据缓冲器;以及把存储在写入缓冲器中的写入数据作为第二输入提供给输出多路转换器。
15.权利要求11的方法,其特征在于,其中存储器控制器包括多个读出和写入数据缓冲器,每一数据缓冲器构成双端口随机存取存储器,第一数据缓冲器构成读出数据缓冲器。
16.权利要求11的方法,其特征在于,其中从存储器读出数据的步骤是通过在执行周期性擦除时顺序地读出存储器中的每一存储单元来完成的,存储单元的读出是由存储器控制逻辑产生的存储器控制信号来进行控制。
17.在包括微处理器、用于将该微处理器连接到存储器和连接到至少包括输入/输出设备的多个总线工具的系统总线、以及至少具有用于控制对存储器的存取的存储器控制逻辑的存储器控制器的计算机系统中,在该存储器控制器中设置了一种用于一旦检测到从存储器读出的数据的可校正差错就自动地擦除存储器中的ECC差错的装置,该装置包括用于检测从存储器读出的数据的差错并校正在该读出数据中发现的任何可校正差错的ECC差错检测及校正单元,该ECC差错检测及校正单元在检测到可校正差错时就向存储器控制逻辑指出在从特定存储单元读出的数据中存在可校正差错;用于存储ECC差错检测及校正单元输出的读出数据的第一数据缓冲器;以及其输入端与第一数据缓冲器的输出端连接而其输出端与存储器连接的回写通道,用于根据存储器控制逻辑对指出在从特定存储单元读出的数据中存在可校正差错作出响应而产生的存储器控制信号将第一缓冲器的被校正数据写入存储器。
18.权利要求17的装置,其特征在于,其中该装置还包括一个把由存储器控制逻辑产生的存储器控制信号作为第一输入、把由微处理器和总线工具之一产生的存储器控制信号作为第二输入和把存储器控制逻辑的第一选择信号作为第三输入的控制多路转换器,用于选择第一和第二输入之一作为输出,以便根据所选定的特定存储器控制信号来控制第一数据缓冲器,存储器控制逻辑在可校正差错的存在被指出时发出第一选择信号,以便使存储在第一数据缓冲器中的被校正读出数据的写入能够被存储器控制逻辑专门地控制。
19.权利要求17的装置,其特征在于,其中该装置还包括一个把在回写通道上的被校正读出数据作为第一输入、把由微处理器和总线工具之一提供的写入数据作为第二输入和把存储器控制逻辑的第二选择信号作为第三输入的输出多路转换器,用于选择第一和第二输入之一作为输出,存储器控制器在可校正差错的存在被指出时发出第二选择信号,以便使被放置在回写通道上的被校正读出数据能够被写入存储器。
20.权利要求17的装置,其特征在于,其中该装置还包括一个把在回写通道上的被校正的读出数据作为第一输入、把由微处理器和总线工具之一提供的写入数据作为第二输入和把存储器控制逻辑的字节使能信号作为第三输入的输出多路转换器,用于在执行读-修改-写操作时有选择地将从微处理器和总线工具之一输入到该多路转换器的部分写数据与存储在第一数据缓冲器中的被校正读出数据进行合并。
21.权利要求20的装置,其特征在于,其中该装置还包括与控制多路转换器的输出端连接的ECC代码字产生单元,用来在从控制多路转换器输出的合并数据被写回到存储器之前对其进行编码。
22.权利要求19的装置,其特征在于,其中第一数据缓冲器包括用于存储从存储器读出的数据的读出数据缓冲器,而存储器控制器还包括用于存储将要被写入存储器的数据的写入数据缓冲器,存储在读出数据缓冲器中的读出数据构成输出多路转换器的第一输入,而存储在写入数据缓冲器中的写入数据构成输出多路转换器的第二输入。
23.权利要求17的装置,其特征在于,其中存储器控制器还包括存储器存取请求队列和多个数据缓冲器,以便允许通过向存储器控制逻辑提出的并在该请求队列中被缓冲的相应存储器存取请求同时存取存储器,存储器控制逻辑使差错标记与在被识别为是与出错的读出数据相关的存储器存取请求的请求队列中的被缓冲的存储器存取请求相联系。
24.权利要求17的装置,其特征在于,其中存储器控制逻辑在执行周期性的擦除时开始对存储器中的每一存储单元的顺序读出,存储单元的读出被由存储器控制逻辑产生的存储器控制信号所控制。
全文摘要
用于在检测到从存储器读出的数据的可校正差错时自动地擦除存储器中的ECC差错的方法和装置。这是藉助于在存储器控制器(MC)中提供了用于对存储器的存取进行控制的存储器控制逻辑、用于检测从存储器读出的数据的差错并校正在该读出数据中发现的任何可校正差错的ECC差错检测及校正单元、用于存储从ECC差错检测及校正单元输出(72,64)的被校正读出数据的第一数据缓冲器以及其输入端与第一数据缓冲器的输出端连接且其输出端与存储器连接的回写通道等来完成的。一旦检测到从特定存储单元读出的数据的可校正差错,ECC差错检测及校正单元就向存储器控制逻辑指出在读出数据中存在可校正差错。存储器控制逻辑然后专门对第一数据缓冲器和回写通道进行控制,以便控制将被校正读出数据写到回写通道上并且随后写入存储器。
文档编号G06F11/10GK1149344SQ95193216
公开日1997年5月7日 申请日期1995年5月23日 优先权日1994年5月24日
发明者M·A·冈扎里斯, T·J·霍尔曼, P·F·施托尔特 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1