JP2018160059A - メモリコントローラ - Google Patents
メモリコントローラ Download PDFInfo
- Publication number
- JP2018160059A JP2018160059A JP2017056500A JP2017056500A JP2018160059A JP 2018160059 A JP2018160059 A JP 2018160059A JP 2017056500 A JP2017056500 A JP 2017056500A JP 2017056500 A JP2017056500 A JP 2017056500A JP 2018160059 A JP2018160059 A JP 2018160059A
- Authority
- JP
- Japan
- Prior art keywords
- mode
- mapping data
- data
- managed
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
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)
- Computer Security & Cryptography (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】論物変換テーブル量を削減し、不揮発性メモリの利用効率を向上することが可能なメモリコントローラを提供する。
【解決手段】コマンドをホストから受信したとき、第1モードおよび第2モードのどちらで管理されているかを判定S120し、マッピングデータが第1のモードで管理され、かつマッピングデータを第1の圧縮率より小さく圧縮できるときに、マッピングデータを第1の管理サイズから第2の管理サイズに変更し、マッピングデータを圧縮する。
【選択図】図3
【解決手段】コマンドをホストから受信したとき、第1モードおよび第2モードのどちらで管理されているかを判定S120し、マッピングデータが第1のモードで管理され、かつマッピングデータを第1の圧縮率より小さく圧縮できるときに、マッピングデータを第1の管理サイズから第2の管理サイズに変更し、マッピングデータを圧縮する。
【選択図】図3
Description
本実施形態は、不揮発性メモリを制御するメモリコントローラに関する。
SSD(Solid State Drive)などのメモリシステムにおいては、ホストによって指定される論理アドレスとストレージ上の物理アドレス間のマッピングを、論物変換テーブルを用いて管理する。論物変換テーブルは、リード/ライト処理の高速化を目的として、DRAM(Dynamic Random Access Memory)等の揮発性メモリに一部または全てをキャッシュして利用されることが多い。SSDの容量に比例してキャッシュされる論物変換テーブルの容量が大きくなるため、容量の削減が望まれる。
一つの実施形態は、論物変換テーブル量を削減し、不揮発性メモリの利用効率を向上することが可能なメモリコントローラを提供することを目的とする。
一つの実施形態によれば、メモリコントローラは、不揮発性の第1メモリおよび前記第1メモリより高速アクセスが可能な第2のメモリを制御する。前記第2のメモリは、ホストによって指定される論理アドレスと前記第1メモリの物理アドレスとの対応関係を示すマッピングデータが含まれる第1テーブルをストアする。前記マッピングデータは、第1の管理単位毎に、第1モードおよび第2モードの何れか一方で管理される。前記第1モードでは、前記マッピングデータが第1の管理サイズで管理されている。前記第2モードでは、前記マッピングデータが第2の管理サイズで管理されかつ圧縮されている。前記第1の管理サイズは前記第2の管理サイズより大きい。前記第1の管理単位は前記第1の管理サイズ以上である。前記メモリコントローラは、制御部を備える。前記制御部は、第1のコマンドおよび第1データをホストから受信したとき、前記第1のコマンドによって指定される前記論理アドレスである第1のアドレスに対応する前記第1の管理単位の前記マッピングデータである第1のマッピングデータが、前記第1テーブルにおいて前記第1モードおよび前記第2モードのどちらで管理されているかを判定する。前記制御部は、前記第1のマッピングデータが前記第1のモードで管理されている場合であって、前記第1のマッピングデータを第1の圧縮率より小さく圧縮できるときに、前記第1のコマンドに対応する更新が行われた第1のマッピングデータを前記第2の管理サイズに変更し、変更後の前記第1のマッピングデータを圧縮して前記第1テーブルにストアする。前記制御部は、前記第1データを前記第1メモリに書き込む。
以下に図面を参照して、実施の形態にかかるメモリコントローラを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
(実施の形態)
図1は実施形態のメモリシステム100の構成例を示すブロック図である。メモリシステム100は、ホスト装置(以下、ホストと略す)1と接続可能であり、ホスト1の外部記憶装置として機能する。ホスト1は、例えば、パーソナルコンピュータなどの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。
図1は実施形態のメモリシステム100の構成例を示すブロック図である。メモリシステム100は、ホスト装置(以下、ホストと略す)1と接続可能であり、ホスト1の外部記憶装置として機能する。ホスト1は、例えば、パーソナルコンピュータなどの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。
メモリシステム100は、例えば、SSDである。メモリシステム100は、メモリコントローラ2と、不揮発性メモリとしてのNAND型フラッシュメモリ(以下、NANDと略す)10と、揮発性メモリとしてのDRAM5とを備える。不揮発性メモリとしては、NAND型フラッシュメモリに限らず、3次元構造フラッシュメモリ、ReRAM(Resistance Random Access Memory))、FeRAM(Ferroelectric Random Access Memory)などであってもよい。
NAND10は、メモリセルアレイを有する1以上のメモリチップを有する。メモリセルアレイは、マトリクス状に配列された複数のメモリセル(以下、セルという)を有する。メモリセルアレイは、データ消去の単位である物理ブロックを複数個有する。各物理ブロックは、複数の物理セクタによって構成されている。前記メモリセルアレイの構成に特に制約はなく、2次元構造のメモリセルアレイであってもよく、3次元構造のメモリセルアレイであってもよく、さらにはこれら以外であってもよい。同一の物理ブロックに含まれる複数のセルのデータは、一括して消去される。データの読み出し及び書き込みは、物理セクタ単位で行われる。1つの物理ブロックに所属する1つの物理セクタは、1つのワード線に接続された複数のセルを含む。
各セルは多値記憶が可能である。セルをシングルレベルセル(SLC)モードで動作させる場合は、1物理セクタが1ページに対応する。セルをマルチレベルセル(MLC)モードで動作させる場合は、1物理セクタが2ページに対応する。セルをトリプルレベルセル(TLC)モードで動作させる場合は、1物理セクタが3ページに対応する。セルをQuadruple Level Cell(QLC)モードで動作させる場合は、1物理セクタが4ページに対応する。
ホスト1から送信されるユーザデータと、前記ユーザデータを管理するための管理情報などがNAND10にストアされる。起動時あるいはホスト1から受信したリード/ライト要求の実行時などに、NAND10にストアされている前記管理情報の一部あるいは全てが、DRAM5にロード(キャッシュ)される。DRAM5にキャッシュされた前記管理情報は、NAND10でバックアップされる。
DRAM5は、NAND10よりも高速アクセスが可能な揮発性の半導体メモリである。DRAM5の代わりにSRAM(Static Random Access Memory)を用いても良い。前記管理情報は、アドレス変換テーブルとしての論理物理変換テーブル(L2P変換テーブル)6、モード管理情報としてのLBAセグメントモード情報7、ブロック管理情報(図示せず)などを含む。前記L2P変換テーブル6には、ホスト1によって指定される論理アドレスと、NAND10の物理アドレスとの対応関係を示すマッピングデータが登録されている。前記論理アドレスとしては、例えばLBA(Logical Block Addressing)が用いられる。物理アドレスは、データが記憶されているNAND10上の記憶位置を示している。LBAセグメントモード情報7には、各LBAセグメントがラージクラスタモードで管理されているかノーマルクラスタモードで管理されているかを識別するためのクラスタモード情報がストアされている。別言すれば、LBAセグメントモード情報7によって、論理アドレスの管理単位としてLBAセグメントと、前記クラスタモード情報との対応関係が管理されている。LBAセグメントはN個のラージクラスタに対応するサイズを有する。Nは1以上の整数である。クラスタとは、NAND10の論理空間と物理空間とのアドレッシング単位である。
ブロック管理情報は、例えば以下の情報を含む。
・ブロック単位の消去回数(erase count)
・ブロックがアクティブブロックかフリーブロックかを区別する情報
・バッドブロックのブロックアドレス
・ブロック単位の消去回数(erase count)
・ブロックがアクティブブロックかフリーブロックかを区別する情報
・バッドブロックのブロックアドレス
アクティブブロックは、有効(valid)データが記録されている。フリーブロックは、有効データが記録されていない。フリーブロックは、データを消去した後、消去済みブロックとして再利用可能である。有効データとは、論理アドレスと対応付けられているデータであり、無効データとは論理アドレスが対応付けられていないデータである。消去済みブロックは、データが書き込まれると、アクティブブロックとなる。バッドブロックは、様々な要因で正常に動作せず、使用不可となっている。
メモリコントローラ2は、ホスト1からのライト要求に従ってNAND10への書込みを制御する。また、ホスト1からのリード要求に従ってNAND10からの読み出しを制御する。メモリコントローラ2は、Host I/F(ホストインタフェース)20、NAND I/F30、ECC部40、制御部50、圧縮部60、伸張部70を備える。Host I/F(ホストインタフェース)20、NAND I/F30、ECC部40、制御部50、圧縮部60、伸張部70、およびDRAM5は、内部バス75で接続されている。
HostI/F20は、ホスト1との間のインタフェース規格に従った処理を実行し、ホスト1から受信した命令、ユーザデータなどを内部バス75に出力する。また、HostI/F20は、NAND10から読み出されたユーザデータ、制御部50からの応答などをホスト1へ送信する。なお、本実施の形態では、ホスト1からの書込み要求によりNAND10へ書き込まれるデータをユーザデータと呼ぶ。
NAND I/F30は、制御部50の指示に基づいてライトデータをNAND10へ書込む処理を行う。また、NAND I/F30は、制御部50の指示に基づいてNAND10からの読み出し処理を行う。
メモリシステム100は、ホスト1からライト要求およびリード要求を受信する。前記ライト要求は、ライトコマンド、ライトアドレス、ライトデータを含む。前記リード要求は、リードコマンド、リードアドレスを含む。ホストI/F20は、ライト要求を受信した場合、ライトコマンド、ライトアドレス、ライトデータを制御部50に入力する。制御部50は、L2P変換テーブル6を使って論理アドレスであるライトアドレスをNAND10の物理アドレスに変換し、変換された物理アドレスにライトデータをライトする。ホストI/F20は、リード要求を受信した場合、リードコマンド、リードアドレスを制御部50に入力する。制御部50は、L2P変換テーブル6を使って論理アドレスであるリードアドレスをNAND10の物理アドレスに変換し、変換された物理アドレスからデータをリードする。制御部50は、リードされたデータをホストI/F20を介してホスト1へ送信する。
ECC((Error Correction Code)部40は、ライトデータに対して、誤り訂正の符号化処理を実施しパリティを生成する。ECC部40は、前記ライトデータおよび前記パリティを含む符号語をNAND I/F30に入力する。ECC部40で行われる符号化の方式としてはどのような方式を用いてもよい。例えば、RS(Reed Solomon)符号化、BCH(Bose Chaudhuri Hocquenghem)符号化、LDPC(Low Density Parity Check)符号化等を用いることができる。ECC部40は、NAND I/F30から入力されるリードデータに対し、誤り訂正の復号化処理を実行し、復号されたデータをホストI/F20へ入力する。
制御部50は、メモリシステム100の各構成要素を統括的に制御する。制御部50は、DRAM5にロードされたファームウェア(図示せず)を実行する1または複数のCPU(プロセッサ)および周辺回路によってその機能が実現される。制御部50は、ホスト1からホストI/F20経由でコマンドを受けた場合に、そのコマンドに従った制御を行う。例えば、制御部50は、ホストI/F20からライトコマンドを受信した場合、ライトデータを符号化することをECC部40へ指示する。また、制御部50は、ECC部40により生成された符号語(データおよびパリティ)をNAND10への書き込むことをNANDI/F30へ指示する。この書き込みに伴い、DRAM5で管理される、L2P変換テーブル6を含む管理情報を更新する。また、制御部50は、ホストI/F20からリードコマンドを受信した場合、L2P変換テーブル6に基づいてNAND10からの符号語(ユーザデータおよびパリティ)の読出しを、NANDI/F30へ指示する。また、制御部50は、リードされた符号語を復号することをECC部40へ指示する。また、制御部50は、復号されたユーザデータをホスト1へ送信することをホストI/F20に指示する。
圧縮部60は、制御部50にしたがって、L2P変換テーブル6のマッピングデータを可逆圧縮(lossless compression)する。圧縮部60は、前記LBAセグメント単位に、マッピングデータを圧縮する。圧縮対象のLBAセグメントは、ノーマルクラスタモードが適用されるLBAセグメントである。前記圧縮の手法は任意であるが、可逆圧縮可能な手法が採用される。圧縮部60において可逆圧縮が使用されているため、データが圧縮されることを完全に補償できない。
伸張部70は、圧縮部60での圧縮処理と逆方向のデータ変換を行って、圧縮されたL2P変換テーブルを伸張し、元のL2P変換テーブルに復元する。
メモリシステムのストレージの容量に比例して、キャッシュされるL2P変換テーブル6の容量が大きくなる。キャッシュされるL2P変換テーブルを削減する手法の一つがラージクラスタである。クラスタとは、NAND10の論理空間と物理空間とのアドレッシング単位である。すなわち、L2P変換テーブル6は、クラスタ単位にアドレッシングがマッピングされている。クラスタは、例えば、NAND10のページをM個に分割した管理単位である。Mは1以上の整数である。ラージクラスタによってアドレッシング単位を大きくすることで、L2P変換テーブル6のエントリー数を削減し、メモリ量を削減することができる。
例えば、ラージクラスタを使用することによってアドレッシング単位をノーマルクラスタの2倍にすると、L2P変換テーブル6のエントリー数が1/2となり、メモリ量も1/2に削減される。しかし、ラージクラスタを使用すると、アドレッシング単位が大きくなり、NAND10のページ利用効率が低下し、WAF(Write Amplification Factor)が増加してしまい、SSD100の寿命低下、性能低下の原因となる。
そこで、本実施形態では、L2P変換テーブル6の各エントリーを、ラージクラスタモードおよびノーマルクラスタモードを含む2つのクラスタモードによって管理する。以下、ラージクラスタモードをLCモードと略し、ノーマルクラスタモードをNCモードと略す。また、本実施形態では、前記NCモードで管理されるマッピングデータを圧縮し、圧縮されたマッピングデータをL2P変換テーブル6にストアする。NAND10の論理アドレス空間は、LBAセグメント単位に、クラスタモードが管理される。すなわち、LBAセグメントモード情報7には、各LBAセグメントがLCモードで管理されているかNCモードで管理されているかを識別するためのクラスタモード情報がストアされている。このように本実施形態では、ラージクラスタの使用によってL2P変換テーブル量の削減を実現でき、さらにノーマルクラスタの使用および圧縮によってNAND10のページ利用効率の向上を実現する。
図2は、LBAセグメントモード情報7を概念的に示す図である。図2の場合は、論理アドレス空間(LBA空間)は、所定サイズのLBAセグメントによってK個に分割されている。1つのLBAセグメントは、N個のラージクラスタに対応するサイズを有する。あるいは、LBAセグメントのサイズは、L2P変換テーブル6の複数個のエントリーに対応するサイズであるとも言える。LBAセグメントモード情報は、各LBAセグメントがLCモードで管理されているかNCモードで管理されているかを識別するためのクラスタモード情報を含む。図2の例では、LBAセグメント番号#0のクラスタモードは、LCモードである。番号#2のクラスタモードは、NCモードである。メモリシステム100のデフォルト状態においては、全てのLBAセグメント#0〜#K-1がLCモードに設定される。以下の説明では、NAND10の1ページを16KBとし、LCモードでのクラスタサイズを8KBとし、NCモードでのクラスタサイズを4KBとする。LBAのアドレッシング単位は、512Bとする。なお、ラージクラスタおよびノーマルクラスタのサイズを他のサイズとしてもよく、ラージクラスタのサイズを、ノーマルクラスタのサイズの2倍以外としてもよい。
図3は、ライト要求を受信したときのメモリシステム100の動作手順を示すフローチャートである。以下、図3にしたがってメモリシステム100の動作例を説明する。ライトコマンド、ライトLBA、およびライトデータを含むライト要求をホスト1から受信すると(S100)、ホストI/F20は、このライト要求を、制御部50へ入力する。制御部50は、取得したライト要求を、次のように、ラージクラスタサイズ単位(8KB)および/またはノーマルクラスタサイズ単位(4KB)に正規化する。
(a)ライト要求のデータサイズがラージクラスタサイズを超える場合は、受信したライト要求を、1または複数のラージクラスタサイズのライト要求と、1または複数のノーマルクラスタサイズのライト要求に分割する。
(b) ライト要求のデータサイズがノーマルクラスタサイズ未満の場合は、ライトデータはノーマルクラスタサイズのデータと見做して処理される。すなわち、ノーマルクラスタサイズの物理クラスタ上のライトLBAに対応する位置にライトデータがストアされる。
(c) ライト要求のデータサイズがノーマルクラスタサイズより大きく、かつラージクラスタサイズ未満である場合、ライトデータは2つのノーマルクラスタサイズのデータと見做して処理される。
(a)ライト要求のデータサイズがラージクラスタサイズを超える場合は、受信したライト要求を、1または複数のラージクラスタサイズのライト要求と、1または複数のノーマルクラスタサイズのライト要求に分割する。
(b) ライト要求のデータサイズがノーマルクラスタサイズ未満の場合は、ライトデータはノーマルクラスタサイズのデータと見做して処理される。すなわち、ノーマルクラスタサイズの物理クラスタ上のライトLBAに対応する位置にライトデータがストアされる。
(c) ライト要求のデータサイズがノーマルクラスタサイズより大きく、かつラージクラスタサイズ未満である場合、ライトデータは2つのノーマルクラスタサイズのデータと見做して処理される。
制御部50は、前記正規化が終了すると、ライトLBAが属するLBAセグメントのクラスタモード情報をLBAセグメントモード情報7から取得し(S110)、LBAセグメントがLCモードおよびNCモードの何れであるのかを判定する(S120)。
(LBAセグメントがLCモードの場合)
LBAセグメントがLCモードの場合(S120 Yes)、制御部50は、式(1)に従って、ライトLBAを8KB単位のLCA論理クラスタアドレスLCAに変換する(S130)。「>>」は右シフトのビット演算子である。式(1)は、LBAを4ビット右シフトすること(LBAを16で除算すること)を示している。
LCA=LBA>>4 …式(1)
LBAセグメントがLCモードの場合(S120 Yes)、制御部50は、式(1)に従って、ライトLBAを8KB単位のLCA論理クラスタアドレスLCAに変換する(S130)。「>>」は右シフトのビット演算子である。式(1)は、LBAを4ビット右シフトすること(LBAを16で除算すること)を示している。
LCA=LBA>>4 …式(1)
L2P変換テーブル6は、NAND10の論理クラスタアドレスLCAと物理クラスタアドレスPCAとの対応をマッピングしている。LBAはLCAへ変換され、さらにPCAに変換される。つぎに、制御部50は、ライト要求が8KBか4KBのどちらであるかを判定する(S140)。
ライト要求が8KBである場合(S140 Yes)、制御部50は、ライトデータの書き込み先の物理クラスタアドレスPCAを決定し、ライトデータを符号化することをECC部40へ指示する。また、制御部50は、ECC部40により生成された符号語(データおよびパリティ)を、前記決定された物理クラスタアドレスPCAへ書き込むことをNANDI/F30へ指示する。これにより、ライトデータはパリティを付加された後、NAND10上の消去済みフリーブロック内の或るページである前記物理クラスタアドレスPCAに書き込まれる(S150)。制御部50は、式(1)で変換された論理クラスタアドレスLCAと、書き込み先の物理クラスタアドレスPCAによってL2P変換テーブル6を更新する(S160)。
ライト要求が4KBである場合(S140 No)、制御部50は、ライト要求の対象であるLBAセグメントに対して、LCモードからNCモードへの遷移条件が成立するか否かを判定する(S170)。この遷移条件としては、例えばLBAセグメント中の有効データ率を採用する。有効データ率は、LBAセグメント内の有効データの割合である。この有効データ率が所定の閾値より少ないときに、前記遷移条件が成立すると判定される。
前記遷移条件が成立しない場合(S170 No)、制御部50は、LCモードを継続する。すなわち、制御部50は、ライトデータの書き込み先の物理クラスタアドレスPCAを決定し、ライトデータを符号化することをECC部40へ指示する。また、制御部50は、ECC部40により生成された符号語を、前記決定された物理クラスタアドレスPCAへ書き込むことをNANDI/F30へ指示する。これにより、ライトデータはパリティを付加された後、NAND10上の消去済みフリーブロック内の或るページである前記物理クラスタアドレスPCAに書き込まれる(S150)。制御部50は、式(1)で変換された論理クラスタアドレスLCAと、書き込み先の物理クラスタアドレスPCAによってL2P変換テーブル6を更新する(S160)。
なお、クラスタサイズが8KBの場合における4KBデータの書き込み位置は、例えば以下の式(2)に従うものとする。書き込み位置=0の場合は、書き込み位置は8KBクラスタの前半領域とし、書き込み位置=1の場合は、書き込み位置は8KBクラスタの後半領域とする。「&」はAND演算子である。式(2)は、LBAを3ビット右シフトし、その下位1ビットを取ることを示している。
書き込み位置= (LBA>>3)&1 …式(2)
書き込み位置= (LBA>>3)&1 …式(2)
前記遷移条件が成立する場合(S170 Yes)、制御部50は、L2P変換テーブル6から当該LBAセグメントについてのL2P変換データ(マッピングデータ)を取得する(S180)。制御部50は、ライトデータの書き込み先の物理クラスタアドレスPCAを決定し、式(1)で変換された論理クラスタアドレスLCAと、決定された物理クラスタアドレスPCAによって、取得されたL2P変換データを変更することで、今回のライト要求をL2P変換データに反映する。制御部50は、ライト要求が反映されたL2P変換データに対しクラスタサイズ変換処理を実行する。なお、今回のライト要求が反映される前のL2P変換データに対しクラスタサイズ変換処理を実行してもよい。このクラスタサイズ変換処理は、例えば図4に示すように、8KB単位となっている論理クラスタアドレスLCAを、4KB単位の2つのLCA0およびLCA1に変換することを含む。図4において、「0x」は16進表記であることを示している。LCAの変換に関しては、8KB単位のLCAに2を乗じ、0と1を足すことで2つの4KB単位のLCAを得る。物理クラスタアドレスPCAについても、図5に示すように、8KB単位から4KB単位への変換を実行する。変換方法は、LCAの変換方法と同じである。このようにして、LCAおよびPCAを8KB単位から4KB単位へ変換することによって、当該LBAセグメントについての4KB単位のL2P変換データを作成する(S190)。
つぎに、制御部50は、得られた4KB単位のL2P変換データを圧縮することを圧縮部60に指示する。圧縮部60は圧縮処理を実行後(S200)、圧縮率を制御部50に通知する。制御部50は、圧縮率を閾値Cdと比較する。閾値Cdは、例えば50%である。閾値Cdとして、他の任意の値を採用しても良い。圧縮率が閾値Cd以上である場合(S210 No)、制御部50は、当該LBAセグメントについては、LCモードを継続すると判定する(S220)。この後、制御部50は、ステップS150,S160を実行し、パリティを付加されたライトデータをNAND10に書き込み、L2P変換テーブル6を更新する。
圧縮率が閾値Cd未満である場合(S210 Yes)、制御部50は、当該LBAセグメントについては、クラスタモードをLCモードからNCモードに変更すると決定する(S230)。制御部50は、ライトデータを符号化することをECC部40へ指示する。また、制御部50は、ECC部40により生成された符号語を、前記決定された物理クラスタアドレスPCAへ書き込むことをNANDI/F30へ指示する。これにより、ライトデータはパリティを付加された後、NAND10上の消去済みフリーブロック内の或るページである前記物理クラスタアドレスPCAに書き込まれる(S240)。制御部50は、圧縮かつモード変更が行われたL2P変換データによって、L2P変換テーブル6を更新する(S250)。さらに、制御部50は、LBAセグメントモード情報7を更新し、当該LBAセグメントのクラスタモード情報をLCモードからNCモードに変更する(S260)。
なお、LCモードからNCモードへの遷移の際、LCモード時に利用効率の悪いラージクラスタにストアされたデータを集めて、アドレスが連続するノーマルクラスタに配置することによって、利用効率の改善に努めてもよい。この際にも、変更後のL2P変換データを圧縮したデータサイズが前記閾値Cd未満である場合のみ変更を適用する。
図6は、LCモードで管理される或るLBAセグメントに対応した各データの、NAND10上での配置例を示すものである。1ページ(=16KB)は、8KBである2つのラージクラスタを含む。8KBデータDaはLCサイズと一致しているためクラスタの利用率は100%であるが、4KBデータDb,DcはLCサイズよりも小さいため、クラスタの利用率は50%に低下する可能性がある。図4の例では、データDb,Dcについては、式(2)より求まるクラスタ上の位置が等しかった場合を想定している。この場合、データDbとデータDcは同一のクラスタにストアできず、NAND10のページの利用効率が低下している。
(LBAセグメントがNCモードの場合)
LBAセグメントがNCモードの場合(S120 No)、制御部50は、式(3)に従って、ライトLBAを4KB単位のLCA論理クラスタアドレスLCAに変換する(S300)。式(3)は、LBAを3ビット右シフトすること(LBAを8で除算すること)を示している。
LCA=LBA>>3 …式(3)
LBAセグメントがNCモードの場合(S120 No)、制御部50は、式(3)に従って、ライトLBAを4KB単位のLCA論理クラスタアドレスLCAに変換する(S300)。式(3)は、LBAを3ビット右シフトすること(LBAを8で除算すること)を示している。
LCA=LBA>>3 …式(3)
ライトLBAが属するLBAセグメントはLCA単位が4KBとなっており、且つ当該LBAセグメントに対応するL2P変換データがL2P変換テーブル6において圧縮されている。制御部50は、当該LBAセグメントに対応する、読み出したL2P変換データを伸張部70を用いて伸張する(S310)。
図7は、NCモードで管理される或るLBAセグメントに対応した各データの、NAND10上での配置例を示すものである。1ページ(=16KB)は、4KBである4つのノーマルクラスタを含む。NCモードの場合には、4KBデータの場合にもクラスタ利用率は100%であり、NANDページの利用効率が向上している。図7の場合、8KBデータDaは、2つのクラスタに配置され、4KBデータDb,Dcは、それぞれ1つのクラスタに配置されている。NCモードの場合、書き込みデータサイズに関係ないLCAが4KB単位となっているので、LCモードと比較するとL2P変換テーブル6のエントリー数は2倍となる。そのため、圧縮部60を使用してLBAセグメントに対応するL2P変換データを圧縮したサイズが閾値Cdを下回るときにのみ、このNCモードで動作することを許容している。よって、NCモードのL2P変換データは、LCモードと同一以下のデータ量とすることができ、かつLCAのアドレッシング単位を1/2に小さくすることができる。
L2P変換データが伸張されると(S310)、制御部50は、式(3)で変換された論理クラスタアドレスLCAと、ライトデータの書き込み先に決定された物理クラスタアドレスPCAによって伸長済みL2P変換データを変更して、今回のライト要求をL2P変換データに反映する(S320)。
つぎに、制御部50は、L2P変換データを圧縮することを圧縮部60に指示する。圧縮部60は圧縮処理を実行後(S330)、圧縮率を制御部50に通知する。制御部50は、圧縮率を閾値Cdと比較する。圧縮率が閾値Cd未満である場合(S340 Yes)、制御部50は、当該LBAセグメントについては、NCモードを継続すると判定する。この後、制御部50は、ライトデータを符号化することをECC部40へ指示する。また、制御部50は、ECC部40により生成された符号語を、前記決定された物理クラスタアドレスPCAへ書き込むことをNANDI/F30へ指示する。これにより、ライトデータはパリティを付加された後、NAND10上の消去済みフリーブロック内の或るページである前記物理クラスタアドレスPCAに書き込まれる(S350)。制御部50は、圧縮されたL2P変換データによって、L2P変換テーブル6を更新する(S360)。
圧縮率が閾値Cd以上である場合(S340 No)、制御部50は、当該LBAセグメントについては、クラスタモードをNCモードからLCモードに遷移すると判定する。制御部50は、今回のライト要求が反映された、伸張済みのL2P変換データをLCモード対応に変更した後、変更後のL2P変換データによってL2P変換テーブル6を更新する(S370)。さらに、制御部50はLBAセグメントモード情報7を更新し、当該LBAセグメントのクラスタモード情報をLCモードに変更する(S380)。また、制御部50は、ECC部40およびNANDI/F30を制御し、パリティが付加されたライトデータを、NAND10上の消去済みフリーブロック内の或るページである前記物理クラスタアドレスPCAに書き込む(S390)。なお、NAND10へのデータ書き込み後、L2P変換テーブル6およびLBAセグメントモード情報7の更新を行ってもよい。
S370で行われる、NCモードからLCモードへの変更は次のように行われる。4KB単位となっている論理クラスタアドレスLCAを、図8に示すように、8KB単位のLCAおよびクラスタ上の位置へ変換する。クラスタ上の位置=0の場合は、クラスタ上の位置は8KBクラスタの前半領域とし、クラスタ上の位置=1の場合は、クラスタ上の位置は8KBクラスタの後半領域とする。LCAの変換は4KB単位のLCAを2で割ることによって行われる。クラスタ上の位置は、4KB単位LCAの最下位ビットを使用する。物理クラスタアドレスPCAについても、図90に示すように、4KB単位から8KB単位への変換を実行する。変換方法は、LCAの変換方法と同じである。
次に、8KB単位に変換されたPCAが等しく且つ8KBクラスタ上の位置が等しい、4KB単位LCAのペアを探索する。この条件に合致するLCAペアは、4KB単位から8KB単位のアドレッシングへ変更された場合に、同一クラスタへ格納することができない。このため、前記ペアの少なくとも片方について、書き込み先を変更する。この変更は、NAND I/F30を通じてNAND10上のデータを実際に移動することによって行う。
図10は、リード要求を受信したときのメモリシステム100の動作手順を示すフローチャートである。以下、図10にしたがってメモリシステム100の動作例を説明する。リードコマンドおよびリードLBAを含むリード要求をホスト1から受信すると(S500)、ホストI/F20は、このリード要求を制御部50に入力する。
制御部50は、リード要求を受信すると、つぎのような処理を実行する。
(a)ノーマルクラスタサイズ(4KB)未満のリード要求を受信した場合は、4KBのリード要求と見做して、4KBのリード要求が行われた場合と同様にリード処理が行われる。リードデータが得られた後、リード要求で指定されたリードLBSに対応するサイズのリードデータが抽出され、抽出されたリードデータのみがホスト1に返信される。
(b)ノーマルクラスタサイズより大きく、ラージクラスタサイズ(8KB)より小さいリード要求を受信した場合は、リードLBAが属する4KBのリード要求が2つ行われたと見做して処理が行われる。4KBのリードデータが2個得られた後、リード要求で指定されたリードLBSに対応するサイズのリードデータが抽出され、抽出されたリードデータのみがホスト1に返信される。
(c)ラージクラスタサイズを超えるリード要求を受信した場合は、受信したリード要求を、1または複数のラージクラスタサイズのリード要求と、1または複数のノーマルクラスタサイズのリード要求に分割する。
(a)ノーマルクラスタサイズ(4KB)未満のリード要求を受信した場合は、4KBのリード要求と見做して、4KBのリード要求が行われた場合と同様にリード処理が行われる。リードデータが得られた後、リード要求で指定されたリードLBSに対応するサイズのリードデータが抽出され、抽出されたリードデータのみがホスト1に返信される。
(b)ノーマルクラスタサイズより大きく、ラージクラスタサイズ(8KB)より小さいリード要求を受信した場合は、リードLBAが属する4KBのリード要求が2つ行われたと見做して処理が行われる。4KBのリードデータが2個得られた後、リード要求で指定されたリードLBSに対応するサイズのリードデータが抽出され、抽出されたリードデータのみがホスト1に返信される。
(c)ラージクラスタサイズを超えるリード要求を受信した場合は、受信したリード要求を、1または複数のラージクラスタサイズのリード要求と、1または複数のノーマルクラスタサイズのリード要求に分割する。
制御部50は、LBAセグメントモード情報7に基づき、リードLBAが属するLBAセグメントのクラスタモードを取得し(S510)、リードLBAが属するLBAセグメントがLCモードおよびNCモードの何れであるのかを判定する(S520)。
(LBAセグメントがLCモードの場合)
LBAセグメントがLCモードの場合(S520 Yes)、制御部50は、前記式(1)に従って、ライトLBAを8KB単位の論理クラスタアドレスLCAに変換する(S530)。制御部50は、得られたLCAを使用してL2P変換テーブル6より読み出し先の物理クラスタアドレスPCAを取得する(S540)。制御部50は、物理クラスタアドレスPCAからデータを読み出すことをNANDI/F30へ指示する。NANDI/F30は、NAND10からデータをリードし(S550)、リードされたデータをECC部40に入力する。ECC部40はリードデータに対し誤り訂正の復号化処理を行う。制御部50は、復号化されたデータに対し、前述したデータ抽出処理を適宜行った後、リードデータをホストI/F20を介してホスト1へ送信する(S560)。
LBAセグメントがLCモードの場合(S520 Yes)、制御部50は、前記式(1)に従って、ライトLBAを8KB単位の論理クラスタアドレスLCAに変換する(S530)。制御部50は、得られたLCAを使用してL2P変換テーブル6より読み出し先の物理クラスタアドレスPCAを取得する(S540)。制御部50は、物理クラスタアドレスPCAからデータを読み出すことをNANDI/F30へ指示する。NANDI/F30は、NAND10からデータをリードし(S550)、リードされたデータをECC部40に入力する。ECC部40はリードデータに対し誤り訂正の復号化処理を行う。制御部50は、復号化されたデータに対し、前述したデータ抽出処理を適宜行った後、リードデータをホストI/F20を介してホスト1へ送信する(S560)。
(LBAセグメントがNCモードの場合)
LBAセグメントがNCモードの場合(S520 No)、制御部50は、前記式(3)に従って、ライトLBAを4KB単位の論理クラスタアドレスLCAに変換する(S570)。制御部50は、論理クラスタアドレスLCAが所属するLBAセグメントに対応する、圧縮されたL2P変換データをL2P変換テーブル6から読み出し、読み出されたL2P変換データを伸長器70を用いて伸長する(S580)。制御部50は、前記式(3)で得られたLCAおよび伸張されたL2P変換データを使用して、読み出し先の物理クラスタアドレスPCAを取得する(S590)。制御部50は、物理クラスタアドレスPCAからデータを読み出すことをNANDI/F30へ指示する。NANDI/F30は、NAND10からデータをリードし(S550)、リードされたデータをECC部40に入力する。ECC部40はリードデータに対し誤り訂正の復号化処理を行う。制御部50は、復号化されたデータに対し、前述したデータ抽出処理を適宜行った後、リードデータをホストI/F20を介してホスト1へ送信する(S560)。
LBAセグメントがNCモードの場合(S520 No)、制御部50は、前記式(3)に従って、ライトLBAを4KB単位の論理クラスタアドレスLCAに変換する(S570)。制御部50は、論理クラスタアドレスLCAが所属するLBAセグメントに対応する、圧縮されたL2P変換データをL2P変換テーブル6から読み出し、読み出されたL2P変換データを伸長器70を用いて伸長する(S580)。制御部50は、前記式(3)で得られたLCAおよび伸張されたL2P変換データを使用して、読み出し先の物理クラスタアドレスPCAを取得する(S590)。制御部50は、物理クラスタアドレスPCAからデータを読み出すことをNANDI/F30へ指示する。NANDI/F30は、NAND10からデータをリードし(S550)、リードされたデータをECC部40に入力する。ECC部40はリードデータに対し誤り訂正の復号化処理を行う。制御部50は、復号化されたデータに対し、前述したデータ抽出処理を適宜行った後、リードデータをホストI/F20を介してホスト1へ送信する(S560)。
以上説明したようにこの実施形態では、ラージクラスタの使用によってL2P変換テーブル量の削減を実現でき、さらにノーマルクラスタの使用および圧縮によってNAND10のページ利用効率を向上することが可能となり、メモリシステムの長寿命化および性能向上が可能となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 ホスト装置、2 メモリコントローラ、6 L2P変換テーブル、7 LBAセグメントモード情報、20 ホストインタフェース、30 NANDインタフェース、40 ECC部、50 制御部、60 圧縮部、70 伸張部、100 メモリシステム。
Claims (6)
- 不揮発性の第1メモリおよび前記第1メモリより高速アクセスが可能な第2のメモリを制御するメモリコントローラにおいて、
前記第2のメモリは、ホストによって指定される論理アドレスと前記第1メモリの物理アドレスとの対応関係を示すマッピングデータが含まれる第1テーブルをストアし、前記マッピングデータは、第1の管理単位毎に、第1モードおよび第2モードの何れか一方で管理され、前記第1モードでは、前記マッピングデータが第1の管理サイズで管理され、前記第2モードでは、前記マッピングデータが第2の管理サイズで管理されかつ圧縮され、前記第1の管理サイズは前記第2の管理サイズより大きい、前記第1の管理単位は前記第1の管理サイズ以上である、
第1のコマンドおよび第1データを前記ホストから受信したとき、前記第1のコマンドによって指定される前記論理アドレスである第1のアドレスに対応する前記第1の管理単位の第1のマッピングデータが、前記第1テーブルにおいて前記第1モードおよび前記第2モードのどちらで管理されているかを判定し、
前記第1のマッピングデータが前記第1のモードで管理されている場合であって、前記第1のマッピングデータを第1の圧縮率より小さく圧縮できるときに、前記第1のコマンドに対応する更新が行われた第1のマッピングデータを前記第2の管理サイズに変更し、変更後の前記第1のマッピングデータを圧縮して前記第1テーブルにストアし、
前記第1データを前記第1メモリに書き込む
ように構成される制御部を備えるメモリコントローラ。 - 前記制御部は、
前記第1のマッピングデータが第2モードで管理される場合は、前記第1テーブルにおいて圧縮されている前記第1のマッピングデータを伸張し、前記伸張された第1のマッピングデータを前記第1の圧縮率より小さく圧縮できないときに、前記第1のコマンドに対応する更新が行われた前記第1のマッピングデータを前記第1の管理サイズに変更し、前記変更後の第1のマッピングデータを前記第1テーブルにストアする
ように構成される請求項1に記載のメモリコントローラ。 - 前記第2のメモリは、前記第1の管理単位と、前記第1モードおよび前記第2モードのどちらであるかを示すモード情報との対応を示すモード管理情報をストアし、
前記制御部は、
前記モード管理情報に基づいて、前記第1のマッピングデータが、前記第1テーブルにおいて前記第1モードおよび前記第2モードのどちらで管理されているかを判定する
請求項2に記載のメモリコントローラ。 - 前記制御部は、
前記第1のマッピングデータが前記第1のモードで管理されている場合であって、前記第1のマッピングデータが第1の圧縮率より小さく圧縮できないときは、前記第1の管理サイズで管理されている第1のマッピングデータを前記第1のコマンドに対応して更新し、前記更新後の第1のマッピングデータを前記第1テーブルにストアし、
前記第1のマッピングデータが第2モードで管理される場合であって、前記伸張された第1のマッピングデータが前記第1の圧縮率より小さく圧縮できるときは、前記第2の管理サイズで管理される第1のマッピングデータを前記第1のコマンドに対応して更新し、前記更新後の第1のマッピングデータを前記第1テーブルにストアする
ように構成される請求項3に記載のメモリコントローラ。 - 前記制御部は、
前記第1のマッピングデータが前記第1のモードで管理されている場合に、前記第1のマッピングデータの有効データ率に関する第1の条件が成立しているか否かを判定し、
前記条件が成立しているときに、前記第1のマッピングデータを前記第1の圧縮率より小さく圧縮できるか否かを判定する
ように構成される請求項1に記載のメモリコントローラ。 - 前記制御部は、
前記第1のマッピングデータが前記第1のモードで管理されている場合であって、前記第1データを前記第2の管理サイズで前記第1のメモリに書き込むときに、前記第1の条件が成立しているか否かを判定する
請求項5に記載のメモリコントローラ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017056500A JP2018160059A (ja) | 2017-03-22 | 2017-03-22 | メモリコントローラ |
US15/693,275 US10853234B2 (en) | 2017-03-22 | 2017-08-31 | Memory controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017056500A JP2018160059A (ja) | 2017-03-22 | 2017-03-22 | メモリコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018160059A true JP2018160059A (ja) | 2018-10-11 |
Family
ID=63582695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017056500A Pending JP2018160059A (ja) | 2017-03-22 | 2017-03-22 | メモリコントローラ |
Country Status (2)
Country | Link |
---|---|
US (1) | US10853234B2 (ja) |
JP (1) | JP2018160059A (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7030463B2 (ja) | 2017-09-22 | 2022-03-07 | キオクシア株式会社 | メモリシステム |
KR102526526B1 (ko) * | 2018-06-14 | 2023-04-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US10713163B2 (en) | 2018-09-11 | 2020-07-14 | Toshiba Memory Corporation | Set aware system data and mapping tables |
US10909030B2 (en) * | 2018-09-11 | 2021-02-02 | Toshiba Memory Corporation | Enhanced trim command support for solid state drives |
KR20200043676A (ko) * | 2018-10-18 | 2020-04-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
TWI693517B (zh) * | 2018-11-16 | 2020-05-11 | 慧榮科技股份有限公司 | 用來進行儲存空間管理之方法以及資料儲存裝置及其控制器 |
US10871907B2 (en) * | 2018-12-31 | 2020-12-22 | Micron Technology, Inc. | Sequential data optimized sub-regions in storage devices |
CN111610931B (zh) * | 2019-02-26 | 2023-05-02 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
JP2020149195A (ja) | 2019-03-12 | 2020-09-17 | キオクシア株式会社 | メモリシステム |
JP2020154525A (ja) | 2019-03-19 | 2020-09-24 | キオクシア株式会社 | メモリシステムおよび情報処理システム |
KR20210121527A (ko) * | 2020-03-30 | 2021-10-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI739676B (zh) * | 2020-11-25 | 2021-09-11 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN112486417B (zh) * | 2020-12-03 | 2023-07-04 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
US12001678B2 (en) * | 2022-08-25 | 2024-06-04 | Micron Technology, Inc. | Address translation metadata compression in memory devices |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2831602B2 (ja) * | 1995-01-13 | 1998-12-02 | 富士通株式会社 | 圧縮データ管理装置及び圧縮データ管理方法 |
US6624761B2 (en) * | 1998-12-11 | 2003-09-23 | Realtime Data, Llc | Content independent data compression method and system |
JP2005301885A (ja) | 2004-04-15 | 2005-10-27 | Kobe Steel Ltd | データ記憶媒体へのアクセス方法,情報処理装置,データ記憶媒体へのアクセスプログラム |
JP4188873B2 (ja) | 2004-04-23 | 2008-12-03 | 日本電信電話株式会社 | 無線パケット通信方法および無線パケット通信装置 |
US7702875B1 (en) * | 2004-11-18 | 2010-04-20 | Sun Microsystems, Inc. | System and method for memory compression |
US8706950B2 (en) * | 2008-03-01 | 2014-04-22 | Kabushiki Kaisha Toshiba | Memory system |
US9582431B2 (en) | 2010-03-22 | 2017-02-28 | Seagate Technology Llc | Storage address space to NVM address, span, and length mapping/converting |
US8527544B1 (en) * | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
JP5687639B2 (ja) | 2012-02-08 | 2015-03-18 | 株式会社東芝 | コントローラ、データ記憶装置及びプログラム |
US9195594B2 (en) | 2013-01-22 | 2015-11-24 | Seagate Technology Llc | Locating data in non-volatile memory |
US9229876B2 (en) * | 2013-12-17 | 2016-01-05 | Sandisk Technologies Inc. | Method and system for dynamic compression of address tables in a memory |
US9846552B2 (en) * | 2014-11-13 | 2017-12-19 | Toshiba Memory Corporation | Memory device and storage system having the same |
US9946462B1 (en) * | 2016-02-15 | 2018-04-17 | Seagate Technology Llc | Address mapping table compression |
-
2017
- 2017-03-22 JP JP2017056500A patent/JP2018160059A/ja active Pending
- 2017-08-31 US US15/693,275 patent/US10853234B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10853234B2 (en) | 2020-12-01 |
US20180276114A1 (en) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018160059A (ja) | メモリコントローラ | |
US9183140B2 (en) | Higher-level redundancy information computation | |
US20190087115A1 (en) | Method and system for in-line deduplication in a storage drive based on a non-collision hash | |
US9105305B2 (en) | Dynamic higher-level redundancy mode management with independent silicon elements | |
US11336305B2 (en) | Memory system | |
US20180090184A1 (en) | Apparatus and method for controlling memory | |
KR101466585B1 (ko) | 메모리 장치 및 메모리 장치의 관리 방법 | |
US20150349805A1 (en) | Method of Handling Error Correcting Code in Non-volatile Memory and Non-volatile Storage Device Using the Same | |
KR20100062551A (ko) | 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 맵핑정보 복원 방법 | |
CN108027764B (zh) | 可转换的叶的存储器映射 | |
US10990536B2 (en) | Memory controller, operating method of the memory controller, and storage device including the memory controller | |
CN107037979B (zh) | 用于在存储器设备中管理地址映射数据的系统和方法 | |
US11467758B2 (en) | Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device | |
US11614885B2 (en) | Data processing method for improving access performance of memory device and data storage device utilizing the same | |
JP2020149195A (ja) | メモリシステム | |
US11748032B2 (en) | Data processing method for improving access performance of memory device and data storage device utilizing the same | |
US20220004498A1 (en) | Data processing method for improving access performance of memory device and data storage device utilizing the same | |
CN110825316A (zh) | 控制器及该控制器的操作方法 | |
US20220004490A1 (en) | Data processing method for improving access performance of memory device and data storage device utilizing the same | |
CN113590503A (zh) | 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统 | |
US9996415B2 (en) | Data correcting method, memory control circuit unit, and memory storage device | |
KR101501717B1 (ko) | 메모리 장치 및 메모리 장치의 관리 방법 | |
US11636042B2 (en) | Data processing method for improving access performance of memory device and data storage device utilizing the same | |
CN110383698B (zh) | 数据访问方法及闪存设备 | |
JP7362369B2 (ja) | メモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170605 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180905 |