JP6507470B2 - 情報処理装置、情報処理システム及び障害検出方法 - Google Patents

情報処理装置、情報処理システム及び障害検出方法 Download PDF

Info

Publication number
JP6507470B2
JP6507470B2 JP2014019455A JP2014019455A JP6507470B2 JP 6507470 B2 JP6507470 B2 JP 6507470B2 JP 2014019455 A JP2014019455 A JP 2014019455A JP 2014019455 A JP2014019455 A JP 2014019455A JP 6507470 B2 JP6507470 B2 JP 6507470B2
Authority
JP
Japan
Prior art keywords
data
unit
checksum
crc
packet
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.)
Active
Application number
JP2014019455A
Other languages
English (en)
Other versions
JP2015146554A (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
Priority to JP2014019455A priority Critical patent/JP6507470B2/ja
Priority to US14/566,758 priority patent/US20150220384A1/en
Publication of JP2015146554A publication Critical patent/JP2015146554A/ja
Application granted granted Critical
Publication of JP6507470B2 publication Critical patent/JP6507470B2/ja
Active 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
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)

Description

本発明は、情報処理装置、情報処理システム及び障害検出方法に関する。
装置内のデータ転送制御回路ではパリティやError Check and Collection(ECC)などの1つの処理単位のデータ内でチェックを行う水平型のチェックコードが使用されることが多い。以下では、1つの処理単位を「ワード」という。これに対して、シリアル伝送の装置間インタフェースやハードディスクなどの記憶媒体などでは、Cyclic Redundancy Check(CRC)などの複数のワードのデータに亘ってチェックを行う垂直型のチェックコードが使用されることが多い。
例えば、Input Output(IO)装置、チャネル装置、システム制御装置及び主記憶装置の間を順に送られるデータの場合について各箇所で行われるチェック方法を説明する。チャネル装置は、チャネル毎に、対応するIO装置とのデータ転送を行う装置である。システム制御装置は、チャネル装置から送られてきたデータをCentral Processing Unit(CPU)や主記憶装置に転送する装置である。
チャネル装置がI/Oからデータを受信した場合、CRCを用いたチェックが行われる。そして、チャネル装置からシステム制御装置へ送られるデータに対して、チャネル装置の中では、パリティやECCを用いたチェックが行われる。その後、システム制御装置がチャネル装置からデータを受信した場合、CRCを用いたチェック行われる。さらに、システム制御装置から主記憶装置へ送られるデータに対して、システム制御装置の中では、パリティやECCを用いたチェックが行われる。
このような情報処理装置内のデータ転送において、パリティ又はECCによる故障のチェックでは、故障個所によっては検出が困難なバイト単位又はワード単位のエラーが存在する。
例えば、パリティは、バイト内の値の合計により算出され、図12に示すパリティ901のように、バイト単位に付加されることでエラーチェックが実施される。図12は、各誤り検出符号のデータへの付加状態を示す図である。パリティでは、2ビット以上のエラーの検出は行えない。
また、ECCは、パリティを用いて求めた値を、図12に示すECC902のように、複数バイトを含む1ワードに対して付加されることでエラーチェックが実施される。ECCでは、1ビットが誤った値になった場合には誤りを訂正、また、同時に2ビット以上が誤った値になった場合には、訂正できない誤りが発生したことを検出する。
これに対して、CRCは、パケットに対して多項式を用いて算出され、図12示すCRC903のように、パケット単位に付加されることでエラーチェックが実施される。
また、チェックサムでは、複数のパケットにまたがって演算が行われて算出された、図12に示すチェックサム904のような値を用いて、エラーチェックが実施される。
CRCやチェックサムでは、バイト単位又はワード単位のエラー検出が行える。
例えば、前述したデータ転送では、チャネル装置及びシステム制御装置の中で、レジスタ及びRandom Access Memory(RAM)への格納及び読出しが行われる。各レジスタにおいて、入力されるセット信号及びリセット信号、又は、クロックの入力信号でエラーが発生した場合、バイト単位のエラーが発生してしまう。また、各レジスタからRAMへの書き込み及びRAMから各レジスタへの読み出しにおいて、RAMに対するライトイネーブル信号などにエラーが発生した場合、ワード単位のエラーが発生してしまう。このような場合、パリティやECCではエラーの検出が困難である。
このような、パリティやECCエラーで検出困難なエラーを検出するために、転送データにワード単位でパリティを付加し、さらにフレーム単位でチェックサムを付加する従来技術がある。
特開2000−36805号公報
しかしながら、チェックサムを付加した従来技術を用いた場合、チェックサムを付加したデータを転送することになるので、転送効率が低下してしまう。
開示の技術は、上記に鑑みてなされたものであって、高い転送効率で確実なエラー検出を行う情報処理装置、情報処理システム及び障害検出方法を提供することを目的とする。
本願の開示する情報処理装置、情報処理システム及び障害検出方法は、一つの態様において、主記憶装置と入出力装置間でデータ転送を行う情報処理装置である。第1転送部は、前記主記憶装置又は前記入出力装置の一方からデータを受信し所定の転送単位で第2転送部へ転送する。第2転送部は、前記第1転送部から受信した前記データを前記主記憶装置又は前記入出力装置の他方へ送出し、且つ前記第1転送部から受信した前記所定の転送単位のデータ毎に含まれる検証対象の値を全て加算する演算を行った、複数の演算結果の各々に対して、各演算結果の誤り訂正符号を付加して前記第1転送部にそれぞれ送信する。そして、前記第1転送部は、以下の各部を有する。第1計算部は、前記一方から受信したデータに含まれる検証対象の値を全て加算する演算を行うことで、受信したデータ全体に対する第1エラー情報を計算する。第2計算部は、前記第2転送部からそれぞれ送信された前記各演算結果に付加された前記誤り訂正符号を用いて前記各演算結果の送信のエラーチェックを行い、前記第2転送部がそれぞれ送信した前記各演算結果の取得が正常に行われた場合、前記各演算結果を全て加算する演算を行うことで、前記第2転送部が前記他方へ送出したデータ全体に対する第2エラー情報を計算する。エラー検出部は、前記第1計算部が算出した第1エラー情報と前記第2計算部が算出した第2エラー情報とを比較してエラーを検出する。
本願の開示する情報処理装置、情報処理システム及び障害検出方法の一つの態様によれば、高い転送効率で確実なエラー検出を行う情報処理装置、情報処理システム及び障害検出方法を提供することができるという効果を奏する。
図1は、情報処理装置のシステム構成図である。 図2は、システム制御装置及びチャネル装置のブロック図である。 図3は、システム制御装置及びチャネル装置のハードウェアの概略を表す構成図である。 図4は、IO装置から主記憶装置へ送られるデータの分割の一例を示す図である。 図5は、システム制御装置からチャネル装置へ送られるシステム制御装置側パケット単位チェックサムの分割の一例を示す図である。 図6は、データ転送を行う場合の各部の動作を表すタイミングチャートである。 図7は、チャネル装置がIO装置からデータを受信する動作のフローチャートである。 図8は、チャネル装置がシステム制御装置へデータを送信する動作のフローチャートである。 図9は、システム制御装置がチャネル装置からデータを受信する動作のフローチャートである。 図10は、システム制御装置がチャネル装置へチェックサムを送信する動作のフローチャートである。 図11は、チャネル装置がシステム制御装置からチェックサムを受信する動作のフローチャートである。 図12は、各誤り検出符号のデータへの付加状態を示す図である。
以下に、本願の開示する情報処理装置、情報処理システム及び障害検出方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム及び障害検出方法が限定されるものではない。
図1は、情報処理装置のシステム構成図である。本実施例に係る情報処理装置は、システム制御装置1、チャネル装置2及び3、スイッチ装置4、CPU5、主記憶装置6、並びに、IO装置7及び8を有する。
CPU5は、演算処理部であり、主記憶装置6に格納されているデータなどを用いて演算処理を行う。
主記憶装置6は、例えばメモリであり、CPU5が演算に用いるためのデータなどを格納する。
IO装置7及び8は、データを管理する装置であり、保持するデータの出力や、入力されたデータの保持を行う。例えば、IO装置7及び8は、ハードディスクなどのデータを格納する装置である。IO装置7は、チャネル装置2からの読み出しの指示を受けて、自己が保持するデータをチャネル装置2へ送信する。また、IO装置7は、チャネル装置2から出力されたデータを主記憶装置6に格納する。
チャネル装置2及び3は、データの伝送経路であるチャネル毎に配置される。チャネル装置2及び3は、自己が配置されたチャネルにおけるデータ転送を制御する。図1では、1例として2つのチャネルを有する情報処理装置について図示しているが、チャネルの数はいくつでもよい。そして、図1ではチャネル装置2及び3は、2つであるが、チャネル装置は、チャネルの数に合わせて配置される。チャネル装置2と3とは、配置されたチャネルに対して同様の機能を有するため、以下では、チャネル装置2を例に説明する。
例えば、チャネル装置2は、IO装置7から入力されたデータをスイッチ装置4及びシステム制御装置1を介して、主記憶装置6へ送信する。また、チャネル装置2は、主記憶装置6から読み出されたデータをシステム制御装置1及びスイッチ装置4を介して受信し、IO装置7へ送信する。このチャネル装置2が、「第1転送部」及び「第1データ転送装置」の一例にあたる。
スイッチ装置4は、チャネル装置2とシステム制御装置1との間のデータ転送経路の制御を行う。スイッチ装置4は、チャネル装置2から入力されたデータをシステム制御装置1へ出力する。また、スイッチ装置4は、システム制御装置1から入力されたデータをシステム制御装置1によって指定されたチャネル装置2へ出力する。
システム制御装置1は、CPU5からの指示を受けて、主記憶装置6からデータを読出しスイッチ装置4を介して、CPU5により指定されたチャネル装置3へデータを送信する。また、システム制御装置1は、CPU5からの指示を受けて、チャネル装置2へデータの読み込みを指示する。そして、スイッチ装置4は、スイッチ装置4を介してチャネル装置2からデータを受信し、主記憶装置6へ格納する。このシステム制御装置1が、「第2転送部」及び「第2データ転送装置」の一例にあたる。
ここで、データがIO装置7から読み出され主記憶装置6へ格納されるまでの全体的な流れをまとめて説明する。チャネル装置2は、CPU5から指定されたデータをIO装置7から読み出す。そして、チャネル装置2は、読み出したデータをスイッチ装置4を介してシステム制御装置1へ送信する。システム制御装置1は、スイッチ装置4を介してチャネル装置2が出力したデータを受信する。そして、システム制御装置1は、受信したデータをCPU5により指定された主記憶装置6のアドレスへ格納する。
次に、図2を参照して、システム制御装置1とスイッチ装置4との間のデータ転送について詳細に説明する。図2は、システム制御装置及びチャネル装置のブロック図である。スイッチ装置4は、システム制御装置1とスイッチ装置4との間のデータ転送を仲介するだけなので、図2では省略する。
チャネル装置2は、データ入力制御部20、CRCチェック部21、データ一時格納部22、データ出力制御部23及びCRC算出部24を有する。さらに、チャネル装置2は、チェックサム算出部25、チェックサム受信部26、CRCチェック部27、チェックサム計算部28及びエラー検出部29を有する。
IO装置7は、チャネル装置2に対して、データをパケット単位に分割して送信する。この際、IO装置7は、分割したパケット毎にCRCのチェックコードを付加する。
データ入力制御部20は、CRCのチェックコードが付加されたパケットをIO装置7から受信する。そして、データ入力制御部20は、受信したパケットをCRCチェック部21へ出力し、その後、チェック結果をCRCチェック部21から受信する。
データ入力制御部20は、ECCのチェックコードを各データに付加した後、データ一時格納部22へデータを出力する。同時に、データ入力制御部20は、データをチェックサム算出部25へ出力する。
CRCチェック部21は、IO装置7からチャネル装置2へ送信されたパケットの入力をデータ入力制御部20から受ける。そして、CRCチェック部21は、受信したパケットに含まれるデータを用いてCRCのチェックコードを算出する。その後、CRCチェック部21は、受信したパケットに付加されているCRCのチェックコードと算出したCRCのチェックコードとを比較して、一致していればエラーが発生していないと判定し、一致していなければエラーの発生を検出する。
そして、CRCチェック部21は、CRCのチェック結果をデータ入力制御部20へ出力する。
データ一時格納部22は、システム制御部1へデータを転送する際に、システム制御部1のデータ受信のタイミングに合わせてデータを出力するためにデータを一時保持する。データ一時格納部22は、例えば、メモリである。
データ一時格納部22は、ECCのチェックコードが付加されたデータをデータ入力制御部20から受信し格納する。そして、データ一時格納部22は、システム制御装置1のデータ受信タイミングに合わせて、データを順次出力する。
データ出力制御部23は、システム制御装置1へ送信するデータの入力をデータ一時格納部22から受ける。データ出力制御部23は、受信したデータとECCからエラー検出及び訂正を行う。そして、データ出力制御部23は、訂正不可能なエラーが検出されなければ、処理を進める。
データ出力制御部23は、受信したデータをパケットに分割する。ここで、このパケットの長さは、IO装置7が用いるパケットの長さとは関係なく、同じ長さでもよいし異なる長さでもよい。次に、データ出力制御部23は、生成したパケットをCRC算出部24へ出力する。その後、データ出力制御部23は、CRCのチェックコードをCRC算出部24から受信する。そして、データ出力制御部23は、CRCが付加されたパケットをシステム制御装置1へ出力する。
データ出力制御部23がシステム制御装置1へデータを送信する際のパケットの最大長が、「所定の転送単位」の一例にあたる。
CRC算出部24は、システム制御部1へ送信するパケットをデータ出力制御部23から受信する。そして、CRC算出部24は、各パケットに含まれるデータの値を基にCRCのチェックコードを算出する。その後、CRC算出部24は、算出したCRCのチェックコードをデータ出力制御部23へ出力する。
チェックサム算出部25は、IO装置7から入力されたデータをデータ入力制御部20から受信する。チェックサム算出部25は、受信したデータのデータ全体のチェックサムを算出する。ここで、データ全体とは、IO装置7がデータ転送を開始して最初のパケットを送信してから、チャネルがデータ転送終了条件を満たすまでに送信された全てのデータを指す。チャネルがデータ転送終了を満たす条件とは、例えば、チャネル装置2によるデータ転送の終了通知の受信である。以下では、チェックサム算出部25が算出したチェックサムを「チャネル装置側チェックサム」という。
そして、チェックサム算出部25は、算出したチャネル装置側チェックサムをエラー検出部29へ出力する。このチェックサム算出部25が、「第1計算部」の一例にあたる。また、チャネル装置側チェックサムが、「第1エラー情報」の一例にあたる。
チェックサム受信部26は、システム制御装置1から主記憶装置6へ送信されるパケット毎に計算されたチェックサムを含むパケットを、後述するシステム制御装置1のチェックサム送信部15から受信する。以下では、システム制御装置1から主記憶装置6へ送信されるパケット毎に計算されたチェックサムを、「システム制御装置側パケット単位チェックサム」という。そして、チェックサム受信部26は、受信したパケットをCRCチェック部27へ出力する。その後、チェックサム受信部26は、CRCチェック部27からCRCのチェック結果を受信する。
CRCのチェック結果でエラーが検出されていない場合、チェックサム受信部26は、システム制御装置側パケット単位チェックサムをチェックサム計算部28へ出力する。
CRCチェック部27は、システム制御装置側パケット単位チェックサムを含むパケットの入力をチェックサム受信部26から受ける。そして、CRCチェック部27は、受信したパケットに含まれるデータを用いてCRCのチェックコードを算出する。その後、CRCチェック部27は、受信したパケットに付加されているCRCのチェックコードと算出したCRCのチェックコードとを比較して、一致していればエラーが発生していないと判定し、一致していなければエラーの発生を検出する。
そして、CRCチェック部27は、CRCのチェック結果をチェックサム受信部26へ出力する。
チェックサム計算部28は、システム制御装置側パケット単位チェックサムの入力をチェックサム受信部26から受信する。チェックサム計算部28は、データ全体に対応する全パケットの各チェックサムの受信が完了するまで待機する。そして、チェックサム受信部26は、全てのシステム制御装置側パケット単位チェックサムを用いて演算を行い、データ全体のチェックサムを算出する。
ここで、このチェックサム計算部28が算出したデータ全体のチェックサムは、システム制御装置1が主記憶装置6へ出力したデータ全体のチェックサムにあたる。以下では、チェックサム計算部28が算出したチェックサムを「システム制御装置側チェックサム」という。
その後、チェックサム計算部28は、算出したシステム制御装置側チェックサムをエラー検出部29へ出力する。このチェックサム計算部28が、「第2計算部」の一例にあたる。また、システム制御装置側チェックサムが、「第2エラー情報」の一例にあたる。
エラー検出部29は、チャネル装置側チェックサムの入力をチェックサム算出部25から受ける。また、エラー検出部29は、システム制御装置側チェックサムの入力をチェックサム計算部28から受ける。そして、エラー検出部29は、チャネル装置側チェックサムとシステム制御装置側チェックサムとを比較する。
ここで、チャネル装置側チェックサムは、チャネル装置2がIO装置7から受信したデータ全体のチェックサムである。また、システム制御装置側チェックサムは、チャネル装置2がIO装置7から受信したデータに対応する、システム制御装置1が主記憶装置6へ出力したデータ全体のチェックサムである。チャネル装置2がIO装置7から受信し、システム制御装置1が主記憶装置6へ出力するまでにエラーが発生していなければ、チャネル装置側チェックサムとシステム制御装置側チェックサムとは一致するはずである。
そこで、エラー検出部29は、チャネル装置側チェックサムとシステム制御装置側チェックサとが一致しない場合にエラーを検出する。エラー検出部29は、エラーを検出した場合、モニタなどに表示させるなどして情報処理装置の操作者にエラーの発生を通知する。ただし、図2では、操作者へのエラーの通知については図示していない。
ここで、チャネル装置2におけるデータ転送経路には、図示していないが実際にはレジスタが配置され、各レジスタにおいて、パリティ又はECCのチェックコードを用いたエラーのチェックが行われる。
次に、システム制御装置1について説明する。システム制御装置1は、データ入力制御部10、CRCチェック部11、データ一時格納部12、データ出力制御部13、チェックサム算出部14、チェックサム送信部15及びCRC算出部16を有する。
データ入力制御部10は、CRCのチェックコードが付加されたパケットをチャネル装置2のデータ出力制御部23から受信する。そして、データ入力制御部10は、受信したパケットをCRCチェック部11へ出力し、その後、チェック結果をCRCチェック部11から受信する。
CRCのチェックによりエラーが検出されなければ、データ入力制御部10は、ECCのチェックコードを各データに付加した後、データ一時格納部12へデータを出力する。
CRCチェック部11は、データ出力制御部23からデータ入力制御部10へ送信されたパケットの入力をデータ入力制御部10から受ける。そして、CRCチェック部11は、受信したパケットに含まれるデータを用いてCRCのチェックコードを算出する。その後、CRCチェック部11は、受信したパケットに付加されているCRCのチェックコードと算出したCRCのチェックコードとを比較して、一致していればエラーが発生していないと判定し、一致していなければエラーの発生を検出する。
そして、CRCチェック部11は、CRCのチェック結果をデータ入力制御部10へ出力する。
データ一時格納部12は、主記憶装置6へデータ転送する際に、主記憶装置6のデータ受信のタイミングに合わせてデータを出力するためにデータを一時保持する。データ一時格納部12は、例えば、First In, First Out(FIFO)バッファである。
データ一時格納部12は、ECCのチェックコードが付加されたデータをデータ入力制御部10から受信し格納する。そして、データ一時格納部12は、主記憶装置6のデータ受信タイミングに合わせて、データを順次出力する。
データ出力制御部13は、主記憶装置6へ送信するデータの入力をデータ一時格納部12から受ける。データ出力制御部13は、受信したデータとECCからエラー検出及び訂正を行う。そして、データ出力制御部13は、訂正不可能なエラーが検出されなければ、処理を進める。
データ出力制御部13は、受信したデータをCPU5から受信したメモリへのアクセス制御情報に合わせて、キャッシュラインサイズに分割する。
データ出力制御部13は、キャッシュラインサイズに分割したデータにECCを付加する。そして、データ出力制御部13は、ECCを付加したデータを主記憶装置6へ出力する。また、データ出力制御部13は、主記憶装置6へ出力したデータをチェックサム算出部14にも出力する。
チェックサム算出部14は、主記憶装置6へ出力されたデータの入力をデータ出力制御部13から受ける。また、チェックサム算出部14は、チャネル装置2から受信したパケット毎に含まれていたデータの情報をデータ入力制御部10から取得する。
チェックサム算出部14は、チャネル装置2から受信したパケット単位に、主記憶装置6へ出力されたデータのチェックサムを算出する。チェックサム算出部14が算出したチェックサムがシステム制御部側パケット単位チェックサムとなる。
そして、チェックサム算出部14は、算出したシステム制御部側パケット単位チェックサムをチェックサム送信部15へ出力する。このチェックサム算出部14が、「第3計算部」の一例にあたる。また、システム制御部側パケット単位チェックサムが、「所定の転送単位毎に対するエラー情報」の一例にあたる。
チェックサム送信部15は、システム制御部側パケット単位チェックサムの入力をチェックサム算出部14から受ける。そして、チェックサム送信部15は、受信したシステム制御部側パケット単位チェックサムをCRC算出部16へ出力する。その後、チェックサム送信部15は、CRCのチェックコードの入力をCRC算出部16から受ける。そして、チェックサム送信部15は、CRCのチェックコードを付加してシステム制御部側パケット単位チェックサムをチャネル装置2のチェックサム受信部26へ出力する。
CRC算出部16は、システム制御部1へ送信するシステム制御部側パケット単位チェックサムをチェックサム送信部15から受信する。そして、CRC算出部16は、各システム制御部側パケット単位チェックサムを基にCRCのチェックコードを算出する。その後、CRC算出部16は、算出したCRCのチェックコードをチェックサム送信部15へ出力する。
ここで、システム制御装置1におけるデータ転送経路には、図示していないが実際にはレジスタが配置され、各レジスタにおいて、パリティ又はECCのチェックコードを用いたエラーのチェックが行われる。
次に、図3を参照して、図2の各部が有するハードウェアについて説明する。図3は、システム制御装置及びチャネル装置のハードウェアの概略を表す構成図である。
まず、チャネル装置2側から説明する。データ入力制御部20は、IN201、Write Data Register(WDR)202及びWrite−ECC(W−ECC)203を有する。
IN201は、IO装置7からパケットを受信するレジスタである。IN201は、IO装置7から受信したパケットを、CRC−Calculator(CRC−C)211へ出力する。そして、CRC Input register(CRCI)212が保持するCRCのチェックコードと受信したパケットのCRCのチェックコードとが一致すると、IN201は、WDR202及びCheck Sum−Generator(CSM−G)251へ受信パケットに含まれるデータを出力する。
WDR202は、メモリ221へデータを書き込むためのデータ転送経路のレジスタである。WDR202は、データの入力をIN201から受ける。そして、WDR202は、受信したデータをW−ECC203へ出力する。
W−ECC203は、データの入力をWDR202から受ける。そして、W−ECC203は、受信したデータにECCのチェックコードを付加する。その後、W−ECC203は、ECCのチェックコードを付加したデータをメモリ221へ格納する。
CRCチェック部21は、CRC−C211及びCRCI212を有する。
CRC−C211は、パケットの入力をIN201から受ける。そして、CRC−C211は、受信したパケットに含まれるデータを用いてCRCのチェックコードを計算する。より詳しくは、CRC−C211は、パケットに含まれるデータを一つ取得し、そのデータのCRCのチェックコードを算出してCRCI212に格納する。次に、CRC−C211は、パケットに含まれる他のデータを取得し、CRCのチェックコードを算出する。そして、CRC−C211は、算出したCRCのチェックコードとCRCI212に格納されているCRCのチェックコードを用いて、前のデータと次のデータとを合わせたデータのCRCのチェックコードを算出する。CRC−C211は、このようなCRCのチェックコードの算出を繰り返して、パケットに含まれるワード単位のCRCのチェックコードを算出する。
CRCI212は、CRC−C211が算出したCRCのチェックコードを保持するレジスタである。
メモリ221は、データ一時格納部22に対応する。
データ出力制御部23は、Read−ECC(R−ECC)231、Read Data Register(RDR)232及びOUT233を有する。
R−ECC231は、メモリ221からデータを読み出す。そして、R−ECC231は、読み出したデータに付加されているECCのチェックコードを取得してECCのチェックを行う。エラーが検出されなければ、R−ECC231は、データをRDR232へ出力する。
RDR232は、メモリ221から読み出されたデータをシステム制御装置1へ転送するためのデータ転送経路のデータレジスタである。RDR232は、メモリ221から読み出されたデータの入力をR−ECC231から受ける。そして、RDR232は、受信したデータをCRC−C241及びOUT233へ出力する。
OUT233は、データの入力をRDR232から受ける。そして、OUT233は、受信したデータをパケットに分割する。また、OUT233は、CRC Output Register(CRCO)242から送信するパケットに付加するCRCのチェックコードを取得する。そして、OUT233は、取得したCRCチェックコードをパケットに付加してシステム制御装置1へ出力する。
CRC算出部24は、CRC−C241及びCRCO242を有する。
CRC−C241は、RDR232から受信したデータを用いてCRCのチェックコードを算出し、CRCO242に格納する。そして、CRC−C241は、CRCO242に格納されているCRCのチェックコードと受信データから算出したチェックコードとを用いたCRCのチェックコードの算出を繰り返し、送信するパケットのワード単位のCRCのチェックコードを算出する。CRC−C241は、算出した送信するパケットのワード単位のCRCのチェックコードをCRCO242に格納する。
チェックサム算出部25は、CSM−G251及びCheck Sum Register(CSMR)252を有する。
CSM−G251は、IN201から受信したデータ及びCSMR252に格納されている既に算出したチェックサムを用いてチェックサムを算出することを繰り返して、チャネル装置側チェックサムを算出する。CSM−G251は、算出したチャネル装置側チェックサムをCSMR252に格納する。
CSMR252は、CSM−G251によるチェックサムの計算結果を保持するレジスタである。
チェックサム受信部26は、IN261、Acknowledge−Receiver(ACK−R)262を有する。
IN261は、例えばシステム制御部側パケット単位チェックサムを含むパケット及びACKの信号をシステム制御装置1から受信する。そして、IN261は、ACKはACK−R262へ出力する。また、IN261は、システム制御部側パケット単位チェックサムを含むパケットをCRC−C271へ出力する。そして、IN261は、CRC−C271に格納されているCRCのチェックコードと受信したパケットのCRCのチェックコードとを比較しエラーの検出を行う。エラーが検出されなければ、IN261は、システム制御部側パケット単位チェックサムをCSM−G281へ出力する。
ACK−R262は、IN261からACKを受信すると、CRCI272を初期化する。
CRCチェック部27は、CRC−C271及びCRCI272を有する。
CRC−C271は、IN261から受信したパケットに含まれるデータ及びCRCI272に格納されている既に算出したCRCのチェックコードを用いてCRCのチェックコードを算出することを繰り返す。これにより、CRC−C271は、パケットに含まれるワード単位のCRCのチェックコードを算出する。CRC−C271は、算出したパケットに含まれるワード単位のCRCのチェックコードをCRCI272に格納する。
CRCI272は、CRC−C271によるCRCのチェックコードの計算結果を保持するレジスタである。
チェックサム計算部28は、CSM−G281及びCSMR282を有する。
CSM−G281は、IN261から受信したシステム制御装置側パケット単位チェックサム及びCSMR282に格納されている既に算出したチェックサムを用いてチェックサムを算出することを繰り返して、システム制御装置側チェックサムを算出する。CSM−G281は、算出したシステム制御装置側チェックサムをCSMR282に格納する。
CSMR282は、CSM−G281によるチェックサムの計算結果を保持するレジスタである。
コンパレータ(Comparator:C)291は、エラー検出部29にあたる。コンパレータ291は、チャネル装置側チェックサムをCSMR252から取得する。また、コンパレータ291は、システム制御装置側チェックサムをCSMR282から取得する。そして、コンパレータ291は、チャネル装置側チェックサムとシステム制御装置側チェックサムとを比較して、エラーの検出を行う。
データ入力制御部10は、IN101、WDR102及びW−ECC103を有する。
IN101は、チャネル装置2からパケットを受信するレジスタである。IN101は、OUT233から受信したパケットを、CRC−C111へ出力する。そしてCRCI112が保持するCRCのチェックコードと受信したパケットのCRCのチェックコードとが一致すると、IN101は、WDR102へ受信パケットに含まれるデータを出力する。
WDR102は、FIFOバッファ121へデータを書き込むためのデータ転送経路のレジスタである。WDR102は、データの入力をIN101から受ける。そして、WDR102は、受信したデータをW−ECC103へ出力する。
W−ECC103は、データの入力をWDR102から受ける。そして、W−ECC103は、受信したデータにECCのチェックコードを付加する。その後、W−ECC103は、ECCのチェックコードを付加したデータをFIFOバッファ121へ格納する。
CRCチェック部11は、CRC−C111及びCRCI112を有する。
CRC−C111は、IN101から受信したパケットに含まれるデータ及びCRCI112に格納されている既に算出したCRCのチェックコードを用いてCRCのチェックコードを算出することを繰り返す。これにより、CRC−C111は、パケットに含まれるワード単位のCRCのチェックコードを算出する。CRC−C111は、算出したパケットに含まれるワード単位のCRCのチェックコードをCRCI112に格納する。
CRCI112は、CRC−C111によるCRCのチェックコードの計算結果を保持するレジスタである。
FIFOバッファ121は、データ一時格納部12に対応する。
データ出力制御部13は、R−ECC131、RDR132及びOUT133を有する。
R−ECC131は、FIFOバッファ121からデータを読み出す。そして、R−ECC131は、読み出したデータに付加されているECCのチェックコードを取得してECCのチェックを行う。エラーが検出されなければ、R−ECC131は、データをRDR132へ出力する。
RDR132は、FIFOバッファ121から読み出されたデータを主記憶装置6へ転送するためのデータ転送経路のデータレジスタである。RDR132は、FIFOバッファ121から読み出されたデータの入力をR−ECC131から受ける。そして、RDR132は、受信したデータをOUT133及びCSM−G141へ出力する。
OUT133は、データの入力をRDR132から受ける。そして、OUT133は、受信したデータをキャッシュラインサイズに分割する。そして、OUT133は、分割したデータにECCのチェックコードを付加して主記憶装置6へ出力する。
チェックサム算出部14は、CSM−G141及びCSMR142を有する。
CSM−G141は、RDR132から受信したデータ及びCSMR142に格納されている既に算出したチェックサムを用いてチェックサムを算出することを繰り返し、システム制御装置側パケット単位チェックサムを算出する。CSM−G141は、算出したシステム制御装置側パケット単位チェックサムをCSMR142に格納する。
CSMR142は、CSM−G141によるチェックサムの計算結果を保持するレジスタである。
チェックサム送信部15は、ACK−Generator(ACK−G)151及びOUT152を有する。
ACK−G151は、チャネル装置2が送信した1パケット分のチェックサムの算出が終わり、システム制御装置側パケット単位チェックサムがCSMR142に格納されると、ACKの返信指示をOUT152へ送信する。ACK−151は、チャネル装置2から送信された全てのデータに対応するシステム制御装置側パケット単位チェックサムの算出が終わるまで、システム制御装置側パケット単位チェックサムが格納される度に返信指示の通知を行う。
OUT152は、ACK−G151からACKの返信指示の通知を受信すると、ACKであるパケットヘッダ部分をIN261へ出力する。
続いて、OUT152は、システム制御装置側パケット単位チェックサムをCSMR142から取得する。また、OUT152は、システム制御装置側パケット単位チェックサムを含むパケットに付加するCRCのチェックコードをCRCO162から取得する。そして、OUT152は、システム制御装置側パケット単位チェックサムを含むパケットにCRCのチェックコードを付加してIN261へ送信する。
CRC算出部16は、CRC−C161及びCRCO162を有する。
CRC−C161は、ACK−G151からACKの返信指示が送信されると、システム制御装置側パケット単位チェックサムをCSMR142から取得する。そして、CRC−C161は、取得したシステム制御装置側パケット単位チェックサムを用いてシステム制御装置側パケット単位チェックサムのCRCチェックコードを算出する。そして、CRC−C161は、算出したシステム制御装置側パケット単位チェックサムのCRCのチェックコードをCRCO162に格納する。
CRCO162は、CRC−C161によるCRCのチェックサムの計算結果を保持するレジスタである。
次に、Data#1,#2,#3−1,#3−2及び#4が、IO装置7から主記憶装置6へ転送される場合を例に各部の処理及び転送されるデータの状態を具体的に説明する。まずは、図4及び5を用いて、この場合のデータの分割の状態について説明する。図4は、IO装置から主記憶装置へ送られるデータの分割の一例を示す図である。図5は、システム制御装置からチャネル装置へ送られるシステム制御装置側パケット単位チェックサムの分割の一例を示す図である。
図4の状態301は、Data#1〜#4がIO装置7に格納された状態を表す。IO装置7に格納されている状態では、Data#1〜4は、1つの処理単位のデータ群であり、まとめて1つのCRCのチェックコードであるCRC#0が付加されている。すなわち、Data#1〜#4が、このデータ送信におけるデータ全体である。
状態302は、Data#1〜#4がIO装置7からチャネル装置2に送信される状態を表す。IO装置7は、データをパケットに分割し、Data#1及び#2を含むパケット及びData#3−1,#3−2及び#4を含むパケットを生成する。そして、IO装置7は、Data#1及び#2を含むパケットにCRC#1というCRCのチェックコードを付加してチャネル装置2へ出力する。また、IO装置7は、Data#3−1,#3−2及び#4を含むパケットにCRC#2というCRCのチェックコードを付加してチャネル装置2へ出力する。
状態303は、Data#1〜#4がチャネル装置2からシステム制御装置1に送信される状態を表す。チャネル装置2は、データをチャネル装置2とシステム制御装置1との間で送受信を行うためのパケットに分割する。この場合、チャネル装置2は、Data#1,#2及び#3−1を含むパケット及びData#3−2及び#4を含むパケットを生成する。そして、チャネル装置2は、Data#1,#2及び#3−1を含むパケットにCRC#3というCRCのチェックコードを付加してシステム制御装置1へ出力する。また、チャネル装置2は、Data#3−2及び#4を含むパケットにCRC#4というCRCのチェックコードを付加してシステム制御装置1へ出力する。
状態304は、Data#1〜#4がシステム制御装置1から主記憶装置6に送信される状態を表す。システム制御装置1は、データをキャッシュラインサイズに分割する。この場合、システム制御装置1は、Data#1〜#4をそれぞれバラバラにする。そして、システム制御装置1は、バラバラにしたData#1〜#4のそれぞれを主記憶装置6へ出力する。
状態305は、Data#1〜#4が主記憶装置6に格納された状態を表す。Data#1〜#4は、それぞれキャッシュライン毎に分割されて主記憶装置6に格納される。
図5の状態306は、Data#1〜#4が主記憶装置6に格納された状態を表す。この状態は図4の状態305と同じである。
状態307は、システム制御装置1において算出されるシステム制御装置側パケット単位チェックサムを表す。ここで、実際には、システム制御装置1は、主記憶装置6へ送信したデータと同じデータを自装置内で用いてチェックサムを算出する。ただし、図5では、主記憶装置6に格納されたデータのいずれに対応するチェックサムかが分かり易いように、主記憶装置6のデータとチェックサムとを対応させる矢印を付加している。システム制御装置1は、チャネル装置2が送信したパケットと同じパケットの1パケット分のデータに対してチェックサムを算出する。ここでは、システム制御装置1は、Data#1,#2及び#3−1を含むパケットのシステム制御装置側パケット単位チェックサムとしてチェックサム#1を算出する。また、システム制御装置1は、Data#3−2及び#4を含むパケットのシステム制御装置側パケット単位チェックサムとしてチェックサム#2を算出する。
状態308は、システム制御装置側パケット単位チェックサムがシステム制御装置1から主記憶装置6に送信される状態を表す。システム制御装置1は、チェックサム#1から算出したCRCのチェックコードであるCRC#3をチェックサム#1に付加して、チャネル装置2へ送信する。また、システム制御装置1は、チェックサム#2から算出したCRCのチェックコードであるCRC#4をチェックサム#2に付加して、チャネル装置2へ送信する。
次に、図6を参照して、以上で説明したデータ転送が行われる場合の、各部の一連の動作をまとめて説明する。図6は、データ転送を行う場合の各部の動作を表すタイミングチャートである。図6において、点線で囲われた箱は計算結果を表す。さらに、破線で囲われた箱は、各部が行う処理以外の経路上で行われるエラー検出処理を表す。そして、図6では、左端に示した各部の動作及び転送されるデータの状態を表す。
IO装置7は、チャネル装置2へパケット401及び402を送信してデータ転送を行う(ステップS1)。IN201は、パケット401、すなわちData#1,#2及びCRC#1を受信する。その後、IN201は、パケット402、すなわちData#3−1,#3−2,#4及びCRC#2を受信する。
CRC−C211及びCRCI212は、パケット401に含まれるData#1及び#2からCRC計算を行いCRCのチェックコードを算出する(ステップS2)。その後、CRC−C211及びCRC212は、CRCチェック、すなわちCRCによるエラー検出を行う(ステップS3)。次に、CRC−C211及びCRC212は、パケット402に含まれるData#3−1,#3−2及び#4からCRC計算を行いCRCのチェックコードを算出する(ステップS4)。その後、CRC−C211及びCRC212は、CRCチェックを行う(ステップS5)。
WDR202及びW−ECC203により、Data#1及び#2がメモリ221へ書き込まれる(ステップS6)。次に、WDR202及びW−ECC203により、Data#3−1,#3−2及び#4がメモリ221へ書き込まれる(ステップS7)。
さらに、データ転送経路において、各データは、パリティ又はECCのチェックを受ける(ステップS8)。
また、CSM−G251は、Data#1及び#2を用いてチェックサムを計算する(ステップS9)。算出されたData#1及び#2のチェックサムは、CSMR252に格納される。さらに、CSM−G251は、Data#3−1,#3−2及び#4とCSMR252に格納されたData#1及び#2とを用いて、Data#1〜#4のチェックサムを算出する(ステップS10)。算出されたData#1〜#4のチェックサム、すなわちチャネル装置側チェックサムは、CSMR252に格納される。
R−ECC231及びRDR232は、Data#1及び#2をメモリ221から読み出す(ステップS11)。次に、R−ECC231及びRDR232は、Data#3−1,#3−2及び#4をメモリ221から読み出す(ステップS12)。
さらに、データ転送経路において、各データは、パリティ又はECCのチェックを受ける(ステップS13)。
CRC−C241は、チャネル装置2とシステム制御装置1との間のデータの授受において使用される固有のパケット長分のデータのCRC計算を行う。ここでは、CRC−C241は、最初のパケットのCRC計算として、Data#1,#2及び#3−1を含むパケットのCRC計算を行う(ステップS14)。そして、CRC−C241は、算出したCRCのチェックコードであるCRC#3をCRCO242に格納する。また、CRC−C241は、次のパケットのCRC計算として、Data#3−2及び#4を含むパケットのCRC計算を行う(ステップS15)。そして、CRC−C241は、算出したCRCのチェックコードであるCRC#4をCRCO242に格納する。
OUT233は、Data#1,#2及び#3−1にCRC#3を付加したパケット403をシステム制御装置1のIN101へ送信する。また、OUT233は、Data#3−2及び#4にCRC#4を付加したパケット404をシステム制御装置1のIN101へ送信する。これにより、チャネ装置2からシステム制御装置1へのデータ転送が行われる(ステップS16)。IN101は、パケット403、すなわちData#1,#2,#2−1及びCRC#3を受信する。その後、IN101は、パケット404、すなわちData#3−2,#4及びCRC#4を受信する。
CRC−C111及びCRCI112は、パケット403に含まれるData#1,#2及び#3−1からCRC計算を行いCRCのチェックコードを算出する(ステップS17)。その後、CRC−C111及びCRC112は、CRCチェックを行う(ステップS18)。次に、CRC−C111及びCRC112は、パケット404に含まれるData#3−2及び#4からCRC計算を行いCRCのチェックコードを算出する(ステップS19)。その後、CRC−C111及びCRC112は、CRCチェックを行う(ステップS20)。
WDR102及びW−ECC103により、Data#1,#2及び#3−1がFIFOバッファ121へ書き込まれる(ステップS21)。次に、WDR102及びW−ECC103により、Data#3−2及び#4がFIFOバッファ121へ書き込まれる(ステップS22)。
さらに、データ転送経路において、各データは、パリティ又はECCのチェックを受ける(ステップS23)。
R−ECC131及びRDR132は、Data#1〜#4をキャッシュラインサイズに合わせてFIFOバッファ121から読み出す(ステップS24)。
OUT133が、キャッシュラインサイズに分割されたData#1〜#4を主制御装置6へ送信することで、システム制御装置1から主記憶装置6へのデータ転送が行われる(ステップS25)。
CSM−G141は、RDR132からOUT133へ送信されたデータを取得する。そして、CSM−G141は、Data#1からData#1のチェックサムを求める(ステップS26)。そして、CSM−G141は、Data#1のチェックサムをCSMR142に格納する。次に、CSM−G141は、Data#2及びCSMR142に格納されたData#1のチェックサムを用いてData#1及び#2のチェックサムを求める(ステップS27)。そして、CSM−G141は、Data#1及び#2のチェックサムをCSMR142に格納する。次に、CSM−G141は、Data#3−1及びCSMR142に格納されたData#1及び#2のチェックサムを用いてData#1,#2及び#3−1のチェックサムであるチェックサム#1を求める(ステップS28)。そして、CSM−G141は、チェックサム#1をCSMR142に格納する。
CSM−G141は、Data#3−2からData#3−2のチェックサムを求める(ステップS29)。そして、CSM−G141は、Data#3−2のチェックサムをCSMR142に格納する。次に、CSM−G141は、Data#4及びCSMR142に格納されたData#3−2のチェックサムを用いてData#3−2及び#4のチェックサムであるチェックサム#2を求める(ステップS30)。そして、CSM−G141は、チェックサム#2をCSMR142に格納する。
CRC−C161は、チェックサム#1を用いてCRC計算を行う(ステップS31)。そして、CRC−C161は、算出したCRCのチェックコードであるCRC#5をCRCO162に格納する。次に、CRC−C161は、チェックサム#2を用いてCRC計算を行う(ステップS32)。そして、CRC−C161は、算出したCRCのチェックコードであるCRC#6をCRCO162に格納する。
OUT152は、チェックサム#1にCRC#5を付加したパケット405をチャネル装置2のIN261へ送信する。また、OUT152は、チェックサム#2にCRC#6を付加したパケット406をIN261へ送信する。これにより、システム制御装置1からチャネル装置2へのデータ転送が行われる(ステップS33)。IN261は、パケット405、すなわちチェックサム#1及びCRC#5を受信する。その後、IN261は、パケット406、すなわちチェックサム#2及びCRC#6を受信する。
CRC−C271及びCRCI272は、パケット405に含まれるチェックサム#1からCRC計算を行いCRCのチェックコードを算出する(ステップS34)。その後、CRC−C271及びCRC272は、CRCチェックを行う(ステップS35)。次に、CRC−C171及びCRC172は、パケット406に含まれるチェックサム#2からCRC計算を行いCRCのチェックコードを算出する(ステップS36)。その後、CRC−C271及びCRC272は、CRCチェックを行う(ステップS37)。
CSM−G281は、チェックサム#1及びチェックサム#2を用いてData#1〜#4の全体のチェックサム、すなわちシステム制御装置側チェックサムを求める(ステップS38)。
コンパレータ291は、システム制御装置側チェックサムとチャネル装置側チェックサムとを比較してエラー検出を行う(ステップS39)。
次に、図7を参照して、チャネル装置2がIO装置7からデータを受信する動作を説明する。図7は、チャネル装置がIO装置からデータを受信する動作のフローチャートである。
IO装置7からIN201へデータの入力が開始されると、データ入力制御部20は、IO装置7から受信したデータのチェックサム結果を保持するチェックサム算出部25が有するレジスタであるCSMR252を初期化する(ステップS101)。
次に、データ入力制御部20は、パケットのヘッダ部分(以下、「パケットヘッダ」という。)を受信したか否かを判定する(ステップS102)。パケットヘッダを受信していない場合(ステップS102:否定)、データ入力制御部20は、パケットヘッダを受信するまで待機する。
これに対して、パケットヘッダを受信した場合(ステップS102:肯定)、データ入力制御部20は、パケット単位にCRCのチェック結果を保持するCRCチェック部21が有するレジスタであるCRCI212を初期化する(ステップS103)。
そして、データ入力制御部20は、IO装置7からデータの入力を受ける(ステップS104)。
CRCチェック部21は、入力されたデータのCRC計算を行い、CRCのチェックコードを算出する(ステップS105)。
チェックサム算出部25は、入力されたデータのチェックサムを計算する(ステップS106)。
データ入力制御部20は、入力されたデータをデータ一時格納部22へ書き込む(ステップS107)。
データ入力制御部20は、パケットデータ最後尾を受信したか否かを判定する(ステップS108)。最後尾を受信していない場合(ステップS108:否定)、データ入力制御部20は、ステップS104へ戻る。すなわち、データ入力制御部20は、1パケット分のデータを受け取るまで、処理を繰り返す。
これに対して、パケットデータ最後尾を受信した場合(ステップS108:肯定)、データ入力制御部20は、受信したデータの中からCRCのチェックコードを取得する(ステップS109)。そして、データ入力制御部20は、CRCI212に格納されているパケットのCRCのチェックコードと取得したCRCのチェックコードとを比較し、CRCによるエラー検出を行う(ステップS110)。
データ入力制御部20は、データ転送終了条件を検出したか否かを判定する(ステップS111)。ここで、データ転送終了条件とは、例えば、IO装置7からのデータ転送終了の通知の受信などである。データ転送終了条件を検出していない場合(ステップS111:否定)、データ入力制御部20は、ステップS102へ戻る。
これに対して、データ転送終了条件を検出した場合(ステップS111:肯定)、データ入力制御部20は、データ受信処理を終了する。
次に、図8を参照して、チャネル装置2がシステム制御装置1へデータを送信する動作を説明する。図8は、チャネル装置がシステム制御装置へデータを送信する動作のフローチャートである。
データ出力制御部23は、データ転送が開始されると、データ一時格納部22を監視し、パケット生成が可能なデータ量がデータ一時格納部22にあるか否かを判定する(ステップS201)。パケット生成可能なデータ量がない場合(ステップS201:否定)、データ出力制御部23は、パケット生成が可能なデータ量がデータ一時格納部22に溜まるまで待機する。
これに対して、パケット生成可能なデータ量がある場合(ステップS201:肯定)、データ出力制御部23は、パケットヘッダをシステム制御装置1へ出力する(ステップS202)。
そして、データ出力制御部23は、パケット単位にCRCのチェックコードを保持するCRC算出部24のレジスタであるCRCO242を初期化する(ステップS203)。
次に、データ出力制御部23は、データ一時格納部22からデータを読み出す(ステップS204)。
そして、データ出力制御部23は、読み出したデータに対してECCのチェックを行い、パリティを付加してシステム制御装置1にデータを出力する(ステップS205)。例えば、データ出力制御部23は、図3のRDR232にパリティを付加したデータをセットし、タイミングを調整してOUT233へデータをセットしシステム制御装置1に転送する。
CRC算出部24は、データ出力制御部23が読み出したデータに対してCRC計算を行い、結果をCRCO242に格納する(ステップS206)。
データ出力制御部23は、パケットのデータ最後尾を送信したか否かを判定する(ステップS207)。パケットのデータ最後尾を送信していない場合(ステップS207:否定)、データ出力制御部23は、ステップS204へ戻る。すなわち、データ出力制御部23は、1パケット分のデータを送信するまで処理を繰り返す。
パケットのデータ最後尾を送信した場合(ステップS207:肯定)、データ出力制御部23は、CRC算出部24が算出したCRCのチェックコードをシステム制御装置1へ出力する(ステップS208)。
その後、データ出力制御部23は、データ転送終了条件を検出したか否かを判定する(ステップS209)。ここで、データ転送終了検出条件とは、例えば、最後のデータであることを示すフラグがついたデータの送信などである。データ転送終了条件を検出していない場合(ステップS209:否定)、データ出力制御部23は、ステップS201へ戻る。
これに対して、データ転送終了条件を検出した場合(ステップS209:肯定)、データ出力制御部23は、データ送信処理を終了する。
次に、図9を参照して、システム制御装置1がチャネル装置2からデータを受信する動作を説明する。図9は、システム制御装置がチャネル装置からデータを受信する動作のフローチャートである。
データ入力制御部10は、パケットヘッダを受信したか否かを判定する(ステップS301)。パケットヘッダを受信していない場合(ステップS301:否定)、データ入力制御部10は、パケットヘッダを受信するまで待機する。
これに対して、パケットヘッダを受信した場合(ステップS301:肯定)、データ入力制御部10は、パケット単位にCRCのチェック結果を保持するCRCチェック部11が有するレジスタであるCRCI112を初期化する(ステップS302)。
そして、データ入力制御部10は、チャネル装置2からデータの入力を受ける(ステップS303)。
CRCチェック部11は、入力されたデータのCRC計算を行い、CRCのチェックコードを算出する(ステップS304)。
データ入力制御部10は、入力されたデータをデータ一時格納部12へ書き込む(ステップS305)。
データ入力制御部10は、パケットデータ最後尾を受信したか否かを判定する(ステップS306)。最後尾を受信していない場合(ステップS306:否定)、データ入力制御部20は、ステップS303へ戻る。すなわち、データ入力制御部10は、1パケット分のデータを受け取るまで、処理を繰り返す。
これに対して、パケットデータ最後尾を受信した場合(ステップS306:肯定)、データ入力制御部10は、受信したデータの中からCRCのチェックコードを取得する(ステップS307)。そして、データ入力制御部10は、CRCI112に格納されているパケットのCRCのチェックコードと取得したCRCのチェックコードとを比較し、CRCによるエラー検出を行う(ステップS308)。
データ入力制御部10は、チャネル装置2とのパス閉塞条件を検出したか否かを判定する(ステップS309)。ここで、パス閉塞条件とは、例えば、チャネルのオフライン設定のチャネル装置2との接続切り離しなどである。パス閉塞条件を検出していない場合(ステップS309:否定)、データ入力制御部10は、ステップS301へ戻る。
これに対して、パス閉塞条件を検出した場合(ステップS309:肯定)、データ入力制御部10は、データ受信処理を終了する。
次に、図10を参照して、システム制御装置1がチャネル装置2へデータを送信する動作を説明する。図10は、システム制御装置がチャネル装置へデータを送信する動作のフローチャートである。
データ出力制御部13は、データ一時格納部12を監視し、メモリアクセスが可能なデータ量、すなわちチャネル装置2から受信した1パケット分のデータ量がデータ一時格納部12にあるか否かを判定する(ステップS401)。メモリアクセス可能なデータ量がない場合(ステップS401:否定)、データ出力制御部13は、メモリアクセスが可能なデータ量がデータ一時格納部12に溜まるまで待機する。
これに対して、メモリアクセス可能なデータ量がある場合(ステップS401:肯定)、データ出力制御部13は、次の処理を行う。データ出力制御部13は、データ一時格納部12から読み出したデータのチェックサム結果を保持するためのチェックサム算出部14が有するレジスタであるCSMR142を初期化する(ステップS402)。
さらに、データ出力制御部13は、データをキャッシュラインサイズに分割して主記憶装置6へ格納するための初期化を行う(ステップS403)。
次に、データ出力制御部13は、データ一時格納部12からデータを読み出す(ステップS404)。そして、データ出力制御部13は、読み出したデータに対してECCのチェックを行った後、再度ECCを付加して、主記憶装置6へデータを出力する(ステップS405)。例えば、データ出力制御部13は、図3のRDR132にECCを付加したデータをセットし、タイミングを調整してOUT133へデータをセットし主記憶装置6へ転送する。
チェックサム算出部14は、データ出力制御部13が主記憶装置6へ出力したデータのチェックサムを計算し、算出したチェックサムをCSMR142へセットする(ステップS406)。
データ出力制御部13は、1キャッシュラインのデータの出力が終了したか否かを判定する(ステップS407)。1キャッシュラインのデータの出力が終了していない場合(ステップS407:否定)、データ出力制御部13は、ステップS404へ戻る。
これに対して、1キャッシュラインのデータの出力が終了した場合(ステップS407:肯定)、データ出力制御部13は、1パケット分のデータの出力が終了したか否かを判定する(ステップS408)。1パケット分のデータの出力が終了していない場合(ステップS408:否定)、データ出力制御部13は、ステップS403へ戻る。
これに対して、1パケット分のデータの出力が終了した場合(ステップS408:肯定)、データ出力制御部13は、ACKである返信用のパケットヘッダをチャネル装置2へ出力する(ステップS409)。
チェックサム送信部15は、チェックサム算出部14が保持する1パケット分のチェックサムを取得しチャネル装置2へ出力する(ステップS410)。
CRC算出部16は、チェックサム送信部15が送信したデータに対してCRC計算を行い、結果をCRCO162に格納する(ステップS411)。
そして、チェックサム送信部15は、CRC算出部16が算出したCRCのチェックコードをチャネル装置2へ出力する(ステップS412)。
その後、データ出力制御部13は、主記憶アクセス閉塞条件を検出したか否かを判定する(ステップS413)。ここで、主記憶アクセス閉塞条件とは、例えば、構成変更による主記憶装置6とシステム制御装置1とのパス接続切り離しなどである。主記憶アクセス閉塞条件を検出していない場合(ステップS413:否定)、データ出力制御部13は、ステップS401へ戻る。
これに対して、主記憶アクセス閉塞条件を検出した場合(ステップS413:肯定)、データ出力制御部13は、データ送信処理を終了する。
次に、図11を参照して、チャネル装置2がシステム制御装置1からチェックサムを受信する動作を説明する。図11は、チャネル装置がシステム制御装置からチェックサムを受信する動作のフローチャートである。
チェックサム受信部26は、システム制御装置1から受信したチェックサムを加算するためのチェックサム計算部28が有するレジスタであるCSMR282を初期化する(ステップS501)。
チェックサム受信部26は、返信用のパケットヘッダを受信したか否かを判定する(ステップS502)。パケットヘッダを受信していない場合(ステップS502:否定)、チェックサム受信部26は、パケットヘッダを受信するまで待機する。
これに対して、パケットヘッダを受信した場合(ステップS502:肯定)、チェックサム受信部26は、パケット単位にCRCのチェックコードを保持するためのCRCチェック部27が有するレジスタであるCRCI272を初期化する(ステップS503)。
そして、チェックサム受信部26は、システム制御装置1からシステム制御装置側パケット単位チェックサムを受信する(ステップS504)。
CRCチェック部27は、入力されたシステム制御装置側パケット単位チェックサムのCRC計算を行い、算出したCRCのチェックコードをCRCI272に格納する(ステップS505)。
また、チェックサム受信部26は、システム制御装置側パケット単位チェックサムに付加されていたCRCのチェックコードを取得する(ステップS506)。
チェックサム受信部26は、CRCI172に格納されているパケットのCRCのチェックコードと取得したCRCのチェックコードとを比較し、CRCによるエラー検出を行う(ステップS507)。
次に、チェックサム受信部26は、受信したシステム制御装置側パケット単位チェックサムをチェックサム計算部28へ出力する。チェックサム計算部28は、受信したシステム制御装置側パケット単位チェックサムを用いてチェックサムの計算を行う(ステップS508)。具体的には、チェックサム計算部28は、システム制御装置側パケット単位チェックサムを加算していく。
チェックサム受信部26は、データ転送終了条件を検出したか否かを判定する(ステップS509)。ここで、データ転送終了条件とは、例えば、システム制御装置1からのデータ転送終了の通知の受信などである。データ転送終了条件を検出していない場合(ステップS509:否定)、チェックサム受信部26は、ステップS502へ戻る。
これに対して、データ転送終了条件を検出した場合(ステップS509:肯定)、チェックサム計算部28は、システム制御装置側チェックサムとチャネル装置側チェックサムを用いて比較によるエラー検出を行う(ステップS510)。
以上に説明したように本実施例に係る情報処理装置は、チャネル装置とシステム制御装置が中継するデータ転送において、チャネル装置が受信したデータとシステム制御装置が送出した信号とに対して、チェックサムを用いてエラーチェックを行う。これにより、チャネル装置とシステム制御装置との間でデータ転送を行う際のパリティやECCエラーで検出困難なエラーを検出することができる。さらに、チャネル装置側でチェックサムによるエラー検出を行うので、チェックサムを付加せずにデータの転送を行うことができ、転送効率の低下を回避することができる。すなわち、本実施例に係る情報処理装置は、高い転送効率で確実なエラー検出を行うことができる。
また、システム制御装置側でチェックを行う場合、データを格納するFIFOなどの格納部へ格納する以前にチェックを行うため、データ転送経路上でエラー検出及び保証できない個所が発生してしまう。この点、本実施例に係る情報処理装置は、チャネル装置側でチェックサムによるエラー検出を行うので、システム制御装置が外部へ送出するデータをエラー検出に用いることができ、データ転送経路上のすべての個所のエラー検出及び保証を行うことができる。
1 システム制御装置
2,3 チャネル装置
4 スイッチ装置
5 CPU
6 主記憶装置
7,8 IO装置
10 データ入力制御部
11 CRCチェック部
12 データ一時格納部
13 データ出力制御部
14 チェックサム算出部
15 チェックサム送信部
16 CRC算出部
20 データ入力制御部
21 CRCチェック部
22 データ一時格納部
23 データ出力制御部
24 CRC算出部
25 チェックサム算出部
26 チェックサム受信部
27 CRCチェック部
28 チェックサム計算部
29 エラー検出部

Claims (4)

  1. 主記憶装置と入出力装置間でデータ転送を行う情報処理装置であって、
    前記主記憶装置又は前記入出力装置の一方からデータを受信し所定の転送単位で第2転送部へ転送する第1転送部と、
    前記第1転送部から受信した前記データを前記主記憶装置又は前記入出力装置の他方へ送出し、且つ前記第1転送部から受信した前記所定の転送単位のデータ毎に含まれる検証対象の値を全て加算する演算を行った、複数の演算結果の各々に対して、各演算結果の誤り訂正符号を付加して前記第1転送部にそれぞれ送信する第2転送部とを備え、
    前記第1転送部は、
    前記一方から受信したデータに含まれる検証対象の値を全て加算する演算を行うことで、受信したデータ全体に対する第1エラー情報を計算する第1計算部と、
    前記第2転送部からそれぞれ送信された前記各演算結果に付加された前記誤り訂正符号を用いて前記各演算結果の送信のエラーチェックを行い、前記第2転送部がそれぞれ送信した前記各演算結果の取得が正常に行われた場合、前記各演算結果を全て加算する演算を行うことで、前記第2転送部が前記他方へ送出したデータ全体に対する第2エラー情報を計算する第2計算部と、
    前記第1エラー情報と前記第2エラー情報とを比較してエラーを検出するエラー検出部とを備えた
    ことを特徴とする情報処理装置。
  2. 前記第2転送部は、
    送出するデータの前記所定の転送単位毎に対するエラー情報を計算し、前記第1転送部へ送信する第3計算部をさらに備え、
    前記第2計算部は、前記第3計算部から受信した前記所定の転送単位毎に対するエラー情報を基に前記第2エラー情報を算出する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第1計算部は、データ送信が開始されて最初のパケットが送信されてからデータを送信するチャネルがデータ転送終了条件を満たすまでに前記第1転送部により受信された全てのデータに対する前記第1エラー情報を計算することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 第1データ転送装置と第2データ転送装置とを含み、主記憶装置と入出力装置間でデータ転送を行う情報処理システムであって、
    前記第1データ転送装置は、
    前記主記憶装置又は前記入出力装置の一方からデータを受信する受信部と、
    前記受信部が受信した前記データを所定の転送単位で前記第2データ転送装置へ送信する第1転送部と、
    前記受信部が前記一方から受信したデータに含まれる検証対象の値を全て加算する演算を行うことで、受信したデータ全体に対する第1エラー情報を計算する第1計算部と、
    前記第2データ転送装置からそれぞれ送信された演算結果に付加された誤り訂正符号を用いて前記演算結果の送信のエラーチェックを行い、前記第2データ転送装置がそれぞれ送信した前記各演算結果の取得が正常に行われた場合、前記各演算結果を全て加算する演算を行うことで、前記第2データ転送装置が前記主記憶装置又は前記入出力装置の他方へ送出したデータ全体に対する第2エラー情報を算出する第2計算部と、
    前記第1エラー情報と前記第2エラー情報とを比較してエラーを検出するエラー検出部とを備え、
    前記第2データ転送装置は、
    前記第1データ転送装置から受信したデータを前記他方へ送出し、且つ、前記第1データ転送装置から受信した前記所定の転送単位のデータ毎に含まれる検証対象の値を全て加算する演算を行った演算結果の各々に対して、各演算結果の誤り訂正符号を付加して前記第1データ転送装置にそれぞれ送信する第2転送部とを備えた
    ことを特徴とする情報処理システム。
JP2014019455A 2014-02-04 2014-02-04 情報処理装置、情報処理システム及び障害検出方法 Active JP6507470B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014019455A JP6507470B2 (ja) 2014-02-04 2014-02-04 情報処理装置、情報処理システム及び障害検出方法
US14/566,758 US20150220384A1 (en) 2014-02-04 2014-12-11 Information processing apparatus, information processing system, and failure detection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014019455A JP6507470B2 (ja) 2014-02-04 2014-02-04 情報処理装置、情報処理システム及び障害検出方法

Publications (2)

Publication Number Publication Date
JP2015146554A JP2015146554A (ja) 2015-08-13
JP6507470B2 true JP6507470B2 (ja) 2019-05-08

Family

ID=53754904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014019455A Active JP6507470B2 (ja) 2014-02-04 2014-02-04 情報処理装置、情報処理システム及び障害検出方法

Country Status (2)

Country Link
US (1) US20150220384A1 (ja)
JP (1) JP6507470B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180357121A1 (en) * 2017-06-09 2018-12-13 Qualcomm Incorporated Error correction calculation upon serial bus abort

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01248843A (ja) * 1988-03-30 1989-10-04 Toshiba Corp データ伝送方式
JPH02305037A (ja) * 1989-05-18 1990-12-18 Toshiba Corp データ伝送システムの異常検出方式
JPH0374946A (ja) * 1989-08-16 1991-03-29 Toshiba Corp データ通信における誤り制御方式
JP2002351689A (ja) * 2001-05-30 2002-12-06 Nec Corp データ転送システム
JP4391170B2 (ja) * 2003-09-05 2009-12-24 株式会社日立製作所 データ転送装置の制御方法、データ転送回路、及びディスクアレイ装置
JP2006134064A (ja) * 2004-11-05 2006-05-25 Hitachi Ltd 記憶メディアへの書込みエラーを検出する記憶制御装置及び方法
US7562285B2 (en) * 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
DE102012209408A1 (de) * 2012-06-04 2013-12-05 Siemens Aktiengesellschaft Sichere Übertragung einer Nachricht
JP5880608B2 (ja) * 2014-03-24 2016-03-09 日本電気株式会社 フォールトトレラントサーバ
JP2016014972A (ja) * 2014-07-01 2016-01-28 富士通株式会社 通信制御装置,ストレージ装置及び通信制御プログラム

