JP2760273B2 - 演算装置及びその制御方法 - Google Patents

演算装置及びその制御方法

Info

Publication number
JP2760273B2
JP2760273B2 JP5326658A JP32665893A JP2760273B2 JP 2760273 B2 JP2760273 B2 JP 2760273B2 JP 5326658 A JP5326658 A JP 5326658A JP 32665893 A JP32665893 A JP 32665893A JP 2760273 B2 JP2760273 B2 JP 2760273B2
Authority
JP
Japan
Prior art keywords
instruction
function execution
resource allocation
execution
allocation control
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 - Fee Related
Application number
JP5326658A
Other languages
English (en)
Other versions
JPH07182168A (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.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP5326658A priority Critical patent/JP2760273B2/ja
Publication of JPH07182168A publication Critical patent/JPH07182168A/ja
Application granted granted Critical
Publication of JP2760273B2 publication Critical patent/JP2760273B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理装置で用いられ
るプロセッサに関し、特に複数の命令流(プログラム)
を並列に処理可能な高性能なプロセッサに関する。
【0002】
【従来の技術】プロセッサの高速化の技術として、複数
の機能実行装置を用意し、命令単位の並列性を利用して
複数の機能実行装置に同時に命令を発行することにより
処理速度を向上する方式が実用化されている。この方式
を用いた場合、理想的には動作クロック周波数よりも高
い割合で命令を処理することが可能である。このような
処理を行なうためには、機能実行装置を追加する他に命
令実行の結果の正当性を保証するための論理回路が必要
となる。この方式は一般にはスーパスカラ方式と呼ば
れ、米Digital Equipement Corporation社が発表したal
pha アーキテクチャや米IBM,Motorola,Apple社のPower
アーキテクチャ、Hewlett-Packard 社のPA-RISC アーキ
テクチャなどに採用されている。
【0003】しかしながら、命令単位の並列性の利用に
は限界があり、この方式での性能向上は機能実行装置を
無限に増やした場合にも、実際には3〜4倍に抑えられ
てしまうといわれている。この並列性を制限する要素は
命令間の依存関係と分岐による命令流の乱れによるもの
である。これらの制約を解消する方式も様々提案されて
いるが、ハードウェアの極端な複雑化に対して性能向上
は40倍程度が限界とされている。このような限界は、
Monica S.Lam氏らが1992年に発表した論文(Monica S.L
am and Robert P.Wilson,"Limits of Control Flow on
Parallelsim ",IThe 19th International Symposium on
Computer Architecture,IEEE ComputerSociety Press,
1992,pp.46-57)に述べられている。
【0004】一方、命令単位の並列性ではなく、複数の
命令流の命令を並列に実行することにより機能実行装置
の利用効率をあげて、処理速度向上を図る方法も提案さ
れている。この方式では、命令流間で依存関係がないた
め、前記の命令単位並列性より性能向上が図りやすい。
【0005】この方式は平田氏らが1993年に発表した論
文(平田博章,木村浩三,永峰聡,西澤貞次,鷺島敬
之,「多重スレッド・多重命令発行を用いる要素プロセ
ッサ,アーキテクチャ」情報処理学会論文誌1993 Vol34
No.4 pp.595-605)で提案された方式などがある。図2
はこの実施例の概要構成を示すものである。以下、この
実施例を従来技術の実施例として説明する。
【0006】図2において、11は命令取得装置、12
は命令解読装置、13は機能実行装置、21は命令間の
依存解析装置である。また、22は、機能実行装置13
をスケジュールする命令調停装置である。命令解読装置
12は命令調停装置22が命令を受け入れられる状態に
あり、また、命令依存装置21から、命令発行可能であ
る旨の指示を受けている場合に、命令を発行する。各々
の命令解読装置12から発行された命令は、命令調停装
置22によって、必要な機能実行装置13に割り当てら
れ、実際の実行が行なわれる。この命令調停装置22に
よって、機能実行装置13は各命令間で共有し、利用効
率を向上させることが可能となる。また、命令調停装置
22を機能実行装置13毎に分散することにより、命令
調停装置の簡単化が可能である。
【0007】
【発明が解決しようとする課題】上記の従来型機能実行
装置共有機構は、以下の問題を抱えている。第一に、命
令実行のパイプラインに命令調停処理が加わることによ
り、命令実行のレイテシンが増大し、この結果、分岐命
令などのパイプライン構造に適合しない命令実行時や例
外処理時に処理速度低下をもたらすこと。第二に、命令
調停装置は、命令流が増加し、命令解読装置が増えた場
合には、調停する命令が増加し、また調停論理も複雑化
するため、複雑な構造となり、動作周波数向上を防げる
要因になること。第三に、命令流が増加し、命令解読装
置が増えた場合には機能実行装置と機能実行のために必
要な一時記憶装置(レジスタ)や、バッファ記憶装置
(キャッシュメモリ)間との接続が複雑なスイッチによ
って実現する必要が生じるため、遅延が増大し、動作周
波数向上を防げる要因になることである。これらの問題
によって、上記の機構で同時実行できる命令流及び動作
周波数は制限されてしまう。
【0008】本発明の目的は、高い動作周波数におい
て、命令実行のレイテシンを増やすことなく、実用的な
範囲内で機能実行装置の利用率を高め、命令流間で機能
実行装置の共有を行なうプロセッサの制御方式を提供す
ることにある。
【0009】
【課題を解決するための手段】上記問題を解決するため
に、本発明においては、複数の命令流が並列に動作する
プロセッサ、すなわち、複数の命令取得装置、複数の命
令解読装置、複数の機能実行装置、複数の一時記憶装置
(レジスタ)、バッファ装置(キャッシュ)を持つプロ
セッサに、資源割当制御装置を追加する。
【0010】この資源割当制御装置は、各装置からの命
令実行情報と内部設定情報から、命令流のクロック毎に
使用可能な機能実行装置を決定する機構である。命令解
読装置は資源割当制御装置によって決定された機能実行
装置使用許可情報に基づき、命令を実行できる機能実行
装置に対して、命令を発行することが可能となる。つま
り、資源割当制御装置は、プロセッサ内にある全ての機
能実行装置について、命令流毎に使用可否を決定する。
命令解読装置は、使用可能な機能実行装置の中から、命
令流のプログラムカウンタに応じた命令を実行する機能
実行装置を決定、命令発行を行なう。また、その命令発
行情報を資源割当制御装置に通知することによって、機
能実行装置によって機能実行された結果を格納する一時
記憶装置、バッファ記憶装置を選択する。
【0011】資源割当制御装置は、システム内に1つ、
もしくは機能実行装置の数を用意して機能実行装置毎に
分散する。また、各命令解読装置からは、各々同時に一
つの命令を発行するか命令取得装置から、命令解読装置
への同時命令伝達数を複数にして、利用可能な機能実行
装置に応じて、命令を非順序発行、スーパスカラ技術を
利用して、利用可能な機能実行装置に応じて、命令を複
数同時発行する。
【0012】また、資源割当装置は、各命令流に平等に
資源を割り付けるか、もしくは、命令流毎の機能実行装
置利用状況をソフトウェア、例えばコンパイラなどであ
らかじめ調べておき資源割当制御装置に伝えることによ
り、資源割当制御装置における機能実行装置の各命令流
毎の割当を決める。もしくは、命令流毎に命令解読装置
から機能実行装置への命令発行情報を資源割当制御装置
が監視することにより、命令流の命令発行の傾向を動的
に検出し、それに応じた資源割当を資源割当制御装置が
行なう。
【0013】命令流が全ての機能実行装置を使用できる
ように論理回路を実現するか、個々の命令流が利用でき
る機能実行装置を制限し、一時記憶装置、バッファ記憶
装置と機能実行装置間の接続を簡単化する方式をとるか
はプロセッサの設計に依存し、更に資源割当制御装置を
それに合わせて分散化し、資源割当装置の論理を簡単化
する手段も選択できる。
【0014】
【作用】請求項1に記載の発明のプロセッサでは、命令
解読装置は資源割当制御装置の許可に従って、機能実行
装置に命令を発行する。命令解読装置に入るのと同時に
機能実行装置の使用許可情報も得られ、命令発行時に使
用する機能実行装置を決定してしまうため、命令発行後
に機能実行装置の調停をするというパイプライン段を増
やすことなく、機能実行装置の命令流間における共有が
実現され、かつ機能実行装置を効率的に利用することが
可能である。また、稀にしか用いられないような機能実
行ユニットはプロセッサ内で一つもしくは同時動作命令
流よりも少なくしておくことによって、チップ内の資源
の有効利用が図れる。この資源割当制御装置は、各装置
からの情報と内部情報によって、命令流のクロック毎の
使用可能な機能実行装置を決定する。一つ前の命令実行
までの情報から資源割当が決定されるため、従来方式ほ
ど機能実行装置の利用効率は望めないが、構造の簡単化
とパイプライン短縮による命令実行レイテシンの短縮に
よって、クロック周波数、処理速度向上が図れる。更
に、請求項2に記載の発明において、資源割当制御装置
を分散化し、個々の資源割当制御装置の構造を簡単にす
るものである。
【0015】機能実行装置の利用率を高め効率向上を図
るため、請求項3に記載の発明では、命令取得装置から
命令解読装置への同時命令伝達数を複数にして、利用可
能な機能実行装置に応じて、命令を非順序発行するもの
である。また、請求項4に記載の発明では、命令取得装
置から命令解読装置への同時命令伝達数を複数にする。
さらに、スーパスカラ技術を利用して、利用可能な機能
実行装置に応じて、命令を同時発行するものである。こ
れらの技術を用いれは、単一命令流から複数の機能実行
装置を効率的に利用することが可能となり、同時動作命
令流数よりも機能実行装置数が多い場合には、特に効果
的である。
【0016】請求項5に記載の発明では、命令流毎の機
能実行装置利用状況をソフトウェア、例えばコンパイラ
などであらかじめ調べておく。この情報を、資源割当制
御装置に伝えることにより、資源割当制御装置における
機能実行装置の各命令流毎の割当を最適化し、効率の良
い実行を行ない、処理を高速化するものである。また、
請求項6に記載の発明では、命令流毎に命令解読装置か
ら機能実行装置への命令発行情報を資源割当制御装置が
監視することにより、命令流の命令発行の傾向を動的に
検出し、それに応じた資源割当を資源割当制御装置が行
なうことによって、効率の良い実行を行ない、処理を高
速化するものである。これらを組み合わせることによ
り、コードにあった資源割当や、実行が遅れているコー
ドに対して優先的に機能実行装置を割り付けることが可
能となる。
【0017】また、機能実行装置において、実行を中断
せざるを得ない事象が生じた際、例えば、キャッシュミ
スなどが生じて必要なデータが得られない場合には、必
要な処置をハードウェアが行なうまで、機能実行装置を
利用できなくなってしまう。請求項7に記載の発明で
は、このような事象が生じた場合に、実行再開に必要な
データを機能実行装置に付属する記憶装置に退避して、
当該機能実行装置を他の命令の実行に使用できるように
して、機能実行装置の利用率の向上を図るものである。
【0018】また、複数の機能実行装置を複数の命令間
で共有した場合には、命令流が増加し、命令解読装置が
増えた場合には機能実行装置と機能実行のために必要な
一時記憶装置(レジスタ)や、バッファ記憶装置(キャ
ッシュメモリ)間との接続が複雑なスイッチによって実
現する必要が生じるため、必要な論理回路数が増加する
という問題が生じる。命令流が全ての機能実行装置を使
用できるように論理回路を実現するのではなく、個々の
命令流が利用できる機能実行装置を制限することによっ
て、一時記憶装置、バッファ記憶装置と機能実行装置と
の間の接続を簡単化することもできる
【0019】更に、命令流が利用できる機能実行装置を
制限することによって、資源割当制御装置を分散化し
て、論理を簡単化することもできる
【0020】以下に図面を参照して本発明をより具体的
に詳述するが、以下の開示は本発明の一実施例に過ぎ
ず、本発明の技術的範囲を何ら限定するものではない。
【0021】
【実施例】請求項1に記載の発明について、図面を参照
しながら説明する。図1は本発明による制御方式を適用
したプロセッサの実施例を示したブロック構成図であ
る。図1に示したプロセッサは2つの命令取得装置1
1、2つの命令解読装置12と、3つの機能実行装置1
3、資源割当制御装置14から構成され、2つの命令流
を共有する3つの機能実行装置13によって同時に実行
するものとする。機能実行装置13は同じ機能のもので
も、異なる機能のものでも本発明の本筋には影響しない
が、ここでは便宜的に整数演算ユニット、浮動小数点ユ
ニット、ロードストアユニットとする。この場合は、処
理の高速化を狙うよりも、むしろ演算器の効率利用を狙
ったものとなる。なお、この他に、プロセッサで演算を
行なう場合には、一時記憶装置(レジスタ)、バッファ
記憶装置(キャッシュメモリ)などが存在するが、請求
項1から請求項7までの発明とは直接関係ないので、省
略する。また、同時に実行される2つの命令流を命令流
Aと命令流Bとする。
【0022】命令取得装置11から、命令解読装置12
へは命令が送られ、命令解読装置12から機能実行装置
13には、命令解読結果が送られる。資源割当制御装置
14から命令解読装置12には、各々の機能実行装置1
3の使用可否情報を送る。また、命令取得装置11、命
令解読装置12、機能実行装置13から、資源割当制御
装置14にはそれぞれの実行状態情報を送る。
【0023】命令取得装置11は命令流A、Bのプログ
ラムカウンタの値に従って、命令を主記憶装置(メイン
メモリ)もしくはバッファ装置(キャッシュメモリ)か
ら取得する。次に、命令解読装置12は、命令取得装置
11から命令内容を受けとり、また、資源割当制御装置
14から、個々の機能実行装置13の利用可否情報、例
えば、命令流Aは整数演算ユニットと浮動小数点ユニッ
トが使用可能で、命令流Bはロードストアユニットが使
用可能であるという情報を受けとる。命令流Aの命令解
読結果が整数演算や浮動小数点演算であれば、無条件に
整数演算ユニットもしくは浮動小数点演算ユニットに当
該命令を発行する。もし、ロードストア命令であれば、
命令解読装置12でインタロックが生じ、次のサイクル
まで命令発行は行なわれない。命令流Bの場合は逆に、
命令解読結果が整数演算や浮動小数点演算であればイン
タロックし、ロードストア命令の場合には、命令発行が
行なわれる。次のサイクル時、前サイクルで命令が発行
された場合には、命令解読装置12は命令取得装置11
から新たな命令を受けとる。前サイクルで命令が発行さ
れなかった場合には、新たな命令は受けとらずに、機能
実行装置13の利用可否情報のみを受けとる。例えば、
今回のサイクルでは命令流Aはロードストアユニットが
使用可能で、命令流Bは整数演算ユニットと浮動小数点
ユニットが使用可能となる。そこで、前サイクルと同様
に命令と使用可能な機能実行装置13を比較して命令発
行を決定する。資源割当制御装置14は、命令流間に平
等に資源が割り当てられるような機構とする。この様子
を表示1に示す。また、他の各装置からの実行状態情報
を受けとり、その情報を基に次の機能実行装置13の使
用可否を決定する。
【0024】
【表1】
【0025】このことによって、複数の機能実行装置1
3を複数の命令流間で共有することが可能となり、機能
実行装置13の有効利用が図られる。
【0026】次に、請求項2に記載の発明について、図
面を参照しながら説明する。図3は本発明による制御方
式を適用したプロセッサの実施例である。図3に示した
プロセッサは2つの命令取得装置11、2つの命令解読
装置12と、3つの機能実行装置13、3つの分散型資
源割当制御装置31から構成され、2つの命令流を共有
する3つの機能実行装置13によって同時に実行するも
のとする。本実施例の特徴は請求項1に記載のプロセッ
サにおける、資源割当て制御装置14を各々の機能実行
装置13毎に分散化したことである。この結果、資源割
当制御装置の簡単化を図ることが可能である。
【0027】次に、請求項3に記載の発明について、図
面を参照しながら説明する。図4は本発明による制御方
式を適用したプロセッサの実施例である。図4に示した
プロセッサは2つの命令取得装置/命令キュー41、2
つの命令解読装置12と3つの機能実行装置13、資源
割当制御装置14から構成され、2つの命令流を共有す
る3つの機能実行装置13によって同時に実行するもの
とする。本実施例は請求項1に記載のプロセッサの命令
取得装置11を複数命令を保持できるようにキューを付
加して拡張し、さらに、命令解読装置12は、複数命令
を命令取得装置から受けとり依存関係を調べ、命令の前
後間に依存関係がなく、もしくは依存関係解消が可能な
場合に、かつ資源割当制御装置14から得た機能実行装
置の使用許可状況が1番目の命令が実行不可能で2番目
以降の命令が実行可能状態になっている場合に、非順序
実行(out-of-order実行) を行なうように拡張したこと
を特徴とする。
【0028】請求項1に記載の発明と同様に、機能実行
ユニット13をそれぞれ、整数演算ユニット、浮動小数
点ユニット、ロードストアユニットとする。また、同時
に実行される2つの命令流を命令流Aと命令流Bとし、
命令解読装置12は同時に二つの命令を命令取得装置/
命令キュー41から受けとることとする。命令取得装置
/命令キュー41は命令流A、命令流Bのプログラムカ
ウンタの値に従って、命令を主記憶装置(メインメモ
リ)もしくはバッファ装置(キャッシュメモリ)から取
得する。ここでは、命令キューがあるので、複数命令を
取得している状態とする。次に、命令解読装置12は、
命令取得装置11から2つの命令内容を受けとり、ま
た、資源割当制御装置14から、個々の機能実行装置1
3の利用可否情報、例えば、命令流Aは整数演算ユニッ
トと浮動小数点ユニットが使用可能で、命令流Bはロー
ドストアユニットが使用可能であるという情報を受けと
る。命令解読は受けとった複数の命令に対して行なれ、
更に命令間の依存関係についても調べられる。1番目の
命令が命令流Aの命令解読結果が整数演算や浮動小数点
演算であれば、無条件に整数演算ユニットもしくは浮動
小数点演算ユニットに発行する。1番目の命令がロード
ストア命令かつ2番目の命令が整数演算命令、浮動小数
点演算命令の場合、かつ1番目と2番目の命令間に依存
関係がない場合には、2番目の命令を整数演算ユニット
もしくは浮動小数点演算ユニットに発行する。この条件
を満たさない場合は、命令解読装置12でインタロック
が生じ、次のサイクルまで命令発行は行なわれない。命
令流Bも同様であり、また、次のサイクルでの動作も、
同じように繰り返される。
【0029】請求項1に記載のプロセッサ実施例では、
1番目の命令が使用許可された機能実行装置において実
行できない場合には、無条件でインタロックしていた
が、本項におけるプロセッサ実施例では、命令の非順序
発行を許すことにしたため、インタロック発生確率が低
下し、スループット及びプログラムの実行処理速度が向
上する。
【0030】次に、請求項4に記載の発明について、図
面を参照しながら説明する。図5は本発明による制御方
式を適用したプロセッサの実施例である。図5に示した
プロセッサは2つの命令取得装置/命令キュー41、2
つの命令解読装置12と3つの機能実行装置13、資源
割当制御装置14から構成され、2つの命令流を共有す
る3つの機能実行装置13によって同時に実行するもの
とする。本実施例は請求項1に記載のプロセッサの命令
取得装置11を複数命令を保持できるようにキューを付
加して拡張し、さらに、命令解読装置12は、複数命令
を命令取得装置11から受け取り依存関係を調べ、命令
の前後間に依存関係がなく、もしくは依存関係解消が可
能な場合に、かつ資源割当制御装置14から得た使用許
可状況が複数の機能実行装置13を使用可能としている
場合に、スーパスカラ技術を利用して複数の機能実行装
置13に対して命令の同時発行を行なうように拡張した
ことを特徴とする。
【0031】請求項1に記載の発明と同様に、機能実行
ユニット13をそれぞれ、整数演算ユニット、浮動小数
点ユニット、ロードストアユニットとする。また、同時
に実行される2つの命令流を命令流Aと命令流Bとし、
命令解読装置12は同時に二つの命令を命令取得装置/
命令キュー41から受けとることとする。命令取得装置
/命令キュー41は命令流A、Bのプログラムカウンタ
の値に従って、命令を主記憶装置(メインメモリ)もし
くはバッファ装置(キャッシュメモリ)から取得する。
ここでは、命令キューがあるので、複数命令を取得して
いる状態とする。次に、命令解読装置12は、命令取得
装置11から2つの命令内容を受けとり、また、資源割
当制御装置14から、個々の機能実行装置13の利用可
否情報、例えば、命令流Aは整数演算ユニットと浮動小
数点ユニットが使用可能で、命令流Bはロードストアユ
ニットが使用可能であるという情報を受けとる。命令解
読は受けとった複数の命令に対して行なわれ、更に命令
間の依存関係についても調べられる。1番目の命令が命
令流Aの命令解読結果において1番目の命令が整数演
算、2番目の命令が浮動小数点演算命令の場合、かつ1
番目と2番目の命令間に依存関係がない場合には、1番
目の命令を整数演算ユニット、2番目の命令を浮動小数
点演算ユニットに発行する。また、1番目が浮動小数点
演算、2番目が整数演算で、命令間の依存がない場合は
1番目の命令を浮動小数点演算ユニット、2番目の命令
を整数演算ユニットに発行する。この条件を満たさない
場合は、請求項1と同様に、単一命令のみを発行、もし
くはインタロック状態となる。この動作は、命令流Bも
同様であり、また、次のサイクルでの動作も、同じよう
に繰り返される。
【0032】請求項1に記載のプロセッサ実施例では、
資源割当制御装置14が複数の機能実行装置13の利用
許可を与えた場合でも、そのうち1つしか使用されなか
ったが、本項におけるプロセッサ実施例ではスーパスカ
ラ技術を利用して命令を同時発行できるように命令解読
装置12を拡張したため、スループット及びプログラム
の実行処理速度が向上する。特に、頻繁に利用される機
能実行装置13は並列処理される命令流以上の数用意
し、稀にしか利用されない機能実行装置13は、プロセ
ッサ内にごく少数のみ用意することによってシステム全
体の機能実行装置の利用率を向上し、更にスループット
を向上することが可能となる。また、請求項3と請求項
4に記載の発明を同時に適用して更に性能を向上させる
ことも可能である。
【0033】次に、請求項5に記載の発明について、図
面を参照しながら説明する。図6は本発明による制御方
式を適用したプロセッサの実施例である。図6に示した
プロセッサは2つの命令取得装置11、2つの命令解読
装置12と、3つの機能実行装置13、ソフトウェア優
先度指示型資源割当制御装置51から構成され、2つの
命令流を共有する3つの機能実行装置13によって同時
に実行するものとする。本実施例は請求項1に記載のプ
ロセッサの資源割当制御装置14に対して、ソフトウェ
ア的に命令流の性質や優先度を与えることによって、そ
れに適した機能実行装置13を割り付けるように機能を
追加したことを特徴とする。この優先度制御は命令流中
に優先度制御用の命令を組み込むことなどによって実現
する。
【0034】請求項1に記載の発明と同様に、機能実行
ユニット13をそれぞれ、整数演算ユニット、浮動小数
点ユニット、ロードストアユニットとする。また、同時
に実行される2つの命令流を命令流Aと命令流Bとす
る。ここで、命令流Aにおいては、浮動小数点演算を行
なわないコードであれば、コンパイラが浮動小数点ユニ
ットを使用しないという資源割当指示命令を命令流の先
頭に入れておく。この命令を解読すると、資源割当制御
装置51に対して、命令流Aに対しては浮動小数点ユニ
ットの使用許可不要である旨の情報が伝えらる。以後、
資源割当制御装置51は、設定が変更されない限り、浮
動小数点ユニットは命令流Bにのみ与えられることにな
る。但し、浮動小数点演算命令が割り当てられない状況
下で命令流中に存在した場合には、命令解読装置12
は、資源割当制御装置51に対して、資源割当要求がで
きる構造にしておくことも選択できるものとする。ま
た、命令流Bが優先度の高いプロセスの場合、OSなど
のシステムソフトウェアによって、命令流Bに対して優
先的に資源を割り当てる命令を資源割当制御装置51に
発行する。この場合は、資源割当制御装置は命令流Aと
命令流Bでは、命令流Bに機能実行装置13の利用許可
を多く出すように制御を行なう。
【0035】この拡張を行なうことによって、命令流の
性質や処理状況に応じた資源割当を行なうことが可能と
なり、機能実行装置の利用率が向上し、スループット及
びプログラムの実行処理速度を向上させることができ
る。
【0036】次に、請求項6に記載の発明について、図
面を参照しながら説明する。図7は本発明による制御方
式を適用したプロセッサの実施例である。図7に示した
プロセッサは2つの命令取得装置11、2つの命令解読
装置12と3つの機能実行装置13、動的優先度可変型
資源割当制御装置61から構成され、2つの命令流を共
有する3つの機能実行装置13によって同時に実行する
ものとする。本実施例は請求項1に記載のプロセッサの
資源割当制御装置14に対して、ハードウェア的に命令
実行状況やコードの性質を監視することによって、機能
実行装置13の割り付けを命令流に適するようにするこ
とを特徴とする。
【0037】請求項1に記載の発明と同様に、機能実行
ユニット13をそれぞれ、整数演算ユニット、浮動小数
点ユニット、ロードストアユニットとする。また、同時
に実行される2つの命令流を命令流Aと命令流Bとす
る。実行の初期は請求項1に記載の具体例で示したプロ
セッサと同様、資源割当管理装置61は命令流A、命令
流Bに対して平等に機能実行装置13の使用許可を与え
るが、その際の命令流A、命令流Bそれぞれの各機能実
行装置13への命令発行率やインタロック発生率を監視
することによって、各命令流に適した機能実行装置13
をなるべく割り付けることを行なう。例えば、命令流A
では、浮動小数点ユニットはほとんど使用せず、整数演
算ユニットを中心に用いるようなコードの場合、浮動小
数点ユニットは、実際にその命令の実行が生じた場合
に、命令解読装置12から、資源割当制御装置61に割
当要求を行なうことによって、浮動小数点ユニットが割
り当てられることになる。一方、命令流Bはロードスト
アユニットと浮動小数点ユニットを中心に用いるような
コードであれば、このユニットを中心に割り当てる制御
を行なう。
【0038】この拡張を行なうことによって、命令流の
性質や処理状況に応じた資源割当を行なうことが可能と
なり、機能実行装置の利用率が向上し、スループット及
びプログラムの実行処理速度を向上させることが可能と
なる。また、請求項5に記載のソフトウェアによる割り
当て優先度制御と併用することによって効率をさらに向
上することが可能となる。
【0039】次に、請求項7に記載の発明について、図
面を参照しながら説明する。図8は本発明による制御方
式を適用したプロセッサの実施例である。図8に示した
プロセッサは2つの命令取得装置11、2つの命令解読
装置12と3つの機能実行装置13、資源割当制御装置
14、実行情報退避記憶装置71から構成され、2つの
命令流を共有する3つの機能実行装置13によって同時
に実行するものとする。本実施例は請求項1に記載のプ
ロセッサの各々の機能実行装置13に対して、実行情報
を退避して、他の命令を先に実行することを可能にする
ために、実行情報退避装置71を付加したことを特徴と
する。
【0040】請求項1に記載の発明と同様に、機能実行
ユニット13をそれぞれ、整数演算ユニット、浮動小数
点ユニット、ロードストアユニットとする。また、同時
に実行される2つの命令流を命令流Aと命令流Bとす
る。命令流Aにおいて、ロード命令が命令発行装置12
からロードストアユニットに発行されたとする。しかし
ながら、所望のデータがバッファ装置(キャッシュメモ
リ)に存在しない場合、遅延の大きい主記憶装置からデ
ータを転送する。そのため、ロードストアユニットにお
いて当該命令はインタロックする。この状態になると、
請求項1に記載の発明の場合、ロードストアユニット
は、インタロックが回避できるまで使用できなくなって
しまう。本項の発明においては、このようなロック状態
が発生した場合には、実行情報退避記憶装置71に実行
情報を退避することによって、命令流Bに対してロード
ストアユニットの使用を許可できるようにするものであ
る。
【0041】この拡張を行なうことによって、インタロ
ックが発生した場合でも、他の命令流に対して機能実行
装置を割り当てることが可能となり、機能実行装置の利
用率が向上し、スループット及びプログラムの実行処理
速度を向上させることが可能となる。
【0042】次に、命令流毎に使用することができる機
能実行装置13に対して制限を設けて、命令流毎に用意
される機能実行のための一時記憶装置(レジスタ)81
もしくは、バッファ記憶装置と、機能実行装置13との
間の結合を簡単化できることを説明する
【0043】まず、図9は請求項1に記載の実施例であ
るが、図1と比較して、一時記憶装置(レジスタ)87
を図示したことと同時動作の命令流を3、機能実行装置
13を6個に増やしたことが異なっている。次に、図1
0は本発明による制御方式を適用したプロセッサの実施
例である。図9と比べて、資源割当に制限を設けたこと
を特徴としている。図10では、3つの命令流をそれぞ
れ、命令流A、命令流B、命令流Cとすると機能実行装
置81と機能実行装置86は命令流Aと命令流Cのみ、
機能実行装置82と機能実行装置83は命令流Aと命令
流Bのみ、機能実行装置84と機能実行装置85は命令
流Bと命令流Cのみの命令を実行する。このため、命令
解読装置12と機能実行装置13間および、機能実行装
置13と一時記憶装置87間の結合が簡単化される。ま
た、割り当てに制限を設けることによって、資源割当制
御装置14の内部構造も簡単化される。また、命令流毎
の機能実行装置13の利用範囲を隣接命令間に限定する
ことにより、結合同士の交差が少なくなり実装上も有利
である。
【0044】この例は、同一機能の機能実行装置13を
複数持つようなプロセッサにおいて特に有効である。プ
ロセッサの集積度が向上し、プロセッサ内の同時動作命
令流と機能実行装置13が増えた場合には、本項に示す
制限つき割当機構によって、実装の簡単化、動作周波数
の向上を可能とし、機能実行装置の割当制限による利用
率低下を十分補うことが可能である。また、請求項3、
請求項4に記載の発明を組み合わせることによって、さ
らに効率の向上を図ることが可能である。
【0045】
【発明の効果】本発明では、複数の命令流を並列動作さ
せる演算装置において、演算の中心となる機能実行装置
を命令流間で共有することによって、機能実行装置を有
効に利用することができる。また、従来例では、命令を
解読後に機能実行装置のスケジューリングを行なってい
るので、命令実行遅延が増加し、制御が複雑になる問題
があるが、本発明の方式では、命令解読前にあらかじめ
使用可能な機能実行装置を命令流毎に与えてしまうた
め、機能実行装置の使用効率が若干低下するが、制御が
簡素になり動作周波数を向上できるという利点によっ
て、使用効率低下を補って余りあるものとなる。また、
命令毎の性質に合わせたスケジューリングをソフトウェ
ア的、ハードウェア的に行なうことによって、利用効率
の低下を最小限に抑えることが可能である。さらに、複
数の命令流が同時に実行される場合に、使用できる機能
実行装置をあらかじめ限定することによって、資源割当
制御装置の簡略化が可能となる。以上のことから、本発
明における複数の命令流を並列動作させる演算装置の方
式は、命令の高速動作、コスト低減に非常に有効であ
る。
【0046】
【図面の簡単な説明】
【図1】本発明によるプロセッサの制御方法を示すため
のプロセッサの実施例の構成図である。
【図2】従来方式の機能実行装置の命令流間共用方式の
実施例の構成図である。
【図3】分散型資源割当制御装置を用いた実施例の構成
図である。
【図4】非順序命令発行を行なう命令解読装置を用いた
実施例の構成図である。
【図5】命令同時発行を行なう命令解読装置を用いた実
施例の構成図である。
【図6】ソフトウェア優先度指示型資源割当制御装置を
用いた実施例の構成図である。
【図7】動的優先度可変型資源割当制御装置を用いた実
施例の構成図である。
【図8】機能実行装置に実行情報退避装置を付加した実
施例の構成図である。
【図9】図1と同等の実施例の構成図であり、新たに一
時記憶装置(レジスタ)を表現している。
【図10】利用できる機能実行装置を命令流毎に制限し
た実施例の構成図である。
【符号の説明】
11 命令取得装置 12 命令解読装置 13 機能実行装置 14 資源割当制御装置 21 命令依存解析装置 22 命令調停装置 31 分散型資源割当制御装置 41 命令取得装置/命令キュー 51 ソフトウェア優先度指示型資源割当制御装置 61 動的優先度可変型資源割当制御装置 71 実行情報退避記憶装置 81〜86 機能実行装置 87 一時記憶装置(レジスタ)

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の命令流に対して同時に情報処理を実
    行する演算装置において、 記憶装置などから命令を取り出す複数の命令取得装置
    と、 前記命令取得装置から取り出された命令であって、使用
    許可の与えられた機能実行装置で処理を行う命令を解読
    し、当該命令を機能実行装置に発行する複数の命令解読
    装置と、 前記命令解読装置から発行された命令に従って必要な機
    能を実行する複数の機能実行装置と、 現在の命令実行状況を前記命令取得装置、前記命令解読
    装置、前記機能実行装置から調べ、前記命令解読装置が
    命令を解読する前に機能実行装置の前記使用許可を制御
    する資源割当制御装置とを含んで構成されることを特徴
    とする演算装置。
  2. 【請求項2】前記資源割当制御装置を、各機能実行装置
    毎に分散化したことを特徴とする請求項1に記載の演算
    装置
  3. 【請求項3】前記命令解読装置が、利用できる機能実行
    装置に対して、命令の前後間に依存関係がなく、もしく
    は依存関係解消が可能な場合に、かつ資源割当制御装置
    から得た機能実行装置の使用許可状況が1番目の命令が
    実行不可能で2番目以降の命令が実行可能状態になって
    いる場合に、命令の非順序実行を行なうことを特徴とす
    る請求項1又は2に記載の演算装置
  4. 【請求項4】前記命令解読装置が、利用できる機能実行
    装置に対して、命令の前後間に依存関係がなく、もしく
    は依存関係解消が可能な場合に、かつ資源割当制御装置
    から複数の機能実行装置の使用許可が得られている場合
    には、命令の同時発行を行なうことを特徴とする請求項
    又は2に記載の演算装置
  5. 【請求項5】前記資源割当制御装置が、ソフトウェアに
    より命令流毎の機能実行装置の使用許可の優先度を設定
    し、各命令流の実行を最適化することを特徴とする請求
    項1又は2に記載の演算装置
  6. 【請求項6】前記資源割当制御装置が、命令解読装置か
    ら機能実行装置への命令発行の情報を調べ、その後の命
    令流毎への資源割当を、当該情報に基づいて最適化する
    ことを特徴とする請求項1又は2に記載の演算装置
  7. 【請求項7】1個以上の実行情報を退避させる記憶装置
    を付加し、 前記機能実行装置が、実行を中断する事象が
    生じた場合には、処理情報を前記記憶装置に退避し、退
    避情報を資源割当制御装置に伝達することによって、実
    行を中断する事象が生じた機能実行装置を他の命令流の
    命令による情報処理に使用させることを特徴とする請求
    項1又は2に記載の演算装置
JP5326658A 1993-12-24 1993-12-24 演算装置及びその制御方法 Expired - Fee Related JP2760273B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5326658A JP2760273B2 (ja) 1993-12-24 1993-12-24 演算装置及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5326658A JP2760273B2 (ja) 1993-12-24 1993-12-24 演算装置及びその制御方法

Publications (2)

Publication Number Publication Date
JPH07182168A JPH07182168A (ja) 1995-07-21
JP2760273B2 true JP2760273B2 (ja) 1998-05-28

Family

ID=18190230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5326658A Expired - Fee Related JP2760273B2 (ja) 1993-12-24 1993-12-24 演算装置及びその制御方法

Country Status (1)

Country Link
JP (1) JP2760273B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3493768B2 (ja) * 1994-12-01 2004-02-03 松下電器産業株式会社 データ処理装置
JP3769249B2 (ja) 2002-06-27 2006-04-19 富士通株式会社 命令処理装置および命令処理方法
JP4557748B2 (ja) * 2005-02-28 2010-10-06 株式会社東芝 演算処理装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60263238A (ja) * 1984-06-11 1985-12-26 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置
JP2535252B2 (ja) * 1990-10-17 1996-09-18 三菱電機株式会社 並列処理装置
JP2908598B2 (ja) * 1991-06-06 1999-06-21 松下電器産業株式会社 情報処理装置
JP2779557B2 (ja) * 1991-07-09 1998-07-23 三菱電機株式会社 並列演算処理装置
JPH05120239A (ja) * 1991-10-30 1993-05-18 Seiko Epson Corp 並列処理回路
JPH05158690A (ja) * 1991-12-03 1993-06-25 Fujitsu Ltd 並列演算回路
JPH05334267A (ja) * 1992-06-02 1993-12-17 Fujitsu Ltd 並列プロセッサ

Also Published As

Publication number Publication date
JPH07182168A (ja) 1995-07-21

Similar Documents

Publication Publication Date Title
US11836524B2 (en) Memory interface for a multi-threaded, self-scheduling reconfigurable computing fabric
US7610473B2 (en) Apparatus, method, and instruction for initiation of concurrent instruction streams in a multithreading microprocessor
US7631308B2 (en) Thread priority method for ensuring processing fairness in simultaneous multi-threading microprocessors
US9710310B2 (en) Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US7020879B1 (en) Interrupt and exception handling for multi-streaming digital processors
US6542921B1 (en) Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor
US7650605B2 (en) Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
JPH06231088A (ja) 多重プロセッサメモリシステム及びメモリ参照競合解決方法
US7490223B2 (en) Dynamic resource allocation among master processors that require service from a coprocessor
WO2005022384A1 (en) Apparatus, method, and instruction for initiation of concurrent instruction streams in a multithreading microprocessor
Kohútka et al. Improved task scheduler for dual-core real-time systems
US7447887B2 (en) Multithread processor
US7711925B2 (en) Information-processing device with transaction processor for executing subset of instruction set where if transaction processor cannot efficiently execute the instruction it is sent to general-purpose processor via interrupt
US9535746B2 (en) Honoring hardware entitlement of a hardware thread
JP2760273B2 (ja) 演算装置及びその制御方法
CN100377076C (zh) 一种应用于同时多线程处理器的取指控制装置及其方法
JP2009252133A (ja) ベクトル処理装置及びベクトル処理方法
US20060179285A1 (en) Type conversion unit in a multiprocessor system
CN115878190A (zh) 一种应用于发射队列间指令调度填充的方法
JP2000347857A (ja) スーパースカラ型プロセッサ
JP2014002555A (ja) プロセッサ
JPH10207720A (ja) 情報処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19971021

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980217

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080320

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090320

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090320

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100320

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees