JP2014182829A - 直接依存命令及びネストされた依存命令のためのスケジューラー内の推測的ソース準備をリセットする効果的な方法 - Google Patents
直接依存命令及びネストされた依存命令のためのスケジューラー内の推測的ソース準備をリセットする効果的な方法 Download PDFInfo
- Publication number
- JP2014182829A JP2014182829A JP2014051609A JP2014051609A JP2014182829A JP 2014182829 A JP2014182829 A JP 2014182829A JP 2014051609 A JP2014051609 A JP 2014051609A JP 2014051609 A JP2014051609 A JP 2014051609A JP 2014182829 A JP2014182829 A JP 2014182829A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- source
- dependent instruction
- dependent
- nested
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
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)
- Advance Control (AREA)
Abstract
【解決手段】命令処理方法は、依存命令の生成命令によって前記依存命令のソースを推測的にウェークアップする段階と、前記依存命令によってネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップする段階と、前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備になったことを示すように前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングする段階と、前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーをセッティングし、前記ネストされた依存命令の前記ソースの取消タイマーをセッティングする段階と、前記依存命令及び前記ネストされた依存命令を同時に取消す段階と、を含む。
【選択図】図3
Description
102・・・再命名器
103・・・スケジューラー
104・・・コントローラ
Entry・・・エントリ
Producer instruction・・・生成命令
dependent instruction・・・依存命令
source ready field・・・ソース準備フィールド
cancel timer field・・・取消タイマーフィールド
Claims (21)
- 依存命令の生成命令によって前記依存命令のソースを推測的にウェークアップする段階と、
前記依存命令によってネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップする段階と、
前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備になったことを示すように前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングする段階と、
前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーをセッティングし、前記ネストされた依存命令の前記ソースの取消タイマーをセッティングし、前記取消タイマーは、各々前記ソース準備ビットがセッティングされた時、カウントダウンを始まる段階と、
仮に前記依存命令の前記ソースの前記取消タイマー及び前記ネストされた依存命令の前記ソースの前記取消タイマーが満了され、前記生成命令が取消された場合に前記依存命令及び前記ネストされた依存命令を同時に取消す段階と、を含む複数の命令の処理方法。 - 前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとが所定値に到達した時に満了される請求項1に記載の複数の命令の処理方法。
- 前記所定値は、0ではない請求項2に記載の複数の命令の処理方法。
- 仮に前記依存命令と前記ネストされた依存命令とが再びウェークアップされなければ、前記依存命令と前記ネストされた依存命令とが選択される準備にならないことを示すように前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする段階をさらに含む請求項1に記載の複数の命令の処理方法。
- 前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをリセットする段階をさらに含む請求項4に記載の複数の命令の処理方法。
- 前記リセットする段階は、前記依存命令と前記ネストされた依存命令とを同時に取消す段階が遂行された後に遂行される請求項4に記載の複数の命令の処理方法。
- 前記依存命令が前記生成命令によって推測的にウェークアップされた後、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記取消時間に基づいて互に異なる値を有するようにセッティングされる請求項6に記載の複数の命令の処理方法。 - 前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記取消時間に基づいて互に異なる値を有するように設定される請求項1に記載の複数の命令の処理方法。 - 前記生成命令は、推測的に選択される請求項1に記載の複数の命令の処理方法。
- 前記生成命令が取消されることと予想される前記取消時間は、前記生成命令によって前記依存命令の前記ソースを推測的にウェークアップする時間から前記取消が前記生成命令のために主張されることと予想されるクロックサイクルの数に基づいて決定される請求項1に記載の複数の命令の処理方法。
- スケジューリング動作の遂行のために生成命令を選択するスケジューラーと、
コントローラと、を含み、
前記コントローラは、
前記依存命令の生成命令によって依存命令のソースを推測的にウェークアップし、
前記依存命令によって、ネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップし、
前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備がされたことを示すように、前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングし、
前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーと前記ネストされた依存命令の前記ソースの取消タイマーとが各々前記ソース準備ビットがセッティングされた時、カウントダウンを開始するようにセッティングし、
仮に前記依存命令の前記ソースの前記取消タイマー及び前記ネストされた依存命令の前記ソースの前記取消タイマーが満了され、前記生成命令が取消された場合に前記依存命令及び前記ネストされた依存命令を同時に取消する命令処理装置。 - 前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとが所定値に到達した時に満了される請求項11に記載の命令処理装置。
- 前記所定値は、0ではない請求項12に記載の命令処理装置。
- 前記コントローラは、仮に前記依存命令と前記ネストされた依存命令とが再びウェークアップされなければ、前記依存命令と前記ネストされた依存命令とが選択(pick)される準備にならないことを示すように前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする請求項11に記載の命令処理装置。
- 前記コントローラは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをリセットする請求項14に記載の命令処理装置。
- 前記コントローラは、前記依存命令と前記ネストされた依存命令とを同時に取消した後に前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする請求項14に記載の命令処理装置。
- 前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
前記コントローラは、互に異なる値を有するように前記取消時間に基づいて前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをセッティングする請求項16に記載の命令処理装置。 - 前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
前記コントローラは、互に異なる値を有するように前記取消時間に基づいて前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをセッティングする請求項11に記載の命令処理装置。 - 前記生成命令は、推測的に選択される請求項11に記載の命令処理装置。
- 前記コントローラは、クロックサイクルの数に基づいて前記生成命令によって前記依存命令の前記ソースを推測的にウェークアップする時間から前記生成命令が取消されることと予想される前記取消時間を決定する請求項11に記載の命令処理装置。
- 前記依存命令の前記ソースの前記ソース準備ビット、前記ネストされた依存命令の前記ソースの前記ソース準備ビット、前記依存命令の前記ソースの前記取消タイマー、及び前記ネストされた依存命令の前記ソースの前記取消タイマーは、前記スケジューラーのエントリにセッティングされる請求項11に記載の命令処理装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/836,392 US9424041B2 (en) | 2013-03-15 | 2013-03-15 | Efficient way to cancel speculative ‘source ready’ in scheduler for direct and nested dependent instructions |
| US13/836,392 | 2013-03-15 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2014182829A true JP2014182829A (ja) | 2014-09-29 |
| JP2014182829A5 JP2014182829A5 (ja) | 2017-03-09 |
| JP6148191B2 JP6148191B2 (ja) | 2017-06-14 |
Family
ID=51419119
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014051609A Active JP6148191B2 (ja) | 2013-03-15 | 2014-03-14 | 直接依存命令及びネストされた依存命令のためのスケジューラー内の推測的ソース準備をリセットする効果的な方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US9424041B2 (ja) |
| JP (1) | JP6148191B2 (ja) |
| KR (1) | KR101985377B1 (ja) |
| CN (1) | CN104049952B (ja) |
| DE (1) | DE102014103282A1 (ja) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
| CN106909343B (zh) * | 2017-02-23 | 2019-01-29 | 北京中科睿芯科技有限公司 | 一种基于数据流的指令调度方法及装置 |
| CN111124492B (zh) * | 2019-12-16 | 2022-09-20 | 成都海光微电子技术有限公司 | 指令生成方法、装置、指令执行方法、处理器及电子设备 |
| CN111399912B (zh) * | 2020-03-26 | 2022-11-22 | 超睿科技(长沙)有限公司 | 一种面向多周期指令的指令调度方法、系统及介质 |
| US20220206793A1 (en) * | 2020-12-24 | 2022-06-30 | Intel Corporation | Methods, systems, and apparatuses for a scalable reservation station implementing a single unified speculation state propagation and execution wakeup matrix circuit in a processor |
| US11934834B2 (en) * | 2021-10-19 | 2024-03-19 | Ampere Computing Llc | Instruction scheduling in a processor using operation source parent tracking |
| US20230315446A1 (en) * | 2022-03-30 | 2023-10-05 | Fujitsu Limited | Arithmetic processing apparatus and method for arithmetic processing |
| US20250306999A1 (en) * | 2024-03-30 | 2025-10-02 | Advanced Micro Devices, Inc. | Apparatuses, systems, and methods for scheduling processor operations |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6792524B1 (en) * | 1998-08-20 | 2004-09-14 | International Business Machines Corporation | System and method cancelling a speculative branch |
| JP2006228241A (ja) * | 1998-08-24 | 2006-08-31 | Advanced Micro Devices Inc | プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法 |
| US20070204135A1 (en) * | 2006-02-28 | 2007-08-30 | Mips Technologies, Inc. | Distributive scoreboard scheduling in an out-of order processor |
| JP2008139964A (ja) * | 2006-11-30 | 2008-06-19 | Hitachi Ltd | データプロセッサ |
| JP2009181163A (ja) * | 2008-01-29 | 2009-08-13 | Kyoto Univ | マイクロプロセッサならびにビット・ベクタのエンコーディング方法およびビット・ベクタの生成方法 |
| US20110078697A1 (en) * | 2009-09-30 | 2011-03-31 | Smittle Matthew B | Optimal deallocation of instructions from a unified pick queue |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5778210A (en) | 1996-01-11 | 1998-07-07 | Intel Corporation | Method and apparatus for recovering the state of a speculatively scheduled operation in a processor which cannot be executed at the speculated time |
| US6065105A (en) | 1997-01-08 | 2000-05-16 | Intel Corporation | Dependency matrix |
| US6988185B2 (en) | 2002-01-22 | 2006-01-17 | Intel Corporation | Select-free dynamic instruction scheduling |
| US7130990B2 (en) | 2002-12-31 | 2006-10-31 | Intel Corporation | Efficient instruction scheduling with lossy tracking of scheduling information |
| US20070043932A1 (en) | 2005-08-22 | 2007-02-22 | Intel Corporation | Wakeup mechanisms for schedulers |
| US7600103B2 (en) | 2006-06-30 | 2009-10-06 | Intel Corporation | Speculatively scheduling micro-operations after allocation |
| US8239661B2 (en) | 2008-08-28 | 2012-08-07 | International Business Machines Corporation | System and method for double-issue instructions using a dependency matrix |
| US9262171B2 (en) | 2009-06-30 | 2016-02-16 | Oracle America, Inc. | Dependency matrix for the determination of load dependencies |
| CN101833435A (zh) * | 2010-04-19 | 2010-09-15 | 天津大学 | 基于传输触发架构可配置处理器指令冗余消除方法 |
| US9256428B2 (en) * | 2013-02-06 | 2016-02-09 | International Business Machines Corporation | Load latency speculation in an out-of-order computer processor |
-
2013
- 2013-03-15 US US13/836,392 patent/US9424041B2/en active Active
- 2013-12-20 KR KR1020130160340A patent/KR101985377B1/ko active Active
-
2014
- 2014-03-11 CN CN201410087003.3A patent/CN104049952B/zh active Active
- 2014-03-12 DE DE102014103282.9A patent/DE102014103282A1/de active Pending
- 2014-03-14 JP JP2014051609A patent/JP6148191B2/ja active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6792524B1 (en) * | 1998-08-20 | 2004-09-14 | International Business Machines Corporation | System and method cancelling a speculative branch |
| JP2006228241A (ja) * | 1998-08-24 | 2006-08-31 | Advanced Micro Devices Inc | プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法 |
| US20070204135A1 (en) * | 2006-02-28 | 2007-08-30 | Mips Technologies, Inc. | Distributive scoreboard scheduling in an out-of order processor |
| JP2008139964A (ja) * | 2006-11-30 | 2008-06-19 | Hitachi Ltd | データプロセッサ |
| JP2009181163A (ja) * | 2008-01-29 | 2009-08-13 | Kyoto Univ | マイクロプロセッサならびにビット・ベクタのエンコーディング方法およびビット・ベクタの生成方法 |
| US20110078697A1 (en) * | 2009-09-30 | 2011-03-31 | Smittle Matthew B | Optimal deallocation of instructions from a unified pick queue |
Also Published As
| Publication number | Publication date |
|---|---|
| US20140281431A1 (en) | 2014-09-18 |
| CN104049952B (zh) | 2018-10-16 |
| CN104049952A (zh) | 2014-09-17 |
| KR101985377B1 (ko) | 2019-06-03 |
| US9424041B2 (en) | 2016-08-23 |
| DE102014103282A1 (de) | 2014-09-18 |
| JP6148191B2 (ja) | 2017-06-14 |
| KR20140113303A (ko) | 2014-09-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6148191B2 (ja) | 直接依存命令及びネストされた依存命令のためのスケジューラー内の推測的ソース準備をリセットする効果的な方法 | |
| CN112534403B (zh) | 微处理器中存储指令融合的系统和方法 | |
| US8650554B2 (en) | Single thread performance in an in-order multi-threaded processor | |
| JP5571784B2 (ja) | プロセッサ、方法、システム、及び、プログラム | |
| US9606806B2 (en) | Dependence-based replay suppression | |
| JP5411587B2 (ja) | マルチスレッド実行装置、マルチスレッド実行方法 | |
| US20060149931A1 (en) | Runahead execution in a central processing unit | |
| JP2006351008A (ja) | マルチスレッドプロセッサのディスパッチ時にスレッドをブロックする方法、コンピュータプログラム、および装置(精細なマルチスレッドディスパッチロックメカニズム) | |
| US20170017490A1 (en) | Execution of micro-operations | |
| GB2563116B (en) | Apparatus and method for determining a recovery point from which to resume instruction execution following handling of unexpected change in instruction flow | |
| US20090113178A1 (en) | Microprocessor based on event-processing instruction set and event-processing method using the same | |
| US9274829B2 (en) | Handling interrupt actions for inter-thread communication | |
| TW201439900A (zh) | 用於提前執行操作的指令分類 | |
| US7711934B2 (en) | Processor core and method for managing branch misprediction in an out-of-order processor pipeline | |
| US7404065B2 (en) | Flow optimization and prediction for VSSE memory operations | |
| US20150074378A1 (en) | System and Method for an Asynchronous Processor with Heterogeneous Processors | |
| US20080148026A1 (en) | Checkpoint Efficiency Using a Confidence Indicator | |
| US20070043932A1 (en) | Wakeup mechanisms for schedulers | |
| US10387162B2 (en) | Effective address table with multiple taken branch handling for out-of-order processors | |
| US20240103914A1 (en) | Dynamically adjusting thread affinitization using hardware-based core availability notifications | |
| US20130019085A1 (en) | Efficient Recombining for Dual Path Execution | |
| US10514925B1 (en) | Load speculation recovery | |
| US10437596B2 (en) | Processor with a full instruction set decoder and a partial instruction set decoder | |
| US20020166042A1 (en) | Speculative branch target allocation | |
| Aşılıoğlu et al. | LaZy superscalar |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20141226 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170202 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170202 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20170202 |
|
| A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20170324 |
|
| 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: 20170424 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170518 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6148191 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |