JP5212369B2 - 演算器及び演算器の制御方法 - Google Patents

演算器及び演算器の制御方法 Download PDF

Info

Publication number
JP5212369B2
JP5212369B2 JP2009519121A JP2009519121A JP5212369B2 JP 5212369 B2 JP5212369 B2 JP 5212369B2 JP 2009519121 A JP2009519121 A JP 2009519121A JP 2009519121 A JP2009519121 A JP 2009519121A JP 5212369 B2 JP5212369 B2 JP 5212369B2
Authority
JP
Japan
Prior art keywords
data
error
register file
arithmetic
unit
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.)
Expired - Fee Related
Application number
JP2009519121A
Other languages
English (en)
Other versions
JPWO2008152728A1 (ja
Inventor
祥照 大貫
英男 山下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2008152728A1 publication Critical patent/JPWO2008152728A1/ja
Application granted granted Critical
Publication of JP5212369B2 publication Critical patent/JP5212369B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/109Sector 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)

Description

本発明は演算器及びそれらのエラー訂正方法に関する。
CPU(Central Processing Unit)に搭載されるトランジスタ数の増加に伴って、CPUに搭載したレジスタファイルにおいて、エラーが頻繁に発生する問題が起こっている。
従来からエラーの検出については、数ビット毎に奇数又は偶数パリティを設けてエラーの検出を行う方法が一般的である。しかし、パリティによる方法では、エラーを検出できてもエラーの訂正はできないため、レジスタファイル等のアクセスにおいてエラーを検出した場合には、メモリアクセスを再実行する必要が有り、性能に与える影響が大きい。
そのためレジスタファイルのデータにおけるエラーを検出するのみならず、訂正することが求められてきており、ECC(Error−Correcting Code)を用いて訂正することが望ましい。
しかしながら、レジスタファイルのデータに従来付加されていたパリティデータをECCデータに置き換えるだけでは、CPUの処理速度が大幅に低減するといった問題がある。
またエラー訂正方法に関して以下の特許文献がある。
特開平5−20215号公報
本願発明に係るエラー訂正方法は、情報処理装置におけるCPUの処理速度を落とすことなく、レジスタファイルのエラー訂正を行うことを目的とする。
本実施例に係る演算器の制御方法は、データ、前記データのエラーを検出する検出データ、前記データのエラーを訂正する訂正データをレジスタに保持する演算器の制御方法において、前記演算器が、前記レジスタから前記データを読み出して演算処理を開始し、前記演算器が、前記検出データに基づいて、読み出した前記データのエラーを検出し、前記データのエラーが検出された場合、前記演算器が、前記演算処理を中断し、前記データのエラーが検出された場合、前記演算器が、前記エラーが検出されたデータを前記レジスタより再び読み出し、前記演算器が、前記訂正データに基づいて、再び読み出した前記データのエラーを訂正し、前記演算器が、訂正された前記データを用いて演算処理を再開することを特徴とする。
また本実施例に係る演算器の制御方法は、該検出データと該訂正データは、該データに対応して該レジスタに格納されていることを特徴とする。
また本実施例に係る演算器の制御方法は、前記演算器は、該データと該検出データとの排他的論理和を演算することにより、読み出した前記データのエラーを検出することを特徴とする。
また本実施例に係る演算器の制御方法は、該検出データは、パリティデータであることを特徴とする。
また本実施例に係る演算器の制御方法は、前記演算器は、該訂正データを用いてビットの誤り位置を求めるためのシンドロームを生成し、該シンドロームを用いて、再び読み出した前記データのエラーを訂正することを特徴とする。
また本実施例に係る演算器の制御方法は、該訂正データは、ECCデータであることを特徴とする。
また本実施例に係る演算器の制御方法は、該レジスタは処理するデータ全体を保持するマスタレジスタファイルと該マスタレジスタファイルから転送する一部のデータを保持するカレントレジスタファイルを有することを特徴とする。
また本実施例に係る演算器の制御方法は、前記演算器は、前記検出データを転送する信号線を用いて訂正データを読み出すことを特徴とする。
また本実施例に係る演算器の制御方法は、前記演算部は、前記エラーの検出前記演算処理を制御する演算制御部からの指示に従って実行することを特徴とする。
また本実施例に係る演算器の制御方法は、前記演算器が、前記エラーを訂正したデータに対応する訂正データを新たに生成することを特徴とする。
また本実施例に係る演算器の制御方法は、前記演算器は、前記エラー検出の有無を、エラーフラグを用いて判別することを特徴とする。
また本実施例に係る演算器の制御方法は、前記演算器は、前記データを、前記レジスタから、前記演算処理を実行する演算部に転送する時に発生する転送データのエラー検出を実行することを特徴とする。
また本実施例に係る演算器の制御方法は、前記演算器は、前記データの前記演算処理時に発生する演算データのエラー検出を実行することを特徴とする。
また本実施例に係る演算器の制御方法は、前記演算器は、さらに前記エラーを訂正したデータを該レジスタに書き戻すことを特徴とする。
さらに本実施例に係る演算器は、データ、前記データのエラーを検出する検出データ、前記データのエラーを訂正する訂正データを保持するレジスタと、前記レジスタからデータを読み出して演算処理を行うとともに、訂正された前記データを用いて演算処理を再開する演算部と、前記検出データに基づいて、読み出した前記データのエラーを検出する検出部と、前記検出部が前記データのエラーを検出した場合、前記演算部による前記演算処理を中断させるとともに、前記演算部に前記エラーが検出されたデータを前記レジスタより再び読み出させる制御部と、前記訂正データに基づいて、再び読み出した前記データのエラーを訂正する訂正部を有することを特徴とする。
(発明の効果)
本願発明におけるエラー訂正方法によれば、エラー検出しないときはECC演算に伴う処理をスキップすることによって、情報処理装置のCPUの処理速度を低減することなく、レジスタファイルのビットエラーを訂正することができる。
本発明の一実施例におけるレジスタファイル内のデータフォーマットである。 本発明の一実施例におけるレジスタファイル200である。 本発明の一実施例におけるレジスタファイル401でのエラーを訂正する訂正フローチャートである。 本発明の一実施例における演算回路400のブロック図である。 本発明の一実施例におけるカレントレジスタファイル602でのエラーを訂正する訂正フローチャートである。 本発明の一実施例における演算回路600のブロック図である。 本発明の一実施例におけるCPU700のブロック図である。 本発明の一実施例におけるCPU700のタイミングチャートである。 本発明の一実施例におけるCPU700のタイミングチャートである。 本発明の一実施例におけるCPU700のタイミングチャートである。 従来の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エントリとして設定されるデータの単位である。
データフォーマット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、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はエラーを検出したアドレスのデータとそのデータに対応するECCデータをレジスタファイル401から読み出す。そしてエラー訂正回路405はECCデータに基づいて、検出したエラーを訂正する。
結果選択回路406は、ECC演算制御部706からの制御に基づいて、ECC生成回路404によって生成したECCデータと演算結果のデータを対応付けて、そのECCデータ、演算結果データ及び対応するパリティデータをレジスタファイル401に書き戻す。
次に図3における訂正フローチャートについて説明する。
まず演算回路400のパリティチェッカ403は、レジスタファイル401からデータとそのデータに対応するパリティデータを読み出す(S301)。そしてパリティチェッカ403は読み出したデータとパリティデータのパリティチェックを行い、読み出したデータにおけるエラーの有無を判別する(S302)。このとき演算器402は、レジスタファイル401から読み出したデータの演算処理を行う。
パリティチェッカ403はレジスタから読み出したデータにパリティエラーがないと判別する場合には(S302 NO)、演算器402は継続して演算処理を行う(S303)。
パリティチェッカ403が、レジスタから読み出したデータにパリティエラーがあると判別する場合には(S303 YES)、演算器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のビットエラーを訂正することによって、情報処理装置のCPUの処理速度に影響を与えることなく、レジスタファイル401におけるビットエラーを訂正することができる。
本実施例では、パリティチェッカ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 NO)、パリティチェッカ604は、パリティデータを用いて、カレントレジスタファイル602から演算器605へ転送するデータのパリティエラーの有無を判別する(S503)。本実施例では、演算器605が演算処理するデータはカレントレジスタファイル602に保持するデータである。これは演算回路600の処理速度を向上するためである。演算器605がマスタレジスタファイル601より保持する量が少ないカレントレジスタファイル602にアクセスして演算処理を行うことにより、演算回路600は処理速度を向上することができる。
パリティチェッカ603が演算機に転送するデータ内にパリティエラーを検出しない場合(S503 NO)、演算器605は引き続き演算処理を行う(S504)。パリティチェッカ603が演算器に転送するデータにパリティエラーを検出した場合(S503 YES)、命令制御ユニット704は、エラーフラグがONであるか否か判別する(S508)。ここでエラーフラグとは、マスタレジスタファイル601からカレントレジスタファイル602に転送されるデータにパリティエラーが存在するか否かを示すフラグである。演算制御部706がエラーフラグを保持する。そして命令制御ユニットは、演算制御部706が保持するエラーフラグのON、OFFを判別する。ECC演算制御部705がマスタレジスタファイルからのデータ転送を行うと判別した場合(S501 YES)、パリティチェッカ603はマスタレジスタファイル601から転送されたデータにパリティエラーがあるか否か判別する(S505)。
パリティチェッカ603がマスタレジスタファイル601から転送されたデータにパリティエラーを検出した場合(S505 YES)、パリティチェッカ603はエラーフラグをONにする(S507)。またパリティチェッカ603はマスタレジスタファイル601から転送されたデータにパリティエラーを検出しない場合(S505 NO)、パリティチェッカ603はエラーフラグをOFFとして(S506)、カレントレジスタファイル602からデータを読み出す(S502)。ここでカレントレジスファイル602が保持するデータはマスタレジスタファイル601から転送されたデータである。マスタレジスタファイル601、カレントレジスタファイル602に格納されるデータのエラーフラグは、初期状態でOFFである。そのためパリティチェッカ603がエラーを検出するまでは、エラーフラグはOFFのままである。
そしてステップS508において、命令制御ユニット704が、エラーフラグがONであると判別した場合(S508 YES)、エラー訂正回路606はパリティチェッカ603がエラーを検出したデータのエラー訂正処理を行う(S509)。ここで命令制御ユニット704は自身が保持するエラーフラグのON、OFFの状態を判別してそのエラーフラグに対応したデータとECCデータの転送制御を行うユニットである。そして結果選択回路608はマスタレジスタファイル601及びカレントレジスタファイル602への書き戻し処理を実行する(S511)。書き戻し処理とは、結果選択回路608が行う処理であって、データ、そのデータに対応するECCデータ及びそのデータに対応するパリティデータを、マスタレジスタファイル601及びカレントレジスタファイル602に書き加えるもしくは上書きする処理のことである。
またステップS508において、命令制御ユニット704がエラーフラグはOFFであると判別した場合(S508 NO)、演算器605は命令リトライにより、演算処理を再実行する(S510)。
また本実施例に係るCPUはコミット・スタック・エントリ(CSE:Commit Stack Entry)と呼ばれるバッファを有している。CSEは命令ごとに1エントリが割り当てられ、実行中の命令の進捗状況の監視に用いる。CSEのエントリは、プログラム命令の順序に従って、イン・オーダで命令が完了する命令コミット時に無効化される。
命令コミットに伴う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データを、転送バス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は、カレントレジスタファイル602から読み出したデータのエラーを、ECCデータを用いて訂正する回路である。ここでECC訂正回路606は、エラー訂正に用いるECCデータをカレントレジスタファイル602から読み出す。パリティチェッカ603がマスタレジスタファイル603から読み出したデータにエラーを検出した場合、命令制御ユニット704は、データをマスタレジスタファイル601からカレントレジスタファイル602へ転送する処理を一旦中止する。
そしてマスタレジスタファイル601は、エラー検出したデータをカレントレジスタファイル602に転送する。ECC訂正回路606は、カレントレジスタファイル602から、エラー検出したデータを読み出す。そしてECC訂正回路606は、エラーが検出されたデータに対応するECCデータをカレントレジスタファイル602から読み出し、読み出したECCデータを用いてエラーが検出されたデータを訂正する。このときECC訂正回路606は、パリティデータを読み出す信号線を用いて、ECCデータをカレントレジスタファイル602から読み出す。またECC訂正回路606は、データを訂正すると共に新たに訂正したデータに対応するパリティデータを生成する。そして結果選択回路608は訂正したデータ、生成したパリティデータ、ECCデータをマスタレジスタファイル601に書き戻す。
またECC生成回路607は、パリティチェッカ603でエラーを検出しなかったデータを用いた演算結果のデータを用いてECCデータを作成する。ECC生成回路607が生成するECCデータは演算結果のデータに対応するECCデータである。そしてECC生成回路607は、ECC演算制御部706からの制御に基づいて、ECC生成回路607によって生成されたECCデータとそれに対応する演算結果のデータをマスタレジスタファイル601に書き戻す。エラー訂正回路606がエラー検出したデータのエラーを訂正した後、CPU700はエラーを検出したデータの演算処理から再実行する。
図6ではマスタレジスタファイル601がカレントレジスタファイル602へデータを転送する転送バスとして、転送バス609、610のみ図示している。演算回路600は、マスタレジスタファイル601とカレントレジスタファイル602とつなぐ転送バスとして、転送バス609、610のセットを複数有しているが、図6では省略している。なお転送バス609はパリティデータまたはECCデータを転送する転送バスであり、転送バス610はデータを転送する転送バスである。そしてマスタレジスタファイル601はカレントレジスタファイル602へパリティデータ、ECCデータ及びデータをそれぞれ複数回に分けて転送する。例えば演算回路600が転送バスのセットを8セット有しており、マスタレジスタファイル601からカレントレジスタファイル602へ32レジスタ分転送する場合、8レジスタ分を4回転送する。
図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つによって実現しているが、より処理の高速化を図るために、キャッシュ機能を1次キャッシュ、2次キャッシュと複数のキャッシュによって構成するものであってもよい。レジスタ部708は、図4におけるレジスタファイル401や図6における601などが有する機能を実現するものである。
演算制御部706は演算部707、レジスタ部708を制御することにより、統括して演算ユニット705の処理を制御する。演算部707は演算制御部706からの指示に基づいて、レジスタ部708からのデータの読み出し処理、レジスタ部708へデータの書き込み処理を行う。またエラー訂正部709は、レジスタ部708に格納されるデータにエラーがあった場合に、そのデータのエラーの訂正処理を行う。エラー訂正部709が訂正するエラーの検出は、レジスタ部708が行う。演算部707は、レジスタ部708よりデータとそのデータに対応するパリティデータを読み出す。レジスタ部708はデータとパリティデータとに基づいてデータの読み出し処理、書込み処理などにおけるデータのエラーの検出を試みる。パリティチェックは、データ通信においてデータのエラーを検出する手法の一つである。データを構成するビットの1もしくは0の個数の偶奇とパリティデータを比較する。比較結果が合わないとデータにエラーがあると判別する。
エラー訂正部709はデータのエラーを検出すると、レジスタ部708からエラーを検出したデータとそのデータに対応するECCデータを読み出す。
本実施例におけるCPU700は、64ビットの入力データと8ビットのパリティデータから、EOR演算回路を介し、ビットの誤り位置を求めるための8ビットのシンドロームを生成する。
またCPUで行う処理をパイプライン化することによって、CPU700の処理速度を向上することができる
パリティチェッカ603、604がパリティデータに基づいて検出した1ビットエラーを訂正するために、エラー訂正部709は64ビットの訂正マスクを作成する。エラー訂正部709は訂正マスクの各ビットを、シンドロームの結果に基づいて作成する。パリティチェッカ603、604が1ビットエラーを検出すると、エラー訂正部709は訂正マスクを用いて、エラービット以外のビットをマスクアウトし、エラーを訂正する。
図8、図9、図10は本実施例におけるCPUの処理のタイミングチャートである。
CPU700が行うデータのエラー訂正は、ECCデータを用いてパリティチェックとパリティチェックによって検出したエラーの訂正処理をレジスタ部708からのデータ読み出し処理の時間内に行えることが望ましい。しかしながらデータ読み出し処理のような遅延が頻繁に発生するところでは、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を介して、データとECCデータとエラー訂正回路606へ転送する。エラー訂正回路606はECCデータを用いてデータに発生したエラーを訂正し、正しいデータに対応するパリティデータを生成する。そしてエラー訂正回路606は、転送バス615、616を介して、データとパリティデータとECCデータをマスタレジスタファイル601へ書き戻す。
図10はエラー訂正回路606がエラー訂正を終了するときのタイミングチャートである。エラー訂正回路606がカレントレジスタ602から転送されるECCデータを用いて対応するデータを訂正する。エラー訂正回路606は、転送バス615、616を介して、マスタレジスタファイル601へ訂正したデータを書き戻し、サイクル805でカレントレジスタファイル602における全てのレジスタの訂正処理を終了する。そしてサイクル806で、マスタレジスタファイル601は、転送バス608を介してパリティデータを、転送バス609を介してデータを、カレントレジスタファイル602へ再送する。パリティチェッカ603はマスタレジスタファイル601からカレントレジスタファイル602へのデータ転送にエラーが発生しないことをチェックする。そしてサイクル807で、演算制御部706からの命令実行により、カレントレジスタファイル602はエラーがデータとパリティデータを転送バス611、612を介して、演算器605へ転送する。演算器605は演算結果(図10においてD+P+E)を、転送バス616を介して、マスタレジスタファイル601へ書き戻す。
図11はエラー訂正処理を1サイクルに取り入れた場合のタイミングチャートである。エラー訂正処理がない場合、演算パイプラインの各サイクルは命令フェッチ(IF)、命令デコード(D)、レジスタ読み出し(R)、演算実行(EX)、書き戻し(WB)、コミット(CT)の各ステージで構成されている。この演算パイプラインに1サイクルのエラー訂正処理(C)が加わると、それに伴い全ての演算処理に対して1サイクルの遅延時間が発生しCPUの処理性能の低減が著しい。
本実施例におけるエラー訂正方法は、順次与えられる命令の処理の実行で発生するエラーを訂正する方法であり、エラーチェックするためのデータ(例えばパリティデータ)を用いてデータのエラー検出を行い、検出したエラーをエラーチェックするためのデータとは異なるエラー訂正するためのデータ(例えばECCデータ)を用いてエラー訂正する方法である。これにより本実施例におけるエラー訂正方法では、エラーを訂正するときのみかかる最小限の遅延時間のみしか発生しない。
本願発明におけるエラー訂正方法によれば、エラー検出しないときはECC演算に伴う処理をスキップすることによって、情報処理装置におけるCPUの処理速度を落とすことなく、レジスタにおけるビットエラーを訂正することができる。
本発明によるエラー訂正方法は、CPUの処理において発生するデータのエラーを訂正するものである。したがって、本発明によるエラー訂正方法は、信頼性が高く、かつ処理速度が求められるCPUを実現するうえで極めて有用である。

Claims (12)

  1. データ、前記データのエラーを検出する検出データ、前記データのエラーを訂正する訂正データを有するデータ群をレジスタに保持する演算器の制御方法において、
    前記レジスタは処理するデータ全体を保持するマスタレジスタファイルと、前記マスタレジスタファイルから転送される前記処理するデータ全体の一部を含む第1のデータ群を保持するカレントレジスタファイルを有し、
    前記第1のデータ群は第1のデータ、前記第1のデータのエラーを検出する第1の検出データ、前記第1のデータのエラーを訂正する第1の訂正データを有し、
    前記演算器の有する演算部は前記カレントレジスタファイルから第2のデータ、前記第2のデータのエラーを検出する第2の検出データ、前記第2のデータのエラーを訂正する第2の訂正データを有する第2のデータ群を読み出して演算処理を開始し、
    前記第1のデータと前記第2のデータはそれぞれにエラーの検出が行われ、
    前記第1のデータにおけるエラーの検出の結果に係わることなく、
    前記第2の検出データにより前記第2のデータにエラーが検出された場合、
    前記演算部は前記演算処理を中断し、訂正された前記第2のデータ群を前記カレントレジスタファイルから読み出して演算処理を再開し、
    前記演算処理において前記第2のデータにエラーが検出されない場合、
    前記演算部は前記演算処理を続行することを特徴とする演算器の制御方法。
  2. 請求項1に記載の演算器の制御方法において、
    前記演算器は、前記各データと前記各データに対応する前記各検出データとの排他的論理和を演算することにより、読み出した前記各データのエラーを検出することを特徴とする演算器の制御方法。
  3. 請求項1に記載の演算器の制御方法において、
    前記検出データは、パリティデータであることを特徴とする演算器の制御方法。
  4. 請求項1に記載の演算器の制御方法において、
    前記演算器は、前記各訂正データを用いてビットの誤り位置を求めるためのシンドロームを生成し、該シンドロームを用いて、再び読み出した前記各データのエラーを訂正することを特徴とする演算器の制御方法。
  5. 請求項1に記載の演算器の制御方法において、前記各訂正データは、ECCデータであることを特徴とする演算器の制御方法。
  6. 請求項1に記載の演算器の制御方法において、
    前記演算器は、前記各検出データを転送する信号線を用いて前記各訂正データを読み出すことを特徴とする演算器の制御方法。
  7. 請求項1に記載の演算器の制御方法において、
    前記演算部は、前記エラーの検出を、前記演算処理を制御する演算制御部からの指示に従って実行することを特徴とする演算器の制御方法。
  8. 請求項1に記載の演算器の制御方法において、
    前記演算器が、前記エラーを訂正したデータに対応する訂正データを新たに生成することを特徴とする演算器の制御方法。
  9. 請求項1に記載の演算器の制御方法において、
    前記演算器は、前記エラー検出の有無を、エラーフラグを用いて判別することを特徴とする演算器の制御方法。
  10. 請求項1に記載の演算器の制御方法において、
    前記演算器は、前記第2のデータを、前記カレントレジスタファイルから、前記演算処理を実行する前記演算部に転送する時に発生する転送データのエラー検出を実行することを特徴とする演算器の制御方法。
  11. 請求項1に記載の演算器の制御方法は、
    前記演算器は、さらに前記各エラーを訂正したデータを前記各レジスタファイルに書き戻すことを特徴とする演算器の制御方法。
  12. 処理するデータ全体を保持するマスタレジスタファイルと、
    前記マスタレジスタファイルから転送される前記データ全体の一部を含む第1のデータ、前記第1のデータのエラーを検出する第1の検出データ、前記第1のデータのエラーを訂正する第1の訂正データを有する第1のデータ群を保持するカレントレジスタファイルと、
    前記カレントレジスタファイルから第2のデータ、前記第2のデータのエラーを検出する第2の検出データ、前記第2のデータのエラーを訂正する第2の訂正データを含む第2のデータ群を読み出して演算処理を行う演算部と、
    前記第1の検出データにより前記第1のデータ群のエラーを検出する第1の検出部と、
    前記第1の訂正データにより前記第1のデータ群のエラーを訂正する第1の訂正部と、
    前記第2の検出データにより前記第2のデータ群のエラーを検出する第2の検出部と、
    前記第2の訂正データにより前記第2のデータ群のエラーを訂正する第2の訂正部と、
    前記第1のデータと前記第2のデータはそれぞれにエラーの検出が行われ、
    前記第1のデータにおけるエラーの検出の結果に係わることなく、
    前記第2の検出部が前記第2データにエラーを検出した場合、
    前記演算部に演算処理を中断させ、前記第2の訂正部により訂正された前記第2のデータ群を前記カレントレジスタファイルから読み出して演算処理を再開させ、
    前記第2の検出部が前記第2データにエラーを検出しない場合、
    前記演算部による演算処理を続行させる制御部と、
    を有することを特徴とする演算器。
