JP5028774B2 - 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 - Google Patents
演算処理装置,情報処理装置,及びレジスタファイルの制御方法 Download PDFInfo
- Publication number
- JP5028774B2 JP5028774B2 JP2005275024A JP2005275024A JP5028774B2 JP 5028774 B2 JP5028774 B2 JP 5028774B2 JP 2005275024 A JP2005275024 A JP 2005275024A JP 2005275024 A JP2005275024 A JP 2005275024A JP 5028774 B2 JP5028774 B2 JP 5028774B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- window
- current
- data
- instruction
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 60
- 238000000034 method Methods 0.000 title claims description 27
- 235000003392 Curcuma domestica Nutrition 0.000 claims description 6
- 244000008991 Curcuma longa Species 0.000 claims description 6
- 235000003373 curcuma longa Nutrition 0.000 claims description 6
- 238000006467 substitution reaction Methods 0.000 claims description 6
- 235000013976 turmeric Nutrition 0.000 claims description 6
- 238000004587 chromatography analysis Methods 0.000 claims description 4
- 229960001716 benzalkonium Drugs 0.000 claims description 3
- CYDRXTMLKJDRQH-UHFFFAOYSA-N benzododecinium Chemical compound CCCCCCCCCCCC[N+](C)(C)CC1=CC=CC=C1 CYDRXTMLKJDRQH-UHFFFAOYSA-N 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B63—SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
- B63C—LAUNCHING, HAULING-OUT, OR DRY-DOCKING OF VESSELS; LIFE-SAVING IN WATER; EQUIPMENT FOR DWELLING OR WORKING UNDER WATER; MEANS FOR SALVAGING OR SEARCHING FOR UNDERWATER OBJECTS
- B63C9/00—Life-saving in water
- B63C9/08—Life-buoys, e.g. rings; Life-belts, jackets, suits, or the like
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
- G06F9/30127—Register windows
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63B—APPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
- A63B2208/00—Characteristics or parameters related to the user or player
- A63B2208/03—Characteristics or parameters related to the user or player the user being in water
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63B—APPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
- A63B2225/00—Miscellaneous features of sport apparatus, devices or equipment
- A63B2225/60—Apparatus used in water
- A63B2225/605—Floating
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B63—SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
- B63C—LAUNCHING, HAULING-OUT, OR DRY-DOCKING OF VESSELS; LIFE-SAVING IN WATER; EQUIPMENT FOR DWELLING OR WORKING UNDER WATER; MEANS FOR SALVAGING OR SEARCHING FOR UNDERWATER OBJECTS
- B63C9/00—Life-saving in water
- B63C2009/0023—Particular features common to inflatable life-saving equipment
Description
レジスタウィンドウはリング状に連結され、その管理はレジスタウィンドウ番号(以下、ウィンドウ番号と呼ぶ)で行われる。例えば、ウィンドウ番号が0〜7の8つのレジスタウィンドウを備え、0、1、2、・・・、7といった順番に使用される。使用中のウィンドウ番号はウィンドウ番号を保持するレジスタ(以下、CWP(Current Window Pointer)という)によって保持される。
このレジスタファイルAにおいて、CWPが示す現在のレジスタウィンドウW0〜W7を切り替えるレジスタウィンドウ切替命令(以下、単に切替命令ともいう)には、CWPをインクリメントするSAVE命令と、CWPをデクリメントするRESTORE命令(RETURN命令)とがある。以下、レジスタウィンドウ切替命令をSAVE命令、RESTORE命令と称する。なお、図5においてCWPはレジスタウィンドウW0を示している。
そのため、図6のように全てのウィンドウを保持するMRF101に加えて、このMRF101内のCWPで示される現在のレジスタウィンドウのデータのコピーを保持するサブセットとしてのWRF102を具備し、演算器103へのオペランド供給は、このWRF102により行なう。WRF102はCWPで示されるウィンドウのみを保持するので、容量は32エントリとMRF101に比べて小さくでき、その結果、演算器103の読み出しを高速化できる。
そのため、SAVE命令又はRESTORE命令が実行されると、WRF102を新しいウィンドウの値に入れ替えなければならず、MRF101からWRF102へのウィンドウ(データ)転送処理が発生し、その間以後の命令実行はストールすることになる。
そこで、図7に示すごとく、WRF112にCWPが示す現在のレジスタウィンドウのデータ(G,L1,Io1,Io2)に加えて、当該レジスタウィンドウの前後のレジスタウィンドウ(L2,Io3,L3,Io4)のデータを保持する(すなわち、CWP+1,CWP−1で示されるレジスタウィンドウのレジスタを予め先見転送する)ように構成して、SAVE命令やRESTORE命令後の命令に対してもアウトオブオーダ実行させることができるようした情報処理装置110がある(例えば、下記特許文献1参照)。
そして、WRF112には、図8に示すごとく、CWPが示す現在のレジスタウィンドウ(ここでは、CWPが現在示すレジスタウィンドウを“CWP”で表わし、CWPの一つ次のレジスタウィンドウ(現在のCWPをインクリメントした後のレジスタウィンドウ)を“CWP+1”で表わし、CWPの一つ前のレジスタウィンドウ(現在のCWPをデクリメントした後のレジスタウィンドウ)を“CWP−1”で表わす。なお、以下の説明においてもレジスタウィンドウW0〜W7を上記のCWPとの関係に基づいて“CWP”,“CWP+1”,“CWP−1”で表わす場合がある。)のレジスタである、CWPのIns(CWP−1のOutsと共通),CWPのLocals,CWPのOuts(CWP+1のInsと共通),及びCWPのGlobalsの内容が保持されるとともに、RESTORE命令実行後の命令で必要なレジスタウィンドウのレジスタであるCWP−1のIns,CWP−1のLocals、及び、SAVE命令実行後の命令で必要なレジスタウィンドウのレジスタであるCWP+1のOuts,CWP+1のLocalsが保持される。
本発明は、このような課題に鑑み創案されたもので、レジスタウィンドウ及びアウトオブオーダ実行方式を採用する情報処理装置において、ハードウェア資源を低減させるとともにデータリードのスループットを向上することを目的とする。
さらに、本発明の演算処理装置は、前記演算部が、前記レジスタファイル及び前記カレントレジスタの双方に対して同時に前記命令処理の結果データの書込みを行うことが好ましい。
さらに、本発明の演算処理装置は、前記演算部が前記ウィンドウ切替命令をデコードした場合には、前記制御部が、前記ウィンドウ切替命令の実行によって前記カレントウィンドウポインタ部が指定する前記レジスタウィンドウのlocalレジスタが保持するデータと、inレジスタ又はoutレジスタのうちいずれかが保持するデータとを前記置換バッファへ転送することが好ましい。
さらに、本発明の情報処理装置は、前記演算部が、前記レジスタファイル及び前記カレントレジスタの双方に対して同時に前記命令処理の結果データの書込みを行うことが好ましい。
さらに、本発明の情報処理装置は、前記演算部が前記ウィンドウ切替命令をデコードした場合には、前記制御部が、前記ウィンドウ切替命令の実行によって前記カレントウィンドウポインタ部が指定する前記レジスタウィンドウのlocalレジスタが保持するデータと、inレジスタ又はoutレジスタのうちいずれかが保持するデータとを前記置換バッファへ転送することが好ましい。
さらに、ハードウェア資源を低減させることができるので、レジスタのための実装面積を低減することができるとともに、消費電力を低減することもできる。
〔1〕本発明の一実施形態について
まず、図1に示すブロック図を参照しながら、本発明の一実施形態としての情報処理装置の構成について説明する。図1に示すように、本情報処理装置1は、マスタレジスタファイル(マスタレジスタ;MRF:Master Register File)10,カレントウィンドウレジスタ(カレントレジスタ;CWR:Current Window Register)20,カレントウィンドウリプレースバッファ(置換バッファ;CRB:Current window Replace Buffer)30,演算部(演算手段)40,及び制御部(制御手段)50をそなえて構成されている。
カレントウィンドウレジスタ(以下、CWRという)20は、MRF10の複数のレジスタウィンドウW0〜W7のうちのCWPが示す現在のレジスタウィンドウWi(i=0,1,・・,7)を保持するものであり、ここではGlobalレジスタを含めた一つのレジスタウィンドウWiのみを保持する。
CRB30は、次のレジスタウィンドウのLocalsレジスタを保持するための8本×8バイトのレジスタ31と、InsもしくはOutsレジスタを保持するための8本×8バイトのレジスタ32との計16本×8バイトのレジスタから構成される。
ここで、図2を参照しながら、本情報処理装置1が採用するアウトオブオーダ命令実行方式について説明する。なお、図2において命令パイプライン内における命令は、左から右に向けて流れるものとする。
ここで、図3及び図4(a)〜(c)を参照しながら、CWPが現在示すレジスタウィンドウがレジスタウィンドウW3であった場合であって、演算部40が、このレジスタウィンドウW3にかかる命令(以下、CWP=3の命令という),SAVE命令,レジスタウィンドウW4にかかる命令(以下、CWP=4の命令という)を実行する場合の、制御部50の具体的な動作及びCWR20,CRB30に保持されるデータについて説明する。
すなわち、図4(a)に示すごとく、SAVE命令(又は、RESTORE命令)がデコードされる前の状態では、本情報処理装置1ではCWR20が、CWPが示す現在のレジスタウィンドウW3のデータであるGlobalsレジスタをレジスタ21に保持し、レジスタW3Locals(図中“Locals CWP=3”と表記)をレジスタ22に保持し、レジスタW3Ins(図中“Ins CWP=3”と表記)をレジスタ23に保持し、レジスタW3Outs(図中“Outs CWP=3”と表記)をレジスタ24に保持する。また、この状態では、CRB30はデータを保持しない。
次に、図3に示すように、演算部40がSAVE命令をデコードする(Issueステージを実行する)と、制御部50が、当該SAVE命令によってCWPが次に示すレジスタウィンドウW4(CWP=4)の一部のレジスタが保持するデータをMRF10から読み出してCRB30に保持させるように制御する。
このように、制御部50は、CWR20に次に保持されるレジスタウィンドウW4のデータのうち、CWR20に現在保持されている現在のレジスタウィンドウW3と重複しない部分のデータ(ここではレジスタW4Locals及びレジスタW4Outs)をCRB30に保持させるように制御し、この重複しない部分(オーバーラップしない部分)のデータをMRF10から読み出してCRB30に保持させるように制御する。
これにより、演算部40は、CWR20に保持されたレジスタウィンドウW3のデータを用いてCWP=3の命令を実行可能であるとともに、CRB30に保持されたレジスタウィンドウW4のデータの一部(オーバーラップしないLocalsレジスタ及びOutsレジスタのデータ)と、レジスタW4InsとオーバーラップするCWR20に保持されたレジスタW3Outsとを用いて、CWP=4の命令も実行可能となる。
つまり、制御部50は、CWR20が現在保持しているレジスタウィンドウW3のデータのうちの次のレジスタウィンドウW4と重複しない部分のデータ(ここではレジスタW3Locals及びレジスタW3Ins)を、CRB30に保持されているデータ(ここではレジスタW4Locals及びレジスタW4Outs)と置き換えることによって、次のレジスタウィンドウW4のデータをCWR20に保持させるように制御する。
このように、制御部50は、CWR20が現在保持しているデータのうち、次のレジスタウィンドウW4とオーバーラップする部分のデータは、次のレジスタウィンドウW4のデータとして読み替える(すなわち、データをそのまま残して次のレジスタウィンドウのデータとして使用する)ことによって、次のレジスタウィンドウW4をCWR20に保持させるように制御する。
これにより、演算部40によるSAVE命令の完了(write back)後の状態では、CRB30にはデータが保持されず、演算部40はCWR20に保持されたレジスタウィンドウW4のデータを用いてCWP=4の命令のみを実行可能となる。
また、レジスタの本数を削減することによって回路量を大幅に削除できるので、実装面積を低減することができるとともに、消費電力を低減することもできる。
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態において、レジスタファイルAが保持するレジスタウィンドウの数や、各レジスタウィンドウの容量(レジスタ本数)は限定されるものではなく、種々変更することができる。
したがって、本発明において、CWR20やCRB30の容量は、MRF10が保持するレジスタウィンドウに応じて種々変更される。
以上詳述したように、本発明の情報処理装置は、データを保持する複数のレジスタウィンドウからなるマスタレジスタと、このマスタレジスタの前記複数のレジスタウィンドウのうちの現在のレジスタウィンドウを保持するカレントレジスタと、前記マスタレジスタと前記カレントレジスタとの間に介装され、前記カレントレジスタに次に保持されるレジスタウィンドウのデータを保持する置換バッファと、前記カレントレジスタに保持されたデータ及び前記置換バッファに保持されたデータを読出可能に接続され、前記カレントレジスタに保持されたデータ及び前記置換バッファに保持されたデータにかかる命令を実行する演算部と、この演算部が前記カレントレジスタに保持されている現在のレジスタウィンドウを他のレジスタウィンドウに切り替える切替命令を実行する際、当該切替命令がデコードされると、当該切替命令によって前記カレントレジスタに次に保持されるべきレジスタウィンドウのデータを前記マスタレジスタから読み出して前記置換バッファに保持させるように制御する制御部とをそなえて構成されていることを特徴としている。
また、前記演算部が、前記マスタレジスタ及び前記カレントレジスタに対して書込み処理を実行することが好ましく、このとき、前記演算部が、前記マスタレジスタ及び前記カレントレジスタに対する書込み処理を同時に実行することが好ましい。
10,101,111 マスタレジスタファイル(MRF:Master Register File;マスタレジスタ)
20 カレントウィンドウレジスタ(CWR:Current Window Register;カレントレジスタ)
21〜24,31,32 レジスタ
30 カレントウィンドウリプレースバッファ(CRB:Current window Replace Buffer;置換バッファ)
40 演算部(演算手段)
50 制御部(制御手段)
102,112 ワーキングレジスタファイル(WRF:Working Register File)
103 演算器
A レジスタファイル
W0〜W7 レジスタウィンドウ
Claims (17)
- inレジスタ、localレジスタ及びoutレジスタの順序によるレジスタの組を含む複数のレジスタウィンドウがそれぞれリング状に構成される少なくとも一つのレジスタファイルと、
前記レジスタウィンドウにアクセスする場合、現在のウィンドウ位置をポインタ値により示すカレントウィンドウポインタ部と、
前記カレントウィンドウポインタ部が示すポインタ値により指定されるレジスタウィンドウが保持するデータを、前記レジスタファイルから読み出して保持するカレントレジスタと、
前記レジスタファイルと前記カレントレジスタとに接続され、前記レジスタファイルから前記カレントレジスタに転送されるデータを保持する置換バッファと、
前記レジスタウィンドウの切替を実行するウィンドウ切替命令と、前記カレントレジスタに保持されたデータもしくは前記置換バッファに保持されたデータを用いた命令処理とを実行する演算部と、
前記ウィンドウ切替命令を前記演算部がデコードした場合、前記ウィンドウ切替命令の実行により前記カレントウィンドウポインタ部が指定するウィンドウ位置のデータを前記レジスタファイルから前記置換バッファに転送し、前記ウィンドウ切替命令の実行を前記演算部が完了した場合、前記カレントレジスタが保持しているデータを前記置換バッファが保持するデータに置換して、前記ウィンドウ切替命令の実行の完了によって切り替えられる次のレジスタウィンドウのデータを前記カレントレジスタに保持させる制御部と、
を備えることを特徴とする演算処理装置。 - 前記演算部が、前記レジスタファイル及び前記カレントレジスタに対して前記命令処理の結果データの書込みを行うことを特徴とする請求項1記載の演算処理装置。
- 前記演算部が、前記レジスタファイル及び前記カレントレジスタの双方に対して同時に前記命令処理の結果データの書込みを行うことを特徴とする請求項1記載の演算処理装置。
- 前記レジスタファイルにおいて、互いに隣接する2つのレジスタウィンドウのうちの一方のレジスタウィンドウのinレジスタと、他方のレジスタウィンドウのoutレジスタとが共有されることを特徴とする請求項1乃至3のいずれか1項に記載の演算処理装置。
- 前記演算部が前記ウィンドウ切替命令をデコードした場合には、前記制御部が、前記ウィンドウ切替命令の実行によって前記カレントウィンドウポインタ部が指定する前記レジスタウィンドウのlocalレジスタが保持するデータと、inレジスタ又はoutレジスタのうちいずれかが保持するデータとを前記置換バッファへ転送することを特徴とする請求項4記載の演算処理装置。
- 前記演算部が前記ウィンドウ切替命令の実行を完了した場合には、前記制御部が、前記置換バッファから前記ポインタ値が示すレジスタウィンドウのlocalレジスタが保持するデータと、inレジスタ又はoutレジスタのうちいずれかが保持するデータとを前記カレントレジスタへ転送することを特徴とする請求項4又は5記載の演算処理装置。
- 複数のウィンドウがそれぞれリング状に構成されるレジスタウィンドウを複数有するレジスタファイルと、
前記レジスタウィンドウにアクセスする場合、現在のウィンドウ位置をポインタ値により示すカレントウィンドウポインタ部と、
前記カレントウィンドウポインタ部が示すポインタ値により指定される前記1つのウィンドウが保持するデータを、前記レジスタファイルから読み出して保持するカレントレジスタと、
前記レジスタファイルと前記カレントレジスタとに接続され、前記レジスタファイルから前記カレントレジスタに転送されるデータを保持する置換バッファと、
前記カレントウィンドウポインタ部が保持するポインタ値を更新して前記レジスタウィンドウの切替を実行するポインタ書換命令と、前記カレントレジスタに保持されたデータもしくは前記置換バッファに保持されたデータを用いた命令処理とを実行する演算部と、
前記ポインタ書換命令を前記演算部がデコードした場合、前記ポインタ書換命令の実行により前記カレントウィンドウポインタ部が指定するウィンドウ位置のデータを前記レジスタファイルから前記置換バッファに転送し、前記ポインタ書換命令を前記演算部が実行して前記ポインタ値が更新された場合、前記レジスタファイルから前記更新後のポインタ値が示す1レジスタウィンドウ分のデータを、前記置換バッファから前記カレントレジスタへ転送する制御部と、
を備えることを特徴とする演算処理装置。 - 前記レジスタファイルのウィンドウは、inレジスタ、localレジスタ及びoutレジスタの順序によるレジスタの組と、前記レジスタウィンドウ間で共有される1組のglobalレジスタとから構成され、
前記レジスタファイルから前記置換バッファ又は前記置換バッファから前記カレントレジスタへ転送される前記1レジスタウィンドウ分のデータを、それぞれ前記globalレジスタ、outレジスタ、inレジスタ、localレジスタの順序により転送を行うことを特徴とする請求項7記載の演算処理装置。 - inレジスタ、localレジスタ及びoutレジスタの順序によるレジスタの組を含む複数のレジスタウィンドウがそれぞれリング状に構成される少なくとも一つのレジスタファイルと、
前記レジスタウィンドウにアクセスする場合、現在のウィンドウ位置をポインタ値により示すカレントウィンドウポインタ部と、
前記カレントウィンドウポインタ部が示すポインタ値により指定されるレジスタウィンドウが保持するデータを、前記レジスタファイルから読み出して保持するカレントレジスタと、
前記レジスタファイルと前記カレントレジスタとに接続され、前記レジスタファイルから前記カレントレジスタに転送されるデータを保持する置換バッファと、
前記レジスタウィンドウの切替を実行するウィンドウ切替命令と、前記カレントレジスタに保持されたデータもしくは前記置換バッファに保持されたデータを用いた命令処理とを実行する演算部と、
前記ウィンドウ切替命令を前記演算部がデコードした場合、前記ウィンドウ切替命令の実行により前記カレントウィンドウポインタ部が指定するウィンドウ位置のデータを前記レジスタファイルから前記置換バッファに転送し、前記ウィンドウ切替命令の実行を前記演算部が完了した場合、前記カレントレジスタが保持しているデータを前記置換バッファに保持するデータに置換して、前記ウィンドウ切替命令の実行の完了によって切り替えられる次のレジスタウィンドウのデータを前記カレントレジスタに保持させる制御部と、
を備える演算処理装置を有することを特徴とする情報処理装置。 - 前記演算部が、前記レジスタファイル及び前記カレントレジスタに対して前記命令処理の結果データの書込みを行うことを特徴とする請求項9記載の情報処理装置。
- 前記演算部が、前記レジスタファイル及び前記カレントレジスタの双方に対して同時に前記命令処理の結果データの書込みを行うことを特徴とする請求項9記載の情報処理装置。
- 前記レジスタファイルにおいて、互いに隣接する2つのレジスタウィンドウのうちの一方のレジスタウィンドウのinレジスタと、他方のレジスタウィンドウのoutレジスタとが共有されることを特徴とする請求項9乃至11のいずれか1項に記載の情報処理装置。
- 前記演算部が前記ウィンドウ切替命令をデコードした場合には、前記制御部が、前記ウィンドウ切替命令の実行によって前記カレントウィンドウポインタ部が指定する前記レジスタウィンドウのlocalレジスタが保持するデータと、inレジスタ又はoutレジスタのうちいずれかが保持するデータとを前記置換バッファへ転送することを特徴とする請求項12記載の情報処理装置。
- 前記演算部が前記ウィンドウ切替命令の実行を完了した場合には、前記制御部が、前記置換バッファから前記ポインタ値が示すレジスタウィンドウのlocalレジスタが保持するデータと、inレジスタ又はoutレジスタのうちいずれかが保持するデータとを前記カレントレジスタへ転送することを特徴とする請求項12又は13記載の情報処理装置。
- 複数のウィンドウがそれぞれリング状に構成されるレジスタウィンドウを複数有するレジスタファイルと、
前記レジスタウィンドウにアクセスする場合、現在のウィンドウ位置をポインタ値により示すカレントウィンドウポインタ部と、
前記カレントウィンドウポインタ部が示すポインタ値により指定される前記1つのウィンドウが保持するデータを、前記レジスタファイルから読み出して保持するカレントレジスタと、
前記レジスタファイルと前記カレントレジスタとに接続され、前記レジスタファイルから前記カレントレジスタに転送されるデータを保持する置換バッファと、
前記カレントウィンドウポインタ部が保持するポインタ値を更新して前記レジスタウィンドウの切替を実行するポインタ書換命令と、前記カレントレジスタに保持されたデータもしくは前記置換バッファに保持されたデータを用いた命令処理とを実行する演算部と、
前記ポインタ書換命令を前記演算部がデコードした場合、前記ポインタ書換命令の実行により前記カレントウィンドウポインタ部が指定するウィンドウ位置のデータを前記レジスタファイルから前記置換バッファに転送し、前記ポインタ書換命令を前記演算部が実行して前記ポインタ値が更新された場合、前記レジスタファイルから前記更新後のポインタ値が示す1レジスタウィンドウ分のデータを、前記置換バッファから前記カレントレジスタへ転送する制御部と、
を備える演算処理装置を有することを特徴とする情報処理装置。 - 前記レジスタファイルのウィンドウは、inレジスタ、localレジスタ及びoutレジスタの順序によるレジスタの組と、前記レジスタウィンドウ間で共有される1組のglobalレジスタとから構成され、
前記レジスタファイルから前記置換バッファ又は前記置換バッファから前記カレントレジスタへ転送される前記1レジスタウィンドウ分のデータを、それぞれ前記globalレジスタ、outレジスタ、inレジスタ、localレジスタの順序により転送を行うことを特徴とする請求項15記載の情報処理装置。 - 複数のウィンドウがそれぞれリング状に構成されるレジスタファイルと、現在のウィンドウ位置をポインタ値により示すカレントウィンドウポインタ部と、前記カレントウィンドウポインタ部が示すポインタ値により指定される前記1つのウィンドウが保持するデータを、前記レジスタファイルから読み出して保持するカレントレジスタと、前記レジスタファイルと前記カレントレジスタとに接続され、前記レジスタファイルから前記カレントレジスタに転送されるデータを保持する置換バッファと、前記レジスタウィンドウの切替を実行するウィンドウ切替命令と前記カレントレジスタに保持されたデータもしくは前記置換バッファに保持されたデータを用いた命令処理とを実行する演算部とを備える演算処理装置のレジスタファイルの制御方法において、
前記ウィンドウ切替命令を前記演算部がデコードした場合、前記ウィンドウ切替命令の実行により前記カレントウィンドウポインタ部が指定するウィンドウ位置のデータを前記置換バッファに転送し、
前記ウィンドウ切替命令の実行を前記演算部が完了した場合、前記カレントレジスタが保持しているデータを前記置換バッファに保持するデータに置換して、前記ウィンドウ切替命令の実行の完了によって切り替えられる次のレジスタウィンドウのデータを前記カレントレジスタに保持させることを特徴とするレジスタファイルの制御方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005275024A JP5028774B2 (ja) | 2005-09-22 | 2005-09-22 | 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 |
US11/333,229 US7343478B2 (en) | 2005-09-22 | 2006-01-18 | Register window system and method that stores the next register window in a temporary buffer |
EP06250462A EP1768020B1 (en) | 2005-09-22 | 2006-01-27 | Arithmetic operation apparatus, information processing apparatus and register file control method |
DE602006013079T DE602006013079D1 (de) | 2005-09-22 | 2006-01-27 | Arithmetische Operationsvorrichtung, Informationsverarbeitungsvorrichtung und Registerspeichersteuerverfahren |
CNB2006100576399A CN100394382C (zh) | 2005-09-22 | 2006-02-22 | 算术运算装置、信息处理装置以及寄存器堆控制方法 |
KR1020060017688A KR100777772B1 (ko) | 2005-09-22 | 2006-02-23 | 연산 처리 장치, 정보 처리 장치 및 레지스터 파일의 제어방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005275024A JP5028774B2 (ja) | 2005-09-22 | 2005-09-22 | 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007087108A JP2007087108A (ja) | 2007-04-05 |
JP5028774B2 true JP5028774B2 (ja) | 2012-09-19 |
Family
ID=37547578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005275024A Expired - Fee Related JP5028774B2 (ja) | 2005-09-22 | 2005-09-22 | 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7343478B2 (ja) |
EP (1) | EP1768020B1 (ja) |
JP (1) | JP5028774B2 (ja) |
KR (1) | KR100777772B1 (ja) |
CN (1) | CN100394382C (ja) |
DE (1) | DE602006013079D1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5130757B2 (ja) * | 2007-03-16 | 2013-01-30 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
EP2159688A4 (en) | 2007-06-20 | 2011-01-05 | Fujitsu Ltd | INSTRUCTION MANAGEMENT CONTROL AND INSTRUCTION MANUAL CONTROL PROCEDURES |
KR101031004B1 (ko) | 2007-06-20 | 2011-04-25 | 후지쯔 가부시끼가이샤 | 정보 처리 장치 및 제어 방법 |
WO2008155800A1 (ja) | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 命令実行制御装置及び命令実行制御方法 |
EP2169537B1 (en) * | 2007-06-20 | 2013-02-27 | Fujitsu Limited | Instruction processor |
US8725991B2 (en) * | 2007-09-12 | 2014-05-13 | Qualcomm Incorporated | Register file system and method for pipelined processing |
EP2325744B1 (en) * | 2008-08-08 | 2022-08-03 | Fujitsu Limited | Processing unit |
JP6107485B2 (ja) * | 2013-07-04 | 2017-04-05 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10977034B2 (en) | 2018-11-07 | 2021-04-13 | International Business Machines Corporation | Instruction completion table with ready-to-complete vector |
CN116450216B (zh) * | 2023-06-12 | 2023-08-29 | 上海灵动微电子股份有限公司 | 共享硬件运算单元的局部缓存方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5083263A (en) | 1988-07-28 | 1992-01-21 | Sun Microsystems, Inc. | BISC with interconnected register ring and selectively operating portion of the ring as a conventional computer |
US5159680A (en) | 1988-07-28 | 1992-10-27 | Sun Microsystems, Inc. | Risc processing unit which selectively isolates register windows by indicating usage of adjacent register windows in status register |
JPH02148223A (ja) * | 1988-11-30 | 1990-06-07 | Toshiba Corp | レジスタ退避復活装置 |
US5179682A (en) * | 1990-05-15 | 1993-01-12 | Sun Microsystems, Inc. | Method and apparatus for improved current window cache with switchable address in, out, and local cache registers |
JP2564054B2 (ja) * | 1991-07-16 | 1996-12-18 | 松下電器産業株式会社 | レジスタファイル |
JP3595028B2 (ja) | 1995-06-20 | 2004-12-02 | 富士通株式会社 | リアルタイムosの処理方法 |
JPH0916409A (ja) * | 1995-06-30 | 1997-01-17 | Matsushita Electric Ind Co Ltd | マイクロコンピュータ |
US6263416B1 (en) * | 1997-06-27 | 2001-07-17 | Sun Microsystems, Inc. | Method for reducing number of register file ports in a wide instruction issue processor |
KR19990026795A (ko) | 1997-09-26 | 1999-04-15 | 윤종용 | 마이크로프로세서 |
US6842853B1 (en) * | 1999-01-13 | 2005-01-11 | Sun Microsystems, Inc. | Thread suspension system and method |
US6314510B1 (en) * | 1999-04-14 | 2001-11-06 | Sun Microsystems, Inc. | Microprocessor with reduced context switching overhead and corresponding method |
JP2000353092A (ja) * | 1999-06-09 | 2000-12-19 | Nec Corp | 情報処理装置及びそのレジスタファイル切替方法 |
JP3737755B2 (ja) * | 2001-12-28 | 2006-01-25 | 富士通株式会社 | レジスタウィンドウ方式によるレジスタファイル及びその制御方法 |
US7080237B2 (en) * | 2002-05-24 | 2006-07-18 | Sun Microsystems, Inc. | Register window flattening logic for dependency checking among instructions |
US7216216B1 (en) * | 2004-06-30 | 2007-05-08 | Sun Microsystems, Inc. | Register window management using first pipeline to change current window and second pipeline to read operand from old window and write operand to new window |
-
2005
- 2005-09-22 JP JP2005275024A patent/JP5028774B2/ja not_active Expired - Fee Related
-
2006
- 2006-01-18 US US11/333,229 patent/US7343478B2/en not_active Expired - Fee Related
- 2006-01-27 EP EP06250462A patent/EP1768020B1/en not_active Expired - Fee Related
- 2006-01-27 DE DE602006013079T patent/DE602006013079D1/de active Active
- 2006-02-22 CN CNB2006100576399A patent/CN100394382C/zh not_active Expired - Fee Related
- 2006-02-23 KR KR1020060017688A patent/KR100777772B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1768020A2 (en) | 2007-03-28 |
KR20070033862A (ko) | 2007-03-27 |
US7343478B2 (en) | 2008-03-11 |
DE602006013079D1 (de) | 2010-05-06 |
EP1768020A3 (en) | 2009-02-25 |
EP1768020B1 (en) | 2010-03-24 |
KR100777772B1 (ko) | 2007-11-20 |
CN100394382C (zh) | 2008-06-11 |
US20070067612A1 (en) | 2007-03-22 |
CN1936831A (zh) | 2007-03-28 |
JP2007087108A (ja) | 2007-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5028774B2 (ja) | 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 | |
EP3362889B1 (en) | Move prefix instruction | |
KR100286416B1 (ko) | 여러운영체제기술에서볼수없는상이한데이터형연산을수행하는방법 | |
US7624253B2 (en) | Determining register availability for register renaming | |
KR100312092B1 (ko) | 스택레퍼런스및비스택레퍼런스방식으로공유논리레지스터파일의레지스터를지정하는두명령어유형을실행하는방법및장치 | |
JP3675466B2 (ja) | スーパースケーラマイクロプロセサ | |
TWI411957B (zh) | 亂序執行微處理器、微處理器及其相關之提升效能之方法及執行方法 | |
US20060190700A1 (en) | Handling permanent and transient errors using a SIMD unit | |
JPH10301778A (ja) | レジスタの名前変更を管理する方法および装置 | |
JPH0673105B2 (ja) | 命令パイプライン方式のマイクロプロセッサ | |
JPH1097423A (ja) | ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ | |
EP0747809A1 (en) | A method and system for processing multiple branch instructions that write to count and/or link registers | |
US8271766B2 (en) | Intentionally delaying execution of a copy instruction to achieve simultaneous execution with a subsequent, non-adjacent write instruction | |
US6604193B1 (en) | Processor in which register number translation is carried out | |
US20030191929A1 (en) | Microinstruction pointer stack in a processor | |
JPH1091434A (ja) | クイック・デコード命令を用いるための方法およびデータ処理システム | |
US20090119492A1 (en) | Data Processing Apparatus and Method for Handling Procedure Call Instructions | |
JP2003323294A (ja) | スーパースカラプロセッサ | |
JP2000347858A (ja) | マイクロプロセッサ | |
JPH0784785A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080324 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100922 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100928 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111028 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120529 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120611 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150706 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |