JP2014523046A - モバイル・メモリ・キャッシュ読み取り最適化 - Google Patents

モバイル・メモリ・キャッシュ読み取り最適化 Download PDF

Info

Publication number
JP2014523046A
JP2014523046A JP2014519591A JP2014519591A JP2014523046A JP 2014523046 A JP2014523046 A JP 2014523046A JP 2014519591 A JP2014519591 A JP 2014519591A JP 2014519591 A JP2014519591 A JP 2014519591A JP 2014523046 A JP2014523046 A JP 2014523046A
Authority
JP
Japan
Prior art keywords
access command
memory device
command
data block
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014519591A
Other languages
English (en)
Other versions
JP2014523046A5 (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 JP2014523046A publication Critical patent/JP2014523046A/ja
Publication of JP2014523046A5 publication Critical patent/JP2014523046A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/161Portable computer, e.g. notebook
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】モバイル・メモリ・デバイスのためのキャッシュ読み取り最適化を可能にする方法が記載されている。
【解決手段】この方法は、メモリ・デバイスにおいて、ホストから、前記メモリ・デバイスに、少なくとも2つのデータ・ブロックにアクセスするように指示する1つ以上のアクセス・コマンドを受信するステップを含む。この少なくとも2つのデータ・ブロックはアクセスされる。この方法は、このメモリ・デバイスにより、前記少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、この少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成することを含む。この方法に関する装置とコンピュータ読取り可能メディアも、記述される。
【選択図】図6

Description

本願発明の例示的で非限定的な実施形態は、一般に、メモリ・デバイスに関し、より詳細には、モバイル・メモリ・デバイスのキャッシュ読み取り最適化を提供することに関するものである。
このセクションでは、特許請求の範囲において記載される本願発明についての背景および文脈を提供することを目的とする。ここでの説明は、追求することができた概念を含むかもしれないが、しかし、必ずしも、出願以前に考えられた、あるいは、追求されたものであるというわけではない。したがって、ここで、特に示されない限り、このセクションにおいて記述される内容は、本願の発明の説明と特許請求の範囲に対する先行技術でなく、このセクションにおいて含まれる先行技術であると認められない。
本願明細書や図面において見られるつぎの略語は、以下の通りに定められる。
DB データベース
DRAM ダイナミック・ランダム・アクセス・メモリ
ECC 誤り訂正符号
e−MMC 埋め込みマルチ・メディア・カード
eNB E−UTRANノードB(進化型ノードB)
FW ファームウェア
HW ハードウェア
NodeB 基地局
OS オペレーティング・システム
PC パソコン
SBC(−3) SCSIブロック・コマンド
SCSI 小型コンピュータ・システム・インタフェース
SSD 半導体ディスク
SW ソフトウェア
UE 移動局や移動端末などのユーザ機器
UFS ユニバーサル・フラッシュ・ストレージ
UEなどモバイル・デバイスは、例えば、音楽、ピクチャ、アプリケーション、マップ、など利用者データを格納するメモリを使用することができる。モバイル・デバイスにおいて格納される利用者データの量は、増加しており、大きくなり続けるであろう。いくつかのハイエンドのデバイスは、NANDメモリ技術(別名フラッシュメモリ)など、不揮発性メモリに基づいて、ユーザ・データ・ストレージを提供する。NANDメモリ使用は、ミッドレンジ・デバイスに拡大した。
典型的なモバイル管理NANDデバイスにおいて、実際のキャッシュメモリは、コストと電力最適化のために存在しない。NAND自体において、いくつかのメモリ・コントローラSRAMとバッファ・メモリが存在できる。しかしながら、これらは、NANDメモリにプログラムされるか、ホストに配信される前にデータをバッファする一時的ストレージである。いくつかPC市場において、SSDのような管理NANDデバイスは、そのメモリ・デバイスにおいて含まれるキャッシュ・メモリ・ストレージ、典型的にはDRAM、を有することができる。SSDにおいて、データを、NANDストレージにそれを掃き出す前により長い期間DRAMキャッシュに格納することができる。
パフォーマンスの標準化されたキャッシュ定義と改善は、主として、書込み操作に適用される。既存の標準化されたプリフェッチ/パック・コマンド・メカニズムは、事前にそのデバイスにアドレスを提供するために、どのデータが次にフェッチされなければならないかについてホストが分かっていることに基づいている。しかしながら、これは、常に妥当であるということはない。必要であるのは、NANDメモリ・デバイスにおいてメモリ読込みを改善する方法である。
この発明の概要は、単に例示的、非限定的であることを意図している。
本願発明の例示的な実施形態の使用によって、前述と他の問題は解決され、他の利点が認識される。
その第1の態様において、この発明の例示的な実施形態は、モバイル・メモリ・デバイスのためのキャッシュ読み取り最適化を可能にする方法を提供する。この方法は、(例えば、プロセッサで)メモリ・デバイスにおいて、ホストから、1つ以上のアクセス・コマンドを受信することを含み、その1つ以上のアクセス・コマンドは、少なくとも2つのデータ・ブロックにアクセスするよう、メモリ・デバイスに指示する。この少なくとも2つのデータ・ブロックにアクセスすることも、また、含まれる。この方法は、このメモリ・デバイスにより、上記少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、この少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成することを含む。
その更なる態様において、本願発明の例示的な実施形態は、モバイル・メモリ・デバイスのためのキャッシュ読み取り最適化を可能にする装置を提供する。この装置は、1つ以上のプロセッサと、コンピュータ・プログラム・コードを含む1つ以上のメモリとを含み、この1つ以上のメモリとコンピュータ・プログラム・コードとは、この1つ以上のプロセッサで、装置に、処理の実行をさせるように構成されている。この処理は、メモリ・デバイスにおいて、ホストから、1つ以上のアクセス・コマンドを受信することを含み、その1つ以上のアクセス・コマンドは、メモリ・デバイスに、少なくとも2つのデータ・ブロックにアクセスするように指示する。この少なくとも2つのデータ・ブロックはアクセスされる。この処理は、また、このメモリ・デバイスにより、上記少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、この少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成する。
それとは別の態様において、本願発明の例示的な実施形態は、モバイル・メモリ・デバイスのキャッシュ読み取り最適化を可能にするためのコンピュータ読取り可能媒体を提供する。コンピュータ読取り可能媒体は、処理を実行するプロセッサによって実行可能なコンピュータ・プログラムで実体的にエンコードされる。この処理は、メモリ・デバイスにおいて、ホストから、1つ以上のアクセス・コマンドを受信することを含み、その1つ以上のアクセス・コマンドは、メモリ・デバイスに少なくとも2つのデータ・ブロックにアクセスするように指示する。この少なくとも2つのデータ・ブロックはアクセスされる。この処理は、また、このメモリ・デバイスにより、上記少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、この少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成することを含む。
その更なる態様において、本願発明の例示的な実施形態は、モバイル・メモリ・デバイスのためのキャッシュ読み取り最適化を可能にする装置を提供する。この装置は、メモリ・デバイスにおいて、ホストから、一つ以上のアクセス・コマンドを受信する手段と、ここで、その1つ以上のアクセス・コマンドは、少なくとも2つのデータ・ブロックにアクセスするよう、メモリ・デバイスに指示するものであり、前記少なくとも2つのデータ・ブロックにアクセスする手段と、このメモリ・デバイスにより、上記少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、この少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成する手段と、を含む。
本願発明の例示的な実施形態の前述および他の態様は、以下の「発明を実施するための形態」において、付帯した図面とともに読まれるときに、より明白になる。
図1は、本願発明の種々の例示的な実施形態の実施に使用するために適切な例示的な電子デバイスの簡略ブロック図を示す。 図2は、例えば、図1で示されるような例示的なユーザ機器のより詳しく述べられたブロック図を示す。 図3は、例えば、図1、2で示されるような例示的なメモリ・デバイスのより詳しく述べられたブロック図を示す。 図4は、図3で示されるような例示的なメモリ・ユニットのより詳しく述べられたブロック図を示す。 図5は、本願発明にしたがう例示的なメモリ書込み操作を図示する。 図6は、例示的な方法における動作、および、本願発明の種々の例示的な実施形態にしたがってコンピュータ読取り可能メモリの上で具体化されたコンピュータ・プログラム命令の実行の結果を図示する論理フロー図である。
NAND読み取りアクセス時間は何十マイクロ秒のスケールでありえるので、次のデータを、少なくとも、NANDデバイスのバッファへ、または、誤り訂正符号(ECC)により訂正してコントローラのバッファ/キャッシュに、データの要求に先立って、ホストが次のデータを要求するときに、それをキャッシュから届けることができるように、フェッチすることができることは有利である。これは、ホストプロセッサに負担をかけることなく読込み操作の平均速度を上げることができる。その上に、アクセス要求がより速く満たされるので、メモリ・モジュールは、よりすぐに、電力消費最適化の手段を提供する低電力状態に至ることができる。その上、データのリンキングを、正しいデータがフェッチされることを確実にするために、改善することができる。
本願発明のさらに詳細な種々の例示的な実施形態を記述する前に、本願発明の例示的な実施形態の実施に適切な種々の電子デバイスや装置の簡略ブロック図を図示する図1を参照する。
図1の無線システム230において、無線ネットワーク235は、NodeB(基地局)のような、より具体的にはeNB220のようなネットワーク・アクセス・ノードを介して、UE210として参照される移動通信装置のような装置で無線リンク232にわたる通信に適応する。
UE 210は、コンピュータやデータ・プロセッサ(DP)214などのコントローラと、コンピュータ命令(PROG)218のプログラムを格納するメモリ(MEM)216として具体化されるコンピュータ可読記憶媒体と、1つ以上のアンテナを介してeNB220との双方向無線通信のために、無線周波数(RF)トランシーバ212などの適切な無線インタフェースと、を含む。UE210は、たとえばメモリ・プロセッサー215など1つ以上の専用のプロセッサを含むこともできる。
PROG218は、プログラム命令を含むとされ、結合するDP214によって実行されるとき、デバイスが、本願発明の例示的な実施形態に従って動作することを可能にする。これについては、以下で、より詳細に議論する。
すなわち、本願発明の種々の例示的な実施形態は、少なくとも部分的には、UE210のDP214によって実行可能なコンピュータ・ソフトウェアによって、または、ハードウェアによって、または、ソフトウェアとハードウェア(および、ファームウェア)の組合せによって、インプリメントすることができる。
一般的に、UE210の種々の実施形態は、移動電話、無線通信能力を有するパーソナル携帯情報機器(PDA)、無線通信能力を有するポータブル・コンピュータ、デジタル・カメラのような画像キャプチャー・デバイス、ゲーム・デバイス、音楽格納・再生機器、無線インターネット接続とブラウジングを可能にするインターネット機器、ならびに、そのような機能の組合せを組み込んだ携帯型ユニットまたは端末、を含むことができる。しかし、これらに制限されるものではない。
コンピュータ読取り可能MEM216は、ローカルな技術的環境に対して適切な任意のタイプであってよく、例えば、半導体ベース・メモリ素子、フラッシュ・メモリ、磁気メモリ・デバイスとシステム、光メモリ・デバイスとシステム、固定メモリと取り外し可能メモリなど、いかなる適切なデータ・ストレージ技術を使用してもインプリメントすることができる。DP214は、ローカルな技術的環境に対して適切な任意のタイプであってよく、汎用コンピュータ、専用コンピュータ、マイクロ・プロセッサ、デジタル・シグナル・プロセッサ(DSP)、マルチコア・プロセッサ・アーキテクチャに基づくプロセッサの1つ以上を、非限定的な例として、含むことができる、無線インタフェース(例えば、RFトランシーバ212)は、ローカルな技術的環境に対して適切な任意のタイプであってよく、例えば、個々の送信器、受信機、トランシーバまたはそのようなコンポーネントの組合せなど、いかなる適切な通信技術を使用してもインプリメントすることができる。
図2は、平面図(左)と断面図(右)との両方において、例示的なUEに関する詳細を図示する。本願発明は、多くの機能特定コンポーネントの1つまたはいくつかの組合せにおいて、具体化することができる。図2において、UE210は、キーパッドとして図示されるグラフィック・ディスプレイ・インタフェース320とユーザ・インタフェース322を有する。しかし、また、グラフィック・ディスプレイ・インタフェース320ではタッチスクリーン技術、また、マイクロフォン324で受信される音声認識技術も含むように理解される。パワー・アクチュエータ326は、ユーザによってオン/オフされている装置を制御する。例示的なUE210は、(例えば、ビデオ通話のために)前方向きに示されるカメラ328を有することができる。しかし、代替的に、あるいは、追加的に、(例えば、ローカル・ストレージに対する画像およびビデオのキャプチャのために)後方向きであることもできる。カメラ328は、シャッター・アクチュエータ330によって制御され、選択的に、カメラ328がアクティブ・モードにないとき、スピーカ334のボリューム調整として代替的に機能することができるズーム・アクチュエータ332によって制御される。
図2の断面図に、典型的にはセルラ通信に使われる複数の送信/受信アンテナ336がみられる。アンテナ336は、UEにおいて、他の無線を使用するマルチバンドでありえる。アンテナ336のための使用可能なグラウンド層は、UE筐体により封入された全スペースにわたってシェードされて示されるが、いくつかの実施形態においては、グラウンド層は、パワー・チップ338が形成されるプリント配線板の上に配置されるように、より小さな領域に限定することできる。パワー・チップ338は、送信されているチャネルや、空間ダイバーシティが用いられ同時に送信するアンテナ全体での電力増幅を制御し、受信信号を増幅する。パワー・チップ338は、増幅された受信信号をベースバンド処理のために信号を復調して、ダウンコンバートする無線周波(RF)チップ340に出力する。ベースバンド(BB)チップ342が、信号を検出し、それは、次に、ビット列に変換され、最後にデコードされる。同様の処理が、装置210において生成され、それから送信された信号にたいして逆向きに起きる。
カメラ328への、および、カメラ328からの信号は、種々の画像フレームをエンコードし、デコードする画像/ビデオ・プロセッサ344を通過する。別々のオーディオ・プロセッサー346が、また、存在し、スピーカ334とマイク324へ、および、それらから信号を制御することもできる。グラフィック・ディスプレイ・インタフェース320は、フレームメモリ348からレフレッシュされる。ユーザ・インタフェース・チップ350で制御されて、ユーザ・インタフェース・チップ350は、表示インタフェース320へ、および、それからの信号を処理することができ、追加的に、キーパッド322やその他からのユーザ入力を処理することができる。UE210の特定の実施形態は、また、アンテナ・オンチップを組み込むことができる、あるいは、オフ・チップ・アンテナに結合することができる、例えば、無線ローカル・エリア・ネットワークWLAN337やブルートゥース無線339など、1つ以上の二次無線を含むこともできる。装置のいたるところに、例えば、ランダム・アクセス・メモリRAM343、リード・オンリー・メモリROM345など種々のメモリが存在する。そして、いくつかの実施形態において、図示されたメモリーカード347のような取り外し可能メモリが存在する。種々のプログラム218は、フラッシュ333、例えば、NAND、eMMC、UFS、SSD、などののうちの1つ以上のものに格納することができる。UE210の中のこれらのコンポーネントの全てが、通常、例えば、バッテリー349のような携帯型電源装置によって電力供給される。
プロセッサ338、340、342、344、346、350は、UE210において別々のエンティティとして具体化される場合には、メイン・プロセッサ214のスレーブの関係において動作することができ、そして、メイン・プロセッサ214は、次に、それらのマスターの関係にありえる。本願発明の実施形態は、メモリ・モジュール(333、343、345、347、348)のコントローラに、最も関連する。しかしながら、他の実施形態は、そこに配置する必要はないけれども、図2に対して上述した機能のいくつかを結合する別のプロセッサの中に示すか、配置するように、種々のチップとメモリにわたって配置することができることに留意する。図2のこれらの種々のプロセッサの一部または全部は、種々のメモリの1つ以上にアクセスし、それらのメモリは、そのプロセッサとともにオン・チップであることができ、あるいは、それとは別であることもできる。
上で記述された種々のチップ(例えば、338、340、342など)は、組み合わせて、記述されたものより少数のものにすることができ、最もコンパクトな場合には、単一のチップのなかに物理的に具体化することができることに留意する。
図3は、例えば、図1、2で示されるような、MEM216、RAM343、ROM345、フラッシュ333およびメモリーカード347など、例示的なメモリ・デバイスのより詳しく述べられたブロック図を示す。MEM410は、メモリ・コントローラ(MC)420と、図示されるように、2つの個々の記憶装置MEM430とMEM440を含む。別の例示的な実施形態において、1つ以上のメモリ・ユニットがあり得る。MC420は、読取り/書込み要求を取扱い、それに応じて、MEM430とMEM440に命令を送るように構成される。
MEM430とMEM440とは、(例えば、両方ともNANDメモリ技術を使用している)同じタイプのメモリ・デバイスであっても良く、あるいは、(例えば、MEM430がNANDメモリ技術を使用し、MEM440は光ドライブ・メモリ技術であっても良いなど)異なるタイプであっても良い。追加的に、メモリ・ユニット(MEM430、440)の1つ以上を、MC420のためのローカル・キャッシュ・メモリとして、使用することができる。
図4は、図3で示されるような例示的なメモリ・ユニットのより詳しく述べられたブロック図を示す。MEM430は、種々のメモリ領域(432、434、436および438)に分割される。非限定的な具体例として、4つの領域が示されている。しかしながら、(例えば、1、2、4、8など)任意数の領域があっても良い。
領域の分離は、物理的、あるいは、仮想的/論理的な分離であっても良い。仮想的な分離は、種々のメモリーアドレスを、領域に割り当てることによって、行うことができる。領域においてセルは、物理的に隣接しても、隣接しなくても良い。各々の領域は、MC420によって別々に扱うことができる、あるいは、単一のエンティティに結合することもできる。
非限定的な例としては、MEM430は、各々がメモリまたはメモリ・ブロック(例えば、512バイトのブロック)のページを表す多数の領域に分けられることができる。
本願発明にしたがう第1の例示的な実施形態において、プリフェッチ/キャッシングは、(例えば、eMMCのContextIDフィーチャなど)インデックス識別子と結びついている。ホストがインデックス識別子(例えば、インデックス#1)に書き込むときはいつでも、対応するNANDブロックにおいて書き込まれるデータは、次のインデックス#1のデータへのリンクを含むことができる。このように、ホストは、(例えば、ソフトウェア(SW)、画像/音楽データまたはデータベース情報などの)データを、単一のインデックスに書き込むように、動作することができ、データを読むときには、(例えば、いくつかの順次、あるいは、単一ブロック読み込みアクセスを使用するときでも)、次のデータは、ホストのさらなる負荷なしで、プリフェッチすることができる。1つの非限定的な例において、eMMCのデータTAGコンセプトまたはSCSISBC−3のグループ・ナンバー・スキームは、最適化された読み取りキャッシングのためにデータを結びつけて使用することができる。
ホストが、メモリに新たなデータを後で書き込む場合には、それは、前に使われた同じインデックスを使用することができる(例えば、OSを書き込む生産において)。有限数の動的インデックスをサポートするために、新しいインデックスが開けられるたびに、そのインデックスに対する最新のデータだけが、一緒にリンクされる。したがって、任意の介在する書込みコマンドは、同じインデックスを有する書込みコマンドの間のプリフェッチ・リンクを防止することができる。これらのインデックスは、同じデータに対応しても、対応しなくても良いからである。
代替的に、インデックスは、また、新たなデータが、以前に閉じられたインデックスへ後で書き込まれる(例えば、そのインデックスは再開される)場合に、この新たなデータが、前のものの書き込みの終わりにリンクされるように固定することができる。インデックスは、無限の時間固定しても良く、あるいは、一時的に固定しても良い(例えば、しばらくの間、コマンドに応じて、システムが所定の時間アイドル状態になるまで、等)。
リンク・セッションは、同じインデックス情報を有する書込みコマンドからのデータがいつリンクされるかを表すことができる。以前に使用されたインデックスが使用されるとき、新たなセッションが始まる。しかし、以前の使用からのブロックは、新たなブロックにリンクされることはない(例えば、前の使用の最後のブロックは、新たな使用の第1のブロックにリンクされない)。
追加的に、リンク・セッションは、次の多くの状況の1つによって、終わり得る。1)そのリンク・セッション(例えば、限られたウィンドウ)を最初に始めてからの期間の後2)最後のアクセス動作(例えば、休止期間の後のタイムアウト)からの期間の後3)メモリ・デバイスの状態(例えば、eMMCにおける遷移状態または待機状態、UFSにおける電力モードまたはアクティブLUにリンクされる等)に基づいてあるいは、4)ホストに制御された技術において挙動を変える制御レジスタ。
メモリ・デバイスによる実施例において、ホストは、いかなるタグまたはインデックスを利用する必要はない、むしろ、そのメモリ・デバイスは、プリフェッチを制御する。第1の例において、メモリ・デバイスは、バッファ/キャッシュに、次の論理データまたは物理アドレス・データのプリフェッチを実施する。これは、”書き込みマルチプル・ブロック・コマンド”(例えば、eMMCの書き込みマルチプル・ブロック・コマンド)で、シーケンシャル(論理的)アドレスに書き込まれたデータで効率的である。このデバイスは、また、そのようなデータを、リード・プリフェッチのためにリンクすることができる。
代替的に、前の書き込みマルチプル・ブロック・コマンドの最終アドレスは、同じシーケンシャル・ファイルに属していると仮定して、次の書き込みマルチプル・ブロック・コマンドの先頭アドレスに結びつけることができる(例えば、メガバイトのデータ/ファイルは、典型的には、書き込みのためにより小片に切り分けられる)。
この発明に従うさらに例示的な実施形態において、メモリ・デバイスは、同様な”ランダム”・アクセスを一緒にリンクすることができる。例えば、メディアのファイル・システムが、非常に断片化され、データは、メモリ・メディア全体を通して非常に小さな小片(小さなアロケーションユニット粒度)に書き込まれる場合である。
メモリ・デバイスは、データの使用の間(例えば、ホストのインタラクションが制限される場合)、リンクを決定することができる。メモリ・デバイスが、2つの連続する書き込みアクセス(例えば、ブロックAとBに)をリンクする場合、そのブロックは、実際に、異なるファイル/エンティティに属することがあり得、したがって、その後プリフェッチされるとき、”キャッシュ・ミス”を発生する。これらの誤ったリンクは、使用の間に、検出することができる。例えば、メモリ・デバイスが、Aの最終アドレスの後に、AとBとの間のリンクが取り除かれることができることを示すBの先頭アドレスに続く読み取りがないことを検出する場合である。
追加的に、メモリ・デバイスが、Aの最終アドレスがアクセスされたあと、Cの先頭アドレスが読み出されることを決定するならば、このリンクは実行時の間に、つくることができる。さらに、例示的な実施形態において、1つ以上の可能性のある次のアドレスは、キャッシュにプリフェッチすることができる。例えば、どのデータを、プリフェッチするのが最も有利かはっきり分からない場合には、メモリ・デバイスには分からないかもしれないいくつかのルールにしたがって、続くアクセスが、定期的に変わる。
第1のブロックと第2のブロックとの間のつながり情報は、種々の方法で格納することができる。例えば、リンク情報は、第2ブロックへのポインターとして、第1のブロックに保存することができる。第2ブロックは、第1のブロックへのポインターを格納することもできる。代替的に、リンク情報は、例えば、メモリ全体においてリストの一部として、別の場所において保存することができる。
ブロックは、複数のブロックを示しているリンク情報を記録することもできる。例えば、第2のブロックが、第1のブロックの後に、すぐに書き込まれ、第3のブロックは、第1のブロックに続いて、読み出される場合、あるいは、続いて読み出す動作が、ブロックの限定されたセットの間で交替する場合である。
このリンク情報は、また、追加データも含むこともできる。所与のブロックが読み取られ、所与の時間内に続いてブロックが読み取られない各回のカウントは、いつ、続くブロックへのリンクを破壊(または取り除く)すべきかを決定するために、使用することができる。リンクされたブロックの各々のカウントは、特定のブロックが続いて読まれる回数を表したままであることもできる。このカウントは、どのブロックをプリフェッチすべきかを決定するのに使用することができる。例えば、1つのみのブロックをプレフェッチするとき、直ぐに続いて読み取るブロックを、使用することができる。
いくつか実施形態において、アクセス時間対電力を最適化するために、書き込みフェーズにおいて、または、読み取りフェーズにおいて(例えば、陽なシグナリングを通して)、ホストは、リンク・アドレスを有効または無効にすることができる。(例えば、ホストによって)プリフェッチ動作は、有効または無効にすることができる、または、メディアの全体、または、パーティション毎、または論理ユニット毎に、固定された設定によって確立することができる。
ホストは、また、メモリ・デバイスに、例えば、メッセージにおいてビットフラグを変更することによって、プリフェッチ動作を停止するように指示することもできる。非限定的な例において、ビットフラグは、アボート・プリフェッチ(ABPF)ビットである。
追加的に、ホストは、メモリ・デバイスに、物理的なメモリ・デバイス全体にわたりデータをリンク(またはプリフェッチ)すべきか否かを指示することができる。したがって、メモリ・デバイスは、1つの設定において、別々の物理的デバイス(例えば、2つの異なったNANDメモリ)に書き込まれたデータ・ブロックをリンクすることができ、第2の設定において、リンク情報は生成されない。
図5は、本願発明にしたがう例示的なメモリ書込み操作を図示する。
第1の例(1)において、ホストは、第1の書き込みマルチプル・ブロック・コマンド(例えば、CMD23とCMD25との組み合わせ)を発行し、メモリは、応答(RESP)を返す。このシナリオにおいて、コンテキストID、TAG、または特定のルールは、ホストによって提供されない。第1の書き込みコマンドは、2つの512バイト・ブロック(またはページ)をメモリに書き込むようにメモリに指示する。ブロックは、巡回冗長検査(CRC)を含むことができる、あるいは、対応するCRCを、別の場所へ書き込むことができる。書き込み手続きは第1の指標、A(プリフェッチ・リンク)、を作成し、直近に書き込まれたブロック(第1のブロック)を第2のブロックにリンクする。同様に、ホストが第3のブロックをつくる第2の書き込みコマンドを発行するとき、メモリ・デバイスは、第2の指標、B、を作成し、直近に書き込まれたブロック(第2のブロック)を第3のブロックにリンクする。
第2の例(2)において、ホストは、コンテキストIDまたはTAGを提供する。第1の部分において、第1の書き込みコマンドは、メモリに、2つの512バイト・ブロック(またはページ)を第1の識別子(例えば、#ID=1、TAG=X、等)を用いるメモリに書き込むように指示する。ホストが同一の識別子を用いる第2の書き込みコマンドを発行するとき、メモリ・デバイスは、指標、C、を作成し、同一の識別子を有する直近に書き込まれたブロック(第2のブロック)を第3のブロックにリンクする。第2の部分(点線の右に)において、それらが識別子を共有するか否かを問わず各々の書き込みコマンドは、別々のプログラム・セッションである。図示されるように、識別子(例えば、#ID=2、TAG=Y、等)に書くとき、識別子、D、は、閉じられているプログラム・セッションのために、プリフェッチ・リンクにおいて、ブレークをつくって、省略される。
第3の例(3)において、ホストは、コンテキストIDまたはTAGを再び提供する。例2のように、識別子、C、は、つくられ、同一の識別子を有する直近に書き込まれたブロック(第2のブロック)を、第3ブロックにリンクする。この手続きは、異なる識別子を有する他の書き込みコマンドが(例えば、第3の書き込みコマンド)実行されるときでも、ブロック間のリンクをつくることができる。したがって、ホストが、最初の2つの書き込みコマンドと同一の識別子を用いた第4の書き込みコマンドを発行するとき、メモリ・デバイスは、識別子、Eをつくり、同一の識別子を有する直近に書き込まれたブロック(第4のブロック)を第7のブロックにリンクする。
例2と3に示されていないが、単一の書き込みコマンドに応じて書き込まれる2つのブロックは、それらをリンクしている識別子を有しても、いなくても良い。これらの識別子は、異なる書き込みコマンドによって書き込まれるブロックをリンクしているものと異なることができる。
前述に基づいて、本願発明の例示的な実施形態が、携帯メモリ・デバイスのキャッシュ読み取り最適化を提供する方法、装置とコンピュータ・プログラムを提供することが明らかである。
図6は、それは、本願発明の例示的な実施形態にしたがう方法の動作、コンピュータ・プログラム命令の実行の結果を図示する論理フロー図である。これらの例示的な実施形態に従って、この方法は、ブロック610において、メモリ・デバイスにおいて、ホストから少なくとも1つの書き込みコマンドを受信するステップを実行する。少なくとも1つの書き込みコマンドは、メモリ・デバイスに、少なくとも2つのデータ・ブロックを格納するように指示する。この少なくとも2つのデータ・ブロックは、ブロック620で格納される。ブロック630において、メモリ・デバイスは、少なくとも2つのデータ・ブロックを格納する順序に、少なくとも部分的に基づいて、少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成する。
図6において示される種々のブロックは、方法のステップとして見ることができ、あるいは、コンピュータ・プログラム・コードの動作の結果の動作としても見ることができる。および/または、関係する機能を実行するために構築された複数の連結した論理回路素子として見ることもできる。
一般に、種々の例示的な実施形態は、ハードウェア、または、専用回路、ソフトウェア、論理またはそれらの組合せにおいてインプリメントすることができる。例えば、いくつかの態様は、ハードウェアにおいてインプリメントされることができ、他の態様が、コントローラ、マイクロ・プロセッサまたは他のコンピューティング装置によって実行することができるファームウェアまたはソフトウェアにおいてインプリメントすることができる。しかしながら、本願発明がそれらに制限されるものではない。本願発明の例示的な実施形態の種々の態様が図示され、ブロック図、フローチャートとして、または、いくつかの他の図表現を使用して記載されているが、ここに記述されたこれらのブロック、装置、システム、技術または方法は、非限定的な例として、ハードウェア、ソフトウェア、ファームウェア、専用回路または論理、汎用ハードウェアまたはコントローラまたは他のコンピューティング装置、または、それらのいくつかの組合せにおいてインプリメントすることができることは十分に理解される。
本願発明にしたがう例示的な実施形態において、方法が、モバイル・メモリ・デバイスのキャッシュ読み取り最適化を可能にするために提供される。この方法は、メモリ・デバイスにおいて、ホストから、1つ以上のアクセス・コマンドを受信(例えば、プロセッサにおいて)することを含む。この1つ以上のアクセス・コマンドは、メモリ・デバイスに、少なくとも2つのデータ・ブロックにアクセスするように指示する。少なくとも2つのデータ・ブロックにアクセスする(例えば、プロセッサによって)ことも、含まれる。この方法は、このメモリ・デバイスにより、少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、この少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成する(例えば、プロセッサによって)ことを含む。
上記の方法のさらに例示的な実施形態において、プリフェッチ情報を生成することは、ホストによって提供される情報および/または、前記メモリ・デバイスに対するコントローラにおけるルールに、さらに基づく、
上記の方法のいかなる一つの別の例示的な実施形態において、その1つ以上のアクセス・コマンドの各々のアクセス・コマンドは、コンテキスト識別子と、タスク・タグと、プリフェッチ識別子と、および/または、グループ番号と、を含むインデックス情報に結びついている。インデックス情報は、アクセス・コマンドとともに、または、別々のメッセージにおいて送ることができる。
上記の方法のさらに例示的な実施形態において、その1つ以上のアクセス・コマンドは、第1のアクセス・コマンドと第2のアクセス・コマンドを含む。第1のアクセス・コマンドと第2のアクセス・コマンドは、同一のインデックス情報を含む。
上記の方法の別の例示的な実施形態において、この1つ以上のアクセス・コマンドを受信することは、第1回目に、第1のインデックス情報を含む第1のアクセス・コマンドを受信することと、第1回目のあと、第2回目に第2のアクセス・コマンドを受信することと、ここで、第2のアクセス・コマンドは、第1のインデックス情報と異なる第2のインデックス情報を含み、第2回目のあと、第3回目に、第1のインデックス情報を含む第3のアクセス・コマンドを受信することを含む。
上記の方法のさらに例示的な実施形態において、プリフェッチ情報を生成することは、第1のアクセス・コマンドに応じてアクセスされた最後のデータ・ブロックを、第3のアクセス・コマンドに応じてアクセスされた第1のデータ・ブロックにリンクすることを含む。
上記の方法の別の例示的な実施形態において、プリフェッチ情報を生成することは、第3のアクセス・コマンドに応じてアクセスされた第1のデータ・ブロックに対する新たなリンキング・データ・セッションを開始することを含む。同一のインデックス情報を有するアクセス・コマンドに応じて、アクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされる。
上記の方法のさらに例示的な実施形態において、マッチング・インデックス情報を有するアクセス・コマンドに応じて、アクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされ、この方法は、また、マッチング・インデックス情報を有する前のアクセス・コマンドのあとの所定の時間の経過、リンク・データ・セッションが開始した後の時間の経過、または、制御レジスタにおける変更に応じて、新たなリンキング・データ・セッションを開始することを含む。
上記の方法のいかなる一つの別の例示的な実施形態において、プリフェッチ情報を生成することは、少なくとも2つのデータ・ブロックの第1のデータ・ブロックを、少なくとも2つのデータ・ブロックの、次に続いてアクセスされたデータ・ブロックにリンクすることを含む。
上述の方法の任意の1つの、さらに例示的な実施形態において、その1つ以上のアクセス・コマンドは、読み取りコマンドや書き込みコマンドを含む。
上記の方法のいかなる一つの別の例示的な実施形態において、プリフェッチ情報は、第1のブロックが読み取られるときに、少なくとも2つのブロックをプリフェッチする命令を含む。
上述の方法の任意の1つの、さらに例示的な実施形態において、この方法は、また、第1の読み取られたデータ・ブロックを前記ホストに提供するようにメモリ・デバイスに指示する第1の読み取りコマンドを受信することと、第1の読み取られたデータ・ブロックをホストに提供することと、プリフェッチ情報に基づいて続いて読み取られたデータ・ブロックを決定することと、続いて読み取られたデータ・ブロックをプリフェッチすることと、前記続いて読み取られたデータ・ブロックをプリフェッチした後に、続いて読み取られたデータ・ブロックを、ホストに提供するようにメモリ・デバイスに指示する第2の読み取りコマンドを受信することと、プリフェッチされた、続いて読み取られたデータ・ブロックを、ホストに提供することと、を含む。
上記の方法の別の例示的な実施形態において、この方法は、また、メモリ・デバイスの少なくとも部分に対してプリフェッチ情報を生成するのを停止するコマンドを受信することと、メモリ・デバイスの前記部分において、データ・ブロックをアクセスするときに、プリフェッチ情報を生成することを防止することと、を含む。
さらに、この方法の例示的な実施形態において、この方法は、また、メモリ・デバイスに2つ以上のデータ・ブロックの1つ以上にアクセスするように指示する1つ以上の追加アクセス・コマンドを受信することと、1つ以上のアクセス・コマンドに応じてアクセスされるデータ・ブロックの順序に基づいて、前記プリフェッチ情報を除去することと、を含む。
上記の方法のいかなる一つの別の例示的な実施形態において、メモリ・デバイスは、1つ以上のNANDメモリ格納デバイスを含む。
本願発明に従う別の例示的な実施形態において、この装置は、モバイル・メモリ・デバイスのキャッシュ読み取り最適化を可能にするために提供される。この装置は、1つ以上のプロセッサと、コンピュータ・プログラム・コードを含む1つ以上のメモリとを含み、この1つ以上のメモリとコンピュータ・プログラム・コードとは、この1つ以上のプロセッサで、この装置に、処理の実行をさせるように構成されている。この処理は、メモリ・デバイスにおいて、ホストから、1つ以上のアクセス・コマンドを受信することを含み、ここで、その1つ以上のアクセス・コマンドは、メモリ・デバイスに少なくとも2つのデータ・ブロックにアクセスするように指示する。この少なくとも2つのデータ・ブロックはアクセスされる。この処理は、また、このメモリ・デバイスにより、少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、この少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成する。
上の装置の別の例示的な実施形態において、プリフェッチ情報を生成することは、さらに、ホストによって提供される情報、および/または、メモリ・デバイスに対するコントローラにおけるルールに基づいている。
上述の装置の任意の1つのさらに例示的な実施形態において、その1つ以上のアクセス・コマンドの各々のアクセス・コマンドは、コンテキスト識別子と、タスク・タグと、プリフェッチ識別子と、および/または、グループ番号と、を含むインデックス情報に結びついている。
上の装置の別の例示的な実施形態において、その1つ以上のアクセス・コマンドは、第1のアクセス・コマンドと第2のアクセス・コマンドを含み、第1のアクセス・コマンドと第2のアクセス・コマンドは、同一のインデックス情報を含む。
上の装置のさらに例示的な実施形態において、1つ以上のアクセス・コマンドを受信するとき、1つ以上のメモリとコンピュータ・プログラム・コードとは、前記装置に、第1回目に、第1のインデックス情報を含む第1のアクセス・コマンドを受信させ、第1回目のあと、第2回目に第2のアクセス・コマンドを受信させ、ここで、第2のアクセス・コマンドは、第1のインデックス情報と異なる第2のインデックス情報を含み、第2回目のあと、第3回目に、第1のインデックス情報を含む第3のアクセス・コマンドを受信させるように構成されており、
上の装置の別の例示的な実施形態において、プリフェッチ情報を生成するとき、この1つ以上のメモリとコンピュータ・プログラム・コードとは、前記装置に、第1のアクセス・コマンドに応じてアクセスされる最後のデータ・ブロックを、第3のアクセス・コマンドに応じてアクセスされる第1のデータ・ブロックにリンクさせるように構成されており、
上の装置のさらに例示的な実施形態において、プリフェッチ情報を生成するとき、この1つ以上のメモリとコンピュータ・プログラム・コードとは、前記装置に、第3のアクセス・コマンドに応じてアクセスされる第1のデータ・ブロックに対して新たなリンキング・データ・セッションを開始させるように構成されており、同一のインデックス情報を有するアクセス・コマンドに応じて、アクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされる。
上の装置の別の例示的な実施形態において、マッチング・インデックス情報を有するアクセス・コマンドに応じて、アクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされ、この1つ以上のメモリとコンピュータ・プログラム・コードとは、前記装置に、前記マッチング・インデックス情報を有する前のアクセス・コマンドのあと所定の時間の経過、リンク・データ・セッションが開始した後の時間の経過、または、制御レジスタにおける変更に応じて、新たなリンキング・データ・セッションを開始させるように構成されている。
上述の装置の任意の1つのさらに例示的な実施形態において、前記プリフェッチ情報を生成するときに、この1つ以上のメモリとコンピュータ・プログラム・コードとは、前記装置に、前記少なくとも2つのデータ・ブロックの第1のデータ・ブロックを、少なくとも2つのデータ・ブロックの、次に続いてアクセスされたデータ・ブロックにリンクさせるように構成されている。
上記の装置の任意の1つの別の例示的な実施形態において、その1つ以上のアクセス・コマンドは、読み取りコマンドや書き込みコマンドを含む。
上述の装置の任意の1つのさらに例示的な実施形態において、プリフェッチ情報は、第1のブロックが読み取られるときに、少なくとも2つのブロックをプリフェッチする命令を含む。
上記の装置の任意の1つの別の例示的な実施形態において、この1つ以上のメモリとコンピュータ・プログラム・コードとは、前記装置に、第1の読み取られたデータ・ブロックを前記ホストに提供するようにメモリ・デバイスに指示する第1の読み取りコマンドを受信させ、前記第1の読み取られたデータ・ブロックを、前記ホスに提供させ、前記プリフェッチ情報に基づいて、続いて読み取られたデータ・ブロックを決定させ、前記続いて読み取られたデータ・ブロックをプリフェッチさせ、前記続いて読み取られたデータ・ブロックをプリフェッチした後に、続いて読み取られたデータ・ブロックを、ホストに提供するようにメモリ・デバイスに指示する第2の読み取りコマンドを受信させ、前記ホストに前記プリフェッチされた、続いて読み取られたデータ・ブロックを提供させるように構成されており、
上の装置のさらに例示的な実施形態において、この1つ以上のメモリとコンピュータ・プログラム・コードとは、前記装置に、メモリ・デバイスの少なくとも部分に対してプリフェッチ情報を生成することをやめるコマンドを受信させ、メモリ・デバイスの前記部分において、データ・ブロックをアクセスするときに、プリフェッチ情報を生成することを防止させるように構成されている。
上記の装置の任意の1つの別の例示的な実施形態において、この1つ以上のメモリとコンピュータ・プログラム・コードとは、前記装置に、メモリ・デバイスに、2つ以上のデータ・ブロックの1つ以上にアクセスするように指示する1つ以上の追加アクセス・コマンドを受信させ、1つ以上のアクセス・コマンドに応じてアクセスされるデータ・ブロックの順序に基づいて、プリフェッチ情報を削除させるように構成されており、
上述の装置の任意の1つのさらに例示的な実施形態において、前記装置は、集積回路において実現される。
本願発明に従う別の例示的な実施形態において、コンピュータ読取り可能媒体は、モバイル・メモリ・デバイスのキャッシュ読み取り最適化を可能にするために提供される。コンピュータ読取り可能媒体は、プロセッサによって実行可能なコンピュータ・プログラムで実体的にエンコードされる。この処理は、メモリ・デバイスにおいて、ホストから、1つ以上のアクセス・コマンドを受信することを含み、ここで、その1つ以上のアクセス・コマンドは、メモリ・デバイスに少なくとも2つのデータ・ブロックにアクセスするように指示する。この少なくとも2つのデータ・ブロックは、アクセスされる。この処理は、また、このメモリ・デバイスにより、少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、この少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成することを含む。
コンピュータ読取り可能媒体のさらに例示的な実施形態において、前記プリフェッチ情報を生成するステップは、ホストによって提供される情報、および/または、メモリ・デバイスに対するコントローラにおけるルールにさらに基づく。
コンピュータ読取り可能メディアの任意の1つの別の例示的な実施形態において、その1つ以上のアクセス・コマンドの各々のアクセス・コマンドは、コンテキスト識別子と、タスク・タグと、プリフェッチ識別子と、および/または、グループ番号と、を含むインデックス情報に結びついている。
コンピュータ読取り可能媒体のさらに例示的な実施形態において、その1つ以上のアクセス・コマンドは、第1のアクセス・コマンドと第2のアクセス・コマンドを含み、第1のアクセス・コマンドと第2のアクセス・コマンドとは、同一のインデックス情報を含む。
上のコンピュータ読取り可能媒体の別の例示的な実施形態において、上の1つ以上のアクセス・コマンドを受信することは、第1回目に、第1のインデックス情報を含む第1のアクセス・コマンドを受信することと、第1回目の後に、第2回目に第2のアクセス・コマンドを受信することと、ここで、第2のアクセス・コマンドが、第1のインデックス情報と異なる第2のインデックス情報含み、第2回目のあと、第3回目に、第1のインデックス情報を含む第3のアクセス・コマンドを受信することを含み、
コンピュータ読取り可能媒体のさらに例示的な実施形態において、プリフェッチ情報を生成することは、第1のアクセス・コマンドに応じてアクセスされた最後のデータ・ブロックを、第3のアクセス・コマンドに応じてアクセスされた第1のデータ・ブロックにリンクすることを含む。
上のコンピュータ読取り可能媒体の別の例示的な実施形態において、プリフェッチ情報を生成することは、第3のアクセス・コマンドに応じてアクセスされる第1のデータ・ブロックに対して、新たなリンキング・データ・セッションを開始することを含む。同一のインデックス情報を有するアクセス・コマンドに応じて、アクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされる。
コンピュータ読取り可能媒体のさらに例示的な実施形態において、インデックス情報のマッチングを有するアクセス・コマンドに応じてアクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされ、この処理は、更に、マッチング・インデックス情報を有する前のアクセス・コマンドのあとの所定の時間の経過、リンク・データ・セッションが開始した後の時間の経過、または、制御レジスタにおける変更に応じて、新たなリンキング・データ・セッションを開始することを含む。
コンピュータ読取り可能メディアの任意の1つの別の例示的な実施形態において、プリフェッチ情報を生成することは、少なくとも2つのデータ・ブロックの第1のデータ・ブロックを、少なくとも2つのデータ・ブロックの、次に続いてアクセスされたデータ・ブロックにリンクすることを含む。
上述のコンピュータ可読メディアの任意の1つの、さらに例示的な実施形態において、その1つ以上のアクセス・コマンドは、読み取りコマンドや書き込みコマンドを含む。
コンピュータ読取り可能メディアの任意の1つの別の例示的な実施形態において、第1のブロックが読まれるとき、少なくとも2つが妨害するプリフェッチに、プリフェッチ情報は、命令を含む。
上述のコンピュータ可読メディアの任意の1つの、さらに例示的な実施形態において、この処理は、更に、前記メモリ・デバイスに、前記ホストに、第1の読み取られたデータ・ブロックを提供するように指示する第1の読み取りコマンドを受信するステップと、第1の読み取られたデータ・ブロックをホストに提供することと、前記プリフェッチ情報に基づいて、続いて読み取られたデータ・ブロックを決定することと、続いて読み取られたデータ・ブロックをプリフェッチすることと、前記続いて読み取られたデータ・ブロックをプリフェッチした後に、メモリ・デバイスに、続いて読み取られたデータ・ブロックを、ホストに提供するように指示する第2の読み取りコマンドを受信することと、プリフェッチされた、続いて読み取られたデータ・ブロックを、ホストに提供することと、を含む。
上のコンピュータ読取り可能媒体の別の例示的な実施形態において、この処理は、更に、メモリ・デバイスの少なくとも部分に対してプリフェッチ情報を生成するのを停止するコマンドを受信することと、メモリ・デバイスの前記部分において、データ・ブロックをアクセスするときに、プリフェッチ情報を生成することを防止することと、を含む。
コンピュータ読取り可能媒体のさらに例示的な実施形態において、この処理は、更に、メモリ・デバイスに、2つ以上のデータ・ブロックの1つ以上にアクセスするように指示する1つ以上の追加アクセス・コマンドを受信することと、1つ以上のアクセス・コマンドに応じてアクセスされるデータ・ブロックの順序に基づいて、前記プリフェッチ情報を除去することと、を含む。
コンピュータ読取り可能メディアの任意の1つの別の例示的な実施形態において、メモリ・デバイスは、1つ以上のNANDメモリ格納デバイスを含む。
上述のコンピュータ可読メディアの任意の1つの、さらに例示的な実施形態において、コンピュータ読取り可能媒体は、一時的でないコンピュータ読取り可能媒体(例えば、RAM、ROM、CD−ROM、フラッシュ・メモリ、等)である。
本願発明に従う別の例示的な実施形態において、装置は、モバイル・メモリ・デバイスのキャッシュ読み取り最適化を可能にするために提供される。この装置は、メモリ・デバイスにおいて、ホストから、1つ以上のアクセス・コマンドを受信(例えば、プロセッサにおいて)するための手段と、ここで、この1つ以上のアクセス・コマンドは、メモリ・デバイスに、少なくとも2つのデータ・ブロックにアクセスするよう、指示し、この少なくとも2つのデータ・ブロックにアクセスするための手段(例えば、プロセッサ)と、少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、少なくとも2つのデータ・ブロックに対するプリフェッチ情報をメモリ・デバイスにより生成する手段(例えば、プロセッサ)と、を含む。
上の装置のさらに例示的な実施形態において、この生成手段は、ホストによって提供される情報、および/または、メモリ・デバイスに対するコントローラにおけるルールに基づいて、プリフェッチ情報を生成するためのものである。
上記の装置の任意の1つの別の例示的な実施形態において、その1つ以上のアクセス・コマンドの各々のアクセス・コマンドは、コンテキスト識別子と、タスク・タグと、プリフェッチ識別子と、および/または、グループ番号と、を含むインデックス情報に結びついている。
上の装置のさらに例示的な実施形態において、その1つ以上のアクセス・コマンドは、第1のアクセス・コマンドと第2のアクセス・コマンドを含み、第1のアクセス・コマンドと第2のアクセス・コマンドは、同一のインデックス情報を含む。
上の装置の別の例示的な実施形態において、この受信手段は、第1回目に、第1のインデックス情報を含む第1のアクセス・コマンドを受信するための手段と、第1回目のあと、第2回目に第2のアクセス・コマンドを受信するための手段と、ここで、第2のアクセス・コマンドは、第1のインデックス情報と異なる第2のインデックス情報を含むものであり、第2回目のあと、第3回目に、第1のインデックス情報を含む第3のアクセス・コマンドを受信するための手段とを含む。
上の装置のさらに例示的な実施形態において、この生成手段は、第1のアクセス・コマンドに応じてアクセスされる最後のデータ・ブロックを、第3のアクセス・コマンドに応じてアクセスされる第1のデータ・ブロックにリンクするための手段を含む。
上の装置の別の例示的な実施形態において、この生成手段は、第3のアクセス・コマンドに応じてアクセスされる第1のデータ・ブロックに対して新たなリンキング・データ・セッションを開始する手段を含む。同一のインデックス情報を有するアクセス・コマンドに応じてアクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされる。
上の装置のさらに例示的な実施形態において、マッチング・インデックス情報を有するアクセス・コマンドに応じて、アクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされ、この装置は、また、マッチング・インデックス情報を有する前のアクセス・コマンドのあとの所定の時間の経過、リンク・データ・セッションが開始した後の時間の経過、または、制御レジスタにおける変更に応じて、新たなリンキング・データ・セッションを開始する手段を含む。
上記の装置の任意の1つの別の例示的な実施形態において、この生成手段は、少なくとも2つのデータ・ブロックの第1のデータ・ブロックを、少なくとも2つのデータ・ブロックの、次に続いてアクセスされたデータ・ブロックにリンクする手段を含む。
上述の装置の任意の1つのさらに例示的な実施形態において、その1つ以上のアクセス・コマンドは、読み取りコマンドや書き込みコマンドを含む。
上記の装置の任意の1つの別の例示的な実施形態において、このプリフェッチ情報は、第1のブロックが読まれるとき、少なくとも2つのブロックをプリフェッチする命令を含む。
上述の装置の任意の1つのさらに例示的な実施形態において、この装置は、また、メモリ・デバイスに、第1の読み取られたデータ・ブロックを前記ホストに提供するように指示する第1の読み取りコマンドを受信するための手段と、ホストに第1の読み取られたデータ・ブロックを提供する手段と、前記プリフェッチ情報に基づいて、続いて読み取られたデータ・ブロックを決定する手段と、続いて読み取られたデータ・ブロックをプリフェッチする手段と、前記続いて読み取られたデータ・ブロックをプリフェッチした後に、メモリ・デバイスに、続いて読み取られたデータ・ブロックを、ホストに提供するように指示する第2の読み取りコマンドを受信する手段と、ホストに、プリフェッチされた、続いて読み取られたデータ・ブロックを提供するための手段と、を含む。
上の装置の別の例示的な実施形態において、この装置は、また、メモリ・デバイスの少なくとも部分に対してプリフェッチ情報を生成するのを停止するコマンドを受信するための手段と、メモリ・デバイスの前記部分において、データ・ブロックをアクセスするときに、プリフェッチ情報を生成することを防止する手段と、を含む。
上の装置のさらに例示的な実施形態において、この装置は、また、メモリ・デバイスに、2つ以上のデータ・ブロックの1つ以上にアクセスするように指示する1つ以上の追加アクセス・コマンドを受信するための手段と、1つ以上のアクセス・コマンドに応じてアクセスされるデータ・ブロックの順序に基づいて、プリフェッチ情報を取り除くための手段とを含む。
したがって、本願発明の例示的な実施形態の少なくともいくつかの態様は、例えば、集積回路チップとモジュールのような種々のコンポーネントにおいて実施することができ、本願発明の例示的な実施形態は、集積回路として具体化される装置において実現できるように理解すべきである。この集積回路または回路は、本願発明の例示的な実施形態に従って動作するように構成可能である、データ・プロセッサ、デジタル信号プロセッサ、ベースバンド回路、無線周波回路の1つ以上を具体化するための回路(ならびにおそらくファームウェア)を備えることができる。
本願発明の前述の例示的な実施形態への種々の修正と適合化は、添付の図面とともに読まれるときに、前述の説明を考慮して、当業者に明らかになり得る。しかしながら、すべての修正は、まだ、本願発明の非限定的で例示的な実施形態の範囲に入る。
「接続した」、「結合した」という用語、あるいは、それらの変形は、2つ以上の要素の間での直接的または間接的な、いかなる接続または結合をも意味し、一緒に「接続された」、あるいは、「結合された」2つの素子の間での、1つ以上の中間要素の存在を含むことができることに留意する。要素間の結合または接続は、物理的なもの、論理的なもの、あるいは、その組合せであり得る。ここで用いられるように、2つの要素は、一つ以上のワイヤー、ケーブルや印刷された電気的接続、ならびに、ラジオ周波数領域、マイクロ波領域および(可視および非可視)光学領域において波長を有している電磁エネルギーのような、電磁エネルギーを用いて、の使用によって、「つながれる」か、一緒に「結合する」と考えることができる。ただし、これらは非限定的、非網羅的な例としてあげたものである。
さらに、記述されたパラメータに使われる種々の名前(例えば、ID、TAGなど)は、これらパラメータはいかなる適切な名前によっても識別することができるものであるので、いかなる点においても制限することを意図するものではない。
さらにまた、本願発明の種々の非限定的な例示的実施形態の特徴のいくつかは、他の特徴を使用するようにしなくても、有効に使用することができる。したがって、前述の説明は、本願発明の原理、教示、例示的な実施形態の図解的なものにすぎないと考えるべきであって、それらに制限するものではない。

Claims (59)

  1. メモリ・デバイスにおいて、ホストから、少なくとも1つのアクセス・コマンドを受信するステップであって、該アクセス・コマンドは、該メモリ・デバイスに、少なくとも2つのデータ・ブロックにアクセスするように指示する、ステップと、
    前記少なくとも2つのデータ・ブロックにアクセスするステップと、
    前記メモリ・デバイスにより、前記少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、前記少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成するステップと、
    を含む方法。
  2. 前記プリフェッチ情報を生成するステップは、前記ホストによって提供される情報と、前記メモリ・デバイスに対するコントローラにおけるルールと、のうちの少なくとも1つに、さらに基づいている、請求項1に記載の方法。
  3. 前記少なくとも1つのアクセス・コマンドの各々のアクセス・コマンドは、
    コンテキスト識別子と、
    タスク・タグと、
    プリフェッチ識別子と、
    グループ番号と、
    のうちの少なくとも1つを含むインデックス情報に結びついている、請求項1または2に記載の方法。
  4. 前記少なくとも1つのアクセス・コマンドは、第1のアクセス・コマンドと第2のアクセス・コマンドを含み、
    第1のアクセス・コマンドと第2のアクセス・コマンドとは、同一のインデックス情報を含む、
    請求項3に記載の方法。
  5. 少なくとも1つのアクセス・コマンドを受信するステップは、
    1回目に、第1のインデックス情報を含む第1のアクセス・コマンドを受信することと、
    前記1回目の後、2回目に第2のアクセス・コマンドを受信することであって、前記第2のアクセス・コマンドは、前記第1のインデックス情報と異なる第2のインデックス情報を含む、ことと、
    前記2回目の後、3回目に前記第1のインデックス情報を含む第3のアクセス・コマンドを受信することと、
    を含む、請求項3に記載の方法。
  6. 前記プリフェッチ情報を生成するステップは、前記第1のアクセス・コマンドに応じてアクセスされた最後のデータ・ブロックを前記第3のアクセス・コマンドに応じてアクセスされた第1のデータ・ブロックにリンクすることを含む、請求項5に記載の方法。
  7. 前記プリフェッチ情報を生成するステップは、第3のアクセス・コマンドに応じてアクセスされた第1のデータ・ブロックに対する新たなリンキング・データ・セッションを開始することを含み、
    同一のインデックス情報を有するアクセス・コマンドに応じてアクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされる、請求項5に記載の方法。
  8. マッチング・インデックス情報を有するアクセス・コマンドに応じてアクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされ、
    前記マッチング・インデックス情報を有する前のアクセス・コマンドの後の所定の時間の経過と、前記リンキング・データ・セッションが開始した後の時間の経過と、制御レジスタにおける変更と、のうちの1つに応じて、新たなリンキング・データ・セッションを開始することをさらに含む、請求項3に記載の方法。
  9. 前記プリフェッチ情報を生成するステップは、前記少なくとも2つのデータ・ブロックの第1のデータ・ブロックを、前記少なくとも2つのデータ・ブロックの、次に続いてアクセスされたデータ・ブロックにリンクすることを含む、請求項1ないし4のいずれか1項に記載の方法。
  10. 前記少なくとも1つのアクセス・コマンドは、読み取りコマンドと書き込みコマンドとの少なくとも1つを含む、請求項1ないし9のいずれか1項に記載の方法。
  11. 前記プリフェッチ情報は、第1のブロックが読み取られるときに、少なくとも2つのブロックをプリフェッチする指示を含む、請求項1ないし10のいずれか1項に記載の方法。
  12. 前記メモリ・デバイスに、前記ホストに第1の読み取られたデータ・ブロックを提供するように指示する第1の読み取りコマンドを受信するステップと、
    前記第1の読み取られたデータ・ブロックを前記ホストに提供するステップと、
    プリフェッチ情報に基づいて続いて読み取られたデータ・ブロックを決定するステップと、
    前記続いて読み取られたデータ・ブロックをプリフェッチするステップと、
    前記続いて読み取られたデータ・ブロックをプリフェッチした後に、前記続いて読み取られたデータ・ブロックを、前記ホストに提供するように前記メモリ・デバイスに指示する第2の読み取りコマンドを受信するステップと、
    プリフェッチされた前記続いて読み取られたデータ・ブロックを、前記ホストに提供するステップと、
    をさらに含む請求項1ないし11のいずれか1項に記載の方法。
  13. 前記メモリ・デバイスの少なくとも部分に対してプリフェッチ情報を生成することをやめるコマンドを受信するステップと、
    前記メモリ・デバイスの前記部分において、データ・ブロックをアクセスするときに、プリフェッチ情報を生成することを防止するステップと、
    をさらに含む請求項1に記載の方法。
  14. 前記メモリ・デバイスに、前記少なくとも2つのデータ・ブロックのうちの少なくとも1つにアクセスするように指示する少なくとも1つの追加アクセス・コマンドを受信するステップと、
    前記少なくとも1つの追加アクセス・コマンドに応じてアクセスされたデータ・ブロックの順序に基づいて、前記プリフェッチ情報を除去するステップと、
    をさらに含む請求項1に記載の方法。
  15. 前記メモリ・デバイスは、少なくとも1つのNANDメモリ格納デバイスを備える、請求項1ないし14のいずれか1項に記載の方法。
  16. 少なくとも1つのプロセッサと、コンピュータ・プログラム・コードを含む少なくとも1つのメモリと、を備える装置であって、
    前記少なくとも1つのメモリと前記コンピュータ・プログラム・コードとは、前記少なくとも1台のプロセッサで、前記装置に、
    メモリ・デバイスにおいて、ホストから、前記メモリ・デバイスに、少なくとも2つのデータ・ブロックにアクセスするように指示する少なくとも1つのアクセス・コマンドを受信することと、
    前記少なくとも2つのデータ・ブロックにアクセスすることと、
    前記メモリ・デバイスにより、前記少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、前記少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成することと、を少なくとも実行させるように構成されている、装置。
  17. 前記プリフェッチ情報を生成するステップは、さらに、前記ホストによって提供される情報と、前記メモリ・デバイスに対するコントローラにおけるルールと、のうちの少なくとも1つに基づいている、請求項16に記載の装置。
  18. 前記少なくとも1つのアクセス・コマンドの各々のアクセス・コマンドは、
    コンテキスト識別子と、
    タスク・タグと、
    プリフェッチ識別子と、
    グループ番号と、のうちの少なくとも1つを含むインデックス情報に結びついている、請求項16または17に記載の装置。
  19. 前記少なくとも1つのアクセス・コマンドは、第1のアクセス・コマンドと第2のアクセス・コマンドを含み、
    前記第1のアクセス・コマンドと前記第2のアクセス・コマンドとは、同一のインデックス情報を含む、請求項18に記載の装置。
  20. 前記少なくとも1つのアクセス・コマンドを受信するとき、前記少なくとも1つのメモリと前記コンピュータ・プログラム・コードとは、
    前記装置に、1回目に、第1のインデックス情報を含む第1のアクセス・コマンドを受信させ、
    前記1回目の後、2回目に第2のアクセス・コマンドを受信させ、ここで、前記第2のアクセス・コマンドは、前記第1のインデックス情報と異なる第2のインデックス情報を含み、
    前記2回目の後、3回目に前記第1のインデックス情報を含む第3のアクセス・コマンドを受信させるように構成されている、請求項18に記載の装置。
  21. 前記プリフェッチ情報を生成するときに、前記少なくとも1つのメモリと前記コンピュータ・プログラム・コードとは、
    前記装置に、前記第1のアクセス・コマンドに応じてアクセスされた最後のデータ・ブロックを、前記第3のアクセス・コマンドに応じてアクセスされた第1のデータ・ブロックにリンクさせるように構成されている、請求項20に記載の装置。
  22. 前記プリフェッチ情報を生成するときに、前記少なくとも1つのメモリと前記コンピュータ・プログラム・コードとは、
    前記装置に、前記第3のアクセス・コマンドに応じてアクセスされた第1のデータ・ブロックに対する新たなリンキング・データ・セッションを開始させるように構成されており、
    同一のインデックス情報を有するアクセス・コマンドに応じてアクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされる、請求項20に記載の装置。
  23. インデックス情報のマッチングを有するアクセス・コマンドに応じてアクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされ、
    前記少なくとも1つのメモリと前記コンピュータ・プログラム・コードとは、前記装置に、前記マッチング・インデックス情報を有する前のアクセス・コマンドの後の所定の時間の経過と、前記リンキング・データ・セッションが開始した後の時間の経過と、制御レジスタにおける変更と、のうちの1つに応じて、新たなリンキング・データ・セッションを開始させるように構成されている、請求項18に記載の装置。
  24. 前記プリフェッチ情報を生成するときに、前記少なくとも1つのメモリと前記コンピュータ・プログラム・コードとは、前記装置に、前記少なくとも2つのデータ・ブロックの第1のデータ・ブロックを、前記少なくとも2つのデータ・ブロックの、次に続いてアクセスされたデータ・ブロックにリンクさせるように構成されている、請求項16ないし19のいずれか1項に記載の装置。
  25. 前記少なくとも1つのアクセス・コマンドは、読み取りコマンドと書き込みコマンドとの少なくとも1つを含む、請求項16ないし24のいずれか1項に記載の装置。
  26. 前記プリフェッチ情報は、第1のブロックが読み取られるときに、少なくとも2つのブロックをプリフェッチする指示を含む、請求項16ないし25のいずれか1項に記載の装置。
  27. 前記少なくとも1つのメモリと前記コンピュータ・プログラム・コードとは、前記装置に、前記メモリ・デバイスに、
    第1の読み取られたデータ・ブロックを前記ホストに提供するように指示している前記第1の読み取りコマンドを受信させ、
    前記第1の読み取られたデータ・ブロックを、前記ホストに提供させ、
    前記プリフェッチ情報に基づいて、続いて読み取られたデータ・ブロックを決定させ、 前記続いて読み取られたデータ・ブロックをプリフェッチさせ、
    前記続いて読み取られたデータ・ブロックをプリフェッチした後に、前記続いて読み取られたデータ・ブロックを、前記ホストに提供するように前記メモリ・デバイスに指示している第2の読み取りコマンドを受信させ、
    前記ホストに前記プリフェッチされた、続いて読み取られたデータ・ブロックを提供させるように構成されている、請求項16ないし26のいずれか1項に記載の装置。
  28. 前記少なくとも1つのメモリと前記コンピュータ・プログラム・コードとは、前記装置に、
    前記メモリ・デバイスの少なくとも部分に対してプリフェッチ情報を生成することをやめるコマンドを受信させ、
    前記メモリ・デバイスの前記部分において、データ・ブロックをアクセスするときに、プリフェッチ情報を生成することを防止させるように構成されている、請求項16に記載の装置。
  29. 前記少なくとも1つのメモリと前記コンピュータ・プログラム・コードとは、
    前記装置に、前記メモリ・デバイスに、前記少なくとも2つのデータ・ブロックのうちの少なくとも1つにアクセスするように指示する少なくとも1つの追加アクセス・コマンドを受信させ、
    前記少なくとも1つのアクセス・コマンドに応答してアクセスされたデータ・ブロックの順序に基づいて、前記プリフェッチ情報を除去させるように構成されている、請求項16に記載の装置。
  30. 前記装置は、集積回路において実現される、請求項16ないし29のいずれか1項に記載の装置。
  31. プロセッサによって実行可能なコンピュータ・プログラムで実体的にエンコードされたコンピュータ読取り可能メディアであって、前記プロセッサによって実行可能な処理は、 メモリ・デバイスにおいて、ホストから、前記メモリ・デバイスに、少なくとも2つのデータ・ブロックにアクセスするように指示する少なくとも1つのアクセス・コマンドを受信することと、
    前記少なくとも2つのデータ・ブロックにアクセスすることと、
    前記メモリ・デバイスにより、前記少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、前記少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成することと、を含む、コンピュータ読取り可能メディア。
  32. 前記プリフェッチ情報を生成することは、さらに、前記ホストによって提供される情報と、前記メモリ・デバイスに対するコントローラにおけるルールと、の少なくとも1つに基づいている、請求項31に記載のコンピュータ読取り可能メディア。
  33. 前記少なくとも1つのアクセス・コマンドの各々のアクセス・コマンドは、
    コンテキスト識別子と、
    タスク・タグと、
    プリフェッチ識別子と、
    グループ番号と、のうちの少なくとも1つを含むインデックス情報に結びついている、請求項31または32に記載のコンピュータ読取り可能メディア。
  34. 前記少なくとも1つのアクセス・コマンドは、第1のアクセス・コマンドと第2のアクセス・コマンドを含み、
    前記第1のアクセス・コマンドと前記第2のアクセス・コマンドとは、同一のインデックス情報を含む、請求項33に記載のコンピュータ読取り可能メディア。
  35. 前記少なくとも1つのアクセス・コマンドを受信することは、
    1回目に、第1のインデックス情報を含む第1のアクセス・コマンドを受信することと、
    前記1回目の後、2回目に、前記第1のインデックス情報と異なる第2のインデックス情報を含む、第2のアクセス・コマンドを受信することと、
    前記2回目の後、3回目に前記第1のインデックス情報を含む第3のアクセス・コマンドを受信することと、を含む、請求項33に記載のコンピュータ読取り可能メディア。
  36. 前記プリフェッチ情報を生成するステップは、前記第1のアクセス・コマンドに応じてアクセスされた最後のデータ・ブロックを、前記第3のアクセス・コマンドに応じてアクセスされた第1のデータ・ブロックにリンクすることを含む、請求項35に記載のコンピュータ読取り可能メディア。
  37. 前記プリフェッチ情報を生成するステップは、第3のアクセス・コマンドに応じてアクセスされた第1のデータ・ブロックに対する新たなリンキング・データ・セッションを開始することを含み、
    同一のインデックス情報を有するアクセス・コマンドに応じてアクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされる、請求項35に記載のコンピュータ読取り可能メディア。
  38. インデックス情報のマッチングを有するアクセス・コマンドに応じてアクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされ、
    前記処理は、さらに、前記マッチング・インデックス情報を有する前のアクセス・コマンドの後の所定の時間の経過と、前記リンキング・データ・セッションが開始した後の時間の経過と、制御レジスタにおける変更と、のうちの1つに応じて、新たなリンキング・データ・セッションを開始することを含む、請求項33に記載のコンピュータ読取り可能メディア。
  39. 前記プリフェッチ情報を生成するステップは、前記少なくとも2つのデータ・ブロックの第1のデータ・ブロックを、前記少なくとも2つのデータ・ブロックの、次に続いてアクセスされたデータ・ブロックにリンクすることを含む、請求項31ないし34のいずれか1項に記載のコンピュータ読取り可能メディア。
  40. 前記少なくとも1つのアクセス・コマンドは、読み取りコマンドと書き込みコマンドとの少なくとも1つを含む、請求項31ないし39のいずれか1項に記載のコンピュータ読取り可能メディア。
  41. 前記プリフェッチ情報は、第1のブロックが読み取られるときに、少なくとも2つのブロックをプリフェッチする指示を含む、請求項31ないし40のいずれか1項に記載のコンピュータ読取り可能メディア。
  42. 前記処理は、さらに、
    前記メモリ・デバイスに、第1の読み取られたデータ・ブロックを前記ホストに提供するように指示している前記第1の読み取りコマンドを受信することと、
    前記第1の読み取られたデータ・ブロックを前記ホストに提供することと、
    プリフェッチ情報に基づいて続いて読み取られたデータ・ブロックを決定することと、前記続いて読み取られたデータ・ブロックをプリフェッチすることと、
    前記続いて読み取られたデータ・ブロックをプリフェッチした後に、
    前記続いて読み取られたデータ・ブロックを、前記ホストに提供するように前記メモリ・デバイスに指示する第2の読み取りコマンドを受信することと、
    プリフェッチされた前記続いて読み取られたデータ・ブロックを、前記ホストに提供することと、を含む、請求項31ないし41のいずれか1項に記載のコンピュータ読取り可能メディア。
  43. 前記処理は、さらに、
    前記メモリ・デバイスの少なくとも部分に対してプリフェッチ情報を生成することをやめるコマンドを受信することと、
    前記メモリ・デバイスの前記部分において、データ・ブロックをアクセスするときに、プリフェッチ情報を生成することを防止することと、を含む、請求項31に記載のコンピュータ読取り可能メディア。
  44. 前記処理は、さらに、
    前記メモリ・デバイスに、前記少なくとも2つのデータ・ブロックのうちの少なくとも1つにアクセスするように指示する少なくとも1つの追加アクセス・コマンドを受信することと、
    前記少なくとも1つのアクセス・コマンドに応答してアクセスされたデータ・ブロックの順序に基づいて、前記プリフェッチ情報を除去することと、を含む、請求項31に記載のコンピュータ読取り可能メディア。
  45. 前記メモリ・デバイスは、少なくとも1つのNANDメモリ格納デバイスを備える、請求項31ないし44のいずれか1項に記載のコンピュータ読取り可能メディア。
  46. メモリ・デバイスにおいて、ホストから、少なくとも1つのアクセス・コマンドを受信する手段であって、該少なくとも1つのアクセス・コマンドは、前記メモリ・デバイスに、少なくとも2つのデータ・ブロックにアクセスするように指示する、手段と、
    前記少なくとも2つのデータ・ブロックにアクセスする手段と、
    前記メモリ・デバイスにより、前記少なくとも2つのデータ・ブロックにアクセスする順序に少なくとも部分的に基づいて、前記少なくとも2つのデータ・ブロックに対するプリフェッチ情報を生成する手段と、を備える装置。
  47. 前記生成する手段は、前記ホストによって提供される情報と、前記メモリ・デバイスに対するコントローラにおけるルールと、のうちの少なくとも1つのに基づいて、前記プリフェッチ情報を生成するためのものである、請求項46に記載の装置。
  48. 前記少なくとも1つのアクセス・コマンドの各々のアクセス・コマンドは、
    コンテキスト識別子と、
    タスク・タグと、
    プリフェッチ識別子と、
    グループ番号と、のうちの少なくとも1つを含むインデックス情報に結びついている、請求項46または47に記載の装置。
  49. 少なくとも1つのアクセス・コマンドは、第1のアクセス・コマンドと第2のアクセス・コマンドを備え、
    前記第1のアクセス・コマンドと前記第2のアクセス・コマンドとは、同一のインデックス情報を含む、請求項48に記載の装置。
  50. 前記受信する手段は、
    1回目に、第1のインデックス情報を含む第1のアクセス・コマンドを受信する手段と、
    前記1回目の後、2回目に、前記第1のインデックス情報と異なる第2のインデックス情報を含む第2のアクセス・コマンドを受信する手段と、
    前記2回目の後、3回目に前記第1のインデックス情報を含む第3のアクセス・コマンドを受信する手段と、を備える、請求項48に記載の装置。
  51. 前記第1のアクセス・コマンドに応じてアクセスされた前記生成する手段は、最後のデータ・ブロックを前記第3のアクセス・コマンドに応じてアクセスされた第1のデータ・ブロックにリンクする手段を備える、請求項50に記載の装置。
  52. 前記生成する手段は、前記第3のアクセス・コマンドに応じてアクセスされた第1のデータ・ブロックに対する新たなリンキング・データ・セッションを開始する手段であって、同一のインデックス情報を有するアクセス・コマンドに応じてアクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされる、手段を備える、請求項50に記載の装置。
  53. インデックス情報のマッチングを有するアクセス・コマンドに応じてアクセスされたデータ・ブロックは、リンキング・データ・セッションの間にリンクされ、
    前記マッチング・インデックス情報を有する前のアクセス・コマンドの後の所定の時間の経過と、前記リンキング・データ・セッションが開始した後の時間の経過と、制御レジスタにおける変更と、のうちの1つに応じて、新たなリンキング・データ・セッションを開始する手段をさらに含む、請求項48に記載の装置。
  54. 前記生成する手段は、前記少なくとも2つのデータ・ブロックの第1のデータ・ブロックを、前記少なくとも2つのデータ・ブロックの、次に続いてアクセスされたデータ・ブロックにリンクする手段を備える、請求項46ないし49のいずれか1項に記載の装置。
  55. 少なくとも1つのアクセス・コマンドは、読み取りコマンドと書き込みコマンドとの少なくとも1つを含む、請求項46ないし54のいずれか1項に記載の装置。
  56. 前記プリフェッチ情報は、第1のブロックが読み取られるときに、少なくとも2つのブロックをプリフェッチする指示を含む、請求項46ないし55のいずれか1項に記載の装置。
  57. 前記メモリ・デバイスに、前記ホストに第1の読み取られたデータ・ブロックを提供するように指示する第1の読み取りコマンドを受信する手段と、
    前記ホストに前記第1の読み取られたデータ・ブロックを提供する手段と、
    前記プリフェッチ情報に基づいて、続いて読み取られたデータ・ブロックを決定する手段と、
    続いて読み取られたデータ・ブロックをプリフェッチする手段と、
    前記続いて読み取られたデータ・ブロックをプリフェッチした後に、前記続いて読み取られたデータ・ブロックを、前記ホストに提供するように前記メモリ・デバイスに指示している第2の読み取りコマンドを受信する手段と、
    前記ホストに、前記プリフェッチされた、続いて読み取られたデータ・ブロックを提供するための手段と、をさらに備える請求項46ないし56のいずれか1項に記載の装置。
  58. 前記メモリ・デバイスの少なくとも部分に対してプリフェッチ情報を生成することをやめるコマンドを受信する手段と、
    前記メモリ・デバイスの前記部分において、データ・ブロックをアクセスするときに、プリフェッチ情報を生成することを防止する手段と、をさらに備える請求項46に記載の装置。
  59. 前記メモリ・デバイスに、前記少なくとも2つのデータ・ブロックのうちの少なくとも1つにアクセスするように指示する少なくとも1つの追加アクセス・コマンドを受信する手段と、
    前記少なくとも1つのアクセス・コマンドに応答してアクセスされたデータ・ブロックの順序に基づいて、前記プリフェッチ情報を除去する手段と、をさらに備える請求項46に記載の装置。
JP2014519591A 2011-07-11 2012-06-13 モバイル・メモリ・キャッシュ読み取り最適化 Pending JP2014523046A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/179,689 US8560778B2 (en) 2011-07-11 2011-07-11 Accessing data blocks with pre-fetch information
US13/179,689 2011-07-11
PCT/FI2012/050592 WO2013007870A1 (en) 2011-07-11 2012-06-13 Mobile memory cache read optimization

Publications (2)

Publication Number Publication Date
JP2014523046A true JP2014523046A (ja) 2014-09-08
JP2014523046A5 JP2014523046A5 (ja) 2015-08-13

Family

ID=47505558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014519591A Pending JP2014523046A (ja) 2011-07-11 2012-06-13 モバイル・メモリ・キャッシュ読み取り最適化

Country Status (7)

Country Link
US (3) US8560778B2 (ja)
EP (1) EP2732374B1 (ja)
JP (1) JP2014523046A (ja)
KR (1) KR20140045553A (ja)
CN (1) CN103907095A (ja)
HK (1) HK1199664A1 (ja)
WO (1) WO2013007870A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102472330B1 (ko) * 2021-11-15 2022-11-30 삼성전자주식회사 컨텍스트 기반 프리페치를 수행하는 분산 메모리 시스템의 구동 방법 및 이를 수행하는 메모리 시스템

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140149650A1 (en) * 2012-11-29 2014-05-29 Jason Caulkins Caching Program Optimization
US9547457B1 (en) * 2013-09-27 2017-01-17 Veritas Technologies Llc Detection of file system mounts of storage devices
US9766823B2 (en) 2013-12-12 2017-09-19 Memory Technologies Llc Channel optimized storage modules
US9489226B2 (en) * 2014-06-06 2016-11-08 PernixData, Inc. Systems and methods to manage write commands in a cache
US10824335B2 (en) 2014-07-14 2020-11-03 Western Digital Technologies, Inc. Device and method to store predicted data at a host memory
CN104571951B (zh) * 2014-12-19 2018-04-20 上海新储集成电路有限公司 Emmc/ufs卡及其提高emmc/ufs卡读性能的方法
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10585624B2 (en) * 2016-12-01 2020-03-10 Micron Technology, Inc. Memory protocol
CN109871181A (zh) * 2017-12-01 2019-06-11 航天信息股份有限公司 一种对象存取方法及装置
US10445076B1 (en) * 2018-05-07 2019-10-15 Sap Se Cache efficient reading of result values in a column store database
US11372763B2 (en) * 2020-07-14 2022-06-28 Micron Technology, Inc. Prefetch for data interface bridge
US11372762B2 (en) 2020-07-14 2022-06-28 Micron Technology, Inc. Prefetch buffer of memory sub-system
CN111813711B (zh) * 2020-08-31 2020-12-29 腾讯科技(深圳)有限公司 训练样本数据的读取方法和装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0490038A (ja) * 1990-08-02 1992-03-24 Agency Of Ind Science & Technol データ処理装置
JPH06289999A (ja) * 1993-03-31 1994-10-18 Toshiba Corp ディスク制御システム
JP2000020365A (ja) * 1998-07-07 2000-01-21 Matsushita Electric Ind Co Ltd データ処理装置、及びそのファイル管理方法
JP2010186524A (ja) * 2009-02-13 2010-08-26 Toshiba Storage Device Corp 情報記憶装置及びデータの記録再生方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0646382B2 (ja) 1987-10-05 1994-06-15 日本電気株式会社 プリフェッチキュー制御方式
US5778436A (en) 1995-03-06 1998-07-07 Duke University Predictive caching system and method based on memory access which previously followed a cache miss
US5896517A (en) * 1997-08-18 1999-04-20 Bull Hn Information Systems Inc. High performance processor employing background memory move mechanism
US5948095A (en) 1997-12-31 1999-09-07 Intel Corporation Method and apparatus for prefetching data in a computer system
JP3522527B2 (ja) * 1998-03-27 2004-04-26 富士通株式会社 入出力制御装置および入出力制御方法
US6247107B1 (en) * 1998-04-06 2001-06-12 Advanced Micro Devices, Inc. Chipset configured to perform data-directed prefetching
US6341370B1 (en) 1998-04-24 2002-01-22 Sun Microsystems, Inc. Integration of data prefetching and modulo scheduling using postpass prefetch insertion
JP3741870B2 (ja) 1998-08-07 2006-02-01 富士通株式会社 命令及びデータの先読み方法、マイクロコントローラ、疑似命令検出回路
US6822959B2 (en) * 2000-07-31 2004-11-23 Mindspeed Technologies, Inc. Enhancing performance by pre-fetching and caching data directly in a communication processor's register set
US7181574B1 (en) * 2003-01-30 2007-02-20 Veritas Operating Corporation Server cluster using informed prefetching
KR100546403B1 (ko) * 2004-02-19 2006-01-26 삼성전자주식회사 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러
US7500063B2 (en) 2004-08-09 2009-03-03 Xiv Ltd. Method and apparatus for managing a cache memory in a mass-storage system
US7430641B2 (en) 2004-08-09 2008-09-30 Xiv Ltd. System method and circuit for retrieving into cache data from one or more mass data storage devices
US7443848B2 (en) * 2004-09-29 2008-10-28 Intel Corporation External device-based prefetching mechanism
US20060184735A1 (en) * 2005-02-15 2006-08-17 Maxwell Technologies, Inc. Methodology for effectively utilizing processor cache in an electronic system
US20070067698A1 (en) * 2005-09-19 2007-03-22 King Steven R Techniques to perform prefetching of content in connection with integrity validation value determination
US8051249B2 (en) * 2006-05-29 2011-11-01 Sandisk Il Ltd. Method for preloading data to improve data-retrieval times
US9798528B2 (en) * 2006-09-13 2017-10-24 International Business Machines Corporation Software solution for cooperative memory-side and processor-side data prefetching
KR100900489B1 (ko) * 2007-07-13 2009-06-03 한국과학기술원 디스크 어레이 매스 프리페칭 방법
US8161264B2 (en) 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for data prefetching using indirect addressing with offset
JP4643667B2 (ja) 2008-03-01 2011-03-02 株式会社東芝 メモリシステム
US7822731B1 (en) * 2008-03-28 2010-10-26 Emc Corporation Techniques for management of information regarding a sequential stream
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US8255633B2 (en) * 2009-11-13 2012-08-28 International Business Machines Corporation List based prefetch
US8291172B2 (en) * 2010-04-27 2012-10-16 Via Technologies, Inc. Multi-modal data prefetcher
US8683136B2 (en) * 2010-12-22 2014-03-25 Intel Corporation Apparatus and method for improving data prefetching efficiency using history based prefetching

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0490038A (ja) * 1990-08-02 1992-03-24 Agency Of Ind Science & Technol データ処理装置
JPH06289999A (ja) * 1993-03-31 1994-10-18 Toshiba Corp ディスク制御システム
JP2000020365A (ja) * 1998-07-07 2000-01-21 Matsushita Electric Ind Co Ltd データ処理装置、及びそのファイル管理方法
JP2010186524A (ja) * 2009-02-13 2010-08-26 Toshiba Storage Device Corp 情報記憶装置及びデータの記録再生方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102472330B1 (ko) * 2021-11-15 2022-11-30 삼성전자주식회사 컨텍스트 기반 프리페치를 수행하는 분산 메모리 시스템의 구동 방법 및 이를 수행하는 메모리 시스템

Also Published As

Publication number Publication date
US8560778B2 (en) 2013-10-15
EP2732374B1 (en) 2020-09-30
US20130019065A1 (en) 2013-01-17
US20160085680A1 (en) 2016-03-24
US9223707B2 (en) 2015-12-29
EP2732374A1 (en) 2014-05-21
WO2013007870A1 (en) 2013-01-17
HK1199664A1 (en) 2015-07-10
EP2732374A4 (en) 2015-04-15
CN103907095A (zh) 2014-07-02
US20140006719A1 (en) 2014-01-02
KR20140045553A (ko) 2014-04-16

Similar Documents

Publication Publication Date Title
JP2014523046A (ja) モバイル・メモリ・キャッシュ読み取り最適化
US11782647B2 (en) Managing operational state data in memory module
US20240020008A1 (en) Apparatus and method to share host system ram with mass storage memory ram
JP6442009B2 (ja) 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法
KR102447493B1 (ko) 랭크 단위로 메모리 장치를 트레이닝하는 전자 장치 및 그것의 메모리 트레이닝 방법
TW201717026A (zh) 用於逐頁記憶體通道交錯之系統及方法
KR20170081275A (ko) 재구성가능한 페치 파이프라인
CN107577612B (zh) 移动装置和将数据存储在移动装置中的方法
KR102174337B1 (ko) 메모리 시스템 및 이를 포함하는 전자 장치
US20110153940A1 (en) Method and apparatus for communicating data between processors in mobile terminal
WO2023142114A1 (zh) 数据处理方法、装置以及电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150522

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160628

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170207