JP2009519121A 2007-06-15 2007-06-15 演算器及び演算器の制御方法 Expired - Fee Related JP5212369B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/062109 WO2008152728A1 (ja) 2007-06-15 2007-06-15 エラー訂正方法および演算器

Publications (2)

Publication Number Publication Date
JPWO2008152728A1 JPWO2008152728A1 (ja) 2010-08-26
JP5212369B2 true JP5212369B2 (ja) 2013-06-19

Family

ID=40129345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009519121A Expired - Fee Related JP5212369B2 (ja) 2007-06-15 2007-06-15 演算器及び演算器の制御方法

Country Status (6)

Country Link
US (1) US8732550B2 (ja)
EP (1) EP2159709B1 (ja)
JP (1) JP5212369B2 (ja)
KR (1) KR101034287B1 (ja)
CN (1) CN101681309A (ja)
WO (1) WO2008152728A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146654A (ja) * 2008-12-19 2010-07-01 Toshiba Corp メモリ装置
US8250439B1 (en) * 2009-09-28 2012-08-21 Nvidia Corporation ECC bits used as additional register file storage
US8321761B1 (en) 2009-09-28 2012-11-27 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 富士通株式会社 演算処理装置および演算処理装置の制御方法
US10176038B2 (en) 2015-09-01 2019-01-08 International Business Machines Corporation Partial ECC mechanism for a byte-write capable register
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
US9734006B2 (en) 2015-09-18 2017-08-15 Nxp Usa, Inc. System and method for error detection in a critical system
KR20170121798A (ko) * 2016-04-26 2017-11-03 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
US10387303B2 (en) * 2016-08-16 2019-08-20 Western Digital Technologies, Inc. Non-volatile storage system with compute engine to accelerate big data applications
US11385926B2 (en) * 2017-02-17 2022-07-12 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

