JP4177099B2 - システムレベルのシミュレーションにおけるスケジューリングの階層仕様方法 - Google Patents
システムレベルのシミュレーションにおけるスケジューリングの階層仕様方法 Download PDFInfo
- Publication number
- JP4177099B2 JP4177099B2 JP2002536656A JP2002536656A JP4177099B2 JP 4177099 B2 JP4177099 B2 JP 4177099B2 JP 2002536656 A JP2002536656 A JP 2002536656A JP 2002536656 A JP2002536656 A JP 2002536656A JP 4177099 B2 JP4177099 B2 JP 4177099B2
- Authority
- JP
- Japan
- Prior art keywords
- scheduling
- schedulable
- scheduler
- assigned
- furthermore
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
【発明の属する技術分野】
本発明は、民生用組込み(consumer embedded)システムのシステムレベルのシミュレーションにおけるスケジューリングの階層仕様とモデリングに関する。
【0002】
【従来の技術】
今日、民生用組込みシステムの設計は、製品を市場に投入するまでの期間及び製品の寿命サイクルが短くなり、また通信と演算処理(computing)を融合させたいという製品に対する要求が高まっており、劇的に変貌している。ソフトウェアは、かつては設計のほんの一部にすぎなかったが、今や支配的になり始めている。どの会社も単独では、通信と演算処理を統合した明日の製品(tomorrow's converging products)を製作するのに必要な全ての専門的知識を持っていないので、知的財産(intellectual property)を再利用しなければならない。
【0003】
本発明の出願人であるケイデンスデザインシステムズ(Candence Design Systems)から入手可能な仮想コンポーネント協調設計法(virtual component codesign methodology:以下、VCCという)は、これらの問題にシステムレベルで対応するために設計された方法である。VCCは、組込みシステム設計用の仮想コンポーネント(知的財産)の評価、選択、統合(integration)及び仕様(specification)に関するツールとライブラリのセットを組み合わせた方法である。この意味における仮想コンポーネントは、ハードウェア及びソフトウェアの動作(behavior)を含むとともに、ハードウェア及びソフトウェアのアーキテクチャも含んでいる。
【0004】
主要な3つのタスクがVCCにおける設計フローを構成している。すなわち、動作の作成(composing behavior)、アーキテクチャの取得(capturing architecture)及びアーキテクチャ上への動作のマッピング(mapping behavior onto architecture)である。VCCにおける動作は、高レベルのトークン(tokens)を渡すブロックの個々のイベントのネットワークとして表現される。VCCにおけるアーキテクチャは、ハードウェア及びソフトウェアの構造のトポロジーとして表現される。VCCにおけるマッピングは、動作をアーキテクチャ構造に割り当てることである。
【0005】
マッピングにおける割当は、どの動作ブロックをハードウェアとするか、どの動作ブロックをソフトウェアにするか、動作ブロック間の通信をどのように行うかを決定することである。多数の動作ブロックを1つのアーキテクチャリソースに割り当てることができ、共有(sharing)と呼ばれる。例えば、殆どの民生用組込みシステムにおいては、1個のマイクロプロセッサが全てのソフトウェアで共有されることはごく普通のことである。
【0006】
VCC環境は、システムが何をするかを確認する動作モデルと、システムがどのように実行されるかを確認するアーキテクチャモデルとの区別をユーザが明らかにすることができる包括的なシステムレベルの設計環境を提供する。このシステム機能とアーキテクチャとを明確に区別することにより、システム設計者は、設計サイクルの初期の段階において、異なる複数のアーキテクチャ上で動作を実行して、性能への影響(performance effects)をシミュレーションすることができる。
【0007】
VCC環境は、システム設計者が仮想コンポーネントの図形的な表現(graphical representations)を用いて、機能的及びアーキテクチャ的に作業を行う環境である。VCCの動作ダイアグラムエディタ(behavior diagram editor)では、動作ダイアグラム、すなわち互いに結線された機能モデルを集めたダイアグラムを作成することによって、システムの機能を取得することができる。
【0008】
VCC環境を用いたトップダウン方式の設計フローにおいて、設計者は、動作モデルを生成する場合には、a)未定義のブロックを置き、b)インタフェースと設計パラメータを定義し、c)このブロックのシンボル(symbol)を生成する。ユーザが、このブロックがどのように実行されるかを一旦定義すると、モデルの動作用のデフォルトのテンプレートを有するウィンドウが生成される。VCC環境を用いたボトムアップ方式の設計フローでは、設計者は、階層的な動作ダイアグラムエディタを用いて、既存の動作モデルを表す図形シンボルを作成し、そして、これらのシンボル間の相互接続を生成する。
【0009】
VCCは、多種多様なソースから機能的なIPをVCCシミュレーション環境にインポートする(import)能力を提供し、これにより、設計者は、多様なIPが混在した(heterogeneous)システムの機能を完全にシミュレーションすることができる。このシミュレーションは、実行可能な機能仕様(executable functional specification)として使用することができる。
【0010】
VCCアーキテクチャダイアグラムエディタを用いて、設計者は、システム機能がマッピングされる抽象的なターゲットアーキテクチャを取得することができる。VCC環境は、完全な協調設計環境であるので、CPU、DSP、RTOS、バス、メモリ、専用のハードウェア及びソフトウェア等のアーキテクチャの基本的な構成要素(essential architectual element)をサポートしている。これらのアーキテクチャの構成要素は、設計を短期間で評価するために、実行レベルのCやHDLに比べ、より高い抽象度でモデリングされる。
【0011】
VCCマッピングダイアグラムエディタによって、設計者は、システムの機能をターゲットアーキテクチャのプラットホームにマッピングすることができる。このマッピングは、ハードウェアとソフトウェアの切り分け(partition)の候補を定義し、システム設計を完成させるためにはカスタムハードウェアの開発が必要かどうかを見極める手助けとなる。また、設計者は、通信線(communication wires)を詳細化するのにもマッピングダイアグラムエディタを利用する。
【0012】
一旦マッピングダイアグラムが完成すると、システム設計者は、ソフトウェア評価及び性能パラメータをタイミングフリーな機能モデル内にアノテートすることによって可能(enabled)となる性能シミュレーションを用いて、マッピングした設計を評価することができる。
【0013】
VCCにおいて、性能シミュレーションは、特定のマッピングした設計について、システムのタイミングがユーザ仕様に合うかを判定する。ユーザ仕様に合わないときは、ユーザは、動作ブロックの一部を別のアーキテクチャブロックにマッピングすることができ、これにより、それらの動作ブロックをハードウェアとソフトウェアとの間で移動して実行することができる。設計は、プロセッサ、メモリ及びカスタムハードウェアが組み込まれたシステムオンチップ(system-on-a-chip)の設計であり、あるいはディスクリートのプロセッサ、メモリ及び多機能コンポーネントチップ(chips)から構成されるシステムの設計である。
【0014】
VCCでの設計が十分に詳細化のレベルに達し、その性能がシステム仕様に合うようになると、ユーザは、それをソフトウェアとハードウェアの実施としてエクスポートすることができる。そして、ハードウェア設計は、HDLシミュレーション、フロアープランニング(floor planning)及び論理合成(logic synthesis)に用いられる。そして、ソフトウェアモデルは、RTOS(real time operating system)にリンクする(linking)ために用いられる。
【0015】
ユーザアプリケーションのソフトウェアエクスポートは、特定のプロセッサ用に選択されたRTOSを定義(configure)することを含んでいる。また、ソフトウェアエクスポートには、タスクの生成、タスク間及びタスク内通信のための適切なメカニズムの追加、同じタスクにマッピングされる多数の動作の静的(static)スケジューラの合成、RTOSスケジューラの定義(configuring)、割込みハンドラの設定、及びカウンタとタイマの設定が含まれる。
【0016】
1つのRTOS上で多くのタスクが実行される状態(高コンテキストのスイッチングオーバヘッドが生じ、許容できない可能性がある状態)を回避するために、VCC環境では、ユーザは多数の動作ブロックを同じタスクにマッピングすることができる。この状態において、VCCは、静的スケジューラ、すなわち動作のラン機能(run function)を単純に順次実行させるスケジューラを合成する。
【0017】
また、VCCでは、シミュレーションを使用することにより、設計者は、マッピングを評価することができる。マッピング評価のためにシミュレーションを使用するには、共有アーキテクチャリソースのスケジューリングを仕様化し、モデル化する必要がある。スケジューリングは、設計の実現可能性、品質、信頼性及びコストに重大な影響を与えるので、設計においてスケジューリングを適切に決めることが非常に重要である。
【0018】
【発明が解決しようとする課題】
したがって、本発明の目的は、スケジューリングの仕様をシステムレベルでどのように決め、また、そのような仕様をシミュレーションとソフトウェアの実行においてどのように利用するかという問題を解決するものである。
【0019】
【課題を解決するための手段】
本発明の目的は、スケジューリングの仕様を決めるフレームワーク(framework)を提供するものであり、このフレームワークは、
シミュレーションと実装の両方にとって有効であり、
抽象的であり、したがって、システムレベルのシミュレーションに適しており、モデルの記述が直接的であり、
柔軟性があり、設計者が多様なスケジューリング規定(scheduling policy)とシステムモデル等の関連した問題を特定し、調査することができ、
階層的であり、複雑なスケジューリング規定を簡単なものから合成することができ、
動作の性能をモデル化する技術に対して直交する(orthogonal)ものである。
【0020】
本発明は、システムの一部として設計されなければならないスケジューラについての明白な概念(explicit notion)を直接的に導入することにより、問題の仕様の側面(specification aspect)に対処するものである。スケジューラは、アーキテクチャリソースに関するスケジューリング規定を有効に表す。スケジューリング規定は、どのように動作をリソースに割り当て、リソースにアクセスし、リソースを共有するかを定める(govern)。本発明は、スケジューリング規定をモデル化する汎用的なフレームワークを提供し、このフレームワークは、多くの普通の事例をカバーする単純なメカニズムを含んでいる。本発明は、階層を介してスケジューリング規定を構成(composition)することができ、1つのスケジューラは別のスケジューラに割り当てることができる。
【0021】
問題の関連するシミュレーションの側面は以下の通りである。システムにおける動作ブロックをVCCにおけるアーキテクチャリソースに一旦マッピングすると、ブロックは、入力イベントに反応(react)するために、アーキテクチャリソースを求めて競合する抽象的なプロセスを表す。更に、マッピングされたブロックは、反応を行う有限量の時間を必要とする。
【0022】
ディスクリートなイベントモデルは処理演算の所望の動作モデルに最も近いので、VCCにおいて、ディスクリートなイベントシミュレータを使用することが望まれる。従来のディスクリートイベントモデルにおいて、ブロックは、タイムスタンプ(timestamp)が付されたスケジューリングイベントをスケジューリングすることによって、通信を行う。シミュレータは、これらのタイムスタンプによってソートされた(sorted)、システムの全イベントのリストを保持し、最小のタイムスタンプのイベントを(すなわち時刻順に)繰り返して処理する。ブロックのイベントが処理されるときに、そのブロックは反応し、すなわち「点火(fire)」し、新しいイベントをスケジューリングすることが可能になる。ある時刻にスケジューリングされた全てのブロックは、あたかも無限に高速で無数の並列マシン上において、ゼロ「時間」で同時(concurrently)に実行される。通信ネットワークやデジタル回路設計のような多くの問題がある分野において、この抽象化は、大抵の場合、適切である。しかしながら、VCC環境に関しては、反応が有限時間を要し、有限の計算リソースを求めて競合するので、このモデルは、マッピングされた設計をシミュレーションするのには適していない。したがって、本発明は、従来のディスクリートイベントモデルを変更して、
従来のディスクリートイベントモデルの結果として発生する起動の明示的モデル、
アーキテクチャリソースのスケジューリングを反映した競合の明示的モデル、
反応に時間がかかることを許容する動作の反応の明示的モデル
を含める。
【0023】
ここで扱う関連した実行の問題は、どのように仕様を用いて実行の構造を合成するかである。ここに、本発明は、仕様から、特定されたスケジューリング規定を実施する民生機器用のワーキングソフトウェアコード(C、C++、アセンブリ言語)を生成する。更に、本発明は、このようなスケジューリング規定を実施するために、商業的に利用可能な実時間オペレーティングシステムのような既存のソフトウェアと組み合わせて定義(configure)することができ、インタフェースをとることができる。
【0024】
【発明の実施の形態】
直交した(orthogonal)2つのモデル、すなわちスケジューラ(scheduler)の1つと、スケジュール可能(schedulable)の1つは、本発明におけるスケジューリング(scheduling)の全体的なモデリング(modeling)を構成する。これらの2つのモデルは、単純なプロトコルを介して互いにメッセージを送ることにより相互作用する。プロトコル自体は、1対の抽象的インタフェースにより実現され、抽象的インタフェースは、シミュレータにおいて具体的なスケジュール可能なオブジェクト及びスケジューラオブジェクトの中で実現される。
【0025】
図1は、VCCにおける設計フローを説明するための図であり、設計フローは、a)動作の作成、b)アーキテクチャの取得、c)動作のアーキテクチャへのマッピングからなる。図1の破線より上の領域は、スケジューラのコンポーネントであり、コンポーネントのうちのCPU、ASIC及びクロック(CLK)は、物理的要素であり、残りのIRQ(割込み要求)、RTOS(実時間オペレーティングシステム)及び静的(static)スケジューラは、ソフトウェア要素である。静的スケジューラは、VCCによって合成され、動作のラン機能(run function)の単純な順次実行を構成する。図1の破線より下の動作は、文字A〜Fが付された楕円のブロックで示される。動作A、B、Dは、静的スケジューラによって参照番号1、2、3で示す固有の順番でスケジューリングされるスケジュール可能な動作(schedulables)である。スケジュール可能な動作Cは、IRQによってスケジューリングされ、スケジュール可能な動作Eは、動作A、B、C、Dから入力が供給された後、RTOSによってスケジューリングされ、スケジュール可能な動作Fは、動作A、Dから入力が供給された後、クロックによってスケジューリングされる。
【0026】
スケジュール可能(schedulable)は、任意のスケジューラがスケジューリングする単位を表す。スケジュール可能は、
起動(activation)、すなわちスケジューリングされることを要求し、
反応(reaction)、すなわちスケジューリングされたときに開始し、(通常は)終了する
という独特の概念(notion)を有する必要がある。このモデルは、図2に示すように、1対のコンカレントな有限状態マシン(finite state machines)として表される。
【0027】
スケジュール可能は、それ自体では動作という意味を持たないが、このフレームワーク(framework)では動作を表している。したがって、スケジュール可能は、常に単一のスケジューラに割り当てられる動作である。
【0028】
起動(activation)の具体的な意味(semantic)は、このフレームワークの一部でもなく、スケジュール可能なオブジェクトでもなく、起動は基本的な動作(underlying behavior)から生じる。個々のイベントの動作に対する起動の概念は、シミュレータからイベントを受け取ることと等価である。しかしながら、このことは普遍的(universal)ではない。データフロー(dataflow)という意味の動作は、シミュレータから「十分な」イベントを受け取った後にのみ、起動される。同様に、反応(reaction)の具体的な意味は、スケジュール可能及びこのフレームワークの一部ではない。フレームワークは、動作がその反応を開始(ディスクリートイベントの用語でいえば「点火(fire)」)する時を制御できるように、及び反応が終了する時を通知するように、スケジュール可能に対して単に要求する。反応に要する時間は、動作モデル自体あるいは他のメカニズムによって決定される。本発明のフレームワーク(framework)におけるスケジュール可能は、殆どの場合、ソフトウェアの処理又はタスクを表す動作である。しかしながら、このモデルは、スケジュール可能を他のもの、例えばクロックによって動作するハードウェアプロセスとすることができるほど、汎用的なものである。
【0029】
図3は、このモデルを、モデルソフトウェアスケジューリングに要求される横取り(preemption)をサポートするように拡張されたモデルとして示す図である。本発明における横取りのサポートは、スケジュール可能によりフレームワークが動作の反応の一時停止(suspend)、再開(resume)及び打切り(abort)を行うことができることを要求する。幾つかの動作に対して、これらの概念が十分に定義されておらず、したがって、全てのスケジュール可能が一時停止、再開及び打切りを実行する必要はない。
【0030】
上述したように、本発明は、起動のメカニズムと反応のメカニズムを分離している。スケジューラは、それに割り当てられたスケジュール可能についてのこれらのメカニズム間の関係を表す。この関係は、スケジュール可能に対して課せられるスケジューリング規定(scheduling policy)である。一般的なフレームワークは、この関係に対して、普通のシミュレーションにおける因果関係(causality)の制約以外には、殆ど制約を設けない。
【0031】
両極端の具体例を示して説明する。デジタルハードウェア用のクロックをモデリングするスケジューラは、起動の概念を完全に無視し、それに割り当てられた全てのスケジュール可能の反応を一定周波数で開始するように選択することができる。これとは対照的に、実時間オペレーティングシステム(RTOS)をモデリングするスケジューラは、スケジュール可能の起動(タスク(task))を、サービスに対する要求を抽象的に表す起動として追跡する。このようなスケジューラにおいて、起動と反応の関係は、殆どの場合、起動されるスケジュール可能(schedulable)と、これらのスケジュール可能に関する優先順位のセット(set of priorities)とを含む複雑な機能である。
【0032】
スケジュールに割り当てられたスケジュール可能が横取り(preemption)をサポートするときは、スケジューラも起動と横取りとの関係を表す。サイクロスタティック(cyclo-static)、静的優先度、動的優先度、ラウンドロビン(round robin)等の代表的なソフトウェアスケジューリング規定を含む殆どのスケジューリング規定を、このフレームワークの中で実現することができる。なお、従来のディスクリートのイベントモデルさえも、スケジュール可能が活性化されると直ぐに反応することを割り当てられたスケジュール可能に強制する普通のスケジューラによって、モデリングすることができる。任意のオブジェクトは、上述の制約の下に、スケジュール可能のインタフェースを実現することができる。階層を介したスケジューラの構成(composition)は、スケジュール可能のインタフェースをも実現するスケジューラを組み立てることにより、容易に行われる。このようなスケジューラは、親スケジューラ(parent scheduler)に割り当てることができる。
【0033】
スケジュール可能のスケジューラは、起動と反応の意味を定義しなければならない。有益な具体例において、本願発明者は、スケジューラの起動を、スケジューラに割り当てられたスケジュール可能の起動の関数として解析した。その結果、起動は、階層を上方向に伝わる(propagating up)ものとして見ることができ、これは、正にプロトコルで起きていることである。反応も、階層を下方向に伝わることを除いて、同じである。
【0034】
プロトコルは、モデラー(modeler)が基本的なシミュレータの詳細に関わることなく、スケジューリング規定の広範囲のモデルを構築できるように、設計され、実行されてきた。本発明では、スケジューラ(scheduler)は、それに割り当てられたスケジュール可能を検出するように構成され、スケジュール可能は、それらが割り当てられたスケジューラを検出するように構成される。これは、プロトコルの初期化段階(initialization phase)である。
【0035】
図4は、プロトコルにおける代表的な相互作用を(interaction)の具体例を示す図である。このシナリオにおいて、イベントはシミュレータによってスケジュール可能に送られる。これによって、スケジュール可能の基本的な動作が反応することはなく、むしろ、スケジュール可能の基本的な動作が反応することを望むかを決定し、これによって、スケジュール可能は、それが割り当てられたスケジューラに起動通知を送る。暫くした後に、スケジューラは、スケジュール可能にそれの動作の反応を開始するように指示するメッセージを送り、スケジュール可能がメッセージを受信したときに、動作が反応する。その後、反応が終了する前に、スケジューラは、実行中の反応を横取り(preempt)する必要があると決定し、スケジュール可能に一時停止メッセージを送る。この一時停止メッセージを受けて、スケジュール可能は、それの基本的な動作の実行を一時的に停止する(halt)。この結果、スケジューラは、このブロックをスケジューリングし直し、一時停止している反応を再開するための再開メッセージを送り、これにより、スケジュール可能は、動作の実行を再開する。最後に、反応が終了すると、スケジュール可能は、それが割り当てられたスケジューラに終了通知を送り返す。
【0036】
【表1】
【0037】
表1は、プロトコルに関するメッセージを示す。スケジュール可能からのメッセージは有効に送信側の識別を含み、スケジューラは、どのスケジュール可能が起動し、あるいは終了したかが分かることができる。
【0038】
図5及び図6に示す1対のC++クラスは、スケジュール可能及びスケジュールのオブジェクトの抽象的なインタフェースを定義することによってこのプロトコルを実行する。FxSchedulableInterfaceクラスは、直接実行されることは殆どない。これは、特定のモデリングスタイルに対して設計者により単に使用される遅延メタモデルと呼ばれるクラスによって、通常取り扱われる。FxSchedulableInterfaceクラスは、特定のスケジューリング規定のモデルを構築するために、モデラーによって直接又は間接的に使用される。
【0039】
フレームワークは、FxBasicSchedulerと呼ばれる「基本的な」スケジューラクラスを有しており、このスケジューラクラスは、スケジューリングモデルを構築するために殆どの場合必要とされる動作及びブックキーピング(bookkeeping)を有している。モデラーは、多くの場合、このクラスをサブクラスに分け、詳細化して特定のモデルを構築することができ、この場合、モデル構築の作業はかなり簡単となる。しかしながら、基本的なクラスでは不十分な場合には、いつでもFxSchedulableInterfaceクラス全体を実行することができるが、負担及び複雑さが増大する。
【0040】
与えられた状況におけるFxBasicSchedulerの応用性(applicability)は、クラスに組み込まれた同時性の前提条件(concurrence assumption)に大きく依存する。この前提条件は、任意の時刻においては、割り当てられたスケジュール可能(schedulables)の中のただ1つのみが反応状態にあるということである。明らかに、FxBasicSchedulerは、上述したハードウェアクロックスケジューラの具体例に対しては適切ではないが、殆どのソフトウェアスケジューリングモデルに対しては適切である。
【0041】
FxBasicSchedulerの内部で使用されるモデルを図7に示す。ユーザは、モデルを詳細化するために、2つの比較的抽象的な(純粋に仮想的な)機能についての実行を与えるように要求される。このような第1の抽象的な機能は、「次?(next?)」の機能である。この機能は、モデルが「次の」状態を通るときは常に呼び出される。これは、スケジューラが休止(idle)中に起動通知を受けたとき、あるいは自然又は横取りによるかに拘わらず、反応が終了したときのいずれかに生じる。この機能は、ハンドル(handle)を次に実行すべきスケジュール可能に、あるいはそれが存在しないときにはニル(nil)に返すように要求される。第2の抽象的な機能は、「横取り?(preempt?)」機能である。この機能は、スケジュール可能の反応中に起動が発生したときは常に呼び出される。この機能は、横取りが起こるかを判定し、起こるときは、一時停止又は打切りのいずれかの方法を使用すべきか決定するように要求される。
【0042】
FxBasicSchedulerを用いたスケジューリングの性能のモデリングは、開始/再開、終了、及び一時停止/打切りの状態間の遷移に要する時間をモデラーが指定できるようにすることによって、容易になる。これらの動作に一定時間を割り当てる簡単なメカニズムが存在し、代わりのメカニズムとして、必要に応じ、スケジューラ又はシステムの状態に依存した機能のセットを提供するメカニズムが存在する。
【0043】
このフレームワークにおける仕様を用いて、実行に必要なソフトウェアの一部を自動的に生成することができる。
【0044】
図1において、3つの動作(A、B、D)を静的スケジューラに割り当てている。これは、実行のための関連した動作を含むサイクロスタティックなスケジューラを合成する指示であると解釈される。マッピング割当における優先順位(priority)は、スケジュールの順番を与える。この静的スケジューラと動作(E)は、RTOSに割り当てられており、このことは、動作が、サイクロスタティックスケジューラと共に、RTOSによって生成されたタスクとなることを表している。このようにして、2つのタスクを合成する。RTOSに加え、割込み要求(IRQ)がプロセッサに割り当てられる。このことは、IRQについての動作Cを含む割込みハンドラを合成して、割り当てることを示している。得られた実行用の擬似コードを図8に示す。
【0045】
本発明に基づくスケジューラは、以下の規定、すなわちサイクロスタティック、非横取りの静的優先度(non-preemptive static priority)及び横取りの静的優先(preemptive static priority)に対して構成されている。このフレームワークを使用してソフトウェアスケジューリング規定の表現が容易になることを説明するために、横取りの静的優先スケジューラを例にとると、これは僅かに12行の実コードしか必要とせず、C++カーネルでカウントすると、全100行のオーダである。狭い範囲のサイクロスタティックスケジューラを生成するもの、RTOSをターゲットとするものを含む幾つかのワーキングソフトウェア合成プロトタイプを構築した。
【0046】
以上、本発明の実施の形態について説明したが、他の具体的形態も想到され、本発明の範囲は、特許請求の範囲及びその均等物によってのみ限定されると解される。
【図面の簡単な説明】
【図1】 VCCにおける設計フローを構成する動作、アーキテクチャ及びマッピングのタスクの仕様を説明するためのブロック図である、
【図2】 本発明の具体例に基づいた簡単な「スケジュール可能」の状態図である。
【図3】 拡張した「スケジュール可能」の状態図である。
【図4】 代表的なインタラクションを示すプロトコルに関する非公式のMSCの概念を説明するための図である。
【図5】 基本的なスケジューラ及びスケジュール可能のインタフェースに関するC++クラスを説明するための図である。
【図6】 基本的なスケジューラ及びスケジュール可能のインタフェースに関するC++クラスを説明するための図である。
【図7】 2つの抽象的な機能、すなわち「次?」と「横取り?」を説明する、FxBasicSchedulerと呼ばれる基本的なスケジューラクラスの状態図である。
【図8】 図1の仕様に関する擬似コードの具体例である。
Claims (28)
- 動作の作成、アーキテクチャの取得及び上記アーキテクチャ上への上記動作のマッピングを容易にするシステムレベルの設計及び統合コンピュータシステムにおいて、民生用組込みシステムのソフトウェアシミュレーション及び実装のためのスケジューリングの仕様を定めるスケジューリング仕様決定方法において、
a)上記アーキテクチャにおけるスケジューラを特定するステップと、
b)上記動作を構成するスケジュール可能を特定するステップと、
c)上記スケジュール可能と上記スケジューラを互いに割り当てるステップと、
d)上記スケジューラがそれぞれ割り当てられたスケジュール可能を検出するステップと、
e)上記スケジュール可能がそれぞれ割り当てられたスケジューラを検出するステップと、
f)イベントを上記スケジュール可能に送るステップと、
g)上記ステップf)におけるスケジュール可能から、それらが割り当てられたスケジューラに起動通知を送るステップと、
h)上記ステップg)の割り当てられたスケジューラから、上記ステップf)のスケジュール可能にその動作の反応を開始するメッセージを送るステップと、
i)上記反応が終了したときに、上記ステップf)のスケジュール可能から上記ステップg)のスケジューラに終了通知を送るステップとを有するスケジューリング仕様決定方法。 - 更に、
h1)上記ステップg)のスケジューラに、上記ステップf)のスケジュール可能の反応がその終了前に横取りされるべきか決定させるステップと、
h2)上記ステップh1)において横取りが要求されるときに、上記ステップg)のスケジューラから上記ステップf)のスケジュール可能にその反応の実行を一時的に停止する一時停止メッセージを送るステップと、
h3)上記ステップh1)において横取りが要求されるときに、上記ステップf)のスケジュール可能に、上記一時停止メッセージに応答してその反応を停止させるステップと、
h4)上記ステップh1)において横取りが要求されるときに、上記ステップg)のスケジューラから上記ステップf)のスケジュール可能に、再開メッセージを最終的に送るステップとを有する請求項1記載のスケジューリング仕様決定方法。 - 更に、
上記スケジューラの停止中に、上記スケジューラが割り当てられたスケジュール可能から起動通知を受け取ったときに、及び上記割り当てられたスケジュール可能が反応を終了したときに、発生する次の機能を準備するステップと、
上記次の機能が、動作の反応を次に開始するスケジュール可能にハンドルを送るステップとを有する請求項2記載のスケジューリング仕様決定方法。 - 更に、
上記割り当てられたスケジュール可能が既に反応中に、上記スケジューラが起動通知を受け取ったときに発生する横取り機能を準備するステップと、
上記横取り機能が、横取りを起こすべきか、及び横取りされるべき動作を一時停止又は打ち切ることにより横取りを達成すべきかを決定するステップとを有する請求項2記載のスケジューリング仕様決定方法。 - 更に、
上記スケジューラの停止中に、上記スケジューラが割り当てられたスケジュール可能から起動通知を受け取ったときに、及び上記割り当てられたスケジュール可能が反応を終了したときに発生する次の機能を準備するステップと、
上記次の機能が、動作の反応を次に開始するスケジュール可能にハンドルを送るステップと、
上記割り当てられたスケジュール可能が既に反応中に、上記スケジューラが起動通知を受け取ったときに発生する横取り機能を準備するステップと、
上記横取り機能が、横取りを発生すべきか、及び横取りされるべき動作を一時停止又は打ち切ることにより横取りを達成すべきかについて決定するステップとを有する請求項2記載のスケジューリング仕様決定方法。 - 更に、
反応の開始並びに再開、反応の終了、及び反応の一時停止並びに打切りのステップを含む上記スケジューラ及びスケジュール可能の動作における選択状態を終了するための遷移時間を割り当てるステップを有する請求項5記載のスケジューリング仕様決定方法。 - 更に、
上記スケジュール可能の動作を、上記スケジュール可能のマッピング割当の優先順位に部分的に基づいてスケジューリングするステップを有する請求項1記載のスケジューリング仕様決定方法。 - 上記ステップh1)乃至h4)は、サイクロスタティックなスケジューリング規定に基づいて実行されることを特徴とする請求項2記載のスケジューリング仕様決定方法。
- 上記ステップh1)乃至h4)は、非横取りの静的優先スケジューリング規定に基づいて実行されることを特徴とする請求項2記載のスケジューリング仕様決定方法。
- 上記ステップh1)乃至h4)は、横取りの静的優先スケジューリング規定に基づいて実行されることを特徴とする請求項2記載のスケジューリング仕様決定方法。
- 上記ステップh1)乃至h4)は、選択されたスケジューリング規定に基づいて実行されることを特徴とする請求項2記載のスケジューリング仕様決定方法。
- 更に、
上記選択されたスケジューリング規定を上記組込みシステムの動作に基づいて変更するステップを有する請求項11記載のスケジューリング仕様決定方法。 - 更に、
上記選択されたスケジューリング規定を実施する民生機器用ソフトウェアコードを発生するステップを有する請求項11記載のスケジューリング仕様決定方法。 - 更に、
既存の商業的に利用可能なソフトウェアとインタフェースすることにより、上記スケジューリング規定を実施するステップを有する請求項11記載のスケジューリング仕様決定方法。 - アーキテクチャ、動作及び上記アーキテクチャへの上記動作のマッピングにより表される組込みシステム用のスケジューリングの実行を生成する、コンピュータで実行されるスケジューリング生成方法において、
a)上記アーキテクチャにおけるスケジューラを特定するステップと、
b)上記動作を構成するスケジュール可能を特定するステップと、
c)上記スケジュール可能と上記スケジューラを互いに割り当てるステップと、
d)上記スケジューラがそれぞれ割り当てられたスケジュール可能を検出するステップと、
e)上記スケジュール可能がそれぞれ割り当てられたスケジューラを検出するステップと、
f)イベントを上記スケジュール可能に送るステップと、
g)上記ステップf)におけるスケジュール可能から、それらが割り当てられたスケジューラに起動通知を送るステップと、
h)上記ステップg)の割り当てられたスケジューラから、上記ステップf)のスケジュール可能にその動作の反応を開始するメッセージを送るステップと、
i)上記反応が終了したときに、上記ステップf)のスケジュール可能から上記ステップg)のスケジューラに終了通知を送るステップとを有する、ソフトウェアとして実行されるスケジューリング生成方法。 - 更に、
h1)上記ステップg)のスケジューラに、上記ステップf)のスケジュール可能の反応がその終了前に横取りされるべきか決定させるステップと、
h2)上記ステップh1)において横取りが要求されるときに、上記ステップg)のスケジューラから上記ステップf)のスケジュール可能にその反応の実行を一時的に停止する一時停止メッセージを送るステップと、
h3)上記ステップh1)において横取りが要求されるときに、上記ステップf)のスケジュール可能に、上記一時停止メッセージに応答してその反応を停止させるステップと、
h4)上記ステップh1)において横取りが要求されるときに、上記ステップg)のスケジューラから上記ステップf)のスケジュール可能に、再開メッセージを最終的に送るステップとを有する請求項15記載のスケジューリング生成方法。 - 更に、
上記スケジューラの停止中に、上記スケジューラが割り当てられたスケジュール可能から起動通知を受け取ったときに、及び上記割り当てられたスケジュール可能が反応を終了したときに、発生する次の機能を準備するステップと、
上記次の機能が、動作の反応を次に開始するスケジュール可能にハンドルを送るステップとを有する請求項16記載のスケジューリング生成方法。 - 更に、
上記割り当てられたスケジュール可能が既に反応中に、上記スケジューラが起動通知を受け取ったときに発生する横取り機能を準備するステップと、
上記横取り機能が、横取りを起こすべきか、及び横取りされるべき動作を一時停止又は打ち切ることにより横取りを達成すべきかを決定するステップとを有する請求項16記載のスケジューリング生成方法。 - 更に、
上記スケジューラの停止中に、上記スケジューラが割り当てられたスケジュール可能から起動通知を受け取ったときに、及び上記割り当てられたスケジュール可能が反応を終了したときに発生する次の機能を準備するステップと、
上記次の機能が、動作の反応を次に開始するスケジュール可能にハンドルを送るステップと、
上記割り当てられたスケジュール可能が既に反応中に、上記スケジューラが起動通知を受け取ったときに発生する横取り機能を準備するステップと、
上記横取り機能が、横取りを発生すべきか、及び横取りされるべき動作を一時停止又は打ち切ることにより横取りを達成すべきかについて決定するステップとを有する請求項16記載のスケジューリング生成方法。 - 更に、
反応の開始並びに再開、反応の終了、及び反応の一時停止並びに打切りのステップを含む上記スケジューラ及びスケジュール可能の動作における選択状態を終了するための遷移時間を割り当てるステップを有する請求項19記載のスケジューリング生成方法。 - 更に、
上記スケジュール可能の動作を、上記スケジュール可能のマッピング割当の優先順位に部分的に基づいてスケジューリングするステップを有する請求項15記載のスケジューリング生成方法。 - 上記ステップh1)乃至h4)は、サイクロスタティックなスケジューリング規定に基づいて実行されることを特徴とする請求項16記載のスケジューリング生成方法。
- 上記ステップh1)乃至h4)は、非横取りの静的優先スケジューリング規定に基づいて実行されることを特徴とする請求項16記載のスケジューリング生成方法。
- 上記ステップh1)乃至h4)は、横取りの静的優先スケジューリング規定に基づいて実行されることを特徴とする請求項16記載のスケジューリング生成方法。
- 上記ステップh1)乃至h4)は、選択されたスケジューリング規定に基づいて実行されることを特徴とする請求項16記載のスケジューリング生成方法。
- 更に、
上記選択されたスケジューリング規定を上記組込みシステムの動作に基づいて変更するステップを有する請求項25記載のスケジューリング生成方法。 - 更に、
上記選択されたスケジューリング規定を実施する民生機器用ソフトウェアコードを発生するステップを有する請求項25記載のスケジューリング生成方法。 - 更に、
既存の商業的に利用可能なソフトウェアとインタフェースすることにより、上記スケジューリング規定を実施するステップを有する請求項25記載のスケジューリング生成方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/691,406 US6882965B1 (en) | 2000-10-17 | 2000-10-17 | Method for hierarchical specification of scheduling in system-level simulations |
PCT/US2001/032472 WO2002033538A1 (en) | 2000-10-17 | 2001-10-17 | A method for hierarchical specification of scheduling in system-level simulations |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004512591A JP2004512591A (ja) | 2004-04-22 |
JP4177099B2 true JP4177099B2 (ja) | 2008-11-05 |
Family
ID=24776426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002536656A Expired - Fee Related JP4177099B2 (ja) | 2000-10-17 | 2001-10-17 | システムレベルのシミュレーションにおけるスケジューリングの階層仕様方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6882965B1 (ja) |
EP (1) | EP1327189B1 (ja) |
JP (1) | JP4177099B2 (ja) |
AU (1) | AU2002213350A1 (ja) |
WO (1) | WO2002033538A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040068505A1 (en) * | 2002-10-04 | 2004-04-08 | Chung-I Lee | System and method for synchronously editing a file on different client computers |
US7369977B1 (en) * | 2004-09-20 | 2008-05-06 | The Mathworks, Inc. | System and method for modeling timeouts in discrete event execution |
US8087021B1 (en) * | 2005-11-29 | 2011-12-27 | Oracle America, Inc. | Automated activity processing |
US20070143761A1 (en) * | 2005-12-15 | 2007-06-21 | Yong Deng | Task scheduler system and method for managing tasks in an embedded system without a real time operating system |
EP2366146B2 (de) * | 2009-12-23 | 2016-10-12 | Inchron GmbH | Verfahren und datenverarbeitungssystem zur simulation eines eingebetteten systems |
US20130275108A1 (en) * | 2012-04-13 | 2013-10-17 | Jiri Sofka | Performance simulation of services |
US9805148B2 (en) * | 2014-08-18 | 2017-10-31 | The United States Of America, As Represented By The Secretary Of The Navy | Modeling and simulation analytical reply method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963447A (en) | 1997-08-22 | 1999-10-05 | Hynomics Corporation | Multiple-agent hybrid control architecture for intelligent real-time control of distributed nonlinear processes |
EP1022654A3 (en) * | 1999-01-14 | 2001-02-14 | Interuniversitair Microelektronica Centrum Vzw | Concurrent timed digital system design method and environment |
-
2000
- 2000-10-17 US US09/691,406 patent/US6882965B1/en not_active Expired - Lifetime
-
2001
- 2001-10-17 EP EP01981725A patent/EP1327189B1/en not_active Expired - Lifetime
- 2001-10-17 WO PCT/US2001/032472 patent/WO2002033538A1/en active Application Filing
- 2001-10-17 AU AU2002213350A patent/AU2002213350A1/en not_active Abandoned
- 2001-10-17 JP JP2002536656A patent/JP4177099B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1327189A4 (en) | 2004-09-08 |
WO2002033538A1 (en) | 2002-04-25 |
EP1327189B1 (en) | 2012-07-25 |
US6882965B1 (en) | 2005-04-19 |
JP2004512591A (ja) | 2004-04-22 |
AU2002213350A1 (en) | 2002-04-29 |
EP1327189A1 (en) | 2003-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zurawski | Embedded Systems Handbook 2-Volume Set | |
Davare et al. | Period optimization for hard real-time distributed automotive systems | |
Pasaje et al. | MAST real-time view: A graphic UML tool for modeling object-oriented real-time systems | |
Delange et al. | Validate, simulate, and implement ARINC653 systems using the AADL | |
Chou et al. | ipChinook: An integrated IP-based design framework for distributed embedded systems | |
Yu et al. | RTOS scheduling in transaction level models | |
Ziegenbein et al. | Combining multiple models of computation for scheduling and allocation | |
Mahadevan et al. | ARTS: A SystemC-based framework for multiprocessor systems-on-chip modelling | |
JP4177099B2 (ja) | システムレベルのシミュレーションにおけるスケジューリングの階層仕様方法 | |
Wang et al. | Synthesizing operating system based device drivers in embedded systems | |
Randolph | Improving the predictability of event chains in ros 2 | |
Li et al. | Applicability of real-time schedulability analysis on a software radio protocol | |
Bondarev et al. | CARAT: a toolkit for design and performance analysis of component-based embedded systems | |
Mooney III | Hardware/Software co-design of run-time systems | |
Hastono et al. | An integrated SystemC framework for real-time scheduling assessments on system level | |
Hastono et al. | Real-Time Operating System Services for Realistic SystemC Simulation Models of Embedded Systems. | |
Henriksson et al. | Tools for Real-Time Control Systems Co-Design-A Survey | |
Hessel et al. | Scheduling refinement in abstract RTOS models | |
Adelt et al. | Reusable formal models for concurrency and communication in custom real-time operating systems | |
Jonsson | GAST: a flexible and extensible tool for evaluating multiprocessor assignment and scheduling techniques | |
Adelt et al. | Towards reusable formal models for custom real-time operating systems | |
Hemingway et al. | Automated synthesis of time-triggered architecture-based TrueTime models for platform effects simulation and analysis | |
Park et al. | Integrating virtual execution platform for accurate analysis in distributed real-time control system development | |
Rendón et al. | Animation of heterogeneous prototypes of real-time systems | |
Yu et al. | RTOS modeling in system level synthesis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041014 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041102 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070828 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071128 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071205 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071220 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071228 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080128 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080326 |
|
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 |
|
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: 20080811 |
|
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: 20080821 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110829 Year of fee payment: 3 |
|
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: 20110829 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120829 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120829 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130829 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |