JPH04282731A - 非同期制御ユニットにおけるエラー回復方法 - Google Patents

非同期制御ユニットにおけるエラー回復方法

Info

Publication number
JPH04282731A
JPH04282731A JP3173631A JP17363191A JPH04282731A JP H04282731 A JPH04282731 A JP H04282731A JP 3173631 A JP3173631 A JP 3173631A JP 17363191 A JP17363191 A JP 17363191A JP H04282731 A JPH04282731 A JP H04282731A
Authority
JP
Japan
Prior art keywords
error
dip
data
chip
buffer
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.)
Granted
Application number
JP3173631A
Other languages
English (en)
Other versions
JPH0679274B2 (ja
Inventor
Kathryn J Ayres
キャサリン・ジェーン・アイレス
Brent C Beardsley
ブレント・カメロン・ベアーズレイ
Keith A Bello
ケイス・アンソニー・ベロ
Michael T Benhase
マイケル・トーマス・ベンハセ
Donald M Nordahl
ドナルド・マーヴィン・ノーダール
Alfred G Torre
アルフレッド・ジョージ・トーレ
Bao T Trieu
バオ・スック・トリュー
Linda D Vanpatten
リンダ・ダイアン・ヴァンパテン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04282731A publication Critical patent/JPH04282731A/ja
Publication of JPH0679274B2 publication Critical patent/JPH0679274B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Retry When Errors Occur (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理システムに
関し、より詳細には、非同期様式で動作するDASD周
辺データ処理システムの制御に関するものである。
【0002】
【従来の技術】データ処理システムはしばしば、直接ア
クセス記憶デバイス(DASD)等の大規模記憶デバイ
スを備えており、これは、ホストコンピュータの外部に
置かれてあり、そしてある時にはそのホストコンピュー
タからかなりの距離のところに配置されている。このホ
ストコンピュータからそのDASDへの通信は、そのD
ASDとこれの制御ユニットとの間に延設されていてこ
れらをホストプロセッサに接続する信号ケーブル(チャ
ンネルと呼ぶ)を通して実現している。
【0003】現行の技術では、同一のスピンドルで全て
が回転する別々の幾つかのディスクをもったDASDユ
ニットが提供されている。それらのディスク(又はプラ
ッタ)には、各ディスクの片面へのアクセスを与える変
換ヘッドをもったヘッドディスク・アセンブリによって
アクセスするようになっている。例えば、1つのディス
クドライブに9個のプラッタがあって、16個の使用可
能の面を与え、そしてその内の1つの面を、正確なトラ
ッキング能力を維持するのに用いるようになったものが
ある。このようなユニットにおいては、データ用の15
個の使用可能面があり、そしてそれらのヘッドを全て配
置したときには、1つのシリンダを成す15個の物理的
な記録用トラックにアクセスすることができる。DAS
Dユニットではしばしば、カウント・キー・データ・ア
ーキテクチャ(CKD)を用いており、このアーキテク
チャでは、記録用トラックに書き込んだレコードに、カ
ウント・フィールド(ID)、キー・フィールド及びデ
ータ・フィールドを設けるようにしている。
【0004】これらのフィールドをある1つの記録用ト
ラックに沿って書き込む際、それらフィールドの各々の
間にギャップを設けるようになっている。そして、これ
らのギャップは、DASD制御ユニットとホストチャン
ネルとが互いに通信することが可能な期間を与えるのに
利用している。このギャップ時間中に、その制御ユニッ
トは、これが受けたコマンドに応答して情報をそのチャ
ンネルに戻し、そしてレコードの探索、検索又は書込み
のための次の動作を開始するために次のコマンドを得る
のである。このプロセスは、ギャップ同期と呼ぶもので
ある。即ち、DASDデバイスが現在働きかけている特
定のレコードが、チャンネルが働きかけを要求したのと
同一のレコードとなっており、これにより、それらチャ
ンネルとデバイスとは、これらが同一のレコードに対し
(その読み出しあるいは書き込みのいずれかのため)働
きかけているという意味で、互いに同期しているのであ
る。
【0005】
【発明が解決しようとする課題】システムが高速になる
につれて、そのようなギャップによって生ずる遅延ある
いはギャップ期間内で諸々の機能の実行によって生ずる
遅延は、それらの機能を十分に実施できなくなるような
程度にまで短縮しなければならなくなっている。このこ
とは、データバースト速度が銅線のチャンネルの場合の
バースト速度の数倍である光フィイバチャンネルの場合
に、特にそうである。
【0006】チャンネルとデバイスとがデータを互いに
独立して転送できるようになった、非同期記憶サブシス
テムが開発されている。この独立転送を可能にするため
、バッファをデバイスとチャンネルの間のデータ経路に
挿入しており、そしてチャンネルとデバイス(この各々
は別々のプロセッサの制御下にある)に対し別々のデー
タ経路がある。このようにすると、そのデバイスのプロ
セッサは、そのバッファの一部の中にあるレコードに対
し、そのバッファの別の部分をチャンネルのプロセッサ
が使用している間に、アクセスすることができる。チャ
ンネルのプログラムの実行は、1つのコマンドの実行を
終了させそして次のコマンドへ進むのに要するチャンネ
ル及び記憶制御の活動を、2つの隣接したフィールド間
のレコード間ギャップの間で行う必要がないようにして
、行うことができる。
【0007】ある同期システムにおいて、デバイス及び
チャンネルは、同一のレコードに働きかけ、これにより
、そのデバイスが上記のバッファに転送するデータが、
チャンネルの所望するデータと同じデータとなるように
している。このようなシステムのための制御ユニットに
おいては、チャンネル・プロセッサとデバイス・プロセ
ッサとの間のインターフェースを実現するのに、共有式
の変数が必要なだけである。それらチャンネル・プロセ
ッサとデバイス・プロセッサは常に同一フィールドに対
し同一の動作を実施しているため、その単純な共有式変
数で十分なのである。しかしながら、ある非同期システ
ムでは、デバイスは読出し動作の期間中、チャンネルよ
りも有意な程先に動作することがある。即ち、デバイス
・プロセッサがデバイスからデータをバッファに転送し
ている最中にある一方、チャンネル・プロセッサがその
データをチャンネルに送るためにそのデータにアクセス
している最中にある、ということがある。従って、デバ
イス・プロセッサは充填又は先導の活動となっており、
一方チャンネル・プロセッサは追跡又は遅延の活動とな
っている。書込み動作期間中にはこれと逆になり、チャ
ンネル・プロセッサがチャンネルからのデータをバッフ
ァに充填し、そしてその後に、デバイス・プロセッサが
、そのデータをデバイスに送ってそのレコードを記憶デ
ィスク上に書込むためにそのデータにアクセスすること
になる。この例においては、チャンネル・プロセッサは
先導又は充填活動となり、一方デバイス・プロセッサは
追跡又は空白化の活動となる。ある非同期制御ユニット
ではチャンネル・プロセッサとデバイス・プロセッサと
が異なったフィールドに対し異なった動作を実行してい
ることが可能であるため、それら2つの間のより精巧な
通信システムが必要であり、これについては、本明細書
において開示する。
【0008】非同期制御ユニットにおけるエラー回復で
はまた、同期制御ユニットにはないような事柄を考慮し
なければならない。同期動作においては、上記のチャン
ネル・インターフェース・プロセッサ及びデバイス・イ
ンターフェース・プロセッサは、同一のフィールドに対
し働きかけているため、エラーが生じた場合、それら2
つのプロセッサは、多分同一のエラーに気づくことにな
る。非同期動作においては、2つの互いに独立したエラ
ーが同時には生じないと仮定することは、依然として妥
当なものである。にもかかわらず、チャンネル・インタ
ーフェース・プロセッサ(CHIP)とデバイス・イン
ターフェース・プロセッサ(DIP)とが同じ時刻に同
一フィールドに対し働きかけていないため、その独立エ
ラーの非同時発生の可能性はより高くなる。例えば、D
IPは読出し動作においてCHIPよりかなり先を走行
していて、データ検査に入ることがある。遅れて続くC
HIPは、データ・オーバーランに入ることがある。こ
れら2つのエラーは互いに独立しているため、このよう
な事態を取り扱いそしてこれらエラー両者から回復する
何らかの方法がなければならない。また、そのような事
態においては、デバイスがチャンネルよりもかなり先に
行っているため、そのデバイスが遭遇するエラーは、チ
ャンネルがその動作を完了するためには必要としないよ
うなレコードに関するものである、ということもある。 このようなことが生ずるのは、デバイス・プロセッサが
諸チャンネル・コマンド・ワード(CCW)のコマンド
連鎖によって要求された第1のレコードから始まる一連
のレコードをバッファに読み込むように働くからである
。その最初の要求レコードをDIPが知っている間、こ
のDIPは、CHIPよりも先を動作しており、従って
チャンネルがその最初のレコードに続くどのレコードを
要求するのかについては知っていない。結果として、C
HIPは、これがDIPがエラーを発見したレコードに
到達する前に、その読出し動作に必要なレコードの終り
に達することがある。このような場合、チャンネル・プ
ログラムは、その先導側プロセッサが気づいたエラーに
注意を払わずとも首尾よく完了することができる。
【0009】従って、本発明の目的は、単一エラーから
可能な限り最も効率的な方法で回復する、非同期制御ユ
ニットのためのエラー回復方法を提供することにある。
【0010】本発明の別の目的は、可能な限り最も効率
的な方法で多重エラーから回復することにある。
【0011】別の目的は、多重エラーを可能な限り単一
エラーとして取り扱うエラー回復方法を提供することに
ある。
【0012】
【課題を解決するための手段】本発明は、非同期形式(
即ち、制御ユニット内のチャンネル・プロセスが、その
制御ユニット内のデバイス・プロセスとは異なったフィ
ールドに対し作用することができる形式)で動作するD
ASD制御ユニットのためのエラー回復プロセスである
。このエラー回復プロセスの一般的な規則は、追跡側プ
ロセスが報告するリトライ可能エラーからの回復の後、
先導側プロセスが報告したエラーを取り扱う前に、その
追跡側プロセスを再始動させ、そして先導側プロセスに
追いつくことができるようにする、ということである。 この一般的規則には、以降に説明するような例外がある
【0013】
【実施例】次に、本発明の実施例について、図面を参照
して説明する。
【0014】非同期的に動作するため、拡張形CKDア
ーキテクチャ(ECKD)を開発して、チャンネル・プ
ログラムが、ある1つのデータ転送の性質及び範囲につ
いて、その第1のデータ転送コマンドを実行する前に記
述できるようにしている。このECKDは、レコード位
置指定(LOCATE  RECORD)拡張形コマン
ドを含んでおり、これは、後続の1つのチャンネル・コ
マンド・ワード(CCW)連鎖のための動作領域を定め
るために可変長パラメータ・リストを用いるものである
。 これらのパラメータは、実行すべき動作、処理するべき
レコード又はトラックのロケーションと数、並びに転送
長係数を指定するものである。このようにして、記憶サ
ブシステムには、実行するべきデータ転送のタイプ、働
きかけるべきレコードの数、並びにデータ転送を始動さ
せるに先立ちデバイスが位置しなければならないトラッ
クセクタ及びレコードのIDの通知を受けることになる
【0015】非同期動作は、チャンネル動作とデバイス
動作とが時間的にどの位離れていなければならないかに
ついて定めておらず、またそれらがどれ位離れられるに
ついても制限していない。読出し動作の期間中、そのデ
バイス制御装置は、第1の読出しコマンドを実行する前
に、数バイト、1つのフィールド、1つのレコード、又
は幾つかのレコードまでバッファに読み込むことができ
る。書込み動作においては、チャンネル制御装置は、第
1のフィールドをデハイスに書き込む前に、1つ又はそ
れ以上の書込みコマンドを受けそしてそれに関連のデー
タをバッファに転送することができる。
【0016】ECKDは、周知のCKD法と同じトラッ
ク・アドレス指定法を用いるものである。トラックは、
デバイス上の直接アドレス指定することが可能な最小の
スペースであり、そして各トラックは、インデックスと
呼ぶある任意の開始点を有している。トラック・フォー
マットは、ECKDでもCKDのものと同じである。ト
ラック上の最初の領域は、そのトラックを識別するホー
ムアドレスであり、そしてその後に、このトラックのそ
のアドレスを含むレコード・ゼロと呼ぶ特別のレコード
が続いている。このレコード・ゼロの後には、ユーザ・
レコードを含むデータ領域が続くようになっている。
【0017】データ転送を開始することができるように
なる前に、デバイス制御装置を指向させなければならな
い。デバイス制御装置はこれを、上記のインデックス点
かあるいはレコード・ゼロ以外のカウント開始領域のど
ちらかを検出することによって行う。そのカウント領域
又はインデックスを一旦検出すると、デバイス制御装置
は、そのトラックを下ることにより、チャンネルが命じ
た動作を実行することができる。
【0018】レコード位置指定(LOCATE  RE
CORD)パラメータを有効にした後、本制御ユニット
は、デバイスに命じて第1の指定したトラックをシーク
させ、デバイスをその指定したセクタに位置決めし、そ
して探索動作を開始してそれ自身を更にそのトラック上
のある特定のレコード領域に位置決めする。
【0019】図1は、本発明を包含したデータ処理シス
テムの簡易ブロック図を示したものである。ホストプロ
セッサ10は、チャンネル11で制御ユニット12に接
続している。この制御ユニット12とDASD13とは
、このDASDにおける記憶活動を管理するための周辺
データ処理サブシステムを構成している。尚、図1は簡
略化したものである。実際は、幾つかのチャンネル11
を制御ユニット12に接続するようにできる。現時点で
は、よくある構成形態の1つは、16個のチャンネルを
1つの制御ユニットに接続したものである。結果として
、1つの制御ユニットには16個までのホストプロセッ
サを接続することができる(但し、冗長要求が、概して
ホストプロセッサの数を制限する)。この同じ構成形態
においては、制御ユニットは、64個のDASDに接続
できるが、本発明の目的にとっては、制御ユニットに幾
つのチャンネル又は幾つのDASDを接続しようとも殆
んど差がなく、従って図1に示した簡略化配置は、本発
明の周囲情況を説明するのには十分である。
【0020】制御ユニット12は、それらのチャンネル
とDASDとの間のデータ転送を管理するため、これに
必要な電子回路、マイクロプロセッサ及びマイクロコー
ドを全て備えている。そのようなデバイスは周知であり
、従って制御ユニット12内のそれら回路の1部分のみ
を図1に示してある。この図1は、制御記憶装置14を
示しており、この制御記憶装置14は、制御レジスタ1
5とデータバッファ16を含んでいる。これら制御記憶
装置14、及びその中の種々のバッファ及びレジスタは
、チャンネル・インターフェース・プロセッサ17、デ
バイス・インターフェース・プロセッサ18及び非常事
態プロセッサ19に接続しており、そしてこれらによっ
て制御されるようになっている。チャンネル・プロセッ
サ17とデバイス・プロセッサ18とは両方共、データ
・バッファ16に対するアクセス手段を有しており、ま
た図1には示していないキャシュ記憶装置等の他の記憶
領域に対するアクセス手段ももつようにできる。ここで
注意すべきことは、デバイス・プロセッサ18とチャン
ネル・プロセッサ17とは、別々のプロセッサとしたり
、あるいは同一のプロセッサ20上で動作する別々のプ
ロセスとして実現したりすることができる、ということ
である。別々のプロセッサとしてあるいは同一プロセッ
サ上での別々のマイクロコード・モジュールとしての実
現は、主に速度及びコストを考慮して定まる選択の問題
である。「デバイス・インターフェース・プロセッサ」
及び「デバイス・インターフェース・プロセス」の用語
は、本明細書では同義語として用い、同様に「チャンネ
ル・インターフェース・プロセス」と「チャンネル・イ
ンターフェース・プロセッサ」の類似の用語も同じであ
る。
【0021】図2は、データ・バッファ領域16のレイ
アウトについて示している。この図2に示した実現例に
おいては、データ・バッファは、64Kバイトを含み、
そしてその第1の1.0K領域は、1.0Kと2.0K
との間にある領域から離して区別してあり、そしてこの
第2の領域は、2.0Kから64Kまで延びているバッ
ファの主要な部分から離して区別してある。このように
して、ある特定の別々の活動が、バッファのそれら3つ
の別々の部分の中で進行できるようになっている。例え
ば、部分30においては、制御コマンドをその保護領域
に置くことができる一方、キャッシュ及びチャンネル・
データ転送はそのラップ領域31内で起きることが可能
である。領域32は、エラー訂正に使うことができる。
【0022】バッファの主62K部分は、デバイスとチ
ャンネルとの間でデータを転送するのに利用するバッフ
ァ部分である。書込み動作時のカウント・フィールド(
及びキー・フィールドを更新しない時の分枝操作でのそ
のキー・フィールド)は、保護領域33に配置するよう
にすることができ、一方データは、残りの61.5K領
域34(以下、ラップ領域と呼ぶ)に入る。この図2に
は、デバイス及びチャンネルへ又はデバイス及びチャン
ネルから転送する種々のレコードを示してある。図示の
ように、デバイス13は、レコード2のデータ・フィー
ルドを現在アクセス中であり、そしてデバイス・バッフ
ァ・ポインタ(DBP)35は、そのレコード2のデー
タ・フィールド内の特定のロケーションを指している。 これと同様に、図2は、チャンネル11が現在レコード
1からデータをアクセス中であり、またチャンネル・バ
ッファ・ポインタ(CBP)36がそのレコード1内の
ラップ・データ・フィールドのアドレスを含んでいるこ
と、を示している。これは、デバイス13及びチャンネ
ル11が異なったレコードに対し作用中となることがあ
るという事実を、非同期動作においてグラフ的に示した
ものである。
【0023】また、この図2は、非同期動作における幾
つかの通信問題を説明するのに使うことができる。例え
ば、読出し動作が進行中であると仮定する。従って、デ
バイス・プロセス18は、チャンネル・プロセス17に
先行している。この図2を参照して説明すると、レコー
ド1はバッファへの転送を完了しており、またデバイス
・プロセスは、現在レコード2をデバイスからバッファ
へ転送中である。チャンネル・プロセス17は、現在そ
のレコード1データをそのバッファからチャンネルに転
送中である。何らかの理由により追跡側のチャンネル・
プロセス17が先導側のデバイス・プロセス18に追い
つきそしてこれを通り越したとすると、その時、チャン
ネル11は、意味のないデータを受けることになる。同
様にして、先導側デバイス・プロセスがそのバッファの
終端に到達しそしてラップして戻って2.5Kの頭から
始まるバッファに更にレコードを読み込むとすると、こ
のデバイス・プロセスは、最終的にチャンネル・プロセ
スを追い抜きそしてこれを通り超すことがあり、この場
合、チャンネルは、これが発生したその読出しコマンド
に関するレコードを全て受け取ることにはならなくなっ
てしまう。これは、そのような状況が起きないよう防止
する通信機構を、システム内に設置しなければならない
、ということを示している。
【0024】チャンネル・プロセス又はチャンネル・プ
ロセッサ(CHIP)とデバイス・プロセス又はデバイ
ス・プロセッサ(DIP)との間の適切な通信のために
、ある定まった機構がある。これらの機構は、2つのト
ラック・ポインタと2つのバッファ・ポインタとを含ん
でいる。
【0025】それら2つのトラック・ポインタは、チャ
ンネル・オリエンテーション・レコード/フィールド(
CORF)並びにデバイス・オリエンテーション・レコ
ード/フィールド(DORE)と呼ぶものである。CO
RFは、チャンネル・プロセス(CHIP)に対しトラ
ック上の意図した動作位置を指示し、一方DORFは、
DIPがそのトラック上のどこにいるのかを指示する。 これら2つのポインタを比較することにより、チャンネ
ル・プログラムとデバイスとの相対的位置を確認するこ
とができる。
【0026】CORF及びDORFは、それぞれ2つの
要素からなっている。即ち、(1)レコード・カウント
(CORF.R及びDORF.R)と、(2)フィール
ド識別子(CORF.F及びDORF.F)とである。 これらのパラメータは、記憶制御レジスタ15内に維持
しており、ただしDPRF.Rは、読出し動作のために
レコードと共にデータ・バッファ16にも記憶する。
【0027】1又は2のレコード・カウントは、これに
関連のプロセスがそれぞれホームアドレスあるいはレコ
ード・ゼロに対し働きかけていること、を示している。 このレコード・カウントの他の値は、CHIP及びDI
Pの相対的位置を判定するのに有用であるが、これらは
、必ずしもトラック上の特定のレコードに関係したもの
ではない。
【0028】制御レジスタ15内に位置した上記のDO
RFフィールド識別子(DORF.F)は、DIPが頂
度働きかけている最中のフィールドを指示している。通
常は、このパラメータは、DIPが変更するが、データ
・フィールドにエラーが生じたときには、これらのエラ
ーを非常事態プロセッサ19が訂正した後、このプロセ
ッサ19がそのDORF.Fをある特別な値に変えるこ
とになり、これにより、そのデータ・フィールドが有効
でありまたDIPが次のレコードに進むのを待つべきで
はないということを、チャンネル・プロセスに対し指示
するようにする。もしそのデータがコマンド連鎖内の最
後のCCWに対してのものである場合には、DIPがそ
のレコードに対し再指向するのを待つのに費やすであろ
う時間が節約できる。
【0029】そのDORF.FパラメータがDIPが頂
度働きかけているフィールドを指示するのに対し、DO
RF.Fパラメータは、CHIPが働きかけるのが望ま
しい次のフィールドを指示する。
【0030】また、チャンネル・バッファ・レコード・
ポインタ(CBUF)及びデバイス・バッファ・レコー
ド・ポインタ(DBUF)と呼ぶ2つのバッファ・ポイ
ンタがある。そのCBUFはCHIPが現在処理中のレ
コードのバッファ・アドレスを指示するよう、CHIP
によって設定される。DBUFは、DIPが現在処理中
のレコードのバッファ・アドレスを指示するよう、DI
Pによって設定される。これら2つのポインタは、バッ
ファ・ラップ・アラウンド(WRAP)パラメータと共
に、CHIPとDIPの両方が用いて充填プロセス及び
空白化プロセスを制御し、これによりそれら2つのプロ
セスが互いに重ならないようにする。以上のCBUF及
びDBUF並びにWRAPは、制御記憶レジスタ15内
に維持するようになっている。図2を参照すると判るよ
うに、ポインタDBUFは、DIPが処理中のレコード
、即ちレコードR2の開始点のロケーションを指し、一
方CBUFは、CHIPが処理中のレコード、即ちレコ
ードR1の開始点のアドレスを指している。ここで注意
すべき点は、本バッファは1ページ256バイトのペー
ジに分割してあり、そしてこのバッファ内に置く各レコ
ードがページ境界から始まる、ということである。従っ
て、レコードR1は、ページ10から始まり、レコード
R2はページ16から始まっている。CBUF及びDB
UFは常に、ページ境界におけるバッファのアドレスを
指しており、一方、デバイス・バッファ・ポインタ(D
BP)35及びチャンネル・バッファ・ポインタ(CB
P)36は、そのレコード内のデバイスのロケーション
又はチャンネルのロケーションを指している。
【0031】上記のように、それら2つのプロセスがバ
ッファ内のデータを処理する上で互いに重ならないよう
に、DIPとCHIPとの間で通信を行う機構が必要と
なる。本バッファは、256バイトのページに分割して
、これによりページ・アドレスを1バイト・レジスタに
含むことができるようにしている。各レコードは、ペー
ジ境界上で始まる。CHIPが働きかけている最中のペ
ージ・アドレスは、CBUFレジスタ内に置く。DIP
が働きかけている最中のページ・アドレスは、DBUF
レジスタに置いている。これら2つのレジスタは、それ
ら2つのプロセスが干渉しないよう、本バッファ内のス
ペースを割り当てるのに用いる。
【0032】書込み動作の場合、CHIPは、各レコー
ドに関するデータ転送の完了時にCBUFを進めるよう
にする。読出し動作の場合には、CHIPは、新たなレ
コードに対する次のCCWを受けた時にCBUFを進め
る。一方、DIPは、読出し動作及び書込み動作の両方
に対してデータ・フィールドを転送し終った時に、DB
UFを進めるようにする。
【0033】CHIP又はDIPがCBUF又はDBU
Fを本バッファの始めまでラップさせる度に、WRAP
パラメータをトグルする。ゼロのWRAP値は、CHI
PとDIPが本バッファを通る同じパス上にあることを
示している。1のWRAP値は、充填側プロセスが本バ
ッファの終端から前端までラップしており、そして空白
化側プロセスがラップしていないことを示している。
【0034】読出し動作においては、DIPは、レコー
ドを本バッファに記憶させ、そしてDBUFを進める。 DIPがバッファに記憶するレコードに対して、DIP
はそのレコードと共にDORF.Rを記憶する。CHI
Pがこれが所望するレコードを探索する時、CHIPは
、CORF.Rをそのレコードに関するバッファ内のC
ORF.Rと比較する。もし比較の結果が等しかった場
合、CHIPは、そのレコードをチャンネルに転送し、
等しくなかった場合には、CHIPはCBUFを次のレ
コードに進め、そして一致又はインデックスを見い出す
まで再び比較を行う。
【0035】読出し動作において、DIPはバッファ充
填器であり、CHIPはバッファ空白化器である。CB
UF、DBUF及びWRAPは、CHIPが依然として
要求するバッファ内のレコードにDIPが重ならないよ
う防止するために、図3の表1に説明するように使用す
る。この表1は、WRAPビットがゼロの場合、DIP
が進行しても大丈夫であることを示している。しかしな
がら、WRAPビットが1の場合、DBUFをCBUF
と比較しなければならず、そしてDBUFがCBUFよ
りも小さい場合、これは、DIPがCHIPが既に処理
したページに対してDIPが作用中であることを示して
いるため、DIPは進行しても大丈夫である。しかしな
がら、WRAPが1であり、且つDBUFがCBUFに
等しいかあるいはこのCBUFよりも大きくなろうとし
ている場合、DIPは処理を停止する必要がある。この
時、デバイスが再指向することが必要となる。即ち、無
駄な回転が生じることになる。
【0036】書込み動作について、表1は、WRAPビ
ットがゼロの場合、CHIPはバッファの充填を進めて
も大丈夫である、と示している。WRAPビットが1で
且つCBUFがDBUFよりも小さい場合、CHIPは
バッファの充填を進めても良い。しかしながら、WRA
Pビットが1で且つCBUFがDBUFに等しいかある
いはDBUFよりも大きくなろうとしている場合、CH
IPは、このバッファ・スペースに次のレコードを充填
する前に、DIPがその書込み動作を完了するのを待機
しなければならない。
【0037】図3の表2は、バッファからデータを取り
出す際の規則を示したものである。この場合、読出し動
作において、WRAPビットが1である場合、CHIP
は、バッファの終端までのレコードを全て取り出すのに
進むことができる。しかしながら、このWRAPビット
が読出し動作においてゼロの場合、且つDBUFがCB
UFより大きい時には、CHIPはレコードの取り出し
に進むことができるが、CBUFがDBUFに等しい場
合、CHIPは待機しなければならない。この表2はカ
ウント・フィールド、キー・フィールド、及びデータ・
フィールドを読出すのに待機するための特定の実施規則
について示している。
【0038】書込み動作において、表2は、WRAPが
1の場合、DIPがレコードをバッファの終端まで書き
込むのに進んでも良い、と示している。WRAPビット
がゼロの場合、DIPは、CBUFがDBUFよりも大
きな時に進行しても大丈夫である。しかしながら、CB
UFがDBUFに等しい時には、DIPは、進行する前
に、次動作フィールド有効(NOFVAL)ビットが1
に等しくなるのを待機しなければならない。WRAPビ
ットがゼロで且つCBUFがDBUFより小さい場合、
DIPは待機しなければならない。
【0039】ここで、上記制御ビットNOFVALは、
セットされた時には、CHIPが、カウント・フィール
ドを完了し、バッファ内の次動作フィールド(NOF)
をセットアップし、そしてデータ転送の間デバイス・バ
ッファ・ポインタ(DBP)35をブロックするためチ
ャンネル・バッファ・ポインタ(CBP)36のロード
をし終ったということを示している。
【0040】要約すると、読出し動作の際、DIPはレ
コードをバッファ内に入れてトラックイメージを築くよ
うにバッファを通る。DIPがバッファの終端に至ると
、DIPは前端までラップ(巻き込み)し、そして進行
を続ける。CHIPは、その後からついて行く。CBU
FとDBUFとは、それらCHIPとDIPの間での調
整に用いる。
【0041】書込み動作を実施すべき時、レコード位置
指定命令は、その領域に書き込むべきレコードの数を制
御ユニット12に通知するが、制御ユニットは、それら
レコード用のカウント・フィールドがどんなものである
かは知ることはない。それらのレコードは、同一トラッ
ク上にあるかあるいは異なったトラック上にあるかもし
れない。チャンネル・インターフェース・プロセッサは
、それらレコードをチャンネルからバッファに転送する
ことを開始し、一方デバイス・インターフェース・プロ
セッサは、デバイスを指向させて転送すべきそれらレコ
ードの最初ものを書き込ませる。DIPが指向している
最中の間、CHIPは先に進んでレコードをバッファに
転送するが、CHIPは、DIPが指向を完了する前に
、幾つかのレコードのデータ転送全体を行うことがある
。DIPが指向されると、DIPは、NOFを検査し、
何をすべきか見い出し、そしてバッファを段階的に下っ
てデータをデバイスに書き込む。DIPが書き込むべき
最後のレコードに到達すると、その領域のための目標カ
ウントは1に等しくなり、従ってDIPがこれがその書
き込みを完了した時にCHIPに通知できるようにする
。また、DIPは、エラー回復が必要な場合に、非常事
態プロセッサに通知することができる。非同期動作の場
合、DIPが中間のレコードの1つについてエラーに遭
遇しようとも、連続書込み動作は、最後までCHIPが
実行する。上記の目標カウントは、そのようなエラーが
生じた時に、デバイスにまだ書き込むべきレコードの数
を示すことになる。
【0042】ある成功した書込み動作の終りにおいて、
書込み領域完了バイトをセットして、書込み動作が首尾
良くいったこと、またCHIPが他の仕事に進むことが
できること、をCHIPに通知する。DIPが行う次の
事は、即座に読出しモードに切り換わることである。こ
れは、完全に連動形式で行って、DIPを書込み動作か
ら読出し動作に切り換える上でタイミングの問題が生じ
ないようにする。
【0043】ここで、注意すべきように、図2には、付
加的な衝突回避機構CBP36及びDBP35を示して
ある。CHIP及びDIPが同一レコードに対し作用し
ている場合、これら2つのポインタは、これらが互いに
交差しないように実現する。従って、追跡側プロセスは
、先導側プロセスが先行してこれら2つのプロセスが単
純に互いに追跡できるような時間ができるまで、停止す
る。
【0044】また、書込み動作の期間中、DIPは、キ
ー・フィールド及びデータ・フィールドのサイズを知る
必要がある。カウント・フィールドは、DIPが図2の
33で示した保護領域にコピーしてある。バッファ・ペ
ージ汎用レジスタ・ポインタ(BFPGR)は、その保
護領域内のカウント・フィールドのある場所を指示する
ように設定されている。従って、書込みコマンド時に、
そのBFPGRは、その保護領域を指し、一方DBUF
は、そのデータ・フィールドがある場所ならばどこでも
指す。DBUFはバッファをラップアラウンドするのに
対し、BFPGRは、常にその保護領域の1スポットを
指すようになっている。
【0045】非同期システムにおけるデバイスとチャン
ネル間の別の重要な通信要素は、デバイスが再指向中、
即ち、デバイス内の正しいレコード・ロケーションを探
索している時は必ず、DIPがセットする再指向ビット
と呼ぶビットである。デバイスが正しいレコードに指向
するのに数ミリ秒要することがあるため、CHIPが、
それがDIPがバッファ内を進行するのを待機する点ま
で到達すると、CHIPはその再指向ビットを検査し、
そしてこのビットがセットされている場合、CHIPは
、DIPが再指向中の状態にあることを認知する。その
数ミリ秒はチャンネルがアイドルに留まるには非常に長
い時間であるため、CHIPは、チャンネルを他の仕事
に解放する。DIPが最終的に再指向して再指向ビット
をオフにした時には、CHIPはチャンネルを戻しそし
てこのプロセスが進行する。
【0046】この通信要素はまた、エラー回復のために
非常事態プロセッサが用いる。DIPが問題を持つと、
このDIPは停止して、エラー信号をセットして待機す
る。これが生じた時、CHIPは、最終的には、再指向
時の状態と同様にDIP内へ進むことがある。しかしな
がら、CHIPがバッファ内のDIP内へ入り込む前に
その動作を完了する場合には、DIPがエラーの状態に
あるというだけでCHIPを停止させる理由はない。従
って、CHIPは進行して、そのプロセスを完了し、そ
してチャンネルを他の仕事に解放する。DIPがエラー
の状態にあるという事実は、チャンネルにとっては透明
である。
【0047】非常事態プロセッサ(USURP)19は
、エラー回復状態において何をすべきかを決定しなけれ
ばならず、従ってコマンド・リトライが必要であると決
定した場合には、プロセッサ19はその状態をCHIP
及びDIPに通知する。このリトライが開始すると、C
HIPは再び開始し、そしてDIPは再指向に進み、こ
れにより再指向が完了するまで再指向ビットをセットす
る。それが完了した時、再指向ビットをオフにして、動
作を再始動させる。
【0048】上記のように、非常事態ユティリティ及び
回復プロセス(USURP)19の主な目的は、CHI
P又はDIPのどちらかが検出したエラーから回復する
ことである。DIPがエラーを検出した時には、DIP
は、エラー分析のために、殆んど即座にUSURP19
へ出る。これは、DIPが、エラーがあることをCHI
Pに通知し、且つCHIPがUSURP19に対しDI
Pがエラー状態にあることを通知することにより、行な
う。この技法は、DIPのみが観察したエラーにCHI
Pが応答できるようにするのに使用する。CHIPがエ
ラーを検出して時には、CHIPもまたUSURP19
へ出る。
【0049】エラーは、3つの基本的なカテゴリに分か
れる。リトライ可能なエラーは、データ完全性の問題を
生じることなく制御ユニットがリトライすることのでき
るエラーである。例えば、オーバーラン、データ検査、
又はシーク検査である。非リトライ可能エラーは、装置
検査、非有効シーケンス等の制御ユニットがリトライで
きないエラーである。この非リトライ可能エラーを発見
すると、諸プロセッサは、最終的には停止する。第3の
カテゴリは、実際にはエラーではなく、むしろ「補助」
である。補助は、CHIP又はDIPの正常能力外にあ
る例外的な作用を必要とする特別な状態である。補助を
CHIP又はDIPが必要とする時、USURP19は
、その必要な支援を提供する。これは、シリンダ交差及
び欠陥/代替トラック置換等の活動に対して生ずること
になる。
【0050】上記のように、USURP19の基本的設
計は、CHIP及びDIPが報告した全てのエラーの取
り扱いを完了するまで、1度に1つのエラーを取り扱う
ことである。全てのプロセッサが静止した後、もし1つ
のプロセスだけがエラーを報告した場合、USURP1
9はこのエラーをただちに取り扱う。もしCHIPとD
IPの両方がエラーを報告した場合、USURP19は
、一方のエラーを取り扱い、他方のエラーを延期するよ
う試みる。可能な時はいつでも、USURP19は、追
跡側プロセスが呈示したエラーを取り扱い、先導側プロ
セスが報告したエラーについては延期する。その目標は
、追跡側プロセスが先導側プロセスに追いつけるように
し、また取り扱うべきその1つのエラーのみで終了でき
るようにし、先導側プロセスが報告したエラーをこの時
点まで延期することである。
【0051】しかしながら、エラーのあるものは延期す
ることができない。例えば、先導側プロセスが報告する
チェック2エラーは、追跡側プロセスもまたエラーを報
告していても、取り扱わなければならない。そのような
チェック2エラーは、ただちに取り扱うが、その理由は
、これらタイプのエラーがCHIPとDIPの両方に影
響し従ってどちらも続行できるようになる前に取り扱わ
なければならないために、他のエラーとは区別されるも
のであるからである。従って、チェック2エラーは、た
とえ先導側プロセスがこのエラーを検出した唯一のプロ
セスであっても、先ずUSURP19によるサービスを
受けることになる。
【0052】先導側プロセスのエラーを先ず最初に検討
しなければならない別の場合は、読出し動作を実施中で
あり、且つ追跡側プロセスであるCHIPが補助を要求
する一方、先導側プロセス即ちDIPがデバイス・エラ
ーを検出した時である。このような場合、そのデバイス
・エラーは、CHIPの補助要求に応答する前に、先ず
取り扱わなければならない。ここで再び繰り返すと、補
助はエラーとしてみなしてはいけないが、それらをUS
URP19はエラーと同じ形式で取り扱うことになる。
【0053】追跡側プロセスからのエラーを先ず最初に
取り扱うという一般的な規則に対する更に別の、少なく
とも部分的な例外は、両方のプロセスが補助を報告する
ような状況である。このような状況においては、USU
RP19は、それら2つの補助を一緒に扱うことになる
。これは、読出し動作時に生じ、そしてこれを行うこと
により、各シリンダ交差における余分な回転を節約する
(さもなければ、そのような余分な回転が、先ず追跡側
プロセスの補助を最初にそして次に先導側プロセスを取
り扱うときの再接続及び分断の時間の故に生じたであろ
う)。
【0054】上記一般的な規則に対する更に別の部分的
な例外は、両方のプロセスがチェック2エラーを検出し
た時に、これらのエラーは、チェック2を追跡側プロセ
スに割り当てることにより一緒に取り扱う、ということ
である。先導側プロセスのエラー・コードは、そのエラ
ーを既に1回取り扱ったことになるため、リセットとな
る。
【0055】エラーの報告を、同期制御ユニット実現例
と非同期制御ユニット実現例との間で一貫性のあるもの
とするよう、試みてきた。これを行うためには、非同期
報告方法では、多数の回復データ検査及び多数の読み出
しバイト数を用いて、エラー報告を制御するようにする
。例えば、DIPがエラーを報告しているフィールドを
CHIPが要求しないような読出し動作の場合は、報告
制御ブロックを依然として築くようにする。USURP
19が制御をDIPに戻すと、DIPはそのフィールド
をクロックするのを許されるようになり、そしてその結
果、そのエラーは回復されたものとして扱われることに
なる。従って、チャンネルが関与していないフィールド
に関するリトライ可能エラーは、回復したものとして扱
われる。これは、デバイスから読み出した全てのバイト
をカウントする作用と結び付いて、エラーレート報告を
、同期実現例の場合と等価なものにする。
【0056】上記のように、非同期制御ユニットが、エ
ラー処理に関して同期制御ユニットに近似するようにす
ることが望ましい。これを行うためには、1つのプロセ
スがエラーによって停止したとき、USURP19は、
エラー回復を開始する前に、他方のプロセスも停止する
まで待機する。かくして、CHIP17がUSURP1
9へ出た時には必ず、USURPは、DIP18が既に
エラーによって停止しているということを見い出すか、
あるいはDIPを完了まで(書込みにおいてバッファを
空にする)ランさせるかあるいはDIPに命令して次の
機会(読出し時)において停止させるようにする。DI
Pが一旦停止すると、USURP19は回復動作を開始
する。このアプローチを実現するために、CHIPがエ
ラーを検出し且つDIPがランしている最中のとき、U
SURP19は、DIPに通知して、FINISHDI
P信号又はSTOPDIP信号のどちらかを通して停止
させるようにする。これらの信号は、制御記憶装置14
に位置する。
【0057】上記のFINISHDIPは、書込み動作
に対して用いて、DIPに対し停止するよう通知する。 しかしながら、DIPは、即座に停止せず、むしろそれ
がアイドル状態に入る前にバッファを空にする。
【0058】読出し動作においては、USURP19は
、CHIPがエラーを検出した時STOPDIPをセッ
トして、DIPが停止するのを待機する。そのSTOP
DIPについて、DIPができる限り早く試験するのを
期待する。
【0059】DIPがエラーでUSURP19へ出た時
、CHIPには、DIPがエラー状態で停止したことを
通知する。CHIPは、DIPが更に進行するのを必要
とするまで、レコードの処理を続行することができる。 そして、その必要となった時、CHIPは、USURP
19へ出る。もし読出し動作が進行中の場合、CHIP
は、これがDIPに追いつく前に、CHIPが必要とす
るレコード全ての読出しを完了することが可能である。 上記のように、DIPに追いついた時には、DIPのエ
ラーを取り扱うことになる。CHIPとDIPとは、異
なったレコード又はフィールド上で停止することがある
。それらは、一方が、他方がそれ自身のエラーを検出し
た後ランし続けて新たなエラーに遭遇したために、2つ
の異なったエラーを有することがある。これらのエラー
が両方共リトライ可能てある場合、各々は、異なった組
の回復作用を必要とすることになるであろう。 一般的な規則は、追跡側プロセスのエラーがリトライ可
能である場合、USURP19は、そのエラーを取り扱
い、そして追跡側プロセスを再始動させそして動作が更
に進むことができなくなるまで先導側プロセスが報告し
たエラーの取扱いを延期する、ということである。その
更に進むことができなくなった時点で、その単一エラー
を、同期システムにおけるエラーの取り扱いと殆んど同
じ形式で取り扱うことができるようになる。このプロセ
スは、次に図4、図5、図6及び図7でより、詳細に説
明する。
【0060】図4は、単一エラーのみが報告される場合
のリトライ可能エラーに関するエラー回復プロセスにつ
いて示してある。この図4は、読出し/書込み動作の間
、ステップ100においてそのエラーの報告を示してい
る。DIPがエラーに出会い、そしてSTOPDIP又
はFINISHDIPを検出するかあるいは補助を要求
した時、制御はUSURP19に渡してそのエラー信号
をセットし、これによりそれらの状態を示す。CHIP
がエラーに出会い、DIPがエラー状態にあるのを検出
し、DIPを待機するのをタイムアウトするか、あるい
は補助を要求した時、制御はUSURP19に渡してエ
ラー信号をセットし、それによりそれらの状態を示す。 次に、USURPは制御を引き受け、そしてステップ1
01に示すように、CHIP及びDIPの一方が依然と
してランしている場合は、CHIP及びDIPを停止さ
せる。次に、USURP19は、段階102において、
エラーの数を試験する。2つ以上のエラーに気づいた場
合、図5に示すプロセスへ分岐する。1つのみのエラー
の場合、USURP19は、このエラーをステップ10
3に示すように取り扱う。回復が不成功であった場合、
ステップ112において終了動作を実行する。ステップ
104において回復が成功であった場合、USURP1
9は、ステップ105において、DIP及びCHIPが
同期して動作しているか、即ち追跡側プロセスが先導側
プロセスに追いついた(この場合同期状態にある)か否
かを判定する。その追跡側プロセスが追いついていない
場合、追跡側プロセスのみをステップ106において再
始動させる。追跡側プロセスがバッファを空にして先導
側プロセスを捕らえた場合(ステップ107)、あるい
はそれら2つのプロセスがステップ105において同期
していると判った場合、回復に成功したそのエラーがデ
ータ検査であったか否か判定をする。そのデータ検査で
あった場合、バッファ内のデータ・フィールドは現在訂
正されて有効となっている。この場合、追跡側プロセス
のみをステップ113において再始動させるが、これは
、DIPを再始動させずとも読出し動作に関するコマン
ド連鎖が要求したデータ転送を完了することが今や可能
となっているからである。この特徴については、DOR
F.Fをある特別な値にセットして訂正済みのデータ検
査エラーを示す、ということに関して上に述べた通りで
ある。その特別な値は、ステップ114において質問す
るようになっている。もしその訂正済みのエラーがステ
ップ114での判定のときデータ検査でなかった場合、
先導側プロセスは、通常の読出し又は書込み動作の再始
動のために、追跡側プロセスと共に再始動させる。 これは、ステップ108及び109において示してある
。ステップ106に戻って説明すると、追跡側プロセス
を再始動させた後、この追跡側プロセスが、先導側プロ
セスに追いつく前にエラーに遭遇するか、あるいは追い
つく前に動作を完了することがある。ステップ110に
おいて、エラーに遭遇した時、そのエラーを取り扱いそ
して上記で述べた形式でもって追跡側プロセスを再始動
させるために、ステップ103に戻る。しかし、エラー
に遭遇せず、しかも動作がステップ111に示すように
首尾よく完了した場合には、ここから出ることになる。
【0061】図5に示したプロセスは、CHIPとDI
Pの両方がエラーをUSURPに報告し、そしてこのU
SURPがそれらのエラーが両方共ステップ120にお
いてリトライ可能であると判定する場合のエラー回復プ
ロセスである。ここで注意すべきように、その報告され
たエラーの一方又は両方がチェック2エラーである場合
、このようなエラーの全てが実際にはリトライできるわ
けではないが、ステップ120においては、リトライ可
能であると仮定する。それらのエラーの一方がリトライ
可能でない場合、図8に示すプロセスへ分岐する。2つ
のエラーが報告されそして両方共リトライ可能である場
合、USURP19は、ステップ122において、それ
らエラーが関連しているかあるいは関連していないかの
いずれかを判定する。もしそれらのエラーが関連してい
る場合、あるいは一方又は両方が補助である場合、図6
に示すエラー回復プロセスへ分岐する。一方、それらの
エラーが関連していない場合、USURPは、ステップ
132において、いずれのプロセスがチェック2エラー
を報告しているかについて判定する。もし先導側プロセ
スがそのチェック2エラーを報告している場合、一般的
規則に対する例外が生じて、そのチェック2エラーを、
ステップ133において取り扱う。これを行うのは、チ
ェック2エラーが存在している間、CHIPとDIPの
どちらも進行できないためである。もしその回復が成功
した場合、追跡側プロセスが報告したエラーを、ステッ
プ123において取り扱う。また、ステップ134にお
いて、USURPが、そのチェック2エラーを追跡側プ
ロセスが報告したと判定した場合、あるいはチェック2
エラーがステップ132において何も報告されなかった
場合、追跡側プロセスからのエラーをステップ123に
おいて取り扱い、そしてステップ124において回復が
成功であった場合、追跡側プロセスのみをステップ12
5において再始動させる。これにより追跡側プロセスは
先導側プロセスに追いつくことができ、そして追いつい
た時(ステップ126)、図4のステップ123に戻っ
て、残りのエラー、即ち先導側プロセスが報告したエラ
ーを取り扱うようにする。もしその先導側プロセスのエ
ラーをステップ133において取り扱いを完了していた
場合には、ステップ103及び104はその回復に気づ
き、従って、本プロセスは、ステップ108においてC
HIP及びDIPの両方を再始動させる。しかしながら
、ステップ129において、万一、追跡側プロセスが先
導側プロセスに追いつく前に読出し/書込み動作を完了
した場合、先導側プロセスが気づいたエラーは、ステッ
プ130において取り扱い、そして動作は首尾よく終了
する。また、追跡側プロセスがステップ131において
示すように先導側プロセスに追いつく前にエラーに遭遇
した場合、この新たなエラーを取り扱いそしてこのプロ
セスを継続するために、ステップ120へ分岐を行う。
【0062】図6は、2つのエラーが関連している場合
のエラー回復プロセスについて示している。先ず、ステ
ップ140において、USURPは、どちらかのプロセ
スが補助を報告しているかどうか判定する。もし補助が
要求されている場合、図7に示すプロセスへ分岐する。 これら2つの関連エラーに補助が何も要求されていない
場合、これらはチェック2エラーを含むことになるが、
これは、チェック2エラーが両方のプロセッサに影響を
与えるタイプのエラーであるからである。チェック2エ
ラーは、ステップ141において取り扱い、そしてステ
ップ142において、回復成功の場合、追跡側プロセス
のみを、ステップ143において示すように再始動させ
る。この追跡側プロセスが、ステップ144において、
先導側プロセスに一旦追いつくと、これら2つのプロセ
スは同期状態となる。そして、CHIP及びDIPを両
方共、ステップ145において再始動させる。これは、
この時点において先導側プロセスからのエラーを取扱う
ことを含む。関連したチェック2エラーは既に訂正され
ているため、このステップは、単にCHIP及びDIP
を開始させることに関するものである。このようにして
、一度に1つのみのエラーを取り扱うという目標を実現
できる。再び、ステップ144において、追跡側プロセ
スがまだ先導側プロセスに追いついていない場合には、
ステップ147において、動作が首尾良く終了すること
がある。しかしながら、この追跡側プロセスが、ステッ
プ146に示すように、先導側プロセスに追いつく前に
エラーに遭遇した場合、この新たなエラーを取り扱いそ
して続行するために、図5のステップ120へ分岐を行
なう。
【0063】上記の2つのエラーが、ステップ140に
おいて、補助を含むと判った場合、補助を取り扱うため
に、図7に示すプロセスへ分岐を行なう。ステップ16
0において、USURPは、2つの補助が要求されてい
るかどうか判定する。もしそのように2つ要求されてい
る場合、両方の補助は、ステップ161において取り扱
い、そして両方のプロセスをステップ162において再
始動させる。ステップ160での判定が、1つの補助が
要求されているというものである場合、他方のプロセス
はエラーを検知していることになる。このエラーが、ス
テップ163において示すように、デバイス・エラーで
ある場合、このデバイス・エラーを、補助の取り扱いの
前にステップ164において取り扱わなければならない
。これは、先導側プロセスがそのデバイス・エラーの故
に停止したプロセスである場合には、一般的規則に対す
る例外となる。ステップ165においてデバイス・エラ
ーからの回復が成功した場合、ステップ166において
DIPを再始動させそしてすぐに停止させる。これは、
デバイス・エラーの後全てのDIP問題及びパラメータ
が落ち着くのを保償するのに行なう。次に、上記の2つ
の未解決の補助を取り扱うために、ステップ160へ分
岐する。ステップ163に戻って説明すると、もしエラ
ーがステップ163において示すようなデバイス・エラ
ーでないと判った場合、そのエラーと補助とは、通常の
形式で処理する。即ち、図5のステップ123へ分岐し
、そして追跡側プロセスからのエラー又は補助を取り扱
い、追跡側プロセスを再始動させ、そして先導側プロセ
スは、追跡側プロセスがその補助又はエラーが取り扱わ
れる前に追いつくのを待機する。
【0064】図8は、2つの報告されたエラーの少なく
とも一方がリトライ可能でない、即ち末期(termi
nal)である場合のエラー回復プロセスについて示し
ている。ステップ170において、USURPは、書込
み動作が進行中であるかどうか判定する。もし進行中の
場合で、しかも末期エラーがDIPによって報告されて
いるとステップ171で判定した場合、このエラーをス
テップ172において取り扱い、そして本動作を終了さ
せる。一方、その末期エラーがDIPによって報告され
ていない場合には、DIPの非末期エラーを取り扱うた
めにステップ123へ戻る。CHIPの末期エラーは、
最終的には、DIPがCHIPに追いついた時に取り扱
い、そしてこれはまた、本プロセスの終了をもたらす。
【0065】ステップ170においてその動作を読出し
であると判定した場合、USURPは、CHIPのエラ
ー(追跡側プロセス)が末期であるかどうかをステップ
173において判定する。もし末期でない場合、CHI
Pのそのエラーを取り扱うために、図5のステップ12
3へ戻る。そのエラーから回復した時には、図5に示し
たようにCHIPを再始動させ、動作を続行する。CH
IPは、その末期エラーをもったまま、DIPに追いつ
く前にその読出し動作を首尾良く完了する可能性がある
【0066】ステップ173において、CHIPによっ
て報告されたエラーを末期であると判定した場合、ステ
ップ174においてUSURPは、DIPのエラーが補
助に対する要求であるかどうか判定する。もしそのよう
な要求であった場合、DIPの補助要求は無視し、そし
てCHIPの末期エラーをステップ175において取り
扱って、本プロセスを終了する。しかし、DIPが補助
でなくエラーを報告している場合には、そのエラーをス
テップ176において取り扱い、そして次にCHIPの
末期エラーを取り扱って、本プロセスを終了する。
【0067】
【発明の効果】以上に説明したように、本発明では、非
同期DASD制御ユニットのためのエラー回復プロセス
を提供している。制御ユニット内のチャンネル・プロセ
スは、その制御ユニット内のデバイス・プロセスとは異
なったフィールドに対し働きかけることができる。また
、独立したエラーは、それら各プロセスが検知すること
ができる。本エラー回復プロセスでは、可能な時はいつ
でも、追跡側プロセスのみを再始動させて、先導側プロ
セスが検知したエラーの取扱いの延期を行うようになっ
ている。
【0068】以上に、本発明の好ましい実施例について
例示し説明したが、理解されるように、本発明を開示し
たその構成そのものに限定するものではなく、従って特
許請求の範囲に定める本発明の範囲内に入るような全て
の変更、修正等を包含するものである。
【図面の簡単な説明】
【図1】本発明を包含したデータ処理システムの簡易ブ
ロック図である。
【図2】図1に示したバッファのレイアウトを示す図で
ある。
【図3】データをそのバッファに記憶しまたデータをそ
のバッファから取り出すための規則を示す表1及び表2
を示す図である。
【図4】単一エラーが検知した時の本発明のエラー回復
プロセスを示す図である。
【図5】互いに非関連の多重エラーを検知した時の本発
明のエラー回復プロセスを示す図である。
【図6】互いに関連したエラーをCHIPとDIPの両
者が検知した時の本発明のエラー回復プロセスを示す図
である。
【図7】CHIP又はDIPに1つの補助(又は2つの
補助)を提供するよう要求された時の本発明のエラー回
復プロセスを示す図である。
【図8】2つの報告されたエラーの内の1つが末期であ
る時の本発明のエラー回復プロセスを示す図である。
【符号の説明】
10  ホストプロセッサ 11  チャンネル 12  制御ユニット 13  DASD(直接アクセス記憶デバイス)14 
 制御記憶装置 15  制御レジスタ 16  データバッファ 17  チャンネル・インターフェース・プロセッサ1
8  デバイス・インターフェース・プロセッサ19 
 非常事態プロセッサ 20  プロセッサ

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】  直接アクセス記憶デバイスDASD周
    辺データ記憶システムを作動するマシン実施形作動方法
    であって、前記システムが、デバイス・インターフェー
    ス・プロセッサDIP、DASD、チャンネル・インタ
    ーフェース・プロセッサCHIP、チャンネル、非常事
    態ユティリティ回復プロセッサUSURP、制御レジス
    タ、及びバッファ記憶装置を含んでおり、前記DIPが
    、前記DASD上の記録用トラックと前記バッファとの
    間のデータの転送を制御し、前記CHIPが、前記DI
    Pが実行する前記データ転送と非同期の方法でチャンネ
    ルと前記バッファとの間のデータの転送を制御し、前記
    USURPが、エラー回復動作を制御し、前記CHIP
    が、書込み動作時に先導側プロセスとして動作してデー
    タを前記バッファ内に置き、一方、前記DIPが、追跡
    側プロセスとして動作してデータを前記バッファから取
    り出し、前記DIPが、読出し動作時に先導側プロセス
    として動作してデータを前記バッファ内に置き、一方、
    前記CHIPが、追跡側プロセスとして動作して前記バ
    ッファからデータを取り出すようになっており、前記マ
    シン実施形作動方法が、 イ)エラー状態を検知してエラー信号をセットする段階
    、 ロ)前記のCHIPとDIPの両方が動作を停止するの
    を待機する段階、 ハ)前記エラーがリトライ可能であるかどうか判定し、
    もしリトライ可能である場合、1つのエラーのみを前記
    のCHIP又はDIPのどちらかが検知したかどうかを
    判定し、もし検知した場合、前記エラーを取り扱い、そ
    してその回復した時に、前記CHIP及びDIPが同期
    している場合、CHIPとDIPの両方を再始動させる
    段階、及び ニ)前記CHIP及びDIPが同期していない場合、前
    記追跡側プロセスのみを再始動させる段階、を含むこと
    を特徴とするマシン実施形作動方法。
  2. 【請求項2】  前記追跡側プロセスの再始動を完了し
    ており、更に、前記追跡側プロセスが、1)前記バッフ
    ァ内で前記先導側プロセスに追いつき、前記先導側プロ
    セスを再始動させると共に前記追跡側プロセスの動作を
    継続させるようになるまで、あるいは、2)前記先導側
    プロセスに追いつく前に必要なデータ転送を全て首尾良
    く完了するまで、あるいは、3)前記先導側プロセスに
    追いつく前にエラーを検知するまで、前記追跡側プロセ
    スの動作を通してデータを転送する、マシン実行形段階
    を更に含むこと、を特徴とする請求項1の方法。
  3. 【請求項3】  前記先導側プロセスに追いつく前にエ
    ラーを前記追跡側プロセスが検知しており、更に、前記
    追跡側プロセスの前記データ転送を停止させ、前記エラ
    ーがリトライ可能であるかどうか判定し、そしてもしリ
    トライ可能である場合、前記エラーから回復し、そして
    回復した時に、前記追跡側プロセスを再始動させ、そし
    て次に請求項2の段階を反復する、段階を更に含むこと
    、を特徴とする請求項2の方法。
  4. 【請求項4】  前記先導側プロセスと追跡側プロセス
    が両方共、エラー状態を検知していると判定しており、
    前記の両方のエラーがリトライ可能であることを判定し
    、前記エラーが関連していないことを判定し、前記先導
    側プロセスが前記追跡側プロセスの動作の継続と干渉す
    る場合にのみ、前記先導側プロセスからのエラーを取り
    扱い、前記追跡側プロセスからのエラーを取り扱い、そ
    して回復した時、前記追跡側プロセスのみを再始動させ
    、前記先導側プロセスをエラー状態で停止したままにす
    る、マシン実行形段階を更に含むこと、を特徴とする請
    求項1の方法。
  5. 【請求項5】  読出し動作の場合、前記の再始動させ
    た追跡側プロセス(CHIP)が、前記バッファ内での
    データ処理において前記先導側プロセス(DIP)に追
    いつき、次に前記先導側プロセスからのエラーを取り扱
    い、そしてこのエラーが前記データ・フィールドにおい
    て生じたものであった場合、前記フィールドの訂正時に
    、前記データ・フィールドが有効であることを前記CH
    IPに指示し、前記の訂正データ・フィールドが前記の
    読出し動作において必要な最後のフィールドであるかど
    うかを判定し、そして最後のフィールドである場合、前
    記追跡側プロセスのみを再始動させて、これによりDI
    Pを再始動させる必要を回避する、マシン実行形段階を
    更に含むこと、を特徴とする請求項4の方法。
  6. 【請求項6】  前記の再始動させた追跡側プロセスが
    前記バッファ内でのデータ処理において前記先導側プロ
    セスに追いつき、次に前記先導側プロセスからの前記エ
    ラーを取り扱い、そして回復時に前記のCHIPとDI
    Pの両方を再始動させる、ことを特徴とする請求項4の
    方法。
  7. 【請求項7】  前記の再始動させた追跡側プロセスが
    、前記先導側プロセスに追いつく前に全ての要求された
    データ転送を首尾良く完了し、更に、前記先導側プロセ
    スからの前記エラーを取り扱う、マシン実行形段階を更
    に含むこと、を特徴とする請求項4の方法。
  8. 【請求項8】  両方のエラーがリトライ可能であり且
    つこれらのエラーが関連している、と判定しており、次
    に、前記のエラーを取り扱い、そして回復した時に、前
    記追跡側プロセスのみを再始動させ、これにより前記追
    跡側プロセスが前記先導側プロセスに追いつけるように
    し、次に前記先導側プロセスを再始動させると共に前記
    追跡側プロセスの動作を継続させる、ことを特徴とする
    請求項4の方法。
JP3173631A 1990-08-31 1991-07-15 非同期制御ユニットにおけるエラー回復方法 Expired - Lifetime JPH0679274B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US57573490A 1990-08-31 1990-08-31
US575734 1990-08-31

Publications (2)

Publication Number Publication Date
JPH04282731A true JPH04282731A (ja) 1992-10-07
JPH0679274B2 JPH0679274B2 (ja) 1994-10-05

Family

ID=24301481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3173631A Expired - Lifetime JPH0679274B2 (ja) 1990-08-31 1991-07-15 非同期制御ユニットにおけるエラー回復方法

Country Status (2)

Country Link
US (1) US5446872A (ja)
JP (1) JPH0679274B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5555390A (en) * 1992-10-19 1996-09-10 International Business Machines Corporation Data storage method and subsystem including a device controller for respecifying an amended start address
US5805791A (en) * 1996-04-22 1998-09-08 Advanced Micro Devices, Inc. Method and system for detection of and graceful recovery from a peripheral device fault
US5901327A (en) * 1996-05-28 1999-05-04 Emc Corporation Bundling of write data from channel commands in a command chain for transmission over a data link between data storage systems for remote data mirroring
US6052797A (en) * 1996-05-28 2000-04-18 Emc Corporation Remotely mirrored data storage system with a count indicative of data consistency
JP3290365B2 (ja) * 1996-11-19 2002-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーション エラー回復プロシージャを実行する方法
US6199171B1 (en) * 1998-06-26 2001-03-06 International Business Machines Corporation Time-lag duplexing techniques
US6339799B1 (en) 1998-10-29 2002-01-15 International Business Machines Corporation Method of repositioning an I/O device to a predetermined position to retry a program without knowledge of which part of the program caused the retry
US6343335B1 (en) 1998-10-29 2002-01-29 International Business Machines Corporation System for repositioning an I/O device to a predetermined position to retry a program without knowledge of which part of the program caused the retry
US6336194B1 (en) * 1998-10-29 2002-01-01 International Business Machines Corporation Program products for repositioning an input/output device without knowledge of current positioning of the device
US7197663B2 (en) * 2003-11-20 2007-03-27 International Business Machines Corporation Concurrent PPRC/FCP and host access to secondary PPRC/FCP device through independent error management
CN105702257A (zh) * 2015-08-12 2016-06-22 乐视致新电子科技(天津)有限公司 语音处理方法与装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4779189A (en) * 1985-06-28 1988-10-18 International Business Machines Corporation Peripheral subsystem initialization method and apparatus
US4974147A (en) * 1988-12-21 1990-11-27 International Business Machines Corporation Programmable quiesce apparatus for retry, recovery and debug
US5155814A (en) * 1990-08-31 1992-10-13 International Business Machines Corporation Nonsynchronous channel/dasd communication system
US5235692A (en) * 1990-08-31 1993-08-10 International Business Machines Corporation Disk rotational position controls for channel operations in a cached peripheral subsystem

Also Published As

Publication number Publication date
JPH0679274B2 (ja) 1994-10-05
US5446872A (en) 1995-08-29

Similar Documents

Publication Publication Date Title
US5548788A (en) Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory
US5235692A (en) Disk rotational position controls for channel operations in a cached peripheral subsystem
JPS5823377A (ja) デ−タ記憶システム
JPH0532764B2 (ja)
JPS60142418A (ja) 入出力エラ−回復方式
JPH04282731A (ja) 非同期制御ユニットにおけるエラー回復方法
EP0473314B1 (en) Peripheral data processing system control apparatus
US5426761A (en) Cache DASD sequential staging and method
JP2759920B2 (ja) Dasd周辺データ記憶サブシステムの作動方法及び装置
EP0342805B1 (en) Data-processing sub-system operating method
JPS62119626A (ja) 磁気デイスクの多重制御方式
JPS6357812B2 (ja)
US6957302B2 (en) System and method for performing write operations in a disk drive using a write stack drive
JPH04251421A (ja) ディスク・ドライブのヘッド/アームの径方向移動回数を低減する方法
JPS63180153A (ja) キヤツシユ記憶のラインバツク制御方式
JPH0281224A (ja) 磁気ディスク装置のバックアップ装置
JPS58114152A (ja) 磁気デイスクバツクアツプ装置
JP2000163277A (ja) Dasd制御装置間のデータ転送方法
JPH02222027A (ja) 補助記憶装置のデータ多重書き制御方式
JPS5985562A (ja) デイスク制御方式
JPH04270432A (ja) ディスクキャッシュ制御方式
JPS64727B2 (ja)
JPS5896326A (ja) 入出力制御方法
JPH0421021A (ja) 半導体ディスク装置のデータバックアップ方式
JPH0338716A (ja) 周辺制御装置