JPH0743687B2 - データ記憶サブシステム - Google Patents

データ記憶サブシステム

Info

Publication number
JPH0743687B2
JPH0743687B2 JP3504612A JP50461291A JPH0743687B2 JP H0743687 B2 JPH0743687 B2 JP H0743687B2 JP 3504612 A JP3504612 A JP 3504612A JP 50461291 A JP50461291 A JP 50461291A JP H0743687 B2 JPH0743687 B2 JP H0743687B2
Authority
JP
Japan
Prior art keywords
data
controller
host
adapter
dma
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.)
Expired - Lifetime
Application number
JP3504612A
Other languages
English (en)
Other versions
JPH05502316A (ja
Inventor
ジャッド、イアン、デビッド
ザアッツコウスキー、ミッチェル、ジャン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JPH05502316A publication Critical patent/JPH05502316A/ja
Publication of JPH0743687B2 publication Critical patent/JPH0743687B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)

Description

【発明の詳細な説明】 [技術分野] 本発明は、データ記憶サブシステムの分野に関し、具体
的には、高性能サブシステム・アーキテクチャに関す
る。
[背景技術] データ処理システム内で使用されるデータ記憶サブシス
テムは、通常、顧客データを保持する1つまたは複数の
記憶装置に接続された装置制御装置を備える。これらの
記憶装置は、通常、ディスク駆動装置などの直接アクセ
ス記憶装置である。近年になって、このような記憶サブ
システムはますます精巧になり、多くの異なるサブシス
テム・アーキテクチャが提案されてきた。
米国特許第4825406号明細書(Digtial Equipment Cor
porationに譲渡)には、接続されるディスク駆動装置と
装置制御装置との間の直列通信を使用する二次記憶機構
が記載されている。その直列リンクは、単方向ビット直
列チャネルである4本の線からなる。1本の線が、駆動
装置に書込みデータとコマンド・データを搬送し、もう
1本の線が、駆動装置から制御装置に読取りデータと応
答データを搬送する。残りの2本の線は、伝送の調整と
同期化に使用される信号を搬送する。装置制御装置は、
ホスト・プロセッサと通信し、ホスト・プロセッサにバ
スを介して接続される。
[発明の開示] 本発明は、ホスト・アダプタ、制御装置、複数の直接ア
クセス記憶装置、アダプタを制御装置に接続する専用直
列リンク、および制御装置をそれぞれの装置に接続する
複数の専用リンクを備え、直列リンクが、全二重モード
で動作するように構成されたインバウンド接続とアウト
バウンド接続の対からなる、データ記憶サブシステムを
提供する。
制御装置と装置との間の専用リンクも、全二重モードで
動作するように構成されたインバウンド接続とアウトバ
ウンド接続の対からなる直列リンクであることが好まし
い。
さらにデータとコマンドがパケットの形で直列リンクを
介して転送され、直列リンクのインバウンド接続とアウ
トバウンド接続がそれぞれ前記パケットの多重化を行え
るように構成されていることが好ましい。
さらに、接続装置が相対的に大きなデータ・バッファを
有し、装置が相対的に小さなデータ・バッファを有する
ことが好ましい。データ記憶サブシステムのアーキテク
チャを設計する際には、装置内で制限付きの緩衝記憶を
行えるようにすると、コストの点で有利である。
制御装置のデータ・バッファを装置間で共用して、装置
からホストへ転送される読取りデータと、ホストから装
置へ転送される書込みデータを受け取ることが好まし
い。したがって、制御装置内には、ホストと装置との間
のすべてのデータ転送に使用されるバッファ区域が1つ
ある。
また、制御装置は、それ自体と装置との間でのデータ転
送を、多重セクタ装置副指令によって開始するように配
置することが好ましい。多重セクタ副指令を使用する
と、制御装置がセクタ毎に装置に指令する必要がなくな
るので、性能上有利である。すなわち、制御装置は、よ
り自由に他のタスクを実行できるようになる。
アダプタに複数の直接メモリ・アクセス(DMA)チャネ
ルを組み込んで、アダプタと制御装置との間の専用直列
リンクとホストとの間でデータを転送することが好まし
い。さらに、制御装置に複数のDMAチャネルを制御する
直接メモリ・アクセス(DMA)制御装置を組み込んで、
アダプタと制御装置バッファとの間または装置と制御装
置バッファとの間でデータを転送することが好ましい。
DMAチャネルとDMA制御装置を設けると、ホスト・メモリ
との間でのデータ転送が、中央演算処理装置を使用せず
に行えるようになる。
本発明の好ましい実施例を、添付図面を参照して例とし
て記述する。本発明を実施するためには、以下の記述に
含まれる特徴のすべてが必要というわけではないことに
留意されたい。
[図面の簡単な説明] 第1図は、本発明によるデータ記憶サブシステムの主要
な機能ユニットのブロック図である。
第2図は、第1図のアダプタの主要構成要素を示すブロ
ック図である。
第3図は、第2図のアダプタ・リンク・チップの構造を
示す図である。
第4図は、第1図の制御装置の主要構成要素を示すブロ
ック図である。
第5図は、第4図の制御装置リンク・チップの構造を示
すブロック図である。
第6図は、制御装置マイクロプロセッサ内で定義される
タスク間の通信を示すブロック図である。
第7図は、インバウンド直列リンクとアウトバウンド直
列リンクを示すブロック図である。
[発明の詳細な説明] データ処理システムへの接続に適し、ホスト・システム
が高速にアクセスできる大容量の記憶域を提供する、デ
ータ記憶サブシステムについて記述する。第1図に示し
たこのサブシステムの主な機能ユニットは、(1)ホス
ト・アダプタ、(2)装置制御装置および(3)直接ア
クセス記憶装置(DASD)である。これらの機能ユニット
は、二地点間全二重直列リンクによって相互接続され
る。第1図は、このサブシステムの基本構成を示す図で
あるが、同図では、1個のアダプタ10が、専用直列リン
ク15を介して1台の制御装置20に接続され、制御装置20
は、4本の直列リンク25〜28によって4台のDASD 30に
接続されている。以下の記述の大半は、この基本構成に
関するものである。ただし、このサブシステムのアーキ
テクチャ(以下で詳細に述べる)は、各アダプタを最高
4台の制御装置に接続でき、各制御装置を最高4台の装
置に接続できるように設計されている。さらに、1台の
制御装置を最高2個のアダプタに接続することができ
る。このサブシステムの好ましい実施例では、ホスト・
アダプタは、ホスト・システム内に格納され、直列リン
クを介してハウジング(たとえばラックに装着した引出
しまたは自立型ユニット)に接続される。このハウジン
グは、1台の制御装置と4台のDASDを備え、付随の電源
と冷却システム(図示せず)を有する。
まず、アダプタ、制御装置およびDASDの主な機能につい
て手短に述べる。
1.アダプタ アダプタは、本質的には、直列リンクを介してホスト・
システムを制御装置に接続する汎用マルチプレクサであ
る。アダプタは、IBMのマイクロ・チャネル・アーキテ
クチャ(マイクロ・チャネルは、インターナショナル・
ビジネス・マシーンズ・コーポレイションの登録商標)
など様々な既存インターフェースを介してホスト・シス
テムに接続するよう設計することができる。
アダプタの主要機能は次の通りである。
1)アダプタは、SCSI(小型コンピュータ・システム・
インターフェース)コマンドをシステム・メモリから直
接メモリ・アスセス(DMA)によって取り出し、直列リ
ンクを介してこれらのコマンドを制御装置に転送する。
2)アダプタは、DMAチャネルのプールを管理し、要求
に応じて読取りデータまたは書込みデータの転送のため
にこれらのチャネルを制御装置に割り振る。
3)アダプタは、DMAによってホスト・メモリから書込
みデータのパケットを取り出し、直列リンクを介してこ
れらを制御装置に伝送する。
4)アダプタは、直列リンクから読取りデータのパケッ
トを受け取り、DMAによってこれらをシステム・メモリ
に記憶する。
5)アダプタは、各コマンドの終了状況を組み立て、シ
ステムに提示する。一時に最高4台の装置に関して良好
な状況を提示することができる。
6)アダプタは、前のSCSIコマンドを打ち切る手段を提
供する。
2.制御装置 制御装置は、接続されるDASD用のSCSIコマンド・セット
(その要素のうちで本明細書に関連するものは、別途定
義する)を実施する。主要機能は次の通りである。
1)制御装置は、各DASD用のコマンド待ち行列を維持管
理する。
2)制御装置は、ホスト・システムから書込みデータを
事前取出しし、読取りデータを訂正し、DASDから読取り
データを事前取出しするためのデータ・バッファ(DASD
間で共用される)を有する。
3)制御装置は、SCSI状況を生成する。
3.DASD DASDの主要機能は、次の通りである。
1)DASDは、指定されたシリンダおよびヘッドまでシー
クする。
2)DASDは、制御装置が供給する開始理論ブロック・ア
ドレス(LBA)を探索し、その後、必要に応じて次トラ
ックまでシークしながら、指定された数のブロックを読
み取りまたは書き込む。欠陥ブロックが発見された場
合、DASDは、それらを自動的にスキップする。
3)DASDは、各ブロックに付加されるECCバイトを生成
し、検査する。DASD内にECCハードウェアが含まれ、制
御装置が、異なるECCアルゴリズムを有する可能性もあ
る、ある範囲のDASDをサポートできるようになってい
る。
DASDがデータ・エラーを検出した場合、制御装置が、DA
SDに、エラーのパターンと変位を供給するよう要求す
る。その後、制御装置は、そのバッファ内のデータを訂
正し、アダプタへの転送を再開する。
4)DASDは、読取りデータと書込みデータ兼用の記録チ
ャネルを有する。書込みデータは、符号化され直列化さ
れた後にヘッドに供給される。ヘッドからの読取り信号
は、検出され非直列化され復号される。
直列リンク 直列リンクは、このサブシステムの2つのノードの間、
すなわち、アダプタと制御装置の間ならびに制御装置と
DASDの間の、二地点間通信を提供する。
データ転送の単位は、パケットである。パケットのフォ
ーマットは、下に示すように、制御フィールド(CONTRO
L)、アドレス・フィールド(ADDRESS)、可変長データ
・フィールド(DATA)およびCRCフィールド(CRC)を含
む。
パケットを直列リンク上で多重化して、異なるDASDに関
する複数のコマンドを同時に実行することができる。
全二重データ伝送では、読取りデータと書込みデータの
同時転送がサポートされる。実際には、各直列リンク
は、2つの反対方向でのデータ転送を提供する2本のリ
ンクをそれぞれ備える。これを第7図に示す。第7図に
よれば、各ノードは、入力データおよびメッセージを受
信するインバウンド・リンクと、データおよびメッセー
ジを送信するアウトバウンド・リンクを有する。
このリンクは、簡単なプロトコルを有する。各ノード
は、そのインバンド・リンク上の遠隔ノードから受け取
る歩調合せ応答と肯定応答に従って、そのアウトバンド
・リンク上でパケットを送信することができる。
直列リンク上のパケットは、下記の2種類に分類でき
る。
メッセージ・パケットは、ノード内のソフトウェア・プ
ロセスから発し、宛先ノード内のプロセスを宛先とする
(プロセスの説明は、以下の制御装置の動作に関する節
とアダプタの動作に関する節にある)。メッセージ・パ
ケットは、通常は、コマンドと状況に使用される(メッ
セージ・パケット内で送られる異なる種類のメッセージ
については、以下で詳細に説明する)。
データ・パケットは、1つのノード内のDMAチャネルか
ら発し、宛先ノード内のDMAチャネルを宛先とする。デ
ータ・パケットは、通常は、読取りデータまたは書込み
データを含む。
各パケットは、パケットのソースまたは宛先あるいはそ
の両方を示すアドレス・フィールドを含む。直列リンク
の動作の詳細については、係属中の英国特許出願第9026
338.5号および第9026336.9号を参照されたい。
メッセージ メッセージとは、宛先ノード内のプロセスを宛先とする
直列リンク上のパケットである。そのパケットの第1デ
ータ・バイト(すなわち、そのパケットのデータ・フィ
ールドの第1バイト)が、メッセージを識別する。後続
バイトは、パラメータである。
ほとんどのメッセージは、パラメータとしてTAG(タ
グ)を有する。これによって、メッセージを、アダプタ
から送られる対応するコマンドに関連付けることができ
る。
アダプタから制御装置へのメッセージ SCSI_COMMAND(SCSIコマンド) これは、SCSIコマンド記述子ブロックを制御装置の待ち
行列に転送するメッセージである。
DASD ADDRESS(DASDアドレス)は、コマンドを実行する
予定の目標記憶装置を識別する。
SCSI EXTは、ANSI仕様'Small Computer Systems Interf
ace/Z':X3T9.2/86-109に記載されたSCSIコマンド・セッ
トによって供給される機能を超える拡張または変更を提
供する。メッセージのこの部分をセットすると、DASDへ
の分割書込み、または制御装置リンクへのアダプタ上で
の分割読取りが使用可能になる。
DMA ADDRESS(DMAアドレス)は、SCSIコマンド用のデー
タ域の、システム・メモリ内の開始アドレスである。
COMMAND DESCRIPTOR BLOCK(CDB)(コマンド記述子ブ
ロック)はSCSIコマンド用のコマンド記述子ブロックで
ある。CDBは、SCSIコマンド・セットのコマンドのうち
の1つを含む。
READY_FOR_READ(読取り実行可能) このメッセージは、アダプタによって、DATA_READY(デ
ータ実行可能)メッセージに応答して制御装置に送られ
る。TAGは、特定のREADY_FOR_READメッセージに関連す
るコマンドを識別する。LINK ADDRESS(リンク・アドレ
ス)は、この読取り動作のためにアダプタ内で割り振ら
れたDMAチャネルを識別する。
ABORT(打切り) このメッセージは、ホストから取り出したABORT_SCSI
(SCSI打切り)動作を実行している時に、アダプタが生
成する。TAGは、ABORT_SCSIコマンド動作を含むメール
ボックスを識別し、TAG2は、打ち切るべきコマンドを識
別する。メールボックスの詳細については、後述する。
このメッセージは、制御装置に、コマンドが実行中であ
る場合にはその実行を終了させ、実行がまだ始まってい
ない場合には制御装置の待ち行列からそのコマンドを取
り除かせる。
RESET(リセット) このメッセージは、制御装置内またはDASD内の選択され
た資源をリセットするために、アダプタから制御装置に
送られる。
制御装置からアダプタへのメッセージ READY_FOR_WRITE(書込み実行可能) これは、アダプタに、ホストのDMA START ADDRESS(DMA
開始アドレス)からDMA LENGTH(DMA長)だけデータを
転送するよう指令するメッセージである。LINK ADDRESS
は、データ・パケットの宛先である。制御装置内のDMA
チャネルを識別する。TAGは、データに関連するコマン
ドを識別する。
DATA_READY(データ実行可能) これは、アダプタがまだこのTAGにDMAチャネルを割り振
っていない場合にはアダプタにそれを行うよう指令し、
指定されたDMA START ADDRESSから始まって指定されたD
MA LENDGTHだけホスト・メモリへの転送を準備するよう
指令するメッセージである。アダプタは、READY_FOR_RE
ADメッセージで応答して、どのDMAチャネルがデータ・
パケットの宛先となるのかを制御装置に知らせる。
STATUS(状況) これは、TAGによって識別されるコマンドが完了した時
に生成されるSCSI状況を伝えるメッセージである。
次に制御装置とアダプタの主な構成要素について述べ
る。
アダプタ ハードウェア アダプタ・ハードウェアの主な構成要素を第2図に示
す。アダプタの核になるのは、マイクロプロセッサ・チ
ップ(MPC)110であり、これは、接続される制御装置と
ホスト・システムの間でのメッセージおよびデータの転
送を制御する高性能制御装置を含む。また、2つの同一
のアダプタ・リンク・チップ(ALC)120があり、それぞ
れが、マイクロチャネル、2本の直列リンクおよび16本
のDMAチャネル(図示せず)へのインターフェースを提
供する。各直列リンクは、制御装置へまたはそこから伝
送中のコマンド、データおよび状況用の4個の128バイ
ト・パケット・バッファを有する。MPCとALCの間のイン
ターフェースは、入出力バス115である。
アダプタ・リンク・チップ(ALC) ALCの主な構成要素を第3図に示す。
データRAM データRAM121は、下記の区域を含む。
1)8個の128バイト・パケット・バッファ(4個は各
直列リンク用、2個はアウトバウンド用、2個はインバ
ウンド用) 2)16個の8バイトDMAレジスタ:各DMAチャネル毎に1
個のDMAレジスタが設けられる。これらのレジスタは、D
MAデータ転送の際に使用する。
3)アウトバウンド直列リンク・メッセージ用の32バイ
ト・メッセージ・バッファ:このバッファは、高性能マ
イクロプロセッサが、制御装置宛のREADY_FOR_READメッ
セージを作成するのに使用する。適当なハードウェアを
設定することによって、その後、このバッファを制御装
置に送ることができる。
4)ホスト・インターフェース・レジスタ:メールボッ
クスをアダプタに渡す処理には、3つの内部レジスタが
関係する。メールボックスおよびアダプタの動作の詳細
は、後述する。
メールボックス・ポインタ・レジスタ:システムが読み
書きすることのできる4バイト・レジスタ。これは、連
鎖内の最初のメールボックスを指すように、システムに
よって初期設定される。現タグ・レジスタが最終タグ・
レジスタに等しい時、または、アダプタをリセットした
直後には、システムは、このレジスタを読み取ることだ
けを許される。
現タグ・レジスタ:これは、システムが読み書きするこ
とのできる1バイト・レジスタである。これを用いる
と、システムがアダプタの進行状況を見られるようにな
る。このレジスタは、アダプタのリセットによってクリ
アされ、ホストが最終タグ・レジスタを書き込んだ直後
にもクリアされる。アダプタは、メールボックスの処理
を完了した後に、各メールボックスのタグを現タグ・レ
ジスタに記憶する。
最終タグ・レジスタ:システムが読み書きすることので
きる1バイト・レジスタ。このレジスタは、システムが
幾つかのメールボックスを待ち行列に追加する時に、シ
ステムによって書き込まれる。このレジスタは、最後の
メールボックスに含まれるタグを示す。これによって、
アダプタはリストの末尾に達した時を知る。このレジス
タに書込みが行われる時は、アダプタに対する割込みが
発生する。
5)ホストからすべてのメールボックスを取り出すため
の32バイトのDMAパケット・バッファ:制御装置向けのS
CSI_COMMAND、ABORTおよびRESETメッセージは、DMAバッ
ファから直接に送られる(READY_FOR_READメッセージ
は、メッセージ・バッファ内で作成され、アウトバウン
ド・リンクを介して制御装置に送られる)。DMAバッフ
ァは、DMA制御下でホスト・メモリを読み書きするのに
使用できる。
データRAMは、直列リンク、マイクロプロセッサまたは
リンク間転送、および高性能マイクロプロセッサの間で
時間多重化される。
状況RAM 各パケット・バッファは、それぞれパケット状況レジス
タ(PSR)を必要とする。これらのレジスタは、状況RAM
122内に保持され、16ビット幅である。パケット・バッ
ファおよび関連するパケット状況レジスタを、第7図に
示す。各レジスタは、下記の2つのフィールドを含む。
DESTINATION(宛先)−アウトバウンド・データ・パケ
ットの場合、このフィールドは、対応するパケット・ア
ッファの内容がそのリンクによって伝送される時に出力
パケットのアドレス・フィールドに複写される値を含
む。この値は、送信に備えてパケットをパケット・バッ
ファから取り出す時に、ハードウェアによって自動的に
ロードすることができる。インバウンド・パケットの場
合、このフィールドは、入力パケットのアドレス・フィ
ールドから抽出されたアドレスを含む。この値は、イン
バウンド・リンクのFSM(有限状態機械)によってPSRに
書き込まれ、その値は、このパケットの後続の経路指定
を決定するのに使用される。
BYTE COUNT(バイト・カウント)−アウトバウンド・
パケットの場合、このフィールドは、対応するパケット
・バッファ内に置かれているバイト数を示す値を含む。
リンクがパケットを送出する時、この値を、データ・バ
イトを1バイト送るごとに減分されるバイト・カウンタ
(リンク・ハードウェアの一部)に複写しなければなら
ない。PSR内の値は、伝送中のエラーが原因でそのパケ
ットを再送信しなければならない場合に備えて保存され
る。インバウンド・パケットの場合、このフィールド
は、入力パケット内で受け取ったデータ・バイトの数を
示す値を含む。
マイクロチャネル・インターフェース マイクロチャネルは、ホスト・メモリとインターフェー
スし、上記に定義したデータRAMホスト・インターフェ
ース・レジスタを使用する。
DMAチャネル 各ALCには、0〜15の番号を付した16本のDMAチャネル
(図示せず)がある。これらのチャネルは、ホスト・メ
モリとDMAパケット・バッファの間でのデータのDMA転送
に使用される。
制御装置 ハードウェア 第4図に、制御装置の主な機能構成要素を示す。制御装
置の核になるのは、MPCチップ210であり、これは高性能
制御装置(HPC)と、データ・バッファ220との間でのデ
ータの転送を制御するDMA制御装置とを含む。
DMAバス225は、DMA制御装置を2つの制御装置リンク・
チップ230に接続する。
データ・バッファ220:アダプタとDASDの間のすべてのデ
ータは、このデータ・バッファを通過する。また、この
バッファは、システムから要求される場合に備えて、先
読みデータを記憶するのにも使用される(以下の「先読
み」に関する節を参照されたい)。リンク・パケット・
バッファとデータ・バッファの間でデータを転送するた
め、16本のDMAチャネル(0〜15の番号を付す)が設け
られている。装置(DA)リンク毎に2本のチャネルがあ
り、SA(直列アダプタ)リンク毎に4本のチャネルがあ
る。
データ・バッファは、DRAMモジュールのアレイからな
る。このバッファ内のデータは、データ保全性を確保す
るため,ECCと共に記憶される。データ・バッファは、DA
SD毎に7個の32Kバイト・セグメントで割り振られる。
1台のDASD上で複数のタスクが実行される場合は、タス
ク毎に異なるセグメントが割り振られる。
高性能制御装置は、制御装置リンク・チップ内で実施さ
れる一連の外部レジスタを介して、制御装置へのインタ
ーフェースを制御する。入出力バス226は、マイクロプ
ロセッサが、これらのレジスタにアクセスするのに使用
する。
スタティックRAM240は、プログラムの実行に使用され
る。
EPROM250は、高性能制御装置の動作の際に使用されるマ
イクロコードを記憶する。マイクロコードの構造と動作
については、以下で詳細に説明する。
制御装置リンク・チップ(CLC) CLC内に含まれる主な機能区域を、第5図に示す。これ
らは、以下の通りである。
1)2つのDASD直列インターフェース(DA0およびDA1) 2)1つのアダプタ直列インターフェース(SA) 3)リンク・パケット・バッファ240および関連するパ
ケット状況レジスタ242 パケット・バッファは、入力データと出力データを保持
するのに使用される。連続的リンク転送を行うため、A/
Bバッファ実施態様を使用する。これによって、リンク
がバッファAを使用している間にDMA理論回路がバッフ
ァBを満たす(または空にする)ことができ、その逆も
行えるようになる。このリンクが全二重であるというこ
とは、インバウンド・リンクとアウトバウンド・リンク
の両方が、それぞれのパケット・バッファの組を必要と
することを意味する。制御装置リンク・チップは、3つ
の直列インターフェースを含むので、これは、直列リン
クのサービスに、全体で12個のパケット・バッファが必
要であることを意味する。マイクロコードがその中で出
力メッセージを作成することのできる、追加のパケット
・バッファも実施される(リンク毎に1個)。これを用
いると、高性能マイクロプロセッサが、A/Bパケット・
バッファの一方をDMA転送のサービスから引き上げず
に、したがって、進行中のデータ転送に悪影響を及ぼさ
ずに、メッセージを作成できるようになる。
CLC内の3つのリンクはそれぞれ、アウトバウンド、イ
ンバウンドまたはメッセージとして分類される5個のパ
ケット・バッファを備える。
アウトバウンド:各リンクは、DMAハードウェアのサー
ビスを受ける2個のA/Bアウトバウンド・パケット・バ
ッファを備える。これらのバッファは、データ・バッフ
ァから得られ、DASD(DAリンク)またはアダプタ(SAリ
ンク)に送られるデータで満たされる。
インバウンド:各リンクはまた、2個のA/Bインバウン
ド・パケット・バッファを備える。(アダプタまたはDA
SDからの)入力パケットが、これらのバッファに記憶さ
れ、入力パケットのアドレス・フィールドの内容に応じ
て、DMAハードウェアまたはスピニカのサービスを受け
る。
メッセージ:各リンク・インターフェースはまた、メッ
セージ・パケット・バッファを備える。これは、マイク
ロプロセッサが、アダプタまたはDASDに送るアウトバウ
ンド・メッセージを作成するのに使用する。
4)DMAインターフェース理論回路:これは、DMA制御装
置の監視下で、パケット・バッファから制御装置データ
・バッファにデータを転送する回路である。
DMA動作 データは、アダプタと制御装置バッファの間、および装
置と制御装置バッファの間で、DMAによって転送され
る。制御装置のマイクロプロセッサは、制御装置リンク
・チップと共用データ・バッファの間の転送を調整する
DMA制御装置を含む。
制御装置リンク・チップには、CLC内のパケット・バッ
ファと制御装置データ・バッファの間でデータを転送す
るためのDMAインターフェースが組み込まれている。DMA
インターフェースは、マイクロプロセッサ・チップ内に
含まれるDMA制御装置によって監視される。マイクロプ
ロセッサ・チップは、DMA要求間のアービトレーション
を行う理論回路を含む。
DMA転送の前にアービトレーション段階があり、この間
にCLCチップは、サービスを必要とするDMAチャネルに対
する要求を示す信号を発生することができる。DMA制御
装置は、これらの要求のうちの1つに許可を発行し、そ
の後にCLCは転送を開始できる。各制御装置リンク・チ
ップは、8本のDMAチャネルを使用して、データ転送を
サービスすることができる。これらのDMAチャネルは、
下記のように割り当てられる。
チャネル0、1:DAリンク第0番(第5図のDA0) チャネル2、3:DAリンク第1番(第5図のDA1) チャネル4ないし7:アダプタ・リンク(第5図のSA) (第2のCLCは、上記と同じ順序でチャネル8〜15を使
用する。) この配置を用いると、最高2本のDMAチャネルが各DASD
にサービスできるようになり、アダプタ・リンクは、最
高4本のDMAチャネルのサービスを受けられるようにな
る。これらのチャネルを同時に使用して、直列リンクの
パケット多重化機能を活用することができる。装置リン
クは、アダプタ・リンクより高い優先順位を与えられ
る。DMAバスを用いると、最高40MB/sのデータ転送速度
が可能になる。パケット・バッファからデータ・バッフ
ァへの32バイト(DA)転送には、約1.2マイクロ秒を要
する。128バイト(SA)転送には、3.6マイクロ秒を要す
る。
アービトレーション中に、各CLCが、下記のようにDMAバ
ス上に要求を出す。
記憶(バッファへの書込み):インバウンド・リンク・
パケットのアドレス・フィールドが、そのデータがDMA
チャネル宛であることを示す場合、そのパケットの受信
時にDMA要求が出される。
取出し(バッファからの読取り):あるDMAチャネルに
関連するリンク・パケット・バッファの一方または両方
が空である場合、そのDMAチャネルに対するDMA要求が出
される。
DMA記憶動作:DMA記憶動作は、インバウンド・パケット
・バッファを空にするのに使用される。
DMA取出し動作:DMA取出し動作は、アウトバウンド・パ
ケット・バッファを満たすのに使用される。それぞれの
転送は、通常は1個のパケット・バッファ全体に対する
ものである。
コマンド記述子待ち行列 CDB(さらにABORTおよびRESETを含む)は、初めてそれ
を受け取った時、SA RECEIVE MESSAGE(SA受信メッセー
ジ)プロセスの制御下で、コマンド記述子待ち行列項目
(CDQE)に記憶される。
空き待ち行列:最初は、すべてのCDQEが空きである。
空き待ち行列は、1つの要素が次の要素を指しており、
これによってすべての空きCDQEを発見できるようになっ
ているという点でのみ待ち行列である。項目の順序には
意味がない。
新規コマンド待ち行列:新規のコマンドが到着する時、
SAタスクが、そのコマンドを空き待ち行列の先頭にある
CDQEに複写する。このCDQEは、空き待ち行列から削除さ
れ、新規コマンド待ち行列に追加される。打切りメッセ
ージも、CDQEに入れられ、新規コマンド待ち行列に追加
される。
装置コマンド待ち行列:装置毎に1つずつ合計4つの装
置コマンド待ち行列がある。各待ち行列は、それ自体の
COMMAND(コマンド)プロセスによってサービスを受け
る。QUEUE MANAGER(待ち行列マネジャ)プロセスは、
新規コマンド待ち行列のCDQE内で新規コマンドを発見し
た時、それの宛先となっている装置を見つけ、対応する
装置コマンド待ち行列にこのCDQEを転送する。
メッセージ待ち行列:コマンドの処理が完了した時、そ
のCDQEに、関連するCOMMANDプロセスによってSCSI状況
メッセージがロードされ、そのCDQEは、装置コマンド待
ち行列から移される。メッセージ待ち行列は、したがっ
て、SA TRANSMIT MESSAGE(SA送信メッセージ)プロセ
スに対する要求の待ち行列である。
同一の待ち行列が、異なるアダプタ・リンクを介して受
信されるコマンドに使用される。
待ち行列連係:空き待ち行列、新規コマンド待ち行列お
よびメッセージ待ち行列の先頭ポインタおよび末尾ポイ
ンタは、メッセージ制御ブロック(MCB)内のフィール
ドである。装置コマンド待ち行列の先頭ポインタおよび
末尾ポインタは、対応する装置制御ブロック(DCB)内
にある。先頭ポインタは、待ち行列の第1要素のアドレ
スを保持する。末尾ポインタは、最終要素のアドレスを
保持する。
各CDQEは、「次」ポインタを含む。CDQEは、複数の待ち
行列のどれに含まれてもよいが、1つのCDQEが同時に複
数の待ち行列に含まれてはならない。
次にアダプタおよび制御装置の動作について述べる。
アダプタ 動作 高速マイクロプロセッサ内で定義されたタスクが、アダ
プタの動作を制御する。タスクは、割込みによって開始
されるが、これは、ハードウェア事象からのものでも、
別のタスクからのソフトウェア割込みを介するものでも
よい。ソフトウェア割込みとは、あるタスクが別のタス
クに対して割込みをセットすることのできる手段であ
る。異なるタスク間の通信を第6図に示す。
タスク 状況:状況タスクは、ホスト・システムに提示すべき状
況を管理する責任を負う。状況は、他のタスクのうちの
1つからこのタスクに渡され、またこれをハードウェア
に書き込むことによって直接に提示されることもある。
リンク:制御装置への4本の直列リンクを処理するため
に、1つのリンク・タスクがある。このタスクは、制御
装置から受け取ったすべてのメッセージを解釈し、適当
な処置を取る責任を負う。
メールボックス:このタスクは、ホスト・システムから
のメールボックス・インターフェースを管理する。この
タスクは、システムから各メールボックスを受け取る責
任を負う。そのメールボックスがSEND_SCSI(SCSI送
出)コマンドである場合、そのコマンドをリンク・タス
クに渡して、適当な制御装置に送る。
(他にも定義されているタスクがあるが、この説明に直
接には関係ないので説明しない) ホスト・プロセッサから指令を受けた時、アダプタは、
ホスト・メモリからコマンドを取り出し、実行のためこ
れらを即座に適当な制御装置に転送する。コマンドを取
り出すための機構は、ホスト・システムのアーキテクチ
ャに依存し、それに応じて変わる。本明細書では、下記
の機構をマイクロチャネル上で使用する。
ホスト・システムは、ホスト・メモリ内で作成されるメ
ールボックスを使ってサブシステムの動作を開始させ
る。各メールボックスは、特定のコマンドを識別する一
義的タグを含んでいる。たとえば、ホストがある動作を
サブシステム内で開始しようと望む時、ホストは、次に
使用可能なメールボックス内でその動作を作成し、最終
タグ・レジスタに書き込む。最終タグ・レジスタに書き
込むと、アダプタ・マイクロプロセッサ内のメールボッ
クス・タスクに割込みがかかる。メールボックス・タス
クは、ホスト・メモリからアダプタ・リンク・チップの
うちの指定された1つ(マスタ・チップ)の32バイトDM
AバッファにメールボックスをDMA転送するよう、アダプ
タ・ハードウェアに指令する。ホストからのすべてのメ
ッセージが、このマスタ・チップ向けとなる。
いったんDMAバッファに入ると、メールボックス・タス
クがそのメールボックスを復号して、そのメールボック
スの内容によって定義される動作の種類を決定し、それ
がSEND_SCSIコマンドであると判った場合は、そのメー
ルボックスが、適当な制御装置に送るためにSCSI_COMMA
NDメッセージに変換される。SCSI_COMMANDメッセージ
は、メッセージ・パケットのデータ・フィールド中で、
32バイトのDMAバッファからリンク上を送られる。この
パケットのアドレス・フィールドは、宛先のアドレスを
含む。この場合は、宛先は制御装置マイクロプロセッサ
である。コマンドが、マスタ・チップのサービスを受け
ていない制御装置を宛先とするものである場合は、その
コマンドは、他のALC内のDMAバッファに複写され、直列
リンク上を送られる。
ホストは、多くの異なる動作ならびにSEND_SCSIコマン
ドを定義しているが、それらの多くはアダプタによって
実行され、制御装置に送る必要がない。ただし、2つの
動作すなわちABORT_SCSI COMMANDとRESETは、ABORTメッ
セージおよびRESETメッセージの形で適当な制御装置に
渡される。これらのメッセージのフォーマットの詳細
は、前述のアダプタ/制御装置メッセージのリストにあ
る。
ABORT_SCSI COMMANDとRESETの動作は、アダプタによっ
て、SEND_SCSI COMMANDと基本的に同じように処理され
る。メールボックス・タスクは、メールボックスを復号
し、ABORTメッセージまたはRESETメッセージをDMAバッ
ファから適当な制御装置に送る。この場合も、どの制御
装置を宛先とするかに応じて、そのメッセージを第2の
ALCのDMAバッファに複写する必要が生じることもある。
アダプタは、コマンドを発行する毎にタイマを起動す
る。これは、ホスト・システムに多数のタイマという負
担を負わせずに、コマンドの脱落や制御装置の中断を検
出するのに役立つ。アダプタ遊休タスクが、周期的にタ
イマを更新し、動作が時間切れになっていないか検査す
る。
制御装置 動作 制御装置の動作は、スピニカ・マイクロプロセッサに含
まれるマイクロコード内で定義されたタスクを使って行
われる。このプロセッサ内では、8つのタスクが定義さ
れている。それには、下記のものがある。
それぞれの装置とのインターフェースを管理する4つの
装置(DA)タスク。
アダプタおよびホストとのインターフェースを管理する
1つのSAタスク。
全体制御に関するタスクであるコマンド制御タスク。新
規のSCSIコマンドは、SAタスクからこのタスクに渡され
る。このタスクは、これらのコマンドを待ち行列に入
れ、復号し、命令をSAタスクと適当な装置タスクに送
る。SAタスクとDAタスクは、データ転送を実行する。
制御装置は上記のタスクを使用するが、SAタススとコマ
ンド制御タスクは、サブタスクの概念を介して拡張され
る。制御装置は、独立のタスクまたは1タスク内のサブ
タスクとして実施される多数のプロセスを有する。サブ
タスクは、サブタスク・スケジューラの制御下で実行さ
れる。
第6図は、異なるプロセス間の通信を示すブロック図で
ある。
制御ブロックは、この通信の際に、次のように使用され
る。あるプロセスが、制御ブロックに情報を入れ、別の
プロセスに通知する。後者のプロセスは、その制御ブロ
ック内の情報にアクセスする。制御ブロックは、プロセ
ス間でパスされる。
制御装置のプロセス SA RECEIVE MESSAGE(SA受信メッセージ)(SARXMSG) このプロセスは、アダプタから制御装置に送られるすべ
てのメッセージ、すなわち、SCSI_COMMAND、ABORT、RES
ETおよびREADY_FOR_FEADを処理する(これらのメッセー
ジのフォーマットは、本明細書の他所にある)。アダプ
タからのメッセージ・パケットは、CLCのインバウンド
・パケット・バッファで受信される。入力パケットのア
ドレス・フィールドの内容によって、そのパケットがメ
ッセージとして識別され、高性能制御装置のサービスを
受ける。そのメッセージが、新規のCOMMAND、ABORTまた
はRESETである場合には、SA RECEIVE MESSAGEプロセス
が、それをコマンド記述子待ち行列項目(CDQE)の空き
待ち行列の先頭に複写する。このCDQEは、その後QUEUE
MANAGERプロセスに待ち行列登録される。そのメッセー
ジがREADY_FOR_READである場合には、そのメッセージ
は、適当なSA XFER(SA転送)プロセス(すなわち、読
み取るべきデータを含む装置に関連するプロセス)に渡
される。
QUEUE MANAGER(待ち行列マネジャ) このプロセスは、コマンド制御タスクのサブタスクであ
り、SA RECEIVE MESSAGEプロセスからの割込みを処理す
る。通常は、メッセージはSCSI_COMMANDメッセージであ
るが、ABORTまたはRESETのこともある。SA RECEIVE MES
SAGEプロセスは、そのメッセージをCDQEに複写し、その
CDQEを空き待ち行列から「新規コマンド待ち行列」に移
した後に、このプロセスに通知しており、次いでこのプ
ロセスは、「新規コマンド」待ち行列から装置固有の待
ち行列にコマンドを移し、適当なコマンド・プロセスに
通知する。QUEUE MANAGERプロセスは、どのCOMMANDプロ
セスに通知すべきかを決定するために、メッセージの制
限付きの処理を幾つか実行する。
COMMAND(コマンド) コマンド・プロセス(コマンド制御タスクの4つのサブ
タスクのうちの1つ)は、装置コマンド待ち行列上のSC
SIコマンドを処理する。コマンド・プロセスには、並列
に走行する4つ(サポートされる4台の装置のそれぞれ
に1つずつ)のインスタンスがある。通常は、各プロセ
スがそのプロセスの装置に宛てられたコマンドを処理す
る。
各コマンド・プロセスが、1つのコマンドをその待ち行
列から取り上げ、 それがこの時点での実行するのに有効であることを確認
し、個々のコマンドを処理するるルーチンを呼び出し、
そのルーチンが、 そのコマンドの妥当性検査を行い、 SA XFER(SA)プロセスとDEVICE(DA)プロセスに指令
し、 SAとDAが完了するまで中断し、 SCSI状況を返し 通常は、SA TRANSMIT MESSAGEプロセスに通知して、SCS
I状況をアダプタに送る。
装置待ち行列が空になるまでその待ち行列内のコマンド
毎にこの手順を繰り返し、その後、この手順は、中断状
態になり、QUEUE MANAGERプロセスが新規コマンドを待
ち行列に追加した時に再開される。
DEVICE(装置) 装置毎に1つのプロセスがある(別々のタスクとして実
施される)。DAプロセスは、COMMANDプロセスからの下
記の要求を処理する。
1)読取り 適当なルーチンを呼び出して、COMMANDプロセスが要求
した読取りコマンドを処理する。このルーチンは、適当
なDASDにSEEK(シーク)副指令を発行し、DMAの初期設
定すなわちDMAチャネルの割振りを行い、使用可能なバ
ッファ・サイズを計算し、使用可能な空間が存在する場
合は、READ副指令を用意し、これをDASDに対して発行
し、そのDASDが、DASDから制御装置内のデータ・バッフ
ァへのデータ転送を開始する。DMAアドレスが、READ副
指令内でDASDに渡され、れを入力データ・パケットのア
ドレス・フィールド内で使用して、データの宛先を識別
する。
2)書込み この時、下記の要求ならびにIDフォーマットなどの他の
専用コマンドがまだ発行されていない場合に、SEEK副指
令を発行する。
3)現動作延長 4)事象停止 COMMANDプロセスは、下記の3つの事象のうちの1つを
通知することによって、DEVICEプロセスと通信する。
NEWREQ 新規の要求が開始されたことを装置プロセスに
知らせる。
EXTREQ この事象は、要求を延長するのに使用する。
STOP 装置プロセスに、現在進行中のすべての作業を停
止するよう指示する。
COMMANDプロセスからの要求を受け取った時、DEVICEプ
ロセスは、適当なDASD副指令を直列リンク上に送ること
によって、DASDに対する適当な処置を開始する。
DASD副指令は、制御装置によって生成される低水準の読
み書き副指令である。制御装置がデータを読み書きでき
るようにするために下記の副指令が設けられている。以
下で定義する副指令はそれぞれ、パケットのデータ・フ
ィールド内で直列リンクを介してDASDに送られる。すべ
ての「副指令」パケットは、実行のため、またはDASD内
の他の構成要素への分配のため、DASD内のマイクロプロ
セッサを宛先とする。
STOP_AND_SEEK(停止およびシーク)副指令 これは、DASDに、先読み(アクティブの場合)を中止
し、指定されたシリンダおよびヘッドにシークするよう
指令する副指令である。また、書込みコマンドの場合、
単独のシーク副指令を用いると、制御装置は、コマンド
を復号した直後に、アダプタから書込みデータを受け取
るのを待たずに、シークを開始できるようになる。DASD
が読取り副指令または延長読取り副指令を完了する前に
(状況パケットが返されていない)、STOP(停止)副指
令が発行される場合、DASDは、即座にその読取り動作を
打ち切り、STOP_AND_SEEK副指令で指定されたシリンダ
およびヘッドのシークを開始し、打ち切られたREAD(読
取り)副指令の状況パケットを返す。STOP副指令の場合
は状況パケットを送らない。
また、この副指令は、アダプタからABORT_SCSIコマンド
・メッセージを受け取った時にDASDに送られる。この場
合、シーク動作は開始されない。
READ(読取り)副指令 これは、DASDに、特定の理論ブロック・アドレス(LB
A)を探索し、指定された数のブロックを読み取るよう
指令する副指令である。パラメータは以下の通りであ
る。
シークの検査用の物理シリンダ(CYLINDER)と物理ヘッ
ド(HEAD)、論理ブロック・アドレス(LBA)、および
読み取るべきブロックの数のカウント(COUNT)。さら
に、アドレス・フィールド(ADDRESS)は、この副指令
の結果として返されるすべてのデータ・パケットのアド
レス・フィールドに置かれるバイトを含む。
DASDは、要求されたデータを制御装置に送り、各ブロッ
クの末尾にあるECCバイトを検査する。DASDが、欠陥あ
りとマークされたブロックに遭遇した場合は、それらの
ブロックを自動的にスキップする。最後に、DASDは、エ
ラーが検出されたか否かを示す状況を返す。
CONDITIONAL_READ(条件付き読取り)副指令 この副指令は、READ副指令と同じフォーマットを有し、
選択されたシリンダおよびヘッド・アドレスへのシーク
動作を呼び出す。この副指令に含まれるLBAに対応する
セクタの位置が指定され、カウント・フィールドで指定
された数のレコードが、ディスクから読み取られる。ア
ドレス・フィールドは、この副指令の結果として返され
るすべてのデータ・パケットのアドレス・フィールドに
置かれるバイトを含む。CONDITIONAL_READ副指令が制御
装置によって発行されるのは、ホストが要求する読取り
データの量が、選択された量より多い時だけであること
に留意されたい。要求されたデータの量が少ない場合に
は、CONDITIONAL_READの使用は保証されない。
この副指令を用いると、以下で詳細に説明する分割読取
り動作が可能になる。
WRITE(書込み)副指令 これは、DASDに、特定のLBAを探索し、指定された数の
ブロックを書き込むよう指令する副指令である。パラメ
ータは、READ副指令(上記参照)と同じであるが、書き
込むべきデータを制御装置が供給する点が異なる。さら
に、アドレス・フィールドは存在しない。
CONDITIONAL_WRITE(条件付き書込み)副指令 条件付き書込み副指令は、WRITE副指令と同じフォーマ
ットを有する。
EXTEND(延長)副指令 これは、前のREAD副指令、CONDITIONAL_READ副指令、WR
ITE副指令またはCONDITIONAL_WRITE副指令の動作を延長
する副指令である。「カウント」(COUNT)は、現副指
令が完了した後に読み取るまたは書き込む必要のある個
々のセクタの数を指定するパラメータである。
LBAは、最初に読み取るまたは書き込むべきブロックの
アドレスを定義するフィールドである。この値は、連続
的な読取りまたは書込みが必要な場合、前の副指令によ
って読み取られた、または書き込まれた最後のブロック
のLBAよりも1つ大きい値になる。LBAフィールドが、前
の副指令の最後のLBAの後の最初のブロックではない場
合は、これらのLBAの間にあるブロックはスキップさ
れ、読取りも書込みも行われない。
EXTEND副指令が有効になるためには、DASDは、前の副指
令が完了する前にEXTEND副指令を受け取らなければなら
ない。制御装置は、EXTENDを使って連続的書込みを実行
し、または先読みを継続する。これらの動作は、以下で
詳細に説明する。
動作全体が完了した時、コマンド・プロセスに適当な事
象が通知される。
SA XFER(SA転送) これは、ホストと制御装置内の読取りバッファの間また
はホストの制御装置内の書込みバッファの間でデータを
転送する、装置ごとのプロセスである。COMMANDプロセ
スは、SA XFERプロセスに対して下記のコマンドを発行
できる。
Send Read Data(読取りデータ送出) Get Write Data(書込みデータ取得) Stop Current Transfer(現転送停止) データ転送の実行に必要なパラメータは、制御ブロック
内でCOMMANDプロセスからSA XFERプロセスに渡される。
SA TRANSMIT(SA送信)(SATXMSG) これは、他のプロセスに代わってメッセージ(READY_FO
R_WRITE、DATA_READYおよびSTATUS)をアダプタに送る
プロセスである。READY_FOR_WRITEとDATA_READYは、SA
XFERプロセスからこのプロセスに渡され、STATUSメッ
セージは、COMMANDプロセスから渡される。
読取り動作と書込み動作の例 次に、ホストからのコマンドの受取りに始まり、ホスト
への完了状況の提示までの典型的な読取り動作と書込み
動作の例を記す。
読取り動作の例 読取り 1.アダプタが、CDB内にREAD動作を含むSCSI_COMMANDメ
ッセージを制御装置に送る。このメッセージは、読取り
データの転送元であるDASDのアドレスと、そのデータの
送り先になるホスト・メモリ内のアドレスを含む。
2.制御装置が、上述の通りにコマンドを処理し、装置タ
スクに制御を渡す。この装置タスクは、DASDにSTOP_AND
_SEEK副指令を送る。これによって、現在活動状態の先
読み動作があれば打切られる。(現在活動状態の先読み
動作がない場合は、この副指令は送られない)。
3.DASDが、先読み動作打切り状況を示すSTATUSを制御装
置に返し、その後、指定されたヘッドおよびシリンダへ
のシークを開始する。
4.制御装置の装置タスクが、転送すべき読取りデータの
ために32Kセグメントのデータ・バッファを割り振る。
また、この装置タスクは、制御装置データ・バッファへ
のデータ転送に使用するDMAチャネルを割り振る。
5.この例では、次に、装置タスクが、割り振られたDMA
チャネルのアドレス、データ開始アドレスおよび転送す
べきブロックの数を含むCONDITIONAL_READ副指令を、DA
SDに送る。前述したように、要求されたデータの量が少
ない場合には、CONDITIONAL_READ副指令ではなくて「通
常の」READ副指令が送られる。
6.CONDITIONAL_READ副指令を受け取った時、DASDは、LB
Aを探索し、データの転送を開始する。データ・パケッ
トのアドレス・フィールドは、DMAチャネルのアドレス
を含む。
7.読取りデータが、直列リンクを介して制御装置に転送
され、制御装置データ・バッファ内の割り振られた空間
に入れられる。
8.制御装置がアダプタにDATA_READYメッセージを送り、
その結果、ホストが、制御装置とホスト・メモリの間で
読取りデータを転送するために使用するホストDMAチャ
ネルを初期設定する。上記の流れ図では、最初のデータ
をバッファ内で受け取った後にDATA_READYメッセージが
送られるようになっているが、このメッセージは、バッ
ファ内でデータを受け取る前に送られるのが普通であ
る。このメッセージの目的は、ホストDMAを初期設定す
ること、すなわち、ホストにデータを受け取る準備をさ
せることである。
9.アダプタが、DATA_READYメッセージに応答して、制御
装置にREADY_FOR_READメッセージを送る。ホスト内でRE
ADY_FOR_READメッセージは、初期設定されたDMAチャネ
ルを識別するもので、制御装置のSA RECEIVEメッセージ
・プロセスによって受け取られ、SA XFERプロセスに渡
される。このSA XFERプロセスは、SA DMAを初期設定す
る、すなわちデータ・バッファからのデータ転送に使用
するDMAチャネルを割り振る。
10.データは、DASDからデータ・バッファ内で受け取ら
れた時、直列リンクを介してホスト・メモリに転送され
る。最後のデータが送られた時、制御装置は、SCSI_STA
TUSをアダプタに返す。アダプタは、この状況を待ち行
列に入れ、これをホストに提示する。
書き込み動作の例 書込み 1.アダプタが、書込み動作を定義するSCSI_COMMANDメッ
セージを制御装置に送る。
2.制御装置が、コマンドを処理し(前述した通りに)、
制御が、COMMANDプロセスからDEVICEプロセスに渡され
る。この例では、DEVICEプロセスは、DASDにSTOP_AND_S
EEK副指令を送る(先読み動作が現在活動状態であ
る)。
3.DASDが、先読みを停止し、先読み動作打切り状況を示
す状況を制御装置に送る。DASDが、STOP_AND_SEEK副指
令で指定されたシリンダおよびヘッドへのシークを開始
する。
4.制御装置のSA XFERプロセスが、データ・バッファ内
の空間を割り振り、ホストからの書込みデータのパケッ
トの宛先となるSA DMAチャネルを初期設定する。
5.SA XFERプロセスが、SA TRANSMITプロセスに通知し、
このSA TRANSMITプロセスが、アダプタにREADY_FOR_WRI
TEメッセージを送る。このメッセージは、前のステップ
で初期設定されたDMAチャネルを識別するメッセージで
ある。
6.アダプタのリンク・タスクが、ホスト・メモリへのデ
ータ転送に使用するDMAチャネルを割り振り、その後、
書込みデータのパケットの、制御装置への転送を開始す
る。
7.制御装置の装置タスクが、データ・バッファとDASD間
でのデータの転送に使用するDMAチャネルを初期設定
し、この例では、DASDが期待すべきLBAと書込みデータ
の量を識別するCONDITIONAL_WRITE副指令をDASDに送
る。DASDは、LBA探索を開始する。
8.書込みデータは、DMAチャネルを介してバッファで受
け取られた時、バッファから第2のDMAチャネル上を直
列リンクを介してDASDに転送される。
先読み 先読みとは、全体で1つの長い逐次読取りを構成する1
組のREADコマンドの性能を向上させるために、制御装置
が提供する機能である。これは、下記のように次の読取
りを予測してDASDから制御装置のバッファへの読取りを
継続することによって達成される。
SCSIのREADコマンドを受け取ると、制御装置は、この読
取りに割り振られている制御装置の32Kセグメントのデ
ータ・バッファに必要な数のセクタを転送するようDASD
に指示する。この実施態様では、制御装置は通常、ホス
トからのコマンドが要求する量がそれより少ない時で
も、32Kのデータ(すなわち、割り振られたバッファ空
間を満たす量のデータ)を要求する。ホストが要求する
データは、DASDから到着した時、ホストに転送される。
要求されたデータをホストまで転送し終えた時、制御装
置によって状況が生成される。その間に、先読みデータ
の転送が継続する。
DASDに対するREAD副指令で、ホストから要求された量よ
り多くのデータが指定されていた場合には、余分のデー
タは、制御装置バッファに記憶される。ホストがバッフ
ァ空間を使用可能にする時、制御装置によってDASDに送
られるEXTEND副指令によって、データ転送が延長され
る。EXTEND副指令を受け取ると、DASDは、そのEXTEND副
指令で指定されたセクタをバッファの新しい末尾に転送
する。
1例として、アダプタから送られたREADコマンドが、4K
のデータ(8セクタ)を要求し、制御装置が、装置に32
Kを要求する場合には、要求された4Kのデータがホスト
に転送されると同時に、バッファ内に4Kの空間が生じ
る。制御装置は、バッファを満たすため、4Kの新規デー
タを要求するEXTEND副指令を装置に送る。
アダプタから次のREADコマンドを受け取った時、制御装
置は、バッファを検査して、要求されたデータが既に存
在する(または、すぐに存在するようになる)か否かを
調べる。そうである場合には、制御装置は、そのデータ
をホストに転送する。そうでない場合には、制御装置
は、DASDに新規の読取りを指示し、活動状態の先読みが
あれば打ち切る。DASDが新規転送を再度指令されるか、
または先読みバッファが満たされるまで、先読みは継続
する。
連続的書込み 連続的(バック・ツー・バック)書込みとは、連続する
ブロックを書き込む連続した書込みコマンドである。後
続書込みの最初のブロックが、前の書込みの最後のブロ
ックの直後に続く。制御装置およびDASD内で連続的書込
みに対する特別なサポートを行うと、そうでない場合に
はコマンドの間にDASDが回転する必要があるのに対し
て、DASDは回転せずに書込みを行えるようになる。
WRITEコマンドのコマンド固有ルーチンが、現在活動状
態の装置転送を、次の連続する書込みを含むように延長
することができる点に達した時、このルーチンは、「肩
越しに振り返り」、次のCDQEがこのような書込みを含む
か否かを検査する。含む場合は、このルーチンは、装置
タスクに延長要求を発行し、その装置タスクは、DASDに
EXTEND副指令を送る。DASDが、前の書込みを完了する前
にEXTEND副指令を受け取った場合は、そのDASDは、ただ
単に、現書込みのカウントを、EXTEND副指令のカウント
・パラメータで指定された量だけ延長する。
EXTEND副指令がDASDに達するのが遅すぎた場合には、DA
SDは、最初の書込みを通常の形で行った後に状況を提示
し、「失敗」状況を示してそのEXTEND副指令を拒絶す
る。その場合、制御装置は通常の書込みを生成する。EX
TEND副指令は、それ自体が延長の候補である。
例 ホストが、セクタ0〜7に対するSCSI書込みコマンドを
送る。
制御装置が、セクタ0〜7に対するWRITE副指令を発行
する。
ホストが、セクタ8〜15に対するSCSI書込みコマンドを
送る。
制御装置が、待ち行列内で連続的書込みを検出する。
制御装置が、8セクタ分のEXTEND副指令を発行する。
EXTEND副指令が、WRITEの終了前に到着した場合、このD
ASDは、その現ブロック・カウントを8だけ延長し、セ
クタ7の後には状況を返さず、その代わりに、セクタ15
の後で状況を返す。
EXTEND副指令の到着が遅すぎた場合、このDASDは、WRIT
E副指令に対する通常の状況を生成し、EXTEND副指令の
受取りが遅すぎたことを制御装置に伝える。その場合、
制御装置は、セクタ8〜15に対するWRITE副指令を再発
行する。その後、セクタ8〜15が、次の回転の際に書き
込まれる。
EXTEND副指令を使用する連続的書込みの実施態様では、
直列リンクのパケット多重化機能を利用する、すなわ
ち、制御装置が、書込みデータをDASDに送っているのと
同時に、直列リンクを介してEXTEND副指令を送ることが
できなければならないことに留意されたい。
分割読取り 分割読取りとは、DASDからの読取りを、現READ動作の範
囲の最初のセクタではなく、ヘッドの下に最初に現れる
その範囲に含まれるセクタから開始することによって得
られる性能向上である。たとえば、セクタ4、5、
6、...15、16に対する読取りは、ヘッドの到着がたま
たまセクタ4を読み取るには遅すぎるが、セクタ6を読
み取るには十分に早い場合には、6、7、8、...、1
5、16、4、5という順序で読み取ることができる。し
たがって、DASDからの転送は、そうしない場合よりも11
セクタ(すなわち、16−5)だけ早く完了するはずであ
る。
この最適化は、制御装置がDASDに最初のセクタを読み取
るよう指令することによって達成される。DASDは、その
セクタが所定の時間(たとえば1ミリ秒)以上離れてい
ることを発見した場合、その読取りを打ち切り、現LBA
を制御装置に返す。その場合、制御装置は、同じ読取り
を再発行するか、それともその読取りを、現セクタから
末尾までを転送する「末尾」読取りと、第1セクタから
末尾の先頭までを転送する「先頭」読取りとに分割する
かを決定する。
これをサポートするために、DASDに対するCONDITIONAL_
READ副指令が使用できる。この副指令は、第1セクタま
でに長い遅延がある場合には打ち切られる。上記の例で
は、データは、通常の順序で読み取られる場合よりも、
11セクタ分早く制御装置バッファに到着する。ただし、
制御装置が、ホストに送るデータを通常の順序に配列し
直さなければならない場合には、分割読取り動作の性能
の利益は大幅に減少する。
本明細書に記載する技法は、制御装置バッファ内でデー
タを並べ直す必要をなくすことによって、「分割読取
り」の潜在能力をより多く引き出すものである。これ
は、制御装置とアダプタの間でメッセージ・インターフ
ェースを定義して、ホストDMAアドレスに対する必要な
制御を制御装置に与えることによって達成される。実際
には、制御装置は、ホスト・メモリに対するランダム・
アクセス権を有する。データが制御装置のデータ・バッ
ファに置かれる時に制御装置からアダプタに送られるDA
TA_READYメッセージが、そのデータを送る先のホスト・
メモリ内のアドレスを指定する。分割読取り動作が進行
中である時、制御装置は、ホストからの当初のコマンド
中で送られたアドレスから修正済み開始アドレスを計算
し、このアドレスを、DATA_READYメッセージに組み入れ
てホストに送る。上記の例の場合、制御装置は、セクタ
4の開始アドレスを知らされ、したがって、分割読取り
データの最初のセクタ(この場合はセクタ6)を送る先
のホスト内の修正済みアドレスを計算することができ
る。セクタ6〜16が既にデータ・バッファ内にある場合
は、制御装置は、単一のDATA_READYメッセージを発行し
て、セクタ6〜16の転送を開始する。セクタ6〜16の転
送が完了する。制御装置はセクタ1〜5をバッファ内で
得た時、DATA_READYメッセージをホストに発行して、セ
クタ1〜5の転送準備ができたことと、セクタ1を送る
先のホスト・メモリのアドレスを示す。
生データ読取り 制御装置がホスト・メモリの諸区域にランダムにアクセ
スできる、すなわち、ホスト・アドレスを制御できる能
力をもつので、別の性能上の利益も得られる。DASDがデ
ータの多数のセクタを制御装置バッファに転送している
読取り動作中に、そのDASDは、1セクタ(512バイト)
の末尾まで待ってECCを検査する前に、そのセクタをホ
ストまで送る。ここで述べるシステムでは、DASDは、1
セクタ分のデータを保持するのに十分な緩衝記憶を有し
ていない。データは、ディスクから直列に読み取られ、
128バイト・パケットにコンパイルされて、制御装置に
送られる。そのセクタが終わる時に、装置は、ECCを検
査し、そのデータの末尾に6つのECCバイトを付加す
る。そのセクタ内のすべてのデータが「良好」である場
合は、エラーは示されず、制御装置はホストへの伝送を
継続する。このシステムでは、装置がデータの最終パケ
ットを制御装置に送る前に、したがって、装置がそのデ
ータにエラーが含まれることを知る前に、データのその
セクタの大部分が既に制御装置からホストに転送されて
いることに留意されたい。したがって、既にホスト内に
あるデータは、「生」データであり、すなわち、ホスト
への転送の前に検査が行われていない。
ほとんどのデータ転送では、生データは、良好なデータ
でもある。すなわち、そのデータが装置から転送され
る。データを検査なしでホストに直接に転送すると、ホ
ストへ転送する前にすへてのセクタを検査する従来のシ
ステムに比べて、性能上の利益がもたらされる。この直
接方式の場合、データの多数のセクタをホストが受け取
るのに要する時間が、1セクタのデータが装置からホス
トへ移動するのに要する時間とほぼ等しい時間だけ短縮
される。本明細書に記載のシステムなどの高性能システ
ムでは、この利益によって、全体的オーバーヘッドをか
なり削減することができる。
上述したように、ほとんどのデータ転送では、生データ
を送ると、検査済みのデータに比べて、性能上の利益が
もたらされる。これとトレードオフになるのは、転送デ
ータにエラーが存在する時の性能低下である。ある従来
システムでは、生データにエラーが1つ存在すると、そ
のデータ全体を再送信しなければならない。制御装置が
ホスト・メモリに対するランダム・アクセス権を有する
本発明では、データのすべてを再送信する必要はない。
あるセクタの終りに、DASDがそのデータ内にエラーガ存
在することを検出した場合、ECCバイトによってそのこ
とが制御装置に示され、制御装置に警告が出る。制御装
置は、ホストへの現パケット・データの送出を完了した
時に、送信を中止し、DATA_RETRY(データ再試行)メッ
セージをホストに送る。制御装置は、エラーを含んでい
たセクタの再送信を要求する。DASDは、要求されたセク
タを、128バイト・パケットに入れて制御装置に再送信
し、制御装置は、そのデータをバッファに記憶する。再
送信されたデータのブロックが良好である場合は、制御
装置は、ホストにそのデータをパスする。
制御装置は、再試行データの送り先となるホスト・メモ
リのアドレスを指定するDATA_RETRYメッセージを、アダ
プタに送る。このDATA_RETRYメッセージは、アダプタ
に、ホスト・メモリへデータを転送するのに使用する新
規DMAチャネルをセットアップするよう指示するメッセ
ージである。アダプタは、このDATA_RETRYメッセージに
対して、READY_FOR_READメッセージで応答する。DATA_R
ETRYメッセージは、再試行されるデータの量を示す。
制御装置に送られる再試行データが依然として誤りを含
む場合、制御装置は、ある回数だけそのデータを再要求
する。所定の回数の試行後に制御装置がまだ良好なデー
タを受け取っていない場合、制御装置は、そのバッファ
内に保持されているデータ中の誤りの訂正を試みる。こ
のために、制御装置は、「ECCに対する作用」副指令を
装置に送る。この副指令は、装置に、どのバイトが誤り
であるかを計算させ、また、それらのバイトの訂正デー
タを計算させる。訂正できるバイトの数は、実施態様に
依存する。本明細書のシステムでは、その数は2バイト
である。装置は、訂正情報を制御装置に送り、制御装置
は、そのバッファ内に保持されたデータを訂正する。そ
の後、制御装置は、訂正済みのバイトを含むデータのブ
ロックをホストに送る。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−126749(JP,A) 特表 昭61−500824(JP,A) 米国特許4454595(US,A)

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】ホスト・アダプタと、 制御装置と、 複数の直接アクセス記憶装置と、 前記ホスト・アダプタを前記制御装置へ接続する専用の
    直列リンクと、 前記制御装置を前記複数の直接アクセス記憶装置へそれ
    ぞれ接続する複数の専用リンクとを備え、 前記直列リンクが、全二重モードで動作するように構成
    されたインバウンド接続とアウトバウンド接続の対から
    成り、 前記制御装置が、相対的に大きなデータ・バッファを有
    し、前記直接アクセス記憶装置の各々が、相対的に小さ
    なデータ・バッファを有し、 前記制御装置の前記データ・バッファを前記複数の直接
    アクセス記憶装置間で共用して、当該直接アクセス記憶
    装置からホストに伝送される読取りデータと、ホストか
    ら当該直接アクセス記憶装置へ伝送される書込みデータ
    を受け取るようにした、データ記憶サブシステム。
  2. 【請求項2】前記複数の専用リンクの各々が、全二重モ
    ードで動作するように構成されたインバウンド接続とア
    ウトバウンド接続の対からなる直列リンクであることを
    特徴とする、請求項1に記載のデータ記憶サブシステ
    ム。
  3. 【請求項3】データとコマンドがパケットの形で前記各
    直列リンクを介して伝送され、当該各直列リンクのイン
    バウンド接続とアウトバウンド接続がそれぞれ、前記パ
    ケットの多重化を行えるように構成されていることを特
    徴とする、請求項1または請求項2に記載のデータ記憶
    サブシステム。
  4. 【請求項4】ホスト・アダプタと、 制御装置と、 複数の直接アクセス記憶装置と、 前記ホスト・アダプタを前記制御装置へ接続する専用の
    直列リンクと、 前記制御装置を前記複数の直接アクセス記憶装置へそれ
    ぞれ接続する複数の専用リンクとを備え、 前記直列リンクが、全二重モードで動作するように構成
    されたインバウンド接続とアウトバウンド接続の対から
    成り、 前記制御装置が、それ自体と前記各直接アクセス記憶装
    置との間のデータ転送を多重セクタ装置副指令によって
    開始する、データ記憶サブシステム。
  5. 【請求項5】前記ホスト・アダプタが、当該ホスト・ア
    ダプタ及び前記制御装置の間の前記直列リンクとホスト
    との間でデータを転送するための、複数の直接メモリ・
    アクセス(DMA)チャネルを含む、前記のいずれかの請
    求項に記載のデータ記憶サブシステム。
  6. 【請求項6】前記制御装置が、前記ホスト・アダプタと
    当該制御装置の前記データ・バッファとの間または前記
    複数の直接アクセス記憶装置と当該制御装置の前記デー
    タ・バッファとの間でデータを転送するための、複数の
    DMAチャネルを制御する直接メモリ・アクセス(DMA)制
    御装置を含む、前記のいずれかの請求項に記載のデータ
    記憶サブシステム。
  7. 【請求項7】4つの前記専用の直列リンクによって、前
    記ホスト・アダプタを4台の前記制御装置へ接続できる
    ことを特徴とする、前記のいずれかの請求項に記載のデ
    ータ記憶サブシステム。
  8. 【請求項8】2つの前記専用の直列リンクによって、前
    記制御装置を2個の前記ホスト・アダプタへ接続できる
    ことを特徴とする、前記のいずれかの請求項に記載のデ
    ータ記憶サブシステム。
JP3504612A 1991-02-19 1991-02-19 データ記憶サブシステム Expired - Lifetime JPH0743687B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/GB1991/000254 WO1992015058A1 (en) 1991-02-19 1991-02-19 Data storage subsystem

Publications (2)

Publication Number Publication Date
JPH05502316A JPH05502316A (ja) 1993-04-22
JPH0743687B2 true JPH0743687B2 (ja) 1995-05-15

Family

ID=10688042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3504612A Expired - Lifetime JPH0743687B2 (ja) 1991-02-19 1991-02-19 データ記憶サブシステム

Country Status (3)

Country Link
EP (1) EP0524945A1 (ja)
JP (1) JPH0743687B2 (ja)
WO (1) WO1992015058A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3528394B2 (ja) * 1996-01-23 2004-05-17 ソニー株式会社 データ記録再生装置
JP3992952B2 (ja) 2001-09-10 2007-10-17 株式会社日立製作所 記憶制御装置およびその運用方法
US9575801B2 (en) 2009-12-18 2017-02-21 Seagate Technology Llc Advanced processing data storage device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4454595A (en) * 1981-12-23 1984-06-12 Pitney Bowes Inc. Buffer for use with a fixed disk controller
JPH01126749A (ja) * 1987-11-12 1989-05-18 Mitsubishi Electric Corp 周辺機器データ制御装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4454595A (en) * 1981-12-23 1984-06-12 Pitney Bowes Inc. Buffer for use with a fixed disk controller
JPH01126749A (ja) * 1987-11-12 1989-05-18 Mitsubishi Electric Corp 周辺機器データ制御装置

Also Published As

Publication number Publication date
EP0524945A1 (en) 1993-02-03
JPH05502316A (ja) 1993-04-22
WO1992015058A1 (en) 1992-09-03

Similar Documents

Publication Publication Date Title
US5664145A (en) Apparatus and method for transferring data in a data storage subsystems wherein a multi-sector data transfer order is executed while a subsequent order is issued
US6564271B2 (en) Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US6330626B1 (en) Systems and methods for a disk controller memory architecture
US6401149B1 (en) Methods for context switching within a disk controller
US7761642B2 (en) Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging
JP5159900B2 (ja) 予約デバイスのアクセス競合を低減するコンピュータ・プログラム、装置、及び方法
US5386517A (en) Dual bus communication system connecting multiple processors to multiple I/O subsystems having a plurality of I/O devices with varying transfer speeds
JP4917174B2 (ja) 制御装置と通信するように構成されたホスト・コンピュータ・システムにおける入出力(i/o)操作用の入出力処理を容易にするためのコンピュータ・プログラム、装置、および方法
US4860244A (en) Buffer system for input/output portion of digital data processing system
US5555390A (en) Data storage method and subsystem including a device controller for respecifying an amended start address
US7962676B2 (en) Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords
JPH09160862A (ja) ローカル・サイド及びホスト・サイドの間でデータ・ブロックを転送するためのステータス処理システム
US5613141A (en) Data storage subsystem having dedicated links connecting a host adapter, controller and direct access storage devices
KR100638378B1 (ko) 디스크 제어장치의 메모리 구조에 대한 시스템 및 방법
JPH0743687B2 (ja) データ記憶サブシステム
JPH06105425B2 (ja) データ記憶サブシステムとホスト・データ処理システム間のデータ転送方法
WO1992015054A1 (en) Data transfer between a data storage subsystem and host system
JPS6051751B2 (ja) 通信制御装置