JP5650116B2 - 仮想化ecc−nand - Google Patents

仮想化ecc−nand Download PDF

Info

Publication number
JP5650116B2
JP5650116B2 JP2011530580A JP2011530580A JP5650116B2 JP 5650116 B2 JP5650116 B2 JP 5650116B2 JP 2011530580 A JP2011530580 A JP 2011530580A JP 2011530580 A JP2011530580 A JP 2011530580A JP 5650116 B2 JP5650116 B2 JP 5650116B2
Authority
JP
Japan
Prior art keywords
ecc
nand
controller
nand memory
memory devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011530580A
Other languages
English (en)
Other versions
JP2012505458A (ja
Inventor
ティツィアーニ,フェデリコ
カンパルド,ジョヴァンニ
イアキューロ,マッシモ
ジアッチョ,クラウディオ
スコニャミーリョ,マヌエーラ
カラッチョ,デニーロ
ヴィターレ,オルネッラ
ポリオ,アントニーノ
Original Assignee
マイクロン テクノロジー, インク.
マイクロン テクノロジー, インク.
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 マイクロン テクノロジー, インク., マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2012505458A publication Critical patent/JP2012505458A/ja
Application granted granted Critical
Publication of JP5650116B2 publication Critical patent/JP5650116B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Description

(本文中に技術分野に該当する記載なし)
今日の通信装置は、機能を増大させるのに際して、より精巧で多様になり続けている。これらの装置は、より高い容量メモリを必要とするマルチメディア、特には複数チップ・パッケージ設計で提供されるマルチメディアに役立っている。通信リンク、バス、チップ間相互接続および記憶媒体は、固有の信号/記憶の故障を高いレベルで伴って動作することがある。これらの通信装置には、エラー検出/訂正メカニズムが組み込まれていることが求められる。ECC(エラー訂正符号)が、メモリ記憶構造中に用いられてきているが、更なる改善が必要とされる。
本発明とみなされる主題は、添付の特許請求の範囲において、具体的に指摘されるとともに明確に特許請求される。ただし、構成および動作方法に関して、本発明の目的、特徴、および利点とともに本発明は、以下の詳細な説明を添付の図面と併せて参照することにより最適に理解することができる。
本発明に係るECCアルゴリズムを実行し、ホスト・プロセッサとNANDメモリのスタックとの間のデータ転送を管理するための仮想化ECC-NANDコントローラを組み込んだ無線アーキテクチャの図である。 メモリ・インターフェースに対するホスト・プロセッサの図であって、仮想化ECC−NANDコントローラが、ECCアルゴリズムを実行するとともにNANDメモリのスタックへのデータ転送を管理する機能ブロックを提供する様を示す図である。 仮想化ECC-NANDコントローラの更なる詳細を示す図である。
図示の簡略化および明確化のために、図中の要素は必ずしも原寸に比例して描かれていないことが理解されるであろう。たとえば、明確化のために、いくつかの要素の寸法が、他の要素に対して誇張されていることがあってもよい。さらに、対応しているまたは類似している要素を示すために、参照番号を複数の図面で必要に応じて繰り返している。
以下の詳細な説明では、本発明の完全な理解を実現するために多数の具体的詳細について述べる。ただし、こうした具体的詳細なしに本発明が実施され得ることが、当業者には理解されるであろう。他の例では、本発明が分かりにくくならないように、周知の方法、手順、構成部品および回路を詳細には説明していないこともある。
図1に示す実施形態は、本発明に係る、複数のNANDフラッシュ装置を使用可能にする仮想化ECC-NANDコントローラを有する不揮発性メモリを含み得る通信装置10を示す。本発明は、無線通信の実施形態に限定されるものではなく、他の非無線の応用例に本発明を使用してもよい。この無線実施形態に示すように、通信装置10には、無線機が他の無線通信装置と通信を行うのを可能にするための1つまたは複数のアンテナ構造体14が含まれる。したがって、通信装置10は、セルラ式装置、または、たとえばWi-Fi(Wireless Fidelity)、WiMax、モバイルWiMax、WCDMA(広帯域符号化分割多元接続)、GSM(汎欧州移動体通信システム)ネットワークなどの無線ネットワーク中で動作する装置として動作し得る。ただし、本発明は、これらのネットワーク中のみでの動作に限定されない。通信装置10の同一プラットホーム中に配置された無線サブシステムが、無線周波数空間中の様々な周波数帯を用いてネットワーク中の他の装置と通信を行う機能を提供する。
本実施形態では、変調/復調を調節するためのトランシーバ12へのアンテナ構造体14の結合を示している。一般には、アナログ・フロントエンド・トランシーバ12は、スタンドアロン型無線周波数(RF)ディスクリート回路またはスタンドアロン型無線周波数集積アナログ回路であっても、あるいはトランシーバ12は1つまたは複数のプロセッサ・コア16および18を有するホスト中央処理ユニット(CPU)20に組み込まれていてもよい。これら複数のコアにより、処理負荷を各コアで共有することが可能となり、ベースバンド機能およびアプリケーション機能が取り扱われる。データおよび命令は、メモリ・インターフェース28を介してCPUとメモリ記憶装置との間を転送され得る。
システム・メモリ22には、たとえばNANDメモリ構造体24などの揮発性メモリと不揮発性メモリとの両方が含まれ得る。これら揮発性メモリおよび不揮発性メモリは、別々に実装されても、積重ねプロセスで組み合わせられてもよいことに留意されたい。具体的には、ボード上のフットプリントを減少させるために、これらの複数のNANDメモリ構造体はマルチチップ・パッケージ(MCP)内に配置されてもよい。したがって、通信製品中の限られたスペースを利用するためにメモリ・デバイスとメモリ構成とを混合することにより様々な方法で、メモリ・デバイスは配置され得、低電力で信頼度の高い正しい組合せを見つけるために様々な実装オプションで用いられ得ることが、システム・メモリ22の様々な実施形態に示される。
従来技術では、NANDメモリ内部で実施されるECC(エラー訂正符号)アルゴリズムは、単一のメモリ・デバイスのみに適用可能なエラー検出/訂正メカニズムを提供するように制限されている。新たなNAND技術をサポートするために、固定されたホスト・プラットホームをアップデートすることは、ECCの必要性、ページ・サイズ、アドレス能力、新たなコマンド・セット適用等の点から高コストである。さらに、ECCアルゴリズムを制限することは、特定の技術に向けてのことである。たとえば、シングル・レベル・セル(SLC)技術とマルチ・レベル・セル(MLC)技術とを交換すると、使用されているECCアルゴリズムが無効になる。さらに、製品シュリンクレベルの異なるメモリへの置換えにより、現行のECCアルゴリズムの改変が必要になる。また、内部に組み込まれたECCを備える現在のメモリ・デバイスには、フラッシュおよびECCアルゴリズム論理回路向けのダイ・エリアの組合せに基づくコスト上の不利益が存在する。
これらの不備を解消するために、本発明によれば、図2に示すアーキテクチャにより、単一の仮想化ECC-NANDコントローラ26が複数のNANDメモリ構造体、すなわち「raw」メモリ・スタック24にサービスすることが可能になっている。「raw」の語は、NANDメモリ・デバイスがECCアルゴリズムを内部で実施しないことを意味する。ホストCPU20が、仮想化ECC-NANDコントローラ26およびraw NANDメモリ構造体を、内部のraw NANDメモリの数に関わらず単一のメモリ・システムとして駆動する。さらに、この解決手法では、1度に1つのNANDを選択することができるので、従来技術のスタック・アーキテクチャと比較して電力消費が減少する。仮想化ECC-NANDコントローラ26には、ホストCPU20と信号を交換するプロトコル・インタフェース30と、ECCアルゴリズムを実施するように機能するECCエンジン32と、メモリ・スタック24を管理するNANDインタフェース34とが含まれる。
仮想化ECC-NANDコントローラ26は、ホストNANDインタフェースからraw NANDメモリ・スタックへのブリッジとして機能し、システム・メモリ中に設けられたraw NANDに対する正しいECCアルゴリズムをホストに供給する。ホスト側は、自体の標準NANDインタフェース、アドレス空間、コマンド・セット、ページ・サイズ、ECC等を用いて動作し、仮想化ECC-NANDコントローラ26は、メモリ・スタック中に組み込まれた特定のraw NANDにホスト側を適応させる。
NANDスタック中の個々のNANDメモリ・デバイスからECC機能を取り除き、この機能をECC-NANDコントローラ26に組み込むことにより、様々な特徴を実現させることができる。NANDメモリ・デバイスの外にあるECC-NANDコントローラ26の場合、ホスト側では、複数のNANDメモリ・デバイスが記憶システム中に存在しても、ホストがシステムを単一のNANDチップとして駆動することを可能にする仮想化アドレス空間が実現する。したがって、ホストCPU20は、より多くのチップをインタフェースにおいて自由に管理することができる。すなわち、ホストCPU20が1つのチップをインタフェースにおいて管理すれば、仮想化ECC-NANDコントローラ26がスタック・メモリ中の複数のNANDメモリ・デバイスを管理することができる。
従来技術の製品では、ECCが、たとえばFTL(Flash Translation Layer)、ウエアレベリング、不良ブロック管理等のデータ管理アルゴリズムとともに共通の集積回路に組み込まれている。これに対して、図に示すアーキテクチャでは、ECCがデータ管理アルゴリズムから分離している。仮想化ECC-NANDコントローラ26は、ECCアルゴリズムのみを実行し、他のデータ管理アルゴリズムを実行しない。これにより、ホストCPU20は、データ・ページおよびメタデータ・エリアについて仮想化メモリの完全な制御を維持することができ、仮想化ECC-NANDコントローラ26は、より良好なECCエンジンを提供することができる。
ホストNANDインタフェースからraw NANDメモリ・スタックへのブリッジとして仮想化ECC-NANDコントローラ26を利用する際には、ホスト・プラットホームは、raw NANDのページ・サイズとは異なるページ・サイズを管理することもできる。さらに、仮想化ECC-NAND26は、ホスト・プラットホームをメモリ・スタックから分離し、これにより、ホストCPU20が、raw NANDにサポートされていないいくつかのコマンドを使用することが可能になる。一実施形態では、ホストCPU20は、仮想化ECC-NAND中の物理メモリ・デバイスのコマンド・セットよりも大きなコマンド・セットを有することができ、別の実施形態では、ホストのコマンド・セットを、仮想化ECC-NAND中のコマンド・セットと比較して縮減したコマンド・セットとすることができる。どちらの実施形態でも、ECC-NANDコントローラ26中の論理回路により、ホストCPU20のコマンド・セットが物理メモリ・デバイスのコマンド・セットに適応される。ホスト・プラットホームは、基本NANDコマンド・セットを使用してもよく、また仮想化NANDコントローラ26は、拡張新規コマンド・セットを使用してもよい。
図3は、ホストCPU20が、プロトコル仕様から変化していない電気的接続を介してプロトコル・インタフェース30にインタフェースをとることを可能にし、これにより、ホストが、エラーの無い広いアドレス空間を用いて単一のメモリ・システムと通信を行うことが可能になる、更なる詳細を示す。言い換えると、このアーキテクチャは、ホストCPU20がメモリ・スタック24とのデータ交換を標準NANDインタフェースとして実現することを可能にし、これにより、仮想コマンド・セットおよびアドレス空間を維持している。
同時に、ホスト・プラットホームに内部論理回路を追加することなく、ECC-NAND26は、raw NAND中のビットエラーを訂正することによりデータ交換の総合的信頼度を増大させるためのECC機能を提供する。仮想化ECC-NANDコントローラ26がスタックの選択されたNANDにデータをリダイレクトし、その一方で、ホストCPU20が接続されたメモリ・デバイスを単一のNANDチップであるかのように駆動するので、このアドレス指定は仮想化されたものである。このように、単一の仮想化ECC-NANDコントローラ26が、NANDフラッシュ・メモリのスタックを管理し、ECCアルゴリズムを実行する。
さらに、仮想化ECC-NANDコントローラ26をホストCPU20とメモリ・スタック24との間に有するこのアーキテクチャにより、様々なチップイネーブル(CE)ピンを使用してNANDメモリの組を管理することの可能なホストに、単一のNANDデバイスの使用を適用することができるようになる。一実施形態では、ホスト・インタフェースが、CE信号を使用して様々なフラッシュ・メモリを選択的に駆動するが、仮想化ECC-NANDは、より密度の高い単一のNANDチップからなるものである。仮想化ECC-NANDコントローラ26の内部論理回路が、ホストCPU20からの要求を変換し、これにより、CEの1つがアサートされてNANDアレイの一部分をアドレス指定し、こうすることにより、選択されたNANDメモリ・デバイス自体によってサポートされたアドレス・サイクルにこのホストCPU20からの要求が符号化される。ホストCPU20は、raw NANDメモリ・デバイスに必要なサイクル数よりも低いアドレス・サイクル数を有してもよいことに留意されたい。さらに、このホスト・プラットホームは、raw NANDメモリ・デバイスのページ・サイズとは異なるページ・サイズを管理し得、たとえばマルチプレーン(multi-plane)・オペレーションやキャッシュ(cache)・オペレーションなどの、メモリ・デバイスにサポートされていないいくつかのコマンドを使用さえし得る。
たとえば、raw NANDメモリ・デバイスがマルチプレーン・オペレーションをサポートしていない場合、仮想化ECC-NANDコントローラ26は、これらマルチプレーン・オペレーションのコマンドを2つのチャンネルでエミュレートすることができる。raw NANDメモリ・デバイスがキャッシュ・オペレーションをサポートしていない場合、仮想化ECC-NANDコントローラ26は、内部ピンポン・バッファ等を用いてこれらキャッシュ・オペレーションのコマンドをエミュレートすることができる。さらに、ホスト・プラットホームがraw NANDメモリ・デバイスのページ・サイズと異なるページ・サイズを必要とする場合、仮想化ECC-NANDコントローラ26は、ページ・サイズおよびページ数が実際のものとは異なる仮想化物理的ブロックを提供する。
プロトコル・インタフェース30は、仮想化ECC-NANDコントローラ26の、標準NAND通信プロトコルを用いてホストCPU20と通信を行う部分である。プロトコル・インタフェース30は、任意の受信コマンドを解釈し、さらに、ホストが転送する任意のデータの格納を指示する。さらに、プロトコル・インタフェース30は、ECCアルゴリズムによるレイテンシ(待ち時間)を考慮に入れるために、NANDレディ/ビジー(Ready/Busy)信号を管理する。プロトコル・インタフェース30は、ホストCPU20により送信されるデータをプログラム動作中格納するための内部バッファ36を有する。プロトコル・インタフェース30は、確認コマンドに従って、仮想化ECC-NANDコントローラ26へのいかなるデータ・オペレーションをも回避するためにビジー信号をロー(low)にセットする。
バッファ36のサイズは、ECCの計算によるレイテンシを短縮するように適当に選択される。バッファ・サイズが適当であれば、ホストCPU20は、書込み動作中に前のフラッシュ動作が終了するのを待つことなく新たなページを送り始めることができる。このタイミング的利点は、順次読取り動作中に有益であり、したがって、ECCエンジン30が現在のページの冗長度を計算しながら、次のページをraw NANDから取り出すことができる。
ECCエンジン32は、仮想化ECC-NANDコントローラ26の、ホストCPU20から送られたデータの冗長度を計算するECCアルゴリズムを実施するように機能する部分である。ECCアルゴリズムは、オリジナルの情報に対して、スタック・メモリ24への格納、書込み、またはそこからの読出し中に起こるエラーを検出および訂正するのに使用される。ECCアルゴリズムは、多値、巡回、エラー訂正、可変長デジタル符号を実行して、複数のランダムなエラーパターンを訂正することができる。よって、ECCエンジン32は、BCH符号またはリード・ソロモン・アルゴリズムを実行することができる。
書込み動作中、ECCアルゴリズムにより、ホストから送られたデータの冗長度が計算される。冗長度が計算されると、それはホスト・データに加えられて、NANDフラッシュ・ページ・バッファに転送される。読取り動作中、ECCエンジン32は、raw NANDからのデータの冗長度を再度計算し、この冗長度を、先立ってフラッシュ・メモリ中に記憶していた古い冗長値と比較する。2つの冗長度が等しい場合、データは正しいものであり、そのデータはプロトコル・インタフェース・バッファからホストCPU20に転送することができる。ただし、2つの冗長度が等しくない場合、ECCエンジン32が誤ったデータ・ビットを訂正し、その後、データをホストCPU20に転送し得る。エラーの数がECC訂正能力を上回る場合、読取り失敗の信号がホストCPU20に送られる。
NANDインタフェース34は、仮想化ECC-NANDコントローラ26の、ホストCPU20から先立って受け取ったコマンド及びアドレスの両方を再構成することによりraw NANDと通信を行うように機能する部分である。こうして、書込み動作中、データは、プロトコル・インタフェース・バッファから、選択されたフラッシュ・メモリに転送される。この機能では、NANDインタフェース34は、アドレスを復号して、受け取ったデータを選択されたNANDにリダイレクトし、ECC冗長度を加えたデータの新たなペイロードを、スタック・メモリ24中の選択されたraw NANDに送る。この動作中、ビジー信号はローに維持され、raw NANDプログラム動作が終了すると、高信号レベルに移行する。
読取り動作中、NANDインタフェース34は、選択されたraw NANDからのデータをプロトコル・インタフェース30中のバッファ36に転送する。一方、ECCエンジン32は、このデータを処理して関連パリティを計算し、フラッシュ・ストレージから読み取った冗長度と比較し、必要に応じて、ビット訂正が実施される。
プロトコル・インタフェース30が1つのチップイネーブル・ピンを有し、NANDインタフェース34が2つ以上のチップイネーブル・ピンを有する場合、メモリ・スタックの選択されたraw NANDメモリ・デバイスにデータをリダイレクトするためにアドレスが復号される。他方、プロトコル・インタフェース30がNANDインタフェース34よりも多くのチップイネーブル・ピンを有する場合、どのチップイネーブルがローであるかに応じてraw NANDの正しい部分にデータをリダイレクトするために、アドレスが復号される。
仮想化ECC-NANDコントローラ26を使用して、NANDフラッシュ・メモリのスタックの外部でECCアルゴリズムを実行することにより、技術およびメモリ・デバイスの数に関してフレキシブルなメモリ・システムの解決手法が保証される。実際、仮想化ECC-NANDコントローラ26は、メモリ・スタック24に含まれる不揮発性メモリがSLCかMLCかに関係なく動作し続けることができる。さらに、仮想化ECC-NANDコントローラ26は、複数のフラッシュNANDデバイスを管理することが可能であり、様々なシュリンクレベルのメモリ・デバイスを収容しさえする。また、仮想化ECC-NANDコントローラ26中のECC訂正機能の変更は、フラッシュNAND設計に影響を与えないことに留意されたい。さらに、図3に示すアーキテクチャで例示する解決手法では、1度に1つのNANDメモリ・デバイスを選択することができるので、従来のスタック・アーキテクチャと比較して消費電力が減少する。
新たなメモリ技術により、単一のセル中に格納するビット数が増大するにつれて、読取りエラー、書込みエラー、及び保持エラーの確率が上昇する。これにより、訂正力の向上した符号を有するより完全なECCアルゴリズムを使用することが必要になる。これらの技術的困難を解消するために、先に示した本発明の実施形態により、単一のコントローラがECCアルゴリズムを実施することに加えて、NANDフラッシュ・メモリのスタックを管理するアーキテクチャが提供されるということが明らかになったはずである。このアーキテクチャにより、ホストCPUが、エラーの無い広いアドレス空間で、標準NANDプロトコルを使用して単一のメモリ・システムを駆動することが可能になる。ECC訂正機能を外部コントローラ中に置くことにより、フラッシュ・マスク(flash mask)の変更の必要なしに、ECCアルゴリズムの変更を容易化することができる。また、こうした外部コントローラは、コントローラおよびNANDメモリに対する様々な技術の使用を可能にし、様々なシュリンクレベルのメモリ・デバイスを可能にする。
本発明の特定の特徴の例示および説明を本明細書中で行ってきたが、当業者は、多くの修正形態、代替形態、変更形態、均等物を見出すであろう。したがって、添付の特許請求の範囲は、本発明の真の趣旨に含まれる全てのこうした修正形態および変更形態を包含することを意図するものであることを理解されたい。

Claims (11)

  1. ホストに結合された記憶システムであって、
    内部でエラー訂正符号(ECC)アルゴリズムを実行しない複数のNANDメモリ・デバイスと、
    前記複数のNANDメモリ・デバイスの外部にあるコントローラであって、前記記憶システムが複数のNANDメモリ・デバイスを含んでいても、前記ホストが前記記憶システムを単一のNANDメモリ・デバイスとして駆動することを可能にするための仮想化アドレス空間を、前記ホストにエクスポートし、さらに単一の仮想化エラー訂正符号(ECC)アルゴリズムを前記複数のNANDメモリ・デバイスの各々に提供するコントローラと、
    を備え、
    前記コントローラは、更に符号(ECC)アルゴリズムと、ウェアレベリングおよび不良ブロック管理ではなく、ECCアルゴリズムの計算によって生じる待ち時間を低減し、NANDメモリ・デバイスを管理するためのバッファを有するプロトコル・インタフェースを含み、ECCアルゴリズムの待ち時間を考慮して、ホスト・プロセッサにNANDレディ/ビジー信号を管理する記憶システム。
  2. 前記コントローラが、前記ホストのページ・サイズとは異なる、前記複数のNANDメモリ・デバイスの各々のページ・サイズを管理する、
    請求項1に記載の記憶システム。
  3. 前記コントローラが、前記ホストにより発行され、前記複数のNANDメモリ・デバイスにサポートされていないコマンドを適応させる、
    請求項1に記載の記憶システム。
  4. 前記コントローラが、前記ホストのプロセッサから受け取るデータを、前記複数のNANDメモリ・デバイスの選択された一又は複数にリダイレクトするよう構成された不揮発性メモリ・デバイスである、
    請求項1に記載の記憶システム。
  5. 記憶システム内の複数のNANDメモリ・デバイスとのインタフェースをとるためのコントローラであって、
    ホスト・プロセッサと信号を交換するためのプロトコル・インタフェース回路と、
    ECCアルゴリズムを実行するためのエラー訂正符合(ECC)エンジンと、
    前記複数のNANDメモリ・デバイスを管理するためのNANDインタフェースと、
    を備え、
    前記NANDインタフェースは、前記ホスト・プロセッサにより発行され、前記複数のNANDメモリ・デバイスにサポートされていないコマンドをエミュレートするよう構成され、さらに前記NANDインタフェースは、前記複数のNANDメモリ・デバイスのうちの1度に1つ選択されるNANDメモリ・デバイスに電力を供給し、前記記憶システムの全消費電力を節約するよう構成され
    前記プロトコル・インタフェース回路は、ホスト・プロセッサにデータを転送すると共に、ECCアルゴリズムの待ち時間を考慮して、ホスト・プロセッサにNANDレディ/ビジー信号を管理するためのバッファを有し、前記バッファは、順次読取り動作中のECCアルゴリズムの実行をしながら、新たなページのデータを読み出すバッファリング能力を有するコントローラ。
  6. 前記コントローラが、ホストNANDインタフェースから前記複数のNANDメモリ・デバイスへのブリッジであり、
    前記コントローラが、前記記憶システム内に備えられた前記複数のNANDメモリ・デバイスについて、前記ホスト・プロセッサに対するECCアルゴリズムを選択する、
    請求項に記載のコントローラ。
  7. 前記コントローラが、前記複数のNANDメモリ・デバイスのページ・サイズとは異なる、前記ホスト・プロセッサからのページ・サイズを管理する、
    請求項に記載のコントローラ。
  8. 前記コントローラが、前記ホスト・プロセッサに対する単一のNANDインタフェースを提供し、こうすることにより、利用可能なアドレス入力サイクルに起因する、前記複数のNANDメモリ・デバイスの各々における使用可能なフラッシュの数の制限を取り除く、
    請求項に記載のコントローラ。
  9. エラー訂正符号(ECC)アルゴリズムを内部で実行しないNANDメモリ・デバイスのスタックを管理する方法であって、
    ホスト・プロセッサと信号を交換するために、コントローラ・デバイスのプロトコル・インタフェース・ブロックを使用するステップであって、これにより、前記ホスト・プロセッサがエラーの無い広いアドレス空間を用いて通信を行うことを可能にする、ステップと、
    前記コントローラ・デバイスに組み込まれたECCエンジン・ブロックにより単一の仮想化ECCアルゴリズムを実行するステップと、
    前記NANDメモリ・デバイスのスタックへのデータ転送を管理するために、前記ホスト・プロセッサから受け取ったコマンド及びアドレスの両方を、前記コントローラ・デバイスに組み込まれたNANDインタフェース・ブロックを用いて再構成するステップと、
    を含み、
    ホスト・プロセッサからのデータの記憶を指示するためのプロトコル・インタフェースブロックによって、ホスト・プロセッサから受け取ったコマンドを解釈すると、順次読取り動作中のECCアルゴリズムの実行をしながら、新たなページのデータを読み出すバッファリング能力を有するバッファをロードする方法。
  10. 複数のNANDメモリ・デバイスを含む無線通信システムであって、
    トランシーバと、
    前記トランシーバに結合され、第1および第2のプロセッサ・コアを有するプロセッサと、
    エラー訂正符号(ECC)コントローラであって、
    コマンドおよびアドレスを受け取るための、及び前記プロセッサと信号を交換するための組込みNANDインタフェース・ブロック、
    ECCアルゴリズムを実行するためのECCエンジン、ならびに
    前記ホスト・プロセッサから受け取ったコマンド及びアドレスの両方を再構成して、内部でECCアルゴリズムを実行しない前記複数のNANDメモリ・デバイスとのデータ転送を命令するためのNANDインタフェース回路、を有するECCコントローラと、を備え
    前記ECCコントローラは、さらに、ECC計算によって生じる待ち時間を低減するバッファを有し、ECCアルゴリズムの待ち時間を考慮して、ホスト・プロセッサにNANDレディ/ビジー信号を管理するプロトコル・インタフェース回路を含み、前記ECCコントローラは、さらに、前記プロセッサから選択されたNANDメモリ・デバイスへリダイレクトしている間、前記プロセッサが複数のNANDメモリデバイスを単一のNANDメモリデバイスとして駆動することを可能にする無線通信システム。
  11. 前記ECCコントローラは、前記プロセッサが前記複数のNANDメモリ・デバイスのページ・サイズとは異なるページ・サイズを管理することを可能にする、
    請求項10に記載の無線通信システム。
JP2011530580A 2008-10-09 2008-10-09 仮想化ecc−nand Active JP5650116B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2008/002658 WO2010041093A1 (en) 2008-10-09 2008-10-09 Virtualized ecc nand

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014158171A Division JP2014238871A (ja) 2014-08-01 2014-08-01 単一の仮想化されたeccアルゴリズムを提供するコントローラと、このコントローラを含む記憶システム、及びこの記憶システムを管理する方法

Publications (2)

Publication Number Publication Date
JP2012505458A JP2012505458A (ja) 2012-03-01
JP5650116B2 true JP5650116B2 (ja) 2015-01-07

Family

ID=41092022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011530580A Active JP5650116B2 (ja) 2008-10-09 2008-10-09 仮想化ecc−nand

Country Status (5)

Country Link
US (4) US8806293B2 (ja)
JP (1) JP5650116B2 (ja)
CN (1) CN102272730B (ja)
DE (1) DE112008004033T5 (ja)
WO (1) WO2010041093A1 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
DE112008004033T5 (de) 2008-10-09 2012-01-19 Numonyx B.V. Virtualisiertes Ecc Nand
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US8413015B2 (en) * 2009-09-21 2013-04-02 Sandisk Technologies Inc. Nonvolatile memory controller with scalable pipelined error correction
KR20110105257A (ko) * 2010-03-18 2011-09-26 삼성전자주식회사 적층 구조를 갖는 반도체 메모리 장치 및 에러 정정 방법
US9600410B1 (en) * 2010-07-09 2017-03-21 Crossbar, Inc. ReRAM based NAND like architecture with configurable page size
KR20130028349A (ko) * 2011-09-09 2013-03-19 삼성전자주식회사 메모리 장치, 메모리 시스템 및 그 데이터 저장 방법
US9223649B2 (en) * 2012-02-15 2015-12-29 Sandisk Technologies Inc. System and method of sending correction data to a buffer of a non-volatile memory
US9146856B2 (en) 2012-04-10 2015-09-29 Micron Technology, Inc. Remapping and compacting in a memory device
US20130304970A1 (en) * 2012-04-20 2013-11-14 Stec, Inc. Systems and methods for providing high performance redundant array of independent disks in a solid-state device
KR101961318B1 (ko) 2012-09-07 2019-07-17 삼성전자주식회사 중앙처리장치에서의 점유시간을 최소화하는 방어코드 운영 방법 및 그에 따른 메모리 시스템
CN102929655A (zh) * 2012-09-26 2013-02-13 瑞斯康达科技发展股份有限公司 向闪存芯片中烧写数据文件的方法、预处理方法及装置
KR102002925B1 (ko) * 2012-11-01 2019-07-23 삼성전자주식회사 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
US9354973B2 (en) * 2013-03-13 2016-05-31 Intel Corporation Data integrity management in memory systems
US9324450B2 (en) * 2013-03-13 2016-04-26 Winbond Electronics Corporation NAND flash memory
US9152584B2 (en) * 2013-10-29 2015-10-06 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Providing bus resiliency in a hybrid memory system
KR20150091918A (ko) * 2014-02-04 2015-08-12 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US9471428B2 (en) 2014-05-06 2016-10-18 International Business Machines Corporation Using spare capacity in solid state drives
US9652321B2 (en) * 2014-09-23 2017-05-16 Intel Corporation Recovery algorithm in non-volatile memory
US9880748B2 (en) * 2015-02-13 2018-01-30 Qualcomm Incorporated Bifurcated memory management for memory elements
US9830093B2 (en) 2015-03-27 2017-11-28 Intel Corporation Method and apparatus for improving immunity to defects in a non-volatile memory
KR102480016B1 (ko) 2015-08-18 2022-12-21 삼성전자 주식회사 다수의 맵핑 단위를 이용하는 불휘발성 메모리 시스템 및 그 동작방법
US10528423B2 (en) 2015-12-01 2020-01-07 Nvidia Corporation Memory management systems and methods
CN105512054B (zh) * 2015-12-09 2018-11-09 上海兆芯集成电路有限公司 主机接口控制器以及储存装置控制方法
US9940186B2 (en) * 2015-12-22 2018-04-10 Nxp Usa, Inc. Memory controller and method of operating a memory controller
US10096366B2 (en) 2016-01-28 2018-10-09 Toshiba Memory Corporation Memory system including multi-plane flash memory and controller
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10037164B1 (en) * 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10381327B2 (en) 2016-10-06 2019-08-13 Sandisk Technologies Llc Non-volatile memory system with wide I/O memory die
US10866912B2 (en) 2017-03-10 2020-12-15 Toshiba Memory Corporation Integrated heterogeneous solid state storage drive
US10845866B2 (en) * 2017-06-22 2020-11-24 Micron Technology, Inc. Non-volatile memory system or sub-system
US11061772B2 (en) * 2018-12-14 2021-07-13 Samsung Electronics Co., Ltd. FPGA acceleration system for MSR codes
CN109783411B (zh) * 2018-12-20 2022-05-17 成都旋极历通信息技术有限公司 一种基于fpga的flash阵列控制方法及控制器
US11016965B2 (en) 2019-01-22 2021-05-25 International Business Machines Corporation Graphical user interface for defining atomic query for querying knowledge graph databases
US10937512B2 (en) 2019-01-22 2021-03-02 International Business Machines Corporation Managing programming errors in NAND flash memory
US11392509B2 (en) * 2020-08-18 2022-07-19 PetaIO Inc. Command memory buffer systems and methods
US11625173B1 (en) * 2020-09-09 2023-04-11 Marvell Asia Pte Ltd Reduced power consumption by SSD using host memory buffer

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3015A (en) * 1843-03-21 Improvement in gilding, silvering
US8004A (en) * 1851-03-25 Francis b
US5887145A (en) * 1993-09-01 1999-03-23 Sandisk Corporation Removable mother/daughter peripheral card
US5918242A (en) * 1994-03-14 1999-06-29 International Business Machines Corporation General-purpose customizable memory controller
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US7457897B1 (en) * 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US7483329B2 (en) * 2000-01-06 2009-01-27 Super Talent Electronics, Inc. Flash card and controller with integrated voltage converter for attachment to a bus that can operate at either of two power-supply voltages
US8108590B2 (en) * 2000-01-06 2012-01-31 Super Talent Electronics, Inc. Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
JP2002032990A (ja) * 2000-07-17 2002-01-31 Mitsubishi Electric Corp 半導体記憶装置
JP4220690B2 (ja) 2001-07-05 2009-02-04 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2003242470A (ja) 2002-02-21 2003-08-29 Sony Corp 外部接続機器及びホスト機器
US6683817B2 (en) * 2002-02-21 2004-01-27 Qualcomm, Incorporated Direct memory swapping between NAND flash and SRAM with error correction coding
US7433712B2 (en) * 2003-02-06 2008-10-07 Modu Ltd. Multi-access solid state memory devices and a telephone utilizing such
JP2004318940A (ja) * 2003-04-14 2004-11-11 Renesas Technology Corp 記憶装置
US7424659B2 (en) * 2003-10-31 2008-09-09 Sandisk Il Ltd. System-in-package and method of testing thereof
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US8180931B2 (en) * 2004-01-20 2012-05-15 Super Talent Electronics, Inc. USB-attached-SCSI flash-memory system with additional command, status, and control pipes to a smart-storage switch
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7136973B2 (en) * 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
US7127549B2 (en) * 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
KR100574989B1 (ko) * 2004-11-04 2006-05-02 삼성전자주식회사 데이터 스트로브 버스라인의 효율을 향상시키는메모리장치 및 이를 구비하는 메모리 시스템, 및 데이터스트로브 신호 제어방법
US8041844B2 (en) * 2004-12-29 2011-10-18 Intel Corporation Autodetection of a PCI express device operating at a wireless RF mitigation frequency
EP1851771A2 (en) * 2005-02-11 2007-11-07 M-Systems Flash Disk Pioneers Ltd. Nand flash memory system architecture
TW200712863A (en) 2005-09-23 2007-04-01 Via Tech Inc Method of detecting data error code
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US20070165457A1 (en) 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
TWI285378B (en) 2005-11-18 2007-08-11 Winbond Electronics Corp System and method for controlling flash memory
JP2007161748A (ja) 2005-12-09 2007-06-28 Kagawa Univ 蛍光体微粒子とその製造方法及びそれらを用いた蛍光体被膜
JP4710753B2 (ja) 2006-08-04 2011-06-29 Tdk株式会社 メモリコントローラ及びメモリコントローラを用いたフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
DE602006008480D1 (de) 2006-09-13 2009-09-24 Hynix Semiconductor Inc NAND-Flash-Speichervorrichtung mit ECC-geschütztem reserviertem Bereich für nicht-flüchtige Speicherung von Redundanzdaten
JP2008090433A (ja) 2006-09-29 2008-04-17 Toshiba Corp メモリコントローラ、メモリシステム及びデータ転送方法
JP4582078B2 (ja) 2006-10-18 2010-11-17 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8151163B2 (en) * 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
KR100845529B1 (ko) 2007-01-03 2008-07-10 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
TWI335502B (en) 2007-03-28 2011-01-01 Phison Electronics Corp Flash memory system and method for controlling the same
KR100885923B1 (ko) * 2007-06-19 2009-02-26 삼성전자주식회사 복수의 동작 특성에 따라 동작할 수 있는 반도체 메모리장치 및 그 제어 방법
JP2009003994A (ja) 2007-06-19 2009-01-08 Toshiba Corp 半導体記憶装置
US8131912B2 (en) * 2007-09-27 2012-03-06 Kabushiki Kaisha Toshiba Memory system
DE112008004033T5 (de) 2008-10-09 2012-01-19 Numonyx B.V. Virtualisiertes Ecc Nand
KR101527193B1 (ko) * 2008-12-10 2015-06-08 삼성전자주식회사 반도체 소자 및 그의 셀 블록 배치 방법

Also Published As

Publication number Publication date
US9213603B2 (en) 2015-12-15
DE112008004033T5 (de) 2012-01-19
WO2010041093A8 (en) 2011-05-26
CN102272730A (zh) 2011-12-07
WO2010041093A1 (en) 2010-04-15
JP2012505458A (ja) 2012-03-01
US20160098223A1 (en) 2016-04-07
US8806293B2 (en) 2014-08-12
US9569129B2 (en) 2017-02-14
US20170160973A1 (en) 2017-06-08
US20110307762A1 (en) 2011-12-15
CN102272730B (zh) 2017-05-24
US20140351675A1 (en) 2014-11-27
US9971536B2 (en) 2018-05-15

Similar Documents

Publication Publication Date Title
JP5650116B2 (ja) 仮想化ecc−nand
US10372339B2 (en) Extensible memory hub
US9929967B2 (en) Packet deconstruction/reconstruction and link-control
US8429332B2 (en) Multi-channel hybrid density memory storage device and control method thereof
US20180203605A1 (en) Data transmitting method, memory storage device and memory control circuit unit
US20170294217A1 (en) Decoding method, memory storage device and memory control circuit unit
US10062418B2 (en) Data programming method and memory storage device
US20150205540A1 (en) Memory system including nonvolatile memory devices and operating method
US20170302299A1 (en) Data processing method, memory storage device and memory control circuit unit
US11101822B1 (en) Data writing method, memory control circuit unit and memory storage apparatus
EP3499376B1 (en) Memory system varying operation of memory controller according to internal status of memory device
JP2014238871A (ja) 単一の仮想化されたeccアルゴリズムを提供するコントローラと、このコントローラを含む記憶システム、及びこの記憶システムを管理する方法
US11139044B2 (en) Memory testing method and memory testing system
CN107608817B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN113504880B (zh) 存储器缓冲区管理方法、存储器控制电路单元与存储装置
TWI475378B (zh) 耦合至一主機之儲存系統、與儲存系統中之nand記憶體介接之控制器及管理nand記憶體裝置堆疊之方法
US10102121B1 (en) Memory management method, memory control circuit unit and memory storage device
US11409596B1 (en) Encoding control method, memory storage device and memory control circuit unit
US10936248B2 (en) Data writing method with verifying a part of data, memory controlling circuit unit and memory storage device
US20240004791A1 (en) Controller cache architeture
CN117352037A (zh) 三维存储器及用于三维存储器的ecc方法
CN112799973A (zh) 编码控制方法、存储器存储装置及存储器控制电路单元
CN115857802A (zh) 数据存储方法、存储器存储装置及存储器控制电路单元

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120229

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120229

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120229

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130827

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130827

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130927

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130927

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131017

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20131017

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140801

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140801

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140818

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141112

R150 Certificate of patent or registration of utility model

Ref document number: 5650116

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250