JP7513360B2 - マイクロプロセッサにおけるアキュムレータ・レジスタ結果のチェックポイント化 - Google Patents
マイクロプロセッサにおけるアキュムレータ・レジスタ結果のチェックポイント化 Download PDFInfo
- Publication number
- JP7513360B2 JP7513360B2 JP2022533123A JP2022533123A JP7513360B2 JP 7513360 B2 JP7513360 B2 JP 7513360B2 JP 2022533123 A JP2022533123 A JP 2022533123A JP 2022533123 A JP2022533123 A JP 2022533123A JP 7513360 B2 JP7513360 B2 JP 7513360B2
- Authority
- JP
- Japan
- Prior art keywords
- register file
- checkpoint
- accumulator register
- accumulator
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Retry When Errors Occur (AREA)
Description
Claims (19)
- 情報を処理するためのコンピュータ・システムであって、前記コンピュータ・システムは、
命令を処理するための回路及び論理を有する少なくとも1つのプロセッサを含み、前記プロセッサは、
前記少なくとも1つのプロセッサと関連付けられたメイン・レジスタ・ファイルであって、データを格納するための回路及び複数のメイン・レジスタ・ファイル・エントリと、データを前記メイン・レジスタ・ファイル・エントリに書き込むための1つ又は複数の書き込みポートと、データを前記メイン・レジスタ・ファイル・エントリから読み出すための1つ又は複数の読み出しポートとを有する、メイン・レジスタ・ファイルと、
回路及び論理を有し、高密度数学実行ユニットを含む、1つ又は複数の実行ユニットと、
データを格納するための回路及び複数のエントリを有し、前記高密度数学実行ユニットと関連付けられた、少なくとも1つのアキュムレータ・レジスタ・ファイルと
を含み、
前記プロセッサは、前記高密度数学実行ユニット内のデータを処理するように構成され、前記高密度数学実行ユニットの結果は、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの第1のグループに書き込まれ、チェックポイント境界を越えた後、前記高密度数学実行ユニットの結果は、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの第2のグループに書き込まれ、
前記プロセッサは、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの前記第1及び第2のグループから前記メイン・レジスタ・ファイルにデータを書き込むようにさらに構成される、
コンピュータ・システム。 - 前記プロセッサは、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの前記第1のグループに結果を複数回ライトバックするように構成される、請求項1に記載のコンピュータ・システム。
- 前記プロセッサは、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの前記第1及び第2のグループ内のアキュムレータ・レジスタ・ファイル・エントリにマッピングされたメイン・レジスタ・ファイル・エントリにアクセスする命令に応答して、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの前記第1及び第2のグループから複数のメイン・レジスタ・ファイル・エントリにデータを書き込むように構成される、請求項1に記載のコンピュータ・システム。
- 前記高密度数学実行ユニットは、前記メイン・レジスタ・ファイルに書き込む必要なしに、前記アキュムレータ・レジスタ・ファイルに読み書きすることができるように構成された、請求項1に記載のコンピュータ・システム。
- 前記高密度数学実行ユニットは、行列乗算アキュムレータ(MMA)ユニットであり、前記アキュムレータ・レジスタ・ファイルは、前記MMA内に配置される、請求項4に記載のコンピュータ・システム。
- 情報を処理するためのコンピュータ・システムであって、前記コンピュータ・システムは、
命令を処理するための回路及び論理を有する少なくとも1つのプロセッサを含み、前記プロセッサは、
前記少なくとも1つのプロセッサと関連付けられたメイン・レジスタ・ファイルであって、データを格納するための回路及び複数のメイン・レジスタ・ファイル・エントリと、データを前記メイン・レジスタ・ファイル・エントリに書き込むための1つ又は複数の書き込みポートと、データを前記メイン・レジスタ・ファイル・エントリから読み出すための1つ又は複数の読み出しポートとを有する、メイン・レジスタ・ファイルと、
回路及び論理を有し、高密度数学実行ユニットを含む、1つ又は複数の実行ユニットと、
データを格納するための回路及び複数のエントリを有し、前記高密度数学実行ユニットと関連付けられた、少なくとも1つのアキュムレータ・レジスタ・ファイルと
を含み、
前記プロセッサは、前記高密度数学実行ユニット内のデータを処理するように構成され、前記高密度数学実行ユニットの結果は、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの第1のグループに書き込まれ、チェックポイント境界を越えた後、前記高密度数学実行ユニットの結果は、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの第2のグループに書き込まれ、
前記アキュムレータ・レジスタ・ファイルのビット・フィールド幅は、前記メイン・レジスタ・ファイルのビット・フィールド幅よりも広い、コンピュータ・システム。 - 前記アキュムレータ・レジスタ・ファイル内の各エントリは、複数のメイン・レジスタ・ファイル・エントリにマッピングされる、請求項6に記載のコンピュータ・システム。
- 命令をディスパッチするための回路及び論理を有するディスパッチ・ユニットと、
ディスパッチされた命令を追跡するための回路及び論理と、データを格納するための複数のエントリとを有する、命令完了テーブル(ICT)と、
1つ又は複数のメイン・レジスタ・ファイル・エントリを1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリにマッピングするための回路及び論理を有するマッパと
をさらに含み、
前記ディスパッチ・ユニットは、アキュムレータ・レジスタ・ファイル・エントリの前記第2のグループが割り当てられていることを前記マッパに通知し、前記マッパは、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの前記第1のグループをアキュムレータ・レジスタ・ファイル・エントリの前記第2のグループにリネームする、請求項1に記載のコンピュータ・システム。 - 前記プロセッサは、前記アキュムレータ・レジスタ・ファイルをターゲットにする命令に応答して、前記アキュムレータ・レジスタ・ファイルをプライムしてデータを受け取るように構成され、前記アキュムレータ・レジスタ・ファイルをプライムすることに応答して、第1のチェックポイントが作成され、前記ディスパッチ・ユニットが前記第1のチェックポイントに対応する第1のチェックポイント開始iTagを前記ICTに送り、前記第1のチェックポイント開始iTagを格納し、
前記アキュムレータ・レジスタ・ファイルをプライムすることは、前記ターゲットをリネームして前記アキュムレータ・レジスタ・ファイルのエントリにマッピングすることを含む、
請求項8に記載のコンピュータ・システム。 - 前記チェックポイント境界は、前記第1のチェックポイント開始iTag以降にディスパッチされた命令の数「N」に基づいており、前記ディスパッチ・ユニットが前記数「N」の命令をディスパッチした後、前記ディスパッチ・ユニットは、ディスパッチされた命令が、アキュムレータ・レジスタ・ファイル・エントリの前記第2のグループの前記割り当てをトリガすることを検出し、第2のチェックポイントが作成される、請求項9に記載のコンピュータ・システム。
- 前記第2のチェックポイントが作成されることに応答して、前記ディスパッチ・ユニットは、第2のチェックポイント開始iTagを、前記第2のチェックポイントに対応する前記ICTに送り、前記第2のチェックポイント開始iTagを格納する、請求項10に記載のコンピュータ・システム。
- 前記ディスパッチ・ユニットは、現在のチェックポイント開始iTagを追跡し、前記現在のチェックポイント開始iTagより若い全ての命令は、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの前記それぞれのグループと関連付けられた前記チェックポイントに属する、請求項11に記載のコンピュータ・システム。
- 前記ICTは、前記ディスパッチ・ユニットによりディスパッチされた命令の前記数に基づいて、どの命令が前記それぞれのチェックポイントに属するかを判断する、請求項10に記載のコンピュータ・システム。
- 命令をチェックポイント開始iTagとして又はチェックポイントiTagとして識別するために、ICTエントリにおいてコード化が提供される、請求項9に記載のコンピュータ・システム。
- 前記それぞれのチェックポイント内の全ての命令(iTag)が終了するまで、各チェックポイントは完了せず、前記アキュムレータ・レジスタ・ファイル・エントリは再利用のために解放されない、請求項10に記載のコンピュータ・システム。
- 前記ICTは、前記それぞれのチェックポイント内の全ての命令の完了ビットを調べ、前記それぞれのチェックポイント内の全ての前記命令が終了した場合、前記それぞれのチェックポイントは完了し、前記それぞれのチェックポイント・マッピングは、使用のために再割り当てする準備のできたアキュムレータ・レジスタ・ファイル・エントリのフリーリストに解放される、請求項15に記載のコンピュータ・システム。
- 前記第2のチェックポイント内のフラッシュ・オペレーションに応答して、フラッシュiTagを第2のチェックポイント開始iTagと比較し、前記第2のチェックポイントがフラッシュされ、前記第1のチェックポイント及び前記第1のチェックポイントのアキュムレータ・レジスタ・マッピングが復元される、請求項10に記載のコンピュータ・システム。
- 情報を処理するためのプロセッサであって、前記プロセッサは、
前記少なくとも1つのプロセッサと関連付けられたメイン・レジスタ・ファイルであって、データを格納するための回路及び複数のメイン・レジスタ・ファイル・エントリと、データを前記メイン・レジスタ・ファイル・エントリに書き込むための1つ又は複数の書き込みポートと、データを前記メイン・レジスタ・ファイル・エントリから読み出すための1つ又は複数の読み出しポートとを有する、メイン・レジスタ・ファイルと、
回路及び論理を有し、高密度数学実行ユニットを含む、1つ又は複数の実行ユニットと、
データを格納するための回路及び複数のエントリを有し、前記高密度数学実行ユニットと関連付けられた少なくとも1つのアキュムレータ・レジスタ・ファイルであって、アキュムレータ・レジスタ・ファイルのビット・フィールド幅は前記メイン・レジスタ・ファイルのビット・フィールド幅よりも広い、少なくとも1つのアキュムレータ・レジスタ・ファイルと、
命令をディスパッチするための回路及び論理を有するディスパッチ・ユニットと、
ディスパッチされた命令を追跡するための回路及び論理と、データを格納するための複数のエントリとを有する、命令完了テーブル(ICT)と、
1つ又は複数のメイン・レジスタ・ファイル・エントリを1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリにマッピングするための回路及び論理を有するマッパと
を含み、
前記プロセッサは、前記高密度数学実行ユニット内のデータを処理するように構成され、前記高密度数学実行ユニットの結果は、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの第1のグループに複数回書き込まれ、チェックポイント境界を越えた後、前記高密度数学実行ユニットの結果は、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの第2のグループに書き込まれ、
前記プロセッサは、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの前記第1及び第2のグループから前記メイン・レジスタ・ファイル・エントリにデータをライトバックするように構成される、プロセッサ。 - 前記プロセッサは、前記アキュムレータ・レジスタ・ファイルをターゲットにする命令に応答して、前記アキュムレータ・レジスタ・ファイルをプライムしてデータを受け取るように構成され、前記アキュムレータ・レジスタ・ファイルをプライムすることに応答して、第1のチェックポイントが作成され、前記ディスパッチ・ユニットは、前記第1のチェックポイントに対応する第1のチェックポイント開始iTagを前記ICTに送り、前記第1のチェックポイント開始iTagを格納し、さらに、前記チェックポイント境界は、前記第1のチェックポイント開始iTag以降にディスパッチされた命令の前記数「N」に基づいており、前記ディスパッチ・ユニットが前記数「N」の命令をディスパッチした後、前記ディスパッチ・ユニットは、ディスパッチされた命令が、アキュムレータ・レジスタ・ファイル・エントリの前記第2のグループの前記割り当てをいつトリガするかを検出し、第2のチェックポイントが作成され、前記ディスパッチ・ユニットは、アキュムレータ・レジスタ・ファイル・エントリの前記第2のグループに割り当てられることを前記マッパに通知し、前記マッパは、1つ又は複数のアキュムレータ・レジスタ・ファイル・エントリの前記第1のグループをファイル・エントリの前記第2のグループにリネームし、前記第2のチェックポイントが作成されることに応答して、前記ディスパッチ・ユニットは、前記第2のチェックポイントに対応する第2のチェックポイント開始iTagを前記ICTに送り、前記第2のチェックポイント開始iTagを格納し、
前記アキュムレータ・レジスタ・ファイルをプライムすることは、前記ターゲットをリネームして前記アキュムレータ・レジスタ・ファイルのエントリにマッピングすることを含む、
請求項18に記載のプロセッサ。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/705,362 US11119772B2 (en) | 2019-12-06 | 2019-12-06 | Check pointing of accumulator register results in a microprocessor |
| US16/705,362 | 2019-12-06 | ||
| PCT/IB2020/060911 WO2021111230A1 (en) | 2019-12-06 | 2020-11-19 | Check pointing of accumulator register results in a microprocessor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023504652A JP2023504652A (ja) | 2023-02-06 |
| JP7513360B2 true JP7513360B2 (ja) | 2024-07-09 |
Family
ID=76209693
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022533123A Active JP7513360B2 (ja) | 2019-12-06 | 2020-11-19 | マイクロプロセッサにおけるアキュムレータ・レジスタ結果のチェックポイント化 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US11119772B2 (ja) |
| JP (1) | JP7513360B2 (ja) |
| CN (1) | CN114761921B (ja) |
| DE (1) | DE112020005987B4 (ja) |
| GB (1) | GB2604085B (ja) |
| WO (1) | WO2021111230A1 (ja) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11327757B2 (en) * | 2020-05-04 | 2022-05-10 | International Business Machines Corporation | Processor providing intelligent management of values buffered in overlaid architected and non-architected register files |
| US11561794B2 (en) * | 2021-05-26 | 2023-01-24 | International Business Machines Corporation | Evicting and restoring information using a single port of a logical register mapper and history buffer in a microprocessor comprising multiple main register file entries mapped to one accumulator register file entry |
| CN114610394B (zh) * | 2022-03-14 | 2023-12-22 | 海飞科(南京)信息技术有限公司 | 指令调度的方法、处理电路和电子设备 |
| US11941398B1 (en) | 2022-12-05 | 2024-03-26 | International Business Machines Corporation | Fast mapper restore for flush in processor |
| CN120086060B (zh) * | 2024-10-08 | 2026-04-03 | 广州鼎甲计算机科技有限公司 | 文件备份方法、装置、计算机设备和可读存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5644742A (en) | 1995-02-14 | 1997-07-01 | Hal Computer Systems, Inc. | Processor structure and method for a time-out checkpoint |
| JP2002229780A (ja) | 2001-01-30 | 2002-08-16 | Handotai Rikougaku Kenkyu Center:Kk | 大規模データパス・アーキテクチャの実行機構 |
| JP2005025782A (ja) | 1995-02-14 | 2005-01-27 | Fujitsu Ltd | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
| JP2009009570A (ja) | 2007-06-27 | 2009-01-15 | Internatl Business Mach Corp <Ibm> | レジスタ状態エラー回復および再開機構 |
| US20190171448A1 (en) | 2017-12-01 | 2019-06-06 | Advanced Micro Devices, Inc. | Stream processor with low power parallel matrix multiply pipeline |
Family Cites Families (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2970553B2 (ja) * | 1996-08-30 | 1999-11-02 | 日本電気株式会社 | マルチスレッド実行方法 |
| US6434584B1 (en) | 1998-06-04 | 2002-08-13 | Texas Instruments Incorporated | Flexible accumulator register file for use in high performance microprocessors |
| US7234144B2 (en) * | 2002-01-04 | 2007-06-19 | Microsoft Corporation | Methods and system for managing computational resources of a coprocessor in a computing system |
| US20050138323A1 (en) | 2003-12-18 | 2005-06-23 | Intel Corporation, A Delaware Corporation | Accumulator shadow register systems and methods |
| US7797363B2 (en) * | 2004-04-07 | 2010-09-14 | Sandbridge Technologies, Inc. | Processor having parallel vector multiply and reduce operations with sequential semantics |
| US7814374B2 (en) | 2007-01-19 | 2010-10-12 | International Business Machines Corporation | System and method for the capture and preservation of intermediate error state data |
| US20110238962A1 (en) | 2010-03-23 | 2011-09-29 | International Business Machines Corporation | Register Checkpointing for Speculative Modes of Execution in Out-of-Order Processors |
| CN102184127B (zh) * | 2011-05-20 | 2013-11-06 | 北京北大众志微系统科技有限责任公司 | 一种实现处理器预执行的方法及相应的装置 |
| US9430243B2 (en) * | 2012-04-30 | 2016-08-30 | Apple Inc. | Optimizing register initialization operations |
| US10095516B2 (en) | 2012-06-29 | 2018-10-09 | Intel Corporation | Vector multiplication with accumulation in large register space |
| US9361111B2 (en) | 2013-01-09 | 2016-06-07 | Arm Limited | Tracking speculative execution of instructions for a register renaming data store |
| GB2545307B (en) * | 2013-11-29 | 2018-03-07 | Imagination Tech Ltd | A module and method implemented in a multi-threaded out-of-order processor |
| US9575890B2 (en) | 2014-02-27 | 2017-02-21 | International Business Machines Corporation | Supporting atomic accumulation with an addressable accumulator |
| US9841974B2 (en) | 2014-04-25 | 2017-12-12 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Renaming with generation numbers |
| CN106126189B (zh) | 2014-07-02 | 2019-02-15 | 上海兆芯集成电路有限公司 | 微处理器中的方法 |
| US20160026607A1 (en) | 2014-07-25 | 2016-01-28 | Qualcomm Incorporated | Parallelization of scalar operations by vector processors using data-indexed accumulators in vector register files, and related circuits, methods, and computer-readable media |
| US11544214B2 (en) * | 2015-02-02 | 2023-01-03 | Optimum Semiconductor Technologies, Inc. | Monolithic vector processor configured to operate on variable length vectors using a vector length register |
| US9946549B2 (en) | 2015-03-04 | 2018-04-17 | Qualcomm Incorporated | Register renaming in block-based instruction set architecture |
| US11429393B2 (en) * | 2015-11-11 | 2022-08-30 | Arm Limited | Apparatus and method for supporting out-of-order program execution of instructions |
| US10528355B2 (en) | 2015-12-24 | 2020-01-07 | Arm Limited | Handling move instructions via register renaming or writing to a different physical register using control flags |
| US10275243B2 (en) | 2016-07-02 | 2019-04-30 | Intel Corporation | Interruptible and restartable matrix multiplication instructions, processors, methods, and systems |
| US20180203703A1 (en) | 2017-01-13 | 2018-07-19 | Optimum Semiconductor Technologies, Inc. | Implementation of register renaming, call-return prediction and prefetch |
| US10410098B2 (en) | 2017-04-24 | 2019-09-10 | Intel Corporation | Compute optimizations for neural networks |
| GB2563878B (en) * | 2017-06-28 | 2019-11-20 | Advanced Risc Mach Ltd | Register-based matrix multiplication |
| CN111095294A (zh) * | 2017-07-05 | 2020-05-01 | 深视有限公司 | 深度视觉处理器 |
| US10530397B2 (en) * | 2017-07-17 | 2020-01-07 | Texas Instruments Incorporated | Butterfly network on load data return |
| US10380063B2 (en) * | 2017-09-30 | 2019-08-13 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator |
| US10664287B2 (en) * | 2018-03-30 | 2020-05-26 | Intel Corporation | Systems and methods for implementing chained tile operations |
-
2019
- 2019-12-06 US US16/705,362 patent/US11119772B2/en not_active Expired - Fee Related
-
2020
- 2020-11-19 WO PCT/IB2020/060911 patent/WO2021111230A1/en not_active Ceased
- 2020-11-19 CN CN202080082874.XA patent/CN114761921B/zh active Active
- 2020-11-19 JP JP2022533123A patent/JP7513360B2/ja active Active
- 2020-11-19 DE DE112020005987.1T patent/DE112020005987B4/de active Active
- 2020-11-19 GB GB2209153.2A patent/GB2604085B/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5644742A (en) | 1995-02-14 | 1997-07-01 | Hal Computer Systems, Inc. | Processor structure and method for a time-out checkpoint |
| JP2005025782A (ja) | 1995-02-14 | 2005-01-27 | Fujitsu Ltd | 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法 |
| JP2002229780A (ja) | 2001-01-30 | 2002-08-16 | Handotai Rikougaku Kenkyu Center:Kk | 大規模データパス・アーキテクチャの実行機構 |
| JP2009009570A (ja) | 2007-06-27 | 2009-01-15 | Internatl Business Mach Corp <Ibm> | レジスタ状態エラー回復および再開機構 |
| US20190171448A1 (en) | 2017-12-01 | 2019-06-06 | Advanced Micro Devices, Inc. | Stream processor with low power parallel matrix multiply pipeline |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2021111230A1 (en) | 2021-06-10 |
| CN114761921A (zh) | 2022-07-15 |
| US11119772B2 (en) | 2021-09-14 |
| GB202209153D0 (en) | 2022-08-10 |
| DE112020005987T5 (de) | 2022-10-13 |
| GB2604085B (en) | 2022-12-07 |
| GB2604085A (en) | 2022-08-24 |
| DE112020005987B4 (de) | 2025-04-24 |
| US20210173649A1 (en) | 2021-06-10 |
| CN114761921B (zh) | 2024-08-02 |
| JP2023504652A (ja) | 2023-02-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7513360B2 (ja) | マイクロプロセッサにおけるアキュムレータ・レジスタ結果のチェックポイント化 | |
| US11093248B2 (en) | Prefetch queue allocation protection bubble in a processor | |
| US20230367597A1 (en) | Instruction handling for accumulation of register results in a microprocessor | |
| US20070043934A1 (en) | Early misprediction recovery through periodic checkpoints | |
| US11360779B2 (en) | Logical register recovery within a processor | |
| US11392386B2 (en) | Program counter (PC)-relative load and store addressing for fused instructions | |
| US20170109093A1 (en) | Method and apparatus for writing a portion of a register in a microprocessor | |
| US10956158B2 (en) | System and handling of register data in processors | |
| US10877763B2 (en) | Dispatching, allocating, and deallocating instructions with real/virtual and region tags in a queue in a processor | |
| US11188332B2 (en) | System and handling of register data in processors | |
| US10545765B2 (en) | Multi-level history buffer for transaction memory in a microprocessor | |
| US11995445B2 (en) | Assignment of microprocessor register tags at issue time | |
| CN114514505A (zh) | 退役队列压缩 | |
| US10255071B2 (en) | Method and apparatus for managing a speculative transaction in a processing unit | |
| US11561794B2 (en) | Evicting and restoring information using a single port of a logical register mapper and history buffer in a microprocessor comprising multiple main register file entries mapped to one accumulator register file entry | |
| US11157276B2 (en) | Thread-based organization of slice target register file entry in a microprocessor to permit writing scalar or vector data to portions of a single register file entry | |
| US10802830B2 (en) | Imprecise register dependency tracking | |
| US11301254B2 (en) | Instruction streaming using state migration | |
| US20210303311A1 (en) | Intelligent balanced flushing in a processor | |
| US20200019405A1 (en) | Multiple Level History Buffer for Transaction Memory Support |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220609 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230424 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240117 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240213 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240411 |
|
| 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: 20240611 |
|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20240611 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240625 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7513360 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |