JPH03282958A - 電子計算機 - Google Patents

電子計算機

Info

Publication number
JPH03282958A
JPH03282958A JP2084607A JP8460790A JPH03282958A JP H03282958 A JPH03282958 A JP H03282958A JP 2084607 A JP2084607 A JP 2084607A JP 8460790 A JP8460790 A JP 8460790A JP H03282958 A JPH03282958 A JP H03282958A
Authority
JP
Japan
Prior art keywords
instruction
instructions
cache memory
execution
possibility
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.)
Granted
Application number
JP2084607A
Other languages
English (en)
Other versions
JP2818249B2 (ja
Inventor
Mitsuo Saito
斉藤 光男
Takeshi Aikawa
健 相川
Kenji Minagawa
皆川 健二
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 EP91302832A priority patent/EP0449661B1/en
Priority to DE69114333T priority patent/DE69114333T2/de
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; CALCULATING OR 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, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, 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; CALCULATING OR 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, 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; CALCULATING OR 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の目的コ (産業上の利用分野) 本発明は複数の計算機リソースを利用して複数の命令を
同時に実行する電子計算機に関する。
(従来の技術) 従来一般的な電子計算機では、メインメモリに格納され
ている命令を1個ずつ取り出しながら、その命令により
示される処理を実行するように構成されている。このよ
うな電子計算機は、その内部構造を比較的簡単に構築す
ることができると云う利点を有するものの、1サイクル
タイムに1つの処理しか実行きないので、その処理速度
がシステムクロック周波数に依存し、処理効率を高める
上で自ずと限界があった。
そこで最近では、計算機に準備した複数のリソースを有
効に活用し、メインメモリから読み出される複数の命令
を同時に実行処理することが種々試みられている。その
代表的な処理方式としては、例えばVL IW方式や5
uper 5calar方式がある。
しかし、上記VL IW方式では、従来のプログラムと
の間でコンパチビリティが取れないと云う問題がある。
また上記5uper 5calar方式では、命令実行
時に複数の命令に対する同時実行の可能性をその都度調
べるので、その回路構成が複雑化すると云う問題がある
。しかも複数の命令の同時実行可能性を命令実行時に調
べるので、命令の数が多くなるに従って同時実行可能性
の判断が困難化しまた必要な処理サイクルタイムの増加
(処理のオーバーヘッド)を招くと云う不具合がある。
(発明が解決しようとする課題) このように従来にあっては複数の計算機リソースを準備
し、これらの計算機リソースを有効に活用して複数の命
令を同時に実行処理することでその処理効率を高めよう
としても、一般的な電子計算機とのコンパチビリティを
保つ上で問題があり、また命令実行時のオーバーヘッド
を防いでその処理速度の高速化を図る上で問題があった
本発明はこのような事情を考慮してなされたもので、そ
の目的とするところは、従来の一般的な計算機との間で
のコンパチビリティを保ちながら、複数の命令を効率的
に同時実行することができ、その処理効率を高めること
のできる実用性の高い電子計算機を提供することにある
[発明の構成] (課題を解決するための手段) 本発明に係る電子計算機は、複数の命令に対する同時実
行可能性の判断や、上記複数の命令に対する計算機リソ
ースの配分の少なくとも一部を、その命令実行時ではな
く、メインメモリからキャッシュメモリに命令を転送す
る際に行うようにしたことを特徴とするものである。
そしてキャッシュメモリには、上記メインメモリからキ
ャッシュメモリへの命令転送時に判断された同時実行可
能性または計算機リソース配分に関する判断結果を格納
する為のビットフィールドを設けておき、このビットフ
ィールドの情報に従って複数の命令に対する同時実行の
制御、および計算機リソース配分の制御を行うようにし
たことを特徴とするものである。
(作 用) このような構成の電子計算機によれば、複数の命令に対
する同時実行可能性の判断や計算機リソースの配分処理
の少なくとも一部を、予め上記複数の命令をメインメモ
リからキャッシュメモリに転送する際に行っておくので
、命令実行時における実効的なオーバーヘッドを大幅に
低減することが可能となる。この結果、従来一般的な電
子計算機とのコンパチビイリティを保ちながら、命令実
行時のオーバーヘッドを防いで計算機処理効率の向上を
効果的に図ることが可能となる。
(実施例) 以下、図面を参照して本発明の一実施例に係る電子計算
機について説明する。
第1図は実施例に係る電子計算機の主要部であるプロセ
ッサの概略的なシステム構成図であり、1は上記プロセ
ッサによる演算処理に供される複数の命令を所定の順序
で格納したメインメモリである。このメインメモリ1に
格納された命令は、基本的にはプロセッサ内部のキャッ
シュメモリ2に転送読み出しされた後、このプロセッサ
内に準備された計算機リソースである演算ユニットに与
えられてそれぞれ演算実行される。
尚、このプロセッサには、複数の命令を同時に実行可能
ならしめるべく、複数の演算ユニットとして、ここでは
フローティング型アダー(F−^DD)3゜フローティ
ング・マルチプライヤ−(P−MUL)4. 2つのイ
ンチジャー演算器(+−ALU)5.6.分岐の制御器
(BRANCH)7 、および例外処理部(EXEPT
ION)8が設けられている。これらの各演算ユニット
3,4.〜8への命令の分配供給は、分配マトリックス
9にて制御される。
さてメインメモリ1からプロセッサへの命令の読み出し
は、例えば4命令づつ同時に行われ、これらの命令はリ
ソース競合分析器11を介して前記キャッシュメモリ2
に並列的に取り込まれる。この際、リソース競合分析器
11は命令のOPコード等を参照して上記各命令の種類
を調べ、前述した如く複数個設けられている演算ユニッ
ト3,4.〜8の中のどれをその命令の実行に使用する
かをそれぞれ分析決定する。更にリソース競合分析器1
1は、上記各命令に対する分析結果に基づき、上述した
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は、命令が供
給されると同時にそのレジスタ番号を解析し、レジスタ
13.14からの読み出しを行う。また同時にその演算
結果を格納すべきレジスタも解析し、この解析結果に対
応する番号のスコアボード15,16を[1コにする。
このスコアボード15,1Bは前述した演算実行の可能
性を調べる為に用いられるものである。このようなスコ
アボード15,1Bにセットされた情報を用いて前記各
演算ユニット3,4゜〜8はそこで実行されている演算
を正常に終了できるかどうかを判定する。そしてスコア
ボード15.16の情報から、その演算の入力のレジス
タの値が意味のない値で会ったことが判明した場合には
、その演算結果を捨て、次のクロックで再び同じ演算の
実行を開始することでプログラムの正当性を保つものと
なっている。
このようにこの電子計算機のプロセッサでは、メインメ
モリ1からキャッシュメモリ2に複数の命令を読み出す
際、これらの命令の同時実行可能性の判断を行い、更に
計算機リソース(演算ユニット)の競合関係を調べるも
のとなっている。そして各命令の実行時には、予め調べ
られている上述した同時実行可能性、およびリソースの
競合関係の情報に従って各命令の実行を制御することで
、時間的なオアバーヘッドを極力低減するものとなって
いる。この結果、この電子計算機では複数の命令を効率
的に同時実行し、その演算処理効率の向上が図られるよ
うになっている。
次に上述した如く構成された電子計算機の作用について
今少し詳しく説明する。
前述したレジスタスコアボード15.1Bは、例えば第
3図に示すように、レジスタ21と、4つの判定回路2
2.23,24.25とをビット対応に巡回的に接続し
て構成される。レジスタ21は、レーテンシ−を持つ演
算ユニットが存在することで、1クロツクで実行終了と
ならない命令の為に設けられるものであって、各ビット
に前述した各レジスタからの読み出しの可能性を示す情
報をそれぞれ格納する。このレジスタ21の各ビットは
、前記演算ユニットの各番号にそれぞれ対応している。
しかしてレジスタ21の各ビットには、命令デコーダか
らの出力から、その命令を実行する演算ユニットがレー
テンシーを持つと判断された場合にデータ[1]が立て
られる。そしてそのリセットは、レーテンシーを持つ演
算ユニットが、実際にその演算結果をレジスタに書き込
む際に行われる。
しかして判定回路22,23.24.25は、前記命令
バッファ12に格納された4つの命令のそれぞれが実行
可能であるか否かを判定する。しかしてこれらの判定回
路22.23,24.25は前述した4つの命令の優先
順位に従って、図面上、その左隣のレジスタ21(判定
回路22,23.24を含む)の情報により示される演
算ユニットの使用状況と、前記命令バッファ12に格納
された命令が必要とするレジスタ(演算ユニット)とを
それぞれ比較する。そしてレジスタの値が正しくない場
合、つまりスコアボードの該当ビットが[1コである場
合には、その実行結果をキャンセルする。またこれらの
命令中でレーテンシーを有するものが存在する場合には
、スコアボード上の該当ビットに[1]を書き込む。
このような判定処理を、左側の優先順位の高い命令から
順に行うことで、その命令実行の正当性を保つものとな
っている。
このスコアボード上での動きについて第4図を参照して
具体的に説明する。説明の徒な複雑化を避けるために、
2つの命令を同時に実行可能であるとし、その命令が第
4図(a)に示すようにN[r3←r2+rl]、  
12[r4←rl*r5]13[r6 ←r3 + r
5]、  14[r7 ”r4 * rl]15[r8
←re 十r7]、  lft[r9←r6+r3]と
して2つづつ与えられるものとする。
この場合には、最初の命令If、 +2については、前
記レジスタスコアボード上にはレーテンシーを示す情報
が立ってなく、また命令12が命令11の結果を使用す
ることもしていないので、第4図(b)に示すようにこ
れらの命令11. 12を同時に実行開始する。しかし
命令11は加算演算であり、ここでは1クロツクで終了
するのに対して、命令12については乗算演算であり、
ここではその演算実行に3クロツクを要する。このこと
から命令12のディスティネーションであるレジスタr
4に対応するスコアボード上の該当ビット位置に[1]
を立てる。
次に、その次のクロックタイミングで2列目の命令13
.14を実行しようとすると、命令I3については、そ
のソースに前記スコアボード上で[1]が立てられてい
ないレジスタだけを用いて演算を行い得ることから、直
ちにその演算実行を開始する。しかし命令I4について
は、そのソースとして、前記スコアボード上で[1コが
立てられているレジスタr4を使用することから、その
演算実行については待たされる。そして命令14につい
ては、前述した命令12の実行か3クロツクを掛けて終
了し、レジスタr4についてスコアボード上で立てられ
たデータが[0]にリセットされた時点でその実行が開
始される。この際、命令14の実行開始に伴い、この命
令14が乗算演算であることから、そのディスティネー
ションであるレジスタ「7に対応するスコアボード上の
該当ビット位置に[1]を立てる。
しかる後、次の命令15.18を実行しようとする場合
には、命令I5が前記命令14の実行結果であるレジス
タ「7に格納されたデータを使用することから、命令I
4の実行が終了するまで、その実行が待たされる。そし
て命令14の実行終了に伴い、命令15は、その演算に
用いるレジスタr 8. r 7が使用されていないこ
とを条件として、その実行が開始される。そしてこの命
令15の実行に伴い、命令I6の実行が、その演算に用
いるレジスタr 6. r 3が使用されていないこと
を条件として開始される。
尚、命令16に関しては、制御の複雑さを気にしないな
らば前記命令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コが立てられることになる。そして付加情報生成部3
Bは、前記各命令デコーダ32,33,34.35のデ
コード結果、および上述したリソース競合判定結果(マ
ークピット)に従い、前述した第2図に示すような付加
情報を生成し、これを前記命令に付加してキャッシュメ
モリ2に格納することになる。
尚、前述した如く解析された各命令のデコード結果をキ
ャッシュメモリ2に同時に格納しておくようにしても良
いことは云うまでもない。このようにすれば、命令の実
行時にその命令を再度デコドすると云う2重の手間を省
くことが可能となる。
また上述した命令のデコード処理に際して、レジスタの
依存関係を同時に調べることも可能である。このように
してこのフェーズでレジスタの依存関係を調べておけば
、命令実行時に前述したスコアボードを用いた処理時に
は、別のタイミングにある命令間でその正当性をチェッ
クするだけで良くなるので、そのハードウェア構成の簡
略化を図ることが可能となる。
かくして上述したようにメインメモリ1からキャッシュ
メモリ2への命令の転送時に、複数の命令の同時実行可
能性を判定し、また計算機リソースの競合を判定するよ
うにしておけば、例えば前述した分配マトリックス9を
第6図に示すように非常に簡単に構成することが可能と
なる。即ち、命令バッファ12に読み出された複数の命
令を前述した各命令についての付加情報に従って複数の
演算ユニットに分配するだけで良くなるので、付加情報
を解析する為のデコーダ41,42.73.44とスイ
ッチマトリックス45だけにより、非常に簡単なハード
ウェア構成により分配マトリックス9を構築する実現す
ることが可能となる。
尚、上記スイッチマトリックスの各ゲートは、命令バッ
ファ12に格納された命令とその付加情報、プログラム
カウンタの値等を参照して、適宜その命令実行タイミン
グで開成されることになる。この結果、時間的なオーバ
ーヘッドを招くことなく、簡易にして複数の命令を、そ
の命令の実行に用いられる演算ユニットにそれぞれ分配
することが可能となる。
尚、本発明は上述した実施例に限定されるものではない
。上述した実施例ではメインメモリlからキャッシュメ
モリ2への命令の転送時に、その命令についての同時実
行可能性、およびリソースの競合を判定するようにした
が、このフェーズにおいて同時実行可能性だけを判定す
るようにしても良い。またリソース競合の可能性の一部
だけを同時に判定するようにすることも可能である。更
には、実施例では優先順位の高い命令が実行された後に
、次の命令の実行を行うようにしたが、優先順位の高い
命令の実行開始前であっても、これらの命令とは独立に
実行可能な命令を逐次実行するように制御することも勿
論可能である。つまりキャッシュメモリに命令を登録す
る際にレジスタの依存関係を調べておき、命令の実行時
にはその結果だけに従って各命令をそれぞれ実行するよ
うにすることも可能である。
またキャッシュメモリの構成を変更し、命令を分解して
リソース毎に各命令を振り分けてしまった後に、各命令
をキャッシュメモリに登録するようにしても良い。この
ようにすれば、命令実行時のデコード処理を極めて簡単
化することが可能となり、デコード処理の複雑さに伴う
オーバーヘッドを解消することが可能となる。
またキャッシュメモリが階層的に設けられるようなシス
テム構成の場合には、リソースの割り当てや実行の可能
性判断等を、例えばプロセッサに対して1番近いキャッ
シュメモリに命令を転送する際に行うようにすれば、そ
の効果が十分に発揮される。
また上述した処理制御は、例えば命令語長が長く、同一
のフィールドを複数のリソースがそのコードによって共
有するような場合にも有効である。
更には複数の命令に対する同時実行可能性の判定結果に
従い、プログラムの意味が変わらない範囲でその命令の
実行順序を組み替えるような機能を持たせることも可能
である。その他、本発明はその要旨を逸脱しない範囲で
種々変形して実施することができる。
[発明の効果] 以上説明したように本発明によれば、複数の命令に対す
る同時実行可能性の判断や計算機リソースの競合に対す
る判定の少なくとも一部の処理を、プロセッサ内に命令
を取り込む際に行うので、命令実行時における時間的な
オーバーヘッドを大幅に軽減してその処理効率を高める
ことができる。
しかも複数の命令を効率的に同時実行させることが可能
となり、その演算処理効率、実行的な処理速度を著しく
向上させ得る等の実用上多大なる効果が奏せられる。
【図面の簡単な説明】
図は本発明の一実施例に係る電子計算機について示すも
ので、第1図は実施例に係る計算機におけるプロセッサ
の概略構成を示すブロック図、第2図は複数の命令に対
して付加される付加情報のフォーマットを示す図、第3
図は実施例におけるスコアボードの構成例を示す図、第
4図はスコアボードの情報に従う命令実行の動作例を示
す図、第5図はリソース競合分析器の構成例を示す図、
第6図は分離マトリックスの構成例を示す図である。 1・・・メインメモリ、2・・・キャッシュメモリ、3
゜4、〜8・・・演算ユニット、9・・・分配マトリッ
クス、11・・・リソース競合分析器、12・・・命令
バッファ、13゜14・・・レジスタ、15.16・・
・スコアボード、21・・・レジスタ、22.23.2
4.25・・・判定回路、31・・・読み出しバッファ
、32.33,34.45・・・デコーダ、36・・・
付加情報生成部、41,42,43.44・・・デコー
ダ、45・・・スイッチマトリックス。

Claims (7)

    【特許請求の範囲】
  1. (1)メインメモリから読み出される複数の命令を一時
    記憶する為のキャッシュメモリと、このキャッシュメモ
    リに一時記憶される上記複数の命令の同時実行の可能性
    を判定する手段と、命令の種類に応じてその命令の実行
    に必要なリソースを割り当てる手段とを具備し、複数の
    命令を同時に実行可能な電子計算機において、 複数の命令の同時実行の可能性の判断、または命令に対
    するリソースの割り当ての全てまたはその一部を、メイ
    ンメモリからキャッシュメモリに命令を読み出す際に行
    うことを特徴とする電子計算機。
  2. (2)キャッシュメモリは、複数の命令の同時実行の可
    能性についての判定結果、またはリソースの割り当てに
    関する判定結果を格納するビットフィールドを備えてい
    ることを特徴とする請求項(1)に記載の電子計算機。
  3. (3)ビットフィールドは、複数の命令がそれぞれ使用
    する演算ユニットの種類を示す情報を各命令に対応して
    格納する為のフィールドと、これらの命令のリソースが
    競合しているか否かを示すフラグを格納する為のフィー
    ルドとからなるフィールドフォーマットを有することを
    特徴とする請求項(2)に記載の電子計算機。
  4. (4)キャッシュメモリは、命令のデコード結果を格納
    する機能を備えていることを特徴とする請求項(1)に
    記載の電子計算機。
  5. (5)メインメモリから読み出される複数の命令を一時
    記憶する為のキャッシュメモリと、このキャッシュメモ
    リに一時記憶される上記複数の命令の同時実行の可能性
    を判定する手段と、命令の種類に応じてその命令の実行
    に必要なリソースを割り当てる手段とを具備し、複数の
    命令を同時に実行可能な電子計算機において、 命令に対するリソースの割り当てを、メインメモリから
    キャッシュメモリに命令を読み出す際に行い、複数の命
    令の同時実行の可能性の判断を命令実行時に行うことを
    特徴とする電子計算機。
  6. (6)命令実行時に行われる複数の命令の同時実行可能
    性の判断は、複数の計算機リソースの使用状況を示すス
    コアボード情報を用いて、命令実行の正当性のチェック
    と共に行われることを特徴とする請求項(5)に記載の
    電子計算機。
  7. (7)キャッシュメモリが複数段に亘って階層構造化さ
    れている場合には、複数の命令の同時実行の可能性の判
    断、または命令に対するリソースの割り当ての全てまた
    はその一部の実行を、プロセッサに対して一番近いキャ
    ッシュメモリに命令を転送する際に行うことを特徴とす
    る請求項(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 電子計算機
EP91302832A EP0449661B1 (en) 1990-03-30 1991-03-28 Computer for Simultaneously executing plural instructions
DE69114333T DE69114333T2 (de) 1990-03-30 1991-03-28 Rechner mit der Fähigkeit mehrere Befehle gleichzeitig auszuführen.
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 true JPH03282958A (ja) 1991-12-13
JP2818249B2 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 (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0454985B1 (en) * 1990-05-04 1996-12-18 International Business Machines Corporation Scalable compound instruction set machine architecture
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
GB9027853D0 (en) * 1990-12-21 1991-02-13 Inmos Ltd Multiple instruction issue
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
JP2779557B2 (ja) * 1991-07-09 1998-07-23 三菱電機株式会社 並列演算処理装置
EP0636256B1 (en) 1992-03-31 1997-06-04 Seiko Epson Corporation Superscalar risc processor instruction scheduling
WO1993022722A1 (en) 1992-05-01 1993-11-11 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
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
DE69320991T2 (de) 1992-12-31 1999-01-28 Seiko Epson Corp System und verfahren zur änderung der namen von registern
DE69431998T2 (de) * 1993-11-05 2004-08-05 Intergraph Hardware Technologies Co., Las Vegas Superskalare Rechnerarchitektur mit Softwarescheduling
US6360313B1 (en) 1993-11-05 2002-03-19 Intergraph Corporation Instruction cache associative crossbar switch
DE69430018T2 (de) * 1993-11-05 2002-11-21 Intergraph Corp Befehlscachespeicher mit assoziativem Kreuzschienenschalter
EP0690372B1 (en) * 1993-12-15 2010-03-03 MIPS Technologies, Inc. (a Delaware corporation) Superscalar microprocessor instruction pipeline including instruction dispatch and release control
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
EP0976030B1 (en) * 1996-01-24 2008-07-02 Sun Microsystems, Inc. Instruction folding for a stack-based machine
KR100584964B1 (ko) * 1996-01-24 2006-05-29 선 마이크로시스템즈 인코퍼레이티드 스택 메모리 구조에서의 캐싱 장치
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 データ処理装置及びデータ処理方法
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
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
DE3751503T2 (de) * 1986-03-26 1996-05-09 Hitachi Ltd Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
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
DE69114333D1 (de) 1995-12-14
DE69114333T2 (de) 1996-05-15
EP0449661A2 (en) 1991-10-02
EP0449661A3 (en) 1992-06-03
JP2818249B2 (ja) 1998-10-30
US5377339A (en) 1994-12-27
EP0449661B1 (en) 1995-11-08

Similar Documents

Publication Publication Date Title
JPH03282958A (ja) 電子計算機
EP0243892B1 (en) System for guaranteeing the logical integrity of data
JP2938426B2 (ja) 順不同ロード命令とストア命令との干渉を検出回復するための方法及び装置
US5150470A (en) Data processing system with instruction queue having tags indicating outstanding data status
US11893390B2 (en) Method of debugging a processor that executes vertices of an application, each vertex being assigned to a programming thread of the processor
JP2000020326A (ja) プロセッサにおけるレジスタ内容の継承装置
JPH1097424A (ja) スーパースカラープロセッサの中央処理ユニット
US7822948B2 (en) Apparatus, system, and method for discontiguous multiple issue of instructions
US6101596A (en) Information processor for performing processing without register conflicts
JPH02227730A (ja) データ処理システム
US6862676B1 (en) Superscalar processor having content addressable memory structures for determining dependencies
US5996063A (en) Management of both renamed and architected registers in a superscalar computer system
US5848256A (en) Method and apparatus for address disambiguation using address component identifiers
JPS62115542A (ja) 情報処理装置
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
JP2883465B2 (ja) 電子計算機
KR102379886B1 (ko) 벡터 명령 처리
EP0863460B1 (en) Management of renamed registers in a superscalar computer system
JP2906799B2 (ja) 情報処理装置
JPS59183434A (ja) 命令先取り制御方式
JPH05108348A (ja) 並列演算処理装置
JPH07111683B2 (ja) タスク切換機能付プロセッサ
JP2000181714A (ja) 命令制御装置
JPH11272463A (ja) 記憶装置及び情報処理装置
Robbins et al. The control section

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