JP2012513647A - 管理型不揮発性メモリのアドレスマッピングのためのアーキテクチャー - Google Patents

管理型不揮発性メモリのアドレスマッピングのためのアーキテクチャー Download PDF

Info

Publication number
JP2012513647A
JP2012513647A JP2011543529A JP2011543529A JP2012513647A JP 2012513647 A JP2012513647 A JP 2012513647A JP 2011543529 A JP2011543529 A JP 2011543529A JP 2011543529 A JP2011543529 A JP 2011543529A JP 2012513647 A JP2012513647 A JP 2012513647A
Authority
JP
Japan
Prior art keywords
package
read
nvm
block
stride
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
JP2011543529A
Other languages
English (en)
Inventor
タホマ トエルクス
ニール ジェイコブ ワクラット
ケニス エル ハーマン
バリー コーレット
バディム フメリニツキー
アンソニー ファイ
ダニエル ジェフリー ポスト
シャオ チオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2012513647A publication Critical patent/JP2012513647A/ja
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
    • 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
    • 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
    • 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
    • G06F12/0607Interleaved addressing
    • 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
    • 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/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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

ここに開示するアーキテクチャーは、アドレスマッピングを使用して、ホストインターフェイスにおけるブロックアドレスを不揮発性メモリ(NVM)装置の内部ブロックアドレスへマップする。ブロックアドレスは、そのブロックアドレスで識別される同時アドレス可能なユニット(CAU)を選択するための内部チップセレクトへとマップされる。ここに開示するアーキテクチャーは、読み取り、書き込み、消去及び状態取得オペレーションのための一般的なNVMコマンドをサポートする。又、このアーキテクチャーは、複数のCAUアーキテクチャーをレバレッジする読み取り及び書き込みオペレーションをサポートするための拡張コマンドセットもサポートする。
【選択図】図2A

Description

本発明は、一般的に、管理型不揮発性メモリのアクセス及び管理に係る。
関連出願:本願は、2008年12月23日に出願された米国プロビジョナル特許出願第61/140,436号、及び2009年11月6日に出願された米国特許出願第12/614,369号の優先権の利益を主張するもので、これらの各出願は、参考としてここにそのまま援用される。
フラッシュメモリは、電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)の一形式である。フラッシュメモリは、不揮発性であり、比較的高密度であるから、ハンドヘルドコンピュータ、移動電話、デジタルカメラ、ポータブル音楽プレーヤにおいて、又、他の記憶手段(例えば、磁気ディスク)では不適切な他の多数の装置において、ファイル及び他の持続性オブジェクトを記憶するのに使用される。
NANDは、ブロック装置、例えば、ハードディスク又はメモリカードのようにアクセスできるフラッシュメモリの一形式である。典型的なブロックサイズは、16KBのブロックサイズに対して各々512バイトの32ページである。各ブロックは、多数のページで構成される。典型的なページサイズは、512バイトである。各ページには、エラー検出及び修正チェック和を記憶するのに使用される多数のバイト(例えば、12−16バイト)が関連している。読み取り及びプログラミングは、ページベースで行われ、消去は、ブロックベースで行われ、そしてブロック内のデータは、順次に書き込むことしかできない。NANDは、通常の装置動作中にフリップすることのあるビットを補償するために、エラー修正コード(ECC)に依存している。消去又はプログラム動作を遂行するときには、NAND装置は、プログラム又は消去に失敗するブロックを検出し、それらブロックを不良ブロックマップにおいて不良とマークすることができる。データは、異なる良好ブロックに書き込むことができ、不良ブロックマップが更新される。
管理型NAND装置は、NANDメモリのエラー修正・検出及びメモリ管理機能を取り扱うために生のNANDをメモリコントローラに結合する。管理型NANDは、マルチメディアメモリカード(MMC)及びセキュアデジタル(SD)カードのような標準型プロセッサインターフェイスをサポートするボールグリッドアレイ(BGA)パッケージ又は他の集積回路(IC)パッケージにおいて商業的に入手できる。管理型NAND装置は、1つ以上のチップセレクト信号を使用してアクセスできる多数のNAND装置又はダイを含むことができる。チップセレクトは、同じバスに接続された多数のチップの中から1つのチップを選択するためにデジタル電子装置に使用される制御ラインである。チップセレクトは、典型的に、ほとんどのICパッケージ上のコマンドピンであり、装置の入力ピンをその装置の内部回路に接続する。チップセレクトピンがインアクティブな状態に保持されると、チップ又は装置は、その入力ピンの状態の変化を無視する。チップセレクトピンがアクティブな状態に保持されると、チップ又は装置は、バス上の唯一のチップであるかのように応答する。
オープンNANDフラッシュインターフェイスワーキンググループ(ONFI)は、異なるベンダーから適合するNAND装置間の相互運用を行えるようにするためのNANDフラッシュチップ用の標準的低レベルインターフェイスを開発した。ONFI仕様書バージョン1.0は、TSOP−48、WSOP−48、LGA−52及びBGA−63パッケージにおけるNANDフラッシュのための標準物理インターフェイス(ピンアウト)、NANDフラッシュチップを読み取り、書き込み及び消去するための標準コマンドセット、及び自己識別のためのメカニズム、を明示する。ONFI仕様書バージョン2.0は、奇数チップセレクト(チップイネーブル又は“CE”とも称される)がチャンネル1に接続されそして偶数CEがチャンネル2に接続された二重チャンネルインターフェイスをサポートする。この物理的インターフェイスは、パッケージ全体でCEが8以下でなければならない。
ONFI仕様は、相互運用を行えるようにするが、現在のONFI仕様は、管理型NAND解決策の利点を完全に取り入れるものではない。
ここに開示するアーキテクチャーは、アドレスマッピングを使用して、ホストインターフェイスにおけるブロックアドレスを不揮発性メモリ(NVM)装置の内部ブロックアドレスへマップする。ブロックアドレスは、ブロックアドレスにより識別される同時アドレス可能なユニット(CAU)を選択するための内部チップセレクトへマップされる。ここに開示するアーキテクチャーは、読み取り、書き込み、消去及び状態取得オペレーションのための一般的不揮発性メモリコマンドをサポートする。又、このアーキテクチャーは、複数のCAUアーキテクチャーをレバレッジする読み取り及び書き込みオペレーションをサポートするための拡張コマンドセットもサポートする。
管理型NVMパッケージに結合されたホストプロセッサを含む規範的メモリシステムのブロック図である。 図2Aのアドレスマッピングを具現化する管理型NVMパッケージのための規範的アドレスマッピングを示す。 図1の規範的なNVMパッケージのブロック図である。 図1の管理型NVMパッケージのための規範的なアドレスマッピングスキームを示す。 不良ブロック置き換えを含む図2Cのアドレスマッピングスキームを示す。 「アドレスを伴う読み取り」コマンドを使用する規範的オペレーションのフローチャートである。 「アドレスを伴う書き込み」コマンドを使用する規範的オペレーションのフローチャートである。 「アドレスを伴う消去」コマンドを使用する規範的オペレーションのフローチャートである。 StrideReadコマンドを使用する規範的オペレーションのフローチャートである。 StrideReadコマンドを使用する規範的オペレーションのフローチャートである。 StrideWriteコマンドを使用する規範的オペレーションのフローチャートである。 図1のNVMパッケージにおけるコマンドキューの使用を示す。 図8に示すコマンドキューにおいてコマンドを再順序付けするための規範的プロセスのフローチャートである。
メモリシステムの概略
図1は、管理型NVMパッケージ104(例えば、管理型NANDパッケージ)に結合されたホストプロセッサ102を含む規範的メモリシステム100のブロック図である。NVMパッケージ104は、複数のNVM装置108(例えば、複数の生のNAND装置)を含むBGAパッケージ又は他のICパッケージである。メモリシステム100は、これに限定されないが、ハンドヘルドコンピュータ、移動電話、デジタルカメラ、ポータブル音楽プレーヤ、玩具、サムドライブ、e−メール装置、及び不揮発性メモリが望まれ又は必要とされる他の装置、を含む種々の装置に使用することができる。ここで使用する「生のNVM(raw NVM)」とは、外部ホストプロセッサによって管理されるメモリ装置又はパッケージであり、そして「管理型NVM(managed NVM)」とは、少なくとも1つの内部メモリ管理機能、例えば、エラー修正、ウェアレベリング、不良ブロック管理、等を含むメモリ装置又はパッケージである。
ある具現化において、NVMパッケージ104は、内部チップセレクト信号を使用して内部チャンネルを経てNVM装置108にアクセスし管理するためのコントローラ106を含むことができる。内部チャンネルは、コントローラ106とNVM装置108との間のデータ経路である。コントローラ106は、メモリ管理機能(例えば、ウェアレベリング、不良ブロック管理)を遂行することができ、そしてデータエラー(例えば、フリップしたビット)を検出して修正するためのエラー修正(ECC)エンジン110を含むことができる。ある具現化において、ECCエンジン10は、コントローラ106におけるハードウェアコンポーネントとして、又はコントローラ106により実行されるソフトウェアコンポーネントとして具現化することができる。ある具現化では、ECCエンジン110は、NVM装置108に配置することができる。データスループットを効率的に管理するパイプライン管理モジュール112を含むことができる。
ある具現化では、ホストプロセッサ102及びNVMパッケージ104は、ホスト(ホストチャンネル)に見える通信チャンネルを経て情報(例えば、制御コマンド、アドレス、データ)を通信することができる。ホストチャンネルは、標準インターフェイス、例えば、生のNANDインターフェイス、或いは二重チャンネルインターフェイス、例えば、ONFI仕様書バージョン2.0に記載されたもの、をサポートすることができる。又、ホストプロセッサ102は、ホストチップイネーブル(CE)信号を与えることもできる。ホストCEは、ホストチャンネルを選択するためにホストプロセッサ102に見える。
規範的なメモリシステム100では、NVMパッケージ104は、CEハイディングをサポートする。CEハイディングは、NVMパッケージ104における内部チャンネルごとに単一のホストCEを使用できるようにし、従って、NVMパッケージ104のインターフェイスをサポートするのに必要な信号の数を減少することができる。図2Aを参照して述べるように、アドレススペース及びアドレスマッピングを使用して、内部チャンネル及びNVM装置108へメモリアクセスをマップすることができる。個々のNVM装置108は、コントローラ106により発生された内部CE信号を使用してイネーブルすることができる。
規範的なアドレスマッピング
図2Aは、管理型NVMのための規範的アドレスマッピングを示す。コントローラ106は、ホストチャンネルを経て受け取ったブロックアドレスを、NVM装置108の内部の特定ブロックアドレスへマップする。アドレスマッピングを容易にするために、コントローラ106は、これに限定されないが、ダイサイズ、ブロックサイズ、ページサイズ、メタデータサイズ(MDS)、run(ラン)、及びstride(ストライド)を含む幾何学的パラメータをホストプロセッサ102に与える。
run及びstrideパラメータは、ホストプロセッサ102がページアドレスの効率的なシーケンスを発生できるようにする。runパラメータは、ホストCE及びアドレスマッピングを使用して同時にアドレスできるNVMパッケージ104内のCAUの数を識別する。CAUは、別のCAUと同時に書き込み又は読み取りできる単一のホストチャンネルからアクセス可能なNVM装置108の一部分である。又、CAUは、NVM装置108全体でもよい。strideパラメータは、CAU内のベンダー特有オペレーションコマンドに対するブロックの数を識別する。
図2Aに示された規範的なブロックマップにおいて、NVMパッケージ104は、2のrun(即ち、2つのCAU)及び4のstride(即ち、CAU当たり4つのブロック)を有し、ホストプロセッサ102が8つのブロック:b0、b1、b2、b3、b4、b5、b6、b7のsliceを発生できるようにする。従って、sliceは、総計がrunにstrideを乗算したものであるブロックのセットである。望ましいアプリケーション又はメモリアーキテクチャーに基づいて異なるrun及びstride値を有するNVMパッケージを製造することができる。図2A及び2Bでは、異なるCAUに属するブロックを目で見て区別するためにブロックの識別子がイタリック体にされていることに注意されたい。
MDSパラメータは、メタデータを考慮して各ページサイズに関連したバイトの数を識別する。ページサイズは、不揮発性メモリのページのデータエリアである。完全ページサイズ(PPS)は、ページサイズ+MDSに等しいバイトの数である。生のページサイズ(RPS)は、不揮発性メモリの物理的ページのサイズである。
アドレスマッピングを具現化する規範的なNVMパッケージ
図2Bは、図2Aのアドレスマッピングを具現化する図1の規範的な管理型NVMパッケージ104のブロック図である。NVMパッケージ104は、ホストチャンネルを有するホストインターフェイス、コマンドラッチイネーブル(CLE)入力、アドレスラッチイネーブル(ALE)入力、チップイネーブル(CE)入力、及びレディ/ビジー(R/B)入力を備えている。ホストインターフェイスは、より多くの又はより少ない入力を含むことができる。この例では、ホストインターフェイスは、ホストプロセッサ102から論理的アドレスを受け取る。論理的アドレスは、NVMアドレッシングの典型であるように、次のフィールド[ブロックアドレス ページアドレス オフセット]を表すビットを含むことができる。
ある具現化では、コントローラ106は、ホストチャンネルから論理的アドレスを読み取り、そして図2Aのアドレスマッピングを使用してブロックアドレスを特定の内部ブロックアドレスへマップする。例えば、論理的アドレスが[0、0、0]の場合には、ブロックアドレスが0である。ブロックアドレスは、NVM装置108a(CE0)に対する内部チップセレクトへマップされる。ブロックアドレス、ページアドレス及びオフセットは、選択されたCAUからデータのPPSにアクセスするのに使用される物理的アドレスを形成する。この例では、CAUは、NVM装置108bの一部分を含むCAU202に比して、物理的NVM装置108a全体を含む。従って、ブロックアドレスは、次の2つの機能を遂行する。1)ブロックアドレスのビットをCAU又はNVM装置の内部CEへマッピングすることにより、物理的NVM装置又は物理的NVM装置内のCAUの選択を容易にし、そして2)選択されたCAU又はNVM装置内のブロックにアクセスするための物理的アドレスを与える。
この例では、偶数ブロックは、NVM装置108aへマップされ、そして奇数ブロックは、NVM装置108b内のCAU202へマップされる。コントローラ106は、それが偶数のブロックアドレスを検出すると、NVM装置108aに対して内部チップイネーブルCE0をアクチベートし、又、コントローラ106は、それが奇数のブロックアドレスを検出すると、NVM装置108bに対して内部チップイネーブルCE1をアクチベートする。このアドレスマッピングスキームは、管理型NVMパッケージにおける希望の数のCAU及び/又はNVM装置まで拡張することができる。ある具現化では、ブロックアドレスの最上位ビットを使用して、内部CEを選択することができ、そして残りのブロックアドレスビット又は全ブロックアドレスをページアドレス及びオフセットに結合して、物理的アドレスでブロックにアクセスし、オペレーションを遂行することができる。ある具現化では、デコーディングロジックをNVMパッケージ又はコントローラ106に追加して、アクチベートすべき内部CEを選択する目的でブロックアドレスをデコードすることができる。
上述したアドレスマッピングスキームの効果は、NVMパッケージ104のホストインターフェイスを簡単化することができ(ピン数を減少でき)、それでも、読み取り、書き込み、消去、及び状態取得オペレーションのための一般的な生のNVMコマンド(例えば、生のNANDコマンド)をサポートできることである。更に、複数のCAUアーキテクチャーをレバレッジするように拡張コマンドを使用することができる。NVMパッケージ104は、従来の生のNVMアーキテクチャー(例えば、生のNANDアーキテクチャー)に使用されるインターリーブコマンドと同様に同時読み取り及び書き込みオペレーションをサポートする。
ある具現化では、エンジン110は、データに対してエラー修正を遂行し、そしてホストインターフェイスを通してホストプロセッサへ状態を送る。状態は、オペレーションが失敗したかどうかホストプロセッサに通知するもので、ホストプロセッサが異なるCAU又はNVM装置にアクセスするようブロックアドレスを調整できるようにする。例えば、特定のCAUに対するオペレーションに応答して非常に多数のエラーが生じた場合には、ホストプロセッサは、欠陥のあるNVM装置に対する内部CEをアクチベートしないようにブロックアドレスを変更することができる。
図2Cは、図1の管理型NVMパッケージ104のための規範的なアドレスマッピングスキームを示す。特に、このマッピングは、複数のダイを含む管理型NAND装置に使用することができ、各ダイは、潜在的に、複数の平面を含むことができる。ある具現化において、アドレスマッピングは、同時アドレス可能なユニット(CAU)において動作する。CAUは、NVMパッケージの他のCAUと同時に又はそれと並列に読み取られ、プログラムされ又は消去される単一のホストチャンネルからアクセス可能な物理的記憶装置の一部分である。CAUは、例えば、単一平面又は単一ダイである。CAUのサイズは、CAUにおける消去可能なブロックの数である。
規範的なメモリアーキテクチャーを使用してマッピングを説明する。この規範的なアーキテクチャーでは、ブロックサイズは、消去可能なブロックにおけるページ数として定義される。ある具現化では、4キロバイトのデータごとに16バイトのメタデータが利用できる。他のメモリアーキテクチャーも考えられる。例えば、メタデータには、より多くの又はより少ないバイトを割り当てることができる。
図2Cに示したアドレスマッピングスキームは、生のNANDプロトコルを使用して、最適な性能を可能にするNANDブロック及び付加的なコマンドを読み取り/プログラム/消去できるようにする。NVMパッケージ104は、NANDのデータ信頼性を管理するためのECCエンジン(例えば、ECCエンジン110)を備えている。従って、ホストコントローラ102は、ECCエンジン110を含んだり、さもなければ、信頼性目的でデータを処理したりする必要はない。
NVMパッケージ104は、CAUを、他のCAUと同様に又は並列にアクセスできる(例えば、NANDメモリセルから内部レジスタへデータを移動できる)エリアとして定義する。この規範的なアーキテクチャーでは、全てのCAUが同じ数のブロックを含むと仮定する。他の具現化では、CAUは、異なる数のブロックを有することができる。以下のテーブルIは、CAUのページにアクセスするための規範的な生のアドレスフォーマットを示す。
テーブルI−規範的な生のアドレスフォーマット
Figure 2012513647
テーブルIを参照すれば、規範的なnビット(例えば、24ビット)の生のアドレスは、NAND装置のコントローラへ次のフォーマット即ち[CAU:ブロック:ページ]で送ることができる。CAUは、ダイ又は平面を表す番号(例えば、整数)である。ブロックは、CAU番号で識別されたCAUにおけるブロックオフセットであり、そしてページは、ブロックにより識別されたブロックにおけるページオフセットである。例えば、ブロック当たり128のページ、CAU当たり8192個のブロック、及び6個のCAUを伴う装置では、Xは7(27=128)であり、Yは、13(213=8192)であり、そしてZは、3(22<6<23)である。
図2Cに示した規範的なNVMパッケージ104は、2つのNANDダイ204a、204bを備え、そして各ダイは、2つの平面を有する。例えば、ダイ204aは、平面206a、206bを含む。そして、ダイ204bは、平面206c、206dを含む。この例では、各平面は、CAUであり、そして各CAUは、2048個のマルチレベルセル(MLC)ブロックを有し、ブロック当たり128のページがある。プログラム及び消去オペレーションは、ブロック(各CAUからのブロック)のストライドで遂行することができる。ストライド(stride)とは、異なるCAUから各々到来するブロックのアレイとして定義される。ここに示す例では、“ストライド0”は、CAU0−3の各々からのブロック0を定義し、“ストライド1”は、CAU0−3の各々からのブロック1を定義し、“ストライド2”は、CAU0−3の各々からのブロック2を定義し、等々となる。
NVMパッケージは、制御バス208及びアドレス/データバス210を通してCAUと通信するNVMコントローラ202を含む。オペレーション中に、NVMコントローラ202は、ホストコントローラ(図示せず)からコマンドを受け取り、そのコマンドに応答して、制御バス208に制御信号を、そしてアドレス/データバス210にアドレス又はデータをアサートし、1つ以上のCAUにおいてオペレーション(例えば、読み取り、プログラム又は消去オペレーション)を遂行する。ある具現化では、コマンドは、図2Cを参照して述べるように、[CAU:ブロック:ページ]の形態を有する生のアドレスを含む。
図2Dは、不良ブロック置き換えを含む図2Cのアドレスマッピングスキームを示す。この例では、ストライドアドレスは、3つのCAUを有するNVMパッケージ104に対してホストコントローラ102により発生され、CAUの1つは、不良ブロックをストライドブロックオフセットに保持する。“ストライド4”アドレスは、通常、CAU0:ブロック4、CAU1:ブロック4、及びCAU2:ブロック4にアクセスする。しかしながら、この例では、不良ブロックCAU1:ブロック4は、CAU1:ブロック2000と置き換えられる。
規範的なコマンドセット
NVMパッケージ104は、透過的モードをサポートすることができる。透過的モードは、ECCなしにメモリアレイにアクセスできるようにし、そしてコントローラ106の性能を評価するのに使用できる。又、NVMパッケージ104は、読み取り、書き込み、及び状態取得オペレーションのための一般的に生のNVMコマンドもサポートする。テーブル1−3は、規範的な読み取り、書き込み及びコミットオペレーションを示す。従来の生のNVMと同様に、NVM装置は、書き込みコマンドが発生される前にレディにならねばならない。レディであることは、テーブル4を参照して述べるように、状態読み取りオペレーションを使用して決定することができる。
テーブル1−規範的読み取りオペレーション
Figure 2012513647
テーブル2−規範的書き込みオペレーション(書き込みモード)
Figure 2012513647
テーブル3−規範的書き込みオペレーション(コミットモード)
Figure 2012513647
テーブル4−規範的状態読み取りオペレーション
Figure 2012513647
上述したオペレーションに加えて、コントローラ106は、種々の他のコマンドをサポートすることができる。「ページパラメータ読み取り」コマンドは、NVMパッケージ104から幾何学的パラメータを返送する。幾何学的パラメータの幾つかの例は、ダイサイズ、ブロックサイズ、ページサイズ、MDS、ラン及びストライドを含むが、これに限定されない。「中止」コマンドは、コントローラ106が現在オペレーションを監視して、進行中のその後のストライドオペレーションを停止するようにさせる。「リセット」コマンドは、現在オペレーションを停止し、変更されつつあるメモリセルのコンテンツを無効にさせる。コントローラ106のコマンドレジスタは、次のコマンドの準備においてクリアされる。「読み取りID」コマンドは、製品識別を返送する。「読み取りタイミング」コマンドは、書き込み及び消去コマンドのための設定、保持、及び遅延時間を返送する。「読み取り装置パラメータ」コマンドは、仕様サポート、装置バージョン及びファームウェアバージョンを含むNVMパッケージ104のための特定識別を返送する。
規範的なコマンドセットを以下のテーブル5に示す。
テーブル5−規範的なコマンドセット
Figure 2012513647
規範的な読み取り、書き込み及び消去オペレーション
NVMパッケージ104における複数CAUアーキテクチャーをレバレッジするため、NVMパッケージ104は、拡張コマンドセットを使用して全ての又は幾つかのCAUへのアクセスをサポートすることができる。NVMパッケージ104は、全てのアドレスがPPSに指定される次の拡張コマンドをサポートすることができる。即ち、「アドレスを伴う読み取り」、「アドレスを伴う書き込み」、「アドレスを伴う消去」、及び「アドレスを伴う状態」。図3ないし7は、CAUを横切ってインターリーブがどこで生じるか指示する。インターリーブが生じるポイント(「インターリーブポイント」と称される)が丸で示されている。各オペレーションの出発点及び終了点は、各々、インターリーブポイントを表すので、白丸及び斜線入りの丸として表れ、そしてインターリーブが生じる全ての中間点は、縞模様入りの丸で示されている。図3ないし7は、NVMパッケージが一連のオペレーションの後に完全なレディ状態になると仮定する。
図3は、アドレスを伴う読み取りコマンドを使用する規範的オペレーション300のフローチャートである。ステップ302において、ホストプロセッサは、アドレスを伴う読み取りコマンドをNVMパッケージへ発生する。ステップ304において、ホストプロセッサは、アドレスを読み取る準備ができたことを指示する状態をNVMパッケージが与えるまでアドレス状態シーケンスの待機を遂行する。ステップ306において、ホストプロセッサは、アドレスを伴う確認コマンドをNVMパッケージへ発生する。ステップ308において、NVMパッケージのコントローラは、ホストチャンネルを経てホストプロセッサへPPSバイトのデータを転送する。ECCエンジン(例えば、ECCエンジン110)を使用してNVMパッケージのバイトにエラー修正が適用される。アドレスを伴うこの規範的読み取りコマンドのオペレーションでは、インターリーブポイントが、オペレーションの始めと終わり、及びオペレーションの中間ステップ302と304との間、及び中間ステップ304と306との間に生じる。
2つのCAU(ラン=2及びストライド=1)を横切る単一のページに対するアドレスを伴う規範的読み取りコマンドのオペレーションは、次の通りである。
(Read)[ブロック0 ページ0]
(Read)[ブロック1 ページ0]
(GetPageStatus)[ブロック0 ページ0]W4R{データ+メタデータ}
(GetPageStatus)[ブロック1 ページ0]W4R{データ+メタデータ}
図4は、アドレスを伴う書き込みコマンドを使用する規範的オペレーション400のフローチャートである。ステップ402において、ホストプロセッサは、アドレスを伴う書き込みコマンドを発生する。ステップ404において、ホストプロセッサは、ホストチャンネルを経てNVMパッケージのコントローラへPPSバイトのデータを転送する。ECCエンジンを使用してバイトにエラー修正が適用される。ステップ406において、ホストプロセッサは、アドレスを伴うコミットコマンドを発生し、これは、CAUを行先とする非コミット書き込みを、アドレスに対応するメモリアレイにコミットする。対応するECCシンドロームもコミットされる。ステップ408において、ホストプロセッサは、データがアドレスに書き込まれたことを指示する状態をNVMパッケージが与えるまでアドレスシーケンスを伴う状態の待機を遂行する。アドレスを伴うこの規範的書き込みコマンドのオペレーションでは、インターリーブポイントが、オペレーションの始めと終わり、及びオペレーションの中間ステップ406と408との間に生じる。
2つのCAU(ラン=2及びストライド=1)を横切る単一のページに対するアドレスを伴う規範的書き込みコマンドのオペレーションは、次の通りである。
(StrideWrite)[ブロック0 ページ0]<データ+メタデータ>
(StrideWrite)[ブロック1 ページ0]<データ+メタデータ>
(GetPageStatus)[ブロック0 ページ0]W4R{状態}
(GetPageStatus)[ブロック1 ページ0]W4R{状態}
(Commit)[ブロック0 ページ0]
(Commit)[ブロック1 ページ0]
図5は、アドレスを伴う消去コマンドを使用する規範的オペレーション500のフローチャートである。ステップ502において、ホストプロセッサは、アドレスを伴う消去コマンドを発生する。ステップ504において、ホストプロセッサは、アドレスを消去する準備ができたことを指示する状態をNVMパッケージが与えるまでアドレスを伴う状態の待機を遂行する。アドレスを伴うこの規範的消去コマンドのオペレーションでは、インターリーブポイントが、オペレーションの始めと終わり、及びオペレーションの中間ステップ502と504との間に生じる。
規範的なストライドオペレーション
ベンダー特有のコマンドをレバレッジするために、NVMパッケージは、CAU内の複数ページオペレーションをサポートする。より特定すれば、NVMパッケージは、StrideRead及びStrideWriteコマンドをサポートする。
図6A及び6Bは、アドレスを伴うStrideReadコマンドのオペレーションを使用する規範的オペレーション600のフローチャートである。図6Aのステップ602を参照すれば、NVM装置のストライドにおけるブロック数Sと、読み取られるべきブロック当たりのページ数Nとが与えられると、読み取られるべき残りのページ数Pは、SとNの積に等しくセットすることができる。ホストプロセッサは、ステップ604において、カウンタIを0に等しくセットすることにより次のストライドを開始する。ステップ606において、PがSと比較される。P=0の場合には、オペレーション600が終了する。P>Sの場合には、ステップ608において、ホストプロセッサは、アドレスを伴うStrideReadコマンドを発生する。P≦Sの場合には、ステップ610において、ホストプロセッサは、アドレスを伴うLastStrideReadコマンドを発生する。
ステップ612において、カウンタIが1だけインクリメントされる。ステップ614において、IがSと比較される。I<Sの場合には、オペレーション600がステップ606へ復帰する。I=Sの場合には、オペレーション600が、図6Bを参照して述べるように、ストライドにおけるページの転送を開始する。
図6Bのステップ616を参照すれば、カウンタTがゼロに等しくセットされる。ステップ618において、ホストプロセッサは、アドレスを読み取る準備ができたことを指示する状態をNVMパッケージが与えるまでアドレスシーケンスを伴う状態の待機を遂行する。ステップ620において、ホストプロセッサは、アドレスを伴う確認コマンドを発生する。ステップ622において、NVMパッケージは、PPSバイトのデータをホストプロセッサへ転送する。ステップ624において、カウンタTが1だけインクリメントされる。ステップ626において、カウンタTがSと比較される。T<Sの場合には、オペレーション600がステップ618へ復帰する。T=Sの場合には、ステップ628において、読み取られるべき残りのページ数PがSだけデクリメントされ、オペレーション600は、ステップ604へ復帰する。
2つのCAU及び4つのストライド(ラン=2及びストライド=4)を横切って分散される8つのページの、アドレスを伴う規範的なStrideReadのオペレーションは、次の通りである。
(StrideRead)[ブロック0 ページ0]
(StrideRead)[ブロック1 ページ0]
(StrideRead)[ブロック2 ページ0]
(StrideRead)[ブロック3 ページ0]
(StrideRead)[ブロック4 ページ0]
(StrideRead)[ブロック5 ページ0]
(LastStrideRead)[ブロック6 ページ0]
(LastStrideRead)[ブロック7 ページ0]
(GetPageStatus)[ブロック0 ページ0]W4R{データ+メタデータ}
(GetPageStatus)[ブロック1 ページ0]W4R{データ+メタデータ}
(GetPageStatus)[ブロック2 ページ0]W4R{データ+メタデータ}
(GetPageStatus)[ブロック3 ページ0]W4R{データ+メタデータ}
(GetPageStatus)[ブロック4 ページ0]W4R{データ+メタデータ}
(GetPageStatus)[ブロック5 ページ0]W4R{データ+メタデータ}
(GetPageStatus)[ブロック6 ページ0]W4R{データ+メタデータ}
(GetPageStatus)[ブロック7 ページ0]W4R{データ+メタデータ}
図7は、アドレスを伴うStrideWriteコマンドのオペレーションを使用する規範的なオペレーション700のフローチャートである。ステップ702を参照すれば、NVM装置ストライドにおけるブロック数S、及び書き込まれるべきブロック当たりのページ数Nが与えられると、書き込まれるべき残りのページ数Pは、SとNの積に等しくセットすることができる。ステップ704では、ホストプロセッサがPをSと比較する。P=0の場合には、オペレーション700が終了となる。P>Sの場合には、ステップ706において、ホストプロセッサは、アドレスを伴うStrideWriteコマンドを発生する。P≦Sの場合には、ステップ708において、ホストプロセッサは、アドレスを伴うLastStrideWriteコマンドを発生する。
ステップ710において、ホストプロセッサは、PPSバイトのデータをNVMパッケージへ転送する。ステップ712において、ホストプロセッサは、メモリアレイへの書き込みをコミットするためのアドレスを伴うコミットコマンドを発生する。ステップ714において、ホストプロセッサは、データがメモリへコミットされたことを指示する状態をNVMパッケージが与えるまでアドレスを伴う状態の待機を遂行する。ステップ716において、書き込まれるべき残りのページ数が1だけデクリメントされ、オペレーション700は、ステップ704へ復帰する。
2つのCAU及び4つのストライド(ラン=2及びストライド=4)を横切って分散される8つのページの、アドレスを伴う規範的なStrideWriteのオペレーションは、次の通りである。
(StrideWrite)[ブロック0 ページ0]<データ+メタデータ>
(StrideWrite)[ブロック1 ページ0]<データ+メタデータ>
(GetPageStatus)[ブロック0 ページ0]W4R{状態}
(StrideWrite)[ブロック2 ページ0]<データ+メタデータ>
(GetPageStatus)[ブロック1 ページ0]W4R{状態}
(StrideWrite)[ブロック3 ページ0]<データ+メタデータ>
(GetPageStatus)[ブロック2 ページ0]W4R{状態}
(StrideWrite)[ブロック4 ページ0]<データ+メタデータ>
(GetPageStatus)[ブロック3 ページ0]W4R{状態}
(StrideWrite)[ブロック5 ページ0]<データ+メタデータ>
(GetPageStatus)[ブロック4 ページ0]W4R{状態}
(LastStrideWrite)[ブロック6 ページ1]<データ+メタデータ>
(GetPageStatus)[ブロック5 ページ0]W4R{状態}
(LastStrideWrite)[ブロック7 ページ1]<データ+メタデータ>
(GetPageStatus)[ブロック6 ページ0]W4R{状態}
(GetPageStatus)[ブロック7 ページ0]W4R{状態}
規範的なキュー構成
図8は、NVMパッケージにおけるコマンドキューの使用を示す。ある具現化において、NVMパッケージ800は、コントローラによりアクセスできる1つ以上のキュー804を含むことができる。キューは、FIFOキューである。ホストコントローラによって受け取られたコマンドは、キュー804に記憶することができる。図示された例では、3つのキューがある。読み取り、プログラム及び消去コマンドの各々に対して1つのキューがある。トリガー事象に応答して、コントローラ802は、メモリオペレーション中の性能を最適化するために、1つ以上のキュー804における1つ以上のコマンドを再順序付けすることができる。例えば、1つのトリガー事象は、キュー(及びバッファ)内の最上位アイテムが、別のオペレーションでビジーである平面又はCAUを行先とする場合のものである。
図9は、図8に示すコマンドキューにおいてコマンドを再順序付けするための規範的プロセス900のフローチャートである。ある具現化において、プロセス900は、ホストコントローラからのコマンドを受け取ることにより開始される(902)。コマンドは、不揮発性メモリにおいてオペレーションを開始するためのものである。コマンドは、1つ以上のキューに記憶される(904)。例えば、3つの別々のキューが、読み取り、プログラム及び消去コマンドを記憶することができる。これらのコマンドは、トリガー事象に応答してコントローラにより不揮発性メモリ装置において再順序付けされる(906)。
本書は、多数の細目を含むが、本発明の範囲を限定するためのものではなく、特定の実施形態の特徴を例示するものに過ぎない。個別の実施形態において本書に述べられた幾つかの特徴を、1つの実施形態において組み合わせて具現化することもできる。逆に、1つの実施形態において述べられた種々の特徴を複数の実施形態において個別に、又は適当なサブ組み合わせで、具現化することもできる。更に、それらの特徴は、ある組み合わせで作用するものとして述べられ、又、そのように最初に請求の範囲に述べられるが、請求の範囲に述べた組み合わせからの1つ以上の特徴を、ある場合には、組み合わせから削除することもできるし、又、請求の範囲に述べた組み合わせをサブ組み合わせ又はサブ組み合わせの変形へと導くこともできる。
同様に、オペレーションは特定の順序で示されたが、望ましい結果を得るために、そのようなオペレーションが図示された特定の順序又は逐次の順序で遂行され、又、図示された全てのオペレーションが遂行されることが要求されると理解すべきではない。ある状況においては、マルチタスク及び並列処理が効果的である。更に、以上の実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてそのような分離が要求されると理解すべきではなく、又、ここに述べるプログラムコンポーネント及びシステムは、一般的に、1つのソフトウェア製品において一緒に一体化することもできるし、複数のソフトウェア製品にパッケージすることもできると理解すべきである。
かくて、特定の実施形態が説明されたが、特許請求の範囲内で他の実施形態も考えられる。
100:メモリシステム
102:ホストプロセッサ
104:管理型NVMパッケージ(管理型NANDパッケージ)
106:コントローラ
108:NVM装置
110:エラー修正(ECC)エンジン
202:NVMコントローラ
204a、204b:NANDダイ
206a、206b、206c、206d:平面
208:制御バス
210:アドレス/データバス

