JP5229321B2 - 演算処理装置 - Google Patents
演算処理装置 Download PDFInfo
- Publication number
- JP5229321B2 JP5229321B2 JP2010523656A JP2010523656A JP5229321B2 JP 5229321 B2 JP5229321 B2 JP 5229321B2 JP 2010523656 A JP2010523656 A JP 2010523656A JP 2010523656 A JP2010523656 A JP 2010523656A JP 5229321 B2 JP5229321 B2 JP 5229321B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- window
- local
- group
- register group
- 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.)
- Active
Links
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/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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- 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
-
- 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/30141—Implementation provisions of register files, e.g. ports
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
図1に示すレジスタファイル1000は、1本のレジスタウィンドウW globalと、8本のレジスタウィンドウW0〜W7を有し、これらのうち、レジスタウィンドウW0〜W7は論理的にリング状に連結されている。各レジスタウィンドウWk(k=0〜7)はそれぞれ、、Wk out、Wk in、およびWk localの3種類のセグメントを備えている。これら3種類のセグメントは、いずれも、8個のレジスタから構成されている。Wk localは各レジスタウィンドウ固有の8個のローカルレジスタを備えている。Wk inは8個のinレジスタ(インレジスタ)を備え、Wk outは8個のoutレジスタ(アウトレジスタ)を備えている。また、W globalは、全てのサブルーチンで共用される8個のグローバルレジスタを備えている。
を呼び出した親ルーチンから引数を受け取るために使用される。レジスタファイル1000ではWk inとWk+1 out、およびWk outとWk-1 inがオーバーラップするように構成されているため、サブルーチンコール時において、引数の引き渡しとそのために使用するレジスタの確保を高速化できる。Wk localは、各サブルーチン、つまり親ルーチンから呼び出された子ルーチンが作業用のレジスタセットとして使用する。
各レジスタウィンドウWkは24個(=8×3)のレジスタを備えており、レジスタウィンドウW globalは8個のレジスタを備えている。これらのレジスタのうち、Wk inとWk outのレジスタが64個(=8×8)オーバーラップしているので、レジスタファイル1000が備えるレジスタの総数は、136個(=24×8+8−64)である。プロセッサの演算器がサブルーチンを実行するためには、レジスタファイル1000のそれら全てのレジスタにデータを読み書きできる必要がある。
図3に、レジスタウィンドウ方式を採用する本実施形態の演算処理装置の構成を示す。
図1に示したように、MRF1のレジスタは、Wk local, Wk in, Wk outがそれぞれ8レジスタずつ、8ウィンドウ分(k=0〜7)あり、またそれらとは別にW globalが8レジスタある。W globalレジスタはすべてのウィンドウで共通であり、ウィンドウ切り替えで影響がないため、以降の説明からは省略することとする。
図8において、例えば「W7/W1」のようなスラッシュで区切られた表記は、RESTORE命令実行時のアウトオブオーダ実行においては「W7」レジスタ群が、SAVE命令実行時のアウトオブオーダ実行においては「W1」レジスタ群が割り当てられることを示している。
L_PORT0 = W2n local
L_PORT1 = *(don’t careの意)
OUT_PORT0 = W2n out
OUT_PORT1 = W(2n-1) out
OUT_PORT2 = *(don’t careの意)
ルール2 CWP=2n+1の時(SAVE・RESTORE命令実行中以外):
L_PORT0 = *(don’t careの意)
L_PORT1 = W(2n+1) local
OUT_PORT0 = W2n out
OUT_PORT1 = WP(2n+1) out
OUT_PORT2 = *(don’t careの意)
ルール3 CWP=2nの時(SAVE命令実行中):
L_PORT0 = W2n local
L_PORT1 = W(2n+1) local
OUT_PORT0 = W2n out
OUT_PORT1 = W(2n-1) out
OUT_PORT2 = W(2n+1) out
ルール4 CWP=2n+1の時(SAVE命令実行中):
L_PORT0 = W(2n+2) local
L_PORT1 = W(2n+1) local
OUT_PORT0 = W2n out
OUT_PORT1 = W(2n+1) out
OUT_PORT2 = W(2n+2) out
ルール5 CWP=2nの時(RESTORE命令実行中):
L_PORT0 = W2n local
L_PORT1 = W(2n-1) local
OUT_PORT0 = W2n out
OUT_PORT1 = W(2n-1) out
OUT_PORT2 = W(2n-2) out
ルール6 CWP=2n+1の時(RESTORE命令実行中):
L_PORT0 = W2n local
L_PORT1 = W(2n+1) local
OUT_PORT0 = W2n out
OUT_PORT1 = W(2n+1) out
OUT_PORT2 = W(2n-2) out
L_PORT0、L_PORT1、OUT_PORT0、OUT_PORT1、OUT_PORT2 、およびG_PORTの6ポートに出力されたそれぞれ8レジスタ値からなる合計8×6=48レジスタ値は、セレクタ908によって1つのレジスタ値が選択されて、READ_DATA(読出しデータ)として出力される。なお、セレクタ908中の「48:1」は、48レジスタ値から1レジスタ値を選択出力することを意味する。
ここまで、本実施の形態の演算処理装置0の構成を詳細に説明した。上述したように、本実施の形態の演算処理装置0では、図3のMRF1の読み出し部分をCWPの値、すなわちカレントウィンドウの番号によって選択するカレントウィンドウ選択(WINDOW_ADDRESS)と、読み出しアドレスに相当するREAD_ADDRESSにより読み出しレジスタを選択する2段階で制御する。カレントウィンドウ選択においては、カレントウィンドウ番号に基づいてウィンドウ番号が偶数のローカルレジスタ群からレジスタを選択する第1のローカルレジスタ読出しポート(L_PORT0)と、カレントウィンドウ番号に基づいてウィンドウ番号が奇数のローカルレジスタ群からレジスタを選択する第2のローカルレジスタ読出しポート(L_PORT1)と、カレントウィンドウ番号に基づいてウィンドウ番号が偶数のアウトレジスタ群からレジスタを選択する第1のアウトレジスタ読出しポート(OUT_PORT0)と、カレントウィンドウ番号に基づいてウィンドウ番号が奇数のアウトレジスタ群からレジスタを選択する第2のアウトレジスタ読出しポート(OUT_PORT1)と、カレントウィンドウ番号に基づいてアウトレジスタ群からレジスタを選択する第3のアウトレジスタ読出しポート(OUT_PORT2)によりレジスタの選択が行われる。
図11に情報処理装置の構成の一例を示す。情報処理装置110は、演算ユニット112、メモリ111、命令制御ユニット113、キャッシュ115を含むキャッシュ制御ユニット114を有する。上述した演算処理装置0は演算ユニット112に対応する。図3に示した制御部4が演算制御部116に、演算部3が演算部118、MRF1がレジスタ部117に対応する。
以上のように、本発明の実施の形態の一例について詳細に説明したが、本発明はこれに限定されるものではなく、本実施の形態の要旨を逸脱しない範囲内で様々の構成または形状をとることができることは言うまでもない。
Claims (3)
- 演算処理を行う演算部と、
各々N本のレジスタを備えたK枚のウィンドウを有し、各ウィンドウを構成する一部のレジスタは両隣のウィンドウを構成するレジスタと共有され、該共有部分をサブルーチン呼び出し時の引数の引き渡しに使用するように構成されたレジスタウィンドウと、前記K枚のウィンドウのうちの1枚を選択するカレントウィンドウ選択手段と、読み出しアドレスにより読み出しレジスタを選択するレジスタ選択手段と、を備えるレジスタファイルと、
前記レジスタファイルにおいてカレントウィンドウ選択手段においてウィンドウを選択するためのウィンドウアドレス信号を出力する制御部と、
を備え、
前記ウィンドウアドレス信号は、実行中のサブルーチンが使用しているレジスタウィンドウのウィンドウ番号を保持するカレントウィンドウポインタの値に基づく信号であり、
前記カレントウィンドウ選択手段は、
前記ウィンドウアドレス信号に基づいて、前記サブルーチンの作業用レジスタであるローカルレジスタのうち、ウィンドウ番号が偶数のローカルレジスタ群から第1のローカルレジスタ群を選択する第1のローカルレジスタ読出しポートと、
前記ウィンドウアドレス信号に基づいて、前記サブルーチンの作業用レジスタであるローカルレジスタのうち、ウィンドウ番号が奇数のローカルレジスタ群から第2のローカルレジスタ群を選択する第2のローカルレジスタ読出しポートと、
前記ウィンドウアドレス信号に基づいて、前記サブルーチンの呼出し時の引数の引き渡しに用いられるアウトレジスタのうち、ウィンドウ番号が偶数のアウトレジスタ群から第1のアウトレジスタ群を選択する第1のアウトレジスタ読出しポートと、
前記ウィンドウアドレス信号に基づいて、前記サブルーチンの呼出し時の引数の引き渡しに用いられるアウトレジスタのうち、ウィンドウ番号が奇数のアウトレジスタ群から第2のアウトレジスタ群を選択する第2のアウトレジスタ読出しポートと、
前記ウィンドウアドレス信号に基づいて、前記偶数のアウトレジスタ群と前記奇数のアウトレジスタ群から第3のアウトレジスタを選択する第3のアウトレジスタ読出しポートと、
選択された前記第1のローカルレジスタ群、選択された前記第2のローカルレジスタ群、選択された前記第1のアウトレジスタ群、選択された前記第2のアウトレジスタ群、及び、選択された前記第3のアウトレジスタ群の中から、前記読み出しアドレスに基づいて1つの前記読み出しレジスタを選択するセレクタと、
を備えることを特徴とする演算処理装置。 - 演算処理を行う演算部と、
複数のレジスタから構成されるレジスタファイルで、該レジスタファイルを各々N本のレジスタを備えたK枚のウィンドウに分割し、各ウィンドウは各々一部のレジスタを両隣のウィンドウと共有し、該共有部分をサブルーチン呼び出し時の引数の引き渡しに使用するように構成されたレジスタウィンドウを備えるレジスタファイルであって、前記K枚のウィンドウのうちの1枚を選択するカレントウィンドウ選択手段と、読み出しアドレスにより読み出しレジスタを選択するレジスタ選択手段と、を備えるレジスタファイルと、
前記レジスタファイルにおいてカレントウィンドウ選択手段においてウィンドウを選択するためのウィンドウアドレス信号を出力する制御部と、
を含む演算処理装置を有し、
前記ウィンドウアドレス信号は、実行中のサブルーチンが使用しているレジスタウィンドウのウィンドウ番号を保持するカレントウィンドウポインタの値に基づく信号であり、
前記カレントウィンドウ選択手段は、
前記ウィンドウアドレス信号に基づいて、前記サブルーチンの作業用レジスタであるローカルレジスタのうち、ウィンドウ番号が偶数のローカルレジスタ群から第1のローカルレジスタ群を選択する第1のローカルレジスタ読出しポートと、
前記ウィンドウアドレス信号に基づいて、前記サブルーチンの作業用レジスタであるローカルレジスタのうち、ウィンドウ番号が奇数のローカルレジスタ群から第2のローカルレジスタ群を選択する第2のローカルレジスタ読出しポートと、
前記ウィンドウアドレス信号に基づいて、前記サブルーチンの呼出し時の引数の引き渡しに用いられるアウトレジスタのうち、ウィンドウ番号が偶数のアウトレジスタ群から第1のアウトレジスタ群を選択する第1のアウトレジスタ読出しポートと、
前記ウィンドウアドレス信号に基づいて、前記サブルーチンの呼出し時の引数の引き渡しに用いられるアウトレジスタのうち、ウィンドウ番号が奇数のアウトレジスタ群から第2のアウトレジスタ群を選択する第2のアウトレジスタ読出しポートと、
前記ウィンドウアドレス信号に基づいて、前記偶数のアウトレジスタ群と前記奇数のアウトレジスタ群から第3のアウトレジスタを選択する第3のアウトレジスタ読出しポートと、
選択された前記第1のローカルレジスタ群、選択された前記第2のローカルレジスタ群、選択された前記第1のアウトレジスタ群、選択された前記第2のアウトレジスタ群、及び、選択された前記第3のアウトレジスタ群の中から、前記読み出しアドレスに基づいて1つの前記読み出しレジスタを選択するセレクタと、
を備えることを特徴とする情報処理装置。 - 複数のレジスタから構成されるレジスタファイルで、該レジスタファイルを各々N本のレジスタを備えたK枚のウィンドウに分割し、各ウィンドウは各々一部のレジスタを両隣のウィンドウと共有し、該共有部分をサブルーチン呼び出し時の引数の引き渡しに使用するように構成されたレジスタウィンドウを備えるレジスタファイルの読み出し方法であって、
前記K枚のウィンドウのうちの1枚を選択する第1のステップと、
前記選択されたウィンドウレジスタから、読み出しアドレスにより読み出しレジスタを選択する第2のステップと、
からレジスタを読み出し、
前記ウィンドウアドレス信号は、実行中のサブルーチンが使用しているレジスタウィンドウのウィンドウ番号を保持するカレントウィンドウポインタの値に基づく信号であり、
前記第1のステップにおいて、前記K枚のウィンドウをそれぞれ識別するためのウィンドウ番号のうち1つがカレントウィンドウ番号として選択され、
前記カレントウィンドウ番号に基づいて、第1のローカルレジスタ読出しポートにおいて、前記サブルーチンの作業用レジスタであるローカルレジスタのうち、ウィンドウ番号が偶数のローカルレジスタ群から第1のローカルレジスタ群を選択し、
前記カレントウィンドウ番号に基づいて、第2のローカルレジスタ読出しポートにおいて、前記サブルーチンの作業用レジスタであるローカルレジスタのうち、ウィンドウ番号が奇数のローカルレジスタ群から第2のローカルレジスタ群を選択し、
前記カレントウィンドウ番号に基づいて、第1のアウトレジスタ読出しポートにおいて、前記サブルーチンの呼出し時の引数の引き渡しに用いられるアウトレジスタのうち、ウィンドウ番号が偶数のアウトレジスタ群から第1のアウトレジスタ群を選択し、
前記カレントウィンドウ番号に基づいて、第2のアウトレジスタ読出しポートにおいて、前記サブルーチンの呼出し時の引数の引き渡しに用いられるアウトレジスタのうち、ウィンドウ番号が奇数のアウトレジスタ群から第2のアウトレジスタ群を選択し、
前記カレントウィンドウ番号に基づいて、前記サブルーチンの呼出し時の引数の引き渡しに用いられる前記偶数のアウトレジスタ群と前記奇数のアウトレジスタ群から第3のアウトレジスタを選択し、
選択された前記第1のローカルレジスタ群、選択された前記第2のローカルレジスタ群、選択された前記第1のアウトレジスタ群、選択された前記第2のアウトレジスタ群、及び、選択された前記第3のアウトレジスタ群の中から、前記読み出しアドレスに基づいて1つの前記読み出しレジスタを選択する、
ことを特徴とするレジスタファイルの読み出し方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2008/002172 WO2010016097A1 (ja) | 2008-08-08 | 2008-08-08 | 演算処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010016097A1 JPWO2010016097A1 (ja) | 2012-01-12 |
JP5229321B2 true JP5229321B2 (ja) | 2013-07-03 |
Family
ID=41663327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010523656A Active JP5229321B2 (ja) | 2008-08-08 | 2008-08-08 | 演算処理装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8539208B2 (ja) |
EP (1) | EP2325744B1 (ja) |
JP (1) | JP5229321B2 (ja) |
KR (1) | KR101244074B1 (ja) |
CN (1) | CN102112965B (ja) |
WO (1) | WO2010016097A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6107485B2 (ja) | 2013-07-04 | 2017-04-05 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US11144364B2 (en) * | 2019-01-25 | 2021-10-12 | International Business Machines Corporation | Supporting speculative microprocessor instruction execution |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0520010A (ja) * | 1991-07-16 | 1993-01-29 | Matsushita Electric Ind Co Ltd | レジスタフアイル |
JPH05282147A (ja) * | 1992-02-03 | 1993-10-29 | Matsushita Electric Ind Co Ltd | レジスタファイル |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JP3737755B2 (ja) * | 2001-12-28 | 2006-01-25 | 富士通株式会社 | レジスタウィンドウ方式によるレジスタファイル及びその制御方法 |
JP5028774B2 (ja) * | 2005-09-22 | 2012-09-19 | 富士通株式会社 | 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 |
JP5130757B2 (ja) * | 2007-03-16 | 2013-01-30 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP5282147B2 (ja) | 2010-02-15 | 2013-09-04 | 株式会社日立製作所 | 暗号通信システム及びそれに用いる送信機及び受信機 |
-
2008
- 2008-08-08 KR KR1020117002117A patent/KR101244074B1/ko active IP Right Grant
- 2008-08-08 WO PCT/JP2008/002172 patent/WO2010016097A1/ja active Application Filing
- 2008-08-08 EP EP08790429.8A patent/EP2325744B1/en active Active
- 2008-08-08 CN CN200880130631.8A patent/CN102112965B/zh active Active
- 2008-08-08 JP JP2010523656A patent/JP5229321B2/ja active Active
-
2011
- 2011-01-31 US US13/017,665 patent/US8539208B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0520010A (ja) * | 1991-07-16 | 1993-01-29 | Matsushita Electric Ind Co Ltd | レジスタフアイル |
JPH05282147A (ja) * | 1992-02-03 | 1993-10-29 | Matsushita Electric Ind Co Ltd | レジスタファイル |
Non-Patent Citations (1)
Title |
---|
JPN6012053940; Ben J. Catanzaro: "The SPARC Technical Papers" , 1991, P.14, 60-61,235-237, Springer-Verlag * |
Also Published As
Publication number | Publication date |
---|---|
KR20110034654A (ko) | 2011-04-05 |
EP2325744A1 (en) | 2011-05-25 |
US20110125988A1 (en) | 2011-05-26 |
WO2010016097A1 (ja) | 2010-02-11 |
EP2325744B1 (en) | 2022-08-03 |
CN102112965B (zh) | 2015-06-17 |
KR101244074B1 (ko) | 2013-03-18 |
CN102112965A (zh) | 2011-06-29 |
EP2325744A4 (en) | 2011-08-10 |
US8539208B2 (en) | 2013-09-17 |
JPWO2010016097A1 (ja) | 2012-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7457938B2 (en) | Staggered execution stack for vector processing | |
JP5625903B2 (ja) | 演算処理装置および演算処理方法 | |
JP3555140B2 (ja) | レジスタリネーム回路の半導体フロアプランと方法 | |
US7904702B2 (en) | Compound instructions in a multi-threaded processor | |
US8140829B2 (en) | Multithreaded processor and method for switching threads by swapping instructions between buffers while pausing execution | |
US7343478B2 (en) | Register window system and method that stores the next register window in a temporary buffer | |
JP5130757B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US7093110B2 (en) | Register file in the register window system and controlling method thereof | |
JP5229321B2 (ja) | 演算処理装置 | |
US7143268B2 (en) | Circuit and method for instruction compression and dispersal in wide-issue processors | |
JP5145659B2 (ja) | ベクトルリネーミング方式およびベクトル型計算機 | |
JP4444305B2 (ja) | 半導体装置 | |
JP2004038751A (ja) | プロセッサ及び命令制御方法 | |
KR100636596B1 (ko) | 고에너지 효율 병렬 처리 데이터 패스 구조 | |
JP2000231488A (ja) | プロセッサ | |
JP3771682B2 (ja) | ベクトル処理装置 | |
JP6307975B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2023088443A (ja) | 演算処理装置および演算処理方法 | |
JP4703735B2 (ja) | コンパイラ、コード生成方法、コード生成プログラム | |
JPH06332700A (ja) | 情報処理装置 | |
JP3517139B2 (ja) | 情報処理装置 | |
JPH1091442A (ja) | プロセッサ | |
JPH10207720A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121023 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121225 |
|
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: 20130219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130304 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160329 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5229321 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |