JP2017079037A - 演算装置及びその方法 - Google Patents

演算装置及びその方法 Download PDF

Info

Publication number
JP2017079037A
JP2017079037A JP2015207977A JP2015207977A JP2017079037A JP 2017079037 A JP2017079037 A JP 2017079037A JP 2015207977 A JP2015207977 A JP 2015207977A JP 2015207977 A JP2015207977 A JP 2015207977A JP 2017079037 A JP2017079037 A JP 2017079037A
Authority
JP
Japan
Prior art keywords
circuit
circuit arrangement
arrangement area
sub
arithmetic
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.)
Pending
Application number
JP2015207977A
Other languages
English (en)
Inventor
都市 雅彦
Masahiko Toshi
雅彦 都市
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015207977A priority Critical patent/JP2017079037A/ja
Priority to US15/254,413 priority patent/US9748954B2/en
Publication of JP2017079037A publication Critical patent/JP2017079037A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0008Arrangements for reducing power consumption
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/1778Structural details for adapting physical parameters
    • H03K19/17784Structural details for adapting physical parameters for supply voltage

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Sources (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

【課題】PLDの空き領域における静的消費電力を抑制可能な演算装置を提供する。
【解決手段】演算装置1は、独立に制御可能な電源電圧が供給される複数の回路配置領域を有するPLD12と、演算回路13とを有する。演算回路13は、主回路配置部130と、副回路配置部131と、処理実行部138とを有する。主回路配置部130は、所定の処理を実行する主回路41を、複数の回路配置領域21〜23の何れかに配置する。副回路配置部131は、主回路41が配置されない回路配置領域23に、所定の処理を実行する副回路51が配置可能な領域があるか否かを判定し、副回路51が配置可能な領域があると判定された回路配置領域23に、副回路51を配置する。処理実行部138は、主回路41又は副回路51の何れか1つにより所定の処理を実行する。
【選択図】図8

Description

本発明は、演算装置及びその方法に関する。
FPGA等のプログラマブルロジックデバイス(Programmable Logic Device、PLD)を有するアクセラレータとCPUとを連携することにより処理速度を向上させる技術が知られる(例えば、特許文献1及び非特許文献1を参照)。
また、プログラマブルロジックデバイスに供給される電源電圧をプログラムによって変更する技術が知られる(例えば、特許文献2及び3を参照)。一例では、演算装置は、複数の電源制御領域のいずれかに属する複数の演算要素と、複数の演算要素と複数の電源制御領域との対応を示す対応情報を保持する保持手段とを有する。演算装置は、複数の演算要素にタスクを割り当ててスケジュールを生成するスケジューラと、生成されたスケジュールに基づいて電源制御領域に電源電圧を供給する供給手段とを更に有する。他の例では、半導体装置は、複数の電源電圧を生成する電源電圧生成手段と、電源電圧生成手段が生成した複数の電源電圧の何れかを、プログラマブルロジックデバイスに選択的に接続するスイッチ手段とを含む。
特開2013−98823号公報 特開2010−103362号公報 特開2014−52918号公報
「Large-Scale Reconfigurable Computing in a Microsoft Datacenter」http://www.ee.washington.edu/faculty/hauck/publications/CatapultHotChips.pdf
しかしながら、プログラマブルロジックデバイスは、配置される回路の回路規模がプログラマブルロジックデバイスに配置可能な回路規模と相違するので、配置領域の一部に回路が配置されない空き領域が存在する。プログラマブルロジックデバイスの空き領域は、回路が配置されないため、動的消費電力が発生しないが、リーク電流等に起因する静的消費電力が発生するおそれがある。
一実施形態では、プログラマブルロジックデバイスの空き領域における静的消費電力を抑制可能な演算装置を提供することを目的とする。
1つの態様では、演算装置は、独立に制御可能な電源電圧が供給される複数の回路配置領域を有するプログラマブルロジックデバイスと、プログラマブルロジックデバイスに接続された演算回路とを有する。演算回路は、主回路配置部と、副回路配置部と、処理実行部とを有する。主回路配置部は、所定の処理を実行する主回路を、複数の回路配置領域の何れかに配置する。副回路配置部は、主回路が配置されない回路配置領域に、所定の処理を実行する副回路が配置可能な領域があるか否かを判定し、副回路が配置可能な領域があると判定された回路配置領域に、副回路を配置する。処理実行部は、主回路又は副回路の何れか1つにより所定の処理を実行する。
一実施形態では、プログラマブルロジックデバイスの空き領域における静的消費電力を抑制可能な演算装置を提供することが可能になる。
実施形態に係る演算装置のブロック図である。 図1に示す演算装置の演算処理の一例のタイミングチャートである。 図1に示す演算装置の演算処理の一例のフローチャートである。 図3に示すS101の処理のより詳細なフローチャートである。 図3に示すS103の処理のより詳細なフローチャートである。 図3に示すS107の処理のより詳細なフローチャートである。 図3に示すS110の処理のより詳細なフローチャートである。 (a)は図1に示す動的再構成アクセラレータ及び演算回路の第1状態を示す図であり、(b)は図1に示す動的再構成アクセラレータ及び演算回路の第2状態を示す図であり、(c)は図1に示す動的再構成アクセラレータ及び演算回路の第3状態を示す図であり、(d)は図1に示す動的再構成アクセラレータ及び演算回路の第4状態を示す図である。 (a)は図1に示す動的再構成アクセラレータ及び演算回路の第5状態を示す図であり、(b)は図1に示す動的再構成アクセラレータ及び演算回路の第6状態を示す図である。 (a)は図1に示す動的再構成アクセラレータ及び演算回路の第7状態を示す図であり、(b)は図1に示す動的再構成アクセラレータ及び演算回路の第8状態を示す図であり、(c)は図1に示す動的再構成アクセラレータ及び演算回路の第9状態を示す図であり(d)は図1に示す動的再構成アクセラレータ及び演算回路の第10状態を示す図である。 図1に示す動的再構成アクセラレータ及び演算回路の第11状態を示す図である。 (a)は図8(a)に示す第1状態における管理テーブルを示す図であり、(b)は図8(d)に示す第4状態における管理テーブルを示す図である。 (a)は図9(a)に示す第5状態における管理テーブルを示す図であり、(b)は図9(b)に示す第6状態における管理テーブルを示す図である。 (a)は図10(a)に示す第7状態における管理テーブルを示す図であり、(b)は図10(b)に示す第8状態における管理テーブルを示す図である。 (a)は図10(c)に示す第9状態における管理テーブルを示す図であり、(b)は図10(d)に示す第10状態における管理テーブルを示す図である。 図2に示すタイミングチャートで図1に示す演算装置が動作するときの回路配置領域のリーク電流を示す図である。 実施形態に係る回路配置方法により回路を配置したときのリーク電流と、他の回路配置方法により回路を配置したときのリーク電流との対比を示す図である。
以下図面を参照して、本発明に係る演算装置及びその方法について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されない。
(実施形態に係る演算装置の概要)
実施形態に係る演算装置は、演算回路と、独立に制御可能な電源電圧が供給される複数の回路配置領域を有するFPGAとを有する。演算回路は、同一の処理を実行する主回路及び副回路を独立に制御可能な電源電圧が供給される回路配置領域にそれぞれ配置することで、電源電圧が供給される回路配置領域の数を少なくしてリーク電流に起因する静的消費電力を削減する。
(実施形態に係る演算装置の構成及び機能)
図1は、実施形態に係る演算装置のブロック図である。
演算装置1は、通信回路10と、記憶回路11と、動的再構成アクセラレータ12と、演算回路13と、電源電圧供給回路14とを有する。
通信回路10は、不図示の上位演算装置から送信されたコマンド等の情報を演算回路13に出力する。また、通信回路10は、演算回路13から出力された情報を、不図示の上位演算装置に送信する。
記憶回路11は、例えば、半導体メモリを有し、演算回路13による演算処理に用いられるドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム、データ等を記憶する。例えば、記憶回路11は、ドライバプログラムとして、通信回路10を制御する通信デバイスドライバプログラム等を記憶する。また、記憶回路11は、アプリケーションプログラムとして、動的再構成アクセラレータ12に動的再構成により回路を配置配線するために使用されるコンフィグレーションプログラムを記憶すると共に、各種データ処理を行うデータ処理プログラム等を記憶する。コンピュータプログラムは、例えばCD−ROM、DVD−ROM等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて記憶回路11にインストールされてもよい。
記憶回路11は、動的再構成アクセラレータ12に動的再構成される回路に対応するコンフィグレーション情報111を記憶する。また、記憶回路11は、動的再構成アクセラレータ12に配置される回路の電源情報及び動作情報等の各種情報を記憶する管理テーブル112を記憶する。
動的再構成アクセラレータ12は、第1回路配置領域21と、第2回路配置領域22と、第3回路配置領域23と、選択回路24とを有するプログラマブルロジックデバイスである。動的再構成アクセラレータ12は、単一のプログラマブルロジックデバイスを含んでもよく、複数のプログラマブルロジックデバイスを含んでもよい。第1回路配置領域21、第2回路配置領域22及び第3回路配置領域23は、独立に制御可能な電源電圧が電源電圧供給回路14から供給され且つ配置可能な回路の回路規模が相違する。第1回路配置領域21は第11回路リソースPR00〜第14回路リソースPR03の4つの回路リソースを有し、第2回路配置領域22は第21回路リソースPR10〜第28回路リソースPR17の8つの回路リソースを有する。第3回路配置領域23は、第31回路リソースPR20〜第3B回路リソースPR2Bの12個の回路リソースを有する。選択回路24は、第1回路配置領域21、第2回路配置領域22及び第3回路配置領域23の電源電圧と独立に制御可能な電源電圧が電源電圧供給回路14から供給される。選択回路24は、第1回路配置領域21、第2回路配置領域22及び第3回路配置領域23の何れか又は全てから出力される情報を演算回路13に出力する。第1回路配置領域21、第2回路配置領域22、第3回路配置領域23及び選択回路24は、記憶回路11に記憶されたコンフィグレーション情報111に基づいて、演算回路13が動的再構成することによって形成される。
演算回路13は、一又は複数個のプロセッサ及びその周辺回路を有する。演算回路13は、種々の演算装置を実行するものであり、例えば、CPU(Central Processing Unit)である。演算回路13は、各種演算処理が記憶回路11に記憶されているプログラム等に応じて適切な手順で実行されるように、通信回路10及び動的再構成アクセラレータ12等の動作を制御する。演算回路13は、記憶回路11に記憶されているプログラム(ドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム等)に基づいて処理を実行する。また、演算回路13は、複数のプログラム(アプリケーションプログラム等)を並列に実行することができる。
演算回路13は、演算処理の一部の処理を動的再構成アクセラレータ12の第1回路配置領域21、第2回路配置領域22及び第3回路配置領域23に動的再構成される回路を使用して実行することにより、処理速度を向上させる。
演算回路13は、主回路配置部130と、副回路配置部131と、配置領域判定部132と、最小回路配置領域決定部133と、電源制御部134と、電源供給判定部135と、実行処理判定部136とを有する。演算回路13は、選択回路配置部137と、処理実行部138と、管理テーブル更新部139とを更に有する。演算回路13が有するこれらの各部は、演算回路13が有するプロセッサ上で実行されるプログラムによって実装される機能モジュールである。あるいは、演算回路13が有するこれらの各部は、独立した集積回路、マイクロプロセッサ、又はファームウェアとして演算装置1に実装されてもよい。
電源電圧供給回路14は、不図示の上位演算装置又は演算回路13から入力される電源電圧制御コマンドに基づいて、通信回路10、記憶回路11、動的再構成アクセラレータ12及び演算回路13に電源電圧を供給する。電源電圧供給回路14は、動的再構成アクセラレータ12の第1回路配置領域21、第2回路配置領域22、第3回路配置領域23及び選択回路24のそれぞれに独立に制御可能な電源電圧を供給する。例えば、電源電圧供給回路14は、第1回路配置領域21及び選択回路24に電源電圧を供給し、第2回路配置領域22及び第3回路配置領域23に電源電圧を供給しなくてもよい。また、電源電圧供給回路14は、第2回路配置領域22及び選択回路24に電源電圧を供給し、第1回路配置領域21及び第3回路配置領域23に電源電圧を供給しなくてもよい。また、電源電圧供給回路14は、第1回路配置領域21、第2回路配置領域22、第3回路配置領域23及び選択回路24に電源電圧を供給してもよい。
(実施形態に係る演算装置の演算処理)
図2は演算装置1における演算処理の一例のタイミングチャートであり、図3は演算装置1における演算処理のフローチャートであり、図4は図2のS101処理のより詳細なフローチャートであり、図5はS103及びS105の処理のより詳細なフローチャートである。図6はS107及びS109の処理のより詳細なフローチャートであり、図7はS110の処理のより詳細なフローチャートである。図8〜11は図2に示す演算処理の種々の状態における動的再構成アクセラレータ12及び演算回路13の状態を示す図であり、図12〜15は図2に示す演算処理の種々の状態における管理テーブルを示す図である。
図8(a)は図2の時間t0における第1状態を示し、図8(b)は第1状態に続く第2状態を示し、図8(c)は第2状態に続く第3状態を示し、図8(d)は第3状態に続く第4状態を示す。図8(b)に示す第2状態〜図8(d)に示す第4状態は、図2の時間t1における状態である。図9(a)は第4状態に続く第5状態を示し、図9(b)は第5状態に続く第6状態を示す。図9(a)に示す第5状態は図2の時間t1における状態であり、図9(b)に示す第6状態は図2の時間t2における状態である。図10(a)は第6状態に続く第7状態を示し、図10(b)は第7状態に続く第8状態を示し、図10(c)は第8状態に続く第9状態を示し、図10(d)は第9状態に続く第10状態を示す。図10(a)に示す第7状態、図10(b)に示す第8状態、図10(c)に示す第9状態及び図10(d)に示す第10状態は、図2の時間t3における状態である。図11は、第10状態に続く第11状態を示し、図2の時間t4における状態である。
図12(a)は図8(a)に示す第1状態における管理テーブルを示し、図12(b)は図8(d)に示す第4状態における管理テーブルを示す。図13(a)は図9(a)に示す第5状態における管理テーブルを示し、図13(b)は図9(b)に示す第6状態における管理テーブルを示す。図14(a)は図10(a)に示す第7状態における管理テーブルを示し、図14(b)は図10(b)に示す第8状態における管理テーブルを示す。図15(a)は図10(c)に示す第9状態における管理テーブルを示し、図15(b)は図10(d)に示す第10状態における管理テーブルを示す。
図12〜15において、項目「回路配置領域」に示されるPD00は第1回路配置領域21を示し、PD01は第2回路配置領域22を示し、PD02は第3回路配置領域23を示す。項目「ON/OFF」は、対応する回路配置領域の電源がオンであるかオフであるかを示し、「1」は電源がオンであることを示し、「0」は電源がオフであることを示す。項目「回路リソース」は、第11回路リソースPR00〜第3B回路リソース2Bの何れかを示す。項目「配置」は対応する回路リソースに回路が配置されているか否かを示し、「1」は回路が配置されていることを示し、「0」は回路が配置されていないことを示す。項目「回路ID」は対応する回路リソースに配置される回路の識別表示を示し、「ID35」は第1処理を実行する回路の識別表示であり、「ID21」は第2処理を実行する回路の識別表示であり、「ID22」は第3処理を実行する回路の識別表示である。項目「主/副」は対応する回路リソースに配置される回路が主回路であるか副回路であるかを示し、「1」は主回路が配置されていることを示し、「0」は副回路が配置されていることを示す。主回路は、同一の処理を実行する回路のうち、回路規模が最も小さい最小回路配置領域に配置される回路である。副回路は、主回路と同一の処理を実行する回路であって、最小回路配置領域よりも回路規模が同じ又は大きい回路配置領域に配置される回路である。項目「動作中」は対応する回路リソースに配置された回路が動作して処理を実行中であるか否かを示し、「1」は回路が動作して処理を実行中であることを示し、「0」は回路が動作せず処理を実行中ではないことを示す。
以下、図2に示すタイミングチャートの演算処理に従って、演算装置1の演算処理を図2〜15を参照しながら説明する。演算装置1は、第1処理、第2処理及び第3処理のそれぞれに対応する回路を動的再構成アクセラレータ12に動的再構成し、動的再構成アクセラレータ12に動的再構成した回路により、第1処理、第2処理及び第3処理のそれぞれを実行する。
図2に示すタイミングチャートにおいて、演算装置1は、第1処理の実行を開始する前、第2処理及び第3処理を実行している(時間t0)。演算装置1は、第2処理及び第3処理の実行中に、第1処理を実行を開始する(時間t1)。次いで、演算装置1は、第3処理の実行を終了する(時間t2)。次いで、演算装置1は、第1処理の実行を終了する(時間t3)。そして、演算装置1は、第1処理の実行を終了した後、第2処理及び第3処理を実行している(時間t4)。
時間t0において、演算装置1が第2処理及び第3処理を実行しているとき、図8(a)に示すように、演算回路13の処理実行部138は、第2処理コマンド32と、第3処理コマンド33とを有する。第2処理コマンド32は第2処理の実行を動的再構成アクセラレータ12に指示コマンドであり、第3処理コマンド33は第3処理の実行を動的再構成アクセラレータ12に指示するコマンドである。図8(a)において実線で示される第1回路配置領域21は、電源電圧供給回路14から電源電圧を供給されている。一方、図8(a)において破線で示される第2回路配置領域22及び第3回路配置領域23は、電源電圧供給回路14から電源電圧を供給されていない。本明細書において、「電源電圧を供給されていない」又は「電源をオフする」というとき、電源を遮断することでリーク電力をゼロにするパワーゲーティング、及びしきい値電圧を上げリークを削減するバックゲートバイアス制御の双方を含む。すなわち、用語「電源電圧が供給されている」又は「電源をオンする」は、パワーゲーティング又はバックゲートバイアス制御によって、回路領域を動作可能状態にすることをいう。また、用語「電源電圧を供給されていない」又は「電源をオフする」は、パワーゲーティング又はバックゲートバイアス制御によって、動作停止時にリーク電力を削減する電源電圧制御をすることをいう。バックゲートバイアス制御によって「電源をオフする」ことによって、コンフィギュレーション情報の消去なく低電力状態に移行することができる。時間t0において、動的再構成アクセラレータ12の第1回路配置領域21には、第2主回路42及び第3主回路43が配置され、第2回路配置領域22及び第3回路配置領域23のそれぞれには、第2副回路52及び第3副回路53が配置される。第2主回路42及び第2副回路52は2つの回路リソースに配置される回路規模を有し、第3主回路43及び第3副回路53は2つの回路リソースに配置される回路規模を有する。実線で示される第2主回路42及び第3主回路43は、第2処理及び第3処理のそれぞれを実行中であり、破線で示される第2副回路52及び第3副回路53は、処理を停止中である。選択回路24は、第1回路配置領域21に配置される第2主回路42及び第3主回路43から出力される情報を演算回路13に出力する。
時間t1において、図8(b)に示すように、演算回路13は、不図示の上位装置から第1処理コマンド31が送信されると、第1処理を実行する第1主回路及び第1副回路を動的再構成アクセラレータ12に配置する(S101)。より詳細には、まず、主回路配置部130は、第1処理を実行する回路の回路再構成に使用する第1コンフィグレーション情報をコンフィグレーション情報111から読み出す(S201)。次いで、主回路配置部130は、第1コンフィグレーション情報から第1処理を実行する回路の回路規模を示す回路規模情報を取得する(S202)。第1処理を実行する回路は、4つの回路リソースに配置される回路規模を有する。次いで、主回路配置部130は、回路配置領域番号nを初期化して「0」とする(S203)。回路配置領域番号nは、回路規模が小さい順に割り当てられる。4つの回路リソースを有する第1回路配置領域21の回路配置領域番号nは「1」であり、8つの回路リソースを有する第2回路配置領域22の回路配置領域番号nは「2」である。12個の回路リソースを有する第3回路配置領域23の回路配置領域番号nは「3」である。次いで、主回路配置部130は、回路配置領域番号nをインクリメントし(S204)、回路配置領域番号nが「1」である第1回路配置領域21の利用可能な回路リソースの数を確認する(S205)。第1回路配置領域21は、第11回路リソースPR00〜第14回路リソースPR03の4つの回路リソースを有するが、第2主回路42及び第3主回路43が配置されるため、第1回路配置領域21の利用可能な回路リソースの数は「0」である。
次いで、主回路配置部130は、第1処理を実行する第1主回路が第1回路配置領域21に配置可能であるか否かを判定する(S206)。第1回路配置領域21の利用可能な回路リソースの数は「0」であり、4つの回路リソースに配置される回路規模を有する第1主回路が第1回路配置領域21に配置可能でないので、処理はS208に進む。S208において、主回路配置部130は、他の処理の副回路を削除したときに、第1回路配置領域21に第1主回路が配置可能であるか否かを判定する。他の処理の副回路を削除したときに、第1回路配置領域21に第1主回路が配置可能であると判定すると、主回路配置部130は、他の処理の副回路を削除して第1主回路を配置する(S209)。しかしながら、第1回路配置領域21には副回路は配置されていないので、主回路配置部130は、第1回路配置領域21〜第3回路配置領域23の全ての領域で確認処理を実行したか否かを判定する(S210)。主回路配置部130は、第2回路配置領域22及び第3回路配置領域を確認していない(S210)ので、回路配置領域番号nをインクリメントして「2」にする(S204)。
次いで、主回路配置部130は、回路配置領域番号nが「2」である第2回路配置領域22の利用可能な回路リソースの数が「4」であることを確認し(S205)、第1主回路が第2回路配置領域22に配置可能であると判定する(S206)。次いで、主回路配置部130は、図8(c)に示すように、第1主回路41を第2回路配置領域22に配置する(S207)。なお、第1回路配置領域21〜第3回路配置領域23について、S204〜S208の処理で第1主回路が配置されない(S210)とき、主回路配置部130は、第1主回路が配置されないことを示す主回路配置不可信号を出力する(S211)。
次いで、副回路配置部131は、回路配置領域番号nをインクリメントし(S212)、回路配置領域番号nが「3」である第3回路配置領域23の利用可能な回路リソースの数を確認する(S213)。第3回路配置領域23は、第31回路リソースPR20〜第3B回路リソースPR2Bの12個の回路リソースを有するが、第2副回路52及び第3副回路53が配置されるため、第1回路配置領域21の利用可能な回路リソースの数は「8」である。副回路配置部131は、第3回路配置領域23の利用可能な回路リソースの数は「8」であり、4つの回路リソースに配置される回路規模を有する第1副回路を第3回路配置領域23に配置可能であると判定する(S214)。次いで、副回路配置部131は、図8(d)に示すように、第1副回路51を第3回路配置領域23に配置する(S215)。次いで、副回路配置部131は全ての回路配置領域を確認したと判定し(S216)、選択回路配置部137は選択回路24を配置する(S217)。そして、管理テーブル更新部139は、図12(a)に示す状態から図12(b)に示す状態に、管理テーブル112を更新する(S218)。管理テーブル112は、PD01で示される第2回路配置領域22にID35で示される第1主回路41が配置されたことを示すように更新される。また、管理テーブル112は、PD01で示される第2回路配置領域22に、ID35で示される第1副回路51が配置されたことを示すように更新される。
次いで、演算回路13は、第1処理を実行する回路が配置された(S102)ので、第1処理を実行する回路を起動する(S103)。より詳細には、配置領域判定部132は、第1回路配置領域21〜第3回路配置領域23について、第1処理を実行する回路が配置されているか否か、及び電源電圧供給回路14から電源電圧が供給されているかを判定する(S301)。一例では、配置領域判定部132は、管理テーブル112を参照して、S301の処理を実行する。図8(d)に示すように、第1回路配置領域21は、第1処理を実行する第1主回路41及び第1副回路51は配置されていないが、実線で示されるように電源電圧供給回路14から電源電圧が供給されている。第2回路配置領域22は、第1処理を実行する第1主回路41は配置されているが、破線で示されるように電源電圧供給回路14から電源電圧が供給されていない。第3回路配置領域23は、第1処理を実行する第1副回路51は配置されているが、破線で示されるように電源電圧供給回路14から電源電圧が供給されていない。次いで、配置領域判定部132は、第1処理を実行する第1主回路41又は第1副回路51が配置され且つ電源電圧供給回路14から電源電圧が供給されている回路配置領域はないと判定する(S302)。
次いで、最小回路配置領域決定部133は、第1処理を実行する回路が配置された回路配置領域の中で回路規模が最も小さい第2回路配置領域22を第1最小回路配置領域に決定する(S303)。次いで、最小回路配置領域決定部133は、第1最小回路配置領域である第2回路配置領域22よりも回路規模が小さい第1回路配置領域21に配置された回路が第2回路配置領域22に配置されているか否かを確認する(S304)。第1回路配置領域21に配置された第2主回路42及び第3主回路43のそれぞれと対応する構成を有する第2副回路52及び第3副回路53は、第2回路配置領域22に配置されている。最小回路配置領域決定部133は、第1回路配置領域21で処理されている第2処理及び第3処理は第2回路配置領域22で実行可能であると判定する(S305)。次いで、最小回路配置領域決定部133は、第2処理及び第3処理を第2回路配置領域22で実行するように変更する実行領域変更指示情報を生成する(S306)。
次いで、電源制御部134は、実行領域変更指示情報に基づいて生成した電源電圧制御コマンドを発行して、電源電圧供給回路14に出力する(S307)。電源電圧制御コマンドは、第2回路配置領域22に電源電圧を供給し且つ第1回路配置領域21及び第3回路配置領域23に電源電圧を供給しないことを含む。電源電圧供給回路14は、電源電圧制御コマンドに応じた電源電圧を動的再構成アクセラレータ12に供給する。図9(a)に示すように、実線で示される第2回路配置領域22は電源電圧供給回路14から電源電圧を供給され、破線で示される第1回路配置領域21及び第3回路配置領域23は電源電圧供給回路14から電源電圧を供給されていない。次いで、電源制御部134は、第2回路配置領域22から出力される情報を演算回路13に出力するように選択回路24を制御する(S308)。次いで、管理テーブル更新部139は、図12(b)に示す状態から図13(a)に示す状態に、管理テーブル112を更新する(S309)。管理テーブル112は、PD00で示される第1回路配置領域21の電源がオフしPD01で示される第2回路配置領域22の電源がオンすることを示すように更新される。また、管理テーブル112は、PD00で示される第1回路配置領域21に配置されるID21及びID22で示される第2主回路42及び第3主回路43が動作中でないことを示すように更新される。また、管理テーブル112は、PD01で示される第2回路配置領域22に配置されるID35、ID21及びID22で示される第1主回路41、第2副回路52及び第3副回路53が動作中であることを示すように更新される。そして、処理実行部138は、第1主回路41により第1処理を実行する(S310)。
次いで、演算回路13は、第1処理以外の他の処理を実行するか否かを判定する処理(S104)、第1処理以外の他の処理を終了するか否かを判定する処理(S106)、及び第1処理を終了するか否かを判定する処理(S108)を順次実行する。第1処理以外の他の処理を実行すると判定されたとき、S301〜S310の処理によって、他の処理を起動する(S105)。
時間t2において、演算回路13は、不図示の上位装置から第3処理終了コマンドが送信されると、第3処理を終了すると判定し(S106)、第3処理の回路を停止する(S107)。より詳細には、まず、実行処理判定部136は、停止する第3処理を実行中の第3副回路53が配置された第2回路配置領域22において、実行中の処理を確認する(S401)。実行処理判定部136は、第2回路配置領域22において、第1処理、第2処理及び第3処理の3つの処理が実行中であることを確認する。次いで、管理テーブル更新部139は、図13(a)に示す状態から図13(b)に示す状態に、管理テーブル112を更新する(S402)。管理テーブル112は、PD01で示される第2回路配置領域22に配置されるID22で示される第3副回路53が動作中でないことを示すように更新される。次いで、実行処理判定部136は、第3処理が第1回路配置領域21に配置された第3主回路43により実行されたのではなく、第2回路配置領域22に配置された第3副回路53により実行されたと判定する(S403)。そして、図9(b)に示すように、処理実行部138は、第3処理は終了する(S404)。
処理実行部138が第3処理は終了すると、演算回路13は、第3処理終了コマンドに応じた一連の処理を終了したと判定し、処理実行部138から第3処理コマンド33を削除する。
時間t3において、演算回路13は、不図示の上位装置から第1処理終了コマンドが送信されると、第1処理を終了すると判定し(S108)、第1処理の回路を停止する(S109)。より詳細には、まず、実行処理判定部136は、停止する第1処理を実行中の第1主回路41が配置された第2回路配置領域22において、実行中の処理を確認する(S401)。実行処理判定部136は、第2回路配置領域22において、第1処理及び第2処理の2つの処理が実行中であることを確認する。次いで、管理テーブル更新部139は、図13(b)に示す状態から図14(a)に示す状態に、管理テーブル112を更新する(S402)。管理テーブル112は、PD01で示される第2回路配置領域22に配置されるID35で示される第1主回路41が動作中でないことを示すように更新される。次いで、実行処理判定部136は、第1処理が第2回路配置領域22に配置された第1主回路41により実行されたと判定した(S403)後に、第2回路配置領域22で他の処理が主回路で実行されていないと判定する(S405)。実行処理判定部136は、第2回路配置領域22で他の処理が主回路で実行されていないと判定した(S405)とき、第2回路配置領域22の停止を決定する(S406)。次いで、管理テーブル更新部139は、図14(a)に示す状態から図14(b)に示す状態に、管理テーブル112を更新する(S407)。管理テーブル112は、PD01で示される第2回路配置領域22の電源がオフであることを示すように更新される。
次いで、演算回路13は、第2処理を実行する回路を起動する(S408)。より詳細には、配置領域判定部132は、第1回路配置領域21〜第3回路配置領域23について、第2処理を実行する回路が配置されているか否か、及び電源電圧供給回路14から電源電圧が供給されているかを判定する(S301)。図14(a)に示すように、第1回路配置領域21は第2主回路42が配置され、第2回路配置領域22及び第3回路配置領域23は第2副回路52が配置される。また、第1回路配置領域21〜第3回路配置領域23は、電源電圧供給回路14から電源電圧が供給されていない。次いで、配置領域判定部132は、第2処理を実行する回路が配置され且つ電源電圧供給回路14から電源電圧が供給されている回路配置領域はないと判定する(S302)。
次いで、最小回路配置領域決定部133は、第2処理を実行する回路が配置された回路配置領域の中で回路規模が最も小さい第1回路配置領域21を第2最小回路配置領域に決定する(S303)。次いで、最小回路配置領域決定部133は、第2最小回路配置領域である第2回路配置領域22よりも回路規模が小さい回路配置領域がないことを確認し(S304)、第1回路配置領域21で実行可能な他の処理はないと判定する(S305)。
次いで、電源制御部134は、第1回路配置領域21に電源電圧を供給することを含む電源電圧制御コマンドを発行して、電源電圧供給回路14に出力する(S307)。次いで、電源制御部134は、第1回路配置領域21から出力される情報を演算回路13に出力するように選択回路24を制御する(S308)。次いで、管理テーブル更新部139は、図14(b)に示す状態から図15(a)に示す状態に、管理テーブル112を更新する(S309)。管理テーブル112は、PD00で示される第1回路配置領域21に電源電圧が供給され且つ第1回路配置領域21に配置されるID21で示される第2主回路42が動作中であることを示すように更新される。また、管理テーブル112は、PD01で示される第2回路配置領域22に配置されるID21で示される第2副回路52が動作中でないことを示すように更新される。そして、処理実行部138は、図10(c)に示すように、第2主回路42により第2処理を実行する(S310)。
次いで、処理実行部138は、第1処理は終了し(S409)、電源制御部134は、第2回路配置領域22に電源電圧を供給しないことを含む電源電圧制御コマンドを発行して、電源電圧供給回路14に出力する(S410)。
次いで、演算回路13は、第1処理を実行する第1主回路41及び第1副回路51を動的再構成アクセラレータ12から削除する(S110)。より詳細には、図10(d)に示すように、主回路配置部130は第2回路配置領域22から第1主回路41を削除し、副回路配置部131は第3回路配置領域23から第1副回路51を削除する(S501)。そして、管理テーブル更新部139は、図15(a)に示す状態から図15(b)に示す状態に、管理テーブル112を更新する(S501)。管理テーブル112は、PD01で示される第2回路配置領域22からID35で示される第1主回路41が削除され、PD02で示される第3回路配置領域23からID35で示される第1副回路51が削除される。
第1処理を実行する第1主回路41及び第1副回路51が動的再構成アクセラレータ12から削除されると、演算回路13は、第1処理終了コマンドに応じた一連の処理を終了したと判定し、処理実行部138から第1処理コマンド31を削除する。
(実施形態に係る演算装置の作用効果)
実施形態に係る演算装置は、同一の処理を実行する主回路及び副回路を回路配置領域に他の処理を実行する回路と共に配置するため、処理に応じて主回路と副回路を切り換えることができる。実施形態に係る演算装置は、処理に応じて主回路と副回路を切り換えることができるため、PLDの微細化の進展に伴って増加傾向にあるリーク電流等に起因する静的消費電力を抑制することができる。
図16は、図2に示すタイミングチャートで演算装置1が動作するときの回路配置領域のリーク電流を示す図である。図16において、波形61は第1回路配置領域21のリーク電流を示し、波形62は第2回路配置領域22のリーク電流を示し、波形63は第3回路配置領域23のリーク電流を示す。
演算装置1は、時間t0を含む期間p1では、第1回路配置領域21の電源をオンし、第2処理及び第3処理を第1回路配置領域21で実行し、第2回路配置領域22及び第3回路配置領域23の電源をオフする。期間p1において、比較的回路規模が大きい第2回路配置領域22及び第3回路配置領域23の電源がオフされるので、リーク電流は抑制される。
演算装置1は、時間t1において、第1処理の実行を開始するときに、単一の回路配置領域で全ての処理を実行してリーク電流を削減するために、第1回路配置領域21で実行していた第2処理及び第3処理を第2回路配置領域22で実行するように変更する。演算装置1は、時間t2を含む期間p2では、第2回路配置領域22の電源をオンし、第1処理、第2処理及び第3処理を第2回路配置領域22で実行し、第1回路配置領域21及び第3回路配置領域23の電源をオフする。期間p2において、第1回路配置領域21及び第3回路配置領域23の電源がオフされるので、第2回路配置領域22のリーク電流は流れるが、第1回路配置領域21及び第3回路配置領域23のリーク電流は流れないため、リーク電流は抑制される。
演算装置1は、時間t3において、第1処理の実行を終了するときに、第2回路配置領域22で実行していた第2処理を、回路規模が小さくリーク電流が比較的小さい第1回路配置領域21で実行するように変更する。演算装置1は、時間t4を含む期間p3では、第1回路配置領域21の電源をオンし、第2処理を第1回路配置領域21で実行し、第2回路配置領域22及び第3回路配置領域23の電源をオフする。期間p3において、比較的回路規模が大きい第2回路配置領域22及び第3回路配置領域23の電源がオフされるので、リーク電流は抑制される。
図17は、実施形態に係る回路配置方法により回路を配置したときのリーク電流と、他の回路配置方法により回路を配置したときのリーク電流との対比を示す図である。図17において、横軸は処理Aの処理時間と処理Aと相違する処理Bの処理時間の重なり率を示し、縦軸はリーク電流を示す。図17において、実線は実施形態に係る回路配置方法により回路を配置したときのリーク電流を示し、破線は個別配置により回路を配置したときのリーク電流を示し、一点鎖線は集中配置により回路を配置したときのリーク電流を示す。個別配置は、処理Aを実行する回路を比較的面積が小さく且つリーク電流が小さい第1回路配置領域に配置し、処理Bを実行する回路を比較的面積が大きく且つリーク電流が大きい第2回路配置領域に配置する方法である。集中配置は、処理Aを実行する回路及び処理Bを実行する回路の双方を、比較的面積が大きく且つリーク電流が大きい第2回路配置領域に配置する方法である。
個別配置では、処理Aを実行する回路と、処理Bを実行する回路が別個の回路配置領域に配置されるため、処理A及び処理Bを処理するタイミングにかかわらずリーク電流はP1+P2で一定になる。集中配置では、処理Aの処理時間と処理Bの処理時間とが重複する割合が大きいほど、単位時間当たりのリーク電流を小さくできるが、処理Aの処理時間と処理Bの処理時間とが重複する割合が小さいと、単位時間当たりのリーク電流が大きい。
実施形態に係る回路配置方法では、処理Aの処理時間と処理Bの処理時間とが重複する割合が比較的小さいときには、リーク電流は、個別配置と同様にはP1+P2で一定になる。一方、処理Aの処理時間と処理Bの処理時間とが重複する割合が比較的大きいときには、リーク電流は、集中配置と同様には単位時間当たりのリーク電流を小さくできる。
(実施形態に係る演算装置の変形例)
演算装置1は、別個の電源電圧が供給される3つの第1回路配置領域21〜第3回路配置領域23を有する動的再構成アクセラレータ12を有する。しかしながら、実施形態に係る演算装置は、別個の電源電圧が供給され且つ2つ又は4つ以上の回路配置領域を有する動的再構成アクセラレータを有してもよい。また、これらの回路領域の回路規模はそれぞれ相違していてもよいし、同じ回路規模の回路領域が含まれていてもよい。
また、演算装置1では、図4に示す処理により、対象処理を実行する主回路及び副回路を配置するが、実施形態に係る演算装置では、同一の処理を実行する少なくとも2つの回路を異なる回路配置領域に配置できればよい。図4に示す処理により主回路及び副回路を配置する場合、副回路は、主回路が配置された回路配置領域よりも回路規模が同じ又は大きい回路配置領域に配置される。しかしながら、図4に示す処理と異なる処理により主回路及び副回路を配置するときは、副回路は、主回路が配置された回路配置領域よりも回路規模が小さい回路配置領域に配置されてもよい。
1 演算装置
11 記憶回路
12 動的再構成アクセラレータ(プログラマブルロジックデバイス)
13 演算回路
14 電源電圧供給回路
21、22、23 回路配置領域
24 選択回路
130 主回路配置部
131 副回路配置部
138 処理実行部

Claims (7)

  1. 独立に制御可能な電源電圧が供給される複数の回路配置領域を有するプログラマブルロジックデバイスと、
    前記プログラマブルロジックデバイスに接続された演算回路と、を有し、
    前記演算回路は、
    所定の処理を実行する主回路を、前記複数の回路配置領域の何れかに配置する主回路配置部と、
    前記主回路が配置されない回路配置領域に、前記所定の処理を実行する副回路が配置可能な領域があるか否かを判定し、前記副回路が配置可能な領域があると判定された回路配置領域に、前記副回路を配置する副回路配置部と、
    前記主回路又は前記副回路の何れか1つにより前記所定の処理を実行する処理実行部と、
    を有する、演算装置。
  2. 前記演算回路は、前記主回路及び前記副回路が配置された回路配置領域の中で回路規模が最も小さい最小回路配置領域を決定する最小回路配置領域決定部を更に有し、
    前記処理実行部は、前記最小回路配置領域に配置される前記主回路又は前記副回路により前記所定の処理を実行する、請求項1に記載の演算装置。
  3. 前記副回路配置部は、前記主回路が配置された回路配置領域よりも回路規模が同じ又は大きい回路配置領域に前記副回路を配置する、請求項1又は2に記載の演算装置。
  4. 前記所定の処理を終了するときに、前記所定の処理が前記副回路で実行されていると判定されたときに、前記副回路が配置された回路配置領域の電源をオフしない電源制御部を更に有する、請求項3に記載の演算装置。
  5. 前記電源制御部は、前記所定の処理を終了するときに、前記所定の処理が前記主回路で実行されていると判定され且つ前記副回路が配置された回路配置領域に前記所定の処理以外の他の処理を実行する他の主回路が配置されていると判定されたときに、前記主回路が配置された回路配置領域の電源をオフしない、請求項4に記載の演算装置。
  6. 前記電源制御部は、前記所定の処理を終了するときに、前記所定の処理が前記主回路で実行されていると判定され且つ前記主回路が配置された回路配置領域に前記所定の処理以外の他の処理を実行する他の主回路が配置されていないと判定されたときに、前記主回路が配置された回路配置領域の電源をオフする、請求項5に記載の演算装置。
  7. 所定の処理を実行する主回路を、独立に制御可能な電源電圧が供給されるプログラマブルロジックデバイスの複数の回路配置領域の何れかに配置し、
    前記主回路が配置されない回路配置領域に、前記所定の処理を実行する副回路が配置可能な領域があるか否かを判定し、
    前記副回路が配置可能な領域があると判定された回路配置領域(23)に、前記副回路を配置し、
    前記主回路又は前記副回路の何れか1つにより前記所定の処理を実行する、
    ことを有する、方法。
JP2015207977A 2015-10-22 2015-10-22 演算装置及びその方法 Pending JP2017079037A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015207977A JP2017079037A (ja) 2015-10-22 2015-10-22 演算装置及びその方法
US15/254,413 US9748954B2 (en) 2015-10-22 2016-09-01 Calculation device and calculation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015207977A JP2017079037A (ja) 2015-10-22 2015-10-22 演算装置及びその方法

Publications (1)

Publication Number Publication Date
JP2017079037A true JP2017079037A (ja) 2017-04-27

Family

ID=58559237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015207977A Pending JP2017079037A (ja) 2015-10-22 2015-10-22 演算装置及びその方法

Country Status (2)

Country Link
US (1) US9748954B2 (ja)
JP (1) JP2017079037A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6726648B2 (ja) * 2017-08-28 2020-07-22 日立オートモティブシステムズ株式会社 電子制御装置、回路の再構成方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7112997B1 (en) * 2004-05-19 2006-09-26 Altera Corporation Apparatus and methods for multi-gate silicon-on-insulator transistors
US7129745B2 (en) * 2004-05-19 2006-10-31 Altera Corporation Apparatus and methods for adjusting performance of integrated circuits
US7936184B2 (en) * 2006-02-24 2011-05-03 Altera Corporation Apparatus and methods for adjusting performance of programmable logic devices
JP2010103362A (ja) 2008-10-24 2010-05-06 Renesas Technology Corp 半導体装置
JP5431003B2 (ja) * 2009-04-03 2014-03-05 スパンション エルエルシー リコンフィギュラブル回路及びリコンフィギュラブル回路システム
US8461869B1 (en) * 2011-08-19 2013-06-11 Altera Corporation Apparatus for configuring performance of field programmable gate arrays and associated methods
JP2013098823A (ja) 2011-11-02 2013-05-20 Ricoh Co Ltd 情報処理装置及び演算処理方法
JP2014052918A (ja) 2012-09-07 2014-03-20 Canon Inc 演算装置およびその制御方法
SG10201404041XA (en) * 2013-07-12 2015-02-27 Agency Science Tech & Res Printed Circuit Arrangement And Method Of Forming The Same

Also Published As

Publication number Publication date
US20170117892A1 (en) 2017-04-27
US9748954B2 (en) 2017-08-29

Similar Documents

Publication Publication Date Title
JP6092649B2 (ja) 演算装置、アレイ型演算装置およびその制御方法、情報処理システム
JP4723313B2 (ja) 画像処理装置
US20160034411A1 (en) Subsystem Peripheral Ownership Scheduling and Reconfiguration for Highly Integrated System on Chips
WO2016147620A1 (en) Information processing apparatus, information processing method, non-transitory computer-readable storage medium
TW201527912A (zh) 控制裝置、開發裝置,及開發程式
JP2017079037A (ja) 演算装置及びその方法
US10120970B2 (en) Global routing framework of integrated circuit based on localized routing optimization
JP6228318B2 (ja) 計算機及び計算機システム
KR20160012666A (ko) 전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기
JP5980035B2 (ja) 情報処理装置およびその制御方法
US20120203936A1 (en) Direct peripheral interconnect
US10592444B2 (en) Reconfigurable interconnected programmable processors
WO2020246965A1 (en) Task distribution across multiple processing devices
CN110073298A (zh) 绘图软件、存储介质及绘图装置
JP2016103240A (ja) データ処理装置とデータ処理方法
US10013155B2 (en) Focus shift control apparatus
JP6850719B2 (ja) スケジューリング装置、スケジューリング方法及び記憶媒体
JP6141073B2 (ja) 情報処理装置及び情報処理装置の制御方法
US10366001B1 (en) Partitioning memory blocks for reducing dynamic power consumption
JP6057735B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP3989397B2 (ja) 集積回路装置およびその装置に対するデータ設定装置
JP2014052918A (ja) 演算装置およびその制御方法
JP2019053413A (ja) データ処理装置及びデータ処理方法
US10437728B2 (en) Branchless instruction paging in reconfigurable fabric
JP2018097667A (ja) Ncプログラム転送装置