JP2013254403A - 情報処理装置および方法、並びに、プログラム - Google Patents
情報処理装置および方法、並びに、プログラム Download PDFInfo
- Publication number
- JP2013254403A JP2013254403A JP2012130397A JP2012130397A JP2013254403A JP 2013254403 A JP2013254403 A JP 2013254403A JP 2012130397 A JP2012130397 A JP 2012130397A JP 2012130397 A JP2012130397 A JP 2012130397A JP 2013254403 A JP2013254403 A JP 2013254403A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- memories
- information processing
- management unit
- 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 38
- 238000000034 method Methods 0.000 title description 39
- 230000015654 memory Effects 0.000 claims abstract description 287
- 238000007726 management method Methods 0.000 claims description 104
- 238000012545 processing Methods 0.000 claims description 40
- 230000008859 change Effects 0.000 claims description 21
- 238000013500 data storage Methods 0.000 claims description 10
- 238000003672 processing method Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 32
- 238000005516 engineering process Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005055 memory storage 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
- 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
- 230000002250 progressing effect Effects 0.000 description 1
- 230000004044 response 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/205—Hybrid memory, e.g. using both volatile and non-volatile memory
Abstract
【課題】不揮発性メモリの書き換え寿命は、メモリの種類によって異なるため、複数種類のメモリを用いたシステムなどにおける書き換え寿命の管理により、より効率的にメモリを利用することができるようにする。
【解決手段】書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度107に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部102とを備える。
【選択図】図2
【解決手段】書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度107に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部102とを備える。
【選択図】図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参照)。
ところで、不揮発性メモリの書き換え寿命は、メモリの種類によって異なるものである。例えば、MRAMは、比較的書き換え寿命が長く、ReRAMは、比較的書き換え寿命が短い。一方で、ReRAMは、MRAMと比較して、低コストで記憶容量を大きくすることが可能である。
しかしながら、例えば、特許文献1の技術では、メモリの種類に応じた書き換えが考慮されておらず、例えば、書き換え寿命の異なる複数種類のメモリを用いたシステムなどにおける書き換え寿命の管理が期待されていた。
本技術はこのような状況に鑑みて開示するものであり、より効率的にメモリを利用することができるようにするものである。
本技術の一側面は、書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部とを備える情報処理装置である。
前記割り当て管理部は、前記書き換え頻度が大きいデータの記憶領域を、前記複数のメモリのうちの第1のメモリに割り当て、前記書き換え頻度が小さいデータの記憶領域を、前記複数のメモリのうちの第1のメモリより書き換え可能回数の上限値が小さい第2のメモリに割り当てるようにすることができる。
前記割り当て管理部は、前記第2のメモリの1ページ当たりの記憶容量を、第1のメモリの1ページ当たりの記憶容量より大きく設定するようにすることができる。
前記第2のメモリは、前記第1のメモリより記憶容量が大きいようにすることができる。
前記第1のメモリは、MRAM(Magnetoresistive Random Access Memory)とされ、前記第2のメモリは、ReRAM(Resistance Random Access Memory)、または、PCM(Phase Change Memory)とされるようにすることができる。
前記主記憶装置に記憶すべきデータの付加情報に基づいて、前記データの書き換え頻度を推定する書き換え頻度推定部をさらに備えるようにすることができる。
前記書き換え頻度推定部は、前記主記憶装置に記憶すべきデータのデータ型毎に、前記データを構成する各部の書き換え頻度を推定するようにすることができる。
前記データを構成する各部の書き換え頻度が、前記データのデータ型毎に学習されて生成されたテンプレートに基づいて推定されるようにすることができる。
中央演算処理装置により実行されるプログラムの中の予め指定された特定のステップの処理が実行される場合、前記特定のステップが実行されることを、前記割り当て管理部に通知する特定ステップ実行通知部をさらに備え、前記割り当て管理部は、前記実行通知部からの通知を受けた場合、前記複数のメモリのうちの1つのメモリに割り当てられていた前記データの記憶領域を、前記複数のメモリのうちの他のメモリに割り当てるようにすることができる。
前記割り当て管理部は、前記実行通知部からの通知を受けた場合、前記複数のメモリのうちの第1のメモリより書き換え可能回数の上限値が小さい第2のメモリに記憶されているデータの記憶領域を、前記第1のメモリに割り当てるようにすることができる。
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、補助記憶装置と兼用されるようにすることができる。
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、不揮発性メモリとして構成され、前記複数のメモリのうち、比較的書き換え可能回数の上限値が大きいメモリが、揮発性メモリとして構成されるようにすることができる。
本技術の一側面は、書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置を備える情報処理装置の情報処理方法であって、前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てるステップを含む情報処理方法である。
本技術の一側面は、コンピュータを、書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部とを備える情報処理装置として機能させるプログラムである。
本技術の一側面においては、書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置に記憶すべきデータの記憶領域が、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てられる。
本技術によれば、より効率的にメモリを利用することができる。
以下、図面を参照して、ここで開示する技術の実施の形態について説明する。
図1は、本技術の一実施の形態に係る演算処理システムの構成例を示すブロック図である。
同図に示される演算処理システム10は、CPU21、MMU(Memory Management Unit)22、並びにRAM23およびRAM24を有する構成とされている。演算処理システム10は、例えば、携帯電話機やスマートフォンなどに実装され、ダウンロードされたアプリケーションプログラムなどを実行するようになされている。
ここで、RAM23は、書き換え寿命の長い(書き換え可能回数の上限値が大きい)メモリとされ、RAM24は、書き換え寿命の短い(書き換え可能回数の上限値が小さい)メモリとされる。なお、RAM23を、適宜、長寿命メモリと称し、RAM24を適宜、短寿命メモリとも称することにする。
長寿命メモリは、例えば、書き換え可能回数の上限値が大きいという利点を有する一方で、高密度化が困難であり、大容量化し辛いという欠点を有している。また、短寿命メモリは、書き換え可能回数の上限値が小さいという欠点を有する一方で、高密度化が容易で大容量化しやすいという利点を有している。
演算処理システム10は、このような利点と欠点とを有する長寿命メモリと短寿命メモリとを組み合わせて主記憶装置を構成するようになされている。
RAM23は、例えば、MRAM(Magnetoresistive Random Access Memory)などにより構成される。RAM24は、例えば、ReRAM(Resistance Random Access Memory)、PCM(Phase Change Memory)などにより構成される。
RAM23およびRAM24は、CPU21に対応する主記憶装置(メインメモリ)として設けられており、MMU22の制御に基づいてデータの書き込みまたは読み出しが行われるようになされている。MMU22は、仮想アドレスと物理アドレスとの変換、メモリ保護などに係る機能を有し、CPU21のメモリアクセス制御に係る処理を実行する機能ブロックとされる。MMU22は、例えば、CPU21の一部として構成されるようにしてもよい。
図2は、図1のCPU21、およびMMU22により実行されるプログラムなどのソフトウェアの機能的構成例を示すブロック図である。
同図においてアプリケーション101は、ダウンロードされたアプリケーションプログラムなどが実行されたプロセスとされ、処理中に必要となるファイルなどの読み出し、書き込みなどの指令をメモリ割り当て管理部102に出力する。
例えば、アプリケーション101が、処理中に必要となるデータを、RAM23またはRAM24から読み出す場合、アドレス変換部103に当該ファイルを構成するデータの格納位置を特定する仮想アドレスを供給し、仮想アドレスの物理アドレスへの変換を要求する。
アドレス変換部103は、アプリケーション101から供給された仮想アドレスを、ページテーブル104に基づいて物理アドレスに変換する。これによりアプリケーション101は、当該データに係る物理アドレスを取得し、メモリ割り当て管理部102に、その物理アドレスへのアクセス要求を出力する。
メモリ割り当て管理部102は、アプリケーション101から供給された物理アドレスに対応する記憶領域であって、RAM23またはRAM24の記憶領域からのデータの読み出しを制御する。RAM23の記憶領域からファイルが読み出される場合、メモリ割り当て管理部102は、長寿命メモリアクセス制御部106に読出し要求を出力する。また、RAM24の記憶領域からデータが読み出される場合、メモリ割り当て管理部102は、短寿命メモリアクセス制御部105に読出し要求を出力する。
長寿命メモリアクセス制御部106は、RAM23の所定の記憶領域からデータを読み出し、短寿命メモリアクセス制御部105は、RAM24の所定の記憶領域からデータを読み出すようになされている。
一方、例えば、アプリケーション101が、処理中に生成されたファイルなどを、RAM23またはRAM24に書き込む場合、メモリ割り当て管理部102に書き込み要求を出力する。この際、アプリケーション101は、例えば、ファイルを構成するデータのヘッダなどに、当該データの書き換え頻度に係るラベルを付加するようになされている。
メモリ割り当て管理部102は、アプリケーション101から書き込み要求のあったファイルを構成するデータのサイズに応じた記憶領域を、RAM23またはRAM24に割り当てる。この際、メモリ割り当て管理部102は、当該データの記憶領域を、RAM23またはRAM24のいずれに割り当てるべきかを決めるために、書き換え頻度推定部107に書き換え頻度を問い合わせる。
書き換え頻度推定部107は、データのヘッダに付加されたラベルを参照して、当該データの書き換え頻度が大(頻度が高い)または小(頻度が低い)のいずれであるかを判定(推定)し、メモリ割り当て管理部102に通知する。
メモリ割り当て管理部102は、書き換え頻度推定部107から通知された書き換え頻度が大である場合、当該データの記憶領域を長寿命メモリであるRAM23に割り当てる。そして、メモリ割り当て管理部102は、長寿命メモリアクセス制御部106を介して、当該データを、RAM23に記憶させる。
また、メモリ割り当て管理部102は、書き換え頻度推定部107から通知された書き換え頻度が小である場合、当該データの記憶領域を短寿命メモリであるRAM24に割り当てる。そして、メモリ割り当て管理部102は、短寿命メモリアクセス制御部105を介して、当該データを、RAM24に記憶させる。
さらに、メモリ割り当て管理部102は、上述のように、RAM23またはRAM24に割り当てられた当該データの記憶領域を特定する物理アドレスと、アプリケーション101により参照される仮想アドレスとを対応づけるページテーブル104の情報を更新する。
例えば、図3に示されるように、アプリケーション101において処理中に生成されたファイル151がデータA乃至Dで構成されていたものとする。ここで、データAとデータDは書き換え頻度が大であり、データBとデータCは書き換え頻度が小であるものとする。
ファイル151を構成するデータA乃至データDは、アドレスV1、アドレスV2、アドレスV3、アドレスV4、アドレスV5、・・・により構成される仮想アドレス空間152において、アドレスV2乃至アドレスV5にそれぞれマップされる。
上述したように、データAとデータDは書き換え頻度が大であるため、長寿命メモリであるRAM23に記憶される。長寿命メモリの物理アドレス空間153は、アドレスL1、アドレスL2、アドレスL3、アドレスL4、アドレスL5、・・・により構成されている。ここでは、データAが記憶される記憶領域を特定する物理アドレスがアドレスL2であり、データDが記憶される記憶領域を特定する物理アドレスがアドレスL3であったものとする。
また、上述したように、データBとデータCは書き換え頻度が小であるため、短寿命メモリであるRAM24に記憶される。短寿命メモリの物理アドレス空間153は、アドレスS1、アドレスS2、アドレスS3、アドレスS4、アドレスS5、・・・により構成されている。ここでは、データBが記憶される記憶領域を特定する物理アドレスがアドレスS1であり、データCが記憶される記憶領域を特定する物理アドレスがアドレスS2であったものとする。
このとき、ページテーブル104には、仮想アドレス空間152のアドレスV2と物理アドレス空間153のアドレスL2、仮想アドレス空間152のアドレスV3と物理アドレス空間154のアドレスS1、仮想アドレス空間152のアドレスV4と物理アドレス空間154のアドレスS2、および仮想アドレス空間152のアドレスV5と物理アドレス空間153のアドレスL3のそれぞれを対応づける情報が記述される。
このように、書き換え頻度が大きいデータは、長寿命メモリに記憶され、書き換え頻度が小さいデータは、短寿命メモリに記憶されるので、RAM23およびRAM24全体の寿命を長くすることができる。このように、本技術では、メモリをより効率的に利用することができる。
ところで、書き換え寿命のあるメモリを利用するシステムにおいては、メモリ内の各記憶領域の残り寿命が分かるように、書き換え回数を管理するための管理情報などを用意する必要がある。このような管理情報は、通常、メモリの記憶単位または管理単位であるページ毎に付加されることが多い。例えば、1ページが100KBである場合、100MBのメモリの記憶領域は、1000ページに分割されて管理される。
しかし、例えば、メモリが大容量化された場合、1ページ当たりの容量が同一であったとすると、ページ数が増加して管理情報も増加してしまう。このような場合、管理コストの増加につながりやすい。
そこで、例えば、データの書き換え頻度に応じて1ページ当たりの容量を変化させるようにしてもよい。
図4は、図1のCPU21、およびMMU22により実行されるプログラムなどのソフトウェアの別の機能的構成例を示すブロック図である。図4の例の場合、データの書き換え頻度に応じて1ページ当たりの容量を変化させるようになされている。
同図において、アプリケーション管理部109は、共有ライブラリ108として補助記憶装置などに記憶されているシステム共有ファイル、プログラムを構成するファイルなどを主記憶装置にロードする処理を実行するようになされている。このとき、アプリケーション管理部109は、各ファイルを構成するデータを仮想アドレス空間にマップする。
なお、共有ライブラリ108の各ファイルを構成するデータには、予め書き換え頻度を表すラベルが、それらのデータのヘッダなどに付されているものとする。ここでラベルは、例えば、書き換え頻度がゼロ(リードオンリーのデータ)、小、または、大のいずれかを表すものとされる。
アプリケーション管理部109は、各ファイルを構成するデータを仮想アドレス空間にマップする際に、各データのヘッダなどを参照して、書き換え頻度を特定する。そして、アプリケーション管理部109は、特定された書き換え頻度をメモリ割り当て管理部102に通知する。
メモリ割り当て管理部102は、アプリケーション管理部109から通知された書き換え頻度が大である場合、当該データの記憶領域を長寿命メモリであるRAM23に割り当てる。そして、メモリ割り当て管理部102は、長寿命メモリアクセス制御部106を介して、当該データを、RAM23に記憶させる。
この際、メモリ割り当て管理部102は、RAM23に割り当てる記憶領域のページサイズを小さく設定する。
また、メモリ割り当て管理部102は、アプリケーション管理部109から通知された書き換え頻度がゼロまたは小である場合、当該データの記憶領域を短寿命メモリであるRAM24に割り当てる。そして、メモリ割り当て管理部102は、短寿命メモリアクセス制御部105を介して、当該データを、RAM24に記憶させる。
この際、メモリ割り当て管理部102は、RAM24に割り当てる記憶領域のページサイズを大きく設定する。
すなわち、例えば、図5に示されるように、長寿命メモリであるRAM23のページサイズは小さく設定され、短寿命メモリであるRAM24のページサイズは大きく設定される。なお、図5において、RAM23またはRAM24を表す長方形の中の小さい矩形がそれぞれのページサイズを表している。
図4における他の部分の構成は、図2を参照して上述した場合と同様なので、詳細な説明は省略する。
例えば、ページサイズを小さく設定すると、メモリの記憶容量をより効率的に使用することができる。小さいサイズのデータを書き込む際には、使用される記憶容量を小さくすることができ、1回の書き換えで使用される記憶容量を充分小さくすることができるからである。つまり、ページサイズを小さく設定すれば、例えば、小さいサイズのデータを何度も書き換える際に、1回の書き換えで使用される記憶容量を充分小さくすることができ、書き換え寿命のあるメモリをできるだけ長く利用できるようになる。
一方で、ページサイズを小さく設定すると、演算処理システム10における管理負担が増大する。書き換え寿命のあるメモリを利用するシステムにおいては、メモリ内の各記憶領域の残り寿命が分かるように、書き換え回数を管理するための管理情報などを用意する必要があり、このような管理情報は、通常、メモリの記憶単位であるページ毎に付加されるからである。
例えば、ページサイズを大きく設定すると、メモリの記憶容量をより効率的に使用することができない。小さいサイズのデータを書き込む際にも、使用される記憶容量を小さくすることができず、1回の書き換えで使用される記憶容量を充分小さくすることができないからである。つまり、ページサイズを大きく設定すれば、例えば、小さいサイズのデータを何度も書き換える際に、1回の書き換えで使用される記憶容量も大きくなり、書き換え寿命のあるメモリを長く利用することはできない。
本技術では、書き換え頻度が大である場合、当該データの記憶領域が長寿命メモリに割り当てられるとともに、ページサイズが小さく設定される。これにより、例えば、小さいサイズのデータを何度も書き換える際に、1回の書き換えで使用される記憶容量を充分小さくすることができ、書き換え寿命のあるメモリをできるだけ長く利用できるようになる。
また、本技術では、書き換え頻度がゼロまたは小である場合、当該データの記憶領域が短寿命メモリに割り当てられるとともに、ページサイズが大きく設定される。これにより、小さいサイズのデータを書き込む際にも、使用される記憶容量を小さくすることができなくなるが、書き換え頻度がゼロまたは小であるため書き換え寿命に対する影響は小さい。また、短寿命メモリは、高密度化が容易で大容量化しやすいので、ある程度余裕をもって記憶領域を割り当てることも可能である。
そして、ページサイズが大きく設定されたことにより、上述した管理負担を軽減することも可能となる。
このように本技術では、長寿命メモリおよび短寿命メモリからなるメモリ全体を効率的に利用することができる。
ところで、上述した例では、データの書き換え頻度はラベルに基づいて特定されるとしたが、例えば、データの書き換え頻度が学習によって特定されるようにしてもよい。
図6は、図1のCPU21、およびMMU22により実行されるプログラムなどのソフトウェアのさらに別の機能的構成例を示すブロック図である。図6の例の場合、データの書き換え頻度が学習によって特定されるようになされている。
例えば、センサから出力されるセンシングデータなどは、センサから得られる生データに加え、管理情報などの各種メタデータを付加したデータ型を定義し、このデータ型単位で取り扱うことが一般的である。通常、センサから得られる生データを書き換えることはないが、管理情報などは頻繁に書き換えが発生することが考えられる。このような場合、データ型の中で頻繁に書き換える部分は長寿命メモリに記憶領域を割り当て、ほとんど書き換えない部分は短寿命メモリに記憶領域を割り当てるようにする。
書き換え頻度学習部111は、RAM23またはRAM24に記憶されるデータのデータ型を識別し、データ型毎に書き換え頻度を学習するようになされている。書き換え頻度学習部111は、例えば、RAM23またはRAM24に記憶される所定のデータ型のデータの中の各部(例えば、ページ毎)の書き換え頻度を監視する。そして、書き換え頻度学習部111は、例えば、各部の書き換え頻度をゼロ、小、大のいずれかに特定し、当該データ型の各部の書き換え頻度を表す情報を書き換えパターンテンプレート112として生成する。すなわち、書き換えパターンテンプレート112は、データ型毎に複数生成される。
メモリ割り当て管理部102は、アプリケーション101から書き込み要求のあったデータの記憶領域をRAM23またはRAM24に割り当てる際に、書き換え頻度推定部107に書き換え頻度を問い合わせる。書き換え頻度推定部107は、メモリ割り当て管理部102からの問い合わせを受けて、書き込み要求のあったデータのデータ型を特定し、そのデータ型に対応する書き換えパターンテンプレート112を検索する。
書き換え頻度推定部107は、書き込み要求のあったデータのデータ型に対応する書き換えパターンテンプレート112が存在する場合、その書き換えパターンテンプレート112に基づいて、書き込み要求のあったデータの各部の書き換え頻度を特定し、メモリ割り当て管理部102に通知する。
一方、書き換え頻度推定部107は、書き込み要求のあったデータのデータ型に対応する書き換えパターンテンプレート112が存在しない場合、書き込み要求のあったデータの全ての部分の書き換え頻度を大とし、メモリ割り当て管理部102に通知する。
メモリ割り当て管理部102は、書き換え頻度推定部107から通知された書き換え頻度が大である部分について、記憶領域を長寿命メモリであるRAM23に割り当てる。そして、メモリ割り当て管理部102は、長寿命メモリアクセス制御部106を介して、その部分をRAM23に記憶させる。
また、メモリ割り当て管理部102は、書き換え頻度推定部107から通知された書き換え頻度がゼロまたは小である部分について、記憶領域を短寿命メモリであるRAM24に割り当てる。そして、メモリ割り当て管理部102は、短寿命メモリアクセス制御部105を介して、その部分をRAM24に記憶させる。
図6における他の部分の構成は、図2を参照して上述した場合と同様なので、詳細な説明は省略する。
このように、データの書き換え頻度が学習によって特定されるようにすることもできる。
ところで、一度、RAM24(またはRAM23)に記憶されたデータが、その後、RAM23(またはRAM24)に移動されるようにしてもよい。
例えば、アプリケーション101が処理するデータの中には、通常時にはほとんど書き換えられないが、エラー処理など、プログラム内の特定のステップやルーチンでは頻繁に書き換えられるものがある。このようなデータは、通常時には短寿命メモリに記憶しておき、プログラム内の特定のステップやルーチンが実行されるときだけ、長寿命メモリに移動させるようにすると、メモリ全体を効率的に利用できる。
図7は、図1のCPU21、およびMMU22により実行されるプログラムなどのソフトウェアのさらに別の機能的構成例を示すブロック図である。図7の例の場合、一度、RAM24(またはRAM23)に記憶されたデータが、その後、RAM23(またはRAM24)に移動されるようになされている。
同図において、アプリケーション101のプログラム内で、例えば、エラー処理などに対応する特定のステップやルーチンが予め指定されているものとする。また、特定のステップやルーチンが実行される時、頻繁に書き換えが行われるデータも予め指定されているものとする。なお、特定のステップやルーチンが実行される時、頻繁に書き換えられるデータを、特定時書き換えデータと称することとし、特定時書き換えデータは、通常、短寿命メモリ(RAM24)に記憶されている。
アプリケーション101は、特定のステップやルーチンが実行される時に、割り当て変更指示部113にその旨を通知する。
割り当て変更指示部113は、特定のステップやルーチンが実行されることが通知された場合、特定時書き換えデータの移動を制御する。すなわち、割り当て変更指示部113は、特定のステップやルーチンが実行されることが通知された場合、メモリ割り当て管理部102に、特定時書き換えデータを長寿命メモリ(RAM23)に移動させるように要求する。
メモリ割り当て管理部102は、割り当て変更指示部113からの要求を受けると、短寿命メモリ(RAM24)に記憶されている特定時書き換えデータを、長寿命メモリ(RAM23)に移動させる。
また、この際、メモリ割り当て管理部102は、RAM24に割り当てられた特定時書き換えデータの記憶領域を特定する物理アドレスと、アプリケーション101により参照される仮想アドレスとを対応づけるため、ページテーブル104の情報を更新する。
さらに、アプリケーション101は、特定のステップやルーチンの実行が終了される時に、割り当て変更指示部113にその旨を通知する。
割り当て変更指示部113は、特定のステップやルーチンの実行が終了されることが通知された場合、特定時書き換えデータの移動を制御する。すなわち、割り当て変更指示部113は、特定のステップやルーチンの実行が終了されることが通知された場合、メモリ割り当て管理部102に、特定時書き換えデータを短寿命メモリ(RAM24)に移動させるように要求する。
メモリ割り当て管理部102は、割り当て変更指示部113からの要求を受けると、長寿命メモリ(RAM23)に記憶されている特定時書き換えデータを、短寿命メモリ(RAM24)に移動させる。
また、この際、メモリ割り当て管理部102は、RAM23に割り当てられた特定時書き換えデータの記憶領域を特定する物理アドレスと、アプリケーション101により参照される仮想アドレスとを対応づけるため、ページテーブル104の情報を更新する。
図7における他の部分の構成は、図2を参照して上述した場合と同様なので、詳細な説明は省略する。
このように、特定時書き換えデータを通常時には短寿命メモリに記憶しておき、特定のステップやルーチンが実行されるときだけ、長寿命メモリに移動させるようにすることもできる。
次に、図8のフローチャートを参照して、本技術を適用した演算処理システム10によるメモリ書き込み処理の例について説明する。この処理は、例えば、図2を参照して上述した機能的構成に対応する処理とされる。
ステップS21において、アプリケーション101は、処理中に生成されたファイルなどをRAM23またはRAM24に書き込むために、メモリ割り当て管理部102に書き込み要求を出力する。この際、アプリケーション101は、例えば、ファイルを構成するデータのヘッダなどに、当該データの書き換え頻度に係るラベルを付加するようになされている。
これにより、メモリ割り当て管理部102は、当該データの記憶領域を、RAM23またはRAM24のいずれに割り当てるべきかを決めるために、書き換え頻度推定部107に書き換え頻度を問い合わせる。
ステップS22において、書き換え頻度推定部107は、データのヘッダに付加されたラベルを参照して、当該データの書き換え頻度が大または小のいずれであるかを推定する。この推定結果は、メモリ割り当て管理部102に通知される。
ステップS23において、メモリ割り当て管理部102は、ステップS22の推定結果に基づいて、当該データの書き換え頻度を判定する。
ステップS23において、当該データの書き換え頻度が大であると判定された場合、処理は、ステップS24に進む。
ステップS24において、メモリ割り当て管理部102は、当該データの記憶領域を長寿命メモリであるRAM23に割り当てる。そして、メモリ割り当て管理部102は、長寿命メモリアクセス制御部106を介して、当該データを、RAM23に記憶させる。
一方、ステップS23において、当該データの書き換え頻度が小であると判定された場合、処理は、ステップS25に進む。
ステップS25において、メモリ割り当て管理部102は、当該データの記憶領域を短寿命メモリであるRAM24に割り当てる。そして、メモリ割り当て管理部102は、短寿命メモリアクセス制御部105を介して、当該データを、RAM24に記憶させる。
なお、メモリ割り当て管理部102は、上述のように割り当てられた当該データの記憶領域を特定する物理アドレスと、アプリケーション101により参照される仮想アドレスとを対応づけるページテーブル104の情報を更新する。
このようにして、メモリ書き込み処理が実行される。
次に、図9のフローチャートを参照して、本技術を適用した演算処理システム10によるメモリ書き込み処理の別の例について説明する。この処理は、例えば、図4を参照して上述した機能的構成に対応する処理とされる。
ステップS41において、アプリケーション管理部109は、共有ライブラリ108として補助記憶装置などに記憶されているシステム共有ファイル、プログラムを構成するファイルなどを主記憶装置にロードする。
ステップS42において、アプリケーション管理部109は、各ファイルを構成するデータを仮想アドレス空間にマップする。
なお、共有ライブラリ108の各ファイルを構成するデータには、予め書き換え頻度を表すラベルが、それらのデータのヘッダなどに付されているものとする。ここでラベルは、例えば、書き換え頻度がゼロ(リードオンリーのデータ)、小、または、大のいずれかを表すものとされる。
ステップS43において、アプリケーション管理部109は、各データのヘッダなどを参照して、書き換え頻度を判定する。このとき、アプリケーション管理部109は、判定結果をメモリ割り当て管理部102に通知する。
ステップS43において、書き換え頻度は大であると判定された場合、処理は、ステップS44に進む。
ステップS44において、メモリ割り当て管理部102は、当該データの記憶領域を長寿命メモリであるRAM23に割り当てる。この際、メモリ割り当て管理部102は、RAM23に割り当てる記憶領域のページサイズを小さく設定する。そして、メモリ割り当て管理部102は、長寿命メモリアクセス制御部106を介して、当該データを、RAM23に記憶させる。
一方、ステップS43において、書き換え頻度は小であると判定された場合、処理は、ステップS45に進む。
ステップS45において、メモリ割り当て管理部102は、当該データの記憶領域を短寿命メモリであるRAM24に割り当てる。この際、メモリ割り当て管理部102は、RAM24に割り当てる記憶領域のページサイズを大きく設定する。そして、メモリ割り当て管理部102は、短寿命メモリアクセス制御部105を介して、当該データを、RAM24に記憶させる。
なお、メモリ割り当て管理部102は、上述のように割り当てられた当該データの記憶領域を特定する物理アドレスと、アプリケーション101により参照される仮想アドレスとを対応づけるページテーブル104の情報を更新する。
このようにしてメモリ書き込み処理が実行される。
次に、図10のフローチャートを参照して、本技術を適用した演算処理システム10による書き換え頻度推定処理の例について説明する。この処理は、図6を参照して上述した機能的構成に対応する処理とされ、例えば、図8のステップS22の処理に代えて実行される処理とされる。
いまの場合、書き換え頻度学習部111が、RAM23またはRAM24に記憶されるデータのデータ型を識別し、データ型毎に書き換え頻度を学習する。書き換え頻度学習部111は、例えば、RAM23またはRAM24に記憶される所定のデータ型のデータの中の各部(例えば、ページ毎)の書き換え頻度を監視して、各部の書き換え頻度をゼロ、小、大のいずれかに特定する。そして、当該データ型の各部の書き換え頻度を表す情報が書き換えパターンテンプレート112として生成される。
メモリ割り当て管理部102は、例えば、アプリケーション101から書き込み要求のあったデータの記憶領域をRAM23またはRAM24に割り当てる際に、書き換え頻度推定部107に書き換え頻度を問い合わせる。これにより、ステップS61において、問い合わせがあったと判定され、処理は、ステップS62に進む。
ステップS62において、書き換え頻度推定部107は、書き込み要求のあったデータのデータ型を特定する。
ステップS63において、書き換え頻度推定部107は、ステップS62の処理で特定されたデータ型に対応する書き換えパターンテンプレート112を検索する。
ステップS64において、書き換え頻度推定部107は、ステップS63の処理による検索結果に基づいて、当該データ型に対応する書き換えパターンテンプレート112が存在するか否かを判定する。
ステップS64において、当該データ型に対応する書き換えパターンテンプレート112が存在すると判定された場合、処理は、ステップS65に進む。
ステップS65において、書き換え頻度推定部107は、その書き換えパターンテンプレート112に基づいて、書き込み要求のあったデータの各部の書き換え頻度を特定する。
一方、ステップS64において、当該データ型に対応する書き換えパターンテンプレート112が存在しないと判定された場合、処理は、ステップS66に進む。
ステップS66において書き換え頻度推定部107は、書き込み要求のあったデータの全ての部分の書き換え頻度を大とする。
ステップS67において、書き換え頻度推定部107は、ステップS65、または、ステップS66の処理による特定結果を、メモリ割り当て管理部102に通知する。
このようにして、書き換え頻度推定処理が実行される。
次に、図11のフローチャートを参照して、本技術を適用した演算処理システム10によるデータ移動制御処理の例について説明する。この処理は、例えば、図7を参照して上述した機能的構成に対応する処理とされる。
いまの場合、アプリケーション101のプログラム内で、例えば、エラー処理などに対応する特定のステップやルーチンが予め指定されているものとする。また、特定のステップやルーチンが実行される時、頻繁に書き換えが行われるデータ(特定時書き換えデータ)も予め指定されているものとする。なお、特定時書き換えデータは、通常、短寿命メモリ(RAM24)に記憶されているものとする。
ステップS81において、アプリケーション101は、これから特定のステップやルーチンが実行されるか否かを判定し、これから特定のステップやルーチンが実行されると判定されるまで待機する。
ステップS81において、これから特定のステップやルーチンが実行されると判定された場合、処理は、ステップS82に進む。
ステップS82において、アプリケーション101は、割り当て変更指示部113に特定のステップやルーチンが実行される旨を通知する。
ステップS83において、割り当て変更指示部113は、メモリ割り当て管理部102に、特定時書き換えデータを長寿命メモリ(RAM23)に移動させるように要求する。
ステップS84において、メモリ割り当て管理部102は、短寿命メモリ(RAM24)に記憶されている特定時書き換えデータを、長寿命メモリ(RAM23)に移動させる。
ステップS85において、メモリ割り当て管理部102は、RAM23に割り当てられた特定時書き換えデータの記憶領域を特定する物理アドレスと、アプリケーション101により参照される仮想アドレスとを対応づけるため、ページテーブル104の情報を更新する。
ステップS86において、アプリケーション101は、特定のステップやルーチンの実行が終了されるか否かを判定し、特定のステップやルーチンの実行が終了されると判定されるまで待機する。
ステップS86において、特定のステップやルーチンの実行が終了されると判定された場合、処理は、ステップS87に進む。
ステップS87において、アプリケーション101は、割り当て変更指示部113に、特定のステップやルーチンの実行が終了される旨を通知する。
ステップS88において、割り当て変更指示部113は、メモリ割り当て管理部102に、特定時書き換えデータを短寿命メモリ(RAM24)に移動させるように要求する。
ステップS89において、メモリ割り当て管理部102は、割り当て変更指示部113からの要求を受けると、長寿命メモリ(RAM23)に記憶されている特定時書き換えデータを、短寿命メモリ(RAM24)に移動させる。
ステップS90において、メモリ割り当て管理部102は、RAM24に割り当てられた特定時書き換えデータの記憶領域を特定する物理アドレスと、アプリケーション101により参照される仮想アドレスとを対応づけるため、ページテーブル104の情報を更新する。
このようにして、データ移動制御処理が実行される。
以上においては、長寿命メモリと短寿命メモリを主記憶装置として利用する例について説明したが、例えば、大容量の短寿命メモリについては、補助記憶装置と兼用するようにしてもよい。
また、以上においては、短寿命メモリおよび長寿命メモリを不揮発性メモリによって構成する例について説明したが、例えば、長寿命メモリをDRAMなどの揮発性メモリによって構成するようにしてもよい。要は、書き換え寿命の異なるメモリを組み合わせて主記憶装置として利用するシステムであれば、本技術を適用することが可能である。
さらに、以上においては、RAM23およびRAM24の2つのメモリを組み合わせて主記憶装置を構成する例について説明したが、3つ以上のメモリを組み合わせて主記憶装置を構成するようにしても構わない。
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図12に示されるような汎用のパーソナルコンピュータ700などに、ネットワークや記録媒体からインストールされる。
図12において、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などからなる記録媒体からインストールされる。
なお、この記録媒体は、図12に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フロッピディスク(登録商標)を含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア711により構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM702や、記憶部708に含まれるハードディスクなどで構成されるものも含む。
なお、本明細書において上述した一連の処理は、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
なお、本技術は以下のような構成も取ることができる。
(1)
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部と
を備える情報処理装置。
(2)
前記割り当て管理部は、
前記書き換え頻度が大きいデータの記憶領域を、前記複数のメモリのうちの第1のメモリに割り当て、
前記書き換え頻度が小さいデータの記憶領域を、前記複数のメモリのうちの第1のメモリより書き換え可能回数の上限値が小さい第2のメモリに割り当てる
(1)に記載の情報処理装置。
(3)
前記割り当て管理部は、
前記第2のメモリの1ページ当たりの記憶容量を、第1のメモリの1ページ当たりの記憶容量より大きく設定する
(2)に記載の情報処理装置。
(4)
前記第2のメモリは、前記第1のメモリより記憶容量が大きい
(2)に記載の情報処理装置。
(5)
前記第1のメモリは、MRAM(Magnetoresistive Random Access Memory)とされ、前記第2のメモリは、ReRAM(Resistance Random Access Memory)、または、PCM(Phase Change Memory)とされる
(2)に記載の情報処理装置。
(6)
前記主記憶装置に記憶すべきデータの付加情報に基づいて、前記データの書き換え頻度を推定する書き換え頻度推定部をさらに備える
(1)乃至(5)のいずれかに記載の情報処理装置。
(7)
前記書き換え頻度推定部は、
前記主記憶装置に記憶すべきデータのデータ型毎に、前記データを構成する各部の書き換え頻度を推定する
(1)乃至(6)のいずれかに記載の情報処理装置。
(8)
前記データを構成する各部の書き換え頻度が、前記データのデータ型毎に学習されて生成されたテンプレートに基づいて推定される
(7)に記載の情報処理装置。
(9)
中央演算処理装置により実行されるプログラムの中の予め指定された特定のステップの処理が実行される場合、前記特定のステップが実行されることを、前記割り当て管理部に通知する特定ステップ実行通知部をさらに備え、
前記割り当て管理部は、
前記実行通知部からの通知を受けた場合、
前記複数のメモリのうちの1つのメモリに割り当てられていた前記データの記憶領域を、前記複数のメモリのうちの他のメモリに割り当てる
(1)乃至(8)のいずれかに記載の情報処理装置。
(10)
前記割り当て管理部は、
前記実行通知部からの通知を受けた場合、
前記複数のメモリのうちの第1のメモリより書き換え可能回数の上限値が小さい第2のメモリに記憶されているデータの記憶領域を、前記第1のメモリに割り当てる
(9)に記載の情報処理装置。
(11)
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、補助記憶装置と兼用される
(1)乃至(10)のいずれかに記載の情報処理装置。
(12)
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、不揮発性メモリとして構成され、
前記複数のメモリのうち、比較的書き換え可能回数の上限値が大きいメモリが、揮発性メモリとして構成される
(1)乃至(11)のいずれかに記載の情報処理装置。
(13)
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置を備える情報処理装置の情報処理方法であって、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てるステップ
を含む情報処理方法。
(14)
コンピュータを、
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部とを備える情報処理装置として機能させる
プログラム。
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部と
を備える情報処理装置。
(2)
前記割り当て管理部は、
前記書き換え頻度が大きいデータの記憶領域を、前記複数のメモリのうちの第1のメモリに割り当て、
前記書き換え頻度が小さいデータの記憶領域を、前記複数のメモリのうちの第1のメモリより書き換え可能回数の上限値が小さい第2のメモリに割り当てる
(1)に記載の情報処理装置。
(3)
前記割り当て管理部は、
前記第2のメモリの1ページ当たりの記憶容量を、第1のメモリの1ページ当たりの記憶容量より大きく設定する
(2)に記載の情報処理装置。
(4)
前記第2のメモリは、前記第1のメモリより記憶容量が大きい
(2)に記載の情報処理装置。
(5)
前記第1のメモリは、MRAM(Magnetoresistive Random Access Memory)とされ、前記第2のメモリは、ReRAM(Resistance Random Access Memory)、または、PCM(Phase Change Memory)とされる
(2)に記載の情報処理装置。
(6)
前記主記憶装置に記憶すべきデータの付加情報に基づいて、前記データの書き換え頻度を推定する書き換え頻度推定部をさらに備える
(1)乃至(5)のいずれかに記載の情報処理装置。
(7)
前記書き換え頻度推定部は、
前記主記憶装置に記憶すべきデータのデータ型毎に、前記データを構成する各部の書き換え頻度を推定する
(1)乃至(6)のいずれかに記載の情報処理装置。
(8)
前記データを構成する各部の書き換え頻度が、前記データのデータ型毎に学習されて生成されたテンプレートに基づいて推定される
(7)に記載の情報処理装置。
(9)
中央演算処理装置により実行されるプログラムの中の予め指定された特定のステップの処理が実行される場合、前記特定のステップが実行されることを、前記割り当て管理部に通知する特定ステップ実行通知部をさらに備え、
前記割り当て管理部は、
前記実行通知部からの通知を受けた場合、
前記複数のメモリのうちの1つのメモリに割り当てられていた前記データの記憶領域を、前記複数のメモリのうちの他のメモリに割り当てる
(1)乃至(8)のいずれかに記載の情報処理装置。
(10)
前記割り当て管理部は、
前記実行通知部からの通知を受けた場合、
前記複数のメモリのうちの第1のメモリより書き換え可能回数の上限値が小さい第2のメモリに記憶されているデータの記憶領域を、前記第1のメモリに割り当てる
(9)に記載の情報処理装置。
(11)
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、補助記憶装置と兼用される
(1)乃至(10)のいずれかに記載の情報処理装置。
(12)
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、不揮発性メモリとして構成され、
前記複数のメモリのうち、比較的書き換え可能回数の上限値が大きいメモリが、揮発性メモリとして構成される
(1)乃至(11)のいずれかに記載の情報処理装置。
(13)
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置を備える情報処理装置の情報処理方法であって、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てるステップ
を含む情報処理方法。
(14)
コンピュータを、
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部とを備える情報処理装置として機能させる
プログラム。
10 演算処理システム, 21 CPU, 22 MMU, 23 RAM, 24 RAM
Claims (14)
- 書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部と
を備える情報処理装置。 - 前記割り当て管理部は、
前記書き換え頻度が大きいデータの記憶領域を、前記複数のメモリのうちの第1のメモリに割り当て、
前記書き換え頻度が小さいデータの記憶領域を、前記複数のメモリのうちの第1のメモリより書き換え可能回数の上限値が小さい第2のメモリに割り当てる
請求項1に記載の情報処理装置。 - 前記割り当て管理部は、
前記第2のメモリの1ページ当たりの記憶容量を、第1のメモリの1ページ当たりの記憶容量より大きく設定する
請求項2に記載の情報処理装置。 - 前記第2のメモリは、前記第1のメモリより記憶容量が大きい
請求項2に記載の情報処理装置。 - 前記第1のメモリは、MRAM(Magnetoresistive Random Access Memory)とされ、前記第2のメモリは、ReRAM(Resistance Random Access Memory)、または、PCM(Phase Change Memory)とされる
請求項2に記載の情報処理装置。 - 前記主記憶装置に記憶すべきデータの付加情報に基づいて、前記データの書き換え頻度を推定する書き換え頻度推定部をさらに備える
請求項1に記載の情報処理装置。 - 前記書き換え頻度推定部は、
前記主記憶装置に記憶すべきデータのデータ型毎に、前記データを構成する各部の書き換え頻度を推定する
請求項1に記載の情報処理装置。 - 前記データを構成する各部の書き換え頻度が、前記データのデータ型毎に学習されて生成されたテンプレートに基づいて推定される
請求項7に記載の情報処理装置。 - 中央演算処理装置により実行されるプログラムの中の予め指定された特定のステップの処理が実行される場合、前記特定のステップが実行されることを、前記割り当て管理部に通知する特定ステップ実行通知部をさらに備え、
前記割り当て管理部は、
前記実行通知部からの通知を受けた場合、
前記複数のメモリのうちの1つのメモリに割り当てられていた前記データの記憶領域を、前記複数のメモリのうちの他のメモリに割り当てる
請求項1に記載の情報処理装置。 - 前記割り当て管理部は、
前記実行通知部からの通知を受けた場合、
前記複数のメモリのうちの第1のメモリより書き換え可能回数の上限値が小さい第2のメモリに記憶されているデータの記憶領域を、前記第1のメモリに割り当てる
請求項9に記載の情報処理装置。 - 前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、補助記憶装置と兼用される
請求項1に記載の情報処理装置。 - 前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、不揮発性メモリとして構成され、
前記複数のメモリのうち、比較的書き換え可能回数の上限値が大きいメモリが、揮発性メモリとして構成される
請求項1に記載の情報処理装置。 - 書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置を備える情報処理装置の情報処理方法であって、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てるステップ
を含む情報処理方法。 - コンピュータを、
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部とを備える情報処理装置として機能させる
プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012130397A JP2013254403A (ja) | 2012-06-08 | 2012-06-08 | 情報処理装置および方法、並びに、プログラム |
US13/894,561 US20130332695A1 (en) | 2012-06-08 | 2013-05-15 | Information processing apparatus and method and computer-readable medium |
CN201310210883.4A CN103488573A (zh) | 2012-06-08 | 2013-05-31 | 信息处理设备和方法和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012130397A JP2013254403A (ja) | 2012-06-08 | 2012-06-08 | 情報処理装置および方法、並びに、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013254403A true JP2013254403A (ja) | 2013-12-19 |
Family
ID=49716236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012130397A Pending JP2013254403A (ja) | 2012-06-08 | 2012-06-08 | 情報処理装置および方法、並びに、プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130332695A1 (ja) |
JP (1) | JP2013254403A (ja) |
CN (1) | CN103488573A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017015553A (ja) * | 2015-07-01 | 2017-01-19 | ファナック株式会社 | 収集するデータ毎に記憶媒体を分けて保存できるデータロガー |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102513941B1 (ko) * | 2018-06-19 | 2023-03-27 | 현대자동차주식회사 | 자율 주행 제어 장치, 그를 가지는 차량 및 그 제어 방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418568B2 (en) * | 2005-01-05 | 2008-08-26 | Sap Ag | Memory management technique |
US20070033240A1 (en) * | 2005-08-04 | 2007-02-08 | International Business Machines Corporation | Scheduling garbage collection |
US8060719B2 (en) * | 2008-05-28 | 2011-11-15 | Micron Technology, Inc. | Hybrid memory management |
WO2011085131A2 (en) * | 2010-01-06 | 2011-07-14 | Ching-Hsiang Simon Huang | Expandable capacity solid state drive |
US9235531B2 (en) * | 2010-03-04 | 2016-01-12 | Microsoft Technology Licensing, Llc | Multi-level buffer pool extensions |
KR101662827B1 (ko) * | 2010-07-02 | 2016-10-06 | 삼성전자주식회사 | 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법 |
US20120047339A1 (en) * | 2010-08-20 | 2012-02-23 | Dan Decasper | Redundant array of independent clouds |
US8850114B2 (en) * | 2010-09-07 | 2014-09-30 | Daniel L Rosenband | Storage array controller for flash-based storage devices |
US9176864B2 (en) * | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
-
2012
- 2012-06-08 JP JP2012130397A patent/JP2013254403A/ja active Pending
-
2013
- 2013-05-15 US US13/894,561 patent/US20130332695A1/en not_active Abandoned
- 2013-05-31 CN CN201310210883.4A patent/CN103488573A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017015553A (ja) * | 2015-07-01 | 2017-01-19 | ファナック株式会社 | 収集するデータ毎に記憶媒体を分けて保存できるデータロガー |
Also Published As
Publication number | Publication date |
---|---|
US20130332695A1 (en) | 2013-12-12 |
CN103488573A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5413572B2 (ja) | メモリストレージ装置及びその制御方法 | |
US9396107B2 (en) | Memory system having memory controller with cache memory and NVRAM and method of operating same | |
WO2016107442A1 (zh) | 将数据写入固态硬盘的方法及固态硬盘 | |
US20170344430A1 (en) | Method and apparatus for data checkpointing and restoration in a storage device | |
KR102462305B1 (ko) | 고체 상태 드라이브의 판독 성능을 개선시키는 방법 및 장치 | |
CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
JP2011145838A (ja) | 記憶装置管理装置および記憶装置の管理方法 | |
KR20120044324A (ko) | 불휘발성 메모리에 대한 메타데이터 리던던시 스킴 | |
CN104346290A (zh) | 存储装置、计算机系统及其操作方法 | |
CN113785278A (zh) | 用于避免并发写入流之间冲突的动态数据放置 | |
US11543980B2 (en) | Allocating variable media types of memory devices in a memory system | |
JP2018101411A (ja) | データストレージデバイスおよびその操作方法 | |
KR20200040544A (ko) | 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법 | |
JP2019086970A (ja) | メモリシステムおよび制御方法 | |
US20190146926A1 (en) | Storage device and operating method of storage device | |
KR20140007990A (ko) | 불휘발성 램을 포함하는 사용자 장치 및 그것의 데이터 관리 방법 | |
CN110597742A (zh) | 用于具有持久系统存储器的计算机系统的改进存储模型 | |
KR101996641B1 (ko) | 메모리 오버레이 장치 및 방법 | |
CN113946283B (zh) | 存储器装置的分区命名空间中的部分区存储器单元处置 | |
US20130332662A1 (en) | Information processing apparatus and method and program | |
US9384124B2 (en) | Data storage device, memory control method, and electronic device with data storage device | |
CN110727470A (zh) | 一种混合式非失性存储装置 | |
JP2013254403A (ja) | 情報処理装置および方法、並びに、プログラム | |
EP2381354A2 (en) | Data recording device | |
EP4020220A1 (en) | Utilizing nand buffer for dram-less multilevel cell programming |