JP2664664B2 - マイクロコンピュータおよびプロセス実行方法 - Google Patents

マイクロコンピュータおよびプロセス実行方法

Info

Publication number
JP2664664B2
JP2664664B2 JP59504133A JP50413384A JP2664664B2 JP 2664664 B2 JP2664664 B2 JP 2664664B2 JP 59504133 A JP59504133 A JP 59504133A JP 50413384 A JP50413384 A JP 50413384A JP 2664664 B2 JP2664664 B2 JP 2664664B2
Authority
JP
Japan
Prior art keywords
channel
input
output
microcomputer
processor
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.)
Expired - Lifetime
Application number
JP59504133A
Other languages
English (en)
Other versions
JPS61500387A (ja
Inventor
デイヴイツド メイ,マイクル
マーク シエフアード,ロジヤー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ESU JII ESU TOMUSON MAIKUROEREKUTORONIKUSU Ltd
Original Assignee
ESU JII ESU TOMUSON MAIKUROEREKUTORONIKUSU Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ESU JII ESU TOMUSON MAIKUROEREKUTORONIKUSU Ltd filed Critical ESU JII ESU TOMUSON MAIKUROEREKUTORONIKUSU Ltd
Publication of JPS61500387A publication Critical patent/JPS61500387A/ja
Application granted granted Critical
Publication of JP2664664B2 publication Critical patent/JP2664664B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 本発明はマイクロコンピュータおよびプロセス実行方
法に関するものであり、更に詳しくいえば、現在のプロ
セスの間でメッセージ伝送を行うマイクロコンピュータ
とプロセスの実行方法に関するものである。 発明の背景 本願出願人のヨーロッパ特許明細書0113156は、複数
の現在のプロセスを動作させるためにプロセッサとメモ
リを備えるマイクロコンピュータについて記述してい
る。それは、通信チャネルを用いることにより出力プロ
セスにデータを出力させ、かつ入力プロセスにデータを
入力させることを許す。それは現在のプロセスのデスケ
ジューリングと、スケジューリングを、プロセスを収集
待機実行に加えることにより許す。入力プロセスはいく
つかの代りのチャネルのうちの1つを介して入力できる
が、出力プロセスがそれのプログラムの対応する段階に
いつ達したかを知るためにチャネルの状態を検査するた
めに入力プロセスをスケジュールせねばならない。 発明の目的 本発明の目的は、プロセスが複数の代りのチャネルの
うちの一つを介してプロセスがデータを入力することを
許し改良したマイクロコンピュータを得ることである。 本発明の別の目的は、プロセスが複数の代りのチャネ
ルのうちの一つを介してプロセスがデータを入力するこ
とを許し、かつ出力プロセスがそれのプログラムの対応
する段階に達することを待っている間に入力プロセスを
デスケジュールさせることである。ここで、複数の代り
のチャネルを用いるのは、代替チャネルを複数個設けて
おき、このうちの入力の用意が整ったものに対して入力
を行うことで、動作速度を向上させることができるため
である。 発明の概要 本発明は、メモリと、複数の同時プロセスを実行する
ために構成されたプロセッサとを備え、各プロセッサ
は、プロセッサにより逐次実行するための複数の命令よ
り成るプログラムに従って前記プロセスを実行し、各命
令は、前記プロセッサにより実行されるべき要求された
機能を選定し、前記プロセッサは(1)複数のレジスタ
およびそれらのレジスタの間のデータの転送に使用する
データ転送手段と、(2)各命令を受け、プロセッサ・
レジスタの1つにその命令を受け、プロセッサ・レジス
タの1つにその命令に関連する値をロードする手段と、
(3)受けた各命令に応答して前記データ転送手段とレ
ジスタを制御し、プロセッサにその命令に従って動作さ
せる制御器と、を備えるマイクロコンピュータにおい
て、このマイクロコンピュータは:、 (1)1つまたはそれ以上のプロセスを識別して、プロ
セッサによる少なくとも1つの収集(61,62,63)待機実
行を形成し、現在のプロセスの実行に割込むことにより
プロセスをデスケジューリングし、さらにプロセスを収
集待機実行に加えることによりそのプロセスをスケジュ
ーリングするためのスケジューリング手段(51,52,53,6
6)と、 (2)1つのプロセスと別のプロセスがそれぞれのプロ
グラム・シーケンスにおける対応する段階にある時に、
通信チャネルを使用することにより1つのプロセスから
別のプロセスへデータの伝送を行えるようにする通信手
段(25,70)と、データを出力するために動作する出力
プロセス、およびデータ転送に使用するメッセージに応
答してデータを入力するために動作する入力プロセス、
を含み、前記通信手段は、入力プロセスが前記チャネル
を経て入力するためのプログラム段階に到達したことを
示す第1のチャネル準備完了表示と、出力プロセスが前
記チャネルを経て出力するためのプログラム段階に到達
したことを示す第2のチャネル準備完了表示とを行うこ
とによって、各々のチャネルを通じてデータ通信の状態
を示す複数の通信チャネル(70,90,91)と、二つの通信
プロセスの間の通信が完了したときに、二つの通信プロ
セスが対応したプログラムステップにもたらされるよう
に、現在のプロセスの実行を停止するため、あるいは中
断されたプロセスを前記収集待機実行に加えるために、
前記状態に応答する同期手段とを備え、前記通信手段
は、二者択一の通信チャネルのうちのいずれか一つを経
て入力プロセスを入力することを可能にするよう動作
し、(i)前記二者択一の各々のチャネルの状態を試験
し、前記チャネル準備完了表示をいずれのチャネルもま
だ持っていないという、前記入力プロセスの識別を前記
第1のチャネル準備完了表示に提供する入力プロセスに
よって二者択一の入力指示の実行に応答するため、(i
i)いずれの前記二者択一のチャネルも第2のチャネル
準備完了表示を持たない場合に、入力プロセスの実行を
停止するため、(iii)前記入力プロセスを再びスケジ
ュールするために、二者択一のチャネルのすべての各々
に出力するプロセスによって、通信命令を実行すること
に応答するため、(iv)前記二者択一の入力チャネルの
一つを選択する入力プロセスをさらに実行することに応
答するため、(v)前記第1のチャネル準備完了表示
を、選択されていない前記二者択一のチャネルから除去
するために、前記通信手段(25,70)およびプロセッサ
(12)が動作することを特徴とするマイクロコンピュー
タを提供するものである。 なるべく、プロセスをデスケジュールする手段は、チ
ャネルを試験する動作に応答して、入力プロセスによる
メッセージの命令の実行時に、そのチャネルを用いて出
力プロセスがメッセージ命令を実行したことを示す値を
代りのチャネルがいずれも含んでいないものとすると、
入力プロセスをデスケジュールするようにする。 なるべく、前記スケジュール手段は、デスケジュール
された入力プロセスを示す値を含んでいるチャネルを用
いて出力プロセスによるメッセージ命令の実行に応答し
て入力プロセスを再スケジュールするようにする。なる
べく、選択手段は入力プロセスのデスケジュールに応答
して、入力プロセスが再スケジュールされるまで、代り
のチャネルの1つの選択を遅らせるようにする。 一実施例においては、手段はメッセージ命令の実行に
応答して、プロセスが代りの入力動作を開始したことを
示す第1の特殊な値を、複数の代りのチャネルの1つを
介して、その入力プロセスに関連するメモリ場所に格納
するように構成されるようにする。 なるべく、代りの各チャネルの内容を試験する前記手
段は、任意の1つのチャネルの試験が、出力プロセスが
そのチャネルを用いてメッセージ命令を実行したことを
示す値を置いたとすると、入力プロセスに関連するメモ
リ場所に第2の特殊な値を格納するように構成する。 なるべく、プロセスに関連するメモリ場所の内容を検
査し、前記第2の特殊な値が置かれなかった時に入力プ
ロセスをデスケジュールするための手段が設けられ、こ
の手段は、プロセスに関連するメモリ場所に第3と第4
の特殊な値を更に置き、それらの第3と第4の特殊な値
のうちの1つは、プロセスがデスケジュールされて、そ
のプロセスが代りの入力プロセス中に含まれることを示
すことを示すようにする。なるべく、前記選択手段は、
前記代りの各チャネルの内容を試験し、かつ、そのチャ
ネルを用いて出力プロセスがメッセージ命令を実行した
ことを示す値を含んでいる最初に試験されたチャネルを
入力に対して選択するように構成され、前記選択手段
は、入力プロセスに関連するメモリ場所から前記第3の
特殊な値を除去するように構成され、それによりその選
択手段は、出力プロセスがそのチャネルを用いてメッセ
ージ命令を実行したことを示す値を含んでいるかもしれ
ないそれ以外の任意のチャネルを選択しないようにす
る。なるべく、チャネルの選択に応答して、入力プロセ
スに関連するメモリ場所にオフセット値を格納し、その
チャネルが選択された時に、そのプロセスに対するプロ
グラム・シーケンスにおいて必要なオフセットを示す手
段を含むようにする。 なるべく、異なる優先度と待機実行を有する複数のプ
ロセス収集の1つにプロセスを加え、またはその1つか
らプロセスを除去するスケジューリング手段を含むよう
にする。マイクロコンピュータという用語は全体として
集積回路装置を基にした小型コンピュータに関連するも
のであるが、そのコンピュータがどれ位小型であるかに
ついての何らの制約も果されないことがわかるであろ
う。 図面の簡単な説明 以下、図面を参照して本発明を実施例について説明す
る。 第1図はマイクロコンピュータの主な特徴を示すブロ
ック図、 第2図はマイクロコンピュータの一部をブロック図で
更に詳しく示すもので、とくに中央処理装置のレジス
タ、データ経路および算術論理装置と、中央処理装置と
メモリの間のインターフェイスおよび通信リンクとを示
し、 第3図はプロセッサレジスタと、マイクロコンピュー
タにより実行する高優先度プロセスのリストの作業域の
間の関係を示し、 第4図は第3図に類似するが、高優先度のプロセスが
実行されている間の低優先度のプロセスのリストを示
し、 第5図はマイクロコンピュータで使用されるポインタ
形式を示し、 第6図はマイクロコンピュータで使用されるプロセス
記述子の形式を示し、 第7図はマイクロコンピュータで使用される命令の形
式を示し、 第8図は2台のマイクロコンピュータの間の直列リン
クを通じて通信するためのデータパケットの書式を示
し、 第9図は2台のマイクロコンピュータの間の直列リン
クを通じて通信するための確認応答パケットの書式を示
し、 第10図はマイクロコンピュータの4つの直列リンク
を、マイクロコンピュータの残りの部分とのインターフ
ェイス装置とともに示し、 第11図は1つの直列リンクの出力チャネルと入力チャ
ネルで用いられる信号を一層詳しく示し、 第12図は直列リンクの出力チャネルを更に詳細に示
し、 第13図は直列リンクの入力チャネルを更に詳細に示
し、 第14図は直列リンクの出力チャネルと入力チャネルを
入力端子と出力端子へ接続するリンクインターフェイス
を示し、 第15図は1台のマイクロコンピュータにおける2つの
プロセスの間の通信を行う動作を15(a)〜15(e)の
順序で示し、 第16図は異なるマイクロコンピュータで行われる類似
の優先度の2つのプロセスの間の直列リンクを介する通
信を行う動作を16(a)〜16(f)の順序で示し、 第17図は、出力プロセスが出力をスタートする前に入
力プロセスが「別の入力」をスタートさせるような、異
なるマイクロコンピュータにおける2つのプロセスの間
の直列リンクを介する通信を行う動作を17(a)〜17
(f)の順序で示し、 第18図は、出力プロセスが出力動作をまずスタートさ
せ、それに続いて入力プロセスが「別の入力」動作を実
行するような、異なるマイクロコンピュータで行われる
2つのプロセスの間の直列リンクを介する通信を行う動
作を18(a)〜18(d)の順序で示し、 第19図は、出力プロセスが出力動作を開始する前に、
その出力プロセスと同じ優先度を有する入力プロセスが
「別の入力」動作を開始するような、同じマイクロコン
ピュータで行われる2つプロセスの間で通信を行う動作
を19(a)〜19(g)の順序で示し、 第20図は、出力動作に含まれている高優先度のプロセ
スYによって低優先度のプロセスXが直列リンクを介し
て割込まれる場合の関連するレジスタ内容を20(a)〜
20(c)の順序で示し、 第21図は、同じマイクロコンピュータで「別の入力」
を行う高優先度のプロセスXと、出力動作を行う低優先
度のプロセス「Y」の間の通信中の関連するレジスタの
内容を21(a)〜21(c)の順序で示し、 第22図は、本発明に従ってマイクロコンピュータ間の
通信を行う、異る語調を有するネットワークを示す。 好適な実施例の説明 この例で説明するマイクロコンピュータは、プロセッ
サと、RAMの態様のメモリと、外部通信を行えるように
するリンクを有し、1枚のシリコンチップで構成された
集積回路を備える。このマイクロコンピュータの主な要
素は、第1図でP形井戸相補MOS技術を用いている1枚
のシリコンチップ11の上に示されている。中央処理装置
(CPU)12にいくつかの読取り装置専用メモリ(ROM)13
が設けられている。このROM13は、インターフェイス制
御ロジック15により制御されるメモリ・インターフェイ
ス14に結合される。CPU12は算術論理装置(ALU)と、レ
ジスタと、第2図に詳しく示されているデータ経路とを
含む。CPU12とメモリ・インターフェイス14はバス16へ
接続される。バス16はチップ11上の素子の間の相互接続
を行う。サービス装置17に複数の入力ピン18が設けられ
る。このマイクロコンピュータにランダムアクセスメモ
リ(RAM)19とROM20が設けられる。チップにおけるメモ
リの容量は、プロセッサ12が外部メモリなしで動作でき
るように、1kバイトより少くない。チップ上のメモリの
容量はなるべく少くとも4kバイトにする。外部メモリイ
ンターフェイス23が設けられるこの外部メモリインター
フェイスは、随意の外部メモリへ選択するための複数の
ピン24へ接続される。ネットワークを形成するためにマ
イクロコンピュータを他のコンピュータへ結合できるよ
うにするために、入力ピン26と出力ピン27を有する複数
の直列リンク25が設けられる。1つの直列リンクの入力
ピンと出力ピンは、各自の専用の1本の一方向接続線に
より、第22図に示すように他のマイクロコンピュータの
直列リンクの対応する出力ピンと入力ピンへ接続でき
る。各直列リンクは、プロセス・スケジューリング・ロ
ジックを備える同期論理装置10に接続される。 第1図に示すブロック図は、ヨーロッパ特許出願第83
307078.2号、特許出願昭和58年第221455号、米国特許出
願第552601号、第552602号、第553027号、第553028号、
第553029号に含まれているブロック図に対応する。説明
の不必要なくり返えしを避けるために、そのマイクロコ
ンピュータの構造と動作の詳細については以下に説明し
ないが、上記特許出願における記載を参考のためにここ
に含ませる。 この実施例はTrasputer〔インモス・インターナショ
ナル(INMOS International)plcの商標〕マイクロコン
ピュータを改良したものである。前記特許出願に記載さ
れている特定の実施例においては、全てのプロセスは同
じ優先度を有するものとして取り扱われている。あるプ
ロセスと別のプロセスの間で通信されるメッセージは、
引き続く同期動作の間で一様なメッセージ長を有し、記
述されている例においてはメッセージ長は1語であっ
た。あるプロセスがいくつかの別の入力チャネルのうち
の1つから入力することを求められたとすると、出力チ
ャネルが可能なチャネルのうちの1つのチャネルの出力
動作を開始するまでそれらのチャネルをテストするため
に、そのプロセスのスケジュールを保持する必要があっ
た。 この実施例は、種々のプロセスに異なる優先度を割当
てることができるようにした改良についてのものであ
る。この実施例により、可変長メッセージをプロセスの
間で行えるようにする。各メッセージは、バイトのよう
な1つまたはそれ以上の標準ビット長単位より成る。更
に、この実施例により、出力プロセスを待っている間
に、スケジュールを保持する必要なしにいくつかの別の
入力チャネルのうちの1つのチャネルから入力プロセス
を入力させるようにする。 マイクロコンピュータの全体の構成は、前記特許出願
に記載されているマイクロコンピュータの構成に全体と
して類似する。以下の説明においては、類似の名称が、
前記特許出願における実施例に対応する部分に与えられ
る。メモリは、ポインタにより示すことができるアドレ
ス可能な場所を有する複数のプロセス作業域を設ける。
メッセージ通信は、同じマイクロコンピュータにおける
プロセス間通信の場合には、アドレス可能なメモリ場所
(ここではソフト・チャネルと呼ぶ)を介して行うこと
ができる。種々のコンピュータの間のプロセス間通信を
行うために、入力チャネルおよび出力チャネル(ここで
はハード・チャネルと呼ぶ)が直列チャネルで行われ、
それらのチャネルは、メモリに設けられているソフト・
チャネルに類似するやり方でアドレスすることもでき
る。 以上説明した改良を実施するために、マイクロコンピ
ュータの構成と動作を種々変更することが必要であり、
以下の説明は、それらの改良を行うために変更が含まれ
る面に向けることにする。 前記特許出願に記載されている例におけるように、記
述されている特定の語調は16ビットであるが、8,16,24
または32のような語調またはその他の語調を使用できる
ことがわかるであろう。更に、この場合には、種々の語
調のマイクロコンピュータが、それぞれの独立の語調と
は無関係に、互いに通信できるようにそれらのマイクロ
コンピュータを接続できる。 この例では、同じマイクロコンピュータ、または異な
るマイクロコンピュータの間、におけるメッセージ通信
は標準ビット長の1つまたはそれ以上のメッセージ単位
を送ることにより行われる。この例においては各メッセ
ージ単位は8ビットより成り、それにより1バイトを形
成する。このことは、メモリ内でバイトを識別できるこ
とが必要であることを意味する。プロセッサはメモリを
語でアクセスし、全てのバイト動作がプロセッサにより
行われる。第5図に示すように、ポインタというのはデ
ータの1つの語である(この特定の例では16ビット)。
最下位ビットはバイト・セレクタとして機能し、それ以
外の15ビットは語のアドレスを与える。このバイトセレ
クタを表すために必要なビットの数は、マイクロコンピ
ュータの語調に依存する。16ビット機の場合には、バイ
ト・セレクタとして1ビットだけを必要とする。しか
し、24ビットまたは32ビットのマイクロコンピュータの
場合にはバイト・セレクタは2ビット必要であり、80ビ
ット・マイクロコンピュータではバイト・セレクタは4
ビット必要であることがわかるであろう。バイトではな
くて語を識別するためにポインタが用いられる場合に
は、その語の最下位バイトに対するポインタが用いられ
る。 ポインタは2の補数の符号値として取り扱われる。こ
のことは、ポインタ中の最上位ビットが1であると、最
上位ビットが負とされ、残りの全てのビットが正の数を
表すことを意味する。最上位ビットが0であると、ポイ
ンタ中の全てのビットは正の値を表すものとされる。こ
れにより、標準比較機能が数値に対して用いられるのと
同様にして、ポインタ値に対して標準比較機能が用いら
れる。 通信チャネルの状態にとくに関連してある特殊な動作
が求められることを示すためにある値が反転されるか
ら、それらの値はポインタとしては決して用いられな
い。 以下の記述においては、それらの値および他の値を表
すために下記のような名称が用いられる。 HostNeg 負の最大値 (最上位ビットが1で、残りのビットが すべて0) MostPos 正の最大値 (最上位ビットが0で、残りのビットが すべて1) MachineTRUE 1 MachineFALSE 0 NotProcess.p MostNeg Enabling.p MostNeg+1 Waiting.p MostNeg+2 Ready.p MostNeg+3 前記特許出願の例におけるように、各プロセスは、そ
れにより取り扱われるローカル変数と一時的な値を保持
するために用いられるメモリ内の語のベクトルより成る
作業域を有することができる。プロセス作業域のための
1組の場所を指すために作業域ポインタWPTRが用いられ
る。各プロセスの作業域はいくつかの語より成るから、
バイト・セレクタを含む必要はない。したがって、プロ
セスの優先度を表すためにバイト・セレクタ・ビットを
用いることが可能である。このようにして、各プロセス
を第6図に示す種類の「プロセス記述子」により識別で
きる。最下位ビットはプロセスの優先度を示し、それよ
り上位の15ビットはプロセス作業域を識別するメモリ内
の語を示す。ここで説明している例では、マイクロコン
ピュータは2つの可能な優先度のうちの1つを各プロセ
スに割当てる。高い優先度の成分には名称Pri=0が与
えられ、低い優先度のプロセスは名称Pri=1を有す
る。したがって、各プロセス記述子は、作業域ポインタ
WPTRの「ビットワイズ(bitwise)OR」とプロセス優先
度をとることにより形成される1つの語を備える。同様
に、作業域ポインタWPTRは、プロセス記述子の「ビット
ワイズAND」とNOT1を形成することによりプロセス記述
子から得ることができる。プロセスの優先度は、プロセ
ス記述子の「ビットワイズAND」と1を形成することに
より得ることができる。 CPUデータ経路およびレジスタ 中央処理装置12およびそれの動作は第2図を参照する
ことにより十分に理解されるであろう。 CPU12はXバス、Yバス、Zバスおよび双方向データ
バス31に接続される算術論理装置(ALU)30と複数のデ
ータ・レジスタを含む。それらのレジスタの動作と、バ
スとの相互接続は、32で線図的に表されているスイッチ
により制御され、かつROM13に含まれているマイクロ命
令プログラムから得られる信号により制御される。CPU
とメモリの間の通信は、メモリ・インターフェイス14に
達する一方向アドレス経路33とデータ31を介して行われ
る。 前記特許出願におけるように、各命令は第7図に示す
形式を有する8ビットより成る。そのうちの4ビットは
命令の所要の機能を表し、残りの4ビットは各データに
割当てられる。プロセスのためのプログラム・シーケン
スから得た各命令は命令バッファ34へ与えられ、その命
令はデコーダ35により複合される。そのデコーダの出力
は状態マルチプレクサ36を介して、マイクロ命令ROM13
をアドレスするために用いられるマイクロ命令レジスタ
37へ与えられる。命令バッファ34と、デコーダ35と、状
態マルチプレクサ36と、MIR37と、マルチプレクサROM13
と、スイッチ32との動作は前記特許出願に記述されてい
るのと全体として同じである。 この実施例は優先度が0のプロセスと、優先度が1の
プロセスとの2組のプロセスを取り扱うように構成され
ているから、2つのレジスタ・バンクが設けられる。優
先度1のプロセスのためにレジスタ・バンク38が設けら
れ、類似のレジスタ・バンク39が優先度0のプロセスの
ために設けられる。両方のレジスタ・バンクは類似のレ
ジスタ群を有し、それらのレジスタはX,Y,Zのバスとデ
ータ・バスへ同様に接続される。簡単にするために、レ
ジスタと、それらのレジスタの接続はレジスタ・バンク
38についてのみ詳しく示してある。特定の優先度を割当
てられている2つのレジスタ・バンクに加えて、CPUは
定数ボックス40と、レジスタ・バンク・セレクタ41と、
第2図に示されているいくつかの他のレジスタとを含
む。それらのレジスタは優先度1のプロセスと優先度0
のプロセスに共通である。それらのレジスタは次のとお
りである。 優先度0のプロセスのためのレジスタ・バンク39は、
優先度1のプロセスについて先に説明したレジスタ・バ
ンクと同じである。以下の説明においては、接尾数
〔1〕は優先度が1のバンクに関連するレジスタを示
し、接尾数〔0〕はレジスタが優先度0のバンクに関す
ることを示す。優先度がわからない時は接尾語〔Pri〕
は、成分に対する適切な優先度のレジスタが用いられる
ことを示す。 それらのレジスタの語調は、この場合には、1ビット
・フラッグ47,48,58,59から16ビット隔てられる語調で
ある。1度にただ1つの命令を保持するように構成され
るものであれば、命令バッファは8ビット長とすること
ができる。 A,B,Cのレジスタ・スタック54,55,56はほとんどの演
算動作およびほとんどの理論動作に対するソースおよび
宛先である。Bレジスタに存在している内容をCレジス
タへロードし、Aレジスタの内容をBレジスタへロード
をしてから、Aレジスタにある値をロードするように、
それらのレジスタは構成される。同様に、Aレジスタか
ら取り出した値を格納させると、Bレジスタの内容がA
レジスタへ動かされ、Cレジスタの内容がBレジスタへ
動かされる。 TREG49は、データのブロックのコピーを求めるある通
信命令とは別の全ての命令の実行中に値を一時的に保持
するために利用でき、その場合には、データのブロック
のコピーが終った時に実行すべき動作を示すためにTREG
49が用いられる。 両方のレジスタ・バンク38,39のOREG57は、両方の優
先度のプロセスに対して、命令のうち0レジスタへ送ら
れる部分が、適切なマイクロ命令の発生に使用するため
に、デコーダへ達するように、デコーダ35に接続され
る。両方の優先度のバンクのSNP FLAG58とCOPY FLAG59
も、任意の時刻にプロセッサにより実行すべき次の動作
の特定において、いずれかの優先度のプロセスに対する
それらのフラグの設定をマイクロ命令が考慮に入れるこ
とができるように、状態マルチプレクサ36へも接続され
る。あるプロセスの作業域ポインタ(WPTR)が、それか
らそのプロセスのローカル変数をアドレスできるベース
として用いられるから、作業域ポインタにより示される
場所からのオフセット値を計算することが時に必要であ
る。定数ボックス40がYバスに接続され、マイクロ命令
ROM13の制御の下に定数値をそのバスに置くことができ
るようにする。それらはプロセス作業域内のオフセット
場所を指すために使用できる。レジスタ・バンク38また
は39の一方または他方を選択するために、レジスタ・セ
レクタ41はPRI FLAG47と、PROCPRI FLAG48と、マイクロ
命令ROM13とから入力を受ける。レジスタ・バンク・セ
レクタからの出力は状態マルチプレクサ36と、デコーダ
35と、スイッチ32とに接続される。マイクロ命令ROM13
の出力に応じて、セレクタはPRIFLAG47またはPROCPRI F
LAG48により示されているレジスタ・バンクを選択す
る。 プロセス作業域のためのメモリ割当て 前記特許出願に記載されている例と同様に、マイクロ
コンピュータはいくつかのプロセスを時分割式に一緒に
実行する。一緒に実行されるプロセスは同時プロセスと
呼ばれ、任意の時刻に実行されているプロセスは現在の
プロセスと呼ばれる。各同時プロセスは、そのプロセス
により取り扱われるローカル変数と一時的な値を保持す
るために、作業域と呼ばれるメモリ領域を有する。作業
域の第1のローカル変数のアドレスは作業域ポインタ
(WPTR)により示される。これは第3図に示されてい
る。第3図においては、4つの同時プロセスL,M,N,Oが
作業域60,61,62,63を有する。この図には作業域60が詳
しく示されており、WPTR REG51に保持されている作業域
ポインタは、この例では10000として示されているアド
レスを有する単一語場所である零場所を示す。このプロ
セスのための他のローカル変数は、作業域ポインタによ
り示されている語から正のオフセット・アドレスとして
アドレスされる。零場所からの小さい負のオフセットを
有する作業域場所のいくつかはスケジューリングと通信
を行う目的のために用いられる。この例においては別に
3つの語場所65,66,67が示されている。それらの語場所
は負のオフセット1,2,3を有し、WPTRにより示されてい
る零場所の下に示されている。それら3つの場所は次の
通りである。オフセット オフセット名 場 所 名 −1 Iptr.s Iptr location −2 Link.s Link location −3 State.s State location 場所65は、あるプロセスが現在のプロセスではない時
に、そのプロセスが現在のプロセスとなった場合にプロ
セスにより実行すべき次の命令を示すポインタ(IPTR)
を保持するために使用される。場所66は、実行を持って
いるプロセスのリンク・リストすなわち行列上の次のプ
ロセスの作業域ポインタを格納するために用いられる。
場所67は、別の入力動作を実行しいるプロセスの状態の
指示を含むために、またはデータのブロックをコピーす
るためのポインタとして通常使用される。これについて
は後で詳しく説明する。 このメモリはプロセス間通信のための語場所も与え
る。第3図はそのようなソフト・チャネル70を示す。 メモリ内の1つの語により与えられるソフト・チャネ
ルを通じての通信を加えて、直列リンクを介しての外部
通信も行うことができる。 直列リンク 前記特許出願に記載されているように、データは所定
のプロトコルを有するデータ・パケットの形で一方のマ
イクロコンピュータから他方のマイクロコンピュータへ
送られる。データの受取りは確認応答パケットの送信に
より示される。この特定の例においては、データは第8
図に示すような形で送られる。各パケットは標準のデー
タ単位より成る。この場合にはそれは1バイト(8ビッ
ト)より成る。データ・パケットはそれぞれ1である、
2つのスタート・ビットで始まる。そのスタート・ビッ
トの後にデータバイトが続き、0であるストップ・ビッ
トで終る。第8図に示すように各パケットの送信の後
で、そのパケットを受ける直列リンクの入力チャネル
は、それに組合わされている出力チャネルへ、第9図に
示すような形式の確認応答パケットを送ることを知らせ
るように構成される。このパケットは1で始まり、0で
終る2ビットのパケットにすぎない。データの送りまた
は受取りのためにプロセスにより実行される命令は、そ
のようなデータのパケットを2個以上含むことを要求す
ることがあり、したがって命令により要求されるメッセ
ージを終るためにはどれ位の数のデータの標準単位すな
わちバイトを送るべきかを命令は指示する。第10図に示
されている例においては、各直列リンク300,301,302,30
3が入力ピン26と出力ピン27を有しているのが示されて
いる。各リンクは並列バス75,76によりメモリ・インタ
ーフェイス15に接続される。それらのリンクは線77,78
によりインターフェイス制御ロジック15へも接続され
る。それらの線77,78は読出し要求信号と書込み要求信
号をそれぞれインターフェイス制御ロジックへ与える。
制御ロジック15は「DATA VALID」信号を線79を介してそ
れらのリンクへ与えるように構成される。各リンクは状
態出力信号を線80を介して第2図の状態マルチプレクサ
36へ与えるように構成される。Zバスは各リンク300〜3
03へも接続されるとともに、線81を介して同期ロジック
10へ接続される。線82はマイクロ命令ROM13からの出力
を同期ロジック10へ与え、線83はこの同期ロジックから
の信号を状態マルチプレクサ36へ与える。リンクがプロ
セッサが動作することを求めたことを指示した時に、リ
ンクからの要求信号を伝えるために線84は各リンクを同
期ロジック10に接続する。要求信号をプロセッサからの
リンクへ与えるために、線85がマイクロ命令ROM13を各
リンクに接続する。 第11図は1つのリンクを詳細に示す。このリンクは出
力チャネル90と入力チャネル91を有する。それら両方の
チャネルはリンク・インターフェイス92に接続される。
このリンク・インターフェイスは第14図に詳しく示され
ている。リンク・インターフェイス92は入力ピン26と出
力ピン27に接続され、かつ、第8,9図を参照して先に説
明したように、データ・パケットと確認応答パケットを
受け、または送るように構成される。出力チャネル90
と、入力チャネル91と、リンク・インターフェイス92と
には共通クロックからクロック・パルスが全て供給され
る。出力チャネル90はリンク・インターフェイスからOU
TPUT ACK信号94を受け、リンク・インターフェイスへOU
TPUT DATAをバス95を介して、およびOUTPUT DATA VALID
信号を線96を介して供給するように構成される。同様
に、入力チャネルはリンク・インターフェイス92からIN
PUT DATAを線97を介して受け、かつINPUT DATA VALID信
号を線98を介して受け、リンク・インターフェイスへIN
PUTACK信号を線99を介して送るように構成される。 リセット線101が出力チャネル90と、入力チャネル91
と、リンク・インターフェイス92とに接続される。 バス76に与えられたアドレスからコピーすべきデータ
の読出し要求を線77を介して行うことにより、指定され
たメモリ場所から所定数のデータ・バイトを出力させる
ように出力チャネル90は構成される。データは、線79を
介してのOUTPUT DATAVALID信号とともに、並列バス75を
介してそのチャネルへ供給される。 同様に、入力チャネル91は、バス76を与えられたメモ
リ・アドレスにおける書込み要求を線78に生ずることに
より、メモリのある指定された宛先アドレスへ指定され
た数のデータ・バイトを書込ませることができる。 プロセッサと通信するために、両方のチャネル90,91
はZバスに接続される。マイクロ命令ROM13は線85aを介
してOUTPUT REQUESTを出力チャネルに対して行うことが
できる。入力チャネル91の場合には、マイクロ命令ROM1
3は3種類の信号をバス85へ与えることができる。それ
はINPUT REQUEST86bまたはENABLE信号85cあるいはSTATU
S ENQUIRY85dを行うことができる。同期ロジック10に接
続されているバス84は、出力チャネル90からのOUTPUT R
UN REQUEST84bとOUTPUT PRIORITY信号84aを伝えること
ができる。そのバス84はINPUT PRIORITY信号84dととも
にINPUT READY REQUEST84cを送ることができ、または入
力チャネル91からINPUT PRIORITY信号とともにINPUT RU
N REQUEST84eを同期ロジック10へ送ることができる。 入力チャネル91はSTATUS OUT信号も線80へ与える。 それらの信号の機態については後で詳しく説明する。 第12図は出力チャネル90を更に詳しく示す。このチャ
ネルを用いてプロセスの優先度を示すために用いられる
優先度レジスタ110へZバスが接続される。Zバスはバ
イト・カウンタ111とポインタ・レジスタ112へも接続さ
れる。ポインタ・レジスタ112は、バス76上で指示すべ
きデータのソースのアドレスを含むために用いられる。
出力チャネルは転送状態マシン113も含む。直列リンク
内の各状態マシンは、マシンの現在の状態を保持する状
態レジスタと、プログラム可能な論理アレイとで構成さ
れる。その論理アレイは、状態レジスタのための新しい
値と、出力信号の所定のパターンとを発生するために状
態レジスタの値と、状態マシンへの各種の入力信号とに
応答する。 状態マシン113は4つの入力を有する。それらの入力
は線85a上の出力要求と、線101上のリセットと、線94上
の出力確認応答と、線114上のカウント零とである。メ
ッセージ出力の初めに、バイト・カウンタ・レジスタ11
1はメッセージ内の送られるべきバイトの総数を示す
が、各バイトが送られるにつれて、レジスタは、状態マ
シン113からのデカウント出力信号115の制御の下に内容
を減少し、送るべきバイトが残らなくなった時にカウン
ト零信号114を発生する。デカウント出力115に加えて、
状態マシン113は読出し要求出力を線77へ与え、実行要
求を線116へ与え、インクポインタ(incpointer)を線1
17へ与える。ポインタ・レジスタ112は、最初に送るべ
き最初のバイトへのポインタを最初に含むが、線117上
の信号のために、各バイトが送られるにつれてポインタ
が増加される。 出力端子116は実行要求信号線84bと、優先度レジスタ
110から線119を介して加えられる別の入力を受けるAND
ゲート118とに接続される。このようにして、実行要求
が線84bにおいて行われる時に、出力プロセスの優先度
を線84a上で示すことができる。 メモリ・インターフェイスからバス75と線79へ与えら
れた信号はチャネルを直接通って、線95と96を介してリ
ンク・インターフェイス92へ与えられる。バス75と線95
は送るべきバイトの値を送り、線79と96は出力データ妥
当信号を送る。その出力データ妥当信号は、いま正しく
送られたデータがデータの全バイトを表すことを示すた
めにメモリ・インターフェイスにより発生される。 転送状態マシン113に対する一連の遷移状態は次の通
りである。 第13図は入力チャネルを一層詳しく示すものである。
この入力チャネルは優先度フラグすなわち優先度レジス
タ120と、バイト・カウンタ・レジスタ121と、ポインタ
・レジスタ122とを含み、それらのレジスタは全てZバ
スに接続される。このチャネルのための入力信号と出力
信号は3つの状態マシンにより制御される。それらの状
態マシンはTRANSFER状態マシン125と、ALTERNATIVE状態
マシン126と、READ状態マシン127とで構成される。各状
態マシンは同じソース93からクロック・パルスの入力を
受ける。 TRANSFER状態マシン125は、チャネルを介してのメモ
リ場所へのメッセージの入力を制御する。メッセージを
入力するために必要な命令をプロセッサが実行すると、
プロセッサは、入力すべきバイトの数の指示をバイト・
カウンタ・レジスタ121へロードし、メッセージをコピ
ーすべき第1のメモリ場所へのポインタをポインタ・レ
ジスタ122へロードし、入力命令を実行するプロセスの
優先度の指示を優先度フラグにセットする。それから、
プロセッサは線85bに対して入力要求を行う。それは転
送状態マシン125への入力の1つを形成する。バイト・
カウンタ・レジスタ121は、入力メッセージの各バイト
が受けられるにつれて、最後に零に達するまでカウント
が減少させられるように構成された減分器を含む。同様
に、ポインタ・レジスタ122は、各バイトが受けられる
につれて、入力メッセージの次のバイトのためのメモリ
宛先アドレスへポインタが増加するように増分器を含
む。 転送状態マシン125は線101からセット入力を受け、バ
イト・カウンタ121からカウント零信号を線128を介して
受け、入力要求を線85bから受け、READY信号をREADY状
態マシン127から線129を介して受ける。転送状態マシン
125は、バイト・カウンタ121を減少させるために、出力
DECCOUNTを線130に出す。同様に、輸送状態マシン125
は、ポインタ・レジスタ122の値を増加させるために、
出力INCPOINTERを線131に生じ、出力書込み要求を線78
に与え、入力ACKを線99に与え、RUNREQを線84eに与え
る。 輸送状態マシン125の一連の状態は次の通りである。 READY状態マシン127は簡単なフリップフロップの形で
構成でき、データのバイトがリンク・インターフェイス
中の入力レジスタにより受けられたが、まだ確認応答し
ないかどうかを示すために用いられる。このREADY状態
マシン127はリセット入力端子101を有し、更に妥当な入
力バイトがインターフェイスの入力レジスタで受けられ
た時に、リンク・インターフェイスから得た入力信号入
力データ妥当を線98に有する。また、状態マシン127
は、データのバイトがリンク・インターフェイスにより
受けられた時にその状態マシンが1つの状態にセットさ
れ、それから入力ACK信号が線99にセットされた時にリ
セットされるように、入力ACK信号線99から得られる入
力132を有する。状態マシン127は1つの出力READYを線1
29へ与える。その出力READYは転送状態マシン125への入
力と、ANDゲート133への1つの入力と、代替状態マシン
126へのREADY入力134とを形成する。READY状態マシン12
7の一連の状態は次の通りである。 代替状態マシン126は、いくつかの代替入力チャネル
のための命令を実行するプロセスを取り扱う。READY入
力134に加えて、代替状態マシン126はリセット入力101
と、可能化入力85cと、状態質問入力85dとを有する。代
替状態マシン126はREADYREQ出力135を発生して、それを
信号線84cへ与え、更に、出力REPLYを線136に生ずる。
この出力はANDゲート133への第2の入力を形成する。出
力線135と84eはORゲート137への入力を形成する。このO
RゲートはANDゲート138へ出力を与える。このANDゲート
は入力チャネルを用いるプロセスの優先度を示す入力も
線139から受ける。 線85上の入力信号を用いることにより、プロセッサは
入力要求を行うことができ、またはチャネルを可能状態
にでき、あるいは状態質問を行うことができる。それら
については後で詳しく説明する。リンクはRUN要求また
はREADY要求を線84へ与え、READY要求またはRUN要求が
行われた時に優先度が線84d上に示される。ANDゲート13
3を設けることにより、READY状態を線80上に指示でき
る。 代替状態マシン126の一連の状態は下記の通りであ
る。 出力チャネル90と入力チャネル91はプロセッサおよび
メモリと通信するが、第8,9図に示すプロトコルに従っ
て出力すべきデータ・パケットまたは確認応答パケット
を作り、かつ、別のマイクロコンピュータにより出力さ
れたそれらのパケットのいずれかを受けて、認知するの
はリンク・インターフェイス92である。このリンク・イ
ンターフェイスはビット・カウンタ141を有する出力状
態マシン140と、ビット・カウンタ143を有する入力状態
マシン142とによって構成される。そのリンク・インタ
ーフェイスは出力レジスタ144も含む。この出力レジス
タは出力データ・バス95に接続され、データのバイトを
受けるように構成される。入力データを受けるために入
力レジスタ145が入力ピン26に接続される。このレジス
タ145は入力データ・バス97を介してメモリ・インター
フェイスに接続される。リンク・インターフェイスは2
つのレディ指示器146,147も含む。それらの各レディ指
示器はフリップフロップを有する。リンク・インターフ
ェイスは2つのラッチ148,149も含む。各ラッチもフリ
ップフロップを有する。リンク・インターフェイスは3
個のANDゲート150,151,152とORゲート153も含む。出力
データ・マシン140は下記のような複数の入力および出
力を有する。 入力状態マシン142は次のような入出力を有する。 出力状態マシンの一連の状態は以下のとおりである。 入力状態マシン142の一連の状態は以下のとおりであ
る。 出力欄の下側に特定の出力が記載されている両方の状
態マシンに対して、その特定の出力を示すために信号1
が発生されることをこれは意味する。他の全ての時には
記載されていない各出力の信号値は零の形である。入力
欄の下に記載されている入力を除く全ての入力は無視さ
れる。記号\/,/\および△はそれぞれブール演算AND,O
R,NOTを示すために用いられる。 ラッチ148の目的は出力動作を制御することである。
データのバイトが出力されると、出力端子169からの信
号が、入力状態マシンから出力端子178からの確認応答
信号によってラッチ148がセットされるまで、それ以上
の出力を阻止するためにANDゲート150を制御する状態に
ラッチ148をセットする。同様に、ラッチ149は入力動作
を制御する。データが受けられると、線177上の信号が
ラッチ149をセットして、確認応答が送られるまでデー
タが入力されたことを思い出させる。それはANDゲート1
52を制御して、確認応答が送られたことを示す出力170
によってラッチ149がリセットされるまで、ACKGO入力を
出力状態マシンへ与えられるようにする。 このリンク・インターフェイスの動作は次の通りであ
る。まず、出力リンクがデータを出力することを希望し
ている状態について考える。第12図の出力チャネルはデ
ータをバス95に沿って出力レジスタへ供給させ、出力デ
ータ妥当信号がレディ指示器147をセットする。この指
示器147の出力はANDゲート150へ与えられ、ラッチ148の
状態はData Go信号が161に入力されるようなものであ
る。ピン27における出力はORゲート152を通じてとり出
されるから、その出力は、出力状態マシンから出力端子
167に供給される信号に応じて、出力状態マシンからの
出力端子166上の信号、またはANDゲート151の出力端子
における信号より成る。出力状態マシン140についての
遷移表からわかるように、リセットされた後でこのマシ
ンが遊び状態になっている時は、線166へは指示された
出力が与えられないから、零を示す信号レベルが出力ピ
ン27へ与えられる。入力端子166へData Go信号が与えら
れると、これは、入力Data Goが存在して、AckGo信号が
存在しない状態表の4行に対応する。そうすると、この
表に示されているように信号Oneoutが出力端子166に発
生させられる。そのために信号1が出力ピン27に与えら
れ、第8図に示されているデータ・パケットの最初のビ
ットを形成する。それから、出力状態マシンは、状態表
の6行からわかるように、「Data Flag」と呼ばれる状
態へ移る。この状態においては、それ以上の入力が与え
られないと、状態マシンは別のOneout信号を出力端子16
6に生じさせ、Load count信号を出力端子164に生じさせ
る。そのために第2の信号値1がピン27によって出力さ
せられ、それにより第8図におけるデータ・パケットの
2つのスタート・ビットを形成する。ビット・カウンタ
141には、出力すべきビットの数もロードされる。この
場合にはその数は8である。そうすると出力状態マシン
は「databits」と呼ばれる状態になる。そうすると、状
態表の7行と8行からわかるように、レジスタ144のデ
ータ内容を出力ピン27へ出力させるように、dataout信
号がANDゲート151へ与えられる。出力端子168に生じた
桁送り出し信号がレジスタ144からデータを順次放出さ
せ、その結果としてビット・カウンタ141内のカウント
が減少させられる。状態表の8行に示すようにカウンタ
が零に達すると、線169にDatagone信号が出力される。
その信号はラッチ148を変化させてDatago信号を入力端
子161から除去する。状態表の8行からわかるように、
線166,167における信号は示されていない。その理由
は、線166〜信号値0が再び与えられ、その信号値はOR
ゲート153と出力ピン27を介して与えられることによ
り、第8図に示すデータ・パケットの終りにストップ・
ビット0を形成する。出力状態マシンは遊び状態へ戻
る。 出力チャネルは確認応答パケットを送るためにも使用
できる。入力チャネルがデータのバイトを受けると、そ
の入力チャネルは、第9図に示すような種類の確認応答
パケットを出力するために、信号を出力状態マシンへ送
る。信号がレディ指示器146からANDゲート152へ送ら
れ、この時のラッチ149の状態により、出力状態マシン1
40の入力端子163へACKGO信号を与えることができる。こ
れは出力状態マシン140の状態表の3行に対応し、これ
からわかるように、oneout出力が出力端子166に出力さ
せられる。ピン27における信号のレベルが以前の零レベ
ルから、第9図に示す確認応答パケットの最初のビット
を構成する1へ変えられるように、前記oneout出力はOR
ゲート153を通される。これによって出力状態マシン140
の状態がACKFLAGと呼ばれる状態に変えられ、この出力
状態マシン140の状態表の5行からわかるように、出力
状態マシン140の状態が上記のように変化しても線166,1
67にそれ以上の出力は与えられない。このことは、出力
端子27における信号のレベルが零へ戻って、第9図に示
す確認応答パケットの2番目のビットを与えるように、
出力端子166における信号のレベルが零レベルへ戻るこ
とを意味する。出力状態マシン140は、ラッチ149の状態
を変えてANDゲート152の出力を変えることにより入力端
子163からACKGO信号が除去されるように、線170にACKGO
NE出力を与える。それからこの状態マシンは遊び状態へ
戻る。 次に、入力状態マシン142の動作について説明する。
この入力状態マシンは線101上のリセット信号によって
リセットされ、入力状態マシン142の状態表の1行の記
載に従って、そのリセットにより、表に記載される出力
は発生されず、この入力状態マシンを遊び状態に置く。
出力が表に記載されないから、全ての出力端子に生ずる
信号のレベルは零である。入力端子172は入力ピン26に
接続され、Data In信号が無い限りはこの入力状態マシ
ンは状態表の2行に従って遊び状態に留る。第8図に示
すような種類のデータ・パケット、または第9図に示す
ような種類の確認応答パケットのスタート・ビットが到
達したために、入力端子172がData In信号が受けられる
と、この入力状態マシンは状態表の3行目に記載されて
いる状態へ直ちに移り、出力は生じないが、スタートと
呼ばれる状態へ移る。入力ピン26に到達する次のビット
が、第9図に示す確認応答パケットに従って0であると
すると、入力状態マシン142の状態表の4行が適用され
る。そのパケットの最初のビットの到達により、マシン
はスタートと呼ばれる状態におかれているが、そのパケ
ットの2番目のビットは0であるから線172にはもはやD
ata In信号が無く、状態表の4行の記載に従って出力SE
TACKREADYが出力端子178に生じさせられ、そのためにこ
の入力状態マシンは遊び状態に戻る。線178に生じた出
力は、確認応答パケットが受けられたことを出力状態マ
シンに指示するために、ラッチ148へ与えられる。その
出力はReady指示器147へも与えられる。 しかし、入力ピン26に与えられたパケットの2番目の
ビットが0ではなくて1であるとそのパケットは第8図
に示すような種類のパケットであるか、状態表の5行目
から、データ・パケットの最初のビットのために入力状
態マシンはスタート状態となり、入力はいまは入力端子
172に与えられるData Inである。それによって出力端子
174に出力loadcountが与えられて、ビット・カウンタ14
3に、データ・パケットにおいて予測される数のビット
がロードされる。この場合には、ビットの数はデータの
7バイトに対応する8である。次にこの入力状態マシン
は新しい状態databitsへ移り、状態表の6行目からわか
るように、入力173が零に達しない限りは入力状態マシ
ンは出力線176上の桁送り込み信号のために、入力ビッ
トを入力レジスタ145に沿って順次動かすという一連の
動作を行わせ続け、出力端子175におけるDECCOUNT信号
のためにカウンタ143におけるカウントを逐次減少させ
る。カウンタ143のカウントが零に達すると(これは、
求められているデータの8ビットがいま受けられたこと
を示す)、入力状態マシンの状態表の7行目が適用され
て、その入力状態マシンは以前として状態databistsに
あり、カウント0信号が線173に受けられる。それによ
って線176へshiftin出力が与えられて最後のdatabitを
入力レジスタ145内へ動かし、入力状態マシンの状態はd
ataend状態へ変る。状態表の8行目は、この状態におい
てはSetDataready信号が線177へ出力されて、ラッチ149
とレディ指示器146の内容を変更させることを示す。そ
れから入力状態マシン142は遊び状態へ戻る。レディ指
示器146へ与えられたSetDataready信号は信号「入力デ
ータ妥当」を線98へ与えて、データの全バイトがいま入
力レジスタ145により受けられたことを示す。 したがって、第14図に示すリンク・インターフェイス
は、第8図に示す種類のパケットまたは第9図に示す種
類の確認応答パケットでデータを出力できるように、出
力状態マシン140および関連するビット・カウンタ・ラ
ッチならびにゲートでパケット発生器を構成することが
わかるであろう。入力状態マシン142と、それのビット
・カウンタおよびラッチは、第9図に示す種類の確認応
答パケットまたは第8図に示す種類のデータ・パケット
のいずれかを入力ピン26で受けたかを識別できるパケッ
ト・デコーダを構成する。データ・パケットの場合に
は、入力状態マシンは入力レジスタ145へロードして、
完全なバイトが受けられた時にレディ指示器146から出
力を与える。確認応答パケットの場合には、入力状態マ
シンは入力レジスタ145にロードせず、次のデータ・パ
ケットの出力を制御するために出力信号を使用させる。
その出力信号はラッチ148を変更させて次のdatago信号
をANDゲート150を通じて送らせる。それは、出力すべき
それ以上のバイトをいまバス95に沿って出力レジスタ14
4へ供給できることを、線94上の出力ACK信号に指示させ
る。データのバイトが入力レジスタ145により受けら
れ、それからバス97を介してそれの宛先へ転送される
と、データの別のバイトを入力できる前に確認応答パケ
ットを出力カピン27により必ず送るように、入力確認応
答信号が線99aのために発生される。 第14図に示すリンク・インターフェイスを用いること
により、メッセージをデータの1つまたはそれ以上のバ
イトで構成できることがわかるであろう。各バイトは第
8図に示す種類のパケットで別々に送られる。第8図に
示す種類の各パケットが入力ピンにより受けられると、
次のデータ・パケットを送るようにするためには、第9
図に示す種類の確認応答を関連する出力ピンにより出力
せねばならない。同様に、次のデータ・パケットの出力
を継続できるようにするためには、出力ピンは出力され
る各データ・パケットに対する確認応答パケットを持た
なければならない。 各バイトは別々に送り、かつ確認応答せねばならない
が、メッセージ伝送を終らせるためには、プロセッサ
は、複数バイトより成るメッセージを送り、または受け
ることにより1つの出力または入力に応答することを求
められる。 上記の例においては、入力チャネルを出力チャネルお
よびリンク・インターフェイス内の全ての状態マシンに
は共通クロックからタイミング・パルスが供給される。
このタイミング・パルスはデータのビット周波数と、出
力ピン27により送られる確認応答パケットのビット周波
数を制御するのに用いられる。上記の例では、メッセー
ジの伝送を行うためにリンク・インターフェイスが接続
さえる他の装置へ同じクロックからタイミング・パルス
が与えられる。このようにして入力状態マシン142と、
入力ピン26からの入力データとの間で同期が行われる。
しかし、通信目的のために一緒に接続される種々の装置
が種々のクロックを使用できるように、入力ピン26と入
力状態マシン142の間の同期ロジックで動作するように
リンク・インターフェイスを構成できる。それら種々の
クロックは同じ周波数を有しなければならないが、位相
は異ってもよい。各入力ビットごとに信号レベルが数回
標本化されるように、メッセージ中のビット・パターン
の周波数より高い周波数で入力ビット・パターンを標本
化するためにその同期ロジックを構成できる。このよう
にして、スタート・ビットの前縁部を検出でき、スター
ト・ビットの前縁部を検出してから所定時間経過後に入
力ピン26における信号のレベルを妥当として処理でき
る。このようにして、各入力ビットの持続時間のほぼ中
間で入力データの標本化が行われる。 記法 マイクロコンピュータがどのように動作するのか、と
くにそれの機能、動作および手続きについての以下の説
明においては、OCCAM(前記INMOSインターナショナルpl
cの商標)言語に従って記法が用いられる。この言語
は、英国所在のインモス社(INMOS Limited)により198
3年に出版および配布された「プログラミング・マニュ
アル(Programming Manual)-OCCAM」という標題の小冊子
に記載されている。更に、使用されたこの記法がヨーロ
ッパ特許出願第110642号に詳しく述べられている。簡単
にするためにこの明細書ではくり返えさない。しかし、
ヨーロッパ特許出願第110642号に記述されているOCCAM
および使用されている記法の説明を参考までにここに含
める。 上記の記法に加えて、以下の説明は下記のように定義
されるあるメモリ・アクセスについて述べたものであ
る。 AtWord(Base,N,A) BaseからN番目のワードを示 すようにAをセット AtByte(Base,N,A) BaseからN番目のバイトを示 すようにAをセット RIndexWord(Base,N,X) BaseからN番目のワードの値 にXをセット RIndexByte(Base,N,X) BaseからN番目のバイトの値 にXをセット WIndexWord(Base,N,X) BaseからN番目のワードの値 をXにセット WIndexByte(Base,N,X) BaseからN番目のバイトの値 をXにセット Wordoffset(Base,X,N) XとBaseとの間のワード数を Nにセット マイクロコンピュータを用いた手続 以下に13の異なる手続(PROC)を示す。はじめの6つ
の手続はプロセッサのふるまいを記述するのに用いられ
る。 Dequeue Run StartNextProcess HandleRunRequest HandleReadyRequest BlockCopyStep 手続「Dequeue」は優先度「Pri」プロセスの前にある
プロセスを実行待ちの列に並ばせる。 1.PROC Dequeue= 2.SEQ 3.WptrReg[Pri]:=FptrReg[Pri] 4.IF 5.FptrReg[Pri]=BptrReg[Pri] 6.FptrReg[Pri]:=NotProcess.p 7.TRUE 8.RIndexWord(FptrReg[Pri],Link.s,FptrReg[Pr
i]) 9.RIndexWord(WptrReg[Pri],Iptr.S,IptrReg[Pr
i]): 手続「RUN」は、ProcDescレジスタに記述子が含まれ
ているプロセスをスケジュールする。即ち、既に実行さ
れている優先度1のプロセスに優先して優先度0のプロ
セスの実行を直ちに開始する。 1.PROC Run= 2.SEQ 3.ProcPriFlag:=ProcDescReg/\1 4.ProcPtrReg:=ProcDescReg/\(NOT 1) 5.IF 6.(Pri=0)OR((ProcPriFlag=Pri)AND(WptrReg
[Pri]〈〉NotProcess.P)) 7.SEQ−−プロセスの列に加える 8.IF 9.FptrReg[ProcPriFlag]=NotProcess.p 10.FptrReg[ProcPriFlag]:=ProcPtrReg 11.TRUE 12.WIndexWord(BptrReg[ProcPriFlag],Link.S,ProcP
trReg) 13.BptrReg[ProcPriFlag]:=ProcPtrReg 14.TRUE 15.SEQ−−Pri 1を妨げるPri 0またはPri 1とidle m/c 16.Pri:=ProcPriReg 17.WptrReg[Pri]:=ProcPtrReg 18.RIndexWord(WptrReg[Pri],Iptr.S,IptrReg[Pr
i]) 19.Oreg[Pri]:=0: 手続「StartNextProcess」は現在実行中のプロセスの
スケジュールを解除するとともに、もし他の実行可能な
プロセスがあれば、次に実行可能なプロセスを選択す
る。従って実行すべき優先度0のプロセスがもはやなけ
れば、中断されていた優先度1のプロセスが続行され
る。 手続「StartNexProcess」は、セットされているSNPFl
agの結果として常に実行される。従ってこのプロセスに
おける第1の動作はこのSNPFlagをクリアすることであ
る。 1.PROC StartNextProcess= 2.SEQ −−SNPフラグクリア 3.SNPFlag[Pri]:=0 4.IF 5.FptrReg[Pri]〈〉NotProcess.p 6.Dequeue 7.Pri=0 8.SEQ 9.Pri:=1 10.IF 11.(WptrReg[Pri]=NotProcess.p)AND 12.(FptrReg[Pri]〈〉NotProcess.p) 13.Dequeue 14.TRUE 15.SKIP 16.Pri=1 17.WptrReg[Pri]:=NotProcess.p: 手続「HandleRunRequest]は「RunRequest]を作るプ
ロセッサへのリンクの結果として実行される。この手続
における記述で、「PortNo」は要求を作るリンクの数で
ある。この手続は、リンクと結合しているプロセスワー
ドの内容に「ProcDescReg」をロードすることによって
動作する。 1.PROC HandleRunRequest(VAR PortNo)= 2.SEQ 3.RIndexWord(PortBase,PortNo,ProcDescReg) 4.Run: 手続「HndleReadytRequest」は」ReadyRequest」を作
るプロセッサへのリンクの結果として実行される。この
手続における記述で、「PortNo」はリンクの数、「Port
Base」は第1のリンクのアドレスである。この手続は、
リンクに結合しているプロセスワードの内容からの代替
入力となるプロセスを識別する。この手続は、このプロ
セスが適当なものであるかどうかスケジュールし、状態
配置が適当なものとなるよう更新する。 1.PROC HandleReadyRequest(VAR PortNo)= 2.SEQ 3.RIndexWord(PortBase,PortNo,ProcDescReg) 4.ProcPtrReg:=ProcDescReg/\(NOT 1) 5.RIndexWord(ProcPtrReg,State.s,TempReg) 6.IF 7.TempReg=Enabling.p 8.WIndexWord(ProcPtrReg,State.s,Ready.p) 9.TempReg=Ready.p 10.SKIP 11.TempReg=Waiting.p 12.SEQ 13.WIndexWord(ProcPtrReg,State.s,Ready.p) 14.Run: 手続「BlockCopyStep」は、転送すべき情報の1バイ
トを発生する。この手続は、常に「CopyFlag」がセット
された結果として実行される。この手続により、情報の
最後のバイトがコピーされると、「CopyFlag」がクリア
され、「Treg」がプロセス記述子を含んでいるときには
そのプロセスはスケジュールされる。 1.PROC BlockCopyStep= 2.SEQ 3.RIndexByte(Creg[Pri],0,Oreg[Pri]) 4.WindexByte(Breg[Pri],0,Oreg[Pri]) 5.Oreg[Pri]:0 6.AtByte(Creg[Pri],1,Creg[Pri]) 7.AtByte(Breg[Pri],1,Breg[Pri]) 8.Areg[Pri]:=Areg[Pri]−1 9.IF 10.Areg[Pri]=0−−ブロックコピー完了 12.SEQ 13.CopyFlag[Pri]:=0 14.IF 15.Treg[Pri]〈〉NotProcess.p 16.SEQ 17.ProcDescReg:=Treg[Pri] 18.Run 19.Treg[Pri]=NotProcess.p 20.SKIP 21.TRUE 22.SKIP: プロセッサーは一連の動作を実行する。それらの動作
は現在のプロセスのためまたはリンクのために行われ
る。 現在のプロセスのために実行できる動作は「Start Ne
xtProcess」を実行すること、「BlockCopyStep」を実行
すること、または命令のフェッチ、復号および実行を行
うことである。 リンクのために実行できる動作は「HndleRun Reques
t」を実行すること、または「HndleReady Request」を
実行することである。 それらの各動作は一連のマイクロ命令に対応する。そ
れらの動作を含む任意のシーケンス中の最後のマイクロ
命令は「NextAction」である。これによってプロセッサ
は次に実行すべき動作を選択させられる。 次に、「NextAction」マイクロ命令が実行される時、
どの動作を行うべきかをプロセッサがどのようにして決
定するかについて説明する。 同期ロジック10は、任意の時刻に、たかだか1つの
「RunRequest」または「ReadyRequest」をプロセッサへ
送る。同期制御ロジック、まだ済んでいない優先度0の
要求がある時は、優先度1の要求を送らない。この結果
として、要求の存在を示す信号と、その要求の優先度を
示す信号との2つの信号がCondition Multiplexorに入
れられる。 ConditionMultiplexorは現在選択されているSNPFlag
と現在選択されているCopyFlagとからの信号も有する。
したがって、それは下記のようにして選択を行うことが
できる。 SNPFlag[Pri]がセットされたとすると、プロセッサ
は「StartNextProcess」を行い、他の場合には、その要
求の優先度が現在のプロセスの優先度より低くなけれ
ば、プロセッサはチャネル要求をとり扱う。さもなけれ
ば、CopyFlag[Pri]がセットされたとすると、プロセ
ッサは「BlockCopyStep」を実行する。他の場合には、
現在のプロセスが存在するならば、プロセッサは命令の
フェッチ、復号および実行を行う。他の場合には、チャ
ネル要求があるまでプロセッサは待つ。 以後のFunctionSetの記述は下記更に7つの手続によ
る。 CauseLinkInput CauseLinkOutput MakeLinkReadyStatusEnquiry EnableLink LinkChannelInputAction LinkChannelOutputAction IsThisSelectedProcess 4つの手続「CauseLinkInput」、「CauseLinkOutpu
t」、「MakeLinkReadyStatusEnquiry」、「EnableLin
k」はプロセッサとリンクの間の相互作用を記述するも
のである。 手続「CauseLinkInput(VARPortNo)」は優先度を有
するリンク・チャネルPortNoと、ポインタおよびカウン
トをロードし、それからそのリンク・チャネルへInputR
equestを行う。更に正確にいえば、プロセッサは、プロ
セッサのPriフラッグと、Creg[Pri]レジスタと、Areg
[Pri]レジスタとからのPriorityフラッグと、Pointer
レジスタと、リンク・チャネルのCountregisterとをロ
ードする。 手続「CauseLinkOutput(VARPortNo)」は優先度と、
ポインタと、カウントをリンク・チャネルPortNoへロー
ドし、OutputRequestを行う。このOutputRequestにより
リンク・チャネルはメッセージを出力させられる。更に
正確にいえば、プロセッサは、プロセッサのPriフラッ
グと、Creg[Pri]レジスタと、Areg[Pri]レジスタと
からPriorityフラッグと、ポインタ・レジスタと、カウ
ント・レジスタとをロードし、そのリンク・チャネルへ
OutputRequestを行う。 手続「MakeLinkReadyStatusEnquiry(VARPortNo.Read
y)」はリンク・チャネルPortNoに対してReadyStatusEn
quiryを行う。リンク・チャネルがレディであれば「Rea
dy」がTRUEにセットされ、それがレディでなければFALS
Eにセットされる。 手続「EnableLink(VARPortNo)」はリンクチャネルP
ortNoの優先フラグをPriフラグの値にセットし、リンク
チャネルにEnableRequest信号を与える。 その他の手続を以下に示す。機能セット 欧州特許第110642号明細書に記載のように、マイクロ
コンピュータの各命令は機能セットから選択された機能
要素を含んでいる。マイクロコンピュータによって実行
される機能は直接機能、pfixとnfixから成るプレフィッ
クス機能、そして非直接機能oprを含んでいる。被直接
機能oprは動作のセットから1つを選択するためにオペ
ランドレジスタOregを用いる。上述の明細書に示すよう
に、Oreg[Pri]は、PFEXとNFIXとをのぞくすべての命
令の実行後にクリアされる。 本願における更に改良された直列機能セットとその動
作は次のとおりである。 このようにROM13は上述のすべての機能に対応する命
令を有し、この命令の結果としてのプロセッサが行うべ
きオペレーションを有する。 スケジューリング プロセッサは、2種類の優先度レベル0と1で実行す
るいくつかの同時プロセスの間で、それの実行時間を共
用する。優先度0と1のプロセスが同時に実行可能であ
る時は、優先度0のプロセスが優先度1のプロセスより
常に先に実行される。任意の時刻にはただ1つのプロセ
スが実際に実行され、現在のプロセスであるそのプロセ
スは、それの作業域ポインタ(WPTR)をWPTR REG51に有
し、IPTR REG50内の命令ポインタ(IPTR)が、その特定
のプロセスに関連するプログラム中の一連の命令から実
行すべき命令を指示する。現在プロセスではなく、かつ
実行を待っていないプロセスはどのプロセスもスケジュ
ールから外される。あるプロセスがスケジュールに組込
まれられると、そのプロセスは現在のプロセスとなる
か、または実行を待っているプロセスのリストすなわち
列に加えられる。そのリストは結合されたリストとして
形成され、そのリストの各プロセスは、そのリスト上の
次のプロセスの作業域までのそれの作業域のリンク場所
にポインタを有する。そのリスト上の任意のプロセスの
命令ポインタ(IPTR)は、第3図に示すように、それの
作業域のIPTR場所65に格納される。 いまの場合には、プロセッサは実行されることを待っ
ているプロセスの2つのリストを維持するそれら2つの
リストのうちのそれぞれ1つが各優先度レベルに対す
る。この状況が第3,4図に示されている。第3図は高優
先度0のリストを示し、第4図は、優先度0のプロセス
が第3図に示すように現在のプロセスである時に、低優
先度1のリストを示す。この場合には現在のプロセスが
優先度0のプロセスであるから、レジスタ・バンク・セ
レクタ41がプロセッサで使用するためにバンク39内のレ
ジスタを選択している。したがって、WPTR REG(0)
は、第3図に示すように、現在のプロセスLの作業域60
の零場所に対するポインタを保持する。IPTR REG(0)
は、メモリに格納されているプログラム・シーケンス18
1中の次の命令に対するポインタ180を含む。第3図に示
されているレジスタ54,55,56,57は、現在のプロセスL
の実行中に使用すべき他の値を含む。スケジュールされ
て、実行を待っている優先度0のプロセスリストが、第
3図において3つのプロセスM,N,Oにより示されてい
る。それらのプロセスの作業域が61,62,63で示されてい
る。それらの各作業域はプロセスLについて示したもの
に全体として類似する。参照番号53で示されているFPTR
REG(0)は、このリストの初めにおけるプロセスであ
るプロセスMの作業域に対するポインタを含む。プロセ
スMの作業域は、プロセスMが現在のプロセスになった
時に実行すべきプログラム・シーケンス中の次の命令に
対するポインタをIPTR場所65に含む。プロセスMのリン
ク場所66は、そのリスト上の次のプロセスであるプロセ
スNの作業域に対するポインタを含む。示されているリ
ストの最後のプロセスはプロセス0であって、作業域63
を有する。BPTR REG(0)52はこの最後のプロセス0の
作業域に対するポインタを含む。このプロセス0の作業
域63は以前のプロセスNのリンク場所66の内容により向
けられるが、この場合にはプロセスの0のリンク場所66
はどのポインタも含まない。というのは、そのプロセス
がリスト上の最後のプロセスだからである。別のプロセ
スがこのリストに付加されると、その別のプロセスの作
業域に対するポインタがBPTR REGの中に置かれ、そうす
るとプロセス0のリンク場所66が、そのリストに付加さ
れた別のプロセスの作業域に対するポインタを含む。 優先度1のリストは全体として類似する。このリスト
は第4図に示されている。この場合には、スケジュール
されて、実行を待っている優先度1のプロセスのリスト
はプロセスP,Q,Rより成る。別の優先度1のプロセスS
が示されているが、これは現在スケジュールされてお
り、リンク・リストの部分を構成しない。FPTR REG
(1)は、実行を待っているリスト上の最初のプロセス
を形成するプロセスPの作業域に対するポインタを含
む。BPTR REG(1)は、実行を待っているリスト上の最
後のプロセスを形成するプロセスRの作業域に対するポ
インタを含む。各プロセスP,Q,Rは、そのプロセスが現
在のプロセスになった時にそれから次の命令がとり出さ
れるプログラム段階を指すIPTRをそれのIPTR場所に含
む。リスト上の最後のプロセスとは別の各プロセスのリ
ンク場所は、リスト上の次のプロセスの作業域に対する
ポインタを含む。 第4図に示す位置は、現在の優先度0のプロセスが、
優先度1のプロセスが終る前に、そのプロセスに割込む
ことなしに現在のプロセスになるという仮定の上に、WP
TR REG(1)51がプロセス作業域に対する妥当なポイン
タを含まない位置である。 たとえば、ある通信が終った結果としてあるプロセス
が実行する準備が整ったとすると、そのプロセスは直ち
に実行され、または適切なリストにつけ加えられる。そ
のプロセスが優先度0のプロセスであれば直ちに実行さ
れて、それが優先度1のプロセスであればプロセスは全
く実行されない。プロセスは、そのプロセスのスケジュ
ールを解くことを求めるチャネルによる通信に加わるま
で、または、そのプロセスが優先度1のプロセスであれ
ば、より急いでいる優先度0のプロセスを実行させるよ
うに、その優先度1のプロセスが一時的に中断される、
すなわち割込まれるまで、実行を継続する。 優先度0のプロセスが実行されるとPRI FLAG47が0に
セットされる。プロセッサが優先度1のプロセスを実行
し、またはどのプロセスも実行しないと、PRI FLAG47は
値1を有する。実行すべきプロセスがない時は、WPTR
(1)レジスタは値Not Process pを有する。これは第
4図に示すWPTR REG51のための位置である。この位置に
おいては優先度1のプロセスのリストがある。優先度1
のプロセスを実行させるように優先度1のプロセスが割
込まれたとすると、割込まれた優先度1のプロセスの作
業域ポインタがWPTR REG(1)に留まる。したがって、
実行すべき優先度0のプロセスがもうないと、優先度1
のプロセッサがWPTR(1)レジスタの内容により割込ま
れたかどうかをプロセッサが決定する。これが値Not Pr
ocess pを有するものとすると、割込まれたプロセスが
なかったことになるから、プロセッサはFPTR REG(1)
の内容を調べることにより優先度1のリストを点検す
る。しかし、WPTR REG(1)が作業域ポインタを依然と
して含んでいるとすると、プロセッサは割込まれたプロ
セスの実行を継続できる。いずれの優先度リストでも待
っているプロセスがないとすると、適切なFPTRREGは値N
ot Process pを含む。 「スタート・プロセス」動作または「実行プロセス」
動作を実行することより新しい同時プロセスが作られ
る。「終りプロセス」動作または「ストップ・プロセ
ス」動作を実行することによってそれらの同時プロセス
は終る。 先に定義した手続「dequeue」を使用することによ
り、実行するプロセスをリストのトップからとり出すこ
とができる。その定義は、前記した他の種々の定義とと
もに、行番号も含む。それらの行番号は定義の部分では
なくて、単に説明を容易にするためのものである。手続
DEQUEUEの定義の1行目は手続の名称を示し、2行目は
一連の事象が起ることを示す。3行目に従って、適切な
バンク38または39のWPTRREG51は、同じバンクのFPTRREG
53の保持されていたポインタをとる。4行目は、ある条
件のテストを実行すべきことを示す。5行目は、BPTR R
EG52の内容がFPTRREG52の内容と同じであることが見出
されると、6行目に従って値「Not Process p」がFPTRR
EGにロードされる。7行目は、5行目における条件が満
されなかったとすると、適切なレジスタ・バンクのFPTR
REG53に、FPTR REGの内容より以前に示された作業域の
リンク場所66に現在格納されているポインタがロードさ
れる。最後に、9行目に従って、WPTR REG51の内容によ
りいま示された作業域のIPTR場所65からのIPTRがIPTR R
EG50にロードされる。 これの結果として、先頭のプロセスをとり出して、そ
のプロセスを実行準備を整っている適切なレジスタへロ
ードすることよってリストが進ませられる。 現在のプロセスは、先に定義した手続「次のプロセス
・スタート」によってスケジュールを解除でき。現在の
プロセスは、SNP FLAG58を値1にセットすることを含む
命令を実行できる。その場合には、プロセッサが次の動
作を行うことをそのプロセッサに求めるマイクロ命令に
そのプロセッサが応答すると、そのプロセッサは前記定
義に従って手続を実行する。定義の3行目に従って、プ
ロセッサはSNPFLAG58を値0にセットすることによって
フラグを最初にクリヤする。4行目は5行目の定義が真
か否かをテストすることをプロセッサに求める。FPTRレ
ジスタが値「Not Process p」を含んでいないとする
と、6行目に従って、次のプロセスがリストのトップか
らとられるようにdequeue手続が行われる。しかし、5
行目が真でなかったとすると、これは現在の優先度のた
めのリストに待っているプロセスがないことを示す。そ
れからプロセッサは7行目に示す条件が真であるかどう
かの点検を行う。その点検にはPRI FLAG47が値0を含ん
でいるかどうかのテストが含まれる。もし含んでいるも
のとすると、5行目におけるテストの結果のために、待
っている優先度0のプロセスがないことを知るから、優
先度フラッグを1にセットするという9行目から始まる
シーケンスへプロセッサが進む。これによってプロセッ
サがレジスタ・バンクを優先度1のプロセスについて調
べさせられ、11行目と1行目にシステム、WPTRREG
(1)が値「Not Process p」を含んでいるかどうかFPT
R REG(1)が値「Not Process p」を含んでいないかど
うかをプロセッサは調べる。このことは、WPTRをWPTR R
EG51に残した割込まれた優先度1のプロセスがないこ
と、およびそのリストに待っている優先度1のプロセス
があることを意味する。この条件が真であるとすると、
13行目に従ってプロセッサは手続dequeueを実行する。
この手続により次の優先度1プロセスがリストの先頭か
らとり出される。しかし、11,12行目の条件が正しくな
いとすると、14,15行目に従ってプロセッサはどの動作
もとばす。このことは、WPTR REG(1にWPTRが含まれて
いたとすると、プロセッサがその割込まれたプロセスの
実行を継続することを意味する。割込まれたプロセスが
なく、優先度1のリストに待っているプロセスがないも
のとすると、プロセッサはそれ以上のプロセスのスケジ
ューリングを待つ。しかし、7行目における条件が正し
くないが、一方では優先度が1であることをプロセッサ
が見出したとすると、16,17行目にシステムWPTR REG
(1)が値「Not Process p」をとる。 メッセージの移行中にプロセスをスケジュールから外
すことができ、その間に通信しているプロセスがそれの
プログラム中の対応する段階に達することを待つ。通信
している2つのプロセスが対応する段階に達すると、記
述子がPROCDESCレジスタ46に含まれているプロセスをス
ケジュールするために手続「run」を使用できる。そう
すると、手続「run」の前記定義からプロセッサの動作
を理解できる。3行目に従って、PROCDESCレジスタ46に
より示されたプロセスの優先度が計算されて、PROCPRIF
LAG48へロードされる。4行目に従って、記述子をレジ
スタ46に有するプロセスのWPTRが計算されて、PROCPTR
REG45にロードされる。それからプロセッサは、6行目
の条件が適用されるかどうかについてプロセッサがテス
トする。現在のプロセスは優先度0を有し、またはPROC
PRIFLAG48における優先度がPRIFLAG47における優先度と
同じで、それと同時に現在のプロセスのWPTR REG51が作
業域ポインタを含むものとすると、プロセッサは7行目
より後のシーケンスを実行する。7行目は、シーケンス
がプロセスを行列に加えるために必要なものであること
を単に説明するだけである。8行目は、9行目の条件が
真かどうかのテストをプロセッサが実行することを求め
る。フラッグ48により示される優先度のFPTR REGが値
「Not Process p」を有するものとすると、10行目に従
ってFPTR REGにレジスタ45のポインタがロードされる。
それによってスケジュールされたプロセスがリストのト
ップにされる。11行目は、10行目の条件が正しくないと
すると、レジスタ46にグループまれているポインタが、
適切な優先度のBPTR REGにより示されているリスト上の
最後のプロセスのリンク場所66に書込まれる。そのBPTR
REGは次にレジスタ45の内容へのポインタがロードされ
る。いいかえると、スケジュールされたプロセスがリス
トの終りに加えられる。14行目は、6行目の条件が正し
くないとすると、15行目に示すシーケンスが起る。この
場合には、16行目が、PROCPRIFLAG48に現在ある値をPRI
FLAG47からとることを要求し、17行目に従って適切な優
先度のWPTR REGにレジスタ45からポインタがロードされ
る。18行目は、適切な優先度のIPTR REG50に、WPTR REG
51内のポインタにより示されているプロセスのIPTR場所
65から得たIPTRがロードされる。19行目は値0を適切な
優先度バンクの0レジスタに挿入する。 プロセス間通信 メモリ内の1つのアドレス可能な語場所により与えら
れたソフト・チャネルを用いて、あるプロセスは別のプ
ロセスと通信できる。あるいは、1つのマイクロコンピ
ュータのプロセスが、ハードな入力チャネルとハードな
出力チャネルを用いる直列リンクを介して、別のマイク
ロコンピュータのプロセスと通信できる。各直列リンク
の入力ピンと出力ピンは、一方向の専用通信経路を形成
する1本の線により別のマイクロコンピュータの対応す
るピンに接続される。内部通信と外部通信を行うため
に、各出力プロセスは出力すべき各メッセージごとに先
に定義された1つの「メッセージ出力」動作を行い、各
入力プロセスは入力すべき各メッセージごとに先に定義
された「メッセージ入力」動作を行う。この実施例に従
って、各「メッセージ出力」動作または各「メッセージ
入力」動作ごとに送るべきメッセージの長さは可変長に
できる。データは指定されたビット長の1つまたはそれ
以上の単位で送られ、この場合にはビット長は1バイト
を形成する8ビットである。したがって、メッセージ
は、求められるメッセージの長さに応じて1つまたは複
数の単位すなわちバイトで構成できる。通信をどのよう
にして行うかを理解するために、いくつかの例を以下に
説明する。 例1 プロセスYが、ソフト・チャネルを用いて、同じマイ
クロコンピュータ上の同じ優先度のプロセスXへメッセ
ージを出力することを希望している。これは第15図のシ
ーケンスに示されている。最初に、プロセスYもプロセ
スXもチャネル70を使用することを求める命令をまだ実
行していないから、そのチャネル70は値「Not Process
p」を含んでいる。プロセスYが出力を実行することを
希望するそのプロセスのプログラム中の点にそのプロセ
スが達すると、メッセージを構成するバイトの数を示す
カウントをプロセスYはそれのAREG54にロードし、通信
のために用いられるチャネルのアドレスをプロセスYは
BREG55にロードし、送るべきメッセージの最初のバイト
に対するメモリ・アドレスであるソース・アドレスをプ
ロセスYはCREGにロードする。これは動作「メッセージ
出力」の定義の行2,3,4に従うものである。それ以上の
行番号の参照は上で与えたメッセージの出力の定義に関
連する。5行目は、与えられたチャネル・アドレスがハ
ード・チャネルのアドレスに一致するかどうかを調べる
ために、Bレジスタの内容をテストすることをプロセッ
サに求める。もし一致するものとすると、定義の7行目
は手続「リンク・チャネル出力動作」を行うことをプロ
セッサに求める。第15図に示す例では前記チャネル・ア
ドレスはハード・チャネルのアドレスに一致しないか
ら、定義の8行目が真であることが判明し、Bレジスタ
はソフト・チャネルのアドレスを含む。したがって、プ
ロセッサは9行目の後のシーケンスを行う。10行目に従
って、TREG49にはBレジスタからのポインタにより示さ
れたオフセットの内値、すなわち、チャネルの内容がロ
ードされる。次に、11,12行目が、TREGがNot Process p
を含んでいるかどうかを調べることをプロセッサに求め
る。これはもちろん第15b図に示す場合である。したが
って、プロセッサはメッセージ出力の定義の14〜17行目
のシーケンスを実行する。14行目は、プロセスYのため
のプロセッサ記述子がチャネル70に書込むことを要求す
る。15行目は、IPTR REG50の内容をプロセスYのための
作業域IPTR場所65に格納することを要求する。16行目
は、ソース・アドレスをプロセスYの作業域の状態場所
67に書込むことを求める。17行目は、SNPFLAGを1にセ
ットすることを求める。これは、プロセスYをプロセッ
サの次の動作によりスケジュールから外すべきであるこ
とを示す。それは第15c図に示す状態であって、入力プ
ロセスXが入力命令を実行するまでその状態を保つ。 また、プロセスXは入力すべきことをメッセージに対
して求められるバイトの数のカウントを、それのAレジ
スタ54に最初にロードする。プロセスXはそれのBレジ
スタに、入力のために使用するチャネルのアドレスをロ
ードし、Cレジスタに、最初に入力すべきバイトに対す
るメモリ内の宛先アドレスをロードする。これはメッセ
ージ入力の定義の2,3,4行目に従うもので、第15d図に示
す状態である。メッセージ入力の定義の5,6,7行目は、
Bレジスタ内のアドレスがハード・チャネルに対応する
かどうかを調べることをプロセッサに求める。この場合
にはプロセッサはリンク・チャネル入力動作手続を実行
することを求められる。これは第15図に示すケースでは
ない。というのは、Bレジスタがチャネル70に対するも
のだからである。したがって、8行目の条件は真で、9
行目に続くシーケンスが行われる。最初に、プロセスX
に対するTレジスタ49には、Bレジスタ内のポインタに
より示されたオフセットのない値、すなわち、チャネル
内容がロードされる。その値が「Not Process p」でな
かったとすると、プロセッサは13〜17行目に従う。その
結果としてプロセスXはスケジュールから外される。し
かし、いまの場合にはTレジスタは定義の18行目の要求
にかなうことが見出され、「Not Process p」を含まな
い。定義の21行目に従って、プロセッサは値「Not Proc
ess p」を、第15e図に示すように、チャネル70に書込む
ことによってチャネル70をリセットする。22〜24行目
は、1つのメモリ場所(ソース)から別のメモリ場所
(宛先)へデータのブロック・コピーを行う用意をプロ
セッサがいま行ったこと、Tレジスタ49はプロセスYの
プロセス記述子をいま含み、Aレジスタが送るべきバイ
トの数のカウントを含むことについての説明を含んでい
るだけである。定義の25行目は、プロセスXのためのB
レジスタに、以前はCレジスタであった宛先レジスタが
ロードされることを要求する。26行目に従って、PROCポ
インタ・レジスタ45にプロセスYのWPTRがロードされ
る。WPTRは、プロセス記述子をレジスタTからとり出
し、優先ビットを除去することにより得られる。27行目
は、プロセスXのためのCレジスタに、プロセスYのた
めの作業域の状態場所67から得たソース・アドレスがロ
ードされることを求める。それから、28行目は、プロセ
ッサが次に行う動作として先に定義した手続「コピー・
ステップ阻止」を実行するように、適切な優先度のコピ
ー・フラッグを1にセットすることを求める。このため
にソース・メモリ・アドレスから宛先メモリ・アドレス
へ1度に1バイトをプロセッサが転送させられ、かつそ
の動作をくり返えして各バイトが転送させられるにつれ
てソース・アドレスと宛先アドレスをしだいに変え、転
送すべき残っているバイトの数のAレジスタ内のカウン
トをしだいに減少させる。そのカウントが0になると、
スケジュールから外されたプロセスYは手続実行によっ
て再び留守を組まれる。これはコピー阻止ステップの定
義からわかる。2行目は起すべきシーケンスを定義す
る。最初のステップは3行目である。このステップで
は、Cレジスタにより示されたメモリ内のソース・アド
レスからのバイトをOレジスタに読込む。それから、4
行目がOレジスタからのデータのバイトを、Bレジスタ
により示された宛先メモリ・アドレスに書込む。その後
で5行目がOレジスタをクリヤする。6行目は新しいソ
ース・ポインタを作る。そのソース・ポインタは1バイ
トだけ進められる。7行目は新しいソース・ポインタを
作る。そのソース・ポインタは1バイトだけ進められ
る。8行目はAレジスタ内のカウントを1だけ減少させ
る。それから、9行目はAレジスタがいま零カウントを
含んでいるかどうかを10行目に従って見出すために行う
べきテストを要求する。Aレジスタが零カウントを含ん
でいる時はコピーの阻止が終らされている。Aレジスタ
が零カウントを含んでいないと、21行目の条件が満され
る。しかし、コピー・フラグが依然として1にセットさ
れているから、プロセッサは適切な次の動作をとること
を続ける。コピー阻止に含まれているプロセスの優先度
が低優先度のプロセスで、高優先度のプロセスが実行す
る準備が整ったとすると、プロセッサは、より高い優先
度のプロセスを実行するために、完全なメッセージ転送
が終る前に、1つまたはいくつかのバイトを送った後で
コピー阻止に割込むことができる。しかし、待っている
より優先度の高いプロセスがないものとすると、コピー
阻止ステップの22行目に達すると、コピー・フラグが依
然としてセットされているからプロセッサは2行目から
始まるシーケンスをくり返えす。したがって、カウント
が0になるまでプロセッサはコピー阻止ステップの3〜
8行目の手続をくり返えす。それから、13行目はコピー
・フラグをクリヤして、零にリセットすることを求め
る。14,15行目は、Tレジスタ49がNot Process p以外の
値を有するかどうかを調べることをプロセッサに要求す
る。この場合には、スケジュールを外されたプロセスY
のプロセス記述子をそれは有する。したがって、16行目
において始まるシーケンスが起り、Tレジスタに前もっ
て含まれていたプロセスYのプロセス記述子がロードさ
れる。それから、プロセスYのスケジュールを再び組む
ために前記手続実行が行われる。19,20行目は、Tレジ
スタがスケジュールされているプロセスのプロセス記述
子をTレジスタが含まなかったとすると、動作が飛び越
されることを単に示す。 例2 第16図は、第1のマイクロコンピュータ251における
出力プロセスYと、第2のマイクロコンピュータ252に
おける入力プロセスXとの間の通信をシーケンス・メッ
セージにおいて示すものである。プロセスYのための出
力チャネル90の出力ピン27が1本の線253により、プロ
セスXのための入力チャネル91の入力ピン26に接続され
る。 全てのプロセスはハード・チャネルを用いて出力また
は入力を実行するから、適切な出力命令または入力命令
を実行した後はプロセスはスケジュールから外される。
一方のマイクロコンピュータのメモリ内のソース・アド
レスから、他方マイクロコンピュータのメモリ内の宛先
アドレスへの求められている数のバイトの転送は、第1
0,11,12,13,14図に示されているリンク装置の制御の下
に行われる。両方のマイクロコンピュータのプロセッサ
がメッセージ転送とは独立に現在のプロセスを実行でき
るように、バイトの転送はプロセッサによる動作とは独
立に実行される。メッセージ転送のうちプロセッサによ
るそれ以上の動作を必要とする段階にリンクが達した時
に、それらのリンクはプロセッサに対して適当な要求を
行う。各リンク・チャネルはチャネル・アドレスを有す
る。そのアドレスはプロセス語と呼ばれるメモリ内でア
ドレスできる1つの語より成る。それらのハード・チャ
ネル・プロセス語をプロセッサかリンクへの別々の接続
を必要としているハード・チャネルとして認めるよう
に、それらの語のアドレスが選択される。第16,17,18,1
9の各図において、プロセスYのための出力チャネル90
とプロセスXのための入力チャネル91を示すために、類
似の書式が使用されている。チャネルの関連するプロセ
ス語256には略記号PWがつけられる。出力チャネルはレ
ジスタ254と場所257を有する。レジスタ254については
第12図を参照して先に説明した。前記場所257において
は転送状態マシンの状態が示されている。入力チャネル
91に対しては、プロセス語場所256と入力チャネル・レ
ジスタ255が示されている。レジスタ255は第13図を参照
して先に説明した。プロセス語場所256は第13図から3
状態マシンの状態を示す。第16図において、両方のプロ
セスは類似の優先度を有し、出力プロセスYは、プロセ
スXがメッセージを入力しようとする前に、メッセージ
を出力しようとする。「メッセージ出力」の定義の2〜
4行目に従って、プロセスYは、メッセージ中で出力す
べきバイトの数のカウントをAレジスタ54にロードし、
使用すべきチャネルのアドレスをBレジスタ55にロード
し、コピーすべき最初のバイトに対するメモリ内のソー
ス・アドレスをCレジスタ56にロードする。第16a図に
示すように、この時には出力チャネルは遊んでおり、入
力チャネルはデータ不存在、遊びおよび不能化の状態を
有する。第16a図の後でプロセスYが動作「メッセージ
出力」を実行し、その動作の定義の6行目に従って、そ
のチャネルがハード・チャネルであることをプロセッサ
は見出し、したがって、7行目に従って手続「リンク・
チャネル出力動作」が実行される。その手続「リンク・
チャネル出力動作」の定義は、プロセスYに対する現在
のIPTRがIPTR50からとり出されて、プロセスYに対する
作業域のIPTR場所に格納されることを示す。5行目は、
プロセスYのプロセス記述子が出力チャネル90のプロセ
ス語場所256に書込まれることを求める。6行目は出力
チャネルのためのポート番号をセットし、7行目は前記
手続「リンク出力を行わせる」を求める。そうすると、
プロセッサYの実行に使用する適切なレジスタからカウ
ント・ソースと優先度がチャネル・レジスタ254へ転送
される。データの最初のバイトが送られるようにリンク
・チャネルに対して入力要求も行われる。8行目に従っ
て、前記したように、プロセッサによる次の動作がYプ
ロセッサをスケジュールから外すことを求めるように、
SNPFLAGが1にセットされる。この状態は第16b図に示す
ようなものである。 プロセスXがメッセージ入力を実行しようとする時に
は、プロセスXはその入力に対して求められるカウント
・チャネルと宛先を、第16c図に示すようにAレジスタ5
4と、Bレジスタ55と、Cレジスタ56とにロードする。
プロセスXが「メッセージ入力」動作を実行する時は、
そのプロセスXは、定義の6行目に従って、チャネルが
ハード・チャネルであることを見出し、したがってそれ
は手続「リンク・チャネル入力動作」を実行する。これ
はリンク・チャネル出力動作について先に説明したのと
同じシーケンスを実行する。それはXのIPTRをプロセス
Xの作業域のIPTR場所65に格納し、プロセスXのための
プロセス記述子を入力チャネル91のプロセス語256に書
込む。それはXのカウント宛先と優先度を入力チャネル
91のレジスタ255にロードする。この場合には手続リン
ク・チャネル入力動作の7行目は、プロセスXに関連す
る出力チャネルから確認応答パケットがプロセスYに関
連する入力チャネルへ送られるように、リンクに対して
入力要求を行う。状態は第16b図に示すようなものであ
る。 それから、データ・パケット内の複数のデータ・バイ
トが送られる。第14図を参照して説明したように、各送
信に続いて確認応答パケットが送られる。プロセスXか
ら最後の確認応答パケットが送られると、プロセスXに
対するリンクが、13を参照して説明したように、線84e
に実行要求を行って、マイクロコンピュータ258のプロ
セッサが、もし既にリストが存在するのであれば、リス
トの終りにプロセスXを加えることによってそのプロセ
スXを再スケジュールする。これは16eに示す状態であ
る。16eの後で最後の確認応答パケットがプロセスYに
対する入力チャネルにより受けられ、第12図の線84bに
実行要求信号が発生されて、次の動作をとることを質問
されたプロセッサがプロセスYを適切な優先度のリスト
の終りに加えるようにする。そうすると状態は16f図に
示すようなものとなる。 別の入力チャネルからのプロセス入力 別のプロセスは、入力のためのいくつかのチャネルの
うちの1つを選択し、次に別のプロセスの対応する成分
プロセスを実行するようなプロセスである。利用できる
別のチャネルからのチャネルの選択は、そのチャネルを
通じて出力することを既に待っている出力プロセスをそ
れが有するという意味で、1つまたはそれ以上のチャネ
ルが入力の用意が整っているかどうかを決定するため
に、全てのチャネルを調べる入力プロセスによって実行
される。どのチャネルも用意が整っていないことが見出
されると、チャネルの1つの用意が整うまで入力プロセ
スはスケジュールから外される。少くとも1つのチャネ
ルの用意が整ったことが見出されると、あるいは出力プ
ロセスによる動作のために入力プロセスが再びスケジュ
ールに組込まれると、プロセスはいま用意が整った入力
の1つ1つを選択し、そのチャネルを通じて入力を行
う。入力チャネルの選択中はプロセス作業域の状態場所
67は特殊な値である可能化p、待ちpおよびレディpの
みをとることができる。 入力プロセスがいくつかの代替チャネルすなわち別の
チャネルのうちの1つから入力できるようにするために
は、入力チャネルがそれのプログラムのうち、それらの
代替チャネルのうちの1つから入力を希望する段階に初
めて到達した時に、代替入力チャネルのいずれも用意が
整っていなければ入力プロセスをスケジュールから外す
ことが重要である。このことは、プロセッサが種々の優
先度プロセスで動作している場合はとくに重要である。
それ以外では、別の入力を行うことを希望している高優
先度のプロセスが低優先度のプロセスを無期限に保持で
き、その間それはスケジュールに組込まれたままで、そ
れらのプロセスのうちの出力プロセスを待っている種々
の別の入力チャネルの状態をくり返えしテストするだけ
である。したがって、この実施例によって、代りの入力
チャネルが入力プロセスにより最初にテストされた時に
それらの入力チャネルのいずれもレディでないすなわち
用意が整っていないとすると、入力プロセスをスケジュ
ールから外すことができる。このようにして入力プロセ
スがスケジュールから外れたとすると、出力プロセスに
よる動作のためにチャネルの1つの用意が整うと、プロ
セスをスケジュールに再び組入れるためにプロセッサに
対して要求を直ちに行うことができる。しかし、入力プ
ロセスがスケジュールに再び組入れられて、それの入力
を実行する前に2つ以上の出力チャネルがレディであ
る、すなわち用意が整うことがある。したがって、入力
プロセスがスケジュールから外されて待っている時に、
任意の出力チャネルがチャネル・レディを行うと、入力
プロセスをスケジュールに再び組入れるために2つ以上
の要求がプロセッサに対して行われることを直ちに阻止
することが必要である。これは、先に定義した代りにス
タート、チャネル可能化、別の待機、チャネル不能化、
代りの終り、および入力メッセージなどの動作を含む命
令を用いることによって達成される。代りの入力を行う
ことを希望しているプロセスはどのプロセスでもまず代
りのスタートを行い、それに続いて可能な代りのチャネ
ルに対して可能化チャネルを行わなければならない。そ
の後で、代りの待機、チャネル不能化、および代りの終
りなどの動作が続く。この後で、前記したように「メッ
セージ入力」に使用するためのカウント・チャネルとソ
ース情報を与えるために、プロセスはあるロード命令を
実行する必要がある。 代りの入力のための命令を含む種々の例について次に
説明する。 例3 これは、メッセージを直列リンクを通じて送る、1つ
のマイクロコンピュータの出力プロセスYと、異なるマ
イクロコンピュータの入力プロセスXとの間の通信に関
するものである。プロセスXは、Yが任意の出力命令を
実行する前に、入力動作を開始する。プロセスXが開始
した時には代りの入力のいずれも用意が整っていない。
また、プロセスYによる出力動作のために1つのチャネ
ルの用意が整うと、他の代りのチャネルのいずれも用意
が整わないと仮定する。最初にプロセスXは「代りのス
タート」を実行し、その動作の定義にシステムプロセス
Xは「enabling p」をプロセスXの作業域の状態場所67
へ書込む。出力チャネル90および入力チャネル91の状態
マシンは第17a図に示すようなものである。それからプ
ロセスXは動作「チャネル可能化」を行う。プロセスX
は可能な各入力チャネルに対してこれを行うが、第17b
図はプロセッサYにより使用される特定のチャネルにお
けるこの動作の結果を示す。チャネル可能化の定義に示
されているように、プロセスXは最初にガード値をAレ
ジスタにロードし、動作を続ける前にこれは調べられ
る。8〜17行目は、チャネルがソフト・チャネルである
ならば、後続のシーケンスを指定する。ここで説明して
いるケースでは、チャネルのアドレスはハード・チャネ
ルのアドレスに対応するから、21〜29行目のシーケンス
が続く。21行目はチャネルのポート数を計算し、22行目
はそのチャネルの状態についての質問をプロセッサに行
わせる。23〜25行目は、チャネルの用意が整ったとする
と、値レディpがプロセスXのための状態場所67に書込
まれたであろうことを示す。しかし、そうはならないか
ら27〜29行目のシーケンスが適用される。プロセスXの
ためのプロセス記述子が定義の28行目に従ってチャネル
のためのプロセス語場所に書込まれ、29行目は先に定義
された手続リンク可能化を要求する。これは入力チャネ
ルの優先度フラッグをプロセスXの優先度にセットし、
可能化要求をリンク・チャネルに対して行わせる。これ
によってチャネルの状態を変えて第17b図に示すように
「可能化状態」にする。それからプロセスXは代りの待
機を実行する。代りの待機の定義の2行目に従って、こ
れは値−1をプロセスXのための作業域の零場所にセッ
トする。3行目と4行目は状態場所67の内容がレディp
であるかどうかを見るためにその内容を調べる。もしレ
ディpでないとすると、8〜11行目のシーケンスが実行
される。いいかえると、値待ちpがプロセスXのための
状態場所67に書込まれる。プロセスXのためのIPTRがIP
TR場所65に格納され、SNPFLAGを1にセットする結果と
してプロセスXがスケジュールから外される。これが第
17c図に示されている。この後でプロセスYが出力メッ
セージを行うことにより出力動作を開始する通常のやり
方で、かつ前記したように、これはプロセスYをスケジ
ュールから外し、出力リンクが最初のデータ・バイトを
送る。そのバイトが到達すると、プロセスXのための入
力リンクにプロセスXのためのプロセッサに対するレデ
ィ要求を行わせる。それからプロセスXは再びスケジュ
ールに組入れられ、動作「チャネル不能化」を行う。こ
の動作は1つのチャネルを選択し、残りを不能状態にす
る。チャネル不能化の定義の1行目からわかるように、
動作ALTENDの後で入力プロセスにより実行すべき次の命
令のアドレスからプロセスXは再びスケジュールに組入
れられ、動作「チャネル不能化」を行う。この動作は1
つのチャネルを選択し、残りを不能状態にする。チャネ
ル不能化の定義の1行目からわかるように、動作ALTEND
の後で入力プロセスにより実行すべき次の命令のアドレ
スをとり出すために必要な命令オフセットがAレジスタ
にロードされる。Bレジスタはガード値を有し、Cレジ
スタにはチャネル・アドレスがロードされる。この命令
は可能な代りの各入力チャネルに対してくり返えされる
ことがわかるであろう。9行目と10行目はガード値の点
検を取り扱う。この点検が満足されるものとすると、チ
ャネル・アドレスがソフト・チャネルのアドレスである
かどうかを13,14行目にシステムプロセッサはテストす
る。しかし、この場合には26行目が、チャネルのアドレ
スがハード・チャネルのアドレスであることを適用す
る。29行目はチャネルのポート数を計算し、32行目はプ
ロセッサにより状態の質問をリンクに対して行わせる。
34行目にシステム、チャネルが用意が整っていることが
見出されたとすると、先に定義された手続「これは選択
されたプロセスか」が実行される。その定義の4行目に
従って、これはOレジスタにプロセスXの作業域の零場
所の内容をロードする。5,6行目に従って、それが−1
であるかどうかについてこれはテストされ、もし−1で
あればAレジスタの内容がWPTR REGで示されているメモ
リ場所に書込まれ、Aレジスタはこれが選択されたプロ
セスであることを示す値MACHINETRUEを有する。10行目
に従って、Oレジスタが値−1を含んでいないとする
と、これは選択されたプロセスではない。第17e図はチ
ャネル不能化動作を実行する直前の2つのプロセスの状
態を示し、第17f図はチャネル不能化動作を実行後の状
態を示す。第17f図の後はプロセスXは動作ALTENDを実
行する。この動作は、それの定義の1行目から、WPTRレ
ジスタ内のポインタにより示されるメモリ・アドレスの
内容をOレジスタにロードする。それから、それはポイ
ンタをOレジスタに含まれているオフセットとともにIP
TRレジスタに置く。IPTRレジスタはIPTRレジスタの以前
の値を有する。これによってプロセスはそれの命令シー
ケンス中の希望の位置において継続可能にさせられる。
ALTENDを実行した後で、プロセスXはメッセージ送信の
ための適切な値をロードでき、かつ入力メッセージを実
行する。この入力メッセージは第16図の第16c図から前
に示されているシーケンスを実行する。 上記の例は代りのハード・チャネルの使用に関連した
ものであるが、シーケンスは全体として類似し、プロセ
スはいくつかの代りのソフト・チャネルのうちの1つを
介する代りの入力を実行する。最初にプロセスが代りの
入力を実行していることを示すために「代りのスター
ト」の実行により特殊な値「enabling p」がプロセスの
状態場所にロードされる。それから、チャネルの状態を
テストするために動作「チャネル可能化」が各チャネル
ごとに実行される。「チャネル可能化」の定義の12,14,
16行目はチャネルの内容を調べる。12行目にシステム、
そのチャネルに作業域ポインタが見出されないとする
と、入力プロセスのプロセス説明がそのチャネルに書込
まれる。17行目に従って、出力プロセスの作業域ポイン
タがチャネル内で見出されたとすると、値「Ready p」
が入力プロセスの状態場所に書込まれる。これは、出力
プロセスにより実行された命令の結果としてどのチャネ
ルが既に「レディ」であるかを調べるために各チャネル
に対して行われ、レディでないことが見出されたチャネ
ルに対しては入力プロセスの作業域ポインタはそのチャ
ネルに残される。それから入力プロセスは「代りの待
機」を実行する。これはチャネルではなくて入力プロセ
スを行う。定義の2行目にシステム、それは値−1を入
力プロセスのための作業域の零場所にロードし、「代り
の待機」の定義の5,7行目は入力プロセスの状態場所の
点検を行う。もし値「Ready p」を見出したとすると、
入力プロセスはスケジュールから外されないが、「Read
y p」を見出さないとすると、定義の9行目に従ってそ
れは「wait p」をプロセスの状態場所に書込み、定義の
10,11行目は入力プロセスのスケジュールから外される
ようにされる。入力プロセスがスケジュールから外され
なかったとすると、それは「チャネル不能化」であろう
それの次の命令で実行する。一方、それがスケジュール
から外されたものとすると、代りのチャネルの1つを使
用しようとしているプロセス出力の結果としてそれはそ
のうちに再びスケジュールに組入れられる。そして、入
力プロセスがスケジュールに再び組入れられると、それ
はそれの次の命令を再び行う。その命令は「チャネル不
能化」である。それは代りの各チャネルに対してこの動
作を行い、各動作に先立ってAレジスタオフセット数が
ロードされて、そのチャネルがその入力に対して選択さ
れたものだとすると、そのプロセスのためのプログラム
・シーケンス中で次の命令を探すために必要な命令オフ
セットを示す。18,20,24行目は、チャネルが値「Not Pr
ocess p」、入力プロセスに対するポインタ、または出
力プロセスに対するポインタを含んでいるか否かについ
てのそれぞれのテストを示す。24行目に従って、チャネ
ルが出力プロセスに対するポインタを含んでいることが
見出されたとすると、25行目は手続「これは選択された
プロセスか」を求める。この手続の定義に従って、プロ
セスの作業域の零場所が−1を依然として有するかどう
かを調べられ、もし−1を有しておけばそれが入力のた
めに選択されたチャネルとなり、手続は値−1を除去し
て、作業域の零場所に必要な命令オフセットを書込む。
それ以上「チャネル不能化」動作が残りのチャネルにお
いて実行されると、あるものは出力プロセスに対するポ
インタを保持することにより「レディ」であることを見
出すことができるが、手続「これは選択されたプロセス
であるか」が実行される時は、それはもはや値−1を入
力プロセスの作業域の零場所に探さず、したがってチャ
ネルが既に選択されたこと、そのためにそれ以上のチャ
ネルは選択されないことは明らかであろう。入力プロセ
スに対するポインタを含んでいることが依然として見出
されているどのチャネルも「Not Process p」へ変えら
れる。「チャネル不能化」動作が代りの全てのチャネル
において実行された後で、入力プロセスは動作「代りの
終り」を実行する。この動作は入力プロセスの作業域の
零場所から命令オフセットを転送し、そのプロセスに対
する継続するプログラムがそれの命令シーケンス中の正
しい点においてピックアップされるように、そのプロセ
スに対する命令ポインタにそのオフセットを加えさせ
る。 例4 第18図に示されているこの例は、別のマイクロコンピ
ュータのプロセスXと通信するために1つのマイクロコ
ンピュータにおいて出力動作を行うプロセスYを有す
る。その別のマイクロコンピュータはいくつかのチャネ
ルで代りの入力動作を行う。それらのチャネルのうちプ
ロセスYにより使用される1つのチャネルがレディとな
っている唯一の入力チャネルである。最初にプロセスY
が第16a,16b図を参照して説明したシーケンスに従って
出力メッセージを実行する。これは第18a図において達
した状態である。それからプロセスXは代りのスタート
動作を行い、かつチャネル可能化を実行しようとする。
それの状態が第18b図に示されている。チャネル可能化
を実行した後で、状態は第18c図に示すものへ移る。そ
れからプロセスXは代りの待機を実行するが、継続し、
スケジュールから外されない。プロセスXがチャネル不
能化を実行しようとしている状態が第18d図に示されて
いる。チャネル不能化を実行したプロセスは、チャネル
不能化の実行後に、第17図を参照して説明したようにし
て継続する。 例5 第19図は、出力プロセスYが出力動作を開始する前に
プロセスXが代りの入力動作を行う状況における同じマ
イクロコンピュータ上の同じ優先度の2つのプロセスX
とYを示すものである。プロセスYがXよりも高い優先
度にあればシーケンスは同じである。最初にプロセスは
代りのスタートを実行し、これは第19a図に示す状態で
ある。それはプロセスXに対する作業域の状態場所に
「enabling p」を単に書込むだけである。それからプロ
セスXはチャネル可能化を実行し、これは第19b図に示
す状態へ移る。この状態においてはプロセスXのプロセ
ス記述子がチャネルに配置される。第19c図へ移るため
に、プロセスXは代りの待ち動作を行い、プロセスXの
状態場所はenabling pを含んでいるから、waiting pの
ためにその場所は更新され、プロセスXは再びスケジュ
ールから外される。プロセスYが出力することを希望し
た時は、プロセスYは、第19d図に示すように、それの
レジスタをロードすることにより開始し、メッセージ出
力を実行する。それは待ちプロセスXのプロセス記述子
をチャネルが含んでいることを見出し、プロセスYはプ
ロセスXのための作業域の状態場所を読んで、それが値
waiting pを含んでいることを見出す。これは、プロセ
スXが代りの入力動作中に含まれていることを示す。こ
れによってXの状態場所がready pにさせられ、チャネ
ルにプロセスYのプロセス記述子がロードされる。プロ
セスYの作業域はYに対するIPTR値とソース・アドレス
を保持するために用いられる。プロセスYはSNPFLAGを
1にセットし、プロセスXをスケジュールに組入れる。
これは第19c図に示す状態である。SNPFLAGが1にセット
されるとプロセスYがスケジュールから外される。スケ
ジュールに組入れられているプロセスXは、第19f図に
示すように、チャネル不能化動作をいま実行しようとし
ている。不能化動作を実行した後は状態は第19g図に示
すようなものである。その後で、プロセスXが代り終り
の動作を行う。前記したように、その動作には別のロー
ド命令と入力メッセージが続く。 例6 第20a,20b,20c図に示す例は、低優先度のプロセスX
と同じように同じマイクロコンピュータにより実行され
る高優先度のプロセスYが、どのようにしてプロセスX
に割込めるかを示すものである。プロセスXは低優先度
1のプロセスであって、それの実行中にプロセスYを作
った。プロセスYは高優先度である優先度0を有するか
ら、プロセスXは割込まれて、それのWPTRを優先度1の
WPTR REG51に残す。第20a図に示す状態においては、プ
ロセスYは現在のプロセスであって、優先度フラッグ47
がセットされて優先度0のプロセスを示し、図示の例で
は優先度1または0のリスト上で待っているプロセスは
ない。プロセスYの実行中にそれはリンクを用いて出力
メッセージを行うことを希望する。これによって、第20
b図に示すように、SNPFLAGが1にセットされ、プロセス
Yはスケジュールから外される。次のプロセスをスター
トさせる手続によってSNPFLAG58がクリヤされ、優先度
0のリストに別のプロセスがあったかどうかを決定する
ためにプロセッサはFPTR(0)をテストする。別のプロ
セスはない(というのはFPTR REG(0)はNot Process
pを含んでいるからである)から、プロセッサはPRIFLAG
47を1にセットし、かつWPTR REG(1)はプロセスXに
対する妥当な作業域ポインタを含むから、次のプロセス
をスタートさせる手続はそれ以上の動作を行わない。リ
ンクおよびSNPFLAG(1)からの要求がないこと次の動
作として調べるプロセッサはセットされず、したがって
そのプロセッサはプロセスXの実行を再び開始する。こ
れは第20c図に示す状態である。いくらかの後の段階
で、それを通じてプロセスYがメッセージを出力したリ
ンクが、そのメッセージ中に含まれていた一連のバイト
の終りで最後の確認応答を受ける。その時に、プロセス
Yにより使用されるリンクがプロセッサに対して実行要
求を行う。現在の動作が終ると、次にどの動作を行うか
をプロセッサは決定する。SNPFLAG(1)はセットされ
ず、現在のプロセスである優先度Xの優先度より高いチ
ャネル優先度0に対する実行要求が行われる。したがっ
て、プロセスは手続「実行要求を取扱う」を実行する。
この手続は待ちプロセスYのプロセス記述子をPROCDESC
REGにコピーし、実行手続を行う。この実行手続はプロ
セスYのプロセス作業域ポインタをPROCPTR REGにロー
ドし、その優先度をPROCPRIFLAGにロードする。その優
先度が現在のXプロセスのPRIFLAGに示されている優先
度より高いから、割込みが行われる。PRIFLAGは0にセ
ットされ、WPTR REG(0)はそのプロセス作業域にセッ
トされ、IPTRREG(0)がロードされる。そうすると状
態は第20a図に示す状態へ戻される。プロセッサの次の
動作は、出力メッセージ命令に続く命令である次の命令
プロセスYを実行することである。 例7 第21a,21b,21c図は出力プロセスYと、代りの入力を
行う高い優先度のプロセスXとの間をメッセージが通っ
ている間におけるフラグの変化とレジスタを示すもので
ある。この特別の例では、プロセスXは代りの入力を既
に開始しており、プロセスXがスケジュールから外され
て、それのプロセス記述子がチャネル内にあるように、
代りの待機を実行している。プロセスYが出力メッセー
ジを実行すると、プロセスYはXのプロセス記述子をチ
ャネル内で見出すから、プロセスXが値waiting pを見
出すプロセスXの作業域の状態場所を読取ることによ
り、プロセスXが代りの入力を実行していることを示
す。したがって、プロセスYはそれのプロセス記述子を
チャネルに配置させ、YのIPTRがYの作業域のIPTR場所
に書込まれ、メッセージの最初のバイトのソースがYの
作業域の状態場所に書込まれる。それから、第21a図に
示すようにSNPFLAG(1)がセットされる。これは後で
プロセスYをスケジュールから外させる。Xのプロセス
記述子がPROCDESCレジスタに書込まれ、プロセッサはプ
ロセスXのための実行手続を実行する。しかし、プロセ
ッサが優先度0のプロセスXをいまスケジューリング
し、プロセッサは現在は優先度1であるから、それは優
先度1の割込みを行わせ、手続StartNexPrecessがスタ
ートする前にプロセスXの実行を開始する。実行手続の
終了後の状態を第21b図に示す。それから、プロセスX
がチャネル不能化動作を行い、プロセスYにより使用さ
れるチャネルを選択する。それから、プロセスXは入力
メッセージ命令の実行を続ける。その命令はチャネルを
値「Not Process p」にリセットし、TREGにプロセスY
のプロセス記述子をロードし、コピー・フラッグを1に
セットする。それから、プロセッサはメッセージをコピ
ーさせ、最後にプロセスをスケジュールさせる。実行手
続はプロセスYを優先度1の行列に置かせる。それか
ら、プロセッサは、次にどの動作を行うかを決定し、SN
PFLAG(0)がセットされるから、プロセッサはStartNe
xtProcessを実行する。これはマシンを優先度1へ戻さ
せる。これは第21c図に示す状態である。SNPFLAG(1)
が依然としてセットされているから、プロセッサは手続
StartNextProcessを実行する。それはプロセスYをスケ
ジュールから外す。しかし、プロセスYは優先度1のリ
スト上に依然としてあるから、最後にはスケジュールさ
れる。 プログラム例に対する命令シーケンス われわれのヨーロッパ特許明細書第110642号には、変
数「rotations」を取扱うプロセス例と、変数「miles」
を取扱うプロセス例との2つのプロセス例が記載され、
それらのプロセスのための2つのプログラム例を実行す
る命令シーケンスが与えられている。同じ2つの例を以
下に説明する。両方のプログラムはヨーロッパ特許明細
書第110642号に記載されているのと同じであり、それら
のプログラムはOCCAM言語を用いて再び書かれる。下記
の各プログラム例は、OCCAM文を機械命令に変換するコ
ンパイラの使用により形成される命令シーケンスであ
る。この場合には機械命令は上記で定義した機能および
動作に従う。 各例においてプログラムと命令シーケンスに行番号が
加えられているが、行番号は参照の目的のためだけであ
る。 例1 1.VAR rotations: 2.WHILE TRUE 3.SEQ 4.rotations:=0 5.WHILE ratations<1000 6.SEQ 7.rotation?ANY 8.rotations:=rotations+1 9.mile!ANY 例2 1.VAR miles: 2.SEQ 3.miles:=0 4.WHILE TRUE 5.ALT 6.mile?ANY 7.mile:=miles+1 8.fuel?ANY 9.SEQ 10.consumption!miles 11.miles:=0 これら2つのプログラムは、上述の機能およびオペレー
ションを用いるので、ヨーロッパ特許第110642号明細書
に言及されているように異なった命令シーケンスを作成
する。 例1 このプログラムの7行目はチャネル「rotation」から
の入力を要求し、これは対応する命令シーケンスの12行
目に入力すべきデータのための宛先アドレスをロードさ
せる。13行目は使用すべきチャネルにポインタをロード
する。14行目は入力すべき語の数のカウントをロード
す。16,17行目はpfix機能を使用することにより動作
「メッセージ入力」をロードする。同様に、プログラム
の9行目はチャネルを通る出力を要求し、対応する命令
シーケンスの12行目は出力すべきデータのソースにポイ
ンタをロードする。26行目は語中の出力メッセージのカ
ウントをロードする。27行目はこのカウントをバイトに
変換する。また、28,29行目は、「メッセージ出力」命
令を実行するためにpfix命令を使用する。 例2 この例は、プログラムの5行目で始まる代りの入力動
作を含む。これは、プログラムの6行目にシステムチャ
ネル「mile」から、またはプログラムの8行目に従って
チャネル「fuel」からの代りの入力を要求する。対応す
る命令シーケンスにおいては、代りの入力動作が5行目
で始まることがわかる。5行目は動作「alternative st
art」を要求する。6行目はポインタをチャネル「mil
e」にロードする。7行目はガード値「真」をロードす
る。チャネル「mile」のための「チャネル可能化」を動
作させるために、8,9行目はpfix機能として用いる。10
行目はポインタをチャネル「fuel」にロードし、11行目
はガード値「真」をロードする。チャネル「「fuel」の
ための動作「チャネル可能化」を実行するために12,13
行目はpfix機能を用いる。このプロセスのために「alte
rnative wait」を動作させるために14,15行目はpfix機
能を用いる。16行目はポインタをチャネル「mile」にロ
ードし、17行目はガード値「真」をロードする。18行目
は、プロセスかチャネル「mile」を通って入力させた時
に必要である。命令オフセットをロードする。この場合
には要求されるオフセットは0である。チャネル「mil
e」において動作「チャネル可能化」を実行するために1
9,20行目はpfix機能を用いる。21行目はポインタをチャ
ネル「fuel」にロードし、22行目はガード値「真」をロ
ードする。23行目は、プロセスがチャネル「fuel」を通
って入力する時に必要である命令オフセットをロードす
る。チャネル「fuel」において「チャネル不能化」を動
作させるために、24,25行目はpfix機能を使用する。「a
lternative end」を動作させるために26,27行目はpfix
機能を用いる。 alternative end動作は、それを通じて入力が行われ
たチャネルに応じて適切な命令オフセットをロードし
て、入力のためにチャネル「mile」が用いられたとする
と、プロセスが基準マーカーL2〜L3の間の命令シーケン
スをプロセスが実行し続けるようにする。あるいは、チ
ャネル「fuel」が選択されたとすると、命令オフセット
は基準点L3〜L4の間で命令シーケンスの実行をプロセス
に行わせる。 可変語長のネットワーク 以上説明したように、同じマイクロコンピュータまた
は異なるマイクロコンピュータにおけるプロセス間のメ
ッセージ伝送は、標準長の任意の数のデータ・パケット
で行われる。したがって、任意のメッセージ長を使用で
きる。各パケットはデータのバイトを含むから、通信は
種々の語長のマイクロコンピュータの間で行わせること
ができ、メッセージ伝送に含まれているマイクロコンピ
ュータに対して完全な数の語を構成するために、各メッ
セージに適切な数のバイトを供給する必要があるだけで
ある。そのようなネットワークが第22図に示されてい
る。この図においては、語長が16ビット、24ビット、ま
たは32ビットである複数のマイクロコンピュータが示さ
れている。 マイクロコンピュータ260は16ビット語長のレジスタ
を有し、マイクロコンピュータ261,262は24ビット語長
のレジスタを有する。マイクロコンピュータ263は32ビ
ット語長のレジスタを有する。上記のメッセージ伝送命
令は、ネットワーク中に含まれているマイクロコンピュ
ータの語長とは無関係に同様に動作する。 本発明は上記諸例の詳細に限定されるものではない。
フロントページの続き (72)発明者 シエフアード,ロジヤー マーク イギリス国 ブリストル コサム,コサ ム ヴエイル 21 (56)参考文献 特開 昭57−768(JP,A) 特開 昭54−18640(JP,A)

Claims (1)

  1. (57)【特許請求の範囲】 1.メモリと、複数の同時プロセスを実行するために構
    成されたプロセッサとを備え、各プロセッサは、プロセ
    ッサにより逐次実行するための複数の命令より成るプロ
    グラムに従って前記プロセスを実行し、各命令は前記プ
    ロセッサにより実行されるべき要求された機能を選定
    し、前記プロセッサは(1)複数のレジスタおよびそれ
    らのレジスタの間のデータの転送に使用するデータ転送
    手段と、(2)各命令を受け、プロセッサ・レジスタの
    1つにその命令に関連する値をロードする手段と、
    (3)受けた各命令に応答して前記データ転送手段とレ
    ジスタを制御し、プロセッサにその命令に従って動作さ
    せる制御器と、を備えるマイクロコンピュータにおい
    て、このマイクロコンピュータは:、 (1)1つまたはそれ以上のプロセスを識別して、プロ
    セッサによる少くとも1つのプロセス収集(61,62,63)
    待機実行を形成し、現在のプロセスの実行に割込むこと
    によりプロセスをデスケジューリングし、さらにプロセ
    スをプロセス収集待機実行に加えることによりそのプロ
    セスをスケジューリングするためのスケジューリング手
    段(51,52,53,66)と、 (2)1つのプロセスと別のプロセスがそれぞれのプロ
    グラム・シーケンスにおける対応する段階にある時に、
    通信チャネルを使用することにより1つのプロセスから
    別のプロセスへデータの伝送を行えるようにする通信手
    段(25,70)と、データを出力するために動作する出力
    プロセス、およびデータ転送に使用するために1つまた
    はそれ以上のチャネルを識別するメッセージに応答して
    データを入力するために動作する入力プロセスを含み、
    前記通信手段は、入力プロセスが前記チャネルを経て入
    力するためのプログラム段階に到達したことを示す第1
    のチャネル準備完了表示と、出力プロセスが前記チャネ
    ルを経て出力するためのプログラム段階に到達したこと
    を示す第2のチャネル準備完了表示とを行うことによっ
    て、各々のチャネルを通じてデータ通信の状態を示す複
    数の通信チャネル(70,90,91)と、二つの通信プロセス
    の間の通信が完了したときに、二つの通信プロセスが対
    応したプログラムステップにもたらされるように、現在
    のプロセスの実行を停止するため、あるいは中断された
    プロセスを前記プロセス収集待機実行に加えるために、
    前記二つの通信プロセス間の通信が完了した状態に応答
    する同期手段とを備え、前記通信手段は、二者択一の入
    力指示の実行に応じて、複数の二者択一の通信チャネル
    のうちのいずれか一つを経て入力プロセスを入力するこ
    とを可能にするよう動作し、(i)前記二者択一の各々
    のチャネルの状態を試験し、前記第1のチャネル準備完
    了表示をいずれのチャネルもまだ持っていないという、
    前記入力プロセスの識別結果を前記第1のチャネル準備
    完了表示に提供する入力プロセスによって二者択一の入
    力指示の実行に応答するため、(ii)いずれの前記二者
    択一のチャネルも第2のチャネル準備完了表示を持たな
    い場合に、入力プロセスの実行を停止するため、(ii
    i)前記入力プロセスを再びスケジュールするために、
    二者択一のチャネルの任意の各々にデータを出力する出
    力プロセスによって、通信命令を実行することに応答す
    るため、(iv)前記二者択一の入力チャネルの一つを選
    択する入力プロセスをさらに実行することに応答するた
    め、(v)前記第1のチャネル準備完了表示を、選択さ
    れていない前記二者択一のチャネルから除去するため
    に、前記通信手段(25,70)およびプロセッサ(12)が
    動作することを特徴とするマイクロコンピュータ。 2.請求の範囲第1項記載のマイクロコンピュータであ
    って、プロセスをデスケジュールする手段は、チャネル
    を試験する動作に応答して、入力プロセスによるメッセ
    ージ命令の実行時に、前記試験されたチャネルを用いて
    出力プロセスがメッセージ命令を実行したことを示す値
    を代替チャネルがいずれも含んでいないものとすると、
    入力プロセスをデスケジュールすることを特徴とするマ
    イクロコンピュータ。 3.請求の範囲第2項記載のマイクロコンピュータであ
    って、前記スケジュール手段は、デスケジュールされた
    入力プロセスを示す値を含んでいるチャネルを用いて出
    力プロセスによるメッセージ命令の実行に応答して入力
    プロセスを再スケジュールすることを特徴とするマイク
    ロコンピュータ。 4.請求の範囲第3項記載のマイクロコンピュータであ
    って、前記通信手段は、(iv)前記二者択一の入力チャ
    ネルの一つを選択する入力プロセスをさらに実行するこ
    とに応答するための選択手段を有し、この選択手段は入
    力プロセスのデスケジュールに応答して、入力プロセス
    が再スケジュールされるまで、代替チャネルの1つの選
    択を遅らせることを特徴とするマイクロコンピュータ。 5.請求の範囲第1〜4項のいずれかに記載のマイクロ
    コンピュータであって、通信手段は、同じマイクロコン
    ピュータで実行されるプロセスの間のデータ伝送を行わ
    せるように構成され、前記チャネルはメモリ場所を備え
    ることを特徴とするマイクロコンピュータ。 6.請求の範囲第1〜5項のいずれかに記載のマイクロ
    コンピュータであって、通信手段は、異なるマイクロコ
    ンピュータで実行されるプロセスの間の外部データ伝送
    を行わせるように構成され、前記チャネルはメモリ場所
    を備え、それらのメモリ場所のいくつかは外部通信リン
    クの部分を形成することを特徴とするマイクロコンピュ
    ータ。 7.請求の範囲第1〜6項のいずれかに記載のマイクロ
    コンピュータであって、前記通信手段はメッセージ命令
    の実行に応答して、プロセスが代替入力動作を開始した
    ことを示す第1の所定値を、複数の二者択一のチャネル
    の1つを介して、その入力プロセスに関連するメモリ場
    所に格納するように構成されることを特徴とするマイク
    ロコンピュータ。 8.請求の範囲第7項記載のマイクロコンピュータであ
    って、各々の代替チャネルの内容を試験する前記通信手
    段は、任意の1つのチャネルの試験が、出力プロセスが
    試験されたそのチャネルを用いてメッセージ命令を実行
    したことを示す値をメモリに置いた場合に、入力プロセ
    スに関連するメモリ場所に第2の所定値を格納するよう
    に構成されることを特徴とするマイクロコンピュータ。 9.請求の範囲第7項または第8項記載のマイクロコン
    ピュータであって、プロセスに関連するメモリ場所の内
    容を検査し、前記第2の所定値が前記メモリ場所に置か
    れなかった時に入力プロセスをデスケジュールするため
    の手段が設けられ、この手段は、プロセスに関連するメ
    モリ場所に第3の所定値と第4の所定値を更に置き、そ
    れらの第3と第4の所定値のうちの1つは、入力プロセ
    スがデスケジュールされて、その入力プロセスが代替入
    力プロセス中に含まれることを示すことを特徴とするマ
    イクロコンピュータ。 10.請求の範囲第9項記載のマイクロコンピュータで
    あって、前記通信手段は、(iv)前記二者択一の入力チ
    ャネルの一つを選択する入力プロセスをさらに実行する
    ことに応答するための選択手段を有し、この選択手段
    は、前記二者択一の各チャネルの内容を試験し、かつ、
    そのチャネルを用いて出力プロセスがメッセージ命令を
    実行したことを示す値を含んでいる最初に試験されたチ
    ャネルを入力に対して選択するように構成され、前記選
    択手段は、入力プロセスに関連するメモリ場所から前記
    第3の所定値を除去するように構成され、それによりそ
    の選択手段は、出力プロセスがそのチャネルを用いてメ
    ッセージ命令を実行したことを示す値を含み得るそれ以
    外の任意のチャネルを選択しないことを特徴とするマイ
    クロコンピュータ。 11.請求の範囲第10項記載のマイクロコンピュータで
    あって、チャネルの選択に応答して、入力プロセスに関
    連するメモリ場所にオフセット値を格納し、そのチャネ
    ルが選択された時に、そのプロセスに対するプログラム
    ・シーケンスにおいて必要なオフセットを示す手段を含
    むことを特徴とするマイクロコンピュータ。 12.請求の範囲第10項記載のマイクロコンピュータで
    あって、プロセスがデスケジュールされた時にそのプロ
    セスの命令シーケンス中の段階に対するポインタを格納
    する手段と、複数の代替入力チャネルの1つが選択され
    た時に前記ポインタに前記オフセットを加える手段とを
    含むことを特徴とするマイクロコンピュータ。 13.請求の範囲第1〜第12項のいずれかに記載のマイ
    クロコンピュータであって、優先度がそれぞれの間で異
    っており待機実行を有する複数のプロセス収集の1つに
    新規のプロセスを加え、または前記プロセス収集のうち
    の1つからプロセスを除去するスケジューリング手段を
    含むことを特徴とするマイクロコンピュータ。 14.請求の範囲第1〜第13項のいずれかに記載のマイ
    クロコンピュータであって、前記メモリは、各プロセス
    に関連する変数を記録する場所を含めて複数のアドレス
    可能な場所を有する作業域を与え、前記プロセッサ・レ
    ジスタの1つは、現在のプロセスの作業域のアドレスを
    識別する作業域ポインタを保持するように構成されるこ
    とを特徴とするマイクロコンピュータ。 15.請求の範囲第14項記載のマイクロコンピュータで
    あって、各プロセスのための作業域は、複数の二者択一
    のチャネルの1つを介してメッセージ入力を行うのに使
    用するためにプロセスの状態を示す前記第1、第2、又
    は第3の所定値のうちのいずれか1つを格納する場所を
    含むことを特徴とするマイクロコンピュータ。 16.少なくとも一つのプロセッサとメモリを有したコ
    ンピュータシステムで同時プロセスを実行する方法にお
    いて、各々の前記同時プロセスは、各々のプログラムに
    含まれた複数の命令を実行するものであり、前記命令は
    入力、出力及び二者択一の入力指示を有した通信命令を
    含んでおり、前記方法は、(i)前記一つのプロセッサ
    によって実行されている現在のプロセスを表示するステ
    ップと、(ii)前記一つのプロセッサによる実行を待機
    しているプロセス収集を識別するステップと、(iii)
    現在のプロセスの実行を停止する指示に応答して、前記
    プロセス収集のうちの一つのプロセスを表示するよう
    に、現在のプロセスの表示を変えるステップと、(iv)
    前記プロセス収集に一つのプロセスを加えることによっ
    て、そのプロセスをスケジュールするステップとを含
    む、一つのプロセッサによって実行するための複数のプ
    ロセスをスケジュールするステップと、さらに二つの同
    時プロセス間において、通信チャネルを確立し、前記二
    つのプロセスのうちの一つである第1のプロセスが、前
    記チャネルに通信を試みる通信指示を実行し終えたとき
    に、チャネル準備完了表示を提供することによって、こ
    の二つのプロセス間でのメッセージ伝達を同期させるス
    テップと、各々のプログラムにおいて対応したステップ
    にあるときに、前記二つのプロセス間の前記通信チャネ
    ルにおいて、前記メッセージ伝達は二者択一の入力命令
    の実行によって、複数の二者択一の通信チャネルの一つ
    を通して、入力プロセスにメッセージを入力する動作を
    含むメッセージ伝達が行われるように、前記プロセスの
    うちの一つの実行を停止、又は前記プロセス収集に前記
    プロセスのうちの一つを加えるステップと備えており、
    第1のチャネル準備完了表示は入力プロセスが前記チャ
    ネルに入力するプログラム段階に到達したことを示し、
    第2のチャネル準備完了表示は第1のチャネル準備指
    示、及び出力プロセスが前記チャネルに出力するプログ
    ラム段階に到達したことを示し、この結果、(i)まだ
    各々のチャネルはチャネル準備指示をもたないため、入
    力プロセスの認識と共に第1のチャネル準備完了指示を
    提供し、(ii)どのチャネルもまだ第2のチャネル準備
    指示を持っていない場合は、入力プロセスの実行を停止
    し、 (iii)前記二者択一のチャネルの全てに通信するため
    に通信命令を実行する出力プロセスに応答して前記入力
    プロセスをスケジュールし、これによってこの入力プロ
    セスが、現在のプロセス上の実行を継続するようにし、
    さらに(iv)(a)メッセージの入力のために、前記二
    者択一のチャネルのうちの一つを選択する、(b)選択
    されていない各々の前記二者択一のチャネルから第1の
    チャネル準備指示を除去する、さらに(c)前記二者択
    一のチャネルのうちの選択された一つにメッセージの入
    力を実行する、前記入力プロセスを実行することを特徴
    とする同時プロセス実行方法。 17.入力プロセスにより二者択一の入力指示の実行に
    応答して、前記チャネルの試験をおこなっている間、前
    記代替チャネルの全てにおいて、第2のチャネル準備指
    示の場所における前記入力プロセスに関係したメモリ場
    所に、第2の所定値が格納される請求の範囲第16項に記
    載のプロセス実行方法。 18.前記第2の所定値が、前記入力プロセスに関係し
    た前記メモリ場所において検知されない場合、前記二者
    択一の各々のチャネルの試験の後、前記入力プロセスが
    スケジュールからはずされる請求の範囲第17項に記載の
    プロセス実行方法。
JP59504133A 1983-11-04 1984-11-02 マイクロコンピュータおよびプロセス実行方法 Expired - Lifetime JP2664664B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB838329509A GB8329509D0 (en) 1983-11-04 1983-11-04 Computer
GB8329509 1983-11-04

Publications (2)

Publication Number Publication Date
JPS61500387A JPS61500387A (ja) 1986-03-06
JP2664664B2 true JP2664664B2 (ja) 1997-10-15

Family

ID=10551256

Family Applications (3)

Application Number Title Priority Date Filing Date
JP59504042A Expired - Lifetime JP2664663B2 (ja) 1983-11-04 1984-11-02 マイクロコンピュータ、及び同時プロセスを動作させる方法
JP59504133A Expired - Lifetime JP2664664B2 (ja) 1983-11-04 1984-11-02 マイクロコンピュータおよびプロセス実行方法
JP59504041A Expired - Lifetime JP2664662B2 (ja) 1983-11-04 1984-11-02 コンピュータシステムにおける同時プロセスの動作方法及びマイクロコンピュータ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP59504042A Expired - Lifetime JP2664663B2 (ja) 1983-11-04 1984-11-02 マイクロコンピュータ、及び同時プロセスを動作させる方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP59504041A Expired - Lifetime JP2664662B2 (ja) 1983-11-04 1984-11-02 コンピュータシステムにおける同時プロセスの動作方法及びマイクロコンピュータ

Country Status (6)

Country Link
US (3) US4783734A (ja)
EP (3) EP0145244B1 (ja)
JP (3) JP2664663B2 (ja)
DE (3) DE3481946D1 (ja)
GB (1) GB8329509D0 (ja)
WO (3) WO1985002037A2 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8521672D0 (en) * 1985-08-30 1985-10-02 Univ Southampton Data processing device
AU6244686A (en) * 1985-09-17 1987-03-19 Codex Corporation Multiple task control
US4853849A (en) * 1986-12-17 1989-08-01 Intel Corporation Multi-tasking register set mapping system which changes a register set pointer block bit during access instruction
US4965716A (en) * 1988-03-11 1990-10-23 International Business Machines Corporation Fast access priority queue for managing multiple messages at a communications node or managing multiple programs in a multiprogrammed data processor
US5193196A (en) * 1988-04-04 1993-03-09 Hitachi, Ltd. Process request arbitration system which preferentially maintains previously selected process request upon receipt of a subsequent request of identical priority
US4961140A (en) * 1988-06-29 1990-10-02 International Business Machines Corporation Apparatus and method for extending a parallel synchronous data and message bus
US5163156A (en) * 1988-07-27 1992-11-10 At&T Bell Laboratories Method for distributing messages through a mapping table which includes for each originating device a sequential list of corresponding destination devices
EP0378398B1 (en) * 1989-01-13 1996-07-24 International Business Machines Corporation Data processing system with means for detecting status of data processing device receiving commands
US5261099A (en) * 1989-08-24 1993-11-09 International Business Machines Corp. Synchronous communications scheduler allowing transient computing overloads using a request buffer
NL8902726A (nl) * 1989-11-06 1991-06-03 Oce Nederland Bv Werkwijze en inrichting voor het bewerken van data afkomstig van beelden.
US5452452A (en) * 1990-06-11 1995-09-19 Cray Research, Inc. System having integrated dispatcher for self scheduling processors to execute multiple types of processes
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5469571A (en) * 1991-07-15 1995-11-21 Lynx Real-Time Systems, Inc. Operating system architecture using multiple priority light weight kernel task based interrupt handling
US5247675A (en) * 1991-08-09 1993-09-21 International Business Machines Corporation Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
DE69311330T2 (de) 1992-03-31 1997-09-25 Seiko Epson Corp Befehlsablauffolgeplanung von einem risc-superskalarprozessor
WO1993022722A1 (en) 1992-05-01 1993-11-11 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
US5353420A (en) * 1992-08-10 1994-10-04 Intel Corporation Method and apparatus for decoding conditional jump instructions in a single clock in a computer processor
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
EP0663083B1 (en) 1992-09-29 2000-12-20 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
JP3531166B2 (ja) 1992-12-31 2004-05-24 セイコーエプソン株式会社 レジスタ・リネーミングのシステム及び方法
US5379428A (en) * 1993-02-01 1995-01-03 Belobox Systems, Inc. Hardware process scheduler and processor interrupter for parallel processing computer systems
US5859981A (en) * 1995-07-12 1999-01-12 Super P.C., L.L.C. Method for deadlock-free message passing in MIMD systems using routers and buffers
DE19653429C2 (de) * 1996-12-20 1998-10-15 Siemens Ag Verfahren zur Überprüfung der Funktionsfähigkeit einer Recheneinheit
TW405090B (en) * 1997-04-04 2000-09-11 Ibm Predictive cache loading by program address discontinuity history
US6219776B1 (en) * 1998-03-10 2001-04-17 Billions Of Operations Per Second Merged array controller and processing element
KR100617228B1 (ko) * 1999-03-19 2006-08-31 엘지전자 주식회사 실시간 운영체계 커널의 이벤트 전달 체계 구현방법
US7424712B1 (en) * 1999-04-30 2008-09-09 Sun Microsystems Inc System and method for controlling co-scheduling of processes of parallel program
US6442631B1 (en) 1999-05-07 2002-08-27 Compaq Information Technologies Group, L.P. Allocating system resources based upon priority
US6888830B1 (en) * 1999-08-17 2005-05-03 Mindspeed Technologies, Inc. Integrated circuit that processes communication packets with scheduler circuitry that executes scheduling algorithms based on cached scheduling parameters
US6559783B1 (en) * 2000-08-16 2003-05-06 Microchip Technology Incorporated Programmable auto-converting analog to digital conversion module
US6772300B1 (en) * 2000-08-30 2004-08-03 Intel Corporation Method and apparatus for managing out of order memory transactions
US6751711B1 (en) * 2000-10-27 2004-06-15 Nortel Networks Limited Methods and systems for process rollback in a shared memory parallel processor computing environment
JP3610915B2 (ja) * 2001-03-19 2005-01-19 株式会社デンソー 処理実行装置及びプログラム
US6874054B2 (en) * 2002-12-19 2005-03-29 Emulex Design & Manufacturing Corporation Direct memory access controller system with message-based programming
JP4709847B2 (ja) * 2004-11-11 2011-06-29 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク再構成による処理ユニットの並列フラッシング
US20060143415A1 (en) * 2004-12-29 2006-06-29 Uday Naik Managing shared memory access
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
JP5079342B2 (ja) 2007-01-22 2012-11-21 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
JP2009048306A (ja) * 2007-08-15 2009-03-05 Tokyo Metropolitan Univ 並列処理アーキテクチャおよびそれを用いた並列処理プロセッサ
JP6029553B2 (ja) * 2013-08-22 2016-11-24 日立オートモティブシステムズ株式会社 車両制御装置
DE102017204886A1 (de) 2017-03-23 2018-09-27 Airbus Operations Gmbh Passagiersitz mit einem manuell erweiterbaren Sitzelement und Passagierkabinenbereich
DE102017204894A1 (de) 2017-03-23 2018-09-27 Airbus Operations Gmbh Passagiersitz mit einem erweiterbaren Sitzelement und Passagierkabinenbereich

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3564504A (en) * 1967-11-22 1971-02-16 Us Air Force Method and system for program linkage and communication mechanism for computers
GB1345950A (en) * 1970-12-22 1974-02-06 Int Standard Electric Corp Digital electric data processing system
US3805247A (en) * 1972-05-16 1974-04-16 Burroughs Corp Description driven microprogrammable multiprocessor system
FR2253420A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2253428A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US3978452A (en) * 1974-02-28 1976-08-31 Burroughs Corporation System and method for concurrent and pipeline processing employing a data driven network
FR2269150B1 (ja) * 1974-04-25 1977-10-28 Honeywell Bull Soc Ind
US4060849A (en) * 1975-10-28 1977-11-29 Compagnie Internationale Pour L'informatique Cii-Honeywell Bull Data input and output controller
US4075691A (en) * 1975-11-06 1978-02-21 Bunker Ramo Corporation Communication control unit
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus
DE2659662C3 (de) * 1976-12-30 1981-10-08 Ibm Deutschland Gmbh, 7000 Stuttgart Prioritätsstufengesteuerte Unterbrechungseinrichtung
US4177513A (en) * 1977-07-08 1979-12-04 International Business Machines Corporation Task handling apparatus for a computer system
US4387427A (en) * 1978-12-21 1983-06-07 Intel Corporation Hardware scheduler/dispatcher for data processing system
US4318173A (en) * 1980-02-05 1982-03-02 The Bendix Corporation Scheduler for a multiple computer system
JPS57768A (en) * 1980-06-04 1982-01-05 Hitachi Ltd Message transmission and reception system between processor
JPS5798062A (en) * 1980-12-12 1982-06-18 Hitachi Ltd Communication system between processors
US4724517A (en) * 1982-11-26 1988-02-09 Inmos Limited Microcomputer with prefixing functions
JPS59146346A (ja) * 1983-02-10 1984-08-22 Fujitsu Ltd プロセス間通信方式
GB8309770D0 (en) * 1983-04-11 1983-05-18 Inmos Ltd Microcomputer

Also Published As

Publication number Publication date
WO1985002037A3 (en) 1985-07-18
US4783734A (en) 1988-11-08
US4758948A (en) 1988-07-19
JP2664662B2 (ja) 1997-10-15
EP0145244A2 (en) 1985-06-19
EP0141660A3 (en) 1985-10-02
WO1985002038A2 (en) 1985-05-09
EP0145244B1 (en) 1990-02-21
US4794526A (en) 1988-12-27
DE3481389D1 (de) 1990-03-29
JPS61500386A (ja) 1986-03-06
EP0149311A3 (en) 1985-09-25
WO1985002038A3 (en) 1985-07-18
EP0149311A2 (en) 1985-07-24
WO1985002039A3 (en) 1985-07-18
DE3481946D1 (de) 1990-05-17
WO1985002037A2 (en) 1985-05-09
WO1985002039A2 (en) 1985-05-09
JPS61500387A (ja) 1986-03-06
DE3483306D1 (de) 1990-10-31
EP0149311B1 (en) 1990-04-11
EP0145244A3 (en) 1985-09-25
EP0141660B1 (en) 1990-09-26
EP0141660A2 (en) 1985-05-15
GB8329509D0 (en) 1983-12-07
JPS61500385A (ja) 1986-03-06
JP2664663B2 (ja) 1997-10-15

Similar Documents

Publication Publication Date Title
JP2664664B2 (ja) マイクロコンピュータおよびプロセス実行方法
US5701495A (en) Scalable system interrupt structure for a multi-processing system
US6401155B1 (en) Interrupt/software-controlled thread processing
US5448702A (en) Adapters with descriptor queue management capability
US5606703A (en) Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures
US20050149665A1 (en) Scratchpad memory
GB2204974A (en) Programmable i/o sequencer for use in an i/o processor
EP0125044B1 (en) Microcomputer with interprocess communication
JPS62206658A (ja) 記憶管理装置
KR19990071464A (ko) 범용멀티소스인터럽트구성을갖는고체데이터프로세서
EP0338564B1 (en) Microprogram branching method and microsequencer employing the method
JP2594600B2 (ja) シングルチップマイクロコンピュータ
EP0376003A2 (en) Multiprocessing system with interprocessor communications facility
KR920005330B1 (ko) 마이크로컴퓨터 및 이와 상호 접속된 회로망
JP2585905B2 (ja) マルチタスク実行装置
KR920005298B1 (ko) 마이크로 컴퓨터
KR920005281B1 (ko) 마이크로 컴퓨터 및 데이타 전송방법
JPS6382536A (ja) チヤネル装置
JPH0594421A (ja) 情報伝送装置
JPH06274438A (ja) 入出力プロセッサ間通信処理機能を有する情報処理システム
JPH05143527A (ja) 優先制御回路
JPH11249912A (ja) 情報処理装置および情報処理方法
JPH0533409B2 (ja)
WO1996031824A1 (en) Operating system
EP0461219A4 (en) Serial interrupt in microcomputers