JP7015249B2 - 再構成可能アルゴリズムによるパイプラインコアおよびアルゴリズムマッチングパイプラインコンパイラを有するプロセッサ - Google Patents
再構成可能アルゴリズムによるパイプラインコアおよびアルゴリズムマッチングパイプラインコンパイラを有するプロセッサ Download PDFInfo
- Publication number
- JP7015249B2 JP7015249B2 JP2018558111A JP2018558111A JP7015249B2 JP 7015249 B2 JP7015249 B2 JP 7015249B2 JP 2018558111 A JP2018558111 A JP 2018558111A JP 2018558111 A JP2018558111 A JP 2018558111A JP 7015249 B2 JP7015249 B2 JP 7015249B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- reconfigurable
- core
- algorithm
- icat
- 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
- 238000004422 calculation algorithm Methods 0.000 title claims description 114
- 238000012545 processing Methods 0.000 claims description 104
- 238000000034 method Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 34
- 230000006870 function Effects 0.000 claims description 26
- 239000011159 matrix material Substances 0.000 claims description 15
- 230000002093 peripheral effect Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 9
- 102100031680 Beta-catenin-interacting protein 1 Human genes 0.000 description 158
- 101000993469 Homo sapiens Beta-catenin-interacting protein 1 Proteins 0.000 description 157
- 239000000284 extract Substances 0.000 description 14
- 230000008901 benefit Effects 0.000 description 12
- 238000013461 design Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000003491 array Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000007620 mathematical function Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- RVCKCEDKBVEEHL-UHFFFAOYSA-N 2,3,4,5,6-pentachlorobenzyl alcohol Chemical compound OCC1=C(Cl)C(Cl)=C(Cl)C(Cl)=C1Cl RVCKCEDKBVEEHL-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
- G06F15/7889—Reconfigurable logic implemented as a co-processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/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
-
- 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 Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Microcomputers (AREA)
Description
本出願は、その全体が参照により本明細書に組み込まれる、2016年1月26日に出願されたProcessor With Reconfigurable Algorithmic Pipelined Core And Algorithmic Matching Pipelined Compilerと題する米国仮出願第62/287,265号の優先権を主張する。
アルゴリズムマッチングパイプラインコンパイラすなわちAMPCとは、従来の非再構成可能プロセッサ用のハイレベルプログラミング言語で書かれたコードを受け入れることが可能なコンパイラであり、AMPCは、RAPCまたはフィールドプログラマブルゲートアレイなどの再構成可能なコアまたはプロセッサにおいて利用可能なパイプライン化から利益を受けることができるハイレベルプログラミング言語で書かれたコードを識別し、再構成可能なコアまたはプロセッサを使用するための命令を提供する前に、再構成可能なコアまたはプロセッサを構成するように非再構成可能プロセッサに命令する、非再構成可能プロセッサ用のコードを出力する。再使用可能(または、再構成可能)アルゴリズムによるパイプラインコア(または、コンピュータ)すなわちRAPCとは、セットアップデータによって決定されるような数学関数の様々な組合せとともに連結または動作することができるオペランドデータ用の4つの入力を有する、整数計算および浮動小数点計算などの複数の演算のいずれかをプログラムするためのセットアップインターフェースと、ステータスデータとともに結果データとして出力される48ビットのアキュムレータとを含むDSP、関数を実行するために使用できるルックアップテーブル、ループカウンタ、および定数レジスタをプログラムするためのセットアップインターフェースと、メモリのブロックとを有するLDP、ならびにMBSを備える、パイプライン構造を有する再構成可能な処理コアとして定義される。MBSとは、アルゴリズムの処理中に中央プロセッサまたは周辺プロセッサからのこれ以上の介入なしにアルゴリズムを完了するために、必要に応じて、あるRAPCから別のRAPCに、かつ入力/出力コントローラおよび/または割込み生成器との間で、データおよび結果をルーティングする、再構成可能なプログラマブル回路として定義される。
int noise_threshold = 3;
int live_video_pixel = 0;
int black_video_pixel = 0;
boolean motion_detected = false;
int live_red_pixel = 0;
int live_green_pixel = 0;
int live_blue_pixel = 0;
int frame_delayed_pixel;
int frame_delayed_red_pixel = 0;
int frame_delayed_green_pixel = 0;
int frarne_delayed_blue_pixel = 0;
int red_mask =255; // 16進数の0000FF、2進数の000000000000000011111111は、ビット0~7を抽出する
int green_mask = 65,280; // 16進数の00FF00、2進数の000000001111111100000000は、ビット8~15を抽出する
int green_divisor =256
int blue_mask =16,711,680; // 16進数のFF0000、2進数の111111110000000000000000は、ビット23~16を抽出する
int blue_divisor =65,536
// live_video_pixelから赤色、緑色、および青色のピクセルを抽出するためのプロシージャ
void extract_live_red_green_blue(int live_video_pixel)
{
live_red_pixel = (live_video_pixel); // ライブビデオから赤色のピクセルを抽出する
live_red_pixel = live_red_pixel & red_mask
live_red_pixel = (live_red_pixel / red_divisor)
live green pixel = (live_video_pixel); // ライブビデオから緑色のピクセルを抽出する
live_green_pixel = live_green_pixel & green_mask
live_green_pixel = (live_green_pixel / green_divisor)
live blue pixel = (live_video_pixel); // ライブビデオから青色のピクセルを抽出する
live_blue_pixel = live_blue_pixel & blue_mask
live_blue_pixel = (live_blue_pixel / blue_divisor)
}
// delayed_frame_video_pixelから赤色、緑色、および青色のピクセルを抽出するためのプロシージャ
void extract_delayed_red_green_blue(int frame_delayed_video_pixel);
{
frame_delayed_red_pixel = (live_video_pixel); // 赤色のピクセルを抽出する
frame_delayed_red_pixel = (frame_delayed_red_pixel & red_mask);
frame_delayed_red_pixel = (frame_delayed_red_pixel / red_divisor);
frame_delayed_green_pixel = (live_video_pixel); // 緑色のピクセルを抽出する
frame_delayed_green_pixel = (frame_delayed_green_pixel & green_mask);
frame_delayed_green_pixel = (frame_delayed_green_pixel / green_divisor);
frame_delayed_blue_pixel = (frame_delayed_video_pixel); // 青色のピクセルを抽出する
frame_delayed_blue_pixel = (frame_delayed_blue_pixel & blue_mask)
frame_delayed_blue_pixel = (frame_delayed_blue_pixel / blue_divisor)
}
// 動き検出アルゴリズムのためのプロシージャ
boolean motion_detected detect_motion();
{
motion_detect = false; // 動きを検出するための準備をする
result_red_pixel = (frame_delayed_red_pixel - live_red_pixel); // 赤色のピクセルを減じる
if(result_red_pixel > noise_threshold) // red_resultが雑音しきい値よりも大きいかどうかをテストする
{
motion_detected = true; // 赤色のピクセル上で動きが検出された
} // if(result_red_pixel > noise_threshold)の終わり
result_green_pixel = frame_delayed_green_pixel - live_green_pixel; // 緑色のピクセルを減じる
if(result_green_pixel > noise_threshold) // green_resultが雑音しきい値よりも大きいかどうかをテストする
{
motion_detected = true; // 緑色のピクセル上で動きが検出された
} // if(result_green_pixel > noise_threshold)の終わり
result_blue_pixel = frame_delayed_green_pixel - live_green_pixel; // 緑色のピクセルを減じる
if(result_blue_pixel > noise_threshold) // blue_resultが雑音しきい値よりも大きいかどうかをテストする
{
motion_detected = true;
} // if(result_blue_pixel > noise_threshold)の終わり
return motion_detected; // 青色のピクセル上で動きが検出された
} // 動き検出アルゴリズムの終わり
// ビデオの1フレームのためのプロシージャ(ビデオのフレームごとに実行される)
do // フレームごとにすべてのピクセルを処理する(hd = フレーム当り777,600ピクセル)
// (ピクセルごとに31個の命令が実行される)
{
if(pixel_clock = true); // pixel_clockはライブビデオストリームに由来し、hd = 46.656MHzである
{ // ライブビデオおよび遅延したビデオピクセルから赤色、緑色、および青色のピクセルを抽出する
frame_delayed_pixel = delay_buffer_output_pixel; // フレーム遅延したビデオピクセルを得る
live_video_pixel = live_video_input_pixel; // ライブビデオピクセルを得る
extract_live_red_green_blue(int live_video_pixel); // ライブカラーピクセルを抽出する(9命令/ピクセル)
extract_delayed_red_green_blue(int frame_delayed_pixel); // 遅延したカラーピクセルを抽出する(9命令/ピクセル)
} // if(pixel_clock = true)の終わり
motion_detect = detect_motion(); // 動きを検出するための関数を呼び出す(11命令/ピクセル)
if(motion_detect = true); // motion_detectがビデオ出力1および2の処理をスワップする
{
output1; // 動いているビデオだけが表示される。動いていないビデオは黒色である。
output2; // 動いていないビデオだけが表示される。動いているビデオは黒色である。
} // if(motion_detect = true)の終わり
if(motion_detect = false); // motion_detectがビデオ出力1および2の処理をスワップする
{
output1; // 動いていないビデオだけが表示される。動いているビデオは黒色である。
output2; // 動いているビデオだけが表示される。動いていないビデオは黒色である。
} // if motion_detect = false)の終わり
until(end_of_frame = true); // end_of_frameはビデオストリームの中の信号である
101 メイン処理システム
102 並列処理リソース
103~106 制御レジスタ
107 数理プロセッサ
108 論理プロセッサ
109 マトリックスルーティング
110 デジタル信号プロセッサ(DSP)
111 論理決定プロセッサ(LDP)
112 出力デバイス
113 デバイス
Claims (20)
- 再使用可能アルゴリズムによるパイプラインコアであって、
処理ユニットと、
再構成可能なフィールドプログラマブルゲートのアレイであって、前記フィールドプログラマブルゲートが、アルゴリズムマッチングパイプラインコンパイラによってプログラムされ、その結果、前記アルゴリズムマッチングパイプラインコンパイラが、プリコンパイラでありかつ前記処理ユニットによって並列処理を有しない標準的なプロセッサ上での動作用に設計されたソースコードを処理するためにプリコンパイルし、前記処理ユニットおよび前記アルゴリズムマッチングパイプラインコンパイラが、前記フィールドプログラマブルゲートをパイプラインの並列プロセッサとして動作するように構成し、前記処理ユニット、前記再構成可能なフィールドプログラマブルゲートのアレイ、および前記プリコンパイラが、チップ上に配置されたパイプラインの並列プロセッサとして構成される、再構成可能なフィールドプログラマブルゲートのアレイと
を備える、コア。 - 前記アルゴリズムマッチングパイプラインコンパイラがプリコンパイラである、請求項1に記載のコア。
- 前記プリコンパイラが、前記コア用ではなくあるタイプの従来型非再構成可能プロセッサ用に書かれたハイレベル標準ソフトウェア言語をプリコンパイルするように構成され、前記プリコンパイラが、チップ上の前記コアとともに組み込まれた、前記ハイレベル標準ソフトウェア言語がそのために書かれた前記タイプの従来型非再構成可能プロセッサの組込みプロセッサを利用して、前記コア用の機械コードを生成し、前記プリコンパイラが、再構成可能なフィールドプログラマブルゲートの前記アレイを構成するための機械コードを生成するように構成され、前記組み込みプロセッサが、前記プリコンパイラによって生成された機械コード命令を実行する、請求項2に記載のコア。
- 前記ハイレベル標準ソフトウェア言語がCまたはC++である、請求項3に記載のコア。
- 前記コアが、特定の計算のために必要とされるアルゴリズムを処理するように、前記プリコンパイラからの出力に基づいて構成されるコンピュータのプールを備え、前記フィールドプログラマブルゲートが、前記処理ユニットからのこれ以上のオーバーヘッドなしにタスクを完了するように前記プリコンパイラによって構成され、前記プリコンパイラが、パイプライン処理およびデータのルーティングを直接実行するように前記フィールドプログラマブルゲートを構成するための命令を出力するように構成される、請求項2に記載のコア。
- インテリジェントバスコントローラまたは論理プロセッサをさらに備え、前記インテリジェントバスコントローラまたは論理プロセッサが、前記コアによって処理される全ての論理関数を実行する、請求項5に記載のコア。
- 論理プロセッサおよびマスタバススイッチをさらに備え、前記論理プロセッサが、前記マスタバススイッチの制御のための再構成可能な論理関数を備える、請求項5に記載のコア。
- デジタル信号プロセッサをさらに備え、前記デジタル信号プロセッサが、数学計算を実行するための再構成可能な数理プロセッサを備える、請求項7に記載のコア。
- 前記マスタバススイッチが、前記プリコンパイラおよび前記処理ユニットによって再構成可能にプログラマブルな回路を備えるマトリックスバスルータまたはマトリックスバススイッチであり、その結果、データおよび結果が、アルゴリズムの前記処理中に中央プロセッサまたは周辺プロセッサからの介入なしに、前記アルゴリズムを完了するために前記コアから別のコアにルーティングされ、パイプライン化することによってオーバーヘッドを低減する、請求項8に記載のコア。
- 前記論理プロセッサが論理決定および反復ループを処理し、アルゴリズムを学習するために結果メモリが前記論理プロセッサによって提供される、請求項9に記載のコア。
- 請求項1に記載の複数の前記コアを備え、
前記複数のコアのうちの1つまたは複数のデジタル信号プロセッサを使用して全ての数学演算を処理するステップと、
前記複数のコアのうちの1つまたは複数の1つまたは複数の論理プロセッサを使用して全ての論理関数のすべてを処理するステップと
を備える、システム。 - コアのプールとして前記複数のコアを構成するステップをさらに備え、コアの前記プールの各々が、ハードウェアのいかなる変更も伴わずプログラミングによって単独で再構成可能である、請求項11に記載のシステム。
- 前記構成するステップが、中央プロセッサまたは周辺プロセッサからの介入なしに、アルゴリズムを並行して処理するように前記複数のコアのすべてを構成する、請求項12に記載のシステム。
- 前記アルゴリズムマッチングパイプラインコンパイラがプリコンパイラであり、前記論理プロセッサが、定数または学習値のためのルックアップテーブルおよびレジスタとしてメモリブロックを使用する、請求項13に記載のシステム。
- 前記論理プロセッサによって前記ルックアップテーブルをセットアップするステップをさらに備え、前記ルックアップテーブルがnビットのルックアップテーブルであり、前記nビットのルックアップテーブルが、nビットのブール論理関数を真理値表として符号化するために使用される、請求項14に記載のシステム。
- 前記複数のコアのうちの1つまたは複数のための前記アルゴリズムマッチングパイプラインコンパイラを使用して、従来の非再構成可能かつ非パイプラインの汎用コンピュータプロセッサ用に書かれたハイレベル標準ソフトウェア言語から機械コードを生成するステップをさらに備える、請求項11に記載のシステム。
- 前記ハイレベル標準ソフトウェア言語が、あるタイプの従来型非再構成可能プロセッサ用に書かれ、機械コードを前記生成するステップは、前記アルゴリズムマッチングパイプラインコンパイラが、プリコンパイラとして、前記複数のコアの各々の再構成可能なフィールドプログラマブルゲートの前記アレイを構成するための機械コードを生成するために、前記タイプの従来型非再構成可能プロセッサを利用するステップを備える、請求項16に記載のシステム。
- 前記システムが、前記ハイレベル標準ソフトウェア言語がそのために書かれた前記タイプの従来型非再構成可能プロセッサとしての少なくとも1つのプロセッサを備え、前記ハイレベル標準ソフトウェア言語がそのために書かれた前記タイプの従来型非再構成可能プロセッサとしての前記少なくとも1つのプロセッサが、前記複数のコアの各々の再構成可能なフィールドプログラマブルゲートの前記アレイを構成するための前記機械コードを生成する、請求項17に記載のシステム。
- 前記複数のコアの各々が、前記ハイレベル標準ソフトウェア言語がそのために書かれた前記タイプの従来型非再構成可能プロセッサとしての前記少なくとも1つのプロセッサによる介入なしに、数理的および論理的なアルゴリズムを独立に解決するように構成される、請求項18に記載のシステム。
- 前記システムに値を入力することをさらに備え、前記システムが、介入なしに前記システムのマスタバススイッチに解を出力する、請求項19に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662287265P | 2016-01-26 | 2016-01-26 | |
US62/287,265 | 2016-01-26 | ||
PCT/US2017/015143 WO2017132385A1 (en) | 2016-01-26 | 2017-01-26 | Processor with reconfigurable algorithmic pipelined core and algorithmic matching pipelined compiler |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019506695A JP2019506695A (ja) | 2019-03-07 |
JP7015249B2 true JP7015249B2 (ja) | 2022-02-02 |
Family
ID=59359078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018558111A Active JP7015249B2 (ja) | 2016-01-26 | 2017-01-26 | 再構成可能アルゴリズムによるパイプラインコアおよびアルゴリズムマッチングパイプラインコンパイラを有するプロセッサ |
Country Status (17)
Country | Link |
---|---|
US (3) | US20170212739A1 (ja) |
EP (1) | EP3408737A4 (ja) |
JP (1) | JP7015249B2 (ja) |
KR (1) | KR20180132044A (ja) |
CN (1) | CN108885543A (ja) |
AU (1) | AU2017211781B2 (ja) |
BR (1) | BR112018015276A2 (ja) |
CA (1) | CA3012781C (ja) |
CL (1) | CL2018002025A1 (ja) |
CO (1) | CO2018008835A2 (ja) |
IL (1) | IL279302B2 (ja) |
MX (1) | MX2018009255A (ja) |
MY (1) | MY191841A (ja) |
PH (1) | PH12018501591A1 (ja) |
RU (1) | RU2018130817A (ja) |
SG (1) | SG11201806395SA (ja) |
WO (1) | WO2017132385A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6901042B2 (ja) * | 2018-04-03 | 2021-07-14 | 日本電気株式会社 | 心不全増悪度判定システム及び心不全増悪度判定方法 |
CN108958852A (zh) * | 2018-07-16 | 2018-12-07 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga异构平台的系统优化方法 |
JP7123676B2 (ja) * | 2018-07-20 | 2022-08-23 | オムロンヘルスケア株式会社 | 生体データ測定システム及び生体データ測定方法 |
WO2020099218A1 (en) * | 2018-11-15 | 2020-05-22 | My-Vitality Sàrl | Self-monitoring and care assistant for achieving glycemic goals |
KR101996842B1 (ko) * | 2018-12-26 | 2019-07-08 | (주)자람테크놀로지 | 사용자 정의 명령어 셋을 지원하는 하드웨어 고속 연산 결합형 risc-v 기반 연산 장치 및 그 방법 |
US11080227B2 (en) * | 2019-08-08 | 2021-08-03 | SambaNova Systems, Inc. | Compiler flow logic for reconfigurable architectures |
US20210076985A1 (en) * | 2019-09-13 | 2021-03-18 | DePuy Synthes Products, Inc. | Feature-based joint range of motion capturing system and related methods |
CN113222126B (zh) * | 2020-01-21 | 2022-01-28 | 上海商汤智能科技有限公司 | 数据处理装置、人工智能芯片 |
CN111444159B (zh) * | 2020-03-03 | 2024-05-03 | 中国平安人寿保险股份有限公司 | 精算数据处理方法、装置、电子设备及存储介质 |
KR20210151525A (ko) * | 2020-06-05 | 2021-12-14 | 삼성전자주식회사 | 생체정보 추정 장치 및 방법 |
US11809908B2 (en) | 2020-07-07 | 2023-11-07 | SambaNova Systems, Inc. | Runtime virtualization of reconfigurable data flow resources |
CN111813526A (zh) * | 2020-07-10 | 2020-10-23 | 深圳致星科技有限公司 | 用于联邦学习的异构处理系统、处理器及任务处理方法 |
US11782729B2 (en) | 2020-08-18 | 2023-10-10 | SambaNova Systems, Inc. | Runtime patching of configuration files |
US20220233093A1 (en) * | 2021-01-22 | 2022-07-28 | AsthmaTek, Inc. | Systems and methods to provide a physician interface that enables a physician to assess asthma of a subject and provide therapeutic feedback |
TWI768818B (zh) * | 2021-04-08 | 2022-06-21 | 緯創資通股份有限公司 | 混合式體溫量測系統及其方法 |
EP4105827B1 (en) * | 2021-06-14 | 2024-03-13 | Tata Consultancy Services Limited | Method and system for personalized eye blink detection |
CN113703843B (zh) * | 2021-09-24 | 2024-04-12 | 中国人民解放军军事科学院军事医学研究院 | 一种寄存器数据处理方法、装置及存储器 |
CN117311247B (zh) * | 2023-11-30 | 2024-03-26 | 山东盛泰矿业科技有限公司 | 一种用于地下采矿的控制装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002508102A (ja) | 1997-06-27 | 2002-03-12 | カメレオン・システムズ・インコーポレーテッド | 高水準プログラミング言語をコンパイルするための方法 |
JP2006065786A (ja) | 2004-08-30 | 2006-03-09 | Sanyo Electric Co Ltd | 処理装置 |
JP2014016894A (ja) | 2012-07-10 | 2014-01-30 | Renesas Electronics Corp | 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4291372A (en) * | 1979-06-27 | 1981-09-22 | Burroughs Corporation | Microprocessor system with specialized instruction format |
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 |
US20060081971A1 (en) * | 1997-09-30 | 2006-04-20 | Jeng Jye Shau | Signal transfer methods for integrated circuits |
US6718457B2 (en) * | 1998-12-03 | 2004-04-06 | Sun Microsystems, Inc. | Multiple-thread processor for threaded software applications |
TW463175B (en) * | 2000-03-01 | 2001-11-11 | Winbond Electronics Corp | Memory processing method and system |
US7000213B2 (en) * | 2001-01-26 | 2006-02-14 | Northwestern University | Method and apparatus for automatically generating hardware from algorithms described in MATLAB |
US20030066057A1 (en) * | 2001-02-23 | 2003-04-03 | Rudusky Daryl | System, method and article of manufacture for collaborative hardware design |
JP2007524923A (ja) * | 2003-05-23 | 2007-08-30 | ワシントン ユニヴァーシティー | Fpgaデバイスを使用するインテリジェントデータ記憶および処理 |
US7818725B1 (en) * | 2005-04-28 | 2010-10-19 | Massachusetts Institute Of Technology | Mapping communication in a parallel processing environment |
US7479802B2 (en) * | 2007-03-09 | 2009-01-20 | Quadric, Inc | Programmable logic integrated circuit for digital algorithmic functions |
US8214814B2 (en) * | 2008-06-24 | 2012-07-03 | International Business Machines Corporation | Sharing compiler optimizations in a multi-node system |
US20130212366A1 (en) * | 2012-02-09 | 2013-08-15 | Altera Corporation | Configuring a programmable device using high-level language |
US9218289B2 (en) * | 2012-08-06 | 2015-12-22 | Qualcomm Incorporated | Multi-core compute cache coherency with a release consistency memory ordering model |
-
2017
- 2017-01-26 US US15/416,972 patent/US20170212739A1/en not_active Abandoned
- 2017-01-26 KR KR1020187024664A patent/KR20180132044A/ko not_active Application Discontinuation
- 2017-01-26 SG SG11201806395SA patent/SG11201806395SA/en unknown
- 2017-01-26 AU AU2017211781A patent/AU2017211781B2/en active Active
- 2017-01-26 BR BR112018015276A patent/BR112018015276A2/pt not_active Application Discontinuation
- 2017-01-26 CN CN201780020270.0A patent/CN108885543A/zh active Pending
- 2017-01-26 WO PCT/US2017/015143 patent/WO2017132385A1/en active Application Filing
- 2017-01-26 JP JP2018558111A patent/JP7015249B2/ja active Active
- 2017-01-26 RU RU2018130817A patent/RU2018130817A/ru unknown
- 2017-01-26 CA CA3012781A patent/CA3012781C/en active Active
- 2017-01-26 MY MYPI2018702593A patent/MY191841A/en unknown
- 2017-01-26 MX MX2018009255A patent/MX2018009255A/es unknown
- 2017-01-26 EP EP17744897.4A patent/EP3408737A4/en active Pending
-
2018
- 2018-03-13 US US15/919,885 patent/US10515041B2/en active Active
- 2018-07-26 PH PH12018501591A patent/PH12018501591A1/en unknown
- 2018-07-26 CL CL2018002025A patent/CL2018002025A1/es unknown
- 2018-08-24 CO CONC2018/0008835A patent/CO2018008835A2/es unknown
-
2019
- 2019-11-06 US US16/675,876 patent/US10970245B2/en active Active
-
2020
- 2020-12-08 IL IL279302A patent/IL279302B2/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002508102A (ja) | 1997-06-27 | 2002-03-12 | カメレオン・システムズ・インコーポレーテッド | 高水準プログラミング言語をコンパイルするための方法 |
JP2006065786A (ja) | 2004-08-30 | 2006-03-09 | Sanyo Electric Co Ltd | 処理装置 |
JP2014016894A (ja) | 2012-07-10 | 2014-01-30 | Renesas Electronics Corp | 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム |
Non-Patent Citations (2)
Title |
---|
J.R.Hauser et al.,Garp: a MIPS processor with a reconfigurable coprocessor,Published in: Proceedings. The 5th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.97TB100186),IEEE,1997年04月18日,第12頁-第21頁 |
M.Weinhardt et al.,Pipeline vectorization for reconfigurable systems,Published in: Seventh Annual IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00375),IEEE,1999年04月23日,第1頁-第11頁 |
Also Published As
Publication number | Publication date |
---|---|
IL279302B2 (en) | 2023-06-01 |
EP3408737A4 (en) | 2019-09-11 |
RU2018130817A3 (ja) | 2020-04-16 |
US20170212739A1 (en) | 2017-07-27 |
CA3012781A1 (en) | 2017-08-03 |
CL2018002025A1 (es) | 2019-02-08 |
KR20180132044A (ko) | 2018-12-11 |
EP3408737A1 (en) | 2018-12-05 |
IL279302A (en) | 2021-01-31 |
CN108885543A (zh) | 2018-11-23 |
WO2017132385A1 (en) | 2017-08-03 |
AU2017211781A1 (en) | 2018-09-13 |
CA3012781C (en) | 2022-08-30 |
US20180246834A1 (en) | 2018-08-30 |
PH12018501591A1 (en) | 2019-04-08 |
JP2019506695A (ja) | 2019-03-07 |
SG11201806395SA (en) | 2018-08-30 |
MY191841A (en) | 2022-07-18 |
US10515041B2 (en) | 2019-12-24 |
US10970245B2 (en) | 2021-04-06 |
BR112018015276A2 (pt) | 2018-12-18 |
AU2017211781B2 (en) | 2021-04-22 |
US20200142851A1 (en) | 2020-05-07 |
CO2018008835A2 (es) | 2018-11-13 |
MX2018009255A (es) | 2019-03-18 |
RU2018130817A (ru) | 2020-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7015249B2 (ja) | 再構成可能アルゴリズムによるパイプラインコアおよびアルゴリズムマッチングパイプラインコンパイラを有するプロセッサ | |
JP7183197B2 (ja) | 高スループットプロセッサ | |
Nicol | A coarse grain reconfigurable array (CGRA) for statically scheduled data flow computing | |
CN111566616B (zh) | 多处理器系统的编程流程 | |
EP3525087A1 (en) | A method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system | |
De Bosschere et al. | High-performance embedded architecture and compilation roadmap | |
Gokhale et al. | FPGA computing in a data parallel C | |
Stitt | Are field-programmable gate arrays ready for the mainstream? | |
Filgueras et al. | Ompss@ zynq all-programmable soc ecosystem | |
Jesshope et al. | Design of SIMD microprocessor array | |
Giefers et al. | An FPGA-based reconfigurable mesh many-core | |
Neuendorffer et al. | The evolution of domain-specific computing for deep learning | |
Boppu | Code Generation for Tightly Coupled Processor Arrays | |
KHALILI MAYBODI | A Data-Flow Threads Co-processor for MPSoC FPGA Clusters | |
Janßen | Hardware/Software virtualization in complex embedded systems | |
de Albuquerque Ferreira | Designing an Instruction Set Based Coarse Grain Accelerator | |
Ventroux et al. | An auto-adaptative reconfigurable architecture for the control | |
Guccione | Software for Reconfigurable Computing | |
Chickerur et al. | Reconfigurable Computing: A Review | |
Döbrich | Performance Improvement of Adaptive Processors | |
Paulino | Generation of Custom Run-time Reconfigurable Hardware for Transparent Binary Acceleration | |
Moeller | COMPUTATIONAL MODELING AND SIMULATION OF RECONFIGURABLE RESPONSIVE EMBEDDED COMPUTING SYSTEMS | |
Gray | Developing Embedded Software Using Compile-Time Virtualisation | |
Valero | Message from the HiPEAC coordinator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191015 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210104 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20210402 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210705 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211210 |
|
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: 20211224 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220121 |