アクセスする機械によって実行されたときに該アクセスする機械に:メモリ中のデータアクセスストライドがあるレンジにはいるときを検出し;予測される次のストライドを計算し;前記予測される次のストライドを使ってキャッシュラインを選択的にプリフェッチすることを実行させるコンテンツを含む、記憶媒体。アクセスする機械によって実行されたときに該アクセスする機械に、前記レンジ内にはいるデータアクセスストライドを追跡するようクレジットベースのシステムを維持させるコンテンツをさらに含む、請求項1記載の記憶媒体。前記クレジットベースのシステムが、データアクセスが前記レンジ内にはいる場合にカウントを増加させ、データアクセスストライドが前記レンジ外である場合に前記カウントを減少させることを含む、請求項2記載の記憶媒体。キャッシュラインを選択的にプリフェッチするためのコンテンツが、前記カウントが閾値に達するときにキャッシュラインをプリフェッチするためのコンテンツを含む、請求項3記載の記憶媒体。アクセスする機械によって実行されたときに該アクセスする機械に、第二の隣接するキャッシュラインをプリフェッチさせるコンテンツをさらに含む、請求項4記載の記憶媒体。予測される次のストライドを計算するためのコンテンツが、最近の前のアクセスのストライドを平均するためのコンテンツを含む、請求項4記載の記憶媒体。アクセスする機械によって実行されたときに該アクセスする機械に:前記レンジ、前記閾値、キャッシュラインをプリフェッチするかどうかおよび第二のキャッシュラインをプリフェッチするかどうかからなる群から選択される一つまたは複数の変数を変更させるコンテンツをさらに含む、請求項4記載の記憶媒体。アクセスする機械によって実行されたときに該アクセスする機械に、適応的な外部制御を提供させるコンテンツをさらに含む、請求項7記載の記憶媒体。命令を実行するための第一のコアおよび複数のエントリーを記憶するキャッシュを含むプロセッサと;前記プロセッサに結合された動的ランダムアクセスメモリDRAMと;メモリ中のデータアクセスストライドがあるレンジにはいるときを検出し、予測される次のストライドを計算し、前記予測される次のストライドを使ってキャッシュラインを選択的にプリフェッチするファジーストライドプリフェッチハンドラとを有する、システム。前記ファジーストライドプリフェッチハンドラが、前記レンジ内にはいるデータアクセスストライドを追跡するようクレジットベースのシステムを維持することをさらに含む、請求項9記載のシステム。前記クレジットベースのシステムが、データアクセスが前記レンジ内にはいる場合にカウントを増加させ、データアクセスストライドが前記レンジ外である場合に前記カウントを減少させることを含む、請求項10記載のシステム。前記ファジーストライドプリフェッチハンドラがキャッシュラインを選択的にプリフェッチすることが、前記ファジーストライドプリフェッチハンドラが前記カウントが閾値に達するときにキャッシュラインをプリフェッチすることを含む、請求項11記載のシステム。前記ファジーストライドプリフェッチハンドラが第二の隣接するキャッシュラインをプリフェッチすることをさらに含む、請求項12記載のシステム。前記ファジーストライドプリフェッチハンドラが予測される次のストライドを計算することが、前記ファジーストライドプリフェッチハンドラが最近の前のアクセスのストライドを平均することを含む、請求項12記載のシステム。メモリ中のデータアクセスストライドがあるレンジにはいるときを検出し;予測される次のストライドを計算し;前記予測される次のストライドを使ってキャッシュラインを選択的にプリフェッチすることを含む、方法。前記レンジ内にはいるデータアクセスストライドを追跡するようクレジットベースのシステムを維持することをさらに含む、請求項15記載の方法。前記クレジットベースのシステムが、データアクセスが前記レンジ内にはいる場合にカウントを増加させ、データアクセスストライドが前記レンジ外である場合に前記カウントを減少させることを含む、請求項16記載の方法。キャッシュラインを選択的にプリフェッチすることが、前記カウントが閾値に達するときにキャッシュラインをプリフェッチすることを含む、請求項17記載の方法。第二の隣接するキャッシュラインをプリフェッチすることをさらに含む、請求項18記載の方法。前記レンジ、前記閾値、キャッシュラインをプリフェッチするかどうかおよび第二のキャッシュラインをプリフェッチするかどうか、からなる群から選択される一つまたは複数の変数を変更することをさらに含む、請求項18記載の方法。しかしながら、必要とされないキャッシュラインのプリフェッチはメモリ帯域幅を浪費し、キャッシュを汚染するきらいがある。本願の課題は請求項記載の手段によって解決される。以下では、説明の目的上、本発明の十全な理解を提供するために数多くの個別的な詳細が記載される。しかしながら、当業者には、本発明の実施形態がこうした個別的詳細なしでも実施できることは明白であろう。一方、本発明を埋没させるのを避けるため、構造および装置はブロック図の形で示される。本明細書を通じて一つの実施形態またはある実施形態への言及は、その実施形態に関連して記述される特定の特徴、構造または特性が本発明の少なくとも一つの実施形態に含まれることを意味している。よって、本明細書を通じて随所に一つの実施形態ではまたはある実施形態ではという句が現れるのは、必ずしもみなが同じ実施形態に言及しているわけではない。さらに、それら特定の特徴、構造または特性は一つまたは複数の実施形態においていかなる好適な仕方で組み合わされてもよい。ここで図1を参照するに、本発明のある実施形態に基づくファジーストライドプリフェッチのための例示的な装置のブロック図が示されている。図1に示されるように、装置100は、プロセッサ102と、動的ランダムアクセスメモリDRAMのようなメモリ104とを含んでいてもよい。プロセッサ102はコア106~110、キャッシュ112およびファジーストライドプリフェッチエンジン116を含んでいてもよい。コア106~110は、互いから独立に命令を実行することができてもよく、いかなる型のアーキテクチャを含んでいてもよい。三つのコアを含むものとして図示されているが、プロセッサ102は任意の数のコアを有していてよく、図示しない他のコンポーネントまたはコントローラを含んでいてもよい。ある実施形態では、プロセッサ102はシステムオンチップSOCsystemonachipである。キャッシュ112は、任意の数の別個のキャッシュを含んでいてよく、任意の数のエントリーを含んでいてよい。低レイテンシーのレベル1キャッシュとして意図されているものの、キャッシュ112は任意の階層レベルにおける任意のメモリ技術において実装されてもよい。ある実施形態では、キャッシュ112は、メモリ104の諸領域、たとえば領域118からフェッチまたはプリフェッチされたいくつかのキャッシュライン、たとえばライン114を記憶する。しかしながら、本発明は、キャッシュまたはメモリの他のさまざまなレベル間のプリフェッチによって実施されてもよい。ファジーストライドプリフェッチエンジン116は、たとえば図3および図4を参照して述べるようなファジーストライドプリフェッチのための方法を実装してもよく、図2を参照して述べるようなアーキテクチャを有していてもよい。ファジーストライドプリフェッチエンジン116はプロセッサ102とは別個であってもよく、ハードウェア、ソフトウェアまたはハードウェアおよびソフトウェアの組み合わせにおいて実装されてもよい。本稿での用法では、ストライド124はメモリアドレス間の距離を指す。いくつかの実施形態では、ストライド124は、プロセッサ102によって要求される相続くメモリ読み出しのアドレス間の現在のストライドまたは距離を指す。他の実施形態では、ストライド124は、どのメモリアドレスが次に要求されるか、どのメモリアドレスをプリフェッチするのが有利でありうるかについての予測されるストライドまたは推測を指す。これについてはのちにより詳細に述べる。ここで図2を参照すると、本発明のある実施形態に基づく例示的なファジーストライドプリフェッチエンジンのブロック図が示されている。図2に示されるように、ファジーストライドプリフェッチエンジン116は、プリフェッチサービス202、レンジ204、カウント206、閾値208および予測されたストライド210を含んでいてもよい。プリフェッチサービス202は、検出サービス212、予測サービス214、プリフェッチサービス216および制御サービス218を含んでいてもよく、これらはそれぞれ、メモリ内のデータアクセスストライドがあるレンジ内にはいるときを検出し、予測される次のストライドを計算し、予測された次のストライドを使って一つまたは複数のキャッシュラインを選択的にプリフェッチし、外部モジュールによって適応制御を提供してもよい。検出サービス212は、メモリ内のデータアクセスストライドたとえばメモリ104内のストライド124がレンジ204内にはいるときを検出してもよい。本稿での用法では、ファジーストライドは、大半が狭いレンジ204内にはいる、一定でないアドレスストライド124のストリームたとえば、プロセッサ102によるメモリ読み出しのストリームを指す。たとえば、レンジ204は前のデータアクセスから128バイトないし192バイト、すなわち二または三キャッシュライン離れている。いくつかのアプリケーションは、ファジーストライドプリフェッチから裨益するデータアクセスパターンをもつことがあるが、他のアプリケーションはそうではないこともある。本発明は、他のプリフェッチ技法との関連で実施されてもよい。ある実施形態では、検出サービス212は、一連のアドレスストライド124がレンジ204にはいるかどうかを追跡するためにクレジットベースのシステムを使う。ある実施形態では、検出サービス212は、データアクセスストライド124がレンジ204にはいるときにカウント206を増加させ、データアクセスストライド124がレンジ204外になるときにカウント206を減少させる。予測サービス214は、予測されるストライド210を計算してもよい。ある実施形態では、予測サービス214は最近の前のアクセスのファジーストライドを平均するたとえば、予測されるストライド=前の5個のストライドの和/5。もう一つの実施形態では、予測サービス214は、予測されるストライド210の計算において、現在のファジーストライドに他よりも大きな重みをかけてもよいたとえば、予測されるストライド=/2。予測されるストライド210を計算するための他の方法を当業者が思いつくことがあり、本発明の範囲内であると考えられる。プリフェッチサービス216は、予測されたストライド210を使って一つまたは複数のキャッシュラインを選択的にプリフェッチしてもよい。ある実施形態では、プリフェッチサービス216は、カウント206が閾値208を満たすまたは閾値208を超え、それによりファジーストライドプリフェッチが有益である可能性がより高いことが示される場合にのみ、予測されたストライド210によってたとえば予測されたストライド210をアクセスされた以前のメモリアドレスに加えることによって同定されるキャッシュラインをプリフェッチすることになる。ある実施形態では、プリフェッチサービス214は、予測されたストライド210によって示されるメモリアドレスがメモリ領域120の境界に十分近い場合にも第二のキャッシュライン内に隣接したメモリ領域122をプリフェッチしてもよい。制御サービス218は、他のソフトウェアまたはハードウェアまたはハードウェアおよびソフトウェアの組み合わせのような外部モジュールによって適応制御を提供してもよい。ある実施形態では、制御サービス218は、作動時に、レンジ204、カウント206および閾値208を、メモリに記憶されている値をもって初期化する。ある実施形態では、レンジ、閾値、キャッシュラインをプリフェッチするかどうかおよび第二のキャッシュラインをプリフェッチするかどうかは、ファジーストライドプリフェッチの有効性をモニタリングする外部の最適化モジュール図示せずによって制御されてもよい。もう一つの実施形態では、制御サービス218は、レンジ204および閾値208のような変数を初期化、更新および/または修正する自らのデータアクセスパターンについて自ら認識するselfawareソフトウェアアプリケーションが、たとえばファジーストライドプリフェッチを適宜するまたはしないことを推奨することを許容してもよい。ここで図3を参照すると、本発明のある実施形態に基づく、ファジーストライドを検出し、これに応答するためのフローチャートが示されている。図3に示されるように、本方法は、検出サービス212がデータアクセスアドレスを受け取る302ことをもって始まる。ある実施形態では、検出サービス212はメモリ読み出しのたびに呼び出される。別の実施形態では、検出サービス212はキャッシュミスのたびに呼び出される。次に、検出サービス212は前のデータアクセスからの差を取ることによってデータアクセスのストライド124を決定する304。検出サービス212は次いで、ストライド124をレンジ204と比較して、ストライド124がファジーストライドと考えられるかどうかを判定する306。もしそうであれば、カウント206が増加させられる308。もしそうでなければ、カウント206は減少させられる310。プリフェッチサービス216は次いでカウント206を閾値210と比較して、プリフェッチをトリガーするかどうかを決定する312。カウント206が閾値210を満たしていたら、プリフェッチサービス216は予測されたストライド210に基づいて一つまたは複数のキャッシュラインをプリフェッチする314。ここで図4を参照すると、本発明のある実施形態に基づくストライドを予測するためのフローチャートが示されている。図4に示されるように、本発明は、予測サービス214が現在のファジーストライド値を検出サービス212から受け取る402ことをもって始まる。次に、予測サービス214は更新された予測されたストライド210を計算する404。プリフェッチがトリガーされたとき、プリフェッチサービス216は予測されたストライド210を使ってどのキャッシュライン単数または複数をプリフェッチすべきかを決定する406。実施形態は、多くの異なるシステム型で実装されうる。ここで図5を参照するに、本発明のある実施形態に基づくシステムのブロック図が示されている。図5に示されるように、マルチプロセッサシステム500はポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続550を介して結合された第一のプロセッサ570および第二のプロセッサ580を含む。図5に示されるように、プロセッサ570および580のそれぞれは、第一および第二のプロセッサコアすなわちプロセッサコア574aおよび574bならびにプロセッサコア584aおよび584bを含むマルチコアプロセッサであってもよい。各プロセッサは、本発明に基づくファジーストライドプリフェッチハードウェア、ソフトウェアおよびファームウェアを含んでいてもよい。引き続き図5を参照するに、第一のプロセッサ570はさらに、メモリコントローラハブMCHmemorycontrollerhub572およびポイントツーポイントのPPインターフェース576および578を含む。同様に、第二のプロセッサ580はMCH582およびPPインターフェース586および588を含む。図5に示されるように、MCH572および582はプロセッサをそれぞれのメモリ、すなわちメモリ532およびメモリ534に結合させる。これらのメモリはそれぞれのプロセッサにローカルに取り付けられたメインメモリたとえば動的ランダムアクセスメモリDRAMの部分であってもよく、そのそれぞれは、本発明の実施形態に基づく拡張されたページテーブルを含んでいてもよい。第一のプロセッサ570および第二のプロセッサ580は、それぞれPP相互接続552および554を介してチップセット590に結合されうる。図5に示されるように、チップセット590はPPインターフェース594および598を含む。さらに、チップセット590は、チップセット590を高性能グラフィックエンジン538と結合するインターフェース592を含む。チップセット590は、インターフェース596を介して第一のバス516に結合されうる。図5に示されるように、さまざまなIO装置514が、第一のバス516を第二のバス520に結合するバスブリッジ518とともに、第一のバス516に結合されうる。第二のバス520にはさまざまな装置が結合されうる。ある実施形態では、それにはたとえば、キーボード/マウス522、通信装置526およびコード530を含みうるディスクドライブまたは他の大容量記憶装置といったデータ記憶ユニット528が含まれる。さらに、オーディオIO524が第二のバス520に結合されていてもよい。実施形態は、コードにおいて実装されてもよく、記憶媒体上に記憶されてもよい。記憶媒体がその上に記憶された命令を有し、該命令が、該命令を実行するようシステムをプログラムするために使用される。記憶媒体は、これに限られないが、フロッピー登録商標ディスク、光ディスク、コンパクトディスク読み出し専用メモリCDROM、書き換え可能型コンパクトディスクCDRWおよび光磁気ディスクを含む任意の型のディスク、読み出し専用メモリROM、動的ランダムアクセスメモリDRAM、静的ランダムアクセスメモリSRAMといったランダムアクセスメモリRAM、消去可能なプログラム可能型読み出し専用メモリEPROM、フラッシュメモリ、半導体ドライブSSDsolidstatedrive、電気的に消去可能なプログラム可能型読み出し専用メモリEEPROMといった半導体デバイス、磁気カードもしくは光カードまたは電子的な命令を記憶するために好適な他の任意の型の媒体を含みうる。本発明について、限られた数の実施形態に関して記載してきたが、当業者はそうした実施形態からの数多くの修正および変形を認識するであろう。付属の請求項は本発明の真の精神および範囲にはいるそのようなすべての修正および変形をカバーすることが意図されている。