JP6166476B2 - メモリモジュールおよび情報処理システム - Google Patents

メモリモジュールおよび情報処理システム Download PDF

Info

Publication number
JP6166476B2
JP6166476B2 JP2016532359A JP2016532359A JP6166476B2 JP 6166476 B2 JP6166476 B2 JP 6166476B2 JP 2016532359 A JP2016532359 A JP 2016532359A JP 2016532359 A JP2016532359 A JP 2016532359A JP 6166476 B2 JP6166476 B2 JP 6166476B2
Authority
JP
Japan
Prior art keywords
memory device
memory
address
pad
memory module
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.)
Expired - Fee Related
Application number
JP2016532359A
Other languages
English (en)
Other versions
JPWO2016006067A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2016006067A1 publication Critical patent/JPWO2016006067A1/ja
Application granted granted Critical
Publication of JP6166476B2 publication Critical patent/JP6166476B2/ja
Expired - Fee Related 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile 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/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/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]

Description

本発明は、メモリモジュールおよびそれを用いた情報処理システムに関する。
近年、複数のNAND型フラッシュメモリとコントローラから構成されるSSD(Solid State Drive)が、ストレージシステム、サーバー機器およびLaptop PC等に利用されている。NAND型フラッシュメモリには、消去回数に上限があり、SSDの寿命を決める要因となっていることが広く知られている。
特許文献1には、NAND型フラッシュメモリと、不揮発性バッファメモリと、メモリ制御部から構成される半導体記憶装置が開示されている。半導体記憶装置へ入力した書き込みデータは、いったん不揮発性バッファメモリへ書き込まれた後、NANDフラッシュメモリへ書き込まれる。
特許文献2には、不揮発性メモリと、RAMと、コントローラから構成される半導体記憶装置が開示されている。不揮発性メモリにはアドレス変換テーブルが格納されており、RAMにはアドレス変換テーブルの一部分が格納される。
特開2014-021752 号公報 特開2013-152676 号公報
発明者は、NAND型フラッシュメモリの寿命について検討した。NAND型フラッシュメモリはメモリセルの微細化や、多値データ記憶方式とともに大容量化が進んでいる。NAND型フラッシュメモリのメモリセルは、半導体基板にトンネル絶縁膜を介して形成された電荷蓄積層(浮遊ゲート電極)と、その上にゲート間絶縁膜を介して積層された制御ゲート電極を有する2つのトランジスタにて形成される。
制御ゲート電極と半導体基板間に高電圧を印加し、浮遊ゲート電極に、トンネル絶縁膜を通して、電子を出し入れすることで、トランジスタの閾値電圧Vthを変化させる。浮遊ゲート電極へ電子を注入する動作をプログラムと呼び、このプログラムにより閾値電圧Vthは高くなる。一方、浮遊ゲート電極の電子をを放出させる動作を消去動作と呼び、この消去動作により閾値電圧Vthは低くなる。そこで、浮遊ゲート電極に蓄積される電荷の量を制御することによりメモリセルの閾値電圧Vthを制御し、この閾値電圧の差に基づきデータを記憶する。例えば、閾値電圧Vthの高い状態をデータ“0”、閾値電圧Vthの低い状態をデータ“1”として、2値のデータ記憶を行う。最近は、書き込まれる閾値電圧分布を細分化して、4値、8値等の多値記憶も行われている。NAND型フラッシュメモリのメモリセルへデータを書き込むときに、前もってデータを消去しておく必要がある。
このようなプログラム/消去動作を繰り返すことにより、メモリセルのトンネル絶縁膜に、電界ダメージが加わり徐々に欠陥が増加する。そして、浮遊ゲート電極に蓄積された電子がトンネル酸化膜中の欠陥を通して、抜けていき、閾値電圧Vthを変化させ、最終的にはデータの書き込みや読み出しが不可能となる。
また、NAND型フラッシュメモリでは、書き込み対象ではないメモリセルへの書き込みが発生するプログラムディスターブが発生する。NAND型フラッシュメモリでは、メモリセルにデータを書き込む場合、制御ゲートに約18V、Si基板に0V、非選択セルの制御ゲートに10Vを印加する。一方ワード線が同一である非選択セルには誤書き込み防止のため、メモリセルのSi基板に8V程度の電圧を印加する必要がある。この結果、プログラム時に、書き込み対象のメモリセルに隣接した書き込み対象ではないメモリセルへ10V程度のストレスがかかり、プログラムディスターブが発生する。
さらに、NAND型フラッシュメモリでは、あるメモリセルのデータを数多く読み出すと、同一ページ内のメモリセルに格納されたデータが書き換わる、リードディスターブが生じる。NAND型フラッシュメモリでは、あるメモリセルからデータを読み出す場合、選択セルには読み出し電圧を0V、非選択セルには4.5Vをそれぞれ印加する。つまり、NAND型フラッシュメモリは読み出さないメモリセルにも電圧が加わる。このため記録したデータが少しずつ消えていき、閾値電圧が少しずつ変化する。
これらの問題は、NAND型フラッシュメモリの大容量化のためのメモリセルの微細化や書き込まれる閾値電圧分布を細分化した4値、8値等の多値記憶で、より深刻となる。つまり、NAND型フラッシュメモリの大容量化に伴い、データ書き込み回数や消去回数の上限値を減少させ、その寿命を短くする。
さらに、発明者は、SSDについて検討した。SSDはRAMとNAND型フラッシュメモリとこれらを制御するコントローラから構成されており、RAMは、バッファメモリとして、書き込み対象となるデータを一時的に格納し、また、アドレス変換テーブルを格納する。SSD内部のコントローラは、NAND型フラッシュメモリのメモリセルにある書き換え回数の上限値を超えないように、書き換え回数をメモリセルごとに平準化するために、ウエアレベリングを行う。このウエアレベリング行うために、SSDへ入力する論理アドレスとNAND型フラッシュメモリの物理アドレスとの対応付けを行うアドレス変換テーブルが必要となる。
また、RAMが揮発性メモリの場合、電源が遮断されるとRAMに保持されているデータは消えてしまい、SSDの信頼性を低下させてしまう。そこで、電源遮断に対応するためにバッファデータおよびNAND型フラッシュメモリのアドレス変換テーブルを不揮発性メモリへ格納する。この様な場合、利用する不揮発性メモリの容量と書き換え回数の上限により、SSDの寿命がNAND型フラッシュメモリの寿命以外の、バッファデータおよびNAND型フラッシュメモリのアドレス変換テーブルを格納している不揮発性メモリの寿命に影響を受け、短くなる場合がある。
しかしながら、係る課題については、特許文献1および2には何ら記載がない。
本発明は、このようなことを鑑みてなされたものであり、本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
開示されるメモリモジュールは、揮発性および不揮発性のいずれか一方の第1のメモリ装置と、不揮発性の第2のメモリ装置と、不揮発性の第3のメモリ装置と、これを制御するコントローラを含むメモリモジュールであって、第2のメモリ装置の容量は、第1のメモリ装置の容量より大きく、第3のメモリ装置の容量は、第2のメモリ装置の容量より大きく、第2のメモリ装置の書き換え回数の第2の上限値は、第3のメモリ装置の書き換え回数の第3の上限値より大きく、第1のメモリ装置の書き換え回数の第1の上限値は、第2のメモリ装置の書き換え回数の第2の上限値より大きく、コントローラは、第1のメモリ装置に格納される、第2のメモリ装置に関する第1のアドレス変換テーブルを参照して第2のメモリ装置にアクセスし、第2のメモリ装置に格納される、第3のメモリ装置に関する第2のアドレス変換テーブルを参照して第3のメモリ装置にアクセスする。
開示されるメモリモジュールは、長寿命化を実現できる。
実施例1の情報処理システムの構成例を示すブロック図である。 情報処理システムにおける制御回路の構成例を示すブロック図である。 アドレス対応の一例を示す図である。 アドレス変換テーブルの一例を示す図である。 アドレス変換テーブルの一例を示す図である。 データの書込み方法の一例を示すフロー図である。 データの読み出し方法の一例を示すフロー図である。 データの読み出し方法の一例を示す図である。 データの書込み方法の一例を示す図である。 ウエアレベリング方法の一例を示すフロー図である。 ウエアレベリング方法の一例を示すフロー図である。 実施例2の情報処理システムおよびメモリモジュールの構成例を示すブロック図である。 実施例3の情報処理システムの構成例を示すブロック図である。
以下、本発明の実施形態を、実施例により説明する。
《情報処理システムの概要》
図1は、本実施例の情報処理システムの概略構成例を示すブロック図である。図1に示す情報処理システムは、情報処理装置(プロセッサ)CPU_CPとメモリモジュールMEMMD0とを備える。情報処理装置CPU_CPは、たとえばメモリモジュールMEMMD0へ保存されているデータを512バイト単位の論理アドレス(LAD)にて管理するホストコントローラである。情報処理装置CPU_CPは、インターフェース信号HDH_IFを通じ、メモリモジュールMEMMD0に対してデータの読み出しや書込みを行う。メモリモジュールMEMMD0は、例えばSSD(Solid State Drive)等に該当するものである。
情報処理装置CPU_CPとメモリモジュールMEMMD0を接続する信号方式には、シリアルインターフェース信号方式、パラレルインターフェース信号方式、光インターフェース信号方式などがあり、いずれかの方式が利用される。情報処理装置CPU_CPとメモリモジュールMEMMD0を動作させるクロック方式には、コモンクロック方式およびソースシンクロナスクロック方式や、データ信号にクロック情報を埋め込むエンベデッドクロック方式などがあり、いずれかのクロック方式が利用される。
本実施例では、一例としてシリアルインターフェース信号方式ならびにエンベデッドクロック方式を用いるものとし、以下に動作を説明する。
情報処理装置CPU_CPから、クロック情報が埋め込まれ、シリアルデータへ変換された読出し要求(RQ)や書込み要求などがインターフェース信号HDH_IFを通じてメモリモジュールMEMMD0へ入力される。読出し要求(RQ)には論理アドレス(LAD)、データ読み出し命令(RD)、セクタカウント(SEC)などが含まれ、また、書込み要求には論理アドレス(LAD)、データ書込み命令(WRT)、セクタカウント(SEC)および書込みデータ(WDATA)などが含まれる。
メモリモジュールMEMMD0の概要を説明する。メモリモジュールMEMMD0は、メモリ装置MEM0(M0 0、MEM0 1として図示、以下M00、MEM01)と、MEM1(M1 0〜MEM1 3として図示、以下M10〜MEM13)と、MEM2_0〜MEM2_255と、これらメモリ装置を制御する制御回路(コントローラ)MDCT0を備える。
メモリ装置MEM0は、揮発性または不揮発性のメモリ装置であり、メモリ装置MEM1及びメモリ装置MEM2_0〜MEM2_255は、不揮発性のメモリ装置である。揮発性のメモリ装置には、たとえばDRAMを用い、不揮発性のメモリ装置には、たとえばNAND型フラッシュメモリ、NOR型フラッシュメモリ、相変化型メモリPCM、抵抗変化型メモリReRAM、スピン注入磁化反転型メモリSTT−MRAM、強誘電体メモリなどのメモリ装置を選択的に用いる。上記の不揮発性のメモリ装置には、上書きが可能なメモリ装置と消去動作後にデータを書き込むメモリ装置とがある。以下では、主として消去動作後にデータを書き込むメモリ装置を例示して説明する。
メモリモジュールMEMMD0は、メモリ装置MEM1の容量がメモリ装置MEM0の容量より大きく、メモリ装置MEM2_0〜MEM2_255の容量がメモリ装置MEM1の容量より大きくして、各メモリ装置の容量を構成する。各メモリ装置の容量の数値例を後述する。
メモリ装置には、一般に書き換え回数に制限がある。そこで、メモリ装置MEM1の書き換え回数の制限値(上限値)が、メモリ装置MEM2_0〜MEM2_255の書き換え回数の制限値(上限値)より大きく、メモリ装置MEM0の書き換え回数の制限値(上限値)が、メモリ装置MEM1の書き換え回数の制限値(上限値)より大きい、メモリ装置を選択して、メモリモジュールMEMMD0を構成する。そしてメモリ装置MEM1およびメモリ装置MEM2_0〜MEM2_255のウエアレベリングを実現するために、メモリ装置MEM1の書き換え回数テーブルをメモリ装置MEM0に設け、メモリ装置MEM2_0〜MEM2_255の書き換え回数テーブルをメモリ装置MEM1に設ける。
コントローラMDCT0は、メモリ装置MEM0に格納されるアドレス変換テーブルを用いてメモリ装置MEM1へアクセス(データの書き込み、読み出し)し、メモリ装置MEM1に格納されるアドレス変換テーブルを用いてメモリ装置MEM2_0〜MEM2_255へアクセスする。メモリ装置MEM0に格納されるアドレス変換テーブルには、メモリ装置MEM1の物理アドレスへオフセットを設ける。コントローラMDCT0は、メモリ装置MEM1の書き換え回数テーブルと、メモリ装置MEM2_0〜MEM2_255の書き換え回数テーブルを用いて、メモリ装置MEM1に格納されるアドレス変換テーブルのウエアレベリングを行う。
コントローラMDCT0は、情報処理装置CPU_CPからメモリモジュールMEMMD0への書き込みデータをメモリ装置MEM0に設けたライトバッファに書き込み、情報処理装置CPU_CPに書き込み完了を通知した後に、ライトバッファに書き込んだデータをメモリ装置MEM2_0〜MEM2_255の所定の領域に書き込む。コントローラMDCT0は、ライトバッファに書き込んだデータを格納する、メモリ装置MEM2_0〜MEM2_255の所定の領域を表す物理アドレスを決定して格納する。コントローラMDCT0は、決定した物理アドレスによって、メモリ装置MEM2_0〜MEM2_255にアクセスするための用いる、メモリ装置MEM1に格納されるアドレス変換テーブルを更新する。コントローラMDCT0は、一連の(1)メモリ装置MEM0に設けたライトバッファへのデータの書き込み、(2)このデータを書き込む、メモリ装置MEM2_0〜MEM2_255の物理アドレスの決定、(3)メモリ装置MEM2_0〜MEM2_255の、決定した物理アドレスへのデータの格納、および(4)メモリ装置MEM2_0〜MEM2_255にアクセスするための用いる、メモリ装置MEM1に格納されるアドレス変換テーブルの更新をパイプライン処理する。
以下、メモリモジュールMEMMD0について具体的に説明する。メモリ装置MEM0にはメモリ装置MEM1に関するアドレス変換テーブルP-GLPT、アドレス変換テーブルP-GPLT、書込み回数テーブルP-WCT、物理アドレス有効無効テーブルP-VLTが格納され、さらにメモリ装置MEM0は情報処理装置CPU_CPからの書込みデータを保存するライトバッファWBUFも備える。各テーブルの説明は後述される。
メモリ装置MEM1にはメモリ装置MEM2_0〜MEM2_255に関するアドレス変換テーブルF-LPT、アドレス変換テーブルF-PLT、書込み回数テーブルF−WCT、物理アドレス有効無効テーブルF-VLT、SDDコンフィグレーション情報SDCFG、アドレスマップADMAP、を格納され、さらに情報処理装置CPU_CPおよびメモリモジュールMEMMD0のブートプログラムBTPなどが格納される。各テーブルおよびブートプログラムの説明は後述される。
メモリ装置MEM2_0〜MEM2_255には、情報処理装置CPU_CPが用いるデータ、OS、アプリケーションプログラム等が格納されている。
情報処理装置CPU_CPは、ここでは、メモリモジュールMEMMD0を3.6TB分のデータを保存できるメモリモジュールであると認識しており、そのため、情報処理装置CPU_CPからメモリモジュールMEMMD0へは3.6TB分のデータを保存するための論理アドレス(LAD[32:0])が入力される。論理アドレスLAD[3:0]、LAD[13:4]およびLAD[32:14]の、それぞれをはS-LAD、M-LAD、U-LADとする。また、メモリ装置MEM2_0〜MEM2_255の合計容量は4TBとし、メモリ装置MEM2_0〜MEM2_255のアドレスは、この4TB容量分のデータを保存するための物理アドレス(F-PAD[32:0])となる。
メモリ装置MEM2_0〜MEM2_255の各々は、16Gbitの容量を持つメモリ装置である。メモリ容量に関する数値例は、以下の説明も含めて、一例である。
アドレス変換テーブルF-LPTは、情報処理装置CPU_CPからメモリモジュールMEMMD0へ入力した読出し要求(RQ)や書込み要求に含まれる論理アドレス(LAD)に対応するデータがメモリ装置MEM2_0〜MEM2_255内のどの物理アドレス(P-PAD)へ格納されているかを示すテーブルである。
書込み回数テーブルF−WCTは、メモリ装置MEM2_0〜MEM2_255の容量4TB中の1MBの大きさを持つブロック毎の消去回数を格納する。
物理アドレス有効無効テーブルF-VLTは、物理アドレス(F-PAD)が有効か無効化を示すテーブルである。
アドレス変換テーブルF-PLTは、メモリ装置MEM2_0〜MEM2_255内の物理アドレス(F-PAD)に格納されているデータが、どの論理アドレス(LAD)に対応するデータ化を示すテーブルである。
メモリ装置MEM0に格納されているアドレス変換テーブルP-GLPTはアドレス変換テーブルF-LPTがメモリ装置MEM1内のどの物理アドレス(GP-PAD)へ格納されているかを示すテーブルである。
アドレス変換テーブルP-PLTは、メモリ装置MEM1内の物理アドレス(GP-PAD)に格納されているデータが、どの論理アドレス(U-LAD)へ対応するデータ化を示すテーブルである。
書込み回数テーブルP-WCTは、物理アドレス(GP-PAD)毎の消去回数を格納する。
物理アドレス有効無効テーブルP-VLTは、物理アドレス(GP-PAD)が有効か無効化を示すテーブルである。
ライトバッファWBUFは、8KB毎の論理アドレスLADで、256個の論理アドレス分のデータを格納できる。情報処理装置CPU_CPから入力したデータは一旦ライトバッファWBUFへ格納され、その後、制御回路(コントローラ)MDCT0によって指定されたメモリ装置MEM2_0〜MEM2_255内の物理アドレスF-PADへ保存される。
制御回路MDCT0は、メモリ装置MEM2_0〜MEM2_255内の物理アドレスF-PADの書換え回数が平準化するように、物理アドレスF-PADを選択し、データの書込みを行う。さらに、制御回路MDCT0は、メモリ装置MEM1内の物理アドレスGP-PADの書換え回数が平準化するように、物理アドレスGP-PADを選択し、データの書込みを行う。
情報処理装置CPU_CPは、メモリモジュールMEMMD0から、データ、OS、アプリケーションプログラムを読出し、実行する。また、情報処理装置CPU_CPによって、その実行結果はメモリモジュールMEMMD0へ書き込まれる。
電源投入直後に、メモリモジュールMEMMD0は、内部のメモリ装置MEM2_0〜MEM2_255と、メモリ装置MEM0と、メモリ装置MEM1と、制御回路MDCT0の初期化の動作(パワーオンリセット)を行う。さらに、メモリモジュールMEMMD0は、情報処理装置CPU_CPからのリセット信号RSTSIGを受けた際にも、内部のメモリ装置MEM2_0〜MEM2_255と、メモリ装置MEM0と、メモリ装置MEM1と、、制御回路MDCT0の初期化を行う。
図2は、図1における制御回路MDCT0の構成例を示すブロック図である。図2に示す制御回路MDCT0は、インターフェース回路HOST_IFと、バッファBUF0〜BUF3と、書込み物理アドレステーブルNXNTBL、NXPTBLと、調停回路ARBと、情報処理回路MANAGERと、メモリ制御回路M0CT0、M0CT1、M1CT0、M1CT1、M2CT0〜M2CT31と、マップレジスタMAPREGとを備える。
メモリ制御回路M0CT0は、メモリ装置MEM0へ接続し、メモリ装置MEM0を制御する。メモリ制御回路M1CT0はメモリ装置MEM1へ接続し、メモリ装置MEM1を制御する。
メモリ制御回路M2CTi(i=0〜31)は、メモリ装置MEM2_i×8〜MEM2_i×8+7へ接続し、各々を制御する。例えば、メモリ制御回路M2CT0(i=0)は、メモリ装置MEM2_0〜MEM2_7へ接続し、メモリ装置MEM2_0〜MEM2_7の各々を制御し、メモリ制御回路M2CT1(i=1)は、メモリ装置MEM2_8〜MEM2_15へ接続し、メモリ装置MEM2_8〜MEM2_15の各々を制御し、
メモリ制御回路M2CT31(i=31)は、メモリ装置MEM2_248〜MEM2_255へ接続し、MEM2_248〜MEM2_255の各々を制御する。
書込み物理アドレステーブルNXNTBLは、次に情報処理装置CPU_CPより論理アドレスを伴う書き込み命令を受けた際に、当該論理アドレスに対して割り当てを行う物理アドレスF-PADを蓄えたテーブルであり、マップレジスタMAPREGは、メモリモジュールMEMMD0全体のメモリ空間の領域に関する情報(各領域の割り当て情報、たとえば、アドレス変換テーブルの格納領域)を保持するレジスタである。
バッファBUF0〜BUF3は、メモリ装置MEM2_0〜MEM2_255の書き込みデータや読み出しデータを一時的に蓄える。
調停回路ARBは、情報処理回路MANAGERからの読み出し/書き込み命令およびデータをメモリ制御回路M0CT0、M1CT0、M2CT0〜M2CT32へ送信する。
図3は、図1におけるメモリモジュールMEMMD0内の制御回路MDCT0がメモリ装置MEM0(MEM00〜MEM01またはMEM0_0〜MEM0_1と表記)、MEM10〜MEM13(またはMEM1_0〜MEM1_3と表記)およびMEM2_0〜MEM2_255を制御するために、割り当てるアドレスの一例を示す。
メモリ装置MEM2_0〜MEM2_255の夫々は、16GBの容量を持ち、ページサイズは8kB、ブロックサイズは1MB、ブロック毎の消去回数の上限は3000回である。
メモリ装置MEM2_0〜MEM2_255の総容量は4TBであり、制御回路MDCT0がこのメモリ装置MEM2_0〜MEM2_255へ割り当てるアドレスF-PADは、F-PAD[32:0]となる。F-PAD[32:11]はブロックアドレスF-BLKADへ対応しており、F-PAD[32:4]は8kB単位のページアドレスF-PAGEADへ対応しており、F-PAD[32:0]は512B単位のセクタアドレスF-SECADへ対応している。
メモリ装置MEM10〜MEM13の夫々は、2GBの容量を持ち、書き込み回数の上限は100万回である。メモリ装置MEM10〜13の総容量は8GBである。制御回路MDCT0がこのメモリ装置MEM10〜13へ割り当てるアドレスP-PADは、P-PAD[32:0]となる。P-PAD[32:16]は128kB単位のブロックアドレスP-BLKADへ対応しており、P-PAD[32:12]は4kB単位のページアドレスP-PAGEADへ対応しており、P-PAD[11:0]は4KBのページ内のアドレスへ対応しており、P-PAD[32:0]は1B単位のバイトアドレスP-BYTEADへ対応している。
また、書き込み回数の上限は100万回である。
メモリ装置MEM0_0〜MEM0_1の夫々は、8MBの容量を持ち、書き込み回数の上限は1億回である。メモリ装置MEM00〜MEM01の総容量は16MBである。制御回路MDCT0がこのメモリ装置MEM0_0〜MEM0_1へ割り当てるアドレスR-PADは、R-PAD[23:0]となる。R-PAD[23:12]は4kB単位のページアドレスR-PAGEADへ対応しておりR-PAD[23:0]は1B単位のバイトアドレスR-BYTEADへ対応している。
図4では、メモリ装置MEM0_0〜0_1へ格納されるアドレス変換テーブルP-GLPT、アドレス変換テーブルP-PLT、書込み回数テーブルP-WCT1,2,3、物理アドレス無効テーブルP-INV、ライトバッファWBUF0,1を説明する。
アドレス変換テーブルP-GLPTは、アドレス変換テーブルF-LPTがメモリ装置MEM10〜13内でどの物理アドレスGP-PAD(P-PAD[32:14])へ格納されているかを示すテーブルであり、情報処理装置CPU_CPからの論理アドレスU-LAD[18:0](LAD[32:14])に対する物理アドレスGP-PAD(P-PAD[32:14])とオフセットMLADodffsetを保存する。
メモリ装置MEM0_0〜0_1の物理アドレスD-PAD[23:2]の00_0000〜07_FFFFまでが論理アドレスU-LAD[18:0]の00_0000〜07_FFFFに対応しており、夫々のアドレスは、32ビット(4バイト)のデータを格納でき、下位10ビットにはMLAoffsetが格納され、上位22ビットには物理アドレスGP-PAD(P-PAD[32:14])が格納される。
物理アドレスGP-PADは、メモリ装置MEM1_0〜1_3が保持するアドレス変換テーブルF-LPTへ入力するアドレスで、この物理アドレスGP-PADにはメモリ装置MEM1_0〜1_3内の1024個の物理アドレスF-PAD[32:4]と、この物理アドレスF-PAD[32:4]毎の書込み回数P-WCTが含まれる。
オフセットMLADodffsetはメモリ装置MEM1_0〜1_3が保持するアドレス変換テーブルF-LPTの物理アドレスGP-PAD格納される1024個の物理アドレスF-PADの間で、効果的にウエアレベリングを行うために、用意される。メモリ装置MEM10〜13のウエアレベリングについては、図10および図11で詳細に説明する。
物理アドレスF-PAD[32:4]および書込み回数P-WCTのそれぞれは4バイトの大きさを持つため、物理アドレスGP-PADは、8KB(=1024×8B)のデータを含む。
つまり、物理アドレスGP-PADは、メモリ装置MEM1_0〜1_3を8KBのデータサイズ単位で区切ったアドレスであり、アドレス変換テーブルP-GLPTは、8KBのデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADを変換するテーブルである。
アドレス変換テーブルP-GLPT の容量について説明する。
アドレス変換テーブルP-GLPTへは論理アドレスU-LAD[18:0]分の物理アドレスGP-PADを格納する。論理アドレスU-LADは19ビットのアドレスで、262143個存在する。また、変換される物理アドレスGP-PADも19ビットのアドレスを持つ。オフセットMLADodffsetは、物理アドレスGP-PADにはメモリ装置MEM1_0〜1_3内の1024個の物理アドレスF-PADが含まれるので、その大きさは10ビット分となる。従って、一つの論理アドレスU-LADには、29ビット分のデータが格納される。その結果、アドレス変換テーブルP-GLPTの容量は、1048572バイト ( = 262143個 x4B)分用意すればよい。
メモリ装置MEM1_0〜1_3が1Bのデータ単位で、書き込みが可能な場合、アドレス変換テーブルF-LPTは、アドレス変換テーブルP-GLPTによって、理論的には1Bのデータ単位で、論理アドレスLADから物理アドレスGP-PADへ変換可能ではあるが、アドレス変換テーブルP-GLPTの容量が爆発的に増える。
そこで、1Bのデータ単位で、書き込みが可能なメモリ装置に対しても、たとえば、8KBのデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換することで、アドレス変換テーブルP-GLPTに必要な容量を大幅に削減でき、メモリモジュールMEMMD0のコストを安くできる。
たとえばメモリ装置MEM1_0〜1_3が512B,4KB,8kB, 16kBなど様々なデータ単位のページサイズを持ち、データを書き込む場合、ページサイズ以上のデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換することで、アドレス変換テーブルP-GLPTに
必要な容量を大幅に削減でき、メモリモジュールMEMMD0のコストを安くできる。
アドレス変換テーブルP-GPLTは、メモリ装置MEM10〜13内の物理アドレスGP-PADに格納されているデータが、どの論理アドレスU-LADへ対応するデータかを示すテーブルであり、物理アドレスGP-PADに対応する論理アドレスU-LADおよび有効/無効フラグVLE_FGを保存する。
D-PAD[23:2]の8_0000〜F_FFFFまでがGP-PADの00_0000〜07_FFFFに対応しており、夫々のアドレスは、4バイトのデータを格納でき、下位1バイトには有効/無効フラグVLE_FGが格納され、上位3バイトには論理アドレスU-LADが格納される。GP-PADに対応した有効/無効フラグVLE_FGは1バイトの情報を持ち、VLE_FG[7:0]の中で、VLE_FG[2]が1の場合は有効、0の場合は無効を示し、VLE_FG[1:0]が3の場合は消去済あるいは無効状態、2の場合は消去後書込み、1の場合はオーバーライト、0の場合はドントケアを示す。アドレス変換テーブルP-GPLTの容量は、アドレス変換テーブルP-GPLT と同様の1048572バイト ( = 262143個 x4B)である。
書込み回数テーブルP-WCT1は、メモリ装置MEM10〜13へ格納されるアドレス変換テーブルF-LPTに関して、P-PAD[32:14]毎の消去回数あるいは書込み回数を示すテーブルである。D-PAD[23:2]の10_0000〜17_FFFFまでがP-PAD[32:14]の00_0000〜07_FFFFに対応しており、夫々のアドレスには、4バイトの大きさを持つ消去回数あるいは書込み回数LPT-WCTが格納される。
書込み回数テーブルP-WCT2は、メモリ装置MEM10〜13へ格納されるアドレス変換テーブルF-PLTに関して、F-PAD[32:14]毎の消去回数あるいは書込み回数を示すテーブルである。
D-PAD[23:2]の1F_0000〜26_FFFFまでがF-PAD[32:14]の00_0000〜07_FFFFに対応しており、夫々のアドレスには、4バイトの大きさを持つ消去回数あるいは書込み回数PLT-WCT2が格納される。
書込み回数テーブルP-WCT3は、メモリ装置MEM10〜13へ格納される書込み回数テーブルF-WCTに関して、F-PAD[32:21]毎の消去回数あるいは書込み回数を示すテーブルである。
D-PAD[23:2]の27_0000〜27_0FFFまでがF-PAD[32:21]の00_000〜FFFに対応しており、夫々のアドレスには、4バイトの大きさを持つ消去回数あるいは書込み回数PLT-WCT3が格納される。
無効アドレステーブルP-INVは、1024個分の無効となった物理アドレスGP-PADを格納する。
ライトバッファWBUFは、ライトバッファWBUF0とWBUF1の2つあり、情報処理装置CPU_CPからの書込みデータを保存するためのバッファであり、ひとつ分のライトバッファWBUFには、8KBのデータを256個分(エントリーENTRY0〜255)格納できる。さらに、ライトバッファWBUFへは、夫々の8kBのデータに対応した論理アドレスLAD[32:4]と、メモリ装置MEM2_0〜MEM2_255への書込みアドレスである物理アドレスF-PAD[32:4]が格納される。1つのエントリーは、8kBの書込みデータと、4BのLAD[32:4]と、4BのF-PAD[32:4]から構成され、8200バイトの大きさを持つ。D-PAD[23:3]は8バイト単位のアドレスで、エントリー毎の開始アドレスと終了アドレスを表す。
エントリーENTRY0は、D-PAD[23:3]のアドレスで13_8000〜13_8400までを含み、13_8000には、LAD[32:4]と、F-PAD[32:4]が格納され、13_8001〜13_8400までは8kBのデータが格納される。
エントリーENTRY1の開始アドレスは、エントリーENTRY0の開始アドレス13_0000へ0401加算したアドレスとなり、エントリーENTRY0と同様の構成となる。
他のエントリーも同様の構成となっており、ひとつ前のエントリーの開始アドレスへ16進数で0401を加算したアドレスが次のエントリーの開始アドレスとなる。
最終的にエントリーENTRY255は、D-PAD[23:3]のアドレスで17_7C00〜17 _800までを含み、17_7C00には、LAD[32:4]と、F-PAD[32:4]が格納され、17_7C01〜17_8000までは8kBのデータが格納される。
ライトバッファWBUF0とWBUF1のそれぞれの大きさは 2099200バイト(=256エントリx8200バイト)である。
記憶装置MEM1_0〜1_3が、消去動作が必要な記憶装置であっても、同様のアドレス変換テーブルP-GLPT、アドレス変換テーブルP-PLT、書込み回数テーブルP-WCT1,2,3、物理アドレス無効テーブルP-INV、ライトバッファWBUF0,1を構築できることは言うまでもない。
図5では、メモリ装置MEM10〜13へ格納されるアドレス変換テーブルF-LPT、アドレス変換テーブルF-PLT、書込み回数テーブF-WCTを説明する。
アドレス変換テーブルF-LPTは、情報処理装置CPU_CPからの書込みデータがメモリ装置MEM2_0〜2_255内の、どの物理アドレスF-PAD[32:4]へ格納されているかを示すテーブルである。
制御回路MDCT0はメモリ装置MEM1_0〜1_3へ、メモリ装置MEM2_0〜2_255に関する物理アドレスF-PAD[32:4]と、この物理アドレスF-PAD[32:4]毎の書込み回数P-WCTを保存する。
メモリ装置MEM1_0〜1_3の物理アドレスP-PAD[31:13]とP-PAD[12:3]は、それぞれ物理アドレスGP-PADと、情報処理装置CPU_CPからの論理アドレスM-LAD(LAD[13:4])へ対応している。
物理アドレスGP-PADおよび論理アドレスM-LADで指定された物理アドレスP-PAD[31:3]の上位4バイトへ物理アドレスF-PAD[32:4]値が保存され、下位4バイトへ書込み回数P-WCT値が保存される。
メモリ装置MEM2_0〜2_255に関する物理アドレスF-PAD[32:4]は、アドレス変換テーブルF-LPTによって、8KBのデータサイズ単位で管理されている。
物理アドレスGP-PADは、論理アドレスU-LAD[18:0](LAD[32:14])に対するアドレスであり、メモリ装置MEM0_0〜0_1が保持するアドレス変換テーブルP-GLPTによって、変換される。
メモリ装置MEM1_0〜1_3が保持するアドレス変換テーブルF-LPTは、メモリ装置MEM0_0〜0_1が保持するアドレス変換テーブルP-GLPTによって、8KBのデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換され、管理されており、物理アドレスGP-PADには、1024個の物理アドレスF-PAD[32:4]と、この物理アドレスF-PAD[32:4]毎の書込み回数P-WCTが含まれる。
メモリ装置MEM1_0〜1_3が1Bのデータ単位で、書き込みが可能な場合、アドレス変換テーブルF-LPTは、アドレス変換テーブルP-GLPTによって、理論的には1Bのデータ単位で、論理アドレスLADから物理アドレスGP-PADへ変換可能ではあるが、アドレス変換テーブルP-GLPTの容量が爆発的に増えてしまう。そこで、1Bのデータ単位で、書き込みが可能なメモリ装置に対しても、たとえば、8KBのデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換することで、アドレス変換テーブルP-GLPTに必要な容量を大幅に削減でき、メモリモジュールMEMMD0のコストを安くできる。
アドレス変換テーブルF-PLTは、メモリ装置MEM2_0〜2_255の物理アドレスF-PADに格納されているデータが、どの論理アドレスLAD[32:4]へ対応するデータかを示すテーブルであり、物理アドレスF-PAD[32:4]に対応する論理アドレスLAD[32:4]および有効/無効フラグVLE_FGを保存する。
P-PAD[32:2]の4000_0000〜5FFFF_FFFFまでがF-PAD[32:4]の0000_0000〜1FFF_FFFFに対応しており、夫々のアドレスは、4バイトのデータを格納でき、下位3ビットには有効/無効フラグVLE_FGが格納され、上位29ビットには論理アドレスLAD[32:4]が格納される。
有効/無効フラグVLE_FG[2:0]の中でVLE_FG[2]が1の場合は有効、0の場合は無効を示し、VLE_FG[1:0]が3の場合は消去済、2の場合は消去後書き込み、1の場合はオーバーライト、0の場合はドントケアを示す。
書込み回数テーブルF-WCTは、メモリ装置MEM2_0〜MEM2_255の物理ブロックアドレスF-BLKAD(F-PAD[32:11])毎の消去回数あるいは書込み回数F-WCT(3バイト)と、消去済フラグEFP(1バイト)を保存するテーブルである。
メモリ装置MEM10〜13の物理アドレスP-PAD[32:2]のC000_0000〜C03F_FFFFまでがブロックアドレスF-BLKADの00_0000〜03_FFFFに対応しており、夫々のアドレスには、3バイトの大きさを持つ消去回数あるいは書込み回数F-WCTと、1バイトの大きさの消去済フラグEFPが格納される。
消去済フラグEFPが4の場合、そのブロックは消去済であることを示し、2の場合、そのブロック内の全アドレスへデータが書き込まれたことを示し、1の場合はそのブロック内の一部のアドレスへデータが書き込まれたことを示す。
アドレス変換テーブルF-LPTの容量について説明する。メモリ装置MEM2_0〜MEM2_255の総容量は4TBで、制御回路MDCT0は、この4TB容量を512B単位の物理アドレスF-PAD[32:0]にて管理する。また情報処理装置CPU_CPは、メモリモジュールMEMMD0を3.2TB分のデータを保存できるメモリモジュールであると認識しており、512バイト単位の論理アドレス(LAD)にて管理する。
これは、論理アドレスLADの数が687947680個分あり、さらに、制御回路MDCT0は、この687947674個分の論理アドレスに対する物理アドレスF-PADの変換を8KBのページデータ単位で行う際、アドレス変換テーブルF-LPTが保存できるアドレス数は 429496730個分(=687947680/16)である。そのため、変換される物理アドレスF-PADも8KBのページ単位の物理アドレスF-PAD[32:4]であらわされ、そのバイト数は4B(32ビット)以下となる。また、メモリ装置MEM10〜13の各々は、書き換え回数の上限が100万回とすると、書き換え回数の上限を表すために必要なバイト数は3バイト以下となる。
制御回路MDCT0は、メモリ装置MEM10〜13のウエアレベリングを効果的に行い、メモリモジュールMEMMD0の長寿命化を図るため、メモリ装置MEM10〜13に格納される物理アドレスF-PAD[32:4]毎に、書き換え回数(テーブル、以下必ずしも「テーブル」を表記しない。)P-WCTを保持する。メモリ装置MEM10〜13のウエアレベリングについては、図10および図11で詳細に説明する。その結果、アドレス変換テーブルF-LPTの容量は、3435973840バイト ( = 429496730個 x(4B + 4B))分用意すればよい。
アドレス変換テーブルF-PLTの容量について説明する。メモリ装置MEM2_0〜MEM2_255の総容量は4TBで、制御回路MDCT0は、この4TB容量を512B単位の物理アドレスF-PAD[32:0]にて管理する。これは、物理アドレスP-PADの数が8589934592個分あり、さらに、制御回路MDCT0は、この8589934592個分の論理アドレスに対する物理アドレスF-PADの変換を8KBのページデータ単位で行う際、アドレス変換テーブルF-PLTが保存できるアドレス数は 53687091個分(=8589934592/16)である。そのため、変換される物理アドレスF-PADも8KBのページ単位の物理アドレスF-PAD[32:4]であらわされ、そのビット数は29ビットとなる。また、物理アドレスF-PAD[32:4]に対応した有効/無効フラグVLE_FGは3ビットの情報を持つ。その結果、アドレス変換テーブルF-PLTの容量は、2147483648バイト ( = 53687091個 x4B )分用意すればよい。
書込み回数テーブルF-WCTの容量について説明する。書込み回数テーブルF-WCTへ格納するブロックアドレスF-BLKAD(F-PAD[32:11])数は、4194303個分ある。各ブロックは4バイトのデータを持つため、書込み回数テーブルF-WCTの容量は、16777212バイト ( = 4194303個 x4B )分だけ用意すればよい。論理アドレスから物理アドレスF-PADへ変換する際の、データサイズ単位によって、アドレス変換テーブルF-LPTの容量が決まる。たとえば、論理アドレスに対する物理アドレスF-PADの変換を16KBのデータ単位で行う際、アドレス変換テーブルF-LPTの容量は、1717986920バイト(=3435973840バイト x 8B/16B) と、小さくなる。論理アドレスから物理アドレスF-PADへ変換する際のデータサイズ単位LPTDsizeを大きくすると、アドレス変換テーブルF-LPTのサイズは小さくでき、メモリモジュールMEMMD0のコストを安くできる。
しかし、、情報処理装置CPU_CPからの1回当たりの書き込み要求に対する平均書き込みデータサイズより、データサイズ単位LPTDsizeが大きくなってしまい、アドレス変換テーブルF-LPTの更新回数、つまり書き換え回数が増加するため、アドレス変換テーブルF-LPTの寿命が短くなってしまう。つまり、メモリモジュールMEMMD0の寿命を短くしてしまう。論理アドレスから物理アドレスの変換する際のデータサイズ単位LPTDsizeは、メモリモジュールMEMMD0の低コストと長寿命のバランスをとった値にすると良い。
図6は、情報処理装置CPU_CPからの書込み要求に対して、制御回路(コントローラ)MDCT0が、メモリ装置MEM2_0〜MEM2_255へデータを書き込む動作を示す。
メモリ装置MEM0は、情報処理装置CPU_CPからの書込みデータを保存するためのライトバッファWBUF0であり、8KBのデータを256個分(エントリーENTRY0〜255)格納できる。さらに、ライトバッファWBUFへは、夫々の8kBのデータに対応した論理アドレスLAD[32:4]と、メモリ装置MEM2_0〜MEM2_255への書込みアドレスである物理アドレスF-PAD[32:4]が格納される。ライトバッファWBUF1もライトバッファWBUF0と同様の構成である。
1つのエントリーは、8kBの書込みデータと、4BのLAD[32:4]と、4BのF-PAD[32:4]から構成され8200バイトの大きさを持つ。D-PAD[23:3]は8バイト単位のアドレスで、エントリー毎の開始アドレスと終了アドレスを表す。
エントリーENTRY0は、D-PAD[23:3]のアドレスで13_8000〜13_8400までを含み、13_8000には、LAD[32:4]と、F-PAD[32:4]が格納され、13_8001〜13_8400までは8kBのデータが格納される。
物理アドレスF-PAD[32:4]の初期値は、メモリモジュールMEMMD0への電源投入直後に、制御回路MDCT0が、ライトバッファWBUF0のエントリーENTRY0〜255へ設定される。
情報処理装置CPU_CPから、256個の書き込み命令WRTと、論理アドレスLAD[32:0]と、8kBの書込みデータ(データWD0〜WD255)が順に、制御回路MDCT0へ入力する。制御回路MDCT0は、ライトバッファWBUF0のエントリー0から255まで、順に、論理アドレスLAD[32:4]と、書込みデータWD0〜255を格納する(Step1)。
次に、制御回路MDCT0はライトバッファWBUF0のエントリー0〜255へ保存されている物理アドレスF-PAD[32:4]値と、書き込みデータ(データWD0〜WD255)を、順に読み出し、このメモリ物理アドレスF-PAD[32:4]値と同一の装置MEM2_0〜MEM2_255のアドレスへ、順にデータWD0〜WD255を書き込む(Step2)。
次に、制御回路MDCT0は、ライトバッファWBUF0のエントリー0から論理アドレスLAD[32:4]値を読み出し、論理アドレスLAD[32:4]値の上位の論理アドレスLAD[32:14]値、つまり論理アドレスU-LAD値と、下位の論理アドレスLAD[13:4]値、つまり論理アドレスM-LAD値と、を抽出する(Step3)。
また、論理アドレスU-LADはメモリ装置MEM0の物理アドレスD−PAD[23:2]と同一であり、この物理アドレスD−PAD[23:0]領域にはアドレス変換テーブルP-GLPTが格納されている。
次に、制御回路MDCT0は論理アドレスU-LAD値に対応しているメモリ装置MEM0の物理アドレスD−PADからメモリ装置MEM10〜13の物理アドレスGP-PADを読み出す(Step4)。
物理アドレスGP-PADは、メモリ装置MEM10〜13の物理アドレスP-PAD[31:13]へ対応しており、論理アドレスM-LADは物理アドレスP-PAD[12:3]へ対応しており、これら物理アドレスGP-PADと論理アドレスM-LADによって指定される物理アドレスP-PAD[31:3]へ、アドレス変換テーブルF-LPTが、格納されている。
具体的にはアドレス変換テーブルF-LPTへはメモリ装置MEM2_0〜MEM2_255の物理アドレスF-PAD[32:4]と、メモリ装置MEM10〜13の物理アドレスP-PAD[31:3]に対する書き換え回数値P-WTCが格納されている。
次に、制御回路MDCT0はアドレス変換テーブルF-LPTを更新する。具体的にはライトバッファWBUF0のエントリー0〜255へ保存されている物理アドレスF-PAD[32:4]を読み出し、Step4にて読みだされた物理アドレスGP-PADと論理アドレスM-LADによって指定したアドレス変換テーブルF-LPTの物理アドレスP-PAD[32:3]へ、この物理アドレスF-PAD[32:4]を書き込む。さらに、この物理アドレスP-PAD[32:3]への現在の書き換え回数値へ1加算した値を、新たな書き換え回数値P-WTCとして更新する(Step5)。
また、制御回路MDCT0は、書込み回数テーブルP-WCT1を更新する。具体的にはメモリ装置MEM0へ格納されている書込み回数テーブルP-WCT1の中で、Step4にて読みだされた物理アドレスGP-PAD (P-PAD[32:14])へ対応する現在の書込み回数値へ1加算した値を、新たな書き換え回数値LPT-WTCとして計算し、書込み回数テーブルP-WCT1を更新する(Step5、図6では省略)。この様に、メモリ装置MEM10〜13の物理アドレスP-PAD[32:3]へ格納されているアドレス変換テーブルF-LPTを、メモリ装置MEM0へ格納されている物理アドレスGP-PADと、論理アドレスM-LADを利用し管理することで、アドレス変換テーブルF-LPTを管理するためのアドレス変換テーブルP-GLPTへは、物理アドレスGP-PADのみを保存でき、このアドレス変換テーブルP-GLPTの容量を削減できる。
さらに、制御回路MDCT0は、Step2にて、ライトバッファWBUF0のデータをメモリ装置MEM2_0〜MEM2_255へ書き込んでいる間に、次にデータを書き込むための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF1へ保持する(Step6、図6では省略)。
制御回路MDCT0の物理アドレスF-PADの計算方法を以下に示す。制御回路MDCT0は、消去回数テーブルF-WCTから、メモリ装置MEM2_0〜MEM2_255に消去状態の物理ブロックアドレスF-BLKAD毎の消去回数値を読み出し(Step1)、消去回数閾値ERCthと比較する。読み出した消去回数値が消去回数閾値ERCth以下であれば(Step2)、その消去状態の物理ブロックF-BLKADに含まれる物理アドレスF-PADを、次のデータ書き込み時の物理アドレスF-PADとして、ライトバッファWBUF0あるいはWBUF1へ格納する(Step3)。もし、消去回数閾値ERCth以下の消去回数値を持つ物理ブロックアドレスF-BLKADが見つからなければ、現在の消去回数閾値ERCthより大きな値を、新たな消去回数閾値ERCthとし(Step4)、再度、新たな消去回数閾値ERCthを利用し、Step1〜Step3を繰り返す。このライトバッファWBUF0あるいはWBUF1へ格納された物理アドレスF-PADの数が256個になるまで、上記Step1〜Step4 の動作を繰り返す。
この様に、消去回数閾値ERCth以下の消去回数値を持つ消去状態の物理ブロックアドレスF-BLKADの物理アドレスF-PADをデータ書き込み時の物理アドレスF-PADとすることで、メモリ装置MEM2_0〜MEM2_255の消去回数の平準化を行え、メモリモジュールMEMMD0の長寿命化が図れる。
さらに、予め次に書き込むための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF1へ保持することで、情報処理装置CPU_CPからの、次の書き込みデータに対するメモリ装置MEM2_0〜MEM2_255へのデータ書き込みの準備を完了することができ、高速な書き込みが実現できる。
図7は、情報処理装置CPU_CPからの読み出し要求に対して、制御回路(コントローラ)MDCT0が、メモリ装置MEM2_0〜MEM2_255からデータを読み出す動作を示す。情報処理装置CPU_CPから、8KBのデータを読み出す命令RDと、論理アドレスLAD[32:0]が順に、制御回路MDCT0へ入力する。
制御回路MDCT0は、論理アドレスLAD[32:0]値を読み出し、論理アドレスLAD[32:14]値、論理アドレスLAD[13:4]値および論理アドレスLAD[3:0]値、つまり論理アドレスU-LAD値、論理アドレスM-LAD値および論理アドレスS-LAD値のそれぞれを抽出する(Step1)。次に、制御回路MDCT0はアドレス変換テーブルP-GLPT内の論理アドレスU-LAD値に対応している物理アドレスD−PADから、アドレス変換テーブルF-LPTの物理アドレスGP-PADを読み出す(Step2)。
次に、制御回路MDCT0はメモリ装置MEM10〜13へ格納されているアドレス変換テーブルF-LPT内の、Step2にて読みだした物理アドレスGP-PADとStep1にて抽出した論理アドレスM-LADによって指定した物理アドレスP-PAD[32:3]から、メモリ装置MEM2_0〜MEM2_255の物理アドレスF-PAD[32:4]を読み出す(Step3)。
次に、制御回路MDCT0は、Step3にて読み出したメモリ装置MEM2_0〜MEM2_255の物理アドレスF-PAD[32:4]と、Step1にて抽出した論理アドレスS-LADにて指定した物理アドレスF-PAD[32:0]から、8KBのデータを読み出す(Step4)。
また、制御回路MDCT0は、Step1,Step2,Step3,Step4を、パイプライン動作させることができるため、情報処理装置CPU_CPからの読み出し要求が連続的に発生した場合でも、高速に読み出すことができる。たとえば、情報処理装置CPU_CPからメモリモジュールMEMMD0へ、4つの読み出し要求RD0,RD1,RD2,RD3が連続的に発生した場合、制御回路MDCT0は、読み出し要求RD0に関するStep4を実行している際に、読み出し要求RD1に対するStep3を実行できる。さらに、読み出し要求RD1に対するStep3を実行中に、読み出し要求RD2に対するStep2を実行でき、読み出し要求RD2に対するStep2を実行中に、読み出し要求RD3に対するStep1を実行できる。
図8は、情報処理装置CPU_CPからメモリモジュールMEMMD0へ複数の読み出しおよび書き込み要求が入力した場合の、メモリモジュールMEMMD0内部のパイプライン動作について説明する。
まずは、図8に示した8KBデータの読み出し要求RD0,RD1,RD2およびRD3がメモリモジュールMEMMD0へ入力した際のパイプライン動作について説明する。それぞれの読み出し要求RD0,RD1,RD2およびRD3には読み出し命令Rd,論理アドレスLAD[32:0]値が含まれる、
情報処理装置CPU_CPから8KBデータの読み出し要求RD0,RD1,RD2およびRD3がメモリモジュールMEMMD0へ入力した場合、制御回路MDCT0は、それぞれの読み出し要求RD0,RD1,RD2およびRD3の論理アドレスLAD[32:0]から、論理アドレスU-LAD(LAD[32:14])、論理アドレスM-LAD(LAD[13:4])および論理アドレスS-LAD (LAD[3:0])を抽出する(図7のStep1、図8のStep1:t0〜t4)。
次に、制御回路MDCT0は、アドレス変換テーブルP-GLPT内の、それぞれの読み出し要求RD0,RD1,RD2およびRD3の論理アドレスU-LADに対応している物理アドレスD−PADに格納されているアドレス変換テーブルF-LPTの物理アドレスGP-PADを読み出す(図7のStep2,図8のStep2:t1〜t5)。
次に、制御回路MDCT0はメモリ装置MEM10〜13へ格納されているアドレス変換テーブルF-LPT内の、図7のStep2にて読みだした物理アドレスGP-PADと図7のStep1にて抽出した論理アドレスM-LADによって指定した物理アドレスP-PAD[32:3]に格納されているメモリ装置MEM2_0〜MEM2_255の物理アドレスF-PAD[32:4]を読み出す(図7のStep3,図8のStep3:t2〜t6)。
次に、制御回路MDCT0は、図7のStep3にて読み出したメモリ装置MEM2_0〜MEM2_255の物理アドレスF-PAD[32:4]と、図7のStep1にて抽出した論理アドレスS-LADにて指定した物理アドレスF-PAD[32:0]から、8KBのデータを読み出す(図7のStep4,図8のStep4:t3〜t10)。
この様に、情報処理装置CPU_CPからメモリモジュールMEMMD0へ複数の読み出しが入力した場合、制御回路MDCT0は、Step1〜Step4をパイプライン動作させることで、高速にデータを読み出すことができる。
図9は、情報処理装置CPU_CPからメモリモジュールMEMMD0へ複数の書き込み要求WT0,WT01,WTD2およびWT3が入力した際の、メモリモジュールMEMMD0内部のパイプライン動作について説明する。それぞれの書き込み要求WT0,WT1,WT2およびWT3には、256個の書き込み命令WRTと、論理アドレスLAD[32:0]と、8kBの書込みデータ(データWD0〜WD255)が含まれる。
まず、時間t0にて、メモリモジュールMEMMD0へ最初に電源が投入された場合、制御回路MDCT0は、次のデータ書き込み要求のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF0へ保持する(図6のStep6、図9のStep6:時間t0〜t1)。
次に、書き込み要求WT0がメモリモジュールMEMMD0へ入力、つまり256個の書き込み命令WRTと、論理アドレスLAD[32:0]と、8kBの書込みデータ(データWD0〜WD255)が順に、制御回路MDCT0へ入力する。制御回路MDCT0は、256個の物理アドレスF-PAD[32:4]が格納されているライトバッファWBUF0のエントリー0から255まで、順に、論理アドレスLAD[32:4]と、書込みデータWD0〜255を格納する(図6のStep1、図9のStep1:時間t1〜t3)。
また、制御回路MDCT0は、Step1にて、ライトバッファWBUF0のデータをメモリ装置MEM2_0〜MEM2_255へ書き込んでいる間に、次のデータ書き込み要求WT1のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF1へ保持する(図6のStep6、図9のStep6:時間t2〜t3)。
次に、制御回路MDCT0はライトバッファWBUF0のエントリー0〜255へ保存されている物理アドレスF-PAD[32:4]値と、書き込みデータ(データWD0〜WD255)を、順に読み出し、このメモリ物理アドレスF-PAD[32:4]値と同一の装置MEM2_0〜MEM2_255のアドレスへ、順にデータWD0〜WD255を書き込む(図6のStep2、図9のStep2:時間t3〜t10)。
さらに、制御回路MDCT0は、ライトバッファWBUF0のエントリー0から255までの論理アドレスLAD[32:4]値を読み出し、論理アドレスLAD[32:4]値の上位の論理アドレスLAD[32:14]値、つまり論理アドレスU-LAD値と、下位の論理アドレスLAD[13:4]値、つまり論理アドレスM-LAD値と、を抽出する(図6のStep3、図9のStep3:時間t3〜t4)。
次に、制御回路MDCT0は、Step3で読み出した論理アドレスU-LADを利用し、アドレス変換テーブルP-GLPT内の論理アドレスU-LAD値に対応しているメモリ装置MEM0の物理アドレスD−PADへ格納されているメモリ装置MEM10〜13の物理アドレスGP-PADを読み出す(図6のStep4、図9のStep4:時間t4〜t5)。
次に、制御回路MDCT0はStep4にて読みだされた物理アドレスGP-PADと、Step3にて抽出した論理アドレスM-LADによって指定したアドレス変換テーブルF-LPTの物理アドレスP-PAD[32:3]へ、Step2で読み出したライトバッファWBUF0へ保存されている物理アドレスF-PAD[32:4]を書き込む。さらに、制御回路MDCT0は、この物理アドレスP-PAD[32:3]への現在の書き換え回数値へ1加算した値を、新たな書き換え回数値P-WTCとして更新し、メモリ装置MEM0へ格納されている書込み回数テーブルP-WCT1の中で、Step4にて読みだされた物理アドレスGP-PAD (P-PAD[32:14])へ対応する現在の書込み回数値へ1加算した値を、新たな書き換え回数値LPT-WTCとして計算し、書込み回数テーブルP-WCT1を更新する(図6のStep5、図9のStep5:時間t5〜t7)。
書き込み要求WT0に続いて、書き込み要求WT1,WT2,WT3が順にメモリモジュールMEMMD0へ入力した場合も、制御回路MDCT0は書き込み要求WT0と同様のパイプライン動作を行う。
制御回路MDCT0は、時間t4〜t5で、次のデータ書き込み要求WT2(図9のStep1:時間t5 〜t7)のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF0へ格納する。
制御回路MDCT0は、時間t5〜t7で、次のデータ書き込み要求WT3(図9のStep1:時間t7 〜t9)のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF1へ格納する。
さらに、制御回路MDCT0は、時間t8〜t9で、次のデータ書き込み要求(図9のStep1:時間t9以降)のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF0へ格納し、時間t10〜t11で、次のデータ書き込み要求(図9のStep1:時間t9以降)のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF1へ格納する。
この様に、制御回路MDCT0は、予め、次に書き込むための256個の物理アドレスF-PADを計算し、ライトバッファWBUF0,1へ保持することで情報処理装置CPU_CPからの、次の書き込みデータに対するメモリ装置MEM2_0〜MEM2_255へのデータ書き込みの準備を完了することができ、高速な書き込みが実現できる。
また、Step6での、次に書き込むための物理アドレスF-PADの決定、Step1でのライトバッファWBUF0およびWBUF1への書き込み、Step2での装置MEM2_0〜MEM2_255への書き込み動作、Step3〜Step5でのアドレス変換テーブルP-GLPTおよびF-LPTの更新 をパイプライン方式で実行することにより、高速に書き込みを行うことができる。
図10は、アドレス変換テーブルF-LPTの物理アドレスGP-PAD間でのウエアレベリング動作の一例を示す。
制御回路MDCT0は、たとえば、メモリモジュールMEMMD0へ入力したデータの増加量が、一定量を超えた場合や、メモリモジュールMEMMD0への読み出しや書き込み要求が、ある一定の期間は発生しなかった場合や、メモリ装置MEM2_0〜MEM2_255へのガーベージコレクションが発生した場合などにアドレス変換テーブルF-LPTのウエアレベリング動作を開始する。
アドレス変換テーブルF-LPTの物理アドレスGP-PAD範囲は、論理アドレスU-LAD範囲よりも大きな範囲を設けることで、無効状態の物理アドレスGP-PADを作ることができる。たとえば、アドレス変換テーブルF-LPTの物理アドレスGP-PAD範囲が、論理アドレスU-LAD範囲よりも5%分大きい場合は、アドレス変換テーブルF-LPTの無効状態になる物理アドレスGP-PADの数は全物理アドレスGP-PADの数の5%分となる。
GP-PAD無効テーブルP-INVは、エントリー毎に無効状態の物理アドレスGP-PADを格納しており、まず、制御回路MDCT0は、GP-PAD無効テーブルP-INVのエントリーENTRYの0番目から無効状態の物理アドレスGP-PADを読み出す(Step1)。
次に、制御回路MDCT0はGP-PAD無効テーブルP-INVから読み出した物理アドレスGP-PADに対応した書き込み回数値WCを書込み回数テーブルP-WCT1から読み出し(Step2)、書き込み回数閾値WCth2と比較する(Step3)。
読み出した書き込み回数値が書き込み回数閾値WCth2以下であれば、その無効状態の物理アドレスGP-PADを書き込み対象の物理アドレスとする(Step4)。
次のStep5では、再度、GP-PAD無効テーブルP-INVを検索する際のエントリーENTRYをENTRY = ENTRY + 1 にて求める。
次のStep6では、次に行われる一連のウエアレベリング動作が開始されるのを待つ。
Step8では、Step3で利用したエントリーENTRYが、GP-PAD無効テーブルP-INVの最終エントリーENTRYであるかをチェックする。最終エントリーである場合は、現在の書き込み回数閾値WCth2よりN2分だけ大きな値を、新たな書き込み回数閾値WCth2とし(Step9)、次にエントリーENTRYを0とし(Step10)、Step1を行う。
最終エントリーではない場合は、GP-PAD無効テーブルP-INVを検索する際のエントリーENTRYをENTRY = ENTRY + 1 にて求め(Step7)、Step1を行う。
以上説明した様に、一連のウエアレベリング動作では、常に、書き込み回数が書き込み回数閾値WCth2以下の物理アドレスGP-PAD(P-PAD[32:13])をアドレス変換テーブルF-LPTへの書き込み対象の物理アドレスGP-PADとするため、アドレス変換テーブルF-LPT内の物理アドレスGP-PAD間での書き込み回数の平準化ができ、メモリモジュールMEMMD0を長寿命化できる。
図11は、アドレス変換テーブルF-LPTの物理アドレスGP-PAD(P-PAD[32:13])内の複数のP-PAD[12:3]間でのウエアレベリング動作の一例を示す。
制御回路MDCT0は、メモリモジュールMEMMD0へ入力したデータの増加量が、一定量を超えた場合のや、メモリモジュールMEMMD0への読み出しや書き込み要求が、ある一定の期間は発生しなかった場合や、メモリ装置MEM2_0〜MEM2_255へのガーベージコレクションが発生した場合などにアドレス変換テーブルF-LPTのウエアレベリング動作を開始する。
このウエアレベリング動作では、まず、制御回路MDCT0は、書込み回数テーブルP-WCT1からアドレス変換テーブルF-LPTの物理アドレスGP-PADの書き換え回数値WCを読み出し (Step1)、書き換え回数閾値WCth1と比較する(Setp2)。
読み出した書き換え回数値が書き換え回数閾値WCth1より大きい場合は、Step3を行い、以下であればStep8を行う。Step3では、アドレス変換テーブルF-LPTの物理アドレスGP-PAD(P-PAD[32:13])に含まれる1024個の書き込み回数の最大値と最小値の差Wdiffと、書き込み回数の最大値を持つP-PADmaxと、書き込み回数の最小値を持つP-PADminと、オフセットMLAoffset1 = P-PADmin - P-PADmaxを求める。
Step8では、物理アドレスGP-PADを利用し書込み回数テーブルP-WCT1を連続してN回以上検索したかをチェックする。連続してN回以上検索した場合は、Step9を行う。連続検索回数がN回未満の場合は、Step7を行う。Step7では、再度、書込み回数テーブルP-WCT1を検索する際の物理アドレスGP-PADを、物理アドレス GP-PAD= GP-PAD + 1 にて求める。
Step3の次のStep4では、この差Wdiffと、書き換え回数差閾値Wdiff_thを比較する。書き換え回数差差Wdiffが書き換え回数差閾値Wdiff_thより大きい場合はStep5を行い、以下であればStep9を行う。Step5では、新たに、アドレス変換テーブルF-LPTの物理アドレスGP-PAD(P-PAD[32:13])に含まれる1024個のP-PAD[12:3]と、M-LADの対応付けを行う。まず、アドレス変換テーブルP-GPLTから、GP-PADに対応するMLAoffset0を読み出す。 次に、MLAoffset0 = MLAoffset0 + MLAoffset1 を計算し、新たなMLAoffset0を求め、M-LADとP-PAD[12:3]の対応付けを行う。対応付けの方法を以下に示す。
(1)If 0 ≦ M-LAD + MLAoffset0 ≦1023, P-PAD = M-LAD + MLAoffset0
(2)If M-LAD + MLAoffset0 > 1023, P-PAD = M-LAD + MLAoffset0 -1024
(3)If M-LAD + MLAoffset0 < 0, P-PAD = M-LAD + MLAoffset0 + 1024
さらに、アドレス変換テーブルP-GPLT内の対象となる物理アドレスGP-PADへ対応する論理アドレスU-LADを読み出す。最後に、アドレス変換テーブルP-GLPT内の、アドレス変換テーブルP-GPLTから読み出した論理アドレスU-LADへ対応するMLAoffset0へ新たなMLAoffset0値を格納する。
次のStep6では、まず、F-LPT内の対象GP-PAD内1024個のP-PAD[12:3]のF-PADと書き込み回数値PWCTを読み出す。それぞれの書き込み回数値PWCTへ1を加算した値を新たな書き込み回数値PWCTとし、Step5で求めたM-LADとP-PAD[12:3]の対応付けに従い、 1024個のF-PADと、新たな書き込み回数値PWCTを並び替え、 再度、F-LPT内対象GP-PAD内へ書き込む。
Step9では、再度、書込み回数テーブルP-WCT1を検索する際の物理アドレスGP-PADを、物理アドレス GP-PAD + 1 = GP-PAD + 1 にて求める。次のStep10では、次に行われる一連のウエアレベリング動作が開始されるのを待つ。
以上説明した様に、一連のウエアレベリング動作では、アドレス変換テーブルF-LPTの物理アドレスGP-PAD(P-PAD[32:13])に含まれる1024個のP-PAD[12:3]の中で、書き込み回数の最大値を持つP-PAD[12:3]へ割り当てられている論理アドレスM-LADを、書き込み回数の最小値を持つP-PAD[12:3]へ割り当てることができるため、アドレス変換テーブルF-LPT内の書き込み回数の平準化ができ、メモリモジュールMEMMD0を長寿命化できる。
さらに、図10で説明したウエアレベリング動作と組み合わせることで、さらに、メモリモジュールMEMMD0を長寿命化できる。
図12は、本実施例の情報処理システムおよびメモリモジュールの概略構成例を示すブロック図である。図12に示す情報処理システムSRVは、情報処理装置CPUと記憶装置MEM3とメモリモジュールDIMMD0〜DIMMDnとを備える。
各メモリモジュールDIMMD0〜DIMMDnは、メモリ装置MEM0と、MEM1と、MEM2_0〜MEM2_7と、これらメモリ装置を制御する制御回路DIMCT0と、DIMM(Dual Inline Memory Module)規格で規定されているピン配置や電気的特性を備える。情報処理装置CPUと、各メモリモジュールDIMMD0〜DIMMDnは、このDIMM規格により直接的に接続できる。
制御回路DIMCT0の機能や動作、メモリ装置MEM0、MEM1と、MEM2_0〜MEM2_7は図1と同様である。また、DIMM規格にはUnbuffered DIMMや、Buffered DIMM、 SO-DIMMなどのがあり、いずれの規格を利用してもよい。情報処理装置CPUと、各メモリモジュールDIMMD0〜DIMMDnは、このDIMM規格により直接的に接続できる。
メモリモジュールDIMMD0〜DIMMDnには、大規模なデータベースが格納されており、情報処理装置CPUは、このデータベースの一部をいったん記憶装置MEM3へ転送しながら、解析を行う。また、解析途中の一時的なデータや解析結果は、記憶装置MEM3やメモリモジュールDIMMD0〜DIMMDnへ格納される。
記憶装置MEM3には、SRAM、DRAM、相変化型メモリPCM、抵抗変化型メモリReRAM、スピン注入磁化反転型メモリSTT−MRAM、NAND型フラッシュメモリ、NOR型フラッシュメモリ、などの記憶装置があるが、いずれの記憶装置でもよい。
情報処理装置CPUと、各メモリモジュールDIMMD0〜DIMMDnは、このDIMM規格により直接的に接続できるため、メインメモリと扱うことができ、大規模なデータベースの解析が高速に行える。
メモリモジュールDIMMD0〜DIMMDnを構成する各記憶装置や、記憶装置MEM3が不揮発性メモリの場合は、DRAMでのリフレッシュ動作の様な、高頻度のデータ保持動作が必要ないため、情報処理システムSRVの低電力化が図れる。さらに突発的な電源遮断による、データ消失を防ぐためバッテリバックアップを搭載する必要がないため低コスト化も可能となる。
図13は、本実施例の情報処理システムの概略構成例を示すブロック図である。図13に示す情報処理システムは、情報処理装置SRV0〜SRViと、各情報処理装置SRV0〜SRViをつなぐネットワーク装置NetWと、ストレージシステムSTRGSYSを備えている。それぞれの情報処理装置SRV0〜SRViは、図12で示した情報処理装置SRVと同様の構成および機能をもつ。ストレージシステムSTRGSYSは、ストレージコントローラSTRGCNTとストレージ装置STG0〜STGkを備える。ストレージコントローラSTRGCNTは、制御装置GCCTとメモリモジュールCMEMMD0〜CMEMMDmを備える。ストレージ装置STG0〜STGkは、制御回路STCT0とメモリモジュールMEMMD0〜MEMMDnとを備える。
制御回路STCT0は、制御装置GCCTと、メモリモジュールMEMMD0〜MEMMDn間のデータ転送を制御する。それぞれのメモリモジュールMEMMD0〜MEMMDnは、図1に示したメモリモジュールMEMMD0と同様の機能および構成を備えている。
ストレージコントローラSTRGCNT内の制御装置GCCTは、情報処理装置SRV0〜SRViと、ストレージ装置STG0〜STGkと、メモリモジュールCMEMMD0〜CMEMMDmとの間のデータ転送を制御する。メモリモジュールCMEMMD0〜CMEMMDmは、ストレージ装置STG0〜STGkのキャッシュメモリであり、ストレージ装置STG0〜STGkへ格納されている一部のデータがメモリモジュールCMEMMD0〜CMEMMDmへ格納される。
さらに、情報処理装置SRV0〜SRVi内のメモリモジュールDIMMD0〜DIMMDnは、メモリモジュールCMEMMD0〜CMEMMDmのキャッシュメモリであり、メモリモジュールCMEMMD0〜CMEMMDmへ格納されている一部のデータがメモリモジュールDIMMD0〜DIMMDnへ格納される。
ストレージ装置STG0〜STGkには、株取引や電子商取引などに必要な超巨大なデータベースが格納されており、この超巨大なデータベースを情報処理装置SRV0〜SRViにて解析する際の動作を説明する。
情報処理装置SRV0にて解析すべきデータがメモリモジュールDIMMD0〜DIMMDnに存在すれば、情報処理装置CPUがこのデータをメモリモジュールDIMMD0〜DIMMDnから読み出し、解析を行い、その解析結果をメモリモジュールDIMMD0〜DIMMDnへ格納する。
もし、情報処理装置SRV0にて解析すべきデータDATA0がメモリモジュールDIMMD0〜DIMMDnに存在しなければ、情報処理装置SRV0内の情報処理装置CPUは、必要とするデータDAT0の読み出し要求を、ネットワーク装置NetWを通じて情報共有する他の情報処理装置SRV1〜SRViへ伝える。
情報処理装置SRV0以外の情報処理装置SRV1〜SRViは、自身がデータDATA0を保有していれば、このデータDATA0を情報処理装置SRV0へ転送し、保有していなければ「データ無」という情報を情報処理装置SRV0へ転送する。
また、情報処理装置SRV0にて解析すべきデータDATA0が、いずれの情報処理装置SRV0〜SRViにも存在しなけば、情報処理装置SRV0は、必要とするデータDAT0の読み出し要求を、制御装置GCCTへ送信する。
制御装置GCCTは、まず、データDATA0はメモリモジュールCMEMMD0〜CMEMMDmに保存されているかをチェックする。保存されていれば制御装置GCCTは、このデータDAT0をメモリモジュールCMEMMD0〜CMEMMDmから読み出し、情報処理装置SRV0へ転送する。情報処理装置SRV0内情報処理装置CPUは、データDAT0をメモリモジュールDIMMD0〜DIMMDnへ格納しつつ、同時に解析を行う。
また、データDATA0がメモリモジュールCMEMMD0〜CMEMMDmに保存されていなければ、制御装置GCCTは、データDAT0の読み出し要求を、ストレージ装置STG0〜STGkのいずれかに送信する。データDAT0の読み出し要求を受け取ったストレージ装置の制御回路STCT0は、メモリモジュールMEMMD0〜MEMMDmからデータDAT0を読み出し、制御装置GCCTへ送信する。
次に制御装置GCCTは、受け取ったデータDATA0をメモリモジュールDIMMD0〜DIMMDnへ格納しつつ、情報処理装置SRV0へ転送する。
情報処理装置SRV0は、データDATA0を受け取ると情報処理装置SRV0内情報処理装置CPUが、このデータDATA0を解析し、同時にメモリモジュールDIMMD0〜DIMMDnへ格納する。さらに、解析結果を利用し、新たな解析を高速に行うため、この解析結果を情報処理装置SRV0内のメモリモジュールDIMMD0〜DIMMDnへ格納する。
情報処理装置SRV0内のメモリモジュールDIMMD0〜DIMMDnへ書き込まれた解析結果などのデータサイズが大きくなり、解析結果データWDATA3がメモリモジュールDIMMD0〜DIMMDnへ格納しきれなくなった場合、情報処理装置SRV0内の情報処理装置CPUは、メモリモジュールDIMMD0〜DIMMDn内の最も古い解析結果データWDATA10を情報処理装置CPU内のライトバックバッファへ転送し、メモリモジュールDIMMD0〜DIMMDn内へ空き領域を作る。次に、情報処理装置CPUは、この空き領域へデータWDATA3を格納する。
次に、情報処理装置CPUは、データWDATA10を情報処理装置CPU内のライトバックバッファへ転送されたデータWDATA10を書き込み要求とデータWDATA10を、制御装置GCCTへ送信する。
制御装置GCCTは、メモリモジュールCMEMMD0〜CMEMMDmの書き込み領域に、空き領域があるかをチェックし、空き領域があれば解析結果データWDATA10を、メモリモジュールCMEMMD0〜CMEMMDmへ書き込む。
もし、空き領域がなければ、制御装置GCCTは、メモリモジュールCMEMMD0〜CMEMMDm内の最も古い解析結果データWDATA50を、制御装置GCCT内部のライトバックバッファへ転送し、メモリモジュールCMEMMD0〜CMEMMDmへ空き領域を作る。次に、制御装置GCCTはデータWDATA50をメモリモジュールCMEMMD0〜CMEMMD内の空き領域へ書き込む。
さらに、制御装置GCCTは、制御装置GCCT内部のライトバックバッファへ転送されたデータWDATA50の書き込み要求とデータWDATA50 をストレージ装置STG0〜STGkのいずれかへ送信する。データWDATA50と書き込み要求を受け取ったストレージ装置の制御回路STCT0は、メモリモジュールMEMMD0〜MEMMDmへデータWDATA50を書き込む。
以上説明したように、情報処理装置SRV0〜SRVi内の情報処理装置CPUと、各メモリモジュールDIMMD0〜DIMMDnは、このDIMM規格により直接的に接続できるため、メインメモリと扱うことができ、大規模なデータベースの解析が高速に行う情報処理システムを構築できる。
また、メモリモジュールDIMMD0〜DIMMDn、CMEMMD0〜CMEMMDmおよびMEMMD0〜MEMMDmを構成する各記憶装置や、記憶装置MEM3が不揮発性メモリの場合は、DRAMでのリフレッシュ動作の様な、高頻度のデータ保持動作が必要ないため、情報処理システムの低電力化が図れる。さらに突発的な電源遮断による、データ消失を防ぐためバッテリバックアップを搭載する必要がないため低コスト化も可能となる。
《実施形態による代表的な効果の纏め》
以上に説明した各実施例によって得られる代表的な効果を纏めると以下の通りである。
第1に、第1のメモリ装置と、第2のメモリ装置と、第3のメモリ装置と、これを制御するコントローラからなるメモリモジュールであって、第1のメモリ装置へ、第2のメモリ装置に関するアドレス変換テーブルを格納し、第2のメモリ装置へ、第3のメモリ装置に関するアドレス変換テーブルを格納し、コントローラは第3のメモリ装置に対するウエアレベリングと、第3のメモリ装置に関するアドレス変換テーブルを格納する第2のメモリ装置に対するウエアレベリングを行うことで、メモリモジュールの寿命を損なうことなく、完全に電源遮断へ対応でき、上記メモリを利用したメモリモジュールおよび当該メモリモジュールを含む情報処理システムにおいて、信頼性の向上や長寿命化が実現可能になる。
第2に、メモリ装置MEM1_0〜1_3が1Bのデータ単位で、書き込みが可能な場合、アドレス変換テーブルF-LPTは、アドレス変換テーブルP-GLPTによって、理論的には1Bのデータ単位で、論理アドレスLADから物理アドレスGP-PADへ変換可能ではあるが、アドレス変換テーブルP-GLPTの容量が爆発的に増えてしまう。
そこで、1Bのデータ単位で、書き込みが可能なメモリ装置に対しても、たとえば、8KBのデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換することで、アドレス変換テーブルP-GLPTに必要な容量を大幅に削減でき、メモリモジュールMEMMD0のコストを安くできる。
たとえばメモリ装置MEM1_0〜1_3が512B,4KB,8kB, 16kBなど様々なデータ単位のページサイズを持ち、データを書き込む場合、ページサイズ以上のデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換することで、アドレス変換テーブルP-GLPTに
必要な容量を大幅に削減でき、メモリモジュールMEMMD0のコストを安くできる。
第3に、情報処理装置CPU_CPから読み出し要求がメモリモジュールMEMMD0へ入力した場合、以下の(1)〜(4)の動作をパイプライン動作させることで、高速にデータを読み出すことができる。
(1)読み出し要求の論理アドレスLADから、論理アドレスU-LAD、論理アドレスM-LADおよび論理アドレスS-LADの抽出、
(2)アドレス変換テーブルP-GLPT内の、論理アドレスU-LADに対応しているアドレス変換テーブルF-LPTの物理アドレスGP-PADの読み出し、
(3)アドレス変換テーブルF-LPT内の、物理アドレスGP-PADと論理アドレスM-LADによって指定した物理アドレスP-PADに格納されている物理アドレスF-PADの読み出し、
(4)物理アドレスF-PADからのデータ読み出し。
第4に、情報処理装置CPU_CPから書き込み要求がメモリモジュールMEMMD0へ入力した場合、以下の(1)〜(6)の動作をパイプライン動作させることで、高速にデータを書き込むことができる。
(1)ライトバッファWBUF0およびWBUF1へのデータ書き込み、
(2)装置MEM2_0〜MEM2_255へのデータ書き込み
(3)書き込み要求の論理アドレスLADから、論理アドレスU-LAD、論理アドレスM-LADおよび論理アドレスS-LADの抽出、
(4)アドレス変換テーブルP-GLPT内の論理アドレスU-LAD値に対応している物理アドレスGP-PADの読み出し、
(5)アドレス変換テーブルP-GLPTおよびF-LPTの更新、
(6)次に書き込むための物理アドレスF-PADの決定。
第5に、アドレス変換テーブルF-LPTに対するウエアレベリングに関して、アドレス変換テーブルF-LPTの物理アドレスGP-PAD間でのウエアレベリングと、物理アドレスGP-PAD内部の物理P-PAD間でのウエアレベリングを組み合わせることで、メモリモジュールMEMMD0を長寿命化が実現できる。
第6に、メモリモジュールがDIMM規格を備えることにより情報処理装置CPUと、直接的に接続でき、大規模なデータベースを高速に解析できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
CPU_CP,CPU:情報処理装置、MEMMD0,CMEMMD0,DIMMD0:メモリモジュール、HDH_IF:インターフェース信号、MEM0:記憶装置、MEM10〜MEM13:記憶装置、ME2_0〜MEM2_255:記憶装置、MDCT0:制御回路、DIMCT0:制御回路、RSTSIG:リセット信号、REF_CLK: 参照クロック信号、HOST_IF:インターフェース回路HOST_IF、BUF0〜BUF3:バッファBUF0〜BUF3、NXNTBL,NXPTBL:書込み物理アドレステーブル、ARB:調停回路、MANAGER: 情報処理回路、MAPREG:マップレジスタ、M0CT0,M1CT0,M2CT0〜M2CT31:メモリ制御回路、RSDCFG:レジスタ、SRV0〜SRV0:情報処理装置、NetW:ネットワーク装置、STRGSYS:ストレージシステム、STG0〜STGk:ストレージ装置、
STRGCNT:ストレージコントローラ、GCCT,STCT0,:制御装置。

Claims (15)

  1. 揮発性および不揮発性のいずれか一方の第1のメモリ装置と、不揮発性の第2のメモリ装置と、不揮発性の第3のメモリ装置と、これを制御するコントローラを含むメモリモジュールであって、
    前記第2のメモリ装置の容量は、前記第1のメモリ装置の容量より大きく、前記第3のメモリ装置の容量は、前記第2のメモリ装置の容量より大きく、
    前記第2のメモリ装置の書き換え回数の第2の上限値は、前記第3のメモリ装置の書き換え回数の第3の上限値より大きく、前記第1のメモリ装置の書き換え回数の第1の上限値は、前記第2のメモリ装置の書き換え回数の前記第2の上限値より大きく、
    前記コントローラは、前記第1のメモリ装置に格納される、前記第2のメモリ装置に関する第1のアドレス変換テーブルを参照して前記第2のメモリ装置にアクセスし、前記第2のメモリ装置に格納される、前記第3のメモリ装置に関する第2のアドレス変換テーブルを参照して前記第3のメモリ装置にアクセスすることを特徴するメモリモジュール。
  2. 請求項1記載のメモリモジュールにおいて、
    前記第1のメモリ装置には、ライトバッファ含むことを特徴するメモリモジュール。
  3. 請求項2記載のメモリモジュールにおいて、
    前記コントローラは前記第3のメモリ装置の物理アドレスを予め前記ライトバッファへ格納することを特徴するメモリモジュール。
  4. 請求項3に記載のメモリモジュールにおいて、
    前記コントローラは、前記第1のメモリ装置へのデータ書き込み、前記第3のメモリ装置の物理アドレスの決定、前記第3のメモリ装置へのデータ書き込み、前記第2のアドレス変換テーブルの更新をパイプライン処理することを特徴するメモリモジュール。
  5. 請求項1記載のメモリモジュールにおいて、
    前記第1のメモリ装置には、前記第2のメモリ装置の第1の書き換え回数テーブルが保存され、前記第2のメモリ装置には、前記第3のメモリ装置の第2の書き換え回数テーブルが保存されることを特徴するメモリモジュール。
  6. 請求項5記載のメモリモジュールにおいて、
    前記コントローラは、前記第1の書き換え回数テーブルを利用し、前記第2のメモリ装置のウエアレベリングを行い、前記第2の書き換え回数テーブルを利用し、前記第3のメモリ装置のウエアレベリングを行うことを特徴するメモリモジュール。
  7. 請求項1記載のメモリモジュールにおいて、
    前記第2のアドレス変換テーブルには、前記第3のメモリ装置の第3の書き換え回数テーブルが登録されることを特徴するメモリモジュール。
  8. 請求項7記載のメモリモジュールにおいて、
    前記コントローラは、前記第3の書き換え回数テーブルを利用し、前記第2のアドレス変換テーブルのウエアレベリングを行うことを特徴するメモリモジュール。
  9. 請求項8記載のメモリモジュールにおいて、
    前記コントローラは、前記第2のメモリ装置の第2の書き換え回数テーブルと、前記第3の書き換え回数テーブルを利用し、前記第2のアドレス変換テーブルのウエアレベリングを行うことを特徴するメモリモジュール。
  10. 請求項1記載のメモリモジュールにおいて、
    前記第1のアドレス変換テーブルには前記第2のメモリ装置の物理アドレスへオフセットを設けることを特徴するメモリモジュール。
  11. 請求項1記載のメモリモジュールにおいて、
    前記第2のメモリ装置は、上書きが可能なメモリ装置及び消去動作後にデータを書き込むメモリ装置のいずれか一方であり、前記第3のメモリ装置は、上書きが可能なメモリ装置及び消去動作後にデータを書き込むメモリ装置のいずれか一方であることを特徴するメモリモジュール。
  12. 請求項1記載のメモリモジュールにおいて、
    DIMM規格と互換性をもつことを特徴するメモリモジュール。
  13. 揮発性および不揮発性のいずれか一方の第1のメモリ装置と、不揮発性の第2のメモリ装置と、不揮発性の第3のメモリ装置と、これを制御するコントローラを含むメモリモジュールと、前記メモリモジュールと接続する情報処理装置と、前記情報処理装置と接続するメモリ装置とを含む情報処理システムであって、
    前記第2のメモリ装置の容量は、前記第1のメモリ装置の容量より大きく、前記第3のメモリ装置の容量は、前記第2のメモリ装置の容量より大きく、
    前記第2のメモリ装置の書き換え回数の第2の上限値は、前記第3のメモリ装置の書き換え回数の第3の上限値より大きく、前記第1のメモリ装置の書き換え回数の第1の上限値は、前記第2のメモリ装置の書き換え回数の前記第2の上限値より大きく、
    前記コントローラは、前記第1のメモリ装置に格納される、前記第2のメモリ装置に関する第1のアドレス変換テーブルを参照して前記第2のメモリ装置にアクセスし、前記第2のメモリ装置に格納される、前記第3のメモリ装置に関する第2のアドレス変換テーブル2を参照して前記第3のメモリ装置にアクセスすることを特徴する情報処理システム。
  14. 揮発性および不揮発性のいずれか一方の第1のメモリ装置と、不揮発性の第2のメモリ装置と、不揮発性の第3のメモリ装置と、これらを制御する第1のコントローラを含む複数の第1のメモリモジュールと、複数の前記第1のメモリモジュールを制御する第2のコントローラを含む第2のメモリモジュールと、
    複数の前記第2のメモリモジュールと、前記第1のメモリモジュールと同様の構成の、前記第1のメモリモジュールとは異なる第3のメモリモジュールとを制御する第3のコントローラとを含む情報処理システムであって、
    前記第2のメモリ装置の容量は、前記第1のメモリ装置の容量より大きく、前記第3のメモリ装置の容量は、前記第2のメモリ装置の容量より大きく、
    前記第2のメモリ装置の書き換え回数の第2上限値は、前記第3のメモリ装置の書き換え回数の第3の上限値より大きく、前記第1のメモリ装置の書き換え回数の第1の上限値は、前記第2のメモリ装置の書き換え回数の前記第2の上限値より大きく、
    前記第1のコントローラは、前記第1のメモリ装置に格納される、前記第2のメモリ装置に関する第1のアドレス変換テーブルを参照して前記第2のメモリ装置にアクセスし、前記第2のメモリ装置に格納される、前記第3のメモリ装置に関する第2のアドレス変換テーブルを参照して前記第3のメモリ装置にアクセスすることを特徴する情報処理システム。
  15. 請求項14記載の情報処理システムにおいて、
    前記第3のメモリモジュールは、前記第2のメモリモジュールのキャッシュメモリであることを特徴する情報処理システム。
