JP6604689B2 - ディペンデンシーを整理し、リビルディングするシステム及び方法 - Google Patents
ディペンデンシーを整理し、リビルディングするシステム及び方法 Download PDFInfo
- Publication number
- JP6604689B2 JP6604689B2 JP2018071397A JP2018071397A JP6604689B2 JP 6604689 B2 JP6604689 B2 JP 6604689B2 JP 2018071397 A JP2018071397 A JP 2018071397A JP 2018071397 A JP2018071397 A JP 2018071397A JP 6604689 B2 JP6604689 B2 JP 6604689B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- counter
- entries
- value
- data processing
- 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
- 238000000034 method Methods 0.000 title claims description 25
- 230000001419 dependent effect Effects 0.000 claims description 104
- 239000013598 vector Substances 0.000 claims description 84
- 230000015654 memory Effects 0.000 claims description 64
- 230000004044 response Effects 0.000 claims description 42
- 230000003247 decreasing effect Effects 0.000 claims description 15
- 238000003672 processing method Methods 0.000 claims description 15
- 230000001131 transforming effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 19
- 239000000872 buffer Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013138 pruning 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
-
- 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
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30181—Instruction operation extension or modification
-
- 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
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Description
実施形態として、前記閾値は、‘0’である
実施形態として、前記閾値は‘0’である
[数式1]
LSB=X
[数式2]
producer:プロデューサー
speculative instruction・・・推論的な命令語
dependency vector・・・従属ベクトル
dependency bit・・・従属ビット
dependency・・・ディペンデンシー
OR operation・・・論理和演算
XOR operation・・・排他的論理和演算
entry・・・エントリ
counter・・・カウンター
threshold・・・閾値
user interface・・・ユーザーインターフェイス
100,200 エントリ
112,212 カウンター
114,214 追加的な情報
216 属性ベクトル
301,302 プロデューサー
306 属性エントリ
312 カウンター
316 従属ベクトル
Claims (20)
- データ処理システムのデータ処理方法において、
第1エントリと連関されたカウンターの値を、第2エントリおよび第3エントリを含む他のエントリの目的地の総数を示すように初期化する段階であって、前記第1エントリは前記他のエントリに依存する従属エントリであり、かつ前記他のエントリは1つまたは複数の目的地をそれぞれ有する、段階と、
前記他のエントリの中で前記第2エントリを選択することに応答して第1方向に前記カウンターの前記値を変換する段階と、
前記他のエントリの中で前記第3エントリを取消しすることに応答して第2方向に前記カウンターの前記値を変換する段階と、を含むデータ処理方法。 - 前記他のエントリの中で前記第3エントリは、前記他のエントリの中で前記第2エントリである請求項1に記載のデータ処理方法。
- 前記他のエントリの中で前記第2エントリは、前記他のエントリの中で前記第3エントリと異なる請求項1に記載のデータ処理方法。
- 取消された前記他のエントリの数だけ前記第2方向に前記カウンターの前記値を変換する段階をさらに含む請求項1に記載のデータ処理方法。
- 前記第1方向に前記カウンターの前記値を変換する段階は、前記カウンターを減少させる段階を含み、
前記第2方向に前記カウンターの前記値を変換する段階は、前記カウンターを増加させる段階を含む請求項1に記載のデータ処理方法。 - 閾値に到達した前記カウンターの前記値に応答して前記第1エントリが選択される準備ができていることを示す段階をさらに含む請求項1に記載のデータ処理方法。
- 前記閾値は、0(zero)である請求項6に記載のデータ処理方法。
- 前記第1エントリが選択される準備ができていることを示す段階は、前記第1エントリと連関された従属ベクトルのエントリを整理せず、前記第1エントリが選択される準備ができていることを示す段階を含む請求項6に記載のデータ処理方法。
- 前記第1エントリと連関された前記カウンターの前記値を初期化する段階は、前記第1エントリの従属ベクトルに応答して前記カウンターの前記値をローディングする段階を含む請求項1に記載のデータ処理方法。
- 前記第1エントリの前記従属ベクトルに応答して前記カウンターの前記値をローディングする段階は、
前記従属ベクトルのビットに対する論理和演算を遂行する段階と、
前記従属ベクトルの前記ビットに対する排他的論理和演算を遂行する段階と、
前記論理和演算及び前記排他的論理和演算の結果に応答して前記カウンターの前記値をローディングする段階と、を含む請求項9に記載のデータ処理方法。 - 前記カウンターは、幅を有し、前記幅は、前記第1エントリが依存する目的地の最大数を示すためのビットの最小数である請求項1に記載のデータ処理方法。
- 複数のエントリを格納するように構成され、前記複数のエントリの各々は、少なくとも1つのカウンターを含むメモリと、
前記メモリに連結されるコントローラと、を含み、
前記コントローラは、
前記エントリの中で第1エントリと連関された前記カウンターの値を、前記エントリの中で第2エントリおよび第3エントリを含む他のエントリの目的地の総数を示すように初期化し、
前記他のエントリの中で前記第2エントリを選択することに応答して第1方向に前記カウンターの前記値を変換し、
前記他のエントリの中で前記第3エントリを取消しすることに応答して前記第1方向と反対である第2方向に前記カウンターの前記値を変換する
ように構成され、前記第1エントリは前記他のエントリに依存する従属エントリであり、かつ前記他のエントリは1つまたは複数の目的地をそれぞれ有する、データ処理装置。 - 前記他のエントリの中で前記第3エントリは、前記他のエントリの中で前記第2エントリである請求項12に記載のデータ処理装置。
- 前記他のエントリの中で前記第2エントリは、前記他のエントリの中で前記第3エントリと異なる請求項12に記載のデータ処理装置。
- 前記コントローラは、取消された前記他のエントリの数だけ前記第2方向に前記カウンターの前記値を変換するようにさらに構成された請求項12に記載のデータ処理装置。
- 前記コントローラは、
前記カウンターを減少させることによって前記第1方向に前記カウンターの前記値を変換し、
前記カウンターを増加させることによって前記第2方向に前記カウンターの前記値を変換するようにさらに構成された請求項12に記載のデータ処理装置。 - 前記コントローラは、閾値に到達した前記カウンターの前記値に応答して前記第1エントリが準備されていることを示すようにさらに構成された請求項12に記載のデータ処理装置。
- 前記コントローラは、前記第1エントリと連関された従属ベクトルのエントリを整理せず、前記第1エントリが選択される準備ができていることを示すようにさらに構成された請求項17に記載のデータ処理装置。
- 前記コントローラは、
前記第1エントリの従属ベクトルに応答して前記カウンターの前記値をローディングすることによって、前記第1エントリと連関された前記カウンターの前記値を初期化し、
前記従属ベクトルのビットに対する論理和演算を遂行し、前記従属ベクトルの前記ビットに対する排他的論理和演算を遂行し、前記論理和演算及び前記排他的論理和演算の結果に応答して前記カウンターの前記値をローディングすることによって、前記第1エントリの前記従属ベクトルに応答して前記カウンターの前記値をローディングするようにさらに構成された請求項12に記載のデータ処理装置。 - 前記第1エントリと連関されたカウンターは、幅を有し、前記幅は、前記第1エントリが依存する目的地の最大数を示すためのビットの最小数である請求項12に記載のデータ処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/831,434 | 2013-03-14 | ||
US13/831,434 US9400653B2 (en) | 2013-03-14 | 2013-03-14 | System and method to clear and rebuild dependencies |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014051611A Division JP6320801B2 (ja) | 2013-03-14 | 2014-03-14 | ディペンデンシーを整理し、リビルディングするシステム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018106760A JP2018106760A (ja) | 2018-07-05 |
JP6604689B2 true JP6604689B2 (ja) | 2019-11-13 |
Family
ID=51419103
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014051611A Active JP6320801B2 (ja) | 2013-03-14 | 2014-03-14 | ディペンデンシーを整理し、リビルディングするシステム及び方法 |
JP2018071397A Active JP6604689B2 (ja) | 2013-03-14 | 2018-04-03 | ディペンデンシーを整理し、リビルディングするシステム及び方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014051611A Active JP6320801B2 (ja) | 2013-03-14 | 2014-03-14 | ディペンデンシーを整理し、リビルディングするシステム及び方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9400653B2 (ja) |
JP (2) | JP6320801B2 (ja) |
KR (1) | KR102010312B1 (ja) |
CN (1) | CN104050215B (ja) |
DE (1) | DE102014103188A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10061584B2 (en) | 2015-09-19 | 2018-08-28 | Microsoft Technology Licensing, Llc | Store nullification in the target field |
US11681531B2 (en) | 2015-09-19 | 2023-06-20 | Microsoft Technology Licensing, Llc | Generation and use of memory access instruction order encodings |
US10031756B2 (en) | 2015-09-19 | 2018-07-24 | Microsoft Technology Licensing, Llc | Multi-nullification |
US10180840B2 (en) * | 2015-09-19 | 2019-01-15 | Microsoft Technology Licensing, Llc | Dynamic generation of null instructions |
US10198263B2 (en) | 2015-09-19 | 2019-02-05 | Microsoft Technology Licensing, Llc | Write nullification |
US10185568B2 (en) | 2016-04-22 | 2019-01-22 | Microsoft Technology Licensing, Llc | Annotation logic for dynamic instruction lookahead distance determination |
US11474821B1 (en) * | 2021-05-12 | 2022-10-18 | International Business Machines Corporation | Processor dependency-aware instruction execution |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6065105A (en) | 1997-01-08 | 2000-05-16 | Intel Corporation | Dependency matrix |
US6334182B2 (en) | 1998-08-18 | 2001-12-25 | Intel Corp | Scheduling operations using a dependency matrix |
US6311266B1 (en) * | 1998-12-23 | 2001-10-30 | Cray Inc. | Instruction look-ahead system and hardware |
US6557095B1 (en) | 1999-12-27 | 2003-04-29 | Intel Corporation | Scheduling operations using a dependency matrix |
DE60005860T2 (de) * | 2000-01-03 | 2004-08-05 | Advanced Micro Devices, Inc., Sunnyvale | Ablaufsteuerung zum ausgeben und wiederausgeben von ketten abhängiger befehle |
US6981129B1 (en) | 2000-11-02 | 2005-12-27 | Intel Corporation | Breaking replay dependency loops in a processor using a rescheduled replay queue |
US6877086B1 (en) | 2000-11-02 | 2005-04-05 | Intel Corporation | Method and apparatus for rescheduling multiple micro-operations in a processor using a replay queue and a counter |
US6950927B1 (en) | 2001-04-13 | 2005-09-27 | The United States Of America As Represented By The Secretary Of The Navy | System and method for instruction-level parallelism in a programmable multiple network processor environment |
JP2007029421A (ja) | 2005-07-27 | 2007-02-08 | Aruze Corp | 遊技機及び遊技システム |
US20070043932A1 (en) | 2005-08-22 | 2007-02-22 | Intel Corporation | Wakeup mechanisms for schedulers |
CN101258469B (zh) | 2005-09-05 | 2010-09-15 | 日本电气株式会社 | 信息处理设备 |
US8291431B2 (en) | 2006-08-29 | 2012-10-16 | Qualcomm Incorporated | Dependent instruction thread scheduling |
US9946547B2 (en) | 2006-09-29 | 2018-04-17 | Arm Finance Overseas Limited | Load/store unit for a processor, and applications thereof |
US7979844B2 (en) * | 2008-10-14 | 2011-07-12 | Edss, Inc. | TICC-paradigm to build formally verified parallel software for multi-core chips |
US8099582B2 (en) | 2009-03-24 | 2012-01-17 | International Business Machines Corporation | Tracking deallocated load instructions using a dependence matrix |
US8959517B2 (en) * | 2009-06-10 | 2015-02-17 | Microsoft Corporation | Cancellation mechanism for cancellable tasks including stolen task and descendent of stolen tasks from the cancellable taskgroup |
US8453146B2 (en) | 2009-12-23 | 2013-05-28 | Intel Corporation | Apportioning a counted value to a task executed on a multi-core processor |
JP5548037B2 (ja) | 2010-06-11 | 2014-07-16 | パナソニック株式会社 | 命令発行制御装置及び方法 |
US20120023314A1 (en) | 2010-07-21 | 2012-01-26 | Crum Matthew M | Paired execution scheduling of dependent micro-operations |
FR2965948A1 (fr) * | 2010-10-07 | 2012-04-13 | Commissariat Energie Atomique | Systeme d'ordonnancement de l'execution de taches cadence par un temps logique vectoriel |
-
2013
- 2013-03-14 US US13/831,434 patent/US9400653B2/en active Active
- 2013-12-20 KR KR1020130160342A patent/KR102010312B1/ko active IP Right Grant
-
2014
- 2014-03-11 DE DE102014103188.1A patent/DE102014103188A1/de active Pending
- 2014-03-13 CN CN201410091598.XA patent/CN104050215B/zh active Active
- 2014-03-14 JP JP2014051611A patent/JP6320801B2/ja active Active
-
2016
- 2016-07-12 US US15/208,602 patent/US10552157B2/en not_active Expired - Fee Related
-
2018
- 2018-04-03 JP JP2018071397A patent/JP6604689B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
DE102014103188A1 (de) | 2014-09-18 |
JP2018106760A (ja) | 2018-07-05 |
JP6320801B2 (ja) | 2018-05-09 |
US9400653B2 (en) | 2016-07-26 |
CN104050215B (zh) | 2019-04-09 |
US20160321079A1 (en) | 2016-11-03 |
KR102010312B1 (ko) | 2019-08-13 |
US10552157B2 (en) | 2020-02-04 |
CN104050215A (zh) | 2014-09-17 |
US20140281404A1 (en) | 2014-09-18 |
JP2014179101A (ja) | 2014-09-25 |
KR20140113304A (ko) | 2014-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6604689B2 (ja) | ディペンデンシーを整理し、リビルディングするシステム及び方法 | |
TWI644208B (zh) | 藉由對硬體資源之限制實現的向後相容性 | |
TWI654562B (zh) | 藉由演算法匹配、停用特徵或限制效能之回溯相容性 | |
US9639369B2 (en) | Split register file for operands of different sizes | |
US8086826B2 (en) | Dependency tracking for enabling successive processor instructions to issue | |
US20150277925A1 (en) | Data processing apparatus and method for executing a stream of instructions out of order with respect to original program order | |
JP7084379B2 (ja) | ロードストアユニットをバイパスすることによるストア及びロードの追跡 | |
US10678542B2 (en) | Non-shifting reservation station | |
JP6073392B2 (ja) | 命令としてデータ値を評価するシステムおよび方法 | |
US20120204014A1 (en) | Systems and Methods for Improving Divergent Conditional Branches | |
US9344115B2 (en) | Method of compressing and restoring configuration data | |
US20200326940A1 (en) | Data loading and storage instruction processing method and device | |
US20110320780A1 (en) | Hybrid compare and swap/perform locked operation queue algorithm | |
US20190056953A1 (en) | Token-based data dependency protection for memory access | |
US20190196839A1 (en) | System and method for increasing address generation operations per cycle | |
EP3497558B1 (en) | System and method for load and store queue allocations at address generation time | |
US20150178089A1 (en) | Load synchronization with streaming thread cohorts | |
US20120144174A1 (en) | Multiflow method and apparatus for operation fusion | |
US11281466B2 (en) | Register renaming after a non-pickable scheduler queue | |
US10452434B1 (en) | Hierarchical reservation station |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180403 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190121 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190418 |
|
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: 20190917 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191011 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6604689 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |