JPWO2008155839A1 - 命令処理装置 - Google Patents
命令処理装置 Download PDFInfo
- Publication number
- JPWO2008155839A1 JPWO2008155839A1 JP2009520193A JP2009520193A JPWO2008155839A1 JP WO2008155839 A1 JPWO2008155839 A1 JP WO2008155839A1 JP 2009520193 A JP2009520193 A JP 2009520193A JP 2009520193 A JP2009520193 A JP 2009520193A JP WO2008155839 A1 JPWO2008155839 A1 JP WO2008155839A1
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- thread
- unit
- instructions
- execution
- 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.)
- Granted
Links
- 230000000717 retained effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 16
- 238000000034 method Methods 0.000 description 16
- 238000012790 confirmation Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000012447 hatching 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/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
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- 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/3802—Instruction prefetching
-
- 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/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- 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
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)
Abstract
Description
複数の命令列を有するスレッドのうち、所定数の命令を同時にデコードするデコード部と、
上記デコード部が解読した命令を実行する命令実行部と、
上記デコード部が解読する命令が、所定の禁止条件により上記スレッドにおいて先行する他の命令との同時実行が禁止されるか否かを判定するプリデコード部と、
上記デコード部が解読した命令が、上記判定により同時実行が禁止される場合には、上記禁止が解除されるまで当その命令を保持する命令保持部と、
上記デコード部が解読した命令が、上記判定により同時実行が禁止される場合には、上記解読した命令の後続命令を上記デコード部に投入せずに保持する命令投入部とを有することを特徴とする。
「上記命令投入部が、上記デコード部に命令を投入せずに保持した場合には、その命令が属するスレッドとは別のスレッドから入手した命令を上記デコード部に投入するものである」という形態は典型的な形態である。
「上記命令投入部が、上記同時実行が禁止される命令よりも上記スレッド中で後続の命令について上記デコード部に投入せずに保持している場合に、その同時実行が禁止される命令が実行可能な条件が整ったことを表す情報を入手してその保持している命令について上記デコード部への投入を再開するものである」という形態は好ましい形態である。
「上記プリデコード部が、命令に、上記同時実行が禁止される命令であるか否かを表すフラグを付すものであり、
上記命令投入部が、上記フラグが付された命令を上記デコード部への投入用に、スレッド毎に、スレッド中の順序と同じ順序で積んでおく命令バッファ部分を備え、その命令バッファ部分に積まれている命令を、積まれている順に上記デコード部へ投入する、上記フラグが上記同時実行が禁止される命令であることを示している命令の後の命令については投入せずに保持するものである」という形態も好ましい形態である。
「上記命令保持部が、上記同時実行が禁止される命令を複数保持していてそれら複数の命令について実行可能な条件が同時に整った場合には、それら複数の命令のうち先に保持した命令を先に上記実行部に渡すものである」という形態も好ましい。
Claims (5)
- 複数の命令列を有するスレッドのうち、所定数の命令を同時にデコードするデコード部と、
前記デコード部が解読した命令を実行する命令実行部と、
前記デコード部が解読する命令が、所定の禁止条件により前記スレッドにおいて先行する他の命令との同時実行が禁止されるか否かを判定するプリデコード部と、
前記デコード部が解読した命令が、前記判定により同時実行が禁止される場合には、前記禁止が解除されるまで当該命令を保持する命令保持部と、
前記デコード部が解読した命令が、前記判定により同時実行が禁止される場合には、前記解読した命令の後続命令を前記デコード部に投入せずに保持する命令投入部とを有することを特徴とする命令処理装置。 - 前記命令投入部が、前記デコード部に命令を投入せずに保持した場合には、その命令が属するスレッドとは別のスレッドから入手した命令を前記デコード部に投入するものであることを特徴とする請求項1記載の命令処理装置。
- 前記命令投入部が、前記同時実行が禁止される命令よりも前記スレッド中で後続の命令について前記デコード部に投入せずに保持している場合に、該同時実行が禁止される命令が実行可能な条件が整ったことを表す情報を入手してその保持している命令について前記デコード部への投入を再開するものであることを特徴とする請求項1または2記載の命令処理装置。
- 前記プリデコード部が、命令に、前記同時実行が禁止される命令であるか否かを表すフラグを付すものであり、
前記命令投入部が、前記フラグが付された命令を前記デコード部への投入用に、スレッド毎に、スレッド中の順序と同じ順序で積んでおく命令バッファ部分を備え、該命令バッファ部分に積まれている命令を、積まれている順に前記デコード部へ投入する、前記フラグが前記同時実行が禁止される命令であることを示している命令の後の命令については投入せずに保持するものであることを特徴とする請求項1から3のうちいずれか1項記載の命令処理装置。 - 前記命令保持部が、前記同時実行が禁止される命令を複数保持していてそれら複数の命令について実行可能な条件が同時に整った場合には、それら複数の命令のうち先に保持した命令を先に前記実行部に渡すものであることを特徴とする請求項1から4のうちいずれか1項記載の命令処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/062425 WO2008155839A1 (ja) | 2007-06-20 | 2007-06-20 | 命令処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008155839A1 true JPWO2008155839A1 (ja) | 2010-08-26 |
JP5093237B2 JP5093237B2 (ja) | 2012-12-12 |
Family
ID=40156005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009520193A Expired - Fee Related JP5093237B2 (ja) | 2007-06-20 | 2007-06-20 | 命令処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100106945A1 (ja) |
EP (1) | EP2169538A4 (ja) |
JP (1) | JP5093237B2 (ja) |
WO (1) | WO2008155839A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8984511B2 (en) * | 2012-03-29 | 2015-03-17 | Advanced Micro Devices, Inc. | Visibility ordering in a memory model for a unified computing system |
CN110825440B (zh) * | 2018-08-10 | 2023-04-14 | 昆仑芯(北京)科技有限公司 | 指令执行方法和装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2908598B2 (ja) * | 1991-06-06 | 1999-06-21 | 松下電器産業株式会社 | 情報処理装置 |
US5337415A (en) * | 1992-12-04 | 1994-08-09 | Hewlett-Packard Company | Predecoding instructions for supercalar dependency indicating simultaneous execution for increased operating frequency |
JPH07175649A (ja) * | 1993-12-16 | 1995-07-14 | Nippon Steel Corp | プロセッサ |
TW353732B (en) * | 1994-03-31 | 1999-03-01 | Ibm | Processing system and method of operation |
TW260765B (ja) * | 1994-03-31 | 1995-10-21 | Ibm | |
US6694425B1 (en) * | 2000-05-04 | 2004-02-17 | International Business Machines Corporation | Selective flush of shared and other pipeline stages in a multithread processor |
US7310722B2 (en) * | 2003-12-18 | 2007-12-18 | Nvidia Corporation | Across-thread out of order instruction dispatch in a multithreaded graphics processor |
WO2005121948A1 (en) * | 2004-06-02 | 2005-12-22 | Sun Microsystems, Inc. | Method and apparatus for enforcing membar instruction semantics in an execute-ahead processor |
US7237094B2 (en) * | 2004-10-14 | 2007-06-26 | International Business Machines Corporation | Instruction group formation and mechanism for SMT dispatch |
US7664936B2 (en) * | 2005-02-04 | 2010-02-16 | Mips Technologies, Inc. | Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages |
US7254697B2 (en) * | 2005-02-11 | 2007-08-07 | International Business Machines Corporation | Method and apparatus for dynamic modification of microprocessor instruction group at dispatch |
US7266674B2 (en) * | 2005-02-24 | 2007-09-04 | Microsoft Corporation | Programmable delayed dispatch in a multi-threaded pipeline |
CN101180607B (zh) * | 2005-06-15 | 2011-08-03 | 松下电器产业株式会社 | 处理器 |
-
2007
- 2007-06-20 EP EP07767263A patent/EP2169538A4/en not_active Withdrawn
- 2007-06-20 WO PCT/JP2007/062425 patent/WO2008155839A1/ja active Application Filing
- 2007-06-20 JP JP2009520193A patent/JP5093237B2/ja not_active Expired - Fee Related
-
2009
- 2009-12-16 US US12/654,311 patent/US20100106945A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP2169538A4 (en) | 2010-12-01 |
EP2169538A1 (en) | 2010-03-31 |
WO2008155839A1 (ja) | 2008-12-24 |
US20100106945A1 (en) | 2010-04-29 |
JP5093237B2 (ja) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7734897B2 (en) | Allocation of memory access operations to memory access capable pipelines in a superscalar data processing apparatus and method having a plurality of execution threads | |
US7721076B2 (en) | Tracking an oldest processor event using information stored in a register and queue entry | |
US7111126B2 (en) | Apparatus and method for loading data values | |
US6119223A (en) | Map unit having rapid misprediction recovery | |
EP1886216B1 (en) | Controlling out of order execution pipelines using skew parameters | |
US7711934B2 (en) | Processor core and method for managing branch misprediction in an out-of-order processor pipeline | |
WO1998025196A2 (en) | Dynamic branch prediction for branch instructions with multiple targets | |
US6981131B2 (en) | Early condition code evaluation at pipeline stages generating pass signals for controlling coprocessor pipeline executing same conditional instruction | |
US20060259741A1 (en) | Controlling out of order execution pipelines issue tagging | |
US20080005544A1 (en) | Method and apparatus for partitioned pipelined execution of multiple execution threads | |
US7454596B2 (en) | Method and apparatus for partitioned pipelined fetching of multiple execution threads | |
US20100306513A1 (en) | Processor Core and Method for Managing Program Counter Redirection in an Out-of-Order Processor Pipeline | |
EP0778519B1 (en) | Multiple instruction dispatch system for pipelined microprocessor without branch breaks | |
US20100100709A1 (en) | Instruction control apparatus and instruction control method | |
JP5115555B2 (ja) | 演算処理装置 | |
JP5093237B2 (ja) | 命令処理装置 | |
US20100031011A1 (en) | Method and apparatus for optimized method of bht banking and multiple updates | |
JP7409208B2 (ja) | 演算処理装置 | |
US20070043930A1 (en) | Performance of a data processing apparatus | |
US9823931B2 (en) | Queued instruction re-dispatch after runahead | |
US20040128476A1 (en) | Scheme to simplify instruction buffer logic supporting multiple strands | |
WO2007084202A2 (en) | Processor core and method for managing branch misprediction in an out-of-order processor pipeline | |
US6718460B1 (en) | Mechanism for error handling in a computer system | |
JPWO2012132214A1 (ja) | プロセッサ及びその命令処理方法 | |
US20040128488A1 (en) | Strand switching algorithm to avoid strand starvation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20120821 |
|
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: 20120903 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5093237 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150928 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |