JP2013254357A - 情報処理装置および方法、並びにプログラム - Google Patents

情報処理装置および方法、並びにプログラム Download PDF

Info

Publication number
JP2013254357A
JP2013254357A JP2012129671A JP2012129671A JP2013254357A JP 2013254357 A JP2013254357 A JP 2013254357A JP 2012129671 A JP2012129671 A JP 2012129671A JP 2012129671 A JP2012129671 A JP 2012129671A JP 2013254357 A JP2013254357 A JP 2013254357A
Authority
JP
Japan
Prior art keywords
page
rewrites
data
storage unit
stored
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
JP2012129671A
Other languages
English (en)
Inventor
Nobuhiro Kaneko
暢宏 金子
Hiroki Nagahama
弘樹 長濱
Tetsuya Asayama
徹哉 浅山
Tomohiro Katori
知浩 香取
Katsuya Takahashi
勝也 高橋
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2012129671A priority Critical patent/JP2013254357A/ja
Priority to US13/894,658 priority patent/US9146859B2/en
Priority to CN201310211574.9A priority patent/CN103489482A/zh
Publication of JP2013254357A publication Critical patent/JP2013254357A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

【課題】書き換え回数に上限がある不揮発性メモリの利用効率を向上させる。
【解決手段】メインメモリは、書き換え回数に上限がある不揮発性のメモリであり、情報処理システムの主記憶装置として利用される。メインメモリのデータ格納部は、複数のページに分割されており、それらのページにCPUが処理を実行するのに必要なデータと、メモリ管理のための管理情報が格納される。メインメモリ管理制御部は、書き換え回数の上限値に基づいて閾値を算出し、所定のページの書き換え回数が閾値に達すると、所定のページに書き込まれるべきデータを、そのページとは異なる他のページに書き込む。そして、メインメモリ管理制御部は、全ページの書き換え回数が閾値に達した場合には、新たな閾値を算出する。本技術は、情報処理システムに適用することができる。
【選択図】図1

Description

