JPS59501998A - ネストされたサブル−チンを取扱うためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置 - Google Patents

ネストされたサブル−チンを取扱うためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置

Info

Publication number
JPS59501998A
JPS59501998A JP50372783A JP50372783A JPS59501998A JP S59501998 A JPS59501998 A JP S59501998A JP 50372783 A JP50372783 A JP 50372783A JP 50372783 A JP50372783 A JP 50372783A JP S59501998 A JPS59501998 A JP S59501998A
Authority
JP
Japan
Prior art keywords
register
instruction
address
microcontroller
control
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
JP50372783A
Other languages
English (en)
Other versions
JPS6339930B2 (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/001705 external-priority patent/WO1984001841A1/en
Publication of JPS59501998A publication Critical patent/JPS59501998A/ja
Publication of JPS6339930B2 publication Critical patent/JPS6339930B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

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

Claims (1)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US438703 1982-11-03
PCT/US1983/001705 WO1984001841A1 (en) 1982-11-03 1983-11-03 Multiple control stores in a pipelined microcontroller for handling nested subroutines

Publications (2)

Publication Number Publication Date
JPS59501998A true JPS59501998A (ja) 1984-11-29
JPS6339930B2 JPS6339930B2 (ja) 1988-08-09

Family

ID=22175535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50372783A Granted JPS59501998A (ja) 1982-11-03 1983-11-03 ネストされたサブル−チンを取扱うためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置

Country Status (1)

Country Link
JP (1) JPS59501998A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63143815A (ja) * 1986-12-08 1988-06-16 Matsushita Electric Ind Co Ltd ランプアニ−ル装置
JPH0746025B2 (ja) * 1988-09-02 1995-05-17 パイオニア株式会社 光ディスク原盤の加熱乾燥装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5360134A (en) * 1976-11-10 1978-05-30 Nec Corp Microprogram control device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5360134A (en) * 1976-11-10 1978-05-30 Nec Corp Microprogram control device

Also Published As

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

Similar Documents

Publication Publication Date Title
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
US4179731A (en) Microprogrammed control system
US3991404A (en) Apparatus for carrying out macroinstructions in a microprogrammed computer
JPH03116233A (ja) データプロセッサの命令処理システム
EP0096576A2 (en) Mechanism for creating dependency free code for multiple processing elements
JPH03116236A (ja) 例外処理方法及び例外処理装置
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
JPH03116235A (ja) 分岐処理方法及び分岐処理装置
US5812809A (en) Data processing system capable of execution of plural instructions in parallel
EP0136183B1 (en) Control store arrangement for enhanced cpu pipeline performance
JPH035835A (ja) マイクロプロセッサ
JPS621028A (ja) マイクロ制御装置
JPH0823818B2 (ja) 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置
JPS5811654B2 (ja) デ−タシヨリシステム
US4370729A (en) Microprogram sequencer
WO1984001842A1 (en) Multiple control stores for a pipelined microcontroller
EP0126124A1 (en) MULTIPLE MEMORIES FOR CONTROLLING A PIPELINE MICRO-CONTROLLER FOR HANDLING SUB-PROGRAMS.
JPS63226732A (ja) シーケンサ回路
US5461715A (en) Data processor capable of execution of plural instructions in parallel
JPS62165242A (ja) プロセツサ
JPS59501998A (ja) ネストされたサブル−チンを取扱うためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置
JPS6161416B2 (ja)
US5745723A (en) Data processing system capable of execution of plural instructions in parallel
JPS59502040A (ja) サブル−チンヘのジャンプおよびリタ−ンのためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置