JP2818249B2 - 電子計算機 - Google Patents
電子計算機Info
- Publication number
- JP2818249B2 JP2818249B2 JP2084607A JP8460790A JP2818249B2 JP 2818249 B2 JP2818249 B2 JP 2818249B2 JP 2084607 A JP2084607 A JP 2084607A JP 8460790 A JP8460790 A JP 8460790A JP 2818249 B2 JP2818249 B2 JP 2818249B2
- Authority
- JP
- Japan
- Prior art keywords
- instructions
- instruction
- cache memory
- execution
- read
- 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
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- 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/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
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)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
を同時に実行する電子計算機に関する。
れている命令を1個ずつ取り出しながら、その命令によ
り示される処理を実行するように構成されている。この
ような電子計算機は、その内部構造を比較的簡単に構築
することができると云う利点を有するものの、1サイク
ルタイムに1つの処理しか実行できないので、その処理
速度がシステムクロック周波数に依存し、処理効率を高
める上で自ずと限界があった。
有効に活用し、メインメモリから読み出される複数の命
令を同時に実行処理することが種々試みられている。そ
の代表的な処理方式としては、例えばVLIW方式やSuper
Scalar方式がある。しかし、上記VLIW方式では、従来の
プログラムとの間でコンパチビリティが取れないと云う
問題がある。また上記Super Scalar方式では、命令実行
時に複数の命令に対する同時実行の可能性をその都度調
べるので、その回路構成が複雑化すると云う問題があ
る。しかも複数の命令の同時実行可能性を命令実行時に
調べるので、命令の数が多くなるに従って同時実行可能
性の判断が困難化し、また必要な処理サイクルタイムの
増加(処理のオーバーヘッド)を招くと云う不具合があ
る。
備し、これらの計算機リソースを有効に活用して複数の
命令を同時に実行処理することでその処理効率を高めよ
うとしても、一般的な電子計算機とのコンパチビリティ
を保つ上で問題があり、また命令実行時のオーバーヘッ
ドを防いでその処理速度の高速化を図る上で問題があっ
た。
その目的とするところは、従来の一般的な計算機との間
でのコンパチビリティを保ちながら、複数の命令を効率
的に同時実行することができ、その処理効率を高めるこ
とのできる実用性の高い電子計算機を提供することにあ
る。
の命令が読み込まれるときに、該複数の命令の同時実行
の可能性の判断を行う手段と、前記キャッシュメモリに
読み込まれる前記命令の種類に応じて該命令の実行に必
要なリソースの割り当てを行う手段とを具備することを
特徴とする。
を格納するビットフィールドを具備し、前記ビットフィ
ールドは、前記複数の命令のリソースが競合しているか
否かを示すフラグを格納するためのフィールドを有する
ようにしてもよい。
に複数の命令が読み込まれるときに、前記命令の種類に
応じて該命令の実行に必要なリソースの割り当てを行う
手段と、前記キャッシュメモリに読み込まれる複数の命
令の同時実行の可能性の判断を行う手段とを具備するこ
とを特徴とする。
に複数の命令が読み込まれるときに、前記命令の種類に
応じて該命令の実行に必要なリソースの割り当てを行う
手段を具備することを特徴とする。
を格納するビットフィールドを具備し、前記ビットフィ
ールドは、前記複数の命令がそれぞれ使用する演算ユニ
ットの種類を示す情報を各命令に対応して格納するため
のフィールドを有するようにしてもよい。
に複数の命令が読み込まれるときに、該複数の命令の同
時実行の可能性の判断を行う手段と、前記キャッシュメ
モリに前記複数の命令が読み込まれるときに、前記命令
の種類に応じて該命令の実行に必要なリソースの割り当
てを行う手段とを具備することを特徴とする。
を格納するビットフィールドを具備し、前記ビットフィ
ールドは、前記複数の命令がそれぞれ使用する演算ユニ
ットの種類を示す情報を各命令に対応して格納するため
の第1のフィールドと、前記複数の命令のリソースが競
合しているか否かを示すフラグを格納するための第2の
フィールドとを有するようにしてもよい。
キャッシュメモリを備え、プロセッサに対して一番近い
キャッシュメモリに複数の命令を転送するときに、前記
複数の命令の同時実行の可能性の判断または前記命令に
対するリソースの割り当ての少なくとも一方を行うこと
を特徴とする。
コード結果を格納するようにしてもよい。
対する同時実行可能性の判断や計算機リソースの配分処
理の少なくとも一部を、予め上記複数の命令をメインメ
モリからキャッシュメモリに転送する際に行っておくの
で、命令実行時における実効的なオーバーヘッドを大幅
に低減することが可能となる。この結果、従来一般的な
電子計算機とのコンパチビィリティを保ちながら、命令
実行時のオーバーヘッドを防いで計算機処理効率の向上
を効果的に図ることが可能となる。
算機について説明する。
セッサの概略的なシステム構成図であり、1は上記プロ
セッサによる演算処理に供される複数の命令を所定の順
序で格納したメインメモリである。このメインメモリ1
に格納された命令は、基本的にはプロセッサ内部のキャ
ッシュメモリ2に転送読み出しされた後、このプロセッ
サ内に準備された計算機リソースである演算ユニットに
与えられてそれぞれ演算実行される。
能ならしめるべく、複数の演算ユニットとして、ここで
はフローティング・アダー(F−ADD)3,フローティン
グ・マルチプライヤー(F−MUL)4,2つのインテジャー
演算器(I−ALU)5,6,分岐の制御器(BRANCH)7,およ
び例外処理部(EXEPTION)8が設けられている。これら
の各演算ユニット3,4,〜8への命令の分配供給は、分配
マトリックス9にて制御される。
しは、例えば4命令づつ同時に行われ、これらの命令は
リソース競合分析器11を介して前記キャッシュメモリ2
に並列的に取り込まれる。この際、リソース競合分析器
11は命令のOPコード等を参照して上記各命令の種類を調
べ、前述した如く複数個設けられている演算ユニット3,
4,〜8の中のどれをその命令の実行に使用するかをそれ
ぞれ分析決定する。更にリソース競合分析器11は、上記
各命令に対する分析結果に基づき、上述した4つの命令
の中で同じ演算ユニットを使用してその処理が実行され
るもの、つまり同じ演算ユニットを使用する命令がある
か否かを調べる。そして同じ演算ユニットを使用する命
令の存在が検出されたとき、リソース競合分析器11はそ
れらの命令に対して同一のクロックでは実行不可能であ
る旨の情報を付加する。
直ぐに適用可能であるか否か、つまり4つの命令間で同
じ演算ユニットを使用するものがないかを調べ、演算ユ
ニットの重なりが検出された場合には、優先順位の低い
命令に対して演算ユニットの使用を待たせるべく、その
命令に対応するフラグに[1]を立てる。尚、ここでは
命令の優先順位は、例えば同時に読み出される4つの命
令の番地によって定義付けられ、後の番地の命令程、そ
の優先順位が低く設定される。従って優先順位の最も高
い命令については、上述したフラグは常に[0]が設定
されることになり、実質的にはこれに対するフラグビッ
トは設定されない。従って、4つの命令中の番地が後側
の3つの命令に対してのみリソースの競合を表示する為
のフラグビットが設けられることになる。
は、例えば第2図に例示するように、各命令毎に使用す
る演算ユニットの種類を示す情報と、これらの命令のリ
ソースが競合しているか否かを示す上述した3ビットの
フラグからなる。この例では4つの命令に対してそれぞ
れ演算の種類を分析し、且つここで準備されている演算
の種類が前述したように6種類であることから、各命令
毎に演算の種別を示す為の3ビットの情報と、前述した
リソースの競合を示す3ビットのフラグが準備されるこ
とになり、結局、付加情報は第2図に示すように合計15
ビットの情報として表現される。
ットの情報量は、プロセッサにおける元々のデータ単位
が128ビットであることを考えた場合、さほど多くはな
い。
を求めるプロセスは、これをハードワイヤードロジック
を用いて実行するにしてもかなりの処理時間を必要とす
る。従って上述した如く解析された結果(付加情報)に
ついては、前述した4つの命令と共にキャッシュメモリ
2に格納しておく。
モリ2から読み出した4つの命令を命令バッファ12に格
納し、この命令バッファ12に格納された各命令を前記分
配マトリックス9を介して前述した6種類の演算ユニッ
ト3,4,〜8にそれぞれ分配することによりなされる。こ
の際、命令バッファ12は、前記キャッシュメモリ11に求
められている前述した付加情報をそのまま読み出して格
納する。そして分配マトリックス9では前記命令バッフ
ァ12に求められた各命令とその付加情報、およびプロセ
ッサ内に設けられているプログラムカウンタの値を参照
し、各命令に割り当てられた演算ユニットを判定してそ
の演算ユニットに命令を受け渡す。つまり命令実行時に
その命令を実行する為の演算ユニットを調べたり、また
演算ユニットの競合を調べる等の処理を行うことなく、
前記所定の付加情報に従って直接的に演算ユニットに対
する命令の受け渡しを実行する。この結果、ごく簡単な
ロジックだけで前記各演算ユニットに対して効果的に命
令の供給を行い、命令実行の時間的なオーバーヘッドを
殆ど生じることなくその命令を実行するものとなってい
る。
されると同時にそのレジスタ番号を解析し、レジスタ1
3,14からの読み出しを行う。また同時にその演算結果を
格納すべきレジスタも解析し、この解析結果に対応する
番号のスコアボード15,16を[1]にする。このスコア
ボード15,16は前述した演算実行の可能性を調べる為に
用いられるものである。このようなスコアボード15,16
にセットされた情報を用いて前記各演算ユニット3,4,〜
8はそこで実行されている演算を正常に終了できるかど
うかを判定する。そしてスコアボード15,16の情報か
ら、その演算の入力のレジスタの値が意味のない値であ
ったことが判明した場合には、その演算結果を捨て、次
のクロックで再び同じ演算の実行を開始することでプロ
グラムの正当性を保つものとなっている。
メモリ1からキャッシュメモリ2に複数の命令を読み出
す際、これらの命令の同時実行可能性の判断を行い、更
に計算機リソース(演算ユニット)の競合関係を調べる
ものとなっている。そして各命令の実行時には、予め調
べられている上述した同時実行可能性、およびリソース
の競合関係の情報に従って各命令の実行を制御すること
で、時間的なオーバーヘッドを極力低減するものとなっ
ている。この結果、この電子計算機では複数の命令を効
率的に同時実行し、その演算処理効率の向上が図られる
ようになっている。
て今少し詳しく説明する。
図に示すように、レジスタ21と、4つの判定回路22,23,
24,25とをビット対応に巡回的に接続して構成される。
レジスタ21は、レーテンシーを持つ演算ユニットが存在
することで、1クロックで実行終了とならない命令の為
に設けられるものであって、各ビットに前述した各レジ
スタからの読み出しの可能性を示す情報をそれぞれ格納
する。このレジスタ21の各ビットは、前記演算ユニット
の各番号にそれぞれ対応している。しかしてレジスタ21
の各ビットには、命令デコーダからの出力から、その命
令を実行する演算ユニットがレーテンシーを持つと判断
された場合にはデータ[1]が立てられる。そしてその
リセットは、レーテンシーを持つ演算ユニットが、実際
にその演算結果をレジスタに書き込む際に行われる。
2に格納された4つの命令のそれぞれが実行可能である
か否かを判定する。しかしてこれらの判定回路22,23,2
4,25は前述した4つの命令の優先順位に従って、図面
上、その左隣のレジスタ21(判定回路22,23,24を含む)
の情報により示される演算ユニットの使用状況と、前記
命令バッファ12に格納された命令が必要とするレジスタ
(演算ユニット)とをそれぞれ比較する。そしてレジス
タの値が正しくない場合、つまりスコアボードの該当ビ
ットが[1]である場合には、その実行結果をキャンセ
ルする。またこれらの命令中でレーテンシーを有するも
のが存在する場合には、スコアボード上の該当ビットに
[1]を書き込む。このような判定処理を、左側の優先
順位の高い命令から順に行うことで、その命令実行の正
当性を保つものとなっている。
て具体的に説明する。説明の徒な複雑化を避けるため
に、2つの命令を同時に実行可能であるとし、その命令
が第4図(a)に示すように I1[r3←r2+r1],I2[r4←r1*r5] I3[r6←r3+r5],I4[r7←r4*r1] I5[r8←r6+r7],I6[r9←r6+r3] として2つづつ与えられるものとする。
ジスタスコアボード上にはレーテンシーを示す情報が立
ってなく、また命令I2が命令I1の結果を使用することも
していないので、第4図(b)に示すようにこれらの命
令I1,I2を同時に実行開始する。しかも命令I1は加算演
算であり、ここでは1クロックで終了するのに対して、
命令I2については乗算演算であり、ここではその演算実
行に3クロックを要する。このことから命令I2のディス
ティネーションであるレジスタr4に対応するスコアボー
ド上の該当ビット位置に[1]を立てる。
3,I4を実行しようとすると、命令I3については、そのソ
ースに前記スコアボード上で[1]が立てられていない
レジスタだけを用いて演算を行い得ることから、直ちに
その演算実行を開始する。しかし命令I4については、そ
のソースとして、前記スコアボード上で[1]が立てら
れているレジスタr4を使用することから、その演算実行
については待たされる。そして命令I4については、前述
した命令I2の実行が3クロックを掛けて終了し、レジス
タr4についてスコアボード上で立てられたデータが
[0]にリセットされた時点でその実行が開始される。
この際、命令I4の実行開始に伴い、この命令I4が乗算演
算であることから、そのディスティネーションであるレ
ジスタr7に対応するスコアボード上の該当ビット位置に
[1]を立てる。
は、命令I5が前記命令I4の実行結果であるレジスタr7に
格納されたデータを使用することから、命令I4の実行が
終了するまで、その実行が待たされる。そして命令I4の
実行終了に伴い、命令I5は、その演算に用いるレジスタ
r6,r7が使用されていないことを条件として、その実行
が開始される。そしてこの命令I5の実行に伴い、命令I6
の実行が、その演算に用いるレジスタr6,r3が使用され
ていないことを条件として開始される。
らば前記命令I5の実行開始に先立って実行するようにす
ることも可能である。
行の正当性のチェックを行うことにより、プログラムの
正当性を保ちながら複数の命令を同時に実行することが
可能となる。
理的には上述した例と全く同様に作用し、プログラムの
正当性がチェックされながら複数の命令が同時に実行さ
れることになる。
図に示すように構成される。
列に読み出される4つの命令を一端格納する読出しバッ
ファ31を備え、この読出しバッファ31に格納した4つの
命令をそれぞれキャッシュメモリ2に転送する機能を備
えると共に、前記読出しバッファ31に格納した4つの命
令をそれぞれ解析する4つの命令デコーダ32,33,34,45
を備える。これらの命令デコーダ32,33,34,45は、各命
令の実行に使用する計算機リソース(演算ユニット)を
調べ、更に優先順位の高い命令においてその計算機リソ
ース(演算ユニット)が既に使用されることが決定され
ているか否かを調べるものである。
デコーダ32を除く他の命令デコーダ33,34,35は、その上
位のデコーダ32,33,34のデコード出力結果を順に入力
し、その命令が使用する計算機リソースの競合を判定す
ることになる。このような判定によりリソースの競合が
検出された場合、そのマークビットに[1]が立てられ
ることになる。そして付加情報生成部36は、前記各命令
デコーダ32,33,34,35のデコード結果、および上述した
リソース競合判定結果(マークビット)に従い、前述し
た第2図に示すような付加情報を生成し、これを前記命
令に付加してキャッシュメモリ2に格納することにな
る。
キャッシュメモリ2に同時に格納しておくようにしても
良いことは云うまでもない。このようにすれば、命令の
実行時にその命令を再度デコードすると云う2重の手間
を省くことが可能となる。
の依存関係を同時に調べることも可能である。このよう
にしてこのフェーズでレジスタの依存関係を調べておけ
ば、命令実行時に前述したスコアボードを用いた処理時
には、別のタイミングにある命令間でその正当性をチェ
ックするだけで良くなるので、そのハードウェア構成の
簡略化を図ることが可能となる。
ュメモリ2への命令の転送時に、複数の命令の同時実行
可能性を判定し、また計算機リソースの競合を判定する
ようにしておけば、例えば前述した分配マトリックス9
を第6図に示すように非常に簡単に構成することが可能
となる。即ち、命令バッファ12に読み出された複数の命
令を前述した各命令についての付加情報に従って複数の
演算ユニットに分配するだけで良くなるので、付加情報
を解析する為のデコーダ41,42,73,44とスイッチマトリ
ックス45だけにより、非常に簡単なハードウェア構成に
より分配マトリックス9を構築する実現することが可能
となる。
ッファ12に格納された命令とその付加情報、プログラム
カウンタの値等を参照して、適宜その命令実行タイミン
グで開閉されることになる。この結果、時間的なオーバ
ーヘッドを招くことなく、簡易にして複数の命令を、そ
の命令の実行に用いられる演算ユニットにそれぞれ分配
することが可能となる。
い。上述した実施例ではメインメモリ1からキャッシュ
メモリ2への命令の転送時に、その命令についての同時
実行可能性、およびリソースの競合を判定するようにし
たが、このフェーズにおいて同時実行可能性だけを判定
するようにしても良い。またリソース競合の可能性の一
部だけを同時に判定するようにすることも可能である。
更には、実施例では優先順位の高い命令が実行された後
に、次の命令の実行を行うようにしたが、優先順位の高
い命令の実行開始前であっても、これらの命令とは独立
に実行可能な命令を逐次実行するように制御することも
勿論可能である。つまりキャッシュメモリに命令を登録
する際にレジスタの依存関係を調べておき、命令の実行
時にはその結果だけに従って各命令をそれぞれ実行する
ようにすることも可能である。
てリソース毎に各命令を振り分けてしまった後に、各命
令をキャッシュメモリに登録するようにしても良い。こ
のようにすれば、命令実行時のデコード処理を極めて簡
単化することが可能となり、デコード処理の複雑さに伴
うオーバーヘッドを解消することが可能となる。
ステム構成の場合には、リソースの割り当てや実行の可
能性判断等を、例えばプロセッサに対して1番近いキャ
ッシュメモリに命令を転送する際に行うようにすれば、
その効果が十分に発揮される。
一のフィールドを複数のリソースがそのコードによって
共有するような場合にも有効である。更には複数の命令
に対する同時実行可能性の判定結果に従い、プログラム
の意味が変わらない範囲でその命令の実行順序を組み替
えるような機能を持たせることも可能である。その他、
本発明はその要旨を逸脱しない範囲で種々変形して実施
することができる。
する同時実行可能性の判断や計算機リソースの競合に対
する判定の少なくとも一部の処理を、プロセッサ内に命
令を取り込む際に行うので、命令実行時における時間的
なオーバーヘッドを大幅に軽減してその処理効率を高め
ることができる。しかも複数の命令を効率的に同時実行
させることが可能となり、その演算処理効率、実行的な
処理速度を著しく向上させ得る等の実用上多大なる効果
が奏せられる。
ので、第1図は実施例に係る計算機におけるプロセッサ
の概略構成を示すブロック図、第2図は複数の命令に対
して付加される付加情報のフォーマットを示す図、第3
図は実施例におけるスコアボードの構成例を示す図、第
4図はスコアボードの情報に従う命令実行の動作例を示
す図、第5図はリソース競合分析器の構成例を示す図、
第6図は分離マトリックスの構成例を示す図である。 1……メインメモリ、2……キャッシュメモリ、3,4,〜
8……演算ユニット、9……分配マトリックス、11……
リソース競合分析器、12……命令バッファ、13,14……
レジスタ、15,16……スコアボード、21……レジスタ、2
2,23,24,25……判定回路、31……読み出しバッファ、3
2,33,34,45……デコーダ、36……付加情報生成部、41,4
2,43,44……デコーダ、45……スイッチマトリックス。
Claims (9)
- 【請求項1】キャッシュメモリに複数の命令が読み込ま
れるときに、該複数の命令の同時実行の可能性の判断を
行う手段と、 前記キャッシュメモリに読み込まれる前記命令の種類に
応じて該命令の実行に必要なリソースの割り当てを行う
手段とを具備することを特徴とする電子計算機。 - 【請求項2】前記キャッシュメモリは、前記判断結果を
格納するビットフィールドを具備し、前記ビットフィー
ルドは、前記複数の命令のリソースが競合しているか否
かを示すフラグを格納するためのフィールドを有するこ
とを特徴とする請求項1に記載の電子計算機。 - 【請求項3】キャッシュメモリに複数の命令が読み込ま
れるときに、前記命令の種類に応じて該命令の実行に必
要なリソースの割り当てを行う手段と、 前記キャッシュメモリに読み込まれる複数の命令の同時
実行の可能性の判断を行う手段とを具備することを特徴
とする電子計算機。 - 【請求項4】キャッシュメモリに複数の命令が読み込ま
れるときに、前記命令の種類に応じて該命令の実行に必
要なリソースの割り当てを行う手段を具備することを特
徴とする電子計算機。 - 【請求項5】前記キャッシュメモリは、前記判断結果を
格納するビットフィールドを具備し、前記ビットフィー
ルドは、前記複数の命令がそれぞれ使用する演算ユニッ
トの種類を示す情報を各命令に対応して格納するための
フィールドを有することを特徴とする請求項3または4
に記載の電子計算機。 - 【請求項6】キャッシュメモリに複数の命令が読み込ま
れるときに、該複数の命令の同時実行の可能性の判断を
行う手段と、 前記キャッシュメモリに前記複数の命令が読み込まれる
ときに、前記命令の種類に応じて該命令の実行に必要な
リソースの割り当てを行う手段とを具備することを特徴
とする電子計算機。 - 【請求項7】前記キャッシュメモリは、前記判断結果を
格納するビットフィールドを具備し、前記ビットフィー
ルドは、前記複数の命令がそれぞれ使用する演算ユニッ
トの種類を示す情報を各命令に対応して格納するための
第1のフィールドと、前記複数の命令のリソースが競合
しているか否かを示すフラグを格納するための第2のフ
ィールドとを有することを特徴とする請求項6に記載の
電子計算機。 - 【請求項8】階層構造化されたキャッシュメモリを備
え、プロセッサに対して一番近いキャッシュメモリに複
数の命令を転送するときに、前記複数の命令の同時実行
の可能性の判断または前記命令に対するリソースの割り
当ての少なくとも一方を行うことを特徴とする電子計算
機。 - 【請求項9】前記キャッシュメモリは、前記命令のデコ
ード結果を格納することを特徴とする請求項1ないし8
のいずれか1項に記載の電子計算機。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2084607A JP2818249B2 (ja) | 1990-03-30 | 1990-03-30 | 電子計算機 |
| DE69114333T DE69114333T2 (de) | 1990-03-30 | 1991-03-28 | Rechner mit der Fähigkeit mehrere Befehle gleichzeitig auszuführen. |
| EP91302832A EP0449661B1 (en) | 1990-03-30 | 1991-03-28 | Computer for Simultaneously executing plural instructions |
| US08/191,069 US5377339A (en) | 1990-03-30 | 1994-02-03 | Computer for simultaneously executing instructions temporarily stored in a cache memory with a corresponding decision result |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2084607A JP2818249B2 (ja) | 1990-03-30 | 1990-03-30 | 電子計算機 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03282958A JPH03282958A (ja) | 1991-12-13 |
| JP2818249B2 true JP2818249B2 (ja) | 1998-10-30 |
Family
ID=13835379
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2084607A Expired - Lifetime JP2818249B2 (ja) | 1990-03-30 | 1990-03-30 | 電子計算機 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5377339A (ja) |
| EP (1) | EP0449661B1 (ja) |
| JP (1) | JP2818249B2 (ja) |
| DE (1) | DE69114333T2 (ja) |
Families Citing this family (33)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5214763A (en) * | 1990-05-10 | 1993-05-25 | International Business Machines Corporation | Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism |
| EP0454985B1 (en) * | 1990-05-04 | 1996-12-18 | International Business Machines Corporation | Scalable compound instruction set machine architecture |
| GB9027853D0 (en) * | 1990-12-21 | 1991-02-13 | Inmos Ltd | Multiple instruction issue |
| US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
| US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
| JP2779557B2 (ja) * | 1991-07-09 | 1998-07-23 | 三菱電機株式会社 | 並列演算処理装置 |
| WO1993020505A2 (en) | 1992-03-31 | 1993-10-14 | Seiko Epson Corporation | Superscalar risc instruction scheduling |
| JP3637920B2 (ja) | 1992-05-01 | 2005-04-13 | セイコーエプソン株式会社 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
| 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 |
| EP1107111A3 (en) | 1992-12-31 | 2002-02-06 | Seiko Epson Corporation | System and method for register renaming |
| DE69422780T2 (de) * | 1993-11-05 | 2000-08-17 | Intergraph Corp., Huntsville | Superskalare Rechnerarchitektur mit Softwarescheduling |
| US6360313B1 (en) | 1993-11-05 | 2002-03-19 | Intergraph Corporation | Instruction cache associative crossbar switch |
| EP0974894B1 (en) | 1993-11-05 | 2002-02-27 | Intergraph Corporation | Instruction cache associative cross-bar switch |
| JP2815236B2 (ja) * | 1993-12-15 | 1998-10-27 | シリコン・グラフィックス・インコーポレーテッド | スーパースカーラマイクロプロセッサのための命令ディスパッチ方法及びレジスタ競合についてのチェック方法 |
| US5974534A (en) * | 1994-02-14 | 1999-10-26 | Hewlett-Packard Company | Predecoding and steering mechanism for instructions in a superscalar processor |
| US5682491A (en) * | 1994-12-29 | 1997-10-28 | International Business Machines Corporation | Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier |
| 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 |
| DE69734399D1 (de) * | 1996-01-24 | 2006-03-02 | Sun Microsystems Inc | Verfahren und vorrichtung zur stapel-cachespeicherung |
| US6026485A (en) * | 1996-01-24 | 2000-02-15 | Sun Microsystems, Inc. | Instruction folding for a stack-based machine |
| JPH1011289A (ja) * | 1996-06-19 | 1998-01-16 | Mitsubishi Electric Corp | 並列処理プロセッサにおける命令数拡張方法および並列処理プロセッサ |
| US5870578A (en) * | 1997-12-09 | 1999-02-09 | Advanced Micro Devices, Inc. | Workload balancing in a microprocessor for reduced instruction dispatch stalling |
| FR2793572B1 (fr) * | 1999-05-10 | 2001-10-05 | Cit Alcatel | Procede et dispositif pour commander l'ordre de depart d'informations ou d'objets stockes temporairement |
| JP2001034474A (ja) * | 1999-07-16 | 2001-02-09 | Nec Corp | データ処理装置及びデータ処理方法 |
| US7149878B1 (en) | 2000-10-30 | 2006-12-12 | Mips Technologies, Inc. | Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values |
| US7711926B2 (en) | 2001-04-18 | 2010-05-04 | Mips Technologies, Inc. | Mapping system and method for instruction set processing |
| US6826681B2 (en) | 2001-06-18 | 2004-11-30 | Mips Technologies, Inc. | Instruction specified register value saving in allocated caller stack or not yet allocated callee stack |
| US7107439B2 (en) | 2001-08-10 | 2006-09-12 | Mips Technologies, Inc. | System and method of controlling software decompression through exceptions |
| GB2437836B (en) * | 2005-02-25 | 2009-01-14 | Clearspeed Technology Plc | Microprocessor architectures |
| US20060200648A1 (en) * | 2005-03-02 | 2006-09-07 | Andreas Falkenberg | High-level language processor apparatus and method |
| JP2010097557A (ja) * | 2008-10-20 | 2010-04-30 | Toshiba Corp | セットアソシアティブ方式のキャッシュ装置及びキャッシュ方法 |
| JP5300407B2 (ja) | 2008-10-20 | 2013-09-25 | 株式会社東芝 | 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 |
| JP2011198091A (ja) * | 2010-03-19 | 2011-10-06 | Toshiba Corp | 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム |
| US10824927B1 (en) * | 2018-09-21 | 2020-11-03 | Enernet Global, LLC | Systems, methods and computer readable medium for management of data buffers using functional paradigm |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4437149A (en) * | 1980-11-17 | 1984-03-13 | International Business Machines Corporation | Cache memory architecture with decoding |
| EP0239081B1 (en) * | 1986-03-26 | 1995-09-06 | Hitachi, Ltd. | Pipelined data processor capable of decoding and executing plural instructions in parallel |
| US4722050A (en) * | 1986-03-27 | 1988-01-26 | Hewlett-Packard Company | Method and apparatus for facilitating instruction processing of a digital computer |
| US4916652A (en) * | 1987-09-30 | 1990-04-10 | International Business Machines Corporation | Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures |
| US5027270A (en) * | 1988-10-11 | 1991-06-25 | Mips Computer Systems, Inc. | Processor controlled interface with instruction streaming |
| US5099421A (en) * | 1988-12-30 | 1992-03-24 | International Business Machine Corporation | Variable length pipe operations sequencing |
| US5075844A (en) * | 1989-05-24 | 1991-12-24 | Tandem Computers Incorporated | Paired instruction processor precise exception handling mechanism |
| US5197135A (en) * | 1990-06-26 | 1993-03-23 | International Business Machines Corporation | Memory management for scalable compound instruction set machines with in-memory compounding |
-
1990
- 1990-03-30 JP JP2084607A patent/JP2818249B2/ja not_active Expired - Lifetime
-
1991
- 1991-03-28 EP EP91302832A patent/EP0449661B1/en not_active Expired - Lifetime
- 1991-03-28 DE DE69114333T patent/DE69114333T2/de not_active Expired - Fee Related
-
1994
- 1994-02-03 US US08/191,069 patent/US5377339A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH03282958A (ja) | 1991-12-13 |
| DE69114333T2 (de) | 1996-05-15 |
| DE69114333D1 (de) | 1995-12-14 |
| EP0449661B1 (en) | 1995-11-08 |
| US5377339A (en) | 1994-12-27 |
| EP0449661A3 (en) | 1992-06-03 |
| EP0449661A2 (en) | 1991-10-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2818249B2 (ja) | 電子計算機 | |
| JP3209205B2 (ja) | プロセッサにおけるレジスタ内容の継承装置 | |
| US6557095B1 (en) | Scheduling operations using a dependency matrix | |
| US6334182B2 (en) | Scheduling operations using a dependency matrix | |
| US7844802B2 (en) | Instructions for ordering execution in pipelined processes | |
| US7526636B2 (en) | Parallel multithread processor (PMT) with split contexts | |
| JP4202244B2 (ja) | Vliw型dsp,及びその動作方法 | |
| US7200738B2 (en) | Reducing data hazards in pipelined processors to provide high processor utilization | |
| US5125097A (en) | Data flow type information processors where data packets pass through plurality of merging and branching portions of the internal path | |
| JP2004529405A (ja) | 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ | |
| JPH02227730A (ja) | データ処理システム | |
| JPH0527971A (ja) | 情報処理装置 | |
| US5848256A (en) | Method and apparatus for address disambiguation using address component identifiers | |
| KR100983135B1 (ko) | 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법 | |
| US5542079A (en) | Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage | |
| RU2375768C2 (ru) | Процессор и способ осуществления операций непрямого чтения и записи регистра | |
| JP2883465B2 (ja) | 電子計算機 | |
| Kawano et al. | Fine-grain multi-thread processor architecture for massively parallel processing | |
| KR100837400B1 (ko) | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 | |
| JP2814683B2 (ja) | 命令処理装置 | |
| JPH08263289A (ja) | 複数命令流パイプライン計算機 | |
| JP2668987B2 (ja) | データ処理装置 | |
| JPH1173301A (ja) | 情報処理装置 | |
| JPH0476731A (ja) | パイプライン型マイクロプロセッサのアセンブラ処理方式 | |
| JP3743155B2 (ja) | パイプライン制御型計算機 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070821 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080821 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090821 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090821 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100821 Year of fee payment: 12 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100821 Year of fee payment: 12 |