JPH0533409B2 - - Google Patents

Info

Publication number
JPH0533409B2
JPH0533409B2 JP59504407A JP50440784A JPH0533409B2 JP H0533409 B2 JPH0533409 B2 JP H0533409B2 JP 59504407 A JP59504407 A JP 59504407A JP 50440784 A JP50440784 A JP 50440784A JP H0533409 B2 JPH0533409 B2 JP H0533409B2
Authority
JP
Japan
Prior art keywords
timer
time
location
register
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP59504407A
Other languages
English (en)
Other versions
JPS62500821A (ja
Inventor
Maikuru Deiuitsudo Mei
Rojaa Maaku Shefuaado
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inmos Ltd
Original Assignee
Inmos Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inmos Ltd filed Critical Inmos Ltd
Publication of JPS62500821A publication Critical patent/JPS62500821A/ja
Publication of JPH0533409B2 publication Critical patent/JPH0533409B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day

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)

Description

請求の範囲 1 複数の同時プロセスうちのいくつかは時間に
依存し、各同時プロセスが複数の命令を有するプ
ログラムを実行するコンピユータシステムにおい
て、 前記プロセスを識別するために各プロセスに対
して第1のポインタを形成するステツプと、 前記プロセスに対するプログラム段階を指示す
るために各プロセスに対して第2のポインタを形
成するステツプと、プロセツサによる実行のため
に、このプロセツサによつて実行されている現在
のプロセスを指示する複数のプロセスをスケジユ
ーリングするステツプと、前記プロセツサによつ
て実行されるプロセスの時間に依存する収集を識
別するステツプと、を備え、 前記収集内のプロセスは次のプロセスによつて
指示される最も早いスケジユーリング時間を有
し、各スケジユーリング時間は前記収集内の各プ
ロセスに対して与えられ、 前記現在のプロセスの実行は、現在のプロセス
が実行を継続しない前にスケジユーリング時間を
示す、時間に関連する命令を含む命令と、 (a) 前記スケジユーリング時間が既に到来したか
どうかを決定すること、 (b) 前記スケジユーリング時間がまだ到来してい
ないとの決定に応答して (i) 前記プロセスに対する第2のポインタを記
憶し、 (ii) 前記現在のプロセスの実行を停止し、 (iii) 前記停止したプロセスを前記収集内に加え
てそのスケジユーリング時間が収集内で順序
づけられたシーケンスとなるようにし、 (iv) 更にスケジユールされるプロセスを指示す
るために現在のプロセスの指示を設定する ことによつて前記時間に関連する命令の実行に対
して応答する命令と、のシーケンスを実行するス
テツプと、 前記次のプロセスのスケジユーリング時間の後
の時刻で、前記次のプロセスを指示するために現
在のプロセスの指示を設定することによつて現在
のプロセスを停止する命令の実行に応答し、かつ
前記次のプロセスに対する第2ポインタによつて
指示されたプログラム段階で前記次のプロセスを
実行するステツプと、 を備えていることを特徴とする同時プロセスを作
動させる方法。 2 時間に関連する命令の実行時に、前記スケジ
ユーリング時間が既に到来したかどうかを決定す
るステツプが前記スケジユーリング時間が既に到
来していることを示している時には、前記現在の
プロセスは停止しないで実行を継続することを特
徴とする請求の範囲第1項記載の方法。 3 (a) 各々が複数のアドス可能なメモリ位置を
有する作業域を各プロセスに対してメモリ内に
設け各作業域の前記位置に対応するプロセスの
関連する変数を記憶するステツプと、 (b) リスト内の各プロセスの作業域内で、前記プ
ロセスに対するスケジユーリング時間の指示、
及び次のスケジユーリング時間を有するプロセ
スに対する前記第1のポインタの指示を与える
ことによつて時間に依存する収集を形成するス
テツプと、 を更に備えていることを特徴とする請求の範囲第
1項又は第2項記載の方法。 4 複数のプロセスのスケジユーリングが、スケ
ジユーリング時間を待たないで前記プロセツサに
よる実行を待機しているプロセスのスケジユール
された収集を識別するステツプを含み、前記次の
プロセスが前記スケジユールされた収集に加えら
れて、そのスケジユーリング時間後に時間に依存
する収集から取除かれることを特徴とする請求の
範囲第1項乃至第3項のいずれかに記載の方法。 5 前記スケジユールされた収集がリストとして
形成され、スケジユールされたリスト上の各プロ
セスがその作業域内で前記リスト内での次のプロ
セスに対する第1のポインタの指示を記憶したこ
とを特徴とする請求の範囲第3項及び第4項記載
の方法。 6 各プロセスに対する優先権を指示するステツ
プ、及びプロセスの第1と第2の時間に依存する
収集を設けるステツプを更に備え、前記第1の時
間に依存する収集は共通の第1優先権のプロセス
を備え、前記第2の時間に依存する収集は前記第
1優先権とは異なる共通の第2優先権のプロセス
を備えていることを特徴とする請求の範囲第1項
乃至第5項のいずれかに記載の方法。 7 プロセス間のデータ通信を可能にするために
複数のアドレス可能な通信チヤネルを介して同時
プロセス間のメツセージを伝送するステツプを更
に有し、2つのプロセスが対応するプログラム段
階にあるときに2つのプロセス間のメツセージ伝
送を完了するように、共通の命令を含んでいるプ
ログラム内の一連の命令を実行することを特徴と
する請求の範囲第1項乃至第5項いずれかに記載
の方法。 8 代替時間に関連する複数のコンポーネントを
有するプロセスを実行するステツプと、各コンポ
ーネントに関連する時間を指示するステツプと、
コンポーネントのいくつかに関連する時間が既に
生じたかどうかを決定するステツプとを更に備え
ていることを特徴とする請求の範囲第1項乃至第
7項のいずれかに記載の方法。 9 前記代替時間に関連するコンポーネトのいく
つかに関連づけられた最も早い時間がまだ生じて
いない場合に前記プロセスを非スケジユール化す
るステツプと、前記プロセスを時間に依存する収
集に加えるステツプとを更に備えていることを特
徴とする請求の範囲第8項記載の方法。 10 プロセスに関連するメモリ位置に、前記プ
ロセスの状態を指示するとともに前記プロセスが
代替コンポーネントを有するものであることを指
示する少なくとも1つの特別な値をロードするス
テツプを更に備えていることを特徴とする請求項
8又は9記載の方法。 11 代替コンポーネントの少なくとも1つが用
意されているとき前記プロセスが非スケジユール
化される必要がないことを示す第1の特別の値か
又は、代替コンポーネントの1つに関連する時間
の到来を待機中にプロセスが非スケジユール化さ
れることを示す他の特別の値を前記メモリ位置に
ロードするステツプを更に備えていることを特徴
とする請求の範囲第10項記載の方法。 12 前記代替コンポーネントのどれもがまだ選
択されていないことを示す更に他の特別の値を、
前記プロセスに関連するメモリ位置にロードする
ステツプと、前記更に他の特別の値に応対して、
プロセスがスケジユールされているときに前記代
替コンポーネントの1つを選択するステツプとを
更に備えていることを特徴とする請求の範囲第7
項乃至第11項のいずれかに記載の方法。 13 前記代替コンポーネントの少なくとも1つ
は1つの通信チヤネルを介して入力するステツプ
を備え、時間に関連するコンポーネントの最も早
い時間が既に生じたかどうかを決定するステツプ
と、通信チヤネルがメツセージ入力の待機中であ
るかどうかを決定するステツプとを更に備えてい
ることを特徴とする請求の範囲第7項乃至第12
項のいずれかに記載の方法。 14 メモリと、その内の少なくともいくつかは
時間に依存する複数の同時プロセスを実行するた
めのプロセツサと、このプロセツサによつて実行
されている現在のプロセスを指示するためのアド
レス可能な記憶素子を有しているスケジユーリン
グシステムと、各スケジユーリング時間の後で前
記プロセツサによる実行を待機中の収集を形成す
る1以上のプロセスを識別するためのタイマリス
トと、を備え、このタイマリストは、そのスケジ
ユーリング時間が生じた後前記プロセツサによる
実行に関する収集内の次のプロセスを指示するプ
ロセス指示手段を有しているマイクロコンピユー
タにおいて、 前記収集内のプロセスが実行待機になつた時に
各々スケジユーリング時間を指示するために記憶
場所69が前記タイマリストに関連づけられ、早
いスケジユーリング時間を有する前のプロセスと
遅いスケジユーリング時間を有する後のプロセス
との間の時間的に順序づけられた、前記収集内の
位置に、更に1つのプロセスを加えるための制御
システム13,14,15,32が設けられてい
ることを特徴とするマイクロコンピユータ。 15 前記メモリは各プロセスに対して、アドレ
ス可能な記憶場所を有する作業域60を有し、こ
の作業域の各々は前記時間的に順序づけられたリ
スト上のプロセスに対して、 (i) 対応するプロセスに関連した変数を記憶する
ための第1の記憶場所と、 (ii) 対応するプロセスに関するプログラム段階の
ための第2記憶場所65と、 (iii) 前記時間的に順序づけられたリスト上の次の
プロセスを指示するための第3の記憶場所68
と、 を備えていることを特徴とする請求の範囲第14
項記載のマイクロコンピユータ。 16 記憶手段52,56,66はプロセツサ1
2による実行を待機しているスケジユールされた
プロセスの収集を識別するために与えられ、その
スケジユーリング時間が到来した後の前記タイマ
リストから取除くと同時に1つのプロセスを前記
収集に加えることを特徴とする請求の範囲第14
項又は第15項記載のマイクロコンピユータ。 17 タイマリストとスケジユールされた収集の
各々がプロセス作業域60を介してリンクされた
リストを有するように、スケジユールされた収集
内の次のプロセスを指示するための付加的な記憶
場所66を各プロセスの作業域が有していること
を特徴とする請求の範囲第15項及び第16項記
載のマイクロコンピユータ。 18 アドレス可能な通信チヤネル70,25が
プロセス間の同期化されたメツセージ伝送を可能
にすることを特徴とする請求の範囲第14項乃至
は第17項のいずれかに記載のマイクロコンピユ
ータ。 明細書 本発明はマイクロコンピユータを含むコンピユ
ータに関するものであり、とくに時間に依存する
プロセスを実行できるマイクロコンピユータに関
するものである。 発明の背景 われわれのヨーロツパ特許明細書0110642には、
プロセツサがそれの処理時間を複数の同時プロセ
スの間で共用できるようにするスケジユーリング
手段を含むマイクロコンピユータが記述されてい
る。実行を待つているスケジユールされたプロセ
スのリンクされたリストを形成できる。現在実行
中のプロセスのスケジユールを解除でき、要求が
あつた時にあるスケジユールされたリストに加え
ることによりプロセスをスケジユールできる。こ
れは、たとえば、メツセージ伝送が行われる時に
2つのプロセスがプログラム・シーケンスの対応
する段階でいることを求められる場合に、それら
2つのプロセスの間でメツセージの伝送を行う際
に生ずることがある。しかし、その特許明細書に
は、あるプロセスのスケジユーリングをそのプロ
セスに対して指示された時間に従つて行うことが
できるような、時間に依存するプロセスの使用に
ついては記述していない。 発明の目的 本発明の目的は、時間に依存するプロセスの実
行に使用する改良したマイクロコンピユータを得
ることである。 本発明の別の目的は、プロセツサがそれの処理
時間を複数のプロセスの間で共用するように複数
の同時プロセスをスケジユーリングする手段と、
1つまたはそれ以上のプロセスのための時間依存
パラメータに応答する手段とを有する改良したマ
イクロコンピユータを得ることである。 マイクロコンピユータという用語は、集積回路
を全体として基にした小型コンピユータに関する
ものであるが、コンピユータがどれだけ小型であ
るということについての制約を課すものではな
い。 発明の概要 本発明は、メモリと、プログラムに従つて複数
の同時プロセスを実行するように構成されたプロ
セツサとを備え、そのプログラムはプロセツサに
より逐次実行するための複数の命令より成り、前
記プログラムは(1)複数のレジスタおよびそれらの
レジスタとの間でデータの転送を行うために用い
るデータ転送手段と、(2)各命令を受け、プロセツ
サレジスタの1つにその命令に関連する値をロー
ドする手段と、(3)前記データ転送手段と前記レジ
スタを受けた命令に応じて制御し、その命令に従
つてプロセツサを動作させる制御器とを備えるマ
イクロコンピユータにおいて、 (a) あるプロセスがプロセツサにより実行される
ようになつた時にそれを指示する手段を含み、
複数の同時プロセスの間のプロセツサの処理時
間を共用するスケジユーリング手段と、 (b)(1) 1つまたはそれ以上のプロセスを識別し
て、それらのプロセスがプロセツサにより実
行されるようになるまでに所定の時間待つプ
ロセスの少くとも1つのタイマ収集(timer
correction of process)を形成する手段と、 (2) 前記タイマ収集において各プロセスが実行
できるようになるスケジユーリング時刻を指
示する手段と、 (3) 前記タイマ収集に1つまたはそれ以上の別
のプロセスを加える手段と、 (4) 前記タイマ収集からプロセスを除去する手
段と、 を含むプロセス時間制御器と、 を含むマイクロコンピユータを提供するものであ
る。 前記タイマ収集中のプロセスまたは各プロセス
のスケジユーリング時間に依存して時間順序づけ
られたシーケンスを形成するために、前記タイマ
収集中のプロセスに指令するための手段をなるべ
く構成する。 収集中に最も早いスケジユーリング時間を有し
て、収集中に最初のプロセスを形成する前記タイ
マ収集中のプロセスを指示するために、アドレス
可能なメモリ場所を備えることができる手段をな
るべく設ける。 前記メモリは、プロセスに関連する変数を記録
するための場所を含む複数のアドレス可能な場所
を有する作業域をその各プロセスへなるべく与え
るようにし、前記プロセツサレジスタの1つは、
現在のプロセスの作業域のアドレスを識別する作
業域ポインタ値を保持するように構成される。 各プロセスの作業域は、タイマ収集中の以後の
プロセスのためのポインタ値を保持するリンク手
段をなるべく含むようにする。そのリンク手段
は、あるプロセスがタイマ収集中にある時に、そ
の収集中の次のプロセスを指示するために用いら
れ、それによりプロセスのリンクされたタイマリ
ストを指示する。 そのプロセスがそのタイマリスト上の最後のス
ケジユーリング時間を有するプロセスであること
を指示するために、特殊な値を保持するために各
プロセス作業域の前記リンク手段をなるべく構成
する。 各プロセスのスケジユーリング時間を指示する
ために、そのプロセスの作業域はアドレス可能な
場所をなるべく含むようにする。 ある好適な実施例においては、このマイクロコ
ンピユータは、複数の優先権のうちの1つを各プ
ロセスに割当てる手段を含み、前記時間制御器
は、前記タイマ収集を2つ以上形成する手段を含
み、各タイマ収集は、別のタイマ収集中のプロセ
スの共通の優先権とは異なる共通の優先権のプロ
セスを有する。 スケジユーリング手段は、 (1) プロセツサにより実行されている現在のプロ
セスを指示する手段と、 (2) プロセツサによる実行を待つているスケジユ
ールされた収集を形成する1つまたはそれ以上
のプロセスを識別する手段と、 (3) 前記スケジユールされた収集へ1つまたはそ
れ以上の別のプロセスを加える手段と、 (4) プロセツサにより実行すべき前記スケジユー
ルされた収集中の次のプロセスを指示する次の
プロセス指示手段と、 をなるべく含むようにし、プロセツサによる前記
現在のプロセスの実行を終らせるために、選択さ
れた命令と、そのプロセスを現在のプロセスにす
るために前記次のプロセツサ指示手段とに応答す
るようにプロセツサは構成され、それにより、そ
のプロセツサはそれの処理時間を複数の同時プロ
セスの間で共用させるために動作させられる。 スケジユールされる収集はなるべく、結合され
たリストであるようにもする。 2つ以上のスケジユールされた収集におけるプ
ロセスの優先権とは異なる共通優先権のプロセス
を有する。 本発明は、相互に接続された複数の前記マイク
ロコンピユータの回路網も含む。各マイクロコン
ピユータは通信チヤネルを有し、それらの通信チ
ヤネルには1つまたはそれ以上の通信リンクが設
けられる。それらの通信リンクは別の装置の類似
のリンクへ専用に接続され、それにより、種々の
マイクロコンピユータにおける同時プロセスの間
で同期してメツセージ伝送を行えるようにする。 複数の別の時間関連コンポーネントでプロセス
を実行するようにマイクロコンピユータをなるべ
く構成する。そのマイクロコンピユータには、各
コンポーネントに関連する時間を指示する手段
と、各コンポーネントに関連する時間をテストす
る手段と、あるコンポーネントに関連する最も早
い時刻がまだきていないかどうかを決定する手段
とが設けられる。 あるプロセスを実行する時間の長さを指定する
手段と、その時間長に応答して、その時間が経過
した後で現在のプロセスの実行を停止すること、
およびそれをあるスケジユールされた収集に加え
ることによりそのプロセスを再スケジユールする
ことをプロセツサに行わせる手段とをなるべく設
ける。
【図面の簡単な説明】
以下、図面を参照して本発明を実施例について
詳しく説明する。 第1図は本発明を具体化するマイクロコンピユ
ータの主な特徴を示すブロツク図、第2図はマイ
クロコンピユータの一部のブロツク図で、この図
は便宜上、第2A,2B図に示される2つの部分
に分けられ、この図は中央処理装置レジスタとデ
ータ経路および算術論理装置と、中央処理装置と
メモリおよび通信リンクとの間のインターフエイ
スをとくに示し、第3図は第2B図の部分を形成
するタイマ論理回路を示し、第4図は、マイクロ
コンピユータにより実行するための高優先権プロ
セスのスケジユールされたリストの加工物とプロ
セツサレジスタの間の関係を示し、第5図は第4
図に類似するが、高優先権プロセスが実行されて
いる間の低優先権プロセスのスケジユールされた
リストを示し、第6図は再スケジユールされる前
の所定の時刻を待つている高優先権プロセスのタ
イマリストを示し、第8図は本発明に従つて通信
するマイクロコンピユータの回路網を示し、この
回路網のマイクロコンピユータの語長は異なり、
第9A〜9D図は「タイマ入力」動作を実行する
プロセスのための一連のオペレーシヨンを示し、
第10A〜10E図はプロセスをタイマリストに
挿入するためのシーケンスを示し、第11A〜1
1C図は時間選択(Time Alternative)プロセ
スのための一連のオペレーシヨンを示し、とくに
そのプロセスが代りの時間のうちのはやい方をど
のようにして決定するかを示し、第12A〜12
C図はいくつかの代りの時間(そのうちの1つが
既に到達している)の1つの間を選択するプロセ
スによる一連のオペレーシヨンを示し、第14A
〜14D図はメツセージチヤネルの入力の代りの
もの、またはある特定の時間の発生の間で選択す
るプロセスのための一連のオペレーシヨンを示
し、そのメツセージチヤネルは、プロセスが選択
を開始した時に通信を行えるようになつており、
第15A〜15F図はメツセージチヤネルを通じ
て入力の代りのもの、または、チヤネルがメツセ
ージを入力するようになつておらず、かつプロセ
スが代りのものの1つを選択しようと試みている
時に発生される時間を有しないようなある指定さ
れた時間の発生を選択するプロセスのための一連
のオペレーシヨンを示す。 好適な実施例の説明 この例で説明するマイクロコンピユータは、プ
ロセツサと、RAMの態様のメモリと、外部通信
を行えるようにするリンクとを有し、1枚のシリ
コンチツプで構成された集積回路装置を含む。こ
のマイクロコンピユータの主な要素が第1図に、
p−井戸相補MOS技術を用いて1枚のシリコン
チツプ11上に示されている。プロセスの実行の
時間制御を行えるようにするために、中央処理装
置(CPU)12にタイマ9が設けられる。中央
処理装置はある読出し専用メモリ(ROM)13
も含む。この読出し専用メモリはメモリインター
フエイス14へ結合される。このメモリインター
フエイスはインターフエイス制御ロジツク15に
より制御される。CPU12は算術論理装置
(ALU)と、レジスタデータ経路とを含む。それ
らは第2図に一層詳しく示されている。CPU1
2とメモリインターフエイス14はバス16へ接
続される。このバスはチツプ11上の要素の相互
接続を行う。サービス装置17に複数の入力ピン
18が設けられる。このマイクロコンピユータに
はランダム・アクセス・メモリ(RAM)19と
ROM20が設けられる。外部メモリなしにプロ
セツサ12が動作できるように、チツプ上のメモ
リの容量は1Kバイト以下ではない。チツプ上の
メモリはなるべく少くとも4Kバイトにする。外
部メモリインターフエイス23が設けられる。そ
の外部メモリインターフエイスは、希望により設
けられる外部メモリへ接続するために、複数のピ
ン24へ接続される。ネツトワークを構成するた
めに、このマイクロコンピユータを他のコンピユ
ータへリンクさせることができるようにするため
に、入力ピン26と出力ピン27を有する複数の
直列リンク25が設けられる。第8図に示すよう
に、1つの直列リンクの入力ピンと出力ピンは、
それぞれ自身の単線非共用一方向接続により、別
のマイクロコンピユータの直列リンクに対応する
入力ピンと出力ピンへ接続できる。各直列リンク
は、プロセス・スケジユーリング・ロジツクを有
する同期論理装置10へ接続される。 この実施例は、われわれの未決のPCT特許出
願No.PCTGB84/00379およびヨーロツパ特許出
願No.84307586.2に記述されているマイクロコンピ
ユータを発展させたものである。説明の不必要な
反復を避けるために、そのマイクロコンピユータ
の構成と動作の十分に詳しいことは以下に述べな
いが、それらの特許出願における説明を参考のた
めにここに含ませる。 この実施例はTransputer(インモス・インター
ナシヨナル(INMOS International)plcの商
標)マイクロコンピユータを改良したものを提供
するものである。このマイクロコンピユータは、
実行を行えるまで指定された時間待つているプロ
セスをタイマ・データとタイマ・リストに依存し
てプロセスを実行できるように、タイマ制御を行
うものである。 このマイクロコンピユータの全体の構成は、前
記特許出願において記述されているマイクロコン
ピユータの全体の構成に全体として類似する。以
下の説明においては、前記特許出願における実施
例に対応する部分には類似の名称が与えられる。
メモリは、アドレス可能な場所を有する複数のプ
ロセス作業域を設ける。それらのアドレス可能な
場所はポインタにより指示できる。メツセージ通
信はチヤネルを介して行うことができる。それら
のチヤネルは、同じマイクロコンピユータにおけ
るプロセス間通信の場合には、アドレス可能なメ
モリ場所を含むことができる。異なるマイクロコ
ンピユータの間のプロセスア間通信を行うため
に、直列リンクに入力チヤネルと出力チヤネルが
設けられる。それらのチヤネルは、メモリに設け
られている場所をアドレスするのと類似のやり方
でアドレスすることもできる。 上記の改良を実現するために、マイクロコンピ
ユータの構造および動作を種々変更する必要があ
り、以下の説明は、それらの改良を行うために変
更が含まれているような面について向けられる。 前記特許出願の例におけるように、説明されて
いる例の特定の語長は16ビツトであるが、8、
16、24、32のような語長またはその他の語長を使
用できることがわかるであろう。更に、この場合
においては、異なる語長のマイクロコンピユータ
の独立している語長とは無関係にそれらのマイク
ロコンピユータが互いに通信できるように、第8
図に示すように異なる語長のマイクロコンピユー
タを同じネツトワーク中に接続できる。 各ポインタは単一の語で、2つの補数の符号付
き値として処理される。このことは、ポインタ中
の最上位のビツトが1であると、その最上位のビ
ツトは負として取扱われ、残りの全てのビツトが
正の数を表すことを意味する。最上位のビツトが
0であると、ポインタ中の全てのビツトは正の値
を表すものとしてとられる。これにより、標準比
較関数が数値に対して用いられると同様なやり方
で、標準比較関数をポインタ値に対して使用でき
るようにされる。 ある特殊な動作が求められていることを指示す
るためにある値が留保されるから、それらの値は
ポインタとして決して使用されない。 以下の説明においては、それらの値およびその
他の値を次のように表すために名前が使用され
る: MostNeg 最も負の値(MSBが1、他のすべ
てのビツトは0) MostPos 最も正の値(MSBが0、他のすべ
てのビツトは1) MachineTRUE 1 MachineFALSE 0 NotProcess.p MostNeg Enabling.p MostNeg+1 Waiting.p MostNeg+2 Ready.p MostNeg+3 TimeSet.p MostNeg+1 TimeNotSet.p MostNeg+2 値MostNeg+1とMostNeg+2の二重の使用
からあいまいさが起らないように、TimeSet.pと
TimeNotSet.pに対する特殊な値はEnabling.pま
たはWaiting.pと同じ場所には決して使用されな
い。 上記特許出願の例におけるように、ローカル変
数と、プロセスにより取扱われる一時的な値を保
持するために用いられるメモリ中の語はベクトル
より成る作業域を各プロセスを有する。プロセス
作業域のための設定された場所を示すため作業域
ポインタWPTRが用いられる。各プロセスは
「プロセス記述子」により識別できる。そのプロ
セス記述子の最下位ビツトはそのプロセスの優先
権を示し、上位15ビツトはプロセス作業域を識別
するメモリ中の語を示す。この例においては、マ
イクロコンピユータは2つの可能な優先権のうち
の1つを各プロセスに割当てる。高優先権のプロ
セスには名称Pri=0で与えられ、低優先権のプ
ロセスには名称Pri=1が与えられる。したがつ
て、各プロセス記述子は、作業域ポインタ
WPTRとプロセス優先権Priの「ビツトワイズ
(bitwise)OR」をとることにより形成される1
つの語を備えることがわかる。同時に、プロセス
記述子とNOT 1の「ビツトワイズAND」をと
ることにより、作業域ポインタWPTRをプロセ
ス記述子から得ることができる。プロセス記述子
と1の「ビツトワイズAND」をとることにより
プロセスの優先権を得ることができる。 CPUデータ経路およびレジスタ 中央処理装置12およびそれの動作は、第2図
を参照することにより一層良く理解されるであろ
う。便宜上、第2図を第2A図と第2B図に分け
たが、レジスタセツトとデータ経路を形成するた
めに、第2A図と第2B図の線図を一緒に結合で
きることを理解すべきである。 CPU12は算術論理装置(ALU)30と複数
のデータ・レジスタを含む。それらのレジスタX
バスと、Yバスと、Zバスおよび双方向データ・
バスへ接続される。それらのレジスタの動作と、
バスへの相互接続は、32に線図的に表されてい
る複数のスイツチにより制御される。それらのス
イツチ32は、ROM13に含まれているマイク
ロ命令プログラムからとり出される信号により制
御される。メモリインターフエイス14とデー
ダ・バス31へ向かう一方向アドレス経路33を
介してCPUとメモリの間の通信が行われる。 上記特許出願におけるように、各命令は8ビツ
トで構成される。そのうちの4ビツトは命令の求
められている関数を表し、4ビツトがデータのた
めに割当てられる。プロセスのためのプログラ
ム・シーケンスから得た各命令は命令バツフア3
4へ与えられ、その命令は復号器35により復号
される。この復号器の出力は条件マルチプレクサ
36を介してマイクロ命令レジスタ37へ与えら
れる。このマイクロ命令レジスタはマイクロ命令
ROM13をアドレツシングするために用いられ
る。命令バツフア34と、復号器35と、条件マ
ルチプレクサ36と、MIR37と、マイクロ命
令ROM13と、スイツチ32との動作は全体と
して上記特許出願およびヨーロツパ特許明細書
0110642に記述されているようなものである。 この実施例は2組のプロセス、すなわち、優先
権0を有するプロセスおよび優先権1を有するプ
ロセス、を処理するように構成されているから、
2つのレジスタ・バンクが設けられる。レジス
タ・バンク38が優先権1プロセスのために設け
られ、類似のレジスタ・バンク39が高優先権0
プロセスのために設けられる。両方のレジスタ・
バンクは類似のレジスタセツトを有し、それらの
レジスタセツトはX、Y、Zバスおよびデータ・
バスへ同様に接続される。簡単にするために、レ
ジスタおよびそれらのレジスタの接続はレジス
タ・バンク38について詳しく示しているだけで
ある。特定の優先権を割当てられている2つのレ
ジスタ・バンクに加えて、CPUは定数ボツクス
40と、レジスタ・バンク選択器41と、第2
A,2B図に示されているいくつかの他のレジス
タを含む。それらの他のレジスタは優先権0プロ
セスおよび優先権1プロセスの両方に共通であ
る。それらのレジスタは次の通りである:
【表】
【表】 ル準備完了する時間を保持する
レジスタ85。
優先権0プロセスのためのレジスタのバンク3
9は、優先権1プロセスのために既に述べたもの
と同じである。以下の説明においては、接尾数
[1]は優先権1バンクに関連するレジスタを示
し、接尾数[0]はレジスタが優先権0バンクに
関連するものであることを示す。優先権が知られ
ていない場合には、プロセスに対して適切な優先
権のレジスタが使用されることを接尾辞[Pri]
が示す。 それらのレジスタは、1ビツト・フラツグ4
7,48,58,59,82,83,84は別と
して、この場合には語長が全体として16ビツトの
レジスタである。命令バツフアは、1度にただ1
つの命令を保持するように構成されているものと
すると、8ビツト長とすることができる。A、
B、Cレジスタ・スタツク54,55,56は、
ほとんどの算術動作および論理動作のためのソー
スおよび宛先である。それらはスタツクとして組
織される。 レジスタおよびフラツグに加えて、各バンク3
8,39は妥当時間フラツグ84と、次の時間レ
ジスタ85と、クロツク・レジスタ81とからの
入力を受けるために構成される。タイマ・ロジツ
ク86については第3図を参照して後で一層詳し
く説明する。クロツク・レジスタ81はプロセ
ス・クロツク87から入力を受ける。各レジス
タ・バンクのためのタイマ・ロジツク86は第1
図のタイマ9を構成する。両方の優先権のプロセ
スに対して、命令のうちOREGレジスタへ与えら
れる部分が復号器に達して、適切なマイクロ命令
を発生するのに使用するように、両方のレジス
タ・バンク38,39のOREG57は復号器35
に接続される。任意の時刻にプロセツサが行うべ
き次の動作を決定する際に、いずれかの優先権プ
ロセスのためのそれらのフラツグおよび論理出力
の設定を考慮に入れることができるように、両方
の優先権バンクのSNPフラツグ58と、複写フ
ラツグ59と、挿入フラツグ82と、削除フラツ
グ83と、タイマ・ロジツク86とは条件マルチ
プレクサへも接続される。 あるプロセスの作業域ポインタ(WPTR)が、
それからプロセスのローカル変数をアドレスでき
るためのベースとして用いられるから、その作業
域ポインタにより示されている場所からのオフセ
ツト値を計算することが時に必要である。定数ボ
ツクス40はYバスに接続され、一定の値をマイ
クロ命令ROM13の制御の下にそのバスに置く
ことを可能にする。それらは、プロセス作業域内
のオフセツト場所を示し、時間スライス期間を与
えるのに使用できる。レジスタ・バンク38また
は39の一方または他方の選択を行うために、レ
ジスタ・バンク選択器41はRPIフラツグ47
と、PROCPRIフラツグ48と、マイクロ命令
ROM13とから入力を受ける。そのレジスタ・
バンク選択器からの出力端子は条件マルチプレク
サ36と、復号器35と、スイツチ32とに接続
される。マイクロ命令ROM13の出力に応じ
て、選択器はPRIフラツグ47またはPROCPRI
フラツグ48により指示されたレジスタ・バンク
を選択する。 タイマ・ロジツク86は各レジスタ・バンクに
類似する。そのうちの1つが第3図に一層詳しく
示されている。論理装置86は引算器88を有す
る。この引算器は次の時間レジスタから線89を
介して入力を受ける。この時間値は引算器88に
おいて、クロツク・レジスタ81から線90を介
して供給された時間値から引算される。その差の
最上位ビツトが出力線91を介してインバータ9
2へ与えられる。このインバータは信号を線93
を介して論理アンドゲート94を与える。そのゲ
ートは妥当時間フラツグ84から線95を介して
入力も受ける。アンドゲート94は出力を線96
を介して条件マルチプレクサへ与える。線96に
おける信号は「タイマ要求」信号と呼ばれ、タイ
マリストの1番上からのプロセスが実行できるば
かりとなるように、そのプロセスをタイマリスト
の1番上からプロセツサにとらせるように構成さ
れる。これについては後で詳しく説明する。第3
図に示されている論理図は、2つの条件が同時に
整つた時のみ「タイマ要求」信号が線96へ出力
されるように構成されることがわかるであろう。
最初に妥当時間フラツグ81は値1にセツトせね
ばならず、クロツク・レジスタ81により示され
た時刻は、次の時間レジスタ85により示された
時刻の後またはその時刻に等しくなければならな
い。引算器88は、次の時間レジスタ85に含ま
れている値をクロツク・レジスタ81に保持され
ている値から引算するために用いられ、その引算
の結果が負の数であれば、前記のように2の補数
符号付値を使用しているために、最下位ビツトは
1である。この理由から、線90は引算により得
た最下位ビツトを出力するように構成され、引算
の結果が正であつて、線91へ0ビツトを与える
時に、アンドゲート94が「タイマ要求」信号を
与えるだけであるように、インバータ92が要求
される。 プロセス作業域に対するメモリ割当て 前記特許出願に記述されている例におけるよう
に、マイクロコンピユータはそれの時間をいくつ
かのプロセスの間で分割してそれらのプロセスを
一緒に実行する。一緒に実行されるプロセスは同
時プロセスと呼ばれ、任意のある時間に実行され
ているプロセスは現在のプロセスと呼ばれる。各
同時プロセスは、プロセスにより取扱われるロー
カル変数と一時的な値を保持するための、作業域
と呼ばれるメモリの領域を有する。作業域の第1
のローカル変数のアドレスは作業域ポインタ
(WPTR)により示される。これは第4図に示さ
れている。第4図においては、4個の同時プロセ
ス、プロセスL,M,N,Oが作業域60,6
1,62,63を有する。第4図には作業域60
が詳しく示されており、WPTRレジスタ51に
保持されている作業域ポインタ、この例では
10000として示されているアドレスを有する単一
語場所である0場所を示す。このプロセスのため
の他のローカル変数は、作業域ポインタにより示
されている語から正のオフセツト・アドレスとし
てアドレスされる。0場所からの小さな負のオフ
セツトを有する作業域場所のいずれが、タイミン
グおよび通信をスケジユーリングする目的のため
に用いられる。この例いおいては、WPTRによ
り示されている0場所の下側に、5個所の付加語
場所65,66,67,68,69が負のオフセ
ツト1,2,3,4,5をそれぞれ有して示され
ている。それらの場所は次の通りである。オフセツト オフセツト名 場所名 −1 Iptr.s Iptr location −2 Link.s Link location −3 State.s State locaiton −4 TLink.s TLink location −5 Time.s Time location あるプロセスが現在のプロセスでない時に、そ
のプロセスが現在のプロセスになつた時に、その
プロセスにより次に実行すべき命令に対するポイ
ンタ(IPTR)を保持するために場所65が用い
られる。実行を待つているスケジユールされたプ
ロセスのリンクされたリストすなわち行列上の次
のプロセスの作業域ポインタを格納するために場
所66が用いられる。場67は、代りに入力動作
を実行するプロセスの状態の指示を含むため、ま
たはデータのブロツクを複写するためのポインタ
として用いられる。場所68は、実行のためにス
ケジユールされる前の所定の時間待つているプロ
セスのリンクされたタイマ・リスト上の次のプロ
セスの作業域ポインタを格納するために用いら
れ、および代りのタイマ入力動作を実行するプロ
セスの状態を指示するためにも用いられる。場所
69は、それの経過後にプロセスを実行できるよ
うな時間を指示するために用いられる。 このメモリはプロセス間通信のための語場所も
与え、第3図はそのようなチヤネルを示す。 表記法 マイクロコンピユータが動作する方法、とくに
それの機能、オペレーシヨンおよび手続き、につ
いての以下の説明においては、OCCAM(インモ
ス・インターナシヨナル(INMOS
International)plcの商標)言語に従つて表記法
が用いられる。この言葉は、英国において1983年
にインモス・リミテツド(INMOS Limited)に
より出版および配布された「プログラミング・マ
ニユアル(Programming Manual)−OCCAM)」
と題する小冊子に記述されている。更に、この表
記法はヨーロツパ特許出願0110642に詳しく記述
されているが、簡単にするためにこの明細書にお
いては繰返えさない。しかし、OCCAMの説明
と、ヨーロツパ特許出願0116042に記述されてい
る表記法の説明は参考のためにここに含ませる。 上記の表記法に加えて、以下の記述は下記のよ
うにして定義されるあるメモリ・アクセス手続き
を示すものである。
【表】 マイクロコンピユータにより使用される手続き 以下に種々の手続き(PROC)を示す。下記の
9つの手続きはプロセツサの動作の説明において
使用される。 Dequeue Run StratNextProcess HandleRunRequest HandleReadyRequest HandleTimerRequest BlockCopyStep Instert Step Delete Step 手続き「HandleRunRequest」と
「HandleReadyRequest」および
「BlockCopyStep」はわれわれの未決のPCT特許
出願No.PCTG84/00379およびヨーロツパ特許出
願に詳しく記述されている。それらの手続きの定
義は本発明に対して変更されないから、この特許
出願においては繰返えさない。 手続き「Dequeue」は優先権「Pri」スケジユ
ールされたプロセス行列の最前部のプロセスを現
在のプロセスにする。Pri=1であると、他のプ
ロセスを実行させるようにするために、それは、
そのプロセスを一時的に停止させねばならない時
刻に時間スライス・レジスタ80をセツトする。
その時間スライスの長さは、定数の1つとして定
義ボツクス40に格納されている一定の時間長に
より決定される。
【表】 手続き「Run」は、それの記述子がProcDesc
レジスタに含まれているようなプロセスをスケジ
ユールする。これにより優先権0プロセスが、既
に実行している優先権1のどのプロセスにも優先
して実行を直ちに開始する。以下の記述におい
て、…で始まる全ての行は単に説明としてのもの
であつて、定義の構成部分ではない。
【表】
【表】 手続き「StratNextProcess」は現在のプロセ
スをデスケジユールし、実行可能な別のプロセス
があれば、次の実行可能なプロセスを選択する。
こうすることにより、実行すべき優先権0プロセ
スがもうなければ、割込まれた優先権1プロセス
を再開させることができる。 手続き「StratNextProcess」 SNPFlagがセツトされる結果として常に実行
される。したがつて、このプロセスの最初の行動
はそのフラツグをクリヤすることである。
【表】 手続き「HandleTimeRequest」は、タイマ論
理装置86の1つから線96におけるタイマ要求
の結果として実行される。その要求が優先権0プ
ロセスに対するものであるとすると、
TimerRequest0信号が生じたであろうし、プロ
セツサはProcPriレジスタを0にセツトしたであ
ろう。要求が優先権1プロセスに対するものであ
るとすると、TimerRequest1信号が生じたであ
ろうし、プロセツサはProcPriレジスタを0にセ
ツトしたであろう。この手続きは、適切な
TPTR語の内容からレデイとなつたプロセスを
識別する。その手続きは、適切であればそのプロ
セスをスケジユールし、関連する優先権レベルに
対してTPTR語、NextTimeRegおよび
ValidTimeFlagを更新する。
【表】
【表】 上記の定義においてはTptrLoc0を参考にした。
優先権1のための1つと優先権0のめに1つの、
2つのTptr場所があることがわかるであろう。
それらは隣接するメモリ場所を占め、優先権0に
対してはアドレスTptrLoc0を有する。このよう
にして、関連する優先権に応じて、いずれかの場
所をTptrLoc0からの0または1のオフセツトに
よりアドレスできる。 手続き「InsertStep」はInsertFlag「Prif」がセ
ツトされる結果として実行される。この手続きの
反応性能により、現在の優先権レベルに対するタ
イマリストの正しい位置に現在のプロセスが挿入
される。Breg[Pri]レジスタとCreg[Pri]レジ
スタが、正しい場所の探索がその時までに達した
点を識別する。 挿入が行われると、手続きはInsertFlag[Pri]
をクリヤし、タイマレジスタを適切にリセツト
し、次のプロセスを実行させる。
【表】
【表】 手続き「DeleteStep」はDeleteFlag[Pri]が
セツトされる結果として実行される。この手続き
の反復性能により、現在の優先権レベルに対する
タイマから現在のプロセスが削除される。Breg
[Pri]レジスタとCreg[Pri]レジスタが、正し
い場所の探索がその時までに達した点を識別す
る。 挿入が行われると、手続きはDeleteFlag[Pri]
をクリヤし、タイマレジスタを適切にリセツトす
る。
【表】
【表】 プロセツサは一連の動作を行う。それらの動作
は現在のプロセスのため、または直列リンク25
あるいはタイマ9により行われた要求のために行
われる。優先権0プロセス優先権0タイマまたは
優先権0プロセスを取扱う通信チヤネルのために
行われる動作は「優先権0動作」と呼ばれる。
「優先権1動作」はそれに対応して定義される。 現在のプロセスのために実行できる動作は手続
き「StartNextProcess」、「InsertStep」、
「DeleteStep」、「BlockCopyStep」または命令を
フエツチし、復号し、実行することである。 直列リンクのためにプロセツサにより行うこと
ができる動作は手続き「HandleRunRequest」お
よび「HandleReadyRequest」である。それら
わわれわれの前記未決の特許出願に詳しく記述さ
れている。タイマ9のためにプロセツサにより実
行できる動作は、先に定義した手続き
「HandleTimeRequest」に記述されている。 それらの各動作は一連のマイクロ命令に対応す
る。それらの動作を構成する任意のシーケンスに
おける最後のマイクロ命令は「NextAction」で
ある。これによりプロセツサは次に実行すべき動
作を選択させられる。 「NextAction」マイクロ命令が実行される時
にどの動作を次に実行すべきかをプロセツサが判
定する方法は次の通りである。同期制御ロジツク
10は、任意の時刻にたかだか1つの
「RunReqest」または「ReadyRequest」をプロ
セツサへ送る。未済の優先権0要求があるなら
ば、同期制御ロジツクは優先権1要求を送らな
い。その結果として2つの信号が条件マルチプレ
クサへ入力される。それらの信号の一方は要求の
存在を示し、他方はその要求の優先権を示す。 2つの信号「TimerRequest0」と
「TimerRequest1」が条件マルチプレクサへ接続
される。その条件マルチプレクサは、現在選択さ
れているSNPFlag58と、DeleteFlag83と、
InsertFlag82と、CopyFlag59とからの信号
へ接続される。したがつて、下記のようにして選
択を行うことができる。SnpFlag[Pri]がセツト
されるとすると、プロセツサは手続き
「StartNextProcess」を実行する。さもないと、
実行できる動作があるものとすると、プロセツサ
は優先権0動作を選択する。さもないと、実行で
きる動作があるものとすると、プロセツサは優先
権1動作を選択する。さもないと、タイマまたは
通信チヤネルから要求があるまでプロセツサを待
つ。 プロセツサは、下記の規則に従つて、ある特定
の優先権レベルPriの動作を選択する。
DeleteFlag[Pri]がセツトされるならば、プロ
セツサは「DeleteStep」を実行する。さもない
と、InsertFlag[Pri]がセツトされるならば、プ
ロセツサは「InsertStep」を実行する。さもない
と、プロセツサは任意の優先権Priチヤネル要求
を取扱う。さもないと、プロセツサは任意の優先
権Priタイマ要求を取扱う。さもないと、
CopyFlag[Pri]がセツトされるとすると、プロ
セツサは手続き「BlockCopyStep」を実行する。
さもないと、優先権Priの現在のプロセスがある
ものとすると、プロセツタは命令のフエツチ、復
号および実行を行う。 われわれのヨーロツパ特許明細書0110642に記
述されているように、命令はフエツチされ、復号
され、実行される。 以後の機能セツトについての記述は4つの付加
手続きについてのものである:− TimeSlice InsertInTimerList DeleteFromTimerList IsThisSelectedProcess それらの手続きの以下の定義において相対的な
時間を参照する。クロツク・レジスタ81は定期
的に1だけ増加させられ、連続サイクルを通じ
て、最も負の値から最も正の値まで増加する。最
も正の値の次の増加で、そのレジスタは最も負の
値へ戻る。以下の説明においては、(Yの後のX)
という表現は、Xが時刻Yより遅れていることを
意味する。(X+1)と(X+MostPos)の全て
の時間はXの後であると定義される。(Clock
Reg+1)と(Clock Reg+MostPros)の間の
全ての時間は未来にあると考えられ、(Clock
Reg and(−1))と(Clock Reg+MostNeg)
の間の全ての時間は過去にあると考えられる。 付加手続き定義は次の通りである:
【表】 てなされる。

【表】 機能セツト ヨーロツパ特許明細書0110642におけるように、
マイクロコンピユータのための各命令は、機能セ
ツトから選択された機能要素を含む。マイクロコ
ンピユータにより実行される機能には直接機能
と、プリフイクシング機能pfixおよびnfixと、1
組のオペレーシヨンのうちの1つを選択するため
にオペランド・レジスタを使用する間接機能opr
とが含まれる。上記特許出願におけるように、
pfixとnfixを除く全ての命令の実行後にOreg
[Pri]がクリヤされる。 この出願の改良された直接機能セツトおよびオ
ペレーシヨン・セツトは次の通りである:
【表】
【表】
【表】
【表】
【表】 コード番号31〜36を有するオペレーシヨンを除
き、上に掲げた全ての機能およびオペレーシヨン
は前記未決の特許出願においてすでに定義されて
いるから、この明細書においては再び定義はしな
い。しかし、機能「jump」とオペレーシヨン
「loop end」終りは、タイマ9の使用を行えるよ
うに再び定義されており、それはいま次のように
定義される。
【表】 た時間が経過したら
プロセスを再スケジユ
ールさせること。
【表】 と。
付加機能および“altend”は次のとおりであ
る。
【表】 こと。
【表】
【表】
【表】
【表】 目的:選択的プロセスの選択されたコンポーネン
トの実行を開始すること。 マイクロ命令ROM13は、そのROM13か
らとりだしたマイクロ命令の結果として上記動作
のいずれかをプロセツサを実行させられるよう
な、上記の機能およびオペレーシヨンの全てに対
応するマイクロ命令を含むことがわかるであろ
う。 スケジユール プロセツサはそれの時間を、2種類の優先権レ
ベル0と1で実行しているいくつかの同時プロセ
スの間で供用する。優先権0プロセスと優先権1
プロセスが共に実行できるものとすると、優先権
0プロセスが優先権1プロセスより優先して常に
実行する。任意の時刻にただ1つのプロセスが実
際に実行され、現在のプロセスであるこのプロセ
スはWPTRレジスタ51に作業域ポインタ
(WPTR)を有し、IPTRレジスタ50内の命令
ポインタ(IPTR)が、その特定のプロセスに関
連するフランジ中の命令シーケンスから次に実行
すべき命令を示す。現在のプロセスではなく、か
つ実行を待つていないプロセスはどんなプロセス
でもデスケジユールされる。あるプロセスがスケ
ジユールされると、それは現在のプロセスになる
か、実行を待つているプロセスのリストすなわち
行列に加えられているかのいずれかである。その
ようなスケジユールされたリストはリンクされた
リストとして形成され、そのプロセスの作業域に
対するポインタを有する。そのリスト上の任意の
プロセスの命令ポインタ(IPTR)は、第4図に
示すように、それの作業域のIPTR場所65に格
納される。 この場合では、実行されるのを待つているスケ
ジユールされたプロセスの2つのリストをプロセ
ツサは含むことができる。それらのプロセスはそ
れぞれ各優先権レベルに対するものである。それ
に加えて、スケジユールされるまで指定された時
間を待つデスケジユールされたプロセスの2つの
タイマリストを含むことができる。各優先権に対
して1つのタイマリストが設けられる。第4図は
高優先権0のスケジユールされたリストを示し、
第5図は、第4図に示すようにある優先権0のプ
ロセスが現在のプロセスである時の、低優先権1
のスケジユールされたリストを示す。この場合に
は現在のプロセスが高優先権0のプロセスである
から、レジスタ・バンク選択器41はプロセツサ
が使用するレジスタをバンク39内で選択してい
る。したがつて、WPTRレジスタ[0]は、第
4図に示すように、現在のプロセスLの作業域6
0の0場所に対するポインタを保持する。IPTR
レジスタ[0]は、メモリに格納されているプロ
グラム・シーケンス181内の次の命令に対する
ポインタを含む。第4図に示されているレジスタ
54,55,56,57は次のプロセスLの実行
中に使用すべき別の値を含む。実行を待つている
優先権0のプロセスのスケジユールされたリスト
が、第4図に3つのプロセスM、N、Oにより示
されている。それらのプロセスの作業域が61,
62,63,に線図的に示されている。それらの
各作業域はプロセスLに対して示されている作業
域に全体として類似する。53で示されている
FRTRレジスタ[0]は、このリストの先頭の
プロセスであるプロセスMの作業域に対するポイ
ンタを含む。プロセスMの作業域はそれのIPTR
場所65に、プロセスMが現在のプロセスになつ
た時に実行すべきプログラム・シーケンス中の次
の命令に対するポインタを含む。プロセスMのリ
ンク場所66は、そのリスト上の次のプロセスで
あるプロセスNの作業域に対するポインタを含
む。示されているリスト上の最後のプロセスはプ
ロセスOである。そのプロセスOは63で示され
ている作業域を有する。52で示されている
BPTRレジスタ52は、この最後のプロセスO
の作業域に対するポインタを含む。このプロセス
Oの作業域63は前のプロセスNのリング場所6
6の内容により向けられるが、この場合にはプロ
セスOはリスト上の最後のプロセスであるから、
プロセスOのリンク場所66はポインタを含まな
い。 別のプロセスがこのリストに加えられると、そ
の別のプロセスの作業域に対するポインタが
BPTRレジスタ内に置かれるから、プロセスO
のリンク場所66は、そのリストに加えられたそ
の別のプロセスの作業域に対するポインタを含
む。 優先権1のスケジユールされたリストは全体と
して類似し、これは第5図に示されている。この
場合には、スケジユールされていて、実行を待つ
ている優先権1のプロセスのリストはプロセス
P、Q、Rより成る。Sという記号で示されてい
る別の優先権1のプロセスが示されているが、こ
れは現在はデスケジユールされて、リンクされた
リストの部分は形成しない。FPTRレジスタ
[1]は、実行を待つているリスト上の最初のプ
ロセスを形成するプロセスRの作業域に対するポ
インタを含む。BPTRレジスタ[1]は、スケ
ジユールされたリスト上の最後のプロセスを形成
するプロセスRの作業域に対するポインタを含
む。各プロセスP、Q、RはそれのIPTR場所に
あるプログラム段階を指すIPTRを有する。その
プログラムが現在のプロセスになつた時に、その
段階から次の命令がとり出される。スケジユール
されたリスト上の最後のプロセスを除く各プロセ
スのリンク場所は、そのリスト上の次のプロセス
の作業域に対するポインタを含む。 先に定義した手続き「deque」を用いることに
より実行するために、あるプロセスをリストのト
ツプからとり出すことができる。 先に定義した手続き「start next process」に
よりある現在のプロセスをデスケジユールでき
る。 第4,5図に示されている2つのスケジユール
されたプロセス・リストを動作させるやり方は、
前記特許出願において既に記述されているから繰
返えさない。 しかし、この実施例は、現在のプロセスが低優
先権プロセスであるとすると、「時間スライス」
と呼ばれるある期間の時間の後でそのプロセスを
停止させ、スケジユールされているリスト上の他
のプロセスに実行すべき機会を与えるように、第
5図に示されている行列の終りに再スケジユール
できるように、時間を輪切りする性能を与える。
第5図に示されているような種類のスケジユール
されたリストのトツプから低優先権のプロセスが
とり出されると、プロセツサは手続き「duque」
を実行し、手続きの定義の11行と12行からわかる
ように、そのプロセスが優先権1のプロセスであ
る(これは低優先権のプロセスに対する場合であ
る)とすると、12行に従つて、時間スライスレジ
スタ80に、クロツク・レジスタ81により示さ
れている現在の時間と、求められた「時間スライ
スの長さ」時間との和である値がロードされる。
時間スライスの長さは任意の時間間隔に適するよ
うに選択でき、この場合には1000個の命令を実行
するために必要な時間であるようにとられる。こ
れはもちろん必要に応じて変えることができる。
この時間スライスは定数ボツクス40に格納され
る。低優先権のプロセスが「飛越し(jump)」機
能または「ループ・エンド(loop end)」オペレ
ーシヨンを実行すると、飛越し機能およびルー
プ・エンド・オペレーシヨンの定義の終りからわ
かるように、プロセツサは手続き「時間スライ
ス」を実行する。手続き「時間スライス」の上記
定義に従つて、現在のプロセスの優先権が1で、
クロツク・レジスタにより示される時間が時間ス
ライス・レジスタ80により示される時間に等し
いか、それより遅れているとすると、作業域ポイ
ンタと現在のプロセスの優先権が手続き記述レジ
スタ46にロードされ、優先権1のスケジユール
されたリストの終りにプロセスを加えることによ
りそのプロセスが再スケジユールされるように、
手続き「run」が実行されるかをプロセツサが調
べる。プロセスが現在のプロセスの実行を止め、
プロセツサによる動作を求めるより高い優先権の
プロセスまたは要求が無ければ、優先権1のスケ
ジユールされたリストのトツプから別のプロセス
の実行を開始するように、その手続きは
SNPFlag58を値1にセツトする。 この実施例は、第6,7図に示されている種類
のタイマ・リストのための用意も行う。第6図は
低優先権1のプロセスのリンクされたタイマ・リ
ストを示し、第7図を高優先権0のプロセスの類
似のリンクされたリストを示す。低優先権のプロ
セスは第6図に文字T,U,Vで示されており、
第7図の高優先権プロセスには文字W,X,Vが
与えられている。それら2つのリストは全体とし
て類似しているから、第6図のリストだけ詳しく
説明する。リスト中の各プロセスのための作業域
60が第6図に示されている。タイマ・リセツト
の前方は、TPTRと呼ばれるポインタ値を保持
する単一語メモリ場所90により維持される。特
定の優先権のタイマ・リスト上にプロセスがない
時は、その優先権に対するTPTRは特殊な値
「NotProcess.p」にセツトされる。さもないと、
メモリ場所90に保持されているTRTRは、そ
のタイマ・リスト中の全てのプロセスは時間的な
順序でリンクされる。各プロセス作業域は、プロ
セスをスケジユールできる時刻を示す時間場所6
9内の値を示す。各プロセス作業域のTLink場所
68は、タイマリスト上の次のプロセスの作業域
の0場所に対するポインタを含む。リスト上の各
プロセス作業域の場所65は、プロセスがスケジ
ユールされて現在のプロセスとなつた時に使用す
るために、プログラム・シーケンス181内の次
の命令に対するポインタを格納する。タイマ・リ
スト上にプロセスがある時に妥当時間フラツグ8
4に値1にセツトされ、そのタイマ・リスト上に
プロセスがないと値0を有する。次の時間レジス
タ85は、タイマ・リストの前方におけるプロセ
スの場所69からとられる時間を含む。このよう
にして、関連するタイマ・リスト上のいずれかの
プロセスをスケジユールすべき最も早い時刻を示
すものをレジスタ85を含む。リストの後部を示
すために、タイマ・リストのために設けられるレ
ジスタはない。タイマ・リスト上の最後のプロセ
スの作業域は、それの作業域のILINK場所68
内に特殊な値「NotProcessp」を有する。レジス
タではなくてメモリ場所90を用いることにより
リストの前方が示される。このようにして、同じ
やり方でメモリ場所を使用することによりリスト
の前方が識別される。というのは、リストへの全
ての中間的なエントリイが識別され、そうするこ
とにより、別のプロセスを時間的な順序でタイ
マ・リストへ挿入したり、タイマ・リスト上の別
のプロセスを解除するために必要な動作を簡単に
するからである。タイマ・リスト上の既存の最初
のプロセスの前にプロセスが挿入することが必要
になることがあること、または、挿入すべきプロ
セスをスケジユールすべき時刻に応じてリストを
半ば通じてプロセスを挿入することが必要になる
ことがあることがわかるであろう。 第3図に示されているタイマ・ロジツクについ
ての以前の説明からわかるように、妥当時間フラ
ツグ84のいずれかが、適切な優先権タイマ・リ
スト上にプログラムが存在することを示す値にセ
ツトされたとすると、第3図に示されているタイ
マ・ロジツクは次の時間レジスタ85に示されて
いる時間(リスト上のいずれかのプロセスをスケ
ジユーリングするための最初の時間を示す)をク
ロツク・レジスタにより示される時間と比較し、
かつ、その最初のプロセスをスケジユーリングす
るための時間に達したとすると、タイマ・ロジツ
クが適切な要求信号が条件マルチプレクサへ与え
る。そうするとプロセツサはそれらの要求信号に
応答して、適切なタイマ・リストから最初のプロ
セスを除去し、適切な妥当時間フラツグと、次の
時間フラツグと、TPTR場所90を更新する。
そうするとこれはタイマ・リストの新しい状態を
反映する。そのプロセスがタイマ・リストにもは
やないことを示すために、プロセス作業域のため
にのTLINK場所68に値「TimeSet.p」が書込
まれる。そのプロセスが既に現在のプロセスでは
なくなつているか、またはスケジユールされてい
るリスト上に既にあるものと仮定すると、それは
第4図または第5図に示されているような種類の
スケジユールされたリストに加えられるようにな
り、またはスケジユールされたリストがなければ
現在のプロセスになる。タイマ・リストのトツプ
からあるプロセスを除去するプロセツサの動作は
前記定義「HandleTimerRequest」に述べられ
ている。 タイマ入力命令 プロセスは、その時間の経過後はそのプロセス
をAレジスタ54に再スケジユールせねばならな
いような時間をローデイングすることにより、
「TimerInput」を含む命令を実行でき、それから
オペレーシヨン「TimerInput」を実行する。最
初に、クロツク・レジスタにより示されている現
在の時間がAレジスタにより示されている時間の
後かどうかを調べ、もしそうならば、プロセスが
スケジユールされたままであるように何の動作も
行われない。しかし、この条件が満たされないと
すると、「TimerInput」の定義に述べられている
シーケンスが起き、特殊な値「Waiting.p」がプ
ロセス作業域の状態場所67に書込まれる。プロ
セスを再スケジユールすべき時刻はAレジスタに
示されている時刻の後にすべきであるから、Aレ
ジスタに示されている時刻は1だけ進まされて、
プロセスを再スケジユールすべき時刻を示す。プ
ロセツサは手続き「InsertInTimerList」を実行
する。この手続きにおいては、プロセス作業域の
時間場所69に、プロセスを再スケジユールすべ
き時刻を書込み、プロセスが時間的な順序に従う
ようにプロセスを適切なタイマ・リストの位置に
入れさせる。プロセツサが別のプロセスの実行を
開始するように、それはSNPFlagを値1にセツ
トすることもする。「TimerInput」命令を実行し
た命令は、適切な長さの時間が経過した時に再ス
ケジユールされる。 選択的タイマ入力命令(Alternative
Timer Input Instructi
ons) 前記未決の特許出願には別のプロセスが記述さ
れている。それら別のプロセスは実行のためのい
くつかの別のコンポーネントの1つを選択する。
別の各コンポーネントは、対応するプロセスが接
続する入力またはスキツプより成る。この例はタ
イマ選択的プロセス(timer alternative
process)を実行でき、そのプロセスは実行のた
めにいくつかの別のコンポーネントの1つを選択
する。別のタイマの各コンポーネントはメツセー
ジ・チヤネル入力(内部チヤネルまたは外部チヤ
ネルからの)と、対応するプロセスが後続するス
キツプまたはタイマ入力で構成できる。チヤネル
がレデイであるならばメツセージ・チヤネル入力
コンポーネントを選択でき、前記未決の特許出願
に記述されているようにスキツプコンポーネント
を常に選択できる。クロツク・レジスタ内の値が
タイマ入力で指定されている時刻の「後」
(AFTER)である時に、タイマ入力コンポーネ
ントを選択できる。この例は、タイマ入力に依存
しない別のプロセスを、前記未決の特許出願にお
いて既に記述されているやり方と正確に同じやり
方で実行する。その記述はこの明細書において繰
返えさない。現在のプロセスがいくつかの別のコ
ンポーネントを有する時は、1つまたはそれ以上
のそれらのコンポーネントを選択できるかどうか
を判定するために各コンポーネントが調べられ
る。どのコンポーネントも選択できないとする
と、それらのコンポーネントの1つを選択できる
までプロセスがデスケジユールされる。それから
プロセスは再スケジユールされ、コンポーネント
が再び調べられて、コンポーネントの1つが選択
される。メツセージ・チヤネル入力コンポーネン
トとスキツプ・コンポーネントの調査が、前記未
決の特許出願に記述されているようにして行われ
る。全てのコンポーネントが調べられると、プロ
セス作業域の状態場所67が2つの特殊な値
「Enabling.p」または「Ready.p」の1つを含む。
状態場所67が「Ready.p」を含んでいるものと
すると、およびその時だけ、それらのコンポーネ
ントの1つを選択できる。タイマ入力コンポーネ
ントを調べている間に、TLink68と時間場所6
9が特殊目的のために使用される。TLink場所6
8は2つの特殊な値「TimeSet.p」または
「TimeNotSet.p」のうちの1つをとる。それは、
タイマ入力がいずれも調べられていないことを示
す「TimeNotSet.p」に初期化され、最初のタイ
マ入力が調べられた時に「TimeSet.p」に変る。
最初のタイマ入力が調べられると、時間場所69
は指定された時間に初期化される。その後で、各
タイマ入力が調べられると、その時刻が時間場所
69に記録されている時間より早いとすると、時
間場所が指定された時刻に更新される。したがつ
て、全てのコンポーネントが調べられると、時間
場所69は任意のタイマ入力により指定された最
も早い時間を保持する。TLink場所68が値
「TimeSet.p」を含んでおり、かつクロツク・レ
ジスタの値が時間場所69内の時間の後である時
のみ、別のプロセスがはタイマー入力コンポーネ
ント選択できる。 全てのコンポーネントが従来べられた後で状態
場所67と、TLink場所68と、時間場所69と
を用いて任意のコンポーネントを選択できるかど
うかを、タイマ選択的プロセスが決定する。どの
コンポーネントも選択できないとするとプロセス
はデスケジユールされ、いずれかのタイマ入力コ
ンポーネントが調べられたとすると、プロセスは
適切なタイマ・リスト上に置かれる。選択できる
少くとも1つのコンポーネントがあるものとする
と、各コンポーネントは再び調べられ、最初の選
択可能なコンポーネントが選択される。前記未決
の特許出願に記述されているように、いずれかの
が選択されたのであればそのコンポーネントを記
録するために、プロセス作業域60の0場所が使
用される。チヤネル入力コネクタおよびスキツ
プ・コンポーネントの再検査は、前記未決の特許
出願に記述されているようにして行われる。タイ
マ入力コンポーネントの再検査は、TLink場所6
8と時間場所69を用いて、次のようにして行わ
れる。最初のタイマ入力コンポーネントが再検査
さる時にタイマ選択的プロセスがタイマ・リスト
上にないとすると、プロセスがそのタイマ・リス
ト上に置かれ、かつその後で除去されたか、プロ
セスがタイマ・リスト上に全く置かれていなかつ
たのかのいずれかである。前者の場合には、早い
タイマ入力コンポーネントが選択可能になつた時
刻を時間場所69は含む。後者の場合には、コン
ポーネント・プロセスを調べた直後に時間場所6
9は値「CLOCK REG」を含む。時間場所は、
タイマ入力コンポーネントの全ての再検査に対し
て同じ値を保持する。時間場所69の内容が指定
された時刻より「後」である場合のみ、タイマ入
力コンポーネントを選択可能である最初のタイマ
入力コンポーネントが再検査される時にタイマ選
択的プロセスがタイマ・リスト上に以前としてあ
るものとすると、選択可能なタイマ入力コンポー
ネントは存在しないが、選択可能なチヤネル入力
コンポーネントは必ず存在する。この場合には、
タイマ入力コンポーネントの最初の再検査はタイ
マ・リストからプロセスを除去し、TLink場所6
8を値「TimeNotSet.p」をセツトして、どのタ
イマ入力コンポーネントの選択も阻止する。この
場合には時間場所69は使用されない。 タイマ選択的プロセスを実行する命令は、各タ
イマ・コンポーネントに対する「タイマ・イネイ
ブル」が後続する「タイマ選択的開始(timer
alternative start)」である。メツセージ・チヤ
ネルが別の構造中に含まれているならば、プロセ
ツサは各およびあらゆるメツセージ・チヤネルに
対して「チヤネル・イネイブル」の実行も行う。
この後に、「タイマ選択的待機(timer
alternative wait)」が続き、それから各々タイ
マ入力に対する「タイマ・デイスエイブル」と、
任意のチヤネル入力に対する「チヤネル・デイス
エイブル」に続く。 タイマ選択的プロセスにより実行される最初の
命令は「タイマ選択的開始」オペレーシヨンであ
り、このオペレーシヨンの定義からわかるよう
に、2行目に従つて特殊な値「enabling.p」がプ
ロセスのために状態場所67に書込まれ、3行目
に従つて特殊な値「timeNotSet.p」がプロセス
作業域のためにTLink場所68に書込まれる。 前記未決の特許出願に記述されているように、
任意のチヤネル入力コンポーネントおよび任意の
スキツプ・コンポーネントが「チヤネル・イネイ
ブル」オペレーシヨンおよび「スキツプ・イネイ
ブル」オペレーシヨンにより調べられる。ガード
値(guard value)をAレジスタにロードし、タ
イマ・コンポーネントのための指定された時間を
Bレジスタにロードし、それから「タイマ・イネ
イブル」オペレーシヨンを実行することにより、
任意のタイマ入力コンポーネントが調べられる。
そのオペレーシヨンの定義に従つて、2行と3行
は、Aレジスタ内のガード値が偽であるかどうか
を調べる。もしそれが偽であれば、タイマ入力を
無視し、その命令は他の効果を有しない。定義の
5行目に従つてそのガード値が偽でないとする
と、プロセツサは定義の7行目から始まるシーケ
ンスを実行する。これは、TLink場所68から得
た値をOレジスタにロードし、8行目は、9行目
に従つてその値が「TimeNotSet.p」か、13行目
に従つて「timeSet.p」であるかを試験するため
の検査を行う。その値が「TimeNotSet.p」であ
ることが判つたとすると、値「TimeSet.p」が11
行目に従つてTLink場所に書込まれ、定義の12行
による求めに応じてプロセス作業域のための時間
場所69にBレジスタ中に示されている時間が書
込まれる。これは、プロセスにより調べられる最
初のタイマ入力コンポーネントに対して起る。調
べられる以後のタイマ入力に対しては、13行目の
条件が満されることがある。この場合には14行目
に従うシーケンスが起る。プロセスのための時間
場所69に記録されている時間値がOレジスタ5
7にロードされること、およびその時間値が定義
の17行目の条件に適合するかどうかを調べるため
にその時間値を試験することを15行目は求める。
その時間がBレジスタに示されている時間の
「後」であるとすると、Bレジスタ内の時間がそ
のプロセスのための時間場所69に書込まれる。
19行目と20行目は、Oレジスタ中に示されている
時間がBレジスタ中に示されている時間の「後」
でないとすると、どのような動作も行われない。
最後に、定義の21行目により要求されて、Cレジ
スタからの値がロードされる。このようにしてプ
ロセスは可能な各タイマ入力を調べ、検査の後で
最も早い時間コポーネントの時間をそれが含むよ
うに、プロセスの時間場所69が更新される。し
たがつて、各タイマ・コンポーネントのための一
連の(タイマ・イネイブル)オペレーシヨンが任
意のコンポーネントの最も早い時間を効果的に決
定し、調べられた任意のコンポーネントの最も早
い時間で時間場所69を順次更新することがわか
るであろう。 それから、プロセスはオペレーシヨン「タイマ
選択的待機」を実行する。定義の2行目に従つ
て、これはプロセス作業域の0場所を−1に初期
化し、それから、代りのプロセスのどのコンポー
ネントが既に選択可能であるかを判定するために
試験を行う。定義の3行目と4行目に従つて、そ
れはTLink場所68からの値をBレジスタへ読込
み、時間場所69からの値をAレジスタへ読込
む。5、6行は、プロセスが値「Timeset.p」を
有し、かつ時間場所69内に示されている時間の
「後」の時間をクロツク・レジスタが示したとす
ると、8、9行目に定義されているシーケンスが
起ることを要求する特殊な値「Ready.p」がプロ
セスのための状態場所67に書込まれ、クロツ
ク・レジスタにより示されている現在の時間がプ
ロセスのための時間場所69に書込まれる。プロ
セスはデスケジユールされず、それの次の命令へ
動きことができる。すかし、定義の6行目の条件
が真ではなかつたとすると、プロセスは定義の12
行目へ動く。それはこれにCレジスタへローデイ
ングすることによりプロセスのための状態場所6
7の内容を試験し、これが値「Ready.p」を含む
かどうかを14年行が試験する。もしそうだとする
と、16行目に従つて、クロツク・レジスタにより
示されている現在の時間がプロセスのための時間
場所69に書込まれ、プロセスはデスケジユール
されない。代りに入力のうちの別の入力のために
それはレデイ状態であり、プロセスは次の命令へ
動くことができる。しかし、定義の16行目に従つ
て、プロセスの状態場所から特殊な値「enbling.
p」が見出されたとすると、これは、代りのコン
ポーネントのいずれもまだレデイではなく、17行
目から始まるシーケンスが起ることを示す。特殊
な値「waiting.p」がプロセスのための状態場所
67に書込まれ、プロセスがタイマ・コンポーネ
ントを待つているかどうかを19、20行目が試験す
る。20行目に従つてプロセスが値「TimeSet.p」
を有するものとすると、プロセスをスケジユール
すべき時を指示するためにAレジスタの内容が1
だけ増加させられ、23行目に従つて手続き
「Insert In Time List」が実行される。そうする
と、プロセスがデスケジユールされるが、それを
再スケジユールすべき時の指示を含むように、プ
ロセスが適切な優先権タイマ上に置かれることに
なる。定義の24行目に従つて、プロセスがどのよ
うなタイマ・コンポーネントも持つていないとす
ると、Bレジスタは値「TimeNotSet.p」を有す
ることができ、これは、プロセスがタイマ入力で
はなくてチヤネル入力を依然として待つている場
合に起る。この状況においては25行目に続くシー
ケンスが起り、プロセスに対する命令ポインタが
プロセス作業域のIPTR場所65に格納され、プ
ロセスがデスケジユールされるようにSNPFlag
が値1にセツトされる。したがつ、定義において
は、タイマ入力のためにプロセスがレデイである
かどうかを6〜9行目が試験する。非タイマ入
力、たとえばチヤネル入力のためにプロセスがレ
デイであるかどうかを13、14行目が試験するプロ
セスがレデイでないことが見出される時は16行目
オンワード(onwards)を適用する。 プロセスがデスケジユールされていないとした
時、または後でそのプロセスが再スケジユールさ
れる時にそのプロセスにより実行される次の命令
は、各タイマ・コンポーネントに対するオペレー
シヨン「タイマ・デイスエイブル」と、任意のス
キツプ・コンポーネントに対するオペレーシヨン
「スキツプ・デイスエイブル」と、任意のチヤネ
ル・コンポーネントに対するオペレーシヨン「チ
ヤネル・デイスエイブル」を行うであろう。チヤ
ネル入力コネクタおよびスキツプ・コポーネント
は、前記未決の特許出願に記述されているよう
に、「チヤネル・デイスエイブル」オペレーシヨ
ンと「スキツプ・デイスエイブル」オペレーシヨ
ンにより再検査される。タイマ選択的プロセスは
オペレーシヨン「タイマ・デイスエイブル」の定
義に従つてタイマ入力コンポーネントを再検査す
る。その代りのコンポーネントをプロセスによる
選択すべきであるとすると、以後のプログラム命
令を置くためにプログラム・シーケンスにおいて
必要なオフセツトを指示するために、最初にAレ
ジスタにコード・オフセツトがロードされる。ガ
ードが偽でなつたとすると、プロセスはそのプロ
セスのためにTLink場所68の内容を調べる。考
慮すべき3つのケースがある。第1に、TLink場
所は定義の10行目に従つて値「TimeSet.p」を含
むことができ、この場合には、時間場所69内の
時間がCレジスタ内の指定された時間の「後」で
あるならば、そのコンポーネントは選択可能であ
る。これは定義の14行目における条件であり、こ
の条件が満されるものとすると、プロセスは手続
き「IsThisSelected Process」を実行する。その
手続きの定義の5、6行目に従つて、プロセス作
業の0場所が値−1を含んでいるか否かをそれは
調べる。もし含むとするとこのコンポーネントは
選択され、定義の8行目に従つて作業域の0場所
にAレジスタからコード・オフセツトがロードさ
れる。手続き定義の10行目に従つて作業域の0場
所が値−1を有していなかつたとすると、コンポ
ーネント・プロセスは既に選択され、現在の1は
選択できない。 プロセスのTLink場所68が「TimeSet.p」ま
たは「TimeNotSet.p」以外の値を含んでいるこ
とを「タイマ・デイスエイブル」オペレーシヨン
が見出したとすると、これは「タイマ・デイスエ
イブル」の定義の18行目の状況に対応する。これ
は、TLink場所68がタイマ・リスト上の別のプ
ロセスに対するポインタを含むように、プロセス
がそのリスト上に依然としてある時に起るであろ
う。したがつて、プロセスがタイマ・リスト上で
依然として待つているからタイマ・コンポーネン
トを選択できず、手続き「タイマ・リストから削
除」によりタイマ・リストから除去される。これ
により値「TimeNotSet.p」がそのプロセスのた
めのTLink場所68に書込まれる。 「タイマ・デイスエイブル」オペレーシヨン
は、定義の8行目に従つてTLik場所が値
「TimeNotSet.p」を含んでいることを見出すこ
とができる。この場合にはTLink場所68が、プ
ロセスがタイマ・リスト上にある間に実行されて
以前の「タイマ・デイスエイブル」オペレーシヨ
ンにより、この値にセツトされた。したがつて、
Aレジスタは定義の9行目に従つて値
MachineFALSEにセツトされる。 代りのコンポーネントの全てが再検査される
と、プロセスはオペレーシヨン「選択的終了
(Alternative End)」を実行し、その定義に従つ
て、それは、プロセス作業域の0場所に格納され
ているコード・オフセツトをOレジスタに最初に
ロードし、それからIPTPレジスタ内のポインタ
値をOレジスタ内のオフセツトにより調整する。
これによりプロセスは、選択された代りのプロセ
スに適切なオフセツトでプログラム・シーケンス
中の次の命令を選択させられる。 以下にプロセスの種々の例について説明する。 例 1 最初に、プロセスがデスケジユールされていな
い状況において「タイマ入力」命令を実行してい
る優先権1プロセスについて考える。たとえば、
Aレジスタにある値、たとえば、クロツク・レジ
スタが14の「後」の値を含んでいる時に、断続す
ることをプロセスが望んでいることを示す14、を
ロードできる。クロツク・レジスタが値20を含ん
でいる時に命令が実行されるものとすると、プロ
セスは「タイマ入力」の定義の最初の2行に従つ
て、クロツク・レジスタ内の値がAレジスタ内に
示されているのの後であるかどうかを調べる。こ
の例においてはその条件が適用されるから、プロ
セスをデスケジユールリングすることなしにプロ
セスは続行する。 例 2 これは、デスケジユールされるプロセスによる
「タイマ入力」のオペレーシヨンを示すもので、
第9A〜9D図を参照する。それらの図は、プロ
セスXの作業域60に対する種々の語場所におけ
る変化と種々のレジスタの内容を示すものであ
る。第9A図は「タイマ入力」命令の実行直前の
位置を示す。Aレジスタ54は、クロツク・レジ
スタ81内の時間が30の後である時のみ、プロセ
スがスケジユールされることを望んでいることを
示す値30を含む。クロツク・レジスタは現在は時
間値20を含んでおり、妥当時間フラツグ84が0
にセツトされて、優先権1タイマ・リスト上には
プロセスがないことを示す。「タイマ入力」オペ
レーシヨンが実行されると、クロツク・レジスタ
の内容がAレジスタの内容と比較される。「タイ
マ入力」の定義の5行オンワードから述べられて
いるように、特殊な値「waiting.p」がプロセス
Xの状態場所67に書込まれ、プロセスをスケジ
ユールすべき時間をAレジスタが含むように、A
レジスタ内の値が増加させられる。それからその
プロセスはタイマ・リストに挿入され、位置は第
9B図に示すようなものである。これによりクロ
ツク・レジスタはいまは22に増加させられたこと
になる。妥当時間フラツグ84はいまは値1にセ
ツトされて、タイマ・リスト上に少くとも1つの
プロセスがあることを示す。次の時間レジスタ8
5は値31を含む。この値は、タイマ・リスト上の
最初のプロセスをスケジユールすべき問題であ
る。TRTR場所90は、タイマ・リスト上の最
初の(そして唯一の)プロセスであるプロセスX
の作業域ポインタを含む。プロセスXの作業域は
それの命令ポインタ(IPTR)を場所65に含
み、特殊な値「waitig.p」を場所67に含み特殊
な値「not process.p」を場所68に含んで、こ
れがタイマ・リスト上の最後のプロセスであるこ
とを示し、場所69に値31を含んでプロセスを再
スケジユールできる時間を示す。 十分な時間が経過して、クロツク・レジスタが
値31に増加した時には、位置は第9C図に示すよ
うなものである。クロツク・レジスタ値がいまは
次の時間レジスタの値に等しく、妥当時間フラツ
グが値1にセツトされるから、タイマ・ロジツク
は時間要求をプロセスに対して発生する。これに
よるプロセツサが値1をPROCPRIにロードさせ
られ、かつ「HandleTimeRequest」手続きを実
行させる。これによりプロセスXがスケジユール
させられ、妥当時間フラツグがクリヤされ、
TPTR時間90が「not process.p」にセツトされ
る。これは第9D図に示されている位置である。 例 3 これは、プロセスをタイマ・リストの正しい位
置にある時間順序で挿入させるために、挿入フラ
ツグ82をどのようにして用るかを示すものであ
る。プロセスPは、それをデスケジユールさせる
タイマ入力動作を実行する。プロセスPは優先権
1プロセスであり、かつ実行している唯一のプロ
セスであると仮定する。また、優先権1タイマ・
リスト上で待つている3つの他のプロセスがある
ということも仮定する。それら3つのプロセスは
時間25を待つているプロセルXと、時間26を待つ
ているプロセスYと、時間29を待つているプロセ
スZとである。第10A図はタイマ入力命令を実
行する直前の位置を示す。プロセスPが実行して
おり、Aレジスタが時間27を含んでいる。クロツ
ク、レジスタが時間20を含む。タイマ・リストが
使用中であることを示す値1に妥当時間フラツグ
にセツトされ、タイマ・リスト上の最も速いプロ
セスに関連する時間が25である値25に次の時間レ
ジスタが含む。そのタイマ・リスト上に3つのプ
ロセスがあることがわかる。TPTR場所90は
それらのプロセスのうちの最初のプロセスである
プロセスXに対するポインタを含む。プロセスX
のTLink場所68は第2のプロセスに対するポイ
ンタを含み、プロセスYは第3のプロセスZに対
するポインタを含む。プロセスZのTLink場所6
8は特殊な値「Not Process.p」を含む。それ
は、プロセスZがタイマ・リスト上の最後のプロ
セスであることを示す。そのタイマ・リストは早
いリストを最初にし、最近のプロセスを最後にし
て順序づけられていることがわかる。プロセスP
がタイマ・リスト入力命令を実行すると、クロツ
ク・レジスタとAレジスタが比較され、クロツ
ク・レジスタはまだAレジスタの「後」ではない
から、特殊な値「waiting.p」がプロセスPの状
態場所67へ書込まれ、Aレジスタが1だけ増加
させられて手続き「insert timer list」が実行さ
れる。これによつてAレジスタ内の値がプロセス
Rの作業域の時間場所69に書込まされ、Bレジ
スタがTPTR場所90における点にセツトされ、
CレジスタがTPTR場所90の内容にセツトさ
れる。それからタイマ入力命令が終り、状態場所
は第10図に示すようなものである。 挿入フラグが値1にセツトされると、プロセツ
サにより実行される次の動作は手続き「insert
step」である。この手続きの定義からわかるよう
に、これはTレジスタ49にプロセスXに関連す
る時間(すなわち25)をロードさせ、かつそれを
プロセスPに関連する時間(すなわち28)と比較
する。28は25の「後」であるから、プロセスPを
タイマ・リストに挿入する正しい場所をまだ見つ
けておらず、「insert step」手続きがBレジスタ
をプロセスXのTLink場所68に対するポインタ
にセツトさせ、Cレジスタがその場所の内容をセ
ツトさせられる。それから手続きが終つてinsert
flagをセツトされたままにする。その結果として
の状況が第10C図に示されている。プロセスの
次の動作は手続き「insert step」を再び実行す
ることである。これは前記したのに類似のやり方
で実行され、第10D図に示されている状況にな
る。 再び、プロセツタの次の動作は手続き「insert
step」を実行することである。しかしこの場合に
は、プロセスZに関連する時間(すなわち29)は
プロセスPに関連する時間(すなわち28)の後で
あるから、プロセツサは挿入フラツグをクリヤ
し、プロセスPの作業域ポインタをプロセスYの
TLink場所68へ書込み、プロセスZの作業域ポ
インタをプロセスPのTLink場所68に書込むこ
とにより、プロセスPをタイマ・リストのプロセ
スYとプロセスZの間に挿入する。それから、プ
ロセツサの次の時間レジスタ85をタイマ・リス
ト上の最初のプロセスに関連する時間にリセツト
し、妥当時間フラグを値1にセツトする。最後
に、プロセツサはプロセスPの命令ポインタをプ
ロセスPのEPTR場所65に書込み、SNPFlag
58を値1にセツトして、プロセツサの次の動作
としてプロセスPをデスケジユールさせる。 例 4 これはつのタイマ入力コンポーネントを有する
タイマ選択的プロセスXを示す。プロセツサXが
唯一の実行可能なプロセスであり、プロセスXが
優先権1を有し、最初のタイマ入力コンポーネン
トが26であり、プロセスXが優先権1を有し、
最初のタイマ入力コンポーネントが26であり、第
2のタイマ・リスト入力コンポーネントが25であ
ると仮定する。これは第11A〜11C図に示さ
れている。それらはプロセス作業域60の作業域
場所67〜69のための引き続く状況を示す。第
11A図は「タイマ選択的開始」命令を実行直後
の位置を示す。状態場所67は特殊な値
「enabling.p」を含み、TLink場所68が特殊な
値「TimaNotSet.p」を含む。最初の「タイマ・
イネイブル」命令が実行される直前にAレジスタ
は値Machine TRUEをを含み、Bレジスタはこ
のタイマ入力に関連する時間すなわち26を含む。
タイマ・イネイブル命令が実行されると、プロセ
ツサはTLink場所68を読み、以前に調べられた
タイマ入力コンポーネントがないことを示す値
「TimeNotSet.p」をそれが含んでいることを見
出した。したがつて、プロセツサはTLink場所6
8を特殊な値「TimeSet.p」にセツトし、時間場
所69を値26にセツトする。これは第11B図に
示されている位置である。第2の「タイマ・イネ
イブル」命令が実行される直前にAレジスタは値
MachineTRUEを含み、Bレジスタは第2のタ
イマ入力コンポーネントに関連する時間である値
25を含む。タイマ・イネイブル命令が実行される
と、プロセツサはTLink場所68を読み、以前の
タイマ入力コンポーネントに関連する最も早い時
間を時間場所を含んでいることを示す
「TimeSet.p」をそれが含むことを見出す。した
がつて、プロセツサは時間場所69を読み、25で
あるこのコンポーネントのために指定された時間
が、値26を含んでいる時間場所から読まれた時間
より早いことが判定する。したがつて、プロセツ
サは新しい値を時間場所に書込み、位置は第11
C図に示すようなものである。 例 5 第12A〜12C図に示されているこの例は、
2つのタイマ入力コンポーネントを有するタイマ
選択的プロセスPを示す。このプロセスPはデス
ケジユールされない。プロセスPは唯一の実行可
能なプロセスであること、プロセスPは優先権1
プロセスであること、第1のタイマ入力コンポー
ネント内で指定された時間が26であり、第2のタ
イマ入力コンポーネントの時間が25であることを
仮定している。「タイマ選択的開始」命令の実行
とタイマ入力コンポーネントの検査は例4におい
て先に述べたようなものであり、「タイマ選択的
待機」命令の実行直前の状況は第11C図に示す
ようなものである。「タイマ選択的待機」の最初
の動作は値−1をプロセスPの作業域60の0場
所に書き込むことである。これは複数の代りのコ
ンポーネントからコンポーネントを選択するため
に使用される場所である。次に、クロツク・レジ
スタ内の時間が時間場所69内の時間の「後」で
あるから、デスケジユーリングなしにプロセスP
を続行できることをプロセツサは決定する。した
がつて、プロセツサは特殊な値「Ready.p」を状
態場所67に書込み、クロツク・レジスタの値が
時間場所69に書込まれる。この結果として第2
A図に示されているような状況になるが、その図
においてはクロツク・レジスタはいまは値31に進
んでいる。最初の「タイマ・デイスエイブル」の
直前の位置が第12B図に示されている。Aレジ
スタは、「選択的終了」命令から、最初のタイマ
入力コンポーネントに関連するフランジ中の命令
のシーケンスまでのオフセツトを含み、Bレジス
タは値Machine TRUEを含み、Cレジスタはこ
のタイマ・コンポーネントに関連する26である時
間を含む。それからプロセスは「タイマ・デイス
エイブル」命令が実行する。その命令はTLink場
所68を読み、それが値「TimeSet.p」を含んで
いることを判定する。したがつて、それは値30を
時間場所から読み、30は26の「後」であるから、
このタイマ入力コンボーネントは選択可能であ
る。それからプロセツサは、このコンポーネント
を選択する手続き「InThisSelectedProcess」を
実行する。というのは、プロセス作業域の0場所
が値−1を依然として含んでいるからである。こ
の結果の状況が第12C図に示されている。いま
は第2のタイマ入力コンポーネントを選択でき
ず、選択的終了命令が実行されると、プロセスP
に対する作業域は依然として第12図に示すよう
なものである。 例 6 第13A〜13F図に示されているこの例は、
2つのタイマ入力コンポーネントを有するタイマ
選択的プロセスPを示す。この場合にはプロセル
Pはデスケジユールされる。プロセスPは唯一の
実行可能なプロセスであること、プロセスPは優
先権1プロセスであること、第1のタイマ入力コ
ンポーネント内で指定された時間が26であり、第
2のタイマ入力コンポーネントの時間が25である
ことを仮定している。「タイマ選択的開始」命令
の実行とタイマ入力コンポーネントの検査は例4
において先に述べたようなものであり、「タイマ
選択的待機」命令の実行直前の状況は第11C図
に示すようものである。「タイマ選択的待機」命
令の最初の動作は値−1をプロセスPの作業域の
0場所に書込むことである。プロセツサは時間場
所69内の値をクロツク・レジスタの値と比較
し、あるタイマ入力のためにプロセスを続行でき
ないことを見出し、プロセスの状態場所67を調
べる。これは「enabling.p」を含んでいるから、
プロセスはタイマ・リスト上に置かれてデスケジ
ユールされる。これは第13A図に示されている
位置である。妥当時間フラグは、値1にセツトさ
れて、タイマ・リストが空いていないことを示
す。次の時間レジスタは、プロセスPが実行レデ
イとなるであろう時間である値26を含む。
TPTR場所90はプロセスPの作業域に対する
ポリンタを含み、プロセスPのTLink場所68
は、それがリスト上の最後のプロセスであること
を示す特殊な値「not process.p」を含む。十分
な時間が経過すると、例2において記述されてい
るように「タイマ要求」信号をプロセツサへ送
る。その信号が作られる状況は第13B図に示す
ようなものである。プロセスが再スケジユールさ
れると位置は第13図に示されているようなもの
である。最初の「タイマ・デイスエイブル」命令
の実行直前の状況は第13D図に示すようなもの
である。タイマ命令が実行されるとTLink場所6
8が読まれ、「TimeSet.p」を含むことを見出す。
それからプロセツサはこの時間コンポーネントに
関する時間、26、時間場所69内に示されている
時間、これも26である、と比較する。26は26の
「後」ではないから、このコンポーネントは選択
できない。したがつて、プロセツサは値
MachineFALSEをAレジスタにロードして命令
は終了する。プロセスPは第2の「タイマ・デイ
スエイブル」命令を実行する直前の状況は第13
E図に示すようなものである。この命令が実行さ
れることによりコンポーネントが選択させられ
て、第13F図に示さえているような状況にな
る。 例 7 これは1つのタイマ入力コンポーネントと1つ
のメツセージ・チヤネル入力コンポーネントを有
するタイマ選択的プロセスPを示す。プロセスP
は唯一の実行可能なプロセスであること、それは
優先権1を有すること、指定された時間が40であ
ることを仮定している。タイマ・リスト上にはプ
ロセスはなく、チヤネル入力コンポーネントによ
り参照されているチヤネルは最初「Ready」であ
り、タイマ入力コンポーネントは選択できない。
この例が第14A〜14D図に示されている。プ
ロセスPは「タイマ選択的開始」命令を実行し、
それのレジスタを適切にロードし、「タイマ・イ
ネイブル」命令を実行する。この結果として第1
4A図に示されている状況になる。チヤネルが
「Ready」であるから、「チヤネル・イネイブル」
命令の実行後の状況は第14B図に示すようなも
のである。それから、フランジは「タイマ選択的
待機」命令を実行する。クロツク・レジスタ内の
時間は値11を有する。この時間は、プロセルPに
対する時間場所69に示されている時間40の後で
はない。して、プロセツサは、「値「Ready.p」
を含んでいる状態場所67を調べ、したがつてク
ロツク・レジスタ内の時間値を時間場所69に書
込む。「タイマ選択的待機」命令の終了後の状況
は第14C図に示すものである。「タイマ・デイ
スエイブル」命令の直前の状況が第14D図に示
すように実行される。時間場所69内の時間値12
がコンポーネントに関連する時間の「後」ではな
いから、タイマ入力コンポーネントは選択されな
い。それから、チヤネル入力コンポーネントを選
択する「チヤネル・デイスエイブル」命令をプロ
セスが実行する。 以上の例から、「タイマ・デイスエイブル」命
令が実行されると、プロセスの時間場所69に格
納されている時間が、それを基にしてタイマ・デ
イスエイブル命令が実行されるような全てのタイ
マ入力に対して一定のままである標準時間である
ことがわかるであろう。これにより、種々のタイ
マ入力が、引き続く「タイマ・デイスエイブル」
命令が実行されるにつれて時間の経過のために変
化する時間と比較されることが避けられる。 例 8 これは、時間40を指定する1つのタイマ入力コ
ンポーネントと、チヤネル70を通る1つのチヤ
ネル入力コンポーネントを有するタイマ選択的プ
ロセスであるプロセスPを示す。この例では、タ
イマ・リスト上に最初に2つのプロセスであると
仮定している。それらのプロセスは時間34、54を
指定する。メツセージ・チヤネルは最初は
「ready」ではないが、タイマ・リスト上の最初
のプロセスがレデイになる前に「ready」とな
る。タイマ選択的プロセスを実行するために、プ
ロセスは「タイマ選択的開始」命令と、一方のタ
イマ入力コンポーネントのための「タイマ・イテ
イブル」オペレーシヨンと、チヤネル70のため
の「チヤネル・イネイブル」オペレーシヨンを最
初に実行する。そうすると位置は第15A図に示
されているようなものである。プロセスPはまだ
デスケジユールされておらず、「状態」場所67
が「enabling.p」に初期化されて、プロセスが代
りの入力を実行していることを示す。TLink場所
68は値「TimeSet.p」にセツトされていて、タ
イマ入力が調べられたことを示す。「時間」場所
69は、調べられた任意のタイマ入力のうちの最
も早い時間にセツトされている。その最も早い時
間は、この場合には40であつて、この時間40は調
べられた唯一のタイマ入力である。タイマ・リス
トはスケジユーリング時間35、55をそれぞれ有す
る2つのデスケジユールされたプロセスXとYを
有する。それから、プロセツサはプロセスPに対
する「タイマ選択的待機」命令を実行する。これ
は、レデイ」であつたチヤネル入力がなかつこ
と、および、クロツク・レジスタが第15A図に
時間11を含むから、プロセスPがタイマ入力を続
ける時間にまだ達しておらず、したがつてプロセ
スPがタイマ・リストに挿入されて、デスケジユ
ールされることをプロセスPの「状態」場所67
から見出すであろう。この結果として第15B図
に示されている位置になる。リンクされたタイ
マ・リストはいまは時間的な順序で全部で3つの
プロセスX、P、Yを有する。出力プロセスがそ
のチヤネルを通つて出力しようとしているため
に、ある時間だけ遅れてチヤネル70は「レデ
イ」となる。そのチヤネルはプロセスPの記述子
を含んでいるから、プロセスPはスケジユールさ
れるようになり、「タイマ・デイステイブル」命
令を実行する前にそれのレジスタをロードして第
15C図に示すような状況となる。次に、プロセ
スは「タイマ・デイスエイブル」動作を実行し、
これはプロセスPのための「TLink場所」68を
読み、タイマ・リストがタイマ・リスト上の次の
ポイセスに対する作業域プリンタを含んでいるか
ら、プロセスがタイマ・リスト上に依然としてあ
ることを決定する。プロセスPがそのリスト上に
依然としてあるから、そのタイマ入力コンポーネ
ントのための時間がまだ来ず、したがつてタイ
マ・コンポーネントは選択できない。したがつ
て、AレジスタはMachineFALSEにセツトされ、
手続き「delete from timあer list」が実行され
る。これによりDELETE FLAGが値1にセツト
され、BレジスタにTPTR場所90に対するポ
インタをロードし、CレジスタにTPTR場所の
内容をロードする。それから命令が終つて第15
0図に示すような位置を残す。DELETEFLAG
が値1にセツトされているから、プロセスの次の
動作は手続き「delete step」を実行することで
ある。TPTR場所がプロセスXの作業域ポイン
タを含んでいるから、そのポインタは、Cレジス
タに最初のロードされるプロセスXの作業域ポイ
ンタであろうし、したがつて手続き
「deletestep」の実行において「delete step」の
定義の2行目の条件が適用されて、Cレジスタが
プロセスPの作業域ポインタを含まない。したが
つて、「delete step」の定義の5、6行目に従つ
て、プロセスは、BにプロセスXのTLink場所に
対するポインタをロードし、CレジスタにBレジ
スタにより指された場所の内容、すなわち、プロ
セスPの作業域に対するポインタ、をロードする
ことにより、プロセスはタイマ・リスト中の次の
プロセスへ歩進する。これは第15E図に示され
ている状況である。そこから手続き「delete
step」が終了し、DELETE FLAGが依然として
セツトされているから、プロセツサの次の動作は
手続き「delete step」を再び実行することであ
る。したがつて、手続き「delete step」の7行
目の条件が適用され、CレジスタがプロセスPで
ある現在のプロセスの作業域ポインタをいま含む
であろうことがいまわかるであろう。これは、リ
ストは削除すべきプロセスがいま見出されてお
り、「delete step」の定義の9行目に従つて
DELETE FLAGが0にクリアされる。これによ
り、タイマ・リストからのそれ以上の削除ステツ
プが阻止される。「delete step」の定義の10、11
行目に従つて、プロセスPのためにTLink場所6
8に現在保持されている値(すなわち、プロセス
Yの作業域に対する作業域)をロードし、それか
らCレジスタからの値を、プロセスXのための
TLink場所である、Bレジスタにより示されてい
る場所に書込むことにより、プロセスPがタイ
マ・リストから除去される。いいかえると、プロ
セスXのTLink場所の内容が変えられて、プロセ
スPの作業域に対するポインタをプロセスYの作
業域に対するポインタで置き換える。それから、
タイマ行列上に残されているプロセスがあるかど
うかを、「delete step」手続きの13行目に従つて
プロセツサが調べる。その手続きにおいては、B
レジスタにTPTR場所の内容がロードされる。
定義の15行目に従つて、これが値「not process.
p」を有するものとすると、リストにはプロセス
は残されていない。そこから、17行目に従つて妥
当時間フラツグが零にセツトされる。一方、定義
の18行目に従つて「not process.p」以外の値が
見出されたとすると、タイマ・リスト上に別のプ
ロセスが存在し、定義の20行目に従つて、Bレジ
スタにより示されているプロセスの時間場所69
から時間をとることにより次の時間レジスタが歩
進される。最後に、タイマ・リストからプロセス
Pを削除した後で、値「TimeNotSet.p」が、手
続き「delete step」の定義の21行目に従つて、
プロセスPのTLink場所68に書込まれる。この
結果として第15F図に示されている位置にな
る。プロセスPはもはやタイマ・リスト上にない
が、依然として現在スケジユールされているプロ
セスである。したがつて、それは「チヤネル・デ
イスエイブル」である次の命令を実行する。これ
はプロセスPの作業域の0場所に値−1を見出
し、したがつてチヤネル70がプロセスへの入力
のために選択される。次の命令「選択的終了」が
終つた時にコードオフセツトがプロセスPのため
の命令ポインタに加えられて、チヤネル入力の選
択に従つてプログラムの正しい部分までプロセス
が動くように、プロセスPのための作業域の0場
所に適切なコード・オフセツトがロードされる。 メツセージ・チヤネルまたはタイマからの選択
的入力を実行するプロセスのためのプログラムの
例 このプログラムの例は、フライホイールの1秒
間当りの回転数を計算するように構成されてい
る。プロセスは「rotation」と呼ばれるチヤネル
と、「rps」(これは1秒間当りの回転数を表す)
と呼ばれるチヤネルとの2つのチヤネルを通じて
通信するように構成される。フライホイールが1
回転を終えるたびにチヤネル「rotation」から入
力するようにプロセスは構成される。プロセスが
所定の時間の発生に応答できるように、プロセス
はタイマ入力も受けることができる。この例にお
いては、所定の時間は1秒間隔の連続する経過で
ある。プロセスは、1秒間に生じた回転数をチヤ
ネル「rps」を通じて毎秒出力するように構成さ
れる。このプログラムにおいては、下記のような
付加表記法が使用される:− プロセツサのクロツクの現在の値はNOWで表
される。 occamはプロセス 変数:=NOW はプロセツサのクロツクの現在の値を変数に割当
てる。 「タイマ」入力は下記のように表される WAIT NOW AFTER t この入力コンポーネントは、プロセツサ、クロ
ツクが時間tのAFTERの時間を保持するまで、
プロセスを進めることを指定する。 このプロセスのためのプログラムは下記の通り
である:
【表】
【表】 このプログラムの1行目は、このプロセスが2
つの変数を使用することを指定する。それらの変
数の一方は「Rotations」と呼ばれるもので、1
秒間に行われる回転の数を数えるために用いられ
る。他方の変数「EndOfInterval」は、現在の1
秒間の終りを示すプロセツサのクロツクの値を記
録するために使用される。2行目は、シーケンス
を3〜6行に記述されているところに従うことを
指定する。3行目においては、回転数のカウント
が0にセツトされる。4行目においては、5行目
が1秒間の終りのためのプロセツサの値を計算で
きるように、プロセツサのクロツクの現在の値が
読まれる。5行目において用いられる値10000は
1秒間におけるプロセツサのクロツク増分の回数
である。6行目は、7行目と14行目の間をたどる
選択的プロセスを連続して繰返えすべきことを示
す。7行目はプロセスをタイマ選択的プロセスと
して識別する。8行目と10行目は2つの選択的入
力を記述する。8行目は、フライホイールが1回
転を終つた時にチヤネル「rotation」からの信号
を入力できる。この入力が選択されるものとする
と、9行目の対応するプロセスが実行され、この
プロセス実行により現在の1秒間において数えら
れた回転数が増加させられる。10行目におけるタ
イマ入力は、現在の1秒間が終つた時に、選択で
きる。プロセスへのこのタイマ入力が選択される
ものとすると、12、13、14行目の対応するプロセ
スが実行される。12行目は、1つの期間中に生じ
た回転数のカウントを示す出力をチヤネル「rsp」
を通じて与える。13行目は回転カウントを0リセ
ツトし、14行目は次の1秒の期間の終りの時間を
計算する。 このプログラムを実現する命令シーケンスは下
記の通りである:−
【表】
【表】
【表】 この命令シーケンスに示すように、1、2行目
は回転数カウントを0に初期化する。3、4行目
は、ロード・タイマを動作させてプロセツサ・ク
ロツクを読むために、pfix関数を使用する。6〜
11行目は引き続くpfix関数と加算定数関数(add
constant function)を用いて、1秒間隔の終り
にプロセツサのクロツクの値を計算する。タイマ
選択的入力信号は13行目で始まり、13、14行目
は、「タイマ選択的開始」を動作させるために
pfix関数を使用する。15行目はポインタをチヤネ
ル「rotation」にロードし、16a、17行目は「チ
ヤネル・イネイブル」を動作させるためにpfix関
数を使用する。18行目は変数「EndOfInterval」
をロードする。19行目はガード値をロードし、
20、21行目は「タイマ・イネイブル」を動作させ
るためにpfix関数を使用する。22、23行目は「タ
イマ選択的待機」を実行する。24〜27行目はチヤ
ネル入力を調べる。24行目はチヤネル
「rotation」を識別する。25行目はガード値
MachineTRUEをロードする。26行目は、チヤ
ネル入力が選択される時に必要となる命令オフセ
ツトをロードする。26a、27行目はオペレーシヨ
ン「チヤネル・デイスエイブル」を実行する。28
〜32行目はタイマ入力を調べる。28行目は変数
「EndOfInterval」をロードする。29行目はガー
ド値をロードし、30行目は、プロセスがタイマ入
力を選択する時に必要である命令オフセツトをロ
ードし、31、32行目は「タイマ・デイスエイブ
ル」を実行する。32a、33行目「選択的終了」を
実行する。35行目は、チヤネル入力が選択される
時に実行される最初の命令である。45行目は、タ
イマ入力が選択される時に実行される最初の命令
である。 本発明は上記の例の詳細事項に限定されるもの
ではない。
JP59504407A 1984-11-30 1984-11-30 同時プロセスを作動させる方法及びマイクロコンピュータ Granted JPS62500821A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/GB1984/000413 WO1986003311A1 (en) 1984-11-30 1984-11-30 Microcomputer for time dependent processes

Publications (2)

Publication Number Publication Date
JPS62500821A JPS62500821A (ja) 1987-04-02
JPH0533409B2 true JPH0533409B2 (ja) 1993-05-19

Family

ID=10554705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59504407A Granted JPS62500821A (ja) 1984-11-30 1984-11-30 同時プロセスを作動させる方法及びマイクロコンピュータ

Country Status (2)

Country Link
JP (1) JPS62500821A (ja)
WO (1) WO1986003311A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5224095A (en) * 1990-01-30 1993-06-29 Johnson Service Company Network control system and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2030331B (en) * 1978-01-24 1982-05-19 Plessey Co Ltd Real-time data processing system for processing time period commands

Also Published As

Publication number Publication date
WO1986003311A1 (en) 1986-06-05
JPS62500821A (ja) 1987-04-02

Similar Documents

Publication Publication Date Title
US4989133A (en) System for executing, scheduling, and selectively linking time dependent processes based upon scheduling time thereof
EP0145244B1 (en) Microcomputer
KR100422491B1 (ko) 내장형 프로세서 복합체, 네트워크 프로세싱 시스템 및인스트럭션 실행 제어 방법
US4675806A (en) Data processing unit utilizing data flow ordered execution
US6948172B1 (en) Preemptive multi-tasking with cooperative groups of tasks
US4468736A (en) Mechanism for creating dependency free code for multiple processing elements
US4466061A (en) Concurrent processing elements for using dependency free code
US4320455A (en) Queue structure for a data processing system
JPH0533410B2 (ja)
EP0125044B1 (en) Microcomputer with interprocess communication
KR100678930B1 (ko) 디지털 시그널 프로세서를 위한 실시간 제어 시스템
AU603876B2 (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
US5276821A (en) Operation assignment method and apparatus therefor
EP0183877B1 (en) Microcomputer for time dependent processes
US4456958A (en) System and method of renaming data items for dependency free code
JPH0533409B2 (ja)
US5386586A (en) System and method for construction of lists of deferred service requests
JP2814683B2 (ja) 命令処理装置
US5579495A (en) Information processing in which a simulation of parallelism is achieved
JPH08137690A (ja) プログラム実行制御方法
JPS58225469A (ja) マルチプロセツサ制御方式
KR920005330B1 (ko) 마이크로컴퓨터 및 이와 상호 접속된 회로망
JP2522372B2 (ja) デ―タ駆動形計算機
JPH0744404A (ja) 情報処理装置
JPH07105158A (ja) プログラムローダ