(57)【要約】【課題】更新処理中のカウント値の読み出し遅延を大幅に低減させ、カウント値の読み出し要求に対して高速に対応可能とする。【解決手段】割込み信号が発生した時に、全てのユーザの更新要否フラグメモリＭ２内の更新要否フラグ記憶領域Ｓ２の値を更新が必要であることを示す値（フラグ値「１」）に書き換え、続いて、ユーザ毎に、そのユーザのタイマカウントアップ数メモリＭ１内のカウント値記憶領域Ｓ１のカウント値をカウントアップするとともに、そのユーザの更新要否フラグ記憶領域Ｓ２の値をカウンタ値の更新が不要であることを示す値（フラグ値「０」）に書き換える。【選択図】  図４
2017216610.tif 000002
【特許請求の範囲】
【請求項１】
所定の周期で発生する割込み信号が発生する毎にカウントアップされるカウント値の記憶領域として測定対象毎に確保されるカウント値記憶領域と、前記カウント値記憶領域のカウント値の更新の要否を示すフラグ値の記憶領域として前記測定対象毎に確保される更新要否フラグ記憶領域とを備え、前記カウント値記憶領域に記憶されているカウント値に基づいて前記測定対象の測定開始時点からの経過時間を測定するタイマカウント装置に適用されるタイマカウント方法であって、
前記割込み信号が発生した時に、全ての前記測定対象の前記更新要否フラグ記憶領域のフラグ値を更新が必要であることを示す値に書き換える第１ステップと、
前記第１ステップによる前記更新要否フラグ記憶領域のフラグ値の書き換え処理の完了後、前記測定対象毎に、その測定対象の前記カウント値記憶領域のカウント値を所定の値だけカウントアップするとともに、その測定対象の前記更新要否フラグ記憶領域のフラグ値を前記カウンタ値の更新が不要であることを示す値に書き換える第２ステップと
を備えることを特徴とするタイマカウント方法。
【請求項２】
所定の周期で発生する割込み信号が発生する毎にカウントアップされるカウント値の記憶領域として測定対象毎に確保されるカウント値記憶領域と、前記カウント値記憶領域のカウント値の更新の要否を示すフラグ値の記憶領域として前記測定対象毎に確保される更新要否フラグ記憶領域と、前記カウント値記憶領域のカウント値のカウントアップ動作がアクティブであるか否かを示すフラグ値の記憶領域として前記測定対象毎に確保されるアクティブフラグ記憶領域とを備え、前記カウント値記憶領域に記憶されているカウント値に基づいて前記測定対象の測定開始時点からの経過時間を測定するタイマカウント装置に適用されるタイマカウント方法であって、
前記割込み信号が発生した時に、前記測定対象のうち前記アクティブフラグ記憶領域のフラグ値がアクティブであることを示している測定対象については、その測定対象の前記更新要否フラグ記憶領域のフラグ値を更新が必要であることを示す値に書き換え、アクティブではないことを示している測定対象については、その測定対象の前記更新要否フラグ記憶領域のフラグ値を更新が不要であることを示す値に書き換える第１ステップと、
前記第１ステップによる前記更新要否フラグ記憶領域のフラグ値の書き換え処理の完了後、前記更新要否フラグ記憶領域のフラグ値が更新が必要であることを示している前記測定対象毎に、その測定対象の前記カウント値記憶領域のカウント値を所定の値だけカウントアップするとともに、その測定対象の前記更新要否フラグ記憶領域のフラグ値を更新が不要であることを示す値に書き換える第２ステップと
を備えることを特徴とするタイマカウント方法。
【請求項３】
請求項１又は２に記載されたタイマカウント方法において、
指定された測定対象のカウント値を前記カウント値記憶領域から読み出すカウント値読出ステップを備え、
前記カウント値読出ステップは、
測定対象が指定されると、
前記指定された測定対象の前記更新要否フラグ記憶領域のフラグ値および前記カウント値記憶領域のカウント値を読み出し、
前記更新要否フラグ記憶領域から読み出したフラグ値が更新が不要であることを示していた場合には前記カウント値記憶領域から読み出したカウント値を前記指定された測定対象の更新後のカウント値として確定し、
前記更新要否フラグ記憶領域から読み出したフラグ値が更新が必要であることを示していた場合には、前記カウント値記憶領域から読み出したカウント値を前記所定の値だけカウントアップし、このカウントアップした値を前記指定された測定対象の更新後のカウント値として確定する
ことを特徴とするタイマカウント方法。
【請求項４】
請求項１〜３の何れか１項に記載されたタイマカウント方法において、
前記第１ステップによる前記更新要否フラグ記憶領域のフラグ値の書き換え処理の完了後、前記第２ステップに入るまで、および、前記第２ステップに入った後の前記測定対象毎のカウント値の更新処理の合間、割込み処理を許可するステップ
を備えることを特徴とするタイマカウント方法。
【請求項５】
所定の周期で発生する割込み信号が発生する毎にカウントアップされるカウント値の記憶領域として測定対象毎に確保されるカウント値記憶領域と、前記カウント値記憶領域のカウント値の更新の要否を示すフラグ値の記憶領域として前記測定対象毎に確保される更新要否フラグ記憶領域とを備え、前記カウント値記憶領域に記憶されているカウント値に基づいて前記測定対象の測定開始時点からの経過時間を測定するタイマカウント装置であって、
前記割込み信号が発生した時に、全ての前記測定対象の前記更新要否フラグ記憶領域のフラグ値を更新が必要であることを示す値に書き換える更新要否フラグ書換手段と、
前記更新要否フラグ書換手段による前記更新要否フラグ記憶領域のフラグ値の書き換え処理の完了後、前記測定対象毎に、その測定対象の前記カウント値記憶領域のカウント値を所定の値だけカウントアップするとともに、その測定対象の前記更新要否フラグ記憶領域のフラグ値を前記カウンタ値の更新が不要であることを示す値に書き換えるカウント値更新手段と
を備えることを特徴とするタイマカウンタ装置。
【請求項６】
所定の周期で発生する割込み信号が発生する毎にカウントアップされるカウント値の記憶領域として測定対象毎に確保されるカウント値記憶領域と、前記カウント値記憶領域のカウント値の更新の要否を示すフラグ値の記憶領域として前記測定対象毎に確保される更新要否フラグ記憶領域と、前記カウント値記憶領域のカウント値のカウントアップ動作がアクティブであるか否かを示すフラグ値の記憶領域として前記測定対象毎に確保されるアクティブフラグ記憶領域とを備え、前記カウント値記憶領域に記憶されているカウント値に基づいて前記測定対象の測定開始時点からの経過時間を測定するタイマカウント装置であって、
前記割込み信号が発生した時に、前記測定対象のうち前記アクティブフラグ記憶領域のフラグ値がアクティブであることを示している測定対象については、その測定対象の前記更新要否フラグ記憶領域のフラグ値を更新が必要であることを示す値に書き換え、アクティブではないことを示している測定対象については、その測定対象の前記更新要否フラグ記憶領域のフラグ値を更新が不要であることを示す値に書き換える更新要否フラグ書換手段と、
前記更新要否フラグ書換手段による前記更新要否フラグ記憶領域のフラグ値の書き換え処理の完了後、前記更新要否フラグ記憶領域のフラグ値が更新が必要であることを示している前記測定対象毎に、その測定対象の前記カウント値記憶領域のカウント値を所定の値だけカウントアップするとともに、その測定対象の前記更新要否フラグ記憶領域のフラグ値を更新が不要であることを示す値に書き換えるカウント値更新手段と
を備えることを特徴とするタイマカウンタ装置。
【請求項７】
請求項５又は６に記載されたタイマカウンタ装置において、
指定された測定対象のカウント値を前記カウント値記憶領域から読み出すカウント値読出手段を備え、
前記カウント値読出手段は、
測定対象が指定されると、
前記指定された測定対象の前記更新要否フラグ記憶領域のフラグ値および前記カウント値記憶領域のカウント値を読み出し、
前記更新要否フラグ記憶領域から読み出したフラグ値が更新が不要であることを示していた場合には前記カウント値記憶領域から読み出したカウント値を前記指定された測定対象の更新後のカウント値として確定し、
前記更新要否フラグ記憶領域から読み出したフラグ値が更新が必要であることを示していた場合には、前記カウント値記憶領域から読み出したカウント値を前記所定の値だけカウントアップし、このカウントアップした値を前記指定された測定対象の更新後のカウント値として確定する
ことを特徴とするタイマカウンタ装置。
【請求項８】
請求項１〜４の何れか１項に記載されたタイマカウント方法における各ステップの処理をコンピュータに実行させるためのタイマカウントプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の周期で発生する割込み信号が発生する毎に、測定対象のカウント値をカウントアップすることによって、測定対象の測定開始時点からの経過時間を測定するタイマカウント方法、タイマカウンタ装置およびタイマカウントプログラムに関する。
【背景技術】
【０００２】
従来より、タイマ機能を用いて時間管理制御を行うことは広く一般に行われている。例えば、コンピュータシステムにおいて、複数のユーザ（測定対象）に対して、ユーザ毎にあるプロセスの開始からの経過時間をカウントしておき、ある条件を満たした時点でそれまでの経過時間を読み出し、その経過時間を基に演算処理を行うというような制御が必要なことがある。ごく単純な例を挙げれば、各ユーザ毎に使用したプロセスの稼働時間に応じて従量課金するシステムで、プロセス終了時にプロセス開始からの経過時間から課金すべき料金を計算するような場合などがある。
【０００３】
このような場合、通常のコンピュータシステムでは、内蔵ハードウェアタイマは数個程度しか搭載していないが、測定、管理すべきユーザの数が非常に多数になることも多い。そのための従来技術として、１つの内蔵ハードウェアタイマが例えば１０ｍｓ経過する毎にＣＰＵに対して割込みをかけるように設定しておいて、ユーザ毎に測定開始時点からの割込みがかかった回数をメモリに記録してい行く方法が取られる（例えば、特許文献１参照）。
【０００４】
図９に従来技術によるタイマ（ソフトウェアタイマ）の動作フローを示す。内蔵ハードウェアタイマから１０ｍｓ毎にＣＰＵに対して割込みがかかるように設定してあり、割込み（タイマ割込み）がかかると、ＣＰＵは、メインフロー（main()）からタイマ割込み処理に遷移する（矢印(１)）。
【０００５】
タイマ割込み処理では、全ユーザ（この例では、user(1),user(2),・・・,user(N)のＮ人のユーザ）について、順番に、そのカウント値をカウントアップする。この場合、ＣＰＵは、図１０に示すようなメモリ（以下、タイマカウントアップ数メモリと呼ぶ。）Ｍ１中に、ユーザ毎のカウント値の記憶領域としてカウント値記憶領域Ｓ１（Ｓ１1〜Ｓ１N）を確保する。ＣＰＵは、このカウント値記憶領域Ｓ１中の現在値に１を足した値を上書きする(ステップＳ１０２)。この処理を全ユーザ分完了すると（ステップＳ１０３のＹＥＳ）、割り込み処理を終了し、制御をメインフローに戻す(矢印(２))。
【０００６】
ＣＰＵは、制御がメインフローに戻された後、「カウンタ値Ｒｅａｄ割込み」がかかると、カウンタ値Ｒｅａｄ割込み処理に遷移し(矢印(３))、「カウンタ値Ｒｅａｄ割込み」によって指定されたユーザのカウント値をタイマカウントアップ数メモリＭ１から読み出し（ステップＳ２０１）、そのカウント値に１０ｍｓをかけた値を測定開始時点からの経過時間とする。
【０００７】
この方法において、タイマカウントアップ数メモリＭ１の更新処理中は、タイマカウントアップ数メモリＭ１からのカウント値の読み出しができないように、割込み禁止を設定する必要がある。このため、図９では、ステップＳ１０２に入る前のステップＳ１０１で割込みを禁止し、ステップＳ１０３から抜けた後のステップＳ１０４で割込み許可を行っている。これにより、タイマカウントアップ数メモリＭ１の更新処理を完了した後、カウンタ値Ｒｅａｄ割込み処理を行って、指定されたユーザ（図９では、user(k)）の更新後のカウント値を読み出すことができる。
【０００８】
なお、図９では、ユーザのカウント値の読み出しをメインフローへの割込み処理によって行っている場合を示しているが、メインフローでユーザのカウント値の読み出しを行う場合もタイマカウントアップ数メモリＭ１の更新処理が完了するまで待って、カウント値の読み出しを実行する必要がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平９−１５３７９０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、この従来の方法では、全てのユーザのカウント値の更新処理が終了するまで、指定されたユーザのカウント値の読み出しができないという問題がある。ユーザのカウント値は、例えば、ＤＲＡＭのようなメモリにユーザ毎に別アドレスに格納され、更新処理は各アドレスのデータを順番に読み出し、その値に１を足して、得られた計算値を再度書き戻すという処理を行う必要がある。管理対象のユーザ数が多くなるにつれ、更新時間が長くなり、読み出しのタイミングによっては、カウント値の読み出し要求に、高速に対応できないという問題が生じる。
【００１１】
本発明は、このような課題を解決するためになされたもので、その目的とするところは、カウント値の読み出し要求に対して高速に対応させることが可能なタイマカウント方法、タイマカウンタ装置およびタイマカウントプログラム提供することにある。
【課題を解決するための手段】
【００１２】
このような目的を達成するために本発明は、所定の周期で発生する割込み信号が発生する毎にカウントアップされるカウント値の記憶領域として測定対象毎に確保されるカウント値記憶領域（Ｓ１）と、カウント値記憶領域（Ｓ１）のカウント値の更新の要否を示すフラグ値の記憶領域として測定対象毎に確保される更新要否フラグ記憶領域（Ｓ２）とを備え、カウント値記憶領域（Ｓ１）に記憶されているカウント値に基づいて測定対象の測定開始時点からの経過時間を測定するタイマカウント装置に適用されるタイマカウント方法であって、割込み信号が発生した時に、全ての測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値を更新が必要であることを示す値に書き換える第１ステップ（Ｓ３０２）と、第１ステップ（Ｓ３０２）による更新要否フラグ記憶領域（Ｓ２）のフラグ値の書き換え処理の完了後、測定対象毎に、その測定対象のカウント値記憶領域（Ｓ１）のカウント値を所定の値だけカウントアップするとともに、その測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値をカウンタ値の更新が不要であることを示す値に書き換える第２ステップ（Ｓ３０４〜Ｓ３０８）とを備えることを特徴とする。
【００１３】
この発明では、カウント値の記憶領域としてカウント値記憶領域（Ｓ１）を、カウント値記憶領域（Ｓ１）のカウント値の更新の要否を示すフラグ値の記憶領域として更新要否フラグ記憶領域（Ｓ２）を、測定対象毎に確保する。例えば、タイマカウントアップ数メモリ（Ｍ１）と更新要否フラグメモリ（Ｍ２）とを設け、タイマカウントアップ数メモリ（Ｍ１）内に測定対象毎のカウント値記憶領域（Ｓ１）を確保し、更新要否フラグメモリ（Ｍ２）内に測定対象毎の更新要否フラグ記憶領域（Ｓ２）を確保する。そして、割込み信号が発生した時に、全ての測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値を更新が必要であることを示す値（例えば、「１」）に書き換える。そして、この更新要否フラグ記憶領域（Ｓ２）のフラグ値の書き換え処理の完了後、測定対象毎に、その測定対象のカウント値記憶領域（Ｓ１）のカウント値を所定の値（例えば、＋１）だけカウントアップするとともに、その測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値を更新が不要であることを示す値（例えば、「０」）に書き換える。
【００１４】
これにより、本発明では、割込み信号（タイマ割込み）の発生後、全ての更新要否フラグ記憶領域（Ｓ２）のフラグ値の書き換えが完了すれば、カウント値の更新処理中（タイマカウントアップ数メモリの更新処理中）であっても、指定された測定対象の更新後のカウント値を読み出すことが可能となる。例えば、測定対象が指定されると、その指定された測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値およびカウント値記憶領域（Ｓ１）のカウント値を読み出し、更新要否フラグ記憶領域（Ｓ２）から読み出したフラグ値が更新が不要であることを示していた場合にはカウント値記憶領域（Ｓ１）から読み出したカウント値を指定された測定対象の更新後のカウント値として確定し、更新要否フラグ記憶領域（Ｓ２）から読み出したフラグ値が更新が必要であることを示していた場合には、カウント値記憶領域（Ｓ１）から読み出したカウント値を所定の値だけカウントアップし、このカウントアップした値を指定された測定対象の更新後のカウント値として確定する。また、この発明では、特に、測定対象の数が多数になる場合、更新要否フラグメモリの更新にかかる時間は、タイマカウントアップ数メモリの更新にかかる時間に比べ、大幅に短縮することができる。
【００１５】
また、本発明は、所定の周期で発生する割込み信号が発生する毎にカウントアップされるカウント値の記憶領域として測定対象毎に確保されるカウント値記憶領域（Ｓ１）と、カウント値記憶領域（Ｓ１）のカウント値の更新の要否を示すフラグ値の記憶領域として測定対象毎に確保される更新要否フラグ記憶領域（Ｓ２）と、カウント値記憶領域（Ｓ１）のカウント値のカウントアップ動作がアクティブであるか否かを示すフラグ値の記憶領域として測定対象毎に確保されるアクティブフラグ記憶領域（Ｓ３）とを備え、カウント値記憶領域（Ｓ１）に記憶されているカウント値に基づいて測定対象の測定開始時点からの経過時間を測定するタイマカウント装置に適用されるタイマカウント方法であって、割込み信号が発生した時に、測定対象のうちアクティブフラグ記憶領域（Ｓ３）のフラグ値がアクティブであることを示している測定対象については、その測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値を更新が必要であることを示す値に書き換え、アクティブではないことを示している測定対象については、その測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値を更新が不要であることを示す値に書き換える第１ステップ（Ｓ５０２）と、第１ステップ（Ｓ５０２）による更新要否フラグ記憶領域（Ｓ２）のフラグ値の書き換え処理の完了後、更新要否フラグ記憶領域（Ｓ２）のフラグ値が更新が必要であることを示している測定対象毎に、その測定対象のカウント値記憶領域（Ｓ１）のカウント値を所定の値だけカウントアップするとともに、その測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値を更新が不要であることを示す値に書き換える第２ステップ（Ｓ５０４〜Ｓ５０９）とを備えることを特徴とする。
【００１６】
この発明では、測定対象のカウント値の記憶領域としてカウント値記憶領域（Ｓ１）を、カウント値記憶領域（Ｓ１）のカウント値の更新の要否を示すフラグ値の記憶領域として更新要否フラグ記憶領域（Ｓ２）を、カウント値記憶領域（Ｓ１）のカウント値のカウントアップ動作がアクティブであるか否かを示すフラグ値の記憶領域としてアクティブフラグ記憶領域（Ｓ３）を測定対象毎に確保する。例えば、タイマカウントアップ数メモリ（Ｍ１）と更新要否フラグメモリ（Ｍ２）とカウンタアクティブフラグメモリ（Ｍ３）とを設け、タイマカウントアップ数メモリ（Ｍ１）内に測定対象毎のカウント値記憶領域（Ｓ１）を確保し、更新要否フラグメモリ（Ｍ２）内に測定対象毎の更新要否フラグ記憶領域（Ｓ２）を確保し、カウンタアクティブフラグメモリ（Ｍ３）内に測定対象毎のアクティブフラグ記憶領域（Ｓ３）を確保する。そして、割込み信号が発生した時に、測定対象のうちアクティブフラグ記憶領域（Ｓ３）のフラグ値がアクティブであることを示している測定対象については、その測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値を更新が必要であることを示す値（例えば、「１」）に書き換え、アクティブではないことを示している測定対象については、その測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値を更新が不要であることを示す値（例えば、「０」）に書き換える。そして、この更新要否フラグ記憶領域（Ｓ２）のフラグ値の書き換え処理の完了後、更新要否フラグ記憶領域（Ｓ２）のフラグ値が更新が必要であることを示している測定対象毎に、その測定対象のカウント値記憶領域（Ｓ１）のカウント値を所定の値（例えば、＋１）だけカウントアップするとともに、その測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値を更新が不要であることを示す値に書き換える。
【００１７】
これにより、本発明では、測定対象のうちアクティブフラグ記憶領域（Ｓ３）のフラグ値がアクティブであることを示している測定対象に対してのみ、すなわち測定中の測定対象に対してのみ、そのカウント値の更新が行われる。また、割込み信号（タイマ割込み）の発生後、全ての更新要否フラグ記憶領域（Ｓ２）のフラグ値の書き換えが完了すれば、カウント値の更新処理中（タイマカウントアップ数メモリの更新処理中）であっても、指定された測定対象の更新後のカウント値を読み出すことが可能となる。例えば、測定対象が指定されると、その指定された測定対象の更新要否フラグ記憶領域（Ｓ２）のフラグ値およびカウント値記憶領域（Ｓ１）のカウント値を読み出し、更新要否フラグ記憶領域（Ｓ２）から読み出したフラグ値が更新が不要であることを示していた場合にはカウント値記憶領域（Ｓ１）から読み出したカウント値を指定された測定対象の更新後のカウント値として確定し、更新要否フラグ記憶領域（Ｓ２）から読み出したフラグ値が更新が必要であることを示していた場合には、カウント値記憶領域（Ｓ１）から読み出したカウント値を所定の値だけカウントアップし、このカウントアップした値を指定された測定対象の更新後のカウント値として確定する。また、この発明では、特に、測定対象の数が多数になる場合、更新要否フラグメモリの更新にかかる時間は、タイマカウントアップ数メモリの更新にかかる時間に比べ、大幅に短縮することができる。
【００１８】
本発明において、測定対象は、必ずしも複数でなくてもよく、１つであっても構わない。また、本発明では、測定対象毎にその測定対象のカウント値記憶領域（Ｓ１）のカウント値を所定の値だけカウントアップするが、所定の値は幾つであってもよく、また正の値であっても、負の値であってもよい。所定の値を負とした場合、カウント値記憶領域（Ｓ１）のカウント値は結果的にカウントダウンされることになる。
【００１９】
なお、上記説明では、一例として、発明の構成要素に対応する図面上の構成要素を、括弧を付した参照符号によって示している。
【発明の効果】
【００２０】
以上説明したことにより、本発明によれば、割込み信号（タイマ割込み）の発生後、全ての更新要否フラグ記憶領域のフラグ値の書き換えが完了すれば、カウント値の更新処理中であっても、指定された測定対象の更新後のカウント値の読み出しを行うようにすることが可能となる。特に、更新要否フラグメモリ内に更新要否フラグ記憶領域を、タイマカウントアップ数メモリ内にカウント値記憶領域を確保するものとした場合、測定対象が多数になる場合は、更新要否フラグメモリの更新にかかる時間は、タイマーカウントアップ数メモリの更新にかかる時間に比べ大幅に短縮することができる。これにより、更新処理中のカウント値の読み出し遅延を大幅に低減させ、カウント値の読み出し要求に対して高速に対応させることができるようになる。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明の実施の形態１に係るタイマカウント方法を採用したコンピュータシステムの要部の構成を示す図である。
【図２】図２は、実施の形態１のコンピュータシステムにおけるタイマカウントアップ数メモリおよび更新要否フラグメモリのデータ構成を示す図である。
【図３】図３は、実施の形態１のコンピュータシステムによるタイマ（ソフトウェアタイマ）の動作フローを示す図である。
【図４】図４は、実施の形態１のコンピュータシステムのＣＰＵ内の処理機能をブロック化して示した図である。
【図５】図５は、本発明の実施の形態２に係るタイマカウント方法を採用したコンピュータシステムの要部の構成を示す図である。
【図６】図６は、実施の形態２のコンピュータシステムにおけるタイマカウントアップ数メモリ、更新要否フラグメモリおよびカウンタアクティブフラグメモリのデータ構成を示す図である。
【図７】図７は、実施の形態２のコンピュータシステムによるタイマ（ソフトウェアタイマ）の動作フローを示す図である。
【図８】図８は、実施の形態２のコンピュータシステムのＣＰＵ内の処理機能をブロック化して示した図である。
【図９】図９は、従来技術によるタイマ（ソフトウェアタイマ）の動作フローを示す図である。
【図１０】図１０は、従来技術におけるタイマカウントアップ数メモリのデータ構成を示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２３】
〔実施の形態１〕
図１は本発明の実施の形態１に係るタイマカウント方法を採用したコンピュータシステム（タイマカウンタ装置）１００の要部の構成を示す図である。
【００２４】
この実施の形態１のコンピュータシステム１００は、ＣＰＵ１と内蔵ハードウェアタイマ（以下、内蔵タイマと呼ぶ。）２とタイマカウントアップ数メモリＭ１と更新要否フラグメモリＭ２とを備えており、ＣＰＵ１と内蔵タイマ２，タイマカウントアップ数メモリＭ１および更新要否フラグメモリＭ２とはＣＰＵバス３を介して相互に接続されている。
【００２５】
このコンピュータシステム１００において、ＣＰＵ１からのタイマカウントアップ数メモリＭ１および更新要否フラグメモリＭ２に対するリードライト、内蔵タイマ２からのＣＰＵ１への割込みの通知はＣＰＵバス３を介して行われる。また、このコンピュータシステム１００では、内蔵タイマ２からＣＰＵ１に対して、１０ｍｓ毎に割込みがかかるように設定されている。
【００２６】
図２（ａ）に、このコンピュータシステム１００におけるタイマカウントアップ数メモリＭ１のデータ構成を示す。タイマカウントアップ数メモリＭ１内には、ユーザのカウント値の記憶領域として、カウント値記憶領域Ｓ１が確保される。ＣＰＵ１は、ユーザ（この例では、user(1),user(2),・・・,user(N)のＮ人のユーザ）毎に、タイマカウントアップ数メモリＭ１内にカウント値記憶領域Ｓ１（Ｓ１1〜Ｓ１N）を確保し、この確保したカウント値記憶領域Ｓ１（Ｓ１1〜Ｓ１N）に測定開始時点からの内蔵タイマ２からの割込み回数を書き込む。
【００２７】
タイマカウントアップ数メモリＭ１としては例えば１ワード３２ｂｉｔ幅のＲＡＭを用いる。あるユーザの測定開始時点で、そのユーザのカウント値記憶領域Ｓ１を１ワード分確保し、初期値０を書き込む。その後、内蔵タイマ２からの割込みがある毎に現在値に１を足した値で上書き更新して行く。すなわち、この実施の形態では、測定を実施するユーザが増えると、タイマカウントアップ数メモリＭ１内に確保されるカウント値記憶領域Ｓ１が増える。
【００２８】
図２（ｂ）に、このコンピュータシステム１００における更新要否フラグメモリＭ２のデータ構成を示す。更新要否フラグメモリＭ２内には、カウント値記憶領域Ｓ１のカウント値の更新の要否を示すフラグ値の記憶領域として、更新要否フラグ記憶領域Ｓ２が確保される。ＣＰＵ１は、ユーザ（この例では、user(1),user(2),・・・,user(N)のＮ人のユーザ）毎に、更新要否フラグメモリＭ２内に更新要否フラグ記憶領域Ｓ２（Ｓ２1〜Ｓ２N）を確保し、この確保した更新要否フラグ記憶領域Ｓ２（Ｓ２1〜Ｓ２N）にカウント値記憶領域Ｓ１（Ｓ１1〜Ｓ１N）のカウント値の更新の要否を示す値をフラグ値として書き込む。この場合、更新が必要であることを示すフラグ値として「１」を書き込み、更新が不要であることを示すフラグ値として「０」を書き込む。
【００２９】
なお、この例では、例えば１ワード３２ｂｉｔ幅のＲＡＭを用いて、第１ワード目の「ｂｉｔ０」をuser(1)の更新要否フラグ記憶領域Ｓ２1、「ｂｉｔ１」をuser(2)の更新要否フラグ記憶領域Ｓ２2、・・・・、「ｂｉｔ３１」をuser(32)の更新要否フラグ記憶領域Ｓ２32、第２ワード目の「ｂｉｔ０」にuser(33)の更新要否フラグ記憶領域Ｓ２33、・・・というようにして、カウント値の更新の要否を示すフラグ値を書き込む。
【００３０】
図３に、このコンピュータシステム１００によるタイマ（ソフトウェアタイマ）の動作フローを示す。ＣＰＵ１は、内蔵タイマ２から１０ｍｓ毎に割込み（タイマ割込み）がかかると、メインフロー（main()）からタイマ割込み処理に遷移する（矢印(１)）。
【００３１】
タイマ割込み処理では、まず、割込みを禁止し（ステップＳ３０１）、更新要否フラグメモリＭ２内の全ユーザの更新要否フラグ記憶領域Ｓ２（Ｓ２1〜Ｓ２N）のフラグ値を更新が必要であることを示す値「１」に書き換える（ステップＳ３０２：全ユーザ更新要否フラグＯＮ）。そして、割込みを許可する（ステップＳ３０３）。
【００３２】
次に、ＣＰＵ１は、割込みを禁止し（ステップＳ３０４）、ｉ＝１として、user(i)のカウント値をアップする（ステップＳ３０５：「user(i)カウンタ更新」）。この場合、タイマカウントアップ数メモリＭ１内に、user(i)のカウント値の記憶領域としてカウント値記憶領域Ｓ１iが確保されているものとする。ＣＰＵ１は、このカウント値記憶領域Ｓ１i内の現在値に１を足した値を上書きするとともに、更新要否フラグメモリＭ２内の更新要否フラグ記憶領域Ｓ２iのフラグ値を「０」（更新不要）に書き換える（ステップＳ３０６：「user(i)更新要否フラグＯＦＦ」）。そして、割込みを許可する（ステップＳ３０７）。
【００３３】
ＣＰＵ１は、このステップＳ３０４〜Ｓ３０７の処理を、全ユーザ（この例では、user(1),user(2),・・・,user(N)のＮ人のユーザ）に対して行われたことが確認されるまで（ステップＳ３０８のＹＥＳ）、順番に繰り返す。そして、この処理を全ユーザ分完了すると（ステップＳ３０８のＹＥＳ）、タイマ割り込み処理を終了し、制御をメインフローに戻す（矢印(２)）。
【００３４】
このＣＰＵ１が行う処理動作において、タイマ割込み処理が始まってから「全ユーザ更新要否フラグＯＮ」処理完了までの間(ステップＳ３０１〜Ｓ３０３までの間)と、各ユーザ毎の「user(i)カウンタ更新」処理開始から「user(i)更新要否フラグＯＦＦ」完了までの間(ステップＳ３０４〜Ｓ３０７までの間)は、割込みが禁止される。換言すれば、その間以外は、割込みが許可される。
【００３５】
ＣＰＵ１は、タイマ割込処理中に「カウンタ値Ｒｅａｄ割込み」がかかると、このタイマ割込処理中の割込みが許可されている期間に、カウンタ値Ｒｅａｄ割込み処理を行う。すなわち、例えば、ステップＳ３０４〜Ｓ３０７の処理中に「カウンタ値Ｒｅａｄ割込み」がかかると、ステップＳ３０７で割込みが許可された後、カウンタ値Ｒｅａｄ割込み処理に遷移する(矢印(３))。
【００３６】
このカウンタ値Ｒｅａｄ割込み処理では、カウンタ値Ｒｅａｄ割込みによって指定されたユーザ（図３ではuser(k)）の更新要否フラグ記憶領域Ｓ２Kのフラグ値およびカウント値記憶領域Ｓ１Kのカウント値を読み出し（ステップＳ４０１，Ｓ４０２）、更新要否フラグ記憶領域Ｓ２Kから読み出したフラグ値が「０」（更新不要）であった場合にはカウント値記憶領域Ｓ１Kから読み出したカウント値を指定されたユーザの更新後のカウント値として確定し、更新要否フラグ記憶領域Ｓ２Kから読み出したフラグ値が「１」（更新要）であった場合には、カウント値記憶領域Ｓ１Kから読み出したカウント値を１だけカウントアップし、このカウントアップした値を指定されたユーザの更新後のカウント値として確定する（ステップＳ４０３）。この理由は次の通りである。
【００３７】
user(k)のカウント値を読み出した時点でuser(k)のカウント値記憶領域Ｓ１Kの値が更新完了している場合は、更新後のカウント値の算出式は、
更新後のカウント値＝カウント値記憶領域Ｓ１Kから読み出したカウント値（＝更新後の値）＋更新要否フラグ記憶領域Ｓ２Kから読み出した値（更新不要＝値０）  ・・・・（１）
となる。
一方、user(k)のカウント値を読み出した時点でuser(k)のカウント値記憶領域Ｓ１Kの値が更新前の場合は、更新後のカウント値の算出式は、
更新後のカウント値＝カウント値記憶領域Ｓ１Kから読み出したカウント値（＝更新前の値）＋更新要否フラグ記憶領域Ｓ２Kから読み出した値（更新要＝値１）  ・・・・(２)
となる。
このため、どちらのタイミングで読み出しても、更新後のカウント値を得ることができる。
【００３８】
各ユーザ毎の「user(i)カウンタ更新」処理開始から「user(i)更新要否フラグＯＦＦ」完了までの間(ステップＳ３０４〜Ｓ３０７までの間)を割込み禁止にするのは、各ユーザのカウント値と更新要否フラグのフラグ値とは必ずセットで更新する必要があるからである。しかし、次のユーザの更新開始（この例では、「user(i+1)カウンタ更新」処理開始まで）までの間に一旦、割込み禁止を解除するので、この期間に任意のユーザの更新後カウント値を得ることができる。
【００３９】
従来技術では、タイマカウントアップ数メモリＭ１の更新処理中は、全ユーザのカウント値の更新が完了するまで、カウント値の読み出しができなかったが、本実施の形態では、「全ユーザ更新要否フラグＯＮ」処理完了後であれば、その後の割込みが許可されている期間にカウント値の読み出しが可能になる。
【００４０】
従来技術では、ユーザ数がＮである場合、タイマカウントアップ数メモリＭ１の更新には、Ｎ人のユーザ分それぞれについて、以下の手順（１）〜（３）が必要になる。このＮ人のユーザ分の処理が完了するまでタイマカウントアップ数メモリＭ１からカウント値を読み出すことができない。
（１）ユーザのカウント値記憶領域Ｓ１から１ワード分データを読み出す。
（２）このデータに１を足す。
（３）１を足した更新データをタイマカウントアップ数メモリに書き戻す。
【００４１】
これに対して、本実施の形態では、「全ユーザ更新要否フラグＯＮ」処理では、全ユーザ分のデータはceiling(N/32)（ceiling(x)は天井関数で、実数ｘに対してｘ以上の最小の整数を表す）ワード分であり、全ユーザの更新要否フラグ記憶領域Ｓ２にフラグ値「１」を書き込むには、ceiling(N/32)回、更新要否フラグメモリＭ２にアクセスすればよい。従って、ユーザ数Ｎが大きい場合は特に、「全ユーザ更新要否フラグＯＮ」処理の方が短時間で完了する。
【００４２】
本実施の形態では、この「全ユーザ更新要否フラグＯＮ」処理完了後であれば、その後の割込みが許可されている期間（ステップＳ３０３〜Ｓ３０４までの間、ステップＳ３０７〜Ｓ３０４までの間）にカウント値の読み出しが可能になる。従って、本実施の形態のコンピュータシステム１００では、従来技術に比較して、カウント値の読み出しができなくなる時間を大幅に短縮し、カウント値の読み出し要求に対して高速に対応させることができるようになる。
【００４３】
なお、本実施の形態では、あるユーザの測定開始時点で、そのユーザのカウント値記憶領域Ｓ１に初期値０を書き込むようにしたが、あらかじめタイマ測定したい時間が決まっている場合には、測定開始時に、カウント値記憶領域Ｓ１の初期値として、カウントしたい数を書き込み、内蔵タイマ２からの割込みがかかる毎に、カウント値記憶領域Ｓ１のカウント値を現在値から１引いた値で上書き更新する構成にすることも可能である。この場合、カウント値に足し合わせる値が負となり、カウント値記憶領域Ｓ１のカウント値はカウントダウンされることになる。
【００４４】
また、図３の動作フローでは、各ユーザのカウント値の更新完了毎に、カウンタ値Ｒｅａｄ割込みを許可する例を示している。もし、割込みを許可した時に毎回カウンタ値Ｒｅａｄ割込み処理が起こったとしても、内蔵タイマ２からの次の割込みがかかるまでに全ユーザのカウント値について更新が完了する場合は問題ないが、そうでない場合は例えば、以下のような処理をすることによって、内蔵タイマ２の更新周期内に全ユーザのカウント値の更新を完了できるようにすることが必要になる。
【００４５】
すなわち、全ユーザ分のカウント値の更新に必要な時間をＴ_updateとして、今回の割込み処理の開始後、次の内蔵タイマ２からの割込み時刻よりＴ_update前になった時点で、カウンタ値Ｒｅａｄ割込みを禁止する設定にして、残りの未更新のユーザ全てのカウント値について更新が完了した後で、カウンタ値Ｒｅａｄ割込みの禁止を解除する。このような対策を取ることで、内蔵タイマ２の割込み信号の発生周期内に全ユーザ分のカウント値の更新完了を保証することができる。
【００４６】
図４に、この実施の形態１のコンピュータシステム１００のＣＰＵ１内の処理機能をブロック化した図(機能ブロック図)を示す。
【００４７】
実施の形態１のコンピュータシステム１００において、ＣＰＵ１は、割込み信号が発生した時(タイマ割込みがかかった時)に、全てのユーザ（この例では、user(1),user(2),・・・,user(N)のＮ人のユーザ）の更新要否フラグメモリＭ２内の更新要否フラグ記憶領域Ｓ２（Ｓ２1〜Ｓ２N）のフラグ値を「１」（更新要）に書き換える更新要否フラグ書換部１０１と、更新要否フラグ書換部１０１による更新要否フラグメモリＭ２内の更新要否フラグ記憶領域Ｓ２（Ｓ２1〜Ｓ２N）のフラグ値の書き換え処理の完了後、ユーザ毎に、そのユーザのタイマカウントアップ数メモリＭ１内のカウント値記憶領域Ｓ１のカウント値を所定の値（＋１）だけカウントアップするとともに、そのユーザの更新要否フラグメモリＭ２内の更新要否フラグ記憶領域Ｓ２のフラグ値を「０」（更新不要）に書き換えるカウント値更新部１０２と、指定されたユーザのカウント値をタイマカウントアップ数メモリＭ１内のカウント値記憶領域Ｓ１から読み出すカウント値読出部１０３とを備えている。
【００４８】
カウント値読出部１０３は、カウンタ値Ｒｅａｄ割込みがかかると、そのカウンタ値Ｒｅａｄ割込みによって指定されたユーザの更新要否フラグメモリＭ２内の更新要否フラグ記憶領域Ｓ２のフラグ値およびタイマカウントアップ数メモリＭ１内のカウント値記憶領域Ｓ１のカウント値を読み出し、更新要否フラグ記憶領域Ｓ２から読み出したフラグ値が「０」(更新不要)であった場合には、カウント値記憶領域Ｓ１から読み出したカウント値を指定されたユーザの更新後のカウント値として確定し、更新要否フラグ記憶領域Ｓ２から読み出したフラグ値が「１」(更新要)であった場合には、カウント値記憶領域Ｓ１から読み出したカウント値を所定の値(＋１)だけカウントアップし、このカウントアップした値を指定されたユーザの更新後のカウント値として確定する。ＣＰＵ１は、この確定した更新後のカウント値に１０ｍｓをかけた値を測定開始時点からの経過時間とする。
【００４９】
〔実施の形態２〕
図５に、本発明の実施の形態２に係るタイマカウント方法を採用したコンピュータシステム（タイマカウンタ装置）２００の要部の構成を示す。
【００５０】
この実施の形態２のコンピュータシステム２００は、実施の形態１のコンピュータシステム１００の構成に加えて、カウンタアクティブフラグメモリＭ３を備えており、ＣＰＵ１と内蔵タイマ２，タイマカウントアップ数メモリＭ１，更新要否フラグメモリＭ２およびカウンタアクティブフラグメモリＭ３とはＣＰＵバス３を介して相互に接続されている。
【００５１】
このコンピュータシステム２００において、ＣＰＵ１からのタイマカウントアップ数メモリＭ１，更新要否フラグメモリＭ２およびカウンタアクティブフラグメモリＭ３に対するリードライト、内蔵タイマ２からのＣＰＵ１への割込みの通知はＣＰＵバス３を介して行われる。また、このコンピュータシステム２００においても、内蔵タイマ２からＣＰＵ１に対して、１０ｍｓ毎に割込みがかかるように設定されている。
【００５２】
図６（ａ）に、このコンピュータシステム２００におけるタイマカウントアップ数メモリＭ１のデータ構成を示す。タイマカウントアップ数メモリＭ１内には、現時点で測定を実施していなユーザも含めて、ユーザ（登録されているユーザ：この例では、user(1),user(2),・・・,user(N)のＮ人のユーザ）毎に、そのユーザのカウント値の記憶領域としてカウント値記憶領域Ｓ１（Ｓ１1〜Ｓ１N）が確保される。
【００５３】
図６（ｂ）に、このコンピュータシステム２００における更新要否フラグメモリＭ２のデータ構成を示す。更新要否フラグメモリＭ２内には、カウント値記憶領域Ｓ１（Ｓ１1〜Ｓ１N）のカウント値の更新の要否を示すフラグ値の記憶領域として、更新要否フラグ記憶領域Ｓ２（Ｓ２1〜Ｓ２N）がユーザ毎に確保される。
【００５４】
図６（ｃ）に、このコンピュータシステム２００におけるカウンタアクティブフラグメモリＭ３のデータ構成を示す。カウンタアクティブフラグメモリＭ３内には、カウント値記憶領域Ｓ１（Ｓ１1〜Ｓ１N）のカウント値のカウントアップ動作がアクティブであるか否かを示すフラグ値の記憶領域として、アクティブフラグ記憶領域Ｓ３（Ｓ３1〜Ｓ３N）がユーザ毎に確保される。ＣＰＵ１は、このアクティブフラグ記憶領域Ｓ３に、カウント値記憶領域Ｓ１のカウント値のカウントアップ動作がアクティブ（測定中）であるユーザについてはフラグ値「１」を書き込み、カウント値のカウントアップ動作がアクティブではないユーザについてはフラグ値「０」を書き込む。
【００５５】
実施の形態１のコンピュータシステム１００では、測定を実施しているユーザのみメモリ（Ｍ１，Ｍ２）に登録、記録する構成であるが、実施の形態２のコンピュータシステム２００では、現時点で測定を実施していないユーザも含めて、登録されている全てのユーザに対してメモリ（Ｍ１，Ｍ２，Ｍ３）内にその記憶領域を確保しておき、あるユーザが測定を開始した場合は、その測定を開始したユーザのカウンタアクティブフラグメモリＭ３内のアクティブフラグ記憶領域Ｓ３に「アクティブ（測定中）」であることを示すフラグ値「１」を書き込む。そして、タイマカウントアップ数メモリＭ１内のカウント値記憶領域Ｓ１の更新は、カウンタアクティブフラグメモリＭ３内の対応するアクティブフラグ記憶領域Ｓ３のフラグ値が「１」となっているユーザに対してのみ実行する。
【００５６】
図７に、このコンピュータシステム２００によるタイマ（ソフトウェアタイマ）の動作フローを示す。ＣＰＵ１は、内蔵タイマ２から１０ｍｓ毎に割込みがかかると、メインフロー（main()）からタイマ割込み処理に遷移する（矢印(１)）。
【００５７】
ここで、実施の形態１のコンピュータシステム１００では、タイマ割込み処理開始後、更新要否フラグメモリＭ２内の全てのユーザの更新要否フラグ記憶領域Ｓ２（Ｓ２1〜Ｓ２N）のフラグ値を更新が必要であることを示す値「１」に書き換える処理（全ユーザ更新要否フラグＯＮ）を実行していた（図３に示すステップＳ３０２）。
【００５８】
これに対し、実施の形態２のコンピュータシステム２００では、カウンタアクティブフラグメモリＭ３内の全てのユーザのアクティブフラグ記憶領域Ｓ３（Ｓ３1〜Ｓ３N）に書き込まれているフラグ値を更新要否フラグメモリＭ２内の対応する更新要否フラグ記憶領域Ｓ２（Ｓ２1〜Ｓ２N）にコピーする（図７に示すステップＳ５０２）。
【００５９】
これにより、登録されているユーザのうちアクティブフラグ記憶領域Ｓ３のフラグ値が「アクティブ（測定中）」であることを示しているユーザについては、そのユーザの更新要否フラグ記憶領域Ｓ２のフラグ値が更新が必要であることを示す値「１」に書き換えられ、「アクティブ（測定中）」ではないことを示しているユーザについては、そのユーザの更新要否フラグ記憶領域Ｓ２のフラグ値が更新が不要であることを示す値「０」に書き換えられる。すなわち、カウンタアクティブフラグメモリＭ３内に「アクティブ（測定中）」と設定された現在測定中のユーザについてのみ、更新要否フラグメモリＭ２内に「更新要」が設定される。
【００６０】
なお、実施の形態２のコンピュータシステム２００においても、タイマ割込み処理が始まってから更新要否フラグメモリＭ２への更新要否フラグの書き込み処理が完了するまでの間（ステップＳ５０１〜Ｓ５０３までの間）、割込みを禁止する。
【００６１】
また、実施の形態１のコンピュータシステム１００では、「user(i)カウンタ更新」と「user(i)更新要否フラグＯＦＦ」のフローを全てのユーザに対して実行するが（図３に示すステップＳ３０４〜Ｓ３０８の繰り返し）、実施の形態２のコンピュータシステム２００では、このフローを更新要否フラグメモリＭ２内の対応する更新要否フラグ記憶領域Ｓ２に更新が必要であることを示すフラグ値「１」が書き込まれているユーザに対してのみ実行する（図７に示すステップＳ５０４〜Ｓ５０９の繰り返し）。
【００６２】
すなわち、このコンピュータシステム２００において、ＣＰＵ１は、user(i)の更新要否フラグ記憶領域Ｓ２iに書き込まれているフラグ値をチェックし（ステップＳ５０５）、このフラグ値が「１」（更新要）であれば（ステップＳ５０５のＹＥＳ：「user(i)更新要否フラグＯＮ」）、user(i)の更新要否フラグ記憶領域Ｓ２iに書き込まれているフラグ値を「０」（更新不要）に書き換えるとともに（ステップＳ５０６：「user(i)更新要否フラグＯＦＦ」）、user(i)のカウント値記憶領域Ｓ１iのカウント値をアップする（ステップＳ５０７：user(i)カウンタ更新）。
【００６３】
なお、実施の形態２のコンピュータシステム２００においても、「user(i)更新要否フラグＯＮ？」の処理開始から「user(i)カウンタ更新」完了までの間（ステップＳ５０４〜Ｓ５０８までの間）、割込みを禁止する。また、ステップＳ５０５でuser(i)の更新要否フラグ記憶領域Ｓ２iに書き込まれているフラグ値が「１」（更新要）でなかった場合には、すなわち「０」（更新不要）であった場合には、直ちにステップＳ５０８へ進む。
【００６４】
ＣＰＵ１は、このステップＳ５０４〜Ｓ５０８の処理を、全ユーザ（この例では、user(1),user(2),・・・,user(N)のＮ人のユーザ）に対して行われたことが確認されるまで（ステップＳ５０９のＹＥＳ）、順番に繰り返す。そして、この処理を全ユーザ分完了すると（ステップＳ５０９のＹＥＳ）、タイマ割り込み処理を終了し、制御をメインフローに戻す（矢印(２)）。
【００６５】
この実施の形態２のコンピュータシステム２００でも、実施の形態１のコンピュータシステム１００と同様、ＣＰＵ１は、タイマ割込処理中に「カウンタ値Ｒｅａｄ割込み」がかかると、このタイマ割込処理中の割込みが許可されている期間に、カウンタ値Ｒｅａｄ割込み処理を行う（ステップＳ６０１〜Ｓ６０３）。ステップＳ６０１〜Ｓ６０３の処理は、図３に示したステップＳ４０１〜Ｓ４０３の処理と同じであるので、その説明は省略する。
【００６６】
これにより、実施の形態２のコンピュータシステム２００では、測定中のユーザに対してのみ、カウント値の更新が可能になり、実施の形態１のコンピュータシステム１００と同様に従来技術と比較して、カウント値の読み出しができなくなる時間を大幅に短縮し、カウント値の読み出し要求に対して高速に対応させることができるようになるという効果が得られる。
【００６７】
図８に、この実施の形態２のコンピュータシステム２００のＣＰＵ１内での処理機能をブロック化した図(機能ブロック図)を示す。
【００６８】
実施の形態２のコンピュータシステム２００において、ＣＰＵ１は、割込み信号が発生した時(タイマ割込みがかかった時)に、登録されているユーザのうちカウンタアクティブフラグメモリＭ３内のアクティブフラグ記憶領域Ｓ３のフラグ値が「１」（アクティブ（測定中））であるユーザについては、そのユーザの更新要否フラグメモリＭ２内の更新要否フラグ記憶領域Ｓ２のフラグ値を「１」(更新要)に書き換え、「０」（アクティブ（測定中）ではない）であるユーザについては、そのユーザの更新要否フラグメモリＭ２内の更新要否フラグ記憶領域Ｓ２のフラグ値を「０」(更新不要)に書き換える更新要否フラグ書換部２０１と、更新要否フラグ書換部２０１による更新要否フラグメモリＭ２内の更新要否フラグ記憶領域Ｓ２（Ｓ２1〜Ｓ２N）のフラグ値の書き換え処理の完了後、更新要否フラグ記憶領域Ｓ２のフラグ値が「１」(更新要)であるユーザ毎に、そのユーザのタイマカウントアップ数メモリＭ１内のカウント値記憶領域Ｓ１のカウント値を所定の値(＋１)だけカウントアップするとともに、そのユーザの更新要否フラグメモリＭ２内の更新要否フラグ記憶領域Ｓ２のフラグ値を「０」(更新不要)に書き換えるカウント値更新部２０２と、指定されたユーザのカウント値をタイマカウントアップ数メモリＭ１内のカウント値記憶領域Ｓ１から読み出すカウント値読出部２０３とを備えている。
【００６９】
カウント値読出部２０３は、カウンタ値Ｒｅａｄ割込みがかかると、そのカウンタ値Ｒｅａｄ割込みによって指定されたユーザの更新要否フラグメモリＭ２内の更新要否フラグ記憶領域Ｓ２のフラグ値およびタイマカウントアップ数メモリＭ１内のカウント値記憶領域Ｓ１のカウント値を読み出し、更新要否フラグ記憶領域Ｓ２から読み出したフラグ値が「０」(更新不要)であった場合には、カウント値記憶領域Ｓ１から読み出したカウント値を指定されたユーザの更新後のカウント値として確定し、更新要否フラグ記憶領域Ｓ２から読み出したフラグ値が「１」(更新要)であった場合には、カウント値記憶領域Ｓ１から読み出したカウント値を所定の値(＋１)だけカウントアップし、このカウントアップした値を指定されたユーザの更新後のカウント値として確定する。ＣＰＵ１は、この確定した更新後のカウント値に１０ｍｓをかけた値を測定開始時点からの経過時間とする。
【００７０】
〔実施の形態の拡張〕
以上、実施の形態を参照して本発明を説明したが、本発明は上記の実施の形態に限定されるものではない。本発明の構成や詳細には、本発明の技術思想の範囲内で当業者が理解し得る様々な変更をすることができる。
【００７１】
また、本発明に係るタイマカウント方法、タイマカウンタ装置は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【符号の説明】
【００７２】
１…ＣＰＵ、２…内蔵タイマ（内蔵ハードウェアタイマ）、３…ＣＰＵバス、Ｍ１…タイマカウントアップ数メモリ、Ｓ１（Ｓ１1〜Ｓ１N）…カウント値記憶領域、Ｍ２…更新要否フラグメモリ、Ｓ２（Ｓ２1〜Ｓ２N）…更新要否フラグ記憶領域、Ｍ３…カウンタアクティブフラグメモリ、Ｓ３（Ｓ３1〜Ｓ３N）…アクティブフラグ記憶領域、１００…コンピュータシステム、１０１…更新要否フラグ書換部、１０２…カウント値更新部、１０３…カウント値読出部、２００…コンピュータシステム、２０１…更新要否フラグ書換部、２０２…カウント値更新部、２０３…カウント値読出部。
【図１】
2017216610.tif 000003
【図２】
2017216610.tif 000004
【図３】
2017216610.tif 000005
【図４】
2017216610.tif 000006
【図５】
2017216610.tif 000007
【図６】
2017216610.tif 000008
【図７】
2017216610.tif 000009
【図８】
2017216610.tif 000010
【図９】
2017216610.tif 000011
【図１０】
2017216610.tif 000012