図面 (/)

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

出願人 富士通株式会社
発明者 宮澤一良
出願日 2014年2月4日 (6年9ヶ月経過) 出願番号 2014-019455
公開日 2015年8月13日 (5年3ヶ月経過) 公開番号 2015-146554
状態 特許登録済
技術分野 エラーの検出、防止 入出力制御 エラー時の再試行 エラーの検出訂正 外部記憶装置との入出力
主要キーワード 接続切り離し チェックサム結果 付加状態 読出しスイッチ 転送単位毎 装置間インタフェース IO装置 データ受信タイミング
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2015年8月13日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (13)

課題

解決手段

チャネル装置2は、データを受信し所定の転送単位システム制御装置1へ転送する。システム制御装置1は、チャネル装置2から受信したデータを転送する。チャネル装置2は、受信したデータを基に、受信したデータ全体に対する第1エラー情報を計算するチェックサム算出部25と、システム制御装置1が送出するデータを基に、送出されたデータ全体に対する第2エラー情報を計算するチェックサム算出部25と、第1エラー情報と第2エラー情報とを比較してエラーを検出するエラー検出部29とを備える。

概要

背景

装置内のデータ転送制御回路ではパリティや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エラーで検出困難なエラーを検出するために、転送データにワード単位でパリティを付加し、さらにフレーム単位でチェックサムを付加する従来技術がある。

概要

高い転送効率で確実なエラー検出を行う情報処理装置情報処理システム及び障害検出方法を提供する。チャネル装置2は、データを受信し所定の転送単位でシステム制御装置1へ転送する。システム制御装置1は、チャネル装置2から受信したデータを転送する。チャネル装置2は、受信したデータを基に、受信したデータ全体に対する第1エラー情報を計算するチェックサム算出部25と、システム制御装置1が送出するデータを基に、送出されたデータ全体に対する第2エラー情報を計算するチェックサム算出部25と、第1エラー情報と第2エラー情報とを比較してエラーを検出するエラー検出部29とを備える。

目的

開示の技術は、上記に鑑みてなされたものであって、高い転送効率で確実なエラー検出を行う情報処理装置、情報処理システム及び障害検出方法を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

データを受信し所定の転送単位で第2転送部へ転送する第1転送部と、前記第1転送部から受信した前記データを送出する第2転送部とを備え、前記第1転送部は、受信したデータを基に、受信したデータ全体に対する第1エラー情報を計算する第1計算部と、前記第2転送部が送出するデータを基に、送出されたデータ全体に対する第2エラー情報を計算する第2計算部と、前記第1エラー情報と前記第2エラー情報とを比較してエラーを検出するエラー検出部とを備えたことを特徴とする情報処理装置

請求項2

前記第2転送部は、送出するデータの前記所定の転送単位毎に対するエラー情報を計算し、前記第1転送部へ送信する第3計算部をさらに備え、前記第2計算部は、前記第3計算部から受信した前記所定の転送単位毎に対するエラー情報を基に前記第2エラー情報を算出することを特徴とする請求項1に記載の情報処理装置。

請求項3

前記第1計算部は、受信したデータ全体のチェックサムを第1エラー情報として取得し、前記第2計算部は、前記第2転送部から送出されたデータ全体のチェックサムを前記第2エラー情報として取得することを特徴とする請求項1及び請求項2に記載の情報処理装置。

請求項4

第1データ転送装置と第2データ転送装置とを含む情報処理システムであって、前記第1データ転送装置は、データを受信する受信部と、前記受信部が受信したデータを所定の転送単位で前記第2データ転送装置へ送信する第1転送部と、前記受信部が受信したデータを基に、受信したデータ全体に対する第1エラー情報を計算する第1計算部と、前記第2データ転送装置が送出したデータ基に、送出されたデータ全体に対する第2エラー情報を算出する第2計算部と、前記第1エラー情報と前記第2エラー情報とを比較してエラーを検出するエラー検出部とを備え、前記第2データ転送装置は、前記第1データ転送装置から受信したデータを送出する第2転送部とを備えたことを特徴とする情報処理システム。

請求項5

第1データ転送装置に、データを受信させ、所定の転送単位で第2データ転送装置へ転送させ、前記第1データ転送装置に、前記データを基に、受信したデータ全体に対する第1エラー情報を計算させ、前記第2データ転送装置に、前記第1データ転送装置から受信したデータを送出させ、前記第1データ転送装置に、前記第2データ転送装置が送出するデータを基に、送出されたデータ全体に対する第2エラー情報を計算させ、前記第1データ転送装置に、前記第1エラー情報と前記第2エラー情報とを比較させてエラーを検出させることを特徴とする障害検出方法

技術分野

0001

本発明は、情報処理装置情報処理システム及び障害検出方法に関する。

背景技術

0002

装置内のデータ転送制御回路ではパリティやError Check and Collection(ECC)などの1つの処理単位のデータ内でチェックを行う水平型チェックコードが使用されることが多い。以下では、1つの処理単位を「ワード」という。これに対して、シリアル伝送装置間インタフェースハードディスクなどの記憶媒体などでは、Cyclic Redundancy Check(CRC)などの複数のワードのデータに亘ってチェックを行う垂直型のチェックコードが使用されることが多い。

0003

例えば、Input Output(IO)装置、チャネル装置システム制御装置及び主記憶装置の間を順に送られるデータの場合について各箇所で行われるチェック方法を説明する。チャネル装置は、チャネル毎に、対応するIO装置とのデータ転送を行う装置である。システム制御装置は、チャネル装置から送られてきたデータをCentral Processing Unit(CPU)や主記憶装置に転送する装置である。

0004

チャネル装置がI/Oからデータを受信した場合、CRCを用いたチェックが行われる。そして、チャネル装置からシステム制御装置へ送られるデータに対して、チャネル装置の中では、パリティやECCを用いたチェックが行われる。その後、システム制御装置がチャネル装置からデータを受信した場合、CRCを用いたチェック行われる。さらに、システム制御装置から主記憶装置へ送られるデータに対して、システム制御装置の中では、パリティやECCを用いたチェックが行われる。

0005

このような情報処理装置内のデータ転送において、パリティ又はECCによる故障のチェックでは、故障個所によっては検出が困難なバイト単位又はワード単位エラーが存在する。

0006

例えば、パリティは、バイト内の値の合計により算出され、図12に示すパリティ901のように、バイト単位に付加されることでエラーチェックが実施される。図12は、各誤り検出符号のデータへの付加状態を示す図である。パリティでは、2ビット以上のエラーの検出は行えない。

0007

また、ECCは、パリティを用いて求めた値を、図12に示すECC902のように、複数バイトを含む1ワードに対して付加されることでエラーチェックが実施される。ECCでは、1ビットが誤った値になった場合には誤り訂正、また、同時に2ビット以上が誤った値になった場合には、訂正できない誤りが発生したことを検出する。

0008

これに対して、CRCは、パケットに対して多項式を用いて算出され、図12示すCRC903のように、パケット単位に付加されることでエラーチェックが実施される。

0009

また、チェックサムでは、複数のパケットにまたがって演算が行われて算出された、図12に示すチェックサム904のような値を用いて、エラーチェックが実施される。

0010

CRCやチェックサムでは、バイト単位又はワード単位のエラー検出が行える。

0011

例えば、前述したデータ転送では、チャネル装置及びシステム制御装置の中で、レジスタ及びRandom Access Memory(RAM)への格納及び読出しが行われる。各レジスタにおいて、入力されるセット信号及びリセット信号、又は、クロック入力信号でエラーが発生した場合、バイト単位のエラーが発生してしまう。また、各レジスタからRAMへの書き込み及びRAMから各レジスタへの読み出しにおいて、RAMに対するライトイネーブル信号などにエラーが発生した場合、ワード単位のエラーが発生してしまう。このような場合、パリティやECCではエラーの検出が困難である。

0012

このような、パリティやECCエラーで検出困難なエラーを検出するために、転送データにワード単位でパリティを付加し、さらにフレーム単位でチェックサムを付加する従来技術がある。

先行技術

0013

特開2000−36805号公報

発明が解決しようとする課題

0014

しかしながら、チェックサムを付加した従来技術を用いた場合、チェックサムを付加したデータを転送することになるので、転送効率が低下してしまう。

0015

開示の技術は、上記に鑑みてなされたものであって、高い転送効率で確実なエラー検出を行う情報処理装置、情報処理システム及び障害検出方法を提供することを目的とする。

課題を解決するための手段

0016

本願の開示する情報処理装置、情報処理システム及び障害検出方法は、一つの態様において、第1転送部は、データを受信し所定の転送単位で第2転送部へ送信する。第2転送部は、前記第1転送部から受信した前記データを送出する。そして、前記第1転送部は、以下の各部を有する。第1計算部は、受信したデータを基に、受信したデータ全体に対する第1エラー情報を計算する。第2計算部は、前記第2転送部が送出するデータを基に、送出されたデータ全体に対する第2エラー情報を計算する。エラー検出部は、前記第1計算部が算出した第1エラー情報と前記第2計算部が算出した第2エラー情報とを比較してエラーを検出する。

発明の効果

0017

本願の開示する情報処理装置、情報処理システム及び障害検出方法の一つの態様によれば、高い転送効率で確実なエラー検出を行う情報処理装置、情報処理システム及び障害検出方法を提供することができるという効果を奏する。

図面の簡単な説明

0018

図1は、情報処理装置のシステム構成図である。
図2は、システム制御装置及びチャネル装置のブロック図である。
図3は、システム制御装置及びチャネル装置のハードウェアの概略を表す構成図である。
図4は、IO装置から主記憶装置へ送られるデータの分割の一例を示す図である。
図5は、システム制御装置からチャネル装置へ送られるシステム制御装置側パケット単位チェックサムの分割の一例を示す図である。
図6は、データ転送を行う場合の各部の動作を表すタイミングチャートである。
図7は、チャネル装置がIO装置からデータを受信する動作のフローチャートである。
図8は、チャネル装置がシステム制御装置へデータを送信する動作のフローチャートである。
図9は、システム制御装置がチャネル装置からデータを受信する動作のフローチャートである。
図10は、システム制御装置がチャネル装置へチェックサムを送信する動作のフローチャートである。
図11は、チャネル装置がシステム制御装置からチェックサムを受信する動作のフローチャートである。
図12は、各誤り検出符号のデータへの付加状態を示す図である。

0019

以下に、本願の開示する情報処理装置、情報処理システム及び障害検出方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム及び障害検出方法が限定されるものではない。

0020

図1は、情報処理装置のシステム構成図である。本実施例に係る情報処理装置は、システム制御装置1、チャネル装置2及び3、スイッチ装置4、CPU5、主記憶装置6、並びに、IO装置7及び8を有する。

0021

CPU5は、演算処理部であり、主記憶装置6に格納されているデータなどを用いて演算処理を行う。

0022

主記憶装置6は、例えばメモリであり、CPU5が演算に用いるためのデータなどを格納する。

0023

IO装置7及び8は、データを管理する装置であり、保持するデータの出力や、入力されたデータの保持を行う。例えば、IO装置7及び8は、ハードディスクなどのデータを格納する装置である。IO装置7は、チャネル装置2からの読み出しの指示を受けて、自己が保持するデータをチャネル装置2へ送信する。また、IO装置7は、チャネル装置2から出力されたデータを主記憶装置6に格納する。

0024

チャネル装置2及び3は、データの伝送経路であるチャネル毎に配置される。チャネル装置2及び3は、自己が配置されたチャネルにおけるデータ転送を制御する。図1では、1例として2つのチャネルを有する情報処理装置について図示しているが、チャネルの数はいくつでもよい。そして、図1ではチャネル装置2及び3は、2つであるが、チャネル装置は、チャネルの数に合わせて配置される。チャネル装置2と3とは、配置されたチャネルに対して同様の機能を有するため、以下では、チャネル装置2を例に説明する。

0025

例えば、チャネル装置2は、IO装置7から入力されたデータをスイッチ装置4及びシステム制御装置1を介して、主記憶装置6へ送信する。また、チャネル装置2は、主記憶装置6から読み出されたデータをシステム制御装置1及びスイッチ装置4を介して受信し、IO装置7へ送信する。このチャネル装置2が、「第1転送部」及び「第1データ転送装置」の一例にあたる。

0026

スイッチ装置4は、チャネル装置2とシステム制御装置1との間のデータ転送経路の制御を行う。スイッチ装置4は、チャネル装置2から入力されたデータをシステム制御装置1へ出力する。また、スイッチ装置4は、システム制御装置1から入力されたデータをシステム制御装置1によって指定されたチャネル装置2へ出力する。

0027

システム制御装置1は、CPU5からの指示を受けて、主記憶装置6からデータを読出しスイッチ装置4を介して、CPU5により指定されたチャネル装置3へデータを送信する。また、システム制御装置1は、CPU5からの指示を受けて、チャネル装置2へデータの読み込みを指示する。そして、スイッチ装置4は、スイッチ装置4を介してチャネル装置2からデータを受信し、主記憶装置6へ格納する。このシステム制御装置1が、「第2転送部」及び「第2データ転送装置」の一例にあたる。

0028

ここで、データがIO装置7から読み出され主記憶装置6へ格納されるまでの全体的な流れをまとめて説明する。チャネル装置2は、CPU5から指定されたデータをIO装置7から読み出す。そして、チャネル装置2は、読み出したデータをスイッチ装置4を介してシステム制御装置1へ送信する。システム制御装置1は、スイッチ装置4を介してチャネル装置2が出力したデータを受信する。そして、システム制御装置1は、受信したデータをCPU5により指定された主記憶装置6のアドレスへ格納する。

0029

次に、図2を参照して、システム制御装置1とスイッチ装置4との間のデータ転送について詳細に説明する。図2は、システム制御装置及びチャネル装置のブロック図である。スイッチ装置4は、システム制御装置1とスイッチ装置4との間のデータ転送を仲介するだけなので、図2では省略する。

0030

チャネル装置2は、データ入力制御部20、CRCチェック部21、データ一時格納部22、データ出力制御部23及びCRC算出部24を有する。さらに、チャネル装置2は、チェックサム算出部25、チェックサム受信部26、CRCチェック部27、チェックサム計算部28及びエラー検出部29を有する。

0031

IO装置7は、チャネル装置2に対して、データをパケット単位に分割して送信する。この際、IO装置7は、分割したパケット毎にCRCのチェックコードを付加する。

0032

データ入力制御部20は、CRCのチェックコードが付加されたパケットをIO装置7から受信する。そして、データ入力制御部20は、受信したパケットをCRCチェック部21へ出力し、その後、チェック結果をCRCチェック部21から受信する。

0033

データ入力制御部20は、ECCのチェックコードを各データに付加した後、データ一時格納部22へデータを出力する。同時に、データ入力制御部20は、データをチェックサム算出部25へ出力する。

0034

CRCチェック部21は、IO装置7からチャネル装置2へ送信されたパケットの入力をデータ入力制御部20から受ける。そして、CRCチェック部21は、受信したパケットに含まれるデータを用いてCRCのチェックコードを算出する。その後、CRCチェック部21は、受信したパケットに付加されているCRCのチェックコードと算出したCRCのチェックコードとを比較して、一致していればエラーが発生していないと判定し、一致していなければエラーの発生を検出する。

0035

そして、CRCチェック部21は、CRCのチェック結果をデータ入力制御部20へ出力する。

0036

データ一時格納部22は、システム制御部1へデータを転送する際に、システム制御部1のデータ受信のタイミングに合わせてデータを出力するためにデータを一時保持する。データ一時格納部22は、例えば、メモリである。

0037

データ一時格納部22は、ECCのチェックコードが付加されたデータをデータ入力制御部20から受信し格納する。そして、データ一時格納部22は、システム制御装置1のデータ受信タイミングに合わせて、データを順次出力する。

0038

データ出力制御部23は、システム制御装置1へ送信するデータの入力をデータ一時格納部22から受ける。データ出力制御部23は、受信したデータとECCからエラー検出及び訂正を行う。そして、データ出力制御部23は、訂正不可能なエラーが検出されなければ、処理を進める。

0039

データ出力制御部23は、受信したデータをパケットに分割する。ここで、このパケットの長さは、IO装置7が用いるパケットの長さとは関係なく、同じ長さでもよいし異なる長さでもよい。次に、データ出力制御部23は、生成したパケットをCRC算出部24へ出力する。その後、データ出力制御部23は、CRCのチェックコードをCRC算出部24から受信する。そして、データ出力制御部23は、CRCが付加されたパケットをシステム制御装置1へ出力する。

0040

データ出力制御部23がシステム制御装置1へデータを送信する際のパケットの最大長が、「所定の転送単位」の一例にあたる。

0041

CRC算出部24は、システム制御部1へ送信するパケットをデータ出力制御部23から受信する。そして、CRC算出部24は、各パケットに含まれるデータの値を基にCRCのチェックコードを算出する。その後、CRC算出部24は、算出したCRCのチェックコードをデータ出力制御部23へ出力する。

0042

チェックサム算出部25は、IO装置7から入力されたデータをデータ入力制御部20から受信する。チェックサム算出部25は、受信したデータのデータ全体のチェックサムを算出する。ここで、データ全体とは、IO装置7がデータ転送を開始して最初のパケットを送信してから、チャネルがデータ転送終了条件を満たすまでに送信された全てのデータを指す。チャネルがデータ転送終了を満たす条件とは、例えば、チャネル装置2によるデータ転送の終了通知の受信である。以下では、チェックサム算出部25が算出したチェックサムを「チャネル装置側チェックサム」という。

0043

そして、チェックサム算出部25は、算出したチャネル装置側チェックサムをエラー検出部29へ出力する。このチェックサム算出部25が、「第1計算部」の一例にあたる。また、チャネル装置側チェックサムが、「第1エラー情報」の一例にあたる。

0044

チェックサム受信部26は、システム制御装置1から主記憶装置6へ送信されるパケット毎に計算されたチェックサムを含むパケットを、後述するシステム制御装置1のチェックサム送信部15から受信する。以下では、システム制御装置1から主記憶装置6へ送信されるパケット毎に計算されたチェックサムを、「システム制御装置側パケット単位チェックサム」という。そして、チェックサム受信部26は、受信したパケットをCRCチェック部27へ出力する。その後、チェックサム受信部26は、CRCチェック部27からCRCのチェック結果を受信する。

0045

CRCのチェック結果でエラーが検出されていない場合、チェックサム受信部26は、システム制御装置側パケット単位チェックサムをチェックサム計算部28へ出力する。

0046

CRCチェック部27は、システム制御装置側パケット単位チェックサムを含むパケットの入力をチェックサム受信部26から受ける。そして、CRCチェック部27は、受信したパケットに含まれるデータを用いてCRCのチェックコードを算出する。その後、CRCチェック部27は、受信したパケットに付加されているCRCのチェックコードと算出したCRCのチェックコードとを比較して、一致していればエラーが発生していないと判定し、一致していなければエラーの発生を検出する。

0047

そして、CRCチェック部27は、CRCのチェック結果をチェックサム受信部26へ出力する。

0048

チェックサム計算部28は、システム制御装置側パケット単位チェックサムの入力をチェックサム受信部26から受信する。チェックサム計算部28は、データ全体に対応する全パケットの各チェックサムの受信が完了するまで待機する。そして、チェックサム受信部26は、全てのシステム制御装置側パケット単位チェックサムを用いて演算を行い、データ全体のチェックサムを算出する。

0049

ここで、このチェックサム計算部28が算出したデータ全体のチェックサムは、システム制御装置1が主記憶装置6へ出力したデータ全体のチェックサムにあたる。以下では、チェックサム計算部28が算出したチェックサムを「システム制御装置側チェックサム」という。

0050

その後、チェックサム計算部28は、算出したシステム制御装置側チェックサムをエラー検出部29へ出力する。このチェックサム計算部28が、「第2計算部」の一例にあたる。また、システム制御装置側チェックサムが、「第2エラー情報」の一例にあたる。

0051

エラー検出部29は、チャネル装置側チェックサムの入力をチェックサム算出部25から受ける。また、エラー検出部29は、システム制御装置側チェックサムの入力をチェックサム計算部28から受ける。そして、エラー検出部29は、チャネル装置側チェックサムとシステム制御装置側チェックサムとを比較する。

0052

ここで、チャネル装置側チェックサムは、チャネル装置2がIO装置7から受信したデータ全体のチェックサムである。また、システム制御装置側チェックサムは、チャネル装置2がIO装置7から受信したデータに対応する、システム制御装置1が主記憶装置6へ出力したデータ全体のチェックサムである。チャネル装置2がIO装置7から受信し、システム制御装置1が主記憶装置6へ出力するまでにエラーが発生していなければ、チャネル装置側チェックサムとシステム制御装置側チェックサムとは一致するはずである。

0053

そこで、エラー検出部29は、チャネル装置側チェックサムとシステム制御装置側チェックサとが一致しない場合にエラーを検出する。エラー検出部29は、エラーを検出した場合、モニタなどに表示させるなどして情報処理装置の操作者にエラーの発生を通知する。ただし、図2では、操作者へのエラーの通知については図示していない。

0054

ここで、チャネル装置2におけるデータ転送経路には、図示していないが実際にはレジスタが配置され、各レジスタにおいて、パリティ又はECCのチェックコードを用いたエラーのチェックが行われる。

0055

次に、システム制御装置1について説明する。システム制御装置1は、データ入力制御部10、CRCチェック部11、データ一時格納部12、データ出力制御部13、チェックサム算出部14、チェックサム送信部15及びCRC算出部16を有する。

0056

データ入力制御部10は、CRCのチェックコードが付加されたパケットをチャネル装置2のデータ出力制御部23から受信する。そして、データ入力制御部10は、受信したパケットをCRCチェック部11へ出力し、その後、チェック結果をCRCチェック部11から受信する。

0057

CRCのチェックによりエラーが検出されなければ、データ入力制御部10は、ECCのチェックコードを各データに付加した後、データ一時格納部12へデータを出力する。

0058

CRCチェック部11は、データ出力制御部23からデータ入力制御部10へ送信されたパケットの入力をデータ入力制御部10から受ける。そして、CRCチェック部11は、受信したパケットに含まれるデータを用いてCRCのチェックコードを算出する。その後、CRCチェック部11は、受信したパケットに付加されているCRCのチェックコードと算出したCRCのチェックコードとを比較して、一致していればエラーが発生していないと判定し、一致していなければエラーの発生を検出する。

0059

そして、CRCチェック部11は、CRCのチェック結果をデータ入力制御部10へ出力する。

0060

データ一時格納部12は、主記憶装置6へデータ転送する際に、主記憶装置6のデータ受信のタイミングに合わせてデータを出力するためにデータを一時保持する。データ一時格納部12は、例えば、First In, First Out(FIFO)バッファである。

0061

データ一時格納部12は、ECCのチェックコードが付加されたデータをデータ入力制御部10から受信し格納する。そして、データ一時格納部12は、主記憶装置6のデータ受信タイミングに合わせて、データを順次出力する。

0062

データ出力制御部13は、主記憶装置6へ送信するデータの入力をデータ一時格納部12から受ける。データ出力制御部13は、受信したデータとECCからエラー検出及び訂正を行う。そして、データ出力制御部13は、訂正不可能なエラーが検出されなければ、処理を進める。

0063

データ出力制御部13は、受信したデータをCPU5から受信したメモリへのアクセス制御情報に合わせて、キャッシュラインサイズに分割する。

0064

データ出力制御部13は、キャッシュラインサイズに分割したデータにECCを付加する。そして、データ出力制御部13は、ECCを付加したデータを主記憶装置6へ出力する。また、データ出力制御部13は、主記憶装置6へ出力したデータをチェックサム算出部14にも出力する。

0065

チェックサム算出部14は、主記憶装置6へ出力されたデータの入力をデータ出力制御部13から受ける。また、チェックサム算出部14は、チャネル装置2から受信したパケット毎に含まれていたデータの情報をデータ入力制御部10から取得する。

0066

チェックサム算出部14は、チャネル装置2から受信したパケット単位に、主記憶装置6へ出力されたデータのチェックサムを算出する。チェックサム算出部14が算出したチェックサムがシステム制御部側パケット単位チェックサムとなる。

0067

そして、チェックサム算出部14は、算出したシステム制御部側パケット単位チェックサムをチェックサム送信部15へ出力する。このチェックサム算出部14が、「第3計算部」の一例にあたる。また、システム制御部側パケット単位チェックサムが、「所定の転送単位毎に対するエラー情報」の一例にあたる。

0068

チェックサム送信部15は、システム制御部側パケット単位チェックサムの入力をチェックサム算出部14から受ける。そして、チェックサム送信部15は、受信したシステム制御部側パケット単位チェックサムをCRC算出部16へ出力する。その後、チェックサム送信部15は、CRCのチェックコードの入力をCRC算出部16から受ける。そして、チェックサム送信部15は、CRCのチェックコードを付加してシステム制御部側パケット単位チェックサムをチャネル装置2のチェックサム受信部26へ出力する。

0069

CRC算出部16は、システム制御部1へ送信するシステム制御部側パケット単位チェックサムをチェックサム送信部15から受信する。そして、CRC算出部16は、各システム制御部側パケット単位チェックサムを基にCRCのチェックコードを算出する。その後、CRC算出部16は、算出したCRCのチェックコードをチェックサム送信部15へ出力する。

0070

ここで、システム制御装置1におけるデータ転送経路には、図示していないが実際にはレジスタが配置され、各レジスタにおいて、パリティ又はECCのチェックコードを用いたエラーのチェックが行われる。

0071

次に、図3を参照して、図2の各部が有するハードウェアについて説明する。図3は、システム制御装置及びチャネル装置のハードウェアの概略を表す構成図である。

0072

まず、チャネル装置2側から説明する。データ入力制御部20は、IN201、Write Data Register(WDR)202及びWrite−ECC(W−ECC)203を有する。

0073

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へ受信パケットに含まれるデータを出力する。

0074

WDR202は、メモリ221へデータを書き込むためのデータ転送経路のレジスタである。WDR202は、データの入力をIN201から受ける。そして、WDR202は、受信したデータをW−ECC203へ出力する。

0075

W−ECC203は、データの入力をWDR202から受ける。そして、W−ECC203は、受信したデータにECCのチェックコードを付加する。その後、W−ECC203は、ECCのチェックコードを付加したデータをメモリ221へ格納する。

0076

CRCチェック部21は、CRC−C211及びCRCI212を有する。

0077

CRC−C211は、パケットの入力をIN201から受ける。そして、CRC−C211は、受信したパケットに含まれるデータを用いてCRCのチェックコードを計算する。より詳しくは、CRC−C211は、パケットに含まれるデータを一つ取得し、そのデータのCRCのチェックコードを算出してCRCI212に格納する。次に、CRC−C211は、パケットに含まれる他のデータを取得し、CRCのチェックコードを算出する。そして、CRC−C211は、算出したCRCのチェックコードとCRCI212に格納されているCRCのチェックコードを用いて、前のデータと次のデータとを合わせたデータのCRCのチェックコードを算出する。CRC−C211は、このようなCRCのチェックコードの算出を繰り返して、パケットに含まれるワード単位のCRCのチェックコードを算出する。

0078

CRCI212は、CRC−C211が算出したCRCのチェックコードを保持するレジスタである。

0079

メモリ221は、データ一時格納部22に対応する。

0080

データ出力制御部23は、Read−ECC(R−ECC)231、Read Data Register(RDR)232及びOUT233を有する。

0081

R−ECC231は、メモリ221からデータを読み出す。そして、R−ECC231は、読み出したデータに付加されているECCのチェックコードを取得してECCのチェックを行う。エラーが検出されなければ、R−ECC231は、データをRDR232へ出力する。

0082

RDR232は、メモリ221から読み出されたデータをシステム制御装置1へ転送するためのデータ転送経路のデータレジスタである。RDR232は、メモリ221から読み出されたデータの入力をR−ECC231から受ける。そして、RDR232は、受信したデータをCRC−C241及びOUT233へ出力する。

0083

OUT233は、データの入力をRDR232から受ける。そして、OUT233は、受信したデータをパケットに分割する。また、OUT233は、CRCOutput Register(CRCO)242から送信するパケットに付加するCRCのチェックコードを取得する。そして、OUT233は、取得したCRCチェックコードをパケットに付加してシステム制御装置1へ出力する。

0084

CRC算出部24は、CRC−C241及びCRCO242を有する。

0085

CRC−C241は、RDR232から受信したデータを用いてCRCのチェックコードを算出し、CRCO242に格納する。そして、CRC−C241は、CRCO242に格納されているCRCのチェックコードと受信データから算出したチェックコードとを用いたCRCのチェックコードの算出を繰り返し、送信するパケットのワード単位のCRCのチェックコードを算出する。CRC−C241は、算出した送信するパケットのワード単位のCRCのチェックコードをCRCO242に格納する。

0086

チェックサム算出部25は、CSM−G251及びCheck Sum Register(CSMR)252を有する。

0087

CSM−G251は、IN201から受信したデータ及びCSMR252に格納されている既に算出したチェックサムを用いてチェックサムを算出することを繰り返して、チャネル装置側チェックサムを算出する。CSM−G251は、算出したチャネル装置側チェックサムをCSMR252に格納する。

0088

CSMR252は、CSM−G251によるチェックサムの計算結果を保持するレジスタである。

0089

チェックサム受信部26は、IN261、Acknowledge−Receiver(ACK−R)262を有する。

0090

IN261は、例えばシステム制御部側パケット単位チェックサムを含むパケット及びACKの信号をシステム制御装置1から受信する。そして、IN261は、ACKはACK−R262へ出力する。また、IN261は、システム制御部側パケット単位チェックサムを含むパケットをCRC−C271へ出力する。そして、IN261は、CRC−C271に格納されているCRCのチェックコードと受信したパケットのCRCのチェックコードとを比較しエラーの検出を行う。エラーが検出されなければ、IN261は、システム制御部側パケット単位チェックサムをCSM−G281へ出力する。

0091

ACK−R262は、IN261からACKを受信すると、CRCI272を初期化する。

0092

CRCチェック部27は、CRC−C271及びCRCI272を有する。

0093

CRC−C271は、IN261から受信したパケットに含まれるデータ及びCRCI272に格納されている既に算出したCRCのチェックコードを用いてCRCのチェックコードを算出することを繰り返す。これにより、CRC−C271は、パケットに含まれるワード単位のCRCのチェックコードを算出する。CRC−C271は、算出したパケットに含まれるワード単位のCRCのチェックコードをCRCI272に格納する。

0094

CRCI272は、CRC−C271によるCRCのチェックコードの計算結果を保持するレジスタである。

0095

チェックサム計算部28は、CSM−G281及びCSMR282を有する。

0096

CSM−G281は、IN261から受信したシステム制御装置側パケット単位チェックサム及びCSMR282に格納されている既に算出したチェックサムを用いてチェックサムを算出することを繰り返して、システム制御装置側チェックサムを算出する。CSM−G281は、算出したシステム制御装置側チェックサムをCSMR282に格納する。

0097

CSMR282は、CSM−G281によるチェックサムの計算結果を保持するレジスタである。

0098

コンパレータ(Comparator:C)291は、エラー検出部29にあたる。コンパレータ291は、チャネル装置側チェックサムをCSMR252から取得する。また、コンパレータ291は、システム制御装置側チェックサムをCSMR282から取得する。そして、コンパレータ291は、チャネル装置側チェックサムとシステム制御装置側チェックサムとを比較して、エラーの検出を行う。

0099

データ入力制御部10は、IN101、WDR102及びW−ECC103を有する。

0100

IN101は、チャネル装置2からパケットを受信するレジスタである。IN101は、OUT233から受信したパケットを、CRC−C111へ出力する。そしてCRCI112が保持するCRCのチェックコードと受信したパケットのCRCのチェックコードとが一致すると、IN101は、WDR102へ受信パケットに含まれるデータを出力する。

0101

WDR102は、FIFOバッファ121へデータを書き込むためのデータ転送経路のレジスタである。WDR102は、データの入力をIN101から受ける。そして、WDR102は、受信したデータをW−ECC103へ出力する。

0102

W−ECC103は、データの入力をWDR102から受ける。そして、W−ECC103は、受信したデータにECCのチェックコードを付加する。その後、W−ECC103は、ECCのチェックコードを付加したデータをFIFOバッファ121へ格納する。

0103

CRCチェック部11は、CRC−C111及びCRCI112を有する。

0104

CRC−C111は、IN101から受信したパケットに含まれるデータ及びCRCI112に格納されている既に算出したCRCのチェックコードを用いてCRCのチェックコードを算出することを繰り返す。これにより、CRC−C111は、パケットに含まれるワード単位のCRCのチェックコードを算出する。CRC−C111は、算出したパケットに含まれるワード単位のCRCのチェックコードをCRCI112に格納する。

0105

CRCI112は、CRC−C111によるCRCのチェックコードの計算結果を保持するレジスタである。

0106

FIFOバッファ121は、データ一時格納部12に対応する。

0107

データ出力制御部13は、R−ECC131、RDR132及びOUT133を有する。

0108

R−ECC131は、FIFOバッファ121からデータを読み出す。そして、R−ECC131は、読み出したデータに付加されているECCのチェックコードを取得してECCのチェックを行う。エラーが検出されなければ、R−ECC131は、データをRDR132へ出力する。

0109

RDR132は、FIFOバッファ121から読み出されたデータを主記憶装置6へ転送するためのデータ転送経路のデータレジスタである。RDR132は、FIFOバッファ121から読み出されたデータの入力をR−ECC131から受ける。そして、RDR132は、受信したデータをOUT133及びCSM−G141へ出力する。

0110

OUT133は、データの入力をRDR132から受ける。そして、OUT133は、受信したデータをキャッシュラインサイズに分割する。そして、OUT133は、分割したデータにECCのチェックコードを付加して主記憶装置6へ出力する。

0111

チェックサム算出部14は、CSM−G141及びCSMR142を有する。

0112

CSM−G141は、RDR132から受信したデータ及びCSMR142に格納されている既に算出したチェックサムを用いてチェックサムを算出することを繰り返し、システム制御装置側パケット単位チェックサムを算出する。CSM−G141は、算出したシステム制御装置側パケット単位チェックサムをCSMR142に格納する。

0113

CSMR142は、CSM−G141によるチェックサムの計算結果を保持するレジスタである。

0114

チェックサム送信部15は、ACK−Generator(ACK−G)151及びOUT152を有する。

0115

ACK−G151は、チャネル装置2が送信した1パケット分のチェックサムの算出が終わり、システム制御装置側パケット単位チェックサムがCSMR142に格納されると、ACKの返信指示をOUT152へ送信する。ACK−151は、チャネル装置2から送信された全てのデータに対応するシステム制御装置側パケット単位チェックサムの算出が終わるまで、システム制御装置側パケット単位チェックサムが格納される度に返信指示の通知を行う。

0116

OUT152は、ACK−G151からACKの返信指示の通知を受信すると、ACKであるパケットヘッダ部分をIN261へ出力する。

0117

続いて、OUT152は、システム制御装置側パケット単位チェックサムをCSMR142から取得する。また、OUT152は、システム制御装置側パケット単位チェックサムを含むパケットに付加するCRCのチェックコードをCRCO162から取得する。そして、OUT152は、システム制御装置側パケット単位チェックサムを含むパケットにCRCのチェックコードを付加してIN261へ送信する。

0118

CRC算出部16は、CRC−C161及びCRCO162を有する。

0119

CRC−C161は、ACK−G151からACKの返信指示が送信されると、システム制御装置側パケット単位チェックサムをCSMR142から取得する。そして、CRC−C161は、取得したシステム制御装置側パケット単位チェックサムを用いてシステム制御装置側パケット単位チェックサムのCRCチェックコードを算出する。そして、CRC−C161は、算出したシステム制御装置側パケット単位チェックサムのCRCのチェックコードをCRCO162に格納する。

0120

CRCO162は、CRC−C161によるCRCのチェックサムの計算結果を保持するレジスタである。

0121

次に、Data#1,#2,#3−1,#3−2及び#4が、IO装置7から主記憶装置6へ転送される場合を例に各部の処理及び転送されるデータの状態を具体的に説明する。まずは、図4及び5を用いて、この場合のデータの分割の状態について説明する。図4は、IO装置から主記憶装置へ送られるデータの分割の一例を示す図である。図5は、システム制御装置からチャネル装置へ送られるシステム制御装置側パケット単位チェックサムの分割の一例を示す図である。

0122

図4の状態301は、Data#1〜#4がIO装置7に格納された状態を表す。IO装置7に格納されている状態では、Data#1〜4は、1つの処理単位のデータ群であり、まとめて1つのCRCのチェックコードであるCRC#0が付加されている。すなわち、Data#1〜#4が、このデータ送信におけるデータ全体である。

0123

状態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へ出力する。

0124

状態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へ出力する。

0125

状態304は、Data#1〜#4がシステム制御装置1から主記憶装置6に送信される状態を表す。システム制御装置1は、データをキャッシュラインサイズに分割する。この場合、システム制御装置1は、Data#1〜#4をそれぞれバラバラにする。そして、システム制御装置1は、バラバラにしたData#1〜#4のそれぞれを主記憶装置6へ出力する。

0126

状態305は、Data#1〜#4が主記憶装置6に格納された状態を表す。Data#1〜#4は、それぞれキャッシュライン毎に分割されて主記憶装置6に格納される。

0127

図5の状態306は、Data#1〜#4が主記憶装置6に格納された状態を表す。この状態は図4の状態305と同じである。

0128

状態307は、システム制御装置1において算出されるシステム制御装置側パケット単位チェックサムを表す。ここで、実際には、システム制御装置1は、主記憶装置6へ送信したデータと同じデータを自装置内で用いてチェックサムを算出する。ただし、図5では、主記憶装置6に格納されたデータのいずれに対応するチェックサムかが分かり易いように、主記憶装置6のデータとチェックサムとを対応させる矢印を付加している。システム制御装置1は、チャネル装置2が送信したパケットと同じパケットの1パケット分のデータに対してチェックサムを算出する。ここでは、システム制御装置1は、Data#1,#2及び#3−1を含むパケットのシステム制御装置側パケット単位チェックサムとしてチェックサム#1を算出する。また、システム制御装置1は、Data#3−2及び#4を含むパケットのシステム制御装置側パケット単位チェックサムとしてチェックサム#2を算出する。

0129

状態308は、システム制御装置側パケット単位チェックサムがシステム制御装置1から主記憶装置6に送信される状態を表す。システム制御装置1は、チェックサム#1から算出したCRCのチェックコードであるCRC#3をチェックサム#1に付加して、チャネル装置2へ送信する。また、システム制御装置1は、チェックサム#2から算出したCRCのチェックコードであるCRC#4をチェックサム#2に付加して、チャネル装置2へ送信する。

0130

次に、図6を参照して、以上で説明したデータ転送が行われる場合の、各部の一連の動作をまとめて説明する。図6は、データ転送を行う場合の各部の動作を表すタイミングチャートである。図6において、点線で囲われた箱は計算結果を表す。さらに、破線で囲われた箱は、各部が行う処理以外の経路上で行われるエラー検出処理を表す。そして、図6では、左端に示した各部の動作及び転送されるデータの状態を表す。

0131

IO装置7は、チャネル装置2へパケット401及び402を送信してデータ転送を行う(ステップS1)。IN201は、パケット401、すなわちData#1,#2及びCRC#1を受信する。その後、IN201は、パケット402、すなわちData#3−1,#3−2,#4及びCRC#2を受信する。

0132

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)。

0133

WDR202及びW−ECC203により、Data#1及び#2がメモリ221へ書き込まれる(ステップS6)。次に、WDR202及びW−ECC203により、Data#3−1,#3−2及び#4がメモリ221へ書き込まれる(ステップS7)。

0134

さらに、データ転送経路において、各データは、パリティ又はECCのチェックを受ける(ステップS8)。

0135

また、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に格納される。

0136

R−ECC231及びRDR232は、Data#1及び#2をメモリ221から読み出す(ステップS11)。次に、R−ECC231及びRDR232は、Data#3−1,#3−2及び#4をメモリ221から読み出す(ステップS12)。

0137

さらに、データ転送経路において、各データは、パリティ又はECCのチェックを受ける(ステップS13)。

0138

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に格納する。

0139

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を受信する。

0140

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)。

0141

WDR102及びW−ECC103により、Data#1,#2及び#3−1がFIFOバッファ121へ書き込まれる(ステップS21)。次に、WDR102及びW−ECC103により、Data#3−2及び#4がFIFOバッファ121へ書き込まれる(ステップS22)。

0142

さらに、データ転送経路において、各データは、パリティ又はECCのチェックを受ける(ステップS23)。

0143

R−ECC131及びRDR132は、Data#1〜#4をキャッシュラインサイズに合わせてFIFOバッファ121から読み出す(ステップS24)。

0144

OUT133が、キャッシュラインサイズに分割されたData#1〜#4を主制御装置6へ送信することで、システム制御装置1から主記憶装置6へのデータ転送が行われる(ステップS25)。

0145

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に格納する。

0146

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に格納する。

0147

CRC−C161は、チェックサム#1を用いてCRC計算を行う(ステップS31)。そして、CRC−C161は、算出したCRCのチェックコードであるCRC#5をCRCO162に格納する。次に、CRC−C161は、チェックサム#2を用いてCRC計算を行う(ステップS32)。そして、CRC−C161は、算出したCRCのチェックコードであるCRC#6をCRCO162に格納する。

0148

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を受信する。

0149

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)。

0150

CSM−G281は、チェックサム#1及びチェックサム#2を用いてData#1〜#4の全体のチェックサム、すなわちシステム制御装置側チェックサムを求める(ステップS38)。

0151

コンパレータ291は、システム制御装置側チェックサムとチャネル装置側チェックサムとを比較してエラー検出を行う(ステップS39)。

0152

次に、図7を参照して、チャネル装置2がIO装置7からデータを受信する動作を説明する。図7は、チャネル装置がIO装置からデータを受信する動作のフローチャートである。

0153

IO装置7からIN201へデータの入力が開始されると、データ入力制御部20は、IO装置7から受信したデータのチェックサム結果を保持するチェックサム算出部25が有するレジスタであるCSMR252を初期化する(ステップS101)。

0154

次に、データ入力制御部20は、パケットのヘッダ部分(以下、「パケットヘッダ」という。)を受信したか否かを判定する(ステップS102)。パケットヘッダを受信していない場合(ステップS102:否定)、データ入力制御部20は、パケットヘッダを受信するまで待機する。

0155

これに対して、パケットヘッダを受信した場合(ステップS102:肯定)、データ入力制御部20は、パケット単位にCRCのチェック結果を保持するCRCチェック部21が有するレジスタであるCRCI212を初期化する(ステップS103)。

0156

そして、データ入力制御部20は、IO装置7からデータの入力を受ける(ステップS104)。

0157

CRCチェック部21は、入力されたデータのCRC計算を行い、CRCのチェックコードを算出する(ステップS105)。

0158

チェックサム算出部25は、入力されたデータのチェックサムを計算する(ステップS106)。

0159

データ入力制御部20は、入力されたデータをデータ一時格納部22へ書き込む(ステップS107)。

0160

データ入力制御部20は、パケットデータ最後尾を受信したか否かを判定する(ステップS108)。最後尾を受信していない場合(ステップS108:否定)、データ入力制御部20は、ステップS104へ戻る。すなわち、データ入力制御部20は、1パケット分のデータを受け取るまで、処理を繰り返す。

0161

これに対して、パケットデータ最後尾を受信した場合(ステップS108:肯定)、データ入力制御部20は、受信したデータの中からCRCのチェックコードを取得する(ステップS109)。そして、データ入力制御部20は、CRCI212に格納されているパケットのCRCのチェックコードと取得したCRCのチェックコードとを比較し、CRCによるエラー検出を行う(ステップS110)。

0162

データ入力制御部20は、データ転送終了条件を検出したか否かを判定する(ステップS111)。ここで、データ転送終了条件とは、例えば、IO装置7からのデータ転送終了の通知の受信などである。データ転送終了条件を検出していない場合(ステップS111:否定)、データ入力制御部20は、ステップS102へ戻る。

0163

これに対して、データ転送終了条件を検出した場合(ステップS111:肯定)、データ入力制御部20は、データ受信処理を終了する。

0164

次に、図8を参照して、チャネル装置2がシステム制御装置1へデータを送信する動作を説明する。図8は、チャネル装置がシステム制御装置へデータを送信する動作のフローチャートである。

0165

データ出力制御部23は、データ転送が開始されると、データ一時格納部22を監視し、パケット生成が可能なデータ量がデータ一時格納部22にあるか否かを判定する(ステップS201)。パケット生成可能なデータ量がない場合(ステップS201:否定)、データ出力制御部23は、パケット生成が可能なデータ量がデータ一時格納部22に溜まるまで待機する。

0166

これに対して、パケット生成可能なデータ量がある場合(ステップS201:肯定)、データ出力制御部23は、パケットヘッダをシステム制御装置1へ出力する(ステップS202)。

0167

そして、データ出力制御部23は、パケット単位にCRCのチェックコードを保持するCRC算出部24のレジスタであるCRCO242を初期化する(ステップS203)。

0168

次に、データ出力制御部23は、データ一時格納部22からデータを読み出す(ステップS204)。

0169

そして、データ出力制御部23は、読み出したデータに対してECCのチェックを行い、パリティを付加してシステム制御装置1にデータを出力する(ステップS205)。例えば、データ出力制御部23は、図3のRDR232にパリティを付加したデータをセットし、タイミングを調整してOUT233へデータをセットしシステム制御装置1に転送する。

0170

CRC算出部24は、データ出力制御部23が読み出したデータに対してCRC計算を行い、結果をCRCO242に格納する(ステップS206)。

0171

データ出力制御部23は、パケットのデータ最後尾を送信したか否かを判定する(ステップS207)。パケットのデータ最後尾を送信していない場合(ステップS207:否定)、データ出力制御部23は、ステップS204へ戻る。すなわち、データ出力制御部23は、1パケット分のデータを送信するまで処理を繰り返す。

0172

パケットのデータ最後尾を送信した場合(ステップS207:肯定)、データ出力制御部23は、CRC算出部24が算出したCRCのチェックコードをシステム制御装置1へ出力する(ステップS208)。

0173

その後、データ出力制御部23は、データ転送終了条件を検出したか否かを判定する(ステップS209)。ここで、データ転送終了検出条件とは、例えば、最後のデータであることを示すフラグがついたデータの送信などである。データ転送終了条件を検出していない場合(ステップS209:否定)、データ出力制御部23は、ステップS201へ戻る。

0174

これに対して、データ転送終了条件を検出した場合(ステップS209:肯定)、データ出力制御部23は、データ送信処理を終了する。

0175

次に、図9を参照して、システム制御装置1がチャネル装置2からデータを受信する動作を説明する。図9は、システム制御装置がチャネル装置からデータを受信する動作のフローチャートである。

0176

データ入力制御部10は、パケットヘッダを受信したか否かを判定する(ステップS301)。パケットヘッダを受信していない場合(ステップS301:否定)、データ入力制御部10は、パケットヘッダを受信するまで待機する。

0177

これに対して、パケットヘッダを受信した場合(ステップS301:肯定)、データ入力制御部10は、パケット単位にCRCのチェック結果を保持するCRCチェック部11が有するレジスタであるCRCI112を初期化する(ステップS302)。

0178

そして、データ入力制御部10は、チャネル装置2からデータの入力を受ける(ステップS303)。

0179

CRCチェック部11は、入力されたデータのCRC計算を行い、CRCのチェックコードを算出する(ステップS304)。

0180

データ入力制御部10は、入力されたデータをデータ一時格納部12へ書き込む(ステップS305)。

0181

データ入力制御部10は、パケットデータ最後尾を受信したか否かを判定する(ステップS306)。最後尾を受信していない場合(ステップS306:否定)、データ入力制御部20は、ステップS303へ戻る。すなわち、データ入力制御部10は、1パケット分のデータを受け取るまで、処理を繰り返す。

0182

これに対して、パケットデータ最後尾を受信した場合(ステップS306:肯定)、データ入力制御部10は、受信したデータの中からCRCのチェックコードを取得する(ステップS307)。そして、データ入力制御部10は、CRCI112に格納されているパケットのCRCのチェックコードと取得したCRCのチェックコードとを比較し、CRCによるエラー検出を行う(ステップS308)。

0183

データ入力制御部10は、チャネル装置2とのパス閉塞条件を検出したか否かを判定する(ステップS309)。ここで、パス閉塞条件とは、例えば、チャネルのオフライン設定のチャネル装置2との接続切り離しなどである。パス閉塞条件を検出していない場合(ステップS309:否定)、データ入力制御部10は、ステップS301へ戻る。

0184

これに対して、パス閉塞条件を検出した場合(ステップS309:肯定)、データ入力制御部10は、データ受信処理を終了する。

0185

次に、図10を参照して、システム制御装置1がチャネル装置2へデータを送信する動作を説明する。図10は、システム制御装置がチャネル装置へデータを送信する動作のフローチャートである。

0186

データ出力制御部13は、データ一時格納部12を監視し、メモリアクセスが可能なデータ量、すなわちチャネル装置2から受信した1パケット分のデータ量がデータ一時格納部12にあるか否かを判定する(ステップS401)。メモリアクセス可能なデータ量がない場合(ステップS401:否定)、データ出力制御部13は、メモリアクセスが可能なデータ量がデータ一時格納部12に溜まるまで待機する。

0187

これに対して、メモリアクセス可能なデータ量がある場合(ステップS401:肯定)、データ出力制御部13は、次の処理を行う。データ出力制御部13は、データ一時格納部12から読み出したデータのチェックサム結果を保持するためのチェックサム算出部14が有するレジスタであるCSMR142を初期化する(ステップS402)。

0188

さらに、データ出力制御部13は、データをキャッシュラインサイズに分割して主記憶装置6へ格納するための初期化を行う(ステップS403)。

0189

次に、データ出力制御部13は、データ一時格納部12からデータを読み出す(ステップS404)。そして、データ出力制御部13は、読み出したデータに対してECCのチェックを行った後、再度ECCを付加して、主記憶装置6へデータを出力する(ステップS405)。例えば、データ出力制御部13は、図3のRDR132にECCを付加したデータをセットし、タイミングを調整してOUT133へデータをセットし主記憶装置6へ転送する。

0190

チェックサム算出部14は、データ出力制御部13が主記憶装置6へ出力したデータのチェックサムを計算し、算出したチェックサムをCSMR142へセットする(ステップS406)。

0191

データ出力制御部13は、1キャッシュラインのデータの出力が終了したか否かを判定する(ステップS407)。1キャッシュラインのデータの出力が終了していない場合(ステップS407:否定)、データ出力制御部13は、ステップS404へ戻る。

0192

これに対して、1キャッシュラインのデータの出力が終了した場合(ステップS407:肯定)、データ出力制御部13は、1パケット分のデータの出力が終了したか否かを判定する(ステップS408)。1パケット分のデータの出力が終了していない場合(ステップS408:否定)、データ出力制御部13は、ステップS403へ戻る。

0193

これに対して、1パケット分のデータの出力が終了した場合(ステップS408:肯定)、データ出力制御部13は、ACKである返信用のパケットヘッダをチャネル装置2へ出力する(ステップS409)。

0194

チェックサム送信部15は、チェックサム算出部14が保持する1パケット分のチェックサムを取得しチャネル装置2へ出力する(ステップS410)。

0195

CRC算出部16は、チェックサム送信部15が送信したデータに対してCRC計算を行い、結果をCRCO162に格納する(ステップS411)。

0196

そして、チェックサム送信部15は、CRC算出部16が算出したCRCのチェックコードをチャネル装置2へ出力する(ステップS412)。

0197

その後、データ出力制御部13は、主記憶アクセス閉塞条件を検出したか否かを判定する(ステップS413)。ここで、主記憶アクセス閉塞条件とは、例えば、構成変更による主記憶装置6とシステム制御装置1とのパス接続切り離しなどである。主記憶アクセス閉塞条件を検出していない場合(ステップS413:否定)、データ出力制御部13は、ステップS401へ戻る。

0198

これに対して、主記憶アクセス閉塞条件を検出した場合(ステップS413:肯定)、データ出力制御部13は、データ送信処理を終了する。

0199

次に、図11を参照して、チャネル装置2がシステム制御装置1からチェックサムを受信する動作を説明する。図11は、チャネル装置がシステム制御装置からチェックサムを受信する動作のフローチャートである。

0200

チェックサム受信部26は、システム制御装置1から受信したチェックサムを加算するためのチェックサム計算部28が有するレジスタであるCSMR282を初期化する(ステップS501)。

0201

チェックサム受信部26は、返信用のパケットヘッダを受信したか否かを判定する(ステップS502)。パケットヘッダを受信していない場合(ステップS502:否定)、チェックサム受信部26は、パケットヘッダを受信するまで待機する。

0202

これに対して、パケットヘッダを受信した場合(ステップS502:肯定)、チェックサム受信部26は、パケット単位にCRCのチェックコードを保持するためのCRCチェック部27が有するレジスタであるCRCI272を初期化する(ステップS503)。

0203

そして、チェックサム受信部26は、システム制御装置1からシステム制御装置側パケット単位チェックサムを受信する(ステップS504)。

0204

CRCチェック部27は、入力されたシステム制御装置側パケット単位チェックサムのCRC計算を行い、算出したCRCのチェックコードをCRCI272に格納する(ステップS505)。

0205

また、チェックサム受信部26は、システム制御装置側パケット単位チェックサムに付加されていたCRCのチェックコードを取得する(ステップS506)。

0206

チェックサム受信部26は、CRCI172に格納されているパケットのCRCのチェックコードと取得したCRCのチェックコードとを比較し、CRCによるエラー検出を行う(ステップS507)。

0207

次に、チェックサム受信部26は、受信したシステム制御装置側パケット単位チェックサムをチェックサム計算部28へ出力する。チェックサム計算部28は、受信したシステム制御装置側パケット単位チェックサムを用いてチェックサムの計算を行う(ステップS508)。具体的には、チェックサム計算部28は、システム制御装置側パケット単位チェックサムを加算していく。

0208

チェックサム受信部26は、データ転送終了条件を検出したか否かを判定する(ステップS509)。ここで、データ転送終了条件とは、例えば、システム制御装置1からのデータ転送終了の通知の受信などである。データ転送終了条件を検出していない場合(ステップS509:否定)、チェックサム受信部26は、ステップS502へ戻る。

0209

これに対して、データ転送終了条件を検出した場合(ステップS509:肯定)、チェックサム計算部28は、システム制御装置側チェックサムとチャネル装置側チェックサムを用いて比較によるエラー検出を行う(ステップS510)。

0210

以上に説明したように本実施例に係る情報処理装置は、チャネル装置とシステム制御装置が中継するデータ転送において、チャネル装置が受信したデータとシステム制御装置が送出した信号とに対して、チェックサムを用いてエラーチェックを行う。これにより、チャネル装置とシステム制御装置との間でデータ転送を行う際のパリティやECCエラーで検出困難なエラーを検出することができる。さらに、チャネル装置側でチェックサムによるエラー検出を行うので、チェックサムを付加せずにデータの転送を行うことができ、転送効率の低下を回避することができる。すなわち、本実施例に係る情報処理装置は、高い転送効率で確実なエラー検出を行うことができる。

実施例

0211

また、システム制御装置側でチェックを行う場合、データを格納するFIFOなどの格納部へ格納する以前にチェックを行うため、データ転送経路上でエラー検出及び保証できない個所が発生してしまう。この点、本実施例に係る情報処理装置は、チャネル装置側でチェックサムによるエラー検出を行うので、システム制御装置が外部へ送出するデータをエラー検出に用いることができ、データ転送経路上のすべての個所のエラー検出及び保証を行うことができる。

0212

1システム制御装置
2,3チャネル装置
4スイッチ装置
5 CPU
6主記憶装置
7,8IO装置
10データ入力制御部
11CRCチェック部
12 データ一時格納部
13データ出力制御部
14チェックサム算出部
15 チェックサム送信部
16CRC算出部
20 データ入力制御部
21 CRCチェック部
22 データ一時格納部
23 データ出力制御部
24 CRC算出部
25 チェックサム算出部
26 チェックサム受信部
27 CRCチェック部
28チェックサム計算部
29エラー検出部

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