JP4834722B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP4834722B2
JP4834722B2 JP2008502571A JP2008502571A JP4834722B2 JP 4834722 B2 JP4834722 B2 JP 4834722B2 JP 2008502571 A JP2008502571 A JP 2008502571A JP 2008502571 A JP2008502571 A JP 2008502571A JP 4834722 B2 JP4834722 B2 JP 4834722B2
Authority
JP
Japan
Prior art keywords
data
identification information
buffer
read
arithmetic processing
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
JP2008502571A
Other languages
English (en)
Other versions
JPWO2007099584A1 (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 JPWO2007099584A1 publication Critical patent/JPWO2007099584A1/ja
Application granted granted Critical
Publication of JP4834722B2 publication Critical patent/JP4834722B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、データを読み出す処理において発生するエラーを検出する技術に関する。
高い信頼性を要求される計算機システムにおいては、内部の様々な制御信号や主記憶データに冗長性を持たせてあり、これを用いて、エラーの発生の迅速な検出あるいはエラーの訂正等を可能とされる。特に、主記憶データについては、大容量を要求されるが故にエラーの発生頻度が比較的高くなる傾向にあるため、ECC(Error Correcting Code)によって保護することが多い。ECCを使用すると、通常、1ビットのエラーを訂正することができ、2ビットまでのエラーの検出が可能とされる。
しかし、かかるエラー検出機構では、正しくエラー保護された(「Good ECCの」)2つのデータを取り違えるような制御不良に対しては無力である。すなわち、データの内容に誤りがない限りは正常とされるので、例えば、データバッファからデータを取り出す順序を誤るとか、新しいデータが到着する前にバッファの値を参照してしまう等の制御ミスがあっても、それを検出することはできなかった。
このようなエラーについては、従来の技術においてはハードウェアによる検出が行えず、プログラムの計算結果の間違いとしてのみ発露することとなる。したがって、このようなエラーは障害原因の同定が極めて困難である。
本発明は、ハードウェアにおけるエラーを検出する技術を提供することを目的とする。
上記課題を解決するために、本発明に係るエラー検出装置は、記憶装置からデータを読み出すための命令を保持する命令保持手段と、前記命令保持手段に保持されている命令に従って前記記憶装置からデータを取得するとともに、識別情報を生成する第1の処理手段と、前記記憶装置から取得したデータに前記識別情報を付与して一時記憶装置へ書き込むとともに、その識別情報を前記命令保持手段に返送する第2の処理手段と、前記命令保持手段に保持されている命令に対応する読出し要求および前記命令保持手段に返送された識別情報を受け取ったときに、その読出し要求に従って前記一時記憶装置から対応するデータを読み出し、その読み出したデータに付与されている識別情報と前記受け取った識別情報とを比較する比較手段と、前記比較手段により比較される識別情報が互いに一致しなかった場合にはエラーを検出し、上位に報告するエラー報告手段を備えた構成とする。
命令にしたがって所定の送信先にデータを送出する際に、一時記憶装置に格納するデータとともにその命令に対応する識別情報を生成して一時記憶装置に格納する。生成された識別情報は、命令を保持する命令保持手段に与えられる。比較手段は、命令保持手段に与えられた識別情報と、一時記憶手段から読み出したデータとともに格納されている識別情報とを比較して、比較した結果2つの識別情報が互いに一致する場合は、そのデータを送出する。一致しないときは、ハードウェアにおけるエラーとして検出する。
前記比較手段は、前記送信手段を介して前記読出し要求および前記命令保持手段に返送された識別情報を受け取る構成としてもよい。また、前記比較手段により比較される識別情報が互いに一致していた場合に限り、前記一次記憶装置から読み出したデータを送信先へ送信することとしてもよい。前記識別情報は、例えば昇順あるいは降順の通し番号から構成される。
本発明によれば、ハードウェアにおけるデータの送受信処理におけるエラーを検出することが可能とされる。
CPUチップの構成図である。 システムバス制御部の構成をより詳細に示した図である。 データバッファ制御部における動作を説明するための図である。 マジックIDを用いてエラーを検出する方法を説明するための図である。 データバッファ制御部におけるデータの読み出し部の構成図である。 データバッファ部へのデータの書き込みを開始するまでの処理を示すフローチャートである。 データバッファ部へのデータの書き込み処理を示すフローチャートである。 データバッファ部に格納されているデータの読み出し処理を示すフローチャートである。 ネットワーク制御装置の構成図である。 ネットワーク制御装置のデータ転送制御部の構成を更に詳しく示した図である。
以下、本発明の好適な実施の形態について、図面を参照しながら詳細に説明する。
図1は、本実施形態に係るCPUチップの構成図である。CPUチップ1は、プロセッサコア2、キャッシュ装置3およびシステムバス制御部4を含む。プロセッサコア2は、一般的には2以上のプロセッサコアから構成され、命令を生成する。キャッシュ装置3は、プロセッサコア2からの命令に基づいてデータを格納する。システムバス制御部4は、プロセッサコア2からの命令に基づいて、キャッシュ装置3に格納されているデータを読み出して、システムバスに対して読み出したデータを送出する。キャッシュ装置3から読み出したデータは、システムバス制御部4内のバッファに一時的に格納されてからシステムバスに向けて送出される。
図2は、システムバス制御部4の構成をより詳細に示した図である。システムバス制御部4は、複数のコマンドキュー41(41A〜41D)、調停回路42、パケット生成部(パケット生成器)43およびデータバッファ制御部44を含んで構成される。
コマンドキュー41は、プロセッサコア2からの命令を保持し、保持している命令を順次システムバスを介して対象となる装置に対して送信するためのキューである。コマンドキュー41は、プロセッサコア2からの命令が、外部装置へのデータ送出を伴うか否かに応じて分類されており、図2の例においては、コマンドキュー41Aおよび41Bはデータ送出を伴わない命令を保持し、コマンドキュー41Cおよび41Dはデータ送出を伴う保持すると仮定する。
調停回路42は、各コマンドキューを介してプロセッサコア2からの命令を受信し、いずれの命令を優先的に実行するか等の調停処理を行う。パケット生成部43は、データ送出を伴う命令については、調停回路42から受信した命令と、データバッファ制御部44を介して受信したデータとからパケットを生成し、システムバスに対してパケットを送出する。
ここで、データバッファ制御部44は、コマンドキュー41C、41Dから受信した命令に基づいて、キャッシュ装置3からデータを読み出して所定のタイミングでパケット生成部43に読み出したデータを転送する。このとき、まずキャッシュから取り出したデータをバッファに書き込み、次に調停回路42における調停処理によって所定のタイミングでパケット生成部43がデータ読み出しを要求すると、バッファからデータが読み出されて転送される。
本実施形態に係るCPUチップ1においては、データバッファ制御部44がキャッシュ装置3から読み出したデータをバッファに書き込むときに、そのデータを識別するための識別情報と併せてデータをバッファに格納する。そして、パケット生成部43からのデータ読み出し要求を受けてバッファのデータを読み出すときに、割り符コードとしての識別情報を用いてデータの読み出しが正常であるか否かを判定する。データの読み出しが正常であるか否かを判定するために使用されるデータの識別情報を、以下の実施例においては、マジックID(図中においてはMagic−IDと表記)と表記することとする。
図3は、データバッファ制御部44における動作を説明するための図である。データバッファ制御部44は、マジックID生成回路51を備え、キャッシュ装置3のデータをシステムバスに向けて送出するために、キャッシュ装置3から読み出したデータをバッファに書き込む処理およびバッファに格納されているデータを読み出してパケット生成器43に転送する処理を実行する。書き込み処理においては、読み出したデータにキャッシュ装置3によって予め付与されているECCとともに、更にマジックIDも付与してバッファに一時記憶させる。以下の説明では「マジックIDをデータに付与する」とは、マジックIDをデータと対応付けることを意味するものとする。
マジックID生成回路51においては、キャッシュから読み出したデータをデータバッファ制御部44において受信すると、そのデータに対して付与するマジックIDを生成すると共に読み出したデータにマジックIDを付与してバッファに格納する一方で、そのマジックIDおよびバッファの格納先を示すエントリ番号等の情報を、コマンドキュー41C、41Dに対して通知する。
エントリ番号およびマジックIDを通知されたコマンドキュー41C、41Dにおいては、上記の調停回路42を介して、パケット生成部43にそれらの情報を渡す。パケット生成部43は、調停回路42からの指示にしたがって、所定のタイミングでデータ読み出し要求をデータバッファ制御部44に対して送信するときに、エントリ番号やマジックIDもその要求に含めて渡す。データバッファ制御部44においては、エントリ番号が示すデータに付与されているマジックIDと、パケット生成部43から受信したデータ読み出し要求に含まれるマジックIDとを比較して、一致する場合には正常処理、すなわちバッファからデータを読み出す処理を実行する。一方、一致しない場合には、読み出しエラーとして異常を検出し、プロセッサコア2等に通知をする。
ここで、エラーの発生する原因について説明する。CPUチップ1は、データ送出を伴う命令を実行するに際し、その命令と命令に伴い送出されるデータとは、図3に示すデータバッファ制御部44のうち互いに異なるルートを経てシステムバスに送られる。すなわち、バッファに一時記憶したデータを読み出すパケット生成器43からの要求は、データバッファ制御部44におけるデータの処理状況とは関係なく調停回路42の調停処理に基づいてなされる。このため、例えばデータの格納先のエントリ番号と要求のエントリ番号が一致しない、データを送出するよりも先にデータバッファ制御部44においてバッファのデータを解放してしまう、あるいはバッファのデータを読み出す際に参照すべきデータと異なるデータを参照してしまう、といった問題が生じ得る。データ要求のマジックIDとバッファに格納されているマジックIDとを比較することにより、これらの問題が発生したことを検出する。以下、本実施形態に係るエラーの検出する方法について更に説明する。
図4は、マジックIDを用いてエラーを検出する方法を説明するための図である。図4は、CPUチップ1からデータを送出するときの、CPUチップ1を構成する各部において処理を実行するタイミングを示す。
まず、コマンドキュー41C(あるいはコマンドキュー41D)がデータバッファ制御部44に対して、キャッシュ装置3に格納されているデータをバッファに書き込むよう要求する。要求を受信したデータバッファ制御部44は、コマンドキュー41に対して応答(Ack)を返し、更にキャッシュ装置3に対し、要求に含まれる情報に基づいてデータを要求する。実施例においては、CPUチップ1から送出されるデータの1単位を64バイトとし、キャッシュ装置3から読み出すデータについては、送出されるデータの64バイトを8分割したデータ量、すなわち8バイトを1単位とする。ここでのバッファからキャッシュ装置3へのデータ要求も、8バイトごとにオフセット値を指定してデータ読み出しを求めるものである。8バイトごとキャッシュ装置3から読み出したデータは、順次バッファに書き込まれる。このとき、上記マジックIDをデータに付与した上で順次バッファに書き込んでいく。
バッファがキャッシュ装置3に対してデータを要求してからキャッシュ装置3がデータバッファ制御部44のバッファに対してデータの転送を開始するまでには所定の時間を要する。これに対し、データバッファ制御部44からAckの応答を受信したコマンドキュー41は、調停回路42に対して受信したマジックID等の読み出すべきデータを示す情報を渡し、調停回路42は、その情報をパケット生成器43に渡す。そして、調停回路42が指示するタイミングで、マジックID等の情報を用いてデータをデータバッファ制御部44に対してデータを要求する。すなわち、パケット生成器43は、キャッシュ装置3からデータバッファ制御部44へのデータの転送に要する待ち時間を認識することができず、データバッファ制御部44においてキャッシュ装置3からのデータを待っている間にパケット生成器43がデータバッファ制御部44に対してデータを要求することがある。
データバッファ制御部44においてデータをバッファに書き込むときに、そのデータに生成したマジックIDを付与する。これにより、データバッファ制御部44においては、まだバッファに格納されていないデータについての読み出し要求をパケット生成器43から受信した場合であっても、パケット生成器43が求めるデータとバッファに格納されているデータとが一致するか否かを、データに付与されたマジックIDを比較して判断することにより、読み出しエラーを検出することができる。データをバッファに書き込んだ後にパケット生成器43からデータ読み出しを要求された場合は、パケット生成器43からのデータ要求に含まれるマジックIDと、参照されるバッファのデータに付与されたマジックIDとが一致するので、通常のデータ送出処理が継続される。
図5は、データバッファ制御部44におけるデータの読み出し部の構成図である。データ読み出し部は、データバッファ部52、選択回路53および比較回路54を含む。
データバッファ部52は、上記の通り、キャッシュ装置3から読み出したデータをCPUチップ1の外部(システムバス)に送出するときに一時的に格納しておく仮記憶手段である。選択回路53は、パケット生成器43から入力された情報に基づいて、データバッファ部52に格納されているデータを読み出す。比較回路54は、選択回路53が読み出したデータに付与されたマジックIDと、パケット生成器43が読み出しを要求しているデータについてのマジックIDとを比較し、2つのマジックIDが互いに一致するときは、比較回路54は選択回路53に対してデータ転送を許可する許可通知を送信し、選択回路53は、読み出したデータをパケット生成器43に転送する。2つのマジックIDが互いに一致しないときは、エラーを上位に報告する。
なお、マジックIDについては、例えば通し番号を用いることとしてもよいし、データバッファ部52のアドレスおよびその一部を用いることとしてもよい。あるいは、擬似乱数を用いる、アドレス等の他の制御信号からハッシュ関数を用いて生成することとしてもよい。マジックIDとしていずれを用いることとしても、データバッファ部52に格納されている値とパケット生成器43から受信したデータ要求に含まれる値とを比較することにより上記のエラーを検出することが可能とされる。
また、実施例においては64バイトのデータを8バイトずつ分けて転送しているが、これらのデータ全てに共通するマジックIDを使用することとしてもよい。上記の通り、パケット生成器43からのデータ要求には、バッファのエントリ番号およびオフセットが含まれており、オフセットによって8バイトの各データを識別することができるためである。あるいは、8バイトから構成されるデータごとに異なるマジックIDを生成し、オフセットとマジックIDとの間の矛盾を検出できるようにしてもよい。いずれを採用しても、データの書き込みのタイミングやバッファの解放のタイミング、あるいは実際に格納したバッファのエントリ番号とパケット生成器43に渡したエントリ番号とが食い違うこと等に起因するエラーを検出することができる。
図6Aは、データバッファ部52へのデータの書き込みを開始するまでの処理を示すフローチャートである。図6Aに示す処理は、プロセッサコア2から送信されたデータ送出を伴う命令を、コマンドキュー41において受信したことを契機として開始される。
まず、ステップS1で、データバッファ制御部44に対してデータの書き込み処理を実行するよう求める書き込み要求を、コマンドキュー41において発行する。ステップS2で、発行された書き込み要求を受信したデータバッファ制御部44は、バッファ(データバッファ部52)に空きがあるか否かを判定する。空きがない場合は、ステップS7に進み、データのバッファへの書き込みが出来ない旨を応答(Nack)でコマンドキュー41に返し、処理を終了する。
空きがある場合は、ステップS3に進み、データ要求を送信するためのキャッシュ装置3との間のバスがビジー状態であるか否かを判定する。ビジー状態と判定された場合は、ステップS7に進み、上記と同様にNack応答をコマンドキュー41に送信して処理を終了する。
ステップS3の判定においてバスがビジー状態ではないと判定されると、ステップS4に進む。ステップS4で、先にステップS1で発行した書き込み要求よりも優先度の高い書き込み要求がないかを判定する。より優先度の高い書き込み要求が存在する場合は、ステップS1において発行された書き込み要求にしたがってデータをバッファに書き込む処理については実行できないとして、上記と同様にステップS7でNack応答を返し、処理を終了する。
優先度の高い書き込み要求が存在しない場合は、ステップS5で、書き込み先のデータバッファの番号を選択し、マジックIDを生成する。ここで、書き込み先のデータバッファの番号とは、図3におけるエントリ番号に相当する。ステップS6で、エントリ番号およびマジックID等の情報をAck応答に含めてコマンドキュー41に送信し、書き込み処理を開始する。コマンドキュー41は、受信したマジックID等の情報を、調停回路42を介してパケット生成器43に通知する。
図6Bは、データバッファ部52へのデータの書き込み処理を示すフローチャートである。図6Bに示す処理は、図6Aの処理に続いて実行される。
まず、ステップS8で、データバッファ制御部44からキャッシュ装置3に対して、データ要求が送信される。実施例においては、上記の通り、64バイトをひとまとまりとするデータは更に8分割され、8バイトごとキャッシュ装置3から読み出される。ステップS9で、データバッファ制御部44において、キャッシュ装置3から読み出したデータを待ち、ステップS10で、8バイトに分割されたデータのうち何番目のデータであるかを示す変数kを初期化する。変数kは、64バイトのデータにおけるオフセットと対応付けられている。
ステップS11で、データバッファ制御部44において受信したk番目のデータとステップS5で生成したマジックIDとを、データバッファ部52のk番目の位置に格納する。k番目のデータをマジックIDとともにバッファに格納する処理が完了すると、ステップS12で、kを1加算し、変数kが8になるまでステップS11およびステップS12の処理を繰り返す。変数kが8になると、データの書き込み処理を終了する。
図7は、データバッファ部52に格納されているデータの読み出し処理を示すフローチャートである。図7に示す処理は、図6Aおよび図6Bに示すデータバッファ部52へのデータの書き込みが完了すると、調停回路42の調停処理に応じて所定のタイミングで開示される。
まず、ステップS21で、パケット生成器43からデータバッファ制御部44に対して、データの読み出し要求が送信される。読み出し要求には、読み出すべきデータが格納されているデータバッファ部52の番号すなわち上記のエントリ番号、分割されて格納されているデータの各々の位置を示すエントリ番号内のオフセット、およびマジックIDの情報を含む。ステップS22で、データバッファ制御部44は、受信した読み出し要求に含まれるエントリ番号およびオフセットに格納されている8バイトのデータおよびデータに付与されているマジックIDを読み出す。
ステップS23で、読み出し要求に含まれているマジックIDと、ステップS22で読み出したデータに付与されているマジックIDとを比較し、2つのマジックIDが互いに一致するか否かを判定する。一致する場合は、データの読み出しを正常と判定して、ステップS24に進み、読み出したデータをパケット生成器43に送信し、処理を終了する。パケット生成器43から受信した読み出し要求に含まれるマジックIDと読み出したデータに付与されているマジックIDとが一致しない場合は、ステップS25に進み、エラーを上位装置等に報告し、異常終了する。
以上説明したように、CPUチップ1においては、キャッシュ装置3に格納されているデータをシステムバスに送出するとき、プロセッサコア2から発行されたデータ送出のコマンドとそのコマンドにより送出されるデータとは、システムバス制御部4内においては別個のルートを通る。すなわち、データ送出の命令はコマンドキュー41を介してパケット生成器43に与えられる一方、命令にしたがって送出されるデータはデータバッファ制御部44を介してパケット生成器43に与えられる。コマンドキュー41から命令を受け取ったパケット生成器43は、調停回路42の調停処理に応じて所定のタイミングでデータをデータバッファ制御部44に対して要求するが、パケット生成器43においては、データバッファ制御部44における処理状況を認識することはできない。このため、パケット生成器43がデータバッファ制御部44にデータ要求を送信したときに、パケット生成器43からのデータ要求に含まれるバッファのアドレスには、データが更新されておらずに古いデータが格納されている場合や、すでにそのバッファが解放されている場合、あるいはデータ要求に含まれるアドレスが実際にデータの格納されているアドレスと異なる場合も考えられる。
しかし、これらの場合であっても、データバッファ制御部44においては、送出すべきデータをバッファに格納するようコマンドキュー41から要求されると、バッファにおいてデータを識別するためのマジックIDを生成し、キャッシュ装置3から読み出したデータをバッファに格納するときに生成したマジックIDを付与し、付与したマジックIDをデータと共にバッファに格納する。ここで、マジックIDを生成したときに、コマンドキュー41を介してパケット生成器43に対しても、送出すべきデータとマジックIDとを対応付けて通知する。データバッファ制御部44においては、パケット生成器43からのデータ読み出し要求を受け取ると、パケット生成器43からの要求に含まれるマジックIDとバッファに格納されているマジックIDとを比較する。
バッファから取り出したマジックIDとデータ要求に含まれるマジックIDとを比較した結果、一致する場合は従来と同様に対応するデータをバッファから取り出してパケット生成器43に転送する。2つのマジックIDが一致しない場合は、システムバス制御部4において発生したエラーと判断して、上位に報告する等のエラー処理を実行する。
マジックIDをバッファに格納するとともにコマンドキュー41を介してパケット生成器43にそのマジックIDを伝えているので、バッファへのデータの書き込みのタイミングとパケット生成器43からのデータ要求のタイミングが合わずに起こるエラーや、データバッファ制御部44内における制御エラー等を検出することが可能とされる。これらのエラーは、従来技術においてはCPUチップ1内で検出することはできず、ソフトウェア等で検出するよりなかった類のエラーであり、エラーの解析等に効果を有する。
上記のエラーの検出方法は、CPUチップ1以外への応用も可能である。以下、上記のエラーの検出方法を適用した他の例として、ネットワーク制御装置について説明する。
図8は、ネットワーク制御装置の構成図である。ネットワーク制御装置10は、データ受信部11、データ転送制御部12およびデータ送信部13を含んで構成される。図8に示すネットワーク制御装置10は、例えば通信システムにおいて利用され、ある装置から受信したデータを更に他の装置に対して転送する。
データ受信部11は、他の装置から送信されたデータを、データバス等を介して受信する。データ転送制御部12は、データバッファを含み、データ受信部11において受信したデータを更に他の装置に対して転送するときに、マジックIDを用いて、エラーがないかを判断して、データ転送処理やエラー発生時の処理を制御する。データ送信部13は、データ転送制御部12から転送されたデータを、データバスを介してネットワーク制御装置10の外部の他の装置に対して送信する。
図9は、ネットワーク制御装置10のデータ転送制御部12の構成を更に詳しく示した図である。データ転送制御部12は、制御コマンドキュー21、パケット生成器22およびデータバッファ23を含む。
制御コマンドキュー21は、自装置(ネットワーク制御装置10)から他の装置に対してデータを転送するためのコマンドを保持する。データバッファ23およびパケット生成器22の役割については、上記のCPUチップ1におけるデータバッファ部52およびパケット生成器43についてのそれと同様であるので、ここでは説明を割愛する。
既に説明した先の実施形態と同様に、本実施形態においても、データを転送するコマンドとコマンドにより転送されるデータとが別のルートを通る場合において、データバッファ23にデータを一時的に書き込む際にマジックIDを生成する。生成されたマジックIDは、データに付与されてバッファに書き込まれるとともに、そのコマンドを転送する制御コマンドキュー21に対してAck応答に含めて渡される。制御コマンドキュー21は、受け取ったマジックID等の情報をパケット生成器22に渡し、パケット生成器22は、データバッファ23のデータを読み出すときにそのマジックIDを用いてデータ要求する。
図8および図9に示すネットワーク制御装置10においても、他の装置に対して送信すべきデータについて、送信前に一度バッファに格納してから転送することから、上記のCPUチップ1の場合と同様に、マジックIDを用いてエラーを検出することが可能とされる。

Claims (4)

  1. 記憶装置から読出したデータを保持するデータバッファと、
    前記データバッファにデータを書込む書込み要求を保持するコマンドキューと、
    前記データバッファにデータを書込む際に、書込むデータを識別する識別情報を生成する識別情報生成部と、
    前記データバッファに書込んだデータを読出す読出し要求を出力するとともに、前記読出し要求により読出したデータを含んだパケットを生成するパケット生成部と、
    前記コマンドキューに保持された書込み要求に従って、前記記憶装置から読出したデータに、前記生成された識別情報を付与して前記データバッファに書込むとともに、前記付与した識別情報を前記コマンドキューに送信するバッファ制御部と、
    前記コマンドキューに送信した識別情報を前記パケット生成部を介して受信するとともに、前記パケット生成部が出力した読出し要求を受信した場合、前記受信した読出し要求に従って前記データバッファから読出したデータに付与された識別情報と、前記パケット生成部を介して受信した識別情報とを比較する比較部と、
    前記データバッファから読出したデータに付与された識別情報と、前記パケット生成部を介して受信した識別情報とが一致する場合、前記データバッファから読出したデータを、前記パケット生成部に出力する出力部を有することを特徴とする演算処理装置。
  2. 演算処理装置はさらに、
    前記データバッファから読出したデータに付与された識別情報と、前記パケット生成部を介して受信した識別情報とが一致しない場合、エラーを出力する報告部を有することを特徴とする請求項1記載の演算処理装置。
  3. 記憶装置から読出したデータを保持するデータバッファと、前記データバッファにデータを書込む書込み要求を保持するコマンドキューとを有する演算処理装置の制御方法において、
    前記演算処理装置が有する識別情報生成部が、前記データバッファにデータを書込む際に、書込むデータを識別する識別情報を生成し、
    前記演算処理装置が有するパケット生成部が、前記データバッファに書込んだデータを読出す読出し要求を出力するとともに、前記読出し要求により読出したデータを含んだパケットを生成し、
    前記演算処理装置が有するバッファ制御部が、前記コマンドキューに保持された書込み要求に従って、前記記憶装置から読出したデータに、前記生成された識別情報を付与して前記データバッファに書込むとともに、前記付与した識別情報を前記コマンドキューに送信し、
    前記コマンドキューに送信した識別情報を前記パケット生成部を介して受信するとともに、前記パケット生成部が出力した読出し要求を受信した場合、前記演算処理装置が有する比較部が、前記受信した読出し要求に従って前記データバッファから読出したデータに付与された識別情報と、前記パケット生成部を介して受信した識別情報とを比較し、
    前記演算処理装置が有する出力部が、前記データバッファから読出したデータに付与された識別情報と、前記パケット生成部を介して受信した識別情報とが一致する場合、前記データバッファから読出したデータを、前記パケット生成部に出力することを特徴とする演算処理装置の制御方法。
  4. 演算処理装置の制御方法はさらに、
    前記演算処理装置が有する報告部が、前記データバッファから読出したデータに付与された識別情報と、前記パケット生成部を介して受信した識別情報とが一致しない場合、エラーを出力することを特徴とする請求項3記載の演算処理装置の制御方法。
JP2008502571A 2006-02-28 2006-02-28 演算処理装置及び演算処理装置の制御方法 Expired - Fee Related JP4834722B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/303673 WO2007099584A1 (ja) 2006-02-28 2006-02-28 エラー検出装置

Publications (2)

Publication Number Publication Date
JPWO2007099584A1 JPWO2007099584A1 (ja) 2009-07-16
JP4834722B2 true JP4834722B2 (ja) 2011-12-14

Family

ID=38458707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008502571A Expired - Fee Related JP4834722B2 (ja) 2006-02-28 2006-02-28 演算処理装置及び演算処理装置の制御方法

Country Status (4)

Country Link
US (1) US8196028B2 (ja)
EP (1) EP1990733A4 (ja)
JP (1) JP4834722B2 (ja)
WO (1) WO2007099584A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176406B2 (en) * 2008-03-19 2012-05-08 International Business Machines Corporation Hard error detection
US8942543B1 (en) * 2010-10-06 2015-01-27 Verint Video Solutions Inc. Systems, methods, and software for improved video data recovery effectiveness
FR2994000B1 (fr) 2012-07-30 2015-06-05 Airbus Operations Sas Procede de surveillance de l'execution coordonnee de taches sequencees par une carte electronique comportant au moins deux processeurs synchronises sur une meme horloge
FR2994001B1 (fr) 2012-07-30 2015-05-29 Airbus Operations Sas Procede de surveillance de l'execution coordonnee de taches sequencees par une carte electronique comportant au moins deux processeurs synchronises sur deux horloges differentes
US9164792B2 (en) * 2014-01-06 2015-10-20 International Business Machines Corporation Executing a gather operation on a parallel computer that includes a plurality of compute nodes
US10706005B2 (en) * 2017-12-08 2020-07-07 Vmware, Inc. File system interface for remote direct memory access

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55105719A (en) * 1979-02-09 1980-08-13 Hitachi Ltd Buffer device
JPS61208134A (ja) * 1985-03-12 1986-09-16 Nec Corp 情報処理装置におけるエラ−検出方式
JPH1145213A (ja) * 1997-07-25 1999-02-16 Nec Corp Fifoメモリ監視方法及び回路
JPH11212759A (ja) * 1998-01-26 1999-08-06 Nec Ibaraki Ltd データバッファ制御異常検出方法および回路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5629950A (en) * 1992-04-24 1997-05-13 Digital Equipment Corporation Fault management scheme for a cache memory
US5488691A (en) * 1993-11-17 1996-01-30 International Business Machines Corporation Memory card, computer system and method of operation for differentiating the use of read-modify-write cycles in operating and initializaiton modes
US5630048A (en) * 1994-05-19 1997-05-13 La Joie; Leslie T. Diagnostic system for run-time monitoring of computer operations
US6009542A (en) * 1998-03-31 1999-12-28 Quantum Corporation Method for preventing transfer of data to corrupt addresses
EP1215577B1 (en) * 2000-08-21 2012-02-22 Texas Instruments Incorporated Fault management and recovery based on task-ID
DE10234933A1 (de) * 2002-07-31 2004-03-18 Advanced Micro Devices, Inc., Sunnyvale Pufferung von Non-Posted-Lesebefehlen und Antworten
US7457872B2 (en) * 2003-10-15 2008-11-25 Microsoft Corporation On-line service/application monitoring and reporting system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55105719A (en) * 1979-02-09 1980-08-13 Hitachi Ltd Buffer device
JPS61208134A (ja) * 1985-03-12 1986-09-16 Nec Corp 情報処理装置におけるエラ−検出方式
JPH1145213A (ja) * 1997-07-25 1999-02-16 Nec Corp Fifoメモリ監視方法及び回路
JPH11212759A (ja) * 1998-01-26 1999-08-06 Nec Ibaraki Ltd データバッファ制御異常検出方法および回路

Also Published As

Publication number Publication date
JPWO2007099584A1 (ja) 2009-07-16
EP1990733A1 (en) 2008-11-12
US8196028B2 (en) 2012-06-05
EP1990733A4 (en) 2009-12-02
WO2007099584A1 (ja) 2007-09-07
US20080320376A1 (en) 2008-12-25

Similar Documents

Publication Publication Date Title
US7631244B2 (en) Soft error correction method, memory control apparatus and memory system
JP4834722B2 (ja) 演算処理装置及び演算処理装置の制御方法
US7383377B2 (en) Method and apparatus for transferring data
JP5966243B2 (ja) ストレージ装置及びストレージ装置の制御方法
JP4894854B2 (ja) データ送信装置、データ送受信システム及びデータ送受信システムの制御方法
JP5381109B2 (ja) 通信装置及びその制御プログラム
US20060129714A1 (en) Method and apparatus for transferring data
US20100251018A1 (en) Memory access control device, memory access control method and memory access control program
JP5494028B2 (ja) スイッチ装置
US20070174722A1 (en) Input/output control method, computer product, and disk control apparatus
US7568121B2 (en) Recovery from failure in data storage systems
CN109358903A (zh) 数据访问设备和访问错误通知方法
US20090268727A1 (en) Early header CRC in data response packets with variable gap count
JP5093986B2 (ja) プロセッサ間通信方法及びプロセッサ間通信装置
US20230305987A1 (en) Communication control apparatus and communication method
JP4102769B2 (ja) 情報処理システム、その故障箇所特定方法、情報処理装置
WO2008062511A1 (fr) Système multiprocesseur
JPH0784897A (ja) 機器間のデータ転送に好適な情報処理システム
JP6217192B2 (ja) ストレージ制御装置、制御プログラムおよび制御方法
JP6107499B2 (ja) 通信制御装置及び画像形成装置
US20060140122A1 (en) Link retry per virtual channel
JP6163941B2 (ja) 制御装置及び画像形成装置
WO2012108023A1 (ja) 情報処理装置、情報処理システム及びデータ転送方法
JP2005277552A (ja) バスリトライ制御方式及びデータ通信装置
CN115904230A (zh) 一种数据校验方法、系统及装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110523

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: 20110920

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110926

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: 20140930

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees