JPS58501559A - マイクロ命令タスキングを採用するパイプラインされマイクロプログラムされたディジタルデ−タ処理装置 - Google Patents

マイクロ命令タスキングを採用するパイプラインされマイクロプログラムされたディジタルデ−タ処理装置

Info

Publication number
JPS58501559A
JPS58501559A JP50310981A JP50310981A JPS58501559A JP S58501559 A JPS58501559 A JP S58501559A JP 50310981 A JP50310981 A JP 50310981A JP 50310981 A JP50310981 A JP 50310981A JP S58501559 A JPS58501559 A JP S58501559A
Authority
JP
Japan
Prior art keywords
task
microinstruction
tasks
execution
pipelined
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.)
Pending
Application number
JP50310981A
Other languages
English (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 バロ−ス・コ−ポレ−ション
Priority claimed from PCT/GB1981/000210 external-priority patent/WO1983001317A1/en
Publication of JPS58501559A publication Critical patent/JPS58501559A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 マイクロ命令タスキングを採用するパイプラインされマイクロプログラムされた ディジタルデータ処理装置導入 この3発明は、マイクロプログラムされた電子ディジタルコンピュータにおいて 、データ処理動作を実行するための改良された手段および方法に関する。特に、 この発明は、タスクがマイクロ命令レベルで与えられるような方法で実行を制御 しかつマイクロ命令の順序付けを行なうための改良された手段および方法に関す る。
発明の背景 コンピュータ設計およびコンピュータプログラミングにお−いてより大きな柔軟 性を許容していた特定の構造上の概念は、マイクロ命令の概念であった。初めに 、マイクロ命令は、マクロ命令フォーマット内に課用された制御ピットの単なる 組として考えられていた。そのような制御ピットは、たとえば、乗算命令あるい はシフト命令などの実行の間に修理測度を与えるために採用されていた。徐々に 、マイクロプログラミングの概念が拡張されるにつれ、マクロ命令は、2つのオ ペランドの加算のような実行されるべき特定のルーチンを特定した。マクロ命令 の実行は、その後、マイクロ命令の一連の実行を通して達成され、その実行のし た。複数のマクロ命令はマイクロ命令の有限の岨によって実施され得るけれども 、興なりたマクロ命令を実行するとき特定のシーケンスでアドレスされるために これらの同一のマイクロ命令は独立した記憶処理に記憶され得ることは明らかで あった。特定の動作を実行するためにマイクロ命令の様々なシーケンスが組織立 てられかつ任意のメモリ内に独立して記憶され待るということがさらに認識され ていた。このように、非常に多くのルーチンを実行するために非常に多くのマイ クロ命令のシーケンスを作ることができていた。
マイクロ命令あるいはマイクロプログラムの概念は、その後、プログラマからマ スクされているあるいは■されているサブ命令セットを与えるものになり、この ようにして、プログラマによって呼出されるべき個々の特別のステップの数を最 小化することにより特定のプログラムの1込を単純化した。ざらに、マイクロプ ログラミングの概念は、個々の機能がハードワイヤード回路において実施される ことを要求することなしにコンピュータユーザに対して非常に多種鎖のルーチン を与えることができる、より経済的なコンピュータシステムをコンピュータ設計 者が設計することを可能にする。
マイクロプログラミングは、このようにして、ディジタルコンピュータシステム の制御機能を、ワードベースで組織され、かつ固定したあるいはダイナミックに 変更可能な制御メモリに記憶される制御信号のシーケンスとして設計しかつ実施 するための技術として広く見られ得る。マイクロプログラムされたディジタルコ ンピュータの設計に対するいくつかの知られたアブローヂの詳細な例は、197 5年5月27日にファーガソン(F erguson )他に発行されたアメ、 リカ合衆国特許番号第3.886.523号、1979年5月15日GC+−7 7(Keefer )およびキム(K1■)に発行されたアメリカ合衆国特許番 号票4,155゜120号、1980年1月1日にフイーザ(F eeser  )およびゲルホルト(Gerh、old)に発行されたアメリカ合衆国特許番号 票4.181,935号、1977年7月26日にキム(K t−)に発行され たアメリカ合衆国特許番号票4゜038.643号、ニス・ニス・ヒューソン( S、S、 Husson )による書籍「マイクロプログラミング:理論と実際  (Microproorammir+o : Pr1n01pleB and  PraCti(iels) J、プレンティス−ホール会社(Prentlc e −)−1all 、l nc。
)(1970)、アルグラソーラ< A rgrausala )他による書籍 「マイクロプログラミングの基礎(Foundations 。
f M icroprograwalno ) J 、アカデミツクプレス会社 (Acadeslc p−ress、l nc、 ) (1976) 、論文r マイクロプログラミングー内部コンピュータ制御の他の展望(Micropro grasslng −Another Look at l nternal  Computer Control) J 、エム・ジエイ・フリン(M、J、 Flynn)、アイ・イー・イー・イー−Proc 、 、 Vol、 63゜ No、11.1975年11月、pp、1554−1567、および、論文「マ イクロプログラミング:最近の開発の教本および概II (Mlcroproo rassing : A Tutorial and3urvey of Re cent [)evelope+ents ) J 、アイ豐イーーイー・イー ・コンピュータにおける伝達(T ransactlonson Co5put ers) 、 Vol、 C−29,No 、 1 、1980年1月の中に見 出すことができる。
近年、マイクロプログラミングの概念は、たとえば、論文「パイプライン化され たプロセッサのマイクロプログラミング(The M icroprogras ming of P 1pellned p r。
cessors ) J 、ピーφエムーml−ジ(P、 M、 KO19e)  。
コンピュータアーキテクチャにおける第4回恒例シンポジウム (4th An nua+ Symposium On Computer Architect ure )、 1977年3月、pp、63−69、および、論文「効串的なマ ルチタスキングに方向付けられたパイブライン アーキテクチv (A Pip eline Archltecture 0rientedT01TardB  Efficient Multltasking ) J 、Iエフ−of二( F、 Rosanl ) 、 :x−oミクロ(E uroslcro)、19 76年10月、VOI、2.No 、4.ノースーホランド バブリジング カ ンパニー、アムステルダム(North−)1o11and Publishi ng Co 、 、 Amsterdam)の中に記載されているようなパイプ ライン化されたアーキテクチャに関連した使用に拡張されている。
上記参考文献の内容および教示はここに組入れられているとみなされるべきであ る。
及! この発明の重要な特徴は、マイクロプログラムされたコンピュータシステムにお いてマイクロ命令レベルでのパイプラインされたマルチ処理を提供することによ りマイクロプログ・ラミングの利点をざらに拡張することである。
この発明の他の特徴は、マイクロ命令レベルでのマルチ処理およびマルチプログ ラミングの両方の利点が取入れられるのを可能にするような方法でパイプライン 化およびマイクロ命令タスキングを採用するマイクロプログラムされたデータ処 理システムを提供することである。
この発明のざらに他の特徴は、マイクロ命令タスキングから抽出可能な能力およ び利点をさらに高めるようなマイクロ命令タスキングおよびパイプラインされた マルチ処理に関連したダイナミックな資源割当てを提供するマイクロプログラム されたデータ処理システムを提供することである。
発明の好ましい実施例においては、3つのダイナミックに選択可能なタスクマイ クロ命令の実行を同時に与える間に処理しかつ資源を16までの活動化されたタ スクにダイナミックに割当てる能力を有する3ステージのパイプライン化された アーキテクチャがマイクロプログラムされたデータ処理装置に与えられており、 各タスクは1以上のタスクマイクロ命令の実行の結果として実行される。好まし い実施例においては、3ステージのパイプライン化されたアーキテクチャは、互 いに120’位相を興にして動作しかつ同一の物理的ハードウェアを共有してい る3つの独立した処理装置を事実上与えるように実施される。各処理装置は、タ スクマイクロ命令が属する特定のタスクを考aすることなしに任意の所望の混合 した順位でタスクマイクロ命令を実行することが可能であり、それによって、各 処M装置にマルチプログラミングの能力が与えられる。好ましい実施例において は、このマルチプログラミングの能力を有する事実上3つの独立した処理装置が あるけれども、マルチプログラミングの付加された能力は有利に達成される。
タスクコン。トローラは、活動化されたタスクに対して要求されるようにダイナ ミックに資源を割当てるのと同じように、実行されるべきタスクを処理しダイナ ミックに選択するために働く。
この発明の他の目的、特徴、利点および使用はもちろんのことこの発明の特有の 性質は、添付図面を参照して行なう以下の詳細な説明から明らかとなろう。
図面の簡単な説明 第1図は、この発明が組入れられてもよい全体的なコンピュータシステムのブロ ック図である。
第2図は、第1図に示されたMLP処着装着装置ロック図である。
第3図は、第2図の処1!1NIII P Eのブロック図である。
第4図は、好ましい実施例においてタスクが処理される基本方法を図式的に示す 。
第5図は、計算(A+B>−、< 1 十〇)を実行することにおいていかにし て好ましい実施例が資源を活動化されたタスクにダイナミックに割当てるかの一 例を示す。
111図は、好ましい実施例においていかにしてタスクマイクロプログラミング が与えられるかの一例を示す。
第7図は、好ましい実施例に与えられた3ステージのパイプラインアーキテクチ ャを用いていかにしてタスクが実行されるかを示す。
第8図は、3つの計算<A十B)+ (C+D) −H;(A+B)−E−1: および(C+D)−E−Jを同時に実行するためにいかにして好ましい実施例が タスキングマイクロプログラミングおよびマルチ処理を採用するかの一例を示す 。
第9図は、第31!lのプログラムコントローラPEの好ましい実施例を示すブ ロック図である。
第10図は、第3図のタスクコントローラTCの好ましい実施例を示すブロック 図である。
第11図は、第3図のストアドロシックコントローラSLCの好ましい実施例を 示すブロック図である。
第12図は、第11図の補助制御メモリACMの好ましい実施例を示すブロック 図である。
第13図は、第11図のシーケンス制御メモリSCMの好ましい実施例を示すブ ロック図である。
第14図は、第3図の主データバスDPの好ましい実施例を示すブロック図であ る。
第15図は、第3図のアドレスおよび状態ユニットAsUの好ましい実施例を示 すブロック図である。
第1.6図は、第15図のASU変更変更行列ASU−CQの動作を示すフロー チャートである。
第17図は、第2図のメモリシステムM Sの好ましい実施例を示すブロック図 である。
二11鉦匙1 11土1上LL 好ましい実施例においては、この発明は第1図に示したような1以上のMLPシ ンプレックスシステムを備える全体的なシステムに組入れられてもよい。各シン プレックスシステムは、典型的に、MLPプロセッサ、メンテナンスプロセッサ および周辺l1il!Pが組合わされているI10サブシステムを備える。これ らのシンプレックスシステムは、交換局EXおよびグローバルメモリにより連結 されており、グローバルメモリはシステムソフトウェアがシンプレックスシステ ム聞の結合度を決定するのを可能にする。
第1図のI10サブシステムは、ユーザ入力/出力装置およびプログラムの完全 なセットおよびデータセグメントに対する記憶装置を含む。グローバルメモリG Mは、プロセッサの連結を許容しかつプログラムおよび多重プロセッサにより分 担されるデータセグメントを含む、各MLPプロセッサは、それらのプログラム およびMLPプロセッサ荊表昭58−!’101559 (5)で処理されるデ ータセグメントを含むローカルメモリサブシステムを有する。
好ましい実施例において、MLPプロセッサは、高レベルの仮、恕命令セットを 実施する一積化されたハードウェアおよびファームウェアである。このセットの 命令は、低レベルのMLPハードウェアで実行するファームウェア命令のセット により個々にプログラムされる。この発明の重要な特徴は、多重高レベル命令に 対応するファームウェア命令の実行の間で高度の並行処理を1成するためにML Pプロセッサ喰ハードウェア(マイクロ命令)レベルでのマルチプログラミング およびマルチ処理技術を用いることである。
この発明によれば、MLPプロセッサム、与えられた高レベルの仮想命令のシー ケンスを実行されるべきタスクの組と考える。これらのタスクの各々は低レベル プロセラゝすでの1以上のマイクロ命令を実行することにより実行され得るとい うことが理解されるであろう、これらのタスクのうちのいくつかは、先行するタ スクによって準備されたデータを使用する必要があろう。しかしながら、典型的 なデータ処理の応用に対しては、タスクの実質の数はそのような依存物を有して いない。このように、タスクのいくつかあるいはすべての実行はオーバラップさ れることができる。
このオーバラップに対する可能性は、この発明のMLPプロセッサによって特定 の利点に使用され、そのMLPプロセッサはハードウェア(マイクロ命令)レベ ルでのマルチプログラミングおよびマルチ処理の両者を提供する。
MLPプロセッサ 2 ) ここで考慮されている好ましい実施例においては、MLPプロセッサはIF!2 図に示したようなハードウェアモジュールに分割される。処Ill!素PEは、 プロセッサマイクロコードに対する記憶装置および基礎データバスの両者を含む 。メモリサブシステムMSは、プロセッサのローカルメモリおよびグローバルメ モリGM(第1図)に対するプロセッサのインターフェイスの両者を含む。MS はまた、好ましくは、ローカルメモリの帯域および平均アクセスタイムを改善す るためのキャッシュモジュールを含む。上位依存ポートHDPは、プロセッサの インターフェイスをl10(第1図)に与える。HDPは、PEからのマイクロ 命令によって開始されたタスクおよびHDPからのリクエストにより制御される 。好ましい実施例においては、このHDPタスクは、他のプロセッサタスクと同 時に実行されてもよい多重タスクのうちの1つである。ホストコンソールポート HCPは、プロセッサのメンテナンスおよび制御がそれを通して実行されるとこ ろのメンテナンスプロセッサMP(第1図)のシステムポートな有するプロセッ サインターフェイスである。HOPは、初期設定おまび保守に対するプロセッサ 状態のすべての構成要素に対する読み書きアクセスを有する。
第3図に示すように、処理要素PEの好ましい実施例は、5つの主な構成要素を 備える。
1、 プログラムコードワードを演算子およびパラメータに分解し、かつ各演算 子に応答して各タスクに対しての資源要求に沿って実行されるべき1以上のタス クを決定するプログラムコントローラPC。
2、 タスクを扱いかつタスクが実行されるシーケンスを制御するタスクコント ローラTO。
3、 タスクに対する初期データ項目を、これらのデータ項目で論理的および算 術的動作を行なうための操作設備とともに記憶する主データバスDP。
4、 アドレスをそれらの操作に対する設備とともに記憶するための記憶装置を 含むアドレスおよび状態ユニットASL1.ASUはまた、高レベルアーキテク チャのほとんどの状態を記憶する。
5、 タスクを実行するのに用いられたマイクロコードを記憶するストアドロシ ックコントローラSLC,TO。
DPおよびASLIに応答して、SLCは、PEの種々の構成要素に対して、T Cによってそこに与えられたタスクを実行するために適当なシーケンスでマイク ロ命令を発゛する。
1つのタスクは、その実行にとって1以上のマイクロ命令を必要とするであろう 。
したがって、演算子レベルデータ、メモリアドレスおよび状態はDPおよびAS Uに記憶され、かつ各タスク奪実行するのに必要とされるデータおよび動作をこ れらのユニットに対して選択させるマイクロ命令をSLCは発するとに通じかつ マイクロ命令の順序付けに影響を与える選択された条件が与えられ、それによっ てPEにおける基本フィードバックループが完成される。
高度の実行を達成するために、好ましい実施例は以下のようなPE動作の実行に おける同時発生のいくつかのレベルを採用する。
i、pcおよびTO動作(取出、PCによる演算子のタスクへの変換およびTO によるタスクの処理および活動化)は、SLC,DPI3よびASUによるマイ クロ命令の実行と同時である。
2、SLC,DPおよびASUは互いに同時に動作し、したがって各クロックサ イクル中マイクロ命令は新しいマイクロ命令および状態がSLCによって発生さ れている閣DPおよびASUによりて実行される。
3、SLC,DPJ5J:tFAsLlは、多重ステージハイプラインアーキテ クチャで実施され、そのアーキテクチャは多重タスクがマルチプログラミングお よびマルチプロセッシング技術の両者を利用するような方法で同時に実行される のを許容する。よく知られているように、マルチプロによってインターリーブさ れ、それにより1つのプログラムが待機している(すなわち実行する準備ができ ていない)間の時間間隔は他のプログラムの部分を実行するのに使用されるとい う技術である。またよく知られているように、マルチ処理は、多重プロセッサが 1g、上のプログラムを実行するのに使用される技術である。
処W PEの基 動 (3 MLPプロセッサの特別の実施例を考える前に、初めにいくつかの基本的な動作 上の特徴を述べる。
之2301ユ1− 処理!!素PEにおけるタスクの発生は、プログラムコントローラPCおよびタ スクコントローラTOによって行なわれる。PCは、与えられた^レベル命令か ら抽出された生のワードのシーケンスを試験し、実行されるべき高レベル演算子 のシーケンスを決定しかつこれらの各演算子に対して、実行されるべき1以上の タスクを決定する。各タスクは、それの資源要求とともに、TCに進められる。
PCはまた、各演算子が与えられるであろう任意のパラメータをデコードし、か つこれらを主データバスDPに転送する。
TCは、タスクを活動的な混合に挿入するがあるいはちるかする。TOがタスク を挿入することができない理由は以下のことを含む。
1、 混合が充分であり(すなわち、活動中タスクの数におけるハードウェアが 限界に達しており)、この場合PCは最古活動中タスク(OAT)の終了を持た なければならない。
2、 タスクの要求を満たすための充分な自由なレジスタが存在せず、この場合 PCはレジスタを充分に自由にする他のタスクを持たなければならない。
3、(俵に述べる)タスクによって要求される1以上の変更待ち行列がロックさ れ、この場合PCはそれらのロックが解除されるまで持たなければならない。
PCはまた、外部阻止条件の検出に用いられかつメンテナンスプロセッサMP( 第1図)の援助で警報阻止条件の検出をも行なう。典型的には、PCが混合に挿 入する特別なタスクによってこれらの条件は扱われるであろう。
ちタスクおよび ち の処理 プロセッサ動作の圀、すべての活動中タスクは4つの状態のうちの1つにある。
(1)実行中(タスクは現在実行されている)、(2)待機中(タスクは成る条 件が満たされるまでは実行に対する準備ができていない)、<3)準備完了(タ スクは実行される準備ができている、すなわち、タスクは何の条件も持っていな い)あるいは(4)タスクの終了(EOT)(II了されるために持っているタ スク)。
タスクコントローラTCは、各タスクの状態のトラックをキープする。各タスク マイクロ命令の完了で、TCは、タスクの実行中の状態が続けられるべきかある いはタスクが他の状態(たとえば待機中あるいは(EOT)’)に立ち寄るかを 決定するのに用いる適当なタスク状態条件が与えられる。、第4図は、タスク状 態が好ましい実施例において処理される方法を図形的に示し、その実施例におい ては、たとえば、最大で16の活動中タスクおよび任意の1時期に実行される最 大で3つのタスクがあるであろう。
準 “ タスクの選択 各クロックサイクルに、タスクコントローラTCは、準備完了タスクの中から実 行されるべき1つのタスクマイクロ命令を選択する。この選択されたタスクマイ クロ命令は、新たに活動化されたタスクの第1のマイクロ命令であり、あるいは 、先に待機状態に入れられた先に活動化されたタスクの第2.第3等のマイクロ 命令である(たとえば、次のタスクマイクロ命令に対して要求されるデータのす べ□・てが必ずしもそのときに利用可能とは限らないからである)。
TOは、次のクロックサイクルで再び選択しないようにするため選択されたタス クに「実行中」のようなマークを付ける。これは、好ましい実施例においては、 各タスクマイクロ命令の実行は3つのクロックサイクルを必要とする3つのステ ージにおいて実行されやゆえになされる。
もし準備完了タスクがなければ(すなわち、すべての活動中タスクが特機中、実 行中あるいは(EOT)であるとイクロ命令を選択する。空白タスクマイクロ命 令は決して「実行中」とはマークされないので、必要があれば、次のクロックサ イクルにおいて選択されるであろう。空白タスクマイ、クロ命令は、たとえば、 単に「空白」動作のループである。
もし1以上の準備完了タスクがあれば、TCは、たとえば、その選択を単純な、 静的な、2レベル優先システムに従って行なう。高優先順位タスクおよび低優先 順位タスク間の区別は、命令フローのプログラマによって示されるであろう、F i5!じ優先順位のタスク間では、TOによる選択は任意である。
タスクの同 および イナミツクなレジスタ割当て検討している好ましい実施例 に対しては、従来のスタック志向性の演算子セットが仮定されてもよい。データ 処理システムにおいていかにして1以上のスタックが採用されているかという基 本的な理解は、たとえば、イー・エイ・ホーク(E、 A、 Hauck)およ びピー・エイ・テント(B。
A、 Dent )の論文[バロース 86500/7500スタック機構(1 3urroughs B 6500 / 7500 S tack Meoha nlss) J 、 A F T PS会報(AFIPS Conferanc e Proceedlnos> 、 1968 SJ CC,l) −245お よび「コンピュータ(Computer ) J 、 1977年5月、91. 14−52にIBける一連の論文、特に「スタック:) ンヒx −9:導入( Stack C,oaputers: An T*tr@d。
C會Ion ) J 、ディー・エム・パルマン(D、 M、 Bullan  )、pp、1a−2aおよびVスタックアーキデクチャの探求(Explori ng a 5tack Archltecture ) J 、 7−ル・ピー ・クブレイク(R,P、 Blake) 、 op、 30−39と題された論 文をも参照することにより得ることができる。これらの論文の内容および教示は ここに組入れられていると考えられるべきである。
バロース6800コンピュータシステムは、スタック志向性の演算子セットの使 用の一例である。そのようなシステムにおいては慣用的であるけれども、動作に 対して少なくとも1つのスタックがマイクロ命令間の連絡がスタック頂部を経由 して起こるような方法で与えられる。このii*な通信機構をざらに^めるため に、この発明は、付加的に重要ないくつかの「浮動」スタック頂部レジスタ対を 与える。動作はその後、演算子がその入力としてとるスタック項目およびタスク がその出力として作るスタック項目が、タスクを混合し始めるときタスクにダイ ナミックに割当てられるレジスタ対に記憶されるようにされる。各レジスタ対は 、組合わされた妥当性ビットを有しており、そのビットは対応するスタック項目 が「作られた」かどうかを示す。
もしタスクマイクロ命令が、それに対して未だに作られていないその入力スタッ ク項目の1つを「消費する」ことを要求するならば、タスクはハードウェアによ り持ち状態に入れられる。スタック項目が作られたときそれは準備完了状態に戻 、される。
タスクコントローラTO獄、仮想「スタックIAsイメージ」のトラックを保持 し、そしてそれはレジスタ対のリストで昂る。このリストは、スタック頂部形状 を示す。TCはまた、「自由なj (分割されていなし))レジスタ対のリスト を保持する。これらのリストは、タスクが開始されたときあるいは終了されたと きはいつでも最新のものにされる。
前記の一例として、計算(A+8)−(1+C)が以下のように割当てられたタ スクTI、T2.T3.T4.T5、TCおよびTIを用いて実行されることを 仮定する。
タスク −111− TI VALCA T2 VALCB T3 ADD : (A+8)−31 T4 0NE T5 VALCC TCADD:(1+C)−32 T7 5tJBTRACT:(81−32)この例に対しては、他のどんなタス クも活動的ではなく、スタック頂部リストは空であり、かつフリーレジスタリス トは現在割当てられていない8つのレジスタRO,R1゜R2,R3,R4,R 5,R6およびR7を備えて0るということもまた仮定されている。この例に対 する処syi素PEの初期状!l!は次のとおりである。
タスク翻合: 活動中タスクはな6s。
スタック リスト: レジスタは割当てられてし1な(1(空である) フリーレジスタリスト:RO,R1,R2,R3,R4゜R5,R6,R7 今、タスクTI (VALCA)が開始された場合を仮定する。タスク丁1は、 どんなスタック頂部レジスタh\らも入力を必要としないけれども、タスクT1 の出力Aに対しては1つのスタック頂部レジスタを必要とする。したがって、タ スクコントローラTCは、レジスタROを出力Aに割当てる。したがって、処理 要素PEの状態は次のようフリーレジスタリスト:R1,R2,R3,R4,R 5゜R6,R7 同様に、次のタスクT2(VALCB)は、入力に対してはどんなスタック頂部 レジスタをも必要としないが、タスクT2の出力Bに対しては1つのスタック頂 部レジスタを必要とづ゛る。したがって、タスクコントローラTOは、出力Bに 対してレジスタR1を割当てる。したがって、処理要素PEの状W!Aは、次の ようになる。
ム左ムL鉱二 T1およびT2 ゛2リーレジスタリスト:R2,R3,R4,R5,R6゜7 次のタスクT3 (ADD :51−A十B)は、入力として、(レジスタRO )中のタスクT1の出力Actjよび(レジスタB1中の)タスクT2の出力B を要求する。タスクT3もまI−、タスクT3の出力51−A+Bに対して1つ のスタック頂部レジスタを要求し、タスクT3に対してはタスクコントローラT OはレジスタR2を割当てる。今、PEの状態は次のようになる。
之2」乙l立」エ T1.T2およびT31ユノJb二RO,R1;111口り 二R2スタック リスト:R2 フリーレジスタリスト:R3,R4,R5,R6,B7次のタスクT4 (ON E)は、入力に対してはどんなスタック頂部レジスタも要求しないが、タスクT 4の「1」出力に対しては1つのスタック頂部レジスタを要求し、そしてタスク T4に対しではタスクコントローラTOはレジスタR3を割当てる。PEの状態 は今や次のようになる。
特表昭58−’J!5!i!1(8) 之ノシ[≦−T1.T2.T3およびT4皿1)J=二RO,R1;エユ10L 二R2フリーレジスタリスト:R4,R5,R6,B7次のタスクT5 (VA LCC)は、入力に対してはどんなスタック1lIl!11レジスタも要求しな いが、タスクT5の出力Cに対しては1つのスタック頂部レジスタを要求し、そ してタスクT5に対してはタスクコントローラTOはレジスタR4を割当てる。
このようにして、PEの状態は次のようになる。
L2り1」ニー T1.T2.T3.T4.?lよび5 L止とL二RO,R1二り匪り二R2 スタック リスト: R2,R3,R4フリーレジスタリスト:R5,R6,B 7次のタスクT6 (ADD:82−1+C)4;t、入力トシて、(レジスタ R3内の)タスクT4の出力「1」および(レジスタR4中の)タスクT5の出 力Cを要求する。タスクT6もまた、タスクT6の出力S2− <1+C)に対 して1つのスタック頂部レジスタを要求し、そしてタスクT6に対してはタスク コントローラTOはレジスタR4を割当てる。、PEの状態は次のようになる。
タスク混合: T1.T2.T3.T4.T5およびT6 二エとL二RO,R1;T3出カニR2■6人カニR3,R4:二i乱り二R5 この例に対する最終のタスクT7 (SUBTRACT :53−8l−82> は、入力として、(レジスタR3中の)タスクT3の出力Sl−(A+8)およ びレジスタR5中のタスクT6の出力S2− <1+C)を要求する。タスク丁 7もまた、この減算の結果を構成するタスクT7の入力83−81−82に対し て1つのスタック頂部レジスタを要求し、そしてタスクT7に対してはタスクコ ントローラTCはレジスタR6を割当てる。したがってこの例に対するPEの最 終状態は次のようになる。
欠λ夕1jニー T1.T2.T3.T4.T5゜T6およびT7 ■3人カニRO,R1:工」L旦しハニーR2■6人カニR3,R4:工」Σ遣 りなニーR5上記例の理解の助けのために、参照は第5図に向けられ、それは典 型的な計算(A+8)−(1+C)の実行に必要とする前述した活動を要約して いる。タスクT1.T2゜T4およびT5は、相互依存性がなく、したがってそ れらの実行はオーバラップされ得るということに注目すべきである。タスクT3 およびT6の実行もまたオーバラップされ得るし、一方、タスクT7の実行はタ スクT3およびT6によって入力がつくられるまでその入力を持たなければなら ない。
1区りffi 各タスクが完了するに従い、タスクコントローラTCは、タスクをタスクの終了 EOTが達成されたとしてマークすることによりこの発生を記録する。
最古活動中タスク(OAT>が(EOT)に達し、かつその変更持ち行列の記入 項目が完了したとき、それは「終了した」ことになる。タスクを終了するために 、Tcはそれを活動中でないとしてマークしそして最古活動中タスクの指定(O AT)をそれに続くものに進める。この最古の活動中タスクの終了は、プログラ ムコントローラPCがもしタスクの全くの混合のために持ち状態であったならば 他のタスクを挿入するためにそれを自由にする。
「一時のもの」に対して割当てられたレジスタスペースは、タスクがrEOTJ に達したときフリーリストに戻される。しかしながら、「入力」に対するレジス タスペースは、タスクが実際に終了するまではフリーリストに戻されない(この 制限は、過渡的なエラー状態の場合タスクを再スタートさせる能力を改善する。
)。「出力Jに対して割当てられたレジスタスペースは、フリーリストには直接 1的には戻されない。出力レジスタは、スタック頂部イメージに加えられ、かつ その後のタスクにより入力として用いられる。
ごとの 履タスク 典型的に、幽レベル命令のいくつかは低レベルプロセッサで実行されるために多 ■タスクに都合よく分割され得る。
このようにして、付加的な同時発生が与えられ、かつシステムの全体的な実行が それによって改善される。
への の スタックの頂部への変更の他に、演算子がもたらすことのできる最高の他の効果 は、メインメ七りへのような状態へ変更である。これらの状態変更は、2つの変 更持ち行列すなわ、ちメモリ変更持ち行列およびアドレスおよび状態ユニット変 更持ち行列によって同期化される。これらの変更持ち行列は(これは後でより詳 細に説明するが)、タスクの他の順序付けられていない実行に3種類の順序を課 す。
第1に、2つのタスクT1t3よびT3がありT1が論理的にT3に対して先立 っている場合を考える。もしT1が打切られるべきであるならば(たとえば、T 1が加算演算子でありかつ指数オーバフロー状態を検出できるならば)、T3に よって企てられたどんな状態変更も生ずることが許容されるべきではない。
第2に、T1およびT3の両者はメモリ中の同一場所に書込むべきであるがいず れのタスクも打切られない場合“・を考える。この場合、最終結果は(T3の実 行の後)、T3によって書込まれた値はそのメモリ場所になければならないとい うものでなければならない。
第3に、タスクT1.T2.T3およびT4を(その論理順位で)考える。前の ように、T1およびT3の両者が同一の記憶場所に書込むことを仮定する。また 、T2およびT4の両者がその同一場所がら読出すことも仮定する。
そのような場合において、タスクの実行の実際の順位を考えることなしに、T2 はT1によって書込まれた値を得なければならないし、かつT4はT3によって 書込麟れた値を得なければならない。
上記の3つのケースのすべてにおいて、要求される同期化はl!受持ち行列の使 用により達成される。これらの変更持ち行列の各々は、典型的に、先入れ先出し に配置された少数の「記入項目」に対して記憶装置を与える。各記入項目は、単 一状態変更で情報を保持する。記入項目は、システムの状態に変更をもたらすた めタスクによって持ち行列に挿入される。記入項目は、変更が実際になされるに 従いハードウェアにより除去される。変更は、変更を発生したタスクが最古活動 中タスク(OAT>になったときにのみ実際に状態にされる。
状態への変更が論理的タスクシーケンスと同一の順序でなされることを補償する ために、記入項目は、一時に変更持ち行列1タスクにおかれ、そしてそれは各持 ち行列に「ロック」を与えることにより実施される。プロゲラムコ −ントロー ラPCは、開始のときに各タスクに必要なロックを割当てる。ロックは、タスク によりそれがその記入項目のすべてを持ち行列に挿入したとき除去される。もち ろん、プログラムコントローラPCは、先のタスクが他のタスクにロックを割当 てる前にロックを解除するまで持たなければならない。
変更持ち行列への各記入項目は、典型的には、(1)状態のある部分に対する新 しい値、(2)状態のその部分のアドレスおよび(3)これらの構成!!素の各 々に対する妥当性ピットを含む。持ち行列中の記入項目は、それらの妥当性ピッ トにより示されているので、不完全であろう。記入項目身持ち行列に挿入するタ スクは、いずれかの順序で、アドレスおよび値を別々に供給する。
タスクが状態の部分を読出そうとするとき、適当な変更持ち行列は次のような方 法でハードウェアによりチェックされる。
1、 もし変更持ち行列が先行するタスクによりロックされるとき、読出タスク はそれがロック解除されるまで持ち状態に入れられる。もしそれが読出タスクあ るいは引き続くタスクによりロックされるならば、続出タスクは次のステップを 続けるであろう。
2、 もし変更持ち行列が不当アドレスを有する先行のタスクに属する何らかの 記入項目を含んでいるならば、−出タスクはそれらが妥当にされるまで持ち状態 に入れられる。読出タスクあるいはモの引き続くタスクに属する記入項目は無視 される。
3、 もし変更持ち行列が、読出タスクが読出そうとするアドレスに匹敵する妥 当アドレスを有する先行するタスクに属する何らかの記入項目を有しているなら ば、この条件に適合する最新に入力された記入項目はさらにチェックされる。も しこの記入項目が妥当な値の構成要素を有しているならば、この値は所望の値と して読出タスクに戻される。もしこの記入項目が不当な値の構成要素を有してい るならば、読出タスクはそれが妥当にされるまで持ち状態に入れられる。
4、f もし前記条件のいずれもが保持されなければ、タスクは状態を直接に跣 出す。
タスクの中断および「バックアップ 通常の環境の下においては、プログラムコントローラPCおよびタスクコントロ ーラTCは、資源が許容する限りタスク7混合」kあるタスクを保持しようとす るであろう。
エラー条件は桑型的にはダイナミックベースではたまにしか起こらないので、P CおよびゴーCは1ラ一条件が起こらないということを仮定し、かつタスクを初 期化するのを続ける。それゆえ、もし1理的に先行しているタスクがその引き続 くタスクのFi!蛤の後にエラー条件を検出するならばタスクは中断されること が必競であるということは起こ□り得る。
状態への変更は、変更待ち行列により、最古活動中タスク<0AT)により開始 された変更のみが実際王宮に状態にされているように制御されるので、不所望の タスクを中断することは相対的に容易である。必要とするすべてのことは、それ らを混合から除去することであり、変更持ち行列(もしあれば)からそれらの記 入項目を減じ、かつエラーが検出された点までレジスタ割当てを「バックアップ する」ことである。
之ノー乙幻遣」L 先に指摘したように、ここに述べられている発明の好ましい実施例の重要な特徴 は、多重ステージのパイプラインされたアーキテクチャの採用にあり、それによ りマイクロ命令レベルでのマルチプログラミングおよび多重処理の両者を利用す ることができるような方法で多重処理が同時に実行され得る。この発明によるこ れらの特徴を達成するための好ましい方法を次に述べる。
この発明の好ましい実施例において、第3図の処理要素PEの実施は、たとえば 、最大で16のタスクが同時に活動的になるようなものに選ばれている。タスク コントローラTCが資源を各活動化されたタスクに対して割当てる好ましい実施 例は、第5図に要約された負型的な計算(A +8)−(1+C)に関連して既 に説明されている。また第4図に関連して、各活動化されたタスクが存在するこ 左のできる4つの可能な状態−準備完了、持ち中、実行中およびタスクの終了( E 01”)−のうちの1つに関していかにして活動化されたタスクが処11さ れるかは既に述べた。
さて、処理要素PEの好ましい実施例がいかにして、マイクロ命令レベルでのマ ルチプログラミングおよび多重処理の両者の利点を達成するような方法で多重の 活動化されたタスクの同時実行を与えるかを述べる。これに関する第1のステッ プは、各タスクの実行をストアドロシックコントローラSLCからアクセスされ た特定の1g、上のタスクマイクロ命令の連続的な実行のlli!ilとして提 供することである。たとえば、タスクT、は、TllllTl12および’Te l@と名付けられた3つのタスクマイクロ命令を実行することにより達成される 。タスク処理にグする先の説明から明らかであろうけれども(たとえば第4閃参 照)、タスクマイクロ命令は各々が対応している特定のタスクを考慮することな しに任意の順序で実行される。したがって、単一のプロセッサはマイクロ命令レ ベルでのマルチプログラミングを提供することができ、タスクコントローラTC るいは次のタスクマイクロ命令を許容する条件を1つのタスクが持っている間に 、プロセッサは前進しかつ準備できている他のタスクマイクロ命令を実行するこ とができる。
たとえば、3つのタスクT1.TlおよびT、が活動中である場合を仮定する。
ここで、T1は、T’+Il+およびTl1tf!Iで待機を要求する2マイク ロ命令タスクTIII*T、−2である。Tlは、Tz−1およびTl1tf! Iで特機を要求する3マイクロ命令タスクTz l + lT2’l 2 1T zl*である。そして、T8は、準備完了状態にされる前にタスクT、の完了を 要求する1マイクロ命令タスクT、−である。したがって、単一のプロセッサけ 、たとえば、第6図に示したようなTl I I IT211 1T+ I z  +Tel+ 、Tzlz Jamsのシーケンスでこれらのタスクマイクロ命 令の実行を提供することにより、マルチプログラミングの方法で実行を提供する ことができる。好ましくはくそして第4図に「実行中コの円で示したように)、 特定のタスクマイクロ命令が実行されているとき、このタスクを継続し、かつ他 のタスクもまた準備完了マイクロ命令を有しているとしても、もし準備完了なら ば、次のマイクロ命令を実行することを許容することは正常に好ましい。
いかにして好ましい実施例がマルチプログラミングを利用するような方法で単一 のプロセッサを用いてタスクマイクロ命令の実行を提供するかを述べたので、次 に、この発明に従つ工特に有利な方法でいかにしてマルチ処理が付加的に与えら れるかを述べる。基本的には、この付加的なマルチ処理能力は、好ましい実施例 において、120°位相を興にして動作しておりかつ同一の物理的ハードウェア を共有している3つの独立したプロセッサを事実上与えるために実施される3ス テージバイブラインアーキテクチ妙の採用により達成される。この3プロセツサ の実施例を利用するために、好ましい実施例は、興なったタスクからのタスクマ イクロ命令が混合した方法で実行されるのを許容することにより(前述したよう な)マルチプログラミングを提供するだけ°でなぐ、好ましい実施例は、準備完 了タスクマイクロ命令が3つのプロセッサのうちの任意の1つにより実行のため に選択されることを許容することによりマルチ処理をもまた有利に提供する。
好ましい実施例は、この結合されたタスクマイクロ命令のマルチプログラミング およびマルチ処理を以下に述べる性質(1)および(2)を有する実施を提供す ることにより達成する。
(1,) 第3図のSLC,DPおよびASLIの実施例に対して準備がなされ 、その結果各タスクマイクロ命令の実行は3つの連続的なりロック期間を要求す る3つのステージにおいて実行される。典型的な3ステ一ジ動作は次のようなも のである。タスクマイクロ命令の第1のクロック期間(第1のステージ)におい て、読出動作は、マイクロ命令の実行Φ期間中用いられる適当なオペランドデー タを記憶@置から読出しおよび次のマイクロ命令アドレスを決定するのに用いる 条件選択データの読出をも含む選択されたマイクロ命令の実行の準備のために行 なわれる。さらに、この第1のクロック期間中、マイクロ命令の適当なフィール ドが第2のクロック期間中データバス機能を制御する1のに用いるコントロール 信号を抽出するのに用いられる。タスクマイクロ命令の第2のクロック期間(第 2のステージ)中、選択されたマイクロ命令が実行される期間に計算動作が行な われかつ選択された条件が次のマイクロ命令データを作るためにテストされる。
タスクマイクロ命令の第3のりOツク期間(第3のステージ)中、マイクロ命令 実行の次のマイクロ命令データがタスクコントローラにより次のりロック期間中 に実行されるべきマイクロ命令を選択するのに使用される。
(2) 前記(1)1に述べた特徴に加えて、好ましい実施例は、第1のタスク マイクロ命令に対する読出動作、第2のタスクマイクロ命令に対する計算動作お よび第3のタスクマイクロ命令に対する書込動作の各クロック期間中同時実行を も与え、それによって、第7図においてタスクマイクロ命令Tx l I IT Y l +およびT211に対して示したような互いに120’位相を興にして 動作する3つの興なったプロセッサにより同時に実行される3つの異なったタス クマイクロ命令の効果を達成することができる。
(上記(1)において述べたような)3つの連続的なりロック期間における各タ スクマイクロ命令に対してそれぞれ生じている3ステージの読出、計算および書 込動作は、それぞれ、第7図において文字R,CおよびWで示されている。
単一のプロセッサに対して第6図において示されたマルチプログラミング能力は 、好ましい実施例において、タスクマイクロ命令が両能力を利用する特別に急速 な方法で実行されることを許容するために、第7図に示した3プロセツサマルチ 処理能力と関連して利用される。たとえば、第8図は、たとえばタスクコントロ ーラTOによって以下のように割当てられた10のタスクTAがらTJを用いる 3つの計算(A+B)+ (C+D)−H; (A+8)−E−■および(C+ D)−E−Jの実行を示す。
i21 簾X1− TA= TAmlw TAm2VALCATB=TBmIWTBm2VALCB Tc=TcmIWTcm2VALCC TD=TDm1WTDm2vALCD ’rE= TEmlw TErn2VALCETF= TFm ADD (A  + B) = FTG−TGmADD(c+D)=G TH= THm 5UBTRACT F −G = HT工= T工m 5UB TRACT F −E−工TJ= TJm 5UBTRACT G −E =  J第8図に示した例に対しては[オペランドフェッチ」タスクTA T!の各々 はその−に少なくとも3クロック−ち期It(上記においてrWJで示されてい る)を有する2つのタスクマイクロ命令を必要とするということを仮定している 。rADDJ 13よび「SυBTRACTJタスクTrTyの各々は1クロツ ク期閣(上記および第8図において下つき文字を有していない「■」で示されて いる)のにおいて、rNo−Og)Jマイクロ命令はいかなる準−完了タスクマ イクロ命令もないときに与えられるということも注意されたい。
旺JL!jJLIL この発明の好ましい実施例の構成および配獣は、特定の好ましい実施例に関して より詳細に検討する。
70 ラムコントローラPC:(3t5よび 9 )WI3“図に関して先に述 べたように、プログラムコントローラPCはメモリシステムMS<第2図)がら プログラムコードワードをアクセスし、それらを演算子に分解し、かつ各タスク に対する資源要求に従って実行されるべき1以上のタスクを決定するために各演 算子をデコードする。ストアドロシックコントローラSLCに対する単一のマイ クロ命令入力アドレスを含むこのデコードされた情報は、タスクが各演算子を実 行するために割当てられかつ開始される−ためにタスクコントローラTCに送ら れる。同時に、演算子パラメータは、もしあれば、主データバスDPに直接に送 られる。タスクコントローラTOはタスクの実際の実行を処理しかつ多重タスク を統合するので、PCはコードの流れにおいてスキャンするのに自由であり、し たがってプロセッサ動作においてその動作の影響を最小にする。
好ましい実施例においては、プログラムコントローラPCは以下の主要な機能を 与える。
1、 プログラム詔バッファリング 2、 プログラム索引*引付け 3、 プログラム索引付けに対するバックアップの保持4、 演算子デコーディ ングおよびパラメータハンドリング(演算子デコーダOD)。
5. プログラムコントローラおよびタスクコントローフHOLD/Go制御。
6.5擬似命令コードの発生 7、外部の中断を扱いかつエラー条件を警報するためのルーチンの開始 PCの好ましい実施例において前述した機能が与えられる方法は、第9図に対す る特別な参照とともにここに記載する。
プロ ラム のバッファリング プログラムコントローラPCは、プログラム語のハンドリングのために2つのプ ログラムバッファレジスタPおよびQt−提供する。互いに関連しているものは 「フラグに占有されたレジスタJ PROFおよびQROFである。PおよびQ レジスタは索引付けられかつ適当な演算子およびパラメータ音節は選択され得る 。「次の」プログラム顛は、Pからデコードするのと同時にQに先取りされる。
プロ ラム の索1 け PCは、プログラム語索引レジスタPWIおよびプログラム音節索引レジスタP SIを有し、それらはともにプログラムカウンタとして機能する。たとえば、P SIは、音節セレクタSSを用い、演算子デコーダODによるデコーディングの ためP中のプログラム語から6つの命令コード音節のうちの1つを選択する。語 の境界が交差するとき、Qにおける「次の」プログラム語はPに転送され、PW Iはインクリメントされかっ[フェッチ]要求はアドレスおよび状態ユニットA SU (第3図)に送られる。PSIの出力はまた、メモリアドレスを計褌する ためおよびメモリ読出を開始するためAStJに対して与えられる。Qに新しい プログラム語がロードされるとき、QROFはメモリによりセットされる。PW IおよびPSIは、主データバスDP(第3図)からの異なった値で〈プログラ ム分岐等のために)ロードされ得る。
プログラム索 のバックアップファイル(=PIBF)この発明に従って与えら れたマルチタスキング能力のため、1以上の演算子に相当するタスクの実行はそ れらが初期化された後しばしば中断iれなければならない。このようにして、P Cは、プログラムの流れにおいてバックアップの能力を与えられ、換言すれば、 PWI/PSIをも゛・との値に戻し、かつもしPWIがもはや最新のプログラ ム語を指し示さないならば取出しを開始する。これを果たすために、PCは、す べてのタスクに対してPWIおよびPSIの値を記録するプログラム索引バック アップファイルPIBF(第9図)を提供する。TOからバックアップ情報を受 取ると、PCは、バックアップをもたらせているタスクに対応する音節を指し示 しているPWIおよびPSIの値を得るためにPIBFt−読出しながらl−1 0LD状態に入る。それからPWIおよびPSIレジスタは、これらの値をロー ドする。実行中のタスクは、その開始のときに存在しているPWIおよびPSl の値を得るためにPIBFを読取る能力を有する。
ぐ のデコーディン およびパラメータの選択PSIによって索引付けられた命 令コード音節は、次のような演算子の特性を典型的にもたらす演算子デコーダ0 −D(第9因)によりデコードされる。
1、 次の命令コード音節を指し示すためにPSIがそれによってインクリメン トされなければならない数。
2、 演算子パラメータとして用いられるべき続いて起こる音節の数。
旧、 演算子が、特別の取扱いを要求する成る特別の演算子のうちの1つである かどうか。
4、PCが演算子に対するタスクを開始した後にHOLDすべきかどうか。
5、 演算子が再スタートモードに入れるかどうかくそれによりその目的に対し て擬似命令コードを与える)。
6、 タスク準備情報および資源要求 パラメータ パラメータは、第9図の音節選択aSSの出力から選択される。パラメータハン ドラPHによる適当な様式化の債、パラメータは主データバスDP(第3図)へ 転送される。
スタートモード プログラムコントローラPCにおける「再スタート」フラグは、ストアドロシッ クコン10−ラ5LC(13図)からセットされ得る。それは正当な演算子の次 の発生までセットされたままであり、その発生の場合それはリセットされかつそ の演算子は「再スタートモード」 (それは一時的にHOLD状態に入ることに よりかつ擬似命令コードをもとの命令コードに取替えることにより達成される) に初期化される。
Σλy* 1L1 以下の情報は、演算子に対するタスクを開始するために典型的に与えられ、かつ 、演算子デコーダ○Dの出力が与えられるタスク準憾レジスタ(第9図>TSR を経内してタースフコントローラTO<第3図)へ送られる。
1、 タスクコントローラTOにより制御されたスタックから消費されるべき入 力の数。
2、 割当てられるべき一時的なレジスタおよび出力の数。
3、 初¥IIWA I T条件−実行に対して準備がなされる前に最上のスタ ックレジスタが妥当になるのをタスクが持たなければならないかどうか。
4、 交互のWAIT条件−「2つのレジスタのうちの最も早いもの」 (2つ の最上のスタックレジスタ)が妥当になるのをスタックが持たなければならない かどうが。
5、 実行に対して選択されることにおいてタスクは優先順位が与えられなけれ ばならないかどうか。
6、 スタックの入力のみがスタック頂部にあるようにするためスタックが調節 されなければならないかどうか。
7、 スタックが「状態」を変更するかどうか。
80.多重タスク演算子を表わしているセットにタスクが属するかどうか。
9、 タスクが擬似演算子を表わすかどうか。
10、 8LC(第3図)に対する初期タスクマイクロ命令アドレスI TCA 。
11、ASU変更変更行列ACQロック要求。
12、 メモリ変更持ち行列MCQロック要求。
HOLD/Go制御 、先に述べたように、70グラムコントローラPCおよびタスクコントローラT C(第3図)は、実行されるべきタスクの連続的な流れを発生させるためにタン デムに働く。
また先に述べたように、PCはタスクの特性を決定しか゛つこの情報をタスク準 備レジスタTSR(M9a!iI>の中にロードする。実際のタスク数の割当て およびタスクの開始を含んで、さらに進んだ責務がその後TCにより引き受けら れる。
いくつかの条件は、TSR中の条件を用いるタスクの即座の開始を妨げることが できる。したがって、PCは、それ自身およびTOをHOLD状態におく能力を 有する。これらの条件は次のとおりである。
1、 プログラム語の取出しに対する待機2、 3LCまたは演算子デコーダO Dがらの)(OLD信号 3、PCは外部の中断またはアラームエラーを検出しかつそ・れを扱うために擬 似命令コードを挿入しなければならない。
TC中で発生する他の条件もまた、タスクの即座の開始を妨げる。これらの条− 外は次のとおりである。
4、 (TSRにより特@句けられたような〉次のタスクに対して要求される一 時的なレジスタおよび出力の数は、利用可能なレジスタの数よりも大きい。(H OLD条件は目下の活動中タスクがそのレジスタのいくっがを解放するまで持@ するであろう。) 5、 タスクにより使用された入力を考慮に入れた後、次のタスクがスタック上 に置くであろう出力の数は、スタックリストの頂部における占有されてない部分 の数より1も大きい、(PCが「ブツシュタスク」を挿入するIMIHOLDす る。) 6、 次のタスクにより要求される入力の数は、スタックリストの頂部【こおけ る記入項目の数よりも大きい。(PCが「ポツプタスク」を挿入するIEilH OLDする。)7、 次のタスクはその入力がスタック頂部にあることのみを要 求する。(PCが「ブツシュ」または「ポンプタスク」を挿入するmHOLDす る。) 8、 7Cは同時に発生しているタスクに対してはその限界に達している。(タ スクが終了するまでHOLDする。
) 9、ACQロック要求が起こりかつASU変更変更行列が口、ツクされる。
10、MCQロック要求が起こりかつメモリ変更持ち行列がロックされる。
コードの 生 擬似命令は、擬似命令コード発生器POG (第9図)により、あるいは独立し てSLCマイクロ命令により、フードの流れに挿入される。PCは、擬似命令を スタックブツシュ/ポツプのような制御機能を行なうため擬似命令を使用しかつ ハンドリングを中断する。擬似命令はまた、演算子従属が中断することを扱った り多重タスク演算子の第1のタスク以外のタスクを発生したりするような機能に 対して使用されてもよい。
擬似命令コードは、実行されるべき特別な機能に基づいたPOGによって内部的 に発生されるかあるいは適当なSLCマイクロ命令の受取りでDPから得られる かのいずれかである。擬似命令が挿入されるべきとき、HOLD状態は最初に呼 出される。このことは、目下TSR中にあるセットアツプ情報を用いてタスクが 開始されるのを妨げる。
PSlによって索引付けられた命令コード音節の(演算子デコーディングに対す る)選択は、擬似音節の選択により無視される。新しい準備情報がTSRにロー ドされると、HOLDは除去されタスクは開始される。lI似全命令PSIをイ ンクリメントしないので、TSRは再び、擬似命令によって先取りされた演算子 に対する準備情報がロードされる。もしざらに進んだHOLD条件が存在しなけ れば、そのときタスクの開始は通常の方法に進む。
演算子の成るシーケンスに対しては、擬似命令の挿入は許容されない。たとえば 、PCがSLCによりあるいは演算子デコーダODのHOLD出力によりHOL D状態におかれているとき擬似命令の挿入は許容されない。このことは、(1> 、pwI/PS Iが分岐演算子のために変更されている間あるいは〈2)多重 タスク演算子の独立したタスクの間のような状況において挿入を阻止することに より擬似命令と関連付けられたPWI/PSIの値の正確さを補償する。(無条 件の分岐を生じさせる演算子は、多重タスクセットの第1のタスクが行なうよう に、TSRを経内して開始時にHOLD状態を呼出す。条件付けられた分岐演算 子は、SLCマイクロ命令を用いて)IOLD状態を呼出すであろう。) タスクコントローラ(TC)(3I3よび 1o )タスクコントローラTCは 、プログラムコントローラPCによって供給された擬似演算子またはタスクデー タに応答してタスクを割当てる。それはプロセッサの資源の利用を演算子実行の 同時発生の高レベルを達成するような方法で処理し、一方、要求されたシーケン シャルな順序を維持する、タスクコントローラTOは、その独立した動作に対し て資源が利用できるときどのタスクも不所望に遅延されないようにするために、 完了の種々の段階にある多くのタスクの実行を調整する。
タスクコントローラTCの主な機能を以下に述べる。
1、 レジスタ割当て 2、 スタック頂部制御 3、 タスク初期化 4、 タスク終了 5、 7DPタスク開始および終了 6、 連続するタスクの中断(バックアップ)7、タスク持ち条件および準備完 了タスクの選択8、 マイクロ命令アドレスの選択 TOの好ましい実施例において前記機能が与えられる方法は、第10図に対する 特別の参照とともに次に述べφ。
扛2ム乞り運り 先に一般的に述べたようにへ処理要素PEの主データバス(第3図)は、タスク の要求に従ってタスクに割当てられるであろうワーキングレジスタの対を含み、 そして、入出力の数およびタスクにより要求される一時的なレジスタは、タスク セットアツプレジスタTSR(第9図)を経由してプログラムコントローラPC により特定される。タスクコントローラTCは、レジスタの使用状況(利用可能 なフリーレジスタに対する割当てられたレジスタ)をダイナミンクに追跡するレ ジスタ割当てファイルRALF(第10図)におけるレジスタ割当てリストを維 持する。特に、TCは、第1に、次のタスクの要求に適応できる利用可能なフリ ーレジスタが充分にあるかを決定する。もしそうであれば、TCはその後以下の 機能を行なう。
1、 スタック頂部から適当な数の入力を選択する間に出力および一時のものに 対して要求される数のレジスタを割当て、その後特別の割当てがDP(第14図 )のレジスタマツプRMAPに書込まれる。
2、(「バックアップ」の目的で)レジスタ割当てリストをレジスタ割当てファ イルRALFに書込むことによけ、タスクの開始に先立って存在しているような レジスタ使用状況を記録する。および 3、 今の状況を次のタスクに与えるためレジスタ割当てリストを最新のものに する。
一方、もし充分な自由なレジスタがなければ、TCは充分なレジスタが利用可能 になるまでHOLD状態におかれ、一方PCもまたHOLDするように合図され る。
TCによりタスクに割当てられたレジ玉夕は、〈レジスタ割当てリストを最新の ものにすることにより)2つの異なった時間で割当て解除される。一時的なレジ スタはタスクがrEOTJ条件に達するとき解除され、かつ入力はタスクが終了 するとき解除される。しかしながら、出力レジスタは、その入力のように(それ らをスタック頂部に加算することにより)次のタスクに送られ、かつDPのRM AP(第14図)を経由してそのタスクに再割当てされる。
スタック の制 スタック頂部TO3は、目下実行されているプロセスのメモリ内スタックの論理 的拡張である主データバスDP(第14図)のRALFにおけるレジスタのダイ ナミックに割当てられたグループにより形成される。スタック頂部にあるものと して名付けられたレジスタは、レジスタ割当て機構により先に割当てられていた ものであろう。
スタック頂部TO8は、典型的には7つのレジスタを含んでいてもよい。TCは 、タスク準備レジスタTSR(第10図)を経由してPCにより特定される入力 および出力の数に基づいて新しいタスクが開始される各々のときにTC8を最新 のものにする。タスクの入力はTC8から得られ、かつその出力はTC8におか れる(「ブツシュ」および「ポツプ」タスクは、スタック頂部中の最底部記入事 項をアクセスするということで他のタスクとは似ていない。)TCは、TOSリ ストおよびTC3数を維持することによりスタック頂部の状況をダイナミックに 追跡するスタック頂部コント・ロールTO3CClll0図)を含む。TOSリ ストは、TC8中に目下入っているレジスタのリストであり、一方TO8数はT C8中に目下入っているレジスタの数を示す。TOは、次のタスクに対するすべ ての入力がTC3中にあるかどうかを決定するためにTOSリストおよびTC8 数を用いる。もしそうであるならば、これらの入力レジスタは、割当てのために DP中にあるRMAP(第1(4図)に与えられる。もしすべての入力がTC8 中に必ずしもなければ、TOはHOLD状態におかれ、かつPC,は「ポツプタ スク」は対応するタスクが開始され得る前に挿入されなければならないというこ とが合図される。
もし入力を消費する以上の出力をタスクがスタック上に残すならば、TOはスタ ック頂部の限界が越えられたかどうかを決定する。もしそうであれば、TOはH OLD状慧におかれ、かつPCは「ブツシュタスク」が挿入されなければならな いというように合図される。
バックアップの目的のために、TOはまた、タスクの初期化に先立って存在して いるようなTC8の状態の記録を、TOSリストおよびTC8数をTO8C(第 10図)に含まれているTOSファイルに書込むことにより維持するように機能 し、一方また最新の状態を次のタスクに与えるためにTOSリストおよびTC8 数を最新のものにする。
ブツシュまたはポツプタスクが挿入されると、PCおよびTC&;tHOLD状 態から解放される。HOLDはPSI(第9図)がインクリメントされることを 妨げるけれども、演算子に対するタスクを開始するために第2の企てがなされる 。それは再び前述した条件に従属し、かつ付加的なブツシュまたはポツプタスク は挿入され得る。(各プッシュタスクはスタック頂部から1つのレジスタを除去 し、かつ各ポツプタスクは1つのレジスタを加えるということに注意すべきであ る。) ムLムへl丸 演算子の特性がPC(第9図)のタスクセットアツプレジスター「SRにより特 定されると、「次の」タスクは、それは先に言及した)ブれども、真に可能な次 のタスクのみである。可能な次のタスクが実際の次のタスクになり、そしてそれ がその後「開始されるタスク」と呼ばれるのは、必要な資源カー利用可能であり 、かつ、いかなるHOLD条件も存在しないということが決定されたときのみで ある。HO,tDがIIぜられか一つタスクが擬似命令を実行するために挿入さ れるような場合、しばしば可能な次のタスクが次のタスクでも何でもないことが わかる。
タスクが開始されるとき、それにはタスク数が割当てゝられる。同時発生のタス クの数における制限は、たとえば、16である。タスク数は「ラウントロピンj ベースで「通常のタスク」に典型的に割当てられる。そのようなタスクすべては (HDPおよび空白を除いて)、先行順序に従属する。この順序は、「最古活動 中タスクJ OATの記録をまた維持することにより挿入される。
任意の2つのタスク間の後のもの/先のもの聞の圏係は、たとえば、以下のよう にOATとともにそれらのタスク数へおよびBを比較することにより決定され得 る。
以下のような条件の場合にのみAはBの厳密な先のものである。
[A<B AND(OAT<=A OROAT>B)]または rA<B AND(OAT<=A AND OAT>8)]第10図のタスクコ ントローラTOはまた、先のクロックで開始されたタスクの数を含む開始タスク レジスタITRを含む。ITRは、開始されたばかりのタスクに対重る初期のタ スクマイクロ命令アドレスに書込むために、次期アドレスレジスタファイルNA RFをアドレスするために動作する。TTRはまたレジスタ割当てを記録するた めにDP(第14図)中のレジスタマツプRMAPをアドレスし、かつまた開始 されたばかりのタスクと組合わされるべきである(コードの流れから抽出された )パラメータを記録するためにDP中の特別な目的のレジスタファイル5IPR Fをアドレスする。
第10図のタスクコントローラTOは、付加的に、そのタスクのトラックが開始 されているのを保ち、かつ完了の成る段階にある妥当タスクファイルVALTを 維持する。
タスクの制限に達したとき、HOLD条件は、タスクが終了するまでタスクのさ らに次の開始を阻止しつつ、TC中に存在しかつPCに合図されるであろう。
開始時においては、TCは、たとえばタスクが中断されているとき適切になるP Cから得られた各タスクの一定の特別な特性をもまた記録してもよい。そのよう な特性は、たとえば、タスクが「状層」情報を変更するか否かを、およびタスク が多重タスク演算子を表わしているセットの一因であるかどうかを示してもよい 。
タスクの終了 タスクは、妥当タスクファイルVALT (第10図)においてそれを「妥当で ない」とマークすることにより終了する。タスクが終了され得る前に、それは次 の条件を満足しなければならない。
1、 タスクは、タスクの終わり(EOT)に達していて、かつSLCマイクロ 命令によりその条件が合図されていなければならない。
2、 実行されているプログラムセグメントのシーケンシャルな順位を保証する ために、タスクは最古活動中タスク(OAT)でなければならない。
3、 タスクは、書込が開始されていないMS(第2図および第17図)および ASU (第3図および第15図)の変更持ち行列中にいかなる旧人事項も持っ ていてはならない。
前記3つの条件が満足されるとき、タスクは「妥当でない」とマークされ、入力 レジスタはフリーレジスタの集団に戻り、ループタイマはリセットされ、かつ( OAT)のすぐ債のものは新しい(OAT)になる。
HDPタスクの および HDP (第2図)からのHDPタスクがPCにより混合に挿入されるとき、そ れは常に予め定められたタスク数が割当てられることを除いては、それはTCに より通常の方法で開始される。もしHDPタスクが既に妥当であれば、どんな活 動も起こらないであろう。HDPタスクは、それがTCにより終了されるまで妥 当なままであろう。終了は、<0AT)に関する通常のタスクおよび変更持ち行 列に関する限りでは同じ条件には従属しない。(EOT)に達することは要求さ れていることのすべてである。
のタスクの中断(「バックアップ ) 特定のタスクの実行における成る点で、俵のタスクの結果を不正確にあるいは不 所望にする(たとえば、演算子従属が中断したりあるいは仮定した分岐経路がと られなかったりする)状況が起こるであろう。これが起こるとき、タスクはTO において与えられたDSロックを要求するととにより債のタスクを中断するその 意志を連絡するであろう。
もしDSロックが既にロックされていれば、タスクはロックが自由になるまで「 静止させられる」であろう。ロックを有するタスク(DSロックの所有者)は、 DSの後のものに命令することによりTOが次の活動を行なうようにさせるであ ろう。
1、HOLD状畷に進みかつまたPCにHOLDするよう合図する。すべてのタ スクを静止させる(HDPタスクが除かれているー)。
2、(妥当タスクファイルVALT(第10図)においてそれらを「妥当でない 」とマークすることにより)OSロック保持者のすべての後のものを中断し、か つ他のコントローラに同様にするように合図する。
3、 すべての中断したタスクの(EOT)フラグをリセットする。
4、DSOツク保持者が開始される直前のレジスタ使用状況を示すために、レジ スタ割当てリストRALL<第10図)をバックアップする。
5、DSロック保持者が初期化される直前のスタック頂部状況を示すために、T O8L (第10図)により維持されているTC8数およびTOSリストをバッ クアップする。
6、PIBF(第9図)からロードすることによりPWIおよびPSIをバック アップするようPCに合図する。
7、「次のタスク」がDSロック保持者のすぐ優のものを開始するようにさせる (つまり、次のアドレスレジスタファイルNARF(第7図)を適当な後のタス ク数にセットする)。
8、DSロックを解放しタスクを活動させる。
OSロックおよびDSの後のもの(かつ他のSLCマイクロ命令のすべても同様 に)から生ずる活動は、もし現サイクルの打切りが示されたならば禁止される。
タスクはまた、エラーの結果としてのTCにより中断されるであろう。
この状況において、TOはDSロックを衝突を避けるために使用するであろう。
もしDSSランク既にロックされていれば、TCはロックがwi−除されるまで 持つであろう。
タスク持ち条件および準 完了タスクの選択一度タスクが開始されると、もしい かなる初期の持ち条件も特定されていなければ無条件に、あるいはもしU初期持 ち条件」あるいは「交替の持ち条件Jがタスクセットアツプレジスタi”SR( 第9図)を経由して呼出されれば条件付きで実行に対する準備がなされる。初期 の持ち条件は、スタックの最頂部にあるタスクの入力レジスタの妥当性である。
交替の持ち条件は、「2つのうちの最も早いもの」の入力レジスタ(スタックに おける2つの最頂部のもの)が妥当になるのを持っているものである。もし初期 のまたは交替の持ち条件により特定されたレジスタが開始時に妥当であれば、あ るいはもしいかなる初期の持ち条件も特定されていなければ、タスクは準備完了 しておりかつ実行のために選択されるであろう。各レジスタの「妥当性」は、T C中に位置されているスタック墳目利用可能フラグにより示される。タスクが実 行のために選択された後、任意のときにそれはマイクロ命令が実行されるときに 存在するハードウェア条件によって暗黙のうちにまたはマイクロ命令によって明 示的に持ち状態(「静止させる」)におかれる。
典型的な明示的な持ち条件は次のとおりである。
1、 メモリの完了−各タスクは、メモリ動作が成功的に完了されるときセット されるそれ自身のMAC(メモリ動作完了フラグ)を有する。
2、 自分自身イコール0AT−タスクが最古活動中タスクOATになるまで待 機 3、HDPの完了−HDP (第2図)が進行における独立した動作を完了する まで待機(この持ち条件#HDPタスクのみに適用される。) 典型的な暗黙の持ち条件は次のとおりである。
1、ACQの変更−AStJ変更持ち行列AStJ−CQ(第15図)が状態を 変更するまで待機、(この持ち条件は、もしタスクがASU−CQ中のスロット を入手しようとしかつスロットが利用できなければダイナミックに呼出される。
) 2、 利用可能なMCQスロット−スロットがメモリ変更持ち行列MCQ (第 17図)中で利用可能になるまで特機 3、DSロックの解除−(TOによって与えられた)DSロックが解除されるま で待機 豊JL!1J13=色1− もしタスクが静止させられていなければ、それは準備完了に留まりかつ実行のた めに選択されてもよい。もし優先権がタスクセットアツプレジスタTSR(第9 図)を経由して特定されたならば、タスクは他の準備完了タスクよりも優先権を 得るであろう。等しい優先順位のすべての準備完了タスクのセットから、1つの タスクマイクロ命令は、プロッサが停止していない各クロック期間中の実行のた めに選択される。タスクマイクロ命令の実行は多謝クロックサイクル(第7図参 @)を要求するけれども、TOは選択されたタスクをそれが次のクロックサイク ルで再び選択されるのを防止するため「実行中」とマークする。いかなる準備完 了タスクもなく、かつプロセッサが停止していないときはいつでも、空白タスク マイクロ命令は選択されかつそれはNo−Qpに等価である。
マイクロ命 アドレスの選択 タスクマイクロ命令が選択されるとき、マイクロ命令アドレスは次期アドレスレ ジスタファイルNARF(第10図)のうちから読取られかつストアドロシック コントローラ5LC(第3図)へ送られる。タスクの第1のマイクロ命令に対し て、このアドレスは開始時に記録された初期めタスクマイクロ命令アドレスであ ろう。各タスクマイクロ命令の書込クロック期間中(第9図参照)、次の選択さ れたアドレスはSLCにより決定されかつNARF(第10図)中の先のアドレ スと置換えるためにT’Cに戻される。
NARFは、この発明に従ったマルチプログラミングの実施に使用されている、 タスクごとに1つ、マイクロ命令アドレスレジスタのファイルとして最もうまく 考えられる。
実行中のタスクに対して次の選択されたマイクロ命令アドレスtNARF中に記 録することに加えて、TCはまたそれをアドレスリサイクルレジスタARR<第 10図)中におく。このレジスタは、最適化の目的のため使用され、かつ、それ が持ち条件に出会わない限りは、次のタスクマイクロ命令に続くために最鳥の優 先順位を実行中のタスクに与えるために、準備完了タスクセレクタRTS (第 10図)により実行された準備完了タスク選択動作を無視することを許容する。
各クロックサイクルの間で持ち条件を試談した後、TCは次のマイクロ命令アド レスを現在のタスク(もし準備完了していれば)のためにARPから、あるいは 興な7たタスクの準備完了マイクロ命令のためにNARFからのいずれかから選 択する。
現在どのタスクも実行されておらずかつどの他のタスクマイクロ命令も準備完了 状態になければ、前述したように、空白タスクが選択される。空白タスクは、シ ステムの初期化のときに与えられるマイクロ命令アドレスがロードきれる、NA RF中のスロットをアドレスする。このアドレスは、PCにより処理されている コードの流れに関連してNo −Op Ii能を実行するマイクロ命令に対応す る。しかしながら、もし要求されれば、空白タスクはいくつかのシステム制御ま たはモニタリング機能を実行するのに使用され得る。
ストアトロシックコントローラ5LC(3および 1上童」ソと11Jロー ストアトロシックコントローラSLCは、タスクマイクロ命令を含む処理要素P E (1113図)のその部分であり、そして各タスクの実行に要求されるプロ センナの他の部分の実行の制御にこれらのマイクロ命令を使用する。SLCは、 典型的には、マイクロ命令メモリMM(第11図)。
M IVIからのマイクロ命令続出を受取るためのマーfクロ命令しジスタMR ,シーケンス制御メモリSCM(第11図および@13図)、補助1’J御メモ リ八〇M、次期アドレスセレクタNASおよびサブルーチン制御回路SCCを備 える。
マイクロ命令メモリM Mは、たとえば、記憶されたマイクロ命令を含むランダ ムアクセスメモリであってもよい。
シーケンスコン1−ロールメモリ5Civlは、MMの論理的拡張であり、かつ MM中に記憶されているマイクロ命令にそれぞれが対応している分岐情報を含む 。(たとえば、前述したアメリカ合衆国特許番号票4,155.120号を参照 されたい。)補助制御メモリACMは、l1II型的には、主データバスDP( 第14図)のための回転値およびマスクを含む。これらの値は、MMからのアド レスにより静的にめるいはOPから特られたアドレスによりダイナミックに選択 される。
次期アドレスセレクタNASは、プロセッサの残りの状態を示している選択され た条件をサンプリングすることに応答して、次のマイクロ命令アドレスを決定す るために動作する。条件付および無条件のダイナミックなおよび静的な分岐の両 者は典型的に実行される。
サブルーチン制御回路SCCは、マイクロ命令サブルーチンの効率的な共用を許 容する。それは典型的にはマイクロ命令アドレスのスタックを備えていてもよい 。サブルーチン鴎、現在のマイクロ命令アドレスおよびオフセットをサブルーチ ンスタックへ押出すことにより、かつサブルーチンの第1の命令に分岐すること により「開始」される。
サブルーチンは、サブルーチンスタックの頂部のマイクロ命令アドレスに分岐す ることにより、かつスタックからそのアドレスをポツプすることにより「励起」 される。
SLCの様々の構成要素につきさらに詳細に検討する。
マイクロ命令メモリ(11図) 各クロックサイクルの終了部分の間に実行される書込動作中、マイクロ命令メモ リMMは(TCにより与えられたマイクロ命令アドレスに応答して)、選択され たタスクマイクロ命令を次のクロックサイクルにおいて使用するだめマイクロ命 令レジスタMRに読出す。マイクロ命令は、典型的には、タスク実行の間に制御 信号をプロセッサの様々な部分に与える一連の制御フィールドを備える。
助 メモリACM 第11図および 12 )第12図に示すように、補助制御 メモリACMは典型的には、種々の一1lll装置および関連したレジスタを備 える。
各クロックサイクルの読出動作部分の閣、これらの制御装置はクロックサイクル の次に続く計算動作部分の間に主データバスDP(第3図および第14図)の様 々の機能な制御lll′!するのに用いるパターンを〈MRおよび他のレジスタ から)受取る。これらのIi ’K K−は、続出動作の間にマイクロ命名レジ スタMR([11Fl) (静的な)からのフィールドを多l化づることにより 、かつまた主データバスDP(第14図)内に含まれている特別目的レジスタ5 PR(ダイナミックな)からのフィールドによりアドレスされる。
GおよびH回転およびマスク 瞥E Cト:S(第12 )AC3のGおよびト 1回転記憶装置GH3は、DP(第14図)に対して回転値およびマスクパター ンを供給し、かつMR<第11図)からのフィールド(静的な)またUt Dl つのS F” Rからのフィールド(ダイナミックな)のいずれかによりアドレ スされる。
Nバスマスク i NMS(12 NバスマスクI2憶IIINMsは、apt第14図)中のデータレジスタファ イルDRFにマスキングするのを制御擾−るためのパターンを含む。Nバスマス ク記憶装@ N M Sは、MR<静的な)フィールドによりくNマスクアドレ スレジスタNMARを経由して)またはDPのSPR(ダイナミックな)からの フィールドにより直接的にアドレスされる。
5PRE−’ J 憶 MOS(第12 )SPRe−t’制御記憶装ffiM csLt、MR中(7)フィールドによりアドレスされ、かつDP(第14図) 中のSPRモード動作を制御するためのパターン、およびくごに与えられるべき データの選択をも含む、 シーケンスか メモリSCM 第11 およびill!13゜シーケンス制御メ モリSCMは、マイクロ命令メモリMM(第11図)中のどのマイクロ命令が次 に実行されるかを決定するのに使用するための順序付は情報を含む。そのような 手段に関してのより詳細な情報は、前述したアメリカ合衆国特許W号第4.15 5.120号に開示されている。SCMは、マイクロ命令レジスタMR<第11 図)に属するマイクロ命令中に含まれているアドレスフィールドによりアドレス される。SCMからのアドレス情報は、シーケンス制御レジスタSCR中に書込 まれる。SCMからのこの情報は、典型的には、第13図に示したようにそれぞ れのレジスタALTA、BAIおよびC8に書込まれる交替アドレスフィールド ALTA、分岐アドレス索引フィールドB/lおよび条件選択フィールドC8を 備える。
ア゛レスセレクタNAS(11 次期アドレスセレクタNASは、次のマイクロ命令アドレスを決定するのに使用 される。各クロックサイクルの計算動作中、NASは、処理要素の他の部分から NASに与えられた多くの可能な分岐条件から4つの可能な分岐条件を選択する のにC8(第13図゛)中の条件選択フィールドを使用する。これらの4つの選 択された分岐条件の実際の値は、BAI(第13図)中の分岐アドレス索引フィ ールドから16のサブフィールドのうちの1つを選択するのに使用される4ビツ ト値を形成するために連結される。各サブフィールドは、分岐アドレス索引およ び環サイクル打切り指示を含む。選択されたサブフィールドの分岐アドレス索引 は、代わりに、8つの次期マイクロ命令アドレスのうちの1つを選択するために 使用され、そしてそのうちの4つはALTA(第13図)により与えられる。N ASは、選択された次期マイクロ命令アドレスをTC(第1o図)中の次期アド レスレジスタファイルNARFに与える。その後、現クロックサイクル中の次に 続く書込動作の間、クロックサイクルの計算部分の闇に決定されたこの選択され た次期アドレスは、次のサイクルで使用されるべき選択されたマイクロ命令をM Rに読出すためにマイクロ命令メモリMM(第11図)をアドレスするために使 用される。
サイクルの 切り ストアドロシックコントローラSLC(第10図)は、もしハードウェアの条件 が期待していたものでない場合には、マイクロ命令の実行を阻止する特徴を含む 。たとえば、2つの単一精度オペランドを加算しようとするとき、もし1つが2 重積度であることがわかれば、sLcは現サイクルの打切りを示し、かつ予定さ れていたシーケンスで統けるよりもむしろALTA(第13図)により与えられ た代わりのアドレスのうちの1つを選択する。この動作は、静により決定される 。他の条件はまた、たとえば加算マイクロ命令の実行が起こりかつオペランドを 含んでいると期待されているレジスタのうちの1つが妥当でないとき、マイクロ 素置を打切らせることができる。この場合、現アドレスは次期MMアドレスとし て使用され得るし、したがってマイクロ命令が再び実行されることを許容する。
これはダイナミックな現サイクルの打切りとして注目されている。
もし静的なおよびダイナミックな現サイクルの打切りが同時に生ずれば、静的な 打切りが勝る。
サブルーチンJ御回 (11) SLCのサブルーチン制御回路SCCは、共通のマイクロ−命令シーケンス(サ ブルーチン)の共用を与える。多重レベルサブルーチン構造は、典型的に記入項 目の15のレベルだけ調節するスタックを利用することにより認められる。スタ ックは、サブルーチンリターンアドレスを記憶′するのに用いられる。典型的に 16のスタックが与えられ、それは各タスクに対しては1つである。
主−一タパスDP(3および 14 主データバスDPの目的は、勘合にあるすべてのタスクに対する原始的なデータ 項目を記憶すること、および各クロックサイクルの計算動作部分の間に適切なマ イクロ命令フィールドに応答してこれらのデータ項目に論理的および算術的動作 を行なうことである。DPは典型的には、データ(スタック頂部データを含む) を記憶するためのデータレジスタファイルDRF、入力/出力データを記憶する ためのユーティリティレジスタファイルURF、タスクコントローラTO(第1 0図)によりなされたレジスタ割当てに従つぐてDRFに対するタスク関連アド レスを絶対的なアドレスに変換するためのレジスタマツパ−RM A P 、与 えられたデータに算術的および論理的動作を行なうための算術論理ユニットAL Uおよび補助的な計数およびデータ操作機能に対する特別目的レジスタSPRを 備える。
クロックサイクルの間のDPの典型的な動作は以下のとおりである。クロックサ イクルの初期読出動作部分の間、(MR(第11図)中の適当なマイクロ命令フ ィールドにより選択された)DRF中の2つのワードは、アクセスされ、適当に 整列されかつマスクされ、かつそのIl[ALUに与えられる。サイクルの次に 続く計算動作部分の閣、ALUはSLCのACM(第11図および第12図)か らの′およびSPRからの制御信号により決定されたような与えられたワードに 算術的および/または論理的動作を実行する。
クロックサイクルの書込動作部分の終了の閤、ALUにより与えられた結果はN −3usを経由してDRF中に書込まれ、および/またはMS、HDPまたはH CP (第2図)のような他のユニットに与えられる。
−一タレジスタファイルDRF14) DRFは典型的にはアドレス入力、2つの読出ポート(G−BusおよびH−B LIS) 、 N−BLIS入力データに対する1つの書込ボートおよびメモリ データに対する入力を有するランダムアクセスメモリであってもよく、そしてそ の各々はSLCからのマイクロ命令を介して独立にアドレスされる。。データの ワード中の部分的なフィールドの操作を容易にするため、回転およびマスク機能 がDRFの出力のH−BusおよびG−BLISに対して与えられ、かつDRF の書込ボートに対して書込制御マスキングが与えられる。さらに、DRFの書込 ボートは典型的には、ALUの結果のワードの選択されたビットのみが書込まれ 、DRF中のアドレスされたワードの他のすべてのビットが変更されないままに あることを許容する組合わされた書込制御マスク機能、を含む。
レジスタマツパ−RMAP(14> レジスタマツパ−RMAPは、マイクロ命令により使用された論理的レジスタア ドレスをタスクに割当てられでいる物理的レジスタアドレスに変換するのに使用 される。゛初期化されているタスクに対するレジスタ割当ては、タスクコントロ ーラTO(第10図)により作られ、かつRMAP中のタスク数の組合わされた 位置に書込まれる。
タスクがタスクコントローラTCにより選択されるとき、そのタスク数はDRF 中のその物理的レジスタのアドレスを得るためにRMAP中に索引付けするのに 使用される。
ユーティリティレジスタファイルURF(14)ユーティリティレジスタファイ ルURFは、HDP (第2図)からのデータおよび他の非タスク依存データを 保持づるのに使用される。典型的に、3つの書込ボートがURFに与えられ、1 つはN−3usデータに対してであり、1つはHζDPデータに対してであり、 かつ1つはHCPデータに対してである。SLGは、N−BLIBを経由して、 読出みよび書込の両方に用いられるURFアドレスを供給する。
算−環ユニットALU(14> 輝術論理ユニットALUは、クロックサイクルの計算動作部分の間にそのQ−3 usおよびH−Bus入力上に現われるデータに算術的および/または論理的動 作を実行し、かつその結果をN−Busに与える。
特別 的レジスタ5PR(14) DP中の特別目的レジスタSPRは、(他の目的に混ざって)ダイナミックフィ ールドが依存しているところのデータ項目の記憶に用いられる。SLCの制−の 下で、SPRの選択された部分は、回転および/またはマスキング(書込制御マ スキングを含む)をDRFの3つのボートに対して独立に制御するのに使用され 得る。
データ項目は、ALUからSPRヘロードされ、かつSPR中のデータはALU 入力の1つとして使用される。ざらに、SPRは、DPの他の動作と同時にそれ に与えられ得る様々な計数動作およびシフト動作を提供する。このことはループ カウンタのような一時的なデータ値がループ本体と同時に実行された(0に対す るデクリメントおよびテストのような)ループ制御機能とともにSPR中に記憶 されるのを可能にする。各クロックサイクルの間にSPRの内容に与えられた動 作は、適用可能なマイクロ命令により決定される。SPRはまた様々な他の凍能 に用いられてもよい。たとえば、それは高レベル分岐動作が生ずるとき新しいマ イクロ命令アドレスをBC(第9図)に与えるであろうし、かつまたそれは低レ ベルダイナミック分岐に使用され得る5LC(第11図)に値を与えるであろう 。
特別目的レジスタSPRは、典型的には、3つの独立したレジスタファイルを備 えていてもよく、それはクロックサイクルの間に生じている3つの読出、計算お よび書込動作(それぞれステージ1.2および3)の各々に使用するためのもの である。ステージl5PRレジスタフアイルは、たとえば、各レジスタがタスク 数の見出しを付けられている16のレジスタ位置を含んでもよい。プログラムコ ントローラPC(第9図)は、OPをデコードするときは、プログラム詔からの パラメータをもデコードするであろう。
これらのパラメータは、タスクが開始されるときTC(餉10図)によりステー ジ18PRレジスタフアイル中に書込まれる。データもまた、他のステージのS PRファイルからステージl5PRレジスタフアイル中に書込まれるであろう。
準備完了タスクがタスクコントローラTC(第10図)から選択されるとき、そ のタスク数はそのパラメータあるいはデータ(もしあれば)を峡出すためにステ ージl5PRレジスタフアイル中に索引付けするのに用いられる。ステージ1( 読出動作)の間、SPRデータは、レジスタアドレス超電のためにアドレスJ5 よび状ll:Ll:上ASU(第3図およびI!15図)に送られ、かつACM のG/H回転およ・びマスク記憶@Wに対するダイナミックなアドレス指定およ びダイナミックな分岐のためにSLC(第11図)に送られる。ステージ2(1 !i算動作)の間、SPRデータは、入力としてDP(第14図)のALUおよ び5LC(第11図)にダイナミックなNマスクアドレス指定のために与えられ る。
ステージ3SPRは、内部の回転、計数およシフト能力を有する。これらはSP R中に保持されているデータの処理に用いられる。この処理はSLCにより制御 される。ステージ3SPRデータは、擬似命令としての使用のため、およびPW IおよびPSIのセツティングのため書込動作(ステージ3)の開にPC(第9 図)に送られ、かつまたステージl5PRにも送られる。ステージ3SPRから また利用可能なものは、SPRステージ3動作が完了された後に発生され、かつ 次のサイクルでの分岐条件として用いるためにSLGに送られる成る遅い条件で ある。
ア゛レスおよび ユニットASU< 15 )アドレスおよび状態ユニットAS Uの第1の目的は、アドレスをチェックおよび計算すること、およびこれらのア ドレスを高レベルアーキテクチトの他の状態値とともにΔSUレジスタファイル ASU−RF中に記憶することである。ASLJ−RF中への記憶は、適切な更 新および順序付けを確3かなうのにするために、ASU変更変更行列ASU−C Qを通して制tIlされる。AStJはまた、アドレス計算の実行のたメ(7)  A S U fsH論TllニットAsU−ALU。
アドレス計算の制限チェックを行なうための制限チェッカしCおよびデカップリ ング機能を実行づる丸めのアドレスカップルADを含む。ASUにより実行され るアドレス計算の典型的なタイプは次のとあ°りである。
1、 1アドレスカツプル」からのアドレス目算。
2、「ベース士オフセット」の形のアドレス計算。ここで、ベースアドレスはA Suに記憶されている状態の一部分であり、オフセントは小さなリテラル値また はD F’(第14図)により与えられた値のいずれかである。
3、「ベース+4フセツト」の形でのアドレス計算。
ここでベースアドレスおよびオフセット・はD Pにより与えられる。
4、PC(′Ig9図)に対する1−ベース+4フセツト」の形のアドレス計算 。ここでベースアドレスはASUに記憶された状態の一部分でありオフセットは PCにより与えられる。
7゛レスデカツプラAD(15) アドレスカップルADは、主データバスDP(第14図)からのSPRデータを 、索引値をASU算術論理ユニットASU−ALUに与えるために、アドレスカ ップルに計算を行なうために用いる。
、A S UレジスタファノルASU−RFおよびA S U変更持ち行列AS U−CQ <第15図)ASUレジスタファイルASU−RFは、様々の状!l Fおよび/またはレジスタを保持するのに用いられる。△5U−RFに対するす べての変更は、ASU変更変更行列AsLJ −CQを通して待機させられる。
タスクが△5U−RF中のデータをアクセスし・たいと欲するどΔ7なときでも AsU −CQの状態はチェックされる。タスクがASU−RFを読取るとき、 ASU−CQの内容は、先のタスクにより密造まれたであろうそのアト1ブスリ 対するいくつかの新しい記入項目を見出すためにチェックされる。タスクがAs tJ−F! Fの内容を更新することを欲するときは、書込は′□第1にΔ5I J−CQを通して特機させられる。−込位胃を示すために用いられたアドレスは 、読出に用いられるアドレスと同一である。この実施例においては、1つの位置 からの続出およびASU−RF中の他の位置への書込は同一クロックサイクル内 ではなされない、SLC(111図)からのアドレス選択フィールドは、アドレ スデカップルの帖栗が使用されているかどうかおよびA’5UffiPCの取出 のために使用され得るかどうかを示し、かつまたASU−RへSU変更持ち行列 ASU−CQは、典型的には、「ロック」および、たとえば2つのスロットを備 えてもよい。
各スロットは鶴型的には、タスク数に対するフィールド。
ASIJ、−RF中の場所のアドレス、ベース値、制限値を含む。ロックは、ロ ックの祖を有するタスク数を示す。ロックが組でなければ、この値は典型的にO である。
ハエSL去」ζ2!−持ち JASIJ−CQ(第15図工典型的な 、 作( 16図図 二しタスクが読出を行なうならば、ASLI−CQ内の条件(C,Of’qDI TIONS)は、各条件とともに記録された動作(ACTTON)を生じさせる 以下に述べる論理的噸序でチェックされる。第16図に示したようなへSU−〇 〇に対する典型的な続出フローをもまた参照されたい。
条件:先のタスクはロックを有する。
動作: rAstJへの変更1で待機している静止させら1れたタスクの読出。
SLCは現サイクルの打切り(PCA)を発生するであろう。
条件:先のタスクはスロットのアドレスフィールド中に不当なアドレスを有する 。
動作: rAsUへの変更」で待機している静止させられたタスクの読出 SLCは現サイクルの打切り(PCA)を発生するであろう。
条件:先のタスクは琥在のタスクにより読出されるのと同一のタスクを有するが 、データは不当である。
SLCは現サイクルの打切り(PCA>を発生するであろう。
条件:先のタスクは同じアドレスおよび妥当なデータを有する。
動作:ASU変更変更行列からの内容読出条件:すべでの先のタスクは異なった アドレスを有している。
動作: ASLJレジスタファイルからの内容の読出第16図および上記リスト に関連して、両スロットが要求されたアドレスに対する妥当なデータを含むとき 、最新のコピーは読出タスクが与えられるということに注目されたい。また、タ スクが静止させられていた後で活動的になるとき、第16図のフローが再びチェ ックされるということも注意されたい。
ASU ち ASU−C15− 型 なアンロー゛ 一度タスクが最古活動中タスク(OAT)に達して、かつスロットの内容が妥当 (アドレスおよびデータ)とマークされると、スロットはAStJ−RF中に書 込まれる。スロットの内容がASU−RF中に首尾よく書込まれると、スロット は利用可能にされる一つまり、タスク数は0にセットされ、かつアドレスおよび データのための妥当ピットはリセットされる。タスクコントローラTO(第1σ 図)は、条1件rAsU−CQ中にない0ATJをモニタする。
これはタスクの終了のためにTCにより使用される条件のうちの1つである。
ASLI 持ち ASLI−CQ(15−11腹11L1L もしタスクが新しい−をASU−RFに書込むべきならば、PC<第9図)によ るそのタスクの開始のとき、ASUロックはそのタスク数でセットされる。タス クはASLJ羨更持ち行列スロットを得るためにロック(lock)を有してい なければならない。もしロックが既に先のタスクによりセットされていれば、そ の*pcはロックがロック解除されるまで停止させられる。その慢ロックは、こ の次1期タスクおよび開始されたPCに対してセットされる。タスクがスロット を要求するとき、ASLJはスロットが利用可能であることを確める。もしスロ ットが利用可能でなければ、そのタスクはrASuへの変更Jで待機している静 止状態におかれる。スロットが得られたとき、タスク数はスロットに書込まれる 。任意のときにおいて、アドレスおよびデータ構成要素は独立にあるいはともに 供給される。値の構成要素はASLj−ALLJおよびLCから得られる。A− ジ3)の書込動作の園に実行される。もし現サイクルの打切り(PCA)条件が 起これば、−込は禁止される。
rAsUへの変更」は、スロットのアンローディング、ASU−ICQ中のデー タおよびアドレスを妥当にし、かつASU−CQのロックを解除することにより 引起こされる。
ASull MユニットASU−ALLJ(15ASU−ALUは、そこに与え られた2つのオペランドに単純な算術的および論理的動作を実行する。これらの 2つのオペランドは、「ベース」および「索引」と名付けられており、通常(し かし常にではなく)はメモリアドレスである。ベース入力は、ASU−RFから 、またはASLI−CQから、またはDP(第14図)のDRFがら生ずること ができる。索引入力は、ADから、またはDPのDRFから、またはPC(第9 図)から生ずることができる。
ASU−8LUの出力は、制限チェッカLC,メモリシステムMS(第2図)  (メモリアドレスとして)、およびDP(SPRまたはDRFに書込まれるため に)に与えられる。ASU−ALU(F)出力もマタ、ASU−RF中ノワード のベース部分にASLJ−CQを経由して書込まれる。
チェッカLC15 制限チェッカLCは、アドレスの比較を実行し、この比較に基礎をおいて分岐条 件を5LC(第11図)に与え、かつその比較に基礎をおいてメモリ要求を自由 にキャンセうちの1つはASU−ALLJからである。他の入力は、ASU−A LUへのベース入力を与えるワードの制限部分から生ずる。
メモリシステムMS(2および 17 第17図に関して、(第2図にブロックの形で示された)メモリシステムMSは 、典型的には次のものを含んでいてもよい。複数のメモリモジュールMM、MM およびGMへインターフェイスするための拡張モジュールとして働くメモリ交換 MEX、および処理要素PE(第3図)からMMおよびグローバルメモリGM( 第1図)へインターフェイスとして働くメモリ制御MO(キャッシュメモリCH Mおよびメモリ変更持ち行列MCQを含む)。
キャッシュメモリCHMは、典型的には、MM中に最近にアクセスされたワード のブロックの余分のコピーを含む非常に高速度のメモリである。メモリ読出要求 は、もし−当なブロックが現在そこにあるならば、CHMからワードを読出すこ とにより満足され、このようにしてMMアクセスに対して要求される非常に大き い時間を避ける。しかしながら、もし適当なブロックが08M中に存在していな ければ、それはMMから取出され、そして08M中の成る他のブロックで置換え られる。メモリ書込動作は、もし適当なブロックが存在していれば、常にMMに かつCHMにも常に書込まれる。このようにして、08Mデータは常にMきはM Mの更新は必要でない。
メモリ変更持ち行列MCQは、ASU−CQ (第15図)に対して先に述べた のと基本的に同様な方法でMMへの持ち行列変更に使用される。メモリ変更持ち 行列MCQは、クセスするのに使用される。
タスクは(HDPり゛スフ以外は)、完全な記入項目をメモリ変更持ち行列MC Q中に入れることによりメモリ書込動作に対する要求を行なう。ASU−CQに 関して先に述べたよ゛うK、要求中のタスクは、MCQへあ記入項目を得るため に変更持ち行列ロックを所有することが必要とされ、そしてこのロックはタスク の開始前にプログラムコントローラPC(第9図)により要求中タスクのために 得られる。
MCQへの記入項目に対する情報は、記入項目がMCQ中におかれるのと同じと きに、または後の時間に与えられる。
入力が完了すると、MSは、タスクがMCQの頂部に達しかつ最古活動中タスク (OAT>になったとき要求中タスクに対する動作を初期化するであろう。
タスクハ、ASUIIII論1%1ニットAsu−ALU (11115図)の 出力から得られたメモリアドレスを、DP(第14図)のレジスタマツパ−RM APから得られた変換されたアドレスとともに与えることにより、読出メモリ要 求を行なう。タスクはその後、アドレスデータがメモリから続けてもよい。もし そうでなければ、タスクは持ち状態におかれる。各要求中のタスクはまた、メモ リ動作完了(MAC)条件を包含する。この条件は、各メモリ要求の最初のとき にそのタスクによりクリアされ、−かつ要求が満足されたときメモリサブシステ ムによりセットされる。これは、タスクコントローラTC(第10図)に対し、 もしそれがこの条件のために持ち状態にあればタスクを準備完了状態に戻すよう 合図する。
ここ、に与えられた発明の説明は、この発明の基本原理、および述べられた特徴 および利点を利用するためにそれが容易に実施され得る方法、を明確に表わすた めに主として特定の図解的な実施例に向けられているけれども、構造。
配置、構成要素、動作および使用における多くの変更態様がこの発明の熟視され た範囲内でこの発明の精神から離れることなく可能であることが理解されるべき である。添付の請求の範囲はしたがって、この発明の真の精神および範囲内にあ るすべてのそのような可能な変更態様をカバーしかつ包含するように意図されて いる。
工 Ty /71 y 72/7)y Ty /772 ”3 /717 T2rn 272rn3第61粗 愼71沼 集8 困 ハ 司 第1Q図 丁とからめ レレ又9電’+/?3− 偽14図 02込らの 5LCr>らの 国7際調査報告

Claims (1)

    【特許請求の範囲】
  1. 1. 選択的にアドレス可能なマイクロ命令を記憶するマイクロ命令記憶手段と 、 与えられた命令に応答して、前記命令を行なうために実行されるべき前記マイク ロ命令のうちの特定のものを識別する命令デコーディング手段と、 複数の連続的な時間開隔、各ステージに対して1つの時間開隔、にわたプて生じ ている複数の少なくとも3つのステージ中の前記マイクロ命令記憶手段から受取 った各マイクロ命令を実行するマイクロ命令実行手段とを備え、前記マイクロ命 令実行手段は、前記複数のステージの各々の動作が異なったマイクロ命令に関し て実行可能であるようなパイプラインされた方法で、前記複数のステージの各々 に対して要求される動作の各時151Il隅の間に同時の実行を提供するために 構成されかつ配電されており、前記マイクロ命令記憶手段から読出されたマイク ロ命令および前記マイクロ命令実行手段により実行されたマイクロ命令実行の結 果に応答して、次のマイクロ命令アドレスデータを与えるマイクロ命令順序付は 手段をさらに備え、前記命令デコーディング手段は、前記マイクロ命令順序付は 手段により与えられた前記法のマイクロ命令アドレスデータに応答して、各時間 開隔の間に次のマイクロ命令を前記マイクロ命令実行手段に与えるために前記マ イクロ命パイプラインされマイクロプログラムされたデータ処理システムにおけ る組合せ。 2、 前記マイクロ命令実行手段により与えられ、る前記複数の少なくとも3つ のステージは、各時間開隔の藺に書込動作は第1のマイクロ命令に関して実行可 能であり、計算動作は第2のマイクロ命令に関して実行可能であり、かつ読出動 作は第3のマイクロ命令に関して実行可能であるような方法で同時に動作する読 出動作デージ。計算動作ステージおよび書込動作ステージを含む、請求の範囲第 1項記載のバイ7ラインされマイクロプログラムされたデータ処理システムにお ける組合せ。 3、 前記命令デコーディング手段はまた、前記マイクロ命令実行手段と同時に 1作し、どのマイクロ命令が実行に対して準備ができているかを決定する手段を 含み、かつ前記マイクロ命令アドレス手段は準備完了マイクロ命令めうちの1つ から次のマイクロ命令を選択することが可能である、請求の範囲第1項または第 2項記載のパイプラインされマイクロプログラムされたデータ処理システムにお ける組合せ。 4、 前記命令デコーディング手段は、各命令を実行するために1以上のタスク を発生する手段を備え、各タスクは1以上のタスクマイクロ命令の実行により順 番に実行可能であり、 接続され、どのタスクが実行に対して準備完了であるがどうかを決定し、かつ準 備完了タスクマイクロ命令に対応するアドレスで前記マイクロ命令記憶手段を順 番にアドレスするためのタスク制御手段をさらに備え、前記マイクロ命令実行手 段により、各々が属する特定のタスクにかかわらず混合した順序で準備完了タス クマイクロ命令の実行を許容するように、アドレスの順序が選ばれていて、それ によって、マイクロ命令レベルでのタスクマルチプログラミングを特徴とする請 求の範囲第1項または第2項記載のパイプラインされマイクロプログラムされた データ処理システムにおける組合せ。 5、 前記システムはマイクロ命令の実行に使用する資源を含み、前記タスク発 生手段は各命令に対して発生された1以上のタスクの各々に対して資源要求を決 定するための手段を含み、かつ前記タスク制御手段は前記資源を前艷タスクにダ イナミックに割当てるためにこれらのタスク資源要求に応答する、請求の範囲第 4璃記載のパイプラインされマイクロプログラムされたデータ処理システムにお ける組合せ。 6、 前記タスク制御手段は、活動中タスクの混合を特徴とする請求の範囲第5 項記載のパイプラインされマイクロ7、 前記資源は予め定゛められた複数の浮 動スタック頂部レジスタを有するスタックを含み、前記マイクロ命令実行手段は 前記スタック頂部レジスタを経由してマイクロ命令間の^絡を与え、かつ前記タ スク制御手段はタスクが前記混合におかれるときタスクに対する入出力要求を前 記スタック頂部レジスタの特定のものにダイナミックに割当てるために作動する 、請求の範囲第6墳記載のパイプラインされマイクロプログラムされたデータ処 理システムにおける組合せ。 8、 前記タスクの実行の結果として要求される前記シス ゛テムの状態におけ る変更が、前記タスク発生手段により与えられるシーケンス指示に応答して決定 される予め決定されたシーケンスで起こるようにされることを保証するために同 期化手段が付加的に備えられている、請求の範囲第7項記載のパイプラインされ マイクロプログラムされたデ・−夕処理システムにおける組合せ。 9、 前記同期化手段は先入れ先出し変更持ち行列を備え、その中に、状態の変 更に影豐を及ぼすタスクの結果が一度に1つのタスクの割合でおかれ、かつその 後適当なシーケンスで除去される、請求の範囲第8項記載のパイプラインされマ イクロプログラムされたデータ処理システムにおける組合せ。 10、 命令に対応するマイクロ命令を実行することにより命令を実行するため の改善された方法であって、実行されるべき命令を取出すステップ゛と、各命令 を実行するために、実行されるべき1以上のマイクロ命令をアクセスするステッ プと、 閣間隔、にわたって生じている複数の少なくとも3つのステージにおいて前記マ イクロ命令の各々を実行するステップと、 各時間間隔の閣、各ステージに対して要求される動作を、前記複数のステージの 各々の動作が異なったマイクロ命令に関連して実行されるようなパイプラインさ れた方法で同時に実行するステップと、 マイクロ命令の実行の結果に関連して、アクセスされたマイクロ命令中に含まれ ている次のマイクロ命令アドレスに応答してマイクロ命令の順序付けを決定する ステップとを備える、パイプラインされマイクロプログラムされた1データ処理 システムにおける改善された方法。 11、 前記複数の少なくとも3つのステージは、読出動作ステージ、計算動作 ステージおよび書込動作ステージを含み、かつ各時間開隔の間に同時に実行する ステップは、第1のマイクロ命令に関して書込動作を実行すること、第2のマイ クロ命令に関して計算動作を実行することおよび第3のマイクロ命令に関して読 出動作をすることを備える、請求の範囲第10項記載のパイプラインされマイク ロプログラムされたデータ処理システムにおける改善された方法。 12、 どのマイクロ命令が実行に対しそ準備できているかを決定し、かつ準備 完了マイクロ命令のうちの1つから実行されるべき次のマイクロ命令を選択する ステップを含む、請求の範囲第10項記載のパイプラインされマイクロプログラ ムされたデータ処理システムにおける改善された方法。 13、 取出のステップが、 各命令に対応する実行されるべき1以上のタスクを発生するステップと、 1g、上のタスクマイクロ命令を実行することにより前記タスクの各々を実行す るステップと、 どのタスクマイクロ命令が実行に対して準備ができているかを決定するステップ と、 各々が属する特定のタスクにかかわらず混合された順序で準備完了タスクマイク ロ命令を実行するステップとを備える、請求の範囲第10項または、第11項記 載のパイプラインされマイクロプログラムされたデータ処理システムにおける改 善された方法。 14、 各命令に対して発生された1以上のタスクの各々に対する資源要求を決 定するステップと、それの実行に先立って、前記タスクの各々に要求された資源 をダイナミックに割当てるステップとをさらに備える、請求の範囲第13項記載 のパイプラインされマイクロ70グラムされたデータ処理システムにおける改善 された方法。 15、 状s表更が予め定められたシーケンスで起こるようにさせることにより 、前記タスクの実行の結果として要求される前記システムの状態における変更を 同期化するステップを付加的に含む、パイプラインされマイクロプログラムされ たデータ処理システムにおける改営された方法。
JP50310981A 1981-09-30 1981-09-30 マイクロ命令タスキングを採用するパイプラインされマイクロプログラムされたディジタルデ−タ処理装置 Pending JPS58501559A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/GB1981/000210 WO1983001317A1 (en) 1981-09-30 1981-09-30 Pipelined microprogrammed digital data processor employing microinstruction tasking

Publications (1)

Publication Number Publication Date
JPS58501559A true JPS58501559A (ja) 1983-09-16

Family

ID=10518810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50310981A Pending JPS58501559A (ja) 1981-09-30 1981-09-30 マイクロ命令タスキングを採用するパイプラインされマイクロプログラムされたディジタルデ−タ処理装置

Country Status (2)

Country Link
JP (1) JPS58501559A (ja)
BR (1) BR8109029A (ja)

Also Published As

Publication number Publication date
BR8109029A (pt) 1983-09-06

Similar Documents

Publication Publication Date Title
US4384324A (en) Microprogrammed digital data processing system employing tasking at a microinstruction level
US4493020A (en) Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
EP0059810B1 (en) Microprogrammed digital data processing system employing multiphase subroutine control for concurrently executing tasks
EP0600611B1 (en) Super scalar computer system
US4493019A (en) Pipelined microprogrammed digital data processor employing microinstruction tasking
US4297743A (en) Call and stack mechanism for procedures executing in different rings
US5367650A (en) Method and apparauts for parallel exchange operation in a pipelined processor
US6286027B1 (en) Two step thread creation with register renaming
US4432051A (en) Process execution time accounting system
US4084228A (en) Process management structures and hardware/firmware control
US5218712A (en) Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption
US4395757A (en) Process synchronization utilizing semaphores
US5450560A (en) Pointer for use with a buffer and method of operation
Swensen et al. Hierarchical registers for scientific computers
JP2000222207A (ja) コンピュ―タ処理システムにおけるロ―ド動作を順序変更する方法および装置
JPH087678B2 (ja) 異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
KR20010053622A (ko) 가상 레지스터 번호들을 이용하여 논리적 레지스터번호들을 물리적 레지스터 번호들로 대응시키도록 구성된프로세서
JPS603653B2 (ja) 内部プログラム式データ処理装置
JPH08505725A (ja) 命令実行を制御するため命令にタグを割り当てるシステム及び方法
CA2123448C (en) Blackout logic for dual execution unit processor
US6108771A (en) Register renaming with a pool of physical registers
JPH10301778A (ja) レジスタの名前変更を管理する方法および装置
JPS58501559A (ja) マイクロ命令タスキングを採用するパイプラインされマイクロプログラムされたディジタルデ−タ処理装置
EP0057312B1 (en) Subroutine control circuitry