JP2012010108A - データ処理回路及びデータ処理方法 - Google Patents

データ処理回路及びデータ処理方法 Download PDF

Info

Publication number
JP2012010108A
JP2012010108A JP2010144292A JP2010144292A JP2012010108A JP 2012010108 A JP2012010108 A JP 2012010108A JP 2010144292 A JP2010144292 A JP 2010144292A JP 2010144292 A JP2010144292 A JP 2010144292A JP 2012010108 A JP2012010108 A JP 2012010108A
Authority
JP
Japan
Prior art keywords
data
error
circuit
output
flip
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
Application number
JP2010144292A
Other languages
English (en)
Inventor
Masaru Takehara
勝 竹原
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
Priority to JP2010144292A priority Critical patent/JP2012010108A/ja
Priority to US13/150,343 priority patent/US8539306B2/en
Priority to EP11168829.7A priority patent/EP2400393A3/en
Publication of JP2012010108A publication Critical patent/JP2012010108A/ja
Pending legal-status Critical Current

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
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Abstract

【課題】データの処理時間を短縮するデータ処理回路及びデータ処理方法を提供する。
【解決手段】制御用ビットを含むデータを受信する受信回路211と、受信回路211から出力されたデータを保持する保持回路215と、受信回路211から出力されたデータのエラーを検出するエラー検出回路212と、エラー検出回路212により検出された制御用ビットのエラーである第1エラーを訂正する第1訂正回路と、エラー検出回路212で第1エラーが検出されないときは、保持回路215を経由したデータを出力し、エラー検出回路212で第1エラーが検出されたときは第1エラーが訂正されたデータを出力する出力選択回路と、を有する。
【選択図】図2

Description

開示の技術は、データ転送及びデータ記録におけるError Check and Correction(ECC)コードを用いてデータのエラー検出及び訂正を行うデータ処理回路及びデータ処理方法に関する。
情報処置装置において、ECCコードを用いて、情報転送路であるバスを転送するデータのエラー検出を行うことが知られている。データのエラー検出は、例えば、データ処理回路を用いて行われる。データのエラー検出は、エラー検出の対象となるデータのビット数が少ない場合、データ処理回路におけるデータの伝達時間は少ない。データ処理回路におけるデータの伝達時間が少ないため、ビット数が少ない場合のデータの処理時間は問題にならなかった。
しかし、近年における中央処理装置のデータ処理能力の向上に伴い、エラー検出の対象となるデータのビット数は増加している。データのビット数が増加すると、データ処理回路は複雑化する。例えば、データ処理回路にゲート回路を用いる場合、同時に処理するデータのビット数が増加するため、ゲート回路は多段化する。ゲート回路が多段化すると、データ処理回路におけるデータの伝達時間は増加する。
上述した中央処理装置のデータ処理能力の向上に伴い、中央処理装置の動作周波数も同様に高速化している。動作周波数の高速化により、1クロック周期の時間が短くなる。1クロック周期の時間が短くなると、データがデータ処理回路を伝達するタイミングの遅延が発生してしまう。中央処理装置の動作周波数の高速化に対応するために、データを保持する保持回路が、データ処理回路内に設けられている。保持回路は、例えばフリップフロップから構成されていることが望ましい。保持回路は、データ処理回路内のエラー検出及びデータ伝達のタイミングを調整し、データを伝達するタイミングの遅延を防ぐように構成されている。
しかし、データ処理回路によりチェックされるデータは、エラーが発生しない場合がほとんどである。エラーが発生しない場合がほとんどであるにも係らず、データ処理回路でエラーの検出結果を待つまでの時間が余計にかかってしまう問題があった。
従来技術として、下記の文献がある。
特開昭56−129952号公報 特開昭48−63644号公報
開示の技術は、データの処理時間を短縮するデータ処理回路及びデータ処理方法を提供することを目的とする。
本発明の課題を解決するため、開示の技術の第1の側面によれば、
制御用ビットを含むデータを受信する受信回路と、
前記受信回路から出力されたデータを保持する保持回路と、
前記受信回路から出力されたデータのエラーを検出するエラー検出回路と、
前記エラー検出回路により検出された制御用ビットのエラーである第1エラーを訂正する第1訂正回路と、
前記エラー検出回路で前記第1エラーが検出されないときは、前記保持回路を経由したデータを出力し、前記エラー検出回路で前記第1エラーが検出されたときは前記第1エラーが訂正されたデータを出力する出力選択回路と、
を有することを特徴とするデータ処理回路が提供される。
開示の技術の第2の側面によれば、
制御用ビットを含むデータを受信し、
受信したデータを保持し、
受信したデータのエラーを並行して検出し、
検出された制御用ビットのエラーである第1エラーを検出し、
前記保持されたデータ、又は前記第1エラーが訂正されたデータの何れかを選択して出力し、前記第1エラーが検出されないときは、前記保持されたデータを出力し、前記第1エラーが検出されたときは前記第1エラーが訂正されたデータを出力することを特徴とすることを特徴とするデータ処理方法が提供される。
開示の技術によれば、選択出力回路はエラー検出回路で第1エラーが検出されないときは、保持回路を経由したデータを出力する。一方、選択出力回路は、エラー検出回路で第1エラーが検出されたときは第1エラーが訂正されたデータを出力する。第1エラーが検出されないデータは、エラー検出回路を経由せずに保持回路を経由して選択出力回路に出力されるため、データのエラー検出・処理時間を必要としない。そのため、データの処理時間を短縮することができる。
図1は、本実施例に係る情報処理装置の概略図を示す図である。 図2は、本実施例に係るデータ処理回路の構成図を示す図である。 図3は、本実施例に係るエラー検出・訂正回路の動作の一例を示すフローチャートである。 図4は、本実施例に係るデータ処理回路のタイムチャートを示す図である。 図5は、本実施例に係る処理切替判定回路の動作の一例を示すフローチャートである。 図6は、本実施例に係るデータ処理回路のタイムチャートを示す図である。 図7は、本実施例に係るデータの構成図を示す図である。 図8は、本実施例において、マルチプレクサ214から送信されたデータがデータ処理回路21Aを用いて処理されるようすを示す図である。
以下、開示の技術に係るデータ処理回路21A及びデータ処理回路21Aによるデータ処理方法が説明される。ただし、発明は本実施例に限定されるものではない。
図1から図8では、一実施例に係るデータ処理回路21A及びデータ処理回路21Aによるデータ処理方法が説明される。
図1は、一実施例に係る情報処理装置1の概略説明図を示す。情報処理装置1は、クラスタ10及びシステム記憶装置20を備える。クラスタ10及びシステム記憶装置20は、接続線30を介して接続されている。接続線30は、例えば電気ケーブル又は光ケーブルを用いることができる。
クラスタ10は、中央処理装置11、I/Oコントローラ12及び主記憶装置13を備える。中央処理装置11、I/Oコントローラ12及び主記憶装置13は、バス14を介して互いに接続されている。
中央処理装置11は、クラスタ10に係る演算処理を実行する。中央処理装置11は、I/Oコントローラ12及び主記憶装置13を制御する。
I/Oコントローラ12は、クラスタ10をシステム記憶装置20と接続するために設けられる。I/Oコントローラ12は、システム記憶装置20から送信された受信パケットの解析を行い、システム記憶装置20に対し命令の応答やデータの転送を行う。I/Oコントローラ12は、システム記憶装置20に対するコマンド及びデータのアクセスの優先順位を設定する。I/Oコントローラ12は、システム記憶装置20から受信したコマンド及びデータをパケット化し、中央処理装置11に対してパケット化されたコマンド及びデータを送信する。
主記憶装置13は、中央処理装置11からの要求により、主記憶装置13に格納されているデータの読出し及び書込みを実行する。
システム記憶装置20は、I/Oコントローラ21、メモリコントローラ22及びメモリ23を備える。I/Oコントローラ21、メモリコントローラ22及びメモリ23は、バス24を介して互いに接続されている。
I/Oコントローラ21は、システム記憶装置20をクラスタ10と接続するために設けられる。I/Oコントローラ21は、クラスタ10から送信された受信パケットの解析を行い、クラスタ10に対し命令の応答やデータの転送を行う。I/Oコントローラ21は、クラスタ10に対するコマンド及びデータのアクセスの優先順位を設定する。I/Oコントローラ21は、クラスタ10から受信したコマンド及びデータをパケット化し、メモリコントローラ22に対してパケット化されたコマンド及びデータを送信する。
データ処理回路21Aは、クラスタ10から受信したデータを構成するビットにエラーが発生した場合に、データのエラー処理を実施してメモリコントローラ22にエラー処理を施したデータを送信する。又、データ処理回路21Aは、メモリコントローラ22から受信したデータを構成するビットにエラーが発生した場合に、データのエラー処理を実施して、エラー処理を施したデータをクラスタ10に送信する。
メモリコントローラ22は、I/Oコントローラ21からのメモリ23に対するアクセス制御を行う。
メモリ23は、例えば、クラスタ10で使用されるデータ、クラスタ10に実行させるOperation System(OS)などのプログラム23Aを一時的に格納する。プログラム23Aは、情報処理装置1のデータ処理を実施するためのプログラムである。プログラム23Aは、クラスタ10によって実行される。
なお、プログラム23Aは、例えば、システム記憶装置20に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク及びICカードなどの「可搬用の物理的記憶媒体」に記憶される。プログラム23Aはあるいは、システム記憶装置20の内外に備えられるディスク装置に記憶される。プログラムはまた、公衆回線、インターネット、LANあるいはWANなどを介してシステム記憶装置20に接続される「他のコンピュータ(またはサーバ)」に記憶される。システム記憶装置20は、上記記憶媒体からプログラム23Aを読み出して実行することができる。
図2は、本実施例に係るデータ処理回路21Aの構成図を示す。データ処理回路21Aは、データ受信回路211、エラー検出・訂正回路212、マルチプレクサ214、フリップフロップ215、処理切替判定回路216、パリティ生成回路217、フリップフロップ218、パケット生成回路219、フリップフロップ220、エラー訂正回路221、バッファメモリ222、フリップフロップ223及びデータ送信回路224を備える。フリップフロップ215は、フリップフロップ218、220及び223と同様の構成を有する。
データ処理回路21Aは、例えば、クラスタ10から受信したエラー処理の対象となるデータのエラー処理を行い、メモリコントローラ22側に送信する。データ処理回路21Aは、例えば、Large Scale Integrated−circuit(LSI)を用いて構成することができる。
図7は、本実施例に係るデータの構成図を示す図である。図7に示すように、データは、Error Check and Correction(ECC)コード、制御用ビット及びデータ本体部から構成される。ECCコードは、データのエラー検出を行うために用いられるコードである。制御用ビットは、例えばOperation Code(OPCODE)又はアドレス情報を含むビットであり、128ビット分のデータ本体を有する131ビットのデータは、例えば3ビット分の制御用ビットを備える。ECCコードは、データ本体部を基に算出されたエラー訂正符号である。エラー訂正符号は、例えば2ビットのエラー検出と1ビットの誤り訂正とを可能にするものである。なお、本実施例では、制御用ビットは次処理の態様を判断するためにも用いられる。
データ受信回路211は、クラスタ10から送信されたデータのメモリコントローラ22への転送命令を含むデータを受信する。データ受信回路211は、受信したデータをエラー検出・訂正回路212及びフリップフロップ215に送信する。
エラー検出・訂正回路212は、複数のフリップフロップ及びゲート回路を備える。図2では、エラー検出・訂正回路212はフリップフロップ212A、ゲート回路212B、フリップフロップ212C、ゲート回路212D及びフリップフロップ212Eを順に組み合わせた構成としている。フリップフロップ212Aは、フリップフロップ212C及びフリップフロップ212Eと同様の構成を用いることができる。
フリップフロップ212Aは、データ受信回路211から出力された第1ECCコードを含むデータをクラスタ10から受信する。フリップフロップ212Aは、エラー検出・訂正回路212から受信したデータを保持する。フリップフロップ212Aは、保持しているデータをゲート回路212Bに送信する。
なお、フリップフロップ212Aは、例えば、データ受信回路211から送信された第1ECCコードを含むデータを受信し、1τ保持した後に出力する。1τは、データ処理回路21Aの1クロック周期の時間を示す。データ処理回路21Aの周波数が例えば500MHzである場合、1クロック周期の時間は2ナノ秒(ns)となる。フリップフロップ212Aは、データ処理回路21Aの1クロック周期に合わせてエラー検出回路内のエラー検出及びデータ伝達のタイミングを調整し、データ処理回路21A内のデータ伝達のタイミングの遅延を防ぐために備えられている。
ゲート回路212Bは、データのエラーチェックを行うための第2ECCコードを生成するために備えられる。ゲート回路212Bは、データ処理回路21Aのデータが例えば128ビットである場合、2入力のExclusive OR(EOR)回路6段、及びNOT回路1段を組み合わせて構成することができる。ゲート回路212Bは、例えば9ビットの第2ECCコードを生成し、第1ECCコードを含むデータと共にフリップフロップ212Cに送信する。
フリップフロップ212Cは、ゲート回路212Bから、第1ECCコードを含むデータ及びゲート回路212Bにより生成された第2ECCコードを受信する。フリップフロップ212Cは、受信した第1ECCコードを含むデータ及びゲート回路212Bにより生成された第2ECCコードを一時的に保持する。フリップフロップ212Cは、エラー検出・訂正回路212内のデータ伝達タイミングを調整するために設けられている。フリップフロップ212Cは、保持している第1ECCコードを含むデータ及び第2ECCコードをゲート回路212Dに送信する。
ゲート回路212Dは、フリップフロップ212Cから第1ECCコードを含むデータ及び第2ECCコードを受信する。ゲート回路212Dは、ゲート回路212Bで生成された第2ECCコード及びデータ受信回路211で受信した第1ECCコードからデータの訂正用ビットをデコードし、エラー訂正用のデータを生成する。ゲート回路212Dは、生成したエラー訂正用のデータと、データ受信回路211から送信されたエラー訂正前のデータとの排他的論理和(Exclusive OR:EOR)を求めた結果により訂正されたデータを、フリップフロップ212Eに送信する。
データからエラーを検出する際にチェック対象となるエラービット、即ちエラーを生じているビットは、エラー検出・訂正回路212のゲート回路212Dで第1ECCコード及び第2ECCコードを比較することにより検出される。また、ゲート回路212Dでは、エラービットが制御用ビットに発生したか、あるいはデータ本体部に発生したかを判断する。エラービットが制御用ビットに存在するか、又はデータ本体部に存在するかを判断する方法は、データ内の制御用ビットの存在位置をゲート回路212Dに認識させて行われる。エラービットの位置の識別は、例えば、ECCコードの論理チェックにより行われる。
ゲート回路212Dで第1ECCコード及び第2ECCコードを比較した結果、データ受信回路211から出力されたデータに2ビット以上のエラーが検出された場合、エラー検出・訂正回路212は、例えば、データ受信回路211に対してクラスタ10からデータを再転送させる指示を行う。
ゲート回路212Dで第1ECCコード及び第2ECCコードを比較した結果、データ受信回路211から出力されたデータに1ビットエラーが検出された場合、エラー検出・訂正回路212の部分を構成する回路は検出されたデータの1ビットエラーを訂正する。
ゲート回路212Dで検出された1ビットエラーが制御用ビットに存在する場合、エラー検出・訂正回路212は制御用ビットを訂正する。ゲート回路212Dは、制御用ビットが訂正されたデータをマルチプレクサ214に送信する。
フリップフロップ212Eは、ゲート回路212Dでエラーが訂正されたデータを受信する。フリップフロップ212Eは、ゲート回路212Dで訂正されたデータを保持し、エラー検出・訂正回路212内のデータ伝達タイミングを調整する。フリップフロップ212Eは、保持しているデータをマルチプレクサ214に送信する。
フリップフロップ215は、データ受信回路211から出力されたデータを受信する。フリップフロップ215は、エラー検出・訂正回路212から受信したデータを保持する。フリップフロップ215は、マルチプレクサ214に対するデータの伝達タイミングを調整する。フリップフロップ215は、データ受信回路211から出力された、保持しているデータをマルチプレクサ214に送信する。
なお、フリップフロップ215を介してデータ処理を行う処理ルートのことを、以下第1処理ルートという。第1処理ルートとは、エラー検出・訂正回路212によるエラー検出・訂正処理を行わずに、フリップフロップ215を介してマルチプレクサ214にデータを入力する処理ルートである。
一方、エラー検出・訂正回路212を経由してマルチプレクサ214にデータ出力が行われる処理ルートのことを、以下第2処理ルートという。第2処理ルートとは、エラー検出・訂正回路212でエラー検出・訂正処理が行われたデータをマルチプレクサ214に入力する処理ルートである。
フリップフロップ215における処理時間を例えば1τとすると、第1処理ルートにおいて、データ受信回路211から出力されたデータがフリップフロップ215を介してマルチプレクサ214まで到達する時間は1τとなる。一方、第2処理ルートにおいて、データ受信回路211から出力されたデータがエラー検出・訂正回路212を介してマルチプレクサ214まで到達する時間は、フリップフロップ212A、212C及び212Eが順に組み合わされているため、計3τとなる。第1処理ルートでは、第2処理ルートと比較して、2τだけ先行してデータ処理が行われる。
ゲート回路212Dで検出された1ビットエラーが制御用ビットに存在する場合、エラー検出・訂正回路212は、マルチプレクサ214に対して第2処理ルートからのデータを選択して出力する指示を行なう。また、エラー検出・訂正回路212で訂正された1ビットエラーが制御用ビットに存在する場合、エラー検出・訂正回路212はエラー訂正回路221に対し、第1処理ルートにより2τ先行して行われているデータ処理を停止させる指示を行う。
エラー検出・訂正回路212で検出された1ビットエラーがデータ本体部に存在する場合、エラー検出・訂正回路212はマルチプレクサ214に対して第1処理ルートからのデータを出力させる指示を行う。エラー検出・訂正回路212はまた、エラー訂正回路221に対して第1処理ルートからのデータの訂正を行うように指示する。
処理切替判定回路216は、データ受信回路211から送信されたデータのNon OPeration(NOP)判定処理を行う。処理切替判定回路216は、データの制御用ビットを判定し、且つ検出した制御用ビットを解釈することにより、NOP検出処理を行う。処理切替判定回路216はまた、NOPが連続して存在することを、不図示のカウンタを用いて判定する。
データ受信回路211から送信されたデータにNOPが連続で2τ以上存在すると判定された場合、処理切替判定回路216は、マルチプレクサ214に対して第1処理ルートへの復帰の指示を行う。マルチプレクサ214は、処理切替判定回路216からの指示に従い、第1処理ルートからのデータを選択して出力する切替動作を行う。
マルチプレクサ214は、エラー検出・訂正回路212から1ビットエラーが訂正されたデータを受信する。マルチプレクサ214はまた、フリップフロップ215から送信されたデータを受信する。マルチプレクサ214は、エラー検出・訂正回路212及び処理切替判定回路216からの指示に従い、エラー検出・訂正回路212から送信された1ビットエラーが訂正されたデータ、又はフリップフロップ215から送信されたデータのいずれかを選択してパリティ生成回路217に出力する。
図8は、マルチプレクサ214から送信されたデータがデータ処理回路21Aを用いて処理されるようすを示す図である。
パリティ生成回路217は、マルチプレクサ214から送信されたデータからパリティを生成する。パリティ生成回路217は、図8に示すように、例えば128ビットのデータを4つに分割して32ビットにする。パリティ生成回路217は、32ビットに分割されたデータから各々パリティを生成する。パリティ生成回路217は、生成したパリティを付加したデータをフリップフロップ218に送信する。
フリップフロップ218は、図8に示すように、パリティ生成回路217から出力されたデータを受信する。フリップフロップ218は、パリティ生成回路217によりパリティ化されたデータを保持する。フリップフロップ218は、パケット生成回路219に対するデータの伝達タイミングを調整する。フリップフロップ218は、保持しているデータをパケット生成回路219に送信する。
パケット生成回路219は、図8に示すように、フリップフロップ218から送信されたパリティを付加したデータからパケットを生成する。パケット生成回路219は、パケット化されたデータをフリップフロップ220に送信する。
フリップフロップ220は、図8に示すように、パケット生成回路219から送信されたパケット化されたデータを受信する。フリップフロップ220は、パケット生成回路219から送信されたデータを保持する。フリップフロップ220は、エラー訂正回路221に対するデータの伝達タイミングを調整する。フリップフロップ220は、保持しているデータをエラー訂正回路221に送信する。
エラー訂正回路221は、フリップフロップ220から送信されたデータを受信する。エラー訂正回路221は、エラー検出・訂正回路212からの指示により、第1処理ルートから出力されたデータ全体のうち、データ本体部に存在する1ビットエラーを訂正する。エラー訂正回路221は、制御用ビットが訂正されたデータを含むデータをバッファメモリ222に出力する。一方、エラー訂正回路221は、エラー検出・訂正回路212から第1処理ルートで送信されたデータの転送停止指示を受けると、第1処理ルートで送信されたデータの出力をしない。また、エラー訂正回路221は、エラー検出・訂正回路212からの指示に従い、第1処理ルートから出力されたデータの訂正を行う。なお、第2処理ルートを介したデータは、エラー訂正回路221でデータの訂正を行わずにバッファメモリ222に出力する。
バッファメモリ222は、図8に示すように、エラー訂正回路221から送信されたデータを受信する。バッファメモリ222は、受信したデータを一時的に書込する。バッファメモリ222は、書き込まれたデータをフリップフロップ223に送信する。
フリップフロップ223は、図8に示すように、バッファメモリ222から送信されたデータを受信する。フリップフロップ223は、バッファメモリ222から送信されたデータを保持する。フリップフロップ223は、データ送信回路224に対するデータの伝達タイミングを調整する。フリップフロップ223は、受信したデータをデータ送信回路224に送信する。
データ送信回路224は、フリップフロップ223から送信されたデータを受信する。データ送信回路224は、受信したデータをメモリコントローラ22に送信する。
なお、パリティ生成回路217におけるパリティ生成処理、パケット生成回路219におけるパケット生成処理及びバッファメモリ222におけるメモリ書込処理を合わせて「次処理」という。
図3は、本実施例に係るエラー検出・訂正回路212の動作の一例を示すフローチャートである。図3に示す処理は、エラー検出・訂正回路212で行なわれる、データ受信回路211で受信したデータのエラー処理を示す図である。
S1において、エラー検出・訂正回路212は、受信したデータにエラーが存在しないか否か、エラーが存在する場合にはデータに1ビットエラーが存在するか、又は2ビット以上のエラーが存在するかを判断する。データに1ビットエラーが存在する場合(S1 SBE)、エラー検出・訂正回路212は、次にS2の処理をおこなう。なお、1ビットエラーをSBE(Single Bit Error)という。なお、2ビットのエラーをDBE(Double Bit Error)という。
S2において、エラー検出・訂正回路212は、検出した1ビットエラーの訂正を行う。
S3において、エラー検出・訂正回路212は、訂正した1ビットエラーが制御用ビットに発生したエラーであるかを判断する。訂正した1ビットエラーが制御用ビットに発生したエラーであるとき(S3 Y)、エラー検出・訂正回路212は次にS4の処理を行う。
S4において、エラー検出・訂正回路212は、マルチプレクサ214に対して第2処理ルートを介して転送されたデータを出力させる指示を行う。
S5において、エラー検出・訂正回路212は、エラー訂正回路221に対して、第1処理ルートを介して転送されたデータの転送停止指示を行う。なお、S5において、エラー検出・訂正回路212は、エラー訂正回路221による訂正も不要とする指示を行う。なお、S5において、エラー検出・訂正回路212によるデータの訂正の反映及びデータの転送停止指示は、データがフリップフロップ218及び220を2段通過した後に行われる。
なお、S1において2ビット以上のエラーが存在する場合(S1 DBE)、S6において、エラー検出・訂正回路212はデータ受信回路211に対してエラー報告を行う。エラー検出・訂正回路212は、例えば、データ受信回路211に対し、データの再送指示を行う。
S7において、エラー検出・訂正回路212は、エラー訂正回路221に対して第1処理ルートから送信されたデータの訂正処理を停止する指示を行う。
なお、S1においてデータにエラーが存在しない場合(S1 N)、S8において、エラー検出・訂正回路212はマルチプレクサ214に対して第1処理ルートから送信されたデータ出力を選択させる指示を行う。
S9において、エラー検出・訂正回路212は、エラー訂正回路221に対して第1処理ルートからのデータを訂正するよう指示する。
なお、S3において、訂正した1ビットエラーが制御用ビットに発生したエラーでは無いときも、エラー検出・訂正回路212は次にS8の処理を行う。
図4は、本実施例に係るデータ処理回路21Aの第1処理T1及び第2処理T2に係るタイミングチャートを示す。図4に示す横軸は時刻τを示す。横軸における1目盛りは1クロック(=1τ)を示す。
第1処理T1は、エラー検出・訂正回路212によるエラー検出・訂正処理を行わずに、フリップフロップ215を介してマルチプレクサ214から出力されたデータに対する次処理を行う処理である。第1処理T1では、データ受信回路211から出力されたデータは、フリップフロップ215、フリップフロップ218、フリップフロップ220及びフリップフロップ223を介して出力される。フリップフロップ215、218、220及び223におけるデータ処理時間は、それぞれ1τ発生する。第1処理ルートではデータは計4個のFFを経由するため、第1処理T1の処理時間は、計4τとなる。
第2処理T2は、エラー検出・訂正回路212でエラー検出・訂正処理が行われた後にマルチプレクサ214から出力されたデータに対する次処理を行う処理である。第2処理T2では、データ受信回路211から出力されたデータは、エラー検出・訂正回路212内のフリップフロップ212A、ゲート回路212B、フリップフロップ212C、ゲート回路212D及びフリップフロップ212Eを経由してマルチプレクサ214に送信される。第2処理T2では、マルチプレクサ214から出力されたデータは、フリップフロップ218、フリップフロップ220及びフリップフロップ223を介して出力される。フリップフロップ212A、212C及び212Eにおけるデータ処理時間は、フリップフロップ218、220及び223におけるデータ処理時間と同様に各1τである。第2処理ルートではデータは計6個のFFを経由するため、第2処理T2の処理時間は、計6τとなる。第1処理T1及び第2処理T2に必要な処理時間を比較すると、2τの処理時間差があることがわかる。第1処理T1は、第2処理T2と比較して、2τだけ先行してデータ処理が行われる。
エラー検出・訂正回路212は、第1処理T1の停止指示、及び第1処理T1から第2処理T2への切替指示を時刻Zのタイミングで行なうものとする。時刻Zは、第2処理T2におけるエラー検出・訂正回路212によるエラー検出・訂正処理の結果が、同時刻に開始された第1処理T1のデータのバッファメモリへの書込前に追い付く時刻である(Z=第1処理T1の次処理開始から2τ後)。第2処理T2で制御用ビットに1ビットエラーが検出された場合、マルチプレクサ214は、エラー検出・訂正回路212の指示により、第2処理T2で処理されたデータを選択して出力する。次いで、エラー訂正回路221は、エラー検出・訂正回路212の指示により、時刻Z(=第1処理T1の次処理開始から2τ後)のタイミングで、第1処理T1におけるデータ処理を停止する。そのため、バッファメモリ222には、第2処理T2によって制御用ビット及びデータ本体の1ビットエラーが訂正されたデータを書き込むことができる。
図5及び図6は、第1処理T1から第2処理T2に切り替わった後に、処理切替判定回路216でNOPが連続して検出されるまで、第2処理T2によるデータ処理が行われるようすを示す図である。なお、処理切替判定回路216は、1ビットエラーが制御用ビットで検出された場合は、先行処理である第1処理T1の中止を実施して第2処理T2におけるデータ処理に切替える。処理切替判定回路216は、第2処理T2以降の処理において、データが連続有効データである限り、第2処理T2のデータ処理を継続させる。但し、処理切替判定回路216は、NOP等の無効データを検出し、無効データが連続して検出された場合には、データ処理を第1処理T1に復帰させる機能を備える。
図5は、本実施例に係る処理切替判定回路216の動作の一例を示すフローチャートである。図5に示す処理は、データ受信回路211で受信したデータのNOP検出処理を処理切替判定回路216で開始するようすを示す図である。
S11において、処理切替判定回路216は、マルチプレクサ214が第1処理ルートによるデータを出力しているか判断する。マルチプレクサ214が第1処理ルートによるデータを出力していないと判断すると、処理切替判定回路216は、次にS12の処理を行う。
S12において、処理切替判定回路216は、データ受信回路211で受信したデータにおけるNOPが2τ連続で検出されるか判断を行う。NOPが2τ連続で検出された場合(S12 Y)、処理切替判定回路216は、次にS13の処理を行う。
S13において、処理切替判定回路216は、マルチプレクサ214に対し、第1処理ルートを選択してデータを出力させる指示を行う。
なお、S11において、マルチプレクサ214が第1処理ルートからデータを出力している場合(S11 Y)、処理切替判定回路216は処理を終了する。
また、S12において、NOPが2τ連続で検出されない場合(S12 N)、処理切替判定回路216は処理を終了する。
図6は、本実施例に係るデータ処理回路21Aの第2処理T11〜T13、及び第1処理T14に係るタイミングチャートを示す。図6に示す横軸は時刻τを示す。横軸における1目盛りは1クロックを示す。図6は、第2処理T11〜T13、及び第1処理T14に係るデータがエラー検出・訂正回路212に対して順次転送されて処理されるようすを示す。
第2処理T11に係るデータは、時刻Z1のタイミングで、データ受信回路211からエラー検出・訂正回路212のフリップフロップ212A及びフリップフロップ215に入力する。フリップフロップ212Aから出力されたデータは、時刻Z2のタイミングで、エラー検出・訂正回路212のゲート回路212Bを介してフリップフロップ212Cに入力する。フリップフロップ212Cから出力されたデータは、時刻Z3のタイミングで、エラー検出・訂正回路212のゲート回路212Dを介してフリップフロップ212Eに入力する。そして、時刻Z1から時刻Z4までの間に、エラー検出・訂正回路212においてデータのエラー検出・訂正処理が行われる。
一方、時刻Z1のタイミングでデータ受信回路211からフリッププロップ215に入力したデータは、時刻Z2のタイミングでマルチプレクサ214に入力する。しかし、第2処理T11においては、マルチプレクサ214は、フリップフロップ215を介して入力したデータは出力せず、エラー検出・訂正回路212を経由する、第2処理ルートからのデータを選択して出力する。
次いで、第2処理T11において、エラー検出・訂正回路212のフリップフロップ212Eから出力されたデータは、時刻Z4のタイミングで、マルチプレクサ214及びパリティ生成回路217を介してフリップフロップ218に入力する。フリップフロップ218から出力されたデータは、時刻Z5のタイミングで、パケット生成回路219を介してフリップフロップ220に入力する。フリップフロップ220から出力されたデータは、時刻Z6のタイミングで、エラー訂正回路221及びバッファメモリ222を介してフリップフロップ223に入力する。そして、時刻Z4から時刻Z7までの間に、パリティ生成回路217、パケット生成回路219及びバッファメモリ222による次処理が行われる。
第2処理T11に係るデータに後続する第2処理T12に係るデータは、時刻Z2のタイミングで、エラー検出・訂正回路212のフリップフロップ212Aに入力する。即ち、第2処理T12では、第2処理T11と比較して、τ1のタイミングだけ遅れてエラー検出・訂正回路212にデータが入力する。そして、時刻Z2から時刻Z5までの間は、エラー検出・訂正回路212においてデータのエラー検出・訂正処理が行われる。次いで、第2処理T12において、時刻Z5から時刻Z8までの間は、パリティ生成回路217、パケット生成回路219及びバッファメモリ222による次処理が行われる。
第2処理T12に係るデータに後続する第2処理T13に係るデータは、時刻Z3のタイミングで、エラー検出・訂正回路212のフリップフロップ212Aに入力する。即ち、第2処理T13では、第2処理T12と比較して、τ1のタイミングだけ遅れてエラー検出・訂正回路212にデータが入力する。そして、時刻Z3から時刻Z6までの間は、エラー検出・訂正回路212においてデータのエラー検出・訂正処理が行われる。次いで、第2処理T13において、時刻Z6から時刻Z9までの間は、パリティ生成回路217、パケット生成回路219及びバッファメモリ222による次処理が行われる。なお、第2処理T11からT13の各々において、マルチプレクサ214は、エラー検出・訂正回路212を経由する第2処理ルートからのデータを選択して出力する。
第2処理T13の処理開始時刻であるZ3から処理切替判定回路216によりNOPが2τ連続で検出されたものとする。データ受信回路211から送信されたデータにNOPが連続で2τ以上存在すると判定された場合、処理切替判定回路216は、マルチプレクサ214に対して、エラー検出・訂正回路212を経由するデータを出力する処理を停止し、フリップフロップ215を経由するデータを選択して出力する指示を行う。マルチプレクサ214は、データ受信回路211からの指示に従い、第2処理ルートからのデータの代わりに、第1処理ルートからのデータを選択して出力する切替動作を行う。
第1処理T14に係るデータは、時刻Z6のタイミング、即ち、2回目のNOPを検出した次のタイミングにおいて、エラー検出・訂正回路212のフリップフロップ212A及びフリップフロップ215に入力する。マルチプレクサ214は、エラー検出・訂正回路212からの指示により、フリップフロップ215からのデータ、即ち第1処理ルートからのデータを選択して出力する。
第1処理T14において、フリップフロップ215に入力したデータは、エラー検出・訂正回路212によるデータ検出・訂正処理が行われずに、時刻Z7のタイミングでマルチプレクサ214及びパリティ生成回路217を介してフリップフロップ218に入力する。フリップフロップ218から出力されたデータは、時刻Z8のタイミングで、パケット生成回路219を介してフリップフロップ220に入力する。フリップフロップ220から出力されたデータは、時刻Z9のタイミングで、エラー訂正回路221及びバッファメモリ222を介してフリップフロップ223に入力する。そして、時刻Z7から時刻Z10までの間、パリティ生成回路217、パケット生成回路219及びバッファメモリ222による次処理が行われる。
処理切替判定回路216は、NOPが例えば2τ以上で検出された場合には、1回目のNOP検出から2τ後のタイミングで第2処理T13から第1処理T14に切替える。即ち、処理切替判定回路216は、第2処理T13の処理開始時刻であるZ3から第1処理T14の処理開始時刻であるZ6までの間に第2処理T13から第1処理T14に切替える。即ち、第1処理T14以降のデータ処理は、エラー検出・訂正回路212によって制御用ビットに1ビットエラーが検出されるまで、第1処理T14が継続適用される。
本実施例に係るデータ処理回路21Aによるデータ処理時間の短縮化を検証するために、データ処理回路21Aの単発データ処理におけるエラー検出率を測定した。1ビットエラーのエラー検出率は0.1%であった。検出した1ビットエラーのうち、制御用ビットの1ビットエラーのエラー検出率は、0.01%であった。また、2ビットエラーのエラー検出率は、0.1%であった。エラーが検出されない正常なデータは99.8%であった。即ち、エラーの無いデータ、及びデータの本体部に1ビットエラーを含むデータが99.9%の割合で存在することがわかる。
本実施例に係るデータ処理回路21Aは、99.9%のデータに対しては第1処理に要する処理時間でデータ処理を行うことができる。そのため、データ処理が例えば100回行われたと仮定すると、1回のデータ処理毎に、第2処理と第1処理の差分である2τの処理時間が、第2処理のみを実行する場合と比べて短縮される。そのため、合計で99.8(回)×2τ=199.6τ分の処理時間が短縮できる。
開示の技術によれば、エラー検出・訂正回路212で制御用ビットの1ビットエラーが検出されないときは、フリップフロップ215を経由したデータをマルチプレクサ214から出力する。一方、エラー検出・訂正回路212で制御用ビットの1ビットエラーが検出されたときは、マルチプレクサ214は制御用ビットの1ビットエラーが訂正されたデータを出力する。制御用ビットの1ビットエラーが検出されないデータは、エラー検出・訂正回路212を経由せずにフリップフロップ215を経由してマルチプレクサ214に出力されるため、エラー検出・訂正回路212によるデータのエラー検出・処理時間を必要としない。そのため、データの処理時間を短縮することができる。
なお、クラスタ10は、システム記憶装置20が備えるI/Oコントローラ21と同様の構成を有するI/Oコントローラを備えても良い。即ち、本実施例に係るデータ処理回路21Aは、クラスタ10に係るI/Oコントローラに適用することができる。クラスタ10に係るI/Oコントローラにデータ処理回路21Aを適用することによって、クラスタ10からシステム記憶装置20にデータ送信する際に、データ処理時間を短縮化することができる。
1 情報処理装置
10 クラスタ
11 中央処理装置
12 I/Oコントローラ
13 主記憶装置
14 バス
20 システム記憶装置
21 I/Oコントローラ
21A データ処理回路
22 メモリコントローラ
23 メモリ
23A プログラム
24 バス
30 接続線
211 データ受信回路
212 エラー検出・訂正回路
212A フリップフロップ
212B ゲート回路
212C フリップフロップ
212D ゲート回路
212E フリップフロップ
214 マルチプレクサ
215 フリップフロップ
216 処理切替判定回路
217 パリティ生成回路
218 フリップフロップ
219 パケット生成回路
220 フリップフロップ
221 エラー訂正回路
222 バッファメモリ
223 フリップフロップ
224 データ送信回路

Claims (8)

  1. 制御用ビットを含むデータを受信する受信回路と、
    前記受信回路から出力されたデータを保持する保持回路と、
    前記受信回路から出力されたデータのエラーを検出するエラー検出回路と、
    前記エラー検出回路により検出された制御用ビットのエラーである第1エラーを訂正する第1訂正回路と、
    前記エラー検出回路で前記第1エラーが検出されないときは、前記保持回路を経由したデータを出力し、前記エラー検出回路で前記第1エラーが検出されたときは前記第1エラーが訂正されたデータを出力する出力選択回路と、
    を有することを特徴とするデータ処理回路。
  2. 前記制御用ビット以外のビットに生じたエラーである第2エラーが検出されたとき、前記第2エラーを訂正して訂正したデータの出力を行い、前記エラー検出回路で前記第1エラーが検出されたとき、第2エラーが検出されたデータの出力をしない第2訂正回路と、
    を有することを特徴とする請求項1記載のデータ処理回路。
  3. 前記受信回路から受信した前記データが無効データであるか判定する判定回路を有し、
    前記第1エラーが訂正されたデータが前記選択出力回路から出力されているときに前記判定回路で無効データがあると判定されたとき、前記判定回路は前記選択出力回路に前記保持回路からのデータを選択して出力させることを特徴とする請求項1記載のデータ処理回路。
  4. 前記第1エラー及び前記第2エラーが訂正されたデータを送信する送信回路を更に有することを特徴とする請求項2記載のデータ処理回路。
  5. 制御用ビットを含むデータを受信し、
    受信したデータを保持し、
    受信したデータのエラーを並行して検出し、
    検出された制御用ビットのエラーである第1エラーを検出し、
    前記保持されたデータ、又は前記第1エラーが訂正されたデータの何れかを選択して出力し、前記第1エラーが検出されないときは、前記保持されたデータを出力し、前記第1エラーが検出されたときは前記第1エラーが訂正されたデータを出力することを特徴とするデータ処理方法。
  6. 前記制御用ビット以外のビットに生じたエラーである第2エラーが検出されたとき、前記第2エラーを訂正して訂正したデータの出力を行い、前記第1エラーが検出されたとき、第2エラーが検出された前記データの出力をしないことを特徴とする請求項5記載のデータ処理方法。
  7. 受信した前記データが無効データであるか判定し、
    前記第1エラーが訂正されたデータが出力されているときに前記無効データであると判定されたとき、前記保持されたデータが選択して出力されることを特徴とする請求項5記載のデータ処理方法。
  8. 前記第1エラー及び前記第2エラーが訂正されたデータを送信することを特徴とする請求項6記載のデータ処理方法。
