JPS61500387A - マイクロコンピユ−タ - Google Patents

マイクロコンピユ−タ

Info

Publication number
JPS61500387A
JPS61500387A JP59504133A JP50413384A JPS61500387A JP S61500387 A JPS61500387 A JP S61500387A JP 59504133 A JP59504133 A JP 59504133A JP 50413384 A JP50413384 A JP 50413384A JP S61500387 A JPS61500387 A JP S61500387A
Authority
JP
Japan
Prior art keywords
channel
input
microcomputer
output
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP59504133A
Other languages
English (en)
Other versions
JP2664664B2 (ja
Inventor
メイ,マイクル デイヴイツド
シエフアード,ロジヤー マーク
Original Assignee
インモス リミテツド
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 インモス リミテツド filed Critical インモス リミテツド
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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 マイクロコンピュータ 本発明はマイクロコンピュータに関するものであり、更に詳しくいえば、現在の プロセスの間でメツピーシ仏性を行うマイクロコンピュータに関するものである 。
発明の背摂 本願出願人のヨーロッパ特許明細書0113156は、複数の現在のプロセスを 動作させるためにプロセッサとメモリな蝙えるマイクロコンピュータについて記 述している。それは、通信チャネルを用いることにより出ツノプロセスにデータ を出力させ、かつ入力プロセスにデータを入力させることを許す。それは現在の プロレスのデスケジューリングと、スケジューリングを、プロセスを収集待機実 行に加えることにより許づ。入力プロセスはいくつかの代りのチャネルのうちの 1つを介して入力できるが、出力プロセスがそれのプログラムの対応する段階に いつ達したかを知るためにチャネルの状態を検′Piツるために入力プロセスを スクジコールせねばならない。
発明の目的 本発明の目的は、プロセスが複数の代りのチャネルのうちの一つを介してプロレ スがデータを入力することを誇フ改良したマイクロコンピュータを得ることであ る。
本発明の別の目的は、プロセスが複数の代りのチャネルのうちの一つを介してプ ロセスがデータを入力することを許し、かつ出力プロセスがそれのプログラムの 対応する段階に達することを侍っている闇に入力プロセスをデスケジュールさせ ることである。
l肚立11 本発明は、メモリと、複数の同時プロセスを実行するために構成されたプロセッ サとを備え、各プロセッサは、プロセッサにより逐次受註するための複数の命令 より成るプログラムに従って前記ブ0セスを実行し、前記プロセッサは(1)複 数のレジスタおよびそれらのレジスタの間のデータの転送に使用りるデータ転送 手段と、(2)各命令を受け、ブロセツ勺・レジスタの1つにその命令にF!l 迎する(市をロードする千〇と、(3)受けた各命令に応答して前記データ転送 手段とレジスタをi+制御し、プロセッサにその命令に従って動作させる制御i l器と、を備えるYイクロコンビよ−タにおいて、このマイクロコンピュータは :、(1)(a)1つまたはそれ以上のプロセスを識別して、プロセッサによる 少くとも1つの収集待機実行を形成する手段と、 (b)現在のプロセスの実行に割込むことによりプロセスをデスケジューリング する手段と、(C)プロセスを収集待機実行に加えることによりそのプロセスを スケジューリングする手段と、を備え、プロセッサがそれの処理時間を複数の同 時プロセスの間で共用できるようにするためのスケジューリング手段と、 (2)1つのプロセスと別のプロセスがそれぞれのプログラム・シーケンスにお ける対応りる段階にある時に、通信チャネルを使用することにより1つのブ〔1 セスから別のブOセスヘデータの伝送を行えるようにする通信手段と、データを 出力するために動作づる出力プロセス、およびデータ転送に使用するために1つ またはそれ以上のチャネルを識別するメツセージに応答してデータを入力するた めに動作する入力プロセス、を含み、前記通信手段は、 (a)複数のチトネルと、 (b)前記1つのプロセスが現在のプロセスである時に、データの伝送に含まれ るプロセスの1つによるメツセージ命令の実行に応答して、命令により識別され た各チャネルの内容を試験し、かつ前記手&を動作させて、データ伝送に含まれ でいる別のプロセスが対応するプログラム段階に達したことを示′を値をどのチ ャネルも含んでいないことが見出された鴎に現有のプロセスをデスケジュールす るように構成された手段と、(C) 入力プロセスが複数の代りのチャネルのう ちの1つを介して入力することを許す手段と、を含み、前記複数の各チャネルは 、そのチ11ネルを用いてデータの伝送を行う命令をあるプロセスが実行したか どうかを示す値を保持する格納手段を備え、前記許す手段は、 (1)入力プロセスによるメツセージ命令の実行に応答して代りの各チャネルの 内容を試験し、かつチャネルが、出ノjプロセスがそのチャネルを用いてメツセ ージ命令を実行したことを示す値を既に含んでいないBSに、入力プロセスがメ ツセージ命令を実行したことを示す値を各チャネルにロードする手段と、(2) 代りのチャネルの1つに131プるメツセージ命令を出力プロセスが実行した時 に代りの入力チャネルの1を選択するように構成された選択子〇と、(3)選択 されなかった代りのチャネルから、入力プロセスによりぞれにロードされた値を 除去する手段と、を備えるマイクロコンピュータを提供するものである。
なるべく、プロセスをデスケシコールづる手段は、チャネルを試験りる動作に応 答して、入力プロセスによるメツセージ命令の実行的に、そのチャネルを用いて 出力プロセスがメツセージ命令を実行したことを示1値を代りのチャネルがいず れも含んでいないものとすると、入力プロセスをデスケジュールするようにする 。
なるべく、前記スケジュール手段は、デスケジュールされた入力プロセスを示す 値を含んでいるチャネルを用いて出力プロセスによるメツセージ命令の実行に、 応答して入力プロセスを再スケジュールするようにする。なるべく、選択手段は 入力プロセスのデスケジュールに応答して、入力プロレスが再スケジュールされ るまで、代りのチャネルの1つの選択を遅らせるようにする。
一実施例においては、手9はメツセージ命令の実行に応答して、プロセスが代り の入力動作を開始したことを示す第1の特殊な値を、複数の代りのチャネルの1 つを介して、その入力プロセスに関3!するメモリ場所に格納するように構成さ れるようにする。
なるべく、代りの各チャネルの内容を試験づ゛る前記手段は、任意の1つのチャ ネルの試験が、出力プロセスがイのチャネルを用い【メツセージ命令を実行した ことを示tWを胃いたとすると、入力プロセスに11するメモリ場所に第2の特 殊な値を格納するように構成づる。
なるべく、プロセスに関連するメモリ場所の内容を検査し、前記第2の特殊な値 が置かれなかった時に入力プロセスをデスケジュールするための1段が設(プら れ、この手段は、プロセスにrA連するメモリ場所に第3と第4の特殊な伯を更 に置さ、それらの第3と第4の特殊な値のうちの1つは、プロセスがデスケジュ ールされて、そのプロセスが代りの入力プロセス中に含まれることを示づことを 示づようにする。なるべく、前記選択手段は、前記許りの各チャネルの内容を試 験し、かつ、そのチャネルを用いて出力プロセスがメツセージ命令を実行したこ とを示す値を含んでいる最初に試験されたチャネルを入力に対しで選択するよう に構成され、前記選択手段は、入力プロセスに関連するメモリ場所から前記第3 の特殊な値を除去するように構成され、それによりその選択手段は、出力プロセ スがそのチャネルを用いてメツセージ命令を実行したことを示す値を含んでいる かもしれないそれ以外の任危のチャネルを選択しないようにする。なるべく、チ ャネルの選択に応答して、入力プロセスに関連するメモリ場所にオフセット値を 格納し、そのチャネルが選択さ°れた時に、そのプロセスに封するプログラム・ シーケンスにおいて必要なオフセットを示す手段を含むようにづる。
なるべく、異なる優先度と待機実行を有する枚数のプロセス収集の1つにプロセ スを加え、またはその1つからプロセスを除去するスケジコーリング手段を含む ようにする。マイクロコンピュータという用語は全体として集積回路装置を基に した小型コンピュータにlll1連づるものであるが、そのコンピュータがどれ 位小型であるかについての何らの制約も宋されないことがわかるであろう。
図面の1!!IQ1な説明 以下、図面を参照して本発明を実施例について説明する。
第1図はマイクロコンピュータの主な1)徴を示すブロック図、 第2図はマイクロコンピュータの一部を1079図で更に詳しく示り゛もので、 とくに中央処理装置のレジスタ、データ経路および9術論理装置と、中央処理装 置とメモリの間のイ ターフェイスおよび通信リンクとを示し、 第3図はプロセッサレジスタと、マイクロコンピュータにより実行でる高優先度 プロセスのリストの作業域の間の関係を示し、 第4図は第3図に類似するが、高優先度のプロセスが実行されている間の低優先 度のブOI?スのリストを示し、 第5図はマイクロコンビコータで使用されるポインタ形式を示し、 第6図はマイクロコンピュータで使用されるプロセス記迷子の形式を示し、 第7図はマイクロコンビコータで使用される命令の形式を示し、 第8山は2台のマイクロコンピュータの間の直列リンクを通じて通信するための データパケットの書式を示し、 第9図は2台のマイクロコンピュータの間の直列リンクを通じて通信するための 確認応答バケツ!・の書式を示し、 第10図はマイクロコンピュータの4つのぬ列リンクを、マイクロコンピュータ の残りの部分とのインターフェイス装置とともに示し、 第11図は1つの直列リンクの出力チャネルと入力チャネルで用いられる信号を 一層WT L、 <示し、第12図は直列リンクの出力チトネルを受認詳細に示 し、 第13図は直列リンクの入力チャネルを更に11絹に示し、 第14図は直列リンクの出力グーヤネルと入力チャネルを入力端子と出力端子へ 接続づるリンクインターフェイスを示し、 第15図は1台のマイクロコンピュータにおける2つのプロセスの間の通信を行 う動作を15(a)〜15(e)の順序で示し、 第16図は異なるマイクロコンピュータで行われる類似の優先度の2つのプロセ スの間の直列リンクを0第17図は、出力プロセスが出力をスタートする前に入 力プロセスが「別の入力」をスタートさせるような、異なるマイク[1コンピユ ータにお1′lる2つのブト1セスの間の直列リンクを介する通信を行う動作を 17(a)〜17(f)の順序で示し、 第18図は、出力プロセスが出力動作をまずスタートさせ、それに続いて入力プ ロセスが「別の入力」動作を実行するような、異なるマイクロコンピュータで行 われる2つのプロセスの間の直列リンクを介する通信を行う動作を18(a)〜 18(d)の順序で示し、 第19図は、出力プロセスが出力動作を開始する前に、その出力プロセスと同じ 優先!良を有する入力プロセスが「別の入力」動作を開始するような、同じマイ クロコンピュータで行われる2つプロセスの間で通信を行う動作を19(a)〜 19(Q)の順序で示し、第20図は、出力動作に含まれている高優先度のプロ セスYによって低優先度のプロヒス×が直列リンクを介して割込まれる場合の関 連するレジスタ内容を20 (a) 〜20 (C)の順序で示し、第21図は 、同じマイクロコンピュータで「別の入力」を行う高優先度のプロセスXと、出 力動作を行う低瞬先度のプロセスrYJの間の通信中の関連するレジスタの内容 を21 (a)〜21 (c)の順序で示し、 第22図は、本発明に従ってマイクロコンピュータ間の通信を行う、異るili 調を有するネットワークを示す。
tE過な 施例のし明 この例で説明するマイクロコンピュータは、プロセッサと、RA Mの態様のメ モリと、外部通信を11えるようにするリンクを有し、1枚のシリコンチップで 構成された集積回路を備える。このマイクロコンビコータの主な要素は、第1図 でp形井戸相補MO3技術を用いている1枚のシリコンデツプ11の上に示され ている。中央処理装置(CPU)12にいくつかの読取り822専用メtす(R OM>13が設けられている。
このROM13は、インターフェイス制御ロジック15により制御されるメモリ ・インターフェイス14に結合される。CPU12は粋術論理装置(ALU>と 、レジスタと、第2図に詳しく示されているデータ経路とを含む。CPU12と メモリ・インターフェイス14はバス16へ接続される。バス16はチップ11 上の素子の間の相互接続を行う。サービス装置17に複数の入力ビン18が設( プられる。このマイクロコンピュータにランダムアクセスメモリ(RAM)19 とROM 20が設けられる。チップにおけるメモリの容量は、プロセッサ12 が外部メモリなしで動作できるように、1にバイトより少くない。チップ上のメ モリの容儀はなるべく少くとも4にバイトにする。
外部メモリインターフェイス23が%9+プられるこの外部メモリインターフェ イスは、随意の外部メモリへ選択するための複数のピン24へ接続される。ネッ トワークを形成するためにマイクロコンピュータを他のコンピュータへ結合でき るようにするために、入力ビン26と出力ビン27を有づる複数の直列リンク2 5が設けられる。1つの直列リンクの入力ビンと出力ビンは、各自の専用の1本 の一方向接続線により、第22図に示すように他のマイクロコンピュータの直列 リンクの対応する出力ビンと入力ビンへ接続できる。各直列リンクは、プロセス ・スケジューリング・ロジックを備える同期論理装N10に接続される。
第1図に示づブロック図は、ヨーOツバ特許出願第83307078.2号、特 許出願昭和58年第221455号、米国特許出願第552601号、第552 602号、第553027号、第553028号、第553029号に含まれて いるブロック図に対ボする。説明の不必要なくり返えしを避1ノるために、その マイクロコンピュータの構造と動作の詳細については以下に説明しないが、上記 特z1出願におtプる記載を参考のためにここに含ませる。
この実施例はT rasputer (インモス・インターナショナル([N  M OS I nternational) plcの商標〕マイクロコンピュ ータを改良したものである。前記特許出願に記載されている特定の実施例におい ては、全てのプロセスは同じ優先度を有するものとして取り扱われている。ある プロセスと別のプロセスの間で通信されるメツセージは、引き続く同期動作の間 で一様なメッセージ長を有し、2述されている例においてはメッセージ長は1託 でありた。あるプロセスがいくつかの別の入力チャネルのうちの1つから入力す ることをめられたとすると、出力チャネルが可能なチャネルのうちの1つのチャ ネルの出力動作を開始するまでそれらのチャネルをテストするために、そのプロ セスのスケジュールを保持する必要があった。
この実施例は、種々のプロセスに異なる優先度を割当てることができるようにし た改良についてのものである。この実施例により、可変長メツセージをプロセス の間で行えるようにする。各メツセージは、バイトのような1つまたはそれ以上 の標準ビット長単位より成る。更に、この実施例により、出力プロセスを持って いる間に、スケジュールを保持する必要なしにいくつかの別の入力チャネルのう ちの1つのチャネルから入力プロセスを入力させるようにする。
マイクロコンピュータの全体の構成は、前記特許出体として類似づる。以下の説 明においては、類似の名称が、前記特許出願にJ3ける実施例に対応する部分に 与えられる。メモリは、ポインタにより示すことができるアドレス可能な場所を 有づる複数のプロセス作業域を設ける。メツセージ通信は、同じマイクロコンピ ュータにおけるプロセス間通信の場合には、アドレスぶ)を介して行うことがで きる。種々のコンピュータの間のプロセス間通信を行うために、入力チャネルお よび出力チャネル(ここではハード・チャネルと呼ぶ)が直列チャネルで行われ 、それらのチャネルは、メモリに設けられているソフト・チャネルに類似するヤ リ方でアドレスすることもできる。
以上説明した改良を実施するために、マイクロコンピュータの構成と動作を種々 変更することが必要であり、以下の説明は、それらの改良を行うために変更が前 記特許出願に2載されている例にお1ノるように、記述されている特定の語調は 16ビツトであるが、8.16.24または32のようなQ pまたはその他の 語調を使用できることがわかるであろう。更に、この場合には、種々の話調のマ イクロコンビコータが、それぞれの独立の語調とは無関係に、互いに通信できる ようにそれらのマイクロコンピュータを接続できる。
この例では、同じマイクロコンピュータ、または異なるマイクロコンピュータの 間、におけるメツセージ通信は標準ビット艮の1つまたはそれ以上のメツセージ 中位を送ることにより行われる。この例においては各メツピー2111位は8ビ ツトより成り、それにより1バイトを形成する。このことは、メモリ内でバイト を識別できることが必要であることを意味づる。プロセッサはメモリを語でアク セスし、全てのバイト動作がインクというのはデータの1つの市である(この特 定の例では16ビツト)、最下位ビットはバイト・セレクタとして機能し、それ 以外の15ビツトは詔のアドレスを与える。このバイトセレクタを表すために必 要なピットの数は、マイクロコンビコータの語調に依存する。16ビツト機の場 合には、バイト・セレクタとして1ビツトだけを必要とする。しかし、24ピツ トまたは32ビツトのマイクロコンピュータの場合にはバイト・セレクタは2ピ ツト必要であり、80ピツト・マイクロコンピュータではバイト・セレクタは4 ビツトa要であることがわかるであろう。バイトではなくて語を識別づるために ポインタが用いられる場合には、その詔の最下位バイトに対するポインタが用い られる。
ポインタは2の補数の符号価として取り扱われる。
このことは、ポインタ中の最上位ピットが1であると、最上位ビットが負とされ 、残りの全てのビットが正の数を表すことを意味する。最上位ビットがOである と、ポインタ中の全てのビットは正の値を表すものとされる。これにより、標準 比較機能が数値に対して用いられるのと同様にして、ポインタ鮪に対して標準比 較機能が用いられる。
通信チャネルの状態にとくに閏達しである特殊な動作がめられることを示すため にある値が反転されるない。
以下の記述においては、それらの備および他の値を表すために下記のような名称 が用いられる。
HostNeg 負ノ最大値 (最上位ビットが1で、残 りのピットがすべて0) HostPos 正の最大値 (最上位ビットがOで、残 りのビットがすべて1) HachineTRtlE I Hacl+1neFALSE−O NOtPrOCeSS、 p HO3tNeQ[nabling、p Host Neg41Waitin!1.p HO5tNeQ+2Ready、 p Ho 5tNeo+3前記特許出願の例におけるように、各プロセスは、それににり取 り(及われるロールlし変数と一釣的な傭を保持するために用いられるメモリ内 の語のベクトルより成る作業域を有することができる。プロセス作業域のための 1!]の場所を指すため(作業域ポインタWPTRが用いられる。各プロセスの 作業域はいくつかの詔より成るから、バイト・セレクタを含む必要はない。した がって、プロセスの優先度を表すためにバイト・セレクタ・ピットを用いること が可能である。
このようにして、各プロセスを第6図に示す種類の「プロセス記述子」により識 別できる。最下位ピットはプロセスの優先度を示し、それより上位の15ビツト はプロセス作業域を識別するメモリ内の詔を示す。
ここで説明している例では、マイクロコンピュータは2つの可能な優先度のうち の1つを各プロセスに割当てる。高い優先度の成分には名称p ri== Oが 与えられ、低い優先度のプロセスは名ThPr1=1を有する。
したがって、各プロセス記述子は、作業域ポインタ\VPTRの「ビットワイズ (bitwise)ORJとブOt′ス優先度をとることにより形成される1つ の語を備える。同様に、作業域ポインタWPTRは、プロセス記述゛子の[ごッ トワイズANDJとN0TIを形成することによりプロセス記述子から得ること ができる。プロセスの優先度は、プロセス記述子の[ビットワイズANDJと1 を形成することにより得ることができる。
CPUデータ経路およびレジスタ 中央処理装置12およびそれの動作は第2図を参照することにより十分に理解さ れるであろう。
CPU12はXバス、Yバス、Zバスおよび双方向データバス31に接続される 粋術論理装置 (ALtJ)30とWJ数のデータ・レジスタを含む。それらの レジスタの動作と、バスとの相互接続は、32で線図的に表されているスイッチ により制御され、かつROM13に含まれているマイクロ命令ブOグラムから冑 られる信号により制御される。、CPUとメモリの間の通信は、メモリ・インタ ーフェイス14に遵する一方向アドレス経路33とデータ31を介して行われる 。
@2特z1出願におけるように、各命令は第7図に示す形式を右する8ビツトよ り成る。そのうちの4ビツトは命令の所要の機能を表し、残りの4ビツトは各デ ータに割当てられる。プロセスのためのブOグラム・シーケンスから得た各命令 は命令バッファ34へ与えられ、その命令はデコーダ35により捏合される。そ のデコーダの出力は状態マルチプレクサ36を介して、マイクロ命令ROM13 をアドレスするために用いられるマイクロ命令レジスタ37へ与えられる。、命 令バッファ34と、デコーダ35と、状態マルチプレクサ36と、MIR37と 、マルチプレク1ノROM13と、スイッチ32との動作は前記特許出願に記述 されているのと全体として同じである。
この実施例は優先度がOのプロセスと、優先度が1のプロセスとの2組のプロセ スを取り扱うように構成されているから、2つのレジスタ・バンクが設けられる 。優先度1のプロセスのためにレジスタ・バンク38が設けられ、類似のレジス タ・バンク39が優先度Oのプロセスのために段【プられる。両方のレジスタ・ バンクは類似のレジスタ群を有し、それらのレジスタはX、Y、Zのバスとデー タ・バスへ同様に接続される。簡単にするために、レジスタと、それらのレジス タの接続はレジスタ・バンク38についてのみ詳しく示しである。特定の優先度 を割当てられている2つのレジスタ・バンクに加えて、CPUは定数ボックス4 0と、レジスタ・バンク・セレクタ41と、第2図に示されているいくつかの他 のレジスタとを含む。それらのレジスタは優先度1のプロセスと優先!1lIO のプロセスに共通である。それらのレジスタは次のとおりである。
略 記 号 し ジ ス タ ロセスに ゛ しン゛ MADE)R必要なメモリ位置のアドレスを有するメモリアドレスレジスタ42 ゜ D^IAO1lT データバス31上のデータをメモリに供給するためのレジス タ43.。
!B メモリからの命令をシーケンシャルに受けとる命令バッファ34゜ TEHP RIG 一時レジスタ44.。
PROCPTRREG プロセスポインタを保持するレジスタ45(優先度は示 さない)。
PROCDESCREG プロセス記述子を有するレジスタ46゜PRIFLA G 現在実行されているプロセスの優先度がOか1かを示すための1ビツト レジスタ、即ちフラグ47゜ブOセッ サがプロセスを実行していないとき は、1にセットされる。
PROCPRIFLAG プロセスの優先度を示すための1ビツトレジスタ、即 ちフラグ48.。
優先度1のためのバンク38にお(る レジスタ TREG 一時レジスタ49゜ IPTRREG レジスタ51によって示される任意のプロセスの命令ポインタ を保持する レジスタ50゜ WPIRRIG 現在実行中のプロセスまたはV]込みプロセスの作業域ポイン タ(WPTR)を保持するレジスタ51゜ BPTRREG 実行を待機中の優先度1の複数のプロセスのリストの最後のプ ロセスの作業域ポインタを保持するレジスタ52゜ FPTRREG 実行を特機中の優先度1の複数のせずのリストの先頭のプロセ スの作業域ポインタを保持するレジスタ53゜ AREG ALtl 30についてのオペランドを保持する第1のレジスタ54 .、レジスタ55.56とともにスタックを形成する。
BREG 前記スタックを形成する第2のレジスタ55゜ CREG 前記スタックを形成する第3のレジスタ0REG 命令バッファ34 内の命令がら導びかれるデータを受取るためのオペランドレジスタ57゜−的レ ジスタとして用いられる。
5NPFLAG 1ビツトレジスタ、即ち58.1にセットされると現在実行中 のプロセスが、現在実行中の命令の完了時にスケジュール解除されるべきである ことを示す。
C0PYFLA0 1ビツトレジスタ、即ちフラグ59.1にりをメモリへある いはメモリからコピーしていることを示す。
優先度0のプロセスのためのレジスタ・バンク39は、優先度1のプロセスにつ いて先に説明したレジスタ・バンクと同じである。以下の説明においては、接尾 数〔1〕は優先度が1のバンクに関連するレジスタを示し、接尾数(0)はレジ スタが優先度0のバンクに関することを示す。優先度がわからない的は接尾詔( Pri)は、成分に対づる適切な優先度のレジスタが用いられることを示す。
それらのレジスタの語調は、この場合には、1ビツト・フラッグ/17.48. 58.59から16ビツト隔てられる語調である。1度にただ1つの命令を保持 するように構成されるものであれば、命令バッファは8ビツト長とすることがで きる。
A、B、Cのレジスタ・スタック54.55.56はほとんどの演算動作および ほとんどの論理動作に対するソースおよび宛先である。Bレジスタに存在してい る内容をCレジスタヘロードし、Aレジスタの内容を8レジスタヘロードをして から、Aレジスタにある値をロードするように、それらのレジスタは構成される 。同様に、Aレジスタから取り出した値を格納させると、Bレジスタの内容がA レジスタへ動がされ、Cレジスタの内容が8レジスタへ動かされる。
TREG49は、データのブロックのコピーをめるある通信命令とは別の全ての 命令の実行中に値を一時的に保持するために利用でき、その場合には、データの ブロックのコピーが終った時に実行づべき動作を示すためにTREG49が用い られる。
両方のレジスタ・バンク38.39の0REG57は、両方の優先度のプロセス に対して、命令のうち0レジスタへ送られる部分が、適切なマイクロ命令の発生 に使用するために、デコーダへ達するように、デコーダ35に接続される。両方 の優先度のバンクのSNP FLA05BとC0PY FLAG59も、任意の 時刻にプロセッサにより実行すべき次の動作の決定において、いずれかの優先度 のプロセスに対するそれらのフラグの設定をマイクロ命令が弯出に入れることが できるように、状態マルチブレクリ36へも接続される。あるプロセスの作業域 ポインタ(WPTR>が、それからそのプロセスの〇−カル変数をアドレスでき るベースとして用いられるから、作ffi域ポインタにより示される場所からの オフセラ]・値を計nすることが時に必要である。定数ボックス4゜がYバスに 接続され、マイクロ命令ROM13の制御の下に定数値をそのバスに冒くことが できるようにづる。それらはプロセス作業域内のオフセット場所を指すために使 用できる。レジスタ・バンク38または39の一方または他方を選択するために 、レジスタ・セレクタ41はPR,I FLAG47と、PROCPRI FL AG48と、マイクロ命令ROM13とから入力を受ける。レジスタ・バンク・ セレクタからの出力は状態マルチプレクサ36と、デコーダ35と、スイッチ3 2とに接続される。マイクロ命令ROM13の出力に応じて、セレクタはPRI  FLAG47またはPROCPRI FLAG48により示されているレジス タ・バンクを選択する。
プロセス 業 のだ のメモリ ツで 前に!特許出願に記載されている例と同様に、マイクロコンピュータはいくつか のプロセスを時分割式に一緒に実行する。−緒に実行されるプロセスは同時プロ セスと呼ばれ、任意の時刻に実行されているプロトスは現在のプロセスと呼ばれ る。各同時プロセスは、そのプロセスにより取り扱われるローカル変数と一時的 な値を保持するために、作業域と呼ばれるメモリ領域を有する。作業域の第1の ローカル変数のアドレスは作業域ポインタ(WPTR)により示される。これは 第3図に示されている。第3図においては、4つの同時プロセスL、M、N、0 が作業域60.61゜62.63を有する。この図には作業域60が訝しく示さ れており、W P T RRE G 51に保持されている作業域ポインタは、 この例では10000として示されているアドレスを有する単一語場所である零 場所を示す。このプロセスのための他のローカル変数は、作業域ポインタにより 示されている語から正のオフセット・アドレスとしてアドレスされる。18所か らの小さい貨のオフセットを有する作業域fA所のいくつかはスケジューリング と通信を行う目的のために用いられる。この例においては別に3つの詔場所65 ゜66.67が示されている。それらの詔場所は負のオフセラl−1,2,3を 有し、W P T Rにより示されている零場所の下に示されている。それら3 つの場所は次の通りである。
オフセット オフセット名 場 所 名−11ptr、s 1ptr 1oca tion−2Link、s Link 1ocation−35tate、s  5tate location場所65は、あるプロセスが現在のプロセスでは ない時に、そのプロセスが現在のプロセスとなった場合にプロセスにより実行す べき次の命令を示すポインタ(IPTR)を保持するために使用される。場所6 6は、実行を持っているプロセスのリンク・リストすなわち行列上の次のプロセ スの作業域ポインタを格納するために用いられる。場所67は、別の入力動作を 実行しているプロセスの状態の指示を含むために、またはデータのブロックをコ ピーするためのポインタとして通常使用される。これについては後で詳しく説明 りる。
このメモリはプロセス間通信のための詔場所も与える。第3図はそのようなソフ ト・チャネル70を示す。
メモリ内の1つの詔により与えられるソフト・チャネルを通じての通信に加えて 、直列リンクを介しての外部通信も行うことができる。
直列リンク 前記4?iK’F出願に2載されているように、データは所定のプロトコルを有 するデータ・バケツ1−の形で一方のマイクロコンピュータから他方のマイクロ コンビコータへ送られる。データの受取りは確認応答パケットの送信により示さ れる。この特定の例においては、データは第8図に示すような形で送られる。各 パケットはけ準のデータ中位より成る。この場合にはそれは1バイト(8ビツト )より成る。データ・パケットはそれぞれ1である。2つのスタート・ピットで 始まる。そのスタート・ピットの後にデータバイトが続き、0であるストップ・ ピットで終る。第8図に示すように各パケットの送信の後で、そのパケットを受 ける直列リンクの入力チャネルは、それに組合わされている出力チャネルへ、第 9図に示すような形式の確認応答パケットを送ることを知らせるように構成され る。このパケットは1で始まり、Oで終る2ビツトのめにプロセスにより実行さ れる命令は、そのようなデータのパケットを2個以上含むことを要求することが あり、したがって命令により要求されるメツセージを終るためにはどれ位の数の データの標準単位すなわちバイトを送るべきかを命令は指示する。第10図に示 されている例においては、各直列リンク70,71゜72.73が入力ピン26 と出力ピン27を有しているのが示されている。各リンクは並列バス75.76 によりメモリ・インターフlイス15に接続される。
それらのリンクは線77.78によりインターフェイスa、IJ mロジック1 5へも接続される。それらの線77.78は読出し要求信号と書込み要求信りを それぞれインターフェイス制御ロジックへ与える。制御ロジック15は「DAT A VALIDJ信号を線79を介してそれらのリンクへ与えるように構成され る。
各リンクは状態出力信号を線80を介して第2図の状態マルチプレクサ36へ与 えるように構成される。Zバスは各リンク70〜73へも接続されるとともに、 線81を介して同期ロジック10へ接続される。182はマイクロ命令ROM1 3からの出力を同期ロジック10へ与え、線83はこの同期ロジックからの信号 を状態マルチプレクサ36へ与える。リンクがプロセッサが動作することをめた ことを指示した時に、リンクからの要求信号を伝えるために184は各リンクを 同期ロジック10に接続する。要求信号をプロセッサからのリンクへ与えるため に、l!85がマイクロ命令ROM13を各リンクに接続する。
舅11図は1つのリンクを詳細に示す。このリンクは出力チャネル90と入ノコ チャネル91を有する。それら両方のチャネルはリンク・インターフェイス92 に接続される。このリンク・インターフェイスは第14図に詳しく示されている 。リンク・インターフェイス92は入力ピン26と出力ピン27に接続され、か つ、第8.9図を参照して先に、説明したように、データ・パケットと確認応答 パケットを受け、または送るように構成される。出力チャネル90と、入力チャ ネル91と、リンク・インターフェイス92とには共通りロックからクロック・ パルスが全て供給される。出力チャネル90はリンク・インターフェイスからo UTPUT ACK信号94を受け、リンク・インターフェイスへ0UTPLI T DATAをバス95を介して、および0UTPUT DATAVALID信 号を線96を介して供給するように構成される。同様に、入力チャネルはリンク ・インターフェイス92からINPUT DATAをl!i!97を介して受け 、かつ1NPUT DATA VALID信号を1a98を介して受1ノ、リン ク・インターフlイスへINPLITACK信号を線9つを介して送るように構 成される。
リセッ1〜線101が出力チャネル90と、入力チャネル91と、リンク・イン ターフェイス92とに接続される。
バス76に与えらねたアドレスからコピーすべきデータの続出し要求を線77を 介して行うことにより、指定されたメモリ場所から所定数のデータ・バイトを出 力させるように出力チせネル9oは構成される。データは、線79を介しての0 UTPUT DATAVALID信号とともに、並列バス75を介してそのチャ ネルへ供給される。
同様に、入力チャネル91は、バス76を与えられたメモリ・アドレスにおける 書込み要求を1278に生ずることにより、メモリのある指定された宛先アドレ スへ指定された数のデータ・バイトをま込ますることができる。
プロセッサと通信覆るために、両方のチャネル90.91はZバスに接続される 。マイクロ命令ROM13は線85旦を介して0UTPUTREQUESTを出 力チャネルに対して行うことができる。入力チャネル91の場合には、マイクロ 命令ROM13は3種類の信号をバス85へ与えることができる。それはINP LIT REQUEST86回またはENABLE信号85旦あるいは5TAT USENQU IRY85dを行うことができる。同期ロジック10に接続され ているバス84は、出力チャネル90からの0tJTPUT RUN REQU EST84回と0UTPLJT PRIORITY信号84旦を伝えることがで きる。そのバス84はINPUTPRIORITY信号84旦とともにINPL JTREADY REQUEST84旦を送ることができ、または入力チャネル 91からINPLJTPRIORITY信号トドもにINPUT RLJNRE QUEST84旦を同期ロジック10へ送ることができる。
入力チャネル91は5TATLIS OUT信号も線80へ与える。
そ11らの信号のは態については後で詳しく説明する。
第12図は出力ブヤネル90を更に詳しく示す。このチャネルを用いてプロセス の優先度を示すために用いられる優先度レジスタ110へ2バスが接続される。
Zバスはバイト・カウンタ111とポインタ・レジスタ112へも接続される。
ポインタ・レジスタ112は、バス76上で指示すべきデータのソースのアドレ スを含むために用いられる。出力チ1!ネルLt転送状態マシン113も含む。
直列リンク内の各状態マシンは、マシンの現在の状態を保持する状態レジスタと 、プログラム可能な論理アレイとで構成される。その論理アレイは、状態レジス タのための新しい値と、ジスタの値と、状態マシンへの各種の入力信号とに応答 する。
状態マシン113は4つの入力を有づる。それらの入力は線85旦上の出力要求 と、B 101上のリセットと、線94上の出力確認、応答と、11114上の カウント零とでδ5る。メツセージ出力の初めに、バイト・カウンタ・レジスタ 111はメツセージ内の送られるべきバイトの総数を示゛ケが、各バイトが送ら れるにつiで、レジスタは、状1gマシン113からのデカラント出力信号11 5の制御の下に内容を減少し、送るべきバイトが残らなくなった旧にカウント零 信号114を発生づる。デカラント出力115に加えて、状態マシン113は読 出し要求出力を線77へ5え、実行要求を線116へ与え、インクポインタ<  1ncpointer)を線117へ与える。ポインタ・レジスタ112は、最 初に送るべき最初のバイトへのポインタを最初に含むが、線117上の信号のた めに、各バイトが送られるにつれてポインタが増加される。
出力端子116は実行要求信9線84bと、優先度レジスタ110から線119 を介して加えられる別の入力を受けるANDゲート118とに接続される。この ようにして、実行要求が1I84bにおいて行われる時に、出力プロセスの優先 度を線84旦上で示ずことができる。
メモリ・インターフlイスからバス75と線79へ与えられた信号はチャネルを 直接通って、I295と96を介してリンク・インターフェイス92へ与えられ る。バス75と線95は送るべきバイトの値を送り、l1179と96は出力デ ータ妥当信号を送る。その出力データ妥当信号は、いま正しく送られたデータが データの全バイトを表すことを示すためにメモリ・インターフェイスにより発生 される。
転送状態マシン113に対する一連の遷移状態は次の通りである。
状態 入力 出力 次の状態 any Re5et Idle Idle △Ou+putreq IdleIdle O+、+tputreq  5endByteO3en+JByteOReadReq 5endByte ISendbytel I+cPointer Wa 1toutputAc) 。
WaitO’atputACk Δ 0utputAck WaitOutpu tArkWaitOutputAck 0utput八Ck DecCount  CheckFirlist+8dCheckFinished ΔCount 7ero 5endBytcOCt+eckFinished C0IInt7 0rORur+IIequest Idle第13図は入力チャネルを一層詳し く示すものである。この入力チャネルは優先度フラグすなわち優先度レジスタ1 20と、バイト・カウンタ・レジスタ121と、ポインタ・レジスタ122とを 含み、それらのレジスタは全てZバスに接続される。このチャネルのための入力 信号と出力信号は3つの状態マシンにより制御される。それらの状態マシンはT RANSFER状態マシン125と、ALTERNAT I VE状態マシン1 26と、READ状態マシン127とで構成される。各状態マシンは同じソース 93からクロック・パルスの入力を受1プる。
、TRANSFER状態マシン125は、チャネルを介してのメモリ場所へのメ ツセージの入力を制御ツ゛る。メツセージを入力するために必要な命令をプロセ ッサが実行すると、プロセッサは、入力すべきバイトの数の指示をバイト・カウ ンタ・レジスタ121へロードし、メツセージをコピーすべき第1のメモリ場所 へのポインタをポインタ・レジスタ122へO−ドし、入力命令を実行づるプロ セスの優先度の指示を優先度フラグにセットする。それから、プロセッサは線8 5bに対して入力要求を行う。それは転送状態マシン125への入力の1つを形 成する。バイト・カウンタ・レジスタ121は、入力メツセージの各バイトが受 けられるにつれて、fHi2に零に達するまでカウントが減少させられるように 構成された減分器を含む。同様に、ポインタ・レジスタ122は、各バイトが受 けられるにつれて、入力メツセージの次のバイトのためのメモリ宛先アドレスへ ポインタが増加するように増分器を含む。
転送状態マシン125は1101がらセット入力を線128を介して受()、入 力要求をに’85bがら受け、READY信号をREADY状態マシン127が ら線129を介して受ける。転送状態マシン125は、バイト・カウンタ121 を減少させるために、出力DECCOUNTを線130に出寸。同様に、転送状 態マシン125は、ポインタ・レジスタ122の値を増加させるために、出力I NGPOINTERを線131に生じ、出力書込み要求を線78に与え、入力A CK@199に与え、RUNREQをl184eに与える。
転送状態マシン125の一連の状態は次の通りである。
anV Re5et Idle Idle Δlnmtrea IdleIdle Inputreq Awai tByt。
AsaitByte ΔReady Awai tByteMzitByte  Ready WriteRequest Checkrinished口tPO +nter DecCount CheckFinishcd △countzero A動1tByteCbe ckrinishcd Count2ero RunReq IdleREAD Y状態マシン127は簡単なフリップ70ツブの形で構成でき、データのバイト がリンク・インターフェイス中の入力レジスタにより受けられたが、まだ確認応 答しないかどうかを示すために用いられる。このREADY状態マシン127は リセット入力端子101を有し、更に妥当な入力バイトがインターフェイスの入 力レジスタで受けられた時に、リンク・インターフェイスから得た入力信号入力 データ妥当を!298に有する。また、状態マシン127は、データのバイトが リンク・インターフェイスにより受けられた時にその状態マシンが1つの状態に セットされ、それから入力ACK信号が!!i!99にレフトされた的にリセッ トされるように、入力ACK信号!4399から得られる入力132を有する。
状態マシン127は1つの出力READYを線129へ与える。その出力REA DYは転送状態マシン125への入力と、ANDゲート133への1つの入力と 、代替状態マシン126へのREADY入力134とを形成する。
READY状態マシン127の一連の状態は次の通り遷移 any Re5et DataAbSelltDataAbsent Δ In 1XItDataVal id DataAbserttDataAbsent  1npulDataVal id Ready DataPresen電代替 状態マシン126は、いくつかの代替入力チャネルのための命令を実行するプロ セスを取り級う。
READY入力134に加えて、代部状態マシン126はリセット人力101と 、可能化入力85Gと、状態質問入力85dとを有する。代替状態マシン126 はREADYREQ出力135を発生して、それを信号線84cへ与え、更に、 出力REPLYを線136に生ずる。この出力はANDゲート133への第2の 入力を形成する。出力線135と84eはORゲート137への入力を形成する 。このORゲートはANDゲート138へ出力を与える。このANDゲートは入 力チャネルを用いるプロセスの優先度を示す入力もl11139から受Cブる。
線85上の入力信号を用いることにより、プロセッサは入力要求を行うことがで き、またはチャネルを可能状態にでき、あるいは状態質問を行うことができる。
それらについては後で評しく説明する。リンクはRUN要求またはREADY要 求を線84へ与え、READI!求またはRUN藍求が行われた時に優先度が線 84d上に示される。ANDゲート133を設けることにより、READY状態 を1380上に指示できる。
式台状態マシン126の一連の状態は下記の通りである。
遷移 状態 入力 出力 次の状態 all)! Re5Qt DiSatlIOfIDisabled 5tatL IS[Mtlir’yDisabledDisa!+Ied △5tatusE riquiryハEnablezVeady ReadyRaq Disabl idDisabled △5tatUSEnQtlir)’ 八Enablel Veady [nabledDisabled △5talus[nquiry  八ETtable DisabledEnable 5tatusEr4ui ry Reply DisabledEnabled △5tatustnqu +ry A Ready ReadyReq D!3a!fledEnable d Δ5tatLISEnQtliry八Ready[nable+j出力チャ ネル90と入力チャネル91はプロセッサおよびメモリと通信するが、第8.9 図に示すプロトコルに従って出力すべきデータ・パケットまたは確認応答パケッ トを作り、かつ、別のマイクロコンピュータにより出力されたそれらのパケット のいずれかを受けて、認知するのはリンク・インターフェイス92である。この リンク・インターフェイスはビット・カウンタ141を有する出力状態マシン1 40と、ビット・カウンタ143を有する入力状態マシン142とによって構成 される。そのリンク・インターフェイスは出力レジスタ144も含む。この出力 レジスタは出力データ・バス95に接続され、データのバイトを受曝プるように 構成される。入力データを受けるために入力レジスタ145が入力ビン26に接 続される。このレジ□スタ1/15は入力データ・バス97を介してメモリ・イ ンターフェイスに接続される。リンク・インターフェイスは2つのレディ指示3 146.147も含む。それらの各レディ指示器はフリップフロップを有する。
リンク・インターフェイスは2つのラッチ1718.149も含む。各ラッチも フリップフロップを有する。リンク・インターフェイスは3個のANDゲート1 50,151,152とORゲート153も含む。出力データ・マシン140は 下記のような複数の入力および出力を有する。
LLL!L−l3J 1−一カ 160 Re5et 信号線101に接続したリンクインターフェイスリセット 161 oataoo データ転送初期化162 Countzero ビット カウントがOかどうか164 Loadcount ビットカウンタの伯を転送 されるべきビット数にセット 165 oeccount ビットカウンタを1だけ減らす 166 0neout 出力ビン27を1にセット167 0ataout 出 力ビン27をシフトレジスフの最下位ビットにセット 168 5hiftout データレジスタを1位置だけシフト 169 [)taQOne データ転送完了170 ACkgOne 確認応答 信号転送完了入力状態マシン142は次のような入出力を右する。
173 Covntzero ビットカウントがOかどうかテスト・出カニ 174E開dcOIJr+t ビットカウンタのめを受信すべきビット数にセッ ト 175 oeccount ビットカウンタを1だけ減らす176 5hift in ビンから最下位ビットを取り込んでデータレジスタを1位置だCノシフト 177 5etdataready データ転送完了の受信178 5etac ttrωdy 確認応答信号転送完了の受信出力状態マシンの一連の状態は以下 のとおりである。
1、any Re5et 1dle 2、1dle (△Datago) ハ(ΔAckgo) 1dle5、ack flag Ackgr+ne、 1dle6、 dataflag O器間t  databitstoadcount 7、 databits △countzero DeCCCAJnT dat abitsSbifto田 Dataout 8、 databits Countzero Datagone 1dle入 力状態マシン142の一連の状態は以下のとおりである。
入力状態マシン142 1、 any Re5et 1clle2、1dle ΔDatain 1dl e3、1dle oatarn 5tart4、5tart ΔDalaln  5etAckready 1dle5.5tart Datain LoadC ount databits6、 databits △Countzero  Sl+1ftin databitsoeccount ?、 databits Countzero 5hiftin dataen d8、da[aend 5etDatready iclle出力欄の下側に特 定の出力が記載されている両方の状態マシンに対して、その特定の出力を示すた めに信号1が発生されることをこれは意味する。他の全ての時には記載されてい ない各出力の信@値は零の形である。入力側の下に記載されている入力を除く全 ての入力は照視される。記号\ハへおよび△はそれぞ41ブール演WAND、O R,NOTを示すために用いられる。
ラッチ148の目的は出力動作を制aすることである。データのバイトが出力さ れると、出力端子、169からの信号が、入力状態マシンから出力端子1781 Jsらの確認応答信号によってラッチ148がセラ1−されるまで、それ以上の 出力を阻止するためにANDゲート150をυjnする状態にラッチ148をセ ットする。同様に、ラッチ149は入力動作を制御する。
データが受けられると、線177上の信号がラッチ149をセットして、確認応 答が送られるまでデータが入力されたことを思い出させる。それはANDゲート 152を制御して、確認応答が送られたことを示す出力170によってラッチ1 49がリセッi・されるまで、へGKGO入力を出力状態マシンへ与えられるよ うに覆る。
このリンク・インターフlイスの動作は次の通りである。まず、出力リンクがデ ータを出力することを希望している状況について考える。第12図の出力チャネ ルはデータをバス95に沿って出力レジスタへ供給させ、出力データ妥当信号が レディ指示器147をセットする。この指示器147の出力はANDゲート15 0へ与えられ、ラッチ148の状1!1DataQ。
信号が161に入力されるようなものである。ビン27における出力はORゲー 1−153を通じてどり出されるから、その出力は、出力状態マシンから出力端 子167に供給される信号に応じて、出力状態マシンからの出力端子166上の 信号、またはANDゲート151の出力端子における信号より成る。出力状態マ シン140についての遷移表かられかるように、リセットされた後でこのマシン が遊び状態になっている時は、線166へは指示された出力が与えられないから 、零を示す信号レベルが出力ビン27へ与えられる。入力端子166へ□ata Go信号が与えられると、これは、入力DataGoが存在して、A ckGo 信号が存在しない状態表の4行に対応する。そうすると、この表に示されている ように信号□neoutが出力端子166に発生さtられる。そのために信号1 が出力ビン27に与えられ、第8図に示されているデータ・力状態マシンは、状 態表の6行かられかるように、r Data F IaOJと呼ばれる状態へ移 る。この状態においては、それ以上の入力が与えられないと、状態マシンは別の Q neOut信号を出力端子166に住じさせ、L oad count信号 を出力端子164に生じさせる。そのために第2の信号値1がビン27によって 出力させられ、それにより第8図におけるデータ・パケットの2つのスタート・ ビットを形成する。ビット・カウンタ141には、出力すべきビットの数もO− ドされる。この場合にはその数は8である。そうすると出力状態マシンは「da tabitsJと呼ばれる状態になる。そうすると、状態表の7行と8行かられ かるように、レジスタ144のデータ内容を出力ピン27へ出力させるように、 dataout信号がANDゲート151へ与えられる。出力端子168に生じ た桁送り出し信号がレジスタ144からデータを順次放出させ、その結果として ビット・カウンタ141内のカウントが減少させられる。状態表の8行に示すよ うにカウンタが零に達すると、線169に□ atagone信号が出力される 。その信号はラッチ148を変化させて□ atago信号を入力端子161か ら除去する。状態表の8行かられかるように、線166.167における信号は 示されていない。その理由は、線166〜信号仙Oが再び与えられ、その信号値 はORゲート153と出力ビン27を。
介してちえられることにより、第8図に示すデータ・パケットの終りにストップ ・ビットOを形成する。出力状態マシンは遊び状態へ戻る。
出力チャネルは確認応答パケットを送るためにも使用できる。入力チャネルがデ ータのバイトを受けると、その入力チャネルは、第9図に示すような種類の確認 応答パケットを出力するために、信号を出力状態マシンへ送る。信号がレディ指 示器146からANDゲート152へ送られ、この時のラッチ149の状態によ り、出力状態マシン140の入力端子163へACKGO信号を与えることがで きる。これは出力状態マシン140の状態表の3行に対応し、これかられかるよ うに、oneout出力が出力端子166に出力させられる。ビン27にお(プ る信号のレベルが以前の零レベルから、第9図に示す確認応答パケットの最初の ビットを構成する1へ変えられるように、前記oneout出力はORゲート1 53を通される。これによって出力状態マシン140の状態がA CK F L ΔGと呼ばれる状態に変えられ、この出力状態マシン140の状態表の5行から れかるように、出力状態マシン140の状態が上記のように変化しても線166 .167にそれ以上の出力は与えられない。このことは、出力端子27における イ3丹のレベルが零へ戻って、第9図に示づ確に応答パケットの2番目のビット を与えるように、出力端子166における信号のレベルが零レベルへ戻ることを 意味する。出力状態マシン140は、ラッチ149の状態を変えてANDゲート 152の出力を変えることにより入力端子163からACKGO信号が除去され るように、線170にACKGONE出力を与える。それからこの状態マシンは 遊び状態へ戻る。
次に、入力状態マシン142の動作について説明する。この入力状熱マシンは$ 2101上のリセット信号によってリセットされ、入力状態マシン142の状態 表の1行の記載に従って、そのリセットにより、表に記載される出力は発生され ず、この入力状態マシンを遊び状態に置く。出力が表に記載されないから、全て の出力端子に生ずる信号のレベルは零である。入力端子172は入力ピン26に 接続され、0ataln信号が無い限りはこの入力状態マシンは状態表の2行に 従って遊び状態に留る。第8図に示すような種類のデータ・パケット、または第 9図に示すような種類の確認応答パケットのスタート・ビットが到達したために 、入力端子172がDataIn信号が受けられると、この入力状態マシンは状 態表の3行目に記載されている状態へ直ちに移り、出力は生じないが、スタート と呼ばれる状態へ移る。入力ピン26に到達づる次のビットが、第9図に示づ確 認応答パケットに従ってOであるとすると、入力状態マシン142の状態表の4 行が適用される。そのパケットの最初のビットの到達により、マシンはスタート と呼ばれる状態におかれているが、そのパケットの2番目のビットは0であるか ら線172にはもはや[)ataln信号が無く、状態表の4行の記載に従って 出力5ETACKREΔD Yが出ツノ端子178に生じさせられ、そのために この入力状態マシンは遊び状態に戻る。線178に生じた出力は、確認応答パケ ットが受けられたことを出力状態マシンに指示するために、ラッチ148へ与え られる。その出力はReady指示器147へも与えられる。
しかし、入力ピン26に与えられたパケットの2番目のビットがOではなくて1 であるとそのパケットは第8図に示すような種類のバケツl−であるか、状態表 の5行目から、データ・バケツ1−の最初のビットのために入力状態マシンはス タート状態となり、入力(まいまは入力端子172に与えられる[)ataln である。
それによって出力端子174に出力10adcOuntが与えられて、ビット・ カウンタ143に、データ・パケットにおいて予測される数のビットがロードさ れる。この場合には、ビットの数(1データの7バイトに対応する8である。次 にこの入力状態マシン)ま新しい状態databitsへ移り、状態表の6行目 かられかるように、入力173が零に達しない限りは入力状態マシンは出力線1 76上の桁送り込み信号のために、入力ビットを入力レジスフ145に治って順 次動かすという一連の動作を行わせ続(プ、出力端子175におけるDECCO UNT信号のためにカウンタ143におけるカウントを逐次減少させる。カウン タ143のカウントが零に達すると(これは請求められているデータの8ピツト がいま受(]ら才またことを示す)、入力状態マシンの状態表の7行目が適用さ れて、その入力状態マシンは以前として状[databitsにあり、カウント O信号が線173に受けられる。それによってIi!176へ5hiftin出 力が与えられて最後の(latabitを入力レジスタ145内へ動かし、入力 状態マシンの状態はdataend状態へ変る。状態表の8行目は、この状態に おいてはS et[) ataready信号が線177へ出力されて、ラッチ 149とレディ指示器146の内容を変更させることを示す。それから入力状態 マシン142は遊び状態へ戻る。レディ指示器146へ与えられたSet[)  ataready信号は信号「入力データ妥当」を線98へ与えて、データの全 バイトがいま入力レジスタ145に、より受けられたことを示す。
したがって、第14図に示づリンク・インターフェイスは、第8図に示す種類の パケットま1;は第9図に示す種類の確認応答パケットでデータを出力できるよ うに、出力状態マシン140および関連するビット・カウンタ・ラッチならびに ゲートでパケット発生器を構成することがわかるであろう。入力状態マシン14 2と、それのビット・カウンタおよびラッチは、第9図に示1枡類の確認応答パ ケットまたは第8図に示す種類のデータ・パケットのいずれかを入力ピン26で 受EJだかを識別できるパケット・デコーダを構成する。データ・パケットの場 合には、入力状態マシンは入力レジスタ145ヘロードして、完全なバイトが受 けられた的にレディ指示B146から出力を与える。確認応答パケットの場合に は、入力状態マシンは入力レジスタ145にロードせず、次のデータ・パケット の出力をυ制御するために出力信号を使用させる。
その出力信号はラッチ148を変更さゼて次のdatag。
信号をANDゲート150を通じて送らせる。それは、出力すべきそれ以上のバ イトをいまバス95に沿って出力レジスタ1,4へ供給できることを、線94上 の出力ACK信号に指示させる。データのバイトが入力レジスタ145により受 けられ、それからバス97を介してそれの宛先へ転送されると、データの別のパ イ!・を入力できる前に確認応答パケットを出力ビン27により必ず送るように 、入力確認応答信号が校99aのために発生される。
第14図に示すリンク・インターフェイスを用いることにより、メツセージをデ ータの1つまたはそれ以上のバイトで構成できることがわかるであろう。各バイ トは第8図に示す種類のパケットで別々に送られる。第8図に示す種類の各パケ ットが入力ピンにより受けられると、次のデータ・パケットを送れるようにする I;めには、第9図に丞す種類の確認応答を関連する出力ビンにより出力せねば ならない。同様に、次のデータ・パケットの出力を継続できるようにするために は、出力ビンは出力される各データ・バケツ1〜に対する確認応答パケットを持 たなければならない。
各バイトは別々に送り、かつ確認応答せねばならなぃが、メツセージ伝送を終ら せるためには、プロセッサは、複数バイトより成るメツセージを送り、または受 けることにより1つの出力または入力に応答することをめられる。
上記の例においては、入力チャネルと出カチトネルおよびリンク・インターフェ イス内の全ての状態マシンには共通りロックからタイミング・パルスが供給され る。このタイミング・パルスはデータのピット周波数と、出力ピン27により送 られる確認応答バケツ1−のビット周波数をυ制御するのに用いられる。上記の 例では、メツセージの伝送を行うためにリンク・インターフェイスが接続される 他の装置へ同じクロックからタイミング・パルスが与えられる。このようにして 入力状態マシン142と、入力ピン26からの入力データとの間で同期が行われ る。しかし、通信目的のために一緒に接続される種々の装置が種々のクロックを 使用できるように、入力ピン26と入力状態マシン142の間の同期ロジックで 動作するようにリンク・インターフェイスを構成できる。それら種々のクロック は同じ周波数を有しなければならないが、位相はyシつでもよい。各入力ビット ごとに信号レベルが数回標本化されるように、メツセージ中のピット・パターン の周波数より高い周波数で入力ビット・パターンを標本化するためにその同期ロ ジックを構成できる。このようにして、スタート・ピットの前縁部を検出でき、 スタート・ピットの前縁部を検出してから所定時間経過後に入力ピン26におけ る信号のレベルを妥当として処理できる。このようにして、各入力ビットの1載 続時間のほぼ中間で入力データの標本化が行われる。
(−ゑ マイクロコンピュータがどのように動作するのか、とくにそれの機能、動作およ び手続きについての以下の説明においては、OCCAM(前記lNMOSインタ ーナショナルplcの商標)言tfiに従って記法が用いられる。この言頷は、 英国所在のインモス社(I NMO8L 1m1ted)により1983年1[ Hよび配布された[プロI”ラミンl゛・マニコアル(Prograling  Manual)−0CCAMJという標題の小冊子に2載されている。更に、使 用されたこの記法がヨーロッパ特許出願第110642号に詳しく述べられてい る。簡単にするためにこの明mtqではくり返えさない。しかし、ヨーロッパ特 許出願第110642@に記述されているOCCAMおよび使用されている記法 の説明を参考までにここに含める。
上記の記法に加えて、以下の説明は下記のように定義されるあるメモリ・アクセ スについて述べたものである。
Atjlord(Base、 N、 A) Ba5eからN1目のワードを示す ようにAをセット ^tByte(Base、N、A) Ba5eからNet目のバイトを示すよう にAをセット RIndexWord(Base、N、X) Ba5eからN番目のワードの値 にXをセット RIndexByte(Base、N、X) Ba5eからN?!目のバイトの 値にXをセット WIndexWord(Base、 N、 X) Ba5eからN番目のワード の伯をXにセット 一1ndexByte(Base、 N、 X) Ba5eからN番目のバイト の値をXにセット WordONset(Base、 X、 N) XとBa5eとの間のワード数 をNにセット マイクロコンピュータを用いた手続 以下に13の異なる手続(PROC)を示す。はじめの6つの手続はブロセッ→ ノのふるまいを記述するのに用いられる。
Dequ叩e LIQ StarINeXtPrOCeSS HandIcRunRequest Hand 1eRaadyRequestBIOCkCOpVSteD 手続「1)cqucueJは優先度「priJプロセスの前にあるプロヒスを実 ?j祐ちの列に並ばせる。
1、1’ROCDequque − 2、3EQ 3、 WptrR+!g(Pril := rptrRag[Pr114.1F 5、 FptrReq[Pr1l=BptrRC!q[Pr116、 Fptr Ileg[Pr1l := NotProcess、p7、 TI?t![ 8、RlndexWcrd(rptrReg[Pr1l、 Link、s、 f ptrReg[Pril)9、 RIndeyWord(WptrRec+[P r1l、 Iptr、s、 IptrlJ[Pr1l) :手続rRUNJは、 ProcDesc L、r シスタニ記述子tfi 含まれているプロセスをス ケジュールする。即ち、既に実行されている優先度1のプロセスに優先して優先 度0のプロセスの実行を直ちに開始する。
1、 PROCRun = 2、 5rO 3、ProcPriFlag := prctcoescRcg A 16、  (Pri = O) OR((PrOCPriFIP、(1= Pr1)/lN D fWplrReglPri] <>N0tprOCeSS、p)) 7、 3EO−−プロセスの列に加える8汗 9、 FptrReg(ProcPriFlagl = N01Proccss 、plo、 rptrReg[ProcPrirlagl := ProcPt rRegll、 lR11[ 12、WlndexWord(BptrReo[PrccPrirlao]、  1ink、s、 ProcPtrRep)13、 BptrReg[ProCP riFlagl := ProCPtrRegit TRUr 15、 S[Q−Pri 1を妨げるPri <l または Pri 1 と  1clle m<c+6. PriニーProcPriReg17、 Wptr Rcg[!’rilニーProcPttRcg18、 RlndexWord( jJptrReg[Pril、 Iptr、s、 Iptrlt叩[Pr1l) 1’1. Oreg[Pr1l:=O:手fa rStartNextProc essJは現在実行中のプロセスのスケジュールを解除するとともに、もし他の 実行可能なプロセスがあれば、次に実行可能なプロセスを選択する。従って実行 すべき優先度Oのプロセスがもはやなければ、中断されていた優先度1のプロセ スが続行される。
手続r 5tartNextProcessJは、セットされティる5NPFl aaの結果として常に実行される。従ってこのプロレスにお1)る第1の動作は この5NPrlaoをクリアすることである。
1、 PRnC5tartN(!XtPrQCe3S =2、SEQ −3NP フラグクリア 3、 S′APFI;+g[Pr1l := 04、 1F 5、 rptl’RQ’)[I”ril <> NmPTOCt!SS、p6、  tieCp1p++e 11、 (WptrReg(Pril = +totProcess、p) 八 N[)12、 (rptrlteg[Pril <> N01Proccss、 p)13、 De[1uelle R,WptrRcg[Pr1l := NOτPr0CeSS、p :手続r  Hand 1eRunRequest Jは「RunRequest Jを作る プロセッサへのリンクの結果として実行される。この手続における記述で、r  PortNOJは要求を作るリンクの数である。この手続は、リンクと結合して いるプロセスワードの内容に「ProcOescReo Jをロードすることに よって動作する。
1、 PROCHandleRunRequest(VARPortHo) ・ 2、 3[Q 3、 RIndexWord(PortBase、PortNo、ProcDe scReg)4、 Run: 1続[11andleReadyRequest Jは「Rca(II/Re( luest Jを作るプロセッサへのリンクの結果として実行される。
この手続における記述で、[PortNoJはリンクの数、r PortBas eJは第1のリンクのアドレスである。この手続は、リンクに結合しているプロ セスワードの内容からの代替入力となるプロセスを識別する。この手続は、この プロセスが過当なものであるかどうかスケジュールし、状態配ηが適当なものと なるよう更新する。
1、PROCllandleRead)’Request(VARPOrtNO )=2、3EO 3、RlndeXWOr(1(POrtBaSe、POrtNO,Pr0CDe SCRe(1)4、 procptrpeg :lI Pr0CDeSCRe( lハ(NOT 1)5、 RIndexWord(ProcPtrRcg、5t atC,S、Tp+4+Il+:g)6、 1F 7、 Tap:pRpg = Ennbl it+g、 p8、 WIr+dc xWord(ProcPtrReg、 5tate、s、 Ready、p)9 、 1f!I!IDR”g= RC’ad)’、p10、 3KIP 11、 Tc叩11eg = Waitinl、p12、 3[Q 13、 WIlldeXWOrd(PrOCPtrRelJ、 5tate、s 、 Rcady、p)14、 Run : 手続r BlockCopyStep Jは、転送づべき情報の1バイトを発生 する。この手続は、常に「COp〜・FlagJがセットされた結果として実行 される。この手続により、情報の最後のバイトがコピーされると、r copy r+ag」がクリアされ、「TreaJがプロセス記迷子を含んでいるときには そのプロセスはスケジュールされる。
1、 PROCBIOCkCOpl/5tel) −2,3EQ 3、 RII+dQXBVte(CreQ[Pr1l、 O,Oreg[Pr1 l)4、 WindcxByte(Breg[Pr1l、 O,Oreg[Pr i])5、 Oreg[r’ril : 0 6、 AtByte(Creg[Pr1l、 1. Creg[Pr1l)7、  八tBytc(Breg[Pr1l、1. Breg[l’ril)8、Ar eg[Pr1l := Areg[Pr1l −19,1F 1()、 八reg[Pri] =O−ブロックコピー完了12、 3[Q 13、 CopyFlag[Pr1l =014、 IF 15、 Treg[Pr1l <> NotProcess、p16、 3EQ 17、 ProckscReg := Treg[Pr1lI&、 Run 19、 Treg[Pr1l = NotProcess、p20、 3KIP 21、 Tl1tlE 22、 5KIP : プロセッサは一連の動作を実行する。それらの動作は現在のプロセスのためまた はリンクのために行われる。
現在のプロセスのために実行できる動作は[5tartNextProcess  Jを実行すること、r a+ockcopystep Jを実行すること、ま たは命令の)lツブ、復号および実行を行うことである。
リンクのために実行できる動作はr Han+jleRunR6queSt J を実行すること、または[HandleReadyRequest Jを実行す ることである。
それらの各動作は一連のマイクロ命令に対応する。
それらの動作を含む任意のシーケンス中の最後のマイクロ命令は「NextAc tionJである。これによってプロセッサは次に実行すべき動作を選択させら れる。
次に、[NeXtAC目onJマイクロ命令が実行される時、どの動作を行うべ きかをプロセッサがどのようにして決定するかについて説明する。
同期ロジック10は、任意の時刻に、たかだか1つの[RunRequest  Jまたtユ「RcadyReauestJをプロセッサへ送る。同11Q制御ロ ジツク、まだ渋んでいない優先度Oの要求かある時は、優先度1の要求を送らな い。
この結果どして、要求の存在を示す信号と、その要求の優先度を示す信号との2 つの信号がConditionHultipleXOrに入れられる。
C0nditiOnHLIltipleXOrは現在選択されテイル5NPF  lagと現在選択されているCopyFlagとからの信号も有する。したがっ て、それは下記のようにして選択を行うことができる。
SNPrlag [Pri ]がセセラされたとすると、プロセッサは[5ta rtNextProcessJを行い、他の場合には、その要求の優先度が現在 のプロセスの優先度より低くなければ、プロセッサはチャネル要求をとり扱う。
さもな(〕れば、copyr+ao [Pri ]がセセラされたとすると、プ ロセッサはr BlockCol)ystep Jを実行する。他の場合には、 現在のプロセスが存在するならば、プロセッサは命令のフェッチ、復号および実 行を行う。他の場合には、チャネル要求があるまでプロセッサは持つ。
以後のFunc目o ++ S e tの記述は下記更に7つの手続による。
CauSeLinklnptlt CauseLinkOutput HakeLinkReadyStatLIS[n、quiry[nableLi nk LinkChannellnputActionLinkChannelOut putActionISThiSSeleCtedPrOCeSS4つの手続「 CauseLinklnput J、[CauseLinkoutputJ 、 r HakeL i nkReadyStatusEnqu i ry J 、 r EnableLinkJはプロセッサとリンクの間の相互作用を記述するも のである。
手続「CatlSeLinklr+put(VARPOrtNO) Jは優先度 を右するリンク・チャネルPortNoと、ポインタおよびカウントをロードし 、それからそのリンク・チャネルへInpUtRequeStを行う。更に正確 にいえば、プロセッサは、プロセッサのPriフラッグと、Creg[Pr1l レジスタと、AreQ[Pri] レジスタとからのPr1orityフラツグ と、Po1nterレジスタと、リンク・チャネルのC0untreQiSte rとをO−ドする。
手続r Causel 1nkoutput(VARPortNo)J tit  N先度と、ポインタと、カウントとをリンク・チャネルPortNoへロード し、0utputRequcstを行う。このoutputRequestによ りリンク・チャネルはメツセージを出力させられる。更に正確にいえば、プロセ ッサは、プロセッサのPriフラッグと、Creg[Pri] レジスタと、八 reQ[Pr1l レジスタとからPr1orityフラツグと、ポインタ・レ ジスタと、カウント・レジスタとをロードし、そのリンク・チャネルl\0ut putRequestを行う。
手続「HakeLinkReadyStatusEnquiry (VARPo rtlto。
Ready ) Jはリンク・チャネルPOrtNOに対してReadySta tuSEnQuiryを行う。リンク・チャネルがレディであれば「Ready JがTRUEにセットされ、それがレディでなければFALSEにセットされる 。
手fi r EnableLink(MARPortNo) J 1.t IJ  / ’/ チ1− ネ/L/POrtNOの優先フラグをPriフラグの値に セットし、リンクチャネルにEnab IeRequest信号を与える。
その他の手続を以下に示す。
1、 PROcLinkChannellnputAction −2、VAR PortNo : 乙 CauseLinklnput (PortNo)8、 5lIPFlaO [Pr1l := 1 :1、 PROC1,ir+kChannelOutp utAction =2、 VARPOrtNO: 6、 1mrdoffset(PortBase、 Breg[Pr1l、 P ortNo)7、CauseLinkOuLput(PortNo)8、SNP FIag[Pr1l ニー 1 :1、 PROC]5ThiSSelQCjl NPrDCeSS 田2、− これはすべての不能命令によって用いられる。
8、 WII+deXlird(WptrReQIPril、o、八reg[P ri])9、 Area[Pr1l :□ HachineTRUElo、 0 rlll[Pr1l <> (−1)11、 AregjPril := )l achineFALsE :機能セット 欧州特許第110642号明細鳶に&l!載のように、マイクロコンピュータの 各命令は機能セットから選択された機能要素を含んでいる。マイクロコンピュー タによって実行される機能1.1直fI機能、prixとnfixから成るプレ フィックス機能、そして非直接機能aprを含んでいる。被直接機能aprは動 作のセラ1〜から1つを選択するためにオペランドレジスタQ regを用いる 。
上述の明細書に示すように、0reQ [Pri]は、PFEXとNFIXとを のぞくすべての命令の実行後にクリアされる。
、本願における更に改良された直列機能セットとその動作は次のとおりである。
鉦−J」」劃−荒 ニー゛ 1号 名 前 o Idl 1oad 1oca1 1 stl 5tore 1oca1 2 1dlp 1oad 1ocal pointer3 Idnl 1oad  non−1oca14 5tnl 5tore non−1oca15 Id nlp 1oad non−1ocal poi旧er6 eqc equal s constant7 Idc 1oad constant8 adc a dd constant9 j jump lo CJ C011ditil’lal jtllallll call c all 12 ajw adjust workspace13 0Dr 0Derat e 14 prix pre4ix 15 nfix negative prefix級−1 1rct return 2 gcall general call7 bcnt byte coun t 8 wcnt word count 9 1encl 1oop end lo lb 1oad byte li sb 5tOre byte 12 Copy C0IIV IDeSSaQe13 gt grater t han 14 add add is sub 5ubtract 16 m1nt sinimun 1ntec)er17 5tartD 5t art process18 endp end process19 run p rLIn process20 5topp 5top process2 1 1dpri 1oad priority22 in 1nput mes sage23 0LIt 0utpLIt aessa(le24 alt a lt 5tart 25 altwt aft wait 26 altend alt end 27 enbs enable 5kip28 diss disable 5 kip29 enbc enable channe130 disc dis able channel直接区能 定義 SEO 定義 S[Q CreglPri] := Breg[Pri]外部作業域へのストア 定数との同値 定数の加粋 飛越し 定義 AtByte(IDtrReg[Pri]、 Orcg[PI’i]、  ]ptrRQ(l[Pri])目 的 シリ御を前方、後方へ移すこと。ループ へあるいはループから1〃け出て、又はプログラムの条件判断の後へ移してもよ い。
条41飛越し 定義 IF Areg[Pr1l = 0 AtByte(]ptrnOg[Pr1l、 Oreg[Pr1l、 ]plr Re(l[Pri]Arh[Pr1l <> O 3[O 八reg[Pr1l ニー Breg[PrilBreg[Pr1l := C reg[Pri]1 的 0がロードされた場合にのみ、制御を前方、後方へ移 すこと。
プログラムの条件判断、条件ループが存在していてもよい。
手続呼出し 定@ S[Q WlndOxWnrd(IJptrReglPri]、 −1,Creg[Pr i])WIndexWordOJptrllcg[Pr1l、 −2,Breg [Pr1l)WIr+dexWord(WptrRcg[Pr1l、−3、八r eg[rri])WTndexWord[WptrReg[Pri]、 −4, IptrReg[Pri])八reg[Pr1l := Iptrlleg[P r1l八tWr+rd(WptrReg[Pr11. −4+ WDtrReg [Pri]作充域調整 定95 AIWord(Wptr[Pr1l、 Oreg[Pr1l、 4tr lPrili目 的 作7.域ポインタを調整すること。
間接低能 定i cprate (PREG[r’RI]定義 OR[G[PGI1 :=  OR[C[PGI1 << 4のフレフィクス命令を用いて表わすことができ るようにすること。
定 i 0!tr、G[PR]] ニー (NOT 0REGIPRII <<  4目 的 零またはそれ以上のプレフィクス命令が続く1つの乙定プレフィク ス命令を用いて否定オペランドを表すことができるようにプること。
レジスタの取扱い動作等 反転 定li SEQ Oreg[Pr1l := Areg[PrilAreg[Pr1l := B reg[PrilBreg[Pril := Oreg[Pr1l目 的 非対 称的なオペレータのAベランドを反転すること。コンパイラでは都合良く行うこ とぎはできない。
復帰 定れ 5EQ rllndeXl!!0rd(WptrReQ[Pr1l、 o、 IptrR eg[Pril)AtWorrl(WptrReg[Pr1l、 4. Wpt rReglI’ril)目 的 呼ばれたEf続から復帰すること。
一般的な呼出し 定義 SEQ Oreg[I’ril := 1ptrReg[r’rilIptrReg[P r1l :=Areg[Pr1l八reへ)I’ril ニー Orcg[Pr 1l目 的 A reg内の新しい命令ポインタをもって手続呼出しを実行する こと。
定義 SEQ Oreg[Pr1l := WptrRcg[PrilWptrReg[Pri l := Areg[PrilAreg(1’ril := Oreg[Pr1 l目 的 現在のプロセス作業+fflを変えること。
アドレッシング動作 命令ポインタのロード 定rt AtBytc(lptr!Ieg[Pr1l、 Areg[Pr1l、  Areg[Pr1ll目 的 命令ポインタをロードすること。
バイト記述 定義 SEQ 八tByte(/lreglPril、Breg[Pr1l、AreglPri l)r、reg[Pr1l := Creg[Pr1l目 的 ベクトルにお1 )る対象を承りポインタを一1粋すること。例えば1dC0,1dw n、 b sub を用いて数字をバイトポインタに変換りる。
定義 S[Q 八tWord(Areg[Pr1l、Breg[Pr1l、Areg[Pr1l )叶eg[Pril := Creg[Pr1l目 的 ワードベク゛1−ルに お(〕る対zユを示1ポインタを:in−すること。例えば 1dc 0.1d 1 n wsuhを用いて筋をワードポインタに変換する。
定 Q 八l”(!glPrll := Areg[I’r+]s Tral、 1yleSPerWOrd目 的 ワード長をパイ1〜長に変換すること。rT raRytesPQrWOrd j 12マイクロコンピユータによっC用いら れる1ワードについてのバイト数を意味する。
定義 S[Q Creg[Pril := Breg(PrilBreg := bytepa rt(Areg)Are(] := WOr(fllarL(八reg)目 的  wcnt 、 hcm 、 addを用いてポインタを0からのバイトオフセ ツ1〜に変換げること。
定義 S[Q RlnrleyWord(BregiPril、 1. Creg[Prill Creg[I’ri] := Crcg[Pril −1WlrKIGX)10 r6(Bre(l[Pril、1. Creg[pH]])Creg[I’ri l > O SEQ RlnclOxWord(Breg[Pr1l、 0. Creg[Pril) Crcg[Pril := Creg[Pr1l + 1WlndexlJor d(Breg[Pr1l、 O,Creg[Pril)AtByte(Iptr Reg[Pr1l、 −Areg[Pr1l。
lot rRag[Pr i ]) RUE KIP 目 的 複製を実行すること。
単一バイトAベレーション バイトのロード 定 i 1?1rJ(!X!1yte(八reg[Pr1l、O,八reg[P ril)目 的 1バイトのロードを行うこと。
バイトのストア 定l1SIQ W]ndexcyte(Areg[Pri、 O,BregJPril)Are g[I’ril := Creg[Pril目 的 1バイ1−のストアをfj うこと。
バイトストリングオペレーション メツセージの複写 定i’i S[:Q Copy[Pr1l := 1 −−ブo7クコビーを示す。
Treg[Pr1l −NotProcess、p −人力でなく出力を示す。
目 的 パイ1〜ベクトルを他のブロックの伯にセットすること。
比較 定義 SEQ F Breg[Pril > Areg[PrilArcg[Pr1l := Ha Chin(!TRII!:TR11[ Areg[Pril := HacbineFALS[Breg[Pr1l : = Creg[Pril目 的 Aregと3 ragを比較しくそれらを2つ の相補整数として処理して) 、 3regがAregより大きいと1(真)を ロードし、それ以外はO(偽)をロードすること。
(rsv、gt)によりb<aを実現づること。(rev、ot、eqc 01 によりb<=a aS (gt、eqz)とBrCg>=Aregを実現σるこ と。
基本演算 加口 定義 SIQ 八reg[I’ril := 八reg(Pril 4 Bre(l[Pr!] Breg[Pril := Creg[Pr1l目 的 3 ragとA re gの和をロードづること。
減 り 定義 SEQ AregjI’ril := Breg[Pril −Areg[PrilBr eg[Pr1l := Creg[Pr1l目 的 3 rCgからA reg を減じ、結束をロードすること。
以下を実行すること。
a ” b aS 5LI11. eqc Oa<>bassub、eqc(1 ,cqcOif a <> b 、、 aS sub、eqc o、cj、、、 。
if a = b 、、 as sub、 cj、 、。
定義 S[Q Crcg[Pr1l := Breg[PrilBreg[Pr1l ニー A reg[Pr1lプロセス開始 ProDescReg 二= Arel)[Pl’i] V Priプロセス終 了 になると作東域は変更される。
an 目 的 特定の優先喰でプロレスを実行すること。
目 的 現在のプロセスのスタジュールを解除すること。
擾先啜のO−ド Crcq[I’ril := Breg[PrilBreg[Pr1l :=  Areg[Pri]八reへl[Pr1l −、Pri l 的 現在のプロはスの優先咲をIIVること。
1、定義: −初Hy341;態 2、 −Areり =カウント 3、 −BreQ =ブーヤネル 4、 −Creg =目的地 5、拝 6、 112rd(P、rc)[Pril)7、 l io、jCt+at+n cll++r+q+Mticr+8、 ’、+0(((BreQ(PrC1)9 S[0 10R1ndey!l*rd(Breg[Pr1l、 O,Treg[Pt1l )11F 12、 Treg[Pr1l =NOIProrw、s、p13、 SI:Q 17、 311r’FIag[Pr1l := 118、 7reg[Pr1l  <> No1Proccss、p3、 −Breg −チ1νネル ?、LinkCtklnlIQ10L11putACjior+a、 soft fBreg[Pr1l112、 lreg(Pril = N(ilr’rOc ess、p19、 S[Q 20、 Pr0CPtrRe(l 二= Treg[Pr1l V (+lOT  1 )21、− 状態場所の読込み 22 RInd+J+lord(ProcPtrReg、 5tate、s、  0rtl[Pr1l)23− 代髄プロセス、即ち入力プロセスをチェック24 、 1F 25、 Oreg[Prtl = Enabling、p30、 Wlndex Word()lptrReg[I’ril、 5tate、s、Crea[Pr il)3t、 SNI’rlag[Pr1l := 132、 0rcg[Pr 1l = Waiting、p3B、 SllPrlag(Pril ニー 1 39、 PrOCDGSCIiOg:= Treg(Pri14Q、Itun 41、 0req[Pr1l = Ready、p4G、 3NPFlag[I ’ril := 147、 Tllllr−OrCg[Pr1lはバリッドポイ ンタを含む代替入力のオペレーション 代替開始 1、定?l: WIndex14ord(14ptrReg(Pril、 5t ate、s、E++al+lit@、p)目的二 代替入力可能とするためにプ ロセス状態位置を初期化すること。
代1!1持機 1、定義: sr。
2、 W]r+dex140rd!WDtrllecllPril、 O,−1 )3、 RIndCXWord[WDtrReO[Pr1l、5tate、s、  Areg[Pr1l)4、 1F 5、 Areg[Pr1l = Ready、p6、 3にIP 9、 Wlndexしlord(lJptrReg[Pr1l、 5tate、 s、 Waiting、pH0,WlndexWord(WptrReg[Pr il、 Iptr、s、 IptrReg[Pr1l)11、 3NPrlag [Pr1l := 1目的: 可能なチャネルの1つを持つこと。
代t!i終了 定義: S[Q 1、 R1++dex14ord(WptrRegll’ril、 O,Ore g(+’ri132、 AtByte(IptrRe!][Pr1l、 0re o[Pr1l、 TDtrRe!][Pr1l)目的二 代替プロセスの選択さ れた入力の実行を開始すること。
SKI P可能 1 定義:IF 2 八reglPril <> HaCt+il+(jFALSE3、 W]1 tdeXWOrd(WptrR(!9[Pril、 5tate、S、 Rca dy、p14、 Areg[Pr1l −Hacbiner八1.s[5、へ  3KIP 目的: 5KIPを可能とすること。
Sに!P不能 定義:S[0 拝 Breg[Pril <> HachinerALSrIsThisSelec tedProcessBreg[Pr1l −MaChir+eF^LSEAr eg[Pril ニー 勘cl+1ncrALsEチャネル可能 1、定義: 5rQ 2、 1F 3 八reg(Pri’l = Hact+1npFALSE4、 5KIP 5 八reg[Pril <> Hacl]1ncr八LSE19、 VARI ’0rtNO,Ready :2o、 sr。
21、 WordOffset(PortBase、 Breg[Pril、  PortNo)24、 Ready 25、 WIndex14ord(14pt rReQ IPr i ]、 5 tate、 S、 Ready、 p)2G、 TRIIE 29、 Er1ableL 1nk(POrtNo)30、 8reg[Pr1 l ニー Creg[Pri]目的: チャネル入力を可能とすること。
ヂセネル不能 1 使用: On entry Areg = In5truction 0f fset2、 areg = euarc+ 3、 CrCg = C++anne14、 0nexit IF 5、 this was 5elected guarded proceSs 6、 Areg = HachineTRU[7、otherwise 8、 AreQ−Hac?+1rsTltU[9定義=IF 10、 Breg[Pr1l = HachinpFALS[:11、 Are g(Pril : = Hachincr八ls[12、へ Brcg[Pri l <> Harhir+eFA1.5E13、 1+ 14、 so川用reg1f’ril>15、 31’Q 1G、 RlndcxWOrd(Creg[Pr11. O,Brag(Pri l)17・ 1[ 18、Breg’[Pr1l = NotProcess、p19、 Areg jPri] := )kict+1nel八LS[20、8reg[Pril  −(WptrReg[r’ril v Pr1)24・ TRtlE 25、 1sThisSelecteuI’rocess2B、 bard(C rcg[P叫) 27、 VARPortNo、Ready :28、 5(Q 29、 Wr+rdOffsal(PortBase、 Creg[Pr1l、  PortNo13G、 TRUE 37 八req[r’ri] := Hact+1neF八ls[目的: 代替 の可能な入ツノのうちの1つを這I尺するために可能なチャネルを不能tこづる こと。
このようにR(li131ま上述のすべてのに能に対応づる命令を有し、この命 令の結果としてのプロセッサが行うべきオペレージ3ンを右する。
スケジューリング プロセッサは、2種類の優先度レベル0と1で実行するいくつかの同時プロセス の間で、それの実行時間を共用する。優先度0と1のプロセスが同時に実行可能 である時は、優先度0のプロセスが優先度1のプロセスより常に先に実行される 。任意の時刻にはただ1つのプロセスが実際に実行され、現在のプロセスである そのプロセスは、それの作業域ポインタ(W P T R)をW P T RR E G 51に有し、IPTRREG50内の命令ポインタ(I PTR)が、 その特定のプロセスに関連するプログラム中の一連の命令から実行すべき命令を 指示プる。現在プロセスではなく、かつ実行を持っていないプロセスはどのプロ セスもスケジュールから外される。あるプロセスがスケジュールに組込まれられ ると、そのプロセスは現在のプロセスとなるか、または実行を持つているプロセ スのリス1−すなわち列に加えられる。そのリスト:ユ結合されたリストとして 形成され、そのリストの各プロセスは、そのリスト上の次のプロ←スの作業域ま でのそれの作業域のリンク場所にポインタを有する。そのリスト上の任意のプロ セスの命令ポインタ(IPTR)は、第3図1二示寸ように、それの作業域のI  PTR場所65に格納される。
いまの場合には、プロセッサは実行されることを峙っているプロセスの2つのリ ストをGfl18するそれら2つのりストのうちのそれぞれ1つが各優先度レベ ルに対する。この状況が第3,4図に示されている。第3図は高優先度0のリス トを示し、第4図は、優先度Oのプロセスが第3図に示すように現在のプロセス である時に、低優先度1のリストを示す。この場合には現在のプロセスが優先度 Oのプロセスであるから、レジスタ・バンク・セレクタ41がプロセッサで使用 するためにバンク39内のレジスタを選択している。したがって、WPTRRE G(0)は、第3図に示すように、現在のプロセスし、の作業域60の零場所に 対するポインタを保持する。IPTRREG(0)は、メモリに格納されている 10グラム・シーケンス181中の次の命令に対するポインタ180を含む。
第3図に示されているレジスタ54,55.56゜57は、現在のプロセスLの 実行中に使用すべき他の蛸を含む。スケジュールされて、実行を侍っている優先 a′Oのプロセスリストが、第3図において3つのプロセスM、N、Oにより示 されている。それらのプロセスの作業域が61.62.63で示されている。そ れらの各作業域はプロセスしについて示したものに全体として類似する。参照番 号53で示されているFPTRREG (0)は、このリストの初めにお()る プロセスであるプロセスMの作業域に対するポインタを含む。プロセスMの作業 域は、プロセスMが現在のプロセスになった時に実行すべきプログラム・シーケ ンス中の次の命令に対するポインタをI PTR場所65に含む。プロセスMの リンク場所66は、そのリスト上の次のプロセスであるプロセスNの作業域に対 するポインタを含む。示されているリストのafftのプロセスはプロセスOで あって、作業域63を有する。
BPTRREG (0)52はこのR後のプロセスOの作業域に対するポインタ を含む。このプロセスOの作業域63は以前のプロセスNのリンク場所66の内 容により向けられるが、この場合にはプロセスのOのリンク場所66はどのポイ ンタも含まない。というのは、そのプロセスがリスト上の最後のプロセスだから である。別のプロセスがこのリストに付加されると、その別のプロセスの作!8 !域に対するポインタがBPTRREGの中に6かれ、そうするとプロセス0の リンク場所66が、そのリス1〜に付加された別のプロセスの作業域にi4する ポインタを含む。
優先度1のリストは全体として類似する。このリストは第4区に示されている。
この場合には、スケジュールされて、実行を侍っている優先度1のプロセスのリ ストはプロセスP、Q、Rより成る。別の優先度1のプロセスSが示されている が、−これは現在スケジュールされており、リンク・リストの部分を構成しない 。FPTRREG (1)は、実行を待っているリスト上の最初のプロセスを形 成するプロセスPの作業域に飼するポインタを含む。BPTRREG (1)は 、実行を待っているリス1−上の最後のプロセスを形成するプロセスRの作業域 に対するポインタを含む。
各プロセスP、Q、Rは、そのプロセスが現在のプロセスになった時にそれから 次の命令がとり出されるプログラム段階を指すI PTRをそれのl PTR陽 所に含む。リスト上の最後のプロセスとは別の各プロセスのリンク場所は、リス ト上の次のプロセスの作業域に対するポインタを含む。
第4図に示す位iは、現在の優先度Oのプロセスが、優先度1のプロセスが終る 前に、そのプロセスに割込むことなしに現在のプロセスになるという仮定の上に 、WPTRREG(1)51がプロセス作@域に対する妥当なポインタを含まな い位置である。
たとえば、ある通信が終った結果としであるプロセスが実行づる準備が整ったと すると、そのプロセスは直ちに実行され、または適切なリス1〜につけ加えられ る。ぞのプロセスが優先度Oのプロセスであれば直ちに実行されて、優先度0の プロセスは実行されず、それが優先度1のプロセスであればプロセスリストく実 行されない。プロセスは、そのプロセスのスケジュールを解くことをめるチャネ ルによる通信に加わるまで、または、そのプロセスが優先度1のプロセスであれ ば、より急いでいる優先度Oのプロセスを実行さ旺るように、その優先度1のプ ロセスが一時的に中断される、すなわちv1込まれるまで、実行をI!続する。
2、 優先度Oのプロセスが実行されるとPRIFLAG47がOにセットされ る。プロセッサが優先度1のプロセスを実行し、またはどのプロセスも実行しな いと、PRI FLAG49は値1を有する。実行すべきプロセスがない時は、 WPTR(1)レジスタはlaN ot p rocess pを有する。これ は第4図に示すWPTRREG51のための位置である。この位置においてはp J込まれる優先度1のプロセスのない優先度1のプロセスのリストがある。優先 度1のプロセスを実行さゼるように優先度1のプロセスが割込まれたとすると、 割込まれた優先度1のプロセスの作業域ポインタがWPTRREG(1)に留ま る。したがって、実行すべき優先度Oのプロセスがもうないと、優先度1のプロ セス→JがWPTR(1)レジスタの内容により割込まれたかどうかをプロセッ サが決定する。これが* N ot P rocess oを有するものとする と、割込まれたプロセスがなかったことになるから、プロセッサはFPTRRE G (1’)の内容を調べることにより優先度1のリストを点検する。しかし、 WPTRREG(1)が作業域ポインタを依然として含んでいるとすると、プロ セッサは割込まれたプロセスの実行を継続できる。いずれの優先度リストでも持 っているプロセスがないとすると、適切なFPTRREGはm N at p  rocess pを含む。
「スターI〜・プロセス」動作または[実行プロセス」動作を実行することより 新しい同時プロセスが作られる。「nリプロセス」動作または「ストップ°プロ セス」動作を実行することによってそれらの同時プロセスは終る。
先に定義した手続[dcqueue Jを使用することにより、実行するプロセ スをリストのトップからとり出すことができる。その定義は、前記した他の梗々 の定義とともに、行番号も含む。それらの行番号は定義の部分ではなくて、単に 説明を容易にするためのものである。手続DEQ、LJEtJEの定義の1行目 は゛手続の名称を示し、2行目は一連の事象が起ることを示す。3行目に従って 、適切なバンク38または39の〜へIPTRREG51+よ、同じバンクのF PTRREG53の保持されていたポインタをとる。4行目は、ある条件のテス トを実行すべきことを示す。
5行目は、BPTRREG52の内容がFPTRREG52の内容と同じである ことが見出されると、6行目に従ッテgJ rNot Process pJが FPTRREGにロードされる。7行目は、5行目における条件が満されなかっ たどすると、適切なレジスタ・バンクのFPTRREG53に、FPTRREG の内容より以前に示された作91のリンク場所66に現在格納されているポイン タがO−ドされろ。最後に、9行目に従って、WPTRREG51の内容により いま示された作業域のIPTR場所65からのIPTRがIPTRREG50に ロードされる。
これの結果として、先頭のプロセスをとり出して、そのプロセスを実行準備を整 っている適切なレジスタヘロードすることよってリストが進ませられる。
現在のプロセスは、先に定義した手続「次のプロセス・スタート」によってスケ ジュールを解除でき。現在のプロセスは、SNP FLAG58を値1にセット することを含む命令を実行できる。その場合には、プロセッサが次の動作を行う ことをそのプロセッサにめるマイクロ命令にそのプロセッサが応答すると、その プロセッサは前記定義に従って手続を実行す、る。定義の3行目に従って、プロ セッサは5NPFLAG58を伯Oにセットすることによってフラグを最初にク リセする。4行目は5行目の定義が真か否かをテストすることをプロセッサにめ る。FPTRレジスタが値[Not process pJを含んでいないとす ると、6行目に従って、次のプロセスがリストのトップからとられるようにde queue手続が行われる。
しかし、5行目が真でなかったとすると、これは現在の優先度のためのリストに 侍っているプロセスがないことを示す。それからプロセッサは7行目に示す条件 が真であるかどうかの点検を行う。その点検にはPRI FL八へ47が値Oを 含んでいるかどうかの度0のプロセスがないことを知るから、優先度フラッグを 1にセットするという9行目から始まるシーケンスへプロセッサが進む。これに よってプロセッサがレジスタ・バンクを優先度1のプロセスについて調べさせら れ、11行目と1行目にシステム、〜IPTRREG(1)が値rNot Pr ocess pJを含んでいるかどうかFPTRREG(1)が伯rNotp  rocess p Jを含んでいないかどうかをプロセッサは調べる。このこと は、〜へIPTRを〜VPTRREG51に残した割込まれた優先度1のプロセ スがないこと、およびそのリストに峙っている優先度1のプロセスがあることを 意味する。この条件が真であるとすると、13行目に従ってプロセッサは手続d equeueを実行する。この手続により次の優先度1プロセスがリストの先頭 からどり出される。しかし、11.12行目の条件が正しくないとすると、14 .15行目に従っCプロセッサはどの動作もとばす。このことは、\〜1PTR REG(1に\へ’PTRが含まれていたとすると、プロセッサがその割込まれ たプロセスの実行を継続づることを意味する。割込まれたプロセスがなり、優先 度1のリストに持っているプロセスがないものとすると、プロセッサはそれ以上 のプロセスのスケジューリングを持つ。しかし、7行目における条件が正しくな いが、一方では優先度が1であることをプロセッサが見出し1ことすると、16 .17行目にシステムWPTRREG(1)がla rNot Process  pJをとる。
メツセージの移行中にプロセスをスケジュールから外スコトができ、その間に通 信しているプロセスがそれのプログラム中の対応する0階に達することを持つ。
通信している2つのプロセスが対応する段階に達すると、記述子がPROCDE SCレジスタ46に含まれているプロセスをスケジュールづるために手続「ru nJを使用できる。そうすると、手fA r run Jの前記定義からプロセ ッサの動作を理解できる。3行目に従って、PRC)CDESCレジスタ46に より示されたプロセスの優先度が針幹されて、PROCPRI F LAG48 ヘロードされる。4行目に従って、記述子をレジスタ46に右するプロセスのW PTRが針幹さt’t、r、PROCPTRREG45に0−ドされる。それか らプロセッサは、6行目の条イ1が適用されるかどうかについてプロセッサがテ ストする。現在のプロセスは優先瓜Oを有し、またはPROCPRI FLAG 48における優先度がPRI FLA047における優先度と同じで、それと同 時に現在のプロセスの〜VPTRREG51が作業l或ポインタを含むものとす ると、プロセッサは7行目より後のシーケンスを実行する。7行目は、シーケン スがプロセスを行列に加えるために必要なものであることを単に説明フるだけで ある。8行目は、9行目の条件が真かどうかのテストをプロセッサが実行づるこ とをめる。フラッグ48により示される優先度のFPTRREGがl!rNot  Process pJを有するものとすると、10行目に従ってFPTRRE Gにレジスタ45のポインタがロードされる。それによってスケジュールされた プロセスがリストのトップにされる。11行目は、10行目の条イ1が正しくな いとすると、レジスタ46にグループまれでいるポインタが、適切な優先度のB PTRREGにより示されているリスト上のRmのプロセスのリンク場所66に 書込まれる。そのBPTRREGは次にレジスタ45の内容へのポインタがロー ドされる。いいかえると、スケジュールされたプロセスがリストの終りに加えら れる。11II行目は、6行目の条件が正しくないとすると、15行目に示すシ ーケンスが起る。この場合には、16行目が、PROCPII I FLAG4 8に現在ある値をPRIFLAG/17からとることを要求し、17行目に従っ て適切な優先度のW P T RRE Gにレジスタ45からポインタがロード される。18行目は、適切な優先度のIPTRREG50に、W P T RR EG51内のポインタにより示されているプロセスのI P ’r R場所65 から得たI PTRがロードされる。19行目は値OIE:適切な優先度バンク の0レジスタに挿入する。
プロセス間通信 メモリ内の1つのアドレス可能なn 8 pF+により与えられたソフト・ヂせ ネルを用いて、あるプロセスは別のプロセスと通信できる。あるいは、1つのマ イクロコンピュータのプロセスが、ハードな入カチjrネルとハードな出力チャ ネルを用いる直列リンクを介して、別のマイクロコンピュータのプロセスと通信 できる。
各直列リンクの入力ビンと出力ビンは、一方向の専用通信経路を形成する1本の 線により別のマイクロコンピュータの対応するビンに接続される。内部通信と外 部通信を行うために、各出力プロセスは出力すべき各メツセージごとに先に定義 された1つの「メツセージ出力」動作を行い、各入力プロセスは入力すべき各メ ツセージごとに先に定義された「メツセージ人力」動作を行う。この実施例に従 って、各「メツセージ出力」動作または各「メツセージ入力」動作ごとに送るべ きメツセージの長さは可変長にできる。データ1j指定されたビット長の1つま たはそれ以上の単位で送られ、この場合にはビット長は1バイトを形成する8ビ ツトである。したがって、メツセージは請求められるメツセージの長さに応じて 1つまたは複数の単イQすなわちバイトで構成でさる。通信をどのようにして行 うかを理解するために、いくつかの例を以下に説明する。
烈−−1 プロセスYが、ソフト・チャネルを用いて、同じマイクロコンピュータ上の同じ 優先度のプロセスXヘメッセージを出力することを希望している。これは第15 図のシーケンスに示さ机ている。最初に、プロレスYもプロセスXもチャネル7 0を使用することをめる命令をまだ実行していないから、そのチトネル70はに ’QrNot Process pJを含んでいる。プロセスYが出力を実行す ることを希望するそのプロセスのプログラム中の点にそのプロセスが達すると、 メツセージを構成するバイトの数を示すカウントをプロ、セスYはそれのARE G54にロードし、通信のために用いられるチャネルのアドレスをプロセスYは BREG55にロードし、送るべきメツセージの最初のバイトに対するメモリ・ アドレスであるソース・アドレスをプロセスYはCREGにロードづる。これは 動作「メツセージ出力」の定義の行2,3.4に従うものである。それ以上の行 番号の参照は上で与えたメツセージの出力の定れに関連する。5行目は、与えら れたチャネル・アドレスがハード・チャネルのアドレスに一致するかどうかを調 べるために、Bレジスタの内容をテストすることをプロセッサにめる。もし一致 するものとすると、定義の7行目は手続「リンク・チャネル出力動作」を行うこ とをプロセッサにめる。第15図に示す例では前記チャネル・アドレスはハード ・チャネルのアドレスに一致しないから、定義の8行目が真であることが判明し 、Cレジスタはソフト・チャネルのアドレスを含む。したがって、プロセッサは 9行目の後のシーケンスを行う。10行目に従って、TREG49にはCレジス タからのポインタにより示されたオフセットの内助、すなわち、チャネルの内容 がD−ドされる。次に、11.12行目が、TREGがN ot p roce ss pを含んテイルカトうかを調べることをプロセッサにめる。これはもちろ ん第15b図に示す揚台である。したがって、プロセッサはメツセージ出力の定 義の14〜17行目のシーケンスを実行する。14行目は、プロセスYのための プロセッサ記述子がチトネル70に書込むことを要求する。15行目は、IPT RREG50の内容をプロセスYのための作業域IPT、R場所65に格納する ことを要求する。16行目は、ソース・アドレスをプロセスYの作2域の状態場 所67に書込むことをめる。17行目は、5NPFLAGを1にセットすること をめる。これは、プロセスYをプロセッサの次の動作によりスケジユールから外 すべきであることを示す。それは第15c図に示す状態であって、入力プロセス Xが入力命令を実行するまでその状もを保つ。
また、プロセスXは入力すべきことをメツセージに対してめられるバイトの数の カウントを、それのAレジスタ54に最初にロードする。プロセスX 1.tそ れのCレジスタに、入力のために使用するチ11ネルのアドレスをロードし、C レジスタに、最初に入力すべきバイトに対するメモリ内の宛先アドレスをロード する。これはメツセージ入力の定義の2.3.4行目に従うもので、ff1l  5d図に示す状態である。メツセージ入力の定義の5.6.7行目は、Cレジス タ内のアドレスがハード・チャネルに対応するかどうかを調べることをプロセッ サにめる。この場合にはプロセッサはリンク・チャネル入力動作手続を実行する ことをめられる。これは第15図に示すケースではない。
というのは、Cレジスタがチ1!ネル70に対するものだからである。したがっ て、8行目の条イ1は真で、9行目に続くシーケンスが行われる。最初に、プロ L!スXに対する■レジスタ49には、Cレジスタ内のポインタにより示された オフセットのない値、すなわち、チャネル内容が自−ドされる。その沁がrNQ tp rocess o Jでなかったとづると、プロセスづは13〜17行目 に従う。その結果としてプロセスXはスケジュールから外される。しかし、いま の場合にはTレジスタは定義のIFNj目の要求にかなうことが見出され・ [ N ot p rocess pJを含まない。定義の21行目に従って、プロ hツサは(ifi r N ot P rocessp」を、第15e図に示す よう(二、チャネル70に書込むことによってチャネル70をリセットする。2 2〜24行目は、1つのメモリ場所(ソースンから別のメモリ場所(宛先)へデ ータのブロック・コピーを行う用意をプロセッサがいま行ったこと、■レジスタ 49はプロセスYのプロセス記述子をいま含み、Aレジスタが送るべきパイ1〜 の数のカウントを含むことについての説明を含んでいるだけである。定義の25 行目は、プロセスXのための8レジスタに、以前はCレジスタであった宛先レジ スタがロードされることを要求する。26(j目に従つ゛【、PROCポインタ ・レジスタ45にプロセスYの〜へIPTRがロードされる。
−一’PTRは、プロセス記述子をレジスタTからとり出し、優先ビットを除去 することにより得られる。27行目は、プロレスXのためのCレジスタに、プロ セスYのための作業域の状態場所67から得たソース・アドレスがロードされる ことをめる。それから、28行目は、プロセッサが次に行う動作として先に定義 した手続「コピー・ステップ明辻」を実行するように、適切な優先度のコピー・ フラッグを1にセラ]・することをめる。このためにソース・メモリ・アドレス から宛先メモリ・アドレスへ1度に1バイトをプロセッサが転送させられ、かつ その動作をくり返えして各バイトが転送さけられるにつれてソース・アドレスと 宛先アドレスをしだいに変え、転送すべき残っているバイトの数のAレジスタ内 のカウントをしだいに減少さ外されたプロセスYは手続実(jによって再び留守 を組まれる。これはコピー閉止ステップの定義かられかる。2行目は起すべぎシ ーケンスを定義する。最初のステップは3行目である。このステップでは、Cレ ジスタにより示されたメモリ内のソース・アドレスからのパイ!・をCレジスタ に読込む。それから、4行目がCレジスタからのデータのパイ1−を、Cレジス タにより示された宛先メモリ・アドレスに囚込む。その後で5行目が0レジスタ をクリヤする。6行目は新しいソース・ポインタを作る。そのソース・ポインタ は1バイ1〜だ1)進められる。74j目は新しいソース・ポインタを作る。そ のソース・ポインタ+!1バイトだけ進められる。、8行目は△レジスタ内のカ ウントを1だけ減少させろ。それから、9行目はAレジスタがいま零カウントを 含んでいるかどうかを10行目に従って見出すために行うべぎテストを要求する 。Aレジスタが零カウントを含んでいる時はコピーの阻止が終らされている。A レジスタが零カウントを含lνでいないと、21行目の条イ1が満される。しか し、コピー・フラグが依然として1にセットされているから、プロセッサは適切 な次の動作をとることを続()る。コピー阻止に含まれているプロセスの優先度 が低優先度のプロセスで、高優先痕のプロセスが実行する準備が整ったとすると 、プロセッサは、より高い優先度のプロセスを実行するために、完全なメツセー ジ転送が終る前に、1つまたはいくつかのバイトを送った後でコピー阻止に割込 むことができる。しかし、待っているより優先度の高いプロセスがないものとす ると、コピー阻止ステップの22行目に達すると、コピー・フラグが依然として セットされているからプロセス1ノは2行目から始まるシーケンスをくり返えす 。したがって、カウントがOになるまでプロセッサはコピー明葎ステップの3〜 8行目の手続をくり返えす。それから、13行目はコピー・フラグをクリヤして 、零にリセットすることをめる。14.15行目は、■レジスタ49がNotP  rOcess D jス外の偵を有するかどうかを調べることをプロセッサに 要求する。この場合には、スケジュールを外されたプロセスYのプロセス記述子 をそれはイアする。したがって、16行目において始まるシーケンスが起り、■ レジスタに前もって含まれていたプロセスYのプロセス記述子がロードされる。
それから、プロセスYのスケジュールを再び組むために前記手続実行が行われる 。19.20行目は、Tレジスタがスケジュールされているプロセスのプロセス 記述子をTレジスタが含まなかっ!二とすると、動作が飛び越されることを里に 示す。
鉄−1 第16図は、第1のマイクロコンピュータ251における出力プロセスYと、第 2のマイクロコンピコ−ケンス・メツセージにおいて示すものである。プロセス Yのための出力チ1?ネル90の出力ピン27が1本の線253により、プロセ スXのための入力チャネル91の入力ピン26に接続される。
全てのプロセスはハード・チャネルを用いて出ツノまたは入力を実行するから、 適切な出力命令または入力命令を実行した後はプロヒスはスヶジ」−ルがら外さ れる。一方のマイクロコンピュータのメモリ内のソース・アドレスから、他方マ イクロコンピュータのメモリ内の宛先アドレスへのめられている数のバイトの転 送は、第10.11.12.13.14図に示されているリンクQの制御の下に 行われる。両方のマイクロコンピコ〜りのプロセッサがメツセージ転送とは独立 に現在のプロセスを実行できるように、バイトの転送はプロセスりによる動作と は独立に実行される。
メツセージ転送のうちプロセッサによるそれ以上の動作を必要とする段階にリン クが達した旧に、それらのリンクはプロセッサに対して適当な要求を行う。各リ ンク・チャネルはチャネル・アドレスを有する。そのアドレスはブロセスム1( と呼ばれるメモリ内でアドレスできる1つの市より成る。それらのハード・チャ ネル・プロセス語をプロセッサかリンクへの別々の接続を必要としているハード ・チャネルとして認めるように、それらの飴のアドレスが選択される。第16゜ 17.18.19の各図において、プロセスYのための出力チャネル90とプロ セスXのための入力チャネル91を示すために、類似の書式が使用されている。
チャネルの関連するプロセス語256には略記号PWがつけられる。出力チャネ ルはレジスタ254と場所257を有する。レジスタ254については第12図 を参照して先に説明した。前記場所257においては転送状態マシンの状態が示 されている。入力チャネル91に対しては、プロセスff1W所256と入力チ ャネル・レジスタ255が示されている。レジスタ255は第13図を参照して 先に説明した。ブOセス語場所256は第13図から3状態マシンの状態を示す 。第16図において、両方のプロセスは類似の優先度を有し、出カブ[1セスY は、プロセスXがメツセージを入力しようとする前に、メツセージを出力しよう とする。「メツセージ出力」の定義の2〜4行目に従って、プロセスYは、メツ セージ中で出力すべきバイトの数のカウントなAレジスタ54にロードし、使用 すべきチャネルのアドレスをBレジスタ55にロードし、コピーすべき最初のバ イトに対するメモリ内のソース・アドレスをCレジスタ56にロードする。第1 6a図に示すように、この旧には出力チャネルは遊lυでおり、入力チャネルは データネ存在、遊びおよび不能化の状態を有する。第16a図の後でプロセスY が動作「メツセージ出力」を実行し、その動作の定義の6行目に従って、そのチ ャネルがハード・チャネルであることをプロセッサは見出し、したがって、7行 目に従って手続「リンク・チャネル出力動作」が実tjされる。その手続「リン ク・チャネル出力動作」の定義は、プロセスYに対する現在のI PTRがIP TR50からとり出されて、プロセスYに9Jする作業域のI PTRI所に格 納されることを示づ。5行目は、プロセスYのプロセス記述子が出力チャネル9 0のブOセス語場所256に蹴込まれることをめる。6行目は出力チャネルのた めのボート番号をセラ1− L、7行目は前記手続「リンク出力を行わせる」を める。そうすると、プロセッサYの実1jに使用する適切なレジスタからカウン ト・ソースと優先度がチャネル・レジスタ254へ転送される。データの最初の バイトが送られるよ・うにリンク・チ17ネルに対して入力要求も行われる。8 行目に従って、前記したように、プロセッサによる次の動作がYプロセス1)を スケジュールから外すことをめるように、5NPFLAGが1にセットされる。
この状態は第16b図に示すようなものである。
プロセスXがメツセージ入力を実行しようとする的には、プロセスXはその入力 に対してめられるカウント・チャネルと宛先を、第16c図に示すようにAレジ スタ54と、Bレジスタ55と、Cレジスタ56とにロードする。プロセスXが 「メツセージ人力」動作を実行Jる蜀は、そのプロセス×は、定義の6行目に従 って、チャネルがハード・チャネルであることを見出し、したがってそれは手続 「リンク・チャネル入力動作」を実行する。これはリンク・チャネル出ツノ動作 について先に説明したのと同じシーケンスを実行する。それは×のIPTRをプ ロセスXの作を域のI PTRg所65に格納し、プロセスXのためのプロセス 記述子を入力チャネル91のプロセス詔256に書込む。それはXのカウント宛 先と優先度を入力チャネル91のレジスタ255にO−ドする。この場合には手 続リンク・チャネル入力動作の7行目は、プロセスXに関連する出力チャネルか ら確認応答パケットがプロセスYに刑する入力チャネルへ送られるように、リン クに対して入力要求を行う。状態は第16b図に承りようなものである。
それから、データ・パケット内の複数のデータ・バイトが送られる。第14図を 参照して説明したように、各送信に続いて確認応答パケットが送られる。プロセ スXから最後のMiQ応答パケットが送られると、プロセス×に対するリンクが 、13を参照して説明したように、線84eに実行要求を行って、マイクロコン ビコータ258のプロセッサが、もし既にリストが存在するのであれば、リスト の終りにプロセスXを加えることによってそのプロレスXを再スケジュールする 。これは16eに承り状態である。16eの後で最後の確認応答パケットがプロ セスYに対する入力チャネルにより受けられ、第12図の線84bに実行要求信 号が発生されて、次の動作をとることを質問されたプロセッサがプロセスY@適 切な優先度のリストの終りに加えるようにする。そうすると状態は16f図に示 すようなものとなる。
別の、カチャネルからのブOセス入力 別のプロセスは、入力のためのいくつかのチャネルのうちの1つを選択し、次に 別のプロセスの対応する成分プロセスを実行するようなプロセスである。利用で きる別のチャネルからのチャネルの選択は、そのチャネルを通じて出力すること を既に待っている出力プロ、セスをそれが有するという意味で、1つまたはそれ 以上のチャネルが入力の用意が整っているかどうかを決定するために、全てのチ ャネルを調べる入力プロセスによって実行される。どのチャネルも用意が整って いないことが見出されると、チャネルの1つの用意が整うまで入ノ〕ブOセスは スケジュールから外される。
少くとも1つのヂ1?ネルの用意が整ったことが見出されると、あるいは出力プ ロセスによる動作のために入力プロセスが角びスケジュールに組込まれると、プ ロセスはいま用意が整った入力の1つ1つを選択し、そのチャネルを通じて入力 を行う。入力チャネルの選択中はブOセス作業域の状態場所67は特殊な値であ る可能化pS持ちpおよびレディpのみをとることができる。
入力プロセスがいくつかの代替チャネルすなわら別のチャネルのうちの1つから 入力できるようにするためには、入力チャネルがそれの70グラムのうち、それ らの代替チャネルのうちの1つから入力を希Xする段階に初めて到達した時に、 代替人カチトネルのいずれも用意が整っていなければ入力プロセスをスケジュー ルから外すことが重要である。このことは、プロセッサが秤々の優先度プロセス で動作している場合はとくに重要である。それ以外では、別の入力を行うことを 希望している高優先度のプロセスが低優先度のプロセスを無期限に保持でき、そ の間それはスケジュールに組込まれたままで、それらのプロレスのうちの出力プ ロセスを待っている種々の別の入力チャネルの状態をくり返えしテストするだ1 ノである。したがって、この実施例にJ:って、代りの入力チャネルが入力プロ セスにより最初にテストされl;時にそれらの入力チャネルのいずれもレディで ないすなわち用意が整っていないとすると、入力プロセスをスケジュールから外 すことができる。このようにして入力プロセスがスケジュールから外れ!二とす ると、出力プロセスによる動作のためにチャネルの1つの用意が整う″と、プロ セスをスケジュールに再び組入れるためにプロセッサに対して要求を直ちに行う ことができる。しかし、入力プロセスがスケジュールに再び組入れられて、それ の入力を実行する前に2つ以上の出力チャネルがレディである、すなわち用意が 整うことがある。したたって、入力プロセスがスケジュールから外されて情って いる峙に、任意の出力チャネルがチ11ネル・レディを行うと、入力プロセスを スケジュールに再び組入れるために2つ以上の要求がプロセッサに対して行われ ることを直ちに阻止することが必要である。これは、先に定義した代りにスター ト、チャネル可能化、別の待機、チャネル不能化、代りの終り、および入力メツ セージなどの動作を含む命令を用いることによって達成される。代りの入力を行 うことを希望しているプロセスはどのプロセスでもまず代りのスタートを行い、 それに続いて可能な代りのチャネルに対して可能化チャネルを行わなljればな らない。その後で、代りの待機、チャネル不能化、および代りの終りなどの動作 が続く。
この後で、前記したように「メツセージ人力」に使用するためのカウント・チャ ネルとソース情報を与えるために、プロセスはあるロード命令を実行する必要が ある。
代りの入力のための命令を含む種々の例について次に説明づる。
匠−ユ これは、メツセージを直列リンクを通じて送る、1つのマイクロコンピュータの 出力プロセスYと、異なるマイクロコンピュータの入力プロセスXとの間の通信 に関するものである。プロセスXは、Yが任意の出力命令を実行する前に、入力 動作を開始する。プロセスXが開始した時には代りの入ツノのいずれも用意が整 っていない。また、プロセスYによる出力動作のために1つのチャネルの用意が 整うと、他の代りのチャネルのいずれも用意が整わないと仮定する。、最初にプ ロセスXは「代りのスタート」を実行し、その動作の定義にシステムプロセスX は「enablir+g DJをプロセスXの作業域の状態場所67へ広込む。
出力チャネル90および入力チャネル91の状態マシンは第17a図に示すよう なものである。それからプロセスXは!力作「チャネル可能化」を行う。プロセ スXは可能な各人ツノチャネルに対してこれを行うが、第17b図はプロセス( )Yにより使用される特定のチ11ネルにおけるこの動作の結果を示す。チャネ ル可能化の定義に示されているように、プロセスXは最初にガード値をAレジス タにロードし、動作を続ける前にこれは調べられろ。8〜17行目は、チャネル がソフト・チトネルであるならば、後続のシーケンスを指定する。ここで説明し ているケースでは、チ1νネルのアドレスはハード・チャネルのアドレスに対応 づるから、21〜29行目のシーケンスが続く。21行目はチャネルのボート数 を針幹し、22行目はそのチャネルの状態についての質問をプロセッサに行わせ る。23〜25行目は、チャネルの用意が整ったとすると、値レディpがプロセ スXのための状”k−W所67に書込まれlζであろうことを示す。しかし、そ うはならないから27〜29行目のシーケンスが適用される。プロセスXのため のブOセス配述子が定義の28行目に従ってチt・ネルのためのブ[11?ス詔 場所に書込まれ、29行目は先に定義された手続リンク可能化を要求する。これ は入力チャネルの優先度フラッグをプロセスXの優先度にセラ1〜し、可能化要 求をリンク・チャネルに対して行わせる。これによってチャネルの状態を変えて tlfs17b図に示すように「可能化状態」にする。それからプロセスXは代 りの特徴を実行する。代りの待機の定義−の2行目に従って、これは値−1をプ ロセスXのための作業域の零場所にセットする。3行目と4(う目は状態場所6 7の内容がレディpであるかどうかを見るためにその内容を調べる。もしレディ pでないとすると、8〜11行目のシーケンスが実行される。いいかえると、a ri袖ちpがプロセスXのための状態場所67に宙込まれる。プロセスXのため のI PTRlfil PTRJu所65に格納され、5NPFLAGを1にセ ットする結果としてプロセスXがスケジユールから外される。
これが第17C図に示されている。この後でプロセスYが出力メツセージを行う ことにより出力動作を開始する通兇のやり1〕で、かつ前記したように、これは プロセスYをスケジュールから外し、出力リンクが最初ののデータ・バイトを送 る。そのバイI・が到達すると、プロセスXのための入力リンクにプロセスXの ためのプロセッサに対するレディ要求を行わせる。それからプロセスXは再びス ケジュールに絹入れられ、動作「チャネル不能化」を行う。この動作は1つのチ ャネルを選択し、残りを不能状態にする。チャネル不能化の定義の1行目かられ かるように、動作ALTENDの後で入力プロセスにより実行すべき次の命令の アドレスからプロセスXは再びスケジュールに組入れられ、動作「チャネル不能 化」を行う。この動作は1つのチャネルを選択し、残りを不能状態にする。チャ ネル不能化の定義の1行目かられかるように、動作A L T E N Dの後 で入力プロセスにより実行烹べき次の命令のアドレスをとり出すために必u f A命令オフセットがAレジスタにロードされる。Bレジスタはガード値を有し、 Cレジスタにはチャネル・アドレスがロードされる。この命令は可能な代りの各 入力チャネルに対してくり返えされることがわかるであろう。9行目と10行目 はガード値の点検を取り扱う。
この点検が満足されるものとすると、チャネル・アドレスがソフト・チ1νネル のアドレスであるかどうかを13.14行目にシステムプロセッサはテストする 。
しかし、この場合には26行目が、チャネルのアドレスがハード・チャネルのア ドレスであることを適用する。29行目はチャネルのボート数を二1算し、32 行目はプロセッサにより状態の質問をリンクに対して行わせる。34行目にシス テム、チャネルが用意が整っていることが見出されたとすると、先に定義された 手続「これは選択されたプロセスか」が実(jされる。その定義の4行目に従っ て、これはCレジスタにプロセスXの作業域の零場瓶の内容を0−ドする。5. 6行目に従って、それが−1であるかどうかについてこれはテストされ、もし− 1であればAレジスタの内容がW P T RRE Gで示されているメモリ場 所に書込まれ、Aレジスタはこれが選択されたプロセスであることを示す値MA CHINETRUEを有する。10行目に従って、0レジスタが値、−1を含ん でいないとすると、これは選択されたプロセスではない。第17e図はチャネル 不能化動作を実行する直前の2つのプロセスの状態を示し、第17f図はチャネ ル不能化動作を実行後の状態を示す。第17f図の後はプロセスXは動作ALT ENDを実行する。この動作は、それの定義の1行目から、W P T Rレジ スタ内のポインタにより示されるメモリ・アドレスの内容をCレジスタにロード する。それから、それはポインタを0レジスタに含まれているオフセットととも にI PTRレジスタに2ff<、IPTRレジスタはI PTRレジスタの以 前の饋を有する。これによってプロセスはそれの命令シーケンス中の希望の位置 において継続可能にさせられセージ巡信のための適切な値をロードでき、かつ入 力メツセージを実行する。この入力メツセージは第16図の第16C図から前に 示されているシーケンスを実行する。
上記の例は代りのハード・チャネルの使用にl!l逆しタモノであるが、シーケ ンスは全体として類似し、プロセスはいくつかの代りのソフト・チャネルのうち の1つを介する代りの入力を実行づる。最初にプロセスが代りの入力を実行して いることを示プために1代りのスタート」の実行により特殊な値[enabli nc+ pJがプロセスの状態場所にロードされる。それから、チャネルの状態 をテストするために動作「チャネル可能化」が各チャネルごとに実行される。「 チャネル可能化」の定義の12.14.16行目はチャネルの内容を調べる。1 2行目にシステム、そのチャネルに作業域ポインタが見出されないとすると、値 [NotP rocess p Jがそのチャネルに書込まれる。17行目に従 って、出力プロセスの作業域ポインタがチャネル内で見出されたとすると、fi n r Ready oJが入力プロセスの状態場所に書込まれる。これは、出 力プロレスにより実行された命令の結末としてどのチャネルが既に「レディ」で あるかを調べるために各チャネルに対して行われ、レディでないことが見出され たチャネルに対しては入力プロセスの作業域ポインタはそのチャネルに烈される 。それから入力プロセスは「代り−1を入力プロセスのための作業域の零場所に ロードし、「代りの待機」の定義の5.7行目は入力プロセスの状態場所の点検 を行う。もし値r Reaay p Jを見出したとすると、入力プロセスはス ケジュールから外されないが、r Ready D Jを見出さないとすると、 定義の9行目に従ってそれはl’wait DJをプロセスの状態場所に書込み 、定義の10.11行目は入力プロセスのスケジュールから外されるようにされ る。入力プロセスがスケジュールから外されなかったとすると、それは「チャネ ル不能化」であろうそれの次の命令で実行する。一方、それがスケジュールから 外されたものとすると、代りのチャネルの1つを使用しようとしているブ0セス 出力の結果としてそれはそのうらに再びスケジュールに組入れられる。そして、 入力プロセスがスケジュールに再び組入れられると、それはそれの次の命令を再 び行う。その命令は「チャネル不能化」で6)る。それは代りの各チャネルに対 してこの動作を行い、各動作に先立ってAレジスタオフセット数がロードされて 、そのチャネルがその入力に対して選択されたものだとすると、そのプロセスの ためのプログラム・シーケンス中で次の命令を探すために必要な命令オフセット を示す。18.20.24行目は、チャネルが1m r Not Proces s p J 、入カブ0セスに対するポインタ、または出力プロセスに対するポ インタを含んでいるか否かについてのそれぞれのテストを示す、24行目に従っ て、チャネルが出力プロセスに対するポインタを含んでいることが見出されたと すると、25行目は手続[これは選択されたプロセスか」をめる。この手続の定 義に従って、プロセスの作業域の零場所が−1を依然として有するがどうかを調 べられ、もし−1を有しておけばそれが入力のために選択されたチャネルとなり 、手続はIt−1を除去して、作業域の零場所に必要な命令オフセラ!・を書込 む。それ以上「チャネル不能化」動作が賎りのチャネルにおいて実行されると、 あるものは出力プロ・セスに対するポインタを保持プることにより「レディ」で あることを見出すことができるが、手続「これti選択されたプロセスであるか 」が実行される時は、それはもはや値−1を入力プロセスの作業域の′j4場所 に探さず、したがってチャネルが奴に選択されたこと、そのためにそれ以上のチ ャネルは選択されないこと1ま明らかであろう。入力プロセスに対するポインタ を含んでいることが依然として見出されているどのチャネルも1 p roce ss p Jへ変えられる。「チャネル不能化」動作が代りの全てのチャネルに おいて実行された後で、入力プロセスは動作「代りの終り」を実すする。
この動作は入力プロセスの作業域の零場所から命令オフセットを転送し、そのプ ロセスに対する継ti7cmtjるプログラムがそれの命令シーケンス中の正し い点においてピックアップされるように、そのプロセスに′14′2jる命令ポ インタにそのオフセントを加えさせる。
匠−1 第18図に示されているこの例は、別のマイクロコンピュータのプロセスXと通 信するために1つのマイクロコンピュータにおいて出力動作を行うプロセスYを 有する。その別のマイクロコンピュータはいくつかのチャネルで代りの入力動作 を行う。それらのチャネルのうちプロセスYにより使用される1つのチ1?ネル がレディとなっている唯一の入力チャネルである。最初にプロセスYがiti+ a168.16b図を参照して説明したシーケンスに従って出hメツセージを実 行する。
こ、れは第18a図において達した状態である。それからプロセスXは代りのス タート動作を行い、かつチャネル可能化を実行しようとするゎそれの状態が第1 8b図に示されている。チャネル可能化を実行した(なで、状態は第18b図に 示すものへ移る。それからプロセスXは代りの特低な実行するが、IIvcシ、 スケジュールから外されない。プロセスXがチャネル不能化を実行しようとして いる状態が第18d図に示されている。チャネル可能化を実行したプロセスは、 チャネル不能化の実行後に、第17図を参照して説明したようにして継続する。
匠−1 第19図は、出力プロセスYが出力動作を開始する前にプロセスXが代りの入力 動作を行う状況における同じマイクロコンピュータ上の同じ優先度の2つのプロ セスXとYを示すものである。プロセスYがXよりも8い優先度にあればシーケ ンスは同じである。最初ニプロセスは代りのスタートを実行し、これは第19a 図に示す状態である。それはプロセスXに対する作業域の状態場所に[enab lino p Jを単に出込むだけである。それからプロセスXはチャネル可能 化を実行し、これは第19b図に示す状態へ移る。この状態においてはプロセス Xのプロセス記述子がチャネルに配置される。第19C図へ移るために、プロセ スXは代りの待ち動作を行い、プロセスXの状態場所はenablina pを 含んでいるから、waitinll Oのためにその場所は更新され、プロセス Xは再びスケジュールから外される。プロセスYが出力することを希望した時は 、プロセスYは、記196図に示すように、それのレジスタをロードすることに より開始し、メツセージ出力を実行する。それは持らプロセスXのプロセスPt !迷子をチャネルが含んでいることを見出し、プロセスYはプロセスXのための 作業域の状9a所を読んで、それがz*aitino oを含んでいることを見 出す。
これは、プロセスXが代りの入力動作中に含まれていることを示す。これによっ てXの状態場所がready pにさせられ、チャネルにプロセスYのプロセス 記述子がロードされる。プロセスYの作業域はYに対するIPTRIUどソース ・アドレスを保持するために用いられる。プロセスYは5NPFLAGを1にセ ットし、プロセスXをスケジュールに組入れる。これは第19c図に示す状態で ある。5NPFLAGが1にセットされるとプロセスYがスケジュールから外さ れる。スケジュールに組入れられているプロセスXは、第19f図に示すように 、チャネル不能化動作をいま実行しようとしている。不能化動作を実行した後は 状態は第199区に示すようなものである。その後で、プロセスXが代り終りの 動作を行う。前記したように、その動作には別のロード命令と入力メツセージが 第20a、20b、2Oc図に示す例は、14N1先mのプロセスXと同じよう に同じマイクロコンピュータにより実行される′8優先度のプロセスYが、どの ようにしてプロセスXに割込めるかを示すものである。プロセスXは低優先度1 のプロセスであって、それの実行中にプロセスYを作った。プロセスYは高優先 度である優先度Oを有するから、プロセスXは割込まれて、それの〜へIPTR を優先度1の\〜IPTRREG51に残す。第20a図に示す状態においては 、プロセスYは現在のプロセスであって、優先度フラッグ47がセットされ゛て 優先度Oのプロセスを示し、図示の例で1ユ。
優先度1またはOのリスト上で待っているプロセスはない。プロセスYの実(j 中にそれはリンクを用いて出力メツセージを行うことを希望する。これによって 、第20b図に示すように、5NPFLAGが1にセットされ、プロセスYはス ケジュールから外される。次のプロセスをスタートさせる手続によって5NPF LAG58がクリヤされ、優先度Oのリストに別のプロセスがあったかどうかを 決定するためにプロセッサはFPTR(0)をテストする。別のプロセスはない (というのはFPTRREG(0)はNotP rocess pを含んでいる からである)から、プロセッサはPRI F LAG47を1にセットし、かつ 〜IPTRREG(1)はプロセスXに対する妥当な作業域ポインタを含むから 、次のプロセスをスタートさせる手続はそれ以上の動作を行わない。リンクおよ び5NPFLAG (1)からの要求がないこと次の動作として調べるプロセッ サはセットされず、したがってそのプロセッサはプロセスXの実行を再び開始す る。これは第20C図に示す状態である。いくらかの後の段階で、それを通じて プロセスYがメツセージを出力したリンクが、そのメツセージ中に含まれていた 一連のバイトの終りで最後の確認応答を受ける。その時に、プロセスYにより使 用されるリンクがプロセッサに対して実行要求を行う。現在の動作が終ると、次 にどの動作を行うかをプロセッサは決定する。
5NPFLAG (1)はセットされず、現在のプロセスである優先度Xの優先 度より高いチャネル優先度Oに対する実行要求が行われる。したがって、プロセ スは手続「実行要求を取扱う」を実行する。この手続は持ちプロセスYのプロセ ス記述子をP ROCD E S CRE G ニー1 t:” −L、、実行 手続を行う。この実行手続はプロセスYのプロセス作業域ポインタをPROCP TRREGにロードし、その優先度をPROCPRI F LAGにロードする 。
その優先度が現在のXプロセスのPRI FLAGに示されている優先度より高 いから、vj込みが行われる。
PRI FLAGはOにセットされ、WPTRR,EG(0)はそのプロセス作 業域にセットされ、IPTRREG(0)がロードされる。そうすると状態は第 20a図に示す状態へ戻される。プロセッサの次の動作は、出力メツセージ命令 に続く命令である次の命令プロヒスYを実(うすることである。
匠−1 第21a、21b、2Ic図は出力プロセスYと、代りの入力を行う高い優先度 のプロセスXとの間をメツセージが通っている間におけるフラグの変化とレジス タを示すものである。この特別の例では、プロセスXは代りの入力を既に開始し ており、プロセスXがスケジュールから外されて、それのプロセス記述子がチャ ネル内にあるように、代りの特機を実行している。
プロセスYが出力メツセージを実行すると、プロセスYはXのプロセス記述子を チャネル内で見出すから、プロセスXが値waiting pを見出すプロセス Xの作業域の状態場所を読取ることにより、プロセスXが代りの入力を実行して いることを示す。したがって、プロセスYはそれのプロセス記述子をチャネルに 配置させ、YのI PTRがYの作業域のl PTR場PIik内込まれ・メツ セージの最初のバイトのソースがYの作業域の状態場所に書込まれる。それから 、閉2Ia図に示すように5NPFLAG (1)がセットされる。これは後で プロセスYをスケジュールから外させる。Xのプロセス記述子がPROCDES Cレジスタに書込まれ、プロセッサはプロセスXのための実行手続を実行、する 。しかし、プロセッサが優先度OのプロセスXをいまスケジューリングし、プロ セッサは現在は優先度1であるから、それは優先度1の割込みを行わせ、手続5 tartNextPreccssがスタートする前にプロセスXの実行を開始す る。実行手続の終了後の状態を第21b2に示す。それから、プロセスXがチャ ネル不能化動作を行い、プロセスYにより使用されるチャネルを選択する。それ から、プロセスXは入力メツセージ命令の実行を続ける。その命令はチャネルを 値rNotP rOcess D Jにリセットし、TREGにプロセスYのプ ロセス記述子をロードし、コピー・フラッグを1にセットする。それから、プロ セラ1ノはメツセージをコピーさせ、最後にプロセスをスケジュールさせる。
実行手続はプロセスYを優先度1の行列に置かせる。
それから、プロセラ1ノは、次にとの動作を行うかを決定し、5NPFLAG  (0)がセットされるから、プロセッサは5tartNeXtPrOCeSSを 実行する。これはマシンを優先度1へ戻させる。これはm2le図に示す状態で ある。5NPFLAG (1)が依然としてセラ1−されているから、プロセッ サは手続5tartNextProcessを実行する。それはプロセスYをス ケジュールから外す。しかし、プロセスYは優先度1のリスト上に依然としであ るから、最後に(まスケジュールされる。
プログラム例に対する命令シーケンス われわれのヨーロッパ特ら1明細古第110642号には、変数「rotati ons Jを取扱うプロセス例と、変1 rmiles Jを取扱うプロセス例 との2つのプロセス例がム己÷又され、それらのプロセスのための2つのプログ ラム例を実(うする命令シーケンスが与えられているe同じ2つの例を以下に説 明する。両方のプログラムliヨーoツバ5+)訂H11tam第110642 号に記載8°れているのと同じであり、それらのプログラムは0CCAへ61を 用いて再び襲かれる。下記の各プログラム例は、OCCA M文を機械命令に変 換するコンパイラの使用により形成される命令シーケンスである。
この場合には義賊命令は上記で定義した機能およθ動作に従う。
各個においてプログラムと命令シーケンスに行m号が加えられているが、行番号 は参照の目的のためだけ1、 VARrotattons : 2、 l(旧LE TRUE 3、 5EQ 4、 rotations := 0 5、賀旧Lr rata目ons < 10006、 S[:Q ?、 rotation ?^MY a、 rOtatiorts :e rotations + 19、 m1l e ! ANY 命令シーケンス 0CCAH言詔によるプログラム償能 1±た1 vrtnrolations IJHIIE TRII[ S[Q 1、11: 2、 1(Ic 0 7 0 rO1atioI+s:□D3、ST10 1Q 4、 T2: WHIII’ ratatiolls (10005゜ 6、Pfix3 14 3 7、 Pfix 14 14 1.4 S[08、1dc 1000 7 8 9、1dlOOO 10、o++r gt 13 13 +1. Cj T3 10 11 12、 1d1p 3 2 3 rotation ? ANY13、 1dl l 0 1 14、 1del 7 1 15、oar bvnt 13 7 1G、pfix114 1 +7. apr in 13 G 18、 1dl O00rotaticns:=19、adc 1 8 1 r otations+i20、stl 0 1 0 21、nfixl 15 1 22゜ j T2 !II 15 23、 T3: m1le ! ANY24、 1d1p3 2 3 25、 1612 0 2 2G、Idl l 7 1 27、Qpr bcnt 13 7 28、 6(i\1141 29、 0pr 0IJt 13 7 30、rli×1 15 1 31、j 11 9 5 例2 1.VARff1il(!S : 2、3EQ 3、1V1ites := 0 4、 WHILE TRUE 5、 八[■ G、m1le?八NY 7、 i+ile :÷m1les + 18、 fuel ? 八NY 9、 Sh。
10、 COnSIIC0n5II ! m1les11、 m1les :=  0 は能 VARll1ilcs: EQ 1、 1dcO71m1les:=0 2、stl 1 1 1 WillLETRUE3[1 4、Mixl 14 1 5、Opr alt 13 8 ALT6、 1d13 0 3 7、 1dc1 7 1 8、pfixl 14 1 9、 %r enbc 13 13 10、 1614 0 A 11、Idc1 7 1 12、 1lfiX1 14 1 13、 0pr eT4bC1313 14、pfixl 14 1 15、 0pr altwt 13 916、 1d13 0 3 17、MC171 命令シーケンス 0CCAH839によるプログラム機能 とた1 18、Idc (L2−2) 7 0 19、Pfix114 1 20、opr disc 13 14 21、1d1404 22、 1611 7 1 23、 1dc (L3−L2) 7 1024、pfixl 14 1 25、apr disc 13 14 26、pfix 1 14 1 27、apr altcnd13 1028、12: 29、 Idlp 2 2 2 m1les ? ANY30、 1dl 3  0 3 31、 1dc1 7 1 3.2. opr bcnt 13 733、Pfix114 1 36、Opr in 13 6 あ、1d11 0 1 3[1,adc 1 8 1 m1les:l=+++1lcs+137.5j 11 1 1 3B、j 14 9 12 39、13・ 40、 1dlp 2 2 2 fuel ?AtAl41. 1d14 0  4 S[0 42,161171 43、0pr bcnt 13 7 44 しfixl 14 1 45、opr in 13 a 46、 1d1p 1 2 1 consumpiton ! n+i!es− 47、1d15 0 5 48、 0prbcr+t 13 7 命令シーケンス 0CCAH8語によるプログラム機能 工工た1 49、Pfixl 14 1 50、 oprout 13 7 51、 1dc O70m1les :=052、stl 1 1 53、14 54、nfix3 15 3 55、 j L19 15 これら2つのプログラムは、上述の機能およびオペレーションを用いるので、ヨ ーロッパ特訂第110642号明WI+’Bに3及されているように異なった命 令シーケンスを作成する。
桝−」− このプログラムの7行目はチャネルj rotationJからの入力を要求し 、これは対応する命令シーケンスの12行目に入力すべきデータのための宛先ア ドレスをロードさせる。13行目は使用すべきチャネルにポインタをロードする 。14行目は入力すべき詔の数のカウントをロードす。16.17行目はpfi xli能を使用することにより動作「メツセージ入力」をロードする。同様に、 プログラムの9行目はチャネルを通る出力を要求し、対応する命令シーケンスの 12行目は出力すべきデータのソースにポインタをロードする。
26行目は話中の出力メツセージのカウントをロードする。27行目はこのカウ ントをバイトに変換する。
まjこ、28.29行目は、「メツセージ出力」命令を実行するためにpfix 命令を使用する。
鰺−ス この例は、プログラムの5行目で始まる代りの入力動作を含む。これは、プログ ラムの6行目にシステムチャネルjiileJから、またはプログラムの8行目 に従ってチャネル[fuelJからの代りの入力を要求する。対応する命令シー ケンスにおいては、代りの入力動作が5行目で始まることがわかる。5行目は動 作ralternative 5tart jを要求する。6行目はポインタを チャネル[aileJにロードする。7行目はガード値「真」をロードする。チ ャネル(fileJのための「ヂャネ/I/可濠化」を動作さゼるために、8・ 9行目はpfiy、機能として用いる。10行目はポインタをチャネルr fu el Jにロードし、11行目はガード値「真」をO−ドする。チャネルl’f uelJのための動作「チャネル可能化」を実行するために12.13行目はp fix鍬能を用いる。このプロセスのために「alternativewait Jを動作させるために14.15?j目はpfix様能を機能る。16行目はポ インタをチトネル「m1leJにO−ドし、1,71う目はガード値「貞」をロ ードする。
18行目は、プロセスかチャネル「m1leJを通って入力させた■に必要であ る。命令オフセットをO−ドする。この場合には要求されるオフセットはOであ る。
チャネルjgiileJにおいて動作「チャネル可能化」を実行するために19 .20行目はpfix機能を用いる。
21行目はポインタをチャネル[fuelJにロードし、22行目はガード値「 真」をロードする。23行目は、プロセスがチャネル[fuelJを通って入力 する時に必要である命令オフセットをロードする。チャネルr fue! Jに おいて「チャネル不能化」を動作させるために、24,251j目はpfixi 能を使用する。
[alternative end jを動作させるために26.27行目はp fixil能を用いる。
alternative end vJ作は、そレヲ通シテ入力カ行ワれたチャ ネルに応じて適切な命令オフセットをロードして、入力のためにチャネル「m1 leJが用いられたとすると、プロセスが基準マーカーし2〜L3の間の命令シ ーケンスをプロセスが実行し続けるようにする。
あるいは、チャネル[fuel Jが選択されたとすると、命令オフセットは基 準点し3〜L4の間で命令シーケンスの実行をプロセスに行わせる。
可変語長のネットワーク 以上説明したように、同じマイクロコンピュータまたは異なるマイクロコンビコ ータにおけるプロセス間のメツセージ伝送は、標準長の任意の数のデータ・パケ ットで行われる。したがって、任意のメツセージ艮を使用できる。各パケットは データのバイトを含むから、通信は種々の語艮のマイクロコンビコータの間で行 わせることができ、メツセージ伝送に含まれているマイクロコンピュータに対し て完全な数の比を構成するために、各メツセージに適切な数のバイトを供給する 必要があるだけである。そのようなネットワークが第220に示されている。こ の図においては、語長が16ビツト、24ピツト、または32ピッ1−である複 数のマイクロコンピュータが示されている。
マイクロコンピュータ260は16ビツトzR長のレジスタを有し、マイクロコ ンピュータ261.262は24ビツト語長のレジスタを右する。マイクロコン ピュータ263は32ビツト認長のレジスタを有する。上記のメツセージ伝送命 令は、ネットワーク中に含まれているマイクロコンピュータの語長とは無関係に 同様に動作する。
本発明は上2比例の詳細に限定されるものではない。
イみデフ首Om7’Dとス/Iソλト 木777@oでXY yヤネル へiグρとλXf、777”otA Y A7 7°e+t’7 X大力7°ロtスY )Xt)7’Dt:λX1777°ot λY :l:h7°otλ X、t777°otぺY 入777bたλ×土り7 bでス γ λ方7°pτλX i:η2bでλY へη2″D亡?× より7’otスY 入カグロtス× fJ)7”otXY 入?)7°or7Xi″17”ot7 Y A7i’7° □rλXPRI=OPRI=I PRI=OPR1=1 PRI=1 A37MEXTo ’E?:X ZNTEPjtAT+ONλ乙S=λRCHH EデORτ0NZNTERNA”ZONAL λppl、IC入丁:ON No 、 ?Cτ/c3 ε400379 (SA a=2+)−一+++榊−――・ ―−・・―――−−−−−・―−・―+骨 −一―++呻−・−――――・−− −―+−一+――−一〇

Claims (1)

  1. 【特許請求の範囲】 1.メモリと、複数の同時プロセスを実行するために構成されたプロセッサとを 備え、各プロセッサは、プロセッサにより逐次実行するための複数の命令より成 るプログラムに従って前記プロセスを実行し、前記プロセッサは(1)複数のレ ジスタおよひそれらのレジスタの間のデータの転送に使用するデータ転送手段と 、(2)各命令を受け、プロセッサ・レジスタの1つにその命令に関連する値を ロードする手段と、(3)受けた各命令に応答して前記データ転送手段とレジス タを制御し、プロセッサにその命令に従って動作させる制御器と、を備えるマイ クロコンピュータにおいて、このマイクロコンピュータは:、 (1)(a)1つまたはそれ以上のプロセスを識別して、プロセッサによる少く とも1つの収集待機実行を形成する手段と、 (b)現在のプロセスの実行に割込むことによりプロセスをデスケジューリング する手段と、 (c)プロセスを収集待機実行に加えることによりそのプロセスをスケジューリ ングする手段と、 を備え、プロセッサがそれの処理時間を複数の同時プロセスの間で共用できるよ うにするためのスケジューリング手段と、 (2)1つのプロセスと別のプロセスがそれぞれのプログラム・シーケンスにお ける対応する段階にある時に、通信チャネルを使用することにより1つのプロセ スから別のプロセスへデータの伝送を行えるようにする通信手段と、データを出 力するために動作する出力プロセス、およびデータ転送に使用するために1つま たはそれ以上のチャネルを識別するメッセージに応答してデータを入力するため に動作する入力プロセス、を含み、前記通信手段は、 (a)複数のチャネルと、 (b)前記1つのプロセスが現在のプロセスである時に、データの伝送に含まれ るプロセスの1つによるメッセージ命令の実行に応答して、命令により識別され た各チャネルの内容を試験し、かつ前記手段を動作させて、データ伝送に含まれ ている別のプロセスが対応するプログラム段階に達したことを示す値をどのチャ ネルも含んでいないことが見出された時に現在のプロセスをデスケジュールする ように構成された手段と、(c)入力プロセスが複数の代りのチャネルのうちの 1つを介して入力することを許す手段と、を含み、前記複数の名チャネルは、そ のチャネルを用いてデータの伝送を行う命令をあるプロセスが実行したかどうか を示す値を保持する格納手段を備え、前記許す手段は、 (1)入力フロセスによるメッセージ命令の実行に応答して代りの名チャネルの 内容を試験し、かつチャネルが、出力プロセスがそのチャネルを用いてメッセー ジ命令を実行したことを示す値を既に含んでいない時に、入力プロセスがメッセ ージ命令を実行したことを示す値を各チャネルにロードする手段と、(2)代り のチャネルの1つにおけるメッセージ命令を出力プロセスが実行した時に代りの 入力チャネルの1つを選択するように構成された選択手段と、(3)選択されな かった代りのチャネルから、入力プロセスによりそれにロードされた値を除去す る手段と、を備えることを特徴とするマイクロコンピュータ。 2.特許請求の範囲第1項記載のマイクロコンピュータであって、プロセスをデ スケジュールする手段は、チャネルを試験する動作に応答して、入力プロセスに よるメッセージ命令の実行時に、そのチャネルを用いて出力プロセスがメッセー ジ命令を実行したことを示す値を代りのチャネルがいずれも含んでいないものと すると、入力プロセスをデスケジュールすることを特徴とするマイクロコンピュ ータ。 3.特許請求の範囲第2項記載のマイクロコンピュータであって、前記スケジュ ール手段は、デスケジュールされた入力プロセスを示す値を含んでいるチャネル を用いて出力プロセスによるメッセージ命令の実行に応答して入力プロセスを再 スケジュールすることを特徴とするマイクロコンピュータ。 4.特許請求の範囲第3項記載のマイクロコンピュータであって、選択手段は入 力プロセスのデスケジュールに応答して、入力プロセスが再スケジュールされる まで、代りのチャネルの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項記載のマイクロコンピュータであって、前記選択手 段は、前記代りの各チャネルの内容を試験し、かつ、そのチャネルを用いて出力 プロセスがメッセージ命令を実行したことを示す値を含んでいる最初に試験され たチャネルを入力に対して選択するように構成され、前記選択手段は、入力プロ セスに関連するメモリ場所から前記第3の特殊な値を除去するように構成され、 それによりその選択手段は、出力プロセスがそのチャネルを用いてメッセージ命 令を実行したことを示す値を含んでいるかもしれないそれ以外の任意のチャネル を選択しないことを特徴とするマイクロコンピュータ。 11.特許請求の範囲第10項記載のマイクロコンピュータであって、チャネル の選択に応答して、入力プロセスに関連するメモリ場所にオフセット値を格納し 、そのチャネルが選択された時に、そのプロセスに対するプログラム・シーケン スにおいて必要なオフセットを示す手段を含むことを特徴とするマイクロコンピ ュータ。 12.特許請求の範囲第10項記載のマイクロコンピュータであって、プロセス がデスケジュールされた時にそのプロセスの命令シーケンス中の段階に対するポ インタを格納する手段と、複数の代りの入力チャネルの1つが選択された時に前 記ポインタに前記オフセットを加える手段とを含むことを特徴とするマイクロコ ンピュータ。 13.特許請求の範囲第1〜第12項のいずれかに記載のマイクロコンピュータ であって、異なる優先度と待機実行を有する複数のプロセス収集の1つにプロセ スを加え、またはその1つからプロセスを除去するスケジューリング手段を含む ことを特徴とするマイクロコンピュータ。 14.特許請求の範囲第1〜13項のいずれかに記載のマイクロコンピュータで あって、前記メモリは、各プロセスに関連する変数を記録する場所を含めて複数 のアドレス可能な場所を有する作業域を与え、前記プロセス・レジスタの1つは 、現在のフロセスの作業域のアドレスを識別する作業域ポインタを保持するよう に構成されることを特機とするマイクロコンピュータ。 15.特許請求の範囲第14項記載のマイクロコンピユータであって、各プロセ スのための作業域は、複数の代りのチャネルの1つを介してメッセージ入力を行 うのに使用するためにプロセスの状態を示す複数の特殊な値の1つを格納する場 所を含むことを特徴とするマイクロコンピュータ。
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 true JPS61500387A (ja) 1986-03-06
JP2664664B2 JP2664664B2 (ja) 1997-10-15

Family

ID=10551256

Family Applications (3)

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

Family Applications After (2)

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

Country Status (6)

Country Link
US (3) US4758948A (ja)
EP (3) EP0149311B1 (ja)
JP (3) JP2664664B2 (ja)
DE (3) DE3481389D1 (ja)
GB (1) GB8329509D0 (ja)
WO (3) WO1985002038A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009048306A (ja) * 2007-08-15 2009-03-05 Tokyo Metropolitan Univ 並列処理アーキテクチャおよびそれを用いた並列処理プロセッサ

Families Citing this family (47)

* 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
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
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
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
DE69308548T2 (de) 1992-05-01 1997-06-12 Seiko Epson Corp Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
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
JP3644959B2 (ja) 1992-09-29 2005-05-11 セイコーエプソン株式会社 マイクロプロセッサシステム
DE69330889T2 (de) 1992-12-31 2002-03-28 Seiko Epson Corp System und Verfahren zur Änderung der Namen von Registern
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
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
AU6776200A (en) * 1999-08-17 2001-03-13 Conexant Systems, Inc. Integrated circuit with a core processor and a co-processor to provide traffic stream processing
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 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5418640A (en) * 1977-07-08 1979-02-10 Ibm Computer system
JPS57768A (en) * 1980-06-04 1982-01-05 Hitachi Ltd Message transmission and reception system between processor
JPS59133650A (ja) * 1982-11-26 1984-08-01 インモス,リミテツド マイクロコンピユ−タおよびマイクロコンピユ−タのネツトワ−クならびにこれらを動作させる方法

Family Cites Families (16)

* 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
FR2253428A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2253420A5 (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
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
JPS5798062A (en) * 1980-12-12 1982-06-18 Hitachi Ltd Communication system between processors
JPS59146346A (ja) * 1983-02-10 1984-08-22 Fujitsu Ltd プロセス間通信方式
GB8309770D0 (en) * 1983-04-11 1983-05-18 Inmos Ltd Microcomputer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5418640A (en) * 1977-07-08 1979-02-10 Ibm Computer system
JPS57768A (en) * 1980-06-04 1982-01-05 Hitachi Ltd Message transmission and reception system between processor
JPS59133650A (ja) * 1982-11-26 1984-08-01 インモス,リミテツド マイクロコンピユ−タおよびマイクロコンピユ−タのネツトワ−クならびにこれらを動作させる方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009048306A (ja) * 2007-08-15 2009-03-05 Tokyo Metropolitan Univ 並列処理アーキテクチャおよびそれを用いた並列処理プロセッサ

Also Published As

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

Similar Documents

Publication Publication Date Title
JPS61500387A (ja) マイクロコンピユ−タ
US4369494A (en) Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system
US5165023A (en) Parallel processing system with processor array and network communications system for transmitting messages of variable length
US4860191A (en) Coprocessor with dataflow circuitry controlling sequencing to execution unit of data received in tokens from master processor
JPS59133650A (ja) マイクロコンピユ−タおよびマイクロコンピユ−タのネツトワ−クならびにこれらを動作させる方法
TW571239B (en) Branch instruction for multithreaded processor
US4374409A (en) Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system
US5418970A (en) Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content
JPH02146668A (ja) コンピュータ・システム
Williams Real-time systems development
JPH0235559A (ja) 二重バッファリング・サブシステム
GB2201568A (en) Graphics processor
JPS5916072A (ja) デ−タ処理システム用の特殊命令処理装置
Lampson et al. A processor for a high-performance personal computer
TW200901028A (en) Message queuing system for parallel integrated circuit architecture and related method of operation
JPH01161448A (ja) 開発支援特徴を具えるデータプロセツサ
KR950012052B1 (ko) 타이머 및 타이머를 구비한 집적 회로
JPH02500783A (ja) コマンダノードからのインターロック読み取りコマンドメッセージをレスポンダノードで実行する装置
JP2988971B2 (ja) コンピュータデバイス、網及びコンピュータ間の通信を制御するための方法
KR19990071464A (ko) 범용멀티소스인터럽트구성을갖는고체데이터프로세서
US4451882A (en) Data processing system
JP2514963B2 (ja) デ―タ処理装置
JPS60241132A (ja) マイクロプログラムシーケンスコントローラ
JPH0236459A (ja) プロセシング・システム
Brewer A real-time executive for multiple-computer clusters