JP5104862B2 - 命令実行制御装置及び命令実行制御方法 - Google Patents
命令実行制御装置及び命令実行制御方法 Download PDFInfo
- Publication number
- JP5104862B2 JP5104862B2 JP2009520140A JP2009520140A JP5104862B2 JP 5104862 B2 JP5104862 B2 JP 5104862B2 JP 2009520140 A JP2009520140 A JP 2009520140A JP 2009520140 A JP2009520140 A JP 2009520140A JP 5104862 B2 JP5104862 B2 JP 5104862B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- entry
- instruction
- read
- register
- 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
- 238000000034 method Methods 0.000 title claims description 56
- 239000000872 buffer Substances 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 21
- 238000010187 selection method Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 20
- 208000036357 GUCY2D-related recessive retinopathy Diseases 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 2
- GSDSWSVVBLHKDQ-UHFFFAOYSA-N 9-fluoro-3-methyl-10-(4-methylpiperazin-1-yl)-7-oxo-2,3-dihydro-7H-[1,4]oxazino[2,3,4-ij]quinoline-6-carboxylic acid Chemical compound FC1=CC(C(C(C(O)=O)=C2)=O)=C3N2C(C)COC3=C1N1CCN(C)CC1 GSDSWSVVBLHKDQ-UHFFFAOYSA-N 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000026676 system process 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/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/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/22—Microcontrol or microprogram arrangements
-
- 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
-
- 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/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
Multi Threading)方式がある。この方式は、同時に、1つのプログラムしか走行できないが、長時間のデータ待ちが発生したときや、一定の時間の間隔などで、プログラムを切り替えて走行する。VMT方式の回路量は、プログラマブルな資源を、プログラムの数分用意しなければならないが、同時に、1つのプログラムが走行するために、追加する回路量も少なく、実現が容易である。
2 1次命令キャッシュ
3 命令バッファ
4 命令デコーダ
5,6,7,8 リザベーションステーション
10 オペランドアドレス生成器
12、15 演算器
13,16 更新バッファ
14、17 レジスタ
20 レジスタファイル
22−0,22−1 アーキテクチャレジスタ
24 読み出しスレッド選択回路
26 オペランドデータ選択回路
32 スレッド選択回路
34 実行エントリ選択回路
36 レジスタ読み出しIDバッファ
図1は、本発明の情報処理装置の一実施の形態の全体図である。図1に示すように、1次命令キャッシュ2と、1次データキャッシュ11は、図示しない主記憶に接続された2次キャッシュに接続する。
Station for Execute)6、浮動小数点演算用リザベーションステーションユニット(RSF:Reservation Station for
Floating)7、分岐命令用リザベーションステーションユニット(RSBR:Reservation Station for BRanch)8に、必要なエントリを作成する。
図2は、本発明の命令実行制御装置の一実施の形態のブロック図であり、図1のRSE5、RSE6,RSF7及びレジスタファイル20の詳細図を示す。
図2の命令実行制御装置を詳細に説明する。図3は、図2のリザベーションステーションのブロック図、図4は、図2のレジスタファイル及び機能実行回路のブロック図、図5は、図4のレジスタファイルの説明図、図6は、図3のリザベーションステーションのエントリの実行選択動作の説明図、図7は、図3のエントリ生成回路のエントリ登録時の動作説明図である。
次に、前述のスレッドを選択するスレッド選択回路32を説明する。図9は、スレッド選択回路32のスレッド選択方法の説明図、図10は、図9の第3の選択方法の説明図、図11、図12は、図9の第4の選択方法の説明図、図13乃至図15は、スレッド選択回路32の回路図である。
前述の実施の形態では、2つのスレッド(スレッド0と1)が同時に動作する同時マルチスレッド方式で説明したが、3つ以上のスレッドが同時に動作するものにも適用できる。同様に、アーキテクチャレジスタを、図5のカレントウィンドポインタによる分割レジスタ構成で説明したが、他の構成のものにも適用できる。
Claims (10)
- 複数のスレッドの命令を、アウト・オブ・オーダーで、且つ同時マルチスレッド方式で実行する命令実行制御装置において、
命令デコーダからのデコード結果に基づく、命令を識別する命令識別子と前記命令のスレッドを識別するスレッド識別子とを有するエントリを複数保持し、前記エントリの選択により、演算処理と主記憶オペランドアドレス生成を制御するリザベーションステーションユニットと、
前記演算処理又は主記憶オペランドアドレス生成の実行によって得られるデータを格納するレジスタ更新バッファと、
スレッド毎に設けられ、各々オペランドデータを格納する複数のアーキテクチャレジスタと、同時に読み出すことができるスレッド数がアーキテクチャレジスタのスレッド数より少ないスレッド数に制限する読み出しスレッド選択回路とを有するレジスタファイルと、
前記リザベーションステーションユニットのエントリの実行により、前記レジスタファイルからオペランドデータを読み出すときは、前記エントリの選択の1サイクル前に、前記エントリのスレッド識別子により読み出しスレッドを選択して、前記読出しスレッド選択回路を制御するスレッド選択回路と、
前記エントリの命令識別子による演算又はオペランド生成の実行時に、前記スレッド選択回路で選択されたスレッドのアーキテクチャレジスタからオペランドデータを読み出す読み出しオペランド選択回路とを有することを
特徴とする命令実行制御装置。 - 請求項1の命令実行制御装置において、
前記リザベーションステーションユニットは、前記演算とオペランドアドレス生成に必要なオペランドデータを、前記レジスタ更新バッファから読み出す場合と即値レジスタから即値を読み出す場合には、同時に読み出すことのできるスレッド数を制限しないことを
特徴とする命令実行制御装置。 - 請求項1の命令実行制御装置において、
前記リザベーションステーションユニットの前記エントリによる命令の実行によって得られるデータを、前記レジスタ更新バッファに格納して、前記リザベーションステーションユニットから実行した命令が完了した時に、前記レジスタ更新バッファのオペランドデータを、前記アーキテクチャレジスタに格納することを
特徴とする命令実行制御装置。 - 請求項1の命令実行制御装置において、
前記リザベーションステーションユニットは、
前記リザベーションステーションユニットのエントリが、前記レジスタファイルからオペランドデータを読み出す必要のあるかを判定し、且つ前記スレッド選択回路で選択されたエントリのスレッドと一致するかを判定し、前記エントリが、前記レジスタファイルからの読み出しが必要で、前記スレッドと一致したエントリを、前記実行のため選択することを
特徴とする命令実行制御装置。 - 請求項4の命令実行制御装置において、
前記リザベーションステーションユニットは、
前記判定により、機能の実行に必要なオペランドデータを前記レジスタ更新バッファから読み出し、即値を使用することができるエントリを、エントリのスレッドに関係なく実行するエントリに選択することを
特徴とする命令実行制御装置。 - 請求項1の命令実行制御装置において、
前記スレッド選択回路は、
前記レジスタファイルから読み出すことのできるスレッドを、特定のスレッドに限定しなければならないことを検出して、前記特定のスレッドを選択することを
特徴とする命令実行制御装置。 - 請求項6の命令実行制御装置において、
前記スレッド選択回路は、
前記レジスタファイルから読み出すことのできるスレッドを、特定のスレッドに限定する必要がないことを検出して、動作しているスレッドを示す信号により、動作していないスレッドの選択を禁止することを
特徴とする命令実行制御装置。 - 請求項6の命令実行制御装置において、
前記スレッド選択回路は、
前記レジスタファイルから読み出すことのできるスレッドを、特定のスレッドに限定する必要がないことを検出して、動作しているスレッドで、リザベーションステーションユニットのエントリに1つも実行できない状態であるスレッドが存在するかを判定し、前記スレッドが存在すると判定した時に、動作している他のスレッドのエントリから発行できる状態であるスレッドが存在する場合、1つも発行できない状態であるスレッドのスレッド選択を禁止する
ことを特徴とする命令実行制御装置。 - 請求項6の命令実行制御装置において、
前記スレッド選択回路は、
前記レジスタファイルから読み出すことのできるスレッドを、特定のスレッドに限定する必要がないことを検出して、一定期間完了できない命令がリザベーションステーションユニットのエントリに存在するかを判定し、前記エントリが存在すると判定した場合、一定間隔で、前記完了できていないスレッドのエントリを選択する
ことを特徴とする命令実行制御装置。 - リザベーションステーションユニットが、命令デコーダからのデコード結果に基づく、命令を識別する命令識別子と前記命令のスレッドを識別するスレッド識別子とを有するエントリを複数保持し、前記エントリの選択により、演算器及び主記憶オペランド生成器に、アウト・オブ・オーダー実行の処理を制御するステップと、
前記実行によって得られるデータを、レジスタ更新バッファに格納するステップと、
前記リザベーションステーションユニットのエントリの実行により、前記レジスタファイルからオペランドデータを読み出すときは、前記エントリの選択の1サイクル前に、前記エントリのスレッド識別子により読み出しスレッドを選択するステップと、
スレッドごとに設けられ、各々オペランドデータを格納する複数のアーキテクチャレジスタと、同時に読み出すことのできるスレッド数がアーキテクチャレジスタのスレッド数より少ないスレッド数に制限する読み出しスレッド選択回路とを有するレジスタファイルを、前記読み出しスレッドで選択するステップと、
前記エントリの命令識別子による演算又はオペランド生成の実行時に、前記スレッド選択回路で選択されたスレッドのアーキテクチャレジスタからオペランドデータを読み出すステップとを有することを
特徴とする命令実行制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/000652 WO2008155799A1 (ja) | 2007-06-20 | 2007-06-20 | 命令実行制御装置及び命令実行制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008155799A1 JPWO2008155799A1 (ja) | 2010-08-26 |
JP5104862B2 true JP5104862B2 (ja) | 2012-12-19 |
Family
ID=40155964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009520140A Expired - Fee Related JP5104862B2 (ja) | 2007-06-20 | 2007-06-20 | 命令実行制御装置及び命令実行制御方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7958338B2 (ja) |
EP (1) | EP2159688A4 (ja) |
JP (1) | JP5104862B2 (ja) |
KR (1) | KR101086792B1 (ja) |
CN (1) | CN101689110B (ja) |
WO (1) | WO2008155799A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542306B (zh) * | 2010-12-31 | 2016-06-01 | 重庆重邮信科通信技术有限公司 | 一种移动终端应用子系统访问用户识别卡文件的方法 |
JP6477248B2 (ja) * | 2015-05-22 | 2019-03-06 | 富士通株式会社 | 演算処理装置及び演算処理装置の処理方法 |
JP7032647B2 (ja) * | 2018-04-17 | 2022-03-09 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3646137B2 (ja) * | 2003-03-25 | 2005-05-11 | 独立行政法人科学技術振興機構 | 命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
JP2006040141A (ja) * | 2004-07-29 | 2006-02-09 | Fujitsu Ltd | マルチスレッドプロセッサ |
JP2006039815A (ja) * | 2004-07-26 | 2006-02-09 | Fujitsu Ltd | マルチスレッドプロセッサおよびレジスタ制御方法 |
JP2007109057A (ja) * | 2005-10-14 | 2007-04-26 | Hitachi Ltd | プロセッサ |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675758A (en) * | 1994-11-15 | 1997-10-07 | Advanced Micro Devices, Inc. | Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations |
US5778243A (en) * | 1996-07-03 | 1998-07-07 | International Business Machines Corporation | Multi-threaded cell for a memory |
US5872963A (en) * | 1997-02-18 | 1999-02-16 | Silicon Graphics, Inc. | Resumption of preempted non-privileged threads with no kernel intervention |
US6357016B1 (en) * | 1999-12-09 | 2002-03-12 | Intel Corporation | Method and apparatus for disabling a clock signal within a multithreaded processor |
US6842848B2 (en) | 2002-10-11 | 2005-01-11 | Sandbridge Technologies, Inc. | Method and apparatus for token triggered multithreading |
US6904511B2 (en) * | 2002-10-11 | 2005-06-07 | Sandbridge Technologies, Inc. | Method and apparatus for register file port reduction in a multithreaded processor |
US7849297B2 (en) * | 2003-08-28 | 2010-12-07 | Mips Technologies, Inc. | Software emulation of directed exceptions in a multithreading processor |
JP4952580B2 (ja) | 2005-04-21 | 2012-06-13 | 富士通株式会社 | プロセッサ装置 |
JP5028774B2 (ja) | 2005-09-22 | 2012-09-19 | 富士通株式会社 | 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 |
US7509511B1 (en) * | 2008-05-06 | 2009-03-24 | International Business Machines Corporation | Reducing register file leakage current within a processor |
-
2007
- 2007-06-20 WO PCT/JP2007/000652 patent/WO2008155799A1/ja active Application Filing
- 2007-06-20 EP EP07790178A patent/EP2159688A4/en not_active Withdrawn
- 2007-06-20 CN CN2007800534007A patent/CN101689110B/zh not_active Expired - Fee Related
- 2007-06-20 KR KR1020097026495A patent/KR101086792B1/ko not_active IP Right Cessation
- 2007-06-20 JP JP2009520140A patent/JP5104862B2/ja not_active Expired - Fee Related
-
2009
- 2009-12-07 US US12/591,993 patent/US7958338B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3646137B2 (ja) * | 2003-03-25 | 2005-05-11 | 独立行政法人科学技術振興機構 | 命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
JP2006039815A (ja) * | 2004-07-26 | 2006-02-09 | Fujitsu Ltd | マルチスレッドプロセッサおよびレジスタ制御方法 |
JP2006040141A (ja) * | 2004-07-29 | 2006-02-09 | Fujitsu Ltd | マルチスレッドプロセッサ |
JP2007109057A (ja) * | 2005-10-14 | 2007-04-26 | Hitachi Ltd | プロセッサ |
Also Published As
Publication number | Publication date |
---|---|
KR101086792B1 (ko) | 2011-11-25 |
EP2159688A4 (en) | 2011-01-05 |
US20100095103A1 (en) | 2010-04-15 |
JPWO2008155799A1 (ja) | 2010-08-26 |
CN101689110A (zh) | 2010-03-31 |
US7958338B2 (en) | 2011-06-07 |
CN101689110B (zh) | 2013-07-31 |
WO2008155799A1 (ja) | 2008-12-24 |
EP2159688A1 (en) | 2010-03-03 |
KR20100009592A (ko) | 2010-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5104863B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US7254697B2 (en) | Method and apparatus for dynamic modification of microprocessor instruction group at dispatch | |
US6061710A (en) | Multithreaded processor incorporating a thread latch register for interrupt service new pending threads | |
US20160055004A1 (en) | Method and apparatus for non-speculative fetch and execution of control-dependent blocks | |
US7363625B2 (en) | Method for changing a thread priority in a simultaneous multithread processor | |
US7000233B2 (en) | Simultaneous multithread processor with result data delay path to adjust pipeline length for input to respective thread | |
US20080276072A1 (en) | System and Method for using a Local Condition Code Register for Accelerating Conditional Instruction Execution in a Pipeline Processor | |
US20060101241A1 (en) | Instruction group formation and mechanism for SMT dispatch | |
US6981128B2 (en) | Atomic quad word storage in a simultaneous multithreaded system | |
US7194603B2 (en) | SMT flush arbitration | |
JP4327008B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US7013400B2 (en) | Method for managing power in a simultaneous multithread processor by loading instructions into pipeline circuit during select times based on clock signal frequency and selected power mode | |
US10963380B2 (en) | Cache miss thread balancing | |
US6735687B1 (en) | Multithreaded microprocessor with asymmetrical central processing units | |
US10579378B2 (en) | Instructions for manipulating a multi-bit predicate register for predicating instruction sequences | |
US20210019149A1 (en) | Detecting a dynamic control flow re-convergence point for conditional branches in hardware | |
JP5104862B2 (ja) | 命令実行制御装置及び命令実行制御方法 | |
JP2020091751A (ja) | 演算処理装置および演算処理装置の制御方法 | |
US20100100709A1 (en) | Instruction control apparatus and instruction control method | |
JP2904624B2 (ja) | 並列演算処理装置 | |
van der Linden | Instruction-level Parallelism | |
JPH0277840A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120612 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120810 |
|
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: 20120904 |
|
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: 20120917 |
|
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: 20151012 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |