JPH04255960A - ディスクドライブ並列操作方法 - Google Patents

ディスクドライブ並列操作方法

Info

Publication number
JPH04255960A
JPH04255960A JP3249318A JP24931891A JPH04255960A JP H04255960 A JPH04255960 A JP H04255960A JP 3249318 A JP3249318 A JP 3249318A JP 24931891 A JP24931891 A JP 24931891A JP H04255960 A JPH04255960 A JP H04255960A
Authority
JP
Japan
Prior art keywords
controller
iocb
disk
flag
pointer
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
JP3249318A
Other languages
English (en)
Other versions
JP2544039B2 (ja
Inventor
George Lee Eldridge
ジョージ・リー・エルドリッジ
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.)
Xerox Corp
Original Assignee
Xerox 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 Xerox Corp filed Critical Xerox Corp
Publication of JPH04255960A publication Critical patent/JPH04255960A/ja
Application granted granted Critical
Publication of JP2544039B2 publication Critical patent/JP2544039B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • G11B19/02Control of operating function, e.g. switching from recording to reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • G11B19/20Driving; Starting; Stopping; Control thereof
    • G11B19/28Speed controlling, regulating, or indicating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B20/1252Formatting, e.g. arrangement of data block or words on the record carriers on discs for discontinuous data, e.g. digital information signals or computer program data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】〔発明の背景〕本発明は、複数のディスク
ドライブを並列に接続し、データを複数のセグメントに
分割してn番目ごとのセグメントを各ディスクドライブ
に送ることによって、記憶容量と帯域幅とを向上させる
方法に関する。
【0002】現代の高速写真複製システムにおいては、
市販されている既製の高性能ディスクドライブではディ
ジタル化されたページ画像の格納と検索とを実時間で行
なうための帯域幅もしくは記憶容量が不足していること
が多い。こうしたディスクドライブに代るものとして特
注のシステムがあるが、これらのシステムは高価である
【0003】この分野の従来技術としては米国特許第4
,870,643号「並列ドライブアレイメモリ」があ
る。この発明は、市販の標準型ウィンチェスターディス
クドライブを5個有するシステムに関するものであった
。かかるシステムにおいては、1個のディスクドライブ
がマスターコントローラと指定され、このマスターコン
トローラがシステムを同期化して制御する。これに対し
て本発明では、すべてのディスク制御機構が対等な立場
で作動し、各ディスクドライブがそれぞれのデータの処
理方法を独自に決定する。
【0004】現在望まれているシステムは、市販の安価
なディスクドライブを並列に作動させ、その作動方法が
使用者に対して透過的であるようなシステムである。
【0005】〔発明の概要〕本発明は最大4個の物理デ
ィスクドライブとドライブコントローラとを有する。こ
れらのドライブとそのコントローラは共同で作動して1
個の論理ディスクを形成する。ここでデータストリーム
がそれぞれたとえば512バイトもしくは1024バイ
トで構成される複数のセクタへと分割されると仮定する
。ディスクドライブが4個である場合、セクタ1、5、
9...は第1ドライブに格納され、セクタ2、6、1
0...は第2ドライブに格納され、以下同様にしてセ
クタの格納が行なわれる。各ドライブは独自の速度で作
動する。このため、あるドライブが他のドライブより早
く処理を終了することがある。この場合、早く終えたド
ライブは直ちに次の作業を開始してよい。またこの方法
に関するソフトウェアはすべてディスクコントローラ内
にあるため、システムの動作は使用者に対して完全に透
過的である。
【0006】〔図面の簡単な説明〕図1は制御構造を示
す図である。図2〜図16は論理ディスクコントローラ
のマイクロコードを示すフローチャートである。第17
図は本発明が実施されるシステムの概略図である。
【0007】〔発明の詳細な説明〕本発明による方法は
、共用記憶域分散処理を行なうホストシステムに接続し
て使用する。この場合、各ディスクドライブはプロセッ
サとキャッシュとを介してシステムのメインメモリと通
信を行なう。このシステムの一例が、共有譲渡された米
国特許第4,843,542号「多重処理システムで使
用する仮想メモリキャッシュ」に開示されている。この
特許は参考試料として本明細書に含まれている。ディス
クは、システムメモリのデータ構造を介してシステムソ
フトウェアと通信を行なう。制御情報と状態情報は制御
/状態ブロック(CSB)を介して伝達され、コマンド
は入出力制御ブロック(IOCB)を介して伝達される
。ディスクは、データ読み出しコマンド、データ書込み
コマンド、およびドライブ制御コマンドをサポートして
いる。
【0008】図17にこのキャッシュシステムを示す。 複数のキャッシュメモリ10が中央のメインメモリとプ
ロセッサ11、12とに接続されている。複数のプロセ
ッサ11はホストシステムに接続されて、ホストシステ
ムの処理の制御を行なう。この発明では、さらに3個の
プロセッサ12を追加してこれらのプロセッサを制御し
、後者のプロセッサは3個のディスクドライブ14を制
御する。図17ではこれらのディスクドライブをHDC
と名付けている。ディスク15に格納されるデータブロ
ック16は、プロセッサ11によって各512バイトか
らなる複数のセクタに分割される。図17ではこれらの
セクタは0、1、2、0、1、2と番号付けされている
。ここで、各ドライブ12は同一の番号を有する複数の
セクタを格納することができる。
【0009】本発明のこの実施例のために選択したドラ
イブは、高性能型ウィンチェスターディスクドライブで
ある。これらのドライブではESDI高性能標準インタ
フェースを使用する。ただし、このドライブインタフェ
ースは本実施例に関してクリティカルではなく、他のイ
ンタフェースを使用してもよい。ESDIでは、コント
ローラのドライブに対する相互接続とインタフェースの
タイミングとを指定している。
【0010】コントローラからドライブへの接続は2本
のケーブルを使用して行なわれる。これらのケーブルの
うち、1本は制御信号を伝送し、他の1本はデータ信号
を伝送する。制御信号ケーブルは、ヘッド選択信号、ゲ
ート読み出しコマンド、ゲート書込みコマンドおよびシ
リアルコマンドをドライブへと伝送する。さらに制御信
号ケーブルはインデックスパルス、セクタパルス、コマ
ンドの結果および状態をドライブからコントローラへと
伝送する。データ信号ケーブルは、NRZデータとクロ
ック信号とをドライブとコントローラとの間で転送する
【0011】制御信号ケーブルとデータ信号ケーブルと
に加えて、ドライブに+5Vと+12Vとを供給する電
源ケーブルが必要である。各ドライブのデータ経路機能
は、「ナショナルDDC」などの市販のディスクコント
ローラで処理する。
【0012】ディスク制御機能とDMA(ダイレクトメ
モリアクセス)の処理はプロセッサが行なう。タスクと
しては、システムソフトウェアとの通信、ディスクに対
するESDIシリアルコマンドインタフェースの駆動、
ディスクコントローラに対するデータ転送コマンドの発
行、キャッシュストリームチャネルを使用したディスク
データのDMA転送の実行、エラーからの回復などがあ
る。
【0013】このシステムを構成する個々のディスクド
ライブを相互に接続する必要はまったくない。ただしド
ライブの主軸同期が可能であれば、これによって回転待
ち時間が短縮されるため、性能が若干向上する。
【0014】ディスクマイクロコードとソフトウェアイ
ンタフェースは、最大4個の物理ドライブを並列に作動
させることによってこれらを1個の論理ディスクとして
機能させるように設計されている。以下の説明では物理
ディスクと論理ディスクとを区別して提示する。たとえ
ば3個の物理ディスクで論理ディスク1個を構成してい
る場合、この論理ディスクは1個の物理ディスクの3倍
の記憶容量と3倍の帯域幅とを有する。高水準ソフトウ
ェアに対しては、論理ディスクはあたかも1個の物理デ
ィスクであるかのように機能する。論理ディスクを構成
する個々のコントローラは、単一のCSBを共有する。 また論理ディスク宛ての各コマンドに対しては、IOC
Bは1個のみ割り当てられる。各IOCBはすべてのコ
ントローラによって使用される。
【0015】論理ディスクの他の要件として、論理ディ
スクはIOCBチェーンの動的拡張と同チェーンの実行
の中断とをサポートする必要がある。IOCBチェーン
の実行を中断する機能は重要な機能である。優先順位の
付けられたディスクチャネルの実行はこの機能に基づい
て実現される。低順位のIOCBチェーンの実行中に高
順位のIOCBチェーンの実行要求がディスクドライブ
へと送られると、低順位のIOCBチェーンの実行が中
断され、これに代って高順位のIOCBチェーンが実行
される。このようにIOCBチェーンを動的に拡大する
と、コントローラの不必要な起動・停止を避けることが
できるため、システムの効率が高められる。
【0016】論理ディスクを実際に製作する際、すべて
のコントローラとそのマイクロコードは同一形式とした
。マスター、スレーブの役割分担はなく、各コントロー
ラは互いに対等である。個々のコントローラはCSBと
IOCBのセマフォを介して相互に通信する。論理ディ
スクを構成する個別のコントローラを一緒に動作させる
ためには、初期化の時点で2種類の情報をこれらのコン
トローラに与える必要がある。すなわち論理ディスクを
構成している物理ディスクの個数と、個々のコントロー
ラに割り当てられる番号とが必要である。物理ディスク
の個数によって各タスクの分割方法が指定され、コント
ローラ番号によって各コントローラが担当するタスクの
部分が定義される。
【0017】論理ディスクを構成する個々の物理ディス
クに対するデータの分割はセクタのレベルで行なわれる
。たとえば論理ディスクが3個の物理ディスクで構成さ
れ、各物理ディスクがトラック当り32セクタを有する
場合、論理トラック(これは各物理ディスクの単一トラ
ックから構成される)当り96セクタ存在することにな
る。番号0を割り当てられたコントローラは、セクタ1
で始まる3番目ごとのセクタ(すなわち1、4、7、.
..94  )を担当する。番号1を割り当てられたコ
ントローラは、セクタ2で始まる3番目ごとのセクタ(
2、5、8、...95)を担当する。残りのセクタ(
3、6、9、...96)は番号2を割り当てられたコ
ントローラが担当する。IOCBが論理ディスクに転送
されて実行されると、各コントローラはIOCBを読み
込み、各担当するセクタへのデータの転送を開始する。
【0018】図2〜図16のフローチャートに各コント
ローラの基本動作を示す。任意のコントローラにマイク
ロコードがロードされ、ディスク番号と論理ディスクを
構成する物理ディスクの総数とが与えられると、このコ
ントローラはアイドル状態に入る。このコントローラは
、アイドルループ内にとどまっている間、CSB内のI
OCBフィールドのポインタを読み出し続ける。ただし
このポインタがゼロである場合に限る。かかる連続ポー
リング作業ではキャッシュが使用されるため、システム
バスやメモリの帯域幅は消費されない。
【0019】ポインタがゼロ以外の値をとると、コント
ローラはこのポインタをIOCBチェーンの先頭として
使用する。(注意:ポインタがゼロの場合、その値は−
1である。ポインタがゼロ以外の値である場合、上位8
ビットと下位4ビットはゼロである。)ついでコントロ
ーラは「CSB実行中」フラグ内の当該ビットを「ロッ
クされた読み出し変更書込み」サイクルで設定する。こ
れによってコントローラがIOCBチェーンの実行を開
始したことが表示される。またコントローラはCSBコ
ントローラ状態フィールド内の「コントローラアクティ
ブ」ビットを「ロックされた読み出し変更書込み」サイ
クルで設定する。「ロックされた読み出し変更書込み」
トランザクションは、フラグの一貫性を維持するために
必要である。理由は、すべてのコントローラがフラグを
同時にアクセスしようと試みる可能性があるからである
【0020】最初に起動されたコントローラは、他のコ
ントローラによって実行されるIOCBを準備する。最
後に起動されたコントローラは、CSB内のIOCBチ
ェーンのポインタをゼロにリセットする。この方式が有
効であるためには、コントローラは各自が最初に起動さ
れるコントローラであるのかもしくは最後に起動される
コントローラであるのかを決定する機能を有する必要が
ある。下記の機構を使用してこの方式を実施する。
【0021】「CSB実行中」フラグは4個のビットか
らなり、各コントローラに1個のビットが割り当てられ
ている。各コントローラがIOCBチェーンのポインタ
がゼロでないことを検出すると、当該コントローラは「
ロックされた読み出し変更書込み」サイクルによって「
CSB実行中」フラグ内の対応するビットを設定する。 ロックサイクルの終了後、MRC内の「CSB実行中」
フラグの値はチェックされ、該値内で1個のビットのみ
が設定されているか否かが確認される。1個のビットの
みが設定されていると判明した場合、当該コントローラ
は自己がCSBに関して最初に作動するコントローラで
あることを知る。同様にして、ロックアクセス後に「C
SB実行中」フラグのビットがすべて1であるとすると
、当該コントローラは自己がCSBに関して最後に作動
するコントローラであることを知る。こうしたセマフォ
動作がコントローラ間のすべての通信の基礎となる。
【0022】各コントローラは、各IOCBコマンドの
自己への割り当て部分を他のコントローラから独立して
実行する。コントローラがIOCBを達成する実際の順
序は、ディスクの回転待ち時間などの変数に依存する。 IOCBを最初に実行するコントローラは該IOCBを
最初に終了するコントローラとは限らない。従って、い
ずれのコントローラが最初でいずれが最後かの決定は、
各IOCBに対して行なわれる。
【0023】各IOCBは「終了」フラグを含んでいる
。「CSB実行中」フラグと同様、IOCBフラグは4
個のビットを有し、各ビットが各コントローラに割り当
てられている。各コントローラがIOCBに対して動作
を終了すると、当該コントローラは「ロックされた読み
出し変更書込み」サイクルによって「終了」フラグ内の
対応するビットを設定する。ロックサイクルの終了後、
MRC内の「終了」フラグの値はチェックされ、該値内
のビットはすべて1に設定されているか否かが確認され
る。すべてのビットが1に設定されていると判明した場
合、当該コントローラは自己がIOCBに関する動作を
終了するコントローラであることを知る。このとき当該
コントローラはIOCBの終了をソフトウェアに伝達す
るための必要な段階を実行しなければならない。当該コ
ントローラが「終了」フラグのビットを最初に設定する
コントローラである場合、同コントローラは最初に動作
を終了するコントローラとなる。このとき当該コントロ
ーラは次のIOCBを実行するための準備を行なわなけ
ればならない。
【0024】各コントローラがIOCBチェーンの実行
を各々独自の速度で進めるため、結果的に最大スループ
ットという特長が得られる。ディスク回転待ち時間に起
因する遅延は、ディスクデータの連続ブロックが開始さ
れる時点で1回のみ発生する。理想的にはコントローラ
の同期はIOCBチェーンの終了時に行なうだけでよい
。しかしながらこれを行なうと、現在のチェーンの実行
を中断して優先順位の高いIOCBを実行することがで
きない。このためコントローラがIOCBチェーンを各
自の速度で実行しつつ、しかも同チェーンの中断も行な
えることを目的として、「実行中断」フラグがCSB内
に含まれている。
【0025】CSB内の「実行中断」フラグが設定され
ると、新たなIOCBがコントローラによって開始され
ることはない。各コントローラは、いずれかのコントロ
ーラによって開始されたIOCBであってすべてのコン
トローラによる実行が終了していないIOCBを継続し
て実行する。これら仕掛りのIOCBがすべて終了する
と、各コントローラは中断状態に入り、IOCBチェー
ンの新しいポインタを待つ。
【0026】実行中断動作の難しさは、いずれのIOC
Bですべてのコントローラを確実に停止させるのかとい
う点にある。同様な問題は、IOCBチェーンをオンザ
フライ方式で拡張するとき、すべてのコントローラがチ
ェーンの終点を同じ位置に決定しなければならない場合
にも発生する。上記の実行中断動作を達成するための方
式では、各IOCB内に「実行中断」フラグを含めてお
くことが必要である。IOCBの実行を最初に終了した
コントローラは、「実行中断」フラグをCSBからIO
CBへと複写しなければならない。また最初に終了した
コントローラは、「拡張」ポインタを現在のIOCBか
ら次のIOCBのポインタフィールドへと複写する。 「実行中断」フラグと「拡張」ポインタの複写後、当該
コントローラは「IOCB実行中」フラグを−1に設定
する。これ以外のコントローラは、次のIOCB内の「
実行中」フラグが−1に設定されるまではこのIOCB
をアクセスできない。「実行中」フラグが−1に設定さ
れると、コントローラはIOCB内の「実行中断」フラ
グをチェックする。「実行中断」フラグが設定されてい
ることが判明した場合、コントローラは以後の実行を停
止し、中断状態に入る準備を開始する。
【0027】実行の中断が要求されなければ、各コント
ローラはIOCBによって指定されたコマンドを実行す
る。コマンドの終了後、各コントローラは次のIOCB
のポインタをチェックする。このポインタがゼロであれ
ば、チェーンがその終点に到達したことになる。ポイン
タがゼロ以外の値であれば、当該コントローラは実行を
継続する。システムソフトウェアが次のIOCBのポイ
ンタを操作してチェーンの拡張を行なうことはない。そ
の代りにディスクドライブのソフトウェアがチェーンの
最後のIOCB内の「拡張」ポインタを変更して次のI
OCBを指し示す。各コントローラは、次のIOCBポ
インタを見るだけでチェーンが継続するのか否かを判断
し、「拡張」ポインタを検査することはない。「拡張」
ポインタは、IOCBを最初に終了したコントローラに
よってのみアクセスされ、これによって「拡張」ポイン
タは次のIOCBのポインタへと複写される。この方式
によれば、システムソフトウェアがどの時点でチェーン
の拡張を試みるかにかかわらず、すべてのコントローラ
がリストの終点を同じ位置で確実に検出することが保証
される。
【0028】CSBには、IOCBの終了に関係なくす
べてのコントローラを停止するためのフラグが含まれて
いる。これは「実行打切り」フラグと呼ばれる。各IO
CBの実行を開始する前に、各コントローラはCSB内
の「実行打切り」フラグを検査する。このフラグが設定
されていれば、コントローラは打切り状態に入り、IO
CBを実行しない。打切り後、チェーン上には異なる実
行終了段階にあるIOCBが複数存在することがある。 これらのIOCBはソフトウェアによって整理し、再度
キューに入れる必要がある。
【0029】ブート時におけるディスクの初期化はキャ
ッシュのメールボックスを介して行なう。以下では共通
メモリ構造を記述し、その形式を定義する。
【0030】CSB(制御/状態ブロック形式(16ワ
ード))。メモリ内のCSBは、オクテットで位置合わ
せした16ワードのブロックであって、かかるブロック
の位置はキャッシュのメールボックスを介した初期化の
時点でコントローラへと転送される。CSBはコントロ
ーラとシステムソフトウェアとの間の主要な通信領域で
ある。1個の論理ディスクを形成するコントローラ1組
に対して、個々のコントローラにそれぞれ1個のCSB
が割り当てられる。CSBの形式は次のとおりである。
【0031】最後に終了したIOCB(2ワード)。こ
れは、その実行がすべてのコントローラによって終了し
た最新のIOCBを指し示す2ワードのポインタである
。IOCB内の対応する「終了」フラグを設定した最後
のコントローラが該IOCBのアドレスをこのポインタ
へと複写する。このポインタによって参照されたIOC
Bまで(これを含む)のチェーン内のすべてのIOCB
は終了しているため、チェーンから外してもよい。
【0032】現在のIOCB(2ワード)。これは、い
ずれかのコントローラによって現在実行されている最新
のIOCBを指し示す2ワードのポインタである。この
IOCBは「最後に終了したIOCB」から数個あとに
来ることがある。理由は、各コントローラが互いに非同
期的に作動しており、IOCBチェーンの処理を異なる
速度で行なっているためである。コントローラがエラー
による打切りで停止すると、最後に終了したIOCBか
ら現在のIOCBまで(これを含む)のIOCBは、そ
れぞれ異なる実行終了段階にある。これらのIOCBは
ドライバによって整理し、再度キューに入れる必要があ
る。
【0033】「実行打切り」フラグ(1ワード)。この
フラグは、都合のよいもっとも早い時期にIOCBチェ
ーンの実行を打切るために使用する。現在進行中の動作
は停止されないが、新たな動作は開始されない。すべて
のコントローラを同一のIOCBで停止する試みは行な
われない。打切り後、最後に終了したIOCBから現在
のIOCB(を含む)までのすべてのIOCBにエラー
がないことをドライバによって確認したのち、これらの
IOCBをドライバで整理して再度キューに入れる必要
がある。
【0034】「実行中断」フラグ(1ワード)。このフ
ラグはIOCBチェーンの実行を正常に中断するために
使用する。このフラグが設定されると、チェーン内で新
たなIOCBは開始されない。このチェーン内で現在ア
クティブなすべてのIOCBは、CSBが使用可能と通
知される前に終了することができる。
【0035】「ウェークアップ」マスク(1ワード)。 このマスクは、通知ビットが設定されたIOCBの終了
時に通知される処理か、もしくはすべてのコントローラ
が停止した時点で通知される処理かを識別する。
【0036】優先順位(1ワード)。このワードはドラ
イバが使用する。
【0037】「CSB実行中」フラグ(1ワード:うち
下位4ビットをフラグとして使用)。このフラグはコン
トローラがIOCBチェーンを実行していることを示す
。このフラグ内では各コントローラにつき1ビットが割
り当てられている。このフラグ内の対応するビットを最
初に設定したコントローラだけが最初のIOCB内の「
IOCB実行中」フラグを設定することができる。この
フラグ内の対応するビットを最後に設定したコントロー
ラはIOCBのポインタをゼロにリセットする。各コン
トローラがIOCBチェーンの実行を終了すると、当該
コントローラはフラグ内の対応するビットをクリアする
。IOCBのポインタとこのフラグとがゼロである場合
、すべてのディスクコントローラはアイドル状態にあり
、IOCBの新しいポインタを待っている。このフラグ
は「ロックされた読み出し変更書込み」サイクルを使用
して更新される。
【0038】コントローラの状態(1ワード:うち下位
8ビットをフラグとして使用)。このバイトはコントロ
ーラの状態を含んでいる。各コントローラに対して2個
のビットが割り当てられる。2個のビットはコードを構
成し、このコードは次の意味を持つ:00−  正常終
了、01−異常終了、10−実行中、11−中断。この
バイトは各コントローラがIOCBチェーンの実行を開
始する時(実行状態に入る時)と同実行を停止する時(
実行状態を抜ける時)とに更新される。このバイトは「
ロックされた読み出し変更書込み」サイクルを使用して
更新される。
【0039】IOCBチェーンのポインタ(2ワード)
。これはIOCBチェーン内の最初のIOCBを指し示
す2ワードのポインタである。このポインタは当初ゼロ
(−1)である。コントローラがアイドル状態のとき、
このポインタは各コントローラによってポーリングされ
る。ドライバがIOCBチェーンを構成する場合、ドラ
イバはチェーンの開始アドレスををこのポインタへと書
込む。ポインタがゼロでないことをコントローラが検出
すると、当該コントローラは「CSB実行中」フラグ内
の対応するビットを設定し、IOCBチェーンのアドレ
スを読み出したのち、同チェーンの実行を開始する。「
CSB実行中」フラグ内の対応するビットを最後に設定
したコントローラは、このポインタをゼロにリセットす
る。
【0040】チェーンドライバ(2ワード)。これはI
OCBチェーンのドライバを指し示す2ワードのポイン
タである。このポインタはドライバによってのみ使用さ
れ、コントローラはこのポインタを無視する。
【0041】チェーン末尾(2ワード)。これはIOC
Bチェーンの末尾を指し示す2ワードのポインタである
。このポインタはドライバによってのみ使用され、コン
トローラはこのポインタを無視する。
【0042】IOCB(I/O制御)形式(29ワード
)。IOCBはメモリ内のブロックであって、オクテッ
トで位置合わせした29ワードからなるブロックである
。IOCBはコマンドを論理ディスクに送るために使用
する。各コマンドに対して1個のIOCBが割り当てら
れる。1個の論理ディスクを構成するすべてのコントロ
ーラがこのIOCBを共有する。複数のIOCBを結合
してコマンドチェーンを構成することもできる。IOC
B内のフィールドを以下に説明する。
【0043】拡張ポインタ(2ワード)。これはチェー
ン内の次のIOCBを指し示す2ワードのポインタであ
る。現在のIOCBがチェーン内の最後のIOCBであ
る場合はこのポインタはゼロである。IOCBを最初に
終了したコントローラは、「IOCB実行中」フラグを
FFFFhへと設定する前にこのポインタを次のIOC
Bのポインタへと複写する。この機能は、すべてのコン
トローラがチェーンの末尾を同じ位置で検出することを
保証するためのインタロックとして使用される。このポ
インタはいつでもドライバによってゼロからゼロ以外の
値へと変更できる。(注意:ポインタがゼロの場合、ポ
インタは値−1を含む。ポインタがゼロ以外の値の場合
、上位8ビットと下位4ビットはゼロである。)チェー
ンが正常に拡張されたことをドライバが確認する唯一の
方法は、「拡張」ポインタを変更したあとでFFFFn
に等しくない「実行中」フラグを検出することである。 もしくは、ドライバは単にチェーンを拡張して、コント
ローラが終了割込みを通知した場合に全チェーンが終了
したことを確認してもよい。チェーンが終了していない
場合、このチェーンの実行を再度開始できる。
【0044】次のIOCBのポインタ(2ワード)。こ
れはチェーン内の次のIOCBを指し示す2ワードのポ
インタである。このフィールドは当初ゼロに設定されて
いる。IOCBを最初に終了したコントローラは、「I
OCB実行中」フラグをFFFFhに設定する前に「拡
張」ポインタをこのフィールドに複写する。これ以外の
すべてのコントローラは、このポインタを読み出す前に
「実行中」フラグがFFFFhに設定されるまで待たな
ければならない。すべてのコントローラはこのフィール
ドを使用してチェーン内の次のIOCBの存在とそのア
ドレスとを確認する。現在のIOCBがチェーン内の最
後のIOCBであれば、ポインタはゼロである。
【0045】「実行中」フラグ(1ワード)。このフラ
グは、IOCBが現在コントローラによって実行されて
いることを示す。このフラグは、直前のIOCBの実行
を最初に終了したコントローラによってのみ00FFh
へと設定される。これ以外のすべてのコントローラは、
IOCBの実行を開始する前に「実行中」フラグが00
FFhに設定されるまで待たなければならない。このフ
ラグはIOCBを最初に終了したコントローラによって
FFFFhへと設定される。
【0046】「終了」フラグ(1ワード:うち4ビット
をフラグとして使用)。このフラグはIOCBの実行が
終了したことを示す。このフラグ内では各コントローラ
につき1ビットが割り当てられている。コントローラが
その実行を終了すると、当該コントローラは「ロックさ
れた読み出し変更書込み」サイクルを使用してこのフラ
グ内の対応するビットを設定する。このフラグ内の対応
するビットを最後に設定したコントローラは、CSB内
の「最後に終了したIOCB」のポインタを変更したの
ち、ドライバに対してコマンド中の通知ビットが設定さ
れているか否かを通知しなければならない。IOCBの
実行が終了すると、「終了」フラグが設定されていて「
実行中」フラグがFFFFhであればこのIOCBをチ
ェーンから外してもよい。このフラグ内の対応するビッ
トを最初に設定したコントローラは、次のIOCBがあ
る限りその中の「実行中」フラグを00FFhへと設定
することができる唯一のコントローラである。
【0047】「実行中断」フラグ(1ワード)。このフ
ラグはIOCBチェーンを実行中であるコントローラの
動作を中断するために使用する。すなわちこのフラグは
、優先順位の高いストリームを処理するためにチェーン
の実行を中断する。IOCB内の「実行中断」フラグは
、IOCBを最初に終了したコントローラによってCS
B内の「実行中断」フラグから複写される。この複写は
「実行中」フラグがFFFFhへと設定される前に行な
われる。このシーケンスによってすべてのコントローラ
が同一のIOCBで正常に停止することが保証される。
【0048】タスク優先順位(1ワード)。このフィー
ルドは、当該IOCBが関連しているタスクと、IOC
Bの優先順位とをドライバに通知する。コントローラは
このフィールドを無視する。
【0049】コマンド(1ワード)。これはコントロー
ラが実行する動作である。シリンダ(1ワード)。これ
はシーク動作またはデータ転送のためのディスクシリン
ダアドレスである。
【0050】トラック(1ワード:上位8ビットを使用
)。これはデータ転送のためのディスクトラックアドレ
スである。
【0051】セクタ(8ビット:これは上記トラックワ
ードの一部)。これはデータ転送のためのディスクセク
タアドレスである。論理ディスクを構成するコントロー
ラの数でこのアドレス(番号)を割って、各コントロー
ラの実際のセクタアドレスを計算しなければならない。
【0052】総データ数(1ワード)。これは転送する
対象となるデータの総セクタ数である。
【0053】データチェーンポインタ(2ワード)。こ
れはデータチェーンの開始点を指し示す2ワードのポイ
ンタである。データチェーンはBD(バッファ記述子)
の結合リストである。
【0054】コントローラ0エラー状態(3ワード)。 エラーが発生した場合、このフィールドは第1コントロ
ーラの状態を示す。エラーがなければこのフィールドは
ゼロである。ここで示される情報は、エラーの種類、セ
クタ番号、ドライブの状態、およびDDCの状態である
【0055】コントローラ1エラー状態(3ワード)。 エラーが発生した場合、このフィールドは第2コントロ
ーラの状態を示す。エラーがなければこのフィールドは
ゼロである。ここで示される情報は、エラーの種類、セ
クタ番号、ドライブの状態、およびDDCの状態である
【0056】コントローラ2エラー状態(3ワード)。 エラーが発生した場合、このフィールドは第3コントロ
ーラの状態を示す。エラーがなければこのフィールドは
ゼロである。ここで示される情報は、エラーの種類、セ
クタ番号、ドライブの状態、およびDDCの状態である
【0057】コントローラ3エラー状態(3ワード)。 エラーが発生した場合、このフィールドは第4コントロ
ーラの状態を示す。エラーがなければこのフィールドは
ゼロである。ここで示される情報は、エラーの種類、セ
クタ番号、ドライブの状態、およびDDCの状態である
【0058】実行のポインタ(2ワード)。このフィー
ルドはドライバによって使用される。コントローラはこ
のフィールドを無視する。
【0059】再試行回数(1ワード)。このフィールド
はドライバによって使用される。コントローラはこのフ
ィールドを無視する。
【0060】BD(バッファ記述子)形式(4ワード)
。BDはメモリ内のブロックであって、4ワードからな
る。BDはデータバッファの長さと位置とを記述するが
、このデータバッファはIOCBコマンドのデータ送信
装置もしくはデータ受信装置として使用される。複数の
BDを結合してデータチェーンを構成してもよい。 BD内のフィールドを以下に説明する。
【0061】次のBDのポインタ(1ワード)。これは
データチェーン内の次のバッファ記述子を指し示す1ワ
ードのポインタである。現在のBDがチェーン内の最後
のBDであれば、このポインタはゼロでなければならな
い。すべてのバッファ記述子は同じ64Kのセグメント
にあるものとする。このため1ワードのポインタ1個が
あればよい。
【0062】データポインタ(2ワード)。これはデー
タバッファを指し示す2ワードのポインタである。デー
タバッファは物理メモリ内に常駐していなければならな
い。またデータバッファがディスク読み出し動作の宛先
であれば、同バッファを書込み禁止にしてはならない。
【0063】データ個数(1ワード)。これはデータバ
ッファの長さをセクタ数で表わしたものである。データ
バッファの長さはセクタサイズの整数倍でなければなら
ない。
【0064】制御装置の構造は図1に示されている。
【0065】本発明は一実施例を参照して説明したが、
本発明の精神と範囲から逸脱することなくこの実施例の
多様な変更や構成要素の置き換えを行なうことができる
ことは当業者にとって自明である。また本発明の基本開
示情報に反することなくさまざまな変更が可能である。
【図面の簡単な説明】
【図1】  制御構造を示す図である。
【図2】  論理ディスクコントローラのマイクロコー
ドを示すフローチャートの1である。
【図3】  論理ディスクコントローラのマイクロコー
ドを示すフローチャートの2である。
【図4】  論理ディスクコントローラのマイクロコー
ドを示すフローチャートの3である。
【図5】  論理ディスクコントローラのマイクロコー
ドを示すフローチャートの4である。
【図6】  論理ディスクコントローラのマイクロコー
ドを示すフローチャートの5である。
【図7】  論理ディスクコントローラのマイクロコー
ドを示すフローチャートの6である。
【図8】  論理ディスクコントローラのマイクロコー
ドを示すフローチャートの7である。
【図9】  論理ディスクコントローラのマイクロコー
ドを示すフローチャートの8である。
【図10】  論理ディスクコントローラのマイクロコ
ードを示すフローチャートの9である。
【図11】  論理ディスクコントローラのマイクロコ
ードを示すフローチャートの10である。
【図12】  論理ディスクコントローラのマイクロコ
ードを示すフローチャートの11である。
【図13】  論理ディスクコントローラのマイクロコ
ードを示すフローチャートの12である。
【図14】  論理ディスクコントローラのマイクロコ
ードを示すフローチャートの13である。
【図15】  論理ディスクコントローラのマイクロコ
ードを示すフローチャートの14である。
【図16】  論理ディスクコントローラのマイクロコ
ードを示すフローチャートの15である。
【図17】  本発明が実施されるシステムの概略図で
ある。
【符号の説明】

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】  メモリ内に常駐するデータのブロック
    を、0からn−1まで番号付けされた同一型のn個のデ
    ィスクへと格納する方法であって、前記ブロックを複数
    のセクタへと分割し、前記セクタをモジュロnで反復し
    て番号付けする段階と、番号付けされた各ディスクドラ
    イブを使用して、同一番号のセクタを同一番号のディス
    クへと格納する段階と、からなる方法。
  2. 【請求項2】  各ディスクドライブは、番号付けされ
    たセクタを格納する速度に関して他のディスクドライブ
    と非同期的に作動するものである、請求項1記載の方法
  3. 【請求項3】  ディスクの角度位置が同期されている
    、請求項1記載の方法。
  4. 【請求項4】  データのブロックを検索する方法であ
    って、前記データブロックはモジュロnで番号付けされ
    たセクタへと分割され、前記セクタはn個の同一型のデ
    ィスク上に常駐しており、前記ディスクは0からn−1
    まで番号付けされており、各ディスク手段を使用して現
    在のセクタを検索する段階と、n個の現在のセクタを番
    号順に組立てることによってデータのブロックを構成す
    る段階と、からなる方法。
  5. 【請求項5】  前記組立てられたブロックはメモリに
    格納されるものである、請求項4記載の方法。
  6. 【請求項6】  各ディスクドライブは、番号付けされ
    たセクタを検索する速度に関して他のディスクドライブ
    と非同期的に作動するものである、請求項5記載の方法
  7. 【請求項7】  ディスクの角度位置が同期されている
    、請求項5記載の方法。
JP3249318A 1990-09-28 1991-09-27 ディスクドライブ並列操作方法 Expired - Lifetime JP2544039B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US59063490A 1990-09-28 1990-09-28
US590634 1990-09-28

Publications (2)

Publication Number Publication Date
JPH04255960A true JPH04255960A (ja) 1992-09-10
JP2544039B2 JP2544039B2 (ja) 1996-10-16

Family

ID=24363016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3249318A Expired - Lifetime JP2544039B2 (ja) 1990-09-28 1991-09-27 ディスクドライブ並列操作方法

Country Status (3)

Country Link
EP (1) EP0478337B1 (ja)
JP (1) JP2544039B2 (ja)
DE (1) DE69131858T2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2695227B1 (fr) * 1992-09-02 1994-10-14 Aton Systemes Procédé pour le transfert entrelacé des données entre la mémoire d'un ordinateur et un équipement périphérique constitué d'un système de gestion et de plusieurs unités de stockage.
GB2273584B (en) * 1992-12-16 1997-04-16 Quantel Ltd A data storage apparatus
JPH06332623A (ja) * 1993-05-24 1994-12-02 Mitsubishi Electric Corp アレイ型記録装置及び記録装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03282726A (ja) * 1990-03-30 1991-12-12 Nec Corp 並列ディスク装置のデータ転送制御方式

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU630635B2 (en) * 1988-11-14 1992-11-05 Emc Corporation Arrayed disk drive system and method
WO1990006550A1 (en) * 1988-12-08 1990-06-14 Cray Research, Inc. Single disk emulation for asynchronous disk array

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03282726A (ja) * 1990-03-30 1991-12-12 Nec Corp 並列ディスク装置のデータ転送制御方式

