JP6933648B2 - Fecの符号化および復号を加速するプロセッサ命令 - Google Patents
Fecの符号化および復号を加速するプロセッサ命令 Download PDFInfo
- Publication number
- JP6933648B2 JP6933648B2 JP2018534109A JP2018534109A JP6933648B2 JP 6933648 B2 JP6933648 B2 JP 6933648B2 JP 2018534109 A JP2018534109 A JP 2018534109A JP 2018534109 A JP2018534109 A JP 2018534109A JP 6933648 B2 JP6933648 B2 JP 6933648B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- value
- operand
- instruction
- processing element
- 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
- 238000012545 processing Methods 0.000 claims description 238
- 230000006870 function Effects 0.000 claims description 232
- 230000015654 memory Effects 0.000 claims description 108
- 230000009977 dual effect Effects 0.000 claims description 44
- 238000000034 method Methods 0.000 claims description 36
- 230000004044 response Effects 0.000 claims description 27
- 238000004891 communication Methods 0.000 description 21
- 238000003860 storage Methods 0.000 description 17
- 230000033001 locomotion Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 235000019800 disodium phosphate Nutrition 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000010287 polarization Effects 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 241000169170 Boreogadus saida Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010894 electron beam technology Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 239000000758 substrate Substances 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- 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/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- 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
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
用語
システム概観
FEC関数
f(x、y)≒extsign(x)*extsign(y)*min(|x|,|y|) (式1)
g(u,x,y)=sat(−1u*x+y) (式2)
a<MIN_VALである場合、sat(a)=MIN_VAL
a>MAX_VALである場合、sat(a)=MAX_VAL
MIN_VAL≦a≦MAX_VALである場合、sat(a)=a
図3−処理要素
図4−実行ユニット
図5−MAMINSUM命令のために構成された実行ユニット
sign_xy>0(たとえば、+1)である場合、Z=min_xy
sign_xy=0である場合、Z=0
sign_xy<0(たとえば、−1)である場合、Z=−min_xy
sign_xy=−1である場合、Z=−min_xy
sign_xy≠−1である場合、Z=min_xy
図6−MSIGN命令のために構成された実行ユニット
u=0である場合、g(u,x,y)=(y+x)、そうではない場合、g(u,x,y)=(y−x) (式3)
s<0である場合、g(s,x,y)=(y−x)、そうではない場合、g(s,x,y)=(y+x) (式4)
図7−MADDSIGN命令のために構成された実行ユニット
図8−MADDSIGN命令のために構成された実行ユニット
条項1.
処理要素であって、
第1の入力オペランドおよび第2の入力オペランドを指定する第1の命令を実行するように構成された二重データ−処理経路を備え、前記第1の命令の実行では、前記処理要素は、
前記第1の入力オペランドの絶対値および符号関数を決定し、
前記第2の入力オペランドの絶対値および符号関数を決定し、
前記第1の入力オペランドの前記絶対値および前記第2の入力オペランドの前記絶対値の最小値を備える最小の大きさ値を決定し、
前記第1の入力オペランドの前記符号関数および前記第2の入力オペランドの前記符号関数の積を備える最終符号関数を決定し、
前記最小の大きさ値に前記最終符号関数を適用する
ように構成され、前記最小の大きさ値に前記最終符号関数を適用した結果は、前記第1の入力オペランドおよび前記第2の入力オペランドに関する結果値を構成する処理要素。
条項2.
前記第1の命令は、前記第1の入力オペランドが配置されたメモリ位置を指定することにより前記第1の入力オペランドを指定し、前記第2の入力オペランドが配置されたメモリ位置を指定することにより前記第2の入力オペランドを指定する、条項1に記載の処理要素。
条項3.
前記第1の命令は、複数組の第1の入力オペランドおよび複数組の第2の入力オペランドをさらに指定し、前記第1の命令の実行では、前記処理要素は、前記複数組の第1の入力オペランドおよび前記複数組の第2の入力オペランドに関する複数組の結果値を作り出すように構成される、条項1に記載の処理要素。
条項4.
前記二重データ−処理経路は、第1の二重データ−処理経路を備え、前記処理要素は、
前記第1の二重データ−処理経路と同じ手法で構成された第2の二重データ−処理経路
をさらに備える、条項1に記載の処理要素。
条項5.
処理要素であって、
複数のパイプライン化動作ステージであって、各処理ステージは複数のデータ−処理動作を遂行するようにそれぞれ構成可能な複数のパイプライン化動作ステージを備え、
前記処理要素は、第1の命令を受信したことに応答して、
第1の入力値の絶対値および符号関数を決定し、かつ第2の入力値の絶対値および符号関数を決定するように第1の動作ステージを構成し、
前記第1の入力値の前記絶対値と前記第2の入力値の前記絶対値の最小値を決定し、かつ前記第1の入力値の前記符号関数と前記第2の入力値の前記符号関数の積を備える最終符号関数を決定するように第2の動作ステージを構成し、
前記第1の入力値の前記絶対値と前記第2の入力値の前記絶対値の前記最小値に前記最終符号関数を適用するように第3の動作ステージを構成する
ように構成される処理要素。
条項6.
第1のクロックサイクル中に、前記第1の入力値の前記絶対値および前記符号関数を決定し、かつ前記第2の入力値の前記絶対値および前記符号関数を決定するように前記第1の動作ステージを構成し、
第2のクロックサイクル中に、前記第1の入力値の前記絶対値と前記第2の入力値の前記絶対値の前記最小値を決定し、かつ前記最終符号関数を決定するように前記第2の動作ステージを構成し、
第3のクロックサイクル中に、前記第1の入力値の前記絶対値と前記第2の入力値の前記絶対値の前記最小値に前記最終符号関数を適用するように前記第3の動作ステージを構成する、
条項5に記載の処理要素。
条項7.
前記第1の命令を受信したことに応答して、複数対の入力値を順次処理するようにさらに構成され、前記第1の入力値および前記第2の入力値は、複数対の入力値の第1対を構成し、
複数の連続するクロックサイクルの各クロックサイクル中に、それぞれの対の入力値の各入力値の絶対値および符号を決定するように前記第1の動作ステージを構成する、
条項6に記載の処理要素。
条項8.
第2の異なる命令を受信したことに応答して、前記第1の命令を受信したことに応答して構成されるデータ−処理動作と異なる複数のデータ−処理動作を遂行するように少なくとも1つの動作ステージを構成するように、さらに構成される、条項5に記載の処理要素。
条項9.
前記複数のパイプライン化動作ステージは、第1の複数のパイプライン化動作ステージを備え、前記処理要素は、
前記第1の複数のパイプライン化動作ステージと同じ手法で構成された第2の複数のパイプライン化動作ステージ
をさらに備える、条項5に記載の処理要素。
条項10.
動作ステージを構成するステップは、前記動作ステージにより遂行すべき複数のデータ−処理動作を選択するステップと、前記選択したデータ−処理動作への入力が提供されるレジスタを選択するステップとを備える、条項5に記載の処理要素。
条項11.
処理要素であって、
第1のオペランド値および第2のオペランド値を含む第1の入力オペランド、ならびに第3のオペランド値および第4のオペランド値を含む第2の入力オペランドを指定する第1の命令を実行するように構成された二重データ−処理経路を備え、前記第1の命令の実行では、前記処理要素は、
前記第1のオペランド値に第1の符号関数を適用することにより、第1の符号付値を決定し、
前記第2のオペランド値に第2の符号関数を適用することにより、第2の符号付値を決定し、
前記第3のオペランド値に前記第1の符号付値を加算し、
前記第4のオペランド値に前記第2の符号付値を加算する
ように構成される処理要素。
条項12.
前記第1の命令は、前記第1の符号関数および前記第2の符号関数を指定する、条項11に記載の処理要素。
条項13.
前記第1の命令は、前記第1の入力オペランドが配置されたメモリ位置を指定することにより前記第1の入力オペランドを指定し、前記第2の入力オペランドが配置されたメモリ位置を指定することにより前記第2の入力オペランドを指定する、条項11に記載の処理要素。
条項14.
前記第1の命令は、複数組の第1の入力オペランドおよび複数組の第2の入力オペランドをさらに指定し、前記第1の命令の実行では、前記処理要素は、前記複数組の第1の入力オペランドおよび前記複数組の第2の入力オペランドに関する複数組の結果値を作り出すように構成される、条項11に記載の処理要素。
条項15.
ビットパック型レジスタをさらに備え、前記第1の命令の実行では、前記処理要素は、
前記ビットパック型レジスタ内に、前記複数組の第1の入力オペランドの複数組の第1の入力オペランド値に対応する複数組の第1の符号関数を記憶し、
前記ビットパック型レジスタ内に、前記複数組の第1の入力オペランドの複数組の第2の入力オペランド値に対応する複数組の第2の符号関数を記憶する
ように構成される、条項14に記載の処理要素。
条項16.
前記二重データ−処理経路は、第1の二重データ−処理経路を備え、前記処理要素は、
前記第1の二重データ−処理経路と同じ手法で構成された第2の二重データ−処理経路
をさらに備える、条項14に記載の処理要素。
条項17.
処理要素であって、
第1のオペランド値および第2のオペランド値を含む入力オペランド、ならびに第1の符号関数および第2の符号関数を含む符号オペランドを指定する第1の命令を実行するように構成された二重データ−処理経路を備え、前記第1の命令の実行では、前記処理要素は、
前記第1のオペランド値に前記第1の符号関数を適用し、
前記第2のオペランド値に前記第2の符号関数を適用する
ように構成される処理要素。
条項18.
前記第1の命令は、前記入力オペランドが配置されたメモリ位置を指定することにより前記入力オペランドを指定し、前記符号オペランドが配置されたメモリ位置を指定することにより前記符号オペランドを指定する、条項17に記載の処理要素。
条項19.
前記第1の命令は、複数組の入力オペランドおよび複数組の符号オペランドをさらに指定し、前記第1の命令の実行では、前記処理要素は、前記複数組の入力オペランドおよび前記複数組の符号オペランドに関する複数組の結果値を作り出すように構成される、条項17に記載の処理要素。
条項20.
前記二重データ−処理経路は、第1の二重データ−処理経路を備え、前記処理要素は、
前記第1の二重データ−処理経路と同じ手法で構成された第2の二重データ−処理経路
をさらに備える、条項17に記載の処理要素。
また、以下の段落に従って他の実施形態を実装してもよい。
複数のパイプライン化動作ステージであって、各動作ステージは複数のデータ−処理動作を遂行するように構成可能な複数のパイプライン化動作ステージを備え、
処理要素は、第1の命令を受信したことに応答して、
第1のオペランド値および第2のオペランド値を備える第1の入力オペランドを受信し、
第3のオペランド値および第4のオペランド値を備える第2の入力オペランドを受信し、
第1のオペランド値に第1の符号関数を適用することにより第1の符号付値を決定し、かつ第2のオペランド値に第2の符号関数を適用することにより第2の符号付値を決定するように構成されるように第1の動作ステージを構成し、
第3のオペランド値に第1の符号付値を加算し、かつ第4のオペランド値に第2の符号付値を加算するように第2の動作ステージを構成する
ように構成された処理要素。
第1のクロックサイクル中に、第1の符号付値および第2の符号付値を決定するように第1の動作ステージを構成し、
第2のクロックサイクル中に、第3のオペランド値に第1の符号付値を加算し、かつ第4のオペランド値に第2の符号付値を加算するように第2の動作ステージを構成する。
複数の連続するクロックサイクルの各クロックサイクル中に、それぞれの対の入力オペランドに基づき、それぞれの第1の符号付値およびそれぞれの第2の符号付値を得るように第1の動作ステージを構成する。
第1の複数のパイプライン化動作ステージと同じ手法で構成された第2の複数のパイプライン化動作ステージ
をさらに備える。
Claims (10)
- 処理要素であって、
第1の入力オペランドおよび第2の入力オペランドを指定する第1の命令を実行するように構成された二重データ−処理経路を備え、前記第1の命令の実行では、前記処理要素は、
前記第1の入力オペランドの絶対値および符号関数を決定し、
前記第2の入力オペランドの絶対値および符号関数を決定し、
前記第1の入力オペランドの前記絶対値および前記第2の入力オペランドの前記絶対値の最小値を備える最小の大きさ値を決定し、
前記第1の入力オペランドの前記符号関数および前記第2の入力オペランドの前記符号関数の積を備える最終符号関数を決定し、
前記最小の大きさ値に前記最終符号関数を適用する
ように構成され、前記最小の大きさ値に前記最終符号関数を適用した結果は、前記第1の入力オペランドおよび前記第2の入力オペランドに関する結果値を構成する処理要素。 - 前記第1の命令は、前記第1の入力オペランドが配置されたメモリ位置を指定することにより前記第1の入力オペランドを指定し、前記第2の入力オペランドが配置されたメモリ位置を指定することにより前記第2の入力オペランドを指定する、請求項1に記載の処理要素。
- 前記第1の命令は、複数組の第1の入力オペランドおよび複数組の第2の入力オペランドをさらに指定し、前記第1の命令の実行では、前記処理要素は、前記複数組の第1の入力オペランドおよび前記複数組の第2の入力オペランドに関する複数組の結果値を作り出すように構成される、請求項1に記載の処理要素。
- 前記二重データ−処理経路は、第1の二重データ−処理経路であり、前記処理要素は、
前記第1の二重データ−処理経路と同じ手法で構成された第2の二重データ−処理経路
をさらに備える、請求項1に記載の処理要素。 - 処理要素であって、
複数のパイプライン化動作ステージであって、各動作ステージは複数のデータ−処理動作を遂行するようにそれぞれ構成可能な複数のパイプライン化動作ステージを備え、
前記処理要素は、第1の命令を受信したことに応答して、
第1の入力値の絶対値および符号関数を決定し、かつ第2の入力値の絶対値および符号関数を決定するように第1の動作ステージを構成し、
前記第1の入力値の前記絶対値と前記第2の入力値の前記絶対値の最小値を決定し、かつ前記第1の入力値の前記符号関数と前記第2の入力値の前記符号関数の積を備える最終符号関数を決定するように第2の動作ステージを構成し、
前記第1の入力値の前記絶対値と前記第2の入力値の前記絶対値の前記最小値に前記最終符号関数を適用するように第3の動作ステージを構成する
ように構成される処理要素。 - 第1のクロックサイクル中に、前記第1の入力値の前記絶対値および前記符号関数を決定し、かつ前記第2の入力値の前記絶対値および前記符号関数を決定するように前記第1の動作ステージを構成し、
第2のクロックサイクル中に、前記第1の入力値の前記絶対値と前記第2の入力値の前記絶対値の前記最小値を決定し、かつ前記最終符号関数を決定するように前記第2の動作ステージを構成し、
第3のクロックサイクル中に、前記第1の入力値の前記絶対値と前記第2の入力値の前記絶対値の前記最小値に前記最終符号関数を適用するように前記第3の動作ステージを構成する、
請求項5に記載の処理要素。 - 前記第1の命令を受信したことに応答して、複数対の入力値を順次処理するようにさらに構成され、前記第1の入力値および前記第2の入力値は、複数対の入力値の第1対を構成し、
複数の連続するクロックサイクルの各クロックサイクル中に、それぞれの対の入力値の各入力値の絶対値および符号関数を決定するように前記第1の動作ステージを構成する、
請求項6に記載の処理要素。 - 第2の異なる命令を受信したことに応答して、前記第1の命令を受信したことに応答して構成されるデータ−処理動作と異なる複数のデータ−処理動作を遂行するように少なくとも1つの動作ステージを構成するように、さらに構成される、請求項5に記載の処理要素。
- 前記複数のパイプライン化動作ステージは、第1の複数のパイプライン化動作ステージであり、前記処理要素は、
前記第1の複数のパイプライン化動作ステージと同じ手法で構成された第2の複数のパイプライン化動作ステージ
をさらに備える、請求項5に記載の処理要素。 - 動作ステージを構成するに際しては、前記動作ステージにより遂行すべき複数のデータ−処理動作を選択するステップと、前記選択したデータ−処理動作への入力が提供されるレジスタを選択するステップとを実行する、請求項5に記載の処理要素。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562271578P | 2015-12-28 | 2015-12-28 | |
US62/271,578 | 2015-12-28 | ||
PCT/US2016/068692 WO2017117116A1 (en) | 2015-12-28 | 2016-12-27 | Processor Instructions to Accelerate FEC Encoding and Decoding |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019508785A JP2019508785A (ja) | 2019-03-28 |
JP6933648B2 true JP6933648B2 (ja) | 2021-09-08 |
Family
ID=57822083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018534109A Active JP6933648B2 (ja) | 2015-12-28 | 2016-12-27 | Fecの符号化および復号を加速するプロセッサ命令 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10691451B2 (ja) |
EP (2) | EP3686735B1 (ja) |
JP (1) | JP6933648B2 (ja) |
CN (1) | CN108701021B (ja) |
WO (1) | WO2017117116A1 (ja) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4589067A (en) * | 1983-05-27 | 1986-05-13 | Analogic Corporation | Full floating point vector processor with dynamically configurable multifunction pipelined ALU |
JP3672076B2 (ja) * | 1999-09-22 | 2005-07-13 | 松下電器産業株式会社 | 演算器および演算方法およびプロセッサ |
US6922716B2 (en) * | 2001-07-13 | 2005-07-26 | Motorola, Inc. | Method and apparatus for vector processing |
US7937559B1 (en) * | 2002-05-13 | 2011-05-03 | Tensilica, Inc. | System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes |
KR100891782B1 (ko) * | 2002-06-11 | 2009-04-07 | 삼성전자주식회사 | 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법 |
US7415594B2 (en) | 2002-06-26 | 2008-08-19 | Coherent Logix, Incorporated | Processing system with interspersed stall propagating processors and communication elements |
US20080281897A1 (en) * | 2007-05-07 | 2008-11-13 | Messinger Daaven S | Universal execution unit |
US20090113174A1 (en) * | 2007-10-31 | 2009-04-30 | Texas Instruments Incorporated | Sign Operation Instructions and Circuitry |
EP2366144B1 (en) * | 2008-10-15 | 2015-09-30 | Hyperion Core, Inc. | Sequential processor comprising an alu array |
JP2011028543A (ja) * | 2009-07-27 | 2011-02-10 | Renesas Electronics Corp | 情報処理システム及びその情報処理方法 |
CN103154925B (zh) | 2010-10-15 | 2016-08-24 | 相干逻辑公司 | 多处理器系统中的通信禁用 |
WO2012093288A1 (en) * | 2011-01-03 | 2012-07-12 | Freescale Semiconductor, Inc. | Integrated circuit device and method for performing conditional negation of data |
US9176927B2 (en) * | 2011-11-08 | 2015-11-03 | The Royal Institution For The Advancement Of Learning/Mcgill University | Methods and systems for decoding polar codes |
CN104903855B (zh) * | 2012-11-06 | 2018-09-18 | 相干逻辑公司 | 用于配置多处理器阵列的方法和设备以及开发系统 |
JP2016526220A (ja) | 2013-05-24 | 2016-09-01 | コーヒレント・ロジックス・インコーポレーテッド | プログラム可能な最適化を有するメモリネットワークプロセッサ |
EP3033862A1 (en) * | 2013-08-16 | 2016-06-22 | Origin Wireless, Inc. | Time-reversal wireless systems having asymmetric architecture |
-
2016
- 2016-12-27 EP EP20161395.7A patent/EP3686735B1/en active Active
- 2016-12-27 WO PCT/US2016/068692 patent/WO2017117116A1/en active Application Filing
- 2016-12-27 EP EP16826852.2A patent/EP3398053B1/en active Active
- 2016-12-27 CN CN201680080836.4A patent/CN108701021B/zh active Active
- 2016-12-27 US US15/390,910 patent/US10691451B2/en active Active
- 2016-12-27 JP JP2018534109A patent/JP6933648B2/ja active Active
-
2020
- 2020-06-22 US US16/907,715 patent/US11327753B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170185399A1 (en) | 2017-06-29 |
WO2017117116A1 (en) | 2017-07-06 |
CN108701021B (zh) | 2023-06-09 |
EP3398053B1 (en) | 2020-03-25 |
US11327753B2 (en) | 2022-05-10 |
EP3398053A1 (en) | 2018-11-07 |
US10691451B2 (en) | 2020-06-23 |
JP2019508785A (ja) | 2019-03-28 |
US20200319880A1 (en) | 2020-10-08 |
CN108701021A (zh) | 2018-10-23 |
EP3686735A1 (en) | 2020-07-29 |
EP3686735B1 (en) | 2022-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10545865B2 (en) | Systems and methods for implementing low-latency lookup circuits using sparse hash functions | |
US20160218750A1 (en) | Parity check code encoder | |
US20090300336A1 (en) | Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions | |
US9413390B1 (en) | High throughput low-density parity-check (LDPC) decoder via rescheduling | |
JP2016526220A (ja) | プログラム可能な最適化を有するメモリネットワークプロセッサ | |
Giard et al. | Low-latency software polar decoders | |
Andrade et al. | Design space exploration of LDPC decoders using high-level synthesis | |
US7895417B2 (en) | Select-and-insert instruction within data processing systems | |
Giard et al. | High-speed decoders for polar codes | |
Hassan et al. | Performance evaluation of dynamic partial reconfiguration techniques for software defined radio implementation on FPGA | |
JP5821332B2 (ja) | リコンフィグ可能な集積回路装置 | |
JP6933648B2 (ja) | Fecの符号化および復号を加速するプロセッサ命令 | |
CN102201817B (zh) | 基于存储器折叠架构优化的低功耗ldpc译码器 | |
US11704535B1 (en) | Hardware architecture for a neural network accelerator | |
US10644725B1 (en) | Interleaved data block processing in low-density parity-check (LDPC) encoder and decoder | |
US10387155B2 (en) | Controlling register bank access between program and dedicated processors in a processing system | |
Kong | Low Density Parity Check Encoder and Decoder on SiLago Coarse Grain Reconfigurable Architecture | |
Gal et al. | GPU-like on-chip system for decoding LDPC codes | |
Lapotre et al. | Stopping-free dynamic configuration of a multi-ASIP turbo decoder | |
Lu | Implementing a GPU-Assisted LDPC Decoder for 5G New Radio | |
Maier et al. | Implementation of decoders for symmetric low density parity check codes on parallel computation platforms using OpenCL | |
Sani et al. | Embedding polynomial time memory mapping and routing algorithms on-chip to design configurable decoder architectures | |
US9916108B2 (en) | Efficient loading and storing of data between memory and registers using a data structure for load and store addressing | |
Romani | Hardware Acceleration of 5G LDPC using datacenter-class FPGAs | |
Wang et al. | A Novel Parallel Viterbi Decoding Scheme for NoC‐Based Software‐Defined Radio System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191216 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210309 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210608 |
|
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: 20210720 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210819 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6933648 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |