JPH05502314A - データ転送方法 - Google Patents

データ転送方法

Info

Publication number
JPH05502314A
JPH05502314A JP3504262A JP50426291A JPH05502314A JP H05502314 A JPH05502314 A JP H05502314A JP 3504262 A JP3504262 A JP 3504262A JP 50426291 A JP50426291 A JP 50426291A JP H05502314 A JPH05502314 A JP H05502314A
Authority
JP
Japan
Prior art keywords
data
command
subcommand
read
controller
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
JP3504262A
Other languages
English (en)
Other versions
JPH077327B2 (ja
Inventor
アパリイー、ノーマン
バックランド、パトリック、アレン
Original Assignee
インターナショナル・ビジネス・マシーンズ・コーポレーション
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 インターナショナル・ビジネス・マシーンズ・コーポレーション filed Critical インターナショナル・ビジネス・マシーンズ・コーポレーション
Publication of JPH05502314A publication Critical patent/JPH05502314A/ja
Publication of JPH077327B2 publication Critical patent/JPH077327B2/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
    • 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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 データ記憶サブシステム内のデータ転送[技術分野] 本発明は、装置制御装置と直接アクセス記憶装置との間のデータ転送の分野に関 する。
[背景技術] データ処理システム内で使用されるデータ記憶サブシステムは、通常、顧客デー タを保持する1つまたは複数の記憶装置に接続された装置制御装置を備える。こ れらの記憶装置は、通常、ディスク駆動装置などの直接アクセス記憶装置である 。
近年になって、このような記憶サブシステムはますます精巧になり、コイピユー タ業界では、大量のデータを記憶できると同時に、接続されたホスト・データ処 理システムと装置との間で高速のデータ転送を実現するサブシステムを開発する ための努力が続けられている。ホストを制御装置に接続し、装置を制御装置に接 続するのに使用するための、いくつかの異なるインターフェースが開発されてき た。
一般的なインターフェースの1つが、米国規格協会(ANSI)が採用した小型 コンピュータ・システム・インターフェース標準規格(SC3I)である。その 詳細は、ANSNS様書X3.131−1986およびSCS丁/2 X3T9 .2/86−109を参照されたい。5C3Iバスを使って制御装置と装置を接 続するデータ記憶サブシステムが知られている。SC3Iインターフェースを用 いると、多重セクタ動作が可能となる。すなわち、単一のコマンドに応答して、 多数のデータ・セクタを、装置へおよび装置から転送できるようになる。これに は、「セクタ単位」の動作(たとえばTPI)に比べて、セクタ毎に装置に再指 令する必要がないという長所がある。
このサブシステム内の適当な位置に、ホストと装置との間で転送されるデータを 保持するために一時的に使用される、1つまたは複数のデータ・バッファを設け る必要がある。バッファの個々の区域の位置、形式および個数は、具体的なサブ システムの要件に依存する。すなわち、そのアーキテクチャが、必要な緩衝記憶 をある程度まで規定する。コストの点だけから言えば、バッファのサイズと個数 を減らすことができれば、明らかに有利である。
装置へおよび装置からのデータの転送を高速化するため、いくつかの性能を向上 させる技法が開発されてきた。その1つが、米国特許第4494157号明細書 に記載の分割転送である。これは、磁気ディスクなどの回転式記憶媒体からのデ ータ転送の待ち時間を減少させる技法である。セクタ1〜Nが要求されている場 合、分割転送では、まずセクタM−N、次にセクタ1〜M−1の2バーストで、 そのデータを転送する。米国特許第4494157号明細書では、データは、ホ ストに送られる前に、バッファに保持される。このバッファは、第2のデータ・ バーストを受け取るまで待ってから、データをセクタ昇順でホストまで送る。
[発明の開示コ 本発明は、制御装置が、多重セクタ・データ転送側指令を装置に発行することに よって、データ転送を開始するステップと、データ転送側指令の実行中に、後続 の副指令を装置に発行するステップとを含む、拡張緩衝記憶機能を有する装置制 御装置と制限付き緩衝記憶機能を有する直接アクセス記憶装置との間でデータを 転送する方法を提供する。
好ましい方法では、前記データ転送側指令が、転送しようとするデータを指定し 、前記後続側指令が、データ転送側指令で指定されたデータが装置と制御装置の 間で転送されている間に装置に送られるEXTEND副指令であ角指令−タ転送 側指令の実行完了の直後に、装置が、EXTEND副指令に基角指令活動して、 EXTEND副指令で指角指令たデータを転送する。
したがって、1つの好ましい方法では、EXTEND副指令を使角指令、データ 転送を継続できるようにすることができる。
もう1つの好ましい方法では、データ転送側指令が、装置から制御装置内のデー タ・バッファへの読取りデータの転送を開始する多重セクタREAD副指令であ り、制御装置が、制御装置データ・バッファから、接続されたホスト・データ処 理システム内のメモリへ読取りデータを転送し、データ・バッファ内にスペース がある時に、装置にEXTEND副指令を発角指令装置が、EX、TEND副指 令に基づいて活動して、EX、TEND副指令で指定された読取りデータを制御 装置データ・バッファに送ることを特徴とする。
したがって、EXTEND副指令を使用1−1て、データの先読みが可能になる 。
さらに、制御装置が、ホストから受け取った第1のREADコマンドに応答して 、装置にREAD副指令を発行し、制御装置が、ホストから第2のR,EADコ マンドを受け取った時に、バッファ内に保持されている先読みデータが第2のR EADコマンドで指定されたデータに対応するか否かを判定し、そうである場合 には、装置に次のR,EADコマンドを発行せずに、前記データをホストに送る ことが好ましい。
さらに、制御装置が、ホストから次のデータ転送コマンドを受け取った時に、装 置に5TOP−AND 5EEK副指令を発行して、装置に、EXTEND副指 令で指定されたデータの読取りを即座に停止させ、5TOP−AND−5EEK 副指令で指定されたデータの位置へのシークを開始させることが好ましい。
ある好ましい方法でEXTENDIIJ指令を使用することによって、別のサブ システム性能の利益が生じる。この好ましい方法は、制御装置が、ホスト・シス テムからの第1のWRITEコマンドに応答して、装置に多重セクタWRITE データ副指令を発行することによって、ホストから装置へのデータの転送を開始 し、前記第1コマンドが、第1データ・ブロックのアト1ノスと、転送しようと するデータ・ブロックの数を指定し、第1に指定されたデータを制御装置と装置 との間のリンク上で転送している間に、制御装置が第2のWRITEコマンドを ホストから受け取った場合に、制御装置が、第2のコマンドで指定されたデータ が前記第1のコマンドで指定されたデータと連続しているか否かを判定し、そう である場合には、装置にEXTEND副指令を発行して、装置に、第]のコマン ドで指定されたデータの書込みを完了した直後に、EXTEND副指令で指定さ れたデータの書込みを続行させ、前記EXTEND副指令が、制御装置と装置と の間の前記リンク上で伝送されている第1に指定された書込みデータと多重化さ れることを特徴とする。
これによって、このサブシステムを用いると、そうでない場合にはコマンドの間 にDASDが回転する必要があるのに対して、回転を行わずに「連続的(バック ・ツー・バック)」書込みを行えるようになる。この利益をもたらすために、直 列リンクはパケット多重化をサポートする。制御装置は、書込みデータのパケッ トを転送するのと同時に、制御装置と装置との間の直列リンク上にEXTEND 副指令を送ることができなければならない。
好ましい方法では、装置が、WRITE副指令の完了後に制御装置からEXTE ND副指令を受け取った場合、装置は、EXTEND副指令に基づいては活動せ ず、その代わりに制御装置に状況を返し、制御装置は、装置に第2のWRITE 副指令を発行し、これによって、ホストからの第2のWRITEコマンドで指定 されたデータの転送を開始する。
本発明の第2の態様では、通信のために直接アクセス記憶装置に接続された装置 制御装置を備え、制御装置が相対的(二大きなデータ・バッファを含み、装置が 相対的に小さなデータ・バッファを含み、制御装置が、多重セクタ・データ転送 側指令によって装置へおよび装置からのデータの転送を開始し5.データ転送側 指令の実行中に装置に副指令を発行する手段を含む、データ記憶サブシステムが 提供される。
本発明の好ましい実施例を、添付図面を参照して例として記述する。
本発明を実施するためには、以下の記述に含まれる特徴のすべてが必要というわ けではないことに留意されたい。
[図面の簡単な説明] 第1図は、本発明によるデータ記憶サブシステムの主要な機能ユニットのブロッ ク図である。
第2図は、第1図のアダプタの主要構成要素を示すブロック図である。
第3図は、第2図のアダプタ・リンク・チップの構造を示す図である。
第4図は、第1図の制御装置の主要構成要素を示すブロック図である。
第5図は、第4図の制御装置リンク・チップの構造を示すブロック図である。
第6図は、制御装置マイクロプロセッサ内で定義されるタスク間の通信を示すブ ロック図である。
第7図は、インバウンド直列リンクとアウトバウンド直列リンクを示すブロック 図である。
[発明の詳細な説明] データ処理システムへの接続に適し、ホスト・システムが高速にアクセスできる 大容量の記憶域を提供する、データ記憶サブシステムについて記述する。第1図 に示したこのサブシステムの主な機能ユニットは、(1)ホスト・アダプタ、( 2)装置制御装置および(3)直接アクセス記憶装置(DA S D )である 。これらの機能ユニットは、二地点間全二重直列リンクによって相互接続される 。第1図は、このサブシステムの基本構成を示す図であるが、同図では、1個の アダプタ10が、専用直列リンク15を介して1台の制御装置20に接続され、 制御装置20は、4本の直列リンク25〜28によって4台のDASD 30に 接続されている。以下の記述の大半は、この基本構成に関するものである。ただ し、このサブシステムのアーキテクチャ(以下で詳細に述べる)は、各アダプタ を最高4台の制御装置に接続でき、各制御装置を最高4台の装置に接続できるよ うに設計されている。このサブシステムの好ましい実施例では、ホスト・アダプ タは、ホスト・システム内に格納され、直列リンクを介してハウジング(たとえ ばラックに装着した引畠しまたは自立型ユニット)に接続される。このハウジン グは、1台の制御装置と4台のDASDを備え、付随の電源と冷却システム(図 示せず)を有する。
まず、アダプタ、制御装置およびDASDの主な機能について手短に述べる。
1、アダプタ アダプタは、本質的には、直列リンクを介してホスト・システムを制御装置に接 続する汎用マルチプレクサである。アダプタは、IBMのマイクロ・チャネル・ アーキテクチャ(マイクロ・チャネルは、インターナショナル・ビジネス・マシ ーンズ・コーポレイションの登録荀標)など様々な既存インターフェースを介し てホスト・システムに接続するよう設計することができる。
アダプタの主要機能は次の通りである。
1)アダプタは、5C3I(小型コンピュータ・システム・インターフェース) コマンドをシステム・メモリから直接メモリ・アクセス(DMA)によって取り 畠し、直列リンクを介してこれらのコマンドを制御装置に転送する。
2)アダプタは、DMAチャネルのプールを管理し、要求に応じて読取りデータ または書込みデータの転送のためにこれらのチャネルを制御装置に割り振る。
3)アダプタは、DMAによってホスト・メモリから書込みデータのパケットを 取り出し、直列リンクを介してこれらを制御装置に伝送する。
4)アダプタは、直列リンクから読取りデータのパケットを受け取り、DMAに よってこれらをシステム・メモリに記憶する。
5)アダプタは、各コマンドの終了状況を組み立て、システムに提示する。一時 に最高4台の装置に関して良好な状況を提示することができる。
6)アダプタは、前のSC3Iコマンドを打ち切る手段を提供する。
2、制御装置 制御装置は、接続されるDASD用の5C3Iコマンド・セット(その要素のう ちで本明細書に関連するものは、別途定義する)を実施する。主要機能は次の通 りである。
1)制御装置は、各DASD用のコマンド待ち行列を維持管理する。
2)制御装置は、ホスト・システムから書込みデータを事前取出しし、読取りデ ータを訂正し、DASDから読取りデータを事前取出しするためのデータ・バッ ファ(DASD間で共用される)を有する。
3)制御装置は、5C3I状況を生成する。
3、DASD DASDの主要機能は、次の通りである。
1)DASDは、指定されたシリンダおよびヘッドまでシークする。
2)DASDは、制御装置が供給する開始論理ブロック・アドレス(LBA)を 探索し、その後、必要に応じて次トラツクまでシークしながら、指定された数の ブロックを読み取りまたは書き込む。欠陥ブロックが発見された場合、DASD は、それらを自動的にスキップする。
3)DASDは、各ブロックに付加されるFCCバイトを生成し、検査する。D ASD内にECCハードウェアが含まれ、制御装置が、異なるFCCアルゴリズ ムを有する可能性もある、ある範囲のDASDをサポートできるようになってい る。
D A S Dがデータ・エラーを検出した場合、制御装置が、DASDに、エ ラーのパターンと変位を供給するよう要求する。その後、制御装置は、そのバッ ファ内のデータを訂正し、アダプタへの転送を再開する。
4)DASDは、読取りデータと書込みデータ兼用の記録チャネルを有する。書 込みデータは、符号化され直列化された後にヘッドに供給される。ヘッドからの 読取り信号は、検出され非直列化され復号される。
直列リンク 直列リンクは、このサブシステムの2つのノードの間、すなわち、アダプタと制 御装置の間ならびに制御装置とDASDの間の、二地点間通信を提供する。
データ転送の単位は、パケットである。パケットのフォーマットは、下に示すよ うに、制御フィールド(CONTROL) 、アドレス・フィールド(ADDR ,ESS) 、可変長データ・フィールド(DATA)およびCRCフィールド (CRC)を含む。
F−一下一一一一下−−−−下一一下−7−−下−−コIFLAG1CONTR OL1ADDRESSIDATA1CRCICRCIFLAG1ヒ一一工−一− −二一−−一工一一工一一二−一工一一」パケットを直列リンク上で多重化して 、異なるDASDに関する複数のコマンドを同時に実行することができる。
全二重データ伝送では、読取りデータと書込みデータの同時転送がサポートされ る。実際には、各直列リンクは、2つの反対方向でのデータ転送を提供する2本 のリンクをそれぞれ備える。これを第7図に示す。第7図によれば、各ノードは 、入力データおよびメツセージを受信するインバウンド・リンクと、データおよ びメツセージを送信するアウトバウンド・リンクを有する。
このリンクは、簡単なプコトコルを有する。各ノードは、そのインバウンド・リ ンク上の遠隔ノードから受け取る歩調合せ応答と肯定応答に従って、そのアウト バウンド・リンク上でパケットを送信することができる。。
直列リンク上のパケットは、下記の2種類に分類できる。
メツセージ・パケットは、ノード内のソフトウェア・プロセスから発し、宛先ノ ード内のプロセスを宛先とする (プロセスの説明は1、以下の制御装置の動作 に関する節とアダプタの動作に関する節にある)。メツセージ・パケットは、通 常は、コマンドと状況に使用される(メツセージ・パケット内で送られる異なる 種類のメツセージについては、以下で詳細に説明する)。
データ・パケットは、1つのノード内のDMAチャネルから発し、宛先ノード内 のDMAチャネルを宛先とする。データ・パケットは、通常は、読取りデータま たは書込みデータを含む。
各パケットは、パケットのソースまたは宛先あるいはその両方を示すアトI/ス ・フィールドを含む。直列リンクの動作の詳細については、係属中の英国特奸出 願第9026338゜5号および第9026336.9号を参照されたい。
メツセージ メツセージとは、宛先ノード内のプロセスを宛先とする直列リンク上のパケット である。そのパケットの第1データ・バイト(すなわち、そのパケットのデータ ・フィールドの第1バイト)が、メツセージを識別する。後続バイトは、パラメ ータである。
はとんどのメツセージは、パラメータとしてTAG (タグ)を有する。これに よって、メツセージを、アダプタから送られる対応するコマンドに関連付けるこ とができる。
r 7−−下−下−−一一下−”’1 1 間ESSAGE C0DE I TAG l 15C3I EXT 1 D ASD ADDR,ESS 11−一−−−−−工−−工−工−−−−工−−− −−−−11DMA ADDRESS (ホスト・メモリ内) 11−−−−一 −−−−−−−−−−−−−−−−−−−@l COMMAND DESCRI PTORBLOCK IL J これは、SC8Iコマンド記述子ブロックを制御装置の待ち行列に転送するメツ セージである。
DASD ADDR,ESS (D A S Dアドレス)は、コマンドを実行 する予定の巨標記憶装置を識別する。
5C3I EXTは、ANS I仕様’Small Computer Sys tems■nterface/2’ : X3T9.2/86−109に記載さ れた5C8Iコマンド・セットによって供給される機能を超える拡張または変更 を提供する。メツセージのこの部分をセットすると、D A SDへの分割書込 み、または制御装置リンクへのアダプタ上での分割読取りが使用可能になる。
DMA ADDF!、ESS (D M AアトI/ス)は、SC3Iコマンド 用のデ・−夕域の、システム・メモリ内の開始アト1/スである。
COMMAND DESCRIPTORBLOCK (CDB) (コマンド記 述子ブロック)は、SCSエコマント用のコマンド記述子ブロックである6CD Bは、SC3Iコマンド・セットのコマンドのうちの1つを含む。
IREADY−FOR−READ (読取り実行可能)r−一一一一一下一一下 −−−−−−コIMESSAGE C0DE I TAG ILINK ADD R,ESS 1L−一一一一一二一一二一 、J 、二のメツセージは、アダプタによって、DATA−READY (データ実行 可能)メツセージに応答して制御装置に送られる。
TAGは、特定のR,EADY FORR,EADメツセージに関連するコマン ドを識別する。LINK、 ADDRESS (リンク・アドレス)は、この読 取り動作のためにアダプタ内で割り振られたDMAチャネルを識別する。
ABORT (打切り) r −−一一一下−−−下一一一コ l MESSAGE C0DE I TAG 1 1 TAG 2 )ヒーーー ーーー工−−−−−−−− このメツセージは、ホストから取り出したABORT 5C3I (5C3I打 切り)動作を実行している時に、アダプタが生成する。TAG 1は、ABOR ,T−5C5Iコマンド動作を含むメールボックスを識別し、TAG 2は、打 ち切るべきコマンドを識別する。このメツセージは、制御装置に、コマンドが実 行中である場合にはその実行を終了させ、実行がまだ始まっていない場合には制 御装置の待ち行列からそのコマンドを取り除かせる。
RESET (リセット) r 7−−下−一下一−−−−−コ IMESSAGECODE1TAGITYPE1DASDADDRESSIL− 一一一一一二−−工−−上一 J このメツセージは、制御装置内またはDASD内の選択された資源をリセットす るために、アダプタから制御装置に送られる。
制御装置からアダプタへのメツセージ READY FOR−WRITE (書込ミ実行可能)r−一一一一一一下一一 下−1 ]MESSAGECODE ITAG ILINKADDRESS 1)−−一 −−−−一工−−工−−−−−−−−−(l DMA 5TART ADDRE SS (ホスト・メモリ内)1トー−−−−−−−−−−−−−−−−−−@l DMA LENGTH(バイト) 1L J コレハ、アダプタニ、ホスト(7)DMA 5TART ADDRESS (D MA開始アドレス)からDMA LENGTH(DMA長)だけデータを転送す るよう指令するメツセージである。L工NK ADDRESSは、データ・パケ ットの宛先である、制御装置内のDMAチャネルを識別する。TAGは、データ に関連するコマンドを識別する。
DATA−READY (データ実行可能)ロー 7 7 −−−コ IMESSAGECODE]TAG]1トー−一−−−−工−−工−−−−−− −−@l DMA 5TART ADDRESS (ホスト・メモリ内)lトー −−−−−−−−” −−−−−−−−−−@l DATA LENGTH1 し−’ J これは、アダプタがまだこのTAGにDMAチャネルを割す振っていない場合に はアダプタにそれを行うよう指令し、指定されたDMA 5TART ADDR ESSから始まって指定されたDMALENGTHだけホスト・メモリへの転送 を準備するよう指令するメツセージである。アダプタは、READY−FOR− READメツセージで応答して、どのDMAチャネルがデータ・パケットの宛先 となるのかを制御装置に知らせる。
5TATUS (状況) r −m−下−71 1MESSAGE C0DE ITAG l5TATUS lこれは、TAGに よって識別されるコマンドが完了した時に生成される5C3I状況を伝えるメツ セージである。
次に制御装置とアダプタの主な構成要素について述べる。
アダプタ ハードウェア アダブ°り・ハードウェアの主な構成要素を第2図に示す。
アダプタの核になるのは、マイクロプロセッサ・チップ(MPC)110であり 、これは、接続される制御装置とホスト・システムの間でのメツセージおよびデ ータの転送を制御する高性能制御装置を含む。また、2つの同一のアダプタ、リ ンク・チップ(ALC)120があり、それぞれが、マイクロチャネル、2本の 直列リンクおよび16本のDMAチャネル(図示せず)へのインターフェースを 提供する。各直列リンクは、制御装置へまたはそこから伝送中のコマンド、デー タおよび状況用の4個の128バイト・パケット・バッファを有する。MPCと ALCの間のインターフェースは、入出力バス115である。
ALCの主な構成要素を第3図に示す。
データRAM データRAM121は、下記の区域を含む。
1)8個の128バイト・パケット・バッファ(4個は各直列リンク用、2個は アウトバウンド用、2個はインバウンド用) 2)16個の8バイトDMAレジスタ: 各DMAチャネル毎に1個のDMAレ ジスタが設けられる。これらのレジスタは、DMAデータ転送の際に使用する。
3)アウトバウンド直列リンク・メツセージ用の32バイト・メツセージ・バッ ファ: このバッファは、高性能マイクロプロセッサが、制御装置光のREAD Y FOR−READメツセージを作成するのに使用する。適当なハードウェア を設定することによって、その後、このバッファを制御装置に送ることができる 。
4)ホスト・インターフェース・レジスタ: メールボックスをアダプタに渡す 処理には、3つの内部レジスタが関係する。メールボックスおよびアダプタの動 作の詳細は、後述する。
メールボックス・ポインタ・レジスタ: システムが読み書きすることのできる 4バイト・レジスタ。これは、連鎖内の最初のメールボックスを指すように、シ ステムによって初期設定される。現タグ・レジスタが最終タグ・レジスタに等し い時、または、アダプタをリセットした直後には、システムは、このレジスタを 読み取ることだけを許される。
現タグ・レジスタ: これは、システムが読み書きすることのできる1バイト・ レジスタである。これを用いると、システムがアダプタの進行状況を見られるよ うになる。このレジスタは、アダプタのリセットによってクリアされ、ホストが 最終タグ・レジスタを書き込んだ直後にもクリアされる。
アダプタは、メールボックスの処理を完了した後に、各メールボックスのタグを 現タグ・レジスタに記憶する。
最終タグ・レジスタ: システムが読み書きすることのできる1バイト・レジス タ。このレジスタは、システムが幾つかのメールボックスを待ち行列に追加する 時に、システムによって書き込まれる。このレジスタは、最後のメールボックス に含まれるタグを示す。これによって、アダプタはリストの末尾に達1−た時を 知る。このレジスタに書込みが行われる時は、アダプタに対する割込みが発生す る。
5)ホストからすべでのメールボックスを取り出すための32バイトのDM、A パケット・バッファ二 制御装置向けの5C5jCO門AND、 ABORTお よびRESETメツセージは、DMAバッファから直接に送られる(R,EAD Y−FOR,−READメツセージは、メツセージ・バッファ内で作成され、ア ウトバウンド・リンクを介して制御装置に送られる)。D M、 Aバッファは 、DMA制御下でホスト・メモリを読み書きするのに使用できる。
データRAMは、直列リンク、マイクロプロセッサまたはリンク間転送、および 高性能マイクロプロセッサの間で時間多重化される。
状況RAM 各パケット・バッファは、それぞれパケット状況レジスタ(PSR) を必要と する。これらのレジスタは、状況RA、 M122内に保持され、16ビツト幅 である。パケット・バッファおよび関連するパケット状況レジスタを、第7図に 示す。
各レジスタは、下記の2つのフィールドを含む。
DESTINA、Tl0N (宛先) −アウトバウンド・データ・パケットの 場合、このフィールドは、対応するパケット・バッファの内容がそのリンクによ って伝送される時に出力パケットのアドレス、フィールドに複写される値を含む 。この値は、送信に備えてパケットをパケット・バッファから取り出す時に、ハ ードウェアによって自動的にロードすることができる。インバウンド・パケット の場合、このフィールドは、入力パケットのアドレス・フィールドから抽出され たアドレスを含む。
この値は、インバウンド・リンクのFSM(有限状態機械)によってPSRに書 き込まれ、その値は、このパケットの後続の経路指定を決定するのに使用される 。
BYTE C0UNT (バイト・カウント) −アウトバウンド・パケットの 場合、このフィールドは、対応するパケット・バッファ内に置かれているバイト 数を示す値を含む。リンクがパケットを送呂する時、この値を、データ・バイト を1バイト送るごとに減分されるバイト・カウンタ(リンク・ハードウェアの一 部)に複写しなければならない、PSR内の値は、伝送中のエラーが原因でその パケットを再送信しなければならない場合に備えて保存される。インバウンド・ パケットの場合、このフィールドは、入力パケット内で受け取ったデ・−タ・バ イトの数を示す値を含む。
マイクロチャネル・インターフェース マイクロチャネルは、ホスト・メモリとインターフェースし、上記に定義したデ ータRAMホスト・インターフェース・レジスタを使用する。
DMAチャネル 各ALCには、○〜15の番号を付した16本のDMAチャネルがある。、これ らのチャネルは、ホスト・メモリとDMAパケット・バッファの間でのデータの DMA転送に使用される。
制御装置 ハードウェア 第4図に、制御装置の主な機能構成要素を示す。制御装置の核になるのは、MP Cチップ210であり、これは高性能制御装置(I−NPC)と、データ・バッ ファ220との間でのデータの転送を制御するDMA制御装置とを含む。
DMAバス225は、DMA制御装置を2つの制御装置リンク・チップ230に 接続する。
データ、バッファ220: アダプタとDASDの間のすべてのデータは、この データ・バッファを通過する。また、このバッファは、システムから要求される 場合に備えて、先読みデータを記憶するのにも使用される(以下の「先読み」に 関する節を参照されたい)。リンク・パケット・バッファとデータ・バッファの 間でデータを転送するため、16本のDMAチャネル(○〜15の番号を付す) が設けられている。
装置(DA) リンク毎に2本のチャネルがあり、SA (直列アダプタ)リン ク毎に4本のチャネルがある。
データ・バッファは、DRAMモジュールのアレイからなる。このバッファ内の データは、データ保全性を確保するため、ECCと共に記憶される。データ・バ ッファは、DASD毎に7個の32 Kバイ)・・セグメントで割り振られる。
1台のDASD上で複数のタスクが実行される場合は、タスク毎に異なるセグメ ントが割り振られる。
高性能制御装置は、制御装置リンク・チップ内で実施される一連の外部レジスタ を介して、制御装置へのインターフェースを制御する。入出力バス226は、マ イクロプロセッサが、これらのレジスタにアクセスするのに使用する。
スタティックRAM240は、プログラムの実行に使用される。
EFROM、250は、高性能制御装置の動作の際に使用されるマイクロコード を記憶する。マイクロコードの構造と動作については、以下で詳細に説明する。
制御装置リンク・チップ (CLC) CLC内に含まれる主な機能区域を、第5図に示す。これらは、以下の通りであ る。
1)2つのDASD直列インターフェース(DA○およびDAl) 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インバウンド・パケット・バッ ファを備える。(アダプタまたはDASDからの)入力パケットが、これらのバ ッファに記憶され、入力パケットのアドレス・フィールドの内容に応じて、DM Aハードウェアまたはスビニカのサービスを受ける。
メツセージ: 各リンク・インターフェースはまた、メツセージ・パケット・バ ッファを備える。これは、マイクロプロセッサが、アダプタまたはDASDに送 るアウトバウンド・メツセージを作成するのに使用する。
4)DMAインターフェース論理回路: これは、DMA制御装置の監視下で、 パケット・バッファから制御装置データ・バッファにデータを転送する回路であ る。
DMA動作 データは、アダプタと制御装置バッファの間、および装置と制御装置バッファの 間で、DMAによって転送される。制御装置のマイクロプロセッサは、制御装置 リンク・チップと共用データ・バッファの間の転送を調整するDMA制御装置を 含む。
制御装置リンク・チップには、CLC内のパケット、バッファと制御装置データ ・バッファの間でデータを転送するためのDMAインターフェースが組み込まれ ている。DMAインターフェースは、マイクロプロセッサ・升ツブ内に含まれる DMA制御装置によって監視される。マイクロプロセッサ・チップは、DMA要 求間のアービトレーションを行う論理回路を含む。
DMA転送の前にアービトレーション段階があり、この間にCLCチップは、サ ービスを必要とするDMAチャネルに対する要求を示す信号を発生することがで きる。DMA制御装置は、これらの要求のうちの1つに許可を発行し、その後に CLCは転送を開始できる。各制御装置リンク・チップは、8本のDMAチャネ ルを使用して、データ転送をサービスすることができる。これらのDMAチャネ ルは、下記のように割り当てられる。
チャネル○、1 :DAリンク第O番(第5図のDA○)チャネル2.3 :D Aリンク第1番(第5図のDAI)チャネル4ないし7;アダプタ・リンク(第 5図のSA、)(第2のCLCは、上記と同じ順序でチャネル8〜15を使用す る。) この配lを用いると、最高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 (S A受信メツセージ)プ ロセスの制御下で、コマンド記述子待ち行列項目(CDQE)に記憶される。
空き待ち行列: 最初は、すべてのCDQEが空きである。
空き待ち行列は、1つの要素が次の要素を指しており、これによってすべての空 きCD Q E t−発見できるようになっているという点でのみ待ち行列であ る。項目の順序には意味がない。
新規コマンド待ち行列: 新規のコマンドが到着する時、SAタスクが、そのコ マンドを空き待ち行列の先頭にあるCDQEに複写する。このCDQEは、空き 待ち行列から削除され、新規コマンド待ち行列に追加される。打切りメツセージ も、CDQEに入れられ、新規コマンド待ち行列に追加される。
装置コマンド待ち行列: 装置毎に1つずつ合計4つの装置コマンド待ち行列が ある。各待ち行列は、それ自体のCOMMAND (コマンド)プロセスによっ てサービスを受ける。
QUEUE MANAGER(待ち行列マネジャ)プロセスは、新規コマンド待 ち行列のCDQE内で新規コマンドを発見した時、それの宛先となっている装置 を見つけ、対応する装置コマンド待ち行列にこのCDQEを転送する。
メツセージ待ち行列: コマンドの処理が完了した時、そのCDQEに、関連す るCOMMANDプロセスによって5C3I状況メツセージがロードされ、その CDQEは、装置コマンド待ち行列から移される。メツセージ待ち行列は、した がって、SA TRANSM工T MESSAGE (S A送信メツセージ) プロセスに対する要求の待ち行列である。
同一の待ち行列が、異なるアダプタ・リンクを介して受信されるコマンドに使用 される。
待ち行列連係: 空き待ち行列、新規コマンド待ち行列およびメツセージ待ち行 列の先頭ポインタおよび末尾ポインタは、メッセ・−ジ制御ブロック(M CB  )内のフィールドである。
装置コマンド待ち行列の先頭ポインタおよび末尾ポインタは、対応する装置制御 ブロック(DCB)内にある。先頭ポインタは、待ち行列の第1要素のアト1ノ スを保持する。末尾ポインタは、最終要素のアドレスを保持する。
各CDQEは、「次」ポインタを含む。CDQEは、複数の待ち行列のどれに含 まれてもよいが、1つのCDQEが同時に複数の待ち行列に含まれてはならない 。
次にアダプタおよび制御装置の動作について述べる。
アダプタ 動作 高速マイクロプロセッサ内で定義されたタスクが、アダプタの動作を制御する。
タスクは、割込みによって開始されるが1、これは、ハードウェア事象からのも のでも、別のタスクからのソフトウェア割込みを介するものでもよい。ソフトウ ェア割込みとは、あるタスクが別のタスクに対して割込みをセラ)・することの できる手段である。異なるタスク間の通信を第6図に示す。
タスク 状況: 状況タスクは、ホスト・システムに提示すべき状況を管理する責任を負 う。状況は、他のタスクのうちの1つからこのタスクに渡され、またこれをハー ドウェアに書き込むことによって直接に提示されることもある。
リンク:制御装置△、の4本の直列リンクを処理するために、1つのリンク・タ スクがある。このタスクは、制御装置から受け取ったすべてのメツセージを解釈 し、適当な処置を取る責任を負う。
メールボックス: このタスクは、ホスト・システムからのメールボックス・イ ンターフェースを管理する。このタスクは、システムから各メールボックスを受 け取る責任を負う。
そのメールボックスが5END−SC3I (S CS I送出)コマンドであ る場合、そのコマンドをリンク・タスクに渡して、適当な制御装置に送る。
(他にも定義されているタスクがあるが、この説明に直接には関係ないので説明 しない) ホスト・プロセッサから指令を受けた時、アダプタは、ホスト・メモリからコマ ンドを取り出し、実行のためこれらを即座に適当な制御装置に転送する。コマン ドを取り出すための機構は、ホスト・システムのアーキテクチャに依存し、それ に応じて変わる。本明細書では、下記の機構をマイクロチャネル上で使用する。
ホスト・システムは、ホスト・メモリ内で作成されるメールボックスを使ってサ ブシステムの動作を開始させる。各メールボックスは、特定のコマンドを識別す る一義的タグを含んでいる。たとえば、ホストがある動作をサブシステム内で開 始しようと望む時、ホストは、次に使用可能なメールボックス内でその動作を作 成し、最終タグ・Iノジスタに書き込む。
最終タグ・レジスタに書き込むと、アダプタ・マイクロプロセッサ内のメールボ ックス・タスクに割込みがかかる。メールボックス・タスクは、ホス[・・メモ リからアダプタ・リンク・チップのうちの指定された1つ(マスタ・チップ)の 32バイトDMAバッファにメールボックスをDMA転送するよう、アダプタ・ ハードウェアに指令する。ホストからのすべてのメツセージが、このマスク・チ ップ向けとなる。
いったんDMAバッファに入ると、メールボックス・タスクがそのメールボック スを復号して、そのメールボックスの内容によって定義される動作の種類を決定 し、それが5END−SC3Iコマンドであると判った場合は、そのメールボッ クスが、適当な制御装置に送るために5C3I COMMANDメツセージに変 換される。S C3I−COMMANDメツセージは、メツセージ・パケットの データ・フィールド中で、32バイトのDMAバッファからリンク上を送られる 。このパケットのアドレス・フィールドは、宛先のアドレスを含む。この場合は 、宛先は制御装置マイクロプロセッサである。コマンドが、マスク・チップのサ ービスを受けていない制御装置を宛先とするものである場合は、そのコマンドは 、他のALC内のDMAバッファに複写され、直列リンク上を送られる。
ホストは、多くの異なる動作ならびに5END 5C5Iコマンドを定義してい るが、それらの多くはアダプタによって実行され、制御装置に送る必要がない。
ただし、2つの動作すなわちABORT−SCSI COMMANDとRESE Tは、ABORTメツセージおよびRESETメツセージの形で適当な制御装置 に渡される。これらのメツセージのフォーマットの詳細は、前述のアダプタ/制 御装置メツセージのリストにある。
ABORT−3C3I COMMANDとRESETの動作は、アダプタによっ て、5END−SC3I COMMANDと基本的に同じように処理される。メ ールボックス・タスクは、メールボックスを復号し、ABORTメツセージまた はRESETメツセージをDMAバッファから適当な制御装置に送る。この場合 も、どの制御装置を宛先とするかに応じて、そのメツセージを第2のALCのD MAバッファに複写する必要が生じることもある。
アダプタは、コマンドを発行する毎にタイマを起動する。
これは、ホスト・システムに多数のタイマという負担を負わせずに、コマンドの 脱落や制御装置の中断を検出するのに役立つ。アダプタ遊休タスクが、周期的に タイマを更新し、動作が時間切れになっていないか検査する。
制御装置 動作 制御装置の動作は、スビニカ・マイクロプロセッサに含まれるマイクロコード内 で定義されたタスクを使って行われる。
このプロセッサ内では、8つのタスクが定義されている。それには、下記のもの がある。
それぞれの装置とのインターフェースを管理する4つの装置(DA)タスク。
アダプタおよびホストとのインターフェースを管理する1つのSAタスク。
全体制御に関するタスクであるコマンド制御タスク。新規のSC3Iコマンドは 、SAタスクからこのタスクに渡される。コノタスクは、これらのコマンドを待 ち行列に入れ、復号し、命令をSAタスクと適当な装置タスクに送る。SAタス クとDAタスクは、データ転送を実行する。
制御装置は上記のタスクを使用するが、SAタスクとコマンド制御タスクは、サ ブタスクの概念を介して拡張される。
制御装置は、独立のタスクまたは1タスク内のサブタスクとして実施される多数 のプロセスを有する。サブタスクは、サブタスク・スケジューラの制御下で実行 される。
第6図は、異なるプロセス間の通信を示すブロック図である。
制御ブロックは、この通信の際に、次のように使用される。
あるプロセスが、制御ブロックに情報を入れ、別のプロセスに通知する。後者の プロセスは、その制御ブロック内の情報にアクセスする。制御ブロックは、プロ セス間でパスされる。
制御装置のプロセス SA RECEIVE MESSAGE (S A受信メツセージ) (SAR XMSG)このプロセスは、アダプタから制御装置に送られるすべてのメツセー ジ、すなわち、SC5jCOMMANDSABORT、 R,ESETおよびR EADY FORREADを処理する (これらのメツセージのフォーマットは 、本明細書の他所にある)。アダプタからのメツセージ・パケットは、CLCの インバウンド・パケット・バッファで受信される。入力パケットのアドレス・フ ィールドの内容によって、そのパケットがメツセージとして識別され、高性能制 御装置のサービスを受ける。そのメツセージが、新規のCOMMAND、 AB ORTまたはRESETである場合には、5ARECEIVE MESSAGE プロセスが、それをコマンド記述子待ち行列項目(CDQE)の空き待ち行列の 先頭に複写する。このCDQEは、その後QUEUE MANAGERプロセス に待ち行列登録される。そのメツセージがREADY FORREADである場 合には、そのメツセージは、適当なSA XFER(S A転送)プロセス(す なわち、読み取るべきデータを含む装置に関連するプロセス)に渡される。
QUEUE MANAGER(待ち行列マネジャ)このプロセスは、コマンド制 御タスクのサブタスクであり、SA RECEIVE MESSAGEプロセス からの割込みを処理する。通常は、メツセージは5CSI COMMANDメツ セージであるが、AB ORTまタハRESETノコトもある。SA RECE IVE MESSAGEプロセスは、そのメツセージをCDQEに複写し、その CDQEを空き待ち行列から「新規コマンド待ち行列」に移した後に、このプロ セスに通知しており、次いでこのプロセスは、「新規コマンド」待ち行列から装 置固有の待ち行列にコマンドを移し、適当なコマンド・プロセスに通知する。Q UEUE MANAGERプロセスは、どのCOMMANDプロセスに通知すべ きかを決定するために、メツセージの制限付きの処理を幾つか実行する。
COMMAND (コマンド) コマンド・プロセス(コマンド制御タスクの4つのサブタスクのうちの1つ)は 、装置コマンド待ち行列上のSC3Iコマンドを処理する。コマンド・プロセス には、並列に走行する4つ(サポートされる4台の装置のそれぞれに1つずつ) のインスタンスがある。通常は、各プロセスがそのプロセスの装置に宛てられた コマンドを処理する。
各コマンド・プロセスが、1つのコマンドをその待ち行列から取り上げ、 それがこの時点での実行するのに有効であることを確認し、個々のコマ〕/ドを 処理するルーチンを呼び出し、そのルーチンが、 そのコマンドの妥当性検査を行い、 SA XFER(S A)プロセスとDEVICE (D A )プロセスに指 令し、 SAとDAが完了するまで中断し、 5CSI状況を返し 通常ハ、SA TRANSMIT MESSAGEプoセスf:通知シテ、5C SI状況をアダプタに送る。
装置待ち行列が空になるまでその待ち行列内のコマンド毎(7二の手順を繰り返 し、その後、この手順は、中断状態になり、QUEUE MA、NAGERブコ セスが新規コマンドを待ち行列に追加した時に再開される。
DEVICE (装置) 装置毎に1つのプロセスがある(別々のタスクとして実施される)。DAプロセ スは、COMMANDプロセスからの下記の要求を処理する。
1)読取り 適当なルーチンを呼び出して、C0MMAl’JDプロセスが要求した読取りコ マンドを処理する。このルーチンは、適当なりASDl:5EEK (シーク) 副指令を発行し、DMAの初期設定すなわちDMAチャネルの割振りを行い、使 用可能なバッファ・サイズを計算し、使用可能な空間が存在する場合は、REA D副指令を用意し、これをDASDに対して発行し、そのDASDが、DASD から制御装置内のデータ・バッファへのデータ転送を開始する。DMAアドレス が、READ副指令内でDASDに渡され、これを入力データ・パケットのアド レス・フィールド内で使用して、データの宛先を識別する。
2)書込み この時、下記の要求ならびにIDフォーマットなどの他の専用コマンドがまだ発 行されていない場合に、適当なルーチンが5EEK副指令を発行する。
3)現動作延長 4)事象停止 COMMANDプロセスは、下記の3つの事象のうちの1つを通知する、二とに よって、DEVICEプロセスと通信するつNEWREQ 新規の要求が開始さ れたことを装置プロセスに知らせる。
EXTR,EQ この事象は、要求を延長するのに使用する。
5TOP 装置プロセスに、現在進行中のすべての作業を停止するよう指示する 。
COMMANDプロセスからの要求を受け取った時、DEVICEプロセスは、 適当なり A S D副指令を直列リンク上に送ることによって、DASDに対 する適当な処置を開始する。′DASDi!I指令は、制御装置によって生成さ れる低水準の読み書き副指令である。制御装置がデータを読み書きできるように するために下記の副指令が設けられている。以下で定義する副指令はそれぞれ、 パケットのデータ・フィールド内で直列リンクを介してDA、SDに送られる。
すべての「副指令」パケットは、実行のため、またはDASD内の他の構成要素 /・、の分配のため、DA、SD内のマイクロプロセッサを宛先とする。。
これは、DASDに、先読み(アクティブの場合)を中止し、指定されたシリン ダおよびヘッドにシークするよう指令する副指令である。また、書込みコマンド の場合、単独のシーク副指令を用いると、制御装置は、コマンドを復号した直後 に、アダプタから書込みデータを受け取るのを待たずに、シークを開始できるよ うになる。つA、 S Dが読取り副指令または延長読取り副指令を完了する前 に(状況バケットが返さねていない) 、5TOP (停止)副指令が発行され る場合、DASDは、即座にその読取り動作を打ち切り、5TOP−AND−3 EEK副指令で指定されたシリンダおよびヘッドへのシークを開始し、打ち切ら れたREAD (読取り)副指令の状況パケットを返す。
5TOP副指令の場合は状況バケットを送らない。
また、この副指令は5.アダプタからA、BOR,T 5C3Iコマンド・メツ セージを受け取った時にDASDに送られる。この場合、シーク動作は開始され ない。
R,EAD (読取り)副指令 1OR,DERC0DE IADDRESS ICYLINDERlHEAD  1LBA 1COUNT lこれは、DASDに、特定の論理ブロック・アドレ ス(LBA)を探索し、指定された数のブロックを読み取るよう指令する副指令 である。パラメータは以下の通りである。
シークの検査用の物理シリンダ(CYLINDER)と物理ヘッド(I(EA、 D) 、論理ブロック・アドレス(LBA) 、および読み取るべきブロックの 数のカランl−(COUNT)。さらに、アドレス・フィールド(ADDR,E SS)は、この副指令の結果として返されるすべてのデータ・パケットのアドレ ス・フィールドに置かれるバイトを含む。
DASDは、要求されたデータを制御装置に送り、各ブロックの末尾にあるEC Cバイトを検査する。DASDが、欠陥ありとマークされたブロックに遭遇した 場合は、それらのブロックを自動的にスキップする。最後に、DASDは、エラ ーが検出されたか否かを示す状況を返す。
C0NDITIONAL READ (条件付き読取り)副指令この副指令は、 READ副指令と同じフォーマットを有し、選択されたシリンダおよびヘッド・ アドレスへのシーク動作を呼び出す。この副指令に含まれるLBAに対応するセ クタの位置が指定され、カウント・フィールドで指定された数のレコードが、デ ィスクから読み取られる。アドレス・フィールドは、この副指令の結果として返 されるすべてのデータ・パケットのアドレス・フィールドに置かれるバイトを含 む。
C0NDITIONAL READ副指令が制御装置によって発行されるのは、 ホストが要求する読取りデータの量が、選択された量より多い時だけであること に留意されたい。要求されたデータの量が少ない場合には、C0ND工Tl0N A5READの使用は保証されない。
この副指令を用いると、以下で詳細に説明する分割読取り動作が可能になる。
WRITE (書込み)副指令 これは、DASDに、特定のLBAを探索し、指定された数のブロックを書き込 むよう指令する副指令である。パラメータは、READ副指令(上記参照)と同 じであるが、書き込むべきデータを制御装置が供給する点が異なる。さらに、ア ドレス・フィールドは存在しない。
C0NDI’rIONAL WRITE (条件付き書込ミ)副指令条件付き書 込み副指令は、WRITE副指令と開指令ォーマットを有する。
EXTEND (延長)副指令 10RDERCODE1LBAICOUNT1これは、前のREAD副指令、C 0NDITIONAL READ副指令、WRITE副指令ま開指令0NDIT IONA5WRITE副指令の動作を延長する副指令である。「カウントJ ( COUNT)は、現副指令が完了した後に読み取るまたは書き込む必要のある個 々のセクタの数を指定するパラメータである。
LBAは、最初に読み取るまたは書き込むべきブロックのアドレスを定義すZフ ィールドである。この値は、連続的な読取りまたは書込みが必要な場合、前の副 指令によって読み取られた、または書き込まれた最後のブロックのLBAよりも 1つ大きい値になる。LBAフィールドが、前の副指令の最後のLBAの後の最 初のブロックではない場合は、これらのLBAの間にあるブロックはスキップさ れ、読取りも書込みも行われない。
EXTEND副指令が有力指令るためには、DASDは、前の副指令が完了する 前にEXTEND副指令を受力指令なければならない。制御装置は、EXTEN Dを使って連続的書込みを実行し、または先読みを継続する。これらの動作は、 以下で詳細に説明する。
動作全体が完了した時、コマンド・プロセスに適当な事象が通知される。
SA XFER(S A転送) これは、ホストと制御装置内の読取リバツファの間またはホストと制御装置内の 書込みバッファの間でデータを転送する、装置ごとのプロセスである。COMM ANDプロセスは、5AXFERプロセスに対して下記のコマンドを発行できる 。
5end Read Data、 (読取りデータ送出)Get Write  Data (書込みデータ取得)Stop Current Transfer  (現転送停止)データ転送の実行に必要なパラメータは、制御ブロック内でC OMMANDプロセスからSA XFERプロセスに渡される。
SA TRANSMIT (S A送信) (SATXMSG)これは、他のプ ロセスに代わってメツセージ(READY FOR−WRITE、 DATA− READYオJ:び5TATUS)ヲアダプタニ送ルフロセスである。READ Y−FORWRITEとDATA READYは、SA XFERプロセスから このプロセスに渡され、5TATUSメツセージは、COMMANDプロセスか ら渡される。
読取り動作と書込み動作の例 次に、ホストからのコマンドの受取りに始まり、ホストへの完了状況の提示まで の典型的な読取り動作と書込み動作の例を記す。
読取り動作の例 アダプタ 制御装置 DASD SCSjCOMMAND (READ 4K)−>コマンドを待ち行列に登録 コマンド゛を復号 コマンドを検索 LBAを物理アl−゛l、スに変換 先読停止 <−−m−〜−−−−−−−−−−−−−3TA、TUSハ゛ブファを割り振る  シーク DASD DMAを初期設定 LBA探索 読取り <−−−−−−−−−−−−−−−−一 DATAハ゛ブファ1ニ最初のテ゛− 夕が入る <−−−−−−−−−−−−DATA−READYホストDMAを初期設定 SA DMAを初期設定 <−−−−−−−−−−−−DATA PACKETS最後のドータを送る <−−一−−−−−−−−−5CSjSTATUS状況を待ち行列に登録 EX TEND (4K) −−−−−−−−−−−> ・状況を提示 先読みテ)で−タをセーフ′ <−−−−−−−一−−−−〜−−−−5TATUS読取り 1、アダプタが、CDB内にR,EAD動作を含むSC3jcOMMANDメツ セージを制御装置に送る。このメツセージは、読取りデータの転送元であるDA 8つのアト1/スと、そのデータの送り先になるホスト・メ士す内のアドレスを 含む。
2、制御装置が、上述の通りにコマンドを処理し、装置タスクに制御を渡す。こ の装置タスクは、DASDに5TOP−Aへ1D−5EEK副指令を送る。これ によって、現在活動状態の先読み動作があれば打切られる1、(現在活動状態の 先読み動作がない場合は、この副指令は送られない)。
3、DA、SDが、先読み動作打切り状況を示す5TATUSを制御装置に返し 、その後、指定されたヘッドおよびシリンダへのシークを開始する。
4、制御装置の装置タスクが、転送すべき読取りデータのために32にセグメン トのデータ・バッファを割り振る。また、この装置タスクは、制御装置データ・ バッファへのデータ転送に使用するDMAチャネルを割り振る。
5、この例では、次に、装置タスクが、割り振られたDMAチャネルのアドレス 、データ開始アトI/スおよび転送すべきブロックの数を含むCON]TrON AL READ!IJ指令を、DASDに送る。前述したように、要求されたデ ータの量が少ない場合には、C0NDI T I 0NAL−READ副指令全 指令くて[通常のJ、R,EAD副指令が送られる。
6 、 C0NDITIONAL−READ副指令全指令取った時、DASDは 、LBAを探索し、データの転送を開始する。データ・パケットのアドレス・フ ィールドは、DMAチャネルのアドレスを含む。
7、読取りデータが、直列リンクを介して制御装置に転送され、制御装置データ ・バッファ内の割り振られた空間に入れられる。
8、制御装置がアダプタにDATA READYメツセージを送り、その結果、 ホストが、制御装置とホスト・メモリの間で読取りデータを転送するために使用 するホストDMAチャネルを初期設定する。上記の流れ図では、最初のデータを バッファ内で受け取った後にDATA−R,EADYメツセージが送られるよう になっているが、このメツセージは、バッファ内でデータを受け取る前に送られ るのが普通である。このメツセージの目的は、ホス1〜DMAを初期設定するこ と、すなわち、ホストにデータを受け取る準備をさせることである。
9oアダプタが、DATA、−REA、DYメッセ・−ジに応答して、制御装置 にREADY FOR,READメツセージを送る。ホスト内でREA、DY− FOI’jREADメツセージは、初期設定されたDMAチャネルを識別するも ので、制御装置のSA RECEIVEメツセージ・プロセスによって受け取ら れ、SA XFERプロセスに渡される。この5AXFERプロセスは、SA  D、MAを初期設定する、すなわちデータ・バッファからのデータ転送に使用す るDMAチャネルを割り振る。
10、データは、DASDからデータ・バッファ内で受け取られた時、直列リン クを介してホスト・メモリに転送される。
最後のデータが送られた時、制御装置は、5C5I 5TATUSをアダプタに 返す。アダプタは、この状況を待ち行列に入れ、これをホストに提示する。
書き込み動作の例 アダプタ 制御装置 DASD SC3I−COMf4AND (wRITE) −>コマンドを待ち行列に登録 5TOP AND−SEEK −−−−−−−−−>先読停止 <−−−−−−−−−−−一−−−−−−3TATUSハ゛フファを割り振る  シーク DASD DMAを初期設定 <−一−−−−−−−−−−−−READYJORWRITEDMAを割り振る テ゛−タ・パケット −−−−−−−−−−−−−−−−−>最初のテ゛−’l がハ゛フファに入る DA DMAを初期設定 C0ND I T l0NAL−WRI TE−〜−−−−〉LBA探索 EXTEND −−−−−−−−−−−−−−−−−−>・<−−−−−−−− −−−−−−一状況<−−−−−−−−−−−−−−5C3jSTATUS状況 を待ち行列に登録 状況を提示 書込み 1、アダプタが、書込み動作を定義する5C3I COMMANDメツセージを 制御装置に送る。
2、制御装置が、コマンドを処理しく前述した通りに)、制御が、COMMAN DプロセスからDEVICEプロセスに渡される。この例テハ、DEVICEブ o セスハ、D A S D ニ5TOP−AND−5EEK副指令を送る(先 読み動作が現在活動状態である)。
3、DASDが、先読みを停止し、先読み動作打切り状況を示す状況を制御装置 に送る。DASDが、5TOP−AND 5EEK副指令で指定されたシリンダ およびヘッドへのシークを開始する。
4、制御装置のSA XFERプロセスが、データ・バッファ内の空間を割り振 り、ホストからの書込みデータのパケットの宛先となるSA DMAチャネルを 初期設定する。
5 、5AXFERプロセスが、SA TRANSMITプロセスに通知し、こ のSA TRANSMIτプロセスが、アダプタにREADY−FORWRIT Eメツセージを送る。このメツセージは、前のステップで初期設定されたDMA チャネルを識別するメツセージである。
6、アダプタのリンク・タスクが、ホスト・メモリへのデータ転送に使用するD MAチャネルを割り振り、その後、書込みデータのパケットの、制御装置への転 送を開始する。
7、制御装置の装置タスクが、データ・バッファとDASD間でのデータの転送 に使用するDMAチャネルを初期設定し、この例では、DASDが期待すべきL BAと書込みデータの量を識別するC0ND IT I 0NAL−讐飢TE副 指令をDASDに送る。、DASDは、LBA探索を開始する。
8゜書込みデータは、DMAチャネルを介してバッファで受け取られた時、バッ ファから第2のDMAチャネル上を直列リンクを介してDASDに転送される。
先読み 先読みとは、全体で1つの長い逐次読取りを構成する1組のREA、Dコマンド の性能を向上させるために、制御装置が提供する機能である。これは、下記のよ うに次の読取りを予測してD A、 S Dから制御装置のバッファへの読取り を継続することによって達成される。
5C3IのREADコマンドを受け取ると、制御装置は、この読取りに割り振ら れている制御装置の32にセグメントのデータ・バッファに必要な数のセクタを 転送するようDASDに指示する。この実施態様では、制御装置は通常、ホスト からのコマンドが要求する量がそれより少ない時でも、32にのデータ(すなわ ち、割り振られたバッファ空間を満たす量のデータ)を要求する9ホストが要求 するデータは、DASDから到着した時、ホストに転送される。要求されたデー タをホストまで転送し終えた時、制御装置によって状況が生成される。その間に 、先読みデータの転送が継続する。
DASDに対するREAD副指令で、ホストから要求された量より多くのデータ が指定されていた場合には、余分のデータは、制御装置バッファに記憶される。
ホスI・がバッファ空間を使用可能にする時、制御装置によってD A、 S  Dに送られるEXTEND副指令によって、データ転送が延長される。EXTE ND副指令を受け取ると、DASDは、そのEXTEND副指令で指定されたセ クタをバッファの新しい末尾に転送する。
1例として、アダプタから送られたREA、Dコマンドが、4にのデータ(8セ クタ)を要求し、制御装置が、装置に32Kを要求する場合には、要求された4 にのデータがホストに転送されると同時に、バッファ内に4にの空間が生じる。
制御装置は、バッファを満たすため、4にの新規データを要求するEXTEND 副指令を装置に送る。
アダプタから次のREADコマンドを受け取った時、制御装置は、バッファを検 査して、要求されたデータが既に存在する(または、すぐに存在するようになる )か否かを調べる。そうである場合には、制御装置は、そのデータをホストに転 送する。そうでない場合には、制御装置は、DA、SDに新規の読取りを指示し 、活動状態の先読みがあれば打ち切る。DASDが新規転送を再度指令されるか 、または先読みバッファが満たされるまで、先読みは継続する。
連続的書込み 連続的(バック・ツー・バック)書込みとは、連続するブロックを書き込む連続 した書込みコマンドである。後続書込みの最初のブロックが、前の書込みの最後 のブロックの直後に続く。制御装置およびDA、SD内で連続的書込みに対する 特別なサポートを行うと、そうでない場合にはコマンドの間にDASDが回転す る必要があるのに対して、DASDは回転せずに書込みを行えるようになる。
WRIITEコマンドのコマンド固有ルーチンが、現在活動状態の装置転送を、 次の連続する書込みを含むように延長することができる点に達した時、このルー チンは、「肩越しに振り返り」、次のCDQEがこのような書込みを含むか否か を検査する。含む場合は、このルーチンは、装置タスクに延長要求を発行し、そ の装置タスクは、DASDにEXTEND!’I指令を送る。DASDが、前の 書込みを完了する前にEXTEND副指令を受け取った場合は、そのDASDは 、ただ単に、現書込みのカウントを、EXTEND副指令のカウント・パラメー タで指定された量だけ延長する。
EXTEND副指令がDASDに達するのが遅すぎた場合には、D A S D は、最初の書込みを通常の形で行った後に状況を提示し、「失敗」状況を示して そのEXTEND副指令を拒絶する。
その場合、制御装置は通常の書込みを生成する。 EXTEND副指令は、それ 自体が延長の候補である。
例 ホストが、セクタO〜7に対するSO3工書込みコマンドを送る。
制御装置が、セクタO〜7に対するWRITE副指令を発行する。
ホストが、セクタ8〜15に対する5C3I書込みコマンドを送る。
制御装置が、待ち行列内で連続的書込みを検出する。
制御装置が、8セクタ分のEXTEND副指令を発行する。
EXTEND副指令が、WRITEの終了前に到着した場合、このDASDは、 その現ブロック・カウントを8だけ延長し、セクタ7の後には状況を返さず、そ の代わりに、セクタ15の後で状況を返す1、 EXTEND副指令の到着が遅すぎた場合、このDA、SDは、WRITE副指 令に対する通常の状況を生成し、EXTEND副指令の受取りが遅すぎたことを 制御装置に伝える。その場合、制御装置は、セクタ8〜ISに対する″WR,I TEWRITE副指令。その後、セクタ8〜15が、次の回転の際に書き込まれ る。
EXTEND副指令を使用する連続的書込みの実施態様では、直列リンクのパケ ット多重化機能を利用する、すなわち、制御装置が、書込みデータをD A S  Dに送っているのと同時に、直列リンクを介してEXTENDilJ指令を送 ることができなければならないことに留意されたい。
分割読取り 分割読取りとは、DASDからの読取りを、現READ動作の範囲の最初のセク タではなく、ヘッドの下に最初に現れるその範囲に含まれるセクタから開始する ことによって得られる性能向上である。たとえば、セクタ4.5.61.、.1 5.16に対する読取りは、ヘッドの到着がたまたまセクタ4を読み取るには遅 すぎるが、セクタ6を読み取るには十分に早い場合には、6.7.81.、、. 15.16.4.5という順序で読み取ることができる。したがって、DASD からの転送は、そうしない場合よりも]1セクタ(すなわち、16−5)だけ早 く完了するはずである。
この最適化は、制御装置がDASDに最初のセクタを読み取るよう指令すること によって達成される。DASDは、そのセクタが所定の時間(たとえば1ミリ秒 )以上離れていることを発見した場合、その読取りを打ち切り、現LBAを制御 装置に返す。その場合、制御装置は、同じ読取りを再発行するか、それともその 読取りを、現セクタから末尾までを転送する「末尾」読取りと、第1セクタから 末尾の先頭までを転送する「先頭」読取りとに分割するかを決定する。
これをサポートするために、DASDに対するC0ND IT l0NAL−R EAD副指令が使用できる。この副指令は、第1セクタまでに長い遅延がある場 合には打ち切られる。上記の例では、データは、通常の順序で読み取られる場合 よりも、11セクタ分早く制御装置バッファに到着する。ただし、制御装置が、 ホストに送るデータを通常の順序に配列し直さなければならない場合には、分割 読取り動作の性能の利益は大幅に減少する。
本明細書に記載する技法は、制御装置バッファ内でデータを並べ直す必要をなく すことによって、「分割読取り」の潜在能力をより多(引き出すものである。こ れは、制御装置とアダプタの間でメツセージ・インターフェースを定義して、ホ ストDMAアドレスに対する必要な制御を制御装置に与えることによって達成さ れる。実際には、制御装置は、ホスト・メモリに対するランダム・アクセス権を 有する。データが制御装置のデータ・バッファに置かれる時に制御装置からアダ プタに送られるDA TA−READYメツセージが、そのデータを送る先のホ スト・メモリ内のアドレスを指定する。分割読取り動作が進行中である時、制御 装置は、ホストからの当初のコマンド中で送られたアドレスから修正済み開始ア ドレスを計算し、このアドレスを、DATA READYメツセージに組み入れ てホストに送る。上記の例の場合、制御装置は、セクタ4の開始アドレスを知ら され、したがって、分割読取りデータの最初のセクタ(この場合はセクタ6)を 送る先のホスト内の修正済みアドレスを計算することができる。セクタ6〜16 が既にデータ・バッファ内にある場合は、制御装置は、単一のDATA−REA DYメツセージを発行して、セクタ6〜16の転送を開始する。セクタ6〜16 の転送が完了する。制御装置はセクタ1.−5をバッファ内で得た時、DATA −READYメツセージをホストに発行して、セクタ1〜5の転送準備ができた ことと、セクタ1を送る先のホスト・メモリのアドレスを示す。
生データ読取り 制御装置がホスト・メモリの諸区域にランダムにアクセスできる、すなわち、ホ スト・アドレスを制御できる能力をもつので、別の性能上の利益も得られる。D ASDがデータの多数のセクタを制御装置バッファに転送している読取り動作中 に、そのDASDは、1セクタ(512バイト)の末尾まで待ってECCを検査 する前に、そのセクタをホストまで送る。ここで述べるシステムでは、DASD は、1セクタ分のデータを保持するのに十分な緩衝記憶を有していない。データ は、ディスクから直列に読み取られ、128バイト・パケットにコンパイルされ て、制御装置に送られる。そのセクタが終わる時に、装置は、FCCを検査し、 そのデータの末尾に6つのECCバイトを付加する。そのセクタ内のすべてのデ ータが「良好」である場合は、エラーは示されず、制御装置はホストへの伝送を 継続する。このシステムでは、装置がデータの最終パケットを制御装置に送る前 に、したがって、装置がそのデータにエラーが含まれることを知る前に、データ のそのセクタの大部分が既に制御装置からホストに転送されていることに留意さ れたい。したがって、既にホスト内にあるデータは、「生」データであり、すな わち、ホストへの転送の前に検査が行われていない。
はとんどのデータ転送では、生データは、良好なデータでもある。すなわち、そ のデータが装置から転送される。データを検査なしでホストに直接に転送すると 、ホストへ転送する前にすべてのセクタを検査する従来のシステムに比べて、性 能上の利益がもたらされる。この直接方式の場合、データの多数のセクタをホス トが受け取るのに要する時間が、1セクタのデータが装置からホストへ移動する のに要する時間とほぼ等しい時間だけ短縮される。本明細書に記載のシステムな どの高性能システムでは、この利益によって、全体的オーバーヘッドをかなり削 減することができる。
上述したように、はとんどのデータ転送では、生データを送ると、検査済みのデ ータに比べて、性能上の利益がもたらされる。これとトレードオフになるのは、 転送データにエラーが存在する時の性能低下である。ある従来システムでは、生 データにエラーが1つ存在すると、そのデータ全体を再送信しなければならない 。制御装置がホスト・メモリに対するランダム・アクセス権を有する本発明では 、データのすべてを再送信する必要はない。
あるセクタの終りに、DASDがそのデータ内にエラーが存在することを検出し た場合、ECCバイトによってそのことが制御装置に示され、制御装置に警告が 出る。制御装置は、ホストへの現パケット・データの送出を完了した時に、送信 を中止し、DATA−RETRY (データ再試行)メツセージをホストに送る 。制御装置は、エラーを含んでいたセクタの再送信を要求する。D A、 S  Dは、要求されたセクタを、128バイト・パケットに入れて制御装置に再送信 し、制御装置は、そのデータをバッファに記憶する。再送信されたデータのブニ ツクが良好である場合は、制御装置は、ホストにそのデータをバスする。
制御装置は、再試行データの送り先となるホスト・メモリのアドレスを指定する DATA−RETRYメツセージを、アダプタに送る。このDATA−F!、E TRYTR上−ジは、アダプタに1.ホスト・メモリへデータを転送するのに使 用する新規D 1v Aチャネルをセットアツプするよう指示するメツセージで ある。アダプタは、このDATA RETR,Yメツセージに対して、READ Y FORREADメツセージで応答する。DATJ’jRETR,Yメツセー ジは、再試行されるデータの量を示す。
制御装置に送られる再試行データが依然として誤りを含む場合、制御装置は、あ る回数だけそのデータを再要求する。
所定の回数の試行後に制御装置がまだ良好なデータを受け取っていない場合、制 御装置は、そのバッファ内に保持されているデータ中の誤りの訂正を試みる。こ のために、制御装置は、rH;CCに対する作用」副指令を装置に送る。この副 指令は、装置に、どのバイトが誤りであるかを計算させ、また、それらのバイト の訂正データを計算させる。訂正できるバイトの数は、実施態様に依存する。本 明細書のシステムでは、その数は2バイトである。装置は、訂正情報を制御装置 に送り、制御装置は、そのバッファ内に保持されたデ・−夕を訂正する。その後 、制御装置は、訂正済みのバイトを含むデ・−タのブロックをホストに送る。
FIG、4 HPC DASDリンク アダプタ・リンク FIG、5 FIG、6 FIG、7 データ記憶サブシステム内のデータ転送要約 データ記憶サブシステム内の装置制御装置と装置との間でデータ番転送するため の技法を開示する。この制御装置は、装置へおよび装置から転送されるデータが 通過するデータ・バッファを有する。この制御装置は、低水準の多重セクタ読− 夕は、32.64または128バイト・パケットの形で装置と制御装置の間を転 送される。この装置は、一時に1パケツトのデータを記憶することのできる相対 的に小さなデータ・バッファを有する。装置上で1つの副指令を実行している間 に、制御装置は後続の副指令を発行することができる。これらの副指令の1つが 、装置上で現在実行中の読取り副指令で指定されたデータを超えて読取りを継続 するよう装!に指令するEXTEND副指令である。EXTEND副指令を用い ると、「連続的」書込みを実施することも可能になる。
rt驚珈査餉失

Claims (8)

    【特許請求の範囲】
  1. 1.制御装置が、多重セクタ・データ転送副指令を装置に発行することによって 、データ転送を開始するステップと、データ転送副指令の実行中に、後続の副指 令を装置に発行するステップと を含む、拡張緩衝記憶機能を有する装置制御装置と制限付巻緩衝記憶機能を有す る直接アクセス記憶装置との間でデータを転送する方法。
  2. 2.前記データ転送副指令が、転送しようとするデータを指定し、前記後続副指 令が、データ転送副指令で指定されたデータが装置と制御装置との間で転送され ている間に装置に送られるEXTEND副指命であり、前記方法がさらに、デー タ転送副指令の実行完了の直後に、装置が、EXTEND副指令に基づいて活動 して、EXTEND副指令で指定されたデータを転送するステップ を含む、請求項1に記載の方法。
  3. 3.前記データ転送副指令が、装置から制御装置内のデータ・バッファヘの読取 りデータの転送を開始する多重セクタREAD副指令であり、 制御装置が、制御装置データ・バッファから、接続されたホスト・データ処理シ ステム内のメモリへ読取りデータを転送し、 データ・バッファ内にスペースがある時に、制御装置が、装置にEXTEND副 指令を発行し、 装置が、EXTEND副指令に基づいて活動して、EXTEND副指令で指定さ れた先読みデータを制御装置データ・バッファに送ることを特徴とする、 請求項2に記載の方法。
  4. 4.制御装置が、ホストから受け取った第1のREADコマンドに応答して、装 置に対してREAD副指令を発行し、制御装置が、ホストから第2のREADコ マンドを受け取った時に、バッファ内に保持されている前記先読みデータが第2 のREADコマンドで指定されたデータに対応するか否かを判定し、そうである 場合には、装置に次のREADコマンドを発行せずに、前記データをホストに送 ることを特徴とする、請求項3に記載の方法。
  5. 5.制御装置が、ホストから次のデータ転送コマンドを受け取った時に、装置に STOP_AND_SEEK副指令を発行して、装置に、EXTEND副指令で 指定されたデータの読取りを即座に停止させ、STOP_AND_SEEK副指 令で指定されたデータの位置へのシークを開始させることを特徴とする、 請求項4に記載の方法。
  6. 6.制御装置が、接続されたホスト・データ処理システムから受け取った第1の WRITEコマンドに応答して、装置に第1の多重セクタWRITEデータ副指 令を発行することによって、制御装置から装置へのデータの転送を開始し、第1 の副指令で指定されたデータを制御装置と装置との間で転送している間に、制御 装置が第2のWRITEコマンドをホストから受け取った場合に、制御装置が、 第2のコマンドで指定されたデータが前記第1のコマンドで指定されたデータと 連続しているか否かを判定し、そうである場合には、装置にEXTEND副指令 を発行して、装置に、第1のコマンドで指定されたデータの書込みを完了した直 後に、EXTEND副指令で指定されたデータの書込みを続行させ、前記EXT END副指令が、制御装置と装置との間のリンク上で伝送されている第1に指定 された書込みデータと多重化されることを特徴とする、請求項2に記載の方法。
  7. 7.装置が、WRITE副指令の完了後に制御装置からEXTEND副指令を受 け取った場合に、EXTEND副指令に基づいては活動せず、その代わりに制御 装置に状況を返し、制御装置が、装置に第2のWRITE副指令を発行し、これ によって、ホストからの第2のWRITEコマンドで指定されたデータの転送を 開始することを特徴とする、請求項6に記載の方法。
  8. 8.通信のために直接アクセス記憶装置に接続された装置制御装置を備え、制御 装置が相対的に大きなデータ・バッファを含み、装置が相対的に小さなデータ・ バッファを含み、制御装置が、多重セクタデータ転送副指令によって装置へおよ び装置からのデータの転送を開始し、データ転送副指令の実行中に装置に副指令 を発行する手段を含む、データ記憶サブシステム。
JP3504262A 1991-02-19 1991-02-19 データ転送方法 Expired - Lifetime JPH077327B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/GB1991/000255 WO1992015053A1 (en) 1991-02-19 1991-02-19 Data transfer within a data storage subsystem

Publications (2)

Publication Number Publication Date
JPH05502314A true JPH05502314A (ja) 1993-04-22
JPH077327B2 JPH077327B2 (ja) 1995-01-30

Family

ID=10688043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3504262A Expired - Lifetime JPH077327B2 (ja) 1991-02-19 1991-02-19 データ転送方法

Country Status (4)

Country Link
US (1) US5664145A (ja)
EP (1) EP0524936A1 (ja)
JP (1) JPH077327B2 (ja)
WO (1) WO1992015053A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549974B2 (en) * 1992-06-22 2003-04-15 Hitachi, Ltd. Semiconductor storage apparatus including a controller for sending first and second write commands to different nonvolatile memories in a parallel or time overlapped manner
TW276312B (ja) * 1992-10-20 1996-05-21 Cirrlis Logic Inc
JP3586887B2 (ja) * 1994-06-10 2004-11-10 松下電器産業株式会社 情報記録再生装置およびデータキャッシュ方法
US6092149A (en) * 1997-05-28 2000-07-18 Western Digital Corporation Disk drive cache system using a dynamic priority sequential stream of data segments continuously adapted according to prefetched sequential random, and repeating types of accesses
US6397267B1 (en) * 1999-03-04 2002-05-28 Sun Microsystems, Inc. Redirected I/O for scalable performance storage architecture
US6684287B1 (en) * 1999-09-21 2004-01-27 Hitachi Global Storage Technologies Turning read/write performance for disk drives with very high track density
US6604155B1 (en) 1999-11-09 2003-08-05 Sun Microsystems, Inc. Storage architecture employing a transfer node to achieve scalable performance
US6684274B1 (en) 1999-11-09 2004-01-27 Sun Microsystems, Inc. Host bus adapter based scalable performance storage architecture
US6570885B1 (en) * 1999-11-12 2003-05-27 International Business Machines Corporation Segment-controlled process for controlling castouts from a communication cache in a port in any of multiple nodes in a communications network
US6636940B1 (en) 1999-12-02 2003-10-21 International Business Machines Corporation Task control for high level commands in disk drives
US6516396B1 (en) * 1999-12-22 2003-02-04 Intel Corporation Means to extend tTR range of RDRAMS via the RDRAM memory controller
US6473834B1 (en) 1999-12-22 2002-10-29 Unisys Method and apparatus for prevent stalling of cache reads during return of multiple data words
US6415357B1 (en) 1999-12-23 2002-07-02 Unisys Corporation Caching method and apparatus
US6732292B2 (en) 2001-09-17 2004-05-04 Seagate Technology Llc Adaptive bi-directional write skip masks in a data storage device
US6789163B2 (en) 2001-09-17 2004-09-07 Seagate Technology Llc Optimizing data transfer performance through partial write command purging in a disc drive
US6968423B2 (en) * 2002-02-05 2005-11-22 Seagate Technology Llc Dynamic data access pattern detection in a block data storage device
US6934802B2 (en) * 2002-04-19 2005-08-23 Seagate Technology Llc Band detection and performance optimization for a data storage device
US20030200386A1 (en) * 2002-04-19 2003-10-23 Seagate Technology Llc Data retention prioritization for a data storage device
US7171525B1 (en) * 2002-07-31 2007-01-30 Silicon Image, Inc. Method and system for arbitrating priority bids sent over serial links to a multi-port storage device
TW569096B (en) * 2002-09-17 2004-01-01 Integrated Technology Express The cache/prefetch frame of serial data system and its method of operation
US7610466B2 (en) * 2003-09-05 2009-10-27 Freescale Semiconductor, Inc. Data processing system using independent memory and register operand size specifiers and method thereof
US7275148B2 (en) * 2003-09-08 2007-09-25 Freescale Semiconductor, Inc. Data processing system using multiple addressing modes for SIMD operations and method thereof
US7315932B2 (en) * 2003-09-08 2008-01-01 Moyer William C Data processing system having instruction specifiers for SIMD register operands and method thereof
US8140795B2 (en) * 2005-02-28 2012-03-20 Lenovo (Singapore) Pte. Ltd. Hard disk drive with write-only region
US7773630B2 (en) * 2005-11-12 2010-08-10 Liquid Computing Corportation High performance memory based communications interface
WO2007149742A2 (en) * 2006-06-19 2007-12-27 Liquid Computing Corporation Methods and systems for reliable data transmission using selective retransmission
US7873964B2 (en) 2006-10-30 2011-01-18 Liquid Computing Corporation Kernel functions for inter-processor communications in high performance multi-processor systems
US8078771B2 (en) * 2008-10-31 2011-12-13 Lsi Corporation Sending large command descriptor block (CDB) structures in serial attached SCSI (SAS) controller
US8713261B1 (en) * 2011-03-11 2014-04-29 Emc Corporation Caching techniques
US9280497B2 (en) * 2012-12-21 2016-03-08 Dell Products Lp Systems and methods for support of non-volatile memory on a DDR memory channel

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3705388A (en) * 1969-08-12 1972-12-05 Kogyo Gijutsuin Memory control system which enables access requests during block transfer
US4107773A (en) * 1974-05-13 1978-08-15 Texas Instruments Incorporated Advanced array transform processor with fixed/floating point formats
JPS53123633A (en) * 1977-04-04 1978-10-28 Mitsubishi Electric Corp Information transfer system
JPS5922979B2 (ja) * 1978-05-31 1984-05-30 株式会社東芝 バツフアメモリ制御方式
US4536836A (en) * 1981-11-27 1985-08-20 Storage Technology Corporation Detection of sequential data stream
JPS61110229A (ja) * 1984-11-05 1986-05-28 Mitsubishi Electric Corp 磁気デイスク制御回路
US4882642A (en) * 1987-07-02 1989-11-21 International Business Machines Corporation Sequentially processing data in a cached data storage system
US5163132A (en) * 1987-09-24 1992-11-10 Ncr Corporation Integrated controller using alternately filled and emptied buffers for controlling bi-directional data transfer between a processor and a data storage device
US5016121A (en) * 1988-02-25 1991-05-14 Tandon Corporation Disk drive controller system
US5267097A (en) * 1989-03-06 1993-11-30 Hitachi, Ltd. Information transfer control system having rotary storage unit which uses a pseudo address mark
US5243703A (en) * 1990-04-18 1993-09-07 Rambus, Inc. Apparatus for synchronously generating clock signals in a data processing system
US5182800A (en) * 1990-11-16 1993-01-26 International Business Machines Corporation Direct memory access controller with adaptive pipelining and bus control features

Also Published As

Publication number Publication date
US5664145A (en) 1997-09-02
EP0524936A1 (en) 1993-02-03
JPH077327B2 (ja) 1995-01-30
WO1992015053A1 (en) 1992-09-03

Similar Documents

Publication Publication Date Title
JPH05502314A (ja) データ転送方法
US6401149B1 (en) Methods for context switching within a disk controller
US6330626B1 (en) Systems and methods for a disk controller memory architecture
US5594882A (en) PCI split transactions utilizing dual address cycle
US6272499B1 (en) Linked lists of transfer descriptors scheduled at intervals
US6549981B2 (en) Disk array system with controllers that automate host side of ATA interface
US6055603A (en) Method and apparatus for performing pre-request operations in a cached disk array storage system
US7761642B2 (en) Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging
US6564271B2 (en) Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
JP5159900B2 (ja) 予約デバイスのアクセス競合を低減するコンピュータ・プログラム、装置、及び方法
US7340551B2 (en) Bridge permitting access by multiple hosts to a single ported storage drive
US5555390A (en) Data storage method and subsystem including a device controller for respecifying an amended start address
JP2000010901A (ja) ディスクアレイ制御装置
US6098149A (en) Method and apparatus for extending commands in a cached disk array
JP4100256B2 (ja) 通信方法および情報処理装置
US5613141A (en) Data storage subsystem having dedicated links connecting a host adapter, controller and direct access storage devices
JP4053208B2 (ja) ディスクアレイ制御装置
KR100638378B1 (ko) 디스크 제어장치의 메모리 구조에 대한 시스템 및 방법
US6233628B1 (en) System and method for transferring data using separate pipes for command and data
JPH05502316A (ja) データ記憶サブシステム
JPH05502315A (ja) データ記憶サブシステムとホスト・データ処理システム間のデータ転送方法
WO1992015054A1 (en) Data transfer between a data storage subsystem and host system
US20040111537A1 (en) Method, system, and program for processing operations
JP4362199B2 (ja) データ伝送装置
JP2732951B2 (ja) データ転送制御方法