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

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

Info

Publication number
JP6173644B1
JP6173644B1 JP2017510421A JP2017510421A JP6173644B1 JP 6173644 B1 JP6173644 B1 JP 6173644B1 JP 2017510421 A JP2017510421 A JP 2017510421A JP 2017510421 A JP2017510421 A JP 2017510421A JP 6173644 B1 JP6173644 B1 JP 6173644B1
Authority
JP
Japan
Prior art keywords
architecture
candidate
function
unit
candidates
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
Application number
JP2017510421A
Other languages
English (en)
Other versions
JPWO2018066073A1 (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
Application granted granted Critical
Publication of JP6173644B1 publication Critical patent/JP6173644B1/ja
Publication of JPWO2018066073A1 publication Critical patent/JPWO2018066073A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

アーキテクチャ候補生成部は、プログラムコードから抽出された複数の機能モジュールの各々に、各機能モジュールを実現するデバイスとして、プロセッサ及びプロセッサ以外のハードウェアデバイスのうちのいずれかを指定し、各々においてデバイスの組み合わせが異なる、複数の機能を実現するコンピュータアーキテクチャの候補をアーキテクチャ候補として複数生成する。アーキテクチャ候補選択部は、アーキテクチャ候補生成部により生成された複数のアーキテクチャ候補の中から、コンピュータアーキテクチャに要求される要求属性を持つアーキテクチャ候補を選択する。

Description

本発明は、例えば組込みシステムにおけるアーキテクチャ設計を支援する技術に関する。
家電製品や事務機器などで広く利用されているシステムは、一般に、ハードウェアとソフトウェアとから構成されている組込みシステムである。組込みシステムは、ASIC(Application Specific Integrated Circuit)(またはFPGA(Field−Programmable Gate Array))、プロセッサ、メモリ等から構成される。
組込みシステムの設計では、組込みシステム全体の処理機能を記述した仕様を、ASICなどによりハードウェア化する部分、プロセッサで実行されるプログラムとしてソフトウェア化する部分に分割する必要がある。これをソフトウェア/ハードウェア機能分割という。
また、分割された複数の機能を、組込みシステム上にどのように実装すれば所望の性能を出せるかということを検討し設計する必要がある。これをアーキテクチャ設計と呼ぶ。
従来、組込みシステムのアーキテクチャ設計は機能モデルと非機能要件から、演算量や処理の並列性、回路規模などを考慮し、人手で機能を分割し、ソフトウェアとハードウェアデバイスへの分割を行っていた。しかしながら、アーキテクチャ設計を行った時点では、非機能要件を満たす最適なアーキテクチャとなっているか否かを判断することは困難である。このため、実装工程や実機評価工程において非機能要件を満たさないことが発覚する事態が発生し、工程の大幅な手戻りが懸念される。
特許文献1では、この問題に対処するための技術が開示されている。
具体的には、特許文献1では、組込みシステム全体の処理機能を記述した仕様に基づき、各処理の処理負荷を計算し、閾値以内の処理をプロセッサで実行させ、閾値を超える処理をハードウェアデバイスで実行させるソフトウェア/ハードウェア機能分割を行う技術が開示されている。
特開2013−125419号公報
特許文献1の技術では、プロセッサとハードウェアデバイスとの間で機能分割を行う。このため、特許文献1の技術では、プロセッサとハードウェアデバイスとをバス接続したプラットフォームを基にしたアーキテクチャしか生成することができない。つまり、特許文献1の技術では、プロセッサ以外の複数のハードウェアデバイスを組み合わせたプラットフォームといった他のプラットフォームを基にしたアーキテクチャを生成することができないという課題がある。
本発明は、このような課題を解決することを主な目的とする。つまり、本発明は、プロセッサとハードウェアデバイスとの組合せに限らず、多様なアーキテクチャ候補の中から最適なコンピュータアーキテクチャを選択することができる構成を得ることを主な目的とする。
本発明に係る情報処理装置は、
プログラムコードから抽出された複数の機能モジュールの各々に、各機能モジュールを実現するデバイスとして、プロセッサ及び前記プロセッサ以外のハードウェアデバイスのうちのいずれかを指定し、それぞれのデバイスの組み合わせが異なるコンピュータアーキテクチャの候補をアーキテクチャ候補として複数生成するアーキテクチャ候補生成部と、
前記アーキテクチャ候補生成部により生成された複数のアーキテクチャ候補の中から、前記コンピュータアーキテクチャに要求される要求属性を持つアーキテクチャ候補を選択するアーキテクチャ候補選択部とを有する。
本発明では、プロセッサとハードウェアデバイスとの組合せを含む複数のアーキテクチャ候補を生成するため、多様なアーキテクチャ候補の中から最適なコンピュータアーキテクチャを選択することができる。
実施の形態1に係るアーキテクチャ生成装置の機能構成例を示す図。 実施の形態1に係る記憶部で記憶されている情報の例を示す図。 実施の形態1に係るアーキテクチャ生成装置のハードウェア構成例を示す図。 実施の形態1に係るアーキテクチャ生成装置の動作例を示すフローチャート図。 実施の形態1に係るアーキテクチャ生成装置の動作例を示すフローチャート図。 実施の形態1に係る機能モデルソースコードの例を示す図。 実施の形態1に係る機能モデルソースコードの例を示す図。 実施の形態1に係る機能モデルソースコードの例を示す図。 実施の形態1に係る非機能要件情報の例を示す図。 実施の形態1に係る機能モデルベクトルの例を示す図。 実施の形態1に係る非機能要件ベクトルの例を示す図。 実施の形態1に係る機能モジュール情報の例を示す図。 実施の形態1に係るデータ入出力関係情報の例を示す図。 実施の形態1に係るブロック候補の例を示す図。 実施の形態1に係るアーキテクチャ候補の例を示す図。 実施の形態1に係る既存アーキテクチャを用いた機械学習の手順を示すフローチャート図。 実施の形態1に係る機械学習で得られる機能モデルベクトルの例を示す図。 実施の形態1に係る機械学習で得られる非機能要件ベクトルの例を示す図。 実施の形態1に係る機械学習で用いられる既存アーキテクチャの例を示す図。 実施の形態1に係る機械学習で得られるグルーピング結果の例を示す図。 実施の形態1に係る機械学習で得られるグルーピング結果の例を示す図。
実施の形態1.
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分または相当する部分を示す。
***構成の説明***
図1は、実施の形態1に係るアーキテクチャ生成装置100の機能構成例を示す。アーキテクチャ生成装置100は、高位合成装置200及びソフトウェアコンパイラ300に接続されている。
アーキテクチャ生成装置100は、情報処理装置の例である。また、アーキテクチャ生成装置100で行われる動作は情報処理方法の例である。
図2は、アーキテクチャ生成装置100内の記憶部170で記憶されている情報を示す。
図3は、アーキテクチャ生成装置100のハードウェア構成例を示す。
先ず、図3を参照して、アーキテクチャ生成装置100のハードウェア構成例を説明する。
アーキテクチャ生成装置100は、ハードウェアとして、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力装置905及びディスプレイ906を備えるコンピュータである。
補助記憶装置902には、図1に示すソースコード取得部110、解析部120、機能モジュール抽出部130、ブロック候補抽出部140、アーキテクチャ候補抽出部150、性能評価部160及び既存アーキテクチャ情報取得部190の機能を実現するプログラムが記憶されている。
そして、これらプログラムがメモリ903にロードされて、プロセッサ901がこれらプログラムを実行する。当該プログラムを実行することで、プロセッサ901が、後述するソースコード取得部110、解析部120、機能モジュール抽出部130、ブロック候補抽出部140、アーキテクチャ候補抽出部150、性能評価部160及び既存アーキテクチャ情報取得部190の動作を行う。
図1では、プロセッサ901がソースコード取得部110、解析部120、機能モジュール抽出部130、ブロック候補抽出部140、アーキテクチャ候補抽出部150、性能評価部160及び既存アーキテクチャ情報取得部190の機能を実現するプログラムを実行している状態を模式的に表している。
なお、ブロック候補抽出部140、アーキテクチャ候補抽出部150及び性能評価部160の機能を実現するプログラムは、情報処理プログラムの例である。
また、補助記憶装置902は、図1に示す記憶部170として機能する。すなわち、補助記憶装置902は、図2に示す情報を記憶している。また、メモリ903が、図1に示す記憶部170として機能してもよい。すなわち、メモリ903が、図2に示す情報を記憶するようにしてもよい。
通信装置904は、アーキテクチャ生成装置100が外部装置と通信する際に用いられる。通信装置904は、データを受信するレシーバー及びデータを送信するトランスミッターを含む。
入力装置905は、アーキテクチャ生成装置100のユーザが各種情報をアーキテクチャ生成装置100に入力するために用いられる
ディスプレイ906は、アーキテクチャ生成装置100のユーザに各種情報を提示するために用いられる。
次に、図1を参照して、アーキテクチャ生成装置100の機能構成例を説明する。
ソースコード取得部110は、機能モデルソースコード171及び非機能要件情報172を入力装置905を介してユーザから取得する。
機能モデルソースコード171及び非機能要件情報172はアーキテクチャ生成装置100のユーザが生成する。
また、ソースコード取得部110は、取得した機能モデルソースコード171と非機能要件情報172とを、記憶部170に格納する。図2は、ソースコード取得部110により機能モデルソースコード171と非機能要件情報172とが格納された状態を示す。
機能モデルソースコード171は、アーキテクチャ設計の対象となる組込みシステムの複数の機能が記述されているプログラムコードである。
ソースコード取得部110は、例えば図6、図7及び図8に示す機能モデルソースコード171を取得する。なお、図6、図7及び図8に示す機能モデルソースコード171の詳細は後述する。
非機能要件情報172には、機能モデルソースコード171に記述されている機能に要求される属性(要求属性)である非機能要件が記述される。非機能要件情報172には、例えば、処理性能に関する要件及び回路規模に関する要件が記述される。
ソースコード取得部110は、例えば図9に示す非機能要件情報172を取得する。なお、図9に示す非機能要件情報172の詳細は後述する。
解析部120は、機能モデルソースコード171を関数などの最小構成単位で分割し、最小構成単位ごとに演算子の数、分岐の数等を解析し、解析結果を示す機能モデルベクトル173を生成する。
解析部120は、例えば、図10に示す機能モデルベクトル173を生成する。なお、図10に示す機能モデルベクトル173の詳細は後述する。
また、解析部120は、非機能要件情報172を関数などの最小構成単位で分割し、非機能要件ベクトル174を生成する。
解析部120は、例えば、図11に示す非機能要件ベクトル174を生成する。なお、図11に示す非機能要件ベクトル174の詳細は後述する。
また、解析部120は、生成した機能モデルベクトル173と非機能要件ベクトル174を記憶部170に格納する。図2は、解析部120により機能モデルベクトル173と非機能要件ベクトル174が記憶部170に格納されている状態を示す。
機能モジュール抽出部130は、機能モデルベクトル173と非機能要件ベクトル174と抽出ルール175とを記憶部170から読み出す。
抽出ルール175は、機能モデルソースコード171から機能モジュールを抽出するためのルールである。抽出ルール175は、機械学習により得られたルールである。
機能モジュールとは、機能モデルソースコード171を構成する要素の集合である。機能モジュールには、機能モデルソースコード171で実現される複数の機能のうちの少なくとも1つの機能が含まれる。機能は、例えば、機能モデルソースコード171内のforループブロックで実現される動作である。つまり、1つのforループブロックに記述されている内容を1つの機能として捉えることができる。但し、どのような範囲を1つの機能と定義するかはアーキテクチャ生成装置100のユーザに委ねられている。例えば、1つの関数を1つの機能として定義してもよい。
本実施の形態では、機能モジュール抽出部130は、抽出ルール175に基づいて、機能モデルソースコード171の要素をグルーピングすることで機能モジュールを抽出する。
また、機能モジュール抽出部130は、機能モジュールの抽出結果を示す機能モジュール情報176を生成する。
例えば、機能モジュール抽出部130は、図12に示す機能モジュール情報176を生成する。図12に示す機能モジュール情報176の詳細は後述する。
また、機能モジュール抽出部130は、機能モデルベクトル173に基づき、機能モジュール情報176に示される機能モジュール間のデータの入出力関係を解析し、解析結果が示されるデータ入出力関係情報177を生成する。
例えば、機能モジュール抽出部130は、図13に示すデータ入出力関係情報177を生成する。図13に示すデータ入出力関係情報177の詳細は後述する。
ブロック候補抽出部140は、機能モジュールごとにブロック候補を抽出する。
より具体的には、ブロック候補抽出部140は、機能モジュール抽出部130により得られた複数の機能モジュールの各々に、ブロックテンプレート178に基づき、各機能モジュールを実現するデバイスとして、プロセッサ及びプロセッサ以外のハードウェアデバイスのうちのいずれかを指定する。なお、ブロック候補抽出部140が各機能モジュールに割り当てるデバイスをブロック候補という。また、ブロック候補抽出部140は、各ブロック候補の性能及び回路規模を見積り、非機能要件情報172の非機能要件に合致しないブロック候補を除外する。つまり、ブロック候補抽出部140は、機能モジュールごとに、各機能モジュールに要求される要求属性を持つプロセッサ又はハードウェアデバイスをブロック候補として指定する。
そして、ブロック候補抽出部140は、機能モジュールごとのブロック候補の抽出結果が示されるブロック候補抽出結果179を生成する。
なお、ブロック候補抽出部140は、後述のアーキテクチャ候補抽出部150とともにアーキテクチャ候補生成部の例である。
また、ブロック候補抽出部140で行われる処理は、アーキテクチャ候補生成処理を構成する。
アーキテクチャ候補抽出部150は、ブロック候補抽出結果179及びデータ入出力関係情報177に基づき、アーキテクチャ候補を抽出する。
つまり、アーキテクチャ候補抽出部150は、機能モデルソースコード171に含まれる複数の機能を実現するコンピュータアーキテクチャの候補、すなわち、組込みシステムのアーキテクチャの候補をアーキテクチャ候補として複数生成する。なお、各アーキテクチャ候補では、ブロック候補の組み合わせが異なる。
そして、ブロック候補抽出部140は、抽出したアーキテクチャ候補が示されるアーキテクチャ候補抽出結果180を生成する。
アーキテクチャ候補抽出部150は、ブロック候補抽出部140とともにアーキテクチャ候補生成部の例である。
また、アーキテクチャ候補抽出部150で行われる処理は、アーキテクチャ候補生成処理を構成する。
性能評価部160は、アーキテクチャ候補抽出結果180に示される各アーキテクチャ候補の性能評価を行う。そして、性能評価部160は、アーキテクチャ候補抽出部150により抽出された複数のアーキテクチャ候補の中から、組込みシステムのアーキテクチャに要求される要求属性を持つアーキテクチャ候補を選択する。
より具体的には、性能評価部160は、アーキテクチャ候補が非機能要件情報172に示される非機能要件を満たすかどうか判定し、非機能要件を満たすアーキテクチャ候補を選択する。そして、性能評価部160は、選択したアーキテクチャ候補が示されるアーキテクチャ候補選択結果181を生成する。
また、性能評価部160は、非機能要件(要求属性)を満たすアーキテクチャ候補が存在しない場合は、非機能要件を満たさないが、ブロック候補抽出部140が生成した複数のアーキテクチャ候補の中で最も非機能要件に近い属性を持つアーキテクチャ候補を近似アーキテクチャ候補として選択する。
そして、性能評価部160は、選択した近似アーキテクチャ候補の属性と非機能要件(要求属性)との差分をブロック候補抽出部140に通知する。
性能評価部160は、アーキテクチャ候補選択部の例である。
また、性能評価部160で行われる処理は、アーキテクチャ候補選択処理の例である。
既存アーキテクチャ情報取得部190は、設計済みのアーキテクチャの情報である既存アーキテクチャ情報182を入力装置905を介してユーザから取得する。そして、既存アーキテクチャ情報取得部190は、既存アーキテクチャ情報182を記憶部170に格納する。
既存アーキテクチャ情報182は、抽出ルール175を生成するために使用する。
また、アーキテクチャ生成装置100は、高位合成装置200と連携して動作する。
高位合成装置200は、RTL(Register Transfer Level)よりも抽象度が高いC言語、C++言語、SystemC言語などの高級言語を用いて、自動的にRTLを生成する。
高位合成装置200は、具体的には市販されている高位合成ツールにより実現可能である。
アーキテクチャ生成装置100は、ソフトウェアコンパイラ300と連携して動作する。
ソフトウェアコンパイラ300は、C言語等で書かれたソースコードからターゲットの組込みシステムのプロセッサで実行可能なバイナリファイルを出力する。
ソフトウェアコンパイラ300は、具体的には市販されているコンパイラにより実現可能である。
***動作の説明***
次に、図4及び図5を参照して、本実施の形態に係るアーキテクチャ生成装置100の動作例を説明する。
先ず、ステップS110において、ソースコード取得部110が、機能モデルソースコード171と非機能要件情報172をユーザから取得する。そして、ソースコード取得部110は、取得した機能モデルソースコード171と非機能要件情報172を記憶部170に格納する。
機能モデルソースコード171は、組込みシステムの処理機能/システム構成をプログラム言語(C言語など)で記述したプログラムコードである。
図6、図7及び図8は、機能モデルソースコード171の例を示す。作図上の理由から機能モデルソースコード171は図6、図7及び図8に分割されているが、機能モデルソースコード171は図6、図7及び図8の記述内容から構成される1つのプログラムコードである。
機能モデルソースコード171は、図6、図7及び図8に示すように一般的なプログラムと同一だが、システムの外部入力/出力に対応する変数は/*external_input*/,/*external_output*/と指定されている。
なお、図6、図7及び図8において、DIV0〜DIV7は、それぞれ組込みシステムにおいて実現される機能を表す。以下、機能DIV0−DIV7を区別する必要がない場合は、機能DIV0−DIV7を機能DIVxと総称する。
図9に示されるように、非機能要件情報172には、非機能要件として、処理性能制約及び回路規模制約が記述される。
処理性能制約は、機能モデルソースコード171内の特定の機能の処理から別の特定の機能の処理が制限時間Tth[s]以内に完了するという制約である。図9の例では、機能DIV0からDIV4までの処理が100μs以内に完了するという処理性能制約Tth0と、機能DIV5からDIV7までの処理が50μs以内に完了するという処理性能制約Tth1とが記述されている。
また、回路規模制約は、機能モデルソースコードにより実現される組込みシステムの全体の回路規模がAth[Gate]以内という制約である。図9の例では、組込みシステムの全体の回路規模が10,000KGであるという回路規模制約Ath0が記述されている。
なお、非機能要件情報172には、処理性能制約及び回路規模制約以外の非機能要件が記述されていてもよい。
図4のステップS120において、解析部120は、機能モデルソースコード171から機能モデルベクトル173を生成する。
より具体的には、解析部120は、機能モデルソースコード171を最小分割単位で分割する。本実施の形態では、解析部120は、機能モデルソースコード171を、図6、図7及び図8に示す機能DIV0−DIV7に分割する。
次に、解析部120は、機能モデルソースコード171に含まれる演算子の数、分岐の数、ループの数、変数の数及びデータの入出力数の少なくともいずれかの数値パラメータを機能DIVxごとに解析して、機能モデルベクトル173を生成する。
ここでは、解析部120は、機能モデルソースコード171に含まれる演算子の数、分岐の数、ループの数、中間変数の数及びデータの入出力数を機能DIVxごとに解析して、機能モデルベクトル173を生成することとする。
解析部120は、例えば、以下の手法で、各パラメータを抽出する。
(1)演算子数
解析部120は、機能DIVxに含まれる“+”、“−”、“×”、“−”の個数を求める。なお、機能DIVxにwhile、forなどの繰返し処理がある場合は、解析部120は演算子ごとに繰り返し回数×個数を求める。
(2)分岐数
解析部120は、機能モデルソースコード171に含まれるif/else if/elseの個数を求める。また、解析部120は、機能モデルソースコード171にswitchがある場合はcaseの個数の合計値を求める。
(3)ループ数
解析部120は、機能DIVxの最も外側のforループの回数を求める。
(4)中間変数個数
解析部120は、機能DIVxに含まれる中間変数の個数を求める。また、解析部120は、機能DIVx以外の機能で参照も代入もされていない変数の個数を求める。
(5)組込みシステム外部からの入力数
解析部120は、機能DIVx内で/*external_input*/で指定された変数が参照される回数の合計値を求める。
(6)組込みシステム外部への出力数
解析部120は、機能DIVx内で/*external_output*/で指定された変数に代入される回数の合計値を求める。
(7)他の機能からの入力数
解析部120は、機能DIVx内で参照されている変数の数を求める。なお、機能DIVx内に中間変数以外の変数がある場合は、解析部120は、機能モデルソースコード171で機能DIVxよりも上に記載されている機能において最後に代入されている機能DIVxからの入力数も計上する。
(8)他の機能への出力数
解析部120は、機能DIVx内で参照している変数の数を求める。なお、機能DIVx内に中間変数以外の変数がある場合は、解析部120は、機能モデルソースコード171で機能DIVxよりも下に記載されている機能DIVx+nが機能DIVxを参照している個数も計上する。
図10は、解析部120により生成された機能モデルベクトル173の例を示す。
図10の機能モデルベクトル173では、機能DIV0−DIV7の各々に対して、演算子(+、―、*、/、=)の数、分岐の数、ループの数、中間変数の数及びデータの入出力数が示される。
なお、入力の欄では、列に入力元の機能が記述され、行に入力先の機能が記述される。また、出力の欄では、列に出力先の機能が記述され、行に出力元の機能が記述される。図10の例では、外部から機能DIV0にデータが渡される。また、機能DIV0から機能DIV1にデータが渡される。また、機能DIV1から機能DIV2及び機能DIV3にデータが渡される。また、機能DIV2から機能DIV4にデータが渡される。また、機能DIV3から機能DIV4及び機能DIV6にデータが渡される。また、機能DIV4から機能DIV5にデータが渡される。また、機能DIV5から機能DIV6にデータが渡される。また、機能DIV6から機能DIV7にデータが渡される。また、機能DIV7から外部にデータが渡される。
なお、本実施の形態では、機能DIVx、すなわち、forループブロックを最小分割単位としたが、最小分割単位はこの限りではなく、最下層の関数、行を最小分割単位とすることもできる。
次に、図4のステップS121において、解析部120が、非機能要件情報172から非機能要件ベクトル174を生成する。
より具体的には、解析部120は、非機能要件情報172から機能DIVxに対して定義されている制約値を抽出し、抽出した制約値を用いて非機能要件ベクトル174を生成する。
図9に示す非機能要件情報172が与えられた場合は、解析部120は、図11に示すような非機能要件ベクトル174を生成する。例えば処理性能制約Tth0は、機能DIV0―DIV4に対して定義されている非機能要件である。このため、解析部120は、機能DIV0〜DIV4に100μsを設定して非機能要件ベクトル174を生成する。一方、解析部120は、機能DIV5〜DIV7には0を設定する。回路規模制約Athは組込みシステム全体に対する非機能要件であるため、解析部120は、機能DIV0−DIV7のすべてに10,000KGを設定する。また、非機能要件フィードバック情報は性能評価部160にフィードバック入力される情報であるが、初期値は非機能要件情報の値と同一とする。
次に、ステップS130において、機能モジュール抽出部130は、機能DIVxをグルーピングし、機能モジュール情報176を生成する。
より具体的には、機能モジュール抽出部130は、機能モデルベクトル173と非機能要件ベクトル174に抽出ルール175を適用して、機能モデルソースコード171に含まれる複数の機能DIVxを複数の機能モジュールにグルーピングする。そして、機能モジュール抽出部130は、グルーピング結果を示す機能モジュール情報176を生成する。
図12に機能モジュール抽出部130によって生成される機能モジュール情報176の例を示す。
図12の例では、機能DIV0、機能DIV1及び機能DIV2は、機能モジュール0に分類されている。機能DIV3は、機能モジュール1に分類されている。機能DIV4及び機能DIV5は、機能モジュール2に分類されている。機能DIV6及び機能DIV7は、機能モジュール3に分類されている。
次に、ステップS131において、機能モジュール抽出部130は、機能モジュール間のデータの入出力関係を解析し、解析結果が示されるデータ入出力関係情報177を生成する。
より具体的には、機能モデルベクトル173に示される機能ごとのデータの入力状況及び出力状況を解析して、機能モジュール情報176に示される機能モジュール間のデータの入出力関係を解析する。
図13の(a)に、データ入出力関係情報の例を示す。また、図13(b)は、図13の(a)のデータ入出力関係情報に示される内容を図式化したものである。
次に、ステップS140において、ブロック候補抽出部140が、機能モジュールに対応するブロック候補を抽出する。
より具体的には、ブロック候補抽出部140は、機能モジュールごとに、ブロックテンプレート178に含まれる複数のブロックのうち、機能モジュールに対応するブロックをブロック候補として抽出する。
ブロックテンプレート178には、ソフトウェアを実行するプロセッサ、ASIC、FPGA等の専用ハードウェアデバイスがブロックとして含まれている。
ブロックテンプレート178には以下の情報が含まれる。なお、以下において、S/Wはソフトウェアを意味し、H/Wはハードウェアを意味する。
(1)処理タイプ:S/W、H/W(パイプライン)、H/W(並列)、H/W(逐次実行)
(2)通信タイプ:バス、直接接続
(3)メモリタイプ:内部メモリ、外部メモリ(揮発)、外部メモリ(不揮発)
上記の(1)処理タイプは、機能モジュールを実現するデバイスを、ソフトウェアを実行するプロセッサとするか、専用H/Wとするかを決定するためのパラメータである。また、(1)処理タイプには、専用H/Wの種類として、例えば、パイプライン処理が行われるH/W、並列処理が行われるH/W、逐次処理が行われるH/Wが定義される。
ブロック候補抽出部140は、データ入出力関係情報177に示される機能モジュールごとの入出力関係を解析して、各機能モジュールに対応する全てのブロックをブロック候補として抽出する。
例えば、図13では、機能モジュール0は、外部(AXIスレーブ)からデータが入力されるが、ブロック候補抽出部140は、機能モジュール0に対して、AXIスレーブとのインタフェースを有するデバイスを全てをブロック候補として抽出する。
図14は、機能モジュール0に対してブロック候補抽出部140により抽出されたブロック候補の例を示す。
図14では、ブロック候補0−0、ブロック候補0−1、ブロック候補0−2が抽出されている。
次に、ステップS141において、ブロック候補抽出部140は、ステップS140で抽出した複数のブロック候補から、非機能要件情報172に示される非機能要件を満たすブロック候補を選択する。そして、ブロック候補抽出部140は、選択したブロック候補が示されるブロック候補抽出結果179を生成する。
より具体的には、ブロック候補抽出部140は、ステップS140で抽出した複数のブロック候補のうち、処理タイプがH/Wであるブロック候補は、高位合成装置200によって高位合成を行う。ブロック候補抽出部140は、高位合成装置200の高位合成により処理性能や回路規模などのブロック候補の性能を得る。そして、ブロック候補抽出部140は、高位合成により得られた性能が非機能要件情報172の非機能要件を満たすか否かをブロック候補ごとに判定する。ブロック候補抽出部140は、性能が非機能要件を満たすブロック候補を選択し、選択したブロック候補が示されるブロック候補抽出結果179を生成する。
また、ブロック候補抽出部140は、ステップS140で抽出した複数のブロック候補のうち、処理タイプがS/Wであるブロック候補は、ソフトウェアコンパイラ300によって高位合成を行う。ブロック候補抽出部140は、ソフトウェアコンパイラ300の高位合成により、命令実行数とクロック数を得る。そして、ブロック候補抽出部140は、実行命令数×クロック数から処理性能を算出する。ブロック候補抽出部140は、算出した処理性能の非機能要件を満たすか否かをブロック候補ごとに判定する。ブロック候補抽出部140は、性能が非機能要件を満たすブロック候補を選択し、選択したブロック候補が示されるブロック候補抽出結果179を生成する。
次に、ステップS150において、アーキテクチャ候補抽出部150が、ステップS141で選択されたブロック候補を接続してアーキテクチャ候補を抽出し、アーキテクチャ候補が示されるアーキテクチャ候補抽出結果180を生成する。
より具体的には、アーキテクチャ候補抽出部150は、データ入出力関係情報177に示される入出力関係に従って、ブロック候補抽出結果179に示されるブロック候補を接続する。この際、アーキテクチャ候補抽出部150は、各ブロック候補の通信タイプに矛盾がないようにブロック候補を接続する。アーキテクチャ候補抽出部150は、例えば、通信タイプがバスタイプのブロック候補はバスに接続する。
図15にアーキテクチャ候補の例を示す。
図15の例では、機能モジュール0に対して、ブロック候補0−0、ブロック候補0−1、ブロック候補0−2が選択されている。また、機能モジュール1に対して、ブロック候補1−0、ブロック候補1−1、ブロック候補1−2が選択されている。また、機能モジュール2に対して、ブロック候補2−0、ブロック候補2−1、ブロック候補2−2が選択されている。また、機能モジュール3に対して、ブロック候補3−0、ブロック候補3−1、ブロック候補3−2が選択されている。なお、図15では、作図上の理由から、「ブロック候補」は単に「ブロック」と表記している。
また、図15では、作図上の理由から、アーキテクチャ候補は2つしか図示していないが、アーキテクチャ候補抽出部150は、通信タイプに矛盾が生じないブロック候補の組み合わせの全てに対応するアーキテクチャ候補を抽出する。
このように、アーキテクチャ候補抽出部150は、それぞれのブロック候補の組み合わせが異なる複数のアーキテクチャ候補を抽出する。
次に、ステップS160において、性能評価部160が、各アーキテクチャ候補の性能を評価する。
より具体的には、性能評価部160は、アーキテクチャ候補抽出結果180の各アーキテクチャ候補においてソフトウェア/ハードウェア協調シミュレーションを実行して、各アーキテクチャ候補の性能(例えば、処理性能及び回路規模)を得る。
そして、ステップS161において、性能評価部160は、ソフトウェア/ハードウェア協調シミュレーションにより得られた性能が非機能要件情報172の非機能要件を満たすか否かをアーキテクチャ候補ごとに判定する。
非機能要件を満たす性能をもつアーキテクチャ候補がある場合(ステップS161でYES)は、性能評価部160は、ステップS162において、非機能要件を満たす性能をもつアーキテクチャ候補をアーキテクチャ候補抽出結果180から選択する。そして、性能評価部160は、選択したアーキテクチャ候補が示されるアーキテクチャ候補選択結果181を生成する。
次に、ステップS163において、性能評価部160は、ステップS162で生成したアーキテクチャ候補選択結果181を例えばディスプレイ906に出力する。
そして、アーキテクチャ生成装置100は、処理を終了する。
一方、非機能要件を満たす性能をもつアーキテクチャ候補が存在しない場合(ステップS161でNO)は、性能評価部160は、ステップS164において、性能と非機能要件との差が最小のアーキテクチャ候補である近似アーキテクチャ候補を選択する。
より具体的には、性能評価部160は、ステップS160で得られた性能と非機能要件情報172の制約値との差の絶対値をアーキテクチャ候補ごとに算出し、算出した絶対値の合計値が最小となるアーキテクチャ候補を近似アーキテクチャ候補として選択する。
ここでは、図9に示すように、非機能要件として処理性能制約Tthと回路規模制約Athが与えられている場合を想定する。また、アーキテクチャ候補抽出結果180に記述されているアーキテクチャ候補がN個(N≧2)あり、アーキテクチャ候補x(xは1からN)の処理性能を処理性能Txとし、アーキテクチャ候補xの回路規模を回路規模Axとする。性能評価部160は、|Tth−Tx|+|Ath−Ax|の値が最小となるアーキテクチャ候補xを近似アーキテクチャ候補として選択する。
次に、ステップS165において、性能評価部160は、ステップS164で選択した近似アーキテクチャ候補の性能と制約値との差分を機能モジュール抽出部130に通知する。
つまり、性能評価部160は、ステップS164で選択したアーキテクチャ候補xの前述の|Tth−Tx|と|Ath−Ax|とを機能モジュール抽出部130に通知する。
次に、機能モジュール抽出部130がステップS130において、ステップS165で性能評価部160から通知された差分(例えば、|Tth−Tx|と|Ath−Ax|)で非機能要件ベクトル174の非機能要件フィードバック情報の値を更新する。そして、機能モジュール抽出部130は、更新後の非機能要件フィードバック情報を用いて、例えば、教師つき学習のアルゴリズムまたは回帰分析のアルゴリズムに基づく機械学習を行い、抽出ルール175を変更する。そして、機能モジュール抽出部130は、変更後の抽出ルール175を用いて機能モデルソースコード171に含まれる機能DIV0−DIV7をグルーピングして新たな機能モジュールを得る。
以降は、新たな機能モジュールに対してステップS131以降の処理が行われる。
ここで、図16を参照して、機能モジュール抽出部130が機械学習によって抽出ルール175を生成する手順を説明する。
なお、以下では、機能モジュール抽出部130が、設計済みの既存アーキテクチャが示される既存アーキテクチャ情報182を用いて機械学習(Deep Learning等)を行って抽出ルール175を生成する手順を示す。
なお、既存アーキテクチャは、例えば設計者が手作業により設計したアーキテクチャである。
ここでは、図19に示すアーキテクチャを既存アーキテクチャとする。
また、既存アーキテクチャが設計されている組込みシステムを既存組込みシステムという。
図19に示すように、既存組込みシステムには、機能DIV0−DIV3が含まれているものとする。
図19の既存アーキテクチャでは、機能DIV0が機能モジュール0に分類されている。また、機能DIV1が機能モジュール1に分類されている。また、機能DIV2と機能DIV3とが機能モジュール2に分類されている。また、機能モジュール0がプロセッサ0により実現され、機能モジュール1が専用ハードウェアで実現され、機能モジュール2がプロセッサ1により実現される。また、プロセッサ0、プロセッサ1、専用ハードウェアはそれぞれバスに接続しており、また、専用ハードウェアとプロセッサ1とは相互に直接接続している。
以下では、機能DIV0−DIV3を区別する必要がない場合は、機能DIV0−DIV3を機能DIVxと総称する。
図16のステップS111において、ソースコード取得部110が機能モデルソースコード171と非機能要件情報172を取得する。ステップS111で取得する機能モデルソースコード171と非機能要件情報172は、既存組込みシステムの機能モデルソースコード171と非機能要件情報172である。
なお、ステップS111における取得手順は図4のステップS110で説明したものと同じであるため、ステップS111における取得手順についての説明は省略する。
次に、ステップS190において、既存アーキテクチャ情報取得部190が既存組込みシステムの既存アーキテクチャ情報182を取得し、記憶部170に既存アーキテクチャ情報182を格納する。
既存アーキテクチャ情報182には、図19に示すように、以下の情報が含まれる。
(1)既存組込みシステムの機能モデルソースコード171に含まれる機能のグルーピング結果を示す情報(機能モジュール情報176に相当する情報)
(2)既存アーキテクチャにおけるブロック構成とブロック間の接続に関する情報(アーキテクチャ候補抽出結果180に相当する情報)
次に、ステップS122において、解析部120が、ステップS111で取得された既存組込みシステムの機能モデルソースコード171から機能モデルベクトル173を生成する。
なお、ステップS122における機能モデルベクトル173の生成手順は、図4のステップS120で説明したものと同じであるため、説明を省略する。
図17は、ステップS122で生成される機能モデルベクトル173の例を示す。
次に、ステップS123において、解析部120は、ステップS111で取得された既存組込みシステムの非機能要件情報172から非機能要件ベクトル174を生成する。
なお、ステップS123における非機能要件ベクトル174の生成手順は、図4のステップS121で説明したものと同じであるが、非機能要件フィードバック情報は機械学習では使用しないため、解析部120は、非機能要件フィードバック情報の値は全て0とする。
図18は、ステップS123で生成される非機能要件ベクトル174の例を示す。
次に、ステップS132において、機能モジュール抽出部130が、抽出ルール175に基づき、既存組込みシステムの機能DIVxをグルーピングし、機能モジュール情報176を生成する。なお、ステップS132における機能モジュール情報176の生成手順は、図4のステップS130で説明したものと同じであるため、説明を省略する。
次に、S133において、機能モジュール抽出部130は、ステップS132で得られたグルーピング結果と既存アーキテクチャ情報182に含まれるグルーピング結果とが等しいか否かを判定する。
そして、グルーピング結果が等しい場合(ステップS133でYES)は、機能モジュール抽出部130は処理を終了する。
例えば、ステップS132において図20に示す得られたグルーピング結果が得られている場合は、図19に示すグルーピング結果と等しいため、機能モジュール抽出部130は処理を終了する。
一方、グルーピング結果が一致しない場合(ステップS133でNO)は、ステップS134において、機能モジュール抽出部130は、既存アーキテクチャ情報182に格納された既存アーキテクチャのグルーピング結果(ベクトル)を正解とし、ステップS132で生成した機能モジュール情報176のグルーピング結果(ベクトル)との誤差を計算する。
そして、機能モジュール抽出部130は、一般的な教師つき学習のアルゴリズムまたは回帰分析のアルゴリズムに基づき、計算した誤差を用いて、抽出ルール175を更新する。
ステップS134の後、機能モジュール抽出部130は、ステップS132において、更新後の抽出ルール175を用いて機能DIVxをグルーピングして、新たな機能モジュール情報176を生成する。以降は、グルーピング結果が一致するまでステップS133、ステップS134及びステップS132が繰り返される。
例えば、ステップS132で生成した機能モジュール情報176のグルーピング結果が図21に示すものであれば、機能モジュール抽出部130は、機械学習により、図20に示すグルーピング結果が得られるように抽出ルール175を変更する。
図17に示す機能モデルベクトル173からは、機能DIV1と機能DIV2はともに機能DIV0からデータが入力されるため、機能DIV1と機能DIV2が並列に実行可能である。また、演算子の数の差から機能DIV1と機能とDIV2では機能DIV1の方が処理量が多いことが予測される。このため、機能DIV1に単一のデバイスを割当て、機能DIV2と機能DIV3とがデバイスを共有することで、回路規模を小さくすることができる。
機能モジュール抽出部130は、このように、機能モデルベクトル173に記述されるパラメータから読み取れる関係性を解析する。そして、機能モジュール抽出部130は、解析結果から、抽出ルール175により得られるグルーピング結果と正解のグルーピング結果との誤差が小さくなるように機械学習パラメータを制御する。このようにすることで、機能モジュール抽出部130は、設計者が手作業により生成するアーキテクチャと同じアーキテクチャを獲得可能な抽出ルール175を生成することができる。
また、機能モジュール抽出部130が複数の既存アーキテクチャを学習することで、抽出ルール175は汎化され、既存アーキテクチャのない機能モデルと非機能要件を与えた際にも適切なグルーピングが可能になる。
***実施の形態の効果の説明***
以上、本実施の形態では、プロセッサとハードウェアデバイスとの組合せを含む複数のアーキテクチャ候補を生成するため、多様なアーキテクチャ候補の中から設計対象の組込みシステムに最適なコンピュータアーキテクチャを選択することができる。
また、本実施の形態によれば、設計者が組み込みシステム全体の処理機能を記述した仕様を基に非機能要件を満たすプラットフォームの検討を行わずとも、アーキテクチャ生成装置100に組込みシステム全体の処理機能を記述した仕様と非機能要件を入力することで、非機能要件を満たす組込みシステムのアーキテクチャを選択することができる。
なお、本発明は、本実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
例えば、アーキテクチャ生成装置100の機能構成は図1と異なる機能構成であっても構わない。
また、アーキテクチャ生成装置100の動作手順は図4及び図5に示したものと異なっていてもよい。
***ハードウェア構成の説明***
最後に、アーキテクチャ生成装置100のハードウェア構成の補足説明を行う。
図3に示すプロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ901は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
補助記憶装置902は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
メモリ903は、RAM(Random Access Memory)である。
通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
また、補助記憶装置902には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901により実行される。
プロセッサ901はOSの少なくとも一部を実行しながら、ソースコード取得部110、解析部120、機能モジュール抽出部130、ブロック候補抽出部140、アーキテクチャ候補抽出部150、性能評価部160及び既存アーキテクチャ情報取得部190の機能を実現するプログラムを実行する。
プロセッサ901がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、ソースコード取得部110、解析部120、機能モジュール抽出部130、ブロック候補抽出部140、アーキテクチャ候補抽出部150、性能評価部160及び既存アーキテクチャ情報取得部190の処理の結果を示す情報やデータや信号値や変数値が、補助記憶装置902、メモリ903、プロセッサ901内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、ソースコード取得部110、解析部120、機能モジュール抽出部130、ブロック候補抽出部140、アーキテクチャ候補抽出部150、性能評価部160及び既存アーキテクチャ情報取得部190の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
また、ソースコード取得部110、解析部120、機能モジュール抽出部130、ブロック候補抽出部140、アーキテクチャ候補抽出部150、性能評価部160及び既存アーキテクチャ情報取得部190の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、アーキテクチャ生成装置100は、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC、FPGAといった電子回路により実現されてもよい。
この場合は、ソースコード取得部110、解析部120、機能モジュール抽出部130、ブロック候補抽出部140、アーキテクチャ候補抽出部150、性能評価部160及び既存アーキテクチャ情報取得部190は、それぞれ電子回路の一部として実現される。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
100 アーキテクチャ生成装置、110 ソースコード取得部、120 解析部、130 機能モジュール抽出部、140 ブロック候補抽出部、150 アーキテクチャ候補抽出部、160 性能評価部、170 記憶部、171 機能モデルソースコード、172 非機能要件情報、173 機能モデルベクトル、174 非機能要件ベクトル、175 抽出ルール、176 機能モジュール情報、177 データ入出力関係情報、178 ブロックテンプレート、179 ブロック候補抽出結果、180 アーキテクチャ候補抽出結果、181 アーキテクチャ候補選択結果、182 既存アーキテクチャ情報、190 既存アーキテクチャ情報取得部、200 高位合成装置、300 ソフトウェアコンパイラ、901 プロセッサ、902 補助記憶装置、903 メモリ、904 通信装置、905 入力装置、906 ディスプレイ。

Claims (5)

  1. プログラムコードから抽出された複数の機能モジュールの各々に、各機能モジュールを実現するデバイスとして、プロセッサ及び前記プロセッサ以外のハードウェアデバイスのうちのいずれか指定し、前記複数の機能モジュールを実現するデバイスの組み合わせが異なるコンピュータアーキテクチャの候補をアーキテクチャ候補として複数生成するアーキテクチャ候補生成部と、
    前記アーキテクチャ候補生成部により生成された複数のアーキテクチャ候補の中、前記コンピュータアーキテクチャに要求される要求属性を持つアーキテクチャ候補が存在しない場合に、前記要求属性を満たさないが、前記複数のアーキテクチャ候補の中で最も要求属性に近い属性を持つアーキテクチャ候補を近似アーキテクチャ候補として選択するアーキテクチャ候補選択部と
    既定の抽出ルールを用いて前記プログラムコードから前記複数の機能モジュールを抽出する機能モジュール抽出部とを有し、
    前記アーキテクチャ候補選択部は、
    前記近似アーキテクチャ候補の属性と前記要求属性との差分を前記機能モジュール抽出部に通知し、
    前記機能モジュール抽出部は、
    前記アーキテクチャ候補選択部から通知された前記差分に基づき、前記抽出ルールを変更し、変更後の抽出ルールを用いて前記プログラムコードから新たな複数の機能モジュールを抽出する情報処理装置。
  2. 前記アーキテクチャ候補生成部は、
    機能モジュールごとに、各機能モジュールに要求される要求属性を持つプロセッサ又はハードウェアデバイス指定する請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、更に、
    前記プログラムコードに含まれる演算子の数、分岐の数、ループの数、変数の数及びデータの入出力数の少なくともいずれかを処理ごとに解析する解析部を有し、
    前記機能モジュール抽出部は、
    前記解析部による処理ごとの解析結果に前記抽出ルールを適用して、前記複数の機能モジュールを抽出する請求項に記載の情報処理装置。
  4. コンピュータが、プログラムコードから抽出された複数の機能モジュールの各々に、各機能モジュールを実現するデバイスとして、プロセッサ及び前記プロセッサ以外のハードウェアデバイスのうちのいずれか指定し、前記複数の機能モジュールを実現するデバイスの組み合わせが異なるコンピュータアーキテクチャの候補をアーキテクチャ候補として複数生成し、
    前記コンピュータが、生成された複数のアーキテクチャ候補の中、前記コンピュータアーキテクチャに要求される要求属性を持つアーキテクチャ候補が存在しない場合に、前記要求属性を満たさないが、前記複数のアーキテクチャ候補の中で最も要求属性に近い属性を持つアーキテクチャ候補を近似アーキテクチャ候補として選択し、
    前記コンピュータが、前記近似アーキテクチャ候補の属性と前記要求属性との差分に基づき、既定の抽出ルール変更し、変更後の抽出ルールを用いて前記プログラムコードから新たな複数の機能モジュールを抽出する情報処理方法。
  5. プログラムコードから抽出された複数の機能モジュールの各々に、各機能モジュールを実現するデバイスとして、プロセッサ及び前記プロセッサ以外のハードウェアデバイスのうちのいずれか指定し、前記複数の機能モジュールを実現するデバイスの組み合わせが異なるコンピュータアーキテクチャの候補をアーキテクチャ候補として複数生成する処理と、
    生成された複数のアーキテクチャ候補の中、前記コンピュータアーキテクチャに要求される要求属性を持つアーキテクチャ候補が存在しない場合に、前記要求属性を満たさないが、前記複数のアーキテクチャ候補の中で最も要求属性に近い属性を持つアーキテクチャ候補を近似アーキテクチャ候補として選択する処理と、
    前記近似アーキテクチャ候補の属性と前記要求属性との差分に基づき、既定の抽出ルール変更し、変更後の抽出ルールを用いて前記プログラムコードから新たな複数の機能モジュールを抽出する処理とをコンピュータに実行させる情報処理プログラム。
JP2017510421A 2016-10-04 2016-10-04 情報処理装置、情報処理方法及び情報処理プログラム Expired - Fee Related JP6173644B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/079512 WO2018066073A1 (ja) 2016-10-04 2016-10-04 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP6173644B1 true JP6173644B1 (ja) 2017-08-02
JPWO2018066073A1 JPWO2018066073A1 (ja) 2018-10-04

Family

ID=59505137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017510421A Expired - Fee Related JP6173644B1 (ja) 2016-10-04 2016-10-04 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (2)

Country Link
JP (1) JP6173644B1 (ja)
WO (1) WO2018066073A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021100122A1 (ja) * 2019-11-19 2021-05-27 三菱電機株式会社 設計支援システムおよび設計支援プログラム
JP7528846B2 (ja) 2021-04-06 2024-08-06 三菱電機株式会社 アーキテクチャ設計支援装置およびアーキテクチャ設計支援システム
WO2023218661A1 (ja) * 2022-05-13 2023-11-16 日本電気株式会社 システム設計学習装置、システム設計学習方法、及びコンピュータ読み取り可能な記録媒体

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006092561A (ja) * 2005-10-03 2006-04-06 Matsushita Electric Ind Co Ltd インターフェースの設計方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006092561A (ja) * 2005-10-03 2006-04-06 Matsushita Electric Ind Co Ltd インターフェースの設計方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
上田恭子、外4名: "IPベース設計におけるバスアーキテクチャ最適化手法の提案", 情報処理学会研究報告, vol. 2004, no. 102, JPN6017012409, 22 October 2004 (2004-10-22), pages 147 - 152, ISSN: 0003535307 *
城代佳範、外3名: "VHDLで記述されたシステム仕様のプロセスレベルでのHW/SW分割の一手法", 電子情報通信学会技術研究報告, vol. 98, no. 449, JPN6016047315, 11 December 1998 (1998-12-11), pages 63 - 70, ISSN: 0003535306 *
小島洋平、外4名: "設計ナビゲーション機構を有するシステムLSI設計のためのHW/SW分割システム", 電子情報通信学会技術研究報告, vol. 105, no. 644, JPN6016047314, 2 March 2006 (2006-03-02), pages 19 - 24, ISSN: 0003535305 *
米岡昇、外4名: "データ流量解析に基づくアーキテクチャレベルでの設計品質見積もり手法", 電子情報通信学会技術研究報告, vol. 105, no. 58, JPN6017012410, 13 May 2005 (2005-05-13), pages 19 - 24, ISSN: 0003535308 *

Also Published As

Publication number Publication date
JPWO2018066073A1 (ja) 2018-10-04
WO2018066073A1 (ja) 2018-04-12

Similar Documents

Publication Publication Date Title
JP6227195B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
WO2019216404A1 (ja) ニューラルネットワーク構築装置、情報処理装置、ニューラルネットワーク構築方法及びプログラム
US10372859B2 (en) System and method for designing system on chip (SoC) circuits using single instruction multiple agent (SIMA) instructions
Rushton VHDL for logic synthesis
US9471470B2 (en) Automatically recommending test suite from historical data based on randomized evolutionary techniques
US8302041B1 (en) Implementation flow for electronic circuit designs using choice networks
US20070168902A1 (en) Method for high-level synthesis of semiconductor integrated circuit
JP6173644B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US9129075B2 (en) Mesh generation system
US9824172B1 (en) Performance of circuitry generated using high-level synthesis
US9710584B1 (en) Performance of circuitry generated using high-level synthesis
CN110020456B (zh) 利用基于图的相似性搜索逐步生成fpga实现的方法
JP2011253253A (ja) コンピュータ試験方法、コンピュータ試験装置およびコンピュータ試験プログラム
CN117744548A (zh) 一种芯片验证方法、装置和存储介质
US10878150B1 (en) Loop optimization in a circuit design netlist
Van Eijk Formal methods for the verification of digital circuits
Conrady et al. LCS-based automatic configuration of approximate computing parameters for fpga system designs
Santos et al. Automatic selection and insertion of hls directives via a source-to-source compiler
US20150082278A1 (en) Clone detection method and clone function commonalizing method
TWI841724B (zh) 執行模擬基礎物理設計規則以最佳化電路佈局
KR20190059701A (ko) Devs 기반 시뮬레이션 모델 및 코드 생성 방법 및 장치
JP7234566B2 (ja) 運転計画方法、運転計画装置およびプログラム
JP5328447B2 (ja) 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体
Reyes Fernández de Bulnes et al. High-level synthesis through metaheuristics and LUTs optimization in FPGA devices
US20200004503A1 (en) Information processing device, information processing method, and computer readable medium

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170523

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170704

R150 Certificate of patent or registration of utility model

Ref document number: 6173644

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees