(57)【特許請求の範囲】
【請求項１】
設計対象のシステムに組み入れられるハードウェア部品のうち処理を実行するハードウェア部品であるプロセッシング部品の組み合わせの候補ごとに性能を評価する評価部と、
個別のハードウェア部品のコストを定義する部品情報をメモリから取得し、取得した部品情報に基づいて、前記システムに組み入れられるハードウェア部品の組み合わせの候補ごとにコストを集計する集計部と、
前記システムに組み入れられるハードウェア部品の組み合わせの候補の中から、前記評価部により評価された性能が前記システムに与えられた性能の制約条件を満たすプロセッシング部品の組み合わせを含み、かつ、前記集計部により集計されたコストが前記システムに与えられたコストの制約条件を満たすハードウェア部品の組み合わせの候補を前記システムのアーキテクチャとして選定する選定部と
を備えるアーキテクチャ選定装置。
【請求項２】
前記部品情報は、前記個別のハードウェア部品のコストとして、イニシャルコストである費用と、ランニングコストである消費電力と、スペースコストである面積とのうち少なくとも１種類のコストを定義する情報である請求項１に記載のアーキテクチャ選定装置。
【請求項３】
前記選定部は、優先順位が高い制約条件から順番に適用して、前記システムに組み入れられるハードウェア部品の組み合わせの候補を絞り込む請求項１または２に記載のアーキテクチャ選定装置。
【請求項４】
性能の制約条件の優先順位がコストの制約条件よりも高く設定されている請求項３に記載のアーキテクチャ選定装置。
【請求項５】
前記システムに要求される機能を定義する機能モデルを解析して、前記機能を発揮するために前記システムが実行する処理を特定する解析部をさらに備え、
前記評価部は、前記システムに組み入れられるプロセッシング部品の組み合わせの候補ごとに、性能の評価値として、前記解析部により特定された処理の実行にかかる時間の指標値を算出し、
前記選定部は、前記システムに組み入れられるハードウェア部品の組み合わせの候補の中から、前記評価部により算出された時間の指標値が、前記システムに与えられた性能の制約条件として決められた上限値以下であるプロセッシング部品の組み合わせを含むハードウェア部品の組み合わせの候補を選定し、選定したハードウェア部品の組み合わせの候補の中から、前記集計部により集計されたコストが前記システムに与えられたコストの制約条件を満たすハードウェア部品の組み合わせを前記システムのアーキテクチャとして選定する請求項４に記載のアーキテクチャ選定装置。
【請求項６】
前記解析部は、特定した処理を２つ以上の処理に分割し、
前記評価部は、前記システムに組み入れられるプロセッシング部品の組み合わせの候補ごとに、前記２つ以上の処理それぞれの実行にかかる時間の指標値を算出し、性能の評価値として、算出した時間の指標値の合計を算出する請求項５に記載のアーキテクチャ選定装置。
【請求項７】
評価部が、設計対象のシステムに組み入れられるハードウェア部品のうち処理を実行するハードウェア部品であるプロセッシング部品の組み合わせの候補ごとに性能を評価し、
集計部が、個別のハードウェア部品のコストを定義する部品情報をメモリから取得し、取得した部品情報に基づいて、前記システムに組み入れられるハードウェア部品の組み合わせの候補ごとにコストを集計し、
選定部が、前記システムに組み入れられるハードウェア部品の組み合わせの候補の中から、前記評価部により評価された性能が前記システムに与えられた性能の制約条件を満たすプロセッシング部品の組み合わせを含み、かつ、前記集計部により集計されたコストが前記システムに与えられたコストの制約条件を満たすハードウェア部品の組み合わせの候補を前記システムのアーキテクチャとして選定するアーキテクチャ選定方法。
【請求項８】
コンピュータに、
設計対象のシステムに組み入れられるハードウェア部品のうち処理を実行するハードウェア部品であるプロセッシング部品の組み合わせの候補ごとに性能を評価する評価手順と、
個別のハードウェア部品のコストを定義する部品情報をメモリから取得し、取得した部品情報に基づいて、前記システムに組み入れられるハードウェア部品の組み合わせの候補ごとにコストを集計する集計手順と、
前記システムに組み入れられるハードウェア部品の組み合わせの候補の中から、前記評価手順により評価された性能が前記システムに与えられた性能の制約条件を満たすプロセッシング部品の組み合わせを含み、かつ、前記集計手順により集計されたコストが前記システムに与えられたコストの制約条件を満たすハードウェア部品の組み合わせの候補を前記システムのアーキテクチャとして選定する選定手順と
を実行させるアーキテクチャ選定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アーキテクチャ選定装置、アーキテクチャ選定方法およびアーキテクチャ選定プログラムに関するものである。
【背景技術】
【０００２】
組み込みシステム設計では、システム要求に従い、要求分析が行われる。システム全体の動作仕様の機能ブロックへの分割、および、機能ブロックごとの動作仕様設計が行われる。機能ブロックを実装するためのハードウェア部品が選定された後、各々の機能ブロックがソフトウェアおよびハードウェアに分割される。その後、ソフトウェアおよびハードウェアの実装が行われる。組み込みシステム設計では、最終的な実装結果が性能およびコストの制約条件を満たす必要がある。よって、設計の前段階で行われる部品の選定、および、機能ブロックのソフトウェアおよびハードウェアへの分割は重要である。部品に関する知識と、ソフトウェアおよびハードウェアの実装に関する知識および経験とが必要である。【０００３】
特許文献１には、システム設計を支援する技術が記載されている。【０００４】
特許文献１に記載の技術では、機能ライブラリおよびテストベンチライブラリを用いて機能設計が行われる。ＩＰ機能ライブラリを用いてＩＰ機能設計が行われる。「ＩＰ」は、Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙの略語である。機能設計およびＩＰ機能設計では、ＩＰに要求される機能が、Ｃ言語により記述される。【０００５】
機能設計およびＩＰ機能設計の次に、アーキテクチャモデルライブラリを用いてシステムアーキテクチャ設計が行われる。システムアーキテクチャ設計では、アーキテクチャモデルライブラリから必要なＨＷモデルおよびＳＷモデルが選択される。「ＨＷ」は、Ｈａｒｄｗａｒｅの略語である。「ＳＷ」は、Ｓｏｆｔｗａｒｅの略語である。各モデルがバスに接続されてシステム全体の概略的な構造が作り上げられる。【０００６】
システムアーキテクチャ設計の次に、各機能ブロックをアーキテクチャのコンポーネントに割り当てるマッピングが行われる。その後、性能ライブラリを用いて性能解析が行われる。その結果、性能が満たされない場合は、マッピングおよび性能解析が再び行われる。性能が満たされるまで、マッピングおよび性能解析を繰り返すループ処理が行われる。【０００７】
マッピングおよび性能解析の次に、ＩＰハードウェアモデルライブラリを用いたＨＷ設計と、ＩＰソフトウェアモデルライブラリを用いたＳＷ設計とが個別に行われる。ＨＷおよびＳＷが詳細化されてくると、インタフェースモデルを用いたＨＷ／ＳＷ協調検証が行われる。その後、実チップを用いて実チップの機能が確認される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−１５７２９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載の技術では、マッピングにより性能を満たせない場合は、システムアーキテクチャ設計をやり直さなければならない。また、システムアーキテクチャ設計は、システム設計者が行う必要がある。システム設計者は、性能解析結果に基づいて性能およびコストの制約条件を満たす設計を再度する必要がある。【００１０】
本発明は、システム設計者に頼らずに、性能およびコストの制約条件を満たす部品の組み合わせをシステムのアーキテクチャとして選定することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様に係るアーキテクチャ選定装置は、
設計対象のシステムに組み入れられるハードウェア部品のうち処理を実行するハードウェア部品であるプロセッシング部品の組み合わせの候補ごとに性能を評価する評価部と、
個別のハードウェア部品のコストを定義する部品情報をメモリから取得し、取得した部品情報に基づいて、前記システムに組み入れられるハードウェア部品の組み合わせの候補ごとにコストを集計する集計部と、
前記システムに組み入れられるハードウェア部品の組み合わせの候補の中から、前記評価部により評価された性能が前記システムに与えられた性能の制約条件を満たすプロセッシング部品の組み合わせを含み、かつ、前記集計部により集計されたコストが前記システムに与えられたコストの制約条件を満たすハードウェア部品の組み合わせの候補を前記システムのアーキテクチャとして選定する選定部とを備える。
【発明の効果】
【００１２】
本発明によれば、システム設計者に頼らずに、性能およびコストの制約条件を満たす部品の組み合わせをシステムのアーキテクチャとして選定することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係る設計支援システムの構成を示すブロック図。
【図２】実施の形態１に係るアーキテクチャ選定装置の動作を示すフローチャート。
【図３】実施の形態１に係る機能モデルのソースコードの例を示す図。
【図４】実施の形態１に係る機能モデルの解析結果と、演算回数およびデータ量の計測結果との例を示す図。
【図５】実施の形態１に係る機能モデルの解析結果と、演算回数およびデータ量の計測結果との例を示す図。
【図６】実施の形態１に係る計算資源データの例を示す図。
【図７】実施の形態１に係る計算資源データの例を示す図。
【図８】実施の形態１に係る計算資源データの例を示す図。
【図９】実施の形態１に係る計算資源データの例を示す図。
【図１０】実施の形態１に係る計算資源の評価結果の例を示す図。
【図１１】実施の形態１に係る計算資源の評価結果の例を示す図。
【図１２】実施の形態１に係る計算資源の評価結果と、制約条件および優先順位と、ＭＩＰＳの算出結果との例を示す図。
【図１３】実施の形態１に係るアーキテクチャ情報の例を示す図。
【図１４】実施の形態１に係る部品情報の例を示す図。
【図１５】実施の形態１に係る部品情報の例を示す図。
【図１６】実施の形態１に係る部品の選定結果の例を示す図。
【図１７】実施の形態１に係る部品の選定結果の例を示す図。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。なお、本発明は、以下に説明する実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。例えば、以下に説明する実施の形態は、部分的に実施されても構わない。
【００１５】
実施の形態１．
本実施の形態について、図１から図１７を用いて説明する。
【００１６】
＊＊＊構成の説明＊＊＊
図１を参照して、本実施の形態に係る設計支援システム１００の構成を説明する。
【００１７】
設計支援システム１００は、仕様記述から組み込みシステムまたはその他のシステムの設計を支援するシステムである。設計支援システム１００は、アーキテクチャ選定装置２００と、ＨＷ／ＳＷ分割装置３００と、ＨＷ／ＳＷ設計装置４００とを備える。
【００１８】
アーキテクチャ選定装置２００は、機能モデル２２０、テストベクタ２２１、制約定義２２２および優先定義２２３を入力として受け、アーキテクチャモデル２３０を出力する。アーキテクチャ選定装置２００が出力するアーキテクチャモデル２３０と、機能モデル２２０は、ＨＷ／ＳＷ分割装置３００に入力される。ＨＷ／ＳＷ分割装置３００は、従来技術と同等のＨＷ／ＳＷ分割を行う。ＨＷ／ＳＷ設計装置４００は、ＨＷ／ＳＷ分割装置３００によるＨＷ／ＳＷ分割の結果を受けて、従来技術と同等のＨＷ設計およびＳＷ設計を行う。なお、ＨＷ／ＳＷ分割は、ＨＷ／ＳＷ分割装置３００の代わりに、システム設計者が行ってもよい。ＨＷ設計およびＳＷ設計は、ＨＷ／ＳＷ設計装置４００の代わりに、システム設計者が行ってもよい。
【００１９】
機能モデル２２０は、組み込みシステム等、設計対象のシステムの機能仕様をＣ言語等で記述したデータである。テストベクタ２２１は、機能モデル２２０を模擬するための設定値および入力データ等である。制約定義２２２は、設計対象のシステムに対する性能およびコスト等の制約を記載したデータである。優先定義２２３は、制約定義２２２に対する優先順位および重み付け等を記載したデータである。
【００２０】
アーキテクチャ選定装置２００は、コンピュータである。アーキテクチャ選定装置２００は、プロセッサ２４０を備えるとともに、メモリ２４１、入力インタフェース２４２および表示インタフェース２４３といった他のハードウェアを備える。プロセッサ２４０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２１】
アーキテクチャ選定装置２００は、機能要素として、第１解析部２０１と、第２解析部２０２と、評価部２０３と、第１選定部２０４と、集計部２０５と、第２選定部２０６とを備える。第１解析部２０１、第２解析部２０２、評価部２０３、第１選定部２０４、集計部２０５および第２選定部２０６の機能は、ソフトウェアにより実現される。
【００２２】
プロセッサ２４０は、各種処理を行うＩＣである。「ＩＣ」は、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。プロセッサ２４０は、例えば、ＣＰＵである。「ＣＰＵ」は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略語である。
【００２３】
メモリ２４１には、計算資源データベース２１０と、アーキテクチャデータベース２１１と、部品情報データベース２１２とが構築される。メモリ２４１は、例えば、フラッシュメモリまたはＲＡＭである。「ＲＡＭ」は、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略語である。
【００２４】
入力インタフェース２４２は、図示していない入力装置に接続されるポートである。入力インタフェース２４２は、例えば、ＵＳＢ端子である。「ＵＳＢ」は、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略語である。入力装置は、例えば、マウス、キーボードまたはタッチパネルである。
【００２５】
表示インタフェース２４３は、図示していないディスプレイに接続されるポートである。表示インタフェース２４３は、例えば、ＵＳＢ端子である。ディスプレイは、例えば、ＬＣＤである。「ＬＣＤ」は、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略語である。
【００２６】
アーキテクチャ選定装置２００は、ハードウェアとして、通信装置を備えていてもよい。
【００２７】
通信装置は、データを受信するレシーバおよびデータを送信するトランスミッタを含む。通信装置は、例えば、通信チップまたはＮＩＣである。「ＮＩＣ」は、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略語である。
【００２８】
メモリ２４１には、第１解析部２０１、第２解析部２０２、評価部２０３、第１選定部２０４、集計部２０５および第２選定部２０６の機能を実現するプログラムであるアーキテクチャ選定プログラムが記憶されている。アーキテクチャ選定プログラムは、プロセッサ２４０に読み込まれ、プロセッサ２４０によって実行される。メモリ２４１には、ＯＳも記憶されている。「ＯＳ」は、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略語である。プロセッサ２４０は、ＯＳを実行しながら、アーキテクチャ選定プログラムを実行する。なお、アーキテクチャ選定プログラムの一部または全部がＯＳに組み込まれていてもよい。
【００２９】
アーキテクチャ選定プログラムおよびＯＳは、補助記憶装置に記憶されていてもよい。補助記憶装置は、例えば、フラッシュメモリまたはＨＤＤである。「ＨＤＤ」は、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略語である。補助記憶装置に記憶されているアーキテクチャ選定プログラムおよびＯＳは、メモリ２４１にロードされ、プロセッサ２４０によって実行される。
【００３０】
アーキテクチャ選定装置２００は、プロセッサ２４０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、アーキテクチャ選定プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ２４０と同じように、各種処理を行うＩＣである。
【００３１】
第１解析部２０１、第２解析部２０２、評価部２０３、第１選定部２０４、集計部２０５および第２選定部２０６の処理の結果を示す情報、データ、信号値および変数値は、メモリ２４１、補助記憶装置、または、プロセッサ２４０内のレジスタまたはキャッシュメモリに記憶される。
【００３２】
アーキテクチャ選定プログラムは、磁気ディスクおよび光ディスクといった可搬記録媒体に記憶されてもよい。
【００３３】
＊＊＊動作の説明＊＊＊
図２を参照して、本実施の形態に係るアーキテクチャ選定装置２００の動作を説明する。アーキテクチャ選定装置２００の動作は、本実施の形態に係るアーキテクチャ選定方法に相当する。
【００３４】
ステップＳ１１において、第１解析部２０１は、機能モデル２２０を入力として受ける。第１解析部２０１は、機能モデル２２０の構文解析を行う。第１解析部２０１は、プログラム構造とデータ依存とを解析して処理を分割する。分割方法としては、任意の方法を用いることができるが、本実施の形態では、関数呼び出しごとに処理が分割される。ループ構文の前後でも処理が分割される。
【００３５】
上記のように、解析部の１つである第１解析部２０１は、設計対象のシステムに要求される機能を定義する機能モデル２２０を解析して、当該機能を発揮するために設計対象のシステムが実行する処理を特定する。第１解析部２０１は、特定した処理を２つ以上の処理に分割する。以下では、これら２つ以上の処理を「分割後処理」と呼ぶ。
【００３６】
ステップＳ１２において、第１解析部２０１は、機能モデル２２０の構文解析により、分割後処理ごとに、使用されている演算種別、ループ処理および入出力データ等の特徴を抽出する。第１解析部２０１は、抽出結果を機能モデル２２０の解析結果として出力する。
【００３７】
ステップＳ１３において、第２解析部２０２は、機能モデル２２０にテストベクタ２２１を与えてシミュレーションを行うことで、ステップＳ１２で出力された解析結果で抽出されているループ処理の繰り返し回数および入出力データのデータ量等を計測する。第２解析部２０２は、計測結果を演算回数およびデータ量の計測結果として出力する。
【００３８】
ステップＳ１４において、評価部２０３は、計算資源ごとの処理能力を評価する。計算資源とは、設計対象のシステムに組み入れられるプロセッシング部品の候補のことである。プロセッシング部品とは、設計対象のシステムに組み入れられるハードウェア部品のうち、処理を実行するハードウェア部品のことである。プロセッシング部品の候補としては、ＣＰＵ、ＤＳＰ、ＧＰＵおよびＦＰＧＡがある。「ＤＳＰ」は、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒの略語である。「ＧＰＵ」は、Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略語である。「ＦＰＧＡ」は、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。計算資源は、ＣＰＵ、ＤＳＰ、ＧＰＵおよびＦＰＧＡの違い、プロセッサコアのアーキテクチャの違い、および、浮動小数点演算ユニットまたは拡張命令ユニットの搭載による違いにより区別される。
【００３９】
計算資源ごとの処理能力を評価するための基準となる計算資源データは、計算資源データベース２１０に格納されている。評価部２０３は、分割後処理ごとに、ステップＳ１２およびステップＳ１３で出力された演算回数およびデータ量の計測結果に基づき、計算資源ごとの評価値を算出する。評価部２０３は、算出した評価値を計算資源の評価結果として出力する。
【００４０】
上記のように、評価部２０３は、設計対象のシステムに組み入れられるプロセッシング部品の組み合わせの候補ごとに性能を評価する。
【００４１】
後述するように、本実施の形態において、評価部２０３は、設計対象のシステムに組み入れられるプロセッシング部品の組み合わせの候補ごとに、性能の評価値として、第１解析部２０１により特定された処理の実行にかかる時間の指標値を算出する。時間の指標値としては、任意の指標値が算出されてよく、単に時間の長さが算出されてもよいが、本実施の形態ではＭＩＰＳが算出される。「ＭＩＰＳ」は、Ｍｉｌｌｉｏｎ  Ｉｎｓｔｒｕｃｔｉｏｎｓ  Ｐｅｒ  Ｓｅｃｏｎｄの略語である。
【００４２】
必須ではないが、前述したように、本実施の形態では、第１解析部２０１が、設計対象のシステムが実行する処理を分割する。このため、評価部２０３は、設計対象のシステムに組み入れられるプロセッシング部品の組み合わせの候補ごとに、それぞれの分割後処理の実行にかかる時間の指標値を算出する。評価部２０３は、性能の評価値として、算出した時間の指標値の合計を算出する。
【００４３】
ステップＳ１５において、第１選定部２０４は、ステップＳ１４で出力された計算資源の評価結果と、制約定義２２２および優先定義２２３とに基づき、アーキテクチャデータベース２１１に格納されているアーキテクチャ情報からアーキテクチャ候補を選定する。制約定義２２２では、性能およびコストの制約条件が定義されている。コストの制約条件としては、少なくとも１種類のコストの制約条件が定義される。コストの種類の例としては、イニシャルコストである費用と、ランニングコストである消費電力と、スペースコストである面積とがある。優先定義２２３では、性能およびコストの制約条件に対して、条件の順守を優先する順位、および、条件を緩和する場合の許容範囲が定義されている。
【００４４】
具体的には、第１選定部２０４は、ステップＳ１４で算出された計算資源の評価値から機能モデル２２０全体の処理内容の傾向および演算量等を分析する。第１選定部２０４は、制約定義２２２と優先定義２２３とからシステムに対する要求レベルを分析する。第１選定部２０４は、これらの分析結果から、過去のシステムのアーキテクチャで同等の処理内容、演算量および要求レベルを解決できたものをアーキテクチャデータベース２１１から検索する。第１選定部２０４は、検索結果をアーキテクチャ候補として出力する。
【００４５】
アーキテクチャ候補は、１つに限定される場合もあれば、複数選定される場合もある。制約定義２２２の要求レベルを満たせるアーキテクチャ候補がない場合、第１選定部２０４は、優先定義２２３に従い、制約定義２２２の要求レベルを緩和してアーキテクチャ候補を選定する。
【００４６】
ステップＳ１６において、集計部２０５は、ステップＳ１５で選定されたアーキテクチャ候補を構成する部品に対して、分割後処理を割り当てる。
【００４７】
ステップＳ１７において、集計部２０５は、ステップＳ１５で選定されたアーキテクチャ候補を構成する部品を部品情報データベース２１２から検索して、アーキテクチャモデル候補を構築する。部品情報データベース２１２には、個別のハードウェア部品のコストを定義する部品情報が格納されている。部品情報は、個別のハードウェア部品のコストとして、イニシャルコストである費用と、ランニングコストである消費電力と、スペースコストである面積とのうち少なくとも１種類のコストを定義する情報である。
【００４８】
ステップＳ１８において、集計部２０５は、構築したアーキテクチャモデル候補について、評価値を算出する。
【００４９】
上記のように、集計部２０５は、部品情報をメモリ２４１から取得する。集計部２０５は、取得した部品情報に基づいて、設計対象のシステムに組み入れられるハードウェア部品の組み合わせの候補ごとにコストを集計する。
【００５０】
ステップＳ１９において、第２選定部２０６は、ステップＳ１８で算出された評価値と、制約定義２２２および優先定義２２３とに従い、アーキテクチャを１つに絞る。第２選定部２０６は、その１つのアーキテクチャを示すアーキテクチャモデル２３０を出力する。
【００５１】
上記のように、選定部である第１選定部２０４および第２選定部２０６は、設計対象のシステムに組み入れられるハードウェア部品の組み合わせの候補の中から、ハードウェア部品の組み合わせを設計対象のシステムのアーキテクチャとして１つ選定する。選定されるハードウェア部品の組み合わせは、評価部２０３により評価された性能が設計対象のシステムに与えられた性能の制約条件を満たすプロセッシング部品の組み合わせを含み、かつ、集計部２０５により集計されたコストが設計対象のシステムに与えられたコストの制約条件を満たすハードウェア部品の組み合わせである。
【００５２】
本実施の形態において、第１選定部２０４および第２選定部２０６は、優先順位が高い制約条件から順番に適用して、設計対象のシステムに組み入れられるハードウェア部品の組み合わせの候補を絞り込む。
【００５３】
後述するように、本実施の形態では、性能の制約条件の優先順位がコストの制約条件よりも高く設定されている。このため、先に、第１選定部２０４が、設計対象のシステムに組み入れられるハードウェア部品の組み合わせの候補の中から、評価部２０３により算出された時間の指標値が、性能の制約条件として決められた上限値以下であるプロセッシング部品の組み合わせを含むハードウェア部品の組み合わせの候補を選定する。その後、第２選定部２０６が、第１選定部２０４により選定されたハードウェア部品の組み合わせの候補の中から、集計部２０５により集計されたコストがコストの制約条件を満たすハードウェア部品の組み合わせをシステムのアーキテクチャとして選定する。
【００５４】
以下、アーキテクチャ選定装置２００で扱われるデータの例を挙げてアーキテクチャ選定装置２００の動作を説明する。
【００５５】
図３は、機能モデル２２０の記述例として、Ｃ言語のソースコード５００を示している。ソースコード５００の各行の先頭には、行番号が記されている。このソースコード５００は、機能モデル２２０全体のソースコードの一部である。
【００５６】
図４および図５は、第１解析部２０１の出力する機能モデル２２０の解析結果の例として、処理Ｘの解析結果５１０と処理Ｙの解析結果５１１とをそれぞれ示している。
【００５７】
ステップＳ１１で、第１解析部２０１が機能モデル２２０のソースコード５００を分析する場合、第１解析部２０１は、Ｌ００７からＬ０１５までの部分はＬ００７から順次処理されていることから１つの処理Ｘとして抽出する。また、第１解析部２０１は、Ｌ０１７からＬ０２３までの部分はＬ０１７のループ処理に属する記載で、繰り返し処理されていることから１つの処理Ｙとして抽出する。
【００５８】
ステップＳ１２で、第１解析部２０１は、機能モデル２２０のソースコード５００を分析し、使用されている演算種別、ループ処理および入出力データ等を抽出する。第１解析部２０１は、機能モデル２２０のソースコード５００のＬ００７からＬ０１５までの部分の分析を行って、処理Ｘの分析データを構築する。また、第１解析部２０１は、Ｌ０１７からＬ０２３までの部分の分析を行って、処理Ｙの分析データを構築する。
【００５９】
具体的には、第１解析部２０１は、ソースコード５００の構文解析を行って、処理全体の入出力変数とそのデータ幅、処理内容、および、使用されている演算種別と入出力変数を抽出する。
【００６０】
図４および図５は、さらに、第２解析部２０２の出力する演算回数およびデータ量の計測結果の例として、処理Ｘの計測結果５２０と処理Ｙの計測結果５２１とをそれぞれ示している。
【００６１】
ステップＳ１３で、第２解析部２０２は、処理Ｘの解析結果５１０と処理Ｙの解析結果５１１とに対して、処理全体の入出力データの個数と、処理の回数とを計測して、計測結果を付加する。
【００６２】
図６、図７、図８および図９は、計算資源データベース２１０に格納されている計算資源データの例として、計算資源Ｒａの計算資源データ６００と、計算資源Ｒｂの計算資源データ６０１と、計算資源Ｒｃの計算資源データ６０２と、計算資源Ｒｄの計算資源データ６０３とをそれぞれ示している。計算資源データは、計算資源ごとの命令に必要なステップ数等を格納する。
【００６３】
計算資源Ｒａは、浮動小数点非対応のＣＰＵである。計算資源Ｒｂは、浮動小数点対応のＣＰＵである。計算資源Ｒｃは、浮動小数点非対応のＤＳＰである。計算資源Ｒｄは、浮動小数点対応のＤＳＰである。
【００６４】
図１０は、ステップＳ１４の中間データの例として、図４の処理Ｘの計測結果５２０に対して、計算資源データを基に計算資源の評価値を付加したデータを示している。そのようなデータの具体例として、計算資源Ｒａの評価結果６１０と、計算資源Ｒｂの評価結果６１１と、計算資源Ｒｃの評価結果６１２と、計算資源Ｒｅの評価結果６１３とがある。
【００６５】
計算資源Ｒａの評価結果６１０は、処理Ｘの演算回数およびデータ量の計測結果５２０に対して、計算資源Ｒａの計算資源データ６００を基に計算資源Ｒａの性能を評価した結果である。この評価結果６１０は、実行に必要な命令数が７命令で、処理ステップ数が２０ステップであることを示している。
【００６６】
計算資源Ｒｂの評価結果６１１は、処理Ｘの演算回数およびデータ量の計測結果５２０に対して、計算資源Ｒｂの計算資源データ６０１を基に計算資源Ｒｂの性能を評価した結果である。この評価結果６１１は、実行に必要な命令数が７命令で、処理ステップ数が２０ステップであることを示している。
【００６７】
計算資源Ｒｃの評価結果６１２は、処理Ｘの演算回数およびデータ量の計測結果５２０に対して、計算資源Ｒｃの計算資源データ６０２を基に計算資源Ｒｃの性能を評価した結果である。この評価結果６１２は、実行に必要な命令数が７命令で、処理ステップ数が２０ステップであることを示している。
【００６８】
図１１は、ステップＳ１４の中間データの例として、図５の処理Ｙの計測結果５２１に対して、計算資源データを基に計算資源の評価値を付加したデータを示している。そのようなデータの具体例として、計算資源Ｒｂの評価結果６２０と、計算資源Ｒｄの評価結果６２１と、計算資源Ｒｅの評価結果６２２とがある。
【００６９】
計算資源Ｒｂの評価結果６２０は、処理Ｙの演算回数およびデータ量の計測結果５２１に対して、計算資源Ｒｂの計算資源データ６０１を基に計算資源Ｒｂの性能を評価した結果である。この評価結果６２０は、実行に必要な命令数が６命令で、処理ステップ数が８，０００ステップであることを示している。
【００７０】
計算資源Ｒｃの評価結果６２１は、処理Ｙの演算回数およびデータ量の計測結果５２１に対して、計算資源Ｒｃの計算資源データ６０２を基に計算資源Ｒｃの性能を評価した結果である。この評価結果６２１は、実行に必要な命令数が５命令で、処理ステップ数が２，６００ステップであることを示している。
【００７１】
ステップＳ１４で、評価部２０３は、演算回数およびデータ量の計測結果に記載されている処理の回数に対して、計算資源データに記載されている演算ごとの処理ステップを割り当てることで、各分割後処理を実行するために必要なステップ数を計算資源ごとに算出する。評価部２０３は、算出したステップ数を計算資源の評価結果として出力する。
【００７２】
図１２は、計算資源の評価結果の例として、図１０および図１１の処理ごとの計算資源の評価値を基に、システムを構築するために必要な計算資源の組み合わせと処理に必要なステップ数とを算出した評価結果６３０を示している。この評価結果６３０は、システムの構築方法として、組み合わせ１、組み合わせ２および組み合わせ３の３つがあることを示している。組み合わせ１は、計算資源Ｒｂのみで構築でき、４００，０００ステップが必要である。組み合わせ２は、計算資源Ｒａと計算資源Ｒｄとで構築でき、計算資源Ｒａでは４，０００ステップが必要で、計算資源Ｒｄでは１９０，０００ステップが必要である。組み合わせ３は、計算資源Ｒｂと計算資源Ｒｅとで構築でき、計算資源Ｒｂでは１００，０００ステップが必要で、計算資源Ｒｅでは１００，０００ステップが必要である。
【００７３】
図１２は、さらに、制約定義２２２および優先定義２２３の例として、制約条件６４０および優先順位６５０を示している。
【００７４】
性能の制約条件６４０としては、処理時間の上限値が定義されている。消費電力の制約条件６４０としては、消費電力の上限値が定義されている。費用の制約条件６４０としては、費用の上限値が定義されている。
【００７５】
優先順位６５０は、処理時間が最も高く、続いて費用、消費電力の順番で低く設定されている。処理時間の許容範囲が“＋０％”であることから、処理時間は１ｍｓ以下であることが必須である。費用の許容範囲が“＋１０％以内”であることから、費用は￥５５０以下であることが必須である。消費電力の許容範囲が“＋２０％以内”であることから、消費電力は６００ｍＷ以下であることが必須である。
【００７６】
優先順位１番目の条件は、処理時間＝１ｍｓ、消費電力＝５００ｍＷ、および、コスト＝￥５００の組み合わせである。
【００７７】
優先順位２番目の条件は、処理時間＝１ｍｓ、消費電力＝６００ｍＷ、および、コスト＝￥５００の組み合わせである。
【００７８】
優先順位３番目の条件は、処理時間＝１ｍｓ、消費電力＝６００ｍＷ、および、コスト＝￥５５０の組み合わせである。
【００７９】
図１２は、さらに、計算資源の評価結果６３０に対して、処理時間の制約条件６４０を基にＭＩＰＳを算出した結果を、算出結果６６０として示している。この算出結果６６０では、組み合わせ１の計算資源Ｒｂに４００ＭＩＰＳが必要なことが示されている。組み合わせ２の計算資源Ｒａに４ＭＩＰＳが必要で、組み合わせ２の計算資源Ｒｄに１９０ＭＩＰＳが必要なことが示されている。組み合わせ３の計算資源Ｒｂに１００ＭＩＰＳが必要で、組み合わせ３の計算資源Ｒｅに１００ＭＩＰＳが必要なことが示されている。
【００８０】
図１３は、アーキテクチャデータベース２１１に格納されているアーキテクチャ情報の例を示している。アーキテクチャ情報は、アーキテクチャとその選定条件とをセットで定義する情報である。
【００８１】
アーキテクチャＡａのアーキテクチャ情報７００は、ＣＰＵとＤＲＡＭとＦＬＡＳＨとがバスで接続されているアーキテクチャを示している。「ＤＲＡＭ」は、Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略語である。「ＦＬＡＳＨ」は、フラッシュメモリのことである。アーキテクチャＡａの選定条件７１０としては、計算資源Ｒｂの性能が２００ＭＩＰＳ以内、費用が￥４００以下、かつ、消費電力が３００ｍＷ以下であるという条件が定義されている。
【００８２】
アーキテクチャＡｂのアーキテクチャ情報７０１は、ＣＰＵとＤＳＰとＤＲＡＭとＦＬＡＳＨとがバスで接続されているアーキテクチャを示している。アーキテクチャＡｂの選定条件７１１としては、計算資源Ｒａの性能が５０ＭＩＰＳ以内、計算資源Ｒｄの性能が２００ＭＩＰＳ以内、費用が￥６００以下、かつ、消費電力が５００ｍＷ以下であるという条件が定義されている。
【００８３】
アーキテクチャＡｃのアーキテクチャ情報７０２は、ＣＰＵとＦＰＧＡとＤＲＡＭとＦＬＡＳＨとがバスで接続されているアーキテクチャを示している。アーキテクチャＡｃの選定条件７１２としては、計算資源Ｒａの性能が５０ＭＩＰＳ以内、計算資源Ｒｅの性能が２００ＭＩＰＳ以内、費用が￥７００以下、かつ、消費電力が４００ｍＷ以下であるという条件が定義されている。
【００８４】
ステップＳ１５で、第１選定部２０４は、図１２の算出結果６６０に記載されている計算資源ごとの必要なＭＩＰＳと、図１２の消費電力および費用の制約条件６４０とに従い、図１３のアーキテクチャ情報を比較する。第１選定部２０４は、アーキテクチャＡｂとアーキテクチャＡｃとが条件に一致することから、アーキテクチャＡｂとアーキテクチャＡｃとをアーキテクチャ候補として選定する。
【００８５】
図１４および図１５は、部品情報データベース２１２に格納されている部品情報の例として、ＣＰＵの部品情報８００とＤＳＰの部品情報８０１とをそれぞれ示している。
【００８６】
ＣＰＵの部品情報８００には、ＣＰＵ部品ごとの型番、コア種別、バスインタフェース、消費電力および価格の情報が含まれている。
【００８７】
ＤＳＰの部品情報８０１には、ＤＳＰ部品ごとの型番、コア種別、バスインタフェース、消費電力および価格の情報が含まれている。
【００８８】
図１６および図１７は、ステップＳ１７のアーキテクチャモデル候補の例として、アーキテクチャＡｂの部品の選定結果８１０とアーキテクチャＡｃの部品の選定結果８１１とをそれぞれ示している。
【００８９】
ステップＳ１７で、集計部２０５は、アーキテクチャＡｂを構成するＣＰＵ、ＤＳＰ、ＤＲＡＭおよびＦＬＡＳＨの部品に関する情報をＣＰＵの部品情報８００およびＤＳＰの部品情報８０１等から抽出する。ステップＳ１８で、集計部２０５は、抽出した情報から、消費電力と費用とを算出する。集計部２０５は、算出結果を選定結果８１０として出力する。
【００９０】
また、ステップＳ１７で、集計部２０５は、アーキテクチャＡｃを構成するＣＰＵ、ＦＰＧＡ、ＤＲＡＭおよびＦＬＡＳＨの部品に関する情報をＣＰＵの部品情報８００等から抽出する。ステップＳ１８で、集計部２０５は、抽出した情報から、消費電力と費用とを算出する。集計部２０５は、算出結果を選定結果８１１として出力する。
【００９１】
アーキテクチャＡｂの選定結果８１０では、消費電力が５５０ｍＷで、費用が￥４５０になっている。アーキテクチャＡｃの選定結果８１１では、消費電力が４５０ｍＷで、費用が￥６５０になっている。
【００９２】
ステップＳ１９で、第２選定部２０６は、図１２の消費電力および費用の制約条件６４０、および、優先順位６５０に対して、アーキテクチャＡｂの選定結果８１０と、アーキテクチャＡｃの選定結果８１１とが制約を満たしているか否かを判断する。
【００９３】
前述したように、優先順位１番目の条件は、処理時間＝１ｍｓ、消費電力＝５００ｍＷ、および、コスト＝￥５００の組み合わせである。この条件に対して、アーキテクチャＡｂの選定結果８１０では、費用は制約条件を満たしているが、消費電力が制約条件を満たしていない。アーキテクチャＡｃの選定結果８１１では、消費電力は制約条件を満たしているが、費用は制約条件を満たしていない。
【００９４】
前述したように、優先順位２番目の条件は、処理時間＝１ｍｓ、消費電力＝６００ｍＷ、および、コスト＝￥５００の組み合わせである。この条件に対して、アーキテクチャＡｂの選定結果８１０では、費用および消費電力ともに制約条件を満たしている。アーキテクチャＡｃの選定結果８１１では、消費電力は制約条件を満たしているが、費用は制約条件を満たしていない。
【００９５】
以上の制約条件評価結果から、ステップＳ１９では、優先順位２番目の条件を満たしているアーキテクチャＡｂが最終的に選定される。
【００９６】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態によれば、システム設計者に頼らずに、性能およびコストの制約条件を満たす部品の組み合わせをシステムのアーキテクチャとして選定することができる。
【００９７】
＊＊＊他の構成＊＊＊
本実施の形態では、第１解析部２０１、第２解析部２０２、評価部２０３、第１選定部２０４、集計部２０５および第２選定部２０６の機能がソフトウェアにより実現されるが、変形例として、第１解析部２０１、第２解析部２０２、評価部２０３、第１選定部２０４、集計部２０５および第２選定部２０６の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、第１解析部２０１、第２解析部２０２、評価部２０３、第１選定部２０４、集計部２０５および第２選定部２０６の機能の一部が専用の電子回路により実現され、残りがソフトウェアにより実現されてもよい。
【００９８】
専用の電子回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＦＰＧＡまたはＡＳＩＣである。「ＧＡ」は、Ｇａｔｅ  Ａｒｒａｙの略語である。「ＡＳＩＣ」は、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。
【００９９】
プロセッサ２４０、メモリ２４１および専用の電子回路を、総称して「プロセッシングサーキットリ」という。つまり、第１解析部２０１、第２解析部２０２、評価部２０３、第１選定部２０４、集計部２０５および第２選定部２０６の機能がソフトウェアにより実現されるか、ソフトウェアとハードウェアとの組み合わせにより実現されるかに関わらず、第１解析部２０１、第２解析部２０２、評価部２０３、第１選定部２０４、集計部２０５および第２選定部２０６の機能は、プロセッシングサーキットリにより実現される。
【０１００】
アーキテクチャ選定装置２００の「装置」を「方法」に読み替え、第１解析部２０１、第２解析部２０２、評価部２０３、第１選定部２０４、集計部２０５および第２選定部２０６の「部」を「工程」に読み替えてもよい。あるいは、アーキテクチャ選定装置２００の「装置」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な媒体」に読み替え、第１解析部２０１、第２解析部２０２、評価部２０３、第１選定部２０４、集計部２０５および第２選定部２０６の「部」を「手順」または「処理」に読み替えてもよい。
【符号の説明】
【０１０１】
１００  設計支援システム、２００  アーキテクチャ選定装置、２０１  第１解析部、２０２  第２解析部、２０３  評価部、２０４  第１選定部、２０５  集計部、２０６  第２選定部、２１０  計算資源データベース、２１１  アーキテクチャデータベース、２１２  部品情報データベース、２２０  機能モデル、２２１  テストベクタ、２２２  制約定義、２２３  優先定義、２３０  アーキテクチャモデル、２４０  プロセッサ、２４１  メモリ、２４２  入力インタフェース、２４３  表示インタフェース、３００  ＨＷ／ＳＷ分割装置、４００  ＨＷ／ＳＷ設計装置、５００  ソースコード、５１０  解析結果、５１１  解析結果、５２０  計測結果、５２１  計測結果、６００  計算資源データ、６０１  計算資源データ、６０２  計算資源データ、６０３  計算資源データ、６１０  評価結果、６１１  評価結果、６１２  評価結果、６１３  評価結果、６２０  評価結果、６２１  評価結果、６２２  評価結果、６３０  評価結果、６４０  制約条件、６５０  優先順位、６６０  算出結果、７００  アーキテクチャ情報、７０１  アーキテクチャ情報、７０２  アーキテクチャ情報、７１０  選定条件、７１１  選定条件、７１２  選定条件、８００  部品情報、８０１  部品情報、８１０  選定結果、８１１  選定結果。
【図１】
0006567215.tif 000002
【図２】
0006567215.tif 000003
【図３】
0006567215.tif 000004
【図４】
0006567215.tif 000005
【図５】
0006567215.tif 000006
【図６】
0006567215.tif 000007
【図７】
0006567215.tif 000008
【図８】
0006567215.tif 000009
【図９】
0006567215.tif 000010
【図１０】
0006567215.tif 000011
【図１１】
0006567215.tif 000012
【図１２】
0006567215.tif 000013
【図１３】
0006567215.tif 000014
【図１４】
0006567215.tif 000015
【図１５】
0006567215.tif 000016
【図１６】
0006567215.tif 000017
【図１７】
0006567215.tif 000018