JP7410126B2 - 命令を実行するためのシステム、方法、および装置 - Google Patents
命令を実行するためのシステム、方法、および装置 Download PDFInfo
- Publication number
- JP7410126B2 JP7410126B2 JP2021507785A JP2021507785A JP7410126B2 JP 7410126 B2 JP7410126 B2 JP 7410126B2 JP 2021507785 A JP2021507785 A JP 2021507785A JP 2021507785 A JP2021507785 A JP 2021507785A JP 7410126 B2 JP7410126 B2 JP 7410126B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- instructions
- instruction
- metadata
- operations
- 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 56
- 230000004888 barrier function Effects 0.000 claims description 28
- 230000004044 response Effects 0.000 claims 1
- 230000001343 mnemonic effect Effects 0.000 description 34
- 230000009471 action Effects 0.000 description 27
- 239000000872 buffer Substances 0.000 description 23
- 238000009826 distribution Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000006854 communication Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006386 memory function Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- -1 memory modules Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect 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/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- 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/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/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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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
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)
- Devices For Executing Special Programs (AREA)
Description
102 メモリ、メモリモジュール
104 インターフェース
106 プロセッサ、プロセッサモジュール
110 第1のモジュール
112(a)…(n) 双方向通信バス
114 周辺/補助モジュール
114(a)…(n) 周辺/補助モジュール
116 バッファ、メモリモジュール、バッファモジュール
118 ロードキュー、メモリモジュール、ロードキューモジュール
120 ストアキュー、メモリモジュール
122 キャッシュメモリ、メモリモジュール
126(a)、(b)…(n) インターフェース、インターフェースまたはバス
130 関連モジュール
130(a) 記憶モジュール
130(b) I/Oモジュール
130(n) 周辺/補助モジュール
200 フローチャート、一連のアクション
300 アルゴリズムまたはフローチャート
400 要素
420 メモリモジュール
422 ロードキューモジュール
424 ストアキューモジュール、ストアキュー、バッファ
522 データキャッシュメモリモジュール、データキャッシュモジュール、データキャッシュ
526 記憶域割当て
528 記憶域割当て
530 記憶域割当て
532 記憶域割当て
534 記憶域割当て
536 記憶域割当て
538 記憶域割当て
540 記憶容量サイズ
552 カラム、レジスタ
552(a)…(n) サブレジスタ
560 幅サイズ
700 フローチャート、一連のアクション
Claims (18)
- メモリから、命令のプログラムシーケンス内の区別を示すバリア命令を含む、実行されることになる命令の前記プログラムシーケンスにアクセスするステップと、
前記バリア命令を識別するステップと、
前記バリア命令を実行するステップと、
前記バリア命令の前にアクセスされる命令の第1のグループと、前記バリア命令の後にアクセスされる命令の第2のグループとの間で区別するステップであって、前記区別することは、前記第1および第2のグループのうちの少なくとも1つの中の命令から生じるメモリ動作がコアレッシングされることを可能にし、異なるグループの中の命令から生じるメモリ動作がコアレッシングされることを防ぐことを含む、ステップと
を含む、方法。 - プロセッサによって、命令の前記第1および第2のグループの中の命令から生じるメモリ動作にメタデータタグを割り当てるステップであって、前記メタデータタグは、第1の値を有する命令の前記第1のグループの中の命令から生じるメモリ動作に割り当てられ、前記メタデータタグは、第2の値を有する命令の前記第2のグループの中の命令から生じるメモリ動作に割り当てられる、ステップをさらに含む、請求項1に記載の方法。
- 前記バリア命令が実行されるとき、前記プロセッサが前記第1の値から前記第2の値に前記メタデータタグを更新することをさらに含む、請求項2に記載の方法。
- 前記メタデータタグがアウトオブオーダメモリ動作を防止しない、請求項2に記載の方法。
- 前記メタデータタグがフェーズカラーを含む、請求項2に記載の方法。
- 前記メタデータタグが、対応する命令のグループがアクセスされた順序を示すオーダリングタグを含む、請求項2に記載の方法。
- 前記バリア命令を実行したことに応答して、後続の動作が異なるメタデータタグを有するように、前記メタデータタグをリネームするステップと、
前記メタデータタグに基づいてメモリ動作をコアレッシングするステップと
をさらに含む、請求項2に記載の方法。 - 前記メタデータタグが整数を含む、請求項2に記載の方法。
- 1つまたは複数の命令にアクセスすることが、インターフェースを介して命令を受け取ることを含む、請求項1に記載の方法。
- 1つまたは複数の後続の命令または動作から生じるメモリ命令に関連付けられたメタデータタグを修正するステップをさらに含む、請求項2に記載の方法。
- 先行するバリア命令が実行された後で、メタデータタグを有する1つまたは複数のメモリ動作を実行するステップと、
前記バリア命令を実行する前に、前記1つまたは複数のメモリ動作をコアレッシングするステップと
をさらに含む、請求項1に記載の方法。 - メモリ動作の実行の順序が前記バリア命令とは無関係である、請求項1に記載の方法。
- 一致するメタデータタグに基づいてメモリ動作をコアレッシングするステップをさらに含む、請求項2に記載の方法。
- 1つまたは複数の命令の第1のグループを受け取るステップと、
メモリアクセスを区別する第1の命令を受け取るステップと、
1つまたは複数の命令の第2のグループを受け取るステップと、
命令の前記第1のグループの中の命令から生じるメモリ動作に第1のメタデータ値を関連付けるステップであって、前記第1のメタデータ値がカウンタ値に基づく、ステップと、
前記カウンタ値をインクリメントすることによって、前記第1の命令を実行するステップと、
命令の前記第2のグループの中の命令から生じるメモリ動作に第2のメタデータ値を関連付けるステップであって、前記第2のメタデータ値が前記インクリメントされたカウンタ値に基づく、ステップと、
第1のメモリ動作および第2のメモリ動作のメタデータ値を比較して、
前記第1のメモリ動作のメタデータ値が前記第2のメモリ動作のメタデータ値と一致するとき、一致するメタデータ値を有する前記第1および第2のメモリ動作をコアレッシングし、
前記第1のメモリ動作のメタデータ値が前記第2のメモリ動作のメタデータ値とは異なるとき、一致しないメタデータ値を有する第1および第2のメモリ動作のコアレッシングを防ぐステップとを含む、方法。 - 命令の前記第1または第2のグループのうちの命令をデコードステージにおいてデコードするステップと、
前記デコードステージの直後のメモリ動作にメタデータ値を付与するステップと
をさらに含む、請求項14に記載の方法。 - 前記第1の命令が、他の命令のオーダリングを強制しない、請求項14に記載の方法。
- 前記第1の命令の前の命令から生じるメモリ動作が前記第1の命令の後の命令から生じるメモリ動作とコアレッシングされないように、前記第1の命令が、前記第1の命令の前のメモリアクセスおよび前記第1の命令の後のメモリアクセスを制御する、請求項14に記載の方法。
- 装置であって、
メモリと、
前記メモリに結合されたプロセッサと
を備え、前記プロセッサが、
前記メモリから、実行されることになる命令のプログラムシーケンスにアクセスするように構成され、前記命令は、命令の前記プログラムシーケンス内の区別を示すバリア命令を含み、前記プロセッサが、
前記バリア命令を識別し、
前記バリア命令を実行し、
前記バリア命令の実行に基づいて、1つまたは複数の第2の命令の第2のグループに対する1つまたは複数の第1の命令の第1のグループを区別するように構成され、前記第1のグループが前記第2のグループとは区別され、前記区別することは、前記第1および第2のグループのうちの少なくとも1つの中の命令から生じるメモリ動作がコアレッシングされることを可能にし、異なるグループの中の命令から生じるメモリ動作がコアレッシングされることを防ぐことを含む、装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/103,995 | 2018-08-16 | ||
US16/103,995 US11409530B2 (en) | 2018-08-16 | 2018-08-16 | System, method and apparatus for executing instructions |
PCT/GB2019/052205 WO2020035659A1 (en) | 2018-08-16 | 2019-08-06 | System, method and apparatus for executing instructions |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021535471A JP2021535471A (ja) | 2021-12-16 |
JP7410126B2 true JP7410126B2 (ja) | 2024-01-09 |
Family
ID=67659899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021507785A Active JP7410126B2 (ja) | 2018-08-16 | 2019-08-06 | 命令を実行するためのシステム、方法、および装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11409530B2 (ja) |
EP (1) | EP3837600A1 (ja) |
JP (1) | JP7410126B2 (ja) |
KR (1) | KR20210033501A (ja) |
CN (1) | CN112567340A (ja) |
IL (1) | IL280585A (ja) |
WO (1) | WO2020035659A1 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001117772A (ja) | 1999-10-14 | 2001-04-27 | Hewlett Packard Co <Hp> | コンピュータ・プログラムのハザードを検出するシステム |
JP2001229024A (ja) | 2000-01-06 | 2001-08-24 | Internatl Business Mach Corp <Ibm> | 基本キャッシュ・ブロックを利用したマイクロプロセッサ |
JP2002510079A (ja) | 1998-01-23 | 2002-04-02 | サン・マイクロシステムズ・インコーポレーテッド | メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置 |
JP2005332387A (ja) | 2004-05-04 | 2005-12-02 | Sun Microsyst Inc | メモリ命令をグループ化及び管理する方法及びシステム |
US20140089589A1 (en) | 2012-09-27 | 2014-03-27 | Apple Inc. | Barrier colors |
JP2014063385A (ja) | 2012-09-21 | 2014-04-10 | Fujitsu Ltd | 演算処理装置及び演算処理装置の制御方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3205406B2 (ja) * | 1992-11-10 | 2001-09-04 | 富士通株式会社 | 参照対象変数決定処理方法および翻訳処理システム |
US6813704B1 (en) * | 2001-12-20 | 2004-11-02 | Lsi Logic Corporation | Changing instruction order by reassigning only tags in order tag field in instruction queue |
JP2008027341A (ja) * | 2006-07-25 | 2008-02-07 | Matsushita Electric Ind Co Ltd | 命令セットおよび情報処理装置 |
US7793080B2 (en) * | 2007-12-31 | 2010-09-07 | Globalfoundries Inc. | Processing pipeline having parallel dispatch and method thereof |
US8997103B2 (en) * | 2009-09-25 | 2015-03-31 | Nvidia Corporation | N-way memory barrier operation coalescing |
US20120216020A1 (en) * | 2011-02-21 | 2012-08-23 | Olson Christopher H | Instruction support for performing stream cipher |
US10255075B2 (en) * | 2013-07-18 | 2019-04-09 | Nvidia Corporation | System, method, and computer program product for managing out-of-order execution of program instructions |
US9292337B2 (en) * | 2013-12-12 | 2016-03-22 | International Business Machines Corporation | Software enabled and disabled coalescing of memory transactions |
GB2522990B (en) * | 2013-12-20 | 2016-08-03 | Imagination Tech Ltd | Processor with virtualized instruction set architecture and methods |
US9898292B2 (en) * | 2015-02-25 | 2018-02-20 | Mireplica Technology, Llc | Hardware instruction generation unit for specialized processors |
US10671393B2 (en) | 2015-04-24 | 2020-06-02 | International Business Machines Corporation | Techniques for facilitating cracking and fusion within a same instruction group |
US20180069767A1 (en) * | 2016-09-06 | 2018-03-08 | Advanced Micro Devices, Inc. | Preserving quality of service constraints in heterogeneous processing systems |
-
2018
- 2018-08-16 US US16/103,995 patent/US11409530B2/en active Active
-
2019
- 2019-08-06 WO PCT/GB2019/052205 patent/WO2020035659A1/en unknown
- 2019-08-06 EP EP19753431.6A patent/EP3837600A1/en active Pending
- 2019-08-06 KR KR1020217004676A patent/KR20210033501A/ko not_active Application Discontinuation
- 2019-08-06 JP JP2021507785A patent/JP7410126B2/ja active Active
- 2019-08-06 CN CN201980053058.3A patent/CN112567340A/zh active Pending
-
2021
- 2021-02-02 IL IL280585A patent/IL280585A/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002510079A (ja) | 1998-01-23 | 2002-04-02 | サン・マイクロシステムズ・インコーポレーテッド | メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置 |
JP2001117772A (ja) | 1999-10-14 | 2001-04-27 | Hewlett Packard Co <Hp> | コンピュータ・プログラムのハザードを検出するシステム |
JP2001229024A (ja) | 2000-01-06 | 2001-08-24 | Internatl Business Mach Corp <Ibm> | 基本キャッシュ・ブロックを利用したマイクロプロセッサ |
JP2005332387A (ja) | 2004-05-04 | 2005-12-02 | Sun Microsyst Inc | メモリ命令をグループ化及び管理する方法及びシステム |
JP2014063385A (ja) | 2012-09-21 | 2014-04-10 | Fujitsu Ltd | 演算処理装置及び演算処理装置の制御方法 |
US20140089589A1 (en) | 2012-09-27 | 2014-03-27 | Apple Inc. | Barrier colors |
Also Published As
Publication number | Publication date |
---|---|
CN112567340A (zh) | 2021-03-26 |
EP3837600A1 (en) | 2021-06-23 |
US11409530B2 (en) | 2022-08-09 |
JP2021535471A (ja) | 2021-12-16 |
WO2020035659A1 (en) | 2020-02-20 |
US20200057640A1 (en) | 2020-02-20 |
KR20210033501A (ko) | 2021-03-26 |
IL280585A (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10467010B2 (en) | Method and apparatus for nearest potential store tagging | |
KR102584035B1 (ko) | 스플라이스 동작을 수행하는 장치 및 방법 | |
US9135005B2 (en) | History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties | |
US9626189B2 (en) | Reducing operand store compare penalties | |
US20120060016A1 (en) | Vector Loads from Scattered Memory Locations | |
US20120060015A1 (en) | Vector Loads with Multiple Vector Elements from a Same Cache Line in a Scattered Load Operation | |
US20140304492A1 (en) | Method and apparatus to increase the speed of the load access and data return speed path using early lower address bits | |
DE102014119281A1 (de) | Prozessor mit virtualisierter befehlssatzstruktur & verfahren | |
WO2015153121A1 (en) | A data processing apparatus and method for executing a stream of instructions out of order with respect to original program order | |
US10970079B2 (en) | Parallel dispatching of multi-operation instructions in a multi-slice computer processor | |
US10209757B2 (en) | Reducing power consumption in a multi-slice computer processor | |
TW201741867A (zh) | 記憶體複製指令、處理器、方法及系統 | |
CN102890624B (zh) | 用于管理无序毫码控制操作的方法和系统 | |
CN105468336A (zh) | 用以改善在处理器中重新执行加载的装置与方法 | |
JP7410126B2 (ja) | 命令を実行するためのシステム、方法、および装置 | |
TWI258665B (en) | Prefetch with intent to store mechanism for block memory | |
EP3871081B1 (en) | Register renaming-based techniques for block-based processors | |
US20170168834A1 (en) | Operation of a multi-slice processor with selective producer instruction types | |
US9959122B2 (en) | Single cycle instruction pipeline scheduling | |
CN105573714A (zh) | 用以改善在处理器中重新执行加载的装置与方法 | |
US20050066151A1 (en) | Method and apparatus for handling predicated instructions in an out-of-order processor | |
CN105573784A (zh) | 用以改善在处理器中重新执行加载的装置与方法 | |
US10552156B2 (en) | Processing operation issue control | |
KR20230129517A (ko) | 메모리 카피 크기 결정 명령어 및 데이터 전송 명령어 | |
CN105511842A (zh) | 用以改善在处理器中重新执行加载的装置与方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210416 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220525 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230619 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230816 |
|
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: 20231127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231221 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7410126 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |