(57)【要約】【課題】少ない工数で高速なシミュレーションを可能にする。【解決手段】システムＬＳＩに実装する処理を実行単位毎に分割した単位処理を全てソフトウェアで実行した場合の所定の性能と、分割した単位処理を全てハードウェアで実行した場合の所定の性能とを単位処理毎にそれぞれファイルに作成する性能算出部２と、ファイルから取得した単位処理毎の処理の性能に基づいてシステムＬＳＩの性能を評価する性能評価部４とを備える。【選択図】  図１
2005044129.tif 000002
【特許請求の範囲】
【請求項１】
システムＬＳＩに実装する処理を実行単位毎に分割する処理分割ステップと、
分割した単位処理を全てソフトウェアで実行した場合の所定の性能の値と、分割した単位処理を全てハードウェアで実行した場合の所定の性能の値とを、単位処理毎にそれぞれ算出する性能算出ステップと、
各単位処理毎にソフトウェア又はハードウェアで実装するかの指定を行う実装指定ステップと、
前記指定に基づいてソフトウェア又はハードウェアで実行した場合の性能の値を算出しながら全体の処理を実行して前記システムＬＳＩの性能を評価する性能評価ステップと、
を含むシステムＬＳＩ開発方法。
【請求項２】
前記性能算出ステップにおいて、ソフトウェア又はハードウェアで実行した場合の所定の性能を、面積、実行時間及び消費電力から選択した少なくとも一つに基づいて算出する請求項１記載のシステムＬＳＩ開発方法。
【請求項３】
前記性能算出ステップにおいて、ソフトウェアで実行した場合の所定の性能の値をシミュレータで算出し、算出した値に基づいて各単位処理毎に所定の性能の値を抽出する請求項１又は２記載のシステムＬＳＩ開発方法。
【請求項４】
前記性能算出ステップにおいて、ハードウェアで実行した場合の所定の性能の値をハードウェア記述の高位合成の結果から算出し、算出した値に基づいて各単位処理毎に所定の性能の値を抽出する請求項１又は２記載のシステムＬＳＩ開発方法。
【請求項５】
前記評価ステップにおいて、通信性能を評価する値を加算して前記システムＬＳＩの性能を評価する請求項１から３のいずれか一項記載のＬＳＩ開発方法。
【請求項６】
システムＬＳＩに実装する処理を実行単位毎に分割した単位処理を全てソフトウェアで実行した場合の所定の性能と、分割した単位処理を全てハードウェアで実行した場合の所定の性能とを単位処理毎にそれぞれファイルに作成する手段と、前記ファイルから取得した単位処理毎の処理の性能に基づいて前記システムＬＳＩの性能を評価する手段とを備えるＬＳＩ開発装置。
【請求項７】
請求項１から４のいずれか一項記載のシステムＬＳＩ開発方法を使用して開発されたシステムＬＳＩ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムＬＳＩの開発設計に用いるシステムＬＳＩ開発方法及び装置に関し、特に、システムＬＳＩの設計初期段階において、ハードウェアとソフトウェアを分割してアーキテクチャの検討を行う開発技術に係る。
【背景技術】
【０００２】
アプリケーションの一部をハードウェア化して、プロセッサと専用ハードウェアとで構成したシステムＬＳＩは、アプリケーションに最適なシステムＬＳＩ構成が構築できるとの理由からその需要が高まっており、このようなシステムＬＳＩの開発技術が提案されている（例えば、特許文献１参照）。
図６は従来のシステムＬＳＩ開発装置における性能評価を概念的に示す図である。このシステムでは、システムＬＳＩに実装する処理をハードウェアとソフトウェアに分割して実行する場合、最初にハードウェア構成を構築し、ソフトウェア及びハードウェアのシミュレーションモデルを用いて処理を実行して性能の見積もりを行う。具体的には、性能評価を行う実行処理６０を、ソフトウェア実行モデル６１とハードウェア実行モデル６２に分割し、作成したシミュレーションモデル６３において処理を実行して性能を見積もる。
【特許文献１】特開２００２−２３００６５号公報（段落［０００８］−［０１１５］、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の性能評価では、実装するハードウェア構成を予め構築した上で性能の評価、検討を行うため、環境構築にかかる工数が多くなり、シミュレーションの実行速度が遅くなる。
本発明は、上記事情に鑑みてなされたもので、少ない工数で高速なシミュレーションが可能なシステムＬＳＩ開発方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明のシステムＬＳＩ開発方法は、システムＬＳＩに実装する処理を実行単位毎に分割する処理分割ステップと、分割した単位処理を全てソフトウェアで実行した場合の所定の性能の値と、分割した単位処理を全てハードウェアで実行した場合の所定の性能の値とを、単位処理毎にそれぞれ算出する性能算出ステップと、各単位処理毎にソフトウェア又はハードウェアで実装するかの指定を行う実装指定ステップと、前記指定に基づいてソフトウェア又はハードウェアで実行した場合の性能の値を算出しながら全体の処理を実行して前記システムＬＳＩの性能を評価する性能評価ステップとを含む。
【０００５】
本発明のＬＳＩ開発装置は、システムＬＳＩに実装する処理を実行単位毎に分割した単位処理を全てソフトウェアで実行した場合の所定の性能と、分割した単位処理を全てハードウェアで実行した場合の所定の性能とを単位処理毎にそれぞれファイルに作成する手段と、前記ファイルから取得した単位処理毎の処理の性能に基づいて前記システムＬＳＩの性能を評価する手段とを備える。
【０００６】
上記構成によれば、実行単位毎に分割した単位処理を全てソフトウェアで実行した場合及び全てハードウェアで実行した場合の所定の性能の値を単位処理毎にそれぞれ算出しておくことで、システムＬＳＩに実装する処理の性能を評価する際、実行する処理をシミュレーションするために従来行っていたハードウェア構成の構築を行う必要がなくなるため、性能評価に要する工数を削減できる。また、性能評価のソフトウェア処理及びハードウェア処理の実行において、シミュレーションモデルをそれぞれ作成する必要がなくなるため、シミュレーションを高速に行うことができる。
【発明の効果】
【０００７】
本発明によれば、システムＬＳＩに実装する処理の性能を評価する際、実行する処理をシミュレーションするために従来行っていたハードウェア構成の構築を行う必要がないので、性能評価に要する工数を削減できる。また、性能評価のソフトウェア処理及びハードウェア処理の実行において、シミュレーションモデルをそれぞれ作成する必要がなく、性能算出部のみを組み込むのでシミュレーションを高速に行うことができる。
また、元の処理の記述を変更せずに性能の値が算出できるため、実装の変更等への対応が容易に行える。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施形態のシステムＬＳＩ開発装置について、図面を参照して説明する。ここでは、システムＬＳＩに実装する処理における性能の一例として、処理時間の見積もり、評価を行う場合について説明する。
【０００９】
図１は本発明の一実施形態のシステムＬＳＩ開発装置の概略構成を示す図である。システムＬＳＩ開発装置は、処理分割部１、性能算出部２、処理設定部３、性能評価部４を備える。
【００１０】
処理分割部１は、システムＬＳＩに実装しようとする処理を最小実行単位毎の処理に分割する。例えば、図２に示すようなＣ言語等のプログラム言語で記載された処理をシステムＬＳＩに実装する場合、funcA、funcB、funcCがそれぞれ最小の単位処理となる。
【００１１】
性能算出部２は、funcA、funcB、funcCをソフトウェアとして実行した時の単位処理の処理時間をそれぞれ算出する。実行時間の算出は、ソフトウェアとして実行する際のターゲットであるＣＰＵのＩＳＳ（Instruction Set Simulation）等により行う。算出結果は、ソフトウェアパラメータファイルとして出力される。
【００１２】
また、性能算出部２は、funcA、funcB、funcCをそれぞれハードウェアとして実行した時の単位処理に費やされる処理時間を高位合成ツールにより算出する。算出結果は、ハードウェアパラメータファイルとして出力される。
【００１３】
実装指定部３は、各単位処理をソフトウェア又はハードウェアのどちらで実行するかを記述したハードウェア／ソフトウェア設定ファイルを生成する。ハードウェア／ソフトウェア設定ファイルは、システムＬＳＩ開発装置のユーザーがシステムＬＳＩ開発装置との対話的な処理により手動で指定するようにしてもよいし、ソフトウェアパラメータファイルとハードウェアパラメータファイルの値を各単位処理について比較することにより、ソフトウェア又はハードウェアのいずれかが自動的に設定されるようにしてもかまわない。
【００１４】
性能評価部４は、シミュレーション環境を提供し、性能算出部４１と処理実行部４２を更に含む。性能算出部４１は、処理実行部４２で実行される処理全体について単位処理（funcA、funcB、funcC）の実行を検出し、パラメータファイルに記述されているパラメータを参照して、合計の処理時間を算出する。
【００１５】
図３は、性能算出部４１の機能を概念的に示す図である。性能算出部４１は、処理設定部３で生成されたハードウェア／ソフトウェア設定ファイル５３に基づいて、性能算出部２で生成されたソフトウェアパラメータファイル５１及びハードウェアパラメータファイル５２を参照して、処理時間を算出する。また、処理と処理の間を検出して、ハードウェアとソフトウェアの間の通信に用いられるデータ転送をパラメータ化した通信パラメータファイル５４を参照して、処理時間に加算する。算出結果は、性能算出結果ファイル５５として出力される。
【００１６】
図４は、本発明の実施形態のシステムＬＳＩ開発方法を示すフローチャートである。まず、処理分割部１が全体の処理をハードウェア又はソフトウェアに分割するための単位となる最小の単位処理に分割する（ステップＳ１０１）。次に、各単位処理のソフトウェアパラメータを算出するために、全体の処理をソフトウェアとして実行する（ステップＳ１０２）。また、各単位処理のハードウェアパラメータを算出するために、全体の処理をハードウェアとして高位合成する（ステップＳ１０３）。次に、ステップＳ１０２及びステップＳ１０３で得られた値に基づいて、ソフトウェアパラメータファイル及びハードウェアパラメータファイルを生成する（ステップＳ１０４）。
【００１７】
次に、処理全体の性能の値を見積もるためのハードウェア及びソフトウェアの構成を設定してハードウェア／ソフトウェア設定ファイルを生成する（ステップＳ１０５）。次に、性能算出部４１を組込んだ処理を実行し、性能の値を算出する（ステップＳ１０６）。
次に、算出した性能の値が期待通りであるか否かを判断し（ステップＳ１０７）、期待通りである場合その構成に基づいてハードウェア及びソフトウェアの実装を行う（ステップＳ１０８）。一方、算出した性能の値が期待通りでない場合ハードウェア及びソフトウェアの処理の組合せを変更し（ステップＳ１０９）、性能の値の算出をステップＳ１０６で再度行う。
【００１８】
なお、ステップＳ１０７における判断は、性能の値に対する期待値又は許容値（いずれも範囲であってもかまわない）をシステムＬＳＩ開発装置のユーザーが予め設定しておき、算出値との比較により自動的に判断されることが好ましい。また、結果が期待通りでないと判断される場合、処理の組合せの変更案を自動的に生成し、更に、生成した変更案で処理全体を実行した場合における当該性能の値の算出まで行うことが好ましい。
【００１９】
次に、図５は性能算出部４１の処理手順を示すフローチャートである。まず、性能の値を求めるためのシミュレーションを処理全体について開始して、各単位処理が実行される部分を観測する（ステップＳ２０１）。単位処理の実行を検出すると（ステップＳ２０２）。ハードウェア／ソフトウェア設定ファイルを参照して、今回の単位処理がハードウェア又はソフトウェアで実行される設定であるかを検出する（ステップＳ２０３）。検出した処理の設定と前回実行した単位処理の設定に基づいて、前回の処理と今回の処理間における通信時間を全体処理時間に加算する（ステップＳ２０４）。例えば、前回の処理がソフトウェアで今回の処理がハードウェアである場合、通信用パラメータファイルを参照して、ソフトウェアからハードウェアへの通信に設定された処理時間の値を適用する。ここで、通信時の値を設定していない場合は処理時間を考慮しないものとする。
【００２０】
次に、ステップＳ２０３で検出した単位処理の設定がハードウェア処理であるかソフトウェア処理であるかを判断し（ステップＳ２０５）、ハードウェア処理の場合はハードウェアパラメータファイルから処理時間の値を抽出して全体の処理時間に加算する（ステップＳ２０６）。ソフトウェア処理の場合はソフトウェアパラメータファイルから処理時間の値を抽出して全体の処理時間に加算する（ステップＳ２０７）。次に、全体処理の実行終了を判断し（ステップＳ２０８）、終了と判断される場合は処理時間の合計値を性能算出結果ファイルとして作成し、出力する（ステップＳ２０９）。一方、終了でないと判断される場合はステップＳ２０１へ戻り、シミュレーションの観測を継続する。
【００２１】
上記の手順を、図３に示すパラメータファイルで具体的に説明する。ハードウェア／ソフトウェア設定ファイル５３には、funcAがソフトウェア、funcBがハードウェア、funcCがソフトウェアと設定されているので、はじめに性能算出部４１は、ソフトウェアパラメータファイルからfuncAの性能値「３０」を抽出する。次に、単位処理funcBを検知すると、ソフトウェアからハードウェアへの通信が生じるため、通信用パラメータファイルからsw hw dmaの値「５」を抽出する。さらにハードウェアパラメータファイルからfuncBの性能値「５」を抽出する。同様の手順でhw sw dmaの値「５」、funcCの性能値「５０」を抽出し、その結果、性能算出結果ファイルには合計「９５」が出力される。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態のシステムＬＳＩ開発装置の概略構成を示す図
【図２】システムＬＳＩに実装する処理を記述したプログラムの例を示す図
【図３】性能算出部の機能を概念的に示す図
【図４】本発明の実施形態のシステムＬＳＩ開発方法を示すフローチャート
【図５】性能算出部の処理手順を示すフローチャート
【図６】従来のシステムＬＳＩ開発装置における性能評価を概念的に示す図
【符号の説明】
【００２３】
１  処理分割部
２  性能算出部
３  実装指定部
４  性能評価部
４１  性能算出部
４２  処理実行部
【図１】
2005044129.tif 000003
【図２】
2005044129.tif 000004
【図３】
2005044129.tif 000005
【図４】
2005044129.tif 000006
【図５】
2005044129.tif 000007
【図６】
2005044129.tif 000008