JP7428787B2 - 再構成可能プロセッサ回路アーキテクチャ - Google Patents
再構成可能プロセッサ回路アーキテクチャ Download PDFInfo
- Publication number
- JP7428787B2 JP7428787B2 JP2022516115A JP2022516115A JP7428787B2 JP 7428787 B2 JP7428787 B2 JP 7428787B2 JP 2022516115 A JP2022516115 A JP 2022516115A JP 2022516115 A JP2022516115 A JP 2022516115A JP 7428787 B2 JP7428787 B2 JP 7428787B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- circuit
- bit
- multiplier
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- 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/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
- H03K19/21—EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computer Hardware Design (AREA)
- Nonlinear Science (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
- Complex Calculations (AREA)
- Microcomputers (AREA)
Description
図1は、フラクタルコア200のアレイを有する再構成可能プロセッサ100のブロック図である。図2は、フラクタルコア200およびRAE回路300の高レベルブロック図である。図3は、隣接する計算コア200間に複数の直接接続を形成する第2の相互接続ネットワーク220を示すフラクタルコア200のアレイのブロック図である。図4は、フラクタルコア200の詳細なブロック図である。図1~4を参照すると、集積回路またはチップなどの再構成可能プロセッサ100は、プロセッサ回路130と、複数の計算(または「フラクタル」)コア200(すなわち、図中では「FC」と略記することができ、本明細書では「フラクタルコア」200とも呼ぶ計算コア回路)とを備える。複数の計算(フラクタル)コア200は、典型的にはアレイ状に配列され、複数のルーティング(スイッチング)回路225および典型的には階層的な(例えば、FATツリーとして実装されているようなものであり、そのような相互接続ネットワークはすべて同等であり、開示の範囲内にあると考えられる)他の接続を有する第1の相互接続ネットワーク120を介してプロセッサ回路130に結合される。第2の相互接続ネットワーク220も図示されており、これは、第2の相互接続ネットワーク220の北(N)、南(S)、東(E)及び西(W)接続として図示されているように、隣接する(例えば最近接)計算コア200の入力と出力との間に複数の直接、経路指定されていないまたはスイッチされていない接続を提供する。第1の相互接続ネットワーク120は、以下により詳細に説明する通り、計算コア200のアレイ間のデータパケットルーティングのために複数のレベルを有し、第2の相互接続ネットワーク220は、様々な計算コア200間に複数の直接接続を提供する。サフィックスのためのビットの位置を含む種々のデータパケットのフォーマットは、図68および69を参照して以下に説明される。
図2を参照すると、計算コア200は、再構成可能演算エンジン300または再構成可能演算エンジン回路300(本明細書では「RAE」300またはRAE回路300と呼ぶ)と呼ばれる再構成可能演算回路300を含む。RAE回路300は、(概してRAE入力マルチプレクサ105を介して)第1の複数の入力マルチプレクサ205に結合され、および複数の出力マルチプレクサ110に結合される。第1の複数の入力マルチプレクサ205および複数の出力マルチプレクサ110は、第1の相互接続ネットワーク120および第2の相互接続ネットワーク220に結合される。RAE回路300はまた、メモリ150と、オプションの制御インターフェース回路250とに結合される。制御インターフェース回路250は、例えば、RAE回路300の構成および/または命令を記憶するためのオプションとしての構成記憶装置またはメモリ180を含むことができ、オプションのレジスタ、オプションのプログラムカウンタ、およびオプションの命令デコーダも含むことができ、別のオプションとして、Cコードを処理するための種々の状態機械および他の制御論理回路を含むことができるがこれに限定されない。メモリ150は、演算対象のデータ(operand data)を記憶することができ、オプションとして、RAE回路300による実行のために計算コア200についての構成または他の命令を記憶することもできる。代替的に、RAE 300による実行のための計算コア200についての構成または他の命令は、制御インターフェース回路250に含まれ得るレジスタ(例えば、構成記憶装置またはメモリ180)に格納され得る。代表的な実施形態では、オプションとして、後述するように、構成記憶装置またはメモリ180がRAE回路300内に分散される。計算コア200は、図4を参照して説明した他の構成要素も含むことができる。代表的な実施形態では、メモリ150は、例えば、SRAMを使用して実装されるが、これに限定されない。入力マルチプレクサ205および出力マルチプレクサ110を介してデータ選択を提供するために使用されるルーティングコントローラ820の代表的な実施形態が、図70を参照して以下に示され、説明される。
図2、5、および6を参照すると、RAE回路300は、入力並べ替えキュー350と、乗算器シフタコンバイナネットワーク310(乗算器シフタコンバイナネットワーク310またはシフタコンバイナネットワーク310とも呼ばれる)と、アキュムレータ315と、1つまたは複数の制御論理回路275とを備える。入力並べ替えキュー350は、データ入力(第1(「X」)入力365、第2(「Y」)入力370、第3(「Z」)入力375)に(およびRAE回路対400の隣接するRAE回路300のデータ入力に)結合され、入力並べ替えキュー350は、乗算器シフタコンバイナネットワーク310および一つまたは複数の制御論理回路275に結合され、これらは、アキュムレータ315にも結合される。乗算器シフタコンバイナネットワーク310は、シフタ回路425と、複数の直列結合加算器(桁上げ保存構成)430,435,440を含む加算器ツリーとを備え、従って、シフト及び加算に加えて、乗算の複数のモードを実行することが可能である(また、単一命令多重データ(「SIMD」)ドット積を計算するためにも利用される)。図5に示される代表的な実施形態では、追加の(構成可能な)乗算器305は、別々の構成要素として、またはシフ-コンバイナネットワーク310の一部として、RAE回路300に含まれてもよく、全体として含まれてもよい。乗算器シフタコンバイナネットワーク310はまた、第3の相互接続ネットワーク295の専用通信線360,445(例えば、配線)を介して、(RAE回路対400およびRAE回路クアッド450の)隣接するRAE回路300の乗算器シフタコンバイナネットワーク310に結合される。
1.IEEE単一または整数上で、(パイプライン化された)サイクル当たり最大27×27の乗算を実行可能であり、
2.2つの並列IEEE半精度、BFLOAT16、または(パイプライン化された)サイクル当たりINT16整数の乗算を実行可能であり、
3.(パイプライン化された)サイクル当たり4つの並列IEEE1/4精度またはINT8を実行可能であり、
4.単一のRAE回路300は、2つの並列IEEEハーフ、すなわちBFLOAT16またはINT16の和を(パイプライン化された)サイクル当たり乗算可能であり、
5.4つの並列IEEEクオーターの和または(パイプライン化された)サイクル当たりINT8乗算を実行可能であり、
6.1/4精度または(パイプライン化された)サイクル当たりINT8複素乗算-2つの複素入力を1つの複素出力として実行可能であり、
7.上記の機能のいずれかを有する融合加算を実行可能であり、
8.4サイクルで1つのIEEE倍を実行可能であり、
9.上記のいずれかの累積を実行可能であり、
10.任意のビット数だけ64、32、2×16または4×8ビットシフトを実行可能であり、
11.任意のビット数だけ64、32、2×16または4×8ビット回転を実行可能であり、
12.32ビットのビットごとのブール論理を実行可能であり、および、
13.ストリーム、2つの演算対象のソートにおいて最小または最大を比較することが可能である。
1.サイクル当たり一つのINT32乗算を実行可能であり、
2.4サイクルシーケンスで1つの(アキュムレータを使用して432 × 32部分を加算する)INT64乗算を実行可能であり、
3.2つのIEEEシングルの和またはサイクルあたり2つのINT 24乗算を実行可能であり、
4.4つの並列IEEE半精度、BFLOAT 16またはINT 16の和を(パイプライン化された)サイクル当たり乗算することが可能であり、
5.8つの並列IEEE1/4精度の和または(パイプライン化された)サイクル当たりINT8乗算を実行可能であり、
6.1つの半精度または(パイプライン化された)サイクル当たりINT16複素乗算-2つの複素入力、1つの複素出力、4つの乗算、および2つの加算を実行可能であり、
7.上記の機能のいずれかを有する融合加算を実行可能であり、および、
8.上記のいずれかの累積を実行可能である。
乗算器305は、符号付き固定小数点および符号なし固定小数点のための1レーン、2レーン、および4レーンSIMD演算、ならびに二重、単一、半、および1/4のIEEE精度の浮動小数点、ならびにBFLOATフォーマットをサポートするように具体的に定式化される。これらのフォーマットは、様々なサイズの乗算器と、SIMDモードをサポートするために乗算器305を破壊する能力と、高次モードのためにそれを結合する能力とを必要とする。モードと関連する乗数サイズを表1にまとめる。さらに、乗算器305は、RAE回路クアッド450内の乗算器の積の和を乗算器ツリー内で実行することを可能にし、同じRAE回路クアッド450の乗算器305を結合して、最も一般的に使用される単精度ユースケースのためにALUサイズを最小化するために、使用頻度の低い倍精度およびINT32乗算器を生成することを可能にする。
図7は、ネイティブ27×27モードにおける乗算器305を示す。ブロック402は、仮想8×8個の部分積を表し、ブロック402内の数字404は、部分積を合計するときにその部分積に適用される8ビット左シフトの数を表す。図7の上側および右側の網掛けブロックは、24ビットモードでは強制的にゼロになる。下部に沿ったX入力は列内のすべてのセルにブロードキャストされ、左側に沿ったY入力は行内のすべてのセルにブロードキャストされる。この表現は説明のためだけのものであることに注意すべきである。24ビットモードは、単精度浮動小数点および24ビット整数モードに使用されます。24ビットモードでは、27ビットの乗算器が使用され、各入力の上位3ビットが強制的に0に設定される。あるいは、ゼロ化された入力ビットに対応する個々のビット積を強制的に0にしてもよい。浮動小数点形式には、ビット31の符号ビットと、ビット22:0の仮数ビットが含まれる。指数部がすべてゼロでない限り「1」である隠しビットもあり、その場合は「0」である。乗算器への入力ゲーティングは、XおよびY入力上の入力ビット42:0を乗算器アレイのビット32:0に割り当て、浮動小数点が各入力のビット23を「1」に強制し、0が27×27乗算器の各入力上の上位3ビットをパディングする。
図8は、2つの16×16SIMD乗算器として32×32乗算器を使用することを示す。部分積配列内の対角線上にない部分積はゼロ化されるため、残りのゼロ化されていない部分積はすべて入力の独立したサブセットを使用し、ネイティブ配列内のセルの重み付けによって、配列の出力で積が重複しないようにする。したがって、図8に示すように、対角線から部分積403をゼロにすることによって、他の点では修正されていない符号なし乗算器を、任意のサイズのより小さい独立乗算器のグループとして使用することができる。図示のケースでは、32×32符号なし乗算器を使用して、2つの16×16乗算を実行する。乗算が符号なしである限り、16ビット入力と32ビット積は重複しない。同様の方法を使用して、32×32符号なし乗算器で4つの8×8符号なし乗算を実行する。ゼロ化された部分積のためのハードウェアは、SIMD演算のために存在する必要がないことに留意されたい。これらが存在する場合は、結果として得られる部分積が目的の部分積と結合するのを防ぐために、それらは無効にされる。
図12は、2つのRAE乗算器305のシフトされた和によって形成される32×32乗算を示し、そのうちの1つは修正される。2つの隣接する乗算器305は、INT32およびINT64モードで使用するための単一サイクルパイプライン化された32×32乗算器を構成するために結合される。結果として得られる乗算器305は符号付きと符号なしの両方のモードで動作し、整数演算に使用される。乗算器305は、24×24(強制的に0にされたまたは無効にされた部分積両方の上位3ビット)用に構成されたRAE回路対400の2つの乗算器305を使用して構成される。下位乗算器は、ネイティブの24×24であり、X入力365およびY入力370のそれぞれの下位24ビットを受け入れる。第2の乗算器305は、図12に示すように、上側および右側416で乗算器アレイを8ビット拡張するために「L」形状の部分積を形成するように修正される。
図13は、4つの修正されていないRAE乗算器305のシフトされた和によって形成される54×54の乗算を示す。IEEE倍精度モードには、53×53ビットの符号なし乗算器305が必要である。この場合、RAE回路クアッド450内の4つの27×27乗算器305は、単に、合計の適切なシフトおよび入力の再割り当てとともに合計される。加算は、3×9=27ビット左シフトの右乗算器を左乗算器に加算し、次に、図13に示すように、その上の和を下の和にさらに27ビットシフトして加算し、54×54積に到達する。なお、左側の乗算器への同じY入力ビットは、右側の乗算器にも分配されるべきであり、乗算器の下の行に適用される同じX入力は、上側の行にも適用されるべきである。RAE回路クアッド450内の配線は、これを可能にするための専用ルーティングを含む。
128ビットアキュムレータと結合されたシフトコンバイナ設計は、32ビット乗算累算として2つのRAE回路300を使用して64ビット乗算の4サイクル逐次計算を可能にする。入力とシフトコンバイナの第2のレイヤは、4つの32×32の部分積を計算し、128ビットの結果に対してそれらを合計するために適切な量だけそれらをシフトするようにシーケンスされる。下*下部分積はシフトされず、上*下および下*上部分積は32ビットだけ左シフトされ、上*上部分積は64ビットだけ左シフトされてから、累積合計に加算される。シフトは、後述する乗算後乗算器シフタコンバイナネットワーク310で行われる。出力には、128ビット製品の32ビットまたは64ビットセグメントを取り込み、選択し、出力するためのセレクタおよび/またはシフトレジスタが必要である。符号付き演算では、各64ビット入力の上半分のみが符号付きであるため、乗数への各入力は、上半分は符号付き、下半分は符号なしとして順序付けされる必要がある。部分積シーケンスは、各入力の下半分の積で始まり、各入力の上半分の積で終わる。符号付きコントロールは、各入力の上半分のみを符号付きとして処理するシーケンスでシーケンス処理される。
これは、各SIMDレーン間に少なくとも1つのバッファビットまたは桁上げブロッキング論理が必要であることを意味している。この設計では、レーンを8ビットの倍数で維持することを選択する。そのため、各レーンのガードビットに必要な入力の余分な切り替えを回避するために、レーン境界で桁上げブロッキングゲート(carry-blocking gating)が使用される。ガードビットがない場合、桁上げブロッキングは、補正が適用される段階および後続のすべての段階で適用される。このため、この設計では、乗算器の桁上げツリーの出力まで補正を延期する。
乗算器指数処理(ゼロ検出、加算、アラインメントシフト)は、指数論理335において行われる。シフトコンバイナ指数論理335の詳細は、以下で説明する。指数ビットのマスクされていない値は、変更されることなく、乗算器シフトコンバイナの指数論理335に渡される。
基本的な乗算器の設定には27×27乗算、SIMD用の32×32の削減、32ビット拡張の3つがある。また、24×24は27×27のサブセットであり、各入力の3msbsが強制的に0になり、4レーンSIMDは2レーンSIMDのサブセットであり、8×8ビット部分積の4ブロックが無効になり、0に強制される。浮動小数点モードでは、入力にマスクが適用され、符号と指数に関連付けられたビットが0になる。SIMD構成は、上述したように加算器ツリーの一部を移動することによって達成される、いくつかの部分積の重み変更を必要とする。他のすべての構成は、入力を部分的なプロダクトのグループに切り替えることによって厳密に処理される。
図17は、プルーニングされた32ビットSIMD拡張を有する27×27乗算器のドット図である。乗算は、小学校で教えられている長尺乗算と同様の方法で行われるが、10進基数ではなく2進基数を使用して行われる。長尺乗算は、実際には2つの異なる操作、すなわち、部分積の生成と、それらの部分積の累積である。被乗数と乗数の各桁の対ごとに部分積が生成される。結果の部分積は、その部分積に使用される桁の重みの合計によって重み付けされる。被乗数の桁の重みは数系基数の累乗であるので、重みは位置シフトによって達成される。これらのシフトは、部分積の右側に適切な数のゼロを挿入することによって表される。各部分積のシフトpは、被乗数と乗数の位置シフトmとnの合計に等しくなる。2進乗数では、1ビットの部分積は論理積と同じである(1*1の組み合わせのみが0による乗算ではない)。Nビット×Nビット乗算器に対しては、N2個の1ビット部分積が存在し、各ビットは、被乗数および乗数からのビットの一意的な対の結果である。図17は、上述の一対の16×16SIMD乗算器を収容するように増強された27×27乗算器を示す。この図の各点は、1×1の部分積を表す。同じ積の重みのドットが縦に並ぶように配置されます。このレイアウトは、長尺乗算における部分積を思い起こさせる。ここでは、各行は乗算器の1桁に乗算器の各桁を掛けたものである(この場合、各積は0または1であるため、次の桁への桁移動はない)。
図23は、乗算後乗算器シフタコンバイナネットワーク310の論理ブロック図である。乗算器305の後には、乗算器シフタコンバイナネットワーク310が続き、これは、基数32指数を有するシステムに変換するために、仮数を最大32ビット左シフトするように主に設計されている。基数32の指数を使用すると、臨界アキュムレータループ内での動的アラインメントのシフトが簡単になる。この乗算器シフタコンバイナネットワーク310はまた、SIMDモードのうちの1つである場合に、SIMDレーン309(4つのSIMDレーン309A、309B、309C、309Dとして図示される)を広げて、蓄積および位置合わせシフトのための空間を可能にするように働く。乗算器シフタコンバイナネットワーク310はまた、RAE回路300内のSIMD積の単一クロック和のためにSIMDレーンを別々に整列させ、それらを合計し、またRAE回路クアッド450内の四つのRAE300からの積の合計を合計する能力を含む。
1.浮動小数点の積を基数32の指数に変換する(5lsbsの指数の値によって左シフトする)機能と、
2.被乗数が非正規化右シフトまたは過剰右シフトの場合に、乗数積を強制的に0にする機能と、
3.0ビット、32ビット、64ビット、または96ビットの右シフトを追加して、他の加数に対する浮動小数点アラインメントを完了する機能と、
4.アキュムレータ315に一致する128ビット(4つの32ビットレーン、2つの64ビットまたは1つの128ビット)レーン309へSIMDレーンを拡張する機能と、
5.標識2の補完積をレーンの幅に拡張する機能と、
6.SIMD内積モードのSIMDレーンを合計する機能と
7.内積モード用に内の他のRAEからの積の合計を追加する機能と、
8.RAE回路300の単一サイクル32×32および倍精度乗算の部分積を結合する機能と、
9.INT64の乗算をサポートするために、64ビット製品を128ビットの上位、中間、または下位に配置する機能と
を実行する。
1.5ビット0:31ビットの左シフト制御で、4レーン309毎に設定される。
レーンは、5ビット符号なしバイナリ制御で指定されたビット数だけ左にシフトされる。
2.1ビット0/32ビットの右シフト制御で、4レーンに1つずつ。「1」を指定するとシフトが発生し、「0」を指定するとデータは変更されずに渡される。
3.4つのレーンごとに1つずつ、1ビットのゼロサイズ制御。「1」はレーンを0にし、「0」はデータを変更せずに渡す。
4.1ビット0/32ビット右シフト制御(2つのダブルレーンごとに1つずつ)。
「1」を指定するとシフトが発生し、「0」を指定するとデータは変更されずに渡される。
5.最上位32ビットレーンの1ビット0/64右シフト制御。「1」を指定するとシフトが発生し、「0」を指定するとデータは変更されずに渡される。
6.最下位32ビットレーンの1ビット0/64左シフト制御。「1」を指定するとシフトが発生し、「0」を指定するとデータは変更されずに渡される。
桁上げベクトルビットは、Z入力を加える3:2圧縮器456に先行する積データ経路上の4:2圧縮器段階454からの前のビット位置からブロックされる各アクティブレーンのLSBへの桁上げ入力を置き換える。
レーンが結合されると、その桁上げベクトルLSBは、次の下位レーンの桁上げ出力から取得される。
Z入力375は、Z入力シフタ330ブロックの算術出力をオフにすることによって無効にされ、それによって出力は強制的にゼロになる。
図30は、Z入力回転/シフト論理330データ経路を示すブロック図である。RAE300は、アキュムレータ/加算器への加算入力、並びにブール論理回路325及び比較回路320への入力として機能する第3の32ビットZ入力375を含む。このZ入力は、隣接するRAE300(対の他のRAE300)のZ入力375またはこのRAE300のY入力370のいずれかをZ入力375に連結することによって、64ビットに拡張可能である。拡張ソースの選択は、RAE300モード設定によって制御される。Z入力375は、乗算器積アラインメントに一致するようにアラインメントシフトを実行するように設計されたシフトネットワークによって調整される。このシフトネットワークは、ワードサイズが8ビット、16ビット、32ビット、または64ビットの場合に必要なブールシフト/回転関数によっても使用される。ブール論理回路325の入力はまた、min-max比較およびソートのための比較ブロック入力の1つに接続される。Z入力375およびZ入力回転/シフト論理330は、算術演算および論理演算の両方のため1レーン、2レーンおよび4レーンSIMD演算をサポートする。Z入力375に関連するZ入力回転/シフト論理330は、
1.各SIMDレーンの浮動小数点入力の隠しビットを回復する関数と、
2.浮動小数点モードで非正規(指数=0)入力が提示された場合の出力データを0にする関数と、
3.加算器に合わせてSIMDレーンを128ビット(4つの32ビットレーン、2つの64ビットまたは1つの128ビット)に拡張する関数と、
4.浮動小数点の符号の大きさを2の補数仮数に変換する関数と、
5.2の補数出力をレーンの幅に符号拡張する関数と、
6.8、16、32、および64ビットレーンでの整数論理シフトおよび回転操作する関数と、
7.64ビット入力を128ビットの32ビット境界の上、中央、または下の位置に配置することが可能な関数と、
8.レーンごとに0、反転、または否定の演算出力を選択する関数と、
9.レーンごとに0または反転論理出力を選択する関数と、
10.絶対値関数と、
11.浮動小数点数を基数32の指数に変換する(5lsbsの指数で左シフト)関数と
12.0ビット、32ビット、64ビット、または96ビットの右シフトを追加して、乗数に対する浮動小数点の調整を完了する関数と、
13.レーンの並べ替え(8ビットレーン)関数と
をなす。
1.入力マスク:入力マスクはマスクされたビットをゼロにして指数をフィルタリングし、浮動小数点モードのシフトデータからビットを符号化する。ゼロ指数またはレーン無効化(レーンをゼロにすることができるデータ経路にはいくつかのポイントがあるが、エントリポイントは設計者の裁量に任されている)のためのゼロ レーンの手段として使用できる。入力マスクは、SIMDモードと入力フォーマットによって設定される。
2.隠しビット:浮動小数点フォーマットが選択されている場合、隠しビットは浮動小数点隠しビットの位置に「1」ビットを強制する。隠しビットは、レーンのゼロ化によって上書きされる。隠しビットはSIMDモードと入力フォーマットに依存する。
3.符号拡張:8ビット入力レーンごとに符号拡張制御がある。設定されている場合、シフタネットワークは、128ビットシフタの幅までそのレーン内を符号拡張する。レーンを組み合わせて16、32、または64ビットの入力レーンを作成する場合は、最も重要なレーンのみに符号拡張を設定する必要がある。符号拡張は符号付き整数モードにのみ使用し、レーン内に符号拡張を含めるためにSIMDモードに適したレーンマスクと組み合わせて使用する必要がある。符号拡張制御はSIMDモードで設定され、format=signedと入力する。
4.シフト距離ソース:シフト距離ソースコントロールは、シフト距離のソースがコンフィギュレーションビットとRAE X入力のどちらであるかを選択する。
5.構成シフト距離:シフト距離ソースが環境設定に設定されている場合に、各レーンの固定シフト距離を設定する。シフト距離は、レーンのシフト距離に到達するために、各レーンのシフトバイアスおよび指数シフトに加算さる。シフト距離ソースがX入力に設定されている場合、コンフィギュレーションのシフト距離は無視される。
6.シフトバイアス:各レーンの7ビットのシフトバイアスの値がシフト距離と指数シフトに追加され、8ビットレーンごとの合計シフト設定に到達する。
7.浮動小数点整列:浮動小数点整列は、double、single、およびbfloatモードのアラインメントのための追加の32ビット右シフトの倍数のソースを示す。
これは浮動小数点形式で設定される。
8.シフト共有:シフト共有は、8ビットレーンごとにシフトを制御するレーンを選択する。これにより、シフト制御を複数の8ビットレーンで共有できるため、各レーンでシフト設定を重複させる必要がない。
9.レーンマスク選択:レーンマスクは、各レーンのシフタの出力に適用される32ビットの固定レーンマスクの中から選択する。オフ、2レーン、4レーンを選択できる。
これはSIMDモードで設定され、レーンの再割り当て機能で上書きされる。
10.Negate/Invert(否定/反転):ソース選択によって否定/反転のソースが選択され、各レーンのビットによって32ビットの出力レーンが制御される。ソースはすべてのレーンに共通であり、Xの構成ワード、否定フラグ、およびレーンのmsbの設定が含まれる。レーンソースが「1」のとき、レーンは反転され、算術出力が有効であれば、レーン桁上げビットが演算出力にアサートされる。レーン反転コントロールは、ソース車線のシフト共有の選択に従う。複数のレーンがSIMDモードごとに結合される場合、桁上げは最下位レーンに対してのみアサートされる。
11.回転/シフトMode:1つの構成ビットで、回転イメージをシフトイメージと組み合わせて論理出力するかどうかを設定する。「1」は回転モードを示す。論理出力が無効になっている場合、回転設定は関係ない。
12.回転幅:回転レーンの幅は、SIMDおよび64ビット拡張命令で選択したレーンの幅に設定される。
13.演算および論理を有効にする:2ビットを個別に使用して、算術および論理出力を有効にする。「1」の値は出力を有効にする。出力が無効の場合、出力は強制的に0になり、対応する有効なデータ出力は0に保持される。
14.論理ウィンドウ:論理ウィンドウの設定では、論理シフト/回転出力に出力するビットを選択する4つのウィンドウのいずれかを選択する。設定は、論理出力SIMDから決定される。
15.指数マスク-指数マスクは、複数の指数幅が適用される各レーンのZまたはY入力から指数論理に渡されるビット数を選択する。
図35は、指数論理回路335を示すブロック図であり、これは、Z入力指数論理465、過剰シフト論理470、および乗算器指数論理475を含み、これらの各々について、以下により詳細に説明する。代表的な実施形態では、アキュムレータ315は、それ自体の指数論理を含む。
図42は、アキュムレータ315を示すブロック図である。アキュムレータ315は、乗算器シフタ-コンバイナネットワーク310によって提供される積の合計を蓄積するように設計された融合128ビットアキュムレータである。アキュムレータ315は、様々な浮動小数点および固定小数点フォーマットを提供するマルチモードであり、1レーン、2レーンおよび4レーンSIMD演算をサポートする。
1.選択した形式で連続する入力を合計する。
2.128ビットレーン×1、64ビットレーン×2、32ビットレーン×4の整数累積をサポートする。
3.IEEEの倍精度および単精度浮動小数点累積(1レーン)をサポートする。
4.2レーンのBFLOAT16浮動小数点累積をサポートする。
5.加算に備えて基数点を整列させるために、浮動小数点の前の累積和またはZ入力を32ビットの倍数だけ右シフト(指数の小さい方をシフト)する。
6.2レーンモードまたは4レーンモードで走行しているときに、必要に応じて桁上げブロッカーおよびシフトブロッカーを使用してレーンを分離する。
7.各浮動小数点レーンのアキュムレータ指数を計算して維持する。
指数は基数32の指数で、6ビットの場合のdoubleを除き、3ビットである。
8.基数32の値を再正規化するために、32ビットの倍数でアキュムレータ出力を左シフトする(そしてそれに応じてアキュムレータの指数を調整する)。
9.1GHzタイミングのアキュムレータループ周りの単一レジスタ遅延。
10.浮動小数点の右シフトでは、偶数への丸めをサポートするために、各レーンに補助丸めビットを設定する必要がある。
11.左側の余分なビットは、加算器のオーバーフローを維持し、浮動小数点のオーバーフローを修正するために右シフトと指数インクリメントを行うように検知されるべきである。
12.整数オーバーフローを検出して符号でラッチし、整数飽和論理の最終加算器論理に渡す必要がある。
13.右シフトがレーン幅を超える場合、Z入力またはアキュムレータフィードバックのいずれかをゼロにする。
14.Z入力の第1の有効な入力と同時にフィードバック入力を0に強制することによってアキュムレータを初期化する。
15.すべての入力に対して初期化条件を保持することで、融合された乗算-加算(アキュムレータなし)を可能にする。
16.先頭符号予測器出力を最終加算器に供給する。
先行符号予測器は、nまたはn-1の符号ビットの繰り返しを示す(内部シフトを32ビットの倍数で制御し、最終加算器でより細かいシフトを制御するために使用される)。
17.アキュムレータZの入出力を登録する。
18.整数をfloat、1、2、または4レーンに変換する(最終的な加算論理にアタッチされている場合)。
1.SIMD設定の制御が含まれる場合があり、固定小数点操作00=1レーン、10=2レーン、11=4レーンのレーン数を設定する制御と、
2.浮動小数点選択の固定小数点または浮動小数点の制御であって、
浮動小数点の場合、SIMDは内部的に“00”に強制される制御と、
3.init=1を保持するのと同等の累積ビットなしの制御(サイクルごとに入力を出力に渡す)と、
4.入力が合計に追加されるたびに有効なデータを出力する、累積合計のCumsumビットの制御と、
5.Cumsum制御ビットの制御と、
6.フォーマットビット(3)セット数値フォーマット、固定/フロート、レーンの数の制御と、
7.init=1を保持するのと同様の(外部アキュムレータの処理を実行可能な)アキュムレータなしビットの制御と、
8.cumsumと組み合わせることができる、データ有効遅延ビットの制御と
を含めることができる。
図46は、ブール論理回路325のブール論理段階520を示す回路図であり、ブール論理回路325に入力される各ビットに対してブール論理段階520を使用して、32ビットを独立して構成することができる。ブール論理回路325は、RAE300 ALU関数を2つの入力ブール関数のフルセットで補完するために使用される構成可能なビットごとのブール論理回路325を提供する。32ビットデータ経路上の各ビットは、同じビット位置にある入力ビットの任意の2つの入力ブール関数が可能な、独立にプログラムされたブール論理段階520を有する。ブール論理回路325は、X入力365によって制御されるビットごとの2:1選択を提供する方法も提供する。32ビット出力は、32ビット出力の32入力NAND522によって補足され、条件フラグ出力論理に送出される。
図47は、min/maxソートおよび比較回路320(より一般的には比較回路320とも呼ばれる)を示すハイレベル回路およびブロック図である。図48は、比較器556aのmin/maxソートおよび比較回路320を示す詳細な回路およびブロック図である。比較回路320は、入力、内部インデックスカウントおよび内部定数の比較結果に基づいてデータフローおよびシーケンスを変更するRAE回路300の能力を追加する。比較回路320は、各レーンについて別々の比較結果を使用して2つまたは4つのSIMDレーンをサポートするように分離可能である。
1.最小値の最初の出現のインデックスを使用してストリームの最小値を累積する機能と、
2.最大値の最初の出現のインデックスを持つストリームで最大値を累積する機能と、
3.2つの入力ソート(1レーン、2レーン、4レーンのSIMD)し、大きい場合は交換する機能と、
4.アキュムレータ315と同時に実行し、同時にリセットすることができるサンプルをカウントする機能と、
5.現在のインデックスカウントがインデックス入力と一致する場合を除いて、すべてのサンプルをゼロにし、他の入力を出力する機能と、
6.threshold positive(閾値を超えるサンプルは合格し、小さいサンプルは定数に置き換えられ、閾値を超えるサンプルをカウントする)機能と、
7.threshold negative(閾値を超えるサンプルは、定数に置き換えられ、閾値を下回るサンプルをカウントする)機能と、
8.入力を変更せずに渡す(ブール論理回路325への入力のためのフロースルー)機能と、
9.比較条件を満たす入力のみを渡す(ゲートデータは有効)機能と、
10.トリガ条件の前または後にのみ入力を渡す機能と、
11.等値フラグと小なりフラグの出力(1レーン、2レーン、4レーンのSIMD)機能と、
12.(rotatorとBooleanを使用して、ビット反転、回転、マスクを行うことができる)アドレスカウントを生成する(上記のすべてのモードは、サポートされているすべての浮動小数点、符号付き整数、符号なし整数、および32ビットデータの1、2、または4SIMDレーンに適用され、SIMDモードでは、すべてのレーンが同じ構成とデコーダマッピングを共有する必要があり、各レーンはこのブロックで個別に扱われ、SIMDモードが選択されると、32ビットのインデックスカウントも同様の数のSIMDレーンに分割される)機能と
を果たす。
比較回路320の設定オプションには、
ケース1a:Zinをインデックスと比較して、YinまたはKyをZストリームに代入する、
ケース1b:Zinをインデックスと比較して、ZinまたはKzをYストリームに代入する、
ケース2a:Zinを定数(Ky)と比較して、Yinまたは同じ定数(Ky)をZストリームに代入する、
ケース2b:Zinを定数(Ky)と比較して、Zinまたは定数(Kz)をYストリームに代入する、
ケース3a:ZinとYinを比較して、YinまたはKyをZストリームに代入する、
ケース3b:ZinとYinを比較して、ZinまたはKzをYストリームに代入する、
ケース4a:Yinを定数(Kz)と比較して、YinまたはKyをZストリームに代入する、および
ケース4b:Yinを定数(Kz)と比較して、ZinまたはKzをYストリームに代入する、
がある。
ケース1:Zinとインデックス数を比較してYをYoutまたはZoutにステアリングする。
ケース2:Zinを定数と比較し、YをYoutまたはZoutにステアリングする。
ケース3:ZinとYinを比較してYをYoutまたはZoutにステアリングする。
ケース4:Yinを定数と比較し、YをYoutまたはZoutにステアリングする。
ケース5:インデックスを定数と比較して、YをYoutまたはZoutにステアリングする。
ケース6:フラグ入力を使用してYをYoutまたはZoutにステアリングする。
それぞれの場合の設定を表26に示す。データステアリングを通るZパスは、接続されている出力Zが無効であるため注意が必要である。電源を考慮して、Z入力をKzに接続し、レジスタクロックイネーブルをY有効に接続して(表では、有効値はYvおよびZvと省略されている)、無効な出力が選択解除されたときに伝搬しないようにすることが可能である。カウントは、リセット入力を使用してリセットすることができ、これは、必要に応じて、データ有効入力で検証することができる。Kyが比較論理内で使用されない場合、Kyを使用して、ストリーミングmin/maxに関して説明したように、カウンタ572を初期化することができる。データステアリングでは、データ有効信号を使用してデータを方向付けるため、非SIMD(32ビットレーン)演算でのみ使用できる。
図60は、RAE入力並べ替えキュー350およびRAE出力並べ替えキュー355の論理回路構造を示す詳細な回路およびブロック図である。これらの複数のRAE入力並べ替えキュー350は、次の3つの主な目的を果たす。(1)それらは、時間的にデータの再配列を可能にし、X入力とZ入力との間でデータを再分配する。(2)それらは、パイプラインレイテンシーバランシングを補助するための調整可能な遅延を提供し、(3)それらは、RAE入力365、370、375に適用される多数の定数を記憶し、配列することを可能にする。並べ替え機能を使用すると、I/Q対として表示する必要がある複素データを含む特定のアルゴリズムのデータ処理が大幅に簡略化されますが、処理効率を高めるために、一度に2つのサンプルをIとQでインターリーブ処理する必要がある。この例は、バタフライと呼ばれる高速フーリエ変換(FFT)要素演算である。バタフライの2つの標本は、ほとんど同じ処理(符号の変化だけが異なる)に従うので、効率のために、両方の標本のI成分は、両方の標本のQ成分と交互に処理される。その他の複素演算アルゴリズムでも、IおよびQコンポーネントをインターリーブし、同時に2つのサンプルを処理することでメリットが得られる。このアプリケーションでは、深さが4サンプルの並べ替えキューを使用する。
図68は、再構成可能プロセッサと共に使用される代表的なデータパケット850の図である。代表的な実施形態では、データパケット850は、計算コア20036ビットペイロード852および制御ビット853を含む37ビットである。ペイロード852は、32ビットのデータペイロード854と、4ビットのサフィックス856としてのサフィックスビットとを含む。32ビットデータ854は、図69に示す整数、浮動小数点、およびSIMD表現を含む様々な潜在的なデータフォーマットをサポートする。上述したように、サフィックス856は、アレイによるゼロ圧縮のために主に使用されるが、種々のフラグ、条件付き演算、演算インデックスの搬送などの他の機能をサポートすることもできる。制御(データタイプ)ビット853は、相互接続120によってのみ使用され、計算コア200内では搬送されない。
図71は、サフィックス制御回路390の代表的な実施形態のブロック図である。図72は、ゼロ圧縮回路800のブロック及び回路図である。図73は、代表的なゼロ圧縮データパケット列の図である。図74は、ゼロ圧縮解除回路805のブロック及び回路図である。
RAE回路300は、例えば、2つの乗算器305(乗算のため)および2つの乗算器シフトコンバイナネットワーク310(加算のため)を使用し、メモリ150を使用して、補間LUT(ルックアップテーブル)を生成するために使用することができる。メモリから直接係数を得るブルートフォース法は、メモリ利用の観点から禁止される。幸いなことに、一連の係数を表す関数は滑らかな関数(ほぼsinc関数)であるため、リアルタイムでの係数の圧縮と生成は、リソースの使用率の点で魅力的である。係数セットは、近似的に、1/(P*F)の間隔でサンプリングされたsinc関数であり、ここで、P*Fはフィルタの長さであり、Pは多相分岐長であり、FはFFTサイズである。係数は多相分岐に渡って分配され、1つの分岐上で連続するタップがC(k)、C(k+F)、C(k+2 F)、...に関連付けられる。特定の乗算器305に与えられる係数は連続的な係数であり、したがって、乗算器mにおいて、係数はC(T*F=m)であり、ここでTはタップ数であり、FはFFT長である。これは、任意の一の乗算器305における係数がsinc関数の連続セグメントであることを意味する。これにより、補間方式を使用して、係数を格納するためのメモリ要件を減らすことができる。
より大きなフーリエ変換は、「混合基数」アルゴリズムを使用して、任意のサイズの小さな変換「カーネル」から構築することができる。このアルゴリズムは、本質的に、データをk×n行列に入力する。ここで、kおよびnは、kn点変換に対する構成要素変換のサイズである。最初にデータが行に沿って入力され、次に最初の変換が列に適用されます。中間結果要素は、行列内のインデックスに従ってフェーズ回転され、変換の2番目のセットが行列の各行に適用され、最後にデータが列方向に読み取られたときに出力が自然に順序付けられる。このシーケンスを図62に示す。
プロセッサ回路130は、任意のタイプのプロセッサとすることができ、本明細書で説明する機能を実行するように構成され、設計され、プログラムされ、または他の方法で適合された、一つ以上のRISC-Vまたは他のプロセッサとして具体化することができる。ここでプロセッサ回路130という用語が使用されているように、プロセッサ回路130は、単一の集積回路(「IC」)の使用を含んでもよく、または、複数の集積回路または一緒に接続され、配列され、またはグループ化された他の構成要素、例えば、コントローラ、マイクロプロセッサ、デジタル信号プロセッサ、並列プロセッサ、マルチコアプロセッサ、カスタムIC、特定用途向け集積回路、フィールドプログラマブルゲートアレイ(「FPGA」)、適応コンピューティングIC、関連メモリ(RAM、DRAM、ROMなど)、およびアナログかデジタルかを問わない他のICおよび構成要素の使用を含んでもよい。結果として、本明細書で使用される場合、プロセッサ回路130という用語は、マイクロプロセッサメモリまたは追加のRAM、DRAM、SDRAM、SRAM、MRAM、ROM、FLASH、EPROMまたはE2PROMのような関連するメモリと共に、単一のIC、またはカスタムIC、ASIC、プロセッサ、マイクロプロセッサ、マイクロプロセッサ、コントローラ、FPGA、適応コンピューティングICの配置、または以下で説明する機能を実行する集積回路の他のグループを同等に意味し、含むものと理解されるべきである。プロセッサ回路130は、関連するメモリと共に、上述したように、本発明の方法論を実行するように適合または構成されてもよい(プログラミング、FPGA相互接続、またはハード配線による)。例えば、方法論は、プロセッサ回路130が動作可能である(すなわち電源が入っており、機能している)場合に、その後の実行のために、一組のプログラム命令または他のコード(または同等の構成または他のプログラム)として、関連するメモリ(および/またはメモリ)および他の同等の構成要素とともに、プロセッサ回路130内にプログラムされ、格納され得る。同様に、プロセッサ回路130が全体的にまたは部分的にFPGA、カスタムICおよび/またはASICとして実装され得る場合、FPGA、カスタムIC又はASICもまた、本発明の方法論を実装するように設計され、構成され、および/または配線され得る。例えば、プロセッサ回路130は、「コントローラ」と総称されるアナログおよび/またはデジタル回路、コントローラ、マイクロプロセッサ、DSP、および/またはASICの配列として実装することができ、これらはそれぞれ、ハードワイヤード、プログラム、設計、適応または構成されて、場合によってはメモリと組み合わせて、本発明の方法を実装する。
Claims (33)
- 第1の相互接続ネットワークと、
第2の相互接続ネットワークと、
前記第1の相互接続ネットワークに結合されたプロセッサと、
アレイ状に配置された複数の計算コアとを備える再構成可能プロセッサ回路であって、
前記複数の計算コアは、前記第1の相互接続ネットワークおよび前記第2の相互接続ネットワークに結合され、前記第2の相互接続ネットワークは前記複数の計算コアの隣接する計算コアに直接結合し、
各計算コアは、メモリ回路と、再構成可能演算回路とを備え、
前記再構成可能演算回路は、少なくとも1つの入力並べ替えキューと、前記少なくとも1つの入力並べ替えキューに結合された乗算器シフタコンバイナネットワークであって、シフタ回路と、前記シフタ回路に結合された複数の直列結合された加算器回路とを備え、乗算器積をシフトして浮動小数点積を基数32の指数を有する積に変換するように構成され、複数の単一命令多重データ(SIMD)積を合計してSIMDドット積を形成するように構成される前記乗算器シフタコンバイナネットワークと、アキュムレータ回路と、前記乗算器シフタコンバイナネットワークおよび前記アキュムレータ回路に結合された少なくとも1つの制御論理回路とを備える、再構成可能プロセッサ回路。 - 前記再構成可能演算回路は、複数の動作モードを有する構成可能乗算器をさらに備え、
前記構成可能乗算器は、前記少なくとも1つの入力並べ替えキューと、前記乗算器シフタコンバイナネットワークとに結合され、
前記複数の動作モードは、固定小数点動作モードおよび浮動小数点動作モードを備え、
前記構成可能乗算器は、符号あり入力を処理するようにさらに構成可能な27×27符号なし乗算器のネイティブ動作モードを有する、請求項1に記載の再構成可能プロセッサ回路。 - 前記乗算器シフタコンバイナネットワークを1つまたは複数の隣接する再構成可能な演算回路に選択的に結合して、単一サイクルの32×32および54×54乗算、単精度24×24乗算、および単一命令多重データ(SIMD)ドット積を実行するように適合された第3の相互接続ネットワークをさらに含む、請求項2に記載の再構成可能プロセッサ回路。
- 前記構成可能乗算器はさらに、4つの8×8乗算器、2つの16×16単一命令多重データ(SIMD)乗算器、1つの32×32乗算器、および1つの54×54乗算器になるように構成可能である、請求項2に記載の再構成可能演算回路。
- 前記複数の計算コアの各計算コアは、
前記再構成可能演算回路、前記第1の相互接続ネットワークおよび前記第2の相互接続ネットワークに結合された複数の入力マルチプレクサと、
複数の入力レジスタであって、各入力レジスタは、前記複数の入力マルチプレクサの対応する入力マルチプレクサに結合される、複数の入力レジスタと、
前記再構成可能演算回路に結合された複数の出力マルチプレクサであって、各出力マルチプレクサは前記複数の入力レジスタの対応する入力レジスタに結合される、複数の出力マルチプレクサと、
複数の出力レジスタであって、各出力レジスタは、前記複数の出力マルチプレクサの対応する出力マルチプレクサと、前記第1の相互接続ネットワークと、前記第2の相互接続ネットワークとに結合されている、複数の出力レジスタとをさらに含む、請求項1に記載の再構成可能プロセッサ回路。 - 複数のゼロ圧縮解除回路であって、各ゼロ圧縮解除回路は、前記複数の入力マルチプレクサの対応する入力マルチプレクサに結合される、複数のゼロ圧縮解除回路と、
複数のゼロ圧縮回路であって、各ゼロ圧縮回路は、前記複数の出力マルチプレクサの対応する出力マルチプレクサに結合される、複数のゼロ圧縮回路とをさらに含む、請求項5に記載の再構成可能プロセッサ回路 - データペイロードにすべてゼロを有するいくつかのデータパケットが、非ゼロのデータペイロードを有する次のデータパケットのサフィックスとして符号化される、請求項6に記載の再構成可能プロセッサ回路。
- 前記第1の相互接続ネットワークは、FATツリー構成を有する階層型ネットワークであり、複数のデータルーティング回路を備える請求項1に記載の再構成可能プロセッサ回路。
- 前記再構成可能プロセッサ回路は、前記プロセッサおよび前記複数の計算コアを使用して、任意およびすべてのRISC-Vプロセッサ命令を実行するように適合される、請求項1に記載の再構成可能プロセッサ回路。
- 前記少なくとも1つの入力並べ替えキューは、複数の入力を格納するように適合され、
前記少なくとも1つの入力並べ替えキューは、前記複数の入力のシーケンスを並べ替え、負および絶対値関数のための符号ビットを調整し、IおよびQデータ入力と奇数および偶数データ入力とをデインタリーブするように適合された入力並べ替え論理回路をさらに備える、請求項1に記載の再構成可能プロセッサ回路。 - 前記再構成可能演算回路は、複数の再構成可能演算回路からの出力を受信し並び替えるために結合された少なくとも1つの出力並べ替えキューをさらに備える、請求項1に記載の再構成可能プロセッサ回路。
- 前記再構成可能演算回路は複数の入力を有し、
前記複数の入力は第1のX入力、第2のY入力および第3のZ入力を含み、
前記少なくとも1つの制御論理回路が、比較回路、ブール論理回路、Z入力シフタ、指数論理回路、加算、飽和、丸め回路、およびこれらの組合せからなる群から選択された1つまたは複数の回路を含む、請求項1に記載の再構成可能プロセッサ回路。 - 前記Z入力シフタは、浮動小数点Z入力値を基数32の指数値にシフトし、乗算器合計出力のスケーリングに一致するように32ビットの倍数だけシフトするように適合され、前記Z入力シフタが64、32、2×16および4×8ビットシフトまたは回転モードを含む複数の整数モードについてさらに適合される、請求項12に記載の再構成可能プロセッサ回路。
- 前記ブール論理回路は、32ビット整数入力に対してAND、NAND、OR、NOR、XOR、XNOR、およびセレクタ演算を実行するように適合されたAND-OR-INVERT論理ユニットを含む、請求項12に記載の再構成可能プロセッサ回路。
- 前記比較回路は、入力データストリームから最小または最大のデータ値を抽出し、前記入力データストリームからインデックスを抽出し、2つの入力データストリームを比較し、2つの入力データストリームを交換し、前記2つの入力データストリームの前記最小値を第1の出力に置き、前記2つの入力データストリームの前記最大値を第2の出力に置き、データステアリングを実行し、アドレスシーケンスを生成し、等しいか、より大きいか、より小さいかの複数の比較フラグを生成するように適合される、請求項12に記載の再構成可能プロセッサ回路。
- 単一の再構成可能演算回路が、
サイクルあたりの1つのIEEE単一または整数27×27乗算と、
2つの並列IEEE半精度、16ビットブレイン浮動小数点(「BFLOAT」)(BLOAT16)、または符号付きおよび符号なし16ビット整数値の16ビット整数(INT16)のサイクルあたりの乗算と、
4つの並列IEEE1/4精度、または符号付きおよび符号なし8ビット整数値(INT8)のサイクルあたりの乗算と、
2つの並列IEEE半精度の合計、BFLOAT16またはINT16のサイクルあたりの乗算と、
4つの並列IEEE1/4精度の合計、または符号付きおよび符号なし8ビット整数値(INT)のサイクルあたりの乗算と、
1つの1/4精度、またはINT8のサイクルあたりの複素乗算と、融合加算と、累積と、
任意のビット数による64、32、2×16、または4×8ビットシフトと、
任意のビット数による64、32、2×16、または4×8ビット回転と、
32ビット単位のブール論理と、
データストリームの比較、最小値、または最大値と、
2つの演算対象のソートと、
これらの組合せからなる群から選択された少なくとも2つの数学的計算または関数を実行するように適合される、
請求項1に記載の再構成可能プロセッサ回路。 - 対構成を有する2つの隣接するリンクされた再構成可能演算回路が、
符号付きおよび符号なし32ビット整数値(INT32)についての1つの32ビット整数のサイクルあたりの乗算と、
符号付きおよび符号なし64ビット整数値(INT64)についての、4つの32×32の部分積を加算する前記アキュムレータ回路を使用する、1つの64ビット整数の4サイクルシーケンスでの乗算と、
符号付きおよび符号なし24ビット整数値(INT24)についてのIEEE単精度または2つの24ビット整数の合計の、サイクルあたりの乗算と、
4つの並列IEEE半精度の合計、16ビットブレイン浮動小数点(「BFLOAT」)(BLOAT16)、または符号付きおよび符号なし16ビット整数値の16ビット整数(INT16)のサイクルあたりの乗算と、
IEEEの8つの並列1/4精度の合計、または符号付きおよび符号なし8ビット整数値(INT8)のサイクルあたりの乗算と
1つの半精度、またはINT16のサイクルあたりの複素乗算と、4つの乗算と、2つの加算と、融合加算と、累積と、これらの組合せからなる群から選択された少なくとも2つの数学的計算または関数を実行するように適合される、請求項1に記載の再構成可能プロセッサ回路。 - クアッド構成を有する4つのリンクされた再構成可能演算回路は、
符号付きおよび符号なし64ビット整数値(INT64)についての2つの64ビット整数の4サイクルでの乗算と、
符号付きおよび符号なし32ビット整数値(INT32)についての2つの32ビット整数のサイクルあたりの乗算と、
サイクル当たり2つのINT32乗算の合計と、
符号付きおよび符号なし24ビット整数値(INT24)についての4つのIEEE単精度または24ビット整数の合計と、
8つの並列IEEE半精度の合計、16ビットブレイン浮動小数点(「BFLOAT」)(BLOAT16)、または符号付きおよび符号なし16ビット整数値の16ビット整数(INT16)のサイクルあたりの乗算と、
16つの並列IEEEの1/4精度の合計、または符号付きおよび符号なし8ビット整数値についての8ビット整数(INT8)のサイクルあたりの乗算と、
1つの単精度または符号付きおよび符号なし24ビット整数値(INT24)についてのサイクルあたりの複素乗算と、融合加算と、累積と、これらの組合せからなる群から選択される少なくとも2つの数学的計算または関数を実行するように適合される、請求項1に記載の再構成可能プロセッサ回路。 - 第1の相互接続ネットワークと、
第2の相互接続ネットワークと、
前記第1の相互接続ネットワークに結合されたプロセッサと、
アレイ状に配置された複数の計算コアとを備える再構成可能プロセッサ回路であって、
前記複数の計算コアは、前記第1の相互接続ネットワークおよび前記第2の相互接続ネットワークに結合され、前記第2の相互接続ネットワークは前記複数の計算コアの隣接する計算コアに直接結合し、
各計算コアは、メモリ回路と、再構成可能演算回路とを備え、
前記再構成可能演算回路は、
複数の入力を格納するように適合された少なくとも1つの入力並べ替えキューであって、前記再構成可能演算回路の前記複数の入力のシーケンスと、前記複数の計算コアの隣接する再構成可能演算回路とを並べ替えるように適合された入力並べ替え論理回路をさらに含む、入力並べ替えキューと、
複数の動作モードを有する構成可能乗算器であって、前記構成可能乗算器は、前記少なくとも1つの入力並び替えキューに結合され、前記複数の動作モードは、固定小数点動作モードおよび浮動小数点動作モードを含み、前記構成可能乗算器は、符号付き入力を処理するようにさらに構成可能な27×27符号なし乗算器のネイティブ動作モードを有し、前記構成可能乗算器は、4つの8×8乗算器、2つの16×16単一命令マルチデータ(SIMD)乗算器、1つの32×32乗算器および1つの54×54乗算器になるようにさらに構成可能である、構成可能乗算器と、
前記構成可能乗算器に結合された乗算器シフタコンバイナネットワークであって、前記乗算器シフタコンバイナネットワークは、シフタ回路と、前記シフタ回路に結合された複数の直列結合加算器回路とを備える、乗算器シフタコンバイナネットワークと、
アキュムレータ回路と、
前記乗算器シフタコンバイナネットワークおよび前記アキュムレータ回路に結合された少なくとも1つの制御論理回路と、
前記複数の計算コアの前記再構成可能演算回路および前記隣接する再構成可能演算回路からの複数の出力を受信し並び替えるために結合された少なくとも1つの出力並び替えキューとを備える、再構成可能プロセッサ回路。 - 前記乗算器シフタコンバイナネットワークに結合され、複数の再構成可能演算回路をマージし、倍精度乗算-加算、単精度単一サイクル複素乗算、FFTバタフライ、指数分解、乗算-累積、および論理演算を実行するように適合された第3の構成可能相互接続ネットワークをさらに含む、請求項19に記載の再構成可能プロセッサ回路。
- 前記第3の構成可能相互接続ネットワークは、再構成可能演算回路の対構成としておよび再構成可能演算回路のクアッド構成として、前記複数の計算コアの隣接する複数の再構成可能演算回路にリンクする複数の直接接続を含む、請求項20に記載の再構成可能プロセッサ回路。
- 単一の再構成可能演算回路が、
サイクルあたり1つのIEEE単一または整数27×27乗算と、
2つの並列IEEE半精度、16ビットブレイン浮動小数点(「BFLOAT」)(BLOAT16)、または符号付きおよび符号なし16ビット整数値の16ビット整数(INT16)のサイクルあたりの乗算と、
4つのIEEE並列1/4精度、または符号付きおよび符号なし8ビット整数値(INT8)のサイクルあたりの乗算と、
2つの並列IEEE半精度の合計、BFLOAT16またはINT16のサイクルあたりの乗算と、
4つの並列IEEE1/4精度または符号付きおよび符号なし8ビット整数値(INT8)のサイクルあたりの乗算と、
1つの1/4精度、またはINT8のサイクルあたりの複素乗算と、融合加算と、累積と、
任意のビット数による64、32、2×16、または4×8ビットシフトと、
任意のビット数による64、32、2×16、または4×8ビット回転と、
32ビット単位のブール論理と、
データストリームの比較、最小値、または最大値と、
2つの演算対象のソートと、
これらの組合せからなる群から選択された少なくとも2つの数学的計算または関数を実行するように適合される、請求項21に記載の再構成可能プロセッサ回路。 - 前記対構成を有する2つの隣接するリンクされた再構成可能演算回路が、
符号付きおよび符号なし32ビット整数値(INT32)についての1つの32ビット整数のサイクルあたりの乗算と、
符号付きおよび符号なし64ビット整数値(INT64)についての、4つの32×32の部分積を加算する前記アキュムレータ回路を使用する、1つの64ビット整数の4サイクルシーケンスでの乗算と、
符号付きおよび符号なし24ビット整数値(INT24)についてのIEEE単精度または2つの24ビット整数の合計の、サイクルあたりの乗算と、
4つの並列IEEE半精度の合計、16ビットブレイン浮動小数点(「BFLOAT」)(BLOAT16)、または符号付きおよび符号なし16ビット整数値の16ビット整数(INT16)のサイクルあたりの乗算と、
IEEEの8つの並列1/4精度の合計、または符号付きおよび符号なし8ビット整数値(INT8)のサイクルあたりの乗算と
1つの半精度、またはINT16のサイクルあたりの複素乗算と、融合加算と、累積と、これらの組合せからなる群から選択された少なくとも2つの数学的計算または関数を実行するように適合される、請求項21に記載の再構成可能プロセッサ回路。 - クアッド構成を有する4つのリンクされた再構成可能演算回路は、
符号付きおよび符号なし64ビット整数値(INT64)についての2つの64ビット整数の4サイクルでの乗算と、
符号付きおよび符号なし32ビット整数値(INT32)についての2つの32ビット整数のサイクルあたりの乗算と、
サイクル当たり2つのINT32乗算の合計と、
符号付きおよび符号なし24ビット整数値(INT24)についての4つのIEEE単精度または24ビット整数の合計と、
8つの並列IEEE半精度の合計、16ビットブレイン浮動小数点(「BFLOAT」)(「BLOAT16」)、または符号付きおよび符号なし16ビット整数値の16ビット整数(INT16)のサイクルあたりの乗算と、
16つの並列IEEE1/4精度の合計、または符号付きおよび符号なし8ビット整数値についての8ビット整数(INT8)のサイクルあたりの乗算と、
1つの単精度または符号付きおよび符号なし24ビット整数値(INT24)についてのサイクルあたりの複素乗算と、融合加算と、累積と、これらの組合せからなる群から選択される少なくとも2つの数学的計算または関数を実行するように適合される、請求項21に記載の再構成可能プロセッサ回路。 - 前記乗算器シフタコンバイナネットワークは、乗算器積をシフトさせて、浮動小数点積を、基数32指数を有する積に変換するように、および複数の単一命令多重データ(SIMD)積を合計してSIMDドット積を形成するように適合される、請求項19に記載の再構成可能プロセッサ回路。
- 前記乗算器シフタコンバイナネットワークに結合される第3の構成可能相互接続ネットワークをさらに備え、
前記第3の構成可能相互接続ネットワークは、前記乗算器シフタコンバイナネットワークを前記複数の計算コアの隣接する再構成可能演算回路の1つまたは複数の乗算器シフタコンバイナネットワークに結合直接接続を備え、単一サイクル32×32および54×54乗算、単精度24×24乗算、および単一命令多重データ(SIMD)ドット積を実行する、請求項19に記載の再構成可能プロセッサ回路。 - 前記入力並べ替え論理回路は、否定および絶対値関数についての符号ビットを調整し、IおよびQデータ入力および奇数および偶数データ入力をデインタリーブするようにさらに適合される、請求項19に記載の再構成可能プロセッサ回路。
- 前記複数の再構成可能演算回路のそれぞれの再構成可能演算回路は、複数の入力を有し、前記複数の入力は、第1のX入力、第2のY入力および第3のZ入力を含み、
前記少なくとも1つの制御論理回路が、比較回路、ブール論理回路、Z入力シフタ、指数論理回路、加算、飽和、丸め回路、およびこれらの組合せからなる群から選択された1つまたは複数の回路を含む、請求項19に記載の再構成可能プロセッサ回路。 - 前記Z入力シフタは、浮動小数点Z入力値を基数32の指数値にシフトし、乗算器合計出力のスケーリングに一致するように32ビットの倍数だけシフトするように適合され、前記Z入力シフタが64、32、2×16および4×8ビットシフトまたは回転モードを含む複数の整数モードについてさらに適合される、請求項28に記載の再構成可能プロセッサ回路。
- 前記ブール論理回路は、32ビット整数入力に対してAND、NAND、OR、NOR、XOR、XNOR、およびセレクタ演算を実行するように適合されたAND-OR-INVERT論理ユニットを含む、請求項28に記載の再構成可能プロセッサ回路。
- 前記比較回路は、入力データストリームから最小または最大のデータ値を抽出し、前記入力データストリームからインデックスを抽出するように適合され、および、2つの入力データストリームを比較し、前記2つの入力データストリームを交換し、前記2つの入力データストリームの前記最小値を第1の出力に置き、前記2つの入力データストリームの前記最大値を第2の出力に置き、等しいか、より大きいか、より小さいかの複数の比較フラグを生成するように構成される、請求項28に記載の再構成可能プロセッサ回路。
- 前記乗算器シフタコンバイナネットワークは、複数の再構成可能演算回路の対構成における別の再構成可能演算回路からの積を加算し、前記複数の再構成可能演算回路のクアッド構成における別の半分の再構成可能演算回路からの積の合計を生成し、積を合計するために、クアッド構成における他の再構成可能演算回路からのZ入力およびZ入力のスケーリングに一致するように32ビットの倍数だけシフトするように適合される、請求項19に記載の再構成可能なプロセッサ回路。
- 第1の相互接続ネットワークと、
第2の相互接続ネットワークと、
前記第1の相互接続ネットワークに結合されたプロセッサと、
アレイ状に配置された複数の計算コアとを備える再構成可能プロセッサであって、
前記複数の計算コアは、前記第1の相互接続ネットワークおよび前記第2の相互接続ネットワークに結合され、前記第2の相互接続ネットワークは前記複数の計算コアの隣接する計算コアに直接結合し、
各計算コアは、
前記第1の相互接続ネットワークおよび前記第2の相互接続ネットワークに結合された複数の入力マルチプレクサと、
複数の入力レジスタであって、各入力レジスタが前記複数の入力マルチプレクサの対応する入力マルチプレクサに結合される、複数の入力レジスタと、
複数の出力マルチプレクサであって、各出力マルチプレクサは、前記複数の入力レジスタの対応する入力レジスタに結合される、複数の出力マルチプレクサと、
複数の出力レジスタであって、各出力レジスタは、前記複数の出力マルチプレクサの対応する出力マルチプレクサと、前記第1の相互接続ネットワークと、前記第2の相互接続ネットワークとに結合される、複数の出力レジスタと、
複数のゼロ圧縮解除回路であって、各ゼロ圧縮解除回路は、前記複数の入力マルチプレクサの対応する入力マルチプレクサに結合される、複数のゼロ圧縮解除回路と、
複数のゼロ圧縮回路であって、各ゼロ圧縮回路は、前記複数の出力マルチプレクサの対応する出力マルチプレクサに結合される、複数のゼロ圧縮回路と、
メモリ回路と、
前記メモリ回路と、前記複数の入力レジスタと、前記複数の出力マルチプレクサに結合された再構成可能演算回路とを備え、
前記再構成可能演算回路は、
複数の入力を格納するように適合された少なくとも1つの入力並べ替えキューであって、前記再構成可能演算回路の前記複数の入力のシーケンスおよび前記複数の計算コアの隣接する再構成可能演算回路を並べ替えるように適合された入力並べ替え論理回路をさらに備える、少なくとも1つの入力並べ替えキューと、
複数の動作モードを有する構成可能乗算器であって、前記構成可能乗算器は、前記入力並び替えキューに結合され、前記複数の動作モードは、固定小数点動作モードおよび浮動小数点動作を含み、前記構成可能乗算器は、符号付き入力を処理するようにさらに構成可能な27×27符号なし乗算器のネイティブ動作モードを有し、前記構成可能乗算器はさらに、4つの8×8乗算器、2つの16×16単一命令多重データ(SIMD)乗算器、1つの32×32乗算器、および1つの54×54乗算器になるように構成可能である、構成可能乗算器と、
前記構成可能乗算器に結合された乗算器シフタコンバイナネットワークとを備え、
前記乗算器シフタコンバイナネットワークは、
シフタ回路と
前記シフタ回路に結合された複数の直列結合加算器回路と、
アキュムレータ回路と、
乗算器シフタコンバイナネットワークおよびアキュムレータ回路に結合された少なくとも1つの制御論理回路と、
前記複数の計算コアの再構成可能演算回路及び前記隣接する再構成可能演算回路からの複数の出力を受信し並び替えるように結合された少なくとも1つの出力並び替えキューと、
前記乗算器シフタコンバイナネットワークを1つまたは複数の隣接する再構成可能な演算回路に選択的に結合して、単一サイクル32×32および54×54乗算、単精度24×24乗算、および単一命令多重データ(SIMD)ドット積を実行するように結合された第3の相互接続ネットワークとを含む、再構成可能プロセッサ回路。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024009413A JP7561292B2 (ja) | 2019-09-10 | 2024-01-25 | 再構成可能プロセッサ回路アーキテクチャ |
| JP2024163510A JP7646934B2 (ja) | 2019-09-10 | 2024-09-20 | 再構成可能プロセッサ回路アーキテクチャ |
Applications Claiming Priority (9)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962898452P | 2019-09-10 | 2019-09-10 | |
| US62/898,452 | 2019-09-10 | ||
| US201962899025P | 2019-09-11 | 2019-09-11 | |
| US62/899,025 | 2019-09-11 | ||
| US17/015,950 | 2020-09-09 | ||
| US17/015,973 | 2020-09-09 | ||
| US17/015,973 US11494331B2 (en) | 2019-09-10 | 2020-09-09 | Reconfigurable processor circuit architecture |
| US17/015,950 US11886377B2 (en) | 2019-09-10 | 2020-09-09 | Reconfigurable arithmetic engine circuit |
| PCT/US2020/050069 WO2021050643A1 (en) | 2019-09-10 | 2020-09-10 | Reconfigurable processor circuit architecture |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024009413A Division JP7561292B2 (ja) | 2019-09-10 | 2024-01-25 | 再構成可能プロセッサ回路アーキテクチャ |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2022548046A JP2022548046A (ja) | 2022-11-16 |
| JP2022548046A5 JP2022548046A5 (ja) | 2023-09-20 |
| JP7428787B2 true JP7428787B2 (ja) | 2024-02-06 |
Family
ID=74850937
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022516115A Active JP7428787B2 (ja) | 2019-09-10 | 2020-09-10 | 再構成可能プロセッサ回路アーキテクチャ |
| JP2024009413A Active JP7561292B2 (ja) | 2019-09-10 | 2024-01-25 | 再構成可能プロセッサ回路アーキテクチャ |
| JP2024163510A Active JP7646934B2 (ja) | 2019-09-10 | 2024-09-20 | 再構成可能プロセッサ回路アーキテクチャ |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024009413A Active JP7561292B2 (ja) | 2019-09-10 | 2024-01-25 | 再構成可能プロセッサ回路アーキテクチャ |
| JP2024163510A Active JP7646934B2 (ja) | 2019-09-10 | 2024-09-20 | 再構成可能プロセッサ回路アーキテクチャ |
Country Status (6)
| Country | Link |
|---|---|
| US (8) | US11886377B2 (ja) |
| EP (2) | EP4028873A4 (ja) |
| JP (3) | JP7428787B2 (ja) |
| KR (2) | KR102903876B1 (ja) |
| CN (1) | CN114641755A (ja) |
| WO (2) | WO2021050643A1 (ja) |
Families Citing this family (48)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11886377B2 (en) * | 2019-09-10 | 2024-01-30 | Cornami, Inc. | Reconfigurable arithmetic engine circuit |
| US12197888B2 (en) * | 2019-12-23 | 2025-01-14 | Altera Corporation | Rank-based dot product circuitry |
| US11568021B2 (en) | 2020-02-21 | 2023-01-31 | Alibaba Group Holding Limited | Vector-vector multiplication techniques for processing systems |
| US11301214B2 (en) * | 2020-06-09 | 2022-04-12 | Verisilicon Microelectronics (Shanghai) Co., Ltd. | Device for performing multiply/accumulate operations |
| US12282749B2 (en) * | 2020-08-20 | 2025-04-22 | Analog Devices, Inc. | Configurable MAC pipelines for finite-impulse-response filtering, and methods of operating same |
| CN112148249B (zh) * | 2020-09-18 | 2023-08-18 | 北京百度网讯科技有限公司 | 点积运算实现方法、装置、电子设备及存储介质 |
| CN114443137A (zh) * | 2020-10-30 | 2022-05-06 | 中科寒武纪科技股份有限公司 | 一种集成计算装置、芯片、板卡、设备和计算方法 |
| US11983237B2 (en) * | 2021-02-21 | 2024-05-14 | Ceremorphic, Inc. | Floating point dot product multiplier-accumulator |
| US12554489B2 (en) * | 2021-03-25 | 2026-02-17 | Intel Corporation | Supporting 8-bit floating point format operands in a computing architecture |
| US12079593B2 (en) * | 2021-06-21 | 2024-09-03 | Ceremorphic, Inc. | Power saving floating point Multiplier-Accumulator with a high precision accumulation detection mode |
| CN113411822B (zh) * | 2021-06-21 | 2024-02-06 | 上海禾苗创先智能科技有限公司 | 一种快速配置射频通路的方法及装置 |
| US12197889B2 (en) * | 2021-06-21 | 2025-01-14 | Ceremorphic, Inc. | Process for dual mode floating point multiplier-accumulator with high precision mode for near zero accumulation results |
| US20210397414A1 (en) * | 2021-06-25 | 2021-12-23 | Intel Corporation | Area and energy efficient multi-precision multiply-accumulate unit-based processor |
| EP4363989A1 (en) * | 2021-06-28 | 2024-05-08 | Synthara AG | Neural network accelerator |
| US20240303041A1 (en) * | 2021-07-23 | 2024-09-12 | Solid State Of Mind | Apparatus and method for energy-efficient and accelerated processing of an arithmetic operation |
| US11906943B2 (en) * | 2021-08-12 | 2024-02-20 | Nozomi Networks Sagl | Method for automatic translation of ladder logic to a SMT-based model checker in a network |
| KR102862045B1 (ko) * | 2021-08-31 | 2025-09-22 | 삼성전자주식회사 | 다중 포맷 데이터를 지원하는 연산 장치 및 장치 |
| US12591412B1 (en) * | 2021-09-14 | 2026-03-31 | Amazon Technologies, Inc. | Vector engine for efficient beam search |
| CN113961870A (zh) * | 2021-10-22 | 2022-01-21 | 深圳大学 | 应用于脑电信号处理的fft芯片电路及其设计方法、装置 |
| KR102883350B1 (ko) * | 2021-11-02 | 2025-11-07 | 삼성전자주식회사 | 뉴럴 네트워크 연산 장치 및 방법 |
| TWI804043B (zh) * | 2021-11-08 | 2023-06-01 | 財團法人工業技術研究院 | 多輸入多輸出的累加器及其執行方法 |
| US12068971B2 (en) * | 2022-02-25 | 2024-08-20 | Google Llc | Robust age-saturation mechanism for age-based arbitration in packet networks |
| US11848670B2 (en) * | 2022-04-15 | 2023-12-19 | Xilinx, Inc. | Multiple partitions in a data processing array |
| JP2024000852A (ja) * | 2022-06-21 | 2024-01-09 | キヤノン株式会社 | プログラマブル信号処理回路及び当該回路用のプログラム |
| US20230418557A1 (en) * | 2022-06-28 | 2023-12-28 | Taiwan Semiconductor Manufacturing Company, Ltd. | Data computation circuit and method |
| US20240036826A1 (en) * | 2022-07-28 | 2024-02-01 | Avago Technologies International Sales Pte. Limited | Convolution hardware accelerator |
| KR102839211B1 (ko) * | 2022-09-05 | 2025-07-28 | 리벨리온 주식회사 | 뉴럴 프로세싱 장치, 그에 포함되는 프로세싱 엘리먼트 및 뉴럴 프로세싱 장치의 다양한 포맷 연산 방법 |
| US20240111489A1 (en) * | 2022-09-29 | 2024-04-04 | Advanced Micro Devices, Inc. | Bignum addition and/or subtraction with carry propagation |
| CN115545179A (zh) * | 2022-10-13 | 2022-12-30 | 中国人民解放军国防科技大学 | Gpdsp中面向深度学习的高效计算装置 |
| CN115756389B (zh) * | 2022-10-18 | 2026-03-20 | 兰州大学 | 一种基于fpga的浮点乘加器及计算方法 |
| US12554499B2 (en) * | 2023-01-03 | 2026-02-17 | Meta Platforms Technologies, Llc | Data compression using instruction set architecture |
| KR102762717B1 (ko) * | 2023-04-07 | 2025-02-07 | 한국과학기술원 | 범용 기계 학습 가속을 위한 혼합 정밀도 벡터 프로세서 시스템 |
| KR102609481B1 (ko) * | 2023-04-12 | 2023-12-04 | 주식회사 하이퍼엑셀 | 레이턴시 프로세싱 유닛 |
| US20240380607A1 (en) * | 2023-05-11 | 2024-11-14 | Intel Corporation | Systems And Methods For Verification Of Data Erasure |
| US12541483B1 (en) * | 2023-06-30 | 2026-02-03 | Auradine, Inc. | Signal processing and transmission in electronic circuits |
| US20250106161A1 (en) * | 2023-09-22 | 2025-03-27 | Hewlett Packard Enterprise Development Lp | Decoupling congestion management state and connection management state in high performance computing |
| KR102835979B1 (ko) * | 2023-11-28 | 2025-07-21 | 서강대학교 산학협력단 | 단일 덧셈기 기반 곱셈 누산 연산 장치 및 방법 |
| US12045309B1 (en) | 2023-11-29 | 2024-07-23 | Recogni Inc. | Systems and methods for performing matrix multiplication with a plurality of processing elements |
| US12007937B1 (en) * | 2023-11-29 | 2024-06-11 | Recogni Inc. | Multi-mode architecture for unifying matrix multiplication, 1×1 convolution and 3×3 convolution |
| CN117348839B (zh) * | 2023-12-06 | 2024-02-13 | 西北工业大学 | 一种多精度低开销加法器 |
| US20250199760A1 (en) * | 2023-12-13 | 2025-06-19 | Taiwan Semiconductor Manufacturing Company, Ltd. | Systems and methods for performing floating point mac operations with improved cim |
| US12436771B2 (en) * | 2023-12-29 | 2025-10-07 | Qualcomm Incorporated | Performing fused shift and logical operations in processor-based devices |
| CN117492693B (zh) * | 2024-01-03 | 2024-03-22 | 沐曦集成电路(上海)有限公司 | 一种用于滤波器的浮点数据处理系统 |
| WO2025208331A1 (en) * | 2024-04-02 | 2025-10-09 | Chee Wah Lim | Method and circuit of adding binary strings |
| TWI891494B (zh) * | 2024-08-30 | 2025-07-21 | 大陸商星宸科技股份有限公司 | 電子裝置及其浮點計算單元資源的管理方法 |
| CN119415063B (zh) * | 2024-09-03 | 2025-11-18 | 西安交通大学 | 一种定浮点混合处理电路 |
| TWI904966B (zh) * | 2024-12-16 | 2025-11-11 | 新唐科技股份有限公司 | 用於減少門閘數的周邊模組數量決定方法、用於減少功耗的方法與單晶片系統 |
| CN121396779B (zh) * | 2025-12-24 | 2026-03-24 | 苏州异格技术有限公司 | 用于通道初始化的方法、装置、设备和介质 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005531172A (ja) | 2002-05-17 | 2005-10-13 | エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート | プロセッサと連結されたプログラム可能な可変長デコーダ |
| US20090083518A1 (en) | 2007-09-25 | 2009-03-26 | Glew Andrew F | Attaching and virtualizing reconfigurable logic units to a processor |
| US20170286117A1 (en) | 2016-03-31 | 2017-10-05 | Intel Corporation | Instruction and Logic for Configurable Arithmetic Logic Unit Pipeline |
Family Cites Families (91)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5047973A (en) * | 1989-04-26 | 1991-09-10 | Texas Instruments Incorporated | High speed numerical processor for performing a plurality of numeric functions |
| US5442797A (en) | 1991-12-04 | 1995-08-15 | Casavant; Thomas L. | Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging |
| US5684980A (en) | 1992-07-29 | 1997-11-04 | Virtual Computer Corporation | FPGA virtual computer for executing a sequence of program instructions by successively reconfiguring a group of FPGA in response to those instructions |
| US5574672A (en) * | 1992-09-25 | 1996-11-12 | Cyrix Corporation | Combination multiplier/shifter |
| US5701482A (en) * | 1993-09-03 | 1997-12-23 | Hughes Aircraft Company | Modular array processor architecture having a plurality of interconnected load-balanced parallel processing nodes |
| GB9403030D0 (en) * | 1994-02-17 | 1994-04-06 | Austin Kenneth | Re-configurable application specific device |
| US5524154A (en) * | 1994-08-31 | 1996-06-04 | At&T Corp. | Hybrid architecture for an optical switching fabric implemented with 1×2 switching devices |
| US5646877A (en) | 1995-05-25 | 1997-07-08 | Texas Instruments Incorporated | High radix multiplier architecture |
| US5838942A (en) * | 1996-03-01 | 1998-11-17 | Hewlett-Packard Company | Panic trap system and method |
| US5880981A (en) * | 1996-08-12 | 1999-03-09 | Hitachi America, Ltd. | Method and apparatus for reducing the power consumption in a programmable digital signal processor |
| GB2317465B (en) * | 1996-09-23 | 2000-11-15 | Advanced Risc Mach Ltd | Data processing apparatus registers. |
| GB2317468B (en) * | 1996-09-23 | 2001-01-24 | Advanced Risc Mach Ltd | Digital signal processing integrated circuit architecture |
| US5892962A (en) | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
| US6490607B1 (en) * | 1998-01-28 | 2002-12-03 | Advanced Micro Devices, Inc. | Shared FP and SIMD 3D multiplier |
| US6381083B1 (en) * | 1999-07-30 | 2002-04-30 | Applied Nonlinear Sciences, Llc | Multilevel signal equalization utilizing nonlinear maps |
| US6372354B1 (en) | 1999-09-13 | 2002-04-16 | Chemat Technology, Inc. | Composition and method for a coating providing anti-reflective and anti-static properties |
| GB2355087B (en) * | 1999-10-08 | 2003-12-17 | Mitel Corp | Method & apparatus for calculating energy in A-law or Á-law encoded speech signals |
| US7051330B1 (en) | 2000-11-21 | 2006-05-23 | Microsoft Corporation | Generic application server and method of operation therefor |
| US7567596B2 (en) * | 2001-01-30 | 2009-07-28 | Board Of Trustees Of Michigan State University | Control system and apparatus for use with ultra-fast laser |
| US7325123B2 (en) | 2001-03-22 | 2008-01-29 | Qst Holdings, Llc | Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements |
| US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
| US7653710B2 (en) * | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
| US20030088757A1 (en) * | 2001-05-02 | 2003-05-08 | Joshua Lindner | Efficient high performance data operation element for use in a reconfigurable logic environment |
| US7085996B2 (en) * | 2001-10-18 | 2006-08-01 | International Business Corporation | Apparatus and method for source compression and comparison |
| US7013321B2 (en) | 2001-11-21 | 2006-03-14 | Sun Microsystems, Inc. | Methods and apparatus for performing parallel integer multiply accumulate operations |
| US6986021B2 (en) | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
| US7403981B2 (en) | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
| US20030169279A1 (en) * | 2002-03-05 | 2003-09-11 | Oberoi Ranjit S. | Reconfigurable pixel computation unit |
| US6732354B2 (en) | 2002-04-23 | 2004-05-04 | Quicksilver Technology, Inc. | Method, system and software for programming reconfigurable hardware |
| US7415594B2 (en) | 2002-06-26 | 2008-08-19 | Coherent Logix, Incorporated | Processing system with interspersed stall propagating processors and communication elements |
| US7263602B2 (en) | 2002-08-16 | 2007-08-28 | Carnegie Mellon University | Programmable pipeline fabric utilizing partially global configuration buses |
| US7478031B2 (en) | 2002-11-07 | 2009-01-13 | Qst Holdings, Llc | Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information |
| US20040172439A1 (en) | 2002-12-06 | 2004-09-02 | The Research Foundation Of State University Of New York | Unified multiplier triple-expansion scheme and extra regular compact low-power implementations with borrow parallel counter circuits |
| GB0317570D0 (en) * | 2003-07-26 | 2003-08-27 | Koninkl Philips Electronics Nv | Long-integer multiplier |
| US7353516B2 (en) | 2003-08-14 | 2008-04-01 | Nvidia Corporation | Data flow control for adaptive integrated circuitry |
| US7200837B2 (en) | 2003-08-21 | 2007-04-03 | Qst Holdings, Llc | System, method and software for static and dynamic programming and configuration of an adaptive computing architecture |
| US8117392B2 (en) * | 2003-10-22 | 2012-02-14 | Intel Corporation | Method and apparatus for efficient ordered stores over an interconnection network |
| US20060074320A1 (en) * | 2004-08-27 | 2006-04-06 | Yoo Yang M | Home ultrasound system |
| US7225323B2 (en) | 2004-11-10 | 2007-05-29 | Nvidia Corporation | Multi-purpose floating point and integer multiply-add functional unit with multiplication-comparison test addition and exponent pipelines |
| US7394288B1 (en) | 2004-12-13 | 2008-07-01 | Massachusetts Institute Of Technology | Transferring data in a parallel processing environment |
| US7590839B2 (en) | 2005-03-22 | 2009-09-15 | Qnx Software Systems Gmbh & Co. Kg | System employing fast booting of application programs |
| US20070086528A1 (en) * | 2005-10-18 | 2007-04-19 | Mauchly J W | Video encoder with multiple processors |
| US7372297B1 (en) | 2005-11-07 | 2008-05-13 | Tabula Inc. | Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources |
| US8390325B2 (en) | 2006-06-21 | 2013-03-05 | Element Cxi, Llc | Reconfigurable integrated circuit architecture with on-chip configuration and reconfiguration |
| US8456191B2 (en) | 2006-06-21 | 2013-06-04 | Element Cxi, Llc | Data-driven integrated circuit architecture |
| US7958179B2 (en) * | 2006-12-06 | 2011-06-07 | Electronics And Telecommunications Research Institute | Arithmetic method and device of reconfigurable processor |
| US7565513B2 (en) * | 2007-02-28 | 2009-07-21 | Advanced Micro Devices, Inc. | Processor with power saving reconfigurable floating point unit decoding an instruction to single full bit operation or multiple reduced bit operations |
| KR100935858B1 (ko) * | 2007-12-05 | 2010-01-07 | 한국전자통신연구원 | 재구성 가능한 산술연산기 및 이를 구비한 고효율 프로세서 |
| JP4911022B2 (ja) | 2007-12-27 | 2012-04-04 | 富士通セミコンダクター株式会社 | カウンタ制御回路、動的再構成回路およびループ処理制御方法 |
| US8108653B2 (en) | 2008-01-09 | 2012-01-31 | Analog Devices, Inc. | Processor architectures for enhanced computational capability and low latency |
| US8174428B2 (en) * | 2008-05-21 | 2012-05-08 | Integrated Device Technology, Inc. | Compression of signals in base transceiver systems |
| US9419620B2 (en) * | 2008-07-22 | 2016-08-16 | Nytell Software LLC | Field programmable object array and video compression processor for video data compression |
| US8694570B2 (en) * | 2009-01-28 | 2014-04-08 | Arun Mohanlal Patel | Method and apparatus for evaluation of multi-dimensional discrete fourier transforms |
| US8527572B1 (en) | 2009-04-02 | 2013-09-03 | Xilinx, Inc. | Multiplier architecture utilizing a uniform array of logic blocks, and methods of using the same |
| KR101581882B1 (ko) | 2009-04-20 | 2015-12-31 | 삼성전자주식회사 | 재구성 가능한 프로세서 및 그 재구성 방법 |
| US8495125B2 (en) | 2009-05-27 | 2013-07-23 | Microchip Technology Incorporated | DSP engine with implicit mixed sign operands |
| GB2471067B (en) | 2009-06-12 | 2011-11-30 | Graeme Roy Smith | Shared resource multi-thread array processor |
| US8615540B2 (en) * | 2009-07-24 | 2013-12-24 | Honeywell International Inc. | Arithmetic logic unit for use within a flight control system |
| US9083740B1 (en) * | 2009-09-28 | 2015-07-14 | Juniper Networks, Inc. | Network traffic pattern matching using adaptive deterministic finite automata |
| KR101814221B1 (ko) * | 2010-01-21 | 2018-01-02 | 스비랄 인크 | 스트림 기반 계산을 구현하기 위한 범용 다중 코어 시스템을 위한 방법 및 장치 |
| US9535413B2 (en) | 2010-02-12 | 2017-01-03 | Rockwell Automation Technologies, Inc. | Automatic device parameter binding method and system |
| US8760392B2 (en) * | 2010-04-20 | 2014-06-24 | Invensense, Inc. | Wireless motion processing sensor systems suitable for mobile and battery operation |
| JP2012221131A (ja) * | 2011-04-06 | 2012-11-12 | Panasonic Corp | 画像認識プロセッサ |
| US8966457B2 (en) | 2011-11-15 | 2015-02-24 | Global Supercomputing Corporation | Method and system for converting a single-threaded software program into an application-specific supercomputer |
| CN103390070A (zh) * | 2012-05-07 | 2013-11-13 | 北京大学深圳研究生院 | 一种可重构算子阵列结构 |
| JP2013254436A (ja) | 2012-06-08 | 2013-12-19 | Fujitsu Semiconductor Ltd | 動的再構成回路,半導体集積回路および動的再構成回路の制御方法 |
| US9753695B2 (en) * | 2012-09-04 | 2017-09-05 | Analog Devices Global | Datapath circuit for digital signal processors |
| US9292464B2 (en) | 2012-12-13 | 2016-03-22 | Coherent Logix, Incorporated | Multiprocessor system with improved secondary interconnection network |
| US10628156B2 (en) | 2013-07-09 | 2020-04-21 | Texas Instruments Incorporated | Vector SIMD VLIW data path architecture |
| GB2526018B (en) | 2013-10-31 | 2018-11-14 | Silicon Tailor Ltd | Multistage switch |
| US20170123792A1 (en) | 2015-11-03 | 2017-05-04 | Imagination Technologies Limited | Processors Supporting Endian Agnostic SIMD Instructions and Methods |
| US10120685B2 (en) | 2015-11-04 | 2018-11-06 | International Business Machines Corporation | Tightly coupled processor arrays using coarse grained reconfigurable architecture with iteration level commits |
| US10042606B2 (en) * | 2016-05-03 | 2018-08-07 | Altera Corporation | Fixed-point and floating-point arithmetic operator circuits in specialized processing blocks |
| US10216479B2 (en) * | 2016-12-06 | 2019-02-26 | Arm Limited | Apparatus and method for performing arithmetic operations to accumulate floating-point numbers |
| US10558250B2 (en) | 2016-12-23 | 2020-02-11 | Oracle International Corporation | System and method for coordinated link up handling following switch reset in a high performance computing network |
| GB2561396B (en) * | 2017-04-13 | 2020-07-15 | Barclays Execution Services Ltd | Data security using two operating environments operating in parallel |
| US10474822B2 (en) | 2017-10-08 | 2019-11-12 | Qsigma, Inc. | Simultaneous multi-processor (SiMulPro) apparatus, simultaneous transmit and receive (STAR) apparatus, DRAM interface apparatus, and associated methods |
| US11093251B2 (en) | 2017-10-31 | 2021-08-17 | Micron Technology, Inc. | System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network |
| US10970042B2 (en) * | 2017-11-20 | 2021-04-06 | Intel Corporation | Integrated circuits with machine learning extensions |
| US11361073B2 (en) * | 2018-01-17 | 2022-06-14 | Nippon Telegraph And Telephone Corporation | Analysis apparatus, analysis method, and analysis program |
| US20190287685A1 (en) * | 2018-03-16 | 2019-09-19 | Vvc Holding Corporation | String classification apparatus and methods using artificial intelligence |
| KR102504080B1 (ko) | 2018-03-31 | 2023-02-28 | 마이크론 테크놀로지, 인크. | 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭 |
| US10797734B2 (en) * | 2018-08-01 | 2020-10-06 | Commscope Technologies Llc | System with multiple virtual radio units in a radio unit that is remote from at least one baseband controller |
| US10853067B2 (en) | 2018-09-27 | 2020-12-01 | Intel Corporation | Computer processor for higher precision computations using a mixed-precision decomposition of operations |
| US12337244B1 (en) * | 2018-10-26 | 2025-06-24 | Snap Inc. | Generating a live streaming video having real-time special effects |
| US11886377B2 (en) * | 2019-09-10 | 2024-01-30 | Cornami, Inc. | Reconfigurable arithmetic engine circuit |
| US11360870B2 (en) * | 2020-03-26 | 2022-06-14 | Intel Corporation | Functional safety compliant self-testing |
| US12147434B2 (en) * | 2020-03-27 | 2024-11-19 | Sap Se | Ranking filter algorithms |
| US12236353B2 (en) * | 2020-12-14 | 2025-02-25 | Fair Isaac Corporation | Latent-space misalignment measure of responsible AI for machine learning models |
| US12277444B2 (en) * | 2021-11-24 | 2025-04-15 | Groq, Inc. | Software-defined tensor streaming multiprocessor for large-scale machine learning |
| US11895029B2 (en) * | 2021-12-10 | 2024-02-06 | Nokia Solutions And Networks Oy | Network processor with external memory protection |
-
2020
- 2020-09-09 US US17/015,950 patent/US11886377B2/en active Active
- 2020-09-09 US US17/015,973 patent/US11494331B2/en active Active
- 2020-09-10 KR KR1020247038774A patent/KR102903876B1/ko active Active
- 2020-09-10 WO PCT/US2020/050069 patent/WO2021050643A1/en not_active Ceased
- 2020-09-10 CN CN202080076756.8A patent/CN114641755A/zh active Pending
- 2020-09-10 WO PCT/US2020/050058 patent/WO2021050636A1/en not_active Ceased
- 2020-09-10 JP JP2022516115A patent/JP7428787B2/ja active Active
- 2020-09-10 EP EP20863856.9A patent/EP4028873A4/en active Pending
- 2020-09-10 KR KR1020227011574A patent/KR102734496B1/ko active Active
- 2020-09-10 EP EP20862126.8A patent/EP4028872A4/en active Pending
-
2022
- 2022-10-17 US US17/967,173 patent/US11977509B2/en active Active
- 2022-12-31 US US18/092,247 patent/US11907157B2/en active Active
-
2023
- 2023-12-31 US US18/401,571 patent/US12182063B2/en active Active
-
2024
- 2024-01-18 US US18/415,958 patent/US12461890B2/en active Active
- 2024-01-25 JP JP2024009413A patent/JP7561292B2/ja active Active
- 2024-09-20 JP JP2024163510A patent/JP7646934B2/ja active Active
- 2024-12-16 US US18/982,545 patent/US20250117357A1/en active Pending
-
2025
- 2025-09-12 US US19/327,638 patent/US20260017229A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005531172A (ja) | 2002-05-17 | 2005-10-13 | エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート | プロセッサと連結されたプログラム可能な可変長デコーダ |
| US20090083518A1 (en) | 2007-09-25 | 2009-03-26 | Glew Andrew F | Attaching and virtualizing reconfigurable logic units to a processor |
| US20170286117A1 (en) | 2016-03-31 | 2017-10-05 | Intel Corporation | Instruction and Logic for Configurable Arithmetic Logic Unit Pipeline |
Also Published As
| Publication number | Publication date |
|---|---|
| US20210073171A1 (en) | 2021-03-11 |
| JP2024045315A (ja) | 2024-04-02 |
| KR102903876B1 (ko) | 2025-12-29 |
| CN114641755A (zh) | 2022-06-17 |
| US12461890B2 (en) | 2025-11-04 |
| EP4028873A4 (en) | 2023-11-22 |
| US20210072954A1 (en) | 2021-03-11 |
| KR102734496B1 (ko) | 2024-11-28 |
| WO2021050643A1 (en) | 2021-03-18 |
| KR20220054681A (ko) | 2022-05-03 |
| US11977509B2 (en) | 2024-05-07 |
| EP4028872A4 (en) | 2024-01-03 |
| US20250117357A1 (en) | 2025-04-10 |
| US11886377B2 (en) | 2024-01-30 |
| EP4028872A1 (en) | 2022-07-20 |
| KR20240168475A (ko) | 2024-11-29 |
| JP2025000718A (ja) | 2025-01-07 |
| US20240152486A1 (en) | 2024-05-09 |
| US11494331B2 (en) | 2022-11-08 |
| JP7561292B2 (ja) | 2024-10-03 |
| US12182063B2 (en) | 2024-12-31 |
| WO2021050636A1 (en) | 2021-03-18 |
| US20230153265A1 (en) | 2023-05-18 |
| JP7646934B2 (ja) | 2025-03-17 |
| JP2022548046A (ja) | 2022-11-16 |
| US20230055513A1 (en) | 2023-02-23 |
| EP4028873A1 (en) | 2022-07-20 |
| US20260017229A1 (en) | 2026-01-15 |
| US20240134817A1 (en) | 2024-04-25 |
| US11907157B2 (en) | 2024-02-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7428787B2 (ja) | 再構成可能プロセッサ回路アーキテクチャ | |
| US5446651A (en) | Split multiply operation | |
| US5465224A (en) | Three input arithmetic logic unit forming the sum of a first Boolean combination of first, second and third inputs plus a second Boolean combination of first, second and third inputs | |
| US5995747A (en) | Three input arithmetic logic unit capable of performing all possible three operand boolean operations with shifter and/or mask generator | |
| US5644522A (en) | Method, apparatus and system for multiply rounding using redundant coded multiply result | |
| US6098163A (en) | Three input arithmetic logic unit with shifter | |
| US5509129A (en) | Long instruction word controlling plural independent processor operations | |
| US5600847A (en) | Three input arithmetic logic unit with mask generator | |
| US5596763A (en) | Three input arithmetic logic unit forming mixed arithmetic and boolean combinations | |
| US5960193A (en) | Apparatus and system for sum of plural absolute differences | |
| US5694348A (en) | Method apparatus and system for correlation | |
| US5596519A (en) | Iterative division apparatus, system and method employing left most one's detection and left most one's detection with exclusive OR | |
| US20210326111A1 (en) | FPGA Processing Block for Machine Learning or Digital Signal Processing Operations | |
| US5442581A (en) | Iterative division apparatus, system and method forming plural quotient bits per iteration | |
| US5712999A (en) | Address generator employing selective merge of two independent addresses | |
| US5512896A (en) | Huffman encoding method, circuit and system employing most significant bit change for size detection | |
| US5689695A (en) | Conditional processor operation based upon result of two consecutive prior processor operations | |
| Arnold | Logarithmic Number Systems for MPEG and Multimedia Applications |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230911 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230911 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20230911 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230926 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231115 |
|
| 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: 20231226 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240125 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7428787 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
