JP2007305115A - Design support system, design support method, and design support program - Google Patents
Design support system, design support method, and design support program Download PDFInfo
- Publication number
- JP2007305115A JP2007305115A JP2007102043A JP2007102043A JP2007305115A JP 2007305115 A JP2007305115 A JP 2007305115A JP 2007102043 A JP2007102043 A JP 2007102043A JP 2007102043 A JP2007102043 A JP 2007102043A JP 2007305115 A JP2007305115 A JP 2007305115A
- Authority
- JP
- Japan
- Prior art keywords
- module
- target system
- semantic space
- hardware
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
本発明は、少なくとも1つのソフトウェアモジュールと、少なくとも1つのハードウェアモジュールとを組み合わせて構築されるターゲットシステムの設計を支援する設計支援システム、設計支援方法及び設計支援プログラムに関するものである。 The present invention relates to a design support system, a design support method, and a design support program that support the design of a target system constructed by combining at least one software module and at least one hardware module.
ハードウェアモジュールを組み合わせてシステムを構築する統合設計環境に関連する技術として、例えば特許文献1がある。本特許文献1では、電子回路モデルが高級記述言語で記述された記述ファイルを構文解析して制御データ・フロー・グラフを生成する。そして、当該制御データ・フロー・グラフが、複数の連結されたノードの集合よりなるスレッドに分割され、分割されたスレッドが面積制約および時間制約に合致するように最適化され、電子回路モデルに関する論理セル(ハードウェアモジュール)の数、機能、配置および配線の指定情報が得られる。
As a technology related to an integrated design environment in which a system is constructed by combining hardware modules, for example, there is
また、ソフトウェアモジュールを管理するシステムに関連する技術として、例えば特許文献2がある。本特許文献2における情報処理装置は、複数のオブジェクトと、当該オブジェクトを管理するオブジェクト生成手段を有している。そして、各オブジェクトは、属性名と属性値とを対応づけて属性情報を管理する属性情報管理手段と、属性情報の設定および取得の要求を受け付ける共通のインタフェースとを有し、オブジェクト生成手段は、生成したオブジェクトの型に対応した属性情報を該オブジェクトに設定する。
As a technique related to a system for managing software modules, for example, there is
また、ソフトウェアモジュールとハードウェアモジュールとを組み合わせてシステムを構築する技術として、例えば非特許文献1がある。本非特許文献1では、設計対象の記述ファイルを読み込み、その記述をハードウェア化する部分と、ソフトウェア化する部分と、その間のインタフェースとの三つの部分に分類し、当該インタフェースを自動生成している。
近年、複雑化、多様化が加速しつつある情報家電機器や携帯電話などの組込み計算機分野において、回路面積、時間制約、性能及び消費電力などの制約条件を満たしつつ短期間でシステムを構築することが重要である。回路面積、性能及び消費電力など、相反する制約条件を満たすためには、複数のハードウェアモジュール及び複数のソフトウェアモジュールから、制約条件を満足するためのモジュールを選択して組み合わせる技術が必要である。例えば、コストを重視する際には、ソフトウェアモジュールを選択し、性能を重視する際には、ハードウェアモジュールを選択し、選択した各モジュールを組み合わせる必要がある。すなわち、複数のハードウェアモジュール及び複数のソフトウェアモジュールから構成される設計支援システムにおいて、制約条件を満足するモジュールを適切に選択して自由に組み合わせることができるようにしなければならない。 In recent years, in the field of embedded computers such as information home appliances and mobile phones, which are becoming increasingly complex and diversified, a system can be constructed in a short period of time while satisfying constraints such as circuit area, time constraints, performance and power consumption. is important. In order to satisfy conflicting constraints such as circuit area, performance, and power consumption, a technique for selecting and combining modules for satisfying the constraints from a plurality of hardware modules and a plurality of software modules is required. For example, when cost is important, it is necessary to select a software module, and when importance is placed on performance, it is necessary to select a hardware module and combine the selected modules. That is, in a design support system composed of a plurality of hardware modules and a plurality of software modules, it is necessary to appropriately select modules that satisfy the constraint conditions and freely combine them.
上記の特許文献1の構成は、複数のハードウェアモジュールのみを組み合わせてシステムを構築するものであり、ソフトウェアモジュールとの組合せを行うものではない。逆に、上記の特許文献2の構成は、ソフトウェアモジュールのみを組み合わせる技術に関連する。すなわち、特許文献1,2の構成は、いずれも、ハードウェアモジュール同士、ソフトウェアモジュール同士を組み合わせてシステムを構築する技術に関連するが、ソフトウェアモジュールとハードウェアモジュールとの自由な組合せを意図した組込み計算機システムの構築に適用することはできない。特に、ハードウェアモジュールのインタフェース、及びソフトウェアモジュールのインタフェースは、通常、相互に異なっているため、ハードウェアモジュール同士、及びソフトウェアモジュール同士の組合せが実現できても、ソフトウェアモジュールとハードウェアモジュールとの自由な組合せを実現できることには繋がらない。
The configuration of the above-mentioned
上記の非特許文献1の構成は、一つのシステム記述を、ソフトウェアモジュールとハードウェアモジュールとに分割し、それらのインタフェースを割込みおよび同期機構として生成するものであり、前述した組込み計算機分野への適用に最も近い。しかしながら、非特許文献1の構成は、あくまでも、ソフトウェアモジュールとハードウェアモジュールとの組合せを目的としたものであり、前者のソフトウェアモジュールが性能上の制約によりハードウェアモジュールに変更された場合、あるいは、後者のハードウェアモジュールがコスト上の制約によりソフトウェアモジュールに変更された場合、当該インタフェースは意味を成さなくなる。
The configuration of Non-Patent
すなわち、特許文献1,2及び非特許文献1では、ソフトウェアモジュール同士のインタフェース、ハードウェアモジュール同士のインタフェース、あるいは、ソフトウェアモジュールとハードウェアモジュールとの間のインタフェースを固定的に設ける技術が開示されており、これらのインタフェースを制約条件にしたがって変更することは想定していない。例えば、ソフトウェアモジュールをハードウェアモジュールに入れ替えた場合、当該モジュールとのインタフェースの変更、すなわち、システム設計自体を再度実施しなければならなくなる。
That is,
本発明は、上記の課題を解決するためになされたもので、ソフトウェアモジュールとハードウェアモジュールとを区別することなく、これらを組み合わせて最適なターゲットシステムを設計することができる設計支援システム、設計支援方法及び設計支援プログラムを提供することを目的とするものである。 The present invention has been made to solve the above-described problems, and a design support system and a design support capable of designing an optimal target system by combining software modules and hardware modules without distinguishing them from each other. The object is to provide a method and a design support program.
本発明の一局面に係る設計支援システムは、少なくとも1つのソフトウェアモジュールと、少なくとも1つのハードウェアモジュールとを組み合わせて構築されるターゲットシステムの設計を支援する設計支援システムであって、ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとを記憶するモジュール記憶部と、構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを前記モジュール記憶部から選択するモジュール選択部と、前記モジュール選択部によって選択された前記ソフトウェアモジュールの前記意味空間識別子と前記ハードウェアモジュールの前記意味空間識別子とを取得する意味空間識別子取得部と、前記意味空間識別子取得部によって取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成部とを備える。 A design support system according to an aspect of the present invention is a design support system that supports design of a target system constructed by combining at least one software module and at least one hardware module, and is a software module. A module storage unit that stores a software module that includes a semantic space identifier that represents a hardware module, and a hardware module that includes a semantic space identifier that represents a hardware module, and a process of a target system to be constructed is identified and identified A module selection unit for selecting a software module and a hardware module to execute processing from the module storage unit; the semantic space identifier of the software module selected by the module selection unit; and the hardware A semantic space identifier acquisition unit that acquires the semantic space identifier of the air module; and, based on the semantic space identifier acquired by the semantic space identifier acquisition unit, any one of the software module and the hardware module as the target And a synthesizing unit that synthesizes the system.
本発明の他の局面に係る設計支援方法は、少なくとも1つのソフトウェアモジュールと、少なくとも1つのハードウェアモジュールとを組み合わせて構築されるターゲットシステムの設計を支援するための設計支援方法であって、ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとがモジュール記憶部に記憶されており、構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを前記モジュール記憶部から選択するモジュール選択ステップと、前記モジュール選択ステップにおいて選択された前記ソフトウェアモジュールの前記意味空間識別子と前記ハードウェアモジュールの前記意味空間識別子とを取得する意味空間識別子取得ステップと、前記意味空間識別子取得ステップにおいて取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成ステップとを含む。 A design support method according to another aspect of the present invention is a design support method for supporting design of a target system constructed by combining at least one software module and at least one hardware module. A software module including a semantic space identifier representing a module and a hardware module including a semantic space identifier representing a hardware module are stored in the module storage unit, and the processing of the target system to be constructed is performed. A module selection step of selecting from the module storage unit a software module and a hardware module for specifying and executing the specified processing, and the semantic space of the software module selected in the module selection step A semantic space identifier acquisition step for acquiring a bespoke and the semantic space identifier of the hardware module, and any one of the software module and the hardware module based on the semantic space identifier acquired in the semantic space identifier acquisition step Synthesizing the target system with the target system.
本発明の他の局面に係る設計支援プログラムは、少なくとも1つのソフトウェアモジュールと、少なくとも1つのハードウェアモジュールとを組み合わせて構築されるターゲットシステムの設計を支援するための設計支援プログラムであって、構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを、ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとを記憶するモジュール記憶部を参照することにより選択するモジュール選択手段と、前記モジュール選択手段によって選択された前記ソフトウェアモジュールの意味空間識別子と前記ハードウェアモジュールの意味空間識別子とを取得する意味空間識別子取得手段と、前記意味空間識別子取得手段によって取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成手段としてコンピュータを機能させる。 A design support program according to another aspect of the present invention is a design support program for supporting the design of a target system constructed by combining at least one software module and at least one hardware module. A software module and a hardware module that specify the processing of the target system to be executed, and a software module and hardware module that execute the specified processing include a software module that includes a semantic space identifier that represents the software module, and a semantic space that represents the hardware module Module selecting means for selecting by referring to a module storage unit that stores a hardware module including an identifier, the semantic space identifier of the software module selected by the module selecting means, and the Semantic space identifier acquisition means for acquiring a semantic space identifier of a hardware module; and either one of the software module and the hardware module based on the semantic space identifier acquired by the semantic space identifier acquisition means as the target system The computer is caused to function as a synthesis means for synthesizing.
これらの構成によれば、モジュール記憶部には、ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとが記憶されている。そして、構築すべきターゲットシステムの処理が特定され、特定された処理を実行するソフトウェアモジュール及びハードウェアモジュールがモジュール記憶部から選択される。続いて、選択されたソフトウェアモジュールの意味空間識別子とハードウェアモジュールの意味空間識別子とが取得される。その後、取得された意味空間識別子に基づいてソフトウェアモジュール及びハードウェアモジュールのいずれかがターゲットシステムに合成される。 According to these configurations, the module storage unit stores a software module including a semantic space identifier representing a software module and a hardware module including a semantic space identifier representing a hardware module. Yes. Then, a process of the target system to be constructed is specified, and a software module and a hardware module that execute the specified process are selected from the module storage unit. Subsequently, the semantic space identifier of the selected software module and the semantic space identifier of the hardware module are acquired. Thereafter, either the software module or the hardware module is synthesized with the target system based on the acquired semantic space identifier.
したがって、ソフトウェアモジュール及びハードウェアモジュールが含む意味空間識別子に基づいて、ソフトウェアモジュール及びハードウェアモジュールのいずれかがターゲットシステムに合成されるので、ソフトウェアモジュールとハードウェアモジュールとを区別することなく、これらを組み合わせて最適なターゲットシステムを設計することができる。 Therefore, since either the software module or the hardware module is synthesized into the target system based on the semantic space identifier included in the software module and the hardware module, the software module and the hardware module are not distinguished from each other. The optimal target system can be designed in combination.
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールのインタフェースに関する記述が共通化されていることが好ましい。この構成によれば、ソフトウェアモジュール及びハードウェアモジュールのインタフェースに関する記述が共通化されているので、ソフトウェアモジュールであっても、ハードウェアモジュールであっても、統一的に管理することができ、インタフェースの違いを考慮することなく、必要なモジュールを適切に選択することができる。 In the above design support system, it is preferable that descriptions related to the interface of the software module and the hardware module are made common. According to this configuration, since the description about the interface of the software module and the hardware module is shared, it can be managed in a unified manner regardless of whether it is a software module or a hardware module. The necessary modules can be selected appropriately without considering the difference.
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の属性を表す属性情報を含み、前記合成部は、前記意味空間識別子に基づいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する際のマッピング形式を決定し、決定したマッピング形式が複数存在する場合、さらに前記属性情報に基づいてマッピング形式を決定し、決定したマッピング形式に従って前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成することが好ましい。 Further, in the design support system, each of the software module and the hardware module includes attribute information indicating an attribute of the software module, and the synthesis unit is configured to execute the software module and the hardware module based on the semantic space identifier. When a plurality of determined mapping formats exist, a mapping format is further determined based on the attribute information, and the software is determined according to the determined mapping format. It is preferable to synthesize either the module or the hardware module into the target system.
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の属性を表す属性情報が含まれる。そして、意味空間識別子に基づいて、ソフトウェアモジュール及びハードウェアモジュールのいずれかをターゲットシステムに合成する際のマッピング形式が決定される。ここで、決定されたマッピング形式が複数存在する場合、さらに属性情報に基づいてマッピング形式が決定され、決定したマッピング形式に従ってソフトウェアモジュール及びハードウェアモジュールのいずれかがターゲットシステムに合成されるので、適切なマッピング形式に従ってモジュールをターゲットシステムに合成することができる。 According to this configuration, each of the software module and the hardware module includes attribute information representing its own attribute. Then, based on the semantic space identifier, a mapping format for synthesizing either the software module or the hardware module into the target system is determined. Here, when there are a plurality of determined mapping formats, the mapping format is further determined based on the attribute information, and either the software module or the hardware module is synthesized with the target system according to the determined mapping format. Modules can be synthesized into the target system according to various mapping formats.
また、上記の設計支援システムにおいて、前記属性情報は、モジュールの処理性能を表す情報、モジュールの消費する消費電力を表す情報、及びインタフェース属性が公開及び非公開のどちらであるかを表す情報のうちの少なくとも1つを含むことが好ましい。 In the design support system, the attribute information includes information representing module processing performance, information representing power consumption consumed by the module, and information representing whether the interface attribute is public or private. It is preferable that at least one of these is included.
この構成によれば、属性情報には、モジュールの処理性能を表す情報、モジュールの消費する消費電力を表す情報、及びインタフェース属性が公開及び非公開のどちらであるかを表す情報のうちの少なくとも1つが含まれるので、これらの情報に基づいてマッピング形式をさらに詳細に決定することができる。 According to this configuration, the attribute information includes at least one of information representing the processing performance of the module, information representing the power consumption consumed by the module, and information representing whether the interface attribute is public or private. Therefore, the mapping format can be determined in more detail based on these pieces of information.
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第1の処理と、前記第2のモジュールを起動する第2の処理と、割込待ち状態に移行する第3の処理と、前記第2のモジュールの処理完了後、割込みを受理して前記出力値を取得する第4の処理とを実行する割込待ちシーケンスを前記ターゲットシステムにマッピングすることが好ましい。 In the design support system described above, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. The synthesizing unit refers to the first system in which the semantic space identifier indicates a software module, and when the second module in which the semantic space identifier indicates a hardware module is mapped to the target system, A first process for storing the input value in a register, a second process for activating the second module, a third process for shifting to an interrupt wait state, and a process for the second module After completion, an interrupt waiting sequence for executing the fourth process of receiving the interrupt and acquiring the output value Preferably it is mapped to the target system.
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、意味空間識別子がハードウェアモジュールを示す第2のモジュールがターゲットシステムにマッピングされる場合、ターゲットシステム内のレジスタに入力値を格納する第1の処理と、第2のモジュールを起動する第2の処理と、割込待ち状態に移行する第3の処理と、第2のモジュールの処理完了後、割込みを受理して出力値を取得する第4の処理とを実行する割込待ちシーケンスがターゲットシステムにマッピングされる。 According to this configuration, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. When a semantic module identifier is referenced from a first module indicating a software module and a second module whose semantic space identifier indicates a hardware module is mapped to the target system, the input value is stored in a register in the target system. The first process, the second process that starts the second module, the third process that shifts to an interrupt wait state, and after completing the process of the second module, accepts an interrupt and obtains an output value. The interrupt waiting sequence for executing the fourth process is mapped to the target system.
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ソフトウェアモジュールからハードウェアモジュールが参照され、ハードウェアモジュールがターゲットシステムにマッピングされる場合に、割込待ちシーケンスをターゲットシステムにマッピングすることができる。 Therefore, when selecting a module, the software module and the hardware module are handled as the same module, and when the module is synthesized into the target system, the implementation form of the module interface can be specified. Further, when a hardware module is referred to from a software module and the hardware module is mapped to the target system, the interrupt waiting sequence can be mapped to the target system.
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第1の処理と、前記第2のモジュールを起動する第2の処理と、前記第2のモジュールの処理完了まで前記レジスタをポーリングする第3の処理と、前記レジスタから前記出力値を取得する第4の処理とを実行するポーリングシーケンスを前記ターゲットシステムにマッピングすることが好ましい。 In the design support system described above, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. The synthesizing unit refers to the first system in which the semantic space identifier indicates a software module, and when the second module in which the semantic space identifier indicates a hardware module is mapped to the target system, A first process for storing the input value in a register in the second process, a second process for starting the second module, and a third process for polling the register until the process of the second module is completed, Polling for executing a fourth process for obtaining the output value from the register It is preferable to map the Sequence to the target system.
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、意味空間識別子がハードウェアモジュールを示す第2のモジュールがターゲットシステムにマッピングされる場合、ターゲットシステム内のレジスタに入力値を格納する第1の処理と、第2のモジュールを起動する第2の処理と、第2のモジュールの処理完了までレジスタをポーリングする第3の処理と、レジスタから出力値を取得する第4の処理とを実行するポーリングシーケンスがターゲットシステムにマッピングされる。 According to this configuration, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. When a semantic module identifier is referenced from a first module indicating a software module and a second module whose semantic space identifier indicates a hardware module is mapped to the target system, the input value is stored in a register in the target system. A first process, a second process for activating the second module, a third process for polling the register until the completion of the process of the second module, and a fourth process for obtaining an output value from the register. The polling sequence to execute is mapped to the target system.
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ソフトウェアモジュールからハードウェアモジュールが参照され、ハードウェアモジュールがターゲットシステムにマッピングされる場合に、ポーリングシーケンスをターゲットシステムにマッピングすることができる。 Therefore, when selecting a module, the software module and the hardware module are handled as the same module, and when the module is synthesized into the target system, the implementation form of the module interface can be specified. In addition, when a hardware module is referenced from a software module and the hardware module is mapped to the target system, the polling sequence can be mapped to the target system.
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記入力値を引数として前記ターゲットシステム内のスタックに格納する第1の処理と、前記第2のモジュールを呼び出す第2の処理と、前記出力値をリターン値として取得する第3の処理とを実行する関数呼出しシーケンスを前記ターゲットシステムにマッピングすることが好ましい。 In the design support system described above, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. The synthesizing unit refers to the first module in which the semantic space identifier indicates a software module, and when the second module in which the semantic space identifier indicates a software module is mapped to the target system, A function call sequence for executing a first process that is stored as an argument in the stack in the target system, a second process that calls the second module, and a third process that acquires the output value as a return value Is preferably mapped to the target system.
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、意味空間識別子がソフトウェアモジュールを示す第2のモジュールがターゲットシステムにマッピングされる場合、入力値を引数としてターゲットシステム内のスタックに格納する第1の処理と、第2のモジュールを呼び出す第2の処理と、出力値をリターン値として取得する第3の処理とを実行する関数呼出しシーケンスがターゲットシステムにマッピングされる。 According to this configuration, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. When a semantic module identifier is referenced from a first module indicating a software module, and a second module whose semantic space identifier indicates a software module is mapped to the target system, the input value is stored as an argument in a stack in the target system. The function call sequence for executing the first process to be executed, the second process for calling the second module, and the third process for acquiring the output value as a return value is mapped to the target system.
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ソフトウェアモジュールからソフトウェアモジュールが参照され、ソフトウェアモジュールがターゲットシステムにマッピングされる場合に、関数呼出しシーケンスをターゲットシステムにマッピングすることができる。 Therefore, when selecting a module, the software module and the hardware module are handled as the same module, and when the module is synthesized into the target system, the implementation form of the module interface can be specified. Further, when a software module is referenced from the software module and the software module is mapped to the target system, the function call sequence can be mapped to the target system.
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記入力値をメッセージとして送信する第1の処理と、メッセージ受信待ち状態に移行する第2の処理と、受信したメッセージから前記出力値を取得する第3の処理とを実行するメッセージ送信シーケンスを前記ターゲットシステムにマッピングすることが好ましい。 In the design support system described above, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. The synthesizing unit refers to the first module in which the semantic space identifier indicates a software module, and when the second module in which the semantic space identifier indicates a software module is mapped to the target system, A message transmission sequence for executing a first process for transmitting as a message, a second process for shifting to a message reception waiting state, and a third process for acquiring the output value from the received message is mapped to the target system. It is preferable to do.
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、意味空間識別子がソフトウェアモジュールを示す第2のモジュールがターゲットシステムにマッピングされる場合、入力値をメッセージとして送信する第1の処理と、メッセージ受信待ち状態に移行する第2の処理と、受信したメッセージから出力値を取得する第3の処理とを実行するメッセージ送信シーケンスがターゲットシステムにマッピングされる。 According to this configuration, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. A first process in which a semantic space identifier is referenced from a first module indicating a software module, and a second module whose semantic space identifier indicates a software module is mapped to a target system; The message transmission sequence for executing the second process for shifting to the message reception waiting state and the third process for obtaining the output value from the received message is mapped to the target system.
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ソフトウェアモジュールからソフトウェアモジュールが参照され、ソフトウェアモジュールがターゲットシステムにマッピングされる場合に、メッセージ送信シーケンスをターゲットシステムにマッピングすることができる。 Therefore, when selecting a module, the software module and the hardware module are handled as the same module, and when the module is synthesized into the target system, the implementation form of the module interface can be specified. In addition, when the software module is referred to from the software module and the software module is mapped to the target system, the message transmission sequence can be mapped to the target system.
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がハードウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第1の処理と、割込みを発生させて前記第2のモジュールを起動する第2の処理と、前記第2のモジュールの処理完了後、前記レジスタから前記出力値を取得する第3の処理とを実行する割込みシーケンスを前記ターゲットシステムにマッピングすることが好ましい。 In the design support system described above, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. The synthesizing unit refers to the target system when mapping the second module in which the semantic space identifier indicates a software module to which the semantic space identifier is referenced from the first module indicating the hardware module; A first process for storing the input value in a register within the register, a second process for generating an interrupt to activate the second module, and the output from the register after completion of the process of the second module. An interrupt sequence for executing a third process for acquiring a value is set as the target sequence. It is preferable that the mapping to Temu.
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がハードウェアモジュールを示す第1のモジュールから参照される、意味空間識別子がソフトウェアモジュールを示す第2のモジュールがターゲットシステムにマッピングされる場合、ターゲットシステム内のレジスタに入力値を格納する第1の処理と、割込みを発生させて第2のモジュールを起動する第2の処理と、第2のモジュールの処理完了後、レジスタから出力値を取得する第3の処理とを実行する割込みシーケンスがターゲットシステムにマッピングされる。 According to this configuration, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. When a semantic module identifier is referenced from a first module indicating a hardware module and a second module whose semantic space identifier indicates a software module is mapped to the target system, the input value is stored in a register in the target system. An interrupt sequence for executing a first process, a second process for generating an interrupt to activate the second module, and a third process for obtaining an output value from a register after completion of the process of the second module Are mapped to the target system.
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ハードウェアモジュールからソフトウェアモジュールが参照され、ソフトウェアモジュールがターゲットシステムにマッピングされる場合に、割込みシーケンスをターゲットシステムにマッピングすることができる。 Therefore, when selecting a module, the software module and the hardware module are handled as the same module, and when the module is synthesized into the target system, the implementation form of the module interface can be specified. Also, when a software module is referenced from a hardware module and the software module is mapped to the target system, the interrupt sequence can be mapped to the target system.
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールの各々は、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とをさらに含み、前記合成部は、前記意味空間識別子がハードウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のバッファに前記入力値を格納して前記第2のモジュールを起動する第1の処理と、前記第2のモジュールの処理完了後、前記バッファから前記出力値を取得する第2の処理とを実行するバッファリングシーケンスを前記ターゲットシステムにマッピングすることが好ましい。 In the design support system described above, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. The synthesizing unit refers to the target module when the semantic space identifier is referenced from a first module indicating a hardware module, and the second module whose semantic space identifier indicates a hardware module is mapped to the target system. A first process for storing the input value in a buffer in the system and starting the second module; and a second process for obtaining the output value from the buffer after completion of the process of the second module; Mapping a buffering sequence to execute the target to the target system It is preferred.
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールの各々には、自身の機能と、他のモジュールから受理すべき入力値と、他のモジュールに通知すべき出力値とがさらに含まれている。意味空間識別子がハードウェアモジュールを示す第1のモジュールから参照される、意味空間識別子がハードウェアモジュールを示す第2のモジュールがターゲットシステムにマッピングされる場合、ターゲットシステム内のバッファに入力値を格納して第2のモジュールを起動する第1の処理と、第2のモジュールの処理完了後、バッファから出力値を取得する第2の処理とを実行するバッファリングシーケンスがターゲットシステムにマッピングされる。 According to this configuration, each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module. When the semantic module identifier is referenced from the first module indicating the hardware module, and the second module indicating the hardware module is mapped to the target system, the input value is stored in a buffer in the target system. Then, the buffering sequence for executing the first process for starting the second module and the second process for obtaining the output value from the buffer after the completion of the process of the second module is mapped to the target system.
したがって、モジュールを選択する際には、ソフトウェアモジュールとハードウェアモジュールとを同一モジュールとして扱い、モジュールをターゲットシステムに合成する際に、モジュールのインタフェースの実装形態を特定することができる。また、ハードウェアモジュールからハードウェアモジュールが参照され、ハードウェアモジュールがターゲットシステムにマッピングされる場合に、バッファリングシーケンスをターゲットシステムにマッピングすることができる。 Therefore, when selecting a module, the software module and the hardware module are handled as the same module, and when the module is synthesized into the target system, the implementation form of the module interface can be specified. In addition, when a hardware module is referenced from the hardware module and the hardware module is mapped to the target system, the buffering sequence can be mapped to the target system.
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールは、モジュールが消費する消費電力、モジュールの回路面積及びモジュールの処理時間のうちの少なくとも1つを含み、前記ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも1つを予め記憶する制約条件記憶部と、前記合成部によって前記ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも1つに基づいて、前記ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも1つを仕様値として計算する計算部と、前記計算部によって計算された前記仕様値が前記制約条件記憶部に記憶されている前記制約条件を満たすか否かを判断する判断部と、前記判断部によって前記仕様値が前記制約条件を満たすと判断された場合、前記ターゲットシステムをユーザに提示する提示部とをさらに備えることが好ましい。 In the design support system, the software module and the hardware module include at least one of power consumption consumed by the module, a circuit area of the module, and a processing time of the module, and are provided to the target system. As a constraint condition, a constraint condition storage unit that stores in advance at least one of power consumption, circuit area, and processing time, and power consumption, circuit area, and the like included in the module synthesized in the target system by the synthesis unit Based on at least one of the processing times, a calculation unit that calculates at least one of power consumption, circuit area, and processing time of the entire target system as a specification value, and the specification calculated by the calculation unit The constraint whose value is stored in the constraint storage unit A determination section configured to determine whether they meet the matter, if the specification value by the determination unit is determining that the constraint condition is satisfied, it is preferable to further comprising a presentation unit for presenting the target system to the user.
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールには、モジュールが消費する消費電力、モジュールの回路面積及びモジュールの処理時間のうちの少なくとも1つが含まれる。そして、ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも1つが制約条件記憶部に予め記憶されている。ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも1つに基づいて、ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも1つが仕様値として計算される。計算された仕様値が、制約条件記憶部に記憶されている制約条件を満たすか否かが判断され、仕様値が制約条件を満たすと判断された場合、ターゲットシステムがユーザに提示される。 According to this configuration, the software module and the hardware module include at least one of the power consumption consumed by the module, the circuit area of the module, and the processing time of the module. As a constraint condition given to the target system, at least one of power consumption, circuit area, and processing time is stored in advance in the constraint condition storage unit. Based on at least one of power consumption, circuit area, and processing time included in the module synthesized in the target system, at least one of power consumption, circuit area, and processing time of the entire target system is calculated as a specification value. Is done. It is determined whether or not the calculated specification value satisfies the constraint condition stored in the constraint condition storage unit. When it is determined that the specification value satisfies the constraint condition, the target system is presented to the user.
したがって、ターゲットシステムを設計する際の制約条件を満たしつつ、自由にターゲットシステムを設計することができる。また、予め記憶されている制約条件を満たすターゲットシステムを自動的に設計することができる。 Therefore, it is possible to freely design the target system while satisfying the constraints when designing the target system. In addition, a target system that satisfies previously stored constraint conditions can be automatically designed.
また、上記の設計支援システムにおいて、前記モジュール選択部は、前記判断部によって前記仕様値が前記制約条件を満たさないと判断された場合、前記ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールを選択し、選択した前記入れ替え可能なモジュールを他のモジュールと交換し、前記合成部は、交換した前記他のモジュールを前記ターゲットシステムに合成することが好ましい。 In the design support system, the module selection unit may replace a module among the modules synthesized in the target system when the determination unit determines that the specification value does not satisfy the constraint condition. It is preferable that the selected interchangeable module is replaced with another module, and the combining unit combines the replaced other module with the target system.
この構成によれば、仕様値が制約条件を満たさないと判断された場合、ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールが選択され、選択された入れ替え可能なモジュールが他のモジュールと交換され、交換された他のモジュールがターゲットシステムに合成される。 According to this configuration, when it is determined that the specification value does not satisfy the constraint condition, a replaceable module is selected from the modules synthesized in the target system, and the selected replaceable module is replaced with another module. The exchanged other modules are synthesized into the target system.
したがって、仕様値が制約条件を満たさない場合であっても、仕様値が制約条件を満たす他のモジュールが再度選択され、ターゲットシステムに合成されるので、制約条件を満たすターゲットシステムを自動的に設計することができる。 Therefore, even if the specification value does not satisfy the constraint condition, other modules that satisfy the constraint condition are selected again and synthesized into the target system, so the target system that satisfies the constraint condition is automatically designed. can do.
また、上記の設計支援システムにおいて、前記制約条件が複数存在する場合、前記制約条件の優先度を設定する優先度設定部をさらに備えることが好ましい。この構成によれば、制約条件が複数存在する場合、制約条件の優先度が設定されるので、優先度に応じて最適なモジュールをターゲットシステムに合成することができる。 In the above design support system, it is preferable that the design support system further includes a priority setting unit that sets the priority of the constraint condition when there are a plurality of the constraint conditions. According to this configuration, when there are a plurality of constraint conditions, the priority of the constraint conditions is set, so that an optimal module can be synthesized in the target system according to the priority.
また、上記の設計支援システムにおいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールは、モジュールが消費する消費電力、モジュールの回路面積及びモジュールの処理時間のうちの少なくとも1つを含み、前記ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも1つを予め記憶する制約条件記憶部と、前記合成部によって前記ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも1つに基づいて、前記ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも1つを仕様値として計算する計算部と、前記計算部によって計算された前記仕様値が前記制約条件記憶部に記憶されている前記制約条件を満たすか否かを判断する判断部と、前記判断部によって前記仕様値が前記制約条件を満たすと判断された場合、前記ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールがなくなるまで、前記ターゲットシステムを記憶するターゲットシステム記憶部と、前記ターゲットシステム記憶部に記憶されている全ての前記ターゲットシステムをユーザに提示する提示部とを備えることが好ましい。 In the design support system, the software module and the hardware module include at least one of power consumption consumed by the module, a circuit area of the module, and a processing time of the module, and are provided to the target system. As a constraint condition, a constraint condition storage unit that stores in advance at least one of power consumption, circuit area, and processing time, and power consumption, circuit area, and the like included in the module synthesized in the target system by the synthesis unit Based on at least one of the processing times, a calculation unit that calculates at least one of power consumption, circuit area, and processing time of the entire target system as a specification value, and the specification calculated by the calculation unit The constraint whose value is stored in the constraint storage unit A determination unit that determines whether or not the condition is satisfied; and when the determination unit determines that the specification value satisfies the constraint condition, until there is no replaceable module among the modules synthesized in the target system It is preferable to include a target system storage unit that stores the target system, and a presentation unit that presents all the target systems stored in the target system storage unit to the user.
この構成によれば、ソフトウェアモジュール及びハードウェアモジュールには、モジュールが消費する消費電力、モジュールの回路面積及びモジュールの処理時間のうちの少なくとも1つが含まれる。そして、ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも1つが制約条件記憶部に予め記憶されている。ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも1つに基づいて、ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも1つが仕様値として計算される。計算された仕様値が、制約条件記憶部に記憶されている制約条件を満たすか否かが判断され、仕様値が制約条件を満たすと判断された場合、ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールがなくなるまで、ターゲットシステムがターゲットシステム記憶部に記憶される。そして、ターゲットシステム記憶部に記憶されている全てのターゲットシステムがユーザに提示される。 According to this configuration, the software module and the hardware module include at least one of the power consumption consumed by the module, the circuit area of the module, and the processing time of the module. As a constraint condition given to the target system, at least one of power consumption, circuit area, and processing time is stored in advance in the constraint condition storage unit. Based on at least one of power consumption, circuit area, and processing time included in the module synthesized in the target system, at least one of power consumption, circuit area, and processing time of the entire target system is calculated as a specification value. Is done. When it is determined whether the calculated specification value satisfies the constraint condition stored in the constraint condition storage unit, and the specification value is determined to satisfy the constraint condition, among the modules synthesized in the target system, The target system is stored in the target system storage unit until there is no replaceable module. Then, all target systems stored in the target system storage unit are presented to the user.
したがって、仕様値が制約条件を満たす全てのターゲットシステムが提示されるので、ユーザは、最適なターゲットシステムを確認することができる。 Therefore, since all target systems whose specification values satisfy the constraint conditions are presented, the user can confirm the optimum target system.
また、上記の設計支援システムにおいて、前記提示部は、前記制約条件を満たす順番で前記ターゲットシステム記憶部に記憶されている前記ターゲットシステムをユーザに提示することが好ましい。 In the design support system, it is preferable that the presenting unit presents the target system stored in the target system storage unit to the user in an order satisfying the constraint conditions.
この構成によれば、制約条件を満たす順番でターゲットシステム記憶部に記憶されているターゲットシステムがユーザに提示されるので、ユーザは、最適なターゲットシステムを容易に確認することができる。 According to this configuration, since the target systems stored in the target system storage unit are presented to the user in the order satisfying the constraint conditions, the user can easily confirm the optimal target system.
本発明によれば、ソフトウェアモジュール及びハードウェアモジュールが含む意味空間識別子に基づいて、ソフトウェアモジュール及びハードウェアモジュールのいずれかがターゲットシステムに合成されるので、ソフトウェアモジュールとハードウェアモジュールとを区別することなく、これらを組み合わせて最適なターゲットシステムを設計することができる。 According to the present invention, since either the software module or the hardware module is synthesized with the target system based on the semantic space identifier included in the software module and the hardware module, the software module and the hardware module are distinguished from each other. These can be combined to design an optimal target system.
以下添付図面を参照しながら、本発明の実施の形態について説明する。尚、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。 Embodiments of the present invention will be described below with reference to the accompanying drawings. In addition, the following embodiment is an example which actualized this invention, Comprising: It is not the thing of the character which limits the technical scope of this invention.
図1は、本実施の形態における設計支援システムの構成例を示した図である。設計支援システム100は、組込み計算機システム分野におけるハードウェアモジュール、ソフトウェアモジュールを管理する設計支援システム全体を示す。設計支援システム100は、ネットワーク111に接続された外部記憶装置110及びデータベース処理装置112から構成される。外部記憶装置110は、ハードディスク、光ディスクなどを利用した大容量記憶装置である。図中では、データベース処理装置112を一つしか示していないが、大規模データを扱う場合には、複数個のデータベース処理装置112を並列に処理させて高速化させる方法を採用することも可能である。
FIG. 1 is a diagram showing a configuration example of a design support system according to the present embodiment. The
データベース処理装置112は、一般的な情報処理装置であり、CPU(中央演算処理装置)114、内部メモリ115及び外部入出力装置116を備える。CPU114、内部メモリ115及び外部入出力装置116は、それぞれ内部バス113に接続されている。外部入出力装置116は、ネットワーク接続装置であり、ネットワーク111を介して外部記憶装置110の記憶内容を参照する。内部メモリ115には、モジュール管理ソフトウェア117が記憶されている。CPU114は、モジュール管理ソフトウェア117の命令を逐次読み出して実行する。モジュール管理ソフトウェア117は、設計支援システム100全体を管理するソフトウェアであり、外部記憶装置110に格納されているハードウェアモジュール120乃至122、ソフトウェアモジュール130乃至132を管理し、選択し、マッピングする機能を有する。当該モジュール管理ソフトウェア117の処理内容については、図4以降において後述する。
The
ハードウェアモジュール120乃至122、および、ソフトウェアモジュール130乃至132は、それぞれ、各種ハードウェアモジュールの回路図、ソフトウェアモジュールのソースコード又はオブジェクトファイルの内容を含んでいる。ハードウェアモジュール及びソフトウェアモジュールの詳細は図2及び図3を用いて説明する。図1では、ハードウェアモジュール120とソフトウェアモジュール130とは、同一の処理を行うハードウェア回路とソフトウェアモジュールとを表している。この場合、当該ハードウェアモジュールのインタフェース部140と、ソフトウェアモジュールのインタフェース部141とは、全く同一の記述となる。通常、ハードウェアモジュールのインタフェースは、上記の第3の文献に示されるように、割込みやレジスタアクセスで行われ、ソフトウェアモジュールのインタフェースは、上記の第2の文献に示されるように、関数呼出しやメッセージ通信で行われるが、本実施の形態では、これらのインタフェースを共通化させている。これにより、モジュール管理ソフトウェア117は、ソフトウェアモジュールであっても、ハードウェアモジュールであっても、統一的に管理し、必要なモジュールを適切に選択することができる。図1において、ハードウェアモジュールとソフトウェアモジュールとの区別を行う識別子は意味空間識別子142、143である。意味空間識別子142はハードウェア空間のモジュールであることを示し、意味空間識別子143はソフトウェア空間のモジュールであることを示す。
The
図2は、ハードウェアモジュール120の内部構成を詳細に説明するための図である。本実施の形態において、ハードウェアモジュール120はXML(eXtensible Markup Language)などの共通言語で記載されているものとしているが、別のタグ言語を利用してもよい。しかしながら、図4において後述するように、XMLスキーマ及び意味空間処理によって、特定のタグで指定されたデータの意味を変更することになるため、タグに対して処理すべき内容を意味空間定義によって変更することが容易なXMLでの記載が望ましい。
FIG. 2 is a diagram for explaining the internal configuration of the
ハードウェアモジュール120は、意味空間識別子142、インタフェース部140、消費電力情報201、処理速度情報202及び回路構成記述部200で構成される。意味空間識別子142は、開始タグ220aと、終了タグ220bと、開始タグ220a及び終了タグ220bで囲まれた意味空間記号210とで構成される。以下、いずれの項目に関しても同様に、XMLで記載する場合、XML文法に従い、開始タグ、データ及び終了タグの組合せで記述される。インタフェース部140は、一般に、入力インタフェース140a及び出力インタフェース140bから構成される。モジュールによっては、入力インタフェース140a及び出力インタフェース140bのうちのいずれかのみというインタフェースとなることもある。
The
入力インタフェース140aは、さらに、開始タグ221aと、終了タグ221bと、開始タグ221a及び終了タグ221bで囲まれた引数群211とで構成される。同様に、出力インタフェース140bは、開始タグ222aと、終了タグ222bと、開始タグ222a及び終了タグ222bで囲まれたリターン値群212とで構成される。なお、引数群211は複数個の引数で構成され、リターン値群212は複数個のリターン値で構成される場合がある。本実施の形態では、引数が二つ存在し、リターン値が一つしか存在しない条件で記載している。引数群211が複数個の引数から構成される場合、第一引数及び第二引数といった個々の引数をXMLタグによって区別することが可能である。
The
回路構成記述部200は、ハードウェアモジュール120における実際の回路図を記載したものである。回路構成記述部200についても、開始タグ223aと、終了タグ223bと、開始タグ223a及び終了タグ223bで囲まれた回路図213とで構成される。なお、回路図213は、図2においては、理解しやすいように、ブロック図レベルで記載しているが、実際には、RTL(Register Transfer Level)記述、SystemC記述など、ハードウェア記述用言語で直接記載されるか、または、当該記述ファイルへのリンクを記載してもよい。
The circuit
インタフェース部140(140aおよび140b)、意味空間識別子142及び回路構成記述部200によって、ハードウェアモジュール120の外部動作仕様及び内部動作仕様が規定される。データを記述するマークアップ言語を定義するメタ言語としてXMLを利用することにより、当該ハードウェアモジュールを選択する際に参照するための属性情報も追記することができる。消費電力情報201及び処理速度情報202がこの属性情報に相当する。消費電力情報201は、回路図213を実装した場合に消費する電力を表す。消費電力情報201も同様に、開始タグ224aと、終了タグ224bと、開始タグ224a及び終了タグ224bで囲まれた消費電力見積り値214とで構成される。なお、XML記述の利点を生かし、開始タグ224aにおいて、消費電力情報201の“単位”が“ワット”であることが規定されている。
The interface unit 140 (140a and 140b), the
同様に、処理速度情報202は、回路図213を実装した場合の処理速度を表している。処理速度情報202は、開始タグ225aと、終了タグ225bと、開始タグ225a及び終了タグ225bで囲まれた処理実行時間215とで構成される。なお、開始タグ225aにおいて、処理実行時間の単位が“サイクル数”であることが規定されている。消費電力情報201及び処理速度情報202は、実際に、ハードウェアモジュール120をシステムに組み込む際に利用されるものではないが、複数の同一処理を行うハードウェアモジュール、ソフトウェアモジュールが存在し、消費電力制約及び時間制約に基づいてモジュールを選択する際に利用される。なお、図2では、消費電力情報201及び処理速度情報202のみを指定しているが、ハードウェアモジュールの場合、これらに加えて、回路面積情報などを追記できる。
Similarly, the
図3は、ソフトウェアモジュール130の内部構成を詳細に説明するための図である。図3において、ハードウェアモジュール120と共通の符号については、同一の内容を示している。ソフトウェアモジュール130は、ハードウェアモジュール120と同様にXMLで記載されている。
FIG. 3 is a diagram for explaining the internal configuration of the
ソフトウェアモジュール130は、意味空間識別子143、インタフェース部141、ライセンス情報301、処理速度情報302及びプログラム記述部300で構成される。ハードウェアモジュール120と同様に、ソフトウェアモジュール130は、意味空間識別子143を有している。意味空間識別子143は、他のハードウェアモジュール及びソフトウェアモジュールと同一の開始タグ220a及び終了タグ220bを有するが、ソフトウェアモジュールであるため、異なった意味空間記号310を用いている。インタフェース部141は、入力インタフェース141a及び出力インタフェース141bから構成される。
The
入力インタフェース141aは、さらに、開始タグ221aと、終了タグ221bと、開始タグ221a及び終了タグ221bで囲まれた引数群311とで構成される。同様に、出力インタフェース141bは、開始タグ222aと、終了タグ222bと、開始タグ222a、終了タグ222bで囲まれたリターン値群312とで構成される。ソフトウェアモジュール130のインタフェース部141(141aおよび141b)は、ハードウェアモジュールと共通の形式で記述され、同一機能が実装される場合、ソフトウェアモジュール及びハードウェアモジュールのいずれであっても、同じタグ、内容を示すものとする。
The
プログラム記述部300は、ソフトウェアモジュール130における実際のプログラムを記載したものである。プログラム記述部300についても、開始タグ223aと、終了タグ223bと、開始タグ223a及び終了タグ223bで囲まれたプログラムコード313とで構成される。プログラムコード313は、理解が容易なように、ソースコードで記載しているが、実際には、オブジェクトコードで記載したり、ソースコードファイルやオブジェクトファイルへのリンクを記載してもよい。
The
インタフェース部141(141aおよび141b)、意味空間識別子143及びプログラム記述部300によって、ソフトウェアモジュール130の外部動作仕様及び内部動作仕様が規定される。ハードウェアモジュール120と同様、ソフトウェアモジュール130においても、ライセンス情報301及び処理速度情報302といった属性情報を追加している。なお、ソフトウェアモジュール130には、回路面積及び消費電力情報が設けられていない。
The interface unit 141 (141a and 141b), the
ライセンス情報301は、開始タグ320aと、終了タグ320bと、開始タグ320a及び終了タグ320bで囲まれたライセンス情報内容314とで構成される。本実施の形態におけるライセンス情報内容314は、ソフトウェアモジュール130がGPL(GNU Public License)管理下にあることを示している。当該XML記述を利用することで、モジュール管理ソフトウェア117は、ライセンス情報内容314が“GPL”を表す場合にはソースコードを外部公開するという機能を搭載することも可能である。
The
処理速度情報302は、プログラムコード313を実行した場合の処理速度を表している。処理速度情報302は、開始タグ321aと、終了タグ321bと、開始タグ321a及び終了タグ321bで囲まれた処理実行時間315とで構成される。ただし、プログラムの処理実行時間であるため、サイクル精度の実行時間を規定することができず、開始タグ321aにおいて、処理実行時間の単位が“秒”であることを規定している。
The
以上説明したように、ソフトウェアモジュール及びハードウェアモジュールに意味空間情報を設け、かつ、インタフェース部を共通化することにより、実現手段がソフトウェアであっても、ハードウェアであっても、同一モジュールとして扱うことができる。同じインタフェース記述であっても、最終的には意味空間情報を用いて異なったマッピングが行われるが、モジュールを選択して組込み計算機システムを構築する際には、インタフェース仕様のみをベースにしてシステム設計を行えばよい。実際にソフトウェアにマッピングされるか、ハードウェアで実現されるかについては、システム設計段階で気にかける必要性はなくなる。 As described above, the software module and the hardware module are provided with semantic space information, and the interface unit is made common, so that the realization unit is handled as the same module regardless of whether it is software or hardware. be able to. Even with the same interface description, different mapping is performed using semantic space information, but when building a built-in computer system by selecting modules, system design is based only on the interface specifications. Can be done. Whether it is actually mapped to software or hardware is not necessary at the system design stage.
図4は、ハードウェアモジュール120及びソフトウェアモジュール130を実際の組込み計算機システムにマッピングする際の設計支援システム100の処理を表す概念図である。ここで、図1乃至図3と同一の符号は、図1乃至図3と同一の構成及びデータを表している。
FIG. 4 is a conceptual diagram showing processing of the
アプリケーション400は、本実施の形態における設計支援システム100を用いて合成したいターゲットアプリケーションである。これを、制約条件ファイル401で指定された条件にしたがって、ターゲットシステム402または403にマッピングする。なお、アプリケーション400は、図4では、単純なソフトウェアとして記載しているが、実際には、アプリケーションとなる組込み計算機システムである。すなわち、アプリケーション400自体が、ソフトウェア及びハードウェアから構成され、それらが外部記憶装置110に格納されているハードウェアモジュール及びソフトウェアモジュールを参照していることになる。
The
モジュール管理ソフトウェア117は、さらに、モジュールマッピング処理410、意味空間処理411、XMLスキーマ412及びモジュール選択処理413から構成される。XMLスキーマ412は、一般に、XML文書の構文解析を行うプログラムであり、前述した開始タグ220a〜225a,320a,321a及び終了タグ220b〜225b,320b,321bといったXMLタグの解釈、抽出を行う。XMLスキーマ412の一般的な説明は、“David C. Fallside,Priscilla Walmsley,XML Schema Part 0: Primer Second Edition,W3C Recommendation,28 October 2004”などの文献に記載されている。
The
ここで、XMLスキーマ412からの出力をそのままモジュールマッピング処理410に入力すると、上記したように、正しいマッピングを行うことができない。このため、XMLスキーマ412からの出力に対して意味空間処理411を適用する。意味空間処理411は、たとえ同じ引数群、リターン値群を有しているモジュールであっても、ソフトウェア空間にあるモジュールやアプリケーションからハードウェア空間にあるモジュールへの参照を行う場合、例えば、(1)レジスタへの引数値設定、(2)ハードウェアモジュールの起動、(3)結果割込み待ち、(4)レジスタからのリターン値取出し、というシーケンスに変換する。このようなシーケンスは、参照元がソフトウェア空間にあるかハードウェア空間にあるか、及び、参照先がソフトウェア空間にあるかハードウェア空間にあるかによって異なるが、これらについては図8で詳細に説明する。
If the output from the
モジュール選択処理413は、制約条件ファイル401で定義された条件と、合成されたターゲットシステムにおける消費電力、回路面積及び処理実行時間などの仕様値とを比較し、必要に応じて、最適なモジュールを選択しなおす役割を有する。
The module selection processing 413 compares the conditions defined in the
次に、設計支援システム100の構成についてさらに詳細に説明する。図5は、本実施の形態における設計支援システムの構成を示すブロック図である。設計支援システム100は、外部記憶装置110及びモジュール管理部10を備える。モジュール管理部10は、上記のモジュール管理ソフトウェア117をCPU114が実行することにより実現される。
Next, the configuration of the
モジュール管理部10は、アプリケーション取得部11、モジュール選択部12、XML解析部13、意味空間処理部14、モジュールマッピング処理部15、仕様値計算部16、判断部17、制約条件記憶部18、優先度入力受付部19、優先度設定部20及び表示部21を備える。
The
アプリケーション取得部11は、構築すべきターゲットシステムを表すアプリケーション400を取得する。なお、アプリケーション取得部11は、例えばユーザによって作成され、内部メモリ115に記憶されている所定のアプリケーション400を読み出す。なお、アプリケーション取得部11は、ネットワーク111を介して外部機器からアプリケーション400をダウンロードしてもよく、コンピュータ読み取り可能な記録媒体からアプリケーション400を読み取ってもよい。
The
外部記憶装置110は、所定の処理を実行するソフトウェアモジュールと、ソフトウェアモジュールと同一の処理を実行するハードウェアモジュールとを記憶する。なお、外部記憶装置110は、モジュールのインタフェースに関する記述が共通化されたソフトウェアモジュール及びハードウェアモジュールを記憶する。
The
モジュール選択部12は、アプリケーション400が必要とするモジュールを、外部記憶装置110に記憶されている複数のソフトウェアモジュール及び複数のハードウェアモジュールの中から選択する。モジュール選択部12は、アプリケーション400の機能に応じて特定されるソフトウェアモジュール及びハードウェアモジュールを選択する。具体的に、モジュール選択部12は、外部記憶装置110内の個々のモジュールの共通化された外部動作仕様に関する記述(インタフェース部140,141)を検索し、アプリケーション400の機能に応じて特定される外部動作仕様に合致するソフトウェアモジュール及びハードウェアモジュールを選択する。なお、外部動作仕様が同じであり、内部動作仕様が全く異なるモジュールも存在する。そこで、モジュール選択部12は、外部動作仕様が合致するとして選択された個々のモジュールの内部動作仕様に関する記述(回路構成記述部200及びプログラム記述部300)が、アプリケーション400の機能に応じて特定される内部動作仕様に合致するモジュールを選択する。これにより、モジュール選択部12は、アプリケーション400が必要とするモジュールを選択する。なお、共通化されたインタフェース記述自体がXMLで記載されている場合には、これを検索するに際しても、XML解析部13が起動される場合がある。
The
XML解析部13は、モジュール選択部12によって選択されたソフトウェアモジュール及びハードウェアモジュールのXML文書の構文を解析する。ソフトウェアモジュール及びハードウェアモジュールはXMLで記述されており、XML解析部13は、XML文書を解析することにより、モジュールに含まれるモジュール本体の機能部、意味空間識別子及び属性情報などを抽出する。
The
意味空間処理部14は、ソフトウェアモジュールの意味空間識別子とハードウェアモジュールの意味空間識別子とを取得する。
The semantic
モジュールマッピング処理部15は、意味空間処理部14によって取得された意味空間識別子に基づいてソフトウェアモジュール及びハードウェアモジュールのいずれかをターゲットシステムに合成する。また、モジュールマッピング処理部15は、意味空間識別子に基づいて、ソフトウェアモジュール及びハードウェアモジュールのいずれかをターゲットシステムに合成する際のマッピング形式を決定し、決定したマッピング形式が複数存在する場合、さらに属性情報に基づいてマッピング形式を決定し、決定したマッピング形式に従ってソフトウェアモジュール及びハードウェアモジュールのいずれかをターゲットシステムに合成する。なお、モジュールの属性を表す属性情報は、モジュールの処理性能、モジュールの消費する消費電力、及びインタフェース属性が公開及び非公開のどちらであるかを表す情報のうちの少なくとも1つを含む。
The module
仕様値計算部16は、モジュールマッピング処理部15によってターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも1つに基づいて、ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも1つを仕様値として計算する。
Based on at least one of the power consumption, the circuit area, and the processing time included in the module synthesized in the target system by the module
制約条件記憶部18は、ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも1つを予め記憶する。
The constraint
判断部17は、仕様値計算部16によって計算された仕様値が制約条件記憶部18に記憶されている制約条件を満たすか否かを判断する。判断部17は、仕様値が制約条件を満たすと判断した場合、ターゲットシステムを表示部21へ出力する。一方、判断部17は、仕様値が制約条件を満たさないと判断した場合、その旨をモジュール選択部12へ通知する。モジュール選択部12は、仕様値が制約条件を満たさない旨の通知を受けると、ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールを選択する。例えば、モジュール選択部12は、ソフトウェアモジュールが選択されていた場合、このソフトウェアモジュールと同一処理を実行するハードウェアモジュールが存在するか否かを判断し、存在する場合、当該ソフトウェアモジュールを入れ替え可能なモジュールとして選択する。そして、モジュール選択部12は、入れ替え可能なモジュールを他のモジュールと交換する。例えば、モジュール選択部12は、ソフトウェアモジュールと同一処理を実行するハードウェアモジュールが存在する場合、当該ソフトウェアモジュールを当該ハードウェアモジュールに交換する。
The
優先度入力受付部19は、消費電力、回路面積及び処理時間などの各制約条件の優先度のユーザによる入力を受け付ける。すなわち、制約条件が複数存在する場合、各制約条件に優先度を付けることにより、より適切なモジュールを選択することが可能となる。例えば、処理時間と消費電力の2つの制約条件が存在する場合、処理時間の優先度を消費電力の優先度よりも高く設定する。そして、処理時間が0.5秒以内、消費電力が2W以内という制約条件が存在する場合に、仕様値計算部16によって計算されたターゲットシステム全体の処理時間が0.4秒であり、消費電力が3Wであったとしても、判断部17は、当該ターゲットシステムは制約条件を満たすとして判断する。つまり、処理時間の優先度が消費電力の優先度よりも高いため、消費電力が制約条件を満たしていなくても、処理時間が制約条件を満たしていれば当該ターゲットシステムは制約条件を満たすとして判断される。
The priority
なお、本実施の形態において、制約条件が複数存在する場合、判断部17は、全ての制約条件を満たしたときにのみ、ターゲットシステムは制約条件を満たすと判断してもよい。
In the present embodiment, when there are a plurality of constraint conditions, the
優先度設定部20は、優先度入力受付部19によって受け付けられた制約条件の優先度を、制約条件記憶部18に記憶されている各制約条件に設定する。表示部21は、判断部17によって仕様値が制約条件を満たすと判断された場合、ターゲットシステムを表示する。
The
なお、外部記憶装置110がモジュール記憶部の一例に相当し、モジュール選択部12がモジュール選択部の一例に相当し、XML解析部13及び意味空間処理部14が意味空間識別子取得部の一例に相当し、モジュールマッピング処理部15が合成部の一例に相当し、制約条件記憶部18が制約条件記憶部の一例に相当し、仕様値計算部16が計算部の一例に相当し、判断部17が判断部の一例に相当し、表示部21が提示部の一例に相当し、優先度入力受付部19及び優先度設定部20が優先度設定部の一例に相当する。
The
図6は、ソフトウェア空間に存在するアプリケーション400がハードウェアモジュール120を利用する場合のマッピング例を示す図である。ハードウェアモジュールをソフトウェアから起動する場合、例えば、上記の第3の文献に説明されているように、レジスタへの引数設定、ハードウェアモジュールの起動、結果割込み待ち(同期)及びレジスタからのリターン値取得というシーケンスにマッピングされる。したがって、アプリケーション400は、下記の(1)〜(4)に示すターゲットシステム402にマッピングされることになる。
(1)処理500および処理501において、第一、第二引数がレジスタに設定される。
(2)処理502において、ハードウェアモジュール120(回路図213)が起動される。
(3)処理503において、割込み発生待ち状態に移行する。
(4)割込み発生後、処理504において、リターン値がレジスタから取得される。
FIG. 6 is a diagram illustrating an example of mapping when the
(1) In
(2) In
(3) In
(4) After an interrupt occurs, in
なお、ハードウェアモジュールやアプリケーションの種類などに応じて、例えば、上記(3)の処理を、レジスタのポーリングなどに変更することは可能である。 Note that, for example, the process (3) can be changed to register polling according to the type of hardware module or application.
一方、ソフトウェア空間にあるモジュールやアプリケーションからソフトウェア空間にあるモジュールへの参照を行う場合、指定された引数とリターン値とを用いる関数呼出しに変換する。図7は、ソフトウェア空間に存在するアプリケーション400がソフトウェアモジュール130を利用する場合のマッピング例を示す図である。ソフトウェアモジュールをソフトウェアから起動する場合、単純に、関数呼出しまたはメッセージ通信にマッピングできる。したがって、アプリケーション400は、下記の(1)〜(3)に示すターゲットシステム403にマッピングされることになる。
(1)処理600および処理601において、第一、第二引数をスタックに格納する。
(2)処理602において、サブルーチンコール(プログラム313の起動)が実施される。
(3)サブルーチンからのリターン後、処理603において、処理結果が取得される。
On the other hand, when referring to a module in the software space from a module or application in the software space, it is converted into a function call using a specified argument and return value. FIG. 7 is a diagram illustrating an example of mapping when the
(1) In
(2) In
(3) After the return from the subroutine, the processing result is acquired in
また、ハードウェア空間にあるモジュールやアプリケーションからソフトウェア空間にあるモジュールへの参照を行う場合、通常、割込みを用いてソフトウェアモジュールを起動することになる。したがって、アプリケーション400は、下記の(1)〜(3)に示すターゲットシステムにマッピングされることになる。
(1)レジスタにソフトウェアモジュールが必要とする引数が格納される。
(2)割込みを発生させてソフトウェアモジュールが起動される。
(3)ソフトウェアモジュールの処理完了後、リターン値がレジスタなどから取得される。
In addition, when a module in the hardware space or an application refers to a module in the software space, the software module is usually activated using an interrupt. Therefore, the
(1) An argument required by the software module is stored in the register.
(2) The software module is activated by generating an interrupt.
(3) After the processing of the software module is completed, a return value is acquired from a register or the like.
さらに、ハードウェア空間にあるモジュールやアプリケーション同士で相互に参照を行う場合、通常、ハードウェア上で用意された通信バッファ(待ち行列、フリップフロップ、レジスタなど)を用いて引数値及びリターン値の送受信を実施する。したがって、アプリケーション400は、下記の(1)及び(2)に示すターゲットシステムにマッピングされることになる。
(1)通信バッファに引数値が格納されて、参照先ハードウェアモジュールが起動される。
(2)参照先ハードウェアモジュールの処理完了後、通信バッファからリターン値が取得される。
In addition, when referring to each other between modules and applications in the hardware space, the argument values and return values are usually sent and received using communication buffers (queues, flip-flops, registers, etc.) prepared on the hardware. To implement. Therefore, the
(1) The argument value is stored in the communication buffer, and the reference hardware module is activated.
(2) After completion of processing of the reference hardware module, a return value is acquired from the communication buffer.
本実施の形態に示すように、意味空間識別子及び属性情報に基づいて、ターゲットシステムにマッピングする方法を切り換えることにより、モジュール選択時及びインタフェース設計時はハードウェアモジュール及びソフトウェアモジュールを同一モジュールとして扱い、最終的にターゲットシステムを合成する場合にのみ、ハードウェアモジュール及びソフトウェアモジュールのインタフェース部の実装形態を特定することができる。 As shown in this embodiment, by switching the method of mapping to the target system based on the semantic space identifier and attribute information, the hardware module and the software module are treated as the same module at the time of module selection and interface design, Only when finally synthesizing the target system, the implementation form of the interface part of the hardware module and the software module can be specified.
前述したように、ハードウェアモジュール及びソフトウェアモジュールのマッピング方法(マッピング形式)にはいくつかの種類が存在する。ここで、モジュールマッピング処理410において実施されるマッピングについて説明する。図8は、意味空間処理411において決定した意味空間情報にしたがって、モジュールマッピング処理410において実施されるマッピング方法の代表例を示す図である。
As described above, there are several types of hardware module and software module mapping methods (mapping formats). Here, the mapping performed in the
処理要求元であるアプリケーション400がソフトウェアであり、その参照しているモジュールがソフトウェアモジュールである場合、一般的に、関数呼出し、または、メッセージ通信が利用される。関数呼出しを用いる場合、モジュールマッピング処理部15は、図8の手順700で示す処理にマッピングする。なお、手順700は、図7を用いて説明したマッピング方法と同一であるので、説明を省略する。メッセージ通信を利用する場合、モジュールマッピング処理部15は、手順701で示す処理にマッピングする。すなわち、(1)メッセージを送信し、(2)メッセージ受信待ち状態に移行し、(3)受信したメッセージから処理結果を取得するというシーケンスにマッピングされる。
When the
アプリケーション400がソフトウェアであり、その参照しているモジュールがハードウェアモジュールである場合、手順702に示す割込み待ち又は手順703に示すポーリングが利用される。手順702は、図6を用いて説明したマッピング方法と同一であるので、説明を省略する。手順703は、割込み待ち状態で処理完了を待つのではなく、レジスタをポーリングして処理完了を待つマッピング方法である。すなわち、短時間で処理が完了するハードウェアモジュールを採用した場合に適した方法である。ポーリングを利用する場合、モジュールマッピング処理部15は、手順703で示す処理にマッピングする。すなわち、(1)引数をレジスタに格納し、(2)制御レジスタにコマンドを格納してハードウェアを起動させ、(3)処理完了まで状態レジスタをポーリングし、(4)レジスタから処理結果を取得するというシーケンスにマッピングされる。
When the
アプリケーション400がハードウェアであり、その参照しているモジュールがソフトウェアモジュールである場合、手順704に示す割込みによってソフトウェアを起動するマッピング方法が適している。前述したように、引数群をレジスタなどの一時格納領域に設定し、割込みを発生させて対象ソフトウェアモジュールを起動させる。その後、当該ソフトウェアモジュールが処理結果をレジスタなどに格納するタイミングで、アプリケーション400の処理を再開させればよい。
When the
アプリケーション400がハードウェアであり、その参照しているモジュールもハードウェアモジュールである場合、通常、手順705に示すバッファを用いて引数値及びリターン値の送受信を実施するマッピング方法が適している。前述したように、ハードウェアモジュール間に入力バッファ及び出力バッファが用意される。そして、入力バッファに引数値を書き込み、参照先のハードウェアモジュールが起動される。参照先のハードウェアモジュールの処理が完了した後、出力バッファから処理結果(リターン値)を取得する。
When the
図9は、モジュールマッピング処理部15の処理手順を示すフローチャートである。まず、モジュールマッピング処理部15は、意味空間処理部14から意味空間情報を取得する(ステップS1)。次に、モジュールマッピング処理部15は、取得した意味空間情報に対応するマッピング方法にしたがってターゲットシステムを合成する(ステップS2)。
FIG. 9 is a flowchart illustrating a processing procedure of the module
上記のように、意味空間情報にしたがってマッピング方法を変えることで、最終的にターゲットシステムを合成する場合にのみ、インタフェース部の実装形態を特定することができる。しかしながら、図8及び図9に示した例においては、前述した意味空間識別子142、143の内容だけでは意味空間情報を特定できない。すなわち、ソフトウェアモジュール及びハードウェアモジュールにおける、意味空間識別子142、143の定義内容に加え、その他の属性情報を判断し、最終的な意味空間情報を特定する必要がある。
As described above, by changing the mapping method according to the semantic space information, the implementation form of the interface unit can be specified only when the target system is finally synthesized. However, in the example shown in FIGS. 8 and 9, the semantic space information cannot be specified only by the contents of the
図10は、意味空間情報を特定する意味空間特定処理について説明するための図である。 FIG. 10 is a diagram for explaining semantic space specifying processing for specifying semantic space information.
例えば、図8において説明したように、アプリケーション400がソフトウェアであり、その参照しているモジュールがハードウェアモジュールである場合、割込み待ち状態で処理完了を待つ方法と、レジスタをポーリングして処理完了を待つ方法とがある。このようなマッピング方法は、短時間で処理が完了するハードウェアモジュールを採用したか否かによって判定することができる。例えば、図10の手順902に示すように、意味空間処理部14は、実行時間が予め定められた値よりも長い場合、割込み待ちという意味空間にあると特定する。逆に、手順903に示すように、意味空間処理部14は、実行時間が予め定められた値以下である場合、ポーリングという意味空間にあると判定する。
For example, as described in FIG. 8, when the
また、ソフトウェアモジュール間で相互参照する場合、一例として、インタフェース属性がプライベート関数(非公開)である場合、関数呼出しという意味空間にあると判定する(手順900)。また、インタフェース属性がパブリック関数(公開)である場合、メッセージ送受信という意味空間にあると判定する(手順901)。このように、ソフトウェアモジュール及びハードウェアモジュールのいずれかを表す意味空間識別子のみで意味空間情報を識別できない場合には、それ以外の属性情報を用いて判定することになる。 When cross-referencing between software modules, as an example, if the interface attribute is a private function (private), it is determined that it is in a semantic space called function call (procedure 900). If the interface attribute is a public function (public), it is determined that it is in a semantic space for message transmission / reception (procedure 901). As described above, when the semantic space information cannot be identified only by the semantic space identifier representing either the software module or the hardware module, the determination is made using the other attribute information.
なお、図10において、ハードウェアモジュールがソフトウェアモジュールを参照する場合、および、ハードウェアモジュール同士で相互参照する場合には、意味空間識別子のみに基づいて意味空間情報を一意に特定することが可能である(手順904および手順905)。
In FIG. 10, when the hardware module refers to the software module and when the hardware modules refer to each other, it is possible to uniquely identify the semantic space information based only on the semantic space identifier. Yes (
図11は、意味空間処理411を示すフローチャートである。まず、意味空間処理部14は、XML解析部13からXMLタグの解析結果を取得する(ステップS11)。次に、意味空間処理部14は、図10に示したように、XMLタグの解析結果及びアプリケーションの種類に基づいて、現在の意味空間情報を決定する(ステップS12)。続いて、意味空間処理部14は、決定した意味空間情報をモジュールマッピング処理部15に通知する(ステップS13)。これにより、モジュールマッピング処理部15は、通知された意味空間情報に対応するマッピング方法にしたがってターゲットシステムを合成する。
FIG. 11 is a flowchart showing the semantic space processing 411. First, the semantic
上記のような構成を用いることで、意味空間識別子142、143のみで意味空間情報を特定できない場合や、意味空間識別子142、143の定義自体が存在しない場合においても、本実施の形態を適用することができる。
By using the configuration as described above, the present embodiment is applied even when the semantic space information cannot be specified only by the
前述した手段を有することで、選択したモジュールがソフトウェアモジュール及びハードウェアモジュールのいずれであっても、設計段階でシステムの他のモジュールを変更することなく、同様にターゲットシステムを合成することができる。しかしながら、複数の同一処理を行うハードウェアモジュール及びソフトウェアモジュールが存在する場合、前述した制約条件ファイル401に合致するモジュールを選択して合成する必要がある。そこで、図12を用いて、上記処理を実行するための設計支援システム100全体の処理について説明する。
By having the above-described means, it is possible to synthesize the target system in the same way without changing other modules in the design stage, regardless of whether the selected module is a software module or a hardware module. However, when there are a plurality of hardware modules and software modules that perform the same processing, it is necessary to select and synthesize a module that matches the
図12は、本実施の形態における設計支援システム100の処理の一例について説明するためのフローチャートである。
FIG. 12 is a flowchart for explaining an example of processing of the
まず、アプリケーション取得部11は、構築すべきターゲットシステムを表すアプリケーション400を取得する(ステップS21)。次に、モジュール選択部12は、アプリケーション400が必要としているモジュールを、外部記憶装置110に記憶されているハードウェアモジュール120〜122及びソフトウェアモジュール130〜132の中から選択する(ステップS22)。なお、モジュール選択部12は、各モジュールのインタフェース部を検索し、アプリケーション400の外部動作仕様及び内部動作仕様に合致するものを選択することにより、アプリケーション400に必要なモジュールを選択することができる。
First, the
次に、判断部17は、制約条件記憶部18に記載されているターゲットシステムの制約条件(回路面積、消費電力及び処理実行時間)を取得する(ステップS23)。次に、XML解析部13は、モジュール選択部12によって選択されたハードウェアモジュール及びソフトウェアモジュールのXML構文を解析する(ステップS24)。
Next, the
次に、意味空間処理部14は、XML解析部13によって抽出された意味空間識別子及び属性情報に基づいて各モジュールの意味空間情報を決定する(ステップS25)。例えば、意味空間処理部14は、処理要求元がソフトウェアモジュールであり、処理要求先がソフトウェアモジュールであり、属性情報の1つであるインタフェース属性が非公開である場合、意味空間情報は関数呼び出しであると決定する。また、意味空間処理部14は、処理要求元がソフトウェアモジュールであり、処理要求先がソフトウェアモジュールであり、属性情報の1つであるインタフェース属性が公開である場合、意味空間情報はメッセージ送信であると決定する。さらに、意味空間処理部14は、処理要求元がソフトウェアモジュールであり、処理要求先がハードウェアモジュールであり、属性情報の1つである実行時間が設定値より大きい場合、意味空間情報は割込待ちであると決定する。さらにまた、意味空間処理部14は、処理要求元がソフトウェアモジュールであり、処理要求先がハードウェアモジュールであり、属性情報の1つである実行時間が設定値以下である場合、意味空間情報はポーリングであると決定する。
Next, the semantic
また、意味空間処理部14は、処理要求元がハードウェアモジュールであり、処理要求先がソフトウェアモジュールである場合、意味空間情報は割込みであると決定する。また、意味空間処理部14は、処理要求元がハードウェアモジュールであり、処理要求先がハードウェアモジュールである場合、意味空間情報は通信バッファであると決定する。
The semantic
次に、モジュールマッピング処理部15は、意味空間処理部14によって決定された意味空間情報に基づいて、選択したモジュール群をターゲットシステムに合成する(ステップS26)。
Next, the
このとき、選択した各モジュールは、図2および図3で説明したように、モジュールごとの仕様値(回路面積、消費電力及び処理実行時間)を有している。仕様値計算部16は、合成したターゲットシステムの内容にしたがって、ターゲットシステム全体での仕様値(回路面積、消費電力及び処理実行時間)を計算する(ステップS27)。例えば、回路面積は、選択した全てのハードウェアモジュールの回路面積の合計値として計算することで得ることができる。また、消費電力は、選択したハードウェアモジュールの単位消費電力と、ソフトウェアモジュール及びハードウェアモジュールの処理実行時間との積分値として計算することで得ることができる。また、処理実行時間は、ターゲットシステムにおける最長処理実行時間を構成する処理経路(クリティカルパス)を計算することで得ることができる。
At this time, each selected module has a specification value (circuit area, power consumption, and processing execution time) for each module as described with reference to FIGS. The specification
次に、判断部17は、ターゲットシステム全体での仕様値と、取得した制約条件とを比較し、仕様値が制約条件を満たすか否かを判断する(ステップS28)。ここで、制約条件を満たすと判断した場合(ステップS28でYES)、当該ターゲットシステムが求める組込み計算機システムとなるので、判断部17は、ターゲットシステムを表示部21に表示させる(ステップS29)。なお、このとき、判断部17は、仕様値が制約条件を満たすと判断したターゲットシステムをメモリに記憶してもよい。
Next, the
一方、仕様値が制約条件を満たさないと判断した場合(ステップS28でNO)、モジュール選択部12は、選択したモジュール群のうち、制約条件で指定された仕様値が最も大きいモジュールを選択する(ステップS30)。次に、モジュール選択部12は、仕様値が最も大きいモジュールを、外部記憶装置110内の他のモジュールで置き換えることができるか否かを判断する(ステップS31)。ここで、代替モジュールが外部記憶装置110内に存在しないと判断した場合(ステップS31でNO)、ステップS30の処理へ戻り、モジュール選択部12は、別のモジュールを選択しなおす。なお、代替モジュールが存在しないと判断されてステップS30の処理へ戻った場合、モジュール選択部12は、2番目に仕様値が大きいモジュールを選択する。このように、モジュール選択部12は、ステップS30の処理へ戻る毎に順次仕様値が小さくなるモジュールを選択する。
On the other hand, when it is determined that the specification value does not satisfy the constraint condition (NO in step S28), the
一方、代替モジュールが外部記憶装置110内に存在すると判断した場合(ステップS31でYES)、モジュール選択部12は、当該モジュールを選択して交換する(ステップS32)。そして、ステップS24の処理に戻り、再度、XML解析部13は、交換されたモジュールのXML構文を解析し、再度選択したモジュール群をターゲットシステムに合成させ、ステップS24以降の処理を実行させる。これを繰り返すことにより、制約条件を満たすターゲットシステムが合成できれば、処理全体を終了させる。
On the other hand, when it is determined that an alternative module exists in the external storage device 110 (YES in step S31), the
図12で示したモジュール選択処理413が実行されることで、制約条件ファイル401で指定した制約条件を満たすターゲットシステムを自動的に合成することが可能となる。
By executing the module selection process 413 shown in FIG. 12, it is possible to automatically synthesize a target system that satisfies the constraint conditions specified in the
図12の処理を実行することでターゲットシステムの自動的な合成が可能となるが、一方で、最初に構築されたターゲットシステムをユーザに提示することになる。そのため、それが最も回路面積、消費電力及び処理実行時間が小さい、最適なシステムである保証はない。そこで、以下に説明する変形例では、制約条件を満たすターゲットシステムをユーザに提示し、その中から最適なターゲットシステムをユーザが選択できるようにしている。 The target system can be automatically synthesized by executing the processing of FIG. 12, while the target system first constructed is presented to the user. Therefore, there is no guarantee that it is the optimum system with the smallest circuit area, power consumption and processing execution time. Therefore, in the modification described below, a target system that satisfies the constraint conditions is presented to the user, and the user can select an optimal target system from the target system.
図13は、本実施の形態の変形例における設計支援システムの構成を示すブロック図である。なお、図5に示す設計支援システム100と同じ構成については、同じ符号を付し、説明を省略する。設計支援システム100’は、外部記憶装置110及びモジュール管理部10’を備える。モジュール管理部10’は、アプリケーション取得部11、モジュール選択部12’、XML解析部13、意味空間処理部14、モジュールマッピング処理部15、仕様値計算部16、判断部17’、制約条件記憶部18、優先度入力受付部19、優先度設定部20、表示部21’及びターゲットシステム記憶部22を備える。
FIG. 13 is a block diagram showing a configuration of a design support system in a modification of the present embodiment. In addition, about the same structure as the
判断部17’は、仕様値計算部16によって計算された仕様値が制約条件記憶部18に記憶されている制約条件を満たすか否かを判断する。そして、判断部17’は、仕様値が制約条件を満たすと判断した場合、ターゲットシステムをターゲットシステム記憶部22に記憶する。ターゲットシステム記憶部22にターゲットシステムを記憶した場合、又は仕様値が制約条件を満たさないと判断した場合、判断部17’は、その旨をモジュール選択部12’へ通知する。モジュール選択部12’は、ターゲットシステムを記憶した又は仕様値が制約条件を満たさない旨の通知を受けると、ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールを選択する。そして、モジュール選択部12’は、入れ替え可能なモジュールを他のモジュールと交換する。
The
ターゲットシステム記憶部22は、判断部17’によって仕様値が制約条件を満たすと判断されたターゲットシステムを記憶する。
The target
また、モジュール選択部12’は、入れ替え可能なモジュールが存在するか否かを判断し、存在しない場合、ターゲットシステム記憶部22に記憶されている全てのターゲットシステムを表示するよう表示部21’に指示する。
Further, the
表示部21’は、ターゲットシステム記憶部22に記憶されている全てのターゲットシステムを読み出してリスト表示する。
The
次に、本実施の形態の変形例における設計支援システム100’の処理の一例について説明する。図14は、本実施の形態の変形例における設計支援システムの処理の一例について説明するためのフローチャートである。
Next, an example of processing of the
図14において、ステップS41〜S48,S51の処理は、図12に示すステップS21〜S28,S32の処理と同一であるので説明を省略する。ステップS48において、仕様値が制約条件を満たすと判断した場合(ステップS48でYES)、判断部17’は、制約条件を満たすターゲットシステムをターゲットシステム記憶部22に記憶する(ステップS49)。次に、モジュール選択部12’は、ターゲットシステムを構成するハードウェアモジュール及びソフトウェアモジュールのうちの1つと置き換えることができる代替モジュールが外部記憶装置110内に存在するか否かを判断する(ステップS50)。
In FIG. 14, the processing of steps S41 to S48, S51 is the same as the processing of steps S21 to S28, S32 shown in FIG. If it is determined in step S48 that the specification value satisfies the constraint condition (YES in step S48), the determination unit 17 'stores the target system that satisfies the constraint condition in the target system storage unit 22 (step S49). Next, the
代替モジュールが外部記憶装置110内に存在すると判断した場合(ステップS50でYES)、モジュール選択部12’は、ターゲットシステムを構成するハードウェアモジュール及びソフトウェアモジュールのうちの1のモジュールを当該代替モジュールに交換する(ステップS51)。そして、ステップS44の処理に戻り、再度、XML解析部13は、交換したモジュールのXML構文を解析させ、ステップS44以降の処理を実行させる。このようにして、代替モジュールが存在しなくなるまで合成を繰り返すことで、制約条件を満たすターゲットシステムを全て選出することができる。
If it is determined that an alternative module is present in the external storage device 110 (YES in step S50), the
代替モジュールが外部記憶装置110内に存在しないと判断した場合(ステップS50でNO)、表示部21’は、ターゲットシステム記憶部22に記憶しているターゲットシステムを、最も回路面積、消費電力及び処理実行時間が小さいシステムから順にリスト表示する(ステップS52)。これにより、ユーザは、最適な組込み計算機システムを選択し、構築することができる。
When it is determined that the alternative module does not exist in the external storage device 110 (NO in step S50), the
なお、図14に示した処理フローでは、制約条件を満たすターゲットシステムを全て選出することになるため、図12で示した処理フローに比べて、モジュール選択処理413の処理実行時間自体が長くかかることになる。ターゲットシステムの合成に非常に時間が掛かる場合には、図12に示す処理フローを選択することが望ましいことがある。 In the processing flow shown in FIG. 14, since all target systems that satisfy the constraint conditions are selected, the processing execution time itself of the module selection processing 413 is longer than that in the processing flow shown in FIG. become. If the synthesis of the target system takes a very long time, it may be desirable to select the processing flow shown in FIG.
また、本実施の形態では、合成したターゲットシステム全体の仕様値と、制約条件とを比較しているが、本発明は特にこれに限定されず、モジュール毎の制約条件を制約条件記憶部に予め記憶しておき、モジュール選択部12が、ソフトウェアモジュール及びハードウェアモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも1つと、制約条件記憶部に記憶されている制約条件とを比較し、制約条件を満たすモジュールを選択してもよい。この場合も、本実施の形態と同様に、制約条件に優先度を設定してもよい。すなわち、ソフトウェアモジュール及びハードウェアモジュールの両方が制約条件を満たす場合、優先度の高い制約条件をより満たしているモジュールが選択される。
In the present embodiment, the specification value of the synthesized target system as a whole is compared with the constraint conditions. However, the present invention is not particularly limited to this, and the constraint condition for each module is stored in the constraint condition storage unit in advance. The
ここで、本実施の形態における設計支援システム100によって構築されたターゲットシステムについてさらに説明する。図15は、本実施の形態における設計支援システムによって構築されたターゲットシステム(組み込みシステム)の構成の一例を示す図である。
Here, the target system constructed by the
図15において、組み込みシステム30は、CPU31、メモリ32、第1の専用ハードウェア33、第2の専用ハードウェア34、内部バス35及び周辺バス36を備える。CPU31は、内部バス35を介してメモリ32、第1の専用ハードウェア33及び第2の専用ハードウェア34と接続されている。また、メモリ32、第1の専用ハードウェア33及び第2の専用ハードウェア34は、周辺バス36を介して互いに通信可能に接続されている。
In FIG. 15, the embedded
第1の専用ハードウェア33及び第2の専用ハードウェア34は、設計支援システム100によって選択されたハードウェアモジュールである。メモリ32は、第1のソフトウェア37及び第2のソフトウェア38を記憶している。第1のソフトウェア37及び第2のソフトウェア38は、設計支援システム100によって選択されたソフトウェアモジュールである。
The first
CPU31は、第1のソフトウェア37及び第2のソフトウェア38を逐次メモリ32から読み出して実行する。例えば、処理要求元が第1のソフトウェア37であり、処理要求先が第2のソフトウェア38である場合、第1のソフトウェア37から第2のソフトウェア38に対して関数呼び出し処理又はメッセージ送信処理が行われる。また、処理要求元が第1のソフトウェア37であり、処理要求先が第2の専用ハードウェア34である場合、第1のソフトウェア37から第2の専用ハードウェア34に対して割込み待ち処理又はポーリング処理が行われる。さらに、処理要求元が第1の専用ハードウェア33であり、処理要求先が第1のソフトウェア37である場合、第1の専用ハードウェア33から第1のソフトウェア37に対して割込み通知処理が行われる。さらにまた、処理要求元が第1の専用ハードウェア33であり、処理要求先が第2の専用ハードウェア34である場合、第1の専用ハードウェア33から第2の専用ハードウェア34に対して通信バッファ処理が行われる。
The
本実施の形態における設計支援システムの構成を用いることで、選択したモジュールがソフトウェアモジュール及びハードウェアモジュールのいずれであっても、設計段階でシステムの他のモジュールを変更することなく、組み合わせることができる。本実施の形態では、ソフトウェアモジュール及びハードウェアモジュールを組み合わせる、情報家電機器及び携帯電話機などの組込み計算機分野におけるシステム設計支援を想定しているが、ソフトウェアモジュールのみから構成される情報システム分野に適用しても、関数呼出し、メッセージ通信及びフレームワークなどの各種インタフェースを意味空間にしたがって切り替えることができる。 By using the configuration of the design support system in this embodiment, even if the selected module is either a software module or a hardware module, it can be combined without changing other modules in the system at the design stage. . This embodiment assumes system design support in the field of embedded computers such as information home appliances and mobile phones by combining software modules and hardware modules. However, various interfaces such as function call, message communication, and framework can be switched according to the semantic space.
10 モジュール管理部
11 アプリケーション取得部
12 モジュール選択部
13 XML解析部
14 意味空間処理部
15 モジュールマッピング処理部
16 仕様値計算部
17 判断部
18 制約条件記憶部
19 優先度入力受付部
20 優先度設定部
21 表示部
100 設計支援システム
110 外部記憶装置
DESCRIPTION OF
Claims (17)
ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとを記憶するモジュール記憶部と、
構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを前記モジュール記憶部から選択するモジュール選択部と、
前記モジュール選択部によって選択された前記ソフトウェアモジュールの前記意味空間識別子と前記ハードウェアモジュールの前記意味空間識別子とを取得する意味空間識別子取得部と、
前記意味空間識別子取得部によって取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成部とを備えることを特徴とする設計支援システム。 A design support system for supporting design of a target system constructed by combining at least one software module and at least one hardware module,
A module storage unit that stores a software module including a semantic space identifier representing a software module, and a hardware module including a semantic space identifier representing a hardware module;
A module selection unit that identifies the process of the target system to be constructed, and selects a software module and a hardware module for executing the identified process from the module storage unit;
A semantic space identifier acquisition unit that acquires the semantic space identifier of the software module selected by the module selection unit and the semantic space identifier of the hardware module;
A design support system comprising: a synthesis unit that synthesizes either the software module or the hardware module with the target system based on the semantic space identifier acquired by the semantic space identifier acquisition unit.
前記合成部は、前記意味空間識別子に基づいて、前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する際のマッピング形式を決定し、決定したマッピング形式が複数存在する場合、さらに前記属性情報に基づいてマッピング形式を決定し、決定したマッピング形式に従って前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成することを特徴とする請求項1記載の設計支援システム。 Each of the software module and the hardware module includes attribute information indicating its own attribute,
The synthesizing unit determines a mapping format when synthesizing either the software module or the hardware module to the target system based on the semantic space identifier, and when there are a plurality of determined mapping formats, The design support system according to claim 1, wherein a mapping format is determined based on the attribute information, and either the software module or the hardware module is synthesized with the target system according to the determined mapping format.
前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第1の処理と、前記第2のモジュールを起動する第2の処理と、割込待ち状態に移行する第3の処理と、前記第2のモジュールの処理完了後、割込みを受理して前記出力値を取得する第4の処理とを実行する割込待ちシーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項1記載の設計支援システム。 Each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module,
In the case where the synthesizing unit maps the second module in which the semantic space identifier indicates a hardware module, which is referenced from the first module in which the semantic space identifier indicates a software module, to the target system, A first process for storing the input value in the register, a second process for activating the second module, a third process for shifting to an interrupt wait state, and the completion of the process of the second module The design support system according to claim 1, further comprising: mapping an interrupt wait sequence for executing a fourth process of receiving an interrupt and acquiring the output value to the target system.
前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第1の処理と、前記第2のモジュールを起動する第2の処理と、前記第2のモジュールの処理完了まで前記レジスタをポーリングする第3の処理と、前記レジスタから前記出力値を取得する第4の処理とを実行するポーリングシーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項1記載の設計支援システム。 Each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module,
In the case where the synthesizing unit maps the second module in which the semantic space identifier indicates a hardware module, which is referenced from the first module in which the semantic space identifier indicates a software module, to the target system, A first process for storing the input value in the register, a second process for starting the second module, a third process for polling the register until the processing of the second module is completed, The design support system according to claim 1, wherein a polling sequence for executing a fourth process for acquiring the output value from a register is mapped to the target system.
前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記入力値を引数として前記ターゲットシステム内のスタックに格納する第1の処理と、前記第2のモジュールを呼び出す第2の処理と、前記出力値をリターン値として取得する第3の処理とを実行する関数呼出しシーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項1記載の設計支援システム。 Each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module,
The combining unit refers to the input value when mapping the second module in which the semantic space identifier indicates a software module, which is referred to from the first module in which the semantic space identifier indicates a software module, to the target system. A function call sequence for executing a first process stored in a stack in the target system, a second process for calling the second module, and a third process for acquiring the output value as a return value. The design support system according to claim 1, wherein mapping is performed on the target system.
前記合成部は、前記意味空間識別子がソフトウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記入力値をメッセージとして送信する第1の処理と、メッセージ受信待ち状態に移行する第2の処理と、受信したメッセージから前記出力値を取得する第3の処理とを実行するメッセージ送信シーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項1記載の設計支援システム。 Each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module,
The synthesizing unit refers to a first module whose semantic space identifier indicates a software module, and when mapping the second module whose semantic space identifier indicates a software module to the target system, the combining unit sends the input value as a message A message transmission sequence that executes a first process to be transmitted as a second process, a second process to shift to a message reception waiting state, and a third process to obtain the output value from the received message is mapped to the target system The design support system according to claim 1, wherein:
前記合成部は、前記意味空間識別子がハードウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がソフトウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のレジスタに前記入力値を格納する第1の処理と、割込みを発生させて前記第2のモジュールを起動する第2の処理と、前記第2のモジュールの処理完了後、前記レジスタから前記出力値を取得する第3の処理とを実行する割込みシーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項1記載の設計支援システム。 Each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module,
In the case where the synthesizing unit maps the second module in which the semantic space identifier indicates a software module, which is referenced from the first module in which the semantic space identifier indicates a hardware module, to the target system, A first process for storing the input value in the register, a second process for generating an interrupt to activate the second module, and the output value from the register after completion of the process of the second module. The design support system according to claim 1, wherein an interrupt sequence for executing a third process for acquiring the data is mapped to the target system.
前記合成部は、前記意味空間識別子がハードウェアモジュールを示す第1のモジュールから参照される、前記意味空間識別子がハードウェアモジュールを示す第2のモジュールを前記ターゲットシステムにマッピングする場合、前記ターゲットシステム内のバッファに前記入力値を格納して前記第2のモジュールを起動する第1の処理と、前記第2のモジュールの処理完了後、前記バッファから前記出力値を取得する第2の処理とを実行するバッファリングシーケンスを前記ターゲットシステムにマッピングすることを特徴とする請求項1記載の設計支援システム。 Each of the software module and the hardware module further includes its own function, an input value to be received from another module, and an output value to be notified to the other module,
The synthesizing unit refers to the target system when the semantic space identifier is referenced from a first module indicating a hardware module, and the second module whose semantic space identifier indicates a hardware module is mapped to the target system. A first process for storing the input value in an internal buffer and activating the second module; and a second process for obtaining the output value from the buffer after completion of the process of the second module. The design support system according to claim 1, wherein a buffering sequence to be executed is mapped to the target system.
前記ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも1つを予め記憶する制約条件記憶部と、
前記合成部によって前記ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも1つに基づいて、前記ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも1つを仕様値として計算する計算部と、
前記計算部によって計算された前記仕様値が前記制約条件記憶部に記憶されている前記制約条件を満たすか否かを判断する判断部と、
前記判断部によって前記仕様値が前記制約条件を満たすと判断された場合、前記ターゲットシステムをユーザに提示する提示部とをさらに備えることを特徴とする請求項1記載の設計支援システム。 The software module and the hardware module include at least one of power consumption consumed by the module, circuit area of the module, and processing time of the module,
As a constraint condition given to the target system, a constraint condition storage unit that stores in advance at least one of power consumption, circuit area, and processing time;
Based on at least one of power consumption, circuit area, and processing time included in the module synthesized in the target system by the synthesis unit, at least one of the power consumption, circuit area, and processing time of the entire target system. A calculation unit that calculates one as a specification value;
A determination unit that determines whether the specification value calculated by the calculation unit satisfies the constraint condition stored in the constraint condition storage unit;
The design support system according to claim 1, further comprising: a presentation unit that presents the target system to a user when the determination unit determines that the specification value satisfies the constraint condition.
前記合成部は、交換した前記他のモジュールを前記ターゲットシステムに合成することを特徴とする請求項11記載の設計支援システム。 The module selection unit, when the determination unit determines that the specification value does not satisfy the constraint, the module selection unit selects a replaceable module from among the modules synthesized in the target system, and the selected replacement is possible Replace the module with another module,
12. The design support system according to claim 11, wherein the synthesizing unit synthesizes the replaced other module with the target system.
前記ターゲットシステムに与えられた制約条件として、消費電力、回路面積及び処理時間のうちの少なくとも1つを予め記憶する制約条件記憶部と、
前記合成部によって前記ターゲットシステムに合成されたモジュールに含まれる消費電力、回路面積及び処理時間のうちの少なくとも1つに基づいて、前記ターゲットシステム全体の消費電力、回路面積及び処理時間のうちの少なくとも1つを仕様値として計算する計算部と、
前記計算部によって計算された前記仕様値が前記制約条件記憶部に記憶されている前記制約条件を満たすか否かを判断する判断部と、
前記判断部によって前記仕様値が前記制約条件を満たすと判断された場合、前記ターゲットシステムに合成されたモジュールのうち、入れ替え可能なモジュールがなくなるまで、前記ターゲットシステムを記憶するターゲットシステム記憶部と、
前記ターゲットシステム記憶部に記憶されている全ての前記ターゲットシステムをユーザに提示する提示部とを備えることを特徴とする請求項1記載の設計支援システム。 The software module and the hardware module include at least one of power consumption consumed by the module, circuit area of the module, and processing time of the module,
As a constraint condition given to the target system, a constraint condition storage unit that stores in advance at least one of power consumption, circuit area, and processing time;
Based on at least one of power consumption, circuit area, and processing time included in the module synthesized in the target system by the synthesis unit, at least one of the power consumption, circuit area, and processing time of the entire target system. A calculation unit that calculates one as a specification value;
A determination unit that determines whether the specification value calculated by the calculation unit satisfies the constraint condition stored in the constraint condition storage unit;
When the determination unit determines that the specification value satisfies the constraint condition, a target system storage unit that stores the target system until there is no replaceable module among the modules synthesized in the target system;
The design support system according to claim 1, further comprising: a presentation unit that presents all the target systems stored in the target system storage unit to a user.
ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとがモジュール記憶部に記憶されており、
構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを前記モジュール記憶部から選択するモジュール選択ステップと、
前記モジュール選択ステップにおいて選択された前記ソフトウェアモジュールの前記意味空間識別子と前記ハードウェアモジュールの前記意味空間識別子とを取得する意味空間識別子取得ステップと、
前記意味空間識別子取得ステップにおいて取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成ステップとを含むことを特徴とする設計支援方法。 A design support method for supporting the design of a target system constructed by combining at least one software module and at least one hardware module,
A software module including a semantic space identifier representing a software module and a hardware module including a semantic space identifier representing a hardware module are stored in the module storage unit,
A module selection step of identifying a process of a target system to be constructed and selecting a software module and a hardware module for executing the identified process from the module storage unit;
A semantic space identifier acquisition step of acquiring the semantic space identifier of the software module selected in the module selection step and the semantic space identifier of the hardware module;
And a synthesis step of synthesizing either the software module or the hardware module with the target system based on the semantic space identifier acquired in the semantic space identifier acquisition step.
構築すべきターゲットシステムの処理を特定し、特定した処理を実行するソフトウェアモジュール及びハードウェアモジュールを、ソフトウェアモジュールであることを表す意味空間識別子を含むソフトウェアモジュールと、ハードウェアモジュールであることを表す意味空間識別子を含むハードウェアモジュールとを記憶するモジュール記憶部を参照することにより選択するモジュール選択手段と、
前記モジュール選択手段によって選択された前記ソフトウェアモジュールの意味空間識別子と前記ハードウェアモジュールの意味空間識別子とを取得する意味空間識別子取得手段と、
前記意味空間識別子取得手段によって取得された前記意味空間識別子に基づいて前記ソフトウェアモジュール及び前記ハードウェアモジュールのいずれかを前記ターゲットシステムに合成する合成手段としてコンピュータを機能させることを特徴とする設計支援プログラム。 A design support program for supporting design of a target system constructed by combining at least one software module and at least one hardware module,
The meaning of the software module and the hardware module that specify the processing of the target system to be constructed and that includes the semantic space identifier that represents the software module and the hardware module. Module selecting means for selecting by referring to a module storage unit that stores a hardware module including a space identifier;
Semantic space identifier acquisition means for acquiring the semantic space identifier of the software module selected by the module selection means and the semantic space identifier of the hardware module;
A design support program for causing a computer to function as a synthesis unit that synthesizes either the software module or the hardware module with the target system based on the semantic space identifier acquired by the semantic space identifier acquisition unit. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007102043A JP4901561B2 (en) | 2006-04-14 | 2007-04-09 | Design support system, design support method, and design support program |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006111760 | 2006-04-14 | ||
JP2006111760 | 2006-04-14 | ||
JP2007102043A JP4901561B2 (en) | 2006-04-14 | 2007-04-09 | Design support system, design support method, and design support program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007305115A true JP2007305115A (en) | 2007-11-22 |
JP4901561B2 JP4901561B2 (en) | 2012-03-21 |
Family
ID=38838944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007102043A Expired - Fee Related JP4901561B2 (en) | 2006-04-14 | 2007-04-09 | Design support system, design support method, and design support program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4901561B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009271649A (en) * | 2008-05-02 | 2009-11-19 | Fujitsu Ltd | Data processor, data processing method, and data processing program |
JP2017151829A (en) * | 2016-02-26 | 2017-08-31 | 株式会社日立製作所 | Support system, support method and support program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232081A (en) * | 1998-02-12 | 1999-08-27 | Fuji Xerox Co Ltd | Information processing system and method |
JP2003288378A (en) * | 2002-03-28 | 2003-10-10 | Cats Kk | System lsi design support program, system lsi control circuit and integrated circuit for pc |
-
2007
- 2007-04-09 JP JP2007102043A patent/JP4901561B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232081A (en) * | 1998-02-12 | 1999-08-27 | Fuji Xerox Co Ltd | Information processing system and method |
JP2003288378A (en) * | 2002-03-28 | 2003-10-10 | Cats Kk | System lsi design support program, system lsi control circuit and integrated circuit for pc |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009271649A (en) * | 2008-05-02 | 2009-11-19 | Fujitsu Ltd | Data processor, data processing method, and data processing program |
JP2017151829A (en) * | 2016-02-26 | 2017-08-31 | 株式会社日立製作所 | Support system, support method and support program |
Also Published As
Publication number | Publication date |
---|---|
JP4901561B2 (en) | 2012-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8091064B2 (en) | Supporting system, design supporting method, and computer-readable recording medium recorded with design supporting program | |
JP4412674B2 (en) | Apparatus and method for supporting model-driven development | |
KR20160054629A (en) | Methods to adapt user interfaces and input controls | |
US20070288649A1 (en) | Method and system of processing a data stream | |
JP2005050334A (en) | Synchronization of logical view independent of physical storage expression | |
CN101799760A (en) | Generate the system and method for the parallel simd code of arbitrary target architecture | |
KR20130084659A (en) | System and method for managing resources of a portable computing device | |
US20210149723A1 (en) | Method and apparatus for microservice architecture reconfiguration | |
CN100489777C (en) | Intelligent platform management interface firmware architecture and method of building the same | |
US7856625B2 (en) | Program conversion device and method | |
JP2005301985A (en) | Information processor, object generation method, object conversion method, object generation program, object conversion program, and recording medium | |
JP4901561B2 (en) | Design support system, design support method, and design support program | |
JP5426938B2 (en) | Information processing apparatus and information processing method | |
US9632759B1 (en) | Generation of an interface for interaction between a modeling environment and an external system | |
TW201324347A (en) | System and method for managing commands of function module | |
JP4798395B2 (en) | Resource automatic construction system, automatic construction method, and management terminal therefor | |
CN111158777B (en) | Component calling method, device and computer readable storage medium | |
US20100088656A1 (en) | Property checking system, property checking method, and computer-readable storage medium | |
KR101154717B1 (en) | A method and apparatus for managing multiple languages in a data language | |
KR102062069B1 (en) | Apparatus for mash-up service generation based on voice command and method thereof | |
CN106650033B (en) | Process mapping method for input/output ports | |
JP6222079B2 (en) | Computer system, processing method thereof, and program | |
CN115051904B (en) | Method and device for managing single disk state based on markup language | |
JP5190899B2 (en) | Information processing apparatus, setting file generation method, and setting file generation program | |
CN116431320A (en) | Dynamic dual-mode tensor management design scheme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100106 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110720 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110726 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110823 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111206 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111227 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150113 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |