软错误纠正方法、存储控制设备及存储系统的制作方法

文档序号:6758268阅读:182来源:国知局
专利名称:软错误纠正方法、存储控制设备及存储系统的制作方法
技术领域
本发明一般地涉及一种软错误纠正方法、存储控制设备及存储系统,更具体地,涉及一种用于纠正内存内的软错误的软错误纠正方法,一种适用于这种软错误纠正方法的存储控制设备,以及一种采用这种软错误纠正方法的存储系统。
背景技术
图1是示出传统存储系统的实例的系统框图。图1所示的存储系统10具有存取字节片式(Byte-sliced)的数据,即数据按一些字节为单位进行了划分的结构。存储系统10包括多个内存(MEM)1-1至1-n、多个内存存取控制器(MAC)2-1至2-n、系统控制器(SC)3、以及多个MPU 5-1至5-m。在图1中,数据总线由白色箭头来表示,地址总线由粗实线箭头来表示,并且状态总线由实线箭头来表示。
内存存取控制器2-1至2-n被构造为以同步存取周期、以字节片式的数据的字节为单位存取内存1-1至1-n。换句话说,所有的内存存取控制器2-1至2-n以相同定时恒定并且同时地对所有内存1-1至1-n进行内存存取,从而在对内存1-1至1-n的存取中不会产生同步错误。
另一方面,在由多个存储装置比如DRAM和SRAM构成的内存1-1至1-n中,会以预定的概率产生软错误。由此,在要求存储系统10具备可靠性的情况下,便利用比如ECC之类的数据保护机制来纠正内存1-1至1-n内的数据。
例如,如果在一个内存1-1内产生了可纠正的软错误并且系统控制器3检测到该软错误,则通常系统控制器3的硬件自身会执行错误纠正操作。在这种情况下,需要下述的一系列操作。
图2和图3是用于说明这种情况下的错误纠正操作的示图。图2是功能性地示出存储系统10的重要部分的系统框图,并且图3是用于说明错误纠正操作的时序图。在图2中,虚线箭头表示命令流,粗虚线箭头表示地址流,实线箭头表示状态流,以及粗实线箭头表示数据流。此外,图2中括号内的数字表示比特数。
如图2所示,每个内存存取控制器2-1至2-n除了包括一个控制器(未示出)之外还包括寄存器521、522、525和526。系统控制器3除了包括一个控制器(未示出)之外,还包括选择器531和532、寄存器533和534、AND电路535、错误检测部件536、选择器537、错误纠正部件538和寄存器539。
首先,如图2和图3所示,当来自MPU 5-1的读命令与地址一起输入到系统控制器3时,系统控制器3经由选择器531和532将读命令(Readcmd)和地址(Address)输入到内存存取控制器2-1。读命令(Command)和地址(Address)被临时保存在内存存取控制器2-1的寄存器521和522中,并且以内存规定的定时输入到内存1-1。从内存1-1读取(MEM Read)的并且包含ECC的数据(Data)被输入到内存存取控制器2-1并临时保存在内存存取控制器2-1内的寄存器525中,并以内存规定的定时被输入到系统控制器3。如果由于在系统控制器3的错误检测部件536中利用ECC进行错误检测(Read Data Check)的结果在读取数据(Read Data)中不存在错误(Error),则读取的数据(Correct Data)被输入到MPU5-1。
另一方面,如果由于在系统控制器3中利用ECC进行错误检测的结果在读取的数据中存在错误,但是该读取的数据(Error Data)可由ECC(Error Correct)纠正,则对检测出错误的地址(Error Address)进行纠正错误的读命令(Scrub cmd)被输入到内存存取控制器2-1,以便从内存1-1读取错误数据(Error Data)。由于可在系统控制器3的错误纠正部件538中利用ECC纠正读取的数据中的错误,因此读取的数据经由寄存器539和选择器537被输入到错误纠正部件538,并被纠正,然后纠正后的数据(纠正后的读取的数据)与用于纠正错误的写命令一起被输入到内存存取控制器2-1。内存存取控制器2-1在寄存器526中临时保存纠正后的数据,并且在规定的定时将纠正后的数据重写到检测出上述错误的地址。由此,内存1-1内的可纠正软错误被纠正。
在正常数据写入(MEM Write)的情况下,来自MPU5-1的写数据经由系统控制器3被输入到内存存取控制器2-1。
如上所述,存储系统10被构造为使所有内存存取控制器2-1至2-n以相同定时恒定并且同时地对所有内存1-1至1-n进行内存存取。为此,不管在内存2-2至2-n中是否存在软错误,都与经由内存存取控制器2-1对内存1-1进行的软错误纠正操作类似,经由其它内存存取控制器2-2至2-n对内存1-2至1-n同时进行软错误纠正操作。
例如,已经在日本特许公开No.59-217298中提出了一种用于修正存储错误的系统。
但是,在传统的存储系统中,错误检测和错误纠正都在系统控制其中执行。结果,就会产生这样的问题,即系统控制器的结构变得复杂,并且系统控制器上的负载较大。此外,还存在这样的问题,即无法对其中系统控制器和纵横交换器分离设置的存储系统的应用。