JP2010144292A 2010-06-24 2010-06-24 データ処理回路及びデータ処理方法 Pending JP2012010108A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010144292A JP2012010108A (ja) 2010-06-24 2010-06-24 データ処理回路及びデータ処理方法
US13/150,343 US8539306B2 (en) 2010-06-24 2011-06-01 Data processing circuit and data processing method
EP11168829.7A EP2400393A3 (en) 2010-06-24 2011-06-06 Data processing circuit and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010144292A JP2012010108A (ja) 2010-06-24 2010-06-24 データ処理回路及びデータ処理方法

Publications (1)

Publication Number Publication Date
JP2012010108A true JP2012010108A (ja) 2012-01-12

Family

ID=44582087

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010144292A Pending JP2012010108A (ja) 2010-06-24 2010-06-24 データ処理回路及びデータ処理方法

Country Status (3)

Country Link
US (1) US8539306B2 (ja)
EP (1) EP2400393A3 (ja)
JP (1) JP2012010108A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9385756B2 (en) * 2012-06-07 2016-07-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Data processing system with retained sector reprocessing
US11928024B1 (en) * 2022-08-26 2024-03-12 Synopsys, Inc. Atomic correction of single bit errors within a memory

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56129952A (en) * 1980-03-14 1981-10-12 Fujitsu Ltd Error correction system
JPS6375940A (ja) * 1986-09-19 1988-04-06 Nec Corp マイクロプログラム制御装置
JPH02144633A (ja) * 1988-11-25 1990-06-04 Nec Corp コントロールストレージのエラー訂正装置
JPH11308200A (ja) * 1998-04-21 1999-11-05 Toshiba Corp 誤り訂正装置及び誤り訂正方法
JP2002544711A (ja) * 1999-05-11 2002-12-24 エリクソン インコーポレイテッド デジタル通信システムにおける伝送エラー処理方法
JP2007149222A (ja) * 2005-11-28 2007-06-14 Toshiba Lsi System Support Kk 半導体メモリおよびメモリシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5232544B2 (ja) 1971-12-07 1977-08-22
US7353400B1 (en) * 1999-08-18 2008-04-01 Sun Microsystems, Inc. Secure program execution depending on predictable error correction
KR100612003B1 (ko) * 2000-02-26 2006-08-11 삼성전자주식회사 통신망에서 비트 스트림 송수신 장치 및 그 방법
US6662332B1 (en) * 2000-07-05 2003-12-09 3Com Corporation Interleaver for burst error correction
US7370230B1 (en) * 2004-01-08 2008-05-06 Maxtor Corporation Methods and structure for error correction in a processor pipeline
US7302619B1 (en) * 2004-07-06 2007-11-27 Mindspeed Technologies, Inc. Error correction in a cache memory
JP4846306B2 (ja) * 2005-09-09 2011-12-28 富士通セミコンダクター株式会社 半導体記憶装置及びそれを用いた半導体集積回路システム並びに半導体記憶装置の制御方法
JP4768374B2 (ja) * 2005-09-16 2011-09-07 株式会社東芝 半導体記憶装置
US20080256419A1 (en) * 2007-04-13 2008-10-16 Microchip Technology Incorporated Configurable Split Storage of Error Detecting and Correcting Codes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56129952A (en) * 1980-03-14 1981-10-12 Fujitsu Ltd Error correction system
JPS6375940A (ja) * 1986-09-19 1988-04-06 Nec Corp マイクロプログラム制御装置
JPH02144633A (ja) * 1988-11-25 1990-06-04 Nec Corp コントロールストレージのエラー訂正装置
JPH11308200A (ja) * 1998-04-21 1999-11-05 Toshiba Corp 誤り訂正装置及び誤り訂正方法
JP2002544711A (ja) * 1999-05-11 2002-12-24 エリクソン インコーポレイテッド デジタル通信システムにおける伝送エラー処理方法
JP2007149222A (ja) * 2005-11-28 2007-06-14 Toshiba Lsi System Support Kk 半導体メモリおよびメモリシステム

