(57)【要約】【課題】OS（オペレーティングシステム）の時計機能が正常な時刻を保持することを実現する。  【解決手段】一実施形態にかかる情報処理装置は、現在時刻を設定しない場合は、所定の基準時刻からの経過時間をカウントし、現在時刻を設定すると、当該現在時刻からの経過時間をカウントする時計部と、記憶装置に格納され、外部装置、又は自装置が付与した時刻情報を有するファイルにアクセスするファイルアクセス部と、前記ファイルアクセス手段を介して、前記ファイルから前記時刻情報を取得し、前記時刻情報を前記時刻部の前記現在時刻に設定する設定部と、を有する。【選択図】図１
2014178257.tif 000002
【特許請求の範囲】
【請求項１】
現在時刻を設定しない場合は、所定の基準時刻からの経過時間をカウントし、現在時刻を設定する場合、当該現在時刻からの経過時間をカウントする時計部と、
記憶装置に格納され、外部装置、又は自装置が付与した時刻情報を有するファイルにアクセスするファイルアクセス部と、
前記ファイルアクセス手段を介して、前記ファイルから前記時刻情報を取得し、前記時刻情報を前記時刻部の前記現在時刻に設定する設定部と、
を有する情報処理装置。
【請求項２】
前記ファイルが有する前記時刻情報は複数あり、
前記設定部は、複数の前記時刻情報を取得し、取得した前記時刻情報のうち最新の時刻を示す時刻情報を前記時計部の現在時刻に設定することを特徴とする
請求項１記載の情報処理装置。
【請求項３】
前記記憶装置に格納された前記ファイルは複数あり、
前記設定部は、前記ファイルアクセス手段を介して、複数の前記ファイルから前記時刻情報を取得し、複数の前記時刻情報のうち最新の時刻を示す時刻情報を前記時計部の現在時刻に設定することを特徴とする
請求項１、又は２記載の情報処理装置。
【請求項４】
前記時刻情報は、前記ファイルのタイムスタンプとして付与されている情報である前記ファイルの最終更新日時、前記ファイルへの最終アクセス日時、又は、前記ファイルの作成日時であることを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記時刻情報は、前記ファイルのボディに含まれる情報であることを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記複数の時刻情報は、前記ファイルのタイムスタンプとして付与されている情報である前記ファイルの最終更新日時、前記ファイルへの最終アクセス日時、前記ファイルの作成日時、又は、前記ファイルのボディに含まれる情報であることを特徴とする請求項２記載の情報処理装置。
【請求項７】
更に、前記記憶装置にアクセスするストレージアクセス部を備え、
前記ファイルアクセス部は、前記ストレージアクセス部を介して前記ファイルにアクセスすることを特徴とする
請求項１記載の情報処理装置。
【請求項８】
前記記憶装置は自装置と通信可能な端末がアクセス可能な装置であり、
自装置は、さらに、前記端末と通信を行う通信インタフェースを備え、
前記ファイルアクセス部は、前記通信インタフェースを介して前記端末と通信して、前記ファイルにアクセスすることを特徴とする
請求項１記載の情報処理装置。
【請求項９】
外部のホスト端末との間で通信可能なホストＩＦを更に備え、
前記設定部は、前記ホスト端末が前記ホストＩＦを介して前記記憶装置のファイルにアクセスを完了したことをきっかけに、前記ファイルアクセス手段を介して、前記ファイルから前記時刻情報を取得することを特徴とする請求項１記載の情報処理装置。
【請求項１０】
外部のホスト端末との間で通信可能なホストＩＦを更に備え、
前記設定部は、前記ホストＩＦが、前記ホスト端末から自装置を取り外すことを許可するメッセージを受け取ることをきっかけに、前記ファイルアクセス手段を介して、前記ファイルから前記時刻情報を取得することを特徴とする請求項１記載の情報処理装置。
【請求項１１】
前記時計部の電源をOFFにする前に、前記設定部は、前記時計部が示す時刻を読み出し、読みだした前記時刻で、複数の前記ファイルのうち一つ以上のファイルの時刻情報を更新することを特徴とする請求項３記載の情報処理装置。
【請求項１２】
現在時刻を設定しない場合は、所定の基準時刻からの経過時間をカウントし、現在時刻を設定すると、当該現在時刻からの経過時間をカウントする時計部の時刻を調整する方法であって、
記憶装置に格納され、外部装置、又は自装置が付与した時刻情報を有するファイルにアクセスするファイルアクセスステップと、
前記ファイルアクセスステップを介して、前記ファイルから前記時刻情報を取得し、前記時刻情報を前記時刻部の前記現在時刻に設定する設定ステップと、
を有する時刻調整方法。
【請求項１３】
現在時刻を設定しない場合は、所定の基準時刻からの経過時間をカウントし、現在時刻を設定すると、当該現在時刻からの経過時間をカウントする時計機能と、
記憶装置に格納され、外部装置、又は自装置が付与した時刻情報を有するファイルにアクセスするファイルアクセス機能と、
前記ファイルアクセス機能を介して、前記ファイルから前記時刻情報を取得し、前記時刻情報を前記時刻機能の前記現在時刻に設定する設定機能と、
を有する時刻調整プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、時刻調整方法、及び時刻調整プログラムに関する。
【背景技術】
【０００２】
近年、組み込みシステムの高度化、高集積化が達成されており、ワンチップの計算機システムが実現されている。ワンチップの計算機システムは、CPU、メインメモリ、及び周辺デバイスと接続するインタフェースなど、を数ミリメートル角のチップに収まるように構成している。このワンチップの計算機システムにオペレーティングシステム（OS）を含むソフトウェアが搭載され、複雑な処理も行えるようになっている。
【０００３】
OSは、時計機能を有する。OSの時計機能は、あらかじめ定められた初期値を起点として、一定時間間隔でカウントアップしていく時計である。ここで、あらかじめ定められた初期値の一例は、ＰＯＳＩＸエポック（協定世界時の１９７０年１月１日）である。OSの時計機能は、計算システムの電源がOFFになると、初期状態に戻ってしまう。したがって、電源OFFにすると、OSの時計機能は、1970年1月1日からカウントし初めてしまい、その結果、でたらめな時刻を示すこととなる。
【０００４】
従来、計算機システムは、OSの時計機能とは別に、電池を内蔵し、ハードウェアで構成されたリアルタイムクロック（RTC）を備えていた。RTCは電池を内蔵しているため、計算機システムの電源状態によらず、時刻を刻み続けることができる。OSの時計機能は、計算機システムが起動する毎に、RTCが示す現在時刻を取得し、自身の時計機能の初期値を設定していた。その結果、OSの時計機能は、正しい時刻を示すことができた。
【０００５】
しかしながら、RTCは、電池等による電源供給が必要であり、サイズが大きい。近年の組み込み機器の小型化により、RTCを搭載できない場合が想定される。この場合、OS起動時に、時計機能に適切な現在時刻を設定できず、時計機能が正常な時刻を示すことができないことになる。OSの時計機能が正常な時刻を示してない場合、動作ログの日時情報、ファイルの作成日時等の情報など、でたらめな日時を付与することとなってしまう。
【０００６】
一方、OSがOSの時計機能を、他の装置の時計の時刻と、通信を通じて同期する手法も開示されている。例えば、NTP（ネットワークタイムプロトコル）、TCP daytimeなどの手法がある。しかしながら、この手法を用いるためには、自装置と相手装置いずれもがこの手法を用いるための通信手段を備えている必要がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−１５７７３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の一側面は、情報処理装置がRTCを備えず、かつ他の機器と時刻同期するための通信手段を有さない場合にも、OS（オペレーティングシステム）の時計機能が正常な時刻を示すことを実現する。
【課題を解決するための手段】
【０００９】
本発明の一側面にかかる情報処理装置は、現在時刻を設定しない場合は、所定の基準時刻からの経過時間をカウントし、現在時刻を設定すると、当該現在時刻からの経過時間をカウントする時計部と、記憶装置に格納され、外部装置、又は自装置が付与した時刻情報を有するファイルにアクセスするファイルアクセス部と、前記ファイルアクセス手段を介して、前記ファイルから前記時刻情報を取得し、前記時刻情報を前記時刻部の前記現在時刻に設定する設定部と、を有する。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態にかかる情報処理装置１００を含むシステムを示す図。
【図２】第１の実施例の情報処理装置２００を含むシステムを示す図。
【図３】フラッシュメモリ２０６上のファイルシステムの構造例。
【図４】図２のシステムの動作シーケンス図。
【図５】第２の実施例の情報処理装置５００を含むシステムを示す図。
【図６】図５のシステムの動作シーケンス図。
【図７】第３の実施例の情報処理装置７００を含むシステムを示す図。
【図８】図７のシステムの動作シーケンス図。
【図９】ホスト端末８００のアクセス完了のトリガ例。
【図１０】第４の実施例の情報処理装置１０００を含むシステムを示す図。
【図１１】図１０のシステムの動作シーケンス図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００１２】
図１は、実施形態にかかる情報処理装置１００を含むシステムを示すブロック図である。
【００１３】
情報処理装置１００は、時刻情報設定部１０１と、時計部１０２と、ファイルアクセス部１０３と、ストレージアクセス部１０４と、外部端末ＩＦ１０５と、を有する。
【００１４】
図１のシステムは、外部端末１１０と、情報処理装置１００と、ストレージ１０６とを、有する。
【００１５】
情報処理装置１００は、ストレージアクセス部１０４によりストレージ１０６（記憶装置）へアクセス可能である。
【００１６】
情報処理装置１００は、外部端末ＩＦ１０５により、外部端末１００と通信可能である。ここで、外部端末１１０はリアルタイムクロック（ＲＴＣ）などを有することで正確な時刻を刻む装置である。情報処理装置１００は、外部端末ＩＦ１０５を介して、外部端末１１０が生成したファイルを受け取る。そして、情報処理装置１００は、受け取ったファイルを、ファイルアクセス部１０３及びストレージアクセス部１０４を用いて、ストレージ１０６に書き込む処理を行う。また、外部端末１１０は、情報処理装置１００の外部ＩＦ１０５、ファイルアクセス部１０３、及びストレージアクセス部１０４を介して、ストレージ１０６のファイルにアクセスする。外部端末１１０は、ファイルを生成する際や、ファイルにアクセスする際に、自装置が有する正確な時刻をファイルに付与する。
【００１７】
ストレージ１０６の詳細については後述するが、例えば、ＨＤＤやＳＳＤ、フラッシュメモリカード等である。ストレージは、ファイルを格納する。ファイルは、外部端末１０５、又は情報処理装置１００自身が付与した時刻情報を有する。時刻情報の詳細は後述する。
【００１８】
時計部１０１は、時計部１０１が電源を得ている（ＯＮにしている）場合に動作し、電源を得ていない（ＯＦＦにしている）場合に動作を停止する。時計部１０１は、ＯＳやファームウェアなど、ソフトで実装される場合が多いが、ハードで実装されていても良い。時計部１０１は、電源をOFFにした後に再起動する場合であって、かつ現在時刻を設定しない場合は、所定の基準時刻からの経過時間を一定時間間隔でカウントアップし、現在時刻を設定すると、当該現在時刻からの経過時間を一定時間間隔でカウントアップする。ここで、所定の基準時刻の一例は、ＰＯＳＩＸエポック（協定世界時の１９７０年１月１日）である。
【００１９】
時刻情報設定部１０１は、ファイルアクセス部１０３及びストレージアクセス部１０４を介してファイルが有する時刻情報を取得し、取得した時刻情報に示される時刻を時計部１０１に対して現在時刻として設定する。ここで、現在時刻とは、時刻情報設定部１０１が設定後、時計部１０１が、カウントアップの起点とする時刻とする。
【００２０】
ファイルアクセス部１０３は、ストレージインタフェース部１０４を介して、ファイルにアクセスする。ここで、ファイルへのアクセスとは、例えば、ファイルへの書き込み又は、ファイル内の情報の読み込である。ファイルアクセス部１０３は、ファイルを読みこむことで、例えば、ファイル内の時刻情報を取得する。また、ファイルアクセス部１０３は、ファイルへのアクセスを実施した場合に、後述するタイムスタンプを更新する。このタイムスタンプを更新する際、時計部１０１が示す時刻に基づき更新する。
【００２１】
ストレージアクセス部１０４は、ファイルアクセス部１０３の指示により、ストレージ１０６内のファイルにアクセスするインタフェースである。ストレージアクセス部１０４は、例えば、ＨＤＤやＳＳＤ、フラッシュメモリカード等のストレージインタフェースや、ストレージを有する装置と接続できる汎用通信インタフェースである。各々の場合については、以降で具体的に述べる。
【００２２】
本発明の一側面は、情報処理装置100がRTCを備えず、かつ他の機器と時刻同期するための通信手段を有さない場合にも、正確な時刻を刻む外部装置１１０がファイルに付与した時刻情報を、ファイルから取得し、取得した時刻情報の時刻を時計部１１０に設定することで、OS（オペレーティングシステム）の時計機能が正常な時刻を示すことを実現する。
【００２３】
以下では、情報処理装置１００の具体例をいくつかの実施例を用いて説明する。
【００２４】
＜第１の実施例＞
図２には、第１の実施例にかかる情報処理装置２００を含むシステムの構成を示すブロック図である。第１の実施例にかかるシステムでは、図１のストレージ１０６がフラッシュメモリ２０６である場合のシステムである。
【００２５】
情報処理装置２００は、時刻情報設定部１０１と、時計部１０２と、ファイルシステム制御部２０３と、フラッシュメモリ制御部２０４と外部端末ＩＦ１０５とを有する。
【００２６】
ファイルシステム制御部２０３は、図１のファイルアクセス部１０３の一例である。ファイルシステム制御部２０３は、フラッシュメモリ制御部２０４を介して、ローカルストレージであるフラッシュメモリ２０６内のファイルにアクセスする。ここで、ファイルへのアクセスとは、例えば、ファイルへの書き込み又は、ファイル内の情報の読み込みである。ファイルシステム制御部２０３は、例えば、ファイル内の時刻情報を取得する。
【００２７】
フラッシュメモリ制御部２０４は、図１のストレージアクセス部１０４の一例である。フラッシュメモリ制御部２０４は、ファイルシステム制御部２０３の指示により、フラッシュメモリ２０６にアクセスする。
【００２８】
時刻情報設定部１０１は、ファイルシステム制御部２０３及びフラッシュメモリ制御部２０４を介してファイルが有する時刻情報を取得し、取得した時刻情報に示される時刻を時計部１０１に対して現在時刻として設定する。ここで、時刻情報は、例えば、ファイルのタイムスタンプとして付与されている情報（ファイルの最終更新日時、ファイルへの最終アクセス日時、又は、ファイルの作成日時）である。また、時刻情報のその他の例は、ファイルのボディに含まれる時刻情報がある。時刻情報設定部１０１は、ファイルのタイムスタンプに付与されている時刻情報及びボディに含まれる時刻情報共に取得しても良い。時刻情報設定部１０１は、複数の時刻情報（例えば、ファイルの最終更新日時、ファイルへの最終アクセス日時、ファイルの作成日時、ファイルのボディに含まれる時刻情報のうちの複数の情報）を取得した場合は、取得した複数の時刻情報のうち最新の時刻を有する時刻情報を時計部１０２の現在時刻に設定することが好ましい。また、時刻情報設定部１０１は、フラッシュメモリ２０６に複数のファイルがある場合に、ファイルシステム制御部２０３を介して、複数のファイルの時刻情報を取得しても良い。時刻情報設定部１０１は、複数のファイルから複数の時刻情報を取得した場合には、取得した複数の時刻情報のうち最新の時刻を有する時刻情報を時計部１０２の現在時刻に設定することが好ましい。
【００２９】
次に、フラッシュメモリ２０６のファイルシステムの構成を説明する。ファイルシステムの構成を説明することで、ファイルのタイムスタンプ及びファイルのボディに含まれる時刻情報を説明する。図３に、フラッシュメモリ２０６のファイルシステムの構成例を示す。フラッシュメモリ２０６は、フラッシュメモリ２０６の物理的記憶空間を、図３に示す「論理構造」に区分けし、ファイルの管理構造を構成する。このファイルの管理構造のことをファイルシステムという。図３には、論理構造の区分けの代表的な例を示している。図３の例では、論理構造の区分けは、マスターブートレコード、ファイルアロケーションテーブル、データブロックの３つに分けされる。
【００３０】
マスターブートレコードは、情報処理装置１００及びフラッシュメモリ２０６を含むシステムの起動に必要なプログラムコードを保持する領域である。
【００３１】
ファイルアロケーションテーブルは、データブロック内のセクタ（複数セクタをクラスタという単位にまとめて管理する）の使用／未使用を記載する領域である。
【００３２】
データブロックは、ディレクトリエントリやファイルボディを保持する領域である。
【００３３】
ディレクトリエントリとは、ディレクトリ内部に保持されるファイルの情報やディレクトリ内部に保持されるディレクトリの情報を保持するための管理単位である。ファイルの情報やディレクトリの情報とは、ファイル名、ファイル属性、サイズ、タイムスタンプ、ファイルボディの先頭クラスタなどである。ファイルシステムの種類により、他の情報をさまざま保持する場合がある。ディレクトリには、ツリーの先頭のルートディレクトリがあり、その下にツリー構造にディレクトリが構成される。図３の例では、/.ctrl/hogehogeというファイルがストレージ上に保持されている場合の、ルートディレクトリ（/のこと）と、.ctrlディレクトリ、hogehogeファイルが構成されているところを示している。ファイル属性は、ファイルシステムの種類により既定の値が入る。図の例では、0x10はディレクトリであることを示している。0x0は特に属性がない（ファイルである）ことを示している。サイズは、ファイルの場合はファイルボディのデータ長を示す。ディレクトリの場合は0で固定である場合を例にしている。
【００３４】
タイムスタンプは、代表的には、作成日時、最終更新日時、最終アクセス日時がある。作成日時とは、ファイル、あるいは、ディレクトリが作成された時点の日時である。
【００３５】
最終更新日時は、ファイルボディあるいはディレクトリエントリが更新された時点の日時である。
【００３６】
最終アクセス日時は、ファイルボディ、あるいは、ディレクトリエントリがアクセスされた（例えば、読み込んだ）時点の日時である。
【００３７】
データブロックには、ディレクトリエントリにエントリされたファイル毎に、ファイルボディが記憶される。ここで、ファイルボディとは、画像データや文書データなどのデータである。尚、詳細は後述するが、ファイルボディが時刻情報を保持する場合もある。
【００３８】
図４は、図２のシステムの動作シーケンスを示す図である。
【００３９】
図２の情報処理装置２００及びフラッシュメモリ２０６からなるシステムに投入された電源などをトリガ（Ｓ１００）に、時刻情報設定部１０１に動作開始指示が入力される（Ｓ１０１）。時刻情報設定部１０１は、ファイルシステム制御部２０３を介して、ファイルの時刻情報を取得する（Ｓ１０２、Ｓ１０３、Ｓ１０４）。時刻情報設定部１０１は、例えば、stat()システムコールのようなファイルアクセス用のAPIを使用して、ファイルシステム制御部２０３及びフラッシュメモリ制御部２０４を介してファイルの時刻情報を取得する。ファイルの時刻情報は、例えば、ディレクトリエントリに保持されているタイムスタンプ情報が含まれている。時刻情報設定部１０１は、取得した時刻情報の時刻を読み取り、時計部１０２に設定する（Ｓ１０５、Ｓ１０６）。尚、時刻情報設定部１０１は、フラッシュメモリ２０６に記憶されたファイルのうち全てのファイルから時刻情報を取得しても良いし、特定のファイルから時刻情報を取得しても良い。時刻情報設定部１０１は、複数の時刻情報を取得した場合には、最新の時刻を示す時刻情報を用いて時計部１０２の時刻を設定する。
【００４０】
また、時刻情報設定部１０２は、ファイルの時刻情報をファイルボディに記載された時刻情報から取得しても良い。例えば、デジタルカメラの写真の画像ファイルの場合は、画像データに写真の撮影日時が付加されている場合がある。例えば、EXIF（Exchangeable Image File Format）のような規格では、画像データに撮影日時が付加されている。このような場合、撮影日時を時刻情報として取得しても良い。また、システムで規定されたフォーマットで、ファイルのボディ内に「time: 2013/02/01 13:05:15」のように記載されている場合もあり、このような時刻情報を取得してもよい。
【００４１】
時計部１０２は、以後、時刻情報に基づき設定された時刻からカウントアップすることで、時刻を刻むことになる。
【００４２】
以上、説明したとおり、本実施形態の時計調整装置２００によれば。情報処理装置２００を含むシステムが、ファイルに付与された時刻情報が示す時刻を時計部１０１に設定することで、OS（オペレーティングシステム）の時計機能が正常な時刻を刻むことを可能とする。
【００４３】
＜第２の実施例＞
図５は、第２の実施例にかかる情報処理装置５００を含むシステムの構成を示すブロック図である。第２の実施例にかかるシステムは、情報処理装置５００と通信可能な端末６００を備え、情報処理装置５００は、端末６００を介して、フラッシュメモリ２０６にアクセスすることができる。
【００４４】
情報処理装置５００は、時刻情報設定部１０１と、時計部１０２と、ファイルアクセスプロトコル部２０３と、通信ＩＦ部５０４と、外部端末ＩＦ１０５とを有する。
【００４５】
ファイルアクセスプロトコル部２０３は、図１で説明したファイルアクセス部１０３に対応する。ファイルアクセスプロトコル部２０３は、通信ＩＦ部５０４を介して端末６００と通信して、フラッシュメモリ２０６のファイルにアクセスする。ファイルアクセスプロトコルには、FTP（RFC 959）、HTTP（RFC 2616）、OBEX（OBject EXchange）など様々ある。システムで規定したプロトコルを採用すればよい。図６では、OBEXである場合の例のシーケンスを示している。
【００４６】
通信ＩＦ部５０４は、図１で説明したストレージアクセス部１０４に対応する。通信ＩＦ部５０４は、端末６００と通信する。
【００４７】
次に、図６を用いて、図５のシステムの動作のシーケンスを説明する。
【００４８】
まず、時刻情報設定部１０１は、ユーザの操作や、通信の開始など、設計上のトリガに基づき（Ｓ２００）、ファイルアクセスプロトコル部５０３を介して、ファイルリスト要求を出す（Ｓ２０２、Ｓ２０３）。OBEXでは、GET, Type=x-obex/folder-listingというメッセージで表現される。このメッセージを受けた端末６００のファイルサーバプロトコル部６０２は、ファイルシステム制御部６０３を介して、フラッシュメモリ２０６上のディレクトリエントリを取得する（Ｓ２０４、Ｓ２０５、Ｓ２０６）。次に、ファイルサーバプロトコル部６０２は、通信I/F部６０２を介して、取得したディレクトリエントリを、ファイルアクセスプロトコル部５０３に応答する。ファイルサーバプロトコル部６０２は、OBEXでは、name=fileA, size=xx, modified=[タイムスタンプ], created=[タイムスタンプ], accessd=[タイムスタンプ]というメッセージで応答する。ただし、実際の通信路上は、バイナリエンコーディングされたメッセージで応答する（Ｓ２０７）。プロトコル規定に従っていればよい。時刻情報設定部１０１は、受信したファイルリストから時刻情報を読み取り、時計部に現在時刻を設定する（Ｓ２０８、Ｓ２０９、Ｓ２１０）。時計部１０２は、設定した現在時刻からカウントアップを開始する。
【００４９】
以上説明したとおり、本実施形態の時計調整装置５００によれば。情報処理装置５００を含むシステムが、ファイルに付与した時刻情報が示す時刻を時計部１０１に設定することで、OS（オペレーティングシステム）の時計機能が正常な時刻を刻むことを可能とする。
【００５０】
＜第３の実施例＞
図７は、第３の実施例にかかる情報処理装置７００を含むシステムを示すブロック図である。図７のシステムは、第１及び第２の実施例と異なり、ホスト端末８００を有する。
【００５１】
情報処理装置７００は、時刻情報設定部１０１と、時計部１０２と、ファイルシステム制御部２０３と、フラッシュメモリ制御部２０４と、外部端末ＩＦ１０５と、ホストＩＦ部７０５と、を有する。
【００５２】
情報処理装置７００は、ホストＩＦ７０５を介して、ホスト端末８００からリムーバルメディアであるストレージとして認識される。ここで、ホストは、ＰＣやスマートフォン、タブレットなどである。
【００５３】
ホストＩＦ７０５を介して、ホスト端末８００からファイルアクセス（データ読み書き（ブロックアクセス））が行われる。ホストI/F７０８は、例えば、USB（Universal Serial Bus）やSDメモリである。USBの場合は、USB MSC（USB Mass Storage Class）と呼ばれる方式が一般的である。
【００５４】
時刻情報設定部１０１は、ホスト端末８００がホストＩＦ７０５を介してフラッシュメモリ２０６のファイルにアクセスを完了したことをきっかけに、ファイルシステム制御部２０３に対してフラッシュメモリ２０６のファイルにアクセスさせることで、時刻情報を取得する。時刻情報設定部１０２は、ホスト端末８００がフラッシュメモリ２０６のファイルにアクセスに完了したことを、ホストＩＦ７０８が、ホスト端末８００が通知したホスト端末から情報処理装置７００を取り外すことを許可するメッセージを受け取ることにより検知することができる。詳細は、後述するが、ホスト端末８００が、情報処理装置７００をホスト端末８００から取り外すことを許可するメッセージとは、例えば、PREVENT ALLOW MENIUM REMOVAL command（prevent flag= allowed）というメッセージである。
【００５５】
次に、図７のシステムの動作シーケンスを、図８を用いて説明する。
【００５６】
ホスト端末８００が、ホストＩＦ７０５により、フラッシュメモリ制御部２０４を介してファイルにアクセス（データ読み書き（ブロックアクセス））（Ｓ３００）し、このアクセスを完了すると、アクセス完了をトリガに、時刻情報設定部１０１は動作を開始する（Ｓ３０２）。以後、時刻情報設定部１０１が、ファイルのタイムスタンプや、ファイルボディから時刻情報を得て、時計部１０２に時刻設定を行う流れ（Ｓ３０３からＳ３０７）は、図４で説明したＳ１０２からＳ１０６の動作と同様であるので説明を省略する。
【００５７】
次に、図８で説明した、ホスト端末８００のアクセス完了を時刻情報設定部１０１がどのように検知するかを説明する。
【００５８】
図９は、ホスト端末８００のアクセス完了のトリガの例を示す。USB MSCの場合の例である。ホスト端末８００は、フラッシュメモリ２０５にアクセスする際に、アクセス開始時にPREVENT ALLOW MEDIUM REMOVAL command（prevent flag= prohibited）というメッセージを発行する。ここで、一方、PREVENT ALLOW MEDIUM REMOVAL command（prevent flag= prohibited）は、ホスト端末８００は、アクセス完了時にPREVENT ALLOW MENIUM REMOVAL command（prevent flag= allowed）というメッセージを発行する。厳密には、ホスト端末８００のOSによって挙動に多少の差異があるため、それぞれのトリガを定める必要もある。時刻情報設定部８００は、ホストＩＦ部７０５が、このアクセス完了時のメッセージを受信したことをトリガに、動作開始をすることができる。
【００５９】
本実施形態の時計調整装置５００によれば、ホスト端末８００がファイルに付与した時刻情報が示す時刻を時計部１０１に設定することで、OS（オペレーティングシステム）の時計機能が正常な時刻を刻むことを可能とする。特に、本実施形態では、ホスト端末８００がファイルにアクセス完了したことをトリガに、時刻情報設定部１０１が、ファイルから時刻情報を取得しにいくため、より正確な時刻を設定することが可能となる。
【００６０】
＜第４の実施例＞
図１０は、第４の実施例にかかる情報処理装置１０００を含むシステムを示すブロック図である。
【００６１】
情報処理装置１０００は、時刻情報設定部１００１と、時計部１０２と、ファイルシステム制御部２０３と、フラッシュメモリ制御部２０４と、外部端末ＩＦ部１０５と、を有する。
【００６２】
時刻情報設定部１００１は、第１の実施例で説明した機能に加えて、さらに、システムのシャットダウンなどをトリガとして、時計部１０２に設定したファイルのタイムスタンプ情報を、その時点での時計部１０２が示す時刻で更新する。
【００６３】
図１１には、図１０のシステムの動作を示すシーケンス図である。
【００６４】
システムのシャットダウンをトリガとして、時刻情報設定部１００１は、時計部１０２の現在時刻を読み出す（Ｓ４００、Ｓ４０１）。時刻情報設定部１００１は、utime()システムコールのようなファイルのタイムスタンプの更新APIを使用して、ファイルの時刻情報を、時計部１０２から取得した現在時刻で更新する（Ｓ４０３、Ｓ４０４）。
【００６５】
時刻情報設定部１００１は、システムを再起動した場合に、Ｓ４０１からＳ４０４で時計部１０２の時刻によりタイムスタンプを更新したファイルから時刻情報を取得し、時計部１０２の現在時刻に設定することもできる。
【００６６】
本実施例の時計調整装置１０００によれば、時計部１０２が示す時刻を、一旦ファイルに付与し、付与したファイルから時刻情報を取得して、取得した時刻を時計部１０１に設定することで、OS（オペレーティングシステム）の時計機能が正常な時刻を刻むことを可能とする。
【００６７】
以上説明した少なくとも１つの実施例の効果は、情報処理装置100がRTCを備えない場合であって、かつ他の機器と時刻同期するための通信手段を有さない場合にも、OS（オペレーティングシステム）の時計機能が正常な時刻を示すことを実現することである。
【００６８】
これまでに述べたファイルからの時刻情報の取得方式は、いくつかを組み合わせてもよい。またその実行順序は、任意の順序を選ぶことができる。
【００６９】
また、情報処理装置１００は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、時刻情報設定部１０１、時計部１０２、ファイルアクセス部１０３、ストレージアクセス部１０４、外部端末ＩＦ１０５は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、情報処理装置１００は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。
【００７０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７１】
１００、２００、５００、７００・・・情報処理装置、１０１・・・時刻情報設定部、１０２・・・時計部、１０３、７０３・・・ファイルアクセス部、１０４・・・ストレージアクセス部、１０５…外部端末ＩＦ、１０６・・・ストレージ、２０４、７０４・・・フラッシュメモリ制御部、１１０…外部端末、２０６・・・フラッシュメモリ、５０３・・・ファイルアクセスプロトコル部、５０４、６００・・・別端末、６０１・・・通信Ｉ／Ｆ部、６０２・・・ファイルサーバプロトコル部、６０３・・・ファイルシステム制御部、６０４・・・フラッシュメモリ制御部、７０５・・・ホストＩＦ部、８００・・・ホスト端末
【図１】
2014178257.tif 000003
【図２】
2014178257.tif 000004
【図３】
2014178257.tif 000005
【図４】
2014178257.tif 000006
【図５】
2014178257.tif 000007
【図６】
2014178257.tif 000008
【図７】
2014178257.tif 000009
【図８】
2014178257.tif 000010
【図９】
2014178257.tif 000011
【図１０】
2014178257.tif 000012
【図１１】
2014178257.tif 000013