JPH0776924B2 - ディジタルコンピュータシステム - Google Patents
ディジタルコンピュータシステムInfo
- Publication number
- JPH0776924B2 JPH0776924B2 JP3096094A JP9609491A JPH0776924B2 JP H0776924 B2 JPH0776924 B2 JP H0776924B2 JP 3096094 A JP3096094 A JP 3096094A JP 9609491 A JP9609491 A JP 9609491A JP H0776924 B2 JPH0776924 B2 JP H0776924B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- parallel
- tag
- unit
- 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 - Lifetime
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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/38—Concurrent instruction execution, e.g. pipeline or 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
Description
【0001】
【産業上の利用分野】本発明はディジタルコンピュータ
およびディジタルデータプロセッサに係り、特に2つ以
上の命令を並列処理可能なディジタルコンピュータおよ
びデータプロセッサに関する。
およびディジタルデータプロセッサに係り、特に2つ以
上の命令を並列処理可能なディジタルコンピュータおよ
びデータプロセッサに関する。
【0002】
【従来の技術】命令を一度に1つずつ逐次実行する従来
のコンピュータの性能は、これまでに主として回路技術
の改良により、大きく改善されてきている。このような
ワン・アット・ア・タイム命令実行コンピュータは“ス
カラ”コンピュータまたはプロセッサと呼ばれることが
多い。回路技術がその限界に達するにつれ、コンピュー
タ設計者は性能を大きく改良する他の手段を検討しなけ
ればならない。
のコンピュータの性能は、これまでに主として回路技術
の改良により、大きく改善されてきている。このような
ワン・アット・ア・タイム命令実行コンピュータは“ス
カラ”コンピュータまたはプロセッサと呼ばれることが
多い。回路技術がその限界に達するにつれ、コンピュー
タ設計者は性能を大きく改良する他の手段を検討しなけ
ればならない。
【0003】最近、単一の命令ストリームから1つ以上
の命令を一度に実行することにより性能の改良を試みる
いわゆる“スーパースカラ”コンピュータが提案されて
いる。このようなスーパースカラコンピュータでは、所
定数の命令が並列に実行されてよいか否かを命令実行時
間に判定するのが普通である。このような判定は、命令
のオペレーションコードに、また隣接する命令間に存在
するデータ依存性に基づいてなされる。オペレーション
コードは、命令の各々が利用する特定のハードウェア要
素を決定し、一般には2つ以上の命令が同時に同じハー
ドウェア要素を利用することはできず、また前回の命令
の結果に依存する命令(データ依存性)を実行すること
はできない。このようなハードウェアおよびデータの依
存性は、幾つかの命令の組合わせの並列的な実施を不可
能にするものである。この場合、命令は非並列的にそれ
ら自身により実行される。したがって、当然のことなが
ら、スーパースカラコンピュータの性能は低下する。
の命令を一度に実行することにより性能の改良を試みる
いわゆる“スーパースカラ”コンピュータが提案されて
いる。このようなスーパースカラコンピュータでは、所
定数の命令が並列に実行されてよいか否かを命令実行時
間に判定するのが普通である。このような判定は、命令
のオペレーションコードに、また隣接する命令間に存在
するデータ依存性に基づいてなされる。オペレーション
コードは、命令の各々が利用する特定のハードウェア要
素を決定し、一般には2つ以上の命令が同時に同じハー
ドウェア要素を利用することはできず、また前回の命令
の結果に依存する命令(データ依存性)を実行すること
はできない。このようなハードウェアおよびデータの依
存性は、幾つかの命令の組合わせの並列的な実施を不可
能にするものである。この場合、命令は非並列的にそれ
ら自身により実行される。したがって、当然のことなが
ら、スーパースカラコンピュータの性能は低下する。
【0004】
【発明が解決しようとする課題】上記の提案されたスー
パースカラコンピュータの性能はある程度改良されてい
るが、また小形化が望まれるという欠点も有している。
ある場合には、どの命令が並列に実行できるかを命令実
行時間に判定するには、わずかではあるが認め得る時間
量を必要とし、この時間量は、これを他の正常なマシン
演算に重ねて簡単にマスクできないものである。このよ
うな欠点は、命令セットのアーキテクチュアが複雑にな
るにつれさらに顕著になる。また、上記の判定は、同じ
命令が第2のまたは他の時点で実行されるごとに再度全
体にわたって繰り返されなければならないという他の問
題点もある。
パースカラコンピュータの性能はある程度改良されてい
るが、また小形化が望まれるという欠点も有している。
ある場合には、どの命令が並列に実行できるかを命令実
行時間に判定するには、わずかではあるが認め得る時間
量を必要とし、この時間量は、これを他の正常なマシン
演算に重ねて簡単にマスクできないものである。このよ
うな欠点は、命令セットのアーキテクチュアが複雑にな
るにつれさらに顕著になる。また、上記の判定は、同じ
命令が第2のまたは他の時点で実行されるごとに再度全
体にわたって繰り返されなければならないという他の問
題点もある。
【0005】したがって、本発明の目的は上記従来の問
題点を解消し、2つ以上の命令を並列処理可能なディジ
タルコンピュータおよびデータプロセッサを提供するこ
とにある。
題点を解消し、2つ以上の命令を並列処理可能なディジ
タルコンピュータおよびデータプロセッサを提供するこ
とにある。
【0006】
【課題を解決するための手段】本発明に係るスカラブル
複合命令セットマシン(Scalable Compo
und Instruction Set Machi
ne(SCISM))の寄与の1つは、並列実行判定を
実行時間に行わないことにある。判定は、全命令処理プ
ロセスの初期の時点で行う。例えば、命令バッファまた
は命令スタックを有するマシンの命令バッファの前方で
行う。他の例では、キャッシュ・ユニットを通して命令
を流すマシンの命令キャッシュの前方で行う。
複合命令セットマシン(Scalable Compo
und Instruction Set Machi
ne(SCISM))の寄与の1つは、並列実行判定を
実行時間に行わないことにある。判定は、全命令処理プ
ロセスの初期の時点で行う。例えば、命令バッファまた
は命令スタックを有するマシンの命令バッファの前方で
行う。他の例では、キャッシュ・ユニットを通して命令
を流すマシンの命令キャッシュの前方で行う。
【0007】SCISMマシンの他の寄与は、並列実行
判定の結果を記録し、このような結果が、同じ命令が第
2または他の時刻に使用される場合に使用できるように
することにある。
判定の結果を記録し、このような結果が、同じ命令が第
2または他の時刻に使用される場合に使用できるように
することにある。
【0008】本発明の一実施例においては、並列実行判
定の記録には、命令ストリームの個々の命令に付加また
は挿入されるタグを生成することにより実現される。こ
れらのタグは、命令が並列に実行できるか否か、または
これらの命令が一度に1つ実行される必要があるか否か
を示すものである。この命令タグ付加プロセスは、ここ
では「複合化(compounding)」と呼ばれ
る。このプロセスは、実際には、並列処理のために、2
つ以上の個々の命令を単一の複合命令に結合するために
用いられる。
定の記録には、命令ストリームの個々の命令に付加また
は挿入されるタグを生成することにより実現される。こ
れらのタグは、命令が並列に実行できるか否か、または
これらの命令が一度に1つ実行される必要があるか否か
を示すものである。この命令タグ付加プロセスは、ここ
では「複合化(compounding)」と呼ばれ
る。このプロセスは、実際には、並列処理のために、2
つ以上の個々の命令を単一の複合命令に結合するために
用いられる。
【0009】本発明の特に好適な実施例においては、コ
ンピュータは、その上位記憶ユニットからその命令実行
ユニットへの途中でマシン命令を一時記憶するキャッシ
ュ記憶機構を備えるものであり、複合化すなわち命令タ
グ付加プロセスは、命令および複合化タグの両者がキャ
ッシュ記憶機構に記憶されるように、上位記憶ユニット
とキャッシュ記憶機構との途中で実施される。既知のよ
うに、適切に設計されたキャッシュ記憶機構の、それ自
身での、およびそれ自身の使用により、コンピュータの
全体にわたる性能が改良される。さらに、複合化タグの
キャッシュ記憶機構への記憶により、関係する命令がキ
ャッシュ記憶機構に残っている限りはタグを再び反復使
用できるようになる。既知のように、命令は一度以上使
用されるのに十分な長い時間にわたってキャッシュに記
憶されることが多い。
ンピュータは、その上位記憶ユニットからその命令実行
ユニットへの途中でマシン命令を一時記憶するキャッシ
ュ記憶機構を備えるものであり、複合化すなわち命令タ
グ付加プロセスは、命令および複合化タグの両者がキャ
ッシュ記憶機構に記憶されるように、上位記憶ユニット
とキャッシュ記憶機構との途中で実施される。既知のよ
うに、適切に設計されたキャッシュ記憶機構の、それ自
身での、およびそれ自身の使用により、コンピュータの
全体にわたる性能が改良される。さらに、複合化タグの
キャッシュ記憶機構への記憶により、関係する命令がキ
ャッシュ記憶機構に残っている限りはタグを再び反復使
用できるようになる。既知のように、命令は一度以上使
用されるのに十分な長い時間にわたってキャッシュに記
憶されることが多い。
【0010】本発明を、その他の利点と特徴と共に十分
理解するために、添付図面によりなされる以下の説明が
与えられ、本発明の範囲は添付した特許請求の範囲に示
される。
理解するために、添付図面によりなされる以下の説明が
与えられ、本発明の範囲は添付した特許請求の範囲に示
される。
【0011】
【実施例】図1の実施例の説明 図1は、本発明により構成されたディジタルコンピュー
タシステムまたはディジタルデータ処理システムの要部
の代表的な実施例を示すブロック図である。このコンピ
ュータシステムは、2つ以上の命令を並列に処理するこ
とができる。また、このコンピュータシステムは、処理
されるべき命令とデータを記憶する第1記憶機構を備え
ている。この記憶機構は上位記憶装置10として示して
ある。この記憶装置10は大容量低速度記憶機構であ
り、例えば大容量システムの記憶ユニットまたは包括的
・階層構造記憶システムの下位部分などが用いられる。
タシステムまたはディジタルデータ処理システムの要部
の代表的な実施例を示すブロック図である。このコンピ
ュータシステムは、2つ以上の命令を並列に処理するこ
とができる。また、このコンピュータシステムは、処理
されるべき命令とデータを記憶する第1記憶機構を備え
ている。この記憶機構は上位記憶装置10として示して
ある。この記憶装置10は大容量低速度記憶機構であ
り、例えば大容量システムの記憶ユニットまたは包括的
・階層構造記憶システムの下位部分などが用いられる。
【0012】図1のコンピュータシステムは、さらに上
位記憶装置10から命令を受けると共に、これらの命令
のどれが互いに並列に処理されてよいかを示すタグフィ
ールドをこれらの命令に関係させる命令複合化機構を備
えている。この命令複合化機構は、命令複合化ユニット
11により代表される。この命令複合化ユニット11
は、入力命令を解析し、どの命令が並列に処理されてよ
いかを決定するものである。さらに、命令複合化ユニッ
ト11は、これらの解析された命令に対して、どの命令
が互いに並列に処理されてよいか、またどの命令が互い
に並列に処理されてはいけないかを示すタグ情報または
タグフィールドを発生する。
位記憶装置10から命令を受けると共に、これらの命令
のどれが互いに並列に処理されてよいかを示すタグフィ
ールドをこれらの命令に関係させる命令複合化機構を備
えている。この命令複合化機構は、命令複合化ユニット
11により代表される。この命令複合化ユニット11
は、入力命令を解析し、どの命令が並列に処理されてよ
いかを決定するものである。さらに、命令複合化ユニッ
ト11は、これらの解析された命令に対して、どの命令
が互いに並列に処理されてよいか、またどの命令が互い
に並列に処理されてはいけないかを示すタグ情報または
タグフィールドを発生する。
【0013】図1のシステムは、さらに、命令複合化機
構11に結合されて上記解析された命令およびそれらに
係るタグフィールドを受けると共に記憶する第2記憶機
構を備えている。この第2のまたは他の記憶機構は、複
合命令キャッシュ12により代表される。このキャッシ
ュ12は、低速記憶機構10をアクセスしなければなら
ない頻度を減らすことによりコンピュータシステムの性
能率を改良するために一般に使用される種類の小容量高
速度記憶機構である。
構11に結合されて上記解析された命令およびそれらに
係るタグフィールドを受けると共に記憶する第2記憶機
構を備えている。この第2のまたは他の記憶機構は、複
合命令キャッシュ12により代表される。このキャッシ
ュ12は、低速記憶機構10をアクセスしなければなら
ない頻度を減らすことによりコンピュータシステムの性
能率を改良するために一般に使用される種類の小容量高
速度記憶機構である。
【0014】図1のシステムは、さらに、互いに並列動
作する複数の機能命令処理ユニットを備えている。これ
らの機能命令処理ユニットは、機能ユニット13,1
4,15・・・により代表される。これらの機能ユニッ
ト13〜15は、同時的に互いに並列に動作し、またそ
れぞれのユニットは、それ自身で1種類以上のマシンレ
ベル命令を処理することができる。使用できる機能ユニ
ットとしては、例えば、汎用算術論理ユニット(ari
thmetic and logicunit:AL
U),アドレス発生形ALU,データ依存性解消AL
U,分岐命令処理ユニット,データシフトユニット,浮
動小数点処理ユニットなどがある。或るコンピュータシ
ステムは、これらの種類の機能ユニットを2台以上備え
ることができる。例えば、或るコンピュータシステム
は、2台以上の汎用ALUを備えることができる。さら
に、或るコンピュータシステムは、これらの異なる種類
の機能ユニットの各々および全てを備える必要はない。
機能ユニットの特定の構成は、考慮される特定のコンピ
ュータシステムの特性に依存する。
作する複数の機能命令処理ユニットを備えている。これ
らの機能命令処理ユニットは、機能ユニット13,1
4,15・・・により代表される。これらの機能ユニッ
ト13〜15は、同時的に互いに並列に動作し、またそ
れぞれのユニットは、それ自身で1種類以上のマシンレ
ベル命令を処理することができる。使用できる機能ユニ
ットとしては、例えば、汎用算術論理ユニット(ari
thmetic and logicunit:AL
U),アドレス発生形ALU,データ依存性解消AL
U,分岐命令処理ユニット,データシフトユニット,浮
動小数点処理ユニットなどがある。或るコンピュータシ
ステムは、これらの種類の機能ユニットを2台以上備え
ることができる。例えば、或るコンピュータシステム
は、2台以上の汎用ALUを備えることができる。さら
に、或るコンピュータシステムは、これらの異なる種類
の機能ユニットの各々および全てを備える必要はない。
機能ユニットの特定の構成は、考慮される特定のコンピ
ュータシステムの特性に依存する。
【0015】図1のコンピュータシステムは、複合命令
キャッシュ12に結合されて、それに記憶された隣接命
令を、機能命令処理ユニット13〜15の異なるものに
上記命令が並列処理されてよいことを命令タグフィール
ドが示したとき供給する、命令フェッチ・イシュ(fe
tch/issue)機構を備えている。この機構は、
フェッチ・イシュ・ユニット16により代表される。こ
の命令フェッチ・イシュ・ユニット16は、キャッシュ
12から命令を取り出し、それらのタグフィールドおよ
びオペレーションコードフィールドを検討し、さらにこ
のような検討に基づいて上記命令を機能ユニット13〜
15の適当なものに送出する。
キャッシュ12に結合されて、それに記憶された隣接命
令を、機能命令処理ユニット13〜15の異なるものに
上記命令が並列処理されてよいことを命令タグフィール
ドが示したとき供給する、命令フェッチ・イシュ(fe
tch/issue)機構を備えている。この機構は、
フェッチ・イシュ・ユニット16により代表される。こ
の命令フェッチ・イシュ・ユニット16は、キャッシュ
12から命令を取り出し、それらのタグフィールドおよ
びオペレーションコードフィールドを検討し、さらにこ
のような検討に基づいて上記命令を機能ユニット13〜
15の適当なものに送出する。
【0016】所望の命令が複合命令キャッシュ12にあ
るときは、適切なアドレスがキャッシュ12に送出さ
れ、それから所望の命令を取り出す。これは「キャッシ
ュ・ヒット」と呼ばれる。要求された命令がキャッシュ
12にないときは、この命令は上位記憶装置10から取
り出され、キャッシュ12に与えられなければならな
い。これは「キャッシュ・ミス]と呼ばれる。このミス
が生じると、要求された命令のアドレスは上位記憶装置
10に送出される。これに応じて上位記憶装置10は、
要求された命令を含む一連の命令の転送または読出しを
開始する。これらの命令は、命令複合化ユニット11の
入力に転送され、そこでこれらの命令は解析され、各々
の命令に対する適切なタグフィールドが生成される。そ
の後、タグ付き命令は複合命令キャッシュ12に供給,
記憶され、必要に応じて機能ユニット13,14,15
によるその後の使用に供される。
るときは、適切なアドレスがキャッシュ12に送出さ
れ、それから所望の命令を取り出す。これは「キャッシ
ュ・ヒット」と呼ばれる。要求された命令がキャッシュ
12にないときは、この命令は上位記憶装置10から取
り出され、キャッシュ12に与えられなければならな
い。これは「キャッシュ・ミス]と呼ばれる。このミス
が生じると、要求された命令のアドレスは上位記憶装置
10に送出される。これに応じて上位記憶装置10は、
要求された命令を含む一連の命令の転送または読出しを
開始する。これらの命令は、命令複合化ユニット11の
入力に転送され、そこでこれらの命令は解析され、各々
の命令に対する適切なタグフィールドが生成される。そ
の後、タグ付き命令は複合命令キャッシュ12に供給,
記憶され、必要に応じて機能ユニット13,14,15
によるその後の使用に供される。
【0017】命令複合化ユニット11で行われる命令解
析には、ある比較的少量の時間が要求される。しかし、
この命令複合化解析は、命令キャッシュ・ミスが生じた
ときにのみ行われ、したがって比較的まれに行われる。
析には、ある比較的少量の時間が要求される。しかし、
この命令複合化解析は、命令キャッシュ・ミスが生じた
ときにのみ行われ、したがって比較的まれに行われる。
【0018】図2は、複合化されたまたはタグ付き命令
が図1の命令複合化ユニット11の出力に現れたときの
それらの命令の流れの一部を示す図である。図からわか
るように、各々の命令(INSTR)は、命令複合化ユ
ニット11によりそれに付加されたタグフィールド(T
AG)を有している。図2に示したようなタグ付き命令
は、複合命令キャッシュ12に記憶される。キャッシュ
12に記憶されたタグ付き命令は、必要に応じて、命令
フェッチ・イシュ・ユニット16により取り出される。
タグ付き命令がフェッチ・イシュ・ユニット16により
受け取られると、それらのタグフィールドは、それらが
並列に処理されてよいか否かを決定するために検討さ
れ、またそれらのオペレーションコードフィールドは利
用できる機能ユニットのどれがそれらの処理に最も適し
ているかを決定するために検討される。タグフィールド
が2つ以上の命令が並列処理に適していることを示した
ときは、それらの命令はそれらのオペレーションコード
フィールドのコーディングに従って機能ユニットの適切
なものに送出される。次に、このような命令はそれぞれ
の機能ユニットにより互いに同時に処理される。
が図1の命令複合化ユニット11の出力に現れたときの
それらの命令の流れの一部を示す図である。図からわか
るように、各々の命令(INSTR)は、命令複合化ユ
ニット11によりそれに付加されたタグフィールド(T
AG)を有している。図2に示したようなタグ付き命令
は、複合命令キャッシュ12に記憶される。キャッシュ
12に記憶されたタグ付き命令は、必要に応じて、命令
フェッチ・イシュ・ユニット16により取り出される。
タグ付き命令がフェッチ・イシュ・ユニット16により
受け取られると、それらのタグフィールドは、それらが
並列に処理されてよいか否かを決定するために検討さ
れ、またそれらのオペレーションコードフィールドは利
用できる機能ユニットのどれがそれらの処理に最も適し
ているかを決定するために検討される。タグフィールド
が2つ以上の命令が並列処理に適していることを示した
ときは、それらの命令はそれらのオペレーションコード
フィールドのコーディングに従って機能ユニットの適切
なものに送出される。次に、このような命令はそれぞれ
の機能ユニットにより互いに同時に処理される。
【0019】並列処理に適していない命令が生じたとき
は、その命令はそのオペレーションコードにより決定さ
れる適切な機能ユニットに送られ、選択された機能ユニ
ットにより単独でそれ自身により処理される。
は、その命令はそのオペレーションコードにより決定さ
れる適切な機能ユニットに送られ、選択された機能ユニ
ットにより単独でそれ自身により処理される。
【0020】複数の命令が常に並列に処理されている最
も完全な場合には、コンピュータシステムの命令実行速
度は、命令が一度に1つ実行される場合のN倍になる。
ただし、Nは並列に処理されているグループの命令数で
ある。
も完全な場合には、コンピュータシステムの命令実行速
度は、命令が一度に1つ実行される場合のN倍になる。
ただし、Nは並列に処理されているグループの命令数で
ある。
【0021】図3の命令複合化ユニットの説明 図3は、本発明に従って構成された命令複合化ユニット
の代表的な実施例の内部構成をさらに詳細に示すブロッ
ク図である。この命令複合化ユニットは、図1の命令複
合化ユニット11として使用するのに適したものであ
る。図3の命令複合化ユニット20は一度に最大2つの
命令が並列に処理され得るように設計されている。この
場合は、1ビット・タグフィールドが使用される。タグ
ビット値の“1”は、命令が“第1”の命令であること
を意味する。タグビット値“0”は、命令が“第2”の
命令であり、先行する第1命令と並列に実行されること
を意味する。1のタグビット値を有する命令は、次の命
令のタグビット値に依存して、それ自身により実行され
るかまたは次の命令と同時にかつ並列に実行される。
の代表的な実施例の内部構成をさらに詳細に示すブロッ
ク図である。この命令複合化ユニットは、図1の命令複
合化ユニット11として使用するのに適したものであ
る。図3の命令複合化ユニット20は一度に最大2つの
命令が並列に処理され得るように設計されている。この
場合は、1ビット・タグフィールドが使用される。タグ
ビット値の“1”は、命令が“第1”の命令であること
を意味する。タグビット値“0”は、命令が“第2”の
命令であり、先行する第1命令と並列に実行されること
を意味する。1のタグビット値を有する命令は、次の命
令のタグビット値に依存して、それ自身により実行され
るかまたは次の命令と同時にかつ並列に実行される。
【0022】1のタグビット値を有する命令と、0のタ
グビット値を有する次の命令との各々の対は、並列実行
のために複合命令を形成し、即ち、このような対の命令
は互いに並列に処理される。連続する2つの命令に対す
るタグビットがそれぞれ1の値を持つときは、これらの
命令の第1のものはそれ自身により非並列的に実行され
る。最悪の場合には、シーケンスの全ての命令は1のタ
グビット値を有することになる。このような最悪の場合
には、命令の全ては一度に1つずつ非並列的に実行され
る。
グビット値を有する次の命令との各々の対は、並列実行
のために複合命令を形成し、即ち、このような対の命令
は互いに並列に処理される。連続する2つの命令に対す
るタグビットがそれぞれ1の値を持つときは、これらの
命令の第1のものはそれ自身により非並列的に実行され
る。最悪の場合には、シーケンスの全ての命令は1のタ
グビット値を有することになる。このような最悪の場合
には、命令の全ては一度に1つずつ非並列的に実行され
る。
【0023】図3の命令複合化ユニット20は、上位記
憶ユニット10から複数の逐次命令を受けるための複数
命令レジスタ21を備えている。命令複合化ユニット2
0はさらに、複数の規則に基づく命令解析機構を備えて
いる。各々のこのような命令解析機構は、命令レジスタ
21の異なる対の並列命令を解析し、さらにその対の2
つの命令が並列に処理されてよいか否かを示す複合可能
信号を発生する。図3には、複数の複合解析ユニット2
2〜25が示してある。これらの複合解析ユニット22
〜25の各々は、上述した命令解析機構を2つ備えてい
る。従って、これらの解析ユニット22〜25の各々
は、2つの複合可能信号を発生する。例えば、第1の複
合解析ユニット22は、命令0および1が並列に処理さ
れてよいか否かを示す第1の複合可能信号M01を発生
する。この複合解析ユニットはさらに、命令1および2
が並列に処理されてよいか否かを示す第2の複合可能信
号M12を発生する。
憶ユニット10から複数の逐次命令を受けるための複数
命令レジスタ21を備えている。命令複合化ユニット2
0はさらに、複数の規則に基づく命令解析機構を備えて
いる。各々のこのような命令解析機構は、命令レジスタ
21の異なる対の並列命令を解析し、さらにその対の2
つの命令が並列に処理されてよいか否かを示す複合可能
信号を発生する。図3には、複数の複合解析ユニット2
2〜25が示してある。これらの複合解析ユニット22
〜25の各々は、上述した命令解析機構を2つ備えてい
る。従って、これらの解析ユニット22〜25の各々
は、2つの複合可能信号を発生する。例えば、第1の複
合解析ユニット22は、命令0および1が並列に処理さ
れてよいか否かを示す第1の複合可能信号M01を発生
する。この複合解析ユニットはさらに、命令1および2
が並列に処理されてよいか否かを示す第2の複合可能信
号M12を発生する。
【0024】同様にして、第2の複合解析ユニット23
は、命令2および3が並列に処理されてよいか否かを示
す第1の複合可能信号M23と、命令3および4が並列
に処理されてよいか否かを示す第2の複合可能信号M3
4とを発生する。第3の複合解析ユニット24は、命令
4および5が並列に処理されてよいか否かを示す第1の
複合可能信号M45と、命令5および6が並列に処理さ
れてよいか否かを示す第2の複合可能信号M56とを発
生する。第4の複合解析ユニット25は、命令6および
7が並列に処理されてよいか否かを示す第1の複合可能
信号M67と、命令7および8が並列に処理されてよい
か否かを示す第2の複合可能信号M78とを発生する。
は、命令2および3が並列に処理されてよいか否かを示
す第1の複合可能信号M23と、命令3および4が並列
に処理されてよいか否かを示す第2の複合可能信号M3
4とを発生する。第3の複合解析ユニット24は、命令
4および5が並列に処理されてよいか否かを示す第1の
複合可能信号M45と、命令5および6が並列に処理さ
れてよいか否かを示す第2の複合可能信号M56とを発
生する。第4の複合解析ユニット25は、命令6および
7が並列に処理されてよいか否かを示す第1の複合可能
信号M67と、命令7および8が並列に処理されてよい
か否かを示す第2の複合可能信号M78とを発生する。
【0025】命令複合化ユニット20はさらに、解析ユ
ニット22〜25の出力に現れる複合可能信号に応じて
命令レジスタ21の異なる命令に対して個別のタグフィ
ールドを発生するタグ発生機構26を備えている。これ
らのタグフィールドT0,T1,T2などは命令自身と
同様にタグ付き命令レジスタ27に供給され、命令は入
力命令レジスタ21から得られる。このようにして、複
合化ユニット出力レジスタ27には、命令0に対するタ
グフィールドT0および命令1に対するタグフィールド
T1などが与えられる。
ニット22〜25の出力に現れる複合可能信号に応じて
命令レジスタ21の異なる命令に対して個別のタグフィ
ールドを発生するタグ発生機構26を備えている。これ
らのタグフィールドT0,T1,T2などは命令自身と
同様にタグ付き命令レジスタ27に供給され、命令は入
力命令レジスタ21から得られる。このようにして、複
合化ユニット出力レジスタ27には、命令0に対するタ
グフィールドT0および命令1に対するタグフィールド
T1などが与えられる。
【0026】本実施例においては、各々のタグフィール
ドT0,T1,T2・・・は、単一2進ビットからな
る。“1”のタグビット値は、これが付加される直ぐ次
の命令が“第1”命令であることを示す。“0”のタグ
ビット値は、直ぐ次の命令が“第2”命令であることを
示す。0のタグビット値を有する命令が続く、1のタグ
ビット値を有する命令は、これらの2つの命令が互いに
並列に実行されることを示している。複合化ユニット出
力レジスタ27のタグ付き命令は、図1の複合命令キャ
ッシュ12の入力に供給され、またこのような複合命令
キャッシュ12に記憶される。
ドT0,T1,T2・・・は、単一2進ビットからな
る。“1”のタグビット値は、これが付加される直ぐ次
の命令が“第1”命令であることを示す。“0”のタグ
ビット値は、直ぐ次の命令が“第2”命令であることを
示す。0のタグビット値を有する命令が続く、1のタグ
ビット値を有する命令は、これらの2つの命令が互いに
並列に実行されることを示している。複合化ユニット出
力レジスタ27のタグ付き命令は、図1の複合命令キャ
ッシュ12の入力に供給され、またこのような複合命令
キャッシュ12に記憶される。
【0027】図3に示したレジスタハードウェアの量
は、複合命令キャッシュに直接複合命令を記憶すること
により低減させることができることに注目するべきであ
る。
は、複合命令キャッシュに直接複合命令を記憶すること
により低減させることができることに注目するべきであ
る。
【0028】図4には、図3の複合解析ユニット22の
内部構成がさらに詳細に示してある。その他の複合解析
ユニット23〜25も同様に構成されている。図4に示
すように、複合解析ユニット22は、命令0のオペレー
ションコードおよび命令1のオペレーションコードを検
討し、さらにこれらの2つのオペレーションコードが並
列実行のためにコンパティブルか否かを決定する命令コ
ンパティビリティ論理30を備えている。この論理30
は、オペレーションコードのどの対が並列実行のために
コンパティブルかを選択する所定の規則に従って構成さ
れる。特に、この論理30は、問題のコンピュータシス
テムに使用される特定のハードウェア構成において、ど
の形の命令が並列実行のためにコンパティブルかを定め
る規則を実施する論理回路を備えている。命令0および
1に対するオペレーションコードがコンパティブルのと
きは、論理30は2進1レベル信号を発生する。コンパ
ティブルでないときは、論理30はその出力ラインに2
進0値を発生する。
内部構成がさらに詳細に示してある。その他の複合解析
ユニット23〜25も同様に構成されている。図4に示
すように、複合解析ユニット22は、命令0のオペレー
ションコードおよび命令1のオペレーションコードを検
討し、さらにこれらの2つのオペレーションコードが並
列実行のためにコンパティブルか否かを決定する命令コ
ンパティビリティ論理30を備えている。この論理30
は、オペレーションコードのどの対が並列実行のために
コンパティブルかを選択する所定の規則に従って構成さ
れる。特に、この論理30は、問題のコンピュータシス
テムに使用される特定のハードウェア構成において、ど
の形の命令が並列実行のためにコンパティブルかを定め
る規則を実施する論理回路を備えている。命令0および
1に対するオペレーションコードがコンパティブルのと
きは、論理30は2進1レベル信号を発生する。コンパ
ティブルでないときは、論理30はその出力ラインに2
進0値を発生する。
【0029】複合解析ユニット22はさらに、命令1お
よび2の命令コードを検討し、これらの命令が並列実行
に対してコンパティブルか否かを決定する第2の命令コ
ンパティビリティ論理31を備えている。論理31は、
命令1および2の場合に対して、オペレーションコード
のどの対が並列実行のためにコンパティブルかを選択す
る、論理30に対して使用されたものと同じ、所定の規
則に従って論理30と同様に構成される。従って、論理
31は、どの形の命令が並列実行に対してコンパティブ
ルかを定める規則を実施する論理回路を備えており、こ
の規則は論理30に使用されるものと同じである。命令
1および2に対するオペレーションコードがコンパティ
ブルのときは、論理31は2進1レベル出力が発生す
る。そうでないときは、論理31は2進0レベル出力を
発生する。
よび2の命令コードを検討し、これらの命令が並列実行
に対してコンパティブルか否かを決定する第2の命令コ
ンパティビリティ論理31を備えている。論理31は、
命令1および2の場合に対して、オペレーションコード
のどの対が並列実行のためにコンパティブルかを選択す
る、論理30に対して使用されたものと同じ、所定の規
則に従って論理30と同様に構成される。従って、論理
31は、どの形の命令が並列実行に対してコンパティブ
ルかを定める規則を実施する論理回路を備えており、こ
の規則は論理30に使用されるものと同じである。命令
1および2に対するオペレーションコードがコンパティ
ブルのときは、論理31は2進1レベル出力が発生す
る。そうでないときは、論理31は2進0レベル出力を
発生する。
【0030】複合解析ユニット22は、命令0および1
のR1およびR2フィールドにより示された汎用レジス
タの使用時の対立を検出する第1のレジスタ依存性論理
32を備えている。これらの汎用レジスタについては、
後に詳細に説明する。特に、依存性論理32は、第2命
令(命令1)が処理命令(命令0)の特性により得られ
る結果を使用するのに必要なデータ依存性状態の発生を
検出するように構成されるとよい。この場合、第2命令
は依存性解消ハードウェアにより実行され、従って第1
命令と並列に実行され得るか、または第2命令の実行は
先行する命令の実行の完了を待機しなければならず、従
って先行する命令と並列に実行され得ないのいずれかで
ある。(この種の幾つかのデータ依存性を解消する方法
については後に説明する。)命令0および1の並列実行
を阻止するレジスタ依存性が存在しないときは、論理3
2の出力ラインは1の2進値が与えられる。
のR1およびR2フィールドにより示された汎用レジス
タの使用時の対立を検出する第1のレジスタ依存性論理
32を備えている。これらの汎用レジスタについては、
後に詳細に説明する。特に、依存性論理32は、第2命
令(命令1)が処理命令(命令0)の特性により得られ
る結果を使用するのに必要なデータ依存性状態の発生を
検出するように構成されるとよい。この場合、第2命令
は依存性解消ハードウェアにより実行され、従って第1
命令と並列に実行され得るか、または第2命令の実行は
先行する命令の実行の完了を待機しなければならず、従
って先行する命令と並列に実行され得ないのいずれかで
ある。(この種の幾つかのデータ依存性を解消する方法
については後に説明する。)命令0および1の並列実行
を阻止するレジスタ依存性が存在しないときは、論理3
2の出力ラインは1の2進値が与えられる。
【0031】複合解析ユニット22は更に、命令1およ
び2のR1およびR2フィールドにより示される汎用レ
ジスタの使用時の対立を検出する第2のレジスタ依存性
論理33を備えている。この論理33は既に説明した論
理32と同じ構成であり、レジスタ依存性が存在しない
かまたはデータ依存性解消ハードウェアによりレジスタ
依存性が解消され得るときは2進1レベル出力を発生
し、さもなければ2進0レベル出力を発生する。
び2のR1およびR2フィールドにより示される汎用レ
ジスタの使用時の対立を検出する第2のレジスタ依存性
論理33を備えている。この論理33は既に説明した論
理32と同じ構成であり、レジスタ依存性が存在しない
かまたはデータ依存性解消ハードウェアによりレジスタ
依存性が解消され得るときは2進1レベル出力を発生
し、さもなければ2進0レベル出力を発生する。
【0032】命令コンパティビリティ論理30およびレ
ジスタ依存性論理32からの出力ラインはAND回路3
4の2つの入力に接続される。AND回路34の出力ラ
インは、問題の2つのオペレーションコードがコンパテ
ィブルであり、レジスタ依存性が存在しないときは2進
1の値を有する。このAND回路34の出力ライン上の
2進1値は、問題の2つの命令がコンパティブルであ
り、即ち並列に実行可能であることを示している。一
方、AND回路34の出力ラインが0の2進値を持つと
きは、2つの命令は複合可能ではない。このようにし
て、AND回路34の出力ライン上には、命令0と1が
並列処理されてよいか否かを示す第1複合可能信号M0
1が発生される。このM01信号は、タグ発生器26に
供給される。
ジスタ依存性論理32からの出力ラインはAND回路3
4の2つの入力に接続される。AND回路34の出力ラ
インは、問題の2つのオペレーションコードがコンパテ
ィブルであり、レジスタ依存性が存在しないときは2進
1の値を有する。このAND回路34の出力ライン上の
2進1値は、問題の2つの命令がコンパティブルであ
り、即ち並列に実行可能であることを示している。一
方、AND回路34の出力ラインが0の2進値を持つと
きは、2つの命令は複合可能ではない。このようにし
て、AND回路34の出力ライン上には、命令0と1が
並列処理されてよいか否かを示す第1複合可能信号M0
1が発生される。このM01信号は、タグ発生器26に
供給される。
【0033】第2のコンパティビリティ論理31および
第2の依存性論理33からの出力ラインは、AND回路
35の2つの入力に接続される。AND回路35は、問
題の2つのオペレーションコード(命令1および2に対
するオペレーションコード)がコンパティブルであり、
また命令1および2に対するレジスタ依存性あるいはデ
ータ依存性解消ハードウェアにより実行できるレジスタ
依存性が存在しないときは、その出力ライン上に1の2
進値を有する第2複合可能信号M12を発生する。さも
なければ、AND回路35の出力ラインは、0の2進値
を有する。AND回路35の出力ラインは、タグ発生器
26の第2入力に接続されている。
第2の依存性論理33からの出力ラインは、AND回路
35の2つの入力に接続される。AND回路35は、問
題の2つのオペレーションコード(命令1および2に対
するオペレーションコード)がコンパティブルであり、
また命令1および2に対するレジスタ依存性あるいはデ
ータ依存性解消ハードウェアにより実行できるレジスタ
依存性が存在しないときは、その出力ライン上に1の2
進値を有する第2複合可能信号M12を発生する。さも
なければ、AND回路35の出力ラインは、0の2進値
を有する。AND回路35の出力ラインは、タグ発生器
26の第2入力に接続されている。
【0034】図3に示したその他の複合解析ユニット2
3〜25も同様に、第1複合解析ユニット22に対して
図4に示したものと同様の内部構成をなしている。
3〜25も同様に、第1複合解析ユニット22に対して
図4に示したものと同様の内部構成をなしている。
【0035】ここで図5を参照すると、複合解析ユニッ
ト22および最初の3つのタグTAG0,TAG1,T
AG2の発生に使用されるタグ発生器26の要部の実施
に使用できる論理回路例が示してある。この図5の例に
対しては、カテゴリAおよびカテゴリBの2つのカテゴ
リが存在すると仮定される。これらの命令カテゴリを複
合化する規則は次のように仮定される。
ト22および最初の3つのタグTAG0,TAG1,T
AG2の発生に使用されるタグ発生器26の要部の実施
に使用できる論理回路例が示してある。この図5の例に
対しては、カテゴリAおよびカテゴリBの2つのカテゴ
リが存在すると仮定される。これらの命令カテゴリを複
合化する規則は次のように仮定される。
【0036】(1)Aは常にAと複合できる。 (2)Aは決してBと複合できない。 (3)Bは決してBと複合できない。 (4)Bは常にAと複合できる。 (5)規則(4)は規則(1)に対して優先する。 ただし、これらの規則は命令の発生順序に関係する。
【0037】さらに、これらの規則は、それらが観測さ
れるときレジスタ依存性の問題は存在しないということ
が仮定される。その理由は、これらの規則が、何らかの
インタロックがある場合にこのようなインタロックは常
にデータ依存性解消ハードウェアにより実行可能である
ことを暗に示していることによる。即ち、図5の例に対
しては図4のレジスタ依存性論理32,33は必要とさ
れないことが仮定される。このような場合は、AND回
路34,35も必要とされず、論理30の出力はM01
信号になり、論理31の出力はM12信号になる。
れるときレジスタ依存性の問題は存在しないということ
が仮定される。その理由は、これらの規則が、何らかの
インタロックがある場合にこのようなインタロックは常
にデータ依存性解消ハードウェアにより実行可能である
ことを暗に示していることによる。即ち、図5の例に対
しては図4のレジスタ依存性論理32,33は必要とさ
れないことが仮定される。このような場合は、AND回
路34,35も必要とされず、論理30の出力はM01
信号になり、論理31の出力はM12信号になる。
【0038】これらの仮定に対して、図5は図4の命令
コンパティビリティ論理30および命令コンパティビリ
ティ論理31に使用できる内部論理回路を示した図であ
る。図5に示したように、命令コンパティビリティ論理
30は、デコーダ40,41、AND回路42,43、
およびOR回路44を備えている。第2命令コンパティ
ビリティ論理31は、デコーダ41,45、AND回路
46,47、およびOR回路48を備えている。中間の
デコーダ41は、両論理30および31により共有され
る。
コンパティビリティ論理30および命令コンパティビリ
ティ論理31に使用できる内部論理回路を示した図であ
る。図5に示したように、命令コンパティビリティ論理
30は、デコーダ40,41、AND回路42,43、
およびOR回路44を備えている。第2命令コンパティ
ビリティ論理31は、デコーダ41,45、AND回路
46,47、およびOR回路48を備えている。中間の
デコーダ41は、両論理30および31により共有され
る。
【0039】第1論理30は、命令0と1のオペレーシ
ョンコードOP0およびOP1を検討して、それらの並
列実行動作に対するコンパティビリティを決定する。こ
れは上記の規則(1)〜(4)に従ってなされる。デコ
ーダ40は第1命令のオペレーションコードを参照し、
それがカテゴリAのオペレーションコードのときは、デ
コーダ40のA出力ラインは1レベルにセットされる。
もしOP0がカテゴリBのオペレーションコードのとき
は、デコーダ40のB出力ラインは1レベルにセットさ
れる。もしOP0がカテゴリAにもカテゴリBにも属さ
ないときは、デコーダ40の両出力は2進0レベルにあ
る。第2デコーダ41は、第2オペレーションコードO
P1に対して同様の種類のデコードを行う。
ョンコードOP0およびOP1を検討して、それらの並
列実行動作に対するコンパティビリティを決定する。こ
れは上記の規則(1)〜(4)に従ってなされる。デコ
ーダ40は第1命令のオペレーションコードを参照し、
それがカテゴリAのオペレーションコードのときは、デ
コーダ40のA出力ラインは1レベルにセットされる。
もしOP0がカテゴリBのオペレーションコードのとき
は、デコーダ40のB出力ラインは1レベルにセットさ
れる。もしOP0がカテゴリAにもカテゴリBにも属さ
ないときは、デコーダ40の両出力は2進0レベルにあ
る。第2デコーダ41は、第2オペレーションコードO
P1に対して同様の種類のデコードを行う。
【0040】AND回路42は、規則(1)を実行す
る。OP0がカテゴリAオペレーションコードであり、
またOP1もカテゴリAオペレーションコードのとき
は、AND回路42は1レベル出力を発生する。さもな
ければ、AND回路42の出力は2進0レベルである。
AND回路43は、規則(4)を実行する。第1オペレ
ーションコードがカテゴリBオペレーションコードであ
り、第2オペレーションコードがカテゴリAオペレーシ
ョンコードであるときは、AND回路43は1レベル出
力を発生する。さもなければ、AND回路43は0レベ
ル出力を発生する。AND回路42,AND回路43の
いずれかが1レベル出力を発生するときは、これはOR
回路44の出力を1レベルに駆動し、その場合は複合可
能信号M01は1の値を有することになる。この1の値
は、第1および第2命令(命令0と1)が並列実行動作
に対してコンパティブルであることを示している。
る。OP0がカテゴリAオペレーションコードであり、
またOP1もカテゴリAオペレーションコードのとき
は、AND回路42は1レベル出力を発生する。さもな
ければ、AND回路42の出力は2進0レベルである。
AND回路43は、規則(4)を実行する。第1オペレ
ーションコードがカテゴリBオペレーションコードであ
り、第2オペレーションコードがカテゴリAオペレーシ
ョンコードであるときは、AND回路43は1レベル出
力を発生する。さもなければ、AND回路43は0レベ
ル出力を発生する。AND回路42,AND回路43の
いずれかが1レベル出力を発生するときは、これはOR
回路44の出力を1レベルに駆動し、その場合は複合可
能信号M01は1の値を有することになる。この1の値
は、第1および第2命令(命令0と1)が並列実行動作
に対してコンパティブルであることを示している。
【0041】オペレーションコード・カテゴリの他の組
合わせがデコーダ40および41により検出されたとき
は、AND回路42およびAND回路43の出力は0レ
ベルのままであり、複合可能信号M01は0の非複合可
能表示値を有する。従って、規則(2)および(3)に
より示された組合わせの発生は、AND回路42および
43を満足せず、複合可能信号M01は0レベルのまま
である。カテゴリAおよびBの他に、オペレーションコ
ードの他のカテゴリが存在するときは、命令ストリーム
内でのそれらの発生はデコーダ40および41を活性化
することはない。従って、それらは同様に0のM01複
合可能信号をもたらす。
合わせがデコーダ40および41により検出されたとき
は、AND回路42およびAND回路43の出力は0レ
ベルのままであり、複合可能信号M01は0の非複合可
能表示値を有する。従って、規則(2)および(3)に
より示された組合わせの発生は、AND回路42および
43を満足せず、複合可能信号M01は0レベルのまま
である。カテゴリAおよびBの他に、オペレーションコ
ードの他のカテゴリが存在するときは、命令ストリーム
内でのそれらの発生はデコーダ40および41を活性化
することはない。従って、それらは同様に0のM01複
合可能信号をもたらす。
【0042】第2命令コンパティビリティ論理31は、
第2および第3命令(命令1と2)に対して同じ種類の
オペレーションコード解析を実施する。第2オペレーシ
ョンコードOP1がカテゴリAのオペレーションコード
であり、第3オペレーションコードOP2がカテゴリA
オペレーションコードのときは、規則(1)によりAN
D回路46は1レベル出力を発生し、第2複合可能信号
M12は複合可能表示2進1レベルに駆動される。一
方、OP1がカテゴリBオペレーションコードであり、
OP2がカテゴリAオペレーションコードのときは、規
則(4)によりAND回路47が活性化されて第2複合
可能信号M12に対して2進1レベルを発生する。規則
(1)および(4)に示されたもの以外のオペレーショ
ンコードの組合わせに対しては、M12信号は0の値を
有する。
第2および第3命令(命令1と2)に対して同じ種類の
オペレーションコード解析を実施する。第2オペレーシ
ョンコードOP1がカテゴリAのオペレーションコード
であり、第3オペレーションコードOP2がカテゴリA
オペレーションコードのときは、規則(1)によりAN
D回路46は1レベル出力を発生し、第2複合可能信号
M12は複合可能表示2進1レベルに駆動される。一
方、OP1がカテゴリBオペレーションコードであり、
OP2がカテゴリAオペレーションコードのときは、規
則(4)によりAND回路47が活性化されて第2複合
可能信号M12に対して2進1レベルを発生する。規則
(1)および(4)に示されたもの以外のオペレーショ
ンコードの組合わせに対しては、M12信号は0の値を
有する。
【0043】M01およびM02複合可能信号は、タグ
発生器26に供給される。図5は、タグ発生器26で使
用されてM01およびM02複合可能信号に応答し、T
AG0,1および2に対して所望のタグビット値を発生
する論理回路を示したものである。図6の表は、TAG
0,1および2に対してタグ発生器26により実施され
る論理を示している。1のタグビット値は、関連する命
令が並列実行動作に対して“第1”命令であることを示
している。0のタグビット値は、関連する命令が並列実
行動作に対して“第2”命令であることを示している。
複合され、並列に実行される唯一の命令対は、対の第1
命令が1のタグビット値を持ち、対の第2命令が0のタ
グビット値を持つものである。1のタグビット値を持つ
他の命令を伴う1のタグビット値を持つ命令は、それ自
身により単独で次の命令と並列ではなく実行される。
発生器26に供給される。図5は、タグ発生器26で使
用されてM01およびM02複合可能信号に応答し、T
AG0,1および2に対して所望のタグビット値を発生
する論理回路を示したものである。図6の表は、TAG
0,1および2に対してタグ発生器26により実施され
る論理を示している。1のタグビット値は、関連する命
令が並列実行動作に対して“第1”命令であることを示
している。0のタグビット値は、関連する命令が並列実
行動作に対して“第2”命令であることを示している。
複合され、並列に実行される唯一の命令対は、対の第1
命令が1のタグビット値を持ち、対の第2命令が0のタ
グビット値を持つものである。1のタグビット値を持つ
他の命令を伴う1のタグビット値を持つ命令は、それ自
身により単独で次の命令と並列ではなく実行される。
【0044】図6の第1行の場合、全ての3つのタグビ
ットは1の値を有している。これは、命令0と1の各々
が単独で非並列に実行されることを意味する。図6の第
2行に対しては、TAG0が要求された値1を持ち、T
AG1が要求された値0を持つので、命令0と1は並列
に実行される。図6の第3行の場合、命令0は単独で実
行されるが、命令1と2は互いに並列に実行される。第
4行の場合は、命令0と1は互いに並列に実行される。
ットは1の値を有している。これは、命令0と1の各々
が単独で非並列に実行されることを意味する。図6の第
2行に対しては、TAG0が要求された値1を持ち、T
AG1が要求された値0を持つので、命令0と1は並列
に実行される。図6の第3行の場合、命令0は単独で実
行されるが、命令1と2は互いに並列に実行される。第
4行の場合は、命令0と1は互いに並列に実行される。
【0045】1の2進値をTAG2が持つ場合は、その
関連する命令2の状態はTAG3の2進値に依存するこ
とになる。TAG3が0の2進値を持つときは、命令2
と3は並列に実行することができる。一方、TAG3が
1の2進値を持つときは、命令2は単独,非並列的に実
行される。タグ発生器26に対して実施される論理は、
0の2進値を持つ2つの連続するタグビットの発生を許
さない。
関連する命令2の状態はTAG3の2進値に依存するこ
とになる。TAG3が0の2進値を持つときは、命令2
と3は並列に実行することができる。一方、TAG3が
1の2進値を持つときは、命令2は単独,非並列的に実
行される。タグ発生器26に対して実施される論理は、
0の2進値を持つ2つの連続するタグビットの発生を許
さない。
【0046】図6を検討することにより、図5に示した
タグ発生器26の要部により実施される必要のある論理
が明らかになる。図6に示したように、TAG0は常に
1の2進値を有している。これは、TAG0の出力ライ
ンを構成するタグ発生器出力ライン50に1の一定2進
値を与えることにより実現される。図6を検討すること
により、さらに、TAG1のビット値は、常にM01複
合可能信号のビット値の逆であることが明らかになる。
この結果は、入力をM01信号ラインに接続したNOT
回路52の出力にTAG1に対する出力ライン51を接
続することにより実現される。
タグ発生器26の要部により実施される必要のある論理
が明らかになる。図6に示したように、TAG0は常に
1の2進値を有している。これは、TAG0の出力ライ
ンを構成するタグ発生器出力ライン50に1の一定2進
値を与えることにより実現される。図6を検討すること
により、さらに、TAG1のビット値は、常にM01複
合可能信号のビット値の逆であることが明らかになる。
この結果は、入力をM01信号ラインに接続したNOT
回路52の出力にTAG1に対する出力ライン51を接
続することにより実現される。
【0047】TAG2の出力ライン53の2進レベル
は、OR回路54およびNOT回路55により決定され
る。複合可能信号M01が1の値を持つときは、TAG
2は1の値を持つ。これは図6の第2および第4行のT
AG2の値を与える。OR回路54の他の入力は、NO
T回路55によりM12信号ラインに接続される。M1
2が0の2進値を持つときは、この値はNOT回路55
により反転されてOR回路54の第2入力に2進1値を
供給する。これにより、TAG2出力ライン53は2進
1値を持つことになる。これは図6の列1に対するTA
G2の値を与えることになる。行3に対しては、TAG
2は0の値を持たなくてはならない。これは、この場合
はM01が0の値を持ち、M12がNOT回路55によ
り反転されてOR回路54の第2入力に0を発生する1
の値を持つようになることにより生じる。
は、OR回路54およびNOT回路55により決定され
る。複合可能信号M01が1の値を持つときは、TAG
2は1の値を持つ。これは図6の第2および第4行のT
AG2の値を与える。OR回路54の他の入力は、NO
T回路55によりM12信号ラインに接続される。M1
2が0の2進値を持つときは、この値はNOT回路55
により反転されてOR回路54の第2入力に2進1値を
供給する。これにより、TAG2出力ライン53は2進
1値を持つことになる。これは図6の列1に対するTA
G2の値を与えることになる。行3に対しては、TAG
2は0の値を持たなくてはならない。これは、この場合
はM01が0の値を持ち、M12がNOT回路55によ
り反転されてOR回路54の第2入力に0を発生する1
の値を持つようになることにより生じる。
【0048】図6の論理で暗に含まれているのは、M0
1およびM12の各々が1の2進値を有する行4の場合
に対する順位付けである。この行4の場合はBAAの命
令カテゴリシーケンスにより発生させることができる。
これは図6に示したように101のタグシーケンスによ
り、またはこれに代って110のタグシーケンスにより
実施することができる。本実施例においては、規則
(5)が用いられ、図6に示した101シーケンスが選
択される。即ち、BA対がAA対に対して優先される。
1およびM12の各々が1の2進値を有する行4の場合
に対する順位付けである。この行4の場合はBAAの命
令カテゴリシーケンスにより発生させることができる。
これは図6に示したように101のタグシーケンスによ
り、またはこれに代って110のタグシーケンスにより
実施することができる。本実施例においては、規則
(5)が用いられ、図6に示した101シーケンスが選
択される。即ち、BA対がAA対に対して優先される。
【0049】M01およびM12に対する1,1パター
ンもオペレーションコードシーケンスAAAにより発生
させることができる。この場合、図6の101タグシー
ケンスが再び選択される。これは、この101タグシー
ケンスがTAG2に対して1の値を与え、従って命令2
が命令3とコンパティブルであるとき命令2が命令3と
複合されることを潜在的に可能にするためにより好適で
ある。
ンもオペレーションコードシーケンスAAAにより発生
させることができる。この場合、図6の101タグシー
ケンスが再び選択される。これは、この101タグシー
ケンスがTAG2に対して1の値を与え、従って命令2
が命令3とコンパティブルであるとき命令2が命令3と
複合されることを潜在的に可能にするためにより好適で
ある。
【0050】図7の実施例の説明 図7を参照すると、本発明の複合化タグを用いてマシン
レベルコンピュータ命令の並列処理を与えるために、如
何にコンピュータシステムを構成することができるかの
詳細な例が示してある。図7で使用される命令複合化ユ
ニット20は図3に示された種類のものであると仮定さ
れ、従ってこのユニットは1ビットタグフィールドを各
々の命令に付加するものである。これらのタグフィール
ドが用いられて、どの命令対が並列に処理されてよいか
を識別する。これらのタグ付き命令は複合命令キャッシ
ュ12に供給,記憶される。フェッチ・イシュ制御ユニ
ット60は、必要に応じて、キャッシュ12からタグ付
き命令を取り出すと共に、複数の機能命令処理ユニット
61,62,63および64の適切な1つ以上のものに
よりそれらの処理に対して配置する。フェッチ・イシュ
・ユニット60は取り出された命令のタグフィールドお
よびオペレーションコードフィールドを検討する。タグ
フィールドが、2つの連続する命令が並列に処理されて
よいことを示すときは、フェッチ・イシュ・ユニット6
0はそれらのオペレーションコードにより決定されるよ
うに機能ユニット61〜64の適切なものにそれらを割
り当て、またそれらの命令は選択された機能ユニットに
より並列に処理される。タグフィールドが、特定の命令
が単独,非並列的に処理されるべきことを示すときは、
フェッチ・イシュ・ユニット60はそのオペレーション
コードにより決定されるように特定の機能ユニットに命
令を割り当て、また命令はそれ自身により処理または実
行される。
レベルコンピュータ命令の並列処理を与えるために、如
何にコンピュータシステムを構成することができるかの
詳細な例が示してある。図7で使用される命令複合化ユ
ニット20は図3に示された種類のものであると仮定さ
れ、従ってこのユニットは1ビットタグフィールドを各
々の命令に付加するものである。これらのタグフィール
ドが用いられて、どの命令対が並列に処理されてよいか
を識別する。これらのタグ付き命令は複合命令キャッシ
ュ12に供給,記憶される。フェッチ・イシュ制御ユニ
ット60は、必要に応じて、キャッシュ12からタグ付
き命令を取り出すと共に、複数の機能命令処理ユニット
61,62,63および64の適切な1つ以上のものに
よりそれらの処理に対して配置する。フェッチ・イシュ
・ユニット60は取り出された命令のタグフィールドお
よびオペレーションコードフィールドを検討する。タグ
フィールドが、2つの連続する命令が並列に処理されて
よいことを示すときは、フェッチ・イシュ・ユニット6
0はそれらのオペレーションコードにより決定されるよ
うに機能ユニット61〜64の適切なものにそれらを割
り当て、またそれらの命令は選択された機能ユニットに
より並列に処理される。タグフィールドが、特定の命令
が単独,非並列的に処理されるべきことを示すときは、
フェッチ・イシュ・ユニット60はそのオペレーション
コードにより決定されるように特定の機能ユニットに命
令を割り当て、また命令はそれ自身により処理または実
行される。
【0051】第1機能ユニット61は、分岐形命令を処
理する分岐命令処理ユニットである。第2機能ユニット
62は、3入力アドレス発生算術論理ユニット(AL
U)であり、これはオペランドを記憶装置にまたは記憶
装置から転送する命令に対する記憶アドレスを計算する
ために使用される。第3機能ユニット63は、算術論理
形演算を行うために使用される汎用算術論理ユニット
(ALU)である。本例における第4機能ユニット64
は、データ依存性解消ALUである。この依存性解消A
LU64は、単一マシンサイクルで2つの算術論理演算
を行うことができる3入力ALUである。
理する分岐命令処理ユニットである。第2機能ユニット
62は、3入力アドレス発生算術論理ユニット(AL
U)であり、これはオペランドを記憶装置にまたは記憶
装置から転送する命令に対する記憶アドレスを計算する
ために使用される。第3機能ユニット63は、算術論理
形演算を行うために使用される汎用算術論理ユニット
(ALU)である。本例における第4機能ユニット64
は、データ依存性解消ALUである。この依存性解消A
LU64は、単一マシンサイクルで2つの算術論理演算
を行うことができる3入力ALUである。
【0052】図7のコンピュータシステムの実施例はさ
らに、マシンレベル命令の幾つかを実行する際に使用さ
れる1組の汎用レジスタ65を備えている。通常はこれ
らの汎用レジスタ65は、データオペランドおよびアド
レスオペランドを一時記憶するために使用され、または
カウンタとして、またはその他のデータ処理のために使
用される。通常のコンピュータシステムにおいては、1
6個のこのような汎用レジスタが設けられている。本実
施例においては、汎用レジスタ65は、2つ以上のレジ
スタが同時にアクセスされるマルチポート形のものであ
るとする。
らに、マシンレベル命令の幾つかを実行する際に使用さ
れる1組の汎用レジスタ65を備えている。通常はこれ
らの汎用レジスタ65は、データオペランドおよびアド
レスオペランドを一時記憶するために使用され、または
カウンタとして、またはその他のデータ処理のために使
用される。通常のコンピュータシステムにおいては、1
6個のこのような汎用レジスタが設けられている。本実
施例においては、汎用レジスタ65は、2つ以上のレジ
スタが同時にアクセスされるマルチポート形のものであ
るとする。
【0053】図7のコンピュータシステムはさらに、上
位記憶ユニット10から得られるデータオペランドを記
憶する高速データキャッシュ記憶機構66を備えてい
る。キャッシュ66のデータはまた、上位記憶ユニット
10に逆転送できる。データキャッシュ66は既知のも
のであり、また上位記憶装置10に対するその動作は既
知の方法で行われる。
位記憶ユニット10から得られるデータオペランドを記
憶する高速データキャッシュ記憶機構66を備えてい
る。キャッシュ66のデータはまた、上位記憶ユニット
10に逆転送できる。データキャッシュ66は既知のも
のであり、また上位記憶装置10に対するその動作は既
知の方法で行われる。
【0054】図8は、図7のコンピュータシステムによ
り処理される複合化またはタグ付き命令シーケンスの一
例を示した図である。この図8の例は、次のようなシー
ケンスの次のような命令から構成される。即ち、Loa
d,Add,Compare,Branch on C
ondition,およびStoreである。これら
は、それぞれ、命令I1〜I5として識別される。図7
に示したマシンの構成のために、Load命令はそれ自
身により単独で処理される。AddおよびCompar
e命令は複合命令として扱われ、互いに並列に処理され
る。BranchおよびStore命令も複合命令とし
て扱われ、また互いに並列に処理される。
り処理される複合化またはタグ付き命令シーケンスの一
例を示した図である。この図8の例は、次のようなシー
ケンスの次のような命令から構成される。即ち、Loa
d,Add,Compare,Branch on C
ondition,およびStoreである。これら
は、それぞれ、命令I1〜I5として識別される。図7
に示したマシンの構成のために、Load命令はそれ自
身により単独で処理される。AddおよびCompar
e命令は複合命令として扱われ、互いに並列に処理され
る。BranchおよびStore命令も複合命令とし
て扱われ、また互いに並列に処理される。
【0055】図9の表は、これらの図8の命令の各々に
対して他の情報を与えるものである。図9のR/M列
は、第1オペランドを収容する汎用レジスタ65の特定
のものを識別するために通常使用される各々の命令の第
1フィールドの内容を示している。例外は、R/Mフィ
ールドが条件コードマスクを含むBranch onC
ondition命令の場合である。図9のR/X列
は、通常は汎用レジスタ65の第2のものを識別するた
めに使用される各々の命令の第2フィールドの内容を示
している。このようなレジスタは第2オペランドを収容
することができ、あるいはアドレスインデックス値
(X)を収容することができる。図9のB列は、基本ア
ドレス値を収容する汎用レジスタ65の特定のものを識
別する各々の命令の第3の可能なフィールドの内容を示
したものである。このB列の0は、Bフィールドの欠如
またはBフィールドでの対応するアドレス要求の欠如を
示している。図9のDフィールドは、アドレス発生動作
のために使用されるときアドレス変位値を含む各々の命
令における他のフィールドの内容を示している。D列の
0はまた、問題の特定の命令における対応するフィール
ドの欠如を、あるいはまた0のアドレス変位値を示して
いる。
対して他の情報を与えるものである。図9のR/M列
は、第1オペランドを収容する汎用レジスタ65の特定
のものを識別するために通常使用される各々の命令の第
1フィールドの内容を示している。例外は、R/Mフィ
ールドが条件コードマスクを含むBranch onC
ondition命令の場合である。図9のR/X列
は、通常は汎用レジスタ65の第2のものを識別するた
めに使用される各々の命令の第2フィールドの内容を示
している。このようなレジスタは第2オペランドを収容
することができ、あるいはアドレスインデックス値
(X)を収容することができる。図9のB列は、基本ア
ドレス値を収容する汎用レジスタ65の特定のものを識
別する各々の命令の第3の可能なフィールドの内容を示
したものである。このB列の0は、Bフィールドの欠如
またはBフィールドでの対応するアドレス要求の欠如を
示している。図9のDフィールドは、アドレス発生動作
のために使用されるときアドレス変位値を含む各々の命
令における他のフィールドの内容を示している。D列の
0はまた、問題の特定の命令における対応するフィール
ドの欠如を、あるいはまた0のアドレス変位値を示して
いる。
【0056】ここで図8のLoad命令の処理を考える
と、フェッチ・イシュ制御ユニット60は、このLoa
d命令および次のAdd命令に対するタグビットから、
Load命令がそれ自身により単独で処理されるべきこ
とを決定する。このLoad命令により行われる動作は
記憶装置、この場合はデータキャッシュ66からオペラ
ンドを取り出すことにより、またこのようなオペランド
をR2汎用レジスタに配置することにある。このオペラ
ンドが取り出される記憶アドレスは、レジスタXのイン
デックス値,レジスタBのベース値,および変位値Dを
加算することにより決定される。フェッチ・イシュ制御
ユニット60は、このアドレス発生動作をアドレス発生
ALU62に割り当てる。この場合、ALU62はレジ
スタXのアドレスインデックス値(本例では0値),汎
用レジスタR7に含まれるベースアドレス値,および命
令自身に含まれる変位アドレス値(本例では0の値)を
加算する。ALU62の出力に現れる得られた記憶アド
レスの計算値は、データキャッシュ66のアドレス入力
に供給されて所望のオペランドにアクセスする。このア
クセスされたオペランドは、レジスタセット65のR2
汎用レジスタにロードされる。
と、フェッチ・イシュ制御ユニット60は、このLoa
d命令および次のAdd命令に対するタグビットから、
Load命令がそれ自身により単独で処理されるべきこ
とを決定する。このLoad命令により行われる動作は
記憶装置、この場合はデータキャッシュ66からオペラ
ンドを取り出すことにより、またこのようなオペランド
をR2汎用レジスタに配置することにある。このオペラ
ンドが取り出される記憶アドレスは、レジスタXのイン
デックス値,レジスタBのベース値,および変位値Dを
加算することにより決定される。フェッチ・イシュ制御
ユニット60は、このアドレス発生動作をアドレス発生
ALU62に割り当てる。この場合、ALU62はレジ
スタXのアドレスインデックス値(本例では0値),汎
用レジスタR7に含まれるベースアドレス値,および命
令自身に含まれる変位アドレス値(本例では0の値)を
加算する。ALU62の出力に現れる得られた記憶アド
レスの計算値は、データキャッシュ66のアドレス入力
に供給されて所望のオペランドにアクセスする。このア
クセスされたオペランドは、レジスタセット65のR2
汎用レジスタにロードされる。
【0057】ここでAdd命令およびCompare命
令の処理について考えると、これらの命令はフェッチ・
イシュ制御ユニット60により取り出される。制御ユニ
ット60は、これらの2つの命令に対する複合化タグを
検討し、それらが並列に実行され得ることに注目する。
図9からわかるように、Compare命令は、R3汎
用レジスタが比較可能になる前にAdd命令が完了しな
ければならないので、Add命令に対して明瞭なデータ
依存性を有している。しかしながら、この依存性はデー
タ依存性解消ALU64により処理することができる。
従って、これらの2つの命令は、図7の構成においては
並列に処理可能である。特に、制御ユニット60は、A
dd命令の処理をALU63に割り当てると共に、依存
性解消ALU64にCompare命令の処理を割り当
てる。
令の処理について考えると、これらの命令はフェッチ・
イシュ制御ユニット60により取り出される。制御ユニ
ット60は、これらの2つの命令に対する複合化タグを
検討し、それらが並列に実行され得ることに注目する。
図9からわかるように、Compare命令は、R3汎
用レジスタが比較可能になる前にAdd命令が完了しな
ければならないので、Add命令に対して明瞭なデータ
依存性を有している。しかしながら、この依存性はデー
タ依存性解消ALU64により処理することができる。
従って、これらの2つの命令は、図7の構成においては
並列に処理可能である。特に、制御ユニット60は、A
dd命令の処理をALU63に割り当てると共に、依存
性解消ALU64にCompare命令の処理を割り当
てる。
【0058】ALU63は、R3汎用レジスタの内容に
R2汎用レジスタの内容を加算すると共に、R3汎用レ
ジスタに加算の結果を戻す。同時に、依存性解消ALU
64は、次の算術演算を実行する。
R2汎用レジスタの内容を加算すると共に、R3汎用レ
ジスタに加算の結果を戻す。同時に、依存性解消ALU
64は、次の算術演算を実行する。
【0059】R3+R2−R4 この演算の結果に対する条件コードは、分岐ユニット6
1内に配置された条件コードレジスタに送出される。こ
のデータ依存性は、ALU64が実際にR3+R2の和
を計算し、次にこの和をR4と比較して条件コードを決
定することから、解消することになる。このようにし
て、ALU64はAdd命令を行っているALU63か
らの結果を待機する必要はなくなる。この特定の場合に
は、ALU64により計算されると共にALU64の出
力に現れる数値結果は、汎用レジスタ65に送出される
ことはない。この場合、ALU64は単に条件コードを
セットするだけである。
1内に配置された条件コードレジスタに送出される。こ
のデータ依存性は、ALU64が実際にR3+R2の和
を計算し、次にこの和をR4と比較して条件コードを決
定することから、解消することになる。このようにし
て、ALU64はAdd命令を行っているALU63か
らの結果を待機する必要はなくなる。この特定の場合に
は、ALU64により計算されると共にALU64の出
力に現れる数値結果は、汎用レジスタ65に送出される
ことはない。この場合、ALU64は単に条件コードを
セットするだけである。
【0060】ここで、図8に示したBranch命令お
よびStore命令の処理について考えると、これらの
命令はフェッチ・イシュ制御ユニット60より複合命令
キャッシュ12から取り出される。制御ユニット60
は、これらの命令が互いに並列に処理されてよいこと
を、それらの命令に対するタグビットから決定する。さ
らに、制御ユニット60は、2つの命令のオペレーショ
ンコードから、Branch命令が分岐ユニット61に
より処理されるべきであり、Store命令がアドレス
発生ALU62により処理されるべきことを決定する。
この決定によれば、Branch命令のマスクフィール
ドMおよび変位フィールドDは、分岐ユニット61に供
給される。同様に、このBranch命令に対するレジ
スタXのアドレスインデックス値およびレジスタBのア
ドレスベース値は、汎用レジスタ65から得られ、分岐
ユニット61に供給される。本例においては、X値は0
であり、またベース値はR7汎用レジスタから得られ
る。変位値Dは12の16進値を有するが、マスクフィ
ールドMは8のマスク位置値を有する。
よびStore命令の処理について考えると、これらの
命令はフェッチ・イシュ制御ユニット60より複合命令
キャッシュ12から取り出される。制御ユニット60
は、これらの命令が互いに並列に処理されてよいこと
を、それらの命令に対するタグビットから決定する。さ
らに、制御ユニット60は、2つの命令のオペレーショ
ンコードから、Branch命令が分岐ユニット61に
より処理されるべきであり、Store命令がアドレス
発生ALU62により処理されるべきことを決定する。
この決定によれば、Branch命令のマスクフィール
ドMおよび変位フィールドDは、分岐ユニット61に供
給される。同様に、このBranch命令に対するレジ
スタXのアドレスインデックス値およびレジスタBのア
ドレスベース値は、汎用レジスタ65から得られ、分岐
ユニット61に供給される。本例においては、X値は0
であり、またベース値はR7汎用レジスタから得られ
る。変位値Dは12の16進値を有するが、マスクフィ
ールドMは8のマスク位置値を有する。
【0061】分岐ユニット61は潜在的な分岐アドレス
(0+R7+20)の計算を開始し、同時に前のCom
pare命令から得られた条件コードを条件コードマス
クMと比較する。もし条件コード値がマスクコード値と
同じのときは、必要な分岐条件が満足され、また分岐ユ
ニット61により計算された分岐アドレスは、その際、
制御ユニット60の命令カウンタにロードされる。この
命令カウンタは、複合命令キャッシュ12からの命令の
取り出しを制御する。一方、条件が満足されない(即
ち、前回の命令によりセットされた条件コードが8の値
を持たない)ときは、如何なる分岐も取られず、また如
何なる分岐アドレスも制御ユニット60の命令カウンタ
に供給されることはない。
(0+R7+20)の計算を開始し、同時に前のCom
pare命令から得られた条件コードを条件コードマス
クMと比較する。もし条件コード値がマスクコード値と
同じのときは、必要な分岐条件が満足され、また分岐ユ
ニット61により計算された分岐アドレスは、その際、
制御ユニット60の命令カウンタにロードされる。この
命令カウンタは、複合命令キャッシュ12からの命令の
取り出しを制御する。一方、条件が満足されない(即
ち、前回の命令によりセットされた条件コードが8の値
を持たない)ときは、如何なる分岐も取られず、また如
何なる分岐アドレスも制御ユニット60の命令カウンタ
に供給されることはない。
【0062】分岐ユニット61がBranch命令に対
するその処理動作を実行してビジーであると同時に、ア
ドレス発生ALU62はStore命令に対するアドレ
ス計算(0+R7+0)を行ってビジーである。ALU
62により計算されたアドレスはデータキャッシュ66
に供給される。もし、分岐ユニット61による如何なる
分岐も取られないときは、Store命令が動作してR
3汎用レジスタのオペランドをデータキャッシュ66の
ALU62により計算されたアドレスに記憶する。一
方、分岐条件が満足され、分岐が取られるときは、R3
汎用レジスタの内容はデータキャッシュ66に記憶され
ることはない。
するその処理動作を実行してビジーであると同時に、ア
ドレス発生ALU62はStore命令に対するアドレ
ス計算(0+R7+0)を行ってビジーである。ALU
62により計算されたアドレスはデータキャッシュ66
に供給される。もし、分岐ユニット61による如何なる
分岐も取られないときは、Store命令が動作してR
3汎用レジスタのオペランドをデータキャッシュ66の
ALU62により計算されたアドレスに記憶する。一
方、分岐条件が満足され、分岐が取られるときは、R3
汎用レジスタの内容はデータキャッシュ66に記憶され
ることはない。
【0063】図8の命令シーケンスは単なる例示として
与えたものである。図7のコンピュータシステムの実施
例は、同様に各種の多くの命令シーケンスを処理するこ
とができる。しかし、図8の例は明らかに、どの対の命
令が互いに並列に処理されてよいかの決定に際しての複
合命令の有用性を示している。
与えたものである。図7のコンピュータシステムの実施
例は、同様に各種の多くの命令シーケンスを処理するこ
とができる。しかし、図8の例は明らかに、どの対の命
令が互いに並列に処理されてよいかの決定に際しての複
合命令の有用性を示している。
【図1】本発明に従って構成されたディジタルコンピュ
ータシステムの要部の代表的な実施例を示すブロック図
である。
ータシステムの要部の代表的な実施例を示すブロック図
である。
【図2】関係する複合化タグまたはタグフィールドを有
する長さの命令ストリームを示す説明図である。
する長さの命令ストリームを示す説明図である。
【図3】図1のコンピュータシステムで使用できる命令
複合化ユニットの代表的な実施例の内部構成をさらに詳
細に説明するブロック図である。
複合化ユニットの代表的な実施例の内部構成をさらに詳
細に説明するブロック図である。
【図4】図3の複合解析ユニットの各々に対する代表的
な内部構成を更に詳細に説明するブロック図である。
な内部構成を更に詳細に説明するブロック図である。
【図5】命令ストリームの始めの3つの命令に対して複
合化タグを発生する図3の複合解析ユニットおよびタグ
発生器要部の論理回路例の構成図である。
合化タグを発生する図3の複合解析ユニットおよびタグ
発生器要部の論理回路例の構成図である。
【図6】図5の論理回路例の動作を説明する際に使用さ
れる表である。
れる表である。
【図7】ディジタルコンピュータシステムの要部であ
り、複合命令が多重機能命令処理ユニットにより並列に
処理される方法を説明するために使用される代表的な実
施例を示すブロック図である。
り、複合命令が多重機能命令処理ユニットにより並列に
処理される方法を説明するために使用される代表的な実
施例を示すブロック図である。
【図8】図7のコンピュータシステムにより処理される
特定の命令シーケンスの例を示す説明図である。
特定の命令シーケンスの例を示す説明図である。
【図9】図7のコンピュータシステムによる図8の命令
シーケンスの処理を説明するに際して使用される表であ
る。
シーケンスの処理を説明するに際して使用される表であ
る。
10 上位記憶装置 11 命令複合化ユニット 12 複合命令キャッシュ 13,14,15 機能ユニット 16 命令フェッチ・イシュ・ユニット 22〜25 複合解析ユニット 26 タグ発生器 60 フェッチ・イシュ制御ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スタマティス・バシリアディス アメリカ合衆国 ニューヨーク州 ベスタ ル ベスタルロード 717 (56)参考文献 特開 平2−130635(JP,A) 特開 昭61−245239(JP,A)
Claims (1)
- 【請求項1】2つ以上の命令を並列処理可能なディジタ
ルコンピュータシステムにおいて、 処理されるべき命令を記憶するための大容量且つ低速度
の記憶機構と、 関連するタグ情報を有する命令を記憶するための小容量
且つ高速度のキャッシュ記憶機構と、 互いに並列に動作する複数の機能命令処理ユニットと、 前記大容量低速記憶機構と前記キャッシュ記憶機構の間
に結合される命令複合化機構であって、 複数の連続する命令を前記大容量低速記憶機構から受信
する複数命令レジスタと、 複数の規則ベース命令解析機構であって、各々が前記命
令レジスタ内の個々の対の隣接命令を解析すると共に、
前記機能命令処理ユニットにおいてどの種類の命令が並
列実行に対してコンパティブルであるかを定める規則を
実施し当該解析機構に対して前記対内の2つの命令が並
列に処理されてよいか否かを示す複合可能信号を発生す
る論理回路を有する複数の規則ベース命令解析機構と、 前記複合可能信号に応じて前記命令レジスタ内の個々の
命令が互いに並列に処理されてよいかを示す前記命令の
各々と関係づけられる複数の個別タグフィールドを発生
するタグ情報発生機構と、 さらにこれらの命令および関係するタグ情報を前記キャ
ッシュ記憶機構に供給してそれに記憶させる機構と を備えた命令複合化機構と、 前記キャッシュ記憶機構と前記機能命令処理ユニットの
間に結合されて、前記タグフィールドが前記機能命令処
理ユニットで前記命令が並列に処理されてよいことを示
すとき、前記キャッシュ記憶機構に記憶された隣接する
命令を個々の前記機能命令処理ユニットに供給する命令
発生機構と、 を備えたディジタルコンピュータシステム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/522,291 US5214763A (en) | 1990-05-10 | 1990-05-10 | Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism |
| US522291 | 1990-05-10 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04230528A JPH04230528A (ja) | 1992-08-19 |
| JPH0776924B2 true JPH0776924B2 (ja) | 1995-08-16 |
Family
ID=24080285
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3096094A Expired - Lifetime JPH0776924B2 (ja) | 1990-05-10 | 1991-04-03 | ディジタルコンピュータシステム |
Country Status (11)
| Country | Link |
|---|---|
| US (2) | US5214763A (ja) |
| EP (1) | EP0455966B1 (ja) |
| JP (1) | JPH0776924B2 (ja) |
| AT (1) | ATE131637T1 (ja) |
| BR (1) | BR9101913A (ja) |
| CA (1) | CA2040304C (ja) |
| CZ (1) | CZ279899B6 (ja) |
| DE (1) | DE69115344T2 (ja) |
| HU (1) | HU214423B (ja) |
| PL (1) | PL165491B1 (ja) |
| RU (1) | RU2111531C1 (ja) |
Families Citing this family (93)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2810068B2 (ja) | 1988-11-11 | 1998-10-15 | 株式会社日立製作所 | プロセッサシステム、コンピュータシステム及び命令処理方法 |
| US5295249A (en) * | 1990-05-04 | 1994-03-15 | International Business Machines Corporation | Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel |
| DE69130138T2 (de) * | 1990-06-29 | 1999-05-06 | Digital Equipment Corp., Maynard, Mass. | Sprungvorhersageeinheit für hochleistungsfähigen Prozessor |
| JP2535252B2 (ja) * | 1990-10-17 | 1996-09-18 | 三菱電機株式会社 | 並列処理装置 |
| JP2532300B2 (ja) * | 1990-10-17 | 1996-09-11 | 三菱電機株式会社 | 並列処理装置における命令供給装置 |
| DE69130757T2 (de) * | 1990-11-30 | 1999-07-29 | Kabushiki Kaisha Toshiba, Kawasaki, Kanagawa | Ausführungsvorrichtung für bedingte Verzweigungsbefehle |
| GB9027853D0 (en) * | 1990-12-21 | 1991-02-13 | Inmos Ltd | Multiple instruction issue |
| US5446850A (en) * | 1991-01-15 | 1995-08-29 | International Business Machines Corporation | Cross-cache-line compounding algorithm for scism processors |
| US5488729A (en) * | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
| JPH04367936A (ja) | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | スーパースカラープロセッサ |
| US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
| US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
| US5826055A (en) * | 1991-07-08 | 1998-10-20 | Seiko Epson Corporation | System and method for retiring instructions in a superscalar microprocessor |
| US5363495A (en) * | 1991-08-26 | 1994-11-08 | International Business Machines Corporation | Data processing system with multiple execution units capable of executing instructions out of sequence |
| US5787303A (en) * | 1991-10-31 | 1998-07-28 | Kabushiki Kaisha Toshiba | Digital computer system capable of processing a plurality of instructions in parallel based on a VLIW architecture |
| DE69311330T2 (de) * | 1992-03-31 | 1997-09-25 | Seiko Epson Corp., Tokio/Tokyo | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
| EP0638183B1 (en) * | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
| US5590348A (en) * | 1992-07-28 | 1996-12-31 | International Business Machines Corporation | Status predictor for combined shifter-rotate/merge unit |
| US5337415A (en) * | 1992-12-04 | 1994-08-09 | Hewlett-Packard Company | Predecoding instructions for supercalar dependency indicating simultaneous execution for increased operating frequency |
| US5651121A (en) * | 1992-12-18 | 1997-07-22 | Xerox Corporation | Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand |
| US5604912A (en) * | 1992-12-31 | 1997-02-18 | Seiko Epson Corporation | System and method for assigning tags to instructions to control instruction execution |
| US5628021A (en) | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
| WO1994016384A1 (en) * | 1992-12-31 | 1994-07-21 | Seiko Epson Corporation | System and method for register renaming |
| US5673409A (en) * | 1993-03-31 | 1997-09-30 | Vlsi Technology, Inc. | Self-defining instruction size |
| US5752013A (en) * | 1993-06-30 | 1998-05-12 | Intel Corporation | Method and apparatus for providing precise fault tracing in a superscalar microprocessor |
| DE69430018T2 (de) * | 1993-11-05 | 2002-11-21 | Intergraph Corp., Huntsville | Befehlscachespeicher mit assoziativem Kreuzschienenschalter |
| EP0652510B1 (en) * | 1993-11-05 | 2000-01-26 | Intergraph Corporation | Software scheduled superscalar computer architecture |
| US6360313B1 (en) | 1993-11-05 | 2002-03-19 | Intergraph Corporation | Instruction cache associative crossbar switch |
| US5974534A (en) * | 1994-02-14 | 1999-10-26 | Hewlett-Packard Company | Predecoding and steering mechanism for instructions in a superscalar processor |
| US5546599A (en) * | 1994-03-31 | 1996-08-13 | International Business Machines Corporation | Processing system and method of operation for processing dispatched instructions with detected exceptions |
| TW353732B (en) * | 1994-03-31 | 1999-03-01 | Ibm | Processing system and method of operation |
| TW260765B (ja) * | 1994-03-31 | 1995-10-21 | Ibm | |
| US5559976A (en) * | 1994-03-31 | 1996-09-24 | International Business Machines Corporation | System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions |
| US5644779A (en) * | 1994-04-15 | 1997-07-01 | International Business Machines Corporation | Processing system and method of operation for concurrent processing of branch instructions with cancelling of processing of a branch instruction |
| JPH07281893A (ja) * | 1994-04-15 | 1995-10-27 | Internatl Business Mach Corp <Ibm> | 処理システム及び演算方法 |
| US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
| US5748950A (en) * | 1994-09-20 | 1998-05-05 | Intel Corporation | Method and apparatus for providing an optimized compare-and-branch instruction |
| US5530932A (en) * | 1994-12-23 | 1996-06-25 | Intel Corporation | Cache coherent multiprocessing computer system with reduced power operating features |
| US6128720A (en) * | 1994-12-29 | 2000-10-03 | International Business Machines Corporation | Distributed processing array with component processors performing customized interpretation of instructions |
| US5742784A (en) * | 1995-01-25 | 1998-04-21 | International Business Machines Corporation | System for reordering of instructions before placement into cache to reduce dispatch latency |
| US5758114A (en) * | 1995-04-12 | 1998-05-26 | Advanced Micro Devices, Inc. | High speed instruction alignment unit for aligning variable byte-length instructions according to predecode information in a superscalar microprocessor |
| US5991869A (en) * | 1995-04-12 | 1999-11-23 | Advanced Micro Devices, Inc. | Superscalar microprocessor including a high speed instruction alignment unit |
| US5828895A (en) * | 1995-09-20 | 1998-10-27 | International Business Machines Corporation | Methods and system for predecoding instructions in a superscalar data processing system |
| US5867681A (en) * | 1996-05-23 | 1999-02-02 | Lsi Logic Corporation | Microprocessor having register dependent immediate decompression |
| US5896519A (en) * | 1996-06-10 | 1999-04-20 | Lsi Logic Corporation | Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions |
| US5794010A (en) * | 1996-06-10 | 1998-08-11 | Lsi Logic Corporation | Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor |
| US5924128A (en) * | 1996-06-20 | 1999-07-13 | International Business Machines Corporation | Pseudo zero cycle address generator and fast memory access |
| US5812812A (en) * | 1996-11-04 | 1998-09-22 | International Business Machines Corporation | Method and system of implementing an early data dependency resolution mechanism in a high-performance data processing system utilizing out-of-order instruction issue |
| EP0855648A3 (en) * | 1997-01-24 | 1999-12-22 | Texas Instruments Inc. | Data processing with parallel or sequential execution of program instructions |
| EP0924603A3 (en) * | 1997-12-16 | 2001-02-07 | Lucent Technologies Inc. | Compiler controlled dynamic scheduling of program instructions |
| US6014513A (en) * | 1997-12-23 | 2000-01-11 | University Of Washington | Discovering code and data in a binary executable program |
| US6314493B1 (en) | 1998-02-03 | 2001-11-06 | International Business Machines Corporation | Branch history cache |
| US6237086B1 (en) * | 1998-04-22 | 2001-05-22 | Sun Microsystems, Inc. | 1 Method to prevent pipeline stalls in superscalar stack based computing systems |
| US6282634B1 (en) * | 1998-05-27 | 2001-08-28 | Arm Limited | Apparatus and method for processing data having a mixed vector/scalar register file |
| US6345355B1 (en) | 1998-05-29 | 2002-02-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for distributing commands to a plurality of circuit blocks |
| US6230260B1 (en) | 1998-09-01 | 2001-05-08 | International Business Machines Corporation | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching |
| US6418527B1 (en) * | 1998-10-13 | 2002-07-09 | Motorola, Inc. | Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods |
| US6862635B1 (en) | 1998-11-13 | 2005-03-01 | Cray Inc. | Synchronization techniques in a multithreaded environment |
| US6480818B1 (en) | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
| US6314471B1 (en) | 1998-11-13 | 2001-11-06 | Cray Inc. | Techniques for an interrupt free operating system |
| US6952827B1 (en) | 1998-11-13 | 2005-10-04 | Cray Inc. | User program and operating system interface in a multithreaded environment |
| US6430676B1 (en) * | 1998-12-23 | 2002-08-06 | Cray Inc. | Method and system for calculating instruction lookahead |
| US6321379B1 (en) | 1998-12-23 | 2001-11-20 | Cray Inc. | Method and system for target register allocation |
| US6230313B1 (en) | 1998-12-23 | 2001-05-08 | Cray Inc. | Parallelism performance analysis based on execution trace information |
| US6353829B1 (en) | 1998-12-23 | 2002-03-05 | Cray Inc. | Method and system for memory allocation in a multiprocessing environment |
| US6415433B1 (en) | 1998-12-23 | 2002-07-02 | Cray Inc. | Method and system for identifying locations to move portions of the computer program |
| JP2001034474A (ja) * | 1999-07-16 | 2001-02-09 | Nec Corp | データ処理装置及びデータ処理方法 |
| JP3730455B2 (ja) * | 1999-10-01 | 2006-01-05 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
| US6571265B1 (en) * | 1999-10-29 | 2003-05-27 | Intel Corporation | Mechanism to detect IEEE underflow exceptions on speculative floating-point operations |
| US6697939B1 (en) * | 2000-01-06 | 2004-02-24 | International Business Machines Corporation | Basic block cache microprocessor with instruction history information |
| US6633969B1 (en) | 2000-08-11 | 2003-10-14 | Lsi Logic Corporation | Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions |
| US6738794B2 (en) | 2001-04-10 | 2004-05-18 | Analog Devices, Inc. | Parallel bit correlator |
| US7711926B2 (en) * | 2001-04-18 | 2010-05-04 | Mips Technologies, Inc. | Mapping system and method for instruction set processing |
| US7177891B2 (en) * | 2002-10-09 | 2007-02-13 | Analog Devices, Inc. | Compact Galois field multiplier engine |
| US7283628B2 (en) | 2001-11-30 | 2007-10-16 | Analog Devices, Inc. | Programmable data encryption engine |
| US6766345B2 (en) | 2001-11-30 | 2004-07-20 | Analog Devices, Inc. | Galois field multiplier system |
| US7269615B2 (en) * | 2001-12-18 | 2007-09-11 | Analog Devices, Inc. | Reconfigurable input Galois field linear transformer system |
| US7895253B2 (en) | 2001-11-30 | 2011-02-22 | Analog Devices, Inc. | Compound Galois field engine and Galois field divider and square root engine and method |
| US7082452B2 (en) * | 2001-11-30 | 2006-07-25 | Analog Devices, Inc. | Galois field multiply/multiply-add/multiply accumulate |
| WO2003048947A1 (en) * | 2001-11-30 | 2003-06-12 | Analog Devices, Inc. | Reconfigurable input galois field linear transformer system |
| US7508937B2 (en) * | 2001-12-18 | 2009-03-24 | Analog Devices, Inc. | Programmable data encryption engine for advanced encryption standard algorithm |
| US20030126414A1 (en) * | 2002-01-02 | 2003-07-03 | Grochowski Edward T. | Processing partial register writes in an out-of order processor |
| US6941446B2 (en) * | 2002-01-21 | 2005-09-06 | Analog Devices, Inc. | Single instruction multiple data array cell |
| US6865661B2 (en) * | 2002-01-21 | 2005-03-08 | Analog Devices, Inc. | Reconfigurable single instruction multiple data array |
| US7000090B2 (en) * | 2002-01-21 | 2006-02-14 | Analog Devices, Inc. | Center focused single instruction multiple data (SIMD) array system |
| US20040128483A1 (en) * | 2002-12-31 | 2004-07-01 | Intel Corporation | Fuser renamer apparatus, systems, and methods |
| US7421076B2 (en) * | 2003-09-17 | 2008-09-02 | Analog Devices, Inc. | Advanced encryption standard (AES) engine with real time S-box generation |
| US7512647B2 (en) * | 2004-11-22 | 2009-03-31 | Analog Devices, Inc. | Condensed Galois field computing system |
| US7526633B2 (en) * | 2005-03-23 | 2009-04-28 | Qualcomm Incorporated | Method and system for encoding variable length packets with variable instruction sizes |
| US9436468B2 (en) * | 2005-11-22 | 2016-09-06 | Intel Corporation | Technique for setting a vector mask |
| US7669039B2 (en) * | 2007-01-24 | 2010-02-23 | Qualcomm Incorporated | Use of register renaming system for forwarding intermediate results between constituent instructions of an expanded instruction |
| TW200910195A (en) * | 2007-08-20 | 2009-03-01 | Sunplus Technology Co Ltd | A device of using serial bits to determine instruction length at a multi-mode processor and the method thereof |
| US8898433B2 (en) * | 2012-04-26 | 2014-11-25 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Efficient extraction of execution sets from fetch sets |
Family Cites Families (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3293616A (en) * | 1963-07-03 | 1966-12-20 | Ibm | Computer instruction sequencing and control system |
| US3470540A (en) * | 1967-04-24 | 1969-09-30 | Rca Corp | Multiprocessing computer system with special instruction sequencing |
| US3611306A (en) * | 1969-02-05 | 1971-10-05 | Burroughs Corp | Mechanism to control the sequencing of partially ordered instructions in a parallel data processing system |
| US3781814A (en) * | 1971-10-07 | 1973-12-25 | Raytheon Co | Method and apparatus for applying source language statements to a digital computer |
| US4197589A (en) * | 1977-12-05 | 1980-04-08 | Texas Instruments Incorporated | Operation sequencing mechanism |
| US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
| US4295193A (en) * | 1979-06-29 | 1981-10-13 | International Business Machines Corporation | Machine for multiple instruction execution |
| US4437149A (en) * | 1980-11-17 | 1984-03-13 | International Business Machines Corporation | Cache memory architecture with decoding |
| US4439828A (en) * | 1981-07-27 | 1984-03-27 | International Business Machines Corp. | Instruction substitution mechanism in an instruction handling unit of a data processing system |
| JPS5932045A (ja) * | 1982-08-16 | 1984-02-21 | Hitachi Ltd | 情報処理装置 |
| US4591972A (en) * | 1982-11-15 | 1986-05-27 | Data General Corp. | Data processing system with unique microcode control |
| US4594655A (en) * | 1983-03-14 | 1986-06-10 | International Business Machines Corporation | (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions |
| SU1241250A1 (ru) * | 1984-01-04 | 1986-06-30 | Предприятие П/Я А-3756 | Адаптивна система обработки данных |
| US4873629A (en) * | 1984-06-20 | 1989-10-10 | Convex Computer Corporation | Instruction processing unit for computer |
| JPS61245239A (ja) * | 1985-04-23 | 1986-10-31 | Toshiba Corp | 論理回路方式 |
| SU1295410A1 (ru) * | 1985-07-08 | 1987-03-07 | Институт кибернетики им.В.М.Глушкова | Процессор дл мультипроцессорной системы |
| US4847755A (en) * | 1985-10-31 | 1989-07-11 | Mcc Development, Ltd. | Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies |
| US4722050A (en) * | 1986-03-27 | 1988-01-26 | Hewlett-Packard Company | Method and apparatus for facilitating instruction processing of a digital computer |
| US4766566A (en) * | 1986-08-18 | 1988-08-23 | International Business Machines Corp. | Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing |
| JPS63131230A (ja) * | 1986-11-21 | 1988-06-03 | Hitachi Ltd | 情報処理装置 |
| US4829422A (en) * | 1987-04-02 | 1989-05-09 | Stellar Computer, Inc. | Control of multiple processors executing in parallel regions |
| US5050068A (en) * | 1988-10-03 | 1991-09-17 | Duke University | Method and apparatus for using extracted program flow information to prepare for execution multiple instruction streams |
| JPH0769824B2 (ja) * | 1988-11-11 | 1995-07-31 | 株式会社日立製作所 | 複数命令同時処理方式 |
| JPH02253356A (ja) * | 1989-03-28 | 1990-10-12 | Toshiba Corp | 階層キャッシュメモリ装置とその制御方式 |
| JP2818249B2 (ja) * | 1990-03-30 | 1998-10-30 | 株式会社東芝 | 電子計算機 |
| CA2037708C (en) * | 1990-05-04 | 1998-01-20 | Richard J. Eickemeyer | General purpose compound apparatus for instruction-level parallel processors |
| ATE146611T1 (de) * | 1990-05-04 | 1997-01-15 | Ibm | Maschinenarchitektur für skalaren verbundbefehlssatz |
-
1990
- 1990-05-10 US US07/522,291 patent/US5214763A/en not_active Expired - Lifetime
-
1991
- 1991-03-20 DE DE69115344T patent/DE69115344T2/de not_active Expired - Lifetime
- 1991-03-20 EP EP91104318A patent/EP0455966B1/en not_active Expired - Lifetime
- 1991-03-20 AT AT91104318T patent/ATE131637T1/de not_active IP Right Cessation
- 1991-04-03 RU SU4894952A patent/RU2111531C1/ru active
- 1991-04-03 PL PL91289720A patent/PL165491B1/pl not_active IP Right Cessation
- 1991-04-03 JP JP3096094A patent/JPH0776924B2/ja not_active Expired - Lifetime
- 1991-04-04 HU HU911099A patent/HU214423B/hu not_active IP Right Cessation
- 1991-04-04 CZ CS91933A patent/CZ279899B6/cs not_active IP Right Cessation
- 1991-04-12 CA CA002040304A patent/CA2040304C/en not_active Expired - Lifetime
- 1991-05-09 BR BR919101913A patent/BR9101913A/pt unknown
-
1994
- 1994-01-24 US US08/186,225 patent/US5475853A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5214763A (en) | 1993-05-25 |
| CS93391A3 (en) | 1992-05-13 |
| US5475853A (en) | 1995-12-12 |
| HU214423B (hu) | 1998-03-30 |
| DE69115344D1 (de) | 1996-01-25 |
| BR9101913A (pt) | 1991-12-17 |
| HUT57454A (en) | 1991-11-28 |
| EP0455966A3 (en) | 1993-11-10 |
| DE69115344T2 (de) | 1996-06-20 |
| JPH04230528A (ja) | 1992-08-19 |
| EP0455966B1 (en) | 1995-12-13 |
| EP0455966A2 (en) | 1991-11-13 |
| RU2111531C1 (ru) | 1998-05-20 |
| CA2040304C (en) | 1995-04-11 |
| CZ279899B6 (cs) | 1995-08-16 |
| HU911099D0 (en) | 1991-10-28 |
| ATE131637T1 (de) | 1995-12-15 |
| PL165491B1 (pl) | 1994-12-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0776924B2 (ja) | ディジタルコンピュータシステム | |
| CA2038264C (en) | In-memory preprocessor for a scalable compound instruction set machine processor | |
| EP0496928B1 (en) | Compounding preprocessor for cache | |
| US6721874B1 (en) | Method and system for dynamically shared completion table supporting multiple threads in a processing system | |
| US6295600B1 (en) | Thread switch on blocked load or store using instruction thread field | |
| JP3182740B2 (ja) | 単一クロック・サイクルに非連続命令を取り出すための方法およびシステム。 | |
| CN1153139C (zh) | 多线程处理器中性能监视的方法和系统 | |
| US5611063A (en) | Method for executing speculative load instructions in high-performance processors | |
| US6178498B1 (en) | Storing predicted branch target address in different storage according to importance hint in branch prediction instruction | |
| US6718403B2 (en) | Hierarchical selection of direct and indirect counting events in a performance monitor unit | |
| KR100747128B1 (ko) | 발행 후에 명령의 비투기적 성질을 발견하고 상기 명령을 재발행하는 스케줄러 | |
| EP0394624B1 (en) | Multiple sequence processor system | |
| US8108859B2 (en) | Processor for controlling tread switching | |
| KR100864890B1 (ko) | 데이터 처리장치에서의 소스 레지스터 록킹 | |
| US6851033B2 (en) | Memory access prediction in a data processing apparatus | |
| US7302553B2 (en) | Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue | |
| JPH07253887A (ja) | スーパースカラ・プロセッサにおける命令の前復号および操向機構 | |
| US20020116599A1 (en) | Data processing apparatus | |
| US6442675B1 (en) | Compressed string and multiple generation engine | |
| US6178497B1 (en) | System and method for determining the relative age of instructions in a processor | |
| WO2000008551A1 (en) | Software directed target address cache and target address register | |
| US20030088758A1 (en) | Methods and systems for determining valid microprocessor instructions | |
| CA2040637C (en) | Compounding preprocessor for cache | |
| Richardson | The Fred VHDL Model | |
| JPH05108348A (ja) | 並列演算処理装置 |