JPS6339929B2 - - Google Patents

Info

Publication number
JPS6339929B2
JPS6339929B2 JP58503687A JP50368783A JPS6339929B2 JP S6339929 B2 JPS6339929 B2 JP S6339929B2 JP 58503687 A JP58503687 A JP 58503687A JP 50368783 A JP50368783 A JP 50368783A JP S6339929 B2 JPS6339929 B2 JP S6339929B2
Authority
JP
Japan
Prior art keywords
register
instruction
address
jump
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.)
Expired
Application number
JP58503687A
Other languages
English (en)
Other versions
JPS59502040A (ja
Inventor
Karurosu Furanshisuko Hoobaato
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
YUNISHISU CORP
Original Assignee
YUNISHISU CORP
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 YUNISHISU CORP filed Critical YUNISHISU CORP
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

  • Advance Control (AREA)

Description

請求の範囲 1 デジタルデバイスを制御するためのコントロ
ーラであつて、 マイクロ命令の同じ組をそれぞれ含む3個の制
御メモリを備え、前記マイクロ命令のそれぞれ
は、前記デジタルデバイスを制御するための制御
フイールドと、前記それぞれのマイクロ命令がサ
ブルーチンへとジヤンプすべきであるとき、また
はサブルーチン命令からリターンすべきであると
きに次のマイクロ命令のロケーシヨンを特定する
ジヤンプアドレスフイールドと、特定のマイクロ
命令がジヤンプ命令もしくはリターン命令である
かどうか、またはいずれのアクシヨンをも要求し
ていないかどうかを特定する命令フイールドとか
ら形成されており、 前記コントローラはさらに、それぞれの前記制
御メモリに関して設けられて取出すべき次のマイ
クロ命令のアドレスを含む3個のアドレスレジス
タと、 前記メモリのそれぞれと、前記デジタルデバイ
スとに結合されて、前記制御メモリのうちの1つ
から取出されたマイクロ命令の制御フイールドお
よび命令フイールドを受取る命令レジスタと、 前記制御メモリのそれぞれと、他の制御メモリ
のアドレスレジスタとの間に結合されて、ジヤン
プアドレスを前記他の制御メモリのアドレスレジ
スタへと与える相互接続手段と、 前記命令レジスタの前記命令フイールド部分と
前記アドレスレジスタとに結合されて、前記レジ
スタのうちの1つのプログラムカウンタとして特
定し、前記レジスタのうちの1つをジヤンプアド
レスレジスタとして特定し、そして前記レジスタ
のうちの1つをサブルーチンからのリターンにつ
いてのレジスタとして特定する論理手段とを備え
る、マイクロコントローラ。 2 前記論理手段は、その時点で実行されている
マイクロ命令がサブルーチン命令へのジヤンプで
あるのかそれともサブルーチン命令からのリター
ンであるかに従つて、異なるアドレスレジスタを
プログラムカウンタとして特定するように構成さ
れている、請求の範囲第1項記載のマイクロコン
トローラ。 3 前記マイクロコントローラはさらに、 前記それぞれの制御メモリと前記命令レジスタ
との間に結合されて、前記それぞれの制御メモリ
から取出されたマイクロ命令のうちの1つの命令
フイールドと制御フイールドとを選択するマルチ
プレクサを備える、請求の範囲第1項記載のマイ
クロコントローラ。 4 前記マイクロコントローラは複数個のマルチ
プレクサをさらに備え、前記マルチプレクサのそ
れぞれは前記アドレスレジスタのそれぞれと他の
制御メモリのジヤンプアドレス出力との間に接続
され、前記マルチプレクサはさらにマイクロ命令
のアドレスの外部ソースへと結合された、請求の
範囲第1項記載のマイクロコントローラ。 5 前記アドレスレジスタのそれぞれは、インク
リメントされて、それに対応する制御メモリから
のマイクロ命令のシーケンスを順番に取出すレジ
スタカウンタである、請求の範囲第1項記載のマ
イクロコントローラ。 6 前記マイクロコントローラはさらに、前記そ
れぞれのレジスタとメモリとの間に結合されて、
それぞれのクロツク時間でマイクロ命令制御フイ
ールドを前記命令レジスタへと与えるタイミング
手段を備える、請求の範囲第1項記載のマイクロ
コントローラ。 7 デジタルデバイスを制御するためのマイクロ
コントローラであつて、 マイクロ命令の同じ組をそれぞれ含む3個の制
御メモリをさらに備え、前記マイクロ命令のそれ
ぞれは、前記デジタルデバイスを制御するための
制御フイールドと、前記それぞれのマイクロ命令
がサブルーチンへとジヤンプすべきであるとき、
またはサブルーチン命令からリターンすべきであ
るときに次のマイクロ命令のロケーシヨンを特定
するジヤンプアドレスフイールドと、特定のマイ
クロ命令がジヤンプ命令もしくはリターン命令で
あるかどうか、またはいずれのアクシヨンをも要
求していないかどうかを特定する命令フイールド
から形成されており、 前記コントローラはさらに、それぞれの前記制
御メモリに関して設けられて取出すべき次のマイ
クロ命令のアドレスを含む3個のアドレスレジス
タと、 前記メモリのそれぞれと前記デジタルデバイス
とに結合されて、前記制御メモリのうちの1つか
ら取出されたマイクロ命令の制御フイールドおよ
び命令フイールドを受取る命令レジスタと、 前記制御メモリのそれぞれと、他の制御メモリ
のアドレスレジスタとの間に結合されて、ジヤン
プアドレスを前記他の制御メモリのアドレスレジ
スタへと与える相互接続手段と、 前記命令レジスタの前記命令フイールド部分と
前記アドレスレジスタとに結合されて、前記レジ
スタのうちの1つをプログラムカウンタとして特
定し、前記レジスタのうちの1つをジヤンプアド
レスレジスタとして特定し、そして前記レジスタ
のうちの1つをサブルーチンからのリターンにつ
いてのレジスタとして特定する論理手段と、 前記デジタルデバイスからの条件信号を受取つ
て、前記マイクロ命令のシーケンスの実行におい
て条件付分岐が要求されているということを特定
する条件選択手段とを備え、 前記論理手段は、前記条件選択手段と前記3個
のアドレスレジスタとの間に結合され、前記デジ
タルデバイスからの条件信号を受取つたときに次
のマイクロ命令を前記制御メモリのうちのいずれ
によつて与えるかを選択する、マイクロコントロ
ーラ。 8 前記マイクロコントローラはさらに、 前記それぞれの制御メモリと前記命令レジスタ
との間に結合されて、前記それぞれの制御メモリ
から取出されたマイクロ命令のうちの1つの命令
フイールドと制御フイールドとを選択するマルチ
プレクサを備える、請求の範囲第7項記載のマイ
クロコントローラ。 9 前記マイクロコントローラは複数個のマルチ
プレクサをさらに備え、前記マルチプレクサのそ
れぞれは前記アドレスレジスタのそれぞれと他の
制御メモリのジヤンプアドレス出力との間に接続
され、前記マルチプレクサはさらにマイクロ命令
のアドレスの外部ソースへと結合された、請求の
範囲第7項記載のマイクロコントローラ。 11 前記アドレスレジスタのそれぞれは、イン
クリメントされて、それに対応する制御メモリか
らのマイクロ命令のシーケンスを順番に取出すレ
ジスタカウンタである、請求の範囲第7項記載の
マイクロコントローラ。 関連出願 1982年11月3日にCarlos F・Horvathによつ
て出願された“パイプラインがなされたマイクロ
コントローラのための多重制御記憶装置”という
名称のアメリカ合衆国特許出願連続番号第438702
号(特表昭59―502080号) 1982年11月3日にCarlos F・Horvathによつ
て出願された“ネストされたサブルーチンを取扱
うためのパイプラインがなされたマイクロコント
ローラ中の多重制御記憶装置”という名称のアメ
リカ合衆国特許出願連続番号第438703号(特表昭
59―501998号)。 発明の分野 この発明は、パイプラインがなされたマイクロ
コントローラに関するもので、特に、多重制御記
憶装置を用いて並行動作を行なわせることによつ
て、サイクルタイムのロスを減少させるようなコ
ントローラに関する。 従来技術の説明 マイクロプログラミングは、プロセツサ中のマ
クロ命令デコード論理回路をメモリで置換える技
術であつて、このメモリには、異なつたマクロ命
令を実行することができるように、プロセツサ中
のそれぞれのゲートを能動化するための種々の制
御信号がストアされている。これらの制御信号
は、対応するマイクロ命令の所望のワード長に依
存して、全体としてエンコードされてもよく、ま
た、部分的にエンコードされもしくはエンコード
されないものであつてもよい。そして、マクロ命
令オペレータは、制御記憶装置すなわちマイクロ
命令メモリに対するアドレスとしてサービスを行
なう。このようなマイクロプログラミング技術を
用いるとアーキテクチヤにおける設計の柔軟性が
極めて大きくなる。それは、発生可能な制御信号
のタイプが、どのような特定のプロセツサに対し
ても固定されたものとなつておらず、異なつた高
位のレベルのプログラム言語が特別に製造された
メインフレームのコンピユータのために設計され
ている場合においても、その言語のホストとのエ
ミユレーシヨンやインタプリタを行なうために選
択することができるからである。設計に関してこ
のような柔軟性が存在するため、ほとんどすべて
の中小プログラミングシステムや特定のマイクロ
プロセツサが、この技術を用いて構成されてい
る。 しかしながら、制御記憶装置からのマクロ命令
のアクセスやレセプシヨンでは、同じマクロ命令
オペレータがデコーダ論理回路によつてデコード
される場合に比べて、必要とされる時間が長くな
つている。このため、大型で高速のプロセツサを
設計するにあたつては、ハードワイヤの論理回路
が好んで用いられている。 速度の面での改良を図り、マイクロ命令を実行
するために必要とされるクロツク時間を短くする
ための技術としては、マクロ命令オペレータ(マ
イクロ命令アドレス)の取出しを前のマイクロ命
令の実行とパイプラインないしはオーバラツプさ
せるという技術が存在している。このような技術
は、Ferguson等に対して与えられたアメリカ合
衆国特許第3886523号に記載されている。 しかしながら、このようなオーバラツプ技術を
用いたとしても、実行中のルーチンの中の変化に
よつてマイクロコントローラが用いられていない
ようなクロツクタイムのシーケンスがなお存在す
る。すなわち、データプロセツサはマクロ命令レ
ベルまたはマイクロ命令レベルのいずれに対して
も、命令の単一のシーケンスを実行することはな
い。周期的に、内部条件または外部条件が発生し
て、他のルーチンへの分岐を行ない、その条件に
対する適当な応答を与えるような命令シーケンス
が必要となる。さらに、多くのルーチンがネスト
されたサブルーチンのシリーズとして形成され、
これはプロセツサに対してサブルーチンへのジヤ
ンプと、このサブルーチンから、実行されていた
親ルーチンとは異なつたいくつかの他のロケーシ
ヨンへのリターンを要求する。上述したような、
パイプラインがなされたマイクロコントローラに
おいては、これは、新たなサブルーチンを取出
し、実行されているその時点でのシーケンスを再
び廃棄することを要求することになり、これによ
つてサイクルタイムが失われる。 このため、この発明の主たる目的は、クロツク
サイクルのロスを最小化するようなデータプロセ
ツサのための改良されたマイクロコントローラを
提供することである。 この発明の他の目的は、命令の取出しと条件付
分岐命令の取出しとのオーバラツプを生じさせる
ようなデータプロセツサのための改良されたマイ
クロコントローラを提供することである。 この発明のなおも他の目的は、サブルーチン命
令へのジヤンプとサブルーチン命令からのリター
ンとを、その時点での取出し命令取出しにオーバ
ラツプさせるデータプロセツサのための改良され
たマイクロコントローラを提供することである。 発明の概要 上述した目的を達成するため、この発明は、複
数の制御記憶装置から形成されたデジタルデバイ
スを制御するためのマイクロコントローラを対象
としており、前記制御記憶装置のそれぞれは、対
応する制御記憶装置の中の異なつたロケーシヨン
をアドレスするレジスタカウンタを有している。
それぞれの制御記憶装置はそれぞれのクロツクサ
イクルでアクセスされるもので、選択された制御
記憶装置から取出されたマイクロ命令のうちの1
つを受取るための命令レジスタを持つている。こ
のような方法で、前のマイクロ命令が条件付分岐
である場合、サブルーチンへのジヤンプである場
合、またはサブルーチン命令へのリターンである
場合においても、マイクロ命令がそれぞれのクロ
ツクサイクルで命令レジスタに与えられる。 サブルーチンへのジヤンプと、サブルーチン命
令からの対応するリターンとを調和させるため、
このリターンサブルーチンの対応するアドレスは
プツシユダウンスタツクの中にストアされてお
り、これらのアドレスがスタツクの先頭に置かれ
ていたオーダの反対のオーダで、上述したレジス
タカウンタのうちの選択された1つへと与えられ
るようになつている。 このため、この発明の性質は、それぞれのクロ
ツクサイクルで複数のマイクロ命令を命令レジス
タへと与え、それによつて命令レジスタがそれぞ
れのクロツクサイクルで適切なマイクロ命令を受
取ることができるような、複数のメモリを有する
マイクロコントローラに存在している。
【図面の簡単な説明】
この発明の、上に述べた目的および他の目的と
利点や特徴は、図面を参照して行なう以下の説明
からより一層明らかとなろう。これらの図におい
て、 第1図は従来のマイクロコントローラの概念図
である。 第2図はこの発明のマイクロコントローラの概
念図である。 第3図はこの発明によつて実行されるものとし
てのプログラムセグメントを表現する命令のシー
ケンス図である。 第4図はこの発明で用いられるものとしてのア
ービトレーシヨン論理回路の概念図である。 第5図はこの発明の動作を示す真理値表が描か
れた図である。 発明の全般的な説明 この発明は、動作のクロツクサイクルのそれぞ
れの間にマイクロプログラムデータプロセツサの
中の種々のゲートやレジスタを活性化する制御信
号を与えるように構成されている。この制御信号
はコード化されていてもよく、またコード化され
ていなくてもよい。上に述べたように、従来のマ
イクロプログラムデバイスにおいては、条件付分
岐命令に出会つたとき、またはサブルーチンへの
ジヤンプ命令やサブルーチンからのリターン命令
に出会つたときには、常にクロツクタイムのロス
を生じていた。 このような従来のマイクロプログラムコントロ
ーラを第1図に示す。第1図に示すように、対応
するマイクロ命令は制御記憶装置10の中にスト
アされており、この制御記憶装置10はたとえば
リードオンリメモリ(ROM)である。以下に詳
しく説明するように、それぞれのマイクロ命令は
制御信号のフイールドを含んでおり、この制御信
号はそのすべてがコード化されていたものであつ
てもよく、また、部分的にコード化されているも
のや部分的にコード化されていないものであつて
もよい。これに加えて、それぞれのマイクロ命令
は、その時点でのマイクロ命令の次にシーケンス
の次のマイクロ命令が続くのか、それとも、サブ
ルーチン命令へのジヤンプもしくはサブルーチン
命令からのリターンのいずれかの条件付分岐命令
であるのかを特定するシーケンスフイールドを含
んでいる。このフイールドはまた、ジヤンプアド
レスまたはリターンアドレスを交互に含んでい
る。 アドレスレジスタ11によつてこの制御記憶装
置がアドレスされたときには、対応するマイクロ
命令が並列に読出されて命令レジスタ12へと与
えられ、そこからこのフイールドが取出されて、
算術論理ユニツトなどの制御の対象となるデジタ
ルデバイスを活性化ないしは能動化する。条件付
分岐やサブルーチンへのジヤンプ命令を実行して
いるときには、シーケンスフイールドが同じクロ
ツクサイクルの間にマルチプレクサ13に対して
代わりのアドレスを与える。条件付分岐命令を実
行している場合には、条件付ジヤンプ制御回路
が、付随命令の真偽を判定し、もし真であるなら
ば、マルチプレクサ13に対して信号を与え、そ
れに与えられた代わりのアドレスをアドレスレジ
スタ11へと転送させる。 マクロ命令レベルおよびマイクロ命令レベルの
いずれにおいても、データプロセツサを多く用い
るということは、プツシユダウンスタツクすなわ
ちフアーストインーラストアウト・レジスタの組
を用いるという特別の性質をもつている。このよ
うなスタツクは、サブルーチンへジヤンプしたと
きにリターンアドレスをストアしておかねばなら
ないということもあり、また他方、このサブルー
チンが他のサブルーチンへとジヤンプするときに
はリターンアドレスを必要とするということなど
の理由によつて、特に有用なものとなつている。
このようにしてネストされたサブルーチンを用い
ると、サブルーチンへのジヤンプが発生するごと
に、リターンアドレスがスタツクの先頭に置か
れ、それに続いて追加のリターンアドレスがこの
スタツクの先頭に入れられるときに、“ブツシユ”
ダウンされる。種々のサブルーチンが出ていく
と、それらが入れられた順序と逆の順序で、必要
なリターンアドレスがスタツクの先頭から与えら
れる。マイクロコントローラのためのこのような
スタツクは、第1図においては制御スタツク16
として示している。命令レジスタ12から出てそ
の時点で実行されているマイクロ命令がサブルー
チン命令からのリターンであるときには、制御ス
タツク16からマルチプレクサ13を介してアド
レスレジスタ11へと適当なアドレスが与えられ
る。 第1図に示したマイクロプロセツサは、前に取
出されたマイクロ命令の実行とオーバラツプして
制御ストアアドレスが取出されるようなタイプの
ものであり、これは、命令の通常のシーケンスの
間にそれが制御記憶装置10に対して与えられる
ごとに、アドレスレジスタ11の内容をインクリ
メントすることによつて、第1図のコントローラ
において達成される。このような動作によつて、
新たなマイクロ命令がそれぞれのクロツクタイム
において命令レジスタ12へと与えられる。しか
しながら、条件付分岐やサブルーチンへのジヤン
プ、それにサブルーチン命令からのリターンに出
会つたときには、適切なアクシヨンを実行できる
ようになるまでにアドレスレジスタ11の内容を
置換えなければならず、これによつてクロツクサ
イクルのロスが生じていた。 このクロツクサイクルのロスを減少させるた
め、この発明は、第2図に示すような方法によつ
て、それぞれのクロツクサイクルにおいて、制御
記憶装置の出力を命令レジスタに与えるように構
成されている。第2図において、3つの異なつた
記憶制御装置20a,20b,20cが存在して
おり、これらは、シーケンス情報とともに制御信
号のフイールドをマルチプレクサ22aによつて
命令レジスタ22へと与えるように構成されてい
る。しかしながら、条件付分岐やサブルーチン命
令からのリターンのためにも用いることのできる
ジヤンプアドレスJAを、それぞれの制御記憶装
置20a,20bおよび20cに対応するレジス
タカウンタ以外のレジスタカウンタ21a,21
bおよび21cのそれぞれに与えることができ
る。このために、レジスタカウンタ21a,21
b,21cにはそれぞれマルチプレクサ23a,
23b,23cが設けられており、これによつて
他の制御記憶装置からのジヤンプアドレスのうち
のいずれを受取るべきかということや、サブルー
チン命令からのリターンの場合に、メインスタツ
ク26からスタツクアドレスの先頭のものを受取
るべきか否かの選択を行なう。第2図に示したよ
うに、レジスタカウンタのそれぞれはまた、第1
図の従来のコントローラにおいて行なわれていた
と同様に、外部ソースからの次のアドレスを受取
ることもできる。 マルチプレクサ23a,23bおよび23cの
それぞれによつていずれの入力を選択したかとい
うことは、その時点で選択されている制御記憶装
置から命令レジスタ22へと与えられたシーケン
ス情報に対応する。算術論理回路27からの出力
によつて知ることができる。 制御記憶装置20a,20b,20cには、マ
イクロ命令の同じ組が与えられる。しかしなが
ら、任意の時刻を取つ見たときには、それぞれの
個々の制御記憶装置は、算術論理回路27から対
応するレジスタカウンタ21a,21b,21c
へと与えられたカウントロード情報に依存して、
3つのモードのうちの異なつた1つのモードで用
いられていることになる。これらの3つのモード
は、“プログラムカウンタレジスタ”、“ジヤンプ
アドレスレジスタ”、および“スタツクレジスタ
の先頭”である。3つのレジスタのそれぞれは、
タグレジスタとして機能する2ビツトレジスタを
伴つており、対応するこのタグレジスタの中にロ
ードされている値によつて、対応するレジスタカ
ウンタの状態や指名先を知ることができる。ここ
では第1図のアドレスレジスタ11の代わりにレ
ジスタカウンタを用いているため、第1図のイン
クリメンタ15は必要ではない。 以下に詳しく説明する動作によつて、この3つ
の制御記憶装置20a,20b,および20c
は、その時点で実行しているマイクロ命令が条件
付分岐命令、サブルーチン命令へのジヤンプまた
はサブルーチン命令からのリターンである場合に
おいては、制御情報のフイールドをそれぞれのク
ロツクサイクルにおいて命令レジスタ22へと与
え続けることができる。すなわち、レジスタカウ
ンタ21aがプログラムカウンタレジスタとして
指名されていた場合には、制御記憶装置21aへ
とアドレスを与え続けるとともに、分岐、ジヤン
プまたはリターン命令が命令レジスタ22におい
て指示されるまで、それ自身の内容のインクリメ
ントを行ない続ける。この期間においては、レジ
スタ21bおよび21cのうちの1つがジヤンプ
アドレスレジスタとして指名され、また、これら
のうちの他のレジスタはスタツクレジスタの先頭
のものとして指名されて、3つの制御記憶装置2
0a,20b,20cのすべてがマイクロ命令を
マルチプレクサ22aへと与える。取出された3
つのマイクロ命令はその時点におけるプログラム
カウントアドレス、ジヤンプアドレスおよびスタ
ツクの先頭のものすなわちサブルーチンからのリ
ターンアドレスに関するものであり、これらマイ
クロ命令のうちの1つは、アービトレーシヨン論
理回路27によつて選択されて、それぞれのクロ
ツクサイクルにおいて命令レジスタ22へと与え
られる。
【発明の詳細な説明】
第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の出力に分岐を
与えるべき命令が常に存在するようにする。最後
に、特定のレジスタカウンタが“スタツクレジス
タの先頭”として指名されると、最初にそのアド
レスがロードされているようなコーリングプログ
ラムのリターンアドレスを含むことになる。この
“スタツクレジスタの先頭”は、“プツシユ”命令
に出会つたときのみロードされる。この場合、こ
のレジスタの古い内容は第2図のメインスタツク
26へと移されている。このレジスタカウンタは
常に、メインスタツクの最も上のエレメントの内
容をホールドしている。しかしながら、リターン
命令に出会つたときには、リターンが特定される
べきアドレスの内容をこの命令レジスタに直ちに
ロードすることができる。これはもちろん、“ス
タツクレジスタの先頭”がリターンのロケーシヨ
ンの内容を取出すことによつて可能となる。 第3図に示したようなマイクロ命令の異なつた
シーケンスに対して種々のレジスタカウンタの中
で何が起こり、第2図の対応するROMの出力と
してどのようなものが生ずるかを例示することに
よつて、この発明では、それぞれのクロツクサイ
クルにおいてマイクロ命令を(第2図の)命令レ
ジスタ22へとどのように与えるかを理解するこ
とがおそらくできるであろう。たとえば、第3図
のマイクロ命令10がその時点で実行されてお
り、第2図のレジスタ21cが“プログラムカウ
ンタレジスタ”として指名されている場合を考え
ると、レジスタカウンタ21bは“ジヤンプレジ
スタ”として指名され、また、レジスタ21aは
“スタツクレジスタの先頭”として指名されてい
ることになる。マイクロ命令10の制御フイール
ドおよび命令フイールドは、このときには、命令
レジスタ22の中に存在し、レジスタカウンタ2
1cはインクリメントされて命令11のアドレス
をホールドし、レジスタカウンタ21bはマイク
ロ命令10のジヤンプアドレスフイールドをホー
ルドし(たとえば、このジヤンプアドレスを10
0とする)、そして、レジスタカウンタ21aは
スタツクアドレスの先頭のものをホールドする
(たとえば、このレジスタの内容を90とする)。
ROM20cの出力は制御データフイールドであ
つて、ジヤンプアドレスとして(75)を有する命
令11の命令フイールドが、第2図のマルチプレ
クサ23bへと与えられる。ROM20bの出力
は命令100の制御データフイールドと命令フイ
ールドであつて、そのジヤンプアドレス(300)
が第2図のマルチプレクサ23cへと与えられる
ことになる。ROM20aの出力はマイクロ命令
90の制御データフイールドおよび命令フイール
ドであり、そのジヤンプアドレス(400)が、マ
ルチプレクサ23bおよび23cの双方へ与えら
れる。 マイクロ命令10がジヤンプ命令であつた場合
には、レジスタカウンタ21bはここで“プログ
ラムカウンタレジスタ”となり、命令レジスタ2
2はマイクロ命令100の制御データフイールド
および命令フイールドを含むことになり、また、
“ジヤンプアドレスレジスタ”となつているレジ
スタカウンタ21cへとジヤンプアドレス(300)
が与えられるが、レジスタカウンタ21aの内容
には影響が生じていない。ROM20cの出力は
この時点で、命令300の制御データフイールド
および命令フイールドとなつており、そのジヤン
プアドレス(8)がマルチプレクサ23bへと与えら
れている。ROM20bの出力はこのとき、マイ
クロ命令101の制御データフイールドおよび命
令フイールドとなつており、そのジヤンプアドレ
ス(35)がマルチプレクサ23cへと与えられ
る。ROM20aの出力には変化は生じていな
い。 マイクロ命令10がサブルーチン命令へのジヤ
ンプであるときには、レジスタカウンタ21bは
“プログラムカウンタレジスタ”となり、その内
容(100)が1だけインクリメントされるととも
に、命令レジスタ22の内容は命令100の制御
データフイールドおよび命令フイールドとなる。
レジスタカウンタ21aは今度は“ジヤンプアド
レスレジスタ”となり、マイクロ命令100のジ
ヤンプアドレス(300)を含むが、一方、レジス
タカウンタ21cは“スタツクレジスタの先頭”
となつて、その内容(11)を維持している。ROM2
0bの出力はマイクロ命令101の制御データフ
イールドおよび命令フイールドとなつており、そ
のジヤンプアドレス(35)はマルチプレクサ23
aへと伝送される。レジスタカウンタ21aはマ
イクロ命令100(300)のジヤンプアドレスを
含んでおり、レジスタカウンタ21aの出力は命
令300の制御データフイールドおよび命令フイ
ールドであつて、そのジヤンプアドレス(8)はマル
チプレクサ23bへと伝送される。ROM20c
の出力は同一のままとなつている。その間に、
(90として特定された)レジスタ21aの前の内
容が、マルチプレクサ26aを経由してメインス
タツク26の先頭に置かれる。 マイクロ命令10がサブルーチン命令からのリ
ターンであつたときには、レジスタ21aは今度
は“プログラムカウンタレジスタ”となつて、1
だけインクリメントされる。命令レジスタ20に
は命令90の制御データフイールドおよび命令フ
イールドを含み、ROM20aの出力は命令91
の制御データフイールドおよび命令フイールドと
なつているが、そのジヤンプアドレスはマルチプ
レクサ21bへと与えられる。レジスタカウンタ
21bは“ジヤンプアドレスレジスタ”となり、
ROM20bの出力は前のマイクロ命令のジヤン
プアドレスならびに対応する制御データフイール
ドおよび命令フイールドとなる。“スタツクレジ
スタの先頭”となつているレジスタカウンタ21
cの内容はレジスタの先頭に前に置かれていた内
容を含んでおり、ROM20cの出力はそのアド
レスにおけるマイクロ命令の内容を含むことにな
る。 レジスタカウンタの役割分配を定める論理回路
は第2図のアービトレーシヨン論理回路27の中
に含まれている。この論理回路はステートマシン
にほかならない。レジスタカウンタのそれぞれに
付随した2ビツトレジスタ27a,27bおよび
27c(第4図参照)は、この論理回路の中に存
在している。この論理回路を駆動する信号は第2
図の命令レジスタ22および第2図の条件選択ユ
ニツト24において発生する。アービトレーシヨ
ン論理回路27の出力を第4図により詳しく示
す。これらの出力はデータ/アドレスマルチプレ
クサ23a,23b,23cを駆動し、また、3
つのレジスタカウンタ21a,21bおよび21
cへのロード/カウント能動化入力を駆動する。 上述したように、第2図および第4図のアービ
トレーシヨン論理回路27は、本質的にはステー
トマシンであり、実行される命令のタイプと3つ
のレジスタカウンタ21a,21bおよび1cの
状態ないしはモードのそれぞれの組合わせとに対
応した。レジスタおよびレジスタカウンタの次の
状態とソース選択アクシヨンとが存在する。第2
図および第4図のアービトレーシヨン論理回路2
7によつて制御されるこの発明のそれぞれのレジ
スタとROMとの動作を、第5図の中に表に詳し
く示す。この第5図では、それぞれのレジスタカ
ウンタの現在の状態および次の状態とともに、ア
ービトレーシヨン論理回路27の入力および出力
が描かれている。 第5図の第1行はその時点で実行されている命
令のタイプを示しており、“プログラムレジスタ
カウンタ”として指名されているレジスタカウン
タがインクリメントを続けているようなノーアク
シヨンのNA,サブルーチンへのジヤンプJMS,
およびサブルーチンからのリターン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図のレ
ジスタカウンタ21aが“ジヤンプアドレスレジ
スタ“モードとなつており、レジスタカウンタ2
1bが“スタツクレジスタの先頭”のモードとな
つており、そして、レジスタカウンタ21cが
“プログラムカウンタレジスタ”モードとなつて
いることを示している。同じラインの次の行は、
種々のレジスタの状態すなわちモードが変化して
いないことを示している。このラインの第4行
は、レジスタカウンタ21aに新しいアドレスが
ロードされており、レジスタカウンタ21bはそ
の内容を維持しており、そして、レジスタカウン
タ21cがインクリメントされていることを示し
ている。第5行は、レジスタ21aに第2図の
ROM20cからジヤンプアドレスがロードされ
ていることを示す。またこのラインの第6行のIS
は、第2図の命令レジスタ22がROM21cに
関してロードされていることを示し、そして、こ
のラインの最終行は、第2図のスタツク26の先
頭に何も置かれていないことを示す。 サブルーチンへのジヤンプ命令JMSの実行に
関するこの発明のアクシヨンの他の例が、第5図
の中の真理値表のJMSのカテゴリの第1ライン
に示されている。レジスタカウンタ21aは“ジ
ヤンプアドレスレジスタ“モードとなつており、
レジスタカウンタ21bは“スタツクの先頭”モ
ードであり、そして、レジスタ21cは“プログ
ラムカウントレジスタ”モードである。次のクロ
ツク時間における、種々のレジスタカウンタのそ
れぞれの状態は、レジスタカウンタ21aが“プ
ログラムカウンタレジスタ”となり、レジスタカ
ウンタ21bが“ジヤンプアドレスレジスタ”と
なり、そして、レジスタカウンタ21cが“スタ
ツクレジスタの先頭”となつている。次の行は、
レジスタカウンタ21cがインクリメントされ、
レジスタカウンタ21bに新たなアドレスがロー
ドされていることを示しており、また、その次の
行は新たなアドレスのソースがROM20aであ
ることを示している。その次の行は、第2図の命
令レジスタ22がROM20aからロードされて
おり、最後の行はレジスタ21bが第2図のスタ
ツク26の先頭に置かれていることを示してい
る。 上に述べた例によつて、第5図の中の表の残り
の部分は明らかであろう。但し、命令RETのタ
イプとなつているサブルーチンからのリターンに
おいて、第5行に存在するZは、スタツクの先頭
がそれぞれのレジスタカウンタをロードするため
のソースとなつていることを示している。 まとめ デジタルバイスのためのマイクロコントローラ
すなわち、それぞれのクロツクタイムにおいて、
3つの異なつた制御記憶装置つまりROMのうち
の1つから対応する命令レジスタへとマイクロ命
令を与えることができるように構成されたマイク
ロコントローラを開示した。この方法では、マイ
クロ命令のシーケンスは他のサブルーチンへの条
件付分岐、サブルーチンへのジヤンプおよびサブ
ルーチンからのリターンと出会うことが可能であ
つて、そこでは、次のクロツクサイクルに必要と
される正しいマイクロ命令を命令レジスタへと与
える準備が常になされているため、クロツクサイ
クルのロスは生じない。 なお、ここではこの発明の1つの実施例のみを
開示したが、請求の範囲の精神と範囲を逸脱する
ことなく、変形や変化を与えることが可能である
ということは当業者にとつては自明であろう。
JP58503687A 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 JPS59502040A (ja) 1984-12-06
JPS6339929B2 true JPS6339929B2 (ja) 1988-08-09

Family

ID=22175537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58503687A 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
JPS59502040A (ja) 1984-12-06

Similar Documents

Publication Publication Date Title
EP0124597B1 (en) Multiple control stores in a pipelined microcontroller for handling jump and return subroutines
US4399505A (en) External microcode operation in a multi-level microprocessor
US4200927A (en) Multi-instruction stream branch processing mechanism
AU628163B2 (en) Method and apparatus for detecting and correcting errors in a pipelined computer system
US5752064A (en) Computer architecture capable of concurrent issuance and execution of general purpose multiple instructions
US3735363A (en) Information processing system employing stored microprogrammed processors and access free field memories
US5119483A (en) Application of state silos for recovery from memory management exceptions
US5006980A (en) Pipelined digital CPU with deadlock resolution
EP0096576A2 (en) Mechanism for creating dependency free code for multiple processing elements
EP0126125B1 (en) Multiple control stores for a pipelined microcontroller
US4305124A (en) Pipelined computer
JPH03129433A (ja) 並列処理装置および並列処理方法
JPS6339931B2 (ja)
JPH0774991B2 (ja) デジタルコンピュータに於けるパイプライン化された処理ユニットの動作方法
JPH0429093B2 (ja)
US5097407A (en) Artificial intelligence processor
US4551798A (en) Multiple control stores in a pipelined microcontroller for handling nester subroutines
KR100210205B1 (ko) 스톨캐쉬를 제공하기 위한 장치 및 방법
EP0378415A2 (en) Multiple instruction dispatch mechanism
US4173782A (en) Return and link mechanism
EP0010196B1 (en) Control circuit and process for digital storage devices
US5666507A (en) Pipelined microinstruction apparatus and methods with branch prediction and speculative state changing
US5363490A (en) Apparatus for and method of conditionally aborting an instruction within a pipelined architecture
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
JP2680828B2 (ja) ディジタル装置