(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
<第1の実施の形態>
<概要>
図1は、本発明の第1の実施の形態にかかる時刻補正装置1の構成を示す図である。
【0014】
本実施の形態の時刻補正装置1は、プロセッサ100に対して割込みを発生させず、プロセッサ100が低負荷状態等のタイミングで時刻補正を行う。かつ、プロセッサ100は内部バス上のメモリ102へアクセスして時刻を取得する。
【0015】
外部と通信し、時刻情報を保持する時刻補正用デバイスと、CPUボード10(CPU:Central Processing Unit)とが、相互に接続される。時刻補正用デバイスを例えばPCIカード11として実装した場合、PCIカード11が時刻情報を受信し、PCIカード11内のレジスタに保存する。
【0016】
DMA制御部112がPCIカード11内のレジスタからCPUボード10内のメモリ102へ時刻情報をDMA(Direct Memory Access)転送する。DMA転送は、プロセッサ100上のソフトウェア、例えばデバイスドライバ、の介入がなくても転送を完了できる。CPUボード10内のプロセッサ100は、プロセッサ100が決定したタイミングでメモリ102から時刻情報をロードし、CPUボード10内の時刻を更新する。
【0017】
なお、ここでは時刻補正用デバイスの例としてPCIカード11を挙げたが、同等の機能を有していれば実施形態はPCIカード11に限らないし、CPUボード10内に同等の機能を構成してもよい。
【0018】
<構成>
時刻補正装置1は、CPUボード10、および、PCIカード11を包含する。CPUボード10とPCIカード11は、例えばPCIバスのような、DMA転送が可能なバスで接続されている。
【0019】
CPUボード10は、プロセッサ100、I/O制御部101、および、メモリ102を包含する。プロセッサ100とI/O制御部101とメモリ102は、同一バス上に存在している。I/O制御部101はCPUボード10とPCIカード11の間の通信を制御する。
【0020】
PCIカード11は、時刻情報受信部110と、時刻情報歩進部111と、DMA制御部112と、を包含する。時刻情報受信部110は、外部から送信される時刻情報を受信する。時刻情報歩進部111は、時刻情報受信部110から得た時刻情報をレジスタに保存し歩進する。
【0021】
DMA制御部112は、PCIカード11内の時刻情報歩進部111からCPUボード10内のメモリ102へ時刻情報をDMA転送する。この転送は、I/O制御部101経由で行われる。すなわちI/O制御部101は、DMA転送されてきた時刻情報を受信し、メモリ102へ格納する。DMA転送完了時、I/O制御部101はプロセッサ100に完了割込みを上げない。
【0022】
<動作>
図1に示した時刻補正装置1の動作を、
図2、および、
図3のフローチャートに基づいて説明する。
【0023】
図2は、PCIカード11の動作フローチャートである。
【0024】
まず、時刻補正装置1のオペレータが、図示しない入力装置を使用して、PCIカード11の時刻情報歩進部111に初期時刻を格納する(
図2のS1)。この設定は、他の方法で行っても良い。初期時刻は、任意の時刻値でもよいし、時刻情報受信部110で受信した外部時刻でもよい。また、時刻情報は、例えば、年月日時分秒のデータ、加えて、ミリ秒やマイクロ秒のデータを含んでもよい。あるいは、時刻情報は、ある基準時刻からの経過時間情報でもよい。
【0025】
時刻情報歩進部111は、PCIカード11内のオシレータクロックを用いて時刻情報を歩進する(S2)。ある一定の時間が経過し、時刻情報をDMA転送するタイミングとなった場合(S3・yes)、PCIカード11内のDMA制御部112が、PCIカード11内の時刻情報歩進部111で歩進している時刻情報を、CPUボード10内のメモリ102へDMA転送する(S4)。この時、DMA制御部112がDMAマスタとなり、DMA転送を制御する。また、DMA転送を行うタイミングは、CPUボード10に要求される時刻精度による。例えば、CPUボード10に秒精度の時刻情報が要求される場合は、DMA制御部112は1秒毎にDMA転送を行えばよい。
【0026】
時刻情報をDMA転送した後、またはまだ時刻情報をDMA転送するタイミングでなかった場合(S3・no)、時刻情報受信部110は、外部の時刻供給装置から時刻情報を受信したかどうかを確認する(S5)。時刻情報受信部110がまだ次の外部時刻情報を受信していない場合(S5・no)、時刻情報をDMA転送するタイミングが訪れるか、または次の外部時刻情報を受信するまで、時刻情報歩進部111は時刻情報を歩進し続ける(S2)。
【0027】
時刻情報受信部110は、新たに外部時刻情報を受信した場合(S5・yes)、受信した外部時刻情報を時刻情報歩進部111に出力して、時刻情報歩進部111がレジスタに格納する(S6)。以後、時刻情報をDMA転送するタイミングが訪れるか、または次の外部時刻情報を受信する(S3またはS5でyes)まで、時刻情報歩進部111は、新たに格納した時刻情報を歩進し続ける(S2)。
【0028】
図3は、CPUボード10の動作フローチャートである。
【0029】
まず、時刻補正装置1のオペレータが、図示しない入力装置を使用して、CPUボード10内のプロセッサ100に初期時刻を格納する(
図3のS11)。この設定は、他の方法で行っても良い。初期時刻は、PCIカード11からメモリ102に転送された時刻情報を用いてもよい。
【0030】
プロセッサ100は、CPUボード10内部のオシレータクロックまたはプロセッサ100のシステムクロック等を用いて、時刻を歩進する(S12)。
【0031】
プロセッサ100は、時刻補正が必要となったタイミングで(S13・Yes)、メモリ102にアクセスして時刻情報を取得する(S14)。なお、時刻補正が必要なタイミングとは、プロセッサ100が低負荷状態であるタイミングである。プロセッサ100は、自装置の負荷が所定基準以下の場合に、低負荷状態と判断する。所定基準は、例えば、自装置の使用率が所定割合以下である、あるいは、単位時間当たりの処理トランザクション数が所定数以下である、といったもので良い。
【0032】
プロセッサ100は或る特定の周期で時刻補正を行ってもよいが、時刻補正を開始するタイミングで低負荷状態でない場合は、プロセッサ100は、時刻補正処理をスキップするか、または、低負荷状態になるまで時刻補正処理の開始を遅延させる。
【0033】
プロセッサ100は、時刻情報をメモリ102から取得すると、自身の時刻を取得した時刻情報に更新する(S15)。以後、プロセッサ100は、更新した時刻情報を歩進する(S12)。
【0034】
<効果>
本実施の形態の時刻補正装置1は、CPUボード10が時刻補正を行う際に発生する、プロセッサ100のスループット低下を軽減できる。
【0035】
その第1の理由は、時刻補正を行う際、プロセッサ100に対して外部割込みを発生させないからである。このため、プロセッサ100のキャッシュからのコンテキストのパージが抑止され、時刻補正完了後の処理再開時のコンテキストのキャッシュへの再ロードを回避できるからである。
【0036】
その第2の理由は、プロセッサ100は、低負荷状態等のタイミングで時刻情報を行うからである。このため、プロセッサ100は、スループットに影響するタイミングでの時刻補正実行を回避できる。
【0037】
その第3の理由は、プロセッサ100は時刻情報をメモリ102から取得するからである。プロセッサ100は、低速な通信デバイスにアクセスしない為、時刻補正処理に伴うプロセッサ100のスループット低下を軽減できる。
【0038】
<第2の実施形態>
図4は、本発明の第2の実施の形態にかかる時刻補正装置2の構成を示す図である。
【0039】
時刻補正装置2は、CPUボード20、および、PCIカード21を包含する。CPUボード20とPCIカード21は、例えばPCIバスのような、DMA転送が可能なバスで接続されている。
【0040】
CPUボード20は、プロセッサ200、I/O制御部201、メモリ202、および、DMA制御部203を包含する。プロセッサ200とI/O制御部201とメモリ202、DMA制御部203は、同一バス上に存在している。I/O制御部201はCPUボード20とPCIカード21の間の通信を制御する。
【0041】
DMA制御部203は、PCIカード21内の時刻情報歩進部211からCPUボード20内のメモリ202へ時刻情報をDMA転送する。この転送は、I/O制御部201経由で行われる。すなわちI/O制御部101は、DMA転送されてきた時刻情報を受信し、メモリ202へ格納する。DMA転送完了時、I/O制御部201はプロセッサ200に完了割込みを上げない。
【0042】
PCIカード21は、時刻情報受信部210と、時刻情報歩進部211を包含する。時刻情報受信部210は、外部から送信される時刻情報を受信する。時刻情報歩進部211は、時刻情報受信部210から得た時刻情報をレジスタに保存し歩進する。
【0043】
第2の実施の形態の時刻補正装置2は、第1の実施の形態の時刻補正装置1と同様に時刻を補正する。但し、第2の実施の形態の時刻補正装置2は、第1の実施の形態の時刻補正装置1と異なり、DMA制御部203をCPUボード20に備えている。
【0044】
本実施の形態の時刻補正装置2は、CPUボード20が時刻補正を行う際に発生する、プロセッサ200のスループット低下を軽減できる。その理由は、第1の実施の形態の説明において述べたとおりである。
【0045】
<第3の実施形態>
図5は、本発明の第3の実施の形態にかかる時刻補正装置3の構成を示す図である。
【0046】
時刻補正装置3は、CPUボード30、および、PCIカード31を包含する。CPUボード30とPCIカード31は、例えばPCIバスのような、DMA転送が可能なバスで接続されている。
【0047】
CPUボード30は、プロセッサ300、および、I/O制御部301を包含する。プロセッサ300とI/O制御部301は、同一バス上に存在している。I/O制御部301はCPUボード30とPCIカード31の間の通信を制御する。
【0048】
PCIカード31は、時刻情報受信部310、時刻情報歩進部311、および、DMA制御部312を包含する。時刻情報受信部310は、外部から送信される時刻情報を受信する。時刻情報歩進部311は、時刻情報受信部310から得た時刻情報をレジスタに保存し歩進する。
【0049】
DMA制御部312は、PCIカード31内の時刻情報歩進部311からCPUボード30内のプロセッサ300へ時刻情報をDMA転送する。この転送は、I/O制御部301経由で行われる。すなわちI/O制御部301は、DMA転送されてきた時刻情報を受信し、プロセッサ300へ格納する。ここで、格納先は、プロセッサ300が備える時刻レジスタ、例えば、RTC(Real Time Clock)モジュールや時刻カウンタである。DMA転送完了時、I/O制御部101はプロセッサ300に完了割込みを上げない。
【0050】
図5に示した時刻補正装置3の動作を、
図6のフローチャートに基づいて説明する。
図6のフローチャートのS21、S22、S23、S25、S26は、
図2のフローチャートのS1、S2、S3、S5、S6と同一の動作を示す。
図6のフローチャートのS24において、PCIカード31内のDMA制御部312は、CPUボード30内のプロセッサ300を送信先として時刻情報をDMA転送する。
【0051】
本実施の形態の時刻補正装置3は、CPUボード30が時刻補正を行う際に発生する、プロセッサ300のスループット低下を軽減できる。
【0052】
その第1の理由は、時刻補正を行う際、プロセッサ300に対して外部割込みを発生させないからである。このため、プロセッサ300のキャッシュからのコンテキストのパージが抑止され、時刻補正完了後の処理再開時のコンテキストのキャッシュへの再ロードを回避できるからである。
【0053】
その第2の理由は、プロセッサ300は、時刻情報を取得するソフトウェアの処理が必要ないからである。プロセッサ300は、時刻情報取得処理を実行しない為、時刻補正処理に伴うプロセッサ300のスループット低下を軽減できる。
【0054】
<第4の実施形態>
図7は、本発明の第4の実施の形態にかかる時刻補正装置4の構成を示す図である。
【0055】
時刻補正装置4は、CPUボード40、および、PCIカード41を包含する。CPUボード40とPCIカード41は、例えばPCIバスのような、DMA転送が可能なバスで接続されている。
【0056】
CPUボード40は、プロセッサ400、I/O制御部401、および、DMA制御部403を包含する。プロセッサ400、I/O制御部401、および、DMA制御部403は、同一バス上に存在している。I/O制御部401はCPUボード40とPCIカード41の間の通信を制御する。
【0057】
DMA制御部403は、PCIカード41内の時刻情報歩進部411からCPUボード40内のプロセッサ400へ時刻情報をDMA転送する。この転送は、I/O制御部401経由で行われる。すなわちI/O制御部401は、DMA転送されてきた時刻情報を受信し、プロセッサ400へ格納する。ここで、格納先は、プロセッサ400が備える時刻レジスタ、例えば、RTCモジュールや時刻カウンタである。DMA転送完了時、I/O制御部401はプロセッサ400に完了割込みを上げない。
【0058】
PCIカード41は、時刻情報受信部410と、時刻情報歩進部411を包含する。時刻情報受信部410は、外部から送信される時刻情報を受信する。時刻情報歩進部411は、時刻情報受信部410から得た時刻情報をレジスタに保存し歩進する。
【0059】
第4の実施の形態の時刻補正装置4は、第3の実施の形態の時刻補正放置3と同様に時刻を補正する。但し、第4の実施の形態の時刻補正装置4は、第3の実施の形態の時刻補正装置3と異なり、DMA制御部403をCPUボード40に備えている。
【0060】
本実施の形態の時刻補正装置4は、CPUボード10が時刻補正を行う際に発生する、プロセッサ400のスループット低下を軽減できる。その理由は、第3の実施の形態の説明において述べたとおりである。
【0061】
<第5の実施形態>
図8は、本発明の第5の実施の形態にかかる時刻補正装置5の構成を示す図である。
【0062】
時刻補正装置5は、CPUボード50、および、時刻補正用デバイス51を包含する。CPUボード50と時刻補正用デバイス51は、DMA転送が可能なバスで接続されている。
【0063】
CPUボード50は、プロセッサ500、および、I/O制御部501を包含する。
【0064】
時刻補正用デバイス51は、時刻情報歩進部511、および、DMA制御部512を包含する。
【0065】
時刻情報歩進部511は、外部から得た時刻情報をオシレータクロックで歩進して保持する。
【0066】
DMA制御部512は、時刻情報歩進部511が保持する時刻情報を、所定周期でバスを通じてCPUボード50にDMA転送する。I/O制御部501は、バスからDMA転送されてきた時刻情報を受信し、プロセッサ300が備える時刻レジスタに格納する。DMA転送完了時、I/O制御部501はプロセッサ300に完了割込みを上げない。
【0067】
本実施の形態の時刻補正装置5は、CPUボード50が時刻補正を行う際に発生する、プロセッサ500のスループット低下を軽減できる。
【0068】
その理由は、時刻補正を行う際、プロセッサ500に対して外部割込みを発生させないからである。このため、プロセッサ500のキャッシュからのコンテキストのパージが抑止され、時刻補正完了後の処理再開時のコンテキストのキャッシュへの再ロードを回避できるからである。
【0069】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。