JP6732153B2 - 設計支援装置および設計支援プログラム - Google Patents

設計支援装置および設計支援プログラム Download PDF

Info

Publication number
JP6732153B2
JP6732153B2 JP2020504525A JP2020504525A JP6732153B2 JP 6732153 B2 JP6732153 B2 JP 6732153B2 JP 2020504525 A JP2020504525 A JP 2020504525A JP 2020504525 A JP2020504525 A JP 2020504525A JP 6732153 B2 JP6732153 B2 JP 6732153B2
Authority
JP
Japan
Prior art keywords
margin
component
unit
target element
design support
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
JP2020504525A
Other languages
English (en)
Other versions
JPWO2019171464A1 (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 JPWO2019171464A1 publication Critical patent/JPWO2019171464A1/ja
Application granted granted Critical
Publication of JP6732153B2 publication Critical patent/JP6732153B2/ja
Active 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]
    • G06F30/10Geometric CAD
    • G06F30/13Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/02Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、アーキテクチャの設計を支援するための技術に関するものである。
組み込みシステム設計において次のような作業が行われる。
まず、システム要求に従って要求分析が行われる。次に、システム全体の動作仕様が機能ブロックに分割される。次に、機能ブロック毎に動作仕様の設計が行われる。次に、機能ブロックを実装するための部品が選定される。具体的な部品は、CPU(Central Processing Unit)およびLSI(Large Scale Integration)である。部品の選定の後、機能ブロックをCPUに実装するためのソフトウェアと機能ブロックをLSIに実装するためのハードウェアとに機能ブロックが分割される。そして、ソフトウェアおよびハードウェアの実装が行われる。
組み込みシステム設計において、最終的な実装結果が性能、コストおよび面積などの制約を満たす必要がある。そのため、部品の選定および機能ブロックの分割が重要であり、部品に関する知識、ソフトウェア/ハードウェアの実装に関する知識および作業経験が必要である。
特許文献1は、機能仕様をソフトウェアとハードウェアとに分割するための方法として次のような方法を開示している。
まず、機能分割を評価するためのパラメータが入力される。次に、入力パラメータに基づいて分割指標が算出される。そして、算出された分割指標に基づいて、現在の分割が変更される。
さらに、再分割の結果が性能シミュレーションによって評価され、性能および回路規模などの制約条件を満足するまで処理が繰り返される。つまり、制約条件を満たす分割解が探索される。
非特許文献1は、機能仕様の分割を組み合わせ最適化問題と見なして分割階を得る方法を開示している。
この方法では、機能仕様を分割して得られる処理群(サブルーチン)について、ソフトウェアとハードウェアとのいずれで処理を行うかが組み合わせ最適化により決定される。なお、非特許文献1には、ソフトウェアとハードウェアとの2つの要素で構成されるシステムアーキテクチャの処理分割だけでなく、3つ以上の要素で構成されるシステムアーキテクチャの処理分割についても示唆がある。
処理が一つも割り当てられない構成要素が許容されることにより、組み込みシステムアーキテクチャの探索を行うことが可能であると考えられる。
特開2002−269163号公報
Ralf Niewmann, Peter Marwedel, "An Algorithm for Hardware/Software Partitioning Using Mixed Integer Linear Programming". Design Automation for Embedded Systems March 1997, Volume 2, Issue 2, pp 165−193
特許文献1に開示された手法と非特許文献1に開示された手法とのいずれにおいても、実現可能な全ての組み込みシステムアーキテクチャ候補とそのシステムアーキテチャ上で実現可能な分割候補との中から、最適なシステムアーキテクチャと分割解とを探索する必要がある。そのため、分割要素数と組み込みシステムアーキテクチャの構成要素数とが増えると、指数関数的に探索数が増加する。その結果、探索に時間がかかってしまう。
本発明は、アーキテクチャ設計における探索時間を削減できるようにすることを目的とする。
本発明の設計支援装置は、
アーキテクチャの1つ以上の構成要素と各構成要素の評価項目とを示すアーキテクチャ情報と、1つ以上のサブルーチンを含む処理プログラムと、各構成要素の評価項目について各構成要素の制約値を示す制約条件と、を受け付ける受付部と、
前記アーキテクチャ情報が示す各構成要素の評価項目について目的関数を生成する目的関数生成部と、
前記目的関数の最適化問題を1回以上解くことによって、前記1つ以上の構成要素と前記1つ以上のサブルーチンとについての1つ以上の分割解を得る最適化部と、
前記1つ以上の分割解と前記制約条件とに基づいて、各構成要素の評価項目について各構成要素の余裕度を算出する余裕度算出部と、
各構成要素の余裕度に基づいて各構成要素の変更の要否を判定する変更判定部と、
変更が必要な各構成要素について前記アーキテクチャ情報を変更する変更部とを備える。
本発明によれば、各構成要素の余裕度に基づいて各構成要素の変更の要否が判定される。そのため、1つ以上の構成要素の全ての組み合わせについて分割解の探索を行わなくても、各構成要素を適切に選択することが可能となる。これにより、アーキテクチャ設計における探索時間を削減することが可能となる。
実施の形態1における設計支援装置100の構成図。 実施の形態1における設計支援方法のフローチャート。 実施の形態1におけるアーキテクチャ情報121を示す図。 実施の形態1における制約条件122を示す図。 実施の形態1におけるコスト算出処理(S110)のフローチャート。 実施の形態1における目的関数生成処理(S120)のフローチャート。 実施の形態1における最適化処理(S130)のフローチャート。 実施の形態1における余裕度算出処理(S140)のフローチャート。 実施の形態1における余裕度情報123を示す図。 実施の形態1における変更判定処理(S150)のフローチャート。 実施の形態1における変更判定処理(S150)のフローチャート。 実施の形態1における判定結果情報124Aを示す図。 実施の形態1における判定結果情報124Bを示す図。 実施の形態1における判定結果情報124Cを示す図。 実施の形態1における設計支援装置100のハードウェア構成図。
実施の形態および図面において、同じ要素および対応する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
実施の形態1.
設計支援装置100について、図1から図15に基づいて説明する。
***構成の説明***
図1に基づいて、設計支援装置100の構成を説明する。
設計支援装置100は、プロセッサ101とメモリ102と補助記憶装置103と入出力インタフェース104といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
プロセッサ101は、演算処理を行うIC(Integrated Circuit)であり、他のハードウェアを制御する。例えば、プロセッサ101は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、またはGPU(Graphics Processing Unit)である。
メモリ102は揮発性の記憶装置である。メモリ102は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ102はRAM(Random Access Memory)である。メモリ102に記憶されたデータは必要に応じて補助記憶装置103に保存される。
補助記憶装置103は不揮発性の記憶装置である。例えば、補助記憶装置103は、ROM(Read Only Memory)、HDD(Hard Disk Drive)、またはフラッシュメモリである。補助記憶装置103に記憶されたデータは必要に応じてメモリ102にロードされる。
入出力インタフェース104は入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース104はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。USBはUniversal Serial Busの略称である。
設計支援装置100は、受付部111とコスト算出部112と目的関数生成部113と最適化部114と余裕度算出部115と変更判定部116と変更部117と出力部118といった要素を備える。これらの要素はソフトウェアで実現される。
補助記憶装置103には、受付部111とコスト算出部112と目的関数生成部113と最適化部114と余裕度算出部115と変更判定部116と変更部117と出力部118としてコンピュータを機能させるための設計支援プログラムが記憶されている。設計支援プログラムは、メモリ102にロードされて、プロセッサ101によって実行される。
さらに、補助記憶装置103にはOS(Operating System)が記憶されている。OSの少なくとも一部は、メモリ102にロードされて、プロセッサ101によって実行される。
つまり、プロセッサ101は、OSを実行しながら、設計支援プログラムを実行する。
設計支援プログラムを実行して得られるデータは、メモリ102、補助記憶装置103、プロセッサ101内のレジスタまたはプロセッサ101内のキャッシュメモリといった記憶装置に記憶される。
補助記憶装置103は記憶部120として機能する。但し、他の記憶装置が、補助記憶装置103の代わりに、又は、補助記憶装置103と共に、記憶部120として機能してもよい。
設計支援装置100は、プロセッサ101を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ101の役割を分担する。
設計支援プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータで読み取り可能に記録(格納)することができる。
***動作の説明***
設計支援装置100の動作は設計支援方法に相当する。また、設計支援方法の手順は設計支援プログラムの手順に相当する。
図2に基づいて、設計支援方法を説明する。
ステップS101において、利用者が、アーキテクチャ情報と処理プログラムと制約条件とを設計支援装置100に入力する。
受付部111は、アーキテクチャ情報と処理プログラムと制約条件とを受け付ける。そして、受付部111は、アーキテクチャ情報と処理プログラムと制約条件とを記憶部120に記憶する。
アーキテクチャ情報は、対象システムについて、アーキテクチャの1つ以上の構成要素と各構成要素の評価項目とを示す。
対象システムは、設計の対象となるシステムである。例えば、対象システムは、組込みシステムである。
構成要素は、アーキテクチャを構成する要素である。例えば、構成要素は、CPU、FPGA(Field Programmable Gate Array)、または、バスである。
評価項目は、性能評価の対象となる項目である。例えば、評価項目は、CPUの処理時間、FPGAの回路規模、または、バスの転送時間である。
処理プログラムは、設計対象の処理が記述されたプログラムの全体または一部である。具体的には、処理プログラムは、プログラミング言語で記述されたソースプログラムである。例えば、プログラミング言語はC言語である。
処理プログラムは、1つ以上のサブルーチンを含む。
サブルーチンは、処理の固まりである。例えば、サブルーチンは、関数、forループまたは式の集合である。
制約条件は、各構成要素の評価項目について各構成要素の制約値を示す。
制約値は、各構成要素の評価項目についての制約を示す値である。
図3に基づいて、アーキテクチャ情報121を説明する。
アーキテクチャ情報121は、アーキテクチャ情報の一例である。
アーキテクチャ情報121は、第1CPUと第2CPUと第1バスと第1FPGAとのそれぞれを構成要素として示している。
第1CPUと第2CPUとのそれぞれの評価項目は、処理時間である。
第1バスの評価項目は、転送時間である。
第1FPGAの評価項目は、回路規模である。
図4に基づいて、制約条件122を説明する。
制約条件122は、制約条件の一例である。
制約条件122は、第1CPUと第2CPUと第1FPGAと第1バスとのそれぞれの制約値を示している。
第1CPUの制約値は、100マイクロ秒である。
第2CPUの制約値は、200マイクロ秒である。
第1FPGAの制約値は、1000KLUTである。KLUTは、キロルックアップテーブルの略称である。つまり、KLUTは、ルックアップテーブルの数を表す。
第1バスの制約値は、30マイクロ秒である。
図2に戻り、ステップS110から説明を続ける。
ステップS110において、コスト算出部112は、処理プログラムに含まれる各サブルーチンについてコストを算出する。
コスト算出処理(S110)の詳細については後述する。
ステップS120において、目的関数生成部113は、アーキテクチャ情報が示す各構成要素の評価項目について目的関数を生成する。
目的関数生成処理(S120)の詳細については後述する。
ステップS130において、最適化部114は、目的関数の最適化問題を1回以上解くことによって、1つ以上の構成要素と1つ以上のサブルーチンとについて1つ以上の分割解を得る。
分割解は、各構成要素に割り当てられるサブルーチンを示す。つまり、分割解は、どのサブルーチンがどの構成要素に割り当てられるかを示す。
最適化処理(S130)の詳細については後述する。
ステップS140において、余裕度算出部115は、1つ以上の分割解と制約条件とに基づいて、各構成要素の評価項目について各構成要素の余裕度を算出する。
余裕度は、制約値に対する余裕の度合いを示す。
余裕度算出処理(S140)の詳細については後述する。
ステップS150において、変更判定部116は、各構成要素の余裕度に基づいて各構成要素の変更の要否を判定する。
変更判定処理(S150)の詳細については後述する。
少なくともいずれかの構成要素の変更が必要であると判定された場合、処理はステップS160に進む。
いずれの構成要素の変更も必要でないと判定された場合、処理はステップS180に進む。
ステップS160において、変更部117は、変更が必要な各構成要素についてアーキテクチャ情報を変更する。
変更処理(S160)の詳細については後述する。
ステップS170において、変更部117は、各構成要素の変更の要否についての判定結果に基づいて、目的関数を変更する。
変更処理(S170)の詳細については後述する。
ステップS180において、出力部118は、アーキテクチャ情報と分割解とを出力する。
出力処理(S180)の詳細については後述する。
図5に基づいて、コスト算出処理(S110)を説明する。
ステップS111において、コスト算出部112は、処理プログラムを1つ以上のサブルーチンに分割する。
ステップS112において、コスト算出部112は、処理プログラムを解析することによって、サブルーチン間のデータフローを生成する。
データフローは、サブルーチン間のデータの入出力を示す。
ステップS113において、コスト算出部112は、各サブルーチンの評価項目について各サブルーチンのコストを算出する。
サブルーチンのコストは、サブルーチンの実行のために構成要素にかかるコストである。
具体的には、コスト算出部112は、サブルーチン毎にソフトウェアコストとハードウェアコストとを算出する。
ソフトウェアコストは、ソフトウェア要素にかかるコストである。ソフトウェア要素は、サブルーチンをソフトウェアで実現するための構成要素である。例えば、ソフトウェア要素はCPUであり、ソフトウェアコストはCPUの処理時間である。
ハードウェアコストは、ハードウェア要素にかかるコストである。ハードウェア要素は、サブルーチンをハードウェアで実現するための構成要素である。例えば、ハードウェア要素はFPGAであり、ハードウェアコストはFPGAの回路規模である。
例えば、コスト算出部112は、以下のような方法によって、各サブルーチンのコストを算出する。
コスト算出部112は、特許文献1に記載の方法によって、各サブルーチンのコストを算出する。特許文献1にはデータベースを用いる方法が記載されている。
コスト算出部112は、シミュレータまたは実機を動作させ、各サブルーチンのソフトウェアコストを測定する。
コスト算出部112は、高位合成によって、各サブルーチンのハードウェアコストを見積る。
図6に基づいて、目的関数生成処理(S120)を説明する。
ステップS121において、目的関数生成部113は、アーキテクチャ情報から、各構成要素の評価項目を示す情報を取得する。
ステップS122において、目的関数生成部113は、各構成要素の評価項目の線形結合を生成する。生成される線形結合が目的関数である。
例えば、目的関数生成部113は、図3のアーキテクチャ情報121に基づいて、次のような目的関数を生成する。
<目的関数>
C1×{第1CPUの処理時間}+C2×{第2CPUの処理時間}+C3×{第1FPGAの回路規模}+C4×{第1バスの転送時間} → min
C1からC4のそれぞれは係数である。
{}は、構成要素の評価項目を示している。
minは、目的関数の値が最小になるという条件を意味する。
図7に基づいて、最適化処理(S130)を説明する。
ステップS131において、最適化部114は、制約条件と各サブルーチンのコストとに基づいて、制約式を生成する。
具体的には、最適化部114は、非特許文献1に記載された方法で制約式を生成する。
ステップS132において、最適化部114は、目的関数に含まれる1つ以上の係数について、1つ以上の係数値組を生成する。
係数値組は、1つ以上の係数に対応する1つ以上の係数値である。
係数値は、係数に設定される値である。
例えば、最適化部114は、上記の<目的関数>に含まれる4つの係数について、以下のように8つの係数値組を生成する。
(1)C1=0、C2=C3=C4=1
係数値組(1)は、第1CPUを軽視する場合の係数値組である。軽視とは、制約が無いことを意味する。例えば、第1CPUが軽視される場合、第1CPUの処理時間が長くても構わない。
(2)C1=1、C2=C3=C4=0
係数値組(2)は、第1CPUを重視する場合の係数値組である。重視とは、制約が厳しいことを意味する。例えば、第1CPUが重視される場合、第1CPUの処理時間が最短の時間でなければならない。
(3)C2=0、C1=C3=C4=1
係数値組(3)は、第2CPUを軽視する場合の係数値組である。
(4)C2=1、C1=C3=C4=0
係数値組(4)は、第2CPUを重視する場合の係数値組である。
(5)C3=0、C1=C2=C4=1
係数値組(5)は、第1FPGAを軽視する場合の係数値組である。
(6)C3=1、C1=C2=C4=0
係数値組(6)は、第1FPGAを重視する場合の係数値組である。
(7)C4=0、C1=C2=C3=1
係数値組(7)は、第1バスを軽視する場合の係数値組である。
(8)C4=1、C1=C2=C3=0
係数値組(8)は、第1バスを重視する場合の係数値組である。
ステップS133において、最適化部114は、係数値組毎に制約式に従って目的関数の最適化問題を解く。これにより、係数値組毎に分割解が得られる。
具体的には、最適化部114は、最適化ソルバを使用することによって、最適化問題を解く。
図8に基づいて、余裕度算出処理(S140)を説明する。
ステップS141において、余裕度算出部115は、制約条件から各構成要素の制約値を取得する。
ステップS142において、余裕度算出部115は、各分割解における各構成要素の評価値を算出する。つまり、余裕度算出部115は、分割解毎に各構成要素の評価値を算出する。
評価値は、分割解が適用された場合の構成要素のコストである。
例えば、余裕度算出部115は、シミュレーションによって、各分割解における各構成要素の評価値を算出する。余裕度算出部115は、論理合成による評価によって、各分割解における各構成要素の評価値を算出してもよい。また、余裕度算出部115は、コスト算出部112がコストの算出に用いる方法と同じ方法によって、各分割解における各構成要素の評価値を算出してもよい。
ステップS143において、余裕度算出部115は、各構成要素の制約値と各分割解における各構成要素の評価値とに基づいて、各構成要素の余裕度を算出する。
余裕度は、制約値と評価値との差である。
具体的には、余裕度算出部115は、各構成要素の最小余裕度と各構成要素の最大余裕度とを算出する。
余裕度算出部115は、構成要素の最小余裕度と構成要素の最大余裕度とを以下のように算出する。
まず、余裕度算出部115は、分割解毎に、構成要素の制約値と構成要素の評価値との差を算出する。算出される差が余裕度である。
そして、余裕度算出部115は、最小余裕度と最大余裕度とを選択する。
例えば、第1CPUの処理時間についての制約値は100マイクロ秒である。また、2つの分割解のうちの第1分割解において、第1CPUの処理時間についての評価値が50マイクロ秒である。また、2つの分割解のうちの第2分割解において、第1CPUの処理時間についての評価値が40マイクロ秒である。
この場合、第1分割解における第1CPUの余裕度は50(=100−50)であり、第2分割解における第1CPUの余裕度は60(=100−40)である。
したがって、最小余裕度は50であり、最大余裕度は60である。
図9に基づいて、余裕度情報123を説明する。
余裕度情報123は、余裕度情報の一例である。余裕度情報は、各構成要素の余裕度を示す。
余裕度情報123は、第1CPUと第2CPUと第1FPGAと第1バスとのそれぞれの最小余裕度と最大余裕度とを示している。
第1CPUの最小余裕度は50であり、第1CPUの最大余裕度は60である。
第2CPUの最小余裕度は20であり、第2CPUの最大余裕度は100である。
第1FPGAの最小余裕度は100であり、第1FPGAの最大余裕度は500である。
第1バス最小余裕度は0であり、第1バスの最大余裕度は2である。
図10および図11に基づいて、変更判定処理(S150)を説明する。
図10および図11の変更判定処理(S150)は構成要素毎に実行される。
変更判定処理(S150)において、実行の対象となる構成要素を対象要素と呼ぶ。
変更判定処理(S150)において、アーキテクチャデータベースが使用される。アーキテクチャデータベースは、各種のアーキテクチャ要素のそれぞれの情報を有する。アーキテクチャ要素は、構成要素になり得る要素である。アーキテクチャデータベースは、設計支援装置100に備わってもよいし、設計支援装置100の外部に設けられてもよい。
ステップS151(図10参照)において、変更判定部116は、対象要素の最大余裕度を余裕度閾値と比較する。
余裕度閾値は、構成要素の種類毎に予め決められる。変更判定部116は、対象要素の種類に対応する余裕度閾値を比較に用いる。
対象要素の最大余裕度が余裕度閾値より大きい場合、処理はステップS152に進む。
対象要素の最大余裕度が余裕度閾値以下である場合、変更判定部116は対象要素を変更しないと判定し、処理は終了する。
ステップS152において、変更判定部116は、対象要素の最小余裕度を余裕度閾値と比較する。
対象要素の最小余裕度が余裕度閾値より大きい場合、処理はステップS153に進む。
対象要素の最小余裕度が余裕度閾値以下である場合、処理はステップS1521(図11参照)に進む。
ステップS153において、変更判定部116は、対象要素と種類が同じで対象要素よりもスペックが低いアーキテクチャ要素が有るか判定する。
ステップS153およびステップS154において、対象要素と種類が同じで対象要素よりもスペックが低いアーキテクチャ要素を低スペック要素と呼ぶ。
具体的には、変更判定部116は、低スペック要素が有るかアーキテクチャデータベースに問い合わせる。
低スペック要素が有る場合、処理はステップS154に進む。
低スペック要素が無い場合、処理はステップS155に進む。
ステップS154において、変更判定部116は、対象要素を低スペック要素に変更すると判定する。そして、処理は終了する。
ステップS155において、変更判定部116は、アーキテクチャ情報が示す1つ以上の構成要素の中に対象要素と同じ種類の構成要素が有るか判定する。
ステップS155からステップS157において、対象要素と同じ種類の構成要素を同種要素と呼ぶ。
同種要素が有る場合、処理はステップS156に進む。
同種要素が無い場合、変更判定部116は対象要素を変更しないと判定し、処理は終了する。
ステップS156において、変更判定部116は、同種要素と種類が同じで同種要素よりもスペックが高いアーキテクチャ要素が有るか判定する。
ステップS156およびステップS157において、同種要素と種類が同じで同種要素よりもスペックが高いアーキテクチャ要素を高スペック要素と呼ぶ。
具体的には、変更判定部116は、アーキテクチャデータベースに高スペック要素が有るか問い合わせる。
高スペック要素が有る場合、処理はステップS157に進む。
高スペック要素が無い場合、変更判定部116は対象要素を変更しないと判定し、処理は終了する。
ステップS157において、変更判定部116は、同種要素を高スペック要素に変更して対象要素を削除すると判定する。そして、処理は終了する。
ステップS1521(図11参照)において、変更判定部116は、アーキテクチャ情報が示す1つ以上の構成要素の中に対象要素と同じ種類の構成要素が有るか判定する。
ステップS1521において、対象要素と同じ種類の構成要素を同種要素と呼ぶ。
同種要素が有る場合、処理はステップS1522に進む。
同種要素が無い場合、処理はステップS1524に進む。
ステップS1522において、変更判定部116は、対象要素と種類が同じで対象要素よりもスペックが高いアーキテクチャ要素が有るか判定する。
ステップS1522およびステップS1523において、対象要素と種類が同じで対象要素よりもスペックが高いアーキテクチャ要素を高スペック要素と呼ぶ。
具体的には、変更判定部116は、アーキテクチャデータベースに高スペック要素が有るか問い合わせる。
高スペック要素が有る場合、処理はステップS1523に進む。
高スペック要素が無い場合、変更判定部116は対象要素を変更しないと判定し、処理は終了する。
ステップS1523において、変更判定部116は、対象要素を高スペック要素に変更すると判定する。そして、処理は終了する。
ステップS1524において、変更判定部116は、アーキテクチャ情報が示す1つ以上の構成要素の中に対象要素と種類が同じで低スペックなアーキテクチャ要素に変更される構成要素が有るか判定する。
ステップS1524において、対象要素と種類が同じで低スペックなアーキテクチャ要素に変更される構成要素を低変更要素と呼ぶ。つまり、低変更要素は、スペックを下げる変更がなされる構成要素である。
低変更要素が有る場合、処理はステップS1525に進む。
低変更要素が無い場合、変更判定部116は対象要素を変更しないと判定し、処理は終了する。
ステップS1525において、変更判定部116は、対象要素と種類が同じで対象要素よりもスペックが低いアーキテクチャ要素が有るか判定する。
ステップS1525およびステップS1526において、対象要素と種類が同じで対象要素よりもスペックが低いアーキテクチャ要素を低スペック要素と呼ぶ。
具体的には、変更判定部116は、アーキテクチャデータベースに低スペック要素が有るか問い合わせる。
低スペック要素が有る場合、処理はステップS1526に進む。
低スペック要素が無い場合、変更判定部116は対象要素を変更しないと判定し、処理は終了する。
ステップS1526において、変更判定部116は、対象要素を低スペック要素に変更すると判定する。そして、処理は終了する。
図12に基づいて、判定結果情報124Aを説明する。
判定結果情報124Aは、判定結果情報の一例である。判定結果情報は、変更判定処理(S150)における判定結果を示す。
判定結果情報124Aは、第1CPUと第2CPUと第1FPGAと第1バスとのそれぞれについて判定結果を示している。
第1CPUは、現在のCPUよりもスペックが低いCPUに変更される。
第2CPUと第1FPGAと第1バスとのそれぞれは、変更されない。
判定結果情報124Aは、以下のような場合に得られる。
第1CPUの現在のスペックよりもスペックが低いCPUが存在する。第1CPUの最大余裕度と第1CPUの最小余裕度とのそれぞれが余裕度閾値より大きい。この場合、変更判定部116は、第1CPUを現在のCPUよりもスペックが低いCPUに変更すると判定する。第2CPUと第1FPGAとのそれぞれの最大余裕度は余裕度閾値より大きい。しかし、第2CPUと第1FPGAとのそれぞれの最小余裕度は余裕度閾値より小さい。そのため、第2CPUと第1FPGAとのそれぞれのスペックを低くすると、スペックに余裕がなくなる可能性が高い。この場合、変更判定部116は、第2CPUと第1FPGAとのそれぞれを変更しないと判定する。第1バスの最大余裕度と第1バスの最小余裕度とのそれぞれが余裕度閾値より小さい。この場合、変更判定部116は、第1バスを変更しないと判定する。
図13に基づいて、判定結果情報124Bを説明する。
判定結果情報124Bは、判定結果情報の一例である。
判定結果情報124Bは、第1CPUと第2CPUと第1FPGAと第1バスとのそれぞれについて判定結果を示している。
第1CPUは、削除される。
第2CPUは、現在のCPUよりもスペックが高いCPUに変更される。
第1FPGAと第1バスとのそれぞれは、変更されない。
判定結果情報124Bは、以下のような場合に得られる。
第1CPUよりもスペックが低いCPUが存在しない。そのため、第1CPUを現在のCPUよりもスペックが低いCPUに変更できない。第2CPUの最小余裕度は余裕度閾値より小さい。そのため、第1CPUに割り当てられたサブルーチンを第1CPUの代わりに第2CPUに割り当てると、第2CPUのスペックに余裕がなくなる可能性がある。しかし、第2CPUよりもスペックが高いCPUが存在する。この場合、変更判定部116は、第1CPUに割り当てられたサブルーチンを第1CPUの代わりに第2CPUに割り当てるため、第1CPUを削除して第2CPUを現在のCPUよりもスペックが高いCPUに変更すると判定する。
図14に基づいて、判定結果情報124Cを説明する。
判定結果情報124Cは、判定結果情報の一例である。
判定結果情報124Cは、第1CPUと第2CPUと第1FPGAと第1バスとのそれぞれについて判定結果を示している。
第1CPUと第2CPUと第1バスとのそれぞれは、変更されない。
第1FPGAは、現在のFPGAよりもスペックが低いFPGAに変更される。
判定結果情報124Cは、以下のような場合に得られる。
第1CPUと第2CPUとして使用可能な他のCPUが存在しない。そのため、変更判定部116は、第1CPUと第2CPUとのそれぞれを変更しないと判定する。第1FPGAよりもスペックが低いFPGAが存在する。第1FPGAの最大余裕度と第1FPGAの最小余裕度とのそれぞれは余裕度閾値より大きい。この場合、変更判定部116は、第1FPGAを現在のFPGAよりもスペックが低いFPGAに変更すると判定する。
次に、変更処理(S160)について説明する。
ステップS160において、変更部117は、変更が必要な各構成要素についてアーキテクチャ情報を変更する。
具体的には、変更部117は、アーキテクチャ情報を次のように変更する。次の説明において、変更が必要な構成要素を対象要素と呼ぶ。
変更部117は、変更後の対象要素となるアーキテクチャ要素の情報をアーキテクチャデータベースから取得する。
変更部117は、アーキテクチャ情報から対象要素の情報を選択する。
そして、変更部117は、選択した情報を取得した情報に変更する。
次に、変更処理(S170)について説明する。
ステップS170において、変更部117は、判定結果情報に基づいて、目的関数を変更する。
具体的には、変更部117は、目的関数を以下のように変更する。
変更部117は、変更されない構成要素についての評価項目を目的関数から選択する。そして、変更部117は、選択した評価項目を目的関数から削除する。
変更部117は、削除される構成要素についての評価項目を目的関数から選択する。そして、変更部117は、選択した評価項目を目的関数から削除する。
目的関数の変更例について説明する。
最大余裕度と最小余裕度とがともに余裕度閾値より小さい場合、その構成要素は、適切なスペックを有しているため、適切な要素である。その構成要素に関する探索は完了しているため、その構成要素について再び評価を行う必要はない。そこで、変更部117は、変更されない構成要素の評価項目を目的関数から削除する。これにより、最適化問題を解く回数が減少し、探索時間が短くなる。
例えば、第1FPGAの最大余裕度と第1FPGAの最小余裕度とがともに余裕度閾値より小さい場合、変更部117は、前記の<目的関数>を次のように変更する。
<変更後の目的関数>
C1×{第1CPUの処理時間}+C2×{第2CPUの処理時間}+C4×{第1バスの転送時間} → min
次に、出力処理(S180)について説明する。
ステップS180において、出力部118は、アーキテクチャ情報と分割解とを出力する。
例えば、出力部118は、アーキテクチャ情報と分割解とをディスプレイに表示する。
ステップS180が実行される場合、アーキテクチャ情報は、1つ以上の適切な構成要素を示す。また、直前の最適化処理(S130)において最適な分割解が1つまたは複数得られる。複数の分割解が得られた場合、出力部118は、全ての分割解を出力してもよいし、いずれか1つ以上の分割解を出力してもよい。
***実施の形態1の効果***
各構成要素の評価項目を有する目的関数が生成され、目的関数の最適化問題を解くことにより分割解が得られ、分割解について各構成要素の余裕度が算出され、各構成要素の余裕度に基づいて各構成要素の変更の要否が判定される。これにより、分割解の全ての候補を探索する必要がなくなる。したがって、分割解の最適化にかかる総探索量を削減することができる。
各構成要素の余裕度に基づいて探索範囲が小さい構成要素が決定される。つまり、変更されない構成要素が決まる。そして、その構成要素の評価項目が目的関数から削除される。これにより、その構成要素について探索が行われないようになる。つまり、不要な探索が行われないようになる。したがって、イタレーション毎の探索量を削減することができる。
***他の構成***
目的関数は、各構成要素の評価項目の線形結合でなくてもよい。例えば、従来技術と同様の評価式が目的関数として利用されてもよい。
***実施の形態の補足***
図15に基づいて、設計支援装置100のハードウェア構成を説明する。
設計支援装置100は処理回路109を備える。
処理回路109は、受付部111とコスト算出部112と目的関数生成部113と最適化部114と余裕度算出部115と変更判定部116と変更部117と出力部118とを実現するハードウェアである。
処理回路109は、専用のハードウェアであってもよいし、メモリ102に格納されるプログラムを実行するプロセッサ101であってもよい。
処理回路109が専用のハードウェアである場合、処理回路109は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
ASICはApplication Specific Integrated Circuitの略称であり、FPGAはField Programmable Gate Arrayの略称である。
設計支援装置100は、処理回路109を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路109の役割を分担する。
処理回路109において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
このように、処理回路109はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
100 設計支援装置、101 プロセッサ、102 メモリ、103 補助記憶装置、104 入出力インタフェース、109 処理回路、111 受付部、112 コスト算出部、113 目的関数生成部、114 最適化部、115 余裕度算出部、116 変更判定部、117 変更部、118 出力部、120 記憶部、121 アーキテクチャ情報、122 制約条件、123 余裕度情報、124 判定結果情報。

Claims (11)

  1. アーキテクチャの1つ以上の構成要素と各構成要素の評価項目とを示すアーキテクチャ情報と、1つ以上のサブルーチンを含む処理プログラムと、各構成要素の評価項目について各構成要素の制約値を示す制約条件と、を受け付ける受付部と、
    前記アーキテクチャ情報が示す各構成要素の評価項目について目的関数を生成する目的関数生成部と、
    前記目的関数の最適化問題を1回以上解くことによって、前記1つ以上のサブルーチンの各々を前記1つ以上の構成要素のいずれかに割り当てる1つ以上の分割解を得る最適化部と、
    前記1つ以上の分割解と前記制約条件とに基づいて、各構成要素の評価項目について各構成要素の余裕度を算出する余裕度算出部と、
    各構成要素の余裕度に基づいて各構成要素の変更の要否を判定する変更判定部と、
    変更が必要な各構成要素について前記アーキテクチャ情報を変更する変更部と
    を備える設計支援装置。
  2. 前記目的関数生成部は、各構成要素の評価項目の線形結合を前記目的関数として生成する
    請求項1に記載の設計支援装置。
  3. 前記余裕度算出部は、各構成要素の余裕度として最大余裕度と最小余裕度とを算出し、
    前記変更判定部は、対象要素の最大余裕度と前記対象要素の最小余裕度とのそれぞれを余裕度閾値と比較し、比較結果に基づいて前記対象要素の変更の要否を判定する
    請求項1または請求項2に記載の設計支援装置。
  4. 前記変更判定部は、前記対象要素の最大余裕度と前記対象要素の最小余裕度とのそれぞれが前記余裕度閾値より大きく、且つ、前記対象要素よりもスペックが低いアーキテクチャ要素である低スペック要素がある場合、前記対象要素を前記低スペック要素に変更すると判定する
    請求項3に記載の設計支援装置。
  5. 前記変更判定部は、前記対象要素の最大余裕度と前記対象要素の最小余裕度とのそれぞれが前記余裕度閾値より大きく、且つ、前記低スペック要素がなく、且つ、前記対象要素と種類が同じ構成要素である同種要素があり、且つ、前記同種要素よりもスペックが高いアーキテクチャ要素である高スペック要素がある場合、前記同種要素を前記高スペック要素に変更して前記対象要素を削除すると判定する
    請求項4に記載の設計支援装置。
  6. 前記変更判定部は、前記対象要素の最大余裕度が前記余裕度閾値より大きく、且つ、前記対象要素の最小余裕度が前記余裕度閾値より小さく、且つ、前記対象要素と種類が同じ構成要素である同種要素があり、且つ、前記対象要素よりもスペックが高いアーキテクチャ要素である高スペック要素がある場合、前記対象要素を前記高スペック要素に変更すると判定する
    請求項4に記載の設計支援装置。
  7. 前記変更判定部は、前記対象要素の最大余裕度が前記余裕度閾値より大きく、且つ、前記対象要素の最小余裕度が前記余裕度閾値より小さく、且つ、前記同種要素がなく、且つ、スペックを下げる変更がなされる構成要素である低変更要素があり、且つ、前記対象要素よりもスペックが高いアーキテクチャ要素である低スペック要素がある場合、前記対象要素を前記低スペック要素に変更すると判定する
    請求項6に記載の設計支援装置。
  8. 前記変更部は、各構成要素の変更の要否についての判定結果に基づいて、前記目的関数を変更する
    請求項1から請求項7のいずれか1項に記載の設計支援装置。
  9. 前記変更部は、変更されない構成要素についての評価項目を前記目的関数から削除する請求項8に記載の設計支援装置。
  10. いずれの構成要素の変更も必要でないと判定された場合に前記アーキテクチャ情報と1つ以上の分割解とを出力する出力部を備える
    請求項1から請求項9のいずれか1項に記載の設計支援装置。
  11. アーキテクチャの1つ以上の構成要素と各構成要素の評価項目とを示すアーキテクチャ情報と、1つ以上のサブルーチンを含む処理プログラムと、各構成要素の評価項目について各構成要素の制約値を示す制約条件と、を受け付ける受付処理と、
    前記アーキテクチャ情報が示す各構成要素の評価項目について目的関数を生成する目的関数生成処理と、
    前記目的関数の最適化問題を1回以上解くことによって、前記1つ以上のサブルーチンの各々を前記1つ以上の構成要素のいずれかに割り当てる1つ以上の分割解を得る最適化処理と、
    前記1つ以上の分割解と前記制約条件とに基づいて、各構成要素の評価項目について各構成要素の余裕度を算出する余裕度算出処理と、
    各構成要素の余裕度に基づいて各構成要素の変更の要否を判定する変更判定処理と、
    変更が必要な各構成要素について前記アーキテクチャ情報を変更する変更処理と
    をコンピュータに実行させるための設計支援プログラム。
JP2020504525A 2018-03-06 2018-03-06 設計支援装置および設計支援プログラム Active JP6732153B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/008549 WO2019171464A1 (ja) 2018-03-06 2018-03-06 設計支援装置および設計支援プログラム

Publications (2)

Publication Number Publication Date
JPWO2019171464A1 JPWO2019171464A1 (ja) 2020-05-28
JP6732153B2 true JP6732153B2 (ja) 2020-07-29

Family

ID=67845581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020504525A Active JP6732153B2 (ja) 2018-03-06 2018-03-06 設計支援装置および設計支援プログラム

Country Status (3)

Country Link
US (1) US20210056241A1 (ja)
JP (1) JP6732153B2 (ja)
WO (1) WO2019171464A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6752393B1 (ja) 2019-11-19 2020-09-09 三菱電機株式会社 設計支援システムおよび設計支援プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001202397A (ja) * 2000-01-20 2001-07-27 Toshiba Corp システム・オン・チップのアーキテクチャ設計支援システム及びアーキテクチャ生成方法
US7069204B1 (en) * 2000-09-28 2006-06-27 Cadence Design System, Inc. Method and system for performance level modeling and simulation of electronic systems having both hardware and software elements
WO2017046941A1 (ja) * 2015-09-18 2017-03-23 三菱電機株式会社 アーキテクチャ生成装置およびアーキテクチャ生成プログラム

Also Published As

Publication number Publication date
WO2019171464A1 (ja) 2019-09-12
US20210056241A1 (en) 2021-02-25
JPWO2019171464A1 (ja) 2020-05-28

Similar Documents

Publication Publication Date Title
US8799837B2 (en) Optimizing a netlist circuit representation by leveraging binary decision diagrams to perform rewriting
US8713506B2 (en) System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce dynamic power in an electronic circuit and an apparatus incorporating the same
US9852250B2 (en) Memory optimization in VLSI design using generic memory models
JP6801460B2 (ja) 情報処理装置、プログラム、および情報処理方法
JP7068752B2 (ja) ソースコード解析装置およびソースコード解析プログラム
JP6732153B2 (ja) 設計支援装置および設計支援プログラム
JP2013178599A (ja) メッシュ生成装置
US20230335230A1 (en) Information processing apparatus, information processing method, and information processing program
JP4293562B2 (ja) ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体
WO2017158785A1 (ja) 高位合成装置、高位合成方法及び高位合成プログラム
US8818784B1 (en) Hardware description language (HDL) incorporating statistically derived data and related methods
JP6056174B2 (ja) 故障診断方法、故障診断装置及びプログラム
KR20160070631A (ko) 프로세서 및 프로세서의 명령어 처리 방법
WO2017154183A1 (ja) 高位合成装置、高位合成方法及び高位合成プログラム
JP6089627B2 (ja) 消費電力見積り装置および消費電力見積り方法
US20200004503A1 (en) Information processing device, information processing method, and computer readable medium
JP6305644B2 (ja) アーキテクチャ生成装置およびアーキテクチャ生成プログラム
JPWO2018150588A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP7091726B2 (ja) 情報処理装置,プログラム及び情報処理方法
JP6266183B2 (ja) 回路設計支援装置および回路設計支援プログラム
JP2010277436A (ja) メモリ構造決定支援装置、メモリ構造決定プログラム及び記録媒体
US20220284346A1 (en) Learning apparatus, evaluation apparatus, evaluation system, learning method, evaluation method, and non-transitory computer readable medium
JP6257421B2 (ja) 回路設計支援装置および回路設計支援プログラム
JP2009134500A (ja) 論理シミュレータと論理シミュレーション方法
JP6317603B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200212

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200212

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200522

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200707

R150 Certificate of patent or registration of utility model

Ref document number: 6732153

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250