JPS59502040A - サブル−チンヘのジャンプおよびリタ−ンのためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置 - Google Patents

サブル−チンヘのジャンプおよびリタ−ンのためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置

Info

Publication number
JPS59502040A
JPS59502040A JP50368783A JP50368783A JPS59502040A JP S59502040 A JPS59502040 A JP S59502040A JP 50368783 A JP50368783 A JP 50368783A JP 50368783 A JP50368783 A JP 50368783A JP S59502040 A JPS59502040 A JP S59502040A
Authority
JP
Japan
Prior art keywords
register
instruction
address
control
registers
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
JP50368783A
Other languages
English (en)
Other versions
JPS6339929B2 (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 バロ−ス・コ−ポレ−ション
Priority claimed from PCT/US1983/001707 external-priority patent/WO1984001843A1/en
Publication of JPS59502040A publication Critical patent/JPS59502040A/ja
Publication of JPS6339929B2 publication Critical patent/JPS6339929B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 サブルーチンへのジャンプおよびリターンのためのパイプラインがなされたマイ クロコントローラ中の多重制御記憶製置 皿」は駈厘− 1982年11月3日にCarlos 1m、 )(orvathによって出願 された゛パイプラインがなされたマイクロコントローラのための多重制御記憶装 置″という名称のアメリカ合衆国特許出願連続番号第438.702号。
1982年11月3日にCarlos F、 l−1orvathニよって出願 された゛ネストされたサブルーチンを取扱うためのパイプラインがなされたマイ クロコントローラ中の多重制御記憶装置″という名称のアメリカ合衆国特許出願 連続番号第438,703号。
l孔列LL この発明は、パイプラインがなされたマイクロコントローラに関するもので、特 に、多重制御記憶装置を用いて並行動作を行なわせることによって、サイクルタ イムのロスを減少させるようなコントローラに関する。
1里11匹11 マイクロプログラミングは、プロセッサ中のマクロ命令デコード論理回路をメモ リで置換える技術であって、このメモリには、異なったマクロ命令を実行するこ とができるように、プロセッサ中のそれぞれのゲートを能動化するための種々の 制御信号がストアされている。これらの制御信号は、対応するマイクロ命令の所 望のワード長に依存して、全体としてエンコードされてもよく、また、部分的に エンコードされもしくはエンコードされないものであってもよい。そして、マク ロ命令オペレータは、制御記憶装置すなわちマイクロ命令メモリに対するアドレ スとしてサービスを行なう。このようなマイクロプログラミング技術を用いると アーキテクチャにおける設計の柔軟性が極めて大きくなる。それは、発生可能な 副扉信号のタイプが、どのような特定のプロセッサに対しても固定されたものと なっておらず、異なった高位のレベルのプログラム言語が特別に製造されたメイ ンフレームのコンピュータのために設計されている場合においても、その言語の ホストとのエミュレーションやインタプリタを行なうために選択することができ るからである。設計に関してこのような柔軟性が存在するため、はとんどすべて の中小プログラミングシステムや特定のマイクロプロセッサが、この技術を用い て構成されている。
しかしながら、制御記憶装置からのマクロ命令のアクセスやレセプションでは、 同じマクロ命令オペレータがデコーダ論理回路によってデコードされる場合に比 べて、必要とされる時間が長くなっている。このため、大型で高速のプロセッサ を設計するにあたっては、ハードワイヤの論理回路が好んで用いられている。
速度の面での改良を図り、マイクロ命令を実行するために必要とされるクロック 時間を短くするための技術としては、マクロ命令オペレータ(マイクロ命令アド レス)の取出しを前のマイクロ命令の実行とパイプラインない、しはオーバラッ プさせるという技術が存在している。このような技術は、Ferguson等に 対して与えられたアメリカ合衆国特許第3,886,523号に記載されている 。
しかしながら、このようなオーバラップ技術を用いたとしても、実行中のルーチ ンの中の変化によってマイクロコントローラが用いられていないようなりロック タイムのシーケンスがなお存在する。すなわち、データプロセッサはマクロ命令 レベルまたはマイクロ命令レベルのいずれに対しても、命令の単一のシーケンス を実行することはない。
周期的に、内部条件または外部条件が発生して、他のルーチンへの分岐を行ない 、その条件に対する適当な応答を与えるような命令シーケンスが必要となる。さ らに、多くのルーチンがホストされたサブルーチンのシリーズとして形成され、 これはプロセッサに対してサブルーチンへのジャンプと、このサブルーチンから 、実行されていた親ルーチンとは異なったいくつかの他のロケーションへのリタ ーンを要求する。上述したような、バイブラインがなされたマイクロコントロー ラにおいては、これは、新たなサブルー再び廃棄することを要求することになり 、これによってサイクルタイムが失われる。
このため、この発明の主たる目的は、クロックサイクルのロスを最小化するよう なデータプロセッサのための改良されたマイクロコントローラを提供することで ある。
この発明の他の目的は、命令の取出しと条件付分岐命令の取出しとのオーバラッ プを生じさせるようなデータプロセッサのための改良されたマイクロコントロー ラを提供することである。
この発明のなおも他の目的は、サブルーチン命令へのジャンプとサブルーチン命 令からのリターンとを、その時点での取出し命令取出しにオーバラップさせるデ ータプロセッサのための改良されたマイクロコントローラを提供することである 。
R且J口LL 上述した目的を達成するため、この発明は、複数の制御記憶装置から形成された デジタルデバイスを制御するためのマイクロコントローラを対象としており、前 記制御記憶装置のそれぞれは、対応する制御記憶装置の中の異なったロケーショ ンをアドレスするレジスタカウンタを有している。それぞれの制御記憶装置はそ れぞれのクロックサイクルでアクセスされるもので、選択された制御記憶装置か ら取出されたマイクロ命令のうちの1つを受取るための命令レジスタを持ってい る。このような方法で、前のマイクロ命令が条件付分岐である場合、サブルーチ ンへのジャンプである場合、またはサブルーチン命令へのリターンである場合に おいても、マイクロ命令がそれぞれのクロックサイクルで命令レジスタに与えら れる。
サブルーチンへのジャンプと、サブルーチン命令・がらの対応するリターンとを 調和させるため、このリターンサブルーチンの対応するアドレスはブツシュタウ ンスタックの中にストアされており、これらのアドレスがスタックの先頭に置か れていたオーダの反対のオーダで、上述したレジスタカウンタのうちの選択され た1つへと与えられるようになっている。
このため、この発明の性質は、それぞれのクロックサイクルで複数のマイクロ命 令を命令レジスタへと与え、それによって命令レジスタがそれぞれのクロックサ イクルで適切なマイクロ命令を受取ることができるような、複数のメモリを有す るマイクロコントローラに存在している。
゛ の、な9明 この発明の、上に述べた目的および他の目的と利点や特徴は、図面を参照して行 なう以下の説明からより一層明らかとなろう。これらの図において、 第1図は従来のマイクロコントローラの概念図である。
第2図はこの発明のマイクロコントローラの概念図である。
第3図はこの発明によって実行されるものとしてのプログラムセグメントを表現 する命令のシーケンス図である。
第4図はこの発明で用いられるものとしてのアービトレ−ション論理回路の概念 図である。
第5図はこの発明の動作を示す真理値表が描かれた図である。
発明の詳細な説 この発明は、動作のクロックサイクルのそれぞれの間にマイクロプログラムデー タプロセッサの中の種々のゲートやレジスタを活性化する制御信号を与えるよう に構成されている。この制御信号はコード化されていてもよく、またコード化さ れていなくてもよい。上に述べたように、従来のマイクロプログラムデバイスに おいては、条件付分岐命令に出会ったとき、またはサブルーチンへのジャンプ命 令やサブルーチンからのリターン命令に出会ったときには、常にクロックタイム のロスを生じていた。
このような従来のマイクロプログラムコントローラを第1図に示す。第1図に示 すように、対応するマイクロ命令は制御記憶装置10の中にストアされており、 この制御記憶装置10はたとえばリードオンリメモリ(ROM>である。以下に 詳しく説明するように、それ・ぞれのマイクロ命令は制御信号のフィールドを含 んでおり、この制御信号はそのすべてがコード化されていたものであってもよ( 、また、部分的にコード化されているものや部分的にコード化されていないもの であってもよい。これに加えて、それぞれのマイクロ命令は、その時点でのマイ クロ命令の次にシル−チン命令へのジャンプもしくはサブルーチン命令からのリ ターンのいずれかの条件付分岐命令であるのかを特定するシーケンスフィールド を含んでいる。このフィールドはまた、ジャンプアドレスまたはリターンアドレ スを交互に含んでいる。
アドレスレジスター1によってこの制御記憶装置がアドレスされたときには、対 応するマイクロ命令が並列に読出されて命令レジスター2へと与えられ、そこか らこのフィールドが取出されて、算術論理ユニットなどの制御の対象となるデジ タルデバイスを活性化なしいは能動化する。条件付分岐やサブルーチンへのジャ ンプ命令を実行しているときには、シーケンスフィールドが同じクロックサイク ルの間にマルチプレクサ13に対して代わりのアドレスを与える。条件付分岐命 令を実行している場合には、条件付ジャンプ制御回路が、付随命令の真偽を判定 し、もし真であるならば、マルチプレクサ13に対して信号を与え、それに与え られた代わりのアドレスをアドレスレジスター1へと転送させる。
マクロ命令レベルおよびマイクロ命令レベルのいずれにおいても、データプロセ ッサを多く用いるということは、ブツシュダウンスタックすなわちファーストイ ン−ラストアウト・レジスタの組を用いるという特別の性質を有っている。この ようなスタックは、サブルーチンヘジャンプしたときにリターンアドレスをスト アしておかねばならないということもあり、また他方、このサブルーチンが他の サブルーチンへとジャンプするときにはリターンアドレスを必要とするというこ となどの理由によって、特に有用なものとなっている。このようにしてネストさ れたサブルーチンを用いると、サブルーチンへのジャンプが発生するごとに、リ ターンアドレスがスタックの先頭に置かれ、それに続いて追加のリターンアドレ スがこのスタックの先頭に入れられるときに、゛ブツシュ゛″ダウンされる。種 々のサブルーチンが出ていくと、それらが入れられた順序と逆の順序で、必要な リターンアドレスがスタックの先頭から与えられる。マイクロコントローラのた めのこのようなスタックは、第1図においては制御スタック16として示してい る。命令レジスタ12から出てその時点で実行されているマイクロ命令がサブル ーチン命令からのリターンであるときには、制御スタック16からマルチプレク サ13を介してアドレスレジスタ11へと適当なアドレスが与えられる。
第1図に示したマイクロプロセッサは、前に取出されたマイクロ命令の実行とオ ーバラップして制御ストアアドレスが取出されるようなタイプのものであり、こ れは、命令の通常のシーケンスの間にそれが制御記憶装置10に対して与えられ るごとに、アドレスレジスタ11の内容をインクリメントすることによって、第 1図のコントローラにおいて達成される。このような動作によって、新たなマイ クロ命令がそれぞれのクロックタイムにおいて命令レジスタ12へと与えられる 。しかしながら、条件付分岐やサブルーチンへのジャンプ、それにサブルーチン 命令からのリターンに出会ったときには、適切なアクションを実、!テできるよ うになるまでにアドレスレジスタ11の内容を置換えなければならず、これによ ってクロックサイクルのロスが生じていた。
このクロックサイクルのロスを減少させるため、この発明は、第2図に示すよう な方法によって、それぞれのクロックサイクルにおいて、制御記憶装置の出力を 命令レジスタに与えるように構成されている。第2図において、3つの異なった 記憶制御装置20a 、20b 、20cが存在しており、これらは、シーケン ス情報とともに制御信号のフィールドをマルチプレクサ22aによって命令レジ スタ22へと与えるように構成されている。しかしながら、条件付分岐やサブル ーチン命令からのリターンのためにも用いることのできるジャンプアドレスJΔ を、それぞれの制御記憶装置20a 、201)および20Cに対応、するレジ スタカウンタ以外のレジスタカウンタ21a、21bおよび21Cのそれぞれに 与えることができる。このために、レジスタカウンタ21a、21b、21cに はそれぞれマルチプレクサ23a 、23b 、23Gが設けられており、これ によって他の制御記憶装置からのジャンプアドレスのうちのいずれを受取るべき かということや、サブルーチン命令からのリターンの場合に、メインスタック2 6からスタツクアドレスの先頭のものを受取るべきか否かの選択を行なう。第2 図に示したように、レジスタカウンタのそれぞれはまた、第1図の従来のコント ローラにおいて行なわれていたと同様に、外部ソースからの次のアドレスを受取 ることもできる。
マルチプレクサ23a 、23bおよび230のそれぞれによっていずれの入力 を選択したかということは、その時点で選択されている制御記憶装置から命令レ ジスタ22へと与えられたシーケンス情報に対応する、算術論理回路27からの 出力によって知ることができる。
制御記憶装置20a 、20b 、20Cには、マイクロ命令の同じ組が与えら れる。しかしながら、任意の時刻を取っ見たときには、それぞれの個々の制御記 憶装置は、算術論理回路27から対応するレジスタカウンタ21a、21b、2 1cへと与えられたカウントロード情報に依存して、3つのモードのうちの異な った1つのモードで用いられていることになる。これらの3つのモードは、“プ ログラムカウンタレジスタ″、パジャンプアドレスレジスタ″、および“スタッ クレジスタの先頭″である。3つのレジスタのそれぞれは、タグレジスタとして 機能する2ビツトレジスタを伴っており、対応するこのタグレジスタの中にロー ドされている値によって、対応するレジスタカウンタの状態や指名光を知ること ができる。ここでは第1図のアドレスレジスタ110代わりにレジスタカウンタ を用いているため、第1図のインクリメンタ15は必要ではない。
以下に詳しく説明する動作によって、この3つの制御記憶装置20a 、20b  、および20cは、その時点で欠けしているマイクロ命令が条件付分岐命令、 サブルーチン命令へのジャンプまたはサブルーチン命令からのリターンである場 合においては、制御情報のフィールドをそれぞれ・のクロックサイクルにおいて 命令レジスタ22へと与え続けることができる。すなわち、レジスタカウンタ2 1aがプログラムカウンタレジスタとして指名されていた場合には、制御記憶装 置21aへとアドレスを与え続けるとともに、分岐、ジャンプまたはリターン命 令が命令レジスタ22において指示されるまで、それ自身の内容のインクリメン トを行ない続ける。この期間においては、レジスタ21bおよび21Cのうちの 1つがジャンプアドレスレジスタとして指名され、また、これらのうちの他のレ ジスタはスタックレジスタの先頭のものとして指名されて、3つの制御記憶装置 20a 、20b 、20cのすべてがマイクロ命令をマルチプレクサ22aへ と与える。取出された3つのマイクロ命令はその時点におけるプログラムカウン トアドレス、ジャンプアドレスおよびスタックの先頭のものすなわちサブルーチ ンからのリターンアドレスに関するものであり、これらマイクロ命令のうちの1 つは、アービトレーション論理回路27によって選択されて、それぞれのクロッ クサイクルにおいて命令レジスタ22へと与えられる。
た61] 第3図は、この発明で用いられているそれぞれの制御記憶装置すなわちROMの 中に存在することができるような、マイクロ命令のシーケンスを示している。こ こに示したように、第1のフィールドはジャンプアドレスJAを表現しており、 このジャンプアドレスJAはその時点におけるマイクロ命令が条件付分岐、サブ ルーチンへのジャンプまたはサブルーチンからのリターンを要求している場合に 、実行されるべき次のマイクロ命令のアドレスを特定するという性質をもってい る。アステリスクで示した第2のフィールドは命令フィールドであって、この命 令フィールドは、分岐、ジャンプもしくはリターンを特定し、またはこれらのい ずれも存在しないときには、プログラムカウンタレジスタとして機能するレジス タカウンタのシーケンスを特定するために必要な数だけのビットを含んでいる。
典型的なマイクロ命令の例を命令レジスタ22を形成するそれぞれのフィールド によって第2図の中により詳しく示しである。それぞれのROMの中にマイクロ 命令の一部分としてストアされているジャンプアドレスは、命令レジスタへは与 えられないことに注意されたい。ここに示した命令フィールドは、サブルーチン フィールドへの1ビツトのジャンプ、サブルーチンからの1ビツトのリターン、 1ビツトのジャンプすなわち条件付分岐フィールドおよび、択レジスタ24から のジャンプ能動化信号をアービトレーション論理回路27へと伝送する1ビツト の反転フィールドを含んでいる。命令レジスタ22の条件コード選択1礼、条件 選択論理回路24へと与えられる条件信号の任意の1つを選択するために必要と される数だけのビットを含んでいる。第3図に示したマイクロ命令のシーケンス の中に存在する命令レジスタ22の中の残りのフィールドは、制御が行なわれて いるデジタルデバイスを活性化するために用いられる。マイクロ命令の命令フィ ールドのすべてのビットがゼロであるときには、このプログラムカウンタレジス タは第3図に示した命令のシーケンスを通してインクリメントを行ない続ける。
特定のレジスタカウンタが゛プログラムカウンタレジスタ″として指名されてい るときには、それに続くそれぞれのROMにおいてシーケンス的に1だけインク リメントする。また、特定のレジスタカウンタが°“ジャンプアドレスレジスタ ″として指名されると、テストされている・条件が要求している場合に次の分岐 を与えなければならない命令のアドレスをホールドする。特定のレジスタカウン タが゛ジャンプアドレスレジスタ″として指名されると、それはクロックのそれ ぞれにおいてロードされて、対応するROMの出力に分岐を与えるべき命令が常 に存在するよ?、にする。最後に、特定のレジスタカウンタが1′スタツクレジ スタの先頭″として指名されると、最初にそのアドレスがロードされているよう なコーリングプログラムのリターンアドレスを含むことになる。この“スタック レジスタの先頭″は、“ブツシュ″命令に出会ったときのみロードされる。この 場合、このレジスタの古い内容は第2図のメインスタック26へと移されている 。このレジスタカウンタは常に、メインスタックの最も上のエレメントの内容を ホールドしている。しかしながら、リターン命令に出会ったときには、リターン が特定されるべきアドレスの内容をこの命令レジスタに直ちにロードすることが できる。これはもちろん、゛スタックレジスタの先頭”がリターンのロケーショ ンの内容を取出すことによって可能となる。
第3図に示したようなマイクロ命令の異なったシーケンスに対して種々のレジス タカウンタの中で何が起こり、第2図の対応するROMの出力としてどのような ものが生ずるかを例示することによって、この発明では、それぞれのクロックサ イクルにおいてマイクロ命令を(第2図の)命令レジスタ22へとどのように与 えるかを理解することがおそらくできるであろう。たとえば、第3図のマイクロ 命令10がその時点で実行されており、第2図のレジスタ21Cが゛プログラム カウンタレジスタ”として指名されている場合を考えると、レジスタカウンタ2 1bは“ジャンプレジスタ″として指名され、また、レジスタ21aは°゛スタ ツクレジスタ先頭″として指名されていることになる。マイクロ命令10の制御 フィールドおよび命令フィールドは、このときには、命令レジスタ22の中に存 在し、レジスタカウンタ21cはインクリメントされて命令11のアドレスをホ ールドし、レジスタカウンタ21bはマイクロ命令10のジャンプアドレスフィ ールドをホールドしくたとえば、このジャンプアドレスを100とする)、そし て、レジスタカウンタ21aはスタックアドレスの先頭のものをホールドする( たとえば、このレジスタの内容を90とする)。ROM20cの出力は制御デー タフィールドであって、ジャンプアドレスとして(75)を有する命令11の命 令フィールドが、第2図のマルチプレクサ23bへと与えられる。ROM20b の出力は命令100の制御データフィールドと命令フィールドであって、そのジ ャンプアドレス(300)が第2図のマルチプレクサ23cへと与えられること になる。ROM20aの出力はマイクロ命令90の制御データフィールドおよび 命令フィールドであり、そのジャンプアドレス(400)が、マルチプレクサ2 3bおよび23cの双方へ与えられる。
マイクロ命令10がジャンプ命令であった場合には、レジスタカウンタ21bは ここで゛プログラムカウンタレジスタ″となり、命令レジスタ22はマイクロ命 令1000制御データフイールドおよび命令フィールドを含むことになり、また 、゛ジャンプアドレスレジスタ″となっているレジスタカウンタ21Gへとジャ ンプアドレス(300)が与えられるが、レジスタカウンタ21aの内容には影 響が生じていない。ROM20cの出力はこの時点で、命令3000制御データ フイールドおよび命令フィールドとなっており、そのジャンプアドレス(8)が マルチプレクサ23bへと与えられている。ROM20bの出力はこのとき、マ イクロ命令101の制御データフィールドおよび命令フィシルドとなっており、 そのジャンプアドレス(35)がマルチプレクサ23cへと与えられる。ROM  20aの出力には変化は生じていない。
マイクロ命令10がサブルーチン命令へのジャンプであるときには、レジスタカ ウンタ21bは゛プログラムカウンタレジスタ″となり、その内容(100)が 1だけインクリメントされるとともに、命令レジスタ22の内容は命令100の 制御データフィールドおよび命令フィールドとなる。レジスタカウンタ21aは 今度は“′ジャンプアドレスレジスタパとなり、マイクロ命令100のジャンプ アドレス(300)を含むが、一方、レジスタカウンタ21cは゛スタックレジ スタの先頭″となって、その内容(11)を維持している。ROM20bの出力 はマイクロ命令101の制御データフィールドおよび命令フィールドとなってお り、そのジャンプアドレス(35)はマルチプレクサ23aへと伝送される。レ ジスタカウンタ21aはマイクロ命令100 (300)のジャンプアドレスを 含んでおり、レジスタカウンタ21aの出力は命令30C)の制御データフィー ルドおよび命令フィールドであって、そのジャンプアドレス(8)はマルチプレ クサ23bへと伝送される。
R,0M20Cの出力は同一のままとなっている。その間に、(90として特定 された)レジスタ21aの前の内容が、マルチプレクサ26aを経由してメイン スタック26の先頭に置かれる。
マイクロ命令10がサブルーチン命令からのリターンであったときには、レジス タ21aは今度は゛プログラムカウンタレジスタ″となって、1だけインクリメ ントされる。
命令レジスタ2oには命令90の制御データフィールドおよび命令フィールドを 含み、ROM20aの出力は命令91の制御データフィールドおよび命令フィー ルドとなっているが、そのジャンプアドレスはマルチプレクサ21bへと与えら れる。レジスタカウンタ21わは“ジャンプアドレスレジスタ”となり、ROM  20 bの出力は前のマイクロ命令のジャンプアドレスならびに対応する制御 データフィールドおよび命令フィールドとなる。゛′スタックレジスタの先頭″ となっているレジスタカウンタ2ICの内容はレジスタの先頭に前に置かれてい た内容を含んでおり、ROM20cの出力はそのアドレスにおけるマイクロ命令 の内容を含むことになる。
レジスタカウンタの役割分配を定める論理回路は第2図のアービトレーション論 理回路27の中に含まれている。
この論理回路はステートマシンにほかならない。レジスタカウンタのそれぞれに 付随した2ビツトレジスタ27’a。
27bおよび27C(第4図参照)は、この論理回路の中に存在している。この 論理回路を駆動する信号は第2図の命令レジスタ22および第2図の条件選択ユ ニット24において発生する。アービトレーション論理回路27の出力を第4図 により詳しく示す。これらの出力はデータ/アドレスマルチプレクサ23a 、 23b 、23cを駆動し、また、3つのレジスタカウンタ218.21bおよ び21Cへのロード/カウント能動化入力を駆動する。
上述したように、第2図および第4図のアービトレーション論理回路27は、本 質的にはステートマシンであり、実行される命令のタイプと3つのレジスタカウ ンタ21a。
21bおよび1Cの状態ないしはモードのそれぞれの組合わせとに対応した、レ ジスタおよびレジスタカウンタの次の状態とソース選択アクションとが存在する 。第2図および第4図のアービトレーション論理回路27によって制御されるこ の発明のそれぞれのレジスタとROMとの動作を、第5図の中の表に詳しく示す 。この第5図では、それぞれのレジスタカウンタの現在の状態および次の状態と ともに、アービトレーション論理回路27の入力および出力が描かれている。
第5図の第1行はその時点で実行されている命令のタイプを示しており、゛プロ グラムレジスタカウンタ″として指名されているレジスタカウンタがインクリメ ントを続けているようなノーアクションのNA、サブルーチンへのジャンプJM S、およびサブルーチンからのリターンRETジャンプまたは条件付分岐JMP を含んでいる。第2行はそれぞれのレジスタカウンタのモードの種々の組合わせ を示しており、ここでAは第2図のレジスタカウンタ21aを、Bはレジスタカ ウンタ21bを、Cはレジスタカウンタ21cを、それぞれ意味している。異な ったレジスタカウンタのそれぞれのモードは、“°ジャンプアドレスレジスタ″ をJで、“′スタックレジスタの先頭”をSで、また、゛プログラムカウンタレ ジスタ″をCで、それぞれ表わしている。第3行は、それぞれの後続の状態ない しはモードを示している。
第4行はレジスタカウンタのそれぞれで発生するアクションを示し、ここで、L はレジスタカウンタに新たなアドレスがロードされていることを、Oはレジスタ カウンタがその時点における内容を保っていること、そして、■はレジスタカウ ンタのインクリメントがなされていることを示す。第5行は、どのROMすなわ ち制御記憶装置が、口゛−ドされたレジスタカウンタに与えられる新たなアドレ スのソースであるかを示している。第6行は、どのROMが、第2図の命令レジ スタ22にロードされた命令フィールドおよび制御データフィールドのソースで あるかを示し、そして、第7行は、第2図のスタック26の先頭に置かれたアド レスのソースが存在するときには、そのソースはどのレジスタカウンタであるか を示している。
たとえば、命令のノーアクション(NA>タイプにおけるモードの第1の組合わ せを考えてみる。ARがJに等しいということは、第2図のレジスタカウンタ2 1aがパジャンプアドレスレジスタ″モードとなっており、レジスタカウンタ2 1bが゛′スタックレジスタの先頭″のモードとなっており、そして、レジスタ カウンタ21cが゛プログラムカウンタレジスタ”モードとなっていることを示 している。同じラインの次の行は、種々のレジスタの状態すなわちモードが変化 していないことを示している。このラインの第4行は、レジスタカウンタ21a に新しいアドレスがロードされており、レジスタカウンタ21bはその内容を維 持しており、そして、レジスタカウンタ21Cがインクリメントされていること を示している。第5行は、レジスタ21aに第2図のROM20aからジャンプ アドレスがロードされていることを示す。またこのラインの第6行のfSは、第 2図の命令レジスタ22がROM21cに関してロードされていることを示し、 そして、このラインの最終行は、第2図のスタック26の先頭に何も置かれてい ないことを示す。
サブルーチンへのジャンプ命令JMSの実行に関するこの発明のアクションの他 の例が、第5図の中の真理直衣のJMSのカテゴリの第1ラインに示されている 。レジスタカウンタ21aは“ジャンプアドレスレジスタ″モードとなっており 、レジスタカウンタ21bは゛スタックの先頭″モードであり、そして、レジス タ21Cは′°プログラムカウントレジスタ″モードである。次のクロック時間 における、種々のレジスタカウンタのそれぞれの状態は、レジ、スタカウンタ2 1aが″“プログラムカウンタレジスタ″となり、レジスタカウンタ211)が ゛ジャンプアドレスレジスタ″となり1.そして、レジスタカウンタ21Cが゛ スタックレジスタの先頭”となっている。次の行は、レジスタカウンタ21cが インクリメントされ、レジスタカウンタ21bに新たなアドレスがロードされて いることを示しており、また、その次の行は新たなアドレスのソースがROM2 0aであることを示している。その次の行は、第2図の命令レジスタ22がRO M 20aからロードされており、最後の行はレジスタ2’1bが第2図のスタ ック26の先頭に置かれていることを示している。
上に述べた例によって、第5図の中の表の残りの部分は明らかであろう。但し、 命令RETのタイプとなっているサブルーチンからのリターンにおいて、第5行 に存在するZは、スタックの先頭がそれぞれのレジスタカウンタをロードするた めのソースとなっていることを示している。
まとめ デジタルデバイスのためのマイクロコントローラすなわち、それぞれのクロック タイムにおいて、3つの異なつ、た制御記憶装置つまりROMのうちの1つから 対応する命令レジスタへとマイクロ命令を与えることができるように構成された マイクロコントローラを開示した。この方法では、マイクロ命令のシーケンスは 他のサブルーチンへの条件付分岐、サブルーチンへのジャンプおよびサブルーチ ンからのリターンと出会うことが可能であって、そこでは、次のクロックサイク ルに必要とされる正しいマイクロ命令を命令レジスタへと与える準備が常になさ れているため、クロックサイクルのロスは生じない。
なお、ここではこの発明の1つの実施例のみを開示したが、請求の範囲の精神と 範囲を逸脱することなく、変形や変化を与えることが可能であるということは当 業者にとっては自明であろう。
一〇りl hσ4 −一δ少5

Claims (1)

    【特許請求の範囲】
  1. 1. デジタルデバイスを制御するためのコントローラであって、 マイクロ命令をストアするための少なくとも3個の制御ルデバイスを制御するた めの制御フィールドと、前記それあるとき、またはサブルーチン命令がらりター ンすべきであるときに次のマイクロ命令のロケーションを特定するジャンプアド レスフィールドと、特定のマイクロ命令がジャンプ命令もしくはリターン命令で あるかどうか、またはいずれのアクションをも要求していないかどうかを特定す る命令フィールドとから形成されており、前記コントローラはさらに、それぞれ の前記制御メモリに関して設けられて取出すべき次のマイクロ命令のアドレスを 含む少なくとも3個のアドレスレジスタと、前記メモリのそれぞれと前記デジタ ルデバイスとに結合されて、前記制御メモリのうちの1つから取出されたマイク ロ命令の制御フィールドおよび命令フィールドを受取る命令レジスタと、 前記制御メモリのそれぞれと、他の1lJillメモリのアドレスレジスタとの 間に結合されて、ジャンプアドレスを前記値の制御メモリのアドレスレジスタへ と与える相互接続手段と、 前記命令レジスタの前記命令フィールド部分と前記アドレスレジスタとに結合さ れて、前記レジスタのうちの1つをプログラムカウンタとして特定し、前記レジ スタのうちの1つをジャンプアドレスレジスタとして特定し、そして前記レジス タのうちの1つをサブルーチンからのリターンについてのレジスタとして特定す る論理手段とを備える、マイクロコントローラ。 2、 前記論理手段は、その時点で実行されているマイクロ命令がサブルーチン 命令へのジャンプであるかそれともサブルーチン命令からのリターンであるかに 従って、異なるアドレスレジスタをプログラムカウンタとして特定するように構 成されている、請求の範囲第1項記載のマイクロコントローラ。 3、 前記マイクロコントローラはさらに、前記それぞれの制御メモリと前記命 令レジスタとの間に結合されて、前記それぞれの制御メモリから取出されたマイ クロ命令のうちの1つの命令フィールドと制御フ、イールドとを選択するマルチ プレクサを備える、請求の範囲第1項記載のマイクロコントローラ。 4、 前記制御メモリのそれぞれは、マイクロ命令の同じ組を含んでいる、請求 の範囲第1項記載のマイクロコントローラ。 5、 前記マイクロコントローラは複数個のマルチプロフサをさらに備え、前記 マルチプレクサのそれぞれは前記アドレスレジスタのそれぞれと他の制御メモリ のジャンプアドレス出力との間に接続され、前記マルチプレクサはさらにマイク ロ命令のアドレスの外部ソースへと結合された、請求の範囲第1項記載のマイク ロコントローラ。 6、 前記アドレスレジスタのそれぞれは、インクリメントされて、それに対応 する制御メモリからのマイクロ命令のシーケンスを順番に取出すレジスタカウン タである、請求の範囲第1項記載のマイクロコントローラ。 7、 前記マイクロコントローラはさらに、前記それぞれのレジスタとメモリと の間に結合されて、それぞれのクロック時間でマイクロ命令制御フィールドを前 記命令レジスタへと与えるタイミング手段を備える、請求の範囲第1項記載のマ イクロコントローラ。 8、 デジタルデバイスを制御するためのヤイクOコントローラであって、 マイクロ命令をストアするための少なくとも3個の制御メモリを備え、前記マイ クロ命令のそれぞれは前記デジタルデバイスを制御するための制御フィールドと 、前記それぞれのマイクロ命令がサブルーチンへとジャンプすべきであるときま たはサブルーチン命令からリターンすべきであるときに次のマイクロ命令のロケ ーションを特定するジャンプアドレスフィールドと、特定のマイクロ命令がジャ ンプ命令もしくはリターン命令であるかどうか、またはいずれのアクションをも 要求していないかどうかを特定する命令フィールドから形成されており、 前記コントローラはさらに、それぞれの前記制御メモリに関して設けられて取出 すべき次のマイクロ命令のアドレスを含む少なくとも3個のアドレスレジスタと 、前記メモリのそれぞれと前記デジタルデバイスとに結合されて、前記制御メモ リのうちの1つから取出されたマイクロ命令の制御フィールドおよび命令フィー ルドを受取る命令レジスタと、 前記制御メモリのそれぞれと、他の制御メモリのアドレスレジスタとの間に結合 されて、ジャンプアドレスを前記他の制御メモリのアドレスレジスタへと与える 相互接続手段と、 前記命令レジスタの前記命令フィールド部分と前記アドレスレジスタとに結合さ れて、前記レジスタのうちの1つをプログラムカウンタとして特定し、前記レジ スタのうちの1つをジャンプアドレスレジスタとして特定し、そして前記レジス タのうちの1つをサブルーチンからのリターンについてのレジスタとして特定す る論理手段と、前記デジタルデバイスからの条件信号を受取って、前記マイクロ 命令のシーケンスの実行において条件付分岐が要求されているということを特定 する条件選択手段とを備え。 前記論理手段は、前記条件選択手段と前記複数のアドレスレジスタとの間に結合 され、前記デジタルデバイスからの条件信号を受取ったときに次のマイクロ命令 を前記制御メモリのうちのいずれによって与えるかを選択する、マイクロコント ローラ。 9、 前記マイクロコントローラはさらに、前記それぞれの制御メモリと前記命 令レジスタとの間に結合されて、前記それぞれの制御メモリから取出されたマイ クロ命令のうちの1つの命令フィールドと制御フィールドとを選択するマルチプ レクサを備える、請求の範囲第8項記載のマイクロコントローラ。 10、前記制御メモリのそれぞれは、マイクロ命令の同じ組を含んでいる、請求 の範囲第8項記載のマイクロコントローラ。 11、 前記マイクロコントローラは複数個のマルチプレクサをさらに備え、前 記マルチプレクサのそれぞれは前記アドレスレジスタのそれぞれと他の制御メモ リのジャンプアドレス出力との間に接続され、前記マルチプレクサはさらにマイ クロ命令のアドレスの外部ソースへと結合された、請求の範囲第8項記載のマイ クロコントローラ。 12、 前記アドレスレジスタのそれぞれは、インクリメントされて、それに対 応する制御メモリからのマイクロ命令のシーケンスを順番に取出すレジスタカウ ンタである、請求の範囲第8項記載のマイクロコントローラ。
JP50368783A 1982-11-03 1983-11-03 サブル−チンヘのジャンプおよびリタ−ンのためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置 Granted JPS59502040A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US438701 1982-11-03
PCT/US1983/001707 WO1984001843A1 (en) 1982-11-03 1983-11-03 Multiple control stores in a pipelined microcontroller for handling jump and return subroutines

Publications (2)

Publication Number Publication Date
JPS59502040A true JPS59502040A (ja) 1984-12-06
JPS6339929B2 JPS6339929B2 (ja) 1988-08-09

Family

ID=22175537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50368783A Granted JPS59502040A (ja) 1982-11-03 1983-11-03 サブル−チンヘのジャンプおよびリタ−ンのためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置

Country Status (1)

Country Link
JP (1) JPS59502040A (ja)

Also Published As

Publication number Publication date
JPS6339929B2 (ja) 1988-08-09

Similar Documents

Publication Publication Date Title
AU628163B2 (en) Method and apparatus for detecting and correcting errors in a pipelined computer system
US4546431A (en) Multiple control stores in a pipelined microcontroller for handling jump and return subroutines
US4399505A (en) External microcode operation in a multi-level microprocessor
US4468736A (en) Mechanism for creating dependency free code for multiple processing elements
US4466061A (en) Concurrent processing elements for using dependency free code
US4179731A (en) Microprogrammed control system
JPS621028A (ja) マイクロ制御装置
EP0126125B1 (en) Multiple control stores for a pipelined microcontroller
JPS63273134A (ja) マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置
JPS62197830A (ja) デ−タ処理システム
US4370729A (en) Microprogram sequencer
US4551798A (en) Multiple control stores in a pipelined microcontroller for handling nester subroutines
KR100210205B1 (ko) 스톨캐쉬를 제공하기 위한 장치 및 방법
JPS63226732A (ja) シーケンサ回路
EP0214184A1 (en) Microprogrammable devices using transparent latch
JPS62165242A (ja) プロセツサ
JPS59502040A (ja) サブル−チンヘのジャンプおよびリタ−ンのためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置
JPS59501998A (ja) ネストされたサブル−チンを取扱うためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置
US6308254B1 (en) Processing instructions of an instruction set architecture by executing hierarchically organized snippets of atomic units of primitive operations
JP2680828B2 (ja) ディジタル装置
JPS61110238A (ja) マイクロプログラム式並列プロセツサ
US4511983A (en) Apparatus for controlling microinstructions stored in a data processing unit memory
JPS59502080A (ja) パイプラインがなされたマイクロコントロ−ラのための多重制御記憶装置
JPS6155130B2 (ja)
JPS62245439A (ja) シンボリツク処理システムおよび方法