JP2018120346A - 情報処理システムおよび情報処理システムの制御方法 - Google Patents

情報処理システムおよび情報処理システムの制御方法 Download PDF

Info

Publication number
JP2018120346A
JP2018120346A JP2017010375A JP2017010375A JP2018120346A JP 2018120346 A JP2018120346 A JP 2018120346A JP 2017010375 A JP2017010375 A JP 2017010375A JP 2017010375 A JP2017010375 A JP 2017010375A JP 2018120346 A JP2018120346 A JP 2018120346A
Authority
JP
Japan
Prior art keywords
page
volatile memory
information processing
processing system
nonvolatile 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
Application number
JP2017010375A
Other languages
English (en)
Inventor
竜介 根橋
Ryusuke Nehashi
竜介 根橋
杉林 直彦
Naohiko Sugibayashi
直彦 杉林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2017010375A priority Critical patent/JP2018120346A/ja
Publication of JP2018120346A publication Critical patent/JP2018120346A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)
  • Memory System (AREA)

Abstract

【課題】不揮発性メモリを備えた、信頼性の高い情報処理システムを提供する。【解決手段】情報処理システムは、揮発性メモリと、不揮発性メモリと、アクティブリストと、インアクティブリストと、ページ内容移動手段とを有する。アクティブリストは、所定時間前の過去から現在までに書き込みが起きた不揮発性メモリのページを集めたリストである。インアクティブリストは、該所定時間前の過去から現在までに書き込みが起きていない不揮発性メモリのページを集めたリストである。ページ内容移動手段は、アクティブリストに保持された不揮発性メモリのページの内容を揮発性メモリのページに移動する。【選択図】 図1

Description

本発明は、情報処理システムおよび情報処理システムの制御方法に関する。
パーソナルコンピュータや組み込み機器等の情報処理システムは、サスペンド・レジューム機能を備えたものが普及している。サスペンド時、システムはその状態を不揮発性メモリへ保存するとともに、多くの構成部品への電力供給を停止し、消費電力を低減する。レジューム時、システムはその状態を不揮発性メモリから復元する。
不揮発性メモリとして、一般的に、ハードディスクやフラッシュメモリ等が利用されてきた。近年、FeRAM、MRAM、PCRAM、ReRAM、CBRAM等の高速にランダムアクセス可能な不揮発性メモリが開発されている。これら新興の不揮発性メモリをDRAMと同様に主メモリとして利用し、サスペンド・レジューム機能を実現する方法が提案されている。
例えば、特許文献1には、サスペンド時、揮発性メモリ内に存在する使用中のデータを不揮発性メモリに退避させたとき、退避先の不揮発性メモリの領域を示すように、ページテーブルエントリをマッピングする情報処理装置が開示されている。これにより、レジューム時に不揮発性メモリにマッピングしたデータを揮発性メモリに復元することを省略し、レジューム時の所要時間をより短縮させる。
また、特許文献2にも、サスペンド時、揮発性メモリ内に存在する使用中のデータを不揮発性メモリに退避させたとき、退避先の不揮発性メモリの領域を示すように、ページテーブルエントリをマッピングする技術が記載されている。この技術では、さらに、不揮発性メモリにマップされたページをリードオンリー属性に設定し、そのページに書き込み要求があった場合は例外を発生させる。そして、そのページのデータを不揮発性メモリから揮発性メモリへ移動し、データの移動後の揮発性メモリにおいて、そのページの書き込みを行う方法が開示されている。これにより、コンピュータ動作の高速化あるいは省電力化を図ることが可能となる。
特開2008−158773号公報 特許第5901698号公報
特許文献1に記載の技術は、揮発性メモリと不揮発性メモリが同等の性能を有していることを前提としている。しかし、不揮発性メモリは、揮発性メモリに比べ、書き込み時間が長い、書き込みにより摩耗する等の課題がある。
特許文献2に記載の技術は、不揮発性メモリの書き込みに関する課題に配慮している。しかし、次のサスペンドまでに書き込みがほとんど発生しないページも、書き込みが1回でも発生したときには揮発性メモリへ移動し、サスペンド時に不揮発性メモリへ移動している。このため、ページによっては、移動に伴う不揮発性メモリへの書き込み回数のオーバーヘッドが大きくなる懸念がある。
本発明は、上記の課題に鑑みてなされたものであり、その目的は、不揮発性メモリを備えた、信頼性の高い情報処理システムを提供することである。
上記の課題を解決するため、本発明の情報処理システムは、揮発性メモリと、不揮発性メモリと、アクティブリストと、インアクティブリストと、ページ内容移動手段とを有する。アクティブリストは、所定時間前の過去から現在までに書き込みが起きた不揮発性メモリのページを集めたリストである。インアクティブリストは、該所定時間前の過去から現在までに書き込みが起きていない不揮発性メモリのページを集めたリストである。ページ内容移動手段は、アクティブリストに保持された不揮発性メモリのページの内容を揮発性メモリのページに移動する。
本発明の効果は、不揮発性メモリを備えた、信頼性の高い情報処理システムを提供できることである。
第1の実施形態の情報処理システムを示すブロック図である。 第2の実施形態の情報処理システムのハードウェア構成を示すブロック図である。 第2の実施形態の情報処理システムの不揮発性メモリの管理方法を示す模式図である。 第2の実施形態の情報処理システムの処理の一例を示す状態遷移図であるである。 第2の実施形態の情報処理システムのサスペンド処理の例を示すフローチャートである。 第2の実施形態の情報処理システムのレジューム処理の例を示すフローチャートである。 第2の実施形態の情報処理システムの処理の例を示すフローチャートある。 第3の実施形態の情報処理システムの処理の例を示すフローチャートある。 第3の実施形態の情報処理システムのサスペンド処理の一部を示すフローチャートである。 第3の実施形態の情報処理システムのサスペンド処理の別の一部を示すフローチャートである。
以下、図面を参照しながら、本発明の実施形態を詳細に説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお各図面の同様の構成要素には同じ番号を付し、説明を省略する場合がある。
(第1の実施形態)
図1は第1の実施形態を示すブロック図である。情報処理システムは、揮発性メモリ1と、不揮発性メモリ2と、アクティブリスト3と、インアクティブリスト4と、ページ内容移動手段5とを有する。
アクティブリスト3は、所定時間前の過去から現在までに書き込みが起きた不揮発性メモリのページを集めたリストである。
インアクティブリスト4は、上記の所定時間前の過去から現在までに書き込みが起きていない不揮発性メモリのページを集めたリストである。
ページ内容移動手段5は、アクティブリスト3に保持された不揮発性メモリ2のページの内容を揮発性メモリ1のページに移動する。
以上の構成とすることにより、本実施形態によれば、不揮発性メモリを備えた、信頼性の高い情報処理システムを提供できる。
(第2の実施形態)
図2は本発明の情報処理システムのハードウェア構成を示すブロック図である。情報処理システム100は、CPU(Central Processing Unit)10と、主記憶装置20と、2次記憶装置30と、入出力装置40を備えている。CPU10は、2次記憶装置30から主記憶装置20にロードされたプログラムを実行し、バスを介して、主記憶装置20と、2次記憶装置30と、入出力装置40とを制御する。CPU10は各装置からの制御信号に応答し、プログラムを実行する。2次記憶装置30は、不揮発性記録媒体として、ハードディスクやフラッシュメモリ等を含む。入出力装置40は、キーボードやマウスなどの入力手段と、液晶ディスプレイ等の出力手段を含む。ページ内容移動手段5およびアクティブリスト3、インアクティブリスト4、はCPU10で動作する。
主記憶装置20は、揮発性メモリ21と、不揮発性メモリ22から構成される。主記憶装置20の揮発性メモリ21は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)を含む。揮発性メモリは、電源の供給されている間のみデータを保持できる。主記憶装置20の不揮発性メモリ22は、FeRAM、MRAM、PCRAM、ReRAM、CBRAM等の高速にランダムアクセス可能な不揮発性メモリを含む。これらのRAMの表記は、Random Access Memoryの略である。そして、FeRAMはFerroelectric−RAMの略、MRAMはMagnetoresistive−RAMの略、PCRAMはPhase―Change−RAMの略である。またReRAMはResistive−RAM、CBRAMはConductive−Bridge−RAMの略である。
不揮発性メモリ22は、電源の供給が遮断されてもデータを保持できる。揮発性メモリ21は、動作時にプログラムやCPU10が処理したデータを格納する。不揮発性メモリ22は、動作時とサスペンド時にプログラムやCPU10が処理したデータを格納する。
主記憶装置20が提供する実メモリは、ページ単位に分割され、管理される。仮想アドレス空間も同じページ単位に分割され、管理される。仮想記憶機構を備えたCPU10は、プログラムを固有の仮想アドレス空間上で動作させることができる。仮想アドレスから実メモリのアドレス(実アドレス)への変換はページテーブルを基にページ単位で行われる。ページテーブルは、仮想ページと実ページの対応表である。
本実施形態の情報処理システム100における主記憶装置20が提供する実メモリは、揮発性メモリ21と不揮発性メモリ22を区別して管理される。たとえば、Operatign System(OS)の一つであるLinux(登録商標)は、ゾーンとノードの組み合わせに応じてページを管理する機構を備えているが、同様の機構を適用してもよい。ゾーンは、実アドレスの領域によって分けて、管理される単位である。ページの割り当てはゾーン毎に行われる。ノードは、システム内のメモリを分割し、管理される単位である。ノードは、たとえば、Non−Uniform Memory Access(NUMA)システムにおいて、メモリの割り当て方に差をつけるために利用される。
本実施形態の情報処理システム100は、最近書き込まれた不揮発性メモリのページの内容を揮発性メモリへ移動するという方針に基づき、Most Recently Written(MRW)リストによって管理される。ここで、「最近」とは、所定時間過去から現在までの期間であるとする。
図3は、本実施形態の情報処理システム100における不揮発性メモリの管理方法を示す模式図である。本実施形態の情報処理システム100は、ゾーン記述子とページ記述子から構成されるアクティブリストとインアクティブリストによって、不揮発性メモリを管理する。ゾーン記述子は、不揮発性メモリの実ページが属するゾーンを管理する記述子である。ページ記述子は、不揮発性メモリの実ページを管理する記述子である。
ゾーン記述子は、active_listメンバとinactive_listメンバを備える。前記active_listメンバは、アクティブリストの先頭のページ記述子を指す。前記inactive_listメンバは、インアクティブリストの先頭のページ記述子を指す。
ページ記述子は、PG_mrwフラグと、PG_activeフラグと、mrwメンバを備える。PG_mrwフラグは、MRWリストにつながっているとき、1に設定される。PG_activeフラグは、アクティブリストにつながっているとき、1に設定される。PG_activeフラグは、インアクティブリストにつながっているとき、0に設定される。ページ記述子のmrwメンバは、リストの後続のページ記述子を指す。
アクティブリストは、最近書き込まれた不揮発性メモリの実ページがつながっている。インアクティブリストは、最近書き込まれていない不揮発性メモリの実ページがつながっている。アクティブリスト内の実ページが揮発性メモリへ移動する候補のページである。
図4は、アクティブリストとインアクティブリストの遷移の一例を示す状態遷移図である。ページの状態はPG_activeフラグとPG_writtenフラグにより識別される。それぞれのフラグの状態に応じて、S0−S3の4つの状態が存在する。PG_writtenフラグは最近書き込みがあったことを示すために用いる。
S0からS1への状態遷移について説明する。ページへの書き込みが起きた場合、PG_writtenフラグを1に設定する。ページへの書き込みが起きたことの判断、もしくは、書き込みが起きたことによる本処置のトリガーは、OS等のソフトウェアから行ってもよい。もしくは、ハードウェアが設定するページテーブルエントリのダーティビットを参照してもよい。尚、ダーティビットがセットされている場合は、次回の書き込みを検出するために、ダーティビットをクリアした上で、ページへの書き込みがあったことを記録するために、ページ記述子のPG_dirtyフラグを1に設定するなどの処置を行う。また、ページが共有されている場合には、このページを参照している全ページテーブルエントリを更新する。
S2からS3への状態遷移は、S0からS1への状態遷移と同様に行う。
S1からS2への状態遷移について説明する。ページへの書き込みが起きた場合、PG_writtenフラグが1であることを検出し、PG_writtenフラグを0に設定する。さらに、PG_activeフラグを1に設定し、ページ記述子をアクティブリストにつなげる。ページへの書き込みが起きたかの判断はS0からS1への状態遷移と同様である。
次に、S1からS0への状態遷移について説明する。ある期間経過するとOS等のソフトウェアはPG_writtenフラグを0に設定する。
S3からS2への状態遷移は、S1からS0への状態遷移と同様に行う。
S2からS1への状態遷移は、ある期間経過するとOS等のソフトウェアはPG_writtenフラグが0であることを検出し、PG_writtenフラグを1に設定する。さらに、PG_activeフラグを0に設定し、ページ記述子をインアクティブリストにつなげる。
図5は本実施形態の情報処理システムのサスペンド処理のフローチャートである。
揮発性メモリに未保存のページがあるかを調べる(S100)。まだ未保存のページP0がある場合(S100_Yes)、不揮発性メモリに空きページがあるかを調べる(S101)。不揮発性メモリは、ページテーブルと退避管理テーブルの領域を予め確保しているものとする。
不揮発性メモリに空きページがある場合(S101_Yes)、不揮発性メモリの空きページから新規にページP1を確保し、揮発性メモリの未保存ページP0の内容をその新規ページP1に保存する(S102)。その新規ページP1のページ記述子をMRWリストのインアクティブリストに追加する(S103)。その後、未保存ページP0を指していたページテーブルエントリをその新規ページP1を指すように更新する(S104)。
一方、不揮発性メモリに空きページがない場合(S101_No)、2次記憶装置に未保存のページを退避する(S105)。その後、退避管理テーブルを更新する(S106)。退避管理テーブルは、レジューム時に退避したページを元の位置に戻すために、退避前後のページ位置等が記載される。
上記の処理は、揮発性メモリに未保存ページが無くなるまで続けられる。揮発性メモリに未保存ページが無くなった場合、不揮発性メモリにページテーブルを保存する(S107)。最後に、不揮発性メモリに退避管理テーブルを保存する(S108)。
図6は本実施形態の情報処理システムのレジューム処理のフローチャートである。
退避管理テーブルを参照して、2次記憶装置に保存したページを主記憶装置へ書き戻す(S200)。その後、中断していたプログラムの実行を再開する(S201)。尚、サスペンド処理時に、揮発性メモリから不揮発性メモリへ移動したページのページテーブルエントリを更新したので、レジューム処理では、そのページを揮発性メモリへ書き戻す必要はない。
本実施形態の情報処理システムは、レジューム処理後の通常動作時、サスペンド処理時にMRWリストのインアクティブリストにつなげられたページに対し、高い頻度で書き込みアクセスが行われた場合、前述したとおり、そのページをアクティブリストに移す。
図7は本実施形態の情報処理システムのアクティブリストのページを揮発性メモリへ移動する処理のフローチャートである。アクティブリストのページP0のページエントリを書き込み禁止に設定する(S300)。不揮発性メモリのページP0へ書き込みアクセスが起きた場合(S310_Yes)、書き込みを一時中断する(S302)。そして、揮発性メモリに新たなページP1を割り当てる。不揮発性メモリのページP0の内容を新規に割り当てた揮発性メモリのページP1に移動し(S303)、移動したページに対して中断していた書き込みを行う(S304)。最後にページP0からページP1を指すようにページテーブルエントリを更新する(S305)。ページP0は、アクティブリストから外す。一方、不揮発性メモリのページP0への読み出しアクセスの場合(S310_No)、ページP0のデータの読み出しを行う(S306)。
前記書き込みを禁止するページは優先度に応じて選んでもよい。そして、この優先度は、ユーザーが設定してもよい。もしくは、OSなどのソフトウェアがページの利用目的を識別して設定してもよい。もしくは、OSなどのソフトウェアが次回のサスペンドまでの期間を予測し、その期間が長い場合は優先度を上げてより多くのページを揮発性メモリへ移動するように、適応的に設定してもよい。
アクティブリストに移された後に、揮発性メモリへページの内容を移動する別の方法として、タイマがある時間経過したことや、不揮発性メモリの空き容量が低下したこと等をトリガーとして、優先度に基づいて、ページを揮発性メモリへ移動してもよい。
(効果)
既存のメモリ管理機構として、Least Recently Used(LRU)リストを用いたメモリ管理がある。これは、最近使われていない実ページを2次記憶装置へ移動するという方針に基づいてメモリを管理する。本実施形態の情報処理システムにおけるMRWリストによる管理は、LRUリストを用いたメモリ管理と類似しているが、以下の点が異なる。第1に本実施形態の情報処理システムにおけるメモリ管理の基準が、MRWは書き込みに着目している点が異なる。第2に本実施形態の情報処理システムにおけるメモリ管理によるページの移動方向が、不揮発性メモリから揮発性メモリである点が異なる。最近書き込まれたページを揮発性メモリへ移動することにより、不揮発性メモリの書き込み速度や摩耗の課題を解消する。
これまでの一般的なシステムの不揮発性メモリから揮発性メモリへのページの移動は、たとえば、2次記憶装置である不揮発性メモリへスワップしたページの場合、そのページへアクセスする度に発生する。一般的なシステムの不揮発性メモリである2次記憶装置はアクセス時間が長いため、MRWリストによる管理をそのまま適用すると、システムの速度が低下する。しかし、本実施形態の情報処理システムの不揮発性メモリは高速なアクセスが可能なため、MRWリストによる管理を適用しても、システム速度の低下はほとんど起きない。さらに、MRWリストによる管理により、次のサスペンドまでに書き込みがほとんど発生しないページは、揮発性メモリへ移動することを回避できる。これにより、サスペンド時に不揮発性メモリへ移動するページ数を低減できることが期待される。
よって、本実施形態の情報処理システムは、不揮発性メモリへの書き込み回数をより低減し、不揮発性メモリを利用した情報処理システムの信頼性を向上することができる。
(第3の実施形態)
本発明の第3実施形態の情報処理システムにおける主記憶装置の不揮発性メモリは、揮発性メモリのページをページ単位でバックアップするシャドーページを備える。本実施形態の説明に当たり、第2の実施形態と説明が重複する箇所は適宜説明を省略する。
本実施形態の情報処理システムは、レジューム処理後の通常動作時、サスペンド処理時にMRWリストのインアクティブリストにつなげられたページに対し、高頻度の書き込みアクセスがあった場合、第1の実施形態と同様、そのページをアクティブリストに移す。
図8は本実施形態の情報処理システムのアクティブリストのページを揮発性メモリへ移動する処理のフローチャートである。まず、アクティブリストのページP0のページエントリを書き込み禁止に設定する(S400)。不揮発性メモリのページP0へ書き込みが起きた場合(S401_Yes)、書き込みを一時中断する(S402)。そして、揮発性メモリに新たなページP1を割り当てる。不揮発性メモリのページP0の内容を新規に割り当てた揮発性メモリのページP1に移動し(S403)、移動したページに対して書き込みを行う(S404)。次に、ページP0からページP1を指すようにページエントリを更新する(S405)。そしてページP0は、アクティブリストから外す。さらに、シャドーページ管理手段にページP0をページP1のシャドーページとして登録する(S406)。一方、不揮発性メモリのページP0への読み出しアクセスの場合(S401_No)、ページP0のデータを読み出す(S407)。
シャドーページ管理手段は、揮発性メモリのページと、その不揮発性メモリのシャドーページの対応を管理する。シャドーページ管理手段は、ページの対応テーブルやリストによって実現される。ページは、実アドレスや仮想アドレス等によって識別される。
図9、10は本実施形態の情報処理システムのサスペンド処理のフローチャートである。
まず揮発性メモリに未保存のページがあるかを調べる(S500)。未保存のページP0がある場合(S500_Yes)まだ未保存のページP0がある場合(S500_Yes)、シャドーページ管理手段を用いて、ページP0に対応するシャドーページP2があるかを調べる(S501)。
対応するシャドーページP2がある場合(S501_Yes)、揮発性メモリのページP0の内容に不揮発性メモリのシャドーページP2を更新する(S502)。そのシャドーページP2のページ記述子をMRWリストのインアクティブリストに追加する(S503)。その後、未保存ページP0を指していたページテーブルエントリをその新規ページP2を指すように更新する(S504)。そして、シャドーページ管理手段から、シャドーページP2の登録を削除する(S505)。
一方、対応するシャドーページがない場合(S501_No)、プロセスAに進む。図10はプロセスAを示すフローチャートである。
ここで、不揮発性メモリに空きページがあるかを調べる(S508)。なお不揮発性メモリは、ページテーブルと退避管理テーブルの領域を予め確保しているものとする。
不揮発性メモリに空きページがある場合(S508_Yes)、不揮発性メモリの空きページから新規にページP1を確保し、揮発性メモリの未保存ページP0の内容をその新規ページP1に保存する(S509)。その新規ページP1のページ記述子をMRWリストのインアクティブリストにつなげる(S510)。その後、未保存ページP0を指していたページテーブルエントリをその新規ページP1を指すように更新し(S511)、プロセスB(図9のフローチャートのB)に進む。
一方不揮発性メモリに空きページがない場合(S508_No)、2次記憶装置に未保存のページを退避する(S512)。その後、退避管理テーブルを更新する(S513)。退避管理テーブルは、レジューム時に退避したページを元の位置に戻すために、退避前後のページ位置等が記載される。
上記したS500_YESからS505、および、プロセスAからBまでの処理は、揮発性メモリに未保存ページが無くなるまで続けられる。揮発性メモリに未保存ページが無くなった場合(S500_No)、不揮発性メモリにページテーブルを保存する(S506)。最後に、不揮発性メモリに退避管理テーブルを保存する(S507)。
本実施形態の情報処理システムのシャドーページ更新処理は、以下のリード・モディファイ・ライトを適用してよい。まず、シャドーページP2のある単位のデータを読み出す。そして、読み出したシャドーページP2のデータと、対応するページP0のデータを比較し、違いがある場合、シャドーページP0の対応するデータに更新する。同一の場合、その書き込みを行わない。そして、ページ内の未更新の領域が無くなるまで上記作業を繰り返す。
シャドーページの更新の単位は、例えば、バイト単位の整数倍である。シャドーページの更新処理は、例えば、ソフトウェアによって行ってもよい。もしくは、リード・モディファイ・ライトコマンドを備えた不揮発性メモリを利用し、ハードウェア上で行ってもよい。
リード・モディファイ・ライト コマンドを備えた不揮発性メモリは、更新単位と同じ大きさの第1バッファーと、第2バッファーとを備えている。さらに、第1バッファーと第2バッファーのデータをビット単位で比較する比較回路と、比較した結果異なったビットのみ書き込みを行う書き込み回路を備えている。
不揮発性メモリがリード・モディファイ・ライト コマンドと、アドレスA0と、データD0を受け取ると、第1バッファーにデータD0を格納する。次に、不揮発性メモリのアドレスA0からデータD2を読み出し、第2バッファーへ格納する。そして、比較回路を利用して、第1バッファーと第2バッファーのデータをビット単位で比較する。比較した結果異なったビットに対し、書き込み回路を用いて、第1バッファーのデータD0になるように書き込みを行う。
本実施形態の情報処理システムは、シャドーページの削除処理について説明する。タイマがある時間経過したことや、不揮発性メモリの空き容量が低下したこと等をトリガーとして、優先度に基づいて、シャドーページを削除してもよい。そして、シャドーページ管理手段から、シャドーページの登録を削除する。優先度は、ユーザーが設定してもよい。もしくは、OSなどのソフトウェアがページの利用目的を識別して設定してもよい。
(効果)
本実施形態の情報処理システムは、シャドーページの更新時に、リード・モディファイ・ライトを行う。これにより、ページの一部のみが更新された場合、その部分のみ不揮発性メモリの書き換えを行えばよい。
よって、本実施形態の情報処理システムは、不揮発性メモリへの書き込み回数をより低減し、不揮発性メモリを利用した情報処理システムの信頼性を向上することができる。
上述した第1乃至第3の実施形態の処理をコンピュータに実行させるプログラムおよび該プログラムを格納した記録媒体も本発明の範囲に含む。記録媒体としては、例えば、磁気ディスク、磁気テープ、光ディスク、光磁気ディスク、半導体メモリ、などを用いることができる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
揮発性メモリと、
不揮発性メモリと、
所定時間前の過去から現在までに書き込みが起きた前記不揮発性メモリのページを集めたアクティブリストと、
前記所定時間前の過去から現在までに書き込みが起きていない前記不揮発性メモリのページを集めたインアクティブリストと、
前記アクティブリストに保持された前記不揮発性メモリのページの内容を前記揮発性メモリのページに移動するページ内容移動手段と
を有することを特徴とする情報処理システム。
(付記2)
前記ページ内容移動手段は、
前記情報処理システムの状態を保存して電源を遮断するサスペンド処理時に、
前記揮発性メモリのデータをページ単位で前記不揮発性メモリのページに保存し、
前記不揮発性メモリのページを前記インアクティブリストにつなぐ
ことを特徴とする付記1に記載の情報処理システム。
(付記3)
前記ページ内容移動手段は、
前記サスペンド処理時に、
前記揮発性メモリのページから前記不揮発性メモリの保存先のページを指すようにページテーブルを更新するページテーブル更新手段を有する
ことを特徴とする付記2に記載の情報処理システム。
(付記4)
前記ページ内容移動手段は、
前記アクティブリストの前記不揮発性メモリのページを書き込み禁止に設定し、
前記不揮発性メモリのページへの書き込みを一時中断し、
揮発性メモリのページを新たに割り当て、
前記不揮発性メモリのページの内容を新規に割り当てた前記揮発性メモリのページへ移動し、
移動したページに対して書き込みを行い、
前記不揮発性メモリのページは前記アクティブリストから外す
ページ制御手段を有する
ことを特徴とする付記3に記載の情報処理システム
(付記5)
前記ページテーブル更新手段は、
前記不揮発性メモリのページから前記揮発性メモリの移動先のページを指すように前記ページテーブルを更新する
ことを特徴とする付記4に記載の情報処理システム。
(付記6)
前記ページ内容移動手段は、
前記不揮発性メモリの移動元のページを、前記揮発性メモリの移動先のページのシャドーページとして登録する
シャドーページ管理手段を有する
ことを特徴とする付記4または付記5に記載の情報処理システム。
(付記7)
前記ページ制御手段は、
情報処理システムの状態を保存して電源を遮断する前記サスペンド処理時、
前記シャドーページ管理手段を用いて対応する前記不揮発性メモリの前記シャドーページを調べ、
前記揮発性メモリのデータにページ単位で対応する前記不揮発性メモリの前記シャドーページを更新し、
前記シャドーページ管理手段から前記シャドーページの登録を削除する
ことを特徴とする付記6に記載の情報処理システム。
(付記8)
前記ページテーブル更新手段は、
前記サスペンド処理時、
前記揮発性メモリのページから前記不揮発性メモリの保存先の前記シャドーページを指すようにページテーブルを更新する
ことを特徴とする付記7に記載の情報処理システム。
(付記9)
前記ページ制御手段は、
前記不揮発性メモリの保存先の前記シャドーページ内の所定のサイズのデータを読み出し、
前記揮発性メモリのデータ内の対応するデータと比較し、
違いがある場合、前記シャドーページの対応するデータを更新し、
同一の場合、書き込みを行わないリード・モディファイ・ライトを行って前記シャドーページの更新を行う
ことを特徴とする付記7または付記8に記載の情報処理システム。
(付記10)
前記不揮発性メモリは、
リード・モディファイ・ライトコマンドと、
所定のサイズの第1バッファーと、
所定サイズの第2バッファーと、
前記第1バッファーと前記第2バッファーのデータをビット単位で比較する比較回路と、
比較した結果異なったビットのみ書き込みを行う書き込み回路と
を有することを特徴とする付記9に記載の情報処理システム。
(付記11)
所定時間前の過去から現在までに書き込みが起きた不揮発性メモリのページを集めたアクティブリストを作成し、
前記所定時間前の過去から現在までに書き込みが起きていない前記不揮発性メモリのページを集めたインアクティブリストを作成し、
前記アクティブリストに保持された前記不揮発性メモリのページの内容を揮発性メモリのページに移動する
ことを特徴とする情報処理システムの制御方法。
(付記12)
情報処理システムの状態を保存して電源を遮断するサスペンド処理時に、
前記揮発性メモリのデータをページ単位で前記不揮発性メモリのページに保存し、
前記不揮発性メモリのページを前記インアクティブリストにつなぐ
ことを特徴とする付記11に記載の情報処理システムの制御方法。
(付記13)
前記サスペンド処理時に、
前記揮発性メモリのページから前記不揮発性メモリの保存先のページを指すようにページテーブルを更新する
ことを特徴とする付記12に記載の情報処理システムの制御方法。
(付記14)
前記アクティブリストの前記不揮発性メモリのページを書き込み禁止に設定し、
前記不揮発性メモリのページへの書き込みを一時中断し、
前記揮発性メモリのページを新たに割り当て、
前記不揮発性メモリのページの内容を新規に割り当てた前記揮発性メモリのページへ移動し、
移動したページに対して書き込みを行い、
前記不揮発性メモリのページは前記アクティブリストから外す
ことを特徴とする付記13に記載の情報処理システムの制御方法。
(付記15)
前記不揮発性メモリのページから前記揮発性メモリの移動先のページを指すように前記ページテーブルを更新する
ことを特徴とする付記14に記載の情報処理システムの制御方法。
(付記16)
前記不揮発性メモリの移動元のページを、前記揮発性メモリの移動先のページのシャドーページとして登録する
ことを特徴とする付記14または付記15に記載の情報処理システム。
(付記17)
情報処理システムの状態を保存して電源を遮断するサスペンド処理時、
前記シャドーページ管理手段を用いて対応する前記不揮発性メモリの前記シャドーページを調べ、
前記揮発性メモリのデータにページ単位で対応する前記不揮発性メモリの前記シャドーページを更新し、
前記シャドーページ管理手段から前記シャドーページの登録を削除する
ことを特徴とする付記16に記載の情報処理システムの制御方法。
(付記18)
前記サスペンド処理時、
前記揮発性メモリのページから前記不揮発性メモリの保存先の前記シャドーページを指すように前記ページテーブルを更新する
ことを特徴とする付記17に記載の情報処理システムの制御方法。
(付記19)
前記不揮発性メモリの保存先の前記シャドーページ内の所定のサイズのデータを読み出し、
前記揮発性メモリのデータ内の対応するデータと比較し、
違いがある場合、シャドーページの対応するデータを更新し、
同一の場合、書き込みを行わないリード・モディファイ・ライトを行って前記シャドーページの更新を行う
ことを特徴とする付記17または付記18に記載の情報処理システムの制御方法。
(付記20)
前記不揮発性メモリは、
リード・モディファイ・ライトコマンドと、
所定のサイズの第1バッファーと、
所定サイズの第2バッファーと、
を有し、
前記第1バッファーと前記第2バッファーのデータをビット単位で比較し、
比較した結果異なったビットのみ書き込みを行う
ことを特徴とする付記19に記載の情報処理システムの制御方法。
(付記21)
所定時間前の過去から現在までに書き込みが起きた不揮発性メモリのページを集めたアクティブリストを作成するステップと、
前記所定時間前の過去から現在までに書き込みが起きていない前記不揮発性メモリのページを集めたインアクティブリストを作成するステップと、
前記アクティブリストに保持された前記不揮発性メモリのページの内容を揮発性メモリのページに移動するステップと
を有することを特徴とする情報処理システムの制御プログラム。
以上、本発明の好ましい実施形態を説明したが、本発明はこれに限定されるものではない。請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲に含まれることはいうまでもない。
1、21 揮発性メモリ
2、22 不揮発性メモリ
3 アクティブリスト
4 インアクティブリスト
5 ページ内容移動手段
10 CPU
20 主記憶装置
30 2次記憶装置
40 入出力装置
100 情報処理システム

Claims (10)

  1. 揮発性メモリと、
    不揮発性メモリと、
    所定時間前の過去から現在までに書き込みが起きた前記不揮発性メモリのページを集めたアクティブリストと、
    前記所定時間前の過去から現在までに書き込みが起きていない前記不揮発性メモリのページを集めたインアクティブリストと、
    前記アクティブリストに保持された前記不揮発性メモリのページの内容を前記揮発性メモリのページに移動するページ内容移動手段と
    を有することを特徴とする情報処理システム。
  2. 前記ページ内容移動手段は、
    情報処理システムの状態を保存して電源を遮断するサスペンド処理時に、
    前記揮発性メモリのデータをページ単位で前記不揮発性メモリのページに保存し、
    前記不揮発性メモリのページを前記インアクティブリストにつなぐ
    ことを特徴とする請求項1に記載の情報処理システム。
  3. 前記ページ内容移動手段は、
    前記アクティブリストの前記不揮発性メモリのページを書き込み禁止に設定し、
    前記不揮発性メモリのページへの書き込みを一時中断し、
    前記揮発性メモリのページを新たに割り当て、
    前記不揮発性メモリのページの内容を新規に割り当てた前記揮発性メモリのページへ移動し、
    移動したページに対して書き込みを行い、
    前記不揮発性メモリのページは前記アクティブリストから外す
    ページ制御手段を有する
    ことを特徴とする請求項2に記載の情報処理システム。
  4. 前記ページ制御手段は、
    前記不揮発性メモリの移動元のページを、前記揮発性メモリの移動先のページのシャドーページとして登録するシャドーページ管理手段を有する
    ことを特徴とする請求項3に記載の情報処理システム。
  5. 前記ページ制御手段は、
    情報処理システムの状態を保存して電源を遮断する前記サスペンド処理時、
    前記シャドーページ管理手段を用いて対応する前記不揮発性メモリの前記シャドーページを調べ、
    前記揮発性メモリのデータにページ単位で対応する前記不揮発性メモリの前記シャドーページを更新し、
    前記シャドーページ管理手段から前記シャドーページの登録を削除する
    ことを特徴とする請求項4に記載の情報処理システム。
  6. 前記ページ制御手段は、
    前記不揮発性メモリの保存先の前記シャドーページ内の所定のサイズのデータを読み出し、
    前記揮発性メモリのデータ内の対応するデータと比較し、
    違いがある場合、前記シャドーページの対応するデータを更新し、
    同一の場合、書き込みを行わないリード・モディファイ・ライトを行って前記シャドーページの更新を行う
    ことを特徴とする請求項4または請求項5に記載の情報処理システム。
  7. 前記不揮発性メモリは、
    リード・モディファイ・ライトコマンドと、
    所定のサイズの第1バッファーと、
    所定サイズの第2バッファーと、
    前記第1バッファーと前記第2バッファーのデータをビット単位で比較する比較回路と、
    比較した結果異なったビットのみ書き込みを行う書き込み回路と
    を有することを特徴とする請求項6に記載の情報処理システム。
  8. 所定時間前の過去から現在までに書き込みが起きた不揮発性メモリのページを集めたアクティブリストを作成し、
    前記所定時間前の過去から現在までに書き込みが起きていない前記不揮発性メモリのページを集めたインアクティブリストを作成し、
    前記アクティブリストに保持された前記不揮発性メモリのページの内容を揮発性メモリのページに移動する
    ことを特徴とする情報処理システムの制御方法。
  9. 情報処理システムの状態を保存して電源を遮断するサスペンド処理時に、
    前記揮発性メモリのデータをページ単位で前記不揮発性メモリのページに保存し、
    前記不揮発性メモリのページを前記インアクティブリストにつなぐ
    ことを特徴とする請求項8に記載の情報処理システムの制御方法。
  10. 所定時間前の過去から現在までに書き込みが起きた不揮発性メモリのページを集めたアクティブリストを作成するステップと、
    前記所定時間前の過去から現在までに書き込みが起きていない前記不揮発性メモリのページを集めたインアクティブリストを作成するステップと、
    前記アクティブリストに保持された前記不揮発性メモリのページの内容を揮発性メモリのページに移動するステップと
    を有することを特徴とする情報処理システムの制御プログラム。
JP2017010375A 2017-01-24 2017-01-24 情報処理システムおよび情報処理システムの制御方法 Pending JP2018120346A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017010375A JP2018120346A (ja) 2017-01-24 2017-01-24 情報処理システムおよび情報処理システムの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017010375A JP2018120346A (ja) 2017-01-24 2017-01-24 情報処理システムおよび情報処理システムの制御方法

Publications (1)

Publication Number Publication Date
JP2018120346A true JP2018120346A (ja) 2018-08-02

Family

ID=63043861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017010375A Pending JP2018120346A (ja) 2017-01-24 2017-01-24 情報処理システムおよび情報処理システムの制御方法

Country Status (1)

Country Link
JP (1) JP2018120346A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022046413A (ja) * 2020-09-10 2022-03-23 ウェスタン デジタル テクノロジーズ インコーポレーテッド 記憶デバイスのための改良された先読み能力

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022046413A (ja) * 2020-09-10 2022-03-23 ウェスタン デジタル テクノロジーズ インコーポレーテッド 記憶デバイスのための改良された先読み能力
JP7170093B2 (ja) 2020-09-10 2022-11-11 ウェスタン デジタル テクノロジーズ インコーポレーテッド 記憶デバイスのための改良された先読み能力

Similar Documents

Publication Publication Date Title
JP5607943B2 (ja) メモリシステム及びその磨耗度管理方法
CN109643275B (zh) 存储级存储器的磨损均衡设备和方法
US8316257B2 (en) NAND power fail recovery
KR101176702B1 (ko) 판독 실패 관리 방법 및 시스템
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
KR20120058352A (ko) 하이브리드 메모리 시스템, 및 그 관리 방법
TW201502781A (zh) 解決記憶體存取錯誤時重播記憶體交易
JPWO2006093201A1 (ja) メモリモジュール、メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリの読み書き方法
JP2018088134A (ja) マイグレーションプログラム、情報処理装置およびマイグレーション方法
JP2007199905A (ja) 半導体記憶装置の制御方法
JP6746747B2 (ja) 記憶システム
JP2018101411A (ja) データストレージデバイスおよびその操作方法
JPWO2008099786A1 (ja) メモリ障害復旧方法、情報処理装置およびプログラム
CN108694101B (zh) 存储器侧高速缓存内容的持久性高速缓存
JP2016085677A (ja) メモリ管理方法、メモリ管理プログラム及び情報処理装置
US10606517B2 (en) Management device and information processing device
JP2009116465A (ja) 記憶装置及びメモリ制御方法
JP2008158773A (ja) 情報処理装置およびメモリ管理方法
JP2018120346A (ja) 情報処理システムおよび情報処理システムの制御方法
KR20110052902A (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템의 메모리 관리 방법
JP2019200473A (ja) メモリ制御装置、メモリ制御プログラムおよびメモリ制御方法
JP2009258925A (ja) 計算機システムおよび計算機システムのメモリ管理方法
JP5943153B2 (ja) 情報処理装置、書き込み制御回路、書き込み制御方法、及び書き込み制御プログラム
WO2015141731A1 (ja) キャッシュメモリおよびプロセッサシステム
JP5614337B2 (ja) メモリの制御方法、メモリの制御回路、記憶装置、及び電子機器