JPS6339930B2 - - Google Patents
Info
- Publication number
- JPS6339930B2 JPS6339930B2 JP58503727A JP50372783A JPS6339930B2 JP S6339930 B2 JPS6339930 B2 JP S6339930B2 JP 58503727 A JP58503727 A JP 58503727A JP 50372783 A JP50372783 A JP 50372783A JP S6339930 B2 JPS6339930 B2 JP S6339930B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- address
- jump
- counter
- 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
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
請求の範囲
1 デジタルデバイスを制御するためのマイクロ
コントローラであつて、 マイクロ命令の同じ組をそれぞれ含む3個の制
御メモリを備え、前記マイクロ命令のそれぞれ
は、前記デジタルデバイスを制御するための制御
フイールドと、前記それぞれのマイクロ命令がサ
ブルーチンへとジヤンプすべきであるときまたは
サブルーチン命令からリターンすべきであるとき
に次のマイクロ命令のロケーシヨンを特定するジ
ヤンプアドレスフイールドと、特定のマイクロ命
令がジヤンプ命令もしくはリターン命令であるか
どうか、またはいずれのアクシヨンをも要求して
いないかどうかを特定する命令フイールドとから
形成されており、 前記コントローラはさらに、それぞれの前記制
御メモリに関して設けられて取出すべき次のマイ
クロ命令のアドレスを含む3個のアドレスレジス
タと、 前記メモリのそれぞれと前記デジタルデバイス
とに結合されて、前記制御メモリのうちの1つか
ら取出されたマイクロ命令の制御フイールドおよ
び命令フイールドを受取る命令レジスタと、 前記制御メモリのそれぞれと、他の制御メモリ
のアドレスレジスタとの間に結合されて、ジヤン
プアドレスを前記他の制御メモリのアドレスレジ
スタへと与える相互接続手段と、 前記命令レジスタの前記命令フイールド部分と
前記アドレスレジスタとに結合されて、前記レジ
スタのうちの1つをプログラムカウンタとして特
定し、前記レジスタのうちの1つをジヤンプアド
レスレジスタとして特定し、そして前記レジスタ
のうちの1つをサブルーチンからのリターンにつ
いてのレジスタとして特定する論理手段と、 フアーストイン−ラストアウトの態様でサブル
ーチンアドレスからの1つまたはそれ以上のリタ
ーンを受取り、ネストされた一連のサブルーチン
の実行に適応するプツシユダウンスタツク手段と
を備える、マイクロコントローラ。 2 前記マイクロコントローラはさらに、 前記それぞれの制御メモリと前記命令レジスタ
との間に結合されて、前記それぞれの制御メモリ
から取出されたマイクロ命令のうちの1つの命令
フイールドと制御フイールドとを選択するマルチ
プレクサを備える、請求の範囲第1項記載のマイ
クロコントローラ。 3 前記マイクロコントローラは複数個のマルチ
プレクサをさらに備え、前記マルチプレクサのそ
れぞれは前記アドレスレジスタのそれぞれと他の
制御メモリのジヤンプアドレス出力との間に接続
され、前記マルチプレクサはさらに、マイクロ命
令のアドレスの外部ソースへと結合された、請求
の範囲第1項記載のマイクロコントローラ。 4 前記アドレスレジスタのそれぞれは、インク
リメントされて、それに対応する制御メモリから
のマイクロ命令のシーケンスを順番に取出すレジ
スタカウンタである、請求の範囲第1項記載のマ
イクロコントローラ。 5 前記論理手段は、その時点で実行されている
マイクロ命令がサブルーチン命令へのジヤンプで
あるかそれともサブルーチン命令からのリターン
であるかに従つて、異なるアドレスレジスタをプ
ログラムカウンタとして特定するように構成され
ている、請求の範囲第1項記載のマイクロコント
ローラ。 6 前記アドレスレジスタは前記プツシユダウン
スタツク手段に結合されており、サブルーチンか
らのリターンについてその時点で特定されている
レジスタが、スタツクレジスタの先頭としての前
記スタツク手段の中の最初のロケーシヨンとして
機能する、請求の範囲第1項記載のマイクロコン
トローラ。 関連出願 1982年11月3日にCarlos F・Horvathによつ
て出願された“パイプラインがなされたマイクロ
コントローラのための多重制御記憶装置”という
名称のアメリカ合衆国特許出願連続番号第438702
号(特表昭59―502080号) 1982年11月3日にCarlos F・Horvathによつ
て出願された“サブルーチンへのジヤンプおよび
リターンのためのパイプラインがなされたマイク
ロコントローラ中の多重制御記憶装置”という名
称のアメリカ合衆国特許出願連続番号第438701号
(特表昭59―502040号)。 発明の分野 この発明は、パイプラインがなされたマイクロ
コントローラに関するもので、特に、多重制御記
憶装置を用いて並行動作を行なわせることによつ
て、サイクルタイムのロスを減少させるようなコ
ントローラに関する。 従来技術の説明 マイクロプログラミングは、プロセツサ中のマ
クロ命令デコード論理回路をメモリで置換える技
術であつて、このメモリには、異なつたマクロ命
令を実行することができるように、プロセツサ中
のそれぞれのゲートを能動化するための種々の制
御信号がストアされている。これらの制御信号
は、対応するマイクロ命令の所望のワード長に依
存して、全体としてエンコードされてもよく、ま
た、部分的にエンコードされもしくはエンコード
されないものであつてもよい。そして、マクロ命
令オペレータは、制御記憶装置すなわちマイクロ
命令メモリに対するアドレスとしてサービスを行
なう。このようなマイクロプログラミング技術を
用いるとアーキテクチヤにおける設計の柔軟性が
極めて大きくなる。それは、発生可能な制御信号
のタイプが、どのような特定のプロセツサに対し
ても固定されたものとなつておらず、異なつた高
位のレベルのプログラム言語が特別に製造された
メインフレームのコンピユータのために設計され
ている場合においても、その言語のホストとのエ
ミユレーシヨンやインタプリタを行なうために選
択することができるからである。設計に関してこ
のような柔軟性が存在するため、ほとんどすべて
の中小プログラミングシステムや特定のマイクロ
プロセツサが、この技術を用いて構成されてい
る。 しかしながら、前記記憶装置からのマクロ命令
のアクセスやレセプシヨンでは、同じマクロ命令
オペレータがデコーダ論理回路によつてデコード
される場合に比べて、必要とされる時間が長くな
つている。このため、大型で高速のプロセツサを
設計するにあたつては、ハードワイヤの論理回路
が好んで用いられている。 速度の面での改良を図り、マイクロ命令を実行
するために必要とされるクロツク時間を短くする
ための技術としては、マクロ命令オペレータ(マ
イクロ命令アドレス)の取出しを前のマイクロ命
令の実行とパイプラインないしはオーバラツプさ
せるという技術が存在している。このような技術
は、Ferguson等に対して与えられたアメリカ合
衆国特許第3886523号に記載されている。 しかしながら、このようなオーバラツプ技術を
用いたとしても、実行中のルーチンの中の変化に
よつてマイクロコントローラが用いられていない
ようなクロツクタイムのシーケンスがなお存在す
る。すなわち、データプロセツサはマクロ命令レ
ベルまたはマイクロ命令レベルのいずれに対して
も、命令の単一のシーケンスを実行することはな
い。周期的に、内部条件または外部条件が発生し
て、他のルーチンへの分岐を行ない、その条件に
対する適当な応答を与えるような命令シーケンス
が必要となる。さらに、多くのルーチンがネスト
されたサブルーチンのシリーズとして形成され、
これはプロセツサに対してサブルーチンへのジヤ
ンプと、このサブルーチンから、実行されていた
親ルーチンとは異なつたいくつかの他のロケーシ
ヨンへのリターンを要求する。上述したように、
パイプラインがなされたマイクロコントローラに
おいては、これは、新たなサブルーチンを取出
し、実行されているその時点でのシーケンスを再
び廃棄することを要求することになり、これによ
つてサイクルタイムが失われる。 このため、この発明を主たる目的は、クロツク
サイクルのロスを最小化するようなデータプロセ
ツサのための改良されたマイクロコントローラを
提供することである。 この発明の他の目的は、命令の取出しと条件付
分岐命令の取出しとのオーバラツプを生じさせる
ようなデータプロセツサのための改良されたマイ
クロコントローラを提供することである。 この発明のなおも他の目的は、サブルーチン命
令へのジヤンプとサブルーチン命令からのリター
ンとを、その時点での取出し命令取出しにオーバ
ラツプさせるデータプロセツサのための改良され
たマイクロコントローラを提供することである。 発明の概要 上述した目的を達成するため、この発明は、複
数の制御記憶装置から形成されたデジタルデバイ
スを制御するためのマイクロコントローラを対象
としており、前記制御記憶装置のそれぞれは、対
応する制御記憶装置の中の異なつたロケーシヨン
をアドレスするレジスタカウンタを有している。
それぞれの制御記憶装置はそれぞれクロツクサイ
クルでアクセスされるもので、選択された制御記
憶装置から取出されたマイクロ命令のうちの1つ
を受取るための命令レジスタを持つている。この
ような方法で、前のマイクロ命令が条件付分岐で
ある場合、サブルーチンへのジヤンプである場
合、またはサブルーチン命令へのリターンである
場合においても、マイクロ命令がそれぞれのクロ
ツクサイクルで命令レジスタに与えられる。 サブルーチンへのジヤンプと、サブルーチン命
令からの対応するリターンとを調和させるため、
このリターンサブルーチンの対応するアドレスは
プツシユダウンスタツクの中にストアされてお
り、これらのアドレスがスタツクの先頭に置かれ
ていたオーダの反対のオーダで、上述したレジス
タカウンタのうちの選択された1つへと与えられ
るようになつている。 このため、この発明の性質は、それぞれのクロ
ツクサイクルで複数のマイクロ命令を命令レジス
タへと与え、それによつて命令レジスタがそれぞ
れのクロツクサイクルで適切なマイクロ命令を受
取ることができるような、複数のメモリを有する
マイクロコントローラに存在している。
コントローラであつて、 マイクロ命令の同じ組をそれぞれ含む3個の制
御メモリを備え、前記マイクロ命令のそれぞれ
は、前記デジタルデバイスを制御するための制御
フイールドと、前記それぞれのマイクロ命令がサ
ブルーチンへとジヤンプすべきであるときまたは
サブルーチン命令からリターンすべきであるとき
に次のマイクロ命令のロケーシヨンを特定するジ
ヤンプアドレスフイールドと、特定のマイクロ命
令がジヤンプ命令もしくはリターン命令であるか
どうか、またはいずれのアクシヨンをも要求して
いないかどうかを特定する命令フイールドとから
形成されており、 前記コントローラはさらに、それぞれの前記制
御メモリに関して設けられて取出すべき次のマイ
クロ命令のアドレスを含む3個のアドレスレジス
タと、 前記メモリのそれぞれと前記デジタルデバイス
とに結合されて、前記制御メモリのうちの1つか
ら取出されたマイクロ命令の制御フイールドおよ
び命令フイールドを受取る命令レジスタと、 前記制御メモリのそれぞれと、他の制御メモリ
のアドレスレジスタとの間に結合されて、ジヤン
プアドレスを前記他の制御メモリのアドレスレジ
スタへと与える相互接続手段と、 前記命令レジスタの前記命令フイールド部分と
前記アドレスレジスタとに結合されて、前記レジ
スタのうちの1つをプログラムカウンタとして特
定し、前記レジスタのうちの1つをジヤンプアド
レスレジスタとして特定し、そして前記レジスタ
のうちの1つをサブルーチンからのリターンにつ
いてのレジスタとして特定する論理手段と、 フアーストイン−ラストアウトの態様でサブル
ーチンアドレスからの1つまたはそれ以上のリタ
ーンを受取り、ネストされた一連のサブルーチン
の実行に適応するプツシユダウンスタツク手段と
を備える、マイクロコントローラ。 2 前記マイクロコントローラはさらに、 前記それぞれの制御メモリと前記命令レジスタ
との間に結合されて、前記それぞれの制御メモリ
から取出されたマイクロ命令のうちの1つの命令
フイールドと制御フイールドとを選択するマルチ
プレクサを備える、請求の範囲第1項記載のマイ
クロコントローラ。 3 前記マイクロコントローラは複数個のマルチ
プレクサをさらに備え、前記マルチプレクサのそ
れぞれは前記アドレスレジスタのそれぞれと他の
制御メモリのジヤンプアドレス出力との間に接続
され、前記マルチプレクサはさらに、マイクロ命
令のアドレスの外部ソースへと結合された、請求
の範囲第1項記載のマイクロコントローラ。 4 前記アドレスレジスタのそれぞれは、インク
リメントされて、それに対応する制御メモリから
のマイクロ命令のシーケンスを順番に取出すレジ
スタカウンタである、請求の範囲第1項記載のマ
イクロコントローラ。 5 前記論理手段は、その時点で実行されている
マイクロ命令がサブルーチン命令へのジヤンプで
あるかそれともサブルーチン命令からのリターン
であるかに従つて、異なるアドレスレジスタをプ
ログラムカウンタとして特定するように構成され
ている、請求の範囲第1項記載のマイクロコント
ローラ。 6 前記アドレスレジスタは前記プツシユダウン
スタツク手段に結合されており、サブルーチンか
らのリターンについてその時点で特定されている
レジスタが、スタツクレジスタの先頭としての前
記スタツク手段の中の最初のロケーシヨンとして
機能する、請求の範囲第1項記載のマイクロコン
トローラ。 関連出願 1982年11月3日にCarlos F・Horvathによつ
て出願された“パイプラインがなされたマイクロ
コントローラのための多重制御記憶装置”という
名称のアメリカ合衆国特許出願連続番号第438702
号(特表昭59―502080号) 1982年11月3日にCarlos F・Horvathによつ
て出願された“サブルーチンへのジヤンプおよび
リターンのためのパイプラインがなされたマイク
ロコントローラ中の多重制御記憶装置”という名
称のアメリカ合衆国特許出願連続番号第438701号
(特表昭59―502040号)。 発明の分野 この発明は、パイプラインがなされたマイクロ
コントローラに関するもので、特に、多重制御記
憶装置を用いて並行動作を行なわせることによつ
て、サイクルタイムのロスを減少させるようなコ
ントローラに関する。 従来技術の説明 マイクロプログラミングは、プロセツサ中のマ
クロ命令デコード論理回路をメモリで置換える技
術であつて、このメモリには、異なつたマクロ命
令を実行することができるように、プロセツサ中
のそれぞれのゲートを能動化するための種々の制
御信号がストアされている。これらの制御信号
は、対応するマイクロ命令の所望のワード長に依
存して、全体としてエンコードされてもよく、ま
た、部分的にエンコードされもしくはエンコード
されないものであつてもよい。そして、マクロ命
令オペレータは、制御記憶装置すなわちマイクロ
命令メモリに対するアドレスとしてサービスを行
なう。このようなマイクロプログラミング技術を
用いるとアーキテクチヤにおける設計の柔軟性が
極めて大きくなる。それは、発生可能な制御信号
のタイプが、どのような特定のプロセツサに対し
ても固定されたものとなつておらず、異なつた高
位のレベルのプログラム言語が特別に製造された
メインフレームのコンピユータのために設計され
ている場合においても、その言語のホストとのエ
ミユレーシヨンやインタプリタを行なうために選
択することができるからである。設計に関してこ
のような柔軟性が存在するため、ほとんどすべて
の中小プログラミングシステムや特定のマイクロ
プロセツサが、この技術を用いて構成されてい
る。 しかしながら、前記記憶装置からのマクロ命令
のアクセスやレセプシヨンでは、同じマクロ命令
オペレータがデコーダ論理回路によつてデコード
される場合に比べて、必要とされる時間が長くな
つている。このため、大型で高速のプロセツサを
設計するにあたつては、ハードワイヤの論理回路
が好んで用いられている。 速度の面での改良を図り、マイクロ命令を実行
するために必要とされるクロツク時間を短くする
ための技術としては、マクロ命令オペレータ(マ
イクロ命令アドレス)の取出しを前のマイクロ命
令の実行とパイプラインないしはオーバラツプさ
せるという技術が存在している。このような技術
は、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へと与え
られる。
利点や特徴は、図面を参照して行なう以下の説明
からより一層明らかとなろう。これらの図におい
て、 第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はその内
容を維持しており、そして、レジスタカウンタ2
1cがインクリメントされていることを示してい
る。第5行は、レジスタ21aに第2図のROM
20cからジヤンプアドレスがロードされている
ことを示す。またこのラインの第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つの実施例のみを
開示したが、請求の範囲の精神と範囲を逸脱する
ことなく、変形や変化を与えることが可能である
ということは当業者にとつては自明であろう。
の制御記憶装置すなわち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はその内
容を維持しており、そして、レジスタカウンタ2
1cがインクリメントされていることを示してい
る。第5行は、レジスタ21aに第2図のROM
20cからジヤンプアドレスがロードされている
ことを示す。またこのラインの第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つの実施例のみを
開示したが、請求の範囲の精神と範囲を逸脱する
ことなく、変形や変化を与えることが可能である
ということは当業者にとつては自明であろう。
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 JPS59501998A (ja) | 1984-11-29 |
| JPS6339930B2 true JPS6339930B2 (ja) | 1988-08-09 |
Family
ID=22175535
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58503727A Granted JPS59501998A (ja) | 1982-11-03 | 1983-11-03 | ネストされたサブル−チンを取扱うためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS59501998A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63143815A (ja) * | 1986-12-08 | 1988-06-16 | Matsushita Electric Ind Co Ltd | ランプアニ−ル装置 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5360134A (en) * | 1976-11-10 | 1978-05-30 | Nec Corp | Microprogram control device |
-
1983
- 1983-11-03 JP JP58503727A patent/JPS59501998A/ja active Granted
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63143815A (ja) * | 1986-12-08 | 1988-06-16 | Matsushita Electric Ind Co Ltd | ランプアニ−ル装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPS59501998A (ja) | 1984-11-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0124597B1 (en) | Multiple control stores in a pipelined microcontroller for handling jump and return subroutines | |
| US3735363A (en) | Information processing system employing stored microprogrammed processors and access free field memories | |
| US5752064A (en) | Computer architecture capable of concurrent issuance and execution of general purpose multiple instructions | |
| US4200927A (en) | Multi-instruction stream branch processing mechanism | |
| JP2550213B2 (ja) | 並列処理装置および並列処理方法 | |
| US4399505A (en) | External microcode operation in a multi-level microprocessor | |
| EP0096576A2 (en) | Mechanism for creating dependency free code for multiple processing elements | |
| US4179731A (en) | Microprogrammed control system | |
| EP0126125B1 (en) | Multiple control stores for a pipelined microcontroller | |
| JPS6339931B2 (ja) | ||
| JPH0429093B2 (ja) | ||
| US5097407A (en) | Artificial intelligence processor | |
| JPH0823818B2 (ja) | 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置 | |
| US4551798A (en) | Multiple control stores in a pipelined microcontroller for handling nester subroutines | |
| JPH0810428B2 (ja) | データ処理装置 | |
| JPS5811654B2 (ja) | デ−タシヨリシステム | |
| KR100210205B1 (ko) | 스톨캐쉬를 제공하기 위한 장치 및 방법 | |
| EP0378415A2 (en) | Multiple instruction dispatch mechanism | |
| US4173782A (en) | Return and link mechanism | |
| 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 | |
| EP0284327B1 (en) | Shared micro-ram with micro-rom linking | |
| JPS6339929B2 (ja) | ||
| EP0177712B1 (en) | Masked data fetch and modifying device | |
| JPS59501998A (ja) | ネストされたサブル−チンを取扱うためのパイプラインがなされたマイクロコントロ−ラ中の多重制御記憶装置 |