JPH03131146A - コンピュータデバイス、網及びコンピュータ間の通信を制御するための方法 - Google Patents
コンピュータデバイス、網及びコンピュータ間の通信を制御するための方法Info
- Publication number
- JPH03131146A JPH03131146A JP2174346A JP17434690A JPH03131146A JP H03131146 A JPH03131146 A JP H03131146A JP 2174346 A JP2174346 A JP 2174346A JP 17434690 A JP17434690 A JP 17434690A JP H03131146 A JPH03131146 A JP H03131146A
- Authority
- JP
- Japan
- Prior art keywords
- message
- data
- link
- virtual
- communication
- 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
- G06F15/17343—Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はコンピュータ間の通信を制御するための方法に
関する。
関する。
単一シリコン チップ上のプロセッサ及びメモリーから
成るマイクロコンピュータが知られているが、このプロ
セッサはメモリーからのプログラマブル インストラク
ションに従って動作する。
成るマイクロコンピュータが知られているが、このプロ
セッサはメモリーからのプログラマブル インストラク
ションに従って動作する。
このようなマイクロコンピュータの具体的な例が合衆国
特許14704678号において説明されている。この
マイクロコンピュータは四つのシリアル メツセージ
リンクを持ち、各々が専用のピンを持つペアの単向通信
チャネルを含み、マイクロコンピュータとこれと接続さ
れたデバイスとの間で反対方向にメツセージをバスする
ことができる。このデバイスはもう一つの類似するマイ
クロコンピュータであり得る。つまり、一つのマイクロ
コンピュータのシリアル リンクの出力ビン及び入力ビ
ンがそれぞれ単向通信チャネルによって他方のマイクロ
コンピュータのシリアル リンクの入力ピン及び出力ピ
ンに接続される。これら単向通信チャネルはハード配線
あるいは他の物理的手段によって実現されるために、こ
こでは“ハード“チャネルと呼ばれる。
特許14704678号において説明されている。この
マイクロコンピュータは四つのシリアル メツセージ
リンクを持ち、各々が専用のピンを持つペアの単向通信
チャネルを含み、マイクロコンピュータとこれと接続さ
れたデバイスとの間で反対方向にメツセージをバスする
ことができる。このデバイスはもう一つの類似するマイ
クロコンピュータであり得る。つまり、一つのマイクロ
コンピュータのシリアル リンクの出力ビン及び入力ビ
ンがそれぞれ単向通信チャネルによって他方のマイクロ
コンピュータのシリアル リンクの入力ピン及び出力ピ
ンに接続される。これら単向通信チャネルはハード配線
あるいは他の物理的手段によって実現されるために、こ
こでは“ハード“チャネルと呼ばれる。
このようなマイクロコンピュータは各々のプロセスがそ
のマイクロコンピュータ上で実行されるプログラムの所
定のインストラクション セットである数個の並行プロ
セスを実行する能力を持つ。
のマイクロコンピュータ上で実行されるプログラムの所
定のインストラクション セットである数個の並行プロ
セスを実行する能力を持つ。
このマイクロコンピュータはその時間を複数のプロセス
間で分割することによって複数のプロセスを一緒に遂行
する。−緒に遂行されるプロセスは並行プロセスと呼ば
れる。任意の時間において、実際にはこれらプロセスの
一つのみがマイクロコンピュータによって実行されてお
り、このプロセスは現プロセスと呼ばれる。マイクロコ
ンピュータによって実行されるべき個々の並行プロセス
は、そのプロセスによって操作されるローカル変数及び
−時的な値を保持するための作業空間と呼ばれるメモリ
ーの領域を使用する。このマイクロコンピュータは同一
マイクロコンピュータ上の並行プロセス間の通信のみで
なく、ハード チャネルを介して、網内に接続された異
なるマイクロコンピュータ上のプロセス間の通信も許す
。並行プロセス間であるか、異なるマイクロコンピュー
タ上のプロセス間であるかにかかわらず、このマイクロ
コンピュータは同期されたプロセスからプロセスへの通
信を提供するように動作する。これは、合衆国特許第4
704678号において詳細に説明されており、この内
容がここにも参考のために編入される。本発明の理解を
助けるためにここで簡単な説明を行う。前述の如く、こ
のマイクロコンピュータは複数の並列プロセスを処理す
る。これは、従って、任意の時間においてどのプロセス
が遂行されるべきかを決定するための計画を作るシステ
ムを提供する。現プロセスの作業空間と実行されるのを
待っている他のプロセスの作業空間が一つのリストを形
成し、ここで、個々の作業空間の一つの位置がこのリス
ト上の次のプロセスの作業空間ポインタを保持する。こ
のプロセッサは、通常、このリスト上のプロセスをシー
ケンス類に実行し、現プロセスのスケジュールが解除さ
れると次のプロセスに進む。現プロセスはそれ以降のイ
ンストラクションを遂行することを止め、プロセッサは
次のプロセスのアドレスによって同定される次のプロセ
スに進む。プロセスは、しばしば、これがチャネル番号
によって同定今れるあるチャネルにデータを出力するこ
とを要求するインストラクションに到達することによっ
てスケジュールから解除される。このデータを受信する
ことを意図するプロセスが異なるマイクロコンピュータ
上にあるときは、このチャネルは、上に説明のようにマ
イクロコンピュータを相互接続するハードチャネルであ
り得る。同一マイクロコンピュータによって遂行される
異なるプロセス間の通信を可能とするために、メモリー
内に複数のソフト チャネルと呼ばれるものが提供され
る。個々のソフト チャネルはメモリー内の2語位置か
ら成るが、一つは、チャネルを使用することを望んでい
るプロセスを同定するために使用され、第二の位置は、
このチャネルを通じて通信されるべきデータを保持する
ために使用される。出力プロセスは、“入力プロセス゛
つまり、データが向けられるプロセスがそのデータを受
信し、この出力プロセスに確認メツセージを戻すまでは
、スケジュールから解除された状態とならない。確認メ
ツセージを受信した時点で、このプロセスはスケジュー
ルから解除され、実行を待つプロセスのリストの最後に
置かれる。この入力及び出力プロセスは、通信プロセス
と呼ばれる。
間で分割することによって複数のプロセスを一緒に遂行
する。−緒に遂行されるプロセスは並行プロセスと呼ば
れる。任意の時間において、実際にはこれらプロセスの
一つのみがマイクロコンピュータによって実行されてお
り、このプロセスは現プロセスと呼ばれる。マイクロコ
ンピュータによって実行されるべき個々の並行プロセス
は、そのプロセスによって操作されるローカル変数及び
−時的な値を保持するための作業空間と呼ばれるメモリ
ーの領域を使用する。このマイクロコンピュータは同一
マイクロコンピュータ上の並行プロセス間の通信のみで
なく、ハード チャネルを介して、網内に接続された異
なるマイクロコンピュータ上のプロセス間の通信も許す
。並行プロセス間であるか、異なるマイクロコンピュー
タ上のプロセス間であるかにかかわらず、このマイクロ
コンピュータは同期されたプロセスからプロセスへの通
信を提供するように動作する。これは、合衆国特許第4
704678号において詳細に説明されており、この内
容がここにも参考のために編入される。本発明の理解を
助けるためにここで簡単な説明を行う。前述の如く、こ
のマイクロコンピュータは複数の並列プロセスを処理す
る。これは、従って、任意の時間においてどのプロセス
が遂行されるべきかを決定するための計画を作るシステ
ムを提供する。現プロセスの作業空間と実行されるのを
待っている他のプロセスの作業空間が一つのリストを形
成し、ここで、個々の作業空間の一つの位置がこのリス
ト上の次のプロセスの作業空間ポインタを保持する。こ
のプロセッサは、通常、このリスト上のプロセスをシー
ケンス類に実行し、現プロセスのスケジュールが解除さ
れると次のプロセスに進む。現プロセスはそれ以降のイ
ンストラクションを遂行することを止め、プロセッサは
次のプロセスのアドレスによって同定される次のプロセ
スに進む。プロセスは、しばしば、これがチャネル番号
によって同定今れるあるチャネルにデータを出力するこ
とを要求するインストラクションに到達することによっ
てスケジュールから解除される。このデータを受信する
ことを意図するプロセスが異なるマイクロコンピュータ
上にあるときは、このチャネルは、上に説明のようにマ
イクロコンピュータを相互接続するハードチャネルであ
り得る。同一マイクロコンピュータによって遂行される
異なるプロセス間の通信を可能とするために、メモリー
内に複数のソフト チャネルと呼ばれるものが提供され
る。個々のソフト チャネルはメモリー内の2語位置か
ら成るが、一つは、チャネルを使用することを望んでい
るプロセスを同定するために使用され、第二の位置は、
このチャネルを通じて通信されるべきデータを保持する
ために使用される。出力プロセスは、“入力プロセス゛
つまり、データが向けられるプロセスがそのデータを受
信し、この出力プロセスに確認メツセージを戻すまでは
、スケジュールから解除された状態とならない。確認メ
ツセージを受信した時点で、このプロセスはスケジュー
ルから解除され、実行を待つプロセスのリストの最後に
置かれる。この入力及び出力プロセスは、通信プロセス
と呼ばれる。
上のことから、一つのマイクロコンピュータ上のプロセ
スの他のマイクロコンピュータ上のプロセスと同時に通
信できる数は、使用できるハードチャネルの数によって
制限されることが明らかである。また、数個のプロセス
が通信のために同一のハード チャネルを要求するよう
な場合は、個々のマイクロコンピュータ上に個々のメツ
セージリンクの使用を計画するプロセスを提供すること
が必要となる。上のことから、これらリンクは、データ
を受信し、これを入力プロセスに割り当てる責務を持つ
のみでなく、確認を生成し、これを出力プロセスに戻す
責務を持つことが明らかである。また、網内のマイクロ
コンピュータにプロセスを割り当てるとき、通信するプ
ロセスは、同一マイクロコンピュータ上に、あるいはメ
ツセージリンクによって直接に接続されたマイクロコン
ピュータ上に位置されることが必要である。
スの他のマイクロコンピュータ上のプロセスと同時に通
信できる数は、使用できるハードチャネルの数によって
制限されることが明らかである。また、数個のプロセス
が通信のために同一のハード チャネルを要求するよう
な場合は、個々のマイクロコンピュータ上に個々のメツ
セージリンクの使用を計画するプロセスを提供すること
が必要となる。上のことから、これらリンクは、データ
を受信し、これを入力プロセスに割り当てる責務を持つ
のみでなく、確認を生成し、これを出力プロセスに戻す
責務を持つことが明らかである。また、網内のマイクロ
コンピュータにプロセスを割り当てるとき、通信するプ
ロセスは、同一マイクロコンピュータ上に、あるいはメ
ツセージリンクによって直接に接続されたマイクロコン
ピュータ上に位置されることが必要である。
これらの全ては、マイクロコンピュータ網の現在のユー
ザー及び設計者によって現在受は入れられている制約で
ある。
ザー及び設計者によって現在受は入れられている制約で
ある。
本発明の一面によると、各々がシーケンスのインストラ
クションを含む複数の並行プロセスを実行するためのプ
ロセッサ、このコンピュータ デバイスとは別のデバイ
スに接続するための入力及び出力を持ち、このコンピュ
ータ デバイスとこの別のデバイスとの間でメツセージ
パケットをシーケンス順に送信するための少なくとも
一つのメツセージ リンク、各々がこのメモリーによっ
て提供される複数のアドレス可能な仮想通信リンク、及
びこのプロセッサ、メモリー、及びメツセージ リンク
に結合された通信制御回路を含むコンピュータ デバイ
スが提供されるが、この通信制御回路は: (i) このプロセッサによるメツセージ インスト
ラクションの実行に応答して、この仮想通、化リンクの
選択された一つにアドレスし、この選択された一つにこ
の仮想通信リンクを通じて通信されるべきメツセージに
関する情報をロードし;また (1i) この一つのメツセージ リンクを通じての
複数の仮想通信リンクと関連するメツセージパケットの
シーケンシャル伝送を制御する。
クションを含む複数の並行プロセスを実行するためのプ
ロセッサ、このコンピュータ デバイスとは別のデバイ
スに接続するための入力及び出力を持ち、このコンピュ
ータ デバイスとこの別のデバイスとの間でメツセージ
パケットをシーケンス順に送信するための少なくとも
一つのメツセージ リンク、各々がこのメモリーによっ
て提供される複数のアドレス可能な仮想通信リンク、及
びこのプロセッサ、メモリー、及びメツセージ リンク
に結合された通信制御回路を含むコンピュータ デバイ
スが提供されるが、この通信制御回路は: (i) このプロセッサによるメツセージ インスト
ラクションの実行に応答して、この仮想通、化リンクの
選択された一つにアドレスし、この選択された一つにこ
の仮想通信リンクを通じて通信されるべきメツセージに
関する情報をロードし;また (1i) この一つのメツセージ リンクを通じての
複数の仮想通信リンクと関連するメツセージパケットの
シーケンシャル伝送を制御する。
プロセスがメツセージを送ることを望むとき、プロセス
は、好ましくは、通信制御回路にメツセージ送信の要求
を出力するが、この要求は、それを介してメツセージが
送られるべき仮想通信リンクを同定するアドレス部分及
びその要求を行なっているプロセスを同定するためのプ
ロセス記述子を含む。
は、好ましくは、通信制御回路にメツセージ送信の要求
を出力するが、この要求は、それを介してメツセージが
送られるべき仮想通信リンクを同定するアドレス部分及
びその要求を行なっているプロセスを同定するためのプ
ロセス記述子を含む。
このプロセス記述子は、好ましくは、送信プロセスの作
業空間を構成するメモリー位置に対するポインタを含み
、また、そのプロセスの優先度を示す。送信されるべき
データに対するポインタが次にこの作業空間から(通信
制御回路によって知られている)一定の空間だけオフセ
ットされた位置に格納される。
業空間を構成するメモリー位置に対するポインタを含み
、また、そのプロセスの優先度を示す。送信されるべき
データに対するポインタが次にこの作業空間から(通信
制御回路によって知られている)一定の空間だけオフセ
ットされた位置に格納される。
好ましくは、この通信制御回路は、このプロセッサによ
って実行されているプロセスと別のデバイスのプロセッ
サによって実行されているプロセスとの間でメツセージ
が同期されたプロセスからプロセスへの通信が実現され
るような方法にて送られるように動作可能である。同期
されたプロセスからプロセスへの通信とは、通信プロセ
スがメツセージの伝送が実行されるとき対応するプログ
ラム ステージにあることを意味する。
って実行されているプロセスと別のデバイスのプロセッ
サによって実行されているプロセスとの間でメツセージ
が同期されたプロセスからプロセスへの通信が実現され
るような方法にて送られるように動作可能である。同期
されたプロセスからプロセスへの通信とは、通信プロセ
スがメツセージの伝送が実行されるとき対応するプログ
ラム ステージにあることを意味する。
このメモリーはまたこのプロセッサによって実行される
並行プロセスが互いに通信できるようにするための通信
チャネルを提供する。この通信チャネルは、同様に、こ
のプロセッサの並行プロセス間の同期されたプロセスか
らプロセスへの通信を許す。これら通信チャネルは、一
つの実施態様においては、合衆国特許第4704678
号との関連において上に説明のソフト チャネルに対応
する。あるメモリー位置が(内部通信のための)ソフト
チャネルとして働くべきか、あるいは(外部通信のた
めの)ハード チャネルとして働くべきかの決定は、メ
モリー位置のアドレスのみによって行なわれる。
並行プロセスが互いに通信できるようにするための通信
チャネルを提供する。この通信チャネルは、同様に、こ
のプロセッサの並行プロセス間の同期されたプロセスか
らプロセスへの通信を許す。これら通信チャネルは、一
つの実施態様においては、合衆国特許第4704678
号との関連において上に説明のソフト チャネルに対応
する。あるメモリー位置が(内部通信のための)ソフト
チャネルとして働くべきか、あるいは(外部通信のた
めの)ハード チャネルとして働くべきかの決定は、メ
モリー位置のアドレスのみによって行なわれる。
このコンピュータ デバイスは、好ましくは、単一チッ
プ上のこのプロセッサ、メモリー及び通信制御回路を提
供する集積回路から成る。
プ上のこのプロセッサ、メモリー及び通信制御回路を提
供する集積回路から成る。
本発明は、もう−面においは、これらコンピュータ デ
バイスのそれらのメツセージ リンクによって相互接続
された網を提供する。
バイスのそれらのメツセージ リンクによって相互接続
された網を提供する。
もう−面によると、本発明は、プロセッサ、RAMを含
むメモリー、通信制御回路、及びコンピュータ デバイ
スとは別のデバイスに接続された入力及び出力を持ち、
コンピュータとこの別のデバイスとの間のメツセージ
パケットの伝送を行なうための少なくとも一つのメツセ
ージ リンクを含むコンピュータ デバイス内において
並行プロセスを実行するための方法を提供するが、この
方法は、複数のアドレス可能なメモリー位置を仮想通信
リンクとして割り当てるステップ、複数のメツセージ
インストラクションを含むシーケンスのインストラクシ
ョンを実行するステップ、これらメツセージ インスト
ラクションの個々の実行に応答して、通信制御回路を動
作し、一つの選択可能な仮想通信リンクにアドレスし、
この選択されたリンクに送信されるべきメツセージに関
する情報をロードするステップ、及びこの通信制御回路
を使用して、この一つのメツセージ リンクを通じての
メツセージ パケットのシーケンシャル伝送を遂行する
ステップを含む。
むメモリー、通信制御回路、及びコンピュータ デバイ
スとは別のデバイスに接続された入力及び出力を持ち、
コンピュータとこの別のデバイスとの間のメツセージ
パケットの伝送を行なうための少なくとも一つのメツセ
ージ リンクを含むコンピュータ デバイス内において
並行プロセスを実行するための方法を提供するが、この
方法は、複数のアドレス可能なメモリー位置を仮想通信
リンクとして割り当てるステップ、複数のメツセージ
インストラクションを含むシーケンスのインストラクシ
ョンを実行するステップ、これらメツセージ インスト
ラクションの個々の実行に応答して、通信制御回路を動
作し、一つの選択可能な仮想通信リンクにアドレスし、
この選択されたリンクに送信されるべきメツセージに関
する情報をロードするステップ、及びこの通信制御回路
を使用して、この一つのメツセージ リンクを通じての
メツセージ パケットのシーケンシャル伝送を遂行する
ステップを含む。
好ましくは、メツセージ リンクを使用することを待つ
仮想通信リンクの持ち行列が個々の仮想通信リンクに次
の仮想通信リンクに対するポインタをロッドし、これに
よって連結されたリストを形成することによって形成さ
れる。
仮想通信リンクの持ち行列が個々の仮想通信リンクに次
の仮想通信リンクに対するポインタをロッドし、これに
よって連結されたリストを形成することによって形成さ
れる。
この好ましい実施態様においては、個々のメツセージ
リンクが同期されたプロセスからプロセスへの通信を提
供するように構成されるが、ここで、ある一つの仮想リ
ンクを使用する一つのコンピュータ上のプローブの実行
によって出力される個々のメツセージ パケットは、こ
れと同一の仮想リンクを使用してさらにメツセージ パ
ケットを送る前に入力デバイスから確認を得る。
リンクが同期されたプロセスからプロセスへの通信を提
供するように構成されるが、ここで、ある一つの仮想リ
ンクを使用する一つのコンピュータ上のプローブの実行
によって出力される個々のメツセージ パケットは、こ
れと同一の仮想リンクを使用してさらにメツセージ パ
ケットを送る前に入力デバイスから確認を得る。
メツセージ リンクを使用することを待つ個々の仮想リ
ンクは、こうして連結されたリスト内の二つの位置を採
択することができるが、第一の位置はデータ パケット
の出力に関連し、そして、第二の位置は、確認パケット
の出力に関連する。
ンクは、こうして連結されたリスト内の二つの位置を採
択することができるが、第一の位置はデータ パケット
の出力に関連し、そして、第二の位置は、確認パケット
の出力に関連する。
好ましくは、個々の仮想通信リンクは、それと関連して
、その仮想通信リンクにアドレスされた入りメツセージ
パケットを格納するためのバッファー メモリ位置を
持つ。このケースにおいては、プロセスがメツセージを
受信する準備ができると、プロセッサは通信制御回路に
対して一つの要求を送る。通信制御回路はメツセージ受
信要求に応答して、メツセージが期待される仮想リンク
を同定し、その仮想リンクと関連するバッファーメモリ
位置がデータを含むか否かを確かめ、データを含むとき
は、このデータをこのプロセッサによって取らせ、デー
タを含まないときは、受信プロセスを同定するプロセス
記述子をこの仮想通信リンク内に格納させる。
、その仮想通信リンクにアドレスされた入りメツセージ
パケットを格納するためのバッファー メモリ位置を
持つ。このケースにおいては、プロセスがメツセージを
受信する準備ができると、プロセッサは通信制御回路に
対して一つの要求を送る。通信制御回路はメツセージ受
信要求に応答して、メツセージが期待される仮想リンク
を同定し、その仮想リンクと関連するバッファーメモリ
位置がデータを含むか否かを確かめ、データを含むとき
は、このデータをこのプロセッサによって取らせ、デー
タを含まないときは、受信プロセスを同定するプロセス
記述子をこの仮想通信リンク内に格納させる。
このメツセージ リンクを介してのメツセージの出力及
び受信を制御するために要求される制御論理を簡素化す
るために、及びこれら仮想通信リンクに対するメモリー
空間をあらかじめ割り当てることができるようにするた
めに、個々のメツセージが所定のビット長を超えない一
つあるいは複数のメツセージ パケットに分割される。
び受信を制御するために要求される制御論理を簡素化す
るために、及びこれら仮想通信リンクに対するメモリー
空間をあらかじめ割り当てることができるようにするた
めに、個々のメツセージが所定のビット長を超えない一
つあるいは複数のメツセージ パケットに分割される。
このプロセッサによって実行されるこれらプロセスによ
って送られるメツセージはデータを含み、ここでは、“
データ パケット”と呼ばれる。データパケットはメツ
セージ全体の長さを同定するデータ カウントを含む。
って送られるメツセージはデータを含み、ここでは、“
データ パケット”と呼ばれる。データパケットはメツ
セージ全体の長さを同定するデータ カウントを含む。
個々の仮想通信リンクは、送られるべきメツセージ及び
受信されるべきメツセージのデータ カウントを格納す
るためのそれぞれのメモリー位置を含む。同期されたプ
ロセスからプロセスへの通信を実現するために、メツセ
ージの伝送が全て完了したときにのみ確認が送られる。
受信されるべきメツセージのデータ カウントを格納す
るためのそれぞれのメモリー位置を含む。同期されたプ
ロセスからプロセスへの通信を実現するために、メツセ
ージの伝送が全て完了したときにのみ確認が送られる。
本発明の概念は、データ パケット及び確認パケットの
両方の出力をメツセージ リンクを待つ持ち行列内の次
の仮想リンクを同定するために個々の仮想リンクの持ち
行列ポインタを使用することによって制御するために使
用することができる。
両方の出力をメツセージ リンクを待つ持ち行列内の次
の仮想リンクを同定するために個々の仮想リンクの持ち
行列ポインタを使用することによって制御するために使
用することができる。
データ パケットを送信するために、仮想リンクに対す
る持ち行列ポインタはある一つのアドレスをポイントす
るが、確認パケットを送信するために、持ち行列ポイン
タは、その仮想リンクに対する異なるアドレスをポイン
トする。こうすることにより、この出力通信チャネルに
対して単一の持ち行列が存在し、個々の仮想リンクは、
持ち行列内の二つの位置を採択する能力を持つ(一つは
データ パケットに対して使用され、もう一つは確認パ
ケットに対して使用される)。
る持ち行列ポインタはある一つのアドレスをポイントす
るが、確認パケットを送信するために、持ち行列ポイン
タは、その仮想リンクに対する異なるアドレスをポイン
トする。こうすることにより、この出力通信チャネルに
対して単一の持ち行列が存在し、個々の仮想リンクは、
持ち行列内の二つの位置を採択する能力を持つ(一つは
データ パケットに対して使用され、もう一つは確認パ
ケットに対して使用される)。
マイクロコンピュータは複数のメツセージ リンクを持
つことができるが、セットの仮想リンクが個々の特定の
出力通信チャネルのために使用される。マイクロコンピ
ュータがその内容がここに参考のために編入されている
我々の未決の特許請求第号 (Page
WHITE &Parrer Ref’。
つことができるが、セットの仮想リンクが個々の特定の
出力通信チャネルのために使用される。マイクロコンピ
ュータがその内容がここに参考のために編入されている
我々の未決の特許請求第号 (Page
WHITE &Parrer Ref’。
6431 g)において説明されるような経路指定スイ
ッチと組合わせられた場合、全てのメツセージはこのス
イッを介してルートされ、従って、全てのメツセージ
リンクを処理するために単一の持ち行列が形成される。
ッチと組合わせられた場合、全てのメツセージはこのス
イッを介してルートされ、従って、全てのメツセージ
リンクを処理するために単一の持ち行列が形成される。
個々の仮想リンクはパケット見出しを同定するためのメ
モリー位置を持つ。このパケット見出しは、送信される
べきメツセージ パケットに、その宛先が網内の別のマ
イクロコンピュータ上の仮想リンクであるとき、最終宛
先を同定するためにメツセージ パケットに加えられる
。
モリー位置を持つ。このパケット見出しは、送信される
べきメツセージ パケットに、その宛先が網内の別のマ
イクロコンピュータ上の仮想リンクであるとき、最終宛
先を同定するためにメツセージ パケットに加えられる
。
網内の個々のマイクロコンピュータ上のこのアドレス可
能な仮想通信リンクの概念を使用することにより、マイ
クロコンピュータの個々のハードリンク上に複数のメツ
セージを多重化することができ、マイクロコンピュータ
は直接これに接続されてないデバイスと、このデバイス
が類似するアドレス可能な仮想通信チャネルを持つとい
う前提にてこれと通信することができる。これは、ある
プロセスを網内の異なるマイクロコンピュータ上で実行
されるべき複数のプロセスに分割するとき、網アーキテ
クチュアの詳細を知る必要がないことを意味する。これ
は、プログラマ−の仕事を非常に楽にする。
能な仮想通信リンクの概念を使用することにより、マイ
クロコンピュータの個々のハードリンク上に複数のメツ
セージを多重化することができ、マイクロコンピュータ
は直接これに接続されてないデバイスと、このデバイス
が類似するアドレス可能な仮想通信チャネルを持つとい
う前提にてこれと通信することができる。これは、ある
プロセスを網内の異なるマイクロコンピュータ上で実行
されるべき複数のプロセスに分割するとき、網アーキテ
クチュアの詳細を知る必要がないことを意味する。これ
は、プログラマ−の仕事を非常に楽にする。
好ましくは、相互接続されたマイクロコンピュータの網
内においては、ある一つのマイクロコンピュータ上の個
々の仮想リンクは、別のマイクロコンピュータ上の仮想
リンクとペアにされるが、この別のマイクロコンピュー
タは前者のマイクロコンピュータに直接に、あるいは我
々の未決の英国特許申請第 及び CPage White & Parrcr Ref’
s : 6431 g及び)において説明のタイプの経
路指定スイッチあるいは経路指定スイッチの網を介して
接続することができる。この仮想リンクは、個々の仮想
リンクが遠隔マイクロコンピュータ上のペアの受信仮想
リンクを同定する情報を含み、その仮想リンク上に送ら
れるメツセージ パケットが、常に、このペアの受信仮
想リンクに向けられ、この受信仮想リンクを介して送ら
れる確認がそれによってメツセージ パケットが送られ
た仮想リンクに戻るように向けられるという意味におい
てペア化される。こうして、永久チャネルがプログラマ
−の指示によって任意のプログラムを実行するように網
が確立されるときに仮想リンク内に正しい情報をロード
することによって確立される。従って、任意の網が任意
のプログラムを実行するために使用することができ、ま
た逆に、任意のプログラムがある網上において実行でき
る。また、このペアの仮想リンクは互いのために専用に
使用されるために、メツセージ自体の中にメツセージの
退者を同定する必要はない。
内においては、ある一つのマイクロコンピュータ上の個
々の仮想リンクは、別のマイクロコンピュータ上の仮想
リンクとペアにされるが、この別のマイクロコンピュー
タは前者のマイクロコンピュータに直接に、あるいは我
々の未決の英国特許申請第 及び CPage White & Parrcr Ref’
s : 6431 g及び)において説明のタイプの経
路指定スイッチあるいは経路指定スイッチの網を介して
接続することができる。この仮想リンクは、個々の仮想
リンクが遠隔マイクロコンピュータ上のペアの受信仮想
リンクを同定する情報を含み、その仮想リンク上に送ら
れるメツセージ パケットが、常に、このペアの受信仮
想リンクに向けられ、この受信仮想リンクを介して送ら
れる確認がそれによってメツセージ パケットが送られ
た仮想リンクに戻るように向けられるという意味におい
てペア化される。こうして、永久チャネルがプログラマ
−の指示によって任意のプログラムを実行するように網
が確立されるときに仮想リンク内に正しい情報をロード
することによって確立される。従って、任意の網が任意
のプログラムを実行するために使用することができ、ま
た逆に、任意のプログラムがある網上において実行でき
る。また、このペアの仮想リンクは互いのために専用に
使用されるために、メツセージ自体の中にメツセージの
退者を同定する必要はない。
本発明のもう一面によると、データをビットパケットに
て伝送するために符号化するための方法が提供される。
て伝送するために符号化するための方法が提供される。
この方法によると、個々のパケットは、同数の1及びO
を含み、これらパケットは所定のビット長を持ち、同数
の1及びOの置換の有限セットを形成し、この有限セッ
トの第一のサブセットがデータ パケットとして使用さ
れるように選択され、そしてこの有限セットの第二の別
のサブセットが制御パケットとして使用するように選択
される。この方法は本発明の上記の特徴に従って伝送さ
れるメツセージ パケットに対して特に適当である。
を含み、これらパケットは所定のビット長を持ち、同数
の1及びOの置換の有限セットを形成し、この有限セッ
トの第一のサブセットがデータ パケットとして使用さ
れるように選択され、そしてこの有限セットの第二の別
のサブセットが制御パケットとして使用するように選択
される。この方法は本発明の上記の特徴に従って伝送さ
れるメツセージ パケットに対して特に適当である。
データ パケットが6ビット長である一つの特定の実施
態様が我々の未決の特許申請第CPagr While
& Parrer Ref’ 64318)において
説明されており、これはここにも参考のために編入され
ている。
態様が我々の未決の特許申請第CPagr While
& Parrer Ref’ 64318)において
説明されており、これはここにも参考のために編入され
ている。
本発明は以下の詳細な説明を図面を参照しながら読むこ
とによって一層明白となるものである。
とによって一層明白となるものである。
第1図は単一チップ上に形成されるマイクロコンピュー
タの主な要素を示す。このマイクロコンピュータはプロ
セッサ2、及びデータ バス8を介してプロセッサ2及
び通信制御回路6に接続されたランダム アクセス メ
モリー(RAM)を含むメモリー4から成る。この通信
制御回路は、ここでは、通信コントローラとも呼ばれる
。このデバイスはまた総称的に12によって示される入
力及び出力ビンを持つメツセージ リンク10を持つ。
タの主な要素を示す。このマイクロコンピュータはプロ
セッサ2、及びデータ バス8を介してプロセッサ2及
び通信制御回路6に接続されたランダム アクセス メ
モリー(RAM)を含むメモリー4から成る。この通信
制御回路は、ここでは、通信コントローラとも呼ばれる
。このデバイスはまた総称的に12によって示される入
力及び出力ビンを持つメツセージ リンク10を持つ。
個々のピンは、単向シリアル通信チャネルとして専用に
使用される。プロセッサ2は、通信制御回路6と双方向
ペアの単向チャネル12゜14によって通信することが
できる。メツセージリンク10は、メツセージをメツセ
ージ パケットの形式、例えばシリアル ビット パケ
ットの形式にて、マイクロコンピュータからそれに接続
された個々のデバイスに、あるいは逆に送信及び受信ス
る。個々のマイクロコンピュータは、数個の、例えば、
4つのメツセージ リンクを持つ。
使用される。プロセッサ2は、通信制御回路6と双方向
ペアの単向チャネル12゜14によって通信することが
できる。メツセージリンク10は、メツセージをメツセ
ージ パケットの形式、例えばシリアル ビット パケ
ットの形式にて、マイクロコンピュータからそれに接続
された個々のデバイスに、あるいは逆に送信及び受信ス
る。個々のマイクロコンピュータは、数個の、例えば、
4つのメツセージ リンクを持つ。
これらメツセージ リンクは、マイクロコンピュータを
網内の他のデバイスに接続するために使用される。これ
らデバイスは、例えば、我々の本発明と譲渡人を同一と
する未決特許第 及び CPage White & Farr
er Re(’s :64318及び64475)に説
明のタイプの類似のマイクロコンピュータ及び経路指定
スイッチであり得る。第15図はこのような網を示すが
、ここで、マイクロコンピュータはNによって示され、
経路指定スイッチはR3にて示される。メツセージ リ
ンク10の動作は、網内の個々のマイクロコンピュータ
上のプロセッサによって実行されているプロセス間のメ
ツセージ伝送を多重化するために通信制御回路6によっ
て制御される。網内のある一つのマイクロコンピュータ
によって実行されているプロセスから網内の別のマイク
ロコンビエータによって実行されているプロセスに伝送
されるべき個々のメツセージは、その送信プロセスを実
行しているプロセッサを持つマイクロコンピュータの通
信制御回路6によって各々が一定の最大量のデータ以上
を含まない複数のデータパケットに分割される。これら
データ パケットは、パケットの宛先を同定する追加の
情報を含む。
網内の他のデバイスに接続するために使用される。これ
らデバイスは、例えば、我々の本発明と譲渡人を同一と
する未決特許第 及び CPage White & Farr
er Re(’s :64318及び64475)に説
明のタイプの類似のマイクロコンピュータ及び経路指定
スイッチであり得る。第15図はこのような網を示すが
、ここで、マイクロコンピュータはNによって示され、
経路指定スイッチはR3にて示される。メツセージ リ
ンク10の動作は、網内の個々のマイクロコンピュータ
上のプロセッサによって実行されているプロセス間のメ
ツセージ伝送を多重化するために通信制御回路6によっ
て制御される。網内のある一つのマイクロコンピュータ
によって実行されているプロセスから網内の別のマイク
ロコンビエータによって実行されているプロセスに伝送
されるべき個々のメツセージは、その送信プロセスを実
行しているプロセッサを持つマイクロコンピュータの通
信制御回路6によって各々が一定の最大量のデータ以上
を含まない複数のデータパケットに分割される。これら
データ パケットは、パケットの宛先を同定する追加の
情報を含む。
この情報は、ここでは、これが通常パケットの前部に置
かれるために見出し部分と呼ばれる。データ パケット
の構造が第2図に示される。
かれるために見出し部分と呼ばれる。データ パケット
の構造が第2図に示される。
マイクロコンピュータのメモリ4のランダムアクセス
メモリーは複数のアドレス可能な仮想通信チャネルを提
供するが、これについては、後に詳細に説明される。網
内の一つのマイクロコンピュータ上の個々の仮想チャネ
ルは、そのマイクロコンピュータによって実行されてい
るプロセッサからのメツセージをその網内の別のマイク
ロコンピュータに送ることを許し、もう一つの仮想チャ
ネルとベアにされ、これは、それぞれにこれらマイクロ
コンピュータによって実行されるプロセス間の反対方向
の通信を許す。単向仮想チャネルの個々の双方向ペアは
ここでは仮想リンクと呼ばれる。
メモリーは複数のアドレス可能な仮想通信チャネルを提
供するが、これについては、後に詳細に説明される。網
内の一つのマイクロコンピュータ上の個々の仮想チャネ
ルは、そのマイクロコンピュータによって実行されてい
るプロセッサからのメツセージをその網内の別のマイク
ロコンピュータに送ることを許し、もう一つの仮想チャ
ネルとベアにされ、これは、それぞれにこれらマイクロ
コンピュータによって実行されるプロセス間の反対方向
の通信を許す。単向仮想チャネルの個々の双方向ペアは
ここでは仮想リンクと呼ばれる。
ここで使用されるマイクロコンピュータという用語は、
通常、単一集積回路デバイスに基づく小さなサイズのコ
ンピュータを意味するが、但し、これらデバイスを示す
ために排他的に使用されるものではない。
通常、単一集積回路デバイスに基づく小さなサイズのコ
ンピュータを意味するが、但し、これらデバイスを示す
ために排他的に使用されるものではない。
知られている如く、マイクロコンピュータのプロセッサ
は、各々がシーケンスのインストラクションを含む複数
の並行プロセスを実行するために使用することができる
。このようなプロセスは、メツセージを送信及び受信す
る能力を持つ。個々の仮想リンクは、メモリー4内にお
いて、複数のメモリー位置から成る制御ブロックによっ
て表される。個々のブロックは、両方向のメツセージ伝
送の現在の進行に関する情報を格納する。この情報は、
好ましくは、少なくとも、メツセージを送信及び/ある
いは受信しているプロセスを同定するプロセス記述子を
含む。メツセージ リンク10は、複数の仮想リンクに
よって、メツセージリンクを使用することを待つ仮想リ
ンクの持ち行列を形成することによって共有される。こ
れは、個々の仮想リンクに、次の仮想リンクに対するポ
インタをロードし、これによって、連結されたリストを
形成することによって行なわれる。個々の仮想リンクは
、データ パケット及び確認パケットの両方の伝送を実
行する能力を持つ。従って、任意の時間において、同一
仮想チャネルを介して送られるべきデータ パケット、
確認パケットあるいはこの両者が存在する。同一仮想リ
ンクを介して、確認パケット及びデータ パケットの両
方が送られるべきであるような場合には、この仮想リン
クは、連結されたリスト上の二つの(存置を採択し、メ
ツセージ リンク10を使用することを待つ持ち行列を
形成する。
は、各々がシーケンスのインストラクションを含む複数
の並行プロセスを実行するために使用することができる
。このようなプロセスは、メツセージを送信及び受信す
る能力を持つ。個々の仮想リンクは、メモリー4内にお
いて、複数のメモリー位置から成る制御ブロックによっ
て表される。個々のブロックは、両方向のメツセージ伝
送の現在の進行に関する情報を格納する。この情報は、
好ましくは、少なくとも、メツセージを送信及び/ある
いは受信しているプロセスを同定するプロセス記述子を
含む。メツセージ リンク10は、複数の仮想リンクに
よって、メツセージリンクを使用することを待つ仮想リ
ンクの持ち行列を形成することによって共有される。こ
れは、個々の仮想リンクに、次の仮想リンクに対するポ
インタをロードし、これによって、連結されたリストを
形成することによって行なわれる。個々の仮想リンクは
、データ パケット及び確認パケットの両方の伝送を実
行する能力を持つ。従って、任意の時間において、同一
仮想チャネルを介して送られるべきデータ パケット、
確認パケットあるいはこの両者が存在する。同一仮想リ
ンクを介して、確認パケット及びデータ パケットの両
方が送られるべきであるような場合には、この仮想リン
クは、連結されたリスト上の二つの(存置を採択し、メ
ツセージ リンク10を使用することを待つ持ち行列を
形成する。
個々の仮想リンク制御ブロックは、その仮想リンク上に
送られる個々のパケットとともに含まれるべき追加の情
報を含むか、あるいは、これがマイクロコンピュータの
メモリー内のどこに発見てきるかを示す。個々の仮想リ
ンクとは一つのメモリー位置が関連し、これは、そのパ
ケットを受信するためにプロセスが待ってないような場
合にその仮想リンクに到達するパケットを格納するため
に使用される。仮想リンク制御ブロックは、この位置が
どこであるかを示す。この位置は、以降、仮想リンク
バッファーと呼ばれる。
送られる個々のパケットとともに含まれるべき追加の情
報を含むか、あるいは、これがマイクロコンピュータの
メモリー内のどこに発見てきるかを示す。個々の仮想リ
ンクとは一つのメモリー位置が関連し、これは、そのパ
ケットを受信するためにプロセスが待ってないような場
合にその仮想リンクに到達するパケットを格納するため
に使用される。仮想リンク制御ブロックは、この位置が
どこであるかを示す。この位置は、以降、仮想リンク
バッファーと呼ばれる。
以下においては、これら仮想リンクの網内のマイクロコ
ンピュータ間のメツセージ伝送を実行するための使用に
ついて詳細に説明される。以下の説明から、これらマイ
クロコンピュータは互いに直接に接続される必要はなく
、網内の経路指定デバイスを介して接続できることが明
らかである。
ンピュータ間のメツセージ伝送を実行するための使用に
ついて詳細に説明される。以下の説明から、これらマイ
クロコンピュータは互いに直接に接続される必要はなく
、網内の経路指定デバイスを介して接続できることが明
らかである。
通信コントローラのプロセッサによるI10要求に対す
る応答 マイクロコンピュータのプロセッサ2によって実行され
ているプロセスP1がもう一つのマイクロコンピュータ
上のプロセスP2と通信したい場合、第一のマイクロコ
ンピュータのプロセッサ2は、同一のマイクロコンピュ
ータの通信コントローラ6に要求を送る。個々の要求は
、メツセージを送る要求、あるいはメツセージを受信す
る要求であり得る。個々の要求は、その上にメツセージ
が送られるべき、あるいはそれからメツセージが受信さ
れるべき仮想リンクVLiの識別子、メツセージのバイ
トでの長さ、及び要求を行なっているプロセスを同定す
るプロセス記述子を伴う。メツセージを送信することに
対する個々の要求はまたマイクロコンピュータのメモリ
ー4内のそこから送られるべきデータが開始する位置の
アドレス(データ ポインタ)を伴う。メツセージ受信
に対する要求はまたメモリー内の受信されたメツセージ
が格納されるべき位置のアドレスを伴う。以下の説明に
おいては、一つのマイクロコンピュータ上において実行
されているプロセスP1がデータを遠隔のマイクロコン
ピュータ上において実行されているプロセスP2に送る
ことを望むものと想定する。
る応答 マイクロコンピュータのプロセッサ2によって実行され
ているプロセスP1がもう一つのマイクロコンピュータ
上のプロセスP2と通信したい場合、第一のマイクロコ
ンピュータのプロセッサ2は、同一のマイクロコンピュ
ータの通信コントローラ6に要求を送る。個々の要求は
、メツセージを送る要求、あるいはメツセージを受信す
る要求であり得る。個々の要求は、その上にメツセージ
が送られるべき、あるいはそれからメツセージが受信さ
れるべき仮想リンクVLiの識別子、メツセージのバイ
トでの長さ、及び要求を行なっているプロセスを同定す
るプロセス記述子を伴う。メツセージを送信することに
対する個々の要求はまたマイクロコンピュータのメモリ
ー4内のそこから送られるべきデータが開始する位置の
アドレス(データ ポインタ)を伴う。メツセージ受信
に対する要求はまたメモリー内の受信されたメツセージ
が格納されるべき位置のアドレスを伴う。以下の説明に
おいては、一つのマイクロコンピュータ上において実行
されているプロセスP1がデータを遠隔のマイクロコン
ピュータ上において実行されているプロセスP2に送る
ことを望むものと想定する。
出力要求
マイクロコンピュータのプロセッサ2がマイクロコンピ
ュータの通信コントローラ6にある特定の仮想リンクV
Li上にメツセージを送る要求を行なうと、通信コント
ローラ6は、選択された仮想リンクVLiの制御ブロッ
ク内にこの送信プロセスP1の記述子を格納し、また、
マイクロコンピュータのメモリー内にメツセージの長さ
及びデータ ポインタを格納する。これは、その仮想リ
ンクVLiの制御ブロックを後に説明する方法にてメツ
セージ リンク10を使用することを待つ仮想リンクの
持ち行列の後部に置く。この仮想リンクがメツセージ
リンクを使用するための持ち行列の前部にあり、そのメ
ツセージリンクが使用できる状態になると、通信コント
ローラ6は、その仮想リンクVLiを持ち行列から取り
、その長さのメツセージ及び送られるべきデータに対す
るポインタをマイクロコンピュータのメモリーから読み
出してデータ パケットを形成する。これは、仮想リン
クVLiの制御ブロックによって供給されるそれにデー
タが送られるべき遠隔マイクロコンピュータ上の仮想リ
ンクVLjを同定する見出し部分を含む。送信されるべ
きデータの二が一つのパケット内に含むことができるデ
ータの最大量以下であるときは、そのメツセージの全部
が一つのパケット内に送られる。送られるべきデータの
量が一つのパケット内に含むことができるデータの最大
量を越えるときは、メツセージの最初の部分がデータの
最大量を含むパケット内に送られる。
ュータの通信コントローラ6にある特定の仮想リンクV
Li上にメツセージを送る要求を行なうと、通信コント
ローラ6は、選択された仮想リンクVLiの制御ブロッ
ク内にこの送信プロセスP1の記述子を格納し、また、
マイクロコンピュータのメモリー内にメツセージの長さ
及びデータ ポインタを格納する。これは、その仮想リ
ンクVLiの制御ブロックを後に説明する方法にてメツ
セージ リンク10を使用することを待つ仮想リンクの
持ち行列の後部に置く。この仮想リンクがメツセージ
リンクを使用するための持ち行列の前部にあり、そのメ
ツセージリンクが使用できる状態になると、通信コント
ローラ6は、その仮想リンクVLiを持ち行列から取り
、その長さのメツセージ及び送られるべきデータに対す
るポインタをマイクロコンピュータのメモリーから読み
出してデータ パケットを形成する。これは、仮想リン
クVLiの制御ブロックによって供給されるそれにデー
タが送られるべき遠隔マイクロコンピュータ上の仮想リ
ンクVLjを同定する見出し部分を含む。送信されるべ
きデータの二が一つのパケット内に含むことができるデ
ータの最大量以下であるときは、そのメツセージの全部
が一つのパケット内に送られる。送られるべきデータの
量が一つのパケット内に含むことができるデータの最大
量を越えるときは、メツセージの最初の部分がデータの
最大量を含むパケット内に送られる。
通信コントローラ6は、メツセージの長さ及び送られる
べきデータに対するポインタをメツセージの幾らかある
いは全てが送られた事実を反映するように修正し、次に
、これらをマイクロコンピュータのメモリー内に格納し
なおす。
べきデータに対するポインタをメツセージの幾らかある
いは全てが送られた事実を反映するように修正し、次に
、これらをマイクロコンピュータのメモリー内に格納し
なおす。
入力要求
遠隔マイクロコンピュータのプロセッサ2によって実行
されているプロセスP2がマイクロコンピュータの通信
コントローラ6にメツセージを特定の仮想リンクVLi
上に受信する要求を行なうと、通信コントローラ6は、
そのリンクの入り仮想チャネルと関連するバッファが空
であるか否かのチエツクを行なう。
されているプロセスP2がマイクロコンピュータの通信
コントローラ6にメツセージを特定の仮想リンクVLi
上に受信する要求を行なうと、通信コントローラ6は、
そのリンクの入り仮想チャネルと関連するバッファが空
であるか否かのチエツクを行なう。
その仮想チャネルと関連するバッファーが空であるとき
は、通信コントローラ6が要求プロセスP2の識別子を
選択された仮想リンクVLjの制御ブロック内に格納し
、そのメツセージの長さ及びデータがマイクロコンピュ
ータのメモリー内に書き込まれるべきアドレスを格納す
る。
は、通信コントローラ6が要求プロセスP2の識別子を
選択された仮想リンクVLjの制御ブロック内に格納し
、そのメツセージの長さ及びデータがマイクロコンピュ
ータのメモリー内に書き込まれるべきアドレスを格納す
る。
仮想チャネルと関連するバッファーが空でないときは、
通信コントローラ6は、マイクロコンピュータのプロセ
ッサ2に、バッファー内に格納されたデータを入力プロ
セスP2と関連し、その要求内のアドレスによって同定
されるデータ格納領域内にコピーするように命令する。
通信コントローラ6は、マイクロコンピュータのプロセ
ッサ2に、バッファー内に格納されたデータを入力プロ
セスP2と関連し、その要求内のアドレスによって同定
されるデータ格納領域内にコピーするように命令する。
プロセスがパケットのバッファーへの書き込みが開始さ
れた後に仮想リンク上にメツセージを受信することを要
求したときは、通信コントローラは、データはバッファ
ーへの書き込みを完結させ、プロセッサにデータをバッ
ファーから入力プロセッサの作業空間にコピーするよう
に要求する。通信コントローラは、次に、仮想リンクV
Liをメツセージ リンクに対する持ち行列上に通し、
結果として、確認パケットがリンクVLjの出仮想チャ
ネル上に、その仮想チャネルによって供給されるパケッ
トが送られてきた仮想リンクVLiを同定する見出し部
分とともに送られるようにする。プロセスP2によって
通信コントローラに供給された受信されるべきバイト数
のカウントが一つのパケット内に含むことができるデー
タの最大量以下であるときは、このバッファー内にある
データはそのメツセージの全部である。メツセージが全
部受信されたために、通信コントローラは、入力プロセ
スP2の記述子をプロセッサに戻し、これがその後実行
されるようにする。メツセージが完全に受信されてない
ときは、通信コントローラは、入力プロセスP2の記述
子を選択された仮想リンクの制御ブロック内に格納し、
マイクロコンピュータのメモリー内に残されたメツセー
ジの長さ及びデータが書き込まれるべき次の位置のアド
レスを格納する。
れた後に仮想リンク上にメツセージを受信することを要
求したときは、通信コントローラは、データはバッファ
ーへの書き込みを完結させ、プロセッサにデータをバッ
ファーから入力プロセッサの作業空間にコピーするよう
に要求する。通信コントローラは、次に、仮想リンクV
Liをメツセージ リンクに対する持ち行列上に通し、
結果として、確認パケットがリンクVLjの出仮想チャ
ネル上に、その仮想チャネルによって供給されるパケッ
トが送られてきた仮想リンクVLiを同定する見出し部
分とともに送られるようにする。プロセスP2によって
通信コントローラに供給された受信されるべきバイト数
のカウントが一つのパケット内に含むことができるデー
タの最大量以下であるときは、このバッファー内にある
データはそのメツセージの全部である。メツセージが全
部受信されたために、通信コントローラは、入力プロセ
スP2の記述子をプロセッサに戻し、これがその後実行
されるようにする。メツセージが完全に受信されてない
ときは、通信コントローラは、入力プロセスP2の記述
子を選択された仮想リンクの制御ブロック内に格納し、
マイクロコンピュータのメモリー内に残されたメツセー
ジの長さ及びデータが書き込まれるべき次の位置のアド
レスを格納する。
通信コントローラのパケットの到着に対する応答パケッ
トがメツセージ リンク10上に到達すると、通信コン
トローラ6は、仮想リンクを同定する見出し部分をパケ
ット内に含まれる追加の情報から抽出する。
トがメツセージ リンク10上に到達すると、通信コン
トローラ6は、仮想リンクを同定する見出し部分をパケ
ット内に含まれる追加の情報から抽出する。
データ パケット
パケットがデータも含むときは、通信コントローラは、
同定された仮想リンクVLjの制御ブロックを検査し、
この仮想リンク上にメ・シーセージを受信することを待
つプロセッサP2のプロセス記述子が格納されていない
か調べる。
同定された仮想リンクVLjの制御ブロックを検査し、
この仮想リンク上にメ・シーセージを受信することを待
つプロセッサP2のプロセス記述子が格納されていない
か調べる。
メツセージを受信することを待っているプロセスP2が
存在するときは、通信コントローラは、プロセスP2の
データ格納領域の格納されたアドレスを読み出し、この
パケット内のデータをそのプロセスのデータ領域内に該
当するメモリー位置から開始して書き込む。通信コント
ローラは、仮想リンクVLjの制御ブロックをメツセー
ジ リンクに対する持ち行列上に通し、結果として、確
認パケットが仮想リンクVLiへのリンクVLjの出仮
想チャネル上に送られるようにする。通信コントローラ
は、受信されるべきバイト数の格納されたカウントを読
み出す。受信されるべきバイト数のカウントが一つのパ
ケット内に含むことができるデータの最大量以下である
ときは、このパケット内にあるデータは、メツセージの
全部を含む。メツセージが全部受信されたために、通信
コントローラは、仮想リンクVLj内に格納される入力
プロセスP2の記述子をプロセッサに戻し、それがその
後実行できるようにする。通信コントローラはまた人力
プロセスの記述子のかわりに仮想リンクVLj内にゼロ
のプロセス記述子を格納する。メツセージが完全に受信
されてないときは、通信コントローラは、残りのメツセ
ージの長さのカウントが一つのパケット内に含むことが
できるデータの最大量だけ減らし、データがマイクロコ
ンピュータのメモリー内に書き込まれるべき次のメモリ
ー位置のアドレスを同量だけ増加させる。
存在するときは、通信コントローラは、プロセスP2の
データ格納領域の格納されたアドレスを読み出し、この
パケット内のデータをそのプロセスのデータ領域内に該
当するメモリー位置から開始して書き込む。通信コント
ローラは、仮想リンクVLjの制御ブロックをメツセー
ジ リンクに対する持ち行列上に通し、結果として、確
認パケットが仮想リンクVLiへのリンクVLjの出仮
想チャネル上に送られるようにする。通信コントローラ
は、受信されるべきバイト数の格納されたカウントを読
み出す。受信されるべきバイト数のカウントが一つのパ
ケット内に含むことができるデータの最大量以下である
ときは、このパケット内にあるデータは、メツセージの
全部を含む。メツセージが全部受信されたために、通信
コントローラは、仮想リンクVLj内に格納される入力
プロセスP2の記述子をプロセッサに戻し、それがその
後実行できるようにする。通信コントローラはまた人力
プロセスの記述子のかわりに仮想リンクVLj内にゼロ
のプロセス記述子を格納する。メツセージが完全に受信
されてないときは、通信コントローラは、残りのメツセ
ージの長さのカウントが一つのパケット内に含むことが
できるデータの最大量だけ減らし、データがマイクロコ
ンピュータのメモリー内に書き込まれるべき次のメモリ
ー位置のアドレスを同量だけ増加させる。
通信コントローラは、こうして更新された長さ及びアド
レスをマイクロコンピュータのメモリー内に格納し戻す
。
レスをマイクロコンピュータのメモリー内に格納し戻す
。
仮想リンク10上にメツセージを受信することを待つこ
のようなプロセスが存在しないときは、通信コントロー
ラは、仮想リンク制御ブロックを棲査して、その仮想リ
ンクと関連するバッファーの位置を得る。通信コントロ
ーラは、次に、入りパケットのデータをそのバッファー
内に書き込ませる。上に説明のように、プロセスがパケ
ットのバッファーへの書き込みが開始された後に、仮想
リンク上にメツセージを受信するように要求したときは
、通信コントローラは、データのバッファーへの書き込
みを完結させ、プロセッサにデータをバッファー人カプ
ロセスの作業空間にコピーするよう要求する。通信コン
トローラは、この仮想リンク コントロール ブロック
をメツセージリンクに対する持ち行列上に通し、結果と
して、確認パケットがこのリンクの出仮想チャネル上に
送られるようにする。プロセッサによって通信コントロ
ーラに供給された受信されるべきバイス数のカウントが
一つのパケット内内に含むことができるデータの最大量
以下であるときは、パケット内のデータはメツセージの
全部である。メツセージが全部受信されたために、通信
コントローラは、入力プロセスの記述子をこのプロセッ
サに戻し、これがその後実行できるようにする。プロセ
ッサによって通信コントローラに供給された受信される
べきバイト数のカウントが、一つのパケット内に含むこ
とができるデータの最大量より大きなときは、このパケ
ット内のデータは、そのメツセージの全部ではありえな
い。メツセージが全部受信されてないために、通信コン
トローラは、入力プロセスの記述子を選択された仮想リ
ンクの制御ブロック内に格納し、また、マイクロコンピ
ュータのメモリー内に、残りのメツセージの長さ及びデ
ータが書き込まれるべき次の位置に対するアドレスを書
き込む。
のようなプロセスが存在しないときは、通信コントロー
ラは、仮想リンク制御ブロックを棲査して、その仮想リ
ンクと関連するバッファーの位置を得る。通信コントロ
ーラは、次に、入りパケットのデータをそのバッファー
内に書き込ませる。上に説明のように、プロセスがパケ
ットのバッファーへの書き込みが開始された後に、仮想
リンク上にメツセージを受信するように要求したときは
、通信コントローラは、データのバッファーへの書き込
みを完結させ、プロセッサにデータをバッファー人カプ
ロセスの作業空間にコピーするよう要求する。通信コン
トローラは、この仮想リンク コントロール ブロック
をメツセージリンクに対する持ち行列上に通し、結果と
して、確認パケットがこのリンクの出仮想チャネル上に
送られるようにする。プロセッサによって通信コントロ
ーラに供給された受信されるべきバイス数のカウントが
一つのパケット内内に含むことができるデータの最大量
以下であるときは、パケット内のデータはメツセージの
全部である。メツセージが全部受信されたために、通信
コントローラは、入力プロセスの記述子をこのプロセッ
サに戻し、これがその後実行できるようにする。プロセ
ッサによって通信コントローラに供給された受信される
べきバイト数のカウントが、一つのパケット内に含むこ
とができるデータの最大量より大きなときは、このパケ
ット内のデータは、そのメツセージの全部ではありえな
い。メツセージが全部受信されてないために、通信コン
トローラは、入力プロセスの記述子を選択された仮想リ
ンクの制御ブロック内に格納し、また、マイクロコンピ
ュータのメモリー内に、残りのメツセージの長さ及びデ
ータが書き込まれるべき次の位置に対するアドレスを書
き込む。
確認パケット
到若パケット内にデータが存在しないときは、通信コン
トローラは、このパケットを仮想リンクVLiによって
プロセッサP1から送られた前のデータ パケットが入
力プロセスP2によって受信されたことを示す確認であ
ると扱う。通信コントローラは、マイクロコンピュータ
のメモリーから選択された仮想リンクVLiを介してま
だ送られるべきプロセスP1からのメツセージのバイト
数のカウントを読み出す。
トローラは、このパケットを仮想リンクVLiによって
プロセッサP1から送られた前のデータ パケットが入
力プロセスP2によって受信されたことを示す確認であ
ると扱う。通信コントローラは、マイクロコンピュータ
のメモリーから選択された仮想リンクVLiを介してま
だ送られるべきプロセスP1からのメツセージのバイト
数のカウントを読み出す。
まだ送られるべきバイト数のカウントがゼロでない場合
は、通信コントローラは、仮想リンクをメツセージ リ
ンクに対する持ち行列上に再び通し、プロセスP1から
のそのメツセージのもう一つのデータ パケットがその
リンクの出仮想チャネル上に送られるようにする。
は、通信コントローラは、仮想リンクをメツセージ リ
ンクに対する持ち行列上に再び通し、プロセスP1から
のそのメツセージのもう一つのデータ パケットがその
リンクの出仮想チャネル上に送られるようにする。
まだ送られるべきバイト数のカウントがゼロであるとき
は、プロセスP1によって送られたメツセージは、プロ
セスP2によって完全に受信されており、このため、通
信コントローラは、仮想リンクVLi内に格納された送
信プロセスP1の記述子を読みだし、今確認された伝送
が完結したことをチエツクし、そして、その記述子をプ
ロセッサに戻し、このプロセスがその後実行できるよう
にする。通信コントーラはまた仮想リンクVLi内にゼ
ロのプロセス記述子を格納する。こうして、同期された
プロセスからプロセス間の通信が遠隔コンピュータ上の
プロセッサ間で実現される。
は、プロセスP1によって送られたメツセージは、プロ
セスP2によって完全に受信されており、このため、通
信コントローラは、仮想リンクVLi内に格納された送
信プロセスP1の記述子を読みだし、今確認された伝送
が完結したことをチエツクし、そして、その記述子をプ
ロセッサに戻し、このプロセスがその後実行できるよう
にする。通信コントーラはまた仮想リンクVLi内にゼ
ロのプロセス記述子を格納する。こうして、同期された
プロセスからプロセス間の通信が遠隔コンピュータ上の
プロセッサ間で実現される。
プロセッサと通信コントローラとの間のデータの交換
マイクロコンピュータのプロセッサ2によるプロセスの
実行があるメツセージを別のマイクロコンピュータに送
信するようにさせるためには、プロセッサは通信コント
ローラ6と対話しなければならない。これを達成するた
めに、プロセッサ2から通信コントローラ6への論理チ
ャネル12が存在する。通信コントローラ6がプロセッ
サ2にメツセージの完結を送信するために、反対方向の
論理チャネル14が存在する。論理チャネル12゜14
の各々はセットの信号を含む。マイクロコンピュータの
主データ パスは、これら信号チャネルを介していった
ん同期が達成されると語長値を通信するために使用され
る。
実行があるメツセージを別のマイクロコンピュータに送
信するようにさせるためには、プロセッサは通信コント
ローラ6と対話しなければならない。これを達成するた
めに、プロセッサ2から通信コントローラ6への論理チ
ャネル12が存在する。通信コントローラ6がプロセッ
サ2にメツセージの完結を送信するために、反対方向の
論理チャネル14が存在する。論理チャネル12゜14
の各々はセットの信号を含む。マイクロコンピュータの
主データ パスは、これら信号チャネルを介していった
ん同期が達成されると語長値を通信するために使用され
る。
これら制御信号は、要求及び応答の二つのタイプである
。要求は、プロセッサ2及び通信コントローラ6の両方
によって自律的に送られ、応答は、要求及びデータを受
信した後に送られる。
。要求は、プロセッサ2及び通信コントローラ6の両方
によって自律的に送られ、応答は、要求及びデータを受
信した後に送られる。
プロセッサ2が論理チャネル12上に通信コントローラ
6への要求を送る度に、これは、他方のチャネル14上
に応答を待つ。通信コントローラ6が論理チャネル14
上にプロセッサ2への要求を送る度に、これは他方のチ
ャネル12上に応答を待つ。これは、通信コントローラ
6がプロセッサ2からのデータの流れを調節することを
可能とし、また、プロセッサ2が通信コントローラ6か
らのデータ値の流れを調節することを許す。
6への要求を送る度に、これは、他方のチャネル14上
に応答を待つ。通信コントローラ6が論理チャネル14
上にプロセッサ2への要求を送る度に、これは他方のチ
ャネル12上に応答を待つ。これは、通信コントローラ
6がプロセッサ2からのデータの流れを調節することを
可能とし、また、プロセッサ2が通信コントローラ6か
らのデータ値の流れを調節することを許す。
プロセッサ2及び通信コントローラ6が独立して動作し
、また、異なる長さの時間を取る動作を遂行する゛ため
に、これらの両者が同時に他方に要求を送ることがある
。このために、これらの一方がそれ自体の要求を破棄し
、他方に応答する用意がなければならず、さもなければ
、デッドロックが起こる。この好ましい実施態様におい
ては、プロセッサはその要求をこれが通信コントローラ
から応答ではなく要求を受信したとき放棄する。
、また、異なる長さの時間を取る動作を遂行する゛ため
に、これらの両者が同時に他方に要求を送ることがある
。このために、これらの一方がそれ自体の要求を破棄し
、他方に応答する用意がなければならず、さもなければ
、デッドロックが起こる。この好ましい実施態様におい
ては、プロセッサはその要求をこれが通信コントローラ
から応答ではなく要求を受信したとき放棄する。
マイクロコンピュータによって実行されるプロセスP1
がメツセージを別のマイクロコンピュータ上のプロセス
P2に送ることを望むとき、このプロセスは通信コント
ローラにその値が“出力”を意味する要求を送る。この
要求が通信コントローラによって確認されると、プロセ
ッサはそのプロセスが使用することを望む仮想リンクV
Liの識別子を送る。これが通信コントローラによって
確認されると、プロセッサはデータ ポインタ、つまり
、送られるべきデータのブロックのベースのアドレスを
送る。これが通信コントローラによって確認されると、
プロセッサは伝送されるべきデータのバイト数を送るが
、これはゼロより大きくなければならない。これが通信
コントローラによって確認されると、プロセッサは送信
プロセスの記述子を送る。これが通信コントローラによ
って確認されると、プロセッサは、次に、別のプロセス
の実行に移る。データ領域のベースのアドレス及び伝送
されるべきデータのバイト数のカウントから成るデータ
ポインタは、データのブロックのベースに対するポイ
ンタ及びデータのブロックのトップに対するポインタに
よって置換することも、あるいはデータのブロックのト
ップに対するポインタ及び伝送されるべきデータのバイ
ト数のカウントによって置換することもでき、これらは
全体の動作に大きな影響を与えるものではない。
がメツセージを別のマイクロコンピュータ上のプロセス
P2に送ることを望むとき、このプロセスは通信コント
ローラにその値が“出力”を意味する要求を送る。この
要求が通信コントローラによって確認されると、プロセ
ッサはそのプロセスが使用することを望む仮想リンクV
Liの識別子を送る。これが通信コントローラによって
確認されると、プロセッサはデータ ポインタ、つまり
、送られるべきデータのブロックのベースのアドレスを
送る。これが通信コントローラによって確認されると、
プロセッサは伝送されるべきデータのバイト数を送るが
、これはゼロより大きくなければならない。これが通信
コントローラによって確認されると、プロセッサは送信
プロセスの記述子を送る。これが通信コントローラによ
って確認されると、プロセッサは、次に、別のプロセス
の実行に移る。データ領域のベースのアドレス及び伝送
されるべきデータのバイト数のカウントから成るデータ
ポインタは、データのブロックのベースに対するポイ
ンタ及びデータのブロックのトップに対するポインタに
よって置換することも、あるいはデータのブロックのト
ップに対するポインタ及び伝送されるべきデータのバイ
ト数のカウントによって置換することもでき、これらは
全体の動作に大きな影響を与えるものではない。
プロセスP1が送ることを要求するメツセージがもう一
つのマイクロコンピュータ上のプロセスP2に送られ、
このマイクロコンピュータがこのメツセージの受信を確
認すると、第一のマイクロコンピュータの通信コントロ
ーラは、第一のマイクロコンピュータのプロセッサに一
つの要求を送る。このプロセッサがこの要求を確認する
と、通信コントローラは、このプロセッサに、そのプロ
セッサがメツセージが送られるべきことを要求したとき
このプロセッサから通信コントローラに送られた送信プ
ロセスP1の記述子を送る。
つのマイクロコンピュータ上のプロセスP2に送られ、
このマイクロコンピュータがこのメツセージの受信を確
認すると、第一のマイクロコンピュータの通信コントロ
ーラは、第一のマイクロコンピュータのプロセッサに一
つの要求を送る。このプロセッサがこの要求を確認する
と、通信コントローラは、このプロセッサに、そのプロ
セッサがメツセージが送られるべきことを要求したとき
このプロセッサから通信コントローラに送られた送信プ
ロセスP1の記述子を送る。
マイクロコンピュータによって実行されているプロセス
P2が別のマイクロコンピュータ上のプロセスP1から
メツセージを受信することを望むとき、このプロセッサ
は、通信コントローラにその値が“入力“を意味する要
求を送る。この要求が通信コントローラによって確認さ
れると、このプロセッサはプロセスP2が使用すること
を望む仮想リンクVLjの識別子を送る。これが通信コ
ントローラ6によって確認されると、プロセッサ2は、
受信されたデータがその中にロードされるべきデータ領
域のベースに対するポインタを送る。
P2が別のマイクロコンピュータ上のプロセスP1から
メツセージを受信することを望むとき、このプロセッサ
は、通信コントローラにその値が“入力“を意味する要
求を送る。この要求が通信コントローラによって確認さ
れると、このプロセッサはプロセスP2が使用すること
を望む仮想リンクVLjの識別子を送る。これが通信コ
ントローラ6によって確認されると、プロセッサ2は、
受信されたデータがその中にロードされるべきデータ領
域のベースに対するポインタを送る。
これが通信コントローラ6によって確認されると、プロ
セッサ2は、受信されるべきデータのバイト数を送るが
、これは、ゼロより大きくなければならない。データ領
域のベースへのポインタ及び受信されるべきデータのバ
イト数のカウントは、データ領域のベースに対するポイ
ンタ及びデータ領域のトップに対するポインタによって
置換することも、あるいはデータ領域のトップに対する
ポインタ及び受信されるべきデータのバイト数のカウン
トによって置換することもでき、これらは全体の動作に
大きな影響を与えるものではない。バイトの数が通信コ
ントローラによって確認されると、プロセッサはプロセ
スP2の記述子を送る。
セッサ2は、受信されるべきデータのバイト数を送るが
、これは、ゼロより大きくなければならない。データ領
域のベースへのポインタ及び受信されるべきデータのバ
イト数のカウントは、データ領域のベースに対するポイ
ンタ及びデータ領域のトップに対するポインタによって
置換することも、あるいはデータ領域のトップに対する
ポインタ及び受信されるべきデータのバイト数のカウン
トによって置換することもでき、これらは全体の動作に
大きな影響を与えるものではない。バイトの数が通信コ
ントローラによって確認されると、プロセッサはプロセ
スP2の記述子を送る。
ここで、二つの可能性が存在する。通信コントローラが
確認にて応答すると、プロセッサは、次に、別のプロセ
スの実行を開始する。別のケースとして、通信コントロ
ーラは、プロセッサからの仮想リンク識別子の受信に応
答して、“データ移動”を意味する制御値にて応答する
こともある。
確認にて応答すると、プロセッサは、次に、別のプロセ
スの実行を開始する。別のケースとして、通信コントロ
ーラは、プロセッサからの仮想リンク識別子の受信に応
答して、“データ移動”を意味する制御値にて応答する
こともある。
プロセッサ2は、これを確認し、次に、通信コントロー
ラ6は移動されるべきデータのブロックのベースに対す
るポインタを送る。プロセッサ2は、これを確認し、通
信コントローラ6は、移動されるべきデータの量のカウ
ントを送る。プロセッサ2はこれを確認し、次に、通信
コントローラ6によって要求されたデータの量を、通信
コントローラによって与えられたポインタから開始して
、そのベースが通信コントローラに既に送られたポイン
タによってポイントされるデータ格納領域にコピーする
。プロセッサは、次に、別のプロセスの実行に進む。移
動されるべきデータのベースに対するポインタ及び移動
されるべきデータのバイト数のカウントは、データのブ
ロックのベースに対するポインタ及びデータのブロック
のトップに対するポインタによって、あるいはデータの
ブロックのトップに対するポインタ及び移動されるべき
データのバイト数のカウントによって置換することがで
き、これらは、全体としての動作に大きな影響を与える
ものではないことは勿論である。
ラ6は移動されるべきデータのブロックのベースに対す
るポインタを送る。プロセッサ2は、これを確認し、通
信コントローラ6は、移動されるべきデータの量のカウ
ントを送る。プロセッサ2はこれを確認し、次に、通信
コントローラ6によって要求されたデータの量を、通信
コントローラによって与えられたポインタから開始して
、そのベースが通信コントローラに既に送られたポイン
タによってポイントされるデータ格納領域にコピーする
。プロセッサは、次に、別のプロセスの実行に進む。移
動されるべきデータのベースに対するポインタ及び移動
されるべきデータのバイト数のカウントは、データのブ
ロックのベースに対するポインタ及びデータのブロック
のトップに対するポインタによって、あるいはデータの
ブロックのトップに対するポインタ及び移動されるべき
データのバイト数のカウントによって置換することがで
き、これらは、全体としての動作に大きな影響を与える
ものではないことは勿論である。
このプロトコールは通信コントローラがプロセッサがそ
れをすることができることを前提として、マイクロコン
ピュータ メモリーの一つの部分から別の部分にデータ
をコピーできる必要性を排除する。合衆国特許第470
4678号において説明されるマイクロコンピュータの
ケースにおいては、プロセッサはデータを非常に効率よ
くコピーすることができる。
れをすることができることを前提として、マイクロコン
ピュータ メモリーの一つの部分から別の部分にデータ
をコピーできる必要性を排除する。合衆国特許第470
4678号において説明されるマイクロコンピュータの
ケースにおいては、プロセッサはデータを非常に効率よ
くコピーすることができる。
プロセッサ要求を受信すべきであるというメツセージが
もう一つのマイクロコンピュータから受信されると、第
一のマイクロコンピュータの通信コントローラは、第一
のマイクロコンピュータのプロセッサに一つのメツセー
ジを送る。このプロセッサがこの要求を確認すると、通
信コントローラは、このプロセッサに、このプロセッサ
から通信コントローラにこのプロセッサがこのメツセー
ジが受信されるべきであることを要求したとき送られた
プロセス記述子を送る。
もう一つのマイクロコンピュータから受信されると、第
一のマイクロコンピュータの通信コントローラは、第一
のマイクロコンピュータのプロセッサに一つのメツセー
ジを送る。このプロセッサがこの要求を確認すると、通
信コントローラは、このプロセッサに、このプロセッサ
から通信コントローラにこのプロセッサがこのメツセー
ジが受信されるべきであることを要求したとき送られた
プロセス記述子を送る。
この構成においては、マイクロコンピュータのプロセッ
サは、そのプロセスが論理チャネル上にメツセージを入
力あるいは出力することを要求した後は、プロセスの実
行を停止し、そのプロセスの実行を、通信コントローラ
がプロセスの記述子を戻した後に初めて開始し、これに
よって、個々のプロセスから見られた場合、メツセージ
伝送がメツセージを交換する二つのプロセスがメツセー
ジが片方から他方に完全に伝送された後に初めて進行さ
れるという意味において完全に同期されることが確保さ
れる。
サは、そのプロセスが論理チャネル上にメツセージを入
力あるいは出力することを要求した後は、プロセスの実
行を停止し、そのプロセスの実行を、通信コントローラ
がプロセスの記述子を戻した後に初めて開始し、これに
よって、個々のプロセスから見られた場合、メツセージ
伝送がメツセージを交換する二つのプロセスがメツセー
ジが片方から他方に完全に伝送された後に初めて進行さ
れるという意味において完全に同期されることが確保さ
れる。
任意の長さのメツセージのパケットへの分割上の説明か
ら、片方のマイクロコンピュータ上のプロセスP1から
もう一つのマイクロコンピュータ上のプロセスP2に送
られるメツセージは任意の長さを持つことが明らかであ
る。通信コントローラは、マイクロコンピュータのプロ
セスによって送られることを依頼された個々のメツセー
ジを複数のパケットに分割し、個々のメツセージリンク
上の異なるメツセージのパケットをインターリーブし、
見かけ上は、全てのメツセージか同時に伝送されるよう
にする。
ら、片方のマイクロコンピュータ上のプロセスP1から
もう一つのマイクロコンピュータ上のプロセスP2に送
られるメツセージは任意の長さを持つことが明らかであ
る。通信コントローラは、マイクロコンピュータのプロ
セスによって送られることを依頼された個々のメツセー
ジを複数のパケットに分割し、個々のメツセージリンク
上の異なるメツセージのパケットをインターリーブし、
見かけ上は、全てのメツセージか同時に伝送されるよう
にする。
異なるメツセージの部分であるパケットがそれらを受信
するマイクロコンピュータの通信コントローラによって
区別できるようにするために、個々のパケットは、デー
タ パケットを表わすメツセージの部分に加えて追加の
情報を含まなければならない。プロセスは事前に割り当
てられた仮想チャネルを介してのみ通信することが許さ
れるため、パケット内に含まれる追加の情報については
、これが受信されたとき、受信マイクロコンピュータの
入力仮想チャネルが同定できれば十分である。
するマイクロコンピュータの通信コントローラによって
区別できるようにするために、個々のパケットは、デー
タ パケットを表わすメツセージの部分に加えて追加の
情報を含まなければならない。プロセスは事前に割り当
てられた仮想チャネルを介してのみ通信することが許さ
れるため、パケット内に含まれる追加の情報については
、これが受信されたとき、受信マイクロコンピュータの
入力仮想チャネルが同定できれば十分である。
パケットが伝送されるとき、これはまたパケット交換網
、例えば、我々の未決の特許筒 (Page White & Farrcr Rcf
: 64318)において説明される経路指定スイッチ
から成る網を通じてパケットをルーティングするための
情報を含む。この経路指定情報は、受信マイクロコンピ
ュータの入力チャネルの同定内に編入することも、ある
いは、パケットがマイクロコンピュータによって受信さ
れる前に、経路指定スイッチによって破棄することもで
きる。任意の経路指定情報と受信マイクロコンピュータ
の仮想入力チャネルVLjの同定との組合わせは、送信
マイクロコンピュータの仮想出力チャネルVLiを同定
する。
、例えば、我々の未決の特許筒 (Page White & Farrcr Rcf
: 64318)において説明される経路指定スイッチ
から成る網を通じてパケットをルーティングするための
情報を含む。この経路指定情報は、受信マイクロコンピ
ュータの入力チャネルの同定内に編入することも、ある
いは、パケットがマイクロコンピュータによって受信さ
れる前に、経路指定スイッチによって破棄することもで
きる。任意の経路指定情報と受信マイクロコンピュータ
の仮想入力チャネルVLjの同定との組合わせは、送信
マイクロコンピュータの仮想出力チャネルVLiを同定
する。
データ パケット内に仮想チャネル情報を含めることに
より、個々のメツセージ リンク上にパケット内に含ま
れる仮想チャネル情報の瓜によって制約される最大量ま
での任意の数のチャネルを多重化することが可能となる
。さらに、個々の通信デバイス上に多重化される仮想チ
ャネルの数はある瞬間において異なる。
より、個々のメツセージ リンク上にパケット内に含ま
れる仮想チャネル情報の瓜によって制約される最大量ま
での任意の数のチャネルを多重化することが可能となる
。さらに、個々の通信デバイス上に多重化される仮想チ
ャネルの数はある瞬間において異なる。
パケット内に含まれるデータの星は上限を持つ。
個々のメツセージは、通信コントローラによって、シー
ケンスの一つあるいは複数のパケットに分割される。最
後のパケットをくこれら全てのパケットは最大量のデー
タを含み、最後のパケットは最大量あるいはそれ以下の
データを含む。メツセージをこのようにパケットに分割
することの長所は、単一の持ち行列から複数のDMAが
作業を供給された場合、同一メツセージの複数のパケッ
トの伝送を安全に多重させることができることである。
ケンスの一つあるいは複数のパケットに分割される。最
後のパケットをくこれら全てのパケットは最大量のデー
タを含み、最後のパケットは最大量あるいはそれ以下の
データを含む。メツセージをこのようにパケットに分割
することの長所は、単一の持ち行列から複数のDMAが
作業を供給された場合、同一メツセージの複数のパケッ
トの伝送を安全に多重させることができることである。
好ましい実施態様においては、メツセージは任意のバイ
ト数である。パケットは一つあるいは二つの“見出し”
バイトを含むが、これらは、受信マイクロコンピュータ
によって、仮想入力チャネルの数として解釈される。一
つあるいは2バイトの間の選択は、通信コントローラ内
のフラッグ118(後に説明の第7図)によって決定さ
れる。
ト数である。パケットは一つあるいは二つの“見出し”
バイトを含むが、これらは、受信マイクロコンピュータ
によって、仮想入力チャネルの数として解釈される。一
つあるいは2バイトの間の選択は、通信コントローラ内
のフラッグ118(後に説明の第7図)によって決定さ
れる。
パケットは最大数のデータ バイトを含むが、これは、
この好ましい実施態様においては32バイトである。こ
の上限は、通信コントローラ内のレジスタの値によって
セットされる。
この好ましい実施態様においては32バイトである。こ
の上限は、通信コントローラ内のレジスタの値によって
セットされる。
短いメツセージ(及び長いメツセージの最後の部分)は
、完全なパケットを占拠せず、経路指定情報は任意の長
さを持つために、どこでパケットが終端するかを示す情
報が必要となる。好ましい実施態様においては、この情
報は、後に説明されるメツセージ リンクによって使用
される低レベル プロトコールに符号化される。このプ
ロトコールは我々の未決の特許第 (Page
White & Farrcr Rcf、64318)
の経路指定スイッチ内のリンク モジュールとの関連で
説明のタイプであり得る。このメツセージ リンクによ
って使用されるプロトコールがこのような符号化を許さ
ない場合は、個々のパケットの長さの明示的なカウント
をパケット内にデータに加えて含めることもてきる。
、完全なパケットを占拠せず、経路指定情報は任意の長
さを持つために、どこでパケットが終端するかを示す情
報が必要となる。好ましい実施態様においては、この情
報は、後に説明されるメツセージ リンクによって使用
される低レベル プロトコールに符号化される。このプ
ロトコールは我々の未決の特許第 (Page
White & Farrcr Rcf、64318)
の経路指定スイッチ内のリンク モジュールとの関連で
説明のタイプであり得る。このメツセージ リンクによ
って使用されるプロトコールがこのような符号化を許さ
ない場合は、個々のパケットの長さの明示的なカウント
をパケット内にデータに加えて含めることもてきる。
好ましい実施態様においては、個々のパケットは第2図
に示される構造を持つ。この図面は左から右に読まれる
べきである。見出しは最初に伝送される経路指定及びチ
ャネル情報のバイトを持ち、これにパケットのデータ
バイトが続き、さらに、符号化されたパケット終端信号
が続く。
に示される構造を持つ。この図面は左から右に読まれる
べきである。見出しは最初に伝送される経路指定及びチ
ャネル情報のバイトを持ち、これにパケットのデータ
バイトが続き、さらに、符号化されたパケット終端信号
が続く。
メツセージの一部である個々のパケットは少なくとも1
バイトのデータを含まなければならないが、但し、パケ
ットの一部フオーマットは、ゼロバイトのデータを送る
ことを許す。経路指定及びチャネル情報のみを含み、ゼ
ロのデータ セクションを持つパケットは、確認パケッ
トであると解釈される。
バイトのデータを含まなければならないが、但し、パケ
ットの一部フオーマットは、ゼロバイトのデータを送る
ことを許す。経路指定及びチャネル情報のみを含み、ゼ
ロのデータ セクションを持つパケットは、確認パケッ
トであると解釈される。
プロセスからプロセスへの通信
マイクロコンピュータの通信コントローラ6は、メツセ
ージの最初のパケットを仮想チャネルVLiを介して他
のマイクロコンピュータに、これが、第一のマイクロコ
ンピュータのプロセッサ2によって実行されているプロ
セスP1からメツセージを送信しろという要求を受信し
た後に送る。
ージの最初のパケットを仮想チャネルVLiを介して他
のマイクロコンピュータに、これが、第一のマイクロコ
ンピュータのプロセッサ2によって実行されているプロ
セスP1からメツセージを送信しろという要求を受信し
た後に送る。
これは、第二のマイクロコンピュータ上の任意のプロセ
スが関連する人力仮想チャネルVLj上の人力を既に遂
行しているか否かに関係なく行なわれる。第二のマイク
ロコンピュータがこのパケットを受信すると、これは、
パケット内に含まれる追加の情報からその上にパケット
が送られる仮想チャネルVLjを同定する。第二のマイ
クロコンピュータ上のプロセスP2がそその仮想チャネ
ルVLj上の入力命令を既に実行しているときは、パケ
ット内に含まれるデータが入力プロセスP2のデータ空
間内に格納される。その仮想チャネル上の人力をどのプ
ロセスもまだ遂行していないときは、パケット内の含ま
れるデータはその仮想チャネルと関連するバッファー内
に格納される。第二のマイクロコンピュータ上のプロセ
スP2がその後その仮想チャネルVLi上の人力を遂行
すると、このチャネルVLiと関連するバッファー内に
含まれるデータがプロセスP2のデータ空間内にコピー
される。上に説明の如く、通信コントローラとマイクロ
コンピュータのプロセスとの間のプロトコールはこのコ
ピーがプロセッサによってなされることを確保する。
スが関連する人力仮想チャネルVLj上の人力を既に遂
行しているか否かに関係なく行なわれる。第二のマイク
ロコンピュータがこのパケットを受信すると、これは、
パケット内に含まれる追加の情報からその上にパケット
が送られる仮想チャネルVLjを同定する。第二のマイ
クロコンピュータ上のプロセスP2がそその仮想チャネ
ルVLj上の入力命令を既に実行しているときは、パケ
ット内に含まれるデータが入力プロセスP2のデータ空
間内に格納される。その仮想チャネル上の人力をどのプ
ロセスもまだ遂行していないときは、パケット内の含ま
れるデータはその仮想チャネルと関連するバッファー内
に格納される。第二のマイクロコンピュータ上のプロセ
スP2がその後その仮想チャネルVLi上の人力を遂行
すると、このチャネルVLiと関連するバッファー内に
含まれるデータがプロセスP2のデータ空間内にコピー
される。上に説明の如く、通信コントローラとマイクロ
コンピュータのプロセスとの間のプロトコールはこのコ
ピーがプロセッサによってなされることを確保する。
マイクロコンピュータの入力仮想チャネルと関連するバ
ッファーはデータの全パケットを含むのに十分に大きく
、従って、プロセスがそのチャネル上の入力を遂行する
前にパケットが到着した場合でもデータが失われること
はない。好ましい実施態様においては、バッファーはマ
イクロコンピュータのメモリーの、例えば、コンパイラ
−によってデータのパケットを緩衝する目的で割り当て
られた領域である。任意の一つのパケットによって運ば
れるデータの量の制限によって要求されるバッファーの
最大サイズが決定できる。この最大より小さなサイズの
バッファーは、仮想チャネルが一つのパケット内のデー
タの最大量よりも小さな周知のサイズのメツセージに対
してのみ使用されるときに使用される。
ッファーはデータの全パケットを含むのに十分に大きく
、従って、プロセスがそのチャネル上の入力を遂行する
前にパケットが到着した場合でもデータが失われること
はない。好ましい実施態様においては、バッファーはマ
イクロコンピュータのメモリーの、例えば、コンパイラ
−によってデータのパケットを緩衝する目的で割り当て
られた領域である。任意の一つのパケットによって運ば
れるデータの量の制限によって要求されるバッファーの
最大サイズが決定できる。この最大より小さなサイズの
バッファーは、仮想チャネルが一つのパケット内のデー
タの最大量よりも小さな周知のサイズのメツセージに対
してのみ使用されるときに使用される。
バッファー内に含まれるデータがオーバーライドされな
いようにするために、メツセージの一パケットを仮想チ
ャネルVLiを通じて別のマイクロコンピュータに送っ
たマイクロコンピュータの通信コントローラは、それが
第一のパケットが第二のマイクロコンピュータ上のプロ
セスのデータ格納空間内に格納されたという確認を受(
MするまでそのチャネルVLi上に別のパケットを送る
ことはない。この確認は、第二のマイクロコンピュータ
の通信コントローラによって仮想チャネルVLiを介し
て第一のマイクロコンピュータに送られるパケットであ
る。この第二の仮想チャネルVLiは、第一の論理チャ
ネルVLiと両方のマイクロコンピュータの通信コント
ローラによって関連付けられる。こうして、マイクロコ
ンピュータ間の仮想チャネルは、プロセスがパケットを
受信したことに応答して、確認が送れるように常にベア
にされる。
いようにするために、メツセージの一パケットを仮想チ
ャネルVLiを通じて別のマイクロコンピュータに送っ
たマイクロコンピュータの通信コントローラは、それが
第一のパケットが第二のマイクロコンピュータ上のプロ
セスのデータ格納空間内に格納されたという確認を受(
MするまでそのチャネルVLi上に別のパケットを送る
ことはない。この確認は、第二のマイクロコンピュータ
の通信コントローラによって仮想チャネルVLiを介し
て第一のマイクロコンピュータに送られるパケットであ
る。この第二の仮想チャネルVLiは、第一の論理チャ
ネルVLiと両方のマイクロコンピュータの通信コント
ローラによって関連付けられる。こうして、マイクロコ
ンピュータ間の仮想チャネルは、プロセスがパケットを
受信したことに応答して、確認が送れるように常にベア
にされる。
二つのマイクロコンピュータ間の仮想チャネルの関連す
るベアの各々の仮想チャネルは、二つのタイプのパケッ
トが二つのマイクロコンピュータの通信コントローラに
よって区別できるという前提の下でデータ パケット及
び確認パケットの両者を運ぶことができる。好ましい実
施態様におては、確認パケットは、経路指定及び論理チ
ャネル情報のみを含みデータを含まないパケットである
。
るベアの各々の仮想チャネルは、二つのタイプのパケッ
トが二つのマイクロコンピュータの通信コントローラに
よって区別できるという前提の下でデータ パケット及
び確認パケットの両者を運ぶことができる。好ましい実
施態様におては、確認パケットは、経路指定及び論理チ
ャネル情報のみを含みデータを含まないパケットである
。
通信コントローラは、これらパケットをパケット終端信
号が任意のデータが受信されることなく受信されるため
に区別することができる。
号が任意のデータが受信されることなく受信されるため
に区別することができる。
メツセージの第一のパケットがマイクロコンピュータへ
の仮想チャネルVLj上に到召し、このマイクロコンピ
ュータ上のプロセスP2がこのチャネル上の人力を遂行
すると、パケットを受信したマイクロコンピュータの通
信コントローラによってパケットを送信したマイクロコ
ンピュータに返信される。プロセスが仮想チャネル上の
入力命令をその仮想チャネル上にパケットが到達する前
に実行したときは、確認パケットがパケットがその仮想
チャネルに到着したときに送られる。パケットが任意の
プロセスがその仮想チャネル上の入力命令を実行する前
に到達すると、確認パケットがプロセスがその仮想チャ
ネル上の入力を遂行すると直ちに送られる。
の仮想チャネルVLj上に到召し、このマイクロコンピ
ュータ上のプロセスP2がこのチャネル上の人力を遂行
すると、パケットを受信したマイクロコンピュータの通
信コントローラによってパケットを送信したマイクロコ
ンピュータに返信される。プロセスが仮想チャネル上の
入力命令をその仮想チャネル上にパケットが到達する前
に実行したときは、確認パケットがパケットがその仮想
チャネルに到着したときに送られる。パケットが任意の
プロセスがその仮想チャネル上の入力命令を実行する前
に到達すると、確認パケットがプロセスがその仮想チャ
ネル上の入力を遂行すると直ちに送られる。
仮想リンク制御ブロックの構造
第5図に32ビット マイクロコンピュータデバイス内
に使用が可能な仮想リンク制御ブロックの一例が示され
る。これは、メモリー4のベース位置から8語のきっち
りとした倍数で始まる8個の32ビット語のブロックで
ある。ゼロをメモリーのベースとするアドレスが与えら
れる。このブロックは二つの持ち行列ポインタ(8,1
)及び(8,2)を使用して連結されたリスト上に通す
ことができる。チャネル見出しポインタ(8゜3)は、
この仮想リンク上に送られる個々のパケット内に含まれ
るべき見出し情報に対するポインタである。出力データ
カウント(8,4)は、仮想リンクから送られるべき
残りのデータのバイト数のカウントである。出力プロセ
ス記述子(8゜5)は、現在仮想リンク上にメツセージ
を送っているプロセスの記述子、あるいは現在このよう
なプロセスが存在しないときは、特別のゼロ プロセス
値Not Process、pを含む。人カプロセス紀
連子(8,6)は現在問題のリンク上にメツセージを受
信しているプロセスの記述子、あるいは、このようなプ
ロセスが存在しない場合は、特別のゼロ プロセス値で
ある。入力プロセス カウント(8,7)は、仮想リン
ク上に受は取られるべき残りのデータのバイト数のカウ
ントである。チャネル バッファー ポインタ(8,8
)は現在入カプロセスが存在しないとき到着するパケッ
トを格納するためのバッファーに対するポインタである
。
に使用が可能な仮想リンク制御ブロックの一例が示され
る。これは、メモリー4のベース位置から8語のきっち
りとした倍数で始まる8個の32ビット語のブロックで
ある。ゼロをメモリーのベースとするアドレスが与えら
れる。このブロックは二つの持ち行列ポインタ(8,1
)及び(8,2)を使用して連結されたリスト上に通す
ことができる。チャネル見出しポインタ(8゜3)は、
この仮想リンク上に送られる個々のパケット内に含まれ
るべき見出し情報に対するポインタである。出力データ
カウント(8,4)は、仮想リンクから送られるべき
残りのデータのバイト数のカウントである。出力プロセ
ス記述子(8゜5)は、現在仮想リンク上にメツセージ
を送っているプロセスの記述子、あるいは現在このよう
なプロセスが存在しないときは、特別のゼロ プロセス
値Not Process、pを含む。人カプロセス紀
連子(8,6)は現在問題のリンク上にメツセージを受
信しているプロセスの記述子、あるいは、このようなプ
ロセスが存在しない場合は、特別のゼロ プロセス値で
ある。入力プロセス カウント(8,7)は、仮想リン
ク上に受は取られるべき残りのデータのバイト数のカウ
ントである。チャネル バッファー ポインタ(8,8
)は現在入カプロセスが存在しないとき到着するパケッ
トを格納するためのバッファーに対するポインタである
。
第3図は、メツセージ リンクの構造をより詳細に示す
ブロック図である。二つのメツセージリンク10a、1
0bが示されるが、各々は、入力及び出力直接メモリー
アクセサ−(D Pv■A )22.24と通信する
通信デバイス20を含む。
ブロック図である。二つのメツセージリンク10a、1
0bが示されるが、各々は、入力及び出力直接メモリー
アクセサ−(D Pv■A )22.24と通信する
通信デバイス20を含む。
DMA22.24はまた後に説明されるように通信コン
トローラと通信する。
トローラと通信する。
通信コントローラ
第4図に詳細に説明されるように、通信コントローラは
、演算論理ユニツ) (ALU)30及びXバス32、
Xバス34.及び双方向データ バス8に接続された複
数のデータ レジスターを含む。これらレジスタの幾つ
かは、Zバス70にも接続される。これらレジスタの動
作及びこれらのバスとの相互接続は、マイクロコードR
OM36内に含まれるマイクロ命令プロセスから派生さ
れる信号によって制御される複数のスイッチによって制
御される。通信コントローラ6とメモリー4との間の通
1aは、メモリー アドレス レジスタ38からデータ
バス8がまたそれに伸びるメモリー インターフェー
ス42に伸びる単向アドレス経路40を介して行なわれ
る。データ バス8はまたプロセッサ2(第1図)内の
レジスタと通信コントローラ6内のレジスタとの間の値
の通信のためにも使用される。通信コントローラ内のレ
ジスタは以下の通りである。
、演算論理ユニツ) (ALU)30及びXバス32、
Xバス34.及び双方向データ バス8に接続された複
数のデータ レジスターを含む。これらレジスタの幾つ
かは、Zバス70にも接続される。これらレジスタの動
作及びこれらのバスとの相互接続は、マイクロコードR
OM36内に含まれるマイクロ命令プロセスから派生さ
れる信号によって制御される複数のスイッチによって制
御される。通信コントローラ6とメモリー4との間の通
1aは、メモリー アドレス レジスタ38からデータ
バス8がまたそれに伸びるメモリー インターフェー
ス42に伸びる単向アドレス経路40を介して行なわれ
る。データ バス8はまたプロセッサ2(第1図)内の
レジスタと通信コントローラ6内のレジスタとの間の値
の通信のためにも使用される。通信コントローラ内のレ
ジスタは以下の通りである。
メモリー アドレス38 要求されるメモリー位置のア
ドレスを含むレジスタ。
ドレスを含むレジスタ。
データ出力44 メモリーあるいはデータ バス上のプ
ロセッサにデータを供給するためのレジスタ。
ロセッサにデータを供給するためのレジスタ。
チャネル見出しバス46 期待される最も低い見出し値
を保持するためのレジスタ。この値が復号プロセスの一
部として到着する見出しの値から引かれる。
を保持するためのレジスタ。この値が復号プロセスの一
部として到着する見出しの値から引かれる。
プロセス記述子48 現在参照されているプロセスの記
述子を保持するためのレジスタ。
述子を保持するためのレジスタ。
データ カウント50 送信あるいは受信されるべきメ
ツセージの長さを保持するためのレジスタ。
ツセージの長さを保持するためのレジスタ。
データ ポインタ52 メモリー内のそこからデータが
送信されるべき、あるいはそこにデータが書き込まれる
べき位置に対するポインタを保持するためのレジスタ。
送信されるべき、あるいはそこにデータが書き込まれる
べき位置に対するポインタを保持するためのレジスタ。
VLCBポインタ54 現在参照されている仮想リンク
制御ブロックに対するポインタを保持するレジスタ。
制御ブロックに対するポインタを保持するレジスタ。
ポインタ56 ポインタ値の合成のために使用される一
時的なレジスタ。
時的なレジスタ。
リンク番号58 現在参照されているリンクの番号を保
持するためのレジスタ。このレジスタ内の値は、どのレ
ジスタからバス コントロールへのスイッチ(−殻内に
53として示される)がセット及び解除され、これらリ
ンクへのどの信号がマイクロコードROM36からの出
力によって影響を与えられ、またこれらリンクからのど
の信号が条件マルチプレクサ−57によってマイクロコ
ード命令レジスタ60内に多重化されるかを制御する。
持するためのレジスタ。このレジスタ内の値は、どのレ
ジスタからバス コントロールへのスイッチ(−殻内に
53として示される)がセット及び解除され、これらリ
ンクへのどの信号がマイクロコードROM36からの出
力によって影響を与えられ、またこれらリンクからのど
の信号が条件マルチプレクサ−57によってマイクロコ
ード命令レジスタ60内に多重化されるかを制御する。
MIR60その値がマイクロコードROM内のマイクロ
命令語を選択するレジスタ。
命令語を選択するレジスタ。
仮想リンク制御ブロック ポインタVLCBPがそれか
らこのブロック内の異なる項目がアドレスできるベース
として使用されるために、仮想リンク制御ブロック ポ
インタによって示されるメモリー位置からのオフセット
値を計算することが必要である。定数ボックス62が定
数値をそのバス上にマイクロコードROM36の制御下
において置くことを起動するためにYバス34に接続さ
れる。これら値は、仮想リンク制御ブロック内のオフセ
ット位置をポイントするために使用することができる。
らこのブロック内の異なる項目がアドレスできるベース
として使用されるために、仮想リンク制御ブロック ポ
インタによって示されるメモリー位置からのオフセット
値を計算することが必要である。定数ボックス62が定
数値をそのバス上にマイクロコードROM36の制御下
において置くことを起動するためにYバス34に接続さ
れる。これら値は、仮想リンク制御ブロック内のオフセ
ット位置をポイントするために使用することができる。
定数ボックス62はまたマスク値をYバス内に置くこと
を可能とする。これによって、ビット欄がALU30に
よって選択でき、通信コントローラ レジスタ内に保持
される胎内のビットがセット及び解除できる。定数ボッ
クスはまた任意の物理(ハード)リンクの番号をマイク
ロコードROM36の制御下においてリンク番号レジス
タ58内に置くことを起動する。
を可能とする。これによって、ビット欄がALU30に
よって選択でき、通信コントローラ レジスタ内に保持
される胎内のビットがセット及び解除できる。定数ボッ
クスはまた任意の物理(ハード)リンクの番号をマイク
ロコードROM36の制御下においてリンク番号レジス
タ58内に置くことを起動する。
MA
第3図に示されるように、個々のメツセージリンクはま
た一つのペアのDMA22.24を含むが、これらの幾
つかのレジスタは、第4図に示されるように通信コント
ローラのx、 y、及び2バス32.34.70に接続
される。ここで、第4図には、簡素化のために点線によ
って包囲され、DMAとして示される一つのリンクのみ
が示される。示されるレジスタは以下の通りである。
た一つのペアのDMA22.24を含むが、これらの幾
つかのレジスタは、第4図に示されるように通信コント
ローラのx、 y、及び2バス32.34.70に接続
される。ここで、第4図には、簡素化のために点線によ
って包囲され、DMAとして示される一つのリンクのみ
が示される。示されるレジスタは以下の通りである。
入力ポインタ72 人力DMA22によって書き込まれ
るべき次のバイトに対するポインタを保持するレジスタ
。
るべき次のバイトに対するポインタを保持するレジスタ
。
見出しバッファー74 人力DMA22によってその中
に入りパケットの見出しが置かれるレジスタ。この見出
しが復号された後、これは、仮想リンクの制御ブロック
に対するポインタを保持する。
に入りパケットの見出しが置かれるレジスタ。この見出
しが復号された後、これは、仮想リンクの制御ブロック
に対するポインタを保持する。
出力カウント76 出力DMA24によって出力される
べきシーケンスのバイトの長さを保持するためのレジス
タ。
べきシーケンスのバイトの長さを保持するためのレジス
タ。
出力ポインタ 出力DMAによって出力されるべきシー
ケンスのバイトのスタートについてのポインタを保持す
るためのレジスタ。
ケンスのバイトのスタートについてのポインタを保持す
るためのレジスタ。
持ち行列前部ポインタ80 出力DMAを使用するため
に待たされた第一の仮想リンクの制御ブロックに対する
ポインタ。出力DMAを使用するために仮想リンクが待
たされてないときは、これは特別な値を保持する。
に待たされた第一の仮想リンクの制御ブロックに対する
ポインタ。出力DMAを使用するために仮想リンクが待
たされてないときは、これは特別な値を保持する。
持ち行列後部ポインタ82 出力DMAを使用するため
に待たされた最後の仮想リンクの制御ブロックに対する
ポインタ。
に待たされた最後の仮想リンクの制御ブロックに対する
ポインタ。
この人力及び出力DMAの構造は、第6図及び第7図に
おいて、より完全にブロック図形式によって示される。
おいて、より完全にブロック図形式によって示される。
通信コントローラとDMAの対話
通信コントローラ6は、複数のこれらDMAを制御する
。入力DMA 22 aは、通信デバイス20aからデ
ータを受は入れるが、これは、この好ましい実施態様に
おいては、データを一度に1バイト供給し、これをマイ
クロコンピュータのメモリー4内に書き込む。出力DM
A24bは、マイクロコンピュータのメモリー4からデ
ータのバイトを読み出し、これらを通信デバイス20a
に送るが、これは、この好ましい実施態様においては、
別のマイクロコンピュータへの伝送のためにデータを一
度に1バイトづつ受は入れる。個々の通信デバイス20
は、一つの入力DMA22a及び一つの出力DMA24
bに接続される。
。入力DMA 22 aは、通信デバイス20aからデ
ータを受は入れるが、これは、この好ましい実施態様に
おいては、データを一度に1バイト供給し、これをマイ
クロコンピュータのメモリー4内に書き込む。出力DM
A24bは、マイクロコンピュータのメモリー4からデ
ータのバイトを読み出し、これらを通信デバイス20a
に送るが、これは、この好ましい実施態様においては、
別のマイクロコンピュータへの伝送のためにデータを一
度に1バイトづつ受は入れる。個々の通信デバイス20
は、一つの入力DMA22a及び一つの出力DMA24
bに接続される。
出力DMA
第6図において、個々のDMAは、二つのペアに配列さ
れた四つのレジスタ、つまり、データポインタ レジス
タ90及びデータ カウント レジスタ92、及びポイ
ンタ レジスタ94及びカウント レジスタ96を含む
。第一のペア90及び92は、第4図に示されるように
、通信コントローラの2−バス70に接続される。これ
らは、通信コントローラにて、送信されるべきシーケン
スのバイトの開始のメモリー内の位置に対するポインタ
(レジスタ90)及びシーケンスのバイトの長さのカウ
ント(レジスタ92)をロードされる。第一のベアのレ
ジスタ90.92の内容は、第二のベアのレジスタ94
.96にコピーできるが、これら、メモリー4から通信
デバイス20へのデータの伝送を制御する。ポインタ
レジスタ94は、メモリー インターフェース100に
読まれるべきデータの次のバイトのアドレスを供給する
ために使用され、これは、このバイトが読まれた後に増
分される。カウント レジスタ96は、まだ送られるべ
きバイトの数を保持し、データの1バイトが送られる度
に減分される。これは、このカウントがゼロのとき、D
MA制御回路102への信号を生成する。パケットが出
力DMAにて送られるようにするために、通信コントロ
ーラ6は、パケット見出しの第一のバイトに対するポイ
ンタ及び見出しの長さのカウントを第一のベアのレジス
タ90.92内にロードする。通信コントローラ6は、
次に、出力DMAにDMA制御回路102を介して、今
ロードされたばかりの第一のベアのレジスタ90.92
の内容を第二のベア94.96にコピーするように信号
を送る。通信コントローラは、次に、データの最初のバ
イトに対するポインタ及びデータの長さのカウントをこ
のデバイスの最初のベアのレジスタ90.92内にロー
ドする。通信コントローラは、次に、出力DMAに、パ
ケットを通信デバイス20を介して送信するように信号
を送る。
れた四つのレジスタ、つまり、データポインタ レジス
タ90及びデータ カウント レジスタ92、及びポイ
ンタ レジスタ94及びカウント レジスタ96を含む
。第一のペア90及び92は、第4図に示されるように
、通信コントローラの2−バス70に接続される。これ
らは、通信コントローラにて、送信されるべきシーケン
スのバイトの開始のメモリー内の位置に対するポインタ
(レジスタ90)及びシーケンスのバイトの長さのカウ
ント(レジスタ92)をロードされる。第一のベアのレ
ジスタ90.92の内容は、第二のベアのレジスタ94
.96にコピーできるが、これら、メモリー4から通信
デバイス20へのデータの伝送を制御する。ポインタ
レジスタ94は、メモリー インターフェース100に
読まれるべきデータの次のバイトのアドレスを供給する
ために使用され、これは、このバイトが読まれた後に増
分される。カウント レジスタ96は、まだ送られるべ
きバイトの数を保持し、データの1バイトが送られる度
に減分される。これは、このカウントがゼロのとき、D
MA制御回路102への信号を生成する。パケットが出
力DMAにて送られるようにするために、通信コントロ
ーラ6は、パケット見出しの第一のバイトに対するポイ
ンタ及び見出しの長さのカウントを第一のベアのレジス
タ90.92内にロードする。通信コントローラ6は、
次に、出力DMAにDMA制御回路102を介して、今
ロードされたばかりの第一のベアのレジスタ90.92
の内容を第二のベア94.96にコピーするように信号
を送る。通信コントローラは、次に、データの最初のバ
イトに対するポインタ及びデータの長さのカウントをこ
のデバイスの最初のベアのレジスタ90.92内にロー
ドする。通信コントローラは、次に、出力DMAに、パ
ケットを通信デバイス20を介して送信するように信号
を送る。
出力DMAの動作の詳細
第一のベアのレジスタ90.92は、それらの内容を、
制御回路102からコピー信号を受信した時点で、第二
のベアのレジスタ94.96内にコピーする。ポインタ
レジスタ94は、出力されるべき次のバイトのアドレ
スをメモリー インターフェース100に供給する。こ
れは、その値を、制御回路102からバイト送信(By
teSent)信号を受信した時点で1だけ増分する。
制御回路102からコピー信号を受信した時点で、第二
のベアのレジスタ94.96内にコピーする。ポインタ
レジスタ94は、出力されるべき次のバイトのアドレ
スをメモリー インターフェース100に供給する。こ
れは、その値を、制御回路102からバイト送信(By
teSent)信号を受信した時点で1だけ増分する。
カウントレジスタ96は、まだ送られるべきバイト数の
カウントを保持する。これは、バイト送信信号を受信す
ると1だけ減分される。これは、これが値ゼロを含む度
にカウントゼロ(CountZcro )信号を制御回
路102に送る。トークンナイザ−104は、データ
バス8からデータのバイトを受は入れる。これは、デー
タ パスからデータの1バイトを受信するたびに、制御
回路102にデータ取得(GotDaLa )チャネル
を通じて信号を送る。これはデータの1バイトをベアの
データ トークンに分割する。これは、データ送信(5
endData)チャネル上に信号を受信する度にトー
クンを送る。
カウントを保持する。これは、バイト送信信号を受信す
ると1だけ減分される。これは、これが値ゼロを含む度
にカウントゼロ(CountZcro )信号を制御回
路102に送る。トークンナイザ−104は、データ
バス8からデータのバイトを受は入れる。これは、デー
タ パスからデータの1バイトを受信するたびに、制御
回路102にデータ取得(GotDaLa )チャネル
を通じて信号を送る。これはデータの1バイトをベアの
データ トークンに分割する。これは、データ送信(5
endData)チャネル上に信号を受信する度にトー
クンを送る。
これは、これがEOP送信(SendEOP )チャネ
ル上に信号を受信する度にパケット終端トークンを送る
。制a10路は持ち(Waiting )チャネル上に
そのパケットを送信することの容易さを記録する。
ル上に信号を受信する度にパケット終端トークンを送る
。制a10路は持ち(Waiting )チャネル上に
そのパケットを送信することの容易さを記録する。
これが最初に進行(Proceed )チャネル上に通
信コントローラ6から信号を受信すると、出力DMAは
第一のベアのレジスタ内のデータを第2のベア内にコピ
ーし、次に、持ち(Waiting )チャネル上に信
号を送る。これが進行(Proceed )チャネル上
に第2の信号を受信すると、出力D M Aは最初に第
2のベアのレジスタ94.96内のポインタを使用して
第2のベアのレジスタ内のカウントがゼロになるまでメ
モリーからバイトを読み出す。これは、次に、第一のベ
アのレジスタ9092の内容を第二のベアのレジスタ9
4.96内にコピーし、次に、第二のベアのレジスタ内
のポインタを使用して第二のベアのレジスタ内のカウン
トが再びゼロになるまでメモリーからバイトを読み出す
。出力DMAは、次に通信デバイス20パケツト終端ト
ークンを送らせる。これは、次に、持ち(WaiLin
g )チャネルを通じて通信コントローラ6に信号を送
る。
信コントローラ6から信号を受信すると、出力DMAは
第一のベアのレジスタ内のデータを第2のベア内にコピ
ーし、次に、持ち(Waiting )チャネル上に信
号を送る。これが進行(Proceed )チャネル上
に第2の信号を受信すると、出力D M Aは最初に第
2のベアのレジスタ94.96内のポインタを使用して
第2のベアのレジスタ内のカウントがゼロになるまでメ
モリーからバイトを読み出す。これは、次に、第一のベ
アのレジスタ9092の内容を第二のベアのレジスタ9
4.96内にコピーし、次に、第二のベアのレジスタ内
のポインタを使用して第二のベアのレジスタ内のカウン
トが再びゼロになるまでメモリーからバイトを読み出す
。出力DMAは、次に通信デバイス20パケツト終端ト
ークンを送らせる。これは、次に、持ち(WaiLin
g )チャネルを通じて通信コントローラ6に信号を送
る。
入力DMAの動作
第7図には個々の入力DMAの構造がブロック図形式に
て示される。二つのレジスタ、つまり、前に説明された
ように通信コントローラのZバス70に接続された見出
しバッファー74及び入力ポインタ レジスタ72が存
在する。トークンバッファー112が存在するが、これ
は、一つのトークンを保持することができ、これはデー
タの断片あるいはパケット終端トークンのいずれかであ
る。このバッファー112は、これかデータ人力(Da
taIn)チャネルに沿ってパケット終端ト一クンであ
る一つのトークンを受信すると、EOP取得(GoL、
EOP )とマークされるワイヤー上に信号を送り、ま
たこれが任意の他のトークンを受信すると、トークンb
取得(Got、token、b )とマークされるワイ
ヤー上に信号を送る。これは、その内容を、これが送信
t (Send、t)チャネル上に信号を受信すると、
スイッチ114に送る。セットs (Set、s )信
号が高値であるときは、スイッチ114は、その入力を
見出しバッファー74に送る。制御論理116は、通信
デバイス20からのデータを要求し、これらデータを見
出しバッファー74内に、見出しバッファーが満杯(F
ull)チャネル上にこれが完全なパケット見出しを含
むことを通信するまで送る。見出しバッファーの有効サ
イズは、関連する標識118によって制御されるが、こ
れは、パケット見出し長標識である。この標識がセット
されているときは、パケット見出しは2バイト長であり
、見出しバッファー74は、満杯(Full)チャネル
上に、これが四つのトークンを含むときにのみ信号を送
る。この標歳がセットされてないときは、パケット見出
しは1バイト長であり、見出しバッファーは、満杯(1
’all)チャネル上に、これが二つのトークンを含む
ときにのみ信号を送る。
て示される。二つのレジスタ、つまり、前に説明された
ように通信コントローラのZバス70に接続された見出
しバッファー74及び入力ポインタ レジスタ72が存
在する。トークンバッファー112が存在するが、これ
は、一つのトークンを保持することができ、これはデー
タの断片あるいはパケット終端トークンのいずれかであ
る。このバッファー112は、これかデータ人力(Da
taIn)チャネルに沿ってパケット終端ト一クンであ
る一つのトークンを受信すると、EOP取得(GoL、
EOP )とマークされるワイヤー上に信号を送り、ま
たこれが任意の他のトークンを受信すると、トークンb
取得(Got、token、b )とマークされるワイ
ヤー上に信号を送る。これは、その内容を、これが送信
t (Send、t)チャネル上に信号を受信すると、
スイッチ114に送る。セットs (Set、s )信
号が高値であるときは、スイッチ114は、その入力を
見出しバッファー74に送る。制御論理116は、通信
デバイス20からのデータを要求し、これらデータを見
出しバッファー74内に、見出しバッファーが満杯(F
ull)チャネル上にこれが完全なパケット見出しを含
むことを通信するまで送る。見出しバッファーの有効サ
イズは、関連する標識118によって制御されるが、こ
れは、パケット見出し長標識である。この標識がセット
されているときは、パケット見出しは2バイト長であり
、見出しバッファー74は、満杯(Full)チャネル
上に、これが四つのトークンを含むときにのみ信号を送
る。この標歳がセットされてないときは、パケット見出
しは1バイト長であり、見出しバッファーは、満杯(1
’all)チャネル上に、これが二つのトークンを含む
ときにのみ信号を送る。
満杯(Full)チャネル上に見出しバッフ7−74か
ら信号を受信した後、制御論理116は通信デバイスか
ら別のトークンを要求し、トークンバッファー112か
らの信号を待つ。この信号がトークンb取得(GoL、
Loken、b )チャネル上のものであるときは、こ
のパケットは、データ パケットであり、制御論理11
6は、データ パケット(Data Packet )
チャネルを通じて通信コントローラ6に信号を送る。ト
ークン バッファー112からの信号がEOP取得(G
ot、EOP )チャネル上のものであるときは、その
パケットは確認パケットであり、制御論理116は、確
認パケット(AckPackct )チャネルを通じて
通信コントローラに信号を送る。通信コントローラは見
出しを復号し、ポインタを人力DMAの入力ポインタレ
ジスタ72内に書き込み、次に、確認(Acknoνl
edge )チャネルを通じて制御論理116に信号を
送る。パケットが確認パケットであるときは、このサイ
クルが再度開始する。パケットがデータ パケットであ
るときは、制御論理116はスイッチ114のセットを
解除し、データをデータ出力レジスタ120内に送り、
ここからこれは、メモリー インターフェース117を
介してメモリー内に書き込まれる。1バイトがメモリー
に書き込まれる度に、制御論理116は、増分(Inc
rcIIlcnt )チャネルを通じて入力ポインタ
レジスタ120に信号を送り、この結果、ポインタが次
の位置に進められる。この制御論理は、これがEOP取
得(Got、EOP )チャネル上に信号を受(、tす
るまで継続され、信号を受信した時点において、これは
、パケット終端(PacketEnd )チャネルを通
じて通信コントローラ6に1a号を送る。
ら信号を受信した後、制御論理116は通信デバイスか
ら別のトークンを要求し、トークンバッファー112か
らの信号を待つ。この信号がトークンb取得(GoL、
Loken、b )チャネル上のものであるときは、こ
のパケットは、データ パケットであり、制御論理11
6は、データ パケット(Data Packet )
チャネルを通じて通信コントローラ6に信号を送る。ト
ークン バッファー112からの信号がEOP取得(G
ot、EOP )チャネル上のものであるときは、その
パケットは確認パケットであり、制御論理116は、確
認パケット(AckPackct )チャネルを通じて
通信コントローラに信号を送る。通信コントローラは見
出しを復号し、ポインタを人力DMAの入力ポインタレ
ジスタ72内に書き込み、次に、確認(Acknoνl
edge )チャネルを通じて制御論理116に信号を
送る。パケットが確認パケットであるときは、このサイ
クルが再度開始する。パケットがデータ パケットであ
るときは、制御論理116はスイッチ114のセットを
解除し、データをデータ出力レジスタ120内に送り、
ここからこれは、メモリー インターフェース117を
介してメモリー内に書き込まれる。1バイトがメモリー
に書き込まれる度に、制御論理116は、増分(Inc
rcIIlcnt )チャネルを通じて入力ポインタ
レジスタ120に信号を送り、この結果、ポインタが次
の位置に進められる。この制御論理は、これがEOP取
得(Got、EOP )チャネル上に信号を受(、tす
るまで継続され、信号を受信した時点において、これは
、パケット終端(PacketEnd )チャネルを通
じて通信コントローラ6に1a号を送る。
パケットが通信デバイス20を介して到着すると、入力
DMA22は、(その標識118のセツティングに依存
して)一つあるいは2バイトを見出しバッファー74内
に入力し、次に、通信コントローラに信号を送り、パケ
ットが到着したことを示す。このチャネルは、データ
パケット、確認パケット及びパケット終端信号を運び、
第3図においては、パケット到着信号として一般的に示
される。人力DMAは次に通信デバイスからの次のデー
タ項目を人力し、同時に、通信コントローラからの確認
を待つ。通信コントローラは見出しを復号して仮想リン
クの識別子を得るが、これを通信コントローラは入力D
MAの見出しバッファー内に格納し、次に、確認チャネ
ルを通じて見出しの受信を確認する。パケットの見出し
の後に入力DMAが入力下データ項目がパケット終端マ
ーカーであるときは、これは、通信コントローラ6に、
パケットが確認パケットであることを通信し、そうでな
いときは、これは、これがデータ パケットであること
を通信する。通信コントローラは、この信号の受信を確
認する。パケットが確認パケットであるときは、入力D
M Aと通信コントローラとの間のトランザクション
はこれて終了する。
DMA22は、(その標識118のセツティングに依存
して)一つあるいは2バイトを見出しバッファー74内
に入力し、次に、通信コントローラに信号を送り、パケ
ットが到着したことを示す。このチャネルは、データ
パケット、確認パケット及びパケット終端信号を運び、
第3図においては、パケット到着信号として一般的に示
される。人力DMAは次に通信デバイスからの次のデー
タ項目を人力し、同時に、通信コントローラからの確認
を待つ。通信コントローラは見出しを復号して仮想リン
クの識別子を得るが、これを通信コントローラは入力D
MAの見出しバッファー内に格納し、次に、確認チャネ
ルを通じて見出しの受信を確認する。パケットの見出し
の後に入力DMAが入力下データ項目がパケット終端マ
ーカーであるときは、これは、通信コントローラ6に、
パケットが確認パケットであることを通信し、そうでな
いときは、これは、これがデータ パケットであること
を通信する。通信コントローラは、この信号の受信を確
認する。パケットが確認パケットであるときは、入力D
M Aと通信コントローラとの間のトランザクション
はこれて終了する。
新たなトランザクションが別のパケットが通信デバイス
20を介して到着すると開始される。パケットがデータ
パケットであるときは、通信コントローラ6は仮想リ
ンク制御ブロックを読み出し、そのパケット内に含まれ
るデータを置く位置を得る。これは、入力プロセスのデ
ータ領域に対するポインタあるいは仮想リンクと関連す
るバッファーに対するポインタであり得る。通信コント
ローラはこのポインタを入力DMAの入力ポインタレジ
スタ72内に書き込み、次に、パケット到着チャネルを
通じて信号を送る。入力D M Aは次に通信デバイス
から受信されたデータを入力ポインタ レジスタ72の
内容をアドレスとして使用して書き込むことを開始し、
人力ポインタ レジスタを1バイトがメモリー内に書き
込まれる度に、これが通信デバイスからパケット終端ト
ークンが受信されるまで増分する。パケット終端トーク
ンが受信されると、これは、通信コントローラに入力が
完結したことを通知する。
20を介して到着すると開始される。パケットがデータ
パケットであるときは、通信コントローラ6は仮想リ
ンク制御ブロックを読み出し、そのパケット内に含まれ
るデータを置く位置を得る。これは、入力プロセスのデ
ータ領域に対するポインタあるいは仮想リンクと関連す
るバッファーに対するポインタであり得る。通信コント
ローラはこのポインタを入力DMAの入力ポインタレジ
スタ72内に書き込み、次に、パケット到着チャネルを
通じて信号を送る。入力D M Aは次に通信デバイス
から受信されたデータを入力ポインタ レジスタ72の
内容をアドレスとして使用して書き込むことを開始し、
人力ポインタ レジスタを1バイトがメモリー内に書き
込まれる度に、これが通信デバイスからパケット終端ト
ークンが受信されるまで増分する。パケット終端トーク
ンが受信されると、これは、通信コントローラに入力が
完結したことを通知する。
出力DMAの出力制御回路の状態マシーンの記述がテー
ブルIに示され、入力DMAの制御論理のそれがテーブ
ルHに示される。
ブルIに示され、入力DMAの制御論理のそれがテーブ
ルHに示される。
個々の通信デバイスはそれと通信コントローラとの間に
四つの論理チャネルを持つ。これら四つのチャネルは一
つがデータの個々の方向のための二つのベアを形成する
。データ チャネルはデータ項目を運ぶが、これは、デ
ータの一片であることも、あるいはパケット終端マーカ
ーであることもある。確認チャネルはハンドシェーク信
号を運ぶが、これはこのベアの他方のチャネル上のデー
タ項目の流れを制御する。この好ましい実施態様におい
ては、通信デバイスは、パケット終端マーカーを直接に
それにてこれらが互いに通信するプロトコール内で符号
化することができる。
四つの論理チャネルを持つ。これら四つのチャネルは一
つがデータの個々の方向のための二つのベアを形成する
。データ チャネルはデータ項目を運ぶが、これは、デ
ータの一片であることも、あるいはパケット終端マーカ
ーであることもある。確認チャネルはハンドシェーク信
号を運ぶが、これはこのベアの他方のチャネル上のデー
タ項目の流れを制御する。この好ましい実施態様におい
ては、通信デバイスは、パケット終端マーカーを直接に
それにてこれらが互いに通信するプロトコール内で符号
化することができる。
好ましい実施態様の動作例
第8図は二つのリンクの前部及び後部持ち行列ポインタ
(80a、b及び82a、b)及び初期化に続くマイク
ロコンピュータのメモリー内の五つの仮想リンクを示す
。図面はまた個々の仮想リンクのチャネル見出しポイン
タ8,3がいかに使用されるべき物理リンクの番号、見
出しの長さ及び見出し自体を含むメモリーの別の領域を
ポインチするかを示す。リンク番号は、シンボル的に、
対応する物理リンクをポイントするように示される。こ
の図面において、仮想リンクの二つはリンク1を使用し
、他の三つはリンク0を使用する。
(80a、b及び82a、b)及び初期化に続くマイク
ロコンピュータのメモリー内の五つの仮想リンクを示す
。図面はまた個々の仮想リンクのチャネル見出しポイン
タ8,3がいかに使用されるべき物理リンクの番号、見
出しの長さ及び見出し自体を含むメモリーの別の領域を
ポインチするかを示す。リンク番号は、シンボル的に、
対応する物理リンクをポイントするように示される。こ
の図面において、仮想リンクの二つはリンク1を使用し
、他の三つはリンク0を使用する。
また、図面には、バッファー ポインタ8.8によって
ポイントされるチャネル パケット バッファーが示さ
れる。仮想リンクも、対応する見出しも、あるいは対応
するチャネル パケット バッファーも隣接するメモリ
ー領域に置かれる必要はない。これらは、便宜上及びこ
れが単純な割り当て戦略であるために、メモリーの連続
する位置を占拠するように示される。
ポイントされるチャネル パケット バッファーが示さ
れる。仮想リンクも、対応する見出しも、あるいは対応
するチャネル パケット バッファーも隣接するメモリ
ー領域に置かれる必要はない。これらは、便宜上及びこ
れが単純な割り当て戦略であるために、メモリーの連続
する位置を占拠するように示される。
ここで、マイクロコンピュータT1上のプロセスP1が
仮想リンクVLi(メモリー位置8.11から8.8i
)を使用して出力を遂行するものと想定する。前に説明
されたような通信ユニットの動作の後に、マイクロコン
ピュータT1の持ち行列レジスタ及びメモリー位置は、
第9図に示されるようになる。前の図面に示される矢印
の幾つかは簡素化のために省略されている。
仮想リンクVLi(メモリー位置8.11から8.8i
)を使用して出力を遂行するものと想定する。前に説明
されたような通信ユニットの動作の後に、マイクロコン
ピュータT1の持ち行列レジスタ及びメモリー位置は、
第9図に示されるようになる。前の図面に示される矢印
の幾つかは簡素化のために省略されている。
マイクロコンピュータT2上の別のプロセスP2が仮想
リンクVLi(メモリー位置8.1jから8.83)を
使用して入力を遂行すると、前に説明されるように通信
ユニットが動作した後に、マイクロコンピュータT2の
持ち行列レジスタ及びメモリー位置は第10図に示され
るようになる。
リンクVLi(メモリー位置8.1jから8.83)を
使用して入力を遂行すると、前に説明されるように通信
ユニットが動作した後に、マイクロコンピュータT2の
持ち行列レジスタ及びメモリー位置は第10図に示され
るようになる。
マイクロコンピュータT1のリンク1がマイクロコンピ
ュータT2のリンク0に接続され、メツセージ パケッ
トが前に説明されたようにマイクロコンピュータT1か
らマイクロコンピュータT2に送られるものと想定する
。マイクロコンピュータTl上の仮想リンクVLiとマ
イクロコンピュータT2上の仮想リンクVLjが前に説
明されたようにベアの仮想リンクを形成するものと想定
する。すると、メツセージ パケットが到達すると、そ
の見出しが仮想リンクVLjのアドレスを与えるように
復号される。この仮想リンク上の人力が既に遂行されて
ないときは、このパケットは、第11図に示されるよう
にマイクロコンビュ−夕T2のメモリー内の関連するバ
ッファー内に格納される。
ュータT2のリンク0に接続され、メツセージ パケッ
トが前に説明されたようにマイクロコンピュータT1か
らマイクロコンピュータT2に送られるものと想定する
。マイクロコンピュータTl上の仮想リンクVLiとマ
イクロコンピュータT2上の仮想リンクVLjが前に説
明されたようにベアの仮想リンクを形成するものと想定
する。すると、メツセージ パケットが到達すると、そ
の見出しが仮想リンクVLjのアドレスを与えるように
復号される。この仮想リンク上の人力が既に遂行されて
ないときは、このパケットは、第11図に示されるよう
にマイクロコンビュ−夕T2のメモリー内の関連するバ
ッファー内に格納される。
仮想リンクVLj上の入力がその後プロセスP2によっ
て遂行されると、マイクロコンピュータT2上の仮想リ
ンクの状態は、全メツセージが一つのパケットより長い
ときは、第12図に示されるようになり、そうでないと
きは、プロセスが再スケジュールされ、仮想リンクVL
j内のプロセス記述子がNotProcees、pにリ
セットされる。
て遂行されると、マイクロコンピュータT2上の仮想リ
ンクの状態は、全メツセージが一つのパケットより長い
ときは、第12図に示されるようになり、そうでないと
きは、プロセスが再スケジュールされ、仮想リンクVL
j内のプロセス記述子がNotProcees、pにリ
セットされる。
プロセスP2が仮想リンクVLj上の入力をメツセージ
パケットが到達する前に遂行し、持ち行列レジスタお
よび仮想リンクが第11図に示されるようになり、その
後、メツセージ パケットが到達すると、マイクロコン
ピュータT2の持ち行列レジスタ及びメモリーは第13
図に示されるようになる。
パケットが到達する前に遂行し、持ち行列レジスタお
よび仮想リンクが第11図に示されるようになり、その
後、メツセージ パケットが到達すると、マイクロコン
ピュータT2の持ち行列レジスタ及びメモリーは第13
図に示されるようになる。
マイクロコンピュータT2上のもう一つのプロセスP3
が確認パケットが送られる前に仮想リンクVLj上の出
力を遂行すると、マイクロコンピュータT2の持ち行列
レジスタ及び仮想リンクの状態は第14図に示されるよ
うになる。
が確認パケットが送られる前に仮想リンクVLj上の出
力を遂行すると、マイクロコンピュータT2の持ち行列
レジスタ及び仮想リンクの状態は第14図に示されるよ
うになる。
以下においては、通信コントローラの動作がOCCAM
2言語との関連で説明される。このOCCAM言語はこ
こに参照の目的で編入されたOCCAM2参照マニュア
ルにおいて説明されている。
2言語との関連で説明される。このOCCAM言語はこ
こに参照の目的で編入されたOCCAM2参照マニュア
ルにおいて説明されている。
表■
通信コントローラの動作
次に、通信コントローラの動作が、OCCAM言語を使
用して説明される。通信コントローラのレジスタは、O
CCAM変数によって以下のように表わされる。
用して説明される。通信コントローラのレジスタは、O
CCAM変数によって以下のように表わされる。
INT channel、headcr、base、
process、descriptor、 data、
count。
process、descriptor、 data、
count。
data、I)Olntcr:
INT vlcb、pointcr、 IX)inte
r、 1ink、numbcr:以ドのアレイのプール
変数は、リンクから通信コントローラの条件付マルチプ
レクサ−への他号を表わす。
r、 1ink、numbcr:以ドのアレイのプール
変数は、リンクから通信コントローラの条件付マルチプ
レクサ−への他号を表わす。
[N1.1nkslBOOL waiting:以下の
プール変数は、通信コントローラの状態のビットを表わ
す。
プール変数は、通信コントローラの状態のビットを表わ
す。
3QQL data、 packet:[NLinks
コBOOL 1nputs、 proceedin
g:通信ユニットのバスに接続されるDMAデバイスの
レジスタはアレイの変数によって表わされる。
コBOOL 1nputs、 proceedin
g:通信ユニットのバスに接続されるDMAデバイスの
レジスタはアレイの変数によって表わされる。
アレイのこれら要素は、特定のリンクに属するレジスタ
に対応する。リンクの番号は定数NLinksによって
表わされる。
に対応する。リンクの番号は定数NLinksによって
表わされる。
[NLinks]INT 1nput、pointer
、 header、buf’f’er、 output
、pointer:[NLinks]INT queu
e、front、pointer、 queue、ba
ck、pointer:セットの基本動作が以下にOC
CAM手順を使用して説明される。これらは、単に、解
説を目的とするものであり、手順の主体は、この手順の
、<ラメータが実際のパラメータによって置換できるこ
とを前提として常に代替できるものである。
、 header、buf’f’er、 output
、pointer:[NLinks]INT queu
e、front、pointer、 queue、ba
ck、pointer:セットの基本動作が以下にOC
CAM手順を使用して説明される。これらは、単に、解
説を目的とするものであり、手順の主体は、この手順の
、<ラメータが実際のパラメータによって置換できるこ
とを前提として常に代替できるものである。
以下の説明におては様々に命名される定数が使用される
。この好ましい実施態様においては、これらは32ビッ
ト マシーンに対して以下の値を持つことができるが、
ここで、アドレスはバイトにて表わされる。
。この好ましい実施態様においては、これらは32ビッ
ト マシーンに対して以下の値を持つことができるが、
ここで、アドレスはバイトにて表わされる。
VAL byLes、per、vord Is 4 ニ
ー [’or a 32−biL machineVA
L data、packet、of’l’set I
s O” bytes、per、word :VAL
ack、packet、orrset Is l*b
ytes、per、word :VAL header
、pointer、ofTset Is 2*byte
s、per、word :VAL output、co
unt、or[’set Is 3*bytes、p
er、word :VAL output、procc
ss、orfsct Is 4*bytcs、per、
word :VAL 1nput、process、o
rfset Is 5*bytes、per、word
:VAL 1nput、count、Of’fsct
Is 6’ bytcs、pcr、word :V
AL buffcr、pointer、of’f’sc
t Is 7*bytcs、pcr、word :〜’
AL pointcr、s、orrsct Is
(−3)*bytcs、pcr、word :VAL
pd、mask Is 〜1 ニー masks
orrthe bottom bitVAL orl
’set、mask Is bytcs、per、
word :VAL uppcr、bits、mask
Is 〜((2*bytes、per、word)
−1) :VAL max、packet、5ize
Is 32 ニー 32 bytesVAN、nul
I Is MO8TNEG INT ニー
using most negative in
teger as thebase or mem
ory VAl、 NoLProcess、p Is MO8T
NEG INT ニー no process at
1oved at Lhebase or’ memo
ry VAL VLinkBase Is nut I +
(+00*bytes、per、word) −tab
le 5tarts atlooth word アドレスの生成、アドレスのメモリー アドレス レジ
スタ内へのブレーシング、(書き込みの場合の書き込ま
れるべきデータのデータ出力レジスタへのブレーシング
、及びメモリー インターフェースへのシグナリングな
どの様々な動作は、以下の手順によって表わされる。
ー [’or a 32−biL machineVA
L data、packet、of’l’set I
s O” bytes、per、word :VAL
ack、packet、orrset Is l*b
ytes、per、word :VAL header
、pointer、ofTset Is 2*byte
s、per、word :VAL output、co
unt、or[’set Is 3*bytes、p
er、word :VAL output、procc
ss、orfsct Is 4*bytcs、per、
word :VAL 1nput、process、o
rfset Is 5*bytes、per、word
:VAL 1nput、count、Of’fsct
Is 6’ bytcs、pcr、word :V
AL buffcr、pointer、of’f’sc
t Is 7*bytcs、pcr、word :〜’
AL pointcr、s、orrsct Is
(−3)*bytcs、pcr、word :VAL
pd、mask Is 〜1 ニー masks
orrthe bottom bitVAL orl
’set、mask Is bytcs、per、
word :VAL uppcr、bits、mask
Is 〜((2*bytes、per、word)
−1) :VAL max、packet、5ize
Is 32 ニー 32 bytesVAN、nul
I Is MO8TNEG INT ニー
using most negative in
teger as thebase or mem
ory VAl、 NoLProcess、p Is MO8T
NEG INT ニー no process at
1oved at Lhebase or’ memo
ry VAL VLinkBase Is nut I +
(+00*bytes、per、word) −tab
le 5tarts atlooth word アドレスの生成、アドレスのメモリー アドレス レジ
スタ内へのブレーシング、(書き込みの場合の書き込ま
れるべきデータのデータ出力レジスタへのブレーシング
、及びメモリー インターフェースへのシグナリングな
どの様々な動作は、以下の手順によって表わされる。
PROCReadWord (INT registe
r、 VAL INT address)−reads
a word or data at 1ocati
on address 1nto tl+e regi
sterPROCWriteWord (INT re
gister、 VAL INT address)−
writes the contents ofthe
register 1nto 1ocation a
ddressPI?OCReadPromVLCB (
INT register、 VAL INT ofr
set)−reads from the given
off’set in the current v
irtualcontrol block −tnto thc registerRcadWor
d (rcgistcr、 Vleb、pointOr
+ orrsct)1nk PROCWriteToVLCB (INT regi
ster、 VAL INT olTsct)−wri
tes the contents orregist
er 1nto an ofTsctcurrent
vlcb WriteWord (register、 vlcb
、pointer + orrseL)from th
e PROCRcadDataPointer (INT
register)−read the point
er rrom Lhe vorkspace o
r the current process−at
a rrxed orrsetReadword (
reglsLer、 (process、descri
pLor /\pd、mask) +pOlnLer、
s、orrseL) PROCwrlteDaLaPointer (INT
register)write to the wo
rkspace orthe currentoff’
5et WriteWord (register、 (pro
cess、descriptorpointer、s、
offset) process at a rixed/\閃、mas
k) + この手順は、仮想リンク テーブル項目をリンク“l
ink、 number”に対する出力持ち行列に通す
。
r、 VAL INT address)−reads
a word or data at 1ocati
on address 1nto tl+e regi
sterPROCWriteWord (INT re
gister、 VAL INT address)−
writes the contents ofthe
register 1nto 1ocation a
ddressPI?OCReadPromVLCB (
INT register、 VAL INT ofr
set)−reads from the given
off’set in the current v
irtualcontrol block −tnto thc registerRcadWor
d (rcgistcr、 Vleb、pointOr
+ orrsct)1nk PROCWriteToVLCB (INT regi
ster、 VAL INT olTsct)−wri
tes the contents orregist
er 1nto an ofTsctcurrent
vlcb WriteWord (register、 vlcb
、pointer + orrseL)from th
e PROCRcadDataPointer (INT
register)−read the point
er rrom Lhe vorkspace o
r the current process−at
a rrxed orrsetReadword (
reglsLer、 (process、descri
pLor /\pd、mask) +pOlnLer、
s、orrseL) PROCwrlteDaLaPointer (INT
register)write to the wo
rkspace orthe currentoff’
5et WriteWord (register、 (pro
cess、descriptorpointer、s、
offset) process at a rixed/\閃、mas
k) + この手順は、仮想リンク テーブル項目をリンク“l
ink、 number”に対する出力持ち行列に通す
。
我々は、この仮想リンクがこのモードにおいては既にキ
ューされてないものと想定する。オフセットは、持ち行
列リンク語の個々の仮想リンク制御ブロック内のオフセ
ットである。これは仮想リンクがデータ パケットある
いは確認パケットを送るためにキューされるべきか否か
を決定する。
ューされてないものと想定する。オフセットは、持ち行
列リンク語の個々の仮想リンク制御ブロック内のオフセ
ットである。これは仮想リンクがデータ パケットある
いは確認パケットを送るためにキューされるべきか否か
を決定する。
PI?OCEnQueue (VAL INT ofr
set)EQ P QuOuQ、 Cront、pofntcr[I fn
k、numbcr] at nul I−(ILIc
LJOl5Ora9tYqucuc、front、po
lntcr[1ink、numbcr]ニーvlcb、
pointer + ofrsctqueue、 fr
ont、pointer[l ink、numbcrl
◇null−set ihe item at thc
back or the queue to poi
nt at thenew item WriteWord (vlcb、poinLer +
o[’f’set、 queue、back、poi
nLer[l ink、number]) queue、back−poinLer[1ink、n
umber] :w vlcb、poinLer +
orl’setこの手順はリンク“l ink、num
ber″に対する出力持ち行列の前部から項目を取る。
set)EQ P QuOuQ、 Cront、pofntcr[I fn
k、numbcr] at nul I−(ILIc
LJOl5Ora9tYqucuc、front、po
lntcr[1ink、numbcr]ニーvlcb、
pointer + ofrsctqueue、 fr
ont、pointer[l ink、numbcrl
◇null−set ihe item at thc
back or the queue to poi
nt at thenew item WriteWord (vlcb、poinLer +
o[’f’set、 queue、back、poi
nLer[l ink、number]) queue、back−poinLer[1ink、n
umber] :w vlcb、poinLer +
orl’setこの手順はリンク“l ink、num
ber″に対する出力持ち行列の前部から項目を取る。
これは、これが呼び出されたとき持ち行列が空でないこ
とを想定する。
とを想定する。
PROCDeQueue O
EQ
vlcb、pointer ニー queue、rro
nt、pointer[1ink、number]−u
se the 8−word−alignIIlent
of’ the vlcbs to disting
uish thepacket type P (vlcb、pointer /\ offset、
mask) −0data、packet ニー T
RUERUE data、packet ニー FALSEF queueJront、pointer[l ink、
numberコ − queue、baek、poin
ter[l ink、nuraberl −Ll+is virLual 1ink is th
e 1asL in the queuequeue、
rronL、pointer[l ink、numb
erコ ニーnullRUE −set the rront pointer 10
point at the next in the
queueEQ −at this point vlcb、point
er contains the ofTset1?e
adl’romVLCI3 (queue、f’ro
nt、pointer[1ink、numberコ、
0)WritcToVLCB (null、 0)−s
et the address to the top
of the blockvlcb、pointer
ニー vlcb、pointer /\(uppe
r、bits、mask)以下の手順は、現仮想リンク
と関連する物理リンクの番号をチャネル見出しポインタ
によってポイントされるデータから読み出す。
nt、pointer[1ink、number]−u
se the 8−word−alignIIlent
of’ the vlcbs to disting
uish thepacket type P (vlcb、pointer /\ offset、
mask) −0data、packet ニー T
RUERUE data、packet ニー FALSEF queueJront、pointer[l ink、
numberコ − queue、baek、poin
ter[l ink、nuraberl −Ll+is virLual 1ink is th
e 1asL in the queuequeue、
rronL、pointer[l ink、numb
erコ ニーnullRUE −set the rront pointer 10
point at the next in the
queueEQ −at this point vlcb、point
er contains the ofTset1?e
adl’romVLCI3 (queue、f’ro
nt、pointer[1ink、numberコ、
0)WritcToVLCB (null、 0)−s
et the address to the top
of the blockvlcb、pointer
ニー vlcb、pointer /\(uppe
r、bits、mask)以下の手順は、現仮想リンク
と関連する物理リンクの番号をチャネル見出しポインタ
によってポイントされるデータから読み出す。
PROCGctLinkNumbcr OEQ
ReadProIIIVLCB (pointer、
header、pointer、o「fset)R
eadνord (link、number、 p
ointer)通信リンクとCPUとの間の通信は、O
CCAMチャネルによって表わされる。OCCA M上
の通信は同期されるが、これは、単一のOCCA M通
信が前に説明の要求/応答ペアと対応することを意味す
る。データ値の通信はまたマイクロコンピュータのデー
゛タ バスの使用を伴う。要求、応答及びデータ伝送の
組合わせは、以下のチャネル上のOCCA M通信によ
って表わされる。
header、pointer、o「fset)R
eadνord (link、number、 p
ointer)通信リンクとCPUとの間の通信は、O
CCAMチャネルによって表わされる。OCCA M上
の通信は同期されるが、これは、単一のOCCA M通
信が前に説明の要求/応答ペアと対応することを意味す
る。データ値の通信はまたマイクロコンピュータのデー
゛タ バスの使用を伴う。要求、応答及びデータ伝送の
組合わせは、以下のチャネル上のOCCA M通信によ
って表わされる。
CHAN OF INT from、cpu、to、c
ommunications、unit :CHAN
OF INT from、communication
s、unit、to、cpu :通信コンピュータとD
MAデバイスとの間の信号は、同様に以下のOCCAM
チャネルのアレイによって表わされる。
ommunications、unit :CHAN
OF INT from、communication
s、unit、to、cpu :通信コンピュータとD
MAデバイスとの間の信号は、同様に以下のOCCAM
チャネルのアレイによって表わされる。
[NLlnkslC)tAN OF BOOL dat
a、packct、 ack、packet、 pac
ket、end。
a、packct、 ack、packet、 pac
ket、end。
acknowledge :
[NLinkslCHAN OF BOOL proc
eed :以下の手順は、パケットの見出しに対するポ
インタ及びその長さのカウントを、ポインタ レジスタ
が既に見出しの開始のアドレスを含むことを前提として
、D−MA出力デバイス内にロードする。
eed :以下の手順は、パケットの見出しに対するポ
インタ及びその長さのカウントを、ポインタ レジスタ
が既に見出しの開始のアドレスを含むことを前提として
、D−MA出力デバイス内にロードする。
PROC5eLUpHeader O
EQ
pointer ニー pointer +
word −increment the po
inter by one wordReadW
ord (output、count[1ink、nu
mbcrl、pointer)−set the ou
tput pointer to the next
word、 where thc headcrtar
ts ouput、pointcr[1ink、numbcr
l ニー pointer + wordproccc
cl[1ink、numbcrl ! TRUE −c
auses the registers to be
opied 以下の手順は次のパケットの長さを算定し、格納された
カウントをその量だけ減分する。カウントがまだゼロで
ないときは、これは、プロセス作業空間内の格納された
ポインタも更新する。見出しが送られる前に常にこれを
行なうことによって、我々は、パケットが完全に送られ
る前に確認パケットが戻されたとき、正しいデータと共
に次のパケットを送ること(あるいはプロセスを再スケ
ジュールする)ことを保証する。これは、次に、データ
のパケットを送る。
word −increment the po
inter by one wordReadW
ord (output、count[1ink、nu
mbcrl、pointer)−set the ou
tput pointer to the next
word、 where thc headcrtar
ts ouput、pointcr[1ink、numbcr
l ニー pointer + wordproccc
cl[1ink、numbcrl ! TRUE −c
auses the registers to be
opied 以下の手順は次のパケットの長さを算定し、格納された
カウントをその量だけ減分する。カウントがまだゼロで
ないときは、これは、プロセス作業空間内の格納された
ポインタも更新する。見出しが送られる前に常にこれを
行なうことによって、我々は、パケットが完全に送られ
る前に確認パケットが戻されたとき、正しいデータと共
に次のパケットを送ること(あるいはプロセスを再スケ
ジュールする)ことを保証する。これは、次に、データ
のパケットを送る。
PROC5cndDataPackct OEQ
SetUpHcadcr 0
outpuL、poinLer[1ink、numbe
rl ニー data、pointerP (daLa、counL <−max、packet
、5Lze)outpuL、counL[l ink、
numberl ニー data、count
−5end everythingIel’t TI?lJE EQ −5end a I’ull 5ize paekeL
、 and update the pointero
uLpuL、counL[l ink、numbcrl
ニー max、packet、5izedaLa、p
ointer ニー output、pointer[
1ink、numberl + 1IlaX。
rl ニー data、pointerP (daLa、counL <−max、packet
、5Lze)outpuL、counL[l ink、
numberl ニー data、count
−5end everythingIel’t TI?lJE EQ −5end a I’ull 5ize paekeL
、 and update the pointero
uLpuL、counL[l ink、numbcrl
ニー max、packet、5izedaLa、p
ointer ニー output、pointer[
1ink、numberl + 1IlaX。
paekeL、5ize
WrlLeDataPointer (data、p
ointer)−update the data、c
ount; it’ it is now zero、
the process wille −reschcduled when the ack
arrives。
ointer)−update the data、c
ount; it’ it is now zero、
the process wille −reschcduled when the ack
arrives。
data、count ニー data、count
−output、count[1ink、numbcr
lWritcToVLCB (data、count、
output、count、offset)proc
ccd[1ink、numbcrl i TRUE −
5tarts transmission−vaiti
ng[l ink、numbcrコ wi I I
now become PALSEOCCAMの以下の
ピースはいかに通信コントローラがメツセージを送るた
めにCPUからの要求に応答するかを示す。
−output、count[1ink、numbcr
lWritcToVLCB (data、count、
output、count、offset)proc
ccd[1ink、numbcrl i TRUE −
5tarts transmission−vaiti
ng[l ink、numbcrコ wi I I
now become PALSEOCCAMの以下の
ピースはいかに通信コントローラがメツセージを送るた
めにCPUからの要求に応答するかを示す。
−a request to output has
been received l’rom Lhe C
PUrZQ −getthe data 「or the mass
age rrom the cpufrom、cpu、
to、communjcations、unH? vl
cb、pointerfrom、cpu、to、com
munjcations、unit ? data、p
ointerr ron+、cpu、 Lo、comm
unicaLions、uni L ? data、c
ounLfrom、cpu、to、communica
Lions、unit ? process、de
scriptorGetLinkNumber 0 F −the DMA output device is
1dle and nothing is queu
ed to useit: waltjng[l ink、numbcrl and
(queue、rront、pointer[1i
nk、numbcrl −null) EQ WriteToVLCB (process、dcsc
riptor、 output、process、of
’fset)ScndDataPackct 0 URE −queue the packet EQ −thread the vl ink onto t
he queueEnQueue (data、pac
ket、off’5et)−record the m
essage dataWriLeDaLaPoinL
er (data、pointer)WritcTo
VLCB (data、count、 output、
count、offset)Wr1tOTOVIf’B
(proccss、dcscriptor、 out
oput、proccss、ofrsct)以下の手順
は、いかにDMA出力デバイスか確認パケット(つまり
、データを持たないパケット)を送るためにセット ア
ップされるかを示す。
been received l’rom Lhe C
PUrZQ −getthe data 「or the mass
age rrom the cpufrom、cpu、
to、communjcations、unH? vl
cb、pointerfrom、cpu、to、com
munjcations、unit ? data、p
ointerr ron+、cpu、 Lo、comm
unicaLions、uni L ? data、c
ounLfrom、cpu、to、communica
Lions、unit ? process、de
scriptorGetLinkNumber 0 F −the DMA output device is
1dle and nothing is queu
ed to useit: waltjng[l ink、numbcrl and
(queue、rront、pointer[1i
nk、numbcrl −null) EQ WriteToVLCB (process、dcsc
riptor、 output、process、of
’fset)ScndDataPackct 0 URE −queue the packet EQ −thread the vl ink onto t
he queueEnQueue (data、pac
ket、off’5et)−record the m
essage dataWriLeDaLaPoinL
er (data、pointer)WritcTo
VLCB (data、count、 output、
count、offset)Wr1tOTOVIf’B
(proccss、dcscriptor、 out
oput、proccss、ofrsct)以下の手順
は、いかにDMA出力デバイスか確認パケット(つまり
、データを持たないパケット)を送るためにセット ア
ップされるかを示す。
PROCSendAcknovledgePackeL
□EQ GeLI、i nkNumber 0 F −the DMA output device is
1dle and nothing is queu
ed t。
□EQ GeLI、i nkNumber 0 F −the DMA output device is
1dle and nothing is queu
ed t。
use+L:
vaitlng[1ink、numberl AND
(queue、front、polnter[IInk
、numberlnulり SEQ SetLlpHeader 0 output、count[1ink、numbcrl
ニー 0procccd[1ink、numbcrl
! TR1lE −5tarts transmis
sion−waiting[1ink、numbcrl
will now become FALSERUE −5tore the Inf’ormatlon t
hat the acknowledge Is wa
ntedlEnQueue (ack、packeL、
orl’5et)以下の手順は、プロセス記連子をCP
Uに戻し、これがその後再度実行できるようにする。
(queue、front、polnter[IInk
、numberlnulり SEQ SetLlpHeader 0 output、count[1ink、numbcrl
ニー 0procccd[1ink、numbcrl
! TR1lE −5tarts transmis
sion−waiting[1ink、numbcrl
will now become FALSERUE −5tore the Inf’ormatlon t
hat the acknowledge Is wa
ntedlEnQueue (ack、packeL、
orl’5et)以下の手順は、プロセス記連子をCP
Uに戻し、これがその後再度実行できるようにする。
RPOCRcscheduleProccss OEQ
from、coma+unications、unit
、to、cpu ! proccss、dcscrtp
tor以下のOCCAMのピースは、いかに通信コント
ローラがメツセージを受信するためにCPUからの要求
に応答するかを示す。
、to、cpu ! proccss、dcscrtp
tor以下のOCCAMのピースは、いかに通信コント
ローラがメツセージを受信するためにCPUからの要求
に応答するかを示す。
SEQ
!’rom、cpu、to、communicaLio
ns、unit ? vlcb、pointer1
’rom、cpu、to、communicaLion
s、uni t I?daLa、pointerrro
n+、cpu、to、comi+unications
、unit ? data、eounLf’rom
、cpu、to、eommunicaLions、un
it ? process、descriptor
−Lhe cpu now waits ror a
I”urther communicationRea
dFromVLCB(pointer、 buf’ve
r、pointer、of’rset)−cheek
whether a packet is alrea
dy arriving on the samevi
rtual 1ink 11nk、number ニー 0 WIIILIE ((pointer /\1−0)
AND (IInk、number < NLinks
))11? 1nput、procccding[1ink、num
bcrl AND(hcadcr、buffcrDin
k、numbcrl −vlcb、pointer)S
EQ potntcr ニーpotntcr\/ l−t
erminates the 1oop−wait
f’or the packet to be wri
tten to the burrcrpacket、
end[1ink、numberl ? ri
nishcdinpuL、proceeding[1i
nk、numberl ニー FALSETR匪 1ink、number := 1ink、num
ber + 1− H’ there is no
w a packet ordaLa in the
virtual 1ink bufrerthis 1
s indicated by the bottom b
it of’ the pointer being
set to 1圧 (pointer/\1) −1−bottom bi
t setEQ pointer ニー pointer × l−
unset bottom bit of’
pointer−ask Lhe cpu to mo
ve data rrorn the bufTer1
’rom、communicaLions、unit、
to、cpu j pointerF data、count > max、paekeL、5
izeSEQ −there must be a r
ul l−5ize packet in thebu
f’f’er −ask the cpu to move it a
l If’rom、communications、u
nit、to、cpu j max、packet、5
izeWriteDataPointer (data
、pointer + max、packet、5iz
c)WritcToVLCB (data、count
−maX、paekot、5iZQ、 1nput。
ns、unit ? vlcb、pointer1
’rom、cpu、to、communicaLion
s、uni t I?daLa、pointerrro
n+、cpu、to、comi+unications
、unit ? data、eounLf’rom
、cpu、to、eommunicaLions、un
it ? process、descriptor
−Lhe cpu now waits ror a
I”urther communicationRea
dFromVLCB(pointer、 buf’ve
r、pointer、of’rset)−cheek
whether a packet is alrea
dy arriving on the samevi
rtual 1ink 11nk、number ニー 0 WIIILIE ((pointer /\1−0)
AND (IInk、number < NLinks
))11? 1nput、procccding[1ink、num
bcrl AND(hcadcr、buffcrDin
k、numbcrl −vlcb、pointer)S
EQ potntcr ニーpotntcr\/ l−t
erminates the 1oop−wait
f’or the packet to be wri
tten to the burrcrpacket、
end[1ink、numberl ? ri
nishcdinpuL、proceeding[1i
nk、numberl ニー FALSETR匪 1ink、number := 1ink、num
ber + 1− H’ there is no
w a packet ordaLa in the
virtual 1ink bufrerthis 1
s indicated by the bottom b
it of’ the pointer being
set to 1圧 (pointer/\1) −1−bottom bi
t setEQ pointer ニー pointer × l−
unset bottom bit of’
pointer−ask Lhe cpu to mo
ve data rrorn the bufTer1
’rom、communicaLions、unit、
to、cpu j pointerF data、count > max、paekeL、5
izeSEQ −there must be a r
ul l−5ize packet in thebu
f’f’er −ask the cpu to move it a
l If’rom、communications、u
nit、to、cpu j max、packet、5
izeWriteDataPointer (data
、pointer + max、packet、5iz
c)WritcToVLCB (data、count
−maX、paekot、5iZQ、 1nput。
eount、offset)
WritcToVLCB (proccss、dcsc
riptor、 1nput、process。
riptor、 1nput、process。
ofrsct)
data、count <” rnaX、paQkQ
L、5iZQ −the message isc
omplete SEQ −ask Llle epu LOm0Ve
Lhe vl+ole +neSsagefrom、c
ommunications、unit、to、cpu
! data、countReschedule
Process □VriLeToV1+CB (po
inLer、 bufrer、pointer、ol’
l”seL)ScndAcknovlcdgcPack
et 0(pot+rter /\l) = O−b
ottom bit not set; no pac
ket 5eeno rar EQ frol!1.communicatlons、uni
t、to、cpu ! ack、io −allow
theCPU to proceed WriteDataPointer (data、p
ointer)νritcToVLcB (data、
count、 1nput、count、olTset
)WriLeToVl、CD (proeess、de
scriptor、 1nput、process、o
lTset)以下の手順は、パケット見出しを復号して
、パケットがそれにアドレスされる仮想リンクの制御ブ
ロックをアドレスを得る。
L、5iZQ −the message isc
omplete SEQ −ask Llle epu LOm0Ve
Lhe vl+ole +neSsagefrom、c
ommunications、unit、to、cpu
! data、countReschedule
Process □VriLeToV1+CB (po
inLer、 bufrer、pointer、ol’
l”seL)ScndAcknovlcdgcPack
et 0(pot+rter /\l) = O−b
ottom bit not set; no pac
ket 5eeno rar EQ frol!1.communicatlons、uni
t、to、cpu ! ack、io −allow
theCPU to proceed WriteDataPointer (data、p
ointer)νritcToVLcB (data、
count、 1nput、count、olTset
)WriLeToVl、CD (proeess、de
scriptor、 1nput、process、o
lTset)以下の手順は、パケット見出しを復号して
、パケットがそれにアドレスされる仮想リンクの制御ブ
ロックをアドレスを得る。
(header、bul’(’er[l ink、nu
mberl−cahnnel 。
mberl−cahnnel 。
header、base )はアドレスされた仮想リン
クの番号、つまり、仮想リンク テーブルのベースから
のブロック オフセットである。従って、これはテーブ
ルのベースからの語オフセットを得るためには、8を掛
けなければならない(3だけ左にシフトすることに等し
い)。
クの番号、つまり、仮想リンク テーブルのベースから
のブロック オフセットである。従って、これはテーブ
ルのベースからの語オフセットを得るためには、8を掛
けなければならない(3だけ左にシフトすることに等し
い)。
PROCDecodelleader OEQ
header、buffer[1ink、number
l ニー((header、buf’rer[1ink
、nun+ber] −channel、heade
r、base) << 3) +VLinkBa
se vlcb、pointer ニー header、b
uffer[1ink、numberl以下のOCCA
Mのピースは、0力11ご通信コントローラがDMA人
カデノくイスの一つ力(確認/くケラトを受信したとき
応答する力Aを示す。
l ニー((header、buf’rer[1ink
、nun+ber] −channel、heade
r、base) << 3) +VLinkBa
se vlcb、pointer ニー header、b
uffer[1ink、numberl以下のOCCA
Mのピースは、0力11ご通信コントローラがDMA人
カデノくイスの一つ力(確認/くケラトを受信したとき
応答する力Aを示す。
EQ
−rind out how much ortl)c
message remains to be se
ntReadFromVLCB (data、cou
nt、 0Utput、eOunL、0rrSet)
P data、count ” 0−1ast packe
L 1las been 5entEQ ReadPromVLCB (process、des
criptor、 output、process、o
f’l’5et)WriteToVLCB (NotP
rocess、p、 output、process、
orrset)RescheduleProcess
0TRUE−5end or queue anoth
er packetEQ GctLinkNumbcr 0 F waiLing[1ink、numberl AND
(queue、front、pointer[l
ink、numberl −nut I)EQ TleaclDataPoinLer (data、p
ointer)SendDataPaeket □ rlLIE EnQueue (data、packet、ofTs
et)OCCAMの以下のピースl水、DMA人カデノ
・イスの一つがデータ lくケ・ソトを受信したときづ
信コントローラがl、M75−1こ応答する力1を示す
。
message remains to be se
ntReadFromVLCB (data、cou
nt、 0Utput、eOunL、0rrSet)
P data、count ” 0−1ast packe
L 1las been 5entEQ ReadPromVLCB (process、des
criptor、 output、process、o
f’l’5et)WriteToVLCB (NotP
rocess、p、 output、process、
orrset)RescheduleProcess
0TRUE−5end or queue anoth
er packetEQ GctLinkNumbcr 0 F waiLing[1ink、numberl AND
(queue、front、pointer[l
ink、numberl −nut I)EQ TleaclDataPoinLer (data、p
ointer)SendDataPaeket □ rlLIE EnQueue (data、packet、ofTs
et)OCCAMの以下のピースl水、DMA人カデノ
・イスの一つがデータ lくケ・ソトを受信したときづ
信コントローラがl、M75−1こ応答する力1を示す
。
hcadcr、burfcr[1ink、numbcr
コの底部ビ・ント(ヨ・人力プロセスが(存在する場合
)ノクケ・ソト人ノjノ終了したとき、再スケジュール
されるべき力)否ノを決定するために使用される。この
チャネJし上(準備のできた入力が存在するt二め、我
々Cよ、そ(上で他の人力が処理されな0ものと想定し
、従て、我々は、このレジスタの値を人力力(遂イテさ
れたとき行なわれる比較をスポイルすることなく安全に
退廃させることができる。
コの底部ビ・ント(ヨ・人力プロセスが(存在する場合
)ノクケ・ソト人ノjノ終了したとき、再スケジュール
されるべき力)否ノを決定するために使用される。この
チャネJし上(準備のできた入力が存在するt二め、我
々Cよ、そ(上で他の人力が処理されな0ものと想定し
、従て、我々は、このレジスタの値を人力力(遂イテさ
れたとき行なわれる比較をスポイルすることなく安全に
退廃させることができる。
EQ
−check whether an 1nput i
s ready−read process desc
riptor and header pointer
from vlcbRcadt’rcmVLCB (
pointer、 hcadcr、pointcr、o
ffset)RcadPromVLCB (procc
ss、dcscriptor、 1nput、proc
css、offset)F process、acscrtptor ” NotP
roccss、p −nO1nput is read
y−tel I the DMA 1nput dev
ice to write to the burre
rEQ ReaclFromVICB (input 、poi
nter[l i nk、numberl 、but
’rev 、poi nter。
s ready−read process desc
riptor and header pointer
from vlcbRcadt’rcmVLCB (
pointer、 hcadcr、pointcr、o
ffset)RcadPromVLCB (procc
ss、dcscriptor、 1nput、proc
css、offset)F process、acscrtptor ” NotP
roccss、p −nO1nput is read
y−tel I the DMA 1nput dev
ice to write to the burre
rEQ ReaclFromVICB (input 、poi
nter[l i nk、numberl 、but
’rev 、poi nter。
oCrset)
−record Lhat tbe bulTer i
s not emptyWriteTo■、CB (
input、pointer[l ink、numbe
rl \/ l、 bul’l”er。
s not emptyWriteTo■、CB (
input、pointer[l ink、numbe
rl \/ l、 bul’l”er。
poi nter、ol’ rset)acknovl
edge[l ink、numl)erl ! Tru
e −at low 1nput to procee
(input、proceeclingl:1ink、
numberl ニーTRLIEprocess、d
escriptor 0 NotProcess、p
−an Input is ready onchis
cl+anne SEQ −read poinLer I’rom Lhe p
rocess workspaceReadDaLaP
oinLer (inpuL、pointer[1i
nk、numbcrl)acknovledge[l
ink、numbcrl ! TRIE−at low
1nput to proceedinpuL、pr
oeeedlng[1ink、numberl ニー
TRUEReadPromVLCB (data、c
ount、 Input、count、of’f’5e
t)−Upc!ate pointer and co
untll・゛ data、count > ll1aX、paeket
、5fZeEQ −vr1tc lncrcmcntcd pointe
r 1nto workspaccWriteData
Pointer (data、pointer + m
ax、packet、5izc)−write dat
a、count 1nto vlcbWriteToV
LCB (data、count −max、pa
cket、5ize、 1nput。
edge[l ink、numl)erl ! Tru
e −at low 1nput to procee
(input、proceeclingl:1ink、
numberl ニーTRLIEprocess、d
escriptor 0 NotProcess、p
−an Input is ready onchis
cl+anne SEQ −read poinLer I’rom Lhe p
rocess workspaceReadDaLaP
oinLer (inpuL、pointer[1i
nk、numbcrl)acknovledge[l
ink、numbcrl ! TRIE−at low
1nput to proceedinpuL、pr
oeeedlng[1ink、numberl ニー
TRUEReadPromVLCB (data、c
ount、 Input、count、of’f’5e
t)−Upc!ate pointer and co
untll・゛ data、count > ll1aX、paeket
、5fZeEQ −vr1tc lncrcmcntcd pointe
r 1nto workspaccWriteData
Pointer (data、pointer + m
ax、packet、5izc)−write dat
a、count 1nto vlcbWriteToV
LCB (data、count −max、pa
cket、5ize、 1nput。
count、orrset)
TRUE −no more packeLs to
be received−record that t
his is the 1ast packethea
der、bu「「er[l ink、numbcrl
ニー header、bufrer[l ink、
numberコ\/l −5end or que(Je an acknol
/ledge packetGetLfnkNumbe
r □ P wai ting[l ink、numbcrl AN
D (queue、 f’ront、poi nter
[I Ink、 numberl=null) SendAcknovledgePacket □R
UE EnQueue (ack、packet、of’l’
set)OCCAMの以下のピースは、通信コントロー
ラがDMA入力デバイスの一つからのパケット終端信号
にいかに応答するかを示す。
be received−record that t
his is the 1ast packethea
der、bu「「er[l ink、numbcrl
ニー header、bufrer[l ink、
numberコ\/l −5end or que(Je an acknol
/ledge packetGetLfnkNumbe
r □ P wai ting[l ink、numbcrl AN
D (queue、 f’ront、poi nter
[I Ink、 numberl=null) SendAcknovledgePacket □R
UE EnQueue (ack、packet、of’l’
set)OCCAMの以下のピースは、通信コントロー
ラがDMA入力デバイスの一つからのパケット終端信号
にいかに応答するかを示す。
SEQ
acknovlcdgc[1ink、numbcrl
! TRUEP (hcadcr、buffcrrI ink、nurn
bcrコ /\ 1) −1−thjs was t
he 1astackCt −rcschedule processEQ −make Lhe relevant contro
l block currentvlcb、point
er ニー header、burf’er[l
ink、numberl/\ upper、bi Ls
。
! TRUEP (hcadcr、buffcrrI ink、nurn
bcrコ /\ 1) −1−thjs was t
he 1astackCt −rcschedule processEQ −make Lhe relevant contro
l block currentvlcb、point
er ニー header、burf’er[l
ink、numberl/\ upper、bi Ls
。
ask
ReadFromV’J、CD (process、d
escripLor、 1nput、process、
olTseL)−reseL descriptor
in the control blockWrite
ToVl+CI’3 (NotProcess、p、
1nput、process、ofTseL)Resc
heduleProeess 0TI?UIE KIP input、procccding[1ink、num
bcrl ニー PAL、SIE以下のOCCAMのピ
ースは、通信コントローラがDMA出力デバイスの−っ
がらの持ち′信号にいかに応答するかを示す。
escripLor、 1nput、process、
olTseL)−reseL descriptor
in the control blockWrite
ToVl+CI’3 (NotProcess、p、
1nput、process、ofTseL)Resc
heduleProeess 0TI?UIE KIP input、procccding[1ink、num
bcrl ニー PAL、SIE以下のOCCAMのピ
ースは、通信コントローラがDMA出力デバイスの−っ
がらの持ち′信号にいかに応答するかを示す。
F
qucucjront、pointer[l ink、
numbcr: −nut I−nothing
on the queueSKIP −waiti
ng[1ink、numbcrl rerIlains
TRUETRL!E SEQ DeQueue □ −take the I’1rs
t item I’rom Ll+e queue□R
eadFromvLCB (pointer、 I
+eacler、poinLer、orrseL)da
ta、packet −read data from memory an
d 5end packetEQ ReadPromvLCB (process、des
criptor、 output、process。
numbcr: −nut I−nothing
on the queueSKIP −waiti
ng[1ink、numbcrl rerIlains
TRUETRL!E SEQ DeQueue □ −take the I’1rs
t item I’rom Ll+e queue□R
eadFromvLCB (pointer、 I
+eacler、poinLer、orrseL)da
ta、packet −read data from memory an
d 5end packetEQ ReadPromvLCB (process、des
criptor、 output、process。
of’rset)
ReadDataPointer (data、poi
nter)ReadFromVLCB (data、c
ount、 output、count、of’rse
t)SendDataPacket O TI?LIE −5end an acknowled
ge packetEQ SctLIpHcadcr 0 output、eount[1ink、nuIIlbc
rl ニー 0procccd[1ink、nuIIl
bcrl ! TRUE −5tarts trans
mission−waiting[1ink、numb
erl will now become PALSE
nter)ReadFromVLCB (data、c
ount、 output、count、of’rse
t)SendDataPacket O TI?LIE −5end an acknowled
ge packetEQ SctLIpHcadcr 0 output、eount[1ink、nuIIlbc
rl ニー 0procccd[1ink、nuIIl
bcrl ! TRUE −5tarts trans
mission−waiting[1ink、numb
erl will now become PALSE
第1図は本発明の一つの実施態様に従うコンピュータ
デバイスのブロック図を示し;第2図はデータ パケッ
トの構造を示す;第3図はコンピュータ デバイスのブ
ロック図であり、メツセージ リンクがより詳細に示さ
れ;第4図は通信制御回路の構造のブロック図であり; 第5図は仮想リンク制御ブロックの構造を示し;第6図
及び第7図はそれぞれ人力及び出力直接メモリー アク
セサーを示し; 第8図から第14図はメツセージの人力及び出力が行な
われるときの仮想リンクの状態を示し;そして 第15図は網の線図を示す。
デバイスのブロック図を示し;第2図はデータ パケッ
トの構造を示す;第3図はコンピュータ デバイスのブ
ロック図であり、メツセージ リンクがより詳細に示さ
れ;第4図は通信制御回路の構造のブロック図であり; 第5図は仮想リンク制御ブロックの構造を示し;第6図
及び第7図はそれぞれ人力及び出力直接メモリー アク
セサーを示し; 第8図から第14図はメツセージの人力及び出力が行な
われるときの仮想リンクの状態を示し;そして 第15図は網の線図を示す。
Claims (1)
- 【特許請求の範囲】 1、各々がシーケンスのインストラクションを含む複数
の並行プロセスを実行するためのプロセッサ、RAMを
含むメモリー、コンピュータデバイスと別個のデバイス
に接続するための、及びメッセージパケットを該コンピ
ュータデバイスと該別個のデバイスとの間でシーケンス
順に伝送するための入力及び出力を持つ少なくとも一つ
のメッセージリンク、各々が該メモリーによって提供さ
れる複数のアドレス可能な仮想通信リンク、及び該プロ
セッサ、該メモリー、及び該メッセージリンクに接続さ
れた通信制御回路を含むコンピュータデバイスにおいて
、該通信制御回路が: (i)該プロセッサによるメッセージインストラクショ
ンの実行に応答して、該仮想通信リンクの選択された一
つにアドレスし、該選択された一つに該仮想通信リンク
を介して送信されるべきメッセージに関する情報をロー
ドし; (ii)該一つのメッセージリンクを通じての複数の仮
想通信リンクに関連するメッセージパケットのシーケン
シャル伝送を制御することを特徴とするコンピュータ
デバイス。2、該メモリーがまた該プロセッサによって
実行される並行プロセッサが互いに通信できるようにす
るための複数の通信チャネルを提供することを特徴とす
る請求項1に記載のコンピュータデバイス。 3、仮想リンクあるいは通信チャネルとしてのメモリー
位置の挙動が該メモリー位置のアドレスによって決定さ
れることを特徴とする請求項1に記載のコンピュータデ
バイス。 4、該通信制御回路が該プロセッサによって実行されて
いるプロセスと該別個のデバイスのプロセスによって実
行されているプロセスとの間で同期されたプロセスから
プロセスへの通信が実現されるような方法にてメッセー
ジの伝送をするように動作できることを特徴とする請求
項1、2または3に記載のコンピュータデバイス。 5、該通信チャネルが該プロセッサの並行プロセス間の
同期されたプロセスからプロセスへの通信をすることを
特徴とする請求項3、または請求項3に付加された請求
項4に記載のコンピュータデバイス。 6、単一チップ上の該プロセッサ、該メモリー及び該通
信制御回路を提供する集積回路から成ることを特徴とす
る上記の任意の請求項に記載のコンピュータデバイス。 7、該通信制御回路が該チップ上のプロセッサによって
実行されるプロセスと該別個のデバイスのプロセッサに
よって実行されるプロセスとの間の同期されたプロセス
からプロセスへの通信を実現するように動作可能である
ことを特徴とする請求項4及び6記載のコンピュータデ
バイス。 8、上記の任意の請求項に従う複数のコンピュータデバ
イスを含むそれらのメッセージリンクによって相互接続
された網。 9、該コンピュータデバイス間でメッセージをルーティ
ングするための複数の経路指定スイッチを含むことを特
徴とする請求項8に記載の網。 10、プロセッサ、RAMを含むメモリー、通信制御回
路、コンピュータデバイスと別個のデバイスに接続され
た入力及び出力を持つコンピュータと該別個のデバイス
との間でメッセージパケットの伝送を行なうための少な
くとも一つのメッセージリンクを持つコンピュータデバ
イス内において、並行プロセスを実行するための方法に
おいて、該方法が複数のアドレス可能なメモリー位置を
仮想通信リンクとして割り当てるステップ、複数のメッ
セージインストラクションを含むシーケンスのインスト
ラクションを実行するステップ、該通信制御回路を個々
の該メッセージインストラクションの実行に応答して動
作することにより、選択可能な仮想通信リンクにアドレ
スし、該選択可能なリンクに送信されるべきメッセージ
に関する情報をロードするステップ、及び該通信制御回
路を使用して該メッセージリンクの一つを通じてメッセ
ージパケットのシーケンシャル伝送を実行するステップ
を含むことを特徴とする方法。 11、該制御回路がメッセージリンクによるメッセージ
パケットの受信に応答して、該メッセージの内容に依存
する一つの選択された仮想通信リンクにアドレスするス
テップを含むことを特徴とする請求項10に記載の方法
。 12、網を形成するように相互接続されたコンピュータ
デバイス上の並行プロセスを実行するために使用された
とき、該方法が個々のコンピュータデバイス上にそのコ
ンピュータデバイス上の個々の仮想リンクに対して該網
内の別個のコンピュータデバイス上の関連する仮想リン
クを同定する情報を提供するステップを含むことを特徴
とする請求項10または11に記載の方法。 13、仮想リンク内の伝送されるべき個々のメッセージ
にそれと関連する仮想リンクを同定するアドレス部分を
割り当てるステップ、及び該アドレス部分を使用してメ
ッセージを該網を通じてルートするステップが含まれる
ことを特徴とする請求項12に記載の方法。14、メッ
セージリンクを使用することを待つ仮想通信リンクの持
ち行列を個々の仮想通信リンク内に次の仮想通信リンク
に対するポインタをロードし、これによって、連結され
たリストを形成することによって形成するステップがさ
らに含まれることを特徴とする請求項10から13のい
ずれかに記載の方法。 15、個々のメッセージリンクが同期されたプロセスか
らプロセスへの通信を提供するように構成され、一つの
仮想リンクを使用する一つのコンピュータ上のプロセス
の実行によって出力される個々のメッセージパケットが
入力デバイスによって同一の仮想リンクを使用する次の
メッセージパケットが伝送される前に確認されることを
特徴とする請求項10から14のいずれかに記載の方法
。 16、個々の仮想リンクがその仮想リンクがメッセージ
の伝送を実行するために使用されており、該仮想リンク
によってそれ以降のメッセージは、該仮想リンクによっ
て確認が受信されることによってその状態指標が変更さ
れるまで伝送できないことを示す状態指標を持つことを
特徴とする請求項15に記載の方法。 17、個々の仮想リンクがデータパケットの入力及び対
応する確認パケットの出力の両方を実行するように動作
可能なことを特徴とする請求項15または16に記載の
方法。 18、個々の仮想リンクがデータパケット及び対応する
確認パケットの両方の入力及び出力を実行するように動
作できることを特徴とする請求項17に記載の方法。 19、メッセージリンクを使用することを待つ個々の仮
想リンクが連結されたリスト内の二つの位置を採択する
能力を持ち、第一の位置がデータパケットの出力と関連
し、第二の位置が確認パケットの出力と関連することを
特徴とする請求項14及び18に記載の方法。 20、該データがビットパケットにて伝送されるように
符号化され、個々のパケットが同数の1及び0を含み、
該パケットが所定のビット長を持ち、有限セットの同数
の1及び0の置換を形成し、該有限セットの第一のサブ
セットがデータパケットとして使用するために選択され
、第二の異なる該有限セットのサブセットが制御パケッ
トとして使用するために選択されることを特徴とする請
求項10から18のいずれかに記載の方法。 21、個々のパケットが三つの1及び三つの0をから成
る6ビットの長さを持ち、16個の置換がデータパケッ
トとして使用するために選択され、4個の置換が制御パ
ケットとして使用されるために選択されることを特徴と
する請求項20に記載の方法。 22、該データが各々が6ビット長のビットパケットに
て伝送されるたに符号化され、個々のパケットが三つの
1及び三つの0を含み、これらの16個の組合わせがデ
ータの4ビットの異なる値を表わすために使用され、一
つの組合わせがメッセージ終端パケットを表わすために
使用され、そして一つの組合わせが反対方向のデータコ
ード及びパケット終端コードの流れを制御するために使
用されることを特徴とする請求項10から18のいずれ
か1つに記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB898915136A GB8915136D0 (en) | 1989-06-30 | 1989-06-30 | Method for controlling communication between computers |
| GB8915136.9 | 1989-06-30 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03131146A true JPH03131146A (ja) | 1991-06-04 |
| JP2988971B2 JP2988971B2 (ja) | 1999-12-13 |
Family
ID=10659382
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2174346A Expired - Fee Related JP2988971B2 (ja) | 1989-06-30 | 1990-06-30 | コンピュータデバイス、網及びコンピュータ間の通信を制御するための方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5495619A (ja) |
| EP (1) | EP0409434B1 (ja) |
| JP (1) | JP2988971B2 (ja) |
| DE (1) | DE69019247T2 (ja) |
| GB (1) | GB8915136D0 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018514824A (ja) * | 2015-01-21 | 2018-06-07 | リ、 ゼンホアLI, Zhenhua | 動的な組み合わせと調整が可能なパーソナルワークシステム |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5881310A (en) * | 1990-07-16 | 1999-03-09 | Atlantic Richfield Company | Method for executing an instruction where the memory locations for data, operation to be performed and storing of the result are indicated by pointers |
| US7088990B1 (en) * | 1996-02-26 | 2006-08-08 | Nokia Mobile Phones, Ltd. | Communication network terminal supporting a plurality of applications |
| US6360281B1 (en) * | 1998-05-29 | 2002-03-19 | 3Com Corporation | System and method for communicating with a serial communications device using multiple virtual ports |
| US7392234B2 (en) * | 1999-05-18 | 2008-06-24 | Kom, Inc. | Method and system for electronic file lifecycle management |
| US6438642B1 (en) | 1999-05-18 | 2002-08-20 | Kom Networks Inc. | File-based virtual storage file system, method and computer program product for automated file management on multiple file system storage devices |
| US9361243B2 (en) | 1998-07-31 | 2016-06-07 | Kom Networks Inc. | Method and system for providing restricted access to a storage medium |
| US8234477B2 (en) * | 1998-07-31 | 2012-07-31 | Kom Networks, Inc. | Method and system for providing restricted access to a storage medium |
| US6347344B1 (en) * | 1998-10-14 | 2002-02-12 | Hitachi, Ltd. | Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor |
| US6938094B1 (en) | 1999-09-17 | 2005-08-30 | Advanced Micro Devices, Inc. | Virtual channels and corresponding buffer allocations for deadlock-free computer system operation |
| US6950438B1 (en) | 1999-09-17 | 2005-09-27 | Advanced Micro Devices, Inc. | System and method for implementing a separate virtual channel for posted requests in a multiprocessor computer system |
| US6888843B2 (en) * | 1999-09-17 | 2005-05-03 | Advanced Micro Devices, Inc. | Response virtual channel for handling all responses |
| KR100385233B1 (ko) * | 2000-03-14 | 2003-05-23 | 삼성전자주식회사 | 데이터 프로세싱 시스템의 익스포넌트 유닛 |
| ATE411561T1 (de) | 2001-06-28 | 2008-10-15 | Nokia Corp | Verfahren zum ermöglichen von übertragung zwischen prozessen und verarbeitungssystem unter verwendung desselben |
| US6715055B1 (en) * | 2001-10-15 | 2004-03-30 | Advanced Micro Devices, Inc. | Apparatus and method for allocating buffer space |
| US20050131561A1 (en) * | 2003-12-16 | 2005-06-16 | Dell Products L.P. | Information handling system including docking station with digital audio capability |
| US7512721B1 (en) | 2004-05-25 | 2009-03-31 | Qlogic, Corporation | Method and apparatus for efficient determination of status from DMA lists |
| US8571834B2 (en) * | 2010-01-08 | 2013-10-29 | International Business Machines Corporation | Opcode counting for performance measurement |
| US8321753B2 (en) * | 2010-04-13 | 2012-11-27 | Juniper Networks, Inc. | Optimization of packet buffer memory utilization |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3406380A (en) * | 1965-11-26 | 1968-10-15 | Burroughs Corp | Input-output data service computer |
| US4419728A (en) * | 1981-06-22 | 1983-12-06 | Bell Telephone Laboratories, Incorporated | Channel interface circuit providing virtual channel number translation and direct memory access |
| US5243698A (en) * | 1982-11-26 | 1993-09-07 | Inmos Limited | Microcomputer |
| US4547880A (en) * | 1983-05-13 | 1985-10-15 | Able Computer | Communication control apparatus for digital devices |
| GB8329510D0 (en) * | 1983-11-04 | 1983-12-07 | Inmos Ltd | Computer apparatus |
| US4933933A (en) * | 1986-12-19 | 1990-06-12 | The California Institute Of Technology | Torus routing chip |
| US4914653A (en) * | 1986-12-22 | 1990-04-03 | American Telephone And Telegraph Company | Inter-processor communication protocol |
| US4901231A (en) * | 1986-12-22 | 1990-02-13 | American Telephone And Telegraph Company | Extended process for a multiprocessor system |
| US4905231A (en) * | 1988-05-03 | 1990-02-27 | American Telephone And Telegraph Company, At&T Bell Laboratories | Multi-media virtual circuit |
-
1989
- 1989-06-30 GB GB898915136A patent/GB8915136D0/en active Pending
-
1990
- 1990-06-28 DE DE69019247T patent/DE69019247T2/de not_active Expired - Fee Related
- 1990-06-28 EP EP90307109A patent/EP0409434B1/en not_active Expired - Lifetime
- 1990-06-30 JP JP2174346A patent/JP2988971B2/ja not_active Expired - Fee Related
-
1994
- 1994-04-18 US US08/229,055 patent/US5495619A/en not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018514824A (ja) * | 2015-01-21 | 2018-06-07 | リ、 ゼンホアLI, Zhenhua | 動的な組み合わせと調整が可能なパーソナルワークシステム |
| US10531260B2 (en) | 2015-01-21 | 2020-01-07 | Zhenhua Li | Personal working system capable of being dynamically combined and adjusted |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2988971B2 (ja) | 1999-12-13 |
| DE69019247D1 (de) | 1995-06-14 |
| DE69019247T2 (de) | 1996-02-15 |
| GB8915136D0 (en) | 1989-08-23 |
| EP0409434A1 (en) | 1991-01-23 |
| EP0409434B1 (en) | 1995-05-10 |
| US5495619A (en) | 1996-02-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2988971B2 (ja) | コンピュータデバイス、網及びコンピュータ間の通信を制御するための方法 | |
| US5133062A (en) | RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory | |
| US7363389B2 (en) | Apparatus and method for enhanced channel adapter performance through implementation of a completion queue engine and address translation engine | |
| US4418382A (en) | Information exchange processor | |
| JP4530547B2 (ja) | 高性能通信コントローラ | |
| US4949301A (en) | Improved pointer FIFO controller for converting a standard RAM into a simulated dual FIFO by controlling the RAM's address inputs | |
| US4200930A (en) | Adapter cluster module for data communications subsystem | |
| US5168547A (en) | Distributed architecture for input/output for a multiprocessor system | |
| SE447763B (sv) | Kanal-grenssnittkrets | |
| JPS61500385A (ja) | マイクロコンピユ−タ | |
| EP0744851A1 (en) | Distributed data processing system | |
| GB2204974A (en) | Programmable i/o sequencer for use in an i/o processor | |
| JPS58500145A (ja) | 割込連結と監視システム | |
| US6131135A (en) | Arbitration method for a system with two USB host controllers | |
| JPS639786B2 (ja) | ||
| JP2830833B2 (ja) | プロセッサ間通信方法及びそれに用いるプロセッサ | |
| JP2717112B2 (ja) | 二重ポートタイミング制御器 | |
| JPS63280365A (ja) | ダイレクトメモリアクセスオ−ダ競合制御方式 | |
| US7475170B2 (en) | Data transfer device for transferring data to and from memory via a bus | |
| US7272151B2 (en) | Centralized switching fabric scheduler supporting simultaneous updates | |
| JP2004086798A (ja) | マルチプロセッサシステム | |
| US7350015B2 (en) | Data transmission device | |
| JP2000013438A (ja) | ゲートウェイ装置 | |
| JPH0583938B2 (ja) | ||
| JPH07271654A (ja) | コントローラ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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 |
|
| LAPS | Cancellation because of no payment of annual fees |