JP6580288B2 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP6580288B2
JP6580288B2 JP2019505641A JP2019505641A JP6580288B2 JP 6580288 B2 JP6580288 B2 JP 6580288B2 JP 2019505641 A JP2019505641 A JP 2019505641A JP 2019505641 A JP2019505641 A JP 2019505641A JP 6580288 B2 JP6580288 B2 JP 6580288B2
Authority
JP
Japan
Prior art keywords
time
data transfer
interface circuit
transfer capability
unit
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
Application number
JP2019505641A
Other languages
English (en)
Other versions
JPWO2018167940A1 (ja
Inventor
友美 竹内
友美 竹内
誠弘 船附
誠弘 船附
峯岸 孝行
孝行 峯岸
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2018167940A1 publication Critical patent/JPWO2018167940A1/ja
Application granted granted Critical
Publication of JP6580288B2 publication Critical patent/JP6580288B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Systems (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
例えば、組込みシステムの設計では、組込みシステムに要求される制約条件(性能、サイズ、コスト等)を満たすように部品が選定される。そして、組込みシステムに要求される演算処理が各部品に割り振られる。一般的には、演算処理量が多く、部品の性能を逼迫する演算処理がハードウェア又はソフトウェアの高速処理が可能なプロセッサに割り振られる。ハードウェアは、例えば、FPGA(Field−Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)である。また、ソフトウェアの高速処理が可能なプロセッサは、例えば、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)等である。また、逐次処理や全体制御等が他の種類のプロセッサに割り振られる。逐次処理や全体制御等は、例えば、CPU(Central Processing Unit)に割り振られる。
しかし、制約条件によってコストを安く抑えることが最優先に求められるような場合は、演算処理量が多い演算処理が、高速なインタフェース回路に対応していないCPUに割り振られることがある。このような場合は、演算処理量のみでは演算処理の割り振りを決定できない。つまり、このような場合は、演算処理の割り振りに、インタフェース回路のデータ転送能力を考慮する必要がある。
特許文献1では、ハードウェアとソフトウェアを実行するプロセッサとの間でデータの受け渡しを行うインタフェース回路の影響を評価する技術が開示されている。
より具体的には、特許文献1の技術では、インタフェース回路に接続されている演算機器(ハードウェア及びプロセッサ)のレイテンシ及びプロトコルタイプ(ハンドシェイク型かキュー型)が示されるインタフェース回路情報が読み込まれる。そして、特許文献1の技術では、インタフェース回路の接続先となる演算機器から結果が得られるまでの時間及びデータ投入サイクルがモデル情報として生成され、ハードウェアとソフトウェアの分割が制約を満足するかどうかがチェックされる。
特開2000−57199号公報
インタフェース回路のデータ転送性能は、インタフェース回路の種類ごとに、接続されるCPU等の種類や、レジスタ設定によって変化する。このため、接続先の演算機器のレイテンシや、プロトコルタイプがハンドシェイク型かキュー型かの情報だけでは不十分である。つまり、インタフェース回路のデータ転送能力を算出するためには、インタフェース回路情報をインタフェース回路の種類ごとに変える必要があり、ユーザが、インタフェース回路の種類ごとに、インタフェース回路のデータ転送能力の算出に必要な情報を与える必要がある。
このように、特許文献1では、ユーザがインタフェース回路の種類ごとに、インタフェース回路の転送能力を算出するための情報を設定しなければならず、利便性を欠くという課題がある。
本発明は、このような課題を解決することを主な目的の一つとしている。より具体的には、ユーザがインタフェース回路の種類ごとに設定を行わなくてもインタフェース回路の転送能力を算出することができる構成を得ることを主な目的とする。
本発明に係る情報処理装置は、
インタフェース回路の種類に対応付けて、データ転送能力を算出するための算出式が記述されるインタフェース転送能力情報を記憶する記憶部と、
複数の演算処理の実行を分担する複数の演算機器を接続するインタフェース回路として複数のインタフェース回路の中から指定された指定インタフェース回路の種類に対応する算出式を前記インタフェース転送能力情報から取得し、取得した算出式を用いて、前記指定インタフェース回路のデータ転送能力を算出する転送能力算出部とを有する。
本発明によれば、ユーザがインタフェース回路の種類ごとに設定を行わなくてもインタフェース回路の転送能力を算出することができる。
実施の形態1に係る情報処理装置の機能構成例を示す図。 実施の形態1に係るアーキテクチャ情報の記述例を示す図。 実施の形態1に係る機能モデルの動作記述例を示す図。 実施の形態1に係る制約条件の記述例を示す図。 実施の形態1に係るインタフェース転送能力情報の例を示す図。 実施の形態1に係る分割最終候補の記述例を示す図。 実施の形態1に係る情報処理装置のハードウェア構成例を示す図。 実施の形態1に係る情報処理装置の動作例を示すフローチャート。
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分または相当する部分を示す。
実施の形態1.
***構成の説明***
図1は、本実施の形態に係る情報処理装置1の機能構成例を示す。
また、図7は、本実施の形態に係る情報処理装置1のハードウェア構成例を示す。
なお、情報処理装置1により行われる動作は、情報処理方法及び情報処理プログラムに相当する。
最初に、図7を参照して情報処理装置1のハードウェア構成例を説明する。
本実施の形態に係る情報処理装置1は、コンピュータである。
情報処理装置1は、ハードウェアとして、プロセッサ901、メモリ902、記憶装置903、入力装置904及び出力装置905を備える。
記憶装置903には、図1に示す分割候補生成部2、転送時間評価部3、演算時間算出部4、制約時間算出部5、分割決定部6及び評価情報出力部8の機能を実現するプログラムが記憶されている。
これらプログラムは記憶装置903からメモリ902にロードされる。そして、プロセッサ901がこれらプログラムをメモリ902から読み出す。プロセッサ901は、これらプログラムを実行して、後述する分割候補生成部2、転送時間評価部3、演算時間算出部4、制約時間算出部5、分割決定部6及び評価情報出力部8の動作を行う。
図7では、プロセッサ901が分割候補生成部2、転送時間評価部3、演算時間算出部4、制約時間算出部5、分割決定部6及び評価情報出力部8の機能を実現するプログラムを実行している状態を模式的に表している。
また、記憶装置903は、図1に示すデータベース7を構成する。すなわち、記憶装置903は、インタフェース転送能力情報を格納する。
入力装置904は、後述するアーキテクチャ情報9、機能モデル10及び制約条件11の入力に用いられる。
記憶装置903内のインタフェース転送能力情報は、キーボード等の入力装置904から書き換えることが可能である。また、インタフェース転送能力情報は、USB(Universal Serial Bus)メモリ等を用いて入れ替えることが可能である。
出力装置905は、後述する分割最終候補12及び評価情報13を出力する。
次に、図1を参照して、情報処理装置1の機能構成例を説明する。
情報処理装置1は、分割候補生成部2、転送時間評価部3、演算時間算出部4、制約時間算出部5、分割決定部6、データベース7及び評価情報出力部8から構成される。
分割候補生成部2は、アーキテクチャ情報9及び機能モデル10を取得する。
機能モデル10は、C、C++等のプログラム記述言語で記述されたプログラムである。機能モデル10には、複数の演算処理が含まれる。
アーキテクチャ情報9には、機能モデル10を実行するシステム(例えば、組込みシステム)に含まれる演算機器、メモリ、インタフェース回路の種類及び接続関係等が記述されている。演算機器には、FPGA、ASIC等のハードウェアと、DSP、GPU及びCPU等のソフトウェアを実行するプロセッサが含まれる。
分割候補生成部2は、アーキテクチャ情報9を参照して、機能モデル10内のどの演算処理をソフトウェア、ハードウェアに割り当てるかの分割候補を生成する。つまり、分割候補生成部2は、複数の演算機器による複数の演算処理の分担パターンをハードウェア/ソフトウェア分割により複数生成する。なお、分割候補生成部2が生成する分担パターンを、以下、分割候補という。
図2は、アーキテクチャ情報9の記述例を示す。図3は、機能モデル10の動作記述例を示す。
図2及び図3の詳細は後述する。
分割候補生成部2は、分担パターン生成部に相当する。
転送時間評価部3は、データベース7からインタフェース転送能力情報を取得する。
図5は、インタフェース転送能力情報の例を示す。図5の詳細は後述するが、インタフェース転送能力情報には、インタフェース回路の種類と演算機器の種類との組合せに対応付けて、データ転送能力を算出するための算出式が記述される。
転送時間評価部3は、アーキテクチャ情報9において指定されているインタフェース回路の種類と演算機器の種類との組み合わせに対応する算出式をインタフェース転送能力情報から取得する。なお、アーキテクチャ情報9において指定されているインタフェース回路を指定インタフェース回路という。
転送時間評価部3は、取得した指定インタフェース回路の算出式を用いて指定インタフェース回路のデータ転送能力を算出する。
また、転送時間評価部3は、分割候補ごとに、複数の演算処理の実行を複数の演算機器で分担する際に複数の演算機器の間で転送されるデータ量を推定する。更に、転送時間評価部3は、分割候補ごとに、推定したデータ量を指定インタフェース回路を介して転送する際のデータ転送時間を、算出した指定インタフェース回路の転送能力に基づき算出する。
転送時間評価部3は、転送能力算出部及び転送時間算出部に相当する。
演算時間算出部4は、分割候補ごとに、複数の演算機器の各々での演算時間を算出する。
制約時間算出部5は、制約条件11を取得する。
制約条件11には、全体要求性能が示される。全体要求性能は、機能モデル10を実行するシステムに要求される処理時間が示される。
図4は、制約条件11の記述例を示す。図4の詳細は後述する。
制約時間算出部5は、分割候補ごとに、制約条件11に示される全体要求性能から、演算時間算出部4で算出された演算時間を差し引いて、データ転送についての制約時間を算出する。
分割決定部6は、転送時間評価部3で算出された分割候補のデータ転送時間と、制約時間算出部5で算出した制約時間とを比較する。
分割決定部6は、時間比較部に相当する。
データベース7は、インタフェース転送能力情報を格納する。
データベース7は記憶部に相当する。
***動作の説明***
次に、図8を参照して、本実施の形態に係る情報処理装置1の動作例を説明する。
まず、分割候補生成ステップ(ステップS1)について説明する。
分割候補生成ステップ(ステップS1)では、分割候補生成部2が、アーキテクチャ情報9に基づき分割候補を生成する。すなわち、分割候補生成部2は、ソフトウェアに割り当てる演算処理及びハードウェアに割り当てる演算処理の組み合わせを複数生成する。ソフトウェアに割り当てる演算処理及びハードウェアに割り当てる演算処理の組み合わせが分割候補に相当する。
分割候補生成部2は、考え得る全通りの組合せを分割候補として生成してもよいし、データベース等から経験的に規定数の分割候補を生成するようにしてもよい。
分割候補生成部2は、例えば関数単位で機能モデル10を分割する。また、分割候補生成部2は、関数単位だけでなく、関数を展開してfor文等ループを分割単位にして機能モデル10を分割してもよい。
次に、データ転送時間評価ステップ(ステップS2)について説明する。
データ転送時間評価ステップ(ステップS2)では、転送時間評価部3が、アーキテクチャ情報9を参照して、機能モデル10を実行するシステムに含まれるインタフェース回路を特定する。転送時間評価部3が特定したインタフェース回路は指定インタフェース回路に相当する。また、転送時間評価部3は、アーキテクチャ情報9を参照して、機能モデル10を実行するシステムに含まれる演算機器を特定する。
更に、転送時間評価部3は、データベース7に格納されているインタフェース転送能力情報を参照する。転送時間評価部3は、インタフェース転送能力情報から、指定インタフェース回路の種類と演算機器の種類の組合せに対応する算出式を取得する。そして、転送時間評価部3は、取得した算出式を用いて、指定インタフェース回路のデータ転送能力を算出する。
また、転送時間評価部3は、分割候補生成部2から得た分割候補について、機能モデル10を用いて各分割点の入出力変数が通るインタフェース機器のルートを割り出す。そして、転送時間評価部3は、そのインタフェース機器を経由する全変数の総転送ビット数を算出する。なお、分割点とは、機能モデル10の分割により得られたプログラムコードのブロックである。
更に、転送時間評価部3は、分割候補ごとに、指定インタフェース回路のデータ転送能力と総転送ビット数から指定インタフェース回路のデータ転送時間を算出する。また、転送時間評価部3は、指定インタフェース回路のデータ転送時間の算出に用いた条件を出力する。
次に、演算時間見積もりステップ(ステップS3)について説明する。
演算時間見積もりステップ(ステップS3)では、演算時間算出部4が、分割候補生成部2から得た分割候補について、機能モデル10とアーキテクチャ情報9から各演算処理の処理時間を演算時間として見積もる。なお、この演算時間にはデータ転送に要する時間は含まれない。演算時間算出部4は、例えば、機能モデル10の記述を解析し、データベース7等を照会して各演算処理の演算時間を静的に見積もる。また、演算時間算出部4は、機能モデル10を用いたシミュレーションを行って、演算処理の演算時間を動的に見積もってもよい。
次に、制約時間算出ステップ(ステップS4)について説明する。
制約時間算出ステップ(ステップS4)では、制約時間算出部5が、分割候補生成部2から得た分割候補の各変数のルートについて、制約条件11に示される全体要求性能から、演算時間算出部4で見積もられた演算時間を差し引いて、データ転送についての制約時間を算出する。
次に、評価情報出力ステップ(ステップS5)について説明する。
評価情報出力ステップ(ステップS5)では、評価情報出力部8が、評価情報13を出力する。
評価情報13には、転送時間評価部3にてデータ転送時間を評価する際に用いた評価条件、および、評価結果等が含まれる。
次に、分割決定ステップ(ステップS6)について説明する。
分割決定ステップ(ステップS6)では、分割決定部6が、転送時間評価部3で算出された分割候補のデータ転送時間と、制約時間算出部5で算出した制約時間とを比較する。データ転送時間が制約時間を超えている場合は、分割決定部6は、転送時間評価部3にデータ転送時間が制約時間を超えている度合いを通知する。
転送時間評価部3は、分割決定部6からデータ転送時間が制約時間を超えていることが通知されると、同じ分割候補において、指定インタフェース回路の設定変更により制約時間が満たせるかどうかを探索する。
つまり、転送時間評価部3は、指定インタフェース回路の転送能力情報が図5の1行目のように算出式である場合は、前回のデータ転送能力の算出に用いたパラメータ値と異なるパラメータ値(以下、代替パラメータ値という)を算出式に適用する。この結果、転送時間評価部3は、指定インタフェース回路のデータ転送能力として新たなデータ転送能力を得る。以下、この新たなデータ転送能力を代替データ転送能力という。そして、転送時間評価部3は、代替データ転送能力に基づくデータ転送時間を算出する。
算出した代替データ転送能力に基づくデータ転送時間が制約時間以下であれば、転送時間評価部3は、当該データ転送時間を分割決定部6に通知する。
また、算出した代替データ転送能力に基づくデータ転送時間が制約時間を超える場合は、転送時間評価部3は、更に、異なるパラメータを算出式に適用して、更なる代替データ転送能力を得る。また、転送時間評価部3は、更なる代替データ転送能力に基づくデータ転送時間を算出する。制約時間以下のデータ転送時間が得られなかった場合は、転送時間評価部3は、算出した複数のデータ転送時間の中で最短のデータ転送時間を分割決定部6に通知する。
分割決定部6は、データ転送時間が制約時間以下の分割候補を分割最終候補のひとつとして残す。
分割決定部6は、データ転送時間が制約時間を超える分割候補は分割最終候補から除外する。分割決定部6は、最終的に残った分割候補の全てを分割最終候補12として出力してもよいし、最もデータ転送時間が短い分割候補のみを分割最終候補12として出力してもよい。
(分割手順例1)
次に、図2、図3、図4及び図5を用いて、本実施の形態に係る情報処理装置1が分割最終候補12を得る手順を説明する。
前述したように、図2は、アーキテクチャ情報9の記述例である。
また、図3は、機能モデル10の動作記述例である。
また、図4は、制約条件11の記述例である。
また、図5は、データベース7に格納されているインタフェース転送能力情報の例である。
また、図6は、情報処理装置1によって得られる分割最終候補12の記述例である。
図2のアーキテクチャ情報9には、機能モデル10を実行するシステムにCPU0(型番がA123456)とFPGA0(型番がF987654)が備わっていることが示されている。また、図2のアーキテクチャ情報9には、CPU0は20MHzで動作することが示される。また、図2のアーキテクチャ情報9には、FPGA0は100MHzで動作することが示される。また、図2のアーキテクチャ情報9には、CPU0とFPGA0を接続するインタフェース回路がBUS0であることが示される。また、図2のアーキテクチャ情報9には、BUS0がSPI(Serial Peripheral Interface)であることが示される。BUS0は指定インタフェース回路に相当する。
図4の制約条件11には、機能モデル10の実行時間、すなわち機能モデル10を実行するシステムの処理性能が40μsecであることが示されている。
図5のインタフェース転送能力情報には、インタフェース回路の種類ごとに、設定条件と、データ転送能力が示される。
図5において、ビット幅、周波数、接続機器、パラメータ1(prm1)、パラメータ2(prm2)の欄に記載される値が設定条件である。また、データ転送能力の欄には、データ転送能力を算出するための算出式又はデータ転送能力の値が示される。
図5の1行目では、インタフェース回路の種類(SPI)と演算機器の種類(型番:A123456)の組合せに対応付けて、データ転送能力を算出するための算出式が記述されている。
分割候補生成部2は、図2のアーキテクチャ情報9と、図4の制約条件11と、図3の機能モデル10が入力されると、機能モデル10の分割候補を生成する。すなわち、分割候補生成部2は、CPU0で実行させるブロックとFPGA0で実行させるブロックの組合せの候補を複数生成する。
例えば、分割候補生成部2は、動作記述のトップ記述である関数top()のうち、関数func()全体をFPGA0に実行させる分割候補1を生成する。更に、分割候補生成部2は、関数func()内の動作記述(2)のfor文のみをFPGA0に実行させる分割候補2を生成する。
転送時間評価部3は、図2のアーキテクチャ情報9を参照して、CPU0とFPGA0との間のインタフェース回路であるBUS0の種類がSPIであると認識する。また、転送時間評価部3は、CPU0の型番がA123456であることから、インタフェース転送能力情報から、図5の1行目のSPIのデータ転送能力の欄に記載の算出式を取得する。つまり、転送時間評価部3は、「=f/{2*(prm1+1)*(2^prm2)}」を取得する。
仮に周波数f=20MHz、prm1=3、prm2=0が与えられたとすると、転送時間評価部3は、BUS0(SPI)のデータ転送能力として、20MHz/{2*(3+1)*2^0=2.5Mbpsを得る。
次に、転送時間評価部3は、分割候補生成部2で生成された分割候補1と、分割候補2について、それぞれデータ転送時間の評価を行う。
(分割候補1のデータ転送時間の評価)
分割候補1では、関数func全体をハードウェア化するため、ハードウェアへの入出力変数は、outE、inA、inB、inC、inDである。関数funcを1回実行するためには、CPU0とFPGA0との間でBUS0(SPI)を介して、outE=30ビット、inA=12ビット、inB=12ビット、inC=12ビット、inD=15ビットの総ビット数=81ビット分の転送を行う必要がある。転送時間評価部3は、分割候補1に従って機能モデル10の実行をCPU0とFPGA0とで分担させる場合に、CPU0からFPGA0に81ビットのデータが転送されると推定する。SPIのデータ転送能力が2.5Mbpsであるので、転送時間評価部3は、以下のデータ転送時間を得る。
81ビット÷2.5Mbps=32.4μsec
(分割候補2のデータ転送時間の評価)
分割候補2では、動作記述(2)をハードウェア化するため、ハードウェアへの入出力変数は、outE、inD、tempである。動作記述(2)を1回実行するためには、CPU0とFPGA0との間でSPIを介して、inD=15ビット、temp=15ビット、outE=30ビットの総ビット数=60ビット分の転送を行う必要がある。転送時間評価部3は、分割候補2に従って機能モデル10の実行をCPU0とFPGA0とで分担させる場合に、CPU0からFPGA0に60ビットのデータが転送されると推定する。SPIのデータ転送能力が2.5Mbpsであるので、転送時間評価部3は、以下のデータ転送時間を得る。
60ビット÷2.5Mbps=24.0μsec
次に、演算時間算出部4は、分割候補1及び分割候補2のそれぞれの演算時間を算出する。
分割候補1と分割候補2との差が動作記述(1)の部分をハードウェアで実行するか、ソフトウェアで実行するかのみであるため、ここでは、動作記述(1)の演算時間の見積もりのみを説明するが、実際には、演算時間算出部4は、機能モデル10の全ての部分について演算時間を見積もる。
(分割候補1の演算時間の見積)
動作記述(1)をハードウェアで実行する際のサイクル数=1サイクルである。また、FPGA0は100MHzで動作する。このため、演算時間算出部4は、分割候補1の動作記述(1)の演算時間として、10nsecを得る。
(分割候補2の演算時間の見積)
動作記述(1)をソフトウェアで実行する際のサイクル数=4サイクルである。また、CPU0は20MHzで動作する。このため、演算時間算出部4は、分割候補2の動作記述(1)の演算時間として、50nsec*4=200nsecを得る。
機能モデル10の他の部分については、分割候補1、分割候補2に共通して、ソフトウェアとハードウェアの合計で32μsecかかるものとする。
次に、制約条件11に全体の処理時間が40μsecと指定されていることから、制約時間算出部5が、各分割候補のデータ転送についての制約時間を以下のように算出する。
(分割候補1の制約時間)
40μsec−(32μsec+10nsec)=7.99μsec
(分割候補2の制約時間)
40μsec−(32μsec+200nsec)=7.80μsec
次に、分割決定部6が、転送時間評価部3が算出したデータ転送時間と、制約時間算出部5が算出した制約時間とを比較する。そして、分割決定部6は、各分割候補のデータ転送時間が制約時間以下であるか否かを判定する。
分割候補1のデータ転送時間と制約時間及び分割候補2のデータ転送時間と制約時間は、以下の通りである。
分割候補1のデータ転送時間=32.4μsec
分割候補1の制約時間=7.99μsec
分割候補2のデータ転送時間=24.0μsec
分割候補2の制約時間=7.80μsec
分割候補1及び分割候補2のいずれにおいても、データ転送時間は制約時間を超えている。
このため、分割決定部6は、分割候補1の場合、現在の指定インタフェース回路(BUS0)の4.06倍(=32.4μsec÷7.99μsec)以上のデータ転送能力が必要であることを転送時間評価部3に通知する。また、分割決定部6は、分割候補2の場合、現在の指定インタフェース回路(BUS0)の3.08倍(=24.0μsec÷7.80μsec)以上のデータ転送能力が必要であることを転送時間評価部3に通知する。
次に、転送時間評価部3は、指定インタフェース回路において、必要なデータ転送能力を実現できる設定を探索する。
探索の結果、転送時間評価部3は、分割候補1の場合は、4.06倍以上のデータ転送能力、すなわち、指定インタフェース回路のデータ転送能力を10.15Mbpsにできる設定がないと判定する(prm1=1、prm2=0としても、データ転送能力は10Mbpsまでしか向上されない)。
一方、転送時間評価部3は、分割候補2の場合は、prm1=1、prm2=0とすれば、指定インタフェース回路のデータ転送能力は10Mbpsとなり、必要なデータ転送能力(2.5Mbps*3.08=7.7Mbps)を実現できると判定する。
このため、転送時間評価部3は、以下のデータ転送時間を分割決定部6に出力する。
分割候補1のデータ転送時間=81ビット÷10Mbps=8.1μsec
分割候補2のデータ転送時間=60ビット÷10Mbps=6.0μsec
また、転送時間評価部3は、インタフェース評価条件としてprm1=1、prm2=0を評価情報出力部8に出力する。なお、prm1=1及びprm2=0は、代替パラメータ値に相当する。
分割決定部6は、転送時間評価部3で算出したデータ転送時間と、制約時間算出部5で算出した制約時間とを再度比較する。そして、分割決定部6は、各分割候補のデータ転送時間が制約時間以下であるか否かを判定する。
分割候補1のデータ転送時間と制約時間及び分割候補2のデータ転送時間と制約時間は、以下の通りである。
分割候補1のデータ転送時間=8.1μsec
分割候補1の制約時間=7.99μsec
分割候補2のデータ転送時間=6.0μsec
分割候補2の制約時間=7.80μsec
この例では、分割候補2のみ、データ転送時間が制約時間以下となるので、分割決定部6は、分割候補2のみを分割最終候補12として出力する。つまり、分割決定部6は、図6のような分割最終候補12を出力する。
***実施の形態の効果の説明***
本実施の形態では、インタフェース回路の種類に対応付けてデータ転送能力の算出式が用意されている。そして、本実施の形態では、転送時間評価部3が、指定インタフェース回路の種類に対応する算出式を用いて、指定インタフェース回路のデータ転送能力を算出する。このため、本実施の形態によれば、ユーザがインタフェース回路の種類ごとに設定を行わなくてもインタフェース回路の転送能力を算出することができる。
また、本実施の形態では、評価情報出力部8が制約条件を満たす設定を探索し、制約条件を満たす設定を評価情報として出力する。このため、ユーザが設定情報を都度変更しながらインタフェース回路を探索する必要がなくなる。この結果、本実施の形態によれば、データ転送能力を考慮したハードウェア/ソフトウェア分割を効率的に求めることができる。
***ハードウェア構成の説明***
最後に、情報処理装置1のハードウェア構成の補足説明を行う。
図7に示すプロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ901は、CPU、DSP等である。
図7に示すメモリ902は、RAM(Random Access Memory)である。図7に示す記憶装置903は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
また、記憶装置903には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ902にロードされ、プロセッサ901により実行される。
プロセッサ901はOSの少なくとも一部を実行しながら、分割候補生成部2、転送時間評価部3、演算時間算出部4、制約時間算出部5、分割決定部6及び評価情報出力部8の機能を実現するプログラムを実行する。
プロセッサ901がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、分割候補生成部2、転送時間評価部3、演算時間算出部4、制約時間算出部5、分割決定部6及び評価情報出力部8の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ902、記憶装置903、プロセッサ901内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、分割候補生成部2、転送時間評価部3、演算時間算出部4、制約時間算出部5、分割決定部6及び評価情報出力部8の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
また、分割候補生成部2、転送時間評価部3、演算時間算出部4、制約時間算出部5、分割決定部6及び評価情報出力部8の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、情報処理装置1は、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC、FPGAといった電子回路により実現されてもよい。
この場合は、分割候補生成部2、転送時間評価部3、演算時間算出部4、制約時間算出部5、分割決定部6及び評価情報出力部8は、それぞれ電子回路の一部として実現される。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
1 情報処理装置、2 分割候補生成部、3 転送時間評価部、4 演算時間算出部、5 制約時間算出部、6 分割決定部、7 データベース、8 評価情報出力部、9 アーキテクチャ情報、10 機能モデル、11 制約条件、12 分割最終候補、13 評価情報。

Claims (10)

  1. インタフェース回路の種類に対応付けて、データ転送能力を算出するための算出式が記述されるインタフェース転送能力情報を記憶する記憶部と、
    複数の演算処理の実行を分担する複数の演算機器を接続するインタフェース回路として複数のインタフェース回路の中から指定された指定インタフェース回路の種類に対応する算出式を前記インタフェース転送能力情報から取得し、取得した算出式を用いて、前記指定インタフェース回路のデータ転送能力を算出する転送能力算出部とを有する情報処理装置。
  2. 前記記憶部は、
    インタフェース回路の種類と演算機器の種類との組合せに対応付けて前記算出式が記述されるインタフェース転送能力情報を記憶し、
    前記転送能力算出部は、
    前記指定インタフェース回路の種類と前記複数の演算機器のうちのいずれかの演算機器の種類との組合せに対応する算出式を前記インタフェース転送能力情報から取得する請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、更に、
    前記複数の演算処理の実行を前記複数の演算機器で分担する際に前記複数の演算機器の間で転送されるデータ量を推定し、推定したデータ量を前記指定インタフェース回路を介して転送する際のデータ転送時間を、前記転送能力算出部により算出された前記指定インタフェース回路のデータ転送能力に基づき算出する転送時間算出部を有する請求項1に記載の情報処理装置。
  4. 前記情報処理装置は、更に、
    前記複数の演算機器による前記複数の演算処理の分担パターンを複数生成する分担パターン生成部を有し、
    前記転送時間算出部は、
    分担パターンごとに、前記複数の演算処理の実行を前記複数の演算機器で分担する際に前記複数の演算機器の間で転送されるデータ量を推定し、
    分担パターンごとに、推定したデータ量を前記指定インタフェース回路を介して転送する際のデータ転送時間を算出する請求項3に記載の情報処理装置。
  5. 前記分担パターン生成部は、
    前記複数の演算機器による前記複数の演算処理の分担パターンをハードウェア/ソフトウェア分割により複数生成する請求項4に記載の情報処理装置。
  6. 前記転送能力算出部は、
    取得した算出式にパラメータ値を適用して、前記指定インタフェース回路のデータ転送能力を算出し、
    前記情報処理装置は、更に、
    前記転送時間算出部により算出されたデータ転送時間と、データ転送についての制約時間とを比較する時間比較部と、
    前記時間比較部による比較の結果、前記データ転送時間が前記制約時間以下である場合に、前記パラメータ値を評価情報として出力する評価情報出力部とを有する請求項3に記載の情報処理装置。
  7. 前記転送能力算出部は、
    前記時間比較部による比較の結果、前記データ転送時間が前記制約時間を超える場合に、前記パラメータ値と異なる代替パラメータ値を前記算出式に適用して、前記指定インタフェース回路のデータ転送能力を代替データ転送能力として算出し、
    前記転送時間算出部は、
    前記転送能力算出部により算出された前記代替データ転送能力に基づくデータ転送時間を算出し、
    前記時間比較部は、
    前記転送時間算出部により前記代替データ転送能力に基づいて算出されたデータ転送時間と前記制約時間とを比較する請求項6に記載の情報処理装置。
  8. 前記情報処理装置は、更に、
    分担パターンごとに、前記転送時間算出部により算出されたデータ転送時間と、データ転送についての制約時間とを比較し、データ転送時間が前記制約時間以下である分担パターンを出力する時間比較部を有する請求項4に記載の情報処理装置。
  9. インタフェース回路の種類に対応付けて、データ転送能力を算出するための算出式が記述されるインタフェース転送能力情報を記憶するコンピュータが、
    複数の演算処理の実行を分担する複数の演算機器を接続するインタフェース回路として複数のインタフェース回路の中から指定された指定インタフェース回路の種類に対応する算出式を前記インタフェース転送能力情報から取得し、取得した算出式を用いて、前記指定インタフェース回路のデータ転送能力を算出する情報処理方法。
  10. インタフェース回路の種類に対応付けて、データ転送能力を算出するための算出式が記述されるインタフェース転送能力情報を記憶するコンピュータに、
    複数の演算処理の実行を分担する複数の演算機器を接続するインタフェース回路として複数のインタフェース回路の中から指定された指定インタフェース回路の種類に対応する算出式を前記インタフェース転送能力情報から取得する処理と、取得した算出式を用いて、前記指定インタフェース回路のデータ転送能力を算出する処理とを実行させる情報処理プログラム。
JP2019505641A 2017-03-17 2017-03-17 情報処理装置、情報処理方法及び情報処理プログラム Active JP6580288B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/010856 WO2018167940A1 (ja) 2017-03-17 2017-03-17 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2018167940A1 JPWO2018167940A1 (ja) 2019-07-18
JP6580288B2 true JP6580288B2 (ja) 2019-09-25

Family

ID=63523393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019505641A Active JP6580288B2 (ja) 2017-03-17 2017-03-17 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (3)

Country Link
US (1) US20200004503A1 (ja)
JP (1) JP6580288B2 (ja)
WO (1) WO2018167940A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115022045B (zh) * 2022-06-02 2023-09-19 联通(广东)产业互联网有限公司 一种基于边缘云的数据处理方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057199A (ja) * 1998-08-14 2000-02-25 Toshiba Corp システムの設計支援装置及び設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005234703A (ja) * 2004-02-17 2005-09-02 Sanyo Electric Co Ltd 電子機器開発支援装置、電子機器開発支援方法及び電子機器開発支援プログラム
JP2009294744A (ja) * 2008-06-03 2009-12-17 Nec Electronics Corp バスインターフェース設計装置、バスインターフェース設計方法、及びプログラム

Also Published As

Publication number Publication date
US20200004503A1 (en) 2020-01-02
JPWO2018167940A1 (ja) 2019-07-18
WO2018167940A1 (ja) 2018-09-20

Similar Documents

Publication Publication Date Title
KR102211011B1 (ko) 동적 가변 정밀도 계산
US11012075B2 (en) Electronic system including FPGA and operation method thereof
JP7004712B2 (ja) プログラム可能クロックモニタ
JP5014920B2 (ja) 回路設計方法、ならびにその方法により製造される集積回路
JP6907700B2 (ja) 情報処理装置、マルチスレッド行列演算方法、およびマルチスレッド行列演算プログラム
JP6580288B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6992343B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JP2021515936A (ja) 16ビット浮動小数点乗算器を用いた行列と行列の乗算による複数精度整数乗算器
WO2019023910A1 (zh) 数据处理方法和设备
US20170357744A1 (en) Global routing framework of integrated circuit based on localized routing optimization
KR20180055447A (ko) 데이터 처리 방법 및 장치
JP2022519258A (ja) アンカーデータ要素における特殊値の符号化
JP2016071886A (ja) スケジューラコンピューティング装置、それを含む分散コンピューティングシステムのデータノード、及びその方法
JP6752393B1 (ja) 設計支援システムおよび設計支援プログラム
JP6735951B2 (ja) 高位合成装置、高位合成方法および高位合成プログラム
JP2017072908A (ja) プログラム、情報処理装置及び情報処理方法
WO2018150588A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6266183B2 (ja) 回路設計支援装置および回路設計支援プログラム
Ho et al. NnCore: A parameterized non-linear function generator for machine learning applications in FPGAs
US11630667B2 (en) Dedicated vector sub-processor system
WO2023248309A1 (ja) データ処理装置、データ処理プログラム、及びデータ処理方法
JP5266651B2 (ja) ローカル分岐履歴を用いた分岐予測装置及び分岐予測方法
JP7081331B2 (ja) 回路合成装置、回路合成方法、及び、回路合成プログラム
JP2011003052A (ja) データ処理装置及び制御方法及びプログラム
CN116348883A (zh) 神经网络生成装置、神经网络控制方法以及软件生成程序

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190409

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190409

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190717

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: 20190730

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190827

R150 Certificate of patent or registration of utility model

Ref document number: 6580288

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250