JPH1097423A - ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ - Google Patents
ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサInfo
- Publication number
- JPH1097423A JPH1097423A JP8249594A JP24959496A JPH1097423A JP H1097423 A JPH1097423 A JP H1097423A JP 8249594 A JP8249594 A JP 8249594A JP 24959496 A JP24959496 A JP 24959496A JP H1097423 A JPH1097423 A JP H1097423A
- Authority
- JP
- Japan
- Prior art keywords
- pointer
- register
- instruction
- logical register
- logical
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title description 13
- 238000000034 method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- NEPLBHLFDJOJGP-BYPYZUCNSA-N (2s)-2-(5-fluoro-2,4-dinitroanilino)propanamide Chemical compound NC(=O)[C@H](C)NC1=CC(F)=C([N+]([O-])=O)C=C1[N+]([O-])=O NEPLBHLFDJOJGP-BYPYZUCNSA-N 0.000 description 1
- 102100026693 FAS-associated death domain protein Human genes 0.000 description 1
- 101000911074 Homo sapiens FAS-associated death domain protein Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
- G06F15/7832—Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F9/384—Register renaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
ファイルを扱い、命令レベル並列処理を有効利用するた
めのソフトウェア技法であるソフトウェアパイプライン
を効率良く支援する。 【解決手段】 命令実行に伴う論理レジスタへのアクセ
スで使用される物理レジスタとして、当該論理レジスタ
番号毎に対応するポインタにより指定される物理レジス
タを使用し、当該命令で指定のある場合は、アクセスに
用いたポインタのインクリメントを行い、以降の当該論
理レジスタへのアクセスを行う命令に関しては、異なる
物理レジスタを使用させる。 【効果】 SWPLにおける同一論理レジスタへの書き
込みと読み出しの順序保障に伴う逐次化による命令レベ
ル並列性の低下を防げる。
Description
ロセッサに係わり、命令レベル並列処理プロセッサを有
効に機能させるためのソフトウェア技法であるソフトウ
ェアパイプラインに適したレジスタ構成およびそれを含
むプロセッサに関する。
令を実行するのに必要となるクロック・マシンサイクル
数CPI(clock cycles per ins
truction)により決定される。したがって、計
算機の性能向上にはマシンサイクルの短縮とCPIを小
さくすることが肝要となる。従来のCPIを小さくする
手法として、パイプライン処理やスーパスカラとVLI
W(Very LongInstruction Wo
rd)に代表される命令レベル並列処理が挙げられる。
ェッチ、デコード、実行、書き戻し等のように、複数の
細かな処理単位(ステージ)に分割し、複数の命令でス
テージ間をオーバラップさせることにより、同時実行す
る技術である。このパイプライン処理では、各ステージ
を1マシンサイクルで処理することにより、理想的には
CPIを1とすることが可能となる。
の命令を上記のパイプライン処理することにより、より
多くの命令を同時実行することが可能であり、1以下の
CPIの実現を図るものである。スーパスカラとVLI
Wの違いについては、同時実行を行う命令に関して、ス
ーパスカラでは動的に命令列から実行可能なものをハー
ドウェアにより選択し実行するのに対して、VLIWで
は1命令で複数の操作が指定できる命令形式を有してお
り、コンパイラにより静的に同時実行可能な操作を命令
中に配置する点にある。
る上で、最も重要となるのは、パイプラインに有効な命
令が詰まっている状態を維持するようにコンパイラによ
り命令を配置することである。これは、特に動的に実行
可能な命令の選択機能のないVLIW方式では重要度が
高くなる。このコンパイラによる命令配置のソフトウェ
ア技法がソフトウェアパイプライン(以下では、SWP
Lと呼ぶ)である。SWPLでは、図1のようにループ
に関して、ループの内容(ループボディ)の命令列を、
命令間の依存関係やプロセッサの資源数に基づいて複数
の固まり(以下では、SWPLのステージと呼ぶ)に分
割し、図2に示すようにII(Initiation
Interval)と呼ばれるマシンサイクル毎に、新
たなイタレーションのステージをパイプラインへ投入し
て行く。これにより、理想的な定常状態では、イタレー
ション(ループ処理における1回分のループ処理)の異
なる全てのステージが同時実行されるため、高い並列度
が得られ、命令パイプラインや命令レベル並列を行うプ
ロセッサを有効に利用することが可能となる。
セッサでは、同一レジスタへの書き込みに対する読み出
しが存在する場合、書き込みに対する読み出しの順序を
保証しなければならないため、後続イタレーションのレ
ジスタの書き込みは、前のイタレーションのレジスタの
読み出しより後にスケジューリングされる必要がある。
つまり、同一レジスタの書き込みと読み出しが逐次化さ
れる。したがって、同時実行される命令数が減少する可
能性が高く、ソフトウェアパイプラインで得られる効果
が低くなると言う問題がある。
JSPP’93の307ページから314ページ(以
下、第一の従来技術)では、命令で指定される論理レジ
スタ毎にキュー構造の物理レジスタとリードとライト用
の物理レジスタへのポインタを用意し、命令中の論理レ
ジスタ指定フィールドにあるレジスタ制御フィールドに
より、読み出し/書き込みに応じてポインタを進める方
式が提案されている。レジスタへの書き込み時にポイン
タを進めることにより、同一命令に関するレジスタ書き
込みに関して、イタレーション毎に異なる物理レジスタ
へ書き込むように制御できるので、後続イタレーション
の同一論理レジスタへの書き込みを読み出しより先行さ
せて実行することが可能となる。
INTERNATIONAL SYMPOSIUM
ON MICROARCHITECTURE”の158
ページから169ページ(以下、第二の従来技術)で
は、物理レジスタへのベースレジスタを持ち、レジスタ
アクセスの際に、命令で指定される論理レジスタ番号と
ベースレジスタの値を加算した値により物理レジスタに
アクセスし、ベースレジスタは新たなSWPLのステー
ジが投入される度に、デクリメントされる方法が提案さ
れている。この方法では、後続イタレーションの書き込
みは新たな、SWPLの新たなステージとして投入され
るため、同一論理レジスタ番号でも、ベースレジスタの
値が異なるため、異なる物理レジスタ番号が得られるの
で、読み出しに先行して、後続イタレーションの書き込
みを行うことが出来る。
は、プログラム中における通常のレジスタの使用方法を
考えると、レジスタの値は多くの場合、出来る限り再利
用されるため、同一論理レジスタがSWPLのステージ
を越えて多数読み出しされる場合がある。このような場
合、この方式では、最後のレジスタ読み出しのみでポイ
ンタを更新する制御を行い、残りは同じ物理レジスタを
使用するように制御する。このため、最後の読み出しに
先行して後続イタレーションの書き込みを実行できない
ため、IIが増大する。このため、第一の従来技術で
は、SWPLのステージを越えるレジスタの再利用があ
る場合、レジスタの定義から使用までの期間をII以下
にするためのコピー命令を挿入する必要があり、コピー
命令のためのソフトウェアオーバヘッドとコピーに伴う
論理レジスタの消費があると言う問題がある。
ジスタを有しているため、ある論理レジスタ番号により
定義された値の読み出しを他の論理レジスタで行えな
い。したがって、全体の物理レジスタとしては十分に用
意されている状況でも、命令で使用されている論理レジ
スタに関する物理レジスタのみしか使用せず、物理レジ
スタの使用効率が悪くなるという問題がある。
ジスタを示すフィールドが全ての物理レジスタを指し示
す必要があるため、レジスタフィールドは物理レジスタ
の容量に応じて増大して行くと言う問題と、レジスタア
クセスの際にベースレジスタと論理レジスタ番号の加算
を行うため、レジスタアクセス時間が増大する可能性が
あるという問題がある。特に、前者の問題に関しては、
VLIW方式を採用する際には、1命令中に多数のレジ
スタ指定フィールドがあるため、非常に大きな問題点と
なる。また、ループの繰り返し毎にベースレジスタを更
新するための命令が必要となるため、ソフトウェアオー
バヘッドが生じるという問題もある。
バヘッド無しにSWPLを支援し、(2)VLIW方式
での使用に耐えるように、小さなレジスタ指定フィール
ドによって大容量のレジスタファイルを物理レジスタの
フラグメンテーションなく扱うことを可能にすることに
ある。
めに、本発明の計算機では、命令で指定される論理レジ
スタフィールド毎に、任意の物理レジスタを指し示すこ
との出来るリードポインタあるいはライトポインタを指
定するフィールドと、ポインタをインクリメントする/
しないを制御するフィールドを持ち、オペコードのデコ
ード結果、命令中の論理レジスタフィールドに関するア
クセスの種類が決まると、その論理レジスタフィールド
中のポインタ指定フィールドの値をインデックスとして
リードポインタあるいはライトポインタから値を読みだ
し、その値を物理レジスタ番号として、レジスタファイ
ルへのアクセスを行う。また、このリードポインタとラ
イトポインタに関して、初期値の設定するための手段も
備えている。
るように指定された命令に関しては、イタレーション毎
の書き込みに関して異なる物理レジスタを使用すること
ができるため、読み出しに先行して後続イタレーション
の書き込みを実行することが可能となる。また、リード
ポインタとライトポインタは任意の物理レジスタを指定
可能なため、異なる論理レジスタに関するポインタが同
一物理レジスタを指し示すことができる。したがって、
他の論理レジスタ番号により、書き込まれた値を別の論
理レジスタ番号により読み出すことが可能になる。
ジスタの値の再利用を行う場合、異なる論理レジスタ番
号のリードポインタを同一の物理レジスタを指し示すよ
うにしておくことで、ある論理レジスタ番号で定義され
た値を他の論理レジスタ番号により、読み出すことが出
来るため、レジスタの定義から使用までの期間を短縮す
るための余分なコピー命令が不要となる。また、リード
ポインタとライトポインタのインクリメントは、インク
リメント指定のある命令の実行により自動的になされる
ため、使用する物理レジスタの切り替えのために、特別
な命令を実行する必要がない。
タとライトポインタが任意の物理レジスタを指せるた
め、物理レジスタのフラグメンテーションを防ぐことが
できる。一方、物理レジスタ数はリードポインタとライ
トポインタの幅により規定されるため、論理レジスタ数
すなわち、命令中のレジスタ指定フィールドに影響がな
く、レジスタフィールドが従来のプロセッサと同程度で
も、大容量のレジスタファイルの扱いが可能となる。
式の構成を図面に示した実施例を参照し更に詳細に説明
する。
憶100(キャッシュを含んでいても良い)と、それに
接続された命令レベル並列処理を行うプロセッサ200
からなるシステムである。このプロセッサでは、フェッ
チユニット201が主記憶からプログラムカウンタで指
定される命令をフェッチし、デコードユニット202に
より命令を順次解読し、演算器206a,206bおよ
びLD/ST(Load/Store)ユニット205
a,205bと分岐ユニット207へ信号線301を介
して命令が発行される。同時にデコードステージで解読
された情報は、信号線302を介してレジスタ制御部2
03へ渡され、演算器およびLD/STユニットなどで
使用される物理レジスタの番号が生成され、信号線30
3を介してレジスタファイル204へ入力される。
タ番号によりレジスタ制御部で生成された番号の物理レ
ジスタで示されるレジスタファイル中のレジスタを共有
バス304を介してアクセスしながら、命令のオペコー
ドにより指定される動作を行う。
た論理レジスタ番号によりレジスタ制御部で生成された
番号の物理レジスタに関して、命令のオペコードが主記
憶上のデータを演算で使用するためにレジスタに移動す
る命令であることを示す場合、命令中のオペランドから
生成される主記憶上のアドレスからデータ読み出し、当
該レジスタへ書き込みを行う。また、命令のオペコード
が、演算の結果得られたデータを主記憶に書き戻す命令
であることを示す場合には、当該レジスタからデータが
読み出され、オペランドで指定される主記憶上のアドレ
スへ書き込みを行う。
分岐条件が成立しているかどうかを調べ、条件が成立し
ていれば命令で指定されるアドレスから次命令のフェッ
チを行うようにプログラムカウンタの設定を行う。ま
た、レジスタ制御部へ信号線305を介してレジスタ制
御部内のバッファを無効化するための信号を送ることも
ある。
を表しており、命令はオペコード10とオペランド12
により構成され、オペランドに論理レジスタ11あるい
は即値15を指定可能となっており、論理レジスタ指定
時には、そのフィールドは論理レジスタ番号14とレジ
スタ制御フィールド13から構成さる。図4では、例と
して2つの論理レジスタ指定フィールドと1つの即値か
らオペランドが構成される例を示している。
ージでは、フェッチユニット201でのフェッチステー
ジから送られて来る上記の命令形式の命令に対して、オ
ペコードにより各論理レジスタ指定フィールドで指定さ
れるレジスタへのアクセスの種類を判定し、論理レジス
タ指定フィールドに含まれる論理レジスタ番号を、図5
で示されるレジスタ制御部203の読み出し用論理レジ
スタ番号302−1、あるいは、書き込み用論理レジス
タ番号302−2の入力として、どちらかに振り分けて
レジスタ制御部の入力とする。また、論理レジスタ指定
フィールド内のレジスタ制御フィールドの値も同様に、
アクセス種類に応じて読み込み用論理レジスタのモード
302−3、あるいは、書き込み用論理レジスタのモー
ド302−4のどちらかに振り分けて、レジスタ制御部
へ出力する。
ッチステージから送られて来る命令として、レジスタ制
御部内にあるポインタの設定命令である場合について本
実施例では、この命令は、オペランドフィールドに論理
レジスタ指定フィールド1つと、即値指定のフィールド
を持ち、デコードステージにより、命令で指定される論
理レジスタ番号を、レジスタ制御部の読み出し用論理レ
ジスタ番号と書き込み用論理レジスタ番号の両方へ出力
し、命令で指定される即値をレジスタ制御部の命令中の
即値302−5に出力する。
理レジスタ数分のリードポインタ集合400とライトポ
インタ集合401を保持しており、ポインタ設定命令以
外の時は、デコードステージから302−1,2を介し
て送られて来る読み出し用論理レジスタ番号と書き込み
用論理レジスタ番号をインデックスとして、論理レジス
タに対応するリードポインタ、ライトポインタをリード
ポインタ集合とライトポインタ集合から読み出し、この
読み出された値を物理レジスタ番号として、303を介
してレジスタファイル204へ出力する。
ポインタは、302−3により与えられる読み出し用論
理レジスタのモードの値1/0に応じて加算器405
a,bを制御することにより、読み出したリードポイン
タをインクリメントし、または、インクリメントせず
に、404a,bを介して読み出されたのと同じリード
ポインタへ書き戻す。
ージからレジスタ制御部へ渡される書き込み用論理レジ
スタ番号302−2により読み出されたライトポインタ
の値がレジスタファイルへ出力されるのは、当該論理レ
ジスタ番号を指定している命令の実行後であるため、レ
ジスタ制御部内で書き込み用論理レジスタ番号をバッフ
ァ402に、書き込み用論理レジスタのモードをバッフ
ァ403にバッファしておき、適切なサイクル数だけ遅
延させて、論理レジスタ番号に対応するライトポインタ
を読み出し、レジスタファイルへ出力させる。
は、その値が1の場合、加算器405cを制御し読み出
したライトポインタをインクリメントし、404cを介
して同じライトポインタへ書き戻し、値が0の場合は、
インクリメントと書き戻しを行わない。ただし、書き込
み用論理レジスタ番号がデコードステージから送られて
来てからレジスタファイルへ出力されるまでの間、すな
わち、402と403にバッファされている間に、予測
された分岐の方向と異なる方向に分岐が生じた場合に
は、分岐ユニットから予測ミスの信号が無効化305を
介してレジスタ制御部へ入力され、402と403でバ
ッファされている論理レジスタ番号とそのモードの無効
化を行う。
に値を設定するには、ポインタ設定命令を実行する。こ
のポインタ設定命令は、論理レジスタ番号と設定する値
を示す即値をオペランドとしており、デコードステージ
により、この論理レジスタ番号が、レジスタ制御部の読
み出し用論理レジスタ番号の1つと書き込み用論理レジ
スタ番号として入力される。レジスタ制御部では、リー
ドポインタ集合とライトポインタ集合の内の指定された
論理レジスタ番号に対応するリードポインタとライトポ
インタを書き込み可能状態とし、命令中の即値により与
えられるデータをこの両者に書き込む動作を行う。した
がって、ポインタ設定命令で指定される論理レジスタの
リードポインタとライトポインタは同じ命令で指定され
る即値の値を持つことになる。
設定命令を使用するものとするが、以下のような変形例
も可能である。
あるいはライトポインタの一方へ設定を行うように、オ
ペコードあるいはオペランドで指定し、指定された側の
ポインタの設定を行うようにも出来る。この変形例は図
5と同じ構成であり、デコードステージが、読み出し用
論理レジスタ番号あるいは書き込み用論理レジスタ番号
の片方に命令で指定された論理レジスタ番号を出力し、
レジスタ制御部では、指定された論理レジスタ番号に対
応するポインタを書き込み状態にし、命令で指定される
即値をそのポインタへ格納することにより実現される。
論理レジスタへの書き込みに関して、そのレジスタ制御
フィールドを1とした場合は、連続する物理レジスタを
使用することになるので、SWPLにおいて、後続のイ
タレーションによるレジスタへの書き込みが読み出しに
先行できるようになる。また、論理レジスタの読み出し
に関しては、上記ポインタ設定の動作により、リードポ
インタの初期値はライトポインタの初期値と同じである
から、レジスタ制御フィールドを1とした命令により連
続する物理レジスタを順に読み出して行くので、書き込
み命令が実行された順序により物理レジスタを読み出す
ことが出来る。
SWPLを施したプログラムとその動作について、例を
挙げて詳細に動作説明を行う。使用するプログラムは図
7で示されるフォートランプログラムであり、これを仮
想的なプロセッサのアセンブラにより記述したのが、図
9である。
図9の(1)〜(4)のMTSPR命令は、上記のポイ
ンタ設定を行う命令である。例えば、(1)の命令で
は、論理レジスタ0番に関するリードポインタとライト
ポインタの値は共に0となる。ここで、各命令の論理レ
ジスタに関して、レジスタ指定にq/nがあるのは、そ
れぞれ論理レジスタのモードに相当し、qであれば、ポ
インタをインクリメントし、nであれば、ポインタのイ
ンクリメントを行わないことを表している。
DF命令は、第二オペランドで与えられる主記憶のアド
レスにあるデータを読み出し、第一オペランドにより指
定される論理レジスタに書き込む命令である。一方、
(9)、(12)のSTF命令は、第一オペランドで指
定される論理レジスタから値を読み出し、第二オペラン
ドで与えられる主記憶のアドレスにデータを書き込む命
令である。また、これらLDF命令とSTF命令は、そ
の実行後にオペランドのアドレスを保持するレジスタ
(図中では略)の値を指定のアドレスだけ増加させる。
また、(8)および(11)のFDAA命令は、第二・
三オペランドで指定される論理レジスタの値を読み出
し、それらを加算し、第一オペランドで指定される論理
レジスタに書き込む命令である。(10)のFMUL命
令は、第二・三オペランドで指定される論理レジスタの
値を読み出し、この2つの値を積算を行い第一オペラン
ドで指定される論理レジスタに書き込む命令である。
で示したプロセッサのアセンブラによる動作例を示す。
図11では、この仮想プロセッサのロードレイテンシを
8、演算レイテンシを2とし、LD/STユニット、
(浮動小数点)演算器が2つ、ループ長を8とした場合
の実行の様子を表している。図11の左側で横軸はイタ
レーション、縦軸は時間を表しており、各イタレーショ
ンの処理を表す箱の中には、図9に示したループ中の命
令の番号が、上記のレイテンシなどの条件を満たすよう
に配置されている。また、図11の右側の表は、図7中
のU(K),U(K−1)に関係する論理レジスタ番号
(FR0,FR1,FR2,FR3)と、リードポイン
タとライトポインタの値の遷移が記されている。
イタレーションに関する同一論理レジスタへの書き込み
が読み出しに先行して実行されている。例えば、K=
3,4,5,6の命令(7)がK=2の命令(8)より
前に実行されている。また、ループの前の各レジスタに
関するポインタ設定によって、他の論理レジスタ番号に
より書き込まれた物理レジスタを別の論理レジスタ番号
で読み出しているのが、FR0とFR1,FR2の関係
に表れている。これにより、ループ中での余分なコピー
命令を不要となっている。
従来の技術によるレジスタ構成を有する同様の仮想プロ
セッサに適用した場合のアセンブラを図10に示す。た
だし、論理レジスタ指定フィールドのq/nに関して
は、図9と同じである。また、(4)(6)(8)のF
MOV命令に関しては、第二オペランドで与えられる論
理レジスタから値を読み出し、第一オペランドで与えら
れる論理レジスタに書き込む命令である。
した場合、図12に示す状況となる。ただし、図12で
は使用されない演算器の命令フィールドは除いている。
図12から分かるように、余分なコピー命令(4)
(6)(8)の挿入によりループ中の命令コードが増加
しており、さらに、イタレーション:KのFADD F
R2.q,FR0.q,FR1.q以降でなければ、F
R0のリードポインタが更新されないため、イタレーシ
ョン:K+1のFMOV FR1.q,FR0.nが実
行できない。その結果、II(Initiation
Interval)が9に増大しており、性能低下をも
たらしている。
令の動作を詳細に説明を行う。時間0から時間3までの
間は、(7)の命令が実行される。命令(7)のFR0
は.q指定であるため、U(2)からU(5)が主記憶
から読み出され、論理レジスタFR0のライトポインタ
が順次インクリメントされるので、物理レジスタ1から
4に順に書き込みが行われる。
の命令(7)が実行される。命令(7)では、論理レジ
スタFR0のライトポインタで表される書き込み用の物
理レジスタ5に、主記憶からU(6)の値が格納され
る。また、命令中に.q指定があるので、ライトポイン
タがインクリメントされる。命令(8)では、論理レジ
スタFR0とFR2のリードポインタは、命令(1)、
(3)により0と1に設定されているため、物理レジス
タ0と1からU(1)とU(2)の値を読み出して、加
算を行い、Z(2)の値を生成し、論理レジスタFR3
のライトポインタで表される書き込み用の物理レジスタ
10に値を書き込む。また、使用した論理レジスタは全
て.q指定であるので、それぞれのポインタはインクリ
メントされる。
とK=3の命令(8)、K=7の命令(7)が実行され
る。命令(7)と命令(8)に関しては、時間4と同様
であり、命令(7)では、物理レジスタ6に主記憶から
U(7)が格納され、ライトポインタが更新される。命
令(8)では、物理レジスタ1と2からU(2)とU
(3)の値を読み出して、加算を行い物理レジスタ11
へZ(3)の値を格納し、各ポインタをインクリメント
する。命令(9)では、論理レジスタFR2のリードポ
インタで表される物理レジスタ10に保持されているZ
(2)の値を、主記憶上のZ(2)のアドレスへ書き戻
す。また、論理レジスタFR2では、.n指定であるの
で、リードポインタはインクリメントされない。命令
(10)では、論理レジスタFR10は、スカラ変数R
の値が格納されており、論理レジスタFR3のリードポ
インタで表される物理レジスタ10に保持されているZ
(2)の値とFR10の積を計算し、FR5のライトポ
インタで表される物理レジスタへ書き込まれ、FR3、
FR5は.q指定であるため、FR3のリードポインタ
とFR5のライトポインタがインクリメントされる。こ
こで、FR10に関して、他論理レジスタへの定義によ
り内容を変更されないように、他論理レジスタが使用し
ない物理レジスタを使用するように設定しておく必要が
ある。これは、図7のプログラム例では、ループ長が8
と既知であるため、ループ中で書き込みに使用される論
理レジスタの初期値の内、最大の値+ループ長で表され
る番号以上の値をFR10のリードポインタとしてい
る。
3の命令(9)(10)、K=4の命令(8)およびK
=8の命令(7)が実行される。命令(7)と(8)に
関しては、時間4と同様であり、命令(7)では、物理
レジスタ7に主記憶からU(7)が格納され、ライトポ
インタが更新される。命令(8)では、物理レジスタ2
と3から、U(3)とU(4)の値を読み出して加算を
行い物理レジスタ12へZ(4)の値を格納し、各ポイ
ンタをインクリメントする。また、命令(9)と(1
0)に関しては、時間5と同様であり、命令(9)で
は、物理レジスタ11に保持されているZ(3)の値
を、主記憶上のZ(3)のアドレスへ書き戻し、命令
(10)では、物理レジスタ11に保持されているZ
(3)とFR10のスカラ変数Rの積を計算し、FR5
のライトポインタにより表される物理レジスタへ格納
し、各ポインタをインクリメントする。命令(11)で
は、時間5に命令(10)でFR5のライトポインタが
表す物理レジスタへ書き込まれた値と、FR1のリード
ポインタで表される物理レジスタ1の内容を加算し、得
られた値をFR6のライトポインタが表す物理レジスタ
へ格納し、各ポインタをインクリメントする。
3の命令(11)、K=4の命令(9)(10)、K=
5の命令(8)、およびK=9の命令(7)が実行され
る。命令(7)と(8)に関しては、時間4と同様であ
り、命令(7)では、物理レジスタ8に主記憶からU
(8)が格納され、ライトポインタが更新される。命令
(8)では、物理レジスタ3と4から、U(4)とU
(5)の値を読み出して加算を行い物理レジスタ13へ
Z(5)の値を格納し、各ポインタをインクリメントす
る。また、命令(9)と(10)に関しては、時間5と
同様であり、命令(9)では、物理レジスタ12に保持
されているZ(4)の値を、主記憶上のZ(3)のアド
レスへ書き戻し、命令(10)では、物理レジスタ12
に保持されているZ(4)とFR10のスカラ変数Rの
積を計算し、FR5のライトポインタにより表される物
理レジスタへ格納し、各ポインタをインクリメントす
る。命令(11)に関しては、時間6に命令(10)で
FR5のライトポインタが表す物理レジスタへ書き込ま
れた値と、物理レジスタ2の内容を加算し、得られた値
をFR6のライトポインタが表す物理レジスタへ格納
し、書くポインタをインクリメントする。命令(12)
では、時間6に命令(11)でFR6のライトポインタ
が表す物理レジスタから値を読み出し、主記憶上のX
(2)のアドレスに書き戻し、FR6のリードポインタ
をインクリメントする。
K=3,4,5,6の命令(12)、K=4,5,6,
7の命令(11)、K=5,6,7,8の命令(9)
(10)、K=6,7,8,9の命令(8)が実行され
る。命令(7)と(8)に関しては、時間4と同様であ
り、命令(8)では、各時間で物理レジスタ4と5、5
と6、6と7、7と8から、U(5)とU(6)、U
(6)とU(7)、U(7)とU(8)、U(8)とU
(9)の値を読み出して加算を行い物理レジスタ14,
15,16,17へZ(6),Z(7),Z(8),Z
(9)の値を格納していく。また、命令(9)と(1
0)に関しては、時間5と同様であり、命令(9)で
は、物理レジスタ13,14,15,16に保持されて
いる、Z(5),Z(6),Z(7),Z(8)の値を
主記憶上の対応するアドレスへ書き戻し、命令(10)
では、物理レジスタ13,14,15,16に保持され
ているZ(5),Z(6),Z(7),Z(8)とFR
10のスカラ変数Rの積を計算し、FR5のライトポイ
ンタにより表される物理レジスタへ格納する。命令(1
1)に関しては、時間7,8,9,10に命令(10)
でFR5のライトポインタが表す物理レジスタへ書き込
まれた値と、物理レジスタ3,4,5,6の内容を加算
し、得られた値をFR6のライトポインタが表す物理レ
ジスタへ順次格納する。命令(12)に関しては、命令
(12)を実行する前の時間でFR6のライトポインタ
が表す物理レジスタから値を読み出し、主記憶上のX
(3),X(4),X(5),X(6)のアドレスに書
き戻す。
=8の命令(11)、K=9の命令(9)(10)が実
行される。命令(9)(10)に関しては、時間5と同
様であり、命令(9)では、物理レジスタ17に保持さ
れているZ(9)の値を主記憶上の対応するアドレスへ
書き戻し、命令(10)では、物理レジスタ17の保持
されているZ(9)とFR10のスカラ変数Rの積を計
算し、FR5のライトポインタにより表される物理レジ
スタへ格納する。命令(11)に関しては、時間11に
命令(10)でFR5のライトポインタが表す物理レジ
スタへ書き込まれた値と、物理レジスタ7の内容を加算
し、得られた値をFR6のライトポインタが表す物理レ
ジスタが表す物理レジスタへ格納する。命令(12)に
関しては、その実行の前の時間でFR6のライトポイン
タが表す物理レジスタから値を読み出し、主記憶上のX
(7)のアドレスに書き戻す。
=9の命令(11)が実行される。命令(11)に関し
ては、時間12に命令(10)でFR5のライトポイン
タが表す物理レジスタへ書き込まれた値と、物理レジス
タ8の内容を加算し、得られた値をFR6のライトポイ
ンタが表す物理レジスタが表す物理レジスタへ格納す
る。命令(12)に関しては、その実行の前の時間でF
R6のライトポインタが表す物理レジスタから値を読み
出し、主記憶上のX(8)のアドレスに書き戻す。
行され、この命令(12)に関しては、その実行の前の
時間でFR6のライトポインタが表す物理レジスタから
値を読み出し、主記憶上のX(9)のアドレスに書き戻
す。
あり、レジスタ制御部203とレジスタファイル204
を図8のような構成としたものである。本実施例では、
レジスタファイルとして、実施例1のように論理レジス
タ番号によりリード/ライトポインタを介して、物理レ
ジスタをアクセスするためのレジスタファイル411に
加えて、論理レジスタ番号と物理レジスタ番号が1対1
で対応し、他の論理レジスタ番号により破壊されない固
定用レジスタファイル412を加えている。これによ
り、実施例1の図7で示したコード中のRのようなルー
プ中の定数をこの固定レジスタファイル中のレジスタ
(以下、固定レジスタと呼ぶ)を使用することにより、
コンパイラによる物理レジスタ管理を軽減する。
であり、ある決められた番号より小さな番号であるとし
ている。また、レジスタファイルでは、固定レジスタ番
号用に別のレジスタファイルを設けており、他のレジス
タファイルと区別している。さらに、本実施例の変形と
して、レジスタファイルの一部を固定用のレジスタファ
イルとして使用する構成も考えられるが、ここでは述べ
ない。
8中で、図5と同じ番号を持つ構成要素に付いては、実
施例1と同様の動作を行うものであるので、本実施例で
は、実施例1と異なる部分について述べる。デコードス
テージから302−1,2を介して、送られて来る読み
込み用論理レジスタ番号と、書き込み用論理レジスタ番
号を比較器406a,b,cで、固定レジスタ番号の最
大値+1を保持する境界レジスタ407と比較を行い、
境界レジスタの値以上の値をしている論理レジスタ指定
フィールドに関しては、固定レジスタではないので、該
フィールドに関するものは、実施例1のように302−
1,2の値をインデックスとして、リードポインタ集合
とライトポインタ集合から、リードポインタとライトポ
インタを読み出し、その値を物理レジスタ番号として、
レジスタファイル204へ303−1または2または3
を介して出力するようにセレクタ409a,b,cを比
較器406a,b,cの出力により制御する。この時、
比較器406a,b,cの結果もあわせてレジスタファ
イルへ303−3,4,5を介して出力する。レジスタ
ファイルでは、303−3,4,5の結果に基づいて、
303−1,2,3を固定レジスタファイル412へ入
力するか、レジスタファイル411へ入力するかを、ス
イッチ(SW)410a,b,cで決定する。ここで、
比較器、406cの前段にバッファ402があるのは、
実施例1と同じ理由によるものである。
る論理レジスタ指定フィールドに関しては、固定レジス
タをアクセスするようにするため、該フィールドに対応
するセレクタ409aまたはbまたはcを制御し、デコ
ードステージから送られて来る読み出し用論理レジスタ
番号、または書き込み用論理レジスタ番号をレジスタフ
ァイル204へ出力するようにする。同時に比較器40
6a,b,cの結果もレジスタファイル204へ出力さ
れ、この値に基づいてスイッチ410a,b,cの制御
を行い該フィールドのものに関しては、411のレジス
タファイルへ入力するようにする。
ルドに境界レジスタに保持される値以下の論理レジスタ
番号を使用しているものに関しては、その論理レジスタ
に対応する物理レジスタとして、固定用レジスタファイ
ル中のものをアクセスし、逆に大きな値を指定している
フィールドに関しては、Queue用レジスタファイル
をアクセスし、演算器、LD/STユニット、分岐ユニ
ットとの間でデータの受渡しを行うことになる。
あり、ポインタ設定に関して、命令で指定される第一の
論理レジスタ番号のポインタ設定に関して、命令で指定
される第二の論理レジスタ番号のポインタを参照し、命
令で指定された即値を加えるためのものである。これ
は、論理レジスタ間の距離のみが問題で、各論理レジス
タが使用する物理レジスタのレジスタファイル中の位置
が問題にならない場合等に使用されるものである。本実
施例でのレジスタ制御ユニットの構成を図6に示す。
能であり、同様の効果が得られるが、本実施例では実施
例1を基にした構成のみを示している。また、本実施例
の構成図である図6において、実施例1の図5と同じ番
号を有する構成要素に付いては、実施例1と同様の動作
を行うものであるので、本実施例では、実施例1と異な
る部分について述べる。
外の際には、実施例1と全く同じ動作を行い、ポインタ
設定命令に関してのみ実施例1と動作が異なる。本実施
例のポインタ設定命令は2つの論理レジスタ指定フィー
ルドと1つの即値を指定できるオペランドを持ち、オペ
コードにより、指定を行うポインタの種類の選択を行
う。選択されたポインタの種類の集合、すなわち、リー
ドポインタ集合400またはライトポインタ集合40
1、の中で、第一の論理レジスタ指定フィールドにより
指定される論理レジスタ番号をインデックスとして、選
択されたポインタ集合中のポインタを書き込み可能な状
態とし、第二の論理レジスタ指定フィールドにより指定
される論理レジスタ番号をインデックスとして、選択さ
れたポインタ集合中のポインタを読みだし、命令で指定
される即値フィールドの値をデコードステージから30
2−5から受取り、読み出したポインタの値と即値の値
を加算器413aまたは、413bにより加算し、書き
込み可能な状態のポインタへ書き戻す。
あり、ポインタ設定に関して、各ポインタの初期値とし
て予め決められたパターンがしてあり、ポインタ設定命
令実行により各ポインタの内容がそのパターンとなるも
のである。実施例1では、SWPL化されたループ内で
使用される論理レジスタに関するポインタ設定命令を実
行する必要があるため、ループ起動のオーバヘッドを生
じることになる。これに対して、本実施例のポインタ設
定方法により、コンパイラが適切に値の離れた論理レジ
スタ番号を使用するようにレジスタ割り付けを行うこと
により、このオーバヘッドは削減することが出来る。図
13は、本実施例におけるレジスタ制御部の構成例を示
している。なお、図13において、実施例1の図5と同
じ番号を有する構成要素に付いては、実施例1と同様の
動作を行うのであるので、本実施例では、実施例1と異
なる部分について述べる。
外の際には、実施例1と全く同様の動作を行い、ポイン
タ設定命令に関してのみ実施例1と動作が異なる。本実
施例のポインタ設定命令は、論理レジスタ指定フィール
ドは持たず、即値指定フィールドのみをオペランドとす
る。この即値指定フィールドの値は、デコードステージ
よりレジスタ制御部へ302−5を介して入力される。
302−5はレジスタ制御部内のパターン生成回路41
5において、リードポインタ集合400とライトポイン
タ集合401に設定するポインタのパターンの選択に使
用され、パターン生成回路で生成された値を416a,
bを介してリードポインタ集合とライトポインタ集合中
の各ポインタに値を格納する。
理レジスタ番号に対応するポインタの内容を自論理レジ
スタ番号を(物理レジスタ数)/(論理レジスタ数)の
対数ビット分左シフトすることにより、各論理レジスタ
が使用する物理レジスタがレジスタファイル中で等間隔
にしたり、予めパターン生成回路内に初期値を持つポイ
ンタ集合を持ちポインタ設定命令により、リードポイン
タ集合とライトポインタ集合にコピーを行う等の方式が
考えられる。
事のできるリードポインタとライトポインタを論理レジ
スタ毎に設け、命令のレジスタアクセス毎に、このポイ
ンタを物理レジスタ番号として使用する。また、命令で
指定のある場合は、物理レジスタアクセスに使用するポ
インタのインクリメントを行うことで、以降の同一論理
レジスタ番号への同種類のアクセスで異なる物理レジス
タを使用する事ができる。これにより、SWPLにおけ
る同一論理レジスタへの書き込みと読み出しの順序保証
に伴う逐次化による命令レベル並列性の低下を防ぐこと
が可能となる効果がある。また、物理レジスタの切り替
えを指定のある命令実行毎に行うため、従来のレジスタ
リネーミングのように使用する物理レジスタを切り替え
るための命令の実行が不要となるという効果もある。
定フィールドを直接用いていないので、命令中のレジス
タ指定フィールドが小さくても、大容量の物理レジスタ
ファイルを扱う事が可能になると言う効果がある。
ある。
ある。
ある。
ログラム例を示す図である。
ある。
セッサのアセンブラにより記述した例を示す図である。
る仮想プロセッサのアセンブラにより記述した例を示す
図である。
である。
Claims (8)
- 【請求項1】論理レジスタ番号で指定される複数の論理
レジスタと、物理レジスタ番号で指定される複数の物理
レジスタから構成されるレジスタファイルと、論理レジ
スタ番号を任意の物理レジスタ番号に変換する手段を有
するプロセッサであって、 第一の論理レジスタへの書き込み命令を複数回実行する
際、前記書き込み命令を契機として、順次異なる物理レ
ジスタへアクセスする手段と、 論理レジスタからの読み出し命令を複数回実行する際、
前記読み出し命令を契機として、前記第一の論理レジス
タへの書き込み命令によって順次書き込まれた、前記物
理レジスタの順に物理レジスタの内容を、任意の箇所か
ら読み出す手段を有することを特徴とするプロセッサ。 - 【請求項2】請求項1のプロセッサにおいて、 該論理レジスタ番号から物理レジスタ番号に変換する手
段は、各ポインタが全物理レジスタを指し示すリードポ
インタ群とライトポインタ群を有し、 論理レジスタ番号と該論理レジスタ番号に対応するポイ
ンタを制御するレジスタ制御フィールドを有する命令中
の、論理レジスタ番号と、オペコードによって決められ
る前記レジスタ番号の論理レジスタに関するアクセスの
種類に応じて、リードポインタ群あるいはライトポイン
タ群の一方から、リードポインタあるいはライトポイン
タを読み出し、その内容が表す値を物理レジスタ番号と
してレジスタファイル中の物理レジスタへアクセスする
手段と、 命令中の該論理レジスタ番号に対応するレジスタ制御フ
ィールドの値に応じて、該リードポインタあるいは該ラ
イトポインタの値を、該論理レジスタフィールドを含む
命令の実行を契機として、インクリメントし該論理レジ
スタ番号に対応するリードポインタ群あるいはライトポ
インタ群のリードポインタあるいはライトポインタに書
き戻す手段と、 命令中の論理レジスタフィールドの論理レジスタ番号に
対応するリードポインタとライトポインタへ任意の値を
設定する命令を実行する手段を有するプロセッサ。 - 【請求項3】請求項1のプロセッサにおいて、 該論理レジスタの内の一部の論理レジスタ番号を有する
論理レジスタは、固定的に同じ物理レジスタに対応付け
られているプロセッサ。 - 【請求項4】請求項2または請求項3のプロセッサにお
いて、 論理レジスタへのアクセスの際に参照されるリードポイ
ンタとライトポインタの値を設定するポインタ設定命令
を実行する手段と、 該ポインタ設定命令により指定される論理レジスタ番号
のリードポインタとライトポインタを選択し、該設定命
令で指定され、物理レジスタ番号を表す即値を該リード
ポインタとライトポインタに設定する手段を有するプロ
セッサ。 - 【請求項5】請求項2または請求項3のプロセッサにお
いて、 論理レジスタへのアクセスの際に参照されるリードポイ
ンタとライトポインタの値を設定するポインタ設定命令
を実行する手段と、 該ポインタ設定命令により指定される論理レジスタ番号
と該設定命令のオペコードによりリードポインタあるい
はライトポインタを選択し、該設定命令で指定され、物
理レジスタ番号を表す即値を選択した該ポインタに設定
する手段を有するプロセッサ。 - 【請求項6】請求項2または請求項3のプロセッサにお
いて、 論理レジスタへのアクセスの際に参照されるリードポイ
ンタとライトポインタの値を設定するポインタ設定命令
を実行する手段と、 該ポインタ設定命令により指定される第一の論理レジス
タ番号と第二の論理レジスタ番号により、リードポイン
タとライトポインタを選択し、第二の論理レジスタ番号
に対応するリードポインタとライトポインタに該ポイン
タ設定命令で指定され、両ポインタの差分を表す即値を
加算し、第一の論理レジスタ番号に対応するリードポイ
ンタとライトポインタに書き戻す手段を有するプロセッ
サ。 - 【請求項7】請求項2または請求項3のプロセッサにお
いて、 論理レジスタへのアクセスの際に参照されるリードポイ
ンタとライトポインタの値を設定するポインタ設定命令
を実行する手段と、 該ポインタ設定命令により指定される第一の論理レジス
タ番号と、第二の論理レジスタ番号と該ポインタ設定命
令のオペコードによりリードポインタあるいはライトポ
インタを選択し、第二の論理レジスタ番号に対応する該
ポインタに該ポインタ設定命令で指定され、両ポインタ
の差分を表す即値を加算し、第一の論理レジスタ番号に
対応するリードポインタあるいはライトポインタに書き
戻す手段を有するプロセッサ。 - 【請求項8】請求項2または請求項3のプロセッサにお
いて、論理レジスタへのアクセスの際に参照されるリー
ドポインタとライトポインタの値を設定するポインタ設
定命令を実行する手段を有し、該ポインタ設定命令の実
行によりリードポインタとライトポインタが予め決めら
れた値にセットされる手段を有するプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8249594A JPH1097423A (ja) | 1996-09-20 | 1996-09-20 | ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ |
US08/934,061 US5872989A (en) | 1996-09-20 | 1997-09-19 | Processor having a register configuration suited for parallel execution control of loop processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8249594A JPH1097423A (ja) | 1996-09-20 | 1996-09-20 | ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1097423A true JPH1097423A (ja) | 1998-04-14 |
Family
ID=17195346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8249594A Pending JPH1097423A (ja) | 1996-09-20 | 1996-09-20 | ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US5872989A (ja) |
JP (1) | JPH1097423A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001109376A (ja) * | 1999-10-04 | 2001-04-20 | Toyo Commun Equip Co Ltd | 演算回路および演算プロセッサ |
US6938149B2 (en) | 2000-09-28 | 2005-08-30 | Kabushiki Kaisha Toshiba | Renaming apparatus and processor |
JP2008523523A (ja) * | 2004-12-13 | 2008-07-03 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | プログラム内のループ用のコンパイル方法、コンパイル装置およびコンピュータシステム |
US7856629B2 (en) | 2005-06-06 | 2010-12-21 | Panasonic Corporation | Compiler apparatus |
JP2017228213A (ja) * | 2016-06-24 | 2017-12-28 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6269440B1 (en) * | 1999-02-05 | 2001-07-31 | Agere Systems Guardian Corp. | Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously |
US6598155B1 (en) | 2000-01-31 | 2003-07-22 | Intel Corporation | Method and apparatus for loop buffering digital signal processing instructions |
US6732203B2 (en) * | 2000-01-31 | 2004-05-04 | Intel Corporation | Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus |
US7249248B2 (en) * | 2002-11-25 | 2007-07-24 | Intel Corporation | Method, apparatus, and system for variable increment multi-index looping operations |
US7836279B2 (en) * | 2003-09-05 | 2010-11-16 | Stmicroelectronics, Inc. | Method and system for supporting software pipelining using a shifting register queue |
US20050259777A1 (en) * | 2004-05-19 | 2005-11-24 | George Claseman | Method for expanding the addressing capability of a plurality of registers and apparatus for implementation thereof |
JP2006004042A (ja) * | 2004-06-16 | 2006-01-05 | Renesas Technology Corp | データ処理装置 |
US8443351B2 (en) * | 2006-02-23 | 2013-05-14 | Microsoft Corporation | Parallel loops in a workflow |
GB2507484A (en) * | 2012-10-30 | 2014-05-07 | Ibm | Limiting the number of concurrent requests in a database system |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0762823B2 (ja) * | 1985-05-22 | 1995-07-05 | 株式会社日立製作所 | デ−タ処理装置 |
JP2504312B2 (ja) * | 1990-08-29 | 1996-06-05 | 三菱電機株式会社 | プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置 |
JP3205092B2 (ja) * | 1991-11-20 | 2001-09-04 | 株式会社日立製作所 | 情報処理装置 |
JP2725546B2 (ja) * | 1992-12-07 | 1998-03-11 | 株式会社日立製作所 | デ−タ処理装置 |
JP3220881B2 (ja) * | 1992-12-29 | 2001-10-22 | 株式会社日立製作所 | 情報処理装置 |
US5694564A (en) * | 1993-01-04 | 1997-12-02 | Motorola, Inc. | Data processing system a method for performing register renaming having back-up capability |
US5548776A (en) * | 1993-09-30 | 1996-08-20 | Intel Corporation | N-wide bypass for data dependencies within register alias table |
US5630149A (en) * | 1993-10-18 | 1997-05-13 | Cyrix Corporation | Pipelined processor with register renaming hardware to accommodate multiple size registers |
WO1996012228A1 (en) * | 1994-10-14 | 1996-04-25 | Silicon Graphics, Inc. | Redundant mapping tables |
US5740414A (en) * | 1995-02-14 | 1998-04-14 | Hal Computer Systems, Inc. | Method and apparatus for coordinating the use of physical registers in a microprocessor |
-
1996
- 1996-09-20 JP JP8249594A patent/JPH1097423A/ja active Pending
-
1997
- 1997-09-19 US US08/934,061 patent/US5872989A/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001109376A (ja) * | 1999-10-04 | 2001-04-20 | Toyo Commun Equip Co Ltd | 演算回路および演算プロセッサ |
US6938149B2 (en) | 2000-09-28 | 2005-08-30 | Kabushiki Kaisha Toshiba | Renaming apparatus and processor |
JP2008523523A (ja) * | 2004-12-13 | 2008-07-03 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | プログラム内のループ用のコンパイル方法、コンパイル装置およびコンピュータシステム |
US7856629B2 (en) | 2005-06-06 | 2010-12-21 | Panasonic Corporation | Compiler apparatus |
USRE45199E1 (en) | 2005-06-06 | 2014-10-14 | Panasonic Corporation | Compiler apparatus |
JP2017228213A (ja) * | 2016-06-24 | 2017-12-28 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US5872989A (en) | 1999-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6185668B1 (en) | Method and apparatus for speculative execution of instructions | |
JP2928695B2 (ja) | 静的インタリーブを用いたマルチスレッドマイクロプロセッサおよびそれを備えたシステムでの命令スレッド実行方法 | |
US5655096A (en) | Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution | |
US5941983A (en) | Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues | |
US7594102B2 (en) | Method and apparatus for vector execution on a scalar machine | |
US5710902A (en) | Instruction dependency chain indentifier | |
JP3120152B2 (ja) | コンピューターシステム | |
EP1023659B1 (en) | Efficient processing of clustered branch instructions | |
KR100852563B1 (ko) | 디지털 신호 처리 장치 및 방법 | |
US20010021970A1 (en) | Data processor | |
JP2000148488A (ja) | ス―パ―スカラプロセッサ | |
JPH1097423A (ja) | ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ | |
JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
JP2006518053A (ja) | ハードウェア・スカウト・スレッディングを通してコードを推測で実行することによるプリフェッチの生成 | |
JP2009099097A (ja) | データ処理装置 | |
JP3866513B2 (ja) | データストリーミングのためのコンピュータのプロセッサ及び方法 | |
US6516462B1 (en) | Cache miss saving for speculation load operation | |
JP2001092657A (ja) | 中央演算装置、コンパイル方法、及びコンパイルプログラムを記録した記録媒体 | |
EP1378824A1 (en) | A method for executing programs on multiple processors and corresponding processor system | |
JP7048612B2 (ja) | ベクトル生成命令 | |
JPH03233630A (ja) | 情報処理装置 | |
KR100837400B1 (ko) | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 | |
JPH11242599A (ja) | コンピュータプログラム製品 | |
JP2006506727A (ja) | コピーレジスタファイルを有するvliw | |
US11347506B1 (en) | Memory copy size determining instruction and data transfer instruction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080426 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 7 Free format text: PAYMENT UNTIL: 20090426 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100426 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110426 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120426 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130426 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130426 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 12 Free format text: PAYMENT UNTIL: 20140426 |
|
EXPY | Cancellation because of completion of term |