JP2013069129A - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP2013069129A JP2013069129A JP2011207354A JP2011207354A JP2013069129A JP 2013069129 A JP2013069129 A JP 2013069129A JP 2011207354 A JP2011207354 A JP 2011207354A JP 2011207354 A JP2011207354 A JP 2011207354A JP 2013069129 A JP2013069129 A JP 2013069129A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- thread
- address
- selector
- 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
- 238000000034 method Methods 0.000 title claims description 27
- 230000015654 memory Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 230000003068 static effect Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000007616 round robin method Methods 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/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- 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/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- 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/3842—Speculative instruction execution
- G06F9/3848—Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
-
- 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
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
【解決手段】複数のスレッドの命令アドレス又は予測対象の分岐命令の分岐先アドレスを選択して複数のスレッドのアドレスを出力する第1のセレクタ(SL1〜SLn)と、第1のセレクタが出力した複数のスレッドのアドレスのうち1個を選択する第2のセレクタ(313)と、第1のサイクルステージで、第2のセレクタが選択したアドレスの分岐命令が分岐するかを示す分岐方向を選択されたアドレスに基づき予測して出力するとともに、第1のサイクルステージより後の第2のサイクルステージで、予測対象の分岐命令の分岐先アドレスを選択されたアドレスに基づき予測して出力する分岐予測回路(204)と、分岐予測回路が出力した分岐方向に基づき、第1セレクタ及び第2のセレクタによるスレッドのアドレスの選択を制御するスレッド調停回路(311)とを有する。
【選択図】図5
Description
205 一次命令キャッシュ
301 Aステージ
302 Tステージ
303 Mステージ
311 スレッド調停回路
312 パイプラインレジスタ
313 第2のセレクタ
321 大規模履歴テーブル
322 パイプラインレジスタ
323 分岐予測論理回路
501 分岐方向予測回路
502 小規模履歴テーブル
503 分岐方向予測論理回路
504 パイプラインレジスタ
SL1〜SLn 第1のセレクタ
Claims (6)
- 複数のスレッドの命令を複数のサイクルステージ毎に実行する演算処理装置において、
入力した複数のスレッドの命令の命令アドレス又は予測対象の分岐命令の分岐先アドレスを選択して、前記複数のスレッドのアドレスを出力する第1のセレクタと、
前記第1のセレクタが出力した複数のスレッドのアドレスのうち、いずれか1個のスレッドのアドレスを選択する第2のセレクタと、
前記複数のサイクルステージのうち第1のサイクルステージで、前記第2のセレクタが選択したアドレスの分岐命令が分岐するかを示す分岐方向を前記選択されたアドレスに基づき予測して出力するとともに、前記第1のサイクルステージより後の第2のサイクルステージで、前記予測対象の分岐命令の分岐先アドレスを前記選択されたアドレスに基づき予測して出力する分岐予測回路と、
前記分岐予測回路が出力した前記分岐方向に基づき、前記第1セレクタ及び第2のセレクタによるスレッドのアドレスの選択を制御するスレッド調停回路と、を有することを特徴とする演算処理装置。 - 前記分岐予測回路は、
過去の分岐命令の分岐方向及び分岐先アドレスの履歴を記憶する第1の履歴テーブルを用いて前記予測対象分岐命令の分岐先アドレスを予測し、
過去の分岐命令の分岐方向の履歴を記憶する第2の履歴テーブルを用いて前記予測対象分岐命令の分岐方向を予測することを特徴とする請求項1記載の演算処理装置。 - 前記第2の履歴テーブルのエントリ数は、前記第1の履歴テーブルのエントリ数よりも少ないことを特徴とする請求項2記載の演算処理装置。
- 前記第1のセレクタは、
前記予測された分岐方向が分岐する旨を示す場合には前記分岐先アドレスを選択し、前記予測された分岐方向が分岐しない旨を示す場合には前記複数のスレッドの命令の命令アドレスを選択することを特徴とする請求項1〜3のいずれか1項に記載の演算処理装置。 - 前記第2のセレクタは、
前記予測された分岐方向が分岐する旨を示す場合、前記複数のスレッドのうち前記分岐命令が属するスレッドと異なるスレッドのアドレスを選択し、前記予測された分岐方向が分岐しない旨を示す場合、前記分岐命令が属するスレッドと同じスレッドのアドレスを選択することを特徴とする請求項1〜4のいずれか1項に記載の演算処理装置。 - 複数のスレッドの命令を複数のサイクルステージ毎に実行する演算処理装置の制御方法において、
前記演算処理装置が有する第1のセレクタが、入力した複数のスレッドの命令の命令アドレス又は予測対象の分岐命令の分岐先アドレスを選択して複数のスレッドのアドレスを出力し、
前記演算処理装置が有する第2のセレクタが、前記第1のセレクタが出力した複数のスレッドのアドレスのうち、いずれか1個のスレッドのアドレスを選択し、
前記演算処理装置が有する分岐予測回路が、前記複数のサイクルステージのうち第1のサイクルステージで、前記第2のセレクタが選択したアドレスの分岐命令が分岐するかを示す分岐方向を、前記選択されたアドレスに基づき予測して出力するとともに、前記複数のサイクルステージのうち前記第1のサイクルステージより後の第2のサイクルステージで、前記予測対象の分岐命令の分岐先アドレスを前記選択されたアドレスに基づき予測して出力することを特徴とする演算処理装置の制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011207354A JP5861354B2 (ja) | 2011-09-22 | 2011-09-22 | 演算処理装置及び演算処理装置の制御方法 |
US13/591,383 US20130080749A1 (en) | 2011-09-22 | 2012-08-22 | Processor and control method of processor |
EP12182156.5A EP2573673B1 (en) | 2011-09-22 | 2012-08-29 | Multithreaded processor and instruction fetch control method of multithreaded processor |
US13/597,322 US9069565B2 (en) | 2011-09-22 | 2012-08-29 | Processor and control method of processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011207354A JP5861354B2 (ja) | 2011-09-22 | 2011-09-22 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013069129A true JP2013069129A (ja) | 2013-04-18 |
JP5861354B2 JP5861354B2 (ja) | 2016-02-16 |
Family
ID=47018753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011207354A Active JP5861354B2 (ja) | 2011-09-22 | 2011-09-22 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US20130080749A1 (ja) |
EP (1) | EP2573673B1 (ja) |
JP (1) | JP5861354B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015036855A (ja) * | 2013-08-12 | 2015-02-23 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP2021536611A (ja) * | 2018-08-29 | 2021-12-27 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 分岐信頼スロットル |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2517100B1 (en) * | 2009-12-25 | 2018-09-26 | Shanghai Xinhao Micro-Electronics Co. Ltd. | High-performance cache system and method |
US9141388B2 (en) * | 2009-12-25 | 2015-09-22 | Shanghai Xin Hao Micro Electronics Co., Ltd. | High-performance cache system and method |
US9311098B2 (en) * | 2013-05-07 | 2016-04-12 | Apple Inc. | Mechanism for reducing cache power consumption using cache way prediction |
US9606801B2 (en) | 2013-09-06 | 2017-03-28 | Huawei Technologies Co., Ltd. | Method and apparatus for asynchronous processor based on clock delay adjustment |
JP6930381B2 (ja) * | 2017-11-06 | 2021-09-01 | 富士通株式会社 | 情報処理システム、演算処理装置及び情報処理システムの制御方法 |
US10901743B2 (en) * | 2018-07-19 | 2021-01-26 | International Business Machines Corporation | Speculative execution of both paths of a weakly predicted branch instruction |
CN111651864B (zh) * | 2020-05-12 | 2023-03-17 | 北京华如科技股份有限公司 | 一种事件集中发射式多异构时间队列优化仿真执行方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005262A1 (en) * | 2001-06-28 | 2003-01-02 | Sailesh Kottapalli | Mechanism for providing high instruction fetch bandwidth in a multi-threaded processor |
JP2004518183A (ja) * | 2000-07-14 | 2004-06-17 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチスレッド・システムにおける命令のフェッチとディスパッチ |
JP2004326752A (ja) * | 2003-04-21 | 2004-11-18 | Internatl Business Mach Corp <Ibm> | 同時マルチスレッド化プロセッサ |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04179555A (ja) | 1990-11-14 | 1992-06-26 | Matsushita Electric Ind Co Ltd | サーマルヘッドおよびその製造方法 |
US5287467A (en) * | 1991-04-18 | 1994-02-15 | International Business Machines Corporation | Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit |
JP3335379B2 (ja) | 1992-09-09 | 2002-10-15 | 富士通株式会社 | ブランチ・ヒストリーを持つ命令実行処理装置 |
US5796998A (en) | 1996-11-21 | 1998-08-18 | International Business Machines Corporation | Apparatus and method for performing branch target address calculation and branch prediciton in parallel in an information handling system |
US7020879B1 (en) * | 1998-12-16 | 2006-03-28 | Mips Technologies, Inc. | Interrupt and exception handling for multi-streaming digital processors |
US7035997B1 (en) * | 1998-12-16 | 2006-04-25 | Mips Technologies, Inc. | Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors |
US6389449B1 (en) * | 1998-12-16 | 2002-05-14 | Clearwater Networks, Inc. | Interstream control and communications for multi-streaming digital processors |
US6535905B1 (en) * | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
JP2001005665A (ja) | 1999-06-21 | 2001-01-12 | Hitachi Ltd | 分岐予測装置 |
KR100395763B1 (ko) * | 2000-02-01 | 2003-08-25 | 삼성전자주식회사 | 멀티프로세싱 마이크로프로세서에 적합한 분기 예측기 |
WO2004044745A1 (ja) | 2002-11-13 | 2004-05-27 | Fujitsu Limited | マルチスレッディングプロセッサにおけるスケジューリング方法およびマルチスレッディングプロセッサ |
US7954102B2 (en) | 2002-11-13 | 2011-05-31 | Fujitsu Limited | Scheduling method in multithreading processor, and multithreading processor |
US7360062B2 (en) | 2003-04-25 | 2008-04-15 | International Business Machines Corporation | Method and apparatus for selecting an instruction thread for processing in a multi-thread processor |
US7401208B2 (en) | 2003-04-25 | 2008-07-15 | International Business Machines Corporation | Method and apparatus for randomizing instruction thread interleaving in a multi-thread processor |
US7401207B2 (en) | 2003-04-25 | 2008-07-15 | International Business Machines Corporation | Apparatus and method for adjusting instruction thread priority in a multi-thread processor |
US7120784B2 (en) * | 2003-04-28 | 2006-10-10 | International Business Machines Corporation | Thread-specific branch prediction by logically splitting branch history tables and predicted target address cache in a simultaneous multithreading processing environment |
US7890735B2 (en) * | 2004-08-30 | 2011-02-15 | Texas Instruments Incorporated | Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture |
US7877587B2 (en) * | 2006-06-09 | 2011-01-25 | Arm Limited | Branch prediction within a multithreaded processor |
US7565512B2 (en) | 2007-02-02 | 2009-07-21 | Kabushiki Kaisha Toshiba | Method, system and apparatus for generation of global branch history |
CN101715576B (zh) * | 2007-06-19 | 2013-04-17 | 富士通株式会社 | 运算处理装置 |
-
2011
- 2011-09-22 JP JP2011207354A patent/JP5861354B2/ja active Active
-
2012
- 2012-08-22 US US13/591,383 patent/US20130080749A1/en not_active Abandoned
- 2012-08-29 EP EP12182156.5A patent/EP2573673B1/en not_active Not-in-force
- 2012-08-29 US US13/597,322 patent/US9069565B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004518183A (ja) * | 2000-07-14 | 2004-06-17 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチスレッド・システムにおける命令のフェッチとディスパッチ |
US20030005262A1 (en) * | 2001-06-28 | 2003-01-02 | Sailesh Kottapalli | Mechanism for providing high instruction fetch bandwidth in a multi-threaded processor |
JP2004326752A (ja) * | 2003-04-21 | 2004-11-18 | Internatl Business Mach Corp <Ibm> | 同時マルチスレッド化プロセッサ |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015036855A (ja) * | 2013-08-12 | 2015-02-23 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP2021536611A (ja) * | 2018-08-29 | 2021-12-27 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 分岐信頼スロットル |
JP7430173B2 (ja) | 2018-08-29 | 2024-02-09 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 分岐信頼スロットル |
Also Published As
Publication number | Publication date |
---|---|
JP5861354B2 (ja) | 2016-02-16 |
US9069565B2 (en) | 2015-06-30 |
US20130080749A1 (en) | 2013-03-28 |
EP2573673A1 (en) | 2013-03-27 |
US20130080750A1 (en) | 2013-03-28 |
EP2573673B1 (en) | 2014-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5861354B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP6043374B2 (ja) | 動的アウトオブオーダプロセッサパイプラインを実装する方法および装置 | |
US7590830B2 (en) | Method and structure for concurrent branch prediction in a processor | |
US9811340B2 (en) | Method and apparatus for reconstructing real program order of instructions in multi-strand out-of-order processor | |
KR101594090B1 (ko) | 공유 메모리에 대한 액세스들의 동기화를 완화하기 위한 프로세서들, 방법들 및 시스템들 | |
JP5177141B2 (ja) | 演算処理装置、演算処理方法 | |
US20080046689A1 (en) | Method and apparatus for cooperative multithreading | |
US9436464B2 (en) | Instruction-issuance controlling device and instruction-issuance controlling method | |
JP2006114036A (ja) | Smtディスパッチのための命令グループ形成およびメカニズム | |
JP2018005488A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US10048969B2 (en) | Dynamic branch predictor indexing a plurality of weight tables by instruction address fetch history and making a prediction based on a product sum calculation of global history register values and outputted weight table value | |
US11954491B2 (en) | Multi-threading microprocessor with a time counter for statically dispatching instructions | |
US20040034759A1 (en) | Multi-threaded pipeline with context issue rules | |
JP5104861B2 (ja) | 演算処理装置 | |
US20100095305A1 (en) | Simultaneous multithread instruction completion controller | |
JP7131313B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US20100100709A1 (en) | Instruction control apparatus and instruction control method | |
JP2020091751A (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP5104862B2 (ja) | 命令実行制御装置及び命令実行制御方法 | |
JP2015184979A (ja) | 演算装置および命令フェッチ方法 | |
CN116339489A (zh) | 处理器中微操作的扼制融合的系统、装置和方法 | |
JP6225554B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
CN116339969A (zh) | 微操作的自适应动态分派 | |
Wu et al. | A dynamically clustered chip multiprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140603 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150303 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150402 |
|
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: 20151124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151207 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5861354 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |