JP5976939B2 - ホスト支援型メモリブロックコンパクション - Google Patents

ホスト支援型メモリブロックコンパクション Download PDF

Info

Publication number
JP5976939B2
JP5976939B2 JP2015528641A JP2015528641A JP5976939B2 JP 5976939 B2 JP5976939 B2 JP 5976939B2 JP 2015528641 A JP2015528641 A JP 2015528641A JP 2015528641 A JP2015528641 A JP 2015528641A JP 5976939 B2 JP5976939 B2 JP 5976939B2
Authority
JP
Japan
Prior art keywords
host
block
memory
source block
memory controller
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
JP2015528641A
Other languages
English (en)
Other versions
JP2015529917A (ja
Inventor
アリエル マイスロス,
アリエル マイスロス,
バラック ロトバード,
バラック ロトバード,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Priority claimed from US13/593,237 external-priority patent/US8977805B2/en
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2015529917A publication Critical patent/JP2015529917A/ja
Application granted granted Critical
Publication of JP5976939B2 publication Critical patent/JP5976939B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、全般的に、データ記憶に関し、特に、ホストシステムリソースを使用するメモリコントローラに関する。
フラッシュメモリなどのいくつかの種類のメモリデバイスは、データを記憶するためにアナログメモリセルのアレイを使用する。各アナログメモリセルは、電荷又は電圧など、記憶値とも呼ばれるアナログ値の量を記憶する。このアナログ値は、セルに記憶された情報を表す。例えば、フラッシュメモリでは、各アナログメモリセルは、特定量の電荷を保持する。可能なアナログ値の範囲は、典型的には区間に分割され、各区間が1つ以上のデータビット値に対応する。所望のビットに対応する公称アナログ値を書き込むことによって、アナログメモリセルにデータが書き込まれる。
シングルレベルセル(SLC)デバイスと一般に呼ばれるいくつかのメモリデバイスは、各メモリセルにシングルビットの情報を記憶し、すなわち、各メモリセルは、2つの可能なプログラミングレベルをとるようにプログラムすることができる。マルチレベルセル(MLC)デバイスとしばしば呼ばれるより高密度のデバイスは、メモリセル当たり2ビット以上を記憶し、すなわち、3つ以上の可能なプログラミングレベルをとるようにプログラムすることができる。
フラッシュメモリについては、例えば、この参照により本明細書内に組み込まれる、「Introduction to Flash Memory」,Proceedings of the IEEE,volume 91,number 4,April,2003,pages 489−502の中で、Bez等によって説明されている。マルチレベルフラッシュセル及びそのデバイスについては、例えば、この参照により本明細書内に組み込まれる、「Multilevel Flash Cells and their Trade−Offs」,Proceedings of the 1996 IEEE International Electron Devices Meeting(IEDM),New York,New York,pages 169−172の中で、Eitan等によって説明されている。この論文は、共通グランドセル、DINORセル、ANDセル、NORセル、及びNANDセルなどの数種類のマルチレベルフラッシュセルを比較している。
Eitan等は、この参照により本明細書内に組み込まれる「Can NROM,a 2−bit,Trapping Storage NVM Cell,Give a Real Challenge to Floating Gate Cells?」,Proceedings of the 1999 International Conference on Solid State Devices and Materials(SSDM),Tokyo,Japan,September 21−24,pages 522−524の中で、ナイトライド(nitride)リードオンリメモリ(NROM)と呼ばれる別の種類のアナログメモリセルについて説明している。NROMセルはまた、この参照により本明細書内に組み込まれる、「A 512 Mb NROM Flash Data Storage Memory with 8 MB/s Data Rate」,Proceedings of the 2002 IEEE International Solid−State Circuits Conference(ISSCC 2002),San Francisco,California,February 3−7,2002,pages 100−101の中で、Maayan等によっても説明されている。その他の例示的な種類のアナログメモリセルとしては、フローティングゲート(FG)セル、強誘電体RAM(FRAM)セル、磁気RAM(MRAM)セル、チャージトラップ型フラッシュ(CTF)セル及び相転移RAM(PRAM。また相転移メモリ(PCM)とも呼ぶ)セルがある。FRAM、MRAM、及びPRAMセルについては、例えば、この参照により本明細書内に組み込まれる、「Future Memory Technology including Emerging New Memories」,Proceedings of the 24th International Conference on Microelectronics(MIEL),Nis,Serbia and Montenegro,May 16−19,2004,volume 1,pages 377−384の中で、Kim及びKohによって説明されている。
本明細書で説明する本発明の一実施形態は、ホストと、ホストとは別個であり、ホストのためにデータを不揮発性メモリに記憶するメモリコントローラとを含むシステムにおけるデータ記憶のための方法を提供する。方法は、コンパクション(compaction)のために不揮発性メモリからの1つ以上のソースブロックを、メモリコントローラからホストに転送することを含む。ソースブロックは、ソースブロックから1つ以上の宛先ブロックに有効データをコピーすることによって、ホスト内でコンパクションされる。宛先ブロックは、ホストからメモリコントローラに転送され、宛先ブロックは、メモリコントローラによって不揮発性メモリに記憶される。
いくつかの実施形態において、ソースブロックを転送することは、ソースブロックをホストのランダムアクセスメモリ(RAM)に記憶することを含み、ソースブロックをコンパクションすることは、ホストのプロセッサを使用して宛先ブロックを生成することと、宛先ブロックをRAMに記憶することとを含む。一実施形態において、有効データをコピーすることは、ソースブロックからの読み出し動作の第1のシーケンスを実行し、次いで、宛先ブロックへの書き込み動作の第2のシーケンスを実行することを含む。
開示する実施形態において、宛先ブロックを記憶することは、不揮発性メモリ中の宛先ブロックの対応する物理的記憶位置を指示するように、論理−物理アドレスマッピングを更新することを含む。別の実施形態では、ソースブロックを転送することは、有効データを識別する指示をホストに送信することを含み、ソースブロックをコンパクションすることは、その指示に基づいて、ソースブロックから有効データを読み出すことを含む。代替実施形態では、ソースブロックを転送することは、有効データのみをソースブロックからホストに送信することを含む。
別の実施形態では、ソースブロック及び宛先ブロックを転送することは、メモリコントローラとホストとの間でメモリアクセスコマンドを交換するために使用される第2の物理インタフェースとは別個の第1の物理インタフェースを介して、ソースブロック及び宛先ブロックを送信することを含む。更に別の実施形態では、ソースブロック及び宛先ブロックを転送することは、ソースブロック及び宛先ブロックの転送に関する任意の動作をホストが実行することなく、メモリコントローラによってソースブロックを送信し宛先ブロックをフェッチすることとを含む。
いくつかの実施形態において、ソースブロック及び宛先ブロックを転送することは、メモリコントローラとホストとの間でメモリアクセスコマンドを交換するためにも使用される共通物理インタフェースを介して、ソースブロック及び宛先ブロックを送信することを含む。共通物理インタフェースは、NANDインタフェース仕様、Micro−SD(μSD)インタフェース仕様、エンベデッドマルチメディアカード(eMMC)インタフェース仕様、ユニバーサルフラッシュストレージ(UFS)インタフェース仕様、シリアルATA(SATA)インタフェース仕様、ユニバーサルシリアルバス(USB)インタフェース仕様、又はペリフェラルコンポーネントインターコネクト(PCI)インタフェースに準拠することができる。
一実施形態において、ソースブロック及び宛先ブロックを転送することは、ハードウェア信号を使用して、メモリコントローラと情報に交換するように、メモリコントローラからホストに要求を送信することと、その要求に応答して、ホストによる少なくとも1つのソースブロック又は少なくとも1つの宛先ブロックの交換を開始することとを含む。別の実施形態では、ソースブロックを転送することが、メモリコントローラからホストに送信される応答中でソースブロックを送信することを含み、宛先ブロックを転送することが、ホストからメモリコントローラに送信される1つ以上のホストコマンド中で宛先ブロックを送信することを含む。
更に、本発明の一実施形態に従って、第1のインタフェースと第2のインタフェースとプロセッサとを含むデータ記憶装置が提供される。第1のインタフェースは、不揮発性メモリと通信するように構成される。第2のインタフェースは、ホストと通信するように構成される。プロセッサは、コンパクションのために不揮発性メモリからホストに1つ以上のソースブロックを転送し、ソースブロックから宛先ブロックに有効データをコピーすることによってホスト内で生成された1つ以上の宛先ブロックをホストから受信し、宛先ブロックを不揮発性メモリに記憶するように構成される。
また、本発明の一実施形態に従って、不揮発性メモリとホストとメモリコントローラとを含むデータ記憶装置が提供される。不揮発性メモリは、複数のメモリブロックを含む。ホストは、コンパクションのために不揮発性メモリの1つ以上のソースブロックを受信し、ソースブロックから1つ以上の宛先ブロックに有効データをコピーすることによってソースブロックをコンパクションするように構成される。メモリコントローラは、コンパクションのためにソースブロックを選択し、ソースブロックをホストに転送し、ホストから宛先ブロックを受信し、宛先ブロックを不揮発性メモリに記憶するように構成される。
本発明は、下記の図面と併せて以下の本発明の実施形態の詳細な説明からより完全に理解できるであろう。
本発明の一実施形態に係る、データ記憶システムを模式的に示すブロック図である。 本発明の一実施形態に係る、ホストシステムリソースを使用してデータを不揮発性メモリに記憶するための方法を模式的に示すフローチャートである。 本発明の一実施形態に係る、ホストプロセッサとメモリコントローラとの間で情報を交換するための方法を模式的に示すフローチャートである。 本発明の一実施形態に係る、ホスト支援型ブロックコンパクションのための方法を模式的に示すフローチャートである。
概要
いくつかのデータ記憶アプリケーションにおいて、メモリコントローラは、ホストシステムに接続され、ホストシステムについてのデータを不揮発性メモリに記憶する。例えば、モバイル電話又はメディアプレーヤは、マイクロセキュアデジタル(μSD)カード、エンベデッドマルチメディアカード(eMMC)又はユニバーサルフラッシュストレージ(UFS)デバイスにデータを記憶することができる。パーソナルコンピュータは、ソリッドステートドライブ(SSD)にデータを記憶することができる。多くの場合、ホストシステムは、メモリコントローラの内部リソースよりも多くのハードウェアリソース(例えば、メモリ空間及び計算能力)を有する。
以下に説明される本発明の実施形態は、データ記憶のための向上した方法及びシステムを提供する。これらの方法及びシステムにおいて、メモリコントローラは、記憶性能を向上させるためにホストシステムのリソースを使用する。
いくつかの実施形態において、メモリコントローラは、フラッシュメモリなどの不揮発性メモリに、ホストのためにデータを記憶する。更に、メモリコントローラは、不揮発性メモリのメモリブロックのコンパクションを含む、種々のメモリ管理タスクを実行する。コンパクションプロセスは、「ガベージコレクション」とも呼ばれる。コンパクションは、典型的には、有効データと無効データの両方を含む1つ以上のソースブロックを選択することと、ソースブロックから有効データのみを1つ以上の宛先ブロックにコンパクトな様式でコピーすることとを含む。ソースブロックは、その後、消去及び再使用のために利用可能である。
いくつかの開示された実施形態において、メモリコントローラは、コンパクションのためのソースブロックを選択し、その後、コンパクションされた宛先ブロックを不揮発性メモリに記憶するが、実際のコンパクションプロセス(すなわち、ソースブロックから宛先ブロックへの有効データのコピー)は、ホストにより実行される。この目的のために、メモリコントローラ及びホストは、それらの間でソースブロック及び宛先ブロックを転送する。
典型的には、ホストは、メモリコントローラよりも大きいメモリ空間と、メモリコントローラよりも高い計算能力とを有するので、ホストにコンパクションプロセスを委ねることにより、コンパクション性能が大幅に向上する。特に、メモリ空間が大きいことにより、ホストは、読み出し動作の長いシーケンスの後に書き込み動作の長いシーケンスを実行することによって、有効データをコピーすることが可能になる。この種の順次動作は、コンパクションプロセスの効率を大幅に向上させる。
更に、メモリ空間が大きいことにより、ホストは、多数のソースブロック及び宛先ブロックを同時に処理し、したがって、コンパクション性能を最適化することが可能になる。ホストの計算能力が高いことにより、コンパクションプロセスのレイテンシが短くなる。更に、集中的な管理タスクをホストに委ねることにより、メモリコントローラのコスト、サイズ及び電力消費の低減が可能になる。別の利益として、ホストがコンパクションプロセスを実行するので、メモリコントローラにコンパクションされたブロックを送信するときに論理アドレスを再マッピングすることができる。
システムの説明
図1は、本発明の一実施形態に係るデータ記憶システム20を模式的に示すブロック図である。システム20は、メモリシステム22とホストシステム24とを備える。メモリシステム22は、ホストシステム24から記憶のためのデータを受け入れ、それをメモリに記憶し、かつ、メモリからデータを取り出し、ホストシステムにそれを提供する。本実施例では、システム22は、セルラー電話、メディアプレーヤ、デジタルカメラ又は他のホストのためにデータを記憶するマイクロセキュアデジタル(μSD)カードを備える。しかしながら、代替実施形態では、システム22は、任意の他の好適なアプリケーションにおいて、任意の他の好適なホストシステムとともに使用され得る。例えば、SSDにデータを記憶するモバイルコンピュータなどのコンピューティング装置の中、WiFi(登録商標)端末又は他の通信端末の中、全地球測位システム(GPS)ユニット、ディスクオンキー(DOK)デバイス、セキュアデジタル(SD)カード、マルチメディアカード(MMC)及びエンベデッドMMC(eMMC)などのリムーバブルメモリモジュール、デジタルカメラ、ポータブルメディアプレーヤー(PMP)などの音楽プレーヤ及び他のメディアプレーヤ、並びに/あるいは、データが記憶され取り出される任意の他のシステム又はデバイス、などである。
メモリシステム22は、各々が複数のアナログメモリセルを備える複数のメモリデバイス28を備える。本実施例では、デバイス28は、不揮発性NANDフラッシュデバイスを備えるが、NORフラッシュセル及びチャージトラップ型フラッシュ(CTF)フラッシュセル、相転移RAM(PRAM、相転移メモリ−PCM−とも呼ばれる)、ナイトライドリードオンリメモリ(NROM)、強誘電体RAM(FRAM)、及び/又は、磁気RAM(MRAM)などの任意の他の好適なメモリ種類も使用することができる。
本特許出願の文脈及び特許請求の範囲において、「アナログメモリセル」という用語は、電圧又は電荷などの物理パラメータの連続的なアナログ値を保持する任意のメモリセルについて説明するために使用される。上記に列挙した種類などの任意の好適な種類のアナログメモリセルを使用することができる。本実施例では、各メモリデバイス28は、NANDフラッシュセルの不揮発性メモリを備える。本明細書では、セルに記憶された電荷レベル、並びに/あるいはセルに書き込まれ、そこから読み出されるアナログ電圧又は電流を、アナログ値又は記憶値と総称する。本明細書で説明する実施形態は、主に、しきい値電圧を対象とするが、本明細書で説明する方法及びシステムは、任意の他の好適な種類の記憶値とともに使用してもよい。
システム22は、プログラミングレベルとも呼ばれる対応するメモリ状態をとるようにセルをプログラムすることによって、アナログメモリセルにデータを記憶する。プログラミングレベルは、とり得るレベルの有限のセットから選択され、各レベルは、特定の公称記憶値に対応する。例えば、2ビット/セルのMLCは、4つのとり得る公称記憶値のうちの1つをセルに書き込むことよって、4つのとり得るプログラミングレベルのうちの1つをとるようにプログラムすることができる。メモリセルは、典型的には、行及び列に配列される。典型的には、所与のメモリデバイスは、(メモリブロックとも呼ばれる)複数の消去ブロック、すなわち、一緒に消去されるメモリセルのグループを備える。
各メモリデバイス28は、パッケージ化されたデバイス、又はパッケージ化されていない半導体チップ若しくはダイを備えることができる。一般に、メモリシステム22は、任意の望ましい種類及びサイズの任意の好適な数のメモリデバイスを備えることができる。図1のシステム構成は複数のメモリデバイスを備えるが、本明細書で説明する方法及びシステムのうちのいくつかは、単一のメモリデバイスのみを有するシステムにおいて使用することもできる。
メモリシステム22は、ホストシステム24からデータを受け入れ、それをメモリデバイス28に記憶し、かつ、メモリデバイスからデータを取り出し、それをホストシステムに提供するメモリコントローラ32を備える。メモリコントローラ32は、ホストシステム24と通信するためのホストインタフェース36と、メモリデバイス28と通信するためのメモリインタフェース40と、記憶されたデータ及び取り出されたデータを処理するプロセッサ44とを備える。例えば、プロセッサ44は、記憶のためのデータを誤り訂正符号(ECC)とともに符号化し、メモリから読み出したデータのECCを復号することができる。プロセッサ44の機能は、例えば、好適な中央処理装置(CPU)上で実行するソフトウェアを使用して、ハードウェア(例えば、ステートマシン若しくは他の論理)を使用して、又はソフトウェア要素とハードウェア要素との組み合わせを使用して実装することができる。
いくつかの実施形態において、メモリコントローラ32は、メモリデバイス28にアクセスするメモリアクセス動作(例えば、読み出し動作又は書き込み動作)を実行するために、ホストシステム24のハードウェアリソースを使用する。図1の実施形態では、ホストシステム24は、ホストプロセッサ48とホストメモリとを備え、本実施例では、ダイナミックランダムアクセスメモリ(DRAM)52を備える。DRAM52は、ホストプロセッサ48により、データを記憶するために、プログラム命令を記憶するために、又は任意の他の目的のために使用することができる。いくつかの実施形態において、DRAM52中の記憶空間のうちの一部は、メモリコントローラ32が使用する情報を記憶するために使用される。図1の例では、メモリコントローラ32は、ホストバス56を使用して(ホストインタフェース36を介して)ホストプロセッサ48と通信する。更に、メモリコントローラ32のプロセッサ44は、専用のインタフェース60を使用して、DRAM52と直接通信する。代替実施形態では、メモリコントローラ32は、ホストプロセッサ48及びDRAM52とホストバス56を使用して通信し、その場合には、インタフェース60は省略される。
メモリコントローラ32、中でも特にプロセッサ44は、ハードウェアで実装することができる。あるいは、メモリコントローラは、好適なソフトウェアを実行するマイクロプロセッサ、又はハードウェア要素及びソフトウェア要素の組み合わせを含むことができる。いくつかの実施形態において、プロセッサ44は、本明細書で説明する機能を実行するようにソフトウェアでプログラムされる汎用プロセッサを備える。ソフトウェアは、例えば、ネットワークを介して、電子形式でプロセッサにダウンロードすることができ、又は、それに代えて、若しくはそれに加えて、磁気メモリ、光学メモリ若しくは電子メモリなどの有形媒体上に提供する及び/若しくは記憶することができる。
図1のシステム構成は、単に概念を明らかにするために示される例示的な構成である。その他の任意の好適なメモリシステムの構成を使用することもできる。例えば、いくつかの実施形態では、2つ以上のメモリコントローラ32を同一のホストプロセッサに接続してもよい。本明細書で説明する実施形態はDRAMを参照しているが、ホストシステム24は、任意の他の好適な種類の揮発性ホストメモリ及び/又は不揮発性ホストメモリを備えることができる。種々のインタフェース、アドレス指定回路、タイミング及びシーケンス回路、並びにデバッギング回路などの、本発明の原理を理解する上で必要ではない要素は、明瞭性のために図から省略されている。
図1に示した例示的なシステム構成において、メモリデバイス28とメモリコントローラ32とは、別個の集積回路(IC)として実装される。ただし、代替実施形態では、メモリデバイス及びメモリコントローラは、単一のマルチチップパッケージ(MCP)又はシステムオンチップ(SoC)中の別個の半導体ダイ上に集積することができ、内部バスによって相互接続してもよい。更に代替的には、メモリコントローラ回路の一部又は全部が、メモリデバイスのうちの1つ以上が配設された同一のダイ上に常駐することができる。更に代替的には、メモリコントローラ32の機能のうちの一部又は全部は、ソフトウェアで実装することができ、ホストプロセッサ48又はホストシステム24の他の要素によって、又は、他の種類のメモリコントローラによって実行することができる。いくつかの実施形態において、ホストプロセッサ48及びメモリコントローラ32は、同じダイ上に作りこんでも、又は同一のデバイスパッケージ中の別個のダイ上に作りこんでもよい。
ホストシステムリソースを使用した不揮発性メモリへのデータ記憶
多くの実際の適用例では、ホストシステム24は、メモリコントローラ32の内部で利用可能なものよりも相当に多くのハードウェアリソースを有する。いくつかのモバイル電話では、例えば、メモリコントローラ32は、制限されたメモリリソース及び制限された計算能力を有するSDコントローラ又はeMMCコントローラを備える。一方、ホストシステムはしばしば、強力なプロセッサ及び相当量のDRAM記憶空間を備える。本発明のいくつかの実施形態では、メモリコントローラ32は、メモリデバイス28にアクセスするために、ホストシステム24のより豊富なハードウェアリソースを使用する。図1の例では、ハードウェアリソースは、ホストメモリ(DRAM)記憶空間を備えるが、ホストシステムの種々の他のハードウェアリソースを使用することもできる。
いくつかの実施形態において、メモリデバイス28にアクセスする際にメモリコントローラ32が使用する情報項目を記憶するために、DRAM52において記憶空間が割り当てられる。更に、メモリコントローラは、DRAMに記憶された情報項目を使用して、メモリデバイス28にアクセスする1つ以上の動作をサポートする。情報項目は、例えば、記憶パラメータ及び構成、論理−物理アドレス変換テーブル、又はメモリデバイスにアクセスする(例えば、読み出す、書き込む、若しくは消去する)際にメモリコントローラにとって有用である任意の他の情報を含むことができる。この種の所与の動作を実行するとき、通常、ホストコマンドに応答して、メモリコントローラは、DRAM52から適切な情報を取り出し、次いで、取り出した情報を使用してメモリデバイス28にアクセスする。
いくつかの実施形態において、DRAM52に記憶された情報項目は、メモリセルの対応するグループについての記憶パラメータを含む。情報項目は、メモリデバイスごとに、メモリダイごとに、消去ブロックごとに、ワードライン又はページごとに、あるいはメモリセルの任意の他の好適なグループごとに記憶することができる。デバイス28中のメモリセルの所与のグループにアクセスする(例えば、読み出す、書き込む、又は消去する)準備がととのったとき、メモリコントローラは、このメモリセルグループの記憶パラメータをDRAM52から取り出し、次いで、取り出した記憶パラメータを使用して、グループ中のメモリセルにアクセスする。DRAM52中の利用可能な記憶空間は、しばしば、プロセッサ44中の内部記憶空間よりも相当に大きいので、この技術により、メモリコントローラは、記憶パラメータを、アクセスされるメモリセルの実際のグループによりうまくマッチさせることが可能になる。任意の好適な記憶パラメータを使用してもよい。
例えば、メモリデバイス28は、それらの記憶値を特定の読み出ししきい値と比較することによって読み出されるアナログメモリセル(例えば、フラッシュセル)を備えることができる。これらの実施形態では、メモリコントローラ32は、メモリセルの異なるグループごとの(例えば、異なる消去ブロックについての)読み出ししきい値をDRAM52に記憶することができる。メモリコントローラは、デバイス28中のメモリセルの特定のグループに適用可能な読み出ししきい値をDRAM52から取り出し、次いで、取り出した読み出ししきい値を使用してそのグループからデータを読み出すことによって、その特定のグループからデータを読み出す、読み出し動作をサポートする。
別の例として、メモリデバイス28中のメモリセルは、反復的なプログラミング及び検証(P&V)プロセスを使用してプログラムすることができる。典型的なP&Vプロセスでは、メモリページ全体は、このページにマッピングされるメモリセルのグループにプログラミングパルスのシーケンスを印加することによって書き込まれる。プログラミングパルスのレベルは、1パルスごとに増分的に増大する。セルにおいてプログラムされる記憶値は、各パルスの後に読み出され(「検証され」)、望ましいレベルに達するまで反復し続ける。いくつかの実施形態において、メモリセルの異なるグループに適用可能であるP&Vプロセスのパラメータは、ホストシステム24のDRAM52に記憶される。メモリコントローラは、DRAM52から対応するP&Vパラメータを取り出し、次いで、取り出したP&Vパラメータを使用してメモリセルのグループをプログラムすることによって、メモリセルの特定のグループにデータを記憶する、書き込み動作をサポートする。
DRAM52に記憶され得るP&Vパラメータは、例えば、メモリセルに書き込まれた記憶値を検証するために使用される検証しきい値、インクリメンタルステップサイズ(すなわち、連続するプログラミングパルス間の増分、インクリメンタルステップパルスプログラミング−ISPP−とも呼ばれる)、イニシャルプログラミングパルス振幅、及び/又は任意の他の好適なパラメータを含むことができる。
更に別の例として、デバイス28中のメモリセルは消去し、次いで、特定の消去検証しきい値に対して検証することができる。いくつかの実施形態において、メモリコントローラは、異なるメモリセルグループについての異なる消去検証しきい値をDRAM52に記憶する。メモリコントローラは、このセルグループの消去検証しきい値をDRAM52から取り出し、取り出したしきい値を使用してセルグループを消去する消去動作をサポートすることができる。
DRAM52に記憶することができる情報項目の他の例は、デバイス28中のメモリセルの対応するグループの損耗レベル又は健全性レベル、あるいはメモリセルの他の履歴性能指数を示す。そのような情報項目は、例えば、メモリセルの各グループが完了したプログラミング及び消去(P/E)サイクルの数、又はメモリセルの各グループの最後のプログラミングからの経過時間を含むことができる。
他の情報項目は、デバイス28中のメモリセルの各グループに存在する歪みレベルを示し得る。そのようなパラメータは、例えば、メモリセルの異なるグループについての、クロスカップリング干渉の推定値、セルの記憶値の推定ドリフト、又は推定温度−時間積分(経時的に積分される動作温度)を含むことができる。DRAM52に記憶することができる情報項目の更に別の例は、各消去ブロックに記憶された最終ページのインデックスを含む。これらの情報項目のすべては、メモリセルを読み出す及び/又はプログラムする方法を判定する際に有用であり得る。この種の例示的な技術は、例えば、それらの開示が参照により本明細書に組み込まれるPCT国際公開公報WO2007/132453、WO 2007/132457、WO2008/026203、WO2008/053472及びWO2008/111058で説明されている。
いくつかの実施形態において、メモリコントローラ32は、異なる記憶構成を使用して、デバイス28中のメモリセルの異なるグループにデータを記憶する。例えば、メモリコントローラは、プログラミング状態(プログラミングレベル)の数及び/又は誤り訂正符号(ECC)をメモリセルグループごとに変更することができる。この種の例示的な技術は、例えば、その開示が参照により本明細書に組み込まれるPCT国際公開公報WO2007/132456で説明されている。別の例として、メモリコントローラは、例えば、誤り訂正機能とレイテンシとの間に様々なトレードオフを提供するために、様々なECCブロックサイズを使用することができる。例示的な実施形態では、メモリコントローラは、2KBブロックを使用して、いくつかのページを符号化することができ、4KBブロックを使用して、他のページを符号化することができる。
いくつかの実施形態において、メモリコントローラ32は、デバイス28の異なるメモリセルグループで適用される記憶構成(例えば、プログラミングレベルの数、ECCの種類、及び/又は各消去ブロック、ワードライン若しくはページにおいて使用されるECCブロックサイズ)をDRAM52に記憶する。メモリコントローラは、所与のメモリセルグループについての記憶構成をDRAM52から取り出し、次いで、取り出した記憶構成を使用してセルグループを読み出す又はプログラムする、読み出し及び書き込み動作をサポートする。
いくつかの実施形態において、メモリコントローラは、論理アドレス(仮想アドレスとも呼ばれる)を使用して指定される読み出し/書き込みコマンドをホストシステム24から受信する。メモリコントローラは、論理アドレスをメモリデバイス28の物理的記憶位置に変換し、そのデータを適切な物理的記憶位置から読み出す、又はそのデータを適切な物理的記憶位置に書き込む。論理アドレスと物理的記憶位置との間の変換は、典型的には、メモリコントローラが管理する変換テーブルを問い合わせることによって実行される。
いくつかの実施形態において、メモリコントローラ32は、論理アドレスと物理的記憶位置とのマッピングをDRAM52に記憶する。論理−物理マッピングは、1つ以上のテーブルによって、又は任意の他の好適なデータ構造を使用して表すことができる。マッピングは、論理アドレスを物理的記憶位置にマッピングすること、物理的記憶位置を論理アドレスにマッピングすること、又はその両方を行うことができる。これらの実施形態では、メモリコントローラは、DRAM52に記憶されたマッピングを問い合わせることによって、論理アドレスと物理的記憶位置との間の変換を行う読み出し及び書き込み動作をサポートする。
例えば、論理アドレスの所与の範囲からの読出しを要求するホストシステムからの読み出しコマンドに応答して、メモリコントローラは、要求された論理アドレスに対応する物理的記憶位置を取得するように、DRAM52中のマッピングを問い合わせる読み出し動作を実行することができる。次いで、その動作は、メモリデバイス28中のこれらの物理的記憶位置からデータを読み出す。書き込み動作についても類似するフローを同様に規定することができる。この技術により、メモリコントローラは、最小限の内部メモリを用いて、不揮発性メモリデバイス28にマッピングを記憶する必要なく、論理−物理アドレス変換を実行することが可能になる。システム22の読み出し/書き込み速度は、マッピングをデバイス28に記憶する場合と比較して大幅に向上する。速度の向上は、多数のランダムな読み出し/書き込み動作を実行するときに特に高くなる。
論理−物理アドレスマッピングをホストメモリに記憶することは、μSDコントローラなど、制限された内部メモリを有するメモリコントローラ適用例において特に有利である。この技術を使用するときには、読み出し及び書き込み動作は、適切なアドレス変換を判定するために、及び/又は変換を更新するために、追加の読み出し及び書き込み動作を含まない。その結果、読み出し及び書き込みスループットが増大する。更に、書き込み動作の数及び読み出しディスターブの量が低減され、したがって、不揮発性メモリの寿命が延びる。
多くの場合、デバイス28中のメモリセルは、干渉、例えば、隣接メモリセルからのクロスカップリング干渉を受ける。いくつかの実施形態において、メモリセルからデータを読み出すときに、メモリコントローラ32は干渉キャンセルプロセスを適用する。干渉キャンセルプロセスは、典型的には、デバイス28中の他のメモリセル(通常、隣接メモリセル)の記憶値又はデータに基づいて、メモリセルの所与のグループにおける干渉を推定し、それを補正する。例示的な干渉キャンセル技術は、上記で参照したPCT国際公開公報WO2007/132453、WO2007/132457及びWO2008/026203で説明されている。
いくつかの実施形態において、メモリコントローラ32は、隣接メモリセルのデータをDRAM52から取り出す。メモリコントローラは、メモリデバイス28のうちのメモリセルの所与のグループからデータを読み出し、隣接セルデータをDRAM52から取り出し、DRAM52から取得された隣接セルデータを使用して、読み出したデータ中の干渉をキャンセルする読み出し動作をサポートする。隣接セルデータは、例えば、隣接ページが記憶されたときから、DRAM52において利用可能であり得る。この技術により、メモリコントローラは、メモリデバイス28から隣接メモリセルを読み出す必要が軽減される。その結果、システム22の全体的な読み出し速度を向上させることができる。
いくつかの実施形態において、メモリコントローラ32は、より大量のデータをメモリデバイス28に順次書き込むために、より大きいサイズのDRAM52を使用する。例えば、メモリコントローラは、メモリデバイス28中の特定のソースロケーションから特定の宛先ロケーションに複数のページ(例えば、消去ブロック全体)をコピーするブロックコピーバック動作をサポートすることができる。このコマンドを実行するとき、メモリコントローラは、最初に、ソースロケーションから複数のページを順次読み出し、それらをDRAM52にキャッシュする。次いで、メモリコントローラは、DRAM52から複数のページを読み出し、それらをメモリデバイス28中の宛先ロケーションに順次書き込む。一度に1ページをコピーするのではなく、複数のページを順次読み出し、書き込むことによって、コピーバック動作の所要時間が大幅に短くなる。別の例として、順次データブロックが生成されるまで、断続的に到着する記憶のためのデータを累積するために(メモリコントローラ又はホストのいずれかによって)DRAM52を使用することができる。次いで、メモリコントローラは、累積されたブロックをメモリデバイス28に順次書き込むことができる。
それに加えて、又は代替として、メモリコントローラは、任意の他の好適な情報をDRAM52に記憶し、次いで、メモリデバイス28にアクセスする際にこの情報を使用することができる。本明細書で説明する実施形態は、主に、DRAMリソースを参照しているが、メモリコントローラ32は、ホストシステム24の任意の他の好適なハードウェアリソースを使用することができる。例示的なリソースについて以下に更に説明する。
図2は、本発明の一実施形態に係る、メモリコントローラ32によりホストシステム24のDRAMリソースを使用して、不揮発性メモリデバイス28にデータを記憶するための方法を模式的に示すフローチャートである。方法は、メモリ割り当てステップ70において、メモリコントローラ32が使用するためのホストシステム24のDRAM52中の記憶空間を割り当てることにより始まる。メモリコントローラ32は、DRAM記憶ステップ74において、デバイス28のアナログメモリセルの対応するグループに関する情報項目をDRAM52に記憶する。前述したように、情報項目は、例えば、記憶パラメータ及び構成、論理−物理アドレスマッピング、並びに/又は隣接セルデータを含むことができる。
特定の時点に、メモリコントローラ32は、コマンド受信ステップ78において、ホストシステム24からコマンドを受信する。そのコマンドにより、メモリコントローラは、デバイス28のアナログメモリセルの所与のグループにアクセスする。例えば、コマンドは、特定のデータ項目の記憶又は読出しを要求することができる。そのコマンドに応答して、メモリコントローラ32は、動作実行ステップ82において、DRAM52から取り出した情報を使用してメモリデバイス28にアクセスする動作を実行する。典型的には、メモリコントローラは、デバイス28中のアクセスすべきアナログメモリセルのグループを識別し、このメモリセルグループに関係する(1つ以上の)情報項目をDRAM52から取り出し、取り出した情報を使用してグループ中のメモリセルにアクセスする。
ホストシステムとメモリコントローラとの間のインタフェース
上述の技術を実行するとき、メモリコントローラ32は、任意の好適なインタフェースを使用して、DRAM52に情報を記憶し、それを読み出すことができる。上記の図1の例では、メモリコントローラは、専用のインタフェース60を使用して(すなわち、メモリコントローラとホストプロセッサとの間の通信のために使用される物理インタフェースとは別個の物理インタフェースを使用して)、DRAM52と直接通信する。これらの実施形態では、メモリコントローラとDRAMとが直接通信するので、DRAM52からの情報の取り出しは、ホストプロセッサのいかなる動作も伴わない。メモリコントローラ及び/又はホストシステムは、プロセッサ44及びプロセッサ48によるDRAM52へのアクセスを制御するために好適な調整論理を備える。
代替実施形態では、メモリコントローラ32は、ホストバス56を使用して(すなわち、メモリコントローラとホストプロセッサとの間の通信のために使用される同一の物理インタフェースを介して)、DRAM52に情報を記憶し、読み出す。ホストバス56は、例えば、NANDインタフェース、Micro−SD(μSD)インタフェース、エンベデッドマルチメディアカード(eMMC)インタフェース、ユニバーサルフラッシュストレージ(UFS)インタフェース、シリアルATA(SATA)インタフェース、ユニバーサルシリアルバス(USB)、PCIエクスプレス(PCIe)、又は任意の他の好適なインタフェースなど、任意の好適な規格又はプロトコルに従って動作することができる。
μSDインタフェースは、例えば、この参照により本明細書に組み込まれる「SD Specifications」(Part 1、Physical Layer Specification、Version 3.01 Draft 1.00、2009年11月9日)で規定される。eMMCインタフェースは、例えば、この参照により本明細書に組み込まれる、に、「Embedded MultiMediaCard(eMMC)Mechanical Standard with Optional Reset Signal」(JEDEC Standard JESD84−C44、2009年7月)で規定される。UFSインタフェースは、例えば、この参照により本明細書に組み込まれる「UFS Specification」(version 0.1、2009年11月11日)で規定される。SATAインタフェースは、例えば、この参照により本明細書に組み込まれる「Serial ATA Revision 3.0」(2009年6月2日)で規定される。USBインタフェースは、例えば、この参照により本明細書に組み込まれる「Universal Serial Bus Specification」(Revision 2.0、2000年4月27日)で規定される。
上記に列挙した通信プロトコルでは、ホストプロセッサがマスターとして定義され、メモリコントローラがスレーブとして定義される。したがって、メモリコントローラは、情報を記憶又は取り出すことを要求するコマンドを開始し、それらをホストプロセッサに送ることができない。いくつかの実施形態において、メモリコントローラ32は、メモリコントローラとホストプロセッサとの間でハードウェア配線を介して信号を送ることによって、DRAM52と情報を交換するようにホストプロセッサ48に要求する。いくつかの実施形態において、この目的のために、メモリコントローラとホストプロセッサとの間に専用のハードウェア配線を接続することができる。代替的には、メモリコントローラは、データ交換が要求されることをホストプロセッサに指示するために、レディ/ビジー配線などの既存のハードウェア配線を使用することができる。ホストプロセッサは、この指示を受信すると、情報交換プロセスを開始する。
図3は、本発明の一実施形態に係る、ホストプロセッサとメモリコントローラとの間で情報を交換するための方法を模式的に示すフローチャートである。方法は、指示ステップ90において、メモリコントローラ32が、DRAM52との情報交換が要求されることをホストプロセッサ48に指示することから始まる。メモリコントローラは、メモリコントローラとホストプロセッサとの間に接続されたハードウェア信号(例えば、個別のハードウェア配線又はピン)を介して、この指示を信号で送る。
指示を受信すると、ホストプロセッサ48は、問い合わせステップ94において、要求される情報交換の種類を問い合わせるメッセージをメモリコントローラ32に送信する。問い合わせメッセージは、DRAMから情報を読み出すように要求するか、あるいはDRAMに情報を記憶するように要求するかを指示するように、メモリコントローラに要求する。
問い合わせメッセージを送信した後、ホストプロセッサ48は、読出しステップ98において、メモリコントローラ32から、要求された情報交換の種類を指示するデータ読み出す。例えば、データは、要求された動作がDRAMから情報を読み出すか、あるいは、DRAMに情報を書き込むか指示する。また、データは、情報を読み出す又は書き込むためのDRAM52におけるアドレスの範囲を指示する。要求がDRAMに情報を記憶することであるとき、データは、記憶すべき情報も備える。
ステップ98においてメモリコントローラから読み出したデータに基づいて、ホストプロセッサは、実行ステップ102において、要求された情報交換を実行する。メモリコントローラが、DRAMに情報を記憶することを要求した場合、ホストプロセッサは、DRAM中の指示されたアドレスに情報を記憶し、メモリコントローラに確認応答メッセージを送信する。メモリコントローラが、DRAMから情報を読み出すことを要求した場合、ホストプロセッサは、指示されたアドレスから情報を読み出し、その情報をメモリコントローラに送信する。
代替実施形態において、メモリコントローラは、ホストコマンド及び対応する応答中に含まれるメタデータを使用して、ホストプロセッサを介してDRAMと情報を交換することができる。メモリコントローラは、ホストシステムに送信される応答にメタデータ(例えば、読み出しコマンド又は確認応答又は書き込みコマンドの結果)を加えることによって、DRAMに情報を要求すること、又は記憶のための情報をDRAMに送信することができる。ホストプロセッサは、ホストシステムがメモリコントローラに送信する読み出しコマンド又は書き込みコマンド中に含まれるメタデータとして、要求された情報をDRAMからメモリコントローラに送信することができる。
いくつかの実施形態において、メモリコントローラとホストプロセッサとは、コマンドと、適用可能なDRAM情報を含む応答とを交換する。例えば、メモリコントローラは、特定のメモリページを読み出すとき、読み出し動作で使用される読み出ししきい値を、読み出し結果とともにホストプロセッサに送信することができる。それに応答して、ホストプロセッサは、読み出ししきい値をDRAMに記憶する。ホストプロセッサは、読み出しコマンドをメモリコントローラに送信するとき、(DRAMから読み出される)適用可能な読み出ししきい値を、読み出しコマンドの一部としてメモリコントローラに送信することができる。
本明細書で説明する実施形態は、主に、ホストDRAMの使用を対象とするが、本明細書で説明する方法及びシステムは、スタティックRAM(SRAM)などの他の種類のホストメモリを利用してもよい。ホストメモリを割り当てること及びそれを使用することに加えて、又はその代替として、メモリコントローラは、不揮発性メモリにアクセスするために、ホストの種々の他のリソースを使用することができる。例えば、メモリコントローラは、不揮発性メモリへのアクセスの一部として種々の論理演算(例えば、XOR演算又は比較)を実行するために、ホスト内のハードウェア論理回路を使用することができる。別の例として、メモリコントローラは、その供給電圧をホストから受け取ることができる。そのような実施形態では、ホストは、安定し、調整された供給電圧、及び/又はフィルタリングされた供給電圧をメモリコントローラに提供することができ、それにより、メモリコントローラは、そのオンチップ調整回路、安定化回路、及び/又はフィルタリング回路を最小化することができる。その結果、メモリコントローラの電力効率を増大させることができ、その放熱を低減させることができる。例えば、メモリコントローラは、1.8V又は3.3Vの供給電圧を受け取り、それを内部で低下させるのではなく、ホストから調整済みの1.2Vの供給電圧を受け取ることができる。
更に別の例として、メモリコントローラは、不揮発性メモリから読み出したデータに対して干渉キャンセル計算を実行するために、ホストを呼び出すことができる。そのような実施形態では、ホストは、不揮発性メモリから読み出した1つ以上のページの読み出し結果並びに隣接ページの読み出し結果を提供され得る。ホストは、次いで、隣接ページの読み出し結果に基づいて読み出し結果中の干渉をキャンセルし、それにより、干渉のないデータを生成することができる。
更に別の例として、ECC復号を実行するために、ホストを呼び出すことができる。いくつかの実施形態において、高性能ECC復号器(例えば、ソフト復号器)は、ホストのより高い固有の計算量を使用して、及び/又は専用のハードウェアを使用して、ホストで実装することができる。これらの実施形態では、メモリコントローラは、不揮発性メモリから読み出された符号語をホストに提供する。次いで、ホストはECCを復号し、それにより、データが再構成される。例示的な実施形態では、メモリコントローラは特定のECC復号器を備え、ホストは別のECC復号器を備える。ホスト内の復号器は、より複雑であり、メモリコントローラ中の復号器よりも高い誤り訂正能力を有する。例えば、メモリコントローラ中の復号器は、ハード復号を適用することができ、ホスト内の復号器はソフト復号を適用することができる。これらの実施形態では、メモリコントローラは、最初に、そのローカルECC復号器を使用して、所与の符号語の復号を試行する。最初の試行が失敗した場合、メモリコントローラは、符号語を復号するためにホスト内のより高性能のECC復号器を呼び出す。
ホスト支援型ブロックコンパクション
典型的なフラッシュメモリにおいて、データはページ単位でメモリデバイス28に書き込まれるが、消去はメモリブロック全体に適用される。データは消去されたページのみに書き込まれ、したがって、インプレースでデータを更新することはできない。データを更新することは、更新されたデータをフラッシュメモリ中の別の物理的記憶位置に書き込むこと、データの前のバージョンに無効であるとマークすること、及びデータの論理アドレスをデータが記憶される物理的格納位置に変換する論理−物理アドレスマッピングを動的に更新することを伴う。
上記の特性のために、メモリデバイス28のメモリブロックは、無効データページを徐々に累積する。無効データページの更新されたバージョンは、他の物理的記憶位置に記憶されている。無効ページの数を低減するために、メモリコントローラ32のプロセッサ44は、コンパクション又は「ガベージコレクション」プロセスを実行する。このバックグラウンドプロセスは、コンパクションのために(ソースブロックと呼ばれる)1つ以上のメモリブロックを選択し、選択されたソースブロックから、(ターゲットブロックと呼ばれる)1つ以上の他のブロック中の他の記憶位置に有効データをコピーし、次いで、ソースブロックを消去する。すると、消去されたブロックは、後続のプログラミングが行える状態になる。
図4は、本発明の一実施形態に係る、ホスト支援型ブロックコンパクションのための方法を模式的に示すフローチャートである。方法は、メモリコントローラ32のプロセッサ44が、ソースブロック選択ステップ110において、コンパクションのために1つ以上のソースブロックを選択することから始まる。各ソースブロックは、典型的には、有効データと無効データとを含む。メモリコントローラは、任意の好適な基準を使用してソースブロックを選択することができ、例えば、無効データの量が最も多いブロックを選択することができる。
プロセッサ44は、ソース転送ステップ114において、選択したソースブロックをホストシステム44に転送する。プロセッサ44は、ソースブロックを、上述のインタフェース及び転送スキームのいずれかを使用して、例えば、ホストバス56を使用してホストプロセッサ48に、又は専用のインタフェース60を使用して直接DRAM52に転送することができる。
いくつかの実施形態において、プロセッサ44はまた、有効データを識別する指示をホストに送信し、それにより、ホストは、その指示に基づいて、ソースブロックから有効データのみを読み出すことが可能である。任意の好適な種類の指示を、ソースブロックの一部として、又は別々に送信することができ、任意の好適なインタフェースを使用して、その指示をホストに送信することができる。代替実施形態では、メモリコントローラは、ソースブロック全体ではなく、ソースブロックのうちの有効データのみをホストに転送する。本特許出願の文脈及び特許請求の範囲において、有効データのみを転送することも、コンパクションのためにソースブロックを転送することとみなされる。
ホストプロセッサ48は、コンパクションステップ118において、ソースブロックをコンパクションする。典型的には、ホストプロセッサは、ソースブロックから有効データをコピーし、それを1つ以上の宛先ブロックに順次記憶する。その結果、無効データの領域をなくしながら、有効データがコンパクトな様式で宛先ブロックに記憶される。宛先ブロックは、DRAM52に記憶される。
宛先転送ステップ122において、ホストシステム24からメモリコントローラ32に宛先ブロックを転送する。宛先ブロックの転送は、上述のインタフェース及び転送スキームのいずれかを使用して、例えば、ホストバス56を使用してホストプロセッサ48から、又は専用のインタフェース60を使用して直接DRAM52から実行することができる。
メモリコントローラ32のプロセッサ44は、記憶ステップ126において、宛先ブロックをメモリデバイス28に記憶する。更に、プロセッサ44は、有効データの新しい物理的記憶位置を指示するように、論理−物理アドレスマッピングを更新する。コンパクションプロセスが完了した後、プロセッサ44は、典型的には、ソースブロックを消去する。そのようにすると、これらのブロックは、新しいプログラミングのために利用可能である。
ホストのDRAM52は、典型的には、メモリコントローラ32の内部メモリよりもはるかに大きいので、ホストによってコンパクションを実行することは、メモリコントローラによって実行するよりも著しく効率的である。例えば、より大きなメモリ空間のおかげで、ホストプロセッサ48は、(ソースブロックからの)読み出し動作の長いシーケンス、その後に(宛先ブロックへの)書き込み動作の長いシーケンスを実行することによって、有効データをコピーすることが可能である。この種の順次動作は、コンパクションプロセスの効率を大幅に向上させる。
DRAM52中のメモリ空間が大きいことにより、ホストプロセッサ48は、多数のソースブロックと宛先ブロックとを同時に処理し、したがって、コンパクション性能を最適化することが可能になる。更に、ホストプロセッサの計算能力が高いことにより、コンパクションプロセスのレイテンシが短くなる。
したがって、上述の実施形態は例として挙げられており、本発明は、以上に具体的に図示され説明されたものに限定されないことが理解されるであろう。むしろ、本発明の範囲は、以上に説明した様々な特徴の組み合わせ及び部分的組み合わせの両方、並びに当業者であれば前述の説明を読むことによって想到するであろう、従来技術に開示されていないそれらの変型及び修正を含む。

Claims (19)

  1. データ記憶についての方法であって、
    ホストと、前記ホストとは別個であり、前記ホストのためにデータを不揮発性メモリに記憶するメモリコントローラとを含むシステムにおいて、コンパクションのために前記不揮発性メモリからの1つ以上のソースブロックを前記メモリコントローラから前記ホストに、転送することと、
    前記ソースブロックから1つ以上の宛先ブロックに有効データをコピーすることによって、前記ホスト内で前記ソースブロックをコンパクションすることと、
    前記ホストから前記メモリコントローラに前記宛先ブロックを転送することと、
    前記メモリコントローラによって、前記宛先ブロックを前記不揮発性メモリに記憶すること、を含み、
    前記1つ以上のソースブロックを前記メモリコントローラから前記ホストに転送することは、
    ハードウェア信号を使用して、前記メモリコントローラが、前記ホストに前記メモリコントローラと情報を交換する要求を送信することと、
    前記要求に応じて、前記ホストへ少なくとも1つのソースブロックの交換を開始することを含む
    ことを特徴とする方法
  2. 前記ソースブロックを転送することが、前記ソースブロックを前記ホストのランダムアクセスメモリ(RAM)に記憶することを含み、
    前記ソースブロックをコンパクションすることが、前記ホストのプロセッサを使用して前記宛先ブロックを生成することと、前記宛先ブロックを前記RAMに記憶することとを含むことを特徴とする請求項1に記載の方法。
  3. 前記有効データをコピーすることが、前記ソースブロックからの読み出し動作の第1のシーケンスを実行し、次いで、前記宛先ブロックへの書き込み動作の第2のシーケンスを実行することを含むことを特徴とする請求項1に記載の方法。
  4. 前記宛先ブロックを記憶することが、前記不揮発性メモリ中の前記宛先ブロックのそれぞれの物理的記憶位置を指示するために、論理−物理アドレスマッピングを更新することを含むことを特徴とする請求項1に記載の方法。
  5. 前記ソースブロックを転送することが、前記有効データを識別する指示を前記ホストに送信することを含み、前記ソースブロックをコンパクションすることが、前記指示に基づいて、前記ソースブロックから前記有効データを読み出すことを含むことを特徴とする請求項1に記載の方法。
  6. 前記ソースブロックを転送することが、前記有効データのみを前記ソースブロックから前記ホストに送信することを含むことを特徴とする請求項1に記載の方法。
  7. 前記ソースブロック及び前記宛先ブロックを転送することが、前記メモリコントローラと前記ホストとの間でメモリアクセスコマンドを交換するために使用される第2の物理インタフェースとは別個の第1の物理インタフェースを介して、前記ソースブロック及び前記宛先ブロックを送信することを含むことを特徴とする請求項1に記載の方法。
  8. 前記ソースブロック及び前記宛先ブロックを転送することが、前記ソースブロック及び前記宛先ブロックの転送に関する何れの動作も前記ホストが実行することなく、前記メモリコントローラによって前記ソースブロックを送信することと前記宛先ブロックをフェッチすることとを含むことを特徴とする請求項1に記載の方法。
  9. 前記ソースブロック及び前記宛先ブロックを転送することが、前記メモリコントローラと前記ホストとの間でメモリアクセスコマンドを交換するためにも使用される共通物理インタフェースを介して、前記ソースブロック及び前記宛先ブロックを送信することを含むことを特徴とする請求項1に記載の方法。
  10. 不揮発性メモリと通信するように構成される第1のインタフェースと、
    ホストと通信するように構成される第2のインタフェースと、
    コンパクションのために前記不揮発性メモリから前記ホストに1つ以上のソースブロックを転送し、前記ソースブロックから宛先ブロックに有効データをコピーすることによって前記ホスト内で生成された1つ以上の宛先ブロックを前記ホストから受信し、前記宛先ブロックを前記不揮発性メモリに記憶するように構成されるプロセッサと、を備え
    前記1つ以上のソースブロックを前記ホストへ転送するために、前記プロセッサは更に、
    ハードウェア信号を使用して、前記プロセッサと情報を交換するために前記ホストへ要求を送信し、
    前記要求に応じて、前記ホストへ少なくとも1つのソースブロックの交換を開始する
    ことを特徴とするデータ記憶装置。
  11. 前記プロセッサが更に、前記不揮発性メモリ中の前記宛先ブロックのそれぞれの物理的記憶位置を指示するために論理−物理アドレスマッピングを更新するように構成されることを特徴とする請求項10に記載のデータ記憶装置。
  12. 前記有効データをコピーするために、前記プロセッサが更に、前記ソースブロックからの読み出し動作の第1のシーケンスを実行し、次いで、前記宛先ブロックへの書き込み動作の第2のシーケンスを実行するように構成されることを特徴とする請求項10に記載のデータ記憶装置。
  13. 前記プロセッサが更に、前記有効データを識別する指示を前記ホストに送信し、それにより、前記ホストが、前記指示に基づいて前記ソースブロックから前記有効データを読み出すことが可能になるように構成されることを特徴とする請求項10に記載のデータ記憶装置。
  14. 前記プロセッサが更に、前記ソースブロックから前記有効データのみを前記ホストに送信するように構成されることを特徴とする請求項10に記載のデータ記憶装置。
  15. 前記プロセッサが更に、前記ホストとメモリアクセスを交換するために使用される第2の物理インタフェースとは別個の第1の物理インタフェースを介して、前記ソースブロック及び前記宛先ブロックを転送するように構成されることを特徴とする請求項10に記載のデータ記憶装置。
  16. 前記プロセッサが更に、前記ソースブロック及び前記宛先ブロックの転送に関する何れの動作も前記ホストが実行することなく、前記ソースブロックを送信し前記宛先ブロックをフェッチするように構成されることを特徴とする請求項10に記載のデータ記憶装置。
  17. 前記プロセッサが更に、前記プロセッサと前記ホストとの間でメモリアクセスコマンドを交換するためにも使用される共通物理インタフェースを介して、前記ソースブロック及び前記宛先ブロックを転送するように構成されることを特徴とする請求項10に記載のデータ記憶装置。
  18. 複数のメモリブロックを備える不揮発性メモリと、
    コンパクションのために前記不揮発性メモリの1つ以上のソースブロックを受信し、前記ソースブロックから1つ以上の宛先ブロックに有効データをコピーすることによって、前記ソースブロックをコンパクションするように構成されるホストと、
    コンパクションのために前記ソースブロックを選択し、
    前記ソースブロックを前記ホストに転送し、
    前記ホストから前記宛先ブロックを受信し、
    前記宛先ブロックを前記不揮発性メモリに記憶するように構成されるメモリコントローラと、を備え、
    前記ソースブロックを前記ホストへ転送するために、前記メモリコントローラは更に、
    ハードウェア信号を使用して、前記メモリコントローラと情報を交換するために前記ホストへ要求を送信し、
    前記要求に応じて、前記ホストへ少なくとも1つのソースブロックの交換を開始することを含
    ことを特徴とするシステム。
  19. 前記有効データをコピーするために、前記ホストが更に、前記ソースブロックからの読み出し動作の第1のシーケンスを実行し、次いで、前記宛先ブロックへの書き込み動作の第2のシーケンスを実行するように構成されることを特徴とする請求項18に記載のシステム。
JP2015528641A 2012-08-23 2013-08-22 ホスト支援型メモリブロックコンパクション Active JP5976939B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/593,237 2012-08-23
US13/593,237 US8977805B2 (en) 2009-03-25 2012-08-23 Host-assisted compaction of memory blocks
PCT/US2013/056069 WO2014031799A1 (en) 2012-08-23 2013-08-22 Host-assisted compaction of memory blocks

Publications (2)

Publication Number Publication Date
JP2015529917A JP2015529917A (ja) 2015-10-08
JP5976939B2 true JP5976939B2 (ja) 2016-08-24

Family

ID=49117956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015528641A Active JP5976939B2 (ja) 2012-08-23 2013-08-22 ホスト支援型メモリブロックコンパクション

Country Status (6)

Country Link
EP (1) EP2888666B1 (ja)
JP (1) JP5976939B2 (ja)
KR (1) KR101663437B1 (ja)
CN (1) CN104583977B (ja)
TW (1) TWI516928B (ja)
WO (1) WO2014031799A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11055215B2 (en) 2017-09-13 2021-07-06 Toshiba Memory Corporation Memory system and control method for garbage collection in a memory system

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959203B2 (en) 2014-06-23 2018-05-01 Google Llc Managing storage devices
JP6482322B2 (ja) * 2014-12-29 2019-03-13 東芝メモリ株式会社 メモリ装置及びプログラム
JP6378111B2 (ja) * 2014-12-29 2018-08-22 東芝メモリ株式会社 情報処理装置及びプログラム
US20160378352A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Efficient solid state drive data compression scheme and layout
CN105005536B (zh) * 2015-07-01 2019-08-06 忆正科技(武汉)有限公司 固态存储设备、主机的工作方法及固态存储设备、主机
JP6452595B2 (ja) * 2015-11-13 2019-01-16 株式会社日立ソリューションズ ファイルシステム及びプログラム
CN107526695B (zh) * 2016-06-20 2021-03-02 北京忆芯科技有限公司 NVMe配置空间实现方法与装置
JP6877134B2 (ja) * 2016-12-15 2021-05-26 株式会社東芝 電子装置、通信装置及びプログラム
KR20190029323A (ko) * 2017-09-12 2019-03-20 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
US11061612B2 (en) * 2019-05-20 2021-07-13 Micron Technology, Inc. Internal communication interface management
KR20200142393A (ko) 2019-06-12 2020-12-22 에스케이하이닉스 주식회사 저장 장치, 호스트 장치 및 그들의 동작 방법
US11416161B2 (en) * 2019-06-28 2022-08-16 Western Digital Technologies, Inc. Zone formation for zoned namespaces
CN112486417B (zh) * 2020-12-03 2023-07-04 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
KR102509987B1 (ko) * 2021-01-13 2023-03-15 삼성전자주식회사 호스트 및 스토리지 시스템을 포함하는 컴퓨팅 시스템
US11875036B2 (en) 2021-01-13 2024-01-16 Samsung Electronics Co., Ltd. Computing system including host and storage system and having increased write performance
CN115543221B (zh) * 2022-11-29 2023-03-14 苏州浪潮智能科技有限公司 固态硬盘的数据迁移方法、装置、电子设备及存储介质
KR102557557B1 (ko) 2023-04-19 2023-07-24 메티스엑스 주식회사 전자 장치 및 이를 포함하는 컴퓨팅 시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3703181B2 (ja) * 1995-09-28 2005-10-05 キヤノン株式会社 フラッシュrom管理方法及び装置
US5802069A (en) * 1995-11-13 1998-09-01 Intel Corporation Implementing mass storage device functions using host processor memory
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
JP2001014216A (ja) * 1999-06-28 2001-01-19 Sharp Corp メモリ制御装置
JP2006252137A (ja) * 2005-03-10 2006-09-21 Matsushita Electric Ind Co Ltd 不揮発性記憶装置の最適化方法
US7546412B2 (en) * 2005-12-02 2009-06-09 International Business Machines Corporation Apparatus, system, and method for global metadata copy repair
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
JP4675985B2 (ja) * 2008-03-01 2011-04-27 株式会社東芝 メモリシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11055215B2 (en) 2017-09-13 2021-07-06 Toshiba Memory Corporation Memory system and control method for garbage collection in a memory system

Also Published As

Publication number Publication date
EP2888666B1 (en) 2016-10-12
TWI516928B (zh) 2016-01-11
JP2015529917A (ja) 2015-10-08
KR101663437B1 (ko) 2016-10-14
TW201415226A (zh) 2014-04-16
CN104583977A (zh) 2015-04-29
WO2014031799A1 (en) 2014-02-27
CN104583977B (zh) 2017-07-14
KR20150038308A (ko) 2015-04-08
EP2888666A1 (en) 2015-07-01

Similar Documents

Publication Publication Date Title
JP5976939B2 (ja) ホスト支援型メモリブロックコンパクション
US8977805B2 (en) Host-assisted compaction of memory blocks
US8832354B2 (en) Use of host system resources by memory controller
US11237765B2 (en) Data writing method and storage device
US11593259B2 (en) Directed sanitization of memory
US10372603B2 (en) Handling of unaligned writes
JP6224253B2 (ja) フラッシュメモリ内に記憶されたデータの推測的プリフェッチ
US20100011154A1 (en) Data accessing method for flash memory and storage system and controller using the same
US10303384B1 (en) Task readiness for queued storage tasks
US20210072922A1 (en) Storage device and operating method thereof
CN110502449A (zh) 存储装置及其操作方法
US11243715B2 (en) Memory controller and operating method thereof
US11403011B1 (en) Host memory buffer allocation management
US11360886B2 (en) Storage device and operating method thereof
US20230058022A1 (en) Storage device and power management method thereof
US11455249B2 (en) Storage device for performing dump operation, method of operating storage device, computing system including storage device and host device for controlling storage device, and method of operating computing system
JP2023510764A (ja) キャッシュ内のデータブロックの書き込みモードの変更に基づくメディア管理動作の実施
US8713242B2 (en) Control method and allocation structure for flash memory device
US11294590B2 (en) Storage device with fail page replacement capability and operating method thereof
JP2023553681A (ja) メモリシステムの電力管理
KR20230063857A (ko) 스토리지 장치 및 전자 장치
JP2023044471A (ja) メモリシステム及びメモリ制御方法
CN114442921A (zh) 用于存储器子系统中的高速缓存读取的高速缓存释放命令

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160603

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160720

R150 Certificate of patent or registration of utility model

Ref document number: 5976939

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