JP2022542630A - データ構造放棄 - Google Patents
データ構造放棄 Download PDFInfo
- Publication number
- JP2022542630A JP2022542630A JP2021555375A JP2021555375A JP2022542630A JP 2022542630 A JP2022542630 A JP 2022542630A JP 2021555375 A JP2021555375 A JP 2021555375A JP 2021555375 A JP2021555375 A JP 2021555375A JP 2022542630 A JP2022542630 A JP 2022542630A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- data processing
- register
- circuit
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 40
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims description 26
- 239000011159 matrix material Substances 0.000 claims description 24
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer 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
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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, 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, 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, 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
-
- 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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Abstract
Description
MATMUL MC1,MAP^,MBQ
に対応する。
Claims (18)
- データを記憶する複数の記憶回路と、
命令に応じて前記記憶回路を使用して1つ以上の演算を実行する実行回路と、を備え、
前記命令は、放棄命令を含み、
前記実行回路は、前記複数の記憶回路のうちの少なくとも1つが使用されていない記憶回路であることを示すことによって、前記放棄命令に応答するように適合されており、
前記実行回路は、前記放棄命令を実行した後の前記使用されていない記憶回路に基づいて将来の命令の実行に影響を及ぼすように適合されている、
データ処理装置。 - コンテキストスイッチに応じて前記記憶回路のセットを退避するコンテキスト退避回路を備え、
前記将来の命令は、前記コンテキストスイッチを実行する1つ以上のコンテキストスイッチ命令を含む、
請求項1に記載のデータ処理装置。 - 前記コンテキスト退避回路が、前記使用されていない記憶回路を退避することを禁止するように適合されている、
請求項2に記載のデータ処理装置。 - 前記コンテキスト退避回路が、前記使用されていない記憶回路以外の前記複数の記憶回路を退避するように適合されている、
請求項2に記載のデータ処理装置。 - 前記コンテキスト退避回路が、前記使用されていない記憶回路、又は使用されていないもの以外の前記記憶回路のいずれかのアイデンティティを退避するように適合されている、
請求項2に記載のデータ処理装置。 - 前記命令をストリーム順序で受信し、かつ前記命令を前記ストリーム順序以外の変更された順序で前記実行回路に発行する、発行回路を備える、
請求項1に記載のデータ処理装置。 - 前記ストリーム順序が、前記放棄命令、続いて分岐命令、続いてプロデューサ命令であり、
前記分岐命令は、実行されるものとして予測され、
前記プロデューサ命令は、前記使用されていない記憶回路に第2のデータ値を記憶し、
前記変更された順序は、前記分岐命令が完了する前に前記プロデューサ命令を発行させる、
請求項6に記載のデータ処理装置。 - 前記コンシューマ命令が、複数のプロセッササイクルにわたって実行される、
請求項7に記載のデータ処理装置。 - 前記コンシューマ命令が、行列演算命令である、
請求項7に記載のデータ処理装置。 - 前記複数の記憶回路のそれぞれが、同時にアドレス指定可能である、
請求項1に記載のデータ処理装置。 - 前記複数の記憶回路のそれぞれが、複数のデータ値を記憶するように適合されている、
請求項1に記載のデータ処理装置。 - 前記複数の記憶回路のそれぞれが、少なくとも1KiBの容量を有する、
請求項1に記載のデータ処理装置。 - 前記実行回路が、前記1つ以上の演算のうちの少なくともいくつかを実行することによって前記放棄命令に応答し、かつ前記複数の記憶回路のうちの前記1つを前記使用されていない記憶回路として示すように適合されている、
請求項1に記載のデータ処理装置。 - 前記命令のうちの少なくともいくつかは、前記命令が前記放棄命令であるかどうかを示すフィールドを含む、
請求項1に記載のデータ処理装置。 - 前記使用されていない記憶回路を含む1つ以上の使用されていない記憶回路を識別するトラック回路
を備える、請求項1に記載のデータ処理装置。 - 前記記憶回路がレジスタであり、
前記使用されていない記憶回路が、前記レジスタ内の使用されていないレジスタである、
請求項1に記載のデータ処理装置。 - 複数の記憶回路内にデータを記憶することと、
放棄命令を含む命令に応じて、前記記憶回路を使用して1つ以上の演算を実行することと、
前記放棄命令に応じて、前記複数の記憶回路のうちの少なくとも1つが使用されていない記憶回路であることを示すことと、
前記放棄命令を実行した後の前記使用されていない記憶回路に基づいて将来の命令の実行に影響を及ぼすことと、
を含む、方法。 - 複数の記憶回路内にデータを記憶する手段と、
放棄命令を含む命令に応じて、前記記憶回路を使用して1つ以上の演算を実行する手段と、
前記放棄命令に応じて、前記複数の記憶回路のうちの少なくとも1つが使用されていない記憶回路であることを示す手段と、
前記放棄命令を実行した後の前記使用されていない記憶回路に基づいて将来の命令の実行に影響を及ぼす手段と、
を備える、データ処理装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/531,206 | 2019-08-05 | ||
US16/531,206 US11269634B2 (en) | 2019-08-05 | 2019-08-05 | Data structure relinquishing |
PCT/GB2020/050800 WO2021023956A1 (en) | 2019-08-05 | 2020-03-25 | Data structure relinquishing |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022542630A true JP2022542630A (ja) | 2022-10-06 |
Family
ID=70166059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021555375A Pending JP2022542630A (ja) | 2019-08-05 | 2020-03-25 | データ構造放棄 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11269634B2 (ja) |
EP (1) | EP3912028A1 (ja) |
JP (1) | JP2022542630A (ja) |
KR (1) | KR20220057482A (ja) |
CN (1) | CN113544639A (ja) |
IL (1) | IL285926B1 (ja) |
WO (1) | WO2021023956A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220414270A1 (en) * | 2021-06-24 | 2022-12-29 | International Business Machines Corporation | Encrypted data processing design including cleartext register files |
US11868275B2 (en) | 2021-06-24 | 2024-01-09 | International Business Machines Corporation | Encrypted data processing design including local buffers |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6101597A (en) * | 1993-12-30 | 2000-08-08 | Intel Corporation | Method and apparatus for maximum throughput scheduling of dependent operations in a pipelined processor |
US5553256A (en) * | 1994-02-28 | 1996-09-03 | Intel Corporation | Apparatus for pipeline streamlining where resources are immediate or certainly retired |
US6314511B2 (en) | 1997-04-03 | 2001-11-06 | University Of Washington | Mechanism for freeing registers on processors that perform dynamic out-of-order execution of instructions using renaming registers |
US10078515B2 (en) * | 2011-10-03 | 2018-09-18 | International Business Machines Corporation | Tracking operand liveness information in a computer system and performing function based on the liveness information |
US9182986B2 (en) * | 2012-12-29 | 2015-11-10 | Intel Corporation | Copy-on-write buffer for restoring program code from a speculative region to a non-speculative region |
US20190220417A1 (en) * | 2018-01-18 | 2019-07-18 | Apple Inc. | Context Switch Optimization |
-
2019
- 2019-08-05 US US16/531,206 patent/US11269634B2/en active Active
-
2020
- 2020-03-25 WO PCT/GB2020/050800 patent/WO2021023956A1/en active Application Filing
- 2020-03-25 CN CN202080019767.2A patent/CN113544639A/zh active Pending
- 2020-03-25 IL IL285926A patent/IL285926B1/en unknown
- 2020-03-25 JP JP2021555375A patent/JP2022542630A/ja active Pending
- 2020-03-25 KR KR1020217029390A patent/KR20220057482A/ko unknown
- 2020-03-25 EP EP20716892.3A patent/EP3912028A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3912028A1 (en) | 2021-11-24 |
TW202107278A (zh) | 2021-02-16 |
CN113544639A (zh) | 2021-10-22 |
US20210042114A1 (en) | 2021-02-11 |
US11269634B2 (en) | 2022-03-08 |
IL285926A (en) | 2021-10-31 |
IL285926B1 (en) | 2024-03-01 |
KR20220057482A (ko) | 2022-05-09 |
WO2021023956A1 (en) | 2021-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1145110B1 (en) | Circuit and method for tagging and invalidating speculatively executed instructions | |
US7711935B2 (en) | Universal branch identifier for invalidation of speculative instructions | |
JP3547482B2 (ja) | 情報処理装置 | |
US8195922B2 (en) | System for dynamically allocating processing time to multiple threads | |
JP3093639B2 (ja) | プロセッサ内の資源割当て追跡方法及びそのシステム | |
US5949995A (en) | Programmable branch prediction system and method for inserting prediction operation which is independent of execution of program code | |
US20080016325A1 (en) | Using windowed register file to checkpoint register state | |
CN106155636B (zh) | 用于寄存器重命名的可用寄存器控制 | |
GB2538764A (en) | Register renaming | |
GB2538766A (en) | Register renaming | |
US6088781A (en) | Stride instruction for fetching data separated by a stride amount | |
KR100242403B1 (ko) | 데이타 처리 시스템의 조건 레지스터 데이타 임시 저장 방법 및 시스템 | |
US20040006683A1 (en) | Register renaming for dynamic multi-threading | |
JP2022542630A (ja) | データ構造放棄 | |
US7162620B2 (en) | Methods and apparatus for multi-processing execution of computer instructions | |
JPH09152973A (ja) | カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置 | |
US5943494A (en) | Method and system for processing multiple branch instructions that write to count and link registers | |
US10963260B2 (en) | Branch predictor | |
TWI836108B (zh) | 資料結構放棄 | |
EP3433724B1 (en) | Processing vector instructions | |
US11663014B2 (en) | Speculatively executing instructions that follow a status updating instruction | |
JP3015565B2 (ja) | 複数命令の並列実行機能を持つ情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20211022 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220111 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230317 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231025 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240222 |