(57)【要約】【課題】回路規模を大幅に小さくする。多数の測定対象に対して、高速かつ効率的にタイマカウント機能を提供する。【解決手段】共通タイマ２がラウンドアップする度に、全てのユーザのカウンタ更新要否レジスタＲ２の値をカウント値の更新が必要であることを示す値（フラグ値「１」）に書き換え、続いて、ユーザ毎に、そのユーザのタイマカウントアップ数メモリ４内のカウント値をカウントアップするとともに、そのユーザのカウンタ更新要否レジスタＲ２の値をカウント値の更新が不要であることを示す値（フラグ値「０」）に書き換える。【選択図】  図１８
2017220208.tif 000002
【特許請求の範囲】
【請求項１】
タイマと、このタイマによって測定される時間が一定時間を経る度にカウントアップされるカウント値を測定対象毎に記憶するタイマカウントアップ数メモリと、前記タイマカウントアップ数メモリ内のカウント値の更新の要否を示すフラグ値を記憶する前記測定対象毎に設けられたカウンタ更新要否レジスタとを備えたタイマカウンタ装置であって、
前記タイマによって測定される時間が一定時間を経る度に、全ての測定対象の前記カウンタ更新要否レジスタのフラグ値を前記カウント値の更新が必要であることを示す値に書き換える更新要否フラグ書換手段と、
前記更新要否フラグ書換手段による前記カウンタ更新要否レジスタのフラグ値の書き換え処理の完了後、前記測定対象毎に、その測定対象の前記タイマカウントアップ数メモリ内のカウント値を所定の値だけカウントアップするとともに、その測定対象の前記カウンタ更新要否レジスタのフラグ値を前記カウント値の更新が不要であることを示す値に書き換えるカウント値更新手段と
を備えることを特徴とするタイマカウンタ装置。
【請求項２】
タイマと、このタイマによって測定される時間が一定時間を経る度にカウントアップされるカウント値を測定対象毎に記憶するタイマカウントアップ数メモリと、前記タイマカウントアップ数メモリ内のカウント値の更新の要否を示すフラグ値を記憶する前記測定対象毎に設けられたカウンタ更新要否レジスタと、前記タイマカウントアップ数メモリ内のカウント値のカウントアップ動作がアクティブであるか否かを示すフラグ値を記憶する前記測定対象毎に設けられたカウンタアクティブレジスタとを備えたタイマカウンタ装置であって、
前記タイマによって測定される時間が一定時間を経る度に、前記測定対象のうち前記カウンタアクティブレジスタの値がアクティブであることを示している測定対象については、その測定対象の前記カウンタ更新要否レジスタのフラグ値を更新が必要であることを示す値に書き換え、アクティブでないことを示している測定対象については、その測定対象の前記カウンタ更新要否レジスタのフラグ値を更新が不要であることを示す値に書き換える更新要否フラグ書換手段と、
前記更新要否フラグ書換手段による前記カウンタ更新要否レジスタのフラグ値の書き換え処理の完了後、前記カウンタ更新要否レジスタのフラグ値が更新が必要であることを示している前記測定対象毎に、その測定対象の前記タイマカウントアップ数メモリ内のカウント値を所定の値だけカウントアップするとともに、その測定対象の前記カウンタ更新要否レジスタのフラグ値を更新が不要であることを示す値に書き換えるカウント値更新手段と
を備えることを特徴とするタイマカウンタ装置。
【請求項３】
請求項１又は２に記載されたタイマカウンタ装置において、
前記カウンタ更新要否レジスタを第１のカウンタ更新要否レジスタとして備え、
さらに、
前記第１のカウンタ更新要否レジスタとは別に前記タイマカウントアップ数メモリ内のカウント値の更新の要否を示すフラグ値を記憶する前記測定対象毎に設けられた第２のカウンタ更新要否レジスタと、
タイマ測定を開始する際の情報としてカウント開始時刻とタイマ測定の対象として指定された測定対象とを含むタイマ測定開始指示を受信するタイマ測定開始指示受信手段と、
前記タイマ測定開始指示受信手段によって受信された前記タイマ測定開始指示より前記カウント開始時刻を取得するカウント開始時刻取得手段と、
前記タイマ測定開始指示受信手段によって受信された前記タイマ測定開始指示の受信時刻を取得するタイマ測定開始指示受信時刻取得手段と、
前記タイマによって測定された時間が前記一定時間を経る度にそのタイミングをラウンドアップの発生として認識するラウンドアップ認識手段と、
前記カウント開始時刻取得手段によって取得された前記カウント開始時刻から前記タイマ測定開始指示受信時刻取得手段によって取得された前記タイマ測定開始指示の受信時刻までの間に前記ラウンドアップが発生したか否かを判定するラウンドアップ有無判定手段と、
前記ラウンドアップ有無判定手段によって前記カウント開始時刻から前記タイマ測定開始指示の受信時刻までの間に前記ラウンドアップが発生したと判定された場合、前記タイマ測定開始指示の受信時刻から次の前記ラウンドアップが発生するまでの間に前記タイマ測定の対象として指定された測定対象に対する前記カウント値の更新処理が実行されるか否かを判定する更新処理実行タイミング判定手段と、
前記更新処理実行タイミング判定手段によって前記タイマ測定開始指示の受信時刻から次の前記ラウンドアップが発生するまでの間に前記タイマ測定の対象として指定された測定対象に対する前記カウント値の更新処理が実行されないと判定された場合、前記タイマ測定の対象として指定された測定対象に対する前記第２のカウンタ更新要否レジスタのフラグ値を前記カウント値の更新が必要であることを示す値に書き換える第１のフラグ値書換手段と、
前記第１のフラグ値書換手段による前記第２のカウンタ更新要否レジスタのフラグ値の書き換え処理の完了後、次の前記ラウンドアップの発生時点で前記タイマ測定の対象として指定された測定対象に対する前記第１のカウント更新要否レジスタのフラグ値を前記カウント値の更新が必要であることを示す値に書き換える第２のフラグ値書換手段と、
前記第２のフラグ値書換手段による前記第１のカウンタ更新要否レジスタのフラグ値の書き換え処理の完了後、前記タイマ測定の対象として指定された測定対象に対する前記カウント値の更新処理が開始される時点で、前記タイマ測定の対象として指定された測定対象の前記タイマカウントアップ数メモリ内のカウント値を前記所定の値にさらに前記所定の値を加えた値だけカウントアップするとともに、前記タイマ測定の対象として指定された測定対象に対する前記第１のカウンタ更新要否レジスタおよび前記第２のカウンタ更新要否レジスタのフラグ値を前記カウント値の更新が不要であることを示す値に書き換えるタイマ測定開始時のカウント値更新手段と
を備えることを特徴とするタイマカウンタ装置。
【請求項４】
請求項１又は２に記載されたタイマカウンタ装置において、
読み出し対象として指定された測定対象の前記タイマカウントアップ数メモリ内のカウント値および前記カウンタ更新要否レジスタのフラグ値を読み出すカウント値・フラグ値読出手段と、
前記カウント値・フラグ値読出手段によって読み出された前記タイマカウントアップ数メモリ内のカウント値および前記カウンタ更新要否レジスタのフラグ値から前記読み出し対象として指定された測定対象の更新後のカウント値を確定するカウント値確定手段とを備え、
前記カウント値確定手段は、
前記カウンタ更新要否レジスタから読み出されたフラグ値が更新が不要であることを示していた場合には前記タイマカウントアップ数メモリから読み出されたカウント値を前記読み出し対象として指定された測定対象の更新後のカウント値として確定し、
前記カウンタ更新要否レジスタから読み出されたフラグ値が更新が必要であることを示していた場合には、前記タイマカウントアップ数メモリから読み出されたカウント値を前記所定の値だけカウントアップし、このカウントアップした値を前記読み出し対象として指定された測定対象の更新後のカウント値として確定する
ことを特徴とするタイマカウンタ装置。
【請求項５】
請求項３に記載されたタイマカウンタ装置において、
読み出し対象として指定された測定対象の前記タイマカウントアップ数メモリ内のカウント値、前記第１のカウンタ更新要否レジスタのフラグ値および前記第２のカウンタ更新要否レジスタのフラグ値を読み出すカウント値・フラグ値読出手段と、
前記カウント値・フラグ値読出手段によって読み出された前記タイマカウントアップ数メモリ内のカウント値、前記第１のカウンタ更新要否レジスタのフラグ値および前記第２のカウンタ更新要否レジスタのフラグ値から前記読み出し対象として指定された測定対象の更新後のカウント値を確定するカウント値確定手段とを備え、
前記カウント値確定手段は、
前記第１および第２のカウンタ更新要否レジスタから読み出されたフラグ値の何れもが更新が不要であることを示していた場合には前記タイマカウントアップ数メモリから読み出されたカウント値を前記読み出し対象として指定された測定対象の更新後のカウント値として確定し、
前記第１および第２のカウンタ更新要否レジスタから読み出されたフラグ値の何れか一方が更新が必要であることを示していた場合には、前記タイマカウントアップ数メモリから読み出されたカウント値を前記所定の値だけカウントアップし、このカウントアップした値を前記読み出し対象として指定された測定対象の更新後のカウント値として確定し、
前記第１および第２のカウンタ更新要否レジスタから読み出されたフラグ値の何れもが更新が必要であることを示していた場合には、前記タイマカウントアップ数メモリから読み出されたカウント値を前記所定の値にさらに前記所定の値を加えた値だけカウントアップし、このカウントアップした値を前記読み出し対象として指定された測定対象の更新後のカウント値として確定する
ことを特徴とするタイマカウンタ装置。
【請求項６】
請求項１〜５の何れか１項に記載されたタイマカウンタ装置において、
さらに、
前記測定対象毎にその測定対象の測定開始時点での前記タイマの計時中の時刻を記憶するカウント開始時刻メモリ
を備えることを特徴とするタイマカウンタ装置。
【請求項７】
タイマと、このタイマによって測定される時間が一定時間を経る度にカウントアップされるカウント値を測定対象毎に記憶するタイマカウントアップ数メモリと、前記タイマカウントアップ数メモリ内のカウント値の更新の要否を示すフラグ値を記憶する前記測定対象毎に設けられたカウンタ更新要否レジスタとを備えたタイマカウンタ装置に適用されるタイマカウント方法であって、
前記タイマによって測定される時間が一定時間を経る度に、全ての測定対象の前記カウンタ更新要否レジスタのフラグ値を前記カウント値の更新が必要であることを示す値に書き換える第１ステップと、
前記第１ステップによる前記カウンタ更新要否レジスタのフラグ値の書き換え処理の完了後、前記測定対象毎に、その測定対象の前記タイマカウントアップ数メモリ内のカウント値を所定の値だけカウントアップするとともに、その測定対象の前記カウンタ更新要否レジスタのフラグ値を前記カウント値の更新が不要であることを示す値に書き換える第２ステップと
を備えることを特徴とするタイマカウント方法。
【請求項８】
タイマと、このタイマによって測定される時間が一定時間を経る度にカウントアップされるカウント値を測定対象毎に記憶するタイマカウントアップ数メモリと、前記タイマカウントアップ数メモリ内のカウント値の更新の要否を示すフラグ値を記憶する前記測定対象毎に設けられたカウンタ更新要否レジスタと、前記タイマカウントアップ数メモリ内のカウント値のカウントアップ動作がアクティブであるか否かを示すフラグ値を記憶する前記測定対象毎に設けられたカウンタアクティブレジスタとを備えたタイマカウンタ装置に適用されるタイマカウント方法であって、
前記タイマによって測定される時間が一定時間を経る度に、前記測定対象のうち前記カウンタアクティブレジスタの値がアクティブであることを示している測定対象については、その測定対象の前記カウンタ更新要否レジスタのフラグ値を更新が必要であることを示す値に書き換え、アクティブでないことを示している測定対象については、その測定対象の前記カウンタ更新要否レジスタのフラグ値を更新が不要であることを示す値に書き換える第１ステップと、
前記第１ステップによる前記カウンタ更新要否レジスタのフラグ値の書き換え処理の完了後、前記カウンタ更新要否レジスタのフラグ値が更新が必要であることを示している前記測定対象毎に、その測定対象の前記タイマカウントアップ数メモリ内のカウント値を所定の値だけカウントアップするとともに、その測定対象の前記カウンタ更新要否レジスタのフラグ値を更新が不要であることを示す値に書き換える第２ステップと
を備えることを特徴とするタイマカウント方法。
【請求項９】
前記カウンタ更新要否レジスタを第１のカウンタ更新要否レジスタとして備え、さらに、前記第１のカウンタ更新要否レジスタとは別に前記タイマカウントアップ数メモリ内のカウント値の更新の要否を示すフラグ値を記憶する前記測定対象毎に設けられた第２のカウンタ更新要否レジスタを備えた前記タイマカウンタ装置に適用される請求項７又は８に記載されたタイマカウンタ方法において、
さらに、
タイマ測定を開始する際の情報としてカウント開始時刻とタイマ測定の対象として指定された測定対象とを含むタイマ測定開始指示を受信するタイマ測定開始指示受信ステップと、
前記タイマ測定開始指示受信ステップによって受信された前記タイマ測定開始指示より前記カウント開始時刻を取得するカウント開始時刻取得ステップと、
前記タイマ測定開始指示受信ステップによって受信された前記タイマ測定開始指示の受信時刻を取得するタイマ測定開始指示受信時刻取得ステップと、
前記タイマによって測定された時間が前記一定時間を経る度にそのタイミングをラウンドアップの発生として認識するラウンドアップ認識ステップと、
前記カウント開始時刻取得ステップによって取得された前記カウント開始時刻から前記タイマ測定開始指示受信時刻取得ステップによって取得された前記タイマ測定開始指示の受信時刻までの間に前記ラウンドアップが発生したか否かを判定するラウンドアップ有無判定ステップと、
前記ラウンドアップ有無判定ステップによって前記カウント開始時刻から前記タイマ測定開始指示の受信時刻までの間に前記ラウンドアップが発生したと判定された場合、前記タイマ測定開始指示の受信時刻から次の前記ラウンドアップが発生するまでの間に前記タイマ測定の対象として指定された測定対象に対する前記カウント値の更新処理が実行されるか否かを判定する更新処理実行タイミング判定ステップと、
前記更新処理実行タイミング判定ステップによって前記タイマ測定開始指示の受信時刻から次の前記ラウンドアップが発生するまでの間に前記タイマ測定の対象として指定された測定対象に対する前記カウント値の更新処理が実行されないと判定された場合、前記タイマ測定の対象として指定された測定対象に対する前記第２のカウンタ更新要否レジスタのフラグ値を前記カウント値の更新が必要であることを示す値に書き換える第１のフラグ値書換ステップと、
前記第１のフラグ値書換ステップによる前記第２のカウンタ更新要否レジスタのフラグ値の書き換え処理の完了後、次の前記ラウンドアップの発生時点で前記タイマ測定の対象として指定された測定対象に対する前記第１のカウント更新要否レジスタのフラグ値を前記カウント値の更新が必要であることを示す値に書き換える第２のフラグ値書換ステップと、
前記第２のフラグ値書換ステップによる前記第１のカウンタ更新要否レジスタのフラグ値の書き換え処理の完了後、前記タイマ測定の対象として指定された測定対象に対する前記カウント値の更新処理が開始される時点で、前記タイマ測定の対象として指定された測定対象の前記タイマカウントアップ数メモリ内のカウント値を前記所定の値にさらに前記所定の値を加えた値だけカウントアップするとともに、前記タイマ測定の対象として指定された測定対象に対する前記第１のカウンタ更新要否レジスタおよび前記第２のカウンタ更新要否レジスタのフラグ値を前記カウント値の更新が不要であることを示す値に書き換えるタイマ測定開始時のカウント値更新ステップと
を備えることを特徴とするタイマカウンタ方法。
【請求項１０】
請求項７又は８に記載されたタイマカウンタ方法において、
読み出し対象として指定された測定対象の前記タイマカウントアップ数メモリ内のカウント値および前記カウンタ更新要否レジスタのフラグ値を読み出すカウント値・フラグ値読出ステップと、
前記カウント値・フラグ値読出ステップによって読み出された前記タイマカウントアップ数メモリ内のカウント値および前記カウンタ更新要否レジスタのフラグ値から前記読み出し対象として指定された測定対象の更新後のカウント値を確定するカウント値確定ステップとを備え、
前記カウント値確定ステップは、
前記カウンタ更新要否レジスタから読み出されたフラグ値が更新が不要であることを示していた場合には前記タイマカウントアップ数メモリから読み出されたカウント値を前記読み出し対象として指定された測定対象の更新後のカウント値として確定し、
前記カウンタ更新要否レジスタから読み出されたフラグ値が更新が必要であることを示していた場合には、前記タイマカウントアップ数メモリから読み出されたカウント値を前記所定の値だけカウントアップし、このカウントアップした値を前記読み出し対象として指定された測定対象の更新後のカウント値として確定する
ことを特徴とするタイマカウンタ方法。
【請求項１１】
請求項９に記載されたタイマカウンタ方法において、
読み出し対象として指定された測定対象の前記タイマカウントアップ数メモリ内のカウント値、前記第１のカウンタ更新要否レジスタのフラグ値および前記第２のカウンタ更新要否レジスタのフラグ値を読み出すカウント値・フラグ値読出ステップと、
前記カウント値・フラグ値読出ステップによって読み出された前記タイマカウントアップ数メモリ内のカウント値、前記第１のカウンタ更新要否レジスタのフラグ値および前記第２のカウンタ更新要否レジスタのフラグ値から前記読み出し対象として指定された測定対象の更新後のカウント値を確定するカウント値確定ステップとを備え、
前記カウント値確定ステップは、
前記第１および第２のカウンタ更新要否レジスタから読み出されたフラグ値の何れもが更新が不要であることを示していた場合には前記タイマカウントアップ数メモリから読み出されたカウント値を前記読み出し対象として指定された測定対象の更新後のカウント値として確定し、
前記第１および第２のカウンタ更新要否レジスタから読み出されたフラグ値の何れか一方が更新が必要であることを示していた場合には、前記タイマカウントアップ数メモリから読み出されたカウント値を前記所定の値だけカウントアップし、このカウントアップした値を前記読み出し対象として指定された測定対象の更新後のカウント値として確定し、
前記第１および第２のカウンタ更新要否レジスタから読み出されたフラグ値の何れもが更新が必要であることを示していた場合には、前記タイマカウントアップ数メモリから読み出されたカウント値を前記所定の値にさらに前記所定の値を加えた値だけカウントアップし、このカウントアップした値を前記読み出し対象として指定された測定対象の更新後のカウント値として確定する
ことを特徴とするタイマカウンタ方法。
【請求項１２】
請求項７〜１１の何れか１項に記載されたタイマカウント方法における各ステップの処理をコンピュータに実行させるためのタイマカウントプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイマによって測定される時間が一定時間を経る度に、測定対象のカウント値をカウントアップするタイマカウンタ装置、タイマカウント方法およびタイマカウントプログラムに関する。
【背景技術】
【０００２】
従来より、タイマ機能を用いて時間管理制御を行うことは広く一般に行われている。例えば、コンピュータシステムにおいて、実時間で処理を行うリアルタイム処理実現のために、タイマによって一定時間毎にプログラムを起動して処理要求の有無をチェックし、処理要求があった場合には直ちに対応する処理プログラムを起動することはよく知られている。この場合、タイマの満了を迅速に検出して、決められた時間内に必要な処理を終了できるように、正確なタイマ満了の検出が要求される。
【０００３】
また、タイマの別の応用として、送信システムから受信システムにデータ転送を行うときに転送エラーを防止する目的でタイマ（監視タイマ）を用いる場合がある。送信システムから受信システムにデータ転送を行った時点で監視タイマを起動し、その後一定時間（監視タイマ満了時）内に受信システムから送信システムにレスポンスがあった場合にはデータ転送が正しく行われたものと判断して監視タイマをリセットする。また、送信システムから受信システムにデータ転送を行ったとき、一定時間（監視タイマ満了時）内に受信システムから送信システムにレスポンスがなかった場合にはデータ転送が正常に行われなかったものと判断してデータの再送を行う。
【０００４】
このように、タイマの応用例は数多くあるが、同時に動作するタイマの数が非常に多い場合、タイマ管理を行うための各種リソースを効率よく使用することが求められる。複数のタイマの管理を行う方法は、例えば特許文献１に示されている。この特許文献１に示された処理方式（タイミング制御方式）を図３１Ａおよび図３１Ｂを用いて説明する。
【０００５】
図３１Ａにおいて、２０はメモリ上のリスト構造データのアドレス（図３１Ａの例ではＡ１）を記憶するレジスタ、２１および２２はタイマ起動、タイマ停止などのタイマ管理要求を記憶するためのリスト要素である。図３１Ａは、未使用の状態を示しており、この未使用の状態をまとめてアイドルチェーンと称す。リスト要素２１および２２は、それぞれ「処理要求フィールド」（リスト要素２１および２２の前半領域（図３１Ａの例では未使用であるから「＊」とされている））と、次のリスト要素のアドレスを記憶する「ポインタフィールド」（リスト要素２１および２２の後半領域（図３１Ａの例では「Ａ２」と「Ａ３」とされている））から構成される。
【０００６】
図３１Ｂにおいて、２３は時間管理テーブルであり、テーブルの各アドレス位置がハードウエアタイマ（図示されていない）の値に対応するよう構成されている。例えば、ハードウエアタイマが示す時刻＝４２の時は、時間管理テーブル２３の４２番地（＃４２）が対応し、４２番地に格納されたポインタ（図３１Ｂの例では「Ａ４」）によってリンクされている２つのリスト２４および２５は、時刻４２で処理すべきタイマ要求（図３１Ｂの例では、それぞれ「Ｒ４」の処理要求とポインタ「Ａ５」、「Ｒ５」の処理要求と「ｎｉｌ（ポインタ無し）」）を示している。  
【０００７】
特許文献１に示されたタイミング制御方式において、タイマ起動要求（指定したインタバル時間後に通知を必要とする要求）を受けると、まず、ハードウエアタイマ値にインタバル値を加算して満了時刻が求められ、次にアイドルチェーンからリスト要素を１つ取り出し、そこに要求元の識別情報が書き込まれ、最後に満了時刻に相応する時間管理テーブルの要素に、要求元の識別情報を書き込んだリスト要素がリンクされる。もし、同じ時間管理テーブルの要素に既に別の要求が登録されていれば、これにリスト形式で新しいリスト要素が追加されることになる。
【０００８】
図３１Ｂの例では、時刻４２に２つのタイマ要求リスト２４および２５が登録されている状態を示している。この状態で、例えば、ハードウエアタイマ時刻が「４２」になると、時間管理テーブル２３の４２番地をアクセスし、書かれているリストアドレスＡ４の情報をもとに、タイマ要求リスト２４を検出する。次に、タイマ要求リスト２４を時間管理テーブル２３から取り外し、アイドルチェーンにつなぎ変え、再使用できるようにする。最後に、タイマ満了が起きたことをタイマ要求元に通知する。図３１Ｂの例では、時刻４２にもう一つのタイマ要求リスト２５が登録されているので、これもタイマ要求リスト２４と同様に処理し、これら全ての処理が終われば、時刻４２での処理が完了したことになる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特公平３−１３６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に示されたタイミング制御方式は、タイマ要求の記憶用にリスト構造を用いているため、リストへの挿入、削除に多くの直列的処理（マイクロプログラムあるいはプログラムのステップ数）を必要とする。このため、処理の高速化が困難である。また、時間管理テーブルのサイズは、ハードウエアタイマの最大カウント値に合わせたサイズに用意しておく必要があるため、最大カウント値が大きい場合、すなわち長い時間管理を行う必要がある場合に、膨大なメモリ量を必要とする。
【００１１】
その他の従来のタイマ装置として、それぞれ独立なハードウェアタイマを複数用意してそれぞれのタイマでカウントする方法がある。しかしながら、この方法では、測定対象の数が増えるに従って多くのリソースを必要とするという問題と、測定時間が長くなる場合はそれぞれのタイマの最長測定時間を大きくする必要がある。このため、それぞれのタイマの規模が大きくなるという問題が生じる。
【００１２】
別の従来技術として、共通のタイマを１つと、複数の測定対象毎にカウントアップ数（カウント値）を記憶する装置（以下、カウントアップ数記憶装置）を用意し、共通タイマで測定した一定時間毎にカウントアップ数記憶装置に記憶されているカウント値に所定値（例えば、＋１）を加算して更新する構成のタイマカウンタ装置がある。この構成では、すべての測定対象のカウント値に対して加算、更新を同時に行う必要があるため、カウントアップ数記憶装置としては、各測定対象のデータを並列に更新できるようにデータ記憶をレジスタで構成し、また、測定対象数分の加算演算回路を構成する必要がある。このため、特に測定対象の数が大きい場合、回路規模が大きくなるという問題がある。
【００１３】
本発明は、このような課題を解決するためになされたもので、その目的とするところは、回路規模を大幅に小さくすることができ、かつ、多数の測定対象に対して、高速かつ効率的にタイマカウント機能を提供することが可能なタイマカウンタ装置、タイマカウント方法およびタイマカウントプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
このような目的を達成するために本発明は、タイマ（２）と、このタイマ（２）によって測定される時間が一定時間を経る度にカウントアップされるカウント値を測定対象毎に記憶するタイマカウントアップ数メモリ（４）と、タイマカウントアップ数メモリ（４）内のカウント値の更新の要否を示すフラグ値を記憶する測定対象毎に設けられたカウンタ更新要否レジスタ（Ｒ２）とを備えたタイマカウンタ装置（５００）であって、タイマ（２）によって測定される時間が一定時間を経る度に、全ての測定対象のカウンタ更新要否レジスタ（Ｒ２）のフラグ値をカウント値の更新が必要であることを示す値に書き換える更新要否フラグ書換手段（５０１）と、更新要否フラグ書換手段（５０１）によるカウンタ更新要否レジスタ（Ｒ２）のフラグ値の書き換え処理の完了後、測定対象毎に、その測定対象のタイマカウントアップ数メモリ（４）内のカウント値を所定の値だけカウントアップするとともに、その測定対象のカウンタ更新要否レジスタ（Ｒ２）のフラグ値をカウント値の更新が不要であることを示す値に書き換えるカウント値更新手段（５０２）とを備えることを特徴とする。
【００１５】
この発明では、測定対象毎のカウント値がタイマカウントアップ数メモリ（４）内に記憶され、タイマカウントアップ数メモリ（４）内のカウント値の更新の要否を示すフラグ値（例えば、「１」／「０」）が測定対象毎に設けられたカウンタ更新要否レジスタ（Ｒ２）に書き込まれる。本発明において、タイマ（２）によって測定される時間が一定時間を経ると、全ての測定対象のカウンタ更新要否レジスタ（Ｒ２）のフラグ値がカウント値の更新が必要であることを示す値に書き換えられる。そして、このカウンタ更新要否レジスタ（Ｒ２）のフラグ値の書き換え処理の完了後、測定対象毎に、その測定対象のタイマカウントアップ数メモリ（４）内のカウント値が所定の値（例えば、＋１）だけカウントアップされるとともに、その測定対象のカウンタ更新要否レジスタ（Ｒ２）のフラグ値がカウント値の更新が不要であることを示す値に書き換えられる。
【００１６】
また、本発明は、タイマ（２）と、このタイマ（２）によって測定される時間が一定時間を経る度にカウントアップされるカウント値を測定対象毎に記憶するタイマカウントアップ数メモリ（４）と、タイマカウントアップ数メモリ（４）内のカウント値の更新の要否を示すフラグ値を記憶する測定対象毎に設けられたカウンタ更新要否レジスタ（Ｒ２）と、タイマカウントアップ数メモリ（４）内のカウント値のカウントアップ動作がアクティブであるか否かを示すフラグ値を記憶する測定対象毎に設けられたカウンタアクティブレジスタ（Ｒ１）とを備えたタイマカウンタ装置（１００）であって、タイマ（２）によって測定される時間が一定時間を経る度に、測定対象のうちカウンタアクティブレジスタ（Ｒ１）の値がアクティブであることを示している測定対象については、その測定対象のカウンタ更新要否レジスタ（Ｒ２）のフラグ値を更新が必要であることを示す値に書き換え、アクティブでないことを示している測定対象については、その測定対象のカウンタ更新要否レジスタ（Ｒ２）のフラグ値を更新が不要であることを示す値に書き換える更新要否フラグ書換手段（１０１）と、更新要否フラグ書換手段（１０１）によるカウンタ更新要否レジスタ（Ｒ２）のフラグ値の書き換え処理の完了後、カウンタ更新要否レジスタ（Ｒ２）のフラグ値が更新が必要であることを示している測定対象毎に、その測定対象のタイマカウントアップ数メモリ（４）内のカウント値を所定の値だけカウントアップするとともに、その測定対象のカウンタ更新要否レジスタ（Ｒ２）のフラグ値を更新が不要であることを示す値に書き換えるカウント値更新手段（１０２）とを備えることを特徴とする。
【００１７】
この発明では、測定対象毎のカウント値がタイマカウントアップ数メモリ（４）内に記憶され、タイマカウントアップ数メモリ（４）内のカウント値の更新の要否を示すフラグ値（例えば、「１」／「０」）が測定対象毎に設けられたカウンタ更新要否レジスタ（Ｒ２）に書き込まれ、タイマカウントアップ数メモリ（４）内のカウント値のカウントアップ動作がアクティブであるか否かを示すフラグ値（例えば、「１」／「０」）が測定対象毎に設けられたカウンタアクティブレジスタ（Ｒ１）に書き込まれる。この発明において、タイマ（２）によって測定される時間が一定時間を経ると、測定対象のうちカウンタアクティブレジスタ（Ｒ１）の値がアクティブであることを示している測定対象については、その測定対象のカウンタ更新要否レジスタ（Ｒ２）のフラグ値が更新が必要であることを示す値に書き換えられ、アクティブでないことを示している測定対象については、その測定対象のカウンタ更新要否レジスタ（Ｒ２）のフラグ値が更新が不要であることを示す値に書き換えられる。そして、このカウンタ更新要否レジスタ（Ｒ２）のフラグ値の書き換え処理の完了後、カウンタ更新要否レジスタ（Ｒ２）のフラグ値が更新が必要であることを示している測定対象毎に、その測定対象のタイマカウントアップ数メモリ（４）内のカウント値が所定の値だけカウントアップされるとともに、その測定対象のカウンタ更新要否レジスタ（Ｒ２）のフラグ値が更新が不要であることを示す値に書き換えられる。
【００１８】
本発明では、カウント値の更新処理中であっても、指定された測定対象のカウント値を読み出すことが可能である。例えば、測定対象が指定されると、その指定された測定対象のタイマカウントアップ数メモリ（４）内のカウント値およびカウンタ更新要否レジスタ（Ｒ２）のフラグ値を読み出し、カウンタ更新要否レジスタから読み出したフラグ値が更新が不要であることを示していた場合にはタイマカウントアップ数メモリから読み出したカウント値を指定された測定対象の更新後のカウント値として確定し、カウンタ更新要否レジスタから読み出したフラグ値が更新が必要であることを示していた場合には、タイマカウントアップ数メモリから読み出したカウント値を所定の値だけカウントアップし、このカウントアップした値を指定された測定対象の更新後のカウント値として確定する。
【００１９】
本発明において、測定対象は、必ずしも複数でなくてもよく、１つであっても構わない。また、本発明では、測定対象毎にその測定対象のタイマカウントアップ数メモリ（４）内のカウント値を所定の値だけカウントアップするが、所定の値は幾つであってもよく、また正の値であっても、負の値であってもよい。所定の値を負とした場合、タイマカウントアップ数メモリ（４）内のカウント値は結果的にカウントダウンされることになる。
【００２０】
なお、上記説明では、一例として、発明の構成要素に対応する図面上の構成要素を、括弧を付した参照符号によって示している。
【発明の効果】
【００２１】
本発明によれば、タイマカウントアップ数メモリをＳＲＡＭなどのメモリで構成することができるので、これをレジスタで構成した場合に比べて、回路規模を大幅に小さくすることが可能となる。
また、タイマカウントアップ数メモリの更新処理は、全測定対象について同時に行う必要はなく、１つずつ順番に実行すればよいので、更新用の加算回路等を測定対象数分用意する必要がなく、１つの加算回路を共有する構成にすることができるため、さらに規模を小さくすることが可能になる。
また、特許文献１や、独立なハードウェアタイマを測定対象数分用意してそれぞれのタイマでカウントする従来技術では、長時間の測定が必要な場合、測定最長時間に合わせて規模の大きいタイマを用意する必要があるのに比べ、本発明では、経過時間自体をカウントするのではなく、タイマ（共通タイマ）のラウンドアップ回数を記録する構成であるため、タイマの規模も小さくできるという利点がある。
このように、本発明によれば、回路規模を大幅に小さくすることができ、かつ、多数の測定対象に対して、高速かつ効率的にタイマカウント機能を提供することが可能となる。更に、タイマカウント期間が長時間にわたる場合にも効率的に対応する機能を提供することが可能になる。
【図面の簡単な説明】
【００２２】
【図１】図１は、本発明の実施の形態１に係るタイマカウンタ装置を含むコンピュータシステムの要部の構成を示す図である。
【図２Ａ】図２Ａは、実施の形態１のタイマカウンタ装置におけるカウント開始時刻メモリのデータ構成を示す図である。
【図２Ｂ】図２Ｂは、実施の形態１のタイマカウンタ装置におけるタイマカウントアップ数メモリのデータ構成を示す図である。
【図２Ｃ】図２Ｃは、実施の形態１のタイマカウンタ装置におけるカウンタアクティブフラグ記憶部のデータ構成を示す図である。
【図２Ｄ】図２Ｄは、実施の形態１のタイマカウンタ装置におけるカウンタ更新要否フラグ記憶部のデータ構成を示す図である。
【図３Ａ】図３Ａは、タイマ測定を開始する場合の処理を説明する図（タイマ測定開始前）である。
【図３Ｂ】図３Ｂは、タイマ測定を開始する場合の処理を説明する図（タイマ測定開始時）である。
【図４Ａ】図４Ａは、共通タイマがラウンドアップしたときのカウント値の更新処理動作を説明する図（ラウンドアップする前）である。
【図４Ｂ】図４Ｂは、共通タイマがラウンドアップしたときのカウント値の更新処理動作を説明する図（ラウンドアップ時）である。
【図５Ａ】図５Ａは、共通タイマがラウンドアップした後のカウント値の更新処理を時間順に示す図である。
【図５Ｂ】図５Ｂは、図５Ａに続く図である。
【図５Ｃ】図５Ｃは、図５Ｂに続く図である。
【図６】図６は、タイマカウンタ非更新時のカウント値の読み取り処理を説明する図である。
【図７】図７は、タイマカウンタ更新時のカウント値の読み取り処理を説明する図である。
【図８】図８は、実施の形態１のタイマカウンタ装置の制御回路内の要部の処理機能をブロック化して示す図である。
【図９】図９は、本発明の実施の形態２に係るタイマカウンタ装置を含むコンピュータシステムの要部の構成を示す図である。
【図１０】図１０は、実施の形態２における図３Ａに対応する図である。
【図１１】図１１は、本発明の実施の形態３に係るタイマカウンタ装置を含むコンピュータシステムの要部の構成を示す図である。
【図１２】図１２は、実施の形態３のタイマカウント装置においてカウント満了信号が出力される様子を示す図である。
【図１３】図１３は、実施の形態３のタイマカウント装置においてカウント開始時刻メモリを設けるようにした例を示す図である。
【図１４】図１４は、本発明の実施の形態４に係るタイマカウンタ装置を含むコンピュータシステムの要部の構成を示す図である。
【図１５】図１５は、実施の形態４のタイマカウント装置においてカウント満了信号が出力される様子を示す図である。
【図１６】図１６は、本発明の実施の形態５に係るタイマカウンタ装置を含むコンピュータシステムの要部の構成を示す図である。
【図１７】図１７は、実施の形態５における図３Ａに対応する図である。
【図１８】図１８は、実施の形態５のタイマカウンタ装置の制御回路内の要部の処理機能をブロック化して示す図である。
【図１９Ａ】図１９Ａは、カウント開始時刻になってから実際にタイマ測定開始処理が開始されるまでの間に時間差がある場合のタイマ測定開始処理を説明する図（ａＮ〜ｔ０の間にラウンドアップがない場合）である。
【図１９Ｂ】図１９Ｂは、図１９Ａに続く図である。
【図１９Ｃ】図１９Ｃは、カウント開始時刻になってから実際にタイマ測定開始処理が開始されるまでの間に時間差がある場合のタイマ測定開始処理を説明する図（ａＮ〜ｔ０の間にラウンドアップがある場合）である。
【図１９Ｄ】図１９Ｄは、図１９Ｃに続く図である。
【図２０】図２０は、実施の形態６のタイマカウンタ装置の構成を示す図である。
【図２１】図２１は、実施の形態６のタイマカウンタ装置内のデータ構成の詳細を示す図である。
【図２２Ａ】図２２Ａは、実施の形態６のタイマカウンタ装置のタイマ測定を開始する場合の処理を時間順に示す図（ｔ０＜ａＮかつｔ０＜t_update（Ｎ）のとき）である。
【図２２Ｂ】図２２Ｂは、図２２Ａに続く図である。
【図２２Ｃ】図２２Ｃは、図２２Ｂに続く図である。
【図２２Ｄ】図２２Ｄは、図２２Ｃに続く図である。
【図２２Ｅ】図２２Ｅは、図２２Ｄに続く図である。
【図２３Ａ】図２３Ａは、実施の形態６のタイマカウンタ装置のタイマ測定を開始する場合の処理を時間順に示す図（ｔ０＜ａＮかつｔ０＞t_update（Ｎ）のとき）である。
【図２３Ｂ】図２３Ｂは、図２３Ａに続く図である。
【図２３Ｃ】図２３Ｃは、図２３Ｂに続く図である。
【図２３Ｄ】図２３Ｄは、図２３Ｃに続く図である。
【図２４Ａ】図２４Ａは、実施の形態６のタイマカウンタ装置のタイマ測定を開始する場合の処理を時間順に示す図（ｔ０＞ａＮかつｔ０＞t_update（Ｎ）のとき）である。
【図２４Ｂ】図２４Ｂは、図２４Ａに続く図である。
【図２４Ｃ】図２４Ｃは、図２４Ｂに続く図である。
【図２４Ｄ】図２４Ｄは、図２４Ｃに続く図である。
【図２５】図２５は、実施の形態６のタイマカウンタ装置の制御回路内のタイマ測定開始時の処理機能の要部をブロック化して示す図である。
【図２６】図２６は、実施の形態６のタイマカウンタ装置の制御回路内のカウント値の読み出し時の処理機能の要部をブロック化して示す図である。
【図２７Ａ】図２７Ａは、実施の形態７でのカウント値の更新処理を説明する図である。
【図２７Ｂ】図２７Ｂは、図２７Ａに続く図である。
【図２７Ｃ】図２７Ｃは、図２７Ｂに続く図である。
【図２７Ｄ】図２７Ｄは、図２７Ｃに続く図である。
【図２７Ｅ】図２７Ｅは、図２７Ｄに続く図である。
【図２８Ａ】図２８Ａは、実施の形態７のタイマカウンタ装置のタイマ測定を開始する場合の処理を時間順に示す図（ｔ０＜ａＮのとき）である。
【図２８Ｂ】図２８Ｂは、図２８Ａに続く図である。
【図２８Ｃ】図２８Ｃは、図２８Ｂに続く図である。
【図２８Ｄ】図２８Ｄは、図２８Ｃに続く図である。
【図２８Ｅ】図２８Ｅは、図２８Ｄに続く図である。
【図２９Ａ】図２９Ａは、実施の形態７のタイマカウンタ装置のタイマ測定を開始する場合の処理を時間順に示す図（ｔ０＞ａＮかつｔ０＜t_update（Ｎ）のとき）である。
【図２９Ｂ】図２９Ｂは、図２９Ａに続く図である。
【図２９Ｃ】図２９Ｃは、図２９Ｂに続く図である。
【図２９Ｄ】図２９Ｄは、図２９Ｃに続く図である。
【図２９Ｅ】図２９Ｅは、図２９Ｄに続く図である。
【図３０Ａ】図３０Ａは、実施の形態７のタイマカウンタ装置のタイマ測定を開始する場合の処理を時間順に示す図（ｔ０＞ａＮかつｔ０＞t_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に、カウント値記憶領域Ｓ２1〜Ｓ２Nのカウント値のカウントアップ動作がアクティブ（測定中）か否かを示すフラグ値を書き込む。この場合、アクティブ（測定中）であるユーザについてはフラグ値として「１」を書き込み、アクティブではないユーザについてはフラグ値として「０」を書き込む。
【００３２】
図２Ｄに、このタイマカウンタ装置１００におけるカウンタ更新要否フラグ記憶部６のデータ構成を示す。カウンタ更新要否フラグ記憶部６は、タイマカウントアップ数メモリ４内のカウント値の更新の要否を示すフラグ値を記憶するレジスタであり、カウント値記憶領域Ｓ２1〜Ｓ２Nに対応するレジスタとしてカウンタ更新要否レジスタＲ２1〜Ｒ２Nを備えている。制御回路１は、このカウンタ更新要否レジスタＲ２1〜Ｒ２Nに、カウント値記憶領域Ｓ２1〜Ｓ２Nのカウント値の更新の要否を示すフラグ値を書き込む。この場合、更新が必要であるカウント値に対してフラグ値として「１」を書き込み、更新が不要であるカウント値に対してはフラグ値として「０」を書き込む。
【００３３】
〔タイマ測定開始処理〕
図３Ａ、図３Ｂに、タイマ測定を開始する場合の処理を示す。ここでは、user(N)について、共通タイマ２が時刻ｔ０になった時に、タイマ測定を開始する場合を例に説明する。時刻ｔ０より前の時刻ｔでは（図３Ａ）、user(N)のカウント値をカウントするタイマカウンタＴＣ（ＴＣN）は動作しておらず、カウンタアクティブレジスタＲ１Nにはフラグ値「０」（非アクティブ）が書き込まれ、カウンタ更新要否レジスタＲ２Nにもフラグ値「０」（更新不要）が書き込まれている。なお、カウント開始時刻メモリ３内の対応するカウント開始時刻記憶領域Ｓ１N、タイマカウントアップ数メモリ４内の対応するカウント値記憶領域Ｓ２Nには、値「０」が設定されていてもよいし、不定の値が設定されていてもよい。
【００３４】
共通タイマ２が時刻ｔ０になると（図３Ｂ）、カウント開始時刻メモリ３内のカウント開始時刻記憶領域Ｓ１Nにその時の時刻ｔ０がカウント開始時刻ａＮとして書き込まれ、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２Nに初期値「０」が書き込まれる。また、カウンタアクティブレジスタＲ１Nにフラグ値「１」（アクティブ）が書き込まれ、カウンタ更新要否レジスタＲ２Nにフラグ値「０」（更新不要）が書き込まれる。
【００３５】
〔カウント値の更新処理〕
図４Ａ、図４Ｂを用いて、共通タイマ２がラウンドアップしたときのカウント値の更新処理動作を説明する。なお、本実施の形態では共通タイマ２がラウンドアップしたときにタイマカウントする場合を示すが、共通タイマ２で一定時間経過する毎に（例えば１０秒毎に）、その時点を共通タイマ２がラウンドアップした時点とみなして、タイマカウントしてもよい。
【００３６】
図４Ａは、共通タイマ２がラウンドアップする直前の状態を示している。この例では、user(1),user(3),user(4),user(N)のカウント値をカウントするタイマカウンタＴＣ1，ＴＣ3，ＴＣ4，ＴＣNがアクティブで、カウンタアクティブレジスタＲ１1，Ｒ１3，Ｒ１4，Ｒ１Nのフラグ値が「１」（アクティブ）となっていて、その他のユーザはフラグ値「０」（非アクティブ）となっている。また、カウンタ更新要否レジスタＲ２は、すべてのユーザについて、フラグ値「０」（更新不要）となっている。すなわち、カウンタ更新要否レジスタＲ２1〜Ｒ２Nの全てが、フラグ値「０」（更新不要）となっている。
【００３７】
図４Ｂは、共通タイマ２が時刻ｔ＝０にランドアップした時の状態を示している。共通タイマ２がラウンドアップすると同時に、カウンタアクティブレジスタＲ１が「アクティブ」となっているユーザ（この例では、user(1),user(3),user(4),user(N)）に対して、カウンタ更新要否レジスタＲ２にフラグ値「１」（更新要）を書き込む。この例では、共通タイマ２が時刻０になった時に、カウンタアクティブレジスタＲ１の全ユーザ分のデータをカウンタ更新要否レジスタＲ２へコピーする。すなわち、カウンタアクティブレジスタＲ１1〜Ｒ１Nに書き込まれているフラグ値を対応するカウンタ更新要否レジスタＲ２1〜Ｒ２Nにコピーする。これにより、カウンタアクティブレジスタＲ１1，Ｒ１3，Ｒ１4，Ｒ１Nに対応するカウンタ更新要否レジスタＲ２1，Ｒ２3，Ｒ２4，Ｒ２Nにフラグ値「１」（更新要）が書き込まれる。
【００３８】
図５Ａ、図５Ｂ、図５Ｃに、共通タイマ２がラウンドアップした後のカウント値の更新処理を時間順に示す。共通タイマ２がラウンドアップした後、カウンタ更新要否レジスタＲ２のフラグ値が「１」（更新要）となっているユーザについて、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２の値を１インクリメントする。また、これと同時に、そのユーザのカウンタ更新要否レジスタＲ２のフラグ値を「１」（更新要）から「０」（更新不要）に書き換える。本実施の形態では、タイマカウントアップ数メモリ４としてＳＲＡＭ、ＤＲＡＭなどのメモリで構成する。そのため、共通タイマ２のラウンドアップと同時に全ユーザのカウント値を同時に書き換えることはできないので、各ユーザに対して、順番にそのカウント値の更新処理を行う。
【００３９】
図５Ａでは、タイマカウントアップ数メモリ４内のuser(1)のカウント値記憶領域Ｓ２1へ、これまでのカウント値「３９２」から１インクリメントしたカウント値「３９３（３９２＋１）」へ書き換えている。同時に、user(1)のカウンタ更新要否レジスタＲ２1のフラグ値を「１」（更新要）から「０」（更新不要）へ書き換えている。
【００４０】
図５Ｂは、同様の処理をuser(3)まで実行した時点を示している。user(2)に対しては、カウンタアクティブレジスタＲ１2のフラグ値は「０」（非アクティブ）、カウンタ更新要否レジスタＲ２2のフラグ値は「０」（更新不要）となっているので、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２2のカウント値の更新は行われていない。このとき、カウント値記憶領域Ｓ２2のカウント値の更新を行わない代わりに、初期値「０」を書き込むようにしてもよい。user(3)は、カウンタアクティブレジスタＲ１3のフラグ値が「１」（アクティブ）であるので、図５Ａで示したuser(1)に対するのと同様のカウント値の更新処理を行う。
【００４１】
図５Ｃは、user(N)までの全てのユーザについてカウント値の更新処理を完了した時点を示す。カウンタアクティブレジスタＲ１のフラグ値が「１」（アクティブ）となっているユーザについては、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２の値が、共通タイマ２がラウンドアップする前の値に１を足した値に更新されている。また、カウンタ更新要否レジスタＲ２には、全てのユーザについて「０」（更新不要）が書き込まれている。すなわち、カウンタ更新要否レジスタＲ２1〜Ｒ２Nの全てに、フラグ値「０」（更新不要）が書き込まれている。
【００４２】
〔カウント値の読み取り処理〕
図６および図７を用いてカウント値の読み取り処理について説明する。図６は、タイマカウンタ非更新時（カウント値の更新処理を行っていない時）を示す。このとき、現在の時刻は共通タイマ２が示す時刻ｔ１であるので、各ユーザ毎のカウント開始時刻からの経過時間は、以下の式で計算できる。
【００４３】
経過時間＝共通タイマ周期（Ｔ）−カウント開始時刻＋共通タイマ周期（Ｔ）×（タイマカウントアップ数（カウント値）−１）＋共通タイマ現在時刻  ・・・・（１）
例として、図６のuser(N)のタイマカウント開始からの時間は、以下の式で求められる。
経過時間＝Ｔ−ｔ０＋Ｔ×（１００−１）＋ｔ１
【００４４】
図７は、共通タイマ２がラウンドアップした直後のタイマカウンタ更新時（カウント値の更新処理中）の状態を示している。アクティブなユーザuser(1)のカウント値の更新処理が完了し、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２1のカウント値が１インクリメントされ、これと同時にカウンタ更新要否レジスタＲ２1のフラグ値が「０」（更新不要）に書き換えられている。一方、user(2)以降はまだカウント値が更新されていない状態となっている。この場合、各ユーザ毎のカウント開始時刻からの経過時間は、以下の式で計算できる。
【００４５】
経過時間＝共通タイマ周期（Ｔ）−カウント開始時刻＋共通タイマ周期（Ｔ）×（タイマカウントアップ数（カウント値）＋カウンタ更新要否レジスタの値−１）＋共通タイマ現在時刻  ・・・・（２）
【００４６】
ここで、上記（２）式において、（タイマカウントアップ数（カウント値）＋カウンタ更新要否レジスタの値）の部分は、次のようなことを意味している。
・カウンタ更新要否レジスタＲ２のフラグ値が「１」（更新要）の場合は、タイマカウントアップ数に１を足す。
・カウンタ更新要否レジスタＲ２のフラグ値が「０」（更新不要）の場合は、タイマカウントアップ数に０を足す。
【００４７】
例として、図７のuser(N)のタイマカウント開始からの時間は、以下の式で求められる。
経過時間＝Ｔ−ｔ０＋Ｔ×（１００＋１−１）＋ｔ２
【００４８】
図６のタイマカウンタ非更新時は、全ユーザのカウンタ更新要否レジスタＲ２のフラグ値が「０」（更新不要）となっていることに留意すると、この場合も経過時間は上記の（２）式で求められることが分かる。すなわち、各ユーザのタイマ測定開始時刻からの経過時間は、図６のタイマカウンタ非更新時であっても、図７のタイマカウンタ更新時であっても、共に上記の（２）式を用いて求めることができることが分かる。
【００４９】
図８に、この実施の形態１のタイマカウンタ装置１００の制御回路１内の要部の処理機能をブロック化した図(機能ブロック図)を示す。
【００５０】
実施の形態１のタイマカウンタ装置１００において、制御回路１は、共通タイマ２がラウンドアップする度に、測定対象（登録されているユーザ）のうちカウンタアクティブレジスタＲ１のフラグ値が「１」（アクティブ（測定中））であるユーザについては、そのユーザのカウンタ更新要否レジスタＲ２のフラグ値を「１」(更新要)に書き換え、「０」（アクティブ（測定中）ではない）であるユーザについては、そのユーザのカウンタ更新要否レジスタＲ２のフラグ値を「０」(更新不要)に書き換える更新要否フラグ書換部１０１と、更新要否フラグ書換部１０１によるカウンタ更新要否レジスタＲ２のフラグ値の書き換え処理の完了後、カウンタ更新要否レジスタＲ２のフラグ値が「１」(更新要)であるユーザ毎に、そのユーザのタイマカウントアップ数メモリ４内のカウント値を所定の値(＋１)だけカウントアップするとともに、そのユーザのカウンタ更新要否レジスタＲ２のフラグ値を「０」(更新不要)に書き換えるカウント値更新部１０２と、読み出し対象として指定されたユーザのタイマカウントアップ数メモリ４内のカウント値およびカウンタ更新要否レジスタＲ２のフラグ値を読み出すカウント値・フラグ値読出部１０３と、カウント値・フラグ値読出部１０３によって読み出されたタイマカウントアップ数メモリ４内のカウント値およびカウンタ更新要否レジスタＲ２のフラグ値とから読み出し対象として指定されたユーザの更新後のカウント値を確定するカウント値確定部１０４とを備えている。
【００５１】
カウント値確定部１０４は、カウンタ更新要否レジスタＲ２から読み出されたフラグ値が「０」(更新不要)であった場合には、カウント値記憶領域Ｓ２から読み出されたカウント値を読み出し対象として指定されたユーザの更新後のカウント値として確定し、カウンタ更新要否レジスタＲ２から読み出されたフラグ値が「１」(更新要)であった場合には、カウント値記憶領域Ｓ２から読み出されたカウント値を所定の値(＋１)だけカウントアップし、このカウントアップした値を読み出し対象として指定されたユーザの更新後のカウント値として確定し、その確定したユーザの更新後のカウント値を出力する。
【００５２】
なお、図８に示した更新要否フラグ書換部１０１、カウント値更新部１０２、カウント値・フラグ値読出部１０３およびカウント値確定部１０４は必ずしも制御回路１内に設けなくてもよく、ＣＰＵ８にその処理機能の一部あるいは全部を設けるようにしてもよい。この場合、ＣＰＵ８も含めた構成がタイマカウント装置１００となる。
【００５３】
〔実施の形態２〕
図９に本発明の実施の形態２に係るタイマカウンタ装置２００を含むコンピュータシステムの要部の構成を示す。このタイマカウンタ装置２００は、実施の形態１のタイマカウンタ装置１００の構成に対し、カウント開始時刻メモリ３を省略した構成としている。図１０に図３Ａに対応する図を示す。
【００５４】
このタイマカウンタ装置２００をウォッチドックタイマとして用い、一定時間が経過したら、割込みをかけて、ＣＰＵ等に知らせるような用途では、割込みをかけてからソフトウェアが必要処理を開始するまである程度不確定な時間を必要とする。このため、タイマのセット時刻はやや早めにすることが考えられ、そのような用途では多くの場合、正確なカウント開始時刻の記録は不要である。実施の形態２では、そのような用途を想定してカウント開始時刻（測定開始時刻）の記録を行わない構成とした。タイマ測定開始処理、カウント値の更新処理は、カウント開始時刻の記録を行わない以外は、実施の形態１の動作と同じである。
【００５５】
また、本実施の形態では、測定開始時に、タイマカウントアップ数メモリ４に初期値０を入れるようにするが、あらかじめ測定したい時間が決まっている場合には、測定開始時に、タイマカウントアップ数メモリ４への初期値として、カウントしたい数を記録し、共通タイマ２からの割込みがかかる毎に、タイマカウントアップ数メモリ４の値を現在値から１引いた値で上書き更新する構成にすることも可能である。この場合は、タイマカウントアップ数メモリ４の値が例えば０になった時点で、そのことを知らせる信号を上げることで、タイムアップしたことを知らせるタイマとしての機能をもつことができる。
【００５６】
〔実施の形態３〕
図１１に本発明の実施の形態３に係るタイマカウンタ装置３００を含むコンピュータシステムの要部の構成を示す。このタイマカウンタ装置３００は、実施の形態２のタイマカウンタ装置２００の構成に対し、タイマセット値メモリ９を付加した構成としている。
【００５７】
このタイマカウンタ装置３００では、図１２に示すように、タイマセット値メモリ９のタイマセット値記憶領域Ｓ３に、ユーザ毎のタイマカウント満了値をタイマセット値として事前に設定しておくようにする。そして、タイマカウントアップ数メモリ４のカウント値が、タイマセット値記憶領域Ｓ３に設定されているタイマセット値と一致した場合に、カウンタ満了信号を発して、該当ユーザのカウント動作が満了したことを通知する。
【００５８】
この実施の形態３のタイマカウンタ装置３００では、測定開始時刻や現在時刻は考慮せず、カウント値だけを用いて、タイマの満了を判定するため、正確な経過時間を指定しての満了判定はできない。しかしながら、実施の形態２で説明したウォッチドックタイマの用途のように、それほど正確な時間測定は必要とされないケースも多い。また、共通タイマ２の周期が必要な時間精度より十分短いような場合には、この構成で十分な精度が得られる。本実施の形態では、そのような用途にタイマカウント、および、満了通知機能を低コストで提供することを可能にする。
【００５９】
なお、タイマ満了時に正確な経過時間を知る必要がある場合は、図１３に示すようにカウント開始時刻メモリ３を設けることで実現できる。一方、その必要がない場合は、カウント開始時刻メモリ３を設けない構成でもよい。図１２はカウント開始時刻メモリ３を設けない構成を示している。
【００６０】
〔実施の形態４〕
図１４に本発明の実施の形態４に係るタイマカウンタ装置４００を含むコンピュータシステムの要部の構成を示す  実施の形態４のタイマカウンタ装置４００は、実施の形態３のタイマカウンタ装置３００と同じ構成であるが、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２の値とタイマセット値メモリ９内のタイマセット値記憶領域Ｓ３の値とを比較する代わりに、図１５に示すように、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２の値とカウンタ更新要否レジスタＲ２の値とを足した値を、タイマセット値メモリ９内のタイマセット値記憶領域Ｓ３の値と比較するようにしている。
【００６１】
タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２の値とカウンタ更新要否レジスタＲ２の値とを足すことによって、カウンタ更新要否レジスタＲ２の値が「１」（更新要）の場合は、カウント値に１を足した値となり、カウンタ更新要否レジスタＲ２の値が「０」（更新不要）の場合はカウント値に０を足した値になる。これにより、実施の形態３と比較して、共通タイマ２がラウンドアップした直後から、更新後のカウント値を用いてタイマ満了判定を行うことが可能になる利点がある。
【００６２】
〔実施の形態５〕
図１６に本発明の実施の形態５に係るタイマカウンタ装置５００を含むコンピュータシステムの要部の構成を示す。実施の形態１のタイマカウンタ装置１００(図１)では、カウンタアクティブフラグ記憶部５を設け、このカウンタアクティブフラグ記憶部５におけるカウンタアクティブレジスタＲ１に書き込まれるフラグ値によって、各ユーザ毎にタイマカウントアップ数メモリ４内のカウント値のカウントアップ動作がアクティブか否かを示していた。
【００６３】
これに対し、実施の形態５のタイマカウンタ装置５００では、タイマカウント動作を行うユーザのデータのみタイマカウンタ装置５００に登録することにより、カウンタアクティブフラグ記憶部５を不要とした構成とする。図１７に図３Ａに対応する図を示す。本実施の形態では、共通タイマ２のラウンドアップ時に、全てのユーザについて、カウンタ更新要否レジスタＲ２の値を「１」（更新要）と設定するところが実施の形態１のタイマカウンタ装置１００と異なる。その後の更新動作は実施の形態１のタイマカウンタ装置１００と同じである。
【００６４】
このカウンタアクティブフラグ記憶部５を不要とした構成は、実施の形態２〜４に示したタイマカウンタ装置２００〜４００でも採用することができ、全てのユーザについて、カウンタ更新要否レジスタＲ２の値を「１」（更新要）と設定するところが実施の形態２〜４に示したタイマカウンタ装置２００〜４００と異なるのみで、その後の更新動作は実施の形態２〜４に示したタイマカウンタ装置２００〜４００と同じである。
【００６５】
図１８に、実施の形態５のタイマカウンタ装置５００の制御回路１内での要部の処理機能をブロック化した図(機能ブロック図)を示す。
【００６６】
実施の形態５のタイマカウンタ装置５００において、制御回路１は、共通タイマ２がラウンドアップする度に、全てのユーザ（この例では、user(1),user(2),・・・,user(N)のＮ人のユーザ）のカウンタ更新要否レジスタＲ２（Ｒ２1〜Ｒ２N）のフラグ値を「１」（更新要）に書き換える更新要否フラグ書換部５０１と、更新要否フラグ書換部５０１によるカウンタ更新要否レジスタＲ２（Ｒ２1〜Ｒ２N）のフラグ値の書き換え処理の完了後、ユーザ毎に、そのユーザのタイマカウントアップ数メモリ４内のカウント値を所定の値（＋１）だけカウントアップするとともに、そのユーザのカウンタ更新要否レジスタＲ２のフラグ値を「０」（更新不要）に書き換えるカウント値更新部５０２と、読み出し対象として指定されたユーザのタイマカウントアップ数メモリ４内のカウント値およびカウンタ更新要否レジスタＲ２のフラグ値を読み出すカウント値・フラグ値読出部５０３と、カウント値・フラグ値読出部５０３によって読み出されたタイマカウントアップ数メモリ４内のカウント値およびカウンタ更新要否レジスタＲ２のフラグ値とから読み出し対象として指定されたユーザの更新後のカウント値を確定するカウント値確定部５０４とを備えている。
【００６７】
カウント値確定部５０４は、カウンタ更新要否レジスタＲ２から読み出されたフラグ値が「０」(更新不要)であった場合には、カウント値記憶領域Ｓ２から読み出されたカウント値を読み出し対象として指定されたユーザの更新後のカウント値として確定し、カウンタ更新要否レジスタＲ２から読み出されたフラグ値が「１」(更新要)であった場合には、カウント値記憶領域Ｓ２から読み出されたカウント値を所定の値(＋１)だけカウントアップし、このカウントアップした値を読み出し対象として指定されたユーザの更新後のカウント値として確定し、その確定したユーザの更新後のカウント値を出力する。
【００６８】
なお、図１８に示した更新要否フラグ書換部５０１、カウント値更新部５０２、カウント値・フラグ値読出部５０３およびカウント値確定部５０４は必ずしも制御回路１内に設けなくてもよく、ＣＰＵ８にその処理機能の一部あるいは全部を設けるようにしてもよい。この場合、ＣＰＵ８も含めた構成がタイマカウント装置５００となる。
【００６９】
〔実施の形態６〕
実施の形態１のタイマ測定開始処理においては、図３Ｂに示したように、共通タイマ２が時刻ｔ０（＝ａＮ）になった時に即時に、すなわち時刻ｔ０とカウント開始時刻ａＮとが同時刻であるとして、タイマ測定開始処理を開始する場合を示した。一方、カウント開始時刻ａＮになってから実際にタイマ測定開始処理を開始するまでの間に一定の時間を要する場合も多い。実施の形態６は、このような場合でのタイマ測定開始処理について示す。
【００７０】
図１９Ａ〜図１９Ｄを用いて、user(N)についてのタイマ測定開始指示を時刻ｔ０で受信して、タイマ測定開始処理を始める場合の動作を説明する。タイマ測定開始指示には、タイマ測定を開始する際の情報としてカウント開始時刻ａＮとタイマ測定の対象として指定されたユーザの番号（user番号）が含まれている。この例では、カウント開始時刻ａＮ後、タイマ測定開始指示の通信時間等の所用時間分だけ経ってから、時刻ｔ０でタイマ測定開始指示が受信されるものとする。以下、時刻ｔ０をタイマ測定開始指示の受信時刻とも呼ぶ。
【００７１】
この場合、カウント開始時刻ａＮからタイマ測定開始指示の受信時刻ｔ０までの間に共通タイマ２のラウンドアップがない場合（図１９Ａ、図１９Ｂ）と、ラウンドアップがある場合（図１９Ｃ、図１９Ｄ）とでタイマカウント開始処理の内容が異なる。
【００７２】
ここで、共通タイマ２の周期Ｔは、カウント開始時刻ａＮからタイマ測定開始指示の受信時刻ｔ０までの時間より大きくなるように構成する。そうすると、カウント開始時刻ａＮからカウント開始指示の受信時刻ｔ０との間に共通タイマ２のラウンドアップが起こっていない場合はｔ０＞ａＮとなり、ラウンドアップが起こっている場合はｔ０＜ａＮとなる。
【００７３】
図１９Ａ、図１９Ｂは、ｔ０＞ａＮの場合を示している。図１９Ｂの時刻ｔ０で、カウント開始時刻ａＮとタイマ測定の対象として指定されたユーザの番号（user番号（Ｎ））とを含むタイマ測定開始指示を受信する。
【００７４】
この場合、ｔ０＞ａＮであり、カウント開始時刻ａＮからタイマ測定開始指示の受信時刻ｔ０までの間に共通タイマ２のラウンドアップは生じていないので、タイマ測定開始処理の直後には、図１９Ｂに示されるように、カウント開始時刻記憶領域Ｓ１N中のカウント開始時刻はａＮ、カウント値記憶領域Ｓ２N中のカウント値は０、カウンタアクティブレジスタＲ１Nのフラグ値は「１」（アクティブ）とされる必要がある。
【００７５】
これに対し、ｔ０＜ａＮの場合では（図１９Ｃ、図１９Ｄ）、カウント開始時刻ａＮからタイマ測定開始指示の受信時刻ｔ０までの間に共通タイマ２のラウンドアップが生じているので、タイマ測定開始処理の直後では、図１９Ｄに示されるように、カウント開始時刻記憶領域Ｓ１N中のカウント開始時刻はａＮ、カウント値記憶領域Ｓ２N中のカウント値は１、カウンタアクティブレジスタＲ１Nのフラグ値は「１」（アクティブ）とされる必要がある。
【００７６】
このように、カウント開始時刻ａＮからタイマ測定開始処理を始めるまでの間に一定の時間を要する場合は、その間に共通タイマ２のラウンドアップが生じるかどうかを考慮して、タイマカウントアップ数メモリ４に設定するカウント値を決定する必要がある。
【００７７】
実施の形態６は、このような場合にも正しく、タイマカウントアップ数メモリ４にカウント値を設定できる方法を提供するものである。以下、実施の形態６の詳細について説明する。図２０に、実施の形態６のタイマカウンタ装置６００の構成を示し、図２１に実施の形態６のタイマカウンタ装置６００内のデータ構成の詳細を示す。
【００７８】
実施の形態６のタイマカウンタ装置６００は、実施の形態１におけるカウンタ更新要否フラグ記憶部６を第１のカウンタ更新要否フラグ記憶部として備え、さらに、この第１のカウンタ更新要否フラグ記憶部６とは別に第２のカウンタ更新要否フラグ記憶部１０を備えている。
【００７９】
第２のカウンタ更新要否フラグ記憶部１０は、第１のカウンタ更新要否フラグ記憶部６と同様、カウンタ更新要否レジスタＲ３（Ｒ３1〜Ｒ３N）を備えている。カウンタ更新要否レジスタＲ３には、タイマ測定開始指示の受信時に、次の条件を満たす時、更新が必要であることを示すフラグ値「１」が設定される。
【００８０】
〔カウンタ更新要否レジスタＲ３にフラグ値「１」が設定される条件〕
カウント開始時刻ａＮからタイマ測定開始指示の受信時刻ｔ０までの間に共通タイマ２のラウンドアップが発生していて、なおかつ、タイマ測定開始指示の受信時刻ｔ０と同じタイマ周期内での測定対象として指定されたユーザのタイマカウントアップ数メモリ４内のカウント値の更新がすでに終了している場合。
【００８１】
以下、第１のカウンタ更新要否フラグ記憶部６のカウンタ更新要否レジスタＲ２を第１のカウンタ更新要否レジスタＲ２と呼び、第２のカウンタ更新要否フラグ記憶部１０のカウンタ更新要否レジスタＲ３を第２のカウンタ更新要否レジスタＲ３と呼ぶ。
【００８２】
図２２Ａ〜図２２Ｅはｔ０＜ａＮかつｔ０＜t_update(N)のとき、図２３Ａ〜図２３Ｄはｔ０＜ａＮかつｔ０＞t_update(N)のとき、図２４Ａ〜図２４Ｄはｔ０＞ａＮのときの、本実施の形態の動作を時間順に示したものである。ここで、t_update(N)は、タイマカウンタアップ数メモリ４内のuser(N)のカウント開始時刻記憶領域Ｓ１Ｎのカウント値が更新される時刻を示している。以下、t_update(N)をカウント値更新時刻と呼ぶ。
【００８３】
〔ｔ０＜ａＮかつｔ０＜t_update(N)のとき〕
ｔ０＜ａＮかつｔ０＜t_update(N)のときの動作を図２２Ａ〜図２２Ｅに時間順に示す。
【００８４】
図２２Ｂのように、タイマ測定開始指示を受信した時刻ｔ０がカウント値更新時刻t_update(N)より前であるときは、第２のカウンタ更新要否レジスタＲ３Nのフラグ値を「０」（更新不要）と設定する。
【００８５】
同時に、実施の形態１と同様、カウンタアクティブレジスタＲ１Nのフラグ値と第１のカウンタ更新要否レジスタＲ２Nとを「１」に設定し、カウント開始時刻メモリ３内のカウント開始時刻記憶領域Ｓ１Nにカウント開始時刻ａＮを記録する。
【００８６】
図２２Ｃのカウント値更新時刻t_update(N)では、第１のカウンタ更新要否レジスタＲ１Nのフラグ値が「１」（更新要）となっているので、実施の形態１と同様のカウント値の更新処理が行われ、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２Nにカウント値「１」を書込むと同時に、第１のカウンタ更新要否レジスタＲ２Nのフラグ値を「１」（更新要）から「０」（更新不要）に書き換える。
【００８７】
図２２Ｄの時刻ｔ＝０では、カウンタアクティブレジスタＲ１Nのフラグ値が「１」（アクティブ）なので、実施の形態１と同様、第１のカウンタ更新要否レジスタＲ２Nのフラグ値が「０」（更新不要）から「１」（更新要）に書き換えられる。
【００８８】
図２２Ｅのカウント値更新時刻t_update(N)では、第１のカウンタ更新要否レジスタＲ２Nのフラグ値が「１」（更新要）となっているので、実施の形態１と同様のカウント値の更新処理が行われ、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２Nの現在のカウント値「１」に「１」を足した値「２」を書き込むと同時に、第１のカウンタ更新要否レジスタＲ２Nのフラグ値を「１」（更新要）から「０」（更新不要）に書き換える。
【００８９】
〔ｔ０＜ａＮかつｔ０＞t_update(N)のとき〕  
ｔ０＜ａＮかつｔ０＞t_update(N)のときの動作を図２３Ａ〜図２３Ｄに時間順に示す。
【００９０】
図２３Ｂのように、タイマ測定開始指示を受信した時刻ｔ０がカウント値更新時刻t_update(N)より後であるときは、第２のカウンタ更新要否レジスタＲ３Nのフラグ値を「１」（更新要）に設定する。
【００９１】
同時に、実施の形態１と同様、カウンタアクティブレジスタＲ１Nのフラグ値を「１」（アクティブ）に設定し、カウント開始時刻メモリ３内のカウント開始時刻記憶領域Ｓ１Nにカウント開始時刻ａＮを記録する。
【００９２】
図２３Ｃの時刻ｔ＝０では、実施の形態１と同じく、カウンタアクティブレジスタＲ１Nのフラグ値が「１」（アクティブ）であることから、第１のカウンタ更新要否レジスタＲ２Nのフラグ値を「０」（更新不要）から「１」（更新要）に書き換える。
【００９３】
図２３Ｄのカウント値更新時刻t_update(N)では、第１のカウンタ更新要否レジスタＲ２Nのフラグ値と第２のカウンタ更新要否レジスタＲ３Nのフラグ値が「１」（更新要）であるので、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２Nの現在のカウント値「０」に「１」と「１」を足した値「２」を書込むと同時に、第１のカウンタ更新要否レジスタＲ２Nのフラグ値と第２のカウンタ更新要否レジスタＲ３Nのフラグ値を「１」（更新要）から「０」（更新不要）に戻す。
【００９４】
〔ｔ０＞ａＮのとき〕
ｔ０＞ａＮのときの動作を図２４Ａ〜図２４Ｄを時間順に示す。この場合は、カウント開始時刻ａＮからタイマ測定開始指示の受信時刻ｔ０までの間に共通タイマ２のラウンドアップは生じていないので、ｔ０＞t_update(N)の場合も、ｔ０＜t_update(N)の場合も、同様に動作する。図２４Ａ〜図２４Ｄはｔ０＞t_update(N)の場合について示している。
【００９５】
図２４Ｂのように、タイマ測定開始指示を受信した時（時刻ｔ０）、第１のカウンタ更新要否レジスタＲ２Nのフラグ値および第２のカウンタ更新要否レジスタＲ３Nのフラグ値は「０」（更新不要）のままとし、カウンタアクティブレジスタＲ１Nのフラグ値を「１」（アクティブ）に設定し、カウント開始時刻メモリ３内のカウント開始時刻記憶領域Ｓ１Nにカウント開始時刻ａＮを記録する。
【００９６】
図２４Ｃの時刻ｔ＝０では、カウンタアクティブレジスタＲ１Nのフラグ値が「１」（アクティブ）であることから、実施の形態１と同じく、第１のカウンタ更新要否レジスタＲ２Nのフラグ値を「０」（更新不要）から「１」（更新要）に書き換える。
【００９７】
図２４Ｄのカウント値更新時刻t_update(N)では、第１のカウンタ更新要否レジスタＲ２Nのフラグ値が「１」（更新要）となっているので、実施の形態１と同様のカウント値の更新処理が行われ、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２Nの現在のカウント値「０」に「１」を足した値「１」を書込むと同時に、第１のカウンタ更新要否レジスタＲ２Nのフラグ値を「１」（更新要）から「０」（更新不要）に書き換える。
【００９８】
このように構成した本実施の形態では、カウント値の読み出しがあった場合は、以下の式で計算した値を返すようにする。
カウント値＝タイマカウントアップ数メモリの値＋第１のカウンタ更新要否フラグレジスタの値＋第２のカウンタ更新要否レジスタの値  ・・・・（３）
【００９９】
この式を使うと、図２２〜図２４の各時刻におけるカウント値は、図２２Ａでは「０」、図２２Ｂでは「１」、図２２Ｃでは「１」、図２２Ｄでは「２」、図２２Ｅでは「２」となり、常に正しい値を読み出すことができる。また、図２３の場合には、図２３Ｂでは「０」、図２３Ｂでは「１」、図２３Ｃでは「２」、図２３Ｄでは「２」となり、図２４の場合は、図２４Ａでは「０」、図２４Ｂでは「０」、図２４Ｃでは「１」、図２４Ｄでは「１」となり、いずれも正しい値を読み出すことができる。
【０１００】
また、各ユーザごとのカウント開始時刻からの経過時間は、以下の式によって計算することができる。
【０１０１】
経過時間＝共通タイマ周期（Ｔ）−カウント開始時刻＋共通タイマ周期（Ｔ）×（タイマカウントアップ数（カウント値）＋第１のカウンタ更新要否フラグレジスタの値＋第２のカウンタ更新要否レジスタの値−１）＋共通タイマ現在時刻  ・・・・（４）
【０１０２】
図２５に、実施の形態６のタイマカウンタ装置６００の制御回路１内のタイマ測定開始時の処理機能の要部をブロック化した図(機能ブロック図)を示す。
【０１０３】
実施の形態６のタイマカウンタ装置６００において、制御回路１は、タイマ測定開始指示受信部６０１と、カウント開始時刻取得部６０２と、タイマ測定開始指示受信時刻取得部６０３と、ラウンドアップ認識部６０４と、ラウンドアップ有無判定部６０５と、更新処理実行タイミング判定部６０６と、第１のフラグ値書換部６０７と、第２のフラグ値書換部６０８と、タイマ測定開始時のカウント値更新部６０９とを備えている。
【０１０４】
この制御回路１において、タイマ測定開始指示受信部６０１は、タイマ測定を開始する際の情報としてカウント開始時刻ａＮとタイマ測定の対象として指定されたユーザのユーザ番号（user番号（Ｎ））とを含むタイマ測定開始指示を受信する。カウント開始時刻取得部６０２は、タイマ測定開始指示受信部６０１によって受信されたタイマ測定開始指示よりカウント開始時刻ａＮを取得し、タイマ測定開始指示受信時刻取得部６０３は、タイマ測定開始指示受信部６０１によって受信されたタイマ測定開始指示の受信時刻ｔ０を取得する。
【０１０５】
また、ラウンドアップ認識部６０４は、タイマ２によって測定された時間が一定時間を経る度にそのタイミングをラウンドアップの発生として認識し、ラウンドアップ有無判定部６０５は、カウント開始時刻取得部６０２によって取得されたカウント開始時刻ａＮからタイマ測定開始指示受信時刻取得部６０３によって取得されたタイマ測定開始指示の受信時刻ｔ０までの間にラウンドアップが発生したか否かを判定する。
【０１０６】
更新処理実行タイミング判定部６０６は、ラウンドアップ有無判定部６０５によってカウント開始時刻ａＮからタイマ測定開始指示の受信時刻ｔ０までの間にラウンドアップが発生したと判定された場合、タイマ測定開始指示の受信時刻ｔ０から次のラウンドアップが発生するまでの間にタイマ測定の対象として指定されたユーザに対するカウント値の更新処理が実行されるか否かを判定する。
【０１０７】
第１のフラグ値書換部６０７は、更新処理実行タイミング判定部６０６によってタイマ測定開始指示の受信時刻ｔ０から次のラウンドアップが発生するまでの間にタイマ測定の対象として指定されたユーザに対するカウント値の更新処理が実行されないと判定された場合、タイマ測定の対象として指定されたユーザに対する第２のカウンタ更新要否レジスタＲ３のフラグ値を「１」（更新要）に書き換える。
【０１０８】
第２のフラグ値書換部６０８は、第１のフラグ値書換部６０７による第２のカウンタ更新要否レジスタＲ３のフラグ値の書き換え処理の完了後、次のラウンドアップの発生時点でタイマ測定の対象として指定されたユーザに対する第１のカウント更新要否レジスタＲ２のフラグ値を「１」（更新要）に書き換える。
【０１０９】
タイマ測定開始時のカウント値更新部６０９は、第２のフラグ値書換部６０８による第１のカウンタ更新要否レジスタＲ２のフラグ値の書き換え処理の完了後、タイマ測定の対象として指定されたユーザに対するカウント値の更新処理が開始される時点で、タイマ測定の対象として指定されたユーザのタイマカウントアップ数メモリ４内のカウント値を所定の値（１）にさらに所定の値（１）を加えた値（＋２）だけカウントアップするとともに、タイマ測定の対象として指定されたユーザに対する第１のカウンタ更新要否レジスタＲ２および第２のカウンタ更新要否レジスタＲ３のフラグ値を「０」（更新不要）に書き換える。
【０１１０】
図２６に、実施の形態６のタイマカウンタ装置６００の制御回路１内のカウント値の読み出し時の処理機能の要部をブロック化した図(機能ブロック図)を示す。
【０１１１】
制御回路１は、読み出し対象として指定されたユーザのタイマカウントアップ数メモリ４内のカウント値、第１のカウンタ更新要否レジスタＲ２のフラグ値および第２のカウンタ更新要否レジスタＲ３のフラグ値を読み出すカウント値・フラグ値読出部６１０と、カウント値・フラグ値読出部６１０によって読み出されたタイマカウントアップ数メモリ４内のカウント値、第１のカウンタ更新要否レジスタＲ２のフラグ値および第２のカウンタ更新要否レジスタＲ３のフラグ値から読み出し対象として指定されたユーザの更新後のカウント値を確定するカウント値確定部６１１とを備えている。
【０１１２】
この制御回路１において、カウント値・フラグ値読出部６１０は、第１および第２のカウンタ更新要否レジスタＲ２，Ｒ３から読み出されたフラグ値の何れもが更新が不要であることを示していた場合にはタイマカウントアップ数メモリ４から読み出されたカウント値を読み出し対象として指定されたユーザの更新後のカウント値として確定し、第１および第２のカウンタ更新要否レジスタＲ２，Ｒ３から読み出されたフラグ値の何れか一方が更新が必要であることを示していた場合には、タイマカウントアップ数メモリ４から読み出されたカウント値を所定の値（＋１）だけカウントアップし、このカウントアップした値を読み出し対象として指定されたユーザの更新後のカウント値として確定し、第１および第２のカウンタ更新要否レジスタＲ２，Ｒ３から読み出されたフラグ値の何れもが更新が必要であることを示していた場合には、タイマカウントアップ数メモリ４から読み出されたカウント値を所定の値（１）にさらに所定の値（１）を加えた値（＋２）だけカウントアップし、このカウントアップした値を読み出し対象として指定されたユーザの更新後のカウント値として確定する。
【０１１３】
なお、図２５に示したタイマ測定開始指示受信部６０１、カウント開始時刻取得部６０２、タイマ測定開始指示受信時刻取得部６０３、ラウンドアップ認識部６０４、ラウンドアップ有無判定部６０５、更新処理実行タイミング判定部６０６、第１のフラグ値書換部６０７、第２のフラグ値書換部６０８およびタイマ測定開始時のカウント値更新部６０９、図２６に示したカウント値・フラグ値読出部６１０およびカウント値確定部６１１は、必ずしも制御回路１内に設けなくてもよく、ＣＰＵ８にその処理機能の一部あるいは全部を設けるようにしてもよい。この場合、ＣＰＵ８も含めた構成がタイマカウント装置６００となる。
【０１１４】
〔実施の形態７〕
実施の形態７も、実施の形態６と同じく、「カウント開始時刻になってから実際にタイマ測定開始処理を始めるまでの間に一定の時間を要する場合でも正しくタイマ動作できる機能」を備えたタイマカウンタ装置について示す。
【０１１５】
実施の形態７のタイマカウンタ装置の構成と、タイマカウンタ装置内のデータ構成は、実施の形態１（図１）と同じである。ここで、カウント開始時刻からタイマ測定開始指示を受信するまでに要する時間をT_delayとする。ただし、この所要時間が、ユーザごとに違ったり、時間的に変化する場合はその最大値をT_delayとする。
【０１１６】
図２７Ａ〜図２７Ｅに、実施の形態７でのカウント値の更新処理を時間順に示す。実施の形態１のカウント値の更新処理との違いは、実施の形態７では、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２Nの更新処理を時刻T_delayより遅い時刻に開始する点である。すなわち、図２７Ｃ、図２７Ｄ、図２７Ｅに示すように、タイマカウントアップ数メモリ４内のカウント値の更新を時刻T_delayより後に開始する。
【０１１７】
このようにすることで、全てのユーザＮに対して、ｔ０＜ａＮの場合は、常にｔ０＜t_update(N)が保証される。すなわち、カウント開始時刻ａＮからタイマ測定開始指示の受信時刻ｔ０までの間にラウンドアップが発生するような場合には、タイマカウントアップ数メモリ４内のカウント値の更新処理が始まる前に、タイマ測定開始指示の受信を完了していることが保証されるので、実施の形態１と同じ処理を行えばよい。
【０１１８】
一方、ｔ０＞ａＮの場合には、カウント開始時刻ａＮからタイマ測定開始指示の受信時刻ｔ０までの間にラウンドアップが発生していないので、この場合も実施の形態１と同じ処理を行えばよい。
【０１１９】
〔ｔ０＜ａＮのとき〕
図２８Ａ〜図２８Ｅにｔ０＜ａＮの時の実施の形態７の動作を時間順に示す。図２８Ｂのように、タイマ測定開始指示を受信した時刻ｔ０において、実施の形態１と同様、カウンタ更新要否レジスタＲ２Nのフラグ値とカウンタアクティブレジスタＲ１Nのフラグ値を「１」に設定し、カウント開始時刻メモリ３のカウント開始時刻記憶領域Ｓ１Nにカウント開始時刻ａＮを記録する。
【０１２０】
図２８Ｃのカウント値更新時刻t_update(N)では、カウンタ更新要否レジスタＲ２Nのフラグ値が「１」（更新要）となっているので、実施の形態１と同様のカウント値の更新処理が行われ、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２Nにフラグ値「１」を書込むと同時に、カウンタ更新要否レジスタＲ２Nのフラグ値を「１」（更新要）から「０」（更新不要）に書き換える。
【０１２１】
図２８Ｄの時刻ｔ＝０では、カウンタアクティブレジスタＲ１Nのフラグ値が「１」（アクティブ）なので、実施の形態１と同様、カウンタ更新要否レジスタＲ２Nのフラグ値が「０」（更新不要）から「１」（更新要）に書き換えられる。
【０１２２】
図２８Ｅのカウント値更新時刻t_update(N)では、カウンタ更新要否レジスタＲ２Nのフラグ値が「１」（更新要）となっているので、実施の形態１と同様のカウント値の更新処理が行われ、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２Nの現在のカウント値「１」に「１」を足した値「２」を書き込むと同時に、カウンタ更新要否レジスタＲ２Nのフラグ値を「１」（更新要）から「０」（更新不要）に書き換える。
【０１２３】
〔ｔ０＞ａＮのとき〕
ｔ０＞ａＮのときの動作を図２９Ａ〜図２９Ｅおよび図３０Ａ〜図３０Ｄに時間順に示す。図２９Ａ〜図２９Ｅはｔ０＜t_update(N)の場合を、図３０Ａ〜図３０Ｄはｔ０＞t_update(N)の場合を示している。この場合は、カウント開始時刻ａＮからタイマ測定開始指示の受信時刻ｔ０までの間に共通タイマ２のラウンドアップは生じていないので、ｔ０＞t_update(N)の場合も、ｔ０＜t_update(N)の場合も、実施の形態１と同じ処理を行えば正しくカウント動作する。
【０１２４】
〔ｔ０＞ａＮかつｔ０＜t_update(N)のときの動作〕
図２９Ｂのように、タイマ測定開始指示を受信した時（時刻ｔ０）に、カウンタ更新要否レジスタＲ２Nのフラグ値は「０」（更新不要）のままとし、カウンタアクティブレジスタＲ１Nのフラグ値を「１」（アクティブ）に設定し、カウント開始時刻メモリ３内のカウント開始時刻記憶領域Ｓ１Nにカウント開始時刻ａＮを記録する。
【０１２５】
図２９Ｃの時刻t_update(N)では、カウンタ更新要否レジスタＲ２Nフラグ値が「０」（更新不要）となっているので、カウント開始時刻メモリ３内のカウント開始時刻記憶領域Ｓ１Nの値の書き換えは行わない。
【０１２６】
図２９Ｄの時刻ｔ＝０では、カウンタアクティブレジスタＲ１Nのフラグ値が「１」（アクティブ）であることから、実施の形態１と同じく、カウンタ更新要否レジスタＲ２Nのフラグ値を「０」（更新不要）から「１」（更新要）に書き換える。
【０１２７】
図２９Ｅのカウント値更新時刻t_update(N)では、カウンタ更新要否レジスタＲ２Nのフラグ値が「１」（更新要）となっているので、実施の形態１と同様のカウント値の更新処理が行われ、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２Nの現在のカウント値「０」に「１」を足した値「１」を書込むと同時に、カウンタ更新要否レジスタＲ２Nのフラグ値を「１」（更新要）から「０」（更新不要）に書き換える。
【０１２８】
〔ｔ０＞ａＮかつｔ０＞t_update(N)のときの動作〕
図３０Ｂのように、タイマ開始指示を受信した時（時刻ｔ０）に、カウンタ更新要否レジスタＲ２Nのフラグ値は「０」（更新不要）のままとし、カウンタアクティブレジスタＲ１Nのフラグ値を「１」（アクティブ）に設定し、カウント開始時刻メモリ３内のカウント開始時刻記憶領域Ｓ１Nにカウント開始時刻ａＮを記録する。
【０１２９】
図３０Ｃの時刻ｔ＝０では、カウンタアクティブレジスタＲ１Nのフラグ値が「１」（アクティブ）であることから、実施の形態１と同じく、カウンタ更新要否レジスタＲ２Nのフラグ値を「０」（更新不要）から「１」（更新要）に書き換える。
【０１３０】
図３０Ｄの時刻t_update(N)では、カウンタ更新要否レジスタＲ２Nのフラグ値が「１」（更新要）となっているので、実施の形態１と同様のカウント値の更新処理が行われ、タイマカウントアップ数メモリ４内のカウント値記憶領域Ｓ２Nの現在のカウント値「０」に「１」を足した値「１」を書込むと同時に、カウンタ更新要否レジスタＲ２Nのフラグ値を「１」（更新要）から「０」（更新不要）に書き換える。
【０１３１】
このように構成した本実施の形態では、タイマカウントアップ数の読み出しがあった場合は、実施の形態１と同様に以下の式で計算した値を返すようにする。
カウント値＝タイマカウントアップ数メモリの値＋カウンタ更新要否表示レジスタの値  ・・・・（５）
【０１３２】
また、各ユーザごとのカウント開始時刻からの経過時間は、以下の式によって計算することができる。
経過時間＝共通タイマ周期（Ｔ）−カウント開始時刻＋共通タイマ周期（Ｔ）×（タイマカウントアップ数（カウント値）＋カウンタ更新要否表示レジスタの値−１）＋共通タイマ現在時刻  ・・・・（６）
【０１３３】
このような読み出し機構を取ることにより、タイマカウントアップ数メモリ４の更新中も含めて、常に正しいタイマカウント値を読み取ることができる。
【０１３４】
〔実施の形態の拡張〕
以上、実施の形態を参照して本発明を説明したが、本発明は上記の実施の形態に限定されるものではない。本発明の構成や詳細には、本発明の技術思想の範囲内で当業者が理解し得る様々な変更をすることができる。また、各実施の形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【０１３５】
また、本発明に係るタイマカウント方法、タイマカウンタ装置は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【符号の説明】
【０１３６】
１…制御回路、２…共通タイマ、３…カウント開始時刻メモリ、４…タイマカウントアップ数メモリ、５…カウンタアクティブフラグ記憶部、６…カウンタ更新要否フラグ記憶部（第１のカウンタ更新要否フラグ記憶部）、７…ＣＰＵバス、８…ＣＰＵ、９…タイマセット値メモリ、１０…カウンタ更新要否フラグ記憶部（第２のカウンタ更新要否フラグ記憶部）、Ｓ１（Ｓ１1〜Ｓ１N）…カウント開始時刻記憶領域、Ｓ２（Ｓ２1〜Ｓ２N）…カウント値記憶領域、Ｓ３（Ｓ３1〜Ｓ３N）…タイマセット値記憶領域、Ｒ１（Ｒ１1〜Ｒ１N）…カウンタアクティブレジスタ、Ｒ２（Ｒ２1〜Ｒ２N）…カウンタ更新要否レジスタ（第１のカウンタ更新要否レジスタ）、Ｒ３（Ｒ３1〜Ｒ３N）…カウンタ更新要否レジスタ（第２のカウンタ更新要否レジスタ）、ＴＣ…タイマカウンタ、１００〜６００…タイマカウンタ装置、１０１…更新要否フラグ書換部、１０２…カウント値更新部、１０３…カウント値・フラグ値読出部、１０４…カウント値確定部、５０１…更新要否フラグ書換部、５０２…カウント値更新部、５０３…カウント値・フラグ値読出部、５０４…カウント値確定部、６０１…タイマ測定開始指示受信部、６０２…カウント開始時刻取得部、６０３…タイマ測定開始指示受信時刻取得部、６０４…ラウンドアップ認識部、６０５…ラウンドアップ有無判定部、６０６…更新処理実行タイミング判定部、６０７…第１のフラグ値書換部、６０８…第２のフラグ値書換部、６０９…タイマ測定開始時のカウント値更新部、６１０…カウント値・フラグ値読出部、６１１…カウント値確定部。
【図１】
2017220208.tif 000003
【図２Ａ】
2017220208.tif 000004
【図２Ｂ】
2017220208.tif 000005
【図２Ｃ】
2017220208.tif 000006
【図２Ｄ】
2017220208.tif 000007
【図３Ａ】
2017220208.tif 000008
【図３Ｂ】
2017220208.tif 000009
【図４Ａ】
2017220208.tif 000010
【図４Ｂ】
2017220208.tif 000011
【図５Ａ】
2017220208.tif 000012
【図５Ｂ】
2017220208.tif 000013
【図５Ｃ】
2017220208.tif 000014
【図６】
2017220208.tif 000015
【図７】
2017220208.tif 000016
【図８】
2017220208.tif 000017
【図９】
2017220208.tif 000018
【図１０】
2017220208.tif 000019
【図１１】
2017220208.tif 000020
【図１２】
2017220208.tif 000021
【図１３】
2017220208.tif 000022
【図１４】
2017220208.tif 000023
【図１５】
2017220208.tif 000024
【図１６】
2017220208.tif 000025
【図１７】
2017220208.tif 000026
【図１８】
2017220208.tif 000027
【図１９Ａ】
2017220208.tif 000028
【図１９Ｂ】
2017220208.tif 000029
【図１９Ｃ】
2017220208.tif 000030
【図１９Ｄ】
2017220208.tif 000031
【図２０】
2017220208.tif 000032
【図２１】
2017220208.tif 000033
【図２２Ａ】
2017220208.tif 000034
【図２２Ｂ】
2017220208.tif 000035
【図２２Ｃ】
2017220208.tif 000036
【図２２Ｄ】
2017220208.tif 000037
【図２２Ｅ】
2017220208.tif 000038
【図２３Ａ】
2017220208.tif 000039
【図２３Ｂ】
2017220208.tif 000040
【図２３Ｃ】
2017220208.tif 000041
【図２３Ｄ】
2017220208.tif 000042
【図２４Ａ】
2017220208.tif 000043
【図２４Ｂ】
2017220208.tif 000044
【図２４Ｃ】
2017220208.tif 000045
【図２４Ｄ】
2017220208.tif 000046
【図２５】
2017220208.tif 000047
【図２６】
2017220208.tif 000048
【図２７Ａ】
2017220208.tif 000049
【図２７Ｂ】
2017220208.tif 000050
【図２７Ｃ】
2017220208.tif 000051
【図２７Ｄ】
2017220208.tif 000052
【図２７Ｅ】
2017220208.tif 000053
【図２８Ａ】
2017220208.tif 000054
【図２８Ｂ】
2017220208.tif 000055
【図２８Ｃ】
2017220208.tif 000056
【図２８Ｄ】
2017220208.tif 000057
【図２８Ｅ】
2017220208.tif 000058
【図２９Ａ】
2017220208.tif 000059
【図２９Ｂ】
2017220208.tif 000060
【図２９Ｃ】
2017220208.tif 000061
【図２９Ｄ】
2017220208.tif 000062
【図２９Ｅ】
2017220208.tif 000063
【図３０Ａ】
2017220208.tif 000064
【図３０Ｂ】
2017220208.tif 000065
【図３０Ｃ】
2017220208.tif 000066
【図３０Ｄ】
2017220208.tif 000067
【図３１Ａ】
2017220208.tif 000068
【図３１Ｂ】
2017220208.tif 000069