JP2008181392A - 仮想タイマ制御方法 - Google Patents

仮想タイマ制御方法 Download PDF

Info

Publication number
JP2008181392A
JP2008181392A JP2007015026A JP2007015026A JP2008181392A JP 2008181392 A JP2008181392 A JP 2008181392A JP 2007015026 A JP2007015026 A JP 2007015026A JP 2007015026 A JP2007015026 A JP 2007015026A JP 2008181392 A JP2008181392 A JP 2008181392A
Authority
JP
Japan
Prior art keywords
timer
time
virtual
host computer
value
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.)
Pending
Application number
JP2007015026A
Other languages
English (en)
Inventor
Takao Totsuka
崇夫 戸塚
Tomohide Hasegawa
智英 長谷川
Norimitsu Hayakawa
典充 早川
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007015026A priority Critical patent/JP2008181392A/ja
Publication of JP2008181392A publication Critical patent/JP2008181392A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】
ホスト計算機上では更新間隔の短いタイマの時刻が得られない場合に更新間隔の短い仮想計算機上のタイマを実現する。
【解決手段】
仮想計算機上の仮想タイマを制御するための情報として、仮想タイマの時刻の更新時に利用される第1の値及び第2の値を予め記憶手段に用意しておく。仮想タイマを更新する際、ホスト計算機上のタイマの時刻と仮想タイマの時刻を比較し、仮想タイマの値がホスト計算機のタイマ装置の時刻より所定一定以上進んでいるか否かを判断して、第1の値又は第2の値を選択的に用いて仮想タイマを更新する。
【選択図】 図1

Description

本発明は仮想タイマ制御方法に係り、特に仮想計算機上の仮想タイマをホスト計算機のタイマ装置に同期させながら動作させる仮想タイマ制御方法に関するものである。
計算機はタイマを有し、そのタイマを用いて時刻の表示や時間の測定、タイマ割り込み処理などの機能を実現することができる。ホスト計算機上で動作する仮想計算機においても、タイマの機能は不可欠である。
ホスト計算機と仮想計算機のタイマの時刻を同期させる必要がない場合、仮想計算機上のタイマはホスト計算機のタイマとは独立して動作させることができる。この場合、仮想計算機ではソフトウェアでタイマをシミュレートすることによって実現できる。
従来、仮想計算機のタイマ制御に関して、例えばタイマの動作を実計算機で動かした場合の能力と一致させるもの(特開平1−229328号公報(特許文献1))や、仮想計算機上で動作させるソフトウェアのデバッグ効率を向上させるもの(特開平11−306036号公報(特許文献2))が知られている。これらの場合、仮想計算機のタイマが実際の時刻と一致しないため、デバッグ用途に用いられている。
また、ホスト計算機と仮想計算機のタイマの時刻を同期させる必要がある場合、仮想計算機上で時刻が必要になった際に、ホスト計算機のタイマの時刻を取得してそのまま使用することが多い。これに関して、例えば、特開平2−278410号公報(特許文献3)には、仮想タイマがホスト計算機から取得したタイマの時刻を基にタスク切り替えの影響を排除してタスク毎に経過時間を正確に計測する技術が開示されている。
特開平1−229328号公報 特開平11−306036号公報 特開平2−278410号公報
しかし、ホスト計算機と仮想計算機の構成が異なる場合、ホスト計算機において技術的あるいは性能上の問題によって仮想計算機で必要としている精度と同等以上のタイマの時刻が使用できないことがある。
ホスト計算機で取得できるタイマの更新間隔が仮想計算機のタイマの更新間隔(例えば1マイクロ秒)より長い(例えば1ミリ秒)場合、短い間隔でホスト計算機のタイマの時刻を取得すると同一の値が取得されることがある。仮想計算機上で動作させるソフトウェアが、更新間隔が短く、時刻が単調に増加するタイマを期待していた場合、タイマから同一の時刻が取得されると誤動作の原因となることがある。そのため、ホスト計算機のタイマから取得した時刻をそのまま使用することができない。
そこで、時刻が単調に増加することを保障し、かつホスト計算機のタイマと時刻を同期させた仮想タイマをソフトウェアで実現する必要がある。
本発明の目的は、ホスト計算機上に仮想計算機を構築した計算機において、ホスト計算機上で更新間隔の短いタイマの時刻が得られない場合に更新間隔の短い仮想計算機上のタイマを実現することにある。
本発明は、好ましくは、時刻を計時するタイマ装置を有するホスト計算機上に仮想計算機を構築した計算機における仮想タイマ制御方法であって、
仮想タイマの時刻がホスト計算機のタイマ装置の時刻より所定以上進んでいない場合に使用する第1の値と、仮想タイマの時刻がホスト計算機のタイマ装置の時刻より所定以上進んでいる場合に使用する第2の値を予め記憶手段に用意しておき、
仮想タイマを更新する際に、仮想タイマの時刻と、ホスト計算機のタイマ装置から取得した時刻を比較して、仮想タイマの時刻がホスト計算機のタイマ装置の時刻より所定以上進んでいるか否かを判断し、記憶手段に記憶された第1の値又は第2の値を選択的に用いて仮想タイマの時刻を更新する仮想タイマ制御方法として構成される。
好ましい例では、ホスト計算機のタイマ装置の時刻と、仮想タイマの時刻とを比較することにより両者の差を計算し、仮想タイマの遅れが一定値以上の場合に、第1の値又は第2の値を仮想タイマの値に加算することで、仮想タイマの時刻をホスト計算機のタイマ装置の時刻に合わせる。
また、好ましくは、仮想タイマの更新時に、次回タイマ割り込み時刻を過ぎると判断される場合に、仮想タイマの時刻をタイマ割り込み時刻に合わせるように調整する。
本発明によれば、ホスト計算機のタイマより更新間隔の短い仮想タイマをホスト計算機上で実現することができる。また、それぞれの加算値と閾値を変更することで、様々な特性を持つ仮想タイマを実現することができる。
以下、図面を用いて本発明の実施例を詳細に説明する。
[実施例1]
図1は、一実施例による仮想タイマ制御を実現する計算機のシステム構成を示す。
ホスト計算機101は、タイマの制御に関する処理部として、タイマ装置102を有し、そのホスト計算機101上には仮想計算機103が構築される。
ホスト計算機上101で動作する仮想計算機103は、命令シミュレーション部104、タイマ割込み制御部105、仮想タイマ制御部106、及びデータベース(DB)107を有する。ここで、命令シミュレーション部104は仮想計算機103上で命令を実行する処理部である。タイマ割込み制御部105は一定のタイミングで命令の処理を切替えるためにタイマ割り込み処理を行う。仮想タイマ制御部106は仮想タイマ110の更新処理のための制御を行う。仮想タイマ110の制御動作については、図2以降を参照して詳述する。
DB107は仮想タイマ制御情報11を記憶する記憶手段である。仮想タイマ制御情報11としては、仮想タイマ(T1)110、第1の加算値(U1)111、第2の加算値(U2)112、及び閾値(V)112を有する。仮想タイマ110は仮想計算機103上で使用されるタイマであり、後述するように特徴的な処理動作を行う。第1の加算値U1(110)は、仮想タイマ110の時刻がホスト計算機のタイマ装置102の時刻より進んでいない場合に使用される。加算値U2(111)は、仮想タイマ110の時刻がホスト計算機のタイマ装置102の時刻より進んでいる場合に使用される。閾値V(112)は、仮想タイマ110とホスト計算機のタイマ装置102の差異が許容できる程度の誤差の場合に使用される閾値である。
図2は、一実施例における仮想タイマ更新処理のフローチャートを示す。
ホスト計算機101のタイマ装置102の時刻T0、ホスト計算機のタイマの更新間隔ΔT0とすれば、仮想タイマ110の時刻T1を以下のように更新する。
ホスト計算機101のタイマ装置102の時刻T0を取得し(201)、次の処理を行う。
(1)仮想タイマ110の時刻T1がT0−VからT0+ΔT0の範囲ならば、仮想タイマの誤差は許容範囲内であると判断し(202、203)、仮想タイマの時刻T1にU1を加算する(204)。
(2)仮想タイマ110の時刻T1がT0+ΔT0以上ならば仮想タイマは進んでいると判断し(203)、仮想タイマの時刻T1にU2を加算する(205)。
(3)仮想タイマ110の時刻T1がT0−V以下ならば仮想タイマは遅れていると判断し(202)、仮想タイマの時刻T1をT0に合わせる(206)。
ここで、第1の加算値U1を平均的な更新間隔、第2の加算値U2を仮想タイマの更新が頻繁に起こった場合でも時刻が進みすぎないような十分に小さい正の値(例えば1)とすれば、仮想タイマの時刻は進みすぎず、かつ単調に増加することが保障される。
仮想タイマ110の更新の頻度が少なかった場合には仮想タイマの時刻に遅れが発生する。閾値Vより遅れが大きくなった場合には仮想タイマの時刻をホストの時刻に合わせる。よって、閾値V以上の遅れは発生せず、かつ仮想タイマは増加する方向に調整されるため単調増加であることは保障される。
仮想タイマ110を参照したとき、および仮想計算機103上で一定命令数実行したときに上記の更新処理を行うことにより、仮想タイマ110はホスト計算機101のタイマ装置102に同期して動作することができる。
[実施例2]
本実施例は、単調に増加するタイマに加えて、タイマ割り込みを発生させるためにカウントダウンタイマを備えた仮想計算機における仮想タイマ制御について説明するものである。このタイマは時間の経過によって単調に減少するタイマであり、値が0以下の場合に場合にタイマ割り込みを発生させる。このタイマを仮想タイマで実現する。以下、ホスト計算機のタイマの時刻T0、単調増加する仮想タイマの時刻T1、単調減少する仮想タイマの時刻T2とする。
本実施例では、誤差の累積値D(以下、累積誤差と呼ぶ)を計算してホスト計算機のタイマと仮想タイマの同期状況を判断する。ここで、D=T1−T0である。
図3に仮想計算機103の初期設定のための処理のフローチャートを示す。初期設定時には、ホスト計算機101のタイマ装置102の時刻T0’を取得して、保存しておく(301)。また、累積誤差Dを0に初期化しておく(302)。
図4に示すように、タイマの時刻の更新処理では、ホスト計算機101のタイマ装置102の時刻T0を取得して(401)、前回取得した時刻T0’との差を累積誤差Dから減算し、取得したホスト計算機101のタイマ装置102の時刻をT0’として保存しておく(402)。
ステップ403、404の比較結果によって以下のように加算値Uを設定する。
(1)累積誤差Dの値が−VからΔT0の範囲ならば仮想タイマの誤差は許容範囲内であると判断して、加算値Uに第1の加算値U1を設定する(405)。
(2)累積誤差Dの値がΔT0以上ならば、仮想タイマは進んでいると判断し、加算値Uに第2の加算値U2を設定する(406)。
(3)累積誤差Dの値が−V以下ならば仮想タイマは遅れていると判断し、加算値Uに−Dを設定する(407)。
ここで、加算値Uの値が仮想タイマの時刻T2より大きければ(408)、加算値Uに仮想タイマの時刻T2を設定する(409)。これにより、仮想タイマの時刻がタイマ割り込み発生時刻を行き過ぎてしまうことを防ぐことができる。
その後、仮想タイマの時刻T2から加算値Uを減算し、仮想タイマの時刻T1及び累積誤差Dに加算値Uを加算することで仮想タイマの時刻を更新する(410)。
タイマ割り込み制御部105では、仮想タイマの時刻T2を参照し、0以下ならばタイマ割り込みを検知し、タイマ割り込み処理を行う。タイマ割り込みが発生するときカウントダウンタイマの時刻は常に0のため、仮想計算機103上のソフトウェアには設定した通りの時刻にタイマ割り込みが発生しているように見える。
以下、カウントダウンタイマの動作の例について説明する。
ホスト計算機のタイマの更新間隔が1ミリ秒、仮想タイマの更新間隔が1マイクロ秒であり、第1の加算値U1=200、第2の加算値U2=15、閾値V=1000とした場合について説明する。
このとき、1マイクロ秒を1単位として考えれば、ホスト計算機101のタイマ更新間隔ΔT0=1000と考えられる。このときの流れを図5に従って説明する。
仮想計算機103の開始時に、ホスト計算機101のタイマ装置102の時刻T0’=100000を取得し、D=0に初期化する。仮想タイマの時刻をホスト計算機のタイマに合わせ、T1=100000とする。このときタイマ割り込みを2500マイクロ秒後に発生させるため、T2=2500が設定されたとする。
第1回の仮想タイマの更新事象発生時、T0=100000で更新されておらず、D<ΔT0であるから加算値U1を選択し、仮想タイマT2から減算する。その結果、T2=2300となる。以降、第2回から第5回の更新事象発生時も同様に加算値U1が選択され、第5回更新事象発生後はT2=1500、D=1000となる。
第6回の更新事象発生時、T0=100000で更新されておらず、D≧ΔT0であるから加算値U2が選択され、仮想タイマの時刻T2から減算される。結果T2=1485、D=1015となる。第7回も同様に第2の加算値U2が選択され、結果T2=1470、D=1030となる。
第8回の更新事象発生時、ホスト計算機のタイマが更新されT0=101000となる。よって累積誤差Dからホスト計算機のタイマ更新間隔ΔT0を減算し、D=30となる。このとき、D<ΔT0であるから第1の加算値U1が選択され、T2=1270、D=230となる。第9回から第11回の更新事象発生時は、ホスト計算機のタイマが更新される時もあるが、−V<D<ΔT0であるため第1の加算値U1が選択される。
第12回の更新事象発生時、ホスト計算機のタイマが更新され、累積誤差Dからホスト計算機のタイマ更新間隔ΔT0を減算した際にD=−1170となりD≦−Vが満たされる。このとき、まずU=−Dが選択されるが、T2<Uのため、U=T2が設定される。その結果、T2=0、D=−500となる。T2=0のため、タイマ割り込み制御部でタイマ割り込みが検知され、タイマ割り込みが発生する。
第13回の更新事象発生時は、U=200が選択され、T2=2300、D=−300となる。
第14回の更新事象発生時は、ホスト計算機のタイマが更新され、累積誤差Dからホスト計算機のタイマ更新間隔ΔT0を減算した際にD=−1300となり、D<−Vが満たされる。そのため、U=−Dが選択される。結果、T2=1000、D=0となる。
このように仮想タイマ110の時刻はホスト計算機101のタイマ装置102の時刻と大きな差が発生せず、同期して動作させることができる。
本実施例によれば、ホスト計算機のタイマ装置より更新間隔の短い仮想タイマをホスト計算機上で実現することができる。また、それぞれの加算値と閾値を変更することで、様々な特性を持つ仮想タイマを実現することができる。また、浮動小数点演算や、乗算・除算等を必要としないため、高速に動作させることができる。
本実施例(請求項2)によれば、ホスト計算機のタイマ装置の時刻より仮想タイマの時刻が一定の閾値V以上遅れた場合には、第1の加算値又は第2の加算値を用いて、仮想タイマの時刻をホスト計算機のタイマ装置の時刻に合わせる。これにより、仮想タイマの遅れが一定以上にならず、ホスト計算機のタイマ装置の時刻に同期して動作することが保障される。
一定タイミングごとに割込みを発生させるタイマ割込み処理では、仮想計算機の処理速度が実計算機の処理速度と比較して極端に遅い場合、割込みを起こす間隔を非常に短く設定するソフトウェアを動作させると実計算機上で動作させている場合より割込み処理を行っている時間が多くなり、その他の処理に割り当てられる時間が少なくなるという問題が生じる場合がある。そのような場合は、第1の加算値および第2の加算値を小さな値(例えば1)、閾値Vをタイマ割り込みを発生させたい最小の間隔に設定すれば、ホスト計算機のタイマ装置の値がおよそVだけ進んだ時に大きく時刻が進み、そのときにタイマ割り込みが発生することになるため、タイマ割込み間隔を制御することができる。
仮想タイマの第1の加算値および第2の加算値、および閾値Vを0とすれば、常にホスト計算機のタイマの時刻と一致した時刻をとることになる。
また、本実施例(請求項3)によれば、仮想タイマにおいて設定したタイマ割り込みの時刻を過ぎると判断された場合に、タイマ割り込みの時刻に合わせる処理を追加している。これによって、設定した時刻ちょうどにタイマ割り込みを発生させることを保障したまま時刻を同期させることが可能となる。
ここで、仮想タイマを更新する機会は、仮想計算機の命令で仮想タイマの値を参照した場合、仮想計算機上で一定命令数を実行した場合、ホスト計算機のタイマが一定時間経過した場合などが含まれるが、これに限定されない。
なお、第1および第2の加算値を仮想タイマの時刻から減算すれば、同様の考え方で単調減少するタイマ(カウントダウンタイマ)を実現できることは明らかである。
一実施例(実施例1)によるタイマ制御のための計算機のシステム構成を示す図。 実施例1によるタイマの時刻更新処理のフローチャート。 実施例2による初期設定のフローチャート。 実施例2によるタイマの時刻更新処理のフローチャート。 実施例2による仮想タイマの動作例を示す図。
符号の説明
101:ホスト計算機、102:タイマ装置、 103:仮想計算機、 104:命令シミュレーション部、 105:タイマ割込み制御部、 106:仮想タイマ制御部、 107:DB, 11:仮想タイマ制御情報、 110:仮想タイマ、 111:第1の加算値、 112:第2の加算値 112:閾値。

Claims (3)

  1. 時刻を計時するタイマ装置を有するホスト計算機上に仮想計算機を構築した計算機における仮想タイマ制御方法であって、
    該仮想タイマの時刻がホスト計算機のタイマ装置の時刻より所定以上進んでいない場合に使用する第1の値と、該仮想タイマの時刻が該ホスト計算機のタイマ装置の時刻より所定以上進んでいる場合に使用する第2の値を予め記憶手段に用意しておき、
    該仮想タイマを更新する際に、該仮想タイマの時刻と、該ホスト計算機のタイマ装置から取得した時刻を比較して、該仮想タイマの時刻が該ホスト計算機の該タイマ装置の時刻より所定以上進んでいるか否かを判断し、該記憶手段に記憶された該第1の値又は第2の値を選択的に用いて該仮想タイマの時刻を更新することを特徴とする仮想タイマ制御方法。
  2. 該ホスト計算機の該タイマ装置の時刻と、該仮想タイマの時刻とを比較することにより両者の差を計算し、該仮想タイマの遅れが一定値以上の場合に、該第1の値又は第2の値を該仮想タイマの値に加算することで、該仮想タイマの時刻を該ホスト計算機のタイマ装置の時刻に合わせることを特徴とする請求項1の仮想タイマ制御方法。
  3. 該仮想タイマの更新時に、次回タイマ割り込み時刻を過ぎると判断される場合に、該仮想タイマの時刻をタイマ割り込み時刻に合わせるように調整することを特徴とする請求項1又は2の仮想タイマ制御方法。
JP2007015026A 2007-01-25 2007-01-25 仮想タイマ制御方法 Pending JP2008181392A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007015026A JP2008181392A (ja) 2007-01-25 2007-01-25 仮想タイマ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007015026A JP2008181392A (ja) 2007-01-25 2007-01-25 仮想タイマ制御方法

Publications (1)

Publication Number Publication Date
JP2008181392A true JP2008181392A (ja) 2008-08-07

Family

ID=39725242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007015026A Pending JP2008181392A (ja) 2007-01-25 2007-01-25 仮想タイマ制御方法

Country Status (1)

Country Link
JP (1) JP2008181392A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109952560A (zh) * 2017-10-20 2019-06-28 深圳市汇顶科技股份有限公司 虚拟定时器的定时方法及其装置、电子装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109952560A (zh) * 2017-10-20 2019-06-28 深圳市汇顶科技股份有限公司 虚拟定时器的定时方法及其装置、电子装置
CN109952560B (zh) * 2017-10-20 2022-12-23 深圳市汇顶科技股份有限公司 虚拟定时器的定时方法及其装置、电子装置

Similar Documents

Publication Publication Date Title
US9110698B2 (en) Changing frequency of a virtual programmable interrupt timer in virtual machines to control virtual time
Wang et al. Self-Triggered Feedback Control Systems With Finite-Gain ${\cal L} _ {2} $ Stability
US20110047315A1 (en) Virtualization of real-time clock
EP2846320A1 (en) Single cycle offset adjustment for traffic signal controllers
EP3444975A1 (en) Method and apparatus for calibrating tdma time slot synchronization between master and slave machines
JP4749431B2 (ja) パイプラインスループットを促進するための方法及び装置
WO2001057658A3 (en) A system and method for altering an operating system start-up sequence prior to operating system loading
WO2000067122A3 (en) A coherent object system architecture
KR20190074026A (ko) 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템
JP2009301500A (ja) タスク処理システム及びタスク処理方法
CN114866178A (zh) 一种基于步长的分布式仿真系统时间同步方法
JP2008181392A (ja) 仮想タイマ制御方法
EP0239054B1 (en) Process control system and method
JPH0844594A (ja) データ処理装置
JP2009003149A (ja) 画像形成装置
US8471612B1 (en) Signal value storage circuitry with transition error detector
TW200521648A (en) Method and apparatus for tuning over lock and tuning method for sub-stable state with high performance
JP2861962B2 (ja) コンピュータプログラムのシミュレーション装置および方法
KR101674324B1 (ko) 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법
US11356189B2 (en) Virtualized clocks
JP2005339245A (ja) 割り込み発生回路
Cardoso et al. Modeling timed systems
JP2009140130A (ja) データ処理装置及びデータ処理装置の制御方法
KR102528130B1 (ko) 파티션 스케쥴링 방법
US9746876B2 (en) Drift compensation for a real time clock circuit