(57)【要約】【課題】各実行空間や各プロセスごとに異なる時刻情報を設定できるようにしつつ、時刻の補正を安全な方法で実行できる情報処理装置を提供する。【解決手段】時刻情報を管理し、要求に応じて、計時している時刻情報を取得して提供する第１処理と、時刻情報の取得要求を受けて、上記第１処理に対して当該要求を出力して、提供された時刻情報を取得して出力する第２処理と、要求元からの要求に応じて、第２に対して時刻情報の取得要求を出力し、第２処理が出力する時刻情報を取得して、要求元に当該取得した時刻情報を提供する第３処理とが、互いに異なる実行空間において実行される情報処理装置である。【選択図】図１
2007286699.tif 000002
【特許請求の範囲】
【請求項１】
時刻情報を管理し、要求に応じて、計時している時刻情報を取得して提供する時刻保持手段と、
時刻情報の取得要求を受けて、前記時刻保持手段に対して当該要求を出力して、提供された時刻情報を取得して出力する時刻情報取得手段と、
要求元からの要求に応じて、前記時刻取得手段に対して時刻情報の取得要求を出力し、時刻取得手段が出力する時刻情報を取得して、前記要求元に当該取得した時刻情報を提供する時刻情報要求手段と、
を含み、
前記時刻保持手段と、前記時刻情報取得手段と、前記時刻情報要求手段とが、互いに異なる実行空間において実行されることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記時刻保持手段は、前記計時している時刻情報を基準時刻情報として、予め定められた識別子ごとに、当該基準時刻情報との差に係る差分情報を保持しており、時刻情報が要求されたときに、当該要求の要求元から取得される前記識別子に関連づけられた差分情報と、前記基準時刻情報とに基づいて、提供する時刻情報を演算し、当該演算の結果得られた時刻情報を提供することを特徴とする情報処理装置。
【請求項３】
互いに内部データへのアクセス不能となっている、第１、第２、第３の実行空間を提供可能な処理要素を備えたコンピュータを用いて、
前記第１の実行空間にて、時刻情報を管理し、要求に応じて、計時している時刻情報を取得して提供する処理を実行する工程と、
前記第２の実行空間にて、時刻情報の取得要求を受けて、前記第１の実行空間で実行される処理に対して当該要求を出力して、当該処理から提供された時刻情報を取得して出力する処理を実行する工程と、
前記第３の実行空間にて、要求元からの要求に応じて、前記第２の実行空間で実行される処理に対して時刻情報の取得要求を出力し、当該処理が出力する時刻情報を取得して、前記要求元に当該取得した時刻情報を提供する処理を実行する工程と、
を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の実行空間を管理可能なコンピュータシステム等の情報処理装置に関する。
【背景技術】
【０００２】
近年のコンピュータシステムにおいては、複数の実行空間においてプログラムを並列的に実行することができるようになっているものがある。ここで実行空間とは、メモリ空間やプロセッサなど、プログラム実行に要するリソースが論理的、ないし物理的に割り当てられている、プログラムの論理的な実行単位である。
【０００３】
例えば、あるプロセッサでは、複数のプロセッサコアを備えて、各プロセッサコアにおいて並列的に、互いに異なるインストラクションを実行可能としている。また各プロセッサコアに対応してローカルメモリを備え、プロセッサコアは、対応して設けられたローカルメモリに格納したプログラムを実行する。この場合、各プロセッサコアと対応するローカルメモリとによって実行空間が区分される。
【０００４】
このように複数の実行空間においてプログラムを並列的に実行するコンピュータシステムでは、外部のリソース（プロセッサ外のメモリや、入出力デバイス等）にアクセスする際に、各実行空間で実行されるプログラムから外部のリソースへのアクセスを調停するマネージャが設けられ、このマネージャにより外部リソースの利用が管理される。
【０００５】
こうした外部リソースの一つに、バッテリによってバックアップされた計時部がある。この計時部は、コンピュータシステムの管理者によって設定された時刻情報を保持し、時刻の計時をしている。この計時部が計時している時刻の情報についても、マネージャを介して各実行空間内のプログラムが取得できる。
【０００６】
ところが、各実行空間において、別々のオペレーティングシステム（外部デバイスとの入出力や、プログラム実行等を管理するシステムプログラム）が実行されている場合など、実行空間ごとに異なる時刻情報を取得したい場合もある。このような要望に応える方法として、実行空間の一例である論理パーティションごとに、違いに異なる値に設定されたパーティション・オフセットを用いて、計時部が計時する時刻情報を補正し、各論理パーティションにおいて異なる時刻を設定可能なシステムが、特許文献１に開示されている。
【特許文献１】米国特許出願公開第２００４／０２０５３６８号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に開示の技術では、計時部において計時している時刻の補正について信頼できない場合がある。すなわち、ある実行空間で実行されているオペレーティングシステムの管理者は、コンピュータシステム全体の管理者とは限らないにも関わらず、当該実行空間内の管理者権限を行使して計時部の時刻を補正してしまうことも、この特許文献１に開示のもののみでは可能となっている。
【０００８】
本発明は上記実情に鑑みて為されたもので、各実行空間や各プロセスごとに異なる時刻情報を設定できるようにしつつ、時刻の取得や補正を安全な方法で実行できる情報処理装置を提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００９】
上記従来例の問題点を解決するための本発明は、情報処理装置であって、時刻情報を管理し、要求に応じて、計時している時刻情報を取得して提供する時刻保持手段と、時刻情報の取得要求を受けて、前記時刻保持手段に対して当該要求を出力して、提供された時刻情報を取得して出力する時刻情報取得手段と、要求元からの要求に応じて、前記時刻取得手段に対して時刻情報の取得要求を出力し、時刻取得手段が出力する時刻情報を取得して、前記要求元に当該取得した時刻情報を提供する時刻情報要求手段と、を含み、前記時刻保持手段と、前記時刻情報取得手段と、前記時刻情報要求手段とが、互いに異なる実行空間において実行されることを特徴としている。
【００１０】
このように、異なる実行空間で、時刻情報の要求、取得、管理の各処理が実現されることで、時刻の取得や補正を安全な方法で実行させることができる。
【００１１】
ここで前記時刻保持手段は、前記計時している時刻情報を基準時刻情報として、予め定められた識別子ごとに、当該基準時刻情報との差に係る差分情報を保持しており、時刻情報が要求されたときに、当該要求の要求元から取得される前記識別子に関連づけられた差分情報と、前記基準時刻情報とに基づいて、提供する時刻情報を演算し、当該演算の結果得られた時刻情報を提供することとしてもよい。このように差分情報を個々の識別子ごとに設定可能とすることで、実行空間やプロセスごとに異なる時刻情報を設定できるようになり、また、基準時刻情報を補正する代わりにこの差分情報を補正すれば、時刻の取得や補正を安全な方法で実行させることができる。
【００１２】
また、本発明の一態様は、情報処理方法であって、互いに内部データへのアクセス不能となっている、第１、第２、第３の実行空間を提供可能な処理要素を備えたコンピュータを用いて、前記第１の実行空間にて、時刻情報を管理し、要求に応じて、計時している時刻情報を取得して提供する処理を実行する工程と、前記第２の実行空間にて、時刻情報の取得要求を受けて、前記第１の実行空間で実行される処理に対して当該要求を出力して、当該処理から提供された時刻情報を取得して出力する処理を実行する工程と、前記第３の実行空間にて、要求元からの要求に応じて、前記第２の実行空間で実行される処理に対して時刻情報の取得要求を出力し、当該処理が出力する時刻情報を取得して、前記要求元に当該取得した時刻情報を提供する処理を実行する工程と、を含むことを特徴としている。
【発明を実施するための最良の形態】
【００１３】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置は、例えばパーソナルコンピュータや、家庭用ゲーム機などであり、図１に示すように、制御部１１と、記憶部１２と、入出力部１３とを含み、制御部１１と記憶部１２とはメモリバスＭＢを介して接続され、制御部１１と入出力部１３とは入出力バスＩＯＢを介して接続されている。また入出力部１３には、外部記憶部１４と、操作部１５と、表示制御部１６と、時刻管理ユニット１７とが接続されている。制御部１１は、図２に示すように、メインプロセッシングユニット（ＭＰＵ）２１と、メモリコントローラ２２と、入出力コントローラ２３と、少なくとも一つのサブプロセッサユニット２４（図２では、１つのサブプロセッサユニット２４を図示。）とを含み、これらは互いにプロセッサバス（ＰＢ）を介して接続されている。また、各サブプロセッサユニット２４は、ローカルメモリ部３１と、副演算素子（ＳＰ）３２とを含んで構成される。
【００１４】
制御部１１のＭＰＵ２１は、記憶部１２に格納されたプログラムから、個々のインストラクション（プログラムに含まれる命令）を、メモリコントローラ２２を介して読み出し、実行する。本実施の形態では、このＭＰＵ２１は、プログラムのインストラクションにサブプロセッサユニット２４の起動指示があったときには、サブプロセッサユニット２４に対してプログラムのロード命令を出力してサブプロセッサユニット２４を起動する。このサブプロセッサユニット２４の起動の処理については後に述べる。
【００１５】
また、本実施形態では、このＭＰＵ２１はオペレーティングシステム（ＯＳ）や、アプリケーションプログラムを実行するものとする。
【００１６】
メモリコントローラ２２は、メモリバス（ＭＢ）を介して記憶部１２に接続されている。このメモリコントローラ２２は、ＭＰＵ２１や、サブプロセッサユニット２４から入力されるデータの読み出し要求に従って記憶部１２からデータを読み込み、要求元のＭＰＵ２１やサブプロセッサユニット２４に出力する。また、このメモリコントローラ２２は、ＭＰＵ２１やサブプロセッサユニット２４から入力されるデータの記録要求に従って記憶部１２にデータを書き込む。
【００１７】
入出力コントローラ２３は、入出力部１３に接続されている。この入出力コントローラ２３は、ＭＰＵ２１やサブプロセッサユニット２４からデータの出力指示があったときに、この指示に従い、入出力部１３に対して、外部記憶部１４や表示制御部１６等のうちからデータの出力先を指定するとともに、指示の対象となったデータを、入出力部１３に出力する。また、外部記憶部１４や操作部１５等からのデータが入出力部１３から入力されると、当該データを出力先となるＭＰＵ２１またはサブプロセッサユニット２４に出力する。
【００１８】
サブプロセッサユニット２４は、ローカルメモリ部３１および副演算素子３２を有する。ローカルメモリ部３１は、記憶素子であり、副演算素子３２のワークメモリとして動作する。副演算素子３２は、プログラム実行素子であり、記憶部１２から読み出され、ローカルメモリ部３１に格納したプログラムに従って動作する。
【００１９】
各サブプロセッサユニット２４は、それぞれ独立した実行空間を持ち、必要に応じて互いの実行空間を参照することで、効率的にプログラムを実行することができる。
【００２０】
本実施形態では、複数のサブプロセッサユニット２４のうちの少なくとも１つのサブプロセッサユニット２４は、セキュリティプロセッサユニットとして動作可能である。このセキュリティプロセッサユニットは、他のユニット（ＭＰＵ２１や他のサブプロセッサユニット２４など）から自己の実行空間へのアクセスを制限可能な仕組みを有する。
【００２１】
アクセス制限可能な仕組みとして、以下に一例を説明する。
【００２２】
セキュリティプロセッサユニットは、認証情報を保持する。サブプロセッサユニット２４は、セキュリティプロセッサユニットとして動作している状態では、自己の実行空間に対して他のユニットからアクセスされると、認証情報を用いてアクセス元の認証を行い、この認証に成功すると、当該アクセス元から自己の実行空間へのアクセスのみを許可する。認証に失敗すると、サブプロセッサユニット２４は、自己の実行空間へのアクセスを拒否する。
【００２３】
また、セキュリティプロセッサユニットは、鍵情報を保持してもよく、アクセス許可したアクセス元と通信する際、鍵情報を用いて送受信データを暗号化・復号してもよい。復号されたデータは、ローカルメモリ部３１に格納される。このような場合、アクセス元は、セキュリティプロセッサユニットが保持する鍵情報に対応した鍵情報を有する。
【００２４】
サブプロセッサユニット２４は、セキュリティプロセッサユニット専用のプロセッサユニットであってもよく、また、通常時は、単なる演算ユニットとして動作し、ＭＰＵ２１から特定の命令を受けた場合のみセキュリティプロセッサユニットとして動作するプロセッサユニットであってもよい。
【００２５】
記憶部１２は、ＲＡＭ（Random Access Memory）等の記憶素子を含んで構成され、制御部１１のＭＰＵ２１やサブプロセッサユニット２４によって実行されるプログラムを保持する。また、この記憶部１２は、ＭＰＵ２１やサブプロセッサユニット２４が処理を行うときに必要となるデータを保持するワークメモリとしても動作する。
【００２６】
入出力部１３は、いわゆるブリッジチップであり、制御部１１から入力される指示に従って、制御部１１が出力する信号（出力信号）の出力先を選択し、当該選択した出力先に対して、制御部１１の出力信号を選択的に出力する。また、入出力部１３は、外部記憶部１４や操作部１５から入力される信号を制御部１１に出力する。
【００２７】
外部記憶部１４は、例えばBlu-ray Discや、ＤＶＤ等の外部記録媒体から、記録されている情報を読み取って、入出力部１３を介して制御部１１に出力する。操作部１５は、例えばゲーム用のコントローラ、マウス、キーボード等であり、ユーザの操作を受け入れて、当該操作の内容を制御部１１に出力する。
【００２８】
表示制御部１６は、グラフィックス処理ボード等であり、制御部１１から入力される指示に従って、画像を描画し、当該描画した画像の情報を外部に接続されているディスプレイ（家庭用テレビジョン装置等）に出力して、表示させる。
【００２９】
時刻管理ユニット１７は、図３に例示するように、マイクロプロセッサ４１と、不揮発性メモリ４２と、リアルタイムクロック（ＲＴＣ）４３とを含んで構成され、これらは互いにバス（コントローラ内部バス）を介して接続されている。この時刻管理ユニット１７は、耐タンパ性を有するハードウエアとして実装されてもよい。例えば、不揮発性メモリ４２において保持する差分情報を暗号化しておき、差分情報を取得したときにマイクロプロセッサ４１が復号することとしてもよいし、また、チップ表面が露出されると記憶内容が消滅するメモリチップを用いて実現してもよい。さらに、信号を読み出すためのプローブを取り付けたときに動作しなくなるよう回路を構成してもよい。かかる耐タンパ設計については、広く知られているので、ここでの詳細な説明を省略する。
【００３０】
マイクロプロセッサ４１は、内蔵するメモリに格納されたプログラムに従って動作する。このマイクロプロセッサ４１は、入出力部１３を介してデータを授受する相手方との間で相互認証の処理を実行し、相互認証が行なわれたときに、相手方から入力される要求に応じて、後に説明する時刻取得処理や、時刻補正処理を実行する。
【００３１】
不揮発性メモリ４２は、スタティックＲＡＭ等であり、情報処理装置の電源がオフとなっている間も、記憶内容を保持する。この不揮発性メモリ４２は、図４に示すように、時刻要求元識別子（ＩＤ）と、補正分を表す差分情報とを関連づけて保持している。
【００３２】
ＲＴＣ４３は、時刻及び日時を計時しており、マイクロプロセッサ４１からの要求に応答して、マイクロプロセッサ４１に対して、計時している時刻や日時の情報を出力する。またこのＲＴＣ４３は、図示しない内蔵バッテリによってバックアップされ、情報処理装置自体の電源がオフとなっている間も、計時動作が停止しないようになっている。
【００３３】
この時刻管理ユニット１７は、以上の構成を備え、後に説明するように、時刻情報の提供や補正を要求する要求元との間で相互認証の処理を行い、相互認証に成功すると、要求元から入力される要求に応じて、時刻情報を提供し、又は提供する時刻情報を補正する処理を行う。
【００３４】
本実施の形態では、制御部１１のＭＰＵ２１にてアプリケーションプログラムが複数実行される。アプリケーションのうち、時刻情報を要求するアプリケーションは、時刻要求元識別子を保持している。この時刻要求元識別子は、アプリケーションごとに異なってもよいし、少なくとも一部のアプリケーションが共通の時刻要求元識別子を用いてもよい。
【００３５】
次に、本発明の実施の形態に係る情報処理装置の機能的構成について説明する。本実施の形態の情報処理装置は、機能的には、図５に示すように、時刻情報を管理するユニットである時刻保持部５１と、時刻情報を取得／補正するためのユニットである時刻情報取得部５２と、時刻情報の取得や補正を要求するためのユニットである時刻管理プロセス実行部５３と、要求元となるアプリケーションの実行などを行なうユニットであるアプリケーション実行部５４とを含んで構成される。
【００３６】
本実施の形態における特徴の一つは、時刻保持部５１と、時刻情報取得部５２と、時刻管理プロセス実行部５３とがそれぞれ、時刻管理ユニット１７と、セキュリティプロセッサユニットとして動作するサブプロセッサユニット２４と、ＭＰＵ２１とによって実現され、互いに異なる実行空間でそれぞれの機能を実現する処理が行なわれており、相互に、プログラム実行に関わる内部データへのアクセスが制限されていることである。この形態によって、時刻の補正を安全な方法で実行でき、また、時刻要求元識別子を用いて、実行空間や各プロセスごとに異なる時刻情報を設定できるようにしている。
【００３７】
ここで時刻保持部５１は、相互認証部６１と、時刻管理部６２と、差分情報保持部６３とを含んで構成される。本実施の形態では、これら相互認証部６１、時刻管理部６２は時刻管理ユニット１７のマイクロコンピュータ４１によってソフトウエア的に実現される。また、差分情報保持部６３は、不揮発性メモリ４２によって実現される。
【００３８】
相互認証部６１は、時刻情報取得部５２として動作するサブプロセッサユニット２４との間で相互認証の処理を行う。そして相互認証に失敗した場合には、続いて時刻情報取得部５２から入力される時刻情報に係る要求に応答しない。これによりハードウエアの置き換えなどの侵害があった場合に、時刻情報が不正に書き換えられるなどの不正を防止できる。なお、この相互認証の方式としては、例えばチャレンジ・レスポンス方式など、広く知られた方式を用いることができる。
【００３９】
また、相互認証部６１は時刻情報取得部５２として動作するサブプロセッサユニット２４との間での相互認証に成功すると、時刻管理部６２に対し時刻情報取得部５２からの要求に応答するべき旨の信号（応答許可信号）を出力する。
【００４０】
時刻管理部６２は、相互認証部６１から応答許可信号が入力されない間は、時刻情報取得部５２から入力される、時刻情報に関わる要求（時刻情報の取得や補正の要求）を無視する。またこの時刻管理部６２は、相互認証部６１から応答許可信号が入力されると、時刻情報取得部５２から入力される、時刻情報に関わる要求に応答する。ここで、時刻情報取得部５２からは、要求元を識別する識別子として予め定められた情報（時刻要求元識別子）と、要求の内容（ここでの例では時刻情報の提供または補正のいずれか）とが入力される。
【００４１】
時刻管理部６２は、要求の内容が時刻情報の提供の要求であれば、ＲＴＣ４３から計時している時刻の情報Ｔrawを取得し、ワークメモリ（マイクロプロセッサ４１に内蔵されているメモリ上に確保された領域）に記憶する。また、時刻管理部６２は、差分情報保持部６３として動作する不揮発性メモリ４２から、入力された時刻要求元識別子に関連づけられている差分情報ΔＴidを取得し、ワークメモリに格納した時刻Ｔrawの情報にこの差分情報を加算して、補正時刻Ｔ＝Ｔraw＋ΔＴidを得て、この補正時刻Ｔを時刻情報取得部５２として動作するサブプロセッサユニット２４に対して送出する。
【００４２】
また要求の内容が時刻情報の補正の要求であれば、時刻管理部６２は、時刻情報取得部５２から補正後の差分情報ΔＴidの入力を受けて、差分情報保持部６３として動作する不揮発性メモリ４２に格納されている差分情報のうち、入力された時刻要求元識別子に関連づけられている差分情報を、入力された差分情報ΔＴidで上書きする。
【００４３】
なお、要求元であるサブプロセッサユニット２４（時刻情報取得部５２）と、時刻管理ユニット１７（時刻保持部５１）との間で授受される情報は、暗号化されていてもよい。
【００４４】
また、時刻情報取得部５２は、サブプロセッサ起動／終了処理部６５と、相互認証部６６と、要求部６７とを含み、時刻管理プロセス実行部５３は、時刻情報アクセス管理部７１と、サブプロセッサ管理部７２とを含む。さらにアプリケーション実行部５４は、ＯＳ実行部７５と、少なくとも一つのアプリケ−ションプロセス実行部７６ａ，７６ｂ…とを含む。
【００４５】
本実施の形態では、時刻情報取得部５２は、サブプロセッサユニット２４によってソフトウエア的に実現される。ここでサブプロセッサ起動終了処理部６５は、時刻管理プロセス実行部５３として動作するＭＰＵ２１からの命令を受けて、サブプロセッサユニット２４をセキュリティプロセッサユニットとして起動する。
【００４６】
そしてサブプロセッサユニット２４の副演算素子３２は、相互認証部６６及び要求部６７としての機能を実現するプログラム（暗号化されている）を記憶部１２から取得する。このプログラムは、副演算素子３２により認証され、認証に成功すると、副演算素子３２によって復号されて、ローカルメモリ部３１に格納される。副演算素子３２は、格納されたこのプログラムの実行を開始し、これにより相互認証部６６及び要求部６７として動作可能となる。
【００４７】
相互認証部６６は、時刻保持部５１の相互認証部６１との間で相互認証処理を実行する。そして相互認証処理に成功したときに、その旨の信号を要求部６７に出力する。
【００４８】
要求部６７は、相互認証部６６から相互認証に成功した旨の信号の入力を受けると、時刻管理プロセス実行部５３から入力される時刻要求元識別子と要求の内容とを時刻保持部５１に出力する。この要求部６７は、時刻情報の取得（提供）の要求を出力したときには、時刻保持部５１から時刻情報（時刻要求元識別子に対応する差分情報で補正された補正時刻）Ｔの入力を受け入れる。要求部６７は、時刻保持部５１から入力される当該時刻情報Ｔを、時刻管理プロセス実行部５３に出力する。
【００４９】
時刻管理プロセス実行部５３はＭＰＵ２１によってソフトウエア的に実現できる。この時刻管理プロセス実行部５３は、時刻情報アクセス管理部７１及びサブプロセッサ管理部７２としての動作を実現するプログラムモジュールを、ＭＰＵ２１が別途実行しているアプリケーションから、その内部データにアクセス不能な状態で（割り当てられたメモリ領域やレジスタ等に他のアプリケーションからアクセスを禁止した状態で）実行する。
【００５０】
時刻情報アクセス管理部７１は、アプリケーション実行部５４において実行されるアプリケーションのプロセスからオペレーティングシステムを介して、時刻要求元識別子と、時刻情報に関わる要求（時刻情報の取得または補正の要求）とを受けると、サブプロセッサ管理部７２に対してサブプロセッサユニット２４をセキュリティプロセッサユニットとして起動して、時刻情報取得部５２として動作させるべき旨の指示とともに、入力された時刻要求元識別子と、時刻情報に関わる要求とを出力する。
【００５１】
サブプロセッサ管理部７２は、サブプロセッサユニット２４の一つに対して起動するべき旨の指示とともに、時刻情報取得部５２として動作させるためのプログラムをロードするべき旨の指示とを出力する。そして当該サブプロセッサユニット２４が時刻情報取得部５２として動作するようになると、当該サブプロセッサユニット２４に対して時刻要求元識別子と、時刻情報に関わる要求とを出力する。ここで、時刻情報アクセス管理部７１は、時刻要求元識別子を受けると、該識別子が正当なものであるか否かを判定し、正当な識別子であると、サブプロセッサ管理部７２に対して指示を出力し、正当な識別子でないと、ＯＳに対して時刻管理情報取得拒否の旨を取得する。
【００５２】
サブプロセッサ管理部７２は、ここで時刻情報に関わる要求として時刻情報の取得の要求を出力したときには、時刻情報取得部５２から時刻情報（時刻要求元識別子に対応する差分情報で補正された補正時刻）Ｔの入力を受けることとなる。そしてサブプロセッサ管理部７２は、要求元であるアプリケーションのプロセスに対して、当該入力された時刻情報Ｔを出力する。
【００５３】
アプリケーション実行部５４のＯＳ実行部７５は、ＭＰＵ２１がオペレーティングシステムのプログラムを実行することで実現される。このＯＳ実行部７５は、アプリケーションの実行開始を指示する操作が行なわれた旨の情報が入力されると、指示されたアプリケーションのプログラムを記憶部１２（または外部記憶部１４）から読み出し、その実行を開始する。ここで実行される各アプリケーションにより、各アプリケ−ションプロセス実行部７６が実現される。
【００５４】
また、このＯＳ実行部７５は、アプリケーションの実行に関わるプロセス実行スケジューリングや、メモリ管理等、一般的なオペレーティングシステムと同様の動作をしている。ここではＯＳ実行部７５は、アプリケーションプロセスから、時刻要求元識別子とともに時刻情報に関わる要求の入力を受けて、時刻管理プロセス実行部５３に対して時刻要求元識別子とともに時刻情報に関わる要求を出力する。また、このＯＳ実行部７５は、時刻管理プロセス実行部５３から時刻情報の入力を受けると、要求元となったアプリケーションプロセスにその時刻情報を出力する。
【００５５】
アプリケ−ションプロセス実行部７６は、アプリケーションプログラムに従って動作している。このアプリケーションプロセス実行部７６は、アプリケーションプログラムの実行の過程で時刻情報が必要となったときには、予め定められている時刻要求元識別子とともに、時刻情報の取得要求をＯＳ実行部７５に出力する。そして、ＯＳ実行部７５を介して取得された時刻情報の入力を受ける。また、このアプリケーションプロセス実行部７６は、アプリケーションプログラムの実行の過程で、予め定められている時刻要求元識別子に関連づけられている差分情報を補正して、時刻情報を補正することとなったときには、時刻要求元識別子とともに、差分情報を含む時刻の補正要求を出力する。
【００５６】
次に本実施の形態の情報処理装置の動作について説明する。本実施の形態では、アプリケーションプログラムは、それぞれ予め時刻要求元識別子の情報が関連づけられて記憶部１２や外部記憶部１４に保持されているものとする。
【００５７】
この情報処理装置は、その起動当初において、制御部１１のＭＰＵ２１が、記憶部１２からオペレーティングシステムのプログラムを読み出して、その実行を開始する。また、利用者は、操作部１５における操作により、例えば外部記憶部１４にセットされたＤＶＤ−ＲＯＭ等に格納されているゲームアプリケーションなどを起動するよう指示する。
【００５８】
ＭＰＵ２１は、オペレーティングシステムの動作として、このアプリケーション起動指示に応答して、外部記憶部１４に格納されているプログラムを記憶部１２へ複写し、その実行を開始する。このとき、ＭＰＵ２１は、オペレーティングシステムの処理として、この実行を開始したゲームプログラムのプロセスを、他のアプリケーションのプロセスとともに並列的に（時分割的に）実行する。
【００５９】
ここで時刻の取得動作について図６を用いて説明する。ＭＰＵ２１が、アプリケーションプログラムの実行の過程で、時刻を取得するためのシステムコールの発行など、時刻の取得を要求するインストラクションが実行されると（Ｓ１１）、ＭＰＵ２１は、オペレーティングシステムの動作として、時刻管理プロセス実行部５３を実現するプログラムが起動された状態にあるか否かを調べる（Ｓ１２）。
【００６０】
ここで時刻管理プロセス実行部５３を実現するプログラムが起動された状態になければ、ＭＰＵ２１は、記憶部１２から当該プログラムをロードして起動する（Ｓ１３）。なお、このプログラムは、記憶部１２において暗号化されて格納されていてもよい。この場合、ＭＰＵ２１のオペレーティングシステムは、当該プログラムを復号してから、その実行を開始する。
【００６１】
処理Ｓ１２において、時刻管理プロセス実行部５３を実現するプログラムが起動された状態にある場合、または処理Ｓ１３での起動が完了すると、ＭＰＵ２１は、時刻情報アクセス管理部７１の処理として、処理Ｓ１１においてアプリケーションプログラムが実行したインストラクションに基づき、当該アプリケーションに関連づけられている時刻要求元識別子（ＩＤ）と、時刻情報の取得要求とをワークメモリに保持し、当該時刻要求元識別子が正当なものであるか否かを判断する。ここで時刻要求元識別子が正当なものでなければオペレーティングシステムに対して時刻情報取得拒否の旨を出力する（Ｓ１５）。また時刻要求元識別子が正当なものと判断されると、ＭＰＵ２１は、サブプロセッサユニット２４の一つを起動させるとともに、時刻情報取得部５２として動作させるべき旨の命令を出力する（Ｓ１６）。
【００６２】
この命令の入力を受けたサブプロセッサユニット２４は起動して、記憶部１２に格納されている、時刻情報取得部５２に係るプログラムを記憶部１２からローカルメモリ部３１に読み込む。このときサブプロセッサユニット２４は予め設定されている認証・復号鍵を用いて、記憶部１２から読み出したプログラム（暗号化された状態にある）を認証し、認証に成功すると、当該プログラムを復号して、ローカルメモリ部３１に格納する（Ｓ１７）。
【００６３】
こうしてサブプロセッサユニット２４がセキュリティプロセッサユニットとして起動されると、ＭＰＵ２１は、時刻管理プロセス実行部５３の処理として、そのワークメモリに保持した時刻要求元識別子と、時刻情報の取得要求とを起動させたサブプロセッサユニット２４に出力する（Ｓ１８）。
【００６４】
サブプロセッサユニット２４の副演算素子３２は、ローカルメモリ部３１に格納したプログラムの実行を開始し、時刻管理ユニット１７に対して相互認証の要求を行なう（Ｓ１９）。ここで、時刻管理ユニット１７のマイクロプロセッサ４１が内蔵するメモリに格納されたプログラムに従って相互認証の処理を実行する。ここで相互認証に成功すると、ＭＰＵ２１から受け入れた時刻要求元識別子と、時刻情報の取得要求とを、マイクロプロセッサ４１に対して送出する（Ｓ２０）。ここでは、制御部１１と、時刻管理ユニット１７とが異なるハードウエアとして実装されることとしているので、これら時刻要求元識別子と時刻情報の取得要求とは制御部１１のパッケージの外部へ出力されることになる。そこで、当該情報の漏洩を防止するため、これらの情報は、暗号化されてもよい。なお、処理Ｓ１７の相互認証において制御部１１と、時刻管理ユニット１７との間で授受される情報についても同様に暗号化されてもよい。
【００６５】
時刻管理ユニット１７のマイクロプロセッサ４１は、ＲＴＣ４３が計時している時刻の情報Ｔrawを取得し（Ｓ２１）、ワークメモリ（マイクロプロセッサ４１に内蔵されているメモリ上に確保された領域）に記憶する。またマイクロプロセッサ４１は、サブプロセッサユニット２４から入力される時刻要求元識別子に関連づけて不揮発性メモリ４２に格納されている差分情報ΔＴidを取得し（Ｓ２２）、ワークメモリに格納した時刻Ｔrawの情報にこの差分情報を加算して、補正時刻Ｔ＝Ｔraw＋ΔＴidを演算する（Ｓ２３）。そして、この補正時刻Ｔを、時刻情報取得部５２として動作するサブプロセッサユニット２４に対して出力する（Ｓ２４）。この補正時刻Ｔもまた、暗号化されて制御部１１のサブプロセッサユニット２４に出力されてもよい。
【００６６】
サブプロセッサユニット２４は、この補正時刻Ｔの情報を、ＭＰＵ２１の時刻管理プロセス実行部５３を実現するプログラム側へ出力する（Ｓ２５）。ＭＰＵ２１の時刻管理プロセス実行部５３は、当該補正時刻Ｔの情報を、要求元であるアプリケーションプログラムに対して出力する（Ｓ２６）。
【００６７】
時刻情報取得部５２として動作するサブプロセッサユニット２４では、この処理の後、処理を終了することして、ローカルメモリ部３１の内容を初期化して消去し、プログラムの実行を停止してもよい。
【００６８】
また、時刻の補正動作について図７を用いて説明する。ＭＰＵ２１が、アプリケーションプログラムの実行の過程で、時刻を取得するためのシステムコールの発行など、時刻の補正を要求する命令が実行されると（Ｓ３１）、ＭＰＵ２１は、オペレーティングシステムの動作として、時刻管理プロセス実行部５３を実現するプログラムが起動された状態にあるか否かを調べる（Ｓ３２）。
【００６９】
ここで時刻管理プロセス実行部５３を実現するプログラムが起動された状態になければ、ＭＰＵ２１は、記憶部１２から当該プログラムをロードして起動する（Ｓ３３）。なお、このプログラムは、記憶部１２において暗号化されて格納されていてもよい。この場合、ＭＰＵ２１のオペレーティングシステムは、当該プログラムを復号してから、その実行を開始する。
【００７０】
処理Ｓ３２において、時刻管理プロセス実行部５３を実現するプログラムが起動された状態にある場合、または処理Ｓ３３での起動が完了すると、ＭＰＵ２１は、時刻管理プロセス実行部５３の処理として、処理Ｓ３１においてアプリケーションプログラムが実行したインストラクションに基づき、当該アプリケーションに関連づけられている時刻要求元識別子と、補正後の差分情報とともに、時刻情報の補正要求をワークメモリに保持し、当該時刻要求元識別子が正当なものであるか否かを判断する。ここで時刻要求元識別子が正当なものでなければオペレーティングシステムに対して時刻情報取得拒否の旨を出力する（Ｓ３４）。また時刻要求元識別子が正当なものと判断されると、ＭＰＵ２１は、サブプロセッサユニット２４の一つを起動させるとともに、時刻情報取得部５２として動作させるべき旨の命令を出力する（Ｓ３５）。
【００７１】
この命令の入力を受けたサブプロセッサユニット２４は、起動して、記憶部１２に格納されている、時刻情報取得部５２に係るプログラムを、記憶部１２から読み込む。このときサブプロセッサユニット２４は予め設定されている認証・復号鍵を用いて、記憶部１２から読み出したプログラム（暗号化された状態にある）を認証し、認証に成功すると、当該プログラムを復号して、ローカルメモリ部３１に格納する（Ｓ３６）。
【００７２】
こうしてサブプロセッサユニット２４が起動されると、ＭＰＵ２１は、時刻管理プロセス実行部５３の処理として、そのワークメモリに保持した時刻要求元識別子と、補正後の差分情報と、時刻情報の補正要求とを、起動させたサブプロセッサユニット２４に出力する（Ｓ３７）。
【００７３】
サブプロセッサユニット２４の副演算素子３２は、ローカルメモリ部３１に格納したプログラムの実行を開始し、時刻管理ユニット１７に対して相互認証の要求を行なう（Ｓ３８）。ここで、時刻管理ユニット１７のマイクロプロセッサ４１が内蔵するメモリに格納されたプログラムに従って相互認証の処理を実行する。ここで相互認証に成功すると、ＭＰＵ２１から受け入れた時刻要求元識別子と、補正後の差分情報と、時刻情報の補正要求とを、マイクロプロセッサ４１に対して送出する（Ｓ３９）。ここでは、制御部１１と、時刻管理ユニット１７とが異なるハードウエアとして実装されることとしているので、これら時刻要求元識別子と差分情報と、時刻情報の補正要求とは制御部１１のパッケージの外部へ出力されることになる。そこで、当該情報の漏洩を防止するため、これらの情報は、暗号化されてもよい。なお、処理Ｓ３７の相互認証において制御部１１と、時刻管理ユニット１７との間で授受される情報についても同様に暗号化されてもよい。
【００７４】
時刻管理ユニット１７のマイクロプロセッサ４１は、サブプロセッサユニット２４から入力される時刻要求元識別子に関連づけて不揮発性メモリ４２に格納されている差分情報を、入力された差分情報で上書きする（Ｓ４０）。
【００７５】
時刻情報取得部５２として動作するサブプロセッサユニット２４では、この処理の後、処理を終了することして、ローカルメモリ部３１の内容を初期化して消去し、プログラムの実行を停止してもよい。
【００７６】
このように本実施の形態によると、時刻要求元識別子とそれに関連づけられた差分情報とを用いて、時刻要求元識別子ごとに異なる時刻の情報提供を可能とし、また、時刻情報の要求、取得、管理をそれぞれ実行する時刻保持部５１と、時刻情報取得部５２と、時刻管理プロセス実行部５３とがそれぞれ個別に、互いに異なる実行空間で処理されることとなっており、このことで時刻の取得、補正を安全な方法で実行できる。
【００７７】
また、ここまでの説明では、時刻要求元識別子に関連づけて差分情報を記録しておき、補正時刻の演算は、要求元に係る時刻要求元識別子に関連づけられた差分情報を、ＲＴＣが計時する時刻に加算して行なうこととしていたが、これに限られるものではなく、比や、比と差との組み合わせ、その他の関数や定数を用いて補正を行なってもよい。この場合は、差分情報に代えて、これら補正パラメータの情報が時刻要求元識別子に関連づけて保持されることとなる。
【００７８】
またここではオペレーティングシステムは一つだけである場合を例として説明したが、これに限らず、オペレーティングシステムが複数あってもよい。この場合に、各オペレーティングシステムごとに時刻要求元識別子を割り当てておけば、オペレーティングシステムごとに異なる時刻情報を設定できる。
【００７９】
さらに、本実施の形態の説明では、時刻保持部５１が提供する補正後の時刻情報は、時刻情報取得部５２、時刻管理プロセス実行部５３を介してアプリケーション実行部５４における要求元に提供される例を示したが、時刻情報の提供方法は、これに限らず、例えば記憶部１２の所定格納領域に格納して、要求元が当該格納領域を参照することとするなど、種々の方法を採用できる。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施の形態に係る情報処理装置の例を表す構成ブロック図である。
【図２】本発明の実施の形態に係る情報処理装置の制御部の例を表す構成ブロック図である。
【図３】本発明の実施の形態に係る情報処理装置における時刻の計時部の例を表すブロック図である。
【図４】本発明の実施の形態に係る情報処理装置が保持する差分情報の例を表す説明図である。
【図５】本発明の実施の形態に係る情報処理装置の一例を表す機能ブロック図である。
【図６】本発明の実施の形態に係る情報処理装置の時刻取得動作の例を表す流れ図である。
【図７】本発明の実施の形態に係る情報処理装置の時刻補正動作の例を表す流れ図である。
【符号の説明】
【００８１】
１１  制御部、１２  記憶部、１３  入出力ユニット、１４  外部記憶部、１５  操作部、１６  表示部、１７  時刻管理ユニット、２１  メインプロセッシングユニット、２２  メモリコントローラ、２３  入出力コントローラ、２４  サブプロセッサユニット、３１  ローカルメモリ部、３２  副演算素子、４１  マイクロプロセッサ、４２  不揮発性メモリ、４３  リアルタイムクロック、５１  時刻保持部、５２  時刻情報取得部、５３  時刻管理プロセス実行部、５４  アプリケーション実行部、６１  相互認証部、６２  時刻管理部、６３  差分情報保持部、６５  サブプロセッサ起動／終了処理部、６６  相互認証部、６７  要求部、７１  時刻情報アクセス管理部、７２  サブプロセッサ管理部、７５  ＯＳ実行部、７６  アプリケ−ションプロセス実行部。
【図１】
2007286699.tif 000003
【図２】
2007286699.tif 000004
【図３】
2007286699.tif 000005
【図４】
2007286699.tif 000006
【図５】
2007286699.tif 000007
【図６】
2007286699.tif 000008
【図７】
2007286699.tif 000009