JPWO2019017017A1 - ウェアレベリング処理を行うメモリコントローラ - Google Patents

ウェアレベリング処理を行うメモリコントローラ Download PDF

Info

Publication number
JPWO2019017017A1
JPWO2019017017A1 JP2019530874A JP2019530874A JPWO2019017017A1 JP WO2019017017 A1 JPWO2019017017 A1 JP WO2019017017A1 JP 2019530874 A JP2019530874 A JP 2019530874A JP 2019530874 A JP2019530874 A JP 2019530874A JP WO2019017017 A1 JPWO2019017017 A1 JP WO2019017017A1
Authority
JP
Japan
Prior art keywords
unit
management unit
section
write amount
target
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.)
Granted
Application number
JP2019530874A
Other languages
English (en)
Other versions
JP7063900B2 (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.)
Sony Semiconductor Solutions Corp
Original Assignee
Sony Semiconductor Solutions 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 Semiconductor Solutions Corp filed Critical Sony Semiconductor Solutions Corp
Publication of JPWO2019017017A1 publication Critical patent/JPWO2019017017A1/ja
Application granted granted Critical
Publication of JP7063900B2 publication Critical patent/JP7063900B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • 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
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

アクセス単位であるページ毎に書込み回数にばらつきが生じ得るメモリにおいて、効率のよいウェアレベリング処理を行う。アドレス変換部は、メモリのアクセス単位を複数まとめた管理単位ごとに、ホストコマンドの論理アドレスとメモリの物理アドレスとの間でアドレス変換を行う。書込み量計測部は、管理単位のそれぞれにおいてアクセス単位ごとの書込み量を計測する。平均化処理部は、書込み量計測部によって計測された書込み量に基づいて、管理単位のうちから対象管理単位を選択して、その対象管理単位のアドレス変換における物理アドレスの割当を変更する。そして、平均化処理部は、対象管理単位におけるアクセス単位の書込み量を平均化させる処理を行う。

Description