发明内容
因此,本发明的总的目的是提供一种能抑制上述问题的、新颖和有用的软错误纠正方法、存储控制设备及存储系统。
本发明的其他和更具体的目的是提供一种软错误纠正方法、存储控制设备和存储系统,其能够使得系统控制器的结构相对简单,减少系统控制器上的负载,并且能够实现对其中系统控制器和纵横交换器分离设置的存储系统的应用。
本发明的又一目的是提供一种用于存储系统的软错误纠正方法,该存储系统具有n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,该软错误纠正方法包括在从一个内存读取的数据中检测到可纠正错误时,将检测出该错误的错误地址保存在对应的一个内存存取控制器中,并从对应的一个内存存取控制器向该系统控制器进行错误通知;以及响应该错误通知,不受MPU的干预,从系统控制器控制保存错误地址的一个内存存取控制器,从对应的一个内存的错误地址读取数据,纠正该错误并且将纠正后的数据重写到该错误地址。按照本发明的软错误纠正方法,能够使得系统控制器的结构相对简单,减少系统控制器上的负载,并且能够实现对其中系统控制器和纵横交换器分离设置的存储系统的应用。
本发明的再一目的是提供一种用于存储系统的软错误纠正方法,该存储系统具有n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,该软错误纠正方法包括在从一个内存读取的数据中检测到可纠正错误时,将错误产生信息(error generation)和检测出错误的错误地址保存在对应的一个内存存取控制器中;以及周期性地或者当空闲状态持续了预定时间时,不受MPU的干预,通过保存来自该系统控制器的错误地址的一个内存存取控制器,响应该错误产生信息,从对应的一个内存的错误地址读取数据,纠正该错误并且将纠正后的数据重写到该错误地址。按照本发明的软错误纠正方法,能够使得系统控制器的结构相对简单,减少系统控制器上的负载,并且能够实现对其中系统控制器和纵横交换器分离设置的存储系统的应用。
本发明的另一目的是提供一种用于存储系统的存储控制设备,该存储系统具有n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,该存储控制设备包括装置,该装置用于在从一个内存读取的数据中检测到可纠正错误时,将检测出该可纠正错误的错误地址保存在对应的一个内存存取控制器中,并从对应的一个内存存取控制器中向系统控制器发布错误通知;以及装置,该装置响应该错误通知,用于不受MPU的干预,从该系统控制器控制保存错误地址的一个内存存取控制器,并从对应的一个内存的错误地址读取数据,以纠正该错误并且将纠正后的数据重写到该错误地址。按照本发明的存储控制设备,能够使得系统控制器的结构相对简单,减少系统控制器上的负载,并且能够实现对其中系统控制器和纵横交换器分离设置的存储系统的应用。
本发明的又一目的是提供一种用于存储系统的存储控制设备,该存储系统具有n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,该存储控制设备包括装置,该装置用于在从一个内存读取的数据中检测到可纠正错误时,将错误产生信息和检测出该可纠正错误的错误地址保存在对应的一个内存存取控制器中;以及装置,该装置用于周期性地或者当空闲状态持续了预定时间时,不受MPU的干预,通过保存来自该系统控制器的错误地址的一个内存存取控制器,响应该错误产生信息,从对应的一个内存的错误地址读取数据,以纠正该错误并且将纠正后的数据重写到该错误地址。按照本发明的存储控制设备,能够使得系统控制器的结构相对简单,减少系统控制器上的负载,并且能够实现对其中系统控制器和纵横交换器分离设置的存储系统的应用。本发明的又一目的是提供一种存储系统,其包括n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,其中在从一个内存读取的数据中检测到可纠正错误时,将检测出该错误的错误地址保存在对应的一个内存存取控制器中,并从该对应的一个内存存取控制器向该系统控制器进行错误通知;以及响应该错误通知,不受MPU的干预,从系统控制器控制保存错误地址的一个内存存取控制器,从对应的一个内存的错误地址读取数据,纠正该错误并且将纠正后的数据重写到该错误地址。按照本发明的存储系统,能够使得系统控制器的结构相对简单,减少系统控制器上的负载,并且能够实现对其中系统控制器和纵横交换器分离设置的存储系统的应用。
本发明的又一目的是提供一种存储系统,其包括n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,以向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,其中在从一个内存读取的数据中检测到可纠正错误时,将错误产生信息和检测出该错误的错误地址保存在对应的一个内存存取控制器中;以及周期性地或者当空闲状态持续了预定时间时,不受MPU的干预,通过保存来自系统控制器的错误地址的一个内存存取控制器,响应该错误产生信息,从对应的一个内存的错误地址读取数据,纠正该错误并且将纠正后的数据重写到该错误地址。按照本发明的存储系统,能够使得系统控制器的结构相对简单,减少系统控制器上的负载,并且能够实现对其中系统控制器和纵横交换器分离设置的存储系统的应用。
本发明的又一目的是提供一种用于存储系统的软错误纠正方法,该存储系统具有n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址;以及一个纵横交换器,该纵横交换器被构造为在内存存取控制器与MPU之间交换数据,其中m和n是大于或等于2的整数,该方法包括在从一个内存读取的数据中检测到可纠正错误时,将错误通知和检测出该错误的错误地址从对应的一个内存存取控制器发送至该系统控制器;以及响应该错误通知,不受MPU的干预,将检测出该错误的错误地址从系统控制器发送至对应的一个内存存取控制器,以控制该对应的一个内存存取控制器从该错误地址读取数据、纠正该错误并且将纠正后的数据重写到该错误地址。按照本发明的软错误纠正方法,能够使得系统控制器的结构相对简单,减少系统控制器上的负载,并且能够实现对其中系统控制器和纵横交换器分离设置的存储系统的应用。
从结合附图的下述具体描述中,本发明的其他目的和进一步的特点将变得更为明显。


图1是示出传统存储系统的实例的系统框图;图2是功能性地示出存储系统的重要部分的系统框图;图3是用于说明错误纠正操作的时序图;图4是示出按照本发明的存储系统的第一实施例的系统框图;图5是功能性地示出存储系统的第一实施例的重要部分的系统框图;图6是用于说明第一实施例的错误纠正操作的时序图;图7是示出按照本发明的存储系统的第二实施例的系统框图;图8是功能性地示出存储系统的第二实施例的重要部分的系统框图;图9是用于说明第二实施例的错误纠正操作的时序图;图10是用于说明第二实施例的内存存取控制器的读操作的流程图;以及图11是用于说明第二实施例的内存存取控制器的错误纠正操作的流程图。
具体实施例方式
现在参照图4和后面的附图给出按照本发明的软错误纠正方法、存储控制设备和存储系统的实施例的描述。
图4是示出按照本发明的存储系统的第一实施例的系统框图。该存储系统的实施例采用本发明软错误纠正方法的第一实施例。在该实施例中,从检测出错误的内存存取控制器将错误地址发送至系统控制器,并且通过将错误地址从系统控制器发送至所有的内存存取控制器来执行错误纠正操作。
图4所示的存储系统130具有用于存取字节片式的数据,即以字节为单位分片的数据的结构。该存储系统130包括多个内存(MEM)101-1至101-n、多个内存存取控制器(MAC)102-1至102-n、系统控制器(SC)103、纵横交换器(XB)104、以及多个内存(MEM)105-1至105-m。在图4中,数据总线由白色箭头来表示,地址总线由粗实线箭头来表示,状态总线由实线箭头来表示,以及错误地址总线由虚线箭头来表示。
内存存取控制器102-1至102-n被构造为以同步存取周期、以字节片式的数据的字节为单位来存取内存101-1至101-n。换句话说,所有的内存存取控制器102-1至102-n以相同定时恒定并且同时地对所有的内存101-1至101-n进行内存存取,从而在对内存101-1至101-n的存取中不会产生同步错误。
另一方面,在由比如DRAM和SRAM的存储装置构成的内存101-1至101-n中,以预定的概率产生软错误。因此,在要求存储系统130具有可靠性的情况下,便利用数据保护机制比如ECC来纠正内存101-1至101-n内的数据。
例如,如果在一个内存101-1内产生可纠正的软错误并且内存存取控制器102-1检测到该软错误,则由于所有的内存存取控制器102-1至102-n同步操作,所以检测到软错误的内存存取控制器102-1自身执行错误纠正操作。例如响应来自系统控制器103的命令必须执行错误纠正操作。为此,在内存101-1内产生可纠正的软错误并且系统控制器103经由内存存取控制器102-1对内存101-1内的软错误执行错误纠正操作的情况下,需要有下述的一系列操作。
图5和图6是用于说明这种情况下的错误纠正操作的示图。图5是功能性地示出存储系统130的重要部分的系统框图,而图6是用于说明该第一实施例的错误纠正操作的时序图。在图5中,虚线箭头表示命令流,粗虚线箭头表示地址流,实线箭头表示状态流,以及粗实线箭头表示数据流。此外,图5中括号内的数字表示比特数。
在随后将描述的图6和图9中,使用与图3中相同的标号表示。
如图5所示,每个内存存取控制器102-1至102-n除了包括控制器(未示出)之外,还包括寄存器321至326、错误检测部件(Checker)327、选择器328和错误纠正部件(Correct)329。系统控制器103除了包括控制器(未示出)之外,还包括选择器331和332和寄存器33。
首先,如图5和图6所示,当来自MPU 105-1的读命令与地址一起被输入到系统控制器103时,系统控制器103经由选择器331和332向内存存取控制器102-1输入所述读命令和地址。所述读命令和地址被临时保存在内存存取控制器102-1的寄存器321和322中,并被输入到内存101-1。从内存101-1读取的并且包含ECC的数据被输入到内存存取控制器102-1。如果在内存存取控制器102-1的错误检测部件327中利用ECC进行错误检测,结果在读取的数据中不存在错误,则将该读取的数据保存在寄存器325中并经由纵横交换器104输入到MPU 105-1。
另一方面,如果在内存存取控制器102-1中利用ECC进行错误检测,结果在读取的数据中存在错误,但是可通过ECC纠正该读取的数据,则将错误状态(Error Status)保存在寄存器324中,然后向系统控制器103通知该错误状态;此外,将检测出错误的地址(Error Address)保存在寄存器323中,然后向系统控制器103通知该地址并且将该地址保存在系统控制器103的寄存器333中。当系统控制器103接收到对错误状态的错误通知时,系统控制器103不受MPU 105-1的干预向选择器331输入关于检测出错误的地址的错误纠正命令(Scrub cmd)。相应地,系统控制器103经由选择器331和332将该错误纠正命令以及检测出错误的且保存在寄存器333中的地址输入到内存存取控制器102-1,从而从内存101-1中读取该数据。由于可通过ECC纠正该读取的数据的错误,因此内存存取控制器102-1基于错误纠正命令在错误纠正部件329中纠正该读取的数据,并将纠正后的数据(纠正后的读数据)重写到检测出上述错误的地址。更具体地,内存存取控制器102-1经由选择器328向错误纠正部件329输入读取的数据,在将纠正后的数据输入到内存101-1之前将通过错误纠正部件329纠正的读取数据保存在寄存器326中,并且将纠正后的数据重写到检测出错误的地址。由此,内存101-1内的可纠正的软错误被纠正。
在正常数据写入的情况下,经由纵横交换器104将来自MPU 105-1的写数据输入到内存存取控制器102-1的选择器328。
如上所述,存储系统130被构造为使得所有的内存存取控制器102-1至102-n以相同定时恒定并且同时地对所有的内存101-1至101-n执行内存存取。为此,不管在内存101-2至101-n中是否存在软错误,都与经由内存存取控制器102-1对内存101-1进行的软错误纠正操作类似,经由其他内存存取控制器102-2至102-n对内存101-2至101-n同时进行软错误纠正操作。
但是按照该实施例,能够使得系统控制器103的结构相对简单,减少系统控制器103上的负载,并且能够实现对其中系统控制器103和纵横交换器104分离设置的存储系统130的应用。
图7是示出按照本发明的存储系统的第二实施例的系统框图。该存储系统的实施例采用了按照本发明的软错误纠正方法的第二实施例。该实施例与上述第一实施例的不同之处在于,错误地址是被保存在内存存取控制器内,而不是系统控制器内。
图7所示的存储系统30具有用于存取字节片式的数据,即以字节为单位分片的数据的结构。该存储系统30包括多个内存(MEM)21-1至21-n、多个内存存取控制器(MAC)22-1至22-n、一个系统控制器(SC)23、一个纵横交换器24、以及多个MPU 25-1至25-m。在图7中,数据总线由白色箭头来表示,地址总线由粗实线箭头来表示,以及状态总线由实线箭头来表示。
按照本发明的存储控制设备的第一实施例包括至少一个内存存取控制器;或者至少一个内存存取控制器和一个系统控制器;或者至少一个内存存取控制器、一个系统控制器及一个纵横交换器。
内存存取控制器22-1至22-n被构造为以同步存取周期、以字节片式的数据的字节为单位存取内存21-1至21-n。换句话说,所有的内存存取控制器22-1至22-n以相同定时恒定并且同时地对所有的内存21-1至21-n进行内存存取,从而在对内存21-1至21-n的存取中不会产生同步错误。
另一方面,在由比如DRAM和SRAM的存储装置构成的内存21-1至21-n中,以预定的概率产生软错误。因此,在要求存储系统30具有可靠性的情况下,利用数据保护机制比如ECC来纠正内存21-1至21-n内的数据。
例如,如果在一个内存201-1内产生可纠正的软错误并且内存存取控制器22-1检测到该软错误,则由于所有的内存存取控制器22-1至22-n同步操作,所以检测到软错误的内存存取控制器22-1自身执行错误纠正操作。在该实施例中,响应来自系统控制器23的命令执行错误纠正操作。为此,在内存21-1内产生可纠正的软错误并且系统控制器23经由内存存取控制器22-1对内存21-1内的软错误执行错误纠正操作的情况下,需要有下述的一系列操作。
图8和图9是用于说明这种情况下的错误纠正操作的示图。图8是功能性地示出存储系统30的重要部分的系统框图,而图9是用于说明该第二实施例的错误纠正操作的时序图。在图8中,虚线箭头表示命令流,粗虚线箭头表示地址流,实线箭头表示状态流,以及粗实线箭头表示数据流。此外,图8中括号内的数字表示比特数。
如图8所示,每个内存存取控制器22-1至22-n除了包括控制器(未示出)之外,还包括寄存器221至226、错误检测部件(Checker)227、选择器228和230、以及错误纠正部件(Correct)329。该系统控制器23除了包括控制器(未示出)之外,还包括选择器231和232。
首先,如图8和图9所示,当来自MPU 25-1的读命令与地址一起被输入到系统控制器23时,系统控制器23经由选择器231和232向内存存取控制器22-1输入所述读命令和地址。所述读命令和地址被临时保存在内存存取控制器22-1的相应寄存器221和222中,并经由选择器230输入到内存21-1。从内存21-1读取的并且包含ECC的数据被输入到内存存取控制器22-1。如果在内存存取控制器22-1的错误检测部件227中利用ECC进行错误检测,结果在读取的数据中不存在错误,则不在错误纠正部件229中对读取的数据进行纠正,而将该读取的数据保存在寄存器225中并经由错误纠正部件229和纵横交换器24输入到MPU 25-1。
另一方面,如果在内存存取控制器22-1中利用ECC进行错误检测,结果在读取的数据中存在错误,但是可通过ECC纠正该读取的数据,则将错误状态(Error)保存在寄存器224中,然后向系统控制器23通知该错误状态;此外,将检测出错误的地址(Error Address)保存在内存存取控制器22-1内的寄存器(REG)223中。将被检测出可由错误检测部件227中的ECC纠正的错误的读取的数据保存在寄存器225中,然后在错误纠正部件229中纠正,并将纠正后的数据(纠正后的读数据)经由纵横交换器24输入到MPU 25-1。
当系统控制器23接收到对错误状态的错误通知时,系统控制器23不受MPU 25-1的干预产生关于检测出错误的地址的错误纠正命令(Scrub cmd)以及例如全部由“0”组成的预设虚拟读地址,并经由选择器231和232将该错误纠正命令和预设虚拟读地址输入到内存存取控制器22-1。相应地,具有存储检测出错误的地址的寄存器223的内存存取控制器22-1通过经由选择器230向内存21-1输入保存在寄存器223中的地址以及临时保存在寄存器221中的错误纠正命令,从内存21-1读取数据。由于可通过ECC纠正该读取的数据中的错误,因此内存存取控制器22-1基于错误纠正命令在错误纠正部件229中纠正读取的数据,然后将纠正后的数据重写到检测出该错误的地址。更具体地,内存存取控制器22-1在向内存21-1输入纠正后的数据之前,经由选择器228将由错误纠正部件229纠正的读取数据保存在寄存器226中,以便将纠正后的数据重写到检测出错误的地址。由此,内存21-1内的可纠正的软错误被纠正。
另一方面,具有未存储检测出错误的地址的寄存器223的内存存取控制器22-2至22-n经由选择器230向相应的内存21-2至21-n输入虚拟读地址以及临时保存在寄存器221中的错误纠正命令。由此,对于内存21-2至21-n,从虚拟读地址读取的数据经由错误检测部件227、寄存器225、错误纠正部件229、选择器228和寄存器226被照原样回写。存储系统30被构造为使得所有的内存存取控制器22-1至22-n恒定地并且同时地在相同定时对所有的内存21-1至21-n执行内存存取。为此,不管在内存21-2至21-n中是否存在软错误,与经由内存存取控制器22-1对内存21-1进行的软错误纠正操作类似,都经由其他内存存取控制器22-2至22-n对内存21-2至21-n同时进行关于内存21-2至21-n的虚拟读地址的软错误纠正操作。
当然,系统控制器可响应对错误状态的错误通知,控制没有保存错误地址的内存存取控制器22-2至22-n,以便从相应内存21-2至21-n的预设地址读取数据,并且随后通过等待要执行回写所需的时间进行定时调节,而实际上并未执行回写。
在正常数据写入的情况下,经由纵横交换器24将来自MPU 25-1的写数据输入到内存存取控制器22-1的选择器228。
按照该实施例,能够使得系统控制器23的结构相对简单,减少系统控制器23上的负载,并且能够实现对其中系统控制器23和纵横交换器24分离设置的存储系统30的应用。
此外,按照本发明,在纠正软错误时,不必要从MPU 25-1通过软件来实现从检测出错误的地址的读取以及向相同地址的重写,而是代替为,响应来自系统控制器23的触发,通过保存检测出错误的地址的内存存取控制器22-1来纠正软错误。因此,在产生不干扰软件执行的可纠正软错误的情况下,能够无需临时中断软件的执行而如上所述纠正软错误。换句话说,能够不受软件干预而纠正软错误,并能够防止在内存存取控制器中产生同步错误。因此,能够在不增加软件开销且不降低内存吞吐量的条件下纠正内存内的软错误。
图10是用于说明第二实施例的内存存取控制器22-1的读操作的流程图。在图10中,步骤S1经由系统控制器23接收来自MPU 25-1的读命令。步骤S2向内存21-1发布读命令。步骤S3接收来自内存21-1的读取的数据,并通过错误检测部件227检测(或检验)读取的数据中的错误。步骤S4判断读取的数据内是否检测到可纠正错误。如果在步骤S4的判断结果为否,则步骤S5经由纵横交换器24将读取的数据返回至MPU25-1,且处理结束。
另一方面,如果在步骤S4的判断结果为是,则并行执行步骤S6、S7和S8。步骤S6经由纵横交换器24将读取的数据返回至MPU 25-1,该数据的错误已经通过错误纠正部件229被纠正。步骤S7将检测出错误的地址(错误地址)保存(或记录)在内存存取控制器22-1内的寄存器223中,并且步骤S8通过错误状态(错误通知)向系统控制器23通知错误的产生。此时,内存21-1内产生错误的地址处的数据还没有被纠正或重写。在步骤S6、步骤S7和S8之后处理结束。
在上述第一实施例的情况下,在执行步骤S7时,错误地址被保存(或记录)在系统控制器103内的寄存器333中,而不是在内存存取控制器内的寄存器223中,但是除此之外,第一实施例的读操作与第二实施例的基本相同。
图11是用于说明第二实施例的内存存取控制器22-1至22-n的错误纠正操作的流程图。在图11中,步骤S11接收来自系统控制器23的错误纠正命令。如上所述,响应对来自内存存取控制器21-1的错误状态的错误通知,系统控制器23产生错误纠正命令以及虚拟读地址。步骤S12禁止随后的内存存取。结果,在执行错误纠正操作时,来自MPU 25-1等的内存存取被禁止。
步骤S13检验寄存器223的内容,并且步骤S14判断每个内存存取控制器22-1至22-n内是否保存有错误地址。如果在内存存取控制器中保存有错误地址,则与内存存取控制器22-1的情况相同,在步骤S14的判断结果变成是,并且处理进行到步骤S15。步骤S15通过向对应内存21-1发布读命令,读取来自错误地址的数据。步骤S16在错误纠正部件229中纠正从错误地址读取的读取数据。此外,步骤S 17向对应的内存21-1发布写命令并将纠正后的读取数据重写到错误地址。步骤S18取消对随后内存存取的禁止,从而可以继续随后的内存存取,并且处理结束。
另一方面,如果在内存存取控制器中未保存有错误地址,则如内存存取控制器22-1至22-n的情况一样,在步骤S 14中的判断结果变成否,并且处理进行到步骤S21。步骤S21向对应的内存21-2至21-n发布读命令,并且读取来自虚拟读地址的数据。步骤S22向对应的内存21-2至21-n发布写命令,并且将读取的数据照原样回写至虚拟读地址,并且步骤S 18取消对随后的内存存取的禁止,从而可以继续随后的内存存取,并且处理结束。相应地,能够在内存存取控制器22-1至22-n中不产生同步错误的条件下纠正内存21-1至21-n内的软错误。
从内存存取控制器22-1到系统控制器23的状态总线可用于上述错误通知之外的通知。当使用用于从内存存取控制器21-1到系统控制器23进行状态通知的状态总线时,从内存存取控制器22-1发布错误通知的优先级可被设置为低于状态通知的优先级,从而即使共享状态总线时也不会产生同步错误。
接下来,将给出本发明第一修改例的说明。在上述第二实施例中,响应来自接收到内存存取控制器22-1的错误通知的系统控制器23的触发,启动内存存取控制器22-1的错误纠正操作。但是在该第一修改例中,周期性地执行错误纠正操作。
在该第一修改例中,在每个内存存取控制器22-1至22-n内设置计数器装置比如时钟或计时器,使得n个计数器装置彼此同时地运行,并且基于计数器装置管理的时间或定时信息在预设的定时启动错误纠正操作。在这种情况下,即使例如通过内存存取控制器22-1检测到内存21-1内的软错误,也不会对系统控制器23进行错误通知,并且错误地址被保存在内存存取控制器22-1中,一直到错误纠正操作的启动时间为止。当启动时间到来时执行错误纠正操作。结果,不需要在系统控制器23内设置用于执行错误纠正处理的电路,能够进一步简化存储系统30的结构。
接下来,将给出本发明第二修改例的说明。在上述第一实施例中,响应来自接收到内存存取控制器22-1的错误通知的系统控制器23的触发,启动内存存取控制器22-1的错误纠正操作。但是在该第二修改例中,当内存存取控制器22-1的空闲状态持续了预定时间时,执行错误纠正操作。
在该第二修改例中,在每个内存存取控制器22-1至22-n中设置用于判断或检测忙碌状态的电路,并且当空闲状态持续了预定时间时,启动错误纠正处理。结果,不需要在系统控制器23内设置用于执行错误纠正处理的电路,能够进一步简化存储系统30的结构。
因此,本发明适用于对具有这种结构的存储系统的应用,该结构需要在内存存取控制器中不产生同步错误的条件下纠正内存内的软错误。
此外,本发明不限于这些实施例,而是不脱离本发明的范围可进行各种变化和修改。
权利要求
1.一种用于存储系统的软错误纠正方法,该存储系统具有n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,其特征是,该方法包括在从一个内存读取的数据中检测到可纠正错误时,将检测出该错误的错误地址保存在对应的一个内存存取控制器中,并从该对应的一个内存存取控制器向该系统控制器进行错误通知;以及响应该错误通知,不受MPU的干预,从系统控制器控制保存错误地址的一个内存存取控制器,从对应的一个内存的错误地址读取数据,纠正该错误并且将纠正后的数据重写到该错误地址。
2.如权利要求1所述的软错误纠正方法,其特征是,替代将检测出该错误的错误地址保存在该对应的一个内存存取控制器内,而是将该错误地址直接发送给该系统控制器,从而将错误纠正命令和该错误地址从该系统控制器同时输入到每个内存存取控制器。
3.如权利要求1或2所述的软错误纠正方法,其特征是,响应该错误通知,从该系统控制器控制没有保存错误地址的任意内存存取控制器,从对应于所述任意内存存取控制器的内存的预设地址读取数据,随后通过等待完成回写所需的时间来进行定时调节。
4.如权利要求1所述的软错误纠正方法,其特征是,响应该错误通知,从该系统控制器控制没有保存错误地址的任意内存存取控制器,从对应于所述任意内存存取控制器的内存的预设虚拟读地址读取数据,并且将该数据照原样回写至该预设虚拟读地址。
5.如权利要求4所述的软错误纠正方法,其特征是,响应该错误通知,将错误纠正命令和该虚拟读地址从该系统控制器输入到每个内存存取控制器。
6.如权利要求1、4和5中任一项所述的软错误纠正方法,其特征是,利用总线进行该错误通知,该总线被构造为从一个内存存取控制器向该系统控制器发送状态。
7.一种用于存储系统的软错误纠正方法,该存储系统具有n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,其特征是,该方法包括在从一个内存读取的数据中检测到可纠正错误时,将错误产生信息和检测出该错误的错误地址保存在对应的一个内存存取控制器中;以及周期性地或者当空闲状态持续了预定时间时,不受MPU的干预,通过保存来自该系统控制器的错误地址的一个内存存取控制器,响应该错误产生信息,从对应的一个内存的错误地址读取数据,纠正该错误并且将纠正后的数据重写到该错误地址。
8.一种用于存储系统的存储控制设备,该存储系统具有n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,其特征是,该存储控制设备包括装置,该装置用于在从一个内存读取的数据中检测到可纠正错误时,将检测出该可纠正错误的错误地址保存在对应的一个内存存取控制器中,并从该对应的一个内存存取控制器向该系统控制器进行错误通知;以及装置,该装置响应该错误通知,用于不受MPU的干预,从该系统控制器控制保存错误地址的一个内存存取控制器,并从对应的一个内存的错误地址读取数据,以纠正该错误并且将纠正后的数据重写到该错误地址。
9.如权利要求8所述的存储控制设备,其特征是,替代将检测出该错误的错误地址保存在该对应的一个内存存取控制器内,而是将该错误地址直接发送给该系统控制器,从而将错误纠正命令和该错误地址从该系统控制器同时输入到每个内存存取控制器。
10.如权利要求8或9所述的存储控制设备,其特征是,响应该错误通知,从该系统控制器控制没有保存错误地址的任意内存存取控制器,从对应于所述任意内存存取控制器的内存的预设地址读取数据,随后通过等待完成回写所需的时间来进行定时调节。
11.如权利要求8所述的存储控制设备,其特征是还包括装置,该装置响应该错误通知,用于从该系统控制器控制没有保存错误地址的任意内存存取控制器,从对应于所述任意内存存取控制器的内存的预设虚拟读地址读取数据,并且将该数据照原样回写至该预设虚拟读地址。
12.如权利要求11所述的存储控制设备,其特征是还包括装置,该装置响应该错误通知,用于将错误纠正命令和该虚拟读地址从该系统控制器输入到每个内存存取控制器。
13.如权利要求8、11和12中任一项所述的存储控制设备,其特征是,利用总线进行该错误通知,该总线被构造为从该系统控制器向一个内存存取控制器发送状态。
14.一种用于存储系统的存储控制设备,该存储系统具有n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期地存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,其特征是,该存储控制设备包括装置,该装置用于在从一个内存读取的数据中检测到可纠正错误时,将错误产生信息和检测出该可纠正错误的错误地址保存在对应的一个内存存取控制器中;以及装置,该装置用于周期性地或者当空闲状态持续了预定时间时,不受MPU的干预,通过保存来自该系统控制器的错误地址的一个内存存取控制器,响应该错误产生信息,从对应的一个内存的错误地址读取数据,以纠正该错误并且将纠正后的数据重写到该错误地址。
15.一种存储系统,包括n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,其特征是在从一个内存读取的数据中检测到可纠正错误时,将检测出该错误的错误地址保存在对应的一个内存存取控制器中,并从该对应的一个内存存取控制器向该系统控制器进行错误通知;以及响应该错误通知,不受MPU的干预,从系统控制器控制保存错误地址的一个内存存取控制器,从对应的一个内存的错误地址读取数据,纠正该错误并且将纠正后的数据重写到该错误地址。
16.如权利要求15所述的存储系统,其特征是,替代将检测出该错误的错误地址保存在该对应的一个内存存取控制器内,而是将该错误地址直接发送给该系统控制器,从而将错误纠正命令和该错误地址从该系统控制器同时输入到每个内存存取控制器。
17.如权利要求15或16所述的存储系统,其特征是,响应该错误通知,从该系统控制器控制没有保存错误地址的任意内存存取控制器,从对应于所述任意内存存取控制器的内存的预设地址读取数据,随后通过等待完成回写所需的时间来进行定时调节。
18.如权利要求15所述的存储系统,其特征是,响应该错误通知,从该系统控制器控制没有保存错误地址的任意内存存取控制器,从对应于所述任意内存存取控制器的内存的预设虚拟读地址读取数据,并且将该数据照原样回写至该预设虚拟读地址。
19.如权利要求18所述的存储系统,其特征是,响应该错误通知,将错误纠正命令和该虚拟读地址从该系统控制器输入到每个内存存取控制器。
20.如权利要求15、18和19中任一项所述的存储系统,其特征是,利用总线进行该错误通知,该总线被构造为从该系统控制器向一个内存存取控制器发送状态。
21.一种存储系统,包括n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;以及一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,以向所述n个内存存取控制器发布存储地址,其中m和n是大于或等于2的整数,其特征是在从一个内存读取的数据中检测到可纠正错误时,将错误产生信息和检测出该错误的错误地址保存在对应的一个内存存取控制器中;以及周期性地或者当空闲状态持续了预定时间时,不受MPU的干预,通过保存来自系统控制器的错误地址的一个内存存取控制器,响应该错误产生信息,从对应的一个内存的错误地址读取数据,纠正该错误并且将纠正后的数据重写到该错误地址。
22.一种用于存储系统的软错误纠正方法,该存储系统具有n个内存存取控制器,所述n个内存存取控制器被构造为以同步周期存取用于存储字节片式的数据的n个内存;一个系统控制器,该系统控制器被构造为接收来自m个MPU中的任一个MPU的内存存取,并向所述n个内存存取控制器发布存储地址;以及一个纵横交换器,该纵横交换器被构造为在内存存取控制器与MPU之间交换数据,其中m和n是大于或等于2的整数,其特征是,该方法包括在从一个内存读取的数据中检测到可纠正错误时,将错误通知和检测出该错误的错误地址从对应的一个内存存取控制器发送至该系统控制器;以及响应该错误通知,不受MPU的干预,将检测出该错误的错误地址从系统控制器发送至对应的一个内存存取控制器,以控制该对应的一个内存存取控制器从该错误地址读取数据、纠正该错误并且将纠正后的数据重写到该错误地址。
全文摘要
本发明提供一种软错误纠正方法、存储控制设备及存储系统。该软错误纠正方法用于存储系统,该存储系统具有多个内存存取控制器,用于以同步周期存储字节片式的数据的n个内存;以及一个系统控制器,其接收来自多个MPU中的任一个MPU的内存存取,并向内存存取控制器发布存储地址。在从一个内存读取的数据中检测到可纠正错误时,将检测出该错误的错误地址保存在一个内存存取控制器中,并从该内存存取控制器中向该系统控制器进行错误通知。响应该错误通知,不受MPU的干预,该内存存取控制器保存来自系统控制器的错误地址,并且读取、纠正该数据并将其重写至该错误地址。
文档编号G11C29/00GK1834928SQ20051009335
公开日2006年9月20日 申请日期2005年8月26日 优先权日2005年3月17日
发明者铃木贤司, 本田育史, 小口孝 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1