JPH06324981A - データ処理システム及びチャネル・アダプタ - Google Patents

データ処理システム及びチャネル・アダプタ

Info

Publication number
JPH06324981A
JPH06324981A JP6032647A JP3264794A JPH06324981A JP H06324981 A JPH06324981 A JP H06324981A JP 6032647 A JP6032647 A JP 6032647A JP 3264794 A JP3264794 A JP 3264794A JP H06324981 A JPH06324981 A JP H06324981A
Authority
JP
Japan
Prior art keywords
channel
request
processor
descriptor
cdb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP6032647A
Other languages
English (en)
Other versions
JP2520576B2 (ja
Inventor
Jr Serafin J E Garcia
セラフィン・ヨゼ−エリーザ・ガルシア、ジュニア
Michael S Gatson
ミカエル・ステュアート・ギャトソン
Gary B Hoch
ギャリー・ブライアン・ホッチ
Eric H Stelzer
エリック・ヘンリー・ステルザー
Donald G Williams
ドナルド・グレン・ウィリアムズ
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 JPH06324981A publication Critical patent/JPH06324981A/ja
Application granted granted Critical
Publication of JP2520576B2 publication Critical patent/JP2520576B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】チャネル・デイスクリプタ・ブロック(CD
B)をデイスパッチすること。 【構成】プロセッサは、複数のCDBを明示的なリンケ
ージなしに非連続的な記憶位置に格納し、当該CDBを
順次にアダプタへ渡して、当該CDBが定義するデータ
転送のスケジュール及び処理をアダプタに管理させる。
CDBを渡すための要求信号プロセスの間、プロセッサ
は、アダプタ中の要求レジスタの利用状態をポールし、
これが利用可であれば、各CDBのアドレスを要求レジ
スタへ書き込む。アダプタは、このアドレスを持つCD
Bの処理をスケジュールする。アダプタが管理する「チ
ャネル・デイスクリプタ・テーブル(CDT)」は、各
要求が指定する各CDBの処理順序を定義する。アダプ
タは、CDTが定義するリンク・リスト・キューに、複
数の要求の受信順序で複数のCDBを導入する。このC
DT情報を使用して、アダプタは、次々とキューされた
複数のCDBを検索し、当該CDBが定義するデータ転
送動作の実行を制御する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理システム中
のメモリとデータ通信チャネルとの間をインタフェース
する、チャネル・アダプタに係る。
【0002】
【従来の技術】既存のデータ処理システムは、チャネル
・アダプタを使用して、メモリとI/O装置又はデータ
通信リンクへ接続するチャネルとの間のデータ転送を制
御するようにしている。かかるチャネル・アダプタは、
DMA(ダイレクト・メモリ・アクセス)モードでメモ
リをアクセスし、メモリ空間の割り振りを管理するプロ
セッサに対しオフラインで、データ転送動作を実行する
ことができる。各チャネル・アダプタは、複数チャネル
又は単一チャネルのいずれかを制御することができる。
以下では、複数チャネルを制御するチャネル・アダプタ
を、「複数チャネル・アダプタ・ユニット」又は単に
「MAU」と呼ぶことにする。
【0003】チャネル・アダプタが実行する動作は、チ
ャネル・デイスクリプタ・ブロック(CDB)で定義す
ることができる。各CDBは、これをプロセッサがメモ
リ中に準備し、所定の信号動作を通して一のチャネル・
アダプタへデイスパッチするのが普通である。この信号
動作は、かかるチャネル・アダプタに対し、該当するC
DBが格納されているメモリ中の記憶位置を表す信号を
与え、MAUについては、特定のチャネルを指定する信
号を与える。このように、各チャネル・アダプタ(又は
MAU)は、プロセッサに対しオフラインで、メモリを
アクセスし、該当するCDBを検索し、適当なチャネル
に関しこのCDBが定義するデータ転送プロセスの制御
を実行する。
【0004】また、1グループのCDBを順次に連鎖す
るとともに、この連鎖グループ中の最初のCDBの記憶
位置だけを一のチャネル・アダプタ(又はMAU)へ転
送する、という単一の「バッチ」信号動作を通して、こ
れらのCDBをかかるチャネル・アダプタへデイスパッ
チすることもできる。この場合、かかるチャネル・アダ
プタ(又はMAU)は、連鎖グループ中の最初のCDB
を検索し、これを処理し、連鎖グループ中の次のCDB
を位置決め及び検索し、これを処理する、等の動作をオ
フラインで順次に実行する。
【0005】連鎖グループ中の最初のCDBを除く他の
CDBを検索するため、かかるチャネル・アダプタは、
先行CDB中に(プロセッサから)明示的に与えられて
いる「ポインタ」情報を使用するか、又は先行CDBの
記憶位置に定数を加算又は減算するという暗示的方法を
利用して、各CDBの記憶位置を決定する。一般に、前
者の明示的位置決め方法が、不連続的な(断片化され
た)記憶位置に格納されているCDBの連鎖グループに
ついて使用されるのに対し、後者の暗示的位置決め方法
は、連続的な記憶位置に格納されているCDBの連鎖グ
ループについて使用されることが多い。連鎖グループ中
の各CDBの不連続的な記憶位置を追跡するため、発信
元プロセッサは、連鎖グループ中の最後のCDBを除く
全てのCDBが次のCDBの記憶位置に対するポインタ
をそれぞれ保持するように、これらの記憶位置をリンク
・リスト・キューの形式で構成するとともに、少なくと
もこのリンク・リスト・キューの長さ(連鎖グループ中
のCDBの数)並びにそのヘッド・エンド及びテイル・
エンドの記憶位置(連鎖グループ中の最初のCDB及び
最後のCDBがそれぞれ格納されている記憶位置)を定
義するテーブルを維持するのである。
【0006】プロセッサが監視するメモリ管理機能は、
これをチャネル・アダプタの複数のチャネルにおける実
時間的なCDB処理活動と適当に調整しなければならな
いから、かかるチャネル・アダプタが各CDBの処理を
完了する前に格納されたCDBの上書きを行うのは、そ
のタイミングが早すぎて不適当であり、また格納された
CDBの上書きを行うタイミングが遅すぎるのも不適当
である(例えば、かかるチャネル・アダプタが、CDB
の連鎖グループを保持する処の「循環バッファ」として
予め準備された一連の記憶空間を通して、所定の循環シ
ーケンスに従う場合、かかるチャネル・アダプタが古い
CDBの処理を反復しないようにするためには、かかる
チャネル・アダプタが循環バッファを循環させうる最も
早い時間内に、プロセッサから各循環バッファの記憶空
間へ新しい情報を書き込むことが必要となろう)。
【0007】一般に、プロセッサは、各チャネル・アダ
プタの諸活動に伴うメモリの使用を調整するため、各チ
ャネル・アダプタが提示する割り込み要求を通して、そ
のチャネルの活動ステータスを監視する。例えば、一の
チャネル・アダプタが一のCDBの処理を完了すると
き、このチャネル・アダプタは割り込み要求を提示する
のが普通である。各割り込み要求(又はこのチャネル・
アダプタからの複数の割り込み要求)を受信して或る時
間が経過した後、プロセッサは、このチャネル・アダプ
タと複数の信号を交換して、かかる割り込み要求に関連
する詳細なステータス情報を検索する。しかしながら、
殆どのデータ処理システムでは、各チャネル・アダプタ
が割り込み要求を提示する時点から、この要求に関連す
るステータス情報をプロセッサが検索し且つこれを解釈
する時点までの間に、不確定の遅延が存在する。このた
め、プロセッサが連鎖グループ中の最初のCDBに関連
するデータ転送のステータスを検索する時点では、この
連鎖グループに関するチャネル・アダプタ活動の即時ス
テータスが、不確定となるのである。すなわち、かかる
時点では、このチャネル・アダプタが、当該連鎖グルー
プ中の末尾に近い処にある他のCDBを処理している
か、又は当該連鎖グループの処理を全体として完了して
いることがあり得るからである(前述の循環バッファ環
境では、このチャネル・アダプタが循環バッファの循環
を殆ど完了していて、ステータスを現に解釈されている
CDBの位置に接近中であることもあり得る)。
【0008】割り込み要求を提示する時点とこれに関連
するステータスをプロセッサが検索する時点との間の遅
延は、プロセッサの作業負荷やその監視編成(例えば、
幾つかのデータ処理システムでは、プロセッサとその監
視対象である複数のチャネル・アダプタとの間にあるバ
スの帯域幅を効率的に利用することを目的として、複数
のCDBに関するステータスをバッチ収集するように、
プロセッサが編成されている)を含む、多数の要素に応
じて変動するものである。
【0009】従って、チャネル活動との調整を保証する
ため、プロセッサは、チャネル・アダプタの各チャネル
へ新しいCDB(又はCDBの連鎖グループ)をデイス
パッチする前に、このチャネルが確定的に知られた初期
状態にあること(例えば、このチャネルが既知の非活動
期間の後に、再活動化されること)を必要とする場合が
ある。かかる要件は、チャネル及びデータ処理システム
のスループットという観点からすれば非生産的であるか
もしれないが、調整に関する必要性の方が生産性の低下
よりは重要となることもあるのである。
【0010】
【発明が解決しようとする課題】本発明は、プロセッサ
とチャネル・アダプタとの間の調整に関するかかる必要
性を排除するとともに、各チャネルへ各CDBをデイス
パッチする場合に当該チャネルで行われている活動を阻
害することなく、プロセッサから連続して活動状態にあ
るチャネル・アダプタのチャネルへ複数のCDBをデイ
スパッチできるようにするものである。
【0011】本発明の第1番目の目的は、連続して活動
状態にあるチャネル・アダプタのチャネルで行うべき一
連のデータ転送動作を定義するため、プロセッサがメモ
リ中の非連続的な複数の記憶位置から複数のCDBを順
次にデイスパッチし得るデータ処理システムにおいて、
プロセッサが各チャネル中の活動との調整を全く行わず
にデイスパッチング機能を実行でき、しかもチャネル・
アダプタがその各チャネル中の活動を阻害せずにデイス
パッチされた複数のCDBによって定義された動作を常
に信頼度の高い態様で実行できるようにすることにあ
る。
【0012】本発明の第2番目の目的は、メモリ中で非
連続的に格納され且つチャネル・アダプタ中の連続して
活動状態にある各チャネルについて行うべき一連の動作
を定義する複数のCDBの記憶位置を指定する情報を、
プロセッサからチャネル・アダプタへ順次に転送し得る
データ処理システムにおいて、かかるCDBの記憶位置
を指定する情報を各チャネル中の活動との調整を全く行
わずに任意の時間インターバルに転送することができ、
それぞれの記憶位置に格納されている複数のCDBを明
示的にリンクする必要がなく、そしてあたかも連鎖グル
ープ中の全てのCDBが最初にプロセッサによって連鎖
され且つリンク・リスト・キュー中で互いにデイスパッ
チされたかのようにして、チャネル・アダプタがこれら
のCDBを処理できるようにすることにある。
【0013】本発明の第3番目の目的は、任意の長さを
持つ1グループのCDBをプロセッサからチャネル・ア
ダプタへ順次にデイスパッチすることができ、メモリ中
に非連続的に格納されているこれらのCDBがメモリ中
のそれぞれの相対的な記憶位置を定義する明示的なリン
ケージを持たず、しかも現に活動的な単一のチャネルに
ついてチャネル・アダプタが行うべき一連の動作を定義
するようにしたデータ処理システムにおいて、あたかも
最初のCDBがデイスパッチされる前にグループ中の全
てのCDBが連鎖され且つリンク・リスト・キュー中で
予め構成されたかのようにして、チャネル・アダプタが
定義された一連の動作を信頼性を以てスケジュールし且
つこれを実行できるようにすることにある。
【0014】本発明の第4番目の目的は、デイスパッチ
されたCDBの連鎖グループに関連する連続して活動状
態にあるチャネルに専用化され且つ「チャネル・デイス
クリプタ・テーブル(CDT)」を保持するためのレジ
スタをチャネル・アダプタに設けるとともに、このチャ
ネル・アダプタがまだ処理していないデイスパッチされ
た連鎖グループ中のCDBの数を定義し且つ当該連鎖グ
ループ中の未処理のCDBのうち少なくとも最初のCD
Bと最後のCDBの記憶位置をそれぞれ定義するリンク
・リスト・キューを、このチャネル・アダプタが作成で
きるようにしたデータ処理システムを提供することにあ
る。この第4番目の目的に関係する本発明の第5番目の
目的は、チャネル・アダプタ中にCDTを形成する複数
のレジスタを設け、これらのレジスタをチャネル・アダ
プタ又はプロセッサから書き込み可能とすることによ
り、チャネル・アダプタがデイスパッチされたCDBの
連鎖グループに関するリンク・リンク・キューを動的に
作成及び維持することができるようにするとともに、プ
ロセッサが単一のバッチ信号動作でデイスパッチ可能な
CDBの連鎖CDBに関するリンク・リスト・キューを
予め確立できるようにすることにある。
【0015】本発明の第6番目の目的は、チャネル・ア
ダプタのチャネルにおける活動の瞬間的ステータスをプ
ロセッサが決定不能である間に、連鎖グループ中の他の
CDBについて当該チャネルで行われている活動を瞬間
的にも潜在的にも阻害することのない態様で、当該チャ
ネルへ以前にデイスパッチされた当該連鎖グループ中の
一のCDBをプロセッサが修正できるようにした、デー
タ処理システムを提供することにある。
【0016】本発明の第7番目の目的は、プロセッサが
複数の信号をチャネル・アダプタへ順次に転送して、単
一のチャネルについて当該チャネル・アダプタが行うべ
き一連の動作を定義し且つそれぞれの記憶位置を明示的
にリンクする情報を保持しない、任意の長さを持つCD
Bグループの非連続的な記憶位置を指定することができ
るようにしたデータ処理システムにおいて、CDBグル
ープ中の各CDBが同グループ中の次のCDBを明示的
に指定するように、格納された複数のCDB間の明示的
なリンケージを確立するための論理手段をチャネル・ア
ダプタに設けることにより、あたかも最初のCDBの記
憶位置を定義する情報を転送する前にCDBグループ中
の全てのCDBが連鎖され且つリンク・リスト・キュー
中で予め構成されたかのようにして、チャネル・アダプ
タが定義された一連の動作をそれぞれ実行できるように
することにある。
【0017】本発明の第8番目の目的は、メモリ中で非
連続的に格納され且つチャネル・アダプタへデイスパッ
チされる複数のCDB間の明示的なリンクを定義するリ
ンク・リスト・キューを作成し且つこれを管理するよう
に構成されたチャネル・アダプタを提供することにあ
る。
【0018】本発明の第9番目の目的は、チャネル・ア
ダプタが順次に実行すべき複数のデータ・ブロック転送
を定義する複数のCDBのリンク・リスト・キューを定
義するように、ホスト・プロセッサ又はチャネル・アダ
プタがセットし得る、複数のレジスタをチャネル・アダ
プタに設けることにある。この第9番目の目的に関連す
る本発明の第10番目の目的は、前記レジスタをチャネ
ル・アダプタによってデクレメント可能とし、前記リン
ク・リスト・キュー中にあるCDBの数を定義するキュ
ー・カウント(QC)要素と、このQC要素のデクレメ
ントを許容又は禁止するようにプロセッサがセットし得
るキュー・カウント禁止(QCD)要素とを前記レジス
タに保持させることにより、このQCD要素がQC要素
のデクレメントを禁止するようにセットされている場合
は、前記リンク・リスト・キューを保持するメモリ空間
をプロセッサが一の循環バッファとして構成し、かくて
プロセッサが当該メモリ空間へ動的に書き込んだ複数の
CDBをチャネル・アダプタが処理する際、チャネル・
アダプタがこの循環バッファを通して循環的に反復でき
るようにすることにある。
【0019】本発明の第11番目の目的は、明示的な連
鎖又は位置決め用のリンケージを必要とすることなし
に、プロセッサによって個別にデイスパッチされ且つ非
連続的に格納されたCDBグループにより複数のチャネ
ルに関するデータ転送をそれぞれ定義できるようにし
た、複数チャネル・アダプタ・ユニット(MAU)にお
いて、各チャネルが連続して活動状態にある間に各CD
Bグループを受信して、そのCDB間の明示的なリンケ
ージを確立するとともに、プロセッサからのそれ以上の
指示なしに且つ各チャネルにおける任意の活動を阻害す
ることなしに、各CDBグループが定義する一連の動作
を行うようにすることにある。
【0020】本発明の第12番目の目的は、プロセッサ
と、メモリと、複数チャネル・アダプタ・ユニット(M
AU)とを備えたデータ処理システムにおいて、MAU
が複数チャネルの各々におけるデータ転送をプロセッサ
に対しオフラインで指示する際に、各データ転送を定義
し且つメモリ中に格納された一連のチャネル・デイスク
リプタの実行順序又はそのメモリ中の相対的な記憶位置
を定義する明示的な情報を利用する代わりに、これらの
記憶位置がデータ転送の実行順序を暗示するシーケンス
でプロセッサからMAUへ信号され、このようにして信
号された記憶位置にあるチャネル・デイスクリプタがM
AUの動作によって(それぞれの記憶位置を指示する信
号のプロセッサによる提示順序と一致するように)明示
的に順序づけられた1組のチャネル・デイスクリプタへ
変換され、これにより当該グループ中の最初のチャネル
・デイスクリプタの記憶位置を定義する信号を転送する
前に、あたかもこれらのチャネル・デイスクリプタが明
示的に連鎖されたかのようにして、MAUが当該グルー
プ中の全てのチャネル・デイスクリプタを処理できるよ
うにするとともに、MAUが当該グループ中の一の先行
チャネル・デイスクリプタを処理しているか、又は当該
グループ中の全ての先行チャネル・デイスクリプタの処
理を完了した後ですら、MAUが当該グループ中の任意
のチャネル・デイスクリプタの記憶位置を定義する信号
を受信できるようにすることにある。
【0021】本発明の第13番目の目的は、プロセッサ
と、ランダム・アクセス・メモリと、このメモリに対す
る直接アクセスを制御し且つこのメモリと複数の周辺チ
ャネルとの間のデータ転送動作を指示する複数チャネル
・アダプタ・ユニット(MAU)とを備えたデータ処理
システムにおいて、各周辺チャネルに関するMAUのデ
ータ転送動作を、プロセッサがメモリのランダムな記憶
位置に格納したリンクされていないデイスクリプタの各
グループによって定義するとともに、格納された各グル
ープ中のデイスクリプタをMAUの動作によって一のリ
ンク・リスト・キューへ変換することにある。この第1
3番目の目的に関係する本発明の第14番目の目的は、
前記データ処理システムにおいて、各々が以前にリンク
されたグループへ結合すべきリンクされていない一のデ
イスクリプタのアドレスをそれぞれを含んでいる、複数
の要求をプロセッサからMAUへ転送することによっ
て、MAUによるリンク・リストの変換動作を開始させ
ることにある。
【0022】この第14番目の目的に関係する本発明の
第15番目の目的は、前記データ処理システムにおい
て、MAUへ送信される各要求がMAUにより全ての周
辺チャネルに共通する単一の要求レジスタに格納され、
各要求が前記チャネルの1つに一意的に割り振られた一
のポート・アドレスを通してMAUへ送信され、そして
MAUが一のポート・アドレスを通して受信された各要
求に応答して前記要求レジスタの内容を前記ポート・ア
ドレスを割り振られた当該チャネルと一意的に関連付け
るラッチをセットするようにすることにある。
【0023】この第15番目の目的に関係する本発明の
第16番目の目的は、前記データ処理システムにおい
て、一の要求がMAUの要求レジスタへ最初に入力され
るときは、MAU中にある「要求処理ステータス」表示
子を「使用中」状態へセットし、その後にMAUが前記
入力された要求により記憶位置を指定された一のCDB
の処理のスケジュールを終了したときに、これを「非使
用中」状態へセットするとともに、各要求をMAUへ提
示する前に、プロセッサが前記表示子の状態をポール
し、「使用中」状態の戻り毎にかかるポールを反復し、
「非使用中」状態が戻るときには要求レジスタへ無条件
的に且つ肯定応答なしに入力すべき要求を提示すること
にある。
【0024】この第16番目の目的に関係する本発明の
第17番目の目的は、前記データ処理システムにおい
て、複数のチャネル・アダプタをプロセッサ及びメモリ
へ接続する一のバスを含み、プロセッサによるこのバス
への単一アクセスの間に各要求を提示し且つ各「キュー
使用中」応答を完了することにある。
【0025】この第17番目の目的に関係する本発明の
第18番目の目的は、前記データ処理システムにおい
て、チャネル・アダプタが前記バスへのアクセスを獲得
し、前記要求レジスタ中の情報が定義するメモリ中の一
のアドレスから一のデイスクリプタを検索するか、又は
前記要求レジスタに保持されているアドレスをこのデイ
スクリプタへ書き込むことによって、各要求を処理する
ことにある。
【0026】本発明の第19番目の目的は、デイスクリ
プタのリンク・リスト・・キューを動的に管理する論理
能力を有するチャネル・アダプタを提供することにあ
る。この第19番目の目的に関係する本発明の第20番
目の目的は、チャネル・アダプタが一のリンク・リスト
・キューを作成し、プロセッサからランダムな時間イン
ターバルで順次に受信されるデイスクリプタ指定用の要
求に応答して、エンキューされていないデイスクリプタ
を当該リンク・リスト・キューへ追加できるようにする
とともに、以前に受信したデイスクリプタ指定用要求に
関連する1つ以上のデイスクリプタが定義するデータ転
送をチャネル・アダプタが活動的に処理している間に、
デイスクリプタ指定用の任意の要求を受信できるように
することにある。
【0027】本発明の第21番目の目的は、複数のチャ
ネルに関するデータ転送を指示し且つデイスクリプタの
リンク・リスト・キューを動的に管理するための論理能
力を有する、複数チャネル・アダプタ・ユニット(MA
U)を提供することにある。この第21番目の目的に関
係する本発明の第22番目の目的は、各チャネルにおけ
るデータ転送を活動的に処理している間に、MAUが、
個々のチャネルへ向けられるデイスクリプタの記憶位置
を指定する(プロセッサからの)信号に応答して、各デ
イスクリプタが定義するデータ転送の処理をそれぞれス
ケジュールするとともに、かかる信号をプロセッサが提
示する時間において前記指定されたデイスクリプタの記
憶位置が明示的なキュー・リンケージを保持しないよう
にすることにある。この第22番目の目的に関係する本
発明の第23番目の目的は、プロセッサが提示する前記
信号が、全てのチャネルに共通の単一のデイスクリプタ
要求レジスタを通してファネルされるようにすることに
ある。この第23番目の目的に関係する本発明の第24
番目の目的は、前記MAUにおいて、プロセッサがMA
Uによって管理されるチャネル・キューから一のデイス
クリプタを有効に除去することができるように、関連す
るチャネルにおけるデータ転送活動のステータスとは関
係なく、しかも各チャネル・キュー中の他のデイスクリ
プタが定義するデータ転送活動を阻害することなしに、
MAUへ以前に信号された一の記憶位置へ情報を書き込
めるようにすることにある。
【0028】
【課題を解決するための手段】本発明に従って、プロセ
ッサ及びDMA(ダイレクト・メモリ・アクセス)型の
チャネル・アダプタは、連鎖デイスクリプタ/CDBの
各リンク・リスト・キューが向けられるチャネル・アダ
プタの一のチャネルが活動的である間に、互いに協調し
てかかるキューを形成し且つ修正するように構成され、
また各チャネル及びキューに関する当該チャネル・アダ
プタのデータ転送処理との潜在的に最適の時間調整で以
てキューの形成/修正を行うように構成されており、こ
れによりプロセッサ及びチャネル・アダプタの性能に対
し全体として最小限度の影響を与えるだけで、実質的に
空のキュー(すなわち、全てのCDBがチャネル・アダ
プタによって処理されてしまったキュー)へCDBを追
加したり又はかかるキューからCDBを除去できるよう
になっている。
【0029】実施例では、各CDBは、予定の形式及び
サイズ(各ワードが予定の長さを有する予定数のワー
ド)を有する一の情報ブロックから成っていて、プロセ
ッサ及びチャネル・アダプタが直接アクセスを有するメ
モリ中の連続的なデータ記憶位置の一のブロックに関す
る一のデータ転送を定義する。
【0030】チャネル・アダプタによる処理に備えて追
加の一のCDBをデイスパッチするため、プロセッサ
は、各CDBをリンクされていない形式でメモリ中に格
納し、各CDBの記憶位置を定義する情報を保持するチ
ャネル・アダプタへ一の要求を転送し、これに対し、チ
ャネル・アダプタは、かかる要求を処理するため、当該
要求が位置決めするCDBを直ちに検索してその処理を
開始するか、又は各CDBと以前に処理された要求に関
連する一のCDBとの間の連鎖及びアドレッシング・リ
ンケージを確立する。
【0031】1つの例外を除くと、この要求処理動作
は、チャネル・アダプタがメモリへの直接アクセスを獲
得して、直ちに処理すべき一のCDBを読み取るか、又
は一のリンク用アドレス・ポインタを当該チャネル・ア
ダプタが以前にエンキューした一のCDBへ書き込むこ
とを必要とする。かかる例外は、一の「非連鎖」CDB
(例えば、今や空であるキュー中の最後のもの)を現に
処理している場合に相当する。この状況では、チャネル
・アダプタは、当該要求に保持されているCDBアドレ
ス情報を、その要求レジスタから現に処理中のCDBへ
転送する。こうすることにより、現CDBと当該要求に
関連するCDBとの間の連鎖及びアドレッシング・リン
ケージを、事実上、確立することができるのである。
【0032】実施例では、かかる要求情報を、チャネル
・アダプタ中の単一の要求レジスタでバッファする。も
し、チャネル・アダプタがその要求レジスタに現に保持
されている一の要求を処理していて使用中であり、そし
てプロセッサが他の要求の転送を試行しようとしている
のであれば、チャネル・アダプタは直ちにプロセッサへ
使用中状態表示子を戻すことにより、かかるプロセッサ
による試行を後で反復させるようにする。もし、このチ
ャネル・アダプタが複数チャネル・アダプタ・ユニット
(MAU)であれば、プロセッサは各CDBが向けられ
るチャネルに一意的に関連する複数のアドレス・ポート
の1つへ各要求をアドレスし、これに対しチャネル・ア
ダプタは各チャネルに関連する複数のラッチのうちの一
意的な1つをセットすることによって、かかるポートの
アドレッシングに反応する。かくて、チャネル・アダプ
タの任意のチャネルに関連して、唯1つのレジスタ及び
数個のラッチだけが必要となるに過ぎない。
【0033】チャネル・アダプタが形成した一のキュー
から一のCDBを除去するため、プロセッサはメモリ中
の当該CDBをアクセスして、当該CDBへ「スキッ
プ」コードを書き込む。チャネル・アダプタがスキップ
・コードを保持する一のCDBへ連鎖する場合、チャネ
ル・アダプタは直ちに連鎖イベントを認識し、スキップ
・コードを保持する当該CDBが次のCDBに対するリ
ンク用ポインタを保持するときは、かかる次のCDBへ
連鎖し、さもなければスキップ・コードを保持するCD
Bが向けられるチャネルをアイドルにする。
【0034】もし、プロセッサがチャネル・アダプタに
よって既に処理された一のCDBにスキップ・コードを
書き込むならば、このスキップ・コードを書き込まれた
当該CDBがチャネル・アダプタによって反復的に循環
されているCDBキューの一部である場合は、このスキ
ップ・コードはチャネル・アダプタの動作に影響を与え
るに過ぎない。実施例では、スキップ・コードが書き込
まれるCDBのコード・フィールドは、スキップ以外の
チャネル・アダプタの活動を定義するように、プロセッ
サによって取り扱うことができる。勿論、各コード・フ
ィールドの目的がチャネル・アダプタのスキップ動作を
単に「オン」及び「オフ」にセットすることだけにある
のであれば、このスキップ・コードを単一の「スキッ
プ」ビットによって定義することができる。
【0035】かくて、前述の構成によれば、チャネル・
アダプタの活動的な一のチャネルにおけるデータ転送活
動の瞬間的なステータスに関係なく、しかもかかる活動
の完全性について最小の影響を与えるだけで、かかるチ
ャネルについて複数のCDBをプロセッサによってデイ
スパッチし且つ非活動化(スキップ)することができ
る。一のCDBがデイスパッチされる場合、チャネル・
アダプタが関連する要求を処理すると、当該CDBを現
在のチャネル活動へ適正にリンクさせることができる。
一のCDBが非活動化される場合、かかる非活動化の前
に行われる当該CDBの処理は各チャネル活動には影響
せず、そして非活動化の後に行われる当該CDBの処理
は前述のような所望のスキップに帰着する。もし、プロ
セッサがチャネル活動の状態を瞬間的に変更することを
必要としていれば、このプロセッサは、かかるチャネル
活動を禁止するコマンドをチャネル・アダプタへ直接的
に与えることによってこれを達成する。スキッピングに
よる非活動化が有用である状況とは、チャネル・アダプ
タのチャネル活動のシーケンシングが重要ではないか、
又はプロセッサとチャネル・アダプタとの間の調整の不
在によって潜在的に阻害されないような場合である。
【0036】
【実施例】1.システム環境 図1は、従来技術及び本発明のデータ処理システムを含
む、データ処理システム一般の編成方法を示す。図2
は、かかるデータ処理システムにおける、連鎖されたチ
ャネル・デイスクリプタ・ブロック(CDB)及びデー
タの通常の処理方法を示す。
【0037】図1のバス1は、プロセッサ2、メモリ3
及び複数のチャネル・アダプタ4乃至6を相互接続す
る。これらのチャネル・アダプタは、各々が複数のチャ
ネルに関する動作を指示する処の、複数チャネル・アダ
プタ・ユニット(MAU)としてそれぞれ図示されてい
るが、以下で説明するように、本発明は単一チャネルを
持つチャネル・アダプタについても有利に適用すること
ができる。各MAUは、メモリ3についてはDMAC
(ダイレクト・メモリ・アクセス制御)として動作し、
メモリ3をアクセスする場合のバス1についてはバス・
マスタとして動作するように、論理的に構成されてい
る。従って、各MAUがバス1の制御を必要とする場
合、このMAUは、他のチャネル・アダプタ(或いはプ
ロセッサ2)とのアービトレーションを必要とすること
がある。更に、プロセッサ2がバス1を介して各MAU
と情報を直接的に交換している場合、各MAUは、バス
1に対するスレーブ接続機構として動作するように構成
される。
【0038】図1の左下部にあるMAU 4について例
示するように、各MAUは、マスタ・バス制御及びDM
A制御(BC/DMAC)インタフェース4.2と、ス
レーブ・ユニット制御(UC)インタフェース4.3と
を有している。前者のインタフェース4.2は、各MA
Uが当該インタフェースを通してメモリ3と通信するた
めのものであり、後者のインタフェース4.3は、各M
AUとプロセッサ2との間でデータが転送されている場
合に、プロセッサ2が当該インタフェースを通して各M
AUをアドレスするものである。参照番号4.5の処に
例示するように、各MAUは複数の外部接続を備えてお
り、その複数のチャネルをかかる外部接続を通してI/
O装置又はデータ通信リンクとそれぞれ結合することが
できる。図1では、これらの外部接続をそれぞれ物理的
に別個のものとして示しているが、これを(例えば、デ
イジタルT1又はT2電話ネットワーク・リンクのよう
に)単一の高速リンク上で時分割多重化した形態のもの
とすることも可能である。
【0039】参照番号7及び8の処に示すように、メモ
リ3は、複数のチャネル・デイスクリプタ・ブロック
(CDB)及び複数のチャネル・データ記憶ブロック
(CDSB)を保持する。これらのブロックは、メモリ
3中のランダムに選択された記憶空間に格納され、場合
によっては、これらを互いに散在させたり、他のデータ
と散在させたりすることができる(例えば、複数のCD
Bを、複数のCDSB及びプロセッサのプログラム等と
散在させることができる)。前述のように、これらのC
DBが、それぞれのデータ転送チャネルに関しそれぞれ
のチャネル・アダプタが行うべき動作を定義するのに対
し、これらのCDSBは、各MAUの複数のチャネルに
関しデータの転送先及び転送元となる、メモリ3中の複
数の記憶空間をそれぞれ表す。
【0040】図2は、開始端15と終了端17の間に中
間のCDB 16及び18を含む、連鎖CDBの1グル
ープを示す。これらのCDB 15−17には、CDS
B 19−22がそれぞれ関連しており、前者の各CD
Bが定義するデータ転送について使用すべき記憶空間
を、これに関連する後者の各CDSBが定義するように
している。すなわち、CDB 15はCDSB 19に関
連し、CDB 16はCDSB 20に、CDB 17は
CDSB 21に、そしてCDB 18はCDSB22に
それぞれ関連する。
【0041】CDB 15−17は、図1のMAU 4−
6のうち任意の1つにある任意のチャネル(これを記号
的に表すと、MAU「y」中のチャネル「x」となる)
へ向けることができる。また、各CDBは、連鎖グルー
プ中の次のCDBの位置を定義する一の数を有する。か
くて、図2に示すこれらの数及び記号は、CDBxy1
で開始し且つCDBxymで終了する、m個のCDBの
連鎖グループを特徴付ける。各CDBxyiから各CD
SBxyiの左下角部分に至る矢印が暗示するように、
各CDBは、関連するCDSBのメモリ3中の開始記憶
位置を指定する、ポインタ情報を保持する。また、各C
DBを表すボックスの底部から次のCDBを表すボック
スの左下角部分に至る矢印が暗示するように、連鎖グル
ープ中の最後のCDBを除く各CDBは、この連鎖グル
ープ中の次のCDBの開始記憶位置を指定する、ポイン
タ情報をそれぞれ保持している各CDBは、関連するC
DSBが定義する記憶空間を対象として行うべき、デー
タの送信又は受信転送を定義することができる。但し、
データの送信転送とは、関連するCDSBが定義する記
憶空間からデータを読み取り、このデータを外部インタ
フェース4.5中の一の回線又は時間スロットへ送信す
ることを言い、データの受信転送とは、外部インタフェ
ース4.5で受信したデータを関連するCDSBが定義
する記憶空間へ書き込むことを言う。これらのCDB及
びCDSBがそれぞれ格納される複数の記憶空間は、メ
モリ3中のランダムな記憶位置にあり、また各CDB中
のポインタ情報は、プロセッサ2だけがそこに保持させ
ることができる。
【0042】2.本発明の解決課題 図2には明示していないが、図2に示すCDB連鎖の長
さmは、これらのCDBが処理のために各MAUへデイ
スパッチされるときに、固定されるようになっている。
通常、この連鎖グループ中の複数のCDBが単一の動作
でデイスパッチされるように、この連鎖グループ中の最
初のCDBの記憶位置がMAUのチャネルへ通知され
る。前述のように、かかるCDBの連鎖グループを保持
する記憶空間のプロセッサ2による再使用と、最終的に
MAUの各チャネルで行われる当該連鎖グループが定義
する諸活動との間の、調整を行う必要がある。一般に、
かかる調整を行うため、各CDB連鎖のデイスパッチン
グをこのチャネルの最初の活動化と一致させるか、又は
既知の非活動状態の後のこのチャネルの再活動化と一致
させて、少なくともこのチャネルの活動が開始した時点
を判別するための基準をプロセッサ2に与えるようにし
ている。しかしながら、各CDBに関連する活動につい
てのチャネル完了ステータスをMAUからの割り込み要
求によって通知したとしても、プロセッサ2は、不確定
の実時間遅延が経過した後でなければこの割り込みを処
理しないから、プロセッサ2は、デイスパッチされた一
のCDB連鎖についてこのチャネルにおける活動の瞬間
的なステータスを決定するための手段を持たないことに
なる。
【0043】この結果、プロセッサ2は、既にデイスパ
ッチされている一の連鎖へ複数のCDBを「動的に」付
加することができない。なぜなら、そうするためには、
デイスパッチされている当該連鎖の最後のCDBへ、プ
ロセッサ2が一のリンク用ポインタを書き込むことが必
要となるにも拘わらず、プロセッサ2は、MAUが当該
最後のCDBを処理中であるか又はその処理を完了した
か否かを決定するための手段を持たないからである。か
くて、プロセッサ2にできることは、MAUの各チャネ
ルにおける非活動期間と連動して、複数のCDBを任意
のチャネルへ個別的に又は「バッチ」連鎖の形式でデイ
スパッチすることに制限される。更に、プロセッサ2が
任意の時間に(バッチ連鎖の形式で)デイスパッチでき
るCDBの数は、メモリ3中の記憶空間の利用可能性に
よって制限されることになる。もし、メモリ3が効率的
に使用されていれば、如何なる時間であれ、MAUの各
チャネルについて数個以上のCDBを格納するのに十分
な記憶空間を、断片化された又は連続的な形態のいずれ
であろうと、利用することはできそうもない。
【0044】このような制限は、チャネルの(従ってデ
ータ処理システムの)性能を低下させ、ひいてはプロセ
ッサ2が行うチャネル活動のスケジュール機能を必要以
上に複雑にする、という欠点を有しているが、本発明
は、チャネル又はデータ処理システムの性能の他の側面
を阻害することなく、かかる制限を回避せんとするもの
である。
【0045】3.本発明の機能 図3乃至図8は本発明の機能的側面、特に本発明のプロ
セッサ及びチャネル・アダプタが実行する諸機能を示
す。これらの機能を実行するプロセッサ及びチャネル・
アダプタは、図1に示したものと同様のシステム環境の
構成要素とすることができる。これらの独特の機能を実
行するチャネル・アダプタは、単一チャネル・アダプタ
又は複数チャネル・アダプタ(MAU)のいずれかであ
り得るが、これらの図面及び他の図面では、これをMA
Uとして示しており、以下の説明もその記述を簡単にす
るためMAUを中心として行うことにする。MAUの
「要求受信」論理が、単一チャネルについて本発明を実
施する場合と比較すると、一層のコスト節減を可能にす
るという点で有利であるとしても、本発明はMAUへの
適用に限られるものではなく、単一チャネル・アダプタ
にも等しく適用可能であることを理解すべきである。こ
の意味において、本発明の実施例がかるMAUを中心と
して説明されているとしても、本発明のチャネル・アダ
プタがMAUに限定されるものでないことは言うまでも
ない。
【0046】3.1 CDBのキューイング 以下、図3乃至図7を参照して、本発明のMAUによる
CDBのエンキュー方法を説明する。先ず、図3を参照
するに、MAUは、その各チャネル毎に1組ずつ設けら
れた、複数組の専用レジスタ30を備え、これらのレジ
スタ30中に、MAUが修正可能なチャネル・デイスク
リプタ・テーブル(CDT)をそれぞれ格納する。これ
らのCDTレジスタ30は、各チャネルに関する処理を
待機しているチャネル・デイスクリプタ・ブロック(C
DB)の一のリンク・リスト・キューを定義するために
使用され、また(各チャネルが現に活動的である場合
に)各チャネルで現に行われている動作を定義する所定
のCDBを保持するためにも使用される。従って、各チ
ャネルが活動的である場合、CDBレジスタ30は、
「現に活動的な」CDBである「CDB1」(メモリ3
からMAUによって検索され、関連するチャネルで現に
行われている活動を定義するCDB)を格納するととも
に、同じチャネルに関する処理を待機中の他のm個のC
DB 32−34(CDB2、・・・、CDBm)を保
持する記憶位置の一のリンク・リスト・キューを定義す
る情報を格納するために使用される。このリンク・リス
ト・キュー中にある複数のCDBは、関連する複数のプ
ロセッサ要求(後出)を受信したシーケンスで配列さ
れ、そのシーケンスでサービスされる。かくて、MAU
がCDBレジスタ30に保持されている特定CDBの処
理を終了すると、MAUは、リンク・リスト・キューの
「ヘッド・エンド」から次のCDBを検索し、このCD
Bを処理し、以下同様にして、このリンク・リスト・キ
ューの「テイル・エンド」にある最後のCDBの処理が
完了するまで、このリンク・リスト・キュー中の後続位
置にあるCDBの検索及び処理を継続することになる。
【0047】以下で詳述するように、このリンク・リス
ト・キューは、関連するチャネルの活動化の前にプロセ
ッサ2が予め確立するか、又はプロセッサ2とは独立に
MAUがこれを形成及び管理することができる。図3の
参照番号35−38が暗示するように、各CDBは、メ
モリ3中にある各チャネル・データ記憶ブロック(CD
SB)に対するポインタをそれぞれ保持する。すなわ
ち、各CDBが定義するデータ転送動作は、そのポイン
タにより指定された特定のCDSBが定義する記憶ブロ
ックを対象として行われるものである。かくて、CDB
1はこれに関連するCDSB1へのポインタを保持し、
CDB2はこれに関連するCDSB2へのポインタを保
持し、以下同様である。
【0048】ここで、一のチャネルが非活動的である場
合、そのCDT中でCDB1のために予約された記憶ブ
ロックは空き(又は未使用)であり、そのCDTで定義
可能なリンク・リスト・キューも空きである、という点
を理解すべきである。更に、活動的な一のチャネルに関
し単一のCDBだけが処理のために利用可能である場合
には、このCDBのコピー(すなわち、CDB1)がそ
のCDT中で位置決めされ、その定義可能なリンク・リ
スト・キューが空きとなる、という点も理解すべきであ
る。かくて、定義可能なリンク・リスト・キューが非空
となるのは、MAUが処理のためにスケジュールされて
いる少なくとも1つのCDBを有し且つMAUがかかる
CDBをまだ検索していない場合だけである。
【0049】図1のシステム環境に即して説明すれば、
CDTを構成するMAU中の複数のレジスタは、後述の
バス1に関する動作を通して、個別的なI/O装置とし
てプロセッサ2によってアドレスすることができ、また
個別的な内部要素としてMAUによってアドレスするこ
とができる。かくて、1つの例外を除くと、プロセッサ
2又はMAUは、各CDTレジスタへ情報を転送したり
各CDTレジスタから情報を読み取ることができる。な
お、実施例に即して説明すれば、この例外(後出)と
は、信頼性があるもプロセッサ2が書き込めないよう
な、所定のレジスタ位置である。
【0050】図4は、それぞれのI/Oアドレス位置の
順に配列された複数のCDTレジスタ40−45と、関
連するチャネルが活動的である場合にこれらのCDTレ
ジスタに格納される情報機能とを示す。レジスタ空間4
0は、現に処理中のCDB1の部分を含む「他の情報及
びコマンド」及び「キュー・カウント禁止(QCD)」
ビット40aを保持するために使用される。MAUによ
るQCDビット40aの使用方法については、以下の
「MAUの動作モード」の項で後述する。
【0051】レジスタ空間41は、現に処理中のCDB
1に関連するCDSB1の開始アドレスを定義する、
「データ・ポインタ(DP)」を格納するために使用さ
れる。レジスタ空間42は、「キュー・カウント(Q
C)」及び「転送カウント(TC)」機能を格納するた
めに使用される。ここで、QCはMAUが管理可能な一
のリンク・リスト・キューの長さを表し、TCは現に処
理中のCDB1について転送すべき残りのデータのバイ
ト数を表す。
【0052】レジスタ空間43は、「キュー・ヘッド・
ポインタ(QHP)」又はプリセット・アドレスを格納
するために使用される。各チャネルが活動的で、そのリ
ンク・リスト・キューが非空である場合、レジスタ空間
43は、MAUが次に検索及び処理すべきCDB(すな
わち、このリンク・リスト・キューの「ヘッド・エン
ド」に現に位置するCDB)の記憶位置を定義する、Q
HP機能を保持する。各チャネルが活動的で、そのリン
ク・リスト・キューが空である場合、レジスタ空間43
は、現に処理中のCDB1について行われる動作のステ
ータスを格納すべきステータス・バッファの記憶位置を
定義する、プリセット・アドレスを保持する。
【0053】レジスタ空間44は、現に処理中のCDB
1に保持されている「チャネル制御(CC)」情報を格
納するために使用される。かかる情報は、後述する小空
間44aに格納される、動作制御コードを含んでいる。
このコードがセット可能な値の1つは、「スキップ」
(ノー・オペレーション)活動を定義する。MAUがか
かるスキップ値を保持するCDBを検索する場合、MA
Uは、このCDBが定義するデータ転送(又は他の)動
作を自動的にスキップさせる。もし、この時間に、他の
CDT情報が定義可能なリンク・リスト・キューが空で
なければ、MAUは、次のCDB、すなわちこのリンク
・リスト・キューのヘッド・エンド位置にあるCDBの
検索及び処理を直ちに開始する。MAUが作成した一の
リンク・リスト・キューからCDBを除去するために、
プロセッサ2が使用するこの機能及び効果については、
以下で説明する。
【0054】レジスタ空間45は、前記リンク・リスト
・キューのテイル・エンドにあるCDB、すなわちMA
Uが検索及び処理するように現にスケジュールされてい
る最後のCDBの記憶位置を定義する、「キュー・テイ
ル・ポインタ(QTP)」情報を格納するために使用さ
れる。この機能及びその使用方法については、「MAU
の動作モード」の項で一層詳細に説明する。
【0055】図5は、各チャネル・デイスクリプタ・ブ
ロック(CDB)に保持される情報要素を示す。参照番
号50−55は、このCDBを保持する記憶ブロックの
連続的な一連のサブ・ブロックを表す。この記憶ブロッ
クの開始アドレスは、サブ・ブロック50の底部にあ
り、この記憶ブロックの終了アドレスは、サブ・ブロッ
ク55の頂部にある。このCDBがチャネル・デイスク
リプタ・テーブル(CDT)中で定義された一のリンク
・リスト・キューの一部である場合、先行CDBは以下
で説明する「連鎖ポインタ(CP)」を含んでいて、こ
のCDBを保持する記憶ブロックの開始アドレス、すな
わちサブ・ブロック50を保持する空間の開始記憶位置
を指定する。
【0056】サブ・ブロック50は、(このCDB及び
先行CDBを保持する)リンク・リスト・キュー中にあ
る先行CDBの、MAUによる処理に関するステータス
を格納するための「ステータス・バッファ」を保持す
る。MAUがかかる先行CDBの処理を完了する場合、
MAUは、かかる先行CDBのQHP値(図4のレジス
タ空間43)を使用して、かかる先行CDBのステータ
ス・バッファ用サブ・ブロック50を位置決めするとと
もに、このCDBを次に検索及び処理すべきものとして
位置決めする。
【0057】サブ・ブロック51は、MAUが処理のた
めにこのCDBを検索するとき、レジスタ空間40(図
4)へ入力される、「他の情報」を保持する。サブ・ブ
ロック52は、このCDBが定義するデータ転送を行う
べき記憶空間を定義する処のCDSBを位置決めする
「データ・ポインタ(DP)」、すなわちこのCDBが
処理のために検索されるときにレジスタ空間41(図
4)へ入力される情報を保持する。サブ・ブロック53
は、このCDBによって定義されたデータ転送のバイト
長を定義する、「転送カウント(TC)」を保持する。
この情報は、このCDBが処理のために検索されると
き、レジスタ空間42(図4)のTC部分へ入力される
ものである。
【0058】サブ・ブロック54は、このCDBが処理
のために検索されるとき、図4のレジスタ空間43へセ
ットされるような、「連鎖ポインタ(CP)」を保持す
る。このCPの値は、このCDBがMAUのチャネルへ
デイスパッチされる前に、プロセッサ2によってセット
され、そしてMAUがこのCDBの処理を終了する前
に、MAUへ他のCDBがデイスパッチされる場合は、
MAUによって変更されるのである。MAUによって変
更される場合、このCPは、次のCDB中のステータス
・バッファ50の記憶位置を指定するとともに、かかる
次のCDBを位置決め及び検索するための基準として作
用する。
【0059】サブ・ブロック55は、MAUがこのCD
Bを処理するためのチャネル処理構成を定義する、「チ
ャネル制御(CC)」情報を保持する。すなわち、かか
る情報は、MAUが処理のためにこのCDBを検索する
とき、レジスタ空間44(図4参照)へ入力され、前述
のようにスキップ値へセット可能な制御コード44a
(図4参照)を保持する。
【0060】以下の「MAUの動作モード」の項で詳述
するように、MAUは、これが制御する各チャネルに関
し、「キュー管理」モード及び「通常連鎖」モードで動
作することができる。キュー管理モードでは、プロセッ
サ2は、各CDBの記憶位置を定義する「要求」を、一
度に1つずつ各チャネルにデイスパッチする(但し、こ
の時点では、各CDBは、他の任意のCDBの記憶位置
へ明示的にリンクさせるような情報を持っていない)。
このモードでは、MAUは、各要求に関連する複数のC
DBの処理をスケジュールするという責任を有する。す
なわち、MAUは、このチャネルのCDTで定義された
リンク・リスト・キューの作成を管理するとともに、M
AUが同じチャネルに関する他のCDBを処理している
間に関連する複数の要求が受信される場合は、複数のC
DBをこのリンク・リスト・キューへ導入することを管
理するのである。
【0061】図6は、MAUが一のチャネルに関しキュ
ー管理モードで動作するようにセットされている場合
の、プロセッサ2とMAUの動作を示す。ステップ60
において、プロセッサ2は一の「新しい」CDBを格納
するとともに、一の要求をMAUへパスすることによっ
て、この要求をMAUの一のチャネルへデイスパッチす
る。かかる要求は、これに関連する前記新しいCDBの
処理をスケジュールするために、MAUが処理する。こ
の要求をMAUへ転送し且つ各要求が向けられたチャネ
ルをMAUへ指示するための信号プロセスについては、
図9乃至図13を参照して以下で詳述する。
【0062】これらの要求は、常に、一度に1つずつデ
イスパッチされ、MAU中の「要求シーケンサ」によっ
て一度に1つずつ処理される。各要求は、これに関連す
るCDBが格納されているメモリ3中の開始アドレスを
指定するとともに、このCDBが適用されるMAUのチ
ャネルの指示を付随させている。MAUの所定のチャネ
ルへ向けられる一の要求を受信した後、前記要求シーケ
ンサは、関連するCDBの検索及び処理を直ちに開始さ
せるか、又はこのCDBを前記所定のチャネル専用のリ
ンク・リスト・キューへエンキューする機能を実行す
る。これらのリンク・リスト・キューは、図4のチャネ
ル・デイスクリプタ・テーブル(CDT)を利用しつ
つ、MAUが作成及び管理するものである。
【0063】図6のステップ61において、MAUは、
(後述する要求レジスタにおける)各要求の受信を認識
し、その要求シーケンサを活動化して、受信した要求に
関するスケジュール機能を実行する。次に、要求シーケ
ンサは、この要求が向けられたチャネルの「キュー・カ
ウント(QC)」機能を調べ、このQC値がゼロ、1又
は1より大きいか否かに従って、3つの動作のうちの1
つを行う。
【0064】もし、このQC値がゼロであれば(すなわ
ち、各チャネルのリンク・リスト・キューが現に空であ
り且つこのチャネルが現にアイドルであれば)、要求シ
ーケンサは、受信したばかりの要求に関連するCDBの
検索及び処理を開始する。次に、MAUは、ステップ6
2の諸動作を実行する。かかる動作は、バス1(図1)
の制御を獲得し、メモリ3(図1)をアクセスし、この
要求で与えられた記憶位置から関連するCDBを検索
し、このCDBを各チャネル専用のCDTレジスタ空間
中の特定のレジスタ(例えば、図4のレジスタ40及び
44)へ置くことを含んでいる。この間、MAUの要求
シーケンサ(後出)は、ステップ63において、QC値
を1だけインクレメントするとともに、他の動作(後
述)を実行して前述の要求レジスタを解放することによ
り、この要求レジスタが他の要求を受信するために利用
できるようにする。その間、このCDBを該当するCD
Tレジスタへ入力した後、MAUは、これらのCDTレ
ジスタに関連するチャネルについてこのCDBが定義す
る動作の処理を開始する。
【0065】もし、調べられたQC値が1であれば、M
AUは、各リンク・リスト・キュー中の最後のCDBを
現に処理中であり、かくてステップ64において、この
要求が指定するCDBをこのリンク・リスト・キューの
「ヘッド・エンド」及び「テイル・エンド」の両位置へ
エンキューすることが行われる。この動作では、この要
求(新しいCDBアドレス)は、関連するCDT中の
「キュー・ヘッド・ポインタ(QHP)」及び「キュー
・テイル・ポインタ(QTP)」レジスタ空間(例え
ば、図4のレジスタ空間43及び45)の両方へ転送さ
れる。この後、ステップ63では、QC値が1だけイン
クレメントされる。
【0066】もし、調べられたQC値が1より大きけれ
ば、この要求に関連するCDBは、ステップ65及び6
6の動作を介して、各リンク・リスト・キュー中のテイ
ル・エンド位置に導入されることになる。ステップ65
において、MAUは、この要求(新しいCDBアドレ
ス)を、以前にテイル・エンドの位置を保持していたC
DB中のCP位置(図5の54)へ書き込む。すなわ
ち、このCDTのQTP機能によって定義されたリンク
・リスト・キュー中のテイル・エンド位置を現に占有し
ているCDBを保持する処の記憶位置中のCP空間へ、
この要求のアドレスが書き込まれるのである。これを達
成するため、MAUは、バス1の制御を獲得し、このC
DT中の「キュー・テイル・ポインタ(QTP)」へオ
フセットを加算して、書き込むべきCP位置のアドレス
を生成し、この新しい要求データをこの位置へ書き込む
ようにメモリ3を制御する。これと同時に、要求シーケ
ンサは、ステップ66の動作を制御して、この新しい要
求データを各CDTレジスタ空間のQTP位置(図4の
レジスタ空間45)へ転送することにより、関連するC
DBをそのリンク・リスト・キューのテイル・エンドに
配置する。ステップ65及び66の動作が完了すると、
QC値が1だけインクレメントされ(ステップ63)、
要求レジスタが他の要求を受信できるようにする。
【0067】3.2 CDBのデキューイング 図7は、前述のようにMAU又は単一チャネルのチャネ
ル・アダプタが管理する各リンク・リスト・キューか
ら、プロセッサ2が各CDBを有効に除去し得る方法を
示す。ここで、MAUのチャネル・デイスクリプタ・テ
ーブル(CDT)中にあるチャネル制御レジスタ空間
(図4のレジスタ空間44)が、現に処理中のチャネル
・デイスクリプタ・ブロック(CDB)に含まれる情報
(図5のCDBメモリ空間55中のチャネル制御情報に
対応)を保持していることを想起されたい。このレジス
タ空間へMAUがフェッチするCDBチャネル情報は、
関連する要求をMAUへデイスパッチする前又は後に、
プロセッサ2がセット可能な制御コード44aを保持す
る。このコードが1へセットされていると、これは、
「スキップ」機能を定義する。MAUが一のCDBを検
索する場合、MAUは、このコードを直ちに検知し、こ
のコードがスキップ機能を指定する値へセットされてい
る場合には、このCDBが定義する他の全ての動作をス
キップさせる。スキップ機能が検知されたときに、各チ
ャネルに関連するリンク・リスト・キューが空でなけれ
ば、MAUは、各CDT中の「キュー・ヘッド・ポイン
タ(QHP)」(図4の43)が定義するアドレスにあ
る次のCDBへ直ちに連鎖(検索)する。さもなけれ
ば、MAUは、集結機能(ステータス報告用の割り込み
要求を通知する等)を実行し、かくてそのチャネルを次
の要求が受信されるまでアイドルにする。
【0068】この手続きは、図7に示されている。すな
わち、ステップ70において、プロセッサ2は、MAU
の特定のチャネルへ向けられる選択されたCDB中にス
キップ機能をセットする。ステップ71において、MA
Uは、これが現に処理中のCDBによって定義された同
じチャネルに関する動作を終了する。次のステップ72
において、MAUは、各チャネル中のCDB処理の完了
に関連する一の連鎖条件を検知する。ステップ73にお
いて、MAUは、メモリ3から各チャネルへ割り振られ
たCDTレジスタへ、次のCDB(当該CDT中で定義
可能な一のリンク・リスト・キューのヘッド・エンドに
置かれたCDT、又は丁度処理されたばかりの一の要求
に関連するCDB)をフェッチする。ステップ74にお
いて、MAUは、このようにしてフェッチされたCDB
のチャネル制御フィールド中にあるスキップ機能の条件
に基づいて分岐する。もし、このスキップ機能がセット
されていなければ、MAUは、ステップ71の動作を介
して次のCDBをフェッチするように進行する。図7に
は明示していないが図7で暗示されているのは、各チャ
ネルへ向けられる一の要求をMAUが受信してその処理
を開始するまでの、可能な待機用インタルードである。
このことが生ずるのは、例えば、セットされたスキップ
機能が検知されたとき、各リンク・リスト・キューが空
であり、しかもMAUが各チャネルに関し処理すべき即
時のCDB要求を持っていない場合である。
【0069】次に、前述のスキップ機能がデータ処理シ
ステム全体に及ぼす影響について検討する。もし、MA
Uが所定のCDBの処理を完了した後(すなわち、関連
する要求が転送され、そして十分にスケジュールされた
シーケンスを通して当該CDBに到達した後)に、プロ
セッサ2が当該CDB中にスキップ機能をセットするな
らば、プロセッサ2のこの動作は、既にスケジュールさ
れていたがこの段階になっては必要でないかもしれない
動作(データ転送又は他の動作)をMAUが実行するこ
とを許容したことを除けば、全く効果を持たないもので
ある。他方、MAUが処理のために一のCDBを検索す
る前に、プロセッサ2がこのCDBのスキップ機能をセ
ットするならば、MAUは、あたかもスキップ機能をセ
ットされたこのCDBが関連するリンク・リスト・キュ
ーから物理的に除去されたかのようにして、このCDB
の動作をスキップするとともに、このリンク・リスト・
キュー中の次のCDBへ連鎖するように強制される。こ
の場合には、スキップ及び検索の処理に関連する追加の
待ち時間が伴うが、チャネル処理活動との潜在的な妨害
の見地からすると、この追加の待ち時間は最小とみなす
べきものである。
【0070】更に、ここで理解すべきは、かかるスキッ
プ・コードによって生ぜられる仮想的なCDBの除去
は、CDBを物理的に除去する場合と比較すると、実現
が一層簡単で、効率も一層優れている。すなわち、CD
Bを物理的に除去するには、プロセッサ2は(MAUの
協同動作を伴って又はかかる動作を伴わないで)、除去
すべきCDBに先行するリンク・リスト・キュー中の位
置を占有する一のCDB中の「連鎖ポインタ(CP)」
(図5の54)を修正して、このリンク・リスト・キュ
ーの構成を明示的に変更することにより、除去すべきC
DBの後にある次のCDBを指定することが必要となる
であろう。
【0071】しかしながら、これらの先行するCDB及
び次のCDBを位置決めすることは、非常に困難である
場合がある。なぜなら、各CDBはそれぞれの先行CD
Bを指定する逆方向の連鎖ポインタを持っておらず、従
って少なくとも先行するCDBを位置決めするために
は、MAU又はプロセッサ2が、全てのCDBの連鎖ポ
インタを当該リンク・リスト・キューのヘッド・エンド
位置から除去すべきCDBの位置まで走査すること(す
なわち、メモリ3から各CDBの連鎖ポインタを読み取
り、先行CDB及び後続CDBの記憶位置を確定し、改
訂された連鎖ポインタを先行CDBへ書き込む、という
諸動作)が必要となるからである。かかる動作を行うの
に必要な時間が、スキップ・コードを保持する単一のC
DBを検索し処理するのに必要な時間と比較すると、ず
っと大きいことは明らかであり、しかもそれだけではな
く、MAUによるリンク・リスト・キューの処理を阻害
するというリスクを冒すことなしに(すなわち、実際の
データ転送プロセスにおけるオーバーラン又はアンダー
ランなしに)このような連鎖ポインタの修正を行い得る
かどうかという点は不確実である。
【0072】3.3 CDBの連鎖に関するQCDビッ
トの影響 各CDT中にあるキュー・カウント禁止ビット(図4の
QCDビット40a)は、CDTレジスタ空間へアドレ
スされる、プロセッサ2のI/O書き込み動作によっ
て、「オン」又は「オフ」状態へセットすることができ
る。このビットがオン状態にあると、MAUは、CDT
中の「キュー・カウント(QC)」機能(図4のレジス
タ空間42)を修正できない。一方、このビットがオフ
状態にあると、MAUは、このQC機能を修正できる。
しかしながら、このビット状態は、それぞれのCDTが
定義するリンク・リスト・キュー中の相次ぐCDBへ連
鎖する際の、MAUの動作モードを制御するためにも使
用される。
【0073】図8に示すように、実施例におけるMAU
は、QCDビットの状態に応じて、その連鎖動作(一の
CDBの処理を終了したときにMAUが取る動作)を変
更する(ステップ80)。もし、QCDビットがオフ状
態にあれば、MAUは、ステップ81及びその後の動作
を実行し、もし、QCDビットがオン状態にあれば、ス
テップ87及びその後の動作を実行する。もし、QCD
ビットがオフ状態にあれば、MAUは、QC値を調べ、
QC値がゼロ又は1であれば、後続のステップ82−8
5へ分岐し、QC値が1より大きければ、後続のステッ
プ86−88及び85へ分岐する。
【0074】ステップ82において、MAUは、QC値
をゼロへデクレメントするか又はこれをゼロの値に維持
する。ステップ83において、MAUは、QHPレジス
タ空間43(図4)中で定義された記憶位置へ、「完
了」ステータスを書き込む。ステップ84において、M
AUは、「キュー・アンダーラン」例外条件を(例え
ば、プロセッサ2に対する一の割り込みとして)通知
し、プロセッサ2がこの例外に応答して(後述する態様
で)明示的に介入するまで、関連するチャネルに関する
以後の活動を中断し、終了する(ステップ85)。
【0075】ステップ86において、MAUは、QC値
を1だけデクレメントする。ステップ87において、M
AUは、QHPレジスタが指定する記憶位置へステータ
スを書き込む。ステップ88において、MAUは、その
CDTのQHPを参照して決定された記憶位置から次の
CDBをフェッチし、かかるCDBの処理を実効的に開
始し、かかるCDBの処理を継続しつつ、終了する(ス
テップ85)。図1のシステム環境に即して説明すれ
ば、ステップ87と88との間で、MAUは、メモリ3
に関する2つの動作、すなわちステータスの書き込み動
作と前記次のCDBの読み取り動作との間にバス1の制
御を維持し、これによりステップ88のためにバス1の
制御について再びアービトレーションを行うことを回避
する。次に、QCDビットがオン及びオフにセットされ
た場合の、プロセッサ2及びMAUの相対的動作を説明
する。
【0076】3.4 MAUの動作モード(要約) 実施例では、「スレーブ・モード」及び「キュー管理モ
ード」と呼ばれる2つのモードでMAUを動作させるた
めに、プロセッサ2は、図8の動作を行う。スレーブ・
モードが従来技術に従った通常のチャネル動作に帰着す
るのに対し、キュー管理モードは本発明に従ったチャネ
ル動作に帰着する。スレーブ・モードでは、各CDT中
のQCDビットがプロセッサ2によってオンに転じられ
(かくて、QCビットのデクレメント動作を禁止す
る)、他方のキュー管理モードでは、このQCビットが
オフに転じられる(かくて、QCビットのデクレメント
動作を可能にする)。
【0077】スレーブ・モードにおいて、プロセッサ2
は、連鎖CDBの一のリンク・リスト・キューを予め作
成する。かかる連鎖CDBは、このリンク・リスト・キ
ューが形成されるときにアイドル又は非活動的であるこ
とが判っている、MAUの一のチャネルへ向けられるも
のである。典型的な場合、このリンク・リスト・キュー
は、「テイル・エンド」位置を持たない「循環バッフ
ァ」式に形成される。プロセッサ2は、このリンク・リ
スト・キュー中の各CDB内に当該リンク・リスト・キ
ュー中の次のCDBの記憶位置を指定する連鎖ポインタ
(CP)を与え、MAUの各チャネルに関連するCDT
へ情報を書き込んでそのQCDビットを「オン」状態へ
セットし且つ最初のCDB位置を指定(すなわち、当該
CDT中のQHPパラメータを確立)し、MAUに対し
このチャネルを活動化するように通知する。
【0078】次いで、MAUは、このリンク・リスト・
キューを予め連鎖された一のグループとして取り扱うよ
うに進行し、このリンク・リスト・キュー中の後続CD
Bを検索及び処理し、前記CDT中のQC機能を無視す
る。最初の、すなわち開始CDBは、このCDT中のQ
HP機能が指定する記憶位置から検索される。このよう
にして最初のCDBが検索される場合、このQHP機能
は、検索された最初のCDB中のCP要素と置き換えら
れ、これにより次のCDBをこのリンク・リスト・キュ
ーのヘッド・エンド位置に配置する。前記最初のCDB
の処理が終結する場合、MAUは、一の連鎖動作を実行
して、メモリ3中の次のCDBのステータス・バッファ
へステータスを書き込み(図5のレジスタ空間50、図
8のステップ87)、バス1を開放することなく前記次
のCDBをそのCDTへ読み込む(図8のステップ8
8)。次に、MAUは、検索済みのこのCDBを処理す
る。当該チャネルがプロセッサ2からの信号によって明
示的にアイドルにされるまで、この連鎖及びCDB処理
動作は後続CDBを通して継続し、MAUは循環バッフ
ァを通して「エンドレス」に循環する。
【0079】キュー管理モードにおいて、MAUのチャ
ネルに関連するCDTは、そのQCDビットをオフに、
またその他のパラメータが空のリンク・リスト・キュー
を定義するようにして、初期設定される。その後、プロ
セッサ2は、「CDBスケジューリング要求」を適当な
インターバルで順次にデイスパッチする。各要求は、リ
ンク用の連鎖ポインタ・フィールド(図5の54)が空
又は無効であるような一のCDB(すなわち、他のCD
Bの記憶位置を明示的に指定しないCDB)のメモリ3
中の記憶位置を指定する。しかしながら、各要求に応答
して、MAUは、関連するCDBの処理を(かかるチャ
ネルへ向けられた要求の受信シーケンスで)スケジュー
ルする。このスケジューリング機能の間、MAUは、各
CDBと先行する一の要求に関連するCDBとの間の、
明示的なリンケージを(後者のCDBの連鎖ポインタ・
フィールドへリンク用ポインタを書き込むことによっ
て)作成することができる。
【0080】その要求スケジューリング機能の間、MA
Uは、この要求が向けられるチャネルに関連するCDT
中のキュー・カウント(QC)値を調べることによっ
て、このチャネルのリンク・リスト・キューが空である
か否かを判別する。もし、このリンク・リスト・キュー
が空であれば、MAUは、各要求がその記憶位置を定義
するCDBを直ちに検索し且つ処理する。しかしなが
ら、このリンク・リスト・キューが空でなければ、MA
Uは、各CDBをこのリンク・リスト・キュー中のテイ
ル・エンド位置に導入する動作を実行し、これにより将
来の処理のために各CDBを適正なシーケンスでスケジ
ュールする。
【0081】一のCDBを一のリンク・リスト・キュー
中のテイル・エンド位置に導入するため、MAUは、こ
のCDB(これは各スケジューリング要求中に保持され
ている)の記憶位置を各CDT中のキュー・テイル・ポ
インタ(QTP)レジスタ空間へ書き込むとともに、こ
のテイル・エンド位置を以前に占有していたCDBが処
理のためにまだデキューされていなければ、前記の記憶
位置をこのCDBの連鎖ポインタ(CP)を保持する記
憶位置(図5の54)へも書き込む。図1のシステム環
境で、このCPを保持する記憶位置への書き込みを行う
には、MAUは、まずバス1の制御を獲得しなければな
らない。
【0082】キュー管理モードでMAUが実行するCD
B処理動作は、図8に示されているものと本質的に同等
である。すなわち、連鎖時にQC値が1又はそれ以下で
あれば、ステップ80−85の動作が実行され、連鎖時
にQC値が1より大きければ、ステップ80、81、8
6−88及び85の動作が実行される。連鎖時のQC値
がゼロ又は1である場合、ステップ84の動作の間に通
知されるキュー・アンダーラン例外条件をプロセッサ2
が最終的に認識し、これによりプロセッサ2はMAUの
チャネルに関連するCDTのリンク・リスト・キューが
空であることを知る。もし、かかるキュー・アンダーラ
ン例外条件がエラー(データ転送のオーバーラン又はア
ンダーラン)の源でなければ、前記例外条件は、プロセ
ッサ2をプロンプトして、影響を受けるMAUのチャネ
ルへ追加のCDBスケジューリング要求をデイスパッチ
する動作を優先させるようにする。
【0083】前記キュー管理モードの、「拡張キュー管
理モード」と呼ばれる変形例では、プロセッサ2は、M
AUのチャネルに関連するCDTを予め作成された一の
リンク・リスト・キューで以て(すなわち、関連するC
DT中のQC、QHP及びQTPレジスタ空間へ、意味
のあるキュー・カウント及びエンド・ポインタ情報をセ
ットすることによって)初期設定し、次いでMAUを前
述のキュー管理モードで動作するように初期設定するこ
とができよう。この拡張モードでは、MAUは、前記予
め作成されたリンク・リスト・キュー中のCDB(これ
らのCDBはこのリンク・リスト・キューがスレーブ・
モードで有するものと全く同じである)を検索及び処理
するが、これと同時に、(プロセッサ2により一度に1
つずつ与えられる)「CDBスケジューリング要求」が
指定する複数のCDBをこのリンク・リスト・キューの
テール・エンド位置へ付加するように動作することにな
ろう。
【0084】勿論、前記予め作成されたリンク・リスト
・キュー中のテイル・エンドを除く位置にある各CDB
は、このリンク・リスト・キュー中の次のCDBの記憶
位置を指定する連鎖ポインタを(プロセッサ2から)与
えられることになろう。この予備的作成が行われるの
は、各チャネルの初期設定時のみであって、しかもプロ
セッサ2がその時間にキューされた複数のCDBを格納
するに十分な記憶空間を有する場合だけである。このよ
うにすると、チャネルの初期設定時にCDBを処理する
ための若干の先行時間をMAUに与えることができる
が、その反面、プロセッサ2及びMAUの動作が一層複
雑になる。
【0085】4.CDBスケジューリング要求を処理す
るためのプロセッサ−MAUインタフェー 図9乃至図11は、前記したCDBスケジューリング要
求の転送及び処理に関連するプロセッサ−MAUインタ
フェースの編成を、特にMAUのインタフェース・レジ
スタ及び論理に重点を置いて、記述するために使用する
ものである。このインタフェースの全体的な編成は、図
9を参照して以下の第4.1章で説明し、論理記号及び
論理要素の詳細は第4.2章で説明する。
【0086】4.1 要求インタフェース(一般) 図9は、前述のキュー管理モードの動作を支持するため
の、すなわちプロセッサから「CDBスケジューリング
要求」を順次に受信し、関連する複数のCDB(これら
の記憶位置は前記要求によって与えられる)の処理を各
要求の受信シーケンスでスケジュールするための、MA
Uの編成を示す。以下の説明では、図1のシステム環境
を仮定する。図9に示すMAU 90は、バス91に対
するUCインタフェース92及びDMACインタフェー
ス93を有する。バス91は図1のバス1に対応し、図
1のプロセッサ2及びメモリ3にそれぞれ対応するプロ
セッサ及びメモリ・サブシステムへの接続(いずれも図
示せず)を有する。このシステム環境の前述の説明と同
様に、プロセッサとMAU90との間の指示された通信
は、プロセッサによりバス1を制御しつつ、MAU 9
0のUCインタフェース92へ接続するバス経路94を
通して行われる。これに対し、MAU 90とメモリと
の間の通信は、MAU 90のDMACインタフェース
93へ接続するバス経路95を通して行われる。
【0087】一般に、プロセッサが制御する指示された
通信は、UCインタフェース92へリンクされた特定の
MAU要素へアドレスされる、I/O読み取り及び1/
O書き込み動作から成る。このような通信は、前述のC
DBスケジューリング要求をプロセッサからMAU 9
0へ転送するための、信号機能を含んでいる。各要求が
向けられるMAU 90のチャネルは、かかる通信の一
部である信号中で指定される。かかる要求信号動作は、
キュー管理モード用に初期設定されたMAU90の複数
のチャネル(すなわち、それぞれのCDTレジスタ中の
QCDビット機能をオフに初期設定されている複数のチ
ャネル)についてのみ行われる。
【0088】各要求転送は1つ以上のI/O読み取り動
作を含み、その間に、要求受信に対するMAU 90の
利用可能性がプロセッサによってポールされ、I/O書
き込み動作がこれに続き、その間に、一のCDBのアド
レスがMAU 90中の一のレジスタへ転送される。こ
れらのI/O読み取り及びI/O書き込み動作の間、プ
ロセッサが読み取り/ポールしたMAU 90のステー
タス信号と、プロセッサが書き込んだCDBのアドレス
信号とは、要求読み取り/書き込み論理96を通してM
AU 90の内部で転送される。かかる要求の受信に関
連するMAU 90の内部にある複数のレジスタ及びラ
ッチは、参照番号97の処に総括的に示されている。一
の要求についてプロセッサが読み取り/ポールした複数
の信号は、参照番号97の処にある複数のラッチの状態
を表示し、プロセッサが書き込んだ要求データ(CDB
アドレス)信号は、参照番号97の処にある一の要求レ
ジスタへ転送される。
【0089】MAU 90の内部では、前述のレジスタ
/ラッチ97と個別的なMAUチャネルに関連する複数
のCDTレジスタ98との間や、レジスタ/ラッチ97
と要求シーケンサ99との間に、論理信号転送用の接続
がそれぞれ設けられる。CDTレジスタ98及びDMA
Cインタフェース93に関し、要求シーケンサ99は、
MAU 90のキュー管理モードに従った要求スケジュ
ーリング機能を実現するように動作する。また、CDT
レジスタ98について、要求シーケンサ99は、一の要
求に関連するCDBをそのリンク・リスト・キューのテ
イル・エンド位置に導入するのに必要な、キュー・パラ
メータを修正するように動作する。更に、DMACイン
タフェース93について、要求シーケンサ99は、要求
CDBを一のリンク・リスト・キューへ付加する場合に
は、連鎖ポインタ情報をテイル・エンドの記憶位置にあ
るCDBへ書き込み、そして当該スケジューリング機能
が実現される時間に各リンク・リスト・キューが空であ
る場合には、メモリから当該CDTへ一のCDBをフェ
ッチするように動作する。
【0090】直接データ経路92.1は、UCインタフ
ェース92からCDTレジスタ98へ延びている。この
経路は、予めリンクされ且つ予め連鎖された複数のCD
BをMAU 90へデイスパッチするために、プロセッ
サからCDTへデータを直接的に書き込むことを可能に
する(スレーブ・モードの動作に関する前述の説明を参
照のこと)。
【0091】図11を参照して以下で説明するMAU
90の実施例では、全てのMAUチャネルへ向けられる
要求CDBアドレスは、単一の要求レジスタを通してフ
ァネルされる。かかるCDBアドレスの各々は、MAU
90中の一の「論理ポート」をアドレスする信号を付
随させている。ここで、かかる「論理ポート」は、関連
するCDBが定義する動作を行うべきMAUチャネル
へ、一意的に割り振られるものである。MAU 90中
の論理は、これらのポート・アドレス信号を復号して、
各ポート及びMAUチャネルに一意的に関連する一のラ
ッチをセットする。MAU 90中の要求シーケンサ
は、一の受信ラッチのセット状態に応答して、この要求
が記憶位置を指定するCDBの処理を、当該ラッチに関
連するMAUチャネルについてスケジュールする。
【0092】4.2 要求インタフェース(MAUの実
施例) 図11は、MAU型のチャネル・アダプタで使用するに
適した要求シーケンサ・インタフェースを示す。図10
は、図11のANDゲート及びORゲートを表すために
使用する論理記号を示す。図10を参照するに、参照番
号100はANDゲート用の記号を表し、参照番号10
1はORゲート用の記号を表す。参照番号100.1及
び100.2はANDゲートの入力及び出力をそれぞれ
表し、参照番号101.1及び101.2はORゲート
の入力及び出力をそれぞれ表す。左端の参照番号10
0.3は、ANDゲートの禁止入力を表す。
【0093】論理的な側面を説明すると、ORゲートの
少なくとも1つの入力が活動的/1であるとき、その出
力は活動的/1であり、全ての入力が非活動的/0であ
るとき、その出力は非活動的/0である、と仮定する。
同様に、禁止入力を持たないANDゲートの場合は、そ
の全ての入力が活動的であるとき、その出力は活動的/
1であり、少なくとも1つの入力が非活動的であると
き、その出力は非活動的/0である、と仮定する。一の
禁止入力を持つANDゲートについては、この禁止入力
が非活動的で、且つ他の全ての入力が活動的である場合
にのみ、その出力は活動的/1である、と仮定する。
【0094】次に、図11を参照するに、UCインタフ
ェース102の右側には、MAUの要求シーケンサ・イ
ンタフェースのそれぞれの部分が示されている(なお、
図9に示すように、UCインタフェース102の左側
は、バス1を介してプロセッサ2へ接続されている)。
図示の実施例では、MAUは、8個のチャネルを含んで
いる。複数の要求は、プロセッサからUCインタフェー
ス102を通してMAUへ転送される。
【0095】各要求は、以下で説明する1つ以上のI/
O読み取り動作から成り、かかる動作の間、プロセッサ
は、MAU中の要求処理活動の状態をポールする。これ
に続くI/O書き込み動作の間、プロセッサは、一のC
DBの記憶位置を定義する「要求データ」を提示する。
「要求使用中」ステータスが戻って来て、以前に書き込
まれた要求データをMAUが処理しなかったことを表示
する場合、前記の読み取り/ポーリング動作が反復され
る。一の読み取り動作が「非使用中」ステータスを戻す
場合は、書き込み動作が呼び出される。
【0096】要求の読み取り及び書き込み動作にそれぞ
れ付随するのは、読み取り(RD)信号103と、書き
込みストローブ(WS)信号104と、MAU及びMA
U中の一の「ポート・アドレス」を指定する一のアドレ
ス信号とである。MAUは、その8個のチャネルと個別
的に関連する8個のポートを有する。従って、各ポート
・アドレスは、8個のチャネルのうち特定の1つを有効
に指定する。
【0097】アドレス・デコーダ105は、各要求に付
随するアドレス信号を復号するとともに、ポート・アド
レス信号に応答して、8本のポート選択線(Sel
(i))(i=0−7)のうちの1本を活動化する。こ
れらのポート選択線は、後述する論理を通して、8個の
ラッチ106のセット入力へ結合され、以下で定義する
論理条件の下で各ラッチ106をセットする。これらの
ラッチ106は8個のMAUチャネルに個別的に関連し
ており、それぞれのセット出力を要求シーケンサ(図9
の99)に加えることにより、現にセットされている特
定のラッチ106に関連するMAUチャネルについて、
MAUがメモリをアクセスすることを要する要求処理動
作が必要とされていることを表示する。
【0098】前記ポート選択線とラッチ106との間に
ある前述の論理は、以下の全ての条件が同時に満足され
るとき、すなわち 書き込みストローブ信号104が
活動状態にあって、一の要求が書き込まれつつあること
を表示しており、 ラッチ106の全てがリセット状
態にあり、 各ポート選択線が活動的であり、 各チ
ャネルのキュー・カウント(QC)、すなわち当該チャ
ネルへ割り振られたCDT中のQC値が1でないとき、
一のラッチ106をセットするように動作する。この状
況では、当該要求スケジューリング機能は、MAUがメ
モリをアクセスして、その時点で関連するリンク・リス
ト・キューのテイル・エンド位置を占有しているCDB
の連鎖ポインタ(CP)を修正することを必要とする。
前述の複数のラッチ106が必要となる理由は、かかる
アクセスが、その時点でMAUによって行われている実
時間式のデータ転送プロセスと調整されねばならないた
めに、このようなアクセスの待ち時間が不確定となる、
という点にある。もし、一の要求が書き込まれていると
きに、このチャネルのQC値が1であり、且つ前述の他
の条件が同時に存在すれば、当該要求処理機能は、各チ
ャネルのCDTパラメータをローカルで変更することを
含むに過ぎない。この場合、これらの変更は瞬時に行わ
れるから、如何なる要求表示をもラッチする必要はな
い。
【0099】ラッチ106の任意のものがセットされて
いるとき、ORゲート107は、要求(Req)信号を
活動化する。この要求信号はORゲート108へ加えら
れ、そこからキュー使用中(QB)信号を生ぜしめ、ま
たANDゲート109及び110の禁止入力にも加えら
れる。キュー使用中(QB)信号は、ANDゲートのバ
ンク111及びORゲートのバンク130を通して、デ
ータ出力バス113へ加えられる。バンク111中の諸
ゲートが後述する論理によって可能化されるのは、UC
インタフェース102における読み取り信号103が活
動的である場合のみ、すなわちプロセッサが要求(ステ
ータス)読み取り動作を信号している場合だけである。
このような場合には、(QB線の状態を表す信号を含
む)データ出力バス113上の信号は、UCインタフェ
ース102及び図示していないバス1を介してプロセッ
サへ戻されることになる。
【0100】従って、もし戻された信号がQB信号が活
動的であること(すなわち、MAUが以前に書き込まれ
た一の要求の処理を終了していないこと)を表示するな
らば、プロセッサは、バス1を解放し、この要求読み取
り動作を(暫くしてから)反復する。逆に、もし戻され
た信号がQB信号が非活動的であること(すなわち、M
AUが他の要求を処理するのに自由であること)を表示
するならば、プロセッサはバス1を保持し、その後直ち
に、一の要求書き込み動作を続ける。後者の動作の間、
(一のCDBの記憶位置を指定する)要求データは、U
Cインタフェース102からデータ入力バス117を介
して、要求レジスタ116へ無条件的に書き込まれる。
前述の要求レジスタ116及びラッチ106は、図9の
レジスタ/ラッチ97に対応する。但し、後者とは異な
り、前者では、8個の全てのMAUチャネルへ向けられ
る要求が1つの要求レジスタ116を通して順次にファ
ネルされる。
【0101】ここで、ラッチ106をセットするための
前述の諸条件を検知する論理について説明する。チャネ
ル毎に1つずつ設けられたANDゲート118は、個々
のラッチ106のセット入力へ接続された出力と、それ
ぞれの出力を活動化すべき場合を決定する入力とを有す
る。これらのANDゲート118は、ANDゲート11
0の出力から加わる共通入力と、ポート選択線からの個
々の入力と、(各チャネルに関連するCDT中のQCレ
ジスタの出力へ接続された、図示しないデコード論理が
生成する)QC=1のチャネル・カウント表示を担持す
る線119からの個々の禁止入力とを有する。ANDゲ
ート110は、ORゲート107の出力から要求(Re
q)信号を受け取る禁止入力と、書き込みストローブ
(WS)線104からの正の入力とを有する。
【0102】従って、ANDゲート110及び118
と、チャネルのQC値=1を検知するデコード論理(図
示せず)とは、次の諸条件が同時に満足されるとき、す
なわち 一の要求が書き込まれており、 要求(Re
q)信号が非活動的であり、従って全てのラッチ106
がリセットされており、そして アドレスされた要求
ポートに関連するチャネルのQC値が1ではないとき、
一のラッチ106をセットするように動作する。前述の
ように、QC値が1で且つ前記の諸条件が同時に存在す
る場合、図示しない論理は、各CDT中の幾つかのパラ
メータを直ちに変更するように動作する。このような
(図示しない)論理は、データ入力バス117上のデー
タを活動的なポート選択線に関連するCDT中のキュー
・ヘッド・ポインタ(QHP)及びキュー・テイル・ポ
インタ(QTP)空間へ転送するための諸ゲートと、各
CDT中のQC値を(2の値へ)インクレメントさせる
ための諸ゲートとを含んでいる。
【0103】複数のラッチ106が、ORゲート121
から転送される信号によってリセットされるのは、
要求シーケンサ完了(DONE)信号122によって要
求処理の完了を通知する場合、又は プロセッサが実
行する書き込み「リセット」動作(すなわち、UCイン
タフェース102における書き込みストローブ信号10
4及びリセット(RST)信号を活動化するような動
作)をANDゲート123が検知する場合である。
【0104】ANDゲート124の出力が活動的となる
とき、(要求読み取り動作時に、QB信号及び要求レジ
スタ116中のデータをプロセッサへ戻すように)バン
ク111中のANDゲートが活動化/可能化される。A
NDゲート124の入力は、UCインタフェース102
の読み取り信号線103と、ORゲート125の出力と
へ接続されている。ORゲート125は、各ポート選択
線からの入力をそれぞれ有するから、任意のポート選択
線が活動的であるときに、このORゲート125が活動
的となる。従って、プロセッサが一の要求読み取りを信
号して、これに付随する一のポートアドレスで1本のポ
ート選択線を活動化するとき、QB信号及び要求レジス
タ116中のデータがプロセッサへ戻されることにな
る。
【0105】ここで注意すべきは、図11のデータ入力
バス117及びデータ出力バス113の各々には、括弧
内の数字が示すようにそれぞれ32本の線が存在する、
という点である。しかしながら、要求レジスタ116は
データ出力バス117を介して送信される複数のデータ
・ビットのうち上位30ビットのみを受信するに過ぎな
い(最下位の2ビットがドロップされるのは、各CDB
がメモリ中のワード境界で開始するという理由によ
る)。従って、仮に要求レジスタ116が全32ビット
を保持していたとすれば、要求データの最下位2ビット
を担持していたであろうデータ出力バス113中の1本
の線を介して、QB信号の状態を表す戻り信号が送信さ
れることになる。
【0106】このようにして戻された要求データは、
(例えば、任意の要求ビットが誤って転送されたか否か
を、プロセッサが判別できるように)診断に使用するの
に有用である。診断に対する潜在的な適用可能性を持つ
図11中の他の機能手段は、ANDゲートのバンク11
1の上部にあるORゲートのバンク130である。例え
ば、プロセッサからの信号がUCインタフェース102
におけるリセット(RST)線及び読み取り(RD)線
103を同時に活動化する場合、ANDゲート131の
出力は、ORゲートのバンク130を可能化する。この
バンク130は、QB線と、ゼロの値を表す31個の一
定レベル入力とを受け取って、全体として32ビットの
信号をプロセッサへ戻す。もし、UCインタフェース1
02が正常に動作しているならば、これらの32ビット
の信号のうち31ビットはそれぞれゼロになる筈であ
る。
【0107】更に、QB信号に対応する戻り信号が、以
下で説明するラッチ144の状態に対応するものと仮定
する(このラッチ144は、プロセッサがANDゲート
のバンク111を介してQB信号の非使用中状態をポー
ルする時間から要求レジスタ116へ一の要求を書き込
む時間までQB信号を活動的/使用中状態に維持するこ
とにより、他のタスク又は他のプロセッサが同時に要求
を書き込むことを禁止するための一種のロック機構とし
て機能するものである)。従って、このプロセッサは、
ANDゲート140に関連する戻り経路を使用して、Q
B信号を生成する諸回路の動作及びUCインタフェース
102自体の完全性を診断することができる。多重処理
又は多重タスク・プロセッサの環境において本発明の動
作を支持するための他の機能手段は、ANDゲート14
0−142、ORゲート143及びラッチ144によっ
て表される。
【0108】図1のシステム環境において、プロセッサ
2が多重タスク用に構成されているか、又は複数のプロ
セッサがバス1を共有していて、複数のCDBをバス1
へ接続された複数のMAUへデイスパッチする能力を持
つものとする。このシステム環境では、任意のプロセッ
サ又はタスクが、他のプロセッサ又はタスクによって開
始されたCDB要求デイスパッチの完全性に干渉しない
ようにすることが必要である。かくて、第1のプロセッ
サ又はタスクが、一のMAUのQB信号の状態をポール
し且つ「非使用中」の戻り信号を受信する場合、MAU
は、第1のプロセッサがその要求を書き込んでしまうま
で、アクセス不能にされる。論理手段140−144の
目的は、このような活動が衝突なしに行われるのを保証
することである。
【0109】要求(Req)信号及びANDゲート14
2の出力が同時に活動的である場合、ANDゲート14
0は、一の出力を生成してエラーを表示する。もし、書
き込みストローブ信号104及びポート選択(Sel
(i))信号が同時に活動状態にあって、一のタスク又
はプロセッサが一の要求を書き込んでいることを表示す
るなら、ANDゲート142の出力が活動的となる。こ
の段階で、UCインタフェース102から複数のラッチ
106へ至る経路中の諸動作の待ち時間は、選択された
チャネル・ポートに関連するラッチ106がセット状態
へ遷移する前に、一の要求の書き込みを開始する書き込
みストローブ信号104が上昇し且つ下降するようなも
のである。従って、第1のプロセッサが一の要求を書き
込んだ後で、しかもその処理が依然として保留中である
間に、他のタスク又はプロセッサが一の要求を書き込も
うとしている場合にのみ、書き込みストローブ信号10
4、ポート選択信号及び要求信号が同時に活動的となり
得る。かかる状況では、ANDゲート140の出力が活
動的となって、一のエラー(衝突)を表示する。このエ
ラー表示はMAUが検知して、全てのタスク又はプロセ
ッサへ(例えば、MAU割り込み要求を介して)報告す
る。その後、これらのタスク又はプロセッサは、それぞ
れの要求の適正な通信を保証するために、これらのポー
リング及び要求書き込み機能を反復しなければならな
い。
【0110】通常の場合は、ラッチ144及びANDゲ
ート109が制御する動作が存在するために、前述のエ
ラー出力は発生しない筈である。ラッチ144がセット
されている場合、その出力は、ORゲート108を通し
てQB信号を活動化する。ラッチ144は、ANDゲー
ト109の出力が活動的であるときにセットされ、AN
Dゲート141又は142が活動的であるときに、OR
ゲート143の出力を介してリセットされる。しかしな
がら、ANDゲート109の出力が活動的となるのは、
UCインタフェース102における読み取り信号103
及びポート選択信号が活動的であり、しかも要求信号が
非活動状態にあって、どのラッチ106もセットされて
いないことを表示する場合だけである。
【0111】従って、第1のプロセッサ又はタスクが要
求読み取りについて信号するとき、ラッチ144がリセ
ット状態にあり且つ要求信号及びQB信号が非活動的で
あれば、ANDゲート109が可能化されて、ラッチ1
44をセットすることができる筈である。しかしなが
ら、前述の信号待ち時間が存在するために、ラッチ14
4がその状態を変更してQB信号を使用中状態へスイッ
チし得る前に、(要求信号の瞬間的な状態に関連する)
QB信号の瞬間的な非使用中状態が第1のプロセッサ又
はタスクへ戻されてしまい、かくてMAUが一の要求を
書き込むのに利用可能であることを表示することになろ
う。しかしながら、ラッチ144がセットされると、そ
の直後にQB信号は使用中状態にセットされるから、も
し他のプロセッサ又はタスクがQB信号の状態を読み取
り/ポールしようとしていたのであれば、かかる他のプ
ロセッサ又はタスクは、QB信号が使用中状態にあるこ
とを見い出す筈である(かくて、QB信号の非使用中状
態を読み取るまで、ポールを継続して、要求を書き込ま
ないことになる)。従って、QB信号の非使用中状態を
読み取る一のプロセッサ又はタスクが、MAUの要求経
路の排他的制御を司って、要求レジスタ116へ一の要
求を排他的に書き込むことができるのである。
【0112】ここで、論理手段141−143は、新し
い一の要求が書き込まれるとき(すなわち、書き込みス
トローブ信号104及びポート選択信号が同時に存在す
るとき)ラッチ144をリセットするように動作する
が、この若干後に、(この要求がアドレスされるような
ポートを持つチャネルに関連する)ラッチ106がセッ
トされて、要求信号を活動的に駆動する。この結果、Q
B信号の非使用中状態を最初に読み取った時点から読み
取り中のプロセッサ又はタスクが一の要求を書き込む時
点まで、ラッチ144がQB信号を使用中状態に維持
し、その後は、要求シーケンサ(図9の99)がこの要
求を処理するまで、要求信号の活動状態がQB信号を使
用中状態に維持するから、第1のプロセッサ又はタスク
が書き込んだ要求の処理が完了するまで、第2のプロセ
ッサ又はタスクは、QB信号の使用中状態を読み取った
り、一の要求を書き込むことができないのである。
【0113】ORゲート140の目的は、前述のQB信
号の処理及び使用に関連する諸回路が誤動作するのを検
知することにある。かくて、一の要求が書き込まれてい
る間に、すなわち書き込みストローブ信号104及びポ
ート選択信号が同時に存在する場合に、要求信号が活動
的であれば、ANDゲート140及び142が同時に可
能化されて、エラー信号を上昇させる。なぜなら、活動
的な要求信号は、QB信号の非使用中状態を最後に読み
取り且つ以前に要求を書き込んだ一のプロセッサ又はタ
スクに対する以前のコミットメントを表すものであっ
て、正常な動作では、新しい一の要求が書き込まれる時
点で、要求信号は非活動的となるからである。
【0114】要求レジスタ116は、ANDゲート14
6を介してその「クリア」入力145へ加わる一の信号
によってリセットされる。ANDゲート146の出力が
活動的となるのは、ポート選択信号及びANDゲート1
10の出力が同時に活動的である場合、すなわち新しい
一の要求が書き込まれようとしている場合である。
【0115】4.3 要求シーケンサ 図12は、前述のように、任意のチャネルi(i=0−
7)についてMAUに設けられた要求シーケンサの論理
編成を示す。ANDゲート170−172は、制御信号
A−Cの生成をそれぞれ制御する。制御信号Aが生成さ
れるのは、 QCi=0、すなわちチャネルiのキュ
ー・カウントがゼロであり、 信号Qiが活動的、す
なわちチャネルiに関連する図11のラッチ106がセ
ットされており、そして 要求シーケンサが他の要求
を処理する準備を完了している、すなわち「シーケンサ
・レデイ(S.Rdy)」信号が活動的である場合であ
る。制御信号Bが生成されるのは、 QCiが1より
大きく、 信号Qiが活動的であり、そして 要求シ
ーケンサがレデイ状態にある、すなわち「シーケンサ・
レデイ(S.Rdy)」信号が活動的である場合であ
る。制御信号Cが生成されるのは、信号Qiが活動的で
ある時間に、UCインタフェース102における書き込
みストローブ(WS)線104及びポート選択(Sel
(i))線がパルスされる場合である(図11参照)。
【0116】制御信号A及びBは、メモリを対象とする
読み取り及び書き込み転送をそれぞれ呼び出すために、
DMAC論理173へ加えられる。制御信号Aは、最後
に受信された要求(図11の要求レジスタ116の内
容)が与えるメモリの記憶位置から一のCDBを読み取
らせて、これをチャネルiに割り振られたチャネル・デ
イスクリプタ・テーブル(CDTi)へ入力させる。制
御信号Bは、最後に受信された要求を、CDTiが定義
するリンク・リスト・キューのテイル・エンド位置に現
に配置されているチャネル・デイスクリプタ・ブロック
(CDB)の連鎖ポインタ(CP)位置へ書き込ませ
る。DMAC論理173は、制御信号A又はBが要求す
る動作が完了したとき、すなわちこのDMAC論理17
3がバスの制御を獲得し且つ要求されたようにメモリの
読み取り又は書き込みを行ったとき、線178を介して
要求シーケンサへ一のDMAC完了(DMAC Don
e)信号を供給する。
【0117】制御信号Bはゲート・バンク174にも加
えられ、かくて(図11の要求レジスタ116の出力で
ある)QRを、CDTiが定義するリンク・リスト・キ
ューのテイル・ポインタ・レジスタ(QTPi)175
へ転送させる。制御信号Cはゲート・バンク176へ加
えられ、かくてUCデータ入力(すなわち、図11のデ
ータ入力バス117上にある「即時」要求データ信号)
を、QTPi 175及びCDTiが定義するリンク・
リスト・キューのヘッド・ポインタ・レジスタ(QHP
i)177へ転送させる。制御信号A、B及びCを論理
180へ加えることにより、 制御信号Cが活動的で
あるか又は制御信号A若しくはBが活動的であり、そし
て DMAC完了信号が通知されるとき、QCiの値
を1だけインクレメントさせる。QCiがインクレメン
トされる場合、「シーケンサ完了(Seq.Don
e)」信号が活動化されて、図11の線122を介して
複数のラッチ106をリセットする。
【0118】前述の論理が動作するのは、各CDTiが
キュー管理モードについてセットされている、すなわち
キュー・カウント禁止(QCD)ビットがオフである場
合だけである。前述のように、プロセッサは、スレーブ
・モードにセットされたチャネルについては、要求を書
き込まない(もっとも、プロセッサは、予め連鎖された
これらのチャネルへ複数のCDBをデイスパッチするこ
とがある)。かくて、スレーブ・モードの動作がセット
・アップされている場合は、ポート・アドレス及び関連
するポート選択(Sel(i))信号は活動的ではない
から、制御信号A−Cを生成するための条件は存在しな
いことになる。
【0119】4.4 要求シーケンサの動作 図13は、プロセッサ/MAUインタフェースで実行さ
れる要求処理動作の全容を示し、図14は、受信された
要求について図12の論理が実行する特定の動作を説明
するために使用される。図13に示すように、プロセッ
サは、バスをアクセスし(ステップ210)且つ特定M
AUの一のチャネル・ポートへアドレスされた一のI/
O要求読み取りを実行することによって(ステップ21
1)、一の要求を転送する。これに応答して(ステップ
212)、MAUは、(図11の要求レジスタ116の
内容である)QR及び(図11のORゲート108の出
力である)QB信号の状態表示を戻し、もしQB信号が
使用中状態になければ、要求を受信する際にラッチ14
4(図11)をセットする。ラッチ144がセットされ
ると、QB信号は使用中状態となる。
【0120】プロセッサは、戻されたQB信号の状態に
基づいて、その次の動作を条件付ける。もしQB信号が
使用中状態にあれば、(プロセッサが実行中の他のタス
ク及びバスの利用可能性等に依存する遅延の後に)ステ
ップ210−213の動作が反復される。もし、ステッ
プ213でQB信号が非使用中状態にあれば、プロセッ
サは、バスの獲得等を行った後に、MAUの同じチャネ
ル・ポートへアドレスされた一のI/O要求書き込みを
行う(ステップ214)。MAUでは、ステップ217
の動作が行われる。(CDBの記憶位置における)書き
込み動作の間に転送された要求データは、共有された要
求レジスタ116(図11)へ入力され、そして復号さ
れたポート・アドレスがポート選択(Sel(i))信
号を活動化して、アドレスされたポート/チャネルに関
連する一のラッチ106(図11)をセットする。これ
と同時に、以前の要求読み取りの間にセットされたラッ
チ144(ステップ212)がリセットされ、ORゲー
ト108(図11)の関連する入力を非活動化する。し
かしながら、前記ラッチ106がセットされているた
め、(図11のORゲート107の出力である)要求信
号が活動化され、かくてこの要求を要求シーケンサが処
理するまで、すなわちシーケンサ完了信号122が各ラ
ッチ106をリセットするまで、ORゲート108を通
してQB信号を使用中状態に維持する。
【0121】図14は、任意のチャネルiに関する要求
シーケンサの動作を例示する。もし、(図11の関連す
るラッチ106の状態である)関連するチャネル信号Q
i及びポート選択(Sel(i))信号が非活動的であ
れば、如何なる動作も行われない(ステップ231)。
もし、これらの信号の1つが活動的であれば、要求シー
ケンサの次の動作は、関連するチャネルiのキュー・カ
ウント(QCi)がゼロ、1又は1より大きいか否かに
依存する(ステップ232)。
【0122】もし、Qiが活動的で且つQCi=ゼロで
あれば、(図12のANDゲート170の出力である)
制御信号Aが活動化され、そしてこの要求が指定するメ
モリの記憶位置にあるCDBがCDTiへ読み取られる
(ステップ233)。もし、ポート選択信号及び書き込
みストローブ(WS)信号が活動的で、しかもQCi=
1であれば、(図12のANDゲート171の出力であ
る)制御信号Bが活動化され、共有された要求レジスタ
(図11の116)からCDTi中のQHPi及びQT
Piレジスタへ要求データをローカルに転送するための
動作が実行され(ステップ234)、これにより関連す
るCDBを各リンク・リスト・キューのヘッド・エンド
及びテイル・エンドの両方に配置する。なぜなら、この
状況では、このCDBがこのリンク・リスト・キューに
おけるただ1つのCDBであるからである。
【0123】もし、Qiが活動的であり且つQCiが1
より大きければ、(図11のANDゲート172の出力
である)制御信号Cが活動化され、ステップ235の動
作を実行させ、これによりこの要求データを各リンク・
リスト・キューのテイル・エンド位置に現に置かれてい
るCDBの連鎖ポインタ(CP)の記憶位置へ書き込む
ためのメモリ書き込み動作を呼び出す。ステップ233
−235の動作を実行した後、各キュー・カウント(Q
Ci)がインクレメントされ(ステップ236)、そし
て要求シーケンサは(各ラッチ106をリセットした
り、その他の動作のために)そのシーケンサ完了信号を
発行する。
【0124】
【発明の効果】以上のように、本発明によれば、プロセ
ッサとチャネル・アダプタとの間の調整に関する必要性
を排除するとともに、各チャネルへ各CDBをデイスパ
ッチする場合に当該チャネルで行われている活動を阻害
することなく、プロセッサから連続して活動状態にある
チャネル・アダプタのチャネルへ複数のCDBをデイス
パッチすることができる。
【図面の簡単な説明】
【図1】本発明を実施し得る、従来技術のシステム環境
を概略的に示す図である。
【図2】図1のシステム環境における、連鎖されたチャ
ネル・デイスクリプタ・ブロック(CDB)及びデータ
の通常の処理方法を概略的に示す図である。
【図3】チャネル・アダプタが直接的に管理できるよう
に配列された、チャネル・デイスクリプタ・テーブル
(CDT)及びチャネル・デイスクリプタ・ブロック
(CDB)のリンク・リスト・キューを示す図である。
【図4】チャネル・アダプタの複数のレジスタ中に設け
られる、チャネル・デイスクリプタ・テーブル(CD
T)の形式及び内容を示す図である。
【図5】チャネル・デイスクリプタ・ブロック(CD
B)の形式及び内容を示す図である。
【図6】プロセッサがチャネル・アダプタへデイスパッ
チする複数のチャネル・デイスクリプタ・ブロック(C
DB)に関し、プロセッサ及びチャネル・アダプタが実
行するエンキュー動作の全容を示す図である。
【図7】チャネル・アダプタへ以前にデイスパッチされ
たチャネル・デイスクリプタ・ブロック(CDB)が定
義するデータ転送プロセスの実行をチャネル・アダプタ
にスキップさせるように、プロセッサ及びチャネル・ア
ダプタが実行するデキュー動作の全容を示す図である。
【図8】図4に示すチャネル・デイスクリプタ・テーブ
ル(CDT)中の「キュー・カウント禁止(QCD)」
ビットが、チャネル・アダプタにおけるチャネル・デイ
スクリプタ・ブロック(CDB)の連鎖動作に与える影
響を示す図である。
【図9】CDBキュー管理動作をサポートするための、
チャネル・アダプタの高レベルの論理編成を示す図であ
る。
【図10】図11で使用する、ANDゲート及びORゲ
ートの論理記号を示す図である。
【図11】チャネル・アダプタのうち、発信元プロセッ
サからデイスパッチされた新しいチャネル・デイスクリ
プタ・ブロック(CDB)処理用の要求を受信する部分
の、論理編成を一層詳細に示す図である。
【図12】受信されたチャネル・デイスクリプタ・ブロ
ック(CDB)処理用の要求の処理に関し、チャネル・
アダプタの動作を制御する、要求シーケンサの論理編成
を示す図である。
【図13】チャネル・デイスクリプタ・ブロック(CD
B)処理用の要求をチャネル・アダプタへデイスパッチ
するために発信元プロセッサが実行する特定の動作と、
各要求を受信するためにチャネル・アダプタが実行する
動作を示す図である。
【図14】図12の要求シーケンサが指示する要求処理
動作を示す図である。
【符号の説明】
1・・・・バス 2・・・・プロセッサ 3・・・・メモリ 4・・・・複数チャネル・アダプタ(MAU) 4.2・・バス制御/ダイレクト・メモリ・アクセス制
御(BC/DMAC) 4.3・・ユニット制御(UC) 4.4・・データ転送チャネル 4.5・・外部チャネル 7・・・・チャネル・データ・ブロック(CDB) 8・・・・チャネル・データ記憶ブロック(CDSB) 30・・・チャネル・デイスクリプタ・テーブル(CD
T)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ミカエル・ステュアート・ギャトソン アメリカ合衆国フロリダ州、ボカ・ラト ン、タウン・コロニー・ロード 6129番 地、ナンバー616 (72)発明者 ギャリー・ブライアン・ホッチ アメリカ合衆国フロリダ州、コラル・スプ リングス、ノース・ウエスト・フィフティ ーンス・ストリート 11062番地 (72)発明者 エリック・ヘンリー・ステルザー アメリカ合衆国フロリダ州、ボカ・ラト ン、アイランダー・ドライブ 10380番地 (72)発明者 ドナルド・グレン・ウィリアムズ アメリカ合衆国フロリダ州、デルレイ・ビ ーチ・レイクビュー・ブルーバード 3101 番地

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】以下の各構成要素を備えて成る、データ処
    理システム。 (1)ランダム・アクセス・メモリ。 (2)複数のチャネル・デイスクリプタを前記メモリ中
    に非連続的に格納するためのプロセッサ。前記チャネル
    ・デイスクリプタの各々は、前記メモリと当該データ処
    理システムの外部にある一のデータ通信チャネルとの間
    で実行すべき各データ転送プロセスを定義するものであ
    って、前記データ通信チャネルにおけるデータ転送活動
    の即時ステータスとは関係なく且つ他の任意の前記チャ
    ネル・デイスクリプタに対する明示的なリンケージなし
    に、前記メモリ中に格納される。 (3)前記メモリ、前記プロセッサ及び前記データ通信
    チャネルへ接続され、前記チャネル・デイスクリプタが
    それぞれ定義するデータ転送プロセスの実行を指示する
    とともに、前記プロセッサに対しオフラインで前記デー
    タ転送プロセスのスケジューリングを管理するためのチ
    ャネル・アダプタ。 (4)前記チャネル・アダプタに設けられ、前記チャネ
    ル・デイスクリプタが格納されている前記メモリ中の記
    憶位置をそれぞれ指定する、複数の要求が前記プロセッ
    サから順次に供給される場合、当該複数の要求に関連す
    る前記チャネル・デイスクリプタがそれぞれ定義するデ
    ータ転送プロセスの処理を当該複数の要求の供給順にス
    ケジュールするためのスケジューリング手段。
  2. 【請求項2】前記スケジューリング手段が、 使用中状態及び非使用中状態へセット可能であり、前記
    使用中状態へセットされた場合は、前記スケジューリン
    グ手段が以前に供給された前記要求のスケジューリング
    を完了していないことを表示し、前記非使用中状態へセ
    ットされた場合は、前記スケジューリング手段が他の前
    記要求を処理するのに利用可能であることを表示するた
    めのラッチ手段と、 一の前記要求を一時的に格納するための要求レジスタ
    と、 前記プロセッサが前記各要求を供給する前に当該プロセ
    ッサからの少なくとも1つのI/O読み取り動作に応答
    して、以前に供給された一の要求の処理ステータスを表
    示するための手段と、 前記各要求を保持する一のI/O書き込み動作に応答し
    て、前記要求レジスタ中の各要求を受け取り且つ前記ラ
    ッチ手段を前記使用中状態へセットするための手段と、 前記ラッチ手段の前記使用中状態によって条件づけら
    れ、前記レジスタに現に格納されている一の要求が保持
    するチャネル・デイスクリプタの位置決め情報を処理し
    て、当該位置決め情報が指定するチャネル・デイスクリ
    プタの記憶位置と以前に供給された少なくとも1つの前
    記要求が指定する一のチャネル・デイスクリプタとの間
    のリンクを確立するための手段と、 前記リンクを確立するプロセスの完了に応答して、前記
    ラッチ手段を前記非使用中状態へリセットするための手
    段と、 を備えて成る、請求項1記載のデータ処理システム。
  3. 【請求項3】前記スケジューリング手段が、 複数のチャネル・デイスクリプタの一のキューを定義す
    る一のチャネル・デイスクリプタ・テーブルを格納する
    ための、前記データ通信チャネル専用のレジスタ手段を
    備え、 前記キューの作成及び管理は、前記チャネル・アダプタ
    が指示するデータ転送プロセスと同時に且つ前記プロセ
    ッサに対しオフラインで、前記スケジューリング手段に
    よって行われ、 前記チャネル・デイスクリプタ・テーブル中の情報は、
    前記データ通信チャネルに関するデータ転送プロセスを
    現に待機しているチャネル・デイスクリプタの数と、デ
    ータ転送プロセスのために次に処理すべき前記待機中の
    チャネル・デイスクリプタが格納されている前記メモリ
    中の記憶位置と、データ転送プロセスのために最後に処
    理すべきチャネル・デイスクリプタが格納されている前
    記メモリ中の記憶位置とを定義し、 前記ラッチ手段の使用中状態によって条件づけられる前
    記手段が、 前記チャネル・デイスクリプタ・テーブルに一時的に格
    納されている情報に応答して、前記要求レジスタの一時
    的な内容がその記憶位置を指定するチャネル・デイスク
    リプタを検索し且つ当該チャネル・デイスクリプタが定
    義するデータ転送を即時に処理するか、又は当該チャネ
    ル・デイスクリプタがデータ転送のために最後に処理す
    べきものとなるように当該チャネル・デイスクリプタの
    記憶位置を前記キューの所定の位置へ導入するための手
    段を備えて成る、 請求項2記載のデータ処理システム。
  4. 【請求項4】前記チャネル・アダプタが、一の複数チャ
    ネル・アダプタ・ユニットであり、当該複数チャネル・
    アダプタ・ユニットは、前記チャネル・デイスクリプタ
    がそれぞれ定義するデータ転送プロセスを、当該複数チ
    ャネル・アダプタ・ユニットへリンクされた複数の個別
    的な外部チャネルについて指示し、 前記チャネル・デイスクリプタ・テーブルを格納する前
    記レジスタ手段が、前記複数チャネルの各々に専用の個
    別的なチャネル・デイスクリプタ・テーブル格納レジス
    タを含み、 前記要求レジスタが、前記複数チャネルへ向けられる要
    求を一度に1つずつ保持するために使用されるようにし
    た、 請求項3記載のデータ処理システム。
  5. 【請求項5】前記ラッチ手段が、前記複数チャネルにそ
    れぞれ排他的に関連する複数の個別的なラッチ手段から
    成り、 前記複数チャネル・アダプタ・ユニットが、前記複数の
    個別的なラッチ手段にそれぞれ関連する複数の要求アド
    レス・ポートから成り、 前記複数の要求アドレス・ポートが、前記複数チャネル
    の各々に関し前記プロセッサから前記複数チャネル・ア
    ダプタ・ユニットへ供給される一の前記要求I/O書き
    込み動作と同時に個々にアドレス可能であり、 前記複数チャネル・アダプタ・ユニットが、前記各要求
    の供給に応答して当該要求と同時に前記プロセッサがア
    ドレスするポートに関連する前記ラッチ手段を使用中状
    態へセットするための手段を含むようにした、 請求項4記載のデータ処理システム。
  6. 【請求項6】前記プロセッサから前記チャネル・アダプ
    タへ一の要求を供給して、任意の1つの前記チャネル・
    デイスクリプタが格納されている記憶位置を指定した
    後、前記チャネル・アダプタが他の任意の要求について
    スケジュールし且つ実行するデータ転送プロセスを阻害
    することなく、当該任意の1つのチャネル・デイスクリ
    プタを前記プロセッサによって修正し得るようにした、 請求項1記載のデータ処理システム。
  7. 【請求項7】前記プロセッサが、前記任意の1つのチャ
    ネル・デイスクリプタへ一のスキップ・コードを書き込
    むことによって当該チャネル・デイスクリプタを修正可
    能であり、 更に、前記チャネル・アダプタが、 データ転送プロセスのために当該チャネル・アダプタが
    検索した任意のチャネル・デイスクリプタ中のスキップ
    ・コードを検知するための手段と、 前記スキップ・コードの検知に応答して、当該スキップ
    ・コードに関連するチャネル・デイスクリプタが定義す
    るデータ転送プロセスをスキップし且つ当該チャネル・
    アダプタが処理すべき他のチャネル・デイスクリプタを
    有する場合は、次のチャネル・デイスクリプタへ直ちに
    連鎖するための手段とを備えて成る、 請求項6記載のデータ処理システム。
  8. 【請求項8】前記プロセッサ、前記メモリ及び前記チャ
    ネル・アダプタへ接続された一のバスを含み、当該バス
    は、前記要求が前記チャネル・アダプタへ供給される間
    は前記プロセッサによって制御可能であり、前記チャネ
    ル・アダプタが前記データ転送プロセスをスケジュール
    し且つその実行を指示している間は当該チャネル・アダ
    プタによって制御可能である、請求項2記載のデータ処
    理システム。
  9. 【請求項9】前記バスが、前記チャネル・アダプタ及び
    少なくとも1つの他のチャネル・アダプタへ接続可能で
    あり、各チャネル・アダプタがそれぞれのデータ転送プ
    ロセスをスケジュールし且つその実行を指示している間
    は、該当するチャネル・アダプタによって前記バスが制
    御可能である、請求項8記載のデータ処理システム。
  10. 【請求項10】前記チャネル・アダプタが、前記バスの
    制御を獲得し且つデータ転送プロセスをスケジュールし
    ている間及び当該プロセスを実行している間に前記バス
    を制御するためのバス制御論理と、当該バス制御論理と
    協働してデータ転送プロセスをスケジュールしている間
    及び当該プロセスを実行している間に前記メモリに対す
    るアクセスを直接的に制御するためのダイレクト・メモ
    リ・アクセス制御論理とを含む、請求項8記載のデータ
    処理システム。
  11. 【請求項11】前記スケジューリング手段が、前記ダイ
    レクト・メモリ・アクセス制御論理へ統合化されるよう
    にした、請求項10記載のデータ処理システム。
  12. 【請求項12】一のプロセッサへ接続された一のメモリ
    に関する直接アクセスを一のチャネル・アダプタが制御
    し、前記メモリと前記チャネル・アダプタが制御する一
    のチャネルとの間のデータ転送を、前記プロセッサが前
    記メモリ中に準備した複数のデイスクリプタに保持され
    る情報に従って、前記チャネル・アダプタが指示するよ
    うにしたデータ処理システムにおいて、次の各構成要素
    を備えて成るチャネル・アダプタ。 (1)前記チャネルに関し順次に検索及び処理すべき複
    数のデイスクリプタが格納されている前記メモリ中の記
    憶位置をそれぞれ指定する複数の要求を、前記プロセッ
    サから順次に受信するための要求受信手段。前記各要求
    が指定する前記各デイスクリプタは、他の任意のデイス
    クリプタに対する明示的なリンケージを持っておらず、
    また前記各デイスクリプタが格納されている記憶位置は
    他の任意のデイスクリプタが格納されている記憶位置に
    対し予定の関係を持たないようにされている。 (2)前記順次に受信された複数の要求に応答して、当
    該複数の要求がそれぞれ指定する複数のデイスクリプタ
    間の明示的なリンキング・アソシエーションを確立する
    ことにより、以前に供給された一の要求に関連する一の
    デイスクリプタに当該チャネル・アダプタが導入した情
    報から、各デイスクリプタが格納されている記憶位置を
    決定するためのスケジューリング手段。 (3)前記スケジューリング手段へ結合され、前記チャ
    ネルに関するデータ転送プロセスを前記複数の要求の受
    信順序と同じ順序で実行するため、前記複数のデイスク
    リプタを当該順序で検索及び処理することにより、あた
    かも前記プロセッサが前記複数のデイスクリプタを明示
    的なアドレス・リンキング及びチェーニング・アソシエ
    ーションを以て最初に格納し且つ単一のバッチ動作で当
    該チャネル・アダプタへ同時にデイスパッチしたかのよ
    うにして、前記複数のデイスクリプタが定義するデータ
    転送プロセスを処理するための検索処理手段。
  13. 【請求項13】前記要求受信手段、スケジューリング手
    段及び検索処理手段の全てを同時的に動作させることに
    より、前記チャネルに関しデータが活動的に転送されて
    いる間に、前記複数の要求を受信し且つ前記明示的なリ
    ンキング・アソシエーションを確立し得るようにした、
    請求項12記載のチャネル・アダプタ。
  14. 【請求項14】前記スケジューリング手段が、処理を待
    機している少なくとも最初のデイスクリプタが格納され
    ている記憶位置及び最後のデイスクリプタが格納されて
    いる記憶位置をそれぞれ定義する一のリンク・リスト・
    キューを作成及び維持するための手段から成る、請求項
    13記載のチャネル・アダプタ。
  15. 【請求項15】任意の前記要求に関連する一のデイスク
    リプタが、当該要求を供給した後に前記プロセッサによ
    って修正可能であり、前記検索処理手段が、他の任意の
    デイスクリプタによって定義されたデータ転送を阻害す
    ることなく、前記修正されたデイスクリプタを処理する
    ように構成されている、請求項14記載のチャネル・ア
    ダプタ。
  16. 【請求項16】更に、使用中状態及び非使用中状態へセ
    ット可能であり、前記使用中状態へセットされた場合
    は、前記スケジューリング手段が以前に供給された前記
    要求のスケジューリングを完了していないことを表示
    し、前記非使用中状態へセットされた場合は、前記スケ
    ジューリング手段が他の前記要求を処理するのに利用可
    能であることを表示するためのラッチ手段と、 前記供給された各要求を一時的に格納するための要求レ
    ジスタと、 前記プロセッサが前記各要求を供給する前に当該プロセ
    ッサから与えられる少なくとも1つのI/O読み取り動
    作に応答して、前記ラッチ手段の状態表示を前記プロセ
    ッサへ戻すための手段と、 前記各要求を保持する一のI/O書き込み動作に応答し
    て、前記要求レジスタ中の各要求を受け取り且つ前記ラ
    ッチ手段を前記使用中状態へセットするための手段と、 前記ラッチ手段の前記使用中状態によって条件づけら
    れ、前記レジスタに現に格納されている一の要求が保持
    するチャネル・デイスクリプタの位置決め用情報を処理
    して、当該位置決め用情報が指定するチャネル・デイス
    クリプタが格納されている記憶位置と以前に供給された
    少なくとも1つの前記要求が指定する一のチャネル・デ
    イスクリプタとの間のリンクを確立するための手段と、 前記リンクを確立するプロセスの完了に応答して、前記
    ラッチ手段を前記非使用中状態へリセットするための手
    段と、 を備えて成る、請求項12記載のチャネル・アダプタ。
  17. 【請求項17】前記スケジューリング手段が、 複数のデイスクリプタの一のキューを定義する一のチャ
    ネル・デイスクリプタ・テーブルを格納するための、前
    記チャネル専用のレジスタ手段を備え、 前記キューの作成及び管理は、前記チャネル・アダプタ
    が指示するデータ転送プロセスと同時に且つ前記プロセ
    ッサに対しオフラインで、前記スケジューリング手段に
    よって行われ、 前記チャネル・デイスクリプタ・テーブル中の情報は、
    前記チャネルに関するデータ転送プロセスを現に待機し
    ているデイスクリプタの数と、データ転送プロセスのた
    めに次に処理すべき前記待機中のデイスクリプタが格納
    されている前記メモリ中の記憶位置と、データ転送プロ
    セスのために最後に処理すべきデイスクリプタが格納さ
    れている前記メモリ中の記憶位置とを定義し、 前記ラッチ手段の使用中状態によって条件づけられる前
    記手段が、 前記チャネル・デイスクリプタ・テーブルに保持された
    情報に応答して、前記要求レジスタがその記憶位置を指
    定するデイスクリプタの検索を開始し且つ当該デイスク
    リプタを即時に処理するか、又は当該デイスクリプタが
    データ転送のために最後に処理すべきものとなるように
    前記要求レジスタが指定する前記記憶位置を前記キュー
    のテイル・エンド位置へ導入するための手段を備えて成
    る、 請求項16記載のチャネル・アダプタ。
  18. 【請求項18】前記チャネル・アダプタが、一の複数チ
    ャネル・アダプタ・ユニットであり、 当該複数チャネル・アダプタ・ユニットは、当該複数チ
    ャネル・アダプタ・ユニットへリンクされた複数の個別
    的な外部チャネルに関するデータ転送を指示し、 前記レジスタ手段が、前記複数チャネルの各々に専用の
    個別的なチャネル・デイスクリプタ・テーブル格納レジ
    スタを含み、 前記要求レジスタが、前記複数チャネルへ向けられる要
    求を一度に1つずつ保持するために使用されるようにし
    た、 請求項17記載のチャネル・アダプタ。
  19. 【請求項19】前記ラッチ手段が、前記複数チャネルに
    それぞれ排他的に関連する複数の個別的なラッチ手段か
    ら成り、 前記複数チャネル・アダプタ・ユニットが、前記複数チ
    ャネル及び前記複数の個別的なラッチ手段にそれぞれ関
    連する複数の要求アドレス・ポートから成り、 前記プロセッサが、前記各要求I/O書き込み動作の供
    給と同時に、前記複数の要求アドレス・ポートのうち選
    択された1つをアドレスすることにより、前記複数チャ
    ネルの1つを暗示的に指定し、 前記複数チャネル・アダプタ・ユニットが、一のI/O
    書き込み動作中に任意の前記要求アドレス・ポートのア
    ドレス指定に応答して、当該アドレス指定された要求ア
    ドレス・ポートに関連する前記ラッチ手段を使用中状態
    へセットすることにより、前記I/O書き込み動作に保
    持される要求を前記複数チャネルのうち関連するチャネ
    ルと関連付けるための手段を含む、 請求項18記載のチャネル・アダプタ。
  20. 【請求項20】前記各要求を供給して一の前記デイスク
    リプタが格納されている記憶位置を指定した後、前記プ
    ロセッサが修正した当該デイスクリプタを、他の任意の
    デイスクリプタについてスケジュールされ且つ実行され
    るデータ転送プロセスを阻害することなく、処理し得る
    ようにした、請求項12記載のチャネル・アダプタ。
  21. 【請求項21】前記デイスクリプタが、スキップ機能を
    定義するように前記プロセッサによって修正可能な一の
    コード・フィールドを保持し、 前記チャネル・アダプタが、 データ転送プロセスのために検索され且つ前記スキップ
    機能を定義する前記コードを保持する一のデイスクリプ
    タに応答して、当該デイスクリプタに関するデータ転送
    プロセスをスキップするとともに、他のデイスクリプタ
    が処理を待機している場合は、次のデイスクリプタへ直
    ちに連鎖するための手段を含む、 請求項20記載のチャネル・アダプタ。
  22. 【請求項22】前記データ処理システムが、前記プロセ
    ッサ、前記メモリ及び前記チャネル・アダプタを相互接
    続する一のバスを含み、前記要求が前記チャネル・アダ
    プタへ供給される間は、当該バスが前記プロセッサによ
    って制御可能であり、 前記チャネル・アダプタが、 前記データ転送プロセスのスケジュール及び当該データ
    転送プロセスの実行のために前記メモリとの通信を必要
    とするとき、前記プロセッサとは独立に前記バスを制御
    するためのバス制御手段を備えて成る、 請求項12記載のチャネル・アダプタ。
  23. 【請求項23】前記バスが、少なくとも1つの他のチャ
    ネル・アダプタへ接続可能であり、当該他のチャネル・
    アダプタがデータ転送プロセスの実行を指示している間
    は、当該他のチャネル・アダプタが前記バスを制御する
    ようにした、請求項22記載のチャネル・アダプタ。
  24. 【請求項24】前記バス制御手段と協働して、データ転
    送プロセスをスケジュールしている間及び当該プロセス
    を実行している間に、前記メモリに対するアクセスを直
    接的に制御するためのダイレクト・メモリ・アクセス制
    御手段を含む、請求項22記載のチャネル・アダプタ。
  25. 【請求項25】前記スケジューリング手段、前記バス制
    御手段及び前記ダイレクト・メモリ・アクセス制御手段
    を単一の論理的エンテイテイへ統合化するようにした、
    請求項24記載のチャネル・アダプタ。
JP6032647A 1993-03-02 1994-03-02 デ―タ処理システム及びチャネル・アダプタ Expired - Lifetime JP2520576B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US024981 1993-03-02
US08/024,981 US5448702A (en) 1993-03-02 1993-03-02 Adapters with descriptor queue management capability

Publications (2)

Publication Number Publication Date
JPH06324981A true JPH06324981A (ja) 1994-11-25
JP2520576B2 JP2520576B2 (ja) 1996-07-31

Family

ID=21823389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6032647A Expired - Lifetime JP2520576B2 (ja) 1993-03-02 1994-03-02 デ―タ処理システム及びチャネル・アダプタ

Country Status (2)

Country Link
US (1) US5448702A (ja)
JP (1) JP2520576B2 (ja)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734924A (en) * 1993-08-27 1998-03-31 Advanced System Products, Inc. System for host accessing local memory by asserting address signal corresponding to host adapter and data signal indicating address of location in local memory
JP3549003B2 (ja) * 1993-08-31 2004-08-04 株式会社日立製作所 情報送出装置および情報送出/受信システム
US5687316A (en) * 1994-07-29 1997-11-11 International Business Machines Corporation Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data
US5619646A (en) * 1994-09-27 1997-04-08 International Business Machines Corporation Method and system for dynamically appending a data block to a variable length transmit list while transmitting another data block over a serial bus
US5828903A (en) * 1994-09-30 1998-10-27 Intel Corporation System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
US5634099A (en) * 1994-12-09 1997-05-27 International Business Machines Corporation Direct memory access unit for transferring data between processor memories in multiprocessing systems
US5644784A (en) * 1995-03-03 1997-07-01 Intel Corporation Linear list based DMA control structure
US5701434A (en) * 1995-03-16 1997-12-23 Hitachi, Ltd. Interleave memory controller with a common access queue
US5765200A (en) * 1995-06-07 1998-06-09 International Business Machines Corporation Logical positioning within a storage device by a storage controller
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5832492A (en) 1995-09-05 1998-11-03 Compaq Computer Corporation Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus
US5713044A (en) * 1995-12-19 1998-01-27 Intel Corporation System for creating new group of chain descriptors by updating link value of last descriptor of group and rereading link value of the updating descriptor
US5870627A (en) * 1995-12-20 1999-02-09 Cirrus Logic, Inc. System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue
US5745781A (en) * 1995-12-26 1998-04-28 International Business Machines Corporation Memoryless communications adapter including queueing and matching primitives for scalable distributed parallel computer systems
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US6098121A (en) * 1996-12-03 2000-08-01 Matsushita Electric Industrial Co., Ltd. Data transfer apparatus with improved throughput due to reduced processing overhead in interrupt process
US6493347B2 (en) 1996-12-16 2002-12-10 Juniper Networks, Inc. Memory organization in a switching device
US5909440A (en) * 1996-12-16 1999-06-01 Juniper Networks High speed variable length best match look-up in a switching device
US5905725A (en) * 1996-12-16 1999-05-18 Juniper Networks High speed switching device
US6138192A (en) * 1996-12-31 2000-10-24 Compaq Computer Corporation Delivering a request to write or read data before delivering an earlier write request
US6154793A (en) * 1997-04-30 2000-11-28 Zilog, Inc. DMA with dynamically assigned channels, flexible block boundary notification and recording, type code checking and updating, commands, and status reporting
US6049842A (en) * 1997-05-01 2000-04-11 International Business Machines Corporation Efficient data transfer mechanism for input/output devices
US5963499A (en) * 1998-02-05 1999-10-05 Cypress Semiconductor Corp. Cascadable multi-channel network memory with dynamic allocation
US6058438A (en) * 1998-02-06 2000-05-02 Hewlett-Packard Company Method and apparatus for performing high speed data transfers between a host memory and a geometry accelerator of a graphics machine
US7100020B1 (en) * 1998-05-08 2006-08-29 Freescale Semiconductor, Inc. Digital communications processor
US6298396B1 (en) 1998-06-01 2001-10-02 Advanced Micro Devices, Inc. System for loading a current buffer desciptor register with a value different from current value to cause a previously read buffer descriptor to be read again
US6182165B1 (en) 1998-06-01 2001-01-30 Advanced Micro Devices, Inc. Staggered polling of buffer descriptors in a buffer descriptor ring direct memory access system
US6212593B1 (en) 1998-06-01 2001-04-03 Advanced Micro Devices, Inc. Method and apparatus for generating interrupts on a buffer by buffer basis in buffer descriptor ring direct memory access system
US6388989B1 (en) * 1998-06-29 2002-05-14 Cisco Technology Method and apparatus for preventing memory overrun in a data transmission system
US6684237B1 (en) * 1998-10-14 2004-01-27 Cisco Technology, Inc. Network interface throttling mechanisms and methods
US6434649B1 (en) 1998-10-14 2002-08-13 Hitachi, Ltd. Data streamer
US6202107B1 (en) 1998-11-19 2001-03-13 Sun Microsystems, Inc. Host controller interface descriptor fetching unit
US6363438B1 (en) * 1999-02-03 2002-03-26 Sun Microsystems, Inc. Method of controlling DMA command buffer for holding sequence of DMA commands with head and tail pointers
US6332171B1 (en) * 1999-02-19 2001-12-18 International Business Machines Corporation Self-contained queues with associated control information for receipt and transfer of incoming and outgoing data using a queued direct input-output device
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
US6564271B2 (en) 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US6668317B1 (en) 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6427196B1 (en) 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
AU7098600A (en) 1999-09-01 2001-03-26 Intel Corporation Instruction for multithreaded parallel processor
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
JP2001086437A (ja) * 1999-09-14 2001-03-30 Sony Corp 情報処理装置および情報処理方法
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6307789B1 (en) 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US7620702B1 (en) 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6560667B1 (en) * 1999-12-28 2003-05-06 Intel Corporation Handling contiguous memory references in a multi-queue system
US6631430B1 (en) 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6625654B1 (en) 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6976095B1 (en) 1999-12-30 2005-12-13 Intel Corporation Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
US6584522B1 (en) 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US6499077B1 (en) 1999-12-30 2002-12-24 Intel Corporation Bus interface unit for reflecting state information for a transfer request to a requesting device
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US20020053017A1 (en) * 2000-09-01 2002-05-02 Adiletta Matthew J. Register instructions for a multithreaded processor
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
CN1307570C (zh) 2001-01-31 2007-03-28 国际商业机器公司 控制数据处理***间经由存储器的数据流的方法和装置
US6532185B2 (en) * 2001-02-23 2003-03-11 International Business Machines Corporation Distribution of bank accesses in a multiple bank DRAM used as a data buffer
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7225281B2 (en) 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7126952B2 (en) 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US7370366B2 (en) * 2001-11-16 2008-05-06 International Business Machines Corporation Data management system and method
US7158964B2 (en) * 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US6754735B2 (en) * 2001-12-21 2004-06-22 Agere Systems Inc. Single descriptor scatter gather data transfer to or from a host processor
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) * 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US6934951B2 (en) 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US7181594B2 (en) * 2002-01-25 2007-02-20 Intel Corporation Context pipelines
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7149226B2 (en) * 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US7437724B2 (en) * 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
EP1509261B1 (en) 2002-05-24 2007-12-12 Baxter International Inc. Dialysis system comprising a display device, a web browser and a web server
JP4468801B2 (ja) 2002-05-24 2010-05-26 バクスター・インターナショナル・インコーポレイテッド 自動化された透析装置のためのハードウエアシステム、方法及び装置
US7471688B2 (en) 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7238164B2 (en) 2002-07-19 2007-07-03 Baxter International Inc. Systems, methods and apparatuses for pumping cassette-based therapies
JP4460448B2 (ja) 2002-07-19 2010-05-12 バクスター・インターナショナル・インコーポレイテッド 腹膜透析のためのシステムおよび方法
US7154886B2 (en) 2002-07-22 2006-12-26 Qlogic Corporation Method and system for primary blade selection in a multi-module fiber channel switch
US7337275B2 (en) 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7433307B2 (en) 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US7319669B1 (en) 2002-11-22 2008-01-15 Qlogic, Corporation Method and system for controlling packet flow in networks
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US6985970B2 (en) * 2003-04-25 2006-01-10 International Business Machines Corporation Data transfer with implicit notification
US20100145752A1 (en) * 2004-05-11 2010-06-10 Davis James E Adaptable workflow and communications system
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7428245B1 (en) * 2003-08-01 2008-09-23 Staccato Communications, Inc. Split medium access and control layer communications system
US7234101B1 (en) 2003-08-27 2007-06-19 Qlogic, Corporation Method and system for providing data integrity in storage systems
US6993598B2 (en) * 2003-10-09 2006-01-31 International Business Machines Corporation Method and apparatus for efficient sharing of DMA resource
US7219263B1 (en) 2003-10-29 2007-05-15 Qlogic, Corporation Method and system for minimizing memory corruption
US8029454B2 (en) 2003-11-05 2011-10-04 Baxter International Inc. High convection home hemodialysis/hemofiltration and sorbent system
US20050198361A1 (en) * 2003-12-29 2005-09-08 Chandra Prashant R. Method and apparatus for meeting a given content throughput using at least one memory channel
US7213099B2 (en) 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
US7136943B2 (en) * 2004-03-18 2006-11-14 International Business Machines Corporation Method and apparatus for managing context switches using a context switch history table
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
US7941799B2 (en) 2004-05-27 2011-05-10 International Business Machines Corporation Interpreting I/O operation requests from pageable guests without host intervention
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
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
US7231480B2 (en) * 2005-04-06 2007-06-12 Qlogic, Corporation Method and system for receiver detection in PCI-Express devices
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7676192B1 (en) * 2005-12-21 2010-03-09 Radio Shack, Corp. Radio scanner programmed from frequency database and method
US7461195B1 (en) 2006-03-17 2008-12-02 Qlogic, Corporation Method and system for dynamically adjusting data transfer rates in PCI-express devices
US9032100B2 (en) * 2008-04-03 2015-05-12 International Business Machines Corporation I/O hub-supported atomic I/O operations
US8224885B1 (en) 2009-01-26 2012-07-17 Teradici Corporation Method and system for remote computing session management
JP5593682B2 (ja) * 2009-11-17 2014-09-24 セイコーエプソン株式会社 プリンター、プリンターの制御方法、及び、プログラム
US8458377B2 (en) * 2010-03-05 2013-06-04 Lsi Corporation DMA engine capable of concurrent data manipulation
US8688880B2 (en) * 2010-06-23 2014-04-01 International Business Machines Corporation Centralized serialization of requests in a multiprocessor system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3577190A (en) * 1968-06-26 1971-05-04 Ibm Apparatus in a digital computer for allowing the skipping of predetermined instructions in a sequence of instructions, in response to the occurrence of certain conditions
US4437157A (en) * 1978-07-20 1984-03-13 Sperry Corporation Dynamic subchannel allocation
US4636946A (en) * 1982-02-24 1987-01-13 International Business Machines Corporation Method and apparatus for grouping asynchronous recording operations
US4638425A (en) * 1982-09-29 1987-01-20 International Business Machines Corporation Peripheral data storage having access controls with error recovery
US4546430A (en) * 1983-07-13 1985-10-08 Sperry Corporation Control unit busy queuing
US5200864A (en) * 1989-06-28 1993-04-06 International Business Machines Corporation Combining small records into a single record block for recording on a record media

Also Published As

Publication number Publication date
JP2520576B2 (ja) 1996-07-31
US5448702A (en) 1995-09-05

Similar Documents

Publication Publication Date Title
JP2520576B2 (ja) デ―タ処理システム及びチャネル・アダプタ
US6061687A (en) Linked lists of transfer descriptors scheduled at intervals
US5530897A (en) System for dynamic association of a variable number of device addresses with input/output devices to allow increased concurrent requests for access to the input/output devices
US4912632A (en) Memory control subsystem
EP0550164B1 (en) Method and apparatus for interleaving multiple-channel DMA operations
EP1189132B1 (en) Shared peripheral architecture
US5901291A (en) Method and apparatus for maintaining message order in multi-user FIFO stacks
US7610451B2 (en) Data transfer mechanism using unidirectional pull bus and push bus
US7386642B2 (en) IO direct memory access system and method
US5446844A (en) Peripheral memory interface controller as a cache for a large data processing system
US7130932B1 (en) Method and apparatus for increasing the performance of communications between a host processor and a SATA or ATA device
JPH06161950A (ja) 複式バス・アーキテクチャを有する計算システムに使用するデータ伝送の管理方法。
US11392407B2 (en) Semiconductor device
US5386514A (en) Queue apparatus and mechanics for a communications interface architecture
CN111290983A (zh) Usb传输设备及传输方法
US5764922A (en) I/O system for off-loading operating system functions
US5911152A (en) Computer system and method for storing data in a buffer which crosses page boundaries utilizing beginning and ending buffer pointers
CN114827048A (zh) 一种动态可配高性能队列调度方法、***、处理器及协议
JP2001166994A (ja) 早期データ転送完了を利用してデータ記憶装置性能を改善するデータ記憶装置および方法
KR100638378B1 (ko) 디스크 제어장치의 메모리 구조에 대한 시스템 및 방법
JP2001067298A (ja) ハブ及びポート・アーキテクチャーを有する転送制御装置における低速ポートについての障害を防止するための書込み要求キューの使用
US6944725B2 (en) Reciprocally adjustable dual queue mechanism
EP1115065A2 (en) Effective channel priority processing for transfer controller with hub and ports
CA1306311C (en) I/o system for off-loading operating system functions
JPH065521B2 (ja) メツセージ・バツフア・システム