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

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

Info

Publication number
JP6819319B2
JP6819319B2 JP2017013127A JP2017013127A JP6819319B2 JP 6819319 B2 JP6819319 B2 JP 6819319B2 JP 2017013127 A JP2017013127 A JP 2017013127A JP 2017013127 A JP2017013127 A JP 2017013127A JP 6819319 B2 JP6819319 B2 JP 6819319B2
Authority
JP
Japan
Prior art keywords
page
bad
block
list
processing system
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.)
Active
Application number
JP2017013127A
Other languages
English (en)
Other versions
JP2018120522A (ja
Inventor
竜介 根橋
竜介 根橋
杉林 直彦
直彦 杉林
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 JP2017013127A priority Critical patent/JP6819319B2/ja
Publication of JP2018120522A publication Critical patent/JP2018120522A/ja
Application granted granted Critical
Publication of JP6819319B2 publication Critical patent/JP6819319B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明は、情報処理システムおよび情報処理システムの制御方法に関する。
不揮発性メモリとして、以前は一般的に、ハードディスクやフラッシュメモリ等が利用されてきた。近年、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の略である。これら新興の不揮発性メモリをDRAM(Dinamic−RAM)と同様に主メモリとして利用した情報処理システムが提案されている。例えば、不揮発性メモリを利用することにより、高速なサスペンド・レジューム機能を実現する情報処理システムが提案されている。しかしながら、新興の不揮発性メモリは、書き込みにより摩耗する等の課題がある。そこで、このような課題を解決する方法が提案されている。
例えば、特許文献1には、不揮発性メモリを含むメモリシステム及びその摩耗度管理方法が開示されている。特許文献1に記載の技術は、不揮発性メモリの仮想アドレス及び物理アドレスのマッピング情報を含むページテーブルを有し、ページテーブルエントリは、ページの摩耗度を表す寿命情報を含む。そして、ページにデータが書き込まれる度に、寿命情報を更新し、耐久限度に到達したページにはメモリ割り当てが行われないように制御する。さらに、物理的に連続したページを割り当てる必要がある場合、空きページを管理するバディシステムを用いて、耐久限度に到達したページにはメモリ割り当てが行われないように制御する。上記の制御により、耐久限度内のページにメモリを割り当てることができる。
また、特許文献2には、メモリリマップ情報を記憶する不揮発性メモリが開示されている。特許文献2に記載の技術は、エラー数が閾値を超えるメモリセルの使用を中止し、全メモリ装置容量を維持するように、スペアメモリセルを選択する。この制御により、エラー数が閾値以下のメモリセルを選択しつつ、容量も確保することができる。
特開2010−186477号公報 特開2011−040051号公報
特許文献1に記載の技術は、運用期間が長くなるほど、耐久限度に到達したページが増加し、ページ単位のメモリ断片化が進む。このため、物理的に連続したページを割り当てる必要がある場合、メモリを効率的に割り当てられないという課題がある。
特許文献2に記載の技術は、スペアメモリの利用により、メモリ断片化の課題は解決するが、運用期間が長くなるほど、エラー数が閾値を超えるメモリセルが増加する。このため、全メモリ装置容量を維持するためには、多くのスペアメモリセルを必要とするという問題点があった。
本発明は、上記の課題に鑑みてなされたものであり、その目的は、小容量の不揮発性メモリで長期間運用できる情報処理システムを提供することである。
上記の課題を解決するため、本発明の情報処理システムは、情報処理システムは、不揮発性メモリと、不揮発性メモリの中のブロックの割り当て制御を行うメモリ制御手段と、バッドリストと、フリーリストとを有する。バッドリストは、不揮発性メモリの中の、エラーが増加傾向にあるメモリセルを含むページをバッドページとし、当該バッドページを含む連続ページからなるブロックを集めたリストである。フリーリストは、上記のバッドページを含まない連続ページからなるブロックを集めたリストである。メモリ制御手段は、ブロックの割り当て制御を行う時に、先にフリーリストのブロックの割り当て処理を試みる。ここで、フリーリストのブロックの割り当てができない場合には、バッドリストのブロックの割り当て処理を試みる。
本発明の効果は、小容量の不揮発性メモリで長期間運用できる情報処理システムを提供できることである。
第1の実施形態の情報処理システムを示すブロック図である。 第2の実施形態の情報処理システムの全体構成を示すブロック図である。 第2の実施形態の情報処理システムの主記憶装置を示すブロック図である。 第2の実施形態の情報処理システムの主記憶装置の一部を示すブロック図であるである。 第2の実施形態の情報処理システムにおけるバッドページを含む実ページの管理方法を示す模式図である。 第2の実施形態の情報処理システムにおけるバッドページを含む実ページの管理方法を示す別の模式図である。 第2の実施形態の情報処理システムにおけるバッドページの登録処理を示すフローチャートである。 第2の実施形態の情報処理システムにおけるバッドページの登録処理を示すフローチャートの一部である。 第2の実施形態の情報処理システムにおけるブロックの割り当て処理を示すフローチャートである。 第2の実施形態の情報処理システムにおけるフリーリストのブロックの割り当て処理を示すフローチャートである。 第2の実施形態の情報処理システムにおけるバッドリストのブロックの割り当て処理を示すフローチャートである。 第2の実施形態の情報処理システムにおけるバッドリストのブロックの割り当て処理の一部を示すフローチャートである。 第2の実施形態の情報処理システムにおけるブロックの解放処理を示すフローチャートである。
以下、図面を参照しながら、本発明の実施形態を詳細に説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお各図面の同様の構成要素には同じ番号を付し、説明を省略する場合がある。
(第1の実施形態)
図1は第1の実施形態を示すブロック図である。情報処理システムは、不揮発性メモリ1と、不揮発性メモリ1の中のブロックの割り当て制御を行うメモリ制御手段2と、バッドリスト3と、フリーリスト4とを有する。
バッドリスト3は、不揮発性メモリ1の中の、エラーが増加傾向にあるメモリセルを含むページをバッドページとし、当該バッドページを含む連続ページからなるブロックを集めたリストである。
フリーリスト4は、上記のバッドページを含まない連続ページからなるブロックを集めたリストである。
メモリ制御手段2は、ブロックの割り当て制御を行う時に、先にフリーリスト4のブロックの割り当て処理を試みる。ここで、フリーリスト4のブロックの割り当てができない場合には、バッドリスト3のブロックの割り当て処理を試みる。
以上の構成とすることにより、小容量の不揮発性メモリで長期間運用できる情報処理システムを提供することができる。
(第2の実施形態)
図2は本発明の情報処理システムの全体構成を示すブロック図である。情報処理システム1000は、CPU(Central Processing Unit)100と、主記憶装置200と、2次記憶装置300と、入出力装置400とを備えている。
CPU100は、2次記憶装置300から主記憶装置200にロードされたプログラムを実行し、バス500を介して、主記憶装置200と、2次記憶装置300と、入出力装置400とを制御する。また、CPU100は各装置からの制御信号に応答し、プログラムを実行する。
2次記憶装置300は不揮発性メモリとして、ハードディスクやフラッシュメモリ等を含む。入出力装置400は、キーボードやマウスなどの入力手段と、液晶ディスプレイ等の出力手段を含む。
主記憶装置200は、不揮発性メモリ210とメモリ制御装置220とを含む。なお、主記憶装置200として、揮発性メモリ230が含まれていてもよい。主記憶装置200の揮発性メモリ230は、DRAMやSRAMを含む。揮発性メモリ230は電源の供給されている間のみデータを保持できる。不揮発性メモリ210は、FeRAM、MRAM、PCRAM、ReRAM、CBRAM等の高速にランダムアクセス可能な不揮発性メモリを含む。不揮発性メモリ210は、電源の供給が遮断されてもデータを保持できる。他方、揮発性メモリ230は、動作時にプログラムやCPU100が処理したデータを格納する。また、不揮発性メモリ210は、動作時とサスペンド時にプログラムやCPU100が処理したデータを格納する。
主記憶装置200が提供する実メモリは、ページ単位に分割され、管理される。仮想アドレス空間も同じページ単位に分割され、管理される。仮想記憶機構を備えたCPU100は、プログラムを固有の仮想アドレス空間上で動作させることができる。仮想アドレスから実メモリのアドレス(実アドレス)への変換はページテーブルを基にページ単位で行われる。ページテーブルは、仮想ページと実ページの対応表である。
本実施形態の情報処理システム1000における主記憶装置200が提供する実メモリは、揮発性メモリ230と不揮発性メモリ210とを区別して管理されうる。例えば、Operatign System(OS)の一つであるLinux(登録商標)は、ゾーンとノードの組み合わせに応じてページを管理する機構を備えているが、同様の機構を適用してもよい。ゾーンは、実アドレスの領域によって分けて、管理される単位である。ページの割り当てはゾーン毎に行われる。また、ノードは、システム内のメモリを分割し、管理される単位である。ノードは、たとえば、Non−Uniform Memory Access(NUMA)システムにおいて、メモリの割り当て方に差をつけるために利用される。
図3は、本実施形態の主記憶装置200を示すブロック図である。主記憶装置200は、不揮発性メモリ210と、不揮発性スペアメモリ211と、メモリ制御装置220とから構成される。メモリ制御装置220はバス500を介して、アドレス信号、データ信号、制御信号を含む信号を送信または受信する。メモリ制御装置220は、ローカルバス600を介して、不揮発性メモリ210と不揮発性スペアメモリ211に接続し、ローカルアドレス信号、ローカルデータ信号、ローカル制御信号を含む信号を送信または受信する。不揮発性スペアメモリ211は、例えば、不揮発性メモリと同一の種類のメモリセルから構成される。
図4はメモリ制御装置の一部を示す模式図である。メモリ制御装置220は、アドレス変換部221と、スイッチ部222と、エラー検出部223と、バッドページ管理部224を含む。
アドレス変換部221は、不揮発性メモリ210のバッドページを、ページ単位で不揮発性スペアメモリ211のページに置き換える。不揮発性メモリ210のバッドページは、エラーが増加傾向にあるメモリセルを含むページである。アドレス変換部221は、置き換え元の不揮発性メモリ210のアドレスと、置き換え先の不揮発性スペアメモリ211のアドレスとの対応情報を記憶した記憶部221aを備える。そして、記憶部221aの対応情報を参照して、バス500上のアドレス信号をローカルバス600上のローカルアドレス信号に変換する。アドレス変換部221は、アドレス対応情報を記憶する記憶部221aとして、Content Addressable Memory(CAM)などを利用し、高速にアドレス変換してもよい。
スイッチ部222は、ローカルアドレス信号によって指定されたメモリセルの読み出しデータであるローカルデータ出力信号を選択し、エラー検出部223に供給する。スイッチ部222は、マルチプレクサ等の信号スイッチを利用することができる。
エラー検出部223は、エラーが起こったメモリセルを検出し、エラー情報をバッドページ管理部224へ出力する。メモリ制御装置220は、エラー検出部223として、Error Correction Code(ECC)等の技術を利用することができる。尚、エラー検出部223は、ECC等の技術を利用して、エラーを訂正して、データ出力信号を出力してもよい。
バッドページ管理部224は、エラー検出部223から供給されるエラー情報と、アドレス変換部221から供給されるローカルアドレス信号とを用いて、ローカルアドレスによって指定されたメモリセルがエラー増加傾向にあるか否かを判断する。エラーが増加傾向にあると判断した場合、そのメモリセルを含むページをバッドページとして、登録する。バッドページ管理部224は、例えば、エラーがあったメモリセルのアドレスとそのエラー回数を記録し、エラー回数がある閾値以上の場合、そのメモリセルをエラー傾向にあると判断する。もしくは、バッドページ管理部224は、ECCの符号語を形成する複数のメモリセルに対し、その符号語内のエラー数がある閾値より多い場合、それらのメモリセルをエラー増加傾向にあると判断する。バッドページ管理部224は、バッドページを登録するための記憶部224aを備え、バッドページのページフレーム番号などの識別子を保存する。ページフレーム番号は、CPU100が利用するアドレスの一部のビットから構成される。さらに、バッドページ管理部224は、バッドページの登録をCPU100へ通知する通知部224bを備える。通知部224bは、例えば、割り込み要求などの通知手段を用いる。CPU100は、メモリ制御装置220からの通知を受けると、その割り込み処理において、バッドページ管理部224の記憶部224aから、登録されているバッドページの識別子を読み出す。CPU100は、後述のOS等のソフトウェアを用いて、バッドページを管理する。
図5は、本実施形態の情報処理システムにおけるバッドページを含む実ページの管理方法を示す模式図である。本実施形態の情報処理システムは、フリー領域とバッド領域から構成されるバディシステムによって、実ページを管理する。バディシステムはページを2のべき乗の単位で管理する。フリー領域は空きページから構成される2のべき乗の単位の連続ページが集められ、バッド領域はバッドページを含む2のべき乗の単位の連続ページが集められる。バディシステムは、連続ページをブロックとして管理する。
図5は8つのページとそれぞれのバディシステムのブロックを例示している。バディシステムは、未使用ページ、使用ページ、バッドページを管理する。オーダーは、べき指数を表す。オーダーNのブロックは2のN乗のページサイズであり、かつ、オーダーNのブロックの先頭ページのページフレーム番号は、2のN乗の整数倍である。ここでは、バディブロックを、隣接する同じオーダーNのブロックであり、かつ、統合するとオーダー(N+1)のブロックを形成できるものと定義する。
図5に示すように、ブロックは未使用ページとバッドページを用いて、できるだけ大きなブロックを構成する。これはバディブロックがバッド領域またはフリー領域に存在するか調査し、バディブロックが存在する場合、それらのブロックを統合して大きなブロックを形成することにより行われる。さらに、ブロック内にバッドページが含まれる場合、そのブロックをバッド領域に所属させる。バッドページが含まれない場合、そのブロックをフリー領域に所属させる。図5では、オーダー0に一つのブロック、オーダー1に一つのブロック、オーダー2に一つのブロックがある。そのうち、オーダー2のブロックはバッドページを含んでいる。このため、このオーダー2のブロックはバッド領域に属する。そして、オーダー0とオーダー1のブロックは、バッドページを含んでいないため、フリー領域に属する。
図6は、本実施形態の情報処理システムにおけるバッドページを含む実ページの管理方法を示す模式図である。本実施形態の情報処理システムは、ゾーン記述子とページ記述子から構成されるフリーリストとバッドリストによって、実ページを管理する。ゾーン記述子は、不揮発性メモリの実ページが属するゾーンを管理する記述子である。ページ記述子は、不揮発性メモリの実ページを管理する記述子である。
ゾーン記述子は、free_areaメンバと、bad_areaメンバを備える。free_areaメンバはfree_list配列を備える。bad_areaメンバはbad_list配列を備える。これらの配列のインデックスはオーダーである。
free_list[N]メンバは、オーダーがNのフリーリストの先頭のページ記述子を指す。オーダーがNのフリーリストは、オーダーがNのフリー領域に属するブロックの内、先頭ページのページ記述子から構成される。
bad_area[N]メンバは、オーダーがNのバッドリストの先頭のページ記述子を指す。オーダーがNのバッドリストは、オーダーがNのバッド領域に属するブロックの内、先頭ページのページ記述子から構成される。
ページ記述子は、PG_badフラグと、nextメンバを備える。PG_badフラグは、ページがバッドページの場合、1に設定される。ページがバッドページではない場合、0に設定される。nextメンバは、各リストの後続のページ記述子を指す。
図7は、本実施形態の情報処理システムにおけるバッドページの登録処理のフローチャートである。メモリ制御装置からバッドページ登録の通知を受けると、OS等のソフトウェハは、メモリ制御装置からバッドページとして登録されたページP1のページフレーム番号を取得する(S1)。そして、ページP1のページ記述子にPG_badフラグを立てる(S2)。
ここで、ページP1が使用中ではない場合(S3_No)、ページP1を含むブロックがバッドリストにつながるように制御しブロックを更新する(S4)。
一方、ページP1が使用中の場合(S3_Yes)、プロセスAに進む。図8はプロセスAを示すフローチャートである。プロセスAでは、まず、ページP1が連続ページか否かを調べる(S5)。
ページP1が連続ページではない場合(S5_No)、新規ページP2の割り当てを試みる(S6)。割り当てに成功した場合(S7_Yes)、ページP1のページの内容を新規ページP2へ移動する。そして、ページP1から新規ページP2を指すように、ページテーブルエントリを更新する(S8)。割り当てに失敗した場合(S7_No)、新規ページ割り当てエラーを返す(S9)。そして、図7のフローチャートのBへ戻り終了する。
一方、ページP1が連続ページの場合(S5_Yes)、ページP1のスペアページP3への置き換えを試みる(S10)。未使用のスペアページがあり、置き換え可能な場合(S11_Yes)、ページP1の内容をスペアページP3へ移動する。そして、ページP1のアドレスをスペアページP3のアドレスに変換するように、メモリ制御装置のアドレス変換部を更新する(S12)。置き換え不可の場合(S11_No)、スペアページの置き換えエラーを返す(S13)。そして、図7のフローチャートのBへ戻り終了する。
図9は、本実施形態の情報処理システムにおけるブロックの割り当て処理のフローチャートである。ブロックの割り当て要求を受け取ると(S101)、OS等のソフトウェアは、フリーリストのブロックの割り当てを試みる(S102)。
フリーリストのブロックを取得できた場合(S103_Yes)、その取得ブロックを返す(S107)。一方、フリーリストのブロックを取得できなかった場合(S103_No)、バッドリストのブロックの割り当てを試みる(S104)。
バッドリストのブロックを取得できた場合(S105_Yes)、その取得ブロックを返す(S107)。一方、バッドリストのブロックを取得できなかった場合(105_No)、割り当て失敗としてNULLを返す(S106)。
図10は、本実施形態の情報処理システムにおけるフリーリストのブロックの割り当て処理のフローチャートである。まず、2のM乗のページサイズのブロックの割り当て要求を受けると(S201)、OS等のソフトウェアは、N≧Mの条件のもと、2のN乗のページサイズのブロックの取得を試みる(S202)。この時、できるだけ小さなブロックを取得するように、小さいオーダーのフリーリストからブロックを調べていく。
2のN乗のブロックを取得できなかった場合(S203_No)、割り当て失敗としてNULLを返す(S204)。
一方、2のN乗のブロックを取得できた場合(S203_Yes)、ブロックサイズを調べる。ブロックサイズが要求サイズと等しい場合、すなわちN=Mの場合(S205_Yes)、取得ブロックを返す(S207)。一方ブロックサイズが要求サイズより大きい場合、すなわちN>Mの場合(S205_No)、不要なブロックを解放し(S206)、取得ブロックを返す(S207)。
図11は、本実施形態の情報処理システムにおけるバッドリストのブロックの割り当て処理のフローチャートである。まず、2のM乗のページサイズのブロックの割り当て要求を受けると(S301)、OS等のソフトウェアは、N≧Mの条件のもと、2のN乗のページサイズのブロックの取得を試みる(S302)。この時、できるだけ小さなブロックを取得するように、小さいオーダーのバッドリストからブロックを調べていく。
2のN乗のブロックを取得できなかった場合(S303_No)、割り当て失敗としてNULLを返す(S304)。
一方、2のN乗のブロックを取得できた場合(S303_Yes)、プロセスCに進む。図12は、プロセスCを示すフローチャートである。プロセスCでは、まず、ブロックサイズを調べる。そして、ブロックサイズが要求サイズと等しい場合(N=Mの場合、S305_Yes)、取得ブロックにバッドページがあるか調べる(S307)。一方、ブロックサイズが要求サイズより大きい場合(N>Mの場合、S305_No)、不要なブロックを解放し(S306)、取得ブロックにバッドページがあるか調べる(S307)。尚、不要なブロックを解放する処理の際に、取得するブロックに、できるだけバッドページが含まれないように制御し、スペアページの利用を抑えてもよい。
S307では、取得ブロックにバッドページがあるかを調べる。そしてバッドページが含まれない場合(S307_No)、取得ブロックを返し(S311)、図11のフローチャートのDに戻り終了する。
一方、バッドページが含まれる場合(S307_Yes)、バッドページのスペアページへの置き換えを試みる(S308)。ここで、未使用のスペアページがあり、置き換え可能な場合(S309_Yes)、バッドページのアドレスをスペアページのアドレスに変換するように、メモリ制御装置のアドレス変換部を更新する(S310)。そして、取得ブロックを返し(S311)、図11のフローチャートのDに戻る。一方、置き換え不可の場合(S309_No)、取得したブロックを解放し(S312)、図11のフローチャートのEに戻り、割り当て失敗としてNULLを返して(S304)、終了する。
図13は、本実施形態の情報処理システムにおけるブロックの解放処理のフローチャートである。まず、2のM乗のページサイズのブロックの開放要求を受けると(S401)、OS等のソフトウェアは、N≧Mの条件のもと、2のN乗のページサイズのブロックへ統合する(S402)。ここで、小さいオーダーのフリーリストまたはバッドリストのバディブロックから順次調べ、できるだけ大きなブロックに統合していく。
統合したブロックにバッドページが含まれない場合(S403_No)、そのブロックをフリーリストにつなぐ(S404)。
一方、統合したブロックにバッドページが含まれる場合(S403_Yes)、バッドページはスペアページに置き換えられているかを調べる(S405)。スペアページに置き換えられているかを調べる方法として、たとえば、ページ記述子にPG_spareフラグを設け、スペアページの置き換えられている場合に、PG_spareフラグを1に設定してもよい。
スペアページに置き換えられていない場合(S405_No)、ブロックをバッドリストにつなぐ(S407)。
一方、スペアページに置き換えられている場合(S405_Yes)、スペアページを解放する(S406)。スペアページの解放処理は、バッドページとスペアページの対応関係を、アドレス変換部から削除する処理を含む。そして、ブロックをバッドリストへつなぐ(S407)。
尚、スペアページの管理は、メモリ制御装置等のハードウェア、もしくは、OS等のソフトウェアを用いてもよい。
(効果)
本実施形態の情報処理システムは、物理的に連続したページを割り当てる必要がある場合、オンデマンドで、バッドページをスペアページに置き換える。これにより、複数のバッドページがスペアページを時分割で共有することができる。さらに、フリーリスト、バッドリストの順にページの割り当てを試みることにより、スペアページの利用を抑える。これらにより、長期間の運用においても必要なスペアメモリの容量を低減できることが期待される。
よって、本実施形態の情報処理システムは、小容量のスペアメモリで長期間運用できる不揮発性メモリを備えた情報処理システを提供することができる。
上述した第1および第2の実施形態の処理をコンピュータに実行させるプログラムおよび該プログラムを格納した記録媒体も本発明の範囲に含む。記録媒体としては、例えば、磁気ディスク、磁気テープ、光ディスク、光磁気ディスク、半導体メモリ、などを用いることができる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
不揮発性メモリと、
前記不揮発性メモリを制御するメモリ制御手段と、
前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストと、
前記バッドページを含まない連続ページからなるブロックを集めたフリーリストと、
を有し、
前記メモリ制御手段は、
ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試み、前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みる
ことを有することを特徴とする情報処理システム。
(付記2)
スペアページを構成する不揮発性スペアメモリと、
ページ単位でページのアドレスを変換するアドレス変換部と
を有し、
前記アドレス変換部は、
前記バッドリストのブロックの割り当て処理時に、前記バッドページのアドレスを前記スペアページのアドレスに変換する
ことを特徴とする付記1に記載の情報処理システム。
(付記3)
前記メモリ制御手段が、
ブロックの解放処理時に、当該ブロックに前記スペアページに置き換えられた前記バッドページがある場合、前記バッドページと前記スペアページとの対応関係を前記アドレス変換部から削除する
ことを特徴とする付記2に記載の情報処理システム。
(付記4)
前記メモリ制御手段が、
前記バッドページの登録処理時に、前記バッドページが使用中であり、かつ連続ページの場合は、前記バッドページの前記スペアページへの置き換えを試み、
前記スペアページへの置き換えが可能な場合、前記バッドページの内容を前記スペアページへ移動し、
前記バッドページのアドレスを前記スペアページのアドレスに変換するように前記アドレス変換部を更新する
ことを特徴とする付記3に記載の情報処理システム。
(付記5)
前記メモリ制御手段が、
前記バッドページの登録処理時に、前記バッドページが使用中であり、非連続ページの場合、新規ページの割り当てを試み、
前記新規ページの割り当てが可能な場合、前記バッドページの内容を前記新規ページへ移動し、
前記バッドページのアドレスを前記新規ページのアドレスに変換するようにページテーブルエントリを更新する
ことを特徴とする付記4に記載の情報処理システム。
(付記6)
前記メモリ制御手段が、
前記バッドページの登録処理時に、前記バッドページが未使用の場合、前記バッドページを含むブロックを前記バッドリストにつなげる
ことを特徴とする付記5に記載の情報処理システム。
(付記7)
前記メモリ制御手段が、
前記バッドリストのブロックの割り当て処理時に、前記バッドリストから取得したブロックサイズが、要求ブロックサイズより大きい場合、不要なブロックを解放し、
前記不要なブロックを解放する時には、取得するブロックに、できるだけ前記バッドページが含まれないように制御する
ことを特徴とする付記6に記載の情報処理システム。
(付記8)
前記メモリ制御手段が、
スイッチ部と、エラー検出部と、バッドページ管理部とを備え、
前記スイッチ部は、前記アドレス変換部によって変換されたアドレス信号によって指定されたメモリセルの読み出しデータを選択して、前記エラー検出部に供給し、
前記エラー検出部は、エラーが起こったメモリセルを検出し、エラー情報を前記バッドページ管理部に供給し、
前記バッドページ管理部は、エラーが増加傾向にある前記不揮発性メモリセルを含むページを前記バッドページとして登録する
ことを特徴とする付記7に記載の情報処理システム。
(付記9)
情報処理を実行するCPUを有し、
前記バッドページ管理部が、
前記バッドページの登録を前記CPUへ通知する通知部を有する
ことを特徴とする付記7または付記8に記載の情報処理システム。
(付記10)
前記CPUと前記メモリ制御手段とを接続するバスと、
前記メモリ制御手段と、前記不揮発性メモリおよび前記不揮発性スペアメモリとを接続するローカルバスと
を有することを特徴とする付記9に記載の情報処理システム。
(付記11)
不揮発性メモリを制御し、
前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストを作成し、
前記バッドページを含まない連続ページからなるブロックを集めたフリーリストを作成し、
ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試み、
前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みる
ことを特徴とする情報処理システムの制御方法。
(付記12)
不揮発性スペアメモリを用いたスペアページを構成し、
ページ単位で前記ページのアドレスを変換し、
前記アドレスの変換では、
前記バッドリストのブロックの割り当て処理時に、前記バッドページのアドレスを前記スペアページのアドレスに変換する
ことを特徴とする付記11に記載の情報処理システムの制御方法。
(付記13)
ブロックの解放処理時に、当該ブロックに前記スペアページに置き換えられた前記バッドページがある場合、前記バッドページと前記スペアページとの対応関係を前記アドレス変換部から削除する
ことを特徴とする付記12に記載の情報処理システムの制御方法。
(付記14)
前記バッドページの登録処理時に、前記バッドページが使用中であり、かつ連続ページの場合は、前記バッドページの前記スペアページへの置き換えを試み、
前記スペアページへの置き換えが可能な場合、前記バッドページの内容を前記スペアページへ移動し、
前記バッドページのアドレスを前記スペアページのアドレスに変換するように前記アドレス変換部を更新する
ことを特徴とする付記13に記載の情報処理システムの制御方法。
(付記15)
前記バッドページの登録処理時に、前記バッドページが使用中であり、非連続ページの場合、新規ページの割り当てを試み、
前記新規ページの割り当てが可能な場合、前記バッドページの内容を前記新規ページへ移動し、
前記バッドページのアドレスを前記新規ページのアドレスに変換するようにページテーブルエントリを更新する
ことを特徴とする付記14に記載の情報処理システムの制御方法。
(付記16)
前記バッドページの登録処理時に、前記バッドページが未使用の場合、前記バッドページを含むブロックを前記バッドリストにつなげる
ことを特徴とする付記15に記載の情報処理システムの制御方法。
(付記17)
前記バッドリストのブロックの割り当て処理時に、前記バッドリストから取得したブロックサイズが、要求ブロックサイズより大きい場合、不要なブロックを解放し、
不要なブロックを解放する時には、取得するブロックに、できるだけ前記バッドページが含まれないように制御する
ことを特徴とする付記16に記載の情報処理システムの制御方法。
(付記18)
スイッチ部が、前記アドレス変換部によって変換されたアドレス信号によって指定されたメモリセルの読み出しデータを選択して、エラー検出部に供給し、
前記エラー検出部は、エラーが起こったメモリセルを検出し、エラー情報をバッドページ管理部に供給し、
前記バッドページ管理部は、エラーが増加傾向にある前記不揮発性メモリセルを含むページを前記バッドページとして登録する
ことを特徴とする付記17に記載の情報処理システムの制御方法。
(付記19)
前記バッドページ管理部が、
前記バッドページの登録をCPUへ通知する
ことを特徴とする付記18に記載の情報処理システムの制御方法。
(付記20)
不揮発性メモリを制御するステップと、
前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストを作成するステップと、
前記バッドページを含まない連続ページからなるブロックを集めたフリーリストを作成するステップと、
ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試みるステップと、
前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みるステップと
を有することを特徴とする情報処理システムの制御プログラム。
以上、本発明の好ましい実施形態を説明したが、本発明はこれに限定されるものではない。請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲に含まれることはいうまでもない。
1、210 不揮発性メモリ
2 メモリ制御手段
3 バッドリスト
4 フリーリスト
100 CPU
200 主記憶装置
220 メモリ制御装置
230 揮発性メモリ
300 2次記憶装置
400 入出力装置
500 バス
600 ローカルバス
1000 情報処理システム

Claims (10)

  1. 不揮発性メモリと、
    前記不揮発性メモリを制御するメモリ制御手段と、
    前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストと、
    前記バッドページを含まない連続ページからなるブロックを集めたフリーリストと、
    を有し、
    前記メモリ制御手段は、
    ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試み、前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みる
    ことを有することを特徴とする情報処理システム。
  2. スペアページを構成する不揮発性スペアメモリと、
    ページ単位でページのアドレスを変換するアドレス変換部と
    を有し、
    前記アドレス変換部は、
    前記バッドリストのブロックの割り当て処理時に、前記バッドページのアドレスを前記スペアページのアドレスに変換する
    ことを特徴とする請求項1に記載の情報処理システム。
  3. 前記メモリ制御手段が、
    ブロックの解放処理時に、当該ブロックに前記スペアページに置き換えられた前記バッドページがある場合、前記バッドページと前記スペアページとの対応関係を前記アドレス変換部から削除する
    ことを特徴とする請求項2に記載の情報処理システム。
  4. 前記メモリ制御手段が、
    前記バッドページの登録処理時に、前記バッドページが使用中であり、かつ連続ページの場合は、前記バッドページの前記スペアページへの置き換えを試み、
    前記スペアページへの置き換えが可能な場合、前記バッドページの内容を前記スペアページへ移動し、
    前記バッドページのアドレスを前記スペアページのアドレスに変換するように前記アドレス変換部を更新する
    ことを特徴とする請求項3に記載の情報処理システム。
  5. 前記メモリ制御手段が、
    前記バッドページの登録処理時に、前記バッドページが使用中であり、非連続ページの場合、新規ページの割り当てを試み、
    前記新規ページの割り当てが可能な場合、前記バッドページの内容を前記新規ページへ移動し、
    前記バッドページのアドレスを前記新規ページのアドレスに変換するようにページテーブルエントリを更新する
    ことを特徴とする請求項4に記載の情報処理システム。
  6. 前記メモリ制御手段が、
    前記バッドページの登録処理時に、前記バッドページが未使用の場合、前記バッドページを含むブロックを前記バッドリストにつなげる
    ことを特徴とする請求項5に記載の情報処理システム。
  7. 前記メモリ制御手段が、
    前記バッドリストのブロックの割り当て処理時に、前記バッドリストから取得したブロックサイズが、要求ブロックサイズより大きい場合、不要なブロックを解放し、
    前記不要なブロックを解放する時には、取得するブロックに、できるだけ前記バッドページが含まれないように制御する
    ことを特徴とする請求項6に記載の情報処理システム。
  8. 前記メモリ制御手段が、
    スイッチ部と、エラー検出部と、バッドページ管理部とを備え、
    前記スイッチ部は、前記アドレス変換部によって変換されたアドレス信号によって指定されたメモリセルの読み出しデータを選択して、前記エラー検出部に供給し、
    前記エラー検出部は、エラーが起こったメモリセルを検出し、エラー情報を前記バッドページ管理部に供給し、
    前記バッドページ管理部は、エラーが増加傾向にある前記不揮発性メモリセルを含むページを前記バッドページとして登録する
    ことを特徴とする請求項7に記載の情報処理システム。
  9. 不揮発性メモリを制御し、
    前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストを作成し、
    前記バッドページを含まない連続ページからなるブロックを集めたフリーリストを作成し、
    ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試み、
    前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みる
    ことを特徴とする情報処理システムの制御方法。
  10. 不揮発性メモリを制御するステップと、
    前記不揮発性メモリの中のエラーが増加傾向にある不揮発性メモリセルを含むページをバッドページとし、前記バッドページを含む連続ページからなるブロックを集めたバッドリストを作成するステップと、
    前記バッドページを含まない連続ページからなるブロックを集めたフリーリストを作成するステップと、
    ブロックの割り当て処理時に、前記フリーリストのブロックの割り当て処理を先に試みるステップと、
    前記フリーリストのブロックの割り当てができない場合に、前記バッドリストのブロックの割り当て処理を試みるステップと
    を有することを特徴とする情報処理システムの制御プログラム。
JP2017013127A 2017-01-27 2017-01-27 情報処理システムおよび情報処理システムの制御方法 Active JP6819319B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2018120522A JP2018120522A (ja) 2018-08-02
JP6819319B2 true JP6819319B2 (ja) 2021-01-27

Family

ID=63043867

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP6819319B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4702387B2 (ja) * 2008-03-31 2011-06-15 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4720891B2 (ja) * 2008-09-30 2011-07-13 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2013222236A (ja) * 2012-04-13 2013-10-28 Hitachi Ltd メモリの管理方法、記憶装置およびそれを搭載した計算機
US9235468B2 (en) * 2013-04-12 2016-01-12 Qualcomm Incorporated Systems and methods to improve the reliability and lifespan of flash memory
US9417809B1 (en) * 2015-12-07 2016-08-16 International Business Machines Corporation Efficient management of page retirement in non-volatile memory utilizing page retirement classes

Also Published As

Publication number Publication date
JP2018120522A (ja) 2018-08-02

Similar Documents

Publication Publication Date Title
TWI741671B (zh) 記憶體系統
US11237769B2 (en) Memory system and method of controlling nonvolatile memory
CN110389718B (zh) 存储系统及非易失性存储器的控制方法
JP5607943B2 (ja) メモリシステム及びその磨耗度管理方法
KR102152238B1 (ko) 단편화를 해결하는 메모리 세그먼트 재매핑
US10409502B2 (en) Method and apparatus for writing metadata into cache
EP2396729B1 (en) Memory system and method of controlling memory system
US20120151252A1 (en) Memory Management to Accommodate Non-Maskable Failures
US20220066693A1 (en) System and method of writing to nonvolatile memory using write buffers
US20150161051A1 (en) Computer System and Cache Control Method
KR20120030137A (ko) 영구 가비지 컬렉션을 갖는 메모리 시스템
JP7353934B2 (ja) メモリシステムおよび制御方法
KR20190003911A (ko) 프로세서의 개입 없이 단순 작업을 관리하는 스토리지 장치
JP2021033849A (ja) メモリシステムおよび制御方法
US20230032639A1 (en) Hot data management in a data storage system
TW202230110A (zh) 記憶體系統及控制方法
JP2023044518A (ja) メモリシステムおよび方法
JP2023010765A (ja) メモリシステム
JP6819319B2 (ja) 情報処理システムおよび情報処理システムの制御方法
JP7077151B2 (ja) メモリシステム
US11886727B2 (en) Memory system and method for controlling nonvolatile memory
US10915441B2 (en) Storage system having non-volatile memory device
US20200073572A1 (en) Storage system and storage control method
US10990313B2 (en) Multi-storage node system and capacity management method of multi-storage node system
JP2013196155A (ja) メモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201214

R150 Certificate of patent or registration of utility model

Ref document number: 6819319

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150