Also Published As

Publication number Publication date
JP2015146554A (ja) 2015-08-13
US20150220384A1 (en) 2015-08-06

Similar Documents

Publication Publication Date Title
US8042023B2 (en) Memory system with cyclic redundancy check
US9389808B2 (en) Storage device and data processing method
US20110010557A1 (en) Control message signature for device control
TWI546814B (zh) 具有錯誤校正邏輯之記憶體裝置
CN114328316B (zh) Dma控制器、soc系统及基于dma控制器的数据搬运方法
KR102067040B1 (ko) 고장 방지 기능을 갖는 캐시 제어 장치 및 동작 방법
US10419035B2 (en) Use of multiple cyclic redundancy codes for optimized fail isolation
JP2007300619A (ja) 異なるデータ保護方法間で切換えにおいてデータの完全性を維持する方法、装置及びプログラム
JP2013137708A (ja) メモリコントローラ、データ記憶装置およびメモリ制御方法
CN105242879A (zh) 一种数据存储方法以及协议服务器
JP6507470B2 (ja) 情報処理装置、情報処理システム及び障害検出方法
JP4834722B2 (ja) 演算処理装置及び演算処理装置の制御方法
KR101999288B1 (ko) 메모리 데이터의 에러 보정 장치 및 방법
JP4723265B2 (ja) エラー検出訂正装置の制御方法、エラー検出訂正装置、情報処理システム、エラー検出訂正装置の制御プログラム、データ処理装置
KR20130114303A (ko) 메모리 컨트롤러의 동작 방법과 상기 메모리 컨트롤러를 포함하는 장치들
JP2007101457A (ja) 送信装置及び受信装置及び時刻通知方法及び時刻設定方法
US20160080111A1 (en) Receiver, transmitter and data transmission system
GB2587948A (en) Common high and low random bit error correction logic
JP6988092B2 (ja) 並列処理装置およびバーストエラー再現方法
CN107111563B (zh) 存储器装置系统
KR20160050961A (ko) 에러를 보정하는 메모리 장치 및 그의 에러 보정 방법
TWI594252B (zh) 用以監視記憶體之資料錯誤狀態之方法與裝置
US9319314B2 (en) Apparatus and method for using link-tail of link list to store data pattern which is indicative of end of link list and auxiliary information
JP6171461B2 (ja) データ処理装置及びデータ処理方法
KR100801884B1 (ko) 플래시 메모리, 플래시 메모리의 제어 방법 및 직렬인터페이스 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181022

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190318

R150 Certificate of patent or registration of utility model

Ref document number: 6507470

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150