JP2004510258A - ハードウェアとソフトウェアを備えた電子システムの性能レベルモデリング及びシミュレーション - Google Patents
ハードウェアとソフトウェアを備えた電子システムの性能レベルモデリング及びシミュレーション Download PDFInfo
- Publication number
- JP2004510258A JP2004510258A JP2002531279A JP2002531279A JP2004510258A JP 2004510258 A JP2004510258 A JP 2004510258A JP 2002531279 A JP2002531279 A JP 2002531279A JP 2002531279 A JP2002531279 A JP 2002531279A JP 2004510258 A JP2004510258 A JP 2004510258A
- Authority
- JP
- Japan
- Prior art keywords
- architectural
- communication
- service
- components
- component
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】動作及びアーキテクチャを収集し(ステップ10、15)、アーキテクチャコンポーネントにマッピングする(ステップ20)。マッピングされたシステムをシミュレーションし(ステップ25)、ハードウェア及びソフトウェアのコンポーネントをエクスポートし(ステップ30)、ハードウェア及びソフトウェアのコンポーネントを別々に検証し(ステップ35〜50)、得られたシステムを協調検証ツールを用いて検証する(ステップ55)。
【選択図】図1
Description
【発明の属する技術分野】
本発明は、広くは電子システムの性能レベルモデルの設計と評価に関し、特に、システムレベルで電子システムのモデルを生成し、シミュレーションする方法に関する。
【0002】
【従来の技術】
従来の電子システム(electronic system)の設計プロセスでは、動作(behavior)及びアーキテクチャの仕様(specification)を決定した後に、ハードウェア及びソフトウェアの設計を行う。設計フローにおいて機能性能とアーキテクチャ性能のトレードオフを検討することは、余りにも遅すぎるため、時間的にも費用効率の面でも、最早変更することはできない。
【0003】
これらの電子システムに対する製品(products)の設計プロセスには、数多くの制約がある。第1の制約は、電力、性能及びコストの観点から、これらの製品はシリコン又は他のハードウェアプラットホーム内に実装(implement)しなければならない点である。第2の制約は、これらの製品には、高度に専門化したシステムチームが同時実行可能なプログラミングシステム(executable concurrent programming paradigms)の観点から考案したシステムが実装されるが、このシステムは、今日のハードウェア設計者にはよく理解されていない点である。実際に、殆どの電子システムでは、機能をハードウェアとソフトウェアに分ける分け方は、解析によるものではなく、設計者の過去の経験に依存している。そして、分けられた仕様は、超高速集積回路(Very High Speed Integrated Circuit:以下、VHSICという)用のハードウェア記述言語(VHDL)のような特定のハードウェア記述言語(hardware description language:以下、HDLという)又はハードウェアコンポーネント用のVerilogと、C言語のようなソフトウェア記述言語又はソフトウェアコンポーネント用のアセンブラ言語とに翻訳される。ハードウェアとソフトウェアは密接に関係しているが、ハードウェア設計とソフトウェア設計は別々に行われる。電子システムが組み立てられた後になってから、初めてソフトウェアとハードウェアが一緒に動作する。設計の結果が、最適な設計から遠く離れていたり、さらには間違っていることもあり、設計からサイクルを再度やり直さなければならないこともある。
【0004】
電子システムの設計と実現(implementation)間のこのギャップは、この種の製品及び電子システムの設計プロセスにおいて、急速に最大のボトルネックとなりつつある。同時に、製品を市場を投入するまでの時間を短縮しなければならないという状況では、製品を迅速に設計する必要がある。したがって、設計にかかる時間は長くなっているが、ビジネスサイクルにおいて設計に許容される時間は、絶えず短くなっている。設計時間を短縮する主な手法は、設計プロセスを速くするために、ハードウェア/ソフトウェア協調設計法(co−design procedure)の実行を試み、電子システムのハードウェアとソフトウェアを同時(concurrently)に設計することである。しかしながら、効率の良い協調設計方法論(methodology)又は手法(approach)は、容易に考案又は実現されていない。この理由の1つは、ハードウェア設計及びソフトウェア設計の方法論にはそれぞれ独自の手法があり、それらは協調させるのが困難であるという点である。
【0005】
真の協調設計方法論を構築するために、幾つかの手法が試みられている。1つの既知の手法は、協調検証手法(co−verification approach)であり、協調検証シミュレータを利用して、設計されたハードウェアとソフトウェアを一緒に検証する。この手法の問題は、協調検証の時点で、全てのハードウェアをサイクル精度のレベル(cycle accurate level)まで構築及び設計しておかなければならず、そのため、協調検証中に何らかの問題が起きても、問題がハードウェアの再設計に関わる場合、既にハードウェアは設計され、実現されているので、再設計は困難である。同様に、システムのソフトウェアは、協調検証の前にコンパイルしておかなければならない。
【0006】
協調設計のもう1つの手法は、命令セット(instruction set:以下、ISSという)のコシミュレーション(co−simulation)である。この手法では、電子システムのHDL記述及び命令セットのモデルを利用して、プロセッサと関連するコンポーネントについての命令セットを同時にシミュレーションする。この手法は、有効なコシミュレーションを提供するが、依然として、機能的に完全なハードウェアのモデルを利用しているため、ハードウェアコンポーネントの置換えや実質的な再設計は困難である。また、この手法は、生成する(create)のが困難である複雑なプロセッサモデルを必要とし、したがって、種々のプロセッサの開発(exploration)に対しては障壁が高い。この手法も、ハードウェアの過大設計(hardware over−design)となり、それに関連して、コストが上がり、電力消費が増え、電子システム内に占める面積が大きくなる。
【0007】
【発明が解決しようとする課題】
したがって、ハードウェアが完全には設計されていないレベルで、シミュレーションができるとともに、ハードウェアコンポーネントを容易に再設計することができるハードウェア/ソフトウェア協調設計方法論が望まれている。
【0008】
電子システムの設計におけるもう1つの問題は、前に設計された電子システムにおいて使用されているコンポーネントを再利用できるかである。電子システムの設計プロセスは、コンポーネントを再利用できなければならず、したがって、再利用可能な設計方法論をサポートする必要がある。既に設計されたコンポーネントを再利用することにおける問題は、それらが使用している通信プロトコルが固定であることにあり、異なるプロトコルを使用する異なったコンポーネントとインタフェースする場合、プロトコルの変換が必要となる。実際に、電子システムをこれから構築するときには、全設計の半分以上が再利用される。
【0009】
今日、プロトコルの選択は、コンポーネントを設計しながら行われ、機能の動作と通信の動作は、本質的に混じり合っている。しかしながら、プロトコルの良い選択は、通信に関わる全てのコンポーネントが既知の場合にのみ可能である。したがって、電子システムの設計環境は、最初からコンポーネントを純粋に機能的な表現で記述すべきである。後に、コンポーネントを電子システムで(再)使用するときに、設計環境は、コンポーネントを最も適切な通信の動作にプラグインできるようにする。この手法は、通信の動作と機能の動作が混じり合っている現在のハードウェア設計方法とは対照的である。
【0010】
コンポーネントを再利用できるようにするためには、コンポーネントをモジュール化する必要がある。モジュール設計(modular designs)において、電子システムの全ての機能(complete system functionality)は、複雑さが処理しやすい通信コンポーネントに分割される。この手法の利点は、コンポーネントを再利用することができるとともに、電子システムへの適応と保守がより容易な点である。
【0011】
また、ハードウェア/ソフトウェアシステム設計環境において、以下の要件を検討すべきである。(1)モジュール化は、複雑さを減らすのに不可欠である。(2)複数の記述言語を一緒にして、各システムコンポーネントを最も適切なシステム内に記述できるようにしなければならない。(3)設計環境は、異質な概念的仕様(heterogeneous conceptual specification)、得られる異質なアーキテクチャ、及び中間の全ての改良化(refinement)のステップをモデル化できるようにしなければならない。(4)在庫コンポーネント及び関連する設計環境をモデル化すべきである。
【0012】
【課題を解決するための手段】
本発明は、ハードウェア及びソフトウェアのコンポーネントの両方を備えた電子システムの性能レベルモデルを生成し、評価する方法及びシステムに関する。本発明は、システム設計者がシステムの機能コンポーネントを定め、そして、特定したコンポーネントを用いてマッピングし、マッピングされたシステムモデルを評価できるようにする簡単な方法を提供する。
【0013】
一具体例において、本発明は、ハードウェア及びソフトウェアの要素の両方を備えた電子システムをモデル化する電子システムモデル化方法に関する。この電子システムモデル化方法は、複数の動作を生成するステップと、複数の動作の各動作を適切なアーキテクチャコンポーネントに関連付けるステップと、動作を実行するために、アーキテクチャコンポーネント間の通信を必要とする要求するアーキテクチャコンポーネント間の通信パターンを生成するステップとを有する。
【0014】
他の具体例において、本発明は、ハードウェア及びソフトウェアのコンポーネントを備えた電子システムの動作モデルを生成する動作モデル生成システムに関する。この動作モデル生成システムは、電子システムの一部として実行可能なコンポーネントに対応する複数のアーキテクチャコンポーネントと、ユーザが定めた動作を実行するために、アーキテクチャコンポーネント間の通信を必要とするアーキテクチャコンポーネント間の通信パターンを生成する手段とを備える。
【0015】
更なる具体例において、本発明は、ハードウェア及びソフトウェアの要素を備えた電子システムの性能レベルモデルに関する。この電子システムの性能レベルモデルは、入力情報を提供する入力機能と、電子システムの第1のアーキテクチャコンポーネントによって実行される機能を表す第1のサービスと、電子システムの第2のアーキテクチャコンポーネントによって実行される機能を表す第2のサービスと、第1のサービスと第2のサービス間の通信を容易にする少なくとも1つのアプリケーションプログラミングインタフェースと、電子システムの性能レベルモデルの出力情報を受信する出力機能とを備える。
【0016】
本発明の側面の目的は、設計者が、高い抽象レベルで、大きな、より複雑な回路及びシステムを働かせることができるようにするシステムレベルのシミュレーション機能を提供することである。
【0017】
本発明の側面の更なる目的は、設計システムの所望の動作仕様に準拠した幾つかの異なるアーキテクチャ設計を容易に実行し、試験する技術を提供することである。
【0018】
本発明の側面のもう1つの目的は、設計の妥当性検証(validation)のレベルをシステムレベルに引き上げることである。
【0019】
本発明の側面の追加的な目的は、より標準化した設計環境を提供し、これによって、異なる設計プラットホーム間のクロストレーニングの必要性を軽減し、リソースをより設計及び実行に向けられるようにすることである。
【0020】
本発明の側面の更にもう一つの目的は、複雑なデジタル電子システムを設計する、直感的で対話的な(interactive)技術を提供することである。
【0021】
本発明の更なる目的は、複雑なデジタル電子システム設計を高いレベルで繰り返して改良することができる技術を提供することである。
【0022】
したがって、本発明の利点は、ハードウェア及びソフトウェアの要素の両方を備えた電子システムをモデル化する電子システムモデル化方法を提供する。この電子システムモデル化方法は、モデル化されるシステムによって実行される動作に対応した複数の動作を収集するステップと、アーキテクチャプラットホーム内部に含まれる複数のハードウェア及びソフトウェアのアーキテクチャコンポーネントを収集するステップと、収集された複数の動作の各々を、動作を実行する選択されたアーキテクチャコンポーネントにマッピングするステップと、動作を実行するために、アーキテクチャコンポーネント間で通信を要求するアーキテクチャコンポーネント間の通信パターンを認識して収集するステップと、動作間の各通信インスタンスを収集されたパターンのインスタンスにマッピングするステップとを有する。
【0023】
本発明のもう1つの利点は、ハードウェア及びソフトウェアのコンポーネントを備えた電子システムの動作モデルを生成する動作モデル生成システムを提供する。この動作モデル生成システムは、電子システムの一部として実行可能なコンポーネントにそれぞれ対応した複数のアーキテクチャコンポーネントと、ユーザが定めた動作を実行するために、アーキテクチャコンポーネント間で通信を要求するアーキテクチャコンポーネント間において、動作を実行するアーキテクチャコンポーネント間で通信するのに必要とされる介在アーキテクチャコンポーネント間の通信を含む通信パターンを生成する手段とを備える。
【0024】
更に本発明のもう1つの利点は、ハードウェア及びソフトウェアのコンポーネントを備えた電子システムの動作間における通信の性能レベルモデルを提供する。通信の性能レベルモデルは、1つ以上の送信先(destination)動作に転送されるデータを供給する第1の動作用のアプリケーションプログラミングインタフェースと、動作通信がマッピングされるパターンによりサポートされる、複数のサービスの中に含まれ、通信プロトコルの性能をモデル化するアプリケーションプログラミングインタフェースを実行する第1のサービスと、第1の動作がマッピングされるアーキテクチャコンポーネントの記号によりサポートされる複数のサービス宣言の中に含まれ、第1のサービスにより使用されて、アーキテクチャプラットホームの性能をモデル化する1つ以上のアプリケーションプログラミングインタフェースと、アーキテクチャコンポーネントの性能モデルにより特定される複数のサービス定義によって、アーキテクチャコンポーネントの記号においてサポートされるサービス宣言と、第2のアーキテクチャコンポーネントによって実行可能な機能に対応する複数の第2のサービスの1つであり、電子システムの第1のコンポーネントにトポロジー的に接続され、第2のアーキテクチャコンポーネントによって実行される機能を表す第2のアプリケーションインタフェースと、送信元(source)動作から送信先動作への通信が完成するように、電子システムの性能レベルモデル出力情報を受信する送信先動作用の入力アプリケーションインタフェースとを備える。
【0025】
本発明の上述した利点及び他の利点は、図面を参照して本発明の好ましい実施の形態を説明する詳細な記述から更に明らかとなる。
【0026】
【発明の実施の形態】
本発明は、種々の変形形態、代替形態が可能であるが、特定の実施の形態を例として図示し、以下詳細に説明する。しかしながら、詳細な説明は、本発明を特定の形態に限定することを意図するものではない。むしろ、本発明は、特許請求の範囲に記載するように、本発明の趣旨及び範囲を逸脱することなく、全ての変形形態、均等形態及び代替形態を含むことを意図している。
【0027】
本発明により、ユーザは、システムが何をするかを特定する動作モデル(behavior model)と、システムを実現する(implement)コンポーネントを特定するアーキテクチャモデルとを明白に区別することができる。システムの機能とアーキテクチャ間のこの明白な区別により、システム設計者は、設計サイクルの初期段階において、複数の異なるアーキテクチャ上で実行される動作の性能効果をシミュレーションすることができる。
【0028】
ハードウェア要素とソフトウェア要素を有するシステムを設計する際、解析すべき幾つかの重要な要因がある。このような要因には、システムプロセッサにおいて実行される動作の遅延と、オペレーティングシステムのスケジューラのオーバヘッド及び機能と、システムの特定用途向け集積回路(application specific integrated circuit:以下ASICという)又はオンチップカスタムハードウェアの実行遅延と、ハードウェア及びソフトウェアのコンポーネント間の通信経路及びタイミングと、バス及びメモリのアクセス遅延と、命令及びデータのフェッチタイミングとが含まれる。更に、システムレベルのシミュレーションでは、リソース間の競合の問題も起こることがあり、したがって、この問題は、設計プロセスの初期段階に対処しなければならない。
【0029】
図1に示すように、ステップ10において、ユーザは所望のシステムの動作を入力する。次にステップ15において、ユーザは、システムを実行するアーキテクチャコンポーネントを入力する。次にステップ20において、ユーザが入力した動作が、適切なアーキテクチャコンポーネントにマッピングされる。動作がアーキテクチャコンポーネントに一旦マッピングされると、次にステップ25において、マッピングされたシステムの性能をシミュレーションすることができる。性能のシミュレーションでは、マッピングされた特定のシステムの設計に対して、システムのタイミングがユーザ仕様を満たしているかが判定される。ユーザ仕様を満たしていないときは、ユーザは、動作ブロック(behavioral block)の一部を異なるアーキテクチャブロックにマッピングすることができ、これにより、これらの設計(implementation)をハードウェアとソフトウェア間で動かすことができる。設計は、例えば、埋込プロセッサ、メモリ及びカスタムハードウェアを備えたシステムオンチップとして行うことができ、あるいはディスクリートのプロセッサ、メモリ及びシステムオンチップ(SOC)として行うことができる。ステップ30において、設計が十分に改良されたレベルに達し、その性能がシステム仕様を満足するようになると、ユーザは、設計をソフトウェアとハードウェアの設計としてエクスポートすることができる。次にステップ35において、ハードウェア設計は、HDLシミュレーション、フロアプラン(floor planning)及び論理合成(logic synthesis)の準備が整う。ステップ45において、ソフトウェアモデルは、RTOSにリンクさせる準備が整う。次にステップ40、50において、ハードウェアコンポーネントとソフトウェアコンポーネントは別々に検証される。更に、ステップ55において、エクスポートされた設計のハードウェアコンポーネントとソフトウェアコンポーネントを協調検証ツールにより一緒に検証することができる。
【0030】
図2に示すように、ステップ100において、複数の動作がユーザにより生成される。ユーザは、動作をC++オブジェクトとして入力し、動作のデータベースから選択し、ブロック図に階層的に構成し、ダイアログボックスに入力し、あるいは他の方法で生成することができる。動作は、設計者がシステムに実行を要求する、システムの所望の機能を記述している。
【0031】
ステップ110において、複数のアーキテクチャコンポーネントがユーザにより生成される。ユーザは、アーキテクチャコンポーネントを入力し、アーキテクチャのデータベースから選択し、アーキテクチャ図に階層的に構成し、ダイアログボックスに入力し、あるいはそれ以外の方法で生成することができる。本明細書において使用するように、アーキテクチャコンポーネントは、実際のシステムで実現可能なコンポーネントであるアーキテクチャ要素(architecture element)のモデルを参照する。アーキテクチャ要素の例としては、バス、CPU、実時間オペレーティングシステム(real time operating system:以下RTOSという)、スケジューラ、ASIC等が含まれる。アーキテクチャコンポーネントは、各サービスがアーキテクチャ要素によって実行される特定の機能に関係した案複数のサービスを含んでいる。例えば、RTOSは、スケジューラアプリケーション、標準Cライブラリ等によりモデル化される。
【0032】
ステップ120において、動作のインスタンスを適切なアーキテクチャコンポーネント(例えば、RTOS又はASIC)にマッピングすることにより、動作をハードウェアとソフトウェアに分ける。ステップ130において、ユーザは、この特定の分割の影響(impact)をモデル化したこれらのシステムの性能解析を実行することができる。ユーザは、システムが性能仕様を満足するようになるまで分割ステップを繰り返す。
【0033】
一旦分割が完了すると、ステップ140において、ユーザは、動作設計における複数のネットについて通信パターンを選択することにより、マッピングされた設計を改良することができる。通信パターンは、個別のアーキテクチャコンポーネント間の通信を実行するのに必要なタイミング、速度及びプロトコルを含む。通信パターンを選択した後、ステップ150において、動作を再びシミュレーションする。この場合、性能シミュレーションは、計算と共に通信の性能への影響をモデル化しているので、より正確なものになる。例えば、ハードウェアとソフトウェア間の通信は、レジスタ(register)又は共有メモリ(shared memory)にマッピングすることができる。ユーザは、システムが性能仕様を満足するようになるまでマッピングステップを繰り返す。
【0034】
シミュレーション後、返されたパラメータが所望の動作パラメータ内にないときは、設計者は、マッピングされたモデルの任意の特性(aspect)を容易に変更することができる。すなわち、アーキテクチャコンポーネントの種類を変更し、アーキテクチャコンポーネントを追加又は除去し、様々なアーキテクチャコンポーネント間の接続を変更し、アーキテクチャに対する動作のマッピングを変更して、通信パターンを変更することができる。
【0035】
更に、設計者は、マッピングされた設計で特定される性能の制約内で動作を実行できることを確かめるために、所望の全ての動作を連続的に実行することができる。この方法により、高レベルで繰返し設計プロセスが可能となり、コンポーネントレベルでの設計作業が減少し、設計プロセスが大幅に高速化される。
【0036】
図3に示すように、送信元動作(source behavior)200は、送信先動作(destination behavior)210を制御し、送信先動作210は、送信元動作200が生成した命令又は情報を必要とする。図3に示すマッピングされた具体例において、送信元動作200は、RTOS220によって実行され、送信先動作210は、ASIC230によって実行され、例えば圧縮初期化プロシージャ(compression initiation procedure)では、圧縮初期化プロシージャはRTOS220により初期化され、ASIC230によって実行される。送信元動作200及び送信先動作210のマッピングは、実行される機能により定まり、ユーザにより決定される。
【0037】
図4に示すように、アーキテクチャコンポーネント、この具体例ではRTOSは、複数のサービス、例えばCライブラリ252、スケジューラ254、ミューテックス(Mutex)256等を含んでいる。各サービスは、アーキテクチャコンポーネントによって実行される異なる機能に対応している。このようにして、各アーキテクチャコンポーネントは複数の機能に分割されて、アーキテクチャコンポーネント間でのサービスのモジュール性を増大し、再利用性を促進する。例えば、全てのRTOSによって使用されるスケジューリングアルゴリズムの数は、ほんの僅かな数しかない。ラウンドロビンスケジューリングのサービスは、一旦定義されると、多くのRTOSコンポーネントで使用される。サービスとその機能は、モデル化されるアーキテクチャコンポーネントを提供するベンダーにより提供されるアーキテクチャコンポーネントの仕様に基づいて定められている。
【0038】
各サービスを、サービス宣言と1つ以上のサービス定義により、定義するとよい。サービス宣言は、C++のヘッダファイルに1つ以上のC++機能(C++ functions)を宣言する。サービス定義は、ヘッダファイルで宣言したC++機能の本体を提供する。この方法の利点として、C++は、機能宣言と定義の分離をサポートした標準のオブジェクト指向言語である。
【0039】
各アーキテクチャコンポーネント毎のサービス定義は、ライブラリ又は他のデータベースから選択され、このデータベースはアーキテクチャコンポーネントにより表されるコンポーネント製造業者により、又は業界主導の標準ライブラリにより提供され、あるいはシステムユーザにより生成される。この方法は、組み合わされ、整合されるアーキテクチャコンポーネントをモデル化する業界標準を促進し、更にはシステム設計者によるアーキテクチャ設計の開発を促進する。
【0040】
各アーキテクチャコンポーネント毎のサービス定義260は、ライブラリ又は他のデータベースから選択され、このデータベースはアーキテクチャコンポーネントにより表されるコンポーネント製造業者により提供されるか、あるいはシステムユーザにより生成される。この方法の利点として、異なるベンダーからのコンポーネントは、APIを整合することによってサービスを実行する限り、一緒に動作することができる。更に、IPベンダーから定義が提供されているときには、複雑な詳細はサービス内部にカプセル化されているので、システム設計者は、その全てを理解する必要はない。この方法のもう1つの利点として、同一のインタフェースを保持したままで、多数のサービス定義を書き、性能精度を異なるレベルでモデル化することができる。システム設計者は、性能解析において、より高いレベルの精度に容易かつ徐々に進むことができ、設計は更に改良される。
【0041】
RTOSの具体例として、RTOSは、例えば標準Cライブラリ(StandardCLibrary)のサービスをサポートしている。このサービスは、「memcpy」及び「memset」に対する機能プロトタイプを宣言する。このサービスを実行することにより、これらの2つの機能の機能性及び性能の影響を定義する。
【0042】
memcpy及びmemsetに対する機能プロトタイプは以下の通りである。
【0043】
virtual vccAddress* memcpy(vccAddress* s1, const vccAddress* s2, size_t n, vccInstanse*) = 0;
virtual vccAddress* memset(vccAddress* s, int c, size_t n, vccInstance*)=0
更に追加の指針として、memcpy及びmemsetに対する好ましいC++コードは以下の通りである。
/**********************************************************************
名称: memcpy
説明: メモリアドレスs1からs2にnバイトをコピーする。この実行は、アドレスがメモリ語境界にあることを想定する。何ら実際のデータは記憶又は読み出されるように計画されていない。メモリトランザクションは、性能のみの理由で、生成される。
【0044】
リターン: 常にs1を返す。
**********************************************************************/
vccAddress*CPP_MODEL_IMPLEMENTATTON::memcpy(vccAddress* to, const vccAddress* from,
size_t n, vccInstance* inst)
{
if(n == 0)
return to;
Init();
unsigned reqTrans = n/bytesPerWord_;
reqTrans = ((reqTrans == 0)?1:reqTrans);
unsigned remTrans = reqTrans;
theBegin:
if(remTrans == 0)goto theEnd;
{
memAccess.reference(*from, bytesPerWord_, rwRead,inst,true);
memAccess.reference(*to, bytesPerWord_, rwWrite,inst,true);
}
remTrans−−;
goto theBigin;
theEnd:
return to;
}
/*********************************************************************
名称: memset
説明: アドレスsのメモリの最初のnバイトを値c(符号なし整数値(unsigned char)に変換される)セットする。メモリトランザクションは、性能のみの理由で、生成される。
【0045】
リターン: 常にsを返す。
**********************************************************************/
vccAddress*CPP_MODEL_IMPLEMENTATTON::memset (vccAddress* s, int c, size_t n,
vccInstance* inst)
{
if(n == 0)
return s;
Init();
vccAddress* to = s;
unsigned remTrans = n;
theBegin:
if(remTrans == 0)goto theEnd;
{
memAccess.reference(*to, bytesPerWord_, rwWrite,inst,true);
}
remTrans−−;
goto theBigin;
theEnd:
return s;
}
図5に示すように、通信パターンの具体例が、2つの動作ブロック300、310間に示されており、この通信パターンは、適切なアーキテクチャコンポーネント、この具体例ではRTOS320にマッピングされる。2つの動作ブロック300、310間の通信の弧(communication−arc)は、適切なパターン、この具体例ではセマフォ(Semaphore)パターン330にマッピングされる。セマフォパターン330は、通信パターン330の各端部にそれぞれ設けられた一対のパターンサービス340(「送信側(sender)」)、350(「受信側(receiver)」)とから構成される通信プロトコルを実行する。「送信側」パターンサービス340は、ミューテックス(mutex)のロック(locking)、データの書込、ミューテックスのロック解除(unlocking)、送信先動作に対するトリガ(trigger)の送信をモデル化する。「受信側」パターンサービス350は、ミューテックスのロック、データの読出し、ミューテックスのロック解除をモデル化する。
【0046】
パターンサービス340、350は、アーキテクチャコンポーネントに直接マッピングしないのが好ましい。代わりに、各パターンサービス340、350のマッピングは、アーキテクチャブロックに対する動作ブロックのマッピングにより暗示される。すなわち、パターンサービス340、350は、動作の一部を実行又は改良するので、動作ブロック300又は動作ブロック310を実行するするアーキテクチャコンポーネントのリソース又はサービスを使用する。パターンサービスは、システムのアーキテクチャコンポーネントのサービスを用いる。この具体例において、ミューテックスのロック及びロック解除は、RTOS上のサービスによりサポートされる。
【0047】
パターンサービスの実行は、アーキテクチャ関与子(architectural participants)を介して、データを1つの動作から別の動作に伝搬する、ある種のシーケンスのイベントをもたらす。第1の動作は、データをその出力ポートに「通知(Post)」し、第2の動作は、入力ポート上の「イネーブル(Enabled)」及び「値(Value)」の機能を用いて、この新たに送信されてきたデータをアクセスする。パターンは、「送信側」パターンと「受信側」パターンの組合せであり、通信の両側を実行する。「送信側」パターンサービスは、「通知」機能をインプリメントし、「受信側」パターンサービスは、「イネーブル」及び「値」の機能を実行する。パターンサービスは、パターン自体からは独立したサービスとして、他のパターンでも再利用できるようにするのが好ましい。パターンサービスのそれぞれは、プロトコルを完全には実行せず、代わりに、アーキテクチャによってサポートされているサービスを呼び出す。各通信プロトコルは層のスタック(stack)である。最上位層は、既存のリソースの観点からは、プロトコルの機能を実行するのに必要な動作を特定する。より下位の層は、リソース(例えば、一般的な(generic)ソフトウェア機能のライブラリ、CPU、バス)のタイミング動作をエミュレートする。
【0048】
図6に示すように、第1の動作ブロック400と第2の動作ブロック410を用いて、ユーザが定義した動作を実行する。第1の動作ブロック400をRTOSアーキテクチャコンポーネント450にマッピングし、第2の動作ブロック410をASICアーキテクチャコンポーネント460にマッピングする。そして、第1の動作ブロック400と第2の動作ブロック間の通信パターン420をレジスタマッピングされた(register mapped)通信パターンとなるように決定し、これにより、送信側パターンサービス430と受信側パターンサービス440を共にレジスタマッピングされたパターンサービスとする。RTOSアーキテクチャコンポーネント450は、CPUアーキテクチャコンポーネント470を制御するソフトウェアコンポーネントであるので、RTOSアーキテクチャコンポーネント450とASICアーキテクチャコンポーネント460間の通信を容易にするために、CPUアーキテクチャコンポーネント470とバスアーキテクチャコンポーネント480も呼び出される。
【0049】
通信パターンを開始するために、第1の動作ブロック400の内部から通知機能(post function)490が呼び出される。通知機能490は、通信パターン420の送信側パターンサービス500に入力を提供する。レジスタマッピングされた送信側は、ソフトウェアからASIC(これに第1の動作ブロック410がマッピングされる)上のレジスタへのデータ転送をモデル化する。この具体例では、第1の動作ブロック410がASICアーキテクチャコンポーネント460にマッピングされる。送信側パターンサービス430は、RTOSアーキテクチャコンポーネント450の「標準Cライブラリ」サービスにより提供される「memcpy」機能を用いて、データ転送を実行する。各サービスは、サービス宣言のセットを用いることを宣言し、各サービスのサービス定義は、接続されたアーキテクチャコンポーネント上に存在しなければならない。送信側パターンサービス430は、送信元動作(400)がマッピングされるアーキテクチャコンポーネントにより提供されるサービスを使用することができる。この場合、標準CライブラリはRTOSアーキテクチャコンポーネント450上にある。RTOSアーキテクチャコンポーネント450は、標準Cライブラリサービスの実行を提供し、この場合、メモリアクセスインタフェースを使用してデータをASICアーキテクチャコンポーネント460上のレジスタに書き込む。RTOSアーキテクチャコンポーネント450は、メモリアクセスサービスが割り当てられたプロセッサから提供されるサービスを利用できるので、メモリアクセスサービスの定義は、CPUアーキテクチャコンポーネント470上にある。CPUのメモリアクセスサービス540は、CPUのポート上にあるバスアダプタモデル550を使用する。バスアダプタモデル550は、バスアーキテクチャコンポーネント480上のバス裁定サービス(bus arbiter service)を使用し、一旦バスの所有権が許可されると、ASICアーキテクチャコンポーネント460のポート上の、ASICのバス通信をモデル化したサービスであるスレーブアダプタサービス560を使用する。スレーブイブアダプタサービス560は、ASICアーキテクチャコンポーネント460上のスレーブサービスを使用してデータをローカルレジスタに記憶する。レジスタマッピングされた受信側580は、通信パターンの他の側から、値及びイネーブル機能590を実行し、スレーブサービスを使用して書き込まれたデータを検索し、これにより、通信パターンプロトコルを完了する。
【0050】
この方法の利点として、通信パターンは、モジュールサービス、その再利用可能なサービスを提供する各コンポーネントのアーキテクチャトポロジーに基づくものである。この方法は、システムレベルにおけるアーキテクチャ探査(architectural exploration)のプロセスを提供する。
【0051】
接続されたアーキテクチャコンポーネント上のパターンサービスの検索(searching)は、コンポーネント間で単一の通信しかない場合には良好に働く。バスは、通信の多数対に対する媒体であるので、本質的にこの原理に反する。図7に示すように、動作600をRTOS620にマッピングし、動作610をASIC660にマッピングする。通信パターンは、RTOS620、CPU630、バス640及びASIC660上のサービスを利用する。CPU630上の汎用バスアダプタ635は、このメッセージはASIC2(660)上のスレーブアダプタ665に送り、他のメッセージはバス640上の他のスレーブ装置(ASIC650)に送るべきであるという区別を行う必要がある。各スレーブ装置は、同じスレーブアダプタをサポートしているので、この区別は、整合サービス定義(matching service definition)に対する検索に頼ることはできない。記号アドレス(symbolic address)を各バストランザクションと一緒に送って、正しいスレーブアダプタサービス向けであることを示すのが好ましい。この方法において、記号アドレスは、アーキテクチャのインスタンス名(architecture instance name)と、オフセットとからなる。各スレーブアダプタは、そのスレーブアダプタサービスをインスタンス名によりバスレジストリに登録する。通信パターンがメッセージを送るとき、メッセージのアドレスを供給して、このアドレスをレジストリで直ちに参照することにより、適切なスレーブアダプタを見つけることができる。パターンの送信側及び受信側のサービスは、パターンプロトコルを完了するのに必要なメッセージシーケンスを、例えば、
Path:<pathName><sourceArchInst><destArchInst><offsetparam><dataType>
のような経路仕様(path specification)として宣言しなければならない。
【0052】
各メッセージの送信元及び送信先は、動作がマッピングされるアーキテクチャコンポーネントであることもある。例えばレジスタマッピングされたパターンにおいて、送信側はRTOS620からASIC2(660)にデータを送り、これらは、beh1とbeh2がマッピングされたアーキテクチャコンポーネントである。他の具体例では、第3のアーキテクチャコンポーネントがメッセージシーケンスに関与(participate)する。例えば、パターンがレジスタマッピングされた共有メモリにおいて、データは、先ずRAMコンポーネントに書き込まれる。上述のsourceArchInst及びdestArchInstは、キーワードvccArchOfSrcBehav又はvccArchOfDestBehavを参照することができ、あるいはパターンサービスのパラメータを参照することができ、更にこのパラメータをパターンインスタンスにエクスポートして、エンドユーザがマッピングプロセス中に特定できるようにすることがことが好ましい。後者の具体例では、エンドユーザは、共有メモリパターンのそれぞれの使用(usage)において、アーキテクチャ図(architecture diagram)におけるメモリセットからメモリ関与子(memory participant)を選択する。上述のdataTypeは、メッセージがネット上にデータを送信するか又は単なるトリガであるかを特定する。この情報は、転送されるデータサイズを正確に表しているので、これを用いてバスに対する性能の影響を求める。この方法の利点は、異なるアーキテクチャに亘ってパターンを再利用できる点である。
【0053】
図8に示すように、動作はRTOS720とASIC2(780)にマッピングされる。この具体例では、メッセージは、RTOS720からBUS1(740)を通り、バスブリッジ1(760)を介し、バス2(770)を経て最後にASIC2(780)に送られる。バスブリッジ760は、バス1(740)からバス2(770)へのバストランザクションの変換を容易にする。バスブリッジ760は、バス2上の全てのスレーブサービスをバス1(740)のレジストリに登録するのが好ましい。アーキテクチャインスタンス(アーキテクチャ図に亘って固有である)を用いることにより、バス2(770)上のスレーブサービスがバス1(740)上のスレーブサービスと競合しないことを保証する。この結果、記号アドレスはインスタンス名「ASIC2」を参照し、バス1(740)のレジストリには、バスブリッジ760のスレーブアダプタが登録されていることになる。また、バスブリッジ760は、第1のポート上にスレーブアダプタ765を、第2のポート上にマスタアダプタ775を有することが好ましい。バス1に接続されたスレーブアダプタ765がバス要求を受信すると、第2のポート上のバスマスタアダプタ775は、この要求をバス2(770)を介して再送信し、これにより、ASIC2(780)はこの転送を処理(handle)する。バスブリッジは、2つ以上のポートを有することができ、各スレーブポートは、それがデータを再送信するマスタポートを、ポート属性(port attribute)によって識別できることが好ましい。この方法の利点は、アーキテクチャ図をバスとブリッジの周りで容易に拡張又は再構成でき、システム全体の性能を最適化できる点である。
【0054】
何らかのキーを用いて検索することができるパターンのデータベースであるプロトコルレジストリを用いることにより、動作コンポーネントを一旦マッピングした後、システム設計者に必要なことは、パターンのリストから選択することだけである。本明細書で説明する好ましいパターンは例示の目的のみであり、如何なる意味においても制限を意図していない。
【0055】
通信のパターンは、送信側/受信側に対して選択した実現がASIC(以下、HWという)であるか、個別のSWタスク(以下、SWタスク間という)であるか、同じSWタスク内部(以下、SWタスク内という)であるか、通信がイベントの存在(以下、トリガという)の送信のみを扱うか又はデータも含むかに依存して、基本的なグループに分類される。各グループについて可能なパターンの選択肢がある。
1)HW−HW: (a)直接接続、(b)レジスタマッピングされた、(c)共有メモリ
2)HW−HWトリガ: (a)直接接続、(b)レジスタマッピングされた
3)HW−SW: (a)割込レジスタマッピングされた、(b)割込共有メモリ、(c)ポーリングレジスタマッピングされた、(d)ポーリング共有メモリ
4)HW−SWトリガ: (a)割込、(b)ポーリングレジスタマッピングされた、(c)ポーリング共有メモリ
5)SW−HW: (a)レジスタマッピングされた、(b)共有メモリ
6)SW−HWトリガ: (a)レジスタマッピングされた
7)SW−SWタスク間: (a)保護なし、(b)セマフォ保護、(c)割込不可保護
8)SW−SWタスク間トリガ: (a)保護なし
9)SW−SWタスク内: (a)保護なし
10)SW−SWタスク内トリガ:(a)保護なし
11)SW−>メモリ: (a)SW直接メモリアクセス、(b)SWDMAアクセス
12)HW−>メモリ: (a)HWDMA(b)HWDMAアクセス
13)SW−>タイマ: (a)SW仮想タイマ
14)HW−>タイマ: (a)ASIC内部タイマ
パターンを分類する利点は、通信の弧を、弧のデータタイプのサイズのみならず、動作コンポーネントのマッピングに基づいて、各グループにカテゴリー化できる点である。ユーザが基本グループの各々についてデフォルトパターンを一旦選択すると、マッピングされていない弧は自動的にこれらのデフォルトに割り当てられるので、マッピングプロセスの時間を節約することができる。ユーザは、常に明示的にマッピングすることができ、又はマッピングを異なる選択に変更することができるが、デフォルトに大部分の時間がかかるはずである。
【0056】
図9に示すように、第1の動作ブロック800は、通信パターン820を用いてイベントを第2の動作ブロック810に送る。通信パターン820は、送信側にサービスP1、・・・、Pnを、受信側にサービスQ1、・・・、Qnを有する。第1の動作ブロック800における出力ポート830と第2の動作ブロック810における入力ポート840は、通信パターン820を開始し、終了する。通信パターン820の制御の流れは以下の通りである。第1の動作ブロック800の遅延モデルが動作ブロック800を呼び出し、動作ブロック800がP1の機能によって実行される通知機能を呼び出す。P1は、P2の幾つかの機能を呼び出し、P2は、P3の幾つかの機能を呼び出し、以下同様である。通知の実行の終わりに、入力変更機能への呼出があり、この入力変更機能が所要の遅延でイベントを第2の動作ブロック810に通知する。その後、この通知により、第2の動作ブロック810の遅延モデルが起動され、この遅延モデルは、先ず、1番目の受信側パターンサービスQ1を呼び出してQ1のインスタンス内の値及びイベントのバッファを設定し、そして、Q1の幾つかの機能を順次呼び出すイネーブル機能を呼び出す、第2の動作ブロック810の適切なサービスを呼び出す。Q1は、Q2の幾つかの機能を呼び出し、Q2は、Q3の幾つかの機能を呼び出し、以下同様にして、最後に、Enabled()が結果を返す。この処理は、値及びオペレーションが追加されると、繰り返される。本明細書で述べる遅延モデルとは、スケジューリング、バッファリング等のための動作を実行するアーキテクチャコンポーネントでの遅延のことである。
【0057】
図9に示すように、通信パターン820は、ネットではなく、ポート、例えばポート830、840に接続(bound to)されるのが好ましい。多数のファンアウトを有するネットの場合には、各アーキテクチャコンポーネントからのネットは、全てのファンアウトに対して同じ通信パターンを使用するのが好ましいが、各送信先ポートを異なる通信パターンに関連付けてもよい。異なる通信パターンを用いるN個のファンアウトを有する通信ネットにおいては、動作ブロック内の通知機能に対する呼出は、各通信パターンのための通知機能の種々の実行に対するN回の呼出のシーケンスとして実行される。
【0058】
これは、好ましくは、送信側の動作ブロックと送信側の1番目のパターンサービス(top pattern service)との間にコードの中間層を必要とする。すなわち、動作モデルから呼び出される通知機能の実行は、ファンアウト上でループとなり、各ファンアウトについて、そのファンアウトに関連するパターンによって使用されるサービスにより提供される通知機能の実行を呼び出す。シミュレーションにおいて、C++動作ブロックは、サービス内の通知機能の実行を直接呼び出す。モデルから通知を受信したコード層がパターンにあり、コード層を各パターンに分解(unravel)する。この分解は、特定のサービスの内部で実行され、この特定のサービスは、実際のサービスのリストを、呼出を必要とするファンアウト当たり1サービスずつ受信する。このディスパッチャサービス(dispatcher service)は、ネットの全てのファンアウトで1つの通信パターンが使用する場合には、停止(dropped)される。
【0059】
再び図9に示すように、シミュレーションにおける通知機能830から値機能840へのデータ伝送は、入力変更機能の呼出によって自動的に実行されるので、本質的に安全である。転送のより詳細なシミュレーションは、タイミングの側面を取り扱うのみであり、コンテンツではない。
【0060】
以上、本発明の実施例、応用例及び効果について、図示し、説明したが、本明細書において説明及び図示した本発明の趣旨から逸脱することなく、多数の実施例、応用例及び効果が可能である。本発明は、特許請求の範囲の趣旨に基づいてのみ限定されるべきであり、上述した実施の形態、発明の詳細な説明、図面では制限されるものではない。例えば、上述したパターンは動作ポート間の通信を表す。動作は動作メモリやタイマと通信してもよい。更に、パターンはアーキテクチャプラットホームに基づき、これらの通信の性能への影響をモデル化するのにも利用できる。
【図面の簡単な説明】
【図1】
本発明の好ましい具体例に基づく設計プロセスを示すフローチャートである。
【図2】
本発明の好ましい具体例に基づく動作及び性能モデルを生成する方法を示すフローチャートである。
【図3】
本発明の好ましい具体例に基づくマッピングプロセイジャを示すブロック図である。
【図4】
本発明の好ましい具体例に基づく例示的アーキテクチャコンポーネントを示すブロック図である。
【図5】
本発明の好ましい具体例に基づく通信パターンを示すブロック図である。
【図6】
本発明の好ましい具体例に基づく、対応するパターン及びアーキテクチャコンポーネントサービスを有する通信パターンを示すブロック図である。
【図7】
本発明の好ましい具体例に基づく、バスを介した通信サービス間の相互作用を示すブロック図である。
【図8】
本発明の好ましい具体例に基づく、バスブリッジを介した通信サービス間の相互作用を示すブロック図である。
【図9】
本発明の好ましい具体例に基づく、サービスの性能モデル間の相互作用を示すブロック図である。
Claims (28)
- ハードウェア及びソフトウェアの要素を備えた電子システムをモデル化する電子システムモデル化方法において、
モデル化される電子システムによって実行される動作に対応した複数の動作を収集するステップと、
アーキテクチャプラットホーム内部に含まれる複数のハードウェア及びソフトウェアのアーキテクチャコンポーネントを収集するステップと、
上記収集された複数の動作の各々を、動作を実行する選択されたアーキテクチャコンポーネントにマッピングするステップと、
上記動作を実行するために、アーキテクチャコンポーネント間で通信を要求する上記アーキテクチャコンポーネント間の通信パターンを認識して収集するステップと、
上記動作間の各通信インスタンスを上記収集されたパターンのインスタンスにマッピングするステップとを有する電子システムモデル化方法。 - 上記各アーキテクチャコンポーネントは、上記アーキテクチャコンポーネントの特定の機能にそれぞれ対応した複数のサービスを有することを特徴とする請求項1記載の電子システムモデル化方法。
- 上記各サービスは、サービスのインタフェース及び本体に対応した宣言及び定義を有することを特徴とする請求項2記載の電子システムモデル化方法。
- 上記各サービス定義は、他のサービス宣言を使用することを特徴とする請求項3記載の電子システムモデル化方法。
- 上記アーキテクチャプラットホームを収集するステップは、上記複数のアーキテクチャコンポーネントのそれぞれに対して、性能モデルを選択するステップを有し、
1つのアーキテクチャコンポーネントのサービスは、上記プラットホームにトポロジー的に接続されている他のサービスを使用することを特徴とする請求項1記載の電子システムモデル化方法。 - 更に、上記ハードウェア又はソフトウェアの動作として収集された複数の動作の各動作を分割するステップを有する請求項1記載の電子システムモデル化方法。
- 上記通信パターンを収集するステップは、動作がマッピングされたアーキテクチャコンポーネントによってサポートされる他のサービス宣言をそれぞれ使用する複数のサービスを有することを特徴とする請求項1記載の電子システムモデル化方法。
- 更に、上記複数の動作の少なくとも1つの動作を変更し、又は他の動作と前にマッピングされたアーキテクチャコンポーネントとの関連付けを維持しながら、少なくとも1つの動作を新しい適切なアーキテクチャコンポーネントに関連付けるステップを有する請求項1記載の電子システムモデル化方法。
- 更に、上記複数の動作の少なくとも1つの動作を新しいアーキテクチャコンポーネントに関連付けるとともに、前に収集された他の通信パターンを維持しながら、1つ以上の新しい通信パターンを認識して収集するステップを有する請求項1記載の電子システムモデル化方法。
- 更に、前に収集された他の通信パターンを維持しながら、1つ以上のパターンマッピングの選択を変更するステップを有する請求項1記載の電子システムモデル化方法。
- 更に、他のアーキテクチャコンポーネント間の関連付け及び変更されたコンポーネントとの間の通信パターンを維持しながら、上記プラットホーム内の複数のアーキテクチャコンポーネントの少なくとも1つのアーキテクチャコンポーネントを、コンポーネントの交換、パラメータ設定に対する調整又は性能モデルの異なる選択により、変更するステップを有する請求項1記載の電子システムモデル化方法。
- 更に、前に収集された動作マッピング及び通信パターンを維持しながら、上記アーキテクチャに含まれる複数のアーキテクチャコンポーネントを変更するステップを有する請求項1記載の電子システムモデル化方法。
- 更に、他のアーキテクチャコンポーネントにおけるサービスの再利用、他のアーキテクチャプラットホームにおけるアーキテクチャコンポーネントの再利用、他の電子システムにおけるアーキテクチャプラットホームの再利用から成るグループの中の少なくとも1つを行うステップを有する請求項1記載の電子システムモデル化方法。
- 更に、アーキテクチャプラットホームを変更して、他の電子システムにおけるパターンを再利用するステップを有する請求項1記載の電子システムモデル化方法。
- 更に、上記複数の動作を実行するときに、上記マッピングされた動作のアーキテクチャサービス及びオプションとして選択されたパターンサービスを用いて、上記電子システムの動作をシミュレーションするステップを有する請求項1記載の電子システムモデル化方法。
- 上記アーキテクチャサービスの利用は、追加的な設計の決定がなされて性能モデルがより正確になされることにより、連続して改良されることを特徴とする請求項15記載の電子システムモデル化方法。
- ハードウェア及びソフトウェアのコンポーネントを備えた電子システムの動作モデルを生成する動作モデル生成システムにおいて、
上記電子システムの一部として実行可能なコンポーネントにそれぞれ対応した複数のアーキテクチャコンポーネントと、
ユーザが定めた動作を実行するために、上記アーキテクチャコンポーネント間で通信を要求するアーキテクチャコンポーネント間において、動作を実行するアーキテクチャコンポーネント間で通信するのに必要とされる介在アーキテクチャコンポーネント間の通信を含む通信パターンを生成する手段とを備える動作モデル生成システム。 - 上記各アーキテクチャコンポーネントは、該アーキテクチャコンポーネントの特定の機能にそれぞれ対応した複数のサービスを有することを特徴とする請求項17記載の動作モデル生成システム。
- 上記アーキテクチャコンポーネント間の通信パターンを生成する手段は、上記アーキテクチャコンポーネント間の通信を実行するのに必要な複数のサービスの中から、適切なサービスを選択する手段を有することを特徴とする請求項17記載の動作モデル生成システム。
- 更に、上記複数の動作の各動作を適切なアーキテクチャコンポーネントに関連付ける手段を備える請求項17記載の動作モデル生成システム。
- 上記複数の動作の各動作を関連付ける手段は、予め定義されたアーキテクチャコンポーネントモデルのグループの中の1つであるアーキテクチャコンポーネントモデルを選択する手段を有することを特徴とする請求項20記載の動作モデル生成システム。
- 更に、上記電子システムによって実行される複数の動作の各動作をハードウェア又はソフトウェアの動作に分類する手段を備える請求項17記載の動作モデル生成システム。
- 更に、変更されていない他の動作と前にマッピングされたアーキテクチャコンポーネントとの関連付けを維持しながら、少なくとも1つの変更された動作を新しい適切なアーキテクチャコンポーネントに関連付ける手段を備える請求項17記載の動作モデル生成システム。
- 更に、上記複数の動作の少なくとも1つの動作を新しいアーキテクチャコンポーネントに関連付ける手段を備える請求項17記載の動作モデル生成システム。
- 更に、前に生成された他の通信パターンを維持しながら、上記新しいアーキテクチャコンポーネントと他のアーキテクチャコンポーネントとの間に1つ以上の新しい通信パターンを生成する手段を備える請求項24記載の動作モデル生成システム。
- 更に 上記複数の動作を実行するときに、上記生成された通信パターンを用いて、上記電子システムの動作をシミュレーションするシミュレーションアプリケーションを備える請求項17記載の動作モデル生成システム。
- ハードウェア及びソフトウェアのコンポーネントを備えた電子システムの動作間における通信の性能レベルモデルにおいて、
1つ以上の送信先動作に転送されるデータを供給する第1の動作用のアプリケーションプログラミングインタフェースと、
動作通信がマッピングされるパターンによってサポートされる複数のサービスの中に含まれ、通信プロトコルの性能をモデル化する上記アプリケーションプログラミングインタフェースを実行する第1のサービスと、
上記第1の動作がマッピングされるアーキテクチャコンポーネントの記号によりサポートされる複数のサービス宣言の中に含まれ、上記第1のサービスにより使用されて、アーキテクチャプラットホームの性能をモデル化する1つ以上のアプリケーションプログラミングインタフェースと、
上記アーキテクチャコンポーネントの性能モデルにより特定される複数のサービス定義の中に含まれるサービス定義によって、上記アーキテクチャコンポーネントの記号においてサポートされるサービス宣言と、
第2のアーキテクチャコンポーネントによって実行可能な機能に対応する複数の第2のサービスの1つであり、上記電子システムの第1のコンポーネントにトポロジー的に接続され、該第2のアーキテクチャコンポーネントによって実行される機能を表す第2のアプリケーションインタフェースと、
送信元動作から送信先動作への通信が完成するように、上記電子システムの性能レベルモデルの出力情報を受信する送信先動作用の入力アプリケーションインタフェースとを備える性能レベルモデル。 - 更に、第3のアーキテクチャコンポーネントによって実行される機能に対応する複数のサービスの1つであり、上記電子システムの該第3のアーキテクチャコンポーネントによって実行される機能を表す第3のサービスと、
トポロジー的に接続された上記第1及び第2のアーキテクチャコンポーネント間における通信動作のモデルである第1のアプリケーションプログラミングインタフェースと、トポロジー的に接続された上記第2及び第3のアーキテクチャコンポーネント間における通信動作のモデルである第2のアプリケーションプログラミングインタフェースとを含む少なくとも1つのアプリケーションプログラミングインタフェースとを備える請求項27記載の性能レベルモデル。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/670,911 US7069204B1 (en) | 2000-09-28 | 2000-09-28 | Method and system for performance level modeling and simulation of electronic systems having both hardware and software elements |
PCT/US2001/030401 WO2002027565A1 (en) | 2000-09-28 | 2001-09-28 | Performance level modeling and simulation of electronic systems having both hardware and software |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004510258A true JP2004510258A (ja) | 2004-04-02 |
Family
ID=24692391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002531279A Pending JP2004510258A (ja) | 2000-09-28 | 2001-09-28 | ハードウェアとソフトウェアを備えた電子システムの性能レベルモデリング及びシミュレーション |
Country Status (5)
Country | Link |
---|---|
US (1) | US7069204B1 (ja) |
EP (1) | EP1323081A4 (ja) |
JP (1) | JP2004510258A (ja) |
AU (1) | AU2001294858A1 (ja) |
WO (1) | WO2002027565A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015084297A1 (en) * | 2013-12-02 | 2015-06-11 | Intel Corporation | Methods and apparatus to optimize platform simulation resource consumption |
WO2019171464A1 (ja) * | 2018-03-06 | 2019-09-12 | 三菱電機株式会社 | 設計支援装置および設計支援プログラム |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6886038B1 (en) * | 2000-10-24 | 2005-04-26 | Microsoft Corporation | System and method for restricting data transfers and managing software components of distributed computers |
US7606898B1 (en) | 2000-10-24 | 2009-10-20 | Microsoft Corporation | System and method for distributed management of shared computers |
GB0121990D0 (en) * | 2001-09-11 | 2001-10-31 | Beach Solutions Ltd | Emulation system & method |
US7415270B2 (en) | 2002-02-15 | 2008-08-19 | Telefonaktiebolaget L M Ericsson (Publ) | Middleware services layer for platform system for mobile terminals |
US7363033B2 (en) | 2002-02-15 | 2008-04-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Method of and system for testing equipment during manufacturing |
US8079015B2 (en) | 2002-02-15 | 2011-12-13 | Telefonaktiebolaget L M Ericsson (Publ) | Layered architecture for mobile terminals |
US7536181B2 (en) | 2002-02-15 | 2009-05-19 | Telefonaktiebolaget L M Ericsson (Publ) | Platform system for mobile terminals |
US7584471B2 (en) | 2002-09-23 | 2009-09-01 | Telefonaktiebolaget L M Ericsson (Publ) | Plug-in model |
US7350211B2 (en) | 2002-09-23 | 2008-03-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Middleware application environment |
US7149510B2 (en) | 2002-09-23 | 2006-12-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Security access manager in middleware |
US8122106B2 (en) * | 2003-03-06 | 2012-02-21 | Microsoft Corporation | Integrating design, deployment, and management phases for systems |
US7689676B2 (en) | 2003-03-06 | 2010-03-30 | Microsoft Corporation | Model-based policy application |
US7890543B2 (en) * | 2003-03-06 | 2011-02-15 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
DE10316292A1 (de) * | 2003-04-09 | 2004-11-11 | Siemens Ag | Verfahren und Anordnung zur Performanzvorhersage eines informationstechnischen Systems |
US20050171753A1 (en) * | 2004-01-30 | 2005-08-04 | Rosing Tajana S. | Arrangement and method of estimating and optimizing energy consumption of a system including I/O devices |
US7778422B2 (en) * | 2004-02-27 | 2010-08-17 | Microsoft Corporation | Security associations for devices |
US20050246529A1 (en) * | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Isolated persistent identity storage for authentication of computing devies |
FR2882169B1 (fr) * | 2005-02-14 | 2007-05-25 | Cofluent Design Sarl | Procede de simulation d'un systeme complexe incluant une hierarchie d'ordonnanceurs, produit programme d'ordinateur et moyen de stockage correspondants |
US8713025B2 (en) | 2005-03-31 | 2014-04-29 | Square Halt Solutions, Limited Liability Company | Complete context search system |
US7802144B2 (en) * | 2005-04-15 | 2010-09-21 | Microsoft Corporation | Model-based system monitoring |
US7797147B2 (en) * | 2005-04-15 | 2010-09-14 | Microsoft Corporation | Model-based system monitoring |
US7784046B2 (en) * | 2005-04-15 | 2010-08-24 | Nec Laboratories America, Inc. | Automatically boosting the software content of system LSI designs |
US7778815B2 (en) * | 2005-05-26 | 2010-08-17 | The Regents Of The University Of California | Method for the fast exploration of bus-based communication architectures at the cycle-count-accurate-at-transaction-boundaries (CCATB) abstraction |
US8549513B2 (en) | 2005-06-29 | 2013-10-01 | Microsoft Corporation | Model-based virtual system provisioning |
US7941309B2 (en) | 2005-11-02 | 2011-05-10 | Microsoft Corporation | Modeling IT operations/policies |
US7779383B2 (en) * | 2005-12-01 | 2010-08-17 | Sap Ag | Composition model and composition validation algorithm for ubiquitous computing applications |
US8726232B1 (en) * | 2005-12-02 | 2014-05-13 | The Math Works, Inc. | Identification of patterns in modeling environments |
US8443073B2 (en) * | 2006-10-02 | 2013-05-14 | Sap Ag | Automated performance prediction for service-oriented architectures |
FR2911980A1 (fr) | 2007-01-30 | 2008-08-01 | Thales Sa | Procede de conception d'un systeme comprenant des composants materiels et logiciels |
JP5034955B2 (ja) * | 2008-01-08 | 2012-09-26 | 富士通株式会社 | 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム |
US8661404B2 (en) * | 2009-07-15 | 2014-02-25 | Infosys Limited | Method for improving execution efficiency of a software package customization |
AT508852B1 (de) | 2009-09-18 | 2015-11-15 | Kompetenzzentrum Das Virtuelle Fahrzeug Forschungsgmbh Vif | Verfahren zum umschalten von heterogenen simulationsmodellen zur laufzeit |
US9846627B2 (en) * | 2015-02-13 | 2017-12-19 | North Carolina State University | Systems and methods for modeling memory access behavior and memory traffic timing behavior |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0772140A1 (en) * | 1995-10-23 | 1997-05-07 | Interuniversitair Micro-Elektronica Centrum Vzw | A design environment and a design method for hardware/software co-design |
JP2000293396A (ja) * | 1999-04-05 | 2000-10-20 | Toshiba Corp | システム性能見積もり方法及びシステム性能見積もり装置 |
JP2001044286A (ja) * | 1999-07-30 | 2001-02-16 | Matsushita Electric Ind Co Ltd | バス構造,データベース,インターフェースの設計方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544067A (en) * | 1990-04-06 | 1996-08-06 | Lsi Logic Corporation | Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation |
US6132109A (en) * | 1994-04-12 | 2000-10-17 | Synopsys, Inc. | Architecture and methods for a hardware description language source level debugging system |
US6026219A (en) | 1995-05-12 | 2000-02-15 | Synopsys, Inc. | Behavioral synthesis links to logic synthesis |
US5870588A (en) | 1995-10-23 | 1999-02-09 | Interuniversitair Micro-Elektronica Centrum(Imec Vzw) | Design environment and a design method for hardware/software co-design |
US6205407B1 (en) * | 1998-02-26 | 2001-03-20 | Integrated Measurement Systems, Inc. | System and method for generating test program code simultaneously with data produced by ATPG or simulation pattern capture program |
US6052524A (en) * | 1998-05-14 | 2000-04-18 | Software Development Systems, Inc. | System and method for simulation of integrated hardware and software components |
GB9828381D0 (en) * | 1998-12-22 | 1999-02-17 | Isis Innovation | Hardware/software codesign system |
GB9828794D0 (en) * | 1998-12-29 | 1999-02-17 | Sgs Thomson Microelectronics | Generation of a system model |
-
2000
- 2000-09-28 US US09/670,911 patent/US7069204B1/en not_active Expired - Fee Related
-
2001
- 2001-09-28 AU AU2001294858A patent/AU2001294858A1/en not_active Abandoned
- 2001-09-28 WO PCT/US2001/030401 patent/WO2002027565A1/en active Application Filing
- 2001-09-28 EP EP01975540A patent/EP1323081A4/en not_active Ceased
- 2001-09-28 JP JP2002531279A patent/JP2004510258A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0772140A1 (en) * | 1995-10-23 | 1997-05-07 | Interuniversitair Micro-Elektronica Centrum Vzw | A design environment and a design method for hardware/software co-design |
JP2000293396A (ja) * | 1999-04-05 | 2000-10-20 | Toshiba Corp | システム性能見積もり方法及びシステム性能見積もり装置 |
JP2001044286A (ja) * | 1999-07-30 | 2001-02-16 | Matsushita Electric Ind Co Ltd | バス構造,データベース,インターフェースの設計方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015084297A1 (en) * | 2013-12-02 | 2015-06-11 | Intel Corporation | Methods and apparatus to optimize platform simulation resource consumption |
WO2019171464A1 (ja) * | 2018-03-06 | 2019-09-12 | 三菱電機株式会社 | 設計支援装置および設計支援プログラム |
JPWO2019171464A1 (ja) * | 2018-03-06 | 2020-05-28 | 三菱電機株式会社 | 設計支援装置および設計支援プログラム |
Also Published As
Publication number | Publication date |
---|---|
EP1323081A4 (en) | 2004-10-06 |
EP1323081A1 (en) | 2003-07-02 |
WO2002027565A9 (en) | 2003-03-27 |
US7069204B1 (en) | 2006-06-27 |
AU2001294858A1 (en) | 2002-04-08 |
WO2002027565A1 (en) | 2002-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7069204B1 (en) | Method and system for performance level modeling and simulation of electronic systems having both hardware and software elements | |
De Micheli et al. | Readings in hardware/software co-design | |
Rashinkar et al. | System-on-a-chip Verification: Methodology and Techniques | |
Jantsch et al. | Models of computation and languages for embedded system design | |
US8639487B1 (en) | Method for multiple processor system-on-a-chip hardware and software cogeneration | |
Salah | A UVM-based smart functional verification platform: Concepts, pros, cons, and opportunities | |
EP0838772A2 (en) | Method and apparatus for design verification using emulation and simulation | |
Herber et al. | A HW/SW co-verification framework for SystemC | |
Krause et al. | Target software generation: an approach for automatic mapping of SystemC specifications onto real-time operating systems | |
Balandin et al. | Co-Modeling of Embedded Networks Using SystemC and SDL | |
Dhanwada et al. | Transaction-level modeling for architectural and power analysis of PowerPC and CoreConnect-based systems | |
Calvez et al. | Uninterpreted co-simulation for performance evaluation of hw/sw systems | |
O'Nils | Specification, synthesis and validation of hardware/software interfaces | |
Arts et al. | Global scheduler properties derived from local restrictions | |
Uchevler et al. | Modelling and Assertion‐Based Verification of Run‐Time Reconfigurable Designs Using Functional Programming Abstractions | |
Najafiuchevler et al. | Modelling and Assertion-Based Verification of Run-Time Reconfigurable Designs Using Functional Programming Abstractions | |
Lund | Design and Application of a Co-Simulation Framework for Chisel | |
Chusov et al. | Configurable test environment for RTL simulation and performance evaluation of network on chip as part of SoC | |
Jantsch et al. | Models of computation in the design process | |
Zimmermann et al. | Integration of high-level synthesis in ESL platform modeling by automated generation of protocol adapters | |
El Fentis | Methodologies for SOC verification | |
Kragseth | Efficient Verification with Portable Stimulus | |
Wieferink et al. | Retargetable processor system integration into multi-processor system-on-chip platforms | |
US20020144216A1 (en) | Method for rapid, reusable system on a chip functional verification | |
Dreier et al. | Partitioning and fpga-based co-simulation of statecharts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20080326 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20080326 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080327 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080702 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100308 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100913 |