CN101681309A - 纠错方法以及运算器 - Google Patents
纠错方法以及运算器 Download PDFInfo
- Publication number
- CN101681309A CN101681309A CN200780053304A CN200780053304A CN101681309A CN 101681309 A CN101681309 A CN 101681309A CN 200780053304 A CN200780053304 A CN 200780053304A CN 200780053304 A CN200780053304 A CN 200780053304A CN 101681309 A CN101681309 A CN 101681309A
- Authority
- CN
- China
- Prior art keywords
- data
- error
- error correction
- register file
- parity
- 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
- 238000000034 method Methods 0.000 title claims abstract description 104
- 238000012937 correction Methods 0.000 claims abstract description 150
- 238000012545 processing Methods 0.000 claims abstract description 57
- 238000001514 detection method Methods 0.000 claims abstract description 27
- 238000012546 transfer Methods 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 39
- 208000011580 syndromic disease Diseases 0.000 claims description 7
- 230000010365 information processing Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 16
- 241001269238 Data Species 0.000 description 8
- 230000003750 conditioning effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000005755 formation reaction Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/109—Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本实施例所涉及的纠错方法的目的是进行寄存器文件的纠错,而不会使计算器的处理速度下降。本实施例所涉及的纠错方法是一种运算器中所设置的寄存器保持数据以及校验数据,对该数据中产生的错误进行纠正的纠错方法,其特征是具有:该运算器使用该校验数据来检测该数据的错误的检测步骤;以及该运算器使用不同于该校验数据的纠正数据来在对该数据中检测出的错误进行纠正的纠正步骤。
Description
技术领域
本发明涉及运算器以及它们的纠错方法。
背景技术
伴随于CPU(Central Processing Unit,中央处理单元)上所搭载的晶体管数量的增加,产生在CPU上所搭载的寄存器文件中错误频繁地发生这种问题。
以往关于错误检测一般是对每数位设置奇数或者偶数奇偶校验来进行错误检测这种方法。但是,在基于奇偶校验的方法中,即便能够检测出错误也无法进行错误纠正,因此,当在寄存器文件等的访问中检测出错误的情况下,需要再执行存储器访问,对性能带来大的影响。
因此,就要求不仅检测寄存器文件的数据中的错误而且进行纠正,并希望使用ECC(Error-Correcting Code,错误校正码)来进行纠正。
但是,仅仅将寄存器文件的数据上以往所附加的奇偶校验数据替换成ECC数据,就有CPU的处理速度大幅降低这样的问题。
另外关于纠错方法有以下的专利文献。
专利文献1:日本特开平5-20215号公报
发明内容
本申请发明所涉及的纠错方法的目的就是进行寄存器文件的纠错,而不会使信息处理装置中的CPU的处理速度下降。
本实施例所涉及的纠错方法是一种运算器中所设置的寄存器保持数据以及校验数据,对该数据中产生的错误进行纠正的纠错方法,其特征在于,具有:该运算器使用该校验数据来检测该数据的错误的检测步骤;以及该运算器使用不同于该校验数据的纠正数据,对在该数据中检测出的错误进行纠正的纠正步骤。
另外,本实施例所涉及的纠错方法的特征是,该纠正步骤在该运算器检测出错误的情况下,中断运算处理并使用该纠正数据对该数据进行纠错。
另外,本实施例所涉及的纠错方法的特征是,该校验数据和该纠正数据与该数据对应而被保存在该寄存器中。
另外,本实施例所涉及的纠错方法的特征是,当在该检测步骤中检测出错误时,自该寄存器读出该纠正步骤中的该纠正数据,并且自该寄存器再次读出被检测出错误的数据。
另外,本实施例所涉及的纠错方法的特征是,该检测步骤通过运算该数据和该校验数据的异或来检测错误。
另外,本实施例所涉及的纠错方法的特征是,该校验数据是奇偶校验数据。
另外,本实施例所涉及的纠错方法的特征是,该纠正步骤使用该纠正数据来生成用于求解位的错误位置的校验子(syndrome),并使用该校验子来纠正该错误。
另外,本实施例所涉及的纠错方法的特征是,该纠正数据是ECC数据。
另外,本实施例所涉及的纠错方法的特征是,该寄存器具有保持要处理的全体数据的主寄存器文件和保持从该主寄存器文件转送的一部分的数据的当前寄存器文件。
另外,本实施例所涉及的纠错方法的特征是,对于该纠正步骤中的纠正数据,使用转送该校验数据的信号线来转送纠正数据。
另外,本实施例所涉及的纠错方法的特征是,在该检测步骤中的错误检测中,按照来自对运算处理进行控制的运算控制部的指示。
另外,本实施例所涉及的纠错方法的特征是,还具有:重新生成与经过纠错的数据相对应的纠正数据的生成步骤。
另外,本实施例所涉及的纠错方法的特征是,使用错误标记来判别在该纠正步骤中有无检测出错误。
另外,本实施例所涉及的纠错方法的特征是,该检测步骤中的错误检测是在该数据转送时产生的转送数据的错误检测。
另外,本实施例所涉及的纠错方法的特征是,该检测步骤中的错误检测是该数据的运算处理时产生的运算数据的错误检测。
另外,本实施例所涉及的纠错方法的特征是,还具有:将经过纠正的数据写回到该寄存器的步骤。
进而,本实施例所涉及的运算器是一种对数据中产生的错误进行纠正的运算器,其特征在于,具有:保持数据、对应于该数据的校验数据以及对应于该数据的纠正数据的寄存器;使用该校验数据来检测该数据的错误的检测单元;以及在检测出该错误的情况下使用该纠正数据进行纠正的纠正单元。
根据本申请发明中的纠错方法,通过在未检测出错误时跳过伴随于ECC运算的处理,就能够纠正寄存器文件的位错误,而不会使信息处理装置的CPU的处理速度降低。
附图说明
图1是本发明一实施例中的寄存器文件内的数据格式。
图2是本发明一实施例中的寄存器文件200。
图3是本发明一实施例中的对寄存器文件401上的错误进行纠正的纠正流程图。
图4是本发明一实施例中的运算电路400的框图。
图5是本发明一实施例中的对当前寄存器文件602上的错误进行纠正的纠正流程图。
图6是本发明一实施例中的运算电路600的框图。
图7是本发明一实施例中的CPU700的框图。
图8是本发明一实施例中的CPU700的时序图。
图9是本发明一实施例中的CPU700的时序图。
图10是本发明一实施例中的CPU700的时序图。
图11是以往的CPU的时序图。
附图标记说明
100...数据格式
101...数据
102...奇偶校验数据
103...ECC数据
200...寄存器文件
400...运算电路
401...寄存器文件
402...运算器
403...奇偶校验器
404...ECC生成电路
405...ECC纠正电路
600...运算电路
601...主寄存器文件
602...当前寄存器文件
603...奇偶校验器
604...奇偶校验器
605...运算器
606...ECC纠正电路
607...ECC生成电路
700...CPU
701...存储器
702...高速缓存控制单元
703...高速缓存
704...指令控制单元
705...运算单元
706...运算控制部
707...运算部
708...寄存器部
709...纠错部
具体实施方式
本发明一实施例中的纠错方法的目的是不会降低信息处理装置的CPU的处理速度地进行纠错,并提高信息处理装置的CPU中的可靠性。具体而言,本实施例中的纠错方法在搭载于信息处理装置的CPU内部得以实现。
当然本实施例中的纠错方法是除CPU以外,还可在具有寄存器文件并通过程序而进行各种各样的数值计算、信息处理、图像处理或者设备控制的DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)或者控制器LSI等的运算电路中实现的方法。
而且,在安装了实现本实施例中的纠错方法的电路的CPU中,在寄存器内将奇偶校验数据和ECC数据与数据一起进行保持。奇偶校验数据是用于检测数据的位错误的数据。另外,ECC数据是用于纠正所检测出的错误的数据。在本实施例中,奇偶校验数据、ECC数据共同为8位数据。虽然CPU等可以利用ECC数据来进行检错,但本实施例中的纠错方法,是利用奇偶校验数据来进行检错,利用ECC数据来纠正所检测出的错误。
首先,CPU进行从寄存器读出数据和对应于该数据的奇偶校验数据的处理,并判别有无检测出所读出的数据的错误。CPU进行分别从寄存器读出的数据和奇偶校验数据的EOR(Exclusive-OR:异或)运算,以判别有无奇偶错误。另外,在利用了奇偶校验数据的检错中检测有无1位错误。
CPU通过进行奇偶校验以保证从寄存器读出的数据的正确性,据此,CPU进行数据转送中的错误检测。在CPU检测出1位错误时,CPU暂时中断正在执行的运算处理。而且,CPU从寄存器再次读出已被检测出错误的数据并且读出与该数据相对应的ECC数据。CPU基于ECC数据对检测出的1位错误进行纠正,并将错误已被纠正的数据写入寄存器进行修正。
由此,就能够抑制CPU的处理速度降低的同时纠正1位错误,能够实现处理速度既快、且可靠性又高的CPU。
(实施例1)
图1是本实施例中的寄存器文件内的数据格式100。本实施例中的数据格式100是作为寄存器文件的1个项(entry)所设定的数据单位。
数据格式100由数据101、奇偶校验数据102、ECC数据103所构成。在本实施例中,数据101为64位(8字节),奇偶校验数据102为8位、ECC数据103为8位。
奇偶校验数据102是为了检测出在数据101中是否有1位错误而使用的数据。ECC数据103是为了纠正存在于数据101中的1位错误而使用的数据。
另外,本实施例中的CPU使用物理上相同的信号线读出奇偶校验数据102和ECC数据103。据此CPU就能够进行ECC运算并能够进行纠错而不用增加新的信号线。这里,进行运算处理的运算器还可以是除CPU以外的DSP、GPU或者控制器LSI等具有的可以进行运算处理的单元。
CPU对寄存器文件的数据以数据101和奇偶校验数据102的组、或者数据101和ECC数据103的组为单位来进行读出处理、或者写入处理。当然,数据格式100的大小还可以是64位(数据101)+8位(奇偶校验数据102)+8位(ECC数据)以外的大小,数据大小并不限定于该大小。
图2是本实施例中的寄存器文件200。在本实施例中,寄存器文件200是2Write-2Read(2写-2读)、8字节、160项的寄存器文件。2Write-2Read是指CPU执行的处理方式,即以2项为单位进行的读出处理、或者写入处理。寄存器文件200由部分数据201~206所构成。寄存器文件200由160个项所构成,在图2中作为代表而图示了部分数据201~206。部分数据201~206采用数据格式100的构成,由“数据21”、“奇偶校验数据22”、“ECC数据23”所构成。1个项以将“数据21”、“奇偶校验数据22”、“ECC数据23”组合起来的块为单位而构成。地址207表示包含部分数据201~206的160个部分数据的寄存器文件中的地址。CPU参照地址207进行所希望的部分数据的读出处理、写入处理。
CPU对寄存器文件200中所保持的部分数据201~206以2项为单位进行写入处理、或者读出处理。而且,搭载本实施例中的纠错机制的CPU按照以下所示的纠正流程来进行错误的检测以及错误的纠正处理。
图3是本实施例中的对寄存器文件401中的错误进行纠正的纠正流程图。而且图4是表示本实施例中的纠错机制的运算电路400的框图。运算电路400相当于后述的图7中所记载的运算部707、寄存器部708、纠错部709。另外图3所示的纠正流程图是运算电路400实现的处理的流程图,即与CPU700中的纠错有关的流程图。
图4中所记载的运算电路400由寄存器文件401、运算器402、奇偶校验器403、ECC生成电路404、ECC纠正电路405所构成。
寄存器文件401具有与图2所示的寄存器文件200同等的功能、构成,由多个部分数据所构成。另外部分数据由数据、奇偶校验数据、ECC数据所构成。
运算器402是对从寄存器文件401读出的数据进行运算、即进行四则运算、逻辑运算等处理的装置。具体而言,运算器402例如是ALU(Arithmetic Logic Unit,算术逻辑单元),进行整数运算操作(加法、减法、乘法)、逻辑运算(AND、NOT、OR、XOR)、将字按所指定的位数相应地向右(或者左)进行移动的移位操作的动作等。
奇偶校验器403进行从寄存器文件401读出的数据和对应于该数据的奇偶校验数据的奇偶校验。奇偶校验是对数据和奇偶校验数据进行EOR(异或)运算来进行错误校验。另外,在奇偶校验器403中检测出的错误是1位错误。
ECC生成电路404使用在运算器402中进行运算处理而得到的运算结果的数据来生成ECC数据。ECC生成电路404所生成的ECC数据对应于运算结果的数据。
ECC纠正电路405对奇偶校验器403所检测出的从寄存器文件401读出的数据的错误进行纠正。当在奇偶校验器403中检测出错误的情况下,运算器402暂时中止运算处理,纠错电路405从寄存器文件401读出已检测出错误的地址的数据和对应于该数据的ECC数据。然后,纠错电路405基于ECC数据来纠正所检测出的错误。
结果选择电路406基于来自ECC运算控制部706的控制,将由ECC生成电路404生成的ECC数据和运算结果的数据建立对应关系,并将该ECC数据、运算结果数据以及相对应的奇偶校验数据写回到寄存器文件401。
接着对图3中的纠正流程图进行说明。
首先,运算电路400的奇偶校验器403从寄存器文件401读出数据和对应于该数据的奇偶校验数据(S301)。然后,奇偶校验器403进行所读出的数据和奇偶校验数据的奇偶校验,并判别所读出的数据中有无错误(S302)。此时,运算器402进行从寄存器文件401所读出的数据的运算处理。
奇偶校验器403在判别为从寄存器读出的数据中没有奇偶错误的情况下(S302否),运算器402继续进行运算处理(S303)。
在奇偶校验器403判别为从寄存器读出的数据中有奇偶错误的情况下(S303是),运算器402暂时中止运算处理(S304)。ECC纠正电路405,在由奇偶校验器403检测出数据的读出错误以后,从寄存器文件读出已检测出错误的数据和对应于该数据的ECC数据。然后,ECC纠正电路405对从寄存器文件401读出的数据的错误进行纠正(S305)。然后,ECC纠正电路405完成纠错(S306)。而且,在ECC纠正电路405将数据错误进行了纠正以后,结果选择电路406将已纠正的数据、对应于该数据的ECC数据以及奇偶校验数据写回到寄存器文件401。运算器402从检测出错误的指令开始再执行。另外,在奇偶校验器403未检测出从寄存器文件401读出的数据的错误的情况下,运算器402进行运算处理。而且,ECC生成电路404生成与运算结果的数据相对应的ECC数据和奇偶校验数据。而且,结果选择电路406将运算结果的数据、ECC生成电路404所生成的ECC数据和奇偶校验数据写回到寄存器文件401。
通过按照以上的过程进行纠错,并仅仅在已发生奇偶错误的情况下对寄存器文件401的位错误进行纠正,就能够纠正寄存器文件401中的位错误而不会对信息处理装置的CPU的处理速度带来影响。
在本实施例中,奇偶校验器403进行奇偶校验来进行检错,所以能够检测的错误为1位错误。当然考虑与运算的处理速度之间的关系来进行检测的错误也可以是1位错误以外,也可以采用检测这些错误的检错方法。在本实施例中的纠错方法中,错误的检测方法与纠正方法不同,错误的检测方法一方比纠错方法处理速度快。
图5是本实施例中的寄存器文件的错误检测以及纠正的流程图。图5中所记载的纠正流程图是图6所示的运算电路600实现的处理。图5所示的纠错方法是对从主寄存器文件601向当前寄存器文件602的数据转送的错误等进行检测、纠正的一种方法。
首先,ECC运算控制部705利用来自指令控制单元704的信号判别是否将数据以及奇偶校验数据从主寄存器文件601转送到当前寄存器文件602(S501)。主寄存器文件601是保持运算电路600处理的全体数据的寄存器文件,当前寄存器文件602是保持主寄存器文件601处理的一部分数据的寄存器文件。运算器605进行当前寄存器文件602保持的数据的运算处理。
在ECC运算控制部705判别为不进行从主寄存器文件601转送数据的情况下(S501否),奇偶校验器604使用奇偶校验数据来判别从当前寄存器文件602转送至运算器605的数据有无奇偶错误(S503)。在本实施例中,运算器605进行运算处理的数据是保持在当前寄存器文件602中的数据。这是为了提高运算电路600的处理速度。通过使运算器605访问所保持的量比主寄存器文件601要少的当前寄存器文件602来进行运算处理,能够提高运算电路600的处理速度。
当奇偶校验器603在转送给运算器的数据内未检测出奇偶错误的情况下(S503否),运算器605继续进行运算处理(S504)。当奇偶校验器603在转送给运算器的数据中检测出奇偶错误的情况下(S503是),指令控制单元704判别错误标记是否为ON(S508)。这里,错误标记是指表示在被从主寄存器文件601转送到当前寄存器文件602的数据中是否存在奇偶校验错误的标记。运算控制部706保持错误标记。而且,指令控制单元判别运算控制部706保持的错误标记的ON/OFF。在ECC运算控制部705判别为进行从主寄存器文件转送数据的情况下(S501是),奇偶校验器603判别在从主寄存器文件601所转送的数据中是否有奇偶错误(S505)。
当奇偶校验器603在从主寄存器文件601转送的数据中检测出奇偶错误的情况下(S505是),奇偶校验器603将错误标记设为ON(S507)。另外,当奇偶校验器603在从主寄存器文件601转送的数据中未检测出奇偶错误的情况下(S505否),奇偶校验器603将错误标记设为OFF(S506),并从当前寄存器文件602中读出数据(S502)。这里,当前寄存器文件602保持的数据是从主寄存器文件601转送的数据。主寄存器文件601、当前寄存器文件602中所保存的数据的错误标记在初始状态下为OFF。因此,直到奇偶校验器603检测出错误为止错误标记保持OFF不变。
而且,当在步骤S508中指令控制单元704判别为错误标记为ON的情况下(S508是),纠错电路606进行奇偶校验器603检测出错误的数据的纠错处理(S509)。这里,指令控制单元704是判别自身保持的错误标记的ON、OFF状态并进行与该错误标记相对应的数据和ECC数据的转送控制的单元。而且,结果选择电路608执行向主寄存器文件601以及当前寄存器文件602的写回处理(S511)。写回处理是指结果选择电路608进行的处理、即将数据、对应于该数据的ECC数据以及对应于该数据的奇偶校验数据向主寄存器文件601以及当前寄存器文件602追加写入或者覆盖写入的处理。
另外,当在步骤S508中指令控制单元704判别为错误标记为OFF的情况下(S508否),运算器605通过指令的重新执行来再执行运算处理(S510)。
另外,本实施例所涉及的CPU具有被称之为提交堆栈项(CSE:Commit Stack Entry)的缓冲。CSE对每个指令分配1个项,用于监视执行中的指令的进展状况。CSE的项按照程序指令的顺序在按顺序完成指令的指令提交时被无效化。
由于按顺序进行伴随于指令提交(commit)的CSE的更新指示,所以何时中断指令执行,都能够在该时间点的程序计时器所指的位置保证可编程资源的一致性。另外,CSE在每次提交时形成程序的检验点,以实现流水线控制的写入循环的功能。据此,即便在中断了指令执行的情况下,也可以全部废弃作业寄存器及运算器605的输入输出等中残留的数据。
本实施例所涉及的检错、纠错的机制,即便在分支的预测失误偏差的恢复、及中断产生时,也可保持可编程资源的一致性,并使指令重新执行(指令再执行)成为可能。也就是说,当在指令读取、指令执行等时奇偶校验器603在从主寄存器文件601向当前寄存器文件转送的数据中检测出错误的情况下,指令控制单元704起动CPU的进程切换以中断指令执行。处理在CSE所形成的检验点停止。而且,CSE保持与指令读出及执行有关的资源,只要重新从程序计时器的位置开始,就能够进行指令重新执行而无损数据完整性(数据的匹配性)。
图6是本实施例中的具有寄存器文件以及纠正电路的运算电路600的框图。
运算电路600由主寄存器文件601、当前寄存器文件602、奇偶校验器603、奇偶校验器604、运算器605、ECC纠正电路606、ECC生成电路607所构成。
主寄存器文件601、当前寄存器文件602由多个部分数据所构成。当前寄存器文件602是从主寄存器文件601中读出了规定数量的部分数据后的寄存器文件。主寄存器文件601是保持运算电路600要处理的全体项的部分数据的寄存器文件。另外,当前寄存器文件602以规定的定时从主寄存器文件601读出数据并进行数据处理。因此,构成主寄存器文件601的部分数据的项数多于构成当前寄存器文件602的部分数据的项数。通过在当前寄存器601保持数据处理所需要的最小限度的数据,就能够提高运算电路600的数据处理速度。
另外,主寄存器文件602使用在物理上不同的信号线来发送数据和奇偶校验数据(或者ECC数据)。在本实施例中,主寄存器文件601使用传输总线609将奇偶校验数据或者ECC数据发送给当前寄存器文件602,并使用传输总线610将数据发送给当前寄存器文件602。当前寄存器602使用传输总线611、612将数据和奇偶校验数据发送给运算器605、奇偶校验器604。当前寄存器文件602使用传输总线611对纠错电路606发送数据和ECC数据,并使用传输总线612将数据和奇偶校验数据发送给运算器605、奇偶校验器604。进而,当前寄存器文件602使用传输总线612将数据和ECC数据发送给纠错电路606。
奇偶校验器603对从主寄存器文件601读出到当前寄存器文件602的部分数据进行奇偶校验。在奇偶校验器603检测出奇偶错误的情况下,奇偶校验器603将错误标记设为ON。而且,奇偶校验器603在当前寄存器文件602中存储从主寄存器文件601读出的数据的读出地址。
奇偶校验器604是对运算器605中的运算对象(运算处理前)的数据上的奇偶错误进行校验的校验器。
运算器605是对从当前寄存器文件602读出的数据进行运算、即进行四则运算、逻辑运算等处理的装置。具体而言,运算器605例如是ALU(Arithmetic Logical Unit,算术逻辑单元),进行整数运算操作(加法、减法、乘法)、逻辑运算(AND、NOT、OR、XOR)、将字按所指定的位数相应地向右(或者左)进行移动的移位操作的动作等。
ECC纠正电路606是使用ECC数据来纠正从当前寄存器文件602读出的数据的错误的电路。这里,ECC纠正电路606从当前寄存器文件602读出纠错中使用的ECC数据。当奇偶校验器603在从主寄存器文件603读出的数据中检测出错误的情况下,指令控制单元704暂时中止将数据从主寄存器文件601转送到当前寄存器文件602的处理。
而且,主寄存器文件601将检测出错误的数据转送到当前寄存器文件602。ECC纠正电路606从当前寄存器文件602读出检测出错误的数据。而且,ECC纠正电路606从当前寄存器文件602中读出与被检测出错误的数据相对应的ECC数据,并使用所读出的ECC数据来纠正已被检测出错误的数据。此时,ECC纠正电路606使用读出奇偶校验数据的信号线,从当前寄存器文件602读出ECC数据。另外,ECC纠正电路606对数据进行纠正并且重新生成与已纠正的数据相对应的奇偶校验数据。然后,结果选择电路608将已纠正的数据、所生成的奇偶校验数据、ECC数据写回到主寄存器文件601。
另外,ECC生成电路607使用运算结果的数据来生成ECC数据,且该运算结果的数据是使用了在奇偶校验器603中未检测出错误的数据而得到的。ECC生成电路607生成的ECC数据是与运算结果的数据相对应的ECC数据。而且,ECC生成电路607基于来自ECC运算控制部706的控制,将由ECC生成电路607所生成的ECC数据和与其相对应的运算结果的数据写回到主寄存器文件601。在纠错电路606对已检测出错误的数据的错误进行了纠正以后,CPU700从已检测出错误的数据的运算处理开始再执行。
在图6中仅仅图示了传输总线609、610作为主寄存器文件601向当前寄存器文件602转送数据的传输总线。虽然运算电路600具有多个传输总线609、610的组作为将主寄存器文件601和当前寄存器文件602接连的传输总线,但是,在图6中省略。此外,传输总线609是转送奇偶校验数据或者ECC数据的传输总线,传输总线610是转送数据的传输总线。而且,主寄存器文件601将奇偶校验数据、ECC数据以及数据分成多次分别向当前寄存器文件602转送。例如,在运算电路600具有8组传输总线的组,并从主寄存器文件601向当前寄存器文件602以32个寄存器的量进行转送的情况下,转送4次8个寄存器的量。
图7是本实施例中的CPU700的框图。
CPU700由存储器701、高速缓存控制单元702、指令控制单元704、运算单元705构成。高速缓存控制单元702是包含高速缓存703的构成。另外,运算单元705由运算控制部706、运算部707、寄存器部708、纠错部709构成。
存储器701是进行数据保持的存储部、即保持CPU处理的全体数据的存储部。高速缓存控制单元702控制存储器701和高速缓存703之间的数据交换。高速缓存控制单元702指定存储器701的规定地址并读出所希望的数据,将所读出的数据保存在高速缓存703中的规定地址。同样地,高速缓存控制单元702指定高速缓存703中的规定地址并读出所希望的数据,将所读出的数据保存于存储器701中的规定地址。
而且,高速缓存控制单元702还控制高速缓存703和寄存器部708之间的数据交换。高速缓存控制单元702指定高速缓存703的规定地址并读出所希望的数据,将所读出的数据保存于寄存器部708中的规定地址。同样地,高速缓存控制单元702指定寄存器部708中的规定地址并读出所希望的数据,将所读出的数据保存于高速缓存703中的规定地址。在本实施例中,由一个高速缓存703来实现高速缓存功能,但是,为了实现处理的更加高速化,还可以是通过1级高速缓存、2级高速缓存和多个高速缓存来构成高速缓存功能。寄存器部708实现图4中的寄存器文件401及图6中的601等具有的功能。
运算控制部706通过控制运算部707、寄存器部708,来统一控制运算单元705的处理。运算部707基于来自运算控制部706的指示,进行从寄存器部708读出数据的处理、向寄存器部708写入数据的处理。另外,纠错部709,在寄存器部708中所保存的数据中存在错误的情况下,进行该数据的错误纠正处理。由寄存器部708进行纠错部709纠正的错误的检测。运算部707自寄存器部708读出数据和对应于该数据的奇偶校验数据。寄存器部708基于数据和奇偶校验数据来尝试数据的读出处理、写入处理等中的数据的错误检测。奇偶校验是数据通信中检测数据错误的方法之一。将构成数据的位的1或者0的个数之奇偶和奇偶校验数据进行比较。若比较结果不吻合就判断为在数据中有错误。
若检测出了数据错误,纠错部709则从寄存器部708读出已检测出错误的数据和对应于该数据的ECC数据。
本实施例中的CPU700根据64位的输入数据和8位的奇偶校验数据,通过EOR运算电路来生成用于求解位的错误位置的8位校验子(syndrome)。
另外,通过使CPU进行的处理流水线化,就能够提高CPU700的处理速度。
为了纠正奇偶校验器603、604基于奇偶校验数据检测出的1位错误,纠错部709生成64位的纠正掩码。纠错部709基于校验子的结果来生成纠正掩码的各位。若奇偶校验器603、604检测出1位错误,纠错部709则使用纠正掩码将错误位以外的位屏蔽,并对错误进行纠正。
图8、图9、图10是本实施例中的CPU的处理的时序图。
对于CPU700进行的数据纠错,优选,可以在从寄存器部708读出数据的处理的时间内使用ECC数据进行奇偶校验和通过奇偶校验检测出的错误的纠正处理。但是,在诸如数据读出处理这样的延迟频繁地发生的时候,CPU700难以在规定的时间内进行ECC纠错处理。
另外,从数据读出处理开始,由于确保使用ECC数据进行部分数据的检错、纠错的时间而使CPU处理速度下降。
因此,与本实施例相关的CPU700使用奇偶校验数据来校验寄存器部708中保持的数据有无奇偶错误。而且,设CPU700构成为,使用ECC数据来纠正通过奇偶校验所检测出的错误。据此,即使设CPU纠正错误的纠错处理花费了数百τ,如果从整体的处理时间来看也极少,能够实现纠错而几乎不会使CPU700的处理性能下降。
在图8、图9、图10的时序图中,CPU进行通常处理,并使用数据和对应于数据的奇偶校验数据来进行数据的奇偶校验。图8、图9、图10中所记载的“PARITY(1~8)”、“DATA(1~8)”分别是以8字节的数据和对应于该数据的8位的奇偶校验数据的块为单位的数据、奇偶校验数据的总称。另外“DATA(1)”、“PARITY(1)”分别表示8字节的数据、8位的奇偶校验数据,同样,附加了其他编号的“DATA(n)”、“PARITY(n)”也是8字节的数据、8位的奇偶校验数据。这里,本实施例中的“n”是1~8的自然数。当然“n”也可以是大于8的自然数,还可以是CPU一次转送更多的数据、奇偶校验数据的构成。
图8是奇偶校验器603未检测出错误时(以下将这一情况称为通常时)的时序图。在通常时,主寄存器文件601经由传输总线609将奇偶校验数据(在图8中记载为PARITY(1))统一为8位,并转送至当前寄存器文件602。这里,在主寄存器文件601和当前寄存器文件602之间,传输总线609和传输总线610的组有8组。在图6中省略8组的传输总线的图示。也就是说,按每个传输总线的组(传输总线609和传输总线610)将1位的奇偶校验数据和1字节的数据进行转送。另外,主寄存器文件601经由传输总线610将数据(在图8中记载为DATA(1))统一为8字节转送至当前寄存器文件602。当前寄存器602经由传输总线611向运算器605转送8字节的数据和对应的8位奇偶校验数据(在图8中记载为DATA(1)+PARITY(1)等)。同样地,当前寄存器602经由传输总线612向运算器605转送8字节的数据和对应的8位的奇偶校验数据(在图8中记载为DATA(2)+PARITY(2)等)。运算器605经由传输总线616将运算处理的运算结果(在图8中记载为运算结果(DATA+P+ECC))写回至主寄存器文件616。
图9是奇偶校验器603检测出错误时的时序图。主寄存器文件601经由传输总线609将奇偶校验数据(在图9中记载为PARITY(1~8))统一为8位,转送至当前寄存器文件602。另外,主寄存器文件601经由传输总线610将数据(在图9中记载为DATA(1~8))统一为8字节转送至当前寄存器文件602。
而且,设在周期801中产生了DATA(1)的转送错误。若产生了转送错误,奇偶校验器603则经由传输总线613对主寄存器文件601通知转送错误的产生。另外,设在周期802中产生了运算寄存器错误。若产生了运算寄存器错误,奇偶校验器604则经由传输总线614向运算控制部706通知运算寄存器错误的产生。
在周期803中,运算电路600开始纠正处理。主寄存器文件601经由传输总线609将ECC数据(在图9中记载为ECC(1)等)通知给当前寄存器文件602。另外,主寄存器文件601经由传输总线610将数据(在图9中记载为DATA(1)等)转送给当前寄存器文件602。当前寄存器文件602经由传输总线611向纠错电路606转送数据和ECC数据。纠错电路606使用ECC数据来纠正数据中产生的错误,并生成与正确的数据相对应的奇偶校验数据。而且,纠错电路606经由传输总线615、616将数据、奇偶校验数据和ECC数据写回至主寄存器文件601。
图10是纠错电路606结束纠错时的时序图。纠错电路606使用从当前寄存器602所转送的ECC数据来纠正对应的数据。纠错电路606经由传输总线615、616将经过纠正的数据写回至主寄存器文件601,并在周期805结束当前寄存器文件602中的所有寄存器的纠正处理。然后,在周期806,主寄存器文件601经由传输总线608将奇偶校验数据再次发送至当前寄存器文件602,并经由传输总线609将数据再次发送至当前寄存器文件602。奇偶校验器603对在从主寄存器文件601向当前寄存器文件602的数据转送中未产生错误进行校验。然后,在周期807,通过执行来自运算控制部706的指令,当前寄存器文件602经由传输总线611、612将与错误有关的数据和奇偶校验数据转送至运算器605。运算器605经由传输总线616将运算结果(在图10中为D+P+E)写回至主寄存器文件601。
图11是将纠错处理纳入了1个周期时的时序图。在没有纠错处理的情况下,运算流水线的各周期由指令取出(IF)、指令解码(D)、寄存器读出(R)、运算执行(EX)、写回(WB)、提交(CT)的各阶段所构成。若在此运算流水线上加入1个周期的纠错处理(C),则伴随于此,相对于全部的运算处理将产生1个周期的延迟时间而使CPU的处理性能显著降低。
本实施例中的纠错方法是对执行依次提供的指令的处理时产生的错误进行纠正的一种方法,即,使用检错用的数据(例如奇偶校验数据)来进行数据错误的检测,并使用不同于检错用的数据的纠错用的数据(例如ECC数据)对所检测出的错误进行纠错的一种方法。据此在本实施例中的纠错方法中,就只产生仅仅在对错误进行纠正时所花费的最小限度的延迟时间。
根据本申请发明的纠错方法,通过在未检测出错误时跳过伴随于ECC运算的处理,就能够纠正寄存器中的位错误,而不会使信息处理装置中的CPU的处理速度下降。
产业上的可利用性
基于本发明的纠错方法,对在CPU的处理中产生的数据错误进行纠正。从而,基于本发明的纠错方法,在实现可靠性高、且要求处理速度的CPU这一方面极其有效。
Claims (17)
1.一种纠错方法,运算器中所设置的寄存器保持数据以及校验数据,对该数据中产生的错误进行纠正,其特征在于,具有:
该运算器使用该校验数据来检测该数据的错误的检测步骤;以及
该运算器使用不同于该校验数据的纠正数据,对在该数据中检测出的错误进行纠正的纠正步骤。
2.按照权利要求1所记载的纠错方法,其特征在于:
该纠正步骤在该运算器检测出错误的情况下,中断运算处理并使用该纠正数据对该数据进行纠错。
3.按照权利要求1所记载的纠错方法,其特征在于:
该校验数据和该纠正数据与该数据对应而被保存在该寄存器中。
4.按照权利要求1所记载的纠错方法,其特征在于:
当在该检测步骤中检测出错误时,自该寄存器读出该纠正步骤中的该纠正数据,并且自该寄存器再次读出被检测出错误的数据。
5.按照权利要求1所记载的纠错方法,其特征在于:
该检测步骤通过运算该数据和该校验数据的异或来检测错误。
6.按照权利要求1所记载的纠错方法,其特征在于:
该校验数据是奇偶校验数据。
7.按照权利要求1所记载的纠错方法,其特征在于:
在该纠正步骤中,使用该纠正数据来生成用于求解位的错误位置的校验子,并使用该校验子来纠正该错误。
8.按照权利要求1所记载的纠错方法,其特征在于:
该纠正数据是ECC数据。
9.按照权利要求1所记载的纠错方法,其特征在于:
该寄存器具有保持要处理的全体数据的主寄存器文件和保持从该主寄存器文件转送的一部分的数据的当前寄存器文件。
10.按照权利要求1所记载的纠错方法,其特征在于:
对于该纠正步骤中的纠正数据,使用转送该校验数据的信号线来转送纠正数据。
11.按照权利要求1所记载的纠错方法,其特征在于:
按照来自对运算处理进行控制的运算控制部的指示来执行该检测步骤中的错误检测。
12.按照权利要求1所记载的纠错方法,其特征在于,还具有:
重新生成与经过纠错的数据相对应的纠正数据的生成步骤。
13.按照权利要求1所记载的纠错方法,其特征在于:
使用错误标记来判别在该纠正步骤中有无检测出错误。
14.按照权利要求1所记载的纠错方法,其特征在于:
该检测步骤中的错误检测是在该数据转送时产生的转送数据的错误检测。
15.按照权利要求1所记载的纠错方法,其特征在于:
该检测步骤中的错误检测是该数据的运算处理时产生的运算数据的错误检测。
16.按照权利要求1所记载的纠错方法,其特征在于,还具有:
将经过纠正的数据写回到该寄存器的步骤。
17.一种运算器,对数据中产生的错误进行纠正,其特征在于,具有:
保持数据、对应于该数据的校验数据以及对应于该数据的纠正数据的寄存器;
使用该校验数据来检测该数据的错误的检测单元;以及
在检测出该错误的情况下使用该纠正数据进行纠正的纠正单元。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/062109 WO2008152728A1 (ja) | 2007-06-15 | 2007-06-15 | エラー訂正方法および演算器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101681309A true CN101681309A (zh) | 2010-03-24 |
Family
ID=40129345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780053304A Pending CN101681309A (zh) | 2007-06-15 | 2007-06-15 | 纠错方法以及运算器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8732550B2 (zh) |
EP (1) | EP2159709B1 (zh) |
JP (1) | JP5212369B2 (zh) |
KR (1) | KR101034287B1 (zh) |
CN (1) | CN101681309A (zh) |
WO (1) | WO2008152728A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107393596A (zh) * | 2016-04-26 | 2017-11-24 | 三星电子株式会社 | 半导体存储设备和操作其的方法 |
CN118426735A (zh) * | 2024-07-03 | 2024-08-02 | 西北工业大学 | 一种可变流水线纠检错加法运算系统及方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010146654A (ja) * | 2008-12-19 | 2010-07-01 | Toshiba Corp | メモリ装置 |
US8321761B1 (en) | 2009-09-28 | 2012-11-27 | Nvidia Corporation | ECC bits used as additional register file storage |
US8250439B1 (en) * | 2009-09-28 | 2012-08-21 | Nvidia Corporation | ECC bits used as additional register file storage |
JP5540697B2 (ja) * | 2009-12-25 | 2014-07-02 | 富士通株式会社 | 演算処理装置、情報処理装置および演算処理装置の制御方法 |
JP2011198272A (ja) * | 2010-03-23 | 2011-10-06 | Toshiba Corp | 半導体記憶装置および半導体記憶装置の制御方法 |
US9348697B2 (en) * | 2013-09-10 | 2016-05-24 | Kabushiki Kaisha Toshiba | Magnetic random access memory |
JP6212396B2 (ja) | 2014-01-08 | 2017-10-11 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
JP6582666B2 (ja) | 2015-07-22 | 2019-10-02 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US9766975B2 (en) | 2015-09-01 | 2017-09-19 | International Business Machines Corporation | Partial ECC handling for a byte-write capable register |
US9985655B2 (en) * | 2015-09-01 | 2018-05-29 | International Business Machines Corporation | Generating ECC values for byte-write capable registers |
US10176038B2 (en) | 2015-09-01 | 2019-01-08 | International Business Machines Corporation | Partial ECC mechanism for a byte-write capable register |
US9734006B2 (en) | 2015-09-18 | 2017-08-15 | Nxp Usa, Inc. | System and method for error detection in a critical system |
US10387303B2 (en) * | 2016-08-16 | 2019-08-20 | Western Digital Technologies, Inc. | Non-volatile storage system with compute engine to accelerate big data applications |
WO2018148923A1 (en) * | 2017-02-17 | 2018-08-23 | Intel Corporation | Application and system fast launch by virtual address area container |
US20190042364A1 (en) * | 2018-06-25 | 2019-02-07 | Intel Corporation | Technologies for maintaining data integrity during data transmissions |
KR102098486B1 (ko) | 2018-08-10 | 2020-04-07 | 주식회사 포스코 | 수소환경 모사장치 |
US11740973B2 (en) | 2020-11-23 | 2023-08-29 | Cadence Design Systems, Inc. | Instruction error handling |
US11977915B2 (en) | 2020-12-15 | 2024-05-07 | Western Digital Technologies, Inc. | Non-volatile memory with intelligent compute task distribution |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62125453A (ja) * | 1985-11-26 | 1987-06-06 | Iwaki Denshi Kk | 記憶装置 |
JPH03105630A (ja) * | 1989-09-20 | 1991-05-02 | Nec Corp | エラー訂正システム |
JPH0520215A (ja) | 1991-07-17 | 1993-01-29 | Nec Eng Ltd | 情報処理装置 |
JPH05120155A (ja) * | 1991-10-24 | 1993-05-18 | Nec Eng Ltd | マイクロプログラム制御装置 |
JPH07152594A (ja) | 1993-11-30 | 1995-06-16 | Fujitsu Ltd | 制御プロセッサのリトライ制御方式 |
US5689727A (en) * | 1994-09-08 | 1997-11-18 | Western Digital Corporation | Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution |
JP3534917B2 (ja) * | 1995-11-08 | 2004-06-07 | 株式会社日立製作所 | メモリアクセス制御方法 |
JPH09288618A (ja) * | 1996-04-19 | 1997-11-04 | Hitachi Ltd | 記憶装置及びそのメモリアクセス制御方法 |
US5996105A (en) * | 1997-11-14 | 1999-11-30 | Cirrus Logic, Inc. | ECC system employing a data buffer for storing codeword data and a syndrome buffer for storing error syndromes |
US6421805B1 (en) | 1998-11-16 | 2002-07-16 | Exabyte Corporation | Rogue packet detection and correction method for data storage device |
JP3573988B2 (ja) * | 1998-12-28 | 2004-10-06 | 富士通株式会社 | 誤り訂正方法及び伝送装置 |
JP3737755B2 (ja) * | 2001-12-28 | 2006-01-25 | 富士通株式会社 | レジスタウィンドウ方式によるレジスタファイル及びその制御方法 |
US6941489B2 (en) * | 2002-02-27 | 2005-09-06 | Hewlett-Packard Development Company, L.P. | Checkpointing of register file |
JP2003346432A (ja) * | 2002-05-22 | 2003-12-05 | Internatl Business Mach Corp <Ibm> | データ記憶装置およびデータ処理方法 |
CN1326384C (zh) * | 2005-04-07 | 2007-07-11 | 北京北大方正电子有限公司 | 一种产生调频网点的方法和装置 |
US7447941B2 (en) * | 2005-07-19 | 2008-11-04 | Hewlett-Packard Development Company, L.P. | Error recovery systems and methods for execution data paths |
JP2008112522A (ja) * | 2006-10-31 | 2008-05-15 | Fujitsu Ltd | 誤り検出装置および誤り検出方法 |
-
2007
- 2007-06-15 KR KR1020097026356A patent/KR101034287B1/ko not_active IP Right Cessation
- 2007-06-15 CN CN200780053304A patent/CN101681309A/zh active Pending
- 2007-06-15 EP EP07745364A patent/EP2159709B1/en not_active Not-in-force
- 2007-06-15 WO PCT/JP2007/062109 patent/WO2008152728A1/ja active Application Filing
- 2007-06-15 JP JP2009519121A patent/JP5212369B2/ja not_active Expired - Fee Related
-
2009
- 2009-12-08 US US12/633,079 patent/US8732550B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107393596A (zh) * | 2016-04-26 | 2017-11-24 | 三星电子株式会社 | 半导体存储设备和操作其的方法 |
CN107393596B (zh) * | 2016-04-26 | 2022-03-01 | 三星电子株式会社 | 半导体存储设备和操作其的方法 |
CN118426735A (zh) * | 2024-07-03 | 2024-08-02 | 西北工业大学 | 一种可变流水线纠检错加法运算系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
KR101034287B1 (ko) | 2011-05-16 |
KR20100022053A (ko) | 2010-02-26 |
US8732550B2 (en) | 2014-05-20 |
EP2159709A1 (en) | 2010-03-03 |
EP2159709A4 (en) | 2011-05-04 |
JP5212369B2 (ja) | 2013-06-19 |
JPWO2008152728A1 (ja) | 2010-08-26 |
US20100088572A1 (en) | 2010-04-08 |
EP2159709B1 (en) | 2013-01-02 |
WO2008152728A1 (ja) | 2008-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681309A (zh) | 纠错方法以及运算器 | |
US8010875B2 (en) | Error correcting code with chip kill capability and power saving enhancement | |
CN105706059B (zh) | 非易失性存储器中的错误校正 | |
US8281218B1 (en) | Data manipulation engine | |
US20130283123A1 (en) | Combined group ecc protection and subgroup parity protection | |
JP3272903B2 (ja) | 誤り訂正検出回路と半導体記憶装置 | |
US7797612B2 (en) | Storage accelerator | |
CN101473308A (zh) | 非易失性存储器纠错系统和方法 | |
US10176038B2 (en) | Partial ECC mechanism for a byte-write capable register | |
US20060190700A1 (en) | Handling permanent and transient errors using a SIMD unit | |
US9985656B2 (en) | Generating ECC values for byte-write capable registers | |
US9766975B2 (en) | Partial ECC handling for a byte-write capable register | |
CN104798047A (zh) | 错误检测和校正装置及方法 | |
JP2008139908A (ja) | メモリ制御装置、コンピュータシステム及びデータ再生記録装置 | |
US9043655B2 (en) | Apparatus and control method | |
US20110154157A1 (en) | Hybrid Error Correction Code (ECC) For A Processor | |
CN108572881A (zh) | 一种在运算器中校验数据的方法 | |
US20130158973A1 (en) | Parity error detection verification | |
JP2006323434A (ja) | データ処理装置及びそのメモリ訂正方法 | |
US20240289213A1 (en) | System, method and apparatus for reducing power consumption of error correction coding using compacted data blocks | |
EP4339781A1 (en) | Processor and method of detecting soft error from processor | |
JPS603046A (ja) | 記憶制御方式 | |
JP2010140140A (ja) | キャッシュメモリ制御回路、キャッシュメモリ装置、及びキャッシュメモリ制御方法 | |
JP2012190134A (ja) | メモリ書込み制御装置 | |
JP2002163896A (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100324 |