JPH06161932A - 入力/出力制御装置および方法 - Google Patents
入力/出力制御装置および方法Info
- Publication number
- JPH06161932A JPH06161932A JP5167394A JP16739493A JPH06161932A JP H06161932 A JPH06161932 A JP H06161932A JP 5167394 A JP5167394 A JP 5167394A JP 16739493 A JP16739493 A JP 16739493A JP H06161932 A JPH06161932 A JP H06161932A
- Authority
- JP
- Japan
- Prior art keywords
- mdb
- signal
- giza
- channel
- data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
- Selective Calling Equipment (AREA)
- Jib Cranes (AREA)
Abstract
データ処理機能ユニット間において情報を転送するため
の装置および方法を提供する。 【構成】 ディジタルデータ処理装置は、二つの機能ユ
ニットおよびコントローラを備えており、それらの間で
情報が転送される。各機能ユニットは、ランダムアクセ
スメインメモリのような関連するメモリ要素を有してい
る。第1の機能ユニットは、データが転送送出されるべ
き関連するメモリ内の1または複数のアドレスを特定す
るメッセージ記述子ブロック(MDB)送信信号を発生
する送信要素(センダ)を備える。コントローラは、選
択されたMDB受信信号に整合するMDB送信信号を識
別し、整合しているMDB信号により特定される第1お
よび第2機能ユニットの対応するメモリ位置間に置いて
データの転送を実行する信号を発生する。本発明による
と、ディジタルデータ処理機能ユニット間における情報
の転送効率が向上される。
Description
に関し、特定すると、ディジタルデータ処理機能ユニッ
ト間にいて情報を転送するための方法および装置に関す
る。本発明は、例えば、ホストメインフレームコンピュ
ータと周辺デバイスとの間の情報転送に応用可能性を有
する。
を転送するための入力/出力コントローラは周知であ
る。本発明の譲受人に譲渡された米国特許第4,926,315
号は、入力/出力コントローラがデュアルバス構造体を
介して周辺デバイスと接続されるコンピュータシステム
を例示している。コントローラは、二重ストローブ信号
をバスに供給し、それによりユニット間におけるデータ
(および制御)信号の転送のタイミングを定める。各周
辺デバイスは、タイミング信号を監視し、バス上に受信
される情報の処理を開始させる。
出力コントローラは、バス構造体を介してサイクル開始
信号を伝送することによって、周辺デバイス間における
データ転送サイクルを開始させる。同時に、入力/出力
コントローラは周辺デバイスアドレス信号を転送する。
伝送中フォルト(障害)が起こると、周辺デバイスはWA
IT(待ち)信号を発生し、そしてこの信号は、バス上に
おけるコントローラによる後続の転送を遅延させる。
願第743,992 号は、直接メモリアクセス(DMA)およ
びプロセッサ命令(PID)両モードで周辺デバイスで
情報を転送する入力/出力コントローラを開示してい
る。コントローラは、DMA 転送中一緒に働くDMA 回路お
よびPIO 回路を有しており、局部的プロセッサの介入な
しでデータと命令の伝送をインターリーブ、すなわち交
互配置させる。
コントローラは非常に有効であることが分かったが、例
えば入力/出力コントローラで使用できるさらに良いデ
ータ転送装置の必要性はなお存在する。
データ処理機能ユニット間において情報を転送するため
の改良された方法および装置を提供することである。
ェアおよびハードウェア機構の複雑性を最小化しなが
ら、周辺装置のような機能ユニットへのデータの迅速な
転送を容易にする改良された入力/出力制御装置および
方法を提供することである。
ラーに対する不感知性が改善された機能ユニット間デー
タ転送機構を提供することである。本発明の他の目的
は、以下の説明から明らかとなろう。
的は、本発明の一側面においては、二つの機能ユニット
(例えばホスト処理部と周辺デバイス)を有するディジ
タルデータ処理装置と両者間において情報を転送するた
めのコントローラを提供することにより達成される。第
1機能ユニットは、メッセージ送信記述子(ディスクリ
プタ)ブロック(「MDB」)送信信号を発生し、これ
によりデータが送出転送されるべき関連する局部メモリ
内の1または複数のアドレスを特定する。第2機能ユニ
ットは、データが転送されるべきその関連する局部メモ
リ内の1または複数の位置を特定するMDB信号を発生
する。
号、特に同じ論理または仮想チャンネルを特定するもの
を整合させる。一度整合が見いだされると、コントロー
ラは、第1および第2機能ユニットのそれぞれのメモリ
間においてデータを転送する。
プロセッサ間において、それらのそれぞれの「メモリス
ペース」のデータに直接的にアクセスすることによって
データを転送する。かくして、本発明の1側面に従がう
と、ホストプロセッサおよび周辺デバイスは、そうでな
い場合は相互に隔絶されている。すなわち、ホストプロ
セッサおよび周辺装置は、いずれもが他のメモリを直接
読んだり書き込んだりできないように構成される。当技
術に精通したものであれば、そのように構成されたシス
テムは、違法なデータアクセスと関連する障害を受けに
くいことを理解できよう。
ンダ)および受信要素(レシーバ)は、通信が行われる
べきチャンネルを特定する仮想チャンネル番号を含め
て、それらのそれぞれのMDB信号を発生する。
トローラの仮想チャンネル回路は、受信中、類似の仮想
チャンネル番号を有するMDB送信または受信信号より
それぞれ成る各非整合のMDB送信または受信信号を記
憶する。本発明の一側面に従うと、仮想チャンネル番号
は、連結リストヘッド配列に対するインデックスであ
る。かかる各リストは、そのチャンネルに対する非整合
MDBのFIFOとして作用する。連結リストヘッドは、連
結リストヘッドの第1および最後の要素へのポインタを
含む構造体であり、ブロックを最小の努力で終端に取り
つけかつ前部から除去することができるようになされて
いる。
ローラは、コントローラを各機能ユニットに接続するの
に単一の物理的通信路(またはバス)しか存在しないに
拘わらず、複数のそれぞれの仮想チャンネルを介して複
数の通信トランザクションを処理することができる。
は、機能ユニット間に仮想チャンネルを創成し、破壊
し、維持するための仮想チャンネル管理装置を備え得
る。詳述すると、各機能ユニットは、他の機能ユニット
と通信のための新しい仮想チャンネルの創成を要求する
MDB 信号を発生し得る。仮想チャンネル管理装置は、そ
の要求に応答して、かかるチャンネルを開き、チャンネ
ル番号を割り当て、要求中の機能ユニットに、割り当て
られた番号について報知し得る。その仮想チャンネル管
理装置は、それ自体、仮想チャンネルを介して要求中の
機能ユニットと接続され得る。
よび第2機能ユニット間において特定の形式の情報を転
送するための予定されたドライバ制御仮想チャンネルを
含む。そのチャンネルは、例えば、第2機能ユニット
に、特定の通信トランザクションが行われるべき新しい
仮想チャンネルについて信号するために、第1の機能ユ
ニットにより使用できる。
ステムは、コントローラと機能ユニット間に診断および
エラーメッセージを転送するための予定された保守およ
び診断チャンネル、ならびにユニット間でデバッグ信号
を転送するための予定されたデバッガチャンネルを組み
込むことができる。
ディジタルデータプロセッサであって、コントローラ
が、一度要求された情報転送が完了すると、MDB を信号
中の機能ユニットに戻すための要素を備えるディジタル
データプロセッサが提供される。さらに詳しく言うと、
戻されたMDBは、MDBを発した機能ユニット内のFI
FOバッファに戻される。
トの送信および受信ユニットは、それらのそれぞれのM
DBの復帰の際実行されるべき動作を特定し得る。かく
して、例えば、第1機能ユニットの送信要素は、そのMD
B で、対応する転送の完了の際、例えば転送に関係しそ
のコードのみに関係するかかるMDB データに取り付けら
れ得るあるコードが実行されるべきことを特定し得る。
実施例について説明する。図1は、本発明の好ましい実
施例に従って構成された障害許容周辺入力/出力システ
ムをもつディジタルデータ処理システム5’を示してい
る。このシステム5’は、通信のためにシステムバス2
2’を介して接続された組になった中央処理装置10’
及び12’と、組になったランダムアクセスメモリユニ
ット14’及び16’と、組になった入力/出力コント
ローラ18’及び20’とを含んでいる。
入力/出力コントローラ18’及び20’は、システム
バス22’により表されるシステムバックプレーンと一
つあるいはそれ以上の周辺デバイス24’、26’及び
28’との間での情報及び制御信号の転送を制御する。
これらの周辺デバイスは、永久記憶媒体(例えば、ディ
スク及びテープドライブ)と、通信コントローラと、ネ
ットワークインタフェースと、その他とを含むことがで
きる。
は、デュアル入力/出力バス30A’及び30B’を含
む周辺バス30’を介して生じる。これらのバスを介し
て転送される信号は、ゲートアレイ32’、34’、3
6’、38’、40’、42’とアダプタ44’、4
6’、48’とを介して周辺デバイス24’、26’、
28’へ転送(route) される。
ば、装置24’)は、ゲートアレイのペア(例えば、ア
レイ32’及び34’)と、アダプタ(例えば、アダプ
タ44’)とに結合される。対になったゲートアレイ
(例えば、アレイ32’及び34’)は、(図のよう
に)通信線路によって相互接続される。
A’、56B’、58A’、58B’、60A’、60
B’で示されるアダプタバスによってその関連するアダ
プタと接続される。続いて、アダプタ44’、46’、
48’は、局部的周辺線路を介して各関連する周辺デバ
イス24’、26’、28’と結合される。
/出力バス30A’、30B’は、ターミネータ6
2’、64’によって終端される。
30A’及び30B’は、冗長信号キャリアとして働
く。すなわち、バス30A’及び30B’は、全く同様
の情報信号を同期的かつ同時に転送する。この配線が、
転送障害の検出を容易にして、障害のないバスを介して
連続で割り込みのない処理と通信とを可能にする。
及び30B’は、データ信号用と、制御信号用と、パリ
ティ信号用と、ストローブ信号用と、「待ち」信号用と
の導線を含んでいる。物理的に、バス30’は、各々の
ケーブルがより合わされた30対の二本のケーブルを使
って実行できる。この実行が、一方のケーブルを使用し
て転送4MHzでの冗長8ビット転送、あるいは別に両
方のケーブルを使用して4MHzでの冗長16ビット転
送を可能にする。バス30’に沿う情報の転送は、25
0ナノ秒のサイクル速度で生じて、4メガバイト/秒の
8ビット転送と、8メガバイト/秒の16ビット転送と
を提供する。
データ信号用と、制御信号用と、パリティ信号用と、待
ち信号用との線路は、オープンコレクタ導線であり、例
えばモトローラ社製の26S10トランシーバによって
駆動される。二本のストローブ線路が、各バス30A’
及び30B’に備わっている。これら対の線路は、入力
/出力コントローラ18’、20’において駆動され、
ターミネータ62’、64’で受け取られる異なる信号
キャリアとして働く。
のペアは、アダプタのシャーシ(図示なし)のスロット
内に挿入される。各スロットは、関連する周辺デバイス
のアドレスを定義するslot−idと関連づけられる。一つ
の実施例において、シャーシは、最端のターミネータ6
2’、64’が最後の二つのスロットを占めて、16個
のこのアドレス指定可能なスロットを維持する。
完全に理解することは、本願の譲受人に譲渡された次の
特許及び特許出願を参照することで達成できる。これら
の技術は、参照によって本願に組み込まれている。Wolf
f 他の「COMPUTER PERIFERAL CONTROL APPARATUS」と題
する米国特許第4,486,826 号;「FAULT-TOLERANT COMPU
TER SYSTEM HAVING EXPANDABLE PROCESSOR」と題するWi
lliamsの米国特許第4,816,990 号;「DIGITAL DATA PRO
PCESSING APPARATUS WITH PIPELINED MEMORY CYCLES 」
と題するReidの米国特許第4,866,604 号;「FAULT-TOLE
RANT DIGITAL TIMING APPARATUS AND METHOD」と題する
Batyの米国特許第4,920,540 号;「METHOD AND APPARAT
US FOR DETECTING SELECTED ABSENCE OF DIGITAL LOGIC
SYNCHRONISM」と題するWilliamsの米国特許第5,020,024
号;「COMPUTER PERIFERAL CONTROL APPARATUS」と題
するWolff 他の米国特許第4,486,826 号;「DIGITAL DA
TA PROCESSOR WITH FAULT TOLERANT PERIPHERAL BUS CO
MMUNICATION 」と題するLong他の米国特許第4,926,315
号;「CENTRAL PROCESSING APPARATUS」と題するReidの
米国特許第4,453,215 号;「DIGITAL DATA PROCESSOR W
ITH HIGH RELIABILITY」と題するSamson他の米国特許第
4,654,857 号;「DIGITAL DATA PROCESSOR WITH FAULT
TOLERANT BUS PROTOCOL 」と題するGardner 他の米国特
許第4,750,177 号;「METHOD AND APPARATUS FOR MONIT
ORING PERIPHERAL DEVICE COMMUNICATION」と題するBat
y他の米国特許第4,931,922 号;「FAULT TOLERANT DIGI
TAL DATA PROCESSOR WITH IMPROVED BUS PROTOCOL」と
題するLongの米国特許第4,939,643 号;「FAULT TOLERA
NT DIGITAL DATA PROCESSOR WITH IMPROVED INPUTB/OU
TPUT CONTROLLER 」と題するLongの米国特許第4,974,15
0 号;「FAULT TOLERANT DIGITAL DATA PROCESSOR WITH
IMPROVED PERIPHERAL DEVICE INTERFACE 」と題するLo
ngの米国特許第4,974,144 号;「EMI CABINET WITH IMP
ROVED INTERFACE SUPRESSION」と題するVowlesの米国特
許第5,049,701 号;1992年5月8日に出願された米
国特許第07/884,257 号(Attorney Docket No.SCM-050
CN)のために放棄された「OPTIMIZED INTERCONNECT NET
WORKS 」と題して1989年5月19日に出願されたBa
ty他の米国特許出願第354,139 号;「FAULT-TOLERANT U
NIX-TYPE DIGITAL DATA PROCESSING METHOD AND APPARA
TUS 」と題して1991年2月21日に出願されたYama
da他の米国特許出願第659,597 号;「HIERARCHICAL MEM
ORY MANAGEMENT APPARATUS AND METHOD 」と題して19
91年5月2日に出願されたStonerの米国特許出願第69
4,556 号;「FAULT TOLERANT PROCESSING SECTION WITH
DYNAMICALLY RECONFIGURABLE VOTING」と題して199
1年5月6日に出願されたCheungの米国特許出願第696,
129 号;「DIGITAL DATA PROCESSOR WITH MAINTENANCE
AND DIAGNOSTIC SYSTEM 」と題して1991年6月28
日に出願されたBullisの米国特許出願第723,065 号;
「FAULT-TOLERANT UNIX-TYPE DIGITAL DATA PROCESSING
METHOD AND APPARATUS 」と題して1991年7月1日
に出願されたYamada他の米国特許出願第723,803 号;
「I/O CONTROLLER APPARATUS AND METHOD FOR TRANSFER
RING DATA BETWEEN AHOST PROCESSOR AND MULTIPLE I/O
UNITS 」と題して1991年8月12日に出願されたL
ambの米国特許出願第743,992 号;「PROGRAMMABLE INTE
RRUPT PRIORITY ENCODER METHOD AND APPARATUS」と題
して1991年8月12日に出願されたLambの米国特許
出願第743,691 号;「FAULT TOLERANT PROCESSING SECT
ION WITH DYNAMICALLY RECONFIGURABLE VOTING」と題し
て1992年5月13日に出願されたCheungの米国特許
出願第07/882,474号(Attorney Docket No. SCM-082CN
)
合して使用する本発明によるデータ転送5としての好ま
しいシステムを示す。この図示したシステム5は、装置
の機能ユニット間のデータ転送を容易にする。さらに詳
しく言うと、このシステム5は、システムバックプレー
ン(図1のシステムバス22’)と(図1の)周辺デバ
イス24’、26’、28’との間で情報及び制御信号
を転送する。データ転送システム5は、また他の機能ユ
ニット(例えば、中央処理装置)間の通信を容易にする
のに使用できるということは理解されよう。
転送システム5は、特殊な目的のハードウエアと、一般
あるいは特殊な目的のプロセッサでの実施のためのソフ
トウエアとに実行できる。以下に開示する実施例は、本
願で開示する図1のディジタルデータプロセッサ5’と
結合して動作するためのソフトウエアにおいて実行され
る。
ば、図1の入力/出力コントローラ18’、20’に対
応する入力/出力コントローラ10と、図1の中央処理
装置10’、12’に対応するホストデバイス40と、
図1の周辺デバイス28’とこれに関連づけられたイン
タフェース回路要素(例えば、ゲートアレイ40’、4
2’及びアダプタ48’)とに対応する周辺デバイス5
0と、として指示される複数の構成要素を含んでいる。
理解することは、Wolff 他の「COMPUTER PERIFERAL CON
TROL APPARATUS」と題する米国特許第4,486,826 号と、
「I/O CONTROLLER APPARATUS AND METHOD FOR TRANSFER
RING DATA BETWEEN A HOST PROCESSOR AND MULTIPLE I/
O UNITS (Attorney Docket SCM-070) 」と題するLambの
米国特許出願第743,992 号と、「PROGRAMMABLE INTERRU
PT PRIORITY ENCODERMETHOD AND APPARATUS (Attorney
Docket SCM-073)」と題するLambの米国特許出願第743,6
91 号とを参照することによって達成される。
イス40は、コマンドFIFO15と、メッセージ送信
機41と、メッセージ受信機42と、メモリ43と、リ
ターンFIFO44と、コールバックユニット45とを
含んでいる。図示された入力/出力コントローラ10
は、仮想チャンネル要素25と、データ転送要素30
と、リターン要素35とを含んでいる。周辺デバイス5
0は、コマンドFIFO20と、メッセージ送信機49
と、メッセージ受信機51と、メモリ53と、リターン
FIFO54と、コールバックユニット55とを含んで
いる。
力/出力コントローラ10と結合されている。これは、
従来の設計でもよいが、Wolff 他の「COMPUTER PERIFER
AL CONTROL APPARATUS」と題する米国特許第4,486,826
号のバックプレーンバスに関連して開示された設計及び
構成が好ましい。同様に、周辺デバイス50(及び関連
インタフェース回路要素)も従来のバスを介して入力/
出力制御装置10と接続できる。この相互接続は、この
同一特許において開示された型の周辺デバイスバスを介
して行われるのが好ましい。
/出力コントローラと機能ユニットとの間の通信を扱う
ための三つの経路、(i)MDBを入力/出力コントロ
ーラへ通信するための経路と、(ii)(入力/出力コ
ントローラが機能ユニット内のメモリから入力/出力コ
ントローラによって提供されるアドレスを読み出しかつ
書き込みする)読み出し/書き込みメモリバス経路と、
(iii)完了したMDBを機能ユニットへ戻す通信を
行うための経路とを含んでいる。各経路は、他の経路と
独立して動作する。図示した実施例において、機能ユニ
ットがホストの場合、インタフェースはシステムバス
(22’)を使用し、機能ユニットが周辺デバイスの場
合、インタフェースはPQバス(30’、32’、3
4’、44’)を使用する。
40内のプロセッサ92は、このインタフェースのプロ
セスのためとこのデバイスの図示した構成要素のための
独立プロセッサとして働く。同様に、入出力コントロー
ラ10及び周辺デバイス50(あるいは、関連インタフ
ェース回路)それぞれの局部のプロセッサ93及び94
は、これらインタフェースのプロセスとこれらユニット
の各構成要素とを駆動する。
汎用型の処理装置にできるけれども、図示したプロセッ
サ92は、Wolff 他の米国特許第4,486,826 号と、本発
明の譲受人に譲渡された他の上記の特許及び特許出願と
に開示された型の中央処理装置が好ましい。
「COMPUTER PERIFERAL CONTROL APPARATUS」と題する米
国特許第4,486,826 号と、「I/O CONTROLLER APPARATUS
AND METHOD FOR TRANSFERRING DATA BETWEEN A HOST P
ROCESSOR AND MULTIPLE I/O UNITS (Attorney Docket S
CM-070) 」と題するLambの米国特許出願第743,992 号
と、「PROGRAMMABLE INTERRUPT PRIORITY ENCODER METH
OD AND APPARATUS (Attorney Docket SCM-073)」と題す
るLambの米国特許出願第743,691 号とに、入力/出力コ
ントローラと周辺デバイスのアダプタとのそれぞれの構
成要素として開示された型のマイクロプロセッサが好ま
しい。
物対等物(ピア−トゥ−ピア)」関係をもつ。このよう
に、主従関係とは対称的に、いずれのプロセッサも、入
力/出力コントローラの初期化中でなければ別(のプロ
セッサ)の動作を直接制御しない。同様に、各プロセッ
サ92、93及び94は、他のプロセッサの速度と独立
した速度で動作する。
二つの機能ユニット間で情報を転送する。これらは、例
えばホストプロセッサ40か、周辺デバイス50か、あ
るいは追加的な論理機能ユニット、例えば入力/出力コ
ントローラ10内の「接続管理装置」かでよい。これら
の転送は、インタフェース80及び90でのメッセージ
の交換を介して行なわれる。これらの転送は、入力/出
力コントローラ10によって割り当てられる「仮想チャ
ンネル」を介して起こる。交換されるメッセージは、メ
ッセージ記述子ブロック(MDB)によって記述され
る。
を指すポインタはMDB信号を表すのに使用される。M
DBが、MDBを発生するデバイス内のメモリのセグメ
ント内あるいはバッファ内に備わっていることは理解さ
れるだろう。かくして、ホストプロセッサ40によって
発生されるMDBは、例えばメモリ43内の領域を指
す。同様に、周辺デバイス50によって発生されるMD
Bは、例えばメモリ53の領域あるいはデバイス50に
対して局部のバッファを指す。各機能ユニット40及び
50は、それ自身のMDBを初期化して割り当てる。
べき転送先あるいは転送もとの指示に加えて、MDBは
さらにデータ転送と関連づけられた情報を含んでいる。
例えば、以下で説明するように、MDBは、転送が完了
したとき実行されるべきソフトウエアのルーチン−−
「コールバックルーチン」−−を指示する。使用者の自
由で、これもまた、大きなデータの構造体内に埋め込む
ことができ、続いて、そのコールバックルーチンに関係
のあるデータを含んでいるが、データ転送機構に関係の
ないデータは含んでいない。
B42Sを発生してコマンドFIFO15へ転送する。
黒塗りの円と矢による記号で表されるMDB42Sは、
メモリ43から転送されるべきデータの記述(すなわ
ち、アドレスと長さ)と、MDBが送られるべき仮想チ
ャンネル番号と、転送が完了したときに呼び出されるべ
き「コールバック」ルーチンのアドレスとを含んでい
る。
同定するMDB42Rを発生してコマンドFIFO20
へ転送してホストデバイス40からの入力データを受信
する。MDB42Rは、白塗り円と矢による記号で表さ
れる。MDB42Rは、また仮想チャンネルと、転送が
完了したときに実行されるべきコールバック手順とを同
定する。
ジ受信機42及び51とコマンドFIFO15及び20
とは、ソフトウエアにおいて実行されるのが好ましい。
コマンドFIFO15及び20は、好ましくはメモリの
一部であるが、ハードウエアのFIFOであってもよ
い。
信及び受信MDBは、同時に(あるいは「アトミック態
様(atomically)」)コマンドFIFOに置かれなけれ
ばならない。コマンドFIFOにMDBを位置付けるラ
イブラリルーチンは、アトミック態様で位置付けられる
べきMDBのリストを受け入れるだろう。
Oは、オーバフローに対する連結リストに対して円形に
インデックスされる配列として実施される。オーバフロ
ーの事象において、「オーバフローブレット(overflow
bullet) 」と呼ばれる特殊なMDBは、配列内に待機さ
せられる。この特殊なMDBは、「違法」チャンネル番
号をもつ。配列が仮想チャンネル要素によって空にされ
ていた場合、オーバフローブレットは拒絶される。オー
バフローブレットは「拒絶した(rejected)」とマーク
されて戻り、そのコールバックはオーバフローリストを
無理にコマンドFIFOに提示させられる。したがっ
て、MDBをコマンドFIFOに提示するライブラリル
ーチンはコマンドFIFO内に十分な記憶スペースがな
いためにブロック化しない。
BをコマンドFIFO15及び20上に配置して、そし
て入力/出力コントローラ10がコマンドFIFO15
及び20から各MDBを取り出してこれらを仮想チャン
ネル要素25へ転送する。そこから、これらは同一チャ
ンネル上で整合するMDBを待って待機させられるかあ
るいは待機していたMDBと整合されて一対としてデー
タ転送要素30へ与えられる。
ネル要素25へ転送され、そして仮想チャンネル要素2
5は、類似の仮想チャンネル番号をもつ送信及び受信M
DBを整合させる。一度、二つの同様に指示されたMD
Bが受信されると、仮想チャンネル要素25はデータ転
送要素へ信号を送ってデータ転送を開始する。詳述する
と、仮想チャンネル要素25は、データ転送要素30に
信号を送ってデータを送信DMA内で指示されるアドレ
ス範囲から受信DMA内で指示されるアドレス範囲へ転
送する。
セス(DMA)の転送デバイスにすることができ、好ま
しくは、「I/O CONTROLLER APPARATUS AND METHOD FOR
TRANSFERRING DATA BETWEEN A HOST PROCESSOR AND MUL
TIPLE I/O UNITS (AttorneyDocket SCM-070) 」と題す
るLambの米国特許出願第743,992 号に開示されている型
のDMAデバイスである。
び42Rは、それらの各機能ユニットへ戻される。詳述
すると、MDB42Sは入力/出力コントローラ10に
よってリターンFIFO44へ転送され、他方MDB4
2RはリターンFIFO54へ転送される。
了すると、リターン要素35は整合したMDB42Rお
よび42Sをマークしてデータ転送の状態を反射する。
MDBは、対応する入力/出力コントローラのインタフ
ェース80及び90を介してホストデバイス40及び周
辺デバイス50の両方へ戻される。
両方の上に配置されるリターンFIFO要素44、54
は、これらが入力/出力コントローラ10から戻される
ようにMDBを受信する。リターンFIFO要素は、好
ましくは複数のリターンFIFOから構成される。これ
に関連して、FIFOは、その後現実にはリングをソフ
トウエアで実行する。リターンFIFOは、好ましくは
割り込みリングか、ポーリングされたリングか、カスタ
ムのポーリングされたリングかのいずれかを含んでい
る。
つをサービスする(「FIFOをドレインする」とも呼
ばれる)場合、MDBはそのFIFOから取り除かれ
て、後のコールバック処理のために待機させられるか、
あるいは通常の場合には、コールバック要素(45)が
直ちに呼ばれる。このコールバックルーチンは、追加的
な入力/出力を自由に提示するか、あるいはデータ構造
体を自由に処理するか、あるいはMDBをフリー記憶装
置へ単に戻す。
一の方向での転送としてあるけれど、図示したシステム
は何れか二つの機能ユニット間での転送ができるという
ことは理解できるであろう。
て作成され、そしてこの入力/出力コントローラ10が
ホストプロセッサ40あるいは周辺デバイス50の要求
に基いて新規のチャンネルを割り当てて初期化する。こ
のチャンネルの作成は、この入力/出力プロセッサの
「接続管理装置」のサブセクションによって実行され
る。
チャンネル(例えば、読み出しあるいは書き込み)のの
方向を特定する。チャンネルを確立できると仮定する
と、入力/出力プロセッサ10は、チャンネル番号を表
す整数をリクエスタへ戻す。図の実施例において、入力
/出力コントローラ10は、次の内の何れか二つの間で
チャンネルを発生できる:ホストデバイス40、周辺デ
バイス50、入力/出力コントローラの接続管理装置。
前もって割り当てた機能のために保留にされる。こうし
て、チャンネル0及び1は、システムレベル通信のため
に保留にされ;チャンネル2及び3は、常駐デバッガの
ために保留にされ;チャンネル4及び5は、「接続管理
装置」への通信のために保留にされ;チャンネル6及び
7は、ドライバ制御管理装置のために保留にされる。こ
れらの前もって定義したチャンネルは、コードがメッセ
ージの最大のブロックの大きさを定義する各チャンネル
をサービスして、信号ブロックメッセージを運ぶのが好
ましい。
機能ユニットは、任意の数の追加的な単一方向のチャン
ネルの作成を要求できる。
ユニット40及び50はチャンネルがフラッシュされる
か、クローズされるか、接続を断たれるかを要求でき
る。GIZAエンジンのバックプレーン内に配置された
この接続管理装置は、これらの要求を実行する。チャン
ネルをフラッシュするプロセスは、要求デバイスへ通知
されたいくつかのMDBを戻し、記憶装置要素15及び
20内に記憶されてまだ処理されていないいくつかのM
DBを検索する。すでに対にされて転送するいくつかの
MDBは、それらの転送を完了して戻される。
は、その側とそのチャンネルのその側だけをフラッシュ
できる。これは、システム使用者による入/出力アボー
トコマンドの結果として起こるかもしれない。これはま
たこのチャンネルのクロージングへの前置きとして起こ
るかもしれない。一旦フラッシュ要求が入/出力によっ
て受信されて処理されると、チャンネルは「フラッシン
グ(flushing)」とマークされ、転送されるいくつかの
MDBのペアは終了可能にされ、整合を待っているフラ
ッシング側からのいくつかのMDBは「フラッシュした
(flushed )」とマークされてそれらの機能ユニットへ
戻される。ファンダメンタルなデータ駆動プログラミン
グのルールは、フラッシュ動作中にも監視される:与え
られたチャンネルのいずれに対しても全てのMDBはそ
れらが提示された命令で戻される。
ズされることを要求できる。この状態を要求すると、機
能ユニットはそれがMDBをチャンネルへもう提示しな
いだろうことを示す。一つの機能ユニットがクローズさ
れたチャンネルの側を宣言する場合、入力/出力プロセ
ッサ10は、その機能ユニットからのそのチャンネルに
対するMDBをもう受け取らないだろう。両方の機能ユ
ニットがクローズされたチャンネルを宣言する場合、チ
ャンネルは後の再使用に対するチャンネルのフリープー
ルへ戻される。好ましい実施例において、コーリングデ
バイスは、前もってフラッシュされたチャンネルだけの
クローザーを要求する。
40あるいは周辺デバイス50の何れか一方から提示で
きるが、しかし、発行される場合、その整数のチャンネ
ル番号によって同定されるチャンネルに同時にチャンネ
ルの両側を無理にフラッシュしてクローズさせる。
はチャンネルをクローズするあるいはチャンネルの接続
を断つ前にフラッシュされる。しかしながら、チャンネ
ルの使用はまた、例えば入/出力アボート要求の一部と
して通知されたMDBを検索するために、フラッシュコ
ールを介して一時的に割り込みできる。MDBがいった
ん検索されると、システムドライバは、再開始ライブラ
リルーチンをアクセスすることによってスティルオープ
ンチャンネルを使用して再開できる。前の接続ルーチン
によって発生されるチャンネル番号は、提示されたMD
Bを運んで記憶して再開する仮想チャンネル要素25内
に位置付けられるチャンネルを同定する。
リングを含んでいる好ましいリターンFIFO要素を示
している。
両方に含まれるリターンFIFOには種々のオプション
がある。その理由は、各デバイス40、50がリターン
FIFO要素44、54内に含まれる多数のリターンF
IFOをもつことを可能にするためである。リターンF
IFOは、(リングが前もって空であれば)MDBがリ
ング上に位置付けられるとき割り込みリングが割り込み
を報知するように設計されるからその機能ユニットを中
断してもしなくてもよい。中断しない場合、その後、こ
れは機能ユニット内のコードによってポーリングされね
ばならない。通常プロセッササイクルの期間でもっと効
率よいポーリングは、割り込みを処理することが必要と
されるオーバーヘッドに依存して待ち時間が少ない場合
もある。
リングされたリングもしくはFIFOとポーリングされ
たリングもしくはFIFOとを使用する。通常ポーリン
グされないカスタムポーリングされたリングは、特殊な
環境であるかもしれない。例えば、カスタムポーリング
されたリングは、システムが停止されている間のデバッ
ガ状態にある間に試験プログラムに対してだけあるいは
CPUのPROMによって使用されるかもしれない。ポ
ーリングされたリングは、しばしばメインループ内でも
しくはスケジュールコードにおいてシステムをポーリン
グする。
とは、以下のセクションを参考にすることによって達成
できる。この中で、入力/出力コントローラ(もしく
は、入力/出力プロセッサ、IOP)10の好ましい図
示のデータ転送システム5は、用語「Giza」によって参
照される。
アドレススペースから別のスペースへデータのブロック
を転送する時(例えば、I/OアダプタIOA48’か
らホスト40のメインメモリ43へデータを移動する
時)により効率よい入力/出力コントローラ18’、2
0’のアーキテクチャを作るメッセージ・パッシング・
ファシリティである。
ットのメモリ間のデータを転送する。これは、二つの
「ハーフ・リクエスト」整合させることとこれらの半分
からの全転送リクエストを形成することとによってこの
転送を制御する。
に読み出しあるいは書き込まれるだろう機能ユニットに
よって発生される。従って、ハーフ・リクエストは、チ
ャンネル番号、転送方向(読み出しあるいは書き込み)
及び(さらに以下で記述する)リターンFIFO番号の
ような制御パラメータとともにそれぞれのメモリ内の位
置を特定する。
であり、上記のハーフ・リクエストを表すメッセージ記
述子ブロック(MDB)のアドレスを転送するための二
つもしくはそれ以上のFIFOそれぞれはコントローラ
と各機能ユニットとの間にある。これらのFIFOは、
MDB自身を転送するのではなくMDBのアドレスを転
送する。簡潔のために、このテキストにおいて、MDB
のポインタのFIFO内の記憶装置は、これらのFIF
O内のMDB自身の記憶装置として参照できる。
の間のFIFOについて、一方は、コマンドFIFOと
呼ばれ、複数のMDBを機能ユニットからコントローラ
へ運ぶ;もう一方はリターンFIFOと呼ばれ、複数の
MDBをコントローラから機能ユニットへ運び戻す。
ローラ(そして、他の機能ユニット内の対応する機能)
がハードウエアあるいはソフトウエアにおいて実行でき
ることは理解されるだろう。さらに、コントローラ自身
は、単体ユニットもしくは通信媒体を介して結合される
記述したユニットの収集として実行できる。
を実行する。 1.整合 2.データ転送 3.結果報告
ンに対して別々のプロセッサを持つことができる。これ
らのプロセッサは、自主的に走り、作業を待つことによ
って一つのセクションから次のセクションへの通信を行
う。ソフトウエアの実行は、単体のプロセッサを使用
し、プログラム制御の転送によって一つのセクションか
ら次のセクションへの通信を行う。
ないコマンドFIFOからMDBを取り除く。そのMD
Bから、チャンネル番号は、抜き出された後、マッチテ
ーブルと呼ばれるメモリの配列へのインデックスとして
使用される。マッチテーブル内の各エントリは、次のこ
とを含む小さなデータ構造体である。
の後尾を指すポインタ。書き込み側のための機能ユニッ
トのデザインネータと、読み出し側のための機能ユニッ
トのデザインネータと、書き込み側での状態(閉鎖、開
放、フラッシング)と、読み出し側での状態(閉鎖、開
放、フラッシング)と、その側がリストの中に複数のM
DBをもつインディケータと、を含む状態の情報。
タ。書き込み側のためのMDBのリストの後尾を指すポ
インタ。読み出し側のためのMDBのリストの先頭を指
すポインタ。読み出し側のためのMDBのリストの後尾
を指すポインタ。データ転送ユニットによって処理され
るべき整合をもつ別の整合テーブルエントリのインデッ
クス。書き込み側のための機能ユニットのデザインネー
タと、読み出し側のための機能ユニットのデザインネー
タと、書き込み側での状態(閉鎖、開放、フラッシン
グ)と、読み出し側での状態(閉鎖、開放、フラッシン
グ)と、その側がリストの中に複数のMDBをもつイン
ディケータと、を含む状態の情報。
電流側のためのMDBのリストの後尾を指すポインタ。
データ転送ユニットによって処理されるべき整合をもつ
別の整合テーブルエントリのインデックス。電流側のた
めの機能ユニットのデザインネータと、残りの側のため
の通信線路のデザイネータと、電流側での状態(閉鎖、
開放、フラッシング)と、残りの側での状態(閉鎖、開
放、)と、転送方向(電流側からの書き込み/電流側へ
の読み出し)と、を含む状態の情報。 (電流側からの書き込みの場合)残りの側で待機される
ことを知られるMDBの数の計数。 (電流側への読み出しの場合)残りの側へ報告されるこ
とを必要とするMDBの数の計数。
義した整合テーブルの範囲外)な場合、MDBはエラー
としてマークされてただちにステージ3、結果報告へ送
られる。さもなければ、このMDBに対するエントリは
試験される。転送方向はMDBから取り出され、整合テ
ーブルエントリの適当なフィールドは試験されてそのチ
ャンネルがその転送方向に対して開放であるかどうかを
決定する。
ー状態であり、ただちにステージ3へ送られる。チャン
ネルがフラッシングの場合、MDBは「フラッシュされ
た(flushed )」とマークされて直ちにステージ2へ送
られる。ステージ2では、MDBはデータ転送を行わず
にそのチャンネルから進歩もしくは依存におけるいくつ
かの転送の後ろで現実に待つ。(コントローラは、プロ
セスを通じていずれかの現存のチャンネルに対するMD
Bの命令を保存することを約束する。そのため、MDB
は、これらがコマンドFIFO上に達する同一命令で選
択したリターンFIFOを介して戻される。)
合テーブルエントリは試験されて、適当に連結リスト上
で待機させられるこの側からすでにMDBがあるかどう
かを決定する。もしあれば、このMDBは、(標準的な
単一のスレッド連結リストの方法を使用する)そのリス
トの最後に追加されて、そしてこのMDBのこのステー
ジの処理は終了した。
がない場合、整合テーブルは試験されて他の側のために
待機させられている複数のMDBがあるかどうかを決定
する。もしあれば、このMDBと他の側に待機させられ
ている第一MDBとは、整合を構成する。これらの内の
二つは、ステージ2(つまり、データ転送)に待機させ
られ、そしてこのステージのこのMDBの処理は終了し
た。
い場合、このMDBはこっちの側に待機されそしてこの
MDBのこのステージの処理が終了した。
ス)、その後いつ受信MDBがチャンネル上で待機され
ても、それについての情報(少なくともそのチャンネル
番号)は、コントローラの適当な他のピースへのメッセ
ージ(整合テーブルを更新する際に使用するメッセー
ジ)として記録される。このようなテーブルは、直ちに
送ることができるか、あるいは、好ましい実施において
は、タイマーが数えだすあるいは更新メッセージが完全
になって送られねばならなくなるまでバッチされる。い
つ送信MDBが他の側の受信MDBのノン−ゼロ計数で
一致されても、それは他の側への転送を制御するのに待
機させられる。この転送はMDBによって記述されるメ
ッセージであり、チャンネル番号で前置きされる。いつ
メッセージが他の側から受信されても、この前置きチャ
ンネル番号が最初に受信され、第一受信MDBはそのチ
ャンネル番号によって示される整合テーブルエントリか
ら取り出されて入力メッセージを記憶するところを制御
するのに使用される。
路で単に待機している−−コントローラのデータ転送ス
テージはオーダーしたリストもしくはFIFO内の整合
されたペアのMDBを受信する。別の転送を行なう時間
が来ると、リストの先頭のペアは比較されて読み出しM
DBの中に示されるメモリの量が書き込みMDBの中に
あるのと少なくとも同量あるかどうかを決定する。もし
そうでない場合には、オバーフローエラーとなりMDB
はエラーと表示されて転送は実行されない。(分散され
る場合において、この異常なエラーは、転送を初期化し
て、交渉を待機して両方の実施は可能であるがルームが
あるかどうかを決定するのでなく受信エンドでのオーバ
ーフロービットを捨てることによって最前に扱われ
る。)書き込まれる全てを受信するルームがある場合、
転送が実行される。ステージ2の完了において、正常か
異常かのどちらか、ペアのMDB(あるいは単一のフラ
ッシュされたMDB)は、ステージ3(結果報告)に沿
って送られる。
検出されたいくつかのエラーが両方のMDBにおいて注
釈される。エラーがない場合、それも注釈され、さら
に、少なくとも受信MDBは現実に書き込まれたデータ
の長さをその中に記録される(メッセージを受信するバ
ッファの長さを特定するフィールドの横側)。(図示し
た実施例において、両方のMDBは移動される実長さを
受信する。)
DB内に示されるリターンFIFOへ戻って書き込まれ
る。このようなリターンFIFOがない場合、その機能
ユニットに対するFIFO番号0が使用される。そのF
IFOは常に存在していなければならない。選択したリ
ターンFIFOが満杯である場合、そのFIFOと関連
づけられるMDBの連結リストがオーバーフローのMD
Bを保持するのに使用され、そしてMDBは、スペース
が利用できるようになるようにそのリストからFIFO
へ定期的に移動される。
二つの動作が実行されねばならない: 1.MDBをコマンドFIFOに与えること 2.リターンFIFOからMDBをドレインすること
ユニットをプログラムされたディジタルデータプロセッ
サであると仮想すると、MDBのリストを与えられる
「提示(submit)」と呼ばれるライブラリルーチンがあ
る。これらのMDBはそれらのコマンドFIFOへ提示
されるべきである−すなわち、リストの中のMDBは、
(何か他の提示動作からの)他のMDBがリストの中間
にまき散らされずに、命令でコマンドFIFOの中に現
れなければならない。
続呼び出しが一対のMDBによって実行できるという
(一方はチャンネルへ書き込み他方は別のチャンネルか
ら読み出す、ここのこれら二つのチャンネルは要求を読
み出すための遠隔プロセスと返事を書き込むための遠隔
プロセスとによってそれぞれ使用される)ことに注目す
るだろう。二つのRPCの要求(W1、R1)と(W
2、R2)が非アトミック態様で提示され、オーダリン
グ(W1、W2、R2、R1)は、コマンド1に対する
返事がリクエスタ番号2そしてその逆となる発生する。
つ。必要であれば、「提示」は、最小単位のコマンドF
IFO提示を保存するために、割り込みレベルを不可能
にしロックをセットしなければならないかもしれない。
にとって最善であるような)MDBのリストと、(ソフ
トウエアの実行にとって最善であるとみなされた)個々
のMDBを運ぶことができる。前者の場合であれば、最
小単位がコントローラによって保証される。後者の場合
であれば、機能ユニット内の提示ルーチンによって保証
されねばならない。
ドFIFOに関連づけられる連結リストが存在する。提
示ルーチンがコマンドFIFOがほとんど満杯であると
いうことを発見する場合(現在、これがひとつ以上のM
DBをもつとき)、あるいはオーバーフローリストが空
でない場合、提示されたMDBはオーバーフローリスト
の最後に位置付けられる。オーバーフローリストが開始
されると、特別のMDB(オーバフロートレーサーと呼
ばれる)は、提示されたMDBの代わりにコマンドFI
FO上に位置付けられる。このオーバーフロートレーサ
は、チャンネル番号が違法となるMDBである(その結
果、コントローラによって直ちに拒絶される)。これ
は、全てのオーバーフローリストを取り出しこれを提示
する(以下に記述する)コールバックルーチンをもつ。
オーバーフローリストと共にコマンドFIFOは完全に
できないMDBに対して待機機構を提供する。したがっ
て、提示ルーチンはルームを待機することをブロックし
てはならない。
なった位置でドレインされる。その理由は、設計におい
て考慮に入れられる多数のリターンFIFOが存在する
からである。あるものがドレインされるべき必要がある
各々の位置について一つ存在する。例えば、割り込みレ
ベルにおいてポリングループ(所望されるXのそれぞれ
の数値に対して異なったFIFOあらゆるX秒)におい
ていくつかのプロセスからポリングされるシステムのレ
ストの正常な動作を中断したデバッガからポリングされ
るドレインされるべきFIFOの場合がある。
要求が六つより少なくてよいことがわかった。多数の機
能ユニットは一つのFIFOだけ必要であることがわか
った。
ールバック」と呼ばれるルーチンのアドレスをそのMD
Bから移動しこのルーチンを呼び出して唯一の引き数と
してMDBを指すポインタを与え、FIFOの先頭から
一つのMDBを指すポインタを繰り返し移動させること
によってドレインされる。
がら、このプロセスのノープレイス(no place)でブロ
ックしている。こうして、コントローラによって処理さ
れるいずれか一つのチャンネルもしくは全セットのチャ
ンネルを待機することができるMDBの数に関する制限
はない(メモリの素のセクションを異なるMDBとそれ
らが記述されるメッセージとに割り当てる必要によって
課せられる制限を除いて)。
は、整合テーブルの大きさによって制限される。整合テ
ーブルエントリは、チャンネルの数が図示した実施例に
よって出会わされた最高のケースにおいて必要とされる
数を容易に越えることができるということを十分小さ
い。整合テーブルが存在する更に多くのチャンネルを持
つことが必要となる場合、標準的な技術を使って単一の
仮想チャンネル以上の多数のサブチャンネルを多重送信
することが可能である。
含んでいる: Gizaエンジン(データー・ムーバー) Gizaサポートルーチン Gizaライブラリルーチン
ンジンは、IOPファームウエアの一部としてのソフト
ウエアにおいて実行される。これは、存在するIOP機
能の横で動作する。
ンがデータの通常の移動で働かないGizaエンジンと
別個のものである。これらは主に、結合管理、すなわ
ち、核(kernel)とIOA(もしくはI/Oコントロー
ラ)との間の開及び閉のGiza結合を提供する。
のことを可能にするプログラム化インターフェースであ
る:Giza結合をセットアップするこれらの結合に亙
るデータの転送を行うことこれらの結合をブレイクする
ことこのインターフェースは、例えば、出願中に共に譲
渡された1991年6月28日に出願された米国特許出
願第723,065 号と本発明の譲受人により市販されている
VOSTMオペレーティングシステムとに開示されたオペ
レーティングシステムと結合して使用するためのもので
ある。
ことを可能にさせるIOAプログラム化インターフェイ
スである。Giza結合をセットアップするこれらの結
合に亙るデータの転送を行うことこれらの結合をブレイ
クすること
る。データドゥリブンプログラミングは、自律プロセス
の集合体を包含しており、そのプロセスの各集合体はそ
れ自体の機能ユニット(ここで使用されるように、機能
ユニットは例えば独立のプロセッサとし得る)により支
配される。機能ユニットは、一般に、対等物対対等物の
関係を有しており、いずれも他の従属体に対する主体
(マスタ)ではない。各機能ユニットは、他の機能ユニ
ットと独立の速度で動作する。一つが休止したりスピー
ドアップした場合、それはシステム動作の適正性に影響
を及ぼさない。
与の入力がタイミングの如何に拘りなく同じ出力を生ず
ることを補償するために、特定のルールがデータドリブ
ンプログラミングを支配している。かくして、Gizaは、
タイミングバグにより傷つけられないようにこれらのル
ールを使用して設計された。詳述すると、これらのルー
ルとしては下記のものが含まれる。すなわち、 1.MDBは、一度提示されると、撤回することができ
ず、変更されるべきでない。 2.任意の単一のチャンネル上の全MDBは、データ転
送およびコールバック処理中とも、それらが提示された
のと同じ順序で処理される。これは、フラッシュ、クロ
ーズおよび切断のような異状の場合を含む。 3.MDBに対するタイムアウトはない(何故ならば、
これは提示されたMDBの撤回に等しいからである)
ンプログラミングに従うことを必要としないことに注意
されたい。むしろ、Gizaを使用するドライバは、これら
のルールに従いかつシステムにより提示される機械がル
ールを保っていることを知ることを許容せしめられる。
テムに優る一群の利点をもたらす。これらの利点の二三
のものを以下に掲げる。
する。 〇機能ユニットの対等物対対等物の等価性 GizaはIOAプロセッサおよびホストシステムに対して
同じ視野に立つ通信を提示する。インターフェースは両
側とも本質的に同じである。(ただし、ホストコンピュ
ータ40は、普通、接続管理に責任を取ることに留意さ
れたい)。 〇アドレススペース保護。 Gizaはデータを一つのアドレススペースから他のアドレ
ススペースへ転送する。このプロセスにおいては、Giza
およびそのDMAのみが両アドレスを知る。通信してい
るパートナーのいずれも、他のパートナーのスペースの
アドレスを知らない。かくして、いずれのパートナーも
偶発的に他のスペースにアドレスできない。 〇タイミングの非被害性 Gizaはデータドリブンプログラミングを支配するルール
にしたがって設計されているから、タイミングバグによ
り害を受けない。Giza動作に対する競争状態はなく、機
能ユニット速度に問題を引き起こすような変化を生じさ
せる機会もない。各機能ユニットは、例えば独立に作用
する。 〇直接的割込みの指令 Gizaは、開発者に対して、送信または受信される各メッ
セージに使用されるべき割込み処理手続きを特定する能
力を提示する。この割込みルーチンは、判断トリーを横
切ることを要せずに直接請求される。 〇グラウンドレベル割込みバッチ処理 Gizaは、開発者に、例えばスケジューラがランすると
き、またはストリームスサービスルーチンがランすると
き、割込みをグラウンドレベルでバッチで到来せしめる
ことについての選択を与える。これは、グラウンドレベ
ルでなされるべき仕事に単に待ち行列を作る割込みコー
ドのオーバーヘッドを排除する。
ジを送信および受信するための手続きは、一つの機能ユ
ニットに、処理のため他側に送信されるべきデータを用
意すべきことを、また他側に必要に応じてデータを受信
し処理するように用意すべきことを要求する。データ
は、Gizaメッセージの一部として、二つの機能ユニット
間を番号付きGizaチャンネルを介して通される。
は、メッセージを送信および受信するためソフトウェア
リングを使用する。MDBは、命令(すなわちto Giza
)FIFO15,20によりGizaに提示され、応答(すな
わちfrom Giza )リング上で帰還受信される。各側は、
多数の応答リングを有してよいが、命令リングは唯一つ
である。データを送信する側は、データに対するポイン
タを含むMDBをその命令リングに送り、受信側は、バ
ッファに対するポインタを特定するMDBをその命令リ
ングに送る。
介して行なわれる。これらのチャンネル番号は、個々の
Gizaエンジンのみに適用される。メッセージまたはバッ
ファに対するMDBがGizaに提示されるとき、MDBは
そのことが意図されるチャンネル番号を含む。MDB をGi
zaに提示するライブラリーコール(giza submit()) は特
定のGizaエンジンを含むバックプレインスロットの番号
が与えられる。各Gizaエンジン上の低番号付きチャンネ
ル(ここでは、チャンネル1ないし7)は、予め割り当
てられた機能に対して逆転される。また、特定のGizaエ
ンジンと関連する各I/O アダプタカードは、逆転された
予定されたチャンネルを有する(ここでは、チャンネル
8ないし119)。
から他の機能ユニットに供給される。 1.機能ユニットAが、出メッセージについて記述しか
つすでに開かれたチャンネルを特定するMDBをGizaに
供給する。 2.機能ユニットBは、メッセージを受信するためのバ
ッファを記述しかつ機能ユニットAと同じチャンネルを
特定するMDBをGizaに提示する。 注:最初の2つの段階は、いずれの順序でも起こり得
る。また、両側に複数のエントリを作り、それらがパー
トナーMDBが現われるまで待行列化されるすることも
できる。 3.両機能ユニットがMDBを供給してしまうと、Giza
はAからBへデータ転送を遂行し、各MDBに完了状態
を記す。 4.機能ユニットAは、Gizaから戻るそのMDBを受信
し、メッセージが特定のチャンネルを介してうまく転送
されたことを確認する。 5.機能ユニットBは、メッセージが特定のチャンネル
を介してうまく到着したことの確認で、Gizaから帰るそ
のMDBを受信する。
デバイスを遠隔サブルーチンまたはパイプラインとして
想像できる。
デルを示しており、I/O ドライバは、そのパートナーに
メッセージを送り、応答を得て、処理を継続する(サブ
ルーチンからの復帰であるかのように)。
である。パイプラインモデルにおいては、I/O ドライバ
コード送信メッセージ部分は、例えば、エンジンにメッ
セージを提示する。しかし、その後応答を待つ必要はな
く、何か他のことを行い続ける(例えば、他のメッセー
ジをエンジンに提示する)。
なわち、Gizaエンジンは、パイプライン内の1ブロック
と見ることができる。GizaはMDBを取り、それらを保
持し(他の機能ユニットからの整合するMDBが存在す
るまで)あるいはそれらを整合するMDBと対にし、転
送を行なう。究極的に、Gizaエンジンは、MDBを、ド
ライバコードの最初の部分と恐らく関係のないドライバ
ーコードの他の部分に戻す(例えば、受信コードは、単
にMDBおよびバッファをそのドライバに対するフリー
プールに戻してもよかろう)。同様に、受信側では、Gi
zaにMDBを与えるコードは、単に解放されたバッファ
を取り扱うに過ぎない。 充填されたバッファを受信す
るコードは、新しいメッセージを、それらを担持するた
めに提供されたバッファについて懸念することなく、新
しいメッセージとして処理できる。メッセージ記述子ブ
ロックは、ホストデバイス、周辺デバイスおよびGiza間
において転送される信号を表わす。それらの構造は重要
であり、以下の如くである。
これは下記の情報をGizaに提供する構造である。すなわ
ち、 〇送信側では、メッセージの記述、受信側では、メッセ
ージを受信するバッファの記述。 〇制御情報、例えばGizaチャンネル番号。 〇状態情報、例えば実際に転送されるバイト数。 〇割込み指示(ベクトング)、コールバックルーチンア
ドレスの形式。
メータではない。一度Gizaに提示されるとGizaエンジン
の性質となり、それが戻されるまで(完了またはチャン
ネルフラッシュの際)その性質を留めるメモリブロック
である。1より多いMDBを提示すると、Gizaエンジン
はMDB中の筋道をランし、各仮想チャンネルに対する
連結リストにおいてそれらを待ち行列化する。
グメントを有するが、開発者は、所望に応じてメッセー
ジのデータ部分を構成し得る。例えば、各々異なる長さ
を有し、各々複数のセグメントより成る複数の(マル
チ)ブロックを有するように(拡散−収集DMA動作の
ため)。
ージは、特定の問題を処理する実現可能な方法である。
例えば、ホスト側は、ディスクに4096バイトページのデ
ータを書き込むことを望むものと仮定する。データを核
からIOAに移すため、ホスト側は、2つの単一セグメ
ントブロック(書込み命令に対して一つの16バイトブロ
ック、およびデータに対して一つの4096バイトブロッ
ク)を有するMDBを提示する。
るかを知ることはできないから、2ブロックを有するバ
ッファを記述するMDBを提示し(命令に対して一つの
128バイトブロックおよび二つの2048バイトセグメント
を有する第2のブロック)到着するデータを保持する。
イトブロックのデータに過ぎないから、IOA側におい
ては、単に16バイトしか128 バイトバッファに挿入され
ない。残りは未使用のままの残り、4096バイトのデータ
が二つの2048バイトセグメントを満たす。
ダ、ブロックヘッダ、セグメントヘッダ、フィールド記
述子およびデータバッファより成る。下記は、これらの
要素をさらに詳細に記述するものである。 MDBの構成 例示の実施例において、MDBは、ヘッダ(sys mdb hea
der またはioa mdb-header) 、1または複数のブロック
ヘッダ(block header) 、および各ブロックに対する1
または複数のセグメントヘッダ(sys block segmentまた
はioa block segment )。
およびIOA側間において異なる。これは、物理的ポイ
ンタがこれらの2機能ユニット間において異なるサイズ
より成ることにもよる。
(データ構造を記述するためCプログラミング言語フォ
ーマットを使用)。
のヘッダ情報を提供する。
ドを充填する。フィールドの記述 Callback データが転送された後にMDBが戻るとき呼ばれるルー
チンのアドレス。 virt next link 1以上のMDBを提示する場合の次のMDBの仮想アド
レス。そうでない場合はNull。 MDB length ホスト側における全MDBのバイト長さ。これは、MD
Bヘッダならびにブロックおよびセグメントヘッダを含
む。 channel ID MDBが送られるGizaチャンネル番号。 control 下記はMDBヘッダコントロールフィールドに対する値
である。 #define RECEIVE 0x00/*Receiv/ MDB */ #define SEND 0x01 /* Send MDB */ return ring index このMDBが戻る応答リングのインデックス number of blocks ブロックヘッダの数。 message status Gizaエンジンはこのフィルタを充たす。可能な値は下記
に示される。
えホストおよびIOA側とも同じである。下記はブロッ
クヘッダの構造を示す。
ヘッダ情報を提供する。 ○status ○block control ○number segments
checksumを累積する。フィールドの記述 block header.status ブロック状態フィールドに対する値は下記に示される。
定める。すなわち ○append checksum ○check checksum ○gen checksum
信装置からappended checksum を有するデータを得るこ
とを予期する。そうでなければ、checksumエラーが発生
される。
両側に対してデータブロックの終了にてchecksumを提供
する。二つのMDBがなおエンジン内にある間に、エン
ジンは両checksumが整合することを保証する。もしそう
でなければ、checksumエラーが発生される。
用されない。 block header.number segments セグメントヘッダの番号。 block header.block checksum checksumが使用される場合、これは0でなければなら
ぬ。
異なる。これは物理的なアドレス長が異なるからであ
る。下記はホスト側セグメント記述子を示す。
情報を提供する。 ○sys block segment.address ○sys block segment.seg length
gment.length moved).フィールドの記述 sys block segment.address データバッファの物理的アドレス。 sys block segment.seg length データのバイト長。 sys block segment.length moved 実際に移動されるデータのバイト長。
れるようなサンプルMDBを表わす。サンプルMDB 下記はサンプルMDBを示す。
コードは、MDBをGizaに提示する。これは、MDBお
よびその記述されるメッセージの(を変更する許可の)
所有権が、取り決めにより、機能ユニットからGizaデバ
イス与えられることを意味する。GizaはこれらのMDB
を使用して、メッセージの転送を制御し、そしてこの転
送の完了の際、MDBの所有権をそれを提示した機能ユ
ニットに戻す。その機能ユニットは、ついでGizaからか
かるMDBを回収する。下記は、これらの提示および回
収走査と関連するライブラリルーチンおよびデータ構造
を表わす。
簡単に記述する。すなわち、 ○GizaにMDBを提示するためのもの。 ○GizaからMDFを回収するためのもの。
ており、そしてこれはto giza リングを経て単一のMD
BまたはMDBのリストをGizaエンジンに提示すること
を可能にする。
そうとすると、to giza リングはまずロックされる。つ
いで、提示中の機能ユニットがアドレス対応を有する
と、各MDBに対する物理的アドレスが計算され、to g
iza リングがMDBの全非破壊リストを受け取る。Giza
は、MDBを順に、すなわちリストの頂部から底部間で
処理し、ここでvirt next リンクはNullとなる。Gizaエ
ンジンは使用される仮想の次のポインタの間に書き込む
ことができるから、このリストは一次的である。
リルーチンおよびマクロス Gizaライブラリは応答リングをチェックしMDBを回収
するための多数のルーチンを有する。すなわち、
チンは、MDBの指示された応答リングを空にし、それ
らの各々に対しコールバックエントリを呼ぶ。
ubmit が拒絶するMDBを回収することを除き、giza d
rain response ringと同様である。何故ならば、これら
は重要なフォーマットだからである。
期的に呼ばれ、アクティブ応答リングに対してポインタ
配列を更新する。ついで、その配列は、giza drain arr
ayマクロを使用して走査して、任意のMDBを放出で
き、あるいはgiza drain test マクロを使用して走査し
て、応答レスポンスリングが任意の未解決のMDBを有
するか否かを試験できる。
ーチンを記述するものである。ルーチンはアルファベッ
ト順にリストしてある。
za command ring control **rrcpp) 記述 giza prep scan() ライブラリルーチンは、周期的に呼
ばれ、アクティブな応答リングに対するポインタ配列を
更新する。この配列は、ついで、giza drain arrayまた
はgiza drain test macrosを使用して走査できる。rnum
はリング番号である。 rrcpp は、giza prep scan()
により充填されるべきリングポインタ配列である。機能
復帰は、配列rrcpp に見出され装入されているリングの
番号である。
submit が拒絶するMDBを回収する。それらは適正に
ホーマットされていないからである。ホスト側では、こ
れは、未解決の復帰をチェックするため種々の場所、す
なわちスケジューラ、割り込みルーチン、Qrun等から呼
ばれる。
response ring control *ringp);記述 giza drain response ring()ライブラリルーチンは、M
DBの指示された応答リングを空にし、それらの各々に
対するコールバックエントリを呼ぶ。普通、これはgiza
drain array macroからのみ呼ばれる。
わちマルチプルCPUシステムにおいては、もし一つの
CPUがロックされたリングからMDBを除去すること
を開始すると、CPUは、リングが空になるまで全MD
Bを除去する。これは、MDBの逐次の除去およびコー
ルバックの逐次の処理を保証する。
(例えば、コールバックがMDBを山に戻すに過ぎなけ
れば)応答リングはフラグunlocked callback==1を有し
てよい。この選択の場合、リング上のロックはコールバ
ック中解放され、複数機能ユニットにより同時にアンロ
ーディングすることを可能にする。このオプションは、
メッセージ順序が重要でない場合コールバックのために
使用される。
p);記述 giza submit() ライブラリルーチンは、MDBを命令(t
o giza) リングに提示する。この呼びをなしつつあるよ
うな複数の機能ユニットがあると、命令(to giza) リン
グがまずロックされる。ついで、提示中の機能ユニット
がアドレス対応を有すると、各MDBに対する物理的ア
ドレスが計算される。第1のMDBはto giza リング上
におかれ、後続のMDBは1時に一つずつそのリングに
追加される。
DBは、それらを所与のMDBの仮想の次のポインタ(m
dbp->virt next link)に渡すことによって提示される。
MDBは順に、すなわちリストの頂部(mdbp)から底部に
向かって処理され、そしてここでvirt next linkはNULL
となる。このリストは、一次的と仮定されるべきであ
る。Gizaエンジンは、使用される仮想の次のポインタの
間に書き込んでも書き込まなくてもよい。
の両者は、MDBをgiza submit を経てGizaに提示す
る。
to giza リングは、機能ユニットがGizaエンジンに渡す
MDBを保持する。Gizaエンジンは、MDBヲ受け取る
順序で処理する。
ントローラは、MDBを同じ整数のチャンネル番号と整
合させようとする。下記の論述は、図2の仮想チャンネ
ル要素に関係する。
整数である。高次の8ビットは、使用されるGizaエンジ
ン(すなわちIOPバックパネルスロット)を特定して
いる。残りの24ビットは、接続管理装置により割り当
てられるGizaテーブルインデックスであり、そしてこれ
はGiza整合テーブルへの書込みアクセスできる。現在、
接続管理装置は、Gizaエンジンを実施するコントローラ
盤(例えばIOP) 上でランする。
予め割り当てられた機能のために保留ないし予約され
る。例示の実施例において、IOPに対して8チャンネ
ル(0....7)が保留され、各JOAに対して8チャンネル
(8----119、IOPごとに14のIOAがあるから)が
保留される。 予め定義されたIOAおよびIOPチャンネル
あらかじめ定義されたチャンネルの利用状態をまとめた
ものである。
義されたチャンネルが解放され、解放状態に維持され
る。すべての予め定められたチャンネルは、単一のブロ
ックチャンネルを搬送し、各チャンネル作用するコード
がメッセージの最大ブロック寸法を定める。
ジプロトコルは、なお定義されているべきである。目的
は、おそらく単にシステムエラーメッセージを送って、
これらのチャンネルをシステムとの通信状態におくこと
である。
に存するデバッガに対する標準の一組のデバッガプリミ
ティブに対して予約される。これらのでバッガは下記の
事項をなすように設計される。 ○ブレークポイントをセットおよびクリヤ ○IOAメモリを読み取り/書き込み。 ○ブレーク時点にレジスタを読み取り/書き込み。 ○コードを通って一段進む。 ○ブレークポイントから継続。 ○マッピングレジスタを読み取り/書き込み。
めに使用される。 ○チャンネル解放 ○チャンネル閉鎖 ○チャンネルフラッシング ○チャンネル再開 ○チャンネル切断
6および7はドライバ特定チャンネルであり、これは下
記の任意のものに使用できる。 ○ファームウェア構造 ○統計値収集 ○新チャンネル番号を通信 ○チャンネルクリーンアップ ○優先メッセージ
診断(MおよびD)チャンネルである。
みを使用することに限定されない。すなわち、任意数の
追加の単一方向チャンネルを各IOAに対して創成でき
る。ドライバコードを書き込む開発者は、これらの追加
のチャンネルについて必要とされる機能可能性を決定す
る。例えば、開発者は、これはIOAに接続される各物
理的ラインに対してチャンネル対が創成されることを必
要とするIOAドライバを書き込むかもしれない。他の
ものは、単一チャンネルつい、および多重ラインに対す
る多重メッセージを選択するかもしれない。また、他の
ものは、IOAにアクセスする各VOSポートまたはF
TX流に対して一つのチャンネル対を創成するかもしれ
ない。
つにあり得る。下記のライブラリルーチンおよび手続き
は、図2の仮想チャンネル要素および図10の状態線図
に関係する。
するものである。節の前半は、チャンネル操作の梗概を
一般的に示し、後半は、関係するライブラリルーチンに
ついて詳細に論述するものである。
数チャンネル番号は特定のGizaエンジンにのみ適用され
る。すなわち、システムには特定のGizaエンジン形式の
1以上の盤があり得るから、各Gizaエンジンはそれ自体
のリング記述子を有する。前チャンネルIDは32ビッ
ト整数である。高次の8ビットは、使用されているGiza
エンジン(すなわちIOPバックパネルスロット)を特
定する。残りの24ビットは、接続管理装置により割り
当てられるGizaテーブルインデックスである。これはGi
za整合テーブルに書込みアクセスし得る。ここでは、接
続管理装置は、Gizaエンジンを実施するコントローラ盤
(例えばIOP)上でランする。
の創成、フラッシング、再開および閉鎖)についての梗
概である。図10は、発呼側(すなわち送信側)からGi
zaチャンネルの状態を示す図である。
ンネルは4状態、すなわち閉鎖、開放、フラッシングま
たは半閉鎖の一つの状態にあり得る。
ライブラリルーチンを使用して新しいGizaチャンネルを
創成する潜在性を有する。
イバ)は下記のものを特定する。 〇所望されるチャンネルの方向 〇チャンネルの他端における機能ユニット 〇雑多な形態情報。 ライブラリルーチンは整数チャンネル番号を戻す。
が処理されなかったMDBを回収する。Gizaチャンネル
の各側にあるドライバは、チャンネルのその側のフラッ
シングを強制し得る。これは、使用者のI/O 打切り(ア
ボート)要求の結果としてあるいはチャンネルを閉鎖す
る準備として起こり得る。チャンネルをフラッシングす
るためには、giza flush()ライブラリルーチンが使用さ
れる。このルーチンは、要求を接続管理装置に送り、そ
してこの装置がチャンネルをフラッシングとしてマーク
し、そのチャンネルに対してGizaエンジンにおいて現在
待ち行列化されているMDBを戻す。戻されたMDBは
エラービットでマークされる(フラッシュング)。
とを保証するために、要求装置は、MDBの計数値を維
持するか、「トレーサビュレットMDB」をチャンネル
に沿って送る。トレーサは、チャンネルが完全にフラッ
シングされたときに戻る。何故ならば、MDBは、それ
らが通常のデータ伝送、エラーまたはフラッシングによ
り完了されるにせよ、それらが提示されたのと同じ順序
で戻されるからである。
作を単に打ち切ることを意図してチャンネルをフラッシ
ングする。チャンネルが閉鎖されるべきでないと、チャ
ンネルは、それが再度使用できる前に、動作を再開する
ようになされねばならない。そうでないと、すべての後
続のMDBは、「フラッシュド」とマークされて戻され
る。Giza resume() ライブラリ機能は、接続管理装置に
メッセージを送り、そしてこの装置が、そのチャンネル
のもはやフラシングしていない側をマークする。
二つの方法がある。すなわち、 〇通常の規則正しい方法 〇由々しいエラー条件が存在する状況において
し、以下の分節で、由々しいエラー条件に遭遇したチャ
ンネルの切断について論述する。
イバは、その対の機能ユニットに、意図されるチャンネ
ルを閉鎖すべきことを報知する。そのとき、各機能ユニ
ットはそのチャンネルをフラッシングする。フラッシン
グ遂行されると、各サイドは、チャンネルを閉鎖するた
めgiza close()ライブラリルーチンを呼ぶ。これによ
り、接続管理装置にメッセージが送られ、問題のチャン
ネルの発呼側を閉鎖する。そのチャンネルは、その側上
のみ「閉鎖」とマークされる。チャンネルが両側上にお
いて「閉鎖」とマークされると、チャンネルは、再使用
のためチャンネルの自由プールに戻される。
滅されるべき場合(ドライバが関係する限りにおい
て)、そのドライバは、giza disconnect() ライブラリ
ルーチンを使用することによりチャンネルを閉鎖せしめ
ることができる。このルーチンは、接続管理装置にメッ
セージを送り、チャンネルの両側が直ちに閉鎖されるべ
きことを要求する。要求中の機能ユニットは、チャンネ
ルのその側を先ずフラッシングすべきであるが、それは
必要ではない。
セットライブラリルーチンを簡単に叙述する。
のためのパラメータ 基本的チャンネル操作ライブラリルーチンの全てが、gi
za connectが以下の入力から提供するところのチャンネ
ル番号識別子(channel number)を受け取る。
スロット番号とIOA のスロット番号とを具備する構造で
ある。
るtransfer type パラメータは生成されるチャンネルの
タイプを叙述する。それは以下のタイプのうちの一つが
可能である。
ルのチャンネル定義部に記録されそして図示の実施例に
おいて、そのチャンネルのために受け入れられるMDB を
限定するのに使用される(すなわち、それらはチャンネ
ルが解放されたとき指示されたブロックの番号を正確に
有さなければならない)。
ンネル上でのフラッシュ動作、閉鎖動作、再開動作の際
に、write bit パラメータの設定が、チャンネルの書込
み側( 非ゼロ)または読取り側(0)のいずれが影響さ
れるかどうかを指示する。giza connectライブラリルー
チンもgiza disconnect ライブラリルーチンのいずれも
write bit パラメータを使用しない。
何らのメモリ割当てもない代替えルーチンを有する。こ
れら代替えライブラリルーチンを以下に示す。
は以下の理由のために使用可能である。
れた自由記憶域を有するシステム)もし発呼側が中断不
可能であればその理由(付属せられる何らのプロセスも
有さない、たとえば、Gizaコールバックにおいてストリ
ームモジュールの中断レベルにある場合など)
いうパラメータに加ええて、NAL ルーチンは2つのMDB
をコネクション管理部チャンネルへ報知する。一つは所
定のリクエスト(すなわち、接続、閉路、フラッシュ、
再開、または切断すること)を送るためのものであり、
一つはリクエストが成功裡に完了されたという応答を受
け取る(またはもし不成功であればエラーを受け取る)
ためのものである。giza connect nalライブラリルーチ
ンは以下に示されるgiza connect msgを使用する。
しまたは切離すための残余のルーチンは、以下のother
rpc msg を使用する。
g と一緒に送られる接続管理部メッセージのペアからの
VOS エラーコード抽出に使用される。これらのマクロは
以下に示すCONMAN ERRおよびNEW CHANである。
に示されるように種々のステータスで存在することがで
きる。以下は、これら種々の状態がそれによりnal 形式
において影響せられ得るところの態様に関係する。
リールーチンと同様、チャンネルを閉じる。発呼側はも
はやMDBを所定のチャンネルに呈示しないことを約束
する。両方の側が、指示チャンネルが閉じたことを宣言
するときだけ、それは本当にチャンネルの自由プールに
戻される。
にd idp により指示されるごとく新規なチャンネル(Gi
zaエンジンの新規な整合テーブルエントリ)割り付けそ
してこれを初期化することをリクエストする。このルー
チンの使用者ががNEW CHAN(mdpb)マクロを使用し、結果
を、コールバックでgiza connect msgから戻される。
ば、IOA が消滅するときなどの)緊急使用のためだけで
ある。それはホストまたはIOA側のいずれかから発行
できる。しかし、発行されるとき、channel numberパラ
メータにより識別されるチャンネルを強制し、同時に両
方の側をフラッシュしそして閉じる。
h()ライブラリコードへの代替え機構である。I/O
アボートの部分として使用されるかまたはチャンネルを
閉じるのに備え、それはチャンネルをフラッシュし、発
呼側のいずれのペンディングMDB をも発呼側へ戻される
よう強制する。すべてのMDB がそれらが呈示された順序
で戻る。もしチャンネルがフラッシュできなければ、sy
serrメッセージが発生されそして記録される。
()への代替え機構であり、チャンネルを動作へと戻
す。
す)前に一般にフラッシュされる。ところで、チャンネ
ルの使用もまた一時的に中断され、たとえばI/Oアボ
ートなどの部分として報知MDBをフラッシュおよび検
索する。ひとたび報知MDBが検索されると、ドライバ
は、giza resume( )ライブラリルーチンを呼び出すこと
により依然として解放しているチャンネルを使用し再開
できる。
機構である。このコールで、発呼側はもはやMDBを所
定チャンネルに送信しないことを約束する。両方が指定
チャンネルが閉じたことを宣言するときだけ、それは本
当にチャンネルの自由プールへ戻される。
ル(Gizaエンジンの新規な整合テーブルエントリ)を割
り付けそしてこれを初期化する。
号およびIO A スロット番号からなる構造 typedef structure { char slot level; /*IOP slot */ char device level; /*IOA slot */ char pad[6]; } device id; transfer type 接続の間、永続的であり、それは生成されるチャ ンネルのタイプを叙述する。それは以下のタイプの うちの一つとすることができる。 # define SEND 0 # define RECEIVE 1 number of blocks チャンネルを定義しそしてこれを限定する。 ────────────────────────────────────
r *sc ); ────────────────────────────────────
ば、IOAが消滅したときなど)緊急使用のためだけで
ある。それはホストまたはIOA側のいずれかから発行
できる。しかし、発行されるとき、channel numberパラ
メータにより識別されるチャンネルを両側で同時にフラ
ッシュしそして閉じるよう強制する。
の部分としてまたはチャンネルを閉じる準備をするのに
使用される。それはチャンネルをフラッシュし、発呼側
のいずれのペンディングMDBも発呼側へ戻されるよう
強制する。全てのMDBはそれらが呈示された順序で戻
る。もしチャンネルがフラッシュできなければ、システ
ムエラーが発生されそして記録される。
フラッシュされる。ところで、チャンネルの使用もまた
一時的に中断され、たとえばI/Oアボートなどの部分
として報知MDBをフラッシュおよび検索する。ひとた
び報知MDBが検索されると、ドライバは、giza resum
e( )ライブラリルーチンを呼び出すことにより依然とし
て解放されているチャンネルを使用し再開できる。
トウエアリング(応答リング)を介して戻される。以下
は図2に図示されるごとく戻りFIFO要素に関係する。
から核(カーネル)またはIOA ファームウエアへ戻るMD
B ポインタのため一時的にFIFOを保持する。あらゆるホ
ストおよびIOA がそれに関連付けられる少くともfrom g
iza リングを有する。ところで、コード設計の際の融通
性を提供するために、たいていの機能ユニットが、そこ
から選択するところの2つ以上の応答リングを有する。
これは種々のMDBの種別に適合する。たとえば、ある
応用ができるだけ最小限の待ち時間でMDBを要求しそ
して(たとえばイーサネットパケットのACK など)の中
断レベルでそれらを取扱うのを選択するかもしれない。
代替え例として、ある応用が待ち時間ではなくCPUの
使用をできるだけ最小限にし、それゆえ、(たとえばポ
ーリングループなどから)バックグラウンドでMDBコ
ールバックを処理したいかも知れない。
ールバックがリング上で発生するのと同じ順序で完了さ
れることを保証したいと欲するのであれば、これらコー
ルバックを行っている間、リングを一つのプロセッサに
ロックすることが必要である。このロック動作はコール
バックプロセッシングを一度に一つのCPUへ限定す
る。それゆえ、ロックされないリングを有することは一
つのオプションであり、多数のCPUがコールバックを
同時に処理するのを許容する。これらは順序が重要でな
いところのMDBについてだけ使用される。デフォルト
により、順序が重要であると仮定されそれゆえロックさ
れるリングは正規のケースであると仮定される。
グと関連付けられる2つのカテゴリの属性、一方の属性
はMDB が空き応答リングに置かれるときに中断が発生さ
れるかどうかを決定しそして他方は応答リングがロック
されるかどうかを決定する。
めに選択される一組のリングを示す。現在計画されてい
るごとく、いずれのシステムでも使用されるようになる
ここに定義されるリングよりも多くのリングがある。
ある。 1)MDBがそこにおかれたときに機能ユニットで中断
を生ずるようフラッグ処理される中断リング(それは以
前に空き状態であったと仮定する) 2)機能ユニットが(たとえばメインループ、スケジュ
ーラコード、カーネル出口で)頻繁にポールするところ
のポールリング 3)標準的にはポールされないが、特別の状況でポール
され得るカスタムポールリング。カスタムポールリング
がテストプログラムのためだけにまたはCPUのPRO
Mによりそしてシステム停止の状況でデバッガにおいて
使用され得る。
を決定する。ロックリングは複数CPUがそれに同時に
サービスを提供するのを許容しない。これはデフォルト
であり、そしてメッセージの順序が重要でありそして複
数のCPUが同時に同様のリングにサービスを提供しよ
うとするかもしれないときに要求される。ロックされな
いリングは、MDBの順序が重要でないとき、たとえ
ば、あるMDBがそれを自由リングへ戻す以外なにもし
ないときだけ使用されるのが好ましい。
ーはI/Oエラーにではなくブロック供給に関係する。
I/Oエラーがデバイスアダプタからもとのドライバへ
と正規Gizaメッセージを通じて報告される。Gizaエラー
は以下のものを含む。 1)チェックサムエラー 2)宛て先機能ユニットの消滅(death) 3)ブロックのオーバラン 4)不存在メモリアドレス 5)不存在Gizaチャンネル 6)ページの境界を横切る試み
ずるとき、メッセージは供給されず、そしてドライバ書
込み部がいずれのペンディングMDBをどのように取扱
うかを決定する必要がある。転送の相手方が両方とも等
しくエラー報告を受ける。
機能ユニットのドライバコードは使用されているいずれ
のチャンネルをも切離すことにより消去されねばならな
い。消滅の検出は、もし転送が企図されていたならばGI
ZAエラーを通じて生じそしてGIZAエンジンはもはや機能
ユニットが存在しないことを発見する。代わりに、通信
機能ユニットが周期的に「私は存在している、あなたは
どう?」というコントロールメッセージを互いに送信
し、妥当な時間長さ(数秒から数分)におけるかかるメ
ッセージのないことにより検出されることが推奨され
る。
ネルは自動的に閉じられる。なぜなら、それらはGIZAエ
ンジンに属するからである。GIZAエンジンの消滅を検出
するM&Dプロセスはライブラリルーチンremove giza
ring db を呼び出し、GIZAエンジンのGIZAリングを除去
した後GIZAエンジンにより所有される全てのMDBを戻
す。これらが戻される間何らのMDBも呈示できない。
能にとって重要である。結果的に、リングを初期化およ
び発生するコードが存在しなければならない。それゆ
え、以下はソフトウエアリングの発生および破壊に関係
する。この欄は、Gizaリングを初期化および除去するの
に使用される以下のライブラリルーチンを叙述する。 ■ init giza ring db ■ remove giza ring db remove giza ring db(short *iop slot、 short *simple
xed)
ンはスロットiop slotでGIZAエンジンのための一組のリ
ングを割当ておよび初期化する。それはポインタをリン
グディスクリプタデータ構造へ戻す。「シンプレックス
化」されるパラメータは、もし初期化されるGIZAエンジ
ンが(デュプレックス化されるペアであること(これは
Stratus のハードウエアのために設計されている)また
は単独ランするデュプレックス化ペアの半分であること
と対照的に)内在的にシンプレックス化されるのであれ
ば、非ゼロとすべきである。 sys giza db *init giza ring db( short *iop slot、 s
hort *simplexed )
用し、iop slotのIOPのためにGIZAリングを初期化す
る。それはポインタをリングディスクリプタへ戻す。シ
ンプレックス化されるパラメータは、もし初期化される
IOP が(それがデュプレックス化ペアの部分であること
が企図されるとき単独でランするのと対照的に)内在的
にシンプレックス化されるのであれば、非ゼロへ戻るべ
きである。
を転送するための新規なシステム(方法および装置の両
方)について説明した。システムは、幅広く、2つの機
能ユニット(たとえば、ホストプロセッシング部および
周辺装置)およびそれらの間で情報を転送するためのコ
ントローラを有するディジタルデータ処理装置を含む。
第1の機能ユニットが、データがそこから転送されると
ころの関連の局部メモリ中の一つまたはそれ以上のアド
レスを指示する送信メッセージディスクリプタブロック
(MDB)信号を発生する。第2の機能ユニットが、デ
ータがそこへ転送されるところのその関連の局部メモリ
中の一つまたはそれ以上の場所を指示する受信メッセー
ジディスクリプタブロック(MDB)信号を発生する。
コントローラは、送信および受信MDB信号、特に同じ
ものを指示するもの、を整合する。
ッシング機能ユニット間の情報の改善された転送を提供
する。それは、たとえば周辺装置などの機能ユニットへ
のデータの迅速な転送を助長しそして付随するソフトウ
エアおよびハードウエア機構の複雑さをできるだけ最小
限にする改善された入力/出力制御を提供するのに使用
できる。特に、システムはタイミングエラーからの改善
された免疫性を提供する。
脱することなく種々の変更及びおよび修正が可能である
ことは明らかであろう。これらの修正および変更は請求
の範囲に記載の本発明の技術思想内に包摂されるべきも
のである。
ィジタルデータ処理装置の模式図である。
式図である。
の概念図である。
造的な概観図である。
用する遠隔入/出力ドライバの構成で使用するための遠
隔サブルーチンモデルを図示する概念図である。
用する遠隔入/出力ドライバの構成で使用するための遠
隔サブルーチンモデルを図示する概念図である。
用する遠隔入/出力ドライバの構成で使用するための遠
隔サブルーチンモデルを図示する概念図である。
用する遠隔入/出力ドライバの構成で使用するためのパ
イプラインモデルを図示する概念図である。
用されるあらかじめ定められるチャンネルを図示する模
式図である。
使用されるチャンネルの状態を図示する模式図である。
Claims (24)
- 【請求項1】 少なくとも第1および第2の機能ユニッ
トを有し、その各々が、アドレス可能な位置にデータを
記憶するための関連するメモリ手段を備え、該各メモリ
手段が、読取りモードにおいて、加えられるアドレス信
号に応答して、かかるアドレス信号により特定される位
置に記憶されるデータを表わすデータ信号を発生し、書
込みモードにおいて、加えられるアドレスおよびデータ
信号に応答して、かかるアドレス信号により特定される
位置にかかるデータ信号により特定されるデータを記憶
し、そして前記第1および第2機能ユニットに結合され
て両者間においてデータを転送するためのコントローラ
手段を備える形式のディジタルデータ処理装置におい
て、 A.前記第1機能ユニットが、データが転送送出される
べき関連するメモリ手段内の1または複数のアドレスを
特定するMDB送信信号を発生して前記コントローラに
転送するための送信手段(センダ)を備え、 前記第2機能ユニットが、データが転送されるべき関連
するメモリ手段内の1または複数のアドレスを特定する
MDB受信信号を発生して前記コントローラに転送する
ための送信手段(レシーバ)を備え、 B.前記コントローラ手段が、前記送信手段および受信
手段に結合されたMDB整合手段であって、前記MDB
送信信号の少なくとも選択された一つの信号を前記MD
B受信信号の選択された一つの信号に整合させ、整合中
のMDB信号により特定される前記第1および第2機能
ユニットのメモリ手段の対応する位置間においてデータ
の転送を実行するための信号を発生するMDB整合手段
を備え、 C.前記コントローラ手段が、前記MDB整合手段およ
び前記第1および第2機能ユニットのメモリ手段に結合
されたデータ転送手段であって、前記転送実行信号に応
答して、 i)前記第1機能ユニットのメモリ手段に、前記MDB送
信信号内に特定されるアドレスを表わすアドレス信号を
供給し、そのアドレス信号の供給に応答して該メモリ手
段からそれにより発生されるデータ信号を受信し、 ii) これらのデータ信号を前記第2機能ユニットのメモ
リ手段に、前記MDB受信信号に特定されるアドレスを
表わすアドレス信号とともに供給することを特徴とする
ディジタルデータ処理装置。 - 【請求項2】 前記第1および第2機能ユニットの少な
くとも一つが、整合の受信中1または複数のMDB信号
を記憶するためのFIFO命令手段を備える請求項1記載の
ディジタルデータ処理装置。 - 【請求項3】 前記各FIFO命令手段が、MDB信号が、
それらがそのFIFO命令手段により受信された順序でアク
セスされ得るように、前記のそれぞれのMDB信号を記
憶するための手段を備える請求項2記載のディジタルデ
ータ処理装置。 - 【請求項4】 前記MDB整合手段が、前記第1および
第2機能ユニットにより発生されるMDB信号を複数の
仮想チャンネルに沿って整合させるための仮想チャンネ
ル手段を備える請求項1記載のディジタルデータ処理装
置。 - 【請求項5】 A.前記送信手段および前記受信手段の
各々が、前記整合が起こるべき仮想チャンネルを特定す
る仮想チャンネル番号を含むように、前記のそれぞれの
MDB送信信号およびMDB受信信号を発生するための
手段を備え、 B.前記仮想チャンネル手段が、同様の仮想チャンネル
番号を有するMDB送信およびMDB受信信号に応答し
て対応するデータの転送を実行する手段を備える請求項
4記載のディジタルデータ処理装置。 - 【請求項6】 前記仮想チャンネル手段が、次の少なく
とも一つを記憶する、すなわち、 A.同様の仮想チャンネル番号を有するMDB受信信号
の受信中MDB送信信号に対する少なくとも一つのポイ
ンタ、および B.同様の仮想チャンネル番号を有するMDB送信信号
の受信中MDB受信信号に対する少なくとも一つのポイ
ンタの少なくとも一つを記憶するための仮想チャンネル
メモリ手段を備える請求項5記載のディジタルデータ処
理装置。 - 【請求項7】 A.前記機能ユニットの少なくとも1つ
のが、仮想チャンネルの創成、フラッシング、閉鎖、切
断および再開の少なくとも一つを要求する信号を発生
し、コントローラに伝送するための手段を備え、 B.前記仮想チャンネル手段が、この信号に応答して、
選択された仮想チャンネルを選択的に創成し、フラッシ
ングし、閉鎖し、再開し、切断するための接続管理手段
を備える請求項4記載のディジタルデータ処理装置。 - 【請求項8】 A.前記送信手段および前記受信手段の
各々が、チャンネルフラッシングまたはチャンネル閉鎖
信号の少なくとも一つを発生するための手段を備え、 B.前記接続管理手段が、該チャンネルフラッシング信
号に応答して、下記の動作の少なくとも一つの動作、す
なわち、(i) 未解決のMDB信号の特定された仮想チャ
ンネルをクリヤし、(ii)未解決または途中のMDB信号
を、前記のそれぞれの第1および第2機能ユニットの発
信中のユニットに戻す動作の少なくとも一つの動作を遂
行するためのチャンネルフラッシング手段を備え、 C.前記接続管理手段が、前記チャンネル閉鎖信号に応
答して、特定された仮想チャンネルを、前記MDB送信
信号および前記MDB受信信号のいずれかの供給から隔
絶するためのチャンネル閉鎖手段を備える請求項7記載
のディジタルデータ処理装置。 - 【請求項9】 前記MDB整合手段が、前記コントロー
ラと、前記第1および第2機能ユニットの少なくとも1
つとの間で少なくとも信号を転送するための予め定義さ
れた仮想チャンネルを備える請求項4記載のディジタル
データ処理装置。 - 【請求項10】 前記MDB整合手段が、前記接続管理
手段と、前記第1および第2機能ユニットの少なくとも
一つとの間において接続管理動作およびそれに対する応
答の要求を表わす信号を2方向において転送するため
の、予め定義された1対のCONNECT MANAGER 仮想チャン
ネルを備える請求項9記載のディジタルデータ処理装
置。 - 【請求項11】 前記MDB整合手段が、前記コントロ
ーラ、前記第1機能ユニットおよび前記第2機能ユニッ
トのいずれか二つの間で、下記のいずれか一つ、すなわ
ち、(i) 通信トランザクションが行われるべき仮想チャ
ンネルを指示する信号、および(ii)制御および通信デー
タの少なくとも一つを転送するための、予め定義された
DRIVER CONTROL仮想チャンネルを備える請求項9記載の
ディジタルデータ処理装置。 - 【請求項12】前記MDB整合手段が、次の一つ、すな
わち、 A.前記コントローラ、前記第1機能ユニット、および
前記第2機能ユニットの少なくとも二つの間において診
断およびエラー信号の少なくとも一つを転送するための
予め定義されたMAINTENANCE およびDIAGNOSTC 仮想チャ
ンネル、および B.前記コントローラ、前記第1機能ユニット、および
前記第2機能ユニットの少なくとも二つの間においてデ
バッグ信号を転送するための予め定義されたDEBUGGER仮
想チャンネルの少なくとも一つを含む請求項9記載のデ
ィジタルデータ処理装置。 - 【請求項13】 前記コントローラが、データの転送の
完了に応答して、対応するMDB送信および受信信号を
前記第1および第2機能ユニットの対応するものに戻す
返送手段を備える請求項1記載のディジタルデータ処理
装置。 - 【請求項14】 前記第1および第2機能ユニットの少
なくとも一つが、前記データ転送の完了の際対応するM
DB信号を保持するための少なくとも一つのFIFO返送手
段を備える請求項1記載のディジタルデータ処理装置。 - 【請求項15】 前記の送信手段および前記受信手段の
各々が、前記のそれぞれのFIFO返送手段のいずれの一つ
にそれぞれのMDB信号が戻されるべきかを特定するFI
FO返送番号を含むように前記のそれぞれのMDB送信お
よび受信信号を発生するための手段を含む請求項14記
載のディジタルデータ処理装置。 - 【請求項16】 A.前記送信手段および前記受信手段
の少なくとも一つが、前記データ転送の完了の際実行さ
れるべき予定された動作を特定する信号を含むように、
前記MDB送信および受信信号の対応する信号を発生す
るための手段を備え、 B.前記の対応する第1および第2の機能ユニットが、
制御の復帰の際、前記の予め決定された動作を実行する
ためのコールバック手段を備える請求項13記載のディ
ジタルデータ処理装置。 - 【請求項17】 前記送信手段および受信手段の少なく
とも一つが、前記の予定された動作を、その予定された
動作を実行するためのプログラミング命令を指示するア
ドレスとして特定する前記信号を発生するための手段を
含む請求項16記載のディジタルデータ処理装置。 - 【請求項18】 A.前記送信手段が、少なくとも、デ
ータが転送送出されるべき関連するメモリ手段内の1ま
たはそれ以上のアドレスおよび0、1または複数の他の
データを含むMDB送信信号構造体を発生するための手
段を備え、 B.前記受信手段が、少なくとも、データが転送される
べき関連するメモリ手段内の1または複数のアドレスお
よび0、1またはそれ以上の他のデータを含むMDB受
信信号構造体を発生するための手段を備え、 C.前記送信および受信手段の各々が、前記MDB送信
および受信信号構造体の対応するものに対するポインタ
としてMDB信号を発生するための手段を備える請求項
1記載のディジタルデータ処理装置。 - 【請求項19】 前記返送手段が、要求されるデータ転
送の状態を指示する信号を含むように前記MDB送信お
よび受信信号をマークするための手段を含む請求項13
記載のディジタルデータ処理装置。 - 【請求項20】 前記FIFO返送手段が、MDB信号を表
す信号を記憶しかつその受信の際割込みを発生するため
のINTERRUPT バッファ手段を備える請求項13記載のデ
ィジタルデータ処理装置。 - 【請求項21】少なくとも第1および第2の機能ユニッ
トを有し、その各々が、アドレス可能な位置にデータを
記憶するための関連するメモリ手段を備え、該各メモリ
手段が、読取りモードにおいて、加えられるアドレス信
号に応答して、かかるアドレス信号により特定される位
置に記憶されるデータを表わすデータ信号を発生し、書
込みモードにおいて、加えられるアドレスおよびデータ
信号に応答して、かかるアドレス信号により特定される
位置にかかるデータ信号により特定されるデータを記憶
し、そして前記第1および第2機能ユニットに結合され
て両者間においてデータを転送するためのコントローラ
手段を備える形式のディジタルデータ処理装置を操作す
る方法において、 A.前記第1機能ユニット内において、データが転送送
出されるべき関連するメモリ手段内の1または複数のア
ドレスを特定するMDB送信信号を発生し、そのMDB
送信信号を前記コントローラ手段に転送し、前記第2機
能ユニット内において、データが転送されるべき関連す
るメモリ手段内の1または複数のアドレスを特定するM
DB受信信号を発生し、そのMDB受信信号を前記コン
トローラ手段に転送し、 B.前記コントローラ手段において、少なくとも選択さ
れたMDB送信信号を選択されたMDB受信信号に整合
させ、整合しているMDB信号により特定される前記第
1および第2機能ユニットのメモリ手段の対応する位置
間においてデータの転送を実行するための信号を発生
し、 C.前記コントローラ手段内において、前記転送実行信
号に応答して、 i)前記第1機能ユニットのメモリ手段に、前記MDB送
信信号内に特定されるアドレスを表わすアドレス信号を
供給し、そのアドレス信号の供給に応答して該メモリ手
段からそれにより発生されるデータ信号を受信し、 ii) これらのデータ信号を前記第2機能ユニットのメモ
リ手段に、前記MDB受信信号に特定されるアドレスを
表わすアドレス信号とともに供給する諸段階を含むこと
を特徴とするディジタルデータ処理装置操作方法。 - 【請求項22】 前記第1および第2機能ユニットによ
り発生される前記MDB信号を複数の仮想チャンネルに
沿って整合させることを含む請求項21記載のディジタ
ルデータ処理装置操作方法。 - 【請求項23】 A.前記整合が行われるべき仮想チャ
ンネルを特定する仮想チャンネル番号を含むように前記
MDB送信信号および前記MDB受信信号を発生し、 B.前記コントローラ手段内において、同様の仮想チャ
ンネル番号を有するMDB送信および受信信号の受信に
応答して、前記転送実行信号を発生することを含む請求
項22記載のディジタルデータ処理装置操作方法。 - 【請求項24】 A.前記機能ユニットのいずれかにお
いて、仮想チャンネルの創成、フラッシング、切断およ
び再開の少なくとも1つを要求する信号を発生し、 B. この要求信号に応答して、選択された仮想チャン
ネルを選択的に創成し、フラッシングし、閉鎖し、再開
し、切断することを含む請求項21記載のディジタルデ
ータ処理装置操作方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US898157 | 1992-06-15 | ||
US07/898,157 US5475860A (en) | 1992-06-15 | 1992-06-15 | 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 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06161932A true JPH06161932A (ja) | 1994-06-10 |
JP3280759B2 JP3280759B2 (ja) | 2002-05-13 |
Family
ID=25409036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16739493A Expired - Lifetime JP3280759B2 (ja) | 1992-06-15 | 1993-06-15 | 入力/出力制御装置および方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5475860A (ja) |
EP (1) | EP0578013B1 (ja) |
JP (1) | JP3280759B2 (ja) |
AT (1) | ATE164243T1 (ja) |
AU (1) | AU4124993A (ja) |
CA (1) | CA2098350A1 (ja) |
DE (1) | DE69317481T2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381190B1 (en) | 1999-05-13 | 2002-04-30 | Nec Corporation | Semiconductor memory device in which use of cache can be selected |
WO2006009168A1 (ja) * | 2004-07-21 | 2006-01-26 | Yokogawa Electric Corporation | 通信システム |
US7103700B2 (en) | 1996-03-07 | 2006-09-05 | Sony Corporation | Method of and apparatus for controlling bidirectional streams of isochronous data flowing between an application and a bus structure |
US7145921B2 (en) | 1996-03-07 | 2006-12-05 | Sony Corporation | Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure |
US7577782B2 (en) | 1996-02-02 | 2009-08-18 | Sony Corporation | Application programming interface for data transfer and bus management over a bus structure |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW276312B (ja) * | 1992-10-20 | 1996-05-21 | Cirrlis Logic Inc | |
EP0973098A1 (en) | 1994-03-11 | 2000-01-19 | The Panda Project | High density connector system |
US6163793A (en) * | 1994-08-05 | 2000-12-19 | Intel Corporation | Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor |
AU5886396A (en) * | 1995-06-30 | 1997-02-05 | Siemens Energy & Automation, Inc. | Voltage regulator controller having means for automatic configuration of accessory devices |
EP0768609B1 (en) * | 1995-10-16 | 2003-06-25 | Hitachi, Ltd. | Multimedia data transferring method |
US5968143A (en) * | 1995-12-13 | 1999-10-19 | International Business Machines Corporation | Information handling system for transfer of command blocks to a local processing side without local processor intervention |
US5991520A (en) * | 1996-02-02 | 1999-11-23 | Sony Corporation | Application programming interface for managing and automating data transfer operations between applications over a bus structure |
US5822553A (en) * | 1996-03-13 | 1998-10-13 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller architecture |
US5797043A (en) * | 1996-03-13 | 1998-08-18 | Diamond Multimedia Systems, Inc. | System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs |
US6070219A (en) * | 1996-10-09 | 2000-05-30 | Intel Corporation | Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller |
US6151688A (en) | 1997-02-21 | 2000-11-21 | Novell, Inc. | Resource management in a clustered computer system |
US5951706A (en) * | 1997-06-30 | 1999-09-14 | International Business Machines Corporation | Method of independent simultaneous queueing of message descriptors |
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 |
US6219828B1 (en) * | 1998-09-30 | 2001-04-17 | International Business Machines Corporation | Method for using two copies of open firmware for self debug capability |
US6496487B2 (en) | 1998-11-05 | 2002-12-17 | Visteon Global Technologies, Inc. | Efficient full duplex simultaneous message transfer |
JP3990833B2 (ja) | 1998-12-11 | 2007-10-17 | キヤノン株式会社 | 通信制御方法及び装置 |
US6393506B1 (en) | 1999-06-15 | 2002-05-21 | National Semiconductor Corporation | Virtual channel bus and system architecture |
US6467084B1 (en) * | 1999-12-16 | 2002-10-15 | Emware, Inc. | Systems and methods for reprogramming an embedded device with program code using relocatable program code |
US6862689B2 (en) | 2001-04-12 | 2005-03-01 | Stratus Technologies Bermuda Ltd. | Method and apparatus for managing session information |
US6802022B1 (en) | 2000-04-14 | 2004-10-05 | Stratus Technologies Bermuda Ltd. | Maintenance of consistent, redundant mass storage images |
US6901481B2 (en) | 2000-04-14 | 2005-05-31 | Stratus Technologies Bermuda Ltd. | Method and apparatus for storing transactional information in persistent memory |
JP2001333137A (ja) * | 2000-05-23 | 2001-11-30 | Mitsubishi Electric Corp | 自主動作通信制御装置及び自主動作通信制御方法 |
US6629166B1 (en) * | 2000-06-29 | 2003-09-30 | Intel Corporation | Methods and systems for efficient connection of I/O devices to a channel-based switched fabric |
US6948010B2 (en) | 2000-12-20 | 2005-09-20 | Stratus Technologies Bermuda Ltd. | Method and apparatus for efficiently moving portions of a memory block |
US6886171B2 (en) * | 2001-02-20 | 2005-04-26 | Stratus Technologies Bermuda Ltd. | Caching for I/O virtual address translation and validation using device drivers |
US6766413B2 (en) | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
US6874102B2 (en) | 2001-03-05 | 2005-03-29 | Stratus Technologies Bermuda Ltd. | Coordinated recalibration of high bandwidth memories in a multiprocessor computer |
US6996750B2 (en) | 2001-05-31 | 2006-02-07 | Stratus Technologies Bermuda Ltd. | Methods and apparatus for computer bus error termination |
US6785753B2 (en) * | 2001-06-01 | 2004-08-31 | Sonics, Inc. | Method and apparatus for response modes in pipelined environment |
EP1341092A1 (en) * | 2002-03-01 | 2003-09-03 | Motorola, Inc. | Method and arrangement for virtual direct memory access |
US7788324B2 (en) * | 2002-03-29 | 2010-08-31 | Atto Technology, Inc. | Method and system for improving the efficiency and ensuring the integrity of a data transfer |
KR100365910B1 (en) * | 2002-08-02 | 2002-12-31 | Nexon Co Ltd | System for transmitting/receiving file |
US9135168B2 (en) | 2010-07-07 | 2015-09-15 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error |
US8868852B2 (en) | 2010-07-07 | 2014-10-21 | Marvell World Trade Ltd. | Interface management control systems and methods for non-volatile semiconductor memory |
US9141538B2 (en) | 2010-07-07 | 2015-09-22 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive |
WO2014079491A1 (en) * | 2012-11-21 | 2014-05-30 | Qatar Foundation | Methods, remote access systems, client computing devices, and server devices for use in remote access systems |
US9927988B2 (en) | 2013-07-31 | 2018-03-27 | Hewlett Packard Enterprise Development Lp | Data move engine to move a block of data |
US10025736B1 (en) * | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
WO2016077570A1 (en) | 2014-11-13 | 2016-05-19 | Virtual Software Systems, Inc. | System for cross-host, multi-thread session alignment |
US11748174B2 (en) * | 2019-10-02 | 2023-09-05 | Intel Corporation | Method for arbitration and access to hardware request ring structures in a concurrent environment |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4419728A (en) * | 1981-06-22 | 1983-12-06 | Bell Telephone Laboratories, Incorporated | Channel interface circuit providing virtual channel number translation and direct memory access |
IT1151351B (it) * | 1982-01-19 | 1986-12-17 | Italtel Spa | Disposizione circuitale atta a realizzare lo scambio di dati tra una coppia di elaboratori operanti secondo il principio master-slave |
US4466098A (en) * | 1982-06-11 | 1984-08-14 | Siemens Corporation | Cross channel circuit for an electronic system having two or more redundant computers |
US4924427A (en) * | 1985-11-15 | 1990-05-08 | Unisys Corporation | Direct memory access controller with direct memory to memory transfers |
US5175855A (en) * | 1987-07-27 | 1992-12-29 | Laboratory Technologies Corporation | Method for communicating information between independently loaded, concurrently executing processes |
JPH0693688B2 (ja) * | 1989-03-31 | 1994-11-16 | 松下電器産業株式会社 | 通信機能付き電子機器 |
US5117486A (en) * | 1989-04-21 | 1992-05-26 | International Business Machines Corp. | Buffer for packetizing block of data with different sizes and rates received from first processor before transferring to second processor |
JP2964151B2 (ja) * | 1989-07-03 | 1999-10-18 | 富士通株式会社 | 通信制御方式 |
US5255372A (en) * | 1990-08-31 | 1993-10-19 | International Business Machines Corporation | Apparatus for efficiently interconnecing channels of a multiprocessor system multiplexed via channel adapters |
US5237662A (en) * | 1991-06-27 | 1993-08-17 | Digital Equipment Corporation | System and method with a procedure oriented input/output mechanism |
-
1992
- 1992-06-15 US US07/898,157 patent/US5475860A/en not_active Expired - Lifetime
-
1993
- 1993-06-14 CA CA002098350A patent/CA2098350A1/en not_active Abandoned
- 1993-06-15 AU AU41249/93A patent/AU4124993A/en not_active Abandoned
- 1993-06-15 AT AT93109553T patent/ATE164243T1/de not_active IP Right Cessation
- 1993-06-15 DE DE69317481T patent/DE69317481T2/de not_active Expired - Lifetime
- 1993-06-15 JP JP16739493A patent/JP3280759B2/ja not_active Expired - Lifetime
- 1993-06-15 EP EP93109553A patent/EP0578013B1/en not_active Expired - Lifetime
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7577782B2 (en) | 1996-02-02 | 2009-08-18 | Sony Corporation | Application programming interface for data transfer and bus management over a bus structure |
US7103700B2 (en) | 1996-03-07 | 2006-09-05 | Sony Corporation | Method of and apparatus for controlling bidirectional streams of isochronous data flowing between an application and a bus structure |
US7145921B2 (en) | 1996-03-07 | 2006-12-05 | Sony Corporation | Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure |
US7287113B2 (en) | 1996-03-07 | 2007-10-23 | Sony Corporation | Method of and apparatus for controlling bidirectional streams of isochronous data flowing between an application and a bus structure |
US7567590B2 (en) | 1996-03-07 | 2009-07-28 | Sony Corporation | Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure |
US6381190B1 (en) | 1999-05-13 | 2002-04-30 | Nec Corporation | Semiconductor memory device in which use of cache can be selected |
WO2006009168A1 (ja) * | 2004-07-21 | 2006-01-26 | Yokogawa Electric Corporation | 通信システム |
Also Published As
Publication number | Publication date |
---|---|
EP0578013A1 (en) | 1994-01-12 |
DE69317481T2 (de) | 1998-11-19 |
DE69317481D1 (de) | 1998-04-23 |
JP3280759B2 (ja) | 2002-05-13 |
CA2098350A1 (en) | 1993-12-16 |
ATE164243T1 (de) | 1998-04-15 |
EP0578013B1 (en) | 1998-03-18 |
US5475860A (en) | 1995-12-12 |
AU4124993A (en) | 1993-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3280759B2 (ja) | 入力/出力制御装置および方法 | |
US6636908B1 (en) | I/O system supporting extended functions and method therefor | |
US6735636B1 (en) | Device, system, and method of intelligently splitting information in an I/O system | |
US5481707A (en) | Dedicated processor for task I/O and memory management | |
EP0059838B1 (en) | Data processing system with a plurality of host processors and peripheral devices | |
US4680581A (en) | Local area network special function frames | |
AU614502B2 (en) | Input/ output control technique | |
JP2539614B2 (ja) | ポインタアドレスを発生するための装置および方法 | |
US6418488B1 (en) | Data transfer state machines | |
US5469542A (en) | Serial diagnostic interface bus for multiprocessor systems | |
EP0357768B1 (en) | Record lock processor for multiprocessing data system | |
EP0959411B1 (en) | Packet distribution in a microcomputer | |
US6397273B2 (en) | System having an enhanced parity mechanism in a data assembler/disassembler for use in a pipeline of a host-storage system interface to global memory | |
KR100962769B1 (ko) | 수퍼차지 메시지 교환기 | |
US5535405A (en) | Microsequencer bus controller system | |
US7805638B2 (en) | Multi-frequency debug network for a multiprocessor array | |
US6317805B1 (en) | Data transfer interface having protocol conversion device and upper, lower, middle machines: with middle machine arbitrating among lower machine side requesters including selective assembly/disassembly requests | |
JP2509064B2 (ja) | デ―タ処理システム | |
US20080109569A1 (en) | Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations | |
US20080109573A1 (en) | RDMA systems and methods for sending commands from a source node to a target node for local execution of commands at the target node | |
EP0283628A2 (en) | Bus interface circuit for digital data processor | |
EP0682313A1 (en) | System and procedure for detection of a fault in a chained series of control blocks | |
CA1246749A (en) | Printer-tape data link processor | |
JPH0227441A (ja) | コンピュータ・システム | |
JPH02255932A (ja) | マルチプロセツサ・システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20020115 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080222 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090222 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100222 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120222 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140222 Year of fee payment: 12 |
|
EXPY | Cancellation because of completion of term |