Also Published As

Publication number Publication date
EP2400393A3 (en) 2014-03-05
US20110320907A1 (en) 2011-12-29
EP2400393A2 (en) 2011-12-28
US8539306B2 (en) 2013-09-17

Similar Documents

Publication Publication Date Title
JP5107880B2 (ja) データ転送処理装置及び方法
US9003260B2 (en) Partial-writes to ECC (error check code) enabled memories
KR102094878B1 (ko) 반도체 메모리 장치 및 동작 방법
KR20080112252A (ko) 에러 보정 디바이스 및 그 방법
US9423972B2 (en) Error recovery in a data processing system which implements partial writes
JP6312550B2 (ja) 半導体装置
JP2008165449A (ja) エラー訂正コード生成方法、およびメモリ制御装置
JP2013137708A (ja) メモリコントローラ、データ記憶装置およびメモリ制御方法
JP6247816B2 (ja) 高完全性処理を提供する方法
US20140149800A1 (en) Test method and test control apparatus
US20120110423A1 (en) Command control circuit, integrated circuit having the same, and command control method
JP6568012B2 (ja) メモリ管理システム、方法、およびコンピュータ・プログラム
TWI451333B (zh) 亂序執行之微處理器以及相關執行指令之方法
JPWO2008053709A1 (ja) 半導体集積回路選別試験装置および方法
JP2012010108A (ja) データ処理回路及びデータ処理方法
JP6458626B2 (ja) デバッグ回路、半導体装置及びデバッグ方法
JP6354489B2 (ja) デバッグ回路、半導体装置及びデバッグ方法
US8635566B2 (en) Parity error detection verification
CN108028530A (zh) 应用于数字集成电路的esd检测装置、集成电路及方法
US8756543B2 (en) Verifying data intensive state transition machines related application
US8473831B2 (en) Semiconductor memory apparatus and data read method of the same
JP5334173B2 (ja) データ転送システム及びリトライ制御方法
JP5282325B2 (ja) ポステッドライトバス制御装置
JP2012174050A (ja) メモリ書込み制御装置
JP2010140132A (ja) メモリシステム及びメモリコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150407