JP2022546785A - 迅速かつ広範な結果生成のための隣接simdユニットの再利用 - Google Patents
迅速かつ広範な結果生成のための隣接simdユニットの再利用 Download PDFInfo
- Publication number
- JP2022546785A JP2022546785A JP2022515759A JP2022515759A JP2022546785A JP 2022546785 A JP2022546785 A JP 2022546785A JP 2022515759 A JP2022515759 A JP 2022515759A JP 2022515759 A JP2022515759 A JP 2022515759A JP 2022546785 A JP2022546785 A JP 2022546785A
- Authority
- JP
- Japan
- Prior art keywords
- execution unit
- instruction execution
- instruction
- result
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 51
- 238000000034 method Methods 0.000 claims description 35
- 238000007667 floating Methods 0.000 claims description 23
- 239000013598 vector Substances 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 11
- 230000003190 augmentative effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 17
- 230000000873 masking effect Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003467 diminishing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static 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/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
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string 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/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; 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
- 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; 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/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3875—Pipelining a single stage, e.g. superpipelining
-
- 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/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- 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/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
Abstract
Description
Claims (20)
- 拡張された結果を含む命令を処理するシステムであって、
プロセッサ命令を実行するための第1の結果バスを有する第1の命令実行ユニットと、
前記第1の命令実行ユニットに通信可能に結合されており、プロセッサ命令を実行するための第2の結果バスを有する、第2の命令実行ユニットと
を含み、
前記第1の命令実行ユニットは、前記第2の命令実行ユニットが前記プロセッサ命令の実行に用いられない場合に、プロセッサ命令の実行中に、前記第1の命令実行ユニットにより計算された結果の一部を前記第2の命令実行ユニットに選択的に送信するように構成されており、前記第2の命令実行ユニットは、前記第1の命令実行ユニットにより計算された前記結果の一部を受信するように構成され、前記受信した部分を前記第2の結果バスに載置するように構成されている、
システム。 - 前記システムは、1組の命令実行ユニットをさらに含み、前記結果の異なる部分は、予め定義されたレーン・マスクに基づいて、前記命令実行ユニットのサブセットの異なる命令実行ユニットによって計算される、請求項1に記載のシステム。
- 前記第1の命令実行ユニットおよび前記第2の命令実行ユニットは、単一の命令、多重データ(SIMD)処理ユニットを含み、前記プロセッサ命令はSIMD命令を含む、請求項2に記載のシステム。
-
前記第1の命令実行ユニットおよび前記第2の命令実行ユニットは、マスク・レジスタを含み、前記マスク・レジスタは、前記予め定義されたレーン・マスクを格納するように構成される、請求項3に記載のシステム。 - 前記実行されるプロセッサ命令によって生じる結果データの幅は、前記第1の結果バスの幅よりも大きく、前記第2の結果バスの幅よりも大きい、請求項1に記載のシステム。
- 前記第1の命令実行ユニットは、前記第2の命令実行ユニットに隣接して配置される、請求項1に記載のシステム。
- 前記プロセッサ命令は、ベクトル浮動小数点(FP)ロード延長命令を含む、請求項1に記載のシステム。
- 前記プロセッサ命令は、1つの演算サイクルで実行される、請求項1に記載のシステム。
- 前記第1の命令実行ユニットおよび前記第2の命令実行ユニットは、単一のトランザクション・モデルを採用するように構成される、請求項1に記載のシステム。
- 拡張された結果を含む命令を処理する方法であって、
受信したプロセッサ命令が、第1の命令実行ユニットの第1の結果バスの幅よりも大きくかつ第2の命令実行ユニットの第2の結果バスの幅よりも大きなデータ幅を有する結果を生じるか否かを判定すること、
前記受信したプロセッサ命令が、前記第1の結果バスの幅よりも大きくかつ前記第2の結果バスの幅よりも大きなデータ幅を有する結果を生じるか否かを判定することに応答して、前記受信したプロセッサ命令を実行するために前記第2の命令実行ユニットが利用されないか否かを判定することであって、前記第2の命令実行ユニットが、前記第1の命令実行ユニットに通信可能に結合されている、判定すること、
前記第2の命令実行ユニットが前記プロセッサ命令を実行するために使用されないという判定に応答して、前記第1の命令実行ユニットによって計算された結果の一部が、前記プロセッサ命令の実行中に前記第2の命令実行ユニットの前記第2の結果バスに選択的に送信されること
を含む方法。 - 前記第2の命令実行ユニットが、前記受信したプロセッサ命令を実行するために利用されないか否かを判定することは、前記第2の命令実行ユニットが、予め定義されたレーン・マスクに基づいて、前記受信したプロセッサ命令を実行するために利用されないか否かを判定することをさらに含む、請求項10に記載の方法。
- 前記第1の命令実行ユニットおよび前記第2の命令実行ユニットは、単一の命令、多重データ(SIMD)処理ユニットを含み、前記プロセッサ命令はSIMD命令を含む、請求項11に記載の方法。
- 前記第1の命令実行ユニットおよび前記第2の命令実行ユニットは、マスク・レジスタを含み、前記マスク・レジスタは、前記予め定義されたレーン・マスクを格納するように構成される、請求項12に記載の方法。
-
前記第1の命令実行ユニットは、前記第2の命令実行ユニットに隣接して配置される、請求項10に記載の方法。 - 前記プロセッサ命令は、ベクトル浮動小数点(FP)ロード延長命令を含む、請求項10に記載の方法。
- 前記プロセッサ命令は、1つの演算サイクルで実行される、請求項10に記載の方法。
- 前記第1の命令実行ユニットおよび前記第2の命令実行ユニットは、単一のトランザクション・モデルを採用するように構成される、請求項10に記載の方法。
- 拡張された結果を含む命令を処理するコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、それを以て具現化されたプログラム命令を有するコンピュータ可読記憶媒体を含み、前記プログラム命令は、1つまたは複数のプロセッサに、
受信したプロセッサ命令が第1の命令実行ユニットの第1の結果バスの幅よりも大きくかつ第2の命令実行ユニットの第2の結果バスの幅よりも大きなデータ幅を有する結果を生じるか否かを判定すること、
前記受信したプロセッサ命令が前記第1の結果バスの幅よりも大きくかつ第2の結果バスの幅よりも大きなデータ幅を有する結果を生じるか否かを判定することに応答して、前記受信したプロセッサ命令を実行するために前記第2の命令実行ユニットが利用されないか否かを判定すること、
前記第2の命令実行ユニットが前記プロセッサ命令を実行するために使用されないという判定に応答して、前記第1の命令実行ユニットによって計算された結果の一部が、前記プロセッサ命令の実行中に前記第2の命令実行ユニットの前記第2の結果バスに選択的に送信されること
を含む方法を実行させるように前記1つまたは複数のプロセッサによって実行可能である、コンピュータ・プログラム製品。 - 前記第2の命令実行ユニットが、前記受信したプロセッサ命令を実行するために利用されないか否かを判定することは、前記第2の命令実行ユニットが、予め定義されたレーン・マスクに基づいて、前記受信したプロセッサ命令を実行するために利用されないか否かを判定することをさらに含む、請求項18に記載のコンピュータ・プログラム製品。
- 前記第1の命令実行ユニットおよび前記第2の命令実行ユニットは、単一の命令、多重データ(SIMD)処理ユニットを含み、前記プロセッサ命令はSIMD命令を含む、請求項19に記載のコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/565,946 | 2019-09-10 | ||
US16/565,946 US11269651B2 (en) | 2019-09-10 | 2019-09-10 | Reusing adjacent SIMD unit for fast wide result generation |
PCT/IB2020/057461 WO2021048653A1 (en) | 2019-09-10 | 2020-08-07 | Reusing adjacent simd unit for fast wide result generation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022546785A true JP2022546785A (ja) | 2022-11-08 |
Family
ID=74850944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022515759A Pending JP2022546785A (ja) | 2019-09-10 | 2020-08-07 | 迅速かつ広範な結果生成のための隣接simdユニットの再利用 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11269651B2 (ja) |
JP (1) | JP2022546785A (ja) |
CN (1) | CN114365110A (ja) |
DE (1) | DE112020003313T5 (ja) |
GB (1) | GB2603339B (ja) |
WO (1) | WO2021048653A1 (ja) |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4766564A (en) * | 1984-08-13 | 1988-08-23 | International Business Machines Corporation | Dual putaway/bypass busses for multiple arithmetic units |
US5045995A (en) | 1985-06-24 | 1991-09-03 | Vicom Systems, Inc. | Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system |
US4907148A (en) | 1985-11-13 | 1990-03-06 | Alcatel U.S.A. Corp. | Cellular array processor with individual cell-level data-dependent cell control and multiport input memory |
US5903772A (en) * | 1993-10-29 | 1999-05-11 | Advanced Micro Devices, Inc. | Plural operand buses of intermediate widths coupling to narrower width integer and wider width floating point superscalar processing core |
US5513366A (en) | 1994-09-28 | 1996-04-30 | International Business Machines Corporation | Method and system for dynamically reconfiguring a register file in a vector processor |
US6029244A (en) * | 1997-10-10 | 2000-02-22 | Advanced Micro Devices, Inc. | Microprocessor including an efficient implementation of extreme value instructions |
US6308252B1 (en) * | 1999-02-04 | 2001-10-23 | Kabushiki Kaisha Toshiba | Processor method and apparatus for performing single operand operation and multiple parallel operand operation |
US6260133B1 (en) * | 1999-02-08 | 2001-07-10 | Kabushiki Kaisha Toshiba | Processor having operating instruction which uses operation units in different pipelines simultaneously |
US8424012B1 (en) | 2004-11-15 | 2013-04-16 | Nvidia Corporation | Context switching on a video processor having a scalar execution unit and a vector execution unit |
JP2008084009A (ja) | 2006-09-27 | 2008-04-10 | Toshiba Corp | マルチプロセッサシステム |
US7694112B2 (en) | 2008-01-31 | 2010-04-06 | International Business Machines Corporation | Multiplexing output from second execution unit add/saturation processing portion of wider width intermediate result of first primitive execution unit for compound computation |
US8051275B2 (en) | 2009-06-01 | 2011-11-01 | Arm Limited | Result path sharing between a plurality of execution units within a processor |
US9323521B2 (en) * | 2011-12-19 | 2016-04-26 | Silminds, Inc. | Decimal floating-point processor |
US9557993B2 (en) * | 2012-10-23 | 2017-01-31 | Analog Devices Global | Processor architecture and method for simplifying programming single instruction, multiple data within a register |
US10514928B2 (en) * | 2014-04-17 | 2019-12-24 | Arm Limited | Preventing duplicate execution by sharing a result between different processing lanes assigned micro-operations that generate the same result |
US9672043B2 (en) | 2014-05-12 | 2017-06-06 | International Business Machines Corporation | Processing of multiple instruction streams in a parallel slice processor |
KR20190109572A (ko) * | 2014-10-08 | 2019-09-25 | 선전 구딕스 테크놀로지 컴퍼니, 리미티드 | 지문센서에서 액티브 베이스라인 신호 취소 |
US11061672B2 (en) | 2015-10-02 | 2021-07-13 | Via Alliance Semiconductor Co., Ltd. | Chained split execution of fused compound arithmetic operations |
US10275391B2 (en) | 2017-01-23 | 2019-04-30 | International Business Machines Corporation | Combining of several execution units to compute a single wide scalar result |
-
2019
- 2019-09-10 US US16/565,946 patent/US11269651B2/en active Active
-
2020
- 2020-08-07 JP JP2022515759A patent/JP2022546785A/ja active Pending
- 2020-08-07 WO PCT/IB2020/057461 patent/WO2021048653A1/en active Application Filing
- 2020-08-07 CN CN202080063263.0A patent/CN114365110A/zh active Pending
- 2020-08-07 GB GB2203969.7A patent/GB2603339B/en active Active
- 2020-08-07 DE DE112020003313.9T patent/DE112020003313T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
GB202203969D0 (en) | 2022-05-04 |
GB2603339A (en) | 2022-08-03 |
US11269651B2 (en) | 2022-03-08 |
DE112020003313T5 (de) | 2022-04-21 |
US20210073000A1 (en) | 2021-03-11 |
GB2603339B (en) | 2023-04-19 |
WO2021048653A1 (en) | 2021-03-18 |
CN114365110A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10469397B2 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
US11086816B2 (en) | Processors, methods, and systems for debugging a configurable spatial accelerator | |
US10558575B2 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
US10445451B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features | |
US10416999B2 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
US10496574B2 (en) | Processors, methods, and systems for a memory fence in a configurable spatial accelerator | |
US10387319B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features | |
US20190004878A1 (en) | Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features | |
KR101964350B1 (ko) | 다중 레지스터 메모리 액세스 명령어들, 프로세서들, 방법들 및 시스템들 | |
US20190004945A1 (en) | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features | |
US8595280B2 (en) | Apparatus and method for performing multiply-accumulate operations | |
CN112099852A (zh) | 可变格式、可变稀疏矩阵乘法指令 | |
JP6373425B2 (ja) | 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令 | |
RU2612597C1 (ru) | Процессоры, способы, системы и команды с предикацией элементов упакованных данных | |
JP2002333978A (ja) | Vliw型プロセッサ | |
JP2017107579A (ja) | リードマスク及びライトマスクにより制御されるベクトル移動命令 | |
US20140181466A1 (en) | Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions | |
KR20140118924A (ko) | 마스킹된 전체 레지스터 액세스들을 이용한 부분적 레지스터 액세스들을 구현하기 위한 프로세서들, 방법들 및 시스템들 | |
JPH04328637A (ja) | 並列プロセッサー | |
JP5941488B2 (ja) | 条件付きショート前方分岐の計算的に等価な述語付き命令への変換 | |
US8977835B2 (en) | Reversing processing order in half-pumped SIMD execution units to achieve K cycle issue-to-issue latency | |
US11830547B2 (en) | Reduced instruction set processor based on memristor | |
KR100267092B1 (ko) | 멀티미디어신호프로세서의단일명령다중데이터처리 | |
JP2022546785A (ja) | 迅速かつ広範な結果生成のための隣接simdユニットの再利用 | |
JP2004503872A (ja) | 共同利用コンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220315 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220518 |
|
RD16 | Notification of change of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7436 Effective date: 20220330 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240402 |