Also Published As

Publication number Publication date
EP0478337A2 (en) 1992-04-01
JP2544039B2 (ja) 1996-10-16
EP0478337B1 (en) 1999-12-22
EP0478337A3 (en) 1993-07-28
DE69131858T2 (de) 2000-05-18
DE69131858D1 (de) 2000-01-27

Similar Documents

Publication Publication Date Title
US5740466A (en) Flexible processor-driven SCSI controller with buffer memory and local processor memory coupled via separate buses
US8149854B2 (en) Multi-threaded transmit transport engine for storage devices
US5469548A (en) Disk array controller having internal protocol for sending address/transfer count information during first/second load cycles and transferring data after receiving an acknowldgement
US5448709A (en) Disk array controller having command descriptor blocks utilized by bus master and bus slave for respectively performing data transfer operations
JP3181515B2 (ja) データ転送方法及びその方法を用いたデータ転送装置
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
JPH09160861A (ja) ローカル・プロセッサの介入なしにコマンド・ブロックをローカル処理サイドに転送するための情報処理システム
JPH0793219A (ja) 情報処理装置
JPH0827707B2 (ja) Fifoバッファの制御装置及び制御方法並びにデータ転送を制御する装置
JPH077327B2 (ja) データ転送方法
JP2557199B2 (ja) インターフェース・システムおよび方法
JPH06110617A (ja) ディスク制御方法
JPH07225715A (ja) キャッシュ内のデータにアクセスする方法およびシステム
JP2550311B2 (ja) 磁気デイスクの多重制御方式
US5613141A (en) Data storage subsystem having dedicated links connecting a host adapter, controller and direct access storage devices
KR100638378B1 (ko) 디스크 제어장치의 메모리 구조에 대한 시스템 및 방법
JPH04255960A (ja) ディスクドライブ並列操作方法
JPH0844649A (ja) データ処理装置
JPH0844652A (ja) 計算機システムおよび入出力命令の発行方法
JP2963696B2 (ja) データ転送制御システム
JPS6226055B2 (ja)
JPH0519181B2 (ja)
JPH1173278A (ja) 二重化コンピュータシステムにおけるスレーブ組込時間短縮方法
JPH11338644A (ja) ディスク制御装置及び記憶装置
JPH1021203A (ja) I/o装置のアクセス方法およびそのためのマルチプロセッサシステム

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19960524