Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP2686438B2 - A special purpose processor and process control mechanism for offloading many operating system functions in large data processing systems. - Google Patents
[go: Go Back, main page]

JP2686438B2 - A special purpose processor and process control mechanism for offloading many operating system functions in large data processing systems. - Google Patents

A special purpose processor and process control mechanism for offloading many operating system functions in large data processing systems.

Info

Publication number
JP2686438B2
JP2686438B2 JP61505255A JP50525586A JP2686438B2 JP 2686438 B2 JP2686438 B2 JP 2686438B2 JP 61505255 A JP61505255 A JP 61505255A JP 50525586 A JP50525586 A JP 50525586A JP 2686438 B2 JP2686438 B2 JP 2686438B2
Authority
JP
Japan
Prior art keywords
event
processes
table means
storing
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP61505255A
Other languages
Japanese (ja)
Other versions
JPS63501987A (en
Inventor
ジェニングズ,アンドリュー・トーマス
ケラー,ジョン・アレン
Original Assignee
ユニシス・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ユニシス・コーポレーション filed Critical ユニシス・コーポレーション
Publication of JPS63501987A publication Critical patent/JPS63501987A/en
Application granted granted Critical
Publication of JP2686438B2 publication Critical patent/JP2686438B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】 発明の背景 発明の分野 この発明は特殊目的プロセッサに関するものであり、
かつ特に大型データ処理システムにおいて従来1つまた
はそれ以上の中央プロセッサによって実行される多くの
オペレーティングシステム機能をオフロードするための
プロセッサに関するものである。 先行技術の説明 多重処理システムおよび多重プログラミングのために
適合された単一処理システムは特定のプロセッサでのタ
スクのスケジューリング、入力/出力データ伝送を始め
ること、外部インタラプトに対処することなどのため
に、オペレーティングシステムを必要とする。しばしば
マスタ制御プログラム(MCP)と呼ばれるそのようなオ
ペレーティングシステムは実際は多くの異なる特定のプ
ロセスおよびサブルーチンからなり、その各々は特定の
機能を有する。そのような特定のプロセスおよびサブル
ーチンは主記憶に常駐しており、多重処理システム内の
プロセッサまたは他の中央プロセッサが特定のプロセス
またはタスクを終了したとき、入力/出力動作または何
か他のサービスを要求するときのように他の中央プロセ
ッサがサービスを要求するときに、特定の中央プロセッ
サによって即座に実行されなければならない。 特に、とりわけ、オペレーティングシステムは事象が
外部インタラプト、入力/出力動作などである場合に事
象を割り当てかつ割り当て解除し、これらの事象に伴い
実施されるかもしれない1組の機能を実現し、システム
上で実行中のプロセスまたはタスクの状態を維持し、タ
スク優先順位計算を実施しかつ種々の中央プロセッサに
よるタスクの実行をスケジュールし、インタバルタイマ
を含むシステムタイマを維持し、さらにいくつかの課金
および請求書発行機能を実施する。 統計研究によれば、多重処理システムにおいて、各プ
ロセッサ時間の主要な部分がオペレーティングシステム
機能を実行する際に用いられる。これらの研究から、そ
のようなマネージメント機能のオーバヘッドは10%と50
%の間にありかつときにはより高くすらあると見積もら
れている。さらに、オペレーティングシステム機能を、
対応する中央プロセッサが実行する時間の相当な部分
が、プロセスの優先順位を確立し、(先に規定されたよ
うな)事象における機能を実施し、入力/出力動作を始
めるのに用いられる。これら後者の機能さえオペレーテ
ィングシステムから除去されるならば、データ処理シス
テムのスループットは実質的に高められるだろう。 したがってこの発明の目的は改良されたスループット
を有するデータ処理システムを与えることである。 この発明のまた別の目的は中央プロセッサの時間の大
半を必要とするようなオペレーティングシステム機能が
システムの主メモリから除去される改良されたデータ処
理システムを提供することである。 なおこの発明のさらなる目的は、従来であればメモリ
にストアされるオペレーティングシステムの一部である
機能を実施するための設備を有する、改良されたデータ
処理システムを提供することである。 発明の要約 先に確認された目的を達成するために、この発明は大
型データ処理システムのための特殊目的プロセッサに存
し、そしてその特殊目的プロセッサは、中央プロセッサ
が主メモリにストアされたオペレーティングシステムの
ルーチンを実行する場合であれば中央プロセッサの実行
時間の大半を利用することになるようなシステムのオペ
レーティングシステムの機能の多くを実施する。より具
体的には、特殊目的プロセッサの基本的な機能は、プロ
セスまたはタスクのスケジューリング、および個々のタ
スクにより要求されるか、または個々のタスクの実行に
影響を与える事象をそのようなプロセスまたはタスクに
対して割り当てることである。 特に、そのようなプロセッサは、指定された優先順位
に従って連結された実行可能なまたは利用可能なプロセ
スの待ち行列を維持し、そのようにしていずれの中央プ
ロセッサも、より高い或る優先順位のタスクを実行中で
はないとき、最も高い優先順位のタスクに対し割り当て
られ得るようにする。特殊目的プロセッサはまた新しい
タスクが待ち行列に挿入されるかまたは除去されるとき
に、タスク優先順位を計算するための機構を含む。 この発明のプロセッサはまた実際には要求の発生と共
に様々のプロセスに割り当てられるための事象指定表で
ある事象表を維持し、そこでは要求プロセス(MCPを含
む)は事象指定に対し特定の機能または「意味」を割り
当てる。この発明のプロセッサは事象表にそのような割
り当てられた事象の状態を維持し、かつ再割り当てされ
た(すなわち「待っている」)プロセスに、ある事象が
発生したことを信号で伝え、それらの特定のプロセスを
実行するために割り当てられた特定の中央プロセッサが
次いでそれらの実行を進め得るようにする。 次いでこの発明の特徴は大型データ処理システムのた
めの特殊目的プロセッサに存し、そしてそのプロセッサ
は、割り当てられた優先順位の順序で連結される実行可
能なプロセスの待ち行列を維持し、中央プロセッサが利
用可能になると、システムの種々の中央プロセッサでそ
れらのプロセスが実行されるようにし、また要求の発生
と共に種々のプロセスに対し利用可能な事象を割り当て
るための事象割り当て機構を維持する。 図面の簡単な説明 この発明の上記のかつ他の目的、利点および特徴は図
面とともに理解されるとき以下の明細書の検討からより
容易に明白となるであろうが、そこにおいては、 第1図はこの発明を用いる大型データ処理システムの
図であり、 第2A図ないし第2D図はプッシュダウンスタックとして
割り当てられるデータを含むメモリの一部およびまたス
タック内の種々の要素をアクセスするために用いられる
複数個の表示レジスタを表わす図であり、 第3図はこの発明の特殊目的プロセッサの概略図であ
り、 第4A図および第4B図はそれぞれプロセス表およびまた
特定のプロセスのための、プロセス表にストアされる4
ワードフォーマットの概略図であり、 第5A図ないし第5D図はこの発明の事象表にストアされ
るような事象を表わす4ワードのフォーマットであり、 第6図はこの発明のプロセッサの演算論理ユニット
(ALU)への入力を例示する概略図であり、 第7図はこの発明のプロセス表の入力および出力を例
示する概略図であり、 第8図は事象表サポート論理の概略図であり、さらに 第9A図および第9B図は事象を獲得するために待ってい
るときのプロセスが優先順位に従って待ち行列に連結さ
れる態様および、同一の事象の発生を待っているプロセ
スがどのようにしてそのように連結されるかを例示する
図である。 発明の一般的な説明 この発明を用いる大型データ処理システム、特に多重
処理システムが第1図に例示されている。このシステム
は複数個の主処理ユニット10および1つまたはそれ以上
の入力/出力プロセッサ11を含み、その各々はメモリ制
御器12aを経由して複数個のメモリモジュール12と通信
し合い得る。この発明は制御器12aを経由してプロセッ
サ10のいずれの1つともまた通信し合うタスク制御プロ
セッサ13という形でシステムに付加されるものである。
なおプロセッサ10を、タスク制御プロセッサ13と対比す
る意味で以下の記載では「主プロセッサ」とも呼ぶ。 この発明はシーケンシャルなすなわちノイマン型プロ
セッサの従来のシステムで用いられ得るが、以下に説明
されるように、この発明の好ましい実施例は複雑なアル
ゴリズムの表現のための自然な型式であるブロック構造
のプログラミング言語、すなわちネスト構造の宣言の実
行のために設計されたプロセッサのシステムに対するも
のである。そのようなブロック構造の、すなわちネスト
構造の言語を用いるために設計された特定のプロセッサ
は、バートン(Barton)等の米国特許番号第3,461,434
号、第3,546,677号および第3,548,384号に記載されてい
る。これらの特許はスタック機構、すなわち先入れ後出
し機構が、使われている特定のより高いレベルの言語の
ネスト構造を反映する態様で、演算子および関連パラメ
ータの流れを扱うスタック指向のデータプロセッサを記
載している。そのような言語はアルゴル(ALGOL)およ
びPL/1、オイラ(EULER)などのようなアルゴル型言語
を含む。(イー・アイ・オーガニック、「コンピュータ
システム機構」、アカデミック・プレス、1973年(E.I.
Organick,Computer System Organization,Academic Pre
ss,1973)を参照されたい)。 先に述べたバートンの特許に記載された型式のシステ
ムはセグメント化されたメモリおよびスタックと呼ばれ
る特別に取扱われるセグメントの概念を巡って位置付け
られる。プロセッサは表現スタックで作動し、演算子は
そのスタックの上部からそれらの引き数を取りかつスタ
ックの上部にそれらの結果を残す。実行中のプログラム
のデータアドレス空間は、スタックと、スタックに連結
された他のスタックと、スタック構造に含まれる記述子
により参照されるデータセグメントとにマッピングされ
る。 実行中のコードストリームのアドレス環境はスタック
内に含まれる1組の局所的アドレス空間からなる。これ
らは活性化レコードまたは字句領域と呼ばれ、かつ各々
は活性化レコードのベースに対する指標によりアドレス
指定される1組の変数からなる。すなわち、所与のデー
タ項目のアドレス指定は(ラムダ(Lambda)、デルタ
(Delta))という型式のアドレスの対によってであ
り、ラムダはスタックでの所与の活性化レコードの字句
レベルでありかつデルタはレベルラムダでの活性化レコ
ードのベースからの変数までのオフセットである。スタ
ック内のいかなる活性化レコードをもアクセスするため
に、それぞれのレコードすなわち字句領域は、最上部の
活性化レコードのベースから最も低いレベルの活性化レ
コードまでポインタによりともに連結される。先に説明
されたバートンの特許において、アドレス指定はプロセ
ッサ内に「表示」レジスタの配列を規定することにより
最適化され、これらのレジスタは配列での要素iがレベ
ルiでの活性化レコードのベースを含むような態様で維
持される。 第1図のメモリモジュールの1つに存在するかもしれ
ないようなデータスタックが第2A図に例示されており、
かつそのデータスタックは字句レベル0ないし3での4
つの活性化レコードからなり、そこでは最上部の字句レ
ベルの値は対応するプロセッサの字句レベルレジスタに
ストアされる。活性化レコードのそれぞれのベースのメ
モリでの実際のアドレスは第2A図に示されかつこれらの
アドレスは第2B図に例示される態様で対応するプロセッ
サの表示レジスタにストアされる。 活性化レコードはプロセッサがプロシジャエントリ演
算子を実行することにより作られる。このように、例示
のために、第2C図は現在プロセッサが、異なるスタック
すなわち目盛の異なる一部で作動中であることを例示す
る。結果として、特定のプロセッサの表示レジスタは最
新化されていなければならずかつこの最新化は第2D図に
示されるように表示レジスタの新しい内容により示され
る。 第1図を参照し直すと、タスク制御プロセッサ13はマ
スタ制御プログラムから最も時間を消費する機能の多く
を軽減するように設計されている。先行技術では、第1
図のそれぞれの中央プロセッサ10は種々のプログラムま
たはプロセスを実行しているであろう。すなわち、それ
らはメモリ内の異なるスタックで作動中ということにな
る。たとえば、もし特定のプロセッサが別なタスクに対
するブランチを必要とするようなブランチ命令を実行し
たとするならば、それはマスタ制御プログラムに通知
し、次いでマスタ制御プログラムは要求されたプロセス
を起動しかつ要求したプロセスが待機状態に置かれるよ
うにする。要求されたプロセスが終了したとき、マスタ
制御プログラムは、要求されたプロセスが終了したこと
を、要求したプロセスに通知し、要求したプロセスは再
起動される。マスタ制御プログラム機能の他の具体例は
外部インタラプトの操作および入力/出力動作の起動の
ように、先に検討された。さらに、先行技術システムで
のマスタ制御プログラムはどのプロセスが最も高い優先
順位を有しているかということに従って第1図の種々の
プロセッサ10による種々のタスクの実行をスケジュール
する。 第1図のタスク制御プロセッサ13は第3図にさらに詳
細に例示される。そこに示される2つの主要な機能要素
はプロセス表21および事象表20aである。プロセス表21
および統計表20bは第1図のシステムで作動されるよう
にスケジュールされるすべてのタスクまたはプロセスの
状態に関する情報を含む。この発明の具体例の説明にお
いてはいずれの時刻でもそのシステムで4K個のそのよう
なタスクまたはプロセスが動作し得る。 プロセス表21でのプロセスの状態情報は、含まれるプ
ロセスの優先順位に従ってプロセスの待ち行列または連
結されたリストとして配置される。 第1図のシステムの動作の間、或るプロセスが完了さ
れてプロセス表21内の連結されたリストから除去される
こともあり、かつ新しいプロセスが挿入されることもあ
る。各々の場合、第3図のタスク制御プロセッサは新し
い優先順位の等級を算定しかつ連結されたリストの再配
置する。この態様で、最も高い優先順位のプロセスは必
要に応じて第1図の利用可能なプロセサ10に割り当てら
れるよう常に準備ができている。 スタックは元来、主メモリ上の物理的位置であり、か
つそれぞれのタスクまたはプロセスは互いに独立してお
りかつ対応するスタック空間を占有するのであるから、
「タスク」、「プロセス」および「スタック」という語
が同義で用いられていることはこれまでの説明から明瞭
であるはずである。同様に、「スタック番号」、「タス
ク番号」および「プロセス番号」という語は同義で用い
られておりかつ対応するプロセス状態情報の第3図のプ
ロセス表21に対する実際のアドレスである。 事象表20aはシステムで作動中のプロセスにより要求
される種々の事象指定の状態に関する情報を含むために
用いられる。この発明の説明された具体例では、最大51
2K個のそのような事象が同時に利用可能である。第1図
の特定のプロセッサ10により実行されるプロセスが事象
指定を必要とするとき、それは第3図のタスク制御プロ
セッサからのそのような指定の割り当てを要求し、タス
ク制御プロセッサは次いで割り当てられていない事象指
定をそのプロセスに対して割り当て、かつ主メモリの、
その事象指定を必要としたプロセスのスタックの上に置
かれるように事象トークンを送る。事象表20aは次い
で、その事象が割り当てられたことを示すために事象情
報を更新する。事象トークンは事象表20aに対する事象
アドレスと、第1図のプロセッサ10の1つがそれ自体の
事象トークンに偶然には作らないということを確かにす
るために或るコード化されたビットとから編成されてい
る。事象表20aはまた、既に割り当てられた特定の事象
を要求する種々のプロセスの連結リストの維持するため
に用いられ、かつその事象がそれを所持しているプロセ
スにより自由にされるかまたは解放されるとき、その事
象を要求している最も高い優先順位のプロセスに対しそ
の事象を割り当てる。 先に示されたように、事象指定は事象に割り当てられ
た機能を特定するわけではない。機能の割り当ては要求
プロセスによりなされる。事象表20aは事象の状態、た
とえばそれが割り当てのために利用可能であるかどう
か、それが起こったかどうか、どのプロセスがそれを待
機中であるかなど、を維持するためのものである。 第3図の説明を続けると、サポート論理22は必要に応
じて事象表20a、統計表20bおよび連結表20cからフィー
ルドを抽出するためばかりでなく、そこに情報フィール
ドを挿入するために用いられる。局所的メモリ23は出力
バッファとして働きかつまた第1図のそれぞれのプロセ
ッサ10で目下どのプロセスが実行中であるかを示すプロ
セッサ表を維持する。 第1図の他のプロセッサへのメッセージ伝送は第3図
の出力レジスタ29からメモリ制御器12aを経由する。メ
ッセージは制御器12aから入力レジスタ25を経由してメ
ッケージバッファ24へ受取られる。第3図に示されるよ
うに、このように説明される種々の機能ユニットは演算
論理ユニット入力マルチプレクサ27を経由する演算論理
ユニットモジュール26への入力を有する。演算論理ユニ
ットモジュール26は先に説明されたようにプロセス優先
順位を算定するために、かつまたシステムの他のプロセ
ッサへの伝送のためのメッセージを形成するために用い
られる。クロックタイマ28は演算論理モジュール26が
(統計およびタスクスケジューリングアルゴリズムだけ
でなく)、待機状態にある特定のプロセスが、その実行
が再起動されなければならなくなる前に待機し得る時間
の最大量と比較してどれぐらい長く待機しているかを算
定するのを手助けするために演算論理モジュール26に実
時間クロック値を与える。 第3図のすべての機能ユニットはシーケンス制御記憶
30の制御下にありかつメッセージバッファ24による外部
プロセッサ要求の受け取りにより起動され、そこでは要
求指令は制御記憶30によりデコードされる。 外部プロセッサから受取られる指令がWAITまたはPROC
URE指令のいずれかであるとき、この発明の特殊目的プ
ロセッサはそのプロセッサに、プロセッサがこの発明の
特殊目的プロセッサにより割り当てられる異なるプロセ
スを実行し始めることを引き起こすMOVE(移送)−STAC
K指令を伝送することにより応答する。この指令は第3
図の局所的メモリ23にストアされかつ以下に一層完全に
説明されるように、実行のための最優先順位を有する次
の利用可能にプロセスのプロセス番号またはスタック番
号とともに、最初の要求を行ったプロセッサに伝送され
る。 第3図のタスク制御プロセッサは種々のプロセスの状
態を維持し、かつ第1図のそれぞれの中央プロセッサ10
によるそれらのプロセスの実行を制御するために働く。
プロセスは次のような4つの主要な状態のうちの1つで
あり得る。 活動中−目下プロセッサで実行中、 実行可能−プロセッサが利用可能になれば作動するのに
適切な状態である、 待機中−或る事象が起こるまで作動不能である、 選択済−主プロセッサがこのプロセススタックへ移動す
るように命令されかつこの指令に対する肯定応答が未だ
タスク制御プロセッサにより受取られていない。 さらに、タスク制御プロセッサは各プロセスのための
2つのさらなる状態ビット、すなわち「スケジュール
済」および「ブロック中」の2ビットを維持する。スケ
ジュールされたプロセスとはスケジュール設定機構に含
まれるものであり、かつプロセスがその機構から除去さ
れるべきときにはスケジュール解除される。上で列挙し
た4つの状態はスケジュールされたプロセスのみに適用
される。ブロックされたプロセスはそれが「ブロック解
除」となるようなときまでプロセッサでの実行のために
はスケジュールされないものである。 第3図のプロセス表21および統計表20bはシステム内
の各プロセスのために次のような情報を維持する。つま
りプロセスの現状、すなわち実行可能、待機中などの状
態と、プロセス優先順位と、累積プロセッサ時間および
実行可能時間、それにプロセスを割当て可能なプロセッ
サと、最大許容プロセッサ時間と、プロセスのサービス
の種類との情報である。 プロセスの種類は、種々のプロセス群の間での資源の
共有体系の実現するために用いられる。第3図のタスク
制御プロセッサはまたプロセッサの利用状況のシステム
全体の統計および異なる種類のプロセスにより消費され
たプロセッサ時間を維持する。これらのプロセスの属性
は、プロセスが目下タスク制御プロセッサの制御下にあ
るかどうかとは無関係に、いつでもソフトウェアにより
セット可能でありかつ読出し可能である。 第3図のタスク制御プロセスはそれぞれの主プロセッ
サからのプロセス指令に応答す。SET−PRIORITY指令は
指定されたスタックの優先順位を与えられた値に変更す
る。SET−CLASS指令は指定されたスタックの統計を集計
する上での分類をセットする。SET−PROCESSOR指令は、
指定されたスタックに、指定された主プロセッサでのみ
実行され得るものであるという印を付す。INSERT指令
は、指定されたスタックがスケジュール機構に含まれる
ようにし、かつREMOVE指令は指定されたスタックがスケ
ジュール機構から削除されるようにする。上記の指令は
プロセスのスケジューリングを制御するためにタスク制
御プロセッサに対し出される指令の類型の具体例にすぎ
ず、多くの他の指令が用いられるが、それらの説明はこ
こでは必要ではない。 先に説明された種々の指令は、それぞれの主プロセッ
サが、実行しているプロセスのコードストリーム内で特
定の命令をデコードしたとき主プロセッサにより始めら
れる。同様のことがプロセス中の事象割り当ての要求に
関してもあてはまる。所与のプロセスまたはタスクが事
象の割り当てを要求するとき、このことはそのプロセス
を実行している主プロセッサのうちの1つによってタス
ク制御プロセッサに通信され得るにすぎないということ
が想起されるであろう。 事象の一般的な性質は先に十分に説明されてきた。事
象へのアクセスは、ALLOCATE指令の実行により特定のプ
ロセスにより獲得されるが、そのALLOCATE指令は、返答
として、第3図のタスク制御プロセッサから事象を要求
する。タスク制御プロセッサは次いで事象表20aから選
択された利用可能な事象のための事象トークンを発生
し、そしてそのトークンは要求プロセスのスタックの最
上位に置かれる。しばしばタスク制御プロセッサと要求
プロセッサとの間の通信はこれらの事象トークンによる
ものである。 ALLCOATE機能に加えて、受信された指令に応答してタ
スク制御プロセッサにより実施される別な機能は、指定
された事象が利用可能な事象のプールに戻されるように
するDEALLOCATEを含み、かつその事象を待機しているか
または獲得しようと試みている別なプロセスが存在して
いればその要求プロセッサには通知がされるであろう。
PROCURE指令は目下要求プロセッサで実行中のプロセス
を代理して、指定された事象を獲得しようとする試みが
結果として生ずる。もしその事象が利用可能ならば、そ
の事象には利用不可能であるという印が付され、目下実
行中であるスタック番号として所有者が指定される。も
し事象が利用不可能であれば、プロセスは中断され、所
有のプロセスのベースの優先順位は、少なくとも競合す
るプロセスのベースの優先順位と同じ地位であるように
調整され、かつ要求プロセッサは再スケジュールされ
る。 LIBERATE指令は、指定された事象の所有権を獲得しよ
うと試みている最も高い優先順位のプロセスに、タスク
制御プロセッサがこの事象の所有権を譲渡することを引
き起こす。もしそのようなプロセスが存在しないなら
ば、事象には利用可能であるという印が付加される。 SIMPLE−WAIT指令は、指定された事象が起こるまで、
目下要求プロセッサで実行中のプロセスの実行を中断さ
せる。 MULTIPLE WAIT指令は、時間制限が終了するかまたは
1組の事象のうちの1つが起こるかのいずれかのときま
で、要求プロセッサで目下実行中のプロセスの実行を中
断させる。 CAUSE指令は、現在指定された事象を待機中であるす
べてのプロセスを「起こす」。リセットオプションが用
いられるか、またはその事象について、あるスタックが
特定の機能を実行中であるかのいずれかでない限り、そ
の事象には生起済という印が付される。リセットオプシ
ョンが用いられるか、その事象について、あるスタック
が特定の機能を実行中である場合には、その事象は未生
起状態のままにされる。もし事象が利用可能でありかつ
競合者があれば、最も高い優先順位の競合者が事象の所
有権を与えられる。 SET指令は、ある事象を待機しているかもしれないい
ずれのプロセスも再起動することなしに、その事象に生
起済の印を付する。 第3図のすべての表は停止・ロードがシステムで実施
されるときはいつでも初期設定される。その後の表は再
ロードされず、タスク制御プロセッサが実行中の指令に
依存して時々修正される。 種々のプロセスまたは主メモリ内の種々のスタックへ
の第1図の種々のプロセッサ10の割り当ては、第3図の
制御記憶30の制御下でそれぞれのプロセッサに送られる
指令に依存し、それはそれぞれのプロセッサが種々の指
定されたスタックで実行を始めることを引き起こす。そ
の後、第3図の制御記憶30は、個々のプロセッサが、主
として先に検討されたようにそのプロセッサが事象待機
指令または獲得指令を実行したとき再スケジュールされ
る(別なスタックに移される)ことを引き起こす。第3
図の制御記憶30はまた、プロセッサが規定時間より長い
間その現在のスタックで作動していたと判断するときは
いつでも、そのプロセッサが別なスタックへ移ることを
引き起こす。 発明の詳細な説明 第4図は各々17ビットである16K個のワード場合の所
要を有するスタティックRAMである第3図のプロセス表2
1の編成の表示である。このRAMは先に説明されたように
4K個のプロセスのためのスケジューリングおよび情報の
操作のために必要とされる情報を与えるように、4K個の
4ワードブロックに分割される。各4ワードブロック
は、先に説明されたように、12ビットのプロセス番号に
よりアドレス指定され、そしてそれにはさらに、ある4
ワードブロック内でワードのどれがアドレス指定される
べきかを選択するための2ビットが与えられる。 第4B図は第4A図の4ワードブロックのうちの1つのフ
ォーマットを例示する。 第4B図のWORD−0において、ビット16はプロセスが実
行可能待ち行列(下に説明される)の先頭としての選択
候補であるということを示す、選択可能ビットである。
プロセスがこの状態であるためには、それはスケジュー
ルされており、かつ実行可能でなければならず、かつブ
ロックされてはならない。ビット15ないし12はプロセス
の実行についての統計をプロセスの分類別に集計する際
の、現在のプロセスが属する統計上の分類を特定する。
ビット11ないし0は実行可能待ち行列の前方リンクであ
り、優先順位の降順に実行可能待ち行列を連鎖させると
きに用いられる。すなわち、ビット11ないし0は、その
ようなプロセスの連結リスト内の、次に下位の優先順位
のプロセスの、12ビットの、プロセス表のプロセス番号
すなわちアドレスである。 第4B図のWORD−1は、WORD−0と同様であるが、ビッ
ト11ないし0が、今度は実行可能行列の逆順のリンク、
すなわちシステムでスケジュールされたプロセスの連結
リストにおいて次に上位の優先順位のプロセスの、プロ
セス番号を表わすということが異なっている。 第4B図のWORD−2において、ビット16は、セットされ
た場合には、このプロセスが、WORD−3に関して説明さ
れるように、その特定のプロセッサ指定のための実行可
能待ち行列の先頭にあるということを示す。WORD−2の
ビット15ないし8はプロセスの優先順位全体の上位部分
であり、その優先順位はプロセッサにより実行される或
るタスクによりセット可能であり、かつこの発明のタス
ク制御プロセッサにより操作される。ビット7ないし0
はプロセスの優先順位全体の下位部分を表わし、かつこ
の発明のタスク制御プロセッサにより用いられるスケジ
ューリングアルゴリズムにより操作される。 第4B図のWORD−3において、ビット16は、セットされ
ると、現在のプロセスがシステムでスケジュールされて
いるか否かを示す。ビット15ないし8はプロセスの元の
ベースの優先順位を表わす。これはロックの競合状態が
解消されるときに、プロセスがフォールバックし得る最
も低いベース優先順位である。ビット7および6は、現
行のプロセスが作動されるべきであるプロセッサの型
(すなわちプロセッサが第1図の主プロセッサ10である
かまたは第1図の入力/出力プロセッサ11であるかかた
はまだ実現されていない将来のプロセッサの型であるか
どうかを)示す。ビット5および4は待機中、実行可
能、選択済(先に説明されたように)、および活性化状
態のようなプロセス状態を表わす。ビット3は、セット
されると、プロセスが「ブロックされた」ことを示し、
タスク制御プロセッサはプロセッサでの実行のためにそ
れをスケジュールしない。ビット2は、セットされる
と、このスタック番号に移るようプロセッサに告げる次
のmove stack指令でこのプロセスがインタラプトされる
べきであるということを示す。 第3図の事象表20aは512K個の事象のステータスの記
憶場所を含む。プロセス表21のように、事象表20aの各
記憶場所は4ワードブロックから構成される。それぞれ
のワードの大体のフォーマットは第5A図ないし第5D図に
示される。事象表の各ブロックは、先に説明されたよう
に、事象トークンの一部である事象番号と4ワードのう
ちどれがアドレス指定されるべきかを特定する他の2ビ
ットとによりアドレス指定される。4ワードの各々は52
ビット幅である。 第5A図はWORD−0の大体のフォーマットを表わす。そ
こで例示されるように、この開示に関連する2つの主要
フィールドがある。ビット31ないし24は、先に説明され
た理由で或る別なプロセスにより事象が所有されている
間に、この事象を獲得しようと競合している、あるいは
試みている最高位優先順位のプロセスの優先順位を示
す。ビット18ないし0は現在の事象を所要するプロセス
により所有される次に下位の優先順位事象の事象番号を
含む。すなわち、このフィールドは現在の事象の所有者
により現在所有されているすべての事象の待ち行列の前
方リンクである。 第5B図はWORD−1の大体のフォーマットを表わし、WO
RD−0のものに類似するが、今度はビット18ないし0が
所有者の待ち行列逆順リンクすなわち現行の事象の所有
者により所有されている、次に高位の優先順位の事象の
事象番号を表わしているという点で異なる。 第5C図はここで特に関連する2つのフィールドを有す
るWORD−2の大体のフォーマットを表わす。ビット35な
いし24はこのWORD−2に対応する事象指定を獲得してい
るプロセスの番号を含む。ビット11ないし0はまた現在
の事象の所有権を獲得しようと試みている最高位優先順
位のプロセスを表わすプロセス番号を表わす。 第5D図はWORD−3の大体のフォーマットである。この
ワードのビット51は、セットされると、現在の事象が割
り当てられたということを示す。ビット50は、セットさ
れると、この事象が利用可能であるということを示す。
ビット49は、セットされると、特定の権限を与えられた
プロセスによりその事象の所有権が獲得されており、か
つ所有権を持っていたすべての他のプロセスから取り上
げられたということを示す特別なビットである。ビット
48は、セットされると、事象が発生したかすなわち生起
したかということを示す。ビット47は、セットされる
と、この事象を獲得しようと試みている競合者またはプ
ロセスがあることを示す。ビット46は、セットされる
と、この事象が発生することを待機中のプロセスがある
ことを示す。この開示に対し関連する他の2フィール
ド、すなわちビットの組がある。ビット19ないし0は、
事象が起こるのを待機中であるプロセスのリストに対す
るポインタまたはリンクであり、そのリストは第3図の
連結表20cにある。このリンクのビット12ないし0は、
リストの第1のプロセスのプロセス番号である。 先に説明されたように、WORD−0、1および2は基本
的には、事象を獲得するために待機中であるプロセスに
関連しているのに対し、WORD−3は基本的には事象指定
を獲得した後、その事象が生起するのを待機中であるプ
ロセスに関連している。事象を待機中であるプロセスに
関し、1時にはただ1つのプロセスが1個の事象または
複数個の事象を獲得し得るということが強調されるべき
である。しかし、多数のプロセスはそれらが事象を所有
していなくとも、所与の事象を待機中であり得る。この
理由に、第2A図ないし第2D図に関して先に検討されたよ
うに、この発明の好ましい実施例で用いられるブロック
構造化されたプログラム言語の物質にある。すなわち、
そのようなブロック構造化された言語を用いた場合、い
ずれのプロセスも、独立してはいるがプロセスの階層構
造の一部である。したがって、所与のプロセスが事象を
要求しかつ割り当てられるとき、それはその事象を所有
しかつそれに対して機能を割り当てたことをその親プロ
セスに通知し、かつ親プロセスは今度は他の兄弟プロセ
スに特定の事象が割り当てられかつ機能を割り当てられ
たことを通知する。そして、その事象を必要とするいず
れの兄弟プロセスも、事象が起こるまで待機状態に置か
れる。 第6図は第3図の演算論理ユニットモジュール26およ
び演算論理ユニット入力マルチプレクサ27のより詳細な
概略図である。第6図において、演算論理ユニットモジ
ュール26はBレジスタ41とアキュムレータ42とから入力
を受取る演算論理ユニット40を含む。演算論理ユニット
40の出力は、左端回りで8ビットまたは1ビットのいず
れかをシフト可能なシフト機構であるローテータ43に接
続されている。ローテータ43の出力はアキュムレータ42
に接続されている。Bレジスタ41およびアキュムレータ
42の出力はまた出力マルチプレクサ44に与えられる。演
算論理ユニットモジュール26への入力は、第3図の演算
論理ユニット入力マルチプレクサ27をともに形成する、
連続する入力マルチプレクサ27aおよび27bを経由する。
これら2つのマルチプレクサへの入力は第3図に関して
先に説明された。 第7図は第3図のプロセス表21のための入力および出
力論理を例示する。第7図において、実際のプロセス表
は16K×18ビット(パリティを含む)スタティックラン
ダムアクセスメモリであるプロセスRAM50である。アド
レスおよびデータは第3図の演算論理ユニットモジュー
ル26から受取られ、アドレスはプロセスRAM入力マルチ
プレクサ51に直接行き、データはプロセスRAM50の入力
へ直接行く。プロセスRAM入力マルチプレクサ51は演算
論理ユニットモジュールまたはプロセスRAM50の出力の
いずれかからのアドレスを選択するが、先に説明された
ようにそのアドレスは12ビットのプロセス番号である。
選択されたアドレスは次いでプロセスRAM50をアドレス
するためのアドレスカウンタ52へ送られる。第3図のシ
ーケンス制御記憶30から第7図のワードレジスタ53に2
ビットが受取られ得る。先に説明されたように、これら
の2ビットは特定のプロセスワードブロックでのどのワ
ードが選択されるべきかを指定する。これら2つのビッ
トはまた特定のプロセスブロックの優先順位ワードを選
択する定数からもくるかもしれず、ワード選択マルチプ
レクサ54が定数またはワードレジスタ53の内容のいずれ
かを選択する。これら2つのビットは次いでプロセスRA
M50への14ビットのアドレスを作るためにアドレスカウ
ンタ12の12ビットの出力に付加される。 大きさ比較器56は、プロセスRAM50でアドレスされる
現在のプロセスブロックの優先順位を、第3図の演算論
理ユニットモジュール26からターゲット優先順位レジス
タ57により受取られるターゲット優先順位と比較するよ
うに働く。このターゲット優先順位は、プロセスRAM50
で維持されているタスクの連結リストに挿入されるべき
タスクの優先順位を表わす。 第7図の選択可能タスク機能ユニット58は現在のプロ
セスのうちどれが利用可能なプロセッサでの実行のため
に可能化されるかを見るために、種類可能化マスク59の
内容とプロセスRAM50でのプロセスの各々の種類を比較
するように働き、その場合第3図のシーケンス制御記憶
30は選択可能タスク機能58により通知される。マスク制
御機能ユニット60は、どの種類が目下利用可能なプロセ
ッサで作動され得るかを示すために、種類可能化マスク
59の種々のビットをセットするように働く。 第8図は第3図の事象表20a、統計表20bおよび連結表
20cへの入力のためのデータを受取るための、かつそこ
からデータを取出すための、第3図のサポート論理22を
より詳細に例示する。それらの表へのおよび表からのデ
ータ転送は、第3図の演算論理ユニットモジュール26か
らまたはダイナミックRAMから形成されるそれぞれの表
自体からデータを受取り得る段階レジスタ70を経由す
る。段階レジスタ70はまたその出力からデータを受取り
得てかつこれら3つの入力は入力選択ユニット71により
選択される。データはそのパリティまたはエラー訂正コ
ード(ECC)がチェック/ジェネレータ7によりチェッ
クされる1クロック時間の間、段階レジスタ70の留ま
る。データは次いで、演算論理ユニットモジュールに返
送のためにフィールド抽出ユニット73によりそのフィー
ルドが抽出され得るし、または段階レジスタ70からの全
出力データがそれぞれ事象表、連結表または統計表への
伝送のためのチェック/ジェネレータ74からのパリティ
ビットと組合わされ得る。フィールド抽出ユニット73へ
の入力は、フィールド抽出入力マルチプレクサ72により
選択される。 それぞれの表のためのアドレスは、フィールド抽出ユ
ニット73から20ビットのフィールドを受取ることにより
アドレス形成機能ユニット75により発生される。第3図
のシーケンス制御記憶装置30からの8ビットのリテラル
は、アドレスされるべき特定の表をアドレス形成機能ユ
ニット75に通知し、かつアドレス形成機能ユニット75は
次いで適当なアドレスを形成してアドレスカウンタ76へ
伝送し、そこからそのアドレスはアドレス供給源マルチ
プレクサ78によりそれぞれの表に送られる。アドレス供
給源マルチプレクサ78は、第3図の表20a、20bおよび20
cのダイナミックRAMがリフレッシュされているときに
は、リフレッシュアドレスカウンタ77からのアドレスを
また選択するであろう。 第9A図は、1つのプロセスから、事象を獲得するため
に待機中の次の順位のプロセスへどのように所有権が送
られるかの図である。そこに示されるように、事象が利
用可能となりその所有プロセスにより解放されると、特
定の事象ブロックWORD−2のPヘッドフィールドが、所
有権を要求している次に低い優先順位プロセスのプロセ
ス番号が存する第3図の連結表20cへのポインタとして
用いられる。事象には次いで所有者としてこのプロセス
が割り当てられ、かつこのプロセスは次いで、第1図の
次に利用可能なプロセッサは次いで、第1図の次に利用
可能なプロセッサ10のために実行可能とされる。そのプ
ロセッサが利用可能となると、それは現在所有中のブロ
セスのスタック番号に移るように命令を与えられる。事
象が再び利用可能となると、上記の手順が次いで反復さ
れる。 第9B図は、第3図の連結表20cがこの同じ事象を待機
中のプロセスを連結するためにどのようにして用いられ
るかを例示する。そこに示されるように、事象が起こり
かつその「生起済」ビットがセットされると、(第3図
のタスク制御プロセッサにより受取られるCAUSE指令を
受け取ったせいで)、特定の事象ブロックのWORD−3の
Wヘッドがプロセス表21内の特定のプロセスブロックへ
の、かつまた連結表20c内のプロセスリンクへの位置指
定をするために用いられ、この動作が連結表とプロセス
表の全体に波及して、その事象を待機中のすべてのプロ
セスが第1図の次に利用可能なプロセッサ10のために実
行可能にされる。 とりわけこの発明のプロセッサの1つの利点は、外部
インタラプトが不要になり、かつそのようなインタラプ
トを要求するデバイス、たとえば入力/出力プロセッサ
は、ある事象が生起したことを、その事象のステータス
を「現在生起済」に変えさせるCAUSE指令を送ることに
よって、この発明の特殊目的プロセッサに単に伝達する
に過ぎないということである。 結び 大型データ処理システムでの、種々のプロセッサの処
理時間の大半を消費するオペレーティングシステム機能
をオフロードするための特殊目的プロセッサを以上に説
明した。特に、特殊目的プロセッサは、プロセッサが利
用可能になるごとに種々のプロセッサにプロセスまたは
タスクをスケジュールするように適合され、各プロセス
はそれらに割り当てられた優先順位に従ってスケジュー
ルされる。特殊目的プロセッサはまた実際に要求プロセ
ス(動作システムを含む)がその事象指定に対し特定の
機能を割り当てるとき、要求に応じて種々のプロセスに
割当てられるべき事象指定の表である、事象表を維持す
る。事象表は次いで、すべてのそのような割り当てられ
た事象の状態を維持するためにかつ事象が生起したこと
をその事象を待機中であるすべてのプロセスに伝えるた
めに用いられる。 この発明の具体例はただ一つしか開示していないが、
請求の範囲に記載されたような発明の精神および範囲か
ら逸脱することなく、変更および修正がなされ得るとい
うことは当業者には明らかであろう。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to special purpose processors,
And, especially in large data processing systems,
Many more that are performed by the central processor
For offloading operating system functions
It is about the processor. Description of Prior Art For Multiple Processing Systems and Multiple Programming
An adapted single processing system is a
Start disk scheduling, input / output data transmission
And dealing with external interrupts
Requires an operating system. often
Such an operator called a master control program (MCP)
The operating system is actually a lot of different specific
Processes and subroutines, each of which is specific
Has functions. Such specific processes and subs
Is resident in the main memory and
Processor or other central processor is a specific process
Or when the task is finished, the input / output operation or what
Or other central process, such as when requesting other services
When a server requests service, a particular central process
It must be executed immediately by the service provider. In particular, the operating system
Things to do in case of external interrupt, input / output operation, etc.
Allocate and deallocate elephants, and with these events
A system that implements a set of functions that may be implemented
Maintains the state of processes or tasks running on
Disk priority calculation and to various central processors
Schedule the execution of tasks by the interval timer
Maintain system timers, including some additional billing
And implement the billing function. According to statistical studies, each process in a multiprocessing system is
Operating system is a major part of processor time
Used when performing a function. From these studies,
The management function overhead like 10% and 50
Estimated to be between% and sometimes even higher
Have been. In addition, the operating system functions
A significant portion of the time that the corresponding central processor executes
Establishes process priorities and (previously defined
Function) and perform input / output operation.
Used to kill. Even these latter features are operating
Data processing system, if removed from the
System throughput will be substantially increased. Therefore, the object of the present invention is to improve the throughput.
Is to provide a data processing system having. Another object of this invention is to increase the time of the central processor.
Operating system features that require half
Improved data handling removed from system main memory
It is to provide a management system. A further object of the present invention is to use a conventional memory.
Is part of the operating system stored in
Improved data with facilities to perform the function
It is to provide a processing system. SUMMARY OF THE INVENTION In order to achieve the objectives identified above, the present invention is
Exists in a special purpose processor for type data processing systems
And that special-purpose processor is a central processor
Of the operating system stored in main memory
Central processor execution if routine is to be executed
Operating a system that will spend most of its time
Performs many of the functions of the rating system. More
Physically, the basic functions of the special purpose processor are
Process or task scheduling, and individual tasks
Task to perform individual tasks or
Influencing events to such processes or tasks
It is to allocate to. In particular, such processors may
Executable or available processes linked according to
Maintain a queue of queues, and thus
The processor is also executing a task with a higher priority
Assigned to highest priority task when there is no
To be able to be done. Special purpose processors are also new
When a task is inserted or removed from the queue
Including a mechanism for calculating the task priority. The processor of the present invention also actually co-operates with the generation of requests.
In the event specification table to be assigned to various processes
Maintains an event table where the requesting process (including MCP
Assigns a specific function or "meaning" to the event specification.
Hit it. The processor of the present invention uses the event table for such allocation.
Maintains the state of assigned events and is reassigned
(Or “waiting”) process has an event
Signal what has happened and identify those particular processes
The specific central processor assigned to run
Then allow them to proceed. Next, the feature of the present invention is that of a large-scale data processing system.
A special-purpose processor for
Are executable concatenated in the order of assigned priority
Maintain a queue of active processes and allow the central processor to
Once available, the various central processors of the system
Allow these processes to run and make requests
Assign available events to various processes with
Maintain an event allocation mechanism for BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, advantages and features of the present invention are illustrated in the drawings.
From the consideration of the following specification when understood together with aspects
As will be readily apparent, FIG. 1 illustrates a large data processing system using the present invention.
Figures 2A through 2D show a pushdown stack
A portion of memory containing the data to be allocated and / or
Used to access various elements in the tack
FIG. 3 is a diagram showing a plurality of display registers, and FIG. 3 is a schematic diagram of a special purpose processor of the present invention.
Figures 4A and 4B show the process table and
4 stored in the process table for a particular process
FIG. 5 is a schematic diagram of a word format, and FIGS. 5A to 5D are stored in the event table of the present invention.
FIG. 6 is a 4-word format representing an event such as that shown in FIG.
FIG. 7 is a schematic diagram illustrating an input to (ALU), and FIG. 7 shows an example of input and output of the process table of the present invention.
FIG. 8 is a schematic diagram showing, FIG. 8 is a schematic diagram of the event table support logic, and further FIGS. 9A and 9B are waiting to acquire the event.
Processes are queued according to their priority.
And the process waiting for the occurrence of the same event.
Exemplifies how the space is so connected
FIG. GENERAL DESCRIPTION OF THE INVENTION Large data processing systems using the present invention, especially multiplex systems.
The processing system is illustrated in FIG. This system
Is a plurality of main processing units 10 and one or more
Input / output processor 11, each of which is memory-controlled.
Communicates with multiple memory modules 12 via controller 12a
You can fight each other. This invention uses the controller 12a to
A task control professional that also communicates with any one of the
It is added to the system in the form of Sessa 13.
Note that the processor 10 is contrasted with the task control processor 13.
In the following description, it is also called a “main processor”. This invention is a sequential or Neumann pro
It can be used in Sessa's conventional system, but is described below.
As will be appreciated, the preferred embodiment of the present invention is a complex algorithm.
Block structure, which is a natural type for the expression of Gorythm
Programming language, that is, the declaration of nested structures
Also for systems of processors designed for the line
It is. Of such block structure, ie nesting
A specific processor designed to use a structural language
Is US Pat. No. 3,461,434 to Barton et al.
No. 3,546,677 and 3,548,384.
You. These patents refer to the stacking mechanism, ie first-in first-out
The mechanism of the particular higher level language being used.
Operators and related parameters are displayed in a manner that reflects the nesting structure.
Describes a stack-oriented data processor that handles the flow of data.
It is listed. Such languages are ALGOL and
And PL / 1, EULER, etc.
including. (Ei Organic, "Computer
System Organization ", Academic Press, 1973 (EI
Organick, Computer System Organization, Academic Pre
ss, 1973))). A system of the type described in the Burton patent mentioned above.
Is called segmented memory and stack.
Positioning around the concept of specially treated segments
Can be The processor operates on the representation stack and the operators
Take those arguments from the top of the stack and
Leave those results at the top of the hook. Running program
The data address space of the stack and concatenation of the stack
Other stacks created and descriptors contained in the stack structure
Is mapped to the data segment referenced by
You. Address environment of running codestream is stack
It consists of a set of local address spaces contained within. this
Are called activation records or lexical areas, and each
Is an address by index to the base of the activation record
It consists of a specified set of variables. That is, given day
Data item addressing is (Lambda, Delta
(Delta)) is an address pair of
, Lambda is the token of a given activation record on the stack
Level and Delta is the activated record in Level Lambda
It is the offset from the base of the mode to the variable. Star
To access any activation record in the
Each record or lexical area is
The lowest level activation level from the activation record base.
The code is linked together by a pointer. Explained first
In Burton's patent, addressing is a process
By defining an array of "display" registers in the
Optimized, these registers have level i in the array.
In a manner that includes the base of the activation record in
Be held. May reside in one of the memory modules in FIG.
A data stack that does not exist is illustrated in Figure 2A,
And its data stack is 4 at lexical levels 0 to 3
It consists of two activation records, where the top lexical record
The bell value is stored in the lexical level register of the corresponding processor.
Stored. The base message for each of the activation records.
The actual address in memory is shown in Figure 2A and these
The address is the corresponding process in the manner illustrated in Figure 2B.
Stored in the display register of the server. The activation record is played by the processor as a procedure entry.
It is made by performing arithmetic operations. Like this
Figure 2C shows that the processor currently has a different stack
In other words, it shows that it is in operation on a part with a different scale
You. As a result, the display register for a particular processor is
Must be modernized and this modernization is shown in Figure 2D
Indicated by the new contents of the display register as shown
You. Referring again to FIG. 1, the task control processor 13
Many of the most time-consuming features from a star control program
Is designed to mitigate. In the prior art, the first
Each central processor 10 in the figure
Or will be running the process. Ie it
Are working on different stacks in memory
You. For example, if a particular processor is
Execute a branch instruction that requires a branch to
If so, it notifies the master control program
Then the master control program is the requested process
And the requested process is put in a waiting state
To do. Master when the requested process ends
The control program is that the requested process has terminated
To the requesting process and the requesting process
Is activated. Another specific example of the master control program function is
External interrupt operation and input / output operation activation
As previously discussed. Moreover, with prior art systems
Master control program, which process has the highest priority
Depending on whether it has a ranking
Schedule execution of various tasks by processor 10
I do. The task control processor 13 of FIG. 1 is further detailed in FIG.
It is illustrated in detail. The two main functional elements shown there
Are process table 21 and event table 20a. Process table 21
And statistical table 20b as operated by the system of FIG.
Of all tasks or processes scheduled to
Contains information about the state. To explain the specific examples of the present invention,
At any time, there are 4K such
Tasks or processes can run. The process status information in Process Table 21 includes
Process queues or queues according to process priority
It is arranged as a linked list. During the operation of the system of Figure 1, certain processes are completed.
Removed from the linked list in Process Table 21
Sometimes and new processes are inserted.
You. In each case, the task control processor of Figure 3 is a new
Calculate priority levels and redistribute concatenated lists
Place. In this manner, the highest priority process is mandatory.
Assigned to available processor 10 in Figure 1 as needed
Always ready to be The stack is originally a physical location in main memory,
Each task or process is independent of each other.
And occupies the corresponding stack space,
The words "task", "process" and "stack"
It is clear from the description above that the terms are used synonymously.
It should be. Similarly, "stack number", "task
The terms "work number" and "process number" are used interchangeably.
The process status information shown in FIG.
This is the actual address for process table 21. Event table 20a is required by processes running in the system
To include information about the status of various event designations
Used. In the described embodiment of the invention, a maximum of 51
2K such events are available at the same time. Fig. 1
Process executed by a particular processor 10
When it is necessary to specify, it is the task control program shown in Fig. 3.
Requesting such a specified assignment from Sessa,
Control processor then unassigned event fingers.
Assigned to that process and in main memory,
It is placed on the stack of the process that needs the event specification.
Send the event token as you would. Event table 20a is next
The event information to indicate that the event was assigned.
Update information. Event token is an event for event table 20a
Address and one of the processors 10 in FIG.
Make sure you don't accidentally create an event token
Is organized from certain coded bits in order to
You. The event table 20a also shows the specific events that have already been assigned.
To maintain a linked list of various processes that require
The process used by the event and the event owns it.
When freed or released by
The highest priority process requesting the elephant
Assign the event of. As indicated above, event designations are assigned to events
It does not specify the specific function. Function assignment required
Made by the process. Event table 20a shows the event status
If it is available for allocation
Or if it happened, which process waited for it
It is for maintaining whether or not the aircraft is on board. Continuing with the description of FIG.
The event table 20a, statistical table 20b and consolidated table 20c
Not only to extract the rud, but also the information field there
It is used to insert a card. Local memory 23 is output
It acts as a buffer and also each process of FIG.
Pro 10 shows which process is currently running
Maintain the Sessa table. The message transmission to the other processor in FIG. 1 is shown in FIG.
Output register 29 via the memory controller 12a. Me
Message from controller 12a via input register 25
Package buffer 24. It's shown in Figure 3.
As such, the various functional units described in this
Arithmetic logic via logic unit input multiplexer 27
It has an input to the unit module 26. Arithmetic logic unit
Module 26 is process prioritized as previously described.
To calculate rankings, and also other processes in the system.
Used to form a message for transmission to the
Can be The clock timer 28 has an arithmetic logic module 26
(Statistics and task scheduling algorithms only
A particular process in the wait state (not
Time that can wait before it has to be restarted
Calculate how long you are waiting compared to the maximum amount of
Implemented in the arithmetic logic module 26 to help determine
Gives the time clock value. All functional units in Fig. 3 are sequence control memory
Under control of 30 and external via message buffer 24
Invoked upon receipt of a processor request, where it is required
The request command is decoded by the control memory 30. The command received from the external processor is WAIT or PROC
When it is one of the URE directives, the special purpose program of this invention is
The processor is the processor, and the processor
Different processes assigned by special purpose processors
MOVE (Transport) -STAC
Responds by transmitting a K command. This command is the third
Stored in the Figure Local Memory 23 and more fully below
The next with the highest priority for execution, as described.
Process number or stack number of the process available
Signal to the processor that made the first request.
You. The task control processor shown in FIG. 3 has various process states.
1 and each central processor 10 of FIG.
Work to control the execution of those processes by.
The process is in one of four main states:
possible. Active-currently running on the processor, ready-to run if the processor becomes available
Appropriate state, Waiting-Inoperable until some event occurs, Selected-Main processor moves to this process stack.
Commanded and there is still an acknowledgment to this directive
Not received by the task control processor. In addition, the task control processor has a
Two additional status bits, namely "Schedule"
The two bits "done" and "blocking" are maintained. Scale
Scheduled processes are included in the schedule setting mechanism.
And the process is removed from the mechanism.
The schedule is canceled when it should be done. Listed above
4 states apply only to scheduled processes
Is done. The blocked process is
For execution on the processor until
Is not scheduled. The process table 21 and statistical table 20b in FIG.
Maintain the following information for each process in. Toes
The current state of the process, that is, the state of being executable, waiting, etc.
State, process priority, cumulative processor time and
Executable time, a process that can allocate processes to it
Service, maximum allowed processor time, and process service
Information about the type of The type of process depends on the resources of the various process groups.
It is used to realize a sharing system. Task of Figure 3
The control processor is also a processor utilization system
Consumed by overall statistics and different types of processes
Maintain processor time. Attributes of these processes
Process is currently under the control of the task control processor.
With or without software, at any time
It is settable and readable. The task control process shown in Fig. 3 is performed by each main process.
Respond to the process command from the server. The SET-PRIORITY directive
Changes the priority of the specified stack to the given value
You. The SET-CLASS directive collects statistics for the specified stack
Set the classification for doing. The SET-PROCESSOR directive
Only on the specified main processor, on the specified stack
Mark that it can be performed. INSERT directive
The specified stack is included in the scheduling mechanism
And the REMOVE directive does not scale the specified stack.
To be deleted from the Joule mechanism. The above directive is
Task-based to control process scheduling
It is only a concrete example of the types of commands issued to your processor.
However, many other directives are used, but a description of them is given here.
Not needed here. The various commands described above are equivalent to their respective main processors.
Server in the codestream of the process being executed.
When a certain instruction is decoded, it is started by the main processor.
It is. The same is true for requesting event assignments during the process.
The same applies to the case. A given process or task
When requesting an elephant's assignment, this is the process
Is run by one of the main processors running
Can only be communicated to the control processor.
Will be remembered. The general nature of events has been fully explained above. Thing
Access to an elephant is specified by executing the ALLOCATE directive.
The ALLOCATE command is returned by the process
Request an event from the task control processor shown in FIG.
I do. The task control processor then selects from the event table 20a.
Generate event tokens for selected available events
And the token is at the top of the requesting process stack.
It is placed in the upper rank. Often task control processor and request
Communication with the processor depends on these event tokens
Things. In addition to the ALLCOATE function, it responds to received commands
Another function performed by the disk control processor is
Events are returned to the pool of available events
Includes DEALLOCATE and is waiting for that event
Or there is another process trying to acquire
If so, the request processor will be notified.
The PROCURE directive is currently a process running on the request processor
On behalf of, an attempt to obtain the specified event
Resulting. If the event is available, then
The event is marked as unavailable and is currently
The owner is specified as the stack number in the line. Also
If the event is not available, the process is interrupted and
Existing process base priority is at least competing
The same priority as the base priority of the process
Coordinated, and request processor rescheduled
You. The LIBERATE directive takes ownership of the specified event.
Task to the highest priority process that is trying to
It is assumed that the control processor transfers ownership of this event.
Wake up. If no such process exists
For example, the event is marked as available. The SIMPLE-WAIT command is used until the specified event occurs.
The process currently being executed by the request processor is suspended.
Let The MULTIPLE WAIT directive causes the time limit to expire or
Either when one of a set of events occurs
The requesting processor is currently executing a process
Cut off. The CAUSE directive is currently waiting for the specified event.
"Wake up" all processes. Reset option is for
Or a stack for that event
Unless it is either performing a particular function
The event is marked as having occurred. Reset option
Stack is used for the event
Is performing a particular function, the event is
Be left upright. If the event is available and
If there are competitors, the highest priority competitor is the
You are entitled. SET directive may be waiting for some event
The lagging process can be used for the event without restarting.
Mark as done. All tables in Fig. 3 are stopped and loaded by the system
Whenever it is done, it is initialized. The table after that is again
Not loaded and the task control processor has
Dependently modified from time to time. To different processes or different stacks in main memory
The allocation of the various processors 10 of FIG. 1 is shown in FIG.
Sent to each processor under control of control memory 30
Depending on the directive, each processor may have different fingers.
Causes execution to begin at the specified stack. So
After that, the control memory 30 shown in FIG.
The processor is waiting for an event as previously discussed as
Will be rescheduled when the order or acquisition order is executed
To be moved (moved to another stack). Third
The control memory 30 in the figure also shows that the processor is longer than the specified time.
If you decide that it was working on the current stack for a while,
At any time, the processor may move to another stack.
cause. DETAILED DESCRIPTION OF THE INVENTION FIG. 4 shows the case of 16K words, each of which is 17 bits.
The process table 2 in Fig. 3 which is a static RAM that is essential
It is a display of 1 organization. This RAM is as described above
Scheduling and information for 4K processes
4K pieces to give the information needed for operation
It is divided into 4 word blocks. Each 4 word block
To the 12-bit process number, as explained above.
More addressed, and it even has 4
Which of the words is addressed within the word block
Two bits are provided to select which should be done. Figure 4B shows one of the four word blocks in Figure 4A.
The format is illustrated. In WORD-0 of Figure 4B, bit 16 indicates that the process is
Selection as the head of the row ready queue (described below)
It is a selectable bit indicating that it is a candidate.
For the process to be in this state, it is scheduled
Must be present and executable, and
Must not be locked. Bits 15-12 are processes
To aggregate statistics about execution of processes by process category
Identifies the statistical classification to which the current process belongs.
Bits 11-0 are the forward links of the ready queue
And chaining executable queues in descending order of priority
Used in That is, bits 11-0 are
Next lower priority in the linked list of such processes
12-bit process number of the process table
That is, an address. WORD-1 in Figure 4B is the same as WORD-0, but with
Links 11 through 0 are now links in reverse order of the feasible matrix,
Ie the concatenation of system scheduled processes
The process of the next highest priority process in the list
The difference is that it represents a process number. In WORD-2 of Figure 4B, bit 16 is set.
If so, this process is described for WORD-3.
Executable for that particular processor
Indicates that it is at the head of the Noh queue. Of WORD-2
Bits 15-8 are the upper part of the overall process priority
And the priority is either executed by the processor or
Can be set by the task
It is operated by the control processor. Bits 7 to 0
Represents the lower part of the overall process priority, and
Used by the task control processor of the present invention
It is operated by the Turing algorithm. In WORD-3 of Figure 4B, bit 16 is set.
And the current process is scheduled on the system
Indicates whether or not. Bits 15-8 are the original of the process
Indicates the priority of the base. This is a lock race condition
The maximum time a process can fall back when it is resolved.
Is also a low base priority. Bits 7 and 6 are the current
The type of processor on which the process of the row should be run
(That is, the processor is the main processor 10 of FIG.
Or who is the input / output processor 11 of FIG.
Is a future processor type not yet realized?
Indicate). Bits 5 and 4 are waiting and can be executed
Noh, selected (as explained above), and activated
Represents a process state such as a state. Bit 3 is set
When done, indicates that the process is "blocked",
The task control processor is responsible for execution on the processor.
Do not schedule this. Bit 2 is set
And tell the processor to move to this stack number.
Move stack directive interrupts this process
Show that it should. The event table 20a in Fig. 3 shows the status of 512K events.
Including memory. As in process table 21, each of event table 20a
The memory location consists of 4 word blocks. Respectively
The general format of the word is shown in Figures 5A through 5D.
Is shown. Each block in the event table is as described above.
The event number, which is part of the event token, and the 4-word
Two other bits that specify which should be addressed.
And are addressed by. 52 of each of the 4 words
It is a bit width. FIG. 5A shows the general format of WORD-0. So
As illustrated here, there are two main points related to this disclosure.
There is a field. Bits 31-24 are explained above
The event is owned by another process for the reason
In the meantime, competing for this event, or
Shows the priority of the highest priority process trying
You. Bits 18-0 are processes that require the current event
The event number of the next lower priority event owned by
Including. Ie, this field is the owner of the current event
Before the queue of all events currently owned by
It is a link. Figure 5B shows the general format of WORD-1, WO
Similar to that of RD-0, but now with bits 18-0
Owner's queue reverse link, or ownership of current event
Of the next highest priority event owned by
They differ in that they represent event numbers. Figure 5C has two fields of particular relevance here
Represents the general format of WORD-2. Bit 35
Ishi 24 has acquired the event designation corresponding to this WORD-2.
Containing the process number Bits 11-0 are also now
Highest priority trying to take ownership of the phenomenon of
It represents the process number that represents the highest process. Figure 5D is the general format of WORD-3. this
Bit 51 of the word, when set, interrupts the current event.
Indicates that it has been assigned. Bit 50 set
Indicates that this event is available.
Bit 49, when set, has been given specific authorization
The process has taken ownership of the event,
Up from all other processes that had one ownership
It is a special bit that indicates that you have been defeated. bit
48, when set, indicates whether the event has occurred or
Indicates whether you have done it. Bit 47 is set
And any competitors or players attempting to capture this event.
Indicates that there is a process. Bit 46 is set
And there is a process waiting for this event to occur
Indicates that Two other fields related to this disclosure
Do, that is, a set of bits. Bits 19-0 are
On a list of processes waiting for an event to occur
Pointers or links, the list of which is shown in Fig. 3.
It is in consolidated table 20c. Bits 12-0 of this link are
It is the process number of the first process in the list. As explained earlier, WORD-0, 1 and 2 are basic
To a process that is waiting to acquire an event
While related, WORD-3 is basically an event designation
Is waiting for the event to occur
Related to the process. To the process that is waiting for the event
For example, at one time only one process has one event or
It should be emphasized that multiple events can be acquired
It is. However, many processes do not
If not, it may be waiting for a given event. this
For the reason, it was discussed earlier with respect to Figures 2A through 2D.
Block used in the preferred embodiment of the present invention.
It lies in the substance of a structured programming language. That is,
If you use such a block structured language,
The staggered processes are independent, but the process hierarchy
Part of the construction. Therefore, a given process
When requested and assigned, it owns the event
And its parent assigned that function.
Seth, and the parent process in turn
Are assigned specific events and functions.
Notify that. And I need that phenomenon
Put all of its sibling processes in a waiting state until an event occurs
It is. FIG. 6 shows the arithmetic logic unit module 26 of FIG.
And the arithmetic logic unit input multiplexer 27
It is a schematic diagram. In FIG. 6, arithmetic logic unit module
The tool 26 is input from the B register 41 and the accumulator 42.
And an arithmetic logic unit 40 for receiving Arithmetic logic unit
Output of 40 is either 8 bits or 1 bit around the left end
Connect it to the rotator 43 which is a shift mechanism that can shift it.
Has been continued. The output of the rotator 43 is the accumulator 42.
It is connected to the. B register 41 and accumulator
The output of 42 is also provided to output multiplexer 44. Performance
The input to the arithmetic logic unit module 26 is the operation of FIG.
Together form a logic unit input multiplexer 27,
Via successive input multiplexers 27a and 27b.
The inputs to these two multiplexers are with respect to FIG.
It was explained earlier. Figure 7 shows the inputs and outputs for Process Table 21 in Figure 3.
The force logic is illustrated. In Figure 7, the actual process table
Is a 16K x 18 bit static run (including parity)
This is the process RAM 50 that is the dumb access memory. Ad
The data and data are the arithmetic logic unit module of Fig. 3.
Received from process 26, the address is the process RAM input multi
Go to the plexer 51 directly, the data is input to the process RAM 50
Go directly to. Process RAM input multiplexer 51 computes
Logical unit module or process RAM 50 output
Choose an address from either, but it was explained earlier
So that address is a 12-bit process number.
The selected address then addresses process RAM 50
Is sent to the address counter 52 for executing. Figure 3
2 from the sequence control memory 30 to the word register 53 in FIG.
Bits may be received. These, as explained earlier
The 2 bits of each word in the particular process word block
Specifies whether the code should be selected. These two bits
Also selects the priority word for a particular process block.
It may also come from the constants that you select
Either lexer 54 is a constant or the contents of word register 53
Or choose. These two bits are then processed RA
Address Cow to make a 14-bit address to M50
Is added to the 12-bit output of interface 12. Magnitude comparator 56 is addressed in process RAM 50
The priority of the current process block is calculated according to the operation theory of FIG.
Target priority register from the processing unit module 26
Compare with the target priority received by
Work. This target priority is process RAM50
Should be inserted into the linked list of tasks maintained in
Indicates the priority of the task. The selectable task function unit 58 shown in FIG.
Process to run on any available processor
Of type enabling mask 59 to see what is enabled
Compare content and each type of process in process RAM 50
And in that case the sequence control memory of FIG.
30 is notified by the selectable task function 58. Mask system
The functional unit 60 is a process that is currently available.
Type-enabling mask to show how it can be activated
Works to set 59 different bits. Figure 8 shows the event table 20a, statistical table 20b, and consolidated table in Figure 3.
To receive data for input to 20c, and there
Support logic 22 in Figure 3 to retrieve data from
This will be illustrated in more detail. Data to and from those tables
Data transfer is performed by the arithmetic logic unit module 26 of FIG.
Or each table formed from dynamic RAM
Via a stage register 70 that can receive data from itself
You. The stage register 70 also receives data from its output.
And the three inputs are obtained by the input selection unit 71
Selected. The data is either parity or error correction code.
Check (ECC) is checked by the check / generator 7.
The stage register 70 remains on for one clock time
You. The data is then returned to the arithmetic logic unit module.
The field extraction unit 73 sends the fee for transmission.
Can be extracted or all from the stage register 70.
Output data to event table, consolidated table or statistical table respectively
Parity from check / generator 74 for transmission
Can be combined with a bit. To field extraction unit 73
The field extraction input multiplexer 72
Selected. The address for each table is the field extraction unit.
By receiving a 20-bit field from Knit 73
Generated by the address forming functional unit 75. Fig. 3
8-bit literal from sequence control store 30
Addresses the specific table to be addressed by the address forming function.
The knit 75 is notified, and the address forming functional unit 75
Next, form an appropriate address and go to the address counter 76.
Transmitted, from which the address is
Delivered to each table by Plexer 78. Address
The source multiplexer 78 comprises the tables 20a, 20b and 20 of FIG.
when the dynamic RAM in c is being refreshed
Is the address from the refresh address counter 77.
Will also choose. Figure 9A shows how to obtain an event from one process.
How ownership is transferred to the next priority process waiting for
FIG. As shown there, the event
Once available and released by its owning process,
The P head field of the constant event block WORD-2 is
The process of the next lowest priority process requiring a vote
As a pointer to the concatenation table 20c in FIG.
Used. This process as the owner then to the event
Are assigned, and the process then proceeds to FIG.
The next available processor is then the next available in FIG.
Enabled for possible processor 10. That
When a processor becomes available, it will be
You are instructed to move to the set stack number. Thing
When the elephant becomes available again, the above steps are then repeated.
It is. Figure 9B shows that the linkage table 20c in Figure 3 waits for this same event.
How it is used to connect the processes in
I will show you. As shown there, the event
And when its "done" bit is set (Fig. 3
The CAUSE directive received by the task control processor of
(Due to receipt), the WORD-3 of the particular event block
W head to specific process block in process table 21
And also the location finger to the process link in consolidation table 20c.
This behavior is used to determine the linkage table and process.
It spreads all over the table, and all pros waiting for that event.
Set for the next available processor 10 in FIG.
Enabled. Among other things, one advantage of the processor of the present invention is that
No need for interrupts, and such interrupts
Requesting device, eg input / output processor
Is the status of an event
To send a CAUSE directive to change the "currently awakened"
Thus, simply communicate to the special purpose processor of the present invention.
It is just that. Conclusion Processing of various processors in a large data processing system
Operating system functions that consume most of the processing time
A special purpose processor for offloading
Revealed. In particular, special purpose processors are
Processes or processes on various processors as they become available
Each process adapted to schedule a task
Schedule according to the priority assigned to them
Will be The special purpose processor also actually requires a demand process.
Specific to the event specification (including the operating system)
When assigning functions, various processes can be used on demand.
Maintain an event table, which is a table of event specifications to be assigned
You. The event table is then assigned to all such assignments.
To maintain the state of the event and that the event occurred
To all processes that are waiting for the event
Used for Although only one specific example of the present invention is disclosed,
Whether the spirit and scope of the invention as set forth in the claims
Changes and modifications can be made without departing from
It will be apparent to those skilled in the art.

フロントページの続き (31)優先権主張番号 787,781 (32)優先日 1985年10月15日 (33)優先権主張国 米国(US) 審判番号 平7−12149 (72)発明者 ケラー,ジョン・アレン アメリカ合衆国、19320 ペンシルバニ ア州、コウツヴィル バリー・グリー ン・ドライブ、12 (56)参考文献 特開 昭60−114940(JP,A)Continuation of front page    (31) Priority claim number 787,781 (32) Priority date October 15, 1985 (33) Priority country United States (US)        Judgment number flat 7-12149 (72) Inventor Keller, John Allen               United States, 19320 Pennsylvania               Barry Gree, Koutsville, Ohio               Driven, 12                (56) References JP-A-60-114940 (JP, A)

Claims (1)

(57)【特許請求の範囲】 1.複数個の中央プロセッサと、前記複数個の中央プロ
セッサにより実行されるべき複数個のプロセスをストア
するための少なくとも1つのメモリモジュールとを有す
る処理システムにおいて、それらのプロセスは、種々の
事象が生起しなければ完了することができず、 前記複数個の中央プロセッサに結合され、目下ある中央
プロセッサにより実行されているプロセスに事象を割り
当てるための指令および実行中のプロセスが待機中の状
態にあることを示すための指令を前記ある中央プロセッ
サから受取るための入力手段と、 実行可能であり、かつ割り当てられた優先順位に従って
実行がスケジュールされたプロセスを含むプロセスのプ
ロセス指定をストアするためのプロセス表手段と、 前記入力手段に結合され、種々の事象に関し、その事象
がプロセスに割り当てられたかどうかおよびその事象が
生起したかどうかを含む状態情報をストアするための事
象表手段と、 前記プロセス表手段、前記事象表手段および前記複数個
の中央プロセッサに結合され、前記中央プロセッサに対
して、プロセスが利用可能な事象トークンを、次いで他
のプロセスに実行を移送するための移送指令を伝送する
ための出力手段と、さらに 前記入力手段、出力手段、プロセス表手段および事象表
手段に結合され、前記指令をデコードするための、かつ
プロセスに対して事象が利用可能であるかどうかを含
む、種々の事象の状態とプロセスの状態とを維持するた
めの制御手段とを含む、事象割当機構を含み、 前記制御手段が、前記複数個の中央プロセッサからの指
令のデコーディングに応答して、該事象表手段および出
力手段の動作を実行するために伝送される制御信号の組
のための制御記憶を含む、特殊目的プロセッサ。 2.前記入力手段が、前記制御記憶に結合され、前記制
御記憶によりデコードされるプロセッサ指令をストアす
るためのメッセージバッファを含む、請求の範囲第1項
に記載の特殊目的プロセッサ。 3.複数個の中央プロセッサと、前記複数個の中央プロ
セッサにより実行されるべき複数個のプロセスをストア
するための少なくとも1つのメモリモジュールとを有す
る処理システムにおいて、それらのプロセスは、種々の
事象が生起しなければ完了することができず、 前記複数個の中央プロセッサに結合され、目下ある中央
プロセッサにより実行されているプロセスに事象を割り
当てるための指令および実行中のプロセスが待機中の状
態にあることを示すための指令を前記ある中央プロセッ
サから受取るための入力手段と、 実行可能であり、かつ割り当てられた優先順位に従って
実行がスケジュールされたプロセスを含むプロセスのプ
ロセス指定をストアするためのプロセス表手段と、 前記入力手段に結合され、種々の事象に関し、その事象
がプロセスに割り当てられたかどうかおよびその事象が
生起したかどうかを含む状態情報をストアするための事
象表手段と、 前記プロセス表手段、前記事象表手段および前記複数個
の中央プロセッサに結合され、前記中央プロセッサに対
して、プロセスが利用可能な事象トークンを、次いで他
のプロセスに実行を移送するための移送指令を伝送する
ための出力手段と、さらに 前記入力手段、出力手段、プロセス表手段および事象表
手段に結合され、前記指令をデコードするための、かつ
プロセスに対して事象が利用可能であるかどうかを含
む、種々の事象の状態とプロセスの状態とを維持するた
めの制御手段とを含む、事象割当機構を含み、 前記事象表手段が、特定のプロセスに割当てられたすべ
ての事象の連結リストを含む、特殊目的プロセッサ。 4.複数個の中央プロセッサと、前記複数個の中央プロ
セッサにより実行されるべき複数個のプロセスをストア
するための少なくとも1つのメモリモジュールとを有す
る処理システムにおいて、それらのプロセスは、種々の
事象が生起しなければ完了することができず、 前記複数個の中央プロセッサに結合され、目下ある中央
プロセッサにより実行されているプロセスに事象を割り
当てるための指令および実行中のプロセスが待機中の状
態にあることを示すための指令を前記ある中央プロセッ
サから受取るための入力手段と、 実行可能であり、かつ割り当てられた優先順位に従って
実行がスケジュールされたプロセスを含むプロセスのプ
ロセス指定をストアするためのプロセス表手段と、 前記入力手段に結合され、種々の事象に関し、その事象
がプロセスに割り当てられたかどうかおよびその事象が
生起したかどうかを含む状態情報をストアするための事
象表手段と、 前記プロセス表手段、前記事象表手段および前記複数個
の中央プロセッサに結合され、前記中央プロセッサに対
して、プロセスが利用可能な事象トークンを、次いで他
のプロセスに実行を移送するための移送指令を伝送する
ための出力手段と、さらに 前記入力手段、出力手段、プロセス表手段および事象表
手段に結合され、前記指令をデコードするための、かつ
プロセスに対して事象が利用可能であるかどうかを含
む、種々の事象の状態とプロセスの状態とを維持するた
めの制御手段とを含む、事象割当機構を含み、 前記事象表手段が、特定の事象の各々を獲得することを
要求したすべてのプロセスのリストをストアするための
連結表手段を含む、特殊目的プロセッサ。 5.複数個の中央プロセッサと、前記複数個の中央プロ
セッサにより実行されるべき複数個のプロセスをストア
するための少なくとも1つのメモリモジュールとを有す
る処理システムにおいて、それらのプロセスは、種々の
事象が生起しなければ完了することができず、 前記複数個の中央プロセッサに結合され、目下ある中央
プロセッサにより実行されているプロセスに事象を割り
当てるための指令および実行中のプロセスが待機中の状
態にあることを示すための指令を前記ある中央プロセッ
サから受取るための入力手段と、 実行可能であり、かつ割り当てられた優先順位に従って
実行がスケジュールされたプロセスを含むプロセスのプ
ロセス指定をストアするためのプロセス表手段と、 前記入力手段に結合され、種々の事象に関し、その事象
がプロセスに割り当てられたかどうかおよびその事象が
生起したかどうかを含む状態情報をストアするための事
象表手段と、 前記プロセス表手段、前記事象表手段および前記複数個
の中央プロセッサに結合され、前記中央プロセッサに対
して、プロセスが利用可能な事象トークンを、次いで他
のプロセスに実行を移送するための移送指令を伝送する
ための出力手段と、さらに 前記入力手段、出力手段、プロセス表手段および事象表
手段に結合され、前記指令をデコードするための、かつ
プロセスに対して事象が利用可能であるかどうかを含
む、種々の事象の状態とプロセスの状態とを維持するた
めの制御手段とを含む、事象割当機構を含み、 前記事象表手段が、割り当てられた事象の各々が生起済
となるのを待機中であるすべてのプロセスのリストをス
トアするための連結表手段を含む、特殊目的プロセッ
サ。 6.複数個の中央プロセッサと、前記複数個の中央プロ
セッサにより実行されるべき複数個のプロセスをストア
するための少なくとも1つのメモリモジュールとを有す
る処理システムにおいて、それらのプロセスは、種々の
事象が生起しなければ完了することができず、 前記複数個の中央プロセッサに結合され、目下ある中央
プロセッサにより実行されているプロセスに事象を割り
当てるための指令および実行中のプロセスが待機中の状
態にあることを示すための指令を前記中央プロセッサか
ら受取るための入力手段と、 実行可能であり、かつ割り当てられた優先順位に従って
実行がスケジュールされたプロセスを含むプロセスのプ
ロセス指定をストアするためのプロセス表手段と、 前記入力手段に結合され、種々の事象に関し、その事象
がプロセスに割り当てられたかどうかおよびその事象が
生起したかどうかという情報を含む状態情報をストアす
るための事象表手段と、 前記プロセス表手段、前記事象表手段および前記複数個
の中央プロセッサに結合され、前記中央プロセッサに対
して、プロセスが利用可能な事象トークンを、次いで他
のプロセスに実行を移送するための移送指令を伝送する
ための出力手段と、さらに 前記入力手段、出力手段、プロセス表手段および事象表
手段に結合され、前記出力手段が前記要求された指令を
伝送することを引き起こすための制御手段とを含む、事
象割当て機構を含む、プロセス制御機構 7.前記制御手段が、前記入力手段、出力手段、プロセ
ス表手段および事象表手段の動作を実行するためにそれ
らに伝送するための制御信号の組をストアするたの制御
記憶を含む、請求の範囲第6項に記載のプロセス制御機
構。 8.前記出力手段が、新しいプロセスへの前記移送指令
をストアする局所的メモリを出力バッファとして含む、
請求の範囲第6項に記載のプロセス制御機構。 9.前記入力手段が、前記複数個の中央プロセッサから
の複数個の指令をストアするためのメッセージバッファ
手段さらに含む、請求の範囲第6項に記載のプロセス制
御機構。 10.前記制御手段および前記プロセス表手段に結合さ
れ、種々のプロセスが実行中の状態から待機中の状態ま
たは実行可能状態に変わるにつれて前記プロセス表手段
におけるプロセス状態指定を変えるための論理ユニット
手段をさらに含む、請求の範囲第6項に記載のプロセス
制御機構。 11.前記プロセス表手段および前記制御手段に結合さ
れ、前記処理システムによる新しいプロセスの実行がス
ケジュールされるとき、前記プロセス表手段において種
々のプロセス指定の優先順位を変えるための優先順位計
算手段をさらに含む、請求の範囲第6項に記載のプロセ
ス制御機構。 12.前記事象表手段が、特定のプロセスに対し割り当
てられたすべての事象の連結リストを含む、請求の範囲
第6項記載のプロセス制御機構。 13.前記事象表手段が、特定の事象の各々を獲得する
ことを要求したすべてのプロセスのリストをストアする
ための連結表手段を含む、請求の範囲第6項記載のプロ
セス制御機構。 14.前記事象表手段が、割り当てられた事象の各々が
生起済となるのを待機中であるすべてのプロセスのリス
トをストアするための連結表手段を含む、請求の範囲第
6項記載のプロセス制御機構。
(57) [Claims] In a processing system having a plurality of central processors and at least one memory module for storing a plurality of processes to be executed by the plurality of central processors, the processes may experience various events. Otherwise it cannot complete, and the instructions for assigning events to the processes being executed by the central processors currently being executed and the executing processes are in a waiting state. Input means for receiving instructions for indicating from said certain central processor; and process table means for storing process specifications of processes, including processes that are executable and are scheduled for execution according to their assigned priorities. , Related to various events, connected to said input means, Event table means for storing state information including whether it has been assigned to a process and whether the event has occurred, coupled to the process table means, the event table means and the plurality of central processors, Output means for transmitting to the central processor an event token available to the process and then a transfer command for transferring execution to another process, and further said input means, output means, process table means and event Control means coupled to the table means for maintaining the state of the various events and the state of the process, including for decoding the commands and including whether an event is available to the process. An event assigning mechanism, wherein the control means is responsive to the decoding of commands from the plurality of central processors, A special purpose processor including a control store for a set of control signals transmitted to perform the operations of the stages and the output means. 2. A special purpose processor as claimed in claim 1, wherein said input means includes a message buffer coupled to said control store for storing processor instructions decoded by said control store. 3. In a processing system having a plurality of central processors and at least one memory module for storing a plurality of processes to be executed by the plurality of central processors, the processes may experience various events. Otherwise it cannot complete, and the instructions for assigning events to the processes being executed by the central processors currently being executed and the executing processes are in a waiting state. Input means for receiving instructions for indicating from said certain central processor; and process table means for storing process specifications of processes, including processes that are executable and are scheduled for execution according to their assigned priorities. , Related to various events, connected to said input means, Event table means for storing state information including whether it has been assigned to a process and whether the event has occurred, coupled to the process table means, the event table means and the plurality of central processors, Output means for transmitting to the central processor an event token available to the process and then a transfer command for transferring execution to another process, and further said input means, output means, process table means and event Control means coupled to the table means for maintaining the state of the various events and the state of the process, including for decoding the commands and including whether an event is available to the process. , An event assignment mechanism, wherein the event table means includes a linked list of all events assigned to a particular process. Sessa. 4. In a processing system having a plurality of central processors and at least one memory module for storing a plurality of processes to be executed by the plurality of central processors, the processes may experience various events. Otherwise it cannot complete, and the instructions for assigning events to the processes being executed by the central processors currently being executed and the executing processes are in a waiting state. Input means for receiving instructions for indicating from said certain central processor; and process table means for storing process specifications of processes, including processes that are executable and are scheduled for execution according to their assigned priorities. , Related to various events, connected to said input means, Event table means for storing state information including whether it has been assigned to a process and whether the event has occurred, coupled to the process table means, the event table means and the plurality of central processors, Output means for transmitting to the central processor an event token available to the process and then a transfer command for transferring execution to another process, and further said input means, output means, process table means and event Control means coupled to the table means for maintaining the state of the various events and the state of the process, including for decoding the commands and including whether an event is available to the process. , An event allocation mechanism, wherein the event table means stores a list of all processes that have requested to acquire each particular event A special purpose processor including connection table means for performing. 5. In a processing system having a plurality of central processors and at least one memory module for storing a plurality of processes to be executed by the plurality of central processors, the processes may experience various events. Otherwise it cannot complete, and the instructions for assigning events to the processes being executed by the central processors currently being executed and the executing processes are in a waiting state. Input means for receiving instructions for indicating from said certain central processor; and process table means for storing process specifications of processes, including processes that are executable and are scheduled for execution according to their assigned priorities. , Related to various events, connected to said input means, Event table means for storing state information including whether it has been assigned to a process and whether the event has occurred, coupled to the process table means, the event table means and the plurality of central processors, Output means for transmitting to the central processor an event token available to the process and then a transfer command for transferring execution to another process, and further said input means, output means, process table means and event Control means coupled to the table means for maintaining the state of the various events and the state of the process, including for decoding the commands and including whether an event is available to the process. , An event allocation mechanism, the event table means for all processes that are waiting for each of the allocated events to have occurred. A special purpose processor including concatenation table means for storing a list. 6. In a processing system having a plurality of central processors and at least one memory module for storing a plurality of processes to be executed by the plurality of central processors, the processes may experience various events. Otherwise it cannot complete, and the instructions for assigning events to the processes being executed by the central processors currently being executed and the executing processes are in a waiting state. Input means for receiving instructions to indicate from the central processor; process table means for storing process specifications of processes, including processes executable and scheduled to execute according to an assigned priority. Coupled to the input means, various events are An event table means for storing status information including information whether the event was assigned to a process and whether the event occurred, and coupled to the process table means, the event table means and the plurality of central processors. Output means for transmitting to the central processor event tokens available to a process and then a transfer command for transferring execution to another process, and further said input means, output means, process table means And a event control means coupled to event table means and causing the output means to transmit the requested command. The control means includes a control store for storing a set of control signals for transmission to the input means, the output means, the process table means and the event table means for performing the operations thereof. The process control mechanism according to item 6. 8. Said output means comprises as output buffer a local memory storing said transfer instruction to a new process,
The process control mechanism according to claim 6. 9. 7. The process control mechanism of claim 6 wherein said input means further comprises message buffer means for storing a plurality of commands from said plurality of central processors. 10. Further included is logic unit means coupled to the control means and the process table means for changing process state designations in the process table means as various processes change from a running state to a waiting state or a runnable state. The process control mechanism according to claim 6. 11. Further comprising priority calculation means coupled to the process table means and the control means for changing the priority of various process designations in the process table means when a new process is scheduled to be executed by the processing system. The process control mechanism according to claim 6. 12. 7. The process control mechanism according to claim 6, wherein said event table means includes a linked list of all events assigned to a particular process. 13. 7. A process control mechanism according to claim 6 wherein said event table means includes concatenation table means for storing a list of all processes that have requested to acquire each particular event. 14. 7. Process control according to claim 6, wherein said event table means comprises concatenated table means for storing a list of all processes waiting for each assigned event to have occurred. mechanism.
JP61505255A 1985-10-15 1986-09-26 A special purpose processor and process control mechanism for offloading many operating system functions in large data processing systems. Expired - Fee Related JP2686438B2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US78766885A 1985-10-15 1985-10-15
US787,668 1985-10-15
US787,781 1985-10-15
US787,669 1985-10-15

Publications (2)

Publication Number Publication Date
JPS63501987A JPS63501987A (en) 1988-08-04
JP2686438B2 true JP2686438B2 (en) 1997-12-08

Family

ID=25142217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61505255A Expired - Fee Related JP2686438B2 (en) 1985-10-15 1986-09-26 A special purpose processor and process control mechanism for offloading many operating system functions in large data processing systems.

Country Status (1)

Country Link
JP (1) JP2686438B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591358B2 (en) * 2001-01-26 2003-07-08 Syed Kamal H. Jaffrey Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU

Also Published As

Publication number Publication date
JPS63501987A (en) 1988-08-04

Similar Documents

Publication Publication Date Title
US4779194A (en) Event allocation mechanism for a large data processing system
US4796178A (en) Special purpose processor for off-loading many operating system functions in a large data processing system
US5010482A (en) Multi-event mechanism for queuing happened events for a large data processing system
US10545789B2 (en) Task scheduling for highly concurrent analytical and transaction workloads
US7689996B2 (en) Method to distribute programs using remote Java objects
US8180973B1 (en) Servicing interrupts and scheduling code thread execution in a multi-CPU network file server
JP4213582B2 (en) Computer multitasking via virtual threads
CN1043932C (en) Multi-tasking low-power controller
US6665699B1 (en) Method and data processing system providing processor affinity dispatching
EP0352490A2 (en) A technique for parallel synchronization
US20050125793A1 (en) Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
CN103999051A (en) Policies for shader resource allocation in a shader core
US20060015876A1 (en) Light weight context switching technique
KR100678930B1 (en) Real time control system for digital signal processor
EP0362903B1 (en) A special purpose processor for off-loading many operating system functions in a large data processing system
Manner Hardware task/processor scheduling in a polyprocessor environment
JP2686438B2 (en) A special purpose processor and process control mechanism for offloading many operating system functions in large data processing systems.
WO2018219440A1 (en) System and method for dynamic determination of a number of parallel threads for a request
JPH11249917A (en) Parallel computers, their batch processing method, and storage medium
Gharu Operating system
JPS62221041A (en) Dispatch controller in virtual computer system
CN118349342A (en) Task processing method, device and readable storage medium
JPH0340169A (en) Multiple processor system and method of controlling plurality of processor
Yoo et al. Rawls Scheduler: load considered proportional share scheduling for high performance multimedia systems
WO1992003784A1 (en) Scheduling method for a multiprocessing operating system

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees