(57)【特許請求の範囲】
【請求項１】
不揮発性メモリを主記憶として用いる情報処理装置であって、
前記不揮発性メモリに割り当てられた少なくとも１つのセキュア領域に関する情報を初期化テーブルとして保持し、前記初期化テーブルに基づいて前記セキュア領域の初期化の要否を判断し、前記セキュア領域の初期化が必要な場合には初期化要求を出力する初期化情報部と、
前記情報処理装置の電源ＯＮ処理時に、前記初期化情報部からの前記初期化要求に従って前記セキュア領域を初期化する初期化制御部と、
前記不揮発性メモリへのアクセスを制御するメモリ制御部と、
を備え、
前記初期化情報部は、前記初期化要求を出力してから前記初期化制御部が前記セキュア領域の初期化を完了するまでの期間中に、前記メモリ制御部にリードデータマスク信号を出力し、
前記メモリ制御部は、前記初期化情報部から前記リードデータマスク信号が出力されている場合には、前記セキュア領域から読み出したデータをマスクする
ことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記情報処理装置の電源がＯＮ操作されたことを検出する電源監視部を更に備え、
前記初期化制御部は、前記電源監視部が前記電源のＯＮ操作を検出したときに、前記初期化情報部からの前記初期化要求に従って前記セキュア領域を初期化する
ことを特徴とする情報処理装置。
【請求項３】
請求項１または２に記載の情報処理装置において、
前記初期化情報部は、前記初期化テーブルに初期化必要フラグを有し、前記セキュア領域にデータが書き込まれたときに前記初期化必要フラグをセットし、前記初期化必要フラグに基づいて前記初期化要求を出力する
ことを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置において、
前記初期化情報部は、前記セキュア領域の領域範囲が設定または更新されたときに前記初期化必要フラグをセットする
ことを特徴とする情報処理装置。
【請求項５】
請求項１から４のいずれか１項に記載の情報処理装置において、
前記セキュア領域の領域範囲は、開始アドレス及び領域サイズにより規定される
ことを特徴とする情報処理装置。
【請求項６】
請求項１から４のいずれか１項に記載の情報処理装置において、
前記セキュア領域の領域範囲は、開始アドレス及び終了アドレスにより規定される
ことを特徴とする情報処理装置。
【請求項７】
請求項１から６のいずれか１項に記載の情報処理装置において、
ＤＭＡ転送を用いて前記不揮発性メモリにアクセスする機能を有するＤＭＡ制御部を更に備え、前記初期化制御部は前記ＤＭＡ制御部を制御して、ＤＭＡ転送を用いることにより前記セキュア領域を初期化する
ことを特徴とする情報処理装置。
【請求項８】
請求項１から７のいずれか１項に記載の情報処理装置において、
前記初期化情報部は論理回路として実現される
ことを特徴とする情報処理装置。
【請求項９】
請求項１から７のいずれか１項に記載の情報処理装置において、
前記初期化情報部はＣＰＵにより実行されるプログラムとして実現される
ことを特徴とする情報処理装置。
【請求項１０】
請求項１から９のいずれか１項に記載の情報処理装置を備える撮像システムであって、
撮像した画像データを前記不揮発性メモリの前記セキュア領域に記録する
ことを特徴とする撮像システム。
【請求項１１】
不揮発性メモリを主記憶として用いる情報処理装置の制御方法であって、
前記不揮発性メモリに割り当てられた少なくとも１つのセキュア領域に関する情報を保持する初期化テーブルに基づいて前記セキュア領域の初期化の要否を判断し、前記セキュア領域の初期化が必要な場合には初期化要求を出力する初期化情報ステップと、
前記情報処理装置の電源ＯＮ処理時に、前記初期化情報ステップにおける前記初期化要求に従って前記セキュア領域を初期化する初期化制御ステップと、
前記不揮発性メモリへのアクセスを制御するメモリ制御ステップと、
を有し、
前記初期化情報ステップは、前記初期化要求を出力してから前記初期化制御ステップが前記セキュア領域の初期化を完了するまでの期間中に、前記メモリ制御ステップのためにリードデータマスク信号を出力し、
前記メモリ制御ステップは、前記初期化情報ステップが前記リードデータマスク信号を出力している場合には、前記セキュア領域から読み出したデータをマスクする
ことを特徴とする制御方法。
【請求項１２】
不揮発性メモリを主記憶として用いる情報処理装置において、コンピュータを、
前記不揮発性メモリに割り当てられた少なくとも１つのセキュア領域に関する情報を保持する初期化テーブルに基づいて前記セキュア領域の初期化の要否を判断し、前記セキュア領域の初期化が必要な場合には初期化要求を出力する初期化情報手段と、
前記情報処理装置の電源ＯＮ処理時に、前記初期化情報手段からの前記初期化要求に従って前記セキュア領域を初期化する初期化制御手段と、
前記不揮発性メモリへのアクセスを制御するメモリ制御手段と
して機能させるプログラムであって、
前記初期化情報手段が、前記初期化要求を出力してから前記初期化制御手段が前記セキュア領域の初期化を完了するまでの期間中に、前記メモリ制御手段にリードデータマスク信号を出力し、
前記メモリ制御手段が、前記初期化情報手段が前記リードデータマスク信号を出力している場合には、前記セキュア領域から読み出したデータをマスクする
ように機能させることを特徴とするプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを主記憶として用いる情報処理装置及びその制御方法に関する。
【背景技術】
【０００２】
記憶装置の関連技術の進歩により、ＤＲＡＭに匹敵するアクセス速度を有する不揮発性メモリが低コストで得られるようになっている。不揮発性メモリは、電力供給が停止されても記憶内容が消去されないため、電池切れ等による突然の電源停止の場合でも記憶内容を失わずに保持できる。また、ＤＲＡＭのように記憶保持のためのリフレッシュ動作を行う必要がないため消費電力を低減できる。
しかし、不揮発性メモリを主記憶（一次記憶）として用いる場合には、電源がＯＦＦされた後も消去されずに残る個人情報等の秘密データが読み出されてしまうといったセキュリティ上の課題がある。
【０００３】
このような課題に対し、特許文献１では、不揮発性メモリを主記憶とする情報処理装置において、予め、記録メディアに記録された画像に対してユーザが消去コマンドを発行した際に、不揮発性メモリに用意した退避領域に画像データをバックアップしている。そして、電源ＯＦＦ処理時、あるいはタイマー等の所定のイベントで、退避領域にバックアップされた画像データを初期化（消去）するようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−００６３１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、電池切れ等により情報処理装置への電力供給が突然停止して異常終了した場合には不揮発性メモリのデータの初期化（消去）が行われない。このため、揮発性メモリに消去されずに残る秘密データが読み出されるおそれがある。
【課題を解決するための手段】
【０００６】
本発明に係る情報処理装置は、不揮発性メモリを主記憶として用いる情報処理装置であって、不揮発性メモリに割り当てられた少なくとも１つのセキュア領域に関する情報を保持する初期化テーブルに基づいてセキュア領域の初期化の要否を判断し、セキュア領域の初期化が必要な場合には初期化要求を出力する初期化情報部と、情報処理装置の電源ＯＮ処理時に、初期化情報部からの初期化要求に従ってセキュア領域を初期化する初期化制御部と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、情報処理装置が異常終了した場合であっても、主記憶として用いられる不揮発性メモリに消去されずに残るデータを初期化可能な情報処理装置及びその制御方法を得ることができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】第１実施形態に係る情報処理装置における初期化情報部の構成例を示す等価回路である。
【図３】第１実施形態に係る情報処理装置における電源ＯＮ処理を示すフローチャートである。
【図４】第１実施形態に係る情報処理装置におけるテーブル設定処理を示すフローチャートである。
【図５】第１実施形態に係る情報処理装置における電源ＯＦＦ処理を示すフローチャートである。
【図６】第１実施形態に係る情報処理装置における初期化処理を示すフローチャートである。
【図７】第１実施形態に係る情報処理装置における初期化テーブルの一例を示す図である。
【図８】第１実施形態に係る情報処理装置の制御方法を示すタイミングチャートである。
【図９】第２実施形態に係る情報処理装置の構成を示すブロック図である。
【図１０】第２実施形態に係る情報処理装置における初期化処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
従来の情報処理装置では、主記憶メモリとして、ＤＲＡＭ等の揮発性メモリが用いられることが通常である。ＤＲＡＭは、記憶保持のためにリフレッシュ動作を行う必要があり、例えばＰＡＳＲ（パーシャル・アレイ・セルフ・リフレッシュ）技術が知られている。ＰＡＳＲでは、主記憶内部のリフレッシュタイマやリフレッシュカウンタを使用して、複数のバンク、及び分割された領域に対してリフレッシュするか否かを設定し、主記憶内部で周期的にロウアドレスを生成しながらリフレッシュする。
【００１０】
また、別のフレッシュ技術として、情報処理装置の動作中に複数のバンクに分割された揮発性メモリの主記憶に対して、ロウアドレスを発行してリフレッシュするＲＡＳオンリ・リフレッシュ技術が知られている。また、主記憶内部のリフレッシュカウンタを用いて主記憶内部でロウアドレスを生成しながらリフレッシュするオートリフレッシュ技術が知られている。
【００１１】
しかし、揮発性メモリを主記憶とする情報処理装置ではリフレッシュ動作を行う必要があるため、消費電力が大きくなってしまう。また、電力供給が停止されると記憶内容が消去されてしまう。そこで、不揮発性メモリを情報処理装置の主記憶として用いることが考えられる。しかしこの場合でも、前述のように揮発性メモリに消去されずに残る秘密データが読み出されてしまうといった課題がある。
【００１２】
以下に、本発明の好ましい実施形態を、添付の図面に基づいて詳細に説明する。なお、本発明は以下の実施形態に限定されるものではなく、その要旨を逸脱しない範囲において適宜変更可能である。また、以下で説明する図面において、同じ機能を有するものは同一の符号を付し、その説明を省略又は簡潔にすることもある。
【００１３】
（第１実施形態）
本実施形態では、情報処理装置が異常終了した場合であっても、主記憶として用いられる不揮発性メモリに消去されずに残るデータを初期化することができる方法について、図１〜図８を用いて説明する。
【００１４】
図１は、第１実施形態に係る情報処理装置の構成を示すブロック図である。図１に示す本実施形態の情報処理装置は、不揮発性メモリ１０１、メモリ制御部１０２、初期化制御部（ＣＰＵ）１０３、電源監視部１０４、初期化情報部１０５を備える。
【００１５】
不揮発性メモリ１０１は、ＤＲＡＭに匹敵するアクセス速度を備えた不揮発性メモリであって、本実施形態では情報処理装置の主記憶（一次記憶）として用いられる。不揮発性メモリ１０１としては、例えば、ＭＲＡＭ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を用いることができる。あるいは、ＲｅＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＰＲＡＭ（Ｐｈａｓｅ  ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を用いることもできる。不揮発性メモリ１０１は、情報処理装置を制御するプログラムの格納領域と、プログラムにおける各処理の途中結果を格納するワーク領域の両方を兼ねる。
【００１６】
メモリ制御部１０２は、情報処理装置のＣＰＵ（中央演算処理装置）が、不揮発性メモリ１０１へアクセスするためのインターフェースを提供するメモリコントローラである。メモリ制御部１０２は、バスを介してＣＰＵと接続されている。また、本実施形態のメモリ制御部１０２は、後述の初期化情報部１０５とも接続されており、初期化情報部１０５からリードデータマスク信号が出力されているときには、不揮発性メモリ１０１から読み出したデータをマスクする機能を有している。メモリ制御部１０２は、例えば、読み出したデータを予め定めた値（例えば０）で置き換えることにより、不揮発性メモリ１０１から読み出したデータをマスクする。
【００１７】
初期化情報部１０５は、不揮発性メモリ１０１に消去されずに残るデータの消去（以下、「初期化」という）のための情報を初期化テーブルとして保持する。また、初期化情報部１０５は、不揮発性メモリ１０１の初期化の要否についての判断を行う。より具体的には、初期化情報部１０５は、不揮発性メモリ１０１のアドレス空間に割り当てられた少なくとも１つのメモリ領域（以下「セキュア領域」という）に関する情報を初期化テーブルとして保持する。そして、初期化テーブルに基づいてセキュア領域の初期化の要否を判断し、セキュア領域の初期化が必要な場合には初期化要求を出力する。
【００１８】
初期化テーブルは、図１に示すように、テーブル有効フラグＤ１、領域開始アドレスＤ２、領域サイズＤ３、初期化必要フラグＤ４、及び初期化判断開始フラグＤ５を有する。これらテーブル情報は、図１に示すように、後述の初期化制御部１０３との間で通信により共有される。
【００１９】
領域開始アドレスＤ２はセキュア領域の領域開始アドレスであり、領域サイズＤ３はセキュア領域の領域サイズである。不揮発性メモリ１０１に複数のセキュア領域が割り当てられている場合には、領域開始アドレスＤ２及び領域サイズＤ３はセキュア領域ごとに設定される。テーブル有効フラグＤ１は、初期化テーブルが有効であることを表し、少なくとも１つのセキュア領域の領域開始アドレスＤ２及び領域サイズＤ３が設定されている場合に（例えば１が）セットされる。
【００２０】
初期化必要フラグＤ４は、セキュア領域の初期化が必要であることを表し、例えば、セキュア領域にデータが書き込まれた場合等にセットされる。初期化判断開始フラグＤ５は、情報処理装置が電源ＯＮ処理中であることを表し、例えば、後述の初期化制御部１０３から、情報処理装置の起動通知やテーブル設定完了が出力された場合等にセットされる。また、初期化判断開始フラグＤ５は、セキュア領域の初期化完了時等に（例えば０に）クリアされる。
【００２１】
また、本実施形態の初期化情報部１０５は、前述のように、メモリ制御部１０２とも接続されている。そして、初期化要求を出力してから初期化が完了するまでの期間中に、メモリ制御部１０２がセキュア領域からデータを読み出す場合には、メモリ制御部１０２にリードデータマスク信号を出力する。このとき、初期化情報部１０５は、メモリ制御部１０２から出力されるアドレス信号とアクセスタイプ信号を参照して、メモリ制御部１０２がセキュア領域からデータを読み出しているかを判定する。
【００２２】
初期化情報部１０５は、論理回路（例えばＬＳＩ）として実現することが可能であり、また、ＣＰＵにより実行されるプログラムとして実現することも可能である。セキュリティの観点からは、初期化情報部１０５は論理回路として実現されることが望ましい。これは、例えば初期化情報部１０５のプログラムが、ファームウェアの改ざん等によって書き換えられてしまうことを防止するためである。
【００２３】
また、初期化テーブルは、初期化情報部１０５が論理回路として実現される場合には、その論理状態とすることが可能であり、また、ＣＰＵにより実行されるプログラムとして実現される場合には、不揮発性メモリ１０１に保持することが可能である。ただ、少なくともテーブル有効フラグＤ１、領域開始アドレスＤ２、領域サイズＤ３、及び初期化必要フラグＤ４については、初期化情報部１０５への電力供給が停止されても消去されない不揮発性領域に保持される。一方、初期化判断開始フラグＤ５は揮発性領域に保持してもよい。
【００２４】
電源監視部１０４は、情報処理装置の電源スイッチ等の電源操作部材のユーザによる操作を検出し、情報処理装置の電源がＯＮ操作またはＯＦＦ操作されたことを初期化制御部１０３に出力する。
【００２５】
初期化制御部１０３はＣＰＵにより実行されて、初期化情報部１０５からの初期化要求に従ってセキュア領域を初期化する。より具体的には、初期化制御部１０３は、ユーザによる電源のＯＮ操作が電源監視部１０４から出力されると、初期化情報部１０５に起動通知を出力する。初期化情報部１０５は、初期化テーブルに基づいてセキュア領域の初期化の要否を判断し、初期化必要フラグＤ４と初期化判断開始フラグＤ５の両方がセットされている場合には、初期化制御部１０３に初期化要求を出力する。初期化制御部１０３は、初期化情報部１０５からの初期化要求に従って、例えば、セキュア領域を予め定めた値（例えば０）で上書きすることによりセキュア領域を初期化する。セキュア領域の初期化が完了すると、初期化制御部１０３は初期化情報部１０５に初期化完了を出力する。すると、初期化情報部１０５は、初期化必要フラグＤ４をクリアして、初期化要求の出力を停止する。
【００２６】
なお、初期化制御部１０３は、初期化情報部１０５へ起動通知を出力したときに初期化情報部１０５から初期化要求が出力された場合は、初期化処理の完了後に起動通知の出力を停止する。一方、起動通知を出力したときに初期化情報部１０５から初期化要求が出力されなかった場合は、直ちに起動通知の出力を停止する。
【００２７】
また、初期化制御部１０３は、初期化テーブルの領域開始アドレスＤ２及び領域サイズＤ３を設定する。具体的には、まず、初期化制御部１０３は初期化情報部１０５にテーブル設定要求を出力する。すると、初期化情報部１０５はテーブル有効フラグＤ１をクリアする。次に、初期化制御部１０３は、初期化テーブルの領域開始アドレスＤ２及び領域サイズＤ３に所望の値を設定した後、テーブル設定要求の出力を停止して、初期化情報部１０５にテーブル設定完了を出力する。すると、初期化情報部１０５はテーブル有効フラグＤ１をセットする。初期化制御部１０３は、同様の方法により、セキュア領域の領域範囲を更新することもできる。なお、初期化テーブルの領域開始アドレスＤ２及び領域サイズＤ３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）のように予め値が決定されていてもよい。
【００２８】
初期化情報部１０５と初期化制御部１０３の間の通信は、初期化情報部１０５が論理回路として実現される場合には、図１に示す初期化情報部１０５と初期化制御部１０３の間の接続線に出力する信号のＨｉｇｈとＬｏｗを切り替えることによって行われる。また、初期化情報部１０５がＣＰＵにより実行されるプログラムとして実現される場合には、初期化制御部１０３と初期化情報部１０５との間のＡＰＩ等によって行われる。
【００２９】
図２は、第１実施形態に係る情報処理装置における初期化情報部１０５の構成例を示す等価回路である。図２は、本実施形態の初期化情報部１０５を論理回路として実現する場合の一例を示している。以下、図２に示す本実施形態の初期化情報部１０５の動作について説明する。
【００３０】
ＳＲラッチ６０１は、テーブル有効フラグＤ１を保持する。テーブル有効フラグＤ１は、初期化制御部１０３からのテーブル設定完了信号によりセットされ、初期化制御部１０３からのテーブル設定要求信号によりクリアされる。テーブル有効フラグＤ１は不揮発性であり、初期化情報部１０５への電力供給が停止されても消去されない。テーブル有効フラグＤ１の初期値はクリア（＝０）であり、論理回路ＬＳＩの出荷テスト時などの特殊な工程において書き込まれる。
【００３１】
アドレスデコーダ６０２は、メモリ制御部１０２からのアドレス信号がいずれかのセキュア領域の領域範囲に含まれる場合にはＨｉｇｈを出力し、含まれない場合にはＬｏｗを出力する。図２に示す例では、セキュア領域の領域範囲として、初期化テーブルに設定された領域開始アドレスＤ２と領域サイズＤ３が参照される。
【００３２】
ＡＮＤゲート６０３は、片入力反転のＡＮＤゲートである。ＡＮＤゲート６０３は、メモリ制御部１０２からのアクセスタイプ信号がリード「読み出し」（Ｌｏｗ）で、かつ、アドレスデコーダ６０２の出力がＨｉｇｈである場合にＨｉｇｈを出力する。そうでない場合にはＬｏｗを出力する。
【００３３】
ＡＮＤゲート６０４は、メモリ制御部１０２からのアクセスタイプ信号が「書き込み」（Ｈｉｇｈ）で、かつ、アドレスデコーダ６０２の出力がＨｉｇｈである場合にＨｉｇｈを出力する。そうでない場合にはＬｏｗを出力する。
【００３４】
ＡＮＤゲート６０５は、ＡＮＤゲート６０４の出力がＨｉｇｈで、かつ、テーブル有効フラグＤ１がセットされているある場合にＨｉｇｈを出力する。そうでない場合にはＬｏｗを出力する。
【００３５】
ＡＮＤゲート６０６は、ＡＮＤゲート６０３の出力がＨｉｇｈで、かつ、テーブル有効フラグＤ１がセットされている場合にＨｉｇｈを出力する。そうでない場合にはＬｏｗを出力する。
【００３６】
ＯＲゲート６０７は、片入力反転のＯＲゲートである。ＯＲゲート６０７は、テーブル有効フラグＤ１がクリアされているか、または、ＡＮＤゲート６０５の出力がＨｉｇｈである場合にＨｉｇｈを出力する。そうでない場合にはＬｏｗを出力する。
【００３７】
ＳＲラッチ６０８は、初期化必要フラグＤ４を保持する。初期化必要フラグＤ４は、ＯＲゲート６０７の出力がＨｉｇｈの場合にセットされ、初期化制御部１０３からの初期化完了信号によりクリアされる。初期化必要フラグＤ４は不揮発性であり、初期化情報部１０５への電力供給が停止されても消去されない。初期化必要フラグＤ４の初期値はクリア（＝０）であり、論理回路ＬＳＩの出荷テスト時などの特殊な工程において書き込まれる。
【００３８】
ＯＲゲート６０９は、初期化制御部１０３からテーブル設定完了信号が出力されている場合か、または、初期化制御部１０３から起動通知信号が出力されている場合にＨｉｇｈを出力する。そうでない場合にはＬｏｗを出力する。
【００３９】
ＳＲラッチ６１０は、初期化判断開始フラグＤ５を保持する。初期化判断開始フラグＤ５は、ＯＲゲート６０９の出力がＨｉｇｈの場合にセットされ、初期化制御部１０３からの初期化完了信号によりクリアされる。また、初期化判断開始フラグＤ５は、情報処理装置のパワーオンリセットによってもプリリセットされてクリアされる。
【００４０】
ＡＮＤゲート６１１は、初期化必要フラグＤ４と初期化判断開始フラグＤ５の両方がセットされている場合にＨｉｇｈを出力する。そうでない場合にはＬｏｗを出力する。ＡＮＤゲート６１１の出力は、初期化要求として初期化制御部１０３に出力される。
【００４１】
ＡＮＤゲート６１２は、ＡＮＤゲート６１１の出力とＡＮＤゲート６０６の出力の両方がＨｉｇｈである場合にＨｉｇｈを出力する。そうでない場合にはＬｏｗを出力する。ＡＮＤゲート６１２の出力は、リードデータマスク信号としてメモリ制御部１０２に出力される。
【００４２】
図３は、第１実施形態に係る情報処理装置における電源ＯＮ処理を示すフローチャートである。
【００４３】
ステップＳ１００１において、電源監視部１０４は、ユーザにより情報処理装置の電源がＯＮ操作されたことを初期化制御部１０３に出力する。ステップＳ１００２において、初期化制御部１０３は、初期化情報部１０５に起動通知を出力する。ステップＳ１００３において、初期化制御部１０３は、初期化情報部１０５からテーブル有効フラグＤ１を読み出す。
【００４４】
ステップＳ１００４において、初期化制御部１０３は、テーブル有効フラグＤ１がセットされているか否かを判定する。テーブル有効フラグＤ１がセットされている場合（ＹＥＳ）はステップＳ１００６へ進む。一方、テーブル有効フラグＤ１がセットされていない場合（ＮＯ）はステップＳ１００５へ進む。ステップＳ１００５において、初期化制御部１０３は、初期化情報部１０５のテーブル設定処理を行なう。テーブル設定処理については図４で説明する。
【００４５】
ステップＳ１００６において、初期化制御部１０３は、初期化情報部１０５から初期化要求が出力されているか否かを判定する。初期化要求が出力されている場合（ＹＥＳ）はステップＳ１００７へ進む。一方、初期化要求が出力されていない場合（ＮＯ）はステップＳ１００８へ進む。ステップＳ１００７において、初期化制御部１０３は、不揮発性メモリ１０１のセキュア領域の初期化処理を行なう。初期化処理については図６で説明する。
【００４６】
ステップＳ１００８において、初期化制御部１０３は、起動通知の出力を停止する。ステップＳ１００９において、初期化制御部１０３は、初期化情報部１０５に初期化完了を出力し、電源ＯＮ処理を終了する。
【００４７】
図４は、第１実施形態に係る情報処理装置におけるテーブル設定処理を示すフローチャートである。図４に示すフローチャートは、図３に示すステップＳ１００５のテーブル設定処理に相当する。
【００４８】
ステップＳ２００１において、初期化制御部１０３は、初期化情報部１０５にテーブル設定要求を出力する。ステップＳ２００２において、初期化制御部１０３は、初期化テーブルの領域開始アドレスＤ２に、セキュア領域の所望の開始アドレスを設定する。ステップＳ２００３において、初期化制御部１０３は、初期化テーブルの領域サイズＤ３に、セキュア領域の所望の領域サイズを設定する。
【００４９】
ステップＳ２００４において、初期化制御部１０３は、テーブル設定要求の出力を停止する。ステップＳ２００５において、初期化制御部１０３は、初期化情報部１０５にテーブル設定完了を出力し、テーブル設定処理を終了する。
【００５０】
図５は、第１実施形態に係る情報処理装置における電源ＯＦＦ処理を示すフローチャートである。
【００５１】
ステップＳ３００１において、電源監視部１０４は、ユーザにより情報処理装置の電源がＯＦＦ操作されたことを、初期化制御部１０３に出力する。ステップＳ３００２において、情報処理装置は、通常の電源ＯＦＦ処理を行なう。
【００５２】
ステップＳ３００３において、初期化制御部１０３は、不揮発性メモリ１０１のセキュア領域の初期化処理を行なう。初期化処理については図６で説明する。ステップＳ３００４において、初期化制御部１０３は、初期化情報部１０５に初期化完了を出力し、電源ＯＦＦ処理を終了する。
【００５３】
図６は、第１実施形態に係る情報処理装置における初期化処理を示すフローチャートである。図６に示すフローチャートは、図３に示すステップＳ１００７の初期化処理、及び図５に示すステップＳ３００３の初期化処理に相当する。
【００５４】
ステップＳ４００１において、初期化制御部１０３は、初期化情報部１０５から領域開始アドレスＤ２と領域サイズＤ３を読み出す。ステップＳ４００２において、初期化制御部１０３は、変数Ａｄｄｒｅｓｓに領域開始アドレスＤ２を設定する。また、変数Ｓｉｚｅに領域サイズＤ３を設定する。
【００５５】
ステップＳ４００３において、初期化制御部１０３は、変数Ａｄｄｒｅｓｓが指し示す不揮発性メモリ１０１の番地に予め定めた値（例えば０）を書き込む。ステップＳ４００４において、初期化制御部１０３は、変数Ａｄｄｒｅｓｓに変数Ａｄｄｒｅｓｓの次のアドレスをセットする。
【００５６】
ステップＳ４００５において、初期化制御部１０３は、変数Ａｄｄｒｅｓｓが、変数Ａｄｄｒｅｓｓ＋変数Ｓｉｚｅに到達したかをチェックし、セキュア領域の初期化が完了したか否かを判定する。セキュア領域の初期化が完了した場合（ＹＥＳ）は、初期化処理を終了する。一方、初期化処理が完了していない場合（ＮＯ）は、ステップＳ４００３へ戻って書き込み処理を繰り返す。
【００５７】
なお、図６に示す初期化処理では、不揮発性メモリ１０１にただ１つのセキュア領域が割り当てられている場合について説明したが、不揮発性メモリ１０１に複数のセキュア領域を割り当てることも可能である。
【００５８】
図７は、第１実施形態に係る情報処理装置における初期化テーブルの一例を示す図である。図７には、データ幅が３２ｂｉｔで容量が５１２Ｍｂｙｔｅの不揮発性メモリ１０１に、５つのセキュア領域が割り当てられた場合の初期化テーブルの例を示している。このように、複数のセキュア領域が割り当てられている場合は、初期化制御部１０３は、それぞれのセキュア領域に対して図６に示す初期化処理を行なう。
【００５９】
図８は、第１実施形態に係る情報処理装置の制御方法を示すタイミングチャートである。図８には、初期化情報部１０５が保持するテーブル有効フラグＤ１及び初期化必要フラグＤ４の時間変化を示している。また、初期化情報部１０５が出力する初期化要求信号及びリードデータマスク信号の時間変化を示している。図８の斜線部は、情報処理装置がＯＦＦ状態であることを表している。斜線部における初期化要求信号とリードデータマスク信号の値は不定値である。以下、図８に示す本実施形態の制御方法について、図３及び図５のフローチャートを参照しながら説明する。
【００６０】
時刻Ｔ１において、ユーザによる情報処理装置の電源のＯＮ操作が初めて行われる。これにより、図３に示す電源ＯＮ処理（ステップＳ１００１〜Ｓ１００９）が開始する。このとき、初期化判断開始フラグＤ５はプリリセットされてクリアされる。なお、時刻Ｔ１より前のテーブル有効フラグＤ１と初期化必要フラグＤ４には、出荷時の初期値が設定されている。
【００６１】
ステップＳ１００１において、テーブル有効フラグＤ１はクリア、初期化必要フラグＤ４はセット、初期化判断開始フラグＤ５はクリアの状態を保持している。この時点では、初期化要求信号とリードデータマスク信号は出力されない。ステップＳ１００２において、初期化制御部１０３から起動通知信号が出力されると、初期化判断開始フラグＤ５がセットされる。これにより、初期化要求が出力される。ステップＳ１００４においては、テーブル有効フラグＤ１がセットされていないため（ＮＯ）、ステップＳ１００５へ進み、図４に示すテーブル設定処理（ステップＳ２００１〜Ｓ２００５）が行われる。
【００６２】
時刻Ｔ２において、テーブル有効フラグＤ１がセットされる。これにより、リードデータマスク信号が出力される。メモリ制御部１０２は、リードデータマスク信号が出力されている間は、セキュア領域から読み出したデータをマスクする。
【００６３】
ステップＳ１００６においては、初期化要求信号が出力されているため（ＹＥＳ）、ステップＳ１００７へ進み、図６に示すセキュア領域の初期化処理（ステップＳ４００１〜Ｓ４００５）が行われる。これにより、不揮発性メモリ１０１のセキュア領域が初期化される。セキュア領域の初期化が完了し、初期化制御部１０３から初期化完了信号が出力されると、ステップＳ１００８〜Ｓ１００９において、初期化必要フラグＤ４と初期化判断開始フラグＤ５がクリアされる。これにより、初期化要求信号とリードデータマスク信号が出力されなくなるので、セキュア領域からのデータがマスクされずに読み出せるようになる。
【００６４】
時刻Ｔ３から時刻Ｔ５までは通常の処理である。時刻Ｔ４において、不揮発性メモリ１０１のセキュア領域にデータが書き込まれる。これにより、初期化必要フラグＤ４がセットされる。時刻Ｔ５において、ユーザによる電源のＯＦＦ操作が行われる。これにより、図５に示す電源ＯＦＦ処理（ステップＳ３００１〜Ｓ３００４）が開始する。
【００６５】
時刻Ｔ６において、電源ＯＦＦ処理のうちの通常の電源ＯＦＦ処理（ステップＳ３００２）が完了し、図６に示すセキュア領域の初期化処理（ステップＳ４００１〜Ｓ４００５）が行われる。通常の電源ＯＦＦ処理においては、テーブル有効フラグＤ１と初期化必要フラグＤ４はセット、初期化判断開始フラグＤ５はクリアの状態を保持している。本実施形態の電源ＯＦＦ処理では、初期化テーブルの状態に関わらずセキュア領域の初期化処理が行われる。セキュア領域の初期化が完了し、初期化制御部１０３から初期化完了信号が出力されると、ステップＳ１００８〜Ｓ１００９において、初期化必要フラグＤ４がクリアされる。この間、初期化要求信号とリードデータマスク信号は出力されない。時刻Ｔ７において、初期化制御部１０３は、電源ＯＦＦ処理を完了する。そして、情報処理装置への電力供給が停止される。
【００６６】
時刻Ｔ７から時刻Ｔ８までは、情報処理装置がＯＦＦされている状態である。時刻Ｔ８において、ユーザによる電源のＯＮ操作が行われる。これにより、図３に示す電源ＯＮ処理（ステップＳ１００１〜Ｓ１００９）が開始する。このとき、初期化判断開始フラグＤ５はプリリセットされてクリアされる。
【００６７】
ステップＳ１００１において、テーブル有効フラグＤ１はセット、初期化必要フラグＤ４はクリア、初期化判断開始フラグＤ５はクリアの状態を保持している。この時点では、初期化要求信号とリードデータマスク信号は出力されない。ステップＳ１００２において、初期化制御部１０３から起動通知信号が出力されると、初期化判断開始フラグＤ５がセットされる。ステップＳ１００４においては、テーブル有効フラグＤ１がセットされているため（ＹＥＳ）、ステップＳ１００５のテーブル設定処理は行われない。
【００６８】
ステップＳ１００６においては、初期化要求信号が出力されていないため（ＮＯ）、ステップＳ１００７の初期化処理は行われない。ステップＳ１００８〜Ｓ１００９において、テーブル有効フラグＤ１はセット、初期化必要フラグＤ４はクリア、初期化判断開始フラグＤ５はクリアの状態を保持している。このため、初期化要求信号とリードデータマスク信号は出力されない。
【００６９】
時刻Ｔ９において、時刻Ｔ４と同様に、不揮発性メモリ１０１のセキュア領域にデータが書き込まれる。これにより、初期化必要フラグＤ４がセットされる。時刻Ｔ１０において、電池切れ等により情報処理装置への電力供給が突然停止され、ユーザによる電源のＯＦＦ操作によらずに情報処理装置が異常終了する。
【００７０】
時刻Ｔ１０から時刻Ｔ１１までは、時刻Ｔ７から時刻Ｔ８までと同様に、情報処理装置がＯＦＦされている状態である。時刻Ｔ１１において、時刻Ｔ８と同様に、ユーザによる電源のＯＮ操作が行われる。これにより、図３に示す電源ＯＮ処理（ステップＳ１００１〜Ｓ１００９）が開始する。このとき、初期化判断開始フラグＤ５はプリリセットされてクリアされる。
【００７１】
ステップＳ１００１において、テーブル有効フラグＤ１はセット、初期化必要フラグＤ４はセット、初期化判断開始フラグＤ５はクリアの状態を保持している。この時点では、初期化要求信号とリードデータマスク信号は出力されない。ステップＳ１００２において、初期化制御部１０３から起動通知信号が出力されると、初期化判断開始フラグＤ５がセットされる。これにより、初期化要求信号とリードデータマスク信号が出力される。メモリ制御部１０２は、リードデータマスク信号が出力されている間は、セキュア領域から読み出したデータをマスクする。ステップＳ１００４においては、テーブル有効フラグＤ１がセットされているため（ＹＥＳ）、ステップＳ１００５のテーブル設定処理は行われない。
【００７２】
ステップＳ１００６においては、初期化要求信号が出力されているため（ＹＥＳ）、ステップＳ１００７へ進み、図６に示すセキュア領域の初期化処理（ステップＳ４００１〜Ｓ４００５）が行われる。これにより、不揮発性メモリ１０１のセキュア領域が初期化される。セキュア領域の初期化が完了し、初期化制御部１０３から初期化完了信号が出力されると、ステップＳ１００８〜Ｓ１００９において、初期化必要フラグＤ４と初期化判断開始フラグＤ５がクリアされる。これにより、初期化要求信号とリードデータマスク信号が出力されなくなるので、セキュア領域からのデータがマスクされずに読み出せるようになる。
【００７３】
以上のように、本実施形態の初期化情報部は、不揮発性メモリに割り当てられた少なくとも１つのセキュア領域に関する情報を初期化テーブルとして保持している。そして、初期化情報部は、初期化テーブルに基づいてセキュア領域の初期化の要否を判断し、セキュア領域の初期化が必要な場合には初期化要求を出力する。また、本実施形態の初期化制御部は、情報処理装置の電源ＯＮ処理時に、初期化情報部からの初期化要求に従ってセキュア領域を初期化する。
これにより、情報処理装置が異常終了した場合であっても、主記憶として用いられる不揮発性メモリに消去されずに残るデータを初期化することができる。また、秘密データが存在するセキュア領域のみを初期化テーブルに基づいて初期化するので、セキュア領域の初期化処理を低負荷かつ高速に行うことができる。
【００７４】
なお、以上の説明では、セキュア領域の領域範囲を開始アドレスおよび領域サイズによって規定したが、セキュア領域の領域範囲は開始アドレスおよび終了アドレスによって規定してもよい。また、情報処理装置の電源がＯＮ操作されたことを電源監視部１０４によって検出する代わりに、初期化制御部１０３がＣＰＵのパワーオン割り込み等によって検出するようにしてもよい。
【００７５】
（第２実施形態）
以下、第２実施形態に係る情報処理装置について、図９、図１０を用いて説明する。本実施形態では、不揮発性メモリ１０１のセキュア領域の初期化をＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を用いて行う方法について説明する。
【００７６】
図９は、第２実施形態に係る情報処理装置の構成を示すブロック図である。図９に示す本実施形態の情報処理装置は、図１に示す情報処理装置と比較して、ＤＭＡ制御部９０２を備えている点が異なっている。その他については図１と同じであるので説明は省略する。
【００７７】
ＤＭＡ制御部９０２は、バス９０１を介してＣＰＵ及びメモリ制御部１０２と接続されており、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を用いて不揮発性メモリ１０１にアクセスする機能をＣＰＵに対して提供する。なお、ＤＭＡ制御部９０２は、ＣＰＵまたはメモリ制御部１０２に統合されていてもよい。
本実施形態の初期化制御部１０３は、ＤＭＡ制御部９０２を制御して、ＤＭＡ転送を用いることによりセキュア領域を初期化する。これにより、セキュア領域の初期化処理をより低負荷かつ高速に行うことができる。
【００７８】
ＤＭＡ転送を用いたセキュア領域の初期化処理をより具体的に説明する。まず、初期化制御部１０３は、セキュア領域の領域開始アドレスＤ２を、図９に示す制御信号によりＤＭＡ制御部９０２に出力し、ＤＭＡ転送の転送開始アドレスをＤＭＡ制御部９０２に設定する。また、同様に、セキュア領域の領域サイズＤ３を、図９に示す制御信号によりＤＭＡ制御部９０２に出力し、ＤＭＡ転送の転送データサイズをＤＭＡ制御部９０２に設定する。
【００７９】
初期化制御部１０３が転送開始信号をＨｉｇｈにすると、ＤＭＡ制御部９０２はデータの転送を開始する。そして、ＤＭＡ制御部９０２は転送開始アドレスから転送データサイズのデータを不揮発性メモリ１０１に書き込み、すべてのデータの転送が完了すると、転送開始信号をＬｏｗにする。
【００８０】
図１０は、第２実施形態に係る情報処理装置における初期化処理を示すフローチャートである。図１０に示すフローチャートは、図３に示すステップＳ１００７の初期化処理、及び図５に示すステップＳ３００３の初期化処理に相当する。本実施形態の初期化制御部１０３は、セキュア領域の初期化処理をＤＭＡ転送により行う。
【００８１】
ステップＳ５００１において、初期化制御部１０３は、初期化情報部１０５から領域開始アドレスＤ２と領域サイズＤ３を読み出す。ステップＳ５００２において、初期化制御部１０３は、変数Ａｄｄｒｅｓｓに領域開始アドレスＤ２を設定する。また、変数Ｓｉｚｅに領域サイズＤ３を設定する。
【００８２】
ステップＳ５００３において、初期化制御部１０３は、変数Ａｄｄｒｅｓｓと変数Ｓｉｚｅを、制御信号を介してＤＭＡ制御部９０２に出力する。ステップＳ５００４において、初期化制御部１０３は、転送開始信号をＨｉｇｈにする。転送開始信号がＨｉｇｈになると、ＤＭＡ制御部９０２はステップＳ５００３で指定された不揮発性メモリ１０１のセキュア領域に対して予め定めた値（例えば０）を転送する。
【００８３】
ステップＳ５００５において、初期化制御部１０３は、転送開始信号がＬｏｗになったか否かを判定する。転送開始信号がＬｏｗの場合（ＹＥＳ）は、初期化処理を終了する。一方、転送開始信号がＨｉｇｈの場合（ＮＯ）は、ＤＭＡ制御部９０２による転送処理が完了するまでステップＳ５００５を繰り返す。なお、不揮発性メモリ１０１に複数のセキュア領域が割り当てられている場合は、初期化制御部１０３は、それぞれのセキュア領域に対して図１０に示す初期化処理を行なう。
【００８４】
以上のように、本実施形態の初期化情報部は、ＤＭＡ転送を用いてセキュア領域の初期化を行う。これにより、セキュア領域の初期化処理をより低負荷かつ高速に行うことができる。
【００８５】
（その他の実施形態）
上述の各実施形態で述べた情報処理装置は、種々の撮像システムに適用可能である。撮像システムの一例としては、例えば、撮像した画像データを不揮発性メモリのセキュア領域に記録するデジタルスチルカメラ、デジタルカムコーダー、監視カメラなどがあげられる。このような撮像システムによれば、電池切れ等によりデジタルスチルカメラ等が異常終了した場合であっても、主記憶として用いられる不揮発性メモリのセキュア領域に保持されたＧＰＳログや個人情報が付加された画像データを初期化することができる。
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８６】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００８７】
１０１  不揮発性メモリ（主記憶）
１０２  メモリ制御部
１０３  初期化制御部（ＣＰＵ）
１０４  電源監視部
１０５  初期化情報部
９０１  バス
９０２  ＤＭＡ制御部
Ｄ１    テーブル有効フラグ
Ｄ２    領域開始アドレス
Ｄ３    領域サイズ
Ｄ４    初期化必要フラグ
Ｄ５    初期化判断開始フラグ
【図１】
0006674275.tif 000002
【図２】
0006674275.tif 000003
【図３】
0006674275.tif 000004
【図４】
0006674275.tif 000005
【図５】
0006674275.tif 000006
【図６】
0006674275.tif 000007
【図７】
0006674275.tif 000008
【図８】
0006674275.tif 000009
【図９】
0006674275.tif 000010
【図１０】
0006674275.tif 000011