JPH09160861A - ローカル・プロセッサの介入なしにコマンド・ブロックをローカル処理サイドに転送するための情報処理システム - Google Patents

ローカル・プロセッサの介入なしにコマンド・ブロックをローカル処理サイドに転送するための情報処理システム

Info

Publication number
JPH09160861A
JPH09160861A JP8234192A JP23419296A JPH09160861A JP H09160861 A JPH09160861 A JP H09160861A JP 8234192 A JP8234192 A JP 8234192A JP 23419296 A JP23419296 A JP 23419296A JP H09160861 A JPH09160861 A JP H09160861A
Authority
JP
Japan
Prior art keywords
command
local
host
address
information
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.)
Ceased
Application number
JP8234192A
Other languages
English (en)
Inventor
Douglas R Chisholm
ダグラス・ロデリック・チスホーム
Hoch Gary
ギャリー・ホッチ
Vincent Lee Timothy
ティモシー・ヴィンセント・リー
Bois Mcneil Andrew Jr
アンドリュ・ボイス・マックネイル、ジュニア
Wacher Ed
エド・ワッチェル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH09160861A publication Critical patent/JPH09160861A/ja
Ceased legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【課題】ホスト処理サイド及びローカル処理サイドの間
でコマンド・ブロックを転送する情報処理システムを提
供する。 【解決手段】ホスト処理サイド110はホスト処理装置
103及びホスト・メモリ107を有し、ローカル処理
サイド120はローカル処理装置201及びローカル・
メモリ203を有する。コマンド・ブロックは、そのコ
マンド・ブロックのホスト・アドレスをローカル・サイ
ドのレジスタ・セットに記憶することによってホスト処
理サイドからローカル処理サイドに転送される。ホスト
・アドレスを記憶する時、ローカル処理装置の介入なし
にコマンド・ブロック転送を開始するための転送信号が
コマンド・ブロック転送コントローラ209に与えられ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・シ
ステムの分野に関するものであり、更に詳しく云えば、
拡張バスを通してコミュニケートする2つの処理装置相
互間のコマンド・ブロックの転送に関するものである。
【0002】
【従来の技術】今日の社会におけるパーソナル・コンピ
ュータの広範囲の普及によって、そのシステムの種々な
コンポーネント相互間で大きなデータ・ブロックを高い
信頼性をもって且つ適宜に転送することが常に必要であ
る。ネットワーク化されたパーソナル・コンピュータ
(PC)は、相互に大きなデータ・ブロックを受信及び
送信することをいつも必要としている。更に、大きなデ
ータ・ブロックを転送する必要性は、益々人気のあるク
ライアント/サーバ情報処理環境において特に重要であ
る。そのような環境では、複数のクライアント・ワーク
ステーションがネットワーク化され、そして1つ又は複
数のサーバ・システムに結合され、従って、クライアン
ト・ステーションがファイル、プリンタ、及びアプリケ
ーションのようなシステム資源を共用することを可能に
する。その結果、サーバ・システムは、非常に大きいデ
ータ・ブロックを記憶装置からクライアント・ステーシ
ョンに転送する必要が頻繁に生じる。データの保全性を
保証するために、データ・ブロック転送の終了時に、転
送エラー状態がある場合にそれを表すステータス信号を
発生することが通例である。
【0003】一般的には、1つのシステムから他のシス
テムへのデータ転送は、入出力(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サイクルを再試行することが可能である。
【0005】或システムは、データ・ブロックのデータ
転送ステータス情報を待ち行列化して、CPUがデータ
・ブロック転送のサービスを適当にタイミング制御する
ためにコマンド転送待ち行列化技法を利用している。そ
のような方法の1つは、「分散共用メモリを有するパイ
プ・インターフェースを持った自己記述制御エレメント
を非同期的に分配するためのシステム(System for asy
nchronously delivering self-describing control ele
ments with a pipe interface having distributed sha
red memory)」と題した1994年6月28日発行の米
国特許第5,325,492号に開示されている。
【0006】しかし、ローカル・マスタリングを行うこ
とができるローカル・インターフェース・コントローラ
の出現によって、ホスト処理サイドとローカル処理サイ
ドとの間のデータ転送スループットを高めるためには、
ローカル処理サイドにおけるコマンド・ブロック転送オ
ーバヘッドを減少させる必要がある。
【0007】一般的には、ローカル・インターフェース
・コントローラは一連のレジスタを有し、それらのレジ
スタは、ロードされた時、ローカル処理装置に割込を行
ってコマンドの保留を信号する。そのコマンドは、それ
がローカル処理装置によってローカル・メモリからシス
テム・メモリに直接にDMAされ得るものである場合、
それらのレジスタ内に配置可能である。別の方法とし
て、ホスト処理装置がコマンド・ブロックを作成して、
それらを待ち行列に入れることができる。終了時に、ホ
スト処理装置は、1つ又は複数のコマンドがその待ち行
列に配置されたことを知らせるためにローカル処理装置
に割込することができる。ローカル処理装置は、そのよ
うな割込を受け取ると、その割込をサービスしそしてコ
マンド・ブロックを処理するように指示される。
【0008】しかし、コマンド・ブロックを転送する一
般的な方法は、ホスト処理装置及びローカル処理装置が
相互に対話することを必要とする。ローカル・プロセッ
サに割込を行うことに加えて、そのような対話は、ロー
カル処理サイドにコマンド・ブロックを転送することに
関連したオーバヘッドをかなり増加させることがあるホ
スト処理装置とローカル処理装置との間の或タイプの同
期的又は非同期的コミュニケーション、例えば、ハンド
・シェークの存在を必要とする。
【0009】更に、ローカル処理装置に割込を行う時、
貴重なホスト処理装置サイクルを使うことを防ぐため
に、そのような割込に最高の優先順位を割り当てること
が必要である。
【0010】
【発明が解決しようとする課題】従って、本発明の目的
は、ホスト処理サイドからローカル処理サイドへのコマ
ンド・ブロックのより効率的な転送を提供することにあ
る。
【0011】
【課題を解決するための手段】本発明に依れば、ホスト
処理サイドとローカル処理サイドとの間のコマンド・ブ
ロック転送を処理することができる情報処理システムが
提供される。ホスト処理サイドにおいて、その情報処理
システムは、ホスト処理装置及びそのホスト処理装置に
よってアクセス可能なホスト・メモリを含んでいる。ロ
ーカル処理サイドにおいて、その情報処理システムは、
ローカル処理装置及びそのローカル処理装置によってア
クセス可能なローカル・メモリを含んでいる。転送され
るべきコマンド・ブロックを記憶するホスト・メモリ部
分に対応したホスト・メモリ・アドレス情報を書き込む
ための、及びそれと同時に転送開始信号を書き込むため
のコマンド・ブロック転送コントローラが、ホスト処理
装置によってアクセス可能なコマンド・アドレス・レジ
スタ・セットを含んでいる。コマンド・ブロック転送コ
ントローラはコマンド転送を開始するためにホスト処理
装置によって書き込まれた転送開始信号に応答して、ロ
ーカル処理装置の介入なしに、対応するホスト・メモリ
部分からコマンド・ブロックを検索する。
【0012】
【発明の実施の形態】図1を参照すると、本発明を組み
込んだ例示的なコンピュータ・システム100のブロッ
ク図が示される。コンピュータ・システム100は、I
BMパーソナル・コンピュータ又はそれと互換性のある
システムのようなパーソナル・コンピュータ・システム
より成るものでよい。コンピュータ・システム100
は、スタンドアローン・ワークステーションとして動作
するものでよく、或いはクライアント・ステーション又
はサーバ・ステーションとして動作する大きなコンピュ
ータ・ネットワークの一部分であってもよい。
【0013】コンピュータ・システム100は、2つの
処理サイド、即ち、オペレーティング・システム及びア
プリケーションによって指定されるような高レベルの処
理機能を遂行するホスト処理サイド110、及びコンピ
ュータ・システム100に対する記憶媒体インターフェ
ース又は通信インターフェースを与えるような周辺機能
を遂行するローカル処理サイド120より成る。ホスト
処理サイド110及びローカル処理サイド120は入出
力(I/O)拡張バス130を介して相互に結合され
る。I/O拡張バス130は多くの適当なI/O拡張バ
ス・プロトコルの1つとコンプライアントである。それ
らのプロトコルは、ローカル・インターフェース・コン
トローラが、I/O拡張バス130を介してデータ・ブ
ロックを転送するというような指定された機能を遂行す
るためにバスの制御を取ることを可能にする。そのよう
なバス・プロトコルの例は、PCI又はマイクロチャネ
ル仕様によって定義されたものを含む。
【0014】ホスト処理サイド110は、そのコンピュ
ータ・システム100の機能全体を制御するための単一
のホスト処理装置103、又はマルチ処理システムにお
いては、複数のホスト処理装置を含む。ホスト処理装置
103は、インテル社によって提供されるPentiu
m(商標)プロセッサ、或いはIBM社によって提供さ
れるPowerPC(商標)プロセッサのような多くの
商業的に入手可能なホスト処理装置の1つであってもよ
い。よく知られているように、ホスト処理装置103
は、先ず、読取専用メモリ(ROM)101に記憶され
たファームウエア命令を実行することによって動作す
る。基本入出力システム、即ち,BIOSとして知られ
たファームウエア命令は、接続された装置を検出するた
めの命令及び電源入力自己検査(POST)のための命
令を含む。一般には、ファームウエア命令の終了時に、
ホスト処理装置103は、ローカル・サイドの記憶装置
114からホスト・メモリ(システム・メモリ)107
にOSをロードすることによってオペレーティング・シ
ステム命令を実行する。ホスト処理装置103、ROM
101、及びホスト・メモリ107の間のデータの転送
はメモリ・コントローラ109によって制御される。
【0015】一方、ホスト処理サイド110及びI/O
拡張バス130の間のデータの転送はI/Oブリッジ・
インターフェース111によって制御される。プロセッ
サ・パフォーマンスを高めるために、ホスト処理装置1
03は、最も最近使用されたデータ及び命令を記憶する
ための内部キャッシュ・メモリ(レベル1, L1)10
4又は外部キャッシュ・メモリ(レベル2, L2)10
5を含み、従って、長いホスト・メモリ・サイクルを開
始する必要をなくする。それらのキャッシュ・メモリ
は、一般に、ホスト処理装置103に近接して位置づけ
られた高速度の静的ランダム・アクセス・メモリ(SR
AM)を含む。L2キャッシュ・メモリへの及びL2キ
ャッシュ・メモリからのデータ転送は周知のキャッシュ
・コントローラ106によって制御される。I/Oブリ
ッジ・インターフェース111は、メモリ・コントロー
ラ109と、外部キャッシュ・コントローラ106を介
したホスト処理装置103と、I/O拡張バス130と
の間をインターフェースするように設計される。ホスト
処理装置103は適当なI/Oブリッジ・インターフェ
ース111を介してI/O拡張バス130とインターフ
ェースし、従って、ローカル処理サイド120とインタ
ーフェースする。
【0016】詳しく後述するように、記憶装置114は
ローカル処理サイド120のローカル・インターフェー
ス・コントローラ113を介してI/O拡張バス130
とインターフェースする。当業者には明らかなように、
図示のホスト処理サイド110は単なる例示的なもので
あり、アプリケーションに従って、ホスト処理サイド1
10の機能的要件を実現するように種々のシステム・ア
ーキテクチャ、即ち、単一処理或いは多重処理が設計可
能である。
【0017】ローカル処理サイド120において、コン
ピュータ・システム100は、種々の周辺装置115に
結合された小型コンピュータ・システム・インターフェ
ース(SCSI)コントローラのような複数のローカル
・インターフェース・コントローラ113を含むもので
よい。更に、記憶装置、通信装置、印刷装置、ネットワ
ーク装置、イメージ装置等がシステム機能性及びフィー
チャを補足するために追加可能である。例えば、コンピ
ュータ・システム100は、記憶装置として低価格ドラ
イブの冗長配列(RAID)を持った高速広範囲のSC
SIローカル・インターフェース・コントローラを有す
るサーバ・ステーションとして利用可能である。
【0018】図2を参照すると、ローカル処理サイド1
20のインターフェース・コントローラ113の更に詳
細なブロック図が示され、それは、I/O拡張バス13
0を制御するためのバス・マスタとして作用するための
機能を含むローカル処理サイドの周辺機能全体を制御す
るためのローカル処理装置201を含む。ローカル処理
装置201は、前述のPowerPC403のような種
々の商業的に入手可能なプロセッサより成る。ホスト処
理サイド110と同様に、ローカル処理装置201はロ
ーカルROM205に記憶されたファームウエア命令を
実行する。ローカル・インターフェース・コントローラ
113は、ローカル・プロセッサ・インターフェース・
ブリッジ207を介してローカル処理装置201を種々
のローカル処理サイドのエレメントとインターフェース
するためのローカル・バス211を含む。好ましくは、
ローカル・バス211は、プロセッサ・インターフェー
ス・ブリッジ207を介してローカル処理装置201と
インターフェースするPCIバスである。又、ローカル
・バス211には、ローカル・メモリ203への及びロ
ーカル・メモリ203からのデータの転送を制御するた
めのローカル・メモリ・コントローラ213が結合され
る。
【0019】ローカル・バス211の反対側には、ロー
カル・バス211及び装置バス231(例えば、SCS
Iバス)の間に周知の装置インターフェース・ブリッジ
217が結合される。ローカル・インターフェース・コ
ントローラ113は、装置インターフェース・ブリッジ
217を介してSCSI記憶装置のようなローカル装置
115をインターフェースする。本発明の好適な実施例
では、ローカル装置115は、ローカル処理サイド12
0によって大きいデータ・ブロックを転送することがで
きるRAID記憶装置アレイより成る多数の装置の1つ
である。データ転送コントローラ・ブリッジ209は、
本発明によれば、ホスト処理サイド110及びローカル
処理サイド120の間のデータ・ブロック及びコマンド
・ブロックの転送を制御する他に、ローカル・バス21
1をI/O拡張バス130にインターフェースする。
【0020】図3を参照すると、本発明の好適な実施例
を具体化するホスト処理サイド110及びローカル処理
サイド120の関連部分の更に詳細なブロック図が示さ
れる。ローカル処理サイド120において、コマンド/
データ・ブロック転送コントローラ209は、I/O拡
張バス130を介してホスト・メモリ107に及びホス
ト・メモリ107からデータ・ブロックを転送するため
のホストDMAステート・マシン322を含む。コマン
ド/データ・ブロック転送コントローラ209は、ロー
カル・メモリ・コントローラ213を介してローカル・
メモリ203に及びローカル・メモリ203からデータ
・ブロックを転送するためのローカルDMAステート・
マシーン324も含む。ホストDMAステート・マシン
322とローカルDMAステート・マシン324との間
に結合された先入れ先出し(FIFO)バッファ326
は、そのデータ転送に関連したデータ・ブロックを一時
的に記憶するためにコマンド/データ・ブロック転送コ
ントローラ209内に配置される。ホスト処理サイド1
10からローカル処理サイド120へのコマンド・ブロ
ック転送時に、FIFOバッファ326はホストDMA
ステート・マシン322からコマンド・ブロックを受け
取りそして一時的に記憶し、そのような一時的に記憶さ
れたコマンド・ブロックを、ローカル・メモリのコマン
ド・ブロック部分に記憶されるようにローカルDMAス
テート・マシン324に与える。
【0021】ホスト処理装置103は、すべてのコマン
ド・ブロック転送の開始前に、1つ又は複数のホスト・
コマンド・ブロック301を作成する。ホスト・コマン
ド・ブロック301の各々のコマンド・ブロック・アド
レスは、コマンド/データ・ブロック転送コントローラ
209におけるホスト・コマンド・アドレス・レジスタ
・セット311に転送される。ホスト処理装置103
は、ホスト・コマンド・アドレス・レジスタ・セット3
11への書込時に、ホスト・アドレス情報の書込に加え
て、コマンド転送開始信号をホスト・コマンド・アドレ
ス・レジスタ・セット311に書き込む。それは、ホス
ト・アドレス情報によって指定されたコマンド転送を開
始するようにコマンド/データ・ブロック転送コントロ
ーラ209に信号する。ローカル処理装置201は、す
べてのコマンド・ブロック転送の開始前に、複数のロー
カル・コマンド・アドレス・イメージ309を記憶する
ためのコマンド・アドレス待ち行列部分307を作成す
る。そのローカル・コマンド・アドレス・イメージ30
9の各々は、その後のローカル・コマンド・ブロック3
04が記憶されるべきローカル・メモリ・アドレスに対
応したアドレス情報を有する。
【0022】ホスト処理装置103がホスト・アドレス
をホスト・コマンド・アドレス・レジスタ・セット31
1に書き込むと直ちに、コマンド/データ・ブロック転
送コントローラ209は、如何なるローカル処理装置2
01の介入もなしに、ホストDMAステート・マシン3
22を介して対応するホスト・コマンド・ブロック30
1の1つを検索する。ホストDMAステート・マシン3
22は、その検索されたホスト・コマンド・ブロック3
01をFIFOバッファ326に一時的に記憶する。し
かる後、ローカルDMAステート・マシン324は、ロ
ーカル処理装置201の介入なしに、FIFOバッファ
326に記憶されたコマンド・ブロックを検索し、ロー
カル・コマンド・アドレス・イメージ309によって指
定されたローカル・メモリ・ロケーションにそれを転送
する。ローカル処理装置201はコマンド・ブロック転
送を遂行するために割込をされることはなく、ホスト処
理装置103は、ローカル処理装置201がコマンド・
ブロック転送を終了するのを待つ必要はない。従って、
ホスト処理装置103及びローカル処理装置201はコ
マンド・ブロックの転送と関連したオーバヘッドから開
放される。
【0023】ローカル・コマンド・アドレス・イメージ
309は、対応するローカル・コマンド・ブロック30
4に関するローカル・アドレス情報を記憶する。コマン
ド/データ・ブロック転送コントローラ209は、ホス
ト処理サイド110からローカルDMAステート・マシ
ン324を介してローカル・メモリ203に転送された
コマンド・ブロックを記憶するためのローカル・アドレ
ス情報を処理する。コマンド/データ・ブロック転送コ
ントローラ209は、複数のローカル・アドレス待ち行
列レジスタ319を有するローカル・コマンド・アドレ
ス待ち行列レジスタ・セット313を含む。それらのロ
ーカル・アドレス待ち行列レジスタ319の各々は、ロ
ーカル・メモリ203のコマンド・アドレス待ち行列部
分307におけるロケーションに対応する。ローカル処
理装置201は、初期設定時に、その後のローカル・コ
マンド・アドレス・イメージ309が何処に記憶される
べきか及びその後のローカル・コマンド・アドレス・イ
メージ309が何処から検索されるべきかを表すそのコ
マンド・アドレス待ち行列部分307におけるアドレス
を指す適当なポインタ値をセットする。
【0024】図4を参照すると、本発明の好適な実施例
に従ってホスト・コマンド・アドレス・レジスタ・セッ
ト311を定義する図400が示される。そのホスト・
コマンド・アドレス・レジスタ・セット311は、2つ
の32ビット・レジスタ、即ち、コマンド・チャネル・
ホスト・アドレス・レジスタ(CCHAR)410及び
コマンド・チャネル制御レジスタ(CCCR)420よ
り成る。ホスト処理装置103は、ローカル処理サイド
120に転送されるべきコマンド・ブロックのホスト・
メモリ・アドレスをCCHAR410にロードする。C
CCR420はその転送のためのコマンド・チャネルを
制御する。CCCR420は2つの部分、即ち、コマン
ド・ブロック・カウント部分454及び制御部分452
に分けられる。
【0025】図5を参照すると、CCCR420を表す
図が示される。CCCR420はそれのビット31−1
6を予約されている。ビット15−8はCCCR420
のコマンド・ブロック・カウント部分454より成り、
CCHAR410によってアドレスされた対応するコマ
ンド・ブロックのバイト・カウントを含む。制御部分4
52は次のように定義された8個のビットより成る。即
ち、 ビット7−5:予約済み。 ビット4:割込ローカル・イネーブル・ビット(IL
E)である。それは、1にセットされる時、現在のコマ
ンド・ブロック転送の終了時にコマンド・チャネル割込
をセットさせる。 ビット3:コマンド・チャネル・アクセス制御セマフォ
として作用するセマフォ・ビットである。ホスト処理装
置103がこのビットを「0」として読み取る時、それ
はコマンド・チャネルの制御を有し、コマンド・ブロッ
クをローカル・メモリ203に転送するようにホスト・
コマンド・アドレス・レジスタ・セット311をプログ
ラムすることができる。コマンド・チャネルをロックす
るためには、そのセマフォ・ビットは、「0」として読
み取られた後、他のホスト資源がそのコマンド・チャネ
ルへのアクセスを得ることのないように自動的に「1」
にセットされる。このセマフォ・ビット3は、コマンド
・チャネル・オペレーションが終了した後に「0」にリ
セットされ、従って、他の転送に対してチャネルを自由
にする。 ビット2:予約済み。 ビット1:コマンド転送開始信号ビットである。それ
は、ホスト処理装置103によって「1」にセットされ
る時、CCHAR410によって表されたアドレスで始
まるコマンド・ブロックをコピーするためのコマンド・
チャネルを開始するようコマンド/データ・ブロック転
送コントローラ209に信号する。このコマンド転送開
始信号ビットは、ローカル・メモリ203におけるコマ
ンド待ち行列へのそのコピーされたコマンド・ブロック
の書込の終了時に、「0」にリセットされる。詳しく後
述するように、コマンド転送開始信号ビットは、多数の
コマンド・ブロックが相互に連鎖されているかどうかを
表すためにも使用される。又、コマンド転送開始信号ビ
ットは、「1」にセットされる時、多数のコマンドの連
鎖を可能にする連鎖イネーブル情報ビットを構成する。 ビット0:予約済み。
【0026】前述のように、本発明は、更に、ローカル
処理装置のオーバヘッドを最小にするように順序付けら
れた多数のローカル・コマンド・アドレス・イメージ3
09の待ち行列化を与える。従って、コマンド/データ
・ブロック転送コントローラ209のローカル・コマン
ド・アドレス待ち行列レジスタ・セット313は4つの
32ビット・ローカル・アドレス待ち行列レジスタ31
9より成る。
【0027】図6を参照すると、ローカル・コマンド・
アドレス待ち行列レジスタ・セット313を定義する図
600を示す。コマンド待ち行列開始レジスタ(CQS
R)610は、コマンド・アドレス待ち行列部分307
の開始のローカル・メモリ・アドレスを含む。コマンド
待ち行列ヘッド・レジスタ(CQHR)620は、コマ
ンド/データ・ブロック転送コントローラ209が次の
ローカル・コマンド・アドレス・イメージ309をフェ
ッチするローカル・メモリ・アドレスを含む。コマンド
待ち行列テイル・レジスタ(CQTR)630は、ロー
カル処理装置201が次のローカル・コマンド・アドレ
ス・イメージ309を記憶するローカル・メモリ・アド
レスを含む。コマンド待ち行列終了レジスタ(CQE
R)640は、コマンド・アドレス待ち行列部分307
の終端のローカル・メモリ・アドレスを含む。
【0028】図7を参照すると、ホスト処理装置103
によって作成されるようなコマンド・ブロックを表す図
700が示される。コマンド・ブロックはコマンド部分
710及び付加部分720を含む。コマンド部分710
は長さが可変であってもよく、そしてホスト処理装置1
03によって構成され、ホスト・コマンド・ブロック3
01の1つに記憶される。付加部分720は、多数のコ
マンドブロックを連鎖させるために使用される。その付
加部分720は、2つのイメージ、即ち、CCHAR4
10及びCCCR420にそれぞれ対応するCCHAR
イメージ730及びCCCRイメージ740を含む。C
CHARイメージ730及びCCCRイメージ740
は、その後に連鎖したコマンド・ブロックのアドレス及
び制御設定を含む。コマンド連鎖を可能にするために、
ホスト処理装置103は、コマンド部分710を形成し
た後、その後のコマンド・ブロックのアドレスをCCH
ARイメージ730に記憶することによって、及び制御
設定をCCCRイメージ740に記憶することによって
付加部分720を形成し、従って、連鎖オペレーション
を可能にする。本発明の好適な実施例では、連鎖は、C
CCRイメージ740のコマンド転送開始信号ビットに
「1」状態を記憶することによって可能にされる。その
コマンド転送開始信号ビットは、CCCR420にロー
ドされる時、その後のコマンド・ブロック転送を開始す
るようにコマンド/データ・ブロック転送コントローラ
209に自動的に信号する。
【0029】図3を再び参照すると、ホスト・コマンド
・アドレス・レジスタ・セット311のコマンド・アド
レス・レジスタ317は、それぞれ、図4に示された2
つの32ビット・レジスタCCHAR410及びCCC
R420に対応する。同様に、ローカル・コマンド・ア
ドレス待ち行列レジスタ・セット313のローカル・ア
ドレス待ち行列レジスタ319は、図6のレジスタCQ
SR610、CQHR620、CQTR630、及びC
QER640に対応する。
【0030】本発明の好適な実施例では、ホスト・コマ
ンド・アドレス・レジスタ・セット311及びローカル
・コマンド・アドレス待ち行列レジスタ・セット313
はコマンド/データ・ブロック転送コントローラ209
内に組み込まれる。図示のように、ローカル・メモリ2
03は、1つ又は複数のローカル・コマンド・アドレス
・イメージ309を記憶するためのコマンド・アドレス
待ち行列部分307を含むように区切られる。ホスト処
理サイド110では、ホスト・メモリ107は、ホスト
処理装置103によって作成されたコマンド・ブロック
・イメージを記憶するための複数の分散したホスト・コ
マンド・ブロック301を含むように区切られる。前述
のように、ホスト・メモリ・コントローラ109は、ホ
スト・メモリ107、ホスト処理装置103、及びI/
Oブリッジ・インターフェース111の間のホスト・コ
マンド・ブロック301の転送を制御する。一方、コマ
ンド/データ・ブロック転送コントローラ209は、ホ
スト処理サイド110及びローカル処理サイド120の
間のデータ・ブロック及びコマンド・ブロックの転送を
制御する。
【0031】動作的には、システム始動時に、ローカル
処理装置201は、ローカル・メモリ203のコマンド
・アドレス待ち行列部分307の開始アドレスを表す事
前定義されたアドレスをCQSR610、CQHR62
0、及びCQTR630にロードする。当初は、CQS
R610、CQHR620、及びCQTR630は、コ
マンド・アドレス待ち行列部分307の開始ローカル・
メモリ・アドレスを表す同じ値をロードされる。CQH
R620及びCQTR630は、その後のローカル・コ
マンド・アドレス・イメージ309が何処に記憶される
か及びその後のローカル・コマンド・アドレス・イメー
ジ309が何処から検索されるか表す。CQER640
は、指定されたコマンド・アドレス待ち行列部分307
の終了アドレスを表す値をロードされる。
【0032】コマンド・ブロック転送の開始時に、ホス
ト処理装置103は、先ず、コマンド・ブロック転送が
処理中であるかどうかを決定するために、制御レジスタ
部分452のセマフォ・ビット3を調べる。セマフォ・
ビット3が「1」として読み取られる場合、そのような
状態は、コマンド・ブロック転送が既に進行中であるこ
とを表すので、ホスト処理装置103はコマンド・ブロ
ック転送を開始しないであろう。しかし、そのセマフォ
・ビット3が「0」状態として読み取られる場合、ホス
ト処理装置103は、ホスト・コマンド・ブロック・ア
ドレス情報をホスト・コマンド・アドレス・レジスタ・
セット311に書き込むことによってコマンド・ブロッ
ク転送を開始するであろう。そのホスト・コマンド・ブ
ロック・アドレス情報は、ホスト・メモリ107におけ
るホスト・コマンド・ブロック開始アドレスと、CCH
AR410及びCCCR420に従ってコマンド・アド
レス・レジスタ317に書き込まれるコマンド・ブロッ
クのバイト・カウントとより成る。
【0033】第1のコマンド・ブロックの開始時に、ホ
スト・コマンド・ブロック・アドレス情報をコマンド・
アドレス・レジスタ317に書き込むと同時に、ホスト
処理装置103はコマンド転送開始信号ビットを「1」
にセットし、従って、コマンド・ブロック転送の開始を
可能にする。コマンド/データ・ブロック転送コントロ
ーラ209は、コマンド転送開始信号ビット及びホスト
・コマンド・アドレス・レジスタ・セット311に記憶
された値に応答して、ホストDMAステート・マシン3
22を介して指定のコマンド・ブロックを検索する。コ
マンド・ブロック転送はローカル処理装置201の介入
なしに開始される。ホストDMAステート・マシン32
2は、先入れ先出しに基づいてFIFOバッファ326
に、その検索されたコマンド・ブロックを記憶する。一
旦その転送されたコマンド・ブロックがFIFOバッフ
ァ326に記憶されると、ローカルDMAステート・マ
シン324は、FIFOバッファ326に記憶されたコ
マンドブロックを、ローカル・コマンド・アドレス待ち
行列レジスタ・セット313に記憶されたポインタ値に
より指定されたローカル・アドレスで始まるローカル・
メモリへのコピー動作を進める。
【0034】前述のように、ローカル・コマンド・アド
レス待ち行列レジスタ・セット313に記憶されたポイ
ンタ値は、先ず、ローカル処理装置201によって事前
定義の設定にセットされる。ローカル処理装置201
は、ローカル・メモリ203において得られるフリーな
バッファ・スペースに基づいてローカル・コマンド・ア
ドレス・イメージ309、及びローカル処理装置201
が任意の所与の時間に処理し得るコマンド・ブロックの
最大数を作成する。ローカル・コマンド・アドレス・イ
メージ309の待ち行列を作成するためのそのローカル
処理装置201の機能は、ローカル・コマンド・ブロッ
ク304がローカル・メモリ203の連続ブロックの割
振を必要とすることなくローカル・メモリ203におい
て分散されることを可能にする。
【0035】一旦初期のコマンド・ブロックが転送され
ると、コマンド・ブロックの付加部分720の内容がホ
スト・コマンド・アドレス・レジスタ・セット311に
書き込まれる。コマンド転送開始信号ビットを「1」に
セットすることによって連鎖オペレーションが可能にさ
れる場合、コマンド/データ・ブロック転送コントロー
ラ209は、ローカル処理装置201の介入なしに、付
加部分720に記憶されたホスト・コマンド・ブロック
・アドレス情報に基づいてその後のコマンド転送を自動
的に開始するであろう。
【0036】一旦ローカル処理装置201がローカル・
コマンド・アドレス・イメージ309をアセンブルする
と、CQHRはインクリメントされ、CQTRに等しく
なくなる。一旦コマンド・ブロックがFIFOバッファ
326に記憶されると、ローカルDMAステート・マシ
ン324はコマンド・ブロックを、CQTRにおいて指
定されたアドレスで始まるローカル・メモリ203にコ
ピーするであろう。一旦コマンド・ブロックがローカル
・メモリにコピーされると、コマンド/データ・ブロッ
ク転送コントローラ209は、ローカル・コマンド・ア
ドレス・イメージ309の長さだけCQTRをインクリ
メントする。
【0037】コマンド/データ・ブロック転送コントロ
ーラ209は、ローカル・メモリのコマンド・アドレス
待ち行列部分307において待ち行列化された各ローカ
ル・コマンド・アドレス・イメージ309に対して上記
のステップを遂行し、従って、コマンド・ブロック転送
と関連したオーバヘッドからローカル処理装置201及
びホスト処理装置103を開放する。
【0038】ローカル・コマンド・アドレス・イメージ
309で始まるローカル・メモリへの各コマンド・ブロ
ックの転送の終了時に、コマンド/データ・ブロック転
送コントローラ209はCQTRにおけるテイル・ポイ
ンタをインクリメントし、CQHRに記憶されたヘッド
・ポインタ値にそれを比較する。コマンド・アドレス待
ち行列部分307の待ち行列解除オペレーションは、テ
イル・ポインタ値がヘッド・ポインタ値に等しくない限
り連続的に遂行される。しかし、テイル・ポインタ値が
ヘッド・ポインタ値に等しくなる時、コマンド/データ
・ブロック転送コントローラ209は、ローカル・メモ
リへのコマンド・ブロックの転送をローカル・コマンド
・アドレス・イメージ309において終了する。それ
は、最大数のコマンド・ブロックがローカル処理装置2
01によって処理されようとしていることをそのような
状態が表しているためである。
【0039】本発明は有限の数のローカル・コマンド・
アドレス・イメージ309(CQERに記憶されたエン
ド・ポインタ値によって表されるような)を待ち行列化
することを意図しているので、待ち行列化されたローカ
ル・コマンド・アドレス・イメージ309の数がCQH
Rヘッド・ポインタ値にCQERエンド・ポインタ値を
越えさせる時、ラップ・アラウンド・フィーチャが与え
られる。そのような場合、ヘッド・ポインタはCQSR
における開始ポインタに等しい値を持つようにラップさ
れ、更なるローカル・コマンド・アドレス・イメージ3
09の待ち行列化の時にインクリメントされる。しか
し、この状況において、ローカル処理装置201は、ラ
ップされたCQHRヘッド・ポインタがCQTRテイル
・ポインタに等しくならない限り、更なるローカル・コ
マンド・アドレス・イメージ309を待ち行列化するで
あろう。一旦そのラップされたCQHRヘッド・ポイン
タが[CQTRテイル・ポインタ]−[ローカル・コマ
ンド・アドレス・イメージ]に等しくなると、ローカル
処理装置201は、CQTRテイル・ポインタによって
アドレスされたイメージが待ち行列解除されるまで、更
なるローカル・コマンド・アドレス・イメージ309の
待ち行列化を終了する。
【0040】本発明に従ってコマンド・アドレス待ち行
列部分307及びローカル・コマンド・アドレス・イメ
ージ309によって指定されたローカル・コマンド・ア
ドレスの待ち行列化は、ローカル処理装置201が既に
進行中の1つ又は複数のコマンドの終了を待つ必要なし
に、ローカル・コマンド・ブロック・アドレスを待ち行
列化することを可能にする。即ち、処理される多くのコ
マンドの1つが待ち行列の順序を外れて終了する場合、
ローカル処理装置201は各コマンド・ブロックの順次
終了を待つ必要なく、そのようなコマンドによって自由
にされた対応するコマンド・ブロック・スペースを再割
振することができる。
【0041】従って、本発明は、コマンド・ブロック転
送を開始するようにコマンド/データ・ブロック転送コ
ントローラ209に信号するコマンド転送開始信号ビッ
トをセットすることによって、ローカル処理装置201
の介入なしにコマンド・ブロックを転送する。従って、
ローカル処理装置201及びホスト処理装置103の両
方とも、コマンド・ブロック転送と関連したハンドシェ
ーク・オーバヘッドから開放される。
【0042】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0043】(1)ホスト処理サイドからローカル処理
サイドにI/O拡張データ・バスを通してコマンド・ブ
ロックを転送するための情報処理システムにして、前記
ホスト処理サイドにおいてコマンド及びデータ情報を処
理するためのホスト処理装置と、前記ホスト処理装置に
よってアクセス可能であり、1つ又は複数のホスト・メ
モリ部分を含み、前記ローカル処理サイドに転送される
べき前記ホスト処理装置により作成された1つ又は複数
のコマンド・ブロックを記憶するためのホスト・メモリ
と、前記ホスト処理サイドから転送されたコマンド・ブ
ロックを処理するためのローカル処理装置と、前記ロー
カル処理装置によってアクセス可能であり、1つ又は複
数のローカル・メモリ部分を含み、前記ホスト処理サイ
ドから転送されたコマンド・ブロックを記憶するための
ローカル・メモリと、前記ローカル処理サイドに転送さ
れるべきコマンド・ブロックを記憶するホスト・メモリ
部分に対応したホスト・コマンド・アドレス情報を記憶
するためのアドレス・レジスタとコマンド転送開始信号
を記憶するための信号レジスタとを含む前記ホスト処理
装置によってアクセス可能なコマンド・アドレス・レジ
スタ・セットを含み、コマンド・ブロック転送を制御す
るためのコマンド・ブロック転送コントローラと、を含
み、前記ホスト処理装置は前記コマンド・アドレス・レ
ジスタ・セットにホスト・コマンド・アドレス情報を書
き込み、それと同時に、コマンド転送開始信号情報を書
き込むこと、及び前記コマンド・ブロック転送コントロ
ーラは前記コマンド転送開始信号に応答してローカル処
理装置の介入なしに前記ホスト・メモリからコマンド・
ブロックを検索すること、を特徴とする情報処理システ
ム。 (2)前記転送されたコマンド・ブロックはコマンド部
分及びそれに付属したコマンド・アドレス部分を含むこ
とを特徴とする上記(1)に記載の情報処理システム。 (3)前記コマンド・アドレス部分は他のコマンド・ブ
ロックが前記転送されたコマンド・ブロックに連鎖され
るかどうかを表す連鎖イネーブル情報を含むことを特徴
とする上記(2)に記載の情報処理システム。 (4)前記コマンド・アドレス部分は前記転送されたコ
マンド・ブロックに連鎖されたコマンド・ブロックのホ
スト・アドレスを含むことを特徴とする上記(4)に記
載の情報処理システム。 (5)前記コマンド・ブロック転送コントローラは前記
連鎖イネーブル情報を調べることによって他のコマンド
・ブロックが前記転送されたコマンド・ブロックに連鎖
されるかどうかを決定するためのデテクタを含むこと、
前記コマンド・ブロック転送コントローラは前記連鎖さ
れたコマンド・ブロックのホスト・メモリ・アドレスを
前記コマンド・アドレス・レジスタ・セットに転送する
こと、及び前記コマンド・ブロック転送コントローラは
転送されたホスト・メモリ・アドレスに応答してホスト
・メモリ部分から対応するコマンド・ブロックを検索す
ること、を特徴とする上記(4)に記載の情報処理シス
テム。 (6)前記コマンド・ブロック転送コントローラはすべ
てのコマンド・ブロック転送の開始前に前記ローカル処
理装置によってプログラム可能なコマンド・アドレス待
ち行列レジスタを含み、前記コマンド・アドレス待ち行
列メモリ部分に対する事前定義されたローカル・メモリ
・アドレスをセットし、その後のローカル・コマンド・
アドレス情報が何処に記憶されるべきか表すデフォルト
・コマンド・アドレス・イメージを指すヘッド・ポイン
タ値及びその後のローカル・コマンド・アドレス情報が
何処から検索されるべきかを表すデフォルト・ステータ
ス待ち行列イメージを指すテイル・ポインタを記憶する
ことを特徴とする上記(1)に記載の情報処理システ
ム。 (7)前記ホスト処理装置はすべてのコマンド・ブロッ
ク転送の前にホスト・コマンド・アドレス情報をコマン
ド・アドレス・レジスタ・セットに書き込むことを特徴
とする上記(1)に記載の情報処理システム。 (8)前記コマンド・アドレス・レジスタ・セットはコ
マンド・ブロック転送が終了したかどうかを表すコマン
ド・チャネル・ビジー情報を含むことを特徴とする上記
(1)に記載の情報処理システム。 (9)前記ホスト処理装置はコマンド・ブロック転送を
開始する前に前記コマンド・チャネル・ビジー情報を調
べることを特徴とする上記(8)に記載の情報処理シス
テム。 (10)前記ホスト・メモリ・アクセス・コントローラ
及び前記ローカル・メモリ・アクセス・コントローラの
間に接続され、コマンド・ブロック転送に関連したデー
タを受け取り且つ一時的に記憶するためのFIFOレジ
スタを含むことを特徴とする上記(5)に記載の情報処
理システム。 (11)前記ホスト・コマンド・アドレス情報はホスト
・メモリ部分に対応するアドレス及び前記ホスト・メモ
リ部分に記憶されたコマンド・ブロックの長さを表すサ
イズ情報を含むことを特徴とする上記(1)に記載の情
報処理システム。 (12)前記ホスト処理サイドはホストシステムを含む
こと、及び前記ローカル処理サイドはローカル・インタ
ーフェース・コントローラを含むこと、を特徴とする上
記(1)に記載の情報処理システム。 (13)前記コマンド・アドレス待ち行列部分は前記ロ
ーカル・メモリの一部分であることを特徴とする上記
(1)に記載の情報処理システム。 (14)前記ローカル・メモリは複数のローカル・コマ
ンド・アドレス・イメージを含むコマンド・アドレス待
ち行列部分を含むこと、前記コマンド・アドレス・イメ
ージの各々はローカル・メモリ部分に対応したローカル
・コマンド・アドレス情報を記憶すること、及び前記コ
マンド・ブロック転送コントローラは前記ローカル・コ
マンド・アドレス情報に応答して前記ローカル・アドレ
スに対応したローカル・メモリ部分に前記コマンド・ブ
ロックを記憶すること、を特徴とする上記(1)に記載
の情報処理システム。
【図面の簡単な説明】
【図1】本発明を組み込んだ例示的なコンピュータ・シ
ステムのブロック図である。
【図2】図1におけるローカル・インターフェース・コ
ントローラのブロック図である。
【図3】図1のコンピュータ・システムの更に詳細なブ
ロック図である。
【図4】図3のブロック図に示されたコマンド・ブロッ
ク・アドレス・レジスタ・セットを示す図である。
【図5】図4に示されたCCCRを示す図である。
【図6】図3のブロック図に示されたローカル・コマン
ド・アドレス待ち行列レジスタ・セットを示す図であ
る。
【図7】図1に示されたシステムのコマンド・ブロック
転送において使用されるコマンド・ブロックを示す図で
ある。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ギャリー・ホッチ アメリカ合衆国フロリダ州、コーラル・ス プリングス、エヌ・ダブリュ・フィフティ ーンス・ストリート 11062 (72)発明者 ティモシー・ヴィンセント・リー アメリカ合衆国ノースカロライナ州、ラー レイ、コーブ・ポイント・ドライブ 7500 −33 (72)発明者 アンドリュ・ボイス・マックネイル、ジュ ニア アメリカ合衆国ノースカロライナ州、アペ ックス、スワンズボロウ・ドライブ 107 (72)発明者 エド・ワッチェル アメリカ合衆国ニューヨーク州、ニューヨ ーク、サード・アベニュー 290、ナンバ ー・19・エフ

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】ホスト処理サイドからローカル処理サイド
    にI/O拡張データ・バスを通してコマンド・ブロック
    を転送するための情報処理システムにして、 前記ホスト処理サイドにおいてコマンド及びデータ情報
    を処理するためのホスト処理装置と、 前記ホスト処理装置によってアクセス可能であり、1つ
    又は複数のホスト・メモリ部分を含み、前記ローカル処
    理サイドに転送されるべき前記ホスト処理装置により作
    成された1つ又は複数のコマンド・ブロックを記憶する
    ためのホスト・メモリと、 前記ホスト処理サイドから転送されたコマンド・ブロッ
    クを処理するためのローカル処理装置と、 前記ローカル処理装置によってアクセス可能であり、1
    つ又は複数のローカル・メモリ部分を含み、前記ホスト
    処理サイドから転送されたコマンド・ブロックを記憶す
    るためのローカル・メモリと、 前記ローカル処理サイドに転送されるべきコマンド・ブ
    ロックを記憶するホスト・メモリ部分に対応したホスト
    ・コマンド・アドレス情報を記憶するためのアドレス・
    レジスタとコマンド転送開始信号を記憶するための信号
    レジスタとを含む前記ホスト処理装置によってアクセス
    可能なコマンド・アドレス・レジスタ・セットを含み、
    コマンド・ブロック転送を制御するためのコマンド・ブ
    ロック転送コントローラと、 を含み、 前記ホスト処理装置は前記コマンド・アドレス・レジス
    タ・セットにホスト・コマンド・アドレス情報を書き込
    み、それと同時に、コマンド転送開始信号情報を書き込
    むこと、及び前記コマンド・ブロック転送コントローラ
    は前記コマンド転送開始信号に応答してローカル処理装
    置の介入なしに前記ホスト・メモリからコマンド・ブロ
    ックを検索すること、 を特徴とする情報処理システム。
  2. 【請求項2】前記転送されたコマンド・ブロックはコマ
    ンド部分及びそれに付属したコマンド・アドレス部分を
    含むことを特徴とする請求項1に記載の情報処理システ
    ム。
  3. 【請求項3】前記コマンド・アドレス部分は他のコマン
    ド・ブロックが前記転送されたコマンド・ブロックに連
    鎖されるかどうかを表す連鎖イネーブル情報を含むこと
    を特徴とする請求項2に記載の情報処理システム。
  4. 【請求項4】前記コマンド・アドレス部分は前記転送さ
    れたコマンド・ブロックに連鎖されたコマンド・ブロッ
    クのホスト・アドレスを含むことを特徴とする請求項4
    に記載の情報処理システム。
  5. 【請求項5】前記コマンド・ブロック転送コントローラ
    は前記連鎖イネーブル情報を調べることによって他のコ
    マンド・ブロックが前記転送されたコマンド・ブロック
    に連鎖されるかどうかを決定するためのデテクタを含む
    こと、 前記コマンド・ブロック転送コントローラは前記連鎖さ
    れたコマンド・ブロックのホスト・メモリ・アドレスを
    前記コマンド・アドレス・レジスタ・セットに転送する
    こと、及び前記コマンド・ブロック転送コントローラは
    転送されたホスト・メモリ・アドレスに応答してホスト
    ・メモリ部分から対応するコマンド・ブロックを検索す
    ること、 を特徴とする請求項4に記載の情報処理システム。
  6. 【請求項6】前記コマンド・ブロック転送コントローラ
    はすべてのコマンド・ブロック転送の開始前に前記ロー
    カル処理装置によってプログラム可能なコマンド・アド
    レス待ち行列レジスタを含み、前記コマンド・アドレス
    待ち行列メモリ部分に対する事前定義されたローカル・
    メモリ・アドレスをセットし、その後のローカル・コマ
    ンド・アドレス情報が何処に記憶されるべきか表すデフ
    ォルト・コマンド・アドレス・イメージを指すヘッド・
    ポインタ値及びその後のローカル・コマンド・アドレス
    情報が何処から検索されるべきかを表すデフォルト・ス
    テータス待ち行列イメージを指すテイル・ポインタを記
    憶することを特徴とする請求項1に記載の情報処理シス
    テム。
  7. 【請求項7】前記ホスト処理装置はすべてのコマンド・
    ブロック転送の前にホスト・コマンド・アドレス情報を
    コマンド・アドレス・レジスタ・セットに書き込むこと
    を特徴とする請求項1に記載の情報処理システム。
  8. 【請求項8】前記コマンド・アドレス・レジスタ・セッ
    トはコマンド・ブロック転送が終了したかどうかを表す
    コマンド・チャネル・ビジー情報を含むことを特徴とす
    る請求項1に記載の情報処理システム。
  9. 【請求項9】前記ホスト処理装置はコマンド・ブロック
    転送を開始する前に前記コマンド・チャネル・ビジー情
    報を調べることを特徴とする請求項8に記載の情報処理
    システム。
  10. 【請求項10】前記ホスト・メモリ・アクセス・コント
    ローラ及び前記ローカル・メモリ・アクセス・コントロ
    ーラの間に接続され、コマンド・ブロック転送に関連し
    たデータを受け取り且つ一時的に記憶するためのFIF
    Oレジスタを含むことを特徴とする請求項5に記載の情
    報処理システム。
  11. 【請求項11】前記ホスト・コマンド・アドレス情報は
    ホスト・メモリ部分に対応するアドレス及び前記ホスト
    ・メモリ部分に記憶されたコマンド・ブロックの長さを
    表すサイズ情報を含むことを特徴とする請求項1に記載
    の情報処理システム。
  12. 【請求項12】前記ホスト処理サイドはホストシステム
    を含むこと、及び前記ローカル処理サイドはローカル・
    インターフェース・コントローラを含むこと、 を特徴とする請求項1に記載の情報処理システム。
  13. 【請求項13】前記コマンド・アドレス待ち行列部分は
    前記ローカル・メモリの一部分であることを特徴とする
    請求項1に記載の情報処理システム。
  14. 【請求項14】前記ローカル・メモリは複数のローカル
    ・コマンド・アドレス・イメージを含むコマンド・アド
    レス待ち行列部分を含むこと、 前記コマンド・アドレス・イメージの各々はローカル・
    メモリ部分に対応したローカル・コマンド・アドレス情
    報を記憶すること、及び前記コマンド・ブロック転送コ
    ントローラは前記ローカル・コマンド・アドレス情報に
    応答して前記ローカル・アドレスに対応したローカル・
    メモリ部分に前記コマンド・ブロックを記憶すること、 を特徴とする請求項1に記載の情報処理システム。
JP8234192A 1995-12-13 1996-09-04 ローカル・プロセッサの介入なしにコマンド・ブロックをローカル処理サイドに転送するための情報処理システム Ceased JPH09160861A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/572235 1995-12-13
US08/572,235 US5968143A (en) 1995-12-13 1995-12-13 Information handling system for transfer of command blocks to a local processing side without local processor intervention

Publications (1)

Publication Number Publication Date
JPH09160861A true JPH09160861A (ja) 1997-06-20

Family

ID=24286930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8234192A Ceased JPH09160861A (ja) 1995-12-13 1996-09-04 ローカル・プロセッサの介入なしにコマンド・ブロックをローカル処理サイドに転送するための情報処理システム

Country Status (2)

Country Link
US (1) US5968143A (ja)
JP (1) JPH09160861A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000075789A1 (en) * 1999-06-09 2000-12-14 Qlogic Corporation A method and apparatus for automatically transferring i/o blocks between a host system and a host adapter
JP2012529103A (ja) * 2009-06-03 2012-11-15 マイクロン テクノロジー, インク. メモリデバイスによりホストメモリアクセスを制御するための方法およびシステム

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081851A (en) 1997-12-15 2000-06-27 Intel Corporation Method and apparatus for programming a remote DMA engine residing on a first bus from a destination residing on a second bus
US6185607B1 (en) * 1998-05-26 2001-02-06 3Com Corporation Method for managing network data transfers with minimal host processor involvement
US6976083B1 (en) 1999-02-19 2005-12-13 International Business Machines Corporation Apparatus for providing direct data processing access using a queued direct input-output device
US6339801B1 (en) * 1999-02-19 2002-01-15 International Business Machines Corporation Method for determining appropriate devices for processing of data requests using a queued direct input/output device by issuing a special command specifying the devices can process data
US6341318B1 (en) * 1999-08-10 2002-01-22 Chameleon Systems, Inc. DMA data streaming
US6775757B1 (en) 1999-12-14 2004-08-10 Genesis Microchip Inc. Multi-component processor
US6742083B1 (en) 1999-12-14 2004-05-25 Genesis Microchip Inc. Method and apparatus for multi-part processing of program code by a single processor
US6920543B1 (en) * 1999-12-14 2005-07-19 Genesis Microchip, Inc. Method and apparatus for performing distributed processing of program code
US6728853B1 (en) * 1999-12-14 2004-04-27 Genesis Microchip Inc. Method of processing data utilizing queue entry
US6738884B1 (en) 1999-12-14 2004-05-18 Genesis Microchip Inc. Method and apparatus for processing data with semaphores
JP2003030018A (ja) * 2001-07-13 2003-01-31 Sony Corp データ通信装置および方法、データ通信システム、情報処理装置および方法、記録媒体、並びにプログラム
US20030086485A1 (en) * 2001-11-08 2003-05-08 John Lin Master to multi-slave asynchronous transmit fifo
US7139856B2 (en) * 2002-01-03 2006-11-21 Intel Corporation Use of set-by-read and set-by-write registers as semaphores
US7171509B2 (en) * 2002-01-09 2007-01-30 International Business Machines Corporation Method and apparatus for host messaging unit for Peripheral Component Interconnect busmaster devices
US7154886B2 (en) 2002-07-22 2006-12-26 Qlogic Corporation Method and system for primary blade selection in a multi-module fiber channel switch
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US9377987B2 (en) * 2002-10-22 2016-06-28 Broadcom Corporation Hardware assisted format change mechanism in a display controller
US7319669B1 (en) 2002-11-22 2008-01-15 Qlogic, Corporation Method and system for controlling packet flow in networks
US6901461B2 (en) * 2002-12-31 2005-05-31 Intel Corporation Hardware assisted ATA command queuing
US8595394B1 (en) * 2003-06-26 2013-11-26 Nvidia Corporation Method and system for dynamic buffering of disk I/O command chains
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7234101B1 (en) 2003-08-27 2007-06-19 Qlogic, Corporation Method and system for providing data integrity in storage systems
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US7219263B1 (en) 2003-10-29 2007-05-15 Qlogic, Corporation Method and system for minimizing memory corruption
US8356142B1 (en) 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US7577772B2 (en) * 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US20060064531A1 (en) * 2004-09-23 2006-03-23 Alston Jerald K Method and system for optimizing data transfer in networks
US7380030B2 (en) 2004-10-01 2008-05-27 Qlogic, Corp. Method and system for using an in-line credit extender with a host bus adapter
US7676611B2 (en) 2004-10-01 2010-03-09 Qlogic, Corporation Method and system for processing out of orders frames
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
US7398335B2 (en) * 2004-11-22 2008-07-08 Qlogic, Corporation Method and system for DMA optimization in host bus adapters
US7164425B2 (en) * 2004-12-21 2007-01-16 Qlogic Corporation Method and system for high speed network application
US7392437B2 (en) 2005-01-20 2008-06-24 Qlogic, Corporation Method and system for testing host bus adapters
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7231480B2 (en) * 2005-04-06 2007-06-12 Qlogic, Corporation Method and system for receiver detection in PCI-Express devices
US20070005815A1 (en) * 2005-05-23 2007-01-04 Boyd William T System and method for processing block mode I/O operations using a linear block address translation protection table
US7552240B2 (en) 2005-05-23 2009-06-23 International Business Machines Corporation Method for user space operations for direct I/O between an application instance and an I/O adapter
US7502871B2 (en) * 2005-05-23 2009-03-10 International Business Machines Corporation Method for query/modification of linear block address table entries for direct I/O
US20060265525A1 (en) * 2005-05-23 2006-11-23 Boyd William T System and method for processor queue to linear block address translation using protection table control based on a protection domain
US7464189B2 (en) * 2005-05-23 2008-12-09 International Business Machines Corporation System and method for creation/deletion of linear block address table entries for direct I/O
US7502872B2 (en) * 2005-05-23 2009-03-10 International Bsuiness Machines Corporation Method for out of user space block mode I/O directly between an application instance and an I/O adapter
US7577761B2 (en) * 2005-08-31 2009-08-18 International Business Machines Corporation Out of user space I/O directly between a host system and a physical adapter using file based linear block address translation
US20070168567A1 (en) * 2005-08-31 2007-07-19 Boyd William T System and method for file based I/O directly between an application instance and an I/O adapter
US7500071B2 (en) * 2005-08-31 2009-03-03 International Business Machines Corporation Method for out of user space I/O with server authentication
US7657662B2 (en) * 2005-08-31 2010-02-02 International Business Machines Corporation Processing user space operations directly between an application instance and an I/O adapter
US7610444B2 (en) * 2005-09-13 2009-10-27 Agere Systems Inc. Method and apparatus for disk address and transfer size management
US7461195B1 (en) 2006-03-17 2008-12-02 Qlogic, Corporation Method and system for dynamically adjusting data transfer rates in PCI-express devices
US7716397B2 (en) * 2007-07-03 2010-05-11 Lsi Corporation Methods and systems for interprocessor message exchange between devices using only write bus transactions
US20110153891A1 (en) * 2008-08-20 2011-06-23 Akihiro Ebina Communication apparatus and communication control method
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US8370552B2 (en) * 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
US8698823B2 (en) 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
US9952979B1 (en) * 2015-01-14 2018-04-24 Cavium, Inc. Methods and systems for direct memory access operations
US10664276B2 (en) * 2016-09-28 2020-05-26 International Business Machines Corporation Remote command invocation using a register for storing a command and an attention bit indicating command has been issued
US10268620B2 (en) 2016-12-23 2019-04-23 Ati Technologies Ulc Apparatus for connecting non-volatile memory locally to a GPU through a local switch
US20180181340A1 (en) 2016-12-23 2018-06-28 Ati Technologies Ulc Method and apparatus for direct access from non-volatile memory to local memory
US10445275B2 (en) * 2016-12-23 2019-10-15 Ati Technologies Ulc System on chip having integrated solid state graphics controllers
JP2022010951A (ja) * 2020-06-29 2022-01-17 キオクシア株式会社 半導体記憶装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625842A (en) * 1988-05-18 1997-04-29 Zilog, Inc. System for the automatic transfer of message status in digital data communication
US5251303A (en) * 1989-01-13 1993-10-05 International Business Machines Corporation System for DMA block data transfer based on linked control blocks
US5274795A (en) * 1989-08-18 1993-12-28 Schlumberger Technology Corporation Peripheral I/O bus and programmable bus interface for computer data acquisition
US5367639A (en) * 1991-12-30 1994-11-22 Sun Microsystems, Inc. Method and apparatus for dynamic chaining of DMA operations without incurring race conditions
US5475860A (en) * 1992-06-15 1995-12-12 Stratus Computer, Inc. Input/output control system and method for direct memory transfer according to location addresses provided by the source unit and destination addresses provided by the destination unit
AU5442494A (en) * 1992-10-13 1994-05-09 Compaq Computer Corporation Disk array controller having advanced internal bus protocol
US5619728A (en) * 1994-10-20 1997-04-08 Dell Usa, L.P. Decoupled DMA transfer list storage technique for a peripheral resource controller

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000075789A1 (en) * 1999-06-09 2000-12-14 Qlogic Corporation A method and apparatus for automatically transferring i/o blocks between a host system and a host adapter
JP2003501746A (ja) * 1999-06-09 2003-01-14 クロジック コーポレーション ホスト・システムとホスト・アダプタとの間でi/oブロックを自動的に転送するための方法および装置
KR100701419B1 (ko) * 1999-06-09 2007-03-30 큐로직 코포레이션 호스트 시스템과 호스트 어댑터 사이에서 입출력 블록을자동적으로 전송하는 방법과 장치
JP2012529103A (ja) * 2009-06-03 2012-11-15 マイクロン テクノロジー, インク. メモリデバイスによりホストメモリアクセスを制御するための方法およびシステム
US8918600B2 (en) 2009-06-03 2014-12-23 Micron Technology, Inc. Methods for controlling host memory access with memory devices and systems
US9811258B2 (en) 2009-06-03 2017-11-07 Micron Technology, Inc. Methods for controlling host memory access with memory devices and systems

Also Published As

Publication number Publication date
US5968143A (en) 1999-10-19

Similar Documents

Publication Publication Date Title
JPH09160861A (ja) ローカル・プロセッサの介入なしにコマンド・ブロックをローカル処理サイドに転送するための情報処理システム
US5940866A (en) Information handling system having a local address queue for local storage of command blocks transferred from a host processing side
US5740466A (en) Flexible processor-driven SCSI controller with buffer memory and local processor memory coupled via separate buses
US5918028A (en) Apparatus and method for smart host bus adapter for personal computer cards
JP4104746B2 (ja) 自動直接メモリ・アクセス機能を備えたコンピュータ・システム
US5682551A (en) System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto
JPH09160862A (ja) ローカル・サイド及びホスト・サイドの間でデータ・ブロックを転送するためのステータス処理システム
US5905911A (en) Data transfer system which determines a size of data being transferred between a memory and an input/output device
EP1133733A1 (en) Host controller interface descriptor fetching unit
EP0908826A2 (en) Packet protocol and distributed burst engine
JP2001142842A (ja) Dmaハンドシェークプロトコル
JP2853809B2 (ja) 周辺コントローラのためのバッファメモリサブシステムおよび方法
JPH077327B2 (ja) データ転送方法
JP3167027B2 (ja) 直接メモリアクセス用制御器
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
US6665746B1 (en) System and method for prioritized context switching for streaming data memory transfers
JPS6122333B2 (ja)
US7130932B1 (en) Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device
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
JP2000293436A (ja) パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート
US5794069A (en) Information handling system using default status conditions for transfer of data blocks
JP3481308B2 (ja) インターフェース装置、データ転送システム及びデータ転送方法
US6567908B1 (en) Method of and apparatus for processing information, and providing medium
JPH10283304A (ja) 割り込み要求を処理する方法及びシステム
JP3417882B2 (ja) ブロック・モードで動作する装置間の、通信リンクによるバースト・モード・データ転送の自動化制御

Legal Events

Date Code Title Description
A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20040330