(57)【要約】      （修正有）【課題】時間制約を満たし、消費電力が低いアーキテクチャを構築するときのユーザの負担を軽減し、作業時間を短縮する。【解決手段】アーキテクチャ検証装置は、複数のモジュール及びバスを含むアーキテクチャの時間制約と、モジュールの性能仕様と、入力部１０ａと、モジュールがバスに対して発行するバストランザクションを取得するバス監視部１０ｂと、入力トランザクションと、データ処理内容及び処理時間を示す処理情報と、データの出力トランザクションと、を取得するモジュール監視部１０ｃと、バストランザクションと、入力トランザクション、処理情報、及び出力トランザクションと、を関連付けて、時間制約を満たす第１アーキテクチャ生成部１０ｄと、第１アーキテクチャの処理時間を変更して、時間制約を満たし、且つ、第１アーキテクチャより消費電力が低い第２アーキテクチャ生成部１０ｅと、第２アーキテクチャの出力部１０ｇと、を備える。【選択図】図４
2010286885.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュール及びバスを含むアーキテクチャの時間制約と、前記モジュールの性能仕様と、を入力する入力部と、
前記モジュールが前記バスに対して発行するバストランザクションを取得するバス監視部と、
前記モジュールがデータを入力するときの入力トランザクションと、前記モジュールが前記データを処理するときの処理内容及び処理時間を示す処理情報と、前記モジュールが前記処理されたデータを出力するときの出力トランザクションと、を取得するモジュール監視部と、
前記バストランザクションと、前記入力トランザクション、前記処理情報、及び前記出力トランザクションと、を関連付けて、前記時間制約を満たす第１アーキテクチャを生成する第１アーキテクチャ生成部と、
前記第１アーキテクチャの処理時間を変更して、前記時間制約を満たし、且つ、前記第１アーキテクチャより消費電力が低い第２アーキテクチャを生成する第２アーキテクチャ生成部と、
前記第２アーキテクチャを出力する出力部と、
を備えることを特徴とするアーキテクチャ検証装置。
【請求項２】
前記第２アーキテクチャ生成部は、前記アーキテクチャの時間制約と処理時間との差を示す時間マージンを前記第１アーキテクチャの処理時間に割り当てて、前記第２アーキテクチャを生成する
請求項１に記載のアーキテクチャ検証装置。
【請求項３】
前記入力部は、さらに、前記アーキテクチャの面積制約を入力し、
前記第２アーキテクチャ生成部は、さらに、前記モジュールを動作させるための制御回路が前記面積制約を満たす第２アーキテクチャを生成する
請求項２に記載のアーキテクチャ検証装置。
【請求項４】
前記第２アーキテクチャ生成部は、前記モジュールの実行間隔と、前記モジュールへの電源供給停止及び電源供給再開に必要な時間と、前記モジュールへの電源供給停止及び電源供給再開を制御する制御回路の消費電力と、に基づいて、前記第２アーキテクチャを生成する
請求項１に記載のアーキテクチャ検証装置。
【請求項５】
前記モジュールの実行回数を取得する取得部をさらに備え、
前記出力部は、前記実行回数に基づいて、前記第１アーキテクチャに対する前記第２アーキテクチャの消費電力の削減効果をさらに出力する
請求項１乃至４の何れか１項に記載のアーキテクチャ検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アーキテクチャ検証装置に関し、特に、システムＬＳＩのアーキテクチャの解析を支援するためのツールとして使用されるアーキテクチャ検証装置に関する。
【背景技術】
【０００２】
一般的に、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の性能は、使用するシステムのアーキテクチャに依存するところが大きい。したがって、システムＬＳＩの性能を評価するには、アーキテクチャを解析する必要がある。
【０００３】
しかしながら、アーキテクチャの解析には、システムを構成するプロセッサの選択や、システム上で実行される各処理のプロセッサへの割り振りや、プロセッサに割り振られた各処理の処理時間や、バス上のデータ転送時間や、バスの優先度や、バス幅や、バス調停の方法や、使用するプロセッサの種類や、使用するプロセッサの動作周波数などの大量のパラメータを考慮してアーキテクチャを解析する必要がある。したがって、ユーザが仕様を満たすアーキテクチャを決定することは実質的に不可能である。
【０００４】
これに対して、従来では、ユーザがアーキテクチャを決定する際に、アーキテクチャの解析を支援するために用いられるツールとして、アーキテクチャ検証装置が知られている。従来のアーキテクチャ検証装置は、候補として挙げられたアーキテクチャを実現するためのモデルをシミュレータや実機上で動作させ、バスに対して発行されるバストランザクションに関するバストランザクションや、バス競合によるバス使用待ち情報や、バスのスループット・レイテンシ情報などを記憶し、それらの情報をグラフィカルに表示することによって、アーキテクチャが仕様を満たしているか否かの判断及びアーキテクチャの評価を支援する。
【０００５】
しかしながら、ユーザがこれらの情報のみからアーキテクチャが仕様を満たしているか否かを判断することは困難である。したがって、このような問題を解決するための技術として、アプリケーション情報とバストランザクションとをつなぎ合わせる技術が知られている（特許文献１を参照）。特許文献１に開示されている技術によれば、ユーザは、アーキテクチャが仕様を満たしているか否かを容易に判断することができる。
【０００６】
しかしながら、特許文献１に開示されている技術では、仕様を満たさないアーキテクチャに対して、仕様を満たすようにするためにどのような変更を行うべきかに関する情報がユーザに与えられるわけではない。したがって、ユーザは、仕様を満たすようなアーキテクチャを決定するのに試行錯誤が必要である。その結果、アーキテクチャの解析におけるユーザの負担が増加し、且つ、解析に要する作業時間が長くなってしまう。
【０００７】
一方、近年のシステムＬＳＩでは、消費電力の削減の重要性が増加している。
【０００８】
しかしながら、従来のアーキテクチャの解析では、アーキテクチャが時間制約を満たすか否かに着目して行われている。従って、時間制約を満たすアーキテクチャが、必ずしも消費電力の点で優れたアーキテクチャであるとは限らない。また、時間制約を満たし、且つ、消費電力が低いアーキテクチャを構築するためには、ユーザの試行錯誤が必要である。その結果、このようなアーキテクチャを構築するときのユーザの負担が増加し、且つ、作業時間が長くなってしまう。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００７−２０７１２０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、時間制約を満たし、且つ、消費電力が低いアーキテクチャを構築するときのユーザの負担を軽減し、且つ、作業時間を短縮するためのアーキテクチャ解析装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明によれば、
複数のモジュール及びバスを含むアーキテクチャの時間制約と、前記モジュールの性能仕様と、を入力する入力部と、
前記モジュールが前記バスに対して発行するバストランザクションを取得するバス監視部と、
前記モジュールがデータを入力するときの入力トランザクションと、前記モジュールが前記データを処理するときの処理内容及び処理時間を示す処理情報と、前記モジュールが前記処理されたデータを出力するときの出力トランザクションと、を取得するモジュール監視部と、
前記バストランザクションと、前記入力トランザクション、前記処理情報、及び前記出力トランザクションと、を関連付けて、前記時間制約を満たす第１アーキテクチャを生成する第１アーキテクチャ生成部と、
前記第１アーキテクチャの処理時間を変更して、前記時間制約を満たし、且つ、前記第１アーキテクチャより消費電力が低い第２アーキテクチャを生成する第２アーキテクチャ生成部と、
前記第２アーキテクチャを出力する出力部と、
を備えることを特徴とするアーキテクチャ検証装置が提供される。
【発明の効果】
【００１２】
本発明によれば、時間制約を満たし、且つ、消費電力が低いアーキテクチャを構築するときのユーザの負担を軽減し、且つ、作業時間を短縮することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係るアーキテクチャ検証装置の構成を示すブロック図である。
【図２】図１のアーキテクチャ検証装置１の検証対象となるアーキテクチャを示すブロック図である。
【図３】図２のアーキテクチャにおいて行われる画像処理及び音声処理の概略を示すブロック図である。
【図４】本発明の第１実施形態に係る図１のプロセッサ１０によって実現される機能を示すブロック図である。
【図５】本発明の第１実施形態に係るアーキテクチャ検証処理の手順を示すフローチャートである。
【図６】本発明の第１実施形態に係る第２アーキテクチャを説明するための概略図である。
【図７】動作周波数又は電源電圧と、処理時間と、消費電力との関係を示すテーブルである。
【図８】本発明の第１実施形態の第２変形例に係る第２アーキテクチャを説明するための概略図である。
【図９】本発明の第１実施形態の第３変形例に係る第２アーキテクチャを説明するための概略図である。
【図１０】本発明の第１実施形態に係るステートマシンを示す概略図である。
【図１１】本発明の第２実施形態に係る図１のプロセッサ１０によって実現される機能を示すブロック図である。
【図１２】図１１の出力部１０ｇによって出力される削減効果を示す概略図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１５】
（第１実施形態）
本発明の第１実施形態を説明する。本発明の第１実施形態は、時間制約を満たすアーキテクチャから、時間制約を満たし、且つ、消費電力が低いアーキテクチャが生成される例である。
【００１６】
本発明の実施例１に係るアーキテクチャ検証装置の構成を説明する。図１は、本発明の第１実施形態に係るアーキテクチャ検証装置の構成を示すブロック図である。図２は、図１のアーキテクチャ検証装置１の検証対象となるアーキテクチャを示すブロック図である。図３は、図２のアーキテクチャにおいて行われる画像処理及び音声処理の概略を示すブロック図である。図４は、本発明の第１実施形態に係る図１のプロセッサ１０によって実現される機能を示すブロック図である。
【００１７】
図１に示すように、本発明の第１実施形態に係るアーキテクチャ検証装置１は、様々な処理を実行可能に構成されたプロセッサ１０と、キーボード又はマウス等の入力装置１２と、ハードディスク等の記憶装置１４と、液晶ディスプレイ、プリンタ、又はネットワークデバイス等の出力装置１６と、シミュレーションを実行するシミュレータ１８と、を備える。プロセッサ１０は、記憶装置１４に記憶されたシミュレーションプログラムを起動して、シミュレータ１８を実現するように構成される。アーキテクチャ検証装置１の検証対象となるアーキテクチャは、シミュレータ１８上で動作し、複数の処理（例えば、画像処理及び音声処理）を並列に実行するように構成される。
【００１８】
図２に示すように、図１のアーキテクチャ検証装置１の検証対象となるアーキテクチャは、複数のモジュール（プロセッサＭＰＵ、メモリコントローラＤＭＡＣ１及びＤＭＡＣ２、サブプロセッサＳＵＢ、ユーザロジックＵＬ、メモリＭＥＭ１乃至ＭＥＭ４、並びに入出力インタフェースＩ／Ｏ１及びＩ／Ｏ２）と、バスと、クロックジェネレータＣＬＫと、電源ＰＯＷと、を備える。
【００１９】
各モジュールは、それぞれ、バスを介して互いに接続される。また、各モジュールは、それぞれ、イニシエータモジュール又はターゲットモジュールとして動作し、トランザクションをやり取りすることによって、一連の処理を実行する。このとき、各モジュールは、バスに対するバストランザクション、データを入力するときの入力トランザクション、データに対して実行される処理、及びデータを出力するときの出力トランザクションを発行する。各モジュールは、それぞれ、バスブリッジによって複数のバスを介して接続されても良い。各モジュールには、クロックジェネレータＣＬＫから所定の周波数（Ｃ１：１００［ＭＨｚ］、Ｃ２：２００［ＭＨｚ］、Ｃ３：５０［ＭＨｚ］、又はＣ４：５０［ＭＨｚ］）が供給され、電源ＰＯＷから所定の電源電圧（Ｐ１：３．３［Ｖ］又はＰ２：５［Ｖ］）が供給される。
【００２０】
図３（Ａ）に示すように、図２のアーキテクチャにおいて行われる画像処理では、メモリコントローラＤＭＡＣ１は、メモリＭＥＭ１から画像データを読み出すときに入力トランザクションＸ１を発行し、この画像データを作業領域へ転送するときに処理Ｘ１＿２を実行し、この画像データをメモリＭＥＭ２に書き込むときに出力トランザクションＸ２を発行する。次に、メモリコントローラＤＭＡＣ１は、これと同様の処理を繰り返し、入力トランザクションＸ３、処理Ｘ３＿４、及び出力トランザクションＸ４を発行する。次に、サブプロセッサＳＵＢは、メモリＭＥＭ２から画像データを読み出すときに入力トランザクションＸ５を発行し、この画像データに対する画像処理を実行するときに処理Ｘ５＿６を実行し、画像処理された画像データをメモリＭＥＭ３に書き込むときに出力トランザクションＸ６を発行する。次に、メモリコントローラＤＭＡＣ１は、メモリＭＥＭ３から画像データを読み出すときに入力トランザクションＸ７を発行し、この画像データを外部出力するときに処理Ｘ７＿８を実行し、この画像データを入出力インタフェースＩ／Ｏ１に送信するときに出力トランザクションＸ８を発行する。これらの一連の処理に対する時間制約は、４５０［ｎｓ］以内である。
【００２１】
図３（Ｂ）に示すように、図２のアーキテクチャにおいて実行される音声処理では、メモリコントローラＤＭＡＣ２は、メモリＭＥＭ１から音声データを読み出すときに入力トランザクションＹ１を発行し、この音声データを作業領域へ転送するときに処理Ｙ１＿２を実行し、この音声データをメモリＭＥＭ４に書き込むときに出力トランザクションＹ２を発行する。次に、ユーザロジックＵＬは、メモリＭＥＭ４から音声データを読み出すときに入力トランザクションＹ３を発行し、この音声データに対する音声処理を実行するときに処理Ｙ３＿４を実行し、音声処理された音声データをメモリＭＥＭ４に書き込むときに出力トランザクションＹ４を発行する。次に、メモリコントローラＤＭＡＣ２は、メモリＭＥＭ４から音声データを読み出すときに入力トランザクションＹ５を発行し、この音声データを外部出力するときに処理Ｙ５＿６を実行し、この音声データを入出力インタフェースＩ／Ｏ２に送信するときに出力トランザクションＹ６を発行する。これらの一連の処理に対する時間制約は、４２０［ｎｓ］以内である。
【００２２】
図４に示すように、図１のプロセッサ１０は、記憶装置１４に記憶されたアーキテクチャ検証プログラムを起動して、入力装置１２から様々な情報を入力する入力部１０ａと、シミュレータ１８上のバスを監視するバス監視部１０ｂと、シミュレータ１８上のモジュールを監視するモジュール監視部１０ｃと、時間制約及び性能仕様を満たすアーキテクチャ（以下、「第１アーキテクチャ」という）を生成する第１アーキテクチャ生成部１０ｄと、第１アーキテクチャとは異なるアーキテクチャ（以下、「第２アーキテクチャ」という）を生成する第２アーキテクチャ生成部１０ｅと、第２アーキテクチャを実現するために必要な性能仕様（以下、「改善仕様」という）を算出する改善仕様算出部１０ｆと、出力装置１６に様々な情報を出力する出力部１０ｇと、を実現する。
【００２３】
図４の入力部１０ａは、入力装置１２から様々な情報を入力して、第１アーキテクチャ生成部１０ｄ及び改善仕様算出部１０ｆに与えるように構成される。例えば、第１アーキテクチャ生成部１０ｄに与えられる情報は、アーキテクチャの処理時間に関する制約（以下、「時間制約」という）、アーキテクチャの面積に関する制約（以下、「面積制約」という）、並びにアーキテクチャのモジュールを動作させるための性能仕様（例えば、プロセッサの動作周波数及びプロセッサに供給すべき電源電圧）である。改善仕様算出部１０ｆに与えられる情報は、性能仕様と消費電力との関係を示すテーブル（図７（Ａ）及び（Ｂ）を参照）である。
【００２４】
図４のバス監視部１０ｂは、シミュレータ１８上のバスを監視して、バストランザクション（バストランザクションに関わるイニシエータモジュールとターゲットモジュールの組合せを示すペア情報、バス競合によるバス使用待ち情報、バスのスループット・レイテンシ情報、バストランザクションのデータ量、及び転送回数等）を取得するように構成される。例えば、バス監視部１０ｂは、バストランザクションを発行するイニシエータモジュール及びそのトランザクションに含まれるアドレスに対応するターゲットモジュールからペア情報を取得する。特に、バスブリッジ等を介して複数のバスを経由するバストランザクションについては、バス監視部１０ｂは、バストランザクションに含まれるアドレスを監視し、バスブリッジが持つアドレス空間へのバストランザクション又はバスブリッジを介して異なるバスに伝達されるバストランザクションを辿ることによって、関連する全てのモジュールの組合せを示すペア情報を取得する。
【００２５】
図４のモジュール監視部１０ｃは、シミュレータ１８上のモジュールを監視して、モジュールが発行する入力トランザクション、モジュールの処理に関する処理情報、及びモジュールが発行する出力トランザクションを取得するように構成される。例えば、モジュール監視部１０ｃは、一連の処理を制御する図２のプロセッサＭＰＵ上で実行されるアプリケーションプログラムの情報から一連の処理を構成する各処理の順番及び各処理で使用されるモジュールの識別情報（例えば、プロセッサＭＰＵが使用される場合には「ＭＰＵ」）を取得する。また、モジュール監視部１０ｃは、プロセッサＭＰＵ、サブプロセッサＳＵＢ、又はユーザロジックＵＬ上で実行される処理については、その処理に対応するアプリケーションプログラムのコードの開始部の命令が実行されてから終了部の命令が実行されるまでの所要時間を監視することによって処理時間、並びにその処理に関わる入力トランザクション及び出力トランザクションを取得する。一方、モジュール監視部１０ｃは、ハードウェア上で実行される処理については、その処理を実行するハードウェアが外部要因によって動作状態になってから終了状態になるまでを監視することによって処理時間、並びにその処理に関わる入力トランザクション及び出力トランザクションを取得する。
【００２６】
図４の第１アーキテクチャ生成部１０ｄは、時間制約及び性能仕様と、バストランザクションと、入力トランザクション、処理情報、及び出力トランザクションと、を関連付けて、時間制約及び性能仕様を満たす第１アーキテクチャ（図６（Ａ）を参照）を生成して、記憶装置１４に書き込むとともに、第２アーキテクチャ生成部１０ｅに与えるように構成される。例えば、第１アーキテクチャ生成部１０ｄは、複数のアーキテクチャのそれぞれについて、１つの処理に関する入力トランザクション、処理情報、及び出力トランザクションをグループ化し、複数のグループ間のバストランザクションを結合し、時間制約を閾値とすることによって、第１アーキテクチャを生成する。
【００２７】
図４の第２アーキテクチャ生成部１０ｅは、第１アーキテクチャの処理時間を変更して、時間制約を満たし、且つ、第１アーキテクチャより消費電力が低い第２アーキテクチャ（図６（Ｂ）を参照）を生成して、出力部１０ｇに与えるように構成される。例えば、第２アーキテクチャ生成部１０ｅは、時間制約を満たす範囲内で、第１アーキテクチャの処理時間を延長して、第２アーキテクチャを生成する。第２アーキテクチャでは、第１アーキテクチャより処理時間が長い箇所の消費電力が低くなる。
【００２８】
また、図４の第２アーキテクチャ生成部１０ｅは、第２アーキテクチャを生成するときに処理時間の変更情報を改善仕様算出部１０ｆに与えるように構成される。
【００２９】
図４の改善仕様算出部１０ｆは、テーブル（図７（Ａ）及び（Ｂ）を参照）を用いて、第２アーキテクチャを生成するときの変更情報に基づいて、第２アーキテクチャを実現するために必要な改善仕様を算出し、出力部１０ｇに与えるように構成される。
【００３０】
図４の出力部１０ｇは、第１アーキテクチャ、第２アーキテクチャ、及び改善仕様を出力装置１６に出力するように構成される。
【００３１】
本発明の第１実施形態に係るアーキテクチャ検証処理を説明する。図５は、本発明の第１実施形態に係るアーキテクチャ検証処理の手順を示すフローチャートである。
【００３２】
＜図５：入力工程（Ｓ５０１）＞  ユーザは、図１の入力装置１２を使用して、アーキテクチャ検証処理に必要な様々な情報（時間制約、面積制約、性能仕様、及びテーブル）を入力する。入力部１０ａは、入力装置１２からこれらの情報を入力して、時間制約、面積制約、及び性能仕様を第１アーキテクチャ生成部１０ｄに与え、テーブルを改善仕様算出部１０ｆに与える。
【００３３】
＜図５：監視工程（Ｓ５０２）＞  シミュレータ１８は、図３のアーキテクチャ上で複数の処理が実行されるケースのシミュレーションを行う。このとき、バス監視部１０ｂはシミュレータ１８上のバスを監視し、モジュール監視部１０ｃはシミュレータ１８上のモジュールを監視する。その結果、バス監視部１０ｂが、バストランザクションを取得して第１アーキテクチャ生成部１０ｄに与え、モジュール監視部１０ｃが、入力トランザクション、処理情報、及び出力トランザクションを取得して第１アーキテクチャ生成部１０ｄに与える。
【００３４】
＜図５：第１アーキテクチャ生成工程（Ｓ５０３）＞  第１アーキテクチャ生成部１０ｄが、時間制約及び性能仕様と、バストランザクションと、入力トランザクション、処理情報、及び出力トランザクションと、を関連付けて、第１アーキテクチャ（図６（Ａ）を参照）を生成して記憶装置１４に書き込むとともに、第２アーキテクチャ生成部１０ｅに与える。このとき、第１アーキテクチャ生成部１０ｄは、複数のアーキテクチャのうち時間制約及び面積制約を満たすものを第１アーキテクチャとして生成する。
【００３５】
図６（Ａ）に示すように、第１アーキテクチャは、複数の処理（例えば、画像処理及び音声処理）毎に、バストランザクション、入力トランザクション、処理情報（各モジュールの処理順序及び処理時間）、出力トランザクション、並びにバスの状態（バス待ち情報及びバス利用情報）が時系列に並べられたアーキテクチャと、時間制約と、を示す。
【００３６】
＜図５：第２アーキテクチャ生成工程（Ｓ５０４）＞  第２アーキテクチャ生成部１０ｅが、第２アーキテクチャを生成して出力部１０ｇに与えるとともに、変更情報を改善仕様算出部１０ｆに与える。
【００３７】
第２アーキテクチャの生成工程（Ｓ５０４）の第１例を説明する。第２アーキテクチャ生成部１０ｅは、第１アーキテクチャの時間制約と処理時間との差（以下、「時間マージン」という）を算出し、その時間マージンを処理時間に割り当てて、第２アーキテクチャを生成する。例えば、図６（Ａ）では、時間マージンが１２０［ｎｓ］である。従って、第２アーキテクチャ生成部１０ｅは、ユーザロジックＵＬが行う処理Ｙ３＿４の処理時間を１００［ｎｓ］から２２０［ｎｓ］に変更して（すなわち、ユーザロジックＵＬが行う処理Ｙ３＿４の処理時間に時間マージンを加算して）、第２アーキテクチャ（図６（Ｂ）を参照）を生成する。このとき、第２アーキテクチャ生成部１０ｅは、ユーザロジックＵＬが行う処理Ｙ３＿４の処理時間を１００［ｎｓ］から２２０［ｎｓ］に変更したことを示す変更情報を改善仕様算出部１０ｆに与える。
【００３８】
第２アーキテクチャ生成工程（Ｓ５０４）の第２例を説明する。第２アーキテクチャ生成部１０ｅは、モジュールの実行間隔と、モジュールへの電源供給停止及び電源供給再開に必要な時間と、モジュールへの電源供給停止及び電源供給再開を制御する制御回路の消費電力と、に基づいて、第２アーキテクチャを生成する。このとき、第２アーキテクチャ生成部１０ｅは、ユーザロジックＵＬが行う処理Ｙ３＿４の実行間隔を変更したことと、モジュール（ユーザロジックＵＬ）への電源供給停止時間と、を示す変更情報を改善仕様算出部１０ｆに与える。例えば、第２アーキテクチャ生成部１０ｅは、ユーザロジックＵＬが行う処理Ｙ３＿４の実行間隔（３２０［ｎｓ］、２８０［ｎｓ］）を算出し、この実行間隔の間に注目処理（処理Ｙ３＿４）を実行するモジュール（ユーザロジックＵＬ）への電源供給を停止した場合の効果（以下、「停止効果」という）を算出する（図６（Ｃ）を参照）。具体的には、第２アーキテクチャ生成部１０ｅは、式１を計算する。式１の左辺は、モジュールへの電源供給を停止した場合に低減される消費電力（電源供給停止のメリット）を表し、式１の右辺は、モジュールへの電源供給を停止するために必要な消費電力（電源供給停止のデメリット）を表す。すなわち、式１が成立する場合には、電源供給停止のメリットがデメリットを上回るので、停止効果がある。
【００３９】
式１：｛Ｍ−（Ａ＋Ｂ）｝＊Ｃ＞Ｄ
（Ｍ：実行間隔、Ａ：電源供給停止に必要な時間、Ｂ：電源供給再開に必要な時間、Ｃ：単位時間当たりの停止効果、Ｄ：制御回路の消費電力）
【００４０】
例えば、Ｍ＝２８０［ｎｓ］の場合には、注目処理（ユーザロジックＵＬ）を構成するモジュールへの電源供給を常に停止する第２アーキテクチャが生成される。Ｍ＝３００［ｎｓ］の場合には、注目処理（ユーザロジックＵＬ）を構成するモジュールへの電源供給を実行間隔が３２０［ｎｓ］の場合のみ停止する第２アーキテクチャが生成される。すなわち、第２アーキテクチャ生成部１０ｅは、モジュールの実行間隔と、モジュールへの電源供給停止及び電源供給再開に必要な時間と、モジュールへの電源供給停止及び電源供給再開を制御する制御回路の消費電力と、に基づいて、モジュールへの電源供給停止のメリットとデメリットとを比較し、メリットがデメリットより大きい場合に第２アーキテクチャを生成する。
【００４１】
＜図５：Ｓ５０５＞  第２アーキテクチャが面積制約を満たす場合には（Ｓ５０５−ＹＥＳ）、改善仕様算出工程（Ｓ５０６）に進み、第２アーキテクチャが面積制約を満たさない場合には（Ｓ５０５−ＮＯ）、入力工程（Ｓ５０１）に進む。具体的には、第２アーキテクチャを実現するために必要なモジュールへの電源電圧の供給を制御する制御回路（例えば、図２に新たなクロックジェネレータＣＬＫ及び電源ＰＯＷ）を増設したときに、第２アーキテクチャの面積が面積制約を満たすか否かが判定される。
【００４２】
＜図５：改善仕様算出工程（Ｓ５０６）＞  改善仕様算出部１０ｆが、図７（Ａ）又は（Ｂ）のテーブルを用いて、第２アーキテクチャの性能仕様（プロセッサの動作周波数及びプロセッサに供給すべき電源電圧）を算出する。図７（Ａ）によれば、ユーザロジックＵＬを実現するためのプロセッサの動作周波数を１００［ＭＨｚ］から５０［ＭＨｚ］に変更可能であることが分かる。図７（Ｂ）によれば、ユーザロジックＵＬを実現するためのプロセッサに供給すべき電源電圧を５［Ｖ］から３［Ｖ］に変更可能であることが分かる。すなわち、改善仕様は、第１アーキテクチャに対して、時間制約及び面積制約を満たす範囲内で消費電力を低減させるためのアーキテクチャのパラメータである。
【００４３】
＜図５：出力工程（Ｓ５０７）＞  出力部１０ｇは、記憶装置１４に記憶された第１アーキテクチャを読み出し、第１アーキテクチャ、第２アーキテクチャ、及び改善仕様を出力装置１６に出力する。出力工程（Ｓ５０７）の後は、本発明の第１実施形態に係るアーキテクチャ検証処理が完了する。
【００４４】
本発明の第１実施形態の第１変形例を説明する。本発明の第１実施形態では、１つの第１アーキテクチャに対して１つの第２アーキテクチャ及び改善仕様が生成されたが、本発明の第１実施形態の第１変形例では、複数の第１アーキテクチャに対して複数の第２アーキテクチャ及び複数の改善仕様が生成される。
【００４５】
本発明の第１実施形態の第１変形例では、第１アーキテクチャ生成部１０１ｄが、時間制約を満たす複数の第１アーキテクチャを生成する。第２アーキテクチャ生成部１０１ｅが、複数の第１アーキテクチャのそれぞれに対して、複数の第２アーキテクチャを生成する。改善仕様算出部１０ｆは、複数の第２アーキテクチャのそれぞれを実現するための複数の改善仕様を算出する。出力部１０ｇは、複数の第１アーキテクチャ、複数の第２アーキテクチャ、及び複数の改善仕様を出力する。
【００４６】
本発明の第１実施形態の第２変形例を説明する。本発明の第１実施形態では、１つの処理（音声処理）に時間マージンが存在したが、本発明の第１実施形態の第２変形例では、複数の処理（画像処理及び音声処理）に時間マージンが存在する。
【００４７】
本発明の第１実施形態の第２変形例では、第２アーキテクチャ生成部１０ｅは、全てのケースについて時間マージンを算出し、注目処理（Ｙ３＿４）の処理時間に全ての組み合わせの時間マージンのうちの最小値を割り当てる。
【００４８】
図８は、音声処理と並行して画像処理が実行されている場合に、画像処理が実行されるタイミング毎に異なる３つのケース（ケース１乃至ケース３）の第１アーキテクチャを示す。第２アーキテクチャ生成部１０ｅは、３つの第１アーキテクチャについて時間マージン（ケース１及びケース２：１２０［ｎｓ］、ケース３：２３０［ｎｓ］）を算出し、その中の最小値である最小時間マージン（１２０［ｎｓ］）を該当するケース（ケース１又はケース２）の注目処理（Ｙ３＿４）の処理時間に割り当てて、第２アーキテクチャを生成する。
【００４９】
本発明の第１実施形態の第３変形例を説明する。本発明の第１実施形態では、時間マージンは固定値であったが、本発明の第１実施形態の第３変形例では、他の処理（画像処理）の実行タイミング（状況）によって注目処理（Ｙ３＿４）の時間マージンが変動する。
【００５０】
本発明の第１実施形態の第３変形例では、第２アーキテクチャ生成部１０ｅは、他の処理の状況に応じて、注目処理（Ｙ３＿４）の処理時間に時間マージンを割り当てる。
【００５１】
図９は、音声処理と並行して画像処理が実行されている場合に、画像処理が実行されるタイミング毎に異なる３つのケース（ケース１乃至ケース３）の第１アーキテクチャを示す。第２アーキテクチャ生成部１０ｅは、３つの第１アーキテクチャについて時間マージン（ケース１及びケース２：１２０［ｎｓ］、ケース３：２３０［ｎｓ］）を算出し、各ケースについて、注目処理（Ｙ３＿４）の処理時間に時間マージンを割り当てて、複数の第２アーキテクチャを生成する。この第２アーキテクチャでは、ケース１及びケース２の注目処理（Ｙ３＿４）の処理時間に１２０［ｎｓ］が加算され、ケース３の注目処理（Ｙ３＿４）の処理時間に２３０［ｎｓ］が加算される。
【００５２】
図１０に示すように、複数の処理が組み合わせられた状態は、ステートマシンのコード記述（コード記述例１及びコード記述例２）で表現される（図１０の下線部を参照）。ステートマシンは処理を記載したコードと対応付けられるので、そのコードに基づいて、ある状態に入る条件と、ある状態から抜け出す条件を求めることができる。第２アーキテクチャ生成部１０ｅは、これらの条件を求め、図２のクロックジェネレータＣＬＫ及び電源ＰＯＷに制御信号が与えられるような第２アーキテクチャを生成する。
【００５３】
本発明の第１実施形態によれば、第２アーキテクチャ生成部１０ｅが、時間制約を満たす第１アーキテクチャから時間マージンを算出し、その時間マージンを注目処理に割り当てて第２アーキテクチャを生成する。従って、ユーザは、時間制約を満たし、且つ、消費電力が低いアーキテクチャを容易に構築することができ、且つ、構築に要する作業時間を短縮することができる。
【００５４】
また、本発明の第１実施形態によれば、第２アーキテクチャ生成部１０ｅが、注目処理の処理時間を変更するために必要な制御回路を増設することに伴う面積の増加を考慮して、面積制約を満たすか否かを判定する。従って、ユーザは、時間制約だけでなく面積制約を満たし、且つ、消費電力が低いアーキテクチャを容易に構築することができ、且つ、構築に要する作業時間を短縮することができる。
【００５５】
（第２実施形態）
本発明の第２実施形態を説明する。本発明の第２実施形態は、消費電力の低減効果が生成される例である。なお、上述した実施形態と同様の内容についての説明は省略する。
【００５６】
本発明の第２実施形態に係るアーキテクチャ検証装置の構成を説明する。図１１は、本発明の第２実施形態に係る図１のプロセッサ１０によって実現される機能を示すブロック図である。
【００５７】
図１１に示すように、図１のプロセッサ１０は、本発明の第１実施形態と同様に、入力部１０ａと、バス監視部１０ｂと、モジュール監視部１０ｃと、第１アーキテクチャ生成部１０ｄと、第２アーキテクチャ生成部１０ｅと、改善仕様算出部１０ｆと、出力部１０ｇと、を実現する。また、プロセッサ１０は、さらに、記憶装置１４に記憶されたアーキテクチャ検証プログラムを起動して、シミュレータ１８からモジュールの実行回数（すなわち、処理の頻度）を取得する取得部１０ｈを実現する。
【００５８】
図１１の取得部１０ｈは、シミュレータ１８上の各モジュールを監視し、モジュール毎の実行回数を取得して出力部１０ｇに与えるように構成される。
【００５９】
図１１の第２アーキテクチャ生成部１０ｅは、本発明の第１実施形態と同様の方法により、複数の第２アーキテクチャを生成して出力部１０ｇに与えるように構成される。
【００６０】
図１１の出力部１０ｇは、モジュール毎の実行回数に基づいて、複数の第２アーキテクチャの少なくとも１つとともに、実行回数に基づく削減効果（第１アーキテクチャに対する第２アーキテクチャの消費電力の削減効果、図１２を参照）を出力装置１６に出力するように構成される。
【００６１】
本発明の第２実施形態によれば、出力部１０ｇが、複数の第２アーキテクチャに対して実行回数に削減効果を出力する。従って、ユーザは、複数の第２アーキテクチャの削減効果の違いが容易に分かる。特に、複数の処理が互いに依存関係にある場合には、注目処理の処理時間が他の処理の処理時間に影響を与えるので、注目処理の消費電力が低減したとしても、全体の消費電力が増加する場合がある。本発明の第２実施形態は、このような場合に有効である。
【００６２】
本発明の実施形態に係るアーキテクチャ検証装置の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、アーキテクチャ検証装置の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
【００６３】
また、本発明の実施形態に係るアーキテクチャ検証装置の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
【００６４】
上述した実施形態は、いずれも一例であって限定的なものではないと考えられるべきである。本発明の技術的範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００６５】
１  アーキテクチャ検証装置
１０  プロセッサ
１０ａ  入力部
１０ｂ  バス監視部
１０ｃ  モジュール監視部
１０ｄ  第１アーキテクチャ生成部
１０ｅ  第２アーキテクチャ生成部
１０ｆ  改善仕様算出部
１０ｇ  出力部
１０ｈ  取得部
１２  入力装置
１４  記憶装置
１６  出力装置
１８  シミュレータ
【図１】
2010286885.tif 000003
【図２】
2010286885.tif 000004
【図３】
2010286885.tif 000005
【図４】
2010286885.tif 000006
【図５】
2010286885.tif 000007
【図６】
2010286885.tif 000008
【図７】
2010286885.tif 000009
【図８】
2010286885.tif 000010
【図９】
2010286885.tif 000011
【図１０】
2010286885.tif 000012
【図１１】
2010286885.tif 000013
【図１２】
2010286885.tif 000014