JP2017016637A - 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法 - Google Patents
密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法 Download PDFInfo
- Publication number
- JP2017016637A JP2017016637A JP2016093449A JP2016093449A JP2017016637A JP 2017016637 A JP2017016637 A JP 2017016637A JP 2016093449 A JP2016093449 A JP 2016093449A JP 2016093449 A JP2016093449 A JP 2016093449A JP 2017016637 A JP2017016637 A JP 2017016637A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- memory
- field
- buffer
- processor
- 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 25
- 230000015654 memory Effects 0.000 claims abstract description 259
- 239000000872 buffer Substances 0.000 claims abstract description 105
- 230000008030 elimination Effects 0.000 claims description 3
- 238000003379 elimination reaction Methods 0.000 claims description 3
- 239000013598 vector Substances 0.000 description 163
- VOXZDWNPVJITMN-ZBRFXRBCSA-N 17β-estradiol Chemical compound OC1=CC=C2[C@H]3CC[C@](C)([C@H](CC4)O)[C@@H]4[C@@H]3CCC2=C1 VOXZDWNPVJITMN-ZBRFXRBCSA-N 0.000 description 74
- 238000010586 diagram Methods 0.000 description 40
- 238000006073 displacement reaction Methods 0.000 description 40
- 238000012545 processing Methods 0.000 description 22
- 238000007667 floating Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 18
- 238000006243 chemical reaction Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000000354 decomposition reaction Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012358 sourcing Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 102000002274 Matrix Metalloproteinases Human genes 0.000 description 1
- 108010000684 Matrix Metalloproteinases Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8061—Details on data memory access
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- 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/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
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- 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
- G06F9/3834—Maintaining memory consistency
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order 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 or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or 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 or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
- G06F15/8084—Special arrangements thereof, e.g. mask or switch
-
- 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/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
Description
複数のソース(例えば、メモリバンクA、B、F、及びG及びバッファA)複数の(例えば5つの)出力ポートから複数のALU(例えば、図2A−2Bにおいて並列なALU1及びALU2)の(例えば4つの)入力ポート(例えば、その各々)のいずれかと、
複数のソース(例えば、メモリバンクA、B、F、及びG、バッファA、及びALU1及びALU2)の複数の(例えば7つの)出力ポートから複数のシンク(例えば、メモリバンクA、B、F、及びG、バッファB、及びバッファC)の(例えば6つの)入力ポートのいずれかと
のペアのうちいずれか又は両方をサポートするデータパスを含んでよい。
(1)a2[1]=b0[3]は、(例えばベクトル)オペランドb0[3]をa2[1]にコピーする。
(2)b3[2]=ALU2は、(例えば、上述された)ALU2の出力を、メモリバンクBにおいて(例えばベクトル)オペランドb3[2]にコピーする。
(3)g[0]=ALU2も、ALU2の出力を(例えば、第2のデスティネーションオペランドとして)、メモリバンクGにおいて(例えばベクトル)オペランドg[0]にコピーする。複数の特定の実施形態は、メモリバンクへの第4のデータコピーオペレーションを可能にし得るが、この選択肢は、この例示的命令においては用いられない。
本明細書で説明される命令の複数の実施形態は、異なる複数のフォーマットで具現されてよい。さらに、例示的なシステム、アーキテクチャ、及びパイプラインが以下に詳述される。命令の複数の実施形態は、このようなシステム、アーキテクチャ、及びパイプライン上で実行可能であるが、詳述されるものに限定されるものではない。
ベクトル向け命令フォーマットは、(例えば、特定の複数のフィールド固有の複数のベクトルオペレーションが存在する)複数のベクトル命令に適した命令フォーマットである。ベクトル及びスカラオペレーションの両方がベクトル向け命令フォーマットを通してサポートされる複数の実施形態が説明されるが、複数の代替的な実施形態は、ベクトル向け命令フォーマットのベクトルオペレーションのみを用いる。
ベースオペレーションフィールド542:その内容は、異なる複数のベースオペレーションを区別する。
複数のクラスAの非メモリアクセス505命令テンプレートの場合、アルファフィールド552は、RSフィールド552Aと解釈され、その内容は、複数の異なる増加オペレーション型の中でいずれが実行されるべきかを区別し(例えば、非メモリアクセス、ラウンド型オペレーション510及び非メモリアクセス、複数のデータ変換型オペレーション515命令テンプレートに対し、ラウンド552A.1及びデータ変換552A.2がそれぞれ指定される)、ベータフィールド554は、指定される型の複数のオペレーションの中でいずれが実行されるべきかを区別する。非メモリアクセス505命令テンプレートには、スケールフィールド560、変位フィールド562A、及び変位スケールフィールド562Bは存在しない。
非メモリアクセスフルラウンド制御型オペレーション510の命令テンプレートにおいて、ベータフィールド554は、ラウンド制御フィールド554Aと解釈され、その内容は、静的なラウンドを提供する。説明された本開示の複数の実施形態において、ラウンド制御フィールド554Aは、全浮動小数点例外抑制(SAE)フィールド556及びラウンドオペレーション制御フィールド558を含むが、複数の代替的な実施形態は、これらの複数の概念の両方を同じフィールドに符号化することをサポートしてよく、又はこれらの複数の概念/複数のフィールドの1つ又は他を有するだけでよい(例えば、ラウンドオペレーション制御フィールド558のみを有してよい)。
非メモリアクセスデータ変換型オペレーション515命令テンプレートにおいて、ベータフィールド554はデータ変換フィールド554Bと解釈され、その内容は、多数のデータ変換のうちいずれが実行されるか(例えば、データ変換なし、スウィズル、ブロードキャスト)を区別する。
一時的データは、キャッシュによる利益を十分に受けられるほどすぐに再使用される可能性が高いデータである。しかしながら、これは示唆であり、複数の異なるプロセッサが、この示唆を完全に無視することを含む異なる態様で、これを実装してよい。
非一時的データは、一次レベルキャッシュにおいてキャッシュによる利益を受けられるほど十分即座に再使用される可能性が低いデータであり、エビクションの優先度が与えられなければならない。しかしながら、これは示唆であり、複数の異なるプロセッサが、この示唆を完全に無視することを含む異なる態様で、これを実装してよい。
複数のクラスB命令テンプレートの場合、アルファフィールド552は、書き込みマスク制御(Z)フィールド552Cと解釈され、その内容は、書き込みマスクフィールド570によって制御される書き込みマスキングが、併合又はゼロ書き込みを実行すべきか否かを区別する。
図6Aは、本開示の複数の実施形態に係る例示的な特定ベクトル向け命令フォーマットを示すブロック図である。図6Aは、複数のフィールドの位置、サイズ、解釈及び順序、ならびにこれらのフィールドのうちいくつかに対する複数の値を指定するという意味で具体的な特定ベクトル向け命令フォーマット600を示す。特定ベクトル向け命令フォーマット600は、x86命令セットを拡張するために用いられてよく、従って、複数のフィールドのうちのいくつかは、既存のx86命令セット及びこれらの拡張(例えば、AVX)において用いられるものと同様又は同じである。このフォーマットは、複数の拡張を有する既存のx86命令セットのプレフィクス符号化フィールド、リアルオペコードバイトフィールド、MOD R/Mフィールド、SIBフィールド、変位フィールド、及び複数の即値フィールドとの整合性を維持する。図6Aの複数のフィールドがマッピングされる図5A−Bの複数のフィールドが示される。
図6Bは、本開示の一実施形態に係るフルオペコードフィールド574を形成する特定ベクトル向け命令フォーマット600の複数のフィールドを示すブロック図である。具体的には、フルオペコードフィールド574は、フォーマットフィールド540、ベースオペレーションフィールド542、及びデータエレメント幅(W)フィールド564を含む。ベースオペレーションフィールド542は、プレフィクス符号化フィールド625、オペコードマップフィールド615、及びリアルオペコードフィールド630を含む。
図6Cは、本開示の一実施形態に係るレジスタインデックスフィールド544を形成する特定ベクトル向け命令フォーマット600の複数のフィールドを示すブロック図である。具体的には、レジスタインデックスフィールド544は、REXフィールド605、REX'フィールド610、MODR/M.regフィールド644、MODR/M.r/mフィールド646、VVVVフィールド620、xxxフィールド654、及びbbbフィールド656を含む。
図6Dは、本開示の一実施形態に係る増加オペレーションフィールド550を形成する特定ベクトル向け命令フォーマット600の複数のフィールドを示すブロック図である。クラス(U)フィールド568が0を含む場合、これはEVEX.U0(クラスA568A)を意味し、1を含む場合、これはEVEX.U1(クラスB568B)を意味する。U=0、かつMODフィールド642が(非メモリアクセスオペレーションを意味する)11を含む場合、アルファフィールド552(EVEXバイト3、ビット[7]−EH)は、rsフィールド552Aと解釈される。rsフィールド552Aが1(ラウンド552A.1)を含む場合、ベータフィールド554(EVEXバイト3、ビット[6:4]−SSS)は、ラウンド制御フィールド554Aと解釈される。ラウンド制御フィールド554Aは、1ビットのSAEフィールド556及び2ビットのラウンドオペレーションフィールド558を含む。rsフィールド552Aが0(データ変換552A.2)を含む場合、ベータフィールド554(EVEXバイト3、ビット[6:4]−SSS)は、3ビットのデータ変換フィールド554Bと解釈される。U=0、かつMODフィールド642が00、01、又は10(メモリアクセスオペレーションを意味する)を含む場合、アルファフィールド552(EVEXバイト3、ビット[7]−EH)は、エビクションヒント(EH)フィールド552Bと解釈され、ベータフィールド554(EVEXバイト3、ビット[6:4]−SSS)は、3ビットデータ操作フィールド554Cと解釈される。
図7は、本開示の一実施形態に係るレジスタアーキテクチャ700のブロック図である。示された実施形態には、512ビット幅の32個のベクトルレジスタ710が存在する。これらのレジスタは、zmm0からzmm31と記載される。下位16個のzmmレジスタの下位256ビットは、レジスタymm0−16にオーバーレイされる。下位16個のzmmレジスタの下位128ビット(ymmレジスタの下位128ビット)は、レジスタxmm0−15の上にオーバーレイされる。特定ベクトル向け命令フォーマット600は、以下の表に示されるように、これらのオーバーレイされたレジスタファイルにおいて動作する。
複数のプロセッサコアは、異なる複数の目的に対して複数の異なる態様で実装されてよく、複数の異なるプロセッサで実装されてよい。例えば、このような複数のコアの実装は、1)汎用コンピューティング向けの汎用インオーダコア、2)汎用コンピューティング向けの高性能汎用アウトオブオーダコア、3)主にグラフィック及び/又は科学用途(スループット)コンピューティング向けの特定用途向けコアを含んでよい。複数の異なるプロセッサの実装は、1)汎用コンピューティング向けの1つ又は複数の汎用インオーダコア及び/又は汎用コンピューティング向けの1つ又は複数の汎用アウトオブオーダコアを含むCPU、並びに2)主にグラフィック及び/又は科学用途(スループット)向けの1つ又は複数の特定用途向けコアを含むコプロセッサを含んでよい。このような複数の異なるプロセッサは、複数の異なるコンピュータシステムアーキテクチャをもたらし、複数の異なるコンピュータシステムアーキテクチャは、1)CPUとは別個のチップ上のコプロセッサ、2)CPUと同じパッケージにおける別個のダイ上のコプロセッサ、3)CPUと同じダイ上のコプロセッサ(この場合、このようなコプロセッサは、場合によっては、集中画像表示及び/又は科学用途(スループット)ロジックのような特定用途向けロジック、又は特定用途向けコア等と称される)、及び4)同じダイ上に、説明されたCPU(場合によっては、アプリケーションコア又はアプリケーションプロセッサと称される)、上述されたコプロセッサ、及び追加的な機能性を含み得るシステムオンチップを含んでよい。複数の例示的なコアアーキテクチャが、次に説明され、次いで、例示的な複数のプロセッサ及びコンピュータアーキテクチャが説明される。
インオーダ及びアウトオブオーダコアのブロック図
図8Aは、本開示の複数の実施形態に係る例示的なインオーダパイプライン及び例示的なレジスタリネーミング、アウトオブオーダ発行/実行パイプラインの両方を示すブロック図である。図8Bは、本開示の複数の実施形態に係るプロセッサに含まれるべきインオーダアーキテクチャコアの例示的な実施形態及び例示的なレジスタリネーミング、アウトオブオーダ発行/実行アーキテクチャコアの両方を示すブロック図である。図8A−Bにおける複数の実線のボックスは、インオーダパイプライン及びインオーダコアを示し、任意に追加された複数の破線のボックスは、レジスタリネーミング、アウトオブオーダ発行/実行パイプライン及びコアを示す。インオーダ態様はアウトオブオーダ態様のサブセットであるとして、アウトオブオーダ態様が説明される。
図9A−Bは、より具体的な例示的インオーダコアアーキテクチャのブロック図を示し、ここで、コアは、チップ内のいくつかの論理ブロック(同じ型及び/又は異なる型の他の複数のコアを含む)の中の1つであってよい。複数の論理ブロックは、用途に応じて、高帯域幅の相互接続ネットワーク(例えば、リングネットワーク)を通して、いくつかの固定機能ロジック、メモリI/Oインタフェース、及び他の必要なI/Oロジックと通信を行う。
図11−14は、複数の例示的なコンピュータアーキテクチャのブロック図である。ラップトップ、デスクトップ、ハンドヘルド型PC、パーソナルデジタルアシスタント、エンジニアリングワークステーション、サーバ、ネットワークデバイス、ネットワークハブ、スイッチ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、グラフィックデバイス、ビデオゲームデバイス、セットトップボックス、マイクロコントローラ、携帯電話、ポータブルメディアプレイヤ、ハンドヘルドデバイス、及び様々な他の電子デバイスのための当技術分野において公知の他の複数のシステム設計及び構成も、適している。概して、本明細書において開示されるように、プロセッサ及び/又は他の実行ロジックを組み込むことが可能な多種多様なシステム又は電子デバイスが、概して適している。
いくつかの場合において、命令コンバータは、ソース命令セットからターゲット命令セットに命令を変換するために用いられてよい。例えば、命令コンバータは、命令を、コアにより処理されるべき他の1つ又は複数の他の命令にトランスレート(例えば、静的バイナリ変換、動的コンパイルを含む動的バイナリ変換を用いて)、モーフィング、エミュレート、又は他の方法で変換してよい。命令コンバータは、ソフトウェア、ハードウェア、ファームウェア、又はこれらの組み合わせで実装されてよい。命令コンバータは、プロセッサ上にあってよく、プロセッサ外にあってよく、又は部分的にプロセッサ上かつ部分的にプロセッサ外にあってよい。
Claims (25)
- 並列な複数の実行ユニットと、
前記複数の実行ユニットの複数の入力を第1のバッファ及び複数のメモリバンクの複数の出力に接続し、並列な前記複数のメモリバンク及び複数の第2のバッファの複数の入力を前記第1のバッファ、前記複数のメモリバンク、及び前記複数の実行ユニットの複数の出力に接続するスイッチと、
前記複数の第2のバッファの複数の出力に接続される複数の入力を有するオフロードエンジンと、
を備える、ハードウェアプロセッサ。 - 前記オフロードエンジンの出力は、前記第1のバッファの入力に接続する、請求項1に記載のハードウェアプロセッサ。
- 前記第1のバッファの出力からの読み出しと前記複数の第2のバッファの複数の入力への書き込みとを同時に実行するデータハザード解消ロジックをさらに備える、請求項1に記載のハードウェアプロセッサ。
- 前記データハザード解消ロジックは、ストールを挿入しない、請求項3に記載のハードウェアプロセッサ。
- 前記複数の実行ユニットは、第1のクロック速度で実行し、前記オフロードエンジンは、第2のより低速のクロック速度で実行する、請求項1に記載のハードウェアプロセッサ。
- 前記複数の実行ユニットの各々は、シフトレジスタを含む、請求項1に記載のハードウェアプロセッサ。
- 前記第1のバッファ及び前記複数の第2のバッファは、ファーストインファーストアウト(FIFO)バッファである、請求項1に記載のハードウェアプロセッサ。
- 前記複数のメモリバンクは、4つ又はそれより多くのメモリバンクであり、各メモリバンクは、複数の他のメモリバンクの複数の入力ポート及び複数の出力ポートとは別個の入力ポート及び出力ポートを含む、請求項1から7のいずれか1項に記載のハードウェアプロセッサ。
- 制御信号に基づいて、スイッチにより、ハードウェアプロセッサの並列な複数の実行ユニットの複数の入力を第1のバッファ及び複数のメモリバンクの複数の出力に接続し、並列な前記複数のメモリバンク及び複数の第2のバッファの複数の入力を前記第1のバッファ、前記複数のメモリバンク、及び前記複数の実行ユニットの複数の出力に接続する段階と、
前記複数の第2のバッファの複数の出力からオフロードエンジンの複数の入力にデータを提供する段階と、
を備える、方法。 - 前記オフロードエンジンの出力から前記第1のバッファの入力にデータを提供する段階をさらに備える、請求項9に記載の方法。
- 前記第1のバッファの出力からの読み出しと前記複数の第2のバッファの複数の入力への書き込みとを同時に実行する段階をさらに備える、請求項9に記載の方法。
- ストールを挿入しない段階をさらに備える、請求項11に記載の方法。
- 前記複数の実行ユニットによって第1のクロック速度で実行し、前記オフロードエンジンによって第2のより低速のクロック速度で実行する段階をさらに備える、請求項9に記載の方法。
- 前記複数の実行ユニットの各々は、シフトレジスタを含む、請求項9に記載の方法。
- 前記第1のバッファ及び前記複数の第2のバッファは、ファーストインファーストアウト(FIFO)バッファである、請求項9に記載の方法。
- 前記複数のメモリバンクは、4つ又はそれより多くのメモリバンクであり、各メモリバンクは、複数の他のメモリバンクの複数の入力ポート及び複数の出力ポートとは別個の入力ポート及び出力ポートを含む、請求項9から15のいずれか1項に記載の方法。
- ハードウェアプロセッサであって、
命令を復号するハードウェアデコーダと、
前記命令を実行することにより、
制御信号に基づいて、前記ハードウェアプロセッサの並列な複数の実行ユニットの複数の入力を第1のバッファ及び複数のメモリバンクの複数の出力に接続し、並列な前記複数のメモリバンク及び複数の第2のバッファの複数の入力を前記第1のバッファ、前記複数のメモリバンク、及び前記複数の実行ユニットの複数の出力に接続し、
前記複数の第2のバッファの複数の出力からオフロードエンジンの複数の入力にデータを提供する
ハードウェア実行ユニットと、
を備える、ハードウェアプロセッサ。 - 前記オフロードエンジンの出力は、前記第1のバッファの入力に接続する、請求項17に記載のハードウェアプロセッサ。
- 前記ハードウェア実行ユニットは、前記命令を実行し、これにより、前記第1のバッファの出力からの読み出しと、前記複数の第2のバッファの複数の入力への書き込みとを同時に実行させる、請求項17に記載のハードウェアプロセッサ。
- 前記ハードウェア実行ユニットは、ストールを挿入することなく前記命令を実行する、請求項19に記載のハードウェアプロセッサ。
- 前記複数の実行ユニットは、第1のクロック速度で実行し、前記オフロードエンジンは、第2のより低速のクロック速度で実行する、請求項17に記載のハードウェアプロセッサ。
- 前記複数の実行ユニットの各々は、シフトレジスタを含む、請求項17に記載のハードウェアプロセッサ。
- 前記第1のバッファ及び前記複数の第2のバッファは、ファーストインファーストアウト(FIFO)バッファである、請求項17に記載のハードウェアプロセッサ。
- 前記複数のメモリバンクは、4つ又はそれより多くのメモリバンクであり、各メモリバンクは、複数の他のメモリバンクの複数の入力ポート及び複数の出力ポートとは別個の入力ポート及び出力ポートを含む、請求項17から23のいずれか1項に記載のハードウェアプロセッサ。
- 並列な複数の実行ユニットと、
前記複数の実行ユニットの複数の入力を第1のバッファ及び複数のメモリバンクの複数の出力に接続し、並列な前記複数のメモリバンク及び複数の第2のバッファの複数の入力を前記第1のバッファ、前記複数のメモリバンク、及び前記複数の実行ユニットの複数の出力に接続する手段と、
前記複数の第2のバッファの複数の出力に接続される複数の入力を有するオフロードエンジンと、
を備える、ハードウェア装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/752,047 US9870339B2 (en) | 2015-06-26 | 2015-06-26 | Hardware processors and methods for tightly-coupled heterogeneous computing |
US14/752,047 | 2015-06-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017016637A true JP2017016637A (ja) | 2017-01-19 |
JP6456867B2 JP6456867B2 (ja) | 2019-01-23 |
Family
ID=56092738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016093449A Expired - Fee Related JP6456867B2 (ja) | 2015-06-26 | 2016-05-06 | 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9870339B2 (ja) |
EP (1) | EP3109766A3 (ja) |
JP (1) | JP6456867B2 (ja) |
KR (1) | KR101854520B1 (ja) |
CN (1) | CN106293640B (ja) |
BR (1) | BR102016012180A2 (ja) |
DE (1) | DE102016006400A1 (ja) |
TW (2) | TW202107289A (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9870339B2 (en) * | 2015-06-26 | 2018-01-16 | Intel Corporation | Hardware processors and methods for tightly-coupled heterogeneous computing |
US10152243B2 (en) * | 2016-09-15 | 2018-12-11 | Qualcomm Incorporated | Managing data flow in heterogeneous computing |
US11099879B2 (en) | 2016-12-16 | 2021-08-24 | Intel Corporation | Executing an application with multiple processors |
EP4089531B1 (en) | 2016-12-31 | 2024-06-26 | Intel Corporation | Systems, methods, and apparatuses for heterogeneous computing |
US10387037B2 (en) | 2016-12-31 | 2019-08-20 | Intel Corporation | Microarchitecture enabling enhanced parallelism for sparse linear algebra operations having write-to-read dependencies |
US10261786B2 (en) * | 2017-03-09 | 2019-04-16 | Google Llc | Vector processing unit |
US11592817B2 (en) * | 2017-04-28 | 2023-02-28 | Intel Corporation | Storage management for machine learning at autonomous machines |
KR102343652B1 (ko) * | 2017-05-25 | 2021-12-24 | 삼성전자주식회사 | 벡터 프로세서의 서열 정렬 방법 |
US10778407B2 (en) | 2018-03-25 | 2020-09-15 | Nuvoton Technology Corporation | Multiplier protected against power analysis attacks |
CN111971663A (zh) * | 2018-04-16 | 2020-11-20 | 埃米尔·巴登霍斯特 | 处理器和操作处理器的方法 |
DE102018005620A1 (de) | 2018-07-17 | 2020-01-23 | WAGO Verwaltungsgesellschaft mit beschränkter Haftung | Schaltung zur gepufferten Übertragung von Daten |
US11048515B2 (en) * | 2018-12-28 | 2021-06-29 | SiFive, Inc. | Way predictor and enable logic for instruction tightly-coupled memory and instruction cache |
TWI805731B (zh) * | 2019-04-09 | 2023-06-21 | 韓商愛思開海力士有限公司 | 多線道資料處理電路及系統 |
US10733016B1 (en) * | 2019-04-26 | 2020-08-04 | Google Llc | Optimizing hardware FIFO instructions |
US11301213B2 (en) * | 2019-06-24 | 2022-04-12 | Intel Corporation | Reduced latency multiplier circuitry for very large numbers |
US11182208B2 (en) | 2019-06-29 | 2021-11-23 | Intel Corporation | Core-to-core start “offload” instruction(s) |
US10929129B2 (en) | 2019-06-29 | 2021-02-23 | Intel Corporation | Apparatus and method for modifying addresses, data, or program code associated with offloaded instructions |
US11372711B2 (en) | 2019-06-29 | 2022-06-28 | Intel Corporation | Apparatus and method for fault handling of an offload transaction |
US11321144B2 (en) | 2019-06-29 | 2022-05-03 | Intel Corporation | Method and apparatus for efficiently managing offload work between processing units |
US10983796B2 (en) | 2019-06-29 | 2021-04-20 | Intel Corporation | Core-to-core end “offload” instruction(s) |
US11016766B2 (en) * | 2019-06-29 | 2021-05-25 | Intel Corporation | Apparatus and method for compiler hints for inter-core offload |
US11030000B2 (en) | 2019-06-29 | 2021-06-08 | Intel Corporation | Core advertisement of availability |
CN114091384A (zh) * | 2021-11-29 | 2022-02-25 | 上海阵量智能科技有限公司 | 数据处理电路及人工智能芯片、数据处理方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5497467A (en) * | 1990-08-08 | 1996-03-05 | Hitachi, Ltd. | Vector data buffer and method of reading data items from a banked storage without changing the data sequence thereof |
US6012139A (en) * | 1996-01-31 | 2000-01-04 | Hitachi Micro Systems, Inc. | Microprocessor including floating point unit with 16-bit fixed length instruction set |
JP2002149399A (ja) * | 2000-10-09 | 2002-05-24 | Siroyan Ltd | プロセッサ用命令セット |
JP2005538439A (ja) * | 2002-09-04 | 2005-12-15 | エイアールエム リミテッド | データ処理装置におけるパイプライン間の同期 |
JP2008165780A (ja) * | 1995-10-09 | 2008-07-17 | Renesas Technology Corp | マイクロプロセッサ |
JP2009026135A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
JP2010541088A (ja) * | 2007-10-06 | 2010-12-24 | アクシス セミコンダクター インコーポレイテッド | リアルタイム信号処理のための方法及び装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01226066A (ja) * | 1988-03-04 | 1989-09-08 | Hitachi Ltd | ディジタル信号処理プロセッサ |
US5522052A (en) | 1991-07-04 | 1996-05-28 | Matsushita Electric Industrial Co. Ltd. | Pipeline processor for processing instructions having a data dependence relationship |
US5623698A (en) * | 1993-04-30 | 1997-04-22 | Cray Research, Inc. | Memory interconnect network having separate routing networks for inputs and outputs using switches with FIFO queues and message steering bits |
US5740404A (en) * | 1993-09-27 | 1998-04-14 | Hitachi America Limited | Digital signal processor with on-chip select decoder and wait state generator |
JP2637931B2 (ja) * | 1994-12-01 | 1997-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレイション | テクスチャ・マッピングを行うコンピュータ・システム |
US6606704B1 (en) * | 1999-08-31 | 2003-08-12 | Intel Corporation | Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode |
CN1227601C (zh) * | 2000-03-27 | 2005-11-16 | 英芬能技术公司 | 将用户定义的执行单元加至采用可配置长指令字(cliw)的处理器的方法和设备 |
JP2002108837A (ja) * | 2000-09-29 | 2002-04-12 | Nec Corp | 計算機システムとその計算制御方法 |
US20050125590A1 (en) * | 2003-12-09 | 2005-06-09 | Li Stephen H. | PCI express switch |
US7773620B2 (en) * | 2003-12-24 | 2010-08-10 | Intel Corporation | Method, system, and program for overrun identification |
US8102863B1 (en) * | 2006-06-27 | 2012-01-24 | Qurio Holdings, Inc. | High-speed WAN to wireless LAN gateway |
US7725603B1 (en) * | 2008-04-30 | 2010-05-25 | Network Appliance, Inc. | Automatic network cluster path management |
US7978721B2 (en) * | 2008-07-02 | 2011-07-12 | Micron Technology Inc. | Multi-serial interface stacked-die memory architecture |
US8243737B2 (en) * | 2009-03-23 | 2012-08-14 | Lsi Corporation | High speed packet FIFO input buffers for switch fabric with speedup and retransmit |
US8495455B1 (en) * | 2011-01-06 | 2013-07-23 | Mindspeed Technologies, Inc. | Systems and methods for parallel dual-mode turbo decoders |
CN102508643A (zh) * | 2011-11-16 | 2012-06-20 | 刘大可 | 一种多核并行数字信号处理器及并行指令集的运行方法 |
US9372695B2 (en) | 2013-06-28 | 2016-06-21 | Globalfoundries Inc. | Optimization of instruction groups across group boundaries |
US9870339B2 (en) * | 2015-06-26 | 2018-01-16 | Intel Corporation | Hardware processors and methods for tightly-coupled heterogeneous computing |
-
2015
- 2015-06-26 US US14/752,047 patent/US9870339B2/en active Active
-
2016
- 2016-05-06 JP JP2016093449A patent/JP6456867B2/ja not_active Expired - Fee Related
- 2016-05-19 TW TW109137692A patent/TW202107289A/zh unknown
- 2016-05-19 TW TW105115537A patent/TWI706255B/zh not_active IP Right Cessation
- 2016-05-23 EP EP16170882.1A patent/EP3109766A3/en not_active Withdrawn
- 2016-05-25 DE DE102016006400.5A patent/DE102016006400A1/de not_active Withdrawn
- 2016-05-26 CN CN201610601331.XA patent/CN106293640B/zh not_active Expired - Fee Related
- 2016-05-26 KR KR1020160064890A patent/KR101854520B1/ko active IP Right Grant
- 2016-05-27 BR BR102016012180A patent/BR102016012180A2/pt not_active IP Right Cessation
-
2018
- 2018-01-12 US US15/870,632 patent/US10372668B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5497467A (en) * | 1990-08-08 | 1996-03-05 | Hitachi, Ltd. | Vector data buffer and method of reading data items from a banked storage without changing the data sequence thereof |
JP2008165780A (ja) * | 1995-10-09 | 2008-07-17 | Renesas Technology Corp | マイクロプロセッサ |
US6012139A (en) * | 1996-01-31 | 2000-01-04 | Hitachi Micro Systems, Inc. | Microprocessor including floating point unit with 16-bit fixed length instruction set |
JP2002149399A (ja) * | 2000-10-09 | 2002-05-24 | Siroyan Ltd | プロセッサ用命令セット |
JP2005538439A (ja) * | 2002-09-04 | 2005-12-15 | エイアールエム リミテッド | データ処理装置におけるパイプライン間の同期 |
JP2009026135A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
JP2010541088A (ja) * | 2007-10-06 | 2010-12-24 | アクシス セミコンダクター インコーポレイテッド | リアルタイム信号処理のための方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3109766A2 (en) | 2016-12-28 |
US20180225255A1 (en) | 2018-08-09 |
TW202107289A (zh) | 2021-02-16 |
BR102016012180A2 (pt) | 2017-01-24 |
CN106293640B (zh) | 2018-12-04 |
KR20170001576A (ko) | 2017-01-04 |
US9870339B2 (en) | 2018-01-16 |
TWI706255B (zh) | 2020-10-01 |
EP3109766A3 (en) | 2017-01-04 |
KR101854520B1 (ko) | 2018-05-03 |
CN106293640A (zh) | 2017-01-04 |
US20160378715A1 (en) | 2016-12-29 |
DE102016006400A1 (de) | 2016-12-29 |
TW201717037A (zh) | 2017-05-16 |
JP6456867B2 (ja) | 2019-01-23 |
US10372668B2 (en) | 2019-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6456867B2 (ja) | 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法 | |
JP6699845B2 (ja) | 方法及びプロセッサ | |
JP6238497B2 (ja) | プロセッサ、方法、及びシステム | |
JP6371855B2 (ja) | プロセッサ、方法、システム、プログラム、及び非一時的機械可読記憶媒体 | |
KR102463858B1 (ko) | 벡터 인덱스 로드 및 저장을 위한 방법 및 장치 | |
KR102508075B1 (ko) | 인덱스 및 즉치로 벡터 치환을 수행하기 위한 방법 및 장치 | |
KR102462174B1 (ko) | 벡터 비트 셔플을 수행하기 위한 방법 및 장치 | |
JP6635438B2 (ja) | ベクトルビット反転およびクロスを実行するための方法および装置 | |
CN106030514B (zh) | 用于执行采用传播的被屏蔽源元素存储指令的处理器及其方法 | |
JP6741006B2 (ja) | マスクレジスタとベクトルレジスタとの間で可変に拡張するための方法および装置 | |
JP2017538213A (ja) | アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置 | |
KR102460975B1 (ko) | 벡터 비트 뒤집기를 수행하기 위한 방법 및 장치 | |
JP6807073B2 (ja) | 高速ベクトルによる動的なメモリ競合検出 | |
CN112148251A (zh) | 跳过无意义的矩阵运算的系统和方法 | |
JP6835436B2 (ja) | マスクをマスク値のベクトルに拡張するための方法および装置 | |
JP6738579B2 (ja) | 命令フローを最適化するチェックを実行するための装置および方法 | |
CN107003848B (zh) | 用于融合乘法-乘法指令的装置和方法 | |
KR20170099860A (ko) | 벡터 포화된 더블워드/쿼드워드 덧셈을 수행하기 위한 명령어 및 로직 | |
CN108241509B (zh) | 用于高效地处理存储器排序缓冲器的分配的方法和装置 | |
KR102528073B1 (ko) | 벡터 비트 수집을 수행하기 위한 방법 및 장치 | |
JP2017538215A (ja) | 逆分離演算を実行するための命令及びロジック | |
TWI697836B (zh) | 處理包括高功率及標準指令之指令集的方法與處理器 | |
CN107003841B (zh) | 用于融合加法-加法指令的装置和方法 | |
CN112988230A (zh) | 用于将大约为一的浮点值相乘的指令的装置、方法和系统 | |
JP2018500665A (ja) | マスク値を圧縮するための方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170801 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171101 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180327 |
|
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: 20181120 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6456867 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |