(57)【要約】【課題】設計初期段階にアーキテクチャを決定するために、分かりやすくモデリングして評価対象の半導体装置の性能を評価する。【解決手段】機能モデル入力手段１１は、ＵＭＬ記述により前記半導体装置の機能をモデル化した機能モデルを入力し保持し、アーキテクチャモデル入力手段１２は、ＵＭＬ記述により前記半導体装置の物理アーキテクチャをモデル化したアーキテクチャモデルを入力し保持し、マッピング手段１３で機能モデルをアーキテクチャモデルに割り当て、性能評価手段１４により割り当て後のモデルについての性能を評価する。【選択図】        図１
2004318654.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置の設計における仕様検討段階で、性能を評価する性能評価装置において、
ＵＭＬ記述により前記半導体装置の機能をモデル化した機能モデルを入力し保持する機能モデル入力手段と、
前記ＵＭＬ記述により前記半導体装置の物理アーキテクチャをモデル化したアーキテクチャモデルを入力し保持するアーキテクチャモデル入力手段と、
前記機能モデルを、前記アーキテクチャモデルに割り当てる割当手段と、
割り当て後のモデルについての性能を評価する性能評価手段と、
を有することを特徴とする性能評価装置。
【請求項２】
前記機能モデルは、前記機能を、プロセスと通信路とに分けて、ＵＭＬで定義された構造図を用いてモデル化されたものであること特徴とする請求項１記載の性能評価装置。
【請求項３】
前記アーキテクチャモデルは、計算リソース、通信リソース及び記憶リソースがＵＭＬで定義された配置図を用いてモデル化されたものであることを特徴とする請求項１記載の性能評価装置。
【請求項４】
半導体装置の設計における仕様検討段階で、性能を評価する性能評価方法において、
ＵＭＬ記述により前記半導体装置の機能をモデル化した機能モデルを入力し保持し、
前記ＵＭＬ記述により前記半導体装置の物理アーキテクチャをモデル化したアーキテクチャモデルを入力し保持し、
前記機能モデルを、前記アーキテクチャモデルに割り当て、
割り当て後のモデルについての性能を評価する、
ことを特徴とする性能評価方法。
【請求項５】
半導体装置の設計における仕様検討段階で、性能を評価する処理をコンピュータに機能させるプログラムにおいて、
コンピュータを、
ＵＭＬ記述により前記半導体装置の機能をモデル化した機能モデルを入力し保持する機能モデル入力手段、
前記ＵＭＬ記述により前記半導体装置の物理アーキテクチャをモデル化したアーキテクチャモデルを入力し保持するアーキテクチャモデル入力手段、
前記機能モデルを、前記アーキテクチャモデルに割り当てる割当手段、
割り当て後のモデルについての性能を評価する性能評価手段、
として機能させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体装置の性能を評価する性能評価装置、性能評価方法及びプログラムに関し、特に、半導体装置の設計における仕様検討段階で、性能を評価する性能評価装置、性能評価方法及びプログラムに関する。
【０００２】
【従来の技術】
近年、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅｄ  Ｉｎｔｅｇｒａｔｉｏｎ  ｃｉｒｃｕｉｔ）の設計において、上流工程での設計手法が盛んに研究されている。特に、仕様検討段階に設計対象の性能を評価する性能評価手法が注目されている。
【０００３】
従来の設計技術では主に、以下で示す３つの方法によって性能評価を行っていた。
１番目が机上検討法である。この方法は、システムＬＳＩを設計する際に、設計の初期の段階において、設計者が従来の経験や大まかな見積もりで物理アーキテクチャを決定する手法である。この方法の決定的な弱点は定量的な性能評価ができないため、見積もりの結果と実測の間の誤差が大きいという点である。さらに、システムが大規模化、複雑化しつつある現在では、机上検討で性能を見積もることは、ますます困難になっている。
【０００４】
２番目が実設計法である。この方法は、正確な性能を見積もるために設計を実際に行う手法である。つまり、実際に実装してみて性能が要求を満たしているか否かを判断する手法である。この手法の問題点は、精度は高いが評価のコストが高いという点である。通常、実際に実装を行うためには、多大な時間や人を必要とする。現実にはこのような手法は小さいシステムの場合はよいが、システムが大規模になると非現実的な方法である。
【０００５】
３番目の手法がモデリング法である。これは、前述の１番目と２番目の手法の中間的な方法である。つまり、実際の設計を行わず、システムＬＳＩのモデリングを行い、モデル上で定量的に性能評価を行う手法である。この方法は机上検討法ではできない定量的な性能評価が可能であり、実設計法のような実際の設計を行わない。性能評価に必要な情報のみを詳細化し、性能評価に必要のない情報について抽象化することによって、コストが低く、定量的な性能評価ができる理想的な方法である。
【０００６】
従来、このモデリング法を取り入れた、Ｐｏｌｉｓ、ＹＡＰＩなどのＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）システムが知られている。特許文献１には、ＬＳＩの性能評価のために、ＬＳＩのハードウェア構造の機能部分と、ハードウェア構造の性能に影響を及ぼすアーキテクチャ部分に切り離してモデリングすることで、性能評価のための設計工程を短縮することを可能にすることが開示されている。
【０００７】
また、近年、統一モデリング言語（ＵＭＬ：Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）を用いたオブジェクト指向技術に注目が集まっており、ソフトウェア開発などで用いられている。ＬＳＩの設計においても、ＵＭＬ記述によりモデリングして性能評価を行うことが、例えば特許文献２に開示されている。
【０００８】
【特許文献１】
特開２０００−３１１１８６（段落番号〔００２０〕〜〔００２２〕）
【特許文献２】
特開２００１−３１８８１２（段落番号〔００１５〕，第１図）
【０００９】
【発明が解決しようとする課題】
しかし、上記従来のＣＡＤシステムでは、性能評価のための設計工程を短縮可能な、システムＬＳＩのハードウェア構造の機能と、ハードウェア構造の性能に影響を及ぼすアーキテクチャ部分に切り離してモデリングする技術はあったものの、モデリングの際に用いる記述が分かりやすいものではなかった。
【００１０】
一方、ＬＳＩの性能評価のために、モデリングをＵＭＬ記述で行った従来技術では、機能部分と、アーキテクチャ部分とを分離して行うものではなかった。そのため、再利用に弱いという問題があった。
【００１１】
また、従来のモデリング技術では、いずれも明示的に、機能を物理アーキテクチャに割り当てる（以下マッピングと呼ぶ場合もある）いう手法をとっていないため、モデルの構築容易性が欠けているという問題があった。
【００１２】
本発明はこのような点に鑑みてなされたものであり、設計初期段階にアーキテクチャを決定するため、ＵＭＬを用いて分かりやすく、機能と物理アーキテクチャとに分離して、再利用可能なようにモデリングして評価対象の半導体装置の性能を評価する性能評価装置、性能評価方法及びプログラムを提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明では上記課題を解決するために、半導体装置の設計における仕様検討段階で、性能を評価する性能評価装置において、図１に示すように、ＵＭＬ記述により半導体装置の機能をモデル化した機能モデルを入力し保持する機能モデル入力手段１１と、ＵＭＬ記述により半導体装置の物理アーキテクチャをモデル化したアーキテクチャモデルを入力し保持するアーキテクチャモデル入力手段１２と、機能モデルを、アーキテクチャモデルに割り当てる割当手段（図１では、マッピング手段と表記している）１３と、割り当て後のモデルについての性能を評価する性能評価手段１４と、を有することを特徴とする性能評価装置１０が提供される。
【００１４】
上記の構成によれば、機能モデル入力手段１１は、ＵＭＬ記述により前記半導体装置の機能をモデル化した機能モデルを入力し保持し、アーキテクチャモデル入力手段１２は、ＵＭＬ記述により前記半導体装置の物理アーキテクチャをモデル化したアーキテクチャモデルを入力し保持し、割当手段１３で機能モデルをアーキテクチャモデルに割り当て、性能評価手段１４により割り当て後のモデルについての性能を評価する。
【００１５】
【発明の実施の形態】
以下本発明の実施の形態を図面を参照して説明する。
なお、以下では、システムＬＳＩの設計における仕様検討段階で、そのシステムＬＳＩの性能を評価する性能評価装置について説明する。
【００１６】
図１は、本発明の実施の形態の性能評価装置の原理を示す原理構成図である。本発明の実施の形態の性能評価装置１０は、設計者によりＵＭＬで記述される機能モデルを入力し保持する機能モデル入力手段１１と、アーキテクチャ部品ライブラリ１２ａを参照して、ＵＭＬで記述されたアーキテクチャモデルを入力し保持するアーキテクチャモデル入力手段１２と、機能モデルを、アーキテクチャモデルに割り当てるマッピング手段１３と、割り当て後のモデルについての性能を評価する性能評価手段１４と、から構成される。
【００１７】
以下、性能評価装置１０の動作を説明する。
まず、機能モデル入力手段１１で、設計者によりＵＭＬで記述される機能モデルを入力し保持する。機能モデルはシステムＬＳＩの機能を、ＵＭＬで定義された構造図（コラボレーション図の拡張）Ｆ１を用いてモデル化したものである。構造図Ｆ１で表現される機能モデルは、プロセスクラス、チャンネルクラス、データクラス及びポートクラスのオブジェクトから構成される。
【００１８】
図２は、プロセスクラスのクラス図の例である。
プロセスクラスは、ＵＭＬ要素の拡張であるステレオタイプ名をギュメ＜＜＞＞で囲んだ、＜＜ｐｒｏｃｅｓｓ＞＞ステレオタイプを用いて表現されるアクティブクラスである。プロセスクラスのアクティブオブジェクトとなる各モジュールは、それぞれ独立に実行可能なプロセスとして定義される。図２では、クラス名が“ｐｒｏｄｕｃｅｒ”のプロセスクラスの例を示しており、属性及び操作は省略している。
【００１９】
図３は、チャンネルクラスのクラス図の例である。
チャンネルクラスは、＜＜ｃｈａｎｎｅｌ＞＞ステレオタイプを用いて表現されるクラスであり、プロセス間の通信路を定義している。図３では、クラス名が“ＦＩＦＯ”のチャンネルクラスの例を示しており、属性及び操作は省略している。
【００２０】
図４は、データクラスのクラス図の例である。
データクラスは、＜＜ｄａｔａ＞＞ステレオタイプを用いて表現されるクラスであり、プロセス間で通信しているデータタイプを定義している。図４では、クラス名が“Ｔｏｋｅｎ”のデータクラスの例を示しており、属性及び操作は省略している。
【００２１】
図５は、ポートクラスのクラス図の例である。
ポートクラスは、＜＜ｐｏｒｔ＞＞ステレオタイプを用いて表現するクラスであり、プロセスからチャンネルにアクセスするためのクラスである。図５では、クラス名が“ｐｏｒｔ＿ａ”のポートクラスの例を示しており、属性及び操作は省略している。
【００２２】
設計者は、設計対象のシステムＬＳＩの機能を複数のプロセスに分割して、それらを図２で示したようなプロセスクラスで定義されるプロセスオブジェクト（以下単にプロセスと呼ぶこともある）を用いて、機能モデル入力手段１１に入力する。またプロセスは、図５で示したようなポートクラスで定義されるポートオブジェクト（以下単にポートと呼ぶこともある）を持つようにして、図３で示したようなチャンネルクラスで定義されるチャンネルオブジェクト（以下単にチャンネルと呼ぶこともある）を経由して他のプロセスと通信可能にする。さらに、プロセス間を通信するデータを図４で示したようなトークンクラスでモデリングして、チャンネルを用いて送受信可能にする。また、プロセスとチャンネル間をポートで連結させる。以上のようにして、設計者は、機能モデル入力手段１１に、例えば図１で示したような機能モデルである構造図Ｆ１を入力する。
【００２３】
この構造図Ｆ１は、プロセスクラスのオブジェクトである２つのプロセスｆ１、ｆ２が、チャンネルクラスのオブジェクトである通信路ｆ３を介して接続された構成である。また、プロセスｆ１は、ポートクラスのオブジェクトであるポートｆ４、ｆ５を持っており、ポートｆ５により通信路ｆ３に接続している。プロセスｆ２は、ポートｆ６、ｆ７を持っており、ポートｆ６により通信路ｆ３に接続している。
【００２４】
次に、アーキテクチャモデル入力手段１２で、設計者によりＵＭＬで記述されるアーキテクチャモデルを入力し保持する。アーキテクチャモデルは、システムＬＳＩの物理アーキテクチャをＵＭＬで定義された配置図を用いてモデル化したものである。アーキテクチャモデルは、計算リソースクラス、通信リソースクラス、記憶リソースクラスのオブジェクトからなる。
【００２５】
図６は、計算リソースクラスのクラス図の例である。
ハードウェアモジュールやプロセッサ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などがこのリソース類に属する。プロセッサにはＲＴＯＳ（リアルタイムオペレーティングシステム）も載ることができるので、スケジューラを持つことができる。図のように、計算リソースクラスは、属性として“名前”を有し、“プロセス登録（）”、“プロセス削除（）”、“実行する（）”などの操作を有する。さらに、スケジューラクラスと、後述するマッピングによって計算リソースに割り当てられる複数のプロセスクラスと関連を持つ（集約の関係である）。なお“＋スケジューラ”は集約の名前で、“＋”は可視性を示し、他の全てのクラスから参照可能であることを示している。スケジューラは、複数のプロセスを同じ計算リソースにマッピングしたときのスケジューリングのルールを指定する。図６の例では、スケジューラクラスは、＜＜ｅｎｕｍｅｒａｔｉｏｎ＞＞ステレオタイプを用いて表現するクラスで、クラス名がスケジューリング方式、属性として同一優先度内でのラウンドロビンスケジューリング、優先度ベースのスケジューリングが指定されている。
【００２６】
なお、計算リソースクラスのクラス図の右下の数字“１”は、プロセスクラスから見た計算リソースクラスの多重度が１であることを示し、プロセスクラスのクラス図の左下の数字“０．．ｎ”は、計算リソースクラスから見たプロセスクラスの多重度が０〜ｎであることを示す。後述するマッピングにより、計算リソースクラスに割り当てられるプロセスクラスの数が決まることにより決定される値である。
【００２７】
図７は、通信リソースクラスのクラス図の例である。
通信リソースは計算リソース間で通信するためのリソースである。バスやＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）メモリなどは通信リソースに属する。通信リソースは転送レート（単位はビット毎秒）やビット幅（単位はビット）といった属性を有し、“書き込む（）”、“読み取る（）”といった操作を有する。さらに、図のように、通信リソースクラスは、アービタークラスと、後述するマッピングによって通信リソースに割り当てられる複数のチャンネルクラスと関連を持つ。アービターは複数チャンネルを同じ通信リソースへマッピングする際に調停するルールを定義する。図７の例では、“調停する（）”という操作を有する。
【００２８】
なお、通信リソースクラスのクラス図の右下の数字“１”は、チャンネルクラスから見た通信リソースクラスの多重度が１であることを示し、チャンネルクラスのクラス図の左下の数字“０．．ｎ”は、通信リソースクラスから見たチャンネルクラスの多重度が０〜ｎであることを示す。後述するマッピングにより、通信リソースクラスに割り当てられるチャンネルクラスの数が決まることにより決定される値である。
【００２９】
図８は、記憶リソースクラスのクラス図の例である。
記憶リソースは、変数や配列などのデータ領域を格納するメモリやレジスタである。図８のように、記憶リソースは、サイズ、ビット幅、読み取り遅延、書き込み遅延などの転送遅延を属性として有している。さらに、“読み取る（）”、“書き込む（）”といった操作を有している。また、記憶リソースクラスは、後述するマッピングによって記憶リソースに割り当てられる複数のデータクラスと関連を持つ。
【００３０】
なお、記憶リソースクラスのクラス図の左下の数字“１”は、データクラスから見た記憶リソースクラスの多重度が１であることを示し、データクラスのクラス図の右上の数字“１．．ｎ”は、通信リソースクラスから見たデータクラスの多重度が１〜ｎであることを示す。後述するマッピングにより、記憶リソースクラスに割り当てられるデータクラスの数が決まることにより決定される値である。
【００３１】
図１で示したアーキテクチャ部品ライブラリ１２ａには、上記のようなアーキテクチャリソースが、例えば以下のような構成図で定義される。
図９は、アーキテクチャリソースの構成図である。
【００３２】
アーキテクチャリソースクラスのサブクラスとして、上記の通信リソースクラス、記憶リソースクラス、計算リソースクラスが定義される。さらに、通信リソースクラスのサブクラスとしてバス（例えば、属性としてセットアップ時間（単位は秒）を持つ）、ワイヤ、ＦＩＦＯメモリ（例えば、属性としてメモリのサイズ（単位はビット）を持つ）が定義されている。また、記憶リソースクラスのサブクラスとして、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、レジスタ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と、ＦＩＦＯメモリが定義されている。計算リソースのサブクラスは、プロセッサ、ハードウェアモジュール、ＤＳＰが定義されている。プロセッサはスケジューラを持っている。
【００３３】
アーキテクチャの構成要素は予め上記のように定義されて、アーキテクチャ部品ライブラリ１２ａとして提供される。なお、新しい要素を後で追加することも可能である。
【００３４】
設計者は、アーキテクチャモデル入力手段１２に、アーキテクチャ部品ライブラリ１２ａを参照して、アーキテクチャモデルとして、例えば、図１のような配置図Ａ１を入力する。
【００３５】
このアーキテクチャモデルの配置図Ａ１は、計算リソースであるプロセッサａ１、ハードウェアモジュールａ２と、記憶リソースであるＲＡＭａ３を、通信リソースであるバスに接続するように配置した図である。
【００３６】
以上のようにして入力した機能モデル及びアーキテクチャモデルを、機能モデル入力手段１１と、アーキテクチャモデル入力手段１２は保持する。
次に、マッピング手段１３により、ＵＭＬの構造図Ｆ１で表現した機能モデルを、配置図Ａ１で表現したアーキテクチャモデルにマッピングする。
【００３７】
マッピングは、例えば、以下のように行う。
まず、プロセスから計算リソースへのマッピングを行う。ここでは、図６で示したように、計算リソースクラスに、プロセスクラスを割り当てる。マッピングする際には、プロセスの属性である処理時間に処理の見積もり時間（以下バジェット時間と呼ぶ）を与える。複数のプロセスを同じ計算リソースにマッピングする際には、計算リソースのスケジューラを指定する必要がある。
【００３８】
次に、チャンネルから通信リソースへのマッピングを行う。ここでは、図７のように、通信リソースクラスに、チャンネルクラスを割り当てる。マッピングする際には、通信リソースのビット幅、転送レートを指定する。複数のチャンネルを同じ通信リソースへマッピングするときには、チャンネルのアービターを記述する。
【００３９】
最後に、データから記憶リソースへのマッピングを行う。ここでは、図８のように、記憶リソースクラスにデータクラスを割り当てる。マッピングする際、中間処理のデータを記憶リソースに格納するときに、記憶リソースのビット幅、転送遅延を与える。
【００４０】
マッピング処理を、図１を用いて説明すると、例えば、プロセスｆ１を計算リソースであるプロセッサａ１に割り当て、プロセスｆ２を計算リソースであるハードウェアモジュールａ２に割り当てる。また、通信路ｆ３を、通信リソースクラスであるＲＡＭａ３に割り当てる。
【００４１】
マッピング後、性能評価手段１４により、設計対象のＬＳＩの性能評価を行う。
性能評価は例えば、以下の３つの処理を行う。
【００４２】
第１に、プロセスの処理時間から各プロセスの実行遅延を計算する。ここでは、スケジューラを用いることによりプロセスのスケジューリングを一意に指定できる。
【００４３】
第２に、チャンネルから通信リソースのマッピングによって、転送レートやアービターの指定で通信遅延の計算をする。
第３に、データから記憶リソースへマッピングすることによってデータの転送遅延を計算する。
【００４４】
上記のような性能評価を行い、所望の性能を満たさない場合は、機能モデルはそのままで、アーキテクチャ部品を選択し直して、アーキテクチャモデル入力手段１２で、配置図Ａ１を作り直す。このようにして、機能モデルを再利用して、再びマッピングし、性能評価を繰り返すことで、所望の性能を満たすようなアーキテクチャを簡単に探索できる。
【００４５】
また、例えば図１のように、プロセスｆ１、ｆ２を、プロセッサａ１、ハードウェアモジュールａ２のいずれに割り当てるかによって、機能をハードウェアで実現したほうが望ましいか、ソフトウェア（プロセッサａ１に割り当てた場合にソフトウェアで実現される）で実現したほうが望ましいか（ＨＷ／ＳＷの分割の評価）が簡単に評価できる。
【００４６】
次に、本発明の実施の形態の性能評価装置１０のハードウェア構成を説明する。
図１０は、性能評価装置のハードウェア構成例を示す図である。
【００４７】
性能評価装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０ａ、ＲＯＭ１０ｂ、ＲＡＭ１０ｃ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０ｄ、グラフィック処理部１０ｅ、入力Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１０ｆなどによって構成され、これらはバス１０ｇを介して相互に接続されている。
【００４８】
ここで、ＣＰＵ１０ａは、ＨＤＤ１０ｄに格納されているプログラムに応じて各部を制御する。
ＲＯＭ１０ｂは、ＣＰＵ１０ａが実行する基本的なプログラムやデータを格納している。
【００４９】
ＲＡＭ１０ｃは、ＣＰＵ１０ａが実行途中のプログラムや、演算途中のデータを一時的に格納する。
ＨＤＤ１０ｄは、ＣＰＵ１０ａが実行するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、アプリケーションプログラムが格納される。さらに、図１で示したようなアーキテクチャ部品ライブラリ１２ａなどが格納される。
【００５０】
グラフィック処理部１０ｅには、ディスプレイなどの表示装置２０が接続されており、ＣＰＵ１０ａからの描画命令に従って、表示装置２０の画面上に、例えば、図１で示したような機能モデルの構造図Ｆ１や、アーキテクチャモデルの配置図Ａ１などのＣＡＤ画像を表示させる。
【００５１】
入力Ｉ／Ｆ１０ｆには、システムＬＳＩの設計者が操作するマウス３０やキーボード３１が接続されており、これらにより入力された情報を受信し、バス１０ｇを介してＣＰＵ１０ａに送信する。入力Ｉ／Ｆ１０ｆは、図１の機能モデル入力手段１１及びアーキテクチャモデル入力手段１２に対応している。
【００５２】
以上のようなハードウェア機能によって、性能評価装置１０は、本実施の形態の処理機能を実現することができる。
次に、図１０で示した本発明の性能評価装置１０における性能評価方法を、より具体的に、フローチャートを用いて説明する。
【００５３】
以下では、簡単なシステムＬＳＩの機能として、データを生成する“Ｐｒｏｄｕｃｅｒ”とデータを消費する“Ｃｏｎｓｕｍｅｒ”のプロセスを有するシステムを例にして説明する。また、“Ｐｒｏｄｕｃｅｒ”は１回に３つのデータを生成し、“Ｃｏｎｓｕｍｅｒ”は１回に１つのデータしか消費できないとする。ただし、データのロスはないとする。
【００５４】
図１１は、本発明の実施の形態の性能評価方法を示すフローチャートである。ステップＳ１：性能評価装置１０の処理を開始すると、設計対象のシステムＬＳＩの機能をモデル化した構造図を、設計者のマウス３０や、キーボード３１の操作により、入力Ｉ／Ｆ１０ｆを介して入力する。
【００５５】
ここで、構造図の要素となる各クラスのクラス図について説明する。
図１２は、プロセスクラスのクラス図の例である。
ここでは、クラス名“Ｐｒｏｄｕｃｅｒ”のＰｒｏｄｕｃｅｒプロセスクラスと、クラス名“Ｃｏｎｓｕｍｅｒ”のＣｏｎｓｕｍｅｒプロセスクラスを定義している。Ｐｒｏｄｕｃｅｒプロセスクラスは、属性として３つのポートクラスｐｏｒｔ１、ｐｏｒｔ２、ｐｏｒｔ３を定義している。また、Ｃｏｎｓｕｍｅｒプロセスクラスは、１つのポートクラスｐｏｒｔを定義する。なお、各ポートクラスの型はＰｏｒｔ＜Ｄａｔａ  Ｔｙｐｅ＞と定義している。
【００５６】
図１３は、チャンネルクラスのクラス図の例である。
チャンネルクラスは、パラメタライズドクラス（テンプレート）であり、仮パラメタとして“Ｔ”を持っている。また、ＰｒｏｄｕｃｅｒとＣｏｎｓｕｍｅｒ間のデータを転送するため、データロスがないので、サイズ無制限のＦＩＦＯとする。さらに、操作として“書き込む（）”、“読み取る（）”を定義している。
【００５７】
図１４は、データクラスのクラス図の例である。
データクラスは、ＰｒｏｄｕｃｅｒとＣｏｎｓｕｍｅｒ間で送受信されるデータを定義する。ここでは“Ｄａｔａ  Ｔｙｐｅ”というクラス名のデータクラスのクラス図を定義している。
【００５８】
以上のように定義したクラス図を用いて、機能モデルである構造図を構築する。
図１５は構造図の例である。
【００５９】
プロセスクラスのオブジェクトとして、Ｐｒｏｄｕｃｅｒプロセスクラスのインスタンス名“Ｐ”のオブジェクト“Ｐ：Ｐｒｏｄｕｃｅｒ”（以下単にプロデューサと呼ぶ）ｆ１０と、Ｃｏｎｓｕｍｅｒプロセスクラスのインスタンス名“Ｃ１”、“Ｃ２”、“Ｃ３”のオブジェクト“Ｃ１：Ｃｏｎｓｕｍｅｒ”（以下単にコンシューマと呼ぶ）ｆ１１、“Ｃ２：Ｃｏｎｓｕｍｅｒ”（コンシューマ）ｆ１２、“Ｃ３：Ｃｏｎｓｕｍｅｒ”（コンシューマ）ｆ１３を有している。
【００６０】
また、チャンネルクラスのオブジェクトとして、ＦＩＦＯチャンネルクラスのインスタンス名“ｃｈａｎｎｅｌ１”、“ｃｈａｎｎｅｌ２”、“ｃｈａｎｎｅｌ３”のオブジェクト“ｃｈａｎｎｅｌ１：ＦＩＦＯ＜Ｄａｔａ  Ｔｙｐｅ＞”（以下単にチャンネルと呼ぶ）ｆ１４、“ｃｈａｎｎｅｌ２：ＦＩＦＯ＜Ｄａｔａ  Ｔｙｐｅ＞”（チャンネル）ｆ１５、“ｃｈａｎｎｅｌ３：ＦＩＦＯ＜Ｄａｔａ  Ｔｙｐｅ＞”（チャンネル）ｆ１６、を有する。
【００６１】
また、プロデューサｆ１０は、チャンネルｆ１４、ｆ１５、ｆ１６に接続するためのポートを有する。
ポートはポートクラスのオブジェクトとして、“ｐｏｒｔ１：Ｐｏｒｔ＜Ｄａｔａ  Ｔｙｐｅ＞：：ｏｕｔ”、“ｐｏｒｔ２：Ｐｏｒｔ＜Ｄａｔａ  Ｔｙｐｅ＞：：ｏｕｔ”、“ｐｏｒｔ３：Ｐｏｒｔ＜Ｄａｔａ  Ｔｙｐｅ＞：：ｏｕｔ”で示される（以下単にポートｆ１７、ｆ１８、ｆ１９と呼ぶ）。
【００６２】
また、３つのコンシューマｆ１１、ｆ１２、ｆ１３もそれぞれ、チャンネルｆ１４、ｆ１５、ｆ１６に接続するための“ｐｏｒｔ：Ｐｏｒｔ＜Ｄａｔａ  Ｔｙｐｅ＞：：ｉｎ”で示されるポートｆ２０、ｆ２１、ｆ２２を有する。
【００６３】
プロデューサｆ１０は、チャンネルｆ１４、ｆ１５、ｆ１６を介して、コンシューマｆ１１、ｆ１２、ｆ１３と接続し、通信可能なように構成されている。
ここで図１１に戻り、性能評価方法の次のステップの処理を説明する。
【００６４】
ステップＳ２：動作のモデリングを行う。ここでは、設計者の入力により、プロセスがどのような動作を行うか指定する。例えば、図１５のような機能の構造図が入力されると、プロデューサｆ１０はデータを生成し、コンシューマｆ１１、ｆ１２、ｆ１３はデータを消費するなど、プロセスが行う動作を指定する。
【００６５】
ステップＳ３：設計対象のシステムＬＳＩの物理アーキテクチャをモデル化した配置図を、設計者のマウス３０や、キーボード３１の操作により、入力Ｉ／Ｆ１０ｆを介して入力する。この際、アーキテクチャモデルの構成要素となるリソースは、ＨＤＤ１０ｄに格納されており、図９で示したように定義されたアーキテクチャ部品ライブラリ１２ａから選択され、ＣＰＵ１０ａの制御のもと取り出され、グラフィック処理部１０ｅで処理された後、表示装置２０に表示される。
【００６６】
図１６は、アーキテクチャモデルを示す配置図の例である。
ここでは、計算リソースとして、プロセッサａ１０、ハードウェアモジュールａ１１が選択され、通信リソースとしてバスａ１２、記憶リソースとしてＲＡＭａ１３が配置されている例を示している。
【００６７】
ステップＳ４：アーキテクチャの配置図が入力されると、次に、設計者により指定されるアーキテクチャの属性を入力して、ＣＰＵ１０ａの制御のもと、配置図に配置されているリソースに割り当てる。アーキテクチャの属性とは、例えば、通信リソースであるバスａ１２の場合、セットアップ時間などであり、記憶リソースであるＲＡＭａ１３の場合、サイズ、ビット幅や転送遅延などであり、計算リソースであるプロセッサａ１０の場合は動作クロック周波数などである。
【００６８】
ステップＳ５：続いてマッピング処理を行う。
マッピングは、図１５で示した機能モデルである構造図の要素を、図１６で示したアーキテクチャモデルである配置図のリソースに割り当てる。
【００６９】
例えば、設計者は表示装置２０の画面上で、マウス３０により、構造図のオブジェクトを、割り当てたい配置図のリソース上にドラッグ＆ドロップで配置する。これによって、ＣＰＵ１０ａは、機能とアーキテクチャを関連付ける。
【００７０】
図１７は、マッピング後の配置図の例である。
ここでは、図１５の構造図で示したプロデューサｆ１０を、図１６の配置図で示したハードウェアモジュールａ１１にマッピングして、コンシューマｆ１１、ｆ１２、ｆ１３をプロセッサａ１０にマッピングする。次に、チャンネルｆ１４、ｆ１５、ｆ１６のマッピングを行う。ここでは、プロデューサｆ１０と、３つのコンシューマｆ１１、ｆ１２、ｆ１３との通信のための３つのチャンネルｆ１４、ｆ１５、ｆ１６をＲＡＭａ１３にマッピングする。最後に、ローカルデータのマッピングを行う。プロセスクラスのオブジェクトであるプロデューサｆ１０、コンシューマｆ１１、ｆ１２、ｆ１３はローカルデータを格納するためのローカルメモリを持っている。なお、ローカルデータのマッピングについては図示を省略している。
【００７１】
ステップＳ６：マッピングが終わると、設計者により指定されるバジェット時間を入力する。例えば、設計者は、プロデューサｆ１０を、ハードウェアモジュールａ１１にマッピングした場合のバジェット時間を１００ｎｓ、コンシューマｆ１１、ｆ１２、ｆ１３を、プロセッサａ１０をマッピングした場合のバジェット時間を５０ｍｓなどと指定する。なお、プロセッサａ１０にマッピングされたコンシューマｆ１１、ｆ１２、ｆ１３は、優先度ベースのスケジューラを使ってスケジューリングされる。
【００７２】
ステップＳ７：最後に性能評価を行う。
ＣＰＵ１０ａは、上記のようにして入力された処理時間などをもとに、各プロセスの実行遅延、通信遅延、データの転送遅延など計算して、その結果をグラフィック処理部１０ｅで処理して表示装置２０にて表示させ、設計者に提示する。
【００７３】
以上で性能評価方法の処理を終了する。
このように、評価対象のシステムＬＳＩを、ＵＭＬを用いてモデリングすることで分かりやすく、且つ、機能と物理アーキテクチャとに分離してモデリングすることで、望んだ性能が得られずモデリングしなおす場合に、機能または物理アーキテクチャいずれかをモデリングしなおせばよく、一方は再利用することができる。これにより、システムＬＳＩの設計工程の短縮が期待できる。
【００７４】
続いて、ハードウェア（ＨＷ）とソフトウェア（ＳＷ）を分割して評価する処理の流れをフローチャートを用いて説明する。
図１８は、ＨＷ／ＳＷ分割評価の処理の流れを示すフローチャートである。
【００７５】
ステップＳ１０〜Ｓ１３は、図１１と同様の処理を行うので説明を省略する。
ステップＳ１４の処理では、マッピングの前に、機能モデルである構造図において、どのプロセスをハードウェアにマッピングするか、または、ソフトウェアにマッピングするかというＨＷ／ＳＷ分割の、設計者による指定を入力する。
【００７６】
設計者は、表示装置２０の画面に表示される機能モデルである構造図において、例えば、ソフトウェアで実現するためのプロセスを点線などで囲み、ハードウェアで実現するプロセスと区別する。
【００７７】
ステップＳ１５の処理では、ＨＷ／ＳＷの分割が終わるとマッピングを行う。ＣＰＵ１０ａは、設計者により指定されたＨＷ／ＳＷの分割にしたがって、自動的に、プロセスのうち、ハードウェアで実現するものは、例えば図１６で示したような、ハードウェアモジュールａ１１にマッピングし、ソフトウェアで実現するものは、プロセッサａ１０にマッピングする。チャネルなどのマッピングについては、図１１と同様であるので説明を省略する。
【００７８】
ステップＳ１６、Ｓ１７は、図１１のステップＳ６、Ｓ７と同様の処理を行うので説明を省略する。
ステップＳ１８では、性能評価の結果が、要求された性能を満たすか否かを判定する。ここで、要求された性能を満たさない場合は、ステップＳ１４に戻って、ＨＷ／ＳＷの分割をやり直す。要求された性能を満たす場合は処理を終了する。
【００７９】
上記のような処理により、機能をハードウェアで実現したほうが望ましいか、ソフトウェアで実現したほうが望ましいかが簡単に評価できる。
続いて、アーキテクチャ探索処理の流れをフローチャートを用いて説明する。
【００８０】
図１９は、アーキテクチャ探索処理の流れを示すフローチャートである。
ステップＳ２０〜Ｓ２６までが、図１１と同様の処理を行い、ステップＳ２７の処理が異なる。
【００８１】
ステップＳ２７では、性能評価を行った結果が、要求された性能を満たすか否かを判定する。ここで、要求された性能を満たさない場合は、ステップＳ２２に戻って、アーキテクチャの配置図の入力をやり直す。要求された性能を満たす場合は処理を終了する。
【００８２】
このような処理によって、要求性能に満たない場合は、機能モデルを再利用して、アーキテクチャを選択し直し、再びマッピングし、性能評価を繰り返すことで、所望の性能を満たすようなアーキテクチャを簡単に探索できる。
【００８３】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、性能評価装置１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）などがある。
【００８４】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８５】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００８６】
（付記１）半導体装置の設計における仕様検討段階で、性能を評価する性能評価装置において、
ＵＭＬ記述により前記半導体装置の機能をモデル化した機能モデルを入力し保持する機能モデル入力手段と、
前記ＵＭＬ記述により前記半導体装置の物理アーキテクチャをモデル化したアーキテクチャモデルを入力し保持するアーキテクチャモデル入力手段と、
前記機能モデルを、前記アーキテクチャモデルに割り当てる割当手段と、
割り当て後のモデルについての性能を評価する性能評価手段と、
を有することを特徴とする性能評価装置。
【００８７】
（付記２）前記機能モデルは、前記機能を、プロセスと通信路とに分けて、ＵＭＬで定義された構造図を用いてモデル化されたものであること特徴とする付記１記載の性能評価装置。
【００８８】
（付記３）前記アーキテクチャモデルは、計算リソース、通信リソース及び記憶リソースがＵＭＬで定義された配置図を用いてモデル化されたものであることを特徴とする付記１記載の性能評価装置。
【００８９】
（付記４）前記アーキテクチャモデルの入力の際に参照可能な、前記物理アーキテクチャのライブラリを有することを特徴とする付記１記載の性能評価装置。
（付記５）半導体装置の設計における仕様検討段階で、性能を評価する性能評価方法において、
ＵＭＬ記述により前記半導体装置の機能をモデル化した機能モデルを入力し保持し、
前記ＵＭＬ記述により前記半導体装置の物理アーキテクチャをモデル化したアーキテクチャモデルを入力し保持し、
前記機能モデルを、前記アーキテクチャモデルに割り当て、
割り当て後のモデルについての性能を評価する、
ことを特徴とする性能評価方法。
【００９０】
（付記６）前記割り当ての前に、前記機能をソフトウェアで実現するか、ハードウェアで実現するかの分割を行うことを特徴とする付記５記載の性能評価方法。
【００９１】
（付記７）前記性能を評価した結果、所望の性能を満たさない場合には、前記アーキテクチャモデルを再入力することで、前記所望の性能を満足するような前記物理アーキテクチャを探索することを特徴とする付記５記載の性能評価方法。
【００９２】
（付記８）半導体装置の設計における仕様検討段階で、性能を評価する処理をコンピュータに機能させるプログラムにおいて、
コンピュータを、
ＵＭＬ記述により前記半導体装置の機能をモデル化した機能モデルを入力し保持する機能モデル入力手段、
前記ＵＭＬ記述により前記半導体装置の物理アーキテクチャをモデル化したアーキテクチャモデルを入力し保持するアーキテクチャモデル入力手段、
前記機能モデルを、前記アーキテクチャモデルに割り当てる割当手段、
割り当て後のモデルについての性能を評価する性能評価手段、
として機能させるプログラム。
【００９３】
（付記９）半導体装置の設計における仕様検討段階で、性能を評価する処理をコンピュータに機能させるプログラムを格納したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
ＵＭＬ記述により前記半導体装置の機能をモデル化した機能モデルを入力し保持する機能モデル入力手段、
前記ＵＭＬ記述により前記半導体装置の物理アーキテクチャをモデル化したアーキテクチャモデルを入力し保持するアーキテクチャモデル入力手段、
前記機能モデルを、前記アーキテクチャモデルに割り当てる割当手段、
割り当て後のモデルについての性能を評価する性能評価手段、
として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【００９４】
【発明の効果】
以上説明したように本発明では、評価対象の半導体装置を、ＵＭＬを用いてモデリングすることで分かりやすく、且つ、機能と物理アーキテクチャとに分離してモデリングすることで、望んだ性能が得られずモデリングしなおす場合に、機能または物理アーキテクチャいずれかをモデリングしなおせばよく、一方は再利用することができる。これにより、半導体装置の設計工程の短縮が期待できる。
【図面の簡単な説明】
【図１】本発明の実施の形態の性能評価装置の原理を示す原理構成図である。
【図２】プロセスクラスのクラス図の例である。
【図３】チャンネルクラスのクラス図の例である。
【図４】データクラスのクラス図の例である。
【図５】ポートクラスのクラス図の例である。
【図６】計算リソースクラスのクラス図の例である。
【図７】通信リソースクラスのクラス図の例である。
【図８】記憶リソースクラスのクラス図の例である。
【図９】アーキテクチャリソースの構成図である。
【図１０】性能評価装置のハードウェア構成例を示す図である。
【図１１】本発明の実施の形態の性能評価方法を示すフローチャートである。
【図１２】プロセスクラスのクラス図の例である。
【図１３】チャンネルクラスのクラス図の例である。
【図１４】データクラスのクラス図の例である。
【図１５】構造図の例である。
【図１６】アーキテクチャモデルを示す配置図の例である。
【図１７】マッピング後の配置図の例である。
【図１８】ＨＷ／ＳＷ分割評価の処理の流れを示すフローチャートである。
【図１９】アーキテクチャ探索処理の流れを示すフローチャートである。
【符号の説明】
１０  性能評価装置
１１  機能モデル入力手段
１２  アーキテクチャモデル入力手段
１２ａ  アーキテクチャ部品ライブラリ
１３  マッピング手段
１４  性能評価手段
【図１】
2004318654.tif 000003
【図２】
2004318654.tif 000004
【図３】
2004318654.tif 000005
【図４】
2004318654.tif 000006
【図５】
2004318654.tif 000007
【図６】
2004318654.tif 000008
【図７】
2004318654.tif 000009
【図８】
2004318654.tif 000010
【図９】
2004318654.tif 000011
【図１０】
2004318654.tif 000012
【図１１】
2004318654.tif 000013
【図１２】
2004318654.tif 000014
【図１３】
2004318654.tif 000015
【図１４】
2004318654.tif 000016
【図１５】
2004318654.tif 000017
【図１６】
2004318654.tif 000018
【図１７】
2004318654.tif 000019
【図１８】
2004318654.tif 000020
【図１９】
2004318654.tif 000021