JP2013257679A - 情報処理装置および方法、並びに、プログラム - Google Patents
情報処理装置および方法、並びに、プログラム Download PDFInfo
- Publication number
- JP2013257679A JP2013257679A JP2012132557A JP2012132557A JP2013257679A JP 2013257679 A JP2013257679 A JP 2013257679A JP 2012132557 A JP2012132557 A JP 2012132557A JP 2012132557 A JP2012132557 A JP 2012132557A JP 2013257679 A JP2013257679 A JP 2013257679A
- Authority
- JP
- Japan
- Prior art keywords
- address
- conversion table
- address conversion
- storage area
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 28
- 238000000034 method Methods 0.000 title description 49
- 238000006243 chemical reaction Methods 0.000 claims abstract description 196
- 230000015654 memory Effects 0.000 claims abstract description 100
- 238000011084 recovery Methods 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 31
- 238000013519 translation Methods 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 7
- 238000003672 processing method Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 38
- 238000005516 engineering process Methods 0.000 description 21
- 230000004913 activation Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000010409 thin film Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000696 magnetic material Substances 0.000 description 1
- 230000005415 magnetization Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】所望のタイミングで簡単にメモリの記憶内容を復元することができるようにする。
【解決手段】メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、第1の記憶領域以外の記憶領域にコピーして保存するテーブル保存部と、保存されたアドレス変換テーブルをメモリの第1の記憶領域にコピーすることで、保存時点のアドレス変換テーブルを復旧させるテーブル復旧部と、アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に書き換え後のデータを記憶させる書き換え制御部とを備える。
【選択図】図2
【解決手段】メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、第1の記憶領域以外の記憶領域にコピーして保存するテーブル保存部と、保存されたアドレス変換テーブルをメモリの第1の記憶領域にコピーすることで、保存時点のアドレス変換テーブルを復旧させるテーブル復旧部と、アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に書き換え後のデータを記憶させる書き換え制御部とを備える。
【選択図】図2
Description
本技術は、情報処理装置および方法、並びに、プログラムに関し、特に、所望のタイミングで簡単にメモリの記憶内容を復元することができる情報処理装置および方法、並びに、プログラムに関する。
近年、不揮発性メモリの開発が進んでいる。
例えば、MRAM(Magnetoresistive Random Access Memory)は、記憶媒体にハードディスクなどと同じ磁性体を用いたメモリ技術である。MRAMは、原子数個程度の厚さの絶縁体薄膜を2層の磁性体薄膜で挟み、両側から加える磁化方向を変化させることで抵抗値が変化するTMR効果を応用している。
MRAMは、アドレスアクセスタイムが約10ns、サイクルタイムが約20nsであり、DRAMの5倍程度高速な読み書きが可能である。また、フラッシュメモリの10分の1程度の低消費電力、高集積性が可能などの長所がある。
また、ReRAM(Resistance Random Access Memory)は、電圧印加による電気抵抗の大きな変化(電界誘起巨大抵抗変化、CER(Colossal Electro-Resistance )効果)を利用している。
ReRAMは、比較的単純な構造のためセル面積が小さく、高密度化(=低コスト化)が可能ある。また、電気抵抗の変化率が数十倍にものぼり、多値化も容易であるため、大容量化が期待できる。
例えば、不揮発性メモリにメインメモリの内容を記憶させるようにすれば、処理途中のデータを保存し、再度利用することも可能となる。
また、ある時点でのメインメモリの内容をスワップ領域に書きだして保存しておき、スワップに保存したページが更新された際、保存が行われた時点のままのデータを残したいところはスワップ内の別の領域に書き出されるようにする技術が提案されている(例えば、特許文献1参照)。
しかしながら、特許文献1の技術は、外部ストレージなどのスワップ領域を得ることが可能なデバイスの存在を前提としている。
また、特許文献1の技術の場合、ページイン、ページアウトをきっかけとして動作するため、これらが発生しない状況下では利用することができない。
本技術はこのような状況に鑑みて開示するものであり、所望のタイミングで簡単にメモリの記憶内容を復元することができるようにするものである。
本技術の一側面は、メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存するテーブル保存部と、前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させるテーブル復旧部と、前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させる書き換え制御部とを備える情報処理装置である。
前記アドレス変換テーブルは、アプリケーションプログラム毎に生成され、実行されるアプリケーションプログラムを特定して前記テーブル復旧部に通知するプログラム通知部をさらに備え、前記テーブル復旧部は、アプリケーションプログラムが実行される時点で、前記アプリケーションプログラムに対応する前記アドレス変換テーブルが保存されている場合、前記保存時点の前記アドレス変換テーブルを復旧させるようにすることができる。
前記プログラム通知部は、さらに、前記アプリケーションプログラムの実行の終了を検知して前記書き換え制御部に通知し、前記書き換え制御部は、前記アプリケーションプログラムの実行の終了が通知された場合、前記変更後の物理アドレスに対応する記憶領域に記憶された前記書き換え後のデータを消去するようにすることができる。
アプリケーションプログラムが実行されるとき、前記アプリケーションプログラムが過去に実行されたか否かを表す情報を、前記テーブル復旧部に通知する実行有無情報通知部をさらに備え、前記テーブル復旧部は、前記アプリケーションプログラムが過去に実行されたか否かを表す情報が通知された場合、前記アドレス変換テーブルを復旧させるようにすることができる。
前記メモリが不揮発性メモリであるようにすることができる。
前記メモリに電力を供給するメモリ保持部をさらに備え、前記メモリが揮発性メモリであるようにすることができる。
前記テーブル保存部は、前記アドレス変換テーブルを所定の時間間隔で保存するようにすることができる。
前記テーブル保存部は、アプリケーションプログラムの実行中に発生する所定のイベントが発生したとき、前記アドレス変換テーブルを保存するようにすることができる。
前記テーブル保存部は、複数の時点において、前記アドレス変換テーブルを保存し、前記テーブル復旧部は、前記複数の時点のアドレス変換テーブルのうち、指定された時点のアドレス変換テーブルを復旧させるようにすることができる。
前記アドレス復旧部は、ユーザの操作に基づいて指定された時点のアドレス変換テーブルを復旧させ、前記指定された時点のアドレス変換テーブルが保存されていない場合、前記アドレス変換テーブルの復旧ができない旨を前記ユーザに通知するメッセージの表示を制御するようにすることができる。
本技術の一側面は、テーブル保存部が、メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存し、テーブル復旧部が、前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させ、前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、書き換え制御部が、前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させるステップを含む情報処理方法である。
本技術の一側面は、コンピュータを、メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存するテーブル保存部と、前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させるテーブル復旧部と、前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させる書き換え制御部とを備える情報処理装置として機能させるプログラムである。
本技術の一側面においては、メモリの第1の記憶領域に記憶されたアドレス変換テーブルが、前記第1の記憶領域以外の記憶領域にコピーされて保存され、前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルが復旧させられ、前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータが記憶される。
本技術によれば、所望のタイミングで簡単にメモリの記憶内容を復元することができる。
以下、図面を参照して、ここで開示する技術の実施の形態について説明する。
図1は、本技術の一実施の形態に係る演算処理システムの構成例を示すブロック図である。
同図に示される演算処理システム10は、CPU21、MMU(Memory Management Unit)22、およびRAM23を有する構成とされている。演算処理システム10は、例えば、携帯電話機やスマートフォンなどに実装され、ダウンロードされたアプリケーションプログラムなどを実行するようになされている。
ここで、例えば、MRAM(Magnetoresistive Random Access Memory)などの不揮発性メモリとして構成される。
RAM23は、CPU21に対応する主記憶装置(メインメモリ)として設けられており、MMU22の制御に基づいてデータの書き込みまたは読み出しが行われるようになされている。MMU22は、仮想アドレスと物理アドレスとの変換、メモリ保護などに係る機能を有し、CPU21のメモリアクセス制御に係る処理を実行する機能ブロックとされる。MMU22は、例えば、CPU21の一部として構成されるようにしてもよい。
図2は、図1のCPU21、MMU22、およびRAM23の機能的構成例を示すブロック図である。この例では、CPU21、RAM23の他、アドレス変換テーブル管理部51、アドレス変換部52、およびメモリ割り当て管理部53が記載されている。
アドレス変換部52は、CPU21から供給された仮想アドレスを、アドレス変換テーブルに基づいて物理アドレスに変換する。これによりCPU21は、当該データに係る物理アドレスを取得し、メモリ割り当て管理部53に、その物理アドレスへのアクセス要求を出力する。
ここで、アドレス変換テーブルは、仮想空間アドレスと、RAM23の物理空間アドレスとを対応付けるテーブルとされ、RAM23の一部の記憶領域に記憶される。
また、アドレス変換テーブル管理部51は、所定の時点におけるアドレス変換テーブルの内容をRAM23の別の一部の記憶領域に記憶させる。
例えば、アドレス変換部52が参照するアドレス変換テーブルは、RAM23の記憶領域の一部であって、ワークエリアとして利用される記憶領域に記憶されている。一方、アドレス変換テーブル管理部51は、ワークエリアとは異なる記憶領域に、所定の時点におけるアドレス変換テーブルをコピーする。
アドレス変換テーブル管理部51は、例えば、CPU21により実行されるアプリケーションプログラムに係るデータなどがRAM23にロードされた時点におけるアドレス変換テーブルをワークエリアとは異なる記憶領域にコピーする。
図2においてCPU21は、アプリケーションプログラムなどを実行し、処理中に必要となるデータなどの読み出し、書き込みなどの指令をメモリ割り当て管理部53に出力する。メモリ割り当て管理部53は、RAM23へのアクセスを制御し、CPU21の要求に応じてデータの読み出し、または、書き込みを制御する。
例えば、CPU21が、処理中に必要となるデータを、RAM23から読み出す場合、アドレス変換部52に当該データの格納位置を特定する仮想アドレスを供給し、仮想アドレスの物理アドレスへの変換を要求する。アドレス変換部52は、仮想アドレスを物理アドレスに変換し、CPU21に供給する。
CPU21は、上述のように取得した物理アドレスに基づいて、メモリ割り当て管理部53にデータの読み出しを要求する。
メモリ割り当て管理部53は、CPU21から供給された物理アドレスに対応する記憶領域であって、RAM23の所定の記憶領域からのデータの読み出しを制御する。
また、例えば、CPU21がアプリケーションプログラムを実行中にRAM23から読み出したデータを書き換える場合、アドレス変換部52に当該データの格納位置を特定する仮想アドレスを供給し、仮想アドレスの物理アドレスへの変換を要求する。そして、CPU21は、メモリ割り当て管理部53にデータの書き込みを要求する。
この際、アドレス変換部52は、既に仮想アドレスに対応づけられた物理アドレスへの書き込みであることを、メモリ割り当て管理部53に通知する。
いまの場合、メモリ割り当て管理部53は、アドレス変換テーブルに基づいて取得した物理アドレスに対応する記憶領域を書き換えず、RAM23の新たな記憶領域に当該データを記憶させるように制御する。そして、メモリ割り当て管理部53は、新たに割り当てられた記憶領域に対応する物理アドレスを、アドレス変換部52に通知する。
アドレス変換部52は、上述のように通知された新たな物理アドレスを仮想アドレスと対応づけるように、アドレス変換テーブルの情報を更新する。
例えば、図3に示されるように、アドレス変換テーブルにおいて、既に仮想アドレスと物理アドレスが対応づけられていたものとする。同図の例では、仮想アドレスV1と物理アドレスP2が対応づけられている。同様に、仮想アドレスV3、V5、V6、およびV7が、それぞれ物理アドレスP3、P4、P5、およびP6と対応づけられている。
いま、CPU21が実行中のアプリケーションプログラムの処理によって、仮想アドレスV6に対応するデータの書き換え要求があったものとする。なお、この時点で、既にアドレス変換テーブル管理部51によって、図3に示される状態のアドレス変換テーブルがコピーされていたものとする。
このとき、上述したように、アドレス変換部52は、既に仮想アドレスに対応づけられた物理アドレスへの書き込みであることを、メモリ割り当て管理部53に通知する。
メモリ割り当て管理部53は、アドレス変換テーブルに基づいて取得した物理アドレスに対応する記憶領域を書き換えず、RAM23の新たな記憶領域に当該データを記憶させるように制御する。例えば、物理アドレスP7に対応する記憶領域を、書き換えられたデータを記憶するための記憶領域として新たに割り当てる。
そして、メモリ割り当て管理部53は、新たに割り当てられた記憶領域に対応する物理アドレスP7を、アドレス変換部52に通知する。
アドレス変換部52は、上述のように通知された新たな物理アドレスP7を仮想アドレスV6と対応づけるように、アドレス変換テーブルの情報を更新する。
これにより、例えば、図4に示されるように、アドレス変換テーブルによる仮想アドレスと物理アドレスの対応づけが変更される。図4の例では、図3において物理アドレスP5に対応づけられていた仮想アドレスV6が、新たに物理アドレスP7に対応づけられるように変更されている。
また、図4において、物理アドレスP5に記憶されたデータは、元のままとされ、消去されたり、変更されたりしていない。
従来の技術の場合、データを書き換えるときは、図5に示されるように物理アドレスP5に記憶されたデータが書き換えられ、仮想アドレスV6は物理アドレスP5に対応づけられたままとされる。
また、従来の技術の場合、新たなデータを書き込むときは、図6に示されるように、例えば、RAM23の新たな記憶領域として物理アドレスP7に対応する記憶領域が割り当てられ、ここに新たなデータが書き込まれる。そして、物理アドレスP7は、例えば、新たな仮想アドレスV8と対応づけられる。
これに対して、本技術では、アドレス変換テーブル管理部51によって、アドレス変換テーブルがコピーされた後で、既に仮想アドレスに対応づけられた物理アドレスへの書き込み要求が発生した場合、書き換えられたデータを記憶するための新たな物理アドレスが割り当てられる。また、本技術では、上述のように新たに割り当てられた物理アドレスに書き換えられたデータを記憶させた場合、元の物理アドレスに対応する記憶領域の内容を元のままとする。
例えば、スマートフォンなどでゲームを起動させる場合、アプリケーションプログラムに係るデータをRAMにロードする必要がある。この場合、RAMの物理アドレスと仮想アドレスとを対応づけるアドレス変換テーブルを生成する必要がある。
従来、アドレス変換テーブルは、アプリケーションプログラムの実行が終了される都度、消去されていた。従来のRAM(主記憶装置)は、通常、揮発性メモリによって構成され、電源OFFなどにより記憶内容は全て消去されるため、アプリケーションプログラムに係るデータをRAMにロードする都度、アドレス変換テーブルを生成することが一般的だったからである。
しかし、主記憶装置として不揮発性メモリを用いる場合、電源OFF後も記憶内容が保持されるので、記憶領域のデータは消去せずにそのまま利用することができる。
すなわち、一旦、記憶領域にロードされたアプリケーションプログラムに係るデータは、一度アプリケーションプログラムの実行が終了され、再度アプリケーションプログラムが実行されたときに再利用することができる。
アプリケーションプログラムに係るアドレス変換テーブルは、通常、アプリケーションプログラムに係るデータをロードするとき、ワークエリアに生成される。従って、この時点でのアドレス変換テーブルをワークエリア以外の記憶領域にコピーしておけば、例えば、ゲームを起動する都度、アプリケーションプログラムに係るデータをロードする処理などを実行する必要はない。すなわち、一度起動したことのあるゲームを再度起動する場合、ワークエリア以外の記憶領域に保存されているアドレス変換テーブルをワークエリアにコピーするだけで、アプリケーションプログラムに係るデータをロードした直後の状態を復元できる。
そこで、本技術では、上述のように、アドレス変換テーブル管理部51によって、アドレス変換テーブルがコピー(保存)された後で、既に仮想アドレスに対応づけられた物理アドレスへの書き込み要求が発生した場合、書き換えられたデータを記憶するための新たな物理アドレスが割り当てられるようにした。また、新たに割り当てられた物理アドレスに書き換えられたデータを記憶させた場合、元の物理アドレスに対応する記憶領域の内容を元のままとされるようにした。
このようにすることで、例えば、演算処理システムが実装される装置などで何らかの機能を立ち上げる際に要する時間を大幅に短縮することが可能となる。
あるいはまた、本技術により、所望の時点におけるアドレス変換テーブルが復旧されるようにすることも可能である。例えば、演算処理システムが実装される装置などで電源断が発生した際に早期に復旧させることが可能となる。
例えば、スマートフォンのユーザがゲームをプレイ中に電源断が発生した場合、従来の方式では、まずゲームに対応するアプリケーションプログラムを再び起動し、セーブデータからゲームの進行状態を復帰する。この場合、やはりアプリケーションプログラムに係るデータをロードする処理などが実行されることになり、この間ユーザは待たされることになる。
本技術では、上述のように、ワークエリア以外の記憶領域に保存されているアドレス変換テーブルをワークエリアにコピーすることで、電源断発生前の状態に復帰することが可能となる。
いまの場合、アドレス変換テーブル管理部51は、アプリケーションプログラムに係るデータをロード時点だけでなく、例えば、一定の周期でアドレス変換テーブルを保存する。または、例えば、ゲームにおける特定のイベントなどの発生の都度、アドレス変換テーブルが保存されるようにしてもよい。
また、いまの場合、アドレス変換テーブルの保存が複数回行われるので、アドレス変換テーブル管理部51がアドレス変換テーブルを保存する際、それまで保存されていたアドレス変換テーブルに上書きされるようにしてもよいし、複数の時点におけるアドレス変換テーブルがそれぞれ保存されるようにしてもよい。
そして、アドレス変換テーブル管理部51は、電源断が発生して解消したとき、保存されていたアドレス変換テーブルをワークエリアにコピーする。なお、RAM23は、不揮発性メモリであるため、電源断が発生して記憶内容が失われることはない。また、上述のように、アドレス変換テーブルが保存された後で、既に仮想アドレスに対応づけられた物理アドレスへの書き込み要求が発生した場合、書き換えられたデータを記憶するための新たな物理アドレスが割り当てられるので、保存されていたアドレス変換テーブルに基づいて所望のデータを読み出すことが可能である。
このようにすることで、例えば、演算処理システムが実装される装置などで電源断が発生した際に早期に復旧させることが可能となる。
あるいはまた、電源断の発生の有無に関わらず、例えば、ユーザの指令などに基づいて、所定の時点におけるアドレス変換テーブルがワークエリアにコピーされるようにしてもよい。すなわち、本技術により、例えば、ゲームの進行の状態を、任意の時点の状態に復旧させることも可能である。
図7は、図1のCPU21、MMU22、およびRAM23の別の機能的構成例を示すブロック図である。この例では、CPU21、RAM23の他、アドレス変換テーブル管理部51、アドレス変換部52、メモリ割り当て管理部53に加えて、アプリケーション起動管理部54が記載されている。
図7の例の場合、演算処理システム10が実装されるスマートフォンなどの装置に、予め複数のアプリケーションプログラムがインストールされているものとする。なお、アプリケーションプログラムは、例えば、装置の出荷時にインストール済みのもの、後からユーザがダウンロードしたものなどが含まれる。
例えば、ユーザがスマートフォンのGUIなどを操作することにより、複数のアプリケーションプログラムに対応するサービス(例えば、ゲームやSMSなど)が同時に提供される。この場合、例えば、CPU21が各アプリケーションプログラムに対応するプロセスのそれぞれを切り替えながら実行する。
図7の構成において、アプリケーション起動管理部54は、所定のサービスの起動が指令されると、アドレス変換テーブル管理部51に、当該サービスに対応するアプリケーションプログラムの起動通知を出力するようになされている。なお、このとき出力される起動通知には、アプリケーションプログラムの識別子、および、当該アプリケーションプログラムが過去に実行されたか否かを表す情報が含まれる。
アドレス変換テーブル管理部51は、アプリケーション起動管理部54からの起動通知を受けた場合、当該アプリケーションプログラムが過去に実行されたものであるか否かを判定する。
当該アプリケーションプログラムが過去に実行されたものであるとき、アドレス変換テーブル管理部51は、当該アプリケーションプログラムの識別子に対応づけられて保存されているアドレス変換テーブルを、RAM23のワークエリアにコピーする。
当該アプリケーションプログラムが過去に実行されたものではないとき、アプリケーションプログラムに係るデータがRAMにロードされる。そして、アドレス変換テーブル管理部51は、アプリケーションプログラムに係るデータがロードされた時点でのアドレス変換テーブルをRAM23のワークエリア以外の記憶領域にコピーする。ここで、コピーされたアドレス変換テーブルは、アプリケーションプログラムの識別子に対応づけられて保存される。
すなわち、図7の構成の場合、アプリケーションプログラム毎にアドレス変換テーブルを生成して保存するようにし、各種のサービスが起動される都度、それらのサービスに対応するアプリケーションプログラムの識別子に対応づけられたアドレス変換テーブルが読み出される。
このようにすることで、例えば、スマートフォンにおける各種のサービスの立ち上げ時間を大幅に短縮し、操作性を向上させることができる。
また、アプリケーション起動管理部54は、所定のサービスの終了が指令されると、アドレス変換テーブル管理部51に、当該サービスに対応するアプリケーションプログラムの終了通知を出力するようにしてもよい。なお、このとき出力される終了通知には、アプリケーションプログラムの識別子、および、当該アプリケーションプログラムが過去に実行されたか否かを表す情報が含まれる。
当該アプリケーションプログラムが過去に実行されたものである場合、アドレス変換テーブル管理部51は、メモリ割り当て管理部53に当該アプリケーションプログラムの識別子に対応づけられたアドレス変換テーブルが保存されている記憶領域のアドレスなどを通知する。
メモリ割り当て管理部53は、サービス終了時点におけるアドレス変換テーブルと、アドレス変換テーブル管理部51によって保存されたアドレス変換テーブルを比較することにより、アプリケーションプログラムの実行中に新たに書き込まれたデータを特定する。例えば、図3と図4を参照して上述した例の場合、物理アドレスP7に対応する記憶領域に記憶されたデータは、アプリケーションプログラムの実行中に新たに書き込まれたデータであると特定することができる。
メモリ割り当て管理部53は、上述のように特定した、アプリケーションプログラムの実行中に新たに書き込まれたデータを消去する。例えば、図4において、物理アドレスP7に対応する記憶領域に記憶されたデータが消去される。これにより、物理アドレスP1乃至物理アドレスP11の記憶内容は、図3の状態と同じになる。
このようにすることで、例えば、RAM23の記憶領域に不要なデータが蓄積されていくことを抑止することができる。
図7におけるそれ以外の部分の構成は、図2を参照して上述した場合と同様なので、詳細な説明は省略する。
次に、図8のフローチャートを参照して、本技術を適用した演算処理システム10によるアドレス変換テーブル管理処理の例について説明する。
ステップS11において、演算処理システム10は、図9のフローチャートを参照して後述するテーブル保存制御処理を実行する。
ステップS12において、演算処理システム10は、図10のフローチャートを参照して後述するテーブル復旧制御処理を実行する。
次に、図9のフローチャートを参照して図8のステップS11のテーブル保存制御処理の詳細な例について説明する。
ステップS31において、アドレス変換テーブル管理部51は、予め設定された所定のイベントが発生したか否かを判定する。所定のイベントは、例えば、所定の時間が経過したことをトリガとして発生するようにしてもよいし、プログラムの中の所定のステップが実行されることにより発生するようにしてもよい。
ステップS31において、所定のイベントが発生したと判定された場合、処理は、ステップS32に進む。
ステップS32において、アドレス変換テーブル管理部51は、アドレス変換テーブルを保存する。このとき、例えば、RAM23のワークエリア以外の記憶領域にアドレス変換テーブルがコピーされる。なお、アドレス変換テーブルは、例えば、保存された時刻と対応づけられてRAM23のワークエリア以外の記憶領域に記憶される。
一方、ステップS31において、所定のイベントが発生しなかったと判定された場合、ステップS32の処理はスキップされる。
ステップS33において、CPU21は、例えば、実行中のプログラムの処理によるデータの書き込み要求があったか否かを判定する。
ステップS33において、書き込み要求があったと判定された場合、処理は、ステップS34に進む。このとき、例えば、アドレス変換部52に当該データの格納位置を特定する仮想アドレスを供給し、仮想アドレスの物理アドレスへの変換を要求する。そして、CPU21は、メモリ割り当て管理部53にデータの書き込みを要求する。
ステップS34において、アドレス変換テーブル管理部51は、既にアドレス変換テーブルが保存されているか否かを判定する。ステップS34において、アドレス変換テーブルが保存されていると判定された場合、処理は、ステップS35に進む。
ステップS35において、アドレス変換部52は、ステップS33の処理で判定された書き込み要求は、既に仮想アドレスに対応づけられた物理アドレスへの書き込みであるか否か、すなわち、当該データの書き換えであるか否かを判定する。ステップS35において、書き換えであると判定された場合、メモリ割り当て管理部53にその旨が通知され、処理は、ステップS36に進む。
ステップS36において、メモリ割り当て管理部53は、書き換えられたデータのためにRAM23の新たな記憶領域を割り当てる。すなわち、メモリ割り当て管理部53は、アドレス変換テーブルに基づいて取得した物理アドレスに対応する記憶領域を書き換えず、RAM23の新たな記憶領域に当該データを記憶させるように制御する。そして、新たに割り当てられた記憶領域に対応する物理アドレスが、アドレス変換部52に通知される。
ステップS37において、アドレス変換部52は、ステップS36の処理に伴って通知された新たな物理アドレスを仮想アドレスと対応づけるように、アドレス変換テーブルの情報を更新する。
これにより、例えば、図4を参照して上述したように、アドレス変換テーブルの情報が更新される。
一方、ステップS34において、アドレス変換テーブルが保存されていないと判定された場合、または、ステップS35において、書き換えではないと判定された場合、処理は、ステップS38に進む。
ステップS38において、メモリ割り当て管理部53は、通常の書き込み処理を行う。すなわち、ステップS33の処理で判定された書き込み要求が、新たなデータの書き込み要求であった場合、RAM23の新たな記憶領域が割り当てられ、その記憶領域に新たなデータが書き込まれる。また、ステップS33の処理で判定された書き込み要求が、書き換えであった場合、アドレス変換テーブルに基づいて特定された物理アドレスのデータが書き換えられる。
これにより、例えば、図5と図6を参照して上述したように、アドレス変換テーブルの情報が更新される。
このようにして、テーブル保存制御処理が実行される。
次に、図10のフローチャートを参照して、図8のステップS12のテーブル復旧制御処理の詳細な例について説明する。この処理は、例えば、図8を参照して上述した処理と並行して実行される。
ステップS51において、アドレス変換テーブル管理部51は、アドレス変換テーブルの復旧の指令があったか否かを判定し、復旧の指令があったと判定されるまで待機する。
例えば、電源断が解消した後、または、ユーザが所定の操作を行ったなどの場合、CPU21からアドレス変換テーブルの復旧の指令が出力されることになる。ステップS51において、アドレス変換テーブルの復旧の指令があったと判定された場合、処理は、ステップS52に進む。
ステップS52において、アドレス変換テーブル管理部51は、保存されているアドレス変換テーブルをチェックする。
ステップS53において、アドレス変換テーブル管理部51は、ステップS52の処理の結果、所望の時点でのアドレス変換テーブルが存在するか否かを判定する。
ステップS53において、所望の時点でのアドレス変換テーブルが存在すると判定された場合、処理は、ステップS54に進む。
ステップS54において、アドレス変換テーブル管理部51は、保存されていたアドレス変換テーブルをワークエリアにコピーする。これにより、所望の時点のアドレス変換テーブルが復旧されたことになる。例えば、演算処理システム10が実装される装置で提供されるサービスを電源断が発生する前の状態に戻したり、ゲームの進行を、所望の時点まで戻したりすることが可能となる。
一方、ステップ53において、所望の時点でのアドレス変換テーブルが存在しないと判定された場合、処理は、ステップS55に進む。
ステップS55において、アドレス変換テーブル管理部51は、所望の時点でのアドレス変換テーブルが存在しないことをCPU21に通知する。これにより、CPU21は、例えば、アプリケーションプログラムに係るデータを再度ロードする処理を実行したり、所望の時点への復旧ができないことをユーザに通知するためのメッセージの表示を制御する。
このようにして、テーブル復旧制御処理が実行される。
次に、図11のフローチャートを参照して、本技術を適用した演算処理システム10によるサービス起動制御処理の例について説明する。この処理は、図7を参照して上述した構成に対応する処理とされる。いまの場合、アプリケーションプログラム毎にアドレス変換テーブルが生成されて保存されるものとする。
ステップS71において、CPU21は、所定のサービスの起動が指令されたか否かを判定し、所定のサービスの起動が指令されたと判定されるまで待機する。
ステップS71において、所定のサービスの起動が指令されたと判定された場合、処理は、ステップS72に進む。
ステップS72において、CPU21は、起動されたサービスに対応するアプリケーションプログラムの識別子、および、過去の実行の有無を特定する。
ステップS73において、CPU21は、アドレス変換テーブル管理部51に、当該サービスに対応するアプリケーションプログラムの起動通知を出力する。なお、このとき出力される起動通知には、アプリケーションプログラムの識別子、および、当該アプリケーションプログラムが過去に実行されたか否かを表す情報が含まれる。
ステップS74において、アドレス変換テーブル管理部51は、当該アプリケーションプログラムが過去に実行されたものであるか否かを判定する。
ステップS74において、当該アプリケーションプログラムが過去に実行されたものであると判定された場合、処理は、ステップS75に進む。
ステップS75において、アドレス変換テーブル管理部51は、当該アプリケーションプログラムの識別子に対応づけられて保存されているアドレス変換テーブルを、RAM23のワークエリアにコピーする。
一方、ステップS74において、当該アプリケーションプログラムが過去に実行されたものではないと判定された場合、処理は、ステップS76に進む。
ステップS76において、アプリケーションプログラムに係るデータがRAMにロードされる。そして、アドレス変換テーブル管理部51は、アプリケーションプログラムに係るデータがロードされた時点でのアドレス変換テーブルをRAM23のワークエリア以外の記憶領域にコピーする。ここで、コピーされたアドレス変換テーブルは、アプリケーションプログラムの識別子に対応づけられて保存される。
このようにして、サービス起動制御処理が実行される。
以上においては、本技術が適用される演算処理システム10における主記憶装置であるRAM23が不揮発性メモリにより構成されることを前提として説明したが、RAM23を揮発性メモリとした場合であっても、本技術を適用することは可能である。
図12は、図1のCPU21、MMU22、およびRAM23のさらに別の機能的構成例を示すブロック図である。この例では、CPU21、RAM23の他、アドレス変換テーブル管理部51、アドレス変換部52、メモリ割り当て管理部53に加えて、メモリ保持部61が記載されている。
なお、図12の構成の場合、RAM23は、DRAMなどの揮発性メモリにより構成されているものとする。
メモリ保持部61は、例えば、演算処理システム10への電力の供給が停止しているとき、RAM23に電力を供給するようになされている。このようにすることで、RAM23を揮発性メモリにより構成しても、不揮発性メモリと同様に機能させることができ、本技術を適用することができる。
図12におけるそれ以外の部分の構成は、図2を参照して上述した場合と同様なので詳細な説明は省略する。
また、以上においては、アドレス変換テーブルが主記憶装置を構成するメモリ内のワークエリアから、ワークエリア以外の領域にコピーされて保存されることを前提として説明した。しかし、例えば、アドレス変換テーブルが主記憶装置を構成するメモリから、補助記憶装置やメモリ管理ユニットの内部のメモリなどにコピーされて保存されるようにしてもよい。さらに、主記憶装置以外のメモリなどに記憶されているアドレス変換テーブルが補助記憶装置やメモリ管理ユニットの内部のメモリなどにコピーされて保存されるようにしてもよい。
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図13に示されるような汎用のパーソナルコンピュータ700などに、ネットワークや記録媒体からインストールされる。
図13において、CPU(Central Processing Unit)701は、ROM(Read Only Memory)702に記憶されているプログラム、または記憶部708からRAM(Random Access Memory)703にロードされたプログラムに従って各種の処理を実行する。RAM703にはまた、CPU701が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU701、ROM702、およびRAM703は、バス704を介して相互に接続されている。このバス704にはまた、入出力インタフェース705も接続されている。
入出力インタフェース705には、キーボード、マウスなどよりなる入力部706、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部707、ハードディスクなどより構成される記憶部708、モデム、LANカードなどのネットワークインタフェースカードなどより構成される通信部709が接続されている。通信部709は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース705にはまた、必要に応じてドライブ710が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア711が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部708にインストールされる。
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、インターネットなどのネットワークや、リムーバブルメディア711などからなる記録媒体からインストールされる。
なお、この記録媒体は、図13に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フロッピディスク(登録商標)を含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア711により構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM702や、記憶部708に含まれるハードディスクなどで構成されるものも含む。
なお、本明細書において上述した一連の処理は、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
なお、本技術は以下のような構成も取ることができる。
(1)
メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存するテーブル保存部と、
前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させるテーブル復旧部と、
前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、
前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させる書き換え制御部と
を備える情報処理装置。
(2)
前記アドレス変換テーブルは、アプリケーションプログラム毎に生成され、
実行されるアプリケーションプログラムを特定して前記テーブル復旧部に通知するプログラム通知部をさらに備え、
前記テーブル復旧部は、アプリケーションプログラムが実行される時点で、前記アプリケーションプログラムに対応する前記アドレス変換テーブルが保存されている場合、前記保存時点の前記アドレス変換テーブルを復旧させる
(1)に記載の情報処理装置。
(3)
前記プログラム通知部は、さらに、前記アプリケーションプログラムの実行の終了を検知して前記書き換え制御部に通知し、
前記書き換え制御部は、前記アプリケーションプログラムの実行の終了が通知された場合、前記変更後の物理アドレスに対応する記憶領域に記憶された前記書き換え後のデータを消去する
(2)に記載の情報処理装置。
(4)
アプリケーションプログラムが実行されるとき、前記アプリケーションプログラムが過去に実行されたか否かを表す情報を、前記テーブル復旧部に通知する実行有無情報通知部をさらに備え、
前記テーブル復旧部は、
前記アプリケーションプログラムが過去に実行されたか否かを表す情報が通知された場合、前記アドレス変換テーブルを復旧させる
(2)に記載の情報処理装置。
(5)
前記メモリが不揮発性メモリである
(1)乃至(4)のいずれかに記載の情報処理装置。
(6)
前記メモリに電力を供給するメモリ保持部をさらに備え、
前記メモリが揮発性メモリである
(1)乃至(5)のいずれかに記載の情報処理装置。
(7)
前記テーブル保存部は、
前記アドレス変換テーブルを所定の時間間隔で保存する
(1)乃至(6)のいずれかに記載の情報処理装置。
(8)
前記テーブル保存部は、
アプリケーションプログラムの実行中に発生する所定のイベントが発生したとき、前記アドレス変換テーブルを保存する
(1)乃至(7)のいずれかに記載の情報処理装置。
(9)
前記テーブル保存部は、
複数の時点において、前記アドレス変換テーブルを保存し、
前記テーブル復旧部は、
前記複数の時点のアドレス変換テーブルのうち、指定された時点のアドレス変換テーブルを復旧させる
(1)乃至(8)のいずれかに記載の情報処理装置。
(10)
前記アドレス復旧部は、
ユーザの操作に基づいて指定された時点のアドレス変換テーブルを復旧させ、
前記指定された時点のアドレス変換テーブルが保存されていない場合、前記アドレス変換テーブルの復旧ができない旨を前記ユーザに通知するメッセージの表示を制御する
(9)に記載の情報処理装置。
(11)
テーブル保存部が、メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存し、
テーブル復旧部が、前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させ、
前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、
書き換え制御部が、前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させるステップ
を含む情報処理方法。
(12)
コンピュータを、
メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存するテーブル保存部と、
前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させるテーブル復旧部と、
前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、
前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させる書き換え制御部とを備える情報処理装置として機能させる
プログラム。
メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存するテーブル保存部と、
前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させるテーブル復旧部と、
前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、
前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させる書き換え制御部と
を備える情報処理装置。
(2)
前記アドレス変換テーブルは、アプリケーションプログラム毎に生成され、
実行されるアプリケーションプログラムを特定して前記テーブル復旧部に通知するプログラム通知部をさらに備え、
前記テーブル復旧部は、アプリケーションプログラムが実行される時点で、前記アプリケーションプログラムに対応する前記アドレス変換テーブルが保存されている場合、前記保存時点の前記アドレス変換テーブルを復旧させる
(1)に記載の情報処理装置。
(3)
前記プログラム通知部は、さらに、前記アプリケーションプログラムの実行の終了を検知して前記書き換え制御部に通知し、
前記書き換え制御部は、前記アプリケーションプログラムの実行の終了が通知された場合、前記変更後の物理アドレスに対応する記憶領域に記憶された前記書き換え後のデータを消去する
(2)に記載の情報処理装置。
(4)
アプリケーションプログラムが実行されるとき、前記アプリケーションプログラムが過去に実行されたか否かを表す情報を、前記テーブル復旧部に通知する実行有無情報通知部をさらに備え、
前記テーブル復旧部は、
前記アプリケーションプログラムが過去に実行されたか否かを表す情報が通知された場合、前記アドレス変換テーブルを復旧させる
(2)に記載の情報処理装置。
(5)
前記メモリが不揮発性メモリである
(1)乃至(4)のいずれかに記載の情報処理装置。
(6)
前記メモリに電力を供給するメモリ保持部をさらに備え、
前記メモリが揮発性メモリである
(1)乃至(5)のいずれかに記載の情報処理装置。
(7)
前記テーブル保存部は、
前記アドレス変換テーブルを所定の時間間隔で保存する
(1)乃至(6)のいずれかに記載の情報処理装置。
(8)
前記テーブル保存部は、
アプリケーションプログラムの実行中に発生する所定のイベントが発生したとき、前記アドレス変換テーブルを保存する
(1)乃至(7)のいずれかに記載の情報処理装置。
(9)
前記テーブル保存部は、
複数の時点において、前記アドレス変換テーブルを保存し、
前記テーブル復旧部は、
前記複数の時点のアドレス変換テーブルのうち、指定された時点のアドレス変換テーブルを復旧させる
(1)乃至(8)のいずれかに記載の情報処理装置。
(10)
前記アドレス復旧部は、
ユーザの操作に基づいて指定された時点のアドレス変換テーブルを復旧させ、
前記指定された時点のアドレス変換テーブルが保存されていない場合、前記アドレス変換テーブルの復旧ができない旨を前記ユーザに通知するメッセージの表示を制御する
(9)に記載の情報処理装置。
(11)
テーブル保存部が、メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存し、
テーブル復旧部が、前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させ、
前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、
書き換え制御部が、前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させるステップ
を含む情報処理方法。
(12)
コンピュータを、
メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存するテーブル保存部と、
前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させるテーブル復旧部と、
前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、
前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させる書き換え制御部とを備える情報処理装置として機能させる
プログラム。
10 演算処理システム, 21 CPU, 22 MMU, 23 RAM, 51 アドレス変換テーブル管理部, 52 アドレス変換部, 53 メモリ割り当て管理部, 54 アプリケーション起動管理部, 61 メモリ保持部
Claims (12)
- メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存するテーブル保存部と、
前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させるテーブル復旧部と、
前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、
前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させる書き換え制御部と
を備える情報処理装置。 - 前記アドレス変換テーブルは、アプリケーションプログラム毎に生成され、
実行されるアプリケーションプログラムを特定して前記テーブル復旧部に通知するプログラム通知部をさらに備え、
前記テーブル復旧部は、アプリケーションプログラムが実行される時点で、前記アプリケーションプログラムに対応する前記アドレス変換テーブルが保存されている場合、前記保存時点の前記アドレス変換テーブルを復旧させる
請求項1に記載の情報処理装置。 - 前記プログラム通知部は、さらに、前記アプリケーションプログラムの実行の終了を検知して前記書き換え制御部に通知し、
前記書き換え制御部は、前記アプリケーションプログラムの実行の終了が通知された場合、前記変更後の物理アドレスに対応する記憶領域に記憶された前記書き換え後のデータを消去する
請求項2に記載の情報処理装置。 - アプリケーションプログラムが実行されるとき、前記アプリケーションプログラムが過去に実行されたか否かを表す情報を、前記テーブル復旧部に通知する実行有無情報通知部をさらに備え、
前記テーブル復旧部は、
前記アプリケーションプログラムが過去に実行されたか否かを表す情報が通知された場合、前記アドレス変換テーブルを復旧させる
請求項2に記載の情報処理装置。 - 前記メモリが不揮発性メモリである
請求項1に記載の情報処理装置。 - 前記メモリに電力を供給するメモリ保持部をさらに備え、
前記メモリが揮発性メモリである
請求項1に記載の情報処理装置。 - 前記テーブル保存部は、
前記アドレス変換テーブルを所定の時間間隔で保存する
請求項1に記載の情報処理装置。 - 前記テーブル保存部は、
アプリケーションプログラムの実行中に発生する所定のイベントが発生したとき、前記アドレス変換テーブルを保存する
請求項1に記載の情報処理装置。 - 前記テーブル保存部は、
複数の時点において、前記アドレス変換テーブルを保存し、
前記テーブル復旧部は、
前記複数の時点のアドレス変換テーブルのうち、指定された時点のアドレス変換テーブルを復旧させる
請求項1に記載の情報処理装置。 - 前記アドレス復旧部は、
ユーザの操作に基づいて指定された時点のアドレス変換テーブルを復旧させ、
前記指定された時点のアドレス変換テーブルが保存されていない場合、前記アドレス変換テーブルの復旧ができない旨を前記ユーザに通知するメッセージの表示を制御する
請求項9に記載の情報処理装置。 - テーブル保存部が、メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存し、
テーブル復旧部が、前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させ、
前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、
書き換え制御部が、前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させるステップ
を含む情報処理方法。 - コンピュータを、
メモリの第1の記憶領域に記憶されたアドレス変換テーブルを、前記第1の記憶領域以外の記憶領域にコピーして保存するテーブル保存部と、
前記保存されたアドレス変換テーブルを前記メモリの第1の記憶領域にコピーすることで、保存時点の前記アドレス変換テーブルを復旧させるテーブル復旧部と、
前記アドレス変換テーブルが保存された後、アドレス変換テーブル上で物理アドレスと対応付けられた仮想アドレスのデータの書き換え要求があった場合、
前記仮想アドレスに対応づける物理アドレスを変更し、変更後の物理アドレスに対応する記憶領域に前記書き換え後のデータを記憶させる書き換え制御部とを備える情報処理装置として機能させる
プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012132557A JP2013257679A (ja) | 2012-06-12 | 2012-06-12 | 情報処理装置および方法、並びに、プログラム |
CN201310220579.8A CN103488586A (zh) | 2012-06-12 | 2013-06-05 | 信息处理设备和方法以及程序 |
US13/910,425 US20130332662A1 (en) | 2012-06-12 | 2013-06-05 | Information processing apparatus and method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012132557A JP2013257679A (ja) | 2012-06-12 | 2012-06-12 | 情報処理装置および方法、並びに、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013257679A true JP2013257679A (ja) | 2013-12-26 |
Family
ID=49716222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012132557A Pending JP2013257679A (ja) | 2012-06-12 | 2012-06-12 | 情報処理装置および方法、並びに、プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130332662A1 (ja) |
JP (1) | JP2013257679A (ja) |
CN (1) | CN103488586A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015225608A (ja) * | 2014-05-29 | 2015-12-14 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | アドレス変換テーブルを書き込む装置及び方法 |
JP2021092915A (ja) * | 2019-12-09 | 2021-06-17 | 株式会社日立製作所 | ストレージシステム及びボリューム複製方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10126962B2 (en) * | 2016-04-22 | 2018-11-13 | Microsoft Technology Licensing, Llc | Adapted block translation table (BTT) |
JP6874814B2 (ja) | 2019-10-30 | 2021-05-19 | 株式会社安川電機 | 産業機器の制御装置、産業機器の制御装置の設定システム、産業機器の制御装置の設定方法、及びプログラム |
CN115344244A (zh) * | 2021-05-14 | 2022-11-15 | 瑞昱半导体股份有限公司 | 处理程序语言函数的装置及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3675851B2 (ja) * | 1994-03-15 | 2005-07-27 | 富士通株式会社 | 計算機監視方式 |
US7036043B2 (en) * | 2001-12-28 | 2006-04-25 | Storage Technology Corporation | Data management with virtual recovery mapping and backward moves |
JP2005293774A (ja) * | 2004-04-02 | 2005-10-20 | Hitachi Global Storage Technologies Netherlands Bv | ディスク装置の制御方法 |
US8151060B2 (en) * | 2006-11-28 | 2012-04-03 | Hitachi, Ltd. | Semiconductor memory system having a snapshot function |
-
2012
- 2012-06-12 JP JP2012132557A patent/JP2013257679A/ja active Pending
-
2013
- 2013-06-05 US US13/910,425 patent/US20130332662A1/en not_active Abandoned
- 2013-06-05 CN CN201310220579.8A patent/CN103488586A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015225608A (ja) * | 2014-05-29 | 2015-12-14 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | アドレス変換テーブルを書き込む装置及び方法 |
US9710375B2 (en) | 2014-05-29 | 2017-07-18 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
US9710378B2 (en) | 2014-05-29 | 2017-07-18 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
JP2021092915A (ja) * | 2019-12-09 | 2021-06-17 | 株式会社日立製作所 | ストレージシステム及びボリューム複製方法 |
JP7190421B2 (ja) | 2019-12-09 | 2022-12-15 | 株式会社日立製作所 | ストレージシステム及びボリューム複製方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130332662A1 (en) | 2013-12-12 |
CN103488586A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101636870B1 (ko) | 최소 부트 이미지의 생성 방법 및 장치 | |
KR101686376B1 (ko) | 메모리 시스템에서의 소거 관리 | |
KR100672996B1 (ko) | 메타 데이터가 저장되는 에프램을 포함하는 메모리 장치 | |
JP2004362426A (ja) | 情報処理システム及びその制御方法、並びにコンピュータ・プログラム | |
KR20100110652A (ko) | 메모리 장치 및 메모리 장치의 펌웨어 업데이트 방법 | |
JP2013257679A (ja) | 情報処理装置および方法、並びに、プログラム | |
WO2014158156A1 (en) | Storing data from cache lines to main memory based on memory addresses | |
US20150074336A1 (en) | Memory system, controller and method of controlling memory system | |
JP5183662B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
CN112379830A (zh) | 有效数据位图的创建方法、装置、存储介质及电子设备 | |
US9047923B1 (en) | Fast shingled tracks recording | |
CN104808765A (zh) | 一种信息处理方法以及电子设备 | |
KR20180044095A (ko) | 전자 시스템 및 그것의 동작 방법 | |
JP2008158773A (ja) | 情報処理装置およびメモリ管理方法 | |
US20190018475A1 (en) | Update memory management information to boot an electronic device from a reduced power mode | |
US20130326123A1 (en) | Memory management device and method, and program | |
US10824563B2 (en) | Method for processing data in in-memory database using non-volatile memory and in-memory database | |
JP2009258925A (ja) | 計算機システムおよび計算機システムのメモリ管理方法 | |
JP2013254403A (ja) | 情報処理装置および方法、並びに、プログラム | |
CN108509295B (zh) | 存储器***的操作方法 | |
JP2011164759A (ja) | Biosアップデート方法、biosアップデート装置及びbiosアップデートプログラム | |
JP4182928B2 (ja) | 情報処理装置、メモリ管理プログラムおよびメモリ管理方法 | |
JP5161600B2 (ja) | 情報処理装置およびデータ復旧方法 | |
JP2011221933A (ja) | 電子機器 | |
JP6157158B2 (ja) | 情報処理装置、その制御方法及びプログラム |