Claims (26)

  1. ブロックアドレスを受け取るように動作できるインターフェイスと、
    複数のブロックを各々含む複数の同時アクセスユニットと、
    前記インターフェイス及び複数の同時アドレス可能なユニットに結合されたプロセッサであって、ブロックアドレスを、そのブロックアドレスで識別された前記複数の同時アドレス可能なユニットの1つにおけるブロックへとマッピングするように動作できるプロセッサと、
    を備えた不揮発性メモリ(NVM)パッケージ。
  2. ホストインターフェイスを更に備え、このホストインターフェイスは、これに結合されたホストプロセッサからホストチップイネーブル信号を受け取り、前記プロセッサは、このホストチップイネーブル信号を、1つの前記同時アドレス可能なユニットの内部チップイネーブル信号へとマッピングするように動作でき、この内部チップイネーブル信号は、前記同時アドレス可能なユニットをアクチベートするためのものである、請求項1に記載のパッケージ。
  3. 前記マッピングは、ラン及びストライドパラメータにより定義されたマップを使用して遂行され、前記ランパラメータは、前記ホストチップイネーブル信号を使用してアクセスできる同時アドレス可能なユニットの数であり、前記ストライドパラメータは、同時アドレス可能なユニット内のオペレーションコマンドに対するブロックの数である、請求項2に記載のパッケージ。
  4. 前記プロセッサは、読み取り又は書き込みオペレーションのためのコマンドを前記インターフェイスから受け取り、そのオペレーションは、1つ以上の同時アドレス可能なユニットにおいて同時アトミックトランザクションを遂行する読み取り又は書き込みコマンドのシーケンスである、請求項1に記載のパッケージ。
  5. 前記同時アドレス可能なユニットから読み取られ又はそこに書き込まれるデータの量は、前記同時アドレス可能なユニットに対するストライドパラメータNと、ページサイズに等しいバイト数+メタデータを考慮したページに関連したバイト数と、の積に等しく、但し、Nは、読み取り又は書き込みされるべきページ数を表す正の整数であり、そしてストライドは、前記同時アドレス可能なユニット内のオペレーションコマンドに対するブロック数である、請求項4に記載のパッケージ。
  6. 同時アドレス可能なユニットから読み取られ又はそこに書き込まれるデータのブロックにエラー修正を適用するためのエラー修正エンジンを更に備えた、請求項1に記載のパッケージ。
  7. 1つ以上の同時アドレス可能なユニットにエラー検出及び修正エンジンが含まれる、請求項6に記載のパッケージ。
  8. 前記同時アドレス可能なユニットに対するスループットを管理するためのパイプライン管理エンジンを更に備えた、請求項1に記載のパッケージ。
  9. 前記NVMパッケージは、管理型NANDである、請求項1に記載のパッケージ。
  10. 前記プロセッサは、2つ以上の同時アドレス可能なユニットにおいて同時読み取り又は書き込みオペレーションを遂行する、請求項1に記載のパッケージ。
  11. ホストプロセッサに結合された不揮発性メモリ(NVM)パッケージにより遂行される方法において、
    ホストプロセッサからブロックアドレスを受け取る段階と、
    ブロックアドレスを、そのブロックアドレスで識別された複数の同時アドレス可能なユニットの1つにおけるブロックへとマッピングする段階と、
    を備えた方法。
  12. 前記ホストプロセッサからホストチップイネーブル信号を受け取る段階と、
    このホストチップイネーブル信号を、1つの前記同時アドレス可能なユニットの内部チップイネーブル信号へとマッピングする段階と、
    その内部チップイネーブル信号をアクチベートする段階と、
    を更に備えた請求項11に記載の方法。
  13. 前記マッピングは、ラン及びストライドパラメータにより定義されたマップを使用して遂行され、前記ランパラメータは、前記ホストチップイネーブル信号を使用してアクセスできる同時アドレス可能なユニットの数であり、前記ストライドパラメータは、同時アドレス可能なユニット内のオペレーションコマンドに対するブロック数である、請求項12に記載の方法。
  14. 読み取り又は書き込みオペレーションのためのコマンドを受け取る段階と、
    そのコマンドに基づき1つ以上の同時アドレス可能なユニットにおいて1つ以上の同時アトミックトランザクションを遂行する段階と、
    を更に備えた請求項11に記載の方法。
  15. 前記同時アドレス可能なユニットから読み取られ又はそこに書き込まれるデータの量は、前記同時アドレス可能なユニットに対するストライドパラメータNと、ページサイズに等しいバイト数+メタデータを考慮したページに関連したバイト数と、の積に等しく、但し、Nは、読み取り又は書き込みされるべきページ数を表す正の整数であり、そしてストライドは、前記同時アドレス可能なユニット内のオペレーションコマンドに対するブロック数である、請求項14に記載の方法。
  16. 同時アドレス可能なユニットから読み取られ又はそこに書き込まれるデータのブロックにエラー修正を適用する段階を更に備えた、請求項11に記載の方法。
  17. ブロックアドレスを受け取るように動作できるインターフェイスであって、このインターフェイスに結合されたホストプロセッサから第1のチップイネーブル信号も受け取るインターフェイスと、
    複数のブロックを各々含む複数の同時アクセスユニットと、
    前記インターフェイス及び複数の同時アドレス可能なユニットに結合されたプロセッサであって、前記ホストプロセッサからのチップイネーブル信号に応答して、第1の内部チップセレクトイネーブル信号を使用して第1の同時アドレス可能なユニットをアクチベートし、第2の内部チップセレクトイネーブル信号を使用して第2の同時アドレス可能なユニットをアクチベートし、ブロックアドレスを、前記アクチベートされた第1及び第2の同時アドレス可能なユニットにおけるブロックへマッピングし、そして前記アクチベートされた第1及び第2の同時アドレス可能なユニットにおけるブロックに対して読み取り又は書き込みオペレーションを同時に遂行するための一連のコマンドを実行するプロセッサと、
    を備えた不揮発性メモリ(NVM)パッケージ。
  18. 前記NVMパッケージは、管理型NANDパッケージである、請求項17に記載のパッケージ。
  19. 不揮発性メモリ(NVM)パッケージに記憶されたデータに対して動作するシステムにおいて、
    複数の同時アドレス可能なユニットを含むNVMパッケージにパラメータ要求を送信しそしてランパラメータ及びストライドパラメータを受信するためのインターフェイスであって、前記ランパラメータは、ホストプロセッサにより与えられる単一のチップイネーブル信号を使用してアクセスできるNVMパッケージにおける同時アドレス可能なユニットの数を指示し、そして前記ストライドパラメータは、同時アドレス可能なユニット内のオペレーションコマンドに対するブロック数を指示するものであるインターフェイスと、
    前記インターフェイスに結合されたプロセッサであって、1つ以上の同時アドレス可能なユニットにおいてアトミックトランザクションを同時に遂行するための一連のコマンドを前記NVMパッケージへ送信するように動作でき、その一連のコマンドは、前記ラン及びストライドパラメータに基づいて前記ホストプロセッサにより発生されるアドレスを含むものであるプロセッサと、
    を備えたシステム。
  20. 前記プロセッサは、前記NVMパッケージへ書き込みコマンドと共にデータを送信するように動作でき、データのサイズは、Nと、ストライドと、ページサイズに等しいバイト数+メタデータを考慮した各ページサイズに関連したバイト数と、の積に等しく、但し、Nは、書き込まれるべきページ数を表す正の整数である、請求項19に記載のシステム。
  21. 前記プロセッサは、前記NVMパッケージへ読み取りコマンドを送信するように動作でき、読み取られるべきデータのサイズは、Nと、ストライドと、ページサイズに等しいバイト数+メタデータを考慮した各ページサイズに関連したバイト数と、の積に等しく、但し、Nは、読み取られるべきページ数を表す正の整数である、請求項19に記載のシステム。
  22. 不揮発性メモリ(NVM)パッケージに結合されたホストプロセッサにより遂行される方法において、
    複数の同時アドレス可能なユニットを含むNVMパッケージにパラメータ要求を送信する段階と、
    前記要求に応答して、ランパラメータ及びストライドパラメータを受け取る段階であって、前記ランパラメータは、前記ホストプロセッサにより与えられる単一のチップイネーブル信号を使用してアクセスできるNVMパッケージにおける同時アドレス可能なユニットの数であり、前記ストライドパラメータは、同時アドレス可能なユニット内のオペレーションコマンドに対するブロックの数である段階と、
    1つ以上の同時アドレス可能なユニットにおいてアトミックトランザクションを同時に遂行するための一連のコマンドを前記NVMパッケージへ送信する段階であって、その一連のコマンドは、前記ラン及びストライドパラメータに基づいて前記ホストプロセッサにより発生されるアドレスを含むものである段階と、
    を備えた方法。
  23. 前記NVMパッケージへ書き込みコマンドと共にデータを送信する段階を更に備え、そのデータのサイズは、Nと、ストライドと、ページサイズに等しいバイト数+メタデータを考慮した各ページサイズに関連したバイト数と、の積に等しく、但し、Nは、書き込まれるべきページ数を表す正の整数である、請求項22に記載の方法。
  24. 前記NVMパッケージへ読み取りコマンドを送信する段階を更に備え、読み取られるべきデータのサイズは、Nと、ストライドと、ページサイズに等しいバイト数+メタデータを考慮した各ページサイズに関連したバイト数と、の積に等しく、但し、Nは、読み取られるべきページ数を表す正の整数である、請求項22に記載の方法。
  25. 埋め込み型の不揮発性メモリ装置により遂行される方法において、
    不揮発性メモリにおけるオペレーションを要求するホストコントローラからのコマンドを受け取る段階と、
    前記コマンドを不揮発性メモリ装置のキューに記憶する段階と、
    トリガー事象に応答して前記キュー内で前記コマンドを再順序付けする段階と、
    を備えた方法。
  26. 埋め込み型の不揮発性メモリ装置により遂行される方法において、
    前記不揮発性メモリにおける読み取りオペレーションを要求するホストコントローラからの読み取りコマンドを受け取る段階と、
    前記読み取りコマンドを第1のキューに記憶する段階と、
    前記不揮発性メモリにおけるプログラムオペレーションを要求する前記ホストコントローラからのプログラムコマンドを受け取る段階と、
    前記プログラムコマンドを第2のキューに記憶する段階と、
    前記不揮発性メモリにおける消去オペレーションを要求する前記ホストコントローラからの消去コマンドを受け取る段階と、
    前記消去コマンドを第3のキューに記憶する段階と、
    前記読み取り、プログラム又は消去コマンドの1つ以上をそれらの各キューにおいて再順序付けする段階と、
    を備えた方法。