本技術は情報処理装置および方法、並びにプログラムに関し、特に、書き換え回数に上限がある不揮発性メモリの利用効率を向上させることができるようにした情報処理装置および方法、並びにプログラムに関する。
従来、書き換え回数に上限がある不揮発性メモリについて、メモリの各領域を適切に利用するためのメモリ管理に関する技術が提案されている。
例えば、そのような技術として、メモリ上に仮想アドレスと物理アドレスのマッピング情報を含むページテーブルを記憶させ、ページテーブルを利用してメモリを管理する技術がある(例えば、特許文献1参照)。
この技術ではマッピング情報にメモリ上の各ページの書き込み回数情報が含まれており、書き込み回数情報に基づいてデータの格納場所の管理が行なわれる。具体的には、メモリ上のページに対する書き込み回数が耐久限度に到達した場合には、そのページのデータが他のページに移動され、その移動に合わせてマッピング情報が更新される。
特開2010−186477号公報
しかしながら、上述した技術では、メモリを効率よく利用することは困難であった。
上述したように、書き換え回数に上限がある不揮発性メモリでは、メモリの所定ページに対する書き込み回数が耐久限度となって寿命に達すると、それ以降はそのページに対するデータの書き込みができなくなる。つまり、そのページを利用することができなくなる。例えば、メモリ上の特定のページに対する書き込みが頻発すると、そのページは他のページと比較して早く寿命に達するため、同一ページに対する書き込みが頻発するたびにメモリの利用可能容量が減っていくことになる。
そうすると、メモリ全体の使用回数が比較的少ない場合であっても、メモリの利用可能容量が不足してしまい、これまで使用していたアプリケーションプログラムなどを使用できなくなってしまうことがあった。
このように、メモリ上の各ページに対するデータの書き込み頻度に偏りがあると、メモリの利用効率が低下してしまうことになる。
本技術は、このような状況に鑑みてなされたものであり、書き換え回数に上限がある不揮発性メモリの利用効率を向上させることができるようにするものである。
本技術の一側面の情報処理装置は、書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理する書き換え回数管理部と、所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込むデータ処理部とを備える。
情報処理装置には、全ての前記ページの書き換え回数が前記閾値以上となった場合、前記閾値より大きく、かつ前記上限値以下の新たな閾値を算出し、前記閾値を更新する閾値更新部をさらに設けることができる。
前記閾値更新部には、前記上限値に対して定められた固定値を前記閾値に加算することで、新たな閾値を算出させることができる。
前記データ処理部には、前記所定ページへの前記書き込みデータの書き込みが指示され、前記所定ページの書き換え回数、および有効データが格納されていない前記ページの書き換え回数が前記閾値に達している場合、有効データが格納されている前記ページのうち、書き換え回数が前記閾値に達していない前記ページを検索させるとともに、前記検索により得られた前記ページに格納されているデータを、有効データが格納されていない前記ページに移動させることができる。
前記データ処理部には、前記検索により得られた前記ページのデータの移動後、前記書き込みデータを前記検索により得られた前記ページに書き込ませることができる。
各前記ページの書き換え回数を、前記主記憶装置に格納することができる。
各前記ページの書き換え回数は、前記ページに対して一意に定められた位置、または前記ページ位置から演算により求まる位置に格納されるようにすることができる。
情報処理装置には、前記ページに対して仮想ページ番号を割り当てるとともに、前記ページの前記仮想ページ番号と物理ページ番号の対応を示す論物変換情報を管理する変換情報管理部をさらに設けることができる。
前記変換情報管理部には、前記所定ページに対して所定仮想ページ番号が割り当てられており、前記所定仮想ページ番号が書き込み先として指定された前記書き込みデータが、前記他のページに書き込まれた場合、前記所定仮想ページ番号の割り当てを前記所定ページから前記他のページに変更させることができる。
各前記ページの書き換え回数と、前記論物変換情報とは異なる領域に格納されるようにすることができる。
前記論物変換情報または前記閾値の少なくとも一方は前記ページに格納されているようにすることができる。
本技術の一側面の情報処理方法またはプログラムは、書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理し、所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込むステップを含む。
本技術の一側面においては、書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数が管理され、所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータが書き込まれる。
本技術の一側面によれば、書き換え回数に上限がある不揮発性メモリの利用効率を向上させることができる。
情報処理システムの構成例を示す図である。 管理情報格納部の構成例を示す図である。 データ格納部と書き換え回数格納部の対応関係について説明する図である。 回数情報格納部の配置例を示す図である。 メインメモリ管理制御部の構成例を示す図である。 管理情報の初期状態について説明する図である。 初期状態におけるデータ書き込み処理について説明するフローチャートである。 管理情報の更新について説明する図である。 メイン管理情報が更新されない場合におけるデータ書き込み処理について説明するフローチャートである。 管理情報の更新について説明する図である。 ページの書き換え回数が閾値に達した管理情報の例を示す図である。 書き換え回数が閾値に達した場合におけるデータ書き込み処理について説明するフローチャートである。 管理情報の更新について説明する図である。 仮想ページ番号が割り当て済みで、データ格納場所と空きページの書き換え回数が閾値に達した管理情報の例を示す図である。 データ格納場所と空きページの書き換え回数が閾値に達した場合におけるデータ書き込み処理について説明するフローチャートである。 管理情報の更新について説明する図である。 管理情報の更新について説明する図である。 全ページの書き換え回数が閾値に達した管理情報の例を示す図である。 閾値更新処理について説明するフローチャートである。 管理情報の更新について説明する図である。 情報処理システムの他の構成例を示す図である。 情報処理システムの他の構成例を示す図である。 情報処理システムの他の構成例を示す図である。 メインメモリの構成例を示す図である。 コンピュータの構成例を示す図である。
以下、図面を参照して、本技術を適用した実施の形態について説明する。
〈第1の実施の形態〉
[本技術の特徴について]
まず、本技術の特徴について説明する。
本技術は、書き換え回数に上限がある不揮発性メモリをメインメモリに用いるシステムに関するものであり、このシステムでは、メインメモリの所定領域が1バイト以上の任意のサイズ単位に分割されて、サイズ単位で管理される。
なお、以下では、所定のサイズ単位で分割されたメインメモリの各領域をページと称することとし、各ページの大きさ、つまりメインメモリの分割のサイズ単位をページサイズと称することとする。また、本技術でいうメインメモリとは、プログラムを実行する処理ユニットが直接アクセスし、データの読み出しや書き込みを行なうことができる主記憶装置であり、処理ユニットは主記憶装置の各領域に対してランダムにアクセス可能である。
このようなシステムに適用される本技術は、特に以下の(1)乃至(5)の特徴を有している。
(1)メインメモリのページごとに、ページの書き換え回数に関する情報を保持する。
(2)メインメモリの書き換え回数の上限値MXに対して、その上限値MX以下の複数の閾値thを定め、それらの閾値thを小さいものから順番に用いてメインメモリの管理を行なう。
(3)所定のページ(移動元ページ)に対する書き換え回数が使用中の閾値thに達した場合、有効なデータが記憶されていない他のページ(移動先ページ)に、移動元ページのデータを移動させる。
(4)移動先ページの書き換え回数が閾値th以上である場合、有効なデータが記憶されている、書き換え回数が閾値th未満のページを検索し、その結果得られたページのデータを移動先ページに移動させ、検索で得られたページを新たな移動先ページとする。
(5)メインメモリ内の全ページの書き換え回数が使用中の閾値thに達した場合、その閾値thよりも大きい次の閾値thを用いて、メインメモリの管理を行なう。
以上の特徴(1)乃至(5)によって、ページサイズ単位に分割されたメインメモリ内の各領域(ページ)の書き換え回数を平均化し、メインメモリの利用効率を向上させることができる。これにより、書き換え回数に上限がある不揮発性メモリ(メインメモリ)の寿命を延ばすことができ、その結果としてメインメモリを用いるシステムの寿命も延ばすことができるようになる。
なお、特徴(1)乃至(5)を有するシステムを実現するためには、各ページの書き換え回数に関する情報や論物変換情報等からなる管理情報を保持する必要がある。ここで、論物変換情報とは、メインメモリ上の実際のページ位置を示す物理アドレス(物理ページ番号)と、そのページの仮想アドレス(仮想ページ番号)との対応を示す情報である。
管理情報は、メインメモリに記憶されるようにしてもよいし、他のメモリに記憶されるようにしてもよい。例えば管理情報がメインメモリに記憶される場合には、本技術を適用したシステムに対して、さらに以下の(6)および(7)の特徴をもたせることで、メインメモリの利用効率をさらに向上させることができる。
(6)メインメモリに各ページの書き換え回数に関する情報を記憶させる。
(7)ページの書き換え回数に関する情報の格納場所は、各ページに対して演算により算出することのできる場所、または各ページに対して一意に定められた場所とされる。そして、書き換え回数に関する情報が格納される領域は、書き換え回数の上限値MXの値を格納可能なサイズの領域とされる。
以上の特徴(6)と(7)により、メインメモリの管理に関する情報のサイズを削減することができる。
例えば、上述した特許文献1に記載の技術では、各ページの書き込み回数情報の格納場所を示すポインタが必要であり、そのポインタを格納する場所をページテーブル内に確保しなければならなかった。そのため、ページテーブルのデータサイズが大きくなり、メモリ上の他のデータを記憶可能な領域が減ってしまうことになる。そうすると、各領域のデータの書き換えが増えてメモリの寿命が短くなってしまう。
これに対して本技術では、特徴(6)および(7)により、ページの書き換え回数に関する情報の格納場所を示す情報をもたなくても、書き換え回数に関する情報の格納場所を特定可能であるので、その分だけ管理情報のサイズを削減することができる。
これにより、管理情報のサイズ削減分だけ、他のデータを記憶可能な領域をより多く確保することができるので、メインメモリの利用効率を向上させて、メインメモリの寿命をさらに延ばすことができる。
また、上述した特許文献1に記載の技術では、マッピング情報に書き込み回数情報が含まれているため、書き込み回数情報を更新するごとにマッピング情報が格納されている領域が書き換えられて、その領域の寿命が短くなってしまう。
これに対して本技術では、管理情報に含まれる論物変換情報の格納場所と、ページの書き換え回数に関する情報の格納場所とを別にして、それらの情報を個別に管理することで、ページの書き換え回数に関する情報以外の論物変換情報等の更新回数を削減することができる。これにより、メインメモリの寿命を延ばすことができる。
[情報処理システムの構成例]
次に、本技術を適用した具体的な実施の形態について説明する。図1は、本技術を適用した情報処理システムの一実施の形態の構成例を示す図である。
図1の情報処理システムは、書き換え回数に上限がある不揮発性メモリをメインメモリ(主記憶装置)として使用する任意の情報処理装置に設けられており、情報処理システムは、制御部11、メインメモリ12、およびバス13から構成される。
この情報処理システムでは、制御部11は、書き換え回数に上限がある不揮発性メモリであるメインメモリ12を主記憶装置として利用し、ドライブ等を必要とせずにバス13を介してメインメモリ12に直接、かつランダムにアクセスする。
制御部11は、バス13を介してメインメモリ12と接続されており、所定の処理の実行時にメインメモリ12に対するデータの読み出しや書き込みを行なったり、メインメモリ12を管理したりする。制御部11にはCPU(Central Processing Unit)21およびメインメモリ管理制御部22が設けられている。
CPU21は、メインメモリ12に記憶されているプログラムを実行することで、各種の処理を行なうとともに、処理実行時にメインメモリ管理制御部22を介してメインメモリ12に対するデータの読み書きを行なう。
メインメモリ管理制御部22は、メインメモリ12の管理を行なうとともに、CPU21の指示に応じてメインメモリ12の任意の領域にアクセスし、データの読み出しや書き込みを行なう。
メインメモリ12は、書き換え回数に上限値MXが設けられた不揮発性のメモリであり、情報処理システムのメインメモリ(主記憶装置)として機能する。メインメモリ12には、プログラム格納部31およびデータ格納部32が設けられている。
プログラム格納部31は、CPU21により実行されるプログラムが格納されるメインメモリ12上の領域からなり、プログラム格納部31に格納されたプログラムは、バス13を介して制御部11に読み出される。
データ格納部32は、所定のページサイズのページに分割されて管理され、データ格納部32には管理情報格納部41が設けられている。
管理情報格納部41は、データ格納部32の各ページを特定する物理ページ番号と仮想ページ番号との対応を示す論物変換情報や、各ページの書き換え回数などからなる管理情報が格納される領域からなる。管理情報格納部41に格納されている管理情報は、メインメモリ管理制御部22によって管理される。
また、データ格納部32の管理情報格納部41以外の領域(ページ)には、CPU21が各種の処理を実行するためのデータが格納され、CPU21による処理の実行時には、各ページに対してメインメモリ管理制御部22によるデータの読み書きが行なわれる。
[管理情報について]
ここで、管理情報格納部41に格納される管理情報について説明する。
例えば、図2に示すように管理情報格納部41には、管理情報に含まれる各情報を格納しておくための領域として、メイン管理情報格納部61と書き換え回数格納部62が設けられている。
メイン管理情報格納部61は、管理情報に含まれる論物変換情報等の主な情報が格納される領域であり、メイン管理情報格納部61には、論物変換情報格納部71、空き物理ページ番号格納部72、閾値格納部73、および上限値格納部74が設けられている。
論物変換情報格納部71は、論物変換情報が格納される領域であり、論物変換情報格納部71には、論物変換情報としてのデータ格納部32の各ページの物理ページ番号(物理アドレス)が格納される物理ページ番号格納部FA−0乃至物理ページ番号格納部FA−mが設けられている。以下、物理ページ番号格納部FA−0乃至物理ページ番号格納部FA−mを個々に区別する必要のない場合、単に物理ページ番号格納部FAとも称する。
例えば、データ格納部32が複数のページに分割され、それらのページのうち、書き換え回数格納部62とされるページを除いて残ったページが、物理ページ番号PPA0乃至物理ページ番号PPAnのそれぞれにより特定される(n+1)個のページであるとする。
なお、以下では、特に断りのない場合、単にページというときには、そのページとは、物理ページ番号PPA0乃至物理ページ番号PPAnにより特定される(n+1)個の各ページであるものとして説明を続ける。
データ格納部32の(n+1)個のページに対して、最大で仮想ページ番号VPPA0乃至仮想ページ番号VPPAmの合計(m+1)個(但しm≦n)の仮想ページ番号(仮想ページアドレス)が割り当て可能であるとする。
ここで仮想ページ番号は、ページの書き換え回数平均化によって、各データが格納されるページの物理ページ番号が分散してしまうことをプログラム等の上位層やOS(Operating System)に意識させないために定義された、仮想的なページ番号である。
論物変換情報格納部71では、図中、上側から下側まで仮想ページ番号VPPA0乃至仮想ページ番号VPPAmの順番に、それらの仮想ページ番号が割り当てられたページの物理ページ番号を格納する物理ページ番号格納部FAが並べられて設けられている。
そのため、論物変換情報格納部71における物理ページ番号格納部FAの位置によって、その物理ページ番号格納部FAに格納されている物理ページ番号により特定されるページに対して、どの仮想ページ番号が割り当てられているかが分かることになる。論物変換情報格納部71では、これらの物理ページ番号格納部FAに格納された物理ページ番号からなる情報が論物変換情報とされる。
また、メイン管理情報格納部61の空き物理ページ番号格納部72には、データ格納部32上のページであって、有効なデータが記憶されていないページ(以下、空きページとも称する)の物理ページ番号の1つが、空き物理ページ番号として格納される。
ここで、空きページは、不要になったデータが記憶されているか、またはまだ何も記憶されていないページである。換言すれば、仮想ページ番号が割り当てられておらず、管理情報も格納されていないページが、その時点における空きページとされる。
例えば空き物理ページ番号格納部72には、いくつかの空きページのうちの所定の条件を満たす1つの空きページの物理ページ番号が、空き物理ページ番号として格納される。
このように空き物理ページ番号格納部72に空き物理ページ番号を格納して、空きページを1つ確保しておくのは、次のような理由からである。すなわち、空きページに対して新規に仮想ページ番号を割り当てたり、データを移動させたりする際に、事前に仮想ページ番号の割り当て先やデータの移動先となるページの場所情報(物理ページ番号)を保持しておくためである。
閾値格納部73には、メインメモリ12の書き換え回数の上限値MXに基づいて算出された閾値thが格納され、この閾値thが用いられて各ページに対する仮想ページ番号の割り当てが制御される。また、閾値thは全てのページの書き換え回数が閾値thに達すると更新される。例えば、閾値thは、書き換え回数の上限値MXの10%の値,20%の値,・・・,90%の値,100%の値と、更新されるたびに上限値MXまで大きくなっていく。
さらに、メイン管理情報格納部61の上限値格納部74には、予め定められたメインメモリ12の書き換え回数の上限値MXが格納される。
以下においては、メイン管理情報格納部61に格納される論物変換情報、空き物理ページ番号、閾値th、および書き換え回数の上限値MXからなる情報を、管理情報を構成するメイン管理情報と呼ぶこととする。
また、管理情報格納部41の書き換え回数格納部62には、データ格納部32上の各ページについての書き換え回数が格納される。具体的には、書き換え回数格納部62には、物理ページ番号PPA0乃至物理ページ番号PPAnのそれぞれにより特定されるページの書き換え回数が格納される回数情報格納部NU−0乃至回数情報格納部NU−nが設けられている。
例えば、回数情報格納部NU−0には、物理ページ番号PPA0により特定されるページの書き換え回数が格納される。なお、以下、回数情報格納部NU−0乃至回数情報格納部NU−nを個々に区別する必要のない場合、単に回数情報格納部NUとも称する。
[データ格納部のデータ構造について]
ところで、図3に示すようにデータ格納部32には、物理ページ番号PPA0乃至物理ページ番号PPAnにより特定されるページPG−0乃至ページPG−nが設けられている。例えば、これらの各ページの大きさ、つまりページサイズは4KBなどとされる。
なお、以下、ページPG−0乃至ページPG−nを個々に区別する必要のない場合、単にページPGとも称することとする。
また、各ページPG−0乃至ページPG−nには、それぞれ回数情報格納部NU−0乃至回数情報格納部NU−nが対応付けられている。ここで、各回数情報格納部NUの配置位置は、その回数情報格納部NUに対応するページPGの物理ページ番号から特定可能な位置とされる。
すなわち、回数情報格納部NUは、その回数情報格納部NUに対応するページPGの物理ページ番号を用いた演算により算出される値で特定される位置、またはページPGの物理ページ番号に対して一意に定められた位置とされる。また、回数情報格納部NUのサイズは、書き換え回数の上限値MXの値を格納可能なサイズとされる。
例えば、メインメモリ12がNVRAM(Non Volatile RAM(Random Access Memory))である場合、図4の上側に示すようにデータ格納部32上の各ページPGの配置領域と、回数情報格納部NUの配置領域とを分けるようにすることが考えられる。なお、図4において図3における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
この例では、データ格納部32の先頭から、ページPG−0乃至ページPG−nが順番に並べられて配置されており、ページPG−nに続いて、回数情報格納部NU−0乃至回数情報格納部NU−nが順番に並べられて配置されている。そのため、データ格納部32を構成するページのうちのページPGとは異なる各ページに、回数情報格納部NUが設けられていることになる。
このような場合、ページPGのうちのメイン管理情報が格納されているページPG、つまりメイン管理情報格納部61とされているページPGと、回数情報格納部NUとからなる領域が、管理情報格納部41の領域とされる。
なお、以上においては、データ格納部32を構成するページに回数情報格納部NUが設けられると説明したが、回数情報格納部NUをページの領域に設けないようにしてもよい。そのような場合、例えばデータ格納部32上に、所定の固定サイズの領域が回数情報格納部NUとして確保され、データ格納部32の回数情報格納部NUを除く領域がページサイズの大きさの領域に分割され、分割された領域がページPGとされる。
そして、例えば図4中、下側に示すようにデータ格納部32の先頭から、ページPGと回数情報格納部NUとが交互に配置される。この例では、ページPGの直後に、そのページPGに関する書き換え回数が格納される回数情報格納部NUが配置されているので、ページPGの位置から、対応する回数情報格納部NUの位置を特定することができる。また、各ページPG内の領域が回数情報格納部NUとされるようにしてもよい。
[メインメモリ管理制御部の構成例]
さらに図1のメインメモリ管理制御部22のより詳細な構成例について説明する。図5は、図1のメインメモリ管理制御部22の構成例を示す図である。
図5のメインメモリ管理制御部22は、データ処理部101、変換情報管理部102、空きページ検索部103、閾値更新部104、および書き換え回数管理部105から構成される。
データ処理部101は、CPU21の指示に応じてデータ格納部32のページPGへのデータの書き込みや、ページPGからのデータの読み出しを制御する。変換情報管理部102は、論物変換情報格納部71に格納されている論物変換情報を管理する。
空きページ検索部103は、ページPGから所定の条件を満たす空きページを検索したり、空き物理ページ番号格納部72を管理したりする。閾値更新部104は、上限値格納部74に格納された上限値に基づいて閾値thを算出したり、閾値格納部73を管理したりする。書き換え回数管理部105は、書き換え回数格納部62を管理する。
[初期状態におけるデータ書き込み処理の説明]
次に、図1の情報処理システムの動作について説明する。
例えばメインメモリ12の初期状態、つまり制御部11によるメインメモリ12へのデータの書き込みが行なわれていない状態が、図6に示す状態であったとする。なお、図6において、図2または図3における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
図6の例では、データ格納部32には、8個のページPG−0乃至ページPG−7が設けられている。すなわち、図6に示す初期状態は、図3におけるページPG−nの整数nがn=7である場合となっている。
図6では、ページPG−0およびページPG−1に、既にメイン管理情報が記憶されており、これらの2つのページがメイン管理情報格納部61の領域となっている。そのため、ページPG−0およびページPG−1に対応する回数情報格納部NU−0および回数情報格納部NU−1には、書き換え回数として「1」が格納されている。
なお、データ格納部32のページPGに格納されているメイン管理情報は、各ページPGへの書き換え回数に応じて他のページPGに移動されることもあるが、メインメモリ管理制御部22は、メイン管理情報の格納場所を常に把握しているものとする。
これに対して、他のページPG−2乃至ページPG−7には、まだデータが書き込まれていない状態となっており、それらのページに対応する回数情報格納部NU−2乃至回数情報格納部NU−7には、書き換え回数として「0」が格納されている。
また、メイン管理情報格納部61の論物変換情報格納部71には、5つの仮想ページ番号VPPA0乃至仮想ページ番号VPPA4に対して、物理ページ番号格納部FA−0乃至物理ページ番号格納部FA−4が設けられている。
この例では、各物理ページ番号格納部FAには、まだ物理ページ番号が格納されていない。すなわち、現時点では、仮想ページ番号VPPA0乃至仮想ページ番号VPPA4が何れのページにも割り当てられていない状態となっている。
図6に示す論物変換情報格納部71では、5つの物理ページ番号格納部FAが設けられているので、CPU21は5つのページに管理情報以外のデータを格納することができる。
例えば、データ格納部32には8個のページPGが設けられており、そのうちの2つのページがメイン管理情報の格納に使用されている。そして、データ格納部32には少なくとも1つの空きページを確保しておく必要があるので、この例では全ページ数の8から必要なページ数3(=2+1)を除いて得られるページ数5が、データ格納用のページの数とされている。
また、データ格納部32では、物理ページ番号が最も小さい空きページが、新たなデータの格納先(仮想ページ番号の割り当て先)またはデータの移動先として確保されている。そして、その空きページの物理ページ番号PPA2が、空き物理ページ番号格納部72に格納されている。
閾値格納部73には、メインメモリ12の書き換え回数の上限値MXに基づいて算出された閾値thとして数値「100000」が格納されている。さらに、上限値格納部74には、予め定められたメインメモリ12の書き換え回数の上限値MXとして数値「1000000」が格納されている。
なお、この例では、初期状態における閾値thは、上限値MX=1000000の10%分の値である「100000」とされ、その後、更新されるごとに閾値thが上限値MXの10%分の値「100000」ずつ増加していくものとする。換言すれば、初期状態における閾値thは上限値MX未満の値とされ、閾値更新時には、閾値thに対して所定の固定値が加算されて新たな閾値thとされる。
データ格納部32が図6に示した初期状態である場合に、CPU21がメインメモリ管理制御部22を介してプログラム格納部31にアクセスし、プログラム格納部31に格納されているプログラムを実行すると、各種の処理が行なわれる。このとき、CPU21がデータ格納部32への新たなデータの書き込みを指示すると、初期状態におけるデータ書き込み処理が開始される。
以下、図7のフローチャートと図8を参照して、情報処理システムによる初期状態におけるデータ書き込み処理について説明する。
ステップS11において、メインメモリ管理制御部22のデータ処理部101は、CPU21の指示にしたがって、CPU21から供給されたデータをデータ格納部32の空きページに書き込む。
例えば、データ処理部101は、図6に示した初期状態における空き物理ページ番号格納部72を参照し、そこに格納されている物理ページ番号PPA2により特定されるページPG−2にデータを書き込む。
これにより、図8に示すように物理ページ番号PPA2により特定されるページPG−2には、データが書き込まれた状態となる。図8では、ページPG−2には文字「Not Erased」が記されており、データが格納されている状態となっている。
ステップS12において、書き換え回数管理部105は、データが書き込まれた物理ページ番号がPPA2であるページPG−2の書き換え回数をインクリメントして、書き換え回数を更新する。すなわち、書き換え回数管理部105は、ページPG−2に対応する回数情報格納部NU−2に格納されている書き換え回数を1だけインクリメントする。
これにより、回数情報格納部NU−2に格納されているページPG−2の書き換え回数は図6に示した状態、すなわち書き換え回数「0」から、図8に示す状態、すなわち書き換え回数「1」に変化する。
このようにして空きページに新たなデータが書き込まれ、そのページの書き換え回数が更新されると、次に、データが書き込まれたページに対して、仮想ページ番号(仮想ページアドレス)が割り当てられる。
すなわち、ステップS13において、変換情報管理部102は、データの書き込みを行なったページに仮想ページ番号を割り当てる。
例えば、図6の初期状態では、論物変換情報格納部71の何れの物理ページ番号格納部FAにも物理ページ番号が格納されておらず、これまでに仮想ページ番号の割り当ては行なわれていない状態となっている。
そこで、変換情報管理部102は、最も番号が小さい仮想ページ番号VPPA0を、データの書き込みが行なわれたページPG−2に割り当てる。
具体的には、変換情報管理部102は、仮想ページ番号VPPA0に対応する物理ページ番号格納部FA−0に、ページPG−2の物理ページ番号PPA2を書き込むことで、仮想ページ番号VPPA0に対応する物理ページ番号にPPA2を設定する。これにより、図6の初期状態では何も書き込まれていなかった物理ページ番号格納部FA−0は、図8に示すように物理ページ番号PPA2が書き込まれた状態となる。
このようにして、これまで空きページであったページPG−2にデータが書き込まれると、空きページ検索部103により新たな空きページの検索が行なわれる。
すなわち、ステップS14において、空きページ検索部103は新たな空きページを検索し、空き物理ページ番号格納部72に格納される物理ページ番号を更新する。
具体的には、空きページ検索部103は、空き物理ページ番号格納部72に格納される物理ページ番号を1ずつインクリメントしていき、インクリメント後の物理ページ番号により特定されるページPGが空きページであったとき、インクリメントを終了する。そして、このとき空き物理ページ番号格納部72に格納されている物理ページ番号が、更新後の空きページの物理ページ番号とされる。
ここで、インクリメント後の物理ページ番号のページPGが空きページであるか否かは、論物変換情報を参照することで特定することができる。論物変換情報格納部71の各物理ページ番号格納部FAには、仮想ページ番号が割り当てられたページPGの物理ページ番号が格納されている。したがって、物理ページ番号格納部FAに物理ページ番号が格納されておらず、かつメイン管理情報も格納されていないページPGは空きページとなっているはずである。
物理ページ番号をインクリメントしていくことで、これまで空き物理ページ番号格納部72に格納されていた物理ページ番号よりも物理ページ番号が大きく、かつ空き物理ページ番号格納部72の物理ページ番号に最も近い物理ページ番号の空きページを探し出すことができる。
図6に示した初期状態では、空き物理ページ番号格納部72には物理ページ番号PPA2が格納されているので、空きページ検索部103は、その物理ページ番号PPA2を1だけインクリメントし、図8に示すように物理ページ番号PPA3とする。
この場合、図8の論物変換情報格納部71の各物理ページ番号格納部FAには、インクリメント後の物理ページ番号PPA3は格納されていない。また、メイン管理情報の格納場所は、物理ページ番号PPA0と物理ページ番号PPA1のページPGであり、物理ページ番号PPA3にはメイン管理情報は格納されていない。つまり、物理ページ番号PPA3は有効なデータが格納されていない空きページである。
そこで、空きページ検索部103は、物理ページ番号のインクリメントを停止し、空き物理ページ番号格納部72に格納される物理ページ番号として、データ未割り当ての物理ページ番号PPA3を設定する。
なお、空き物理ページ番号格納部72に格納されていた物理ページ番号をインクリメントしていく場合に、インクリメント前の物理ページ番号が最後の物理ページ番号であることがある。そのような場合、インクリメント後の物理ページ番号は、最も小さい最初の物理ページ番号とされる。例えば、図6では最後の物理ページ番号は「PPA7」であり、最初の物理ページ番号は「PPA0」であるから、物理ページ番号PPA7に対するインクリメントを行なう場合、インクリメント後の物理ページ番号は物理ページ番号PPA0とされる。
図7のフローチャートの説明に戻り、ステップS13およびステップS14の処理によりメイン管理情報格納部61となっているページPGのデータが更新されたので、それらのページPGの書き換え回数が更新される。
すなわち、ステップS15において、書き換え回数管理部105は、メイン管理情報が格納されている物理ページ番号PPA0,PPA1により特定されるページPG−0,PG−1の書き換え回数を1だけインクリメントする。
これにより、回数情報格納部NU−0および回数情報格納部NU−1に格納されている書き換え回数が1インクリメントされ、図6の初期状態での書き換え回数「1」から、図8に示すように書き換え回数「2」へと更新される。
メイン管理情報の格納先のページPGの書き換え回数が更新されると、初期状態におけるデータ書き込み処理は終了する。このとき、データ格納部32、書き換え回数格納部62、およびメイン管理情報格納部61の状態は、図6に示した状態から、図8に示した状態へと変化している。
図8の例では、物理ページ番号PPA2のページPG−2にデータが書き込まれているとともに、そのページPG−2に対して仮想ページ番号VPPA0が割り当てられている。また、空き物理ページ番号格納部72に、新たな空きページの物理ページ番号PPA3が格納され、データの書き込みや更新が行なわれたページPGの回数情報格納部NU−0,NU−1,NU−2に格納されている書き換え回数がインクリメントされている。
以上のように、情報処理システムはページPGごとに書き換え回数を保持し、ページPGに対するデータの書き込みが行なわれると、そのページPGの書き換え回数を更新する。
このように、ページPGごとに書き換え回数を保持しておくことで、必要に応じてデータを他のページPGに移動させて各ページPGの書き換え回数を平均化し、メインメモリ12の寿命を延ばすことができる。また、各ページPGの書き換え回数を保持する領域を、他のデータが保持されるページPGとは別に設けることで、各ページPGの書き換え回数をより少なく抑えることができ、メインメモリ12の寿命を延ばすことができる。
[メイン管理情報が更新されない場合におけるデータ書き込み処理の説明]
また、図8に示した状態から、さらにCPU21がメインメモリ管理制御部22に対して、仮想ページ番号VPPA0を指定してデータの書き込みを指示すると、メイン管理情報が更新されない場合におけるデータ書き込み処理が開始される。
以下、図9のフローチャートと図10を参照して、情報処理システムによるメイン管理情報が更新されない場合におけるデータ書き込み処理について説明する。
ステップS41において、データ処理部101は、CPU21により指定された仮想ページ番号VPPA0により特定されるページPGに、CPU21から供給されたデータを書き込む。例えば、図8に示す状態では、仮想ページ番号VPPA0に対応する物理ページ番号格納部FA−0には、物理ページ番号PPA2が格納されている。そこで、データ処理部101は、物理ページ番号PPA2により特定されるページPG−2にデータの書き込みを行なう。
ステップS42において、書き換え回数管理部105は、データが書き込まれた物理ページ番号PPA2のページPG−2の書き換え回数をインクリメントして、書き換え回数を更新する。すなわち、書き換え回数管理部105は、ページPG−2に対応する回数情報格納部NU−2に格納されている書き換え回数を1だけインクリメントする。
このようなデータの書き込みと、書き換え回数のインクリメントにより、データ格納部32および書き換え回数格納部62の状態は、図8に示した状態から図10に示す状態となる。図10では、図8に示した状態からページPG−2に格納されているデータの更新が行なわれており、その更新に伴って回数情報格納部NU−2に格納されている書き換え回数が「1」から1だけインクリメントされて「2」となっている。
なお、この場合、メイン管理情報の書き換えは発生しないので、メイン管理情報が格納されているページPG−0とページPG−1の書き換え回数は更新されていない。
指定された仮想ページ番号のページPGにデータが書き込まれ、そのページPGの書き換え回数が更新されると、メイン管理情報が更新されない場合におけるデータ書き込み処理は終了する。
このようにして情報処理システムは、仮想ページ番号が指定されてデータの書き込みが指示されると、その仮想ページ番号により特定されるページPGに対してデータの書き込みを行ない、書き換え回数をインクリメントする。このとき、メイン管理情報の書き換えが発生しないときには、メイン管理情報が格納されているページPGの書き換え回数は更新されず、そのままとされる。
[書き換え回数が閾値に達した場合におけるデータ書き込み処理の説明]
さらに、図10に示した状態からページPG−2へのデータの書き込みが頻発し、ページPG−2の書き換え回数が閾値thに達したとする。
そのような場合、データ格納部32および書き換え回数格納部62の状態は、図10に示した状態から図11に示す状態となる。図11では、ページPG−2に対応する回数情報格納部NU−2に格納されている書き換え回数が、閾値格納部73に格納されている閾値thと同じ数値「100000」となっている。
このように仮想ページ番号VPPA0により特定されるページPG−2の書き換え回数が閾値thに達した場合に、さらに同じ仮想ページ番号VPPA0が指定されてデータの書き込みが指示されると、書き換え回数が閾値に達した場合におけるデータ書き込み処理が開始される。
以下、図12のフローチャートと図13を参照して、情報処理システムによる書き換え回数が閾値に達した場合におけるデータ書き込み処理について説明する。
ステップS71において、データ処理部101は、空き物理ページ番号格納部72に格納されている物理ページ番号PPA3により特定される空きページ、すなわちページPG−3にCPU21から供給されたデータを書き込む。
例えば、図11に示した状態でCPU21が仮想ページ番号VPPA0を指定してデータの書き込みを指示すると、データ処理部101は、論物変換情報格納部71の仮想ページ番号VPPA0に対応する物理ページ番号格納部FA−0を参照する。
図11では、物理ページ番号格納部FA−0には、物理ページ番号PPA2が格納されているので、データ格納部32の物理ページ番号PPA2により特定されるページPG−2へのデータの書き込みが指示されたことが分かる。
続いて、データ処理部101は、図11のデータの書き込み先であるページPG−2の回数情報格納部NU−2に格納されている書き換え回数「100000」と、閾値格納部73に格納されている閾値thの値「100000」とを比較する。書き換え回数と閾値thとの比較の結果、ページPG−2の書き換え回数は閾値thに達してしまっているので、ページPG−2にデータを書き込むことができない。
そこで、データ処理部101は、ページPG−2ではない空きページにCPU21から供給されたデータを格納する。すなわち、データ処理部101は、空き物理ページ番号格納部72を参照し、そこに格納されている物理ページ番号PPA3により特定されるページPG−3にCPU21から供給されたデータを書き込む。
これにより、図11に示すように物理ページ番号PPA3のページPG−3にデータが格納されていない状態から、図13に示すように物理ページ番号PPA3のページPG−3にデータが格納された状態となる。図13では、ページPG−3には文字「Not Erased」が記されており、データが書き込まれた状態となっている。
ステップS72において、書き換え回数管理部105は、データが書き込まれた物理ページ番号がPPA3であるページPG−3の書き換え回数をインクリメントする。すなわち、書き換え回数管理部105は、ページPG−3に対応する回数情報格納部NU−3に格納されている書き換え回数を1だけインクリメントする。
これにより、回数情報格納部NU−3に格納されているページPG−3の書き換え回数は図11に示した状態、すなわち書き換え回数「0」から、図13に示す状態、すなわち書き換え回数「1」に変化する。
このようにして空きページにデータが書き込まれ、そのページの書き換え回数が更新されると、次に、データが書き込まれたページに対して、仮想ページ番号が割り当てられる。
すなわち、ステップS73において、変換情報管理部102は、データの書き込みを行なったページに仮想ページ番号を割り当てる。
例えば、ステップS71では、仮想ページ番号VPPA0へのデータの書き込みが指示されていた。ところが、その仮想ページ番号VPPA0により特定されていたページPG−2に対して、現時点ではデータを書き込むことができないため、空きページであるページPG−3に指定されたデータの書き込みが行なわれた。したがって、データが書き込まれたページPG−3に対して、仮想ページ番号VPPA0が割り当てられるように、仮想ページ番号VPPA0の割り当てを変更する必要がある。
そこで、変換情報管理部102は、CPU21によりデータの書き込み先として指定された仮想ページ番号VPPA0を、実際にデータの書き込みが行なわれたページPG−3に割り当てる。
具体的には、変換情報管理部102は、仮想ページ番号VPPA0に対応する物理ページ番号格納部FA−0に、ページPG−3の物理ページ番号PPA3を書き込むことで、仮想ページ番号VPPA0の割り当てを変更する。
これにより、仮想ページ番号VPPA0に対応する物理ページ番号格納部FA−0に格納される物理ページ番号は、図11に示した状態から図13に示す状態へと変化する。すなわち、物理ページ番号格納部FA−0に格納される物理ページ番号は、物理ページ番号PPA2から、物理ページ番号PPA3に変更される。
ステップS74において、空きページ検索部103は新たな空きページを検索し、空き物理ページ番号格納部72に格納される物理ページ番号を更新する。このステップS74では、図7のステップS14と同様の処理が行なわれる。
具体的には、空きページ検索部103は、空き物理ページ番号格納部72に格納される物理ページ番号を1ずつインクリメントしていくことで、新たな空きページを検索する。例えば、図11に示す状態では、空き物理ページ番号格納部72には物理ページ番号PPA3が格納されているので、空きページ検索部103は、その物理ページ番号PPA3を1だけインクリメントし、図13に示すように物理ページ番号PPA4とする。
図13では、論物変換情報格納部71の各物理ページ番号格納部FAには、インクリメント後の物理ページ番号PPA4は格納されていない。また、メイン管理情報の格納場所は、物理ページ番号PPA0,PPA1のページPGであり、物理ページ番号PPA4にはメイン管理情報は格納されていない。つまり、物理ページ番号PPA4は有効なデータが格納されていない空きページである。
そこで、空きページ検索部103は、物理ページ番号のインクリメントを停止し、空き物理ページ番号格納部72に格納される物理ページ番号として、データ未割り当ての物理ページ番号PPA4を設定する。
図12のフローチャートの説明に戻り、ステップS73およびステップS74の処理によりメイン管理情報格納部61となっているページPGのデータが更新されたので、それらのページPGの書き換え回数が更新される。
すなわち、ステップS75において、書き換え回数管理部105は、メイン管理情報が格納されている物理ページ番号PPA0,PPA1により特定されるページPG−0,PG−1の書き換え回数を1だけインクリメントする。
これにより、回数情報格納部NU−0および回数情報格納部NU−1に格納されている書き換え回数が1インクリメントされ、図11に示した状態での書き換え回数「2」から、図13に示すように書き換え回数「3」へと更新される。
メイン管理情報の格納先のページPGの書き換え回数が更新されると、書き換え回数が閾値に達した場合におけるデータ書き込み処理は終了する。このとき、データ格納部32、書き換え回数格納部62、およびメイン管理情報格納部61の状態は、図11に示した状態から、図13に示した状態へと変化している。
図13の例では、物理ページ番号PPA3のページPG−3にデータが書き込まれているとともに、そのページPG−3に対して仮想ページ番号VPPA0が割り当てられている。また、空き物理ページ番号格納部72に、新たな空きページの物理ページ番号PPA4が格納され、データの書き込みや更新が行なわれたページPGの回数情報格納部NU−0,NU−1,NU−3に格納されている書き換え回数がインクリメントされている。
なお、図13では、論物変換情報格納部71の各物理ページ番号格納部FAには、物理ページ番号PPA2は格納されておらず、物理ページ番号PPA2のページPG−2にはメイン管理情報も格納されていない。したがって、図13に示す状態では、ページPG−2は、有効なデータが格納されていない空きページとなる。
以上のように、情報処理システムは所定のページPGにデータを書き込もうとした場合に、そのページPGの書き換え回数が閾値thに達していたときには、有効なデータが格納されておらず、書き換え回数も閾値thに達していない空きページにデータを書き込む。そして、情報処理システムは、データの書き込みにあわせて仮想ページ番号の割り当てを変更する。
このように、ページPGの書き換え回数が閾値thに達した場合に、他のページPGにデータを書き込むようにすることで、各ページPGの書き換え回数を平均化し、書き換え回数に上限がある不揮発性のメインメモリ12の利用効率を向上させることができる。これにより、メインメモリ12の寿命を延ばすことができ、その結果、メインメモリ12を用いる情報処理システムの寿命も延ばすことができる。
[データ格納場所と空きページの書き換え回数が閾値に達した場合におけるデータ書き込み処理の説明]
また、図13に示した状態から、各ページPGへのデータの書き込みが行なわれ、そのときにページPG−3へのデータの書き込みが頻発し、ページPG−3の書き換え回数が閾値thに達したとする。
そのような場合、データ格納部32、書き換え回数格納部62、およびメイン管理情報格納部61の状態が図14に示す状態となったとする。
図14では、論物変換情報格納部71の物理ページ番号格納部FA−0乃至物理ページ番号格納部FA−4には、物理ページ番号PPA7,物理ページ番号PPA3乃至物理ページ番号PPA6が格納されている。すなわち、全ての仮想ページ番号VPPA0乃至仮想ページ番号VPPA4が、何れかのページPGに割り当て済みとなっている。
換言すれば、全てのページPGのなかで、空きページとなっているページPGは、空き物理ページ番号格納部72に格納されている物理ページ番号のページPGしかない状態となっている。
また、仮想ページ番号VPPA1が割り当てられた、物理ページ番号がPPA3であるページPG−3の書き換え回数、つまり回数情報格納部NU−3に格納されている書き換え回数が、閾値格納部73に格納されている閾値thと同じ数値「100000」となっている。
同様に、空き物理ページ番号格納部72に格納されている、物理ページ番号がPPA2であるページPG−2の書き換え回数、つまり回数情報格納部NU−2に格納されている書き換え回数も、閾値格納部73に格納された閾値thと同じ数値となっている。
このような状態において、仮想ページ番号VPPA1が指定されてデータの書き込みが指示されたとする。すなわち、全ての仮想ページ番号が割り当て済みで他に空きページとなっているページPGがなく、かつデータの格納先と空きページ、つまりページPG−3とページPG−2の書き換え回数が閾値thに達している状態で、データの書き込みが指示されたとする。
そのような場合、情報処理システムでは、データ格納場所と空きページの書き換え回数が閾値に達した場合におけるデータ書き込み処理が行なわれる。
以下、図15のフローチャートと図16および図17を参照して、情報処理システムによる、データ格納場所と空きページの書き換え回数が閾値に達した場合におけるデータ書き込み処理について説明する。
ステップS101において、データ処理部101は、書き換え回数格納部62の回数情報格納部NUを参照して、書き換え回数が最も少ないページPGを検索する。
例えば、図14に示した状態でCPU21が仮想ページ番号VPPA1を指定してデータの書き込みを指示すると、データ処理部101は、論物変換情報格納部71の仮想ページ番号VPPA1に対応する物理ページ番号格納部FA−1を参照する。
図14では、物理ページ番号格納部FA−1には、物理ページ番号PPA3が格納されているので、データ格納部32の物理ページ番号PPA3により特定されるページPG−3へのデータの書き込みが指示されたことが分かる。
続いて、データ処理部101は、図14におけるデータの書き込み先であるページPG−3の回数情報格納部NU−3に格納されている書き換え回数「100000」と、閾値格納部73に格納されている閾値thの値「100000」とを比較する。書き換え回数と閾値thとの比較の結果、ページPG−3の書き換え回数は閾値thに達してしまっているので、ページPG−3にデータを書き込むことができない。
そこで、データ処理部101は、空き物理ページ番号格納部72を参照し、そこに格納されている物理ページ番号PPA2に対応するページPG−2を特定する。そして、データ処理部101は、ページPG−2の回数情報格納部NU−2に格納されている書き換え回数「100000」と、閾値格納部73に格納されている閾値thの値「100000」とを比較する。書き換え回数と閾値thとの比較の結果、ページPG−2の書き換え回数は閾値thに達してしまっているので、ページPG−2にデータを書き込むことができない。
さらに、ページPG−2とページPG−3を除く他の全てのページPGにも、既に有効なデータが格納された状態となっている。
このように、指定された仮想ページ番号VPPA1に対応するページPG−3にも、空きページとして確保されているページPG−2にもデータを書き込むことができない場合、新たな空きページとなる、データの書き込みが可能なページPGが検索される。
すなわち、データ処理部101は、書き換え回数格納部62の回数情報格納部NUを参照して、全ページPGのなかから、書き換え回数が最も少ないページPGを新たな空きページとして検索する。
なお、より詳細には、新たな空きページとされるページPGの書き換え回数は、閾値th未満である必要がある。また、新たな空きページとされるページPGは、書き換え回数が閾値th未満であるページPGであれば、最も書き換え回数が少ないページPGでなくてもよい。
図14の例では、回数情報格納部NUに格納された書き換え回数が最も少ないのは、書き換え回数が「1」であるページPG−4乃至ページPG−7である。例えば、データ処理部101は、それらのページPGのなかから、最も物理ページ番号が小さいページPG−4を、新たに空きページとするページPGとして選択する。このページPG−4の書き換え回数は、閾値thよりも小さくなっており、データの書き込みが可能である。
ステップS102において、データ処理部101は、検索の結果得られた物理ページ番号PPA4により特定されるページPG−4に格納されているデータを、現時点で空きページとして確保されているページPG−2にコピーする(移動させる)。
このようにして、ページPG−4のデータを、現時点における空きページであるページPG−2にコピーすることで、最も書き換え回数が少ないページPG−4を、新たな空きページとして用いることができるようになる。
ステップS103において、書き換え回数管理部105は、データが書き込まれた(コピーされた)物理ページ番号がPPA2であるページPG−2の書き換え回数をインクリメントする。すなわち、書き換え回数管理部105は、ページPG−2に対応する回数情報格納部NU−2に格納されている書き換え回数を1だけインクリメントする。
これにより、回数情報格納部NU−2に格納されているページPG−2の書き換え回数は図14に示した状態、すなわち書き換え回数「100000」から、図16に示す状態、すなわち書き換え回数「100001」に変化する。
このようにして、これから空きページとされるページPGのデータが、現時点における空きページにコピーされて、そのコピー先のページPGの書き換え回数が更新されると、データのコピー元の仮想ページ番号が、コピー先のページPGに割り当てられる。
すなわち、ステップS104において、変換情報管理部102は、データのコピーを行なったページPGについて、仮想ページ番号の割り当てを変更する。
例えば、図14の例では、仮想ページ番号VPPA2が割り当てられていたページPG−4のデータが、ページPG−4を空きページとすることを目的として、現時点における空きページであるページPG−2にコピーされた。したがって、データのコピーに伴い、仮想ページ番号VPPA2の割り当て先を、これまでのページPG−4からページPG−2に変更する必要がある。
そこで、変換情報管理部102は、仮想ページ番号VPPA2に対応する物理ページ番号格納部FA−2に、ページPG−2の物理ページ番号PPA2を書き込む。
これにより、仮想ページ番号VPPA2に対応する物理ページ番号格納部FA−2に格納される物理ページ番号は、図14に示した状態から図16に示す状態へと変化する。すなわち、物理ページ番号格納部FA−2に格納される物理ページ番号は、物理ページ番号PPA4から、物理ページ番号PPA2に変更され、その結果、仮想ページ番号VPPA2の割り当て先が、これまでのページPG−4からページPG−2となる。
ステップS105において、空きページ検索部103は、空き物理ページ番号格納部72に格納されている物理ページ番号を、新たに空きページとするページPGの物理ページ番号に変更する。
これにより、空き物理ページ番号格納部72に格納される物理ページ番号は、図14に示した状態から図16に示す状態へと書き換えられる。すなわち、空き物理ページ番号格納部72に格納される物理ページ番号は、物理ページ番号PPA2から物理ページ番号PPA4に変更される。
ステップS106において、書き換え回数管理部105は、メイン管理情報が格納されている物理ページ番号PPA0,PPA1により特定されるページPG−0,PG−1の書き換え回数を1だけインクリメントする。
これにより、回数情報格納部NU−0および回数情報格納部NU−1に格納されている書き換え回数が1インクリメントされ、図14に示した状態での書き換え回数「7」から、図16に示すように書き換え回数「8」へと更新される。
これまでのステップS101からステップS106の処理によって、データ格納部32、書き換え回数格納部62、およびメイン管理情報格納部61の状態は、図14に示した状態から、図16に示した状態へと変化している。
図16の例では、物理ページ番号PPA2のページPG−2に、物理ページ番号PPA4のページPG−4に格納されているデータがコピーされるとともに、仮想ページ番号VPPA2の割り当て先がページPG−4からページPG−2に変更される。
また、空き物理ページ番号格納部72に、新たな空きページの物理ページ番号PPA4が格納され、データの書き込みや更新が行なわれたページPGの回数情報格納部NU−0,NU−1,NU−2に格納されている書き換え回数がインクリメントされている。
以上の処理により、書き換え回数が閾値th未満であるページPG−4を、新たな空きページとして確保できたので、以降において、CPU21により書き込みが指示されたデータのページPG−4への書き込みが行なわれる。
すなわち、ステップS107において、データ処理部101は、空き物理ページ番号格納部72に格納されている物理ページ番号PPA4により特定される空きページ、すなわちページPG−4にCPU21から供給されたデータを書き込む。
CPU21により書き込みが指示されたデータは、本来であれば指定された仮想ページ番号VPPA1に対応するページPG−3に書き込まれるべきである。しかし、上述したように、ページPG−3の書き換え回数は既に閾値thに達しているため、新たに空きページとして確保されたページPG−4にデータが書き込まれる。
ステップS108において、書き換え回数管理部105は、データが書き込まれた物理ページ番号がPPA4であるページPG−4の書き換え回数をインクリメントする。すなわち、書き換え回数管理部105は、ページPG−4に対応する回数情報格納部NU−4に格納されている書き換え回数を1だけインクリメントする。
これにより、回数情報格納部NU−4に格納されているページPG−4の書き換え回数は図16に示した状態、すなわち書き換え回数「1」から、図17に示す状態、すなわち書き換え回数「2」に変化する。
このようにして空きページにデータが書き込まれ、そのページの書き換え回数が更新されると、次に、データが書き込まれたページに対して、仮想ページ番号が割り当てられる。
すなわち、ステップS109において、変換情報管理部102は、データの書き込みを行なったページに仮想ページ番号を割り当てる。
例えば、ステップS107では、書き込み先として仮想ページ番号VPPA1が指定されていたデータは、空きページであるページPG−4に格納されたので、変換情報管理部102は、仮想ページ番号VPPA1の割り当て先をページPG−4に変更する。
具体的には、変換情報管理部102は仮想ページ番号VPPA1に対応する物理ページ番号格納部FA−1に、ページPG−4の物理ページ番号PPA4を書き込むことで、仮想ページ番号VPPA1の割り当て先をページPG−3からページPG−4に変更する。
これにより、仮想ページ番号VPPA1に対応する物理ページ番号格納部FA−1に格納される物理ページ番号は、図16に示した状態から図17に示す状態へと変化する。すなわち、物理ページ番号格納部FA−1に格納される物理ページ番号は、物理ページ番号PPA3から、物理ページ番号PPA4に変更される。
このようにして空きページにデータが書き込まれると、空きページ検索部103により新たな空きページの検索が行なわれる。
すなわち、ステップS110において、空きページ検索部103は新たな空きページを検索し、空き物理ページ番号格納部72に格納される物理ページ番号を更新する。このステップS110では、図7のステップS14と同様の処理が行なわれる。
具体的には、空きページ検索部103は、空き物理ページ番号格納部72に格納される物理ページ番号を1ずつインクリメントしていくことで、新たな空きページを検索する。例えば、図16に示す状態では、空き物理ページ番号格納部72には物理ページ番号PPA4が格納されているので、空きページ検索部103は、その物理ページ番号PPA4をインクリメントしていき、図17に示すように物理ページ番号PPA3とする。
この例では、物理ページ番号PPA5乃至物理ページ番号PP7のページPGには、有効なデータが格納されているので、物理ページ番号がPP7となったとき、さらにインクリメントが行なわれ、物理ページ番号PPA0とされる。また、物理ページ番号PPA0乃至物理ページ番号PPA2にも有効なデータが格納されているので、さらに物理ページ番号はPPA3までインクリメントされることになる。
このとき、物理ページ番号PPA3には有効なデータは格納されていないので、つまり物理ページ番号PPA3には仮想ページ番号も割り当てられておらず、メイン管理情報も格納されていないので、物理ページ番号PPA3が新たな空きページとされる。
図15のフローチャートの説明に戻り、ステップS109およびステップS110の処理によりメイン管理情報格納部61となっているページPGのデータが更新されたので、それらのページPGの書き換え回数が更新される。
すなわち、ステップS111において、書き換え回数管理部105は、メイン管理情報が格納されている物理ページ番号PPA0,PPA1により特定されるページPG−0,PG−1の書き換え回数を1だけインクリメントする。
これにより、回数情報格納部NU−0および回数情報格納部NU−1に格納されている書き換え回数が1インクリメントされ、図16に示した状態での書き換え回数「8」から、図17に示すように書き換え回数「9」へと更新される。
メイン管理情報の格納先のページPGの書き換え回数が更新されると、データ格納場所と空きページの書き換え回数が閾値に達した場合におけるデータ書き込み処理は終了する。このとき、データ格納部32、書き換え回数格納部62、およびメイン管理情報格納部61の状態は、図16に示した状態から、図17に示した状態へと変化している。
図17の例では、物理ページ番号PPA4のページPG−4にデータが書き込まれるとともに、そのページPG−4に対して仮想ページ番号VPPA1が割り当てられている。また、空き物理ページ番号格納部72に、新たな空きページの物理ページ番号PPA3が格納され、データの書き込みや更新が行なわれたページPGの回数情報格納部NU−0,NU−1,NU−4に格納されている書き換え回数がインクリメントされている。
以上のように、情報処理システムは、全仮想ページ番号が割り当て済みの状態で、所定のページPGにデータを書き込もうとした場合に、そのページPGの書き換え回数も空きページの書き換え回数も閾値thに達していたときには、新たな空きページを確保する。そして、情報処理システムは、新たに確保した空きページにデータの書き込みを行なう。
このように、データを書き込むべきページPGと空きページの両方の書き換え回数が閾値thに達した場合に、書き換え回数が最も少ないページPGを、新たな空きページとすることで、各ページPGの書き換え回数を平均化することができる。これにより、書き換え回数に上限がある不揮発性のメインメモリ12の利用効率を向上させ、メインメモリ12の寿命を延ばすことができる。また、その結果、メインメモリ12を用いる情報処理システムの寿命も延ばすことができる。
[閾値更新処理の説明]
さらに、図17に示した状態から、各ページPGへのデータの書き込みが行なわれ、全てのページPGの書き換え回数が閾値thに達し、データ格納部32、書き換え回数格納部62、およびメイン管理情報格納部61の状態が図18に示す状態となったとする。
図18では、書き換え回数格納部62の回数情報格納部NUに格納されている各ページPGの書き換え回数が、閾値格納部73に格納された閾値th以上の値となっている。
このように、全てのページPGの書き換え回数が閾値thに達すると、情報処理システムは、上限値格納部74に格納されているメインメモリ12の書き換え回数の上限値MXに基づいて、新たな閾値thを算出する閾値更新処理を行なう。以下、図19のフローチャートと図20を参照して、情報処理システムによる、閾値更新処理について説明する。
ステップS141において、閾値更新部104は、上限値格納部74に格納されている上限値MXと、閾値格納部73に格納されている現時点の閾値thとに基づいて新たな閾値thを算出する。
例えば、閾値更新部104は、上限値MXに予め定められた定数Aを乗算し、その結果得られた値を現時点の閾値thに加算することで、新たな閾値thを算出する。ここでは、閾値thが上限値MXの10%分の値ずつ増加していくので、定数Aの値は1/10とされる。
したがって、図18の例では、上限値MXが「1000000」,現時点の閾値thが「100000」となっているので、(MX×A)+th=1000000×0.1+100000=200000となり、新たな閾値thの値「200000」が算出される。
ステップS142において、閾値更新部104は算出した新たな閾値thを閾値格納部73に格納することで閾値thを更新し、閾値更新処理は終了する。
例えば、図18に示す状態で、新たな閾値thの値「200000」が算出されると、閾値格納部73に格納される値は、図18における場合の値「100000」から、図20に示すように「200000」に変更される。
閾値thが更新されると、以降においては全てのページPGの書き換え回数が更新後の新たな閾値thに達するまで、新たな閾値thが用いられて上述した各処理が行なわれる。そして、各ページPGの書き換え回数が閾値thに達すると、閾値更新処理が行なわれ、さらに閾値が更新される。
以上のようにして情報処理システムは、各ページPGの書き換え回数が閾値th以上となると、書き換え回数の上限値MXと現時点での閾値thとに基づいて、新たな閾値thを算出し、閾値thを更新する。このように閾値thを更新していくことにより、各ページPGの書き換え回数を平均化することができ、メインメモリ12の利用効率を向上させることができる。これにより、メインメモリ12や情報処理システムの寿命をより長くすることができる。
なお、以上においては、閾値thの値が上限値MXの10%分の値ずつ増加していく例について説明したが、閾値thはどのようにして定められてもよい。例えば、最初の閾値thの値が上限値MXの50%の値とされ、1度目の閾値thの更新により、閾値thが上限値MXの値とされるようにしてもよい。この場合、1度目の閾値の更新により、閾値thが上限値MXとなるので、閾値thの更新は1度だけ行なわれることになる。
また、以上においては、データ格納部32の各領域がページを単位として管理されると説明したが、大きさの異なる各領域について書き換え回数が保持され、管理されるようにしてもよい。
〈第1の実施の形態の変形例1〉
[情報処理システムの構成]
また、以上においては、メインメモリ12内にプログラムが格納されるプログラム格納部31が設けられる場合について説明したが、CPU21が実行するプログラムの格納場所はメインメモリ12内に限らず、どこであってもよい。
例えば、プログラムがメインメモリ12とは異なる他のメモリに格納される場合、情報処理システムは図21に示すように構成される。なお、図21において図1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
図21に示す情報処理システムは、制御部11、メインメモリ12、バス13、およびプログラム格納部201から構成され、制御部11、メインメモリ12、およびプログラム格納部201は、バス13を介して相互に接続されている。
この情報処理システムでは、不揮発性で、かつ書き換え回数に上限があるメインメモリ12には、プログラムの格納領域は設けられておらず、データ格納部32のみが設けられている。そして、データ格納部32には、管理情報格納部41が設けられている。
また、バス13に接続されたプログラム格納部201は、不揮発性のメモリであり、プログラム格納部201にはCPU21により実行されるプログラムが格納されている。
制御部11には、CPU21、メインメモリ管理制御部22、および不揮発性メモリ管理制御部211が設けられており、不揮発性メモリ管理制御部211はプログラム格納部201へのアクセスを行なう。すなわち、不揮発性メモリ管理制御部211はプログラム格納部201からプログラムを読み出し、CPU21は不揮発性メモリ管理制御部211により読み出されたプログラムを実行する。
〈第1の実施の形態の変形例2〉
[情報処理システムの構成]
また、情報処理システムにおいて、管理情報がメインメモリ12とは異なるメモリに格納されるようにしてもよい。そのような場合、情報処理システムは、例えば図22に示すように構成される。なお、図22において図21における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
図22に示す情報処理システムは、制御部11、メインメモリ12、バス13、および不揮発性メモリ241から構成され、制御部11、メインメモリ12、および不揮発性メモリ241は、バス13を介して相互に接続されている。
この情報処理システムでは、不揮発性で、かつ書き換え回数に上限があるメインメモリ12には、プログラムの格納領域は設けられておらず、データ格納部32のみが設けられている。そして、データ格納部32には、メインメモリ12の管理情報は格納されず、CPU21が各種の処理を実行するときにアクセスするデータのみが格納される。したがって、データ格納部32の各ページPGには、管理情報は格納されない。
また、バス13に接続された不揮発性メモリ241は、書き換え回数の制限がない不揮発性のメモリであり、不揮発性メモリ241には、管理情報格納部251およびプログラム格納部252が設けられている。
管理情報格納部251には、上述したメイン管理情報や、データ格納部32の各ページPGの書き換え回数からなる、メインメモリ12の管理情報が格納されている。また、プログラム格納部252にはCPU21により実行されるプログラムが格納されている。
制御部11には、CPU21、メインメモリ管理制御部22、および不揮発性メモリ管理制御部211が設けられている。制御部11では、メインメモリ管理制御部22は、メインメモリ12へのアクセスを行い、不揮発性メモリ管理制御部211は不揮発性メモリ241へのアクセスを行なう。
不揮発性メモリ管理制御部211は、不揮発性メモリ241の管理情報格納部251にアクセスして管理情報を参照したり、更新したりするとともに、プログラム格納部252に格納されているプログラムを読み出す。
この情報処理システムでは、不揮発性メモリ管理制御部211が管理情報格納部251に格納された管理情報にアクセスするため、不揮発性メモリ管理制御部211には、図5の変換情報管理部102乃至書き換え回数管理部105の機能が備えられている。
また、この例では、管理情報は書き換え回数の制限がない不揮発性メモリ241に格納されているため、書き換え回数の平均化の対象となるのは、メインメモリ12のデータ格納部32を構成する各ページPGのみとなる。
なお、図22の例では、管理情報格納部251に管理情報が格納される例について説明したが、管理情報格納部251に管理情報のうちのメイン管理情報のみが格納され、管理情報としての書き換え回数はデータ格納部32に格納されるようにしてもよい。そのような場合には、管理情報格納部251にメイン管理情報格納部61が設けられ、データ格納部32に書き換え回数格納部62が設けられることになる。
〈第1の実施の形態の変形例3〉
[情報処理システムの構成]
さらに、情報処理システムにおいて、CPU21により実行されるプログラムが、制御部11に格納されるようにしてもよい。そのような場合、情報処理システムは、例えば図23に示すように構成される。なお、図23において図1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
図23の情報処理システムでは、制御部11内に、CPU21により実行されるプログラムを格納するプログラム格納部281が設けられている。したがって、CPU21は、直接、プログラム格納部281にアクセスしてプログラムを実行する。
また、メインメモリ12には、プログラムを格納するための領域は設けられておらず、データ格納部32のみが設けられている。そして、データ格納部32には管理情報が格納される管理情報格納部41が設けられている。
〈第2の実施の形態〉
[メインメモリの構成]
さらに、以上においては、メインメモリ12と、メインメモリ12の管理等を行なう制御部11とが設けられる情報処理システムについて説明したが、メインメモリ内に、メインメモリを管理する構成やデータへのアクセス等を行う構成が設けられてもよい。
そのような場合、メインメモリは、例えば図24に示すように構成される。なお、図24において図1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
図24のメインメモリ301は、CPU21、メモリ管理制御部311、バス13、およびメモリ部312から構成され、CPU21、メモリ管理制御部311、およびメモリ部312は、バス13により相互に接続されている。
メモリ部312は、不揮発性で、かつ書き換え回数に上限があるメモリであり、メモリ部312には、プログラム格納部31およびデータ格納部32が設けられている。また、データ格納部32には、管理情報格納部41も設けられている。
メモリ管理制御部311は、図1のメインメモリ管理制御部22に対応し、バス13を介してメモリ部312のプログラム格納部31やデータ格納部32にアクセスするとともに、メモリ部312から読み出したデータ等を必要に応じてCPU21に供給する。すなわち、メモリ管理制御部311には、図5のデータ処理部101乃至書き換え回数管理部105と同じ構成が設けられている。
CPU21は、バス13を介してメモリ管理制御部311から、データやプログラムの供給を受けるとともに、必要に応じてメモリ管理制御部311に対して、メモリ部312へのデータの書き込みや読み出しを指示する。
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図25は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
コンピュータにおいて、CPU501,ROM(Read Only Memory)502,RAM503は、バス504により相互に接続されている。
バス504には、さらに、入出力インターフェース505が接続されている。入出力インターフェース505には、入力部506、出力部507、記憶部508、通信部509、及びドライブ510が接続されている。
入力部506は、キーボード、マウス、マイクロホンなどよりなる。出力部507は、ディスプレイ、スピーカなどよりなる。記憶部508は、ハードディスクや不揮発性のメモリなどよりなる。通信部509は、ネットワークインターフェースなどよりなる。ドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア511を駆動する。
以上のように構成されるコンピュータでは、CPU501が、例えば、記憶部508に記憶されているプログラムを、入出力インターフェース505及びバス504を介して、RAM503にロードして実行することにより、例えば図1のメインメモリ管理制御部22等が実現され、上述した一連の処理が行われる。
コンピュータ(CPU501)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア511に記憶して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア511をドライブ510に装着することにより、入出力インターフェース505を介して、記憶部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記憶部508にインストールすることができる。その他、プログラムは、ROM502や記憶部508に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、本技術は、以下の構成とすることも可能である。
[1]
書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理する書き換え回数管理部と、
所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込むデータ処理部と
を備える情報処理装置。
[2]
全ての前記ページの書き換え回数が前記閾値以上となった場合、前記閾値より大きく、かつ前記上限値以下の新たな閾値を算出し、前記閾値を更新する閾値更新部をさらに備える
[1]に記載の情報処理装置。
[3]
前記閾値更新部は、前記上限値に対して定められた固定値を前記閾値に加算することで、新たな閾値を算出する
[2]に記載の情報処理装置。
[4]
前記データ処理部は、前記所定ページへの前記書き込みデータの書き込みが指示され、前記所定ページの書き換え回数、および有効データが格納されていない前記ページの書き換え回数が前記閾値に達している場合、有効データが格納されている前記ページのうち、書き換え回数が前記閾値に達していない前記ページを検索するとともに、前記検索により得られた前記ページに格納されているデータを、有効データが格納されていない前記ページに移動させる
[1]乃至[3]に記載の情報処理装置。
[5]
前記データ処理部は、前記検索により得られた前記ページのデータの移動後、前記書き込みデータを前記検索により得られた前記ページに書き込む
[4]に記載の情報処理装置。
[6]
各前記ページの書き換え回数は、前記主記憶装置に格納されている
[1]乃至[5]に記載の情報処理装置。
[7]
各前記ページの書き換え回数は、前記ページに対して一意に定められた位置、または前記ページ位置から演算により求まる位置に格納されている
[6]に記載の情報処理装置。
[8]
前記ページに対して仮想ページ番号を割り当てるとともに、前記ページの前記仮想ページ番号と物理ページ番号の対応を示す論物変換情報を管理する変換情報管理部をさらに備える
[1]乃至[7]に記載の情報処理装置。
[9]
前記変換情報管理部は、前記所定ページに対して所定仮想ページ番号が割り当てられており、前記所定仮想ページ番号が書き込み先として指定された前記書き込みデータが、前記他のページに書き込まれた場合、前記所定仮想ページ番号の割り当てを前記所定ページから前記他のページに変更する
[8]に記載の情報処理装置。
[10]
各前記ページの書き換え回数と、前記論物変換情報とは異なる領域に格納されている
[8]または[9]に記載の情報処理装置。
[11]
前記論物変換情報または前記閾値の少なくとも一方は前記ページに格納されている
[10]に記載の情報処理装置。
11 制御部, 12 メインメモリ, 21 CPU, 22 メインメモリ管理制御部, 32 データ格納部, 41 管理情報格納部, 101 データ処理部, 102 変換情報管理部, 103 空きページ検索部, 104 閾値更新部, 105 書き換え回数管理部

