JP2016522942A - 高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法 - Google Patents

高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法 Download PDF

Info

Publication number
JP2016522942A
JP2016522942A JP2016513995A JP2016513995A JP2016522942A JP 2016522942 A JP2016522942 A JP 2016522942A JP 2016513995 A JP2016513995 A JP 2016513995A JP 2016513995 A JP2016513995 A JP 2016513995A JP 2016522942 A JP2016522942 A JP 2016522942A
Authority
JP
Japan
Prior art keywords
flash memory
memory device
copy
host device
ftl table
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.)
Granted
Application number
JP2016513995A
Other languages
English (en)
Other versions
JP6190045B2 (ja
JP2016522942A5 (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 JP2016522942A publication Critical patent/JP2016522942A/ja
Publication of JP2016522942A5 publication Critical patent/JP2016522942A5/ja
Application granted granted Critical
Publication of JP6190045B2 publication Critical patent/JP6190045B2/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/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Abstract

態様は、フラッシュメモリデバイスのフラッシュ変換層(FTL)の性能を高くするためのシステムおよび方法を含む。フラッシュメモリデバイスの上に記憶されたFTLテーブルのコピーは、ホストデバイスのメモリにコピーすることができる。FTLテーブルのコピーは、フラッシュメモリデバイスのフラッシュメモリからの/への読出し/書込み操作のためにホストデバイスによって提供される論理アドレスと、フラッシュメモリの個々の物理アドレスとの間の変換のために、フラッシュメモリデバイスによって直接アクセスすることができる。フラッシュメモリデバイスは、FTLテーブルのコピーが記憶されるホストデバイスのメモリの一部への直接メモリアクセスが許容される。フラッシュメモリデバイスは、フラッシュメモリデバイスをホストデバイスのメモリに接続する通信バスをバス支配する。

Description

管理フラッシュ記憶性能は、その要求がますます過酷になっている。スマートフォン、タブレットおよびゲーミングデバイスなどのコンパクト大衆消費電子製品には、高い費用有効性および低電力記憶解決法が必要である。管理否定ANDまたはNOT AND(NAND)フラッシュ記憶装置の例には、組込み型マルチメディアカード(eMMC)、ユニバーサルフラッシュ記憶装置(UFS)、外部シリアルアドバンスト技術アタッチメント(eSATA)、ボールグリッドアレイ(BGA)SATA、ユニバーサルシリアルバス(USB)ドライブ、セキュアデジタル(SD)カード、ユニバーサル加入者識別モジュール(USIM)カードおよびコンパクトフラッシュ(登録商標)カードがある。NANDデバイスは、それらが低コストで、かつ、低電力であるので、モバイルアプリケーションでは一般的である。
既存の管理NANDフラッシュ記憶装置は、NANDフラッシュメモリ内に含まれている大型ファイル変換層(FTL)テーブルを利用しており、オンチップスタティックランダムアクセスメモリ(SRAM)にキャッシュするのはテーブルの微小部分にすぎない。管理NANDデバイスへの読出しおよび書込みアクセスは、FTLテーブルからの情報を使用して物理NANDアドレスに変換しなければならない論理アドレスからなっている。これは、FTLテーブル項目をNANDメモリから読み出す際に、これらのタイプの記憶装置の総合性能を低下させる長い遅延(数十マイクロ秒程度の)をもたらしている。したがってNANDメモリデバイスにおける低コストおよび低電力消費の報いは、メモリアクセス時間性能の低下として現れている。
様々な態様は、フラッシュメモリデバイスによってホストデバイスの揮発性メモリにフラッシュメモリデバイスのFTLテーブルのコピーを記憶するステップと、フラッシュメモリデバイスによってホストデバイスの揮発性メモリに記憶されたFTLテーブルのコピーへのアクセスを受け取るステップと、読出し操作および書込み操作のうちの少なくとも1つの部分として、フラッシュメモリデバイスによってホストデバイスの揮発性メモリに記憶されたフラッシュメモリデバイスのFTLテーブルのコピーにアクセスするステップとを含む、フラッシュメモリデバイスのフラッシュ変換層(FTL)の性能を高くするための方法およびシステムを提供する。一態様方法は、ホストデバイスから、フラッシュメモリデバイス内のFTLテーブルのサイズに対する問合せを受け取るステップと、FTLテーブルのサイズをフラッシュメモリデバイスからホストデバイスに返すステップと、フラッシュメモリデバイスから、FTLテーブルのサイズをホストデバイスで受け取るステップと、ホストデバイスによって、ホストデバイスの揮発性メモリがすべてのFTLテーブルを記憶することができるかどうかを決定するステップとをさらに含むことができる。一態様方法は、ホストデバイスによってホストデバイスの揮発性メモリを細分割するステップであって、細分割のサイズがFTLテーブルのサイズに基づくステップと、フラッシュメモリデバイスによって、FTLテーブルのコピーが記憶されるホストデバイスの揮発性メモリの細分割区分に対する直接メモリアクセス読出し特権を受け取るステップと、フラッシュメモリデバイスによって、FTLテーブルのコピーが記憶されるホストデバイスの揮発性メモリの細分割区分に対する直接メモリアクセス書込み特権を受け取るステップとをさらに含むことができ、FTLテーブルのコピーを記憶するステップは、フラッシュメモリデバイスによってホストデバイスの揮発性メモリの細分割区分にFTLテーブルのコピーを記憶するステップをさらに含む。
一態様では、FTLテーブルのコピーにアクセスするステップは、フラッシュメモリデバイスによって、フラッシュメモリデバイスとホストデバイスの揮発性メモリとを通信接続する通信バスをバス支配するステップをさらに含むことができる。
一態様では、FTLテーブルのコピーにアクセスするステップは、フラッシュメモリデバイスの中に、論理アドレスの読出し操作要求をホストデバイスから受け取るステップと、フラッシュメモリデバイスによって読出し操作を開始するステップと、フラッシュメモリデバイスによってFTLテーブルのコピーの少なくとも一部を読み出すステップと、フラッシュメモリデバイスによって、論理アドレスに対応する物理アドレスを決定するステップと、フラッシュメモリデバイスによって、フラッシュメモリデバイスのメモリの物理アドレスに記憶されているデータを検索するステップと、フラッシュメモリデバイスによってデータをホストデバイスに返すステップとを含むことができる。
一態様では、FTLテーブルのコピーにアクセスするステップは、フラッシュメモリデバイスによって、論理アドレスの書込み操作要求をホストデバイスから受け取るステップと、フラッシュメモリデバイスによって書込み操作を開始するステップと、フラッシュメモリデバイスによってデータをフラッシュメモリデバイスのメモリの物理アドレスに書き込むステップと、データが書き込まれると、FTLテーブルのコピーを更新してフラッシュメモリデバイスのメモリに対してなされた変更に対応させるために、フラッシュメモリデバイスによってFTLテーブルのコピーに書き込むステップと、フラッシュメモリデバイスによって書込み操作の完了通知をホストデバイスに送るステップとを含むことができる。一態様方法は、フラッシュメモリデバイスによってFTLテーブルのコピーの少なくとも一部を読み出すステップと、フラッシュメモリデバイスによって論理アドレスに対応する物理アドレスを決定するステップとをさらに含むことができる。一態様方法は、フラッシュメモリデバイスによってフラッシュメモリデバイスのSRAMを読み出すステップと、フラッシュメモリデバイスによって、フラッシュメモリデバイスのメモリ内の自由記憶空間の位置を示す物理アドレスを決定するステップとをさらに含むことができる。一態様方法は、フラッシュメモリデバイスによって、ホストデバイスの揮発性メモリ内へのFTLテーブルのコピーの記憶が完了したことを示す通知をホストデバイスに送るステップをさらに含むことができる。一態様方法は、フラッシュメモリデバイスによって、スケジュール、利用可能な資源および書込み操作の完了からなるグループから選択されるパラメータに基づいて、FTLのコピーを使用してフラッシュメモリデバイスのFTLテーブルを更新するステップをさらに含むことができる。一態様方法は、ホストデバイスによって、フラッシュメモリデバイスがホストデバイスの揮発性メモリ内へのFTLテーブルのコピーのホストキャッシングをサポートするかどうかを決定するステップをさらに含むことができる。一態様方法は、ホストデバイス内で、FTLテーブルのコピーの記憶完了通知をフラッシュメモリデバイスから受け取るステップをさらに含むことができる。
一態様は、フラッシュメモリデバイスによってホストデバイスの揮発性メモリ上にフラッシュメモリデバイスのFTLテーブルのコピーを記憶し、かつ、フラッシュメモリデバイスによってホストデバイスの揮発性メモリに記憶されたFTLテーブルのコピーへのアクセスを受け取ることによって、システムにシステムのフラッシュメモリデバイスのフラッシュ変換層の性能を高くさせるように構成されたプロセッサ実行可能ソフトウェア命令をその上に記憶した非一時的プロセッサ可読記憶媒体を含む。記憶される命令は、読出し操作および書込み操作のうちの少なくとも1つの部分として、フラッシュメモリデバイスによってホストデバイスの揮発性メモリに記憶されたフラッシュメモリデバイスのFTLテーブルのコピーにアクセスするための命令を含むことも可能である。非一時的プロセッサ可読記憶媒体は、その上に記憶された、上で説明した態様方法の他の操作をシステムに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有することができる。
一態様は、揮発性メモリおよび該揮発性メモリに結合された第1のプロセッサを有するホストデバイスと、フラッシュメモリデバイスとを含む計算システムを含み、システムは、フラッシュメモリデバイスによってホストデバイスの揮発性メモリにフラッシュメモリデバイスのFTLテーブルのコピーを記憶し、フラッシュメモリデバイスによってホストデバイスの揮発性メモリに記憶されたFTLテーブルのコピーへのアクセスを受け取り、かつ、読出し操作および書込み操作のうちの少なくとも1つの部分として、フラッシュメモリデバイスによってホストデバイスの揮発性メモリに記憶されたフラッシュメモリデバイスのFTLテーブルのコピーにアクセスすることによってフラッシュメモリデバイスの性能を高くすることができる。
一態様は、フラッシュメモリデバイスによってホストデバイスの揮発性メモリにフラッシュメモリデバイスのFTLテーブルのコピーを記憶するための手段を含むフラッシュメモリデバイスのフラッシュ変換層の性能を高くするように構成されたシステムを含む。また、システムは、フラッシュメモリデバイスによってホストデバイスの揮発性メモリに記憶されたFTLテーブルのコピーへのアクセスを受け取るための手段と、読出し操作および書込み操作のうちの少なくとも1つの部分として、フラッシュメモリデバイスによってホストデバイスの揮発性メモリに記憶されたフラッシュメモリデバイスのFTLテーブルのコピーにアクセスするための手段を含むことも可能である。
他の態様は、ホストデバイスに結合するように構成されたフラッシュメモリデバイスであって、論理アドレスと物理アドレスとの間の変換に使用するためのFTLテーブルを含んだデータを記憶するように構成されたフラッシュメモリと、フラッシュメモリに結合された、ホストデバイスの揮発性メモリにフラッシュメモリデバイスのフラッシュ変換層FTLテーブルのコピーを記憶するステップ、ホストデバイスの揮発性メモリに記憶されたFTLテーブルのコピーへのアクセスを受け取るステップ、および読出し操作および書込み操作のうちの少なくとも1つの部分として、ホストデバイスの揮発性メモリに記憶されたフラッシュメモリデバイスのFTLテーブルのコピーにアクセスするステップを含む操作を実施するためのプロセッサ実行可能命令を使用して構成されるプロセッサとを含むフラッシュメモリデバイスを含む。
他の態様は、ホストデバイスに結合するように構成されたデバイスであって、フラッシュメモリデバイスのFTLテーブルのコピーをホストデバイスの揮発性メモリに記憶するための手段と、ホストデバイスの揮発性メモリに記憶されたFTLテーブルのコピーへのアクセスを受け取るための手段と、読出し操作および書込み操作のうちの少なくとも1つの部分として、ホストデバイスの揮発性メモリに記憶されたフラッシュメモリデバイスのFTLテーブルのコピーにアクセスするための手段とを含むデバイスを含む。
他の態様は、フラッシュメモリデバイスに結合するように構成されたホストデバイスであって、揮発性メモリと、ホストデバイスの揮発性メモリを通信接続し、ホストデバイスに結合されるとフラッシュメモリデバイスに通信するように構成された通信バスと、フラッシュメモリデバイスが揮発性メモリ内へのフラッシュメモリデバイスのFTLテーブルのコピーのホストキャッシングをサポートするかどうかを決定するステップ、FTLテーブルのコピーを記憶するために揮発性メモリの一部を割り当てるステップ、および通信バスを介した揮発性メモリの上記部分への直接メモリアクセス読出しおよび書込み特権をフラッシュメモリデバイスに許容するステップを含む操作を実施するプロセッサ実行可能命令を使用して構成されるプロセッサとを含むホストデバイスを含む。
本明細書に組み込まれ、本明細書の一部を構成している添付の図面は、本発明の例示的態様を示したものであり、上で示した一般的な説明および以下の詳細な説明とともに本発明の特徴を説明する働きをしている。
一態様による、フラッシュメモリデバイスに通信接続されたホストデバイスを有するシステムを示す構成要素ブロック図である。 様々な態様とともに使用するのに適したモバイルデバイスの一例の構成要素線図である。 FTLホストキャッシングを初期化するための一態様方法を示すプロセス流れ図である。 FTLホストキャッシングを初期化するための一態様方法を示すプロセス流れ図である。 FTLホストキャッシングを使用して読出し操作を実行するための一態様方法を示すプロセス流れ図である。 FTLホストキャッシングを使用して書込み操作を実行するための一態様方法を示すプロセス流れ図である。 FTLホストキャッシングを初期化するための一態様方法を示すプロセス流れ図である。 FTLホストキャッシングを使用して読出し操作を実行するための一態様方法を示すプロセス流れ図である。 FTLホストキャッシングを使用して書込み操作を実行するための一態様方法を示すプロセス流れ図である。 FTLホストキャッシングを使用して書込み操作を実行するための一態様方法を示すプロセス流れ図である。
様々な態様について、添付の図面を参照して詳細に説明する。可能である場合、同じまたは同様の部品を参照するためにすべての図面を通して同じ参照番号が使用される。参照される特定の例および実施態様は、実例で説明するためのものであり、本発明または特許請求の範囲を制限することは意図されていない。
「例示的」という語は、本明細書においては、「例、実例または例証として働く」ことを意味するべく使用されている。本明細書において「例示的」として説明されている何らかの実施態様は、必ずしも他の実施態様よりも好ましい、あるいは他の態様よりも有利な実施態様として解釈してはならない。
「モバイル計算デバイス」および「モバイルデバイス」という用語は、本明細書においては、セルラー電話、スマートフォン、パーソナルまたはモバイルマルチメディアプレーヤ、パーソナルデータアシスタント(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メールレシーバ、マルチメディアインターネットイネーブルセルラー電話、ワイヤレスゲーミングコントローラ、および電力保存方式が有利な方式であるよう、電池電力によって動作するメモリ、プログラマブルプロセッサを含む同様のパーソナル電子デバイスのうちの任意の1つまたはすべてを意味するべく交換可能に使用されている。様々な態様は、限られた資源を有し、かつ、電池電力で動作するスマートフォンなどのモバイル計算デバイスのためにとりわけ有用であるが、これらの態様は、一般に、フラッシュメモリデバイスとの使用に両立する任意の電子デバイスに有用である。
「フラッシュメモリ」という用語は、本明細書においては、電気的に消去し、かつ、プログラムすることができる電子不揮発性コンピュータ記憶装置またはメモリを意味している。フラッシュメモリデバイスアーキテクチャは、典型的にはNANDおよびNORタイプを含む。本明細書における態様は、一般に、フラッシュメモリデバイスのNANDタイプアーキテクチャに関している。フラッシュメモリは、データの一般的な記憶および転送のためのメインメモリ、メモリカード、USBフラッシュドライブ、ソリッドステートドライブおよび同様の製品に使用することができる。NANDフラッシュメモリデバイスの例には、組込み型マルチメディアカード(eMMC)、ユニバーサルフラッシュ記憶装置(UFS)、外部シリアルアドバンスト技術アタッチメント(eSATA)、ボールグリッドアレイ(BGA)SATA、ユニバーサルシリアルバス(USB)ドライブ、セキュアデジタル(SD)カード、ユニバーサル加入者識別モジュール(USIM)カードおよびコンパクトフラッシュ(登録商標)カードがある。
「フラッシュ変換層」および「FTL」という用語は、本明細書においては、フラッシュメモリデバイスのコントローラが論理アドレスの要求を実際のフラッシュメモリチップの中で物理アドレスに変換することができるようにするために生成されるディレクトリ構造を意味している。ディレクトリ構造は、任意の様々なデータ構造を含むことができる。例として、本明細書においては、FTLは、テーブルの形態をしているものとして説明される。
メモリ内における変換性能を高くするための技法の1つは、変換テーブル全体をキャッシュするために使用される専用のダイナミックランダムアクセスメモリ(DRAM)をソリッドステートドライブ(SSD)またはハードディスクドライブ(HDD)に追加することである。DRAMは、NANDフラッシュメモリまたはハードディスクメモリより約3桁速い速度でアクセスすることができるため、これは著しい性能の向上を提供することができる。しかしながら、この余分のDRAMは、内容を保持するために自己リフレッシュしなければならないので、DRAMをチップに追加することによってコストおよびスタンバイ電力の消費が著しく増加する。いくつかのラップトップコンピュータSSDは、そのようなコンピュータは、典型的には電力が制限されず、また、消費者は、そのようなデバイスに対してより多くの出費を予期しているため、このタイプの機構を使用して変換テーブルをキャッシュしている。しかしながら組込みDRAMメモリを有するNANDフラッシュメモリのコストおよび追加電力排出の増加は、スマートフォンなどのモバイル計算デバイスにとっては重大な欠点である。
様々な態様は、フラッシュメモリデバイス動作の性能を改善し、その一方でフラッシュメモリのための変換テーブルを記憶するためのホストデバイスのDRAMメモリの使用などによるコストおよび電力排出を最小化するように構成された方法、システムおよびデバイスを含む。これは、フラッシュメモリデバイスと通信するホストデバイスを含んだシステムによって達成することができ、ホストデバイスおよびフラッシュメモリは、フラッシュメモリデバイスがホストデバイスのより高速のメモリ資源を使用して、論理メモリアドレスと物理メモリアドレスとの間の変換のためにフラッシュメモリデバイスが使用する変換テーブルをキャッシュすることができるように構成される。
一態様では、ホストデバイスは、そのより高速のメモリ資源への直接メモリアクセスをフラッシュメモリデバイスに許容することができる。直接メモリアクセスは、より高速のメモリ資源に対する読出しおよび/書込み特権を含むことができる。フラッシュメモリデバイスは、そのような直接アクセス許可を使用して、FTLテーブルのコピーをホストデバイスのより高速のメモリ資源に記憶することができる。FTLテーブルのコピーの記憶を許容するに当たり、ホストデバイスは、そのより高速のメモリ資源を細分割し、FTLテーブルのコピーを含むのに適したサイズの特定の領域を提供することができる。したがってメモリの細分割区分のサイズは、FTLテーブルのサイズに基づくことができる。
他の態様では、フラッシュメモリデバイスに許容される直接メモリアクセス許可に起因する安全上の問題からホストデバイスを保護するために直接メモリアクセスを制限することができる。たとえばFTLテーブルのコピーのために指定されたより高速のメモリ資源の領域に対してのみ直接メモリアクセスを許容することができる。キー比較などの他の安全手段を規定することも可能である。ホストデバイスを保護するために取られるそのような安全手段および他の安全手段を適用してフラッシュメモリデバイスを保護することも可能であることも同じく想定されている。フラッシュメモリデバイスのための安全手段を実現することにより、ホストデバイスがFTLテーブルを破損するのを防止することができる。
フラッシュメモリデバイスに対する読出しおよび/または書込み操作がホストデバイスによって要求される場合、読出しおよび/または書込み操作要求は、フラッシュメモリデバイスからデータを読み出し、および/またはフラッシュメモリデバイスにデータを書き込むための論理アドレスを含むことができる。読出しおよび/または書込み要求を実行するために、フラッシュメモリデバイスは、FTLテーブルを使用して論理アドレスをそれ自身のメモリの物理アドレスに変換することができる。そのために、フラッシュメモリデバイスは、規定された論理アドレスを対応する物理アドレスに変換するために、その直接メモリアクセス許可を使用して、その規定された論理アドレスに関連するFTLテーブルのコピーからアドレスマッピング情報を検索することができる。
直接メモリアクセスは、FTLテーブルのコピーへの書込みをフラッシュメモリデバイスに許容することも可能である。ホストデバイスからの書込み要求が完了すると、フラッシュメモリデバイスは、データが書き込まれた物理アドレスを含むそれ自身のメモリ内容を変更する。そのメモリの変更を反映するために、フラッシュメモリデバイスは、ホストデバイスに記憶されているFTLテーブルを更新して現在の物理アドレスを反映することができる。この更新により、メモリに書き込まれた情報を後でアクセスすることができ、その情報が書き込まれた空間が自由空間ではないことを示すことができる。
他の態様では、フラッシュメモリデバイスは、メモリに直接アクセスして、ホストデバイスの高速メモリ資源に記憶されているFTLテーブルに基づいて、それ自身のメモリに記憶されているFTLテーブルを更新することができる。フラッシュメモリデバイスの変更を反映するためにFTLテーブルのコピーを更新する際に、フラッシュメモリデバイス内のFTLテーブルを同時に同じように更新する必要はない。フラッシュメモリに記憶されているFTLテーブルの更新を遅らせることにより、とりわけホストデバイスが頻繁なメモリ書込み操作を実施している場合に、電力資源を保存することができる。フラッシュメモリデバイスに対する変更の記録がフラッシュメモリデバイスに記憶されているFTLテーブルの不揮発性コピーに反映されていることを確認するために、これらのFTLテーブルをホストデバイスの高速メモリ資源に記憶されているFTLテーブルから周期的に更新することができる。そのために、フラッシュメモリデバイスは、ホストデバイスの高速メモリ資源に記憶されているFTLテーブルからFTLテーブルのコピー(または最後に更新されてからなされたFTLテーブルのコピーの変更)を検索し、かつ、FTLテーブルのコピーをフラッシュメモリに記憶し、事実上、それ自身のFTLテーブル(またはその変更部分)を上書きすることができる。そのようなプロセスでは、フラッシュメモリデバイスは、そのFTLテーブルをFTLテーブルのコピーに置き換え、FTLテーブルの2つのバージョンを比較して相違を決定し、かつ、その相違をそのFTLテーブルに書き込むか、あるいはFTLテーブルのコピーの変更をそのFTLテーブルに書き込むことができる。更新は、一度に、および/またはメモリアクセスあるいは電池電力などのシステム資源に対する影響を軽減し、あるいは最小化する方法で実行することも可能である。
一態様では、ホストデバイスおよびフラッシュメモリデバイスは、デバイス間の通信が通信バスを介して送信されるように接続することができる。ホストデバイスの高速メモリ資源に直接アクセスするために、フラッシュメモリデバイスは、フラッシュメモリデバイスをより高速のメモリ資源に接続する通信バスを制御するバスマスタとして機能させることができる。言い換えると、フラッシュメモリデバイスおよび通信バスは、フラッシュメモリデバイスに通信バスを介して通信トランザクションを開始させるように構成することができる。様々な態様は、ホストデバイスおよびフラッシュメモリデバイスにバス支配機能を提供するための異なる通信バス構成を有することができる。たとえばデバイスごとの専用通信バスがデバイスに個々の通信バスのためのバスマスタとして機能させることができるのは、場合によっては1つのデバイスのみである。他の例として、通信バス構成は、多重デバイスバス支配をサポートする、PCI Express(PCIe)または短待ち時間インターフェース(LLI)などのバス規格に準拠することができる。
様々な態様は、図1に示されているFTLホストキャッシングシステム10例などの様々なシステム内で実現することができる。FTLホストキャッシングシステム10は、プロセッサ24、52、メモリまたは記憶装置28、30、38、58、64、通信コントローラ26、32、54、メモリインターフェース60および通信リンク34、36、40、62、66を含むことができる。一態様では、プロセッサは、中央処理装置(CPU)24またはマイクロコントローラ(μCtrl)56であってもよい。他の態様は、CPU24およびマイクロコントローラ56を代替プロセッサに置き換えることができ、あるいは追加プロセッサを含むことができる。そのような他のプロセッサは、たとえば1つまたは複数の他のCPUまたはマイクロコントローラ、マイクロプロセッサ、グラフィック処理装置(GPU)、加速処理装置(APU)、物理処理装置(PPU)を含むことができる。
メモリまたは記憶装置28、30、38、58、64は、広範囲にわたる多数の揮発性および不揮発性タイプのメモリのうちの任意のメモリを含むことができる。一態様では、FTLホストキャッシングシステム10は、SRAM28、58、ROM30、DRAM38およびフラッシュメモリ64を含むことができる。他のタイプのメモリは、磁気メモリデバイス、光メモリデバイスまたはハイブリッドメモリデバイスを含むことができる。その上、FTLテーブル68は、フラッシュメモリ64に記憶することも可能であり、また、生成されると、FTLテーブルのコピー70をDRAM38上に記憶することができる。
通信コントローラ26、32、54、60は、FTLホストキャッシングシステム10の複数の構成要素間の通信を管理するように構成することができる。個々の通信コントローラ26、32、54は、とりわけ、特定の構成要素と他の構成要素との間の通信を管理することができる。たとえば直接メモリアクセス(DMA)バスコントローラ26は、CPU24と、DMAバスコントローラ26の一方の側のDRAM38およびもう一方の側のマイクロコントローラ56との間の通信を管理するように構成することができる。同様に、DMAバスコントローラ54は、DMAバスコントローラ54の一方の側のマイクロコントローラ56と、もう一方の側のCPU24との間の通信を管理することができる。DMAバスコントローラは、フラッシュメモリ64への直接メモリアクセスがCPU24に許容されると、フラッシュメモリ64とCPU24との間のアドレスおよびデータ通信を管理するように構成することも可能である。DRAMコントローラ32は、一方の側のDRAM38ともう一方の側のCPU24およびマイクロコントローラ54との間の通信を管理するように構成することができる。
メモリインターフェース60は、フラッシュメモリインターフェース60として構成することができる。一態様では、フラッシュメモリインターフェース60は、とりわけ、NANDまたはNORフラッシュメモリアーキテクチャのために構成することができる。一態様では、フラッシュメモリインターフェース60は、フラッシュメモリインターフェース60がページアドレス指定方式でフラッシュメモリ64への読出しおよび書込みアクセスを提供するNANDアーキテクチャのために構成することができる。
通信リンク34、36、40、62、66は、FTLホストキャッシングシステム10の様々な構成要素間のアドレスおよびデータ通信のための経路を提供することができる。様々な態様では、通信リンク34、36、40、62、66は、単一のデバイスの構成要素間の内部通信、または主デバイスと周辺デバイスとの間の外部通信のために構成することができる。ホストバスは、たとえばCPU24、DMAバスコントローラ26、SRAM28、ROM30およびDRAMコントローラ32の間の通信経路を提供することができる。DRAMバス36は、DRAM36と、DRAMコントローラ32のような他の構成要素との間の通信経路を提供することができる。記憶装置バス40は、DMAバスコントローラ26、54間の通信経路を提供することができる。フラッシュメモリデバイスバス62は、DMAバスコントローラ54、マイクロコントローラ56、SRAM58およびフラッシュメモリインターフェース60の間の通信経路を提供することができる。フラッシュメモリバス66は、フラッシュメモリ64と、フラッシュメモリインターフェース60のような他の構成要素との間の通信経路を提供することができる。
いくつかの態様では、これらの構成要素のいくつかまたはすべての組合せがホストデバイス20およびフラッシュメモリデバイス50を形成する。様々な態様では、ホストデバイス20およびフラッシュメモリデバイス50は、別々に収納される、通信リンク40を介して通信する能力を有するデバイスとして構成することができる。制限することを意味しない例として、ホストデバイス20は、CPU24、DMAバスコントローラ26、SRAM28、ROM30、DRAMコントローラ32、ホストバス34、DRAMバス36、DRAM38および記憶装置バス40の一部またはすべてから構成することができる。この例を続けると、フラッシュメモリデバイス50は、記憶装置バス40の一部またはすべて、DMAバスコントローラ54、マイクロコントローラ56、SRAM58、フラッシュメモリインターフェース60、フラッシュメモリデバイスバス62、フラッシュメモリ64およびフラッシュメモリバス66から構成することができる。
ホストデバイス20の一態様では、構成要素をさらに組み合わせて、システムオンチップ(SoC)22などの集積回路にすることも可能である。SoC22の構成要素は、CPU24、DMAバスコントローラ26、SRAM28、ROM30、DRAMコントローラ32、ホストバス34ならびにDRAMバス36および記憶装置バス40の一部またはすべてを含むことができる。同様に、フラッシュメモリデバイス50は、管理フラッシュメモリコントローラ52などの集積回路に組み合わされた構成要素をさらに含むことができる。管理フラッシュメモリコントローラ52の構成要素は、記憶装置バス40およびフラッシュメモリバス66の一部またはすべて、DMAバスコントローラ54、マイクロコントローラ56、SRAM58、フラッシュメモリインターフェース60およびフラッシュメモリデバイスバス62を含むことができる。
図2は、FTLホストキャッシングシステム10に使用するのに適したモバイルデバイス200の一例を示したものである。様々な態様では、モバイルデバイス200は、タッチスクリーンコントローラ204および内部メモリ206に結合されたプロセッサ202を含むことができる。内部メモリ206は揮発性または不揮発性メモリであってもよく、また、安全保護および/または暗号化メモリであっても、または非安全保護および/または非暗号化メモリであっても、あるいはそれらの任意の組合せであってもよい。タッチスクリーンコントローラ204およびプロセッサ202は、抵抗知覚タッチスクリーン、容量知覚タッチスクリーン、赤外線知覚タッチスクリーン、等々などのタッチスクリーンパネル212に結合することも可能である。モバイルデバイス200は、1つまたは複数の無線信号トランシーバ208(たとえばPeanut(登録商標)、Bluetooth(登録商標)、Zigbee(登録商標)、Wi-Fi、RF無線)、および送り、かつ、受け取るためのアンテナ210を有することができる。トランシーバ208およびアンテナ210は、様々なワイヤレス送信のプロトコルスタックおよびインターフェースを実現するために、上述の回路とともに使用することができる。モバイルデバイス200は、セルラーネットワークを介した通信を可能にするセルラーネットワークワイヤレスモデムチップ216を含むことができる。モバイルデバイス200は、プロセッサ202に結合され、また、フラッシュメモリデバイス50に接続するように構成された周辺デバイス接続ポート218を含むことができる。周辺デバイス接続ポート218は、1つのタイプの接続を受け取るために単独で構成することも、あるいはUSB、FireWire、ThunderboltまたはPCIeなどの様々なタイプの物理的通信接続を受け取るために複合的に構成することもできる。また、モバイルデバイス200は、音声出力を提供するためのスピーカ214を含むことも可能である。また、モバイルデバイス200は、プラスチック、金属または材料の組合せで構築された、本明細書において説明されている構成要素のすべて、またはいくつかを含むためのハウジング220を含むことも可能である。
ホストデバイスの高速メモリ資源にFTLテーブルをキャッシングする様々な態様は、FTLホストキャッシングシステム10によるFTLホストキャッシュ初期化方法300の実行を含むことができ、図3は、その一態様を示したものである。FTLホストキャッシュ初期化方法300は、ホストデバイス20によって開始することができる。方法300を開始するために、ホストデバイス20は、ブロック302で、広く使用されているプロセスまたは所有権を主張することができるプロセスのいずれかによってフラッシュメモリデバイス50を初期化することができる。どちらかのプロセスが完了するか、あるいはメモリデバイス50を初期化している間、ホストデバイス20は、決定ブロック304で、フラッシュメモリデバイス50がFTLホストキャッシングをサポートするかどうかを決定するためにフラッシュメモリデバイス50に問い合わせることができる。フラッシュメモリデバイス50がFTLホストキャッシングをサポートしない(すなわち決定ブロック304=「No」である)場合、ホストデバイス20は、ブロック306でフラッシュメモリデバイス50を共通フラッシュメモリデバイスとして取り扱う。
フラッシュメモリデバイス50がFTLホストキャッシングをサポートする(すなわち決定ブロック304=「Yes」である)ことをホストデバイス20が決定すると、ホストデバイス20は、ブロック308でFTLテーブル68のサイズをフラッシュメモリデバイス50に問い合わせることができる。FTLテーブル68のサイズの情報がホストデバイスにもたらされると、ブロック312でホストデバイス20は、そのDRAM38を細分割し、記憶するのに十分な空間を確保し、かつ、FTLテーブルのコピー70を修正することができる。ブロック314でホストデバイス20は、細分割されたDRAM38の部分に対する読出しおよび/または書込み特権を含む直接メモリアクセスをフラッシュメモリデバイス50に許容し、FTLテーブルのコピー70のために取っておくことができる。FTLテーブルのコピー70がDRAM38に記憶されると、ホストデバイス20は、ブロック316で、FTLテーブル68のコピーが完了したことを知らせる通知を受け取ることができる。
フラッシュメモリデバイス50がFTLホストキャッシングをサポートする(すなわち決定ブロック304=「Yes」である)ことをホストデバイス20が決定すると、ホストデバイス20は、決定ブロック310で、ホストデバイス20がFTLテーブル68のすべてをそれ自身のDRAM38内に記憶することができるかどうか決定することができる。ホストデバイス20がFTLテーブル68のすべてをそれ自身のDRAM38内に記憶することができる(すなわち決定ブロック310=「Yes」である)場合、ホストデバイス20は、ブロック312でそのDRAM38を細分割し、ブロック314でフラッシュメモリデバイス50に直接メモリアクセスを許容し、また、ブロック316で、FTLテーブル68のコピーが完了したことを知らせる通知を受け取る(本明細書において説明されているように)。
ホストデバイス20がFTLテーブル68のすべてをそれ自身のDRAM38内に記憶することができない(すなわち決定ブロック310=「No」である)場合、ホストデバイス20は、ブロック318で、DRAM38内で利用可能な空間の量をフラッシュメモリデバイス50に知らせることができ、また、ブロック312を参照して上で説明した動作を継続することができる。ホストデバイス20がFTLテーブル68のすべてを記憶することができない(すなわち決定ブロック310=「No」である)場合、ブロック320でホストデバイス20は、フラッシュメモリデバイス50を共通フラッシュメモリデバイスとして、あるいはFTLホストキャッシングをサポートしないフラッシュメモリデバイスとして取り扱うことができる。
FTLホストキャッシュ初期化方法300の代替態様は、FTLホストキャッシングを初期化し、かつ、ホストデバイス20がFTLホストキャッシングをサポートするかどうかを決定するためにホストデバイス20に問い合わせるフラッシュメモリデバイス50を含むことができる。そのような態様では、ブーティング時に、FTLホストキャッシュ初期化方法300を実行する前に、ホストデバイス20は、FTLホストキャッシングを見越してそのDRAM38の細分割区分を取っておくことができる。フラッシュメモリデバイス50がホストデバイス20に接続されると、FTLホストキャッシュ初期化方法300を開始することができ、その時点でフラッシュメモリデバイス50は、ホストデバイス20がFTLホストキャッシングをサポートするかどうかを決定するためにホストデバイス20に問い合わせることができる。ホストデバイス20がFTLホストキャッシングをサポートしない場合、フラッシュメモリデバイス50は、ホストデバイス20を共通ホストデバイスとして取り扱うことができる。ホストがFTLホストキャッシングをサポートする場合、FTLホストキャッシュ初期化方法300の残りの操作(たとえばブロック308〜320)を実行することができる。
FTLホストキャッシング初期化方法300の様々な態様は、図4に示されている操作をさらに含むことができる。そのような操作は、図3に示されている操作と同時に、適切な順序で実施することができる。ホストデバイス20によって初期化されると、ブロック400でフラッシュメモリデバイス50は、ホストデバイス20からの、フラッシュメモリデバイス50がFTLホストキャッシングをサポートするかどうかを決定するための問合せに応答することができる。FTLホストキャッシング初期化方法300の態様は、この問合せに対する受動的応答または能動的応答のいずれかを含むことができる。たとえば応答が受動的である場合、ホストデバイス20は、特定のレジスタ内またはフラッシュメモリデバイス50のメモリ記憶位置の値を読み出して、FTLホストキャッシングのサポートを決定することができる。能動応答は、たとえば、フラッシュメモリデバイス50がFTLホストキャッシングをサポートするか否かを示す特定の信号をホストデバイス20に送るフラッシュメモリデバイス50を含むことができる。能動応答態様では、応答の欠如は、フラッシュメモリデバイス20がFTLホストキャッシングをサポートするか否かの同じく指示であってもよい。
フラッシュメモリデバイス50がFTLホストキャッシングコンパチブルである場合、ブロック402でフラッシュメモリデバイス50は、FTLテーブル68のサイズに対するホストデバイス20からの問合せに応答することができる。この応答には、FTLテーブル全体のコピーを記憶するのに必要なメモリの量を示す値を返すことを含むことができる。ブロック402におけるこの応答の様々な態様も能動応答および受動応答を含むことができ、これは、ブロック400における、FTLホストキャッシング両立性を決定するための問合せに対する応答の場合と非常によく似ている。ホストデバイス20が直接メモリアクセス許可をフラッシュメモリデバイス50に許容すると、ブロック404でフラッシュメモリデバイス50は、FTLテーブルの完全なコピー70をホストデバイス20のDRAM38に書き込むことができる。別法としては、ホストデバイス20がFTLテーブル68のすべてを記憶することができないことをホストデバイス20が決定すると、フラッシュメモリデバイス50は、直接メモリアクセス許可がフラッシュメモリデバイス50に許容された後、ブロック408でFTLテーブルの部分コピー70をDRAM38に書き込むことができる。この操作が完了すると、ブロック406でフラッシュメモリデバイス50は、FTLテーブルのコピー70がホストデバイス20のDRAM38に記憶されたことを示す通知をホストデバイス20に送ることができる。
フラッシュメモリ64から、および/またはフラッシュメモリ64への読出しおよび/または書込み操作を補助するために、FTLホストキャッシングの様々な態様は、ホストデバイス20のDRAM38に記憶されているFTLテーブルのコピー70から読み出し、および/またはFTLテーブルのコピー70に書き込むフラッシュメモリデバイス50を含むことができる。一態様では、図5に示されている、フラッシュメモリデバイス50からの読出し操作500を実現することができる。ブロック502でフラッシュメモリデバイス50は、ホストデバイス20から、フラッシュメモリ64の論理アドレスが結合された読出し要求を受け取ることができる。要求された操作および論理アドレスの情報がもたらされると、フラッシュメモリデバイス50は書込み操作を開始することができる。ブロック504でフラッシュメモリデバイス50は、ホストデバイス20のDRAM38に記憶されているFTLテーブルのコピー70に直接アクセスすることができる。読出し操作500の一態様では、DRAM38への直接メモリアクセスのためにフラッシュメモリデバイス50に許容される許可により、フラッシュメモリデバイス50はバスを支配することができ、あるいはデバイス20、50を接続している記憶装置バス40を介してコマンドを発することができる。ホストデバイス20のDRAM38に直接アクセスすると、ブロック506でフラッシュメモリデバイス50は、論理アドレスが結合されたFTLテーブルのコピー70から情報を読み出し/検索することができる。
必要な情報をFTLテーブルのコピー70から検索すると、ブロック508でフラッシュメモリデバイス50は、論理アドレスをフラッシュメモリ64の物理アドレスに変換することができる。ブロック510でフラッシュメモリデバイス50は、フラッシュメモリ64にアクセスすることができ、また、ブロック512で、物理アドレスに記憶されているデータを検索し/読み出すことができる。そのフラッシュメモリ64からデータを検索すると、ブロック514でフラッシュメモリデバイス50は、データをホストデバイス20に返して読出し要求を完了することができる。
他の態様では、図6に示されている、フラッシュメモリデバイス50への書込み操作600を実現することができる。ブロック602でフラッシュメモリデバイス50は、ホストデバイス20から、フラッシュメモリ64の論理アドレスが結合された書込み要求を受け取ることができる。要求された操作および論理アドレスの情報がもたらされると、フラッシュメモリデバイス50は書込み操作を開始することができる。ブロック604でフラッシュメモリデバイス50は、次に、ホストデバイス20のDRAM38に記憶されているFTLテーブルのコピー70に直接アクセスすることができる。書込み操作600の一態様では、DRAM38への直接メモリアクセスのためにフラッシュメモリデバイス50に許容される許可により、フラッシュメモリデバイス50はバスを支配することができ、あるいはデバイス20、50を接続している記憶装置バス40を介してコマンドを発することができる。ホストデバイス20のDRAM38に直接アクセスすると、ブロック606でフラッシュメモリデバイス50は、論理アドレスが結合されたFTLテーブルのコピー70から情報を読み出し/検索することができる。
必要な情報をFTLテーブルのコピー70から検索すると、ブロック608でフラッシュメモリデバイス50は、論理アドレスをフラッシュメモリ64の物理アドレスに変換することができる。ブロック610でフラッシュメモリデバイス50は、フラッシュメモリ64にアクセスすることができ、また、ブロック612で、書込み要求に関連するデータをフラッシュメモリ64の物理アドレスに書き込むことができる。データがフラッシュメモリ64に記憶されると、ブロック614でフラッシュメモリデバイス50は、ホストデバイス20のDRAM38に記憶されているFTLテーブルのコピー70にもう一度直接アクセスすることができる。ブロック616でフラッシュメモリデバイス50は、FTLテーブルのコピー70を更新して、書込み要求のデータを記憶するために使用された物理アドレスの変更を反映することができる。データがフラッシュメモリ64に書き込まれ、また、FTLテーブルのコピー70が更新されると、ブロック618でフラッシュメモリデバイス50は、フラッシュメモリデバイス50への書込み操作600が完了したことを知らせる通知を送ることができる。
フラッシュメモリデバイス50への書込み操作600の代替態様では、場合によっては特定の論理アドレスおよび物理アドレスに書き込む必要はない。特定の論理アドレスおよび物理アドレスに書き込む代わりに、場合によってはデータを書き込む空の空間の場所を知るだけで十分であり、また、おそらくその空間の条件がデータを記憶するのに良好であれば十分である。したがってブロック602で、態様によっては論理アドレスを提供することができ、あるいは提供することができないホストデバイス20から書込み要求を受け取ると、ブロック620でフラッシュ記憶装置50は、そのSRAM58に記憶されているテーブルにアクセスすることができる。SRAM58内のこれらのテーブルは、フラッシュメモリ64内の自由記憶空間またはブロックの位置を示すことができる情報、およびフラッシュメモリ64のためのウェアレベリング情報を含むことができる。ブロック622でフラッシュ記憶装置50は、SRAM58内のテーブルから自由記憶空間および/またはデータを記憶するのに適した空間のためのフラッシュメモリ64に関連するウェアレベリング情報を検索することができる。この情報を使用して、ブロック624でフラッシュ記憶装置50は、データをメモリに書き込む物理アドレスを決定し、ブロック610でフラッシュメモリ64にアクセスし、また、本明細書において説明されている、フラッシュメモリデバイス50への書込み操作600の残りの部分を継続することができる。
他の態様は、FTLテーブルのコピー70に対してなされた変更を反映するためにFTLテーブル68を更新するステップを含むことができる。そのような態様の1つは、フラッシュメモリデバイス50への書込み操作600の一部として、あるいはフラッシュメモリデバイス50への書込み操作600の後に、FTLテーブル68を更新するステップを含むことができる。たとえばブロック616で、FTLテーブルのコピー70を更新した後の任意の時点でFTLテーブル68を更新することができる。そのような更新は、FTLテーブルのコピー70をコピーするステップ、またはFTLテーブルのコピー70に対する更新のみをフラッシュメモリ64にコピーするステップを含むことができる。FTLテーブル68に対する更新は、FTLテーブルのコピーに対する更新の前、またはFTLテーブルのコピーに対する更新と同時に実施することができることも同じく想定されている。他の態様は、定義済みの規則によって、あるいは利用可能な資源に基づいて動的にFTLテーブル68を更新するステップを含むことができる。たとえば定義済みの規則は、コマンドに応答して、スケジュール、利用可能な資源に基づいて、あるいは一組のパラメータに基づいて、周期的にFTLテーブル68の更新を実行することができる。動的なFTLテーブル68の更新は、たとえば、デバイス20、50のいずれか、または両方による、FTLホストキャッシングシステム10の性能に対する最も安価なコストで更新を実行するために必要な利用可能資源、電力および/または時間の決定に基づいて実施することができる。そのような時間は、FTLホストキャッシングシステム10が活動停止中であるか、あるいは最小量のプロセスの実行中であってもよい。
図7は、ホストデバイス20のブートシーケンス中のFTLホストキャッシング初期化方法300のプロセスフローの一態様を示したものである。態様は、FTLホストキャッシング初期化方法300がホストデバイス20のブートシーケンス中以外の時間に実行される場合が想定されている。たとえばフラッシュメモリデバイス50が接続される時点では、ホストデバイス20は動作中である。図7では、ホストデバイス50のCPU24は、BIOSおよびドライバなどのホストデバイス50のROM30内のブート情報にアクセスし、かつ、初期化方法300の符号プロセスを実行するための信号700を送る。CPU24は、ROM30からの戻り信号702を介して情報および符号プロセスを受け取ることができる。CPU24は、フラッシュメモリデバイス50のような接続されている周辺デバイスを確認し、かつ、初期化することができ、また、FTLホストキャッシング両立性およびFTLテーブル68のサイズを問い合わせることができる。そのために、CPU24は、信号704をホストデバイス50のDMAバスコントローラ26に送り、DMAバスコントローラ26は、信号706としてフラッシュメモリデバイス50のDMAバスコントローラ54に転送することができる。信号706は、信号708としてフラッシュメモリデバイス50のマイクロコントローラ56に転送することができる。いくつかの態様では、マイクロコントローラ56は、DMAバスコントローラ54を介して、信号710を信号712としてDMAバスコントローラに転送し、かつ、信号714としてCPU24に転送し、それにより応答信号710をCPU24に送り返すことによってCPU24の問合せに応答することができる。
FTLテーブル68のサイズの情報がもたらされると、CPU24は、信号716を送ってホストデバイス20のDRAM38を検査し、DRAM38がFTLテーブル68のすべてを記憶することができるかどうかを決定することができ、また、CPU24は、DRAM38を細分割し、DRAM38の一部をFTLテーブル68のために取っておくことができる。信号716は、DRAMコントローラ32が受け取ることができ、信号718に翻訳されてDRAM38に送られる。DRAMコントローラ32は、DRAM38からの戻り信号720を受け取り、かつ、信号722をCPU24に送り返して操作のこれらの部分を完了することができる。
CPU24は、マイクロコントローラ56にDRAM38への直接メモリアクセスを提供することができ、また、信号724をDMAバスコントローラ26に送ることによってFTLテーブルのコピー70を要求することができる。信号724は、信号726としてDMAバスコントローラ54に転送することができ、また、信号728としてマイクロコントローラ56に転送することができる。マイクロコントローラ56は、フラッシュメモリ64内のFTLテーブル68にアクセスするための信号730を送り、FTLテーブルのコピー70を検索することができる。メモリインターフェース60は、信号730を受け取り、それを信号732として翻訳し、その信号732はフラッシュメモリ64に送られる。メモリインターフェース60は、FTLテーブルのコピー70を表す戻り信号734をメモリ64から受け取り、かつ、信号734を信号736としてマイクロコントローラ56に転送する。
DRAM38への直接メモリアクセスが許容されると、マイクロコントローラ56は、バス34、40をバス支配し、マイクロコントローラ56をDRAM38に接続することができる。マイクロコントローラ56は、FTLテーブルのコピー70をDRAM38に書き込むための信号738を送ることができる。信号738は、信号740としてDMAコントローラ54によってDMAコントローラ26に転送され、DMAコントローラ26は、信号742をDRAMコントローラ32に転送する。信号742は信号744として翻訳され、DRAM38に送られる。DRAMコントローラ32は、信号746を受け取ることによってFTLテーブルのコピー70がDRAM38に記憶されたことを識別し、信号748をDMAバスコントローラ26に送って書込みが完了したことを示すことができる。DMAバスコントローラ26は信号748を受け取り、それを信号750として転送することができ、その信号750はDMAバスコントローラ54が受け取り、信号752としてマイクロコントローラ56に転送することができる。
FTLテーブルのコピー70がDRAM38に書き込まれると、マイクロコントローラ56は、信号754を送ることにより、FTLホストキャッシング初期化方法300が完了したことを知らせる信号をCPU24に発信することができる。DMAバスコントローラ54は信号754を受け取り、それを信号756としてDMAバスコントローラ26に転送することができ、DMAバスコントローラ26は、信号758をCPU24に転送することができる。
CPU24は、信号760を送ることにより、FTLホストキャッシング初期化方法300の完了に対する肯定応答を返し、かつ、DRAM38内のFTLテーブルのコピー70を使用して読出し操作および書込み操作を開始するようにマイクロコントローラに命令するか、あるいは許可を与えることができる。DMAバスコントローラ26は信号760を受け取り、それを信号762としてDMAバスコントローラ54に転送することができ、信号762は、信号764としてDMAバスコントローラ54からマイクロコントローラ56へ中継することができる。マイクロコントローラ56は、CPU24からの許可に対する肯定応答を信号766として返すことができる。DMAバスコントローラ54は信号766を受け取り、それを信号768としてDMAバスコントローラ26に転送し、また、信号780としてDMAバスコントローラ26からCPU24に転送することができる。図8は、フラッシュメモリデバイス50からの読出し操作500のプロセスフローの一態様を示したものである。CPU24は、論理アドレスの読出し要求をマイクロコントローラ56に発することができ、その要求をDMAバスコントローラ26を介して信号802として伝える信号800を送る。DMAコントローラ54は信号802を受け取り、それを信号804としてマイクロコントローラ56に転送することができる。
FTLホストキャッシング初期化中にDRAM38への直接メモリアクセスが許容されると、マイクロコントローラ56は、バス34、40をバス支配し、マイクロコントローラ56をDRAM38に接続することができる。マイクロコントローラは、FTLテーブルのコピー70内の論理アドレスに結合された情報をDRAM38から検索し/読み出すための信号806を送ることができる。DMAバスコントローラ54は、信号806を信号808としてDMAバスコントローラ26に転送することができ、信号808は、信号810としてDRAMコントローラ32に転送することができる。DRAMコントローラ32は信号810を翻訳し、信号812をDRAM38に送ることができる。DRAMコントローラ32は、DRAM38から戻り信号814を受け取ることができ、戻り信号814は、信号816としてDMAバスコントローラ26に送ることができ、信号816は、信号818としてDMAバスコントローラ54に転送され、最後に信号820としてマイクロコントローラ56によって受け取られる。マイクロコントローラ56は、次に、FTLテーブルのコピー70から検索された情報を使用して、論理アドレスをフラッシュメモリ64の物理アドレスに変換することができる。
物理アドレスを決定すると、マイクロコントローラ56は、信号822を送ることによってメモリ64にアクセスし、物理アドレスに記憶されているデータを検索し/読み出すことができる。メモリインターフェース60は信号822を翻訳し、信号824をメモリ64に送ることができる。物理アドレスにおける情報を表すメモリ64からの戻り信号826は、メモリインターフェース60が受け取り、信号828としてマイクロコントローラ56に送ることができる。マイクロコントローラ56は、CPU24が使用するために、信号830を送ることによって検索したデータをDRAM38に転送することができる。DMAバスコントローラ54は信号830を受け取り、それを信号832としてDMAバスコントローラ26に転送することができ、信号832は、信号834としてDRAMコントローラ32に転送することができる。DRAMコントローラ32は信号834を翻訳し、メモリ64の物理アドレスから読み出したデータをDRAM38に書き込むための信号836を送ることができる。DRAM38への書込みの完了を示す戻り信号838は、DRAMコントローラ32が受け取り、信号840としてDMAバスコントローラ26に転送することができ、DMAバスコントローラ26は、その信号を信号842としてDMAバスコントローラ54に中継することができ、DMAバスコントローラ54は、その信号を信号844としてマイクロコントローラ56に中継することができる。
メモリ64の物理アドレスから読み出されたデータがDRAM38に書き込まれると、マイクロコントローラ56は、信号846を送ることにより、要求された読出し操作が完了し、DRAM38内のデータが利用可能であることを知らせる通知をCPU24に送ることができる。DMAバスコントローラ54は通知信号846を受け取り、それを信号848としてDMAバスコントローラ26に転送することができ、信号848は、信号850としてCPU24に転送することができる。
図9は、フラッシュメモリデバイス50への書込み操作600のフロープロセスの一態様を示したものである。CPU24は、論理アドレスの書込み要求をマイクロコントローラ56に発することができ、その要求をDMAバスコントローラ26を介して信号902として伝える信号900を送る。DMAコントローラ54は信号902を受け取り、それを信号904としてマイクロコントローラ56に転送することができる。
FTLホストキャッシング初期化中にDRAM38への直接メモリアクセスが許容されると、マイクロコントローラ56は、バス34、40をバス支配し、マイクロコントローラ56をDRAM38に接続することができる。マイクロコントローラは、FTLテーブルのコピー70内の論理アドレスに結合された情報をDRAM38から検索し/読み出すための信号906を送ることができる。DMAバスコントローラ54は、信号906を信号908としてDMAバスコントローラ26に転送することができ、信号908は、信号910としてDRAMコントローラ32に転送することができる。DRAMコントローラ32は信号910を翻訳し、信号912をDRAM38に送ることができる。DRAMコントローラ32は、DRAM38から戻り信号914を受け取ることができ、戻り信号914は、信号916としてDMAバスコントローラ26に送ることができ、信号916は、信号918としてDMAバスコントローラ54に転送され、最後に信号920としてマイクロコントローラ56によって受け取られる。マイクロコントローラ56は、次に、FTLテーブルのコピー70から検索された情報を使用して、論理アドレスをフラッシュメモリ64の物理アドレスに変換することができる。
書込みデータの記憶場所に関する情報を受け取ると、マイクロコントローラ56は、信号922を送ることによってDRAM38から書込みデータを検索することができる。DMAバスコントローラ54は信号922を受け取り、それを信号924としてDMAバスコントローラ26に転送することができる。DRAMコントローラ32は、DMAバスコントローラ26から信号926を受け取り、それを信号928として翻訳し、その信号928をDRAM38に送ることができる。DRAMコントローラ32は、DRAM38から読み出された書込みデータを信号930として受け取り、書込みデータを信号932としてDMAバスコントローラ26に転送することができる。DMAバスコントローラ26は信号932を受け取り、それを信号934としてDMAバスコントローラ54に転送することができ、信号934は、信号936としてマイクロコントローラ56に転送することができる。
物理アドレスを決定し、かつ、書込みデータを検索すると、マイクロコントローラ56は、信号938を送ることによってメモリ64にアクセスし、物理アドレスにデータを書き込むことができる。メモリインターフェース60は信号938を翻訳し、信号940をメモリ64に送ることができる。メモリインターフェース60は、メモリ64から戻り信号942を受け取ることによってメモリ64への書込みが完了したことを識別し、書込みが完了したことを示す信号944をマイクロコントローラ56に送ることができる。
FTLホストキャッシング初期化中にDRAM38への直接メモリアクセスが許容されると、マイクロコントローラ56は、バス34、40をバス支配し、マイクロコントローラ56をDRAM38に接続することによってFTLテーブルのコピー70を更新することができる。マイクロコントローラは、直接DRAM38に書き込むための信号946を送ることができる。DMAバスコントローラ54は、信号946を信号948としてDMAバスコントローラ26に転送することができ、信号948は、信号950としてDRAMコントローラ32に転送することができる。DRAMコントローラ32は信号950を翻訳し、信号952をDRAM38に送ることができる。DRAMコントローラ32は、DRAM38から戻り信号954を受け取ることによってFTLテーブルのコピー70の更新が完了したことを識別することができる。信号954は、信号956としてDMAバスコントローラ26に送ることができ、信号958としてDMAバスコントローラ54に転送され、最後に信号960としてマイクロコントローラ56によって受け取られる。
FTLテーブルのコピー70の更新が完了すると、マイクロコントローラ56は、信号962を送ることによって操作600が完了したことをCPU24に通知することができる。DMAバスコントローラ54は信号962を受け取り、それを信号964としてDMAバスコントローラ26に転送することができ、信号964は、信号966としてCPU24に転送することができる。
図10は、フラッシュメモリデバイス50への書込み操作600のフロープロセスの一態様を示したものである。CPU24は、書込み要求をマイクロコントローラ56に発することができ、その要求をDMAバスコントローラ26を介して信号1002として伝える信号1000を送る。DMAコントローラ54は信号1002を受け取り、それを信号1004としてマイクロコントローラ56に転送することができる。
書込み要求を受け取ると、マイクロコントローラ56は、信号1006を送ることによってフラッシュメモリデバイス50のSRAM58にアクセスし、フラッシュメモリ64に関連する、書込み要求の主体データを記憶するのに適した空間に関する情報を検索し/読み出すことができる。この情報は、自由記憶空間および/またはフラッシュメモリ64のためのウェアレベリング情報を含むことができる。マイクロコントローラ56は、所望の情報を表す戻り信号1008をSRAM58から受け取ることができる。マイクロコントローラ56は、この情報を使用して、データを書き込むためのフラッシュメモリ64の物理アドレスを決定することができる。
書込みデータを記憶する場所を決定すると、マイクロコントローラ56は、信号1010を送ることによってDRAM38から書込みデータを検索することができる。DMAバスコントローラ54は信号1010を受け取り、それを信号1012としてDMAバスコントローラ26に転送することができる。DRAMコントローラ32は、DMAバスコントローラ26から信号1014を受け取り、それを信号1016として翻訳し、その信号1016をDRAM38に送ることができる。DRAMコントローラ32は、DRAM38から読み出された書込みデータを信号1018として受け取り、その書込みデータを信号1020としてDMAバスコントローラ26に転送することができる。DMAバスコントローラ26は信号1020を受け取り、それを信号1022としてDMAバスコントローラ54に転送することができ、信号1022は、信号1024としてマイクロコントローラ56に転送することができる。
物理アドレスを決定し、かつ、書込みデータを検索すると、マイクロコントローラ56は、信号1026を送ることによってメモリ64にアクセスし、メモリ64の物理アドレスにデータを書き込むことができる。メモリインターフェース60は信号1026を翻訳し、信号1028をメモリ64に送ることができる。メモリインターフェース60は、メモリ64から戻り信号1030を受け取ることによってメモリ64への書込みが完了したことを識別し、書込みが完了したことを示す信号1032をマイクロコントローラ56に送ることができる。
FTLホストキャッシング初期化中にDRAM38への直接メモリアクセスが許容されると、マイクロコントローラ56は、バス34、40をバス支配し、マイクロコントローラ56をDRAM38に接続することによってFTLテーブルのコピー70を更新することができる。マイクロコントローラは、直接DRAM38に書き込むための信号1034を送ることができる。DMAバスコントローラ54は、信号1034を信号1036としてDMAバスコントローラ26に転送することができ、信号1036は、信号1038としてDRAMコントローラ32に転送することができる。DRAMコントローラ32は信号1038を翻訳し、信号1040をDRAM38に送ることができる。DRAMコントローラ32は、DRAM38から戻り信号1042を受け取ることによってFTLテーブルのコピー70の更新が完了したことを識別することができる。信号1042は、信号1044としてDMAバスコントローラ26に送ることができ、信号1046としてDMAバスコントローラ54に転送され、最後に信号1048としてマイクロコントローラ56によって受け取られる。
FTLテーブルのコピー70の更新が完了すると、マイクロコントローラ56は、信号1050を送ることによって操作600が完了したことをCPU24に通知することができる。DMAバスコントローラ54は信号1050を受け取り、それを信号1052としてDMAバスコントローラ26に転送することができ、信号1052は、信号1054としてCPU24に転送することができる。
いくつかの態様では、任意の構成要素間のプロセスフローの任意の部分は、本明細書において説明されている多くのプロセスのうちの1つに対して、図7〜10に示されている回数より多く繰り返すことができる。たとえばフラッシュメモリデバイス50からホストデバイスへのFTLテーブル68のコピーを表す信号734〜758は、コピーするトランザクションとして多数回にわたって出現させることができる。トランザクションはコピーの実行であってもよく、個々のトランザクションはFTLテーブル68の一部をコピーし、このトランザクションは、コピーが完了するまで続く。32MBのFTLテーブルデータの一例を取ると、トランザクションごとにホストデバイス20にコピーすることができるのは、FTLテーブルデータのたったの32バイト、64バイトまたは128バイトにすぎない。図7〜10に示されている任意の読出し操作あるいは書込み操作に対しても同様である。
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供され、様々な態様の操作が提示された順序で実施されなければならないことを要求または暗示するものではない。当業者には理解されるように、上記の態様における操作の順序は、任意の順序でも実施することができる。「その後」、「次いで」、「次に」、等々などの語は、動作の順序を限定するものではなく、これらの語は単に、本方法の説明を通して読者を導くために使用される。さらに、単数表現における特許請求要素のあらゆる参照は、その要素を単数に限定するものとして解釈してはならない。
本明細書において開示されている態様に関連して説明されている様々な実例論理ブロック、モジュール、回路およびアルゴリズム操作は、電子ハードウェア、コンピュータソフトウェアまたは両方の組合せとして実現することができる。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な実例構成要素、ブロック、モジュール、回路および操作は、上では概ねそれらの機能の点で説明されている。そのような機能がハードウェアとして実現されるか、あるいはソフトウェアとして実現されるかどうかは、総合システムに課される特定のアプリケーションおよび設計制約で決まる。当業者は、説明されている機能を特定のアプリケーションごとに可変方式で実現することができるが、そのような実施態様決定は、本開示の範囲を逸脱させるものとして解釈してはならない。
本明細書において開示されている態様に関連して説明されている様々な実例論理、論理ブロック、モジュールおよび回路を実現するために使用されるハードウェアは、本明細書において説明されている機能を実施するために設計された、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、書替え可能ゲートアレイ(FPGA)、または他のプログラマブル論理デバイス、離散ゲートまたはトランジスタ論理、離散ハードウェア構成要素、またはそれらの任意の組合せを使用して実現または実施することができる。汎用プロセッサはマイクロプロセッサであってもよいが、代替では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラまたは状態マシンであってもよい。また、プロセッサは、計算デバイスの組合せ、たとえばDSPと、マイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと関連した1つまたは複数のマイクロプロセッサとの組合せ、あるいは任意の他のそのような構成として実現することも可能である。代替として、いくつかの操作または方法は、所与の機能に固有の回路機構によって実施することができる。
1つまたは複数の例示的態様では、説明されている機能は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの任意の組合せで実現することができる。ソフトウェアで実現される場合、機能は、非一時的コンピュータ可読媒体上または非一時的プロセッサ可読記憶媒体上の1つまたは複数の命令またはコードとして記憶することができる。本明細書において開示されている方法またはアルゴリズムの操作は、非一時的コンピュータ可読記憶媒体上または非一時的プロセッサ可読記憶媒体上に常駐させることができるプロセッサ実行可能ソフトウェアモジュールの中で具体化することができる。非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスすることができる任意の記憶媒体であってもよい。非制限の例として、そのような非一時的コンピュータ可読媒体または非一時的プロセッサ可読記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、CD-ROM、もしくは他の光ディスク(disk)記憶装置、磁気ディスク(disk)記憶装置、または他の磁気記憶デバイス、あるいは所望のプログラムコードを命令またはデータ構造の形で記憶するために使用することができ、かつ、コンピュータによってアクセスすることができる任意の他の媒体を含むことができる。本明細書において使用されているディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル汎用ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、diskは、通常、データを磁気的に再生し、一方、discは、レーザを使用してデータを光学的に再生する。上記の組合せも同じく非一時的コンピュータ可読媒体および非一時的プロセッサ可読記憶媒体の範囲内に含まれる。さらに、方法またはアルゴリズムの操作は、コンピュータプログラム製品に組み込むことができるコードおよび/または命令の1つまたは任意の組合せ、あるいはセットとして、非一時的プロセッサ可読記憶媒体および/または非一時的コンピュータ可読媒体上に常駐させることも可能である。
開示されている態様についての以上の説明は、すべての当業者による本発明の構築および使用を可能にするために提供されたものである。当業者には、これらの態様に対する様々な修正が容易に明らかであり、また、本明細書において定義されている一般的な原理は、本発明の精神または範囲を逸脱することなく、他の態様に適用することができる。したがって本発明は、本明細書において示されている態様に限定されることは意図されておらず、以下の特許請求の範囲、および本明細書において開示されている原理ならびに新規な特徴と無矛盾の最も広義の範囲と一致するものとする。
10 FTLホストキャッシングシステム
20 ホストデバイス
22 システムオンチップ(SoC)
24、52、202 プロセッサ
26、32、54 通信コントローラ
28、30、38、58、64 メモリまたは記憶装置
34 通信リンク(ホストバス)
36、40、62、66 通信リンク
40 記憶装置バス
50 フラッシュメモリデバイス
56 マイクロコントローラ
60 メモリインターフェース
68 FTLテーブル
70 FTLテーブルのコピー
200 モバイルデバイス
204 タッチスクリーンコントローラ
206 内部メモリ
208 無線信号トランシーバ
210 アンテナ
212 タッチスクリーンパネル
214 スピーカ
218 周辺デバイス接続ポート
220 ハウジング
300 FTLホストキャッシュ初期化方法
500 フラッシュメモリデバイスからの読出し操作
600 フラッシュメモリデバイスへの書込み操作

Claims (60)

  1. フラッシュメモリデバイスのフラッシュ変換層(FTL)の性能を高くするための方法であって、
    前記フラッシュメモリデバイスによってホストデバイスの揮発性メモリに前記フラッシュメモリデバイスのFTLテーブルのコピーを記憶するステップと、
    前記フラッシュメモリデバイスによって前記ホストデバイスの前記揮発性メモリに記憶された前記FTLテーブルの前記コピーへのアクセスを受け取るステップと、
    読出し操作および書込み操作のうちの少なくとも1つの部分として、前記フラッシュメモリデバイスによって前記ホストデバイスの前記揮発性メモリに記憶された前記フラッシュメモリデバイスの前記FTLテーブルの前記コピーにアクセスするステップと
    を含む方法。
  2. 前記ホストデバイスから、前記フラッシュメモリデバイス内の前記FTLテーブルのサイズに対する問合せを受け取るステップと、
    前記FTLテーブルの前記サイズを前記フラッシュメモリデバイスから前記ホストデバイスに返すステップと、
    前記フラッシュメモリデバイスから、前記FTLテーブルの前記サイズを前記ホストデバイスで受け取るステップと、
    前記ホストデバイスによって、前記ホストデバイスの前記揮発性メモリがすべての前記FTLテーブルを記憶することができるかどうかを決定するステップと
    をさらに含む、請求項1に記載の方法。
  3. 前記ホストデバイスによって前記ホストデバイスの前記揮発性メモリを細分割するステップであって、細分割のサイズが前記FTLテーブルのサイズに基づくステップと、
    前記フラッシュメモリデバイスによって、前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス読出し特権を受け取るステップと、
    前記フラッシュメモリデバイスによって、前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス書込み特権を受け取るステップと
    をさらに含み、前記FTLテーブルのコピーを記憶するステップが、前記フラッシュメモリデバイスによって前記ホストデバイスの前記揮発性メモリの前記細分割の区分に前記FTLテーブルの前記コピーを記憶するステップを含む、請求項2に記載の方法。
  4. 前記FTLテーブルの前記コピーにアクセスするステップが、前記フラッシュメモリデバイスによって、前記フラッシュメモリデバイスと前記ホストデバイスの前記揮発性メモリとを通信接続する通信バスをバス支配するステップを含む、請求項1に記載の方法。
  5. 前記FTLテーブルの前記コピーにアクセスするステップが、
    前記フラッシュメモリデバイスの中に、論理アドレスの読出し操作要求を前記ホストデバイスから受け取るステップと、
    前記フラッシュメモリデバイスによって前記読出し操作を開始するステップと、
    前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーの少なくとも一部を読み出すステップと、
    前記フラッシュメモリデバイスによって、前記論理アドレスに対応する物理アドレスを決定するステップと、
    前記フラッシュメモリデバイスによって、前記フラッシュメモリデバイスのメモリの前記物理アドレスに記憶されているデータを検索するステップと、
    前記フラッシュメモリデバイスによって前記データを前記ホストデバイスに返すステップと
    を含む、請求項1に記載の方法。
  6. 前記FTLテーブルの前記コピーにアクセスするステップが、
    前記フラッシュメモリデバイスによって、論理アドレスの書込み操作要求を前記ホストデバイスから受け取るステップと、
    前記フラッシュメモリデバイスによって前記書込み操作を開始するステップと、
    前記フラッシュメモリデバイスによってデータを前記フラッシュメモリデバイスのメモリの物理アドレスに書き込むステップと、
    前記データが書き込まれると、前記FTLテーブルの前記コピーを更新して前記フラッシュメモリデバイスの前記メモリに対してなされた変更に対応させるために、前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーに書き込むステップと、
    前記フラッシュメモリデバイスによって前記書込み操作の完了通知を前記ホストデバイスに送るステップと
    を含む、請求項1に記載の方法。
  7. 前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーの少なくとも一部を読み出すステップと、
    前記フラッシュメモリデバイスによって前記論理アドレスに対応する前記物理アドレスを決定するステップと
    をさらに含む、請求項6に記載の方法。
  8. 前記フラッシュメモリデバイスによって前記フラッシュメモリデバイスのSRAMを読み出すステップと、
    前記フラッシュメモリデバイスによって、前記フラッシュメモリデバイスの前記メモリ内の自由記憶空間の位置を示す前記物理アドレスを決定するステップと
    をさらに含む、請求項6に記載の方法。
  9. 前記フラッシュメモリデバイスによって、前記ホストデバイスの前記揮発性メモリ内への前記FTLテーブルの前記コピーの記憶が完了したことを示す通知を前記ホストデバイスに送るステップをさらに含む、請求項1に記載の方法。
  10. 前記フラッシュメモリデバイスによって、スケジュール、利用可能な資源および書込み操作の完了からなるグループから選択されるパラメータに基づいて、前記FTLの前記コピーを使用して前記フラッシュメモリデバイスの前記FTLテーブルを更新するステップをさらに含む、請求項1に記載の方法。
  11. 前記ホストデバイスによって、前記フラッシュメモリデバイスが前記ホストデバイスの前記揮発性メモリ内への前記FTLテーブルのコピーのホストキャッシングをサポートするかどうかを決定するステップをさらに含む、請求項1に記載の方法。
  12. 前記ホストデバイス内で、前記FTLテーブルの前記コピーの記憶完了通知を前記フラッシュメモリデバイスから受け取るステップをさらに含む、請求項1に記載の方法。
  13. システムに前記システムのフラッシュメモリデバイスのフラッシュ変換層(FTL)の性能を高くさせるように構成されたプロセッサ実行可能ソフトウェア命令をその上に記憶した非一時的プロセッサ可読記憶媒体であって、操作が、
    前記フラッシュメモリデバイスによってホストデバイスの揮発性メモリに前記フラッシュメモリデバイスのFTLテーブルのコピーを記憶するステップと、
    前記フラッシュメモリデバイスによって前記ホストデバイスの前記揮発性メモリに記憶された前記FTLテーブルの前記コピーへのアクセスを受け取るステップと、
    読出し操作および書込み操作のうちの少なくとも1つの部分として、前記フラッシュメモリデバイスによって前記ホストデバイスの前記揮発性メモリに記憶された前記フラッシュメモリデバイスの前記FTLテーブルの前記コピーにアクセスするステップと
    を含む、非一時的プロセッサ可読記憶媒体。
  14. 前記記憶されるプロセッサ実行可能ソフトウェア命令が、前記システムに、
    前記ホストデバイスから、前記フラッシュメモリデバイス内の前記FTLテーブルのサイズに対する問合せを受け取るステップと、
    前記FTLテーブルの前記サイズを前記フラッシュメモリデバイスから前記ホストデバイスに返すステップと、
    前記フラッシュメモリデバイスから、前記FTLテーブルの前記サイズを前記ホストデバイスで受け取るステップと、
    前記ホストデバイスによって、前記ホストデバイスの前記揮発性メモリがすべての前記FTLテーブルを記憶することができるかどうかを決定するステップと
    をさらに含む操作を実施させるように構成される、請求項13に記載の非一時的プロセッサ可読記憶媒体。
  15. 前記記憶されるプロセッサ実行可能ソフトウェア命令が、前記システムに、
    前記ホストデバイスによって前記ホストデバイスの前記揮発性メモリを細分割するステップであって、細分割のサイズが前記FTLテーブルのサイズに基づくステップと、
    前記フラッシュメモリデバイスによって、前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス読出し特権を受け取るステップと、
    前記フラッシュメモリデバイスによって、前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス書込み特権を受け取るステップと
    をさらに含む操作を実施させるように構成され、前記FTLテーブルのコピーを記憶するステップが、前記フラッシュメモリデバイスによって前記ホストデバイスの前記揮発性メモリの前記細分割の区分に前記FTLテーブルの前記コピーを記憶するステップを含む、請求項14に記載の非一時的プロセッサ可読記憶媒体。
  16. 前記記憶されるプロセッサ実行可能ソフトウェア命令が、前記システムに、前記FTLテーブルの前記コピーにアクセスするステップが、前記フラッシュメモリデバイスによって、前記フラッシュメモリデバイスと前記ホストデバイスの前記揮発性メモリとを通信接続する通信バスをバス支配するステップを含むように操作を実施させるように構成される、請求項13に記載の非一時的プロセッサ可読記憶媒体。
  17. 前記記憶されるプロセッサ実行可能ソフトウェア命令が、前記システムに、前記FTLテーブルの前記コピーにアクセスするステップが、
    前記フラッシュメモリデバイスの中に、論理アドレスの読出し操作要求を前記ホストデバイスから受け取るステップと、
    前記フラッシュメモリデバイスによって前記読出し操作を開始するステップと、
    前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーの少なくとも一部を読み出すステップと、
    前記フラッシュメモリデバイスによって、前記論理アドレスに対応する物理アドレスを決定するステップと、
    前記フラッシュメモリデバイスによって、前記フラッシュメモリデバイスのメモリの前記物理アドレスに記憶されているデータを検索するステップと、
    前記フラッシュメモリデバイスによって前記データを前記ホストデバイスに返すステップと
    を含むように操作を実施させるように構成される、請求項13に記載の非一時的プロセッサ可読記憶媒体。
  18. 前記記憶されるプロセッサ実行可能ソフトウェア命令が、前記システムに、前記FTLテーブルの前記コピーにアクセスするステップが、
    前記フラッシュメモリデバイスによって、論理アドレスの書込み操作要求を前記ホストデバイスから受け取るステップと、
    前記フラッシュメモリデバイスによって前記書込み操作を開始するステップと、
    前記フラッシュメモリデバイスによってデータを前記フラッシュメモリデバイスのメモリの物理アドレスに書き込むステップと、
    前記データが書き込まれると、前記FTLテーブルの前記コピーを更新して前記フラッシュメモリデバイスの前記メモリに対してなされた変更に対応させるために、前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーに書き込むステップと、
    前記フラッシュメモリデバイスによって前記書込み操作の完了通知を前記ホストデバイスに送るステップと
    を含むように操作を実施させるように構成される、請求項13に記載の非一時的プロセッサ可読記憶媒体。
  19. 前記記憶されるプロセッサ実行可能ソフトウェア命令が、前記システムに、
    前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーの少なくとも一部を読み出すステップと、
    前記フラッシュメモリデバイスによって前記論理アドレスに対応する前記物理アドレスを決定するステップと
    をさらに含む操作を実施させるように構成される、請求項18に記載の非一時的プロセッサ可読記憶媒体。
  20. 前記記憶されるプロセッサ実行可能ソフトウェア命令が、前記システムに、
    前記フラッシュメモリデバイスによって前記フラッシュメモリデバイスのSRAMを読み出すステップと、
    前記フラッシュメモリデバイスによって、前記フラッシュメモリデバイスの前記メモリ内の自由記憶空間の位置を示す前記物理アドレスを決定するステップと
    をさらに含む操作を実施させるように構成される、請求項18に記載の非一時的プロセッサ可読記憶媒体。
  21. 前記記憶されるプロセッサ実行可能ソフトウェア命令が、前記システムに、前記フラッシュメモリデバイスによって、前記ホストデバイスの前記揮発性メモリ内への前記FTLテーブルの前記コピーの記憶が完了したことを示す通知を前記ホストデバイスに送るステップをさらに含む操作を実施させるように構成される、請求項13に記載の非一時的プロセッサ可読記憶媒体。
  22. 前記記憶されるプロセッサ実行可能ソフトウェア命令が、前記システムに、前記フラッシュメモリデバイスによって、スケジュール、利用可能な資源および書込み操作の完了からなるグループから選択されるパラメータに基づいて、前記FTLの前記コピーを使用して前記フラッシュメモリデバイスの前記FTLテーブルを更新するステップをさらに含む操作を実施させるように構成される、請求項13に記載の非一時的プロセッサ可読記憶媒体。
  23. 前記記憶されるプロセッサ実行可能ソフトウェア命令が、前記システムに、前記ホストデバイスによって、前記フラッシュメモリデバイスが前記ホストデバイスの前記揮発性メモリ内への前記FTLテーブルのコピーのホストキャッシングをサポートするかどうかを決定するステップをさらに含む操作を実施させるように構成される、請求項13に記載の非一時的プロセッサ可読記憶媒体。
  24. 前記記憶されるプロセッサ実行可能ソフトウェア命令が、前記システムに、前記ホストデバイス内で、前記FTLテーブルの前記コピーの記憶完了通知を前記フラッシュメモリデバイスから受け取るステップをさらに含む操作を実施させるように構成される、請求項13に記載の非一時的プロセッサ可読記憶媒体。
  25. ホストデバイスであって、
    揮発性メモリと、
    前記揮発性メモリに結合された第1のプロセッサと
    を備えるホストデバイスと、
    前記ホストデバイスに結合されたフラッシュメモリデバイスであって、
    論理アドレスと物理アドレスとの間の変換に使用するためのフラッシュ変換層(FTL)テーブルを記憶するように構成されたフラッシュメモリと、
    前記フラッシュメモリに結合された第2のプロセッサであって、
    前記ホストデバイスの前記揮発性メモリに前記フラッシュメモリデバイスの前記FTLテーブルのコピーを記憶するステップと、
    前記ホストデバイスの前記揮発性メモリに記憶された前記FTLテーブルの前記コピーへのアクセスを受け取るステップと、
    読出し操作および書込み操作のうちの少なくとも1つの部分として、前記ホストデバイスの前記揮発性メモリに記憶された前記フラッシュメモリデバイスの前記FTLテーブルの前記コピーにアクセスするステップと
    を含む操作を実施するプロセッサ実行可能命令を使用して構成される第2のプロセッサと
    を備えるフラッシュメモリデバイスと
    を備えるシステム。
  26. 前記第2のプロセッサが、
    前記ホストデバイスから、前記フラッシュメモリデバイス内の前記FTLテーブルのサイズに対する問合せを受け取るステップと、
    前記FTLテーブルの前記サイズを前記フラッシュメモリデバイスから前記ホストデバイスに返すステップと
    をさらに含む操作を実施するプロセッサ実行可能命令を使用して構成され、
    前記第1のプロセッサが、
    前記フラッシュメモリデバイスから、前記FTLテーブルの前記サイズを前記ホストデバイスで受け取るステップと、
    前記ホストデバイスによって、前記ホストデバイスの前記揮発性メモリがすべての前記FTLテーブルを記憶することができるかどうかを決定するステップと
    をさらに含む操作を実施するプロセッサ実行可能命令を使用して構成される
    請求項25に記載のシステム。
  27. 前記第1のプロセッサが、
    前記ホストデバイスによって前記ホストデバイスの前記揮発性メモリを細分割するステップであって、細分割のサイズが前記FTLテーブルのサイズに基づくステップをさらに含む操作であって、
    前記FTLテーブルの前記コピーを記憶するステップが、前記フラッシュメモリデバイスによって、前記FTLテーブルの前記コピーを前記ホストデバイスの前記揮発性メモリの前記細分割の区分に記憶するステップを含む
    操作を実施するプロセッサ実行可能命令を使用して構成され、
    前記第2のプロセッサが、
    前記フラッシュメモリデバイスによって、前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス読出し特権を受け取るステップと、
    前記フラッシュメモリデバイスによって、前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス書込み特権を受け取るステップと
    をさらに含む操作を実施するプロセッサ実行可能命令を使用して構成される
    請求項26に記載のシステム。
  28. 前記フラッシュメモリデバイスと前記ホストデバイスの前記揮発性メモリとを通信接続する通信バスをさらに備え、
    前記第2のプロセッサが、前記FTLテーブルの前記コピーにアクセスするステップが前記通信バスをバス支配するステップを含むように操作を実施するプロセッサ実行可能命令を使用して構成される
    請求項25に記載のシステム。
  29. 前記第2のプロセッサが、前記FTLテーブルの前記コピーにアクセスするステップが、
    前記フラッシュメモリデバイスの中に、前記論理アドレスの読出し操作要求を前記ホストデバイスから受け取るステップと、
    前記フラッシュメモリデバイスによって前記読出し操作を開始するステップと、
    前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーの少なくとも一部を読み出すステップと、
    前記フラッシュメモリデバイスによって、前記論理アドレスに対応する前記物理アドレスを決定するステップと、
    前記フラッシュメモリデバイスによって、前記フラッシュメモリデバイスの前記フラッシュメモリの前記物理アドレスに記憶されているデータを検索するステップと、
    前記フラッシュメモリデバイスによって前記データを前記ホストデバイスに返すステップと
    を含むようにプロセッサ実行可能命令を使用して構成される、請求項25に記載のシステム。
  30. 前記第2のプロセッサが、前記FTLテーブルの前記コピーにアクセスするステップが、
    前記フラッシュメモリデバイスによって、前記論理アドレスの書込み操作要求を前記ホストデバイスから受け取るステップと、
    前記フラッシュメモリデバイスによって前記書込み操作を開始するステップと、
    前記フラッシュメモリデバイスによってデータを前記フラッシュメモリデバイスの前記フラッシュメモリの前記物理アドレスに書き込むステップと、
    前記データが書き込まれると、前記FTLテーブルの前記コピーを更新して前記フラッシュメモリデバイスの前記フラッシュメモリに対してなされた変更に対応させるために、前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーに書き込むステップと、
    前記フラッシュメモリデバイスによって前記書込み操作の完了通知を前記ホストデバイスに送るステップと
    を含むようにプロセッサ実行可能命令を使用して構成される、請求項25に記載のシステム。
  31. 前記第2のプロセッサが、
    前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーの少なくとも一部を読み出すステップと、
    前記フラッシュメモリデバイスによって前記論理アドレスに対応する前記物理アドレスを決定するステップと
    をさらに含む操作を実施するプロセッサ実行可能命令を使用して構成される、請求項30に記載のシステム。
  32. 前記フラッシュメモリデバイスが前記第2のプロセッサに結合されたSRAMをさらに備え、
    前記第2のプロセッサが、
    前記フラッシュメモリデバイスによって前記フラッシュメモリデバイスの前記SRAMを読み出すステップと、
    前記フラッシュメモリデバイスによって、前記フラッシュメモリデバイスの前記フラッシュメモリ内の自由記憶空間の位置を示す前記物理アドレスを決定するステップと
    をさらに含む操作を実施するプロセッサ実行可能命令を使用して構成される
    請求項30に記載のシステム。
  33. 前記第2のプロセッサが、前記フラッシュメモリデバイスによって、前記ホストデバイスの前記揮発性メモリ内への前記FTLテーブルの前記コピーの記憶が完了したことを示す通知を前記ホストデバイスに送るステップをさらに含む操作を実施するプロセッサ実行可能命令を使用して構成される、請求項25に記載のシステム。
  34. 前記第2のプロセッサが、前記フラッシュメモリデバイスによって、スケジュール、利用可能な資源および書込み操作の完了からなるグループから選択されるパラメータに基づいて、前記FTLの前記コピーを使用して前記フラッシュメモリデバイスの前記FTLテーブルを更新するステップをさらに含む操作を実施するプロセッサ実行可能命令を使用して構成される、請求項25に記載のシステム。
  35. 前記第1のプロセッサが、前記ホストデバイスによって、前記フラッシュメモリデバイスが前記ホストデバイスの前記揮発性メモリ内への前記FTLテーブルのコピーのホストキャッシングをサポートするかどうかを決定するステップをさらに含む操作を実施するプロセッサ実行可能命令を使用して構成される、請求項25に記載のシステム。
  36. 前記第1のプロセッサが、前記ホストデバイス内で、前記FTLテーブルの前記コピーの記憶完了通知を前記フラッシュメモリデバイスから受け取るステップをさらに含む操作を実施するプロセッサ実行可能命令を使用して構成される、請求項25に記載のシステム。
  37. フラッシュメモリデバイスと、
    前記フラッシュメモリデバイスによってホストデバイスの揮発性メモリに前記フラッシュメモリデバイスのフラッシュ変換層(FTL)テーブルのコピーを記憶するための手段と、
    前記フラッシュメモリデバイスによって前記ホストデバイスの前記揮発性メモリに記憶された前記FTLテーブルの前記コピーへのアクセスを受け取るための手段と、
    読出し操作および書込み操作のうちの少なくとも1つの部分として、前記フラッシュメモリデバイスによって前記ホストデバイスの前記揮発性メモリに記憶された前記フラッシュメモリデバイスの前記FTLテーブルの前記コピーにアクセスするための手段と
    を備えるシステム。
  38. 前記ホストデバイスから、前記フラッシュメモリデバイス内の前記FTLテーブルのサイズに対する問合せを受け取るための手段と、
    前記FTLテーブルの前記サイズを前記フラッシュメモリデバイスから前記ホストデバイスに返すための手段と、
    前記フラッシュメモリデバイスから、前記FTLテーブルの前記サイズを前記ホストデバイスで受け取るための手段と、
    前記ホストデバイスによって、前記ホストデバイスの前記揮発性メモリがすべての前記FTLテーブルを記憶することができるかどうかを決定するための手段と
    をさらに備える、請求項37に記載のシステム。
  39. 前記ホストデバイスによって前記ホストデバイスの前記揮発性メモリを細分割するための手段であって、細分割のサイズが前記FTLテーブルのサイズに基づく手段と、
    前記フラッシュメモリデバイスによって、前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス読出し特権を受け取るための手段と、
    前記フラッシュメモリデバイスによって、前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス書込み特権を受け取るための手段と
    をさらに備え、前記FTLテーブルのコピーを記憶するための手段が、前記フラッシュメモリデバイスによって前記ホストデバイスの前記揮発性メモリの前記細分割の区分に前記FTLテーブルの前記コピーを記憶するための手段を備える、請求項38に記載のシステム。
  40. 前記FTLテーブルの前記コピーにアクセスするための手段が、前記フラッシュメモリデバイスによって、前記フラッシュメモリデバイスと前記ホストデバイスの前記揮発性メモリとを通信接続する通信バスをバス支配するための手段をさらに備える、請求項37に記載のシステム。
  41. 前記FTLテーブルの前記コピーにアクセスするための手段が、
    前記フラッシュメモリデバイスの中に、論理アドレスの読出し操作要求を前記ホストデバイスから受け取るための手段と、
    前記フラッシュメモリデバイスによって前記読出し操作を開始するための手段と、
    前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーの少なくとも一部を読み出すための手段と、
    前記フラッシュメモリデバイスによって、前記論理アドレスに対応する物理アドレスを決定するための手段と、
    前記フラッシュメモリデバイスによって、前記フラッシュメモリデバイスのメモリの前記物理アドレスに記憶されているデータを検索するための手段と、
    前記フラッシュメモリデバイスによって前記データを前記ホストデバイスに返すための手段と
    を備える、請求項37に記載のシステム。
  42. 前記FTLテーブルの前記コピーにアクセスするための手段が、
    前記フラッシュメモリデバイスによって、論理アドレスの書込み操作要求を前記ホストデバイスから受け取るための手段と、
    前記フラッシュメモリデバイスによって前記書込み操作を開始するための手段と、
    前記フラッシュメモリデバイスによってデータを前記フラッシュメモリデバイスのメモリの物理アドレスに書き込むための手段と、
    前記データが書き込まれると、前記FTLテーブルの前記コピーを更新して前記フラッシュメモリデバイスの前記メモリに対してなされた変更に対応させるために、前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーに書き込むための手段と、
    前記フラッシュメモリデバイスによって前記書込み操作の完了通知を前記ホストデバイスに送るための手段と
    をさらに備える、請求項37に記載のシステム。
  43. 前記フラッシュメモリデバイスによって前記FTLテーブルの前記コピーの少なくとも一部を読み出すための手段と、
    前記フラッシュメモリデバイスによって前記論理アドレスに対応する前記物理アドレスを決定するための手段と
    をさらに備える、請求項42に記載のシステム。
  44. 前記フラッシュメモリデバイスによって前記フラッシュメモリデバイスのSRAMを読み出すための手段と、
    前記フラッシュメモリデバイスによって、前記フラッシュメモリデバイスの前記メモリ内の自由記憶空間の位置を示す前記物理アドレスを決定するための手段と
    をさらに備える、請求項42に記載のシステム。
  45. 前記フラッシュメモリデバイスによって、前記ホストデバイスの前記揮発性メモリ内への前記FTLテーブルの前記コピーの記憶が完了したことを示す通知を前記ホストデバイスに送るための手段をさらに備える、請求項37に記載のシステム。
  46. 前記フラッシュメモリデバイスによって、スケジュール、利用可能な資源および書込み操作の完了からなるグループから選択されるパラメータに基づいて、前記FTLの前記コピーを使用して前記フラッシュメモリデバイスの前記FTLテーブルを更新するための手段をさらに備える、請求項37に記載のシステム。
  47. 前記ホストデバイスによって、前記フラッシュメモリデバイスが前記ホストデバイスの前記揮発性メモリ内への前記FTLテーブルのコピーのホストキャッシングをサポートするかどうかを決定するための手段をさらに備える、請求項37に記載のシステム。
  48. 前記ホストデバイス内で、前記FTLテーブルの前記コピーの記憶完了通知を前記フラッシュメモリデバイスから受け取るための手段をさらに備える、請求項37に記載のシステム。
  49. ホストデバイスに結合するように構成されたフラッシュメモリデバイスであって、
    論理アドレスと物理アドレスとの間の変換に使用するためのフラッシュ変換層(FTL)テーブルを含むデータを記憶するように構成されたフラッシュメモリと、
    前記フラッシュメモリに結合されたプロセッサであって、
    前記ホストデバイスの揮発性メモリに前記フラッシュメモリデバイスのフラッシュ変換層(FTL)テーブルのコピーを記憶するステップと、
    前記ホストデバイスの前記揮発性メモリに記憶された前記FTLテーブルの前記コピーへのアクセスを受け取るステップと、
    読出し操作および書込み操作のうちの少なくとも1つの部分として、前記ホストデバイスの前記揮発性メモリに記憶された前記フラッシュメモリデバイスの前記FTLテーブルの前記コピーにアクセスするステップと
    を含む操作を実施するプロセッサ実行可能命令を使用して構成されるプロセッサと
    を備えるフラッシュメモリデバイス。
  50. 前記プロセッサが、
    前記ホストデバイスから、前記FTLテーブルのサイズに対する問合せを受け取るステップと、
    前記FTLテーブルの前記サイズを前記ホストデバイスに返すステップと
    をさらに含む操作を実施するプロセッサ実行可能命令を使用して構成され、
    前記プロセッサが、前記フラッシュメモリデバイスの前記FTLテーブルの前記コピーを前記ホストデバイスの揮発性メモリに記憶するステップが、前記ホストデバイスによって前記プロセッサに対して識別された前記ホストデバイスの前記揮発性メモリの細分割の区分に前記FTLテーブルの前記コピーを記憶するステップを含むように操作を実施するプロセッサ実行可能命令を使用して構成される
    請求項49に記載のフラッシュメモリデバイス。
  51. 通信バスが前記フラッシュメモリデバイスと前記ホストデバイスの前記揮発性メモリとを通信接続し、
    前記プロセッサが、
    前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス読出し特権を前記ホストデバイスから受け取るステップと、
    前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス書込み特権を前記ホストデバイスから受け取るステップと
    をさらに含む操作を実施するプロセッサ実行可能命令を使用して構成され、
    前記FTLテーブルの前記コピーにアクセスするステップが前記通信バスをバス支配するステップを含む
    請求項50に記載のフラッシュメモリデバイス。
  52. 前記プロセッサが、前記FTLテーブルの前記コピーにアクセスするステップが、
    前記ホストデバイスからの前記論理アドレスの読出し操作要求および書込み操作要求のうちの1つに応答して、前記ホストデバイスの前記揮発性メモリから前記FTLテーブルの前記コピーの少なくとも一部を読み出すステップと、
    読出し操作要求に応答して、前記論理アドレスに対応する前記フラッシュメモリの前記物理アドレスに記憶されているデータを前記ホストデバイスに返すステップと、
    書込み操作要求に応答して、前記論理アドレスに対応する前記フラッシュメモリデバイスの前記物理アドレスにデータが書き込まれると、前記FTLテーブルの前記コピーを更新して前記フラッシュメモリに対してなされた変更に対応させるために、前記ホストデバイスの前記揮発性メモリに記憶されている前記FTLテーブルの前記コピーに書き込むステップと、
    前記書込み操作要求に応答して、前記書込み操作の完了通知を前記ホストデバイスに送るステップと
    を含むようにプロセッサ実行可能命令を使用して構成される、請求項49に記載のフラッシュメモリデバイス。
  53. ホストデバイスに結合するように構成されたフラッシュメモリデバイスであって、
    前記ホストデバイスの揮発性メモリに前記フラッシュメモリデバイスのフラッシュ変換層(FTL)テーブルのコピーを記憶するための手段と、
    前記ホストデバイスの前記揮発性メモリに記憶された前記FTLテーブルの前記コピーへのアクセスを受け取るための手段と、
    読出し操作および書込み操作のうちの少なくとも1つの部分として、前記ホストデバイスの前記揮発性メモリに記憶された前記フラッシュメモリデバイスの前記FTLテーブルの前記コピーにアクセスするための手段と
    を備えるフラッシュメモリデバイス。
  54. 前記ホストデバイスから、前記FTLテーブルのサイズに対する問合せを受け取るための手段と、
    前記FTLテーブルの前記サイズを前記ホストデバイスに返すための手段と
    をさらに備え、前記フラッシュメモリデバイスの前記FTLテーブルの前記コピーを前記ホストデバイスの揮発性メモリに記憶するための手段が、前記ホストデバイスの前記揮発性メモリの細分割の区分に前記FTLテーブルの前記コピーを記憶するための手段を備える、請求項53に記載のフラッシュメモリデバイス。
  55. 前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス読出し特権を前記ホストデバイスから受け取るための手段と、
    前記FTLテーブルの前記コピーが記憶される前記ホストデバイスの前記揮発性メモリの前記細分割の区分に対する直接メモリアクセス書込み特権を前記ホストデバイスから受け取るための手段と
    をさらに備え、前記FTLテーブルの前記コピーにアクセスするための手段が、前記フラッシュメモリデバイスと前記ホストデバイスの前記揮発性メモリとを通信接続する通信バスをバス支配するための手段を備える、請求項54に記載のフラッシュメモリデバイス。
  56. 前記FTLテーブルの前記コピーにアクセスするための手段が、
    前記ホストデバイスからの論理アドレスの読出し操作要求および書込み操作要求のうちの1つに応答して、前記ホストデバイスの前記揮発性メモリから前記FTLテーブルの前記コピーの少なくとも一部を読み出すための手段と、
    読出し操作要求に応答して、前記論理アドレスに対応するフラッシュメモリの物理アドレスに記憶されているデータを前記ホストデバイスに返すための手段と、
    書込み操作要求に応答して、前記論理アドレスに対応する前記フラッシュメモリデバイスの前記物理アドレスにデータが書き込まれると、前記FTLテーブルの前記コピーを更新して前記フラッシュメモリに対してなされた変更に対応させるために、前記ホストデバイスの前記揮発性メモリに記憶されている前記FTLテーブルの前記コピーに書き込むための手段と、
    前記書込み操作要求に応答して、前記書込み操作の完了通知を前記ホストデバイスに送るための手段と
    を備える、請求項53に記載のフラッシュメモリデバイス。
  57. フラッシュメモリデバイスに結合するように構成されたホストデバイスであって、
    揮発性メモリと、
    前記ホストデバイスの前記揮発性メモリを通信接続し、前記ホストデバイスに結合されると前記フラッシュメモリデバイスに通信するように構成された通信バスと、
    前記揮発性メモリおよび前記通信バスに結合されたプロセッサと
    を備え、前記プロセッサが、
    前記フラッシュメモリデバイスが前記揮発性メモリ内への前記フラッシュメモリデバイスのフラッシュ変換層(FTL)テーブルのコピーのホストキャッシングをサポートするかどうかを決定するステップと、
    前記FTLテーブルの前記コピーを記憶するために前記揮発性メモリの一部を割り当てるステップと、
    前記揮発性メモリの一部に対する前記通信バスを介した直接メモリアクセス読出しおよび書込み特権を前記フラッシュメモリデバイスに許容するステップと
    を含む操作を実施するプロセッサ実行可能命令を使用して構成されるホストデバイス。
  58. 前記プロセッサが、
    前記フラッシュメモリデバイスに記憶されている前記FTLテーブルのサイズを前記フラッシュメモリデバイスに問い合わせるステップと、
    前記揮発性メモリがすべての前記FTLテーブルを記憶することができるかどうかを決定するステップと
    をさらに含む操作を実施するプロセッサ実行可能命令を使用して構成され、
    前記揮発性メモリの一部を割り当てるステップが、前記FTLテーブルの前記サイズに基づいて前記揮発性メモリの一部のサイズを決定するステップを含む
    請求項57に記載のホストデバイス。
  59. フラッシュメモリデバイスに結合するように構成されたホストデバイスであって、
    前記フラッシュメモリデバイスが前記ホストデバイスの揮発性メモリ内への前記フラッシュメモリデバイスのフラッシュ変換層(FTL)テーブルのコピーのホストキャッシングをサポートするかどうかを決定するための手段と、
    前記FTLテーブルの前記コピーを記憶するために前記揮発性メモリの一部を割り当てるための手段と、
    前記揮発性メモリの一部に対する直接メモリアクセス読出しおよび書込み特権を前記フラッシュメモリデバイスに許容するための手段と
    を備えるホストデバイス。
  60. 前記フラッシュメモリデバイスに記憶されている前記FTLテーブルのサイズを前記フラッシュメモリデバイスに問い合わせるための手段と、
    前記揮発性メモリがすべての前記FTLテーブルを記憶することができるかどうかを決定するための手段と
    をさらに備え、
    前記揮発性メモリの一部を割り当てるための手段が、前記FTLテーブルの前記サイズに基づいて前記揮発性メモリの一部のサイズを決定するための手段を備える
    請求項59に記載のホストデバイス。
JP2016513995A 2013-05-13 2014-05-09 高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法 Active JP6190045B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/892,433 US9575884B2 (en) 2013-05-13 2013-05-13 System and method for high performance and low cost flash translation layer
US13/892,433 2013-05-13
PCT/US2014/037531 WO2014186232A1 (en) 2013-05-13 2014-05-09 System and method for high performance and low cost flash translation layer

Publications (3)

Publication Number Publication Date
JP2016522942A true JP2016522942A (ja) 2016-08-04
JP2016522942A5 JP2016522942A5 (ja) 2017-06-22
JP6190045B2 JP6190045B2 (ja) 2017-08-30

Family

ID=50942864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016513995A Active JP6190045B2 (ja) 2013-05-13 2014-05-09 高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法

Country Status (8)

Country Link
US (1) US9575884B2 (ja)
EP (1) EP2997459B1 (ja)
JP (1) JP6190045B2 (ja)
KR (1) KR20160006709A (ja)
CN (1) CN105378642A (ja)
BR (1) BR112015028634A2 (ja)
TW (1) TWI556099B (ja)
WO (1) WO2014186232A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021508879A (ja) * 2017-12-29 2021-03-11 華為技術有限公司Huawei Technologies Co.,Ltd. 追加専用記憶デバイスを使用するデータベース管理のためのシステム及び方法
JP2022522437A (ja) * 2019-04-30 2022-04-19 長江存儲科技有限責任公司 コントローラ、機器および方法

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150139718A (ko) * 2014-06-03 2015-12-14 에스케이하이닉스 주식회사 불휘발성 메모리를 제어하는 컨트롤러 및 그것을 포함하는 반도체 장치
US9563382B2 (en) 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer
US9507722B2 (en) * 2014-06-05 2016-11-29 Sandisk Technologies Llc Methods, systems, and computer readable media for solid state drive caching across a host bus
US10007442B2 (en) 2014-08-20 2018-06-26 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically deriving hints from accesses to a storage device and from file system metadata and for optimizing utilization of the storage device based on the hints
US10228854B2 (en) 2014-08-20 2019-03-12 Sandisk Technologies Llc Storage devices and methods for optimizing use of storage devices based on storage device parsing of file system metadata in host write operations
US10268584B2 (en) * 2014-08-20 2019-04-23 Sandisk Technologies Llc Adaptive host memory buffer (HMB) caching using unassisted hinting
US9851901B2 (en) 2014-09-26 2017-12-26 Western Digital Technologies, Inc. Transfer of object memory references in a data storage device
US10101918B2 (en) 2015-01-21 2018-10-16 Sandisk Technologies Llc Systems and methods for generating hint information associated with a host command
US10007433B2 (en) * 2015-01-21 2018-06-26 Sandisk Technologies Llc Systems and methods for performing adaptive host memory buffer caching of transition layer tables
KR20160120004A (ko) * 2015-04-07 2016-10-17 삼성전자주식회사 시스템 온-칩 및 이를 포함하는 전자 기기
CN106155579A (zh) * 2015-04-27 2016-11-23 广明光电股份有限公司 固态硬盘动态储存转换层数据的方法
CN106293493A (zh) * 2015-05-18 2017-01-04 广明光电股份有限公司 固态硬盘模块动态储存转换层的方法
US10055236B2 (en) * 2015-07-02 2018-08-21 Sandisk Technologies Llc Runtime data storage and/or retrieval
US10452556B2 (en) 2015-09-11 2019-10-22 Toshiba Memory Corporation Memory device and information processing device
TWI553478B (zh) * 2015-09-23 2016-10-11 瑞昱半導體股份有限公司 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置
CN106557271B (zh) * 2015-09-30 2019-08-20 合肥沛睿微电子股份有限公司 能够使用外部挥发性记忆体的装置以及能够释放内部挥发性记忆体的装置
US10452594B2 (en) * 2015-10-20 2019-10-22 Texas Instruments Incorporated Nonvolatile logic memory for computing module reconfiguration
TWI556100B (zh) * 2015-10-26 2016-11-01 點序科技股份有限公司 快閃記憶體裝置及其交錯存取方法
CN105353989B (zh) 2015-11-19 2018-12-28 华为技术有限公司 存储数据访问方法及相关的控制器、设备、主机和系统
US20170177497A1 (en) * 2015-12-21 2017-06-22 Qualcomm Incorporated Compressed caching of a logical-to-physical address table for nand-type flash memory
US9927997B2 (en) 2015-12-21 2018-03-27 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically and selectively enabling burst mode operation in a storage device
US10331203B2 (en) 2015-12-29 2019-06-25 Texas Instruments Incorporated Compute through power loss hardware approach for processing device having nonvolatile logic memory
US10114743B2 (en) * 2016-04-06 2018-10-30 Sandisk Technologies Inc. Memory erase management
US10157004B2 (en) 2016-04-14 2018-12-18 Sandisk Technologies Llc Storage system and method for recovering data corrupted in a host memory buffer
US10474374B2 (en) * 2016-05-24 2019-11-12 Samsung Electronics Co., Ltd. Method and apparatus for storage device latency/bandwidth self monitoring
CN109074318B (zh) * 2016-05-31 2023-07-04 桑迪士克科技有限责任公司 用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法
US10521118B2 (en) 2016-07-13 2019-12-31 Sandisk Technologies Llc Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB)
US10503635B2 (en) * 2016-09-22 2019-12-10 Dell Products, Lp System and method for adaptive optimization for performance in solid state drives based on segment access frequency
CN107870867B (zh) * 2016-09-28 2021-12-14 北京忆芯科技有限公司 32位cpu访问大于4gb内存空间的方法与装置
CN107870870B (zh) * 2016-09-28 2021-12-14 北京忆芯科技有限公司 访问超过地址总线宽度的内存空间
US10853233B2 (en) * 2016-10-18 2020-12-01 Toshiba Memory Corporation Reconstruction of address mapping in a host of a storage system
CN108121664A (zh) * 2016-11-28 2018-06-05 慧荣科技股份有限公司 数据储存装置以及其操作方法
TWI627531B (zh) * 2016-11-28 2018-06-21 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US10956346B1 (en) * 2017-01-13 2021-03-23 Lightbits Labs Ltd. Storage system having an in-line hardware accelerator
KR20180121733A (ko) * 2017-04-28 2018-11-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10558393B2 (en) * 2017-10-20 2020-02-11 Qualcomm Incorporated Controller hardware automation for host-aware performance booster
JP2019079464A (ja) * 2017-10-27 2019-05-23 東芝メモリ株式会社 メモリシステムおよび制御方法
US10409726B2 (en) 2017-10-30 2019-09-10 Micron Technology, Inc. Dynamic L2P cache
KR102384759B1 (ko) * 2017-11-13 2022-04-11 삼성전자주식회사 호스트 메모리 버퍼를 사용하기 위해 호스트 장치와 속성 정보를 공유하는 스토리지 장치 및 그것을 포함하는 전자 장치
US11294440B2 (en) 2017-11-17 2022-04-05 Hewlett-Packard Development Company, L.P. Peripheral device configurations by host systems
US10459844B2 (en) * 2017-12-21 2019-10-29 Western Digital Technologies, Inc. Managing flash memory read operations
TWI679538B (zh) * 2018-03-31 2019-12-11 慧榮科技股份有限公司 資料儲存系統之控制單元以及邏輯至物理映射表更新方法
WO2019209707A1 (en) 2018-04-23 2019-10-31 Micron Technology, Inc. Host logical-to-physical information refresh
US10884920B2 (en) 2018-08-14 2021-01-05 Western Digital Technologies, Inc. Metadata-based operations for use with solid state devices
US11249664B2 (en) * 2018-10-09 2022-02-15 Western Digital Technologies, Inc. File system metadata decoding for optimizing flash translation layer operations
US11340810B2 (en) 2018-10-09 2022-05-24 Western Digital Technologies, Inc. Optimizing data storage device operation by grouping logical block addresses and/or physical block addresses using hints
KR20200046264A (ko) 2018-10-24 2020-05-07 삼성전자주식회사 호스트 메모리 버퍼를 이용하는 데이터 스토리지 장치 및 그 동작 방법
KR102599176B1 (ko) 2018-11-14 2023-11-08 삼성전자주식회사 호스트 메모리 버퍼를 사용하는 스토리지 장치 및 그것의 메모리 관리 방법
CN111367830B (zh) * 2018-12-06 2023-11-14 北京忆恒创源科技股份有限公司 主机参与的重建ftl表的方法及其存储设备
KR20200069889A (ko) * 2018-12-07 2020-06-17 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
KR20200088635A (ko) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20200143871A (ko) 2019-06-17 2020-12-28 삼성전자주식회사 스토리지를 포함하는 전자 장치 및 그의 스토리지 이용 방법
KR20210068699A (ko) 2019-12-02 2021-06-10 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
CN111177033A (zh) * 2019-12-24 2020-05-19 河南文正电子数据处理有限公司 一种固态硬盘的使用方法
KR20220080254A (ko) * 2020-12-07 2022-06-14 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 컨트롤러

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
JP2001243110A (ja) * 1999-12-20 2001-09-07 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法
US6484218B1 (en) * 1998-10-08 2002-11-19 Texas Instruments Incorporated Method for improving direct memory access performance
JP2004288150A (ja) * 2003-03-19 2004-10-14 Samsung Electronics Co Ltd フラッシュファイルシステム
US20050138464A1 (en) * 2003-11-21 2005-06-23 Chong Pohsoon Scratch fill using scratch tracking table
US20100312947A1 (en) * 2009-06-04 2010-12-09 Nokia Corporation Apparatus and method to share host system ram with mass storage memory ram
US20110296088A1 (en) * 2010-05-27 2011-12-01 Sandisk Il Ltd. Memory management storage to a host device
US20120179859A1 (en) * 2011-01-11 2012-07-12 Hynix Semiconductor Inc. Nonvolatile memory apparatus performing ftl function and method for controlling the same
JP2012198811A (ja) * 2011-03-22 2012-10-18 Toshiba Corp メモリシステム、不揮発性記憶装置及びその制御方法
JP2012243287A (ja) * 2011-05-24 2012-12-10 Sony Corp 情報処理装置および情報処理方法
US20140136765A1 (en) * 2012-11-12 2014-05-15 Eun Chu Oh Memory system comprising nonvolatile memory device and related read method

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4199519B2 (ja) * 2002-11-05 2008-12-17 パナソニック株式会社 メモリ管理装置及びメモリ管理方法
US6981123B2 (en) * 2003-05-22 2005-12-27 Seagate Technology Llc Device-managed host buffer
TW200832440A (en) 2007-01-25 2008-08-01 Genesys Logic Inc Flash memory translation layer system
KR101663667B1 (ko) 2009-02-03 2016-10-07 삼성전자주식회사 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
EP2264602A1 (en) 2009-06-17 2010-12-22 Gemalto SA Memory device for managing the recovery of a non volatile memory
CN102201259A (zh) * 2010-03-24 2011-09-28 建兴电子科技股份有限公司 非易失性存储器的平均抹写方法
KR20110121897A (ko) 2010-05-03 2011-11-09 삼성전자주식회사 사용자 장치 및 그것의 프로그램 페일 처리 방법
US8806112B2 (en) 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
KR101856506B1 (ko) 2011-09-22 2018-05-11 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 쓰기 방법
CN102541760B (zh) * 2012-01-04 2015-05-20 记忆科技(深圳)有限公司 基于固态硬盘的计算机系统
US9213632B1 (en) * 2012-02-29 2015-12-15 Marvell International Ltd. Systems and methods for data storage devices to use external resources
US9116820B2 (en) * 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
US9329991B2 (en) * 2013-01-22 2016-05-03 Seagate Technology Llc Translation layer partitioned between host and controller
US9122588B1 (en) * 2013-03-15 2015-09-01 Virident Systems Inc. Managing asymmetric memory system as a cache device

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US6484218B1 (en) * 1998-10-08 2002-11-19 Texas Instruments Incorporated Method for improving direct memory access performance
JP2001243110A (ja) * 1999-12-20 2001-09-07 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法
JP2004288150A (ja) * 2003-03-19 2004-10-14 Samsung Electronics Co Ltd フラッシュファイルシステム
US20050138464A1 (en) * 2003-11-21 2005-06-23 Chong Pohsoon Scratch fill using scratch tracking table
US20100312947A1 (en) * 2009-06-04 2010-12-09 Nokia Corporation Apparatus and method to share host system ram with mass storage memory ram
US20110296088A1 (en) * 2010-05-27 2011-12-01 Sandisk Il Ltd. Memory management storage to a host device
US20120179859A1 (en) * 2011-01-11 2012-07-12 Hynix Semiconductor Inc. Nonvolatile memory apparatus performing ftl function and method for controlling the same
JP2012198811A (ja) * 2011-03-22 2012-10-18 Toshiba Corp メモリシステム、不揮発性記憶装置及びその制御方法
JP2012243287A (ja) * 2011-05-24 2012-12-10 Sony Corp 情報処理装置および情報処理方法
US20140136765A1 (en) * 2012-11-12 2014-05-15 Eun Chu Oh Memory system comprising nonvolatile memory device and related read method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021508879A (ja) * 2017-12-29 2021-03-11 華為技術有限公司Huawei Technologies Co.,Ltd. 追加専用記憶デバイスを使用するデータベース管理のためのシステム及び方法
US11461296B2 (en) 2017-12-29 2022-10-04 Huawei Cloud Computing Technologies Co., Ltd. Systems and methods for database management using append-only storage devices
JP7329518B2 (ja) 2017-12-29 2023-08-18 ファーウェイ クラウド コンピューティング テクノロジーズ カンパニー リミテッド 追加専用記憶デバイスを使用するデータベース管理のためのシステム及び方法
US11921684B2 (en) 2017-12-29 2024-03-05 Huawei Cloud Computing Technologies Co., Ltd. Systems and methods for database management using append-only storage devices
JP2022522437A (ja) * 2019-04-30 2022-04-19 長江存儲科技有限責任公司 コントローラ、機器および方法

Also Published As

Publication number Publication date
BR112015028634A2 (pt) 2017-07-25
JP6190045B2 (ja) 2017-08-30
CN105378642A (zh) 2016-03-02
WO2014186232A1 (en) 2014-11-20
KR20160006709A (ko) 2016-01-19
TWI556099B (zh) 2016-11-01
EP2997459A1 (en) 2016-03-23
TW201506619A (zh) 2015-02-16
US9575884B2 (en) 2017-02-21
US20140337560A1 (en) 2014-11-13
EP2997459B1 (en) 2018-03-07

Similar Documents

Publication Publication Date Title
JP6190045B2 (ja) 高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法
CN107967221B (zh) 具有非易失性存储器的计算系统及其操作方法
KR102432754B1 (ko) 최종 레벨 캐시 시스템 및 이에 대응하는 방법
US20170177497A1 (en) Compressed caching of a logical-to-physical address table for nand-type flash memory
KR102423713B1 (ko) 가상 어드레스를 물리적 어드레스로 번역을 수행하기 위해 입력-출력 메모리 관리 유닛내 다수의 메모리 소자들 사용
KR102147993B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
US11467739B2 (en) Storage device and operation method thereof
CN110895446A (zh) 存储设备以及系统
US20170255561A1 (en) Technologies for increasing associativity of a direct-mapped cache using compression
TWI752620B (zh) 與記憶體類型相關的頁表
US20160062659A1 (en) Virtual memory module
EP3005126B1 (en) Storage systems and aliased memory
US11775183B2 (en) Storage device and operation method thereof
CN110597742A (zh) 用于具有持久系统存储器的计算机系统的改进存储模型
CN103885901A (zh) 文件读取方法、存储设备和电子设备
TWI741357B (zh) 用於記憶體操作之運算系統及其操作方法
KR20240025455A (ko) 해시 스토리지에서 캐싱을 수행하기 위한 시스템 및 방법
KR20240010310A (ko) 컴퓨팅 시스템 및 그 동작 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170509

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170509

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170509

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170511

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170803

R150 Certificate of patent or registration of utility model

Ref document number: 6190045

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