(57)【要約】【課題】ソフトウェアモジュールとハードウェアモジュールとを区別することなく、これらを組み合わせて最適なターゲットシステムを設計する。【解決手段】外部記憶装置１１０は、ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとを記憶し、モジュール選択部１２は、構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを選択し、意味空間処理部１４は、ソフトウェアモジュールの意味空間識別子とハードウェアモジュールの意味空間識別子とを取得し、モジュールマッピング処理部１５は、意味空間識別子に基づいてソフトウェアモジュール及びハードウェアモジュールのいずれかをターゲットシステムに合成する。【選択図】図５
2007305115.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのソフトウェアモジュールと、少なくとも１つのハードウェアモジュールとを組み合わせて構築されるターゲットシステムの設計を支援する設計支援システムであって、
ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとを記憶するモジュール記憶部と、
構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを前記モジュール記憶部から選択するモジュール選択部と、
前記モジュール選択部によって選択された前記ソフトウェアモジュールの前記意味空間識別子と前記ハードウェアモジュールの前記意味空間識別子とを取得する意味空間識別子取得部と、
前記意味空間識別子取得部によって取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成部とを備えることを特徴とする設計支援システム。
【請求項２】
前記ソフトウェアモジュール及び前記ハードウェアモジュールのインタフェースに関する記述が共通化されていることを特徴とする請求項１記載の設計支援システム。
【請求項３】
前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の属性を表す属性情報を含み、
前記合成部は、前記意味空間識別子に基づいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する際のマッピング形式を決定し、決定したマッピング形式が複数存在する場合、さらに前記属性情報に基づいてマッピング形式を決定し、決定したマッピング形式に従って前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成することを特徴とする請求項１記載の設計支援システム。
【請求項４】
前記属性情報は、モジュールの処理性能を表す情報、モジュールの消費する消費電力を表す情報、及びインタフェース属性が公開及び非公開のどちらであるかを表す情報のうちの少なくとも１つを含むことを特徴とする請求項３記載の設計支援システム。
【請求項５】
前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、
前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第１の処理と、前記第２のモジュールを起動する第２の処理と、割込待ち状態に移行する第３の処理と、前記第２のモジュールの処理完了後、割込みを受理して前記出力値を取得する第４の処理とを実行する割込待ちシーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項１記載の設計支援システム。
【請求項６】
前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、
前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第１の処理と、前記第２のモジュールを起動する第２の処理と、前記第２のモジュールの処理完了まで前記レジスタをポーリングする第３の処理と、前記レジスタから前記出力値を取得する第４の処理とを実行するポーリングシーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項１記載の設計支援システム。
【請求項７】
前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、
前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記入力値を引数として前記ターゲットシステム内のスタックに格納する第１の処理と、前記第２のモジュールを呼び出す第２の処理と、前記出力値をリターン値として取得する第３の処理とを実行する関数呼出しシーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項１記載の設計支援システム。
【請求項８】
前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、
前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記入力値をメッセージとして送信する第１の処理と、メッセージ受信待ち状態に移行する第２の処理と、受信したメッセージから前記出力値を取得する第３の処理とを実行するメッセージ送信シーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項１記載の設計支援システム。
【請求項９】
前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、
前記合成部は、前記意味空間識別子がハードウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第１の処理と、割込みを発生させて前記第２のモジュールを起動する第２の処理と、前記第２のモジュールの処理完了後、前記レジスタから前記出力値を取得する第３の処理とを実行する割込みシーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項１記載の設計支援システム。
【請求項１０】
前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、
前記合成部は、前記意味空間識別子がハードウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のバッファに前記入力値を格納して前記第２のモジュールを起動する第１の処理と、前記第２のモジュールの処理完了後、前記バッファから前記出力値を取得する第２の処理とを実行するバッファリングシーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項１記載の設計支援システム。
【請求項１１】
前記ソフトウェアモジュール及び前記ハードウェアモジュールは、モジュールが消費する消費電力、モジュールの回路面積及びモジュールの処理時間のうちの少なくとも１つを含み、
前記ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも１つを予め記憶する制約条件記憶部と、
前記合成部によって前記ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも１つに基づいて、前記ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも１つを仕様値として計算する計算部と、
前記計算部によって計算された前記仕様値が前記制約条件記憶部に記憶されている前記制約条件を満たすか否かを判断する判断部と、
前記判断部によって前記仕様値が前記制約条件を満たすと判断された場合、前記ターゲットシステムをユーザに提示する提示部とをさらに備えることを特徴とする請求項１記載の設計支援システム。
【請求項１２】
前記モジュール選択部は、前記判断部によって前記仕様値が前記制約条件を満たさないと判断された場合、前記ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールを選択し、選択した前記入れ替え可能なモジュールを他のモジュールと交換し、
前記合成部は、交換した前記他のモジュールを前記ターゲットシステムに合成することを特徴とする請求項１１記載の設計支援システム。
【請求項１３】
前記制約条件が複数存在する場合、前記制約条件の優先度を設定する優先度設定部をさらに備えることを特徴とする請求項１１記載の設計支援システム。
【請求項１４】
前記ソフトウェアモジュール及び前記ハードウェアモジュールは、モジュールが消費する消費電力、モジュールの回路面積及びモジュールの処理時間のうちの少なくとも１つを含み、
前記ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも１つを予め記憶する制約条件記憶部と、
前記合成部によって前記ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも１つに基づいて、前記ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも１つを仕様値として計算する計算部と、
前記計算部によって計算された前記仕様値が前記制約条件記憶部に記憶されている前記制約条件を満たすか否かを判断する判断部と、
前記判断部によって前記仕様値が前記制約条件を満たすと判断された場合、前記ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールがなくなるまで、前記ターゲットシステムを記憶するターゲットシステム記憶部と、
前記ターゲットシステム記憶部に記憶されている全ての前記ターゲットシステムをユーザに提示する提示部とを備えることを特徴とする請求項１記載の設計支援システム。
【請求項１５】
前記提示部は、前記制約条件を満たす順番で前記ターゲットシステム記憶部に記憶されている前記ターゲットシステムをユーザに提示することを特徴とする請求項１４記載の設計支援システム。
【請求項１６】
少なくとも１つのソフトウェアモジュールと、少なくとも１つのハードウェアモジュールとを組み合わせて構築されるターゲットシステムの設計を支援するための設計支援方法であって、
ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとがモジュール記憶部に記憶されており、
構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを前記モジュール記憶部から選択するモジュール選択ステップと、
前記モジュール選択ステップにおいて選択された前記ソフトウェアモジュールの前記意味空間識別子と前記ハードウェアモジュールの前記意味空間識別子とを取得する意味空間識別子取得ステップと、
前記意味空間識別子取得ステップにおいて取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成ステップとを含むことを特徴とする設計支援方法。
【請求項１７】
少なくとも１つのソフトウェアモジュールと、少なくとも１つのハードウェアモジュールとを組み合わせて構築されるターゲットシステムの設計を支援するための設計支援プログラムであって、
構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを、ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとを記憶するモジュール記憶部を参照することにより選択するモジュール選択手段と、
前記モジュール選択手段によって選択された前記ソフトウェアモジュールの意味空間識別子と前記ハードウェアモジュールの意味空間識別子とを取得する意味空間識別子取得手段と、
前記意味空間識別子取得手段によって取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成手段としてコンピュータを機能させることを特徴とする設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つのソフトウェアモジュールと、少なくとも１つのハードウェアモジュールとを組み合わせて構築されるターゲットシステムの設計を支援する設計支援システム、設計支援方法及び設計支援プログラムに関するものである。
【背景技術】
【０００２】
ハードウェアモジュールを組み合わせてシステムを構築する統合設計環境に関連する技術として、例えば特許文献１がある。本特許文献１では、電子回路モデルが高級記述言語で記述された記述ファイルを構文解析して制御データ・フロー・グラフを生成する。そして、当該制御データ・フロー・グラフが、複数の連結されたノードの集合よりなるスレッドに分割され、分割されたスレッドが面積制約および時間制約に合致するように最適化され、電子回路モデルに関する論理セル（ハードウェアモジュール）の数、機能、配置および配線の指定情報が得られる。
【０００３】
また、ソフトウェアモジュールを管理するシステムに関連する技術として、例えば特許文献２がある。本特許文献２における情報処理装置は、複数のオブジェクトと、当該オブジェクトを管理するオブジェクト生成手段を有している。そして、各オブジェクトは、属性名と属性値とを対応づけて属性情報を管理する属性情報管理手段と、属性情報の設定および取得の要求を受け付ける共通のインタフェースとを有し、オブジェクト生成手段は、生成したオブジェクトの型に対応した属性情報を該オブジェクトに設定する。
【０００４】
また、ソフトウェアモジュールとハードウェアモジュールとを組み合わせてシステムを構築する技術として、例えば非特許文献１がある。本非特許文献１では、設計対象の記述ファイルを読み込み、その記述をハードウェア化する部分と、ソフトウェア化する部分と、その間のインタフェースとの三つの部分に分類し、当該インタフェースを自動生成している。
【特許文献１】特開２００２−１２３５６３号公報
【特許文献２】特開２００５−３０１９８５号公報
【非特許文献１】本田晋也著、「ソフトウェア・ハードウェア間インタフェース生成ツールの開発−ソフトウェア・ハードウェアコデザイン−」、独立行政法人情報処理推進機構２００３年度成果報告集（未踏ソフトウェア部門）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
近年、複雑化、多様化が加速しつつある情報家電機器や携帯電話などの組込み計算機分野において、回路面積、時間制約、性能及び消費電力などの制約条件を満たしつつ短期間でシステムを構築することが重要である。回路面積、性能及び消費電力など、相反する制約条件を満たすためには、複数のハードウェアモジュール及び複数のソフトウェアモジュールから、制約条件を満足するためのモジュールを選択して組み合わせる技術が必要である。例えば、コストを重視する際には、ソフトウェアモジュールを選択し、性能を重視する際には、ハードウェアモジュールを選択し、選択した各モジュールを組み合わせる必要がある。すなわち、複数のハードウェアモジュール及び複数のソフトウェアモジュールから構成される設計支援システムにおいて、制約条件を満足するモジュールを適切に選択して自由に組み合わせることができるようにしなければならない。
【０００６】
上記の特許文献１の構成は、複数のハードウェアモジュールのみを組み合わせてシステムを構築するものであり、ソフトウェアモジュールとの組合せを行うものではない。逆に、上記の特許文献２の構成は、ソフトウェアモジュールのみを組み合わせる技術に関連する。すなわち、特許文献１，２の構成は、いずれも、ハードウェアモジュール同士、ソフトウェアモジュール同士を組み合わせてシステムを構築する技術に関連するが、ソフトウェアモジュールとハードウェアモジュールとの自由な組合せを意図した組込み計算機システムの構築に適用することはできない。特に、ハードウェアモジュールのインタフェース、及びソフトウェアモジュールのインタフェースは、通常、相互に異なっているため、ハードウェアモジュール同士、及びソフトウェアモジュール同士の組合せが実現できても、ソフトウェアモジュールとハードウェアモジュールとの自由な組合せを実現できることには繋がらない。
【０００７】
上記の非特許文献１の構成は、一つのシステム記述を、ソフトウェアモジュールとハードウェアモジュールとに分割し、それらのインタフェースを割込みおよび同期機構として生成するものであり、前述した組込み計算機分野への適用に最も近い。しかしながら、非特許文献１の構成は、あくまでも、ソフトウェアモジュールとハードウェアモジュールとの組合せを目的としたものであり、前者のソフトウェアモジュールが性能上の制約によりハードウェアモジュールに変更された場合、あるいは、後者のハードウェアモジュールがコスト上の制約によりソフトウェアモジュールに変更された場合、当該インタフェースは意味を成さなくなる。
【０００８】
すなわち、特許文献１，２及び非特許文献１では、ソフトウェアモジュール同士のインタフェース、ハードウェアモジュール同士のインタフェース、あるいは、ソフトウェアモジュールとハードウェアモジュールとの間のインタフェースを固定的に設ける技術が開示されており、これらのインタフェースを制約条件にしたがって変更することは想定していない。例えば、ソフトウェアモジュールをハードウェアモジュールに入れ替えた場合、当該モジュールとのインタフェースの変更、すなわち、システム設計自体を再度実施しなければならなくなる。
【０００９】
本発明は、上記の課題を解決するためになされたもので、ソフトウェアモジュールとハードウェアモジュールとを区別することなく、これらを組み合わせて最適なターゲットシステムを設計することができる設計支援システム、設計支援方法及び設計支援プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【００１０】
本発明の一局面に係る設計支援システムは、少なくとも１つのソフトウェアモジュールと、少なくとも１つのハードウェアモジュールとを組み合わせて構築されるターゲットシステムの設計を支援する設計支援システムであって、ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとを記憶するモジュール記憶部と、構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを前記モジュール記憶部から選択するモジュール選択部と、前記モジュール選択部によって選択された前記ソフトウェアモジュールの前記意味空間識別子と前記ハードウェアモジュールの前記意味空間識別子とを取得する意味空間識別子取得部と、前記意味空間識別子取得部によって取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成部とを備える。
【００１１】
本発明の他の局面に係る設計支援方法は、少なくとも１つのソフトウェアモジュールと、少なくとも１つのハードウェアモジュールとを組み合わせて構築されるターゲットシステムの設計を支援するための設計支援方法であって、ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとがモジュール記憶部に記憶されており、構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを前記モジュール記憶部から選択するモジュール選択ステップと、前記モジュール選択ステップにおいて選択された前記ソフトウェアモジュールの前記意味空間識別子と前記ハードウェアモジュールの前記意味空間識別子とを取得する意味空間識別子取得ステップと、前記意味空間識別子取得ステップにおいて取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成ステップとを含む。
【００１２】
本発明の他の局面に係る設計支援プログラムは、少なくとも１つのソフトウェアモジュールと、少なくとも１つのハードウェアモジュールとを組み合わせて構築されるターゲットシステムの設計を支援するための設計支援プログラムであって、構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを、ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとを記憶するモジュール記憶部を参照することにより選択するモジュール選択手段と、前記モジュール選択手段によって選択された前記ソフトウェアモジュールの意味空間識別子と前記ハードウェアモジュールの意味空間識別子とを取得する意味空間識別子取得手段と、前記意味空間識別子取得手段によって取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成手段としてコンピュータを機能させる。
【００１３】
これらの構成によれば、モジュール記憶部には、ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとが記憶されている。そして、構築すべきターゲットシステムの処理が特定され、特定された処理を実行するソフトウェアモジュール及びハードウェアモジュールがモジュール記憶部から選択される。続いて、選択されたソフトウェアモジュールの意味空間識別子とハードウェアモジュールの意味空間識別子とが取得される。その後、取得された意味空間識別子に基づいてソフトウェアモジュール及びハードウェアモジュールのいずれかがターゲットシステムに合成される。
【００１４】
したがって、ソフトウェアモジュール及びハードウェアモジュールが含む意味空間識別子に基づいて、ソフトウェアモジュール及びハードウェアモジュールのいずれかがターゲットシステムに合成されるので、ソフトウェアモジュールとハードウェアモジュールとを区別することなく、これらを組み合わせて最適なターゲットシステムを設計することができる。
【００１５】
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールのインタフェースに関する記述が共通化されていることが好ましい。この構成によれば、ソフトウェアモジュール及びハードウェアモジュールのインタフェースに関する記述が共通化されているので、ソフトウェアモジュールであっても、ハードウェアモジュールであっても、統一的に管理することができ、インタフェースの違いを考慮することなく、必要なモジュールを適切に選択することができる。
【００１６】
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の属性を表す属性情報を含み、前記合成部は、前記意味空間識別子に基づいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する際のマッピング形式を決定し、決定したマッピング形式が複数存在する場合、さらに前記属性情報に基づいてマッピング形式を決定し、決定したマッピング形式に従って前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成することが好ましい。
【００１７】
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の属性を表す属性情報が含まれる。そして、意味空間識別子に基づいて、ソフトウェアモジュール及びハードウェアモジュールのいずれかをターゲットシステムに合成する際のマッピング形式が決定される。ここで、決定されたマッピング形式が複数存在する場合、さらに属性情報に基づいてマッピング形式が決定され、決定したマッピング形式に従ってソフトウェアモジュール及びハードウェアモジュールのいずれかがターゲットシステムに合成されるので、適切なマッピング形式に従ってモジュールをターゲットシステムに合成することができる。
【００１８】
また、上記の設計支援システムにおいて、前記属性情報は、モジュールの処理性能を表す情報、モジュールの消費する消費電力を表す情報、及びインタフェース属性が公開及び非公開のどちらであるかを表す情報のうちの少なくとも１つを含むことが好ましい。
【００１９】
この構成によれば、属性情報には、モジュールの処理性能を表す情報、モジュールの消費する消費電力を表す情報、及びインタフェース属性が公開及び非公開のどちらであるかを表す情報のうちの少なくとも１つが含まれるので、これらの情報に基づいてマッピング形式をさらに詳細に決定することができる。
【００２０】
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第１の処理と、前記第２のモジュールを起動する第２の処理と、割込待ち状態に移行する第３の処理と、前記第２のモジュールの処理完了後、割込みを受理して前記出力値を取得する第４の処理とを実行する割込待ちシーケンスを前記ターゲットシステムにマッピングすることが好ましい。
【００２１】
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、意味空間識別子がハードウェアモジュールを示す第２のモジュールがターゲットシステムにマッピングされる場合、ターゲットシステム内のレジスタに入力値を格納する第１の処理と、第２のモジュールを起動する第２の処理と、割込待ち状態に移行する第３の処理と、第２のモジュールの処理完了後、割込みを受理して出力値を取得する第４の処理とを実行する割込待ちシーケンスがターゲットシステムにマッピングされる。
【００２２】
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ソフトウェアモジュールからハードウェアモジュールが参照され、ハードウェアモジュールがターゲットシステムにマッピングされる場合に、割込待ちシーケンスをターゲットシステムにマッピングすることができる。
【００２３】
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第１の処理と、前記第２のモジュールを起動する第２の処理と、前記第２のモジュールの処理完了まで前記レジスタをポーリングする第３の処理と、前記レジスタから前記出力値を取得する第４の処理とを実行するポーリングシーケンスを前記ターゲットシステムにマッピングすることが好ましい。
【００２４】
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、意味空間識別子がハードウェアモジュールを示す第２のモジュールがターゲットシステムにマッピングされる場合、ターゲットシステム内のレジスタに入力値を格納する第１の処理と、第２のモジュールを起動する第２の処理と、第２のモジュールの処理完了までレジスタをポーリングする第３の処理と、レジスタから出力値を取得する第４の処理とを実行するポーリングシーケンスがターゲットシステムにマッピングされる。
【００２５】
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ソフトウェアモジュールからハードウェアモジュールが参照され、ハードウェアモジュールがターゲットシステムにマッピングされる場合に、ポーリングシーケンスをターゲットシステムにマッピングすることができる。
【００２６】
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記入力値を引数として前記ターゲットシステム内のスタックに格納する第１の処理と、前記第２のモジュールを呼び出す第２の処理と、前記出力値をリターン値として取得する第３の処理とを実行する関数呼出しシーケンスを前記ターゲットシステムにマッピングすることが好ましい。
【００２７】
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、意味空間識別子がソフトウェアモジュールを示す第２のモジュールがターゲットシステムにマッピングされる場合、入力値を引数としてターゲットシステム内のスタックに格納する第１の処理と、第２のモジュールを呼び出す第２の処理と、出力値をリターン値として取得する第３の処理とを実行する関数呼出しシーケンスがターゲットシステムにマッピングされる。
【００２８】
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ソフトウェアモジュールからソフトウェアモジュールが参照され、ソフトウェアモジュールがターゲットシステムにマッピングされる場合に、関数呼出しシーケンスをターゲットシステムにマッピングすることができる。
【００２９】
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記入力値をメッセージとして送信する第１の処理と、メッセージ受信待ち状態に移行する第２の処理と、受信したメッセージから前記出力値を取得する第３の処理とを実行するメッセージ送信シーケンスを前記ターゲットシステムにマッピングすることが好ましい。
【００３０】
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がソフトウェアモジュールを示す第１のモジュールから参照される、意味空間識別子がソフトウェアモジュールを示す第２のモジュールがターゲットシステムにマッピングされる場合、入力値をメッセージとして送信する第１の処理と、メッセージ受信待ち状態に移行する第２の処理と、受信したメッセージから出力値を取得する第３の処理とを実行するメッセージ送信シーケンスがターゲットシステムにマッピングされる。
【００３１】
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ソフトウェアモジュールからソフトウェアモジュールが参照され、ソフトウェアモジュールがターゲットシステムにマッピングされる場合に、メッセージ送信シーケンスをターゲットシステムにマッピングすることができる。
【００３２】
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がハードウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第１の処理と、割込みを発生させて前記第２のモジュールを起動する第２の処理と、前記第２のモジュールの処理完了後、前記レジスタから前記出力値を取得する第３の処理とを実行する割込みシーケンスを前記ターゲットシステムにマッピングすることが好ましい。
【００３３】
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がハードウェアモジュールを示す第１のモジュールから参照される、意味空間識別子がソフトウェアモジュールを示す第２のモジュールがターゲットシステムにマッピングされる場合、ターゲットシステム内のレジスタに入力値を格納する第１の処理と、割込みを発生させて第２のモジュールを起動する第２の処理と、第２のモジュールの処理完了後、レジスタから出力値を取得する第３の処理とを実行する割込みシーケンスがターゲットシステムにマッピングされる。
【００３４】
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ハードウェアモジュールからソフトウェアモジュールが参照され、ソフトウェアモジュールがターゲットシステムにマッピングされる場合に、割込みシーケンスをターゲットシステムにマッピングすることができる。
【００３５】
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がハードウェアモジュールを示す第１のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第２のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のバッファに前記入力値を格納して前記第２のモジュールを起動する第１の処理と、前記第２のモジュールの処理完了後、前記バッファから前記出力値を取得する第２の処理とを実行するバッファリングシーケンスを前記ターゲットシステムにマッピングすることが好ましい。
【００３６】
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がハードウェアモジュールを示す第１のモジュールから参照される、意味空間識別子がハードウェアモジュールを示す第２のモジュールがターゲットシステムにマッピングされる場合、ターゲットシステム内のバッファに入力値を格納して第２のモジュールを起動する第１の処理と、第２のモジュールの処理完了後、バッファから出力値を取得する第２の処理とを実行するバッファリングシーケンスがターゲットシステムにマッピングされる。
【００３７】
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ハードウェアモジュールからハードウェアモジュールが参照され、ハードウェアモジュールがターゲットシステムにマッピングされる場合に、バッファリングシーケンスをターゲットシステムにマッピングすることができる。
【００３８】
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールは、モジュールが消費する消費電力、モジュールの回路面積及びモジュールの処理時間のうちの少なくとも１つを含み、前記ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも１つを予め記憶する制約条件記憶部と、前記合成部によって前記ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも１つに基づいて、前記ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも１つを仕様値として計算する計算部と、前記計算部によって計算された前記仕様値が前記制約条件記憶部に記憶されている前記制約条件を満たすか否かを判断する判断部と、前記判断部によって前記仕様値が前記制約条件を満たすと判断された場合、前記ターゲットシステムをユーザに提示する提示部とをさらに備えることが好ましい。
【００３９】
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールには、モジュールが消費する消費電力、モジュールの回路面積及びモジュールの処理時間のうちの少なくとも１つが含まれる。そして、ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも１つが制約条件記憶部に予め記憶されている。ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも１つに基づいて、ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも１つが仕様値として計算される。計算された仕様値が、制約条件記憶部に記憶されている制約条件を満たすか否かが判断され、仕様値が制約条件を満たすと判断された場合、ターゲットシステムがユーザに提示される。
【００４０】
したがって、ターゲットシステムを設計する際の制約条件を満たしつつ、自由にターゲットシステムを設計することができる。また、予め記憶されている制約条件を満たすターゲットシステムを自動的に設計することができる。
【００４１】
また、上記の設計支援システムにおいて、前記モジュール選択部は、前記判断部によって前記仕様値が前記制約条件を満たさないと判断された場合、前記ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールを選択し、選択した前記入れ替え可能なモジュールを他のモジュールと交換し、前記合成部は、交換した前記他のモジュールを前記ターゲットシステムに合成することが好ましい。
【００４２】
この構成によれば、仕様値が制約条件を満たさないと判断された場合、ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールが選択され、選択された入れ替え可能なモジュールが他のモジュールと交換され、交換された他のモジュールがターゲットシステムに合成される。
【００４３】
したがって、仕様値が制約条件を満たさない場合であっても、仕様値が制約条件を満たす他のモジュールが再度選択され、ターゲットシステムに合成されるので、制約条件を満たすターゲットシステムを自動的に設計することができる。
【００４４】
また、上記の設計支援システムにおいて、前記制約条件が複数存在する場合、前記制約条件の優先度を設定する優先度設定部をさらに備えることが好ましい。この構成によれば、制約条件が複数存在する場合、制約条件の優先度が設定されるので、優先度に応じて最適なモジュールをターゲットシステムに合成することができる。
【００４５】
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールは、モジュールが消費する消費電力、モジュールの回路面積及びモジュールの処理時間のうちの少なくとも１つを含み、前記ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも１つを予め記憶する制約条件記憶部と、前記合成部によって前記ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも１つに基づいて、前記ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも１つを仕様値として計算する計算部と、前記計算部によって計算された前記仕様値が前記制約条件記憶部に記憶されている前記制約条件を満たすか否かを判断する判断部と、前記判断部によって前記仕様値が前記制約条件を満たすと判断された場合、前記ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールがなくなるまで、前記ターゲットシステムを記憶するターゲットシステム記憶部と、前記ターゲットシステム記憶部に記憶されている全ての前記ターゲットシステムをユーザに提示する提示部とを備えることが好ましい。
【００４６】
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールには、モジュールが消費する消費電力、モジュールの回路面積及びモジュールの処理時間のうちの少なくとも１つが含まれる。そして、ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも１つが制約条件記憶部に予め記憶されている。ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも１つに基づいて、ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも１つが仕様値として計算される。計算された仕様値が、制約条件記憶部に記憶されている制約条件を満たすか否かが判断され、仕様値が制約条件を満たすと判断された場合、ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールがなくなるまで、ターゲットシステムがターゲットシステム記憶部に記憶される。そして、ターゲットシステム記憶部に記憶されている全てのターゲットシステムがユーザに提示される。
【００４７】
したがって、仕様値が制約条件を満たす全てのターゲットシステムが提示されるので、ユーザは、最適なターゲットシステムを確認することができる。
【００４８】
また、上記の設計支援システムにおいて、前記提示部は、前記制約条件を満たす順番で前記ターゲットシステム記憶部に記憶されている前記ターゲットシステムをユーザに提示することが好ましい。
【００４９】
この構成によれば、制約条件を満たす順番でターゲットシステム記憶部に記憶されているターゲットシステムがユーザに提示されるので、ユーザは、最適なターゲットシステムを容易に確認することができる。
【発明の効果】
【００５０】
本発明によれば、ソフトウェアモジュール及びハードウェアモジュールが含む意味空間識別子に基づいて、ソフトウェアモジュール及びハードウェアモジュールのいずれかがターゲットシステムに合成されるので、ソフトウェアモジュールとハードウェアモジュールとを区別することなく、これらを組み合わせて最適なターゲットシステムを設計することができる。
【発明を実施するための最良の形態】
【００５１】
以下添付図面を参照しながら、本発明の実施の形態について説明する。尚、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。
【００５２】
図１は、本実施の形態における設計支援システムの構成例を示した図である。設計支援システム１００は、組込み計算機システム分野におけるハードウェアモジュール、ソフトウェアモジュールを管理する設計支援システム全体を示す。設計支援システム１００は、ネットワーク１１１に接続された外部記憶装置１１０及びデータベース処理装置１１２から構成される。外部記憶装置１１０は、ハードディスク、光ディスクなどを利用した大容量記憶装置である。図中では、データベース処理装置１１２を一つしか示していないが、大規模データを扱う場合には、複数個のデータベース処理装置１１２を並列に処理させて高速化させる方法を採用することも可能である。
【００５３】
データベース処理装置１１２は、一般的な情報処理装置であり、ＣＰＵ（中央演算処理装置）１１４、内部メモリ１１５及び外部入出力装置１１６を備える。ＣＰＵ１１４、内部メモリ１１５及び外部入出力装置１１６は、それぞれ内部バス１１３に接続されている。外部入出力装置１１６は、ネットワーク接続装置であり、ネットワーク１１１を介して外部記憶装置１１０の記憶内容を参照する。内部メモリ１１５には、モジュール管理ソフトウェア１１７が記憶されている。ＣＰＵ１１４は、モジュール管理ソフトウェア１１７の命令を逐次読み出して実行する。モジュール管理ソフトウェア１１７は、設計支援システム１００全体を管理するソフトウェアであり、外部記憶装置１１０に格納されているハードウェアモジュール１２０乃至１２２、ソフトウェアモジュール１３０乃至１３２を管理し、選択し、マッピングする機能を有する。当該モジュール管理ソフトウェア１１７の処理内容については、図４以降において後述する。
【００５４】
ハードウェアモジュール１２０乃至１２２、および、ソフトウェアモジュール１３０乃至１３２は、それぞれ、各種ハードウェアモジュールの回路図、ソフトウェアモジュールのソースコード又はオブジェクトファイルの内容を含んでいる。ハードウェアモジュール及びソフトウェアモジュールの詳細は図２及び図３を用いて説明する。図１では、ハードウェアモジュール１２０とソフトウェアモジュール１３０とは、同一の処理を行うハードウェア回路とソフトウェアモジュールとを表している。この場合、当該ハードウェアモジュールのインタフェース部１４０と、ソフトウェアモジュールのインタフェース部１４１とは、全く同一の記述となる。通常、ハードウェアモジュールのインタフェースは、上記の第３の文献に示されるように、割込みやレジスタアクセスで行われ、ソフトウェアモジュールのインタフェースは、上記の第２の文献に示されるように、関数呼出しやメッセージ通信で行われるが、本実施の形態では、これらのインタフェースを共通化させている。これにより、モジュール管理ソフトウェア１１７は、ソフトウェアモジュールであっても、ハードウェアモジュールであっても、統一的に管理し、必要なモジュールを適切に選択することができる。図１において、ハードウェアモジュールとソフトウェアモジュールとの区別を行う識別子は意味空間識別子１４２、１４３である。意味空間識別子１４２はハードウェア空間のモジュールであることを示し、意味空間識別子１４３はソフトウェア空間のモジュールであることを示す。
【００５５】
図２は、ハードウェアモジュール１２０の内部構成を詳細に説明するための図である。本実施の形態において、ハードウェアモジュール１２０はＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）などの共通言語で記載されているものとしているが、別のタグ言語を利用してもよい。しかしながら、図４において後述するように、ＸＭＬスキーマ及び意味空間処理によって、特定のタグで指定されたデータの意味を変更することになるため、タグに対して処理すべき内容を意味空間定義によって変更することが容易なＸＭＬでの記載が望ましい。
【００５６】
ハードウェアモジュール１２０は、意味空間識別子１４２、インタフェース部１４０、消費電力情報２０１、処理速度情報２０２及び回路構成記述部２００で構成される。意味空間識別子１４２は、開始タグ２２０ａと、終了タグ２２０ｂと、開始タグ２２０ａ及び終了タグ２２０ｂで囲まれた意味空間記号２１０とで構成される。以下、いずれの項目に関しても同様に、ＸＭＬで記載する場合、ＸＭＬ文法に従い、開始タグ、データ及び終了タグの組合せで記述される。インタフェース部１４０は、一般に、入力インタフェース１４０ａ及び出力インタフェース１４０ｂから構成される。モジュールによっては、入力インタフェース１４０ａ及び出力インタフェース１４０ｂのうちのいずれかのみというインタフェースとなることもある。
【００５７】
入力インタフェース１４０ａは、さらに、開始タグ２２１ａと、終了タグ２２１ｂと、開始タグ２２１ａ及び終了タグ２２１ｂで囲まれた引数群２１１とで構成される。同様に、出力インタフェース１４０ｂは、開始タグ２２２ａと、終了タグ２２２ｂと、開始タグ２２２ａ及び終了タグ２２２ｂで囲まれたリターン値群２１２とで構成される。なお、引数群２１１は複数個の引数で構成され、リターン値群２１２は複数個のリターン値で構成される場合がある。本実施の形態では、引数が二つ存在し、リターン値が一つしか存在しない条件で記載している。引数群２１１が複数個の引数から構成される場合、第一引数及び第二引数といった個々の引数をＸＭＬタグによって区別することが可能である。
【００５８】
回路構成記述部２００は、ハードウェアモジュール１２０における実際の回路図を記載したものである。回路構成記述部２００についても、開始タグ２２３ａと、終了タグ２２３ｂと、開始タグ２２３ａ及び終了タグ２２３ｂで囲まれた回路図２１３とで構成される。なお、回路図２１３は、図２においては、理解しやすいように、ブロック図レベルで記載しているが、実際には、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）記述、ＳｙｓｔｅｍＣ記述など、ハードウェア記述用言語で直接記載されるか、または、当該記述ファイルへのリンクを記載してもよい。
【００５９】
インタフェース部１４０（１４０ａおよび１４０ｂ）、意味空間識別子１４２及び回路構成記述部２００によって、ハードウェアモジュール１２０の外部動作仕様及び内部動作仕様が規定される。データを記述するマークアップ言語を定義するメタ言語としてＸＭＬを利用することにより、当該ハードウェアモジュールを選択する際に参照するための属性情報も追記することができる。消費電力情報２０１及び処理速度情報２０２がこの属性情報に相当する。消費電力情報２０１は、回路図２１３を実装した場合に消費する電力を表す。消費電力情報２０１も同様に、開始タグ２２４ａと、終了タグ２２４ｂと、開始タグ２２４ａ及び終了タグ２２４ｂで囲まれた消費電力見積り値２１４とで構成される。なお、ＸＭＬ記述の利点を生かし、開始タグ２２４ａにおいて、消費電力情報２０１の“単位”が“ワット”であることが規定されている。
【００６０】
同様に、処理速度情報２０２は、回路図２１３を実装した場合の処理速度を表している。処理速度情報２０２は、開始タグ２２５ａと、終了タグ２２５ｂと、開始タグ２２５ａ及び終了タグ２２５ｂで囲まれた処理実行時間２１５とで構成される。なお、開始タグ２２５ａにおいて、処理実行時間の単位が“サイクル数”であることが規定されている。消費電力情報２０１及び処理速度情報２０２は、実際に、ハードウェアモジュール１２０をシステムに組み込む際に利用されるものではないが、複数の同一処理を行うハードウェアモジュール、ソフトウェアモジュールが存在し、消費電力制約及び時間制約に基づいてモジュールを選択する際に利用される。なお、図２では、消費電力情報２０１及び処理速度情報２０２のみを指定しているが、ハードウェアモジュールの場合、これらに加えて、回路面積情報などを追記できる。
【００６１】
図３は、ソフトウェアモジュール１３０の内部構成を詳細に説明するための図である。図３において、ハードウェアモジュール１２０と共通の符号については、同一の内容を示している。ソフトウェアモジュール１３０は、ハードウェアモジュール１２０と同様にＸＭＬで記載されている。
【００６２】
ソフトウェアモジュール１３０は、意味空間識別子１４３、インタフェース部１４１、ライセンス情報３０１、処理速度情報３０２及びプログラム記述部３００で構成される。ハードウェアモジュール１２０と同様に、ソフトウェアモジュール１３０は、意味空間識別子１４３を有している。意味空間識別子１４３は、他のハードウェアモジュール及びソフトウェアモジュールと同一の開始タグ２２０ａ及び終了タグ２２０ｂを有するが、ソフトウェアモジュールであるため、異なった意味空間記号３１０を用いている。インタフェース部１４１は、入力インタフェース１４１ａ及び出力インタフェース１４１ｂから構成される。
【００６３】
入力インタフェース１４１ａは、さらに、開始タグ２２１ａと、終了タグ２２１ｂと、開始タグ２２１ａ及び終了タグ２２１ｂで囲まれた引数群３１１とで構成される。同様に、出力インタフェース１４１ｂは、開始タグ２２２ａと、終了タグ２２２ｂと、開始タグ２２２ａ、終了タグ２２２ｂで囲まれたリターン値群３１２とで構成される。ソフトウェアモジュール１３０のインタフェース部１４１（１４１ａおよび１４１ｂ）は、ハードウェアモジュールと共通の形式で記述され、同一機能が実装される場合、ソフトウェアモジュール及びハードウェアモジュールのいずれであっても、同じタグ、内容を示すものとする。
【００６４】
プログラム記述部３００は、ソフトウェアモジュール１３０における実際のプログラムを記載したものである。プログラム記述部３００についても、開始タグ２２３ａと、終了タグ２２３ｂと、開始タグ２２３ａ及び終了タグ２２３ｂで囲まれたプログラムコード３１３とで構成される。プログラムコード３１３は、理解が容易なように、ソースコードで記載しているが、実際には、オブジェクトコードで記載したり、ソースコードファイルやオブジェクトファイルへのリンクを記載してもよい。
【００６５】
インタフェース部１４１（１４１ａおよび１４１ｂ）、意味空間識別子１４３及びプログラム記述部３００によって、ソフトウェアモジュール１３０の外部動作仕様及び内部動作仕様が規定される。ハードウェアモジュール１２０と同様、ソフトウェアモジュール１３０においても、ライセンス情報３０１及び処理速度情報３０２といった属性情報を追加している。なお、ソフトウェアモジュール１３０には、回路面積及び消費電力情報が設けられていない。
【００６６】
ライセンス情報３０１は、開始タグ３２０ａと、終了タグ３２０ｂと、開始タグ３２０ａ及び終了タグ３２０ｂで囲まれたライセンス情報内容３１４とで構成される。本実施の形態におけるライセンス情報内容３１４は、ソフトウェアモジュール１３０がＧＰＬ（ＧＮＵ  Ｐｕｂｌｉｃ  Ｌｉｃｅｎｓｅ）管理下にあることを示している。当該ＸＭＬ記述を利用することで、モジュール管理ソフトウェア１１７は、ライセンス情報内容３１４が“ＧＰＬ”を表す場合にはソースコードを外部公開するという機能を搭載することも可能である。
【００６７】
処理速度情報３０２は、プログラムコード３１３を実行した場合の処理速度を表している。処理速度情報３０２は、開始タグ３２１ａと、終了タグ３２１ｂと、開始タグ３２１ａ及び終了タグ３２１ｂで囲まれた処理実行時間３１５とで構成される。ただし、プログラムの処理実行時間であるため、サイクル精度の実行時間を規定することができず、開始タグ３２１ａにおいて、処理実行時間の単位が“秒”であることを規定している。
【００６８】
以上説明したように、ソフトウェアモジュール及びハードウェアモジュールに意味空間情報を設け、かつ、インタフェース部を共通化することにより、実現手段がソフトウェアであっても、ハードウェアであっても、同一モジュールとして扱うことができる。同じインタフェース記述であっても、最終的には意味空間情報を用いて異なったマッピングが行われるが、モジュールを選択して組込み計算機システムを構築する際には、インタフェース仕様のみをベースにしてシステム設計を行えばよい。実際にソフトウェアにマッピングされるか、ハードウェアで実現されるかについては、システム設計段階で気にかける必要性はなくなる。
【００６９】
図４は、ハードウェアモジュール１２０及びソフトウェアモジュール１３０を実際の組込み計算機システムにマッピングする際の設計支援システム１００の処理を表す概念図である。ここで、図１乃至図３と同一の符号は、図１乃至図３と同一の構成及びデータを表している。
【００７０】
アプリケーション４００は、本実施の形態における設計支援システム１００を用いて合成したいターゲットアプリケーションである。これを、制約条件ファイル４０１で指定された条件にしたがって、ターゲットシステム４０２または４０３にマッピングする。なお、アプリケーション４００は、図４では、単純なソフトウェアとして記載しているが、実際には、アプリケーションとなる組込み計算機システムである。すなわち、アプリケーション４００自体が、ソフトウェア及びハードウェアから構成され、それらが外部記憶装置１１０に格納されているハードウェアモジュール及びソフトウェアモジュールを参照していることになる。
【００７１】
モジュール管理ソフトウェア１１７は、さらに、モジュールマッピング処理４１０、意味空間処理４１１、ＸＭＬスキーマ４１２及びモジュール選択処理４１３から構成される。ＸＭＬスキーマ４１２は、一般に、ＸＭＬ文書の構文解析を行うプログラムであり、前述した開始タグ２２０ａ〜２２５ａ，３２０ａ，３２１ａ及び終了タグ２２０ｂ〜２２５ｂ，３２０ｂ，３２１ｂといったＸＭＬタグの解釈、抽出を行う。ＸＭＬスキーマ４１２の一般的な説明は、“Ｄａｖｉｄ  Ｃ．  Ｆａｌｌｓｉｄｅ，Ｐｒｉｓｃｉｌｌａ  Ｗａｌｍｓｌｅｙ，ＸＭＬ  Ｓｃｈｅｍａ  Ｐａｒｔ  ０：  Ｐｒｉｍｅｒ  Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ，Ｗ３Ｃ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ，２８  Ｏｃｔｏｂｅｒ  ２００４”などの文献に記載されている。
【００７２】
ここで、ＸＭＬスキーマ４１２からの出力をそのままモジュールマッピング処理４１０に入力すると、上記したように、正しいマッピングを行うことができない。このため、ＸＭＬスキーマ４１２からの出力に対して意味空間処理４１１を適用する。意味空間処理４１１は、たとえ同じ引数群、リターン値群を有しているモジュールであっても、ソフトウェア空間にあるモジュールやアプリケーションからハードウェア空間にあるモジュールへの参照を行う場合、例えば、（１）レジスタへの引数値設定、（２）ハードウェアモジュールの起動、（３）結果割込み待ち、（４）レジスタからのリターン値取出し、というシーケンスに変換する。このようなシーケンスは、参照元がソフトウェア空間にあるかハードウェア空間にあるか、及び、参照先がソフトウェア空間にあるかハードウェア空間にあるかによって異なるが、これらについては図８で詳細に説明する。
【００７３】
モジュール選択処理４１３は、制約条件ファイル４０１で定義された条件と、合成されたターゲットシステムにおける消費電力、回路面積及び処理実行時間などの仕様値とを比較し、必要に応じて、最適なモジュールを選択しなおす役割を有する。
【００７４】
次に、設計支援システム１００の構成についてさらに詳細に説明する。図５は、本実施の形態における設計支援システムの構成を示すブロック図である。設計支援システム１００は、外部記憶装置１１０及びモジュール管理部１０を備える。モジュール管理部１０は、上記のモジュール管理ソフトウェア１１７をＣＰＵ１１４が実行することにより実現される。
【００７５】
モジュール管理部１０は、アプリケーション取得部１１、モジュール選択部１２、ＸＭＬ解析部１３、意味空間処理部１４、モジュールマッピング処理部１５、仕様値計算部１６、判断部１７、制約条件記憶部１８、優先度入力受付部１９、優先度設定部２０及び表示部２１を備える。
【００７６】
アプリケーション取得部１１は、構築すべきターゲットシステムを表すアプリケーション４００を取得する。なお、アプリケーション取得部１１は、例えばユーザによって作成され、内部メモリ１１５に記憶されている所定のアプリケーション４００を読み出す。なお、アプリケーション取得部１１は、ネットワーク１１１を介して外部機器からアプリケーション４００をダウンロードしてもよく、コンピュータ読み取り可能な記録媒体からアプリケーション４００を読み取ってもよい。
【００７７】
外部記憶装置１１０は、所定の処理を実行するソフトウェアモジュールと、ソフトウェアモジュールと同一の処理を実行するハードウェアモジュールとを記憶する。なお、外部記憶装置１１０は、モジュールのインタフェースに関する記述が共通化されたソフトウェアモジュール及びハードウェアモジュールを記憶する。
【００７８】
モジュール選択部１２は、アプリケーション４００が必要とするモジュールを、外部記憶装置１１０に記憶されている複数のソフトウェアモジュール及び複数のハードウェアモジュールの中から選択する。モジュール選択部１２は、アプリケーション４００の機能に応じて特定されるソフトウェアモジュール及びハードウェアモジュールを選択する。具体的に、モジュール選択部１２は、外部記憶装置１１０内の個々のモジュールの共通化された外部動作仕様に関する記述（インタフェース部１４０，１４１）を検索し、アプリケーション４００の機能に応じて特定される外部動作仕様に合致するソフトウェアモジュール及びハードウェアモジュールを選択する。なお、外部動作仕様が同じであり、内部動作仕様が全く異なるモジュールも存在する。そこで、モジュール選択部１２は、外部動作仕様が合致するとして選択された個々のモジュールの内部動作仕様に関する記述（回路構成記述部２００及びプログラム記述部３００）が、アプリケーション４００の機能に応じて特定される内部動作仕様に合致するモジュールを選択する。これにより、モジュール選択部１２は、アプリケーション４００が必要とするモジュールを選択する。なお、共通化されたインタフェース記述自体がＸＭＬで記載されている場合には、これを検索するに際しても、ＸＭＬ解析部１３が起動される場合がある。
【００７９】
ＸＭＬ解析部１３は、モジュール選択部１２によって選択されたソフトウェアモジュール及びハードウェアモジュールのＸＭＬ文書の構文を解析する。ソフトウェアモジュール及びハードウェアモジュールはＸＭＬで記述されており、ＸＭＬ解析部１３は、ＸＭＬ文書を解析することにより、モジュールに含まれるモジュール本体の機能部、意味空間識別子及び属性情報などを抽出する。
【００８０】
意味空間処理部１４は、ソフトウェアモジュールの意味空間識別子とハードウェアモジュールの意味空間識別子とを取得する。
【００８１】
モジュールマッピング処理部１５は、意味空間処理部１４によって取得された意味空間識別子に基づいてソフトウェアモジュール及びハードウェアモジュールのいずれかをターゲットシステムに合成する。また、モジュールマッピング処理部１５は、意味空間識別子に基づいて、ソフトウェアモジュール及びハードウェアモジュールのいずれかをターゲットシステムに合成する際のマッピング形式を決定し、決定したマッピング形式が複数存在する場合、さらに属性情報に基づいてマッピング形式を決定し、決定したマッピング形式に従ってソフトウェアモジュール及びハードウェアモジュールのいずれかをターゲットシステムに合成する。なお、モジュールの属性を表す属性情報は、モジュールの処理性能、モジュールの消費する消費電力、及びインタフェース属性が公開及び非公開のどちらであるかを表す情報のうちの少なくとも１つを含む。
【００８２】
仕様値計算部１６は、モジュールマッピング処理部１５によってターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも１つに基づいて、ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも１つを仕様値として計算する。
【００８３】
制約条件記憶部１８は、ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも１つを予め記憶する。
【００８４】
判断部１７は、仕様値計算部１６によって計算された仕様値が制約条件記憶部１８に記憶されている制約条件を満たすか否かを判断する。判断部１７は、仕様値が制約条件を満たすと判断した場合、ターゲットシステムを表示部２１へ出力する。一方、判断部１７は、仕様値が制約条件を満たさないと判断した場合、その旨をモジュール選択部１２へ通知する。モジュール選択部１２は、仕様値が制約条件を満たさない旨の通知を受けると、ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールを選択する。例えば、モジュール選択部１２は、ソフトウェアモジュールが選択されていた場合、このソフトウェアモジュールと同一処理を実行するハードウェアモジュールが存在するか否かを判断し、存在する場合、当該ソフトウェアモジュールを入れ替え可能なモジュールとして選択する。そして、モジュール選択部１２は、入れ替え可能なモジュールを他のモジュールと交換する。例えば、モジュール選択部１２は、ソフトウェアモジュールと同一処理を実行するハードウェアモジュールが存在する場合、当該ソフトウェアモジュールを当該ハードウェアモジュールに交換する。
【００８５】
優先度入力受付部１９は、消費電力、回路面積及び処理時間などの各制約条件の優先度のユーザによる入力を受け付ける。すなわち、制約条件が複数存在する場合、各制約条件に優先度を付けることにより、より適切なモジュールを選択することが可能となる。例えば、処理時間と消費電力の２つの制約条件が存在する場合、処理時間の優先度を消費電力の優先度よりも高く設定する。そして、処理時間が０．５秒以内、消費電力が２Ｗ以内という制約条件が存在する場合に、仕様値計算部１６によって計算されたターゲットシステム全体の処理時間が０．４秒であり、消費電力が３Ｗであったとしても、判断部１７は、当該ターゲットシステムは制約条件を満たすとして判断する。つまり、処理時間の優先度が消費電力の優先度よりも高いため、消費電力が制約条件を満たしていなくても、処理時間が制約条件を満たしていれば当該ターゲットシステムは制約条件を満たすとして判断される。
【００８６】
なお、本実施の形態において、制約条件が複数存在する場合、判断部１７は、全ての制約条件を満たしたときにのみ、ターゲットシステムは制約条件を満たすと判断してもよい。
【００８７】
優先度設定部２０は、優先度入力受付部１９によって受け付けられた制約条件の優先度を、制約条件記憶部１８に記憶されている各制約条件に設定する。表示部２１は、判断部１７によって仕様値が制約条件を満たすと判断された場合、ターゲットシステムを表示する。
【００８８】
なお、外部記憶装置１１０がモジュール記憶部の一例に相当し、モジュール選択部１２がモジュール選択部の一例に相当し、ＸＭＬ解析部１３及び意味空間処理部１４が意味空間識別子取得部の一例に相当し、モジュールマッピング処理部１５が合成部の一例に相当し、制約条件記憶部１８が制約条件記憶部の一例に相当し、仕様値計算部１６が計算部の一例に相当し、判断部１７が判断部の一例に相当し、表示部２１が提示部の一例に相当し、優先度入力受付部１９及び優先度設定部２０が優先度設定部の一例に相当する。
【００８９】
図６は、ソフトウェア空間に存在するアプリケーション４００がハードウェアモジュール１２０を利用する場合のマッピング例を示す図である。ハードウェアモジュールをソフトウェアから起動する場合、例えば、上記の第３の文献に説明されているように、レジスタへの引数設定、ハードウェアモジュールの起動、結果割込み待ち（同期）及びレジスタからのリターン値取得というシーケンスにマッピングされる。したがって、アプリケーション４００は、下記の（１）〜（４）に示すターゲットシステム４０２にマッピングされることになる。
（１）処理５００および処理５０１において、第一、第二引数がレジスタに設定される。
（２）処理５０２において、ハードウェアモジュール１２０（回路図２１３）が起動される。
（３）処理５０３において、割込み発生待ち状態に移行する。
（４）割込み発生後、処理５０４において、リターン値がレジスタから取得される。
【００９０】
なお、ハードウェアモジュールやアプリケーションの種類などに応じて、例えば、上記（３）の処理を、レジスタのポーリングなどに変更することは可能である。
【００９１】
一方、ソフトウェア空間にあるモジュールやアプリケーションからソフトウェア空間にあるモジュールへの参照を行う場合、指定された引数とリターン値とを用いる関数呼出しに変換する。図７は、ソフトウェア空間に存在するアプリケーション４００がソフトウェアモジュール１３０を利用する場合のマッピング例を示す図である。ソフトウェアモジュールをソフトウェアから起動する場合、単純に、関数呼出しまたはメッセージ通信にマッピングできる。したがって、アプリケーション４００は、下記の（１）〜（３）に示すターゲットシステム４０３にマッピングされることになる。
（１）処理６００および処理６０１において、第一、第二引数をスタックに格納する。
（２）処理６０２において、サブルーチンコール（プログラム３１３の起動）が実施される。
（３）サブルーチンからのリターン後、処理６０３において、処理結果が取得される。
【００９２】
また、ハードウェア空間にあるモジュールやアプリケーションからソフトウェア空間にあるモジュールへの参照を行う場合、通常、割込みを用いてソフトウェアモジュールを起動することになる。したがって、アプリケーション４００は、下記の（１）〜（３）に示すターゲットシステムにマッピングされることになる。
（１）レジスタにソフトウェアモジュールが必要とする引数が格納される。
（２）割込みを発生させてソフトウェアモジュールが起動される。
（３）ソフトウェアモジュールの処理完了後、リターン値がレジスタなどから取得される。
【００９３】
さらに、ハードウェア空間にあるモジュールやアプリケーション同士で相互に参照を行う場合、通常、ハードウェア上で用意された通信バッファ（待ち行列、フリップフロップ、レジスタなど）を用いて引数値及びリターン値の送受信を実施する。したがって、アプリケーション４００は、下記の（１）及び（２）に示すターゲットシステムにマッピングされることになる。
（１）通信バッファに引数値が格納されて、参照先ハードウェアモジュールが起動される。
（２）参照先ハードウェアモジュールの処理完了後、通信バッファからリターン値が取得される。
【００９４】
本実施の形態に示すように、意味空間識別子及び属性情報に基づいて、ターゲットシステムにマッピングする方法を切り換えることにより、モジュール選択時及びインタフェース設計時はハードウェアモジュール及びソフトウェアモジュールを同一モジュールとして扱い、最終的にターゲットシステムを合成する場合にのみ、ハードウェアモジュール及びソフトウェアモジュールのインタフェース部の実装形態を特定することができる。
【００９５】
前述したように、ハードウェアモジュール及びソフトウェアモジュールのマッピング方法（マッピング形式）にはいくつかの種類が存在する。ここで、モジュールマッピング処理４１０において実施されるマッピングについて説明する。図８は、意味空間処理４１１において決定した意味空間情報にしたがって、モジュールマッピング処理４１０において実施されるマッピング方法の代表例を示す図である。
【００９６】
処理要求元であるアプリケーション４００がソフトウェアであり、その参照しているモジュールがソフトウェアモジュールである場合、一般的に、関数呼出し、または、メッセージ通信が利用される。関数呼出しを用いる場合、モジュールマッピング処理部１５は、図８の手順７００で示す処理にマッピングする。なお、手順７００は、図７を用いて説明したマッピング方法と同一であるので、説明を省略する。メッセージ通信を利用する場合、モジュールマッピング処理部１５は、手順７０１で示す処理にマッピングする。すなわち、（１）メッセージを送信し、（２）メッセージ受信待ち状態に移行し、（３）受信したメッセージから処理結果を取得するというシーケンスにマッピングされる。
【００９７】
アプリケーション４００がソフトウェアであり、その参照しているモジュールがハードウェアモジュールである場合、手順７０２に示す割込み待ち又は手順７０３に示すポーリングが利用される。手順７０２は、図６を用いて説明したマッピング方法と同一であるので、説明を省略する。手順７０３は、割込み待ち状態で処理完了を待つのではなく、レジスタをポーリングして処理完了を待つマッピング方法である。すなわち、短時間で処理が完了するハードウェアモジュールを採用した場合に適した方法である。ポーリングを利用する場合、モジュールマッピング処理部１５は、手順７０３で示す処理にマッピングする。すなわち、（１）引数をレジスタに格納し、（２）制御レジスタにコマンドを格納してハードウェアを起動させ、（３）処理完了まで状態レジスタをポーリングし、（４）レジスタから処理結果を取得するというシーケンスにマッピングされる。
【００９８】
アプリケーション４００がハードウェアであり、その参照しているモジュールがソフトウェアモジュールである場合、手順７０４に示す割込みによってソフトウェアを起動するマッピング方法が適している。前述したように、引数群をレジスタなどの一時格納領域に設定し、割込みを発生させて対象ソフトウェアモジュールを起動させる。その後、当該ソフトウェアモジュールが処理結果をレジスタなどに格納するタイミングで、アプリケーション４００の処理を再開させればよい。
【００９９】
アプリケーション４００がハードウェアであり、その参照しているモジュールもハードウェアモジュールである場合、通常、手順７０５に示すバッファを用いて引数値及びリターン値の送受信を実施するマッピング方法が適している。前述したように、ハードウェアモジュール間に入力バッファ及び出力バッファが用意される。そして、入力バッファに引数値を書き込み、参照先のハードウェアモジュールが起動される。参照先のハードウェアモジュールの処理が完了した後、出力バッファから処理結果（リターン値）を取得する。
【０１００】
図９は、モジュールマッピング処理部１５の処理手順を示すフローチャートである。まず、モジュールマッピング処理部１５は、意味空間処理部１４から意味空間情報を取得する（ステップＳ１）。次に、モジュールマッピング処理部１５は、取得した意味空間情報に対応するマッピング方法にしたがってターゲットシステムを合成する（ステップＳ２）。
【０１０１】
上記のように、意味空間情報にしたがってマッピング方法を変えることで、最終的にターゲットシステムを合成する場合にのみ、インタフェース部の実装形態を特定することができる。しかしながら、図８及び図９に示した例においては、前述した意味空間識別子１４２、１４３の内容だけでは意味空間情報を特定できない。すなわち、ソフトウェアモジュール及びハードウェアモジュールにおける、意味空間識別子１４２、１４３の定義内容に加え、その他の属性情報を判断し、最終的な意味空間情報を特定する必要がある。
【０１０２】
図１０は、意味空間情報を特定する意味空間特定処理について説明するための図である。
【０１０３】
例えば、図８において説明したように、アプリケーション４００がソフトウェアであり、その参照しているモジュールがハードウェアモジュールである場合、割込み待ち状態で処理完了を待つ方法と、レジスタをポーリングして処理完了を待つ方法とがある。このようなマッピング方法は、短時間で処理が完了するハードウェアモジュールを採用したか否かによって判定することができる。例えば、図１０の手順９０２に示すように、意味空間処理部１４は、実行時間が予め定められた値よりも長い場合、割込み待ちという意味空間にあると特定する。逆に、手順９０３に示すように、意味空間処理部１４は、実行時間が予め定められた値以下である場合、ポーリングという意味空間にあると判定する。
【０１０４】
また、ソフトウェアモジュール間で相互参照する場合、一例として、インタフェース属性がプライベート関数（非公開）である場合、関数呼出しという意味空間にあると判定する（手順９００）。また、インタフェース属性がパブリック関数（公開）である場合、メッセージ送受信という意味空間にあると判定する（手順９０１）。このように、ソフトウェアモジュール及びハードウェアモジュールのいずれかを表す意味空間識別子のみで意味空間情報を識別できない場合には、それ以外の属性情報を用いて判定することになる。
【０１０５】
なお、図１０において、ハードウェアモジュールがソフトウェアモジュールを参照する場合、および、ハードウェアモジュール同士で相互参照する場合には、意味空間識別子のみに基づいて意味空間情報を一意に特定することが可能である（手順９０４および手順９０５）。
【０１０６】
図１１は、意味空間処理４１１を示すフローチャートである。まず、意味空間処理部１４は、ＸＭＬ解析部１３からＸＭＬタグの解析結果を取得する（ステップＳ１１）。次に、意味空間処理部１４は、図１０に示したように、ＸＭＬタグの解析結果及びアプリケーションの種類に基づいて、現在の意味空間情報を決定する（ステップＳ１２）。続いて、意味空間処理部１４は、決定した意味空間情報をモジュールマッピング処理部１５に通知する（ステップＳ１３）。これにより、モジュールマッピング処理部１５は、通知された意味空間情報に対応するマッピング方法にしたがってターゲットシステムを合成する。
【０１０７】
上記のような構成を用いることで、意味空間識別子１４２、１４３のみで意味空間情報を特定できない場合や、意味空間識別子１４２、１４３の定義自体が存在しない場合においても、本実施の形態を適用することができる。
【０１０８】
前述した手段を有することで、選択したモジュールがソフトウェアモジュール及びハードウェアモジュールのいずれであっても、設計段階でシステムの他のモジュールを変更することなく、同様にターゲットシステムを合成することができる。しかしながら、複数の同一処理を行うハードウェアモジュール及びソフトウェアモジュールが存在する場合、前述した制約条件ファイル４０１に合致するモジュールを選択して合成する必要がある。そこで、図１２を用いて、上記処理を実行するための設計支援システム１００全体の処理について説明する。
【０１０９】
図１２は、本実施の形態における設計支援システム１００の処理の一例について説明するためのフローチャートである。
【０１１０】
まず、アプリケーション取得部１１は、構築すべきターゲットシステムを表すアプリケーション４００を取得する（ステップＳ２１）。次に、モジュール選択部１２は、アプリケーション４００が必要としているモジュールを、外部記憶装置１１０に記憶されているハードウェアモジュール１２０〜１２２及びソフトウェアモジュール１３０〜１３２の中から選択する（ステップＳ２２）。なお、モジュール選択部１２は、各モジュールのインタフェース部を検索し、アプリケーション４００の外部動作仕様及び内部動作仕様に合致するものを選択することにより、アプリケーション４００に必要なモジュールを選択することができる。
【０１１１】
次に、判断部１７は、制約条件記憶部１８に記載されているターゲットシステムの制約条件（回路面積、消費電力及び処理実行時間）を取得する（ステップＳ２３）。次に、ＸＭＬ解析部１３は、モジュール選択部１２によって選択されたハードウェアモジュール及びソフトウェアモジュールのＸＭＬ構文を解析する（ステップＳ２４）。
【０１１２】
次に、意味空間処理部１４は、ＸＭＬ解析部１３によって抽出された意味空間識別子及び属性情報に基づいて各モジュールの意味空間情報を決定する（ステップＳ２５）。例えば、意味空間処理部１４は、処理要求元がソフトウェアモジュールであり、処理要求先がソフトウェアモジュールであり、属性情報の１つであるインタフェース属性が非公開である場合、意味空間情報は関数呼び出しであると決定する。また、意味空間処理部１４は、処理要求元がソフトウェアモジュールであり、処理要求先がソフトウェアモジュールであり、属性情報の１つであるインタフェース属性が公開である場合、意味空間情報はメッセージ送信であると決定する。さらに、意味空間処理部１４は、処理要求元がソフトウェアモジュールであり、処理要求先がハードウェアモジュールであり、属性情報の１つである実行時間が設定値より大きい場合、意味空間情報は割込待ちであると決定する。さらにまた、意味空間処理部１４は、処理要求元がソフトウェアモジュールであり、処理要求先がハードウェアモジュールであり、属性情報の１つである実行時間が設定値以下である場合、意味空間情報はポーリングであると決定する。
【０１１３】
また、意味空間処理部１４は、処理要求元がハードウェアモジュールであり、処理要求先がソフトウェアモジュールである場合、意味空間情報は割込みであると決定する。また、意味空間処理部１４は、処理要求元がハードウェアモジュールであり、処理要求先がハードウェアモジュールである場合、意味空間情報は通信バッファであると決定する。
【０１１４】
次に、モジュールマッピング処理部１５は、意味空間処理部１４によって決定された意味空間情報に基づいて、選択したモジュール群をターゲットシステムに合成する（ステップＳ２６）。
【０１１５】
このとき、選択した各モジュールは、図２および図３で説明したように、モジュールごとの仕様値（回路面積、消費電力及び処理実行時間）を有している。仕様値計算部１６は、合成したターゲットシステムの内容にしたがって、ターゲットシステム全体での仕様値（回路面積、消費電力及び処理実行時間）を計算する（ステップＳ２７）。例えば、回路面積は、選択した全てのハードウェアモジュールの回路面積の合計値として計算することで得ることができる。また、消費電力は、選択したハードウェアモジュールの単位消費電力と、ソフトウェアモジュール及びハードウェアモジュールの処理実行時間との積分値として計算することで得ることができる。また、処理実行時間は、ターゲットシステムにおける最長処理実行時間を構成する処理経路（クリティカルパス）を計算することで得ることができる。
【０１１６】
次に、判断部１７は、ターゲットシステム全体での仕様値と、取得した制約条件とを比較し、仕様値が制約条件を満たすか否かを判断する（ステップＳ２８）。ここで、制約条件を満たすと判断した場合（ステップＳ２８でＹＥＳ）、当該ターゲットシステムが求める組込み計算機システムとなるので、判断部１７は、ターゲットシステムを表示部２１に表示させる（ステップＳ２９）。なお、このとき、判断部１７は、仕様値が制約条件を満たすと判断したターゲットシステムをメモリに記憶してもよい。
【０１１７】
一方、仕様値が制約条件を満たさないと判断した場合（ステップＳ２８でＮＯ）、モジュール選択部１２は、選択したモジュール群のうち、制約条件で指定された仕様値が最も大きいモジュールを選択する（ステップＳ３０）。次に、モジュール選択部１２は、仕様値が最も大きいモジュールを、外部記憶装置１１０内の他のモジュールで置き換えることができるか否かを判断する（ステップＳ３１）。ここで、代替モジュールが外部記憶装置１１０内に存在しないと判断した場合（ステップＳ３１でＮＯ）、ステップＳ３０の処理へ戻り、モジュール選択部１２は、別のモジュールを選択しなおす。なお、代替モジュールが存在しないと判断されてステップＳ３０の処理へ戻った場合、モジュール選択部１２は、２番目に仕様値が大きいモジュールを選択する。このように、モジュール選択部１２は、ステップＳ３０の処理へ戻る毎に順次仕様値が小さくなるモジュールを選択する。
【０１１８】
一方、代替モジュールが外部記憶装置１１０内に存在すると判断した場合（ステップＳ３１でＹＥＳ）、モジュール選択部１２は、当該モジュールを選択して交換する（ステップＳ３２）。そして、ステップＳ２４の処理に戻り、再度、ＸＭＬ解析部１３は、交換されたモジュールのＸＭＬ構文を解析し、再度選択したモジュール群をターゲットシステムに合成させ、ステップＳ２４以降の処理を実行させる。これを繰り返すことにより、制約条件を満たすターゲットシステムが合成できれば、処理全体を終了させる。
【０１１９】
図１２で示したモジュール選択処理４１３が実行されることで、制約条件ファイル４０１で指定した制約条件を満たすターゲットシステムを自動的に合成することが可能となる。
【０１２０】
図１２の処理を実行することでターゲットシステムの自動的な合成が可能となるが、一方で、最初に構築されたターゲットシステムをユーザに提示することになる。そのため、それが最も回路面積、消費電力及び処理実行時間が小さい、最適なシステムである保証はない。そこで、以下に説明する変形例では、制約条件を満たすターゲットシステムをユーザに提示し、その中から最適なターゲットシステムをユーザが選択できるようにしている。
【０１２１】
図１３は、本実施の形態の変形例における設計支援システムの構成を示すブロック図である。なお、図５に示す設計支援システム１００と同じ構成については、同じ符号を付し、説明を省略する。設計支援システム１００’は、外部記憶装置１１０及びモジュール管理部１０’を備える。モジュール管理部１０’は、アプリケーション取得部１１、モジュール選択部１２’、ＸＭＬ解析部１３、意味空間処理部１４、モジュールマッピング処理部１５、仕様値計算部１６、判断部１７’、制約条件記憶部１８、優先度入力受付部１９、優先度設定部２０、表示部２１’及びターゲットシステム記憶部２２を備える。
【０１２２】
判断部１７’は、仕様値計算部１６によって計算された仕様値が制約条件記憶部１８に記憶されている制約条件を満たすか否かを判断する。そして、判断部１７’は、仕様値が制約条件を満たすと判断した場合、ターゲットシステムをターゲットシステム記憶部２２に記憶する。ターゲットシステム記憶部２２にターゲットシステムを記憶した場合、又は仕様値が制約条件を満たさないと判断した場合、判断部１７’は、その旨をモジュール選択部１２’へ通知する。モジュール選択部１２’は、ターゲットシステムを記憶した又は仕様値が制約条件を満たさない旨の通知を受けると、ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールを選択する。そして、モジュール選択部１２’は、入れ替え可能なモジュールを他のモジュールと交換する。
【０１２３】
ターゲットシステム記憶部２２は、判断部１７’によって仕様値が制約条件を満たすと判断されたターゲットシステムを記憶する。
【０１２４】
また、モジュール選択部１２’は、入れ替え可能なモジュールが存在するか否かを判断し、存在しない場合、ターゲットシステム記憶部２２に記憶されている全てのターゲットシステムを表示するよう表示部２１’に指示する。
【０１２５】
表示部２１’は、ターゲットシステム記憶部２２に記憶されている全てのターゲットシステムを読み出してリスト表示する。
【０１２６】
次に、本実施の形態の変形例における設計支援システム１００’の処理の一例について説明する。図１４は、本実施の形態の変形例における設計支援システムの処理の一例について説明するためのフローチャートである。
【０１２７】
図１４において、ステップＳ４１〜Ｓ４８，Ｓ５１の処理は、図１２に示すステップＳ２１〜Ｓ２８，Ｓ３２の処理と同一であるので説明を省略する。ステップＳ４８において、仕様値が制約条件を満たすと判断した場合（ステップＳ４８でＹＥＳ）、判断部１７’は、制約条件を満たすターゲットシステムをターゲットシステム記憶部２２に記憶する（ステップＳ４９）。次に、モジュール選択部１２’は、ターゲットシステムを構成するハードウェアモジュール及びソフトウェアモジュールのうちの１つと置き換えることができる代替モジュールが外部記憶装置１１０内に存在するか否かを判断する（ステップＳ５０）。
【０１２８】
代替モジュールが外部記憶装置１１０内に存在すると判断した場合（ステップＳ５０でＹＥＳ）、モジュール選択部１２’は、ターゲットシステムを構成するハードウェアモジュール及びソフトウェアモジュールのうちの１のモジュールを当該代替モジュールに交換する（ステップＳ５１）。そして、ステップＳ４４の処理に戻り、再度、ＸＭＬ解析部１３は、交換したモジュールのＸＭＬ構文を解析させ、ステップＳ４４以降の処理を実行させる。このようにして、代替モジュールが存在しなくなるまで合成を繰り返すことで、制約条件を満たすターゲットシステムを全て選出することができる。
【０１２９】
代替モジュールが外部記憶装置１１０内に存在しないと判断した場合（ステップＳ５０でＮＯ）、表示部２１’は、ターゲットシステム記憶部２２に記憶しているターゲットシステムを、最も回路面積、消費電力及び処理実行時間が小さいシステムから順にリスト表示する（ステップＳ５２）。これにより、ユーザは、最適な組込み計算機システムを選択し、構築することができる。
【０１３０】
なお、図１４に示した処理フローでは、制約条件を満たすターゲットシステムを全て選出することになるため、図１２で示した処理フローに比べて、モジュール選択処理４１３の処理実行時間自体が長くかかることになる。ターゲットシステムの合成に非常に時間が掛かる場合には、図１２に示す処理フローを選択することが望ましいことがある。
【０１３１】
また、本実施の形態では、合成したターゲットシステム全体の仕様値と、制約条件とを比較しているが、本発明は特にこれに限定されず、モジュール毎の制約条件を制約条件記憶部に予め記憶しておき、モジュール選択部１２が、ソフトウェアモジュール及びハードウェアモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも１つと、制約条件記憶部に記憶されている制約条件とを比較し、制約条件を満たすモジュールを選択してもよい。この場合も、本実施の形態と同様に、制約条件に優先度を設定してもよい。すなわち、ソフトウェアモジュール及びハードウェアモジュールの両方が制約条件を満たす場合、優先度の高い制約条件をより満たしているモジュールが選択される。
【０１３２】
ここで、本実施の形態における設計支援システム１００によって構築されたターゲットシステムについてさらに説明する。図１５は、本実施の形態における設計支援システムによって構築されたターゲットシステム（組み込みシステム）の構成の一例を示す図である。
【０１３３】
図１５において、組み込みシステム３０は、ＣＰＵ３１、メモリ３２、第１の専用ハードウェア３３、第２の専用ハードウェア３４、内部バス３５及び周辺バス３６を備える。ＣＰＵ３１は、内部バス３５を介してメモリ３２、第１の専用ハードウェア３３及び第２の専用ハードウェア３４と接続されている。また、メモリ３２、第１の専用ハードウェア３３及び第２の専用ハードウェア３４は、周辺バス３６を介して互いに通信可能に接続されている。
【０１３４】
第１の専用ハードウェア３３及び第２の専用ハードウェア３４は、設計支援システム１００によって選択されたハードウェアモジュールである。メモリ３２は、第１のソフトウェア３７及び第２のソフトウェア３８を記憶している。第１のソフトウェア３７及び第２のソフトウェア３８は、設計支援システム１００によって選択されたソフトウェアモジュールである。
【０１３５】
ＣＰＵ３１は、第１のソフトウェア３７及び第２のソフトウェア３８を逐次メモリ３２から読み出して実行する。例えば、処理要求元が第１のソフトウェア３７であり、処理要求先が第２のソフトウェア３８である場合、第１のソフトウェア３７から第２のソフトウェア３８に対して関数呼び出し処理又はメッセージ送信処理が行われる。また、処理要求元が第１のソフトウェア３７であり、処理要求先が第２の専用ハードウェア３４である場合、第１のソフトウェア３７から第２の専用ハードウェア３４に対して割込み待ち処理又はポーリング処理が行われる。さらに、処理要求元が第１の専用ハードウェア３３であり、処理要求先が第１のソフトウェア３７である場合、第１の専用ハードウェア３３から第１のソフトウェア３７に対して割込み通知処理が行われる。さらにまた、処理要求元が第１の専用ハードウェア３３であり、処理要求先が第２の専用ハードウェア３４である場合、第１の専用ハードウェア３３から第２の専用ハードウェア３４に対して通信バッファ処理が行われる。
【産業上の利用可能性】
【０１３６】
本実施の形態における設計支援システムの構成を用いることで、選択したモジュールがソフトウェアモジュール及びハードウェアモジュールのいずれであっても、設計段階でシステムの他のモジュールを変更することなく、組み合わせることができる。本実施の形態では、ソフトウェアモジュール及びハードウェアモジュールを組み合わせる、情報家電機器及び携帯電話機などの組込み計算機分野におけるシステム設計支援を想定しているが、ソフトウェアモジュールのみから構成される情報システム分野に適用しても、関数呼出し、メッセージ通信及びフレームワークなどの各種インタフェースを意味空間にしたがって切り替えることができる。
【図面の簡単な説明】
【０１３７】
【図１】本実施の形態における設計支援システムの全体構成図である。
【図２】ハードウェアモジュールの内部構成を詳細に説明するための図である。
【図３】ソフトウェアモジュールの内部構成を詳細に説明するための図である。
【図４】本実施の形態におけるハードウェアモジュール及びソフトウェアモジュールを実際の組込み計算機システムにマッピングする際の設計支援システムの処理方法を表す概念図である。
【図５】本実施の形態における設計支援システムの構成を示すブロック図である。
【図６】ソフトウェア空間に存在するアプリケーションがハードウェアモジュールを利用する場合のマッピング例を示す図である。
【図７】ソフトウェア空間に存在するアプリケーションがソフトウェアモジュールを利用する場合のマッピング例を示す図である。
【図８】意味空間処理において取得した意味空間情報にしたがって、モジュールマッピング処理において実施されるマッピング方法の代表例を示す図である。
【図９】モジュールマッピング処理の処理手順を示すフローチャートである。
【図１０】意味空間情報を特定する意味空間特定処理について説明するための図である。
【図１１】意味空間処理を示すフローチャートである。
【図１２】本実施の形態における設計支援システムの処理の一例について説明するためのフローチャートである。
【図１３】本実施の形態の変形例における設計支援システムの構成を示すブロック図である。
【図１４】本実施の形態の変形例における設計支援システムの処理の一例について説明するためのフローチャートである。
【図１５】本実施の形態における設計支援システムによって構築されたターゲットシステム（組み込みシステム）の構成の一例を示す図である。
【符号の説明】
【０１３８】
１０    モジュール管理部
１１    アプリケーション取得部
１２    モジュール選択部
１３    ＸＭＬ解析部
１４    意味空間処理部
１５    モジュールマッピング処理部
１６    仕様値計算部
１７    判断部
１８    制約条件記憶部
１９    優先度入力受付部
２０    優先度設定部
２１    表示部
１００    設計支援システム
１１０    外部記憶装置
【図１】
2007305115.tif 000003
【図２】
2007305115.tif 000004
【図３】
2007305115.tif 000005
【図４】
2007305115.tif 000006
【図５】
2007305115.tif 000007
【図６】
2007305115.tif 000008
【図７】
2007305115.tif 000009
【図８】
2007305115.tif 000010
【図９】
2007305115.tif 000011
【図１０】
2007305115.tif 000012
【図１１】
2007305115.tif 000013
【図１２】
2007305115.tif 000014
【図１３】
2007305115.tif 000015
【図１４】
2007305115.tif 000016
【図１５】
2007305115.tif 000017