JPS6329292B2 - - Google Patents
Info
- Publication number
- JPS6329292B2 JPS6329292B2 JP60208986A JP20898685A JPS6329292B2 JP S6329292 B2 JPS6329292 B2 JP S6329292B2 JP 60208986 A JP60208986 A JP 60208986A JP 20898685 A JP20898685 A JP 20898685A JP S6329292 B2 JPS6329292 B2 JP S6329292B2
- Authority
- JP
- Japan
- Prior art keywords
- micro
- microinstruction
- instruction
- operations
- executed
- 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
- 230000000694 effects Effects 0.000 claims description 2
- 238000004064 recycling Methods 0.000 claims 1
- 238000000034 method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/264—Microinstruction selection based on results of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、複数のサブプロセツサ(ユニツト)
を有する並列アーキテクチヤ式マイクロプロセツ
サにおけるマイクロ命令の順次処理に関するもの
である。
を有する並列アーキテクチヤ式マイクロプロセツ
サにおけるマイクロ命令の順次処理に関するもの
である。
複数のサブプロセツサを含む、マイクロプログ
ラム化並列プロセツサは、マイクロ命令の制御下
で動作する。各マイクロ命令は複数のマイクロ動
作を含み、その各々は実行のために1台以上のサ
ブプロセツサを必要とする。必要とするサブプロ
セツサが利用可能な状態にあるすべてのマイクロ
動作は、直ちに実行される。サブプロセツサが利
用不能であるために実行されなかつたマイクロ命
令中の残りのマイクロ動作は、そのすべてがリサ
イクルされる。これらの残りのマイクロ動作は、
必要なサブプロセツサが利用可能になると、後の
サイクルで実行される。マイクロ命令全体がリサ
イクルされることはなく、その一部、すなわち実
行されなかつたマイクロ動作だけがリサイクルさ
れ、後のサイクルで実行される。実行中のマイク
ロ命令は、そのすべてのマイクロ動作が実行され
るまで、ラツチ内に記憶される。その場合、次の
マイクロ命令がラツチ内に取り出される。
ラム化並列プロセツサは、マイクロ命令の制御下
で動作する。各マイクロ命令は複数のマイクロ動
作を含み、その各々は実行のために1台以上のサ
ブプロセツサを必要とする。必要とするサブプロ
セツサが利用可能な状態にあるすべてのマイクロ
動作は、直ちに実行される。サブプロセツサが利
用不能であるために実行されなかつたマイクロ命
令中の残りのマイクロ動作は、そのすべてがリサ
イクルされる。これらの残りのマイクロ動作は、
必要なサブプロセツサが利用可能になると、後の
サイクルで実行される。マイクロ命令全体がリサ
イクルされることはなく、その一部、すなわち実
行されなかつたマイクロ動作だけがリサイクルさ
れ、後のサイクルで実行される。実行中のマイク
ロ命令は、そのすべてのマイクロ動作が実行され
るまで、ラツチ内に記憶される。その場合、次の
マイクロ命令がラツチ内に取り出される。
一般に、マイクロコード化されたプロセツサ
は、マイクロコード・レベルで比較的簡単な同期
操作を必要とする。しかし、性能を改良するため
には、プロセツサをこれより小さいいくつかのサ
ブプロセツサ(ユニツト)に分割することが望ま
しい。この場合、各サブプロセツサは特定のタス
クを最大の効率で、しかも他のサブプロセツサと
並行して行うように最適化される。このようなサ
ブプロセツサの例として、命令プリフエツチ・ユ
ニツト、レジスタ・フアイルおよび制御ユニツ
ト、実行ユニツト、チヤネル・インターフエー
ス・ユニツト、制御記憶および制御復号装置を挙
げることができる。
は、マイクロコード・レベルで比較的簡単な同期
操作を必要とする。しかし、性能を改良するため
には、プロセツサをこれより小さいいくつかのサ
ブプロセツサ(ユニツト)に分割することが望ま
しい。この場合、各サブプロセツサは特定のタス
クを最大の効率で、しかも他のサブプロセツサと
並行して行うように最適化される。このようなサ
ブプロセツサの例として、命令プリフエツチ・ユ
ニツト、レジスタ・フアイルおよび制御ユニツ
ト、実行ユニツト、チヤネル・インターフエー
ス・ユニツト、制御記憶および制御復号装置を挙
げることができる。
1台のプロセツサを、これより小さい複数のサ
ブプロセツサ(ユニツト)に分割すると、これら
のサブプロセツサをマイクロコードで制御するこ
とが困難になる。これはサブプロセツサ間にイン
タロツクを必要とするためである。実行ユニツト
を除く各サブプロセツサはマイクロ命令を非同期
的に実行するから、所与のマイクロ命令が常に成
功裡に完了するとは限らない。
ブプロセツサ(ユニツト)に分割すると、これら
のサブプロセツサをマイクロコードで制御するこ
とが困難になる。これはサブプロセツサ間にイン
タロツクを必要とするためである。実行ユニツト
を除く各サブプロセツサはマイクロ命令を非同期
的に実行するから、所与のマイクロ命令が常に成
功裡に完了するとは限らない。
たとえば、ロード動作を行うマイクロ命令は、
チヤネル・インターフエースの待ち行列が一ぱい
のため、完了できないことがある。これまでは、
この状況を解決するため、ロード・マイクロ命令
を実行する前に、チヤネル・インターフエースの
待ち行列の利用可能性を調べるマイクロ命令を実
行するようにしていた。しかし、このような試験
用マイクロ命令を使用すると、すべてのロード動
作に余分のサイクルが加わるようになる。チヤネ
ル・インターフエースの待ち行列は殆んどの場合
に利用可能であるから、これは好ましい方法では
ない。さらに、利用可能性を調べるサイクル中
に、インターフエースの待ち行列が利用不能であ
るが、ロード・マイクロ命令を実行しうるつぎの
サイクルで利用可能であるような場合には、この
方法は2つの余分なサイクルを必要とする。した
がつて、ロード・マイクロ命令が実行される前に
チヤネル・インターフエースの待ち行列の利用可
能性を調べる方法はいずれも不必要なサイクルを
増加させる傾向がある。
チヤネル・インターフエースの待ち行列が一ぱい
のため、完了できないことがある。これまでは、
この状況を解決するため、ロード・マイクロ命令
を実行する前に、チヤネル・インターフエースの
待ち行列の利用可能性を調べるマイクロ命令を実
行するようにしていた。しかし、このような試験
用マイクロ命令を使用すると、すべてのロード動
作に余分のサイクルが加わるようになる。チヤネ
ル・インターフエースの待ち行列は殆んどの場合
に利用可能であるから、これは好ましい方法では
ない。さらに、利用可能性を調べるサイクル中
に、インターフエースの待ち行列が利用不能であ
るが、ロード・マイクロ命令を実行しうるつぎの
サイクルで利用可能であるような場合には、この
方法は2つの余分なサイクルを必要とする。した
がつて、ロード・マイクロ命令が実行される前に
チヤネル・インターフエースの待ち行列の利用可
能性を調べる方法はいずれも不必要なサイクルを
増加させる傾向がある。
インタロツクの問題は、マイクロ命令の水平度
が増すにつれて、すなわちマイクロ命令がより多
くのマイクロ動作を行うようになるにつれて、一
層複雑になる。たとえば、ロード動作を行う1つ
のマイクロ命令は、命令プリフエツチ・ユニツト
から次の命令を取り出し、レジスタ・フアイルか
ら次の実行サイクル用のオペランドを取り出し、
ロード動作および命令実行の並行処理を可能にす
るレジスタ・フアイルのアドレス・ロジツクを割
り振り、ロード要求のためにチヤネル・インター
フエースの待ち行列を割り振つていることがあ
る。これらのいずれかの動作は成功裡に完了しな
いことがある。
が増すにつれて、すなわちマイクロ命令がより多
くのマイクロ動作を行うようになるにつれて、一
層複雑になる。たとえば、ロード動作を行う1つ
のマイクロ命令は、命令プリフエツチ・ユニツト
から次の命令を取り出し、レジスタ・フアイルか
ら次の実行サイクル用のオペランドを取り出し、
ロード動作および命令実行の並行処理を可能にす
るレジスタ・フアイルのアドレス・ロジツクを割
り振り、ロード要求のためにチヤネル・インター
フエースの待ち行列を割り振つていることがあ
る。これらのいずれかの動作は成功裡に完了しな
いことがある。
マイクロ命令の水平的性質によつて生じるもう
1つの問題は、所与のマイクロ命令中の或るマイ
クロ動作が成功裡に完了するのに対し、同じマイ
クロ命令中の他のマイクロ動作が成功裡に完了し
ないことがあるという点にある。したがつて、所
与のマイクロ命令は、完了するマイクロ操作と完
了しないマイクロ動作の任意の組み合わせを有す
ることがある。このようなマイクロ命令中の完了
しないマイクロ動作は、その解決のために多くの
クロツク・サイクルを必要とする。
1つの問題は、所与のマイクロ命令中の或るマイ
クロ動作が成功裡に完了するのに対し、同じマイ
クロ命令中の他のマイクロ動作が成功裡に完了し
ないことがあるという点にある。したがつて、所
与のマイクロ命令は、完了するマイクロ操作と完
了しないマイクロ動作の任意の組み合わせを有す
ることがある。このようなマイクロ命令中の完了
しないマイクロ動作は、その解決のために多くの
クロツク・サイクルを必要とする。
並列プロセツサ中でマイクロコードを実行する
ための1つの方法は、米国特許第4179737号に開
示されている。この特許で開示された方法によれ
ば、すべてのサブプロセツサが利用可能になるの
を待機するかわりに、リソースが利用可能となつ
たマイクロ動作がただちに実行される。つぎに、
所与のマイクロ命令内のすべてのマイクロ動作の
完了に必要なすべてのサブプロセツサが利用可能
になるまで、当該マイクロ命令はリサイクルされ
る。その時点ではじめてシステムはつぎのマイク
ロ命令に進む。このような方法は、すでに完了し
たマイクロ動作の繰り返しを必要とし、したがつ
て成功裡に完了されうるマイクロ動作の実行に遅
れを生じる。
ための1つの方法は、米国特許第4179737号に開
示されている。この特許で開示された方法によれ
ば、すべてのサブプロセツサが利用可能になるの
を待機するかわりに、リソースが利用可能となつ
たマイクロ動作がただちに実行される。つぎに、
所与のマイクロ命令内のすべてのマイクロ動作の
完了に必要なすべてのサブプロセツサが利用可能
になるまで、当該マイクロ命令はリサイクルされ
る。その時点ではじめてシステムはつぎのマイク
ロ命令に進む。このような方法は、すでに完了し
たマイクロ動作の繰り返しを必要とし、したがつ
て成功裡に完了されうるマイクロ動作の実行に遅
れを生じる。
マイクロコード制御を用いる他のシステムで
は、ある命令または動作を実行するために、一連
のマイクロ命令が逐次に実行される。一連のマイ
クロ命令中に、実行できない命令がある場合は、
この命令を実行可能にするように繰り返しが行わ
れる。しかし、米国特許第4001788号(特開昭51
−117843号)に開示されたこの方法は、並列アー
キテクチヤ式プロセツサには適用されず、したが
つて並列マイクロ命令の使用を含んでいない。
は、ある命令または動作を実行するために、一連
のマイクロ命令が逐次に実行される。一連のマイ
クロ命令中に、実行できない命令がある場合は、
この命令を実行可能にするように繰り返しが行わ
れる。しかし、米国特許第4001788号(特開昭51
−117843号)に開示されたこの方法は、並列アー
キテクチヤ式プロセツサには適用されず、したが
つて並列マイクロ命令の使用を含んでいない。
また米国特許第4179731号(特開昭52−120640
号)に開示された他のマイクロプログラム化制御
システムでは、メモリがマイクロ命令を記憶し、
アドレス・レジスタが、実行すべき次のマイクロ
命令のアドレスを記憶し、マイクロ命令レジスタ
が実行すべきマイクロ命令を記憶する。マイクロ
プログラム化制御システムのプログラム動作は、
マイクロ命令レジスタに記憶されたマイクロ命令
が分岐するかどうかに依存する。実行すべきマイ
クロ命令が分岐しない種類のものである場合は、
常に通常のマイクロ命令の動作が実行される。一
方、分岐用マイクロ命令を実行する場合は、該マ
イクロ命令の動作を通常のマイクロ命令の動作と
等しくするような動作が行われる。しかしインタ
ロツクの問題、およびその解決方法については記
載されていない。
号)に開示された他のマイクロプログラム化制御
システムでは、メモリがマイクロ命令を記憶し、
アドレス・レジスタが、実行すべき次のマイクロ
命令のアドレスを記憶し、マイクロ命令レジスタ
が実行すべきマイクロ命令を記憶する。マイクロ
プログラム化制御システムのプログラム動作は、
マイクロ命令レジスタに記憶されたマイクロ命令
が分岐するかどうかに依存する。実行すべきマイ
クロ命令が分岐しない種類のものである場合は、
常に通常のマイクロ命令の動作が実行される。一
方、分岐用マイクロ命令を実行する場合は、該マ
イクロ命令の動作を通常のマイクロ命令の動作と
等しくするような動作が行われる。しかしインタ
ロツクの問題、およびその解決方法については記
載されていない。
したがつて、本発明の目的は、並列アーキテク
チヤ式プロセツサの、改良されたマイクロコード
制御を提供することにある。
チヤ式プロセツサの、改良されたマイクロコード
制御を提供することにある。
本発明の他の目的は、所与のマイクロ命令中の
マイクロ動作をできるだけ速く行うことによつ
て、性能を改善するようにしたマイクロコード制
御式並列プロセツサを提供することにある。
マイクロ動作をできるだけ速く行うことによつ
て、性能を改善するようにしたマイクロコード制
御式並列プロセツサを提供することにある。
これらの目的およびその他の目的は、並列プロ
セツサ内のマイクロコードが順序づけられる方法
を変えることにより達成される。本発明によれ
ば、所与のマイクロ命令内のすべてのマイクロ動
作が成功裡に完了される限り、制御記憶から取り
出される次の連続したマイクロ命令が、システム
の次のクロツク・サイクルに実行される。もし任
意のマイクロ命令が1つ以上の完了しないマイク
ロ動作を有するならば、そのマイクロ命令はラン
ダム・ロジツクにより変更され、そして完了しな
かつたマイクロ動作が次のクロツク・サイクルで
再実行される。
セツサ内のマイクロコードが順序づけられる方法
を変えることにより達成される。本発明によれ
ば、所与のマイクロ命令内のすべてのマイクロ動
作が成功裡に完了される限り、制御記憶から取り
出される次の連続したマイクロ命令が、システム
の次のクロツク・サイクルに実行される。もし任
意のマイクロ命令が1つ以上の完了しないマイク
ロ動作を有するならば、そのマイクロ命令はラン
ダム・ロジツクにより変更され、そして完了しな
かつたマイクロ動作が次のクロツク・サイクルで
再実行される。
現行のマイクロプログラム化システムと異な
り、本発明によるシステムは、マイクロ命令が必
要とするすべてのサブプロセツサが利用可能にな
るのを待たずに、マイクロ動作を処理することが
できる。マイクロ命令はその実行中は或るレジス
タに記憶される。この記憶の間、このマイクロ命
令の実行可能なマイクロ動作が実行される。この
マイクロ命令中の実行不能なマイクロ動作は、必
要とするサブプロセツサが利用可能になるまでリ
サイクルされる。このマイクロ命令全体はリサイ
クルされず、所与のクロツク・サイクルの終りに
残るマイクロ動作のみがリサイクルされる。
り、本発明によるシステムは、マイクロ命令が必
要とするすべてのサブプロセツサが利用可能にな
るのを待たずに、マイクロ動作を処理することが
できる。マイクロ命令はその実行中は或るレジス
タに記憶される。この記憶の間、このマイクロ命
令の実行可能なマイクロ動作が実行される。この
マイクロ命令中の実行不能なマイクロ動作は、必
要とするサブプロセツサが利用可能になるまでリ
サイクルされる。このマイクロ命令全体はリサイ
クルされず、所与のクロツク・サイクルの終りに
残るマイクロ動作のみがリサイクルされる。
第1図は、複数のサブプロセツサ(ユニツト)
に分割されているマイクロコード化プロセツサ1
2を示す。プロセツサ12は、つぎの5つの主要
なサブプロセツサに分割することができる。すな
わち、命令プリフエツチ・ユニツト13、レジス
タ・フアイルおよび制御ユニツト14、実行ユニ
ツト15、チヤネル・インターフエース・ユニツ
ト16、ならびに制御記憶17およびラツチ19
を有する制御復号装置18である。各サブプロセ
ツサ間の接続は、1本の線で示されているが、こ
の接続は母線の形をとることが望ましい。記憶チ
ヤネル21はチヤネル・インターフエース・ユニ
ツト16を通じて各サブプロセツサと連絡してい
る。記憶チヤネル21の動作は本発明の一部を形
成しないのでこれ以上の説明は行わない。
に分割されているマイクロコード化プロセツサ1
2を示す。プロセツサ12は、つぎの5つの主要
なサブプロセツサに分割することができる。すな
わち、命令プリフエツチ・ユニツト13、レジス
タ・フアイルおよび制御ユニツト14、実行ユニ
ツト15、チヤネル・インターフエース・ユニツ
ト16、ならびに制御記憶17およびラツチ19
を有する制御復号装置18である。各サブプロセ
ツサ間の接続は、1本の線で示されているが、こ
の接続は母線の形をとることが望ましい。記憶チ
ヤネル21はチヤネル・インターフエース・ユニ
ツト16を通じて各サブプロセツサと連絡してい
る。記憶チヤネル21の動作は本発明の一部を形
成しないのでこれ以上の説明は行わない。
命令プリフエツチ・ユニツト13は、プロセツ
サ12に命令が供給され続けるように、チヤネ
ル・インターフエース・ユニツト16と共動す
る。命令プリフエツチ・ユニツト13は、みかけ
の命令アクセス時間を減少させるため、実行前に
命令を取り出すためのものである。
サ12に命令が供給され続けるように、チヤネ
ル・インターフエース・ユニツト16と共動す
る。命令プリフエツチ・ユニツト13は、みかけ
の命令アクセス時間を減少させるため、実行前に
命令を取り出すためのものである。
レジスタ・フアイルおよび制御ユニツト14
は、レジスタ・フアイルの読み書きを制御する。
またレジスタ・フアイルおよび制御ユニツト14
は、チヤネル・インターフエース・ユニツト16
と共動して、データのロードおよびデータの記憶
の実行を可能にする。。レジスタ・フアイルおよ
び制御ユニツト14の動作は、データのロードお
よびデータの記憶が命令の実行と並行するように
して行われる。
は、レジスタ・フアイルの読み書きを制御する。
またレジスタ・フアイルおよび制御ユニツト14
は、チヤネル・インターフエース・ユニツト16
と共動して、データのロードおよびデータの記憶
の実行を可能にする。。レジスタ・フアイルおよ
び制御ユニツト14の動作は、データのロードお
よびデータの記憶が命令の実行と並行するように
して行われる。
実行ユニツト15はマイクロ命令の実行に必要
なランダム・ロジツクの大部分を含む。これはま
た、データのロードおよびデータの記憶を可能に
するためのアドレスを供給する。実行ユニツト1
5による命令の実行は、レジスタ・フアイルから
のオペランドの取り出し、およびレジスタ・フア
イルへの結果の記憶と並行して行われる。
なランダム・ロジツクの大部分を含む。これはま
た、データのロードおよびデータの記憶を可能に
するためのアドレスを供給する。実行ユニツト1
5による命令の実行は、レジスタ・フアイルから
のオペランドの取り出し、およびレジスタ・フア
イルへの結果の記憶と並行して行われる。
チヤネル・インターフエース・ユニツト16
は、命令およびデータ・アクセスの要求を受け、
データおよびアドレスを様式化し、記憶チヤネル
21を通してデータ転送を行う。
は、命令およびデータ・アクセスの要求を受け、
データおよびアドレスを様式化し、記憶チヤネル
21を通してデータ転送を行う。
制御記憶17および制御復号装置18は、マイ
クロ命令の復号に基いて、残りのサブプロセツサ
のための主要な制御信号を発生する。制御復号装
置18はまた残りのサブプロセツサから、要求さ
れたサブプロセツサが動作のため利用可能である
という情報を受け取る。この情報はラツチ19に
伝えられ、かくて該ラツチに記憶されたマイクロ
命令の順序づけを可能にする。
クロ命令の復号に基いて、残りのサブプロセツサ
のための主要な制御信号を発生する。制御復号装
置18はまた残りのサブプロセツサから、要求さ
れたサブプロセツサが動作のため利用可能である
という情報を受け取る。この情報はラツチ19に
伝えられ、かくて該ラツチに記憶されたマイクロ
命令の順序づけを可能にする。
動作中は、実行されているマイクロ命令はラツ
チ19に記憶される。各マイクロ命令の終りにあ
る「次のアドレス」フイールド中の情報は、実行
すべき次のマイクロ命令を取り出すため、制御復
号装置18に供給される。この情報は、線25か
ら命令プリフエツチ・ユニツト13内のアドレ
ス・ロジツクへ出力される。つぎに或るアドレス
が命令プリフエツチ・ユニツト13から制御記憶
17へ出力される。制御記憶17は命令プリフエ
ツチ・ユニツト13から供給されるアドレスを用
いてアクセスされる。制御記憶17は、実行すべ
き次のマイクロ命令を供給し、これはその実行中
はラツチ19に記憶される。
チ19に記憶される。各マイクロ命令の終りにあ
る「次のアドレス」フイールド中の情報は、実行
すべき次のマイクロ命令を取り出すため、制御復
号装置18に供給される。この情報は、線25か
ら命令プリフエツチ・ユニツト13内のアドレ
ス・ロジツクへ出力される。つぎに或るアドレス
が命令プリフエツチ・ユニツト13から制御記憶
17へ出力される。制御記憶17は命令プリフエ
ツチ・ユニツト13から供給されるアドレスを用
いてアクセスされる。制御記憶17は、実行すべ
き次のマイクロ命令を供給し、これはその実行中
はラツチ19に記憶される。
各マイクロ命令は、通常所与のマイクロ命令を
成功裡に完了させるために行わなければならない
数種類のマイクロ動作を含む。新しいマイクロ命
令がラツチ19に取り出される場合、常にそのマ
イクロ命令内のマイクロ動作を行うのに必要なサ
ブプロセツサが制御復号装置18に中断される。
つぎに制御復号装置18は、それぞれ線26,2
7,28を介して必要なサブプロセツサ13,1
4,16がそれぞれ利用可能かどうかを調べる。
つぎに、要求されたサブプロセツサが制御復号装
置18にその利用可能性を知らせる。この情報は
線21を通じてラツチ19へ出力される。このよ
うな情報がラツチ19中のマイクロ命令の実行の
順序づけを制御する。
成功裡に完了させるために行わなければならない
数種類のマイクロ動作を含む。新しいマイクロ命
令がラツチ19に取り出される場合、常にそのマ
イクロ命令内のマイクロ動作を行うのに必要なサ
ブプロセツサが制御復号装置18に中断される。
つぎに制御復号装置18は、それぞれ線26,2
7,28を介して必要なサブプロセツサ13,1
4,16がそれぞれ利用可能かどうかを調べる。
つぎに、要求されたサブプロセツサが制御復号装
置18にその利用可能性を知らせる。この情報は
線21を通じてラツチ19へ出力される。このよ
うな情報がラツチ19中のマイクロ命令の実行の
順序づけを制御する。
必要なサブプロセツサの1つがその利用不能を
示す信号を出すと、利用可能なサブプロセツサを
有するマイクロ動作が行われる。実行されなかつ
たマイクロ動作はリサイクルされ、そして必要な
すべてのサブプロセツサの利用可能性が再び調べ
られる。もし必要なサブプロセツサのいずれかが
まだ利用不能に留まるならば、実行可能なすべて
のマイクロ動作が再び実行される。このプロセス
は、マイクロ命令内のすべてのマイクロ動作が実
行されるまで続く。しかし、実行中のマイクロ命
令中の所与のマイクロ動作が行われると、そのマ
イクロ動作が繰り返されることはない。
示す信号を出すと、利用可能なサブプロセツサを
有するマイクロ動作が行われる。実行されなかつ
たマイクロ動作はリサイクルされ、そして必要な
すべてのサブプロセツサの利用可能性が再び調べ
られる。もし必要なサブプロセツサのいずれかが
まだ利用不能に留まるならば、実行可能なすべて
のマイクロ動作が再び実行される。このプロセス
は、マイクロ命令内のすべてのマイクロ動作が実
行されるまで続く。しかし、実行中のマイクロ命
令中の所与のマイクロ動作が行われると、そのマ
イクロ動作が繰り返されることはない。
第1図に示すシステムの全体の動作を第2図の
流れ図に示す。ブロツク31では、ラツチ19内
のマイクロ命令が実行される。ブロツク32で
は、当該マイクロ命令内のすべてのマイクロ動作
が成功裡に完了したかどうかの決定が行われる。
前述のように、このようなマイクロ動作の完了
は、必要なすべてのサブプロセツサの利用可能性
に依存する。もし、すべてのマイクロ動作が成功
裡に完了していなければ、ブロツク33はすべて
の完了しないマイクロ動作を繰り返すことを必要
とする。完了したマイクロ動作はいずれも繰り返
されず、次のクロツク・サイクルに完了したマイ
クロ動作のための「ノー・オペレーシヨン」信号
が制御復号装置18により、ラツチ19中のマイ
クロ命令に供給される。もし所与のマイクロ命令
中のすべてのマイクロ動作が成功裡に完了したな
らば、ブロツク34では、マイクロ命令の終り近
くの次のアドレス・フイールドが、次のマイクロ
命令のアドレスを選択するのに用いられる。最後
に、ブロツク35では、次のマイクロ命令がアク
セスされ、前述の制御記憶17内のテーブルを用
いてラツチ19に入力される。
流れ図に示す。ブロツク31では、ラツチ19内
のマイクロ命令が実行される。ブロツク32で
は、当該マイクロ命令内のすべてのマイクロ動作
が成功裡に完了したかどうかの決定が行われる。
前述のように、このようなマイクロ動作の完了
は、必要なすべてのサブプロセツサの利用可能性
に依存する。もし、すべてのマイクロ動作が成功
裡に完了していなければ、ブロツク33はすべて
の完了しないマイクロ動作を繰り返すことを必要
とする。完了したマイクロ動作はいずれも繰り返
されず、次のクロツク・サイクルに完了したマイ
クロ動作のための「ノー・オペレーシヨン」信号
が制御復号装置18により、ラツチ19中のマイ
クロ命令に供給される。もし所与のマイクロ命令
中のすべてのマイクロ動作が成功裡に完了したな
らば、ブロツク34では、マイクロ命令の終り近
くの次のアドレス・フイールドが、次のマイクロ
命令のアドレスを選択するのに用いられる。最後
に、ブロツク35では、次のマイクロ命令がアク
セスされ、前述の制御記憶17内のテーブルを用
いてラツチ19に入力される。
第3図は数クロツク・サイクルにわたるマイク
ロ命令内の各種のマイクロ動作の実行の1例を示
す。サイクル1のマイクロ命令は、チヤネル・イ
ンターフエース・ユニツト16にロード要求を出
し、命令プリフエツチ・ユニツト13から、実行
すべき次の命令をアクセスしようとするものであ
る。この時点で、チヤネル・インターフエース・
ユニツト16は利用不能であり、また次の命令は
まだ記憶チヤネル21から受け取られていない。
この第1のサイクルの間、実行ユニツト15はロ
ード動作のためのアドレスを計算するのに用いら
れている。これと同時に、このマイクロ命令は、
次の命令のオペランドを取り出そうとしている
が、次の命令はまだ受け取られていないため、こ
れらのオペランドのソースは判つていない。これ
らのオペランドは、レジスタ・フアイルおよび制
御ユニツト14から取り出されようとしている。
ロ命令内の各種のマイクロ動作の実行の1例を示
す。サイクル1のマイクロ命令は、チヤネル・イ
ンターフエース・ユニツト16にロード要求を出
し、命令プリフエツチ・ユニツト13から、実行
すべき次の命令をアクセスしようとするものであ
る。この時点で、チヤネル・インターフエース・
ユニツト16は利用不能であり、また次の命令は
まだ記憶チヤネル21から受け取られていない。
この第1のサイクルの間、実行ユニツト15はロ
ード動作のためのアドレスを計算するのに用いら
れている。これと同時に、このマイクロ命令は、
次の命令のオペランドを取り出そうとしている
が、次の命令はまだ受け取られていないため、こ
れらのオペランドのソースは判つていない。これ
らのオペランドは、レジスタ・フアイルおよび制
御ユニツト14から取り出されようとしている。
ロード要求と命令取り出しが完了していないこ
とを示す制御復号装置18中の復号信号は、この
第1のサイクルの後半に利用可能になる。このよ
うな復号信号は、サイクル2の開始前にラツチ1
9を制御するのに用いることができる。したがつ
て、この状況では、実行されようとしているマイ
クロ命令は成功裡に完了したマイクロ動作を有し
ていない。したがつて、ラツチ19は変更され
ず、かくてこのマイクロ命令の全体が次のサイク
ルで再実行される。ラツチ19内のマイクロ命令
が再実行されているので、制御記憶17から取り
出されているデータはいずれも無視される。
とを示す制御復号装置18中の復号信号は、この
第1のサイクルの後半に利用可能になる。このよ
うな復号信号は、サイクル2の開始前にラツチ1
9を制御するのに用いることができる。したがつ
て、この状況では、実行されようとしているマイ
クロ命令は成功裡に完了したマイクロ動作を有し
ていない。したがつて、ラツチ19は変更され
ず、かくてこのマイクロ命令の全体が次のサイク
ルで再実行される。ラツチ19内のマイクロ命令
が再実行されているので、制御記憶17から取り
出されているデータはいずれも無視される。
サイクル2の間、チヤネル・インターフエー
ス・ユニツト16はまだ利用不能であるが、次の
命令が、命令プリフエツチ・ユニツト13から得
られる。サイクル3のマイクロ命令は、チヤネ
ル・インターフエーイス・ユニツト16が利用不
能のため、ロード要求を繰り返すが、命令プリフ
エツチ・ユニツト13からの他の命令はアクセス
できない。サイクル2の終りには、ラツチ19の
制御はさらに複雑になり、ここでは主として3つ
の動作が行われる。
ス・ユニツト16はまだ利用不能であるが、次の
命令が、命令プリフエツチ・ユニツト13から得
られる。サイクル3のマイクロ命令は、チヤネ
ル・インターフエーイス・ユニツト16が利用不
能のため、ロード要求を繰り返すが、命令プリフ
エツチ・ユニツト13からの他の命令はアクセス
できない。サイクル2の終りには、ラツチ19の
制御はさらに複雑になり、ここでは主として3つ
の動作が行われる。
第1に、ロード要求を出し且つロードのアドレ
スを計算するようなマイクロ命令フイールドが、
ラツチ19中に保持される。この保持動作は後続
クロツク・サイクルで、マイクロ命令中のこれら
のマイクロ動作を繰り返す。第2に、命令プリフ
エツチ・ユニツト13からの次の命令をアクセス
するマイクロ命令フイールドは、ラツチ19にお
いてNO OP(ノー・オペレーシヨン)信号を供
給される。このNO OPは、そのマイクロ命令フ
イールドを構成するラツチ19内のビツトをクリ
アすることにより行われる。ここで、ラツチ19
のクリアされた状態は、命令プリフエツチ・ユニ
ツト13に対するNO OPと定義される。この
NO OPは命令プリフエツチ・ユニツト13がま
だ実行されていない命令を通して順次づけを行う
のを防止するために必要である。
スを計算するようなマイクロ命令フイールドが、
ラツチ19中に保持される。この保持動作は後続
クロツク・サイクルで、マイクロ命令中のこれら
のマイクロ動作を繰り返す。第2に、命令プリフ
エツチ・ユニツト13からの次の命令をアクセス
するマイクロ命令フイールドは、ラツチ19にお
いてNO OP(ノー・オペレーシヨン)信号を供
給される。このNO OPは、そのマイクロ命令フ
イールドを構成するラツチ19内のビツトをクリ
アすることにより行われる。ここで、ラツチ19
のクリアされた状態は、命令プリフエツチ・ユニ
ツト13に対するNO OPと定義される。この
NO OPは命令プリフエツチ・ユニツト13がま
だ実行されていない命令を通して順次づけを行う
のを防止するために必要である。
最後に、レジスタ・フアイルおよび制御ユニツ
ト14からのオペランドの取り出しを制御するマ
イクロ命令フイールドがラツチ19内に保持され
る。この状況では、オペランドの取り出しは行わ
れるが、第3図に示すように、実行ユニツト15
はロード・アドレスを計算するために用いられて
いるため、このオペランドを実行ユニツト15が
用いることはできない。したがつて、次のクロツ
ク・サイクルでは、このオペランド取り出し動作
が単に繰り返されるにすぎない。
ト14からのオペランドの取り出しを制御するマ
イクロ命令フイールドがラツチ19内に保持され
る。この状況では、オペランドの取り出しは行わ
れるが、第3図に示すように、実行ユニツト15
はロード・アドレスを計算するために用いられて
いるため、このオペランドを実行ユニツト15が
用いることはできない。したがつて、次のクロツ
ク・サイクルでは、このオペランド取り出し動作
が単に繰り返されるにすぎない。
サイクル3の間、チヤネル・インターフエー
ス・ユニツト16が利用可能になり、したがつて
ロード動作が成功裡に完了する。次に、ラツチ1
9が制御記憶17から取り出されている次のマイ
クロ命令のために利用可能になる。このマイクロ
命令は、サイクル4の間、必要なすべてのサブプ
ロセツサが利用可能であれば、ラツチされ、実行
される。そうでない場合は、このようなサブプロ
セツサの利用可能性に従つて、個別のマイクロ動
作の各々が所与のクロツク・サイクル中に行われ
る。この手順は所与のマイクロ命令中のすべての
マイクロ動作が実行されるまで続けられる。この
場合、次のマイクロ命令は、制御記憶17からラ
ツチ19に取り出され、プロセスが続けられる。
ス・ユニツト16が利用可能になり、したがつて
ロード動作が成功裡に完了する。次に、ラツチ1
9が制御記憶17から取り出されている次のマイ
クロ命令のために利用可能になる。このマイクロ
命令は、サイクル4の間、必要なすべてのサブプ
ロセツサが利用可能であれば、ラツチされ、実行
される。そうでない場合は、このようなサブプロ
セツサの利用可能性に従つて、個別のマイクロ動
作の各々が所与のクロツク・サイクル中に行われ
る。この手順は所与のマイクロ命令中のすべての
マイクロ動作が実行されるまで続けられる。この
場合、次のマイクロ命令は、制御記憶17からラ
ツチ19に取り出され、プロセスが続けられる。
以上詳述したように、本発明によれば、比較的
小容量の制御記憶で、並列プロセツサの水平マイ
クロコード制御を行うことができ、またマイクロ
命令の実行に必要なクロツク・サイクルの数を減
少させることができるので、実用的には極めて有
利である。
小容量の制御記憶で、並列プロセツサの水平マイ
クロコード制御を行うことができ、またマイクロ
命令の実行に必要なクロツク・サイクルの数を減
少させることができるので、実用的には極めて有
利である。
第1図は、並列アーキテクチユア式プロセツサ
のブロツク図、第2図は、本発明に従つた第1図
に示したシステムの動作を示す流れ図、第3図
は、或るマイクロ命令の4サイクルにわたる実行
状態を示す図である。 13……命令プリフエツチ・ユニツト、14…
…レジスタ・フアイルおよび制御ユニツト、15
……実行ユニツト、16……チヤネル・インター
フエース・ユニツト、17……制御記憶、18…
…制御復号装置、19……ラツチ。
のブロツク図、第2図は、本発明に従つた第1図
に示したシステムの動作を示す流れ図、第3図
は、或るマイクロ命令の4サイクルにわたる実行
状態を示す図である。 13……命令プリフエツチ・ユニツト、14…
…レジスタ・フアイルおよび制御ユニツト、15
……実行ユニツト、16……チヤネル・インター
フエース・ユニツト、17……制御記憶、18…
…制御復号装置、19……ラツチ。
Claims (1)
- 【特許請求の範囲】 1 マイクロ命令の制御下で動作可能な複数の処
理ユニツトを有し、前記マイクロ命令の各々が複
数のマイクロ動作を含んでいるマイクロプログラ
ム式並列プロセツサにおいて、 前記マイクロ命令を記憶する記憶手段と、 前記記憶手段から読出されたマイクロ命令をそ
のすべてのマイクロ動作が完了するまで保持する
保持手段と、 前記保持手段に読出されたマイクロ命令に応答
して、そのマイクロ動作を実行すべき処理ユニツ
トの利用可能性を調べ、利用可能な処理ユニツト
で関連するマイクロ動作を実行させて該実行が完
了するとその旨を前記保持手段に知らせることに
より再度の実行を阻止し、利用不能な処理ユニツ
トについては該処理ユニツトが利用可能になるま
で関連するマイクロ動作をリサイクルする復号手
段とを備えて成る、マイクロプログラム式並列プ
ロセツサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66678984A | 1984-10-31 | 1984-10-31 | |
US666789 | 1984-10-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61110238A JPS61110238A (ja) | 1986-05-28 |
JPS6329292B2 true JPS6329292B2 (ja) | 1988-06-13 |
Family
ID=24675483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60208986A Granted JPS61110238A (ja) | 1984-10-31 | 1985-09-24 | マイクロプログラム式並列プロセツサ |
Country Status (5)
Country | Link |
---|---|
US (1) | US4803615A (ja) |
EP (1) | EP0181462B1 (ja) |
JP (1) | JPS61110238A (ja) |
CA (1) | CA1223969A (ja) |
DE (1) | DE3586842T2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265037A (en) * | 1989-12-06 | 1993-11-23 | Nippondenso Co., Ltd. | Rotational speed detecting apparatus storing alternate information in two memories |
US5487156A (en) * | 1989-12-15 | 1996-01-23 | Popescu; Valeri | Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched |
JPH04140892A (ja) * | 1990-02-05 | 1992-05-14 | Internatl Business Mach Corp <Ibm> | 制御データをエンコードする装置及び方法 |
US5898854A (en) * | 1994-01-04 | 1999-04-27 | Intel Corporation | Apparatus for indicating an oldest non-retired load operation in an array |
US5577200A (en) * | 1994-02-28 | 1996-11-19 | Intel Corporation | Method and apparatus for loading and storing misaligned data on an out-of-order execution computer system |
US6145071A (en) * | 1994-03-03 | 2000-11-07 | The George Washington University | Multi-layer multi-processor information conveyor with periodic transferring of processors' states for on-the-fly transformation of continuous information flows and operating method therefor |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS524140A (en) * | 1975-06-28 | 1977-01-13 | Victor Co Of Japan Ltd | Data presentation system |
JPS5417620A (en) * | 1977-07-08 | 1979-02-09 | Matsushita Electric Ind Co Ltd | Solid pickup element |
JPS57189261A (en) * | 1981-05-18 | 1982-11-20 | Hitachi Ltd | Data processing device |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4558411A (en) * | 1969-05-19 | 1985-12-10 | Burroughs Corp. | Polymorphic programmable units employing plural levels of sub-instruction sets |
US3736567A (en) * | 1971-09-08 | 1973-05-29 | Bunker Ramo | Program sequence control |
US4001788A (en) * | 1975-03-26 | 1977-01-04 | Honeywell Information Systems, Inc. | Pathfinder microprogram control system |
JPS52120640A (en) * | 1976-04-02 | 1977-10-11 | Toshiba Corp | Micro program control system |
US4199811A (en) * | 1977-09-02 | 1980-04-22 | Sperry Corporation | Microprogrammable computer utilizing concurrently operating processors |
US4179737A (en) * | 1977-12-23 | 1979-12-18 | Burroughs Corporation | Means and methods for providing greater speed and flexibility of microinstruction sequencing |
US4225920A (en) * | 1978-09-11 | 1980-09-30 | Burroughs Corporation | Operator independent template control architecture |
US4571673A (en) * | 1983-09-29 | 1986-02-18 | Tandem Computers Incorporated | Enhanced CPU microbranching architecture |
-
1985
- 1985-05-17 CA CA000481788A patent/CA1223969A/en not_active Expired
- 1985-09-13 EP EP85111564A patent/EP0181462B1/en not_active Expired - Lifetime
- 1985-09-13 DE DE8585111564T patent/DE3586842T2/de not_active Expired - Fee Related
- 1985-09-24 JP JP60208986A patent/JPS61110238A/ja active Granted
-
1987
- 1987-06-08 US US07/059,167 patent/US4803615A/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS524140A (en) * | 1975-06-28 | 1977-01-13 | Victor Co Of Japan Ltd | Data presentation system |
JPS5417620A (en) * | 1977-07-08 | 1979-02-09 | Matsushita Electric Ind Co Ltd | Solid pickup element |
JPS57189261A (en) * | 1981-05-18 | 1982-11-20 | Hitachi Ltd | Data processing device |
Also Published As
Publication number | Publication date |
---|---|
EP0181462B1 (en) | 1992-11-19 |
EP0181462A3 (en) | 1989-03-08 |
CA1223969A (en) | 1987-07-07 |
JPS61110238A (ja) | 1986-05-28 |
DE3586842T2 (de) | 1993-06-09 |
EP0181462A2 (en) | 1986-05-21 |
DE3586842D1 (de) | 1992-12-24 |
US4803615A (en) | 1989-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5150470A (en) | Data processing system with instruction queue having tags indicating outstanding data status | |
JP2539199B2 (ja) | デジタルプロセッサ制御装置 | |
EP0996057B1 (en) | Data processor with an instruction unit having a cache and a ROM | |
JP3120152B2 (ja) | コンピューターシステム | |
EP0401992B1 (en) | Method and apparatus for speeding branch instructions | |
US4811215A (en) | Instruction execution accelerator for a pipelined digital machine with virtual memory | |
US5075840A (en) | Tightly coupled multiprocessor instruction synchronization | |
JPH03116233A (ja) | データプロセッサの命令処理システム | |
JPS6161436B2 (ja) | ||
JPH03116235A (ja) | 分岐処理方法及び分岐処理装置 | |
JPH03116236A (ja) | 例外処理方法及び例外処理装置 | |
JPH09138778A (ja) | セマフォ命令用のセマフォ・バッファを用いた装置と方法 | |
JPH0682320B2 (ja) | データ処理装置 | |
JPH03233630A (ja) | 情報処理装置 | |
JPS6329292B2 (ja) | ||
US5737562A (en) | CPU pipeline having queuing stage to facilitate branch instructions | |
US7237096B1 (en) | Storing results of producer instructions to facilitate consumer instruction dependency tracking | |
US5850563A (en) | Processor and method for out-of-order completion of floating-point operations during load/store multiple operations | |
US20020129229A1 (en) | Microinstruction sequencer stack | |
US6735686B1 (en) | Data processing device including two instruction decoders for decoding branch instructions | |
JP4151497B2 (ja) | パイプライン処理装置 | |
JP3102399B2 (ja) | データ処理装置及び方法 | |
JP3668643B2 (ja) | 情報処理装置 | |
JPS63157235A (ja) | コンピユータ・システムの制御装置 | |
CN117742796A (zh) | 指令唤醒方法、装置以及设备 |