JP2011070365A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2011070365A
JP2011070365A JP2009220349A JP2009220349A JP2011070365A JP 2011070365 A JP2011070365 A JP 2011070365A JP 2009220349 A JP2009220349 A JP 2009220349A JP 2009220349 A JP2009220349 A JP 2009220349A JP 2011070365 A JP2011070365 A JP 2011070365A
Authority
JP
Japan
Prior art keywords
storage unit
storage
control
ram
units
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009220349A
Other languages
English (en)
Inventor
Kosuke Hatsuda
幸輔 初田
Daizaburo Takashima
大三郎 高島
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 JP2009220349A priority Critical patent/JP2011070365A/ja
Priority to EP10818579.4A priority patent/EP2480973A4/en
Priority to KR1020127007121A priority patent/KR20120055707A/ko
Priority to CN2010800417594A priority patent/CN102511038A/zh
Priority to PCT/JP2010/052119 priority patent/WO2011036902A1/en
Priority to TW099108396A priority patent/TW201111987A/zh
Publication of JP2011070365A publication Critical patent/JP2011070365A/ja
Priority to US13/425,548 priority patent/US8819350B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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

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)

Abstract

【課題】サーバー用途などのハイエンドストレージに適用可能とする。
【解決手段】不揮発性の第1の記憶部と、第1の記憶部のバッファメモリとしての第2の記憶部と、第1の記憶部を駆動制御する第1の制御回路と、第2の記憶部を駆動制御する第2の制御回路とを夫々含み、各ストレージグループ内の第1の記憶部と第2の記憶部との間でデータ転送が可能な複数のストレージグループと、ホスト装置に接続されるインタフェースと、インタフェース、各ストレージグループの第1および第2の制御回路とバス接続され、複数のストレージグループの第1および第2の制御回路を制御する複数のMPUとを備え、複数のMPUは、1つのストレージグループについての第2の記憶部を介したホスト装置と第1の記憶部との間のデータ転送に関する第1の制御と、他のストレージグループについての第1の記憶部の保守に関する制御を含む第2の制御を分担して独立に実行する。
【選択図】図1

Description