Claims (13)

  1. 書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理する書き換え回数管理部と、
    所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込むデータ処理部と
    を備える情報処理装置。
  2. 全ての前記ページの書き換え回数が前記閾値以上となった場合、前記閾値より大きく、かつ前記上限値以下の新たな閾値を算出し、前記閾値を更新する閾値更新部をさらに備える
    請求項1に記載の情報処理装置。
  3. 前記閾値更新部は、前記上限値に対して定められた固定値を前記閾値に加算することで、新たな閾値を算出する
    請求項2に記載の情報処理装置。
  4. 前記データ処理部は、前記所定ページへの前記書き込みデータの書き込みが指示され、前記所定ページの書き換え回数、および有効データが格納されていない前記ページの書き換え回数が前記閾値に達している場合、有効データが格納されている前記ページのうち、書き換え回数が前記閾値に達していない前記ページを検索するとともに、前記検索により得られた前記ページに格納されているデータを、有効データが格納されていない前記ページに移動させる
    請求項1に記載の情報処理装置。
  5. 前記データ処理部は、前記検索により得られた前記ページのデータの移動後、前記書き込みデータを前記検索により得られた前記ページに書き込む
    請求項4に記載の情報処理装置。
  6. 各前記ページの書き換え回数は、前記主記憶装置に格納されている
    請求項5に記載の情報処理装置。
  7. 各前記ページの書き換え回数は、前記ページに対して一意に定められた位置、または前記ページ位置から演算により求まる位置に格納されている
    請求項6に記載の情報処理装置。
  8. 前記ページに対して仮想ページ番号を割り当てるとともに、前記ページの前記仮想ページ番号と物理ページ番号の対応を示す論物変換情報を管理する変換情報管理部をさらに備える
    請求項1に記載の情報処理装置。
  9. 前記変換情報管理部は、前記所定ページに対して所定仮想ページ番号が割り当てられており、前記所定仮想ページ番号が書き込み先として指定された前記書き込みデータが、前記他のページに書き込まれた場合、前記所定仮想ページ番号の割り当てを前記所定ページから前記他のページに変更する
    請求項8に記載の情報処理装置。
  10. 各前記ページの書き換え回数と、前記論物変換情報とは異なる領域に格納されている
    請求項9に記載の情報処理装置。
  11. 前記論物変換情報または前記閾値の少なくとも一方は前記ページに格納されている
    請求項10に記載の情報処理装置。
  12. 書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理し、
    所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込む
    ステップを含む情報処理方法。
  13. 書き換え回数に上限がある不揮発性の主記憶装置を構成する各ページの書き換え回数を管理し、
    所定ページへの書き込みデータの書き込みが指示され、前記所定ページの書き換え回数が、前記主記憶装置の書き換え回数の上限値未満である閾値に達している場合、有効データが格納されておらず、書き換え回数が前記閾値に達していない、前記所定ページとは異なる他のページに前記書き込みデータを書き込む
    ステップを含む処理をコンピュータに実行させるプログラム。
JP2012129671A 2012-06-07 2012-06-07 情報処理装置および方法、並びにプログラム Pending JP2013254357A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012129671A JP2013254357A (ja) 2012-06-07 2012-06-07 情報処理装置および方法、並びにプログラム
US13/894,658 US9146859B2 (en) 2012-06-07 2013-05-15 Information processing apparatus, method, and program for improving use efficiency of a storage apparatus
CN201310211574.9A CN103489482A (zh) 2012-06-07 2013-05-31 信息处理设备、方法和程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012129671A JP2013254357A (ja) 2012-06-07 2012-06-07 情報処理装置および方法、並びにプログラム

Publications (1)

Publication Number Publication Date
JP2013254357A true JP2013254357A (ja) 2013-12-19

Family

ID=49716221

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012129671A Pending JP2013254357A (ja) 2012-06-07 2012-06-07 情報処理装置および方法、並びにプログラム

Country Status (3)

Country Link
US (1) US9146859B2 (ja)
JP (1) JP2013254357A (ja)
CN (1) CN103489482A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3588305A4 (en) * 2017-04-07 2020-04-01 Panasonic Intellectual Property Management Co., Ltd. NON-VOLATILE STORAGE WITH INCREASED NUMBER OF USEFUL TIMES
US11307986B1 (en) * 2021-06-10 2022-04-19 The Florida International University Board Of Trustees Machine learning based tiered memory systems and methods

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
JP2007331356A (ja) * 2006-06-19 2007-12-27 Ricoh Co Ltd 画像形成装置
US7876616B2 (en) * 2007-11-12 2011-01-25 Cadence Design Systems, Inc. System and method for wear leveling utilizing a relative wear counter
US8122179B2 (en) * 2007-12-14 2012-02-21 Silicon Motion, Inc. Memory apparatus and method of evenly using the blocks of a flash memory
US8275928B2 (en) * 2008-05-15 2012-09-25 Silicon Motion, Inc. Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables
KR20100091544A (ko) 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법

Also Published As

Publication number Publication date
US9146859B2 (en) 2015-09-29
US20130332661A1 (en) 2013-12-12
CN103489482A (zh) 2014-01-01

Similar Documents

Publication Publication Date Title
TWI674502B (zh) 記憶體系統及控制方法
JP2020046963A (ja) メモリシステムおよび制御方法
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US9678676B2 (en) Method for storage devices to achieve low write amplification with low over provision
WO2017000658A1 (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
TW201915741A (zh) 記憶體系統及控制非揮發性記憶體之控制方法
JP6403164B2 (ja) メモリシステム
JP6785204B2 (ja) メモリシステムおよび制御方法
JP2018049522A (ja) メモリシステム及び制御方法
JP2020123041A (ja) メモリシステムおよび制御方法
CN108228482B (zh) 用于管理存储系统中的缓存设备的方法和系统
JP2008192154A (ja) メモリマッピング方法およびメモリマッピングシステム
US10083181B2 (en) Method and system for storing metadata of log-structured file system
JP2020123038A (ja) メモリシステムおよび制御方法
US10268592B2 (en) System, method and computer-readable medium for dynamically mapping a non-volatile memory store
JP2021034091A (ja) メモリシステムおよび制御方法
JP2015001909A (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
JP2020123040A (ja) メモリシステムおよび制御方法
JP2018160189A (ja) メモリシステム
JP2011186562A (ja) メモリ管理装置及び方法
JP2011186561A (ja) メモリ管理装置
JP2020123039A (ja) メモリシステムおよび制御方法
JP2016085677A (ja) メモリ管理方法、メモリ管理プログラム及び情報処理装置
JP5858081B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP2013254357A (ja) 情報処理装置および方法、並びにプログラム