本技術は、メモリコントローラに関する。詳しくは、メモリに対する書込みを制御するメモリコントローラ、メモリシステム、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
書込み回数の上限がある不揮発性メモリを搭載した不揮発性記憶装置では、書込み回数を平均化するウェアレベリング処理が行われる。不揮発性メモリの一例であるNANDフラッシュメモリでは、データの上書きは不可能であり、読出しおよび書込みのアクセス単位であるページを複数まとめたブロックを消去単位としており、ウェアレベリング処理はブロック単位で行われる。例えば、書込み頻度が高いブロックの消去回数が100の倍数になる度にウェアレベリング処理を行う不揮発性メモリが提案されている(例えば、特許文献1参照。)。
特開2012−247848号公報
上述の従来技術では、ブロックの消去回数を計測して、その消去回数に基づいてウェアレベリング処理を行っている。この従来技術が前提とするNANDフラッシュメモリでは、データの上書きが不可能なため、ブロック内のページ間に書込み回数のばらつきは発生せず、ブロックの消去回数を平均化することが目的となる。一方、データの上書きが可能な不揮発性メモリを想定すると、読出しおよび書込みのアクセス単位であるページ毎に書込み回数にばらつきが生じるおそれがある。しかしながら、ページサイズはブロックサイズよりも小さいため、ページの書込み回数を個別に扱ってウェアレベリング処理を行うとその対象数が膨大となり、管理が煩雑になるという問題がある。
本技術はこのような状況に鑑みて生み出されたものであり、アクセス単位であるページ毎に書込み回数にばらつきが生じ得るメモリにおいて、効率のよいウェアレベリング処理を行うことを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換部と、上記管理単位のそれぞれにおいて上記アクセス単位ごとの書込み量を計測する書込み量計測部と、上記計測された書込み量に基づいて上記管理単位のうちから対象管理単位を選択して当該対象管理単位の上記アドレス変換における物理アドレスの割当を変更して、上記対象管理単位における上記アクセス単位の書込み量を平均化させる平均化処理部とを具備するメモリコントローラ、メモリシステム、情報処理システム、および、そのメモリ制御方法である。これにより、書込み量に基づいて選択された対象管理単位の物理アドレスの割当を変更して、その対象管理単位におけるアクセス単位の書込み量を平均化させるという作用をもたらす。
また、この第1の側面において、上記平均化処理部は、上記管理単位における上記アクセス単位の書込み量がその管理単位において偏りを生じた場合に、その管理単位を上記対象管理単位として選択するようにしてもよい。これにより、管理単位におけるアクセス単位の書込み量に偏りを生じた場合に、その管理単位を対象管理単位として選択するという作用をもたらす。
また、この第1の側面において、上記平均化処理部は、上記管理単位における上記アクセス単位の書込み量の最大値がその管理単位における上記アクセス単位の書込み量の平均値よりも所定の閾値を超えて大きい場合に、その管理単位を上記対象管理単位として選択するようにしてもよい。これにより、管理単位におけるアクセス単位の書込み量の最大値が、その管理単位におけるアクセス単位の書込み量の平均値よりも所定の閾値を超えて大きい場合にその管理単位を対象管理単位として選択するという作用をもたらす。
また、この第1の側面において、上記メモリの論理アドレス空間は、使用中領域と未使用領域とに分けて管理され、上記平均化処理部は、上記計測された書込み量に基づいて上記対象管理単位の新たな割当先を上記未使用領域から選択して上記使用中領域として確保するようにしてもよい。これにより、論理アドレス空間の管理を容易にするという作用をもたらす。
また、この第1の側面において、上記平均化処理部は、上記未使用領域において上記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる上記管理単位を上記対象管理単位の新たな割当先として選択するようにしてもよい。これにより、書込み量の総数が全体の平均値よりも所定の閾値以下となる管理単位を、対象管理単位の新たな割当先として選択するという作用をもたらす。
また、この第1の側面において、上記平均化処理部は、上記対象管理単位の物理アドレスの割当が変更された際、上記使用中領域において上記新たな割当先以外で上記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる上記管理単位を第2の対象管理単位として選択し、上記未使用領域において上記アクセス単位の書込み量の総数が最大となる上記管理単位を上記第2の対象管理単位の新たな割当先として選択して、上記第2の対象管理単位の上記アドレス変換における物理アドレスの割当を変更するようにしてもよい。これにより、対象管理単位の物理アドレス割当変更に伴う未使用領域における書込み量の増大を中和するという作用をもたらす。
また、この第1の側面において、物理アドレスの割当変更対象となった旨を上記管理対象ごとに保持するフラグをさらに具備し、上記平均化処理部は、上記新たな割当先に対応する上記フラグを物理アドレスの割当変更対象となった旨にセットし、上記使用中領域において上記第2の対象管理単位を選択する際に上記フラグがセットされているものを選択対象から除外するようにしてもよい。これにより、新たな割当先となった管理対象がすぐに第2の対象管理単位として選択されることを回避するという作用をもたらす。
また、この第1の側面において、上記平均化処理部は、上記対象管理単位の割当変更前の物理アドレスを上記未使用領域に割り当ててもよく、また、上記対象管理単位の割当変更前の物理アドレスを上記使用中領域に割り当てて他の上記管理対象のために使用するようにしてもよい。
また、この第1の側面において、上記平均化処理部は、上記対象管理単位の上記アクセス単位の書込み量の総数が上記管理対象の全体の平均値よりも所定の閾値以上大きい場合には上記対象管理単位の割当変更前の物理アドレスを上記使用中領域に割り当てて他の上記管理対象のために使用し、それ以外の場合には上記対象管理単位の割当変更前の物理アドレスを上記未使用領域に割り当てるようにしてもよい。これにより、対象管理単位の総書込み量に応じて使用中領域または未使用領域に割り当てるという作用をもたらす。
また、この第1の側面において、上記管理単位における上記アクセス単位の配置順序を規定する情報を上記管理単位ごとに保持して、上記対象管理単位の物理アドレスの割当変更の前後においては上記対象管理単位における上記アクセス単位の配置順序として異なる順序を選択する選択部をさらに具備してもよい。これにより、対象管理単位の物理アドレスの割当変更の前後において、アクセス単位の配置順序を異なるものにするという作用をもたらす。
また、この第1の側面において、上記アクセス単位の配置順序を規定する情報は、互いに異なる複数の乱数列であってもよい。これにより、乱数列を用いてアクセス単位の配置順序を規定するという作用をもたらす。
本技術によれば、アクセス単位であるページ毎に書込み回数にばらつきが生じ得るメモリにおいて、効率のよいウェアレベリング処理を行うことができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の実施の形態における情報処理システムの一構成例を示す図である。 本技術の第1の実施の形態におけるメモリコントローラ200の一構成例を示す図である。 本技術の実施の形態におけるセクションとページの関係例を示す図である。 本技術の実施の形態における論理セクションと物理セクションの関係例を示す図である。 本技術の第1の実施の形態における書込み量情報テーブル220の第1の例を示す図である。 本技術の第1の実施の形態における書込み量情報テーブル220の第2の例を示す図である。 本技術の第1の実施の形態における平均化処理の概要例を示す図である。 本技術の第1の実施の形態におけるメモリアクセス処理の処理手順例を示す流れ図である。 本技術の第1の実施の形態における平均化処理の処理手順例を示す流れ図である。 本技術の第1の実施の形態におけるセクション内平均化処理(ステップS920)の処理手順例を示す流れ図である。 本技術の第2の実施の形態における書込み量情報テーブル220の第1の例を示す図である。 本技術の第2の実施の形態における書込み量情報テーブル220の第2の例を示す図である。 本技術の第2の実施の形態における平均化処理の概要例を示す図である。 本技術の第2の実施の形態における平均化処理の処理手順例を示す流れ図である。 本技術の第2の実施の形態におけるセクション内平均化処理(ステップS930)の処理手順例を示す流れ図である。 本技術の第2の実施の形態におけるセクション間平均化処理(ステップS940)の処理手順例を示す流れ図である。 本技術の第3の実施の形態における平均化処理の概要例を示す図である。 本技術の第3の実施の形態における平均化処理の処理手順例を示す流れ図である。 本技術の第3の実施の形態におけるセクション内平均化処理(ステップS950)の処理手順例を示す流れ図である。 本技術の第3の実施の形態におけるセクション間平均化処理(ステップS960)の処理手順例を示す流れ図である。 本技術の第4の実施の形態における平均化処理の処理手順例を示す流れ図である。 本技術の第5の実施の形態におけるメモリコントローラ200の一構成例を示す図である。 本技術の第5の実施の形態におけるページ配置順序の変更態様の例を示す図である。 本技術の第5の実施の形態における乱数列の一例を示す図である。 本技術の第5の実施の形態におけるアドレス変換テーブル250の構成例を示す図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(セクション内のページ間の書込み量を平均化する例)
2.第2の実施の形態(フリー領域の書込み量を減らす処理を加えた例)
3.第3の実施の形態(平均化処理の対象セクションを再利用する例)
4.第4の実施の形態(平均化処理の対象セクションの書込み量が多い場合に再利用する例)
5.第5の実施の形態(乱数列を変更してセクション内のページ順序を変化させる例)
<1.第1の実施の形態>
[情報処理システムの構成]
図1は、本技術の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、メモリ300とから構成される。メモリコントローラ200およびメモリ300はメモリシステム400を構成する。
ホストコンピュータ100は、メモリ300に対してデータのリード処理およびライト処理等を指令するコマンドを発行するものである。このホストコンピュータ100は、ホストコンピュータ100としての処理を実行するプロセッサと、メモリコントローラ200との間のやりとりを行うためのコントローラインターフェースとを備える。ホストコンピュータ100とメモリコントローラ200との間は信号線109によって接続される。
メモリコントローラ200は、ホストコンピュータ100からのコマンドに従って、メモリ300に対するリクエスト制御を行うものである。メモリコントローラ200とメモリ300との間は信号線309によって接続される。
メモリ300は、制御部およびメモリセルアレイを備える。このメモリ300の制御部は、メモリコントローラ200からのリクエストに従ってメモリセルへのアクセスを行う。メモリ300のメモリセルアレイは、複数のメモリセルからなるメモリセルアレイであり、ビット毎に2値の何れかの値を記憶するメモリセル、または、複数ビット毎に多値の何れかの値を記憶するメモリセルが2次元状(マトリクス状)に多数配列されている。このメモリセルアレイは、複数バイトサイズを有するページを読出しまたは書込みのアクセス単位とし、消去することなくデータの上書きが可能な不揮発性メモリ(NVM:Non-Volatile Memory)を想定する。
[メモリコントローラの構成]
図2は、本技術の第1の実施の形態におけるメモリコントローラ200の一構成例を示す図である。このメモリコントローラ200は、書込み量計測部210と、書込み量情報テーブル220と、平均化処理部230と、セクション間コピー処理部240と、アドレス変換テーブル250と、アドレス変換部260と、メモリ制御部290とを備える。また、このメモリコントローラ200は、ホストコンピュータ100との間のやりとりを行うためのホストインターフェース201と、メモリ300との間のやりとりを行うためのメモリインターフェース209とを備える。
書込み量計測部210は、メモリ300の各ページの書込み量を計測するものである。上述のように、メモリ300のメモリセルアレイにおける読出しまたは書込みのアクセス単位はページである。したがって、ページに関する書込み量と書込み回数は比例関係にあり、以下では同義であるものとして取り扱う。一方、ページを単位とする書込み量をそのまま比較した場合には比較対象が膨大となり管理が煩雑になるため、複数のページをまとめた単位として、セクションと称する管理単位を新たに導入する。
書込み量情報テーブル220は、書込み量計測部210によって計測された書込み量に関する情報である書込み量情報を保持するテーブルである。この書込み量情報テーブル220に保持される書込み量情報の内容については後述する。
平均化処理部230は、書込み量情報テーブル220に保持される書込み量情報に基づいて対象となるセクションを選択して、その対象セクションに含まれるページの書込み量を平均化するウェアレベリング処理を行うものである。そのために、この平均化処理部230は、その対象セクションのアドレス変換における物理アドレスの割当を変更して、それ以降に書込みがなされるメモリ300の物理アドレスをそれまでとは異なるものに変更する。
セクション間コピー処理部240は、平均化処理部230による平均化処理を実現するために、対象セクションに書き込まれているデータを、割当変更先のセクションにコピーする処理を行うものである。
アドレス変換テーブル250は、ホストコンピュータ100からのコマンドに含まれる論理アドレスとメモリ300の物理アドレスとの対応関係を記憶するテーブルである。アドレス変換部260は、アドレス変換テーブル250を参照して、ホストコンピュータ100からのコマンドに含まれる論理アドレスをメモリ300の物理アドレスに変換するものである。
メモリ制御部290は、メモリ300に対するアクセスを制御するものである。このメモリ制御部290は、アドレス変換部260によって変換された物理アドレスに従って、メモリ300にアクセスを行う。また、メモリ制御部290は、セクション間コピー処理部240からの指示に従って、平均化処理の対象セクションに書き込まれているデータを割当変更先のセクションにコピーするように、メモリ300にアクセスを行う。
[セクション]
図3は、本技術の実施の形態におけるセクションとページの関係例を示す図である。ここでは、1GB(ギガバイト)のメモリ空間を想定する。そして、このメモリ空間において、読出しまたは書込みのアクセス単位であるページのサイズを4KB(キロバイト)とする。この場合、メモリ空間における総ページ数は256Kページとなる。メモリ300におけるページ間の書込み量の偏りを検出するためには、これら256Kページの書込み量を比較してそれらを平均化させることが考えられるが、その場合には比較量が膨大となり管理が煩雑となる。
そこで、この実施の形態では、複数のページをまとめたセクションを管理単位としてページの書込み量の平均化を行う。この例では、8ページをまとめて1つのセクションとする。すなわち、1セクションに相当するデータ量は32KBとなる。また、1GBのメモリ空間はセクション#0から#32767の32K(=32768)セクションに分割して管理される。
図4は、本技術の実施の形態における論理セクションと物理セクションの関係例を示す図である。論理アドレス空間は、ユーザ領域とフリー領域とに分けて管理される。ユーザ領域は、ユーザの使用領域として割り当てられた使用中領域である。一方、フリー領域は、ユーザの使用領域として割り当てられていない未使用領域である。なお、ユーザ領域は、特許請求の範囲に記載の使用中領域の一例である。また,フリー領域は、特許請求の範囲に記載の未使用領域の一例である。
この例では、ユーザ領域は0.9GB(921.5MB)のユーザ領域であり、フリー領域は0.1GB(102.5MB)の領域である。このとき、ユーザ領域は論理セクション#0から#29487の29488セクションであり、フリー領域は論理セクション#29488から#32767の3280セクションである。
これら論理セクションは、メモリ300の物理セクションに割り当てられる。この論理セクションと物理セクションの対応関係はアドレス変換テーブル250に記憶される。このアドレス変換テーブル250に従って、アドレス変換部260が論理セクションから物理セクションに変換を行う。
[書込み量情報]
図5は、本技術の第1の実施の形態における書込み量情報テーブル220の第1の例を示す図である。この第1の例による書込み量情報は、全ての物理セクション毎に書込み量情報を有する場合の例である。この第1の例では、物理セクションのそれぞれに対応して、その物理セクションに含まれる8つの物理ページの各々のページ書込み量と、その物理セクションの総書込み量とを記憶する。
ページ書込み量はページ毎の書込み量であり、平均化処理が行われる度にゼロに初期化される。ページ書込み量は、物理セクション内の書込み量のページ間の偏りを検出するために用いられる。
セクション総書込み量はその物理セクションに発生した書込み量を全て加算した値であり、初期化されることは想定していない。このセクション総書込み量は、平均化処理において物理セクションを選択するために用いられる。
ページ書込み量の偏りは、例えば、あるセクションにおけるページ書込み量の平均値と比較して、書込み量が所定の閾値αを超えて大きい場合に検出される。すなわち、書込みが発生したセクションにおいて、次式が成立した場合に、そのセクションは平均化処理の対象セクションとして選択される。
最大ページ書込み量 − ページ書込み量の平均値 > α
上式において、閾値αは、例えば1024乃至2048程度であることが想定され、この範囲において適切な効果が得られるものと考えられる。一例として、セクション内の特定のページに書込みが発生した場合を想定して、その書込み発生ページのページ数を変化させ、平均書込み量との差分がα=1024回(ページ)に達するまでの書込み繰り返し回数を求めると以下のようになる。ただし、その書込み発生ページ間では、均等に書込みが生じたものと仮定する。
書込み発生ページ数=1: 1170− 146=1024
書込み発生ページ数=2: 1365− 341=1024
書込み発生ページ数=3: 1638− 614=1024
書込み発生ページ数=4: 2048−1024=1024
書込み発生ページ数=5: 2730−1706=1024
書込み発生ページ数=6: 4096−3072=1024
書込み発生ページ数=7: 8192−7168=1024
書込み発生ページ数=8: 0(セクション内の全ページに均等)
これによれば、例えば、書込みが特定の1ページに集中した場合には、その書込み量が1170回になった時点でページ書込み量の偏りが検出される。一方、書込みが特定の5ページに集中した場合には、その書込み量が2730回になった時点でページ書込み量の偏りが検出される。すなわち、セクション内で集中した特定のページ数が少ないほど、平均書込み量との差分の変化が大きい。したがって、セクション総書込み量が同じであっても、セクション内で集中した書込み発生ページ数が少ないほど、ウェアレベリング処理を早く開始する必要があることがわかる。
図6は、本技術の第1の実施の形態における書込み量情報テーブル220の第2の例を示す図である。この第2の例では、上述の第1の例と同様に、全ての物理セクション毎に物理セクションの総書込み量を記憶する。一方、この第2の例では、上述の第1の例と異なり、それ以外の情報はユーザ領域の論理セクション毎に記憶される。すなわち、ユーザ領域の論理セクションのそれぞれに対応して、その論理セクションに含まれる8つの論理ページの各々のページ書込み量を記憶する。
総書込み量はユーザ領域およびフリー領域の両者について参照されるが、それ以外の情報については使用中のユーザ領域が対象となるため、後者のみを論理アドレスにより管理することが可能である。
[動作]
図7は、本技術の第1の実施の形態における平均化処理の概要例を示す図である。ここでは、ページ間の書込み量の偏りを有する論理セクションとしてセクションAが選択された場合を想定する。その際、このセクションAの物理アドレスとして物理セクションPAが割り当てられていたものとする。すなわち、アドレス変換テーブル250には、ユーザ領域の論理セクションLU1に対応して物理セクションPAが記憶されていたものとする。
ここで、セクションAにおいてページ書込み量の偏りが検出されると、セクションAは平均化処理部230によって平均化処理の対象セクションとして選択される。平均化処理のためにセクションAの新たな割当先は、フリー領域において総書込み量が最小のセクションが選択される。この例では、物理セクションPBのセクションBが新たな割当先として選択されたものとする。すなわち、アドレス変換テーブル250には、フリー領域の論理セクションLF1に対応して物理セクションPBが記憶されていたものとする。
物理セクションPAに記憶されていたセクションAのデータは、セクション間コピー処理部240によって物理セクションPBにコピーされる。これにより、物理セクションPAにおいて生じていたセクションAのページ書込み量の偏りが是正される。そして、アドレス変換テーブル250における論理セクションLU1に対応して物理セクションPBが記憶され、論理セクションLF1に対応して物理セクションPAが記憶されるように変更される。すなわち、この例では、物理セクションPAはフリー領域として管理されるようになる。
図8は、本技術の第1の実施の形態におけるメモリアクセス処理の処理手順例を示す流れ図である。
ホストコンピュータ100からメモリアクセスのコマンドを受け取ると、アドレス変換部260は、コマンドに含まれる論理アドレスを物理アドレスに変換する(ステップS901)。そして、この変換された物理アドレスに従って、メモリ制御部290はメモリインターフェース209を介してメモリ300にアクセスを行う(ステップS902)。
その際、メモリ300に対する書込みがされた場合には、書込み量計測部210は、書込みアドレスに従って書込み量情報テーブル220を更新する(ステップS903)。そして、平均化処理部230は、書込み量情報テーブル220を参照して平均化処理を行う(ステップS910)。
図9は、本技術の第1の実施の形態における平均化処理の処理手順例を示す流れ図である。
書込み量情報テーブル220において書込み量情報が更新されると(ステップS911:Yes)、平均化処理部230は、その書込みが発生したセクションを特定する(ステップS912)。以下ではこの特定された論理セクションをセクションAと称する。
平均化処理部230は、その書込みが発生したセクションAにおいて、最大ページ書込み量とページ書込み量の平均値との差分が、閾値αを超えて大きいか否かを判断する(ステップS913)。そして、その差分が閾値αを超えて大きい場合には(ステップS913:Yes)、平均化処理部230はセクション内平均化処理を行う(ステップS920)。
図10は、本技術の第1の実施の形態におけるセクション内平均化処理(ステップS920)の処理手順例を示す流れ図である。
平均化処理部230は、書込み量情報テーブル220を参照して、フリー領域において総書込み量が最小のセクションを選択する(ステップS922)。以下ではこの選択された論理セクションをセクションBと称する。なお、この例では、総書込み量が最小のフリー領域のセクションを選択しているが、全体における総書込み量の平均値よりも所定の閾値以下の総書込み量を有するフリー領域のセクションを選択するようにしてもよい。
そして、セクション間コピー処理部240は、セクションAに記憶されているデータをセクションBの物理セクションPBにコピーする(ステップS923)。
アドレス変換部260は、セクションBに割り当てられていた物理セクションPBをユーザ領域に登録する(ステップS924)。すなわち、上述の例において、アドレス変換テーブル250のユーザ領域の論理アドレスLU1に対応して物理セクションPBを記憶する。
また、アドレス変換部260は、セクションAに割り当てられていた物理セクションPAをフリー領域に登録する(ステップS926)。すなわち、上述の例において、アドレス変換テーブル250のフリー領域の論理アドレスLF1に対応して物理セクションPAを記憶する。また、書込み量計測部210は、書込み量情報テーブル220のセクションAのページ書込み量を「0」に初期化する(ステップS927)。
このように、本技術の第1の実施の形態によれば、書込みが発生したセクションにおけるページ間の書込み量の偏りを検出して、物理アドレスの割当を変更することにより、セクション内のページ書込み量の平均化処理を行うことができる。
<2.第2の実施の形態>
上述の第1の実施の形態では、ページ書込み量に偏りが検出されたセクションの物理アドレスの割当てを変更することによりセクション内平均化処理を行っていた。このセクション内平均化処理では、フリー領域において総書込み量が最小となるセクションを選択して、ページ書込み量に偏りが検出されたセクションと物理アドレスを入れ換えることにより、物理アドレスの割当てを変更していた。そのため、フリー領域に着目すると、書込み量は増加することになる。
そこで、この第2の実施の形態では、セクション内平均化処理の後に、ユーザ領域において総書込み量が最小のセクションと、フリー領域において総書込み量が最大のセクションとを交換することによりフリー領域の書込み量の減少を図る。すなわち、このセクション間平均化処理は、セクション内平均化処理によるフリー領域の書込み量増加を中和して、メモリ300全体としての書込み量を平均化するものである。
なお、情報処理システムとしての全体構成およびメモリコントローラのブロック構成については、上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
[書込み量情報]
セクション間平均化処理の際に、ユーザ領域において総書込み量が最小のセクションを選択する際、セクション内平均化処理によって割り当てられた直後のセクションが選択されてしまうと、意図した平均化が行われなくなるおそれがある。そのため、この第2の実施の形態では、書込み情報として、セクション内平均化処理によるコピーが行われた直後であることを示すコピー済フラグを設け、これにより、セクション間平均化処理においてそのセクションが選択されることを回避する。
図11は、本技術の第2の実施の形態における書込み量情報テーブル220の第1の例を示す図である。この第1の例による書込み量情報は、全ての物理セクション毎に書込み量情報を有する場合の例である。この第1の例では、物理セクションのそれぞれに対応して、上述の第1の実施の形態において説明したページ書込み量およびセクション総書込み量に加えて、コピー済フラグを記憶する。
コピー済フラグは、セクション内平均化処理によりユーザ領域に割り当てられたセクションに設定されるフラグである。このコピー済フラグが設定されているセクションは、セクション間平均化処理におけるユーザ領域の検索の際に対象から除外される。なお、コピー済フラグは、特許請求の範囲に記載のフラグの一例である。
図12は、本技術の第2の実施の形態における書込み量情報テーブル220の第2の例を示す図である。この第2の例では、上述の第1の実施の形態において説明したページ書込み量およびセクション総書込み量に加えて、論理セクションのそれぞれに対応して、コピー済フラグを記憶する。コピー済フラグとしての役割は、上述の第1の例と同様である。
[動作]
図13は、本技術の第2の実施の形態における平均化処理の概要例を示す図である。ここでは、上述の第1の実施の形態と同様に、セクション内平均化処理として、ページ間の書込み量の偏りを有する論理セクションとしてセクションAが選択され、セクションAのデータはセクション間コピー処理部240によって物理セクションPBにコピーされる。
また、この第2の実施の形態においては、セクション内平均化処理の後に、ユーザ領域において総書込み量が最小であってコピー済フラグが「0」である論理セクションがセクションCとして選択される。その際、このセクションCの物理アドレスとして物理セクションPCが割り当てられていたものとする。すなわち、アドレス変換テーブル250には、ユーザ領域の論理セクションLU2に対応して物理セクションPCが記憶されていたものとする。
一方、フリー領域において総書込み量が最大のセクションが選択され、新たな割当先となる。この例では、物理セクションPDのセクションDが新たな割当先として選択されたものとする。すなわち、アドレス変換テーブル250には、フリー領域の論理セクションLF2に対応して物理セクションPDが記憶されていたものとする。
物理セクションPCに記憶されていたセクションCのデータは、セクション間コピー処理部240によって物理セクションPDにコピーされる。そして、アドレス変換テーブル250における論理セクションLU2に対応して物理セクションPDが記憶され、論理セクションLF2に対応して物理セクションPCが記憶されるように変更される。これにより、ユーザ領域において総書込み量が最小のセクションと、フリー領域において総書込み量が最大のセクションとが交換されて、フリー領域の書込み量が減少する。すなわち、セクション内平均化処理により生じたフリー領域の書込み量の増加が、中和されたことになる。
図14は、本技術の第2の実施の形態における平均化処理の処理手順例を示す流れ図である。なお、メモリアクセス処理の全体処理については上述の第1の実施の形態と同様であるため、説明を省略する。
書込み量情報テーブル220において書込み量情報が更新されると(ステップS911:Yes)、平均化処理部230は、その書込みが発生したセクションAを特定する(ステップS912)。この点は上述の第1の実施の形態と同様である。
平均化処理部230は、その書込みが発生したセクションAにおいて、最大ページ書込み量とページ書込み量の平均値との差分が、閾値αを超えて大きいか否かを判断する(ステップS913)。そして、その差分が閾値αを超えて大きい場合には(ステップS913:Yes)、平均化処理部230はセクション内平均化処理(ステップS930)およびセクション間平均化処理(ステップS940)を行う。
図15は、本技術の第2の実施の形態におけるセクション内平均化処理(ステップS930)の処理手順例を示す流れ図である。
平均化処理部230は、書込み量情報テーブル220を参照して、フリー領域において総書込み量が最小のセクションBを選択する(ステップS932)。なお、この例では、総書込み量が最小のフリー領域のセクションを選択しているが、全体における総書込み量の平均値よりも所定の閾値以下の総書込み量を有するフリー領域のセクションを選択するようにしてもよい。
そして、セクション間コピー処理部240は、セクションAに記憶されているデータをセクションBの物理セクションPBにコピーする(ステップS933)。
アドレス変換部260は、セクションBに割り当てられていた物理セクションPBをユーザ領域に登録する(ステップS934)。すなわち、上述の例において、アドレス変換テーブル250のユーザ領域の論理アドレスLU1に対応して物理セクションPBを記憶する。
また、書込み量計測部210は、書込み量情報テーブル220のセクションBのコピー済フラグを「1」に設定する(ステップS935)。
また、アドレス変換部260は、セクションAに割り当てられていた物理セクションPAをフリー領域に登録する(ステップS936)。すなわち、上述の例において、アドレス変換テーブル250のフリー領域の論理アドレスLF1に対応して物理セクションPAを記憶する。
また、書込み量計測部210は、書込み量情報テーブル220のセクションAのページ書込み量を「0」に初期化するとともに、セクションAのコピー済フラグを「0」にリセットする(ステップS937)。
図16は、本技術の第2の実施の形態におけるセクション間平均化処理(ステップS940)の処理手順例を示す流れ図である。
平均化処理部230は、書込み量情報テーブル220を参照して、ユーザ領域において総書込み量が最小であって、かつ、コピー済フラグが「0」であるセクションを選択する(ステップS941)。以下ではこの選択された論理セクションをセクションCと称する。なお、この例では、総書込み量が最小のユーザ領域のセクションを選択しているが、全体における総書込み量の平均値よりも所定の閾値以下の総書込み量を有するユーザ領域のセクションを選択するようにしてもよい。この場合、平均値よりも所定の閾値以下の総書込み量を有するセクションが検索された時点で、そのセクションを新たな割当先とすることができ、検索時間を短縮することが可能である。
平均化処理部230は、書込み量情報テーブル220を参照して、フリー領域において総書込み量が最大のセクションを選択する(ステップS942)。以下ではこの選択された論理セクションをセクションDと称する。
そして、セクション間コピー処理部240は、セクションCに記憶されているデータをセクションDの物理セクションPDにコピーする(ステップS943)。
アドレス変換部260は、セクションDに割り当てられていた物理セクションPDをユーザ領域に登録する(ステップS944)。すなわち、上述の例において、アドレス変換テーブル250のユーザ領域の論理アドレスLU2に対応して物理セクションPDを記憶する。
また、アドレス変換部260は、セクションCに割り当てられていた物理セクションPCをフリー領域に登録する(ステップS946)。すなわち、上述の例において、アドレス変換テーブル250のフリー領域の論理アドレスLF2に対応して物理セクションPCを記憶する。また、書込み量計測部210は、書込み量情報テーブル220のセクションCのページ書込み量を「0」に初期化する(ステップS947)。
このように、本技術の第2の実施の形態では、セクション内平均化処理の後に、ユーザ領域において総書込み量が最小のセクションと、フリー領域において総書込み量が最大のセクションとを交換する。これにより、セクション内平均化処理に伴うフリー領域の書込み量の増大を中和することができる。
<3.第3の実施の形態>
上述の第2の実施の形態では、セクション内平均化処理の後に、ユーザ領域において総書込み量が最小のセクションと、フリー領域において総書込み量が最大のセクションとを交換することにより、フリー領域の書込み量の減少を図っていた。この場合、セクション内平均化処理に伴うフリー領域の書込み量の増大を中和するためには高い効果が得られるが、フリー領域において総書込み量が最大となるセクションを選択する必要があった。一方、セクション内平均化処理の対象セクションが記憶されていた物理セクションPAの書込み量によっては、物理セクションPAをフリー領域として登録しても書込み量の減少にあまり寄与しない場合も生じ得る。そこで、この第3の実施の形態では、セクション内平均化処理の後にフリー領域において総書込み量が最大のセクションを検索することなく、セクション内平均化処理の対象セクションが記憶されていた物理セクションPAを再利用して、処理の簡略化を図る。
なお、情報処理システムとしての全体構成およびメモリコントローラのブロック構成については、上述の第1の実施の形態と同様であるため、詳細な説明は省略する。また、書込み量情報については、上述の第2の実施の形態と同様であるため、詳細な説明は省略する。
[動作]
図17は、本技術の第3の実施の形態における平均化処理の概要例を示す図である。ここでは、上述の第1の実施の形態と同様に、セクション内平均化処理として、ページ間の書込み量の偏りを有する論理セクションとしてセクションAが選択され、セクションAのデータはセクション間コピー処理部240によって物理セクションPBにコピーされる。
また、上述の第2の実施の形態と同様に、セクション内平均化処理の後に、ユーザ領域において総書込み量が最小であってコピー済フラグが「0」である論理セクションがセクションCとして選択される。その際、このセクションCの物理アドレスとして物理セクションPCが割り当てられていたものとする。すなわち、アドレス変換テーブル250には、ユーザ領域の論理セクションLU2に対応して物理セクションPCが記憶されていたものとする。
上述の第2の実施の形態においては物理セクションPCに記憶されていたセクションCのデータはフリー領域にあった物理セクションPDにコピーされていたが、この第3の実施の形態ではセクションCのデータは物理セクションPAにコピーされる。すなわち、物理セクションPAはフリー領域に登録されず、セクションCとして再利用される。そのため、アドレス変換テーブル250における論理セクションLU2に対応して物理セクションPAが記憶されるように変更される。
一方、セクションCのデータを記憶していた物理セクションPCは、フリー領域に登録される。そのため、アドレス変換テーブル250における論理セクションLF1に対応して物理セクションPCが記憶されるように変更される。これにより、書込み量の小さい物理セクションPCがフリー領域となり、フリー領域の書込み量が減少する。
図18は、本技術の第3の実施の形態における平均化処理の処理手順例を示す流れ図である。なお、メモリアクセス処理の全体処理については上述の第1の実施の形態と同様であるため、説明を省略する。
書込み量情報テーブル220において書込み量情報が更新されると(ステップS911:Yes)、平均化処理部230は、その書込みが発生したセクションAを特定する(ステップS912)。この点は上述の第1の実施の形態と同様である。
平均化処理部230は、その書込みが発生したセクションAにおいて、最大ページ書込み量とページ書込み量の平均値との差分が、閾値αを超えて大きいか否かを判断する(ステップS913)。そして、その差分が閾値αを超えて大きい場合には(ステップS913:Yes)、平均化処理部230はセクション内平均化処理(ステップS950)およびセクション間平均化処理(ステップS960)を行う。
図19は、本技術の第3の実施の形態におけるセクション内平均化処理(ステップS950)の処理手順例を示す流れ図である。
平均化処理部230は、書込み量情報テーブル220を参照して、フリー領域において総書込み量が最小のセクションBを選択する(ステップS952)。なお、この例では、総書込み量が最小のフリー領域のセクションを選択しているが、全体における総書込み量の平均値よりも所定の閾値以下の総書込み量を有するフリー領域のセクションを選択するようにしてもよい。
そして、セクション間コピー処理部240は、セクションAに記憶されているデータをセクションBの物理セクションPBにコピーする(ステップS953)。
アドレス変換部260は、セクションBに割り当てられていた物理セクションPBをユーザ領域に登録する(ステップS954)。すなわち、上述の例において、アドレス変換テーブル250のユーザ領域の論理アドレスLU1に対応して物理セクションPBを記憶する。
また、書込み量計測部210は、書込み量情報テーブル220のセクションBのコピー済フラグを「1」に設定する(ステップS955)。
図20は、本技術の第3の実施の形態におけるセクション間平均化処理(ステップS960)の処理手順例を示す流れ図である。
平均化処理部230は、書込み量情報テーブル220を参照して、ユーザ領域において総書込み量が最小であって、かつ、コピー済フラグが「0」であるセクションを選択する(ステップS961)。以下ではこの選択された論理セクションをセクションCと称する。なお、この例では、総書込み量が最小のユーザ領域のセクションを選択しているが、全体における総書込み量の平均値よりも所定の閾値以下の総書込み量を有するユーザ領域のセクションを選択するようにしてもよい。
そして、セクション間コピー処理部240は、セクションCに記憶されているデータをセクションAの物理セクションPAにコピーする(ステップS963)。
アドレス変換部260は、セクションAに割り当てられていた物理セクションPAを、セクションCのあったユーザ領域に登録する(ステップS964)。すなわち、上述の例において、アドレス変換テーブル250のユーザ領域の論理アドレスLU2に対応して物理セクションPAを記憶する。
また、書込み量計測部210は、書込み量情報テーブル220のセクションAのページ書込み量を初期化するとともに、セクションAのコピー済フラグを「0」にリセットする(ステップS965)。
一方、アドレス変換部260は、セクションCに割り当てられていた物理セクションPCをフリー領域に登録する(ステップS966)。すなわち、上述の例において、アドレス変換テーブル250のフリー領域の論理アドレスLF1に対応して物理セクションPCを記憶する。
また、書込み量計測部210は、書込み量情報テーブル220のセクションCのページ書込み量を「0」に初期化する(ステップS967)。
このように、本技術の第3の実施の形態では、セクション内平均化処理の後に、セクション内平均化処理の対象セクションが記憶されていた物理セクションPAを再利用することにより、処理効率を向上させることができる。
<4.第4の実施の形態>
上述の第2および第3の実施の形態では、セクション内平均化処理の後に、ユーザ領域のセクションとフリー領域のセクションとの間で入換えを行っていた。しかしながら、ページ間の書込み量の偏りを有するものとして選択されたセクションの総書込み量がそれほど多くない場合には、フリー領域との入換えは必ずしも必要ではない。そこで、この第4の実施の形態では、ページ間の書込み量の偏りを有するものとして選択されたセクションの総書込み量が全セクションの総書込み量の平均値よりも多くない場合には、セクション間平均化処理を行わずに、処理の簡略化を図る。
なお、情報処理システムとしての全体構成およびメモリコントローラのブロック構成については、上述の第1の実施の形態と同様であるため、詳細な説明は省略する。また、書込み量情報については、上述の第2の実施の形態と同様であるため、詳細な説明は省略する。
[動作]
図21は、本技術の第4の実施の形態における平均化処理の処理手順例を示す流れ図である。なお、メモリアクセス処理の全体処理については上述の第1の実施の形態と同様であるため、説明を省略する。
書込み量情報テーブル220において書込み量情報が更新されると(ステップS911:Yes)、平均化処理部230は、その書込みが発生したセクションAを特定する(ステップS912)。この点は上述の第1の実施の形態と同様である。
平均化処理部230は、その書込みが発生したセクションAにおいて、最大ページ書込み量とページ書込み量の平均値との差分が、閾値αを超えて大きいか否かを判断する(ステップS913)。そして、その差分が閾値αを超えて大きい場合には(ステップS913:Yes)、平均化処理部230はセクション内平均化処理(ステップS950)を行う。
そして、書込みが発生したセクションAの総書込み量が、総書込み量の全セクションの平均値よりも大きい場合には(ステップS914:Yes)、平均化処理部230はセクション間平均化処理(ステップS960)を行う。一方、セクションAの総書込み量が、全セクションの平均値よりも多くない場合には(ステップS914:No)、アドレス変換部260は、セクションAに割り当てられていた物理セクションPAをフリー領域に登録する(ステップS915)。また、この場合、書込み量計測部210は、書込み量情報テーブル220のセクションAのページ書込み量を「0」に初期化するとともに、セクションAのコピー済フラグを「0」にリセットする(ステップS916)。なお、この例では、セクションAの総書込み量が総書込み量の全セクションの平均値よりも大きいか否かを基準としているが、平均値よりも所定の閾値以上大きいか否かを基準としてもよい。
なお、セクション内平均化処理(ステップS950)およびセクション間平均化処理(ステップS960)における処理手順の内容については、上述の第3の実施の形態と同様であるため、説明を省略する。
このように、本技術の第4の実施の形態によれば、書込みが発生したセクションの総書込み量が全セクションの平均値よりも多くない場合に、セクション間平均化処理を省くことにより、処理効率を向上させることができる。
<5.第5の実施の形態>
上述の第1乃至第4の実施の形態では、セクション間で入換えを行うことにより、セクション内のページ書込み量の平均化を図っていた。したがって、セクション内のページの順序については入換えの前後において変化がなかった。これに対し、この第5の実施の形態では、セクション内のページの順序を変更することにより、平均化処理の効果をさらに向上させる。
[メモリコントローラの構成]
図22は、本技術の第5の実施の形態におけるメモリコントローラ200の一構成例を示す図である。なお、情報処理システムとしての全体構成については、上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
この第5の実施の形態におけるメモリコントローラ200は、上述の第1の実施の形態の構成に加えて、乱数列選択部280を備える。この乱数列選択部280は、セクション間コピー処理部240によって割当変更先のセクションにコピーが行われる際、セクション内のページ配置順序として異なる順序を選択するものである。セクション内のページ配置順序を規定するための乱数列は、例えばアドレス変換テーブル250に保持される。乱数列選択部280は、コピーが行われる度にこの乱数列を別のものに変更することにより、セクション内のページ配置順序を変更する。なお、乱数列選択部280は、特許請求の範囲に記載の選択部の一例である。
[乱数列]
図23は、本技術の第5の実施の形態におけるページ配置順序の変更態様の例を示す図である。上述のように、1つのセクションは、一例として8つのページから構成されるものと想定する。論理セクション内の8つのページは、メモリ300における物理セクションに配置される際、乱数列に従って順序が決定される。
図24は、本技術の第5の実施の形態における乱数列の一例を示す図である。ここでは、横方向に物理セクション内の8ページに相当するページオフセット#0乃至#7が示され、縦方向に8つの乱数列#0乃至#7が示されている。
各乱数列は、論理セクション内のページ配置を表している。例えば、あるセクションにおいて乱数列#2を使用する場合、論理ページ#0は物理ページ#2に割り当てられ、論理ページ#4は物理ページ#6に割り当てられることになる。
なお、この例ではアダマール行列を用いており、これに含まれる乱数列は互いに異なる。したがって、異なる乱数列によって同じ物理ページが同じ論理ページに割り当てられることはない。
図25は、本技術の第5の実施の形態におけるアドレス変換テーブル250の構成例を示す図である。この第5の実施の形態におけるアドレス変換テーブル250は、論理セクション#0乃至#32767に対応して、物理セクションアドレス#0乃至#32767と、乱数列選択情報#0乃至#32767とを保持する。
物理セクションアドレスは、上述の実施の形態と同様であり、論理セクションに対応するメモリ300上の物理セクションを示すものである。
乱数列選択情報は、この第5の実施の形態における乱数列を、論理セクションに対応してそれぞれ示すものである。乱数列自体を保持する必要はなく、物理セクション内の論理ページの配置順序を示す乱数列の番号を保持すればよい。例えば、乱数列選択情報として「3」が保持されていれば、上述の例において論理ページ#6は物理セクション内の物理ページ#5に割り当てられることが分かる。なお、乱数列選択情報は、特許請求の範囲に記載の情報の一例である。
このように、本技術の第5の実施の形態では、セクション内のページ配置順序を乱数列によって定義して、割当変更先のセクションにコピーが行われる際に乱数列を変更する。これにより、セクション内のページ配置順序として異なる順序を使用することにより、平均化処理の効果をさらに向上させることができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
なお、本技術は以下のような構成もとることができる。
(1)メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換部と、
前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、
前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部と
を具備するメモリコントローラ。
(2)前記平均化処理部は、前記管理単位における前記アクセス単位の書込み量がその管理単位において偏りを生じた場合に、その管理単位を前記対象管理単位として選択する
前記(1)に記載のメモリコントローラ。
(3)前記平均化処理部は、前記管理単位における前記アクセス単位の書込み量の最大値がその管理単位における前記アクセス単位の書込み量の平均値よりも所定の閾値を超えて大きい場合に、その管理単位を前記対象管理単位として選択する
前記(1)または(2)に記載のメモリコントローラ。
(4)前記メモリの論理アドレス空間は、使用中領域と未使用領域とに分けて管理され、
前記平均化処理部は、前記計測された書込み量に基づいて前記対象管理単位の新たな割当先を前記未使用領域から選択して前記使用中領域として確保する
前記(1)から(3)のいずれかに記載のメモリコントローラ。
(5)前記平均化処理部は、前記未使用領域において前記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる前記管理単位を前記対象管理単位の新たな割当先として選択する
前記(4)に記載のメモリコントローラ。
(6)前記平均化処理部は、前記対象管理単位の物理アドレスの割当が変更された際、前記使用中領域において前記新たな割当先以外で前記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる前記管理単位を第2の対象管理単位として選択し、前記未使用領域において前記アクセス単位の書込み量の総数が最大となる前記管理単位を前記第2の対象管理単位の新たな割当先として選択して、前記第2の対象管理単位の前記アドレス変換における物理アドレスの割当を変更する
前記(5)に記載のメモリコントローラ。
(7)物理アドレスの割当変更対象となった旨を前記管理対象ごとに保持するフラグをさらに具備し、
前記平均化処理部は、前記新たな割当先に対応する前記フラグを物理アドレスの割当変更対象となった旨にセットし、前記使用中領域において前記第2の対象管理単位を選択する際に前記フラグがセットされているものを選択対象から除外する
前記(6)に記載のメモリコントローラ。
(8)前記平均化処理部は、前記対象管理単位の割当変更前の物理アドレスを前記未使用領域に割り当てる
前記(4)に記載のメモリコントローラ。
(9)前記平均化処理部は、前記対象管理単位の割当変更前の物理アドレスを前記使用中領域に割り当てて他の前記管理対象のために使用する
前記(4)に記載のメモリコントローラ。
(10)前記平均化処理部は、前記対象管理単位の前記アクセス単位の書込み量の総数が前記管理対象の全体の平均値よりも所定の閾値以上大きい場合には前記対象管理単位の割当変更前の物理アドレスを前記使用中領域に割り当てて他の前記管理対象のために使用し、それ以外の場合には前記対象管理単位の割当変更前の物理アドレスを前記未使用領域に割り当てる
前記(4)に記載のメモリコントローラ。
(11)前記管理単位における前記アクセス単位の配置順序を規定する情報を前記管理単位ごとに保持して、前記対象管理単位の物理アドレスの割当変更の前後においては前記対象管理単位における前記アクセス単位の配置順序として異なる順序を選択する選択部をさらに具備する前記(1)から(4)のいずれかに記載のメモリコントローラ。
(12)前記アクセス単位の配置順序を規定する情報は、互いに異なる複数の乱数列である前記(11)に記載のメモリコントローラ。
(13)メモリと、
前記メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換部と、
前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、
前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部と
を具備するメモリシステム。
(14)メモリと、
前記メモリにアクセスするためのホストコマンドを発行するホストコンピュータと、
前記メモリのアクセス単位を複数まとめた管理単位ごとに前記ホストコマンドの論理アドレスと前記メモリの物理アドレスとの間でアドレス変換を行うアドレス変換部と、
前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、
前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部と
を具備する情報処理システム。
(15)メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換手順と、
前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測手順と、
前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理手順と
を具備するメモリ制御方法。
100 ホストコンピュータ
200 メモリコントローラ
201 ホストインターフェース
209 メモリインターフェース
210 書込み量計測部
220 書込み量情報テーブル
230 平均化処理部
240 セクション間コピー処理部
250 アドレス変換テーブル
260 アドレス変換部
280 乱数列選択部
290 メモリ制御部
300 メモリ
400 メモリシステム

Claims (15)

  1. メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換部と、
    前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、
    前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部と
    を具備するメモリコントローラ。
  2. 前記平均化処理部は、前記管理単位における前記アクセス単位の書込み量がその管理単位において偏りを生じた場合に、その管理単位を前記対象管理単位として選択する
    請求項1記載のメモリコントローラ。
  3. 前記平均化処理部は、前記管理単位における前記アクセス単位の書込み量の最大値がその管理単位における前記アクセス単位の書込み量の平均値よりも所定の閾値を超えて大きい場合に、その管理単位を前記対象管理単位として選択する
    請求項1記載のメモリコントローラ。
  4. 前記メモリの論理アドレス空間は、使用中領域と未使用領域とに分けて管理され、
    前記平均化処理部は、前記計測された書込み量に基づいて前記対象管理単位の新たな割当先を前記未使用領域から選択して前記使用中領域として確保する
    請求項1記載のメモリコントローラ。
  5. 前記平均化処理部は、前記未使用領域において前記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる前記管理単位を前記対象管理単位の新たな割当先として選択する
    請求項4記載のメモリコントローラ。
  6. 前記平均化処理部は、前記対象管理単位の物理アドレスの割当が変更された際、前記使用中領域において前記新たな割当先以外で前記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる前記管理単位を第2の対象管理単位として選択し、前記未使用領域において前記アクセス単位の書込み量の総数が最大となる前記管理単位を前記第2の対象管理単位の新たな割当先として選択して、前記第2の対象管理単位の前記アドレス変換における物理アドレスの割当を変更する
    請求項5記載のメモリコントローラ。
  7. 物理アドレスの割当変更対象となった旨を前記管理対象ごとに保持するフラグをさらに具備し、
    前記平均化処理部は、前記新たな割当先に対応する前記フラグを物理アドレスの割当変更対象となった旨にセットし、前記使用中領域において前記第2の対象管理単位を選択する際に前記フラグがセットされているものを選択対象から除外する
    請求項6記載のメモリコントローラ。
  8. 前記平均化処理部は、前記対象管理単位の割当変更前の物理アドレスを前記未使用領域に割り当てる
    請求項4記載のメモリコントローラ。
  9. 前記平均化処理部は、前記対象管理単位の割当変更前の物理アドレスを前記使用中領域に割り当てて他の前記管理対象のために使用する
    請求項4記載のメモリコントローラ。
  10. 前記平均化処理部は、前記対象管理単位の前記アクセス単位の書込み量の総数が前記管理対象の全体の平均値よりも所定の閾値以上大きい場合には前記対象管理単位の割当変更前の物理アドレスを前記使用中領域に割り当てて他の前記管理対象のために使用し、それ以外の場合には前記対象管理単位の割当変更前の物理アドレスを前記未使用領域に割り当てる
    請求項4記載のメモリコントローラ。
  11. 前記管理単位における前記アクセス単位の配置順序を規定する情報を前記管理単位ごとに保持して、前記対象管理単位の物理アドレスの割当変更の前後においては前記対象管理単位における前記アクセス単位の配置順序として異なる順序を選択する選択部をさらに具備する請求項1記載のメモリコントローラ。
  12. 前記アクセス単位の配置順序を規定する情報は、互いに異なる複数の乱数列である請求項11記載のメモリコントローラ。
  13. メモリと、
    前記メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換部と、
    前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、
    前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部と
    を具備するメモリシステム。
  14. メモリと、
    前記メモリにアクセスするためのホストコマンドを発行するホストコンピュータと、
    前記メモリのアクセス単位を複数まとめた管理単位ごとに前記ホストコマンドの論理アドレスと前記メモリの物理アドレスとの間でアドレス変換を行うアドレス変換部と、
    前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、
    前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部と
    を具備する情報処理システム。
  15. メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換手順と、
    前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測手順と、
    前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理手順と
    を具備するメモリ制御方法。
JP2019530874A 2017-07-18 2018-04-03 ウェアレベリング処理を行うメモリコントローラ Active JP7063900B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017138782 2017-07-18
JP2017138782 2017-07-18
PCT/JP2018/014241 WO2019017017A1 (ja) 2017-07-18 2018-04-03 ウェアレベリング処理を行うメモリコントローラ

Publications (2)

Publication Number Publication Date
JPWO2019017017A1 true JPWO2019017017A1 (ja) 2020-05-28
JP7063900B2 JP7063900B2 (ja) 2022-05-09

Family

ID=65015908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019530874A Active JP7063900B2 (ja) 2017-07-18 2018-04-03 ウェアレベリング処理を行うメモリコントローラ

Country Status (3)

Country Link
US (1) US11269546B2 (ja)
JP (1) JP7063900B2 (ja)
WO (1) WO2019017017A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2020158059A1 (ja) * 2019-01-31 2021-12-02 ソニーセミコンダクタソリューションズ株式会社 メモリ制御装置、メモリモジュールおよび情報処理システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010038736A1 (ja) * 2008-10-01 2010-04-08 株式会社日立製作所 半導体装置
WO2016077091A1 (en) * 2014-11-13 2016-05-19 Micron Technology, Inc Memory wear leveling

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101437123B1 (ko) 2008-04-01 2014-09-02 삼성전자 주식회사 메모리 시스템 및 그것의 마모도 관리 방법
JP5569469B2 (ja) 2011-05-25 2014-08-13 株式会社デンソー 電子機器
US20160011782A1 (en) 2013-02-27 2016-01-14 Hitachi, Ltd. Semiconductor storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010038736A1 (ja) * 2008-10-01 2010-04-08 株式会社日立製作所 半導体装置
WO2016077091A1 (en) * 2014-11-13 2016-05-19 Micron Technology, Inc Memory wear leveling

Also Published As

Publication number Publication date
US20210081136A1 (en) 2021-03-18
US11269546B2 (en) 2022-03-08
WO2019017017A1 (ja) 2019-01-24
JP7063900B2 (ja) 2022-05-09

Similar Documents

Publication Publication Date Title
US10761977B2 (en) Memory system and non-transitory computer readable recording medium
US9779022B2 (en) Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same
CN110187999B (zh) 地址映射数据备份方法及装置
US9891825B2 (en) Memory system of increasing and decreasing first user capacity that is smaller than a second physical capacity
JP2008130088A (ja) 不揮発性メモリ管理方法及び装置
US8892812B2 (en) Flash memory device and data writing method for a flash memory
US11269783B2 (en) Operating method for data storage device
JP2015184856A (ja) メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。
JP5093294B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8185686B2 (en) Memory system and a control method thereof
TWI556103B (zh) 記憶體裝置及其資料存取方法
US8380920B2 (en) Flash storage device and data access method of flash memory
JP7063900B2 (ja) ウェアレベリング処理を行うメモリコントローラ
JP5858081B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
US20230281118A1 (en) Memory system and non-transitory computer readable recording medium
KR20150142250A (ko) 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법
US10754771B2 (en) Storage device and storage control method
US20110258369A1 (en) Data Writing Method and Data Storage Device
US20150067237A1 (en) Memory controller, semiconductor memory system, and memory control method
JP4558054B2 (ja) メモリシステム
JP2016053808A (ja) 記憶制御装置、記憶装置、および、記憶制御方法
JP2005092678A (ja) 半導体メモリカード及び不揮発性メモリのデータ消去処理方法
CN111201517A (zh) 存储器存取装置、存储系统和信息处理系统
JP6276208B2 (ja) メモリシステム及びプログラム
KR20210118086A (ko) 메모리 제어 장치, 메모리 모듈 및 정보 처리 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220314

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: 20220329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220421

R150 Certificate of patent or registration of utility model

Ref document number: 7063900

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150