(57)【要約】 【課題】タスクに関連するタイミング要件に明示的に対処するメカニズムを備えた時間認識システムを提供する。【解決手段】  タスクによって使用される１組の資源２０、２２、２４・・・２６と、前記タスクに関連する１組のタイミングパラメータ２８に応じて、該タスクによって使用されるように前記資源のサブセットを専用化する資源専用化メカニズム１２６と、を具備する。前記タイミングパラメータ２８は、前記タスクに関連する１連の時間制約から導出される。また、前記時間制約が満たされない場合に障害イベントを生成する。  【選択図】図１
2007058854.tif 000002
【特許請求の範囲】
【請求項１】
タスクによって使用される１組の資源と、
前記タスクに関連する１組のタイミングパラメータに応じて、該タスクによって使用されるように前記資源のサブセットを専用化する資源専用化メカニズムと、
を具備する、時間認識システム。
【請求項２】
前記タイミングパラメータは、前記タスクに関連する１連の時間制約から導出される、請求項１に記載の時間認識システム。
【請求項３】
前記資源専用化メカニズムは、前記時間制約が満たされない場合に障害イベントを生成する、請求項２に記載の時間認識システム。
【請求項４】
前記資源専用化メカニズムは、前記タイミングパラメータに応じて前記タスクに関連する１組のコードを前記資源のうちの１つ又は複数に割り当てるオペレーティングシステムを含む、請求項１に記載の時間認識システム。
【請求項５】
前記資源専用化メカニズムは、前記資源のうちの１つ又は複数に対するアーミングメカニズムを含む、請求項１に記載の時間認識システム。
【請求項６】
前記資源専用化メカニズムは、前記タイミングパラメータに応じて１組のメモリ資源を管理する１組のコードを出力するコンパイラを含む、請求項１に記載の時間認識システム。
【請求項７】
前記資源専用化メカニズムは、前記タイミングパラメータに応じて、前記資源のうちの１つ又は複数を構成する１組のコードを出力するコンパイラを含む、請求項１に記載の時間認識システム。
【請求項８】
前記資源専用化メカニズムは、通信スイッチの一部を前記タスクに専用化するメカニズムを含む、請求項１に記載の時間認識システム。
【請求項９】
前記資源専用化メカニズムは、前記タイミングパラメータに応じて前記タスクに関連する１組のデータをメインメモリからキャッシュメモリに移動させるオペレーティングシステムを含む、請求項１に記載の時間認識システム。
【請求項１０】
前記資源専用化メカニズムは、前記時間認識システムの前記１組のノードの各々において同期クロックを含み、それにより該同期クロックは、前記タイミングパラメータに応じて前記資源の専用化を可能にする、請求項１に記載の時間認識システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１連の時間制約に左右されるシステムに適用される時間認識システムに関する。
【背景技術】
【０００２】
種々のシステムが、１連の実世界（real-world）の時間制約（time constraints）に左右される場合がある。たとえば、計測／制御システムは、被試験デバイスに付随する１連の時間制約、たとえばサンプルレート、制御値更新レート等に左右される場合がある。
【０００３】
１連の実世界の時間制約に左右されるシステムは、時間制約に左右されるいくつかのタスクと、時間制約に直接左右されないいくつかのタスクとを含む場合がある。１連の実世界の時間制約に左右されるタスクを、ハードリアルタイム（hard real-time）（ＨＲＴ）タスクと呼ぶ場合がある。ＨＲＴタスクの一例は、被試験デバイスの物理特性によって確定される実世界時間、レート等でデータサンプリングを実行するタスクである。ＨＲＴタスクの別の例は、実世界時間／レートでシステム又はデバイスに適用される制御値に対して計算を実行するタスクである。
【０００４】
ＨＲＴタスクのタイミング性能は、その実行環境における種々の要素によって決まる可能性がある。実行環境における要素の例には、現在実行しているタスクの数、タスクの計算集約性（computational intensiveness）、及びタスクをサポートするために利用可能なハードウェア資源の容量がある。
【０００５】
ＨＲＴタスクの１連の時間制約を満たす１つの従来の技法は、ＨＲＴタスクに、比較的高い優先順位を実行するために割り当てることを含む。不都合なことに、こうした技法は、ＨＲＴタスクのタイミング要件には明示的に対処せず、タイミング要件を満たすことができるという可能性程度があるにすぎないのも同然かもしれない。
【０００６】
ＨＲＴタスクの１連の時間制約を満たす別の従来の技法は、命令実行性能の向上を期待してシステムハードウェア資源を増大させることを含む。たとえば、システムに対し、より高性能のプロセッサ、大容量のメモリ等を提供する場合がある。不都合なことに、この技法は、ＨＲＴタスクの時間制約を満たす可能性のある資源の推測程度のものにしかならない可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
タスクに関連するタイミング要件に明示的に対処するメカニズムを提供する時間認識システムを開示する。
【課題を解決するための手段】
【０００８】
本教示による時間認識システムは、タスクによって使用される１組の資源と、タスクに関連する１組のタイミングパラメータに応じてタスクによって使用される資源のサブセットを専用化する資源専用化メカニズムとを有する。本教示による資源専用化メカニズムの実施形態には、ハードウェアメカニズムと、ソフトウェアメカニズムと、ハードウェア／ソフトウェアの組合せのメカニズムとが含まれる。
【０００９】
本発明の他の特徴及び利点は、以下の発明を実施するための最良の形態から明らかとなろう。
【００１０】
本発明を、その特定の例示的な実施形態を参照して説明し、それに従って図面を参照する。
【発明を実施するための最良の形態】
【００１１】
図１は、本教示による時間認識システム１０を示す。時間認識システム１０は、１組の資源２０〜２６と資源専用化メカニズム１２６とを含む。資源専用化メカニズム１２６は、１組のタイミングパラメータ２８に応じて、資源２０〜２６のサブセットを専用化する。タイミングパラメータ２８を、時間認識システム１０で実行されるタスクに関連する１連の時間制約から導出してもよい。タイミングパラメータ２８に関連するタスクは、時間認識システム１０のＨＲＴタスクであってもよい。
【００１２】
資源２０〜２６は、時間認識システム１０におけるタスクの実行をサポートするハードウェア資源を含んでもよい。タスクをサポートするハードウェア資源の例には、プロセッサ、メモリ、専用計算ハードウェア、通信ハードウェア、入出力デバイス、特定用途向け装置、たとえばセンサ、アクチュエータ、計測装置等が含まれる。
【００１３】
資源専用化メカニズム１２６は、ハードウェアメカニズムであっても、ソフトウェアメカニズムであっても、又はハードウェア／ソフトウェアの組合せのメカニズムであってもよい。資源専用化メカニズム１２６は、タイミングパラメータ２８が満たされることを保証するために必要なふさわしい期間の間、資源を割り当てることによって資源をタスクに専用化する。
【００１４】
図２は、資源２０〜２６がプログラムコードを実行する１組のプロセッサＡ〜Ｄを含む、時間認識システム１０の一実施形態を示す。この実施形態における資源専用化メカニズム１２６は、クロック２００と１組のレジスタ２１０〜２１４とを含む。クロック２００は、時刻時間値（time-of-day time value）を提供し、レジスタ２１０〜２１４は、タイミングパラメータ２８を保持するためのものである。
【００１５】
タイミングパラメータ２８は、期間の指定と資源２０〜２６のうちの１つ又は複数に対する識別子とを含んでもよい。たとえば、タイミングパラメータ２８は、開始時刻ＴＳ及び終了時刻ＴＥとハードウェア資源２０の識別子とを指定することにより、そのハードウェア資源２０が時刻ＴＳにおいて開始し時刻ＴＥにおいて終了するタスクを実行するために専用となるべきことを示してもよい。タイミングパラメータ２８は、繰返し時間間隔を指定してもよい。タイミングパラメータ２８を、指定されたハードウェア資源を専用化するための「時限爆弾（time bomb）」又は繰り返す「時限爆弾」に対するパラメータとして使用してもよい。
【００１６】
資源専用化メカニズム１２６は、レジスタ２１０〜２１４の内容及びクロック２００が、プロセッサのうちの１つ又は複数がタスクに対して専用となるべきことを示す場合に、開始信号を生成する。たとえば、資源専用化メカニズム１２６は、クロック２００の時刻が開始時刻ＴＳに一致した時に開始信号を生成する。さらに、資源専用化メカニズム１２６は、クロック２００の時刻が終了時刻ＴＥに一致した時に終了信号を生成する。
【００１７】
資源専用化メカニズム１２６からの開始信号及び終了信号は、レジスタ２１０〜２１４において指定されるプロセッサＡ〜Ｄに提供され、開始信号及び終了信号は、プロセッサＡ〜Ｄに対する割込み線に、若しくはプロセッサＡ〜Ｄが読取り可能な入力レジスタ又はメモリマッピングを介して提供されてもよい。プロセッサは、開始信号に応じてその開始信号に関連するタスクに対して専用となり、停止信号に応じて通常処理に戻る。
【００１８】
図３は、資源２０〜２６が、タイミングパラメータ２８に応じてタスクに対して専用となり得る通信スイッチ２４０を含む、時間認識システム１０の一実施形態を示す。資源専用化メカニズム１２６は、通信スイッチ２４０の資源が特定のタスクに専用となるべきことを示す開始信号を生成し、通信スイッチ２４０の資源のタスクに対する専用化が終了すべき時に終了信号を生成する。
【００１９】
通信スイッチ２４０は、１組の入力ポート２４６と１組の出力ポート２４８との間でメッセージをルーティングするスイッチファブリック２４２を含む。入力ポート２４６は、スイッチファブリック２４２がビジーである間にメッセージを保持する待ち行列を含む。資源専用化メカニズム１２６からの開始信号により、入力ポート２４６は、特定のタスクに関連する到着メッセージを、バイパス経路２４４を介して出力ポート２４８に送出する。通信スイッチが特定のタスクに対して専用である間、バイパス経路２４４は、特定のタスクに関連するメッセージを、スイッチを越えて搬送し、入力ポート２４６における待ち行列をバイパスする。資源専用化メカニズム１２６からの終了信号により、スイッチは通常モードに戻り、スイッチファブリック２４２を使用してすべてのメッセージが入力ポート２４６と出力ポート２４８との間で転送されるようになる。
【００２０】
別の実施形態では、スイッチファブリック２４２はパーティション化（区分分割）され、資源専用化メカニズム１２６からの開始信号及び終了信号に応じて、スイッチファブリック２４２の一部が特定のタスクに対して専用となる。たとえば、スイッチファブリック２４２の半分が特定のタスクに関連するメッセージを処理することに専用となってもよく、一方で、スイッチファブリック２４２の残りの半分が他のすべてのトラフィックを処理する。特定のタスクに関連するメッセージを、それらメッセージの所定コードによって特定してもよい。
【００２１】
図４は、資源２０〜２６がメインメモリ３００とキャッシュメモリ３０２とを含む時間認識システム１０の一実施形態を示す。この実施形態の資源専用化メカニズム１２６は、アプリケーションプログラム３０〜３２に関連するＨＲＴ時間制約から導出されるタイミングパラメータに応じて、ハードウェア資源を１組のアプリケーションプログラム３０〜３２に割り当てるオペレーティングシステム１２を含む。たとえば、アプリケーションプログラム３０は、１組のＨＲＴ時間制約４２に従ってＨＲＴタスクを実行する１組のコード４０を含む。コード４０は、オペレーティングシステム１２下で実行するスレッドであってもよい。アプリケーションプログラム３０〜３２及びオペレーティングシステム１２は、プロセッサ３０４によって実行される。
【００２２】
一実施形態では、オペレーティングシステム１２は、アーミングメカニズム（arming mechanism：セキュリティ機構）を使用して、ＨＲＴタスクに関連するデータを低速なメインメモリ３００から高速アクセスのキャッシュメモリ３０２に移動させる。たとえば、オペレーティングシステム１２は、アーミング信号に応じて、コード４０に関連するデータをメインメモリ３００からキャッシュメモリ３０２に移動させる。キャッシュメモリ３０２によって提供されるより高速なデータアクセスにより、時間認識システム１０は、ＨＲＴ時間制約４２を満たすことができる。メインメモリ３００のレイテンシ時間は予測できない可能性があるが、キャッシュメモリ３０２は、予測できるメモリレイテンシ時間を提供する。たとえば、メインメモリ３００が、他のデバイス、たとえばビデオカードと共有されるバスにある場合、メインメモリアクセスに関してストール（stall:立ち往生）が発生する可能性がある。一方、キャッシュメモリ３０２はプロセッサ３０４によって排他的に所有される。したがって、レイテンシ時間を正確に予測することができる。
【００２３】
一実施形態では、プロセッサ３０４は、キャッシュメモリ３０２を管理する命令を含む。たとえば、プロセッサ３０４は、キャッシュメモリ３０２の指定されたメモリページをロック（lock）するページロック命令を含む。ページロック命令を使用して、ＨＲＴタスクに関連する１組のデータが、１組のＨＲＴ時間制約を満たす指定された時間内にキャッシュメモリ３０２から引き渡されることを保証してもよい。ページロック命令は、開始時刻、停止時刻、持続時間等の同じタイミング構成に従ってキャッシュメモリ３０２のページをロックする。これにより、ページが指定された時刻にキャッシュメモリ３０２にあることが保証される。
【００２４】
オペレーティングシステム１２は、アプリケーションプログラミングインタフェース（ＡＰＩ）４４を介してシステムサービスをアプリケーションプログラム３０〜３２に提供する。これらシステムサービスにより、メモリ資源のＨＲＴタスクへの専用化が可能になる。システムサービスは、パラメータとして、メモリ資源専用化に対する時間指定を含むタイミングパラメータ２８をとる。選択されたメモリ資源の専用化により、ＨＲＴタスクに関連する１組のＨＲＴ時間制約を満たすことができることを保証することができる。アーミングメカニズムを使用して、専用メモリ資源におけるいかなる無駄をも最小化することができる。たとえば、メモリ資源を、アーミング信号が発生するまで共有してもよく、それにより、アーミング信号によって、メモリ資源が既知の時刻内でＨＲＴタスクの専用の且つ割り当てられた資源に遷移する。割当てを、アーミング信号によって指定してもよく、又は事前に割り当ててもよい。
【００２５】
メモリ資源を割り当て且つ／又は専用化するアーミング信号を、ハードウェアが生成してもよく又はソフトウェアが生成してもよい。メモリ資源を割り当て且つ／又は専用化するアーミング信号は、外部アーミング信号、ネットワークアーミング信号、内部時間ベースアーミング、又はオペレーティングシステム１２によって始動されるアーミングであってもよい。一実施形態では、オペレーティングシステム１２は、アーミング期間を指定するＩＥＥＥ１５８８クロックから割込みを受け取る。
【００２６】
アプリケーションプログラミングインタフェースＡＰＩ４４によって、アプリケーションプログラム３０は、コード４０に対する実行環境仕様を提供することができる。実行環境仕様は、コード４０を特定の１組のメモリ資源に、たとえばメモリの特定のページに、又は特定の１つ又は複数のプロセッサに、又は特定の特定用途向けハードウェアに割り当てる指示を含んでもよい。
【００２７】
オペレーティングシステム１２は、１組のＨＲＴ時間制約が満たされない場合に障害イベントを生成する。一実施形態では、オペレーティングシステム１２は、ＨＲＴタスクの完了がそのＨＲＴ時間制約で指定された完了時間の満了に先行する場合に解除される完了時限爆弾（completion time bomb）を含む。完了時限爆弾は、ＨＲＴタスクがそのＨＲＴ時間制約を満たすように時間内に完了し損なった場合に発火し（fire）イベントを生成する。このメカニズムを、強制完了時刻を有する任意の連続動作に対して使用してもよい。その例には、ネットワーク上での特定のメッセージの受信又は送信、ハードウェア構成又は時限爆弾等のパラメータのオペレーティングシステム１２を介する設定等が含まれる。
【００２８】
アプリケーションプログラム３０〜３２は、繰り返す時間ベースのタスクを含んでもよく、たとえば、アプリケーションプログラム３０はコード４０を周期的に繰り返してもよい。オペレーティングシステム１２は、繰返し時間ベースのコードをサポートするために繰返し時限爆弾を採用する。
【００２９】
ＡＰＩ４４は、アプリケーションプログラム３０〜３２に対しアーミング機能及びトリガ機能を提供する。ＡＰＩ４４を使用してＨＲＴタスクを基礎となるハードウェアに結び付けてもよく、それにより、指定されたハードウェア資源のＨＲＴタスクへの割当て／専用化が可能になる。ＨＲＴタスクに結び付けられてもよいハードウェア資源には、メモリ資源、たとえばキャッシュメモリ３０２及びメインメモリ３００と、他のハードウェア資源、たとえばネットワーク通信資源、プロセッサ資源、特定用途向けハードウェア等がある。
【００３０】
オペレーティングシステム１２は、時間ベースの動作に対するイベントモデルを、ＡＰＩ４４を介してアプリケーションプログラム３０〜３２に提示する。アプリケーションプログラム３０〜３２は、明示的な時間の保証、たとえばアプリケーションが開始する時刻、その最大持続時間等を含む動作の集まりとして構成される。オペレーティングシステム１２は、実行されるコードを、時間指定を含むコードスニペット（code snippets）の集まりとして見る。たとえば、コード４０はＨＲＴ時間制約４２を有する。オペレーティングシステム１２は、指定された時刻（複数可）においてコードスニペットを実行し、スニペットが時間指定に従って完了しない場合にエラー指示子を提供する。
【００３１】
この実施形態における資源専用化メカニズム１２６はコンパイラ１４を含む。コンパイラ１４は、ＨＲＴ時間制約４２に応じてメモリを管理するコード４０を生成する。
【００３２】
図５は、本教示に従うコンパイラ１４の機能を示す。コンパイラ１４は、ソースコード６０に応じてコード４０を生成する。コンパイラ１４は、ソースコード６０を通してパスを作成することによりメモリアクセスを特定する。コンパイラ１４は、コード４０において、オペレーティングシステム１２に対してメモリページングを実行時に残すのではなく、明示的にメモリページングを管理するメモリ管理命令を出力する。コンパイラ１４は、メモリ管理命令を出力することにより、メモリアクセスレイテンシ(memory access latency)の可変性を排除する。
【００３３】
コンパイラ１４は、ＨＲＴ時間制約４２に対する厳守（adherence）を最大限にするようにコード４０を出力する、コードエミッタ（code emitter）６２を含む。コンパイラ１４は、入力として、コード４０の命令の時間実行性能に関連する１組の命令実行情報１６を取得する。命令実行情報１６は、特定の命令が実行するためにとる周期の数、及び特定の命令がストールする可能性があるか否か等を指定する。
【００３４】
コンパイラ１４は、コード４０のフローグラフ６４を生成し、命令実行情報１６を使用してコード４０を実行するために必要な時間を予測する。コンパイラ１４は、命令実行情報１６を使用してコード４０の非メモリアクセス命令の実行に対する時間を予測する。コンパイラ１４は、コード４０のメモリアクセス命令の実行時刻を予測する時に、任意の可変メモリレイテンシ（メモリが共有されていないと推定する）を排除するようにコード４０を構成する。たとえば、コンパイラ１４は、ソースコード６０を通してパスを作成し、メモリアクセスに関与する領域を特定する。そして、その領域に対するコードを出力する前に、コンパイラ１４は、すべての必要なデータをメインメモリ３００からキャッシュメモリ３０２にフェッチするコードを出力する。コンパイラ１４は、それ自体のプライベートキャッシュメモリにメインメモリ３００に対するすべての書込みをシャドウイングするコードを出力し、メモリアクセスにおける不確実性を排除するためにプライベートメモリからのフェッチによりメモリフェッチ命令を増強する。これにより、予測可能性に対するあり得る性能のトレードオフが提供される。メモリを操作するために出力される命令は、最適なものでなくてもよいが、コードが限られた時間内で実行することを保証する。
【００３５】
一実施形態では、コンパイラ１４は、タイミング指定とコード４０に対する資源要件リストとを生成する。たとえば、コンパイラ１４は、「このバイナリは、Ｘクラスアーキテクチャにおいて２００ＭＨｚクロックに対し５．４ｍｓで実行し、７処理パイプライン、２８レジスタ及び２５０２００バイトのキャッシュメモリを必要とする」等のメッセージを生成してもよい。
【００３６】
図６は、資源２０〜２６が１組のノード１１０〜１１４と通信インフラストラクチャ１３０とを含む、時間認識システム１０の一実施形態を示す。ノード１１０〜１１４は、時間認識システム１０において分散アプリケーションを実行する場合に通信インフラストラクチャ１３０を介してメッセージを交換する。
【００３７】
時間認識システム１０における分散アプリケーションは、１組のＨＲＴ時間制約を含んでもよい。ＨＲＴタイミング制約を満たす時間認識分散システム１０の能力は、ノード１１０〜１１４間のメッセージ転送を提供する通信インフラストラクチャ１３０の能力によって決まる。たとえば、通信インフラストラクチャ１３０は、ノード１１０〜１１４間のメッセージ転送のタイミングにおいてレイテンシ及びジッタをもたらす可能性がある。
【００３８】
通信インフラストラクチャ１３０のレイテンシ及びジッタを、時間認識システム１０における分散アプリケーションのＨＲＴ時間制約を満たすために適当な精度に制限してもよい。さらに、通信インフラストラクチャ１３０を介するメッセージ、たとえば１組のＨＲＴ時間制約を満たすことに関連するアーミングメッセージ及びトリガメッセージの転送を、レイテンシ及びジッタに対する制限に応じてスケジュールしてもよい。
【００３９】
図７は、ノード１１０における資源専用化メカニズム１２６の実施形態を示す。ノード１１０〜１１４の各々は、ノード１１０に対して示すものと同様のメカニズムを有してもよい。
【００４０】
ノード１１０における資源専用化メカニズム１２６は、同期クロック１５０を含む。一実施形態では、同期クロック１５０は、ＩＥＥＥ１５８８クロック同期規格に準拠するクロックである。ＩＥＥＥ１５８８規格は、時間認識分散システム１０に対する時間の共通感覚（common sense）を提供する。時間の共通感覚により、ノード１１０による動作を時間に基づいて指定することができる。たとえば、イベントトリガを、通信インフラストラクチャ１３０においてメッセージで搬送されるイベント時刻によって指定してもよい。同様に、アーミング期間を、通信インフラストラクチャ１３０においてメッセージで搬送されるタイミング指定によって指定してもよい。同期クロック１５０を、トリガメッセージ及びアーミングメッセージの内容に応じて適当なイベントをトリガし適当なアーミング機能を開始し終了するためのハードウェアソースとして使用してもよい。
【００４１】
ノード１１０に対するメッセージ転送、及びノード１１０からのメッセージ転送におけるレイテンシ及びジッタの影響により、ＩＥＥＥ１５８８プロトコルに従う同期クロック１５０の精度が劣化する可能性がある。それは、同期が、通信インフラストラクチャ１３０を介するタイミングメッセージの転送に基づくためである。さらに、レイテンシ及びジッタは、メッセージに関連するイベント時刻の前にメッセージがノード１１０に到達するのを妨げる可能性もある。したがって、通信インフラストラクチャ１３０におけるレイテンシ及びジッタは、分散アプリケーションの、そのＨＲＴ時間制約を満たす能力に影響を与える可能性がある。
【００４２】
ノード１１０における資源専用化メカニズム１２６は、レイテンシ及びジッタに対する制限に応じて通信インフラストラクチャ１３０を介するメッセージの転送を管理するオペレーティングシステム１５２を含む。さらに、ノード１１０における資源専用化メカニズム１２６は、適当な時刻に通信インフラストラクチャ１３０に対するメッセージ転送をトリガするトリガ回路１５４を含む。
【００４３】
ノード１１０における資源専用化メカニズム１２６は、通信インフラストラクチャ１３０を介するメッセージ転送を可能にするプロトコルスタック１６０を含む。プロトコルスタック１６０は、メディアアクセスコントローラ（ＭＡＣ）１６２と物理（ＰＨＹ）レイヤ１６４とを含む。ＭＡＣ１６２は、転送されるメッセージと受信されているメッセージを保持する待ち行列を有する。ＭＡＣ１６２及びＰＨＹ１６４は、メッセージ転送におけるレイテンシ及びジッタを低減するメカニズムを含む。
【００４４】
一実施形態では、ノード１１０の資源専用化メカニズム１２６は、ＨＲＴタスクに関連するメッセージで使用される予約コードを含む。ＭＡＣ１６２は、予約コードをオンザフライでアプリケーションプログラムから取得されたメッセージに挿入し、メッセージ送信のためにメッセージ長及びＦＣＳの適当な調整を実行する。予約コードを単独で使用してもよく、又はアーミングセマンティクス若しくはトリガリングセマンティクスがインプリメントされ得るメッセージ内にセグメントを定義するように使用してもよい。メッセージを受け取ると、ＭＡＣ１６２は、予約コードを検出し、それに応じて、適当な動作を生成し、元のメッセージが乱されないように予約コードを取り除く。この技法を使用して、メッセージが物理媒体での送信の過程にある間のレイテンシを低減することができる。メッセージ送信の開始時に、ＩＰＶ６ヘッダを同様に使用してもよい。
【００４５】
別の実施形態では、ノード１１０の資源専用化メカニズム１２６は、リアルタイムでＭＡＣ１６２の待ち行列の優先順位を変更するメカニズムを含み、それにより、メッセージ転送におけるレイテンシ及びジッタを低減する。別の実施形態では、ノード１１０の資源専用化メカニズム１２６は、ＭＡＣ１６２内部にメッセージを事前に組み立てるメカニズムを含み、それにより、オペレーティングシステム１５２を含むＭＡＣ１６２より高いプロトコルレベルによってもたらされるレイテンシ及びジッタを回避する。別の実施形態では、ノード１１０における資源専用化メカニズム１２６は、ＨＲＴタスクに関連するメッセージに対して帯域幅を予約するためにＭＡＣ１６２内部にアーミングのメカニズムを含む。別の実施形態では、ノード１１０の資源専用化メカニズム１２６は、所定環境下でプロトコルスタック１６０のレイヤ１においてシグナリングのメカニズムを含む。たとえば、シグナリングを、ＴＤＭＡのような時間ベース（たとえばＳＥＲＣＯＳ）、波長ベース又は周波数ベースのいずれかのマルチプレックスの１チャネルを使用してインプリメントしてもよい。
【００４６】
さらに別の実施形態では、ノード１１０における資源専用化メカニズム１２６は、ＰＨＹ１６４において符号化のメカニズムを含む。たとえば、１００ＢＴ及び他の高速プロトコルで使用される４Ｂ／５Ｂ符号化は、未使用ビットパターンを含む。未使用ビットパターンは、通常、平均送信電力（ゼロ平均）問題等の他のシグナリング要件を満たさないため、通常使用されない。アーミング及びトリガリングが通常シグナリングレートより大幅に頻度が低い場合、アーミング、トリガリング等に対する未使用コードの時々の使用が採用される場合もある。ＰＨＹ１６４は、リアルタイムイベントに応じてメッセージを送信する時、未使用コードのうちの１つを挿入する。ＰＨＹ１６４は、メッセージを受信する時は未使用コードを検出しその未使用コードを取り除き、それにより、本来はメッセージを待ち行列に入れることによってもたらされるレイテンシが、有効にシンボル時間まで低減する。
【００４７】
通信インフラストラクチャ１３０が通信スイッチを含む場合、この通信スイッチは、入力ポートで受信されたメッセージにおいて未使用コードを認識し、未使用コードを取り除き、一方、その出力ポートには、現送出メッセージに未使用コードを挿入するように合図する。それにより、本来は通信スイッチに関連するレイテンシが除去される。言い換えれば、到着メッセージＡにおける符号化アーミング信号を、他のポートにおける完全に異なるメッセージを介して他のノードに分散させることができる。いずれのノードに符号化を分散させるかの選択は、事前構成されてもよく、場合によっては符号化の一部であってもよく、又は通信スイッチ内の時間ベースであってもよく、又はマルチキャストされてもよい。
【００４８】
資源専用化メカニズム１２６は、時間認識システム１０において種々の資源を専用化するようになっている時間認識コンパイラを含んでもよい。従来技術によるコンパイラの役割は、プログラミング言語で表されるソフトウェアプログラムを、ＣＰＵ内のさまざまなコンポーネントのアクティビティを、命令を実行するように組織化する、１組の命令に変換するものとして特徴付けてもよい。これらを、ＣＰＵレベル命令と呼ぶ場合がある。従来技術によるコンパイラは、ＣＰＵの異なるクラスの構成とＣＰＵのコンポーネントの能力とに関する知識を有する場合があり、且つコマンドラインオプションに基づいて特定のＣＰＵに対しコードを出力する場合がある。たとえば、コンパイラは、特定のＣＰＵは１つの浮動小数点ユニットを有し別のＣＰＵは２つの浮動小数点ユニットを有する場合があるということを知っている場合があり、それに従って命令のシーケンスをスケジュールする場合がある。
【００４９】
本教示による時間認識コンパイラは、従来技術によるコンパイラのようにシステムの１つの特定のノードにおける１つのＣＰＵのみに対してではなく、時間認識システム１０全体の資源の動作を組織化する命令及び構成設定を出力する。時間認識コンパイラは、システム全体のアクティビティの時間的記述、たとえばタイミングパラメータ２８に応じて、多くのタイプの資源、たとえばＣＰＵ、計測フロントエンド、通信バス、ネットワーキング等を制御するバイナリアーティファクト（binary artifact）を出力する。時間的記述を、プログラムで表してもよい。バイナリアーティファクトを、ＣＰＵに対する従来のバイナリコードの形式で明示してもよく、それらはまた、他の資源に対する構成設定、たとえば計測回路、通信デバイス等に対する構成設定の形式をとってもよい。システムに複数のＣＰＵがある場合、各ＣＰＵに対して命令を出力してもよい。さまざまな資源は、従来技術によるコンパイラのように、メッセージを介して互いに明示的に通信する必要はない。代りに、時間及び同期クロックの共通概念が与えられると、さまざまなシステム資源に対する命令を出力する時に、コンパイラがそれらさまざまな資源に対する動作を暗黙的に同期することができる。
【００５０】
時間認識コンパイラは、複数のシステムの記述と、資源のタイプ、たとえばＣＰＵ、ルータ、計測フロントエンド等及びそれら資源がいかに接続されるか、及び資源が受け入れる構成設定の特徴、たとえばＣＰＵはバイナリコードを受け入れ、ルータは異なるバイナリコードを受け入れる可能性がある等の情報に関する知識とを含む、システムの内部構成を認識してもよい。
【００５１】
時間認識システム１０に対する時間プログラムを表すために高水準プログラミング言語を使用してもよい。こうした高水準プログラミング言語は、時間認識コンパイラが、特定のルータを構成する等の動作を実行する命令のシーケンスを発生する構成を含んでもよい。
【００５２】
本発明の上述した詳細な説明は、例示の目的のために提供され、網羅的であるようにも、又は本発明を開示した厳密な実施形態に限定するようにも意図されていない。したがって、本発明の範囲は、添付の特許請求の範囲によって規定される。
【図面の簡単な説明】
【００５３】
【図１】本教示による１組のハードウェア資源及び資源専用化メカニズムを含む時間認識システムを示す図である。
【図２】ハードウェア資源がプログラムコードを実行する１組のプロセッサを含む、時間認識システムの一実施形態を示す図である。
【図３】ハードウェア資源が通信スイッチを含む、時間認識システムの一実施形態を示す図である。
【図４】ハードウェア資源がメインメモリ及びキャッシュメモリを含む、時間認識システムの一実施形態を示す図である。
【図５】本教示によるコンパイラを示す図である。
【図６】本教示による時間認識分散システムを示す図である。
【図７】本教示による時間認識分散システムにおける資源専用化メカニズムを示す図である。
【符号の説明】
【００５４】
１２：オペレーティングシステム
１４：コンパイラ
１６：命令実行情報
２０〜２６：リソース
２８：タイミングパラメータ
３０〜３２：アプリケーションプログラム
４０：コード
４２：ＨＲＴ時間制約
６０：ソースコード
６２：コードエミッタ
６４：フローグラフ
１１０〜１１４：ノード
１２６：資源専用化メカニズム
１３０：通信インフラストラクチャ
１５０：周期クロック
１５２：オペレーティングシステム
１５４：トリガ回路
１６２：メディアアクセスコントローラ
１６４：物理レイヤ
２００：クロック
２４０：通信スイッチ
２４２：スイッチファブリック
２４４：バイパス経路
３００：メインメモリ
３０２：キャッシュメモリ
３０４：プロセッサ
Ａ〜Ｄ：プロセッサ
【図１】
2007058854.tif 000003
【図２】
2007058854.tif 000004
【図３】
2007058854.tif 000005
【図４】
2007058854.tif 000006
【図５】
2007058854.tif 000007
【図６】
2007058854.tif 000008
【図７】
2007058854.tif 000009