JPS61500385A - マイクロコンピユ−タ - Google Patents
マイクロコンピユ−タInfo
- Publication number
- JPS61500385A JPS61500385A JP59504041A JP50404184A JPS61500385A JP S61500385 A JPS61500385 A JP S61500385A JP 59504041 A JP59504041 A JP 59504041A JP 50404184 A JP50404184 A JP 50404184A JP S61500385 A JPS61500385 A JP S61500385A
- Authority
- JP
- Japan
- Prior art keywords
- channel
- microcomputer
- input
- data
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram 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
【発明の詳細な説明】
マイクロコンピュータ
本発明はマイクロコンピュータに関するものであり、とくにプロセスの罰でデー
タ伝送を行えるように構成されたマイクロコンピュータに関するものである。
&IJと1里
本発明は本願出願人の特許明11α011351Gに記載されているマイクロ5
ンビユータの発展である。その明細書は、メモリと、同じマイクロコンピュータ
または相互に接続されたマイクロコンピュータにおいて複数の同時プロセスを実
行し、かつ同時プロセスの間で同期通信を行うように構成されたプロセッサを有
するマイクロコンピュータを記述している。しかし、その明細四に記述されてい
る装置はそれぞれ1詔長であるメツセージを送るように構成されている。各メツ
セージ命令の実行の後で1つの=liが送られ、それ以上の語を送らせるために
その後のメツセージ命令が要求される。16ビツトマシンの場合には、各メツセ
ージは16データピツトである。
1凰立亘刀
本発明の目的は可変長メツセージを送るようにする改良したマイクロコンピュー
タを得ることである。
本発明の別の目的は、多くの標準ビット長ユニットで送ることができる改良した
マイクロコンピュータを得ることである。
本発明の更に別の目的は、語長の異なる他の装置とのネットワークで通信できる
マイクロコンピュータを得ることである。
1豆立旦1
本発明は、メモリと、複数の同時プロセスを実行するために構成されたプロセッ
サとを備え、各プロセッサは、プロセッサにより逐次実行するための複数の命令
より成るプログラムに従って前記プロセスを実行し、前記プロセッサは(1)複
数のレジスタおよびそれらのレジスタの間のデータの転送に使用するデータ転送
手段と、(2)各命令を受け、プロセッサ・レジスタの1つにその命令に関連す
る値をロードする手段と、(3)受けた各命令に応答して前記データ転送手段と
レジスタをIIIt2Ilシ、プロセッサにその命令に従って動作させる制御器
と、を備えるマイクロコンピュータにおいて、このマイクロコンピュータは:、
(a)(i)1つまたはそれ以上のプロセスを識別して、プロセッサによる少く
とも1つの収集待機実行を形成する手段と、
(ii)現在のプロセスの実行に割込むことによりプロセスをデスケジューリン
グする手段と、(iii)プロセスを収集待機実行に加えることによりそのプロ
セスをスケジューリングする手段と、を備え、プロセッサがそれの処理時間を複
数の同時プロセスの間で共用できるようにするためのスケジューリング手段と、
(b)1つのプロセスと別のプロセスがそれぞれのプログラム・シーケンスにお
ける対応する段階にある時に、通信チャネルを使用することにより1つのプロセ
スから別のプロセスへメツセージの伝送を行えるようにする通信手段と、データ
を出力するために動作する出力プロセス、およびデータ転送に使用するために1
つまたはそれ以上のチャネルを識別するメツセージに応答してデータを入力する
ために動作する入力プロセス、
を含み、前記通信手段は、
(i)1つのアドレス可能な場所から別のアドレス可能な場所へ所定のビット長
のメツセージ・ユニットを転送する手段と、
(ii)メツセージ命令の実行に応答して、メツセージに含まれるべきメツセー
ジ・ユニットの数のカウントを与える手段と、
(iii )出力プロセスによるメツセージ命令の実行に応答して、それからデ
ータを出力させるアドレスを指示する差出し元指示手段と、
(iv)入力プロセスによるメツセージ命令の実行に応答して、それへデータを
入力させるアドレスを指示する宛先指示手段と、
を含むマイクロコンピュータを提供するものである。
各メツセージユニットの前記所定のビット長はなるべく1バイトにする。マイク
ロコンピュータは、プロセスへ、またはプロセスからメツセージで送られたバイ
トの数をカウントし、メツセージ中の全てのバイトが送られた時に信号を与える
手段をなるべく含むようにする。
送るべき残っているバイトの数のカウントが減少するにつれて、差出し元指示手
段により指示されたアドレスを変更するための手段をなるべく設ける。
送るべき残っているバイトの数のカウントが変化するにつれて、宛先指示手段に
より指示されたアドレスを変更するための手段をなるべく設ける。
同じマイクロコンピュータにおいて実行されているプロセスの間でデータの伝送
を行えるように構成され、前記チャネルはメモリ場所を備えることを特徴とする
マイクロコンピュータ。
同じマイクロコンピュータにおいて実行されるプロセスの間でデータ伝送を行え
るように通信手段を禍成し、前記チャネルがメモリ場所を有するようにする。
プロセッサは、メツセージ命令の実行の結果として示されたデータのバイト数を
、マイクロコンピュータのメモリ内の1つのバイトアドレスから別のバイトアド
レスまで直接に、直接コピーする手段をなるべく有するようにする。
通信手段は、種々のマイクロコンピュータにおいて実行されているプロセスの間
で外部データ伝送を行えるようにするために構成され、各チャネルは外部通信リ
ンクを備えるようにする。
各外部通信リンクはアドレス可能なメモリ場所により与えられるチャネノ1ノを
なるべく含むようにする。
各外部通信リンクはデータの1バイトを格納する手段をなるべく備えるようにす
る。
各外部通信リンクは、そのリンクのアドレスを用いてメツセージ命令を実行する
プロセスをデスケジュールするように構成され、各リンクは、リンクを介して送
るべきバイトの数の指示を、差出し元に対づるポインタまたはメツセージの次の
バイトに対する宛先アドレスとともに格納する手段をなるべく含むようにする。
各外部通信リンクは、送られたバイトの数をカウントし、全てのバイトが送られ
た時に指示を与える手段を含むようにする。
各外部通信リンクは、メツセージの全てのバイトが送られた時に、そのメツセー
ジ伝送に含まれているプロセスを再スケジュールするためにプロセッサへの要求
信号を発生する信号発生器をなるべく含むようにする。
図面の簡単な説明
以下、図面を参照して本発明を実施例について説明する。
第1図はマイクロコンピュータの主な特徴を示すブロック図、
第2図はマイクロコンピュータの一部をブロック図で更に詳しく示すもので、と
くに中央処理装置のレジスタ、データ経路および算術論理装置と、中央処理装置
とメモリの間のインターフェイスおよび通信リンクータにより実行するa優先度
プロセスのリストの作業域の間の関係を示し、
第4図は第3図に類似するが、高慢先度のプロセスが実行されている闇の低優先
度のプロセスのリストを示し、
第5図はマイクロコンピュータで使用されるポインタ形式を示し、
第6図はマイクロコンピュータで使用されるプロセス記述子の形式を示し、
第7図はマイクロコンピュータで使用される命令の形式を示し、
第8図は2台のマイクロコンピュータの間の直列リンクを通じて通信するための
データパケットの8式を示し、
第9図は2台のマイクロコンピュータの間の直列リンクを通じて通信するための
確認応答パケットの書式第10図はマイクロコンピュータの4つの直列リンクを
、マイクロコンピュータの残りの部分とのインターフェイス61とともに示し、
第11図は1つの直列リンクの出力チャネルと入力チャネルで用いられる信号を
一岡詳しく示し、第12図は直列リンクの出力チャネルを更に詳細にルを入力端
子と出力端子へ接続するリンクインターフェイスを示し、
第15図は1台のマイクロコンピュータにおける2つのプロセスの間の通信を行
う動作を15(a)〜15(e)の順序で示し、
第16図は異なるマイクロコンピュータで行われる類似の優先度の2つのプロセ
スの間の直列リンクを介する通信を行う動作を16(a)〜16(f)の順序で
示し、
第17図は、出力プロセスが出力をスタートする前に入力プロセスが「別の入力
」をスタートさせるようセスの間の直列リンクを介する通信を行う動作を17(
a)〜17(f)の順序で示し、
第18図は、出力プロセスが出力動作をまずスタートさせ、それに続いて入力プ
ロセスが「別の入力」動作を実行するような、異なるマイクロコンピュータで行
われる2つのプロセスの間の直列リンクを介する通信を行う動作を18(a)〜
18(d)の順序で示し、
第19図は、出力プロセスが出力動作を開始する前セスが「別の入力」動作を開
始するような、同じマイクロコンピュータで行われる2つプロセスの間で通信を
行う動作を19(a)〜19(Q)の順序で示し、第20図は、出力動作に含ま
れている高慢先度のプロセスYによって低優先度のプロセスXが直列リンクを介
して割込まれる場合の関連するレジスタ内容を20 (a) 〜20 (c)の
順序で示し、第21図は、同じマイクロコンピュータでE別の入力」を行う高優
先度のプロセスXと、出力動作を行う低優先度のプロセスrYJの間の通信中の
関!するし。
ジスタの内容を21 (a)〜21(c)の順序で示し、
第22図は、本発明に従ってマイクロコンピュτり間の通信を行う、異る語調を
有するネットワークを示す。
好適な!施例の説明
この例で説明するマイクロコンピュータは、プロセッサと、RAMの態様のメモ
リと、外部通信を行えるようにするリンクを有し、1枚のシリコンチップで構成
された集積回路を備える。このマイクロコンピュータの主な要素は、第1図でp
形井戸相補MO3技術を用いている1枚のシリコンチップ11の上に示されてい
る。中央処理装Wi(CPU)12にいくつかの読取り装置専用メモリ(ROM
)13が設(プられている。
このROM13は、インターフェイス制御ロジック15により制御されるメモリ
・インターフェイス14に結合される。CPU12は算術論理装置(ALU)と
、レジスタと、第2図に詳しく示されているデータ経路とを含む。CPU12と
メモリ・インターフェイス14はバス16へ接続される。バス16はチップ11
上の素子の間の相互接続を行う。サービス装置17に複数の入力ピン18が!5
1 itられる。このマイクロコンピュータにランダムアクセスメモリ(RAM
>19とROM20が設けられる。チップにおけるメモリの容量は、プロセッサ
12が外部メモリなしで動作できるように、1にバイトより少くない。チップ上
のメモリの容Rはなるべく少くとも4にバイトにする。
外部メモリインターフェイス23が設けられるこの外−クを形成するためにマイ
クロコンピュータを他のコンピュータへ結合できるようにするために、入力ビン
26と出力ビン27を有する複数の直列リンク25が設けられる。1つの直列リ
ンクの入力ビンと出力ビンは、各自の専用の1本の一方向接続線により、第22
図に示すように他のマイクロコンピュータの直列リンクの対応する出力ビンと入
力ビンへ接続できる。各直列リンクは、プロセス・スケジューリング・ロジック
を備える同期論理M置10に接続される。
第1図に示すブロック図は、ヨーロッパ特許出願箱83307078.2号、特
許出願昭和58年第221455号、米国特許出願箱552601@、第552
602j3、m 553027 号、1553028号、第553029号に含
まれているブロック図に対応する。説明の不必要なくり返えしを避けるために、
そのマイクロコンピュータの構造と動作の詳細については以下に説明しないが、
上記特許出願における記載を参考のためにここに含ませる。
この実施例はT rasputer (インモス・インターナショナル(I N
M OS I nternational) plc (7)商標〕マイクロ
コンピュータを改良したものである。前記特許出願に記載されている特定の実施
例においては、全てのプロセスは同じ優先度を有するものどじて取り扱われてい
る。あるプロセスと別のプロセスの間で通信されるメツセージは、引き続く同期
動作の間で一様なメッセージ長を有し、記述されている例においてはメッセージ
長は1詔であつた。あるプロセスがいくつかの別の入力チャネルのうちの1つか
ら入力することをめられたとすると、出力チャネルが可能なチャネルのうちの1
つのチャネルの出力動作を開始するまでそれらのチャネルをテストするために、
そのプロセスのスケジュールを保持する必要があった。
この実施例は、種々のプロセスに異なる優先度を割当てることができるようにし
た改良についてのものである。この実施例により、可変長メツセージをプロセス
の間で行えるようにする。各メツセージは、バイトのような1つまたはそれ以上
の標準ビット長単位より成る。更に、この実施例により、出力プロセスを待って
いる間に、スケジュールを保持する必要なしにいくつかの別の入力チャネルのう
ちの1つのチャネルから入力プロセスを入力させるようにする。
マイクロコンピュータの全体の構成は、前記特許出願に記載されているマイクロ
コンピュータの構成に全体として類似する。以下の説明においては、類似の名称
が、前記特許出願にお(プる実施例に対応する部分に与えられる。メモリは、ポ
インタにより示すことができるアドレス可能な場所を有する複数のプロセス作業
域を設ける。メツセージ通信は、同じマイクロコンピュータにおけるプロセス間
通信の場合には、アドレス可能なメモリ場所くここではソフト・チ11ネルと呼
ぶ)を介して行うことができる。種々のコンピュータの間のプロセス間通信を行
うために、入力チャネルおよび出力チャネル(ここではハード・チャネルと呼ぶ
)が直列チャネルで行われ、それらのチャネルは、メモリに設けられているソフ
ト・チャネルに類似するやり方でアドレスすることもできる。
以上説明した改良を実施するために、マイクロコンピュータの構成と動作を種々
変更することが必要であり、以下の説明は、それらの改良を行うために変更が含
まれる面に向けることにする。
前記特許出願に記載されている例におけるように、記述されている特定の;n調
は16ビツトであるが、8.16.24または32のような語調またはその他の
2 gを使用できることがわかるであろう。更に、この場合には、種々の語調の
マイクロコンピュータが、それぞれの独立の語調とは無関係に、互いに通信でき
るようにそれらのマイクロコンピュータを接続できる。
この例では、同じマイクロコンピュータ、または異なるマイクロコンピュータの
間、におけるメツセージ通信は標準ピット長の1つまたはそれ以上のメツセージ
単位を送ることにより行われる。この例においては各メツセージ単位は8ビツト
より成り、それにより1バイトを形成する。このことは、メモリ内でバイトを識
別できることが必要であることを意味する。プロセッサはメモリを詔でアクセス
し、全てのバイト動作がプロセッサにより行われる。第5図に示すように、ポイ
ンタというのはデータの1つの語である(この特定の例では16ビツト)。最下
位ビットはバイト・セレクタとして機能し、それ以外の15ピツトは詔のアドレ
スを与える。このバイトセレクタを表すために必要なビットの数は、l゛イクロ
コンピユータ語調に依存する。16ピツト機の場合には、バイト・セレクタとし
て1ピツトだけを必要とする。しかし、24ビツトまたは32ビツトのマイクロ
コンピュータの場合にはバイト・セレクタは2ピッ1−必要であり、80ビツト
・マイクロコンピュータではバイト・セレクタは4ピツト必要であることがわか
るであろう。バイトではなくて詔を識別するためにポインタが用いられる場合に
は、その詔の最下位バイトに対するポインタが用いられる。
ポインタは2の補数の符号値として取り扱われる。
このことは、ポインタ中の最上位ピットが1であると、最上位ビットが負とされ
、残りの全てのビットが正の数を表すことを意味する。最上位ピットが0である
と、ポインタ中の全てのビットは正の値を表すものとされる。これにより、標準
比較機能が数値に対して用いられるのと同様にして、ポインタ値に対して標準比
較機能が用いられる。
通信チャネルの状態にとくに関連しである特殊な動作がめられることを示ずため
にある価が反転されるから、それらの値はポインタとしては決して用いられない
。
以下の記述においては、それらの値および他の値を表すために下記のような名称
が用いられる。
HO8tNeQ 負の最大値
(最上位ピットが1で、残
りのピットがすべて0)
HO3tPO3正の最大値
(最上位ピットがOで、残
りのピットがすべて1)
HachineTRUE I
HachineFALSE 0
NOtPrOCeSS、 p HostNegEnabling、p Host
Neg+1waiting、p HostNeg+2Ready、 p Hos
tNeg+3前記特許出願の例におけるように、各プロセスは、それにより取り
扱われるローカル変数と一時的な値を保持するために用いられるメモリ内の訃の
ベクトルより成る作業域を有することができる。プロセス作業域のための1組の
場所を指すために作業域ポインタWPTRが用いられる。各プロセスの作業域は
いくつかの語より成るから、バイト・セレクタを含む必要はない。したがって、
プロセスの優先度を表すためにバイト・セレクタ・ピットを用いることが可能で
ある・このようにして、各プロセスを第6図に示す種類の「プロセス記述子」に
より識別できる。最下位ピットはプロセスの優先度を示し、それより上位の15
ビツトはプロセス作業域を識別するメモリ内のz合を示す。
ここで説明している例では、マイクロコンピュータは2つの可能な優先度のうち
の1つを各プロセスに割当てる。高い優先度の成分には名称p ri −Qが与
えられ、低い優先度のプロセスは名称pri−1を有する。
したがって、各プロセス記述子は、作業域ポインタW P T Rの「ピットワ
イズ(bitwise)ORJとプロセス優先度をとることにより形成される1
つの語を備える。同様に、作業域ポインタW P T Rは、プロセス記述子の
[ピットワイズANDJとN0T1を形成することによりプロセス記述子から得
ることができる。プロセスの優先度は、プロセス記述子の[ピントワイズAND
Jと1を形成することにより得ることができる。
PU−−、fよ レジ
中央処理装置12およびそれの動作は第2図を参照することにより十分に理解さ
れるであろう。
CPU12はXバス、Yバス、2バスおよび双方向データバス31に接続される
算術論理装置(ALLI)スタの動作と、バスとの相互接続は、32でI!図的
に表されているスイッチにより制御され、かつROM13に含まれているマイク
ロ命令プログラムから得られる信号により制御される。CPUとメモリの間の通
信は、メモリ・インターフIイス14に達する一方面アドレス経路33とデータ
31を介して行われる。
前記特許出願におけるように、各命令は第7図に示す形式を有する8ビツトより
成る。そのうちの4ビツトは命令の所要の機能を表し、残りの4ピツトは各デー
タに割当てられる。プロセスのためのプログラム・シーケンスから得た各命令は
命令バッファ34へ与えられ、その命令はデコーダ35により複合される。その
デコーダの出力は状態マルチプレクサ36を介して、マイクロ命令ROM13を
アドレスするために用いられるマイクロ命令レジスタ37へ与えられる。命令バ
ッファ34と、デコーダ35と、状態マルチプレクサ36と、MIR37と、マ
ルチプレクサROM13と、スイッチ32との動作は前記特許出願に記述されて
いるのと全体として同じである。
この実施例は優先度がOのプロセスと、優先度が1のプロセスとの2組のプロセ
スを取り扱うように構成されているから、2つのレジスタ・バンクが設けられる
。優先度1のプロセスのためにレジスタ・バンク38が設けられ、類似のレジス
タ・バンク39が優先度0のプロセスのために設けられる。両方のレジスタ・バ
ンクは類似のレジスタ群を有し、それらのレジスタはX、Y、Zのバスとデータ
・バスへ同様に接続される。簡単にするために、レジスタと、それらのレジスタ
の接続はレジスタ・バンク38についてのみ詳しく示しである。特定の優先度を
割当てられている2つのレジスタ・バンクに加えて、CPUは定数ボックス40
と、レジスタ・バンク・セレクタ41と、第2図に示されているいくつかの他の
レジスタとを含む。それらのレジスタは優先度1のプロセスと優先度Oのプロセ
スに共通である。それらのレジスタは次のとおりである。
両便 度プロセスに共通のレジスタ
HADDR必要なメモリ位置のアドレスを有するメモリアドレスレジスタ42゜
DATAOUT データバス31上のデータをメモリに供給するためのレジスタ
43゜
1B メモリからの命令をシーケンシャルに受けとる命令バッファ34゜
TE)IP REG 一時レジスタ44゜PROCPTRREG ブOセスポイ
ンタを保持するレジスタ45(優先度は示さない)。
PRQCOESCREG プロセス記述子を有するレジスタ46゜PRIFLA
G 現在実行されているプロセスの優先度がOか1かを示すための1ビツト
レジスタ、即ちフラグ47゜プロセッ
サがプロセスを実行していないとき
は、1にセットされる。
PROCPRIFLAG プロセスの優先度を示すための1ビツトレジスタ、即
ちフラグ48゜
L 1のためのバンク38における
レジスタ
TREG 一時レジスタ49゜
IPTRREG レジスタ51によって示される任意のプロセスの命令ポインタ
を保持する
レジスタ50゜
WPTRREG 現在実行中のプロセスまたは割込みプロセスの作業域ポインタ
(WPTR)を保持するレジスタ51.。
BPTRREG 実行を待機中の優先度1の複数のプロセスのリストの最後のプ
ロセスの作業域ポインタを保持するレジスタ52゜
FPTRREG 実行を待機中の優先度1の複数のせ1のリストの先頭のプロセ
スの作業域ポイン・夕を保持するレジスタ53゜
^REG ALtl 30についてのオペランドを保持する第1のレジスタ54
゜レジスタ55.56とともにスタックを形成する。
BREG 前記スタックを形成する第2のレジスタ55゜
CREG 前記スタックを形成する第3のレジスタ56゜
0REG 命令バッファ34内の命令から導びかれるデータを受取るためのオペ
ランドレジスタ57゜一時レジスタとして用いられる。
5NPFLAG 1ビツトレジスタ、即ち58.1にピット実行中の命令の完了
時にスケジュール解除されるべきであることを示す。
C0PYFLAG 1ビツトレジスタ、即ちフラグ59.1にセットされるとプ
ロセスがデータブロックをメモリへあるいはメモリからコピーしていることを示
す。
優先度Oのプロセスのためのレジスタ・バンク39は、優先度1のプロセスにつ
いて先に説明したレジスタ・バンクと同じである。以下の説明においては、接尾
数〔1〕は優先度が1のバンクに関連するレジスタを示し、接尾数(0)はレジ
スタが優先度0のバンクに関することを示す。優先度がわからない的は接尾詔(
Pri)は、成分に対する適切な優先度のレジスタが用いられることを示す。
それらのレジスタの:R調は、この場合には、1ビツト・フラッグ47.48.
58.59から16ピツト隔てられる語調である。1度にただ1つの命令を保持
するように構成される゛ものであれば、命令バッファは8ピツト長とすることが
できる。
A、B、Cのレジスタ・スタック54,55.56はほとんどの演算動作および
ほとんどの論理動作に対するソースおよび宛先である。Bレジスタに存在してい
る内容をCレジスタヘロードし、Aレジスタの内容をBレジスタヘロードをして
から、Aレジスタにある値をロードするように、それらのレジスタは構成される
。同様に、Aレジスタから取り出した値を格納させると、Bレジスタの内容がA
レジスタへ動かされ、Cレジスタの内容が8レジスタへ動かされる。
TREG49は、データのブロックのコピーをめるある通信命令とは別の全ての
命令の実行中に値を一時的に保持するために利用でき、その場合には、データの
ブロックのコピーが終った時に実行すべき動作を示すためにTREG49が用い
られる。
両方のレジスタ・バンク38.39の0REG57は、両方の優先度のプロセス
に対して、命令のうちCレジスタへ送られる部分が、適切なマイクロ命令の発生
に使用するために、デコーダへ達するように、デコーダ35に接続される。両方
の優先度のバンクのSNP FLAG5BとC0PY FLAG59も、任意の
時刻にプロセッサにより実行すべき次の動作の決定において、いずれかの優先度
のプロセスに対するそれらのフラグの設定をマイクロ命令が考慮に入れることが
できるように、状態マルチプレクサ36へも接続される。あるプロセスの作業域
ポインタ(WPTR)が、それからそのプロセスの0−カル変数をアドレスでき
るベースとして用いられるから、作業域ポインタにより示される場所からのオフ
セット値を針幹することが時に必要である。定数ボックス40がYバスに接続さ
れ、マイクロ命令ROM13の制御の下に定数値をそのバスに置くことができる
ようにする。それらはプロセス作業域内のオフセット場所を指すために使用でき
る。レジスタ・バンク38または39の一方または他方を選択づるために、レジ
スタ・セレクタ41はPRI FLAG47と、PROCPRI FLAG48
と、マイクロ命令ROM13とから入力を受ける。レジスタ・バンク・セレクタ
からの出力は状態マルチプレクサ36と、デコーダ35と、スイッチ32とに接
続される。マイクロ命令ROM13の出力に応じて、セレクタはPRI FLA
G47またはPROCPRI FLAG48により示されているレジスタ・バン
クを選択する。
プロセスイ業域のためのメモリ割当て
前記特許出願に記載されている例と同様に、マイクロコンピュータはいくつかの
プロセスを時分割式に一緒に実行する。−緒に実行されるプロセスは同時プロセ
スと呼ばれ、任意の時刻に実行されているプロセスは現在のプロセスと呼ばれる
。各同時プロセスは、そのプロセスにより取り扱われるローカル変数と一時的な
値を保持するために、作業域と呼ばれるメモリ領域ヲ有スる。作業域の第1のロ
ーカル変数のアドレスは作業域ポインタ(WPTR)により示される。これは第
3図に示されている。第3図においては、4つの同時プロセスL、M、N、Oが
作業域60.61゜62.63を有する。この図には作業域60が詳しく示され
ており、WPTRREG51に保持されている作業域ポインタは、この例では1
0000として示されているアドレスを有する単一語場所である零場所を示す。
このプロセスのための他のローカル変数は、作業域ポインタにより示されている
鮒から正のオフセット・アドレスとしてアドレスされる。零楊所からの小さい負
のオフセットを有する作業域場所のいくつかはスケジューリングと通信を行う目
的のために用いられる。この例においては別に3つの詔楊所65゜66.67が
示されている。それらの詔場所は負のオフセット1.2.3を有し、WPTRに
より示されている零場所の下に示されている。それら3つの場所は次の通りであ
る。
オフセット オフセット名 場 所 名−11Dtr、S II)tr 1Oc
at’1on−2Link、s Link 1ocation−35tate、
s 5tate 1ocationjJJ 所65 Get、あるプロセスが現
在のプロセスではない時に・そのプロセスが現在のプロセスとなった場合にプロ
セスにより実行すべき次の命令を示すポインタ(IPTR)を保持するために使
用される。場所66は、実行を持っているプロセスのリンク・リストすなわち行
列上の次のプロセスの作業域ポインタを格納するために用いられる。場所67は
、別の入力動作を実行しているプロセスの状態の指示を含むために、またはデー
タのブロックをコピーするためのポインタとして通常使用される。これについて
は後で詳しく説明する。
このメモリはプロセス間通信のための語場所も与える。第3図はそのようなソフ
ト・チャネル70を示す。
メモリ内の1つの語により与えられるソフト・チャネルを通じての通信に加えて
、直列リンクを介しての外部通信も行うことができる。
1見ユ之l
前記特許出願に記載されているように、データは所定のブ0トコルを有づるデー
タ・パケットの形で一方のマイクロコンピュータから他方のマイクロコンピュー
タへ送られる。データの受取りはI!応答パケットの送信により示される。この
特定の例においては、データは第8図に示すような形で送られる。各パケットは
標準のデータ単位より成る。この場合にはそれは1バイト(8ビツト)より成る
。データ・パケットはそれぞれ1である。2つのスタート・ビットで始まる。そ
のスタート・ビットの後にデータバイトが続き、0であるストップ・ビットで終
る。第8図に示すように各パケットの送信の後で、そのパケットを受ける直列リ
ンクの入力チャネルは、それに組合わされている出力チャネルへ、第9図に示す
ような形式の確認応答パケットを送ることを知らせるように構成される。このパ
ケットは1で始まり、Oで終る2ピツトのパケットにすぎない。データの送りま
たは受取りのためにプロセスにより実行される命令は、そのようなデータのパケ
ットを2個以上含むことを要求することがあり、したがって命令により要求され
るメツセージを終るためにはどれ位の数のデータの標準単位すなわちバイトを送
るべきかを命令は指示する。第10図に示されている例においては、各直列リン
ク70.71゜72.73が入力ピン26と出力ピン27を有しているのが示さ
れている。各リンクは並列バス75.76によりメモリ・インターフェイス15
に接続される。
それらのリンクは線77.78によりインターフェイス制御ロジック15へも接
続される。それらの線77.78は読出し要求信号と書込み要求信号をそれぞれ
インターフェイス制御ロジックへ与える。IIIIIlロジック15はrDAT
A VALIDJIMII79を介してそれらのリンクへ与えるように構成され
る。
各リンクは状態出力信号を1180を介して第2図の状態マルチプレクサ36へ
与えるように構成される。Zバスは各リンク70〜73へも接続されるとともに
、線81を介して同期ロジック10へ接続される。線82はマイクロ命令ROM
13からの出力を同期ロジック10へ与え、絵83はこの同期ロジックからの信
号を状態マルチプレクサ36へ与える。リンクがプロセッサが動作することをめ
たことを指示した時に、リンクからの要求信号を伝えるために184は各リンク
を同期ロジック10に接続づる。要求信qをプロセッサからのリンクへ与えるた
めに、線85がマイクロ命令R,0M13を各リンクに接続する。
第11図は1つのリンクを詳細に示す。このリンクは出力チャネル90と入力チ
ャネル91を有する。それら両方のチャネルはリンク・インク−フェイス92に
接続される。このリンク・インターフェイスは第14図に詳しく示されている。
リンク−インターフェイス92は入力ピン26と出力ピン27に接続され、かつ
、第8.9図を参照して先に説明したように、データ・パケットとW1認応答パ
ケットを受け、または送るように構成される。出力チャネル90と、入力チャネ
ル91と、リンク・インターフェイス92とには共通りロックからクロック・パ
ルスが全て供給される。出力チャネル90はリンク・インターフェイスから○I
JTPUT ACK信号94を受け、リンク・インターフェイスへ0UTPUT
DATAをバス95を介して、および0UTPUT DATAVALID信号
を線96を介して供給するように構成される。同様に、入力チャネルはリンク・
インターフェイス92からINPUT DATAをI!97を介して受け、かつ
INPUT DATA VALID信号を線98を介して受け、リンク・インタ
ーフェイスへINPUTACK信号を線99を介して送るように構成される。
リセット線101が出力チャネル90と、入力チャネル91と、リンク・インタ
ーフェイス92とに接続される。
バス76に与えられたアドレスからコピーすべきデータの読出し要求を線77を
介して行うことにより、指定されたメモリ場所から所定数のデータ・バイトを出
力させるように出力チャネル90は構成される。データは、線79を介しての0
UTPUT DATΔVALID信丹とともに、並列バス75を介してそのチャ
ネルへ供給される。
同様に、入力チャネル91は、バス76を与えられたメモリ・アドレスにおける
書込み要求を線78に生ずることにより、メモリのある指定された宛先アドレス
へ指定された数のデータ・バイトを偶込ませることができる。
プロセッサと通信するために、両方のチャネル90.91は2バスに接続される
。マイクロ命令ROM13は線85旦を介して0UTPUTREQUESTを出
力チャネルに対して行うことができる。入力チャネル91の場合には、マイクロ
命令ROM13は3種類の信号をバス85へ与えることができる。それはINP
UT REQUEST86夏ま9(M)1ら(7)OUTPUT RUN RE
QUESTを伝えることができる。そのバス84はINPtJTPRIORIT
Y信号84回とともにINPUTREADY REQUEST84旦を送ること
ができ、または入力チャネル91からINPLJTPRl、0RITY信号とと
もにINPUT RUNREQUEST84eを同期ロジック10へ送ることが
できる。
入力チャネル91は5TATtJS OUT信号も線80へ与える。
それらの信号のm態については後で詳しく説明する。
第12図は出力チャネル90を更に詳しく示す。このチャネルを用いてプロセス
の優先度を示すために用いられる優先度レジスタ110へ2バスが接続される。
Zバスはバイト・カウンタ111とポインタ・レジスタ112へも接続される。
ポインタ・レジスタ112は、バス76上で指示すべきデータのソースのアドレ
スを含むために用いられる。出力チVネルは転送状態マシン113も含む。直列
リンク内の各状態マシンは、マシンの現在の状態を保持する状態レジスタと、プ
ログラム可能な論理アレイとで構成される。その論理アレイは、状態レジスタの
ための新しい値と、出力信号の所定のパターンとを発生するために状態レジスタ
の値と、状態マシンへの各種の入力信号とに応答する。
状態マシン113は4つの入力を有する。それらの入力はI285旦上の出力要
求と、1101上のリセットと、線94上の出力確認応答と、線114上のカウ
ント零とである。メツセージ出力の初めに、バイト・カウンタ・レジスタ111
はメツセージ内の送られるべきバイトの総数を示づが、各バイトが送られるにつ
れて、レジスタは、状態マシン113からのデカラント出力信号115のa、1
1111の下に内容を減少し、送るべきバイトが残らなくなった時にカウント零
信号114を発生する。デカラント出力115に加えて、状態マシン113は読
出し要求出力を線77へ与え、実行要求を線116へ与え、インクポインタ(1
ncpointer)を線117へ与える。ポインタ・レジスタ112は、最初
に送るべき最初のバイトへのポインタを最初に含むが、I!3117上の信号の
ために、各バイトが送られるにつれてポインタが増加される。
出力端子116は実行要求信号線84bと、優先度レジスタ110から線119
を介して加えられる別の入力を受けるAND’−ト118とに接続される。この
ようにして、実行要求が線84亘において行われる時に、出力プロセスの優先度
を線84旦上で示すことができる。
メモリ・インターフェイスからバス75と線79へ与えられた信号はチャネルを
直接通って、線95と96を介してリンク・インターフェイス92へ与えられる
。バス75とI!I!95は送るべきバイトの値を送り、線79と96は出力デ
ータ妥当信号を送る。その出力データ妥当信号は、いま正しく送られたデータが
データの全バイトを表すことを示すためにメモリ・インターフェイスにより発生
される。
転送状態マシン113に対する一連の遷移状態は次の通りである。
第13図は、入力チャネルを一層詳しく示すものである。この入力チャネルは優
先度フラグづなわち優先度レジスタ120と、バイト・カウンタ・レジスタ12
1と、ポインタ・レジスタ122とを含み、それらのレジスタは全てZバスに接
続される。このチャネルのための入力信号と出力信号は3つの状態マシンにより
a+Wされる。それらの状態マシンはTRANSFER状態マシン125と、’
ALTERNAT I VE状1?シン126と、REA[)状態マシン12
7とで構成される。各状態マシンは同じソース93からクロック・パルスの入力
を受Iプる。
TRANSFER状態マシン125は、チャネルを介してのメモリ場所へのメツ
セージの入力を制御する。メツセージを入力するために必要な命令をプロセッサ
が実行すると、プロセッサは、入力すべきバイトの数の指示をバイト・カウンタ
・レジスタ121へ0−ドし、メツセージをコピーすべき第1のメモリ場所への
ポインタをポインタ・レジスタ122へO−ドし、入力命令を実行するプロセス
の優先度の指示を優先度フラグにセットする。それから、プロセッサは線85b
に対して入力要求を行う。それは転送状態マシン125への入力の1つを形成す
る。バイト・カウンタ・レジスタ121は、入力メツセージの各バイトが受けら
れるにつれて、最後に零に達づるまでカウントが減少させられるように構成され
た減分器を含む。周られるにつれて、入力メツセージの次のバイトのためのメモ
リ宛先アドレスへポインタが増加するように増分器を含む。
転送状感マシン125はtalolからセット入力を受け、バイト・カウンタ1
21からカウント零信号を線128を介して受け、入力要求をl1185bから
受け、READY信号をREADY状態マシン127から線129を介して受け
る。転送状態マシン125は、バイト・カウンタ121を減少させるために、出
力DECCOUNTを線130に出す。同様に、転送状態マシン125は、ポイ
ンタ・レジスタ122の値を増加さゼるために、出力INGPOINTERを線
131に生じ、出力書込み要求を線78に与え、入力ACKを線99に与え、R
UNREQを線84eに与える。
転送状態マシン125の一連の状態は次の通りである。
IncPointer
oeccount
ツブの形で構成でき、データのバイトがリンク・インターフェイス中の入力レジ
スタにより受けられたが、まだ111f認応答しないかどうかを示すために用い
られる。このREADY状態マシン127はリセット入力端子101を有し、更
に妥当な入力バイトがインターフェイスの入力レジスタで受けられた時に、リン
ク・インターフェイスから得た入力(g号入カデータ妥当を紗98に有する。ま
た、状態マシン127は、データのバイトがリンク・インターフェイスにより受
けられた時にその状態マシンが1つの状態にセットされ、それから入力ACK信
号が線99にセットされた時にリセットされるように、入力ACK信号1i19
9から愕られる入力132を有する。状態マシン127は1つの出力READY
をI!J129へ与える。その出力READYは転送状態マシン125への入力
と、ANDゲート133への1つの入力と、代替状態マシン126へのREAD
Y入力134とを形成する。
READY状態マシン127の一連の状態は次の通りである。
遷移
any Re5et DataAbsentDataAbSent Δ 1np
utDataVal id DataAbsentData八bsent へI
nDutDataValid Ready DataPresentDataP
reSent △InputAck Ready DataPresentDa
taPresent ] nputAck DataAbsentネルのための
命令を実行するプロセスを取り扱う。
READY入力134に加えて、代替状態マシン126はリセット入力101と
、可能化人力85Cと、状態質問入力85dとを有する。代替状態マシン126
はREADYREQ出力135を発生して、それを信号1184Gへ与え、更に
、出力REPLYを線136に生ずる。この出力はANDゲート133への第2
の入力を形成する。出力線135と84eはORゲート137への入力を形成す
る。このORゲートはANDゲート138へ出力を与える。このANDゲ−トは
入力チャネルを用いるプロセスの優先度を示す入力も線139から受ける。
線85上の入力信号を用いることにより、プロセッサは入力要求を行うことがで
き、またはチャネルを可能状態にでき、あるいは状態質問を行うことができる。
それらについては後で詳しく説明する。リンクはRUN要求またはREADY要
求を線84へ与え、READY要求またはRUN要求が行われた時に優先度が線
84d上に示される。ANDゲート133を設けることにより、READY状態
を線80上に指示できる。
代替状態マシン126の一連の状態は下記の通りである。
遷移
Disabled 5tatusEnquiry DisabledDisab
led Δ5tatusEnquiry ハEnableへReady Rea
dyReq Disabl 1dDisabled △5tatusEnqui
ry ハEnableへReadV ’ EnabledDisabled Δ
5tatusEnquiry /\Enable DisabledEnabl
e 5tatusEnquiry Reply DisabledEnable
d △5tatuSEnquiry 八Ready ReadyReq Dis
abledEnabled ΔStatuSEMu+ryハReady Ena
bled出力チャネル90と入力チャネル91はプロセッサおよびメモリと通信
するが、第8.9図に示すプロトコルに従って出力すべきデータ・パケットまた
は確認応答パケットを作り、かつ、別のマイクロコンピュータにより出力された
それらのパケットのいずれかを受けて、認知するのはリンク・インターフェイス
92である。このリンク・インターフェイスはビット・カウンタ141を有する
出力状態マシン140と、ピッによって構成される。そのリンク・インターフェ
イスは出力レジスタ144も含む。この出力レジスタは出力データ・バス95に
接続され、データのバイトを受けるように構成される。入力データを受けるため
に入力レジスタ145が入力ビン26に接続される。このレジスタ145は入力
データ・バス97を介してメモリ・インターフェイスに接続される。リンク・イ
ンターフェイスは2つのレディ指示器146.147も含む。それらの各レディ
指示器はフリップフロップを有する。リンク・インターフェイスは2つのラッチ
148.149も含む。各ラッチもフリップフロップを有づる。リンク・インタ
ーフェイスは3個のANDゲート150,151.152とORゲート153’
b含む。出力データ・マシン140は下記のような複数の入力および出力を有す
る。
朋1 目的
160 Re5et 信号@ 101に接続したリンクインターフェイスリセッ
ト
161 Datago データ転送初期化162 Countzero ビット
カウントが0かどうかテスト
163 Ackgo 確に応答化q転送初期化出 力 :
164 Loadcount ビットカウンタの値を転送されるべきビット数に
セット
165 DeCCOunt ビットカウンタを1だけ減らす
166 oneout 出力ビン27を1にセット167 DataOLIt
出力ビン27をシフトレジスタの最下位ビットにセット
168 5hiftout データレジスタを1位置だけシフト
169 Dtagone データ転送完了170 ACkQOne 確認応答信
号転送完了入力状態マシン142は次のような入出力を有する。
171 Re5et 信号線101に接続したリンクインタフェイスリセット1
72 Datain 入力ビン26からのデータ173 Countzero
ビットカウントがOかどうかテスト出カニ
174 Loadcount ットカウンタの値を受信すべきビット数にセット
175 Deccount ビットカウンタを1だけ減らす17B 5hift
in ビンから最下位ビットを取り込んでデータレジスタを1位置だけシフト
177 5etdataready データ転送完了の受信178 5etac
kready 確認応答信号転送完了17)受信出力状態マシンの一連の状態は
以下のとおりである。
1、any Re5et 1dle
2、1dle (△Datago) ハ(△ACkQO) 1dle3、1dl
e Ackgo 0neout ackflag4、1dle (△ACkQO
)ハDatago 0ncput datarlag5、ackflag Ac
kgone 1dle6、datarlag 0neout databits
LOadCOIInt
7、 databits △countzero oeccount data
b+tsShiftout
Dataout
8、databits cot+ntzero Datagone idle入
力状態マシン142の一連の状態は以下のとおりである。
入力状態マシン142
1、 any Re5et 1dle
2、1dle ΔDatain 1dle3、1dle Datain 5ta
rt4、5tart △Datain 5etAckready 1dle5.
5tart Datain LoadCount databitse、 da
tabits △C0untZerO5hiftin databitSDec
Cou、nt
7、 databitS countzero 5hiftin dataen
d8、dataend 5etDatready 1dle出力欄の下側に特定
の出力が記載されている両方の状態マシンに対して、その特定の出力を示すため
に信号1が発生されることをこれは意味する。他の全ての時には記載されていな
い各出力の信号値は零の形である。入力欄の下に記載されている入力を除く全て
の入力は無視される。記号\/、八およびΔはそれぞれプール演算AND、OR
,NOTを示すために用いられ−る。
ランチ148の目的は出力動作を制maすることである。データのバイトが出力
されると、出力端子169からの信号が、入力状態マシンから出力端子178か
らの確認応答信号によってラッチ148がセットされるまで、それ以上の出力を
阻止するためにANDゲート150を制御する状態にラッチ148をセットする
。同様に、ラッチ149は入力動作を制御する。
データが受けられると、I!1i177上の信号がラッチ149をセットして、
確認応答が送られるまでデータが入力されたことを思い出させる。それはAND
ゲート152を制御して、確認応答が送られたことを示す出力170によってラ
ッチ149がリセットされるまで、ACKGO入力を出力状態マシンへ与えられ
るようにする。
このリンク・インターフェイスの動作は次の通りである。まず、出力リンクがデ
ータを出力することを希望している状況について考える。第12図の出力チャネ
ルはデータをバス95に沿って出力レジスタへ供給させ、出力データ妥当信号が
レディ指示器147をセットする。この指示器147の出力はANDゲート15
0へ与えられ、ラッチ148の状態はDataGO信号が161に入力されるよ
うなものである。ピン27における出力はORゲート153を通じてとり出され
るから、その出力は、出力状態マシンから出力端子167に供給される信号に応
じて、出力状態マシンからの出力端子166上の信号、またはANDゲート15
1の出力端子における信号より成る。出力状態マシン140についての;i移牧
かられかるように、リセットされた後でこのマシンが遊び状態になっている時は
、線166へは指示された出力が与えられないから、零を示す信号レベルが出力
ピン27へ与えられる。入力端子166へ[)ataGo信号が与えられると、
これは、入力DataGoが存在して、A ckGo信号が存在しない状態表の
4行に対応する。そうすると、この表に示されているように信号Oneoutが
出力端子166に発生させられる。そのために信号1が出力ピン27に与えられ
、第8図に示されているデータ・パケットの最初のビットを形成する。それから
、出力状態マシンは、状態表の6行かられかるように、rData Flag
Jと呼ばれる状態へ移る。この状態においては、それ以上の入力が与えられない
と、状態マシンは別のQ neout信号を出力端子166に生じさせ、Loa
d count信号を出力端子164に生じさせる。そのために第2の信号値1
がピン27によって出力させられ、それにより第8図におけるデータ・パケット
の2つのスタート・ビットを形成する。ビット・カウンタ141には、出力すべ
きビットの数もロードされる。この場合にはその数は8である。そうすると出力
状態マシンは「databitsJと呼ばれる状態になる。そうすると、状態表
の7行と8行かられかるように、レジスタ144のデータ内容を出力ピン27へ
出力させるように、dataout信号がANDゲート151へ与えられる。出
力端子168に生じた桁送り出し信号がレジスタ144からデータを順次放出さ
せ、その結果としてビット・カウンタ141内のカウントが減少させられる。状
態表の8行に示すようにカウンタが零に達すると、41.169に□ atag
one信号が出力される。その信号はラッチ148を変化させて□ ataoo
信号を入力端子161から除去する。状態表の8行かられかるように、線166
.167における信号は示されていない。その理由は、$1166〜信@値Oが
再び与えられ、その信り値はORゲート153と出力ビン27を介して与えられ
ることにより、第8図に示すデータ・パケットの終りにストップ・ビットOを形
成する。出力状態マシンは遊び状態へ戻る。
出力チャネルは確認応答パケットを送るためにも使用できる。入力チャネルがデ
ータのバイトを受けると、その入力チャネルは、第9図に示すような種類の確認
応答パケットを出力するために、信号を出力状態マシンへ送る。信号がレディ指
示器146からANDゲート152へ送られ、この時のラッチ149の状態によ
り、出力状態マシン140の入力端子163へACKGO信号を与えることがで
きる。これは出力状態マシン140の状態表の3行に対応し、これかられかるよ
うに、oneout出力が出力端子166に出力させられる。ピン27における
信号のレベルが以前の零レベルから、第9図に示す確認応答パケットの最初のビ
ットを構成する1へ変えられるように、前記oneout出力はORゲート15
3を通される。これによって出力状態マシン140の状態がACKFLAGと呼
ばれる状態に変えられ、この出力状態マシン140の状態表の5行かられかるよ
うに、出力状態マシン140の状態が上記のように変化しても線166.167
にそれ以上の出力は与えられない。このことは、出力端子27における信号のレ
ベルが零へ戻って、第9図に示す確認応答パケットの21目のビットを与えるよ
うに、出力端子166における信号のレベルが零レベルへ戻ることを意味する。
出力状態マシン140は、ラッチ149の状態を変えてANDゲート152の出
力を変えることにより入力端子163からACKGO信号が除去されるように、
線170にACKGONE出力を与える。それからこの状態マシンは遊び状態へ
戻る。
次に、入力状態マシン142の動作について説明する。この入力状態マシンは線
101上のリセット信号によってリセットされ、入力状態マシン142の状態表
の1行の記載に従って、そのリセットにより、表に記載される出力は発生されず
、この入力状態マシンを遊び状態に置く。出力が表に記載されないから、全ての
出力端子に生ずる信号のレベルは零である。入力端子172は入力ビン26に接
続され、Dataln信号が無い限りはこの入力状態マシンは状態表の2行に従
って遊び状態に留る。第8図に示すような種類のデータ・パケット、または第9
図に示すような種類の確認応答パケットのスタート・ビットが到達したために、
入力端子172がDataIn信号が受けられると、この入力状態マシンは状態
表の3行目に記載されている状態へ直ちに移り、出力は生じないが、スタートと
呼ばれる状態へ移る。入力ビン26に到達づる次のビットが、第9図に示す確認
応答パケットに従ってOであるとすると、入力状態マシン142の状態表の4行
が適用される。そのパケットの最初のビットの到達により、マシンはスタートと
呼ばれる状態におかれているが、そのパケットの2番目のビットはOであるから
線172にはもはや□ata1n信号が無く、状聾表の4行の記載に従って出力
5ETACKREADYが出力端子178に生じさせられ、そのためにこの入力
状態マシンは遊び状態に戻る。線178に生じた出力は、確認応答パケットが受
けられたことを出力状態マシンに指示するために、ラッチ148へ与えられる。
その出力はReady指示器147へも与えられる。
しかし、入力ビン26に与えられたパケットの2番目のビットがOではなくて1
であるとそのパケットは第8図に示すような種類のパケットであるか、状態表の
5行目から、データ・パケットの最初のビットのために入力状態マシンはスター
ト状態となり、入力はいまは入力端子172に与えられる[)atalnである
。
それによって出力端子174に出力1oadcountが与えられて、ビット・
カウンタ143に、データ・パケットにおいて予測される数のビットがロードさ
れる。この場合には、ビットの数はデータの7バイトに対応する8である。次に
この入力状態マシンは新しい状態databitsへ移り、状態表の6行目から
れかるように、入力173が零に達しない限りは入力状態マシンは出力1117
6上の桁送り込み信号のために、入力ビットを入力レジスタ145に沿って順次
動かすという一連の動作を行わせ続け、出力端子175におけるDECCOLI
NT信号のためにカウンタ143におけるカウントを逐次減少させる。カウンタ
143のカウントが零に達すると(これは請求められているデータの8ピツトが
いま受けられたことを示す)、入力状態マシンの状態表の7行目が適用されて、
その入力状態マシンは以前として状態databitsにあり、カウントO信号
が線173に受けられる。それによって線176へ5hiftin出力が与えら
れて最後のdatabitを入力レジスタ145内へ動かし、入力状態マシンの
状態はdataend状態へ変る。状態表の8行目は、この状態においてはS
et[) ataready信号が線177へ出力されて、ラッチ149とレデ
ィ指示器146の内容を変更させることを示す。それから入力状態マシン142
は遊び状態へ戻る。レディ指示器146へ与えられた3et[) atarea
dy信号は信号「入力データ妥当」を線98へ与えて、データの全バイトがいま
入力レジスタ145により受けられたことを示す。
したがって、第14図に示すリンク・インターフェイスは、第8図に示す種類の
パケットまたは第9図に示す種類の確認応答パケットでデータを出力できるよう
に、出力状態マシン140および関連するビット・カウンタ・ラッチならびにグ
ー!・てパケット発生器を構成することがわかるであろう。入力状態マシン14
2と、それのビット・カウンタおよびラッチは、第9図に示す種類のrIl認応
答パケットまたは第8図に示す種類のデータ・パケットのいずれかを入力ビン2
6で受けたかを識別できるパケット・デコーダを構成する。データ・パケットの
場合には、入力状態マシンは入力レジスタ145ヘロードして、完全なバイトが
受けられた時にレディ指示器146から出力を与える。′fll認応答パケット
の場合には、入力状態マシンは入力レジスタ145にロードせず、次のデータ・
パケットの出力を制御するために出力信号を使用させる・その出力信号はラッチ
148を変更させて次のdataQ。
信MをANDゲート150を通じて送らせる。それは、出力すべきそれ以上のバ
イトをいまバス95に沿って出力レジスタ144へ供給できることを、1194
上の出力ACK信号に指示させる。データのバイトが入力レジスタ145により
受けられ、それからバス97を介してそれの宛先へ転送されると、データΩ別の
バイトを入力できる前にTl m応答パケットを出力ビン27により必ず送るよ
うに、入力確認応答信号が線99aのために発生される。
第14図に示すリンク・インターフェイスを用いることにより、メツセージをデ
ータの1つまたはそれ以上のバイトで構成できることがわかるであろう。各バイ
トは第8図に示す種類のパケットで別々に送られる。第8図に示す種類の各パケ
ットが入力ビンにより受けられると、次のデータ・パケットを送れるようにする
ためには、第9図に示′rj!!類の確認応答を関連する出力ビンにより出力せ
ねばならない。同様に、次のデータ・パケットの出力を継続できるようにするた
めには、出力ビンは出力される各データ・パケットに対する確認応答パケットを
持たなければならない。
各バイトは別々に送り、かつ確認応答せねばならないが、メツセージ伝送を終ら
せるためには、プロセッサは、複数バイトより成るメツセージを送り、または受
けることにより1つの出力または入力に応答することをめられる。
上記の例においては、入力チャネルと出力チャネルおよびリンク・インターフェ
イス内の全ての状態マシンには共通りロックからタイミング・パルスが供給され
る。このタイミング・パルスはデータのビット周波数と、出力ビン27により送
られる確認応答パケットのピット周波数をt、II御りるのに用いられる。上記
の例では、メツセージの伝送を行うためにリンク・インターフェイスが接続され
る他の装置へ同じりロックからタイミング・パルスが与えられる。このようにし
て入力状態マシン142と、入力ビン26からの入力データとの間で同期が行わ
れる。しかし、通信目的のために一緒に11続される種々の装置が種々のりロッ
クを使用できるように、入力ビン26と入力状態マシン142の間の同期ロジッ
クで動作するようにリンク・インターフェイスを機成できる。それら種々のクロ
ックは同じ周波数を有しなければならないが、位相は異ってもよい。各入力ビッ
トごとに信号レベルが数回標本化されるように、メツセージ中のビット・パター
ンの周波数より高い周波数で入力ビット・パターンを標本化するためにその同期
ロジックを構成できる。このようにして、スタート・ビットの前縁部を検出でき
、スタート・ビットの前縁部を検出してから所定部間経過後に入力ビン26にお
ける信号のレベルを妥当として処理できる。このようにして、各入力ビットの持
続時間のほぼ中間で入力データの標本化が行われる。
記 法
マイクロコンピュータがどのように動作するのか、とくにそれの機能、動作およ
び手続きについての以下の説明においては、OCCAM (前記I NMOSイ
ンターナショナルplcの商標)言語に従って記法が用いられる。この言語は、
英・国所在のインモス社(T NMO8L 1IIlited)により1983
年に出版および配布された[プロノラミン ・マニュアル(P rogramm
ino M anual) −0CCA M Jという標題の小冊子に記載され
ている。更に、使用されたこの記法がヨーOツバ特許出願第110642号に詳
しく述べられている。簡単にするためにこの明細書ではくり返えさない。しかし
、ヨーロッパ特許出願第110642号に記述されているOCCAMおよび使用
されている記法の説明を参考までにここに含める。
上記の記法に加えて、以下の説明は下記のように定゛義されるあるメモリ・アク
セスについて述べたものである。
At14ord[Ba5e、 H,A) Ba5eからN1目のワードを示すよ
うにAをセット
AtByte(Base、N、A) Ba5eからN番目のバイトを示すように
Aをセット
RIndexWord(Base、N、X) Ba5eからN番目のワードの値
にXをセット
RIndexByte(Base、N、X) Ba5eからN番目のバイトの値
にXをセット
WIndexWord(Base、 N、 X) Ba5eからN?8目のワー
ドの値をXにセット
WIndexByte(Base、 N、 X) Ba5eからNM目のバイト
の値をXにセラ1−
WordOffset(Base、 X、 N) XとBa5eとの間のワード
数をNにセット
マイクロコンピュータを用いた手続
以下に13の異なる手続<PROC)を示す。はじめの6つの手続はプロセッサ
のふるまいを記述するのに用いられる。
Dequeue
Run
startNextprocess
tland 1eRunRcquestHand 1eReadyl(eque
stBIockCopyStep
手続j[)equeueJは優先度rPriJプロセスの前にあるプロセスを実
行持ちの列に並ばせる。
1、 PROCkQuelle −
2、3EQ
3、 WptrReg[Pr1l :w FptrReO[Pr1l ’4、1
F
5、 rDtrRea[Pr1l −BptrReg[Pr116、 Fptr
R11iil![Pr1l := N01PrOCeSS、p7、 TRUE
8、 R1ndex¥lord(FptrReg[Pr山Link、s、 Fp
trReg[Pr1l)9、 RIndexWord(WptrReg[Pr1
l、 Iptr、S、 IptrReQ[Pr1l) :手続rRLINJは、
ProcDescレジスタに記述子が含まれているプロセスをスケジュールする
。即ち、既に実行されている優先度1のプロセスに螢光して優先度Oのプロセス
の実行を直ちに開始する。
1、 PROCRun =
2、 5EQ
3、ProcPrirlag ニー Pr0CDeSCRQQ八 14、Pro
cPtrReg :=ProcDescReg A (NOTl)5、 1F
6、 (Pri = 0)OR((ProcPriFlag = Pr1)AN
D (WptrReg[Pr1l <>NotProccss、0))
7、 3EQ−−プロセスの列に加える8、 1F
9、 FptrReg[ProcPriFlagl −NotProCess、
plo、 FptrReg[ProcPriFIag) := ProcPtr
Regll、 TIIIIF
12、 WlndexWord(BptrReg[ProcPrirlagl、
Link、s、 ProcPtrReg)13、 BptrReg[Proc
PriFlagl ニー ProcPtrReg14、 7RUE
15、 5EQ−Pri 1を妨げるPri Oまたは Pri 1 と 1d
le Ill/c16、 Pri ニー ProcPriRcg17、 Wpt
rReg[Pr1l ニー ProcPtrReg18、 R1nd11!XW
Ord(WDtrRel:l[Pr1l、 IDtr、S、 IptrReg[
Pr1l)19、 0reo[Pr1l := o :手続[5tartNex
tProcessJは現在実行中のプロセスのスケジュールを解除するとともに
、もし他の実行可能なプロセスがあれば、次に実行可能なプロセスを選択する。
従って実行すべき優先度0のプロセスがもはやなければ、中断されていた優先度
1のプロセスが続行される。
手続「5tartNextProcessJは、セットされている5NPFIa
Oの結果として常に実行される。従ってこのプロセスにおける第1の動作はこの
5NPF lagをクリアすることである。
1、 PROC5tartNeXtPrOCeSS −ζ SEQ −3NPフ
ラグクリア
3、5NPFlaa[Pr1l := 04、1F
5、 FptrReg[Pr1l <> NotProcess、p6、 De
queue
11、 04ptrReg[Pr1l = NotProcess、p) AN
D12、 (FptrReo[Pr1l <> NotProcess、p)1
3、 Dequeue
14、 TRυ「
1s、 5KIP
16、 Pr1=1
17、 WptrReg[Pr1l ニー NotProcess、p :手続
[HandleRunRequest Jは「RunRequest Jを作る
プロセッサへのリンクの結果として実行される。この手続における記述で、r
PortNoJは要求を作るリンクの数である。この手続は、リンクと結合して
いるプロセスワードの内容に「ProcDescReg Jをロードすることに
よって動作する。
1、 PROCHandleRunRequest(VARPortNo) =
2、 5EQ
3、 RIndexWord(PortBasa、PortNo、ProcDe
scRcg)4、 Run:
手続[Hand IeReadyRequest Jは「ReadyReque
st Jを作るプロセッサへのリンクの結果として実行される。
この手続における記述で、「、PortNoJはリンクの数、[PortBas
eJは節1のリンクのアドレスである。この手続は、リンクに結合しているプロ
セスワードの内容からの代替入力となるプロセスを識別する。この手続は、この
プロセスが適当なものであるかどうかスケジる。
1、 PROCHarKIleReadyRequQSt(VARPortNo
) =2. 3EQ
3、 R1口(IeXWOrd(POrtBaSe、POrtNO,ProcD
escReg)4、 ProcPtrRcg := ProcDescReg
ハ(NOT 1)5、 RIndexWord(ProcPtrReg、 5t
ate、s、 TempReg)6、 1F
7、 TempReO−Eriabltng、D8、 WIndexWord(
ProcPtrReg、 5tate、s、 Ready、p)9、 Temp
Reg−Ready、plo、 3KIP
it TempReg −Waiting、p12、 3EQ
13、 WIndexWord(ProcPtrReg、 5tate、s、
Ready、p)14、 Run :
手続「BIOCkCOI)VStQρ」は、転送すべき情報の1バイトを発生す
る。この手続は、常にr CopyNaoJがゼットされた結果として実行され
る。この手続により、情報の最後のバイトがコピーされると、r CopyF
lagJがクリアされ、rireoJがプロセス記述子を含んでいるときにはそ
のプロセスはスケジュールされる。
1、 PROCBlockCopySteD t2、 3EQ
3、 R]ndexByte(Creg[Pr1l、 o、 0reQ(Pri
l)4、 WindexByte(Breg[Pr1l、 O,Oreg[Pr
1l)5、 oreg(prB : 0
6、 Ateyte(cregtprtl、 1. Creo[Pr1l)7、
AtByte(Breo[Pr1l、 1、Brell[Pr1l)8、 A
reg[Pr1l ニー Areg[Pr1lづ9、 1F
10、 AreO[Pri]=O−−ブロックコピー完了12、 3EQ
13、 CopyFIao[Pr1l ニー 014、 1F
15、 Treg[Pril <> N01PrOCeSS、p16、 5EQ
17、 ProcDescReg ニー Treg[Pr111B、 Run
19、 7reg[Pr1l −NotProcess、p20、 5KIP
21、 TRUE
22、 3KIP :
プロセッサは一連の動作を実行する。それらの動作は現在のプロセスのためまた
はリンクのために行われる。
現在のプロセスのために実行できる動作はj 5tartNeXtPrOCeS
S Jを実行すること、r BIOCkCODVStel) Jを実行すること
、または命令のフェッチ、復号および実行を行うことである。
リンクのために実行できる動作は[HandleRunReQueSt Jを実
行すること、またはr Hand IeReJyRequest Jを実行する
ことである。
それらの各動作は一連のマイクロ命令に対応する。
それらの動作を含む任意のシーケンス中の最後のマイクロ命令は「NextAc
tionJである。これによってプロセッサは次に実行すべき動作を選択させら
れる。
次に、「NextActionJマイクロ命令が実行される時、どの動作を行う
べきかをプロセッサがどのようにして決定するかについて説明する。
同期ロジック10は、任意の時刻に、たかだか1つのr RunRequest
Jまたは「ReadyRoquest Jをプロセッサへ送る。同期制御ロジ
ック、まだ渋んでいない優先度Oの要求かある時は、優先度1の要求を送らない
。
この結果として、要求の存在を示す信号と、その要求の優先度を示づ信号との2
つの信号がConditionHLIltipleXOrに入れられる。
ConditionHultiplexorは現在選択され、ている5NPFI
aoと現在選択されているcopyFlaoとからの信号も有する。したがって
、それは下記のようにして選択を行うことができる。
5NPFIaa [Pri ]がセセラされたとすると、プロセッサは「5ta
rt)lextProcessJを行い、他の場合には、その要求の優先度が現
在のプロセスの優先度より低くなければ、プロセッサはチャネル要求をとり提う
。さもなければ、CopyNag [Pri ]がセセラされたとすると、プロ
セッサは「BIockCopyStcp Jを実行する。他の場合には、現在の
プロセスが存在するならば、プロセッサは命令の7エツチ、復号および実行を行
う。他の場合には、チャネル要求があるまでプロセッサは持以後のrunct
1onsetの記述は下記更に7つの手続による。
CaLISQLinklnpLlt
CauseLinkOutput
HakeLinkReadyStatusEnquiryEnableLink
LinkChannellnputActionLinkChannelOut
putActionIsThisSelectedProcess4つの手IE
[CauseLinklnputJ、「CauSeLink0utputJ
、l”HakeLinkReadyStatusEnauiryJ、「Enab
leLinkJはプロセッサとリンクの間の相互作用を記述するものである。
手続rCaLISeLinklnpUt(VARPOrtNO) Jは優先度を
有するリンク・チャネルPOrtNOと、ポインタおよびカウントをロードし、
それからそのリンク・チャネルへInptltReqLIeStを行う。更に正
確にいえば、プロセッサは、プロセッサのPriフラッグと、Creg[Pr1
lレジスタと、Area[Pr1l レジスタとからのPr1orityフラツ
グと、Po1nterレジスタと、リンク・チャネルのCountregist
erとをロードする。
手続「CauseLinkOutput(VARPortHo) Jは優先度と
、ポインタと、カウントとをリンク・チャネルPOrtNOへロードし、0ut
putReQuestを行う。この0utputReQueStによりリンク・
チャネルはメツセージを出力させられる。更に正確にいえば、プロセッサは、プ
ロセッサのPri フラッグと、Creg[Pri] レジスタと、八reQ[
Pri] レジスタとからPr1orityフラツグと、ポインタ・レジスタと
、カウント・レジスタとをロードし、そのリンク・チャネルへOυtputne
auestを行う。
手続j HakeLinkReadyStatusEnquiry (VARP
ortNo。
Ready ) Jはリンク・チャネルPortNoに対してReadySta
tusEnquiryを行う。リンク・チャネルがレディであればrReady
jがTR(JEにセットされ、それがレディでなければFALSEにセットされ
る。
手続rEnae+1eLink(VARPortNo) JはリンクチャネルP
ortNoの優先フラグをPriフラグの値にセットし、リンクチャネルにEn
ab+cRequest信号を与える。
その他の手続を以下に示す。
1、 PROCLinkChannellnputAction −2、VへR
POrtNO:
3、3EQ
4、WIndexWord(WptrReg[Pr1l、Iptr、s、Ipt
rReg[Pr1l)5、WIndexWord (Breg[Pr1l、 0
. WptrRcg[Pri]\/ Pr1)6、WordOffset(Po
rtBase、8rag[Pri]、PortNo)7、Causel−ink
lnc+ut (PortNo)8、SNPFlag[Pr1l := 1 :
1、PROCLinkChannelOutputAction =2、VAR
PortNo :
3、 S[:0
4、WIndeXWOrd(WDtrRC’g[Pr1l、 Itltr、S、
IntrReg[Pr1l)5、WIndexWOrd(Breg[Pr1l
、 O,WptrReg[Pr1l\/Pr1)6、WordOffset(1
’ortBase、Breg[Pr1l、PortNo)7、CauseLin
kOutput(PortNo)8、 3NPrlag[Pri] := 1
:1、PROCl5ThisSelcctedProcess =2、− これ
はすべての不能命令によって用いられる。
3、 3EQ
4、 RlndexWord()lptrRcg[Pri]、O,Oreg[P
r1l)5、 IF
6、 Oreg[Pr1l = (−1)7、 8EQ
8、 WIndexWOrd(WptrReg[Pri]、O,Areg[Pr
1l)9、 Areg[Pr1l := HachineTRUElo、 0r
efl[Pr1l <> (−1)11、 八reg[Pr1l 二= Hac
hintJ八LSE :盪へ」二二上
欧州特許第110642号明細書に記載のように、マイクロコンピュータの各命
令は機能セットから選択された機能要素を含んでいる。マイクロコンピュータに
よって実行される機能は直接機能、pfixとnrixから成るプレフィックス
機能、そして非直接機能aprを含んでいる。被直接機能aprは動作のセット
から1つを選択するためにオペランドレジスタQ regを用いる。
上述の明18Gに示すように、Oreg [Pri]は、PFEXとNFIXと
をのぞくすべての命令の実行後にクリアされる。
本願における更に改良された直列様能セットとその動作は次のとおりである。
直 接 機 能
コーζ 号 1号 名 前
OIdl 1oad 1oca1
1 stl 5tore 1oca1
2 Idlp 1oad 1ocal pointer3 1dnl 1oad
non−1oca14 str’ 5tore non−1oca15 1d
nlp 1oad non−local pointer6 e(Ic equ
als constant7 ldc、1oad constant8 adc
add constant9 j ju釦p
10 Cj C0nditinal jt+mD11 call call
i2 ajW adjust workspace13 0pr 0perat
ei
14 pfix prefix
15 nfix negaNve prefixi ret return
2 gcall general cal17 bcnt byte coun
t
8 wcnt word count
9 1end 1oop end
lo 1b 1oad byte
ll sb 5tore byte
12 C0pV C0DV l1leSSaOe13 Qt Qrater t
han
14 add add
゛ 15 sub 5ubtract
18 endp end process19 runp run proce
ss2o 5topp 5top process21 1dpri 1oad
priority22 in 1nput message23 out o
utput message24 aft alt 5tart
25 altwt aft wait
26 altencl aft end27 enbs enable 5ki
p28 diss disable 5kip29 enbc enable
channe130 disc disable channel直接機能
定義 SEQ
Creg[Pr1l ニー=Brea[PrilBreg[Pr1l ニー A
reg[Pr1l定f! SEO
WIndex14ord(WptrReg[Prrl、 Oreg[Pr1l、
Areg[Pril)Areg[Pr1l ニー BreQ[Pr1l定義
SEQ
Creg[Pril ニー Breg[PrilBreg[Pr1l ニー^r
eg[Pr1l(非直接的に)、この場合0reo −0゜外部作業域へのスト
ア
定数のロード
定数の加算
飛越し
定義 IF
八reg[Prl = O
SEO
Areg[Pr1l ニー Breg[Pri]プログラムの条件判断、条件ル
ープが存在していてもよい。
手続叶出し
定義 SEQ
WlndexWordlJptrReg[Pr1l −1,Creg[Pril
)Areg[Pr1l := IptrReg[Pri]作業域調整
間接機能
定11t oprate (PREG[PRI]目 的 オペランドレジスタ0
REG[PH11の内容を要求された動作を定義するコードとして用い動作を実
行すること。
プレフィクシング機能
プレフィクス(ρrefix)
定 fi 0REG[PR+] ニー 0REG[PH11<< 4目 的 O
〜15の範囲にはない命令オペランドを、1あるいはそれ以上のプレフィクス命
令を用いて表わすことができるようにすること。
否定ブレフィクス
定 * 0REG[PRI] := (NOT 0REG[PR+] << 4
目 的 零またはそれ以上のプレフィクス命令が続(1つの否定プレフィクス命
令を用いて否定オペランドを表すことができるようにすること。
特表昭61−500385 (20)
レジスタの取扱い動作等
反転
定義 SEQ
Oreg[Pr1l := Areg[PrilArcg[Pr1l ニー B
reg[PrilBreg[Pr1l ニー Oreg[Pr1l目 的 非対
称的なオペレータのオペランドを反転すること。コンパイラでは都合良く行うこ
ときはできない。
復帰
RIndexWord(WntrReo[Pr1l、 0. IptrReo[
Pr1l)AtWord(讐ptrRea[Pr1l、 4. WDtrRe(
I[Pr1l)目 的 呼ばれた手続から復帰すること。
定義 SEQ
Oreg[Pr1l := IptrReg[PrilIptrReg[Pr1
l :=Areg[PrilAreg[Pr1l :=Oreg[Pr1l目
的 Areg内の新しい命令ポインタをもって手続呼出しを実行すること。
一般的な作業域調整
定義 S[Q
Oreg[Pr1l := WptrReg[PrilWDtrReg[Pr1
l := Areg[Pri]′ 八reg[Pr1l := Oreg[Pr
il目 的 現在のプロセス作業域を変えること。
アドレッシング動作
命令ポインタのロード
定@ AtByte(]DtrRe(I[Pr1l、Arefl[Pr1l、A
reQ[Pr11)目 的 命令ポインタをロードすること。
バイト記述
定義 SEQ
AtByte(Areg[Pr1l、 Breg[Pr1l、 Areg[Pr
il)Brcg[Pr1l ニー Creg[Pr1l目 的 ベクトルにおけ
る対象を示すポインタを計算すること。例えばIdc 0.1dw n、 bs
ub を用いて数字をバイトポインタに変換する。
ワード記述
定義 SEQ
AtWord(Areg[Pr1l、 Breg[Pr1l、 Areg[Pr
1l)叶eo[Pr1l := Creg[Pr1l目 的 ワードベクトルに
おける対象を示すポインタを計w′すること。例えば 1dc 0.1dl n
ff1u+1を用いて筋をワードポインタに変換する。
バイトカウント
定 義 Areg[Pril := Areg[Pril傘 Trabytes
PerWord目 的 ワード長をバイト長に変換すること。「TraByte
sPerWord Jはマイクロコンピュータによって用いられる1ワードにつ
いてのバイト数を意味する。
ワードカウント
定f13EQ
Creg[Pr1l := Breg[PrilBreg := bytepa
rt(Areg)Areg := wordhrt(Areffl目 的 wc
nt、bcnt、addを用いてポインタを0からのバイトオフセットに変換す
ること。
ループ動作
定義 S[Q
RIndexWord(Breg[Pr1l、 1. Creg[Pril)C
reg[Pr1l := Creg[Pr1l −1WIndexWorcl(
Breo[Pril、 1. Crco[PRI])F
Creg[Pr1l > O
SEQ
RIndexWord(Breg[Pr1l、 O,Creo[Pril)Cr
cg[Pr1l := Creg[Pr1l + 1WInclexWord(
Breg[Pr1l、 O,Creg[Pr1l)AtByte(II]trR
eQ[Pr1l、 −Ar(!(l[Pr1l。
IptrRe(l[Pril)
RUE
KIP
目 的 複製を実行−タること。
単一バイトオペレーシミン
定義 RlndexByte(Areg[Pr1l、 O,Areg[Pril
)目 的 1バイトのロードを行うこと。
定義 5EQ
WlndexByte(八reg[Pri、0. Breg[Pril)Are
g[Pril := Creg[Pr1l目 的 1バイトのストアを行うこと
。
バイトストリングオペレーション
メツセージの複写
定義 5EQ
Copy[Pr1l :・1 − ブロックコピーを示す。
Treg[Pr1l ニー NotProcess、p −一人力でなく出力を
示す。
目 的 バイトベクトルを他のブロックの値にゼットすること。
比較
より大きい
定義 SEQ
IF
Breg[Pr1l >Arcg[Pr1lArea[Pr1l := Hac
hineTRUERLIE
Areg[Pr1l ニー HachineFALSEBreg[Pr1l ニ
ー Creg[Pr1lはO(偽)をロードすること。
(rev、gt)によりb<aを実現すること。(rev、gt、eqc O)
によりb<=a as (gt、eqz)と叶eQ>=Areilを実現するこ
と。
基本演算
加算
定義 SEQ
Areg(Pril ニー Areg[Pril 4 Breg[PrilBr
eg[Pr1l ニー Creg[Pr1l目 的 [3regとAreaの和
をロードすること。
減 算
定義 SEQ
Areg[Pril := Breg[Pr1l −Areg[PrilBre
g[Pril ニー Creg[Pr1l目 的 [3regからA regを
減じ、結果をロードすること。
以下を実行すること。
a = b as sub、 eqc Oa <>l) as sub、etc
O,OqC。
if a 0 b 、、 aS sub、eqc o、cj、、、。
if a = b 、、 as sub、 cj、 、。
スケジューリングのためのオペレーション最小の整数
定@ 5EQ
Crea[Pr1l ニー Breg[Pr1lBrea[Pr1l ニー A
reg[Pr1l定義 SEQ
八rayte(IptrlteOrprtl、Breg[Pr1l、Oreg[
Pril)WIndexWord(Arcg[Pr1l、 Iptr、s、 0
rea[PrilProDcscReg ニー^reg[Pr1l V Pr1
lun
目 的 アクティブプロセスリストのおわりにプロセスを追加すること。
プロセス終了
定義 SEQ
目 的 2つの並列プロセスに加わること。2つのワードが用いられる。
1つばカウンタ、もう1つは作業域ポインタとなる。カウントが1になると作業
域は変更される。
プロセス実行
定義 SEQ
ProDescReg := Areg[Pr1lun
目 的 特定の優先度でプロセスを実行すること。
プロセス停止
定義 SEQ
WIndexlJord(WptrReg[Pril、1ptr、s、 Ipt
rReo[Pr1l)SNP[Pr1l := 1
目 的 現在のプロセスのスケジュールを解除すること。
定義 SEQ
Creg[Pril := Breg[PrilBreg[Pr1l ニー^r
eg[PrilAreg[Pr1l :=Pri
目 的 現在のプロセスの優先度を得ること。
入力メツセージおJ:び出力メツセージについての以下の記述において、har
d(BreQ)ネルのポインタである場合にはFALS[、その他の場合にはT
rlυ[となる。
入力メツセージ
1、定fi二 −初期状態
2、− Arcg =カウント
3、 −Breg =チャネル
4、 −CreQ −目的地
5.1F
6、 hard(8reg[Pr1l)7、 LindChannellnpu
tAction8、 5oft(Breo[Pr1l)9、 S[:Q
10 RIndexlJord(Breg[Pr1l、 O,Treg[Pri
l)11、 IF
12、 7reg[Pril −NotProcess、p13、 5EQ
14、 WIndexWord(Breg[Pr1l、 O,WptrReg[
Pril V Pr1)17、 5NPFIa(l[Pr1l ニー 118、
7reg[Pril o NotProcess、p20、 3EQ
21、 WlndexWord(Brec+[Pr1l、 O,NotProc
ess、p)−−チャネルリセット22、− ブロックコピーの準備
23、 −Tragは既にプロセス記述子を有している。
26、 ProcPtrReg ニー Treo[Pr1l八(NOT i>2
7、 Rlndexmrd(ProcPtrReg、5tate、s、 Cre
g[Pr1l)−−ソース28、 CopyFlaO[Pr1l := 1 ・
−’:]l:’−75りtット目 的:チャネルからのバイトの1ブロツクを入
力すること。
出力メツセージ
1、定義: −初期状態
2、 −Arell −カウント
3、 −Breg −チャネル
6、 hard(Breg[Pri ])7、 L 1nkChannclOu
tputAct 1on8、 5oft(BreQ[Pr1l)9、 5EQ
10 Rlndc>:Word(Breg[Pr1l、 O,Treg[Pri
l)11、 1F
12、 Treg[Pr1l −NotProccss、p13、 8EQ
14、 IJIlldeXIJOrd(Bre17[Pr1l、 O,Wptr
Reg[Pr1l V Pr1117、 5lIPFlaG[Pr1l ニー
118、 1reg[Pr1l <> 1lotProcess、p−Read
y19、 SEQ
20、 ProcPtrRegニー TreO[Pr1l V (IIOT 1
)25. Oreg[Pr1l = EnablinQ、E131、 5NP
Flao[Pr1l ニー 132、 0rcg[Pril −Waiting
、p3B、 SlIPFIag[Pr1l ニー 139、 ProcDesc
Rcg 二” Treg[Pr1140、 Run
al、 0reo[Pr1l −Ready、p46、 SNPFIag[Pr
1l ニー 147、 TRυF−0reglPrilはバリッドポインタを含
む48、 3[Q
代替入力のオペレーション
代替開始
代替待機
1、定@ : 5EQ
2、 WIndexWord(シ1ptrRea[Pr1l、 O,−1)5、
Areg[Pr1l = ReadV、D6、 3KIP
9、 WIndcxWord(WptrReo[Pr1l、 5tate、s、
Waiting、p)10、 WIndcxWord(WptrReg[Pr
il、 1ptr、s、 IptrReg[Pr1l)11、 5tlI’Fl
ag[Pr1l := 1目的: 可能なチャネルの1つを待つこと。
代替終了
定@: SEQ
目的二 代替プロセスの選択された入力の実行を開始°すること。
5KIP可能
1、定fi: IF
2、 Area[Pr1l <> )achineFALsE3、 WInde
xWord(Wptrl(eo[Pr1l、 5tate、S、 Ready、
p)4、 八reg[Pr1l = Hachincr八LSE5、 へ 5K
IP
目的: SにIPを可能とすること。
5KIP不能
定fi: SEQ
IF
Breg[Pr1l OHachineFALSEIsThisSelecte
dProcessBrall[Pr1l −HachineF^LSEArea
[Pr1l :l Hachincr’A1.SEBreg[Pr1l ニー
Creg[Pr1l目的: SにIPを不能とすること。
チャネル可能
1、定@: 5EQ
2、拝
3、 Areg[Pr1l −)!achineFALsE4、 5KIP
5、 Areg[Pril OHaCIlineFALSE8、 soft(B
reg[Pri l)9、 3EQ
10、 RIndexWord(Breg[Pril、 O,Oreg[Pr1
l)14、 0reo[Pr1l s (WptrReg(Pril VPri
)15.8にIP
1B、 hard(Breo[Pr1l)19、 VARPortNo、 Re
ady :20、 3EQ
21、 WordOffset(PortBase、 Breg[Pr1l、
PortNo)25、 WIndeXWOrd(WptrReO[Pr1l、5
tate、 S、 Ready、 p)26、 TRUE
27、 5EQ
28、 WIndexlJorcl(Breo[Pr1l、 O,Wl)trR
eQ[Pr1lVI)ri)29、 EnableLink(ForlNo)3
0、 8reO[Pr1l ニー Creg[Pr1l目的: チャネル入力を
可ず止とすること。
チャネル不能
1、使用: On entry Areg −1nstruction 0ff
set2.8reg −Guard
3、、 Creg −C11anne14、 0nexit IF
5、 this was 5elected guarded process
6、 Areg= HachineTRUE7、Otherwise
8、 Areg = HachineTRUE9、定義:IF
10、 8reg[Pr1l −Hachine[A1.5E11、 Areg
[Pril : −t4achineFALSE12、 8reg[Pr1l
<> HachincFALSE13、 1F
14、 soft(Creg[l’ril)15、 3[Q
16、 Rlndexlmrd(Creo[Pr11. O,Breg[Pr1
l)17、 1F
18、 8reg[Pr1l −NotProcass、D19、 Areg[
Pr1l 声+4achineFALsE20、 8reo[Pr1l 1I(
14ptrRea[Pr1l V Pr1)21、 3EQ
22、 WIndexlNrd(Creg[Pr1l、 O,NotProce
ss、p)23、 Arelll[Pr1l :II )%achineFAL
SE24、 TR1lE
25. l5ThisSelectedProcess37、 Areg[Pr
1l := HachineFALSEこのようにROM13は上述のすべての
機能に対応する命令を有し、この命令の結果としてのプロセッサが行うべきオペ
レーションを有する。
入立乏」ミニLzl
プロセッサは、2!!類の優先度レベルOと1で実行づるいくつかの同時プロセ
スの間で、それの実行時間を共用する。優先度0と1のプロセスが同時に実行可
能である時は、優先度Oのプロセスが優先度1のプロセスより常に先に実行され
る。任意の峙刻にはただ1つのプロセスが実際に実行され、゛現在のプロセスで
あるそのプロセスは、それの作業域ポインタ< W P T R>をWPTRR
EG51に有し、IPTRREG50内の命令ポインタ(IPTR)が、その特
定のプロセスに関連するプログラム中の一連の命令から実行すべき命令を指示す
る。現在プロセスではなく、かつ実行を待っていないプロセスはどのプロセスも
スケジュールから外される。あるプロセスがスケジュールに組込まれられると、
そのプロセスは現在のプロセスとなるか、または実行を持っているプロセスのリ
ストすなわち列に加えられる。そのリストは結合されたリストとして形成され、
そのリストの各プロセスは、そのリスト上の次のプロセスの作業域までのそれの
作業域のリンク場所にポインタを有する。そのリスト上の任意のプロセスの命令
ポインタ(I PTR)は、第3図に示すように、それの作業域のI PTR場
所65に格納される。
いまの場合には、プロセッサは実行されることを待っているプロセスの2つのリ
ストを維持するそれら2つのりストのうちのそれぞれ1つが各優先度レベルに対
する。この状況が第3.4図に示されている。第3図は高優先度Oのリストを示
し、第4図は、優先度0のプロセスが第3図に示すように現在のプロセスである
時に、低優先度1のリストを示す。この場合には現在のプロセスが優先度Oのプ
ロセスであるから、レジスタ・バンク・セレクタ41がプロセッサで使用するた
めにバンク39内のレジスタを選択している。したがって、WP、TRREG(
0)は、第3図に示すように、現在のプロセスLの作業域6oの零楊所に対する
ポインタを保持する。IPTRREG (0)は、メモリに格納されているプロ
グラム・シーケンス181中の次の命令に対するポインタ180を含む。
第3図に示されているレジスタ54.55.56゜57L;t、現在のプロセス
Lの実行中に使用すべき他の値を含む。スケジュールされで、実行を侍っている
優先e、Oのプロセスリストが、第3図において3つのプロセスM、N、0によ
り示されている。それらのプロセスの作業域が61.62.63で示されている
。それらの各作業域はプロセスLについて示したものに全体として類似する。参
照番号53で示されているFPTRREG (0)は、このリストの初めにおけ
るプロセスであるプロセスMの作業域に対するポインタを含む。プロセスMの作
業域は、プロセスMが現在のプロセスになった時に実行すべきプログラム、・シ
ーケンス中の次の命令に対するポインタをI PTR場所65に含む。プロセス
Mのリンク場所66は、そのリスト上の次のプロセスであるプロセスNの作Qb
lに対するポインタを含む。示されているリストのR後のプロセスはプロセス0
であって、作業域63を有1゛る。
BPTRREG (0)52はこの最後のプロセスOの作業域に対するポインタ
を含む。このプロセスOの作業域63は以前のプロセスNのリンク場所66の内
容により向けられるが、この場合にはプロセスの0のリンク場所66はどのポイ
ンタも含まない。というのは、そのプロセスがリスト上の最後のプロセスだから
である。別のプロセスがこのリストに付加されると、その別のプロセスの作業域
に対するポインタがBPTRREGの中に置かれ、そうするとプロセス0のリン
ク場所66が、そのリストに付加された別のプロセスの作業域に対するポインタ
を含む。
優先度1のリストは全体として類似する。このリストは第4図に示されている。
この場合には、スケジュールされて、実行を特っている優先riiのプロセスの
リストはプロセスP、Q、Rより成る。別の優先度1のプロセスSが示されてい
るが、これは現在スケジュールされており、リンク・リストの部分を構成しない
。FPTRREG(1)は、実行を待っているリスト上の最初のプロセスを形成
するプロセスPの作業域に対するポインタを含む。BPTRREG (1)は、
実行を待っているリスト上の最後のプロセスを形成するプロセスRの作業域に対
するポインタを含む。
各プロセスP、Q、Rは、そのプロセスが現在のプロセスになった時にそれから
次の命令がとり出されるブOグラム段階を指すI PTRをそれのI PTR場
所に含む。リスト上の最後のプロセスとは別の各プロセスのリンク場所は、リス
ト上の次のプロセスの作業域に対するポインタを含む。
第4図に示す位lは、現在の優先度Oのプロセスが、優先度1のプロセスが終る
前に、そのプロセスに割込むことなしに現在のプロセスになるという仮定の上に
、WPTRREG(1)51がプロセス作業域に対する妥当なポインタを含まな
い位置である。
たとえば、ある通信が終った結果としであるプロセスが実行する準備が整ったと
すると、そのプロセスは直ちに実行され、または適切なリストにっけ加えられる
。そのプロセスが優先度0のプロセスであれば直ちに実行されて、優先度Oのプ
ロセスは実行されず、それが優先度1のプロセスであればプロセスは全く実行さ
れない。プロセスは、そのプロセスのスケジュールを解くことをめるヂャネルに
よる通信に加わるまで、または、そのプロセスが優先度1のプロセスであるよう
に、その優先度1のプロセスが一時的に中断さ優先度Oのプロセスが実行される
とPRIFLAG47がOにセットされる。プロセッサが優先度1のプロセスを
実行し、またはどのプロセスも実行しないと、PRI FLAG49は値1を有
する。実行すべきプロセスがない時は、WPTR(1)レジスタ1;tlNot
Process pを有する。これは節4図に示すWPTRREG51のため
の位置である。この位置においては割込まれる優先度1のプロセスのない優先度
1のプロセスのリストがある。優先度1のプロセスを実行させるように優先度1
のプロセスが割込まれたとすると、割込まれた優先度1のプロセスの作業域ポイ
ンタがWPTRREG (1)に留まる。したがって、実行すべき優先度Oのプ
ロセスがもうないと、優先度1のプロセッサがWPTR(1)レジスタの内容に
より割込まれたかどうかをプロセッサが決定する。これが値N Ot P re
cess pを有するものとすると、割込まれたプロセスがなかったことになる
から、プロセッサはFPTRREG(1)の内容を調べることにより優先度1の
リストを点検する。しかし、\VPTRREG (1)が作業域ポインタを依ぼ
として含んでいるとすると、プロセッサは割込まれたプロセスの実行を継続でき
る。いずれの優先度リストでも待っているプロセスがないとすると、適勅なFP
TRREGは値N Ot P rOcess pを含む。
[スタート・プロセスj動作または[実行プロセス」動作を実行することより新
しい同時プロセスが作られる。「終りプロセス」動作または「ストップ・プロセ
ス」動作を実行づることによってそれらの同時プロセスは終る。
先に定義した手続rdequeue Jを使用することにより、実行するプロセ
スをリストのトップからとり出すことができる。その定義は、前記した他の種々
の定義とともに、行番号も含む。それらの行番号は定義の部分ではなくて、単に
説明を容易にするためのものである。手続DEQUEUEの定義の1行目は手続
の名称を示し、2行目は一連の事象が起ることを示す。3行目に従って、適切な
バンク38または39のWPTRREG51は、同じバンクのF PTRREG
53の保持されていたポインタをとる。4行目は、ある条イ1のテストを実行す
べきことを示す。
5行目は、BPTRREG52の内容がFPTRREG52の内容と同じである
ことが見出されると、6行目に従ッテ値r N ot P rocess pJ
がFPTRREGにロードされる。7行目は、5行目における条件がスされなか
ったとすると、適切なレジスタ・バンクのFPTRREG53に、FPTRRE
Gの内容より以前に示された作業域のリンク場所66に現在格納されているポイ
ンタがロードされる。最後に、9行目に従って、WPTRREG51の内容によ
りいま示された作業域のI PTRI所65からのI PTRがIPTRREG
50にロードされる。
これの結果として、先頭のプロセスをとり出して、そのプロセスを実行!$備を
整っている適切なレジスタヘロードすることよってリストが進ませられる。
現在のプロセスは、先に定義した手続「次のプロセス・スタート」によってスケ
ジュールを解除でき。現在のプロセスは、SNP FLAG58を値1にセット
することを含む命令を実行できる。その場合には、プロセッサが次の動作を行う
ことをそのプロセッサにめるマイクロ命令にそのプロセッサが応答すると、その
ブロセッ勺は前記定義に従って手続を実行する。定義の3行目に従って、プロセ
ッサは5NPFLAG58を値Oにセットすることによってフラグを最初にクリ
ヤする。4行目は5行目の定義が真か否かをテストすることをプロセッサにめる
。FPTRレジスタが値「N ot p rocess p Jを含んでいない
とすると、6行目に従って、次のプロセスがリストのトップからとられるように
dequeue手続が行われる。
しかし、5行目が真でなかったとすると、これは現在の優先度のためのリストに
待っているプロセスがないことを示す。それからプロセッサは7行目に示す条件
が真であるかどうかの点検を行う。その点検にはPRI FLAG47が値Oを
含んでいるかどうかのテストが含まれる。もし含んでいるものとすると、5行目
におけるテストの結果のために、待っている優先度Oのプロセスがないことを知
るから、優先度フラッグを1にセットするという9行目から始まるシーケンスへ
プロセッサが進む。これによってプロセッサがレジス’l−バンクを優先度1の
プロセスについて調ヘサセラレ、11行目と1行目にシステム、WPTRREG
(1)が値r N ot p rocess p Jを含んでいるかどうかF
PTRREG(1)が値rNO1p rocess OJを含んでいないかどう
かをプロセッサは調べる。こ(Dごとは、WPTRをWPTRREG51に残し
た割込まれた優先度1のプロセスがないこと、およびそのリストに待っている優
先度1のプロセスがあることを意味する。この条件が真であるとすると、13行
目に従ってプロセッサは手続dequeueを実行する。この手続により次の優
先度1プロセスがリストの先頭からとり出される。しかし、11.12行目の条
件が正しくないとすると、14.15行目に従ってプロセッサはどの動作もとば
す。このことは、WPTRREG (1にW P T Rが含まれていたとする
と、プロセッサがその割込まれたプロセスの実行を継続することを意味する。割
込まれたプロセスがな −く、優先度1のリストに持っているプロセスがないも
のとすると、プロセッサはそれ以上のプロセスのスケジューリングを持つ。しか
し、7行目における条件が正しくないが、一方では優先度が1であることを゛プ
ロセッサが見出したとすると、16.17行目にシステムWPTRREG (1
)が値[Not process p Jをとる。
メツセージの移行中にプロセスをスケジュールから外すことができ、その間に通
信しているプロセスがそれのプログラム中の対応する段階に達することを持つ。
通信している2つのプロセスが対応する段階に達すると、記述子がPROCDE
SCレジスタ46に含まれているプロセスをスケジュールするために手続[ru
nJを使用できる。そうすると、手続[runJの前記定義からプロセッサの動
作を理解できる。3行目に従って、PROCDESCレジスタ46により示され
たプロセスの優先度が計算されて、pRocpR] FLAG4 sヘロードさ
れる。4行目に従って、記述子をレジスタ46に有するプロセスのWPTRが計
算されて、PROCPTRREG45にロードされる。それからプロセッサは、
6行目の条件が適用されるかどうかについてプロセッサがテストする。現在のプ
ロセスは優先度0を有し、またはPROCPRI FLAG48における優先度
がPRI FLAG47における優先度と同じで、それと同時に現在のプロセス
の〜IPTRREG51が作業域ポインタを含むものとすると、プロセッサは7
行目より後のシーケンスを実行する。7行目は、シーケンスがプロセスを行列に
加えるために必要なものである条件が真かどうかのテストをプロセッサが実行す
ることをめる。フラッグ48により示される優先度のFPTRREGが値「N
Ot p rOcess p Jを有するものとすると、10行目に従ってFP
TRREGにレジスタ45のポインタがロードされる。それによってスケジュー
ルされたプロセスがリストのトップにされる。11行目は、10行目の条件が正
しくないとすると、レジスタ46にグループまれでいるポインタが、適切な優先
度のBPTRREGにより示されているリスト上のtatltのプロセスのリン
ク場所66に書込まれる。そのBPTRREGは次にレジスタ45の内容へのポ
インタがロードされる。いいかえると、スケジュールされたプロセスがリストの
終りに加えられる。14行目は、6行目の条件が正しくないとすると、15行目
に示すシーケンスが起る。この場合には、16行目が、PROCPRI FLA
G48に現在ある値をPRIFLAG47からとることを要求し、17行目に従
って適切な優先度のW P T RRE Gにレジスタ45からポインタがロー
ドされる。18行目は、適切な優先度のIPTRREG50に、W P T R
REG51内のポインタにより示されているプロセスのI PTR場所65から
得たIPTRがロードされる。19行目は値Oを適切な優先度バンクのOレジス
タに挿入する。
プロセス間通信
メモリ内の1つのアドレス可能な詔場所により与えられたソフト・チャネルを用
いて、あるプロセスは別のプロセスと通信できる。あるいは、1つのマイクロコ
ンピュータのプロセスが、ハードな入力チャネルとハードな出力チャネルを用い
る直列リンクを介して、別のマイクロコンピュータのプロセスと通信できる。
各直列リンクの入力ピンと出力ピンは、一方向の専用通信経路を形成する1本の
線により別のマイクロコンピュータの対応するピンに接続される。内部通信と外
部通信を行うために、各出力プロセスは出力すべき各メツセージごとに先に定義
された1つの「メツセージ出力」動作を行い、各入力プロセスは入力すべき各メ
ツセージごとに先に定義された「メツセージ入力」動作を行う。この実施例に従
って、各「メツセージ出力」動作または各「メツセージ入力」動作ごとに送るべ
きメツセージの長さは可変長にできる。データは指定されたビット長の1つまた
はそれ以上の単位で送られ、この場合にはビット長は1バイトを形成する8ビツ
トである。したがって、メツセージは請求められるメツセージの長さに応じて1
つまたは複数の単位すなわちバイトで構成できる。通信をどのようにして行うか
を理解するために、いくつかの例を以下に説明する。
例 1
プロセスYが、ソフト・チャネルを用いて、同じマイクロコンピュータ上の同じ
使先度のプロセスXヘメッセージを出力することを希望している。これは第15
図のシーケンスに示されている。最初に、プロセスYもプロセスXもチャネル7
0を使用することをめる命令をまだ実行していないから、そのチャネル70は値
「Not process p Jを含んでいる。プロセスYが出力、を実行す
ることを希望するそのプロセスのプログラム中の点にそのプロセスが達すると、
メツセージを構成するバイトの数を示すカウントをプロセスYはそれのAREG
54にロードし、通信のために用いられるチャネルのアドレスをプロセスYはB
REG55にロードし、送るべきメツセージの最初のバイトに対するメモリ・ア
ドレスであるソース・アドレスをプロセスYはCREGにロードする。これは動
作「メツセージ出力」の定義の行2,3.4に従うものである。それ以上の行番
号の参照は上で与えたメツセージの出力の定義に関連する。5行目は、与えられ
たチャネル・アドレスがハード・チャネルのアドレスに一致するかどうかを調べ
るために、Bレジスタの内容をテストするこ6とをプロセッサにめる。もし一致
するものとすると、定殻の7行目は手続「リンク・チャネル出力動作」を行うこ
とをプロセッサにめる。第15図に示す例では前記チ1zネル・アドレスはハー
ド°チャネルのアドレスに一致しないから、定義の8行目が真であることが判明
し、Bレジスタはソフト°チャネルのアドレスを含む。したがって、プロセッサ
は9行目の後のシーケンスを行う、、10行目に従って、TREG49にはBレ
ジスタからのポインタにより示されたオフセットの内偵、すなわち、チャネルの
内容がロードされる。次に、11.12行目が、TREGがN ot p ro
cess pを含んでいるがどうかを調べることをプロセッサにめる。これはも
ちろん第15b図に示す場合である。したがって、プロセッサはメツセージ出力
の定義の14〜17行目のシーケンスを実行する。14行目は、プロセスYのた
めのプロセッサ記述子がチャネル70に書込むことを要求する。15行目は、I
PTRREG50の内容をプロセスYのための作業域I PTR場所65に格納
することを要求する。16行目は、ソース・アドレスをプロセスYの作業域の状
態場所67に書込むことをめる。17行目は、5NPFLAGを1にセットする
ことをめる。これは、プロセスYをプロセッサの次の動作によりスケジュールか
ら外すべきであることを示す。それは第15c図に示す状態であって、入カブO
セスXが入力命令を実行するまでその状態を保つ。
また、プロセスXは入力すべきことをメツセージに対してめられるバイトの数の
カウントを、それのAレジスタ54に最初にロードする。プロセスXはそれのB
レジスタに、入力のために使用するチャネルのアドレスをロードし、Cレジスタ
に、最初に入力すべきバイトに対するメモリ内の宛先アドレスをロードする。こ
れはメツセージ入力の定義の2.3.4行目に従うもので、第15d図に示す状
態である。メツセージ入力の定義の5.6.7行目は、Bレジスタ内のアドレス
がハード・チャネルに対応するかどうかを調べることをプロセッサにめる。この
場合にはプロセッサはリンク・チャネル入力動作手続を実行することをめられる
。これは第15図に示すケースではない。
というのは、Bレジスタがチャネル70に対するものだからである。したがって
、8行目の条件は真で、9行目に続くシーケンスが行われる。最初に、プロセス
Xに対するTレジスタ49には、Bレジスタ内のポインタにより示されたオフセ
ットのない値、すなわち、チャネル内容がロードされる。その伯がrNotp
rocess pJでなかったとすると、プロセッサは13〜17行目に従う。
その結果としてプロセスXはスケジュールから外される。しかし、いまの場合に
はTレジスタは定義の18行目の要求にかなうことが見出され、r N ot
P rocess p Jを含まない。定義の21行目に従って、プロセッサは
偵r N ot P rocessp」を、第15e図に示すように、チ1?ネ
ル70に5込むことによってチャネル70をリセットする。22〜24行目は、
1つのメモリ場所(ソース)から別のメモリ場所(宛先)へデータのブロック・
コピーを行う用意をプロセッサがいま行ったこと、■レジスタ4つはプロセスY
のプロセス記述子をいま含み、Aレジスタが送るべきバイトの数のカウントを含
むことについての説明を含んでいるだけである。定義の25行目は、プロセスX
のためのBレジスタに、以前はCレジスタであった宛先レジスタがO−ドされる
ことを要求する。26行目に従って、PROCポインタ・レジスタ45にプロセ
スYのWPTRがロードされる。
W P T Rは、プロセス記述子をレジスタTからとり出し、優先ビットを除
去りることにより得られる。27行目は、プロセスXのためのCレジスタに、プ
ロセスYのための作業域の状態場所67から得たソース・アドレスがロードされ
ることをめる。それから、28行目は、プロセッサが次に行う動作として先に定
義した手続「コピー・ステップ阻止」を実行するように、適切なり先度のコピー
・フラッグを1にセットすることをめる。このためにソース・メモリ・アドレス
から宛先メモリ・アドレスへ1度に1バイトをプロセッサが転送させられ、かつ
その動作をくり返えして各バイトが転送させられるにつれてソース・アドレスと
宛先アドレスをしだいに変え、転送すべき残っているバイトの数のAレジスタ内
のカウントをしだいに減少させる。そのカウントが0になると、スケジュールか
ら外されたプロセスYは手続実行によって再び留守を組マレル。これはコピー用
止ステップの定義かられかる。2行目は起すべきシーケンスを定義する。最初の
ステップは3行目である。このステップでは、Cレジスタにより示されたメモリ
内のソース・アドレスからのバイトを0レジスタに読込む。それから、4行目が
Cレジスタからのデータのバイトを、Bレジスタにより示された宛先メモリ・ア
ドレスに書込む。その後で5行目がCレジスタをクリヤする。6行目は新しいソ
ース・ポインタを作る。そのソース・ポインタは1バイトだけ進められる。7行
目は新しいソース・ポインタを作る。そのソース・ポインタは1バイトだけ進め
られる。8行目はAレジスタ内のカウントを1だけ減少させる。それから、9行
目はAレジスタがいま零カウントを含んでいるかどうかを10行目に従って見出
すために行うべきテストを要求する。Aレジスタが零カウントを含んでいる時は
コピーの阻止が終らされている。Aレジスタが零カウントを含んでいないと、2
1行目の条件が満される。しかし、コピー・フラグが依然としで1にセットされ
ているから、プロセッサは適切な次の動作をとることを続冬プる。コピー阻止に
含まれているプロセスの優先度が低優先度のプロセスで、高優先度のプロセスが
実行する準備が整ったとすると、プロセッサは、より高い優先度のプロセスを実
行するために、完全なメツセージ転送が終る前に、1つまたはいくつかのバイト
を送った後でコピー阻止に割込むことができる。しかし、持っているより優先度
の高いプロセスがないものとすると、コピー阻止ステップの22行目に達すると
、コピー・フラグが依然としてセットされているからプロセッサは2行目力1ら
始まるシーケンスをくり返えす。したがって、カウントがOになるまでプロセッ
サはコピー阻止ステップの3〜8行目の手続をくり返えす。それから、1.3行
目はコピー・フラグをクリヤして、零にリセッ+することをめる。14.15行
目は、■レジスタ49SNotp rocess p以外の値を有するかどうか
を訓・べろごとをプロセッサに要求する。この場合には、スケ・ジュールを外さ
れたプロセスYのプロセス記述子、をそれは有する。したがって、16行目にお
いて始まるシーケンスが起り、■レジスタに前もって含まれて(いたプ・0セス
Yのプロセス記述子がロードされる。そh′hsら、プロセスYのスケジュール
を再び組むために、#i、jil!手続実行が行われる。19.20行目は、■
レジスタ、がスケジュールされているプロセスのブOセス記I述子・をTレジス
タが含まなかったとすると、動作が飛u越、さ九ることを単に示す。
λ−ユ
第16図は、第1のマイクロコンピュータ251【おける出力プロセスYと、第
2のマイクロフン、ビ2−タ252における入力プロセスXとの間の遥嬬をシー
ケンス・メツセージにおいて示すものである。プロセスYのための出力チャネル
90の出力ピン27が1本の線253により、プロセスXのための入力チャネル
91の入力ピン26に接続される。
全てのプロセスはハード・チャネルを用いて出力または入力を実行するから、適
切な出力命令または入力命令を実行した後はプロセスはスケジュールから外され
る。一方のマイクロコンピュータのメモリ内のソース・アドレスから、他方マイ
クロコンピュータのメモリ内の宛先アドレスへのめられている数のバイトの転送
は、第io、11.12.13.14図に示されているリンクWAmの制御の下
に行われる。両方のマイクロコンピュータのプロセッサがメツセージ転送とは独
立に現在のプロセスを実行できるように、バイトの転送はプロセッサによる動作
とは独立に実行される。
メツセージ転送のうちプロセッサによるそれ以上の動作を必要とする段階にリン
クが達した開に、それらのリンクはプロセッサに対して適当な要求を行う。各リ
ンク・チャネルはチャネル・アドレスを有する。そのアドレスはプロセス語と呼
ばれるメモリ内でアドレスできる1つの語より成る。それらのハード・チャネル
・プロセス3gをプロセッサかリンクへの別々の接続を必要としているハード・
チャネルとして認めるように、それらの語のアドレスが選択される。第16゜1
7.18.19の各図において、プロセスYのための出力チャネル90とプロセ
スXのための入力チャネル91を示すために、類似の四式が使用されている。
チャネルの関連するプロセス語256には略記号PWがつけられる。出力チャネ
ルはレジスタ254と場所257を有する。レジスタ254については第12図
を参照して先に説明した。前記場所257においては転送状態マシンの状態が示
されている。入力チャネル91に対しては、プロセス詔場所256と入力チャネ
ル・レジスタ255が示されている。レジスタ255は第13図を参照して先に
説明した。プロセス3B場所256は第13図から3状態マシンの状態を示す。
第16図において、両方のプロセスは類似の優先度を有し、出力プロセスYは、
プロセス×がメツセージを入力しようとする前に、メツセージを出力しようとす
る。「メツセージ出力」の定義の2〜4行目に従って、プロセスYは、メツセー
ジ中で出力すべきバイトの数のカウントをAレジスタ54にO−ドし、使用すべ
きチャネルのアドレスを8レジスタ55にロードし、コピーすべき最初のバイト
に対するメモリ内のソース・アドレスをCレジスタ56に0−ドする。第16a
図に示すように、この時には出力チャネルは遊んでおり、入力チャネルはデータ
ネ存在、遊びおよび不仁化の状態を有する。第16a図の後でプロセスYが動作
「メツセージ出力」を実行し、その動作の定義の6行目に従って、そのチャネル
がハード・チャネルであることをプロセッサは見出し、したがって、7行目に従
って手続「リンク・チャネル出力動作」が実行される。その手続「リンク・チャ
ネル出力動作jの定義は・プロセスYに対する現在のI PTRがJPTR50
からとり出されて、プロセスYに対する作業1aのIPTRI所に格納されるこ
とを示す。5行目は・プロセスYのプロセス記述子が出力チャネル90のプロセ
ス語IA所256に書込まれることをめる。6行目は出力チャネルのためのボー
ト番号をセットし、7行目は前記手続「リンク出力を行わせる」をめる。そうす
ると、プロセッサYの実行に使用する適切なレジスタからカウント・ソースと優
先度がチャネル・レジスタ254へ転送される。データの最初のバイトが送られ
るようにリンク・チャネルに対して入力要求も行われる。8行目に従って、前記
したように、プロセッサによる次の動作がYプロセッサをスケジュールから外す
ことをめるように、5NPFLAGが1にセットされる。この状態は第16b図
に示すようなものである。
プロセスXがメツセージ入力を実行しようとする時には、プロセスXはその入力
に対してめられるカウント・チャネルと宛先を、第16C図に示づようにAレジ
スタ54と、Bレジスタ55と、Cレジスタ56とにロードする。プロセスXが
「メツセージ人力」動作を実行する時は、そのプロセスXは、定義の6FJ目に
従って、チャネルがハード・チャネルであることを見出し、したがってそれは手
続[リンク・チャネル入力動作」を実行する。これはリンク・チャネル出力動作
について先に説明したのと同じシーケンスを実行する。それはXのI PTRを
プロセスXの作業域のI PTR場所65に格納し、プロセスXのためのプロセ
ス記述子を入力チャネル91のプロセス語256に書込む。それはXのカウント
宛先と優先度を入力チャネル91のレジスタ255にロードする。この場合には
手続リンク・チャネル入力動作の7行目は、プロセスXに関連する出力チャネル
から確認応答パケットがプロセスYに関連する入力チャネルへ送られるように、
リンクに対して入力要求を行う。状態は第16b図に示すようなものである。
それから、データ・パケット内の複数のデータ・バイトが送られる。第14図を
参照して説明したように、各送信に続いて確認応答パケットが送られる。プロセ
スXからEi後の確認応答パケットが送られると、プロセスXに対するリンクが
、13を参照して説明したように、a84eに実行要求を行って、マイクロコン
ピュータ258のプロセッサが、もし既にリストが存在するのであれば、リスト
の終りにプロセスXを加えることによってそのプロセスXを再スケジュールする
。これは16eに示す状態である。16eの後で最後の確認応答パケットがプロ
セスYに対する入力チャネルにより受α)られ、第128の1iI84bに実行
要求信号が発生されて、次の動作をとることを質問されたプロセッサがプロセス
Yを適切な優先度のリストの終りに加えるようにする。そうすると状態は16f
図に承りようなものとなる。
Jの チャネルからのプロセス
別のプロセスは、入力のためのいくつかのチャネルのうちの1つを選択し、次に
別のプロセスの対応する成分プロセスを実行するようなプロセスである。利用で
きる別のチャネルからのチャネルの選択は、そのチャネルを通じて出力すること
を既に持っている出力プロセスをそれが有するという意味で、1つまたはそれ以
上のチャネルが入力の用意が整っているかどうかを決定するために、全てのチャ
ネルを調べる入力プロセスによって実行される。どのチャネルも用意が整ってい
ないことが見出されると、チャネルの1つの用意が整うまで入力プロセスはスケ
ジュールから外される。
少くとも1つのチャネルの用意が整ったことが見出されると、あるいは出力プロ
セスによる動作のために入力プロセスが再びスケジュールに組込まれると、プロ
セスはいま用意が整った入力の1つ1つを選択し、そのチャネルを通じて入力を
行う。入力チャネルの選択中はブOセス作業域の状態場所67は特殊な値である
可能化p1持ちpおよびレディpのみをとることができる。
入力プロセスがいくつかの代替チャネルすなわち別のチャネルのうちの1つから
入力できるようにするためには、入力チャネルがそれのプログラムのうち、それ
らの代替チャネルのうちの1つから入力を希望する段階に初めて到達した時に、
代8人カチャネルのいずれも用意が整っていなければ入力プロセスをスケジュー
ルから外すことが重要rある。このことは、プロセッサが種々の優先度プロセス
で動作している場合はとくに重要である。それ以外では、別の入力を行うことを
希望している高優先度のプロセスが低優先度のプロセスを無期限に保持でき、そ
の間それはスケジュールに組込まれたままで、それらのプロセスのうちの出力プ
ロセスを待っている種々の別の入力チャネルの状態をくり返えしテストするだけ
である。したがって、この実施例によって、代りの入力チャネルが入力プロセス
により最初にテストされた時にそれらの入力チャネルのいずれもレディでないす
なわち用意が整っていないとすると、入力プロセスをスケジュールから外すこと
ができる。このようにして入力プロセスがスケジュールから外れたとすると、出
力プロセスによる動作のためにチャネルの1つの用愚が整うと、プロセスをスケ
ジュールに再び組入れるためにプロセッサに対して要求を直ちに行うことができ
る。しかし、入力プロセスがスケジュールに再び組入れられて、それの入力を実
行する前に2つ以上の出力チャネルがレディである、すなわち用意が整うことが
ある。したがって、入力プロセスがスケジュールから外されて持っている時に、
任意の出力チャネルがチャネル・レディを行うと・入力プロセスをスケジュール
に再び組入れるために2つ以上の要求がプロセッサに対して行われることを直ち
に阻止することが必要である。これは、先に定義した代りにスタート、チャネル
可能化、別の待機、チャネル不能化、代りの終り、および入力メツセージなどの
動作を含む命令を用いることによって達成される。代りの入力を行うことを希望
しているプロセスはどのプロセスでもまず代りのスタートを行い、それに続いて
可能な代りのチャネルに対して可能化チャネルを行わなければならない。その後
で、代りのlv機、チャネル不能化、および代りの終りなどの動作が続く。
この後で、前記したように「メツセージ入力」に使用するためのカウント・チャ
ネルとンース情報を与えるために、プロセスはあるロード命令を実行する必要が
ある。
代りの入力のための命令を含む種々の例について次に説明する。
匠−1
これは、メツセージを直列リンクを通じて送る、1つのマイクロコンピュータの
出力プロセスYと、責なるマイクロコンピュータの入力プロセスXとの間の通信
に関するものである。プロセスXは、Yが任意の出力命令を実行する前に、入力
動作を開始する。プロセスXが開始した時には代りの入力のいずれも用意が整っ
ていない。また、プロセスYによる出力動作のために1つのチャネルの用意が整
うと、他の代りのチャネルのいずれも用意が整わないと仮定する。、ji1初に
プロセスXは「代りのスタート」を実行し、その動作の定義にシステムプロセス
Xは[enabling pJをプロセスXの作業域の状態場所67へ書込む。
出力チャネル90および入力チャネル91の状態マシンは第17a図に示すよう
なものである。それがらプロセスXは動作「チャネル可能化」を行う。プロセス
Xは可能な各入力チャネルに対してこれを行うが、第17b図はプロセッサYに
より使用される特定のチャネルにおけるこの動作の結果を示す。チャネル可能化
の定義に示されているように、プロセスXは最初にガード値をAレジスタにロー
ドし、動作を続ける前にこれは調べられる。8〜17行目は、チャネルがソフト
・チャネルであるならば、後続のシーケンスを指定する。ここで説明しているケ
ースでは、チャネルのアドレスはハード・チャネルのアドレスに対応するから、
21〜29行目のシーケンスが続く。21行目はチ11ネルのボート数を計算し
、22行目はそのチャネルの状態についての質問をプロセッサに行わせる。23
〜25行目は、チャネルの用意が整ったとすると、値レディpがプロセスXのた
めの状PA場所67に書込まれたであろうことを示す。しかし、そうはならない
から27〜29行目のシーケンスが適用される。プロセスXのためのプロセス記
述子が定義の28行目に従ってチャネルのためのプロセス語場所に書込まれ、2
9行目は先に定義された手続リンク可能化を要求する。これは入力チャネルの優
先度フラッグをプロセスXの優先度にセットし、可能化要求をリンク・チャネル
に対して行わせる。これによってチャネルの状態を変えて第17b図に示すよう
に「可能化状態」にする。それからプロセスXは代りの待機を実行する。代りの
待機の定義の2行目に従って、これは値−1をプロセスXのための作業域の零揚
所にセットする。3行目と4行目は状態場所67の内容がレディpであるかどう
かを見るためにその内容を調べる。もしレディpでないとすると、8〜11行目
のシーケンスが実行される。いいがえると、値持ちpがプロセスXのための状態
場所67に酋込まれる。プロセスXのためのI PTRがI PTR場所65に
格納され、5NPFLAGを1にセットする結果としてプロセスXがスケジュー
ルから外される。
これが第17c図に示されている。この後でプロセスYが出力メツセージを行う
ことにより出力動作を開始する通常のやり方で、かつ前記したように、これはプ
ロセスYをスケジュールから外し、出力リンクが最初ののデータ・バイトを送る
。そのバイトが到達すると、プロセスXのための入力リンクにプロセスXのため
のプロセッサに対づるレディ要求を行わせる。それからプロセスXは再びスケジ
ュールに組入れられ、動作「チャネル不能化」を行う。この動作は1つのチャネ
ルを選択し、残りを不能状態にする。チャネル不能化の定義の1行目かられかる
ように、動作ALTENDの後で入力プロセスにより実行すべき次の命令のアド
レスからプロセスX(ま再びスケジュールに組入れられ、動作「チャネル不能化
」を行う。この動作は1つのチャネルを選択し、残りを不能状態にする。チャネ
ル不能化の定義の1行目かられかるように、動作ALTENDの後で入力プロセ
スにより実行すべき次の命令のアドレスをとり出すために必要な命令オフセット
がAレジスタにロードされる。Bレジスタはガード値を有し、Cレジスタにはチ
ャネル・アドレスがロードされる。この命令は可能な代りの各入力チャネルに対
してくり返えされることがわかるであろう。9行目と10行目はガード値の点検
を取り扱う。
この点検が満足されるものとすると、チャネル・アドレスがソフ1〜・チャネル
のアドレスであるかどうかを13.14行目にシステムプロセッサはテストする
。
しかし、この場合には26行目が、チャネルのアドレスがハード・チャネルのア
ドレスであることを適用する。29行目はチャネルのボート数を計評し、32行
目はプロセッサにより状態の質問をリンクに対して行ていることが見出されたと
すると、先に定義された手続「これは選択されたプロセスが」が実行される。そ
の定義の4行目に従って、これは0レジスタにプロセス×の作業域の零場所の内
容をロードする。5.6行目ニ従ッテ1ツレが−1であるかどうかについてこれ
はテストされ、もし−1であればAレジスタの内容がWPTRREGで示されて
いるメモリ場所に書込まれ、Aレジスタはこれが選択されたプロセスであること
を示す値MACHINETRtJEを有する。10行目に従って、0レジスタが
m−iを含んでいないとづると、これは選択されたプロセスではない。第17e
図はチャネル不能化動作を実行する直前の2つのプロセスの状態を示し、第17
f図はチャネル不能化動作を実行後の状態を示す。第17flKの後はプロセス
Xは動作ALTENDを実行する。この動作は、それの定義の1行目から、W
P T Rレジスタ内のポインタにより示されるメモリ・アドレスの内容を0レ
ジスタにO−ドする。それから、それはポインタをOレジスタに含まれているオ
フセットとともにI PTRレジスタに置く。I PTRレジスタはIPT、R
レジスタの以前の値を有する。これによってプロセスはそれの命令シーケンス中
の希望の位置においてtis、Fk可能にさせられる。ALTENDを実行した
後で、プロセスXはメツセージ送信のための適切な値をO−ドでき、かつ入力メ
ツセージを実行する。この入力メツセージは第16図の第16c図から前に示さ
れているシーケンスを実行する。
上記の例は代りのハード・チャネルの使用に関連したものであるが、シーケンス
は全体として類似し・プロセスはいくつかの代りのソフト・チャネルのうちの1
つを介する代りの入力を実行する。最初にプロセスが代りの入力を実行している
ことを示すために「代りのスタート」の実行により特殊な値[enabling
pJがプロセスの状態場所にロードされる。それから、チャネルの状態をデス
1−ツるために動作「チャネル可能化」が各チャネルごとに実行される。「チャ
ネル可能化」の定義の12.14.’1616行目ャネルの内容を調べる。12
行目にシステム、そのチャネルに作業域ポインタが見出されないとすると、1a
rNotP rocess pJがそのチャネルに書込まれる。、17行目に従
って、出力プロセスの作業域ポインタがチャネル内で見出されたとすると、値r
ReadV pJが入力プロセスの状B12所に去込まれる。これは、出力プ
ロセスにより実行された命令の結果としてどのチャネルが既に「レディ」である
かを調べるために各チャネルに対して行われ、レディでないことが見出されたチ
ャネルに対しては入力プロセスの作業域ポインタはそのチャネルに残される。そ
れから入カブ0セスは「代りの待機」を実行する。これはチ11ネルではなくて
入)jプロセスを行う。定義の2行目にシステム、それは値−1を入力プロセス
のための作業域の零場所にロードし、「代りの待機」の定義の5.7行目は入力
プロセスの状態場所の点検を行う。もし値rReady pJを見出したとする
と、入力プロセスはスケジュールから外されないが、rReady pJを見出
さないとづると、定義の9行目に従ってそれは[wait pJをプロセスの状
態場所に書込み、定義の10.11行目は入力プロセスのスケジュールから外さ
れるようにされる。入力プロセスがスケジュールから外されなかったとすると、
それは「チャネル不能化」であろうそれの次の命令で実行する。一方、それがス
ケジュールから外されたものとすると、代りのチャネルの1つを使用しようとし
ているプロセス出力の結果としてそれはそのうちに再びスケジュールに組入れら
れる。そして、入力プロセスがスケジュールに再び組入れられると、それはそれ
の次の命令を再び行う。その命令は「チャネル不能化」である。それは代りの各
チャネルに対してこの動作を行い、各動作に先立ってAレジスタオフセット数が
ロードされて、そのチャネルがその入力に対して選択されたものだとすると、そ
のプロセスのた゛めのプログラム・シーケンス中で次の命令を探すため目は、チ
ャネルがmrNot Process pJ、入力プロセスに対するポインタ、
または出力プロセスに対するポインタを含んでいるか否かについてのそれぞれの
テ゛ストを示す。24行目に従って、チャネルが出力プロセスに対するポインタ
を含んでいることが見出されたとすると、25行目は手続「これは選択されたプ
ロセスか」をめる。この手続の定義に従って、プロセスの作業域の零場所が−1
を依然として有するかどうかを調べられ、もし−1を有しておけばそれが入力の
ために選択されたチャネルとなり、手続は値−1を除去して、作業域の零場所に
必要な命令オフセットを書込む。それ以上「チャネル不能化」動作が残りのチャ
ネルにおいて実行されると、あるものは出力プロセスに対するポインタを保持す
ることにより「レディ」であることを見出すことができるが、手続「これは選択
されたプロセスであるか」が実行される時は、それはもはや値−1を入力プロセ
スの作業域の零場所に探さず、したがってチャネルが既に選択されたこと、その
ためにそれ以上のチャネルは選択されないことは明らかであろう。入力プロセス
に対するポインタを含んでいることが依然として見出されているどのチャネルも
[p rocess p Jへ変えられる。「チャネル不能化」動作が代りの全
てのチャネルにおいて実行された後で、入力プロセスは動作「代りの耕り」を実
行する。
この動作は入力プロセスの作業域の零場所から命令オフセットを転送し、そのプ
ロセスに対する継続するプログラムがそれの命令シーケンス中の正しい点におい
てピックアップされるように、そのプロセスに対する命令ポインタにそのオフセ
ットを加えさせる。
九−1
第18図に示されているこの例は、別のマイクロ0ンビユータのプロセスXと通
信するために1つのマイクロコンピュータにおいて出力動作を行うプロセスYを
有する。その別のマイクロコンピュータはいくつかのチャネルで代りの入力動作
を行う。それらのチャネルのうちプロセスYにより使用される1つのチャネルが
レディとなつCいる唯一の入力チャネルである。最初にプロセスYが第16a、
ieb図を参照して説明したシーケンスに従って出力メツセージを実行する。
これは第18a図において達した状態である。それからプロセスXは代りのスタ
ート動作を行い、かつチャネル可能化を実行しようとする。それの状態が第18
b図に示されている。チャネル可能化を実行した後で、状態は第18b図に示づ
ものへ移る。それからプロセスXは代りの待機を実行するが、M続し、スケジュ
ールから外されない。プロセスXがチャネル可能化を実行しようとしている状態
が第1ad図に示されている。チャネル可能化を実行したプロセスは、チャネル
不能化の実行後に、第17図を参照して説明したようにして継続する。
λ−1
第19図は、出力プロセスYが出力動作を開始する前にプロセスXが代りの入力
flJ作を行う状況における同じマイクロコンピュータ上の同じ優先度の2つの
プロセスXとYを示すものである。プロセスYがXよりも高い優先度にあればシ
ーケンスは同じである。最初にプロセスは代りのスタートを実行し、これは第1
9a図に示す状態である。それはプロセスXに対する作業域の状態場所にren
ablino DJを単&−書込むだけである。それからプロセスXはチャネル
可能化を実行し、これは第19b図に示す状態へ移る。この状態においてはプロ
セスXのプロセス記述子がチャネルに配置される。第19C図へ移るために、プ
ロセスXは代りの待ち動作を行い、プロセスXの状態場所はenablina
pを含んでいるから、WaitinU pのためにその場所は更新され、プロセ
スXは再びスケジュールから外される。プロセスYが出力することを希望した時
は、プロセスYは、第19d図に示すように、それのレジスタをロードすること
により開始し、メツセージ出力を実行する。それは持ちプロセスXのプロセス記
述子をチャネルが含んでいることを見出し、プロセスYはプロセスXのための作
業域の状B場所を読んで、それが値waiting pを含んでいることを見出
す。
これは、プロセスXが代りの入力動作中に含まれていることを示す。これによっ
てXの状態11Jiがready pにさせられ、チャネルにプロセスYのプロ
セス記述子がロードされる。プロセスYの作業域はYに対するI PTR値とソ
ース・アドレスを保持づるために用いられる。プロセスYは5NPFLAGを1
にセットし、プロセスXをスケジュールに組入れる。これは第19C図に示す状
態である。S N P F I−A Gが1にセットされるとプロセスYがスケ
ジュールから外される。スケジュールに組入れられているプロセスXは、第19
f図に示すように、チャネル不能化動作をいま実行しようとしている。不能化動
作を実行した後は状態は第19Q図に示すようなものである。その後で、プロセ
スXが代り終りの動作を行う。前記したように、その動作には別の0−ド命令と
入力メツセージが第20a、20b、2Oc図に示す例は、低優先度のプロセス
Xと同じように同じマイクロコンピュータにより実行される高優先度のプロセス
Yが、どのようにしてプロセスXに割込めるかを示すものである。プロセスXは
低優先度1のプロセスであって、それの実行中にプロセスYを作った。プロセス
Yは高優先度である優先度Oを有するから、プロセスXは割込まれて、それのW
P T Rを例先度1の〜へIPTRREG51に残す。第20a図に示す状
態においては、プロセスYは現在のプロセスであって、優先度フラッグ47がセ
ットされて優先度0のプロセスを示し、図示の例では優先度1またはOのリスト
上で待っているプロセスはない。プロセスYの実行中にそれはリンクを用いて出
力メツセージを行うことを希望する。これによって、第20b図に示すように、
5NPFLAGが1にセットされ、プロセスYはスケジュールから外される。次
のプロセスをスタートさせる手続によって5NPFLAG58がクリヤされ、優
先度0のリストに別のプロセスがあったかどうかを決定づるためにプロセッサは
FPTR(0)をテストする。別のプロセスはない(というのはFPTRREG
(0)はNotp rocess Dを含んでいるからである)から、プロセ
ッサはPRIFLAG47を1にセットし、かつWPTRREG(1)はプロセ
スXに対する妥当な作業域ポインタを含むから、次のプロセスをスタートさせる
手続はそれ以上の動作を行わない。リンクおよび5NPFLAG (1)からの
要求がないこと次の動作として調べるブロセッ勺はセットされず、したがってそ
のプロセスυはプロセスXの実行を再び開始する。これは第20C図に示す状態
である。いくらかの後の段階で、それを通じてプロセスYがメツセージを出力し
たリンクが、そのメツセージ中に含まれていた一連のバイトの終りで最後の確認
応答を受ける。その時に、プロセスYにより使用されるリンクがプロセッサに対
して実行要求を行う。現在の動作が終る5NPFLAG (1)はセットされず
、現在のプロセスである優先[Xの優先度より高いチャネル優先度0に対する実
行要求が行われる。したがって、プロセスは手続「実行要求を取扱う」を実行す
る。この手続は持ちプロセスYのプロセス記述子をPROCDESCREGにコ
ピーし、実行手続を行う。この実行手続はプロセスYのプロセス作業域ポインタ
をPROCPTRREGにロードし、その優先度をPROCPRI F LAG
にロードする。
その優先度が現在のXプロセスのPRI FLAGに示されている優先度より高
いから、υ1込みが行われる。
PRIFLAGはOにセットされ、WPTRREG(0)はそのプロセス作業域
にセットされ、I PTRREG(0)がロードされる。そうすると状態は第2
0alffiに示す状態へ戻される。プロセッサの次の動作は、出力メツセージ
命令に続く命令である次の命令プロセスYを実FJすることである。
乳−ユ
第21a、21b、2le図は出力プロセスYと、代りの入力を行う高い優先度
のプロセスXとの間をメツセージが通っている間におけるフラグの変化とレジス
タを示すものである。この特別の例では、プロセスXは代りの入力を既に開始し
ており、プロセスXがスケジュールから外されて、それのプロセス記述子がチャ
ネル内にあるように、代りの特機を実行している。
プロセスYが出力メツセージを実行すると、プロセスYはXのプロセス記述子を
チャネル内で見出すから、プロセスXがWiWaitino Dを見出すプロセ
スXの作業域の状態場所を読取ることにより、プロセスXが代りの入力を実行し
ていることを示す。したがって、プロセスYはそれのプロセス記述子をチャネル
に配置させ、YのI PTRがYの作業域のIPTR場所に書込まれ、メツセー
ジの最初のバイトのソースがYの作業域の状態場所に書込まれる。それから、第
21a図に示すように5NPFLAG (1’)がセットされる。これは後でプ
ロセスYをスケジュールから外させる。Xのプロセス記述子がPROCDESC
レジスタに書込まれ、プロセッサはプロセスXのための実行手続を実行する。し
かし、プロセッサが優先度OのプロセスXをいまスケジューリングし、プロセッ
サは現在は優先度1であるから、それは優先度1の刈込みを行わせ、手′eLS
tartNextPrecessがスタートづる前にプロセスXの実行を開始す
る。実行手続の終了後の状態を第21b図に示t、それから、プロセスXがチャ
ネル不能化動作を行い、プロセスYにより使用されるチ1νネルを選択する。そ
れから、プロセスXは入力メツセージ命令の実行を続ける。その命令はチャネル
を値rNotP rocess p Jにリセットし、TREGにプロセスYの
プロセス記述子をロードし、コピー・フラッグを1にセットする。それから、ブ
ロセッ勺はメツセージをコピーさせ、11にプロセスをスケジュールさせる。
実行手続はプロセスYを優先度1の行列に6かせる。
それから、プロセッサは、次にどの動作を行うかを決定し、5NPFLAG (
0)がセットされるhXら、プロセッサは5tartNeXtPrOCeSSを
実行する。これ(まマシンを優先度1へ戻させる。これは第21C図に示す状態
である。5NPFLAG (1)が依然としてセットされているから、プロセッ
サは手続5tartHeXtProcessを実行する。それはプロセスYをス
ケジュールから外す。しかし、プロセスYは優先度1のリスト上に依然としであ
るから、最後にはスケジュールされわれわれのヨーロッパ特許明細書第1106
42号には、変数[rotations Jを取扱うプロセス例と、変t1[1
i1esJを取扱うプロセス例との2つのプロセス例が記載され、それらのプロ
セスのための2つのプログラム例を実行する命令シーケンスが与えられて(Xる
。同じ2つの個を以下に説明する。両方のプログラムはヨーロッパ特許明i書第
110642号に記載されているのと同じであり、それらのプログラム(まOC
CAM言詔を用言語再び出かれる。下記の各プL1グラム例は、OCCAM文を
機械命令に変換するコンパイラの使用により形成される命令シーケンスである。
この場合には機械命令は上記で定義した機能および動作に従う。
各個においてプログラムと命令シーケンスに行番号が加えられているが、行番号
は参照の目的のためだけ1、 VARrotations :
2、誓旧LE TRUE
3、S[:Q
4、 rotations :=+ 。
5、 縁間LE rataNons < 10006、 5EQ
7、 rotation ? ANY
8、 rotations := rotations + 19、 m1le
! 八MY
機能
コード データ
VARrotations:
WIIILE TRuE
EQ
i、 tl:
2、 ldc O70rotations:=05゜
6、 Pfix3 14 3
7、 Pfixl4 14 14 5EQ8、 1dc 1000 7 8
9、 1610 0 0
10、 oprgt 13 13
11、 Cj L3 10 11
12、 1d1p 3 2 3 rotation? 八+1Y13、 Idl
l O1
14、1dc1 7 1
15、 0Drbcnt 13 7
1B、 pfiXl 14 1
17、 opr in 13 6
18、 1d1 0 0 0 rotations:=19、 adc 1 a
1rotations+120、 5t10 1 0
21、 nrixl 15 1
22、 j L2 9 15
23、13+ m1le ! ANY
24、 1dlD3 2 3
25、 1dl 2 0 2
26、 1d1 1 7 1
27、 opr bent 13 7
28、 pfixl 14 1
29、 ODr out 13 7
30、 nfix 1 15 1
31、 jL19 5
例2
1、VARm1les :
2、3EQ
3、 ff1iles ニー 0
4、 WIIILE TRυ[
5、ALT
6、mi lc ? ANY
乙 glile := m1les + 18、 fuel)ANY
9、3EQ
10、 consumption ! m1les11、 m1les :=
0
機能
VARm1les :
EQ
1、 1dcO71m1les:=0
2、 5t11 1 1 1JIIILETRUE3、Ll
4、 Pfixl 14 1
5、opr aft 13 8 ^[■6、 1d13 0 3
7、Idc17 1
B、pfixl 14 1
9、 opr enbc 13 13
10、 1d14 0 4
11、 1dc1 7 1
12、pfixl 14 1
13、Opr enbc 13 13
14、pfixl 14 1
15、 opr altwt 13 916、 1d13 0 3
17、1de171
機能
19、Pfixl14 1
20、opr disc 13 14
21、 1d14 0 4
22、 1611 7 1
23、 1dc (L3−12) 7 1024、pfixl 14 1
25、opr clisc 13 1426、pfixl 14 1
27、apr 、altend13 1G28、 L2:
29、 1dlp 2 2 2 1niles ? ANY30、 1d13
0 3
31、 1dc1 7 1
32、、opr bcnt 13 7
33、Mixl 14 1
34、opr in 13 6
35、 1d11 0 1
36、adc 1 8 1 m1lesニ−m1les+137、 5t11
1 1
羽、j L4 9 12
39、 L3:
40、 1dip 2 2 2 fuel ?ANY41、 1d14 0 4
3EQ
42、 1(11171
43、opr bcnt 13 7
44、pfixl 14 1
45、 apr in 1.+ 6
48、 0pr bcnt 13 7
機能
≧±t1
49、Pfixl 14 1
50、oprout 13 7
51、 1dc 0 7 0 m1les :=052、stl 1 1
53、 L4:
54、 nfix3 15 3
55、 j Ll 9 15
これら2つのプログラムは、上述の機能およびオペレーションを用いるので、ヨ
ーロッパ特許第110642号明m;aに言及されているように異なった命令シ
ーケンスを作成する。
λ−ユ
この10グラムの7行目はチャネル「rotationJがらの入力を要求じ、
これは対応する命令シーケンスの12行目に入力すべきデータのための宛先アド
レスをロードさせる。13行目は使用すべきチャネルにポインタをO−ドする。
14行目は入力すべき語の数のカウントをロードす。16.17行目はpfix
ll能を使用す、ることにより動作「メツセージ入力」をロードする。同様に、
プログラムの9行目はチャネルを通る出力を要求し、対応する命令シーケンスの
12行目は出力すべきデータのソースにポインタをロードづる。
26行目は話中の出力メツセージのカウントをロードする。27行目はこのカウ
ントをバイトに変換する。
また、28.29行目は、「メツセージ出力」命令を実行するためにpfix命
令を使用する。
この例は、プログラムの5行目で始まる代りの入力動作を含む。これは、プログ
ラムの6行目にシステムチャネル「m1leJから、またはプログラムの8行目
に従ってチャネルl”fuelJからの代りの入力を要求する。対応する命令シ
ーケンスにおいては、代りの入力動作が5行目で始まることがわかる。5行目は
動作ralternative 5tart Jを要求する。6行目はポインタ
をチャネル「m1leJにロードする。7行目はガード値「真」をロードする。
チャネル「m1leJのための「チャネル可能化」を動作させるために、8.9
行目はpfixltl能として用いる。10行目はポインタをチャネル「fue
lJにロードし、11行目はガード値「真」をロードづる。チャネル[fuel
Jのための動作「チャネル可能化」を実行するために12.13行目はpfix
機能を用いる。このプロセスのためにr alternativewaitJを
動作させるために14.15行目はpfixlfi能を用いる61616行目イ
ンタをチャネル[ailcJにロードし、17行目はガード1Ifl「真」をロ
ードする。
18行目は、プロセスかチャネル[1ileJを通って入力させた時に必要であ
る。命令オフセットをロードする。この場合には要求されるオフセットはOであ
る。
チャネル「11e」において動作「チャネル可能化」を実行するために19.2
0行目はpf 1xli能を用いる。
21行目はポインタをチャネル「fuelJにロードし、22行目はガード値「
真」をロードする。23行目は、プロセスがチャネル「fuel Jを通って入
力する旧に必要である命令オフセットをロードする。チャネル「fuelJにお
いて「チャネル不能化」を動作させるために、24.25行目はpfix機能を
使用する。
[alternative end Jを動作させるために26.27行目はp
f 1xv1能を用いる。
alternative end動作は、それを通じて入力が行われたチャネル
に応じて適切な命令オフセットを0−ドして、入力のためにチャネル[m1le
Jが用いられたとすると、プロセスが基準マーカーL2〜L3の間の命令シーケ
ンスをプロセスが実行し続けるようにする。
あるいは、チャネル「fuelJが選択されたとすると、命令オフセットは基準
点L3〜L4の間で命令シーケンスの実行をプロセスに行わせる。
可変語長のネットワーク
以上説明したように、同じマイクロコンピュータまたは異なるマイクロコンピュ
ータにお番プるプロセス間のメツセージ伝送は、標準長の任意の数のデータ・パ
ケットで行われる。したがって、任意のメッセージ長を使用できる。各パケット
はデータのバイトを含むから、通信は種々の市民のマイクロコンピュータの間で
行わせることができ、メツセージ伝送に含まれているマイクロコンピュータに対
して完全な数の詔を構成するために、各メツセージに適切な数のバイトを供給す
る必要があるだけである。そのようなネットワークが第22図に示されている。
この図においては、語長が16ピツト、24ピツト、または32ピツトである複
数のマイクロコンピュータが示されている。
マイクロコンピュータ260は16ビツトH?tmのレジスタを有し、マイクロ
コンピュータ261.262は24ビツト詔長のレジスタを有する。マイクロコ
ンピュータ263は32ビツトtB長のレジスタを有する。上記のメツセージ伝
送命令は、ネットワーク中に含まれているマイクロコンピュータの頷艮とは無関
係に同様に動作する。
本発明は上記路傍の詳細に限定されるものではない。
イ4ffiツ首Dtn7−フとスシソλト東カフ”tvT’スY 墨−冬−を−
m−も)υ十カアI−1?λV 1’ff17@+−、?lff V−リ/ L
/ Lへ17″ヤ子ル 八777”oでλXよ777”o?’λγ 人77zb
tλ×、t777°oj’ス Y At)7”otλ×2カ2″’ot7Y A
t)7°otXXt 7y y”otzY λη、7”OtλX土カフ”otz
Y 八ツ7°Dでス×
広〃7″0でλY λカフ・cpPスVよη7b1ニスY λカントを名 ×
2カグotスY 入カフ°0でス×
よりン’otスY 入iグクでλX
大777°otλγ 人77Ω、tλ×ヨ〃7°”λYA777”Dt’λX
PRI 、 OPRl、I
PRI=OPRl、1
PRI=1
!I WPTRX WPTR口!亘[丁5)1)跡 yl 客 式 牛
ANNEX To TEE IIJTEINATrONAL SEA:’IcH
REPORT ON
Claims (1)
- 【特許請求の範囲】 1.メモリと、複数の同時プロセスを実行するために構成されたプロセッサとを 備え、各プロセッサは、プロセッサにより逐次実行するための複数の命令より成 るプログラムに従って前記プロセスを案行し、前記プロセッサは(1)複数のレ ジスタおよびそれらのレジスタの間のデータの転送に使用するデータ転送手段と 、(2)各命令を受け、プロセッサ・レジスタの1つにその命令に関連する値を ロードする手段と、(3)受けた各命令に応答して前記データ転送手段とレジス タを制御し、プロセッサにその命令に従って動作させる制御器と、を備えるマイ クロコンピュータにおいて、このマイクロコンピュータは:、(a)(i)1つ またはそれ以上のプロセスを識別して、プロセッサによる少くとも1つの収集待 機実行を形成する手段と、 (ii)現在のプロセスの実行に割込むことによりプロセスをデスケジューリン グする手段と、(iii)プロセスを収集待機実行に加えることによりそのプロ セスをスケジューリングする手段と、を備え、プロセッサがそれの処理時間を複 数の同時プロセスの間で共用できるようにするためのスケジューリング手段と、 (b)1つのプロセスと別のプロセスがそれぞれのプログラム・シーケンスにお ける対応する段階にある時に、通信チャネルを使用することにより1つのプロセ スから別のプロセスへメッセージの伝送を行えるようにする通信手段と、データ を出力するために動作する出力プロセス、およびデータ転送に使用するために1 つまたはそれ以上のチャネルを識別するメッセージに応答してデータを入力する ために動作する入力プロセス、 を含み、前記通信手段は、 (i)1つのアドレス可能な場所から別のアドレス可能な場所へ所定のビット長 のメッセージ・ユニットを転送する手段と、 (ii)メッセージ命令の実行に応答して、メッセージに含まれるべきメッセー ジ・ユニットの数のカウントを与える手段と、 (iii)出力プロセスによるメッセージ命令の実行に応答して、それからデー タを出力させるアドレスを指示する差出し元指示手段と、 (iv)入力プロセスによるメッセージ命令の実行に応答して、それへデータを 入力させるアドレスを指示する宛先指示手段と、 を含むことを特徴とするマイクロコンピュータ。 (2).特許請求の範囲第1項記載のマイクロコンピュータであって、各メッセ ージユニットの前記所定のビット長は1バイトであることを特徴とするマイクロ コンピュータ。 (3).特許請求の範囲第1項または2項記載のマイクロコンピュータであって 、複数のアドレス可能なチャネルと、メッセージ命令の実行に応答して、メッセ ージ伝送のために使用すべきチャネルのアドレスを指示する手段とを含むことを 特徴とするマイクロコンピュータ。 (4).特許請求の範囲第1〜3項のいずれかに記載のマイクロコンピュータで あって、プロセスへ、またはプロセスからメッセージで送られたバイトの数をカ ウントし、メッセージ中の全てのバイトが送られた時に信号を与える手段を含む ことを特徴とするマイクロコンピュータ。 (5).特許請求の範囲第4項記載のマイクロコンピュータであって、送るべき 残っているバイトの数のカウントが減少するにつれて、差出し元指示手段により 指示されたアドレスを変更するための手段が設けられることを特徴とするマイク ロコンピュータ。 (6).特許請求の範囲第5項に記載のマイクロコンピュータであって、送るべ き残っているバイトの数のカウントが変化するにつれて、宛先指示手段により指 示されたアドレスを変更するための手段が設けられることを特徴とするマイクロ コンピュータ。 (7).特許請求の範囲第1〜6項のいずれかに記載のマイクロコンピュータで あって、各通信チャネルは、あるプロセスが命令を実行したかどうかを示す値を 保持して、そのチャネルを用いてデータ伝送を行う格納手段を備え、各チャネル の内容を試験し、そのチャネルが、データ伝送中の別のプロセスが対応するプロ グラム段階に達したことを示す値を含んでいなければ、現在のプロセスをデスケ ジュールするために動作するように構成された手段が設けられることを特徴とす るマイクロコンピュータ。 (8).特許請求の範囲第7項記載のマイクロコンピュータであって、スケジュ ーリング手段は、プロセスにより実行されている現在のプロセスを指示する手段 とを含み、通信手段は前記チャネルへロードし、その現在のプロセスがチャネル の内容の前記試験の結果としてデスケジュールされた時に現在のプロセスを識別 する手段を含むことを特徴とするマイクロコンピュータ。 (9).特許請求の範囲第8項記載のマイクロコンピュータであって、前記メモ リは各プロセスに複数アドレス可能な場所を有する作業域を与え、前記複数のア ドレス可能な場所は、プロセスに関連する変数を記録する場所を含み、前記プロ セッサ・レジスタの1つは、現在のプロセスの作業域のアドレスを識別する値を 指す作業域を保持するように構成されることを特徴とするマイクロコンピュータ 。 (10).特許請求の範囲第9項記載のマイクロコンピュータであって、前記チ ャネルへロードすべき前記識別は前記作業域ポインタ値であることを特徴とする マイクロコンピュータ。 (11).特許請求の範囲第7〜10項のいずれかに記載のマイクロコンピュー タであって、同じマイクロコンピュータにおいて実行されているプロセスの間で データの伝送を行っているように構成され、前記チャネルはメモリ場所を備える ことを特徴とするマイクロコンピュータ。 (12).特許請求の範囲第11項記載のマイクロコンピュータであって、各チ ャネルはデスケジュールされたプロセスに対する作業域ポインタ値、または、そ のチャネルを用いてどのプロセスもメッセージ命令をまだ実行していないことを 示す特殊な値を保持するように構成され、データ差出し元アドレスに対するポイ ンタ手段を、そのチャネルを用いているデスケジュール出力プロセスに関連する メモリ場所に格納し、かつ、入力プロセスをデスケジュールさせる入力プロセス による入力命令の実行後にデータ宛先アドレスに対するポインタを入力プロセス に関連するメモリ場所に格納するための手段が設けられることを特徴とするマイ クロコンピュータ。 (14).特許請求の範囲第1〜第13項のいずれかに記載のマイクロコンピュ ータであって、プロセッサは、メッセージ命令の実行の結果として示されたデー タのバイト数を、マイクロコンピュータのメモリ内の1つのバイトアドレスから 別のアドレスまで直接に、直接コピーする手段を有することを特徴とするマイク ロコンピュータ。 (15).特許請求の範囲第1〜14項のいずれかに記載のマイクロコンピュー タであって、種々のマイクロコンピュータにおいて実行されているプロセスの間 で外部データ伝送を行えるようにするために構成され、名チャネルは外部通信リ ンクを備えることを特徴とするマイクロコンピュータ。 (16).特許請求の範囲第15項記載のマイクロコンピュータであって、各外 部通信リンクはアドレス可能なメモリ場所により与えられるチャネルを含むこと を特徴とするマイクロコンピュータ。 (17).特許請求の範囲第15項または16項記載のマイクロコンピュータで あって、各外部通信リンクはデータの1バイトを格納する手段を備えることを特 徴とするマイクロコンピュータ。 (18).特許請求の範囲第17項記載のマイクロコンピュータであって、各外 部通信リンクはプロセッサによる動作なしに一連のバイトを送るように構成され ることを特徴とするマイクロコンピュータ。 (19).特許請求の範囲第18項記載のマイクロコンピュータであって、各外 部通信リンクは、そのリンクのアドレスを用いてメッセージ命令を実行するプロ セスをデスケジュールするように構成され、各リンクは、リンクを介して送るべ きバイトの数の指示を、差出し元に対するポインタまたはメッセージの次のバイ トに対する宛先アドレスとともに格納する手段を含むことを特徴とするマイクロ コンピュータ。 (20).特許請求の範囲第19項記載のマイクロコンピュータであって、各外 部通信リンクは、送られたバイトの数をカウントし、全てのバイトが送られた時 に指示を与える手段を含むことを特徴とするマイクロコンピュータ。 (21).特許請求の範囲第19項または第20項記載のマイクロコンピュータ であって、各外部通信リンクは、メッセージの全てのバイトが送られた時に、そ のメッセージ伝送に含まれているプロセスを再スケジュールするためにプロセッ サへの要求信号を発生する信号発生器を含むことを特徴とするマイクロコンピュ ータ。 (22).アドレス可能なメモリ場所が、データ伝送が起きた時のプロセスのプ ログラム・シーケンスにおける対応する段階に置くことを可能にするためのチャ ネルとして使用される、マイクロコンピュータで実行される2つのプロセスの間 でデータ伝送を行なう方法において、(1)一連のプログラム・シーケンスに従 って現在のプロセスを実行する過程と、(2)そのプロセスがプロセッサによる 実行を待っているかを指示する過程と、(3)データを送ることを望んでいるプ ロセスにより出力命令を実行する過程と、を備え、プロセッサは出力命令に応答 して(a)データ伝送のために使用するチャネルのアドレスを識別し、(b)デ ータ伝送において送るべきバイトの数の指示を与え、(c)伝送を開始するため にチータの差出し元のアドレスを指示し、(d)前記チャネルの内容を試験して チャネルを介しての入力を待っているデスケジュールされたプロセスの標識、ま たはそのチャネルを使用することを待っているプロセスが無いことを示す特殊な 値を検出し、(e)その特殊な値に応答して差出し元アドレスに対するポインタ を格納し、そのプロセスの標識をそのチャネルにロードし、かつ現在のプロセス をデスケジュールし、(g)待っているプロセスの標識に応答して、ロードすべ きデータをメモリのうち待うている領域へ転送させ、前記特殊な値をチャネルに ロードし、待っているプロセスをプロセッサによる実行のために再スケージュー ルさせることを特徴とするマイクロコンピュータで実行される2つのプロセスの 間でデータ伝送を行なう方法。 (23).特許請求の範囲第22項記載のデータ伝送を行なう方法であって、デ ータを受けることを待っているプロセスは入力命令を実行し、プロセッサは入力 命令に応答して(a)データ伝送に使用するチャネルのアドレスを識別し、(b )入力すべきバイトの数のカウントを指示し、(c)入力すべき最初のバイトの 宛先アドレスを指示し、(d)チャネルを通じての出力を待っているデスケジュ ールされたプロセスの標識、またはチャネルを使用することを待っているプロセ スが無いことを示す特殊な値を検出するために前記チャネルの内容を試験し、( f)前記特殊な値に応答してそのプロセスの標識をチャネルにロードし、現在の プロセスをデスケジュールし、(g)待っているプロセスの標識に応答して、待 っているプロセスに関連するメモリ領域から現在のプロマスに関連するメモリ領 域へ送るべきデータを転送させ、前記特殊な値をチャネルにロードして、待って いるプロセスをプロセッサにより実行させるために再スケジュールさせることを 特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB8329509 | 1983-11-04 | ||
GB838329509A GB8329509D0 (en) | 1983-11-04 | 1983-11-04 | Computer |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61500385A true JPS61500385A (ja) | 1986-03-06 |
JP2664662B2 JP2664662B2 (ja) | 1997-10-15 |
Family
ID=10551256
Family Applications (3)
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 | マイクロコンピュータ、及び同時プロセスを動作させる方法 |
JP59504133A Expired - Lifetime JP2664664B2 (ja) | 1983-11-04 | 1984-11-02 | マイクロコンピュータおよびプロセス実行方法 |
Family Applications After (2)
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 | マイクロコンピュータおよびプロセス実行方法 |
Country Status (6)
Country | Link |
---|---|
US (3) | US4758948A (ja) |
EP (3) | EP0149311B1 (ja) |
JP (3) | JP2664662B2 (ja) |
DE (3) | DE3481389D1 (ja) |
GB (1) | GB8329509D0 (ja) |
WO (3) | WO1985002037A2 (ja) |
Families Citing this family (48)
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 |
DE69027868T2 (de) * | 1989-01-13 | 1997-02-06 | Ibm | Datenverarbeitungssystem mit Mitteln zur Zustandserkennung der Befehle empfangenden Datenverarbeitungseinrichtung |
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 |
EP0636256B1 (en) | 1992-03-31 | 1997-06-04 | Seiko Epson Corporation | Superscalar risc processor instruction scheduling |
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 |
EP0638183B1 (en) | 1992-05-01 | 1997-03-05 | 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 |
KR100248903B1 (ko) | 1992-09-29 | 2000-03-15 | 야스카와 히데아키 | 수퍼스칼라마이크로프로세서에서의 적재 및 저장연산처리방법 및 시스템 |
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 |
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 |
DE69330889T2 (de) | 1992-12-31 | 2002-03-28 | Seiko Epson Corp., Tokio/Tokyo | System und Verfahren zur Änderung der Namen von Registern |
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 |
US6804239B1 (en) * | 1999-08-17 | 2004-10-12 | Mindspeed Technologies, Inc. | Integrated circuit that processes communication packets with co-processor circuitry to correlate a packet stream with context information |
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 |
CN100495382C (zh) * | 2004-11-11 | 2009-06-03 | 国际商业机器公司 | 借助于网络重建的处理单元的并发刷新 |
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 |
Citations (4)
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 |
JPS5798062A (en) * | 1980-12-12 | 1982-06-18 | Hitachi Ltd | Communication system between processors |
JPS59146346A (ja) * | 1983-02-10 | 1984-08-22 | Fujitsu Ltd | プロセス間通信方式 |
Family Cites Families (15)
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 |
US4724517A (en) * | 1982-11-26 | 1988-02-09 | Inmos Limited | Microcomputer with prefixing functions |
GB8309770D0 (en) * | 1983-04-11 | 1983-05-18 | Inmos Ltd | Microcomputer |
-
1983
- 1983-11-04 GB GB838329509A patent/GB8329509D0/en active Pending
-
1984
- 1984-11-02 JP JP59504041A patent/JP2664662B2/ja not_active Expired - Lifetime
- 1984-11-02 EP EP84307587A patent/EP0149311B1/en not_active Expired
- 1984-11-02 DE DE8484307586T patent/DE3481389D1/de not_active Expired - Fee Related
- 1984-11-02 WO PCT/GB1984/000377 patent/WO1985002037A2/en unknown
- 1984-11-02 DE DE8484307583T patent/DE3483306D1/de not_active Expired - Fee Related
- 1984-11-02 US US06/758,225 patent/US4758948A/en not_active Expired - Lifetime
- 1984-11-02 JP JP59504042A patent/JP2664663B2/ja not_active Expired - Lifetime
- 1984-11-02 US US06/756,993 patent/US4794526A/en not_active Expired - Lifetime
- 1984-11-02 WO PCT/GB1984/000379 patent/WO1985002039A2/en unknown
- 1984-11-02 US US06/756,431 patent/US4783734A/en not_active Expired - Lifetime
- 1984-11-02 DE DE8484307587T patent/DE3481946D1/de not_active Expired - Fee Related
- 1984-11-02 JP JP59504133A patent/JP2664664B2/ja not_active Expired - Lifetime
- 1984-11-02 WO PCT/GB1984/000378 patent/WO1985002038A2/en unknown
- 1984-11-02 EP EP84307586A patent/EP0145244B1/en not_active Expired
- 1984-11-02 EP EP84307583A patent/EP0141660B1/en not_active Expired
Patent Citations (4)
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 |
JPS5798062A (en) * | 1980-12-12 | 1982-06-18 | Hitachi Ltd | Communication system between processors |
JPS59146346A (ja) * | 1983-02-10 | 1984-08-22 | Fujitsu Ltd | プロセス間通信方式 |
Also Published As
Publication number | Publication date |
---|---|
DE3483306D1 (de) | 1990-10-31 |
US4758948A (en) | 1988-07-19 |
EP0145244A2 (en) | 1985-06-19 |
WO1985002038A2 (en) | 1985-05-09 |
EP0145244A3 (en) | 1985-09-25 |
JP2664664B2 (ja) | 1997-10-15 |
WO1985002037A2 (en) | 1985-05-09 |
EP0149311B1 (en) | 1990-04-11 |
WO1985002037A3 (en) | 1985-07-18 |
EP0141660A3 (en) | 1985-10-02 |
US4794526A (en) | 1988-12-27 |
EP0141660B1 (en) | 1990-09-26 |
JP2664663B2 (ja) | 1997-10-15 |
JP2664662B2 (ja) | 1997-10-15 |
WO1985002039A3 (en) | 1985-07-18 |
GB8329509D0 (en) | 1983-12-07 |
EP0141660A2 (en) | 1985-05-15 |
EP0145244B1 (en) | 1990-02-21 |
DE3481946D1 (de) | 1990-05-17 |
WO1985002039A2 (en) | 1985-05-09 |
EP0149311A3 (en) | 1985-09-25 |
JPS61500387A (ja) | 1986-03-06 |
DE3481389D1 (de) | 1990-03-29 |
US4783734A (en) | 1988-11-08 |
JPS61500386A (ja) | 1986-03-06 |
EP0149311A2 (en) | 1985-07-24 |
WO1985002038A3 (en) | 1985-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS61500385A (ja) | マイクロコンピユ−タ | |
US4369494A (en) | Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system | |
US4395757A (en) | Process synchronization utilizing semaphores | |
US4374409A (en) | Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system | |
US4803622A (en) | Programmable I/O sequencer for use in an I/O processor | |
US4394725A (en) | Apparatus and method for transferring information units between processes in a multiprocessing system | |
US5701495A (en) | Scalable system interrupt structure for a multi-processing system | |
KR100422491B1 (ko) | 내장형 프로세서 복합체, 네트워크 프로세싱 시스템 및인스트럭션 실행 제어 방법 | |
EP0036185B1 (en) | Information processing system incorporating 1-chip arithmetic control unit of very large scale integrated semiconductor element | |
JPS646488B2 (ja) | ||
JPS589450B2 (ja) | 通信多重化装置 | |
JP2988971B2 (ja) | コンピュータデバイス、網及びコンピュータ間の通信を制御するための方法 | |
PL114858B1 (en) | Data processing system | |
JPH0332818B2 (ja) | ||
CA2465015C (en) | Context scheduling | |
GB1602422A (en) | Control of processors for data processing systems | |
JPS60241132A (ja) | マイクロプログラムシーケンスコントローラ | |
EP0376003A2 (en) | Multiprocessing system with interprocessor communications facility | |
JPH0425581B2 (ja) | ||
KR0170507B1 (ko) | 인터럽트 수신용 메시지 큐의 제어방법 | |
KR920005298B1 (ko) | 마이크로 컴퓨터 | |
KR920005330B1 (ko) | 마이크로컴퓨터 및 이와 상호 접속된 회로망 | |
KR860009342A (ko) | 마이크로 컴퓨터 및 데이타 전송방법 | |
JPH01250147A (ja) | マイクロプロセッサ | |
JPS58168172A (ja) | マルチプロセツサデバツグ装置 |