JPS63228225A - ディジタルコンピュータシステム - Google Patents
ディジタルコンピュータシステムInfo
- Publication number
- JPS63228225A JPS63228225A JP4183288A JP4183288A JPS63228225A JP S63228225 A JPS63228225 A JP S63228225A JP 4183288 A JP4183288 A JP 4183288A JP 4183288 A JP4183288 A JP 4183288A JP S63228225 A JPS63228225 A JP S63228225A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- microcode
- macro
- instructions
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はディジタルコンピュータシステムに関し、特に
は複合型のマクロ命令の実行のためのマイクロコードを
有するシステムに関する。
は複合型のマクロ命令の実行のためのマイクロコードを
有するシステムに関する。
近年、多くのコンピュータ・アーキテクチャに複合型の
マクロ命令の実行をサポートするためにマイクロコード
が使用されている。マクロ命令、あるいは、機械命令が
中央プロセッサにより読み込まれると、対応するマイク
ロコード・サブルーチンへの飛び越しが行われる。この
サブルーチンがマクロ命令を実行するに必要なコードを
備えている。
マクロ命令の実行をサポートするためにマイクロコード
が使用されている。マクロ命令、あるいは、機械命令が
中央プロセッサにより読み込まれると、対応するマイク
ロコード・サブルーチンへの飛び越しが行われる。この
サブルーチンがマクロ命令を実行するに必要なコードを
備えている。
このようにすることにより多くの利点がもたらされる。
1つの複合機能を1つの機械命令により表わしうるので
ある。したがって、プログラマはこれらの複合機能のた
めにコードを作成しなくともよくなる。更には、最も効
率のよいコードが使用されるということも重要である。
ある。したがって、プログラマはこれらの複合機能のた
めにコードを作成しなくともよくなる。更には、最も効
率のよいコードが使用されるということも重要である。
すなわち、一般的に、多くの異なるプログラマが作成す
るコードより効率のよいコードが使用されるということ
である。また、マクロ命令レベルで書かれたプログラム
をいじることなく、同じシステムのバージョンによって
マイクロコードを変更することができる。
るコードより効率のよいコードが使用されるということ
である。また、マクロ命令レベルで書かれたプログラム
をいじることなく、同じシステムのバージョンによって
マイクロコードを変更することができる。
マイクロコードを用いた装置の欠点の一つに、マイクロ
コードによって全ての命令をサポートしなければならな
いということがある。マイクロコード・サブルーチンが
実行される度毎に必要最小限のプロセッサのオーバヘッ
ドが生じることとなる。このことはマイクロコード・サ
ブルーチンへの飛び越しが行われる度毎にパイプライン
を初期化しなければならないパイプライン・アーキテク
チャにとっては特に情実であった。オーバヘッドとは多
くの簡単な命令が非常に非効率的に実行されることを意
味する。
コードによって全ての命令をサポートしなければならな
いということがある。マイクロコード・サブルーチンが
実行される度毎に必要最小限のプロセッサのオーバヘッ
ドが生じることとなる。このことはマイクロコード・サ
ブルーチンへの飛び越しが行われる度毎にパイプライン
を初期化しなければならないパイプライン・アーキテク
チャにとっては特に情実であった。オーバヘッドとは多
くの簡単な命令が非常に非効率的に実行されることを意
味する。
1つのコンピュータ・アーキテクチャが複合命令を実行
する能力を有すると共に簡単な命令を非常に効率的に実
行することが望ましく、中央プロセッサによるマイクロ
命令の最高実行速度によって一つのマクロ命令を実行で
きる、すなわち1プロセツサ・サイクル毎に一つのマク
ロ命令を実行できるシステムが理想である。
する能力を有すると共に簡単な命令を非常に効率的に実
行することが望ましく、中央プロセッサによるマイクロ
命令の最高実行速度によって一つのマクロ命令を実行で
きる、すなわち1プロセツサ・サイクル毎に一つのマク
ロ命令を実行できるシステムが理想である。
本発明の目的は複合命令も簡単な命令もサポートする混
在した命令群のためのアーキテクチャを提供することに
ある。簡単な命令は好ましくはクロック・サイクル毎に
1マクロ命令の実行という割合の速度で実行されると共
呻複合型の機械命令もまたサポートされる。
在した命令群のためのアーキテクチャを提供することに
ある。簡単な命令は好ましくはクロック・サイクル毎に
1マクロ命令の実行という割合の速度で実行されると共
呻複合型の機械命令もまたサポートされる。
〔課題を解決するための手段および作用〕本発明により
設計されたコンピュータ・システムでは複合命令の実行
をサポートするためにマイクロコードが用いられる。新
しい機械命令(マクロ命令)が読み込まれると、この命
令コードは所定の検索テーブルの索引として用いられる
。マクロ命令が唯一のマイクロ命令に対応する簡単なタ
イプのものであれば、検索テーブルからはその対応する
マイクロ命令を含むものが出力されることとなる。シス
テムは検索テーブルで見つけられたマイクロ命令を直接
、実行して、次のマクロ命令を読み込む。マクロ命令が
複合型のものであり、実行するにマイクロコード・サブ
ルーチンを必要とするのであれば、検索テーブルからは
これに対応して、指定されたマイクロコード・サブルー
チンを行先とする飛び越し命令が出力される。
設計されたコンピュータ・システムでは複合命令の実行
をサポートするためにマイクロコードが用いられる。新
しい機械命令(マクロ命令)が読み込まれると、この命
令コードは所定の検索テーブルの索引として用いられる
。マクロ命令が唯一のマイクロ命令に対応する簡単なタ
イプのものであれば、検索テーブルからはその対応する
マイクロ命令を含むものが出力されることとなる。シス
テムは検索テーブルで見つけられたマイクロ命令を直接
、実行して、次のマクロ命令を読み込む。マクロ命令が
複合型のものであり、実行するにマイクロコード・サブ
ルーチンを必要とするのであれば、検索テーブルからは
これに対応して、指定されたマイクロコード・サブルー
チンを行先とする飛び越し命令が出力される。
本システムはよりスループットを高めるようにしたパイ
プライン化されたアーキテクチャと組み合わせることが
できる。パイプライン化されたアーキテクチャが用いら
れるならば、マクロ命令を一時的に保持するマクロ命令
待ち行列が使用されうる。マクロ命令がマイクロコード
・ルーチンへの飛び越しを行うものである場合、次のマ
クロ命令がパイプライン内のどこかで初期化されたとし
ても、その次のマクロ命令は消失しない。まだ実行され
ていないマクロ命令はマイクロコード・ルーチンから制
御が復帰するまで待ち行列に保持され、復帰したときに
それらのマクロ命令はパイプラインに再び入っていく。
プライン化されたアーキテクチャと組み合わせることが
できる。パイプライン化されたアーキテクチャが用いら
れるならば、マクロ命令を一時的に保持するマクロ命令
待ち行列が使用されうる。マクロ命令がマイクロコード
・ルーチンへの飛び越しを行うものである場合、次のマ
クロ命令がパイプライン内のどこかで初期化されたとし
ても、その次のマクロ命令は消失しない。まだ実行され
ていないマクロ命令はマイクロコード・ルーチンから制
御が復帰するまで待ち行列に保持され、復帰したときに
それらのマクロ命令はパイプラインに再び入っていく。
本発明の新規な特徴は本明細書に記載されている。本発
明の前述したような目的・効果および他の目的効果は以
下に明らかにされるだろう。添付図面に示されている、
好ましい実施例は説明のためであって、限定を目的とす
るものではない。
明の前述したような目的・効果および他の目的効果は以
下に明らかにされるだろう。添付図面に示されている、
好ましい実施例は説明のためであって、限定を目的とす
るものではない。
第1図はマイクロコードによる複合命令を実行するのと
同様に直接マクロコード命令を実行しうるコンピュータ
・システムの特徴を図示したものである。以下に用いら
れるよう・に、マクロコード命令は所定のコンピュータ
・システムのための機械言語レベルの命令である。2つ
の浮動小数点の数どうしの除算のようなマクロ命令はか
なり複雑となりうるが、そのコンピュータの使用機械言
語では単一の命令により表わされる。マイクロコードは
一つのマクロコード命令の実行のために必要な簡単なス
テップを実際に実行するのに用いられる。このように、
除算の場合のように、一般に多くのマシンサイクルが一
つの除算命令を実行するのに必要である。マクロ命令は
マイクロコード・メモリに保持されたサブルーチンへ飛
んで、そのサブルーチンを実行することにより実行され
うる。
同様に直接マクロコード命令を実行しうるコンピュータ
・システムの特徴を図示したものである。以下に用いら
れるよう・に、マクロコード命令は所定のコンピュータ
・システムのための機械言語レベルの命令である。2つ
の浮動小数点の数どうしの除算のようなマクロ命令はか
なり複雑となりうるが、そのコンピュータの使用機械言
語では単一の命令により表わされる。マイクロコードは
一つのマクロコード命令の実行のために必要な簡単なス
テップを実際に実行するのに用いられる。このように、
除算の場合のように、一般に多くのマシンサイクルが一
つの除算命令を実行するのに必要である。マクロ命令は
マイクロコード・メモリに保持されたサブルーチンへ飛
んで、そのサブルーチンを実行することにより実行され
うる。
一つのマクロコードの実行が終了すると、制御は実行さ
れるべき次のマクロ命令へ移ル。
れるべき次のマクロ命令へ移ル。
コンピュータ・システムのマイクロコードは一般にはプ
ログラマが直接、利用することはできない。テキサス・
インストルメンツから出ているエクスプロラ・シンボリ
ツク・コンピュータのようなシステムでは、マイクロコ
ード・メモリは実際には、システムの起動時に、実行さ
れるマイクロ命令がロードされるRAMである。これに
より、処理システムを種々の態様に構築することができ
、処理すべきタスクのために最適化することができる。
ログラマが直接、利用することはできない。テキサス・
インストルメンツから出ているエクスプロラ・シンボリ
ツク・コンピュータのようなシステムでは、マイクロコ
ード・メモリは実際には、システムの起動時に、実行さ
れるマイクロ命令がロードされるRAMである。これに
より、処理システムを種々の態様に構築することができ
、処理すべきタスクのために最適化することができる。
しかしながら、マイクロコードはこのシステムで実行さ
れるアプリケーション・プログラムから直接、アクセス
することはできない。マイクロコードを変更するだけで
システムが利用することのできるマクロ命令が変更され
る。
れるアプリケーション・プログラムから直接、アクセス
することはできない。マイクロコードを変更するだけで
システムが利用することのできるマクロ命令が変更され
る。
第1図は簡単なマクロコードは直接、実行することがで
き、マイクロコード・ルーチンを呼び出すことにより複
合命令も実行することができるシステムのブロック図を
示している。中央プロセッサ10はメイン・システム・
バス12に接続される。メイン・メモリ14もシステム
バス12に接続される。システム・バス・ラインは種々
の制御ラインと共にデータ・ラインおよびアドレス・ラ
インを含んでいる。実際のシステムでは、本発明の説明
のためには必ずしも必要でないので図示していないが、
Iloや大容量記憶装置などの付加的な装置がシステム
・バス12に接続されるだろう。
き、マイクロコード・ルーチンを呼び出すことにより複
合命令も実行することができるシステムのブロック図を
示している。中央プロセッサ10はメイン・システム・
バス12に接続される。メイン・メモリ14もシステム
バス12に接続される。システム・バス・ラインは種々
の制御ラインと共にデータ・ラインおよびアドレス・ラ
インを含んでいる。実際のシステムでは、本発明の説明
のためには必ずしも必要でないので図示していないが、
Iloや大容量記憶装置などの付加的な装置がシステム
・バス12に接続されるだろう。
マイクロコード・メモリ16は中央プロセッサ10に接
続される。これはテキサスインストルメンツエクスプロ
ラのようにシステムの起動時にマイクロコードがロード
される、独立のランダム・アクセス・メモリであっても
よいし、中央プロセッサ・チップに内蔵されるか、若し
くはそのようなチップに外付けされたROM若しくはE
FROMであってもよい。マイクロコード・メモリはど
のようなタイプのものであってもよい。
続される。これはテキサスインストルメンツエクスプロ
ラのようにシステムの起動時にマイクロコードがロード
される、独立のランダム・アクセス・メモリであっても
よいし、中央プロセッサ・チップに内蔵されるか、若し
くはそのようなチップに外付けされたROM若しくはE
FROMであってもよい。マイクロコード・メモリはど
のようなタイプのものであってもよい。
また、マクロデコード・テーブル18も中央プロセッサ
10に接続される。これは好ましくはマイクロコード・
メモリ16と同じタイプのメモリである。実際には、第
7図および第8図に関連して後述するように、マクロデ
コード・テーブル18はマイクロコード・メモリ16内
の一画に、確保されるにすぎない。命令タイプ検出ロジ
ック部20は中央プロセッサ10およびマクロデコード
・テーブル18に接続され、マクロデコート・テーブル
18内で検索された命令が一つのプロセッサ・サイクル
で実行しうるマクロ・モード命令であるのか、あるいは
そのマクロ命令を実行するために1つのマイクロコード
・ルーチンが呼び出されることを必要とするマイクロ・
モード命令であるのかを判定するためのものである。タ
イプ検出ロジック部20はマクロデコード・テーブル1
8の出口で1ビツトか若しくは複数ピントのフラグ・ビ
ットを検出しさえすればよいので、非常に簡単なもので
あり、中央プロセッサ10の一部として組み込まれうる
ちのである。
10に接続される。これは好ましくはマイクロコード・
メモリ16と同じタイプのメモリである。実際には、第
7図および第8図に関連して後述するように、マクロデ
コード・テーブル18はマイクロコード・メモリ16内
の一画に、確保されるにすぎない。命令タイプ検出ロジ
ック部20は中央プロセッサ10およびマクロデコード
・テーブル18に接続され、マクロデコート・テーブル
18内で検索された命令が一つのプロセッサ・サイクル
で実行しうるマクロ・モード命令であるのか、あるいは
そのマクロ命令を実行するために1つのマイクロコード
・ルーチンが呼び出されることを必要とするマイクロ・
モード命令であるのかを判定するためのものである。タ
イプ検出ロジック部20はマクロデコード・テーブル1
8の出口で1ビツトか若しくは複数ピントのフラグ・ビ
ットを検出しさえすればよいので、非常に簡単なもので
あり、中央プロセッサ10の一部として組み込まれうる
ちのである。
第2図は第1図に示したシステムの動作を説明するフロ
ーチャートである。命令実行ループの最初のステップ4
0で次のマクロ命令を取り出す。
ーチャートである。命令実行ループの最初のステップ4
0で次のマクロ命令を取り出す。
マクロ命令は必要に応じてメイン・メモリ14から直接
、取り出され、中央プロセッサ10内の先取りバッファ
に格納されうる。先取りをバッファリングし、最適化す
るアルゴリズムのための多(の手法がこの分野の熟練者
に知られており、マクロ命令が取り出される手法につい
ては本説明にとって重要ではない。
、取り出され、中央プロセッサ10内の先取りバッファ
に格納されうる。先取りをバッファリングし、最適化す
るアルゴリズムのための多(の手法がこの分野の熟練者
に知られており、マクロ命令が取り出される手法につい
ては本説明にとって重要ではない。
次のマクロ命令が取り出されると、この命令はマクロコ
ード・テーブルをアドレス指定するのに用いられる(ス
テップ42)。マクロコード・テーブル18は存在する
マクロ命令の数に等しい数の出口を有する検索テーブル
であるとも考えられる。例えば、10ビツト長のマクロ
命令が用いられると、マクロデコード検索テーブル18
は好ましくは2I0=1024の出口を有することとな
ろう。
ード・テーブルをアドレス指定するのに用いられる(ス
テップ42)。マクロコード・テーブル18は存在する
マクロ命令の数に等しい数の出口を有する検索テーブル
であるとも考えられる。例えば、10ビツト長のマクロ
命令が用いられると、マクロデコード検索テーブル18
は好ましくは2I0=1024の出口を有することとな
ろう。
マクロデコード・テーブル18自体はマイクロ命令のテ
ーブルである、単一のマイクロ命令に直接、対応するマ
クロ命令もある。これらの命令は一般には内部レジスタ
の初期化、飛び越し、制御フラグのセント若しくはリセ
ットまたは多くのレジスタ間の代数的、論理的演算のよ
うな簡単なものである。本説明においてしばしば「マク
ロモードの命令」と称される、このようなマクロ命令に
対応するマクロモード・テーブル18の出力はまさにそ
の演算を実行するマイクロ命令である。
ーブルである、単一のマイクロ命令に直接、対応するマ
クロ命令もある。これらの命令は一般には内部レジスタ
の初期化、飛び越し、制御フラグのセント若しくはリセ
ットまたは多くのレジスタ間の代数的、論理的演算のよ
うな簡単なものである。本説明においてしばしば「マク
ロモードの命令」と称される、このようなマクロ命令に
対応するマクロモード・テーブル18の出力はまさにそ
の演算を実行するマイクロ命令である。
マクロデコード・テーブル18内に含まれるマイクロ命
令の一領域はこのマクロ命令がマクロモードの命令であ
るのかあるいはマイクロモードの命令であるのかを示す
標識となっている。この標識領域はマイクロ命令のタイ
プを示す領域である。
令の一領域はこのマクロ命令がマクロモードの命令であ
るのかあるいはマイクロモードの命令であるのかを示す
標識となっている。この標識領域はマイクロ命令のタイ
プを示す領域である。
より好ましい実施例においては、マイクロ命令は4つの
タイプのうちのいずれか一つである。ALUおよびBY
TE命令は実行して、次のマイクロ命令へ制御が移るの
を許可する命令である。JIJMP命令は後続する命令
以外のマイクロ命令に制御を移すものであり、DISP
ATCHは複数の行先を有するJUMPである。JUM
PおよびDISPATCI+の命令によってマイクロコ
ードへ飛ぶことを余儀なくされるが、ALUおよびBY
TEのタイプの命令ではプロセッサはマクロモードにと
どまりうる。
タイプのうちのいずれか一つである。ALUおよびBY
TE命令は実行して、次のマイクロ命令へ制御が移るの
を許可する命令である。JIJMP命令は後続する命令
以外のマイクロ命令に制御を移すものであり、DISP
ATCHは複数の行先を有するJUMPである。JUM
PおよびDISPATCI+の命令によってマイクロコ
ードへ飛ぶことを余儀なくされるが、ALUおよびBY
TEのタイプの命令ではプロセッサはマクロモードにと
どまりうる。
フローチャートの次のステップ44ではこの標識領域が
検査され、マクロ命令がマクロモードの命令であれば、
マクロデコード・テーブル18内に保持されたマイクロ
コード命令が直接、実行される(ステップ46)。この
ようなマイクロ命令が実行された後、次のマクロ命令が
取り出され、サイクルが繰えされる。
検査され、マクロ命令がマクロモードの命令であれば、
マクロデコード・テーブル18内に保持されたマイクロ
コード命令が直接、実行される(ステップ46)。この
ようなマイクロ命令が実行された後、次のマクロ命令が
取り出され、サイクルが繰えされる。
浮動小数点演算のような複雑な命令と同様に機能呼び出
しのような多くのマクロ命令は実行するためにマイクロ
コード・ルーチンを呼び出さなければならない。マクロ
デコード・テーブル18内の標tJ?J域はそのような
マクロ命令がマクロモードの命令でないことを示してい
れば、判定ステップ44よりNOへの分岐となる。これ
らの命令については、指定されるマイクロコード・ルー
チンへ飛び(ステップ48)、そのマイクロコード・ル
ーチンが実行される(ステップ50)。マクロモードの
命令でないマクロ命令に対応してマクロデコード・テー
ブル18から出力されるマイクロ命令は実際には、飛び
越しまたは分岐の行先として適当なマイクロコード・ル
ーチンのアドレスが付されたJUMP命令またはDIS
PATCI+命令である。
しのような多くのマクロ命令は実行するためにマイクロ
コード・ルーチンを呼び出さなければならない。マクロ
デコード・テーブル18内の標tJ?J域はそのような
マクロ命令がマクロモードの命令でないことを示してい
れば、判定ステップ44よりNOへの分岐となる。これ
らの命令については、指定されるマイクロコード・ルー
チンへ飛び(ステップ48)、そのマイクロコード・ル
ーチンが実行される(ステップ50)。マクロモードの
命令でないマクロ命令に対応してマクロデコード・テー
ブル18から出力されるマイクロ命令は実際には、飛び
越しまたは分岐の行先として適当なマイクロコード・ル
ーチンのアドレスが付されたJUMP命令またはDIS
PATCI+命令である。
マイクロコード・ルーチンの実行が終了すると、制御は
マイクロコードから戻り、次のマクロ命令が取り出され
る。
マイクロコードから戻り、次のマクロ命令が取り出され
る。
第3図はマクロ命令とマイクロ命令のための命令書式を
簡略化して示すものである。第3 (a)図はマクロ命
令がしばしばoPコードと称される命令領域と他の制御
情報とを含んでいることを示している。説明のため、制
御情報6ま全ての直接データ、レジスタ識別子およびO
Pコード以外の他のいかなる情報をも含むものとする。
簡略化して示すものである。第3 (a)図はマクロ命
令がしばしばoPコードと称される命令領域と他の制御
情報とを含んでいることを示している。説明のため、制
御情報6ま全ての直接データ、レジスタ識別子およびO
Pコード以外の他のいかなる情報をも含むものとする。
第3 (b)図はマイクロ命令もタイプ領域が付加され
ている以外は似ていることを示している。
ている以外は似ていることを示している。
好ましい実施例においては、前述した4つのタイプがあ
るので、タイプ領域は2ビツト長となる。
るので、タイプ領域は2ビツト長となる。
マイクロ命令の命令領域はマクロ命令の命令領域と必ず
しも同様である必要は全くなく、制御情報は中央プロセ
ッサのマイクロ動作の制御に必要なもの全てのものであ
る。マイクロ命令の命令領域と制御領域とは必ずしも区
別することができなくともよい。図示した例では、第7
図および第8図に関連する説明のため、マクロ命令の命
令領域は10ビツト長であり、制御情報その他で6ビツ
ト、合計すると、マクロ命令の長さは16ビツトとなる
。マクロ命令の長さは通常、16や32のような8ビツ
トの整数倍となる。
しも同様である必要は全くなく、制御情報は中央プロセ
ッサのマイクロ動作の制御に必要なもの全てのものであ
る。マイクロ命令の命令領域と制御領域とは必ずしも区
別することができなくともよい。図示した例では、第7
図および第8図に関連する説明のため、マクロ命令の命
令領域は10ビツト長であり、制御情報その他で6ビツ
ト、合計すると、マクロ命令の長さは16ビツトとなる
。マクロ命令の長さは通常、16や32のような8ビツ
トの整数倍となる。
マイクロ命令は2ビツト長のタイプ領域をもっており、
これにより4つのタイプを識別しうる。
これにより4つのタイプを識別しうる。
システムによっては、マイクロモード・タイプの命令と
マクロモード・タイプの命令とを区別するに必要な1ビ
ツトしか必要としないこともある。
マクロモード・タイプの命令とを区別するに必要な1ビ
ツトしか必要としないこともある。
命令自体は種々の制御ビットを含む64ビツトの長さを
有する。命令の長さについて記述した具体値は説明のた
めでしかなく、その値は検討されるコンピュータ・シス
テムによって大きく変えることができ、そして変わるも
のである。
有する。命令の長さについて記述した具体値は説明のた
めでしかなく、その値は検討されるコンピュータ・シス
テムによって大きく変えることができ、そして変わるも
のである。
上述したシステムはいかなるコンピュータ・システムの
使用のためにも適用されうる。上述した概念の特定な一
利用法を以下にテキサス・インストルメンツ・エクスブ
ロラ・シンボリック・コンピュータでの使用に関連づけ
て説明する。命令パイプラインやはさみ込まれたオフチ
ップ・マイクロコード・メモリのアクセスについての説
明は1985年7月31日に出願され、発明者Boss
hartによる、「はさみ込みマイクロ命令メモリ(I
NTERLEAVED MICRO−INSTRUCT
ION MEMORY)jと題する出願m続中の米国特
許出願第761,220号の中に記載されている。
使用のためにも適用されうる。上述した概念の特定な一
利用法を以下にテキサス・インストルメンツ・エクスブ
ロラ・シンボリック・コンピュータでの使用に関連づけ
て説明する。命令パイプラインやはさみ込まれたオフチ
ップ・マイクロコード・メモリのアクセスについての説
明は1985年7月31日に出願され、発明者Boss
hartによる、「はさみ込みマイクロ命令メモリ(I
NTERLEAVED MICRO−INSTRUCT
ION MEMORY)jと題する出願m続中の米国特
許出願第761,220号の中に記載されている。
第4図は本実施のための標準的な命令パイプラインを説
明するためのものである。オフ・チップ・マイクロコー
ド・メモリは1プロセツサ・サイクル内でアクセスされ
うるほど動作が速(ないので、マイクロコード・メモリ
の中よりアクセスする命令を取り出すのに2段階の取り
出しが必要となる。
明するためのものである。オフ・チップ・マイクロコー
ド・メモリは1プロセツサ・サイクル内でアクセスされ
うるほど動作が速(ないので、マイクロコード・メモリ
の中よりアクセスする命令を取り出すのに2段階の取り
出しが必要となる。
したがって命令パイプラインは「取出1」、「取出2」
、「続出」、「実行」の4つの段階からなる。「書込」
がある命令であれば、そのステップは第5番目の段階と
なる。「取出l」、段階の間マクロ命令はマクロデコー
ド・テーブル18へのアドレス・ライン上に出力される
。「取出2」の段階の最後にマクロデコード・テーブル
18のデータ出力に有効データが出力される。「続出」
の段階ではマクロデコード・テーブル18から戻ってき
たデータを取り込み、命令バッファに保持すると共に命
令が要求する全ての所要ラッチ等をアクセスする。また
、この「読込」の段階では命令のデコードもある程度行
われる。「実行」の段階では、命令により行われるよう
指定されたALUかあるいは他の動作が行われる。
、「続出」、「実行」の4つの段階からなる。「書込」
がある命令であれば、そのステップは第5番目の段階と
なる。「取出l」、段階の間マクロ命令はマクロデコー
ド・テーブル18へのアドレス・ライン上に出力される
。「取出2」の段階の最後にマクロデコード・テーブル
18のデータ出力に有効データが出力される。「続出」
の段階ではマクロデコード・テーブル18から戻ってき
たデータを取り込み、命令バッファに保持すると共に命
令が要求する全ての所要ラッチ等をアクセスする。また
、この「読込」の段階では命令のデコードもある程度行
われる。「実行」の段階では、命令により行われるよう
指定されたALUかあるいは他の動作が行われる。
第4図に示したパイプラインはマクロ命令とマイクロ命
令との両者に有効である。すなわち、マクロ命令が逐次
実行され、全てのマクロ命令がマクロモード・タイプの
命令であれば、プロセッサのクロック・サイクル毎に一
つのマクロ命令が実行されるだろう。プロセッサのクロ
ック速度が40MHzであれば、マクロ命令もその速度
で実行される。
令との両者に有効である。すなわち、マクロ命令が逐次
実行され、全てのマクロ命令がマクロモード・タイプの
命令であれば、プロセッサのクロック・サイクル毎に一
つのマクロ命令が実行されるだろう。プロセッサのクロ
ック速度が40MHzであれば、マクロ命令もその速度
で実行される。
マイクロコード・ルーチンにおいてマイクロ命令が実行
されているときも、同じ実行速度である。
されているときも、同じ実行速度である。
すなわち、一群のマイクロコードの逐次実行もプロセッ
サの最高速度により行われる。なお、マクロ命令または
マイクロ命令のいづれかの命令についても期間が延長さ
れると、この最高速度とはならない。一般的には、飛び
越しや分岐が行われれば、必ず、パイプラインを初期化
して再スタートすることが必要である。このパイプライ
ンの更なる詳細は特許出願第761,220号の[はさ
み込みマイクロ命令メモリ (INTERLEAVED
MICRO4NSTR1lC−TION MEMOR
Y)Jに記載されており、命令のパイプライン化につい
ては一般にこの分野の当業者の周知の事項である。
サの最高速度により行われる。なお、マクロ命令または
マイクロ命令のいづれかの命令についても期間が延長さ
れると、この最高速度とはならない。一般的には、飛び
越しや分岐が行われれば、必ず、パイプラインを初期化
して再スタートすることが必要である。このパイプライ
ンの更なる詳細は特許出願第761,220号の[はさ
み込みマイクロ命令メモリ (INTERLEAVED
MICRO4NSTR1lC−TION MEMOR
Y)Jに記載されており、命令のパイプライン化につい
ては一般にこの分野の当業者の周知の事項である。
第5図はマクロ命令がマクロモードの命令でないとき、
すなわち、実行のためにマイクロコード・サブルーチン
へ飛び越しが必要であるときのパイプラインの動作を示
している。1番目の線は簡車なマクロモードのマクロ命
令の実行を表わしている。2番目の線は実行のためにマ
イクロコード・サブルーチンを必要とするマクロ命令を
表わしている。この判定は「取出2」段階の終わりに行
われる。ちょうどそのとき「取出1」の段階を終わろう
としている次のマクロ命令が初期化される。
すなわち、実行のためにマイクロコード・サブルーチン
へ飛び越しが必要であるときのパイプラインの動作を示
している。1番目の線は簡車なマクロモードのマクロ命
令の実行を表わしている。2番目の線は実行のためにマ
イクロコード・サブルーチンを必要とするマクロ命令を
表わしている。この判定は「取出2」段階の終わりに行
われる。ちょうどそのとき「取出1」の段階を終わろう
としている次のマクロ命令が初期化される。
マイクロコードを必要とするマクロ命令がマクロデコー
ド・テーブル18から、マイクロコード・ルーチンへの
飛び越しというマイクロ命令を読み込むので、このよう
な飛び越しが直ちに実行される。これはマクロデコード
・テーブル18から得られるマイクロ命令のジャンプ・
アドレスをマイクロコード・アドレス・ラインに出力す
ることにより行われる。これによりサブルーチンの最初
のマイクロコード命令の「取出l」のステージが開始さ
れる。したがって、マクロモードのパイプラインの中断
からマイクロコード・ルーチンの開始まで最低、2クロ
ツク・サイクルの遅れが存在することがわかる。
ド・テーブル18から、マイクロコード・ルーチンへの
飛び越しというマイクロ命令を読み込むので、このよう
な飛び越しが直ちに実行される。これはマクロデコード
・テーブル18から得られるマイクロ命令のジャンプ・
アドレスをマイクロコード・アドレス・ラインに出力す
ることにより行われる。これによりサブルーチンの最初
のマイクロコード命令の「取出l」のステージが開始さ
れる。したがって、マクロモードのパイプラインの中断
からマイクロコード・ルーチンの開始まで最低、2クロ
ツク・サイクルの遅れが存在することがわかる。
第6図はマイクロコード・ルーチンが終了し、マクロ命
令の実行が再開されるときのパイプラインの状態を示し
ている。1番目の線はマイクロ命令の通常の実行を表わ
している。2番目の線はマイクロコード・サブルーチン
からの復帰命令であり、この命令はプロセッサもマクロ
モードへ復帰して、マクロ命令の実行を続行すべきであ
ることを示している。「エグゼキュート・ネクスト」命
令が復帰命令の後に続き、復帰が完了する前に実行され
る。ここで命令がないほうがよいのであればまた、命令
がないのであれば、この命令は不実行命令であってもよ
い。パイプライン化されたアーキテクチャにおいて飛び
越しの効率を改善するためにジャンプ・エグゼキュート
・ネクストを利用することはこの分野では周知である。
令の実行が再開されるときのパイプラインの状態を示し
ている。1番目の線はマイクロ命令の通常の実行を表わ
している。2番目の線はマイクロコード・サブルーチン
からの復帰命令であり、この命令はプロセッサもマクロ
モードへ復帰して、マクロ命令の実行を続行すべきであ
ることを示している。「エグゼキュート・ネクスト」命
令が復帰命令の後に続き、復帰が完了する前に実行され
る。ここで命令がないほうがよいのであればまた、命令
がないのであれば、この命令は不実行命令であってもよ
い。パイプライン化されたアーキテクチャにおいて飛び
越しの効率を改善するためにジャンプ・エグゼキュート
・ネクストを利用することはこの分野では周知である。
「エグゼキュート・ネクスト」命令が実行されている間
に、次のマクロ命令が後述するマクロ命令待ち行列から
直ちに取り出され、マクロ命令のパイプラインが再開さ
れる。
に、次のマクロ命令が後述するマクロ命令待ち行列から
直ちに取り出され、マクロ命令のパイプラインが再開さ
れる。
第7図は前述のパイプラインによる、中央プロセッサと
マイクロコード・メモリのブロック図を示す。特許出願
第761 、220号の[はさみ込みマイクロ命令メモ
リ (INTERLEAVED MICRO−INST
RUCTIONME)10RY) Jの中に記載される
とおり、2組のアドレス・ラインが分離されたマイクロ
コード・メモリ102.104のアドレス指定をするた
めに用いられる。MEMlは奇数番地のアドレスのみ有
しているが、MEM2は偶数番地のアドレスを有してい
る。これにより、中央プロセッサ10はマイクロコード
・メモリのマツプ上の連続するアドレスを同時にアクセ
スすることができる。したがって、マイクロコード・メ
モリ102.104として使われる実際のメモリ素子の
サイクル時間は待ち状態を必要とせず、中央プロセッサ
のサイクル時間のほぼ2倍となりうる。なお、待ち状態
と等価なプロセッサ不使用サイクルはマイクロ命令実行
中に飛び越しが行われたときに起こりうる。
マイクロコード・メモリのブロック図を示す。特許出願
第761 、220号の[はさみ込みマイクロ命令メモ
リ (INTERLEAVED MICRO−INST
RUCTIONME)10RY) Jの中に記載される
とおり、2組のアドレス・ラインが分離されたマイクロ
コード・メモリ102.104のアドレス指定をするた
めに用いられる。MEMlは奇数番地のアドレスのみ有
しているが、MEM2は偶数番地のアドレスを有してい
る。これにより、中央プロセッサ10はマイクロコード
・メモリのマツプ上の連続するアドレスを同時にアクセ
スすることができる。したがって、マイクロコード・メ
モリ102.104として使われる実際のメモリ素子の
サイクル時間は待ち状態を必要とせず、中央プロセッサ
のサイクル時間のほぼ2倍となりうる。なお、待ち状態
と等価なプロセッサ不使用サイクルはマイクロ命令実行
中に飛び越しが行われたときに起こりうる。
これは第4図乃至第6図で説明したパイプラインの最初
の2つの段階において分離されたマイクロコードの取り
出しが行われるためである。マイクロコード・メモリ1
02.104からのデータ出力104は同一のバス10
6に接続されるが、いかなるクロック・サイクルにおい
ても、信号ENOかENIによって1つのマイクロコー
ド・メモリのみが出力許可状態となるようになっている
。
の2つの段階において分離されたマイクロコードの取り
出しが行われるためである。マイクロコード・メモリ1
02.104からのデータ出力104は同一のバス10
6に接続されるが、いかなるクロック・サイクルにおい
ても、信号ENOかENIによって1つのマイクロコー
ド・メモリのみが出力許可状態となるようになっている
。
マイクロコード・メモリのデータ出力はマイクロ命令で
ある。
ある。
マイクロコード・メモリIQ2.104の各々のブロッ
ク中に、2つの全く同一のマクロデコード・テーブル1
06.108がある。一方は奇数のアドレス番地を有す
るマイクロコードのためのものであり、他方は偶数のア
ドレス番地を有するマイクロコードのためのものである
。テーブルは標準的にはマイクロコード・メモリの下端
部分か、あるいは上端部分に配置されるだろう。マクロ
命令により生成されるアドレスはマイクロコード・メモ
リ102.104をアクセスするに必要なアドレスより
長さが短かい。マクロ命令のOPコードは各メモリへの
アドレスのLSB部分として用いられるので、マクロデ
コーダ・テーブル106.108をメモリの上端におく
か、あるいは下端におくかによって、残りのアドレス・
ラインが全て“ハイ”となるか、あるいは全て60−”
となる。
ク中に、2つの全く同一のマクロデコード・テーブル1
06.108がある。一方は奇数のアドレス番地を有す
るマイクロコードのためのものであり、他方は偶数のア
ドレス番地を有するマイクロコードのためのものである
。テーブルは標準的にはマイクロコード・メモリの下端
部分か、あるいは上端部分に配置されるだろう。マクロ
命令により生成されるアドレスはマイクロコード・メモ
リ102.104をアクセスするに必要なアドレスより
長さが短かい。マクロ命令のOPコードは各メモリへの
アドレスのLSB部分として用いられるので、マクロデ
コーダ・テーブル106.108をメモリの上端におく
か、あるいは下端におくかによって、残りのアドレス・
ラインが全て“ハイ”となるか、あるいは全て60−”
となる。
マイクロコード・メモリ102.104は各クロック・
サイクル毎にアクセスされるには動作が遅いのでマクロ
デコーダ・テーブル106.108を二重化する必要が
ある。マクロ命令はマクロデコーダ・テーブルを交互に
検索するように用いられる。
サイクル毎にアクセスされるには動作が遅いのでマクロ
デコーダ・テーブル106.108を二重化する必要が
ある。マクロ命令はマクロデコーダ・テーブルを交互に
検索するように用いられる。
第8図は上述したマクロモードの動作を行うために中央
プロセッサ内に必要とされるハードウェアのブロック図
を示している。これは本発明の特徴を示すための簡略化
された論理概略図であって、実際には種々の方法により
実現しうる。
プロセッサ内に必要とされるハードウェアのブロック図
を示している。これは本発明の特徴を示すための簡略化
された論理概略図であって、実際には種々の方法により
実現しうる。
偶数アドレスおよび奇数アドレスラッチ110.112
は各々、マイクロコード・メモリ102.104の偶数
および奇数の番地の領域へ供給されるADDRESS
OおよびADDRESS 1を保持する。マイクロ命令
が出力されるマイクロコード・メモリからのデータバス
114は命令レジスタ116において保持される。一般
的なALUや中央プロセッサ10により行われる論理動
作を含む中央プロセッサ10の実行ロジック部118は
命令レジスタ116からマイクロ命令を読み込む。マク
ロ命令待ち行列122はメモリ・インターフェース12
0を介してメイン・バスからマクロ命令を取り出す。
は各々、マイクロコード・メモリ102.104の偶数
および奇数の番地の領域へ供給されるADDRESS
OおよびADDRESS 1を保持する。マイクロ命令
が出力されるマイクロコード・メモリからのデータバス
114は命令レジスタ116において保持される。一般
的なALUや中央プロセッサ10により行われる論理動
作を含む中央プロセッサ10の実行ロジック部118は
命令レジスタ116からマイクロ命令を読み込む。マク
ロ命令待ち行列122はメモリ・インターフェース12
0を介してメイン・バスからマクロ命令を取り出す。
マクロ命令待ち行列部122に平行してマクロコードち
行列部124がある。この待ち行列部124はマクロ命
令待ち行列部122のマクロ命令の各々に対応するプロ
グラム・カウンタを保持する。ネクスト・マクロPC1
26はマクロコード・ルーチンのためのプログラム・カ
ウンタ発生器として用いられ、その一部は実行ロジック
部118からの信号127により制御される。ネクスト
・マクロPC126はマクロ命令のプリフェッチ・ロジ
ックの一部であり、現在使用されている多くのプロセッ
サに同様のものが見うけられる。
行列部124がある。この待ち行列部124はマクロ命
令待ち行列部122のマクロ命令の各々に対応するプロ
グラム・カウンタを保持する。ネクスト・マクロPC1
26はマクロコード・ルーチンのためのプログラム・カ
ウンタ発生器として用いられ、その一部は実行ロジック
部118からの信号127により制御される。ネクスト
・マクロPC126はマクロ命令のプリフェッチ・ロジ
ックの一部であり、現在使用されている多くのプロセッ
サに同様のものが見うけられる。
マクロ取出制御部128もまたマクロ命令のブリフェッ
チ・ロジックの一部分である。この制御部128、マク
ロ命令待ち行列部122およびマクロコードち行列部1
24を通るデータの流れを制御する。両者の待ち行列部
122.124はともに順次、同期して動くので、マク
ロ命令のプログラム・カウウンタは必ず正確なものとな
る。マクロ取出制御部は両待ち行列部122.124を
流れに遅れがなく理想的に、動作するよう制御する。こ
の分野の熟練者には、このような待ち行列部の設計はよ
く知られている。位置番号O〜3が付された、長さが4
の待ち行列が好ましい待ち行列部122.124であっ
て、この場合、0が先頭である。
チ・ロジックの一部分である。この制御部128、マク
ロ命令待ち行列部122およびマクロコードち行列部1
24を通るデータの流れを制御する。両者の待ち行列部
122.124はともに順次、同期して動くので、マク
ロ命令のプログラム・カウウンタは必ず正確なものとな
る。マクロ取出制御部は両待ち行列部122.124を
流れに遅れがなく理想的に、動作するよう制御する。こ
の分野の熟練者には、このような待ち行列部の設計はよ
く知られている。位置番号O〜3が付された、長さが4
の待ち行列が好ましい待ち行列部122.124であっ
て、この場合、0が先頭である。
プロセッサがマイクロコードを実行しているとき、マイ
クロPCl30は次のマイクロコードのアドレスを発生
する。マイクロPC制御部132はマイクロPC発生部
の動作およびパイプラインの制御を行う。このマイクロ
PC制御部132は主に、マルチプレクサ134に入力
される制御信号M1およびマルチプレクサ136に入力
される制御信号M2によりパイプラインを制御する。
クロPCl30は次のマイクロコードのアドレスを発生
する。マイクロPC制御部132はマイクロPC発生部
の動作およびパイプラインの制御を行う。このマイクロ
PC制御部132は主に、マルチプレクサ134に入力
される制御信号M1およびマルチプレクサ136に入力
される制御信号M2によりパイプラインを制御する。
実行ロジック部118はまたマクロ命令読込レジスタ1
38およびマクロ命令読込レジスタ(IBUF)140
をも備えている。これらのレジスタはパイプラインの読
込ステージにあるマクロ命令およびそのプログラム・カ
ウンタのその時の値を保持する。実行ロジック部118
はまたマイクロコード・メモリを制御するために信号E
N1およびEN2を発生し、マイクロコード・アドレス
・バッファ110,112のタイミングを制御する。
38およびマクロ命令読込レジスタ(IBUF)140
をも備えている。これらのレジスタはパイプラインの読
込ステージにあるマクロ命令およびそのプログラム・カ
ウンタのその時の値を保持する。実行ロジック部118
はまたマイクロコード・メモリを制御するために信号E
N1およびEN2を発生し、マイクロコード・アドレス
・バッファ110,112のタイミングを制御する。
一連のマクロモードのマクロ命令が実行されているとき
、各プロセッサ・クロック・サイクルの間、新しいマク
ロ命令がアドレス・バッファ110.112に出力され
る。制御ラインM1はマルチプレクサ134にマルチプ
レクサ136からの信号を通過させる。この信号はマク
ロ命令のOPコードを有している。マクロ命令はマイク
ロコード・メモリ内のアドレスを一義的に指定しうるち
のではないので、付加的信号が付加される。前のマイク
ロコードのアドレスのLSBが反転器139により反転
され、新しいアドレスのLBSとして用いられる。前の
マイクロコードのアドレスのしSBを反転することによ
り、連続するマクロ命令が交互にマイクロコード・メモ
リのアドレス保持部に出力されることとなる。これによ
りパイプラインの前方の2段階による取り出しがうまく
行なわれる。
、各プロセッサ・クロック・サイクルの間、新しいマク
ロ命令がアドレス・バッファ110.112に出力され
る。制御ラインM1はマルチプレクサ134にマルチプ
レクサ136からの信号を通過させる。この信号はマク
ロ命令のOPコードを有している。マクロ命令はマイク
ロコード・メモリ内のアドレスを一義的に指定しうるち
のではないので、付加的信号が付加される。前のマイク
ロコードのアドレスのLSBが反転器139により反転
され、新しいアドレスのLBSとして用いられる。前の
マイクロコードのアドレスのしSBを反転することによ
り、連続するマクロ命令が交互にマイクロコード・メモ
リのアドレス保持部に出力されることとなる。これによ
りパイプラインの前方の2段階による取り出しがうまく
行なわれる。
プリセット・マイクロコード・ブロック識別部141は
マクロデコード・テーブル106.108が位置する領
域の場所情報を生成する。前述したとおり、マクロデコ
ード・テーブル106.108がマイクロコード・メモ
リの上端に付くのか、あるいは下端に付くかによって、
ブロック識別部が各々、常に1を出力するか、あるいは
常に0を出力することとなる。
マクロデコード・テーブル106.108が位置する領
域の場所情報を生成する。前述したとおり、マクロデコ
ード・テーブル106.108がマイクロコード・メモ
リの上端に付くのか、あるいは下端に付くかによって、
ブロック識別部が各々、常に1を出力するか、あるいは
常に0を出力することとなる。
制御信号M2はマイクロ命令待ら行列部122からのど
の入力が次のアドレスのために用いられるかを選択する
。これは一般的にはそのとき待ち行列の先頭(0の位置
)にある命令ではない。第5図に関連して説明したよう
に、マイクロコードへの飛び越しはそのとき「取出2」
の段階にあるマクロ命令を初期化して消してしまうこと
となる。
の入力が次のアドレスのために用いられるかを選択する
。これは一般的にはそのとき待ち行列の先頭(0の位置
)にある命令ではない。第5図に関連して説明したよう
に、マイクロコードへの飛び越しはそのとき「取出2」
の段階にあるマクロ命令を初期化して消してしまうこと
となる。
マクロ命令がパイプラインの取出部分に入ると直にマク
ロ命令が待ち行列部122から除かれるのであれば、飛
び越しが行われる度毎にマクロ命令が失われることとな
る。
ロ命令が待ち行列部122から除かれるのであれば、飛
び越しが行われる度毎にマクロ命令が失われることとな
る。
したがって、パイプライン制御部132はマルチプレク
サ136を用いてマクロ命令待ち行列部122のO〜2
の位置のいづれかにアクセスする。
サ136を用いてマクロ命令待ち行列部122のO〜2
の位置のいづれかにアクセスする。
命令はそれがパイプラインの「読込」の段階に入るクロ
ック・サイクルまで待ち行列を離れない。
ック・サイクルまで待ち行列を離れない。
すなわち、前のマクロ命令がマイクロコード(すなわち
、マクロモードの命令ではない)への飛び越しを必要と
しても、そのとき待ち行列の中にある命令はそこに残る
こととなる。数個のマクロ命令が連続的に実行される場
合、各プロセッサ・サイクルの初めにいくつかの動作が
行われる。第1の命令はIBUF140に保持され、待
ち行列から離れる。位置1の命令は位置0へ移動する。
、マクロモードの命令ではない)への飛び越しを必要と
しても、そのとき待ち行列の中にある命令はそこに残る
こととなる。数個のマクロ命令が連続的に実行される場
合、各プロセッサ・サイクルの初めにいくつかの動作が
行われる。第1の命令はIBUF140に保持され、待
ち行列から離れる。位置1の命令は位置0へ移動する。
それはすでに[取出1]の段階を完了しており、マクロ
デコード・テーブルの出口を見つけるためのマイクロコ
ード・アドレスを発生するために用いられる。位置2の
命令は位置1へ移動し、マクロデコード・テーブルをア
クセスするための次のマイクロコード・アドレスを発生
するのに用いられる。待ち行列部内の他の命令もまた位
置を1つづつ移動して、新しい命令はマクロ取出制御部
128により位置3に格納される。
デコード・テーブルの出口を見つけるためのマイクロコ
ード・アドレスを発生するために用いられる。位置2の
命令は位置1へ移動し、マクロデコード・テーブルをア
クセスするための次のマイクロコード・アドレスを発生
するのに用いられる。待ち行列部内の他の命令もまた位
置を1つづつ移動して、新しい命令はマクロ取出制御部
128により位置3に格納される。
各クロック・サイクルの始めに、1つのマイクロ命令が
命令レジスタ116に読み込まれる。このマイクロ命令
はrBUF140に保持されたばかりで、マクロ命令待
ち行列部122を押し出されたマクロ命令に対応する。
命令レジスタ116に読み込まれる。このマイクロ命令
はrBUF140に保持されたばかりで、マクロ命令待
ち行列部122を押し出されたマクロ命令に対応する。
このとき、実行ロジック部はマクロPC、マクロ命令全
体および対応するマイクロ命令を全て利用することがで
きる。
体および対応するマイクロ命令を全て利用することがで
きる。
マイクロ命令の実行に必要なレジスタの値を読み出す「
読込」段階が完了する。次のクロック・サイクルにおい
て、マイクロ命令が実行される。
読込」段階が完了する。次のクロック・サイクルにおい
て、マイクロ命令が実行される。
パイプライン制御部132はマイクロコードの“タイプ
”のビットを3周べることによって、この命令がマクロ
モードの命令であることを判定する。
”のビットを3周べることによって、この命令がマクロ
モードの命令であることを判定する。
プロセッサが既にマクロモードで動作しており、マイク
ロ命令がマクロモードのものであれば、プロセッサはマ
クロモードにとどまり、マクロ命令の処理を続行する。
ロ命令がマクロモードのものであれば、プロセッサはマ
クロモードにとどまり、マクロ命令の処理を続行する。
MIT CADRマシーンをベースにしたテキサス・
インストルメンツのエクスブロラはマクロモードの命令
はLAUやB YTHのようなタイプの命令であり、J
tJMP命令やDISPATC)l命令はマクロモード
の命令ではない。
インストルメンツのエクスブロラはマクロモードの命令
はLAUやB YTHのようなタイプの命令であり、J
tJMP命令やDISPATC)l命令はマクロモード
の命令ではない。
ALUかBYTEのマイクロ命令が命令レジスタ116
の中にあり、そのときのモードがマクロモードであれば
、プロセッサはマクロモードにとどまる。モード信号は
常にパイプライン制御部132と実行ロジック部118
との間で伝達される。
の中にあり、そのときのモードがマクロモードであれば
、プロセッサはマクロモードにとどまる。モード信号は
常にパイプライン制御部132と実行ロジック部118
との間で伝達される。
第5図に示されるように、マクロ命令がマイクロコード
のサポートを必要とするときプロセッサはマクロモード
から変化する。パイプライン制御部132は読込段階の
初めでマイクロ命令の“タイプ”の領域を検出する。上
述したように、命令レジスタ116内のマイクロ命令が
飛び越し命令であれば、パイプライン制御部は制御信号
M1を用いて、飛び越しの行先を次の順番のアドレス・
ラッチへ出力する。モード信号はプロセッサがマクロモ
ードでないことを示している。引き続(マイクロ命令の
アドレスは制御部132の制御の下にマイクロPCl3
0によって発生される。マイクロコード・ルーチン内で
飛び越しが行われても、マイクロモードからの飛び越し
の検出時と同じように、行先アドレスが命令レジスタ1
16から取り出され、パイプライン制御部132により
検出される。なお、LAUやBYTEのようなタイプの
マイクロ命令が実行されても、そのとき、プロセッサが
マイクロモードで動作しているならば、プロセッサはマ
クロモードに復帰することはない。
のサポートを必要とするときプロセッサはマクロモード
から変化する。パイプライン制御部132は読込段階の
初めでマイクロ命令の“タイプ”の領域を検出する。上
述したように、命令レジスタ116内のマイクロ命令が
飛び越し命令であれば、パイプライン制御部は制御信号
M1を用いて、飛び越しの行先を次の順番のアドレス・
ラッチへ出力する。モード信号はプロセッサがマクロモ
ードでないことを示している。引き続(マイクロ命令の
アドレスは制御部132の制御の下にマイクロPCl3
0によって発生される。マイクロコード・ルーチン内で
飛び越しが行われても、マイクロモードからの飛び越し
の検出時と同じように、行先アドレスが命令レジスタ1
16から取り出され、パイプライン制御部132により
検出される。なお、LAUやBYTEのようなタイプの
マイクロ命令が実行されても、そのとき、プロセッサが
マイクロモードで動作しているならば、プロセッサはマ
クロモードに復帰することはない。
第8図にマルチプレクサ134に対し入力される“○T
HER”と記した信号が示されている。
HER”と記した信号が示されている。
これはマイクロコード・アドレスのために用いられうる
他の信号を表わしている。例えば、エラー状態が検出さ
れると、マイクロコード・ハンドラに割込みをかける必
要が生じるかもしれない。パイプライン・ハンドラは適
当な0THER信号をアドレス・ラッチ110,112
へ出力せしめる。
他の信号を表わしている。例えば、エラー状態が検出さ
れると、マイクロコード・ハンドラに割込みをかける必
要が生じるかもしれない。パイプライン・ハンドラは適
当な0THER信号をアドレス・ラッチ110,112
へ出力せしめる。
例えば、このようなトラップの一つにマイクロコードに
よりサポートされる仮想メモリシステムにおけるページ
・フォルトがある。これらの0THER信号の取扱いは
個々のシステム設計の詳細次第である。
よりサポートされる仮想メモリシステムにおけるページ
・フォルトがある。これらの0THER信号の取扱いは
個々のシステム設計の詳細次第である。
第6図に示して説明したように、1つのマクロ命令を実
行するマイクロコード・ルーチンが終了すると、特定の
サブルーチンからの復帰命令が実行される。この命令の
実行によりプロセッサはマクロモード状態に復帰する。
行するマイクロコード・ルーチンが終了すると、特定の
サブルーチンからの復帰命令が実行される。この命令の
実行によりプロセッサはマクロモード状態に復帰する。
このときモードはマクロモードとなっているので、取り
出すべき次の命令はマクロ命令待ち行列部122の先頭
の命令である。位置二〇の命令はマクロデコード・テー
ブルのアドレス指定を行うのに用いられる。なお、この
とき“エグゼキュート・ネクスト”命令は実行段階にあ
る。1番目のマクロ命令はその前のマイクロ命令のLS
Bを反転したビットにより決まる、その前にアクセスさ
れたアドレス・レジスタとは反対のアドレス・レジスタ
に入力される。
出すべき次の命令はマクロ命令待ち行列部122の先頭
の命令である。位置二〇の命令はマクロデコード・テー
ブルのアドレス指定を行うのに用いられる。なお、この
とき“エグゼキュート・ネクスト”命令は実行段階にあ
る。1番目のマクロ命令はその前のマイクロ命令のLS
Bを反転したビットにより決まる、その前にアクセスさ
れたアドレス・レジスタとは反対のアドレス・レジスタ
に入力される。
次のクロック・サイクルにおいて、待ち行列部122の
位置:1のマクロ命令はアドレス・ラッチに入力されて
、「取出1」の段階に入る。位置二〇の命令は、既に「
取出2」の段階であるが、マクロ命令待ち行列部122
内にとどまる。このサイクルの終わりに、位置:0のマ
クロ命令に対応するマイクロ命令が命令レジスタ116
に格納される。
位置:1のマクロ命令はアドレス・ラッチに入力されて
、「取出1」の段階に入る。位置二〇の命令は、既に「
取出2」の段階であるが、マクロ命令待ち行列部122
内にとどまる。このサイクルの終わりに、位置:0のマ
クロ命令に対応するマイクロ命令が命令レジスタ116
に格納される。
次のクロック・サイクルにおいて、通常の動作が再び始
まる。位置:0のマクロ命令はバッファから離れ、読込
段階を経る。位置:1の命令は位置:0へ移動し、位置
=2の命令はマルチプレクサ136および134を通っ
て、次の順番のアドレス・ラッチ110.112のいず
れかに出力される。この命令もまた、待ち行列部122
の位置1へ進む。
まる。位置:0のマクロ命令はバッファから離れ、読込
段階を経る。位置:1の命令は位置:0へ移動し、位置
=2の命令はマルチプレクサ136および134を通っ
て、次の順番のアドレス・ラッチ110.112のいず
れかに出力される。この命令もまた、待ち行列部122
の位置1へ進む。
上述した説明に種々の変形を加えることにより、システ
ムの変形例も容易に実現可能となる。マイクロコード・
メモリが1クロツク・サイクルでアクセスされうるちの
であればパイプラインでは一つの取出の段階があればよ
い。したがって、アドレス・ラッチは1つだけでよい。
ムの変形例も容易に実現可能となる。マイクロコード・
メモリが1クロツク・サイクルでアクセスされうるちの
であればパイプラインでは一つの取出の段階があればよ
い。したがって、アドレス・ラッチは1つだけでよい。
また、パイプライン制御部132は上述したような2つ
の位置ではなく、1つの位置にまで手が届きさえすれば
よい。しかしながら、原則は同じであり、命令が読込段
階に入るまで、すなわちプロセッサがその命令の実行を
他に委ねるまで、命令は待ち行列部122から移されな
い。待ち行列部からマクロ命令を取り出す詳細について
は待ち行列部122の個々の具体例により変わりうる。
の位置ではなく、1つの位置にまで手が届きさえすれば
よい。しかしながら、原則は同じであり、命令が読込段
階に入るまで、すなわちプロセッサがその命令の実行を
他に委ねるまで、命令は待ち行列部122から移されな
い。待ち行列部からマクロ命令を取り出す詳細について
は待ち行列部122の個々の具体例により変わりうる。
上述のごとくシステムを使用することによりプロセッサ
の最高速度により簡単なマイクロ命令を実行させること
ができる。通常、簡単な命令を呼ぶマイクロコード・サ
ブルーチンに関係するオーバヘッドは除去される。実行
される命令の割合が適度に変動のないものであれば、プ
ロセッサ全体のスループットは非常に向上するであろう
。
の最高速度により簡単なマイクロ命令を実行させること
ができる。通常、簡単な命令を呼ぶマイクロコード・サ
ブルーチンに関係するオーバヘッドは除去される。実行
される命令の割合が適度に変動のないものであれば、プ
ロセッサ全体のスループットは非常に向上するであろう
。
上述のごと(マクロ命令待ち行列を用いることによりマ
イクロコードへの飛び越しが必要であるとき、その命令
を実行するに要するオーバヘソトを最小にすることがで
きる。飛び越しは取出の最後で検出される。したがって
、対応するマイクロコード・ルーチンのロードを開始す
るために、実行段階において必ずしも実際に飛び越し命
令が実行される必要はない。既にパイプライン内にある
マクロ命令は実行に移されるまで待ち行列内から取り除
かれることはないので、保存されることになる。システ
ムがマイクロコード・ルーチンから復帰したとき、パイ
プライン・コントローラは実行に移されるまで待ち行列
部の先頭で1番目の保持する一方、待ち行列に戻ってい
くつかのマクロ命令を取り出すことができる。
イクロコードへの飛び越しが必要であるとき、その命令
を実行するに要するオーバヘソトを最小にすることがで
きる。飛び越しは取出の最後で検出される。したがって
、対応するマイクロコード・ルーチンのロードを開始す
るために、実行段階において必ずしも実際に飛び越し命
令が実行される必要はない。既にパイプライン内にある
マクロ命令は実行に移されるまで待ち行列内から取り除
かれることはないので、保存されることになる。システ
ムがマイクロコード・ルーチンから復帰したとき、パイ
プライン・コントローラは実行に移されるまで待ち行列
部の先頭で1番目の保持する一方、待ち行列に戻ってい
くつかのマクロ命令を取り出すことができる。
本発明は上述のシステムと方法により説明がなされたが
、この分野の当業者にとっては様々な変形や変更がなし
うろことが明白である。そのような変形例も本発明の思
想の中に入るものであり、その範囲は明細書の請求の範
囲により規定される。
、この分野の当業者にとっては様々な変形や変更がなし
うろことが明白である。そのような変形例も本発明の思
想の中に入るものであり、その範囲は明細書の請求の範
囲により規定される。
以上の記載に関連して以下の各項を開示する。
■、命令を実行するための中央プロセッサと、命令を保
持するためのマイクロコード・メモリと、 このマイクロコード・メモリ内に位置して、前記中央プ
ロセッサにより直接、デコードされ、実行されうる第1
の種類の命令と前記マイクロコード・メモリの中のマイ
クロコード・ルーチンを指す第2の種類の命令との2種
類の命令を有し、前記中央プロセッサに現われるマクロ
命令をデコードするためのマクロ命令デコード・テーブ
ルと、 前記中央プロセッサおよび前記マイクロコード・メモリ
に接続され、前記第1の種類の命令をデコードし、前記
中央プロセッサに直接、実行を行わしめると共に前記第
2の種類の命令に対応するマイクロコード・ルーチンの
実行を開始するためのデコーダと、を備えたことを特徴
とするディジタルコンピュータシステム。
持するためのマイクロコード・メモリと、 このマイクロコード・メモリ内に位置して、前記中央プ
ロセッサにより直接、デコードされ、実行されうる第1
の種類の命令と前記マイクロコード・メモリの中のマイ
クロコード・ルーチンを指す第2の種類の命令との2種
類の命令を有し、前記中央プロセッサに現われるマクロ
命令をデコードするためのマクロ命令デコード・テーブ
ルと、 前記中央プロセッサおよび前記マイクロコード・メモリ
に接続され、前記第1の種類の命令をデコードし、前記
中央プロセッサに直接、実行を行わしめると共に前記第
2の種類の命令に対応するマイクロコード・ルーチンの
実行を開始するためのデコーダと、を備えたことを特徴
とするディジタルコンピュータシステム。
2、機械命令を実行するための中央プロセッサと、この
中央プロセッサに接続され、前記中央プロセッサにより
実行されるべき機械命令を有したメイン・メモリと、 前記中央プロセッサに接続され、機械命令に対応するマ
イクロコード・ルーチンを有したマイクロコード・メモ
リと、 前記中央プロセッサに接続され、複数の出ブを出力し、
この各出力は機械命令に対応すると共に第1若しくは第
2の命令群のいづれか一力に属するよう分類されており
、前記中央プロセッサにより実行されるべき機械命令が
出力されるよう検索が行われるマクロデコード・チーフ
ルと、 前記中央プロセッサ、前記マイクロコード・メモリおよ
び前記マクロデコード・テーブルに接続されるデコーダ
であって、機械命令によって前記マクロデコード・テー
ブルの出力が指かされる際、この出力が前記第1の命令
群中の置傘であれば、このデコーダによりデコードさ北
る直接、実行可能な機械命令であるとし、前市第2の命
令群中の命令であれば、機械命令に火応するマイクロコ
ード・ルーチンを認識し、欠応するマイクロコード・ル
ーチンを実行せし聞、 るデコーダと、を備え、 前記メイン・メモリからの機械命令は前記中央プロセッ
サによりアクセスされ、前記マクロデコード・テーブル
内を検索して出力を出すのに用いられ、これにより第1
の命令群のテーブル出力に対応する機械命令は直接、実
行され、第2の命令群のテーブル出力に対応する機械命
令群のテーブル出力に対応する機械命令はマイクロコー
ド・ルーチンの実行を行わしめるようにしたディジタル
コンピュータシステム。
中央プロセッサに接続され、前記中央プロセッサにより
実行されるべき機械命令を有したメイン・メモリと、 前記中央プロセッサに接続され、機械命令に対応するマ
イクロコード・ルーチンを有したマイクロコード・メモ
リと、 前記中央プロセッサに接続され、複数の出ブを出力し、
この各出力は機械命令に対応すると共に第1若しくは第
2の命令群のいづれか一力に属するよう分類されており
、前記中央プロセッサにより実行されるべき機械命令が
出力されるよう検索が行われるマクロデコード・チーフ
ルと、 前記中央プロセッサ、前記マイクロコード・メモリおよ
び前記マクロデコード・テーブルに接続されるデコーダ
であって、機械命令によって前記マクロデコード・テー
ブルの出力が指かされる際、この出力が前記第1の命令
群中の置傘であれば、このデコーダによりデコードさ北
る直接、実行可能な機械命令であるとし、前市第2の命
令群中の命令であれば、機械命令に火応するマイクロコ
ード・ルーチンを認識し、欠応するマイクロコード・ル
ーチンを実行せし聞、 るデコーダと、を備え、 前記メイン・メモリからの機械命令は前記中央プロセッ
サによりアクセスされ、前記マクロデコード・テーブル
内を検索して出力を出すのに用いられ、これにより第1
の命令群のテーブル出力に対応する機械命令は直接、実
行され、第2の命令群のテーブル出力に対応する機械命
令群のテーブル出力に対応する機械命令はマイクロコー
ド・ルーチンの実行を行わしめるようにしたディジタル
コンピュータシステム。
3、(a)第1の命令群に分類される機械命令について
は直接、実行するステップと、 (b)第2の命令群に分類される機械命令についてはそ
の命令を遂行するマイクロコード・ルr −チン
を実行するステップと、を含むディジタルコンピュータ
システムにおける機械i 命令実行方法。
は直接、実行するステップと、 (b)第2の命令群に分類される機械命令についてはそ
の命令を遂行するマイクロコード・ルr −チン
を実行するステップと、を含むディジタルコンピュータ
システムにおける機械i 命令実行方法。
f 4.(a)次の機械命令を中央プロセッサへ取
り出す1 ステップと、 (b)この次の機械命令が直接、実行可能であるか否か
判定するステップと、 (c)この次の機械命令が直接、実行可能であれば、そ
の命令を直接実行し、ステップ(a)へ復帰するステッ
プと、 (d)この次の機械命令が直接、実行可能でなければ、
その命令を遂行するマイクロコード・ルーチンを実行し
、ステップ(a)へ復帰するステップと、 を含むディジタルコンピュータシステムにおける機械命
令実行方法。
り出す1 ステップと、 (b)この次の機械命令が直接、実行可能であるか否か
判定するステップと、 (c)この次の機械命令が直接、実行可能であれば、そ
の命令を直接実行し、ステップ(a)へ復帰するステッ
プと、 (d)この次の機械命令が直接、実行可能でなければ、
その命令を遂行するマイクロコード・ルーチンを実行し
、ステップ(a)へ復帰するステップと、 を含むディジタルコンピュータシステムにおける機械命
令実行方法。
5、ステップ(b)は
(b、1)機械命令を用いて、機械命令が直接、実行可
能であるか否かを示す種類ビットを有するデコード・テ
ーブルを調べるステップと、 (b、2)その機械命令に対する種類ビットを読み込む
ステップと、 を含む項目4記載の方法。
能であるか否かを示す種類ビットを有するデコード・テ
ーブルを調べるステップと、 (b、2)その機械命令に対する種類ビットを読み込む
ステップと、 を含む項目4記載の方法。
6、(a)次の機械命令を取り出すステップと、(b)
この次の機械命令が直接、実行可能であれば、その命令
を実行し、ステップ(a)へ復帰するステップと、 (c)この次の機械命令が直接、実行可能でなげれば、 (c、1)命令パイプラインの現在の状態を保存するス
テップと、 (c、2)この次の機械命令に対応するマイクロコード
・ルーチンへ飛び越し、そのマイクロコード・ルーチン
を実行するステップと、(c、3)ステップ(c、1)
において保存された命令パイプラインの状態を再格納す
るステップと、 (c、4)ステップ(a)へ復帰するステップと、を含
むパイプライン化された命令の実行、を行うコンピュー
タシステムにおける命令実行方法。
この次の機械命令が直接、実行可能であれば、その命令
を実行し、ステップ(a)へ復帰するステップと、 (c)この次の機械命令が直接、実行可能でなげれば、 (c、1)命令パイプラインの現在の状態を保存するス
テップと、 (c、2)この次の機械命令に対応するマイクロコード
・ルーチンへ飛び越し、そのマイクロコード・ルーチン
を実行するステップと、(c、3)ステップ(c、1)
において保存された命令パイプラインの状態を再格納す
るステップと、 (c、4)ステップ(a)へ復帰するステップと、を含
むパイプライン化された命令の実行、を行うコンピュー
タシステムにおける命令実行方法。
7、実行されるべきマクロ命令を保持するための長さn
の命令待ち行列部と、 この命令待ち行列部内のマクロ命令に対応するプログラ
ム・カウンタを保持するための長さnのプログラム・カ
ウンタ待ち行列部と、前記命令待ち行列部に接続され、
この待ち行列部から命令を選択し、この命令によりマイ
クロ命令のアドレスを生成し、その命令に対応するマイ
クロコード命令が実行のためにプロセッサに復帰すると
きのみ、命令を前記待ち行列部から取り除き、このため
、マイクロ命令のアドレスを生成するために選択される
前記命令は前記命令待ち行列部の先頭には位置しないと
ころのパイプライン制御部と、 を含むコンピュータシステムの命令先取り待ち行列。
の命令待ち行列部と、 この命令待ち行列部内のマクロ命令に対応するプログラ
ム・カウンタを保持するための長さnのプログラム・カ
ウンタ待ち行列部と、前記命令待ち行列部に接続され、
この待ち行列部から命令を選択し、この命令によりマイ
クロ命令のアドレスを生成し、その命令に対応するマイ
クロコード命令が実行のためにプロセッサに復帰すると
きのみ、命令を前記待ち行列部から取り除き、このため
、マイクロ命令のアドレスを生成するために選択される
前記命令は前記命令待ち行列部の先頭には位置しないと
ころのパイプライン制御部と、 を含むコンピュータシステムの命令先取り待ち行列。
8、前記パイプライン制御部の待ち行列部内の最初の3
つの命令のいずれにもアクセスすることができる項目7
に記載の待ち行列。
つの命令のいずれにもアクセスすることができる項目7
に記載の待ち行列。
9、前記命令待ち行列および前記パイプライン制御部に
接続され、前記待ち行列内の命令がデータとして入力さ
れ、前記パイプライン制御部が前記データ入力を制御す
ることにより前記命令にアクセスするところのマルチプ
レクサを更に含む項目8に記載の待ち行列。
接続され、前記待ち行列内の命令がデータとして入力さ
れ、前記パイプライン制御部が前記データ入力を制御す
ることにより前記命令にアクセスするところのマルチプ
レクサを更に含む項目8に記載の待ち行列。
10、コンピュータシステムは複合マクロ命令を実行す
るため、マイクロコードを用いる。各マクロ命令はテー
ブル(18)の索引として用いられる。簡単なマクロ命
令はテーブル(18)内に対応する単一のマイクロ命令
を有しており、このようなマイクロ命令はそのマクロ命
令を実行するために直接、履行される。複合したマクロ
命令に対応するテーブルからの出力は飛び越しのマイク
ロ命令であり、この飛び越しのマイクロ命令の行先はマ
イクロコード・メモリ(16)内の対応するサブルーチ
ンである。
るため、マイクロコードを用いる。各マクロ命令はテー
ブル(18)の索引として用いられる。簡単なマクロ命
令はテーブル(18)内に対応する単一のマイクロ命令
を有しており、このようなマイクロ命令はそのマクロ命
令を実行するために直接、履行される。複合したマクロ
命令に対応するテーブルからの出力は飛び越しのマイク
ロ命令であり、この飛び越しのマイクロ命令の行先はマ
イクロコード・メモリ(16)内の対応するサブルーチ
ンである。
第1図はマクロコードおよびマイクロコード命令を実行
するためのシステムブロック図、第2図は第1図のシス
テムのためのフローチャート、第3図は本発明のための
マクロ命令およびマイクロ命令の代表的な書式の概略図
、第4図は本発明の一実施例のための命令パイプライン
の動作を説明するための図、第5図はマイクロコードへ
の飛び越しが行われたときの命令バイブラインの動作を
説明するための図、第6図はマイクロコード・サブルー
チンから制御が復帰するときの同じ命令パイプラインの
動作を説明するための図、第7図は本発明によるはさみ
込んだオフチップ・マイクロコード・メモリを有する中
央プロセッサを説明するための図、第8図は第7図の中
央プロセッサの動作の詳細を示すブロック図である。 10・・・・・・中央プロセッサ、 12・・・・・・メイン・システム・バス、14・・・
・・・メイン・メモリ、 16・・・・・・マイクロコード・メモリ、18・・・
・・・マクロデコード・テーブル、20・・・・・・命
令タイプ検出ロジック部、102.104・・・・・・
マイクロコード・メモリ、106.108・・・・・・
マクロデコード・テーブル、110.112・・・・・
・アドレス・ランチ、114・・・・・・データ・バス
、 116・・・・・・命令レジスタ、 118・・・・・・実行ロジック部、 120・・・・・・メモリ・インターフェース、122
・・・・・・マクロ命令待ち行列部、124・・・・・
・マクロ命令待ち行列部、126・・・・・・ネクスト
・マクロPC1128・・・・・・マクロ取出制御部、
130・・・・・・マイクロPC。 132・・・・・・マイクロPC/パイプライン制御部
、134.136・・・・・・マルチプレクサ、138
・・・・・・マクロ命令読込レジスタ、140・・・・
・・マクロ命令読込レジスタ、139・・・・・・反転
器、 141・・・・・・マイクロコード・ブロック識別部。
するためのシステムブロック図、第2図は第1図のシス
テムのためのフローチャート、第3図は本発明のための
マクロ命令およびマイクロ命令の代表的な書式の概略図
、第4図は本発明の一実施例のための命令パイプライン
の動作を説明するための図、第5図はマイクロコードへ
の飛び越しが行われたときの命令バイブラインの動作を
説明するための図、第6図はマイクロコード・サブルー
チンから制御が復帰するときの同じ命令パイプラインの
動作を説明するための図、第7図は本発明によるはさみ
込んだオフチップ・マイクロコード・メモリを有する中
央プロセッサを説明するための図、第8図は第7図の中
央プロセッサの動作の詳細を示すブロック図である。 10・・・・・・中央プロセッサ、 12・・・・・・メイン・システム・バス、14・・・
・・・メイン・メモリ、 16・・・・・・マイクロコード・メモリ、18・・・
・・・マクロデコード・テーブル、20・・・・・・命
令タイプ検出ロジック部、102.104・・・・・・
マイクロコード・メモリ、106.108・・・・・・
マクロデコード・テーブル、110.112・・・・・
・アドレス・ランチ、114・・・・・・データ・バス
、 116・・・・・・命令レジスタ、 118・・・・・・実行ロジック部、 120・・・・・・メモリ・インターフェース、122
・・・・・・マクロ命令待ち行列部、124・・・・・
・マクロ命令待ち行列部、126・・・・・・ネクスト
・マクロPC1128・・・・・・マクロ取出制御部、
130・・・・・・マイクロPC。 132・・・・・・マイクロPC/パイプライン制御部
、134.136・・・・・・マルチプレクサ、138
・・・・・・マクロ命令読込レジスタ、140・・・・
・・マクロ命令読込レジスタ、139・・・・・・反転
器、 141・・・・・・マイクロコード・ブロック識別部。
Claims (1)
- 【特許請求の範囲】 命令を実行するための中央プロセッサと、 命令を保持するための、マイクロコード・メモリと、 このマイクロコード・メモリ内に位置して、前記中央プ
ロセッサにより直接デコードされ、実行されうる第1の
種類の命令と前記マイクロコード・メモリの中のマイク
ロコード・ルーチンを指す第2の種類の命令との2種類
の命令を有し、前記中央プロセッサに現われるマクロ命
令をデコートするためのマクロ命令デコード・テーブル
と、 前記中央プロセッサおよび前記マイクロコード・メモリ
に接続され、前記第1の種類の命令をデコードし、前記
中央プロセッサに直接実行を行わしめると共に前記第2
の種類の命令に対応するマイクロコード・ルーチンの実
行を開始するためのデコーダと、を備えたことを特徴と
するディジタルコンピュータシステム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US1887287A | 1987-02-24 | 1987-02-24 | |
| US018872 | 1987-02-24 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS63228225A true JPS63228225A (ja) | 1988-09-22 |
Family
ID=21790196
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4183288A Pending JPS63228225A (ja) | 1987-02-24 | 1988-02-24 | ディジタルコンピュータシステム |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP0279953B1 (ja) |
| JP (1) | JPS63228225A (ja) |
| DE (1) | DE3750721T2 (ja) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5333287A (en) * | 1988-12-21 | 1994-07-26 | International Business Machines Corporation | System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters |
| JPH02183830A (ja) * | 1988-12-21 | 1990-07-18 | Internatl Business Mach Corp <Ibm> | マイクロプログラム変換機構を有するコンピュータ |
| EP0649083B1 (en) * | 1993-10-18 | 2000-07-19 | National Semiconductor Corporation | A microcontrol unit for a superpipelined, superscalar microprocessor |
| US5794026A (en) * | 1993-10-18 | 1998-08-11 | National Semiconductor | Microprocessor having expedited execution of condition dependent instructions |
| US5644741A (en) * | 1993-10-18 | 1997-07-01 | Cyrix Corporation | Processor with single clock decode architecture employing single microROM |
| US5784640A (en) * | 1996-03-18 | 1998-07-21 | Advanced Micro Devices, Inc. | CPU with DSP function preprocessor having look-up table for translating instruction sequences intended to perform DSP function into DSP macros |
| GB9822191D0 (en) * | 1998-10-13 | 1998-12-02 | Kubiczek Maciej | High performance low cost microprocessor |
| EP1489491A1 (en) * | 2003-06-19 | 2004-12-22 | Texas Instruments Incorporated | Dynamically changing the semantic of an instruction |
| US8281111B2 (en) * | 2008-09-23 | 2012-10-02 | Qualcomm Incorporated | System and method to execute a linear feedback-shift instruction |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5042757A (ja) * | 1973-08-20 | 1975-04-18 | ||
| JPS5397349A (en) * | 1977-02-05 | 1978-08-25 | Fujitsu Ltd | Order decording system |
| JPS57101945A (en) * | 1980-12-18 | 1982-06-24 | Nec Corp | Control system of information processor |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
| US4415969A (en) * | 1980-02-07 | 1983-11-15 | Intel Corporation | Macroinstruction translator unit for use in a microprocessor |
| US4434462A (en) * | 1980-11-24 | 1984-02-28 | Texas Instruments Incorporated | Off-chip access for psuedo-microprogramming in microprocessor |
| JPS58203554A (ja) * | 1982-05-21 | 1983-11-28 | Toshiba Corp | 演算処理装置 |
| US4635194A (en) * | 1983-05-02 | 1987-01-06 | International Business Machines Corporation | Instruction buffer bypass apparatus |
| EP0208181A1 (en) * | 1985-06-28 | 1987-01-14 | Hewlett-Packard Company | Programme counter queue for a pipelined processor |
-
1987
- 1987-12-30 EP EP87119350A patent/EP0279953B1/en not_active Expired - Lifetime
- 1987-12-30 DE DE19873750721 patent/DE3750721T2/de not_active Expired - Fee Related
-
1988
- 1988-02-24 JP JP4183288A patent/JPS63228225A/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5042757A (ja) * | 1973-08-20 | 1975-04-18 | ||
| JPS5397349A (en) * | 1977-02-05 | 1978-08-25 | Fujitsu Ltd | Order decording system |
| JPS57101945A (en) * | 1980-12-18 | 1982-06-24 | Nec Corp | Control system of information processor |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0279953A2 (en) | 1988-08-31 |
| EP0279953B1 (en) | 1994-11-02 |
| EP0279953A3 (en) | 1990-01-31 |
| DE3750721D1 (de) | 1994-12-08 |
| DE3750721T2 (de) | 1995-03-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5235686A (en) | Computer system having mixed macrocode and microcode | |
| US5353418A (en) | System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread | |
| JP2810068B2 (ja) | プロセッサシステム、コンピュータシステム及び命令処理方法 | |
| US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
| US4430706A (en) | Branch prediction apparatus and method for a data processing system | |
| AU628163B2 (en) | Method and apparatus for detecting and correcting errors in a pipelined computer system | |
| US5127091A (en) | System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor | |
| US4879646A (en) | Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging | |
| US4574349A (en) | Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction | |
| US4991078A (en) | Apparatus and method for a pipelined central processing unit in a data processing system | |
| US6233670B1 (en) | Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating result bypassing | |
| US4305124A (en) | Pipelined computer | |
| WO1990014629A2 (en) | Parallel multithreaded data processing system | |
| JPH04309131A (ja) | 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置 | |
| US5008807A (en) | Data processing apparatus with abbreviated jump field | |
| US5404486A (en) | Processor having a stall cache and associated method for preventing instruction stream stalls during load and store instructions in a pipelined computer system | |
| EP0223150B1 (en) | Information processing apparatus | |
| US6662298B2 (en) | Method and apparatus for manipulation of non-general purpose registers for use during computer boot-up procedures | |
| EP0279953B1 (en) | Computer system having mixed macrocode and microcode instruction execution | |
| US5526500A (en) | System for operand bypassing to allow a one and one-half cycle cache memory access time for sequential load and branch instructions | |
| US4430708A (en) | Digital computer for executing instructions in three time-multiplexed portions | |
| US5293499A (en) | Apparatus for executing a RISC store and RI instruction pair in two clock cycles | |
| JP2680828B2 (ja) | ディジタル装置 | |
| US4935849A (en) | Chaining and hazard apparatus and method | |
| KR970012141A (ko) | 파이프라인 처리를 수행하는 데이터 처리 장치 |