[go: up one dir, main page]

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
Application number
JP2084607A
Other languages
English (en)
Other versions
JPH03282958A (ja
Inventor
光男 斉藤
健 相川
健二 皆川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2084607A priority Critical patent/JP2818249B2/ja
Priority to DE69114333T priority patent/DE69114333T2/de
Priority to EP91302832A priority patent/EP0449661B1/en
Publication of JPH03282958A publication Critical patent/JPH03282958A/ja
Priority to US08/191,069 priority patent/US5377339A/en
Application granted granted Critical
Publication of JP2818249B2 publication Critical patent/JP2818249B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent 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は上記プロ
セッサによる演算処理に供される複数の命令を所定の順
序で格納したメインメモリである。このメインメモリ1
に格納された命令は、基本的にはプロセッサ内部のキャ
ッシュメモリ2に転送読み出しされた後、このプロセッ
サ内に準備された計算機リソースである演算ユニットに
与えられてそれぞれ演算実行される。
尚、このプロセッサには、複数の命令を同時に実行可
能ならしめるべく、複数の演算ユニットとして、ここで
はフローティング・アダー(F−ADD)3,フローティン
グ・マルチプライヤー(F−MUL)4,2つのインテジャー
演算器(I−ALU)5,6,分岐の制御器(BRANCH)7,およ
び例外処理部(EXEPTION)8が設けられている。これら
の各演算ユニット3,4,〜8への命令の分配供給は、分配
マトリックス9にて制御される。
さてメインメモリ1からプロセッサへの命令の読み出
しは、例えば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
ビットの情報として表現される。
尚、このようにして4つの命令に付加される上記15ビ
ットの情報量は、プロセッサにおける元々のデータ単位
が128ビットであることを考えた場合、さほど多くはな
い。
しかしてこのようにして4つの命令に対する付加情報
を求めるプロセスは、これをハードワイヤードロジック
を用いて実行するにしてもかなりの処理時間を必要とす
る。従って上述した如く解析された結果(付加情報)に
ついては、前述した4つの命令と共にキャッシュメモリ
2に格納しておく。
さて実際に命令を実行する際には、前記キャッシュメ
モリ2から読み出した4つの命令を命令バッファ12に格
納し、この命令バッファ12に格納された各命令を前記分
配マトリックス9を介して前述した6種類の演算ユニッ
ト3,4,〜8にそれぞれ分配することによりなされる。こ
の際、命令バッファ12は、前記キャッシュメモリ11に求
められている前述した付加情報をそのまま読み出して格
納する。そして分配マトリックス9では前記命令バッフ
ァ12に求められた各命令とその付加情報、およびプロセ
ッサ内に設けられているプログラムカウンタの値を参照
し、各命令に割り当てられた演算ユニットを判定してそ
の演算ユニットに命令を受け渡す。つまり命令実行時に
その命令を実行する為の演算ユニットを調べたり、また
演算ユニットの競合を調べる等の処理を行うことなく、
前記所定の付加情報に従って直接的に演算ユニットに対
する命令の受け渡しを実行する。この結果、ごく簡単な
ロジックだけで前記各演算ユニットに対して効果的に命
令の供給を行い、命令実行の時間的なオーバーヘッドを
殆ど生じることなくその命令を実行するものとなってい
る。
しかして前記各演算ユニット3,4,〜8は、命令が供給
されると同時にそのレジスタ番号を解析し、レジスタ1
3,14からの読み出しを行う。また同時にその演算結果を
格納すべきレジスタも解析し、この解析結果に対応する
番号のスコアボード15,16を[1]にする。このスコア
ボード15,16は前述した演算実行の可能性を調べる為に
用いられるものである。このようなスコアボード15,16
にセットされた情報を用いて前記各演算ユニット3,4,〜
8はそこで実行されている演算を正常に終了できるかど
うかを判定する。そしてスコアボード15,16の情報か
ら、その演算の入力のレジスタの値が意味のない値であ
ったことが判明した場合には、その演算結果を捨て、次
のクロックで再び同じ演算の実行を開始することでプロ
グラムの正当性を保つものとなっている。
このようにこの電子計算機のプロセッサでは、メイン
メモリ1からキャッシュメモリ2に複数の命令を読み出
す際、これらの命令の同時実行可能性の判断を行い、更
に計算機リソース(演算ユニット)の競合関係を調べる
ものとなっている。そして各命令の実行時には、予め調
べられている上述した同時実行可能性、およびリソース
の競合関係の情報に従って各命令の実行を制御すること
で、時間的なオーバーヘッドを極力低減するものとなっ
ている。この結果、この電子計算機では複数の命令を効
率的に同時実行し、その演算処理効率の向上が図られる
ようになっている。
次に上述した如く構成された電子計算機の作用につい
て今少し詳しく説明する。
前述したレジスタスコアボード15,16は、例えば第3
図に示すように、レジスタ21と、4つの判定回路22,23,
24,25とをビット対応に巡回的に接続して構成される。
レジスタ21は、レーテンシーを持つ演算ユニットが存在
することで、1クロックで実行終了とならない命令の為
に設けられるものであって、各ビットに前述した各レジ
スタからの読み出しの可能性を示す情報をそれぞれ格納
する。このレジスタ21の各ビットは、前記演算ユニット
の各番号にそれぞれ対応している。しかしてレジスタ21
の各ビットには、命令デコーダからの出力から、その命
令を実行する演算ユニットがレーテンシーを持つと判断
された場合にはデータ[1]が立てられる。そしてその
リセットは、レーテンシーを持つ演算ユニットが、実際
にその演算結果をレジスタに書き込む際に行われる。
しかして判定回路22,23,24,25は、前記命令バッファ1
2に格納された4つの命令のそれぞれが実行可能である
か否かを判定する。しかしてこれらの判定回路22,23,2
4,25は前述した4つの命令の優先順位に従って、図面
上、その左隣のレジスタ21(判定回路22,23,24を含む)
の情報により示される演算ユニットの使用状況と、前記
命令バッファ12に格納された命令が必要とするレジスタ
(演算ユニット)とをそれぞれ比較する。そしてレジス
タの値が正しくない場合、つまりスコアボードの該当ビ
ットが[1]である場合には、その実行結果をキャンセ
ルする。またこれらの命令中でレーテンシーを有するも
のが存在する場合には、スコアボード上の該当ビットに
[1]を書き込む。このような判定処理を、左側の優先
順位の高い命令から順に行うことで、その命令実行の正
当性を保つものとなっている。
このスコアボード上での動きについて第4図を参照し
て具体的に説明する。説明の徒な複雑化を避けるため
に、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つづつ与えられるものとする。
この場合には、最初の命令I1,I2については、前記レ
ジスタスコアボード上にはレーテンシーを示す情報が立
ってなく、また命令I2が命令I1の結果を使用することも
していないので、第4図(b)に示すようにこれらの命
令I1,I2を同時に実行開始する。しかも命令I1は加算演
算であり、ここでは1クロックで終了するのに対して、
命令I2については乗算演算であり、ここではその演算実
行に3クロックを要する。このことから命令I2のディス
ティネーションであるレジスタr4に対応するスコアボー
ド上の該当ビット位置に[1]を立てる。
次に、その次のクロックタイミングで2列目の命令I
3,I4を実行しようとすると、命令I3については、そのソ
ースに前記スコアボード上で[1]が立てられていない
レジスタだけを用いて演算を行い得ることから、直ちに
その演算実行を開始する。しかし命令I4については、そ
のソースとして、前記スコアボード上で[1]が立てら
れているレジスタr4を使用することから、その演算実行
については待たされる。そして命令I4については、前述
した命令I2の実行が3クロックを掛けて終了し、レジス
タr4についてスコアボード上で立てられたデータが
[0]にリセットされた時点でその実行が開始される。
この際、命令I4の実行開始に伴い、この命令I4が乗算演
算であることから、そのディスティネーションであるレ
ジスタr7に対応するスコアボード上の該当ビット位置に
[1]を立てる。
しかる後、次の命令I5,I6を実行しようとする場合に
は、命令I5が前記命令I4の実行結果であるレジスタr7に
格納されたデータを使用することから、命令I4の実行が
終了するまで、その実行が待たされる。そして命令I4の
実行終了に伴い、命令I5は、その演算に用いるレジスタ
r6,r7が使用されていないことを条件として、その実行
が開始される。そしてこの命令I5の実行に伴い、命令I6
の実行が、その演算に用いるレジスタr6,r3が使用され
ていないことを条件として開始される。
尚、命令I6に関しては、制御の複雑さを気にしないな
らば前記命令I5の実行開始に先立って実行するようにす
ることも可能である。
このようなスコアボードを用いた複数の命令の同時実
行の正当性のチェックを行うことにより、プログラムの
正当性を保ちながら複数の命令を同時に実行することが
可能となる。
尚、同時実行可能な命令数が3つ以上であっても、原
理的には上述した例と全く同様に作用し、プログラムの
正当性がチェックされながら複数の命令が同時に実行さ
れることになる。
一方、前述したリソース競合分析器11は、例えば第5
図に示すように構成される。
このリソース競合分析器11は、メインメモリ1から並
列に読み出される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重の手間
を省くことが可能となる。
また上述した命令のデコード処理に際して、レジスタ
の依存関係を同時に調べることも可能である。このよう
にしてこのフェーズでレジスタの依存関係を調べておけ
ば、命令実行時に前述したスコアボードを用いた処理時
には、別のタイミングにある命令間でその正当性をチェ
ックするだけで良くなるので、そのハードウェア構成の
簡略化を図ることが可能となる。
かくして上述したようにメインメモリ1からキャッシ
ュメモリ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……スイッチマトリックス。
フロントページの続き (56)参考文献 特開 平2−130634(JP,A) 特開 平3−141429(JP,A) 特開 平3−154125(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】キャッシュメモリに複数の命令が読み込ま
    れるときに、該複数の命令の同時実行の可能性の判断を
    行う手段と、 前記キャッシュメモリに読み込まれる前記命令の種類に
    応じて該命令の実行に必要なリソースの割り当てを行う
    手段とを具備することを特徴とする電子計算機。
  2. 【請求項2】前記キャッシュメモリは、前記判断結果を
    格納するビットフィールドを具備し、前記ビットフィー
    ルドは、前記複数の命令のリソースが競合しているか否
    かを示すフラグを格納するためのフィールドを有するこ
    とを特徴とする請求項1に記載の電子計算機。
  3. 【請求項3】キャッシュメモリに複数の命令が読み込ま
    れるときに、前記命令の種類に応じて該命令の実行に必
    要なリソースの割り当てを行う手段と、 前記キャッシュメモリに読み込まれる複数の命令の同時
    実行の可能性の判断を行う手段とを具備することを特徴
    とする電子計算機。
  4. 【請求項4】キャッシュメモリに複数の命令が読み込ま
    れるときに、前記命令の種類に応じて該命令の実行に必
    要なリソースの割り当てを行う手段を具備することを特
    徴とする電子計算機。
  5. 【請求項5】前記キャッシュメモリは、前記判断結果を
    格納するビットフィールドを具備し、前記ビットフィー
    ルドは、前記複数の命令がそれぞれ使用する演算ユニッ
    トの種類を示す情報を各命令に対応して格納するための
    フィールドを有することを特徴とする請求項3または4
    に記載の電子計算機。
  6. 【請求項6】キャッシュメモリに複数の命令が読み込ま
    れるときに、該複数の命令の同時実行の可能性の判断を
    行う手段と、 前記キャッシュメモリに前記複数の命令が読み込まれる
    ときに、前記命令の種類に応じて該命令の実行に必要な
    リソースの割り当てを行う手段とを具備することを特徴
    とする電子計算機。
  7. 【請求項7】前記キャッシュメモリは、前記判断結果を
    格納するビットフィールドを具備し、前記ビットフィー
    ルドは、前記複数の命令がそれぞれ使用する演算ユニッ
    トの種類を示す情報を各命令に対応して格納するための
    第1のフィールドと、前記複数の命令のリソースが競合
    しているか否かを示すフラグを格納するための第2のフ
    ィールドとを有することを特徴とする請求項6に記載の
    電子計算機。
  8. 【請求項8】階層構造化されたキャッシュメモリを備
    え、プロセッサに対して一番近いキャッシュメモリに複
    数の命令を転送するときに、前記複数の命令の同時実行
    の可能性の判断または前記命令に対するリソースの割り
    当ての少なくとも一方を行うことを特徴とする電子計算
    機。
  9. 【請求項9】前記キャッシュメモリは、前記命令のデコ
    ード結果を格納することを特徴とする請求項1ないし8
    のいずれか1項に記載の電子計算機。
JP2084607A 1990-03-30 1990-03-30 電子計算機 Expired - Lifetime JP2818249B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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