本発明は、不揮発性半導体メモリを具えるメモリシステムに関する。
今日、半導体メモリは、大型コンピュータの主記憶から、パーソナルコンピュータ、家電製品、携帯電話等、各種分野で利用されている。市場が大きく伸びているものは、NANDフラッシュメモリに代表されるFlash-E2PROM型の不揮発性メモリであり、NANDフラッシュメモリが搭載された各種メモリカード(SDカード、MMCカード、MSカード、CFカード)が画像、動画、音声、ゲーム等の情報を記憶する媒体として、デジタルカメラ、デジタルビデオ、MP3等の音楽機器、モバイルPC等の記憶媒体、デジタルTVなどの記憶媒体に使われている。また、USB対応のカードも広くPCの記憶媒体として使われている。
Flash-E2PROM型の不揮発性メモリは、主にNOR型とNAND型が有る。NOR型は高速リードが可能であるが、ライトの際の実効バンド幅が小さく、ファイル記録に適していない。一方、NAND型は、NOR型に比べて高集積化が可能で、しかもアクセス時間が少し遅いが、バーストリードが可能で、ライトの際の実効バンド幅が高く、上記のようなメモリカード、USBメモリや、最近では携帯電話のメモリ等で用いられている。
このように、NAND型の不揮発性メモリは大容量化・高集積化が可能であるため、ハードディスクの置き換えとして考えられることが多いが、NAND型フラッシュメモリは、書き込みを行う前に消去処理が必要な半導体メモリであり、その寿命は、書き換え回数に依存している。また、消去単位が大きいため画像データや音楽ファイルなど大容量データを扱うことを想定する場合ならよいが、通常のPC使用環境ではそのような大容量データばかりではないため、NANDメモリの疲労を早めてしまう。
そこで、NANDメモリを用いて大容量の二次記憶装置を構成する場合においては、特許文献1に示されるように、フラッシュメモリとホスト装置との間に、RAMなどのキャッシュメモリを介在させて、フラッシュメモリでの書き込み回数(消去回数)を減らすように構成されていることが多い。
このようなNANDメモリを用いた二次記憶装置においては、NANDメモリおよびRAMを駆動する駆動回路と、駆動回路を制御するMPUを備えることが多いが(例えば特許文献2)、従来技術では、1MPUおよび1駆動回路でNANDメモリおよびRAMを制御しているので、サーバー用途などのハイエンドストレージとしては、性能上課題を有する。
特表2007−528079号 特許第3688835号公報
本発明は、サーバー用途などのハイエンドストレージに適用可能なメモリシステムを提供することを目的とする。
本願発明の一態様によれば、データ消去の単位であるブロックを複数個有する不揮発性の第1の記憶部と、第1の記憶部のバッファメモリとしての第2の記憶部と、第1の記憶部を駆動制御する第1の制御回路と、第2の記憶部を駆動制御する第2の制御回路とを夫々含み、各ストレージグループ内の第1の記憶部と第2の記憶部との間でデータ転送が可能な複数のストレージグループと、ホスト装置に接続されるインタフェースと、前記インタフェース、各ストレージグループの第1および第2の制御回路とバス接続され、前記複数のストレージグループの第1および第2の制御回路を制御する複数のMPUとを備え、前記複数のMPUは、1つのストレージグループについての前記第2の記憶部を介したホスト装置と前記第1の記憶部との間のデータ転送に関する第1の制御と、他のストレージグループについての第1の記憶部の保守に関する制御を含む第2の制御を分担して独立に実行することを特徴とする。
本発明によれば、データ転送処理の高速化、レスポンス速度の向上を実現し、サーバー用途などのハイエンドストレージに適用可能なメモリシステムを提供するできる。
図1は、この発明の第1の実施の形態のメモリシステムの構成例を示すブロック図。 図2は、第1の実施の形態のRAMとNANDメモリのデータ転送態様を示す概念図。 図3は、第1の実施の形態の動作例を示すフローチャート。 図4は、第1の実施の形態の動作例を示すフローチャート。 図5は、第1の実施の形態の他の動作例を示すフローチャート。 図6は、この発明の第2の実施の形態のメモリシステムの構成例を示すブロック図。 図7は、第1の実施の形態のRAMとNANDメモリのデータ転送態様を示す概念図。 図8は、この発明の第2の実施の形態のメモリシステムの構成例を示すブロック図。 図9は、第1の実施の形態のRAMとNANDメモリのデータ転送態様を示す概念図。
以下に添付図面を参照して、本発明の実施の形態にかかるメモリシステムを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
(第1の実施の形態)
図1は、第1の実施の形態にかかるメモリシステムとしてのSSD(Solid State Drive)100の構成例を示すブロック図である。SSD100は、ATAインタフェース(ATA I/F)2などのメモリ接続インタフェースを備え、このATAインタフェース2にバス3が接続されている。SSD100は、ATA I/F2を介してパーソナルコンピュータあるいはCPUコアなどのホスト装置(以下、ホストと略す)1と接続され、ホスト1の外部メモリとして機能する。
バス3には、複数のMPU(マイクロプロセッサユニット)10−1、10−2、…と、複数のRAM制御回路25a、25b、…と、複数のNAND制御回路35a、35b、…が接続されている。NAND制御回路35aには、不揮発性半導体メモリとしてのNAND型フラッシュメモリ(以下、NANDメモリと略す)30aが接続され、NAND制御回路35bには、NANDメモリ30aが接続され、NAND制御回路35c、…には、NANDメモリ30c、…がそれぞれ接続されている。RAM制御回路25aには、NANDメモリ30aのバッファメモリとしてのRAM20aが接続され、RAM制御回路25b、には、NANDメモリ30bのバッファメモリとしてのRAM20bが接続され、RAM制御回路25c、…には、RAM20c、…がそれぞれ接続されている。RAM制御回路25aとNAND制御回路35aとは、バス3の他に専用線15aでも接続されている。同様に、RAM制御回路25bとNAND制御回路35bとは専用線15bでも接続され、RAM制御回路25c、…とNAND制御回路35c、…とはそれぞれ専用線15c、…でも接続されている。
以下の説明では、本SSD100は、2個のMPU10−1、10−2と、2個のRAM20a、20bと、2個のNANDメモリ30a、30bと、2個のRAM制御回路25a、25bと、2個のNAND制御回路35a、35bを備えるものとする。
NANDメモリ30a、30bは、ホスト1によって指定されたユーザデータを記憶したり、RAM20a、20bで管理される管理情報をバックアップ用に記憶したりする。NANDメモリ30a、30bは、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有し、個々のメモリセルは上位ページ及び下位ページを使用して多値記憶が可能である。NANDメモリ30a、30bは、夫々複数のメモリチップによって構成され、各メモリチップは、データ消去の単位である物理ブロックを複数配列して構成される。また、NANDメモリ30a、30bでは、物理ページごとにデータの書き込み及びデータの読み出しが行われる。物理ブロックは、複数の物理ページによって構成されている。
RAM20a、20bとしては、DRAMなどの揮発性RAMでもよいし、FeRAMやMRAMなどの不揮発性RAMでもよい。RAM20a、20bは、データ転送用、管理情報記録用の記憶部として使用される。データ転送用の記憶部(データ転送用キャッシュ)としては、ホスト1から書込要求があったデータをNANDメモリに書込む前に一時的に保存したり、ホスト1から読出要求があったデータをNANDメモリから読出して一時的に保存したりするために使用される。また、管理情報記録用の記憶部としては、NANDメモリにバックアップされているデータの格納位置などを管理するための各種管理情報(各種管理テーブル、管理テーブルの変更差分情報であるログなど)を格納するために使用される。
RAM制御回路25aは、MPU10−1、10−2と、RAM20aとのインタフェース処理、RAM20aに対するリード/ライト制御などを実行する。RAM制御回路25bは、MPU10−1、10ー2と、RAM20bとのインタフェース処理、RAM20aに対するリード/ライト制御などを実行する。
NAND制御回路35aは、MPU10−1、10−2と、NANDメモリ30aとのインタフェース処理、NANDメモリ30a−RAM20a間のデータ転送制御、誤り訂正符号のエンコード/デコード処理などを実行する。NAND制御回路35bは、MPU10−1、10ー2と、NANDメモリ30aとのインタフェース処理、NANDメモリ30a−RAM20a間のデータ転送制御、誤り訂正符号のエンコード/デコード処理などを実行する。
RAM20a−NANDメモリ30a間は複数のチャネルで接続され、これら複数のチャネルを用いた並列データ転送が可能である。また、NANDメモリ30aは、複数のバンクに分割され、RAM20a−NANDメモリ30a間はこれら複数のバンクを用いたバンクインターリーブによる並列動作が可能である。同様に、RAM20b−NANDメモリ30b間は複数のチャネルで接続され、これら複数のチャネルを用いた並列データ転送が可能である。同様に、NANDメモリ30bは、複数のバンクに分割され、RAM20b−NANDメモリ30b間はこれら複数のバンクを用いたバンクインターリーブによる並列動作が可能である。ホスト1は、基本的に2つのNANDメモリ30a、30bによって構成される全メモリ空間のうちの管理テーブルなどの管理情報などが記憶される管理領域を除く全ユーザメモリ空間にアクセス可能である。
第1の実施の形態では、RAM20a、NANDメモリ30a、RAM制御回路25a、NAND制御回路35aでストレージグループAを構成し、ストレージグループA内のRAM20a、NANDメモリ30a間でのみデータ転送が可能である。RAM20b、NANDメモリ30b、RAM制御回路25b、NAND制御回路35bでストレージグループBを構成し、ストレージグループB内のRAM20b、NANDメモリ30b間でのみデータ転送が可能である。MPU10−1は、ストレージグループA,Bにアクセス可能であり、MPU10−2も、ストレージグループA,Bにアクセス可能である。
第1の実施の形態では、MPU10−1、10−2が行うべき処理機能は固定的に分担されているものとする。このように各MPU10−1、10−2で処理機能を固定的に分担させれば、各MPU上で動作するファームウェアを簡単、単純化させることが可能になる。MPU10−1は、基本的に、ストレージグループA,Bのうちの一方についてのホスト1から要求されるリード/ライト処理に係わる処理(IF−RAM−NAND間データ転送)を実行する。MPU10−2は、基本的に、ストレージグループA,Bのうちの他方についてのホスト1から要求されるリード/ライト処理以外の処理を実行する。リード/ライト処理以外の処理としては、他方のストレージグループについてのNANDの保守処理(ウェアレベリング処理、レフレッシュ処理、ガーベージコレクション処理などを含む)、RAMからNANDメモリへのフラッシュ処理、NCQ(Native Command Queuing)処理などを含む。
なお、各MPU10−1、10−2に処理機能を固定的に分担させるのではなく、一方のMPUがリード/ライト処理を実行している場合、待機中である他方のMPUが上記したリード/ライト処理以外の処理を実行するようにしてもよく、この場合、一方のMPUがリード/ライト処理以外の処理を実行している場合は、他方のMPUがリード/ライト処理を実行することになる。このように、第1の実施の形態では、図2に示すように、RAM20a、NANDメモリ30aを含むストレージグループAと、RAM20b、NANDメモリ30bを含むストレージグループBとは、異なる処理を独立にかつ並行に実行することが可能となる。
NAND型フラッシュメモリは、書き込みを行う前に消去処理が必要な半導体メモリであり、その寿命は、書き換え回数に依存している。一方、ホスト1が記録するデータは、時間的局所性、及び領域的局所性を兼ね備えている。そのため、データを記録する際にホスト1から指定されたアドレスにそのまま記録していくと、特定の領域に短時間に書き換え、すなわち消去処理が集中し、消去回数の偏りが大きくなる。そのため、NAND型フラッシュメモリでは、データ更新箇所を均等に分散させるウェアレベリングと呼ばれる処理が行われている。ウェアレベリング処理では、特定の消去単位(ブロック)への、書き込み、消去の集中を防ぐために、ブロック間で書き換え回数が均一に分布するようにする。静的ウェアレベリングでは、書き換えが長い間行われず書き換え回数の少ないブロックを書き換え回数の多いブロックと交換する。例えば、一方のMPU10−1がストレージグループAに対しIF−RAM−NAND間データ転送を実行させている際に、これに並行して他方のMPU10−1がストレージグループBに対しウェアレベリング処理を実行させれば、システム全体としてのデータ転送処理速度、レスポンス速度を高速化することができる。
NAND型フラッシュメモリでは、メモリセルトランジスタに記憶されているデータが、時間の経過により反転してしまうことがあり、これを防ぐために、メモリセルのデータを読出し、別のセルに書込む処理がリフレッシュ処理である。例えば、一方のMPU10−1がストレージグループAに対しIF−RAM−NAND間データ転送を実行させている際に、これに並行して他方のMPU10−1がストレージグループBに対しリフレッシュ処理を実行させれば、システム全体としてのデータ転送処理速度、レスポンス速度を高速化することができる。
NANDメモリでは、物理ブロックを複数個組み合わせた論理ブロックという仮想ブロックの概念を導入し、この論理ブロック単位に消去、書き込み、読み出しを行っている。データの消去単位(論理ブロック)と、データの管理単位が異なる場合、NANDメモリの書き換えが進むと、無効なデータによって、論理ブロックは穴あき状態になる。このような穴あき状態の論理ブロックが増えると、実質的に使用可能な論理ブロックが少なくなり、NANDメモリの記憶領域を有効利用できないので、有効データを集めて違う論理ブロックに書き直すコンパクションと呼ばれる処理が行われる。ガーベージコレクション処理としては、このようなコンパクション処理を含む。例えば、一方のMPU10−1がストレージグループAに対しIF−RAM−NAND間データ転送を実行させている際に、これに並行して他方のMPU10−1がストレージグループBに対しガーベージコレクション処理を実行させれば、システム全体としてのデータ転送処理速度、レスポンス速度を高速化することができる。
RAMからNANDメモリへのフラッシュ処理とは、RAMのキャッシュ領域が満杯になる前、あるいは満杯になったときに、キャッシュ領域のデータをNANDメモリに追い出す処理である。例えば、一方のMPU10−1がストレージグループAに対しIF−RAM−NAND間データ転送を実行させている際に、これに並行して他方のMPU10−1がストレージグループBに対しフラッシュ処理を実行させれば、システム全体としてのデータ転送処理速度、レスポンス速度を高速化することができる。
NCQ処理とは、NANDメモリに対するコマンドをキューに格納し、コマンドの順番を変えて実行する処理であり、一方のMPU10−1でリード/ライト処理を実行している場合、他方のMPU10−2がNCQ処理を実行すれば、システム全体としてのデータ転送処理速度、レスポンス速度を高速化することができる。
MPU10−2が管理する管理テーブルには、RAM内のキャッシュ領域を管理するためのテーブル、NANDメモリ中でのデータの格納位置を管理するためのテーブル、空きブロック管理するためのテーブル、使用中ブロックを管理するためのテーブル、誤りが多いなど記憶領域として使用できないブロックを管理するためのテーブル、各ブロックの書き換え回数を管理するためのテーブルなどがある。管理情報としては、これらの管理テーブルの他に、管理テーブルの変更差分情報であるログなどもある。このような管理情報は、RAM20a、20bに格納されている。ストレージグループAに関する管理情報は、ストレージグループAのRAM20aに格納し、ストレージグループBに関する管理情報は、ストレージグループBのRAM20bに格納するようにしてもよいし、ストレージグループAに関する管理情報をストレージグループBのRAM20bに格納し、ストレージグループBに関する管理情報をストレージグループAのRAM20aに格納するようにしてもよい。
ストレージグループAに関する管理情報をストレージグループBのRAM20bに格納し、ストレージグループBに関する管理情報をストレージグループAのRAM20aに格納するようにした場合、一方のMPU10−1がストレージグループAに対しIF−RAM−NAND間データ転送を実行させている際に、これに並行して他方のMPU10−1が、ストレージグループAで行っているIF−RAM−NAND間データ転送に関する管理情報の更新をストレージグループBのRAM20bに対して行うことができる。これにより、システム全体としてのデータ転送処理速度、レスポンス速度を高速化することができる。
つぎに、MPU10−1で行われるライト処理(IF→RAM→NAND間データ転送)の際のストレージグループA,Bの選択について説明する。選択の手法としては、
(a)RAMの空き容量に基づく切り替え
(b)NANDメモリの疲労度(書き換え回数の大小)に基づく切り替え
(c)RAMのキャッシュ領域にページ単位より小さいデータが有るか否かに基づく 切り替え
(d)ホストから指定される論理アドレス(LBA)の局所性(頻繁にデータ更新さ れるアドレスであるか否か)を考慮した切り替え
などがある。
(a)の切り替えについて説明する、ホスト1からライト要求を受信した場合、MPU10−1は、RAM20a、20bの各キャッシュ領域の空き容量を確認し、より空き容量の多い一方のRAMにホスト1からのデータをライトする。例えば、RAM20aが有効データで満杯の場合は、他方のRAM20bにホスト1からのデータをライトする。この切り替え処理によれば、RAMからNANDメモリへの無駄なフラッシュ処理が低減し、ホスト1からライト要求に高速応答できる確率が向上する。
(b)の切り替えについて説明する。ホスト1からライト要求を受信した場合、MPU10−1は、このライト要求は書き込みサイズが大きいか小さいかを判断し、さらにNANDメモリ30a、30bの書き換え回数の平均を求め、どちらのNANDメモリ30a、30bが疲労度が高いかを判断する。そして、MPU10−1は、疲労度が高い方のNANDメモリと同じストレージグループのRAMに対して書き込みサイズが大きいデータをライトさせ、疲労度が低い方のNANDメモリと同じストレージグループのRAMに対して書き込みサイズが小さいデータをライトさせる。書き込みサイズの小さいデータが書き込まれたNANDメモリでは、ガーベージコレクションが増え、結果的にブロックの書き換え回数が増加してしまうので、疲労度の高いNANDメモリには、書き込みサイズの大きなデータを書き込むようにすることで、NANDメモリの寿命を延ばし、信頼性を向上させる。
(c)の切り替えについて説明する。ホスト1からライト要求を受信した場合、MPU10−1は、一方のRAM20aにNANDメモリの書き込み単位(ページ)より小さい中途半端なサイズのデータがあったときには、NANDメモリの書き込み単位(ページ)より大きなデータを作成するために、このRAM20aにホスト1からのデータをライトさせる。これにより、RAMに大きなデータが貯まった後、フラッシュが行われ、書き込み効率が向上し、高速化および信頼性が向上する。なお、書き込み効率とは、所定期間内におけるホストから書き込んだデータ量に対する論理ブロックの消去量の統計値のことである。
(d)の切り替えについて説明する。ホスト1からライト要求を受信した場合、MPU10−1は、このライト要求は頻繁に更新(使用される)論理アドレス(LBA)に関するライト要求であるか否かを判定し、頻繁に使用されるアドレスである場合は、一方のRAMにデータをライトさせ、頻繁に使用されるアドレスでない場合は、他方のRAMにデータをライトさせる。これにより、RAMの用途が明確になり、管理テーブルの最適化(最小化)やフラッシュ処理の最適化が可能である。
つぎに、一方のストレージグループでライト処理を実行し、これに並行して他方のストレージグループでウェアレベリング処理を実行する場合の処理について図3に示すフローチャートを参照して説明する。ホスト1からライト要求を受信した場合(ステップS100)、MPU10−1は、上記した(a)〜(d)の判断を行って、どちらのRAMにホスト1からのデータを書き込むかを判断する(ステップS110)。ここでは、RAM20aにデータを書き込むと判断したとする。
つぎに、MPU10−1は、選択したRAM20aが満杯であるか否かを判断する(ステップS120)。選択したRAM20aが満杯であると判断された場合、RAM20aからNANDメモリ30aへのフラッシュ動作が実行される(ステップS130)。フラッシュ処理が実行された場合、フラッシュ処理の終了はNAND制御回路35aからバス3に通知される。選択したRAM20aが満杯でないことを検出した場合、またはフラッシュ終了の通知を検出した場合、MPU10−1では、バス3を介してホスト1に対しライトデータの転送指示を通知する(ステップS150)。
この転送指示通知によってホスト1からRAM20aに対するデータ転送が開始される(ステップS160)。MPU10−1では、I/F2からRAM20aへのデータ転送終了をRAM制御回路25aから受信すると(ステップS170)、バス3を介してホスト1へ完了通知を送信する(ステップS180)。これ以降、MPU10−1では、ホスト1からの要求があるまで、待機している。
一方、MPU10−2がMPU10−1からホストへの転送指示通知をバス3を介して検出すると、これをトリガとして、MPU10−2では、NANDメモリ30bから静的ウェアレベリングを実行する必要があるブロックを選択する(ステップS200)。そして、MPU10−2では、NANDメモリ30bに対し、書き換え回数の少ないブロックを書き換え回数の多いブロックに交換する静的ウェアレベリング処理を実行する(ステップS210)。このようにして、ライト処理とウェアレベリング処理が並行して実行される。特に、RAM20aでステップS130で行うフラッシュ処理を行う必要がない場合は、NANDメモリ30bでのウェアレベリングを早めに開始することができ、ライト処理とウェアレベリング処理を効率よく並列化することができる。
なお、上述では、転送指示通知(ステップS150)を検出後、静的ウェアレベリング処理を実行しているが、図4に示すように、MPU10−1のフラッシュ処理(ステップS130)が実行されたことをMPU10−2が検出すると、これをトリガとして、MPU10−2では、NANDメモリ30bから静的ウェアレベリングを実行する必要があるブロックを選択するようにしてもよい(ステップS200)。そして、MPU10−2では、NANDメモリ30bに対し、書き換え回数の少ないブロックを書き換え回数の多いブロックに交換する静的ウェアレベリング処理を実行する(ステップS210)。このようにして、ライト処理とウェアレベリング処理が並行して実行される。このような制御によれば、ライト処理とウェアレベリング処理を効率よく並列化することができる。
つぎに、ライト処理とテーブル更新処理を並行して行う場合の動作例について、図5に示すフローチャートを参照して説明する。この動作例では、ストレージグループAに関する管理情報をストレージグループBのRAM20bに格納し、ストレージグループBに関する管理情報をストレージグループAのRAM20aに格納することを前提としている。
ホスト1からライト要求を受信した場合(ステップS300)、MPU10−1は、上記した(a)〜(d)の判断を行って、どちらのRAMにホスト1からのデータを書き込むかを判断する(ステップS310)。ここでは、RAM20aにデータを書き込むと判断したとする。
つぎに、MPU10−1は、選択したRAM20aが満杯であるか否かを判断する(ステップS320)。選択したRAM20aが満杯であると判断された場合、RAM20aからNANDメモリ30aへのフラッシュ動作が実行される(ステップS330)。フラッシュ処理が実行された場合、フラッシュ処理の終了はNAND制御回路35aからバス3に通知される。選択したRAM20aが満杯でないことを検出した場合、またはフラッシュ終了の通知を検出した場合、MPU10−1では、バス3を介してホスト1に対しライトデータの転送指示を通知する(ステップS350)。
ここでは、ステップS330でフラッシュ処理が行われたとする。MPU10−2は、MPU10−1からホストへの転送指示通知をバス3を介して検出すると、これをトリガとして、MPU10−2では、ステップS330で行われたRAM20aからNANDメモリ30aへのフラッシュ処理に起因する管理情報の更新をストレージグループBのRAM20bに対して実行させる(ステップS400)。すなわち、ストレージグループAに関する管理テーブルは、ストレージグループBのRAM20bに格納されており、MPU10−2では、RAM20bに格納されたストレージグループAに関する管理テーブルの更新を実行する。
また、ステップS350での転送指示通知によってホスト1からRAM20aに対するデータ転送が開始される(ステップS360)。MPU10−1では、I/F2からRAM20aへのデータ転送終了をRAM制御回路25aから受信すると(ステップS370)、バス3を介してホスト1へ完了通知を送信する(ステップS380)。これ以降、MPU10−1では、ホスト1からの要求があるまで、待機している。
MPU10−2では、MPU10−1からホスト1への完了通知を検出すると、これをトリガとして、ストレージグループAに関するIF−RAM間のデータ転送処理に起因する管理テーブルの更新をストレージグループBのRAM20bで実行させる(ステップS400)。
このように、第1の実施の形態では、複数のMPUが、1つのストレージグループについてのIF−RAM−NAND間データ転送処理と、他のストレージグループについてのNANDメモリの保守に関する制御を分担して独立に実行するようにしたので、システムの平均速度を向上させることが可能となる。また、管理情報を異なるストレージグループのRAMに格納し、複数のMPUが、1つのストレージグループについてのIF−RAM−NAND間データ転送処理と、このIF−RAM−NAND間データ転送処理に関する管理情報の更新処理とを分担して独立に実行するようにしたので、システムの平均速度を向上させることが可能となる。また、複数のMPUが、1つのストレージグループについてのIF−RAM−NAND間データ転送処理と、他のストレージグループについてのフラッシュ処理を分担して独立に実行するようにしたので、システムの平均速度を向上させることが可能となる。
(第2の実施の形態)
図6は、第2の実施の形態にかかるメモリシステムとしてのSSD100の構成例を示すブロック図である。この第2の実施の形態のSSDは、明確なグループ分けは行われておらず、複数のRAM20a,20b,…、複数のRAM制御回路25a,25b,…、複数のNANDメモリ30a,30b,…、複数のNAND制御回路…35a,35b,…を有するストレージ部を有する。NAND制御回路35aは、専用線16によってNANDメモリ30a、30bにアクセス可能であり、NAND制御回路35bも、専用線16によってNANDメモリ30a、30bにアクセス可能である。
第2の実施の形態のSSDは、図7に示すように、1つのRAMと複数のNANDメモリが同時に活性化して転送が可能であり、その複数のNANDメモリには、他のRAMからもアクセス可能である。すなわち、RAM20aとNANDメモリ30a,30bとの間でデータ転送が可能であり、RAM20bとNANDメモリ30a,30bとの間でデータ転送が可能である。
第2の実施の形態では、NANDメモリの並列度が上がるので、RAMからNANDメモリへの転送速度が上がり、その転送中に使用されていないRAMではテーブル更新処理を行うことが可能である。また、一方のMPU10−1でリード/ライト処理を実行している場合に、他方のMPU10−2がNCQ処理を実行することも可能である。
また、第2の実施の形態において、データ転送のためのRAMを選択する際には、RAMの空き容量に基づく切り替えや、RAMのキャッシュ領域にページ単位より小さいデータが有るか否かに基づく切り替えなどが可能である。第2の実施の形態において、MPU10−1、10−2が行うべき処理機能は固定的に分担させてもよいし、一方のMPUがリード/ライト処理を実行している場合、待機中の他方のMPUが上記したリード/ライト処理以外の処理を実行するようにしてもよい。
このように第2の実施の形態では、RAM−NANDメモリ間のバンド幅が大きいので、RAM−NAND間のデータ転送を高速にしつつ、その転送中に使用していないRAMでの処理が可能である。
(第3の実施の形態)
図8は、第3の実施の形態にかかるメモリシステムとしてのSSD100の構成例を示すブロック図である。第3の実施の形態のSSDも、明確なグループ分けは行われておらず、複数のRAM20a,20b,…、複数のRAM制御回路25a,25b,…、複数のNANDメモリ30a,30b,…、複数のNAND制御回路…35a,35b,…を有するストレージ部を有する。
第3の実施の形態では、図1と同様、NAND制御回路35aはNANDメモリ30aのみにアクセスでき、NAND制御回路35bはNANDメモリ30bのみにアクセスできる。ただし、図8では、RAM制御回路25aは、専用線17aによってNAND制御回路35a、35bに接続され、RAM20aは、NANDメモリ30a、30bの双方と独立したデータ転送が可能である。また、RAM制御回路25bは、専用線17bによってNAND制御回路35a、35bに接続され、RAM20bは、NANDメモリ30a、30bの双方と独立したデータ転送が可能である。したがって、第3の実施の形態のSSDは、図9に示すように、複数のNAND制御回路にぶらさがる複数のNANDメモリのうちの1つを選択し、選択した1つのNANDメモリに対しRAMからのアクセスを行うことができる。したがって、図8の系では、例えば、RAMに格納されているデータをNANDメモリにフラッシュする際に、フレキシブルにNANDメモリを選択することができ、このため、フラッシュ効率のよいNANDメモリを選択したり、NANDメモリ間の処理(ウェアレベリング処理、リフレッシュ処理など)を行うことが可能である。
第3の実施の形態では、第1の実施の形態で行うことが可能な、並列処理をすべて実行させることができる。並列処理としては、
・IF−RAM−NAND間データ転送処理と保守処理との並列
・IF−RAM−NAND間データ転送処理とフラッシュ処理との並列
・IF−RAM−NAND間データ転送処理とNCQ処理との並列
・IF−RAM−NAND間データ転送処理とテーブル更新処理との並列
などがある。
テーブル更新処理は、データ転送処理に使用されていないRAMを用いて実行される。
また、第3の実施の形態において、データ転送のためのRAMを選択する際には、第1の実施の形態で説明した全ての切り替え、すなわちRAMの空き容量に基づく切り替えや、NANDメモリの疲労度(書き換え回数の大小)に基づく切り替え、RAMのキャッシュ領域にページ単位より小さいデータが有るか否かに基づく切り替え、ホストから指定される論理アドレス(LBA)の局所性を考慮した切り替えが可能である。第3の実施の形態において、MPU10−1、10−2が行うべき処理機能は固定的に分担させてもよいし、一方のMPUがリード/ライト処理を実行している場合、待機中の他方のMPUが上記したリード/ライト処理以外の処理を実行するようにしてもよい。
第3の実施の形態では、保守が行われた書き込みやすいNANDメモリを選択したり、レフレッシュやウェアレベリングを別のNANDメモリ間で行うことができ、高速データ転送が可能となり、また信頼性を向上させることができる。
1 ホスト装置、2 ATAインタフェース、3 バス、25a,25b RAM制御回路、30a,30b NANDメモリ、35a,35b NAND制御回路、10−1,10−2 MPU、100 SSD。

Claims (6)

  1. データ消去の単位であるブロックを複数個有する不揮発性の第1の記憶部と、第1の記憶部のバッファメモリとしての第2の記憶部と、第1の記憶部を駆動制御する第1の制御回路と、第2の記憶部を駆動制御する第2の制御回路とを夫々含み、各ストレージグループ内の第1の記憶部と第2の記憶部との間でデータ転送が可能な複数のストレージグループと、
    ホスト装置に接続されるインタフェースと、
    前記インタフェース、各ストレージグループの第1および第2の制御回路とバス接続され、前記複数のストレージグループの第1および第2の制御回路を制御する複数のMPUとを備え、
    前記複数のMPUは、1つのストレージグループについての前記第2の記憶部を介したホスト装置と前記第1の記憶部との間のデータ転送に関する第1の制御と、他のストレージグループについての第1の記憶部の保守に関する制御を含む第2の制御を分担して独立に実行することを特徴とするメモリシステム。
  2. 前記複数のMPUは、1つのストレージグループについての前記第2の記憶部を介したホスト装置と前記第1の記憶部との間のデータ転送に関する第1の制御と、他のストレージグループについての第2の記憶部から第1の記憶部へのデータフラッシュに関する第2の制御を分担して独立に実行することを特徴とする請求項1に記載のメモリシステム。
  3. 前記第2の記憶部には、異なるストレージグループの第1および第2の記憶部に記憶されるデータを管理するための管理情報が記憶され、
    前記複数のMPUは、少なくとも1つのストレージグループについての前記第2の記憶部を介したホスト装置と前記第1の記憶部との間のデータ転送に関する第1の制御と、第1の制御に起因する管理情報の更新処理に関する第2の制御を分担して独立に実行することを特徴とする請求項1または2に記載のメモリシステム。
  4. 前記第1の制御を行うMPUは、第2の記憶部の空き容量、第2の記憶部とデータ転送が可能な第1の記憶部の疲労度、ホスト装置から指定されるアドレス、または第2の記憶部での書き込みサイズより小さいデータの有無に基づいて、データ転送を行うストレージグループを選択することを特徴とする請求項1〜3の何れか一つに記載のメモリシステム。
  5. データ消去の単位であるブロックを複数個有する不揮発性の複数の第1の記憶部と、複数の第1の記憶部のバッファメモリとしての複数の第2の記憶部と、複数の第1の記憶部を駆動制御する複数の第1の制御回路と、複数の第2の記憶部を駆動制御する複数の第2の制御回路とを有し、1つの第2の記憶部と複数の第1の記憶部との間でデータ転送が夫々可能なストレージ部と、
    ホスト装置に接続されるインタフェースと、
    前記インタフェース、前記ストレージ部の複数の第1および第2の制御回路とバス接続され、前記ストレージ部の複数の第1および第2の制御回路を制御する複数のMPUとを備え、
    前記複数のMPUは、1つの第2の記憶部を介したホスト装置と複数の第1の記憶部との間のデータ転送に関する第1の制御と、前記第1の制御に使用されていない第2の記憶部を用いた処理を含む第2の制御とを分担して独立に実行することを特徴とするメモリシステム。
  6. データ消去の単位であるブロックを複数個有する不揮発性の複数の第1の記憶部と、複数の第1の記憶部のバッファメモリとしての複数の第2の記憶部と、複数の第1の記憶部を駆動制御する複数の第1の制御回路と、複数の第2の記憶部を駆動制御する複数の第2の制御回路とを有し、1つの第2の記憶部と複数の第1の記憶部のうちの1つの第1の記憶部との間でデータ転送が可能なストレージ部と、
    ホスト装置に接続されるインタフェースと、
    前記インタフェース、前記ストレージ部の複数の第1および第2の制御回路とバス接続され、前記ストレージ部の複数の第1および第2の制御回路を制御する複数のMPUとを備え、
    前記複数のMPUは、前記第2の記憶部を介したホスト装置と複数の第2の記憶部から選択した1つの第1の記憶部との間のデータ転送に関する第1の制御と、第1の制御に使用されていない第1の記憶部の保守に関する制御を含む第2の制御を分担して独立に実行することを特徴とするメモリシステム。
JP2009220349A 2009-09-25 2009-09-25 メモリシステム Pending JP2011070365A (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2009220349A JP2011070365A (ja) 2009-09-25 2009-09-25 メモリシステム
EP10818579.4A EP2480973A4 (en) 2009-09-25 2010-02-05 MEMORY SYSTEM
KR1020127007121A KR20120055707A (ko) 2009-09-25 2010-02-05 메모리 시스템
CN2010800417594A CN102511038A (zh) 2009-09-25 2010-02-05 存储器系统
PCT/JP2010/052119 WO2011036902A1 (en) 2009-09-25 2010-02-05 Memory system
TW099108396A TW201111987A (en) 2009-09-25 2010-03-22 Memory system
US13/425,548 US8819350B2 (en) 2009-09-25 2012-03-21 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009220349A JP2011070365A (ja) 2009-09-25 2009-09-25 メモリシステム

Publications (1)

Publication Number Publication Date
JP2011070365A true JP2011070365A (ja) 2011-04-07

Family

ID=43795669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009220349A Pending JP2011070365A (ja) 2009-09-25 2009-09-25 メモリシステム

Country Status (7)

Country Link
US (1) US8819350B2 (ja)
EP (1) EP2480973A4 (ja)
JP (1) JP2011070365A (ja)
KR (1) KR20120055707A (ja)
CN (1) CN102511038A (ja)
TW (1) TW201111987A (ja)
WO (1) WO2011036902A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128646A (ja) * 2010-12-15 2012-07-05 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
JP2015069651A (ja) * 2013-09-27 2015-04-13 三星電子株式会社Samsung Electronics Co.,Ltd. データミラーリング制御装置及び方法
JP2016012287A (ja) * 2014-06-30 2016-01-21 富士通株式会社 ストレージ制御装置、およびストレージ制御プログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013005010A (ja) * 2011-06-13 2013-01-07 Funai Electric Co Ltd 映像再生装置
US10223001B2 (en) 2015-03-12 2019-03-05 Toshiba Memory Corporation Memory system
KR102501751B1 (ko) * 2015-09-22 2023-02-20 삼성전자주식회사 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
KR102664704B1 (ko) * 2016-10-24 2024-05-14 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
KR20180087496A (ko) * 2017-01-23 2018-08-02 에스케이하이닉스 주식회사 메모리 시스템
JP2019074897A (ja) * 2017-10-16 2019-05-16 富士通株式会社 ストレージ制御装置、及びプログラム
CN113630318B (zh) * 2020-05-06 2023-05-12 华为技术有限公司 报文传输的方法和框式通信设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007048184A (ja) * 2005-08-12 2007-02-22 Renesas Technology Corp メモリカード
JP2008217316A (ja) * 2007-03-02 2008-09-18 Tietech Co Ltd データ記録装置
US20090132761A1 (en) * 2007-11-15 2009-05-21 Keun Soo Yim Storage management method and system using the same
US20090150894A1 (en) * 2007-12-10 2009-06-11 Ming Huang Nonvolatile memory (NVM) based solid-state disk (SSD) system for scaling and quality of service (QoS) by parallelizing command execution
US20090172250A1 (en) * 2007-12-28 2009-07-02 Spansion Llc Relocating data in a memory device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822251A (en) * 1997-08-25 1998-10-13 Bit Microsystems, Inc. Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
US7290109B2 (en) * 2002-01-09 2007-10-30 Renesas Technology Corp. Memory system and memory card
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
KR100626393B1 (ko) * 2005-04-07 2006-09-20 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 멀티-페이지 카피백 방법
JP4977554B2 (ja) 2007-08-22 2012-07-18 株式会社日立製作所 キャッシュメモリ上のデータをバックアップする機能を備えたストレージシステム
US8484432B2 (en) 2008-03-11 2013-07-09 Kabushiki Kaisha Toshiba Memory system
US8281062B2 (en) * 2008-08-27 2012-10-02 Sandisk Il Ltd. Portable storage device supporting file segmentation and multiple transfer rates

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007048184A (ja) * 2005-08-12 2007-02-22 Renesas Technology Corp メモリカード
JP2008217316A (ja) * 2007-03-02 2008-09-18 Tietech Co Ltd データ記録装置
US20090132761A1 (en) * 2007-11-15 2009-05-21 Keun Soo Yim Storage management method and system using the same
US20090150894A1 (en) * 2007-12-10 2009-06-11 Ming Huang Nonvolatile memory (NVM) based solid-state disk (SSD) system for scaling and quality of service (QoS) by parallelizing command execution
US20090172250A1 (en) * 2007-12-28 2009-07-02 Spansion Llc Relocating data in a memory device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128646A (ja) * 2010-12-15 2012-07-05 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
JP2015069651A (ja) * 2013-09-27 2015-04-13 三星電子株式会社Samsung Electronics Co.,Ltd. データミラーリング制御装置及び方法
JP2016012287A (ja) * 2014-06-30 2016-01-21 富士通株式会社 ストレージ制御装置、およびストレージ制御プログラム

Also Published As

Publication number Publication date
WO2011036902A1 (en) 2011-03-31
TW201111987A (en) 2011-04-01
CN102511038A (zh) 2012-06-20
US20120179863A1 (en) 2012-07-12
EP2480973A1 (en) 2012-08-01
EP2480973A4 (en) 2013-06-12
US8819350B2 (en) 2014-08-26
KR20120055707A (ko) 2012-05-31

Similar Documents

Publication Publication Date Title
US8819350B2 (en) Memory system
US8463986B2 (en) Memory system and method of controlling memory system
JP5728672B2 (ja) ハイブリッドメモリ管理
JP5823875B2 (ja) 固体メモリフォーマッティング
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US20160231941A1 (en) Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
KR101552207B1 (ko) 예비 영역을 가지는 반도체 메모리 장치
KR102533072B1 (ko) 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법
US10817418B2 (en) Apparatus and method for checking valid data in memory system
US20100042773A1 (en) Flash memory storage system and data writing method thereof
US7649794B2 (en) Wear leveling method and controller using the same
US20200034081A1 (en) Apparatus and method for processing data in memory system
US11334272B2 (en) Memory system and operating method thereof
KR20090102192A (ko) 메모리 시스템 및 그것의 데이터 저장 방법
US11422930B2 (en) Controller, memory system and data processing system
WO2022256058A1 (en) Dissimilar write prioritization in zns devices
TWI718710B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
KR102544162B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20150339069A1 (en) Memory system and method
JP2018160189A (ja) メモリシステム
KR101070511B1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
KR20220103340A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11704236B2 (en) Method and storage system with a layered caching policy
US11036414B2 (en) Data storage device and control method for non-volatile memory with high-efficiency garbage collection
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130924