(58)【調査した分野】(Int.Cl.,DB名)
前記判定部は、前記エラー情報が前記第1不揮発性メモリにエラーがあることを示す情報である場合、前記第1不揮発性メモリのリフレッシュが必要であると判定し、前記エラー情報が前記第1不揮発性メモリにエラーがないことを示す情報である場合、前記第1不揮発性メモリのリフレッシュが必要でないと判定する、
請求項1に記載の情報処理装置。
記憶領域にエラーがあるか否かを示すエラー情報を有し、起動用の第1イメージを記憶する第1不揮発性メモリを備える情報処理装置の動作を制御する情報処理方法であって、
前記情報処理装置は、さらに、前記情報処理装置の緊急起動用の第2イメージを記憶する第2不揮発性メモリを備え、
前記情報処理方法は、
前記エラー情報に基づいて、前記第1不揮発性メモリのリフレッシュが必要であるか否かを判定する判定ステップと、
前記第1不揮発性メモリのリフレッシュが必要であると判定された場合に、前記第1不揮発性メモリのリフレッシュを実行する実行ステップと、
前記第1不揮発性メモリのリフレッシュが必要でないと判定された場合に、前記第1イメージを用いて前記情報処理装置の起動処理を行い、前記第1不揮発性メモリのリフレッシュが必要であると判定された場合に、前記第2イメージを用いて前記情報処理装置の起動処理を行う起動制御ステップと、を含む、
情報処理方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、不揮発性メモリは、電力が供給されない状態でデータを保持できる期間(リテンション期間と呼ぶ)が不揮発性メモリの種別に応じて決まっており、電力が供給されない状態でリテンション期間が過ぎた場合には、データは保障されず、データを正常に読み出すことができないことがある。具体的には、不揮発性メモリは、一般的に、MOS(Metal Oxide Semiconductor)トランジスタからなり、浮遊ゲートとシリコン基板との間に電界を加えて浮遊ゲートに電荷を注入することによって情報を記憶するが、浮遊ゲートに注入された電荷は時間の経過とともに徐々にシリコン基板に逃げて情報が失われてしまうことがある。これにより、不揮発性メモリのリテンション期間が経過している場合に、当該不揮発性メモリに、例えば情報処理装置を起動するためのデータが記憶されているときには、情報処理装置を正常に起動できたりできなかったりすることがあり、情報処理装置を安定して起動できないという問題がある。
【0005】
そこで、本発明は、上記問題を解決するためになされたものであり、安定して起動することができる情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明の一態様に係る情報処理装置は、情報処理装置であって、記憶領域にエラーがあるか否かを示すエラー情報を有し、前記情報処理装置の起動用の第1イメージを記憶する第1不揮発性メモリと、前記エラー情報に基づいて、前記第1不揮発性メモリのリフレッシュが必要であるか否かを判定する判定部と、前記第1不揮発性メモリのリフレッシュが必要であると判定された場合に、前記第1不揮発性メモリのリフレッシュを実行する実行部と、前記第1不揮発性メモリのリフレッシュが必要でないと判定された場合に、前記第1イメージを用いて前記情報処理装置の起動処理を行う起動制御部と、を備える。
【0007】
これによれば、第1不揮発性メモリのリフレッシュ(一定の周期で更新を行う)が必要な場合には、情報処理装置の起動処理を行う前に第1不揮発性メモリがリフレッシュされる。このとき、リフレッシュ中は、第1不揮発性メモリへアクセスできない(アクセスすべきでない)ため、例えば、第1不揮発性メモリのリフレッシュが完了した後に第1イメージを用いて起動処理が行われる。また、例えば、リフレッシュが完了するのを待たずに起動したい場合には、第1不揮発性メモリのリフレッシュを行いつつ、当該リフレッシュと並行して、第1不揮発性メモリへアクセスしないで他の手段を用いて起動処理が行われる。また、リフレッシュが必要ない場合にはそのまま第1イメージを用いて起動処理が行われる。このように、情報処理装置の起動処理を行う前に第1不揮発性メモリのリフレッシュが必要か否か(つまり、第1不揮発性メモリの記憶領域にエラーがあるか否か)が判定されて、判定結果に応じて情報処理装置の起動処理が行われるため、情報処理装置を安定して起動することができる。
【0008】
具体的には、前記判定部は、前記エラー情報が前記第1不揮発性メモリにエラーがあることを示す情報である場合、前記第1不揮発性メモリのリフレッシュが必要であると判定し、前記エラー情報が前記第1不揮発性メモリにエラーがないことを示す情報である場合、前記第1不揮発性メモリのリフレッシュが必要でないと判定してもよい。
【0009】
また、前記情報処理装置は、さらに、前記第1不揮発性メモリよりもデータ保持期間が長い第2不揮発性メモリを備え、前記第2不揮発性メモリは、前記情報処理装置の緊急起動用の第2イメージであって、前記第1イメージよりもデータサイズが小さい第2イメージを記憶し、前記起動制御部は、前記第1不揮発性メモリのリフレッシュが必要と判定された場合に、前記第2イメージを用いて前記情報処理装置の起動処理を行ってもよい。
【0010】
これによれば、第1不揮発性メモリのリフレッシュが必要な場合であっても、第1不揮発性メモリのリフレッシュが完了するのを待つことなく、緊急起動用の第2イメージを用いて起動処理を行うことができる。
【0011】
また、前記第1不揮発性メモリは、eMMC(embedded Multi Media Card)であり、前記実行部は、BKOPS(BacKground OPerationS)制御により前記第1不揮発性メモリのリフレッシュを実行してもよい。
【0012】
これによれば、eMMCの記憶領域をBKOPS制御によりリフレッシュすることができる。
【0013】
また、本発明の一態様に係る情報処理方法は、記憶領域にエラーがあるか否かを示すエラー情報を有し、起動用の第1イメージを記憶する第1不揮発性メモリを備える情報処理装置の動作を制御する情報処理方法であって、前記エラー情報に基づいて、前記第1不揮発性メモリのリフレッシュが必要であるか否かを判定する判定ステップと、前記第1不揮発性メモリのリフレッシュが必要であると判定された場合に、前記第1不揮発性メモリのリフレッシュを実行する実行ステップと、前記第1不揮発性メモリのリフレッシュが必要でないと判定された場合に、前記第1イメージを用いて前記情報処理装置の起動処理を行う起動制御ステップと、を含む。
【0014】
これによれば、安定して情報処理装置を起動することができる情報処理方法を提供できる。
【0015】
また、本発明の一態様に係るプログラムは、上記の情報処理方法をコンピュータに実行させるためのプログラムである。
【0016】
これによれば、安定して情報処理装置を起動することができるプログラムを提供できる。
【0017】
なお、本発明は、装置として実現できるだけでなく、上述したように、その装置を構成する処理手段をステップとする方法として実現したり、それらステップをコンピュータに実行させるプログラムとして実現したり、さらに、そのプログラムを記録したコンピュータ読み取り可能なCD−ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
【発明の効果】
【0018】
本発明により、情報処理装置を安定して起動することができる。
【発明を実施するための形態】
【0020】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0021】
以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、より好ましい形態を構成する任意の構成要素として説明される。
【0022】
なお、同一の構成要素には同一の符号を付し、説明を省略する場合がある。
【0023】
(実施の形態)
以下、
図1から
図3を用いて実施の形態について説明する。
【0024】
[1.情報処理装置の構成]
図1は、実施の形態に係る情報処理装置1の一例を示す構成図である。
【0025】
情報処理装置1は、情報を処理するための装置であり、例えば、プロセッサ(マイクロプロセッサ)、メモリ等を含むコンピュータである。情報処理装置1は、第1不揮発性メモリ10、制御部20およびRAM40を備える。上記メモリは、第1不揮発性メモリ10およびRAM40等に対応し、上記プロセッサは、制御部20等に対応する。また、図示していないが、情報処理装置1は、通信インタフェースを備えていてもよく、第1不揮発性メモリ10または後述する第2不揮発性メモリ30は、外部サーバ等からインターネット等のネットワーク経由で取得されたデータを記憶してもよい。また、図示していないが、情報処理装置1は、ユーザインタフェース等の入出力装置を備えていてもよい。
【0026】
制御部20は、例えばSOC(System On a Chip)であり、機能構成要素として判定部21、実行部22および起動制御部23を有する。また、制御部20は、第2不揮発性メモリ30を有する。例えば、第2不揮発性メモリ30は、プロセッサにより実行される制御プログラムとしてブートローダ31を記憶しており、プロセッサが、ブートローダ31に従って動作することにより、判定部21、実行部22および起動制御部23の動作が制御される。
【0027】
第1不揮発性メモリ10は、例えば、フラッシュメモリであり、具体的には、eMMCである。不揮発性メモリは、電力が供給されない状態でデータを保持できる期間(リテンション期間と呼ぶ)が不揮発性メモリの種別に応じて決まっており、電力が供給されない状態でリテンション期間が過ぎた場合には、データは保障されず、データを正常に読み出すことができないことがある。
【0028】
そこで、第1不揮発性メモリ10は、記憶領域にエラーがあるか否かを示す情報(以後、エラー情報とも呼ぶ)を提供可能となっている。具体的には、第1不揮発性メモリ10は、浮遊ゲートに注入された電荷がシリコン基板に逃げて情報が失われかけている状態を検知し、当該状態にあることを第1不揮発性メモリ10が有する特定のレジスタのビットを立てることで、外部(例えば、制御部20)からアクセスがあった場合にエラー情報を知らせることができる。つまり、第1不揮発性メモリ10は、自発的に外部へエラー情報を通知等するわけではなく、制御部20が当該レジスタを読み出すことで、結果的にはエラー情報を制御部20へ提供することになる。なお、本発明では、記憶領域の情報が失われてはいないが、失われかけている状態を記憶領域にエラーがあるとしている。第1不揮発性メモリ10は、情報処理装置1の起動用の第1イメージ11を記憶する。第1イメージ11については、後述する。
【0029】
第2不揮発性メモリ30は、例えば、フラッシュメモリであり、NAND型のフラッシュメモリ等である第1不揮発性メモリ10よりもリテンション期間が長い、NOR型のフラッシュメモリ等である。また、例えば、第2不揮発性メモリ30は、一般的に第1不揮発性メモリ10よりも高価であるため、容量が第1不揮発性メモリ10よりも小さいものが使用されることが多い。よって、本実施の形態においても、第2不揮発性メモリ30は、容量が第1不揮発性メモリ10よりも小さいものとして説明する。第2不揮発性メモリ30は、情報処理装置1の緊急起動用の第2イメージ32であって、第1イメージ11よりもデータサイズが小さい第2イメージ32を記憶する。第2イメージ32については、後述する。第2不揮発性メモリ30は、第1不揮発性メモリ10よりもリテンション期間が長く信頼性が高いメモリであるため、上述したような情報処理装置1の起動に必要となるブートローダ31や緊急時に使用されるような重要なデータが記憶され得る。
【0030】
RAM40は、揮発性メモリであり、第1不揮発性メモリ10または第2不揮発性メモリ30等から読み出されたプログラム等がRAM40に展開されることで、情報処理装置1が動作する。
【0031】
第1イメージ11は、例えば、情報処理装置1を高速起動するためのスナップショットである。本実施の形態では、例えば、第1イメージ11は、ある瞬間の情報処理装置1の動作状態を復元処理できる情報(動作状態を復元するためのデータ、処理コマンドなどを含む)である。
【0032】
制御部20は、起動時に第1イメージ11をRAM40に展開することで、情報処理装置1を高速で起動させることができる。
【0033】
第2イメージ32は、例えば、情報処理装置1を緊急高速起動するためのスナップショットである。本実施の形態では、例えば、第2イメージ32は、情報処理装置1を緊急起動する際のある瞬間の情報処理装置1の動作状態を復元処理できる情報であり、上述したように、第1イメージ11よりもデータサイズが小さく、高速起動のための必要最低限の情報しか有していない。したがって、第2イメージ32を、第1不揮発性メモリ10よりも容量が小さい第2不揮発性メモリ30に記憶することができる。制御部20は、緊急起動時に第2イメージ32をRAM40に展開することで、情報処理装置1を高速で緊急起動させることができる。第2イメージ32は、例えば、外部サーバ等から取得されて第2不揮発性メモリ30に記憶されていてもよい。
【0034】
判定部21は、第1不揮発性メモリ10が有するエラー情報に基づいて、第1不揮発性メモリ10のリフレッシュが必要であるか否かを判定する。
【0035】
実行部22は、第1不揮発性メモリ10のリフレッシュが必要であると判定された場合に、第1不揮発性メモリ10のリフレッシュを実行する。
【0036】
起動制御部23は、情報処理装置1の起動を制御する機能構成要素であり、第1イメージ11または第2イメージ32等のスナップショットを用いて、情報処理装置1を高速で起動する。
【0037】
判定部21、実行部22および起動制御部23の動作の詳細は、後述する
図2および
図3で説明する。
【0038】
[2.情報処理装置の動作]
次に、情報処理装置1の動作について、
図2を用いて説明する。
【0039】
図2は、実施の形態に係る情報処理装置1の動作の一例を示すフローチャートである。
【0040】
まず、判定部21は、第1不揮発性メモリ10のリフレッシュが必要であるか否かを判定する(ステップS11)。具体的には、判定部21は、第1不揮発性メモリ10から取得したエラー情報が第1不揮発性メモリ10にエラーがあることを示す情報である場合、第1不揮発性メモリ10のリフレッシュが必要であると判定し、エラー情報が第1不揮発性メモリ10にエラーがないことを示す情報である場合、第1不揮発性メモリ10のリフレッシュが必要でないと判定する。
【0041】
第1不揮発性メモリ10のリフレッシュが必要であると判定された場合(ステップS11でYes)、実行部22は、第1不揮発性メモリ10のリフレッシュを実行する(ステップS12)。具体的には、実行部22は、BKOPS制御により第1不揮発性メモリ10のリフレッシュを実行する。例えば、BKOPS制御では、第1不揮発性メモリ10内でエラーが発生しているブロックをメモリ内の代替ブロックと置き換え、電荷を復活(充足)させるということが行われることで、第1不揮発性メモリ10がリフレッシュされる。したがって、ステップS11およびS12での処理が第1不揮発性メモリ10にエラーがなくなるまで繰り返し行われることで、第1不揮発性メモリ10のリフレッシュが完了する。なお、第1不揮発性メモリ10のリフレッシュが完了するまでは、起動制御部23の第1不揮発性メモリ10へのアクセスは制限されるため、その間は第1イメージ11を用いた起動処理を行うことができない。
【0042】
第1不揮発性メモリ10のリフレッシュが必要でないと判定された場合(ステップS11でNo)、起動制御部23は、第1イメージ11を用いて情報処理装置1の起動処理を行う(ステップS13)。具体的には、起動制御部23は、第1イメージ11をRAM40に展開して情報処理装置1の高速起動処理を行う。起動制御部23は、第1不揮発性メモリ10のリフレッシュが必要でなかった場合には、リフレッシュしていない第1不揮発性メモリ10に記憶された第1イメージ11をそのまま用いて情報処理装置1の起動処理を行い、第1不揮発性メモリ10のリフレッシュが必要だった場合には、第1不揮発性メモリ10のリフレッシュの完了後に第1イメージ11を用いて情報処理装置1の起動処理を行う。
【0043】
なお、実行部22が第1不揮発性メモリ10のリフレッシュを実行しつつ、それと並行して、起動制御部23は、第2イメージ32を用いて情報処理装置1の緊急高速起動処理を行ってもよい。
【0044】
図3は、実施の形態に係る情報処理装置1の動作の他の一例を示すフローチャートである。
【0045】
第1不揮発性メモリ10のリフレッシュが必要であると判定された場合(
図2のステップS11でYes)、実行部22は、第1不揮発性メモリ10のリフレッシュを実行しつつ(
図2のステップS12)、起動制御部23は、第2イメージ32を用いて情報処理装置1の起動処理を行う(ステップS21)。具体的には、起動制御部23は、第2イメージ32をRAM40に展開して情報処理装置1の緊急高速起動処理を行う。第1不揮発性メモリ10よりも第2不揮発性メモリ30の方がリテンション期間が長く、第1不揮発性メモリ10にエラーが発生していても、第2不揮発性メモリ30にはエラーが発生していない可能性が高いため、第2イメージ32を用いての起動処理が可能となっている。
【0046】
第1不揮発性メモリ10のリフレッシュが必要でないと判定された場合(ステップS11でNo)、起動制御部23は、リフレッシュしていない第1不揮発性メモリ10に記憶された第1イメージ11をそのまま用いて情報処理装置1の起動処理を行う(ステップS22)。
【0047】
このように、本発明では、不測の事態に備えて、情報処理装置1の起動前に第1不揮発性メモリ10のリフレッシュが必要であるか否かの判定を行い、判定結果に応じて、第1イメージ11を用いて高速起動したり、第2イメージ32を用いて高速起動したりする。つまり、第1不揮発性メモリ10にエラーが生じたために情報処理装置1の起動ができなくなってしまうということを抑制できる。
【0048】
[3.効果]
以上説明したように、第1不揮発性メモリ10のリフレッシュが必要な場合には、情報処理装置1の起動処理を行う前に第1不揮発性メモリ10がリフレッシュされる。このとき、リフレッシュ中は、第1不揮発性メモリ10へアクセスできないため、例えば、第1不揮発性メモリ10のリフレッシュが完了した後に第1イメージ11を用いて起動処理が行われる。また、例えば、リフレッシュが完了するのを待たずに起動したい場合には、第1不揮発性メモリ10のリフレッシュを行いつつ、当該リフレッシュと並行して、第1不揮発性メモリ10へアクセスしないで他の手段(例えば第2イメージ32等)を用いて起動処理が行われる。また、リフレッシュが必要ない場合にはそのまま第1イメージ11を用いて起動処理が行われる。このように、情報処理装置1の起動処理を行う前に第1不揮発性メモリ10のリフレッシュが必要か否か(つまり、第1不揮発性メモリ10の記憶領域にエラーがあるか否か)が判定されて、判定結果に応じて情報処理装置1の起動処理が行われるため、情報処理装置1を安定して起動することができ、ユーザの利便性を向上させることができる。
【0049】
また、第1不揮発性メモリ10のリフレッシュが必要な場合であっても、第1不揮発性メモリ10のリフレッシュが完了するのを待つことなく、緊急起動用の第2イメージ32を用いることで、ユーザの利便性を損なわない程度の起動処理を行うことができる。
【0050】
(その他の実施の形態)
以上、本発明の情報処理装置1について、実施の形態に基づいて説明したが、本発明は、上記実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、および、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【0051】
例えば、第2不揮発性メモリ30に、第2イメージ32が記憶されていなくてもよく、起動制御部23は、第1不揮発性メモリ10のリフレッシュが必要であると判定された場合に、第2イメージ32を用いて情報処理装置1の起動処理を行わず第1不揮発性メモリ10のリフレッシュが完了するのを待機していてもよい。
【0052】
また、例えば、第2不揮発性メモリ30は、制御部20と一体に設けられていたが、別体に設けられていてもよい。
【0053】
また、本発明は、情報処理装置1として実現できるだけでなく、例えば情報処理装置1を構成する各構成要素が行うステップ(処理)を含む方法として実現できる。
【0054】
具体的には、情報処理方法は、起動用の第1イメージ11を記憶し、第1不揮発性メモリ10にエラーがあるか否かを示すエラー情報を有する第1不揮発性メモリ10を備える情報処理装置1の動作を制御する情報処理方法である。
図2に示されるように、情報処理方法は、エラー情報に基づいて、第1不揮発性メモリ10のリフレッシュが必要であるか否かを判定する判定ステップ(ステップS11)と、第1不揮発性メモリ10のリフレッシュが必要であると判定された場合に、第1不揮発性メモリ10のリフレッシュを実行する実行ステップ(ステップS12)と、第1不揮発性メモリ10のリフレッシュが必要でないと判定された場合に、第1イメージ11を用いて情報処理装置1の起動処理を行う起動制御ステップ(ステップS13)と、を含む。
【0055】
また、例えば、それらのステップは、コンピュータ(コンピュータシステム)によって実行されてもよい。そして、本発明は、それらの方法に含まれるステップを、コンピュータに実行させるためのプログラムとして実現できる。さらに、本発明は、そのプログラムを記録したCD−ROM等である非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
【0056】
例えば、本発明が、プログラム(ソフトウェア)で実現される場合には、コンピュータのCPU、メモリおよび入出力回路等のハードウェア資源を利用してプログラムが実行されることによって、各ステップが実行される。つまり、CPUがデータをメモリまたは入出力回路等から取得して演算したり、演算結果をメモリまたは入出力回路等に出力したりすることによって、各ステップが実行される。
【0057】
また、上記実施の形態の情報処理装置1に含まれる複数の構成要素は、それぞれ、専用または汎用の回路として実現されてもよい。これらの構成要素は、1つの回路として実現されてもよいし、複数の回路として実現されてもよい。
【0058】
また、上記実施の形態の情報処理装置1に含まれる複数の構成要素は、集積回路(IC:Integrated Circuit)であるLSI(Large Scale Integration)として実現されてもよい。これらの構成要素は、個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。LSIは、集積度の違いにより、システムLSI、スーパーLSIまたはウルトラLSIと呼称される場合がある。
【0059】
また、集積回路はLSIに限られず、専用回路または汎用プロセッサで実現されてもよい。プログラム可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定が再構成可能なリコンフィギュラブル・プロセッサが、利用されてもよい。
【0060】
さらに、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、情報処理装置1に含まれる各構成要素の集積回路化が行われてもよい。
【0061】
その他、実施の形態に対して当業者が思いつく各種変形を施して得られる形態や、本発明の趣旨を逸脱しない範囲で各実施の形態における構成要素および機能を任意に組み合わせることで実現される形態も本発明に含まれる。