JP2021535471A - 命令を実行するためのシステム、方法、および装置 - Google Patents
命令を実行するためのシステム、方法、および装置 Download PDFInfo
- Publication number
- JP2021535471A JP2021535471A JP2021507785A JP2021507785A JP2021535471A JP 2021535471 A JP2021535471 A JP 2021535471A JP 2021507785 A JP2021507785 A JP 2021507785A JP 2021507785 A JP2021507785 A JP 2021507785A JP 2021535471 A JP2021535471 A JP 2021535471A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- instruction
- metadata
- actions
- instructions
- 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 abstract description 57
- 230000009471 action Effects 0.000 claims abstract description 80
- 230000001343 mnemonic effect Effects 0.000 claims abstract description 53
- 238000009826 distribution Methods 0.000 claims abstract description 17
- 230000006399 behavior Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 abstract description 11
- 239000000872 buffer Substances 0.000 description 23
- 230000004888 barrier function Effects 0.000 description 15
- 230000008859 change Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 230000006386 memory function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003542 behavioural effect 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
- 238000004883 computer application Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- -1 memory module Substances 0.000 description 1
- 230000000644 propagated effect Effects 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
- 230000000153 supplemental effect Effects 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
-
- 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/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/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)
Abstract
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 (19)
- メモリから、実行されることになる動作のプログラムシーケンスにアクセスするステップと、
1つまたは複数の命令にアクセスするステップであって、前記1つまたは複数の命令のうちのいくつかが、関連付けられたニーモニックを有する、ステップと、
前記動作のプログラムシーケンス内の区別を示すニーモニックを有する1つまたは複数の命令を識別するステップと、
前記1つまたは複数の識別された命令を実行するステップと、
前記メモリによる動作の分布を区別するステップであって、前記分布が、1つまたは複数の第2の動作に対する1つまたは複数の第1の動作の第1のグループを示す、前記ニーモニックの存在に基づき、前記第1のグループが前記1つまたは複数の第2の動作とは区別される、ステップと
を含む、方法。 - 前記ニーモニックに基づいて、選択された動作にメタデータタグを割り当てるステップをさらに含む、請求項1に記載の方法。
- 前記メタデータタグが前記動作のシーケンスを決定する、請求項2に記載の方法。
- 前記メタデータタグが前記動作の分布の区別を示す、請求項2または3に記載の方法。
- 前記メタデータタグがフェーズカラーを含む、請求項2から4のいずれか一項に記載の方法。
- 前記メタデータタグがオーダリングタグを含む、請求項2から5のいずれか一項に記載の方法。
- 後続の動作が異なるメタデータタグを有するように前記ニーモニックをリネームするステップと、
前記メタデータタグに基づいて動作をコアレッシングするステップと
をさらに含む、請求項1から6のいずれか一項に記載の方法。 - 前記ニーモニックが整数を含む、請求項1から7のいずれか一項に記載の方法。
- 前記1つまたは複数の命令を受け取るステップが、インターフェースを介して命令を受け取るステップを含む、請求項1から8のいずれか一項に記載の方法。
- 1つまたは複数の後続の命令または動作に関連付けられたニーモニックを修正するステップをさらに含む、請求項1から9のいずれか一項に記載の方法。
- 先行する命令が実行された後で、ニーモニックを有する1つまたは複数の動作を実行するステップと、
ニーモニックを有する命令を実行する前に、1つまたは複数の動作をコアレッシングするステップと
をさらに含む、請求項1から10のいずれか一項に記載の方法。 - 選択された動作が前記ニーモニックとは無関係に実行される、請求項1から11のいずれか一項に記載の方法。
- 一致するニーモニックに基づいてメモリ動作をコアレッシングするステップをさらに含む、請求項1から12のいずれか一項に記載の方法。
- ニーモニックとは無関係に、識別された命令に基づいて動作をコアレッシングするステップをさらに含む、請求項1から12のいずれか一項に記載の方法。
- メモリアクセスを区別する第1の命令を受け取るステップと、
入って来るアドレスにアクセスする第2の命令を受け取るステップと、
前記第1の命令に第1のメタデータ値を関連付けるステップと、
前記第1のメタデータ値を各メモリ動作に割り当てることによって、前記第1の命令を実行するステップと、
後続のメモリ動作が第2のメタデータ値に割り当てられるように、カウンタをインクリメントするステップと、
前記第2のメタデータ値を次のデコードステージに付与するステップと、
前記第1のメタデータ値を前記第2のメタデータ値と比較して、
前記第1のメタデータ値が前記第2のメタデータ値と一致するとき、一致するメタデータ値を有する関連付けられた動作をグループ化し、
前記第1のメタデータ値が前記第2のメタデータ値とは異なるとき、一致しないメタデータ値を有する関連付けられた動作をグループ化する
ステップとを含む、方法。 - 前記第2の命令が、適合するメタデータを有するメモリ動作へのアクセスを提供する、請求項15に記載の方法。
- 前記第1の命令に、実行とは無関係であるが他の命令のグループ化に応じて、実行された状態が割り当てられる、請求項15または16に記載の方法。
- 前記第1の命令が、前記第1の命令の前のメモリアクセスおよび前記第1の命令の後のメモリアクセスを制御する、請求項15から17のいずれか一項に記載の方法。
- メモリと、
前記メモリに結合され、前記メモリ内に格納された命令を実行するプロセッサと
を備え、前記命令が、
前記メモリから、実行されることになる動作のプログラムシーケンスにアクセスすることと、
1つまたは複数の命令にアクセスすることとを含み、前記1つまたは複数の命令のうちのいくつかが、関連付けられたニーモニックを有し、前記命令が、
前記動作のプログラムシーケンス内の区別を示すニーモニックを有する1つまたは複数の命令を識別することと、
前記1つまたは複数の識別された命令を実行することと、
前記メモリによる動作の分布を区別することとを含み、前記分布が、1つまたは複数の第2の動作に対する1つまたは複数の第1の動作の第1のグループを示す、前記ニーモニックの存在に基づき、前記第1のグループが前記1つまたは複数の第2の動作とは区別される、装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/103,995 US11409530B2 (en) | 2018-08-16 | 2018-08-16 | System, method and apparatus for executing instructions |
US16/103,995 | 2018-08-16 | ||
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 true JP2021535471A (ja) | 2021-12-16 |
JP7410126B2 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 |
---|---|---|---|---|
US6038646A (en) * | 1998-01-23 | 2000-03-14 | Sun Microsystems, Inc. | Method and apparatus for enforcing ordered execution of reads and writes across a memory interface |
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 | メモリ命令をグループ化及び管理する方法及びシステム |
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 EP EP19753431.6A patent/EP3837600A1/en active Pending
- 2019-08-06 KR KR1020217004676A patent/KR20210033501A/ko not_active Application Discontinuation
- 2019-08-06 WO PCT/GB2019/052205 patent/WO2020035659A1/en unknown
- 2019-08-06 CN CN201980053058.3A patent/CN112567340A/zh active Pending
- 2019-08-06 JP JP2021507785A patent/JP7410126B2/ja active Active
-
2021
- 2021-02-02 IL IL280585A patent/IL280585A/en unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6038646A (en) * | 1998-01-23 | 2000-03-14 | Sun Microsystems, Inc. | Method and apparatus for enforcing ordered execution of reads and writes across a memory interface |
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 |
---|---|
WO2020035659A1 (en) | 2020-02-20 |
US11409530B2 (en) | 2022-08-09 |
US20200057640A1 (en) | 2020-02-20 |
CN112567340A (zh) | 2021-03-26 |
EP3837600A1 (en) | 2021-06-23 |
KR20210033501A (ko) | 2021-03-26 |
IL280585A (en) | 2021-03-25 |
JP7410126B2 (ja) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10515049B1 (en) | Memory circuits and methods for distributed memory hazard detection and error recovery | |
CN108139908B (zh) | 移动前缀指令 | |
US10891240B2 (en) | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator | |
US10467010B2 (en) | Method and apparatus for nearest potential store tagging | |
US11379234B2 (en) | Store-to-load forwarding | |
KR101148495B1 (ko) | 파이프라인 프로세서에서 조건 명령 실행을 촉진시키기 위해 로컬 조건 코드 레지스터를 이용하기 위한 방법 및 장치 | |
KR101761498B1 (ko) | 추론을 지원하는 게스트 반환 주소 스택 에뮬레이션을 위한 방법 및 장치 | |
CN111868702A (zh) | 用于可配置空间加速器中的远程存储器访问的装置、方法和系统 | |
US9135005B2 (en) | History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties | |
US20120060016A1 (en) | Vector Loads from Scattered Memory Locations | |
TWI411957B (zh) | 亂序執行微處理器、微處理器及其相關之提升效能之方法及執行方法 | |
TWI733760B (zh) | 記憶體複製指令、處理器、方法及系統 | |
US20130339670A1 (en) | Reducing operand store compare penalties | |
US10970079B2 (en) | Parallel dispatching of multi-operation instructions in a multi-slice computer processor | |
US20180088653A1 (en) | Reducing power consumption in a multi-slice computer processor | |
CN104035895A (zh) | 用于存储器操作绑定的装置和方法 | |
CN102890624B (zh) | 用于管理无序毫码控制操作的方法和系统 | |
US10067763B2 (en) | Handling unaligned load operations in a multi-slice computer processor | |
EP3871081B1 (en) | Register renaming-based techniques for block-based processors | |
US20170168834A1 (en) | Operation of a multi-slice processor with selective producer instruction types | |
JP7410126B2 (ja) | 命令を実行するためのシステム、方法、および装置 | |
US20110320780A1 (en) | Hybrid compare and swap/perform locked operation queue algorithm | |
US9959122B2 (en) | Single cycle instruction pipeline scheduling | |
US10552156B2 (en) | Processing operation issue control | |
KR20230129517A (ko) | 메모리 카피 크기 결정 명령어 및 데이터 전송 명령어 |
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 |