説明

情報処理装置及びプロセッサ並びに情報処理方法

【課題】情報処理装置について、装置構成を複雑化させることなく、動作の高速化と高信頼性を実現する。
【解決手段】本発明の一例である情報処理装置1は、プロセッサ2と、プロセッサ2に使用される不揮発性メモリ3と、プロセッサ2から不揮発性メモリ3への書き込みが発生した場合に、書き込み位置の重複回数を抑えるために当該書き込み位置がずれるように書き込みアドレスを発生させるアドレス発生手段16と、書き込みの新しさを表わす順序情報19を発生させる順序発生手段17と、アドレス発生手段16によって発生された書き込みアドレスに対して、順序発生手段17によって発生された順序情報19を対応付けて、書き込み情報21を記憶する書き込み制御手段18とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプロセッサ並びに情報処理方法に関する。
【背景技術】
【0002】
従来の情報処理装置においては、プロセッサのメインメモリとして、例えばDRAMなどの揮発性メモリが使用されている。さらに、従来の情報処理装置では、揮発性メモリと組み合わせて2次記憶装置が使用される。
【0003】
この従来の情報処理装置では、電源を切るとメインメモリの内容が消えてしまう。このため、従来の情報処理装置では、毎回ブート時に、システムの立ち上げが必要であり、プログラム起動又はデータの読み込みについてもその都度このプログラム又はデータを2次記憶装置からメインメモリに読み込む必要がある。
【特許文献1】特開2001−266580号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上述したように、従来の情報処理装置においては、毎回ブート時に、システムの立ち上げが必要であり、プログラム又はデータを2次記憶装置からメインメモリに読み込む必要があり、実行に時間を要していた。
【0005】
また、従来の情報処理装置では、電源が切れた場合にメインメモリの内容が保存されない。このため、従来の情報処理装置が正しくシャットダウンしなかった場合に、データ、システム、プログラムが破壊される可能性がある。
【0006】
本発明は、上記実情に鑑みてなされたものであり、装置構成を複雑化させることなく、動作の高速化と高信頼性を実現する情報処理装置及びプロセッサ並びに情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の態様に係る情報処理装置は、プロセッサと、プロセッサに使用される不揮発性メモリと、プロセッサから不揮発性メモリへの書き込みが発生した場合に、書き込み位置の重複回数を抑えるために当該書き込み位置がずれるように書き込みアドレスを発生させるアドレス発生手段と、書き込みの新しさを表わす順序情報を発生させる順序発生手段と、アドレス発生手段によって発生された書き込みアドレスに対して、順序発生手段によって発生された順序情報を対応付けて、書き込み情報を記憶する書き込み制御手段とを具備する。
【0008】
本発明の第2の態様に係るプロセッサは、当該プロセッサから不揮発性メモリへの書き込みが発生した場合に、書き込み位置の重複回数を抑えるために当該書き込み位置がずれるように書き込みアドレスを発生させるアドレス発生手段と、書き込みの新しさを表わす順序情報を発生させる順序発生手段と、アドレス発生手段によって発生された書き込みアドレスに対して、順序発生手段によって発生された順序情報を対応付けて、書き込み情報を記憶する書き込み制御手段とを具備する。
【0009】
本発明の第3の態様に係る情報処理方法では、プロセッサから、当該プロセッサに使用される不揮発性メモリへの書き込みが発生した場合に、アクセス制御装置は、書き込み位置の重複回数を抑えるために当該書き込み位置がずれるように書き込みアドレスと、書き込みの新しさを表わす順序情報を発生させ、アクセス制御装置は、発生された書き込みアドレスに対して、発生された順序情報を対応付けて、書き込み情報を記憶する。
【発明の効果】
【0010】
本発明により、装置構成を複雑化させることなく、装置の動作の高速化と高信頼性を実現することができる。
【発明を実施するための最良の形態】
【0011】
以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略同一の構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【0012】
(第1の実施の形態)
本実施の形態に係る情報処理装置においては、プロセッサに対して不揮発性のメインメモリ(主記憶装置)が利用される。
【0013】
なお、プロセッサが、不揮発性メモリをメインメモリではない用途で用いる場合であっても、同様のアクセス制御を用いることが可能である。
【0014】
図1は、本実施の形態に係る情報処理装置の詳細構成の一例を示すブロック図である。
【0015】
また、図2は、本実施の形態に係る情報処理装置の概略構成の一例を示すブロック図である。
【0016】
情報処理装置1は、プロセッサ2と不揮発性メインメモリ3とを具備する。プロセッサ2は、2次記憶装置4、外部アクセス装置5、I/O装置6などの各種装置をアクセス可能である。なお、2次記憶装置4、外部アクセス装置5、I/O装置6などの他の装置が、情報処理装置1の一部として備えられるとしてもよい。
【0017】
不揮発性メインメモリ3としては、例えばフラッシュ(Flash)メモリが用いられる。フラッシュメモリとしては、NAND型、NOR型などのフラッシュメモリを適用可能である。
【0018】
不揮発性メインメモリ3は、コアプログラム(復元用)7、オペレーティングシステム8、例えば、プログラムP1,P2などの各種プログラム(命令)、例えばデータD1,D2などの各種データを記憶する。
【0019】
不揮発性メインメモリ3における上記の各種のプログラム及びデータは、例えば、2次記憶装置4、外部アクセス装置5、I/O装置6から不揮発性メインメモリ3に記憶され、あるいは、プロセッサ2から不揮発性メインメモリ3に記憶される。
【0020】
プロセッサ2は、少なくとも一つの演算コア(この図1の例では4つ)91〜94、キャッシュメモリ10、ライトバッファ11、メモリ管理ユニット(MMU)12を具備し、さらに、状態情報生成部(例えばPSW制御部)13、アクセス制御部14を具備する。
【0021】
演算コア91〜94は、それぞれがキャッシュメモリ10又は不揮発性メインメモリ3をアクセスしつつ、プログラムを実行する。演算コア91〜94は、並列に動作可能とする。
【0022】
キャッシュメモリ10の出力段にはライトバッファ11が設けられており、キャッシュメモリ10の内容(例えば、データとプログラムのうちの少なくとも一方を含むページ)は、ライトバッファ11経由で、不揮発性メインメモリ3に記憶される。
【0023】
なお、本実施の形態においては、例として、キャッシュメモリ10及び不揮発性メインメモリ3への書き込み、読み出し、消去は、所定のページ単位、ページサイズよりも大きいブロックサイズのブロック単位、又は、ページサイズの整数倍の単位、ブロックサイズの整数倍の単位で行われるとする。
【0024】
本実施の形態においては、キャッシュメモリ10のキャッシュエントリサイズ及び不揮発性メインメモリ3のメモリアクセスサイズを、ページサイズとする。これにより、キャッシュメモリ10及び不揮発性メインメモリ3のメモリ管理、不揮発性メインメモリ3のアクセス制御を簡略化することができ、情報処理装置1のハードウェア量を削減でき、情報処理装置1の処理効率化を図ることができる。
【0025】
メモリ管理ユニット12は、キャッシュメモリ10及び不揮発性メインメモリ3について、仮想アドレスなどの論理アドレスと物理アドレスとを関係付けたアドレス変換情報15を備え、論理アドレスと物理アドレスとの間の変換を行う。
【0026】
状態情報生成部13は、所定のタイミングで、プロセッサの状態及びプログラムの状態を表わす状態情報(例えばプログラム状態語:PSW)を求める。例えば、状態情報生成部13は、所定時間を経過する毎に、状態情報を生成する。また、例えば、状態情報生成部13は、所定の回数、プロセッサ2から不揮発性メインメモリ3への書き込みが発生するたびに、状態情報を生成する。
【0027】
アクセス制御部14は、プロセッサ2から不揮発性メインメモリ3へのデータ・プログラムなどの書き込み及び読み出し、不揮発性メインメモリ3におけるデータ・プログラムなどの消去など、プロセッサ2と不揮発性メインメモリ3との間におけるアクセスを制御する。本実施の形態において、不揮発性メインメモリ3への書き込み及び読み出しは例えばページ単位で行われ、消去は例えばブロック単位で行われるとしてもよいが、他のサイズによって書き込み、読み出し、消去が行われるとしてもよい。
【0028】
本実施の形態において、アクセス制御部14は、アドレス発生部16、順序発生部17、書き込み制御部18を具備する。
【0029】
アドレス発生部16は、プロセッサ2から不揮発性メインメモリ3へのデータ・プログラムの書き込みが発生すると、所定の規則にそって、書き込み位置の重複回数を抑える(書き込み回数の均等化を図る)ために当該書き込み位置がずれるように(例えばシーケンシャルに)、書き込みアドレスを発生させる。
【0030】
例えば、アドレス発生部16は、所定の初期値から順に書き込み先となるアドレスの値を増加させていき、所定の最終値(初期値より大)に達すると、再び、所定の初期値から順に書き込み先となるアドレスの値を増加させていく、としてもよい。
【0031】
また、これとは逆に、アドレス発生部16は、所定の初期値から順に書き込み先となるアドレスの値を減少させていき、所定の最終値(初期値より小)に達すると、再び、所定の初期値から順に書き込み先となるアドレスの値を減少させていく、としてもよい。
【0032】
さらに、例えば、アドレス発生部16は、1巡目において数スペースを空けて(例えば所定の間隔で)順に書き込み先のアドレスの値を発生させ、2巡目において1巡目で書き込みのなされなかった空スペースにおいて書き込み先のアドレスの値を順に発生させ、以下同様に、n巡目においてn−1巡目までで書き込みのなされなかった空スペースにおいて書き込み先のアドレスの値を順に発生させる動作を繰り返し、利用可能な空スペースがなくなった場合に、上記の1巡目から再び同様の動作を繰り返すとしてもよい。
【0033】
さらに、アドレス発生部16は、メモリ管理ユニット12のアドレス変換情報15を参照して、アドレス変換情報15で未使用のアドレスのみを、書き込みアドレスとして発生させる。
【0034】
順序発生部17は、書き込みの新しさを判断するための順序情報を発生させる。本実施の形態において、順序発生部17は、不揮発性メインメモリ3への書き込みが発生するたびに、カウントアップを実行し、このカウント値を順序情報として用いる。この順序情報を書き込み対象のデータ・プログラムと関係付けて不揮発性メインメモリ3に記憶することで、同じデータ・プログラムに関する書き込みが複数の位置になされている場合に、順序情報の大きいデータ・プログラムが最新であることを判断可能となる。
【0035】
書き込み制御部18は、プロセッサ2から不揮発性メインメモリ3への書き込み処理を制御する。
【0036】
書き込み制御部18は、通常の書き込み時に、書き込み対象のエントリのV(Valid)フラグを1にセットする。
【0037】
書き込み制御部18は、不揮発性メインメモリ3上のVフラグが1であってもメモリ管理ユニット12で使用されていないと判断されたブロックについては、消去を行った上で、再度書き込みを行い、Vフラグを1とする。
【0038】
書き込み制御部18は、所定数以上のVフラグが1となったか(例えば全てのVフラグが1となったか)判断し、所定数以上のVフラグが1となった場合に、例外処理を発生させ、ソフトウェアにより不揮発性メインメモリ3における不要部分のクリーンアップを行い、該当部分を消去してVフラグを0とする。
【0039】
本実施の形態において、書き込み制御部18は、不揮発性メインメモリ3への書き込み時に、アドレス発生部16によって発生されたアドレスに対して、順序発生部17によって発生された順序情報(カウンタ値)19、Vフラグ20「1」、書き込み対象のデータ・プログラム(ページ)21、状態情報フラグ22「0」、MMU情報23を記憶する。
【0040】
ここで、状態情報フラグ22は、状態情報の書き込みのためのエントリであるか否かを表わす情報であり、例えばPSWフラグである。該当エントリが状態情報の書き込みである場合には、状態情報フラグ22には1がセットされ、該当エントリが状態情報の書き込みでない場合には、状態情報フラグ22には0がセットされる。
【0041】
さらに、書き込み制御部18は、状態情報生成部13によって新規の状態情報が発生された場合には、発生された状態情報24を対応付けてエントリの書き込みを行う。この状態情報24の書き込み時において、書き込み制御部18は、アドレス発生部16によって発生されたアドレスに対して、順序発生部17によって発生された順序情報19、Vフラグ20「1」、状態情報24、状態情報フラグ22「1」、MMU情報23を記憶する。
【0042】
本実施の形態において、不揮発性メインメモリ3はコアプログラム7を記憶している。コアプログラム7は、情報処理装置1の電源が再投入されるなど、プロセッサ2の状態を復元させる場合に、プロセッサ2の演算コア91〜94の少なくとも一つによって実行される。
【0043】
コアプログラム7にしたがって、プロセッサ2は、不揮発性メインメモリ3の内容(書き込まれているエントリ、順序情報19、Vフラグ20、状態情報フラグ22、MMU情報23など)を順に読み出し、順序情報19に基づいて、最新の状態の状態情報24を求め、この最新の状態情報24でプロセッサ2を復元する。
【0044】
また、コアプログラム7にしたがって、プロセッサ2は、順序情報19に基づいて、最新の状態のMMU情報23を読み出し、この最新のMMU情報23でプロセッサ2のメモリ管理ユニット12を復元する。
【0045】
なお、コアプログラム7は、プロセッサ2が適切に再動作可能な状態情報24とMMU情報23とを選択し、この選択された状態情報24とMMU情報23の中から、最新の状態情報24とMMU情報23とを用いて、プロセッサ2を復元するとしてもよい。
【0046】
本実施の形態においては、不揮発性メインメモリ3に記憶されているコアプログラム7によりプロセッサ2の復元を実現しているが、例えば、このコアプログラム7を実行する演算コアと同様の処理を行う復元ユニットを用いるとしてもよい。本実施の形態では、コアプログラム7を用いることで装置構成の簡略化が実現されている。
【0047】
上記図1では、不揮発性メインメモリ3内に、コアプログラム7とメインメモリとして使用されるデータ部25とが含まれており、データ部25には、エントリごとに、順序情報19、Vフラグ20、データ・プログラム21又は状態情報24、状態情報フラグ22、MMU情報23が含まれる。
【0048】
しかしながら、不揮発性メインメモリ3の記憶形態はこの図1の状態に限定されず、各種の情報が必要に応じて関連付けられていればよい。
【0049】
上述したように、キャッシュメモリ10のキャッシュサイズと、不揮発性メインメモリ3の書き込みサイズ、データ・プログラム21及び状態情報24の書き込みサイズとは、一致又は整数倍の関係とする。これにより、ハードウェア量を削減させることができ、不揮発性メインメモリ3の制御を簡略化でき、情報処理装置1の処理を効率化させることができる。
【0050】
上記のような構成を持つ情報処理装置1の動作について、以下で説明する。
【0051】
上記の図1,2において、プロセッサ2は、例えばNAND型フラッシュメモリ又はNOR型フラッシュメモリなどの不揮発性メインメモリ3に直接接続される構成を持つ。
【0052】
情報処理装置1は、最初の起動時に、通常の情報処理システムのように、オペレーティングシステム8のブート処理を実行し、不揮発性メインメモリ3に実行イメージを展開する。情報処理装置1は、その後の起動時においては、オペレーティングシステム8が不揮発性メインメモリ3に記憶されているため、不揮発性メインメモリ3のオペレーティングシステム8を使用し、不揮発性メインメモリ3に実行イメージを展開する動作を省略し、不揮発性メインメモリ3のオペレーティングシステム8を直接起動可能である。
【0053】
上記図2では、不揮発性メインメモリ3上に、オペレーティングシステム8、プログラムP1,P2、データD1,D2が展開された状態を示している。
【0054】
演算コア91〜94は、仮想アドレスを用いて例えばページ(プログラム、データなどを含む)の読み出し、書き込みを行う。アクセス対象のページがキャッシュメモリ10上にある場合は、キャッシュメモリ10から演算コア91〜94に、アクセス対象のページが返される。
【0055】
アクセス対象のページがキャッシュメモリ10上にない場合、メモリ管理ユニット12は、アドレス変換情報12(ページテーブル)を用いて、仮想アドレスを不揮発性メインメモリ3上のアドレスに変換する。ここで、アクセス対象のページに関するアドレスが、メモリ管理ユニット12のアドレス変換情報12にない場合、例外イベントが発生し、ソフトウェアによる例外処理が実行される。この例外処理により、アクセス対象のページが、2次記憶装置、外部アクセス装置、I/O装置などの装置から、キャッシュメモリ10又は不揮発性メインメモリ3に記憶される。
【0056】
図3は、本実施の形態に係る情報処理装置1におけるライトバックの一例を示すフローチャートである。
【0057】
新たなページを、不揮発性メインメモリ3(又は2次記憶装置4、外部アクセス装置5、I/O装置6などの装置のいずれか)から、キャッシュメモリ10へ持ってくる場合、ライトバック(キャッシュメモリ10に記憶されているページを、不揮発性メインメモリ3に書き込む処理)が必要になる場合がある。
【0058】
ライトバックが実行される場合、ステップS1において、アクセス制御部14の書き込み制御部18は、メモリ管理ユニット12を参照し、アドレス発生部16で発生されたアドレスが未使用か否か判断する。
【0059】
アドレス発生部16で発生されたアドレスが使用中の場合、ステップS2において、アドレス制御部14のアドレス発生部16は、次のアドレスを発生させ、処理は、上記ステップS1に戻る。これにより、現在使用中のページは新しいページで上書きされないことになる。不揮発性メインメモリ3における書き込み対象のアドレスは、次の空いているエントリのアドレスまでスキップされる。なお、ステップS1,S2のように、ライトバックが開始されてから未使用のアドレスを求めるのではなく、予め次の未使用のアドレスを検出しておくとしてもよい。
【0060】
アドレス発生部16で発生されたアドレスが使用中でない場合、ステップS3において、書き込み制御部18は、ライトバック対象のページを、不揮発性メインメモリ3の未使用であり発生されたアドレスの示す位置に書き戻す。
【0061】
この時、同時に、書き込み制御部18は、メモリ管理ユニット12のアドレス変換情報15を、書き戻し後の状態を表わすように更新し、ライトバック対象のページについて、現在の順序情報19、メモリ管理ユニット12のアドレス変換情報15を含むMMU情報23を、不揮発性メインメモリ3に書き込む。また、書き込み制御部18は、Vフラグ20を1とし、状態情報フラグ22を0とし、不揮発性メインメモリ3に書き込む。
【0062】
本実施の形態においては、順序情報19、Vフラグ20、ページ21、状態情報フラグ22、MMU情報23が、発生したアドレスによって示される不揮発性メインメモリ3の位置に記憶される形式により、書き込みが行われる。
【0063】
上記ステップS3の書き込み処理の後、アクセス制御部14のアドレス発生部16は、ステップS4において、新たなアドレスを発生させ、順序発生部17は、新たな順序情報を発生させる。
【0064】
例えば、アドレス発生部16は、カウンタによりアドレスとなる値を増加させることで新たなアドレスを発生させ、新たなアドレスが所定値以上の場合に、初期値のアドレスを発生させ、同様の動作を繰り返す。また、例えば、順序発生部17は、カウンタにより書き込みの発生順序を示す値を増加させる。
【0065】
ここで、状態情報生成部13は、所定の状態情報イベントが発生した場合に(定期的に、又は、所定回数の書き込み動作実行の後)、プロセッサ2内部のコンテクスト情報などを含む状態情報24を生成する。
【0066】
アクセス制御部14の書き込み制御部18は、状態情報生成部13によって生成された状態情報24を、不揮発性メインメモリ3に記憶する。なお、このように状態情報24を不揮発性メインメモリ3に記憶する場合には、状態情報フラグ22に1がセットされて書き込みが行われる。
【0067】
状態情報24には、汎用レジスタ、制御レジスタ、プログラムカウンタなどのプロセッサ2の動作状態を復元するために必要な情報が含まれている。
【0068】
状態情報24を不揮発性メインメモリ3に書き込む場合において、キャッシュメモリ10中にダーティラインが存在する場合には、まずこのダーティラインが不揮発性メインメモリ3に書き戻される。
【0069】
さらに、もし、2次記憶装置4、外部アクセス装置5、I/O装置6などの装置において、復元不可能な状態が存在する場合には、状態情報生成部13は、SYNCなどの操作により、これらの装置を復元可能な状態とし、その後状態情報24を生成する。そして、書き込み制御部18が、生成された状態情報24の書き込み処理を行う。
【0070】
図4は、本実施の形態に係る情報処理装置1におけるフェッチの一例を示すフローチャートである。
【0071】
ステップT1において、メモリ管理ユニット12は、アクセス対象のデータ(プログラムでも同様)がキャッシュメモリ10に記憶されているか(キャッシュヒットか)否か判断する。
【0072】
フェッチ対象のデータがキャッシュメモリ10に記憶されている場合、ステップT2において、演算コア41〜44は、キャッシュメモリ10上のデータをロードする。
【0073】
データがキャッシュメモリ10に記憶されていない場合、ステップT3において、メモリ管理ユニット12は、アドレス変換情報15に、このフェッチ対象のデータに関するページエントリが存在するか否か判断する。
【0074】
メモリ管理ユニット12のアドレス変換情報15にフェッチ対象データのアドレスに関するページエントリが存在する場合、ステップT4において、メモリ管理ユニット12は、アドレス変換情報15のフェッチ対象のページエントリを参照し、論理アドレスを物理アドレスに変換する。
【0075】
メモリ管理ユニット12のアドレス変換情報15にフェッチ対象データのアドレスに関するページエントリが存在しない場合、ステップT5において、例外処理が実行される。
【0076】
例外処理が実行されると、ステップT6において、アクセス制御部14は、ソフトウェア処理により、フェッチ対象データを、例えば、2次記憶装置4、外部アクセス装置5、I/O装置6などの装置から不揮発性メインメモリ3にロードする。メモリ管理ユニット12は、ロード後のページエントリをアドレス変換情報15にセットし、アドレス変換情報15の更新を行う。その後処理は、ステップT4に移る。
【0077】
ステップT4の後、ステップT7において、アクセス制御部14は、不揮発性メインメモリ3の物理アドレスに記憶されているデータを読み出し、キャッシュメモリ10へロードする。また、アクセス制御部14は、必要であれば、直接、読み出したデータを演算コア41〜44にフィードする。
【0078】
図5は、本実施の形態に係る情報処理装置1の復元処理(再構成)の一例を示すフローチャートである。
【0079】
例えば、情報処理装置1の電源が再投入されると、プロセッサ2は、不揮発性メインメモリ3に記憶されているコアプログラム7を読み出し、コアプログラム7を実行し、復元を行う。コアプログラム7は、演算コア41〜44のうちの少なくとも一つによって実行されるが、以下においては、演算コア41においてコアプログラム7が実行される場合を例として説明する。
【0080】
ステップU1において、コアプログラム7を実行する演算コア41は、不揮発性メインメモリ3を順に読み出す。
【0081】
そして、コアプログラム7を実行する演算コア41は、Vフラグ20が「1」のエントリの中から、順序情報19が最新のエントリを求め、この最新のエントリのアドレス(最新のアドレス)を求める。さらに、コアプログラム7を実行する演算コア41は、状態情報フラグ22が「1」のエントリの中から、順序情報19が最新のエントリの状態情報24(最新の状態情報)、順序情報19が最新のエントリのMMU情報23(最新のMMU情報)を求める。
【0082】
ステップU2において、コアプログラム7を実行する演算コア41は、Vフラグ20が「1」で順序情報19が最新のエントリのアドレスに対する次のアドレスを、アドレス発生部16に発生させる。
【0083】
コアプログラム7を実行する演算コア41は、Vフラグ20が「1」で順序情報19が最新のエントリの順序情報に対する次の順序情報を、順序発生部17に発生させる。
【0084】
コアプログラム7を実行する演算コア41は、Vフラグ20が「1」で順序情報19が最新のエントリのMMU情報23に基づいて、メモリ管理ユニット12を復元する。
【0085】
コアプログラム7を実行する演算コア41は、状態情報フラグ22が「1」で順序情報19が最新の状態情報24をロードし、このロードした状態情報24に基づいて、プロセッサ2の状態を復元する。
【0086】
ステップU3において、演算コア41は、コアプログラム7の実行から抜けて、ロードされた状態情報24の示す状態から動作を再開する。
【0087】
以上説明した本実施の形態に係る情報処理装置1の効果について説明する。
【0088】
従来の情報処理装置では、メインメモリに揮発性メモリが使用されているため、再起動のたびにオペレーティングシステム、プログラム、データをロードする必要があった。
【0089】
これに対して、本実施の形態に係る情報処理装置1においては、メインメモリに不揮発性メモリが使用されるため、再起動する場合であっても、必要なプログラム及びデータが不揮発性メインメモリ3に記憶されているため、システムブート、プログラム及びデータのロードを削減すること又は不要とすることができ、情報処理装置の処理を高速化させることができる。すなわち、本実施の形態に係る情報処理装置1では、プロセッサ2のメインメモリに不揮発性メモリを使用し、処理経過を不揮発性メインメモリ3に書き込むことにより、バックアップ電源がなくても情報処理装置1の状態を保持可能としている。また、情報処理装置1においては、プログラムの起動が高速化される。
【0090】
本実施の形態に係る情報処理装置1においては、状態情報24の生成イベントが発生するたびに、状態情報24が不揮発性メインメモリ3に記憶されるため、電源が急に切断された場合であっても、最新の状態情報24を読み出してプロセッサ2の状態を電源切断前の状態に復元させることができ、情報処理装置1の動作を再実行させることができる。
【0091】
本実施の形態において、例えば、不揮発性メインメモリ3として、NAND型フラッシュメモリ又はNOR型フラッシュメモリなどを用いた場合、従来行われていたウェアレべリングを行うことなくメインメモリとして利用することができる。
【0092】
(第2の実施の形態)
本実施の形態においては、上記第1の実施の形態に係る情報処理装置1の変形例であり、キャッシュメモリが階層化された構成を持つ情報処理装置について説明する。
【0093】
図6は、本実施の形態に係る情報処理装置の構成の一例を示すブロック図である。
【0094】
情報処理装置26は、少なくとも一つのプロセッサ(この図6の例では4つ)271〜274、制御装置28、不揮発性メインメモリ3を備えている。情報処理装置26は、2次記憶装置4、外部アクセス装置5、I/O装置6などの他の装置をアクセス可能である。
【0095】
それぞれのプロセッサ271〜274は、それぞれ1次キャッシュメモリ291〜294を備えている。プロセッサ271〜274は、1次キャッシュメモリ291〜294においてキャッシュミスが発生すると、アクセス対象のアドレスを制御装置28に送信する。
【0096】
制御装置28は、2次キャッシュメモリ10、ライトバッファ11、アクセス制御部14、状態情報生成部13、メモリ管理ユニット12を備えている。この制御装置28によって実行される例えばライトバック、フェッチ、復元などの各種処理は、上記第1の実施の形態の場合と同様である。
【0097】
なお、本実施の形態においては、1次キャッシュメモリ291〜294と2次キャッシュメモリ10とから構成される2階層の場合を例に説明しているが、キャッシュメモリの階層は3階層以上であっても同様に制御装置28を適用可能である。
【0098】
(第3の実施の形態)
本実施の形態においては、上記第1及び第2の実施の形態に係る情報処理装置に、書き込み回数チェック部及び異常検出部を備えた場合について説明する。なお、本実施の形態においては、上記第1の実施の形態に係る情報処理装置1に書き込み回数チェック部及び異常検出部を備えた場合について説明するが、第2の実施の形態に係る情報処理装置など他の形態の情報処理装置についても同様に適用可能である。
【0099】
図7は、本実施の形態に係る情報処理装置の構成の一例を示すブロック図である。
【0100】
本実施の形態に係る情報処理装置30のプロセッサ31のメモリ管理ユニット32は、アドレス変換情報15に加えて、不揮発性メインメモリ3の領域(例えばアドレス又はブロック)毎に、書き込み回数を表わす書き込み回数情報33と、Bad情報34とを備える。
【0101】
Bad情報34は、不揮発性メインメモリ3のそれぞれの領域について、書き込み回数情報33の示す書き込み回数が上限を超えた場合に、異常を示す値となる。なお、Bad情報34は、不揮発性メインメモリ3のデータ部35にも記憶される。
【0102】
本実施の形態において、メモリ管理ユニット32は、不揮発性メインメモリ3が書き込まれるタイミングで、書き込み回数情報33を更新する(書き込み対象の領域又はエントリに関する書き込み回数に1を加える)。
【0103】
アクセス制御部36の書き込み制御部37は、書き込み回数情報33を、不揮発性メインメモリ3の該当領域に記憶する。
【0104】
アクセス制御部36には、書き込み回数チェック部38が備えられている。書き込み回数チェック部38は、不揮発性メインメモリ3への書き込み時に、書き込み先の領域の書き込み回数をチェックし、この書き込み回数が上限を表わす所定値を超える場合に例外処理を発生させる。例外処理では、ソフトウェアが起動され、このソフトウェアにより必要な処理が実行される。
【0105】
例えば、このソフトウェアによる例外処理では、メモリ管理ユニット34と不揮発性メインメモリ3に対して、書き込み回数が上限を超えた領域のエントリにBad情報をセットし、書き込み回数が上限を超えたエントリへの書き込みを行わないようにする。メモリ管理ユニット32は、Bad情報34が異常を表わすエントリへの書き込みを禁止する。
【0106】
さらに、本実施の形態に係る情報処理装置30において、プロセッサ31は、異常検出部39を備えている。異常検出部39としては例えばECC回路などが用いられる。異常検出部39は、ビット誤り訂正、訂正不可能エラー検出、例外発生を行う。
【0107】
上記の書き込み回数チェック部38では、書き込み回数が上限を超えた場合に使用不可としているが、書き込み回数が上限を超える前であってもビットエラーが発生する場合がある。
【0108】
このようなエラーに対応するために、異常検出部39は、不揮発性メインメモリ3に対するビットエラー検出を行う。さらに、異常検出部39は、発生したビットエラーを訂正可能な場合には、訂正を行う。そして、異常検出部39は、訂正不可能なビットエラーが発生した場合に、例外処理を発生させ、ソフトウェアにより必要な処理を行う。例えば、このソフトウェアによる例外処理により、メモリ管理ユニット34と不揮発性メインメモリ3に対して、訂正不可能なエラーの発生した領域のエントリにBad情報をセットし、訂正不可能なエラーの発生した領域のエントリに対して書き込みを行わないようにする。メモリ管理ユニット32は、Bad情報34が異常を表わすエントリへの書き込みを禁止する。
【0109】
以上説明した本実施の形態においては、不揮発性メインメモリ3への書き込みに異常が発生した場合に、異常の発生した領域の使用禁止、ユーザへの取り替え指示、など適当な処理をソフトウェアにより行うことができる。
【0110】
上記各実施の形態においては、キャッシュメモリからのライトバックのレート制御を行うとしてもよい。
【0111】
上記各実施の形態において、不揮発性メインメモリ3への記憶形式は、例えばプログラム、データ、プログラム状態情報などのように分けるとしてもよい。
【0112】
上記各実施の形態において、プロセッサは、キャッシュメモリを介して、不揮発性メインメモリをアクセスするものとする。また、上記各実施の形態において、プロセッサと不揮発性メインメモリとの間に、揮発性メモリを備えることで、処理を高速化させることができる。
【0113】
また、上記各実施の形態の制御は、不揮発性メモリをメインメモリではない他の目的で利用する場合にも適用可能である。
【図面の簡単な説明】
【0114】
【図1】本発明の第1の実施の形態に係る情報処理装置の詳細構成の一例を示すブロック図。
【図2】第1の実施の形態に係る情報処理装置の概略構成の一例を示すブロック図。
【図3】第1の実施の形態に係る情報処理装置におけるライトバックの一例を示すフローチャート。
【図4】第1の実施の形態に係る情報処理装置におけるフェッチの一例を示すフローチャート。
【図5】第1の実施の形態に係る情報処理装置の復元処理の一例を示すフローチャート。
【図6】本発明の第2の実施の形態に係る情報処理装置の構成の一例を示すブロック図。
【図7】本発明の第3の実施の形態に係る情報処理装置の構成の一例を示すブロック図。
【符号の説明】
【0115】
1,26,30…情報処理装置、2,271〜274,31…プロセッサ、3…不揮発性メインメモリ、7…コアプログラム、91〜94…演算コア、10,291〜294…キャッシュメモリ、11…ライトバッファ、12,32…メモリ管理ユニット、13…状態情報生成部、14,36…アクセス制御部、15…アクセス変換情報、16…アドレス発生部、17…順序発生部、18,37…書き込み制御部、19…順序情報、20…Vフラグ、21…データ・プログラム、22…状態情報プログラム、23…MMU情報、24…状態情報、28…制御装置、33…書き込み回数情報、34…Bad情報、38…書き込み回数チェック部、39…異常検出部

【特許請求の範囲】
【請求項1】
プロセッサと、
前記プロセッサに使用される不揮発性メモリと、
前記プロセッサから前記不揮発性メモリへの書き込みが発生した場合に、書き込み位置の重複回数を抑えるために当該書き込み位置がずれるように書き込みアドレスを発生させるアドレス発生手段と、
前記書き込みの新しさを表わす順序情報を発生させる順序発生手段と、
前記アドレス発生手段によって発生された書き込みアドレスに対して、前記順序発生手段によって発生された順序情報を対応付けて、書き込み情報を記憶する書き込み制御手段と
を具備する情報処理装置。
【請求項2】
請求項1記載の情報処理装置において、
アドレス変換情報を備えたメモリ管理ユニットをさらに具備し、
前記アドレス発生手段は、前記プロセッサから前記不揮発性メモリへの書き込みが発生すると、シーケンシャルに、かつ、前記アドレス変換情報において未使用の書き込みアドレスを発生させ、前記書き込みアドレスが所定値に達すると、再び初期値からシーケンシャルに、かつ、前記アドレス変換情報において未使用の書き込みアドレスを発生させる
ことを特徴とする情報処理装置。
【請求項3】
請求項1又は請求項2記載の情報処理装置において、
前記プロセッサにおける状態情報を生成する状態情報生成手段と、
前記不揮発性メモリの異常検出を行い、前記不揮発性メモリの異常が検出された場合に、例外処理を実行する異常検出手段と
をさらに具備し、
前記書き込み制御手段は、
前記状態情報生成手段によって生成された状態情報を、前記順序発生手段によって発生された順序情報と対応付けて、前記アドレス発生手段によって発生された書き込みアドレスに対して記憶する機能と、前記プロセッサの備えているアドレス変換情報を、前記順序発生手段によって発生された順序情報と対応付けて、前記アドレス発生手段によって発生された書き込みアドレスに対して記憶する機能とを備え、
前記プロセッサの復元時に、前記不揮発性メモリから、前記順序情報に基づいて、最新の状態情報及び最新のアドレス変換情報を読み出し、当該最新の順序情報及び最新のアドレス変換情報を用いて前記プロセッサの復元を行う復元手段をさらに具備する
ことを特徴とする情報処理装置。
【請求項4】
プロセッサから不揮発性メモリへの書き込みが発生した場合に、書き込み位置の重複回数を抑えるために当該書き込み位置がずれるように書き込みアドレスを発生させるアドレス発生手段と、
前記書き込みの新しさを表わす順序情報を発生させる順序発生手段と、
前記アドレス発生手段によって発生された書き込みアドレスに対して、前記順序発生手段によって発生された順序情報を対応付けて、書き込み情報を記憶する書き込み制御手段と
を具備するプロセッサ。
【請求項5】
プロセッサから、当該プロセッサに使用される不揮発性メモリへの書き込みが発生した場合に、アクセス制御装置は、書き込み位置の重複回数を抑えるために当該書き込み位置がずれるように書き込みアドレスと、前記書き込みの新しさを表わす順序情報を発生させ、
前記アクセス制御装置は、発生された前記書き込みアドレスに対して、発生された前記順序情報を対応付けて、書き込み情報を記憶する
ことを特徴とする情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−165251(P2010−165251A)
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願番号】特願2009−8079(P2009−8079)
【出願日】平成21年1月16日(2009.1.16)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】