(57)【特許請求の範囲】
【請求項１】
少なくとも１つの処理ユニット（Ｖ１ａ，Ｖ１ｂ，…）を有するコンピュータ支援リアルタイムシステムを作成する方法であって、
データが、前記処理ユニット（Ｖ１ａ，Ｖ１ｂ，…）と環境または１つ以上のさらなる処理ユニット（Ｖ２ａ，Ｖ２ｂ，…）との間で、同期または非同期で交換され、
前記処理ユニット（Ｖ１ａ，Ｖ１ｂ，…）は、コンピュータシステムで実行される前記データ交換の相互関連のための少なくとも１つの関連づけられたリアルタイムクロックを有しており、
前記リアルタイムクロックは以下の関係：
【数１】
0004752005.tif 000038
ここで、
【数２】
0004752005.tif 000039
【数３】
0004752005.tif 000040
【数４】
0004752005.tif 000041
（ここで、ＧrおよびＲvは発生する最小単位に関して正規化されている）
【数５】
0004752005.tif 000042
【数６】
0004752005.tif 000043
【数７】
0004752005.tif 000044
【数８】
0004752005.tif 000045
例えば、ｐｐｍの単位におけるクリスタル精度であり、
ｇ（ｐ+ ，ｔ）は、時間に関する前記クロックの精度を変更するベクトルｐ+ によって表される物理的変数の関数であり、
【数９】
0004752005.tif 000046
【数１０】
0004752005.tif 000047
【数１１】
0004752005.tif 000048
によって定義されていることを特徴とする、方法。
【請求項２】
前記処理ユニット（Ｖ１ａ，Ｖ１ｂ，…）に関連づけられた数値カウンタは、以下の関係：
【数１２】
0004752005.tif 000049
ここで、
【数１３】
0004752005.tif 000050
【数１４】
0004752005.tif 000051
【数１５】
0004752005.tif 000052
【数１６】
0004752005.tif 000053
【数１７】
0004752005.tif 000054
【数１８】
0004752005.tif 000055
に従うクロックによって制御される、請求項１に記載の方法。
【請求項３】
前記クロックのうちの一つは、他のクロックの同期のための基準クロックとして用いられる、上記請求項のいずれかに記載の方法。
【請求項４】
リアルタイム制御は、技術的処理の開ループまたは閉ループ制御のために、前記処理ユニット（Ｖ１ａ，Ｖ１ｂ，…Ｖ２ａ，Ｖ２ｂ，…）とのデータ交換に用いられる、上記請求項のいずれかに記載の方法。
【請求項５】
処理ユニット（Ｖ１ａ，Ｖ１ｂ，…Ｖ２ａ，Ｖ２ｂ，…）によって受信され、データパケットのシーケンスから形成されるデータストリームは、送信されたデータストリームから分離されるために、当該送信されたデータストリームは、当該受信されたデータストリームとは異なるデータパケットのシーケンスを有する、上記請求項のいずれかに記載の方法。
【請求項６】
前記処理ユニット（Ｖ１ａ，Ｖ１ｂ，…）は関連づけられたキューを有する、上記請求項のいずれかに記載の方法。
【請求項７】
前記キューのタイミングは、前記クロック、好ましくは、前記基準クロックとして用いられるクロックによって制御される、請求項６に記載の方法。
【請求項８】
前記データパケットには、前記クロックによって作成されたリアルタイムマーカが提供される、上記請求項のいずれかに記載の方法。
【請求項９】
前記クロックは、時間制限、特に、時間条件または時間要件を定義するために用いられる、上記請求項のいずれかに記載の方法。
【請求項１０】
先行する請求項のいずれかに記載の方法を実行するために設計されたコンピュータシステム。
【発明の詳細な説明】
【０００１】
本発明は、請求項１の前提特徴部分に記載の少なくとも１つの処理ユニットを有するコンピュータ支援リアルタイムシステムを作成する方法に関する。また、本方法を実行するように設計されたコンピュータシステムにも関する。
【０００２】
リアルタイムシステムとは、一般に、所定の時間でおよび／または所定の時間間隔の経過後に、特定の計算結果を供給しなければならないシステムのことをいう。例えば、音声をデジタル信号に変換して送信し、その後、デジタル信号をアナログオーディオ信号に戻すのに必要な時間は約２５０ｍｓである。したがって、携帯電話を介した通信は、２５０ｎｍの時間遅延を伴う。この時間遅延が２５０ｍｓよりも大きい場合、送信された音声を理解することはもはやできない。
【０００３】
多数の処理ユニットを有するコンピュータ支援リアルタイムシステム、いわゆる分散型リアルタイムシステムは、従来、広く用いられている。例えば、このようなシステムは、携帯電話、それら携帯電話のスイッチングシステム、およびそのような分散型リアルタイムシステムの周辺のネットワークを含む。
【０００４】
分散型リアルタイムシステムは、多数の処理ユニットを備え得る。これらは、同一装置からなる一つの構成要素である。しかし、処理ユニット、例えば、携帯電話およびスイッチングシステムを物理的に相互に分離することも可能である。
【０００５】
分散型リアルタイムシステムは、ＳＤＬ（Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ａｎｄ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）の略語で知られる、「仕様記述言語」（ＩＴＵ−Ｔ．Ｚ．１００、Ａｐｐｅｎｄｉｘ  Ｉ．ＩＴＵ、ＳＤＬ  Ｍｅｔｈｏｄｏｌｏｇｙ  Ｇｕｉｄｅｌｉｎｅｓ、ＩＴＵ、１９９３）等の抽象仕様に基づいて作成される。ＳＤＬは、各処理ユニットおよび関連キューを有する各処理の技術原理に基づいている。通常、バスを介して行われるデータ交換またはデータ通信が、処理ユニット間で、排他的にキューを介し、全ての処理が並行した状態で行われることが絶対不可欠である。
【０００６】
データ交換を相互に関連づけるために、各処理ユニットは、少なくとも一つの関連づけられたいわゆるタイマーモジュールを有する。これは、計数期間が標準化されていないが、処理クロックから導出できる数値カウンタである。これは、個々に選択されたハードウェアおよび／または個々のプログラムに依存する。このことは、現在まで、通信システム内のリアルタイム依存レイヤのハードウェアおよびソフトウェア用の抽象仕様を自動的に実装することが確実にはできなかったことを意味してきた。この実装は、遅すぎるか、または限界時間条件を満たさないかのいずれかである。この不利益を克服するために、回路図の助けを借りるか、またはハードウェア記述言語によって、ハードウェアが指定され、実装される。ソフトウェアは、一般に、プログラミング言語によって実装される。この公知の方法は、時間を要し、費用がかかり、故障の影響を受けやすい。
【０００７】
ＳＤＬの他に、クロックが成分として含まれ得る他の実装言語が存在する。例えば、「ＵＭＬ」の略語である公知の統一モデリング言語は、クロックを利用する。さらなる実装言語は、「ＶＨＤＬ」の略語である公知の超高速集積回路ハードウェア記述言語である。ＵＭＬおよびＷＨＤＬのいずれもキューの提供を含まない。
【０００８】
この汎用的なコンピュータ支援リアルタイムシステムを作成する方法は、Ｋｏｐｅｔｚ，Ｈ．Ｏｃｈｓｅｎｒｅｉｔｅｒ，Ｗ．：Ｃｌｏｃｋ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｉｎ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｒｅａｌ−Ｔｉｍｅ  Ｓｙｓｔｅｍｓ；ｉｎ  ＩＥＥＥ  Ｔｒａｎｓ．  ｏｎ  Ｃｏｍｐｕｔｅｒｓ、Ｖｏｌ．Ｃ−３６、Ｎｏ．８、Ａｕｇｕｓｔ  １９８７に示されているように公知である。上記文書には、上記従来技術の不利益を克服するリアルタイムクロックの仕様が何ら含まれていない。
【０００９】
本発明の目的は、従来技術の不利益を克服することである。そのねらいは、特に、リアルタイムシステムを容易、迅速に、低コストで作成し得る方法を提供することである。他のねらいは、リアルタイムシステム用の抽象仕様の自動実装を可能にすることである。本発明のさらなるねらいは、リアルタイムシステムの作成における欠陥を避けることである。
【００１０】
この目的は、請求項１および１０の特徴によって達成される。便宜的な改良点が請求項２〜９の特徴に見られ得る。
【００１１】
本発明は、少なくとも１つの処理ユニットを有するコンピュータ支援リアルタイムシステムを作成する方法であって、リアルタイムクロックが以下の関係：
【数１９】
0004752005.tif 000002
ここで、
【数２０】
0004752005.tif 000003
【数２１】
0004752005.tif 000004
【数２２】
0004752005.tif 000005
（ＧrおよびＲvは発生する最小単位に関して正規化されている）
【数２３】
0004752005.tif 000006
【数２４】
0004752005.tif 000007
【数２５】
0004752005.tif 000008
【数２６】
0004752005.tif 000009
例えば、ｐｐｍの単位におけるクリスタル精度であり、
ｇ（ｐ+ ，ｔ）は、時間に関する前記クロックの精度を変更するベクトルｐ+ によって表される物理的変数の関数であり、
【数２７】
0004752005.tif 000010
【数２８】
0004752005.tif 000011
【数２９】
0004752005.tif 000012
によって定義されている。
【００１２】
本発明による方法によって、コンピュータシステム内のデータ、データパケット、またはデータストリームが、システム論理から独立した正確なタイムマーカによってマークされることが可能となる。これによって、特に、分散型リアルタイムシステムに関し、仕様について、全く新たな自由が広げられる。本発明による方法に基づいて作成される仕様は、従来技術による実装の問題を克服する。リアルタイムでの応答が、機能的時間応答および後続の仕様の解析中にさえも考慮され得る。この提案された方法は、最も大きく異なる適用領域において、特に、リアルタイムシステムを分散する作成に適した普遍的設計パターンを指定することを可能にする。本発明による方法によって可能となる時間要件の形式的な考慮によって、さらに、通信システムにおけるリアルタイム依存レイヤを指定することが可能となり、これによって、効率的な実装を自動的に導出することが可能となる。
【００１３】
また、１つの装置内に実装されていない分散型リアルタイムシステムにおけるクロック間の関係を定義することも可能である。一例としては、時間ｔに関する２つのクロック間のオフセットは、関係：
【数３０】
0004752005.tif 000013
によって求められる。
【００１４】
一例として、同期アルゴリズムは、このモデルを用いて指定され検証され得る。
【００１５】
処理ユニットに関連づけられた数値カウンタは、クロックによって制御され得る。多数のクロックが用いられる場合、それらのクロックのうちの１つが、他のクロックの同期用の基準クロックとして有利に用いられる。これによって、データが処理ユニット間で組織化された様式で交換されることが可能となる。
【００１６】
これに関連して、「環境」という表現は技術的処理を意味する。処理ユニットとのデータ交換は、技術的処理の開ループ制御または閉ループ制御のために、リアルタイム制御下で好適に実行され得る。これに関連して、例えば、技術的処理は、化学工場、自動車両用アンチロックブレーキングシステム、移動式無線ネットワーク等の制御である。
【００１７】
処理ユニットによって受信され、データパケットのシーケンスで形成されるデータストリームは、送信されたデータストリームが受信されたデータストリームと同じデータパケットシーケンスを有することを必要としないように、送信されたデータストリームから好適に分離され得る。よって、異なるリアルタイム依存データストリームをインターネット上で管理することが可能である。送信速度は、いくつかのデータストリームに関しては劇的に上昇し得る。処理ユニットに到達するデータパケットのシーケンスを逐次的に処理するか、またはそれらのデータパケットを再度同じシーケンスに渡す必要はまったくない。
【００１８】
処理ユニットは、関連づけられたキューを有する。このキューは、好ましくは、基準クロックとして用いられる本発明によるさらなるクロックによって、有利に時間制御される。よって、時間制御下で、データをキューに書き込むか、またはデータをキューから読み出すことが可能である。
【００１９】
さらなる改良特徴に従って、データパケットに、クロックによって作成されるリアルタイムマーカが提供される。リアルタイムマーカによるマーキングによって、データパケットの所定のシーケンスを送信することが可能となり、シーケンスは送信のために変更され、データパケットの所定のシーケンスは後に再生される。これによって、送信速度を上昇させることが可能となる。
【００２０】
クロックを用いて時間制限、特に、時間条件または時間要件を定義することは特に有利である。時間条件という表現は、システムが所定の時間で所定の動作を実行する条件を意味する。一方、時間要件とは、特定のイベントが所定の時間が経過した後に発生しなければならないというシステムに対する要件である。これは、外部イベントである。
【００２１】
本発明によるさらなる手段に基づいて、本発明による方法を実行するために適切なコンピュータシステムが提供される。このようなコンピュータシステムによって、リアルタイムシステムシステム用のソフトウェアおよびハードウェアの抽象仕様の正確な自動実装が迅速かつ単純な様式で可能となる。
【００２２】
本発明による方法の好適な例示的実施形態を下記においてより詳細に説明する。
【００２３】
図１は、理想的なカウンタ、連続リアルカウンタ、離散リアルカウンタ、および導出カウンタ間の相違を説明するための図である。理想カウンタは、線形関数によって定義される。
【００２４】
理想的なクロック：
図１の実線は、以下の式：
【数３１】
0004752005.tif 000014
に基づく理想的なクロックの関数を示す。
【００２５】
連続リアルクロックは、さらなるパラメータを必要とする。連続リアルクロックは、通常、１００万分の１（ｐｐｍ）の単位で示される一定の精度を有する。
【００２６】
さらに、連続リアルクロックのクロック周期は、温度等の物理的パラメータの変動により変動し得ることに留意すべきである。これは、関数ｇ（ｐ+ ，ｔ）によって表される。ここで、ｐ+ は、必要とされる物理的パラメータを有し、それらの物理的パラメータの変更速度の関数としてのベクトルである。しかし、周期的変動が存在し得るため、関数ｇ（ｐ+，ｔ）は、連続リアルタイムクロックの等式では用いられない。しかし、有効な精度の変化に関する関数である以下の式よって表される。
【数３２】
0004752005.tif 000015
【数３３】
0004752005.tif 000016
【００２７】
例えば、周期的変動が発生する場合、時間間隔（ｔ2 −ｔ1 ）にわたるクロックの不正確性を平均化することが可能である。これらの定義を用いると、連続リアルタイムクロックは以下の式で表される。
【数３４】
0004752005.tif 000017
【００２８】
ここでは、以下のように定義される。
【数３５】
0004752005.tif 000018
【数３６】
0004752005.tif 000019
例えば、ｐｐｍの単位におけるクリスタル精度である。
ｇ（ｐ+ ，ｔ）は、ベクトルｐ+ によって表される物理的変数の関数として時間に関するクロックの精度を変更する。
【数３７】
0004752005.tif 000020
【数３８】
0004752005.tif 000021
【数３９】
0004752005.tif 000022
【００２９】
技術的処理は、無限量の短い時間間隔には分解され得ない。いずれの物理的クロックも有限周波数で発振する。この周波数は、クロックのクロック周期Ｔと相互に関連づけられる。離散リアルタイムクロックの最短の判読可能な間隔は、細分性Ｇとして定義される。理想的なクロックの離散リアルタイムクロック上への形式的なマッピングは、以下の関係式で表される。
【００３０】
離散リアルタイムクロック：
【数４０】
0004752005.tif 000023
【００３１】
ここでは、以下のように定義される。
【数４１】
0004752005.tif 000024
【数４２】
0004752005.tif 000025
【数４３】
0004752005.tif 000026
【数４４】
0004752005.tif 000027
ここで、ＧおよびＲvは発生する最小単位に関して正規化されている。
【数４５】
0004752005.tif 000028
【００３２】
時間の量子化は、演算
【数４６】
0004752005.tif 000029
によって記述される。ＲV は、離散リアルクロックの数値範囲を示す。ＲV 時間制限の後、離散リアルタイムクロックは再び０を示す。これは等式のモジュロ演算によって示される。不正確性Ｇ（ｐ+ ，ｔ）は、ここでは直接的には現れない。クロック周期Ｔ、細分性Ｇr 、開始オフセットＳo 、および数値レートＲv は、秒の単位で示されなければならない。
【００３３】
離散クロック
【数４７】
0004752005.tif 000030
によって制御されるカウンタは、以下の関係式で表される。
【００３４】
【数４８】
0004752005.tif 000031
【００３５】
ここでは、以下のように定義される。
【数４９】
0004752005.tif 000032
【数５０】
0004752005.tif 000033
【数５１】
0004752005.tif 000034
【数５２】
0004752005.tif 000035
【数５３】
0004752005.tif 000036
【数５４】
0004752005.tif 000037
【００３６】
導出カウンタの設定に対する遅延時間はτである。ＮA は、カウンタの表示が１回変わるまでの離散リアルタイムクロックに関する表示の変更の数を示す。細分性ＧA は、表示間隔の変化を示す。ＲA は、導出カウンタの数値範囲を示す。
【００３７】
図２は、ＳＤＬにおける処理ユニットおよびいわゆる「ＳＤＬ処理」の構造を模式的に示す図である。従来のＳＤＬ概念に基づいて提供される１つ以上のタイマーは、本発明に従って、１つのリアルタイムクロックに接続される。図３から明白であるように、これによって、異なるＳＤＬ処理用のタイマーを同期させることが可能である。
【００３８】
図２および図３に示すような到達信号には、タイムスタンプ（この場合にはリアルタイムマーカである）が提供され得る。
【００３９】
図４ａは、ＳＤＬにおける抽象データタイプのセットの定義を示す図である。これによって、リアルタイムクロックの表示にアクセスすること、リアルタイムクロックをリセットすること、またはリアルタイムクロックを特定のリアルタイムに関連する所定値に設定することが可能である。
【００４０】
本発明による方法によって、埋め込まれた分散リアルタイムシステムのハードウェアおよびソフトウェアの自動的導出のために設計パターンを指定することが可能となる。このような設計パターンの１つの好適な構成要素は、時間制限の公式化である。特に、この目的のためには、用いられるプログラミング言語がタイムマーカを生成することが可能であることが必要である。これは、例えば、システム時間を要求することによって行われ得る。一例として図５に示すこのような設計パターンの考えられ得る時間要件は以下である。
【００４１】
ａ）  状態ＲＥＡＤの周期的な発生、すなわち、ブランチの監視および状態遷移１の実行に関する第１の時間要件。第１の時間要件は、データストリームが受信される速度に起因する。これは、統計上の平均に基づいて、キューから読み出され得るデータワードの数がキューに書き込まれ得る最大数とちょうど同じであることを指定する。第１の時間要件は、キューがデータワードを含む場合にのみ適用可能である。
【００４２】
ｂ）  第２の時間要件は、データレートＲに対応する媒体に関して、その媒体をロードするための「出力」信号が１／Ｒ時間単位毎に作成されなければならないことを指定する。第２の時間要件は、データワードが設計パターンのメモリ内に格納される場合のみ適用可能である。
【００４３】
図４ｂに示す「Ｅｖｅｎｔｃｌａｓｓ」データタイプは、とりわけ、時間条件および時間要件の定義に適した以下の演算を提供する。
【００４４】
Ａｐｐｅｎｄ：  タイムスタンプのリストに現在のシステム時間を入力する。
Ｄｕｒａｔｉｏｎｅｖｅｎｔ：  リストに入力された２つのタイムスタンプ間の期間を計算する。
Ｍｏｎｉｔｏｒ：  故障が生じた場合に、定時点検の結果を記録し、それらの結果を適切な出力装置に書き込む。
ＴｈｒｏｗＥｘｃｅｐｔｉｏｎ：  故障が生じた場合に、例えば、システムを安全な状態に変更するために例外処理を呼び出す。
【００４５】
このパターンの支援を受けたモジュールの実装例について：
異なるアプリケーションにおける、またはモジュールとしてのパターンのそれぞれの機能は、最終的に、関数ＳｏｒｔＩｎｔｏ（）およびＳｏｒｔＯｕｔ（）によって定義される。設計パターンが、例えば、シーケンスプランニングアルゴリズム、時分割または周波数分割マルチプレクサ、もしくは帯域幅割当てをインプリメトするために、通信システムで用いられる場合、各データワードの関数ＳｏｒｔＩｎｔｏ（）にタイムスタンプが与えられる。次いで、ＳｏｒｔＯｕｔ（）が定義されたシーケンスのデータワードをそれらのタイムスタンプに基づいて読み出す。さらに、関数ＳｏｒｔＩｎｔｏ（）においてトラフィックの監視（Ｐｏｌｉｃｙ）を実行することが可能である。この処理では、データストリームの送信元が一致したサービス品質（ＱｏＳ）を含んでいるかどうかに関して判定が行われる。この時点で、とりわけ、そのパケットに関するルーティング情報（アドレス、電話番号、またはＡＴＭにおけるパス番号）も評価され得、伝達関数の宛先が定義される。
【００４６】
一方で、開ループまたは閉ループ制御アルゴリズムを実装する場合、それぞれの操作量の計算が関数ＳｏｒｔＯｕｔ（）において実行される一方、関数ＳｏｒｔＩｎｔｏ（）はセンサ値（制御量）を格納する。
【００４７】
このようにして、実際の計算が実行される前に、まず、多数の値が収集され得る。
【００４８】
混合ＨＷ／ＳＷシステムの自動導出について：
上記のセクションに記載した設計パターンは変換され、非常に容易に実装され得る。状態遷移１および状態遷移２は、この目的のために個別に考慮される。これは、この分離によって各状態遷移のための特定のソフトウェアまたはハードウェアを定義することが可能となるためである。この場合、個々の入力または出力モジュールもまた、混合ＨＷ／ＳＷ実装を表し得る。この場合、このモジュールの入力遷移および出力遷移は、常に重なり合うように実行され得るが（パイプライン）、これは、２つの状態遷移間の同期が内部バッファの共有メモリを介して達成され得るためである。このような手順によって、実装の複雑性を劇的に低減することが可能となり、実行され得る速度を著しく上昇させることが可能となる。一例として、図６は、設計パターンがどのように実装され得るかを示す。この場合、このパターンの各部分はハードウェアまたはソフトウェアのいずれかで実装され得る。この実装に関して、以下の組み合わせが可能である。
【００４９】
・全てのモジュールがハードウェアまたはソフトウェアに実装される。
・状態遷移１およびＳｏｒｔＩｎｔｏ（）がハードウェアに実装される一方、状態遷移２およびＳｏｒｔＯｕｔ（）はソフトウェアに実装される。
・状態遷移１およびＳｏｒｔＩｎｔｏ（）がソフトウェアに実装される一方、状態遷移２およびＳｏｒｔＯｕｔ（）はハードウェアに実装される。
・ＳｏｒｔＩｎｔｏ（）がハードウェアに実装され、全ての他の部分はソフトウェアに実装される。
・ＳｏｒｔＯｕｔ（）がハードウェアに実装され、全ての他の部分はソフトウェアに実装される。
・ＳｏｒｔＩｎｔｏ（）およびＳｏｒｔＯｕｔ（）がハードウェアに実装され、残りの処理はソフトウェアに実装される。
【００５０】
この場合の１つの大きな利点は、異なる合成技術が４つのタスクエレメントの全てに対して用いられ得ることである。適切な合成技術は、Ｏ．Ｂｒｉｎｇｍａｎｎらの「Ｍｉｘｅｄ  Ａｂｓｔｒａｃｔｉｏｎ  Ｌｅｖｅｌ  Ｈａｒｄｗａｒｅ  Ｓｙｎｔｈｅｓｉｓ  ｆｒｏｍ  ＳＤＬ  ｆｏｒ  Ｒａｐｉｄ  Ｐｒｏｔｏｔｙｐｉｎｇ」、１０th  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｒａｐｉｄ  Ｓｙｓｔｅｍ  Ｐｒｏｔｏｔｙｐｉｎｇ、Ｃｌｅａｒｗａｔｅｒ、Ｊｕｎｅ  １９９９より公知である。関数ＳｏｒｔＩｎｔｏ（）およびＳｏｒｔＯｕｔ（）は、一般に、高位アルゴリズム成分を有するため、アーキテクチャ合成がそれらの関数に用いられ得る。すなわち、特殊な特定用途向けのプロセッサがツールを用いてそれらの関数のために生成される。２つの状態遷移がハードウェアに実装される場合、これらは、いずれの最適化方法（合成）を用いることなく、レジスタートランスファーレベル（ＲＴＬ）で単純なハードウェア記述に直接的に変換され得る。この概念的分離は同様に、個々の状態遷移のハードウェア／ソフトウェア分割をかなり単純化する。
【００５１】
２つのモジュールが重なり合う実施形態（パイプライン）は、両方のモジュールが同時にメモリ内の同じメモリセルにアクセスすることが望まれないことを前提に実行可能である。設計パターンのセマンティクスは常に保護されるが、これは、同時アクセスが生じた場合、２つの関数のうちの一方が停止し、他方の関数が終了するまで待機するためである。
【００５２】
モジュールを用いた複雑なシステムの設計について：
上述の設計パターンから導出され得るモジュールの支援を受けた比較的に複雑なシステムの構築をＱｏＳ要件を備えたデータサービス用のスイッチングコンピュータの例を用いて説明する。トラフィックの監視（Ｐｏｌｉｃｙ）および帯域幅割当て（Ｓｃｈｅｄｕｌｅｒ）のための基本的なモジュールは、設計パターンのインスタンスによって提供される。
【００５３】
図７の左側にシステムの基本構造を示す。到来するデータストリーム（本例では２つ存在する）が、トラフィックの監視（Ｐｏｌｉｃｙ）によって解析される。トラフィックの監視は、設計パターン（図７の右側）の支援を受けて提供される。図７に示すように、関数ＳｏｒｔＩｎｔｏ（）はこの目的のために定義されている。
【００５４】
このようなスイッチングコンピュータでは、制御情報とペイロードデータとの間にも区別がつけられる。データストリームが制御情報を含む場合、この情報は監視モジュールＣｏｎｔｒｏｌへと送られる。次いで、通常のテレコミュニケーションプロトコルがこのモジュールで処理される。システム内のデータフロー（スイッチング）を記述する情報が、Ｃｏｎｔｒｏｌで生成される。これは、トラフィックの監視において変数ＯｕｔＰＩＤを設定するＣｏｎｔｒｏｌによって行われる。このスイッチングは、図８のモジュールＳｃｈｅｄｕｌｅｒの多数のインスタンス（例えば、各出力線に対して１つ）、およびトラフィックの監視から適切な帯域幅アロケータへと送られるデータワードによって提供される。適切な帯域幅アロケータ（Ｓｃｈｅｄｕｌｅｒ）の（変数ＯｕｔＰＩＤ）によるアドレス指定によって、１つの出力チャネルに割り当てられるデータストリームが生じる。
【００５５】
原則的に、入力に多数のトラフィックモニター（ｎ個の入力）が存在し、出力にＳｃｈｅｄｕｌｅｒタイプの多数のモジュール（ｍ個の出力）が存在することが可能である。
【００５６】
この時点で帯域幅が制限されたチャネルが実装される定義は、システムのコストおよび要件に依存する。原則的に、接続チャネルの帯域幅は無限に広い。
【００５７】
いくつかの考え得る変形例を以下のセクションにおいて例として示す。
【００５８】
複雑なシステムの自動導出について：
図９ａ）は、仕様レベルでのスイッチングコンピュータの基本構造を示す。ここでは、種々のアーキテクチャがここから導出され得る。ソフトウェアモジュールはプロセッサ（ＣＰＵと略記する）上に提供される一方、ハードウェアモジュールはＡＳＩＣ（特定用途向け集積回路）において「キャスト」される。図面では、それぞれの場合において、実線の円が設計パターンの１つのインスタンスを示し、Ｐ、Ｓ、およびＣがＰｏｌｉｃｙ、Ｓｃｈｅｄｕｌｅｒ、およびＣｏｎｔｒｏｌの略語として用いられる。通信チャネルが、バスまたはスイッチングモジュール上にマッピングされ得る。
【００５９】
図９ｂ）の実装は、２つのトラフィック監視インスタンス（Ｐｏｌｉｃｙ）を処理するプロセッサ、帯域幅割当てモジュール用の３つのハードウェアモジュール（Ｓｃｈｅｄｕｌｅｒ）、データワードを送信するためのバス、および制御情報用のバスを有する。これに対して、図９ｃ）のアーキテクチャは、監視インスタンスおよびトラフィック監視インスタンス用の３つのプロセッサ、およびＳｃｈｅｄｕｌｅｒを提供する１つのハードウェアモジュールを備える。
【００６０】
図９ｄ）では、対照的に、スイッチング機能は共通のバスを用いることによってではなく、スイッチングモジュール（空間分割マルチプレクサ）を介して実装される。
【００６１】
ソフトウェアモジュールおよびハードウェアモジュールの任意の他の組み合わせも当然ながら実現可能であり、例えば、Ｓｃｈｅｄｕｌｅｒの一部のみがハードウェアに実装され、残りの部分がソフトウェアに実装され得る。テレコミュニケーションプロトコルを提供するＣｏｎｔｒｏｌモジュールを除いて、スイッチングコンピュータの全てのモジュールが、設計パターンにおいて種々のインスタンスの形態を有し得る。
【図面の簡単な説明】
【図１】  図１は、リアルタイムクロックを定義するグラフを示す。
【図２】  図２は、リアルタイムクロックを用いたＳＤＬ処理を模式的に示す。
【図３】  図３は、ＳＤＬを用いた同期した分散型リアルタイムシステムを示す。
【図４ａ】  図４ａは、抽象データタイプに関連したクロックおよびアクセスの仕様を示す。
【図４ｂ】  図４ｂは、抽象データタイプに関連した時間制限およびアクセスの仕様を示す。
【図５】  図５は、抽象データタイプに関連した時間要件およびアクセスの仕様を示す。
【図６】  図６は、設計パターンの実装を示す。
【図７】  図７は、トラフィックモニタリングを用いたスイッチングコンピュータの仕様を示す。
【図８】  図８は、図７に示すスイッチングコンピュータの出力の構成を示す。
【図９】  図９ａ）〜ｄ）は、種々のアーキテクチャの変形例の仕様を示す。
【図１】
0004752005.tif 000056
【図２】
0004752005.tif 000057
【図３】
0004752005.tif 000058
【図４ａ】
0004752005.tif 000059
【図４ｂ】
0004752005.tif 000060
【図５】
0004752005.tif 000061
【図６】
0004752005.tif 000062
【図７】
0004752005.tif 000063
【図８】
0004752005.tif 000064
【図９】
0004752005.tif 000065