JP6308095B2 - 演算回路及び演算回路の制御方法 - Google Patents
演算回路及び演算回路の制御方法 Download PDFInfo
- Publication number
- JP6308095B2 JP6308095B2 JP2014207364A JP2014207364A JP6308095B2 JP 6308095 B2 JP6308095 B2 JP 6308095B2 JP 2014207364 A JP2014207364 A JP 2014207364A JP 2014207364 A JP2014207364 A JP 2014207364A JP 6308095 B2 JP6308095 B2 JP 6308095B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- selector
- operand
- signal
- mask
- 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
- 238000000034 method Methods 0.000 title claims description 8
- 238000007906 compression Methods 0.000 claims description 27
- 230000006835 compression Effects 0.000 claims description 27
- 238000010586 diagram Methods 0.000 description 16
- 101100055224 Anemone leveillei AL10 gene Proteins 0.000 description 8
- 101100311460 Schizosaccharomyces pombe (strain 972 / ATCC 24843) sum2 gene Proteins 0.000 description 6
- 230000000873 masking effect Effects 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical 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/3001—Arithmetic 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/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/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
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 Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
前記各エレメントの入力回路から各エレメントの前記エレメントデータセレクタに前記各エレメントが入力するオペランドデータを供給するデータバスとを有し,
前記第1〜第Nのエレメント回路内の各エレメントデータセレクタは,制御信号が第1の状態のとき,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータをそれぞれ選択して出力し,
前記第1〜第Nのエレメント回路のそれぞれは,前記制御信号が第2の状態のとき,自己のエレメント番号とシフト量に基づいて前記第1または第2のオペランドデータを選択して前記データバスに出力するオペランドセレクタと,前記自己のエレメント番号と前記シフト量とに基づいて前記要求エレメント信号を生成するエレメント連結左シフト用加算器とをそれぞれ有する,演算回路である。
図1は,本実施の形態における演算回路とSIMD演算器とを示す図である。図1には,プロセッサに設けられる4SIMD演算器が示されている。4SIMD演算器は,演算器AL1をそれぞれ有する4つのSIMD演算エレメントE_#0,E_#1,E_#2,E_#3を有する。SIMD幅を4(4SIMD)にするのは一例であり,少なくとも2つのSIMD演算エレメントを有する。そして,例えば8つのSIMD演算エレメントを有する8SIMDであってもよく,さらに16SIMDであってもよい。
次に,本実施の形態における4つの演算回路の詳細な構成例について説明する。さらに,4つの演算回路を統合した構成例についても説明する。
図6は,完全要素置換を行う演算回路AL10−1の左半分を示す図である。図7は,完全要素置換を行う演算回路AL10−1の右半分を示す図である。図1で説明したとおり,演算回路AL10−1は,4つのSIMD演算エレメントE_#0〜E_#3に対して横断的に重ねるように設けられる。そして,演算回路AL10−1は,図2で概略説明した機能を有する。
図8は,要素連結左シフトを行う演算回路AL10−2の左半分を示す図である。図9は,要素連結左シフトを行う演算回路AL10−2の右半分を示す図である。演算回路AL10−2は,図3で概略説明したエレメントのデータを連結して左シフトする機能を有する。そして,図8,図9の演算回路AL10−2では,図6,図7の完全要素置換演算回路AL10−1の構成に追加して,各エレメント回路element#0-#3が,制御コードctrl_codeと,シフト量データshc[1:0]と,自要素番号element#[1:0]とを入力し,自要素番号element#[1:0]からシフト量データshc[1:0]を減算及び加算する要素連結左シフト用加算器CSL_Adderと,スイッチSW1,SW2と,要求エレメントセレクタS4と,第1,第2のオペランドデータop1[63:0],op2[63:0]のいずれかを選択するオペランドセレクタS3とを有する。
図11は,要素加算マスクを行う演算回路AL10−3の左半分を示す図である。図12は,要素加算マスクを行う演算回路AL10−3の右半分を示す図である。演算回路AL10−3は,図4で概略説明した各エレメントの有効ビットを加算して全エレメントに格納する機能を有する。そして,図11,図12の演算回路AL10−3では,図6,図7の完全要素置換演算回路AL10−1の構成に追加して,セレクタ部100が,有効ビット加算器AD−1と,その加算値sum2[2:0]を制御コードctrl_code=1,要素加算マスク動作信号esummd_op=1により選択する加算値セレクタS5と,マスク信号maskと要素加算マスク動作信号esummd_opが入力されるORゲートOR1とを有する。マスクセレクタS2が,このORゲートOR1を介して供給される要素加算マスク動作信号esummd_op=1により,全て0のデータを選択する。
図13は,要素圧縮を行う演算回路AL10−4の左半分を示す図である。図14は,要素圧縮を行う演算回路AL10−4の右半分を示す図である。演算回路AL10−4は,図5で概略説明した有効なエレメントのデータを左側のエレメントに集めて格納する機能を有する。そして,図13,図14の演算回路AL10−4では,図6,図7の完全要素置換演算回路AL10−1の構成に追加して,セレクタ部100に,コンプレスデコーダCompressと,第1,第2のコンプレスセレクタS6,S7とを有する。
以上,本実施の形態における4種類の演算回路について説明した。上記では,完全要素置換演算回路AL10−1と,要素連結左シフト演算回路AL10−2,要素加算マスク演算回路AL10−3,要素圧縮演算回路AL10−4それぞれの組合せについて説明した。
制御コードctrl_code[1:0]=00:完全要素置換(フルエレメントパーミュテーション)
制御コードctrl_code[1:0]=01:要素連結左シフト(エレメントコンカテネートシフトレフト)
制御コードctrl_code[1:0]=10:要素加算マスク(エレメントサムマスク)
制御コードctrl_code[1:0]=11:要素圧縮(エレメントコンプレス)
全機能を有する演算回路は,セレクタ部100内に,エレメントデータセレクタS1と,マスクセレクタS2と,加算値セレクタS5と,第1,第2のコンプレスセレクタS6,S7と,有効ビット加算器AD−1と,コンプレスデコーダCompressとを有する。さらに,全機能を有する演算回路は,各エレメント回路element#0-#3の入力部内に,エレメント結合左シフト用加算器CSL-Adderと,オペランドセレクタS3と,要求エレメントセレクタS4と,スイッチSW1,SW2とを有する。そして,全機能を有する演算器は,制御コードctrl_code[1:0]をデコードして要素結合左シフト動作信号ecsld_op, 要素加算マスク動作信号esummd_opを生成するデコーダDを有する。図中のデコーダDの出力信号によりどちらのデコードを行っているかを理解できる。なお,要素圧縮動作信号ecpd_opは生成されず,要素加算マスク動作信号esummd_opと共に,制御コードctrl_code[1:0]の上位ビット[1]で代用される。
第1のオペランドデータと第2のオペランドデータを入力する入力回路と,要求エレメント信号に基づいていずれかのエレメントのオペランドデータを選択するエレメントデータセレクタとを,それぞれ有する第1〜第N(Nは3以上の複数)のエレメント回路と,
前記各エレメントの入力回路から各エレメントの前記エレメントデータセレクタに前記各エレメントが入力するオペランドデータを供給するデータバスとを有し,
前記第1〜第Nのエレメント回路内の各エレメントデータセレクタは,制御信号が第1の状態のとき,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータをそれぞれ選択して出力し,
前記第1〜第Nのエレメント回路のそれぞれは,前記制御信号が第2の状態のとき,自己のエレメント番号とシフト量に基づいて前記第1または第2のオペランドデータを選択して前記データバスに出力するオペランドセレクタと,前記自己のエレメント番号と前記シフト量とに基づいて前記要求エレメント信号を生成するエレメント連結左シフト用加算器とをそれぞれ有する,演算回路。
さらに,前記制御信号が第3の状態のとき,前記第1〜第Nのエレメント回路が入力する第2のオペランドデータに含まれる有効ビットを加算する有効ビット加算器を有し,
前記第1〜第Nのエレメント回路それぞれは,前記制御信号が第3の状態のとき,前記有効ビット加算器が出力する加算値を,前記エレメントデータセレクタの出力に代えて,出力する加算値セレクタを有する,付記1に記載の演算回路。
前記第1〜第Nのエレメント回路それぞれは,前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを選択するマスクセレクタを有し,
さらに,前記制御信号が第4の状態のとき,前記第1〜第Nのエレメント回路が入力する第2のオペランドデータに含まれる有効ビットに基づいて,マスク信号とエレメントデータ選択信号を有するコンプレスデコード信号を前記第1〜第Nのエレメント回路別に生成するコンプレスデコーダを有し,
前記第1〜第Nのエレメント回路それぞれは,前記制御信号が第4の状態のとき,前記エレメントデータ選択信号を前記要求エレメント信号に代えて選択する第1のコンプレスセレクタと,前記マスク信号を前記マスクセレクタに出力して前記全てゼロのデータを選択させる第2のコンプレスセレクタとを有する,付記1または2に記載の演算回路。
さらに,前記第1のオペランドデータを入力する第1のオペランドレジスタと,前記第2のオペランドデータを入力する第2のオペランドレジスタと,前記第1,第2のオペランドデータを入力して演算する演算器と,前記演算器が出力する演算結果を格納する結果レジスタとをそれぞれ有する第1〜第N(Nは3以上の整数)のSIMD演算エレメントを有する,付記1に記載の演算回路。
第1のオペランドデータと第2のオペランドデータを入力する入力回路と,要求エレメント信号に基づいていずれかのエレメントのオペランドデータを選択するエレメントデータセレクタとを,それぞれ有する第1〜第N(Nは3以上の複数)のエレメント回路と,
前記各エレメントの入力回路から各エレメントの前記エレメントデータセレクタに前記各エレメントが入力するオペランドデータを供給するデータバスとを有し,
前記第1〜第Nのエレメント回路内の各エレメントデータセレクタは,制御信号が第1の状態のとき,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータを選択して出力し,
さらに,前記制御信号が第3の状態のとき,前記第1〜第Nのエレメント回路が入力する第2のオペランドデータに含まれる有効ビットを加算する有効ビット加算器を有し,
前記第1〜第Nのエレメント回路のそれぞれは,前記制御信号が第3の状態のとき,前記有効ビット加算器が出力する加算値を,前記エレメントデータセレクタの出力に代えて,出力する加算値セレクタを有する,演算回路。
さらに,前記第1のオペランドデータを入力する第1のオペランドレジスタと,前記第2のオペランドデータを入力する第2のオペランドレジスタと,前記第1,第2のオペランドデータを入力して演算する演算器と,前記演算器が出力する演算結果を格納する結果レジスタとをそれぞれ有する第1〜第N(Nは3以上の整数)のSIMD演算エレメントを有する,付記5に記載の演算回路。
第1のオペランドデータと第2のオペランドデータを入力する入力回路と,要求エレメント信号に基づいていずれかのエレメントのオペランドデータを選択するエレメントデータセレクタと,前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを選択するマスクセレクタとを,それぞれ有する第1〜第N(Nは3以上の複数)のエレメント回路と,
前記各エレメントの入力回路から各エレメントの前記エレメントデータセレクタに前記各エレメントが入力するオペランドデータを供給するデータバスとを有し,
前記第1〜第Nのエレメント回路内の各エレメントデータセレクタは,制御信号が第1の状態のとき,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータを選択して出力し,前記各マスクセレクタは,前記制御信号が第1の状態のとき,前記エレメントデータセレクタの出力を選択し,
さらに,前記制御信号が第4の状態のとき,前記第1〜第Nのエレメント回路が入力する第2のオペランドデータに含まれる有効ビットに基づいて,マスク信号とエレメントデータ選択信号を有するコンプレス信号を生成するコンプレスデコーダを有し,
前記第1〜第Nのエレメント回路のそれぞれは,前記制御信号が第4の状態のとき,前記エレメントデータ選択信号を前記要求エレメント信号に代えて選択する第1のコンプレスセレクタと,前記マスク信号を前記マスクセレクタに出力して前記全てゼロのデータを選択させる第2のコンプレスセレクタとを有する,演算回路。
さらに,前記第1のオペランドデータを入力する第1のオペランドレジスタと,前記第2のオペランドデータを入力する第2のオペランドレジスタと,前記第1,第2のオペランドデータを入力して演算する演算器と,前記演算器が出力する演算結果を格納する結果レジスタとをそれぞれ有する第1〜第N(Nは3以上の整数)のSIMD演算エレメントを有する,付記7に記載の演算回路。
第1のオペランドデータを入力する第1のオペランドレジスタと,第2のオペランドデータを入力する第2のオペランドレジスタと,前記第1,第2のオペランドデータを入力して演算する演算器と,前記演算器が出力する演算結果を格納する結果レジスタとをそれぞれ有する第1〜第N(Nは3以上の整数)のSIMD演算エレメントと,
前記第1のオペランドデータと前記第2のオペランドデータを入力する入力回路と,要求エレメント信号に基づいていずれかのエレメントのオペランドデータを選択するエレメントデータセレクタと,前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを選択するマスクセレクタとを,それぞれ有する第1〜第Nのエレメント回路と,
前記各エレメントの入力回路から各エレメントの前記エレメントデータセレクタに前記各エレメントが入力するオペランドデータを供給するデータバスとを有し,
前記第1〜第Nのエレメント回路内の各エレメントデータセレクタは,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータを選択し,前記各マスクセレクタは,前記選択する前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを前記結果レジスタに出力する,演算回路。
前記第1〜第Nのエレメント回路内のエレメントデータセレクタは,制御信号が第1の状態のとき,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータを選択し,
前記第1〜第Nのエレメント回路それぞれは,前記制御信号が第2の状態のとき,自己のエレメント番号とシフト番号に基づいて前記第1または第2のオペランドデータを選択して前記データバスに出力するオペランドセレクタと,前記自己のエレメント番号とシフト番号とに基づいて前記要求エレメント信号を生成するエレメント連結左シフト用加算器(CSL-Adder)とを有する,付記9に記載の演算回路。
前記第1〜第Nのエレメント回路内のエレメントデータセレクタは,制御信号が第1の状態のとき,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータを選択し出力し,
さらに,前記制御信号が第3の状態のとき,前記第1〜第Nのエレメント回路が入力する第2のオペランドデータに含まれる有効ビットを加算する有効ビット加算器を有し,
前記第1〜第Nのエレメント回路それぞれは,前記制御信号が第3の状態のとき,前記有効ビット加算器が出力する加算値を,前記エレメントデータセレクタの出力に代えて,出力する加算値セレクタを有する,付記9に記載の演算回路。
前記第1〜第Nのエレメント回路内のエレメントデータセレクタは,制御信号が第1の状態のとき,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータを選択し,前記マスクセレクタは,前記制御信号が第1の状態のとき,前記エレメントデータセレクタの出力を選択し,
さらに,前記制御信号が第4の状態のとき,前記第1〜第Nのエレメント回路が入力する第2のオペランドデータに含まれる有効ビットに基づいて,マスク信号とエレメントデータ選択信号を有するコンプレス信号を生成するコンプレスデコーダを有し,
前記第1〜第Nのエレメント回路それぞれは,前記制御信号が第4の状態のとき,前記エレメントデータ選択信号を前記要求エレメント信号に代えて選択する第1のコンプレスセレクタと,前記マスク信号を前記マスクセレクタに出力して前記全てゼロのデータを選択させる第2のコンプレスセレクタとを有する,付記9に記載の演算回路。
第1のオペランドデータを入力する第1のオペランドレジスタと,第2のオペランドデータを入力する第2のオペランドレジスタと,前記第1,第2のオペランドデータを入力して演算する演算器と,前記演算器が出力する演算結果を格納する結果レジスタとをそれぞれ有する第1〜第N(Nは3以上の整数)のSIMD演算エレメントと,
前記第1のオペランドデータと前記第2のオペランドデータを入力する入力回路と,要求エレメント信号に基づいていずれかのエレメントのオペランドデータを選択するエレメントデータセレクタと,前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを選択するマスクセレクタとを,それぞれ有する第1〜第Nのエレメント回路と,
前記各エレメントの入力回路から各エレメントの前記エレメントデータセレクタに前記各エレメントが入力するオペランドデータを供給するデータバスとを有する演算回路の制御方法において,
前記第1〜第Nのエレメント回路内の各エレメントデータセレクタは,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータを選択し,
前記各マスクセレクタは,前記選択する前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを前記結果レジスタに出力する,演算回路の制御方法。
AL10−2:エレメントコンカテネートシフトレフト(要素間連結左シフト)演算回路
AL10−3:エレメントサムマスク(要素間加算マスク)演算回路
AL10−4:エレメントコンプレス(要素間圧縮)演算回路
OP1,OP2:オペランドレジスタ
AL10:演算回路
element#0-#3:エレメント回路
100:セレクタ部
R1:SIMDレジスタ
R2:リネーミングレジスタ
R3:結果レジスタ
S1:第1のセレクタ(エレメントデータ交換セレクタ)
S2:第2のセレクタ(マスクセレクタ)
S3:第3のセレクタ(オペランドセレクタ)
S4:第4のセレクタ(要求エレメントセレクタ)
S5:第5のセレクタ(加算値セレクタ)
S6:第6のセレクタ(第1のコンプレスセレクタ)
S7:第7のセレクタ(第2のコンプレスセレクタ)
SW1,SW2:第1のスイッチ,第2のスイッチ
DB:エレメント間データバス群
OP1,OP2:X1レジスタ(オペランドレジスタ)
R−X2:X2レジスタ(入力レジスタ)
R−X3:X3レジスタ
R−X4:X4レジスタ
R−X5:X5レジスタ
R−X5:X6レジスタ
R3:Uレジスタ(結果レジスタ)
want_el[1:0]:要求エレメント信号
mask:マスク信号
CSL-Adder:エレメント結合左シフト用加算器
op-switch:加算器のborrow値
AD−1:有効ビット加算器
sum[2:0]:有効ビット加算値
Compress:コンプレスデコーダ
cmpr#[2]:コンプレスデコード値,マスク信号
cmpr#[1:0]:コンプレスデコード値,エレメントデータ選択信号
E_#0〜E_#3:SIMD演算エレメント
Claims (7)
- 第1のオペランドデータと第2のオペランドデータを入力する入力回路と,要求エレメント信号に基づいていずれかのエレメントのオペランドデータを選択するエレメントデータセレクタとを,それぞれ有する第1〜第N(Nは3以上の複数)のエレメント回路と,
前記各エレメントの入力回路から各エレメントの前記エレメントデータセレクタに前記各エレメントが入力するオペランドデータを供給するデータバスとを有し,
前記第1〜第Nのエレメント回路内の各エレメントデータセレクタは,制御信号が第1の状態のとき,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータをそれぞれ選択して出力し,
前記第1〜第Nのエレメント回路のそれぞれは,前記制御信号が第2の状態のとき,自己のエレメント番号とシフト量に基づいて前記第1または第2のオペランドデータを選択して前記データバスに出力するオペランドセレクタと,前記自己のエレメント番号と前記シフト量とに基づいて前記要求エレメント信号を生成するエレメント連結左シフト用加算器とをそれぞれ有する,演算回路。 - さらに,前記制御信号が第3の状態のとき,前記第1〜第Nのエレメント回路が入力する第2のオペランドデータに含まれる有効ビットを加算する有効ビット加算器を有し,
前記第1〜第Nのエレメント回路それぞれは,前記制御信号が第3の状態のとき,前記有効ビット加算器が出力する加算値を,前記エレメントデータセレクタの出力に代えて,出力する加算値セレクタを有する,請求項1に記載の演算回路。 - 前記第1〜第Nのエレメント回路それぞれは,前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを選択するマスクセレクタを有し,
さらに,前記制御信号が第4の状態のとき,前記第1〜第Nのエレメント回路が入力する第2のオペランドデータに含まれる有効ビットに基づいて,マスク信号とエレメントデータ選択信号を有するコンプレスデコード信号を前記第1〜第Nのエレメント回路別に生成するコンプレスデコーダを有し,
前記第1〜第Nのエレメント回路それぞれは,前記制御信号が第4の状態のとき,前記エレメントデータ選択信号を前記要求エレメント信号に代えて選択する第1のコンプレスセレクタと,前記マスク信号を前記マスクセレクタに出力して前記全てゼロのデータを選択させる第2のコンプレスセレクタとを有する,請求項1または2に記載の演算回路。 - 第1のオペランドデータと第2のオペランドデータを入力する入力回路と,要求エレメント信号に基づいていずれかのエレメントのオペランドデータを選択するエレメントデータセレクタとを,それぞれ有する第1〜第N(Nは3以上の複数)のエレメント回路と,
前記各エレメントの入力回路から各エレメントの前記エレメントデータセレクタに前記各エレメントが入力するオペランドデータを供給するデータバスとを有し,
前記第1〜第Nのエレメント回路内の各エレメントデータセレクタは,制御信号が第1の状態のとき,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータを選択して出力し,
さらに,前記制御信号が第3の状態のとき,前記第1〜第Nのエレメント回路が入力する第2のオペランドデータに含まれる有効ビットを加算する有効ビット加算器を有し,
前記第1〜第Nのエレメント回路のそれぞれは,前記制御信号が第3の状態のとき,前記有効ビット加算器が出力する加算値を,前記エレメントデータセレクタの出力に代えて,出力する加算値セレクタを有する,演算回路。 - 第1のオペランドデータと第2のオペランドデータを入力する入力回路と,要求エレメント信号に基づいていずれかのエレメントのオペランドデータを選択するエレメントデータセレクタと,前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを選択するマスクセレクタとを,それぞれ有する第1〜第N(Nは3以上の複数)のエレメント回路と,
前記各エレメントの入力回路から各エレメントの前記エレメントデータセレクタに前記各エレメントが入力するオペランドデータを供給するデータバスとを有し,
前記第1〜第Nのエレメント回路内の各エレメントデータセレクタは,制御信号が第1の状態のとき,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータを選択して出力し,前記各マスクセレクタは,前記制御信号が第1の状態のとき,前記エレメントデータセレクタの出力を選択し,
さらに,前記制御信号が第4の状態のとき,前記第1〜第Nのエレメント回路が入力する第2のオペランドデータに含まれる有効ビットに基づいて,マスク信号とエレメントデータ選択信号を有するコンプレス信号を生成するコンプレスデコーダを有し,
前記第1〜第Nのエレメント回路のそれぞれは,前記制御信号が第4の状態のとき,前記エレメントデータ選択信号を前記要求エレメント信号に代えて選択する第1のコンプレスセレクタと,前記マスク信号を前記マスクセレクタに出力して前記全てゼロのデータを選択させる第2のコンプレスセレクタとを有する,演算回路 - 第1のオペランドデータを入力する第1のオペランドレジスタと,第2のオペランドデータを入力する第2のオペランドレジスタと,前記第1,第2のオペランドデータを入力して演算する演算器と,前記演算器が出力する演算結果を格納する結果レジスタとをそれぞれ有する第1〜第N(Nは3以上の整数)のSIMD演算エレメントと,
前記第1のオペランドデータと前記第2のオペランドデータを入力する入力回路と,要求エレメント信号に基づいていずれかのエレメントのオペランドデータを選択するエレメントデータセレクタと,前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを選択するマスクセレクタとを,それぞれ有する第1〜第Nのエレメント回路と,
前記各エレメントの入力回路から各エレメントの前記エレメントデータセレクタに前記各エレメントが入力するオペランドデータを供給するデータバスとを有し,
前記第1〜第Nのエレメント回路内の各エレメントデータセレクタは,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータを選択し,前記各マスクセレクタは,前記選択する前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを前記結果レジスタに出力する,演算回路。 - 第1のオペランドデータを入力する第1のオペランドレジスタと,第2のオペランドデータを入力する第2のオペランドレジスタと,前記第1,第2のオペランドデータを入力して演算する演算器と,前記演算器が出力する演算結果を格納する結果レジスタとをそれぞれ有する第1〜第N(Nは3以上の整数)のSIMD演算エレメントと,
前記第1のオペランドデータと前記第2のオペランドデータを入力する入力回路と,要求エレメント信号に基づいていずれかのエレメントのオペランドデータを選択するエレメントデータセレクタと,前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを選択するマスクセレクタとを,それぞれ有する第1〜第Nのエレメント回路と,
前記各エレメントの入力回路から各エレメントの前記エレメントデータセレクタに前記各エレメントが入力するオペランドデータを供給するデータバスとを有する演算回路の制御方法において,
前記第1〜第Nのエレメント回路内の各エレメントデータセレクタは,前記第2のオペランドデータに含まれる前記要求エレメント信号に基づいて,いずれかのエレメントの前記第1のオペランドデータを選択し,
前記各マスクセレクタは,前記選択する前記エレメントデータセレクタの出力または全てゼロのデータのいずれかを前記結果レジスタに出力する,演算回路の制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014207364A JP6308095B2 (ja) | 2014-10-08 | 2014-10-08 | 演算回路及び演算回路の制御方法 |
US14/833,602 US10592247B2 (en) | 2014-10-08 | 2015-08-24 | Arithmetic circuit and control method with full element permutation and element concatenate shift left |
EP15182753.2A EP3007060A3 (en) | 2014-10-08 | 2015-08-27 | Arithmetic circuit and control method for arithmetic circuit |
CN201510594336.XA CN105512092A (zh) | 2014-10-08 | 2015-09-17 | 算术电路和用于算术电路的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014207364A JP6308095B2 (ja) | 2014-10-08 | 2014-10-08 | 演算回路及び演算回路の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016076165A JP2016076165A (ja) | 2016-05-12 |
JP6308095B2 true JP6308095B2 (ja) | 2018-04-11 |
Family
ID=54035145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014207364A Active JP6308095B2 (ja) | 2014-10-08 | 2014-10-08 | 演算回路及び演算回路の制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10592247B2 (ja) |
EP (1) | EP3007060A3 (ja) |
JP (1) | JP6308095B2 (ja) |
CN (1) | CN105512092A (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019074185A1 (en) * | 2017-10-12 | 2019-04-18 | Samsung Electronics Co., Ltd. | ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF |
CN108052483B (zh) | 2017-12-29 | 2021-10-22 | 南京地平线机器人技术有限公司 | 用于数据统计的电路单元、电路模块和装置 |
US11915125B2 (en) * | 2019-10-31 | 2024-02-27 | SK Hynix Inc. | Arithmetic devices for neural network |
US11954457B2 (en) | 2019-10-31 | 2024-04-09 | SK Hynix Inc. | Arithmetic devices for neural network including a function storage circuit and an activation function circuit |
US12014184B2 (en) | 2019-10-31 | 2024-06-18 | SK Hynix Inc. | Arithmetic devices for neural network including an input distribution signal generation circuit, an output distribution signal generation circuit, and an output distribution signal compensation circuit |
US20210133546A1 (en) | 2019-10-31 | 2021-05-06 | SK Hynix Inc. | Arithmetic devices for neural network |
CN111158756B (zh) | 2019-12-31 | 2021-06-29 | 百度在线网络技术(北京)有限公司 | 用于处理信息的方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07110798A (ja) * | 1993-08-19 | 1995-04-25 | Kofu Nippon Denki Kk | 並列処理システム |
JP2002229962A (ja) | 2001-02-06 | 2002-08-16 | Ricoh Co Ltd | 総和値とピーク値を検出するsimd型マイクロプロセッサ |
ATE404923T1 (de) | 2001-03-02 | 2008-08-15 | Mtek Vision Co Ltd | Eine anordnung, um in einem datenprozessor den zugriff zu steuern |
US7716264B2 (en) * | 2005-08-16 | 2010-05-11 | International Business Machines Corporation | Method and apparatus for performing alignment shifting in a floating-point unit |
JP4232838B2 (ja) * | 2007-03-29 | 2009-03-04 | 日本電気株式会社 | 再構成可能なsimd型プロセッサ |
KR101098758B1 (ko) * | 2007-09-20 | 2011-12-26 | 서울대학교산학협력단 | Fp-ra를 구성하는 pe 구조 및 그 fp-ra제어하는 fp-ra 제어 회로 |
GB0809192D0 (en) * | 2008-05-20 | 2008-06-25 | Aspex Semiconductor Ltd | Improvements to data compression engines |
-
2014
- 2014-10-08 JP JP2014207364A patent/JP6308095B2/ja active Active
-
2015
- 2015-08-24 US US14/833,602 patent/US10592247B2/en active Active
- 2015-08-27 EP EP15182753.2A patent/EP3007060A3/en not_active Withdrawn
- 2015-09-17 CN CN201510594336.XA patent/CN105512092A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US10592247B2 (en) | 2020-03-17 |
JP2016076165A (ja) | 2016-05-12 |
US20160103680A1 (en) | 2016-04-14 |
CN105512092A (zh) | 2016-04-20 |
EP3007060A2 (en) | 2016-04-13 |
EP3007060A3 (en) | 2016-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6308095B2 (ja) | 演算回路及び演算回路の制御方法 | |
US10417004B2 (en) | Pipelined cascaded digital signal processing structures and methods | |
US7302627B1 (en) | Apparatus for efficient LFSR calculation in a SIMD processor | |
KR20080015836A (ko) | 구성가능한 프로세싱을 위한 장치 및 방법 | |
US20130212354A1 (en) | Method for efficient data array sorting in a programmable processor | |
EP0901068B1 (en) | Near-orthogonal dual-mac instruction set architecture with minimal encoding bits | |
JP2014530408A (ja) | プロセッシング装置及びスウィズルパターン生成器 | |
US5844828A (en) | Shift circuit and system having the same | |
US6675286B1 (en) | Multimedia instruction set for wide data paths | |
US20120254271A1 (en) | Arithmetic operation circuit and method of converting binary number | |
CN110858137B (zh) | 除以整数常数的浮点除法 | |
JP3940714B2 (ja) | 演算装置、および、暗号・復号演算装置 | |
CN113485751B (zh) | 执行伽罗瓦域乘法的方法、运算单元和电子装置 | |
JP5193358B2 (ja) | 多項式データ処理演算 | |
US9697005B2 (en) | Thread offset counter | |
JP6829838B2 (ja) | 演算装置及び演算システム | |
US20070233767A1 (en) | Rotator/shifter arrangement | |
CN109977701B (zh) | 一种定浮点运算装置 | |
US8892623B2 (en) | Data processing apparatus and method | |
JP2008102715A (ja) | 演算装置 | |
US20150039665A1 (en) | Data processing apparatus and method for performing a narrowing-and-rounding arithmetic operation | |
JP2014164659A (ja) | プロセッサ | |
WO2013095259A1 (en) | Vector execution unit for digital signal processor | |
US8150949B2 (en) | Computing apparatus | |
JP5116499B2 (ja) | 演算処理回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170704 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180205 |
|
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: 20180213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6308095 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |