CN101221520A - 存储器控制装置、计算机系统及数据再现记录装置 - Google Patents
存储器控制装置、计算机系统及数据再现记录装置 Download PDFInfo
- Publication number
- CN101221520A CN101221520A CNA2007101966029A CN200710196602A CN101221520A CN 101221520 A CN101221520 A CN 101221520A CN A2007101966029 A CNA2007101966029 A CN A2007101966029A CN 200710196602 A CN200710196602 A CN 200710196602A CN 101221520 A CN101221520 A CN 101221520A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- data
- address
- correcting code
- control device
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明涉及存储器控制装置、计算机系统及数据再现记录装置。本发明所涉及的存储器控制装置,从存储器读出包括纠错码的数据,该存储器控制装置包括:纠错单元,根据上述纠错码,对上述数据进行错误检测及纠错,并将进行了错误检测及纠错的数据输出给外部;以及选择器,选择是将从上述存储器读出的上述数据输出给上述纠错单元、还是将从上述存储器读出的上述数据输出给外部。
Description
技术领域
本发明涉及存储器控制装置、计算机系统及数据再现记录装置,特别是涉及从存储器读出数据及纠错码的存储器控制装置。
背景技术
半导体存储器芯片中,由于电气噪声、存储单元的缺陷及外来宇宙射线等原因,在记录数据中会产生错误。记录数据的错误产生概率是极小的。但是,近些年来随着半导体的微形化技术的发展,单位面积的存储单元数量增大,结果,数据错误的发生概率就不能忽视了。
众所周知,对该错误进行检测、校正的方法是,采用纠错码(ErrorCorrecting Code:ECC)的纠错机构。ECC是采用按记录的数据长度的汉明码(hamming code)的纠错码。采用ECC的纠错机构,将ECC和数据一起保存在存储器中。在从存储器读出数据时,读出数据及ECC,通过数据及ECC对读出的数据进行错误检测及校正。例如,对于64位的数据,采用8位的ECC,可以校正1位的错误。
图1是利用现有的采用ECC的纠错机构的一般计算机系统的构成图。在图1中所示的计算机系统1000中,对64位的数据采用8位的ECC。计算机系统1000,包括:存储器块1001、芯片组1002、及CPU 1003。CPU 1003对芯片组1002输出数据读出及写入指令。芯片组1002根据CPU 1003发出的指令,向存储器块1001进行数据的读出及写入。芯片组1002,当读出数据时,从存储器块1001读出64位数据及8位ECC,对读出的数据进行错误检测及校正。而芯片组1002,在数据写入时,根据从CPU 1003写入64位的数据,生成8位ECC,并将数据及ECC写入存储器块1001中。
存储器块1001具有多个存储器芯片1004。各存储器芯片1004,包括8位数据用的位线1005、及1位ECC用的位线1006。在由芯片组1002进行数据的写入及读出时,采用数据用的位线1005,而在ECC的写入及读出时采用ECC用的位线1006。
但是,具有ECC用的位线的存储器芯片,与普通的存储器芯片相比存在成本高的问题。因此,基于ECC的纠错机构只在高价的服务器系统中使用。
与此相对,公开了有关采用普通的存储器芯片,进行纠错的存储器控制装置的技术(例如,参照专利文献1)。
图2是表示具有专利文献1记载的现有存储器控制装置的计算机系统的构成图。图2中所示的计算机系统1100,包括:微型机(マィコン)块1110、存储器控制装置1120、及由普通的存储器芯片构成的存储器1130。微型机块1110,对于存储器控制装置1120发出对存储器1130进行数据的读出及写入的指令。存储器控制装置1120,在数据写入时,对每64位的数据1131赋予纠错码1132,并写入存储器1130中。存储器控制装置1120,将纠错码1132,与数据1131同样配置在存储器映射(map)上。而存储器控制装置1120,在数据读出时,按时间序列读出数据1131及纠错码1132,采用读出的纠错码1132进行数据1131的纠错。
这样,专利文献1记载的存储器控制装置112,使用数据用的位线对数据1131和纠错码1132进行读出及写入。这样采用普通的存储器映象,可以实施纠错。
但是,专利文献1记载的存储器控制装置1120,由于对存储器1130的全区域的数据1131赋予纠错码1132,所以存储器1130需要存放数据1131及纠错码1132的存储器容量,存在存储器容量增加的问题。这样,在存储器容量有限的构成系统中是很难实现的。
(专利文献1)日本特开2005-182613号公报
发明内容
本发明鉴于上述问题,其目的在于提供一种存储器控制装置,既进行纠错,又抑制存储器容量的增加。
为了达到上述目的,本发明所涉及的存储器控制装置,从存储器读出包括纠错码的数据,包括:纠错单元,根据上述纠错码,对上述数据进行错误检测及纠错,并将进行了错误检测及纠错的数据输出给外部;以及选择器,选择是将从上述存储器读出的上述数据输出给上述纠错单元、还是将从上述存储器读出的上述数据输出给外部。
根据这一构成,对存储器中存放的赋予了纠错码的数据,纠错单元可以进行错误检测及纠错,将错误检测及纠错后的数据输出给外部。而对于存储器中存放的未赋予纠错码的数据,可以不进行错误检测及纠错,而将数据输出给外部。这样,可以对于需要高可靠性的数据,赋予纠错码,而对于不需要高可靠性的数据,不赋予纠错码,存放在存储器中。从而,由于可以削减对不需要高可靠性的数据的纠错码的数据区域,所以与对存储器的全部数据赋予多余纠错码的情况相比,可以削减存储器容量。即,本发明可以提供既进行纠错、又抑制存储器容量增加的存储器控制装置。
另外,上述存储器控制装置,也可以根据来自具有CPU的微型机块的指令,从存储器读出包括纠错码的数据;上述存储器控制装置还包括:指令置换单元,将上述纠错码置换成与上述CPU的动作无关的指令并输出给外部。
根据这一构成,通过指令置换单元,所读出的纠错码,置换成与CPU动作无关的指令,输出给微型机块。这样,在微型机块中即使不进行识别纠错码的处理等,对系统动作也没有妨碍。从而可以减少微型机块中的处理量。
另外,上述存储器控制装置,也可以还包括:地址变换单元,将从外部输入的地址,变换成包括存放上述纠错码的区域的上述存储器上的地址。
根据这一构成,外部装置即使不指定考虑了存放纠错码的区域的地址,也可以读出进行了错误检测及纠错的数据。从而,外部装置,由于可以在不考虑纠错码区域部分的情况下对数据进行存取,所以可以减少外部装置的处理量。
另外,也可以是,上述存储器控制装置,根据来自具有CPU的微型机块的指令,从存储器读出包括纠错码的数据;上述选择器,在从上述微型机块读出程序数据时成为第1逻辑的指令读出信号是上述第1逻辑的情况下,将从上述存储器读出的上述数据输出给上述纠错单元,而在上述指令读出信号不是上述第1逻辑的情况下,将从上述存储器读出的上述数据输出给上述微型机块;上述地址变换单元,当上述指令读出信号是上述第1逻辑时,将从上述微型机块输入的地址变换成包括存放上述纠错码的区域的上述存储器上的地址。
根据这一构成,只在由微型机块进行的指令读出时,由地址变换单元进行地址变换,及由纠错单元进行错误检测及纠错。从而,可以只对需要高可靠性的程序数据,赋予纠错码,存放在存储器中。
另外,也可以是,上述存储器控制装置还包括:纠错码生成单元,对从外部输入的数据,生成纠错码;地址判断单元,判断从外部输入的地址是否包含在规定的地址范围内;以及第2选择器,当通过上述地址判断单元判断为从外部输入的地址包含在上述规定的地址范围内时,将从外部输入的数据输出给上述纠错码生成单元,而当通过上述地址判断单元判断为从外部输入的地址不包含在上述规定的地址范围内时,将上述数据输出给上述存储器;上述选择器,当通过上述地址判断单元判断为从外部输入的地址包含在上述规定的地址范围内时,将从上述存储器读出的上述数据输出给上述纠错单元,而当通过上述地址判断单元判断为从外部输入的地址不包含在上述规定的地址范围内时,将从上述存储器读出的上述数据输出给外部;上述地址变换单元,当通过上述地址判断单元判断为从外部输入的地址包含在上述规定的地址范围内时,将从外部输入的地址变换成包括存放上述纠错码的区域的上述存储器上的地址。
根据这一构成,根据从外部输入的地址是否在存储器内规定的地址范围内,由纠错单元进行错误检测及校正。这样,除程序数据之外,还可以对程序的堆栈数据等对系统动作有影响的重要数据赋予纠错码,存放在存储器中。从而,通过纠错码对对系统动作有影响的重要数据进行保护,可以提高系统的坚固性。另外,由于可以将应附加纠错码的区域控制在存储器内规定的地址范围内,所以可以削减存储器容量。
另外,也可以是,上述存储器控制装置还包括:地址存储单元,将用于决定上述规定的地址范围的值作为固定值进行保持;上述地址判断单元,根据上述地址存储单元保持的用于决定上述规定的地址范围的值,判断从外部输入的地址是否包含在上述规定的地址范围内。
根据这一构成,可以按每个系统自由设定存储器内存放赋予了纠错码的数据的地址范围,可以应用于各种装置中。
另外,也可以是,上述存储器控制装置还包括:地址存储单元,保持从外部输入的用于决定上述规定的地址范围的值;上述地址判断单元,根据上述地址存储单元保持的用于决定上述规定的地址范围的值,判断从外部输入的地址是否包含在上述规定的地址范围内。
根据这一构成,可以按每个系统自由设定存储器内存放赋予了纠错码的数据的地址范围,可以应用于各种装置中。
另外,也可以是,上述存储器控制装置,至少通过来自直接存储器存取控制装置的指令,从存储器读出包括纠错码的数据,上述选择器,当是来自上述直接存储器存取控制装置的读出指令时,将从上述存储器读出的上述数据及上述纠错码,输出给上述直接存储器存取控制装置。
根据这一构成,当从外部调试软件转储存储器内容时,即使不通过纠错单元,也可以用调试软件进行错误检测及纠错。这样,调试软件可以对存储器保持的数据进行正常转储。
另外,也可以是,上述存储器控制装置,根据从具有CPU的微型机块及直接存储器存取控制装置发出的指令,从存储器读出包括纠错码的数据,上述选择器,在从上述微型机块读出程序数据时成为第1逻辑的指令读出信号是上述第1逻辑的情况下,或者在从上述直接存储器存取控制装置读出数据时成为第2逻辑的直接存储器存取读出信号是上述第2逻辑的情况下,将从上述存储器读出的上述数据输出给上述纠错单元,而在上述指令读出信号不是上述第1逻辑、且上述直接存储器存取读出信号不是上述第2逻辑的情况下,将从上述存储器读出的上述数据输出给上述微型机块或上述直接存储器存取控制装置。
根据这一构成,当从外部的调试软件转储存储器内容时,以DMA读出信号为控制信号,在存储器控制装置内进行错误检测及纠错。这样,就不必用调试软件进行错误检测及纠错,可以减少调试软件中的处理量。
另外,也可以是,上述存储器控制装置,根据来自具有CPU的微型机块的指令,从存储器读出包括纠错码的数据;上述微型机块包括:总线控制单元,将来自上述CPU的指令分配给上述存储器控制装置或其他装置;以及寄存器,保持用于决定上述总线控制单元的分配目的地的信息;上述存储器控制装置还包括:寄存器设定变更单元,当上述纠错单元检测出错误时,变更上述寄存器保持的信息。
根据这一构成,当在读出的数据中检测出错误时,可以不用本来在存储器上的程序数据,而从与存储器总线不同的系统总线上配置的程序ROM等中读出程序数据,执行处理。即,可以不使用发生了错误的存储器执行处理,可以提高系统的坚固性。
另外,也可以是,上述存储器控制装置,根据来自具有CPU的微型机块的指令,从存储器读出包括纠错码的数据;上述CPU具有保持表示程序配置场所的信息的寄存器;上述存储器控制装置还包括:寄存器设定变更单元,当上述纠错单元检测出错误时,变更上述寄存器保持的信息。
根据这一构成,当在读出的数据中检测出错误时,可以不用本来在存储器上的程序数据,而从与存储器总线不同的系统总线上配置的程序ROM等中读出程序数据,执行处理。即,可以不使用发生了错误的存储器执行处理,可以提高系统的坚固性。
另外,本发明所涉及的计算机系统,包括:存储器控制装置,从存储器读出包括纠错码的数据;数据区域插入单元,在对程序源进行了编译后的目标程序中插入规定大小的数据区域;地址解析单元,包括上述数据区域插入单元插入的上述数据区域而进行上述目标程序中的操作数的地址解析;纠错码计算单元,计算上述目标程序的纠错码;以及纠错码写入单元,将由上述纠错码计算单元算出的纠错码,写入上述数据区域;上述存储器控制装置,通过上述纠错码写入单元,将在上述数据区域写入了纠错码的目标程序写入上述存储器;上述存储器控制装置包括:纠错单元,根据上述纠错码,对上述数据进行错误检测及纠错,并将进行了错误检测及纠错的数据输出给外部;以及选择器,选择是将从上述存储器读出的上述数据输出给上述纠错单元,还是将从上述存储器读出的上述数据输出给外部。
根据这一构成,即使附加纠错码,程序内的操作数,也可考虑纠错码的区域而进行地址解析。从而,外部装置可以不进行地址变换,对存储器中所保持的数据进行存取。
另外,本发明所涉及的计算机系统,包括:存储器;存储器控制装置,对上述存储器进行包括纠错码的数据的写入及读出;以及微型机块,对上述存储器控制装置发出向上述存储器进行的数据写入及读出指令;上述存储器控制装置包括:纠错单元,根据上述纠错码,对上述数据进行错误检测及纠错,并将进行了错误检测及纠错的数据输出给外部;以及选择器,选择是将从上述存储器读出的上述数据输出给上述纠错单元,还是将从上述存储器读出的上述数据输出给外部。
根据这一构成,对于存储器中存放的赋予了纠错码的数据,纠错单元可以进行错误检测及纠错,将错误检测及纠错后的数据输出给外部。而对于存储器中存放的未赋予纠错码的数据,不进行错误检测及纠错,将数据输出给外部。这样,可以对于需要高可靠性的数据,赋予纠错码,而对于不需要高可靠性的数据,不赋予纠错码,存放在存储器中。从而,由于可以削减对不需要高可靠性的数据的纠错码的数据区域,所以与对存储器的全部数据赋予多余纠错码的情况相比,可以削减存储器容量。即,本发明可以提供既进行纠错、又抑制存储器容量增加的计算机系统。
另外,本发明所涉及的数据再现记录装置,包括:存储器控制装置,从存储器读出包括纠错码的数据;数据区域插入单元,在对程序源进行了编译后的目标程序中插入规定大小的数据区域;地址解析单元,包括上述数据区域插入单元插入的上述数据区域而进行上述目标程序中的操作数的地址解析;纠错码计算单元,计算上述目标程序的纠错码;以及纠错码写入单元,将由上述纠错码计算单元算出的纠错码,写入上述数据区域;上述存储器控制装置,通过上述纠错码写入单元,将在上述数据区域写入了纠错码的目标程序写入上述存储器;上述存储器控制装置包括:纠错单元,根据上述纠错码,对上述数据进行错误检测及纠错,并将进行了错误检测及纠错的数据输出给外部;以及选择器,选择是将从上述存储器读出的上述数据输出给上述纠错单元,还是将从上述存储器读出的上述数据输出给外部。
根据这一构成,对于存储器中存放的赋予了纠错码的数据,纠错装置可以进行错误检测及纠错,将错误检测及纠错后的数据输出给外部。而对于存储器中存放的未赋予纠错码的数据,可以不进行错误检测及纠错,将数据输出给外部。这样,可以对于需要高可靠性的数据,赋予纠错码,而对于不需要高可靠性的数据,不赋予纠错码,存放在存储器中。从而,由于可以削减对不需要高可靠性的数据的纠错码的数据区域,所以与对存储器的全部数据赋予多余纠错码的情况相比,可以削减存储器容量。即,本发明可以提供既进行纠错、又抑制存储器容量增加的数据再现记录装置。
另外,本发明所涉及的程序数据的生成方法,该程序数据通过存储器控制装置写入上述存储器中,其特征在于:上述存储器控制装置从存储器读出包括纠错码的数据,并包括:纠错单元,根据上述纠错码,对上述数据进行错误检测及纠错,并将进行了错误检测及纠错的数据输出给外部;以及选择器,选择是将从上述存储器读出的上述数据输出给上述纠错单元,还是将从上述存储器读出的上述数据输出给外部;上述程序数据的生成方法包括:数据区域插入步骤,在对程序源进行了编译后的目标程序中插入规定大小的数据区域;地址解析步骤,包括上述数据区域插入步骤中插入的上述数据区域而进行上述目标程序中的操作数的地址解析;纠错码计算步骤,计算上述目标程序的纠错码;以及纠错码写入步骤,将上述纠错码计算步骤中算出的纠错码,写入上述数据区域。
这样,即使附加纠错码,程序内的操作数,也可考虑纠错码的区域而进行地址解析。从而,外部装置可以不进行地址变换,对存储器中所保持的数据进行存取。
从以上看出,本发明可以提供一种存储器控制装置,既进行纠错、又抑制存储器容量的增加。
附图说明
图1是表示现有的计算机系统的构成图。
图2是表示现有的计算机系统的构成图。
图3是表示本发明的实施方式1所涉及的计算机系统的构成图。
图4是表示本发明的实施方式1所涉及的计算机系统中的程序映象(program image)生成方法流程的流程图。
图5是用于说明本发明的实施方式1所涉及的计算机系统中的程序映象生成方法的图。
图6是表示本发明的实施方式2所涉及的计算机系统的构成图。
图7是表示本发明的实施方式2所涉及的计算机系统的地址变换部的构成图。
图8是模式化表示存储器的存储器地址和存取请求地址间关系的图。
图9是模式化表示存储器的存储器地址和存取请求地址间关系的图。
图10是表示本发明的实施方式3所涉及的计算机系统的构成图。
图11是表示本发明的实施方式4所涉及的计算机系统的构成图。
图12是表示本发明的实施方式5所涉及的计算机系统的构成图。
图13是表示本发明的实施方式6所涉及的计算机系统的构成图。
图14是表示本发明的实施方式7所涉及的计算机系统的构成图。
具体实施方式
下面参照附图,对本发明的实施例中的存储器控制装置进行说明。
(实施方式1)
本发明的实施方式1所涉及的存储器控制装置,对从存储器读出的数据,选择地进行错误检测及纠错。这样,可以从存储器读出赋予纠错码的数据、及未赋予纠错码的数据。
首先,说明本发明的实施方式1所涉及的存储器控制装置的构成。
图3是表示具有本发明的实施方式1所涉及的存储器控制装置的计算机系统的构成图。
图3中所示的计算机系统100,例如是在DVD记录器等数据再现记录装置中所使用的计算机系统。计算机系统100,包括微型机块110、存储器控制装置120、及存储器130。
存储器130,例如是可以以64位为单位进行数据读出及写入的RAM等。存储器130,保持多个程序数据131、对应于各程序数据131的纠错码132、及程序以外的数据133。此处,程序以外的数据133例如是视频数据及音频数据等不需要纠错的数据。
微型机块110,对存储器控制装置120发出向存储器130进行数据读出及写入的指令。微型机块110,包括总线控制单元(Bus ControlUnit:Bcu)111、微型机核心112、CPU核心115、CI总线116、及CD总线117。
总线控制单元111,对CI总线116及CD总线117进行控制。
微型机核心112.在程序数据的读出指令时(指令读出时),生成有效的指令读出信号124。微型机核心112,具有指令高速缓冲存储器113、及数据高速缓冲存储器114。指令高速缓冲存储器113保持对存储器控制装置120等的指令。数据高速缓冲存储器114保持根据指令进行写入或读出的数据。CPU核心115进行指令发行等的微型机块110的控制。
CI总线116是指令高速缓冲存储器113和总线控制单元111间的总线。CD总线117是数据高速缓冲存储器114和总线控制单元111间的总线。
存储器控制装置120根据微型机块110发出的指令,向存储器130进行程序数据131、纠错码132及程序以外的数据133的写入及读出。存储器控制装置120包括选择器121、纠错部122、及指令置换部123。
选择器121,根据指令读出信号124,选择将从存储器130读出的数据(程序数据131、纠错码132及程序以外的数据133)是输出给纠错部122、还是输出给微型机块110。具体地说,选择器121,当指令读出信号124有效时,将从存储器130读出的数据输出给纠错部122。选择器121,当指令读出信号124是无效时,将从存储器130读出的数据不通过纠错部122及指令置换部123,输出给微型机块110。
纠错部122,根据从存储器130读出的程序数据131及纠错码132,对从存储器130读出的程序数据131进行错误检测及纠错。纠错部122,将进行了错误检测及纠错的程序数据131、及纠错码132输出给指令置换部123。
指令置换部123,将纠错部122输出的纠错码132置换成与CPU核心115动作无关的指令,输出给微型机块110。例如,指令置换部123将纠错部122输出的纠错码132转换成nop指令,输出给微型机块110。另外,指令置换部123将由纠错部122进行了纠错的数据输出给微型机块110。纠错部122,也可以将进行了错误检测及纠错的程序数据131不通过指令置换部123,而输出给微型机块110。
下面,说明计算机系统100的动作。
首先,说明将程序数据131写入存储器130的动作。
微型机块110,生成对写入存储器130中的程序数据131赋予纠错码132的程序映象134。下面,对由微型机块110生成程序映象134的处理进行详细说明。例如,微型机块110通过软件处理,生成程序映象134。
图4是表示配置在存储器130中的程序映象134生成方法流程的流程图。图5是用于说明程序映象134生成方法的图。
首先,微型机块110,按每个对程序源进行编译后的规定大小的目标程序(object)140,插入规定大小的数据区域141(S101)。例如,如图5中所示,在jmp指令142、与表示jmp指令142转移目的地的标签143之间插入数据区域141。此处,规定大小的数据区域的大小,与对规定大小的目标程序的纠错码大小相同。例如,规定大小的目标程序140是512位的目标程序,规定大小的数据区域141是64位的数据区域。接着,微型机块110,包括步骤S101插入的数据区域141,对目标程序140中的操作数(operand)进行地址解析(S102)。具体地说,在图5中所示的例子中,jmp指令142的操作数,考虑从jmp指令142的位置到包括规定大小的数据区域141的区域部分的标签143的距离进行地址解析。接着,微型机块110计算每个规定大小的目标程序140的纠错码132(S103)。接着,微型机块110将在步骤S103中算出的纠错码132写入数据区域141(S104)。
通过以上的处理,生成在每个规定大小的程序数据131中配置有对规定大小的程序数据131的纠错码132的程序映象134。
另外,在步骤S102,由于进行考虑到数据区域141的区域部分的地址解析,所以对于数据区域141即使写入了纠错码132,规定大小的数据区域141和纠错码132的大小也是相同的,因此jmp指令142的操作数变为考虑了纠错码132的区域部分进行地址解析的状态。
接着,微型机块110将生成的程序映象134及写入指令输出给存储器控制装置120。存储器控制装置120将程序映象134写入存储器130。通过以上步骤,赋予了纠错码132的程序数据131写入存储器130中。
下面,说明将程序以外的数据133写入存储器130的动作。
微型机块110,将程序以外的数据133及写入指令输出给存储器控制装置120。存储器控制装置120将程序以外的数据133写入存储器130。通过以上步骤,未赋予纠错码132的程序以外的数据133写入存储器130中。
下面,说明从存储器130读出程序数据131的动作。
微型机块110,对存储器控制装置120发出程序数据131的读出指令。微型机块110,使指令读出信号124有效。
存储器控制装置120,根据从微型机块110输出的指令,读出与程序数据131对应的纠错码132。选择器121,由于指令读出信号124是有效的,所以将读出的程序数据131及纠错码132输出给纠错部122。
纠错部122,根据程序数据131及纠错码132,进行程序数据131的错误检测及纠错。指令置换部123,将纠错部122输出的纠错码132置换成与CPU核心115的动作无关的指令,输出给微型机块110。另外,指令置换部123将通过纠错部122进行了纠错的程序数据131输出给微型机块110。
通过以上的步骤,从存储器130读出程序数据131。另外,当发生了错误时,读出由纠错部122进行了纠错的程序数据131。
下面,说明从存储器130读出程序以外的数据133的动作。
微型机块110,对存储器控制装置120发出程序以外的数据133的读出指令。微型机块110,使指令读出信号124无效。
存储器控制装置120,根据从微型机块110输出的指令,读出程序以外的数据133。选择器121,由于指令读出信号124是无效的,所以使读出的程序以外的数据133不通过纠错部122及指令置换部123,输出给微型机块110。通过以上步骤,可从存储器130读出程序以外的数据133。
以上本发明的实施方式1所涉及的存储器控制装置120,对于存放在存储器130中的赋予了纠错码132的程序数据131,纠错部122进行错误检测及纠错,将错误检测及纠错后的程序数据131输出给微型机块110。而对于存放在存储器130中的未赋予纠错码132的程序以外的数据133,不进行错误检测及纠错,将数据输出给微型机块110。这样,可以对于需要高可靠性的程序数据131赋予纠错码132,而对于不需要高可靠性的程序以外的数据133不赋予纠错码132,存放在存储器130中。从而,可以削减对不需要高可靠性的程序以外的数据133的纠错码132的数据区域,所以与对存储器的全部数据都赋予纠错码的情况相比可以削减存储器容量。即,本发明可以提供既进行纠错、又抑制存储器容量增加的存储器控制装置120。另外,本发明可以提供既进行纠错、又抑制存储器容量增加的计算机系统100。本发明还可以实现具有计算机系统100的抑制存储器容量增加的DVD记录器等数据再现记录装置。
另外,写入存储器130中的程序映象134考虑纠错码132的区域部分进行地址解析。从而,微型机块110不必考虑纠错码132的区域部分的地址。即,微型机块110不进行地址变换就可以对存储器130中保持的数据进行存取。
另外,通过指令置换部123,读出的纠错码132可置换成与CPU核心115的动作无关的指令,输出给微型机块110。这样,在微型机块110中即使不进行识别纠错码132的处理等,对系统动作也不会有妨碍。
另外,选择器121,在指令读出时通过有效的指令读出信号124进行控制。从而,可以只对需要高可靠性的程序数据131赋予纠错码132,存放在存储器中。
在图5中,以jmp指令142的地址解析为例进行了说明,但是在参照存储器上地址的其他指令(例如,分支指令等)中,在指令和参照目标地址之间插入数据区域141时,只要进行同样的地址解析即可。
在上述说明中,微型机块110通过图4中所示处理,生成存储器130中配置的程序映象134,但是也可以通过外部的计算机系统生成程序映象134,并由微型机块110执行的专用写入程序或调试软件,将程序映象134写入存储器130中。
另外,在上述说明中,存储器130以64位为单位进行数据读出及写入,但是存储器130的构成并不限定于此。存储器130也可以以字节为单位或以字为单位(以多字节为单位)进行数据的读出及写入。
另外,对于存储器130中保持的规定大小的程序数据131的纠错码132的大小,可以设定任意的大小。
(实施方式2)
本发明的实施方式2所涉及的存储器控制装置,将来自微型机块的地址变换成考虑了保持纠错码区域的存储器上的地址。这样,微型机块可以与对普通存储器进行存取一样对赋予了纠错码的数据进行存取。
首先,说明本发明的实施方式2所涉及的存储器控制装置的构成。
图6是表示具有本发明的实施方式2所涉及的存储器控制装置的计算机系统的构成图。图6中所示的计算机系统200,与图3中所示的实施方式1所涉及的计算机系统100相比,存储器控制装置220的构成不同,与图3相同的部分加有相同的标号,其详细说明予以省略。
存储器控制装置220,具有选择器121、纠错部222、及地址变换部223。
选择器121,根据指令读出信号124,选择将从存储器130读出的数据(程序数据131、纠错码132、及程序以外的数据133)是输出给纠错部222、还是输出给微型机块110。具体地说,选择器121,当指令读出信号124有效时,将从存储器130读出的数据输出给纠错部222。选择器121,当指令读出信号124是无效时,将从存储器130读出的数据不通过纠错部222,而输出给微型机块110。
纠错部222,根据从存储器130读出的程序数据131及纠错码132,对从存储器130读出的程序数据131进行错误检测及纠错。纠错部222,将进行了错误检测及纠错的程序数据输出给微型机块110。纠错部222,将纠错码132不输出给微型机块110。
地址变换部223,根据规定的计算式,将从微型机块110输入的存取请求地址224,变换成包含存放纠错码132的区域的存储器130上的存储器地址225。地址变换部223由指令读出信号124进行控制。具体地说,地址变换部223在指令读出信号124有效时,根据规定的计算式,将存取请求地址224变换成存储器130上的存储器地址225。地址变换部223在指令读出信号124无效时对存取请求地址224不变换,输出给存储器130。
图7是表示地址变换部223的详细构成图。
地址变换部223,具有存储器地址计算部226,存储器地址计算部226通过规定的计算式,从存取请求地址224向存储器130上的存储器地址225进行地址变换。
图8是模式化表示存储器130的存储器地址225和存取请求地址224间关系的图。
在图8中,存储器130为64位数据宽度,对每64位的数据赋予8位纠错码132。从而,存储器地址225对存取请求地址224的每0×40位错开8位。这样,存储器地址计算部226通过下式(1)计算存储器地址225。
ADDR=addr+(addr/0×40)×8……(1)
此处,ADDR表示存储器地址225,addr表示存取请求地址224。而(addr/0×40)是addr除以0×40的商。另外,0×40等的地址是以位为单位的地址。例如,根据上式(1),当存取请求地址224为0×40时,存储器地址225为0×48。
根据存储器130的数据宽度以及对每几位的数据赋予纠错码132,确定存储器地址计算部226使用的计算式。图9是模式化表示数据宽度为32位,每32位的数据均赋予8位的纠错码132时的存储器130的存储器地址225与存取请求地址224间关系的图。例如,如图9中所示,存储器130的数据宽度为32位,每32位的数据赋予8位的纠错码132时,存储器地址225在存取请求地址224的每0×20位错开8位。从而,由存储器地址计算部226执行的计算式为下式(2)。
ADDR=addr+(addr/0×20)×8……(2)
即,即使存储器130的数据总线宽度变化,同样也可以计算出存储器地址225。
在上述说明中,作为存取请求地址224及存储器地址225采用了以位为单位的地址,但是也可以是以字节为单位或以多字节为单位(以字为单位)等的地址。
下面,说明从存储器130读出程序数据131的动作。假设存取请求地址224为0×40。
首先,微型机块110,对存储器控制装置220输出程序数据131的读出指令。微型机块110输出0×40,作为程序数据131的地址一一即存取请求地址224。微型机块110使指令读出信号124为有效。
地址变换部223,由于指令读出信号124是有效的,所以将存取请求地址224变换成存储器130上的存储器地址225。存储器地址计算部226通过上式(1)变换存取请求地址224,计算0×48作为存储器地址225。存储器控制装置220读出计算出的存储器地址225(0×48)的程序数据131。另外,存储器控制装置220读出对应于读出的程序数据131的纠错码132(例如,存储器地址225读出0×88的数据)。
选择器121,由于指令读出信号124是有效的,所以将读出的程序数据131及纠错码132输出给纠错部222。
纠错部222,根据程序数据131及纠错码132,对程序数据131进行错误检测及纠错。纠错部222,将进行了错误检测及纠错的程序数据输出给微型机块110。
通过以上的步骤,从存储器130读出程序数据131。另外,当发生了错误时,读出由纠错部222进行了纠错的程序数据131。
下面,说明从存储器130读出程序以外的数据133的动作。
微型机块110,对存储器控制装置220发出程序以外的数据133的读出指令。微型机块110,使指令读出信号124无效。
存储器地址计算部226,由于指令读出信号124是无效的,所以对存取请求地址224不进行变换。存储器控制装置220以存取请求地址224为存储器地址225读出程序以外的数据133。
选择器121,由于指令读出信号124是无效的,所以将读出的程序以外的数据133输出给微型机块110。通过以上的步骤,从存储器130读出程序以外的数据133。
下面,说明将程序数据131写入存储器130的动作。假设存取请求地址224为0×40。
首先,微型机块110对存储器控制装置220输出程序数据131的写入指令。微型机块110输出0×40,作为写入程序数据131的地址——即存取请求地址224。微型机块110使指令读出信号124有效。
地址变换部223,由于指令读出信号124是有效的,所以将存取请求地址224变换成存储器130上的存储器地址225。存储器地址计算部226通过上式(1)变换存取请求地址224,计算0×48作为存储器地址225。存储器控制装置220读出在算出的存储器地址225(0×48)的数据写入前的程序数据131。存储器控制装置220,根据读出的程序数据(例如64位)、及接受了写入指令的程序数据(例如8位),计算出存储器130中写入的程序数据(例如64位)及纠错码132(例如8位)。存储器控制装置220将算出的程序数据131及纠错码132写入存储器130。通过以上步骤,赋予了纠错码132的程序数据131写入存储器130。关于写入的纠错码132的生成,将在下述的实施方式3中说明。
下面,说明将程序以外的数据133写入存储器130的动作。
微型机块110,对存储器控制装置220发出程序以外的数据133的写入指令。微型机块110,使指令读出信号124无效。
存储器地址计算部226,由于指令读出信号124是无效的,所以不变换存取请求地址224。存储器控制装置220以存取请求地址224为存储器地址225,将程序以外的数据133写入存储器130。通过以上步骤,未赋予纠错码132的程序以外的数据133写入存储器130中。
以上,本发明的实施方式2所涉及的计算机系统200,从微型机块110对未进行包括纠错码132区域的地址解析的程序映象234进行存取时,通过地址变换部223进行纠错码132区域部分的地址校正。这样,微型机块110可以不考虑纠错码132的区域部分,对程序数据131进行存取。从而可以减少微型机块110中的处理量。
另外,本发明的实施方式2所涉及的计算机系统200,只在由微型机块110进行指令读出时,由地址变换部223进行地址变换及由纠错部222进行错误检测及纠错。从而,可以只对程序数据131赋予纠错码132并存放在存储器130中。
另外,本发明的实施方式2所涉及的计算机系统200,只对需要高可靠性的程序数据131赋予纠错码132,写入存储器130。而对于视频数据及音频数据等不需纠错码的程序以外的数据133不赋予纠错码,写入存储器130中。这样,可以削减对程序以外的数据133的纠错码的数据区域,与对存储器的全部数据赋予多余校正码的情况相比,可以削减存储器容量。
(实施方式3)
本发明的实施方式3所涉及的存储器控制装置,根据来自微型机块的地址,判断进行写入或读出的数据,是附加了纠错码的数据、还是未附加纠错码的数据。这样,微型机块通过只指定地址,就可以指定附加或不附纠错码,在存储器中保持数据。
首先,说明本发明的实施方式3所涉及的存储器控制装置的构成。
图10是表示具有本发明的实施方式3所涉及的存储器控制装置的计算机系统的构成图。图10中所示的计算机系统300,与图6中所示的实施方式2所涉及的计算机系统200相比,存储器控制装置320的构成不同,与图5相同的部分加有相同的标号,其详细说明予以省略。
存储器控制装置320,包括:选择器121、纠错部222、地址变换部223、纠错码生成部321,第2选择器322,地址存储部323,及区域判断部324。
纠错码生成部321,对从微型机块110输入的写入数据,生成纠错码。
地址存储部323,将存储器130上的边界地址331作为固定值进行保持。边界地址331,是用于决定存放附加了纠错码132的数据的区域的地址范围的值。例如,如图10中所示,在存储器130中,将比边界地址331的值小的地址作为存放附加了纠错码132的数据的有ECC区域,而将比边界地址331的值大的地址作为存放未附加纠错码132的数据的无ECC区域。
区域判断部324,根据地址存储部323保持的边界地址331,判断从微型机块110输入的存取请求地址224,是否包含在地址存储部323保持的存放附加了纠错码132的数据的地址范围内,具体地说,区域判断部324,对来自微型机块110的存取请求地址224与地址存储部323保持的边界地址331进行比较,判断存取请求地址224是否包含在地址存储部323保持的地址范围内。区域判断部324将判断结果作为区域判断信号325输出。地址变换部223、选择器121及第2选择器322,通过区域判断部324输出的区域判断信号325进行控制。
第2选择器322,根据区域判断部324输出的区域判断信号325,将从微型机块110输入的写入数据输出给纠错码生成部321或存储器130。具体地说,第2选择器322,当通过区域判断部324判断为存取请求地址224包含在存放附加了纠错码132的数据的地址范围内时,将从微型机块110输入的写入数据输出给纠错码生成部321。第2选择器322,当通过区域判断部324判断为存取请求地址224不包含在存放附加了纠错码132的数据的地址范围内时,将从微型机块110输入的写入数据,不通过纠错码生成部321,而输出给存储器130。
地址变换部223,当由区域判断部324判断为存取请求地址224包含在存放附加了纠错码132的数据的地址范围内时,将来自微型机块110的存取请求地址224变换为包含存放了纠错码132的存储器130上的存储器地址225,并输出给存储器130。地址变换部223,当由区域判断部324判断为存取请求地址224不包含在存放附加了纠错码132的数据的地址范围内时,不变换来自微型机块110的存取请求地址224,而将其作为存储器地址225,输出给存储器130。
选择器121,当由区域判断部324判断为存取请求地址224包含在存放附加了纠错码132的数据的地址范围内时,将来自存储器130的读出数据输出给纠错部222。选择器121,当由区域判断部324判断为存取请求地址224不包含在存放附加了纠错码132的数据的地址范围内时,将来自存储器130的读出数据,不通过纠错部222,而输出给微型机块110。
下面,说明计算机系统300的动作。
首先,说明从存储器130读出程序数据131的动作(读出有ECC区域的数据的动作)。
首先,微型机块110,对存储器控制装置320输出程序数据131的读出指令。微型机块110输出比边界地址331小的地址,作为读出的程序数据131的地址——即存取请求地址224。
区域判断部324,对存取请求地址224和地址存储部323保持的边界地址331进行比较。此处,存取请求地址224由于比边界地址331小,所以区域判断部324输出表示存取请求地址224比边界地址331小的逻辑(例如、有效)的区域判断信号325。
存储器地址计算部226,由于区域判断信号325是有效的,所以将存取请求地址224变换成存储器130上的存储器地址225。存储器控制装置320读出变换后的存储器地址225的程序数据131,及对应的纠错码132。地址变换的处理,与实施方式2相同,其详细说明予以省略。
选择器121,由于区域判断信号325是有效的,所以将读出的程序数据131及纠错码132输出给纠错部222。纠错部222,根据读出的程序数据131及纠错码132,对读出的程序数据131进行错误检测及纠错。纠错部222,将进行了错误检测及纠错的程序数据131输出给微型机块110。
通过以上的步骤,从存储器130读出程序数据131。当发生错误时,可读出由纠错部122进行了纠错的程序数据131。
下面,对从存储器130读出程序以外的数据133的动作(读出无ECC区域的数据的动作)进行说明。
微型机块110,对存储器控制装置320输出程序以外的数据133的读出指令。另外,微型机块110输出比边界地址331大的地址作为程序以外的数据133的地址——即存取请求地址224。
区域判断部324,对存取请求地址224和地址存储部323保持的边界地址331进行比较。此处,由于存取请求地址224比边界地址331大,所以区域判断部324输出表示存取请求地址224比边界地址331大的逻辑(例如,无效)的区域判断信号325。
存储器地址计算部226,由于区域判断信号325是无效的,所以不变换存取请求地址224。存储器控制装置320以存取请求地址224为存储器地址,读出程序以外的数据133。
选择器121,由于区域判断信号325是无效的,所以将读出的程序以外的数据133输出给微型机块110。通过以上的步骤,可从存储器130读出程序以外的数据133。
下面说明将程序数据131写入存储器130的动作(将数据写入有ECC区域的动作)。
首先,微型机块110对存储器控制装置320输出程序数据131的写入指令。微型机块110,输出比边界地址331小的地址,作为写入程序数据131的地址——即存取请求地址224。
区域判断部324,对存取请求地址224和地址存储部323保持的边界地址331进行比较。此处,由于存取请求地址224比边界地址331小,所以区域判断部324输出表示存取请求地址224比边界地址331小的逻辑(例如,有效)的区域判断信号325。
存储器地址计算部226,由于区域判断信号325是有效的,所以将存取请求地址224变换为存储器130上的存储器地址225。
第2选择器322,由于区域判断信号325是有效的,所以将来自微型机块110的写入程序数据131输出给纠错码生成部321。纠错码生成部321从写入的程序数据131生成纠错码132。
存储器控制装置320,在变换后的存储器地址225中,写入来自微型机块110的程序数据131及纠错码生成部321生成的纠错码132。通过以上步骤,在存储器130中写入赋予了纠错码132的程序数据131。
下面,对将程序以外的数据133写入存储器130的动作(在无ECC区域写入数据的动作)进行说明。
微型机块110,对存储器控制装置320输出程序以外的数据133的写入指令。另外,微型机块110输出比边界地址331大的地址作为写入数据133的地址——即存取请求地址224。
区域判断部324,对存取请求地址224和地址存储部323保持的边界地址331进行比较。此处,由于存取请求地址224比边界地址331大,所以区域判断部324输出表示存取请求地址224比边界地址331大的逻辑(例如,无效)的区域判断信号325。
存储器地址计算部226,由于区域判断信号325是无效的,所以不变换存取请求地址224。第2选择器322,由于区域判断信号325是无效的,所以将来自微型机块110的写入数据133输出给存储器130。
存储器控制装置320,以来自微型机块110的存取请求地址224为存储器地址225,写入来自微型机块110的程序以外的数据133。通过以上的步骤,在存储器130中写入未赋予纠错码132的程序以外的数据133。
以上,本发明的实施方式3所涉及的计算机系统300,当存取请求地址224处于有ECC区域的地址范围内时进行数据读出时,通过地址变换部223进行地址变换,由纠错部222进行错误检测及校正。另外,计算机系统300,当存取请求地址224处于有ECC区域的地址范围内时进行数据写入时,通过地址变换部223进行地址变换,通过纠错码生成部321生成纠错码132。这样,不仅对上述的实施方式1及2所示的程序映像,而且可以对程序的堆栈数据等对系统动作有影响的重要数据也附加纠错码132,存放在存储器130中。从而,通过纠错码132保护对系统动作有影响的重要数据,可以提高系统的坚固性。另外,由于可以使应附加纠错码132的区域控制在存储器130内的规定地址范围内,所以可以削减存储器的容量。
另外,本发明的实施方式3所涉及的计算机系统300,具有保持用于决定有ECC区域的地址范围的值的地址存储部323。这样,可以按每个系统自由设定在存储器130内存放赋予了纠错码132的数据的地址范围,可以应用在各种装置中。
在上述说明中,决定了一个边界地址331,并假定在存取请求地址224比边界地址331小时,在有ECC区域的地址范围内。但是也可以假定在存取请求地址224比边界地址331大时,在有ECC区域的地址范围内。另外,也可以是2个边界地址331,使由2个边界地址331夹着的地址区域为有ECC区域的地址范围。还可以是3个以上边界地址331,指定更细的有ECC区域的地址范围。
在上述说明中,地址存储部323将边界地址331作为固定值进行保持,但是也可以在用户侧任意设定地址存储部323中保持的边界地址331。即,地址存储部323也可以保持从外部输入的边界地址331。
(实施方式4)
本发明的实施方式4所涉及的存储器控制装置,在从调试软件读出时,将纠错码及程序数据输出给调试软件。这样,调试软件可以根据纠错码及程序数据进行错误检测及纠错,并进行调试。
图11是表示具有本发明的实施方式4所涉及的存储器控制装置的计算机系统的构成图。图11中所示的计算机系统400,与图6中所示的实施方式2的计算机系统200的不同点是微型机块410的构成、及具有PC(个人计算机)440。与图6相同的部分加有相同标号,其详细说明予以省略。
微型机块410,包括总线控制单元111、微型机核心112及DMA控制装置(Direct Memory Access Controller:DMAC(直接存储器存取控制器))411。
DMA控制装置411,与微型机核心112一样,通过总线控制单元111读出存储器130保持的数据。DMA控制装置411将读出的程序数据131及纠错码132输出给PC440。
在计算机系统400中,存储器控制装置220根据微型机核心112及DMA控制装置411输出的指令,从存储器130读出包含纠错码132的数据。
PC440具有调试软件441。调试软件441经过调试单元(图中未示出),与微型机块410相连接。调试软件441通过DMA控制装置411从存储器130进行读出,对存储器130保持的数据进行调试。另外,调试软件441根据读出的程序数据131及纠错码132,对读出的程序数据131进行错误检测及纠错。
选择器121,当从DMA控制装置411读出时,将从存储器130读出的程序数据131及纠错码132,不通过纠错部222,而输出给微型机块410的DMA控制装置411。
根据以上的构成,调试软件441可以不通过DMA控制装置411及存储器控制装置320,读出存储器130保持的程序数据131及纠错码132。另外,DMA控制装置411根据读出的程序数据131及纠错码132,对读出的程序数据131进行错误检测及纠错。
以上,本发明的实施方式4所涉及的计算机系统400,当通过PC440上的调试软件441读出存储器130保持的数据时,由调试软件441进行程序数据131的错误检测及纠错。这样,即使在存储器控制装置220中不增加硬件,也可以由调试软件441对存储器130的程序数据131进行无错误地转储(ダンプ),进行调试。
(实施方式5)
本发明的实施方式5所涉及的存储器控制装置,在从调试软件读出时,进行错误检测及纠错,只将程序数据输出给调试软件。这样,也可以不用调试软件进行错误检测及纠错。
图12是表示具有本发明的实施方式5所涉及的存储器控制装置的计算机系统的构成图。图12中所示的计算机系统500,与图11中所示的实施方式4的计算机系统400的不同点是PC440具有的调试软件541及微型机块410具有的DMA控制装置511的构成,以及存储器控制装置220的选择器121及地址变换部223的控制方法。与图11相同的部分加有相同标号,其详细说明予以省略。
DMA控制装置511,与微型机核心112一样通过总线控制单元111读出存储器130保持的数据。另外,DMA控制装置511在从DMA控制装置511读出存储器130中保持的数据时,生成有效的DMA读出信号510,而在从DMA控制装置511读出存储器130中保持的数据之外,生成无效的DMA读出信号510。
在计算机系统500中,存储器控制装置220根据微型机核心112及DMA控制装置511输出的指令,从存储器130读出包含纠错码132的数据。
调试软件541,经过调试单元(图中未示出),与微型机块410相连接。调试软件541通过DMA控制装置511,从存储器130进行读出,并对存储器130保持的数据进行调试。
选择器121,当来自DMA控制装置511的DMA读出信号510及指令读出信号124中的至少一方为有效时,将从存储器130读出的程序数据131及纠错码132输出给纠错部222。选择器121,当DMA读出信号510及指令读出信号124都是无效时,将从存储器130读出的程序数据不通过纠错部222,而输出给微型机块410。
地址变换部223,当DMA读出信号510及指令读出信号124中的至少一方为有效时,将来自微型机块410的存取请求地址224变换成存储器130上的存储器地址225,输出给存储器130。地址变换部223,当DMA读出信号510及指令读出信号124都是无效时,对来自微型机块110的存取请求地址224不进行变换,而作为存储器地址225输出给存储器130。
根据以上的构成,通过PC440上的调试软件541读出存储器130保持的数据时,DMA控制装置511使DMA读出信号510有效。由此,地址变换部223将存取请求地址224变换成存储器130上的存储器地址225。存储器控制装置220,读出变换后的存储器地址225的程序数据131及纠错码132。选择器121将读出的程序数据131及纠错码132输出给纠错部222。纠错部222,根据读出的程序数据131及纠错码132,进行程序数据131的错误检测及纠错。纠错部222,将进行了错误检测及纠错的程序数据131输出给微型机块410。DMA控制装置511通过总线控制单元111取得来自纠错部222的进行了错误检测及纠错的程序数据131,输出给调试软件541。通过以上步骤,进行了错误检测及纠错的程序数据131输出给调试软件541。
在上述的实施方式2所涉及的计算机系统200中,选择了是只由指令读出信号124的控制将从存储器130读出的数据输出给纠错部222、还是直接输出给微型机块110。从而,当从调试软件541读出存储器130保持的数据时,可读出程序数据131及纠错码132。对于想对程序进行调试的用户来说,纠错码132是不需要的数据。另一方面,实施方式5所涉及的计算机系统500,选择器121及地址变换部223通过指令读出信号124及DMA读出信号510进行控制。从而,当从调试软件541读出存储器130保持的数据时,可读出经过错误检测及纠错后的程序数据131。
以上,本发明的实施方式5所涉及的计算机系统500,即使从调试软件541读出存储器130的内容,也可以与普通的存储器(无ECC的存储器)一样只读出程序数据。另外,由于存储器控制装置220进行错误检测及纠错,所以没必要在调试软件541上进行错误检测及纠错的处理。
(实施方式6)
本发明的实施方式6所涉及的存储器控制装置,当在存储器保持的程序数据中检测出错误时,通过控制总线控制单元,变更参照程序数据的存储器。这样,微型机块,在发生错误时,可以从其他存储器读出程序数据。
图13是表示具有本发明的实施方式6所涉及的存储器控制装置的计算机系统的构成图。图13中所示的计算机系统600,与图6中所示的实施方式2的计算机系统200的不同点是存储器控制装置620及微型机块610的构成,以及具有系统总线614及程序ROM615。与图6相同的部分加有相同标号,其详细说明予以省略。
微型机块610,包括总线控制单元611、微型机核心112、及系统总线控制器(System Bus Controller:SBC)612。
系统总线控制器612对系统总线614进行控制。程序ROM 615配置在系统总线614上。
总线控制单元611,将通过CI总线116及CD总线117发出的来自微型机核心112的存取请求,分配给存储器控制装置620、或系统总线控制器612。具体地说,总线控制单元611根据来自CI总线116及CD总线117的存取请求的地址值,将存取请求分配给存储器控制装置620、或系统总线控制器612。总线控制单元611具有总线控制寄存器613。总线控制寄存器613保持用于决定总线控制单元611的存取请求的分配目的地的信息。
存储器控制装置620,包括选择器121、纠错部622、地址变换部223、及寄存器设定变更部624。
纠错部622,根据从存储器130读出的程序数据131及纠错码132,对从存储器130读出的程序数据131进行错误检测及纠错。纠错部622当在数据中检测出错误时使错误检测信号625为有效。
寄存器设定变更部624,当错误检测信号625变为有效时(纠错部622检测出错误时),变更总线控制寄存器613保持的信息。具体地说,寄存器设定变更部624,将总线控制寄存器613中保持的存储器130的地址,变更为系统总线控制器612的地址。这样,总线控制单元611,使本来对存储器130进行的来自CI总线116或CD总线117的存取请求,变为对系统总线控制器612进行。
如上所述,本发明的实施方式6所涉及的存储器控制装置600,当纠错部622检测出存储器130上的程序数据131错误时,可变更总线控制寄存器613的设定。这样,对存储器130的存取转到对系统总线控制器612。这样,在系统总线614上配置程序ROM615,不使用发生了错误的存储器,而使用程序ROM615的数据就可以继续系统的动作。从而可以提高计算机系统600的坚固性。
(实施方式7)
本发明的实施方式7所涉及的存储器控制装置,当在存储器保持的程序数据中检测出错误时,通过控制CPU核心,变更参照程序数据的存储器。这样,微型机块,在发生错误时,可以从其他存储器读出程序数据。
图14是表示具有本发明的实施方式7所涉及的存储器控制装置的计算机系统的构成图。图14中所示的计算机系统700,与图13中所示的实施方式6的计算机系统600的不同点是微型机块710的CPU核心715的构成、及存储器控制装置620的寄存器设定变更部724的构成。与图13相同的部分加有相同标号,其详细说明予以省略。
微型机块710,包括总线控制单元111、及微型机核心712。微型机核心712包括指令高速缓冲存储器113、数据高速缓冲存储器114、及CPU核心715。CPU核心715具有陷阱基址寄存器(TBR)716。
陷阱基址寄存器716是保持表示程序配置场所的信息的寄存器,具体地说,陷阱基址寄存器716保持表示中断处理程序的地址的中断向量的配置场所的信息。此处所谓中断处理程序(handler),是用于在CPU核心715的处理中发生中断时,中断当前执行中的处理,进行中断处理而进行分支的特殊程序。通常时,为了在存储器130上配置中断向量,在陷阱基址寄存器716中,设定表示系统起动时存储器130上地址的信息。
寄存器设定变更部724,当错误检测信号625变成有效时(纠错部622检测出错误时),变更陷阱基址寄存器716保持的信息。具体地说,寄存器设定变更部724当错误检测信号625为有效时,将陷阱基址寄存器716的设定变更为系统总线上的程序ROM等的地址。
如上所述,本发明的实施方式7所涉及的计算机系统700,当纠错部622检测出错误,且发生错误中断时,变更陷阱基址寄存器716的值。这样,微型机块710,可以在不使用发生错误的存储器130的情况下执行中断处理。从而可以提高计算机系统700的坚固性。
(产业应用性)
本发明可以适用于存储器控制装置,特别是可以适用于对从存储器读出的数据进行纠错的DVD记录器等数据再现记录装置中。
Claims (15)
1.一种存储器控制装置,从存储器读出包括纠错码的数据,其特征在于,包括:
纠错单元,根据上述纠错码,对上述数据进行错误检测及纠错,并将进行了错误检测及纠错的数据输出给外部;以及
选择器,选择是将从上述存储器读出的上述数据输出给上述纠错单元、还是将从上述存储器读出的上述数据输出给外部。
2.如权利要求1所述的存储器控制装置,其特征在于:
上述存储器控制装置,根据来自具有CPU的微型机块的指令,从存储器读出包括纠错码的数据;
上述存储器控制装置还包括:
指令置换单元,将上述纠错码置换成与上述CPU的动作无关的指令并输出给外部。
3.如权利要求1所述的存储器控制装置,其特征在于:
上述存储器控制装置还包括:
地址变换单元,将从外部输入的地址,变换成包括存放上述纠错码的区域的上述存储器上的地址。
4.如权利要求3所述的存储器控制装置,其特征在于:
上述存储器控制装置,根据来自具有CPU的微型机块的指令,从存储器读出包括纠错码的数据;
上述选择器,在从上述微型机块读出程序数据时成为第1逻辑的指令读出信号是上述第1逻辑的情况下,将从上述存储器读出的上述数据输出给上述纠错单元,而在上述指令读出信号不是上述第1逻辑的情况下,将从上述存储器读出的上述数据输出给上述微型机块;
上述地址变换单元,当上述指令读出信号是上述第1逻辑时,将从上述微型机块输入的地址变换成包括存放上述纠错码的区域的上述存储器上的地址。
5.如权利要求3所述的存储器控制装置,其特征在于:
上述存储器控制装置还包括:
纠错码生成单元,对从外部输入的数据,生成纠错码;
地址判断单元,判断从外部输入的地址是否包含在规定的地址范围内;以及
第2选择器,当通过上述地址判断单元判断为从外部输入的地址包含在上述规定的地址范围内时,将从外部输入的数据输出给上述纠错码生成单元,而当通过上述地址判断单元判断为从外部输入的地址不包含在上述规定的地址范围内时,将上述数据输出给上述存储器;
上述选择器,当通过上述地址判断单元判断为从外部输入的地址包含在上述规定的地址范围内时,将从上述存储器读出的上述数据输出给上述纠错单元,而当通过上述地址判断单元判断为从外部输入的地址不包含在上述规定的地址范围内时,将从上述存储器读出的上述数据输出给外部;
上述地址变换单元,当通过上述地址判断单元判断为从外部输入的地址包含在上述规定的地址范围内时,将从外部输入的地址变换成包括存放上述纠错码的区域的上述存储器上的地址。
6.如权利要求5所述的存储器控制装置,其特征在于:
上述存储器控制装置还包括:
地址存储单元,将用于决定上述规定的地址范围的值作为固定值进行保持;
上述地址判断单元,根据上述地址存储单元保持的用于决定上述规定的地址范围的值,判断从外部输入的地址是否包含在上述规定的地址范围内。
7.如权利要求5所述的存储器控制装置,其特征在于:
上述存储器控制装置还包括:
地址存储单元,保持从外部输入的用于决定上述规定的地址范围的值;
上述地址判断单元,根据上述地址存储单元保持的用于决定上述规定的地址范围的值,判断从外部输入的地址是否包含在上述规定的地址范围内。
8.如权利要求1所述的存储器控制装置,其特征在于:
上述存储器控制装置,至少通过来自直接存储器存取控制装置的指令,从存储器读出包括纠错码的数据,
上述选择器,当是来自上述直接存储器存取控制装置的读出指令时,将从上述存储器读出的上述数据及上述纠错码,输出给上述直接存储器存取控制装置。
9.如权利要求1所述的存储器控制装置,其特征在于:
上述存储器控制装置,根据来自具有CPU的微型机块及直接存储器存取控制装置的指令,从存储器读出包括纠错码的数据,
上述选择器,在从上述微型机块读出程序数据时成为第1逻辑的指令读出信号是上述第1逻辑的情况下,或者在从上述直接存储器存取控制装置读出数据时成为第2逻辑的直接存储器存取读出信号是上述第2逻辑的情况下,将从上述存储器读出的上述数据输出给上述纠错单元,而在上述指令读出信号不是上述第1逻辑、且上述直接存储器存取读出信号不是上述第2逻辑的情况下,将从上述存储器读出的上述数据输出给上述微型机块或上述直接存储器存取控制装置。
10.如权利要求1所述的存储器控制装置,其特征在于:
上述存储器控制装置,根据来自具有CPU的微型机块的指令,从存储器读出包括纠错码的数据;
上述微型机块包括:
总线控制单元,将来自上述CPU的指令分配给上述存储器控制装置或其他装置;以及
寄存器,保持用于决定上述总线控制单元的分配目的地的信息;
上述存储器控制装置还包括:
寄存器设定变更单元,当上述纠错单元检测出错误时,变更上述寄存器保持的信息。
11.如权利要求1所述的存储器控制装置,其特征在于:
上述存储器控制装置,根据来自具有CPU的微型机块的指令,从存储器读出包括纠错码的数据;
上述CPU具有保持表示程序配置场所的信息的寄存器;
上述存储器控制装置还包括:
寄存器设定变更单元,当上述纠错单元检测出错误时,变更上述寄存器保持的信息。
12.一种计算机系统,其特征在于,包括:
存储器控制装置,从存储器读出包括纠错码的数据;
数据区域插入单元,在对程序源进行了编译后的目标程序中插入规定大小的数据区域;
地址解析单元,包括上述数据区域插入单元插入的上述数据区域而进行上述目标程序中的操作数的地址解析;
纠错码计算单元,计算上述目标程序的纠错码;以及
纠错码写入单元,将由上述纠错码计算单元算出的纠错码,写入上述数据区域;
上述存储器控制装置,通过上述纠错码写入单元,将在上述数据区域中写入了纠错码的目标程序写入上述存储器;
上述存储器控制装置包括:
纠错单元,根据上述纠错码,对上述数据进行错误检测及纠错,并将进行了错误检测及纠错的数据输出给外部;以及
选择器,选择是将从上述存储器读出的上述数据输出给上述纠错单元,还是将从上述存储器读出的上述数据输出给外部。
13.一种计算机系统,其特征在于,包括:
存储器;
存储器控制装置,对上述存储器进行包括纠错码的数据的写入及读出;以及
微型机块,对上述存储器控制装置发出向上述存储器进行数据写入及读出的指令;
上述存储器控制装置包括:
纠错单元,根据上述纠错码,对上述数据进行错误检测及纠错,并将进行了错误检测及纠错的数据输出给外部;以及
选择器,选择是将从上述存储器读出的上述数据输出给上述纠错单元,还是将从上述存储器读出的上述数据输出给外部。
14.一种数据再现记录装置,其特征在于,包括:
存储器控制装置,从存储器读出包括纠错码的数据;
数据区域插入单元,在对程序源进行了编译后的目标程序中插入规定大小的数据区域;
地址解析单元,包括上述数据区域插入单元插入的上述数据区域而进行上述目标程序中的操作数的地址解析;
纠错码计算单元,计算上述目标程序的纠错码;以及
纠错码写入单元,将由上述纠错码计算单元算出的纠错码,写入上述数据区域;
上述存储器控制装置,通过上述纠错码写入单元,将在上述数据区域中写入了纠错码的目标程序写入上述存储器;
上述存储器控制装置包括:
纠错单元,根据上述纠错码,对上述数据进行错误检测及纠错,并将进行了错误检测及纠错的数据输出给外部;以及
选择器,选择是将从上述存储器读出的上述数据输出给上述纠错单元,还是将从上述存储器读出的上述数据输出给外部。
15.一种程序数据的生成方法,该程序数据通过存储器控制装置写入上述存储器中,其特征在于:
上述存储器控制装置从存储器读出包括纠错码的数据,并包括:
纠错单元,根据上述纠错码,对上述数据进行错误检测及纠错,并将进行了错误检测及纠错的数据输出给外部;以及
选择器,选择是将从上述存储器读出的上述数据输出给上述纠错单元,还是将从上述存储器读出的上述数据输出给外部;
上述程序数据的生成方法包括:
数据区域插入步骤,在对程序源进行了编译后的目标程序中插入规定大小的数据区域;
地址解析步骤,包括上述数据区域插入步骤中插入的上述数据区域而进行上述目标程序中的操作数的地址解析;
纠错码计算步骤,计算上述目标程序的纠错码;以及
纠错码写入步骤,将上述纠错码计算步骤中算出的纠错码,写入上述数据区域。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006322471A JP2008139908A (ja) | 2006-11-29 | 2006-11-29 | メモリ制御装置、コンピュータシステム及びデータ再生記録装置 |
JP322471/2006 | 2006-11-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101221520A true CN101221520A (zh) | 2008-07-16 |
Family
ID=39465263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101966029A Pending CN101221520A (zh) | 2006-11-29 | 2007-11-29 | 存储器控制装置、计算机系统及数据再现记录装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20080126905A1 (zh) |
JP (1) | JP2008139908A (zh) |
CN (1) | CN101221520A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908007A (zh) * | 2009-06-03 | 2010-12-08 | 株式会社东芝 | 存储系统和计算机系统 |
CN105607974A (zh) * | 2015-12-18 | 2016-05-25 | 西安电子科技大学 | 高可靠性多核处理系统 |
CN108780422A (zh) * | 2016-03-31 | 2018-11-09 | 高通股份有限公司 | 在基于中央处理单元cpu的系统中使用压缩指示符ci提示目录来提供存储器带宽压缩 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008072590A1 (ja) * | 2006-12-15 | 2008-06-19 | Panasonic Corporation | ライトワンス記録装置 |
JP4940033B2 (ja) * | 2007-06-29 | 2012-05-30 | パナソニック株式会社 | 計算機システム、計算機システムの制御方法および携帯電話機 |
JP5540969B2 (ja) | 2009-09-11 | 2014-07-02 | ソニー株式会社 | 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム |
US10621040B2 (en) * | 2012-11-30 | 2020-04-14 | Hewlett Packard Enterprise Development Lp | Memory controllers to form symbols based on bursts |
US9135100B2 (en) * | 2013-03-14 | 2015-09-15 | Micron Technology, Inc. | Cooperative memory error detection and repair |
JP6385077B2 (ja) | 2014-03-05 | 2018-09-05 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2016042218A (ja) * | 2014-08-13 | 2016-03-31 | 富士通株式会社 | エラー検出装置及びエラー検出方法 |
JP6517549B2 (ja) * | 2015-03-13 | 2019-05-22 | 東芝メモリ株式会社 | メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム |
JP6460940B2 (ja) * | 2015-08-06 | 2019-01-30 | 東芝メモリ株式会社 | 記憶装置およびデータ退避方法 |
WO2024069880A1 (ja) * | 2022-09-29 | 2024-04-04 | ファナック株式会社 | 携帯型操作装置、機械システムおよび携帯型操作装置のメモリ制御プログラム |
CN118503005A (zh) * | 2023-02-16 | 2024-08-16 | 华为技术有限公司 | 一种内存纠错方法、系统及设备 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4866717A (en) * | 1986-07-29 | 1989-09-12 | Matsushita Electric Industrial Co., Ltd. | Code error detecting and correcting apparatus |
JPH09146849A (ja) * | 1995-11-21 | 1997-06-06 | Nec Corp | 情報処理システム及びそのメモリ再構成方法 |
JPH10198608A (ja) * | 1997-01-08 | 1998-07-31 | Mitsubishi Electric Corp | メモリカード |
US6353910B1 (en) * | 1999-04-09 | 2002-03-05 | International Business Machines Corporation | Method and apparatus for implementing error correction coding (ECC) in a dynamic random access memory utilizing vertical ECC storage |
JP4834362B2 (ja) * | 2005-09-16 | 2011-12-14 | パナソニック株式会社 | メモリ制御装置。 |
US7079458B2 (en) * | 2000-06-08 | 2006-07-18 | Matsushita Electric Industrial Co., Ltd. | Buffer memory address translation device |
JP4153802B2 (ja) * | 2003-02-07 | 2008-09-24 | 株式会社ルネサステクノロジ | 記憶装置 |
JP3984209B2 (ja) * | 2003-07-31 | 2007-10-03 | 株式会社東芝 | 半導体記憶装置 |
TWI248617B (en) * | 2004-08-13 | 2006-02-01 | Prolific Technology Inc | Data storage device |
WO2006042262A2 (en) * | 2004-10-11 | 2006-04-20 | Texas Instruments Incorporated | Detecting a security violation using error correction code |
JP2006209900A (ja) * | 2005-01-31 | 2006-08-10 | Matsushita Electric Ind Co Ltd | メモリ回路 |
US7424648B2 (en) * | 2005-03-10 | 2008-09-09 | Matsushita Electric Industrial Co., Ltd. | Nonvolatile memory system, nonvolatile memory device, data read method, and data read program |
US7426672B2 (en) * | 2005-04-28 | 2008-09-16 | International Business Machines Corporation | Method for implementing processor bus speculative data completion |
JP4762752B2 (ja) * | 2006-02-16 | 2011-08-31 | 富士通セミコンダクター株式会社 | 半導体メモリ |
JP2007241612A (ja) * | 2006-03-08 | 2007-09-20 | Matsushita Electric Ind Co Ltd | マルチマスタシステム |
US7962700B2 (en) * | 2006-09-06 | 2011-06-14 | International Business Machines Corporation | Systems and methods for reducing latency for accessing compressed memory using stratified compressed memory architectures and organization |
-
2006
- 2006-11-29 JP JP2006322471A patent/JP2008139908A/ja active Pending
-
2007
- 2007-11-28 US US11/946,148 patent/US20080126905A1/en not_active Abandoned
- 2007-11-29 CN CNA2007101966029A patent/CN101221520A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908007A (zh) * | 2009-06-03 | 2010-12-08 | 株式会社东芝 | 存储系统和计算机系统 |
CN101908007B (zh) * | 2009-06-03 | 2017-09-19 | 东芝存储器株式会社 | 存储系统和计算机系统 |
CN105607974A (zh) * | 2015-12-18 | 2016-05-25 | 西安电子科技大学 | 高可靠性多核处理系统 |
CN108780422A (zh) * | 2016-03-31 | 2018-11-09 | 高通股份有限公司 | 在基于中央处理单元cpu的系统中使用压缩指示符ci提示目录来提供存储器带宽压缩 |
Also Published As
Publication number | Publication date |
---|---|
JP2008139908A (ja) | 2008-06-19 |
US20080126905A1 (en) | 2008-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101221520A (zh) | 存储器控制装置、计算机系统及数据再现记录装置 | |
US7581153B2 (en) | Memory with embedded error correction codes | |
JP3982639B2 (ja) | マルチレベルセルを有するメモリからデータを読み取る方法 | |
US6330688B1 (en) | On chip error correction for devices in a solid state drive | |
EP2095234B1 (en) | Memory system with ecc-unit and further processing arrangement | |
KR101500635B1 (ko) | 비-ecc 컴포넌트에서의 ecc 구현 | |
US7823044B2 (en) | Method for streamlining error connection code computation while reading or programming a NAND flash memory | |
US20060069851A1 (en) | Integrated circuit memory devices that support detection of write errors occuring during power failures and methods of operating same | |
JP5202130B2 (ja) | キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法 | |
US5606662A (en) | Auto DRAM parity enable/disable mechanism | |
US8140940B2 (en) | Method and apparatus for controlling memory | |
US8195946B2 (en) | Protection of data of a memory associated with a microprocessor | |
US9535785B2 (en) | ECC method for flash memory | |
US20080016415A1 (en) | Evaluation system and method | |
US20120151300A1 (en) | Error Correcting | |
US6108753A (en) | Cache error retry technique | |
JP2010500699A (ja) | メモリデバイス内のセクタごとに許容できるビットエラー | |
US7401269B2 (en) | Systems and methods for scripting data errors to facilitate verification of error detection or correction code functionality | |
CN101253485A (zh) | 存储装置及其运行方法 | |
US7246257B2 (en) | Computer system and memory control method thereof | |
TWI527049B (zh) | 操作記憶體之方法及記憶體裝置 | |
US20070250283A1 (en) | Maintenance and Calibration Operations for Memories | |
JP2010181990A (ja) | データプロセッサ | |
JP2007058450A (ja) | 半導体集積回路 | |
CN104810061B (zh) | 存储器及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080716 |