JPH09160862A - ローカル・サイド及びホスト・サイドの間でデータ・ブロックを転送するためのステータス処理システム - Google Patents
ローカル・サイド及びホスト・サイドの間でデータ・ブロックを転送するためのステータス処理システムInfo
- Publication number
- JPH09160862A JPH09160862A JP8229605A JP22960596A JPH09160862A JP H09160862 A JPH09160862 A JP H09160862A JP 8229605 A JP8229605 A JP 8229605A JP 22960596 A JP22960596 A JP 22960596A JP H09160862 A JPH09160862 A JP H09160862A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- host
- local
- status
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Image Input (AREA)
Abstract
(57)【要約】
【課題】ホスト処理サイド及びローカル処理サイドの間
でデータ・ブロックを転送する情報処理システムを提供
する。 【解決手段】ホスト処理サイド110はホスト処理装置
103及びホスト・メモリ107を有し、ローカル処理
サイド120はローカル処理装置201及びローカル・
メモリ203を有する。ホスト・メモリは、複数のステ
ータス待ち行列イメージを有するステータス待ち行列メ
モリ部分402を含む。それらの各イメージは対応する
データ転送に関するステータス情報を記憶する。データ
・ブロック転送に関するステータス情報はホスト処理サ
イドに通知される。ホスト処理装置は、システム初期設
定時に、ステータス待ち行列パラメータを定義するステ
ータス待ち行列レジスタ・セット431を設定する。そ
のステータス待ち行列パラメータは、ホスト・メモリに
おけるステータス待ち行列メモリ部分のロケーション、
及びステータス待ち行列イメージが記憶されるべき場所
及びステータス待ち行列イメージが検索されるべき場所
を指すポインタ値を含む。
でデータ・ブロックを転送する情報処理システムを提供
する。 【解決手段】ホスト処理サイド110はホスト処理装置
103及びホスト・メモリ107を有し、ローカル処理
サイド120はローカル処理装置201及びローカル・
メモリ203を有する。ホスト・メモリは、複数のステ
ータス待ち行列イメージを有するステータス待ち行列メ
モリ部分402を含む。それらの各イメージは対応する
データ転送に関するステータス情報を記憶する。データ
・ブロック転送に関するステータス情報はホスト処理サ
イドに通知される。ホスト処理装置は、システム初期設
定時に、ステータス待ち行列パラメータを定義するステ
ータス待ち行列レジスタ・セット431を設定する。そ
のステータス待ち行列パラメータは、ホスト・メモリに
おけるステータス待ち行列メモリ部分のロケーション、
及びステータス待ち行列イメージが記憶されるべき場所
及びステータス待ち行列イメージが検索されるべき場所
を指すポインタ値を含む。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータ・シ
ステムの分野に関するものであり、更に詳しく云えば、
2つの処理装置相互間のデータ・ブロックの転送に関連
したステータス情報の処理に関するものである。
ステムの分野に関するものであり、更に詳しく云えば、
2つの処理装置相互間のデータ・ブロックの転送に関連
したステータス情報の処理に関するものである。
【0002】
【従来の技術】今日の社会におけるパーソナル・コンピ
ュータの広範囲の普及によって、そのシステムの種々な
コンポーネント相互間で大きなデータ・ブロックを高い
信頼性をもって転送することが常に必要である。ネット
ワーク化されたパーソナル・コンピュータ(PC)は、
相互に大きなデータ・ブロックを受信及び送信すること
をいつも必要としている。更に、大きなデータ・ブロッ
クを転送する必要性は、益々人気のあるクライアント/
サーバ情報処理環境において特に重要である。そのよう
な環境では、複数のクライアント・ワークステーション
がネットワーク化され、そして1つ又は複数のサーバ・
システムに結合され、従って、クライアント・ステーシ
ョンがファイル、プリンタ、及びアプリケーションのよ
うなシステム資源を共用することを可能にする。その結
果、サーバ・システムは、非常に大きいデータ・ブロッ
クを記憶装置からクライアント・ステーションに転送す
る必要が頻繁に生じる。データの保全性を保証するため
に、データ・ブロック転送の終了時に、転送エラー状態
がある場合にそれを表すステータス信号を発生すること
が通例である。
ュータの広範囲の普及によって、そのシステムの種々な
コンポーネント相互間で大きなデータ・ブロックを高い
信頼性をもって転送することが常に必要である。ネット
ワーク化されたパーソナル・コンピュータ(PC)は、
相互に大きなデータ・ブロックを受信及び送信すること
をいつも必要としている。更に、大きなデータ・ブロッ
クを転送する必要性は、益々人気のあるクライアント/
サーバ情報処理環境において特に重要である。そのよう
な環境では、複数のクライアント・ワークステーション
がネットワーク化され、そして1つ又は複数のサーバ・
システムに結合され、従って、クライアント・ステーシ
ョンがファイル、プリンタ、及びアプリケーションのよ
うなシステム資源を共用することを可能にする。その結
果、サーバ・システムは、非常に大きいデータ・ブロッ
クを記憶装置からクライアント・ステーションに転送す
る必要が頻繁に生じる。データの保全性を保証するため
に、データ・ブロック転送の終了時に、転送エラー状態
がある場合にそれを表すステータス信号を発生すること
が通例である。
【0003】一般的には、1つのシステムから他のシス
テムへのデータ転送は、入出力(I/O)拡張バスを通
してホスト・システム装置に結合されたローカル・イン
ターフェース・コントローラを介して処理される。その
インターフェース・コントローラは、小型コンピュータ
・システム・インターフェース(SCSI)コントロー
ラのような記憶装置インターフェース、或いは、イーサ
ネット又はトークン・リング・ローカル・エリア・ネッ
トワーク(LAN)コントローラのような通信インター
フェースでもよい。或I/O拡張バス・プロトコルは、
インターフェース・コントローラがバスの制御を取るこ
と及びホスト装置との間でデータを転送することを可能
にする。そのようなインターフェース・コントローラは
バス・マスタとして知られており、バス・マスタリング
・プロトコルをサポートするI/Oバスを操作する。バ
ス・マスタリング・プロトコルをサポートする2つの例
示的I/O拡張バスは、周辺コンポーネント相互接続
(PCI)バス及びマイクロチャネルI/Oバスであ
る。
テムへのデータ転送は、入出力(I/O)拡張バスを通
してホスト・システム装置に結合されたローカル・イン
ターフェース・コントローラを介して処理される。その
インターフェース・コントローラは、小型コンピュータ
・システム・インターフェース(SCSI)コントロー
ラのような記憶装置インターフェース、或いは、イーサ
ネット又はトークン・リング・ローカル・エリア・ネッ
トワーク(LAN)コントローラのような通信インター
フェースでもよい。或I/O拡張バス・プロトコルは、
インターフェース・コントローラがバスの制御を取るこ
と及びホスト装置との間でデータを転送することを可能
にする。そのようなインターフェース・コントローラは
バス・マスタとして知られており、バス・マスタリング
・プロトコルをサポートするI/Oバスを操作する。バ
ス・マスタリング・プロトコルをサポートする2つの例
示的I/O拡張バスは、周辺コンポーネント相互接続
(PCI)バス及びマイクロチャネルI/Oバスであ
る。
【0004】メモリ装置との間でデータを効率的に転送
するための種々の技法が長年にわたって考案されてき
た。連続したデータの大きなブロックをダイレクト・ア
クセス記憶装置(DASD)からシステム・メモリに、
又はその逆に転送するために、ダイレクト・メモリ・ア
クセス(DMA)技法が広範囲で使用されている。DM
A機能を持ったコンピュータ・システムでは、CPU
は、開始アドレス及びブロック・カウントをDMAコン
トローラに送るだけで、大量のデータを転送することに
関連したオーバヘッドから開放される。システムCPU
は、指定されたDMA転送を行うように開始アドレス及
びバイト・カウントでもってDMAコントローラを簡単
にプログラムする。ステート・マシーンとして実施可能
なDMAコントローラは、CPUによって送られた開始
アドレス情報及びブロック・カウントを受け取り、それ
を内部レジスタに記憶する。しかる後、CPUによって
信号されたデータの転送方向に従って、DMAコントロ
ーラはシステム・メモリとローカル・インターフェース
・コントローラの間でI/O拡張バスを介してデータを
直列的に転送する。各データ転送の終了時に、DMAコ
ントローラは、DMA転送中に何らかの転送エラー状態
が生じたかどうかを表すステータス信号の他に、そのデ
ータ転送の終了をCPUに知らせる信号を発生する。転
送エラー状態及び制御ソフトウエアに従って、CPUは
DMAサイクルを再試行することが可能である。
するための種々の技法が長年にわたって考案されてき
た。連続したデータの大きなブロックをダイレクト・ア
クセス記憶装置(DASD)からシステム・メモリに、
又はその逆に転送するために、ダイレクト・メモリ・ア
クセス(DMA)技法が広範囲で使用されている。DM
A機能を持ったコンピュータ・システムでは、CPU
は、開始アドレス及びブロック・カウントをDMAコン
トローラに送るだけで、大量のデータを転送することに
関連したオーバヘッドから開放される。システムCPU
は、指定されたDMA転送を行うように開始アドレス及
びバイト・カウントでもってDMAコントローラを簡単
にプログラムする。ステート・マシーンとして実施可能
なDMAコントローラは、CPUによって送られた開始
アドレス情報及びブロック・カウントを受け取り、それ
を内部レジスタに記憶する。しかる後、CPUによって
信号されたデータの転送方向に従って、DMAコントロ
ーラはシステム・メモリとローカル・インターフェース
・コントローラの間でI/O拡張バスを介してデータを
直列的に転送する。各データ転送の終了時に、DMAコ
ントローラは、DMA転送中に何らかの転送エラー状態
が生じたかどうかを表すステータス信号の他に、そのデ
ータ転送の終了をCPUに知らせる信号を発生する。転
送エラー状態及び制御ソフトウエアに従って、CPUは
DMAサイクルを再試行することが可能である。
【0005】通常、コンピュータ・システムを制御する
或オペレーティング・システム(OS)は、結果として
非連続的なメモリ部分の発生を生じるようにシステム・
メモリを割振ることがよく知られている。従って、その
割振られたメモリ部分の間に、種々なサイズの割振りさ
れてないメモリ部分が生ずることがある。しかし、シス
テム・メモリに向けられた連続的データ・ブロックが1
つ又は複数のその割振りされてない部分に適合しない場
合がしばしばある。従って、オペレーティング・システ
ムは、そのような大きいデータ・ブロックを収容するよ
うに連続したメモリ領域を割振ることを強いられる。そ
のため、システム・メモリの一部分は割振りされずに残
り、その結果、システム・メモリの非効率的な使用を生
じることがある。
或オペレーティング・システム(OS)は、結果として
非連続的なメモリ部分の発生を生じるようにシステム・
メモリを割振ることがよく知られている。従って、その
割振られたメモリ部分の間に、種々なサイズの割振りさ
れてないメモリ部分が生ずることがある。しかし、シス
テム・メモリに向けられた連続的データ・ブロックが1
つ又は複数のその割振りされてない部分に適合しない場
合がしばしばある。従って、オペレーティング・システ
ムは、そのような大きいデータ・ブロックを収容するよ
うに連続したメモリ領域を割振ることを強いられる。そ
のため、システム・メモリの一部分は割振りされずに残
り、その結果、システム・メモリの非効率的な使用を生
じることがある。
【0006】この問題を克服するために、コンピュータ
・システムは、連続したデータ・ブロックが非連続的な
メモリ部分に適合するように細分される(即ち、分散さ
れる)分散/収集オペレーションとして知られたデータ
転送技法を利用してきた。システム読取オペレーション
時に、連続したデータ・ブロックはシステム・メモリの
非連続の部分に分散される。逆に、書込オペレーション
時には、分散したデータ・ブロックが非連続のメモリ部
分から収集され、連続したデータ・ブロックを作成する
ように整えられる。分散したメモリ部分を追跡するため
に、分散/収集リスト(SGL)がシステム・メモリに
記憶される。SGLは、その分けられたメモリ部分の開
始アドレス及びバイト・カウントを含み、従って、それ
らのバイトは、データ・ブロックが何処に分散されるべ
きか或いはそれらが何処から収集されるべきかを追跡す
る。分散/収集機能を持ったシステムでは、ステート・
マシンのようなDMAは、各データ・ブロックに対する
そのSGLにより表された開始アドレス及びバイト・カ
ウント情報を受け取り、対応するデータ転送を行う。そ
の分散/収集オペレーションに関連した各データ・ブロ
ックの完成時に、CPUはデータ・ブロック転送の終
了、或いはエラー転送状態がある場合にはその状態のス
テータスを知らされる。
・システムは、連続したデータ・ブロックが非連続的な
メモリ部分に適合するように細分される(即ち、分散さ
れる)分散/収集オペレーションとして知られたデータ
転送技法を利用してきた。システム読取オペレーション
時に、連続したデータ・ブロックはシステム・メモリの
非連続の部分に分散される。逆に、書込オペレーション
時には、分散したデータ・ブロックが非連続のメモリ部
分から収集され、連続したデータ・ブロックを作成する
ように整えられる。分散したメモリ部分を追跡するため
に、分散/収集リスト(SGL)がシステム・メモリに
記憶される。SGLは、その分けられたメモリ部分の開
始アドレス及びバイト・カウントを含み、従って、それ
らのバイトは、データ・ブロックが何処に分散されるべ
きか或いはそれらが何処から収集されるべきかを追跡す
る。分散/収集機能を持ったシステムでは、ステート・
マシンのようなDMAは、各データ・ブロックに対する
そのSGLにより表された開始アドレス及びバイト・カ
ウント情報を受け取り、対応するデータ転送を行う。そ
の分散/収集オペレーションに関連した各データ・ブロ
ックの完成時に、CPUはデータ・ブロック転送の終
了、或いはエラー転送状態がある場合にはその状態のス
テータスを知らされる。
【0007】
【発明が解決しようとする課題】しかし、データ・ブロ
ック転送の終了後にCPUに割込を行うことはCPUの
パフォーマンスを損なうことがある。それは、CPU
が、データ・ブロック転送の終了後に発生される割込を
サービスするために、現在のタスクの遂行を停止させら
れるためである。この問題は、分散したデータ・ブロッ
クと多くの割込を関連付ける分散/収集オペレーション
を利用するシステムにおいては、大きなデータ・ブロッ
クを転送する時に特に深刻となる。従って、現在のシス
テムは、データ転送割込のサービスと関連したCPUオ
ーバヘッドを減少させるために、多くの割込マスク技法
の1つを利用している。更に、或システムは、データ・
ブロックのデータ転送ステータス情報を待ち行列化し
て、CPUがデータ・ブロック転送のサービスを適当に
タイミング制御するためにデータ転送待ち行列機構を利
用している。そのような方法の1つは、「分散共用メモ
リを有するパイプ・インターフェースを持った自己記述
制御エレメントを非同期的に分配するためのシステム
(System for asynchronously delivering self-descri
bing control elements with a pipe interface having
distributed shared memory)」と題した1994年6
月28日発行の米国特許第5,325,492号に開示さ
れている。
ック転送の終了後にCPUに割込を行うことはCPUの
パフォーマンスを損なうことがある。それは、CPU
が、データ・ブロック転送の終了後に発生される割込を
サービスするために、現在のタスクの遂行を停止させら
れるためである。この問題は、分散したデータ・ブロッ
クと多くの割込を関連付ける分散/収集オペレーション
を利用するシステムにおいては、大きなデータ・ブロッ
クを転送する時に特に深刻となる。従って、現在のシス
テムは、データ転送割込のサービスと関連したCPUオ
ーバヘッドを減少させるために、多くの割込マスク技法
の1つを利用している。更に、或システムは、データ・
ブロックのデータ転送ステータス情報を待ち行列化し
て、CPUがデータ・ブロック転送のサービスを適当に
タイミング制御するためにデータ転送待ち行列機構を利
用している。そのような方法の1つは、「分散共用メモ
リを有するパイプ・インターフェースを持った自己記述
制御エレメントを非同期的に分配するためのシステム
(System for asynchronously delivering self-descri
bing control elements with a pipe interface having
distributed shared memory)」と題した1994年6
月28日発行の米国特許第5,325,492号に開示さ
れている。
【0008】しかし、ローカル・マスタリングを行うこ
とができるローカル・インターフェース・コントローラ
の出現によって、ホスト処理サイドとローカル処理サイ
ドとの間のデータ転送スループットを高めるためには、
ローカル処理サイドにおけるデータ転送ステータス・オ
ーバヘッドを減少させる必要がある。
とができるローカル・インターフェース・コントローラ
の出現によって、ホスト処理サイドとローカル処理サイ
ドとの間のデータ転送スループットを高めるためには、
ローカル処理サイドにおけるデータ転送ステータス・オ
ーバヘッドを減少させる必要がある。
【0009】
【課題を解決するための手段】本発明によれば、ホスト
処理サイドとローカル処理サイドとの間のデータ・ブロ
ック転送を処理することができる情報処理システムは、
ホスト処理サイドにおいてホスト処理装置及びそのホス
ト処理装置によってアクセス可能なホスト・メモリを含
み、ローカル処理サイドにおいてローカル処理装置及び
ローカル・メモリを含む。すべてのデータ・ブロック転
送の開始前に、ホスト処理装置は、ステータス待ち行列
メモリ部分を定義する一組の事前定義された情報をステ
ータス待ち行列レジスタに記憶する。好ましくは、ホス
ト・メモリにおけるアドレスに置かれたステータス待ち
行列メモリ部分は複数のステータス待ち行列イメージを
含む。各ステータス待ち行列イメージは、対応するデー
タ・ブロック転送に関するステータス情報を記憶する。
ホスト処理装置は、初期設定時に、その後のステータス
待ち行列イメージが何処に記憶されるべきか及びその後
のステータス・イメージが何処から検索されるべきかを
表すそのステータス待ち行列メモリ部分内のアドレスを
指す適当なポインタ値をセットする。好ましくは、その
ステータス・レジスタ・セットはローカル処理サイドに
置かれる。ステータス転送コントローラは、ローカル処
理装置の介入なしに、ステータス待ち行列レジスタ・セ
ットに応答して、ステータス待ち行列イメージをステー
タス待ち行列部分に転送するためのものである。従っ
て、ローカル処理装置は、各データ・ブロックの終了後
にステータス情報を送信することに関するオーバヘッド
を軽減する。
処理サイドとローカル処理サイドとの間のデータ・ブロ
ック転送を処理することができる情報処理システムは、
ホスト処理サイドにおいてホスト処理装置及びそのホス
ト処理装置によってアクセス可能なホスト・メモリを含
み、ローカル処理サイドにおいてローカル処理装置及び
ローカル・メモリを含む。すべてのデータ・ブロック転
送の開始前に、ホスト処理装置は、ステータス待ち行列
メモリ部分を定義する一組の事前定義された情報をステ
ータス待ち行列レジスタに記憶する。好ましくは、ホス
ト・メモリにおけるアドレスに置かれたステータス待ち
行列メモリ部分は複数のステータス待ち行列イメージを
含む。各ステータス待ち行列イメージは、対応するデー
タ・ブロック転送に関するステータス情報を記憶する。
ホスト処理装置は、初期設定時に、その後のステータス
待ち行列イメージが何処に記憶されるべきか及びその後
のステータス・イメージが何処から検索されるべきかを
表すそのステータス待ち行列メモリ部分内のアドレスを
指す適当なポインタ値をセットする。好ましくは、その
ステータス・レジスタ・セットはローカル処理サイドに
置かれる。ステータス転送コントローラは、ローカル処
理装置の介入なしに、ステータス待ち行列レジスタ・セ
ットに応答して、ステータス待ち行列イメージをステー
タス待ち行列部分に転送するためのものである。従っ
て、ローカル処理装置は、各データ・ブロックの終了後
にステータス情報を送信することに関するオーバヘッド
を軽減する。
【0010】
【発明の実施の形態】図1を参照すると、本発明を組み
込んだ例示的なコンピュータ・システム100のブロッ
ク図が示される。コンピュータ・システム100は、I
BMパーソナル・コンピュータ又はそれと互換性のある
システムのようなパーソナル・コンピュータ・システム
より成るものでよい。コンピュータ・システム100
は、スタンドアローン・ワークステーションとして動作
するものでよく、或いはクライアント・ステーション又
はサーバ・ステーションとして動作する大きなコンピュ
ータ・ネットワークの一部分であってもよい。
込んだ例示的なコンピュータ・システム100のブロッ
ク図が示される。コンピュータ・システム100は、I
BMパーソナル・コンピュータ又はそれと互換性のある
システムのようなパーソナル・コンピュータ・システム
より成るものでよい。コンピュータ・システム100
は、スタンドアローン・ワークステーションとして動作
するものでよく、或いはクライアント・ステーション又
はサーバ・ステーションとして動作する大きなコンピュ
ータ・ネットワークの一部分であってもよい。
【0011】コンピュータ・システム100は、2つの
処理サイド、即ち、オペレーティング・システム及びア
プリケーションによって指定されるような高レベルの処
理機能を遂行するホスト処理サイド110、及びコンピ
ュータ・システム100に対する記憶媒体インターフェ
ース又は通信インターフェースを与えるような周辺機能
を遂行するローカル処理サイド120より成る。ホスト
処理サイド110及びローカル処理サイド120は入出
力(I/O)拡張バス130を介して相互に結合され
る。I/O拡張バス130は多くの適当なI/O拡張バ
ス・プロトコルの1つとコンプライアントである。それ
らのプロトコルは、ローカル・インターフェース・コン
トローラが、I/O拡張バス130を介してデータ・ブ
ロックを転送するというような指定された機能を遂行す
るためにバスの制御を取ることを可能にする。そのよう
なバス・プロトコルの例は、PCI又はマイクロチャネ
ル仕様によって定義されたものを含む。
処理サイド、即ち、オペレーティング・システム及びア
プリケーションによって指定されるような高レベルの処
理機能を遂行するホスト処理サイド110、及びコンピ
ュータ・システム100に対する記憶媒体インターフェ
ース又は通信インターフェースを与えるような周辺機能
を遂行するローカル処理サイド120より成る。ホスト
処理サイド110及びローカル処理サイド120は入出
力(I/O)拡張バス130を介して相互に結合され
る。I/O拡張バス130は多くの適当なI/O拡張バ
ス・プロトコルの1つとコンプライアントである。それ
らのプロトコルは、ローカル・インターフェース・コン
トローラが、I/O拡張バス130を介してデータ・ブ
ロックを転送するというような指定された機能を遂行す
るためにバスの制御を取ることを可能にする。そのよう
なバス・プロトコルの例は、PCI又はマイクロチャネ
ル仕様によって定義されたものを含む。
【0012】ホスト処理サイド110は、そのコンピュ
ータ・システム100の機能全体を制御するための単一
のホスト処理装置103、又はマルチ処理システムにお
いては、複数のホスト処理装置を含む。ホスト処理装置
103は、インテル社によって提供されるPentiu
m(商標)プロセッサ、或いはIBM社によって提供さ
れるPowerPC(商標)プロセッサのような多くの
商業的に入手可能なホスト処理装置の1つであってもよ
い。よく知られているように、ホスト処理装置103
は、先ず、読取専用メモリ(ROM)101に記憶され
たファームウエア命令を実行することによって動作す
る。基本入出力システム、即ち,BIOSとして知られ
たファームウエア命令は、接続された装置を検出するた
めの命令及び電源入力自己検査(POST)のための命
令を含む。一般には、ファームウエア命令の終了時に、
ホスト処理装置103は、ローカル・サイドの記憶装置
114からホスト・メモリ(システム・メモリ)107
にOSをロードすることによってオペレーティング・シ
ステム命令を実行する。ホスト処理装置103、ROM
101、及びホスト・メモリ107の間のデータの転送
はメモリ・コントローラ109によって制御される。
ータ・システム100の機能全体を制御するための単一
のホスト処理装置103、又はマルチ処理システムにお
いては、複数のホスト処理装置を含む。ホスト処理装置
103は、インテル社によって提供されるPentiu
m(商標)プロセッサ、或いはIBM社によって提供さ
れるPowerPC(商標)プロセッサのような多くの
商業的に入手可能なホスト処理装置の1つであってもよ
い。よく知られているように、ホスト処理装置103
は、先ず、読取専用メモリ(ROM)101に記憶され
たファームウエア命令を実行することによって動作す
る。基本入出力システム、即ち,BIOSとして知られ
たファームウエア命令は、接続された装置を検出するた
めの命令及び電源入力自己検査(POST)のための命
令を含む。一般には、ファームウエア命令の終了時に、
ホスト処理装置103は、ローカル・サイドの記憶装置
114からホスト・メモリ(システム・メモリ)107
にOSをロードすることによってオペレーティング・シ
ステム命令を実行する。ホスト処理装置103、ROM
101、及びホスト・メモリ107の間のデータの転送
はメモリ・コントローラ109によって制御される。
【0013】一方、ホスト処理サイド110及びI/O
拡張バス130の間のデータの転送はI/Oブリッジ・
インターフェース111によって制御される。プロセッ
サ・パフォーマンスを高めるために、ホスト処理装置1
03は、最も最近使用されたデータ及び命令を記憶する
ための内部キャッシュ・メモリ(レベル1, L1)10
4又は外部キャッシュ・メモリ(レベル2, L2)10
5を含み、従って、システム・メモリ・サイクルを最小
にする。それらのキャッシュ・メモリは、一般に、ホス
ト処理装置103に近接して位置づけられた高速度の静
的ランダム・アクセス・メモリ(SRAM)を含む。L
2キャッシュ・メモリへの及びL2キャッシュ・メモリ
からのデータ転送は周知のキャッシュ・コントローラ1
06によって制御される。I/Oブリッジ・インターフ
ェース111は、メモリ・コントローラ109と、外部
キャッシュ・コントローラ106を介したホスト処理装
置103と、I/O拡張バス130との間をインターフ
ェースするように設計される。ホスト処理装置103は
適当なI/Oブリッジ・インターフェース111を介し
てI/O拡張バス130とインターフェースし、従っ
て、ローカル処理サイド120とインターフェースす
る。
拡張バス130の間のデータの転送はI/Oブリッジ・
インターフェース111によって制御される。プロセッ
サ・パフォーマンスを高めるために、ホスト処理装置1
03は、最も最近使用されたデータ及び命令を記憶する
ための内部キャッシュ・メモリ(レベル1, L1)10
4又は外部キャッシュ・メモリ(レベル2, L2)10
5を含み、従って、システム・メモリ・サイクルを最小
にする。それらのキャッシュ・メモリは、一般に、ホス
ト処理装置103に近接して位置づけられた高速度の静
的ランダム・アクセス・メモリ(SRAM)を含む。L
2キャッシュ・メモリへの及びL2キャッシュ・メモリ
からのデータ転送は周知のキャッシュ・コントローラ1
06によって制御される。I/Oブリッジ・インターフ
ェース111は、メモリ・コントローラ109と、外部
キャッシュ・コントローラ106を介したホスト処理装
置103と、I/O拡張バス130との間をインターフ
ェースするように設計される。ホスト処理装置103は
適当なI/Oブリッジ・インターフェース111を介し
てI/O拡張バス130とインターフェースし、従っ
て、ローカル処理サイド120とインターフェースす
る。
【0014】詳しく後述するように、記憶装置114は
ローカル処理サイド120のローカル・インターフェー
ス・コントローラ113を介してI/O拡張バス130
とインターフェースする。当業者には明らかなように、
図示のホスト処理サイド110は単なる例示的なもので
あり、アプリケーションに従って、ホスト処理サイド1
10の機能的要件を実現するように種々のシステム・ア
ーキテクチャが設計可能である。
ローカル処理サイド120のローカル・インターフェー
ス・コントローラ113を介してI/O拡張バス130
とインターフェースする。当業者には明らかなように、
図示のホスト処理サイド110は単なる例示的なもので
あり、アプリケーションに従って、ホスト処理サイド1
10の機能的要件を実現するように種々のシステム・ア
ーキテクチャが設計可能である。
【0015】ローカル処理サイド120において、コン
ピュータ・システム100は、種々の周辺装置115に
結合された小型コンピュータ・システム・インターフェ
ース(SCSI)コントローラのような複数のローカル
・インターフェース・コントローラ113を含むもので
よい。更に、記憶装置、通信装置、印刷装置、ネットワ
ーク装置、イメージ装置等がシステム機能性及びフィー
チャを補足するために追加可能である。例えば、コンピ
ュータ・システム100は、記憶装置として低価格ドラ
イブの冗長配列(RAID)を持った高速広範囲のSC
SIローカル・インターフェース・コントローラを有す
るサーバ・ステーションとして利用可能である。
ピュータ・システム100は、種々の周辺装置115に
結合された小型コンピュータ・システム・インターフェ
ース(SCSI)コントローラのような複数のローカル
・インターフェース・コントローラ113を含むもので
よい。更に、記憶装置、通信装置、印刷装置、ネットワ
ーク装置、イメージ装置等がシステム機能性及びフィー
チャを補足するために追加可能である。例えば、コンピ
ュータ・システム100は、記憶装置として低価格ドラ
イブの冗長配列(RAID)を持った高速広範囲のSC
SIローカル・インターフェース・コントローラを有す
るサーバ・ステーションとして利用可能である。
【0016】図2を参照すると、ローカル処理サイド1
20のインターフェース・コントローラ113の更に詳
細なブロック図が示され、それは、I/O拡張バス13
0を制御するためのバス・マスタとして作用するための
機能を含むローカル処理サイドの周辺機能全体を制御す
るためのローカル処理装置201を含む。ローカル処理
装置201は、前述のPowerPC403のような種
々の商業的に入手可能なプロセッサより成る。ホスト処
理サイド110と同様に、ローカル処理装置201はロ
ーカルROM205に記憶されたファームウエア命令を
実行する。ローカル・インターフェース・コントローラ
113は、ローカル・プロセッサ・インターフェース・
ブリッジ207を介してローカル処理装置201を種々
のローカル処理サイドのエレメントとインターフェース
するためのローカル・バス211を含む。好ましくは、
ローカル・バス211はPCIバスである。又、ローカ
ル・バス211には、ローカル・メモリ203への及び
ローカル・メモリ203からのデータの転送を制御する
ためのローカル・メモリ・コントローラ213が結合さ
れる。
20のインターフェース・コントローラ113の更に詳
細なブロック図が示され、それは、I/O拡張バス13
0を制御するためのバス・マスタとして作用するための
機能を含むローカル処理サイドの周辺機能全体を制御す
るためのローカル処理装置201を含む。ローカル処理
装置201は、前述のPowerPC403のような種
々の商業的に入手可能なプロセッサより成る。ホスト処
理サイド110と同様に、ローカル処理装置201はロ
ーカルROM205に記憶されたファームウエア命令を
実行する。ローカル・インターフェース・コントローラ
113は、ローカル・プロセッサ・インターフェース・
ブリッジ207を介してローカル処理装置201を種々
のローカル処理サイドのエレメントとインターフェース
するためのローカル・バス211を含む。好ましくは、
ローカル・バス211はPCIバスである。又、ローカ
ル・バス211には、ローカル・メモリ203への及び
ローカル・メモリ203からのデータの転送を制御する
ためのローカル・メモリ・コントローラ213が結合さ
れる。
【0017】ローカル・バス211の反対側には、ロー
カル・バス211及び装置バス231(例えば、SCS
Iバス)の間に周知の装置インターフェース・ブリッジ
217が結合される。ローカル・インターフェース・コ
ントローラ113は、装置インターフェース・ブリッジ
217を介してSCSI記憶装置のようなローカル装置
115をインターフェースする。本発明の好適な実施例
では、ローカル装置115は、ローカル処理サイド12
0によって大きいデータ・ブロックを転送することがで
きるRAID記憶装置アレイより成る多数の装置の1つ
である。データ転送コントローラ・ブリッジ209は、
本発明によれば、ホスト処理サイド110及びローカル
処理サイド120の間のデータの分散/収集転送を制御
する他に、ローカル・バス211をI/O拡張バス13
0にインターフェースする。
カル・バス211及び装置バス231(例えば、SCS
Iバス)の間に周知の装置インターフェース・ブリッジ
217が結合される。ローカル・インターフェース・コ
ントローラ113は、装置インターフェース・ブリッジ
217を介してSCSI記憶装置のようなローカル装置
115をインターフェースする。本発明の好適な実施例
では、ローカル装置115は、ローカル処理サイド12
0によって大きいデータ・ブロックを転送することがで
きるRAID記憶装置アレイより成る多数の装置の1つ
である。データ転送コントローラ・ブリッジ209は、
本発明によれば、ホスト処理サイド110及びローカル
処理サイド120の間のデータの分散/収集転送を制御
する他に、ローカル・バス211をI/O拡張バス13
0にインターフェースする。
【0018】本発明の好適な実施例は2つの異なるデー
タ転送モード、即ち、単一ブロック・データ転送モード
及び分散/収集(scatter/gather)データ転送モードで
データ・ブロックを転送することができる。単一ブロッ
ク・データ転送モードでは、メモリ領域におけるロケー
ションを指定する情報によって識別される1つのデータ
・ブロックだけが転送される。分散/収集データ転送モ
ードでは、メモリ領域内に分散され且つロケーション及
びサイズを指定する一組の情報によって識別される複数
のデータ・ブロックが転送される。
タ転送モード、即ち、単一ブロック・データ転送モード
及び分散/収集(scatter/gather)データ転送モードで
データ・ブロックを転送することができる。単一ブロッ
ク・データ転送モードでは、メモリ領域におけるロケー
ションを指定する情報によって識別される1つのデータ
・ブロックだけが転送される。分散/収集データ転送モ
ードでは、メモリ領域内に分散され且つロケーション及
びサイズを指定する一組の情報によって識別される複数
のデータ・ブロックが転送される。
【0019】本発明によれば、ホスト処理装置103
は、すべてのデータ・ブロック転送の前に、好ましく
は、初期設定時に、ステータス待ち行列メモリ部分を定
義する一組の情報をステータス待ち行列レジスタ・セッ
トに記憶する。好ましくは、ホスト・メモリ107にお
けるアドレスで位置指定されるステータス待ち行列メモ
リ部分は複数のステータス情報イメージを含む。そのス
テータス情報イメージは、対応するデータ・ブロック転
送コマンドに関連するステータス情報を記憶する。又、
ホスト処理装置は、初期設定時に、その後のステータス
・イメージが何処に記憶されるべきか及びその後のステ
ータス・イメージが何処から検索されるべきかを表すア
ドレスを指す適当なポインタ値をステータス待ち行列部
分内にセットする。好ましくは、ステータス・レジスタ
・セットがローカル処理サイド120内に設置され、ス
テータス転送コントローラがこのレジスタ・セットに応
答して、ローカル処理装置の介入なしに、ステータス情
報イメージをホスト処理サイド110におけるステータ
ス待ち行列メモリ部分に転送する。従って、ローカル処
理装置201は、各データ・ブロックの終了後、ステー
タス情報の送信と関連したオーバヘッドから開放され
る。
は、すべてのデータ・ブロック転送の前に、好ましく
は、初期設定時に、ステータス待ち行列メモリ部分を定
義する一組の情報をステータス待ち行列レジスタ・セッ
トに記憶する。好ましくは、ホスト・メモリ107にお
けるアドレスで位置指定されるステータス待ち行列メモ
リ部分は複数のステータス情報イメージを含む。そのス
テータス情報イメージは、対応するデータ・ブロック転
送コマンドに関連するステータス情報を記憶する。又、
ホスト処理装置は、初期設定時に、その後のステータス
・イメージが何処に記憶されるべきか及びその後のステ
ータス・イメージが何処から検索されるべきかを表すア
ドレスを指す適当なポインタ値をステータス待ち行列部
分内にセットする。好ましくは、ステータス・レジスタ
・セットがローカル処理サイド120内に設置され、ス
テータス転送コントローラがこのレジスタ・セットに応
答して、ローカル処理装置の介入なしに、ステータス情
報イメージをホスト処理サイド110におけるステータ
ス待ち行列メモリ部分に転送する。従って、ローカル処
理装置201は、各データ・ブロックの終了後、ステー
タス情報の送信と関連したオーバヘッドから開放され
る。
【0020】前述のように、本発明のシステムは単一ブ
ロック・データ転送モード或いは両サイドの分散/収集
データ転送モードで動作することができる。単一ブロッ
ク・データ転送モードでは、ステータス転送コントロー
ラは、各単一ブロックのデータ転送の終了後にステータ
ス待ち行列イメージを転送する。一方、分散/収集デー
タ転送モードでは、分散/収集オペレーションに関連し
たすべての分散したデータ・ブロックの終了時に、ステ
ータス・イメージが転送される。
ロック・データ転送モード或いは両サイドの分散/収集
データ転送モードで動作することができる。単一ブロッ
ク・データ転送モードでは、ステータス転送コントロー
ラは、各単一ブロックのデータ転送の終了後にステータ
ス待ち行列イメージを転送する。一方、分散/収集デー
タ転送モードでは、分散/収集オペレーションに関連し
たすべての分散したデータ・ブロックの終了時に、ステ
ータス・イメージが転送される。
【0021】両サイドの分散/収集データ転送モードを
サポートするために、ローカル処理サイド120及びホ
スト処理サイド110の各々は、両サイドにおいて収集
及び分散オペレーションを同時に行うことを可能にする
アクティブな分散/収集リストを維持する。好適な実施
例では、ローカル分散/収集リスト及びホスト分散/収
集リストは、それぞれ、ローカル・メモリ及びホスト・
メモリに記憶される。各データ・ブロック転送時に、一
方の処理サイドにおいて収集されたデータは他方の処理
サイドにおいて同時に分散される。各サイドにおける分
散/収集オペレーションは対応する分散/収集リストに
従って遂行される。従って、本発明のコンピュータ・シ
ステムは、そのデータ転送に関連した各ホスト・メモリ
部分のアドレスを表す第1セットの情報を記憶する。同
様に、第2セットの情報がそのデータ転送に関連した各
ローカル・メモリ部分のアドレスを表す。好適な実施例
では、その第1セット及び第2セットの情報は、それぞ
れ、ローカル・メモリ203及びホスト・メモリ107
において位置指定されたホスト・メモリ部分及びローカ
ル・メモリ部分の開始アドレス及びそれぞれのサイズを
含む。
サポートするために、ローカル処理サイド120及びホ
スト処理サイド110の各々は、両サイドにおいて収集
及び分散オペレーションを同時に行うことを可能にする
アクティブな分散/収集リストを維持する。好適な実施
例では、ローカル分散/収集リスト及びホスト分散/収
集リストは、それぞれ、ローカル・メモリ及びホスト・
メモリに記憶される。各データ・ブロック転送時に、一
方の処理サイドにおいて収集されたデータは他方の処理
サイドにおいて同時に分散される。各サイドにおける分
散/収集オペレーションは対応する分散/収集リストに
従って遂行される。従って、本発明のコンピュータ・シ
ステムは、そのデータ転送に関連した各ホスト・メモリ
部分のアドレスを表す第1セットの情報を記憶する。同
様に、第2セットの情報がそのデータ転送に関連した各
ローカル・メモリ部分のアドレスを表す。好適な実施例
では、その第1セット及び第2セットの情報は、それぞ
れ、ローカル・メモリ203及びホスト・メモリ107
において位置指定されたホスト・メモリ部分及びローカ
ル・メモリ部分の開始アドレス及びそれぞれのサイズを
含む。
【0022】両サイドにおける分散/収集オペレーショ
ンと関連するブロック転送時に、一方のサイドにおいて
収集されるデータの量が他方のサイドにおいて分散され
るデータの量に等しくなるように、ホスト及びローカル
分散/収集リストが作成されることに留意して欲しい。
従って、大きなデータ・ブロック転送の開始時に、その
送信する処理サイド、即ち、ホスト及びローカル処理サ
イド110又は120がそのデータ・ブロックのサイズ
を他方のサイドに知らせる。ローカル処理サイドでは、
対応するファームウエア・コードを実行するローカル処
理装置201は、その転送に関連したデータ・ブロック
のサイズに対応するようにローカル分散/収集リストを
作成する。ホスト処理サイド110では、ローカル・イ
ンターフェース装置の装置ドライバ・コードがホスト分
散/収集リストを作成するために実行される。ローカル
及びホスト分散/収集リストに対する記憶領域が前述の
領域に限定されないことに留意して欲しい。ローカル及
びホスト分散/収集リストは、ローカル・メモリ、ホス
ト・メモリ、又は独立したメモリ・システムに含まれた
同じメモリ領域に記憶可能である。
ンと関連するブロック転送時に、一方のサイドにおいて
収集されるデータの量が他方のサイドにおいて分散され
るデータの量に等しくなるように、ホスト及びローカル
分散/収集リストが作成されることに留意して欲しい。
従って、大きなデータ・ブロック転送の開始時に、その
送信する処理サイド、即ち、ホスト及びローカル処理サ
イド110又は120がそのデータ・ブロックのサイズ
を他方のサイドに知らせる。ローカル処理サイドでは、
対応するファームウエア・コードを実行するローカル処
理装置201は、その転送に関連したデータ・ブロック
のサイズに対応するようにローカル分散/収集リストを
作成する。ホスト処理サイド110では、ローカル・イ
ンターフェース装置の装置ドライバ・コードがホスト分
散/収集リストを作成するために実行される。ローカル
及びホスト分散/収集リストに対する記憶領域が前述の
領域に限定されないことに留意して欲しい。ローカル及
びホスト分散/収集リストは、ローカル・メモリ、ホス
ト・メモリ、又は独立したメモリ・システムに含まれた
同じメモリ領域に記憶可能である。
【0023】図3を参照すると、その分散/収集オペレ
ーションを表す図が、ローカル処理サイド120及びホ
スト処理サイド110における分散/収集オペレーショ
ンの同時遂行を示す。ホスト処理サイド110では、ホ
スト・メモリ107はホスト分散/収集リスト部分30
1及び複数のデータ・ブロック部分307を含み、それ
らは、図示のように、ホスト・メモリ107内に分散さ
れ、従って、非連続のアドレス・ロケーションに設けら
れる。ホスト分散/収集リスト部分301は、特殊なデ
ータ・ブロック部分307を指す情報を含む事前定義さ
れた数のリスト・エレメント306を有する。各分散/
収集リスト・エレメントは2つのセクション、即ち、開
始アドレス・セクション308及び転送長セクション3
09に分けられる。
ーションを表す図が、ローカル処理サイド120及びホ
スト処理サイド110における分散/収集オペレーショ
ンの同時遂行を示す。ホスト処理サイド110では、ホ
スト・メモリ107はホスト分散/収集リスト部分30
1及び複数のデータ・ブロック部分307を含み、それ
らは、図示のように、ホスト・メモリ107内に分散さ
れ、従って、非連続のアドレス・ロケーションに設けら
れる。ホスト分散/収集リスト部分301は、特殊なデ
ータ・ブロック部分307を指す情報を含む事前定義さ
れた数のリスト・エレメント306を有する。各分散/
収集リスト・エレメントは2つのセクション、即ち、開
始アドレス・セクション308及び転送長セクション3
09に分けられる。
【0024】本発明の好適な実施例では、分散/収集リ
スト部分301は、2つの4バイト部分に細分された8
バイトのリスト・エレメントを含む。第1の4バイト
は、データ・ブロック・ロケーションの開始アドレスを
表すデータ・ブロック開始アドレス部分308より成
り、次の4バイトは対応するデータ・ブロックの長さを
表す転送長部分309より成る。矢印によって示される
ように、各分散/収集エレメント306は、開始アドレ
ス及びバイト・カウントを定義することによって特定の
データ・ブロックに対応する。ローカル処理サイド12
0では、同様に、ローカル・メモリ203がローカル分
散/収集リスト部分305及び非連続のデータ・ブロッ
ク部分327を含む。そのリスト部分305における分
散/収集エレメント326は対応するデータ・ブロック
327を指す。データ・ブロックを指す情報が、データ
・ブロックの開始アドレス及び終了アドレスのようなそ
のメモリにおける対応するデータ・ブロックのロケーシ
ョンを指定する種々の情報より成ることは明らかであろ
う。
スト部分301は、2つの4バイト部分に細分された8
バイトのリスト・エレメントを含む。第1の4バイト
は、データ・ブロック・ロケーションの開始アドレスを
表すデータ・ブロック開始アドレス部分308より成
り、次の4バイトは対応するデータ・ブロックの長さを
表す転送長部分309より成る。矢印によって示される
ように、各分散/収集エレメント306は、開始アドレ
ス及びバイト・カウントを定義することによって特定の
データ・ブロックに対応する。ローカル処理サイド12
0では、同様に、ローカル・メモリ203がローカル分
散/収集リスト部分305及び非連続のデータ・ブロッ
ク部分327を含む。そのリスト部分305における分
散/収集エレメント326は対応するデータ・ブロック
327を指す。データ・ブロックを指す情報が、データ
・ブロックの開始アドレス及び終了アドレスのようなそ
のメモリにおける対応するデータ・ブロックのロケーシ
ョンを指定する種々の情報より成ることは明らかであろ
う。
【0025】前述のように、好適な実施例では、各サイ
ドに対応する分散/収集リストが対応のホスト・メモリ
107及びローカル・メモリ203のメモリ部分に記憶
される。ホスト処理サイド110では、ホスト分散/収
集リストがローカル・インターフェース・コントローラ
113の装置ドライバによって発生される。一方、ロー
カル分散/収集リストは、ROM205に記憶されたフ
ァームウエアによって発生される。何れの処理サイド1
10又は120においても、分散/収集オペレーション
時に、1つのブロックの連続したデータが、対応する分
散/収集リストに従って分散される複数の小さいデータ
・ブロックに細分される。同様に、収集オペレーション
時に、分散されたデータ・ブロックが対応するサイドに
おけるアクティブな分散/収集リストに従って収集され
る。しかる後、その収集されたデータ・ブロックは、更
なる処理のために連続したデータ・ブロックを形成する
よう統合される。大きいデータ転送は、複数の分散/収
集リスト(その各々がデータ・ブロックの特定の小さい
分散/収集リストを定義する)と関連することに留意し
て欲しい。又、ローカル処理サイド及びホスト処理サイ
ドに対する分散/収集リストは、各サイドにおけるデー
タ・ブロックの合計サイズが互いに等しくなるように作
成される。
ドに対応する分散/収集リストが対応のホスト・メモリ
107及びローカル・メモリ203のメモリ部分に記憶
される。ホスト処理サイド110では、ホスト分散/収
集リストがローカル・インターフェース・コントローラ
113の装置ドライバによって発生される。一方、ロー
カル分散/収集リストは、ROM205に記憶されたフ
ァームウエアによって発生される。何れの処理サイド1
10又は120においても、分散/収集オペレーション
時に、1つのブロックの連続したデータが、対応する分
散/収集リストに従って分散される複数の小さいデータ
・ブロックに細分される。同様に、収集オペレーション
時に、分散されたデータ・ブロックが対応するサイドに
おけるアクティブな分散/収集リストに従って収集され
る。しかる後、その収集されたデータ・ブロックは、更
なる処理のために連続したデータ・ブロックを形成する
よう統合される。大きいデータ転送は、複数の分散/収
集リスト(その各々がデータ・ブロックの特定の小さい
分散/収集リストを定義する)と関連することに留意し
て欲しい。又、ローカル処理サイド及びホスト処理サイ
ドに対する分散/収集リストは、各サイドにおけるデー
タ・ブロックの合計サイズが互いに等しくなるように作
成される。
【0026】図4を参照すると、本発明の好適な実施例
を具体化するホスト処理サイド110及びローカル処理
サイド120の関連部分の更に詳細なブロック図が示さ
れる。ローカル処理サイド120では、データ転送コン
トローラ209は、I/O拡張バス130を介してホス
ト・メモリに及びホスト・メモリからデータ・ブロック
を転送するためのホストDMAステート・マシン422
を含む。又、そのデータ転送コントローラ209は、ロ
ーカル・メモリ・コントローラ213を介してローカル
・メモリ203に及びローカル・メモリ203からデー
タ・ブロックを転送するためのローカルDMAステート
・マシン424を含む。データ転送と関連したデータ・
ブロックを一時的に記憶するためにデータ転送コントロ
ーラ209にはDMAステート・マシン422及び42
4の間に結合された先入れ先出し(FIFO)バッファ
426が配置される。ホスト処理サイド110からロー
カル処理サイド120へのデータ転送時に、そのFIF
Oバッファ426は、ホストDMAステート・マシン4
22からの収集されたホスト・データを一時的に記憶
し、分散されるべきローカルDMAステート・マシン4
24にそのような一時的に記憶されたデータを与える。
逆に、ローカル処理サイド120からホスト処理サイド
110へのデータ転送時に、FIFOバッファ426
は、ローカルDMAステート・マシン424からの収集
されたローカル・データを受信し、そして一時的に記憶
し、ホスト処理サイド110上に分散させるためのその
ような一時的に記憶されたデータをホストDMAステー
ト・マシン422に与える。
を具体化するホスト処理サイド110及びローカル処理
サイド120の関連部分の更に詳細なブロック図が示さ
れる。ローカル処理サイド120では、データ転送コン
トローラ209は、I/O拡張バス130を介してホス
ト・メモリに及びホスト・メモリからデータ・ブロック
を転送するためのホストDMAステート・マシン422
を含む。又、そのデータ転送コントローラ209は、ロ
ーカル・メモリ・コントローラ213を介してローカル
・メモリ203に及びローカル・メモリ203からデー
タ・ブロックを転送するためのローカルDMAステート
・マシン424を含む。データ転送と関連したデータ・
ブロックを一時的に記憶するためにデータ転送コントロ
ーラ209にはDMAステート・マシン422及び42
4の間に結合された先入れ先出し(FIFO)バッファ
426が配置される。ホスト処理サイド110からロー
カル処理サイド120へのデータ転送時に、そのFIF
Oバッファ426は、ホストDMAステート・マシン4
22からの収集されたホスト・データを一時的に記憶
し、分散されるべきローカルDMAステート・マシン4
24にそのような一時的に記憶されたデータを与える。
逆に、ローカル処理サイド120からホスト処理サイド
110へのデータ転送時に、FIFOバッファ426
は、ローカルDMAステート・マシン424からの収集
されたローカル・データを受信し、そして一時的に記憶
し、ホスト処理サイド110上に分散させるためのその
ような一時的に記憶されたデータをホストDMAステー
ト・マシン422に与える。
【0027】RAID記憶装置に記憶されたデータ・ブ
ロックのような大きいデータ・ブロックを転送する時、
小さいデータ・ブロックのグループをカバーする単一の
データ転送コマンドを開始させることは有益である。即
ち、一群のデータ・ブロックの各々に対して複数のデー
タ転送コマンドを開始させるのとは対照的に、ホスト処
理装置が一群のデータ・ブロックに対して単一のデータ
転送コマンドを開始させる場合、データ転送のスループ
ットは大いに増加する。例えば、データ・ブロックを転
送するためのDMAコマンドと同様に、データ・ブロッ
クの開始アドレス及びバイト・カウントを指定すること
によって単一のコマンドを開始させることは有益であ
る。それとは別に、大きいデータ・ブロックを4つの小
さいメモリ部分に分散する必要がある場合、分散される
べき各ブロックに対して4つの別々のデータ転送コマン
ドを開始させる代わりに、単一のデータ転送コマンドを
使用してそのようなデータ転送を行うことが望ましい。
従って、本発明は、多数の分散/収集リスト・エレメン
ト(例えば、図3のエレメント306及び307)がグ
ループ分けされそして単一の転送コマンド・オペレーシ
ョン時に転送されることを可能にするデータ・チャネル
を利用する。好適な実施例では、データ・チャネルは、
ローカル・メモリ203に記憶された1つ又は複数のデ
ータ・チャネル制御ブロック(DCB)イメージより成
る。従って、データ転送コントローラ209は、5つの
32ビット・レジスタ417より成るDCBレジスタ・
セット411を有する。後述するように、各DCBイメ
ージは、分散/収集リストの開始アドレス及び処理され
るべきその後の分散/収集エレメントのカウントを定義
する事前定義された構造を有する。
ロックのような大きいデータ・ブロックを転送する時、
小さいデータ・ブロックのグループをカバーする単一の
データ転送コマンドを開始させることは有益である。即
ち、一群のデータ・ブロックの各々に対して複数のデー
タ転送コマンドを開始させるのとは対照的に、ホスト処
理装置が一群のデータ・ブロックに対して単一のデータ
転送コマンドを開始させる場合、データ転送のスループ
ットは大いに増加する。例えば、データ・ブロックを転
送するためのDMAコマンドと同様に、データ・ブロッ
クの開始アドレス及びバイト・カウントを指定すること
によって単一のコマンドを開始させることは有益であ
る。それとは別に、大きいデータ・ブロックを4つの小
さいメモリ部分に分散する必要がある場合、分散される
べき各ブロックに対して4つの別々のデータ転送コマン
ドを開始させる代わりに、単一のデータ転送コマンドを
使用してそのようなデータ転送を行うことが望ましい。
従って、本発明は、多数の分散/収集リスト・エレメン
ト(例えば、図3のエレメント306及び307)がグ
ループ分けされそして単一の転送コマンド・オペレーシ
ョン時に転送されることを可能にするデータ・チャネル
を利用する。好適な実施例では、データ・チャネルは、
ローカル・メモリ203に記憶された1つ又は複数のデ
ータ・チャネル制御ブロック(DCB)イメージより成
る。従って、データ転送コントローラ209は、5つの
32ビット・レジスタ417より成るDCBレジスタ・
セット411を有する。後述するように、各DCBイメ
ージは、分散/収集リストの開始アドレス及び処理され
るべきその後の分散/収集エレメントのカウントを定義
する事前定義された構造を有する。
【0028】本発明は、データ転送に関連する殆どのデ
ータ・ブロックがエラー状態に遭遇しそうもないという
仮定を利用する。従って、ローカル・メモリは、複数の
DCBイメージより成るDCBメモリ部分を含む。DC
Bイメージは、エラー状態がないことを表すデフォルト
・ステータス情報を記憶する。データ転送ステータス・
デテクタは、エラー状態なしのデフォルトが真であるか
どうかを決定する。それが真である場合、デフォルト・
ステータス情報は、ローカル処理装置の介入なしに対応
するステータス・イメージに転送される。しかし、エラ
ー状態が検出される場合、ローカル処理装置は、適正に
発生したエラー割込を処理することによってエラー・ス
テータス情報の転送と関連付けられる。
ータ・ブロックがエラー状態に遭遇しそうもないという
仮定を利用する。従って、ローカル・メモリは、複数の
DCBイメージより成るDCBメモリ部分を含む。DC
Bイメージは、エラー状態がないことを表すデフォルト
・ステータス情報を記憶する。データ転送ステータス・
デテクタは、エラー状態なしのデフォルトが真であるか
どうかを決定する。それが真である場合、デフォルト・
ステータス情報は、ローカル処理装置の介入なしに対応
するステータス・イメージに転送される。しかし、エラ
ー状態が検出される場合、ローカル処理装置は、適正に
発生したエラー割込を処理することによってエラー・ス
テータス情報の転送と関連付けられる。
【0029】図5を参照すると、本発明の好適な実施例
に従ってDCBレジスタ・セット411を定義する図5
00が示される。DCBレジスタ・セット411は5つ
の32ビット・レジスタより成る。データ転送モード、
即ち、単一ブロック・データ転送モードか或いは分配/
収集データ転送モードかに依って、32ビット・レジス
タの内容は単一データ・ブロックのアドレス或いは分散
/収集リスト部分のアドレスを指定する。単一ブロック
・データ転送モードでは、32ビットのデータ・チャネ
ル・ホスト・アドレス・レジスタ(DCHAR)510
が連続したデータ・ブロックのホスト・メモリ開始アド
レスを含む。しかし、分散/収集データ転送モードで
は、DCHAR510は、ホスト・メモリ207に記憶
された分散/収集リストのホスト・メモリ開始アドレス
を含む。同様に、単一ブロック・データ転送モードで
は、32ビットのデータ・チャネル・ローカル・アドレ
ス・レジスタ(DCLAR)520は連続したデータ・
ブロックのローカル・メモリ開始アドレスを含む。一
方、分散/収集データ転送モードでは、DCLAR52
0は、ローカル・メモリ203に記憶された分散/収集
リストのローカル・メモリ開始アドレスを含む。
に従ってDCBレジスタ・セット411を定義する図5
00が示される。DCBレジスタ・セット411は5つ
の32ビット・レジスタより成る。データ転送モード、
即ち、単一ブロック・データ転送モードか或いは分配/
収集データ転送モードかに依って、32ビット・レジス
タの内容は単一データ・ブロックのアドレス或いは分散
/収集リスト部分のアドレスを指定する。単一ブロック
・データ転送モードでは、32ビットのデータ・チャネ
ル・ホスト・アドレス・レジスタ(DCHAR)510
が連続したデータ・ブロックのホスト・メモリ開始アド
レスを含む。しかし、分散/収集データ転送モードで
は、DCHAR510は、ホスト・メモリ207に記憶
された分散/収集リストのホスト・メモリ開始アドレス
を含む。同様に、単一ブロック・データ転送モードで
は、32ビットのデータ・チャネル・ローカル・アドレ
ス・レジスタ(DCLAR)520は連続したデータ・
ブロックのローカル・メモリ開始アドレスを含む。一
方、分散/収集データ転送モードでは、DCLAR52
0は、ローカル・メモリ203に記憶された分散/収集
リストのローカル・メモリ開始アドレスを含む。
【0030】転送モードに従って、32ビットのデータ
・チャネル・ローカル・カウント・レジスタ(DCLC
R)530はデータ・ブロック・カウント値又はローカ
ル分散/収集リストのカウント値を含む。同様に、32
ビットのデータ・チャネル・ホスト・カウント・レジス
タ(DCHCR)540はデータ・ブロック・カウント
値又はホスト分散/収集リストのカウント値を含む。3
2ビットのデータ・チャネル制御レジスタ(DCCR)
550は、単一バイトの制御情報552と、DCBオペ
レーションのエラーなし終了ステータスを表すための3
バイトのステータス・フィールド554とを含む。詳し
く後述するように、ステータス・フィールド554は、
エラーなしの状態の存在を表すデフォルト・データ転送
状態を記憶する。それは、データ転送エラー状態が検出
されない場合、ホスト・メモリにおけるステータス待ち
行列部分に自動的に転送される。
・チャネル・ローカル・カウント・レジスタ(DCLC
R)530はデータ・ブロック・カウント値又はローカ
ル分散/収集リストのカウント値を含む。同様に、32
ビットのデータ・チャネル・ホスト・カウント・レジス
タ(DCHCR)540はデータ・ブロック・カウント
値又はホスト分散/収集リストのカウント値を含む。3
2ビットのデータ・チャネル制御レジスタ(DCCR)
550は、単一バイトの制御情報552と、DCBオペ
レーションのエラーなし終了ステータスを表すための3
バイトのステータス・フィールド554とを含む。詳し
く後述するように、ステータス・フィールド554は、
エラーなしの状態の存在を表すデフォルト・データ転送
状態を記憶する。それは、データ転送エラー状態が検出
されない場合、ホスト・メモリにおけるステータス待ち
行列部分に自動的に転送される。
【0031】図6を参照すると、DCCR550の詳細
図が示される。制御レジスタ552は、次のように定義
された8個のビットより成る。即ち、 ビット0:予約済み。 ビット1:1にセットされる時、現在のデータ・ブロッ
ク転送のためのデータ・チャネル・オペレーションを開
始する。 ビット2:1にセットされる時、ホスト処理サイドから
ローカル処理サイドへのデータ転送方向を表す。0にセ
ットされる時、データ転送方向はローカル処理サイドか
らホスト処理サイドである。 ビット3:未定。 ビット4:1にセットされる時、現在のデータ・ブロッ
ク転送の終了時にデータ・チャネル割込をセットさせる
であろう。 ビット5:DCCRビット2が0にセットされた場合に
これが1にセットされる時、自動ステータス・イネーブ
ル・ビット(ASE)は、現在のデータ転送の終了時に
ホスト・メモリにおけるステータス待ち行列上にDCC
Rステータス・バイトの自動転送を開始させるであろ
う。 ビット6:1にセットされる時、ローカル・メモリから
の分散/収集処理を可能にする。 ビット7:1にセットされる時、ホスト・メモリからの
分散/収集処理を可能にする。
図が示される。制御レジスタ552は、次のように定義
された8個のビットより成る。即ち、 ビット0:予約済み。 ビット1:1にセットされる時、現在のデータ・ブロッ
ク転送のためのデータ・チャネル・オペレーションを開
始する。 ビット2:1にセットされる時、ホスト処理サイドから
ローカル処理サイドへのデータ転送方向を表す。0にセ
ットされる時、データ転送方向はローカル処理サイドか
らホスト処理サイドである。 ビット3:未定。 ビット4:1にセットされる時、現在のデータ・ブロッ
ク転送の終了時にデータ・チャネル割込をセットさせる
であろう。 ビット5:DCCRビット2が0にセットされた場合に
これが1にセットされる時、自動ステータス・イネーブ
ル・ビット(ASE)は、現在のデータ転送の終了時に
ホスト・メモリにおけるステータス待ち行列上にDCC
Rステータス・バイトの自動転送を開始させるであろ
う。 ビット6:1にセットされる時、ローカル・メモリから
の分散/収集処理を可能にする。 ビット7:1にセットされる時、ホスト・メモリからの
分散/収集処理を可能にする。
【0032】本発明の好適な実施例は、一方のサイド又
は両方のサイドにおいて分散/収集データ転送を可能に
することに留意して欲しい。デュアル・サイド分散/収
集モードを可能にするためには、ビット6及びビット7
の両方がセットされなければならない。前述のように、
分散/収集データ転送モードは、ビット6及び7の両方
がセットされた場合に可能にされる。
は両方のサイドにおいて分散/収集データ転送を可能に
することに留意して欲しい。デュアル・サイド分散/収
集モードを可能にするためには、ビット6及びビット7
の両方がセットされなければならない。前述のように、
分散/収集データ転送モードは、ビット6及び7の両方
がセットされた場合に可能にされる。
【0033】ステータス・バイト1、2、及び3は3バ
イトのステータス・ブロックを含む。ローカル・インタ
ーフェース・コントローラによって与えられる機能に従
って、これらのバイトは種々のステータス状態を表すよ
うに定義可能である。
イトのステータス・ブロックを含む。ローカル・インタ
ーフェース・コントローラによって与えられる機能に従
って、これらのバイトは種々のステータス状態を表すよ
うに定義可能である。
【0034】更に、本発明は、ローカル処理装置オーバ
ヘッドを最小にすることによって一連のDCBが処理さ
れることを可能にするために多数のDCBの待ち行列化
を行うことを意図する。従って、データ転送コントロー
ラ209は、32ビット・レジスタ419及び439よ
り成るDCB待ち行列レジスタ・セット413及びステ
ータス待ち行列レジスタ・セット431を含む。
ヘッドを最小にすることによって一連のDCBが処理さ
れることを可能にするために多数のDCBの待ち行列化
を行うことを意図する。従って、データ転送コントロー
ラ209は、32ビット・レジスタ419及び439よ
り成るDCB待ち行列レジスタ・セット413及びステ
ータス待ち行列レジスタ・セット431を含む。
【0035】図7を参照すると、DCB待ち行列レジス
タ・セット413を定義する図700が示される。DC
B待ち行列開始レジスタ(DQSR)710は、DCB
待ち行列メモリ部分の開始のローカル・メモリ・アドレ
スであるDCB開始ポインタを含む。DCB待ち行列ヘ
ッド・レジスタ(DQHR)720は、ローカル処理装
置201が次のDCBイメージを記憶するローカル・メ
モリ・アドレスであるDCB待ち行列ヘッド・ポインタ
を含む。DCB待ち行列テイル・レジスタ(DQTR)
730は、データ転送コントローラ209が次のDCB
イメージをフェッチするローカル・メモリ・アドレスで
あるDCBテイル・ポインタを含む。DCB待ち行列エ
ンド・レジスタ(DQER)740は、DCB待ち行列
メモリ部分の終端のローカル・メモリ・アドレスである
DCBエンド・ポインタを含む。
タ・セット413を定義する図700が示される。DC
B待ち行列開始レジスタ(DQSR)710は、DCB
待ち行列メモリ部分の開始のローカル・メモリ・アドレ
スであるDCB開始ポインタを含む。DCB待ち行列ヘ
ッド・レジスタ(DQHR)720は、ローカル処理装
置201が次のDCBイメージを記憶するローカル・メ
モリ・アドレスであるDCB待ち行列ヘッド・ポインタ
を含む。DCB待ち行列テイル・レジスタ(DQTR)
730は、データ転送コントローラ209が次のDCB
イメージをフェッチするローカル・メモリ・アドレスで
あるDCBテイル・ポインタを含む。DCB待ち行列エ
ンド・レジスタ(DQER)740は、DCB待ち行列
メモリ部分の終端のローカル・メモリ・アドレスである
DCBエンド・ポインタを含む。
【0036】図8を参照すると、ステータス待ち行列レ
ジスタ・セット431を定義する図が示される。ステー
タス待ち行列開始レジスタ(SQSR)810は、ステ
ータス待ち行列メモリ部分の開始を表すシステム・メモ
リ・アドレスを指すステータス待ち行列開始ポインタを
含む。ステータス待ち行列ヘッド・レジスタ(SQH
R)820は、データ転送コントローラ209が次にス
テータス待ち行列イメージを記憶するホスト・メモリ・
アドレスを指すステータス待ち行列ヘッド・ポインタを
含む。ステータス待ち行列テイル・レジスタ(SQT
R)830は、ホスト処理装置103が次にステータス
待ち行列イメージをフェッチ又は検索する場所を表すホ
スト・メモリ・アドレスを指すステータス・テイル・ポ
インタを含む。ステータス待ち行列エンド・レジスタ
(SQER)840は、ステータス待ち行列メモリ部分
の終端を表すホスト・メモリ・アドレスを指すステータ
ス待ち行列エンド・ポインタを含む。
ジスタ・セット431を定義する図が示される。ステー
タス待ち行列開始レジスタ(SQSR)810は、ステ
ータス待ち行列メモリ部分の開始を表すシステム・メモ
リ・アドレスを指すステータス待ち行列開始ポインタを
含む。ステータス待ち行列ヘッド・レジスタ(SQH
R)820は、データ転送コントローラ209が次にス
テータス待ち行列イメージを記憶するホスト・メモリ・
アドレスを指すステータス待ち行列ヘッド・ポインタを
含む。ステータス待ち行列テイル・レジスタ(SQT
R)830は、ホスト処理装置103が次にステータス
待ち行列イメージをフェッチ又は検索する場所を表すホ
スト・メモリ・アドレスを指すステータス・テイル・ポ
インタを含む。ステータス待ち行列エンド・レジスタ
(SQER)840は、ステータス待ち行列メモリ部分
の終端を表すホスト・メモリ・アドレスを指すステータ
ス待ち行列エンド・ポインタを含む。
【0037】図4を再び参照すると、レジスタ・セット
411の5つのレジスタ417は、それぞれ、図5に示
された5つの32ビット・レジスタ、即ち、DCB50
0のDCHAR510、DCLAR520、DCLCR
530、DCHCR540、及びDCCR550に対応
する。同様に、DCB待ち行列レジスタ・セット413
のレジスタ419は、図7のレジスタDQSR710、
DQHR720、DQTR730、及びDQER740
に対応し、ステータス待ち行列レジスタ・セット431
のレジスタ439は図8のSQSR810、SQHR8
20、SQTR830、及びSQER840に対応す
る。本発明の好適な実施例では、レジスタ・セット41
1、413、及び431はデータ転送コントローラ20
9に組み込まれる。
411の5つのレジスタ417は、それぞれ、図5に示
された5つの32ビット・レジスタ、即ち、DCB50
0のDCHAR510、DCLAR520、DCLCR
530、DCHCR540、及びDCCR550に対応
する。同様に、DCB待ち行列レジスタ・セット413
のレジスタ419は、図7のレジスタDQSR710、
DQHR720、DQTR730、及びDQER740
に対応し、ステータス待ち行列レジスタ・セット431
のレジスタ439は図8のSQSR810、SQHR8
20、SQTR830、及びSQER840に対応す
る。本発明の好適な実施例では、レジスタ・セット41
1、413、及び431はデータ転送コントローラ20
9に組み込まれる。
【0038】図示のように、ローカル・メモリ203
は、1つ又は複数のDCBイメージ409を記憶するた
めのDCB待ち行列メモリ部分407、及び複数の分散
/収集リスト404を記憶するための図3の部分305
に対応するローカル分散/収集リスト(LSGL)部分
405に分けられる。前述のように、ローカルDMAス
テート・マシン424は、DCB部分407及びLSG
L部分405に記憶されたデータを含むローカル・デー
タをデータ転送コントローラ209に転送するのを制御
する。又、図3に示されたメモリ部分327に対応する
非連続のデータ・ブロックを記憶するための複数の分散
したローカル・メモリ部分427が示される。
は、1つ又は複数のDCBイメージ409を記憶するた
めのDCB待ち行列メモリ部分407、及び複数の分散
/収集リスト404を記憶するための図3の部分305
に対応するローカル分散/収集リスト(LSGL)部分
405に分けられる。前述のように、ローカルDMAス
テート・マシン424は、DCB部分407及びLSG
L部分405に記憶されたデータを含むローカル・デー
タをデータ転送コントローラ209に転送するのを制御
する。又、図3に示されたメモリ部分327に対応する
非連続のデータ・ブロックを記憶するための複数の分散
したローカル・メモリ部分427が示される。
【0039】ホスト処理サイド110において、ホスト
・メモリ107は、ステータス待ち行列メモリ部分40
2及び図3の部分305に対応するホスト分散/収集リ
スト(HSGL)部分401を含むように区切られる。
前述のように、ホスト・メモリ・コントローラ109は
ホスト・メモリ107(ステータス待ち行列部分402
及びHSGL部分401を含む)、ホスト・プロセッサ
103、及びI/Oブリッジ・インターフェース111
の間のデータの転送を制御する。一方、ホストDMAス
テート・マシーン422はホスト処理サイド110及び
ローカル処理サイド120の間のデータの転送を制御す
る。又、図3に示されたメモリ部分307に対応する分
散したデータ・ブロックを記憶するための多数の分散し
たホスト・メモリ部分107が示される。
・メモリ107は、ステータス待ち行列メモリ部分40
2及び図3の部分305に対応するホスト分散/収集リ
スト(HSGL)部分401を含むように区切られる。
前述のように、ホスト・メモリ・コントローラ109は
ホスト・メモリ107(ステータス待ち行列部分402
及びHSGL部分401を含む)、ホスト・プロセッサ
103、及びI/Oブリッジ・インターフェース111
の間のデータの転送を制御する。一方、ホストDMAス
テート・マシーン422はホスト処理サイド110及び
ローカル処理サイド120の間のデータの転送を制御す
る。又、図3に示されたメモリ部分307に対応する分
散したデータ・ブロックを記憶するための多数の分散し
たホスト・メモリ部分107が示される。
【0040】動作的には、システム開始時又は初期設定
時に、ローカル処理装置201は、DCBに対して指定
されたローカル・メモリ203のDCB待ち行列メモリ
部分407の開始アドレスを表す事前定義された値をD
QSR710、DQHR720、及びDQTR730に
ロードする。先ず、DQSR710、DQHR720、
DQTR730は、ローカル・メモリ203の指定され
たDCB待ち行列部分407の開始アドレスを表す同じ
値をロードされる。従って、DQHR720及びDQT
R730における値は、その後のDCBイメージが記憶
され且つその後のDCBイメージが検索されるDCBイ
メージを指す同じアドレスを表す。DQER740は、
指定されたDCB待ち行列部分407の終了アドレスを
表す値をロードされる。
時に、ローカル処理装置201は、DCBに対して指定
されたローカル・メモリ203のDCB待ち行列メモリ
部分407の開始アドレスを表す事前定義された値をD
QSR710、DQHR720、及びDQTR730に
ロードする。先ず、DQSR710、DQHR720、
DQTR730は、ローカル・メモリ203の指定され
たDCB待ち行列部分407の開始アドレスを表す同じ
値をロードされる。従って、DQHR720及びDQT
R730における値は、その後のDCBイメージが記憶
され且つその後のDCBイメージが検索されるDCBイ
メージを指す同じアドレスを表す。DQER740は、
指定されたDCB待ち行列部分407の終了アドレスを
表す値をロードされる。
【0041】同様に、システムの初期設定時に、ホスト
処理装置103は、ステータス待ち行列メモリ部分40
2の境界を設定するSQSR810,SQHR820、
及びSQTR830に事前定義された値を書込み、その
後のステータス待ち行列イメージが何処に記憶されるか
及びそれが何処から検索されるかを表すためにステータ
ス・ヘッド・ポインタ及びステータス・テイル・ポイン
タに対するデフォルト値を記憶する。SQER740
は、指定されたステータス待ち行列部分407の終了ア
ドレスを表す値をロードされる。
処理装置103は、ステータス待ち行列メモリ部分40
2の境界を設定するSQSR810,SQHR820、
及びSQTR830に事前定義された値を書込み、その
後のステータス待ち行列イメージが何処に記憶されるか
及びそれが何処から検索されるかを表すためにステータ
ス・ヘッド・ポインタ及びステータス・テイル・ポイン
タに対するデフォルト値を記憶する。SQER740
は、指定されたステータス待ち行列部分407の終了ア
ドレスを表す値をロードされる。
【0042】DCBは、ホスト処理サイドにおいて走る
装置ドライバ・コードによって発生される読取/書込コ
マンドに基づいて、ローカル処理サイドのファームウエ
アによって作成される。DCBイメージが作成される
時、DQHRは次のDCBエレメント・アドレスにイン
クリメントされる。従って、DQHRヘッド・ポインタ
は、最早DQTRテイル・ポインタに等しくない。DC
Bイメージ409を形成する時、ローカル処理装置は、
その作成されたDCBイメージが分散/収集データ転送
モードの一部分であるか、或いは単一ブロック・データ
転送モードの一部分であるかを表すようにDCCRワー
ドにおける対応するビットを適当にセットする。又、D
CCRワードのビット2は、データ転送の方向を、即
ち、そのデータ転送がホスト処理サイド110からロー
カル処理サイド120への転送であるか、又はその逆で
あるかを表すように適正にセットされる。
装置ドライバ・コードによって発生される読取/書込コ
マンドに基づいて、ローカル処理サイドのファームウエ
アによって作成される。DCBイメージが作成される
時、DQHRは次のDCBエレメント・アドレスにイン
クリメントされる。従って、DQHRヘッド・ポインタ
は、最早DQTRテイル・ポインタに等しくない。DC
Bイメージ409を形成する時、ローカル処理装置は、
その作成されたDCBイメージが分散/収集データ転送
モードの一部分であるか、或いは単一ブロック・データ
転送モードの一部分であるかを表すようにDCCRワー
ドにおける対応するビットを適当にセットする。又、D
CCRワードのビット2は、データ転送の方向を、即
ち、そのデータ転送がホスト処理サイド110からロー
カル処理サイド120への転送であるか、又はその逆で
あるかを表すように適正にセットされる。
【0043】一旦DCBイメージがローカル処理装置2
01によってローカル・メモリにおいてアセンブルされ
てしまいそしてDQHRがDQTRに等しくないように
インクリメントされてしまうと、ローカルDMAステー
ト・マシン424は、DQTRにおけるアドレスで開始
するDCBイメージを読み取り、それをDCBレジスタ
・セット411にロードするであろう。そこで、ローカ
ルDMAステート・マシン424はDCBイメージの長
さだけDQTRをインクリメントするであろう。一旦D
CBがDCBレジスタ・セットにロードされると、デー
タ転送コントローラ209は、DCCR制御レジスタ5
52の分散/収集イネーブル・ビットをデコードするこ
とによって転送モードを決定する。単一ブロック・デー
タ転送モードでは、DCHAR及びDCHCRにおける
値がホスト・メモリ・ブロックの開始アドレス及びそれ
の対応するバイト・カウントとして解釈される。同様
に、DCLAR及びDCLCRは、ローカル・メモリ・
ブロックの開始アドレス及びそれの対応するバイト・カ
ウントとして解釈される。しかし、分散/収集データ転
送モードでは、DCHAR及びDCHCRは、ホスト・
メモリ107又はローカル・メモリ203の対応する部
分401又は404における別個の分散/収集リストに
対するポインタとして解釈される。DCLAR及びDC
LCRは、それぞれ、分散/収集リストの開始及びロー
カル・メモリのLSGL部分404における対応するリ
スト・カウントを指すものとして解釈される。同様に、
リストDCHAR及びDCHCRは、ホスト分散/収集
リスト及びホスト・メモリ107のHSGL部分401
における対応するカウントとして解釈される。
01によってローカル・メモリにおいてアセンブルされ
てしまいそしてDQHRがDQTRに等しくないように
インクリメントされてしまうと、ローカルDMAステー
ト・マシン424は、DQTRにおけるアドレスで開始
するDCBイメージを読み取り、それをDCBレジスタ
・セット411にロードするであろう。そこで、ローカ
ルDMAステート・マシン424はDCBイメージの長
さだけDQTRをインクリメントするであろう。一旦D
CBがDCBレジスタ・セットにロードされると、デー
タ転送コントローラ209は、DCCR制御レジスタ5
52の分散/収集イネーブル・ビットをデコードするこ
とによって転送モードを決定する。単一ブロック・デー
タ転送モードでは、DCHAR及びDCHCRにおける
値がホスト・メモリ・ブロックの開始アドレス及びそれ
の対応するバイト・カウントとして解釈される。同様
に、DCLAR及びDCLCRは、ローカル・メモリ・
ブロックの開始アドレス及びそれの対応するバイト・カ
ウントとして解釈される。しかし、分散/収集データ転
送モードでは、DCHAR及びDCHCRは、ホスト・
メモリ107又はローカル・メモリ203の対応する部
分401又は404における別個の分散/収集リストに
対するポインタとして解釈される。DCLAR及びDC
LCRは、それぞれ、分散/収集リストの開始及びロー
カル・メモリのLSGL部分404における対応するリ
スト・カウントを指すものとして解釈される。同様に、
リストDCHAR及びDCHCRは、ホスト分散/収集
リスト及びホスト・メモリ107のHSGL部分401
における対応するカウントとして解釈される。
【0044】しかる後、ローカルDMAステート・マシ
ン424は、DCLARによって表されたアドレスでも
って開始し且つDCLCRによって指定されたエレメン
ト・カウントでもって終了するLSGLをフェッチ及び
デコードし、各分散/収集リスト・エレメントに対して
関連するデータ・ブロックの開始アドレス及びローカル
・メモリにおけるそれのバイト・カウントを決定するよ
うに進行する。同様に、DCHARによって表されたア
ドレスで開始し、DCHCRによって指定されたエレメ
ント・カウントでもって終了するHSGLエレメントが
ホストDMAステート・マシン422によってフェッチ
及びデコードされる。
ン424は、DCLARによって表されたアドレスでも
って開始し且つDCLCRによって指定されたエレメン
ト・カウントでもって終了するLSGLをフェッチ及び
デコードし、各分散/収集リスト・エレメントに対して
関連するデータ・ブロックの開始アドレス及びローカル
・メモリにおけるそれのバイト・カウントを決定するよ
うに進行する。同様に、DCHARによって表されたア
ドレスで開始し、DCHCRによって指定されたエレメ
ント・カウントでもって終了するHSGLエレメントが
ホストDMAステート・マシン422によってフェッチ
及びデコードされる。
【0045】各DCBに対するDCCRの方向ビットに
従って、データはローカル処理サイド120における対
応するローカル・メモリ部分から収集され、ホスト処理
サイドのホスト・メモリにおける対応するメモリ部分に
分散される。それとは別に、データはホスト処理サイド
120における指定されたホスト・メモリ部分から収集
され、ローカル処理サイド120における対応するロー
カル・メモリ部分に分散されてもよい。
従って、データはローカル処理サイド120における対
応するローカル・メモリ部分から収集され、ホスト処理
サイドのホスト・メモリにおける対応するメモリ部分に
分散される。それとは別に、データはホスト処理サイド
120における指定されたホスト・メモリ部分から収集
され、ローカル処理サイド120における対応するロー
カル・メモリ部分に分散されてもよい。
【0046】上記の分散/収集オペレーションはホスト
DMAステート・マシン422及びローカルDMAステ
ート・マシン424によって遂行される。データ転送に
関連するデータは先入れ先出しに基づくFIFOバッフ
ァ426に一時的に記憶される。即ち、ローカル処理サ
イド120からホスト処理サイド110へのデータ転送
時に、ローカルDMAステート・マシン424は、分散
/収集リスト・エレメントによって定義されたデータ・
ブロックを検索し、それらをFIFOバッファ426に
与える。FIFOバッファ426はローカルDMAステ
ート・マシン424からそのデータ・ブロックを受け取
り、ホストDMAステート・マシン422によってフェ
ッチされるようにそのようなデータを一時的に記憶す
る。それと同時に、ホストDMAコントローラ422
は、ホスト処理サイド110に送信するためのデータ・
ブロックをそのFIFOバッファ426からフェッチす
る。同様に、ホスト処理サイド110からローカル処理
サイド120にデータを転送する時、FIFOバッファ
426はホストDMAステート・マシン422からデー
タを受け取り、それをローカルDMAステート・マシン
424に与える。ローカル処理サイド120及びホスト
処理サイド110の両方におけるデータは、対応するホ
スト及びローカル処理サイドの分散/収集リスト・エレ
メントによって表される適当なメモリ部分から収集及び
分散される。前述のように、ローカル及びホスト処理サ
イドの分散/収集リストは、各サイドにおける分散/収
集オペレーションに関連した集合的なデータ・ブロック
がデータ転送に関連したデータの総量に等しくなるよう
に作成される。
DMAステート・マシン422及びローカルDMAステ
ート・マシン424によって遂行される。データ転送に
関連するデータは先入れ先出しに基づくFIFOバッフ
ァ426に一時的に記憶される。即ち、ローカル処理サ
イド120からホスト処理サイド110へのデータ転送
時に、ローカルDMAステート・マシン424は、分散
/収集リスト・エレメントによって定義されたデータ・
ブロックを検索し、それらをFIFOバッファ426に
与える。FIFOバッファ426はローカルDMAステ
ート・マシン424からそのデータ・ブロックを受け取
り、ホストDMAステート・マシン422によってフェ
ッチされるようにそのようなデータを一時的に記憶す
る。それと同時に、ホストDMAコントローラ422
は、ホスト処理サイド110に送信するためのデータ・
ブロックをそのFIFOバッファ426からフェッチす
る。同様に、ホスト処理サイド110からローカル処理
サイド120にデータを転送する時、FIFOバッファ
426はホストDMAステート・マシン422からデー
タを受け取り、それをローカルDMAステート・マシン
424に与える。ローカル処理サイド120及びホスト
処理サイド110の両方におけるデータは、対応するホ
スト及びローカル処理サイドの分散/収集リスト・エレ
メントによって表される適当なメモリ部分から収集及び
分散される。前述のように、ローカル及びホスト処理サ
イドの分散/収集リストは、各サイドにおける分散/収
集オペレーションに関連した集合的なデータ・ブロック
がデータ転送に関連したデータの総量に等しくなるよう
に作成される。
【0047】データ転送コントローラ209は、ローカ
ル・メモリのDCB部分407における待ち行列化され
た各DCBイメージ409に対して上記のステップを遂
行する。各DCBイメージを処理する時、データ転送コ
ントローラ209はDQTRにおけるテイル・ポインタ
をインクリメントする。各DCBの終了時に、データ転
送コントローラ209はDQHRに記憶されたヘッド・
ポインタ値とDQTRに記憶されたテイル・ポインタ値
とを比較する。DCB待ち行列解除オペレーションは、
そのヘッド・ポインタ値がテイル・ポインタ値に等しく
ない限り、連続的に行われる。しかし、ヘッド・ポイン
タ値がテイル・ポインタ値に等しくなる時、そのような
状態はすべての待ち行列化されたDCBイメージ409
の終了を表すので、データ転送コントローラ209はD
CBデータ転送を終了させるであろう。
ル・メモリのDCB部分407における待ち行列化され
た各DCBイメージ409に対して上記のステップを遂
行する。各DCBイメージを処理する時、データ転送コ
ントローラ209はDQTRにおけるテイル・ポインタ
をインクリメントする。各DCBの終了時に、データ転
送コントローラ209はDQHRに記憶されたヘッド・
ポインタ値とDQTRに記憶されたテイル・ポインタ値
とを比較する。DCB待ち行列解除オペレーションは、
そのヘッド・ポインタ値がテイル・ポインタ値に等しく
ない限り、連続的に行われる。しかし、ヘッド・ポイン
タ値がテイル・ポインタ値に等しくなる時、そのような
状態はすべての待ち行列化されたDCBイメージ409
の終了を表すので、データ転送コントローラ209はD
CBデータ転送を終了させるであろう。
【0048】本発明はDCB待ち行列の長さ(DQER
に記憶されたエンド・ポインタ値によって表される)よ
りも多くの多数のDCBイメージ409を待ち行列化す
ることを意図するので、ラップ・アラウンド・フィーチ
ャが与えられる。待ち行列化されたDCBイメージ40
9の数がDQHRヘッド・ポインタ値にDQERエンド
・ポインタ値を越えさせる時、ヘッド・ポインタは開始
ポインタに等しい値を持つようにラップされ、更なるD
CBイメージ409の待ち行列化の時にインクリメント
される。しかし、この状況において、ローカル処理装置
は、そのラップされたDQHRヘッド・ポインタがDQ
TRテイル・ポインタを越えない限り、更なるDCBイ
メージ409を待ち行列化するであろう。データ転送時
におけるデータの喪失を防ぐために、一旦そのラップさ
れたDQHRヘッド・ポインタが[DQTRテイル・ポ
インタ]−[DCBイメージ・サイズ]に等しくなる
と、ローカル処理装置201は、DQTRテイル・ポイ
ンタによってアドレスされたDCBイメージが待ち行列
解除されるまで、更なるDCBイメージ409の待ち行
列化を終了させる。
に記憶されたエンド・ポインタ値によって表される)よ
りも多くの多数のDCBイメージ409を待ち行列化す
ることを意図するので、ラップ・アラウンド・フィーチ
ャが与えられる。待ち行列化されたDCBイメージ40
9の数がDQHRヘッド・ポインタ値にDQERエンド
・ポインタ値を越えさせる時、ヘッド・ポインタは開始
ポインタに等しい値を持つようにラップされ、更なるD
CBイメージ409の待ち行列化の時にインクリメント
される。しかし、この状況において、ローカル処理装置
は、そのラップされたDQHRヘッド・ポインタがDQ
TRテイル・ポインタを越えない限り、更なるDCBイ
メージ409を待ち行列化するであろう。データ転送時
におけるデータの喪失を防ぐために、一旦そのラップさ
れたDQHRヘッド・ポインタが[DQTRテイル・ポ
インタ]−[DCBイメージ・サイズ]に等しくなる
と、ローカル処理装置201は、DQTRテイル・ポイ
ンタによってアドレスされたDCBイメージが待ち行列
解除されるまで、更なるDCBイメージ409の待ち行
列化を終了させる。
【0049】本発明は最小のローカル処理装置介入でも
って特定のデータ・ブロック転送に関するステータス情
報を転送することを意図するので、データ転送の終了時
に、DCCRのビット5は、自動ステータス転送機能が
可能にされるかどうかを決定するために調べられる。そ
れが可能にされる場合、データ転送コントローラ209
は、現在のデータ転送の終了時に、ステータス待ち行列
メモリ部分402へのDCCRステータス・バイトの自
動転送を開始する。データ・ブロック転送時に、データ
転送コントローラ209は、パリティ・エラーのような
エラー状態が生じたかどうかをそのエラー状態を検出す
ることによって決定する。エラー・チェック・オペレー
ションはDMAステート・マシン422及び424内で
遂行可能であるので、ステータス転送コントローラはD
MAステート・マシン422及び424に配置可能であ
る。エラー状態が表示されない場合、即ち、ステータス
・イメージ情報に対するデフォルト状態が真である場
合、ホストDMAステート・マシン422は、対応する
ステータス・バイト554に含まれたステータス情報
を、SQHRにおけるヘッド・ポインタ値によって表さ
れたステータス待ち行列イメージに転送する。
って特定のデータ・ブロック転送に関するステータス情
報を転送することを意図するので、データ転送の終了時
に、DCCRのビット5は、自動ステータス転送機能が
可能にされるかどうかを決定するために調べられる。そ
れが可能にされる場合、データ転送コントローラ209
は、現在のデータ転送の終了時に、ステータス待ち行列
メモリ部分402へのDCCRステータス・バイトの自
動転送を開始する。データ・ブロック転送時に、データ
転送コントローラ209は、パリティ・エラーのような
エラー状態が生じたかどうかをそのエラー状態を検出す
ることによって決定する。エラー・チェック・オペレー
ションはDMAステート・マシン422及び424内で
遂行可能であるので、ステータス転送コントローラはD
MAステート・マシン422及び424に配置可能であ
る。エラー状態が表示されない場合、即ち、ステータス
・イメージ情報に対するデフォルト状態が真である場
合、ホストDMAステート・マシン422は、対応する
ステータス・バイト554に含まれたステータス情報
を、SQHRにおけるヘッド・ポインタ値によって表さ
れたステータス待ち行列イメージに転送する。
【0050】ホスト処理サイドへのステータス情報の転
送時に、ホストDMAステート・マシン422が未サー
ビスのステータス・イメージ402の存在をホスト処理
装置103に信号することによって、ハードウエア割込
信号がI/O拡張バス130を介して表明される。デー
タ・ブロック転送が終了する時、ステータス待ち行列イ
メージ402は待ち行列化される。未サービスのステー
タス待ち行列イメージ402の存在を信号する時、ホス
ト処理装置103は、SQTRにおけるポインタ値によ
って表されたステータス待ち行列イメージをサービスす
るように指示される。SQHRに記憶されたヘッド・ポ
インタ値は、ステータス待ち行列メモリ部分401にお
いて待ち行列化された各ステータス待ち行列イメージ4
02に対してインクリメントされる。逆に、SQTRに
記憶されたテイル・ポインタ値は、ホスト処理装置10
3によってサービスされた各ステータス待ち行列イメー
ジ402に対してインクリメントされる。各ステータス
・イメージ402をサービスする時、ホスト処理装置1
03はSQTRにおけるテイル・ポインタをインクリメ
ントする。
送時に、ホストDMAステート・マシン422が未サー
ビスのステータス・イメージ402の存在をホスト処理
装置103に信号することによって、ハードウエア割込
信号がI/O拡張バス130を介して表明される。デー
タ・ブロック転送が終了する時、ステータス待ち行列イ
メージ402は待ち行列化される。未サービスのステー
タス待ち行列イメージ402の存在を信号する時、ホス
ト処理装置103は、SQTRにおけるポインタ値によ
って表されたステータス待ち行列イメージをサービスす
るように指示される。SQHRに記憶されたヘッド・ポ
インタ値は、ステータス待ち行列メモリ部分401にお
いて待ち行列化された各ステータス待ち行列イメージ4
02に対してインクリメントされる。逆に、SQTRに
記憶されたテイル・ポインタ値は、ホスト処理装置10
3によってサービスされた各ステータス待ち行列イメー
ジ402に対してインクリメントされる。各ステータス
・イメージ402をサービスする時、ホスト処理装置1
03はSQTRにおけるテイル・ポインタをインクリメ
ントする。
【0051】処理された各ステータス・イメージに対し
て、ホスト処理装置103はSQHRに記憶されたヘッ
ド・ポインタ値とSQTRに記憶されたテイル・ポイン
タ値とを比較する。SQHRにおけるヘッド・ポインタ
値が[SQTRにおけるテイル・ポインタ値]+[ステ
ータス・イメージのサイズ]に等しくない限り、ステー
タス・イメージ待ち行列化オペレーションは連続的に遂
行される。しかし、SQHR値がステータス・イメージ
のサイズだけSQTR値よりも大きい場合、そのような
状態がすべての未決のステータス待ち行列イメージ40
2の終了を表すので、ホスト処理装置103はステータ
ス待ち行列のサービスを終了する。
て、ホスト処理装置103はSQHRに記憶されたヘッ
ド・ポインタ値とSQTRに記憶されたテイル・ポイン
タ値とを比較する。SQHRにおけるヘッド・ポインタ
値が[SQTRにおけるテイル・ポインタ値]+[ステ
ータス・イメージのサイズ]に等しくない限り、ステー
タス・イメージ待ち行列化オペレーションは連続的に遂
行される。しかし、SQHR値がステータス・イメージ
のサイズだけSQTR値よりも大きい場合、そのような
状態がすべての未決のステータス待ち行列イメージ40
2の終了を表すので、ホスト処理装置103はステータ
ス待ち行列のサービスを終了する。
【0052】本発明はステータス待ち行列の長さ(SQ
ERに記憶されたエンド・ポインタ値によって表され
る)よりも大きい多数のステータス待ち行列イメージ4
02を待ち行列化することを意図しているので、待ち行
列化されたステータス待ち行列イメージ402の数がS
QHRにおけるヘッド・ポインタ値にSQERエンド・
ポインタ値を越えさせる時の状況に適応するように、ラ
ップ・アラウンド・フィーチャが与えられる。そのよう
な場合、ヘッド・ポインタは、開始ポインタに等しい値
を有するようにラップされ、そして更なるステータス待
ち行列イメージ402の待ち行列化の時にインクリメン
トされる。しかし、この状況では、ラップされたDQH
Rヘッド・ポインタがSQTRテイル・ポインタに等し
くない限り、更なるステータス待ち行列イメージ402
が待ち行列化される。データ転送時のステータス待ち行
列イメージの喪失を防ぐために、一旦そのラップされた
SQHRヘッド・ポインタが[SQTRテイル・ポイン
タ]−[ステータス待ち行列イメージ]に等しくなる
と、SQTRテイル・ポインタによってアドレスされた
ステータス待ち行列イメージが待ち行列解除されるま
で、更なるステータス待ち行列イメージ402の待ち行
列化は終了させられる。
ERに記憶されたエンド・ポインタ値によって表され
る)よりも大きい多数のステータス待ち行列イメージ4
02を待ち行列化することを意図しているので、待ち行
列化されたステータス待ち行列イメージ402の数がS
QHRにおけるヘッド・ポインタ値にSQERエンド・
ポインタ値を越えさせる時の状況に適応するように、ラ
ップ・アラウンド・フィーチャが与えられる。そのよう
な場合、ヘッド・ポインタは、開始ポインタに等しい値
を有するようにラップされ、そして更なるステータス待
ち行列イメージ402の待ち行列化の時にインクリメン
トされる。しかし、この状況では、ラップされたDQH
Rヘッド・ポインタがSQTRテイル・ポインタに等し
くない限り、更なるステータス待ち行列イメージ402
が待ち行列化される。データ転送時のステータス待ち行
列イメージの喪失を防ぐために、一旦そのラップされた
SQHRヘッド・ポインタが[SQTRテイル・ポイン
タ]−[ステータス待ち行列イメージ]に等しくなる
と、SQTRテイル・ポインタによってアドレスされた
ステータス待ち行列イメージが待ち行列解除されるま
で、更なるステータス待ち行列イメージ402の待ち行
列化は終了させられる。
【0053】ステータス待ち行列イメージの待ち行列化
及び待ち行列解除を同時に行うホスト処理装置及びロー
カル処理装置の間で生じる競合状態を回避するために、
データ転送コントローラ209が待ち行列化されたステ
ータスを有する時、それは、割込を設定することによっ
てこの事象を信号する。そこで、ホスト・ステータス割
込解除コードがSQHRにおけるステータス待ち行列ヘ
ッド・ポインタ値を読み取る。好ましくは、そのホスト
・ステータス割込解除コードは、ステータス待ち行列を
サービスしている間、ホスト・バス・オペレーションの
数を最小にするようにステータス待ち行列テイル・ポイ
ンタのソフトウエア・バージョンを保持する。そこで、
このコードはステータス待ち行列テイル・ポインタのソ
フトウエア・コピーをインクリメントし、ステータス・
イメージを待ち行列解除する。ステータス待ち行列テイ
ル・ポインタのソフトウエア・コピーが[ステータス待
ち行列ヘッド・ポインタ]−[ステータス待ち行列イメ
ージのサイズ]に等しくない場合、それは、その待ち行
列に更なるステータス・イメージがあることを意味す
る。
及び待ち行列解除を同時に行うホスト処理装置及びロー
カル処理装置の間で生じる競合状態を回避するために、
データ転送コントローラ209が待ち行列化されたステ
ータスを有する時、それは、割込を設定することによっ
てこの事象を信号する。そこで、ホスト・ステータス割
込解除コードがSQHRにおけるステータス待ち行列ヘ
ッド・ポインタ値を読み取る。好ましくは、そのホスト
・ステータス割込解除コードは、ステータス待ち行列を
サービスしている間、ホスト・バス・オペレーションの
数を最小にするようにステータス待ち行列テイル・ポイ
ンタのソフトウエア・バージョンを保持する。そこで、
このコードはステータス待ち行列テイル・ポインタのソ
フトウエア・コピーをインクリメントし、ステータス・
イメージを待ち行列解除する。ステータス待ち行列テイ
ル・ポインタのソフトウエア・コピーが[ステータス待
ち行列ヘッド・ポインタ]−[ステータス待ち行列イメ
ージのサイズ]に等しくない場合、それは、その待ち行
列に更なるステータス・イメージがあることを意味す
る。
【0054】このシーケンスは、ステータス待ち行列テ
イル・ポインタのソフトウエア・コピーが[ステータス
待ち行列ヘッド・ポインタ]−[ステータス・イメージ
のサイズ]に等しくなるまで継続する。この状態が満足
される時、ソフトウエア・ステータス待ち行列テイル・
ポインタがSQTRにコピーされる。ステータス待ち行
列テイル・ポインタがSQTRにコピーされる時、デー
タ転送コントローラ209はその新しい値とステータス
待ち行列ヘッド・ポインタとを比較する。そして、SQ
TRが[SQHR]−[ステータス・イメージのサイ
ズ]に等しい場合、割込はリセットされる。そうでない
場合、SQTRが読み取られた時以来、少なくとも1つ
のステータス・イメージの存在が待ち行列化されてお
り、従って、割込はリセットされないであろう。
イル・ポインタのソフトウエア・コピーが[ステータス
待ち行列ヘッド・ポインタ]−[ステータス・イメージ
のサイズ]に等しくなるまで継続する。この状態が満足
される時、ソフトウエア・ステータス待ち行列テイル・
ポインタがSQTRにコピーされる。ステータス待ち行
列テイル・ポインタがSQTRにコピーされる時、デー
タ転送コントローラ209はその新しい値とステータス
待ち行列ヘッド・ポインタとを比較する。そして、SQ
TRが[SQHR]−[ステータス・イメージのサイ
ズ]に等しい場合、割込はリセットされる。そうでない
場合、SQTRが読み取られた時以来、少なくとも1つ
のステータス・イメージの存在が待ち行列化されてお
り、従って、割込はリセットされないであろう。
【0055】前述のように、本発明はローカル及びホス
ト・メモリの利用をかなり改善し、ローカル処理サイド
からホスト処理サイドへの及びその逆のデータ転送を、
その両サイドにおいて分散/収集同時オペレーションを
与えることによって及びデータ・ブロック転送における
ローカル処理装置の介入を最小にすることによって容易
にする。
ト・メモリの利用をかなり改善し、ローカル処理サイド
からホスト処理サイドへの及びその逆のデータ転送を、
その両サイドにおいて分散/収集同時オペレーションを
与えることによって及びデータ・ブロック転送における
ローカル処理装置の介入を最小にすることによって容易
にする。
【0056】前述の両サイドの分散/収集オペレーショ
ンにおける対称性のために、ホスト処理サイド及びロー
カル処理サイドのうちの一方の処理サイドは第1処理サ
イドと呼ばれ、他方の処理サイドは第2処理サイドと呼
ばれる。本発明は第1処理サイド又は第2処理サイドを
相互交換可能に使用することを意図する。データ転送の
方向に従って、一方のサイドにおける詳述した分散(又
は、収集)オペレーションは、本発明が教示したことを
使用して、他方のサイドにおいても遂行可能である。
ンにおける対称性のために、ホスト処理サイド及びロー
カル処理サイドのうちの一方の処理サイドは第1処理サ
イドと呼ばれ、他方の処理サイドは第2処理サイドと呼
ばれる。本発明は第1処理サイド又は第2処理サイドを
相互交換可能に使用することを意図する。データ転送の
方向に従って、一方のサイドにおける詳述した分散(又
は、収集)オペレーションは、本発明が教示したことを
使用して、他方のサイドにおいても遂行可能である。
【0057】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0058】(1)I/O拡張データ・バスを介して第
1処理サイド及び第2処理サイドの間でデータ・ブロッ
クを転送するための情報処理システムにして、ホスト処
理装置と、前記第1処理サイド及び第2処理サイドの間
のデータ・ブロック転送に関連した第1データ・ブロッ
クを記憶するための第1メモリ部分を含み、前記ホスト
処理装置によってアクセス可能な第1メモリと、複数の
ステータス待ち行列イメージを含む転送ステータス待ち
行列メモリ部分であって、前記ステータス待ち行列イメ
ージの各々は対応するデータ・ブロック転送に関するス
テータス情報を記憶するものと、ローカル処理装置と、
前記第1処理サイド及び第2処理サイドの間のデータ・
ブロック転送に関連した第2データ・ブロックを記憶す
るための第2メモリ部分を含み、前記ローカル処理装置
によってアクセス可能な第2メモリと、複数のDCBイ
メージを含むデータ・チャネル・ブロック(DCB)メ
モリ部分と、前記DCBイメージの各々は、データ・ブ
ロック転送に関連した第1メモリ部分に対応する第1ア
ドレス情報と、データ・ブロック転送に関連した第2メ
モリ部分に対応する第2アドレス情報とを記憶すること
と、すべてのデータ・ブロック転送の開始前に、前記転
送ステータス待ち行列メモリ部分に対する事前定義され
たアドレスをセットするための、及びその後のステータ
ス情報が何処に記憶されるべきかを表すデフォルト・ス
テータス待ち行列イメージを指すヘッド・ポインタ値及
びその後のステータス情報が何処から検索されるべきか
を表すデフォルト・ステータス待ち行列イメージを指す
テイル・ポインタ値を記憶するための前記ホスト処理装
置によってプログラム可能なステータス待ち行列レジス
タ・セットと、前記第1アドレス情報に応答して、対応
する第1メモリ部分をアクセスするための第1メモリ・
アクセス・コントローラと、前記第2アドレス情報に応
答して、対応する第2メモリ部分をアクセスするための
第2メモリ・アクセス・コントローラと、前記ステータ
ス待ち行列レジスタ・セットに応答して、前記ローカル
処理装置の介入なしに、ステータス待ち行列イメージを
前記転送ステータス待ち行列メモリ部分に転送するため
のデータ転送ステータス・コントローラと、を含む情報
処理システム。 (2)前記第1メモリ部分は分散したデータのブロック
を記憶すること、前記分散したデータのブロックは前記
第1処理サイドと前記第2処理サイドとの間で転送され
るべきデータ・ブロックを集合的に表すこと、第1分散
/収集リスト・メモリ部分は複数の第1リスト・エレメ
ントを含むこと、前記第1リスト・エレメントの各々は
前記第1メモリ部分の各々に対するアドレスを表す第1
セットの情報を記憶すること、前記第1メモリ・アクセ
ス・コントローラは前記第1分散/収集リストに応答し
て前記分散したデータを前記第1メモリ部分から収集す
ることを特徴とする上記(1)に記載の情報処理システ
ム。 (3)前記第2メモリ部分は前記第1処理サイドからの
前記収集されたデータを記憶すること、第2分散/収集
リスト・メモリ部分は複数の第2リスト・エレメントを
含むこと、前記第2リスト・エレメントの各々は前記第
2メモリ部分の各々に対するアドレスを表す第2セット
の情報を記憶すること、前記第2メモリ・アクセス・コ
ントローラは前記第2分散/収集リスト・メモリ部分に
応答して、前記第1処理サイドからの前記収集されたデ
ータを前記第2メモリ部分に分散することを特徴とする
上記(2)に記載の情報処理システム。 (4)前記第1メモリ・アクセス・コントローラは、前
記第2メモリ・アクセス・コントローラが前記データを
前記第2メモリに分散するのと同時に前記第1メモリか
ら前記分散したデータを収集することを特徴とする上記
(3)に記載の情報処理システム。 (5)前記第1メモリ・アクセス・コントローラと前記
第2メモリ・アクセス・コントローラとの間に接続さ
れ、前記ローカル処理サイド及び前記ホスト処理サイド
の間のデータ・ブロック転送に関連したデータを受け取
り且つ先入れ先出しに基づいて一時的に記憶するための
FIFOレジスタを含むことを特徴とする上記(5)に
記載の情報処理システム。 (6)前記第1セットの情報は前記第1メモリ部分の開
始アドレス及びそれぞれのサイズ含むことを特徴とする
上記(2)に記載の情報処理システム。 (7)前記第2セットの情報は前記第2メモリ部分の開
始アドレス及びそれぞれのサイズ含むことを特徴とする
上記(3)に記載の情報処理システム。 (8)前記第2処理サイドにおける収集されたデータの
集合的な量は前記第2処理サイドにおける分散されたデ
ータの集合的な量に等しいことを特徴とする上記(3)
に記載の情報処理システム。 (9)前記第1処理サイドはホスト・システムより成る
こと、及び前記第2処理サイドはローカル・インターフ
ェース・コントローラより成ること、を特徴とする上記
(1)に記載の情報処理システム。 (10)前記第1分散/収集リスト・メモリ部分は前記
第1メモリの一部分であることを特徴とする上記(2)
に記載の情報処理システム。 (11)前記第2分散/収集リスト・メモリ部分は前記
第2メモリの一部分であることを特徴とする上記(2)
に記載の情報処理システム。 (12)前記DCBメモリ部分は前記第2メモリの一部
分であることを特徴とする上記(1)に記載の情報処理
システム。 (13)前記ステータス待ち行列メモリ部分は前記第1
メモリ内にあることを特徴とする上記(1)に記載の情
報処理システム。
1処理サイド及び第2処理サイドの間でデータ・ブロッ
クを転送するための情報処理システムにして、ホスト処
理装置と、前記第1処理サイド及び第2処理サイドの間
のデータ・ブロック転送に関連した第1データ・ブロッ
クを記憶するための第1メモリ部分を含み、前記ホスト
処理装置によってアクセス可能な第1メモリと、複数の
ステータス待ち行列イメージを含む転送ステータス待ち
行列メモリ部分であって、前記ステータス待ち行列イメ
ージの各々は対応するデータ・ブロック転送に関するス
テータス情報を記憶するものと、ローカル処理装置と、
前記第1処理サイド及び第2処理サイドの間のデータ・
ブロック転送に関連した第2データ・ブロックを記憶す
るための第2メモリ部分を含み、前記ローカル処理装置
によってアクセス可能な第2メモリと、複数のDCBイ
メージを含むデータ・チャネル・ブロック(DCB)メ
モリ部分と、前記DCBイメージの各々は、データ・ブ
ロック転送に関連した第1メモリ部分に対応する第1ア
ドレス情報と、データ・ブロック転送に関連した第2メ
モリ部分に対応する第2アドレス情報とを記憶すること
と、すべてのデータ・ブロック転送の開始前に、前記転
送ステータス待ち行列メモリ部分に対する事前定義され
たアドレスをセットするための、及びその後のステータ
ス情報が何処に記憶されるべきかを表すデフォルト・ス
テータス待ち行列イメージを指すヘッド・ポインタ値及
びその後のステータス情報が何処から検索されるべきか
を表すデフォルト・ステータス待ち行列イメージを指す
テイル・ポインタ値を記憶するための前記ホスト処理装
置によってプログラム可能なステータス待ち行列レジス
タ・セットと、前記第1アドレス情報に応答して、対応
する第1メモリ部分をアクセスするための第1メモリ・
アクセス・コントローラと、前記第2アドレス情報に応
答して、対応する第2メモリ部分をアクセスするための
第2メモリ・アクセス・コントローラと、前記ステータ
ス待ち行列レジスタ・セットに応答して、前記ローカル
処理装置の介入なしに、ステータス待ち行列イメージを
前記転送ステータス待ち行列メモリ部分に転送するため
のデータ転送ステータス・コントローラと、を含む情報
処理システム。 (2)前記第1メモリ部分は分散したデータのブロック
を記憶すること、前記分散したデータのブロックは前記
第1処理サイドと前記第2処理サイドとの間で転送され
るべきデータ・ブロックを集合的に表すこと、第1分散
/収集リスト・メモリ部分は複数の第1リスト・エレメ
ントを含むこと、前記第1リスト・エレメントの各々は
前記第1メモリ部分の各々に対するアドレスを表す第1
セットの情報を記憶すること、前記第1メモリ・アクセ
ス・コントローラは前記第1分散/収集リストに応答し
て前記分散したデータを前記第1メモリ部分から収集す
ることを特徴とする上記(1)に記載の情報処理システ
ム。 (3)前記第2メモリ部分は前記第1処理サイドからの
前記収集されたデータを記憶すること、第2分散/収集
リスト・メモリ部分は複数の第2リスト・エレメントを
含むこと、前記第2リスト・エレメントの各々は前記第
2メモリ部分の各々に対するアドレスを表す第2セット
の情報を記憶すること、前記第2メモリ・アクセス・コ
ントローラは前記第2分散/収集リスト・メモリ部分に
応答して、前記第1処理サイドからの前記収集されたデ
ータを前記第2メモリ部分に分散することを特徴とする
上記(2)に記載の情報処理システム。 (4)前記第1メモリ・アクセス・コントローラは、前
記第2メモリ・アクセス・コントローラが前記データを
前記第2メモリに分散するのと同時に前記第1メモリか
ら前記分散したデータを収集することを特徴とする上記
(3)に記載の情報処理システム。 (5)前記第1メモリ・アクセス・コントローラと前記
第2メモリ・アクセス・コントローラとの間に接続さ
れ、前記ローカル処理サイド及び前記ホスト処理サイド
の間のデータ・ブロック転送に関連したデータを受け取
り且つ先入れ先出しに基づいて一時的に記憶するための
FIFOレジスタを含むことを特徴とする上記(5)に
記載の情報処理システム。 (6)前記第1セットの情報は前記第1メモリ部分の開
始アドレス及びそれぞれのサイズ含むことを特徴とする
上記(2)に記載の情報処理システム。 (7)前記第2セットの情報は前記第2メモリ部分の開
始アドレス及びそれぞれのサイズ含むことを特徴とする
上記(3)に記載の情報処理システム。 (8)前記第2処理サイドにおける収集されたデータの
集合的な量は前記第2処理サイドにおける分散されたデ
ータの集合的な量に等しいことを特徴とする上記(3)
に記載の情報処理システム。 (9)前記第1処理サイドはホスト・システムより成る
こと、及び前記第2処理サイドはローカル・インターフ
ェース・コントローラより成ること、を特徴とする上記
(1)に記載の情報処理システム。 (10)前記第1分散/収集リスト・メモリ部分は前記
第1メモリの一部分であることを特徴とする上記(2)
に記載の情報処理システム。 (11)前記第2分散/収集リスト・メモリ部分は前記
第2メモリの一部分であることを特徴とする上記(2)
に記載の情報処理システム。 (12)前記DCBメモリ部分は前記第2メモリの一部
分であることを特徴とする上記(1)に記載の情報処理
システム。 (13)前記ステータス待ち行列メモリ部分は前記第1
メモリ内にあることを特徴とする上記(1)に記載の情
報処理システム。
【図1】本発明を組み込んだ例示的なコンピュータ・シ
ステムのブロック図である。
ステムのブロック図である。
【図2】図1におけるローカル・インターフェース・コ
ントローラのブロック図である。
ントローラのブロック図である。
【図3】本発明に従って分散・収集同時オペレーション
示す図である
示す図である
【図4】図1のコンピュータ・システムの更に詳細なブ
ロック図である。
ロック図である。
【図5】図4のブロックに示されたDCBレジスタ・セ
ットを示す図である。
ットを示す図である。
【図6】図5に示されたDCCRレジスタを示す図であ
る。
る。
【図7】図4のブロック図に示されたDCB待ち行列レ
ジスタを示す図である。
ジスタを示す図である。
【図8】図4のブロック図に示されたステータス待ち行
列レジスタ・セットを示す図である。
列レジスタ・セットを示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ギャリー・ホッチ アメリカ合衆国フロリダ州、コーラル・ス プリングス、エヌ・ダブリュ・フィフティ ーンス・ストリート 11062 (72)発明者 ティモシー・ヴィンセント・リー アメリカ合衆国ノースカロライナ州、ラー レイ、コーブ・ポイント・ドライブ 7500 −33 (72)発明者 アンドリュ・ボイス・マックネイル、ジュ ニア アメリカ合衆国ノースカロライナ州、アペ ックス、スワンズボロウ・ドライブ 107 (72)発明者 エド・ワッチェル アメリカ合衆国ニューヨーク州、ニューヨ ーク、サード・アベニュー 290、ナンバ ー・19・エフ
Claims (13)
- 【請求項1】I/O拡張データ・バスを介して第1処理
サイド及び第2処理サイドの間でデータ・ブロックを転
送するための情報処理システムにして、 ホスト処理装置と、 前記第1処理サイド及び第2処理サイドの間のデータ・
ブロック転送に関連した第1データ・ブロックを記憶す
るための第1メモリ部分を含み、前記ホスト処理装置に
よってアクセス可能な第1メモリと、 複数のステータス待ち行列イメージを含む転送ステータ
ス待ち行列メモリ部分であって、前記ステータス待ち行
列イメージの各々は対応するデータ・ブロック転送に関
するステータス情報を記憶するものと、 ローカル処理装置と、 前記第1処理サイド及び第2処理サイドの間のデータ・
ブロック転送に関連した第2データ・ブロックを記憶す
るための第2メモリ部分を含み、前記ローカル処理装置
によってアクセス可能な第2メモリと、 複数のDCBイメージを含むデータ・チャネル・ブロッ
ク(DCB)メモリ部分と、 前記DCBイメージの各々は、データ・ブロック転送に
関連した第1メモリ部分に対応する第1アドレス情報
と、データ・ブロック転送に関連した第2メモリ部分に
対応する第2アドレス情報とを記憶することと、 すべてのデータ・ブロック転送の開始前に、前記転送ス
テータス待ち行列メモリ部分に対する事前定義されたア
ドレスをセットするための、及びその後のステータス情
報が何処に記憶されるべきかを表すデフォルト・ステー
タス待ち行列イメージを指すヘッド・ポインタ値及びそ
の後のステータス情報が何処から検索されるべきかを表
すデフォルト・ステータス待ち行列イメージを指すテイ
ル・ポインタ値を記憶するための前記ホスト処理装置に
よってプログラム可能なステータス待ち行列レジスタ・
セットと、 前記第1アドレス情報に応答して、対応する第1メモリ
部分をアクセスするための第1メモリ・アクセス・コン
トローラと、 前記第2アドレス情報に応答して、対応する第2メモリ
部分をアクセスするための第2メモリ・アクセス・コン
トローラと、 前記ステータス待ち行列レジスタ・セットに応答して、
前記ローカル処理装置の介入なしに、ステータス待ち行
列イメージを前記転送ステータス待ち行列メモリ部分に
転送するためのデータ転送ステータス・コントローラ
と、 を含む情報処理システム。 - 【請求項2】前記第1メモリ部分は分散したデータのブ
ロックを記憶すること、 前記分散したデータのブロックは前記第1処理サイドと
前記第2処理サイドとの間で転送されるべきデータ・ブ
ロックを集合的に表すこと、 第1分散/収集リスト・メモリ部分は複数の第1リスト
・エレメントを含むこと、 前記第1リスト・エレメントの各々は前記第1メモリ部
分の各々に対するアドレスを表す第1セットの情報を記
憶すること、 前記第1メモリ・アクセス・コントローラは前記第1分
散/収集リストに応答して前記分散したデータを前記第
1メモリ部分から収集することを特徴とする請求項1に
記載の情報処理システム。 - 【請求項3】前記第2メモリ部分は前記第1処理サイド
からの前記収集されたデータを記憶すること、 第2分散/収集リスト・メモリ部分は複数の第2リスト
・エレメントを含むこと、 前記第2リスト・エレメントの各々は前記第2メモリ部
分の各々に対するアドレスを表す第2セットの情報を記
憶すること、 前記第2メモリ・アクセス・コントローラは前記第2分
散/収集リスト・メモリ部分に応答して、前記第1処理
サイドからの前記収集されたデータを前記第2メモリ部
分に分散することを特徴とする請求項2に記載の情報処
理システム。 - 【請求項4】前記第1メモリ・アクセス・コントローラ
は、前記第2メモリ・アクセス・コントローラが前記デ
ータを前記第2メモリに分散するのと同時に前記第1メ
モリから前記分散したデータを収集することを特徴とす
る請求項3に記載の情報処理システム。 - 【請求項5】前記第1メモリ・アクセス・コントローラ
と前記第2メモリ・アクセス・コントローラとの間に接
続され、前記ローカル処理サイド及び前記ホスト処理サ
イドの間のデータ・ブロック転送に関連したデータを受
け取り且つ先入れ先出しに基づいて一時的に記憶するた
めのFIFOレジスタを含むことを特徴とする請求項4
に記載の情報処理システム。 - 【請求項6】前記第1セットの情報は前記第1メモリ部
分の開始アドレス及びそれぞれのサイズ含むことを特徴
とする請求項2に記載の情報処理システム。 - 【請求項7】前記第2セットの情報は前記第2メモリ部
分の開始アドレス及びそれぞれのサイズ含むことを特徴
とする請求項3に記載の情報処理システム。 - 【請求項8】前記第2処理サイドにおける収集されたデ
ータの集合的な量は前記第2処理サイドにおける分散さ
れたデータの集合的な量に等しいことを特徴とする請求
項3に記載の情報処理システム。 - 【請求項9】前記第1処理サイドはホスト・システムよ
り成ること、及び前記第2処理サイドはローカル・イン
ターフェース・コントローラより成ること、 を特徴とする請求項1に記載の情報処理システム。 - 【請求項10】前記第1分散/収集リスト・メモリ部分
は前記第1メモリの一部分であることを特徴とする請求
項2に記載の情報処理システム。 - 【請求項11】前記第2分散/収集リスト・メモリ部分
は前記第2メモリの一部分であることを特徴とする請求
項2に記載の情報処理システム。 - 【請求項12】前記DCBメモリ部分は前記第2メモリ
の一部分であることを特徴とする請求項1に記載の情報
処理システム。 - 【請求項13】前記ステータス待ち行列メモリ部分は前
記第1メモリ内にあることを特徴とする請求項1に記載
の情報処理システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/573221 | 1995-12-13 | ||
| US08/573,221 US5802546A (en) | 1995-12-13 | 1995-12-13 | Status handling for transfer of data blocks between a local side and a host side |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09160862A true JPH09160862A (ja) | 1997-06-20 |
Family
ID=24291104
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8229605A Pending JPH09160862A (ja) | 1995-12-13 | 1996-08-30 | ローカル・サイド及びホスト・サイドの間でデータ・ブロックを転送するためのステータス処理システム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5802546A (ja) |
| JP (1) | JPH09160862A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999034273A3 (en) * | 1997-12-30 | 1999-09-23 | Lsi Logic Corp | Automated dual scatter/gather list dma |
| JP2009205366A (ja) * | 2008-02-27 | 2009-09-10 | Fujitsu Ltd | チャネル装置、情報処理システム、及びデータ転送方法 |
| JP2016532933A (ja) * | 2013-07-03 | 2016-10-20 | マイクロン テクノロジー, インク. | メモリで制御されるデータ移動及びタイミング |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6108722A (en) * | 1996-09-13 | 2000-08-22 | Silicon Grpahics, Inc. | Direct memory access apparatus for transferring a block of data having discontinous addresses using an address calculating circuit |
| US6240084B1 (en) * | 1996-10-10 | 2001-05-29 | Cisco Systems, Inc. | Telephony-enabled network processing device with separate TDM bus and host system backplane bus |
| US6065096A (en) * | 1997-09-30 | 2000-05-16 | Lsi Logic Corporation | Integrated single chip dual mode raid controller |
| JPH11110339A (ja) * | 1997-10-02 | 1999-04-23 | Toshiba Corp | Dmaコントローラ |
| US5963977A (en) * | 1997-10-09 | 1999-10-05 | Quantum Corporation | Buffer management and system coordination method |
| US6061767A (en) * | 1997-12-18 | 2000-05-09 | Advanced Micro Devices, Inc. | Apparatus and method in a network interface device for storing status information contiguous with a corresponding data frame in a buffer memory |
| JPH11259372A (ja) * | 1998-03-09 | 1999-09-24 | Fujitsu Ltd | 二重化メモリ制御装置 |
| US6526434B1 (en) | 1999-08-24 | 2003-02-25 | International Business Machines Corporation | System and method for efficient transfer of data blocks from client to server |
| US6665746B1 (en) * | 2000-03-31 | 2003-12-16 | International Business Machine Corporation | System and method for prioritized context switching for streaming data memory transfers |
| US6631455B1 (en) * | 2000-09-29 | 2003-10-07 | Cypress Semiconductor Corp. | Logic for initializing the depth of the queue pointer memory |
| JP4524912B2 (ja) * | 2000-12-20 | 2010-08-18 | セイコーエプソン株式会社 | 端末装置及びその制御方法 |
| US6931501B1 (en) * | 2001-10-26 | 2005-08-16 | Adaptec, Inc. | Method and apparatus for merging contiguous like commands |
| US7738496B1 (en) | 2002-12-31 | 2010-06-15 | Cypress Semiconductor Corporation | Device that provides the functionality of dual-ported memory using single-ported memory for multiple clock domains |
| ATE354130T1 (de) * | 2003-05-26 | 2007-03-15 | Koninkl Philips Electronics Nv | Verfahren und einrichtung zum transferieren von daten zwischen einem hauptspeicher und einer speichereinrichtung |
| US7934057B1 (en) | 2003-12-24 | 2011-04-26 | Cypress Semiconductor Corporation | Logic for implementing a dual clock domain read access with predictable timing for bi-directional inputs/outputs |
| US7730239B2 (en) * | 2006-06-23 | 2010-06-01 | Intel Corporation | Data buffer management in a resource limited environment |
| US8145809B1 (en) | 2007-03-09 | 2012-03-27 | Cypress Semiconductor Corporation | Busy detection logic for asynchronous communication port |
| US20100262979A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Circular command queues for communication between a host and a data storage device |
| US8595572B2 (en) | 2009-04-08 | 2013-11-26 | Google Inc. | Data storage device with metadata command |
| CN102207919A (zh) * | 2010-03-30 | 2011-10-05 | 国际商业机器公司 | 加速数据传输的处理单元、芯片、计算设备和方法 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4212057A (en) * | 1976-04-22 | 1980-07-08 | General Electric Company | Shared memory multi-microprocessor computer system |
| US5155807A (en) * | 1986-02-24 | 1992-10-13 | International Business Machines Corporation | Multi-processor communications channel utilizing random access/sequential access memories |
| US5131082A (en) * | 1989-06-09 | 1992-07-14 | International Business Machines Corporation | Command delivery for a computing system for transfers between a host and subsystem including providing direct commands or indirect commands indicating the address of the subsystem control block |
| GB9012970D0 (en) * | 1989-09-22 | 1990-08-01 | Ibm | Apparatus and method for asynchronously delivering control elements with pipe interface |
| US5249284A (en) * | 1990-06-04 | 1993-09-28 | Ncr Corporation | Method and system for maintaining data coherency between main and cache memories |
| JPH05173932A (ja) * | 1991-12-24 | 1993-07-13 | Toshiba Corp | データ転送装置 |
-
1995
- 1995-12-13 US US08/573,221 patent/US5802546A/en not_active Expired - Fee Related
-
1996
- 1996-08-30 JP JP8229605A patent/JPH09160862A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999034273A3 (en) * | 1997-12-30 | 1999-09-23 | Lsi Logic Corp | Automated dual scatter/gather list dma |
| JP2009205366A (ja) * | 2008-02-27 | 2009-09-10 | Fujitsu Ltd | チャネル装置、情報処理システム、及びデータ転送方法 |
| US8769167B2 (en) | 2008-02-27 | 2014-07-01 | Fujitsu Limited | Channel device, information processing system and data transfer method |
| JP2016532933A (ja) * | 2013-07-03 | 2016-10-20 | マイクロン テクノロジー, インク. | メモリで制御されるデータ移動及びタイミング |
| US11074169B2 (en) | 2013-07-03 | 2021-07-27 | Micron Technology, Inc. | Programmed memory controlled data movement and timing within a main memory device |
Also Published As
| Publication number | Publication date |
|---|---|
| US5802546A (en) | 1998-09-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5940866A (en) | Information handling system having a local address queue for local storage of command blocks transferred from a host processing side | |
| US5968143A (en) | Information handling system for transfer of command blocks to a local processing side without local processor intervention | |
| US5802546A (en) | Status handling for transfer of data blocks between a local side and a host side | |
| JP4104746B2 (ja) | 自動直接メモリ・アクセス機能を備えたコンピュータ・システム | |
| US6061687A (en) | Linked lists of transfer descriptors scheduled at intervals | |
| US5524268A (en) | Flexible processor-driven control of SCSI buses utilizing tags appended to data bytes to determine SCSI-protocol phases | |
| US6334162B1 (en) | Efficient data transfer mechanism for input/out devices having a device driver generating a descriptor queue and monitoring a status queue | |
| US6564271B2 (en) | Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter | |
| US6397316B2 (en) | System for reducing bus overhead for communication with a network interface | |
| US5918028A (en) | Apparatus and method for smart host bus adapter for personal computer cards | |
| EP0241129B1 (en) | Addressing arrangement for a RAM buffer controller | |
| US5249279A (en) | Method for controlling disk array operations by receiving logical disk requests and translating the requests to multiple physical disk specific commands | |
| JP3335172B2 (ja) | データ処理システム及びそれに使用するための入出力プロセッサ | |
| JPH06266650A (ja) | データを転送する方法と装置及びデータ転送をインタリーブする装置 | |
| JPH06266649A (ja) | 複数のデータチャネルを介してデータを転送する方法及びその回路アーキテクチャ | |
| EP0908826A2 (en) | Packet protocol and distributed burst engine | |
| JP2853809B2 (ja) | 周辺コントローラのためのバッファメモリサブシステムおよび方法 | |
| EP0512991A4 (en) | High speed, flexible source/destination data burst direct memory access controller | |
| US6128674A (en) | Method of minimizing host CPU utilization in driving an adapter by residing in system memory a command/status block a soft interrupt block and a status block queue | |
| JPH077327B2 (ja) | データ転送方法 | |
| US6665746B1 (en) | System and method for prioritized context switching for streaming data memory transfers | |
| WO2004010316A2 (en) | Method, system, and program for handling input/output commands | |
| US7130932B1 (en) | Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device | |
| US5794069A (en) | Information handling system using default status conditions for transfer of data blocks | |
| US5905912A (en) | System for implementing peripheral device bus mastering in a computer using a list processor for asserting and receiving control signals external to the DMA controller |