JP6538741B2 - 管理装置、情報処理装置および管理方法 - Google Patents

管理装置、情報処理装置および管理方法 Download PDF

Info

Publication number
JP6538741B2
JP6538741B2 JP2017045240A JP2017045240A JP6538741B2 JP 6538741 B2 JP6538741 B2 JP 6538741B2 JP 2017045240 A JP2017045240 A JP 2017045240A JP 2017045240 A JP2017045240 A JP 2017045240A JP 6538741 B2 JP6538741 B2 JP 6538741B2
Authority
JP
Japan
Prior art keywords
page
access
storage unit
unit
management
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
JP2017045240A
Other languages
English (en)
Other versions
JP2018151687A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2017045240A priority Critical patent/JP6538741B2/ja
Priority to US15/678,226 priority patent/US10235049B2/en
Priority to TW106129470A priority patent/TW201833781A/zh
Priority to CN201710759641.9A priority patent/CN108572923A/zh
Publication of JP2018151687A publication Critical patent/JP2018151687A/ja
Application granted granted Critical
Publication of JP6538741B2 publication Critical patent/JP6538741B2/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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • 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/0614Improving the reliability of storage 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/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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/1041Resource optimization
    • 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/7202Allocation control and policies
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明の実施形態は、管理装置、情報処理装置および管理方法に関する。
NANDフラッシュ等の不揮発メモリは、書き換え可能回数が少ない。このため、不揮発メモリを備える情報処理装置は、不揮発メモリに対してウェアレベリング制御をしている。例えば、情報処理装置は、ページ単位でのデータの書き換え回数を管理して、不揮発メモリに含まれる複数のページに対して平均的にデータを書き込む。これにより、情報処理装置は、不揮発メモリの寿命を延ばすことができる。
ところで、近年、ストレージクラスメモリとも呼ばれる高速な不揮発メモリが開発されている。ストレージクラスメモリは、ページ単位でのデータの書き換えに加えて、ページよりも小さい例えばバイト単位でのデータの書き換えが可能である。
しかし、ストレージクラスメモリは、ある特定のバイトに対するデータの書き換えが集中した場合、ページ内の他のバイトのデータに対する書き換えは少ないにも関わらず、そのページの書き換え回数が増えてしまう。このため、ストレージクラスメモリを備える情報処理装置では、ページ内の特定のバイトに書き換えが集中しないように、ストレージクラスメモリに対して効率良くアクセスをする必要があった。
特開2008−146255号公報
R. F. Freitas and W. W. Wilcke, "Storage-class Memory: The Next Storage System Technology", IBM Journal of Research and Development Vol.52 No.4, pp.439-447, 2008.
本発明が解決しようとする課題は、不揮発記憶部の寿命を延ばすことにある。
実施形態の管理装置は、第1記憶部および複数のページを含む不揮発記憶部に対する、処理回路によるデータの読み出しおよび書き込みを管理する。前記管理装置は、設定記憶部と、アクセス処理部と、管理部とを備える。前記設定記憶部は、前記複数のページのそれぞれについて、前記不揮発記憶部から前記第1記憶部に転送したデータに対して書き込みおよび読み出しをする第1アクセス処理、または、前記不揮発記憶部に記憶されたデータに対して直接書き込みおよび読み出しをする第2アクセス処理の何れを実行するかを示すアクセス方法を記憶する。前記アクセス処理部は、前記第1アクセス処理に設定されている第1ページに対して書き込みまたは読み出しの要求を受けた場合、前記第1アクセス処理を実行し、前記第2アクセス処理に設定されている第2ページに対して書き込みまたは読み出しの要求を受けた場合、前記第2アクセス処理を実行する。前記管理部は、前記第2アクセス処理に設定されている第3ページの品質が基準値以下となった場合、前記第3ページに対するアクセス方法を、前記第2アクセス処理から前記第1アクセス処理に変更する。
第1実施形態に係る情報処理装置の構成を示す図。 第1実施形態に係るメモリコントローラの構成を示す図。 第1実施形態に係る変換テーブルの一例を示す図。 第1実施形態に係る未使用テーブルの一例を示す図。 第1アクセス処理および第2アクセス処理の内容を示す図。 カウンタテーブルの一例を示す図。 第1実施形態に係る管理部の処理を示すフローチャート。 第1実施形態に係る設定変更処理を示すフローチャート。 第1実施形態でのテーブルの変更例を示す図。 誤り訂正をしたビット数により品質を判断するフローチャート。 第2実施形態に係る管理部の処理を示すフローチャート。 第3実施形態に係る不揮発記憶部を示す図。 第3実施形態に係る変換テーブルの一例を示す図。 第3実施形態に係る未使用テーブルの一例を示す図。 第3実施形態に係る設定変更処理を示すフローチャート。 第3実施形態でのテーブルの変更例を示す図。 第4実施形態に係る不揮発記憶部の構成を示す図。 第4実施形態に係る第4ページの選択処理を示すフローチャート。 第5実施形態に係るメモリコントローラの構成を示す図。 第2モードでのアクセス処理部の処理の流れを示すフローチャート。 第6実施形態に係るメモリコントローラの構成を示す図。 管理テーブルの一例を示す図。 更新部による処理の流れを示すフローチャート。 更新部による管理情報生成処理の流れを示すフローチャート。 情報処理装置の構成の第1変形例を示す図。 情報処理装置の構成の第2変形例を示す図。 情報処理装置の構成の第3変形例を示す図。
以下、図面を参照しながら実施形態に係る情報処理装置10について詳細に説明する。なお、以下、複数の実施形態について説明をするが、略同一の機能および構成を有するブロックに同一の符号を付け、第2実施形態以降においては重複する内容の説明を省略する。
(第1実施形態)
図1は、情報処理装置10のハードウェア構成の一例を示す図である。情報処理装置10は、処理回路12と、第1記憶部14と、不揮発記憶部16と、メモリコントローラ18とを備える。
処理回路12は、1または複数のプロセッサを有する。プロセッサは、例えば、CPU(Central Processing Unit)である。プロセッサは、1または複数のCPUコアを含んでいてもよい。処理回路12は、プログラムを実行して、データを処理する。処理回路12は、プログラムの実行に応じて、第1記憶部14または不揮発記憶部16からデータを読み出したり、第1記憶部14または不揮発記憶部16にデータを書き込んだりする。
また、処理回路12は、L1データキャッシュ、L1命令キャッシュ、L2キャッシュおよびL3キャッシュ等の階層的なキャッシュメモリを有する。処理回路12は、このようなキャッシュメモリを用いて、不揮発記憶部16に記憶されているデータを一時的に記憶する。処理回路12は、例えば、階層的なキャッシュにおける最下層のキャッシュ(ラストレベルキャッシュ)でキャッシュミスをした場合、キャッシュライン単位で第1記憶部14または不揮発記憶部16に対してアクセスして必要なデータを読み出したり書き込んだりする。
なお、処理回路12は、データ処理を実行できれば、どのような回路であってもよい。例えば、処理回路12は、GPGPU(General−purpose computing on Graphics Processing Unit)で利用されるGPU(Graphics Processing Unit)であってもよい。また、処理回路12は、FPGA(Field Programmable Gate Array)等のアクセラレータであってもよい。
第1記憶部14は、処理回路12による作業領域として用いられる主記憶装置である。第1記憶部14は、例えば、電源の供給を停止すると記憶しているデータが消える揮発記憶部である。第1記憶部14は、例えば、DRAM(Dynamic Random Acces Memory)である。なお、第1記憶部14は、DRAMと同様に高速アクセスが可能な、MRAM(Magnetoresistive Random Acces Memory)等の不揮発メモリであってもよい。
不揮発記憶部16は、電源の供給を停止してもデータを記憶し続けるメモリである。不揮発記憶部16は、例えば、第1記憶部14とともに処理回路12のメインメモリとして機能してもよい。
不揮発記憶部16は、例えば、DRAMより大容量な大容量高速不揮発メモリ(Non−volatile Memory)を含む。不揮発記憶部16は、例えば、MRAM、PCM(Phase Change Memory)、PRAM(Phase Random Access Memory)、PCRAM(Phase Change Random Access Memory)、ReRAM(Resistance Change Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、3DXPointまたはMemristor等である。不揮発記憶部16は、いわゆるストレージクラスメモリ(SCM)と呼ばれるメモリであってもよい。また、不揮発記憶部16は、複数の半導体装置を1つの基板または筐体等に設けたモジュールであってもよい。
不揮発記憶部16は、第1記憶部14と比較して容量が大きい。また、不揮発記憶部16は、第1記憶部14のアクセス速度と同等または少し遅い程度である。また、不揮発記憶部16は、待機電力がゼロか、または、第1記憶部14と比較して待機電力が非常に少ない。不揮発記憶部16は、一例として、アクセスレイテンシが10n秒から数μ秒程度の間のメモリである。
不揮発記憶部16は、バイト単位等の小領域単位でデータを書き込みおよび読み出し可能である。従って、処理回路12は、ロード命令またはストア命令により不揮発記憶部16に対して直接アクセスが可能である。例えば、処理回路12は、例えばキャッシュライン単位等で不揮発記憶部16に直接アクセスする。なお、不揮発記憶部16は、待機電力が非常に低くバイト単位等の小領域単位でアクセス可能な揮発性メモリに対して電力を継続して投入し続けて実現されてもよい。
また、不揮発記憶部16は、複数のページを含む。ページは、処理回路12によるデータの管理単位のデータ領域である。不揮発記憶部16は、ページ単位でもデータの書き込みおよび読み出しが可能である。
メモリコントローラ18は、第1記憶部14および不揮発記憶部16に対する、処理回路12によるデータの読み出しおよび書き込みを管理する管理装置として機能する。メモリコントローラ18は、処理回路12からの第1記憶部14および不揮発記憶部16に対するアクセス要求を処理する。すなわち、メモリコントローラ18は、処理回路12からの書込命令に応じて、データを第1記憶部14または不揮発記憶部16に書き込む。また、メモリコントローラ18は、処理回路12からの読出命令に応じて、データを第1記憶部14または不揮発記憶部16から読み出し、読み出したデータを処理回路12に与える。
また、メモリコントローラ18は、不揮発記憶部16に対するウェアレベリング制御を実行する。より具体的には、メモリコントローラ18は、不揮発記憶部16における領域毎のデータの書き換え回数を管理する。そして、メモリコントローラ18は、領域毎の書き換え回数に基づき、不揮発記憶部16における全体の領域に平均的にデータが書き込まれるように、データの書き込み位置を制御する。
図2は、第1実施形態に係るメモリコントローラ18の構成を示す図である。図3は、第1実施形態に係る変換テーブルの一例を示す図である。図4は、第1実施形態に係る未使用テーブルの一例を示す図である。図5は、第1アクセス処理および第2アクセス処理の内容を示す図である。図6は、カウンタテーブルの一例を示す図である。
メモリコントローラ18は、設定記憶部26と、アクセス処理部28と、カウンタ記憶部36と、更新部40と、管理部50とを有する。
設定記憶部26は、変換テーブルと、未使用テーブルとを記憶する。
変換テーブルは、例えば図3に示すように、処理回路12がアクセス要求をしたそれぞれのページについて(アクティブなページ)、要求アドレスと、第1記憶部14または不揮発記憶部16における対応するページ番号との対応関係を記憶する。すなわち、変換テーブルは、処理回路12による要求アドレスに対応するデータが、第1記憶部14または不揮発記憶部16における何れのページに記憶されているのかを示すマッピング情報を記憶する。
さらに、変換テーブルは、処理回路12がアクセス要求をしたそれぞれのページのうち、不揮発記憶部16のページ番号が示されているページについて、第1アクセス処理または第2アクセス処理の何れを実行するか示すアクセス方法を記憶する。
第1アクセス処理は、不揮発記憶部16から第1記憶部14に転送したデータに対して、書き込みおよび読み出しをする方法である。第2アクセス処理は、不揮発記憶部16に記憶されるデータに対して直接書き込みおよび読み出しをする方法である。
未使用テーブルは、図4に示すように、不揮発記憶部16に含まれる複数のページのうち、処理回路12がアクセス要求をしていないそれぞれのページ(非アクティブなページ)について、第1アクセス処理または第2アクセス処理の何れを実行するかを示すアクセス方法を記憶する。
従って、不揮発記憶部16に含まれる全てのページのそれぞれは、変換テーブルまたは未使用テーブルの何れかにより、アクセス方法が設定されている。なお、変換テーブルおよび未使用テーブルは、図3および図4に示すような構成に限らず、他の構成であってもよい。
アクセス処理部28は、処理回路12からの第1記憶部14および不揮発記憶部16に対するアクセス要求を処理する。すなわち、メモリコントローラ18は、処理回路12からの書込命令に応じて、データを第1記憶部14または不揮発記憶部16に書き込む。また、メモリコントローラ18は、処理回路12からの読出命令に応じて、データを第1記憶部14または不揮発記憶部16から読み出し、読み出したデータを処理回路12に与える。
ここで、アクセス処理部28は、第1アクセス処理に設定されている第1ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発記憶部16に対して、第1アクセス処理を実行する。
例えば、図5に示すように、第1アクセス処理において、アクセス処理部28は、不揮発記憶部16における第1ページに記憶された全てのデータを転送して、第1記憶部14に記憶させる。これにより、第1記憶部14は、不揮発記憶部16における第1ページに記憶されたデータのコピーを記憶することができる。続いて、第1アクセス処理において、アクセス処理部28は、第1記憶部14に記憶されている、不揮発記憶部16から転送されたデータに対して、読み出しおよび書き込みをする。例えば、アクセス処理部28は、不揮発記憶部16から第1記憶部14に転送されたデータに対して、ページより小さいサイズ(例えばプロセッサのキャッシュラインサイズ)でデータの読み出しおよび書き込みをする。そして、第1アクセス処理において、アクセス処理部28は、第1記憶部14の空き容量が無くなり不揮発記憶部16から第1記憶部14にデータを転送できなくなった場合、および、第1記憶部14に記憶させておくことが不要と判断された場合等において、第1記憶部14に転送されたデータを、不揮発記憶部16における第1ページに書き戻す。
なお、アクセス処理部28は、第1記憶部14に転送されたデータを、第1ページ(同じ場所)以外に書き戻してもよい。例えば、アクセス処理部28は、第1アクセス処理において、不揮発記憶部16から第1記憶部14に転送されたデータを、何れの要求アドレスも対応付けられていない未使用ページであり、第1アクセス処理に設定されており、且つ、書き換え回数が所定値以下のページに書き戻してよい。これにより、アクセス処理部28は、ページ毎の書き換え回数の隔たりを小さくするウェアレベリング制御を実行し、特定のページの品質劣化を抑制することができる。
また、アクセス処理部28は、第2アクセス処理に設定されている第2ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発記憶部16に対して、第2アクセス処理を実行する。
例えば、図5に示すように、第2アクセス処理において、アクセス処理部28は、不揮発記憶部16における第2ページに対して、直接読み出しおよび書き込みをする。例えば、アクセス処理部28は、ページより小さいサイズでデータの読み出しおよび書き込みをする。
このように、アクセス処理部28は、2種類のアクセス方法により不揮発記憶部16に対してアクセスする。例えば、メモリアクセスに局所性が高いアプリケーションを実行した場合、アクセス処理部28は、第1アクセス処理により不揮発記憶部16に記憶されたページをアクセスする。これにより、アクセス処理部28は、メモリアクセスに局所性が高いアプリケーションを実行した場合、同一のページに対してより高速に処理をすることができる。
また、例えば、ランダムアクセスのようにメモリアクセスに局所性が低い処理を実行する場合、アクセス処理部28は、第1アクセス処理により不揮発記憶部16に記憶されたページをアクセスする。これにより、アクセス処理部28は、局所性が低い処理を実行する場合、不揮発記憶部16から第1記憶部14への転送処理のオーバヘッドを無くして、効率良く処理をすることができる。このように、アクセス処理部28は、第1アクセス処理および第2アクセス処理の2種類のアクセス方法を用いることにより、処理の効率化を図ることができる。
カウンタ記憶部36は、カウンタテーブルを記憶する。カウンタテーブルは、不揮発記憶部16に含まれる複数のページのそれぞれについての、データの書き換え回数を表すカウンタ値を格納する。
例えば、カウンタテーブルは、図6に示すように、不揮発記憶部16に含まれる複数のページの番号に対応させて、カウンタ値を記憶する。カウンタ値は、対応するページが書き換えられた回数を表す。カウンタ値は、工場出荷時等の初期時には、例えば0とされており、書き換えられる毎に1ずつ増加(インクリメント)されていく。なお、カウンタテーブルは、図6に示すような構成に限らず、他の構成であってもよい。
更新部40は、カウンタテーブルに記憶されたカウンタ値を更新する。更新部40は、アクセス処理部28が不揮発記憶部16にデータを書き込んだ場合、書き込んだデータのアドレス情報を取得し、取得したアドレス情報に基づきカウンタ値を更新する。
管理部50は、カウンタ記憶部36に記憶されたページ毎のカウンタ値に基づき、不揮発記憶部16に対するウェアレベリング制御を実行する。管理部50は、不揮発記憶部16における全体の領域に平均的にデータが書き込まれるように、データが書き込まれるページを制御する。
ここで、管理部50は、第2アクセス処理に設定されている第3ページの品質が基準値以下となったか否かを判断する。例えば、管理部50は、第2アクセス処理に設定されている第3ページの書き込み回数が所定値以上となった場合、品質が基準値以下となったと判断してよい。また、管理部50は、第2アクセス処理に設定されている第3ページから読み出されたデータの誤りビット数が所定値以上となった場合、品質が基準値以下となったと判断してよい。また、管理部50は、書き込み回数または誤りビット数を用いるのではなく、他の方法により、品質が基準値以下となったと判断してもよい。品質低下は、劣化および摩耗等により生じる。品質が基準値以下とは、別の言い方をすると、例えば、劣化(の度合い)または摩耗(の度合い)が基準値以上ということである。管理部50は、誤りビット数を検出したり、書換え回数を検出したりすることにより、品質劣化を判断することができる。
管理部50は、第2アクセス処理に設定されている第3ページの品質が基準値以下となった場合、第3ページに対するアクセス方法を、第2アクセス処理から第1アクセス処理に変更する。
さらに、管理部50は、第3ページの品質が基準値以下となった場合、第2アクセス処理が設定され、未使用であり、且つ、書き換え回数が予め定められた基準を満たすページを、第4ページとして選択する。例えば、管理部50は、カウンタテーブルおよび未使用テーブルを参照して、第4ページを選択する。書き換え回数が予め定められた基準を満たすページは、例えば、書き換え回数が最小のページであってもよいし、書き換え回数が予め定められた回数以下のページであってもよい。
そして、管理部50は、第3ページの品質が基準値以下となった場合、第3ページに記憶されたデータを、第2アクセス処理に設定されている第4ページに移動させる。さらに、管理部50は、設定記憶部26に記憶されている未使用テーブルから第4ページを削除して、変換テーブルに第4ページを登録する。そして、管理部50は、変換テーブルに登録した第4ページに対して、第3ページに対応付けられていた要求アドレスを対応付ける。
さらに、管理部50は、第3ページを何れの要求アドレスも対応付けられていない未使用ページに変更する。例えば、管理部50は、第3ページを変換テーブルから削除して、未使用テーブルに第3ページを登録する。
図7は、第1実施形態に係る管理部50の処理を示すフローチャートである。管理部50は、例えば、図7に示す処理を実行する。
まず、S11において、管理部50は、第2アクセス処理に設定された第3ページの品質が、基準値以下となったか否かを判断する。判断のタイミングは、どのようなタイミングであってもよい。
例えば、管理部50は、第2アクセス処理に設定されている第3ページの書き込み回数が更新されたタイミングにおいて、書き込み回数が所定値以上となったか否かを判断してもよい。また、管理部50は、第3ページからデータが読み出されたタイミングにおいて、読み出されたデータの誤りビット数が所定値以上となったか否かを判断してもよい。
管理部50は、第3ページの品質が基準値以下ではない場合(S11のNo)、本フローを終了する。管理部50は、第3ページの品質が基準値以下となった場合(S11のYes)、処理をS12に進める。
S12において、管理部50は、設定変更処理を実行する。設定変更処理については、図8を参照して説明する。管理部50は、設定変更処理を終了すると本フローを終了する。
図8は、第1実施形態に係る設定変更処理を示すフローチャートである。図9は、第1実施形態での変換テーブルおよび未使用テーブルの変更例を示す図である。
管理部50は、図7のS12の設定変更処理において、図8に示すS21〜S25の処理を実行する。
まず、S21において、管理部50は、第4ページを選択する。具体的には、管理部50は、設定記憶部26に記憶された未使用テーブルを参照して、未使用ページであって、アクセス方法が第2アクセス処理に設定されている1以上のページを検出する。そして、管理部50は、カウンタ記憶部36に記憶されたカウンタテーブルを参照して、検出された1以上のページのうちの、書き換え回数が予め定められた基準を満たすページを選択する。書き換え回数が予め定められた基準を満たすページは、書き換え回数が最小のページであってもよいし、書き換え回数が予め定められた回数以下のページであってもよい。
続いて、S22において、管理部50は、不揮発記憶部16にアクセスして、第3ページに記憶されたデータを、第2アクセス処理に設定されている第4ページに移動させる。例えば、管理部50は、第3ページに記憶されたデータを読み出して、第4ページに書き込む。そして、管理部50は、図9に示すように、未使用テーブルにおける第4ページ(ページ番号“0052”)のエントリを削除して、変換テーブルに第4ページのエントリを新たに追加する。
続いて、S23において、管理部50は、第4ページに対して、第3ページに対応付けられていた要求アドレスを対応付ける。例えば、図9に示すように、管理部50は、変換テーブルに追加した第4ページのエントリに、第3ページのエントリに記憶されていた要求アドレス(“1101”)を記憶させる。
続いて、S24において、管理部50は、第3ページを、何れの要求アドレスも対応付けられていない未使用ページに変更する。例えば、図9に示すように、管理部50は、変換テーブルにおける第3ページ(ページ番号“0001”)のエントリを削除し、未使用テーブルに第3ページのエントリを新たに追加する。
続いて、S25において、管理部50は、第3ページに対するアクセス方法を、第2アクセス処理から第1アクセス処理に変更する。例えば、管理部50は、図9に示すように、未使用テーブルにおける第3ページのエントリにおけるアクセス方法を、第2アクセス処理から第1アクセス処理に変更する。
そして、管理部50は、S25の処理を終えると、処理を図7のフローに戻す。
図10は、誤り訂正をしたビット数により品質を判断する場合の管理部50の処理を示すフローチャートである。管理部50は、第2アクセス処理に設定されたページの品質が基準値以下となったか否かを、誤り訂正をしたビット数により判断してもよい。この場合、管理部50は、図10に示すS31〜S35の処理を実行する。
まず、S31において、管理部50は、第2アクセス処理に設定された第3ページに対する読み出し要求が発行されたか否かを判断する。該当する読み出し要求が発行されない場合(S31のNo)、管理部50は、処理をS31で待機する。該当する読み出し要求が発行された場合(S31のYes)、管理部50は、処理をS32に進める。
続いて、S32において、管理部50は、第3ページから読み出したデータに対してECC(Error Check and Correct Memory)により誤り訂正したビット数が、所定数以上か否かを判断する。
管理部50は、ECCにより3ビット分の誤りを訂正可能な場合、例えば、2ビット(または1ビット)の誤りが発生したか否かを判断する。また、例えば、管理部50は、ECCにより2ビット分の誤りを訂正可能な場合、例えば、1ビットの誤りが発生したか否かを判断する。すなわち、管理部50は、ECCにより誤りを訂正可能な最大のビットより小さいビット数分の誤りが発生したか否かを判断する。これにより、管理部50は、書き換え回数の限界値に達する前に、第3ページのアクセス方法を第2アクセス処理から第1アクセス処理に変更することができる。
ECCにより誤り訂正したビット数が所定数以上ではない場合(S32のNo)、管理部50は、処理をS33に進める。S33において、管理部50は、アクセス処理部28に対して、第3ページに対して第2アクセス処理を継続させる。
ECCにより誤り訂正したビット数が所定数以上であった場合(S32のYes)、管理部50は、処理をS34に進める。S34において、管理部50は、図8のS21〜S25で示した設定変更処理を実行する。S34の処理を終了すると、管理部50は、処理をS35に進める。S35において、管理部50は、アクセス処理部28に対して、第4ページに対して第2アクセス処理を継続させる。
そして、管理部50は、S33またはS35の処理を終了すると、本フローを終了する。
(効果)
第1アクセス処理を実行する場合、更新部40は、ページ単位で不揮発記憶部16への書換え回数を管理することができる。従って、管理部50は、例えば特定のページへの書き換えが集中しないように、不揮発記憶部16へデータを書き戻せば、平均化を容易に実行することができる。また、第1アクセス処理を実行する場合、処理回路12からのアクセス要求に応じて、第1記憶部14に転送されたデータに対してアクセスするので、管理部50は、不揮発記憶部16に対する書き換え回数を少なくすることができる。
一方、第2アクセス処理を実行する場合、処理回路12からの全てのアクセス要求に応じて、不揮発記憶部16が書き換えられるので、管理部50は、ある特定のバイトに対する書き換えが集中して、不揮発記憶部16に対する書き換え回数が多くなる可能性がある。従って、第2アクセス処理が多く実行された場合、不揮発記憶部16は、短時間で、書き換え回数の限界値に達する可能性が高い。
しかし、管理部50は、第3ページの品質が基準値以下となった場合、第3ページに対するアクセス方法を、第2アクセス処理から第1アクセス処理に変更する。これにより、管理部50は、書き換え回数の限界値に近づいた第3ページを、書き換え回数を少なくするアクセス方法に切り換えることができる。従って、管理部50は、書き換え回数をより平均化して、不揮発記憶部16の寿命を延ばすことができる。
さらに、管理部50は、第3ページの品質が基準値以下となった場合、第3ページに記憶されたデータを、第2アクセス処理に設定されている第4ページに移動させるので、処理回路12から発行されていたメモリアクセスを同一のアクセス方法で継続させることができる。さらに、管理部50は、比較的に書き換え回数の少ないページを第4ページに選択するので、書き換え回数をより平均化して、不揮発記憶部16の寿命を延ばすことができる。
以上のように、第1実施形態に係る情報処理装置10によれば、不揮発記憶部16に対して効率良くアクセスして不揮発記憶部16の寿命を延ばすことができる。
(第2実施形態)
図11は、第2実施形態に係る管理部50の処理を示すフローチャートである。第2実施形態において、管理部50は、例えば、図11に示すS41〜S45の処理を実行する。
まず、S41において、管理部50は、第2アクセス処理に設定された第3ページに対する読み出し要求が発行されたか否かを判断する。該当する読み出し要求が発行されない場合(S41のNo)、管理部50は、処理をS41で待機する。該当する読み出し要求が発行された場合(S41のYes)、管理部50は、処理をS42に進める。
続いて、S42において、管理部50は、第3ページから読み出したデータに対してECCにより誤り訂正したビット数が、所定数以上か否かを判断する。ECCにより誤り訂正したビット数が所定数以上ではない場合(S42のNo)、管理部50は、処理をS43に進める。S43において、管理部50は、アクセス処理部28に対して、第3ページに対して第2アクセス処理を継続させる。
ECCにより誤り訂正したビット数が所定数以上であった場合(S42のYes)、管理部50は、処理をS44に進める。S44において、管理部50は、第3ページに対するアクセス方法を、第2アクセス処理から第1アクセス処理に変更する。S44の処理を終了すると、管理部50は、処理をS45に進める。S45において、管理部50は、アクセス処理部28に対して、第3ページに対して第1アクセス処理を継続させる。
そして、管理部50は、S43またはS45の処理を終了すると、本フローを終了する。
以上のように、第2実施形態において、管理部50は、第2アクセス処理に設定されている第3ページの品質が基準値以下となった場合、第3ページに対するアクセス方法を、第2アクセス処理から第1アクセス処理に変更する。しかし、管理部50は、第3ページに記憶されたデータを、第2アクセス処理に設定されている第4ページに移動させない。
従って、管理部50は、処理回路12から発行されていたメモリアクセスを同一のアクセス方法で継続させることはできない。しかし、管理部50は、第3ページに対するアクセス方法を、第2アクセス処理から第1アクセス処理に変更するので、少なくとも、書き換え回数の限界値に近づいた第3ページを、以後、書き換え回数を少なくするアクセス方法に切り換えることができる。
以上のように、第2実施形態に係る情報処理装置10によれば、不揮発記憶部16に対する書き換え回数を平均化して、不揮発記憶部16の寿命を延ばすことができる。
(第3実施形態)
図12は、第3実施形態に係る不揮発記憶部16を示す図である。不揮発記憶部16は、複数のページを含む。第3実施形態において、複数のページのそれぞれは、複数のサブページのそれぞれを含む。
サブページは、処理回路12によるデータの管理単位であってよい。処理回路12は、サブページ単位で、データを書き込みおよび読み出しが可能である。なお、本実施形態においては、サブページと称しているが、他の名称であってもよい。
図13は、第3実施形態に係る変換テーブルの一例を示す図である。第3実施形態に係る変換テーブルは、図13に示すように、それぞれのページについて、ページ全体に対するアクセス方法、または、含まれる複数のサブページのそれぞれに対するアクセス方法の何れかを記憶する。また、変換テーブルは、例えば、ページ全体に対するアクセス方法について設定されているページについては、そのページに対応する要求アクセスを記憶する。また、変換テーブルは、サブページに対するアクセス方法が設定されている場合には、そのサブページに対応する要求アドレスを記憶する。
従って、第3実施形態において、管理部50は、第1アクセス処理を実行するかまたは第2アクセス処理を実行するかを、ページの全体に対して設定することができる。さらに、管理部50は、ページ全体に対してアクセス方法を設定していないページについては、含まれるそれぞれのサブページに対して、第1アクセス処理を実行するかまたは第2アクセス処理を実行するかを設定することができる。なお、変換テーブルは、図13に示すような構成に限らず、他の構成であってもよい。
図14は、第3実施形態に係る未使用テーブルの一例を示す図である。第3実施形態に係る未使用テーブルは、図14に示すように、不揮発記憶部16に含まれる複数のページのうちの、処理回路12がアクセス要求をしていないそれぞれのページまたはそれぞれのサブページについて、アクセス方法を記憶する。
例えば、未使用テーブルは、ページ全体が未使用であり、そのページに含まれる全てのサブページに対するアクセス方法が同一であれば、そのページの全体に対するアクセス方法を記憶する。また、未使用テーブルは、一部のサブページが未使用であるページ、または、アクセス方法がサブページ毎に異なっているページについては、ページ全体に対するアクセス方法を記憶せず、サブページ毎のアクセス方法を記憶する。なお、未使用テーブルは、図14に示すような構成に限らず他の構成であってもよい。
図15は、第3実施形態に係る設定変更処理を示すフローチャートである。図16は、第3実施形態での変換テーブルおよび未使用テーブルの変更例を示す図である。
第3実施形態に係る管理部50は、図7のS12の設定変更処理において、図15に示すS51〜S58の処理を実行する。
まず、S51において、管理部50は、第3ページに含まれる複数のサブページのうちの品質が基準値以下となった第1サブページを特定する。例えば、ECCにより誤り訂正したビット数が所定値以上となったサブページを、第1サブページとして特定する。
続いて、S52において、管理部50は、第2サブページを選択する。例えば、管理部50は、第2アクセス処理が設定され、未使用であり、且つ、書き換え回数が予め定められた基準を満たすサブページを、第2サブページとして選択する。書き換え回数が予め定められた基準を満たすサブページは、書き換え回数が最小のサブページであってもよいし、書き換え回数が予め定められた回数以下のサブページであってもよい。
続いて、S53において、管理部50は、第1サブページに記憶されたデータを、第2アクセス処理に設定されている第2サブページに移動させる。例えば、管理部50は、第1サブページに記憶されたデータを読み出して、第2サブページに書き込む。さらに、管理部50は、図16に示すように、未使用テーブルにおける第2サブページ(ページ番号およびサブページ番号“0052/3”)のエントリを削除して、変換テーブルに第2サブページのエントリを新たに追加する。さらに、管理部50は、変換テーブルに、第3ページのうちの、第1サブページ以外のサブページ(ページ番号およびサブページ番号“0001/0”、“0001/1”、“0001/2”)のエントリを新たに追加する。
続いて、S54において、管理部50は、第2サブページに対して、第1サブページに対応付けられていた要求アドレスを対応付ける。例えば、図16に示すように、管理部50は、変換テーブルに追加した第2サブページのエントリに、第1サブページに対応付けられていた要求アドレス(“1101/3”)を記憶させる。
続いて、S55において、管理部50は、第3ページのうちの、第1サブページ以外のサブページに対して、要求アドレスを対応付ける。例えば、図16に示すように、管理部50は、変換テーブルに追加した第3ページのうちの第1サブページ以外のサブページのエントリに、要求アドレス(“1101/0”、“1101/1”、“1101/2”)を記憶させる。
続いて、S56において、管理部50は、第1サブページを、何れの要求アドレスも対応付けられていない未使用サブページに変更する。例えば、図16に示すように、管理部50は、変換テーブルにおける第3ページ(ページ番号およびサブページ番号“0001/全体”)のエントリを削除し、未使用テーブルに第1サブページ(ページ番号およびサブページ番号“0001/3”)のエントリを新たに追加する。
続いて、S57において、管理部50は、第1サブページに対するアクセス方法を、第2アクセス処理から第1アクセス処理に変更する。例えば、管理部50は、図16に示すように、未使用テーブルにおける第1サブページのエントリにおけるアクセス方法を、第2アクセス処理から第1アクセス処理に変更する。
続いて、S58において、管理部50は、第3ページのうちの、第1サブページ以外のサブページに対するアクセス方法を、第2アクセス処理に設定する。例えば、管理部50は、図16に示すように、変換テーブルにおける第1サブページ以外のサブページ(ページ番号およびサブページ番号“0001/0”、“0001/1”、“0001/2”)のエントリにおけるアクセス方法を、第2アクセス処理に設定する。
そして、管理部50は、S58の処理を終えると、処理を図7のフローに戻す。
不揮発記憶部16の容量が大きくなると、変換テーブルのサイズも大きくなり、アドレス変換効率が悪くなる。変換テーブルを小さくするためには、ページのサイズを大きくしなければならない。しかし、ページのサイズが大きいと、第2アクセス処理から第1アクセス処理に切り換えた場合に、書き換え回数が少ない領域が多く含まれる可能性が高くなる。そこで、第3実施形態において、管理部50は、第2アクセス処理から第1アクセス処理へ切り換える場合には、ページよりも小さいサブページのサイズで切り換えを行い、書き換え回数が少ない領域については第2アクセス処理でアクセスをさせるようにした。これにより、第3実施形態に係る管理部50は、最小限の領域を第2アクセス処理に切り換えて、効率良く不揮発記憶部16の寿命を延ばすことができる。
(第4実施形態)
図17は、第4実施形態に係る不揮発記憶部16の構成を示す図である。第4実施形態に係る不揮発記憶部16は、個別に交換可能であり、それぞれに優先度が設定された複数の要素メモリ60を含む。
要素メモリ60は、物理的にまとまった単位のメモリであり、1つの半導体メモリであってもよいし、1つのスロットに差し込まれたDIMM(Dual Inline Memory Module)のようなメモリ基板であってもよい。また、それぞれの要素メモリ60に設定された優先度は、管理部50が識別できればよいので、それぞれの要素メモリ60が優先度を記憶していなくてもよい。
図18は、第4実施形態に係る第4ページの選択処理を示すフローチャートである。第4ページを選択する場合、管理部50は、複数の要素メモリ60のうち、書き換え回数が所定条件を満たした要素メモリ60であって優先度の最も高い要素メモリ60を選択し、選択した要素メモリ60の中から第4ページを選択する。
例えば、管理部50は、第4ページを選択する場合、図18に示すS61〜S64の処理を実行する。
まず、S61において、管理部50は、優先度の最も高い要素メモリ60を選択する。続いて、S62において、管理部50は、選択した要素メモリ60における平均の書き換え回数が所定値以下であるか否かを判断する。なお、管理部50は、書き換え回数の総和が所定値以下であるか否かを判断してもよい。例えば、処理回路12において実行されているオペレーティングシステムが、それぞれの要素メモリ60における書き換え回数を監視しており、条件を満たした要素メモリ60を選択してもよい。この場合、管理部50は、処理回路12から条件を満たしているか(例えば書き換え回数の平均が所定値以下か)の情報を取得する。
平均の書き換え回数が所定値以下ではない場合(S62のNo)、管理部50は、処理をS63に進める。S63において、管理部50は、次に優先度の高い要素メモリ60を選択して、処理をS62に進める。この場合、S62において、管理部50は、選択された要素メモリ60に対して同様の処理を実行し、平均の書き換え回数が所定値以下の要素メモリ60が選択されるまで、S62およびS63の処理を繰り返す。
平均の書き換え回数が所定値以下である場合(S62のYes)、管理部50は、処理をS64に進める。S64において、管理部50は、選択した要素メモリ60の中から、第4ページを選択する。この場合において、管理部50は、要素メモリ60内での書き換え回数が平均化されるように第4ページを選択する。
以上の処理により管理部50は、第4ページを選択することができる。なお、管理部50は、第3実施形態の第2サブページを選択する場合にも同様の処理を実行してもよい。
第4実施形態に係る情報処理装置10は、このように第4ページを選択することにより、優先度の高い要素メモリ60から順に使用することができる。これにより、情報処理装置10は、例えば、要素メモリ60の交換が必要となった場合に、全部の要素メモリ60を一括して交換せずに、一部分の要素メモリ60を交換させることができる。なお、情報処理装置10は、平均の使用回数が所定数を上回った要素メモリ60を、例えばデバイスインターフェース等を介して接続されるストレージ用に切り換えてもよい。
(第5実施形態)
図19は、第5実施形態に係るメモリコントローラ18の構成を示す図である。第5実施形態に係るメモリコントローラ18は、モード切換部70をさらに有する。
モード切換部70は、情報処理装置10が所定状態に達するまで第1モードに設定し、所定状態に達した後に第2モードに切り換える。そして、モード切換部70は、現在のモードをアクセス処理部28に与える。例えば、モード切換部70は、情報処理装置10の使用が開始されてから予め定められたタイミングまでの期間(第1期間)、第1モードに設定する。そして、モード切換部70は、情報処理装置10の使用が開始されてから予め定められたタイミング後の期間(第2期間)、第2モードに設定する。
図20は、第2モードでのアクセス処理部28の処理の流れを示すフローチャートである。第2モード、すなわち、所定状態に達した後の第2期間において、例えば、アクセス処理部28は、図20に示すS71からS76までに示す処理を実行する。
まず、S71において、アクセス処理部28は、不揮発記憶部16に対するアクセス要求(読み出し要求または書き込み要求)が検出されたか否かを判断する。アクセス要求が検出されない場合(S71のNo)、アクセス処理部28は、処理をS71で待機する。アクセス要求が検出された場合(S71のYes)、アクセス処理部28は、処理をS72に進める。
S72において、アクセス処理部28は、アクセス先のページが第1アクセス処理に設定されているか否かを判断する。第1アクセス処理に設定されている場合(S72のYes)、アクセス処理部28は、処理をS73に進める。そして、S73において、アクセス処理部28は、第1アクセス処理を実行する。すなわち、第2モードにおいて、第1アクセス処理に設定されている第1ページに対して書き込みまたは読み出しの要求を受けた場合、アクセス処理部28は、第1アクセス処理を実行する。
第1アクセス処理に設定されていない場合(S72のNo)、つまり、第2アクセス処理に設定されている場合、アクセス処理部28は、処理をS74に進める。S74において、アクセス処理部28は、アクセス要求が読み出し要求か否かを判断する。
読み出し要求を受けた場合(S74のYes)、アクセス処理部28は、S75において、第2アクセス処理を実行する。すなわち、第2モードにおいて、第2アクセス処理に設定されている第2ページに対して読み出しの要求を受けた場合、アクセス処理部28は、第2アクセス処理を実行する。
読み出し要求を受けていない場合、すなわち、書き込み要求を受けた場合(S74のNo)、アクセス処理部28は、S76において、第1アクセス処理を実行する。すなわち、第2モードにおいて、第2アクセス処理に設定されている第2ページに対して書き込みの要求を受けた場合、アクセス処理部28は、第1アクセス処理を実行する。そして、アクセス処理部28は、S73またはS74を終えると本フローを終了する。
なお、アクセス処理部28は、S76において、第1アクセス処理を実行することに代えて、書き込みを実行しなくてもよい。つまり、この場合、第2モードにおいて、第2アクセス処理に設定されている第2ページに対して書き込みの要求を受けた場合、アクセス処理部28は、書き込みをしない。
第2アクセス処理に設定されているページのアクセス方法を第1アクセス処理に変更していくと、最終的には、第2アクセス処理に設定されているページがなくなる。本実施形態において、モード切換部70は、第2アクセス処理に設定されているページがなくなる前の段階において、第1モードから第2モードへと切り換える。第2モードにおいて、アクセス処理部28は、第2アクセス処理による読み出しは可能である。しかし、第2モードにおいて、アクセス処理部28は、第2アクセス処理に設定されているページに対して、第1アクセス処理で書き込みをする(または書き込みをしない)。
これにより、アクセス処理部28は、第2モードにおいて、アクセス方法の切り換えが生じるような書き込みを少なくすることができる。しかし、アクセス処理部28は、少なくとも第2アクセス処理による読み出しを継続することができる。
なお、第1モードから第2モードへと切り換えるタイミングは、例えば、不揮発記憶部16に対する書き換え回数の総数が予め定められた閾値を超えた時点であってよい。また、切り換えタイミングは、アクセス方法を第2アクセス処理から第1アクセス処理に変更したページの数が閾値を超えた時点であってもよい。また、切り換えタイミングは、選択可能な第4ページの数が所定数を下回った時点であってもよい。また、切り換えタイミングは、何らかの物理量が閾値を超えた時点であってもよい。
また、切り換えタイミングは、情報処理装置10の使用が開始されてから所定の時間が経過した時点であってもよい。また、切り換えタイミングは、処理回路12により実行されているアプリケーションまたはオペレーティングシステムから、所定の通知を受けた時点であってもよい。
例えば、機械学習におけるディープラーニングを利用する組込み機器等は、機器使用開始から一定期間、ディープラーニングのネットワークあるいはニューラルネットワークのトレーニングをする。情報処理装置10がこのような機器に適用された場合、処理回路12は、トレーニング期間において、ネットワークなどのデータを不揮発記憶部16に記憶させるため、データの更新を第2アクセス処理で行う。しかし、トレーニング期間を終了した後には、処理回路12は、不揮発記憶部16への書き込みしない。
ただし、処理回路12は、トレーニング期間を終了した後であっても、認識処理を実行するために、第2アクセス処理によるデータの読み出しをする。従って、モード切換部70は、トレーニング期間においては第1モードに設定し、トレーニングを終了した後の期間においては第2モードに設定してもよい。これにより、アクセス処理部28は、トレーニング期間中においては、不揮発記憶部16に第2アクセス処理による書き込みをすることができ、トレーニング期間中においては、不揮発記憶部16から第2アクセス処理による読み出しをすることができる。
(第6実施形態)
図21は、第6実施形態に係るメモリコントローラ18の構成を示す図である。第6実施形態に係るメモリコントローラ18は、管理情報記憶部38をさらに有する。
管理情報記憶部38は、管理テーブルを記憶する。管理テーブルは、所定個のエントリを有する。それぞれのエントリには、管理情報を格納することができる。すなわち、管理テーブルは、所定個の第1領域(ページ)のそれぞれについての管理情報を格納可能である。管理テーブルが格納できる管理情報の数は、不揮発記憶部16に含まれる第1領域の数より少ない。管理テーブルは、処理回路12が不揮発記憶部16に最近アクセスした第1領域(アクティブな第1領域(アクティブなページ))についての管理情報を格納する。管理テーブルは、エントリが一杯となった場合、例えば最も古い管理情報(アクセスしてから最も時間が経過した管理情報)を消去して、新しい管理情報を格納する。
管理情報は、対応する第1領域に含まれる複数の第2領域(キャッシュライン)のそれぞれが、書き込み済みか未書き込みかを示す。例えば、管理情報は、対応する第1領域に記憶されたデータに何らデータが書き込まれていない場合、対応する第1領域に含まれている複数の第2領域の全ての状態が、未書き込みとされている。管理情報は、何らデータが書き込まれていない第1領域に含まれる何れかの第2領域にデータが書き込まれた場合、その第2領域の状態が書き込み済みとされ、他の書き込み領域の状態が未書き込みとされる。なお、管理テーブルおよび管理情報については、図22を参照してさらに説明する。
更新部40は、カウンタテーブルに格納されたそれぞれのカウンタ値、および、管理テーブルに格納されたそれぞれの管理情報を更新する。更新部40は、処理回路12が不揮発記憶部16にデータを書き込んだ場合、書き込んだデータのアドレス情報を取得し、取得したアドレス情報に基づきカウンタ値およびアドレス情報を更新する。更新部40の具体的な処理手順については、図23および図24を参照してさらに説明する。
図22は、第6実施形態に係る管理テーブルの一例を示す図である。管理テーブルは、管理情報を格納するための所定個のエントリを有する。例えば、図22の例において、管理テーブルは、64個のエントリを有する。
それぞれのエントリは、管理情報を格納する。管理情報は、識別情報と、マップ情報とを含む。
識別情報は、その管理情報が管理する第1領域(ページ)を識別するための番号(ページ番号)である。更新部40は、識別情報を参照することにより、そのエントリが何れの第1領域を管理している管理情報を格納しているかを判断することができる。
マップ情報は、対応する第1領域(ページ)に含まれる複数の第2領域(キャッシュライン)のそれぞれが、書き込み済みか未書き込みかを示す。マップ情報は、第1領域(ページ)に含まれる複数の第2領域(キャッシュライン)のそれぞれに対応したビットを含む。
例えば、マップ情報は、キャッシュライン番号に対応したビットを含む。例えば、1ページ内に64個のキャッシュラインが含まれる場合、マップ情報は、64個のビットを含む。それぞれのビットは、例えば1である場合、対応するキャッシュラインが、書き込み済みであることを示す。また、それぞれのビットは、例えば0である場合、対応するキャッシュラインが、未書き込みであることを示す。
なお、管理テーブルは、全てのエントリに管理情報が格納されていなくてよい。つまり、管理テーブルは、未使用エントリが有ってもよい。
図23は、第6実施形態に係る更新部40による処理の流れを示すフローチャートである。更新部40は、図23および図24に示すフローチャートに従って、カウンタテーブルおよび管理テーブルを更新する。
まず、S111において、更新部40は、不揮発記憶部16にデータの書き込みがされるか否かを検出する。更新部40は、書き込みがされない場合(S111のNo)、処理をS111で待機し、書き込みがされる場合(S111のYes)、処理をS112に進める。
S112において、更新部40は、書き込み対象のデータ(第1データ)が書き込まれる第1領域である対象第1領域(対象ページ)についての管理情報が、管理テーブルに存在するか否かを判断する。例えば、更新部40は、アドレス情報に含まれるページ番号と同一のページ番号を含む管理情報が、管理テーブルに格納されているか否かを判断する。
管理テーブルに対象第1領域についての管理情報が存在しない場合、例えば、アドレス情報に含まれるページ番号と同一のページ番号を含む管理情報が、管理テーブルに格納されていない場合(S112のNo)、更新部40は、処理をS113に進める。S113において、更新部40は、管理情報生成処理を実行する。管理情報生成処理については、図24を参照して説明する。更新部40は、管理情報生成処理を終了した場合、本フローを終了し、次の書き込みを待機する。
管理テーブルに対象第1領域についての管理情報が存在する場合、例えば、アドレス情報に含まれるページ番号と同一のページ番号を含む管理情報が管理テーブルに格納されている場合(S112のYes)、更新部40は、処理をS114に進める。
S114において、更新部40は、対象第1領域についての管理情報に示された第1データが書き込まれる第2領域である対象第2領域の状態が、書き込み済みであるか否かを判断する。例えば、更新部40は、アドレス情報に含まれるページ番号に対応する管理情報におけるマップ情報を参照して、アドレス情報に含まれるキャッシュライン番号に対応するビットが1であるか否かを判断する。
更新部40は、対象第2領域の状態が未書き込みの場合、例えば、アドレス情報に含まれるキャッシュライン番号に対応するビットが0である場合(S114のNo)、処理をS115に進める。S115において、更新部40は、対象第1領域についての管理情報に示された対象第2領域の状態を、未書き込みから、書き込み済みに変更する。例えば、更新部40は、対応するビットを、0から1に変更する。これにより、更新部40は、第1データが書き込まれた後の不揮発記憶部16の状態を、管理テーブルに反映することができる。更新部40は、S115の処理を終了した場合、本フローを終了し、次の書き込みを待機する。
更新部40は、対象第1領域についての管理情報に示された対象第2領域の状態が書き込み済みの場合、例えば、アドレス情報に含まれるキャッシュライン番号に対応するビットが1である場合(S114のYes)、処理をS116に進める。S116において、更新部40は、対象第1領域についての管理情報に示された対象第2領域以外の第2領域の状態を、未書き込みに変更する。つまり、更新部40は、対象第1領域についての管理情報に示された対象第2領域のみを書き込み済みとし、他の第2領域を未書き込みとする。例えば、更新部40は、対応するビットのみを1とし、他のビットを0とする。
これにより、更新部40は、対象第2領域に対して第1データを書き込んだ後の不揮発記憶部16の状態を、管理テーブルに反映することができる。
更新部40は、S116を終了すると、処理をS117に進める。S117において、更新部40は、対象第1領域についてのカウンタ値を更新する。例えば、更新部40は、カウンタテーブルにおける、アドレス情報に含まれるページ番号に対応するカウンタ値を、1増加させる。これにより、更新部40は、対象第1領域の書き換え回数を更新することができる。
なお、更新部40は、S116とS117の処理を逆に実行してもよい。更新部40は、S116およびS117の処理を終了した場合、本フローを終了し、次の書き込みを待機する。
図24は、第6実施形態に係る更新部40による管理情報生成処理の流れを示すフローチャートである。更新部40は、図23のS113における管理情報生成処理において、図24に示すS121からS125の処理を実行する。
まず、S121において、更新部40は、管理テーブルに未使用エントリが有るか否かを判断する。つまり、更新部40は、管理情報が格納されていないエントリが、管理テーブルに存在するか否かを判断する。
未使用エントリが有る場合(S121のYes)、更新部40は、処理をS122に進める。S122において、更新部40は、未使用エントリに対象第1領域についての管理情報を書き込む。つまり、更新部40は、対象第1領域を識別する識別情報と、対象第2領域のみを書き込み済みとし、他の領域を未書き込みとしたマップ情報とを含む管理情報を、未使用エントリに書き込む。例えば、更新部40は、アドレス情報に含まれるページ番号と、アドレス情報に含まれるキャッシュライン番号に対応するビットのみを1とし、他のビットを0としたマップ情報とを、未使用エントリに書き込む。
これにより、更新部40は、第1データが書き込まれた後の不揮発記憶部16の状態を管理テーブルに反映することができる。更新部40は、S122の処理を終了した場合、処理を図23のフローに戻す。
未使用エントリが無い場合(S121のNo)、更新部40は、処理をS123に進める。S123において、更新部40は、管理テーブルから、何れかの使用中エントリを選択する。例えば、更新部40は、最も古い管理情報を格納した使用中エントリを選択する。なお、更新部40は、他のアルゴリズムに従って何れかの使用中エントリを選択してもよい。
更新部40は、S123を終了すると、処理をS124に進める。S124において、更新部40は、選択した使用中エントリに書き込まれている管理情報を消去して、対象第1領域についての管理情報を書き込む。つまり、更新部40は、選択した使用中エントリに、対象第1領域を識別する識別情報と、対象第2領域のみを書き込み済みとし、他の領域を未書き込みとしたマップ情報とを含む管理情報を、上書きする。例えば、更新部40は、アドレス情報に含まれるページ番号と、アドレス情報に含まれるキャッシュライン番号に対応するビットのみを1とし、他のビットを0としたマップ情報とを、選択した使用中エントリに上書きする。
これにより、更新部40は、選択した管理情報(例えば最も古い管理情報)を管理テーブルから消去して、新たな管理情報を管理テーブルに格納することができる。そして、更新部40は、第1データが書き込まれた後の不揮発記憶部16の状態を管理テーブルに反映することができる。
更新部40は、S124を終了すると、処理をS125に進める。S125において、更新部40は、管理テーブルから消去した管理情報により管理されていた第1領域についてのカウンタ値を更新する。例えば、更新部40は、カウンタテーブルにおける、消去する管理情報に含まれていたページ番号に対応するカウンタ値を、1増加させる。
S125の処理を実行することにより、更新部40は、管理テーブルを用いた管理を終了した第1領域について、データを追記したと仮定して、書き換え回数を更新することができる。これにより、更新部40は、管理テーブルによりアクティブに管理がされていない第1領域について、書き換え回数を推定することができる。
なお、更新部40は、S124とS125の処理を逆に実行してもよい。更新部40は、S124およびS125の処理を終了した場合、処理を図23のフローに戻す。
以上のように、本実施形態に係る情報処理装置10は、不揮発記憶部16に含まれる第1領域(ページ)の数より少ない数の管理情報を記憶する。これにより、本実施形態に係る情報処理装置10によれば、管理テーブルのエントリ数を少なくすることができるので、管理情報記憶部38の記憶容量を少なくすることができる。
さらに、本実施形態に係る情報処理装置10は、管理テーブルにより管理されていない第1領域については、管理テーブルから管理情報が消去されたタイミングでカウンタ値を更新する。これにより、本実施形態に係る情報処理装置10によれば、不揮発記憶部16に含まれる全ての第1領域(ページ)についての書き換え回数を精度良く推定することができる。
(変形例)
図25は、情報処理装置10の構成の第1変形例を示す図である。例えば、第1変形例に係る処理回路12は、メモリコントローラ18を内部に備える。第1変形例に係る第1記憶部14および不揮発記憶部16は、この処理回路12の外部に設けられる。
図26は、情報処理装置10の構成の第2変形例を示す図である。例えば、第2変形例に係る処理回路12は、メモリコントローラ18を内部に備える。第2変形例に係る処理回路12は、第1記憶部14も内部に備える。第1記憶部14は、例えば、プロセッサ内のSRAM(Static Random Access Memory)であってもよい。
図27は、情報処理装置10の構成の第3変形例を示す図である。例えば、情報処理装置10は、処理回路12と、不揮発記憶モジュール80とを備えてもよい。この場合、不揮発記憶モジュール80は、不揮発記憶部16と、メモリコントローラ18とを有する。
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 情報処理装置
12 処理回路
14 第1記憶部
16 不揮発記憶部
18 メモリコントローラ
26 設定記憶部
28 アクセス処理部
36 カウンタ記憶部
38 管理情報記憶部
40 更新部
50 管理部
60 要素メモリ
70 モード切換部
80 不揮発記憶モジュール

Claims (17)

  1. 第1記憶部および複数のページを含む不揮発記憶部に対する、処理回路によるデータの読み出しおよび書き込みを管理する管理装置であって、
    前記複数のページのそれぞれについて、前記不揮発記憶部から前記第1記憶部に転送したデータに対して書き込みおよび読み出しをする第1アクセス処理、または、前記不揮発記憶部に記憶されたデータに対して直接書き込みおよび読み出しをする第2アクセス処理の何れを実行するかを示すアクセス方法を記憶する設定記憶部と、
    前記第1アクセス処理に設定されている第1ページに対して書き込みまたは読み出しの要求を受けた場合、前記第1アクセス処理を実行し、前記第2アクセス処理に設定されている第2ページに対して書き込みまたは読み出しの要求を受けた場合、前記第2アクセス処理を実行するアクセス処理部と、
    前記第2アクセス処理に設定されている第3ページの品質が基準値以下となった場合、前記第3ページに対するアクセス方法を、前記第2アクセス処理から前記第1アクセス処理に変更する管理部と、
    を備える管理装置。
  2. 前記アクセス処理部は、
    前記第1アクセス処理において、前記不揮発記憶部における前記第1ページから前記第1記憶部に転送したデータに対して読み出しおよび書き込みをし、前記第1記憶部に転送されたデータを前記不揮発記憶部に書き戻し、
    前記第2アクセス処理において、前記不揮発記憶部における前記第2ページに対して、データを直接読み出しおよび書き込みする
    請求項1に記載の管理装置。
  3. 前記管理部は、前記第3ページの品質が基準値以下となった場合、前記第3ページに記憶されたデータを、前記第2アクセス処理に設定されている第4ページに移動させる
    請求項1または2に記載の管理装置。
  4. 前記設定記憶部は、前記処理回路からデータの読み出しまたは書き込みがされたそれぞれのページについて、前記処理回路から要求される要求アドレスを記憶し、
    前記管理部は、
    前記第4ページに対して、前記第3ページに対応付けられていた要求アドレスを対応付け、
    前記第3ページを、何れの要求アドレスも対応付けられていない未使用ページに変更する
    請求項3に記載の管理装置。
  5. 前記管理部は、前記第3ページの書き換え回数が所定値以上となった場合、前記第3ページに対するアクセス方法を、前記第2アクセス処理から前記第1アクセス処理に変更する
    請求項1から4の何れか1項に記載の管理装置。
  6. 前記管理部は、前記第3ページから読み出されたデータの誤りビット数が所定値以上となった場合、前記第3ページに対するアクセス方法を、前記第2アクセス処理から前記第1アクセス処理に変更する
    請求項1から4の何れか1項に記載の管理装置。
  7. 前記不揮発記憶部に含まれる前記複数のページのそれぞれについて、書き換え回数を記憶するカウンタ記憶部をさらに備え、
    前記管理部は、前記第2アクセス処理が設定され、未使用であり、且つ、書き換え回数が予め定められた基準を満たすページを、前記第4ページとして選択する
    請求項3に記載の管理装置。
  8. 前記アクセス処理部は、前記第1アクセス処理において、前記不揮発記憶部から前記第1記憶部に転送されたデータを、何れの要求アドレスも対応付けられていない未使用ページであり、前記第1アクセス処理に設定されており、且つ、書き換え回数が所定値以下のページに書き戻す
    請求項1から7の何れか1項に記載の管理装置。
  9. 前記複数のページのそれぞれは、複数のサブページを含み、
    前記設定記憶部は、前記複数のページのそれぞれについて、ページ全体に対するアクセス方法、または、含まれる前記複数のサブページのそれぞれに対するアクセス方法を記憶し、
    前記管理部は、
    ページ全体が前記第2アクセス処理に設定されている前記第3ページの品質が基準値以下となった場合、前記第3ページに含まれる前記複数のサブページのうちの品質が基準値以下となった第1サブページに記憶されたデータを、前記第2アクセス処理に設定されている第2サブページに移動させ、
    前記第1サブページのアクセス方法を、前記第1アクセス処理に設定し、
    前記第3ページに含まれる前記第1サブページ以外のそれぞれのサブページのアクセス方法を、前記第2アクセス処理に設定する
    請求項1に記載の管理装置。
  10. 前記設定記憶部は、前記処理回路からデータの読み出しまたは書き込みがされたそれぞれのページまたはそれぞれのサブページについて、対応する要求アドレスを記憶し、
    前記管理部は、
    前記第2サブページに対して、前記第1サブページに対応付けられていた前記要求アドレスを対応付け、
    前記第3ページにおける前記第1サブページ以外のそれぞれのサブページに対して、対応する前記要求アドレスを対応付け、
    前記第1サブページを、何れの前記要求アドレスも対応付けられていない未使用サブページに変更する
    請求項9に記載の管理装置。
  11. 前記不揮発記憶部は、個別に交換可能であり、それぞれに優先度が設定された複数の要素メモリを含み、
    前記管理部は、前記複数の要素メモリのうち、書き換え回数が所定条件を満たした要素メモリであって優先度の最も高い要素メモリを選択し、選択した要素メモリの中から前記第4ページを選択する
    請求項3に記載の管理装置。
  12. 所定状態に達するまでの第1期間において、前記アクセス処理部は、
    前記第1アクセス処理に設定されている前記第1ページに対して書き込みまたは読み出しの要求を受けた場合、前記第1アクセス処理を実行し、前記第2アクセス処理に設定されている前記第2ページに対して書き込みまたは読み出しの要求を受けた場合、前記第2アクセス処理を実行し、
    前記所定状態に達した後の第2期間において、前記アクセス処理部は、
    前記第1アクセス処理に設定されている前記第1ページに対して書き込みまたは読み出しの要求を受けた場合、前記第1アクセス処理を実行し、
    前記第2アクセス処理に設定されている前記第2ページに対して書き込みの要求を受けた場合、前記第1アクセス処理を実行し、
    前記第2アクセス処理に設定されている前記第2ページに対して読み出しの要求を受けた場合、前記第2アクセス処理を実行する
    請求項1から11の何れか1項に記載の管理装置。
  13. 所定状態に達するまでの第1期間において、前記アクセス処理部は、
    前記第1アクセス処理に設定されている前記第1ページに対して書き込みまたは読み出しの要求を受けた場合、前記第1アクセス処理を実行し、前記第2アクセス処理に設定されている前記第2ページに対して書き込みまたは読み出しの要求を受けた場合、前記第2アクセス処理を実行し、
    前記所定状態に達した後の第2期間において、前記アクセス処理部は、
    前記第1アクセス処理に設定されている前記第1ページに対して書き込みまたは読み出しの要求を受けた場合、前記第1アクセス処理を実行し、
    前記第2アクセス処理に設定されている前記第2ページに対して書き込みの要求を受けた場合、書き込みを実行せず、
    前記第2アクセス処理に設定されている前記第2ページに対して読み出しの要求を受けた場合、前記第2アクセス処理を実行する
    請求項1から11の何れか1項に記載の管理装置。
  14. 前記不揮発記憶部に含まれる前記複数のページのそれぞれについて、カウンタ値を記憶するカウンタ記憶部と、
    所定個のページのそれぞれについての管理情報を格納可能な管理テーブルを記憶する管理情報記憶部と、
    前記カウンタ値および前記管理テーブルを更新する更新部と、
    をさらに有し、
    前記複数のページのそれぞれは、複数の第2領域を含み、
    前記管理情報は、対応するページに含まれる前記複数の第2領域のそれぞれが書き込み済みか未書き込みかを示し、
    前記不揮発記憶部に対する第1データの書き込みに応じて、前記更新部は、
    前記第1データが書き込まれるページである対象ページについての前記管理情報に示された、前記第1データが書き込まれる第2領域である対象第2領域の状態が、未書き込みの場合、書き込み済みに変更し、
    前記管理情報に示された前記対象第2領域の状態が書き込み済みの場合、前記対象ページについての前記カウンタ値を更新する
    請求項5に記載の管理装置。
  15. 所定状態に達するまでの第1期間において、前記処理回路は、機械学習におけるトレーニングを実行し、
    前記所定状態に達した後の第2期間において、前記処理回路は、前記機械学習によりトレーニングされたデータを用いた認識処理を実行し、
    前記アクセス処理部は、前記所定状態に達した後において、前記第2ページに対して書き込みの要求を受けた場合、前記第2アクセス処理に代えて、前記第1アクセス処理を実行する
    請求項1から11の何れか1項に記載された管理装置。
  16. 処理回路と、
    前記処理回路によりデータの読み出しおよび書き込みがされる第1記憶部と、
    前記処理回路によりデータの読み出しおよび書き込みがされ、複数のページを含む不揮発記憶部と、
    前記複数のページのそれぞれについて、前記不揮発記憶部から前記第1記憶部に転送したデータに対して書き込みおよび読み出しをする第1アクセス処理、または、前記不揮発記憶部に記憶されたデータに対して直接書き込みおよび読み出しをする第2アクセス処理の何れを実行するかを示すアクセス方法を記憶する設定記憶部と、
    前記第1アクセス処理に設定されている第1ページに対して書き込みまたは読み出しの要求を受けた場合、前記第1アクセス処理を実行し、前記第2アクセス処理に設定されている第2ページに対して書き込みまたは読み出しの要求を受けた場合、前記第2アクセス処理を実行するアクセス処理部と、
    前記第2アクセス処理に設定されている第3ページの品質が基準値以下となった場合、前記第3ページに対するアクセス方法を、前記第2アクセス処理から前記第1アクセス処理に変更する管理部と、
    を備える情報処理装置。
  17. 第1記憶部および複数のページを含む不揮発記憶部に対する、処理回路によるデータの読み出しおよび書き込みを管理する管理装置における、管理方法であって、
    前記管理装置は、
    前記複数のページのそれぞれについて、前記不揮発記憶部から前記第1記憶部に転送したデータに対して書き込みおよび読み出しをする第1アクセス処理、または、前記不揮発記憶部に記憶されたデータに対して直接書き込みおよび読み出しをする第2アクセス処理の何れを実行するかを示すアクセス方法を記憶する設定記憶部と、
    前記第1アクセス処理に設定されている第1ページに対して書き込みまたは読み出しの要求を受けた場合、前記第1アクセス処理を実行し、前記第2アクセス処理に設定されている第2ページに対して書き込みまたは読み出しの要求を受けた場合、前記第2アクセス処理を実行するアクセス処理部と、
    を備え、
    前記第2アクセス処理に設定されている第3ページの品質が基準値以下となった場合、前記第3ページに対するアクセス方法を、前記第2アクセス処理から前記第1アクセス処理に変更する
    管理方法。
JP2017045240A 2017-03-09 2017-03-09 管理装置、情報処理装置および管理方法 Active JP6538741B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017045240A JP6538741B2 (ja) 2017-03-09 2017-03-09 管理装置、情報処理装置および管理方法
US15/678,226 US10235049B2 (en) 2017-03-09 2017-08-16 Device and method to manage access method for memory pages
TW106129470A TW201833781A (zh) 2017-03-09 2017-08-30 管理裝置、資訊處理裝置及管理方法
CN201710759641.9A CN108572923A (zh) 2017-03-09 2017-08-30 管理装置、信息处理装置以及管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017045240A JP6538741B2 (ja) 2017-03-09 2017-03-09 管理装置、情報処理装置および管理方法

Publications (2)

Publication Number Publication Date
JP2018151687A JP2018151687A (ja) 2018-09-27
JP6538741B2 true JP6538741B2 (ja) 2019-07-03

Family

ID=63445465

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017045240A Active JP6538741B2 (ja) 2017-03-09 2017-03-09 管理装置、情報処理装置および管理方法

Country Status (4)

Country Link
US (1) US10235049B2 (ja)
JP (1) JP6538741B2 (ja)
CN (1) CN108572923A (ja)
TW (1) TW201833781A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7143232B2 (ja) * 2019-01-29 2022-09-28 キオクシア株式会社 メモリシステムおよび制御方法
WO2021030750A1 (en) 2019-08-14 2021-02-18 Supermem, Inc. Computing memory systems
JP2022094017A (ja) * 2020-12-14 2022-06-24 トヨタ自動車株式会社 車載システム
JP7438924B2 (ja) * 2020-12-15 2024-02-27 株式会社東芝 情報処理装置、方法及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007272635A (ja) * 2006-03-31 2007-10-18 Toshiba Corp メモリシステム及びコントローラ
JP2008146255A (ja) 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
US8724381B2 (en) * 2008-03-11 2014-05-13 Agere Systems Llc Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
US9846641B2 (en) * 2012-06-18 2017-12-19 International Business Machines Corporation Variability aware wear leveling
US20160041760A1 (en) * 2014-08-08 2016-02-11 International Business Machines Corporation Multi-Level Cell Flash Memory Control Mechanisms
JP2016085677A (ja) * 2014-10-28 2016-05-19 富士通株式会社 メモリ管理方法、メモリ管理プログラム及び情報処理装置
CN109471812B (zh) * 2015-01-19 2023-09-05 铠侠股份有限公司 存储装置及非易失性存储器的控制方法
US9672905B1 (en) * 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling

Also Published As

Publication number Publication date
CN108572923A (zh) 2018-09-25
US20180260127A1 (en) 2018-09-13
TW201833781A (zh) 2018-09-16
JP2018151687A (ja) 2018-09-27
US10235049B2 (en) 2019-03-19

Similar Documents

Publication Publication Date Title
US10761780B2 (en) Memory system
US7941692B2 (en) NAND power fail recovery
US10740013B2 (en) Non-volatile data-storage device with spare block pools using a block clearing method
US10475518B2 (en) Memory system, memory system control method, and program
JP6538741B2 (ja) 管理装置、情報処理装置および管理方法
US20100125696A1 (en) Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
US9208101B2 (en) Virtual NAND capacity extension in a hybrid drive
KR102095438B1 (ko) 다시쓰기 가능한 인-플레이스 메모리를 구비한 데이터 저장 디바이스
KR20210057193A (ko) 소계 기입 카운터에 기초한 하이브리드 웨어 레벨링 동작 수행
JP2020046916A (ja) メモリシステム
US10606517B2 (en) Management device and information processing device
JP5820078B2 (ja) 記憶装置システム
KR102138767B1 (ko) 제자리에 다시쓰기 가능한 메모리를 갖는 데이터 저장 디바이스
KR20210130341A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
JP6618941B2 (ja) 管理装置、情報処理装置および管理方法
US20220308766A1 (en) Memory controller and memory system
TWI805878B (zh) 儲存系統的快取系統及其資料快取方法
KR102095428B1 (ko) 제자리에 다시쓰기 가능한 메모리를 구비한 데이터 저장 디바이스
JP6039772B1 (ja) メモリシステム
JP4558052B2 (ja) メモリシステム
JP2005250831A (ja) 半導体メモリ装置
KR20160006989A (ko) 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190416

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190606

R151 Written notification of patent or utility model registration

Ref document number: 6538741

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151