Citations (9)

* Cited by examiner, † Cited by third party
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 制御プロセッサのリトライ制御方式
JPH09134314A (ja) * 1995-11-08 1997-05-20 Hitachi Ltd メモリアクセス制御装置
JPH09288618A (ja) * 1996-04-19 1997-11-04 Hitachi Ltd 記憶装置及びそのメモリアクセス制御方法
JP2003196086A (ja) * 2001-12-28 2003-07-11 Fujitsu Ltd レジスタウィンドウ方式によるレジスタファイル及びその制御方法
JP2008112522A (ja) * 2006-10-31 2008-05-15 Fujitsu Ltd 誤り検出装置および誤り検出方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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 富士通株式会社 誤り訂正方法及び伝送装置
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
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 制御プロセッサのリトライ制御方式
JPH09134314A (ja) * 1995-11-08 1997-05-20 Hitachi Ltd メモリアクセス制御装置
JPH09288618A (ja) * 1996-04-19 1997-11-04 Hitachi Ltd 記憶装置及びそのメモリアクセス制御方法
JP2003196086A (ja) * 2001-12-28 2003-07-11 Fujitsu Ltd レジスタウィンドウ方式によるレジスタファイル及びその制御方法
JP2008112522A (ja) * 2006-10-31 2008-05-15 Fujitsu Ltd 誤り検出装置および誤り検出方法

Also Published As

Publication number Publication date
JPWO2008152728A1 (ja) 2010-08-26
KR20100022053A (ko) 2010-02-26
EP2159709A4 (en) 2011-05-04
EP2159709A1 (en) 2010-03-03
EP2159709B1 (en) 2013-01-02
WO2008152728A1 (ja) 2008-12-18
CN101681309A (zh) 2010-03-24
KR101034287B1 (ko) 2011-05-16
US20100088572A1 (en) 2010-04-08
US8732550B2 (en) 2014-05-20

Similar Documents

Publication Publication Date Title
JP5212369B2 (ja) 演算器及び演算器の制御方法
US8095825B2 (en) Error correction method with instruction level rollback
JP5147564B2 (ja) レジスタ状態エラー回復および再開機構
JP5010271B2 (ja) エラー訂正コード生成方法、およびメモリ制御装置
JPH0253809B2 (ja)
US10817369B2 (en) Apparatus and method for increasing resilience to faults
US20110035643A1 (en) System and Apparatus for Error-Correcting Register Files
US6895527B1 (en) Error recovery for speculative memory accesses
US7058877B2 (en) Method and apparatus for providing error correction within a register file of a CPU
JP6582666B2 (ja) 演算処理装置および演算処理装置の制御方法
JP2018147166A (ja) 演算処理装置及び演算処理装置の制御方法
JP2011257966A (ja) キャッシュ装置及び情報処理装置
US20120210188A1 (en) Handling corrupted background data in an out of order execution environment
US10289332B2 (en) Apparatus and method for increasing resilience to faults
US9720764B2 (en) Uncorrectable memory errors in pipelined CPUs
JP5843804B2 (ja) 演算装置およびエラー処理方法
EP2352092B1 (en) Processor, information processing apparatus, and method of controlling processor
CN108572881A (zh) 一种在运算器中校验数据的方法
JP2009169515A (ja) コンピュータシステム及びシステム回復装置
JP2009238168A (ja) マイクロプロセッサ
JPH0644238B2 (ja) 命令再実行制御方法
JP2022014963A (ja) キャッシュ制御装置及びキャッシュシステムの制御方法
JPS6012656B2 (ja) リトライ制御方式
JP2003271381A (ja) エラー訂正制御回路
JPH0553844A (ja) 情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120813

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121225

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130211

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees