JPS58500778A - 3つの時間多重部分における命令を実行するためのデイジタルコンピユ−タ - Google Patents

3つの時間多重部分における命令を実行するためのデイジタルコンピユ−タ

Info

Publication number
JPS58500778A
JPS58500778A JP57501621A JP50162182A JPS58500778A JP S58500778 A JPS58500778 A JP S58500778A JP 57501621 A JP57501621 A JP 57501621A JP 50162182 A JP50162182 A JP 50162182A JP S58500778 A JPS58500778 A JP S58500778A
Authority
JP
Japan
Prior art keywords
instruction
instructions
microcommands
digital computer
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP57501621A
Other languages
English (en)
Other versions
JPS6112290B2 (ja
Inventor
イ−サマン・デイビツド・リ−
Original Assignee
バロ−ス・コ−ポレ−シヨン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by バロ−ス・コ−ポレ−シヨン filed Critical バロ−ス・コ−ポレ−シヨン
Publication of JPS58500778A publication Critical patent/JPS58500778A/ja
Publication of JPS6112290B2 publication Critical patent/JPS6112290B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 3つの時間多臘部分における命令を実行するためのディジタルコンピュータ この発明はディジタルコンピュータの構造に関し、より特定的には命令がコンピ ュータ内で実行される順序を指示するディジタルコンピュータにおける制御回路 に関する。
一般的にディジタルコンピュータが実行する命令は、メモリ内にストアされてい る。またメモリ内のこれらの命令は、プログラムと呼ばれる特定の順序に配列さ れて(する。
またコンピュータは、正確な結果を得るために、それらの命令をその順序で実行 しなければならない。
ディジタルコンピュータがオペレートする共通の順序は、メモリから成る命令を 持ってきて次にその命令を実行し、それからメモリから次の命令を持ってきて次 にその命令を実行する、などのようなものである。この順序はたとえば、18M システム/360.モデル50にお!11て用(Xられている。3aslr S 、 l−1ussOnによる M lcroprograwslng 。
p rinciples and p ractices、 1970年、ペー ジ34を参照。
また命令は一般的に、メモリから持ってこられ力)つメモリ内にストアされるオ ペランドを呼出す。したがってより詳細なレベルにおいて、上記の命令の実行の 順序は以下のように行なわれる。まず最初、ディジタルコンピュータはメモリか ら成る命令を持ってくる。次に、コンピュータはその命令を解釈する。次にコン ピュータは、メモリから必要なオペランドを持ってくる。次にコンピュータは、 それらのオペランドについて演算オペレーションを実行する。
そして次にコンピュータは、メモリ内にその結果を返送してストアする。それか らこの順序が、次の命令のために繰返される。
しかし上記の命令の実行の順序が有する1つの問題は、メモリからの命令または オペランドを読出すためにかかる時間が、一般的にディジタルコンピュータが2 つのオペランド上で内部演算処Ilを実行するのにがかる時開よりも大きいとい うことである。1つの桑型的な例として、メモリの読出時間は1マイクロ秒であ るが、ディジタルコンピュータの内部サイクル時間はほんの0.1マイクロ秒で ある。
このように上述した命令の順序においては、ディジタルコンピュータはその必要 な命令およびオペランドをメモリが供給するのを持つ必要があるので、何もする ことなくその多くの時間を消費する。
上のrRllを解決プる1つの明らかな方法は、技術が提供する最も高速のメモ リを単純に用いることである。しかしこの解決は、^速メモリの値段が速度の遅 いメモリの値段よりも常に非常に高いので、−味あるものではない。つまりこの 解決は、多くの市場の要求にとって高価すぎる。
別の解決方法は、コンピュータが時間多重の方法で数個の異なったプログラムを 実行するようなディジタルコンピュータの制御回路を構成することである。たと えばLevy等に対する米国特許第3.980.9921!を参隙、多重プログ ラム化されたコンピュータにおいて、コンピュータはメモリ読出が形成されるま で第1のプログラムを実行することができる。その地点でコンピュータは第1の プログラムの実行を停止せねばならず、そして第2のプログラムの実行を開始す る。第2のプログラムの実行は、そのプログラムのためのメモリ読出が形成され るまで続けることができる。次にコンピュータは、第3のプログラムの実行を開 始しなければならない。この順序は最管のプログラムにおいてメモリの読出が形 成されるまで続けられ、この場合に診いてコンピュータは第1のプログラムにス イッチバックしかつそれが明らかにストップされた地点からその実行を続ける。
この方法においてはディジタルコンピュータμ、メモリからの読出の開始と要求 された情報の受領との間に実行するための有益な仕事を有する。したがってメモ リが比較的に遅いものであっても、コンピュータの時間の有効な利用が行なわれ る。
しかし上記の順序の有するIIW&t、同時に実行されるための多重のプログラ ムが存在するときにのみそれが機能するということである。すなわち実行される ためのプログラムがただ1つしかなければ、コンピュータは役に立たない。
またメモリは、一度に全てのプログラムを含むことができるほど充分に大きくな ければならない。そして大きなメモリは、システムのコストを増大させる。ざら に別のハードウェアがプログラムの各々の状態のトラックを維持するためにディ ジタルコンピュータ内に必要であり、このことがまたシステムのコストを増大さ せる。たとえば米国特許第3.980.992号のコンピュータにおいては、実 行されている各プログラムのために独立したレジスタのセットが必要である。
上述の問題を解決するための別の方法は、1つのプログラムにおける1つの命令 よりも多くの様々な部分が特開インターリーブされた順序においてプロセスされ るようなディジタルコンピュータの制御回路を構成することである。
たとえばコンピュータは、現在の命令を解釈しかつ実行する前に、実行されるべ き次の命令のための読出を始め得る。
したがってこの次の命令は、それが実行されるべき時が来たときにはメモリから 利用可能であろう。この順序はたとえば、18M7094において用いられティ る。I ntroductlon to Computer A rchtte cture 、 1975年、ページ383−384を参照。
成る種の先行技術のコンピュータは、各命令の実行のフェースをオペランドを持 ってくる部分とそのオペランド上でオペレートされる他の部分とに分割すること によってさ。 らにステップを進めている。それからこれらの2つの興なった命 令のための部分は、インターリーブまたはオーバラップされる。例えば、Com puter 、 1980年10月、ベージ10. Michael J、 F lynnによるj [) ’+rections and l 5sues i n Archltecture and Language Jを参照。
しかしこれらの両方のインターリーブする順序はまた、この明細書において詳細 な説明の第7Allおよび第78Iliとともに述べられるようないくつかの眼 界を有している。
したがってこの発明の基本的な目的は、上述したすべての問題点を克服した改良 されたディジタルコンピュータを提供することである。
1mすL この目的およびその他の目的は、命令の各々が第1、第2お°よび第3のマイク ロコマンドのセットによって表わされるメモリ手段を含むディジタルコンピュー タによってこの発明に従って達成され、Il!1のマイクロコマンドのセットは 第2のセットの前に実行され、また第2のセットは第3のセットの前に実行され る。このコンピュータはざらに、プログラムにおけるwilの命令のためのマイ クロコマンドの第3のセットを時間多重化された反復の順序において実行する制 御回路を含み、その第1の命令の後にプログラムにおける第2の命令のためのマ イクロコマンドの第2のセットが続き、その第2の命令の後にプログラムにおけ る第3の命令のためのマイクロコマンドの第1のセットが続く。
図面の簡単な説明 この発明の様々な特性および効果は、以下の詳細な説明および添付の図面を参照 することによってよく理解されるであろう。
第1図は、この発明に従って構成されるディジタルコンピュータの好ましい一実 施例を示している。
第2因は、第1図のコンピュータにおいて繰返しの時間多重化された命令の実行 を示している。
第3図は、第1図のコンピュータにおける繰返しの時間多重化された命令の実行 の順序をざらに示している。
第4図は、第1図のコンピュータ内の回路をアドレスしているコントロールメモ リの1つの好ましい実施例を詳細に示している。
第5A@および第5B図は、第1図のコンピュータのコントロールメモリにおけ る1つの構成を備えるマイクロコマンドの3つのセットを示している。
第6A図および第6B図は、第1図のコンピュータのコントロールメモリにおけ る他の構成を備えるマイクロコマンドの3つのセットを示している。
第7A!PillBよび第7B図は、この発明が示すのとは逆の択一的な時間多 重化された命令の実行の順序を示している。
第8図は、第1図のコンピュータにおける回路をアドレスするコントロールメモ リの他の好ましい一実施例を詳細に示している。
1里!」」UすL1 ここで第1図を参照すると、この発明に従って構成されるディジタルコンピュー タ10の1つの好ましい実施例が示されている。一般的にディジタルコンピュー タ10は、演算部20、入力/出力s30および制御i!i1.40がらなって いる。演算部20は命令によって特定されるオペランドについて関数を実行する ようにオペレートし、入力/′出力部30はこれらの命令およびオペランドを持 ってくるようにオペレートし、また制御部40は演算部20および入力/′出力 部30のオペレーションを指揮することによってこれらの命令の実行を順序づけ るようにオペレートする。
実行されるべきこれらの命令は、バス60を通じて入力/出力部30に連結され るメモリ50内にストアされる。
メモリ50において、この命令はシンボルI5.Iz、1、・・・によって表わ される。プログラムのm点から、命令I1.T2.Is・・・はプログラム内の 命令のストリングを形成し、まず最初に命令■、が完全に実行され、次に命令I 2が完全に実行され、それから次に命令1.が完全に実行される。
しかしこの発明において制m部40はこれらの命令の各々を3つの部分に分割し 、かつ時間多重化された順序で数個の異なった命令のためのこれらの部分を実行 する。ブ臼グラマにとっては、命令I+、Iz、・・・がまだ1回に1度実行さ れているようである。しかしインターリ−ピングのために、プログラム内の命令 のストリングを実行するのにかかる時間は、突貫的に減少されている。
ここでセクション20.30および40の各々のより詳細な構成を考えよう。ま ず第1図に示されたように、セクション20はレジスタファイル21、マルチプ レクサ22および演算装置23を含む。これらの構成要素は、シリアルな形式に 内部で連結され、コンピュータ10の1サイクル内でレジスタファイル21内の オペランドはマルチプレクサ22を通じて演算装置23に選択的に移動され、ま た演算装置23からの結果はバス24を通じてファイル21内のレジスタのうち の1つに返送される。
ファイル21内のレジスタのうちの成るものは、以下のように着定される。レジ スタEARは、メモリ50内の命令I+、I2.Is・・・のうちの1つをアド レスする命令アドレスレジスタである。レジスタTO8は、1つのオペランドを 保持するスタックレジスタのトップである。このスタックの残りの全てのものは 、メモリ50内に含まれる。
ここでシンボルTO8−1はスタック−1のトップを示し、シンボルTO8−2 はスタック−2のトップを示している。
レジスタSOvは、スタック内の空閤数のトラックを維持するようにスタックが ポツプされまたはブツシュされた時ごとに増大または減少されるスタックオーバ フローレジスタである。またレジスタR1,・・・、 Rnは、メモリ50のた めのアドレスまたは演算オペレーションの中間結果などの様々なアイテムをスト アするのに用いられる汎用レジスタである。
コンピュータ10のセクション30は、出力持ち行列31および入力持ち行列3 2を含む。出力持ち行列31はメモリ50に対する伝送のための演算部20から のメツセージを受取るようにオペレートし、またそれらが現実にバス60に送ら れるまでそれらのメツセージをバッファするようにオペレートする。これらのメ ツセージはたとえば、メモリ50からの命令の要求、メモリ50内のスタック部 からのデータの要求またはメモリ50内のスタック部内のストレージのためのデ ータの伝送を含む。
入力持ち行列32はバス60を介してメモリ50からメツセージを受取るように 動作し、またそれらが演算装置i20によって必要とされるまでそれらのメツセ ージを保持する。バス60からのこれらのメツセージは、出力持ち行列によって 以前に要求された命令を含む。
もちろん成る時1IllIl隔ΔT1は、出力持ち行列31からのデータの要求 の送出と入力持ち行列32内のそのデータの受−との間に起こらねばならない。
またぞの時間間隔は、マルチブレク“v22およV*算装置123を逃じてレジ スタファイル21からのデータをレジスタファイルへ返送するのにかかるljl l1gj隔ΔT2よりも何倍か長いものであ、る必要がある。
餞型的に簡lit藺陽△11は、峙lI!l配限ΔT2よりも5〜10@長い。
正確に何倍かということは、メモリ50のスピードおよび他の@lf(図示せず )からのバス60のための内容に依存する。したがって、出力持ち行列31を通 ずるデータの要求と入力持ち行列32上のそのデータの受領との闇に実行される 伺らかの有用な仕事を持つことが、コンピュータ10にとって特に望まれる。そ うでなければコンピュータ10は、データ到着まで何もせずに持たねばならない 。
この問題をアドレスするために、制御部40は命令■、。
12、I−、・・・の各々がマイクロコードS^、5eF3よびScの3つのセ ットによって表わされる制−メモリ41を含む。命令■、を実行するこれらのマ イクロコードセットは、制御メモリ41においてS:、SaおよびSCのように 示され、命令12を実行するこれらのマイクロコードセットはS : + S  aおよびS2として示される。
マイクロコードセット5AISalおよびScにとっての1つの制約は、いかな る特定の命令にとっても、セットSc内のマイクロフードはセットSc内のマイ クロコードよりも前に実行されなければならず、またセットSa内のマイクロコ ードはセットSc内のマイクロコードよりも前に実行されなければならないとい うことである。しかしこのことは、各々の特定の命令のためのセットSA、Sa およびSc内のマイクロコードが次から次へと直ちに実行されねばならないとい うことを意味するものではない。またこの発明において各々の特定の命令のため のセットSA+ScおよびS、内のマイクロコードの実行は、他の命令のための マイクロコードセットの実行とインターリーブされる。
マイクロコードセットS−、SaおよびScにおける他の制約は、セットScマ イクロコードがメモリ50内にあるスタックのその部分からのポツプを実行し、 セットScマイクロコードが演算ユニット20内に存在するスタックのイの部分 についてポツプを実行しかつメtす50内にあるスタックのその部分におけるブ ツシュを実行し、またセットScマイクロコードが演算ユニット20内に存在す るスタックのその部分におけるブツシュを実行するということである。これらの 制約は、1111における42を参照して示されている。
l1IIIIIメモリ41はまたマイクロコードCOMの1つの共通のセットを 含み、出力持ち行列31を通じて命令の要求を送りかつ入力持ち行列32上にお いてこれらの要求された命令を受取るようにオペレートする。このマイクロコー ドの共通のセットは、ここにCOM、Sc 、Sa 。
1−/ SAとしてシンボル記号で表わされる詩閲多鳳化された繰返しの順序において上 述したマイクロコードセット5AISaおよびScに従りて実行される。
この轢返し順序にマイクロコードを実行するために、制御部40は回路43をア ドレスする一1111メEりを含んでいる。オペレーションにおいて、回路43 はまず共通のマイクロコードセットのための制御メモリアドレスCMAを形成し 、次に命令1+−aのマイクロコードセットScのためのアドレスを形成し、次 に命令I l−2のマイクロコードセットS11のためのアドレスを形成し、そ して次に命令I+−1のマイクロコードセットSAのアドレスを形成する。それ からこの順序が、1回ごとに変数iが更新されながら順次繰返される。
回路43によって形成される各アドレスは、バス44を越えて送られて制御メモ リ41から対応するマイクロコマンドを選択し、そしてその命令は制御メモリレ ジスタ45内にロードされる。そこから、そのマイクロコマンドの様々な部分が リード46を通じて連結されて、演算ユニット20、入力/出カニニット30t 3よび回路43をアドレスする制御メモリのオペレーションを制御する。
ここで第211および1113図を参照すると、コンピュータ10の繰返しの時 間多層化されたオペレーションが詳細に示されている。まず第2図を考える。こ こでブロック71は、コンピュータ10がマイクロコードCOMの共1のセット を実行することによってその繰返しの時間多重化されたオペレーションを開始す ることを示している。そのマイクロコードはメモリ50内の命令■のための出力 持ち行列31を通じて取出を送り、そして入力持ち行列32から命令1 r−+ を取出す。命令11−+は繰返しの順序を通じて以前のパス内に取出されたとい うことを注意されたい。
次にブロック72内に示されるように、コンピュータ10は命令■1−0のセッ トS、内のマイクロコードを実行する。そのマイクロコードは入力持ち行列32 からオペレートされるべき最後のワードを得て、その最後のワードおよびファイ ル21内のいかなるレジスタにおいても要求されているいかなる演算オペレーシ ョンをも実行し、またスタックレジスタTO8のトップ上にその結果をブツシュ する。
ここで再び、入力持ち行列32から持ってこれうているデータは、繰返しの順序 を通じて以前のパス内に取出された。
次にブロック73に示されるように、命令I+−2のためのセットSa内のマイ クロコードが実行される。そのマイクロコードは入力持ち行列32から、最後の ワードを除いて実行されるべきメインメモリ50内の2タツクからの全てのワー ドを持ってくる。またそれらのワード上に演算オペレーションを実行し、かつメ モリ50内のスタックに対して出力持ち行列31を通じて全ブツシュを実行する 。ここで再び、入力持ち行列32から持ってこられているデータは、繰返しシー ケンスを通じて駅前のパス内に取出されている。
次にブロック74によって示されるように、命令1 +−tのためのセットSA 内のマイクロコードが実行される。そのマイクロコードは、メモリ50内のスタ ックに対して出力持ち行列31を通じてポツプ命令を送る。すなわちメモリ50 内のスタック部分から命令1 l−+によって要求されるオペランドは、このマ イクロコードのセットによって取出されている。その俵変数lが1だけ更新され 、繰返しの順序が反搬される。
このオペレーティングの順序の1つの魅力的な特性は、コンピュータ10が出力 持ち行列31を通ずるメモリ50からの命令の取出と入力持ち行列上にお番ブる その命令の受取りとの間において、実行されるべき何らかの有用な仕事を常に持 っているということである。特に第2図に見得るように、コンピュータ10はブ ロック71内の命令■、を取出して、次にその取出された命令を受取る準備がで きる前に、ブロック72.73および74において示される全ての仕事を実行す る。このようにコンピュータ10は、メモリ50から帰ってくる取出された命令 を単純に持つということはない。
上述のオペレーティングの順序の他の魅力的な特徴は、コンピュータ10がメモ リ50内のスタックからのオペランドの取出と入力待ち行列32内のそれらのオ ペランドの受取りとの#ll&:常に何か行なうことを持っているということで ある。第2図を参照すると、メモリ50内のスタックからのオペランドはブロッ ク74内にポツプされているが、それらは次のブロック73まで用いられない。
したがってコンピュータ10は、メモリ50のスタックからのオペランドのその 要求とそのオペランドの現実の受取りとの園に、ブロック71および72内に示 される全ての仕事を実行する。
さらにメモリ50内のスタックからポツプされるただ1つのオペランドを要求す る知い命令のために、ポツプされたオペランドがオペレートされる前に繰返しの 順序を通ずる2つの完全なバスが形成される。すなわちブロック74内の1つの オペランドポツプの後、1つの完全なバスがブロック71.72.73および7 4を通じて形成されかつ他のバスがブロック71を通じて形成されるまでは、そ のオペランドはコンピュータ10によってオペレートされない。このことは、ス タックに方向付けられた命令の大部分がスタックのトップおよびスタック−1オ ペランドのトップのみでオペレートされるので重要である。
上述したコンピュータ10の連続したオペレーションにおける伯の重要な点は、 いかなる命令にもよるメモリ50内のスタックからの全てのポツプが、メモリ5 0内のスタックに対する全ブツシュの後命令に先行して形成されるということで ある。このことは第2図のブロック73および74を見ることによって明らかで あり、そこでは命令1+−2のためのメモリ50内のスタックに対する全ブツシ ュがブロック73内に実行されており、かつ命令I +−+のためのメモリ内の スタックからのいかなるポツプもブロック74内に実行されている。もし命令1 +−zのためのメモリ50内のスタックに対するブツシュのいくつかが命令I、 −7のためのメモリ50内のスタックからのポツプの後に起こるならば、それら のポツプはもちろんエラーを作り出す古いデータを取出すことになる。
コンピュータ10の上述のオペレーションのさらに他の重要な特徴は、いかなる 命令にもよるメモリ50内のスタックに対する全ブツシュが、命令に先立って全 ての演算オペレーションが完了された優に起こるということである。
このことはブロック72および73の参照によって明らかであり、そこではボッ クス72において演算オペレーションが命令夏、−6のために完成され、かつブ ロック73においてメモリ50内のスタックに対するブツシュが命令1+−2の ために始まる。もし命令I +−zのためのメモリ50内のスタックに対するブ ツシュのいくつかが命令■1−0のための演算オペレーションの全てが完了され た優に始まったならば、そのときはスタック上にブツシュされているデータのい くつかが再びエラーを引起こすような古いものである。
ここで第3図を参照すると、コンピュータ10が命令l++I2*・・・を実行 する順序がまた別の形式に示されている。第3図はCOM、Sc 、Saおよび S、の符号を付した列を有し、サイクル1からサイクル8まで記号が付けられた 行を有し、かつ実行されている命令を示す様々な行−列位置における数字を有す るマトリックスを含む。コンピュータ10は左から右の順番にあるサイクルのた めの記号が付けられたマイクロコードセットを実行し、次に左から右の順番に次 のサイクルのための記号が付けられたマイクロコードセットを実行する。
たとえばサイクル4でスタートして、コンピュータ10はまず、出力持ち行列3 1を通じて命令4を取出しまた入力持ち行列32内の命令3を受取る、マイクロ コードCOMの共通のセットを実行する。次にコンピュータ10は、命令1のた めのマイクロコードセットScを実行し、次に命令2のためのマイクロコードセ ットS8を実行し、そして次に命令3のためのマイクロコードセットSAを実行 する。次に共通のマイクロコードセットが実行され、命令5のための取出しが送 られてかつ命令4が受取られる。
次に命令2のためのマイクロコードセットScが実行され、次に命令3のための マイクロコードセットSRが実行され、次に命令4のためのマイクロコードセッ トSAが実行される。
また完全のために、サイクル1から3が、それが最初にパワーオンされるときの コンピュータ10のオペレーションを示している。ここでいくつかのマイクロコ ードセットが、オペレートするための前もっての命令が何もないために、マトリ ックス内のXSによりて示されるようにスキップされねばならない。しかしこの スキッピングはくパワーオンのときに)ただ1回だけ起こり、したがって=Iン ビJ−夕の性能に与えるその影響は重大なものではない。
第3図はまた、命令15.I2.Is、・・・がブランチ条件命令であるときの コンピュータ10のオペレーションを示している。もしそのブランチを取らなけ れば、そのときはコンピュータ10はサイクル4および5と関連しノで上述され たように単に連続する。しかしもしそのブランチを取れば、そのときはコンピュ ータ10はサイクル6.7および8によって示されるように少し興な・ンた方法 でオペレートする。ここで第5の命令がブランチ条件命令であり、かつテストさ れる状態がそのブランチを取るようなものと想定する。
ここでブランチ命令は、g、前の命令、この場合においτは命令4によってセッ トアツプされる状態をテストすることができる。しかし命令4はサイクル7まで その実行を遂行せず、したがってブランチ命令のためのマイクロコードセットS 8がその状態をテストし得る。もしブランチを取るべきであれば、そのときはブ ランチ命令のt:めのマイクロコードセットSaはブランチされる命令と次の命 令の両方を取出す。第3図において、(:’、lらの2つの命令は命令1+15 よび2であると考えられる、。
またそのブランチのためのマイクロコ−ドセット−88は、(第3図においては 命令7および(3である)入力持も行列からの予め取出されたいかなる他の命令 も除去′!J′る。次に入力持ち行列およびその命令のためのマイク[]:]J −ドセットSに対(るブランチから、ブランチされ′7゛いる命令を受ける。そ の後順序は、上に記述されたように醜く。プランチ命令のためのマイクロコード セットSAおよびScは、単に、順に次のマイクロコードセットにブランチする 1つのマイクロコマンドである。
ここで回路43をアドレスする制御メモリの好ましい一実施例が、第4図と関連 して詳細に示される。このアドレシング回路は、シリアルな形式に互いに内部連 結されているレジスタ81.82および83を含む。レジスタ81はパス24上 に演算部20からのその入力を受け、レジスタ82はレジスタ81からのその入 力を受け、またレジスタ83はレジスタ82からのその入力を受ける。
オペレーションにおいて、命令1 l−+は、共通のマイクロコードCOMによ って入力持ち行列32からレジスタ81へ転送される。同時にレジスタ81の以 前の内容がレジスタ82に転送され、またレジスタ82の以前の内容がレジスタ 83に転送される。このオペレーションは、共通のマイクロコードが実行される ときごとに実行される。
同様に3つのメモリ84.85および86が、アドレシング回路43内に含まれ る。メモリ84.85および86は、それぞれレジスタ81.82および83に よってアドレスされる。これらのメモリからの出力は、その出力がバス44上の 制御メモリ41のためのアドレスCMAを形成するマルチプレクサ87に対して 送られる。
メモリ84は、全ての命令のためのマイクロコードセットSAのための最初のア ドレスをストアする。そしてメモリ84が命令11−1によってアドレスされて いるので、メモリ84の出力は命令I+−’+のマイクロコードセットSAのた めの最初のアドレスである。同様にメモリ85は全ての命令のマイクロコードセ ットSaのための最初のアドレスをストアし、またメモリ86は全ての命令のた めのマイクロコードセットScのための最初のアドレスをストアする。そしてメ モリ85および86はそれぞれ命令I I−2おりは命令11−2のマイクロコ ードセットSaのための最初のアドレスおよび命令■1−.のためのマイクロコ ードセットScの最初のアドレスである。
命令のうちの1つのための特定のマイクロコードセットを入力するために、制御 メモリレジスタからのリード46上の制御信号がマルチプレクサ87に対して送 られて、メモリ84.85および86のうちの1つからの出力を選択する。次に マイクロコードセットが入力されてしまった俵に、制御メモリのアドレスがリー ド46上の制御信号に応答して加算回1!88によって増加または減少される。
パス24上のテスト状態がまた加算回路88に対して送られて、マイクロコード セットの各々の内でテストしかつブランチすることを可能とする。
このオペレーションは第5A図から第6B図を参照することによってよりよく理 解され、図において2つの命令のための実際のマイクロコードセットSA、Sa  、およびS。が示されている。特に第5A図は、「論WOR命令」のためのマ イクロコードセットを示している。この命令が実行される前に、そのスタックは 第5A図の左側の部分に示されるようなものであり、そこにおいてN1.N2お よびN3はスタック内のトップの3つのエントリである。次に命令が実行された 後、スタックエントリのトップはN1およびN2の論110Rによって得られる 結果のRであり、スタック内の次のエントリはN3である。
このオペレーションは、第5B図のマイクロコードセラ1”SA、S11および Scによって達成される。SAにおいて、出力持ち行列31を通じて要求が送ら れてメモリ50内のスタック−1オペランドのトップが読出され、また共通のマ イクロコードのセットへのジャンプが行なわれる。
このジャンプは、前述した第1図から第4図の繰返しの順序に従う。
マイクロコードセットS8はスタックオーバフローレジスタに1を加算し、そし てそれは命令1+−+のためのマイクロコードセットSAにジャンプする。この ジャンプはり−ド44上の制御メモリアドレスとしてメモリ84の出力を選択す ることによって達成され、それはまた前述した第1図から第4図の順序に従う。
マイクロコードセットScは入力持ち行列をスタックレジタのトップと論理的に ORし、スタックレジスタのトップ内にその結果をストアし、かつ命令It−t のためのマイクロコードセットSaにジャンプする。このジャンプはリード44 上の制御メモリアドレスとしてメモリ85の出力を選択することによって達成さ 蛛る。メモリ86の出力はそれは共通のマイクロコードルー7チンの最後に起こ るということを注意されたい。
命令のためのマイクロコードセットSA、S11およびS。
を示している。この命令はメモリ50から変数を取ってくるようにオペレートし 、かつスタックのトップにそれを冒く。このオペレーションは、第6A図に示さ れている。
このオペレーションを実行する゛ために、マイクロコードセットSAは変数Vを 読出す命令、を出力持ち行列31を通じてメモリ50に対して送り、それは共通 のマイクロコードルーチンにジャンプする。マイクロコードセットSaは、スタ ック−1の位置のトップ内に書込む命令を出力持ち行列31を通じてメモリ50 に送る。次にスタックレジスタのトップは、それがメモリ50に転送され得るよ うに出力持ち行列内にロードされる。
次にスタックオーバフローレジスタが更新され、命令lト1のマイクロコードセ ットSAへのジャンプが行なわれる。次にマイクロフードセットScにおいて、 マイクロコードセットSAによって要求された変数■が入°力持ち行列32から 持ってこられ、スタックレジスタのトップ内に口−ドされる。それからジャンプ が、命令11−2のマイクロコードセットSRに対してとられる。
比較の目的のために、いくつかの選択的なマイクロコードインターリ−ピング順 序が、ここで第7A図および第7B図と関連して考慮されよう。ここで各命令は 、ただ2つのマイクロコードセットSXおよびSvに分割される。第7A図の順 序において、命令I+のだめのマイクロコードセット8つが最初に実行され、次 に命令!+−1のためのマイクロコードセットSYが実行され、そして次にその 順序が繰返される。また第7B図の順序において、命令Itのためのマイクロコ ードセットSXが実行され、次に命令11−2のためのマイクロコードセットS Yが実行され、そして次にその順序が繰返される。
ここで、各命令がただ2つのマイクロコードセットに分割されるこれらのインタ ーリ−ピング順序および他のインターリ−ピング順序は、スタックに向けられた 命令のためには全く働かないということが示されよう。スタックに方向付けられ たマシンにおいて、実質的には全命令はメモリ50内のスタックから1つまたは より多くのオペランドをポツプする。また実質的には全命令は、ファイル21内 のTOSレジスタを修正する。第5図におけるような多くの命令は、他にはほと んど何もしない、したがって2つのマイクロコードセットSxおよびSyに分割 されていることが利点であるこれらの命令のために、Sxはメモリ50からポツ プしなければならず、またSYはTOSレジスタを修正しなければならない。
いくつかの命令は第6図に示されるようなものであり、それらGtTOSレジス タの内容をメモリ50内のスタック上にブツシュする。命令11のためにそのブ ツシュが行なわれるときを考える。それは命令I、+、内のポツプの前に行なわ れねばならない。他方第2図とll1l遷して示されるように、そのポツプは間 違ったアイテムを作り出す。命令11+1内の最初のポツプはSx内において行 なわれ、そのため命令11内のブツシュがそれに先立たねばならない。
TO8の命令11内のブツシュはSYに従わねばならず、そこにおいてTO8は 修正される。他方古いデータが、第2図と関連して前述されたように、スタック 上にブツシュされる。したがって命令■1内のブツシュは、8%に従いかつSx に先立たねばならない。
しかし第7A図から見得るように、命令!、のいかなる部分もS ’Y’とS; ζ′との間には起こらない。さらに第7B図の順序において(および他の順序の 導入によって)、命令■、ヤ、のマイクロコードセットSXは命令11−+のマ イクロコードセットSYに従うこともしない。したがって命令がただ2つのマイ クロコードのセットに分割されるいかなる先行技術の時間多膿化されたインター リ−ピング順序も、全く動作しない。
次に第8図を参照して、回路43をアドレスする制御メモリの他の好ましい実施 例が示されている。回路をアドレスするこのメモリは、3つのレジスタ91.9 2および93を含んでいる。レジスタ91はバス24からその入力を受取り、ま たその出力はメモリ94をアドレスする。このメモリは、マルチプレクサ95に 対して連結されるその出力を備えており、かつマルチプレクサ95の出力はバス 44上のIQ1mlメモリアドレスCMAを形成する。
メモリ94は、全ての命令のための全てのマイクロコードセットSAの開始アド レスをストアする。オペレーションにおいて、共通のルーチンはレジスタ91内 に命令1+−4をロードし、したがってメモリ94の出力は命令11−1のため のマイクロコードセットSAの開始アドレスである。
このアドレスは、セットSa内の最後のマイクロコマンドからバス46上の制御 信号に応答して、マルチプレクサ94を通じて選択的に移動される。
マイクロコードセットSAが入力された俵、加算回路96が適用されて、第4図 の回路と関連して前述されたように制御メモリアドレスCMAを増大し、かつ条 件付きで修正する。次にセットSA内のマイクロコードの実行が完了したとき、 共通のマイクロコードセットに対してジャンプが行なわれ、さらにSAマイクロ コードが能動化されている命令のためのマイクロコードセットS8の開始アドレ スでレジスタ92がロードされる。この実施例におけるこの開始アドレスは、加 算回路96によって形成される。
同様にセットSa内のマイクロコードの実行の最後において、レジスタ93内に ストアされる加算回路96によってアドレスが発生される。このアドレスは、S llマイクロコードが能動化されている命令のためのマイクロコードセットS、 のだめの開始アドレスである。このようにアドレス回路43の第8図の実施例に おいて、マイクロコードセットS^およびSaは、第4図の実施例に示されたよ うな3つのメモリ84.85および86の必要性をなくするセットSIIおよび Scのための開始アドレスをそれぞれ形成する。
この発明の種々の好ましい実施例が、詳細に記述されてきた。しかしざらに多( の転換や修正が、この発明の特徴や目的から外れることなくこれらの詳細な説明 に対してなされ得る。したがって、この発明はこれらの詳細な説明に限定される ものではなく、添付の請求の範囲によって制定されるものであるということが理 解されるべきである。
FIG、6B。
So RDV→ OQ、ジiン7’COMFIG、7B。
FIG、8゜ 国際調査報告

Claims (1)

  1. 【特許請求の範囲】 1、時間多重化された形式における1つのプログラムの命令を実行するためのデ ィジタルコンピュータであって、前記命令の各々が第1、第2および第3のマイ クロコマンドのセットによって表わξれるメモリ手段を備え、前記第1のマイク ロコマンドのセット&を前記第2のセットの前に実行され、かつ前記第2のセッ トは前記第3のセットの前に実行されねばならず、 時−多重化された繰返しの順序において、前記プログラム内の第1の命令のため の前記第3のマイクロコマンドのセットを実行し、続いて前記第1の命令の後の 前記プログラム内の第2の命令のための前記第2のマイクロコマンドのセットを 実行し、続いて前記第2の命令の後の前記プログラム内の第3の命令のための前 記第1のマイクロコマンドのセットを実行するための制御手段をさらに備える、 ディジタルコンピュータ。 2、 第1および第2の部分からなるスタック手段をさらに含み、 前記第1のスタック部分上のポツプは前記第1のセット内のマイクロコマンドに よって実行され、前記第1のスタック部分上のブツシュおよび前記第2のスタッ ク部分上のポツプは、前記第2のセット内のマイクロコマンドによって実行され 、 ット内のマイクロコマンドによって実行される、請求の範囲第1項に記載のディ ジタルコンピュータ。 3、 前記制御手段は前記命令の部分を保持するために、互いにシリアルに連結 される第1、第2および第73のレジスタ手段を備え、 前記レジスタ手段の各々は、前記セットのそれぞれにおける開始マイクロコマン ドをアドレスするためのメモリ手4、 前記制御手段は第1、第2および第3の レジスタ手段を備え、 前記第1のレジスタ手段は前記第1のセット内の開始マイクロコマンドをアドレ スするためのメモリ手段と連結され、 前記第2および第3のレジスタ手段は前記第26よび第3のセット内の開始マイ クロコマンドをアドレスするために演算手段と連結される、請求の範囲第1項に 記載のディジタルコンピュータ。 5、 前記メモリ手段は前記命令を持つてくるための共通のマイクロコマンドの セットをさらに含み、前記w一手段は前記繰返し順序の一部として前記共通のマ イクロコマンドのセットを特徴する請求の範囲第1項に記載′のディジタルコン ピュータ。 6、 前記第2の命令のための前記第2のマイクロコマンドのセットは前記第1 の命令のための前記第3のマイクロコマンドのセットの実行の後直ちに実行され 、前記第3の命令のための前記第1のマイクロコマンドのセットはそれらの後直 ちに実行される、請求の範囲第1項に記載のディジタルコンピュータ。 7、 前記第2の命令は前記プログラム内の前記W41の命令の後に直ちに続き 、 前記第3の命令は前記第2の命令の後に直ちに続く、請求の範囲第1項に記載の ディジタルコンピュータ。 8、 前記第1のセット内の前記マイクロコマンドは前記命令の1つのベアとは 興なり、 前記第2のセット内の前記マイクロコマンドは前記命令の他のベアとは興なり、 前記第3のセット内の前記マイクロコマンドは前記命令のさらに他のベアとは興 なる、請求の範囲第1項に記載のディジタルコンピュータ。 9、 時間多重化された形式における1つのプログラムの命令を実行するための ディジタルコンピュータであって、前記命令の各々が第1、第2および第3のマ イクロコマンドのセットによって表わされるメモリ手段を−え、いかなる命令の ためにも前記第1のセットは前記第2のセットの前に実行されねばならず、かつ 前記第2のセットは前記第3のセットの前に実行されねばならず、繰返しの順序 において前記マイクロコマンドのセットを実行するための制御手段をさらに備え 、1つの命令のための前記第1および第2のマイクロコマンドの実行の間には、 その前の命令のための実行された前記第3のマイクロコマンドセットが存在し、 前記1つの命令のための前記第2および第3のマイクロコマンドの実行の闇には 、慢統の命令のための実行された前記第1のマイクロコマンドセットが存在する 、ディジタルコンピュータ。 10、 時間多重化された繰返しの形式における1つのプログラムの命令を実行 するためのディジタルコンピュータであって、 前記命令の各々を、連続的に実行されねばならない第1、第2および第3のオペ レーションに分割するための手段と、前記第1の命令に続く第2の命令の前記第 1および第2のオペレーションの実行の間に前記命令の第1のものの前記第3の オペレーションを実行するため、および前記第2の命令のための前記第2および 第3のオペレーションの実行の間に前記第2の命令に続く第3の命令の前記第1 のオペレーションを実行するための手段とを備える、ディジタルコンピュータ。
JP57501621A 1981-05-22 1982-04-15 3つの時間多重部分における命令を実行するためのデイジタルコンピユ−タ Granted JPS58500778A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/266,599 US4430708A (en) 1981-05-22 1981-05-22 Digital computer for executing instructions in three time-multiplexed portions
US266599 1981-05-22

Publications (2)

Publication Number Publication Date
JPS58500778A true JPS58500778A (ja) 1983-05-12
JPS6112290B2 JPS6112290B2 (ja) 1986-04-07

Family

ID=23015244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57501621A Granted JPS58500778A (ja) 1981-05-22 1982-04-15 3つの時間多重部分における命令を実行するためのデイジタルコンピユ−タ

Country Status (5)

Country Link
US (1) US4430708A (ja)
EP (1) EP0079370B1 (ja)
JP (1) JPS58500778A (ja)
DE (1) DE3279759D1 (ja)
WO (1) WO1982004148A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4484272A (en) * 1982-07-14 1984-11-20 Burroughs Corporation Digital computer for executing multiple instruction sets in a simultaneous-interleaved fashion
US4463423A (en) * 1982-07-14 1984-07-31 Burroughs Corporation Method of transforming high level language statements into multiple lower level language instruction sets
US5179734A (en) * 1984-03-02 1993-01-12 Texas Instruments Incorporated Threaded interpretive data processor
US4742451A (en) * 1984-05-21 1988-05-03 Digital Equipment Corporation Instruction prefetch system for conditional branch instruction for central processor unit
US5062036A (en) * 1985-06-10 1991-10-29 Wang Laboratories, Inc. Instruction prefetcher
US5142681A (en) * 1986-07-07 1992-08-25 International Business Machines Corporation APL-to-Fortran translators
US5005118A (en) * 1987-04-10 1991-04-02 Tandem Computers Incorporated Method and apparatus for modifying micro-instructions using a macro-instruction pipeline
US5185870A (en) * 1987-04-10 1993-02-09 Tandem Computers, Inc, System to determine if modification of first macroinstruction to execute in fewer clock cycles
CA2180855A1 (en) * 1994-01-10 1995-07-13 Stephen G. Churchill A massively miltiplexed superscalar harvard architecture computer
US5555424A (en) * 1994-10-06 1996-09-10 The Dow Chemical Company Extended Harvard architecture computer memory system with programmable variable address increment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS514381B1 (ja) * 1969-11-24 1976-02-10
GB1257760A (ja) * 1970-10-10 1971-12-22
US4103326A (en) * 1977-02-28 1978-07-25 Xerox Corporation Time-slicing method and apparatus for disk drive
US4197579A (en) * 1978-06-06 1980-04-08 Xebec Systems Incorporated Multi-processor for simultaneously executing a plurality of programs in a time-interlaced manner
US4229790A (en) * 1978-10-16 1980-10-21 Denelcor, Inc. Concurrent task and instruction processor and method

Also Published As

Publication number Publication date
DE3279759D1 (en) 1989-07-13
US4430708A (en) 1984-02-07
WO1982004148A1 (en) 1982-11-25
EP0079370A1 (en) 1983-05-25
JPS6112290B2 (ja) 1986-04-07
EP0079370A4 (en) 1986-06-05
EP0079370B1 (en) 1989-06-07

Similar Documents

Publication Publication Date Title
US4187539A (en) Pipelined data processing system with centralized microprogram control
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
JPS59117666A (ja) ベクトル処理装置
JPS58500778A (ja) 3つの時間多重部分における命令を実行するためのデイジタルコンピユ−タ
JP3237858B2 (ja) 演算装置
JPS623461B2 (ja)
US5390306A (en) Pipeline processing system and microprocessor using the system
KR900010587A (ko) 생산라인의 고성능 명령어 실행방법 및 장치
US5819081A (en) Method of executing a branch instruction of jumping to a subroutine in a pipeline control system
JP2861560B2 (ja) データ処理装置
JP2885197B2 (ja) 演算処理装置及び演算処理方法
JP3278441B2 (ja) ベクトル処理装置
JP3511691B2 (ja) 演算処理装置
JPS6223891B2 (ja)
JP2866143B2 (ja) 動的パイプライン処理装置
JPH11143710A (ja) 処理対象値入力装置及びプログラム変換装置
JPS61161509A (ja) 高速シ−ケンス演算方式及びその装置
JPH0820947B2 (ja) データ処理装置
JPS6028014B2 (ja) マイクロプロセツサ
JPH11203133A (ja) 情報処理装置
JPS58182772A (ja) 転送機能を有する記憶装置
JPS61273637A (ja) 情報処理装置
JPH08272612A (ja) パイプライン計算機シミュレータ
JPS6014335A (ja) 情報処理装置