JP6320801B2 - ディペンデンシーを整理し、リビルディングするシステム及び方法 - Google Patents
ディペンデンシーを整理し、リビルディングするシステム及び方法 Download PDFInfo
- Publication number
- JP6320801B2 JP6320801B2 JP2014051611A JP2014051611A JP6320801B2 JP 6320801 B2 JP6320801 B2 JP 6320801B2 JP 2014051611 A JP2014051611 A JP 2014051611A JP 2014051611 A JP2014051611 A JP 2014051611A JP 6320801 B2 JP6320801 B2 JP 6320801B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- counter
- data processing
- value
- entries
- 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 103
- 239000013598 vector Substances 0.000 claims description 84
- 230000015654 memory Effects 0.000 claims description 71
- 230000004044 response Effects 0.000 claims description 47
- 238000003672 processing method Methods 0.000 claims description 12
- 230000001131 transforming effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 19
- 230000003247 decreasing effect Effects 0.000 description 13
- 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
- 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 (21)
- 第2エントリを選択することに応答して第1エントリと連関されたカウンターの値を変換する段階と、
前記カウンターの値を閾値と比較する段階と、
前記カウンターの値と前記閾値との比較に応答して前記第1エントリが選択される準備ができていることを示す段階と、
前記第2エントリを取り消すことに応答して前記カウンターの値を変換する段階と
を含み、
前記第1エントリは、前記第2エントリに従属的である、データ処理システムのデータ処理方法。 - 前記カウンターの値を変換する段階は、前記カウンターの値を減少させることを含む請求項1に記載のデータ処理システムのデータ処理方法。
- 前記閾値は、‘0’である請求項1に記載のデータ処理システムのデータ処理方法。
- 前記カウンターの値を前記第1エントリが依存する目的地の数にセットする段階をさらに含む請求項1に記載のデータ処理システムのデータ処理方法。
- 前記第1エントリの従属ベクトルに応答して前記カウンターをロードする段階をさらに含む請求項1に記載のデータ処理システムのデータ処理方法。
- 前記第1エントリの前記従属ベクトルに応答して前記カウンターをロードする段階は、
前記従属ベクトルのビットに対する論理和演算を実行する段階と、
前記従属ベクトルのビットに対する排他的論理和演算を実行する段階と、
前記論理和演算と前記排他的論理和演算の結果に応答して前記カウンターをロードする段階と、を含む請求項5に記載のデータ処理システムのデータ処理方法。 - 前記第2エントリを取り消すことに応答して前記カウンターの値を変換することは、前記カウンターの値を増加させることを含む請求項1に記載のデータ処理システムのデータ処理方法。
- 前記カウンターは、幅(width)を有し、前記カウンターの幅は、前記第1エントリが依存する目的地の最大数を示すための最小ビットである請求項1に記載のデータ処理システムのデータ処理方法。
- 前記第1エントリが選択される準備ができていることを示す段階は、前記第1エントリと連関された従属ベクトルのエントリを整理せず、前記第1エントリが選択される準備ができていることを示すことを含む請求項1に記載のデータ処理システムのデータ処理方法。
- 複数のエントリを格納し、各エントリは、少なくとも1つのカウンターを含むメモリと、
前記メモリに連結されたコントローラと、を含み、
前記コントローラは、
前記複数のエントリの第2エントリを選択することに応答して前記複数のエントリの第1エントリと連関された前記カウンターの値を変換し、
前記カウンターの値を閾値と比較し、
前記カウンターの値と前記閾値との比較に応答して前記第1エントリが選択される準備ができていることを示し、
前記第2エントリを取り消すことに応答して前記カウンターの値を変換する
ように構成され、
前記第1エントリは、前記第2エントリに従属的である、データ処理装置。 - 前記コントローラは、前記カウンターが減少されるように前記カウンターの値を変換するようにさらに構成される請求項10に記載のデータ処理装置。
- 前記閾値は、‘0’である請求項10に記載のデータ処理装置。
- 前記コントローラは、前記第1エントリが依存する複数のエントリの目的地の数に前記カウンターの値をセットするようにさらに構成される請求項10に記載のデータ処理装置。
- 前記コントローラは、前記第1エントリの従属ベクトルに応答して前記カウンターをロードするようにさらに構成される請求項10に記載のデータ処理装置。
- 前記コントローラは、
前記従属ベクトルのビットに対する論理和演算を実行し、
前記従属ベクトルのビットに対する排他的論理和演算を実行し、
前記論理和演算と前記排他的論理和演算との結果に応答して前記カウンターをロードする
ようにさらに構成される請求項14に記載のデータ処理装置。 - 前記コントローラは、前記第2エントリを取り消すことに応答して前記カウンターの値を増加させるようにさらに構成される請求項10に記載のデータ処理装置。
- 前記カウンターは、幅(width)を有し、前記カウンターの幅は、前記第1エントリが依存する目的地の最大数を示すための最小ビットである請求項10に記載のデータ処理装置。
- 前記コントローラは、前記第1エントリと連関された従属ベクトルのエントリを整理せず、前記第1エントリが選択される準備ができていることを示すようにさらに構成される請求項10に記載のデータ処理装置。
- メモリシステムと、
ユーザーインターフェイスと、
前記メモリシステム及び前記ユーザーインターフェイスに連結されたプロセッサと、を含み、
前記プロセッサは、
各々少なくとも1つのカウンターを含む複数のエントリを格納するメモリと、
前記メモリに連結されたコントローラと、を含み、
前記コントローラは、
前記複数のエントリの第2エントリを選択することに応答して前記複数のエントリの第1エントリと連関された前記カウンターの値を変換し、
前記カウンターの値を閾値と比較し、
前記カウンターの値と前記閾値との比較に応答して前記第1エントリが選択される準備ができていることを示し、
前記第2エントリを取り消すことに応答して前記カウンターの値を変換する
ように構成され、
前記第1エントリは、前記第2エントリに従属的である、データ処理システム。 - 前記従属ベクトルは、前記メモリ内のそれぞれの潜在的なエントリのために1ビットのみを有する請求項14に記載のデータ処理装置。
- 第2の複数のエントリを格納するように構成された第2メモリをさらに備え、
前記コントローラは、前記第2エントリを取り消すことに応答して前記第2エントリを前記第2メモリに移動させるようにさらに構成される、請求項10に記載のデータ処理装置。
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 Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018071397A Division JP6604689B2 (ja) | 2013-03-14 | 2018-04-03 | ディペンデンシーを整理し、リビルディングするシステム及び方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014179101A JP2014179101A (ja) | 2014-09-25 |
JP2014179101A5 JP2014179101A5 (ja) | 2017-03-23 |
JP6320801B2 true JP6320801B2 (ja) | 2018-05-09 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018071397A Active JP6604689B2 (ja) | 2013-03-14 | 2018-04-03 | ディペンデンシーを整理し、リビルディングするシステム及び方法 |
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 |
---|---|---|---|---|
US11681531B2 (en) | 2015-09-19 | 2023-06-20 | Microsoft Technology Licensing, Llc | Generation and use of memory access instruction order encodings |
US10198263B2 (en) | 2015-09-19 | 2019-02-05 | Microsoft Technology Licensing, Llc | Write nullification |
US10061584B2 (en) | 2015-09-19 | 2018-08-28 | Microsoft Technology Licensing, Llc | Store nullification in the target field |
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 |
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 |
KR100747128B1 (ko) | 2000-01-03 | 2007-08-09 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 발행 후에 명령의 비투기적 성질을 발견하고 상기 명령을 재발행하는 스케줄러 |
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 |
JP5018480B2 (ja) | 2005-09-05 | 2012-09-05 | 日本電気株式会社 | 情報処理装置 |
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 |
---|---|
JP2014179101A (ja) | 2014-09-25 |
JP6604689B2 (ja) | 2019-11-13 |
KR102010312B1 (ko) | 2019-08-13 |
JP2018106760A (ja) | 2018-07-05 |
US20160321079A1 (en) | 2016-11-03 |
US20140281404A1 (en) | 2014-09-18 |
DE102014103188A1 (de) | 2014-09-18 |
CN104050215B (zh) | 2019-04-09 |
US10552157B2 (en) | 2020-02-04 |
CN104050215A (zh) | 2014-09-17 |
KR20140113304A (ko) | 2014-09-24 |
US9400653B2 (en) | 2016-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6604689B2 (ja) | ディペンデンシーを整理し、リビルディングするシステム及び方法 | |
TWI644208B (zh) | 藉由對硬體資源之限制實現的向後相容性 | |
TWI654562B (zh) | 藉由演算法匹配、停用特徵或限制效能之回溯相容性 | |
US20150134935A1 (en) | Split Register File for Operands of Different Sizes | |
US8086826B2 (en) | Dependency tracking for enabling successive processor instructions to issue | |
US10459727B2 (en) | Loop code processor optimizations | |
US10678542B2 (en) | Non-shifting reservation station | |
US10592252B2 (en) | Efficient instruction processing for sparse data | |
JP6073392B2 (ja) | 命令としてデータ値を評価するシステムおよび方法 | |
US9344115B2 (en) | Method of compressing and restoring configuration data | |
US20200326940A1 (en) | Data loading and storage instruction processing method and device | |
KR20220065048A (ko) | 대기열 압축 해제 | |
US8452948B2 (en) | Hybrid compare and swap/perform locked operation queue algorithm | |
US11119766B2 (en) | Hardware accelerator with locally stored macros | |
WO2017116927A1 (en) | Zero cache memory system extension | |
US20150178089A1 (en) | Load synchronization with streaming thread cohorts | |
US20190056953A1 (en) | Token-based data dependency protection for memory access | |
EP3497558B1 (en) | System and method for load and store queue allocations at address generation time | |
US20120144174A1 (en) | Multiflow method and apparatus for operation fusion | |
EP4049127A1 (en) | Register renaming after a non-pickable scheduler queue | |
JP4418509B2 (ja) | Javaアクセラレータを備えたプロセッサシステム |
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: 20170214 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180214 |
|
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: 20180305 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180404 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6320801 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 |