JP2016532359A 2014-07-09 2014-07-09 メモリモジュールおよび情報処理システム Expired - Fee Related JP6166476B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/068340 WO2016006067A1 (ja) 2014-07-09 2014-07-09 メモリモジュールおよび情報処理システム

Publications (2)

Publication Number Publication Date
JPWO2016006067A1 JPWO2016006067A1 (ja) 2017-04-27
JP6166476B2 true JP6166476B2 (ja) 2017-07-19

Family

ID=55063742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016532359A Expired - Fee Related JP6166476B2 (ja) 2014-07-09 2014-07-09 メモリモジュールおよび情報処理システム

Country Status (3)

Country Link
US (1) US10037168B2 (ja)
JP (1) JP6166476B2 (ja)
WO (1) WO2016006067A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102456173B1 (ko) 2017-10-27 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102421149B1 (ko) * 2018-01-02 2022-07-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200104601A (ko) 2019-02-27 2020-09-04 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
CN107844431B (zh) * 2017-11-03 2022-01-25 合肥兆芯电子有限公司 映射表更新方法、存储器控制电路单元与存储器存储装置
US11061598B2 (en) * 2019-03-25 2021-07-13 Western Digital Technologies, Inc. Optimized handling of multiple copies in storage management
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
KR102456176B1 (ko) 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102435253B1 (ko) 2020-06-30 2022-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102495910B1 (ko) 2020-04-13 2023-02-06 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102406449B1 (ko) 2020-06-25 2022-06-08 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11755476B2 (en) 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
SG130988A1 (en) * 2005-09-29 2007-04-26 Trek 2000 Int Ltd Portable data storage device incorporating multiple flash memory units
JP5224706B2 (ja) * 2007-03-23 2013-07-03 キヤノン株式会社 記憶装置及び記憶装置の制御方法
US8060719B2 (en) * 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
US8838903B2 (en) * 2010-02-04 2014-09-16 Dataram, Inc. Priority ordered multi-medium solid-state storage system and methods for use
JP5553309B2 (ja) * 2010-08-11 2014-07-16 国立大学法人 東京大学 データ処理装置
JP5907739B2 (ja) 2012-01-26 2016-04-26 株式会社日立製作所 不揮発性記憶装置
JP5631938B2 (ja) 2012-07-19 2014-11-26 株式会社東芝 半導体記憶装置
WO2014132346A1 (ja) * 2013-02-27 2014-09-04 株式会社日立製作所 半導体ストレージ
WO2015008356A1 (ja) * 2013-07-17 2015-01-22 株式会社日立製作所 ストレージコントローラ、ストレージ装置、ストレージシステム、半導体記憶装置

Also Published As

Publication number Publication date
US10037168B2 (en) 2018-07-31
WO2016006067A1 (ja) 2016-01-14
US20170131951A1 (en) 2017-05-11
JPWO2016006067A1 (ja) 2017-04-27

Similar Documents

Publication Publication Date Title
JP6166476B2 (ja) メモリモジュールおよび情報処理システム
US11301373B2 (en) Reconstruction of address mapping in a host of a storage system
US10296224B2 (en) Apparatus, system and method for increasing the capacity of a storage device available to store user data
US10229049B2 (en) Storage system that performs host-initiated garbage collection
WO2016107442A1 (zh) 将数据写入固态硬盘的方法及固态硬盘
US10965751B2 (en) Just a bunch of flash (JBOF) appliance with physical access application program interface (API)
US10459635B2 (en) Window based mapping
US20150347291A1 (en) Flash memory based storage system and operating method
US20200218451A1 (en) Storage device having dual access procedures
US11386005B2 (en) Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache
US9875044B2 (en) Data storage device compensating for initial threshold voltage distribution shift, method of operating the same, and data processing system including the same
US11074172B2 (en) On-device-copy for hybrid SSD with second persistent storage media update of logical block address for first persistent storage media data
US11237753B2 (en) System including data storage device and method of controlling discard operation in the same
US9477423B2 (en) Eliminating or reducing programming errors when programming flash memory cells
KR20190107300A (ko) 자동화된 동적 워드 라인 시작 전압을 위한 장치 및 방법
KR20200086143A (ko) 저장 장치 및 그것의 데이터 처리 방법
US20210279132A1 (en) Memory controller and method of operating the same
US11573891B2 (en) Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
US11263148B2 (en) Mapping host logical address to target address that is selected from combination of first memory&#39;s physical addresses and second memory&#39;s virtual addresses
US20210073078A1 (en) Memory controller and method of operating the same
KR20200122522A (ko) 컨트롤러 및 그 동작 방법
US20230236964A1 (en) Storage controller deallocating memory block, method of operating the same, and method of operating storage device including the same
US11822800B2 (en) Storage system including host and storage device and operation method thereof
TWI705328B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US20240004566A1 (en) Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system

Legal Events

Date Code Title Description
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: 20170606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170622

R150 Certificate of patent or registration of utility model

Ref document number: 6166476

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees