JP6638362B2 - 演算処理装置、演算処理システムおよび演算処理方法 - Google Patents
演算処理装置、演算処理システムおよび演算処理方法 Download PDFInfo
- Publication number
- JP6638362B2 JP6638362B2 JP2015241788A JP2015241788A JP6638362B2 JP 6638362 B2 JP6638362 B2 JP 6638362B2 JP 2015241788 A JP2015241788 A JP 2015241788A JP 2015241788 A JP2015241788 A JP 2015241788A JP 6638362 B2 JP6638362 B2 JP 6638362B2
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- circuit
- area
- arithmetic circuit
- processing
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 250
- 238000003672 processing method Methods 0.000 title claims description 8
- 238000000034 method Methods 0.000 claims description 137
- 230000008569 process Effects 0.000 claims description 130
- 238000004891 communication Methods 0.000 claims description 56
- 230000006870 function Effects 0.000 claims description 54
- 238000004364 calculation method Methods 0.000 claims description 29
- 238000010586 diagram Methods 0.000 description 24
- 238000012790 confirmation Methods 0.000 description 10
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- 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/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- 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/22—Microcontrol or microprogram arrangements
- G06F9/223—Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Stored Programmes (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Microcomputers (AREA)
Description
FPGAは、プログラミングすることができる集積回路(LSI:Large Scale Integration)であり、上述の如き演算処理システムにおいて、アルゴリズムの修正、拡張が可能なハードウェアという位置づけで用いられる。
1つの側面では、本発明は、演算処理装置の処理性能を向上させることを目的とする。
(A−1)ハードウェア構成
図1は第1実施形態の一例としての演算処理装置1のハードウェア構成を示す図である。
演算処理装置1は、例えばサーバ機能を備えたコンピュータ(情報処理装置)であり、図1に示すように、プロセッサ11とFPGA19とを備え、これらの処理装置(処理部)を用いて演算等の情報処理を実行する。
演算処理装置1は、例えば、プロセッサ11,RAM(Random Access Memory)12,HDD(Hard Disk Drive)13,グラフィック処理装置14,入力インタフェース15,光学ドライブ装置16,機器接続インタフェース17,ネットワークインタフェース18およびFPGA19を構成要素として有する。これらの構成要素11〜19は、バス20を介して相互に通信可能に構成される。
HDD(記憶部)13は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行なう。HDD13は、演算処理装置1の補助記憶装置として使用される。HDD13には、OSプログラム,アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリ等の半導体記憶装置(SSD:Solid State Drive)を使用することもできる。
入力インタフェース15には、キーボード15aおよびマウス15bが接続されている。入力インタフェース15は、キーボード15aやマウス15bから送られてくる信号をCPU11に送信する。なお、マウス15bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル,タブレット,タッチパッド,トラックボール等が挙げられる。
FPGA19は、プログラミングすることができるLSI(プログラマブル集積回路)である。FPGA19は、演算回路をNoC(Network On Chip)によってFPGA外部と接続するアーキテクチャを有する。演算回路とNoCは、ともにプログラマブルな論理回路上に構築されるものであり、製造時に作りこまれ変更不可能なNoCを持つアーキテクチャではない。
FPGA19は、図2に示すように、第1共用領域31,第2共用領域32および演算回路領域33を、それぞれ複数備える。
演算回路領域33は、演算処理を実行させるための演算回路として用いられる領域である。FPGA19において備えられる複数の演算回路領域33は互いに同一な矩形形状を有する。本第1実施形態においては、各演算回路領域33は正方形状を有する。
各演算回路領域33は、後述するCPU11により演算回路を構成する構成情報(演算回路構成情報)が設定されることにより、演算回路として機能する。
また、FPGA19において、隣り合う演算回路領域33間の隙間は、第1共用領域31を構成する。すなわち、第1共用領域31は、FPGA19において演算回路領域33を縦方向および横方向に等間隔に区画する格子状に配置されている。
第1共用領域31は、CPU11により配線回路を構成する構成情報(配線回路構成情報)が設定されることにより配線領域(接続回路)として機能する。以下、配線回路を構成する構成情報が設定されたことにより配線領域として機能している第1共用領域31を配線31という場合がある。
第2共用領域32は、CPU11によりルータ回路を構成する構成情報(ルータ回路構成情報)が設定されることによりルータとして機能する。以下、ルータ回路を構成する構成情報が設定されたことによりルータとして機能している第2共用領域32をルータ32という場合がある。
そして、FPGA19において、1つ以上の演算回路領域33等を用いて形成された演算回路は、配線31およびルータ32を連結して形成された接続回路(通信網)を介して、外部インタフェース(I/F)191 に接続され、バス20を介してCPU11に接続される。
第1共用領域31および第2共用領域32は、演算回路領域33とCPU11とを接続する接続回路(通信網)として機能する。以下、第1共用領域31および第2共用領域32を接続回路として機能させるための構成情報を、接続回路構成情報という場合がある。
従って、第1共用領域31および第2共用領域32は、接続回路として機能する一方で、演算回路としてもそれぞれ機能する。以下、第1共用領域31および第2共用領域32を演算回路として機能させるための構成情報(演算回路構成情報)を、第2の部分構成情報という場合がある。
以下、第1共用領域31,第2共用領域32および演算回路領域33をまとめて、部分領域30という場合がある。
なお、演算処理装置1は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(演算処理プログラム等)を実行することにより、本第1実施形態の演算処理機能を実現する。演算処理装置1に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、演算処理装置1に実行させるプログラムをHDD13に格納しておくことができる。CPU11は、HDD13内のプログラムの少なくとも一部をRAM12にロードし、ロードしたプログラムを実行する。
次に、本演算処理装置1において用いられる各種情報等について説明する。
以下においては、データ構造やコマンド等をC言語に準じた形式を用いて記述する例を示す。ただし、これに限定されるものではなく、C言語以外のプログラミング言語に準じた形式で表してもよく種々変形して実施することができる。
例えば、config_ptr_t はRAM12に格納された各構成情報(部分構成情報)の格納場所を示すポインタである。
以下、これらのルータ32,縦配線31bおよび横配線31aを実現するための各構成情報を通信網構成情報という場合がある。
このように、本演算処理装置1においては、FPGA19の回路構成情報が、横配線31a,縦配線31b,ルータ32をそれぞれ構成する複数のモジュール(部分構成情報)に分割して構成されている。そして、これらの部分構成情報は、各部分領域30に対して個別に設定することで、部分的に(部分領域30毎に)回路設定を行なうことができる。
calc_sizexは、当該演算に使用する部分領域30の横方向(x方向)の数(列数)を示し、calc_sizeyは、当該演算に使用する部分領域30の縦方向(y方向)の数(行数)を示す。
例えば、後述する図4の符号(2)に示す例において、演算種別Bの演算回路は、“config_data[1][3]”であり、これは、この演算回路がFPGA19において、横方向に1列、縦方向に3行の部分領域30を用いて形成されることを示す。
図4は第1実施形態の一例としての演算処理装置1におけるFPGA19に形成される演算回路を説明するための図である。
以下、演算種別Aの演算要求を処理するための演算回路を演算回路Aといい、演算種別Bの演算要求を処理するための演算回路を演算回路Bという。
また、図4中において、符号(3)は、演算回路Bを実現するための構成情報(部分構成情報)がRAM12に格納された状態を示すメモリマップである。
前述の如く、FPGA19に形成される演算回路には、第1共用領域31,第2共用領域32および演算回路領域33が含まれる。従って、RAM12には、これらの第1共用領域31,第2共用領域32および演算回路領域33の各領域を設定するための別々の構成情報(部分構成情報)がそれぞれ格納されている。
また、これらのポインタが、config_data[1][3]に格納されることで、演算種別Bの演算回路を構成する部分構成情報として、演算種別Bと関連づけられている例が示されている。
FPGA管理情報121は、FPGA19上の各部分領域30が、どのように用いられているかを示す情報であり、図5においては、FPGA管理情報121をarea_infoとして記述した例を示す。
area_type は、領域の種別を示す。このarea_typeの値は、初期化後に変化することはない。usedは、領域が演算回路として使われているかを示すフラグである。また、calc_type_idは、領域上にある演算種別を識別するID(identification)を示す。なお、図4に示す例において、演算種別Aの演算のIDは“0”であり、演算種別Bの演算のIDは“1”である。
area_info[FPGA_SIZE_X][FPGA_SIZE_Y]は、FPGA19の全ての部分回路について、どのように用いられているかを管理する。FPGA_SIZE_X、FPGA_SIZE_YはそれぞれFPGAの横方向と縦方向の大きさを部分領域の個数で表したものである。
演算情報123は、FPGA19上における演算回路(演算インスタンス)についての情報である。図6においては、1つの演算回路(演算インスタンス)に対応する演算情報のデータ構造をcalc_instance_info_tとして記述した例を示す。
calc_type_idは、演算種別の識別情報(ID)であり、演算種別ごとに一意の値が設定される。
posxは、演算インスタンスの基準位置(本第1実施形態においては左上領域)が配置される部分領域30のx座標を示す。posyは、演算インスタンスの基準位置(本第1実施形態においては左上領域)が配置される部分領域30のy座標を示す。
図7は第1実施形態の一例としての演算処理装置1におけるFPGA19の初期化手法を例示する図であり、C言語に準じたプログラムの形式で表したものである。
図7に示す例においては、各部分領域30に対して、ルータ32,横配線31a,縦配線31bおよび演算回路用領域33のいずれかが設定される(符号P1参照)。その後、ルータ32に対応する部分領域30にルータ32を構成するための構成情報noc_config_info[0]の書き込みが行なわれる。また、同様に、横配線31aに対応する部分領域30に横配線31aを構成するための構成情報noc_config_info[1]の書き込みが、また、縦配線31bに対応する部分領域30に縦配線31bを構成するための構成情報noc_config_info[2]の書き込みが、それぞれ行なわれる(符号P2参照)。
以上の処理により、FPGA19が初期化される。この図7に示したFPGA19の初期化は、例えば、後述する演算回路生成部112によって実施される。
この図8中において、符号(2)はFPGA19に設定された複数の演算インスタンスを例示する。また、符号(1)は、符号(2)に示した実行中の演算インスタンスに関する情報についてのexecuting_calc_instance_info_listの詳細を例示する。
なお、演算インスタンスA1,A2は演算種別Aについてのものであり、演算インスタンスB1および領域B0は、演算種別Bについてのものである。また、符号(1)に示すように、executing_calc_instance_info_listには、実行中の演算インスタンスのみが登録される。従って、executing_calc_instance_info_listには、演算実行後であって上書きされずに残っている演算処理にかかる領域B0は登録されていない。
すなわち、このexecuting_calc_instance_info_list(実行中処理情報123)を参照することで、FPGA19における、実行中の演算インスタンスの位置を把握することができる。
次に、図9を参照しながら、本第1実施形態の演算処理機能を有する演算処理装置1の機能構成について説明する。図9は第1実施形態の一例としての演算処理装置1の機能構成を示す図である。
演算処理装置1は、FPGA19の回路構成を書き換え、また、FPGA19に演算処理を割り当て、さらには演算を実行する、演算処理機能を果たす。
演算認識部110は、FPGA19に処理させるべき演算要求の発生を認識する。本演算処理装置1においては、FPGA19に実行させる2種類以上(例えば、演算種別A,B)の演算が予め決定されている。演算認識部110は、CPU11における何らかの処理の実行中に、FPGA19に処理させるべき演算要求が発生した場合に、これを認識する。
例えば、選択部111は、FPGA19において、演算要求に対応する演算回路であって演算回路領域33が使用可能な状態であるものが存在するかを確認する。FPGA19に、演算要求に対応する演算回路であって、演算回路領域33が使用可能であり、 且つ不使用状態(他の演算処理を実行中ではない状態)のものが存在する場合には、選択部111は、この演算回路領域33を含む演算回路用リソース群を、演算要求を割り当てる領域として選択する。
図10は第1実施形態の一例としての演算処理装置1における演算回路生成部112の機能を説明するための図である。この図10中において、符号(1)は、FPGA19に演算回路を形成する前の状態を示し、選択部111が、FPGA19に演算要求に対応する演算回路であって、演算回路領域33が使用可能であり、且つ不使用状態(演算を実行中ではない状態)ものが存在すると判断した状態を示す。
演算制御部113は、FPGA19に形成された演算回路に演算要求にかかる処理を実行させる。なお、FPGA19に演算処理を実行させる手法は既知であり、その詳細な説明は省略する。
FPGA状態管理部116は、FPGA19の状態を管理する。このFPGA状態管理部116は、FPGA19上の各部分領域30が、どのように用いられているかをFPGA管理情報121を用いて管理する。
接続回路生成部114は、演算処理の終了後に、演算回路として機能していた部分領域30のうち、第1共用領域31および第2共用領域32に対して、配線回路を構成する構成情報やルータ回路を構成する構成情報(通信網構成情報)を設定することにより、接続回路として機能させる制御を行なう。
接続回路生成部114は、図11の符号(2)に示すように、演算処理の実行が終了した演算回路において、第1共用領域31および第2共用領域32に対して、配線回路を構成する構成情報を設定することにより配線領域として機能させる。
演算実行部115は、演算要求にかかる演算回路をFPGA19に割り当てることができなかった場合、すなわち、選択部111が演算回路を設定する領域を選択できなかった場合に、特定回路が行なう処理と同一処理が既述された、CPU11が実行可能なプログラムを実行する。これにより、FPGA19に特定回路が構成されなくとも、特定回路が行なう処理をCPU11によって実行される。
先ず、上述の如く構成された第1実施形態の一例としての演算処理装置1におけるFPGA19への演算回路の形成方法を、図12を用いて説明する。
初期状態においては、FPGA19に演算回路が設定されていない(符号(1)参照)。演算認識部110が演算Aの実行要求が認識すると、選択部111が、この演算Aを処理(実行)させることが可能な演算回路AがFPGA19上に不使用の状態で存在するかを確認する。
演算回路生成部112は、選択部111によって選択された領域に演算要求に対応する演算回路Aを形成する(符号(2)参照)。演算回路Aは、FPGA19上において、隣り合う複数の部分領域30(第1共用領域31,第2共用領域32および演算回路用領域33)を用いて構成される。
演算回路Aによる処理が終了すると、接続回路生成部114は、演算回路として機能していた第1共用領域31および第2共用領域32に対して、配線回路を構成する構成情報やルータ回路を構成する構成情報(通信網構成情報)を設定することにより、接続回路(NoC)を復活させる(符号(3)参照)。
その後、演算認識部110が、再度、演算Aの実行要求を受信すると、演算回路生成部112は、演算回路において、接続回路となっている領域(配線回路部分)に演算回路を構成する構成情報を設定する。これにより、演算回路生成部112は演算回路Aを再現させる(符号(4)参照)。
この演算回路Aによる処理が終了すると、接続回路生成部114は、演算回路として機能していた第1共用領域31および第2共用領域32に対して、配線回路を構成する構成情報やルータ回路を構成する構成情報(通信網構成情報)を設定することにより、接続回路(NoC)を復活させる(符号(5)参照)。
その後、他の演算要求が行なわれ、演算回路Aの構成に用いられていた一部の演算回路用領域33は、他の演算回路によって書き換えられたものとする(符号(6)参照)。
(A−4−1)演算処理の概要
次に、上述の如く構成された第1実施形態の一例としての演算処理装置1における演算要求に対する処理の概要を、図13に示すフローチャート(ステップA1〜A10)に従って説明する。
確認の結果、該当する演算回路の演算回路用リソース群AがFPGA19上にある場合には(ステップA1のYesルート参照)、ステップA2に移行する。
ステップA4において、接続回路生成部114は、FPGA19上における演算回路の演算回路用リソース群Aのうち配線回路部分だけに接続回路構成情報を設定する。これにより、演算回路を構成していた部分領域30のうち第1共用領域31および第2共用領域32が、接続回路生成部114によって接続回路(配線領域)に戻される。その後、処理を終了する。
ステップA5において、選択部111は、FPGA19において、その全ての演算回路用領域33(演算回路用リソース群)を書き込み可能な、他の演算回路によって使用されていない演算回路用リソース群(B)があるかを確認する。
ステップA6において、演算回路生成部112が、FPGA19上における演算回路の演算回路用リソース群Bのうち演算回路用領域33に演算回路構成情報(第1の部分構成情報)を設定する。
ステップA8において、演算制御部113は、FPGA19に再現された演算回路に演算要求にかかる処理を実行させる。
そこで、ステップA10において、演算実行部115が、当該演算要求を処理する。その後、処理は終了する。
次に、上述の如く構成された第1実施形態の一例としての演算処理装置1における演算要求に対する処理の詳細を、図14〜図19に示すフローチャートに従って説明する。
なお、図14はその演算要求に対する処理の全体の流れを説明するためのフローチャート(ステップB1〜B17)であり、引数として、演算要求にかかる演算種別Xが引数として用いられる。
図17は演算構成情報書き込み処理の詳細を示すフローチャート(ステップD1〜D5)である。図18は通信網復元処理の詳細を示すフローチャート(ステップE1〜E5)である。図19は使用可能領域発見処理を示すフローチャート(ステップF1〜F13)である。
なお、bool Yは、真か偽かを表す値であり、FPGA19上に演算回路を割り当て可能な不使用領域が発見された場合にtrueが設定され、発見出来なかった場合にfalseが設定される。また、座標x,yは、FPGA19上に演算回路を割り当て可能な不使用領域が発見された場合に、その位置を表す。
ステップB2における確認の結果、演算回路を割り当て可能な領域が発見された場合、すなわち、Y=trueである場合に(ステップB2のYesルート参照)、図14のステップB3に移行する。
図14のステップB6において、2つ前のステップ、すなわち、ステップB4において書き込みを行なった情報で演算を実行する。
演算の終了後、ステップB7において、ステップB5でexecuting_calc_instance_info_listに追加した、calc_type_id=X,posx=x,posy=yの要素を削除する。
一方、ステップB2における確認の結果、演算回路を割り当て可能な領域が発見されなかった場合、すなわち、Y=falseである場合に(ステップB2のNoルート参照)、図14のステップB9に移行する。
なお、この使用可能領域発見処理を実行するに際して、引数として演算種別Xが用いられる。また、使用可能領域発見処理を実行することにより、戻り値としてbool Yおよび座標x,yが得られる。
ステップB10における確認の結果、演算回路を割り当て可能な領域が発見された場合、すなわち、Y=trueである場合に(ステップB10のYesルート参照)、図14のステップB11に移行する。
図14のステップB14において、2つ前のステップ、すなわち、ステップB12において書き込みを行なった情報で演算を実行する。
演算の終了後、図14のステップB15において、ステップB13でexecuting_calc_instance_info_listに追加した、calc_type_id=X,posx=x,posy=yの要素を削除する。
また、ステップB10における確認の結果、演算回路を割り当て可能な領域が発見されなかった場合、すなわち、Y=falseである場合に(ステップB10のNoルート参照)、当該演算要求をCPU11において実行し(図14のステップB17)、処理を終了する。
次に、第1実施形態の一例としての演算処理装置1における演算後不使用領域発見処理を、図15および図16に示すフローチャート(ステップC1〜C17)に従って説明する。
図15のステップC1において、mx = FPGA_SIZE_X - calc_type_info[X].sizexおよびmy = FPGA_SIZE_Y - calc_type_info[x].sizeyを設定する。これにより、演算種別Xを実行するための演算回路として検証する演算回路用リソース群の左上位置として使われる領域を設定する。
図15のステップC3では、area_info[ax][ay].used ==1且つ、area_info[ax][ay].calc_type_id==X且つ、area_info[ax][ay].calc_posx==0且つ、area_info[ax][ay].calc_posy==0であるかを確認する。
上記要件を満たさない場合には(ステップC3のNoルート参照)、ステップC16に移行する。
ステップC5では、演算種別X内の全部分領域30に対して、ステップC6,C7の制御を繰り返し実施するループ処理を開始する。
図15のステップC6において、選択部111は、対象演算種別(本例においては演算種別X)の演算回路に相当する領域(以下、対象領域という)内において、演算回路領域33が全て揃っているかをチェックする。
ここで条件(1)は、対象領域内に含まれるに全ての部分領域30が演算回路用領域33であるかを確認する。
ステップC6における確認の結果、条件(1),(2)のいずれも満たされない場合には(ステップC6のNoルート参照)、図15のステップC7において、変数NGにtrueを設定する。その後、図15のステップC8において、ステップC5に対応するループ端処理が実施される。ここで、演算種別X内の全部分領域30に対して、演算種別Xの演算回路の演算回路領域33が全て揃っているかの確認処理が完了すると、制御がステップC9に進む。
図16のステップC9において、NGにtrueが設定されているかが確認される。NGにfalseが設定されている場合には(ステップC9のNoルート参照)、図16のステップC10に移行する。また、NGにtrueが設定されている場合には(ステップC9のYesルート参照)、図16のステップC14に移行する。
ステップC11では、i.calc_type_info==X 且つ、i.x_pos=ax且つ、i.y_pos=ayであるかを確認する。これにより、対象領域がexecute_calc_instance_info_listに登録されていないことを確認する。
ステップC13では、ステップC10に対応するループ端処理が実施される。ここで、execute_calc_instance_info_list中に登録されている全ての実行中の演算処理についての処理が完了すると、制御がステップC14に進む。
図16のステップC14において、NGにtrueが設定されているかを確認する。NGにtrueが設定されていない場合、すなわち、NGにfalseが設定されている場合には(ステップC14のNoルート参照)、図16のステップC15に移行する。ステップC15においては、Y(bool Y)にtrueを設定するとともに、x=ax,y=ayを設定する。その後、処理を終了し、図14のフローチャートのステップB2に移行する。
ステップC14における確認の結果、NGにtrueが設定されている場合には(ステップC14のYesルート参照)、図16のステップC16に移行する。ステップC16では、ステップC2に対応するループ端処理が実施される。ここで、FPGA19における全ての演算回路領域33についての処理が完了すると、制御が図16のステップC17に進む。
(A−4−4)演算構成情報書き込み処理
次に、第1実施形態の一例としての演算処理装置1における演算構成情報書き込み処理を、図17に示すフローチャート(ステップD1〜D5)に従って説明する。
なお、cx,cyは演算種別X内の領域の座標で、それぞれ0〜calc_type_info[X].sizex-1、0〜calc_type_info[x].sizey-1の範囲で変化する。
図17のステップD2では、area_infoを更新する。すなわち、area_info[x+cx][y+cy].usedにtrueを、area_info[x+cx][y+cy].calc_type_id にXを、area_info[x+cx][y+cy].calc_posx にcxを、area_info[x+cx][y+cy].calc_posx にcyを、それぞれ設定する。
条件(1),(2)の少なくともいずれか一方が満たされる場合には(ステップD3のYesルート参照)、図17のステップD4に移行する。
ステップD4においては、area_info[x+cx][y+cy]に対応する位置に、calc_type_info.config_data[cx][cy]が書き込まれる。
図17のステップD5では、ステップD1に対応するループ端処理が実施される。演算回路内に含まれる全ての部分領域30に対しての処理が完了すると、本フローが終了し、図14に示すフローチャートのステップB5またはステップB13に移行する。
次に、第1実施形態の一例としての演算処理装置1における通信網復元処理を、図18に示すフローチャート(ステップE1〜E5)に従って説明する。以下の処理は、主に接続回路生成部114によって行なわれる。
図18のステップE1では、演算種別Xの演算回路内に含まれる全ての部分領域30に対して、ステップE4までの制御を繰り返し実施するループ処理を開始する。
図18のステップE2では、area_info[x+cx][y+cy].area_typeがarea_type_calcであるかを確認する。確認の結果、area_info[x+cx][y+cy].area_typeがarea_type_calcでない場合には(ステップE2のNoルート参照)、図18のステップE3に移行する。
その後、図18のステップE4において、area_info[x+cx][y+cy]に対応する位置に、noc_config_data[area_info[x+cx][y+cy].area_type]を書き込む。これにより、演算回路における、第1共用領域31および第2共用領域32に第1配線31やルータ32が形成され、接続回路が復元される。
図18のステップE5では、ステップE1に対応するループ端処理が実施される。演算回路内に含まれる全ての部分領域30に対しての処理が完了すると、本フローが終了し、図14に示すフローチャートにおける処理が終了する。
次に、第1実施形態の一例としての演算処理装置1における使用可能領域発見処理を、図19に示すフローチャート(ステップF1〜F13)に従って説明する。
図19のステップF1において、mx = FPGA_SIZE_X - calc_type_info[X].sizexおよびmy = FPGA_SIZE_Y - calc_type_info[x].sizeyを設定する。これにより、演算種別Xを実行するための演算回路として検証する演算回路用リソース群の左上位置として使われる領域を設定する。
図19のステップF3において、bool NG=falseを設定する。
図19のステップF4では、execute_calc_instance_info_listの全要素に対して、ステップF5〜F8までの制御を繰り返し実施するループ処理を開始する。すなわち、確保したい領域(部分領域30)が既に実行中の演算インスタンスと重なっていないかを確認する。なお、iは、リストの要素であって、calc_instance_info_t型である。
図19のステップF6において、
ax_start = ax
ax_end = ax + calc_type_info[X].sizex - 1
ay_start = ay
ay_end = ay + calc_type_info[X].sizey - 1
ex_start = i.x_pos,
ex_end = ex_start + calc_type_info[t].sizex - 1
ey_start = i.y_pos,
ey_end = ey_start + calc_type_info[t].sizey - 1
をそれぞれ設定する。
また、ex_start は、演算を実行中の演算回路用リソース群の左端位置、ex_endは演算を実行中の演算回路用リソース群の右端位置、ey_startは演算を実行中の演算回路用リソース群の上端位置、ey_endは演算を実行中の演算回路用リソース群の下端位置である。
そして、ステップF7において、条件(1)ax_end<ex_start、または、条件(2)ex_end<ay_start、または、条件(3)ay_end<ey_start、または、条件(4)ey_end<ay_startのうち、少なくともいずれかが1つが満たされたかを確認する。これにより、execute_calc_instance_info_list中に登録された実行中の演算によって使用されている部分領域30との重なりが生じていないことを確認する。
また、ステップF7における確認の結果、少なくとも条件(1)〜(4)のいずれかが満たされている場合には(ステップF7のYesルート参照)、ステップF8をスキップして図19のステップF9に移行する。x方向またはy方向のいずれかにおいて重なりがなければ、領域の重合は生じていないからである。
図19のステップF10において、NGにtrueが設定されているかを確認する。NGにtrueが設定されていない場合、すなわち、NGにfalseが設定されている場合には(ステップF10のNoルート参照)、図19のステップF11に移行する。ステップF11においては、Y(bool Y)にtrueを設定するとともに、x=ax,y=ayを設定する。その後、処理を終了し、図14のフローチャートのステップB10に移行する。
ステップF10における確認の結果、NGにtrueが設定されている場合(ステップF10のYesルート参照)、図19のステップF12に移行する。ステップF12では、ステップF2に対応するループ端処理が実施される。ここで、area_info内の、“area_type==area_type_calc且つ、0≦ax<mx && 0≦ay<my”の全ての要素についての処理が完了すると、制御が図19のステップF13に進む。
(A−5)効果
このように、第1実施形態の一例としての演算処理装置1においては、演算回路を用いた演算処理の終了後に、接続回路生成部114が、演算回路として機能していた部分領域30のうち、第1共用領域31および第2共用領域32を接続回路として機能させる制御を行なう。すなわち、演算回路による演算処理の終了後に演算回路における接続回路部分を復活させる。
また、演算要求にかかる演算回路と同一の演算回路の演算回路用領域33がFPGA19上に残っている場合に、演算回路生成部112が、その演算回路における配線回路部分だけに演算回路を構成する構成情報を設定する。
(B)第2実施形態
上述した第1実施形態の演算処理装置1においては、接続回路生成部114が、演算回路を用いた演算処理の終了後に、演算回路における接続回路部分を復活させている。
このように、第2実施形態の演算処理装置1は、主に第1実施形態の接続回路生成部114と接続回路部分を復活させるタイミングにおいて異なり、その他の部分は第1実施形態の演算処理装置1と同様に構成されている。
上述の如く構成された第2実施形態の一例としての演算処理装置1におけるFPGA19への演算回路の形成方法を、図20を用いて説明する。
初期状態においては、FPGA19に演算回路が設定されていない(符号(1)参照)。なお、FPGA19には外部I/F191が備えられており、FPGA19に形成された演算回路は、この外部I/F191を介して、FPGA19の外部(例えば、CPU11)と通信を行なう。
本例においては、FPGA19上に演算回路Aが存在しないので、選択部111は、FPGA19における空き領域を、演算回路を形成可能な領域として選択する。
演算回路Aは、FPGA19上において、隣り合う複数の部分領域30(第1共用領域31,第2共用領域32および演算回路用領域33)を用いて構成される。
ここで、FPGA19上に演算回路Aによる処理が終了した時点において、演算回路Aに隣接する位置に演算回路Cが形成された場合について考える。
従って、演算回路Cが、演算回路において復活された接続回路を用いて外部I/F191に対して最短経路でアクセスすることができ、FPGA19上に形成された演算回路からのIO性能を向上させることができる。
本第2実施形態においては、この演算回路Aによる処理が終了した時点では、接続回路生成部114は、演算回路Aにおける接続回路(NoC)の復活は行なわない(符号(5)参照)。
この状態において、演算認識部110が、再度、演算Aの実行要求を受信すると、演算回路生成部112は、演算回路Aを構成する全領域30に対して、演算回路Aを構成する構成情報を設定する。これにより、演算回路生成部112は演算回路Aを再現させる(符号(7)参照)。
次に、上述の如く構成された第2実施形態の一例としての演算処理装置1における接続回路生成部114による通信網復元処理の概要を、図21に示すフローチャート(ステップG1〜G5)に従って説明する。
以下に示す例においては、図21中の符号(1)に示すように、FPGA19上に演算B,Cを実行する演算回路B,Cがそれぞれ配置され実行中の状態で、演算Dの実行要求
が生じた場合について示す。
ステップG1において、接続回路生成部114は、ルーティングアルゴリズムに基づいて、FPGA19上において、演算回路Dが使用するルータ32と外部I/F191とを連絡する全ての経路を列挙する。そして、接続回路生成部114は、これらの全ての経路を構成する配線31およびルータ32についての部分領域30(管理単位,要素)を全て列挙し、集合Lとする。
また、ルーティングアルゴリズムとしては、例えば、XYルーティング(次元順ルーティング)を用いることができる。なお、ルーティングアルゴリズムはこれに限定されるものではなく、固定型ルーティングやランダム型ルーティング、適応型ルーティング、ディペンダブル・ルーティング等の他の手法を用いてもよく、種々変形して実施することができる。
ステップG3においては、その部分領域30に通信網がマッピング済みであるかを確認する。
確認の結果、その部分領域30に通信網がマッピング済みでない場合には(ステップG3のNoルート参照)、ステップG4に移行する。
その後、制御がステップG5に進む。ステップG5では、ステップG2に対応するループ端処理が実施される。ここで、集合L中に存在する全ての部分領域30についての処理が完了すると、本フローが終了する。
(B−2−2)演算要求に対する処理の詳細
次に、上述の如く構成された第2実施形態の一例としての演算処理装置1における演算要求に対する処理の詳細を、図15〜図17および図19を参照しながら、図22および図23に示すフローチャートに従って説明する。
また、図23は第2実施形態の一例としての演算処理装置1における通信網復元処理の詳細を示すフローチャート(ステップJ1〜J5)である。
図22のステップB4において、演算構成情報の書き込み処理が行なわれた後に、ステップH1において、通信網復元処理が行なわれる。なお、この通信網復元処理の詳細は、図23を用いて後述する。また、この通信網復元処理を実行するに際して、引数として演算種別Xおよび座標x,yが用いられる。その後、図22のステップB5に移行する。
図22のステップH2において、3つ前のステップ、すなわち、ステップB4において書き込みを行なった情報で演算を実行する。
図22のステップB7において、2つ前のステップ、すなわち、ステップB5においてexecuting_calc_instance_info_listに追加した、calc_type_id=X,posx=x,posy=yの要素を削除する。その後、処理を終了する。
図22のステップH4において、3つ前のステップ、すなわち、ステップB12において書き込みを行なった情報で演算を実行する。
図22のステップB15において、2つ前のステップ、すなわち、ステップB13においてexecuting_calc_instance_info_listに追加した、calc_type_id=X,posx=x,posy=yの要素を削除する。その後、処理を終了する。
次に、第2実施形態の一例としての演算処理装置1における通信網復元処理を、図23に示すフローチャート(ステップJ1〜J6)に従って説明する。以下の処理は、主に接続回路生成部114によって行なわれる。
図23のステップJ1において、ルーティングアルゴリズムに基づいて、x-1, y-1の領域のルータ32から接続が必要な外部I/F191への経路を構成する配線回路に含まれる各部分領域30のx,y座標組を列挙して、集合Lとする。
図23のステップJ3において、area_info[ax][ay].used==trueであるかを確認する。確認の結果、area_info[ax][ay].used==trueでない場合には(ステップJ3のNoルート参照)、図23のステップJ6に移行する。
その後、図23のステップJ5において、area_info[ax][ay]に対応する位置に、noc_config_data[area_info[ax][ay].area_type]が書き込まれる。
(B−3)効果
このように、第2実施形態の一例としての演算処理装置1においては、演算回路を用いた演算処理の終了後において、他の演算回路を形成する際に、接続回路生成部114が当該演算回路と外部I/F191とを接続する経路上にある配線回路部分を復活させる。
また、この際、接続回路生成部114は、新たに形成される演算回路と外部I/F191とを接続する経路上にある配線回路部分だけを復活させることにより、負荷を軽減し、処理の高速化を図ることができる。
(C)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
図24は、第1実施形態の変形例としての演算処理装置1における演算要求に対する処理の概要を説明するフローチャート(ステップA1〜A9)である。
本変形例においては、ステップA5における確認の結果、該当する演算回路の演算回路用リソース群BがFPGA19上にない場合には(ステップA5のNoルート参照)、ステップA1に戻る。これにより、FPGA19に演算回路を割り当て可能な演算回路用リソース群が生じるまで、処理を繰り返し実行することで待ち合わせるのである。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(D)付記
(付記1)
内部の回路構成を任意に変更可能なプログラマブル集積回路を制御する演算処理装置であって、
前記プログラマブル集積回路が、同一形状を有する複数の第1の領域と、前記第1の領域の間に形成された複数の第2の領域とを備え、
前記プログラマブル集積回路によって実行される演算要求を認識する認識部と、
前記複数の第1の領域および前記複数の第2の領域の中から、前記演算要求にかかる処理を実行させる演算回路の構成に用いる第1の領域および第2の領域を選択する選択部と、
選択された前記第1の領域および第2の領域を演算処理部として機能させることで演算回路を生成する演算回路生成部と、
前記演算回路生成部によって生成された前記演算回路に対して、前記演算要求にかかる処理を実行させる演算制御部と、
前記演算制御部による前記処理の終了後に、前記演算回路に含まれる前記第2の領域を通信路として機能させる接続回路生成部と
を備えることを特徴とする、演算処理装置。
前記認識部が、同一の演算要求を再度受信すると、
前記演算回路生成部が、
前記通信処理部として機能する前記第2の領域を、前記演算処理部として機能させることで、前記演算回路を復活させる
ことを特徴とする、付記1記載の演算処理装置。
前記プログラマブル集積回路における前記複数の第1の領域および前記複数の第2の領域の使用状態を第1管理情報を用いて管理する第1管理部と、
前記プログラマブル集積回路において実行中の処理を第2管理情報を用いて管理する、第2管理部とを備え、
前記第1管理情報および前記第2管理情報を参照して、前記プログラマブル集積回路において、前記演算要求に対応する演算回路であって、当該演算回路において前記第1の領域が不使用状態ものが存在する場合に、前記接続回路生成部が、前記演算回路に含まれる前記第2の領域を通信路として機能させる
ことを特徴とする、付記1又は2記載の演算処理装置。
前記接続回路生成部が、
前記演算制御部による前記処理の終了後であって、前記演算回路生成部が前記演算要求とは異なる他の演算要求にかかる演算回路を生成する際に、前記演算回路に含まれる前記第2の領域を通信路として機能させる
ことを特徴とする、付記1又は2記載の演算処理装置。
演算を処理するプロセッサと、
内部の回路構成を任意に変更可能に構成され、同一形状を有する複数の第1の領域と、前記第1の領域の間に形成された複数の第2の領域とを備え、演算回路が形成されて演算を処理するプログラマブル集積回路と、
前記プログラマブル集積回路によって実行される演算要求を認識する認識部と、
前記複数の第1の領域および前記複数の第2の領域の中から、前記演算要求にかかる処理を実行させる演算回路の構成に用いる第1の領域および第2の領域を選択する選択部と、
選択された前記第1の領域および第2の領域を演算処理部として機能させることで演算回路を生成する演算回路生成部と、
前記演算回路生成部によって生成された前記演算回路に対して、前記演算要求にかかる処理を実行させる演算制御部と、
前記演算制御部による前記処理の終了後に、前記演算回路に含まれる前記第2の領域を通信路として機能させる接続回路生成部と
を備えることを特徴とする、演算処理システム。
前記認識部が、同一の演算要求を再度受信すると、
前記演算回路生成部が、
前記通信処理部として機能する前記第2の領域を、前記演算処理部として機能させることで、前記演算回路を復活させる
ことを特徴とする、付記5記載の演算処理システム。
前記プログラマブル集積回路における前記複数の第1の領域および前記複数の第2の領域の使用状態を第1管理情報を用いて管理する第1管理部と、
前記プログラマブル集積回路において実行中の処理を第2管理情報を用いて管理する、第2管理部とを備え、
前記第1管理情報および前記第2管理情報を参照して、前記プログラマブル集積回路において、前記演算要求に対応する演算回路であって、当該演算回路において前記第1の領域が不使用状態ものが存在するか場合に、前記接続回路生成部が、前記演算回路に含まれる前記第2の領域を通信路として機能させる
ことを特徴とする、付記5又は6記載の演算処理システム。
前記接続回路生成部が、
前記演算制御部による前記処理の終了後であって、前記演算回路生成部が前記演算要求とは異なる他の演算要求にかかる演算回路を生成する際に、前記演算回路に含まれる前記第2の領域を通信路として機能させる
ことを特徴とする、付記5又は6記載の演算処理システム。
内部の回路構成を任意に変更可能なプログラマブル集積回路を制御して演算を処理する演算処理方法であって、
前記プログラマブル集積回路が、同一形状を有する複数の第1の領域と、前記第1の領域の間に形成された複数の第2の領域とを備え、
前記プログラマブル集積回路によって実行される演算要求を認識する処理と、
前記複数の第1の領域および前記複数の第2の領域の中から、前記演算要求にかかる処理を実行させる演算回路の構成に用いる第1の領域および第2の領域を選択する処理と、
選択された前記第1の領域および第2の領域を演算処理部として機能させることで演算回路を生成する処理と、
生成された前記演算回路に対して、前記演算要求にかかる処理を実行させる処理と、
前記演算要求にかかる処理の終了後に、前記演算回路に含まれる前記第2の領域を通信路として機能させる処理と
を備えることを特徴とする、演算処理方法。
前記認識部が、同一の演算要求を再度受信すると、
前記通信処理部として機能する前記第2の領域を、前記演算処理部として機能させることで、前記演算回路を復活させる
ことを特徴とする、付記9記載の演算処理方法。
前記プログラマブル集積回路における前記複数の第1の領域および前記複数の第2の領域の使用状態を第1管理情報を用いて管理する処理と、
前記プログラマブル集積回路において実行中の処理を第2管理情報を用いて管理する処理と、
前記第1管理情報および前記第2管理情報を参照して、前記プログラマブル集積回路において、前記演算要求に対応する演算回路であって、当該演算回路において前記第1の領域が不使用状態ものが存在するか場合に、前記接続回路生成部が、前記演算回路に含まれる前記第2の領域を通信路として機能させる処理と
を備えることを特徴とする、付記9又は10記載の演算処理方法。
前記処理の終了後であって、前記演算要求とは異なる他の演算要求にかかる演算回路を生成する際に、前記演算回路に含まれる前記第2の領域を通信路として機能させる
ことを特徴とする、付記9又は10記載の演算処理方法。
11 CPU
12 RAM
13 HDD
14 グラフィック処理装置
14a モニタ
15 入力インタフェース
15a キーボード
15b マウス
16 光学ドライブ装置
16a 光ディスク
17 機器接続インタフェース
17a メモリ装置
17b メモリリーダライタ
17c メモリカード
18 ネットワークインタフェース
19 FPGA
30 部分領域
31 第1共用領域
31a 横配線
31b 縦配線
32 第2共用領域
33 演算回路領域
20 バス
110 演算認識部
111 選択部
112 演算回路生成部
113 演算制御部
114 接続回路生成部
115 演算実行部
116 FPGA状態管理部
117 演算情報管理部
121 FPGA管理情報
122 演算情報
123 実行中処理情報
191 外部I/F
Claims (6)
- 内部の回路構成を任意に変更可能なプログラマブル集積回路を制御する演算処理装置であって、
前記プログラマブル集積回路が、同一形状を有する複数の第1の領域と、前記第1の領域の間に形成された複数の第2の領域とを備え、
前記プログラマブル集積回路によって実行される演算要求を認識する認識部と、
前記複数の第1の領域および前記複数の第2の領域の中から、前記演算要求にかかる処理を実行させる演算回路の構成に用いる第1の領域および第2の領域を選択する選択部と、
選択された前記第1の領域および第2の領域を演算処理部として機能させることで演算回路を生成する演算回路生成部と、
前記演算回路生成部によって生成された前記演算回路に対して、前記演算要求にかかる処理を実行させる演算制御部と、
前記演算回路による前記処理の終了後に、前記演算回路に含まれる前記第2の領域を通信路として機能させる接続回路生成部と
を備えることを特徴とする、演算処理装置。 - 前記認識部が、同一の演算要求を再度受信すると、
前記演算回路生成部が、
通信処理部として機能する前記第2の領域を、前記演算処理部として機能させることで、前記演算回路を復活させる
ことを特徴とする、請求項1記載の演算処理装置。 - 前記プログラマブル集積回路における前記複数の第1の領域および前記複数の第2の領域の使用状態を第1管理情報を用いて管理する第1管理部と、
前記プログラマブル集積回路において実行中の処理を第2管理情報を用いて管理する、第2管理部とを備え、
前記第1管理情報および前記第2管理情報を参照して、前記プログラマブル集積回路において、前記演算要求に対応する演算回路であって、当該演算回路において前記第1の領域が不使用状態ものが存在する場合に、前記接続回路生成部が、前記演算回路に含まれる前記第2の領域を通信路として機能させる
ことを特徴とする、請求項1又は2記載の演算処理装置。 - 前記接続回路生成部が、
前記演算制御部による前記処理の終了後であって、前記演算回路生成部が前記演算要求とは異なる他の演算要求にかかる演算回路を生成する際に、前記演算回路に含まれる前記第2の領域を通信路として機能させる
ことを特徴とする、請求項1又は2記載の演算処理装置。 - 演算を処理するプロセッサと、
内部の回路構成を任意に変更可能に構成され、同一形状を有する複数の第1の領域と、前記第1の領域の間に形成された複数の第2の領域とを備え、演算回路が形成されて演算を処理するプログラマブル集積回路と、
前記プログラマブル集積回路によって実行される演算要求を認識する認識部と、
前記複数の第1の領域および前記複数の第2の領域の中から、前記演算要求にかかる処理を実行させる演算回路の構成に用いる第1の領域および第2の領域を選択する選択部と、
選択された前記第1の領域および第2の領域を演算処理部として機能させることで演算回路を生成する演算回路生成部と、
前記演算回路生成部によって生成された前記演算回路に対して、前記演算要求にかかる処理を実行させる演算制御部と、
前記演算回路による前記処理の終了後に、前記演算回路に含まれる前記第2の領域を通信路として機能させる接続回路生成部と
を備えることを特徴とする、演算処理システム。 - 内部の回路構成を任意に変更可能なプログラマブル集積回路を制御して演算を処理する演算処理方法であって、
前記プログラマブル集積回路が、同一形状を有する複数の第1の領域と、前記第1の領域の間に形成された複数の第2の領域とを備え、
前記プログラマブル集積回路によって実行される演算要求を認識する処理と、
前記複数の第1の領域および前記複数の第2の領域の中から、前記演算要求にかかる処理を実行させる演算回路の構成に用いる第1の領域および第2の領域を選択する処理と、
選択された前記第1の領域および第2の領域を演算処理部として機能させることで演算回路を生成する処理と、
生成された前記演算回路に対して、前記演算要求にかかる処理を実行させる処理と、
前記演算要求にかかる処理の終了後に、前記演算回路に含まれる前記第2の領域を通信路として機能させる処理と
を備えることを特徴とする、演算処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015241788A JP6638362B2 (ja) | 2015-12-11 | 2015-12-11 | 演算処理装置、演算処理システムおよび演算処理方法 |
US15/289,410 US10319436B2 (en) | 2015-12-11 | 2016-10-10 | System including programmable integrated circuit including first areas having same shape and second areas formed between first areas, and operation processing device and method for controlling the programmable integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015241788A JP6638362B2 (ja) | 2015-12-11 | 2015-12-11 | 演算処理装置、演算処理システムおよび演算処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017107465A JP2017107465A (ja) | 2017-06-15 |
JP6638362B2 true JP6638362B2 (ja) | 2020-01-29 |
Family
ID=59020088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015241788A Expired - Fee Related JP6638362B2 (ja) | 2015-12-11 | 2015-12-11 | 演算処理装置、演算処理システムおよび演算処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10319436B2 (ja) |
JP (1) | JP6638362B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10958273B2 (en) * | 2016-04-28 | 2021-03-23 | Nec Solution Innovators, Ltd. | Circuit device, circuit rewriting method, and computer-readable recording medium |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5631578A (en) | 1995-06-02 | 1997-05-20 | International Business Machines Corporation | Programmable array interconnect network |
JP2006236106A (ja) | 2005-02-25 | 2006-09-07 | Canon Inc | データ処理装置及びデータ処理方法 |
-
2015
- 2015-12-11 JP JP2015241788A patent/JP6638362B2/ja not_active Expired - Fee Related
-
2016
- 2016-10-10 US US15/289,410 patent/US10319436B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170169882A1 (en) | 2017-06-15 |
US10319436B2 (en) | 2019-06-11 |
JP2017107465A (ja) | 2017-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10311190B2 (en) | Virtual hierarchical layer patterning | |
JP2004502259A (ja) | 階層型金属末端、包囲、および曝露をチェックする方法およびシステム | |
JP3042761B2 (ja) | 論理エミュレーションシステムにおけるプログラマブルデバイスのプログラムデータ生成方法およびプログラマブルデバイスのプログラムデータ生成装置 | |
US20120151429A1 (en) | Multistage, hybrid synthesis processing facilitating integrated circuit layout | |
WO2013018204A1 (ja) | 画像処理ソフトウェア開発方法、画像処理ソフトウェア開発装置、および、画像処理ソフトウェア開発プログラム | |
US8711160B1 (en) | System and method for efficient resource management of a signal flow programmed digital signal processor code | |
US9830731B2 (en) | Methods of a graphics-processing unit for tile-based rendering of a display area and graphics-processing apparatus | |
CN111488153A (zh) | 由电子装置的处理器实施的方法和操作电子装置的处理器 | |
US10255399B2 (en) | Method, apparatus and system for automatically performing end-to-end channel mapping for an interconnect | |
JP6638362B2 (ja) | 演算処理装置、演算処理システムおよび演算処理方法 | |
US8572504B1 (en) | Determining comprehensibility of a graphical model in a graphical modeling environment | |
EP1583008A2 (en) | Distributed CAD apparatus | |
US20240112397A1 (en) | Spatial test of bounding volumes for rasterization | |
US9875329B1 (en) | Method and system for import of mask layout data to a target system | |
CN113495876A (zh) | 一种基于Spark的影像金字塔分布式切片系统及方法 | |
JP6265462B2 (ja) | プログラム、及び情報処理装置 | |
US8484589B2 (en) | Logical repartitioning in design compiler | |
US8813020B2 (en) | Automatically modifying a circuit layout to perform electromagnetic simulation | |
US11928500B1 (en) | Multi-threaded network routing based on partitioning | |
US20230334758A1 (en) | Methods and hardware logic for writing ray tracing data from a shader processing unit of a graphics processing unit | |
WO2021250898A1 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP3989397B2 (ja) | 集積回路装置およびその装置に対するデータ設定装置 | |
JP5791797B2 (ja) | Lsi設計装置及びlsi設計方法及びプログラム | |
CN118133757A (zh) | 芯片设计的方法和装置 | |
JP2000068190A (ja) | 露光データ作成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180810 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190410 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190521 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20190607 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190620 |
|
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: 20191126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191209 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6638362 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |