(57)【要約】【課題】正確なタイムスタンプを効率的に形成してリアルタイムアプリケーションの実行を迅速化できるようにする。【解決手段】ＣＰＵのクロック信号により駆動される、システムクロックに対するＣＰＵカウンタが準備され、ＣＰＵのクロック信号により駆動される、ＣＰＵ内の同期カウンタが準備され、ＣＰＵカウンタが読み出されてリアルタイムアプリケーションによってシステムクロックが形成され、リアルタイムアプリケーション中に同期カウンタが問い合わされ、同期カウンタがＣＰＵカウンタとシステムクロックとの最後の同期から所定の時間よりも長い時間が経過したことに相応する値を出力する場合、ＣＰＵカウンタがリアルタイムアプリケーションのシステムクロックに同期される。【選択図】図１
2013206472.tif 000002
【特許請求の範囲】
【請求項１】
相互に協働するＦＰＧＡ（２）とＣＰＵ（３）とを含み、前記ＦＰＧＡ（２）内にシステムクロックを有する少なくとも１つのレジスタ（４）が構成されている
リアルタイムシステム（１）でタイムスタンプを形成する方法であって、
前記ＣＰＵ（３）のクロック信号により駆動される、前記システムクロックに対するＣＰＵカウンタ（６）を準備するステップと、
前記ＣＰＵ（３）のクロック信号により駆動される、前記ＣＰＵ（３）内の同期カウンタ（７）を準備するステップと、
前記ＣＰＵカウンタ（６）を読み出してリアルタイムアプリケーション（９）によって前記システムクロックを形成するステップと、
前記リアルタイムアプリケーション（９）中に前記同期カウンタ（７）を問い合わせるステップと、
前記同期カウンタ（７）が前記ＣＰＵカウンタ（６）と前記システムクロックとの最後の同期から所定の時間よりも長い時間が経過したことに相応する値を出力する場合、前記ＣＰＵカウンタ（６）を前記リアルタイムアプリケーション（９）の前記システムクロックに同期させるステップと
を含む
ことを特徴とするリアルタイムシステムでタイムスタンプを形成する方法。
【請求項２】
前記ＣＰＵカウンタ（６）を前記システムクロックに同期させるステップは、同期時点で前記ＣＰＵカウンタ（６）およびＦＰＧＡレジスタ値を記憶させるステップを含み、前記リアルタイムアプリケーション（９）によって前記システムクロックを形成するステップは、記憶されたＣＰＵカウンタ（６）と記憶されたＦＰＧＡレジスタ値と読み出されたＣＰＵカウンタ（６）の値とから前記システムクロックを計算するステップを含む、請求項１記載のリアルタイムシステムでタイムスタンプを形成する方法。
【請求項３】
前記同期時点でＣＰＵカウンタ（６）を記憶するステップは、前記ＦＰＧＡレジスタ値を記憶する前に前記ＣＰＵカウンタ（６）を読み出すステップと、前記ＦＰＧＡレジスタ値を記憶した後に前記ＣＰＵカウンタ（６）を読み出すステップと、前記ＦＰＧＡレジスタ値の記憶前後での前記ＣＰＵカウンタ（６）の時間平均値を記憶するステップとを含む、請求項２記載のリアルタイムシステムでタイムスタンプを形成する方法。
【請求項４】
前記リアルタイムアプリケーション（９）によって前記ＣＰＵカウンタ（６）を読み出すステップを、前記リアルタイムアプリケーション（９）中に前記同期カウンタ（７）を問い合わせるステップ、および、前記ＣＰＵカウンタ（６）を前記リアルタイムアプリケーション（９）の前記システムクロックに同期させるステップとともに行う、請求項１から３までのいずれか１項記載のリアルタイムシステムでタイムスタンプを形成する方法。
【請求項５】
前記リアルタイムアプリケーション（９）中に前記同期カウンタ（７）を問い合わせるステップ、および、前記ＣＰＵカウンタ（６）を前記リアルタイムアプリケーション（９）の前記システムクロックに同期させるステップを、前記リアルタイムアプリケーション（９）によって前記ＣＰＵカウンタ（６）を読み出すステップの前に行う、請求項４記載のリアルタイムシステムでタイムスタンプを形成する方法。
【請求項６】
さらに、前記ＣＰＵカウンタ（６）を前記システムクロックに周期的に同期させるステップを含む、請求項１から５までのいずれか１項記載のリアルタイムシステムでタイムスタンプを形成する方法。
【請求項７】
前記ＣＰＵカウンタ（６）と前記システムクロックとを周期的に同期させるステップを、周期的なリアルタイムアプリケーション（９）または周期的なリアルタイムタスク（１０，１１，１２）の一部として行う、請求項６記載のリアルタイムシステムでタイムスタンプを形成する方法。
【請求項８】
前記周期的なリアルタイムアプリケーション（９）または前記周期的なリアルタイムタスク（１０，１１，１２）として、全ての周期的なリアルタイムアプリケーション（９）または全ての周期的なリアルタイムタスク（１０，１１，１２）から最大周期持続時間を有するリアルタイムアプリケーションまたはリアルタイムタスクを選択する、請求項７記載のリアルタイムシステムでタイムスタンプを形成する方法。
【請求項９】
前記ＣＰＵカウンタ（６）と前記システムクロックとの同期を、優先度の低いアプリケーションとして行う、請求項１から８までのいずれか１項記載のリアルタイムシステムでタイムスタンプを形成する方法。
【請求項１０】
前記リアルタイムシステム（１）が前記リアルタイムアプリケーション（９）および／または前記リアルタイムタスク（１０，１１，１２）の時間的進行に対するプランを作成し、前記ＣＰＵカウンタ（６）と前記システムクロックとの同期をリアルタイムアプリケーション（９）またはリアルタイムタスク（１０，１１，１２）によって占有されていない時間期間で行う、請求項１から９までのいずれか１項記載のリアルタイムシステムでタイムスタンプを形成する方法。
【請求項１１】
前記リアルタイムシステム（１）が複数のＣＰＵ（３）を備えており、各ＣＰＵ（３）内にシステムクロックに対するＣＰＵカウンタ（６）と同期カウンタ（７）とが１つずつ設けられ、前記ＣＰＵカウンタ（６）とリアルタイムアプリケーション（９）のシステムクロックとの同期をＣＰＵ（３）ごとに独立に行う、請求項１から１０までのいずれか１項記載のリアルタイムシステムでタイムスタンプを形成する方法。
【請求項１２】
相互に協働するＦＰＧＡ（２）およびＣＰＵ（３）を備えたリアルタイムシステム（１）としてのデータ処理装置であって、
前記ＦＰＧＡ（２）内に、システムクロックを有する少なくとも１つのレジスタ（４）が構成されている、
データ処理装置において、
前記リアルタイムシステム（１）が請求項１から１１までのいずれか１項記載の方法を実行するように構成されている
ことを特徴とするデータ処理装置。
【請求項１３】
前記リアルタイムシステム（１）が、複数のＣＰＵ（３）を備えており、かつ、請求項１から１０までのいずれか１項記載の方法を請求項１１記載の方法に関連して実行するように構成されている、請求項１２記載のデータ処理装置。
【請求項１４】
ロード後に適切なデータ処理装置で請求項１から１１までのいずれか１項記載の方法の各ステップを実行するための、コンピュータによって実現される指令を含む、コンピュータプログラム製品。
【請求項１５】
電子的に読み取り可能な制御信号を含むディジタル記憶媒体であって、前記制御信号は、請求項１から１１までのいずれか１項記載の方法がコンピュータシステム上で実行されるようにプログラマブルコンピュータシステムと協働する、ディジタル記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、相互に協働するＦＰＧＡとＣＰＵとを含み、ＦＰＧＡ内にシステムクロックを有する少なくとも１つのレジスタが構成されているリアルタイムシステムでタイムスタンプを形成する方法に関する。
【０００２】
また、本発明は、相互に協働するＦＰＧＡおよびＣＰＵを備えたリアルタイムシステムとしてのデータ処理装置であって、ＦＰＧＡ内に、システムクロックを有する少なくとも１つのレジスタが構成されている、データ処理装置に関する。
【０００３】
さらに、本発明は、コンピュータによって実現される指令を含む、コンピュータプログラム製品、ならびに、電子的に読み取り可能な制御信号を含むディジタル記憶媒体に関する。
【背景技術】
【０００４】
データ処理装置の種々の適用分野では、種々の工程の同期を実行できるようにするため、絶対的なクロックベースを使用することが要求される。分散型システムでは、種々の同期方法、例えばバークレーアルゴリズムまたはクリスティアンアルゴリズムまたはネットワークタイムプロトコルＮＴＰなどが公知である。ただし、これらのアルゴリズムは、種々のデータ処理装置間にクロックを分配することのみを考察している。
【０００５】
データ処理装置、特にリアルタイムシステムでは、今日、内部に信頼性の高いクロックベースを要するアプリケーションの利用がますます増えてきている。例えば、イベントのプロトコル作成では、個々のイベント間の絶対時間間隔を検出し、他の形式で処理できるようにすることが要求される。また、今日では、種々のタスクの処理に対する複数のプロセッサを含むデータ処理装置が利用されることが増えてきている。この場合、複数のＣＰＵに対する共通のクロックベースが必要となる。
【０００６】
制御電子回路に対するテスト装置では、しばしば、複数のボード上の複数のプロセッサが使用される。ソフトウェアの同期のために各プロセッサは共通のクロックベースを必要とする。共通のクロックベースは、ふつうボード上のプロセッサそのものには由来せず、ＦＰＧＡなどの外部部品によって形成される。ソフトウェアがタイムスタンプを必要とする場合、相応のプロセッサがＦＰＧＡの現在時間を問い合わせる。この問い合わせには或る程度の時間がかかる。タイムスタンプは、例えば１つのプロッタにおける個々の値を表示するため、または、１つのプロファイラで複数のリアルタイムタスクを時間的に表示するために、必要となる。
【０００７】
相応に、ｄＳＰＡＣＥ社のＤＳ１００６プロセッサボードでは、ｄＳＰＡＣＥＦＰＧＡのレジスタへのアクセスによって、タイムスタンプが受け取られる。リアルタイムモデルのシミュレーションおよび実行の際には比較的頻繁にタイムスタンプが受け取られる。しかし、ＦＰＧＡへのアクセスはローカルのＣＰＵ変数へのアクセスに比べて高コストなため、タイムスタンプの計算に時間がかかり、個々のタスクのターンアラウンド時間が長くなってしまう。
【０００８】
多数のプロセッサが内部クロックを有している。内部クロックへの現在時間の問い合わせは、ＦＰＧＡなどの外部部品への問い合わせに比べ、格段に短い時間しかかからない。ただし、内部クロックは精度が低く、プロセッサクロックに依存しているために多くのアプリケーションにおいて基準として適さない。また、種々のプロセッサの内部クロックは相互に結合されていないので、別進行となってしまうことがある。リアルタイムアプリケーションでは、インタラプトがあるため、プロセッサ内部クロックを標準時へ同期させることは不可能である。リアルタイムタスクの期限に合った処理を保証するには、ＣＰＵのインタラプトの使用をあきらめるほかなく、そうするとリアルタイムタスクの処理がたびたび阻害されてしまう。このように、内部クロックをタイムスタンプの形成に用いることはできない。また、或るプロセッサの内部クロックは、それぞれクロック発生のための固有の水晶発振器を使用しているため、ＦＰＧＡ内に構成されたシステムクロックから独立している。したがって、各プロセッサの内部クロックは同期していない。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述した従来技術から出発して、本発明の基礎とする課題は、上述した形式の方法を提供し、正確なタイムスタンプを効率的に形成してリアルタイムアプリケーションの実行を迅速化できるようにすることである。
【課題を解決するための手段】
【００１０】
この課題は、本発明の、相互に協働するＦＰＧＡとＣＰＵとを含み、前記ＦＰＧＡ内にシステムクロックを有する少なくとも１つのレジスタが構成されているリアルタイムシステムでタイムスタンプを形成する方法であって、前記ＣＰＵのクロック信号により駆動される、前記システムクロックに対するＣＰＵカウンタを準備するステップと、前記ＣＰＵのクロック信号により駆動される、前記ＣＰＵ内の同期カウンタを準備するステップと、前記ＣＰＵカウンタを読み出してリアルタイムアプリケーションによって前記システムクロックを形成するステップと、前記リアルタイムアプリケーション中に前記同期カウンタを問い合わせるステップと、前記同期カウンタが前記ＣＰＵカウンタと前記システムクロックとの最後の同期から所定の時間よりも長い時間が経過したことに相応する値を出力する場合、前記ＣＰＵカウンタを前記リアルタイムアプリケーションの前記システムクロックに同期させるステップとを含むことを特徴とする方法により解決される。
【００１１】
さらに、上記課題は、本発明の、相互に協働するＦＰＧＡおよびＣＰＵを備えたリアルタイムシステムとしてのデータ処理装置であって、前記ＦＰＧＡ内に、システムクロックを有する少なくとも１つのレジスタが構成されている、データ処理装置において、前記リアルタイムシステムが上記方法を実行するように構成されていることを特徴とする装置により解決される。
【００１２】
さらに、上記課題は、本発明の、ロード後に適切なデータ処理装置で上記方法の各ステップを実行するための、コンピュータによって実現される指令を含む、コンピュータプログラム製品によって解決される。
【００１３】
さらに、上記課題は、本発明の、電子的に読み取り可能な制御信号を含むディジタル記憶媒体であって、前記制御信号は、上記方法がコンピュータシステム上で実行されるようにプログラマブルコンピュータシステムと協働する、ディジタル記憶媒体により解決される。
【００１４】
なお、本発明の有利な実施形態は従属請求項に記載されている。
【図面の簡単な説明】
【００１５】
【図１】第１のリアルタイムアプリケーションによって実行される、本発明の第１の実施例の方法のフローチャートである。
【図２】第２のリアルタイムアプリケーションによって図１の方法と同時に実行される、本発明の第１の実施例の方法のフローチャートである。
【図３】本発明の方法を実行するリアルタイムシステムの構造の概略図である。
【図４】本発明の第２の実施例にしたがってＣＰＵ内のシステムクロックを求める構造の概略図である。
【発明を実施するための形態】
【００１６】
本発明の基本的着想は、同期カウンタによってＣＰＵカウンタとシステムクロックとの規則的な同期を保証し、同期されたＣＰＵカウンタへのアクセスによってタイムスタンプの形成を迅速化するということである。リアルタイムアプリケーションはシステムクロックを読み出す１つまたは複数のリアルタイムタスクを含む。高い優先度を有する１つまたは複数のリアルタイムアプリケーションもしくはリアルタイムタスクによるリソースの負荷がＣＰＵカウンタの同期を妨害する場合、このことが同期カウンタによって検出され、適切でないタイムスタンプの形成は阻止される。このようにして、タイムスタンプ形成のために、ＣＰＵカウンタへのアクセス、すなわち、ＣＰＵへの内部アクセスが行われる。このアクセスは外部レジスタへのアクセスよりも迅速に行えるので、リアルタイムアプリケーションもしくはリアルタイムタスクの中断もしくは遅延を低減できる。全体として、リアルタイムシステムのリアルタイムアプリケーションもしくはリアルタイムタスクの実行が迅速化される。同期カウンタの検査は、有利には、持続時間に相当する閾値への到達を検査することによって行われる。相応に、ＣＰＵカウンタの同期の際に同期カウンタのリセットが行われる。これに代えて、検査の基礎となる閾値を適合化する期間中、同期カウンタの計数動作を連続的に実行してもよい。当該閾値により、ＣＰＵカウンタを新たにＦＰＧＡのレジスタに同期させなければならない時点までの最大時間が定義され、これにより、ＣＰＵカウンタおよびＦＰＧＡレジスタが互いに過度に長く浮遊することが回避される。ＣＰＵカウンタの精度に基づいて、ＣＰＵカウンタとＦＰＧＡレジスタとの最大偏差がシステムクロックへの要求に応じて設定され、ＣＰＵカウンタによって充分に精確な時間が形成されるようになる。基本的にはＣＰＵカウンタおよび同期カウンタの双方がインクリメントまたはデクリメント可能に構成される。また、同期カウンタがＣＰＵカウンタに集積されるように構成されてもよく、すなわち、ＣＰＵ内でカウンタが１つだけしか使用されない構成も可能である。なお、本発明の方法の個々のステップは種々の順序で実行できる。ＣＰＵカウンタがレジスタに同期されることにより、ＣＰＵ内で精確なタイムスタンプが形成される。
【００１７】
本発明の有利な実施形態では、ＣＰＵカウンタをシステムクロックに同期させるステップが、同期時点でＣＰＵカウンタおよびＦＰＧＡレジスタ値を記憶させるステップを含み、リアルタイムアプリケーションによってシステムクロックを形成するステップが、記憶されたＣＰＵカウンタと記憶されたＦＰＧＡレジスタ値と読み出されたＣＰＵカウンタ値とからシステムクロックを計算するステップを含む。記憶された各値とＣＰＵカウンタのそれぞれの現在値とから、そのつどシステムクロックが計算でき、同時に、ＣＰＵ内にカウンタを構成するのにかかるコストを低減できる。なお、同期カウンタをＣＰＵカウンタに集積して構成しても良い。なぜなら、同期時点でＣＰＵカウンタの記憶値とそのつどのＣＰＵカウンタの現在値とを比較することにより、最後の同期から経過した時間を求めて、これと設定された時間とを比較できるからである。
【００１８】
本発明の有利な実施形態では、同期時点でＣＰＵカウンタを記憶するステップは、ＦＰＧＡレジスタ値を記憶する前にＣＰＵカウンタを読み出すステップと、ＦＰＧＡレジスタ値を記憶した後にＣＰＵカウンタ値を読み出すステップと、ＦＰＧＡレジスタ値の記憶前後でのＣＰＵカウンタ値の時間平均値を記憶するステップとを含む。これにより、ＦＰＧＡレジスタの読み出し時間が考慮される。平均値形成により、ＣＰＵカウンタの記憶値が同期時点に合わせて正確に調整される。
【００１９】
本発明の有利な実施形態では、上記時間として、１ｓよりも小さい値、有利には１００ｍｓよりも小さい値、特に有利には約１０ｍｓの値が選定される。この値は、例えば、タイムスタンプの同期性および／または精度への要求に依存して、かつ、ＣＰＵカウンタを駆動するためのＣＰＵのクロック信号の精度への要求に依存して、定められる。したがって、上記の各時間値は、リアルタイムシステムおよびそこで実行されるリアルタイムアプリケーションに応じて選定することができる。
【００２０】
本発明の有利な実施形態では、リアルタイムアプリケーションによってＣＰＵカウンタを読み出すステップが、リアルタイムアプリケーション中に同期カウンタを問い合わせるステップ、および、ＣＰＵカウンタをリアルタイムアプリケーションのシステムクロックに同期させるステップとともに行われる。このようにすればＣＰＵカウンタの同期が規則的にリアルタイムアプリケーションによるＣＰＵカウンタの読み出しの際に検査され、これにより、ＣＰＵカウンタの読み出し頻度に一致して、同期の連続検査およびＣＰＵカウンタの連続同期が行われる。有利には同期はＣＰＵカウンタの読み出しのみに限定されない。
【００２１】
本発明の有利な実施形態では、リアルタイムアプリケーション中に同期カウンタを問い合わせるステップ、および、ＣＰＵカウンタをリアルタイムアプリケーションのシステムクロックに同期させるステップが、リアルタイムアプリケーションによってＣＰＵカウンタを読み出すステップの前に行われる。したがって、ＣＰＵカウンタからの唯一の同期システムクロックがタイムスタンプとして形成される。
【００２２】
本発明の有利な実施形態では、さらに、ＣＰＵカウンタをシステムクロックに周期的に同期させるステップが行われる。周期的同期により、システムクロックを有するレジスタの読み出しとタイムスタンプの形成とをともに省略できるようになるため、タイムスタンプの形成が簡単化される。有利には、システムクロックを形成するためのＣＰＵカウンタの読み出し前に同期カウンタを用いて同期が検査され、必要に応じて上述したように同期が実行される。有利には、同期カウンタが連続して計数を続行する場合、ＣＰＵカウンタの周期的同期により、同期カウンタのそのつどのリセットまたは閾値の適合化が行われる。これに代えて、同期に際して、同期時点に相当するカウンタ値を記憶することもできる。
【００２３】
本発明の有利な実施形態では、ＣＰＵカウンタとシステムクロックとを周期的に同期させるステップが、周期的なリアルタイムアプリケーションまたは周期的なリアルタイムタスクの一部として行われる。リアルタイムアプリケーションまたはリアルタイムタスクの周期的実行により、ＣＰＵカウンタとシステム内に設けられた手段によるシステムクロックとの規則的同期が保証される。そのうえ、このために自律的アプリケーションを準備する必要はない。また有利には、リアルタイムアプリケーションまたはリアルタイムタスクの遅延量が既知となり、他のリアルタイムアプリケーションまたはリアルタイムタスクの間欠的中断が回避される。周期的なリアルタイムタスクは、有利には、システムクロックを読み出しているリアルタイムアプリケーションのリアルタイムタスクである。
【００２４】
本発明の有利な実施形態では、周期的リアルタイムアプリケーションまたは周期的リアルタイムタスクとして、全ての周期的リアルタイムアプリケーションまたは全ての周期的リアルタイムタスクから最大周期持続時間を有するリアルタイムアプリケーションもしくはリアルタイムタスクが選択される。これにより、ＣＰＵカウンタとシステムクロックを有するレジスタとの同期にかかるリソースが低減される。
【００２５】
本発明の有利な実施形態では、ＣＰＵカウンタとシステムクロックとの周期的同期が、１０ｍｓより短い周期で、有利には５ｍｓより短い周期で、特に有利には約１ｍｓの周期で、行われる。相応の周期で、ＣＰＵカウンタが規則的に同期され、いずれの時点でもタイムスタンプを形成できるようになることが保証される。周期の値は、例えば、タイムスタンプの同期性および／または精度への要求、また、ＣＰＵカウンタを駆動するためのＣＰＵのクロック信号の精度への要求に依存して定められる。したがって、上記の各周期値は、リアルタイムシステムおよびそこで実行されるリアルタイムアプリケーションに応じて種々に選択可能である。
【００２６】
本発明の有利な実施形態では、ＣＰＵカウンタとシステムクロックとの同期が優先度の低いアプリケーションとして行われる。このようにすれば、ＣＰＵカウンタとシステムクロックとの同期を、優先度の高いアプリケーションの処理を制限することなく実行できる。同期カウンタにより、ＣＰＵカウンタとシステムクロックとの同期が検査され、不適切なタイムスタンプの形成の阻止が保証される。有利には、優先度の低いアプリケーションとは、いずれか１つのリアルタイムアプリケーションまたはリアルタイムタスクである。
【００２７】
本発明の有利な実施形態では、リアルタイムシステムがリアルタイムアプリケーションおよび／またはリアルタイムタスクの時間的進行に対するプランを作成し、ＣＰＵカウンタとシステムクロックとの同期がリアルタイムアプリケーションまたはリアルタイムタスクによって占有されていない時間期間で行われる。これにより、利用されていないリソースのみが同期に用いられる。したがって、リアルタイムアプリケーションおよびリアルタイムタスクの要求に応じた確実な処理が達成される。有利には、同期カウンタが連続的に計数を続行する場合、ＣＰＵカウンタの同期によってそのつどの同期カウンタのリセットまたは閾値の適合化が行われる。これに代えて、同期の際に、同期時点に相当するカウンタ値の記憶を行ってもよい。
【００２８】
本発明の有利な実施形態では、リアルタイムシステムが複数のＣＰＵを備えており、各ＣＰＵ内にシステムクロックに対するＣＰＵカウンタと同期カウンタとが１つずつ設けられ、ＣＰＵカウンタとリアルタイムアプリケーションのシステムクロックとの同期がＣＰＵごとに独立に行われる。このようにすれば、リアルタイムシステム内の共通のレジスタを種々のＣＰＵの種々のＣＰＵカウンタの同期に対するベースとして利用できる。各ＣＰＵは相互に同期されたタイムスタンプを高い効率で形成することができる。
【実施例】
【００２９】
以下に、図を参照しながら、本発明の有利な実施例を詳細に説明する。
【００３０】
図１，図２には第１の実施例の本発明の方法のフローが示されており、この方法は図３に概略的に示されているリアルタイムシステム１上で実行される。
【００３１】
リアルタイムシステム１は１つのＦＰＧＡ２とそれぞれ同様に構成された２つのＣＰＵ３とを含み、ＦＰＧＡ２およびＣＰＵ３は相互に協働する。ＦＰＧＡ２にはシステムクロックを有するレジスタ４が構成されている。精確な水晶発振器５は、レジスタ４を連続的にインクリメントするためのクロック信号を送出する。
【００３２】
各ＣＰＵ３はＣＰＵカウンタ６および同期カウンタ７を含み、これらはクロック発生器８のクロック信号によって、そのつどインクリメントを生じるように駆動される。
【００３３】
各ＣＰＵ３上で、それぞれ異なる優先度を有する（この実施例では）３つのリアルタイムタスク１０，１１，１２を含んだリアルタイムアプリケーション９が実行される。第１のリアルタイムタスク１０は高い優先度を有しており、第２，第３のリアルタイムタスク１１，１２は低い優先度を有している。第２，第３のリアルタイムタスク１１，１２は周期的に実行され、第２のリアルタイムタスク１１のほうが第３のリアルタイムタスク１２よりも大きな周期持続時間を有する点で区別される。基本的には、リアルタイムタスク１０，１１，１２の個数は任意である。
【００３４】
本発明の方法は２つのＣＰＵ３上で独立に実行される。ステップ１００でＣＰＵカウンタ６が上述したように準備される。
【００３５】
また、ステップ１１０では、同期カウンタ７が上述したように準備される。
【００３６】
カウンタ６，７の準備はそのつどの初期化を含む。この場合、ＣＰＵカウンタ６はレジスタ４に同期され、同期カウンタ７はゼロへリセットされる。
【００３７】
ステップ１２０では、リアルタイムアプリケーション９のいずれかのリアルタイムタスク１０，１１，１２によって、特にこの実施例では高い優先度を有する第１のリアルタイムタスク１０によって、ＣＰＵカウンタ６からのシステムクロックの読み出しが開始される。なお、図１に示されている方法では、格別のことわりないかぎり、高い優先度を有する第１のリアルタイムタスク１０を例として説明することにする。
【００３８】
ステップ１３０では、図３に概略的に示されている第１のリアルタイムタスク１０によって、同期カウンタ７が問い合わされる。
【００３９】
ステップ１４０では、同期カウンタ７が設定された持続時間よりも大きい値を含むか否かが検査される。設定された持続時間とは、ここでは、タイムスタンプの同期性および精度への要求およびＣＰＵ３のクロック信号の精度への要求に適合する１０ｍｓである。これにより、ステップ１４０でＣＰＵカウンタ６を同期しなければならないかどうかが検査される。同期カウンタ７の値が設定された持続時間より小さい場合には、本発明の方法はステップ１７０へ移行し、そうでない場合にはステップ１５０へ移行する。
【００４０】
ステップ１５０では、ＣＰＵカウンタ６がレジスタ４に同期される。このために、第１のリアルタイムタスク１０によってレジスタ４が読み出され、読み出された値がＣＰＵカウンタ６へ移される。
【００４１】
ステップ１６０では、さらに、第１のリアルタイムタスク１０によって同期カウンタ７がリセットされ、これにより、ＣＰＵカウンタ６の同期が行われたことが示される。
【００４２】
ついで、ステップ１７０で、システムクロックが読み出される。このとき、ＣＰＵカウンタ６が第１のリアルタイムタスク１０によって読み出され、読み出された値がタイムスタンプとして形成される。
【００４３】
さらに、本発明の方法は、ＣＰＵカウンタ６とレジスタ４内のシステムクロックとの周期的同期を含む。このことを、図２を参照しながら説明する。ここでの周期的同期は、格別のことわりないかぎり、低い優先度と大きな周期持続時間とを有する第２のリアルタイムタスク１１によって行われる。図２に示されている周期的同期は第２のリアルタイムタスク１１の一部として行われる。
【００４４】
周期的同期はステップ２００で開始される。第２のリアルタイムタスク１１内で、同期に対して設定された期間が経過したか否かが検査される。この実施例での当該期間は、タイムスタンプの同期性および精度への要求とＣＰＵカウンタ６を駆動するためのＣＰＵ３のクロック信号の精度への要求とにしたがって、１ｍｓに選定されている。この実施例の当該期間は第２のリアルタイムタスク１１の周期持続時間の２倍に相当する。相応に、ステップ２００では、当該期間が経過したか否かが検査される。この期間が経過していれば、本発明の方法はステップ２１０へ移行する。
【００４５】
ステップ２１０では、基本的にステップ１５０に即して説明したように、ＣＰＵカウンタ６がレジスタ４でのシステムクロックに同期される。
【００４６】
ステップ２２０では、基本的にステップ１６０に即して説明したように、同期カウンタ７がリセットされる。
【００４７】
上述した各ステップは、２つのＣＰＵ３のリアルタイムタスク１０，１１，１２から独立に、実行される。この場合、ＣＰＵカウンタ６とシステムクロックとの同期に対して、そのつど、リアルタイムシステム１内の共通のレジスタ４が同期のベースとして使用される。
【００４８】
図４に関連して、さらに、本発明の第２の実施例を説明する。第２の実施例のうち第１の実施例に相応する箇所は説明を繰り返さない。以下では、第１の実施例との相違点のみを説明する。
【００４９】
第２の実施例は、同期の方式、および、最後の同期からの設定時間の検査の方式の点において、第１の実施例と異なっている。ここでは、ＣＰＵ３はカウンタとして唯一のＣＰＵカウンタ６を有し、このＣＰＵカウンタ６はシステムクロックの計算および最後の同期からの設定時間の検査の双方に用いられる。ＣＰＵカウンタ６は上述したようにクロック発生器８によってクロック制御される。
【００５０】
ステップ１５０またはステップ２１０でＣＰＵカウンタ６をシステムクロックに同期させる際に、ＦＰＧＡレジスタ値が時間メモリ１５に格納される。ＦＰＧＡ２のレジスタ４の値を時間メモリ１５に格納する前後に、それぞれ、ＣＰＵカウンタ６が読み出される。読み出された複数の値から、ＦＰＧＡレジスタ値の格納前後のＣＰＵカウンタ６の時間平均値が形成され、この時間平均値がＴｉｃｓメモリ１６に格納される。相応にこのステップは、ステップ１６０またはステップ２２０での同期カウンタ７のリセットを含む。
【００５１】
第１の実施例とは異なり、ステップ１３０で、Ｔｉｃｓメモリ１６の値が読み出され、ＣＰＵカウンタ６の現在値と比較される。この場合には、Ｔｉｃｓメモリ１６の値がＣＰＵカウンタ６の現在値から減算される。
【００５２】
こうして、この減算結果が、ステップ１４０で、最後の同期から設定時間が経過したか否かの検査に用いられる。
【００５３】
第２の実施例においても、ステップ１７０でシステムクロックが読み出される。システムクロックは、Ｔｉｃｓメモリ１６から読み出されるＣＰＵカウンタ６の記憶値と、時間メモリ１５から読み出されるＦＰＧＡレジスタ４の記憶値と、ＣＰＵカウンタ６の現在読み出されている値とから、時間ユニット１７内で計算される。このために、時間メモリ１５の値に、Ｔｉｃｓメモリ１６から読み出されるＣＰＵカウンタ６の記憶値とＣＰＵカウンタ６の現在値との差に相当する持続時間が加算される。この値が読み出されるシステムクロックとなる。
【符号の説明】
【００５４】
１  リアルタイムシステム、  ２  ＦＰＧＡ、  ３  ＣＰＵ、  ４  レジスタ、  ５  水晶発振器、  ６  ＣＰＵカウンタ、  ７  同期カウンタ、  ８  クロック発生器、  ９  リアルタイムアプリケーション、  １０  第１のリアルタイムタスク、  １１  第２のリアルタイムタスク、  １２  第３のリアルタイムタスク、  １５  時間メモリ、  １６  Ｔｉｃｓメモリ、  １７  時間ユニット
【図１】
2013206472.tif 000003
【図２】
2013206472.tif 000004
【図３】
2013206472.tif 000005
【図４】
2013206472.tif 000006