JP2011543529A 2008-12-23 2009-11-24 管理型不揮発性メモリのアドレスマッピングのためのアーキテクチャー Pending JP2012513647A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14043608P 2008-12-23 2008-12-23
US61/140,436 2008-12-23
US12/614,369 2009-11-06
US12/614,369 US8370603B2 (en) 2008-12-23 2009-11-06 Architecture for address mapping of managed non-volatile memory
PCT/US2009/065804 WO2010074876A1 (en) 2008-12-23 2009-11-24 Architecture for address mapping of managed non-volatile memory

Publications (1)

Publication Number Publication Date
JP2012513647A true JP2012513647A (ja) 2012-06-14

Family

ID=42267765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011543529A Pending JP2012513647A (ja) 2008-12-23 2009-11-24 管理型不揮発性メモリのアドレスマッピングのためのアーキテクチャー

Country Status (7)

Country Link
US (2) US8370603B2 (ja)
EP (1) EP2380083A1 (ja)
JP (1) JP2012513647A (ja)
KR (1) KR101417236B1 (ja)
CN (1) CN102326154B (ja)
HK (1) HK1166386A1 (ja)
WO (1) WO2010074876A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7195486B1 (ja) 2019-12-30 2022-12-23 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 異種メモリシステムに対するシグナリング

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806144B2 (en) 2009-05-12 2014-08-12 Stec, Inc. Flash storage device with read cache
TWI435215B (zh) * 2009-08-26 2014-04-21 Phison Electronics Corp 下達讀取指令與資料讀取方法、控制器與儲存系統
US8489907B2 (en) 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
US8745357B2 (en) * 2009-11-30 2014-06-03 Hewlett-Packard Development Company, L.P. Remapping for memory wear leveling
WO2011070526A1 (en) * 2009-12-11 2011-06-16 International Business Machines Corporation Flash memory controller
US8745304B2 (en) * 2010-02-01 2014-06-03 Standard Microsystems Corporation USB to SD bridge
US8411519B2 (en) * 2010-06-04 2013-04-02 Apple Inc. Selective retirement of blocks
US8737138B2 (en) 2010-11-18 2014-05-27 Micron Technology, Inc. Memory instruction including parameter to affect operating condition of memory
JP5992713B2 (ja) * 2012-03-30 2016-09-14 株式会社ソニー・インタラクティブエンタテインメント メモリシステム、その制御方法及び情報処理装置
KR20130114486A (ko) 2012-04-09 2013-10-17 삼성전자주식회사 씨에이유 별 병렬 큐를 가진 비휘발성 메모리 장치, 이를 포함하는 시스템, 및 비휘발성 메모리 장치의 동작 방법
KR20140027859A (ko) * 2012-08-27 2014-03-07 삼성전자주식회사 호스트 장치 및 이를 포함하는 시스템
KR102025088B1 (ko) 2012-09-03 2019-09-25 삼성전자 주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치
KR101979735B1 (ko) 2012-11-02 2019-05-17 삼성전자 주식회사 비휘발성 메모리 시스템 및 이와 통신하는 호스트
US9218279B2 (en) 2013-03-15 2015-12-22 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
JP2014199591A (ja) * 2013-03-29 2014-10-23 株式会社東芝 記憶装置制御システム、記憶装置制御装置及びプログラム
US9170938B1 (en) * 2013-05-17 2015-10-27 Western Digital Technologies, Inc. Method and system for atomically writing scattered information in a solid state storage device
US9612773B2 (en) * 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
US9558229B2 (en) * 2013-11-26 2017-01-31 Sap Se Transaction private log buffering for high performance of transaction processing
KR102202575B1 (ko) * 2013-12-31 2021-01-13 삼성전자주식회사 메모리 관리 방법 및 장치
KR102168169B1 (ko) 2014-01-07 2020-10-20 삼성전자주식회사 비휘발성 메모리 시스템의 메모리 맵핑 방법 및 이를 제공하는 시스템
KR20150116352A (ko) 2014-04-07 2015-10-15 삼성전자주식회사 메모리 제어 방법 및 시스템
US10402319B2 (en) 2014-07-25 2019-09-03 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory
US9880748B2 (en) * 2015-02-13 2018-01-30 Qualcomm Incorporated Bifurcated memory management for memory elements
KR20170060300A (ko) 2015-11-24 2017-06-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN105739919B (zh) * 2016-01-21 2018-10-12 捷鼎创新股份有限公司 资料存取系统及方法
WO2017156747A1 (zh) * 2016-03-17 2017-09-21 华为技术有限公司 一种内存访问方法以及计算机系统
KR102542375B1 (ko) 2016-08-19 2023-06-14 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그의 동작 방법
CN107783917B (zh) * 2016-08-26 2024-05-17 北京忆芯科技有限公司 生成nvm芯片接口命令的方法与装置
CN108241468B (zh) * 2016-12-23 2021-12-07 北京忆芯科技有限公司 Io命令处理方法与固态存储设备
CN108241585B (zh) * 2016-12-23 2023-08-22 北京忆芯科技有限公司 大容量nvm接口控制器
KR102516547B1 (ko) * 2018-03-08 2023-04-03 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN111506255B (zh) * 2019-01-31 2023-09-26 山东存储之翼电子科技有限公司 基于nvm的固态硬盘元数据管理方法及系统
CN113076218B (zh) * 2020-07-03 2022-03-25 北京忆芯科技有限公司 Nvm芯片读数据错误快速处理方法及其控制器
CN112180808B (zh) * 2020-10-21 2021-08-13 苏州华兴源创科技股份有限公司 一种伺服控制方法、装置、系统、计算机设备和存储介质
CN113094639B (zh) * 2021-03-15 2022-12-30 Oppo广东移动通信有限公司 一种dft并行处理方法、装置、设备及存储介质
KR102608354B1 (ko) 2023-06-05 2023-12-01 메티스엑스 주식회사 전자 장치 및 이를 포함하는 컴퓨팅 시스템

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61217999A (ja) * 1985-03-25 1986-09-27 Toshiba Corp 半導体メモリ
JPH01223700A (ja) * 1988-03-01 1989-09-06 Hitachi Ltd 半導体記憶装置
JPH06124231A (ja) * 1992-10-14 1994-05-06 Toshiba Corp 半導体ファイル装置
JP2000067574A (ja) * 1998-08-21 2000-03-03 Mitsubishi Electric Corp 半導体記憶装置
JP2000066949A (ja) * 1998-08-19 2000-03-03 Sharp Corp データ記録再生装置およびデータ記録再生装置のメモリアクセス方法
JP2000163273A (ja) * 1998-11-25 2000-06-16 Nec Corp メモリ誤り訂正・検出回路試験システムおよび試験方法
US20060164907A1 (en) * 2003-07-22 2006-07-27 Micron Technology, Inc. Multiple flash memory device management

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63285800A (ja) 1987-05-19 1988-11-22 Fujitsu Ltd 半導体メモリ装置
US5341489A (en) 1992-04-14 1994-08-23 Eastman Kodak Company Memory card with programmable interleaving
US5434872A (en) 1992-07-28 1995-07-18 3Com Corporation Apparatus for automatic initiation of data transmission
US5524218A (en) 1993-12-23 1996-06-04 Unisys Corporation Dedicated point to point fiber optic interface
DE69422794T2 (de) 1994-02-18 2000-06-08 St Microelectronics Srl Programmierbare logische Feldstruktur für nichtflüchtige Halbleiterspeicher, insbesondere Flash-EPROMS
US5606710A (en) 1994-12-20 1997-02-25 National Semiconductor Corporation Multiple chip package processor having feed through paths on one die
US5615162A (en) 1995-01-04 1997-03-25 Texas Instruments Incorporated Selective power to memory
KR0157342B1 (ko) 1995-06-09 1998-12-01 김광호 불휘발성 반도체 메모리의 전압 센싱 방법
US5812335A (en) 1995-09-01 1998-09-22 Adaptec, Inc. Programmable data transfer without sector pulses in a headerless disk drive architecture
US5751631A (en) 1996-10-21 1998-05-12 Liu; David K. Y. Flash memory cell and a new method for sensing the content of the new memory cell
US6092158A (en) 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
US6279114B1 (en) 1998-11-04 2001-08-21 Sandisk Corporation Voltage negotiation in a single host multiple cards system
US6134149A (en) 1999-03-01 2000-10-17 Integrated Memory Technologies, Inc. Method and apparatus for reducing high current during chip erase in flash memories
US6148354A (en) 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
US7827348B2 (en) 2000-01-06 2010-11-02 Super Talent Electronics, Inc. High performance flash memory devices (FMD)
EP1145126B1 (en) 1999-10-21 2005-02-02 Matsushita Electric Industrial Co., Ltd. A semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card
US6710906B2 (en) 1999-12-03 2004-03-23 Gentex Corporation Controlled diffusion coefficient electrochromic materials for use in electrochromic mediums and associated electrochromic devices
US6684301B1 (en) 2001-05-31 2004-01-27 Lsi Logic Corporation Out of order execution memory access request FIFO
JP4256600B2 (ja) 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US7346825B2 (en) 2001-09-06 2008-03-18 Intel Corporation Error method, system and medium
US7181611B2 (en) 2002-10-28 2007-02-20 Sandisk Corporation Power management block for use in a non-volatile memory system
US7069399B2 (en) 2003-01-15 2006-06-27 Via Technologies Inc. Method and related apparatus for reordering access requests used to access main memory of a data processing system
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
JP4256198B2 (ja) 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
JP4085983B2 (ja) 2004-01-27 2008-05-14 セイコーエプソン株式会社 情報処理装置およびメモリアクセス方法
DE602004014371D1 (de) 2004-09-10 2008-07-24 St Microelectronics Srl Speicher mit eingebauter Fehlerkorrekturkode-Einrichtung
KR100876084B1 (ko) 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
KR100621631B1 (ko) 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7426672B2 (en) 2005-04-28 2008-09-16 International Business Machines Corporation Method for implementing processor bus speculative data completion
KR100739722B1 (ko) 2005-08-20 2007-07-13 삼성전자주식회사 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US20070050668A1 (en) 2005-09-01 2007-03-01 Micron Technology, Inc. Test mode to force generation of all possible correction codes in an ECC memory
JP4999325B2 (ja) 2005-12-21 2012-08-15 ルネサスエレクトロニクス株式会社 フラッシュメモリ
US7423915B2 (en) 2006-01-17 2008-09-09 Spansion Llc Random cache read using a double memory
US7793059B2 (en) 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US7716411B2 (en) * 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US7372715B2 (en) 2006-06-14 2008-05-13 Micron Technology, Inc. Architecture and method for NAND flash memory
US7609703B2 (en) 2006-09-15 2009-10-27 Hewlett-Packard Development Company, L.P. Group communication system and method
JP2008134736A (ja) 2006-11-27 2008-06-12 Fujifilm Corp 電子機器
KR101354152B1 (ko) 2006-12-18 2014-01-27 삼성전자주식회사 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
JP5020625B2 (ja) 2006-12-22 2012-09-05 キヤノン株式会社 インタフェース回路
JP2008287404A (ja) 2007-05-16 2008-11-27 Hitachi Ltd 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
KR101466694B1 (ko) 2007-08-28 2014-11-28 삼성전자주식회사 Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법
KR101433859B1 (ko) 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US7991943B2 (en) 2007-10-26 2011-08-02 Standard Microsystems Corporation Implementation of one time programmable memory with embedded flash memory in a system-on-chip
TWI384488B (zh) * 2007-12-24 2013-02-01 Skymedi Corp Nonvolatile storage device and its data writing method
US8397014B2 (en) 2008-02-04 2013-03-12 Apple Inc. Memory mapping restore and garbage collection operations
US7979658B2 (en) 2008-03-25 2011-07-12 Spansion Llc Secure management of memory regions in a memory
TWI373773B (en) * 2008-05-27 2012-10-01 Phison Electronics Corp Storage sysetm having multiple non-volatile memory, and controller and access method thereof
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US20100287329A1 (en) 2009-05-06 2010-11-11 Apple Inc. Partial Page Operations for Non-Volatile Memory Systems
US8321647B2 (en) 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US8438453B2 (en) 2009-05-06 2013-05-07 Apple Inc. Low latency read operation for managed non-volatile memory
US8495332B2 (en) 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
US8489907B2 (en) 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
US8838877B2 (en) 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
US9092340B2 (en) 2009-12-18 2015-07-28 Sandisk Technologies Inc. Method and system for achieving die parallelism through block interleaving
US8356137B2 (en) 2010-02-26 2013-01-15 Apple Inc. Data storage scheme for non-volatile memories based on data priority

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61217999A (ja) * 1985-03-25 1986-09-27 Toshiba Corp 半導体メモリ
JPH01223700A (ja) * 1988-03-01 1989-09-06 Hitachi Ltd 半導体記憶装置
JPH06124231A (ja) * 1992-10-14 1994-05-06 Toshiba Corp 半導体ファイル装置
JP2000066949A (ja) * 1998-08-19 2000-03-03 Sharp Corp データ記録再生装置およびデータ記録再生装置のメモリアクセス方法
JP2000067574A (ja) * 1998-08-21 2000-03-03 Mitsubishi Electric Corp 半導体記憶装置
JP2000163273A (ja) * 1998-11-25 2000-06-16 Nec Corp メモリ誤り訂正・検出回路試験システムおよび試験方法
US20060164907A1 (en) * 2003-07-22 2006-07-27 Micron Technology, Inc. Multiple flash memory device management

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7195486B1 (ja) 2019-12-30 2022-12-23 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 異種メモリシステムに対するシグナリング
JP2023500741A (ja) * 2019-12-30 2023-01-10 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 異種メモリシステムに対するシグナリング

Also Published As

Publication number Publication date
CN102326154A (zh) 2012-01-18
US8862851B2 (en) 2014-10-14
WO2010074876A1 (en) 2010-07-01
EP2380083A1 (en) 2011-10-26
HK1166386A1 (en) 2012-10-26
KR101417236B1 (ko) 2014-07-08
KR20110098003A (ko) 2011-08-31
US20130212318A1 (en) 2013-08-15
US8370603B2 (en) 2013-02-05
US20100161886A1 (en) 2010-06-24
CN102326154B (zh) 2014-08-06

Similar Documents

Publication Publication Date Title
JP2012513647A (ja) 管理型不揮発性メモリのアドレスマッピングのためのアーキテクチャー
JP5519779B2 (ja) 不揮発性メモリシステムのためのマルチページ準備コマンド
JP5591917B2 (ja) 管理型不揮発性メモリのための低レイテンシ読み取り動作
US9135167B2 (en) Controller, data storage device and data storage system having the controller, and data processing method
US10331351B2 (en) Memory controllers, memory systems, solid state drives and methods for processing a number of commands
JP6163532B2 (ja) メモリシステムコントローラを含む装置
US8612791B2 (en) Method of selective power cycling of components in a memory device independently by turning off power to a memory array or memory controller
US8880483B2 (en) System and method for implementing extensions to intelligently manage resources of a mass storage system
US20100287329A1 (en) Partial Page Operations for Non-Volatile Memory Systems
US8984219B2 (en) Data storage device and method of writing data in the same

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130619

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130919

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130927

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131017

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131024

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140318

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140326

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140418

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140917