JPH08241263A - I/o要求処理計算機システム及び処理方法 - Google Patents

I/o要求処理計算機システム及び処理方法

Info

Publication number
JPH08241263A
JPH08241263A JP7332935A JP33293595A JPH08241263A JP H08241263 A JPH08241263 A JP H08241263A JP 7332935 A JP7332935 A JP 7332935A JP 33293595 A JP33293595 A JP 33293595A JP H08241263 A JPH08241263 A JP H08241263A
Authority
JP
Japan
Prior art keywords
job control
control data
data structure
request
jcb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7332935A
Other languages
English (en)
Inventor
Randy J Matthews
ランディ・ジェー・マットヒューズ
Wade A Dolphin
ウエイド・エー・ドルフィン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH08241263A publication Critical patent/JPH08241263A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】十分な記憶容量を備えた記憶システムにおい
て、複数のユーザによって発生するI/O要求を適時処
理し、同時に、こうした共用資源が使用中の時間を最小
限に抑えることができる、高価すぎないシステム及び方
法の提供。 【解決手段】コントローラ・メモリ50には、正規ジョ
ブ制御データ構造を納める正規JCBテーブル52が含
まれ、正規JCBをずっと把握しておくため、フリーの
待ち行列54と活動待ち行列56が設けられている。コ
ントローラ・メモリ50には、最小限ジョブ制御データ
構造を納める最小限のJCBテーブル58も含まれてい
る。最小限JCBテーブル58は、最小限JCBフリー
待ち行列60と最小限JCBペンディング待ち行列62
を備えることで、全ての最小限JCBに対処する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、インターフェイス・バ
スを介した記憶ディスク・アレイに対するI/O要求を
取り扱うためのシステム及び方法に関するものである。
本発明は、また、I/O要求を完了できるまで、I/O
要求の一部を一時的に保持するために用いられるメモリ
・データ構造に関するものである。
【0002】
【従来の技術】ここ数年のうちに、多くの「インテリジ
ェント」・コンピュータがローカル・インターフェイス
・ネットワークによって相互接続された、小規模のロー
カル・エリヤ・ネットワーク(LAN)の人気が急激に
高まってきている。コンピュータ及び支援ソフトウェア
の複雑性及び精巧さが急速に進むことによって、この人
気が煽り立てられている。今日のコンピュータは、10
年前には得られなかった途方もない処理速度及び記憶資
源を備えている。結果として、LANは、中小企業にと
って望ましい構造の1つになっており、集中形コンピュ
ータ及び記憶センタに接続された多くの「ダム(dumb)」
・ターミナルから構成されるメインフレーム・アーキテ
クチャに取って代わる場合が多い。大企業でさえ、メイ
ンフレームからよりフレキシブルなLANに頼ろうとす
る変化が生じている。
【0003】
【発明が解決しようとする課題】LANの進化によっ
て、支援を受けるユーザがますます多くなるにつれて、
複数のユーザによって記憶されている大量のデータを収
容するのに十分な記憶容量を備えた記憶システムを提供
する必要が増してきた。これらの記憶システムは、複数
のユーザによって発生する数を増すI/O要求を適時処
理することが可能であって、同時に、こうした共用資源
が使用中の様相を示す時間を最小限に抑えることができ
なければならない。これら2つの目標と同時に、あまり
に高価すぎない記憶システムを提供することが常に所望
されている。
【0004】
【課題を解決するための手段】本発明の態様の1つによ
れば、多重(multi)タスク・多重イニシエータ環境にお
いて大量のI/O要求を効率よく取り扱う計算機システ
ムが得られる。すなわち、計算機システムには、インタ
ーフェイス・バス、バスに接続された少なくとも1つの
記憶ディスク・アレイ、及び、インターフェイス・バス
に接続されて、記憶ディスク・アレイによって実施され
るI/Oプロセスを要求する複数のイニシエータが含ま
れている。該システムには、さらに、2タイプのジョブ
制御データ構造、すなわち、(1)I/O要求を処理
し、完了するための情報を保持する正規ジョブ制御デー
タ構造と、(2)正規ジョブ制御データ構造が利用でき
ない場合に一時的に用いられる、最小限ジョブ制御デー
タ構造の一方に、イニシエータから受信したI/O要求
を割り当てるように構成されたディスク・アレイ・コン
トローラが含まれている。各最小限ジョブ制御データ構
造は、正規ジョブ制御データ構造がもう1度利用可能に
なった時点において、完了させるためにI/O要求を再
起動するのに十分なI/O要求からの情報のサブセット
を保持している。ディスク・アレイ・コントローラが、
最小限ジョブ制御データ構造にI/O要求を割り当てる
のは、I/O要求からの情報の保持にフリーの正規ジョ
ブ制御データ構造を利用できない場合に限るのが望まし
い。
【0005】望ましい個々のサイズが16バイトの最小
限ジョブ制御データ構造は、1024バイトの正規ジョ
ブ制御データ構造に比べるとかなり小さい。結果とし
て、数千の最小限ジョブ制御データ構造を設けることに
よって、メモリ割り当てに関して極めてわずかなコスト
でI/O要求から最小限の量の情報を記憶することが可
能になる。
【0006】もう1つの態様によれば、多重タスク・多
重イニシエータ計算機システムを操作するための方法が
得られる。この方法には、記憶ディスク・アレイにおい
てI/O要求を処理するための情報を含むI/O操作を
要求するステップと、対応する正規ジョブ制御データ構
造に各I/O要求を割り当てるステップと、I/O要求
の処理に利用可能なフリーの正規ジョブ制御データ構造
がない場合に、I/O要求からの情報のサブセットを対
応する最小限ジョブ制御データ構造に割り当てるステッ
プが含まれており、情報のサブセットは、完了させるた
めにI/O要求を再起動するのに十分である。
【0007】本発明のさらにもう1つの態様によれば、
I/O要求からの情報のサブセットを保持するためのデ
ータ構造が得られる。
【0008】
【実施例】図1には、多重タスク・多重イニシエータ計
算機システム10が示されている。計算機システム10
には、インターフェイス・バス12、バスに接続された
少なくとも1つの記憶ディスク・アレイ14、及び、バ
スに接続された複数のイニシエータ20(1)、20
(2)、...、20(m)が含まれている。バス12
は、一般に、コンピュータ及びネットワーク・システム
に用いられるSCSI(小型コンピュータ・システム・
インターフェイス)タイプのインターフェイス・バスが
望ましい。本書で用いられる用語の多くは、SCSIに
関連して理解されるものであるため、この開示の読者
は、SCSIベースのシステム及び用語に関する作業知
識を有しているものと仮定する。
【0009】記憶ディスク・アレイ14は、複数のイニ
シエータの任意の1つによって用いられるデータを記憶
するために設けられている。ディスク・アレイ14に
は、SCSIバスに接続されたディスク・アレイ・コン
トローラ16及びコントローラに取り付けられた複数の
LUN(論理装置)18(1)、18(2)、...1
8(n)が含まれている。望ましい実施例の場合、8つ
のLUNがディスク・アレイ・コントローラ16によっ
て規定される。各LUNは、イニシエータまたはホスト
・コンピュータから見て、ソフトウェアによって意図す
るところが決まるディスク・アレイ内の物理的記憶ディ
スクまたは仮想記憶ディスクである。LUNは、ディス
ク・アレイ・コントローラ16によって管理される。
【0010】実施例によれば、記憶ディスク・アレイ1
4は、物理的に、12個の能動的メカニカル・ベイが1
2個の記憶ディスクを収容するように構成されている。
これらの記憶ディスクのサイズ例は1〜3ギガバイトで
ある。記憶ディスクは、別個にメカニカル・ベイに接続
または取り外しが可能である。4つの内部SCSIバス
を用いて、ベイとディスク・アレイ・コントローラ16
のインターフェイスが行われる(すなわち、3つのメカ
ニカル・ベイにつき1つのバス)。能動的ベイが完全に
ロードされると、データ記憶システムは、例えば、12
〜36ギガバイトの組み合わせ容量を備えることにな
る。
【0011】イニシエータ20(1)〜20(m)は、
SCSIバスに接続されて、SCSIバスに接続された
別の「ターゲット」装置によるI/O処理の実施を要求
する装置である。望ましい実施例の場合、「ターゲッ
ト」装置は、ディスク・アレイ14である。イニシエー
タは、SCSIバス12を介して結合され、ディスク・
アレイ14の資源を共用する1つ以上のホスト・コンピ
ュータに常駐することが望ましい。予測される実施例の
1つは、複数の異なるイニシエータを相互接続するLA
Nのための共通記憶域としてディスク・アレイ14を設
けることである。好適には、計算機システムは、15個
の異なるイニシエータを収容する。
【0012】イニシエータの1つによって送られてくる
各I/O要求には、記憶ディスク・アレイにおけるデー
タ処理に十分な情報が含まれている。典型的なI/O要
求には、イニシエータのID、LUNのID、ディスク
上の情報位置のアドレス、セクタ情報、データ・バッフ
ァ・ポイント、コマンド命令、命令のID、及び、命令
順序情報が含まれている。
【0013】ディスク・アレイ・コントローラ16は、
本書において代わりにジョブ制御ブロックとも呼ばれる
正規ジョブ制御データ構造(JCBまたは正規JCB)
に対して、イニシエータ20(1)〜20(m)から受
信したI/O要求を割り当てるように構成されている。
正規ジョブ制御データ構造は、記憶ディスク・アレイに
おけるデータ処理のためのI/O要求からの情報を全て
保持している。一般に、正規ジョブ制御データ構造のサ
イズは、約1024バイトである。従って、1つのI/
O要求は、1つのジョブ制御ブロックにマッピングを行
う。多重タスク・多重イニシエータ環境において、15
のイニシエータ20(1)〜20(m)の1つが、18
のLUN18(1)〜18(n)の1つに可能性のある
256の独自のコマンドの1つを個別に送っている。1
つの1024バイトのJCBが可能性のある各順列に割
り当てられる場合、メモリの重要な部分(例えば30メ
ガバイトの規模の)は、JCBのためだけに取っておく
必要がある。これは、こうしたI/O要求を保持するた
めに割り当てるには、あまりに多すぎる記憶量である。
【0014】従って、システムによっては、I/O要求
からの情報を保持するために固定数の正規JCBが利用
されてきた。I/O要求は先着順サービスによって取り
扱われるので、共通記憶資源について競合するイニシエ
ータ間の競合条件が確立される。異なるイニシエータに
よって送られてくるI/O要求数が固定数を超えると、
要求側イニシエータに待ち行列満杯または使用中状況が
戻される。ホスト・コンピュータまたはイニシエータ
は、共通資源のポーリングをさせられて、フリーのJC
Bが利用可能になると、これを確認する。このポーリン
グは、ホスト・コンピュータの帯域幅の見地からすると
高くつくので、一般には実施されない。従って、この実
施は不完全な場合が多い。代替案として、フリーのJC
Bが利用可能になったか否かを判定する試みを周期的に
繰り返すように、SCSIバスを構成することも可能で
ある。あいにく、これらの形式による反復試行は、ポー
リングまたは再試行によってフリーのJCBを識別する
前に、別のイニシエータがフリーのJCBに到達するこ
とによって挫折する可能性がある。
【0015】従来システムにおけるこうした欠点を考慮
して、本発明の態様の1つは、競合条件、反復再試行、
及び、待ち行列満杯メッセージに頼らずに、複数のイニ
シエータからのI/O要求の全てに適応するシステムを
提供する。本発明の該システムでは、各イニシエータ及
びLUN毎に最小限の待ち行列の深さを保証することに
よって、多重イニシエータ環境における予測が可能にな
る。
【0016】正規ジョブ制御データ構造が利用できない
場合には、ディスク・アレイ・コントローラ16は、本
書において代わりに最小限ジョブ制御ブロック(または
最小限JCB)と呼ばれることもある最小限ジョブ制御
データ構造にイニシエータ20(1)〜20(m)から
受信するI/O要求を割り当てる。最小限ジョブ制御デ
ータ構造は、正規ジョブ制御データ構造が利用できない
間、一時的に利用されるだけである。各最小限ジョブ制
御データ構造は、正規ジョブ制御データ構造がもう1度
利用可能になると、完了させるためにI/O要求を再起
動するのに十分なI/O要求からの情報のサブセットを
保持している。最小限ジョブ制御データ構造のサイズ
は、正規ジョブ制御データ構造に比較してかなり小さ
い。最小限JCBは、正規JCBの場合の1024に対
して、64バイト以下が望ましく、最も望ましいのは1
6バイトである。
【0017】図2には、最小限ジョブ制御データ構造3
0が示されている。該データ構造は、イニシエータ20
(1)〜20(m)の1つのIDを保持するための第1
のフィールド32と、記憶ディスク・アレイ14内の場
所のID(例えば、SCSILUN)を保持するための
第2のフィールド34から構成される。第1と第2のフ
ィールドは、それぞれ、1バイトが望ましい。記憶ディ
スク・アレイが実施すべき処理を表した、イニシエータ
によって与えられるコマンド命令を保持するため、第3
のフィールド36が設けられている。望ましい実施例の
場合、この第3のフィールドは10バイトである。最小
限JCB30は、命令順序情報(例えば、simpl
e、head、または、orderedといったSCS
I待ち行列コード)を保持するための1バイトの第4の
フィールド38も備えている。命令のID(例えば、S
CSI待ち行列タグ)を保持するために、1バイトの第
5のフィールド40が設けられており、次の最小限ジョ
ブ制御データ構造に対するリンク・アドレスを保持する
ために、2バイトの第6のフィールド42が設けられて
いる。サイズが16バイトの場合、第1のフィールド〜
第6のフィールドが保持している情報は、I/O要求を
再起動するのに十分であるが、記憶ディスク・アレイに
記憶されるデータの処理には不十分である。
【0018】望ましい実施例の1つでは、ディスク・ア
レイ・コントローラは、メモリの64Kバイトを費やす
64の正規JCB(すなわち、64×1024バイト/
JCB)と、メモリの64Kバイトを費やす4000ま
での最小限JCB(すなわち、4000×16バイト/
最小限JCB)によって構成される。従って、これらの
構造を支援するために用いられるメモリの128Kバイ
トは、別様であれば、可能性のある全てのコマンド/L
UN/イニシエータの組み合わせに正規JCBを1対1
でマッピングするために用いられることになる30メガ
バイトよりも大幅に少ない。
【0019】図3は、記憶ディスク・アレイ・コントロ
ーラ16におけるコントローラ・メモリ50のブロック
図である。コントローラ・メモリ50は、2タイプのジ
ョブ制御データ構造、すなわち、正規JCBと最小限J
CBを保持するように構成されている。メモリ50に
は、正規ジョブ制御データ構造を納める正規JCBテー
ブル52が含まれている。正規JCBをずっと把握して
おくため、フリーの待ち行列54と活動待ち行列56が
設けられている。全ての正規JCBは、JCBフリー待
ち行列54とJCB活動待ち行列56のいずれかに入る
ことになる。JCBフリー待ち行列54は、正規JCB
の最大数(例えば64)に初期設定され、JCB活動待
ち行列56は、空として初期設定される。
【0020】コントローラ・メモリ50には、最小限ジ
ョブ制御データ構造を納める最小限のJCBテーブル5
8も含まれている。最小限JCBテーブル58は、最小
限JCBフリー待ち行列60と最小限JCBペンディン
グ待ち行列62を備えることで、全ての最小限JCBに
対処する。テーブル58の全ての最小限JCBは、最小
限JCBフリー待ち行列60と、最小限JCBペンディ
ング待ち行列62のいずれかにリンクされるが、両方に
同時にリンクされることはない。最小限JCBフリー待
ち行列60は、利用可能な最小限JCBの最大数(例え
ば、4000)に初期設定され、最小限JCBペンディ
ング待ち行列62は、空として初期設定される。
【0021】図4には、最小限JCBテーブル58の望
ましい構成が示されている。テーブル58は、最小限J
CB 0〜最小限JCB zで表した、最小限ジョブ制
御データ構造の1次元アレイである。該テーブルは、任
意のイニシエータ及びLUNに利用可能な最小限JCB
のプールを表している。該システムが、インターフェイ
ス・バスに接続された複数のホスト・コンピュータによ
って課せられるさまざまな要求に適応できるように、所
定のイニシエータまたはLUNのために予約された最小
限JCBは存在しないことが望ましい。
【0022】最小限JCBテーブル58は、3つのソー
スからインデクシングを施される。まず、各最小限JC
Bは、次の最小限JCBを識別するリンク・アドレス4
2(図2)を備えている。この内部ポインタが図4に矢
印70として示されている。リンクされたリストの後尾
に位置する最小限JCBは、後続の最小限JCBが存在
しないので、NULLリンク項目を備えている点に留意
されたい。
【0023】最小限JCBにインデクシングを施す第2
のソースは、最小限JCBフリー待ち行列60(図3)
を表すポインタである。これらのポインタには、最小限
JCB FREE_Q_HEAD72及び最小限JCB
FREE_Q_TAIL74がある。最小限JCBフ
リー待ち行列60は、NULLリンク項目を有する最後
の最小限JCBを含む、互いに連鎖したテーブル内の全
ての最小限JCBによって初期化される。最小限JCB
が必要とされる場合には、最小限JCB FREE_Q
_HEAD72の先頭の最小限JCBに、最小限JCB
0といった割り当てが行われる。最小限JCB 0に
は、I/O要求からの情報のサブセットが入力される。
次に、最小限JCB 0は最小限JCBペンディング待
ち行列に入れられる。4000の最小限JCBが全てペ
ンディングであることを表す、最小限JCBフリー待ち
行列が空という稀な場合には、コマンドを送るイニシエ
ータに待ち行列満杯状況メッセージが送られる。
【0024】第3のテーブル・インデクシング・ソース
は、最小限JCBペンディング62待ち行列(図3)を
表すポインタである。これらのポインタは、最小限JC
BPENDING_Q_HEAD 76と最小限JCB
PENDING_Q_TAIIL 78から構成され
る。ペンディング待ち行列62は、正規ジョブ制御デー
タ構造が利用可能になると、I/O要求を再起動するた
めの情報のサブセットを納めた全ての待機中の最小限J
CBから構成される。アレイ項目を利用して他のアレイ
項目を示す技法によって、複数の待ち行列が、必要に応
じてテーブルを縫うようにして進むことが可能になると
いう点に留意されたい。
【0025】次に、図5のステップ、及び、図3〜4に
示す構造に関連して、対応する待ち行列54及び56を
備えた正規JCBテーブル52と、対応する待ち行列6
0及び62を備えた最小限JCBテーブル58の相互作
用及び操作についてさらに詳述することにする。ステッ
プ100において、4つの待ち行列が、全て、次のよう
に初期設定される:正規JCBフリー待ち行列54は、
正規JCBの最大数(例えば64)に初期設定され、正
規JCB活動待ち行列56は、空として初期設定され、
最小限JCBフリー待ち行列60は、利用可能な最小限
JCBの最大数(例えば4000)に初期設定され、最
小限JCBペンディング待ち行列62は、空として初期
設定される。ステップ102において、ディスク・アレ
イ・コントローラは、イニシエータからディスク・アレ
イにおいてデータ処理を行うようにとのI/O要求を受
信する。正規JCBフリー待ち行列54が空でなければ
(すなわち、ステップ104から「いいえ」の分岐)、
すなわち、64の正規サイズのジョブ制御データ構造の
1つを利用可能であるという場合には、I/O要求はフ
リーの正規JCBに割り当てられる(ステップ10
6)。正規JCBは、フリー待ち行列54から移行し、
正規JCB活動待ち行列56に入れられる(ステップ1
08)。次に、I/O要求が処理され、完了する(ステ
ップ110)。
【0026】再びステップ104を参照すると、利用可
能なフリーの正規JCBがなく、正規JCBフリー待ち
行列が空の場合(すなわち、ステップ104から「は
い」の分岐)、すなわち、64の正規サイズのジョブ制
御データ構造の全てが、現在活動状態にあるという場合
には、I/O要求からの情報のサブセットを受信するフ
リーの最小限JCBが存在するか否かの判定が行われる
(ステップ112)。最小限JCBフリー待ち行列が空
である、すなわち、400の最小限JCBが全てペンデ
ィングであるという稀な場合には(すなわち、ステップ
112から「はい」の分岐)、待ち行列満杯状況がイニ
シエータに戻される(ステップ114)。しかし、ほと
んど全ての状況において、最小限JCBフリー待ち行列
が空になることはなく、従って、I/O要求からの情報
のサブセットは、利用可能な最小限ジョブ制御データ構
造に割り当てられる(ステップ116)。次に、新たに
充填される最小限JCBが、フリー待ち行列60から転
送されて、最小限JCBペンディング待ち行列62に入
れられ、正規JCBが利用可能になるのを待つことにな
る(ステップ118)。
【0027】ステップ120において、I/O要求が完
了すると、対応する正規JCBがもう1度自由に利用で
きるようになる。ディスク・アレイ・コントローラがチ
ェックを行って、ペンディング待ち行列における最小限
JCBの有無を確認する(ステップ120)。最小限J
CBがなければ(すなわち、ステップ120から「いい
え」の分岐)、正規JCBが正規JCBフリー待ち行列
54に戻され(ステップ122)、流れ分岐「A」によ
って示されるように、I/O要求を待つことになる。
【0028】1つ以上の最小限JCBがペンディングの
場合(ステップ118からの流れ分岐「B」によって示
すように)、最小限JCBが正規JCBに割り当てら
れ、最小限JCBに含まれる最少量の情報を用いてI/
O要求が再起動される(ステップ124)。ペンディン
グの最小限JCBが、LUNまたはイニシエータの優先
順位に関係なく、FIFO(先入れ先出し)順に新たに
利用可能になる正規JCBに割り当てられる。最小限J
CBは、FIFO以外のより望ましくない順序で待ち行
列から外される場合、飢餓状態を回避する何らかの手段
が含まれることになる。ステップ126において、最小
限JCBがペンディング待ち行列62からフリー待ち行
列60に戻される。
【0029】規則に従って、構造及び方法上の特徴に関
して多少とも固有の言語によって本発明の説明を行って
きた。しかし、本書に開示の手段は、本発明を実施する
上での望ましい形態から構成されるものであるので、本
発明が、例示し、解説した固有の特徴に制限されるもの
でないことは明らかである。従って、本発明は、同等物
の原則に基づいて適正に解釈される付属の請求項の適切
な範囲内における、そのいかなる形態または修正に関し
ても請求されることになる。
【0030】以上、本発明の実施例について詳述した
が、以下、本発明を各実施態様毎に列挙する。 (実施態様1) インターフェイス・バスと、インター
フェイス・バスに接続された、データを記憶するための
少なくとも1つの記憶ディスク・アレイと、インターフ
ェイス・バスに接続されて、記憶ディスク・アレイによ
るI/O処理の実施を要求し、各I/O要求毎にI/O
要求を処理するための情報を含む、多重イニシエータ
と、記憶ディスク・アレイに設けられ、2タイプのジョ
ブ制御データ構造、すなわち、(1)I/O要求を処理
し、完了するための情報を保持する正規ジョブ制御デー
タ構造と、(2)正規ジョブ制御データ構造が利用でき
ない場合に一時的に用いられる、それぞれ、正規ジョブ
制御データ構造がもう1度利用可能になった時点におい
て、完了させるためにI/O要求を再起動するのに十分
なI/O要求からの情報のサブセットを保持している、
の最小限ジョブ制御データ構造の一方に、イニシエータ
から受信したI/O要求を割り当てるように構成された
ディスク・アレイ・コントローラを有する多重タスク・
多重イニシエータ計算機システム。 (実施態様2) 前記正規のジョブ制御データ構造のサ
イズが約1024バイトであり、前記最小限ジョブ制御
データ構造のサイズが16バイトであることを特徴とす
る、実施態様1に記載の計算機システム。 (実施態様3) I/O要求からの情報の保持にフリー
の正規ジョブ制御データ構造を利用できない場合にり、
前記ディスク・アレイ・コントローラが、最小限ジョブ
制御データ構造にI/O要求を割り当てることを特徴と
する、実施態様1に記載の計算機システム。 (実施態様4) 前記最小限ジョブ制御データ構造が、
1次元アレイ・テーブルに配列されていることを特徴と
する、実施態様1に記載の計算機システム。 (実施態様5) 前記最小限ジョブ制御データ構造に、
次のデータ構造に対するリンク・アドレスが含まれてい
ることを特徴とする、実施態様4に記載の計算機システ
ム。 (実施態様6) 前記最小限ジョブ制御データ構造が、
2つの待ち行列の1つに保持されることと、前記フリー
の待ち行列には、利用可能な全ての未使用ジョブ制御デ
ータ構造が含まれ、前記ペンディング待ち行列には、現
在利用されている全ての最小限ジョブ制御データ構造が
含まれることを特徴とする、実施態様4に記載の計算機
システム。 (実施態様7) 複数のイニシエータ、少なくとも1つ
の記憶ディスク・アレイ、及び、イニシエータと記憶デ
ィスク・アレイを相互接続するインターフェイス・バス
を備えた多重タスク・多重イニシエータ計算機システム
の処理方法において、正規ジョブ制御データ構造及び最
小限ジョブ制御構造を設けるステップと、記憶ディスク
・アレイにおいてI/O要求を処理するための情報を含
んでいるI/O操作を要求するステップと、記憶ディス
ク・アレイ内にI/O要求を処理するための情報を保持
している、対応する正規ジョブ制御データ構造に各I/
O要求の割当を行うステップと、I/O要求の処理に利
用可能なフリーの正規ジョブ制御データ構造がない場
合、完了させるためにI/O要求を再起動するのに十分
なI/O要求からの情報のサブセットを対応する最小限
ジョブ制御データ構造に割り当てるステップを有する処
理方法。 (実施態様8) 記憶ディスク・アレイにおけるデータ
処理に関するI/O要求からの情報の全てを保持するの
に、正規ジョブ制御データ構造が利用可能になると、最
小限ジョブ制御データ構造に保持されている情報のサブ
セットを利用して、I/O要求を再起動するステップを
有することを特徴とする、実施態様7に記載の処理方
法。 (実施態様9) ディスク・アレイ・コントローラ・メ
モリにおける、イニシエータによって発生し、インター
フェイス・バスを介して伝送され、記憶ディスク・アレ
イに記憶されているデータの処理に利用されるI/O要
求からの情報のサブセットを保持するためのデータ構造
を備えた計算機システムにおいて、イニシエータのID
を保持するための第1のフィールドと、記憶ディスク・
アレイ内における場所のIDを保持するための第2のフ
ィールドと、記憶ディスク・アレイによって実施される
処理を表したイニシエータによって与えられるコマンド
命令を保持するための第3のフィールドと、命令順序情
報を保持するための第4のフィールドと、命令のIDを
保持するための第5のフィールドと、次のデータ構造に
対するリンク・アドレスを保持するための第6のフィー
ルドから構成され、第1、第2、第3、第4、第5、及
び、第6のフィールドが保持する情報が、I/O要求の
再起動には十分であるが、記憶ディスク・アレイに記憶
されているデータを処理するには不十分であることと、
前記第1〜第6のフィールドを組み合わせたサイズが6
4バイト以下であることを有するデータ構造を備えた計
算機システム。 (実施態様10) 前記第1、第2、第3、第4、第
5、及び、第6のフィールドを組み合わせたサイズが1
6バイトであることを特徴とする、実施態様9に記載の
データ構造を備えた計算機システム。
【0031】
【発明の効果】以上のように、本発明の態様の1つによ
れば、多重タスク・多重イニシエータ環境において大量
のI/O要求を効率よく取り扱う計算機システムが得ら
れる。もう1つの態様によれば、多重タスク・多重イニ
シエータ計算機システムを操作するための方法が得られ
る。さらにもう1つの態様によれば、I/O要求からの
情報のサブセットを保持するためのデータ構造を備えた
計算機システムが得られる。
【図面の簡単な説明】
【図1】複数のイニシエータがSCSIバスを介して記
憶システムに結合された計算機システムの概略図であ
る。
【図2】本発明の態様に基づいて記憶システムのコント
ローラ・メモリに用いられるあるタイプのジョブ制御デ
ータ構造を示す図である。
【図3】本発明の態様に基づいて2タイプのジョブ制御
データ構造を保持するために用いられる図1の記憶シス
テムにおけるコントローラ・メモリのブロック図であ
る。
【図4】テーブルをなすように構成された図2のジョブ
制御データ構造を示す図である。
【図5】本発明のもう1つの態様に基づいてSCSIベ
ースの計算機システムを操作するための方法による望ま
しいステップの流れ図である。
【符号の説明】
10 多重タスク・多重イニシエータ計算機システム 12 インターフェイス・バス 14 記憶ディスク・アレイ 16 ディスク・アレイ・コントローラ 18 論理装置 20 イニシエータ 30 最小限ジョブ制御データ構造 50 コントローラ・メモリ 52 正規JCBテーブル 54 JCBフリー待ち行列 56 JCB活動待ち行列 58 最小限JCBテーブル 60 最小限JCBフリー待ち行列 62 最小限ペンディング待ち行列

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】インターフェイス・バスと、 インターフェイス・バスに接続された、データを記憶す
    るための少なくとも1つの記憶ディスク・アレイと、 インターフェイス・バスに接続されて、記憶ディスク・
    アレイによるI/O処理の実施を要求し、各I/O要求
    毎にI/O要求を処理するための情報を含む、多重イニ
    シエータと、 記憶ディスク・アレイに設けられ、2タイプのジョブ制
    御データ構造、すなわち、 (1)I/O要求を処理し、完了するための情報を保持
    する正規ジョブ制御データ構造と、 (2)正規ジョブ制御データ構造が利用できない場合に
    一時的に用いられる、それぞれ、正規ジョブ制御データ
    構造がもう1度利用可能になった時点において、完了さ
    せるためにI/O要求を再起動するのに十分なI/O要
    求からの情報のサブセットを保持している、の最小限ジ
    ョブ制御データ構造の一方に、イニシエータから受信し
    たI/O要求を割り当てるように構成されたディスク・
    アレイ・コントローラを有する多重タスク・多重イニシ
    エータ計算機システム。
  2. 【請求項2】前記正規のジョブ制御データ構造のサイズ
    が約1024バイトであり、前記最小限ジョブ制御デー
    タ構造のサイズが16バイトであることを特徴とする、
    請求項1に記載の計算機システム。
  3. 【請求項3】I/O要求からの情報の保持にフリーの正
    規ジョブ制御データ構造を利用できない場合にり、前記
    ディスク・アレイ・コントローラが、最小限ジョブ制御
    データ構造にI/O要求を割り当てることを特徴とす
    る、請求項1に記載の計算機システム。
  4. 【請求項4】前記最小限ジョブ制御データ構造が、1次
    元アレイ・テーブルに配列されていることを特徴とす
    る、請求項1に記載の計算機システム。
  5. 【請求項5】前記最小限ジョブ制御データ構造に、次の
    データ構造に対するリンク・アドレスが含まれているこ
    とを特徴とする、請求項4に記載の計算機システム。
  6. 【請求項6】前記最小限ジョブ制御データ構造が、2つ
    の待ち行列の1つに保持されることと、前記フリーの待
    ち行列には、利用可能な全ての未使用ジョブ制御データ
    構造が含まれ、前記ペンディング待ち行列には、現在利
    用されている全ての最小限ジョブ制御データ構造が含ま
    れることを特徴とする、請求項4に記載の計算機システ
    ム。
  7. 【請求項7】複数のイニシエータ、少なくとも1つの記
    憶ディスク・アレイ、及び、イニシエータと記憶ディス
    ク・アレイを相互接続するインターフェイス・バスを備
    えた多重タスク・多重イニシエータ計算機システムの処
    理方法において、 正規ジョブ制御データ構造及び最小限ジョブ制御構造を
    設けるステップと、 記憶ディスク・アレイにおいてI/O要求を処理するた
    めの情報を含んでいるI/O操作を要求するステップ
    と、 記憶ディスク・アレイ内にI/O要求を処理するための
    情報を保持している、対応する正規ジョブ制御データ構
    造に各I/O要求の割当を行うステップと、 I/O要求の処理に利用可能なフリーの正規ジョブ制御
    データ構造がない場合、完了させるためにI/O要求を
    再起動するのに十分なI/O要求からの情報のサブセッ
    トを対応する最小限ジョブ制御データ構造に割り当てる
    ステップを有する処理方法。
  8. 【請求項8】記憶ディスク・アレイにおけるデータ処理
    に関するI/O要求からの情報の全てを保持するのに、
    正規ジョブ制御データ構造が利用可能になると、最小限
    ジョブ制御データ構造に保持されている情報のサブセッ
    トを利用して、I/O要求を再起動するステップを有す
    ることを特徴とする、請求項7に記載の処理方法。
  9. 【請求項9】ディスク・アレイ・コントローラ・メモリ
    における、イニシエータによって発生し、インターフェ
    イス・バスを介して伝送され、記憶ディスク・アレイに
    記憶されているデータの処理に利用されるI/O要求か
    らの情報のサブセットを保持するためのデータ構造を備
    えた計算機システムにおいて、 イニシエータのIDを保持するための第1のフィールド
    と、 記憶ディスク・アレイ内における場所のIDを保持する
    ための第2のフィールドと、 記憶ディスク・アレイによって実施される処理を表した
    イニシエータによって与えられるコマンド命令を保持す
    るための第3のフィールドと、 命令順序情報を保持するための第4のフィールドと、 命令のIDを保持するための第5のフィールドと、 次のデータ構造に対するリンク・アドレスを保持するた
    めの第6のフィールドから構成され、 第1、第2、第3、第4、第5、及び、第6のフィール
    ドが保持する情報が、I/O要求の再起動には十分であ
    るが、記憶ディスク・アレイに記憶されているデータを
    処理するには不十分であることと、前記第1〜第6のフ
    ィールドを組み合わせたサイズが64バイト以下である
    ことを有するデータ構造を備えた計算機システム。
  10. 【請求項10】前記第1、第2、第3、第4、第5、及
    び、第6のフィールドを組み合わせたサイズが16バイ
    トであることを特徴とする、請求項9に記載のデータ構
    造を備えた計算機システム。
JP7332935A 1995-01-19 1995-12-21 I/o要求処理計算機システム及び処理方法 Pending JPH08241263A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/376,944 US5644789A (en) 1995-01-19 1995-01-19 System and method for handling I/O requests over an interface bus to a storage disk array
US376,944 1995-01-19

Publications (1)

Publication Number Publication Date
JPH08241263A true JPH08241263A (ja) 1996-09-17

Family

ID=23487136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7332935A Pending JPH08241263A (ja) 1995-01-19 1995-12-21 I/o要求処理計算機システム及び処理方法

Country Status (4)

Country Link
US (1) US5644789A (ja)
EP (1) EP0723222B1 (ja)
JP (1) JPH08241263A (ja)
DE (1) DE69534616T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012079275A (ja) * 2010-10-06 2012-04-19 Yokogawa Electric Corp 外部デバイスアクセス装置およびコンピュータプログラム

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3228182B2 (ja) 1997-05-29 2001-11-12 株式会社日立製作所 記憶システム及び記憶システムへのアクセス方法
US6092215A (en) * 1997-09-29 2000-07-18 International Business Machines Corporation System and method for reconstructing data in a storage array system
US6134630A (en) 1997-11-14 2000-10-17 3Ware High-performance bus architecture for disk array system
US6098114A (en) * 1997-11-14 2000-08-01 3Ware Disk array system for processing and tracking the completion of I/O requests
US6061753A (en) * 1998-01-27 2000-05-09 Emc Corporation Apparatus and method of accessing target devices across a bus utilizing initiator identifiers
US6078979A (en) * 1998-06-19 2000-06-20 Dell Usa, L.P. Selective isolation of a storage subsystem bus utilzing a subsystem controller
US6332161B1 (en) * 1998-09-25 2001-12-18 Charles Schwab & Co., Inc. Customer web log-in architecture
JP3440219B2 (ja) * 1999-08-02 2003-08-25 富士通株式会社 入出力装置及びディスク・タイムシェアリング方法
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
US6684209B1 (en) * 2000-01-14 2004-01-27 Hitachi, Ltd. Security method and system for storage subsystem
US7657727B2 (en) * 2000-01-14 2010-02-02 Hitachi, Ltd. Security for logical unit in storage subsystem
JP4651230B2 (ja) 2001-07-13 2011-03-16 株式会社日立製作所 記憶システム及び論理ユニットへのアクセス制御方法
US20030188045A1 (en) * 2000-04-13 2003-10-02 Jacobson Michael B. System and method for distributing storage controller tasks
JP4719957B2 (ja) * 2000-05-24 2011-07-06 株式会社日立製作所 記憶制御装置及び記憶システム並びに記憶システムのセキュリティ設定方法
US6922414B1 (en) * 2000-08-21 2005-07-26 Hewlett-Packard Development Company, L.P. Apparatus and method for dynamic command queue depth adjustment for storage area network nodes
US6915354B1 (en) * 2002-04-30 2005-07-05 Intransa, Inc. Distributed iSCSI and SCSI targets
US6816917B2 (en) * 2003-01-15 2004-11-09 Hewlett-Packard Development Company, L.P. Storage system with LUN virtualization
US7644183B2 (en) * 2003-12-11 2010-01-05 Searete, Llc Accelerated reception of spatial-to-temporal translated data
US20050131863A1 (en) * 2003-12-11 2005-06-16 W. Daniel Hillis Reception of spatial-to-temporal translated data
US20050132415A1 (en) * 2003-12-11 2005-06-16 Hillis W. D. Spatial-to-temporal data translation and transmission
US8375114B2 (en) * 2004-04-09 2013-02-12 Hewlett-Packard Development Company, L.P. Device loading in storage networks
US8090837B2 (en) * 2004-05-27 2012-01-03 Hewlett-Packard Development Company, L.P. Communication in multiprocessor using proxy sockets
US8285747B1 (en) * 2006-03-14 2012-10-09 Netapp, Inc. Incorporation of client storage into a storage system
US8544029B2 (en) 2011-05-24 2013-09-24 International Business Machines Corporation Implementing storage adapter performance optimization with chained hardware operations minimizing hardware/firmware interactions
US9594685B2 (en) 2012-07-06 2017-03-14 Seagate Technology Llc Criteria for selection of data for a secondary cache
US9390020B2 (en) 2012-07-06 2016-07-12 Seagate Technology Llc Hybrid memory with associative cache
US9772948B2 (en) 2012-07-06 2017-09-26 Seagate Technology Llc Determining a criterion for movement of data from a primary cache to a secondary cache
US9477591B2 (en) 2012-07-06 2016-10-25 Seagate Technology Llc Memory access requests in hybrid memory system
US9529724B2 (en) * 2012-07-06 2016-12-27 Seagate Technology Llc Layered architecture for hybrid controller
US9785564B2 (en) 2013-08-20 2017-10-10 Seagate Technology Llc Hybrid memory with associative cache
US9367247B2 (en) 2013-08-20 2016-06-14 Seagate Technology Llc Memory access requests in hybrid memory system
US9507719B2 (en) 2013-08-20 2016-11-29 Seagate Technology Llc Garbage collection in hybrid memory system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US5109336A (en) * 1989-04-28 1992-04-28 International Business Machines Corporation Unified working storage management
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
US5155835A (en) * 1990-11-19 1992-10-13 Storage Technology Corporation Multilevel, hierarchical, dynamically mapped data storage subsystem
US5278838A (en) * 1991-06-18 1994-01-11 Ibm Corp. Recovery from errors in a redundant array of disk drives
JPH0546447A (ja) * 1991-08-08 1993-02-26 Hitachi Ltd 空き領域検索方法
US5237658A (en) * 1991-10-01 1993-08-17 Tandem Computers Incorporated Linear and orthogonal expansion of array storage in multiprocessor computing systems
US5297258A (en) * 1991-11-21 1994-03-22 Ast Research, Inc. Data logging for hard disk data storage systems
US5313585A (en) * 1991-12-17 1994-05-17 Jeffries Kenneth L Disk drive array with request fragmentation
US5287462A (en) * 1991-12-20 1994-02-15 Ncr Corporation Bufferless SCSI to SCSI data transfer scheme for disk array applications
US5289418A (en) * 1992-02-14 1994-02-22 Extended Systems, Inc. Memory apparatus with built-in parity generation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012079275A (ja) * 2010-10-06 2012-04-19 Yokogawa Electric Corp 外部デバイスアクセス装置およびコンピュータプログラム

Also Published As

Publication number Publication date
EP0723222A2 (en) 1996-07-24
EP0723222A3 (en) 1997-06-11
EP0723222B1 (en) 2005-11-16
DE69534616T2 (de) 2006-07-20
US5644789A (en) 1997-07-01
DE69534616D1 (de) 2005-12-22

Similar Documents

Publication Publication Date Title
JPH08241263A (ja) I/o要求処理計算機システム及び処理方法
US5530897A (en) System for dynamic association of a variable number of device addresses with input/output devices to allow increased concurrent requests for access to the input/output devices
US4638424A (en) Managing data storage devices connected to a digital computer
US5652885A (en) Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control
US5687372A (en) Customer information control system and method in a loosely coupled parallel processing environment
US7181571B2 (en) System and method for storage system
US8307053B1 (en) Partitioned packet processing in a multiprocessor environment
US6009478A (en) File array communications interface for communicating between a host computer and an adapter
US7484017B1 (en) Dequeuing from a host adapter two-dimensional queue
EP0426323B1 (en) Portable, resource sharing file server using co-routines
US5924097A (en) Balanced input/output task management for use in multiprocessor transaction processing system
US5715452A (en) Process of transferring file, process of gaining access to data and process of writing data
EP0317466A2 (en) Reverse flow control mechanism and method
US20040252709A1 (en) System having a plurality of threads being allocatable to a send or receive queue
US5682507A (en) Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records
US5790868A (en) Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
EP0201063B1 (en) Method of locating processes in a distributed data processing system
JPH065524B2 (ja) 記憶装置管理方法
EP0747812A2 (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
EP0317468A2 (en) Bus flow control system
JPH11149387A (ja) 共有装置制御方法及びその実施装置
US20030236819A1 (en) Queue-based data retrieval and transmission
EP0522728B1 (en) Method for efficient access of data stored in a nexus table
EP0201065A2 (en) Virtual single machine with logical ring and with message-like hardware interrupts and processor exceptions
US6938102B1 (en) Dequeuing from a host adapter two-dimensional queue

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050920

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060307