JP6116319B2 - リアルタイムシステムでタイムスタンプを形成する方法、データ処理装置、コンピュータプログラム製品、および、ディジタル記憶媒体 - Google Patents

リアルタイムシステムでタイムスタンプを形成する方法、データ処理装置、コンピュータプログラム製品、および、ディジタル記憶媒体 Download PDF

Info

Publication number
JP6116319B2
JP6116319B2 JP2013071366A JP2013071366A JP6116319B2 JP 6116319 B2 JP6116319 B2 JP 6116319B2 JP 2013071366 A JP2013071366 A JP 2013071366A JP 2013071366 A JP2013071366 A JP 2013071366A JP 6116319 B2 JP6116319 B2 JP 6116319B2
Authority
JP
Japan
Prior art keywords
time
real
cpu
counter
synchronization
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.)
Active
Application number
JP2013071366A
Other languages
English (en)
Other versions
JP2013206472A (ja
Inventor
グローセ ベアガー ラルフ
グローセ ベアガー ラルフ
マルコ シュミット
シュミット マルコ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dspace Digital Signal Processing and Control Engineering GmbH
Original Assignee
Dspace Digital Signal Processing and Control Engineering GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dspace Digital Signal Processing and Control Engineering GmbH filed Critical Dspace Digital Signal Processing and Control Engineering GmbH
Publication of JP2013206472A publication Critical patent/JP2013206472A/ja
Application granted granted Critical
Publication of JP6116319B2 publication Critical patent/JP6116319B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

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

Claims (15)

  1. リアルタイムシステム(1)でタイムスタンプを形成する方法であって、
    前記リアルタイムシステム(1)は、相互に協働するFPGA(2)とCPU(3)とを含み、前記FPGA(2)内にFPGAシステムタイムを有する少なくとも1つのレジスタ(4)が構成されており、前記方法は、
    記CPU(3)のクロック信号により駆動される、CPUシステムタイムに対するCPUカウンタ(6)を準備するステップ(100)と、
    前記CPU(3)のクロック信号により駆動される、前記CPU(3)内の同期カウンタ(7)を準備するステップ(110)と、
    リアルタイムアプリケーション(9)によって、前記CPUカウンタ(6)から前記CPUシステムタイムを読み出し(120)、前記読み出した値をタイムスタンプとして準備するステップと、
    前記リアルタイムアプリケーション(9)によって、前記同期カウンタ(7)を問い合わせるステップ(130)と、
    前記同期カウンタ(7)が、前記CPUカウンタ(6)と前記FPGAシステムタイムとの最後の同期から所定の時間よりも短い時間が経過したことに相応する値を出力する場合(140N)、前記CPUカウンタ(6)をタイムスタンプとして出力するステップ(170)と、
    記同期カウンタ(7)が前記CPUカウンタ(6)と前記FPGAシステムタイムとの最後の同期から所定の時間よりも長い時間が経過したことに相応する値を出力する場合(140Y)前記リアルタイムアプリケーション(9)によって、前記CPUカウンタ(6)をFPGAシステムタイムに同期させ(150)、前記同期カウンタ(7)を元に戻し(160)、前記CPUカウンタ(6)をタイムスタンプとして出力するステップ(170)
    を含み
    前記CPU(3)のインタラプトは、前記リアルタイムアプリケーション(9)の処理の間阻害される、
    法。
  2. 記同期させるステップ(150)は、同期時点で前記CPUカウンタ(6)の値と、前記レジスタ(4)のレジスタ値と、を記憶するステップを含み、
    記読み出すステップ(120)は、記憶されたCPUカウンタ(6)の値記憶されレジスタ値と読み出されたCPUカウンタ(6)の値とから前記CPUシステムタイムを計算するステップを含む、
    請求項1記載の方法。
  3. 記記憶するステップは、
    記レジスタ値を記憶する前に前記CPUカウンタ(6)の第1の値を読み出すステップと、
    記レジスタ値を記憶した後に前記CPUカウンタ(6)の第2の値を読み出すステップと、
    前記第1の値と前記第2の値との時間平均値を記憶するステップと
    を含む、
    請求項2記載の方法。
  4. 記読み出すステップ(120)の頻度に一致して、前記問い合わせるステップ(130)、および、前記同期させるステップ(150)を行う、
    請求項1から3までのいずれか1項記載の方法。
  5. 記問い合わせるステップ(130)、および、前記同期させるステップ(150)を、前記読み出すステップ(120)の前に行う、
    請求項4記載の方法。
  6. さらに、前記CPUカウンタ(6)を前記FPGAシステムタイムに周期的に同期させるステップを含む、
    請求項1から5までのいずれか1項記載の方法。
  7. 記周期的に同期させるステップを、周期的なリアルタイムアプリケーション(9)または周期的なリアルタイムタスク(10,11,12)の一部として行う、
    請求項6記載の方法。
  8. 前記周期的なリアルタイムアプリケーション(9)または前記周期的なリアルタイムタスク(10,11,12)として、全ての周期的なリアルタイムアプリケーション(9)または全ての周期的なリアルタイムタスク(10,11,12)から最大周期持続時間を有するリアルタイムアプリケーションまたはリアルタイムタスクを選択する、
    請求項7記載の方法。
  9. 前記同期させるステップ(150)を、前記リアルタイムアプリケーション(9)のうちの優先度の低いリアルタイムタスク(11,12)として行う、
    請求項1から8までのいずれか1項記載の方法。
  10. 前記リアルタイムシステム(1)が前記リアルタイムアプリケーション(9)および/またはリアルタイムタスク(10,11,12)のスケジュールプランを作成し、前記同期させるステップ(150)前記リアルタイムアプリケーション(9)のリソースおよび/または前記リアルタイムタスク(10,11,12)のリソースによって占有されていない時間期間で行う、
    請求項1から9までのいずれか1項記載の方法。
  11. 前記リアルタイムシステム(1)が複数のCPU(3)を備えており、
    各CPU(3)内に前記CPUシステムタイムに対するCPUカウンタ(6)と同期カウンタ(7)とが1つずつ設けられ、
    前記同期させるステップ(150)をCPU(3)ごとに独立に行う、
    請求項1から10までのいずれか1項記載の方法。
  12. 相互に協働するFPGA(2)およびCPU(3)を備えたリアルタイムシステム(1)としてのデータ処理装置であって、
    前記FPGA(2)内に、FPGAシステムタイムを有する少なくとも1つのレジスタ(4)が構成されており、
    記リアルタイムシステム(1)が請求項1から11までのいずれか1項記載の方法を実行するように構成されている
    ことを特徴とするデータ処理装置。
  13. 前記リアルタイムシステム(1)が、複数のCPU(3)を備えており、かつ、請求項1から10までのいずれか1項記載の方法を請求項11記載の方法に関連して実行するように構成されている、
    請求項12記載のデータ処理装置。
  14. ロード後に適切なデータ処理装置で請求項1から11までのいずれか1項記載の方法の各ステップを実行するための、コンピュータによって実現される指令を含む、コンピュータプログラム。
  15. 電子的に読み取り可能な制御信号を含むディジタル記憶媒体であって、前記制御信号は、請求項1から11までのいずれか1項記載の方法がコンピュータシステム上で実行されるようにプログラマブルコンピュータシステムと協働する、ディジタル記憶媒体。
JP2013071366A 2012-03-29 2013-03-29 リアルタイムシステムでタイムスタンプを形成する方法、データ処理装置、コンピュータプログラム製品、および、ディジタル記憶媒体 Active JP6116319B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12162111.4A EP2645200B1 (de) 2012-03-29 2012-03-29 Verfahren und Datenverarbeitungsanlage zum Bereitstellen eines Zeitstempels
EP12162111.4 2012-03-29

Publications (2)

Publication Number Publication Date
JP2013206472A JP2013206472A (ja) 2013-10-07
JP6116319B2 true JP6116319B2 (ja) 2017-04-19

Family

ID=45952926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013071366A Active JP6116319B2 (ja) 2012-03-29 2013-03-29 リアルタイムシステムでタイムスタンプを形成する方法、データ処理装置、コンピュータプログラム製品、および、ディジタル記憶媒体

Country Status (3)

Country Link
US (1) US9600023B2 (ja)
EP (1) EP2645200B1 (ja)
JP (1) JP6116319B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10211673B2 (en) 2015-03-04 2019-02-19 Siemens Industry, Inc. Apparatus and methods for timestamping electrical data in a panel meter
WO2017123238A1 (en) * 2016-01-15 2017-07-20 Hewlett Packard Enterprise Development Lp Multi-core circuit with mixed signaling
CN106874079A (zh) * 2016-06-08 2017-06-20 阿里巴巴集团控股有限公司 一种任务执行的方法及装置
TWI632461B (zh) * 2017-05-25 2018-08-11 緯穎科技服務股份有限公司 獲取時間戳記的方法以及使用該方法的電腦裝置
US10705843B2 (en) * 2017-12-21 2020-07-07 International Business Machines Corporation Method and system for detection of thread stall
CN112019288B (zh) 2019-05-31 2022-09-02 华为技术有限公司 时间同步方法、业务单板及网络设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5059926A (en) * 1991-03-13 1991-10-22 Motorola, Inc. Frequency synchronization apparatus
US6370161B1 (en) * 1998-05-20 2002-04-09 Aspect Communications Time synchronization of distributed computer telephony communication applications in a computer network
US7058838B2 (en) * 2002-12-17 2006-06-06 Hewlett-Packard Development Company, L.P. System and method for synchronizing a plurality of processors in a multiprocessor computer platform employing a global clock counter
TW578384B (en) * 2003-01-15 2004-03-01 Benq Corp Method and system capable of synchronizing the clock signal of each semiconductor device
US7239581B2 (en) * 2004-08-24 2007-07-03 Symantec Operating Corporation Systems and methods for synchronizing the internal clocks of a plurality of processor modules
US7689207B2 (en) 2005-10-17 2010-03-30 Harris Corporation Time of day synchronization and distribution within a multiprocessor embedded system and related methods

Also Published As

Publication number Publication date
JP2013206472A (ja) 2013-10-07
US9600023B2 (en) 2017-03-21
EP2645200B1 (de) 2017-06-14
US20130262911A1 (en) 2013-10-03
EP2645200A1 (de) 2013-10-02

Similar Documents

Publication Publication Date Title
JP6116319B2 (ja) リアルタイムシステムでタイムスタンプを形成する方法、データ処理装置、コンピュータプログラム製品、および、ディジタル記憶媒体
US10891280B2 (en) Controller for improved time-series data collection
US10972579B2 (en) Adaptive scheduling for edge devices and networks
JP2018173710A (ja) 制御装置、制御プログラム、および制御システム
US9785587B2 (en) Method for executing, within a multitasking onboard system, an application timed according to a plurality of different time domains including interruption management
EP3444975A1 (en) Method and apparatus for calibrating tdma time slot synchronization between master and slave machines
WO2016165544A1 (zh) 一种实现分布式系统跨时域一致性方法及装置
CN108932007B (zh) 获取时间戳的方法以及计算机装置
JP2010182101A (ja) フィールド制御システム
EP3196717B1 (en) Emulated industrial control
CN111158867A (zh) 时间同步处理方法、线程调度方法、装置及电子设备
JPWO2014118984A1 (ja) 信号処理装置
JP6423971B2 (ja) 機能ユニット及び制御装置
CN103532786A (zh) 一种服务器同步检测器及同步检测方法和系统
US9176791B2 (en) Computer-readable recording medium, exclusion control apparatus, and exclusion control method
US20200192782A1 (en) Method and apparatus for evaluating quality of software running environment of device
CN111611029B (zh) 一种计算时序确定的iec 61499功能块建模方法
JP6461718B2 (ja) 管理装置、システム及び方法
CN108628668A (zh) 一种多倒计时任务调度系统、方法、电子设备和储存介质
CN114546932A (zh) 多处理单元的时间同步方法、装置、存储介质及电子设备
JP5492704B2 (ja) ハードウェア−ソフトウェア協調検証システム、方法、及びプログラム
JP2014157386A (ja) データ処理システム
CN107025096B (zh) 异步渲染模块的同步方法及系统
JP4497317B2 (ja) 制御装置の時計同期
Thibodeaux The specification and implementation of a model of computation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170223

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: 20170313

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170321

R150 Certificate of patent or registration of utility model

Ref document number: 6116319

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250