(57)【要約】  プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率を改善可能な、クロスページプリフェッチングの方法、装置、およびシステムを提供する。キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取るステップであって、指示メッセージは、マッピング先の第1の物理アドレスと、第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送する、受け取るステップと、第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得するステップと、プリフェッチングアドレスが属する物理ページのページ番号が第1の物理ページのページ番号と異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合に、プリフェッチングアドレスにあるデータをプリフェッチするステップとを含む。
2016520916.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取るステップであって、前記指示メッセージは、マッピング先の第1の物理アドレスと、前記第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送し、前記第1の物理ページの前記隣接性情報は、第1の仮想ページにマッピングされる物理ページが前記第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、前記第1の仮想ページは、前記第1の物理アドレスにマッピングされる第1の仮想アドレスを含む、受け取るステップと、
前記第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得するステップと、
前記プリフェッチングアドレスが属する物理ページのページ番号が前記第1の物理ページのページ番号と異なり、前記第1の物理ページの前記隣接性情報に従って、前記第1の物理ページが隣接すると判定される場合に、前記プリフェッチングアドレスにあるデータをプリフェッチするステップと
を含む、クロスページプリフェッチング方法。
【請求項２】
キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取る前記ステップの後に、前記方法は、
前記第1の物理アドレスに対応し、プリフェッチング情報テーブル内にあるエントリ内に、前記第1の物理アドレスが属する前記第1の物理ページの、前記指示メッセージ内で搬送される前記隣接性情報を記憶するステップであって、前記プリフェッチング情報テーブルは、前記プリフェッチングデバイス内で記憶される、記憶するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得する前記ステップの前に、前記方法は、
圧縮アルゴリズムおよび前記第1の物理アドレスに従って前記第1の物理アドレスの第1のインデックス情報を獲得するステップと、
前記第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、前記第1の物理ページの前記ページ番号と一致する場合に、前記プリフェッチングデバイスのプリフェッチング機構のトレーニングが完了するかどうかを判定するステップであって、前記プリフェッチング情報テーブルは、前記プリフェッチングデバイス内で記憶される、判定するステップと、
前記プリフェッチング機構の前記トレーニングが完了する場合に、プリフェッチングアドレスを獲得する前記ステップを実行するステップと、
前記第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、前記物理ページの前記ページ番号が、前記第1の物理ページの前記ページ番号と一致しない場合に、前記第1の物理ページの前記ページ番号および前記第1の物理ページの前記隣接性情報を、前記第1のインデックス情報に対応し、前記プリフェッチング情報テーブル内にある前記エントリ内に記憶するステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
前記第1の物理アドレスの前記第1のインデックス情報は、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号と、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号の圧縮値と、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号のハッシュ値と
という情報のうちの少なくとも1つを特に含む、請求項3に記載の方法。
【請求項５】
メモリ空間を申請する第1の指示メッセージを受け取るステップであって、前記第1の指示メッセージは、前記メモリ空間の容量情報を搬送する、受け取るステップと、
前記メモリ空間の前記容量情報に従って物理メモリ空間および仮想メモリ空間を割り振るステップと、
前記仮想メモリ空間と前記物理メモリ空間との間のマッピング関係を確立するステップであって、前記マッピング関係は、前記仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピングされる第1の物理アドレスが属する第1の物理ページのページ番号と、前記第1の物理ページの隣接情報とを含み、前記第1の物理ページの前記隣接情報は、第1の仮想ページによってマッピングされる物理ページが、前記第1の仮想ページの次に隣接する仮想ページによってマッピングされる物理ページと隣接するかどうかを示すのに使用され、前記第1の仮想ページは、前記第1の物理アドレスによってマッピングされる前記第1の仮想アドレスを含む、確立するステップと、
メモリが前記マッピング関係を記憶するようにするために、前記マッピング関係を前記メモリに送るステップと
を含む、クロスページプリフェッチング方法。
【請求項６】
第2の指示メッセージをメモリに送るステップであって、前記第2の指示メッセージは、前記メモリが第1の仮想アドレスに従って前記第1の仮想アドレスに対応するマッピング関係をトランスレーションルックアサイドバッファ(TLB)に送るようにするために前記第1の仮想アドレスを搬送し、前記マッピング関係は、前記第1の仮想アドレスに対応するマッピングされる第1の物理アドレスが属する第1の物理ページのページ番号と前記第1の物理ページの隣接情報とを含み、前記第1の物理ページの前記隣接情報は、第1の仮想ページによってマッピングされる物理ページが前記第1の仮想ページの次に隣接する仮想ページによってマッピングされる物理ページと隣接するかどうかを示すのに使用され、前記第1の仮想ページは、前記第1の物理アドレスによってマッピングされる前記第1の仮想アドレスを含む、送るステップと、
前記メモリによって送られた前記マッピング関係を受け取るステップと、
前記マッピング関係に従って、前記第1の仮想アドレスに対応する前記第1の物理アドレスを獲得するステップと、
前記第1の物理アドレスと前記第1の物理アドレスが属する前記第1の物理ページの前記隣接情報とをキャッシュに送るステップと
を含む、クロスページプリフェッチング方法。
【請求項７】
トランスレーションルックアサイドバッファ(TLB)によって送られた、第1の物理アドレスと前記第1の物理アドレスが属する第1の物理ページの隣接情報とを受け取るステップであって、前記第1の物理ページの前記隣接情報は、第1の仮想ページによってマッピングされる物理ページが前記第1の仮想ページの次に隣接する仮想ページによってマッピングされる物理ページと隣接するかどうかを示すのに使用され、前記第1の仮想ページは、前記第1の物理アドレスによってマッピングされる第1の仮想アドレスを含む、受け取るステップと、
キャッシュが前記第1の物理アドレスのデータを記憶していない場合に、プロセッサが前記第1の物理アドレスの前記データをメモリから獲得するようにするために、前記第1の物理アドレスを前記メモリに送るステップと、
物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送るステップであって、前記指示メッセージは、前記第1の物理アドレスと前記第1の物理アドレスが属する前記第1の物理ページの前記隣接情報とを搬送する、送るステップと
を含む、クロスページプリフェッチング方法。
【請求項８】
受取ユニット、獲得ユニット、およびプリフェッチングユニットを含むプリフェッチングデバイスであって、
前記受取ユニットは、キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取るように構成され、前記指示メッセージは、マッピング先の第1の物理アドレスと、前記第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送し、前記第1の物理ページの前記隣接性情報は、第1の仮想ページにマッピングされる物理ページが前記第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、前記第1の仮想ページは、前記第1の物理アドレスにマッピングされる第1の仮想アドレスを含み、
前記獲得ユニットは、前記第1の物理アドレスと前記プリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得するように構成され、
前記プリフェッチングユニットは、前記プリフェッチングアドレスが属する物理ページのページ番号が前記第1の物理ページのページ番号と異なり、前記第1の物理ページの前記隣接性情報に従って、前記第1の物理ページが隣接すると判定される場合に、前記プリフェッチングアドレスにあるデータをプリフェッチするように構成される
プリフェッチングデバイス。
【請求項９】
前記プリフェッチングデバイスは、ストレージユニットをさらに含み、
前記ストレージユニットは、前記受取ユニットが、前記キャッシュによって送られた、物理アドレスが欠けていることの前記指示メッセージを受け取った後に、前記第1の物理アドレスに対応し、プリフェッチング情報テーブル内にあるエントリ内に、前記第1の物理アドレスが属する前記第1の物理ページの、前記指示メッセージ内で搬送される前記隣接性情報を記憶するように構成され、前記プリフェッチング情報テーブルは、前記プリフェッチングデバイス内で記憶される
請求項8に記載のプリフェッチングデバイス。
【請求項１０】
前記プリフェッチングデバイスは、判定ユニット、実行ユニット、およびストレージユニットをさらに含み、
前記獲得ユニットは、前記第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得する前に、圧縮アルゴリズムおよび前記第1の物理アドレスに従って前記第1の物理アドレスの第1のインデックス情報を獲得するように構成され、
前記判定ユニットは、前記第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、前記第1の物理ページの前記ページ番号と一致する場合に、前記プリフェッチングデバイスのプリフェッチング機構のトレーニングが完了するかどうかを判定するように構成され、前記プリフェッチング情報テーブルは、前記プリフェッチングデバイス内で記憶され、
前記実行ユニットは、前記プリフェッチング機構の前記トレーニングが完了する場合に、プリフェッチングアドレスを獲得する前記ステップを実行するように構成され、
前記ストレージユニットは、前記第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、前記物理ページの前記ページ番号が、前記第1の物理ページの前記ページ番号と一致しない場合に、前記第1の物理ページの前記ページ番号および前記第1の物理ページの前記隣接性情報を、前記第1のインデックス情報に対応し、前記プリフェッチング情報テーブル内にある前記エントリ内に記憶するように構成される
請求項8に記載のプリフェッチングデバイス。
【請求項１１】
前記第1の物理アドレスの前記第1のインデックス情報は、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号と、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号の圧縮値と、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号のハッシュ値と
という情報のうちの少なくとも1つを特に含む、請求項10に記載のプリフェッチングデバイス。
【請求項１２】
受取ユニット、割振りユニット、確立ユニット、および送出ユニットを含むプロセッサであって、
前記受取ユニットは、メモリ空間を申請する第1の指示メッセージを受け取るように構成され、前記第1の指示メッセージは、前記メモリ空間の容量情報を搬送し、
前記割振りユニットは、前記メモリ空間の前記容量情報に従って物理メモリ空間および仮想メモリ空間を割り振るように構成され、
前記確立ユニットは、前記仮想メモリ空間と前記物理メモリ空間との間のマッピング関係を確立するように構成され、前記マッピング関係は、前記仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピングされる第1の物理アドレスが属する第1の物理ページのページ番号と、前記第1の物理ページの隣接情報とを含み、前記第1の物理ページの前記隣接情報は、第1の仮想ページによってマッピングされる物理ページが、前記第1の仮想ページの次に隣接する仮想ページによってマッピングされる物理ページと隣接するかどうかを示すのに使用され、前記第1の仮想ページは、前記第1の物理アドレスによってマッピングされる前記第1の仮想アドレスを含み、
前記送出ユニットは、メモリが前記マッピング関係を記憶するようにするために、前記マッピング関係を前記メモリに送るように構成される
プロセッサ。
【請求項１３】
第1の送出ユニット、受取ユニット、獲得ユニット、および第2の送出ユニットを含むトランスレーションルックアサイドバッファ(TLB)であって、
前記第1の送出ユニットは、第2の指示メッセージをメモリに送るように構成され、前記第2の指示メッセージは、前記メモリが第1の仮想アドレスに従って前記第1の仮想アドレスに対応するマッピング関係をトランスレーションルックアサイドバッファ(TLB)に送るようにするために前記第1の仮想アドレスを搬送し、前記マッピング関係は、前記第1の仮想アドレスに対応するマッピングされる第1の物理アドレスが属する第1の物理ページのページ番号と前記第1の物理ページの隣接情報とを含み、前記第1の物理ページの前記隣接情報は、第1の仮想ページによってマッピングされる物理ページが前記第1の仮想ページの次に隣接する仮想ページによってマッピングされる物理ページと隣接するかどうかを示すのに使用され、前記第1の仮想ページは、前記第1の物理アドレスによってマッピングされる前記第1の仮想アドレスを含み、
前記受取ユニットは、前記メモリによって送られた前記マッピング関係を受け取るように構成され、
前記獲得ユニットは、前記マッピング関係に従って、前記第1の仮想アドレスに対応する前記第1の物理アドレスを獲得するように構成され、
前記第2の送出ユニットは、前記第1の物理アドレスと前記第1の物理アドレスが属する前記第1の物理ページの前記隣接情報とをキャッシュに送るように構成される
トランスレーションルックアサイドバッファ(TLB)。
【請求項１４】
受取ユニット、第1の送出ユニット、および第2の送出ユニットを含むキャッシュであって、
前記受取ユニットは、トランスレーションルックアサイドバッファ(TLB)によって送られた、第1の物理アドレスと前記第1の物理アドレスが属する第1の物理ページの隣接情報とを受け取るように構成され、前記第1の物理ページの前記隣接情報は、第1の仮想ページによってマッピングされる物理ページが前記第1の仮想ページの次に隣接する仮想ページによってマッピングされる物理ページと隣接するかどうかを示すのに使用され、前記第1の仮想ページは、前記第1の物理アドレスによってマッピングされる第1の仮想アドレスを含み、
前記第1の送出ユニットは、前記キャッシュが前記第1の物理アドレスのデータを記憶していない場合に、プロセッサが前記第1の物理アドレスの前記データをメモリから獲得するようにするために、前記第1の物理アドレスを前記メモリに送るように構成され、
前記第2の送出ユニットは、物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送るように構成され、前記指示メッセージは、前記第1の物理アドレスと前記第1の物理アドレスが属する前記第1の物理ページの前記隣接情報とを搬送する
キャッシュ。
【請求項１５】
メモリと、請求項8から11のいずれか一項に記載のプリフェッチングデバイスと、請求項12に記載のプロセッサと、請求項13に記載のトランスレーションルックアサイドバッファ(TLB)と、請求項14に記載のキャッシュとを含むクロスページプリフェッチングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、参照によってその全体が本明細書に組み込まれている、2013年5月2日に中国特許庁に出願した中国特許第201310159064.1号明細書、名称「CROSS-PAGE PREFETCHING METHOD, APPARATUS, AND SYSTEM」の優先権を主張するものである。
【０００２】
本発明は、コンピュータ分野に関し、具体的には、クロスページプリフェッチング(cross-page prefetching)の方法、装置、およびシステムに関する。
【背景技術】
【０００３】
時間の進行は、CPU(Central Processing Unit、中央処理装置)とメモリとの間の性能差を増やす。たとえばパイプラインまたはマルチスレッディングの使用など、さまざまな技術が、メモリアクセスの遅延を減らすために開発される。データプリフェッチングも、そのような技術の1つである。
【０００４】
データプリフェッチングは、プロセッサがメモリにアクセスする前に、前もってメモリから、その後に要求されるデータAをフェッチし、データAをCache(キャッシュ)に記憶する方法である。その後、CPUがAにアクセスする時に、Aがすでにキャッシュ内に存在するので、そのアクセスを直接に実行することができ、これは、CPUがメモリにアクセスする時にAを検索することによって引き起こされる遅延を減らす。
【０００５】
実行プロセス中のアプリケーションプログラムによる命令またはデータの呼出しにおいて使用されるアドレスは、すべてが仮想アドレスである。メモリから対応する命令またはデータにアクセスするためには、仮想アドレスが、対応する物理アドレスにマッピングされる必要がある。しかし、仮想アドレスと物理アドレスとの間のトランスレーション(変換)を実行するプロセスでは、隣接する仮想ページが、隣接する物理ページにマッピングされる場合があり、あるいは、隣接しない物理ページにマッピングされる場合がある。
【０００６】
クロスページプリフェッチングが実行される必要があることを判定する時に、既存のプリフェッチングデバイスは、プリフェッチングを停止し、これは、隣接する仮想ページが隣接しない物理ページにマッピングされる時の無効なクロスページプリフェッチングを防止することができる。しかし、仮想ページにマッピングされた物理ページの50%〜70%は、実際には隣接している、すなわち、判定されたプリフェッチングアドレスは、有効である。従来技術の方法に基づけば、無効なクロスページプリフェッチングが防止される時に、有効なクロスページプリフェッチングも防止される可能性があり、これは、プリフェッチングデバイスの低いプリフェッチングヒットレシオを引き起こし、メモリアクセスの効率をさらに低下させる。
【０００７】
本発明の実施形態は、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率をさらに改善することができる、クロスページプリフェッチングの方法、装置、およびシステムを提供する。
【発明の概要】
【課題を解決するための手段】
【０００８】
前述の目的を達成するために、以下の技術的解決策が、本発明の実施形態で採用される。
【０００９】
第1の態様によれば、
キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取るステップであって、指示メッセージは、マッピング先の第1の物理アドレスと、第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送し、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む、受け取るステップと、
第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得するステップと、
プリフェッチングアドレスが属する物理ページのページ番号が第1の物理ページのページ番号と異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合に、プリフェッチングアドレスにあるデータをプリフェッチするステップと
を含む、クロスページプリフェッチング方法が提供される。
【００１０】
第1の態様によれば、第1の可能な実施の形において、キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取るステップの後に、この方法は、
第1の物理アドレスに対応し、プリフェッチング情報テーブル内にあるエントリ内に、第1の物理アドレスが属する第1の物理ページの、指示メッセージ内で搬送される隣接性情報を記憶するステップであって、プリフェッチング情報テーブルは、プリフェッチングデバイス内で記憶される、記憶するステップ
をさらに含む。
【００１１】
第1の態様によれば、第2の可能な実施の形において、第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得するステップの前に、この方法は、
圧縮アルゴリズムおよび第1の物理アドレスに従って第1の物理アドレスの第1のインデックス情報を獲得するステップと、
第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、第1の物理ページのページ番号と一致する場合に、プリフェッチングデバイスのプリフェッチング機構のトレーニングが完了するかどうかを判定するステップであって、プリフェッチング情報テーブルは、プリフェッチングデバイス内で記憶される、判定するステップと、
プリフェッチング機構のトレーニングが完了する場合に、プリフェッチングアドレスを獲得するステップを実行するステップと、
第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、第1の物理ページのページ番号と一致しない場合に、第1の物理ページのページ番号および第1の物理ページの隣接性情報を、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に記憶するステップと
をさらに含む。
【００１２】
第2の可能な実施の形によれば、第3の可能な実施の形において、第1の物理アドレスの第1のインデックス情報は、
第1の物理アドレスが属する第1の物理ページのページ番号と、
第1の物理アドレスが属する第1の物理ページのページ番号の圧縮値と、
第1の物理アドレスが属する第1の物理ページのページ番号のハッシュ値と
という情報のうちの少なくとも1つを特に含む。
【００１３】
第2の態様によれば、クロスページプリフェッチング方法が提供され、この方法は、
メモリ空間を申請する第1の指示メッセージを受け取るステップであって、第1の指示メッセージは、メモリ空間の容量情報を搬送する、受け取るステップと、
メモリ空間の容量情報に従って物理メモリ空間および仮想メモリ空間を割り振るステップと、
仮想メモリ空間と物理メモリ空間との間のマッピング関係を確立するステップであって、マッピング関係は、第1の物理ページのページ番号と、第1の物理ページの隣接性情報とを含み、第1の物理ページは、仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む、確立するステップと、
メモリがマッピング関係を記憶するようにするために、マッピング関係をメモリに送るステップと
を含む。
【００１４】
第3の態様によれば、クロスページプリフェッチング方法が提供され、この方法は、
第2の指示メッセージをメモリに送るステップであって、第2の指示メッセージは、メモリが第1の仮想アドレスに従って第1の仮想アドレスに対応するマッピング関係をトランスレーションルックアサイドバッファ(TLB)に送るようにするために第1の仮想アドレスを搬送し、マッピング関係は、第1の物理ページのページ番号と第1の物理ページの隣接性情報とを含み、第1の仮想ページは、第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む、送るステップと、
メモリによって送られたマッピング関係を受け取るステップと、
マッピング関係に従って、第1の仮想アドレスに対応する第1の物理アドレスを獲得するステップと、
第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とをキャッシュに送るステップと
を含む。
【００１５】
第4の態様によれば、クロスページプリフェッチング方法が提供され、この方法は、
トランスレーションルックアサイドバッファ(TLB)から、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とを受け取るステップであって、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む、受け取るステップと、
キャッシュが第1の物理アドレスのデータを記憶していない場合に、プロセッサが第1の物理アドレスのデータをメモリから獲得するようにするために、第1の物理アドレスをメモリに送るステップと、
物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送るステップであって、指示メッセージは、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送する、送るステップと
を含む。
【００１６】
第5の態様によれば、プリフェッチングデバイスが提供され、このプリフェッチングデバイスは、受取ユニット、獲得ユニット、およびプリフェッチングユニットを含み、
受取ユニットは、キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取るように構成され、指示メッセージは、マッピング先の第1の物理アドレスと、第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送し、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含み、
獲得ユニットは、第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得するように構成され、
プリフェッチングユニットは、プリフェッチングアドレスが属する物理ページのページ番号が第1の物理ページのページ番号と異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合に、プリフェッチングアドレスにあるデータをプリフェッチするように構成される。
【００１７】
第5の態様によれば、第1の可能な実施の形で、プリフェッチングデバイスは、ストレージユニットをさらに含み、
ストレージユニットは、受取ユニットが、キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取った後に、第1の物理アドレスに対応し、プリフェッチング情報テーブル内にあるエントリ内に、第1の物理アドレスが属する第1の物理ページの、指示メッセージ内で搬送される隣接性情報を記憶するように構成され、プリフェッチング情報テーブルは、プリフェッチングデバイス内で記憶される。
【００１８】
第5の態様によれば、第2の可能な実施の形で、プリフェッチングデバイスは、判定ユニット、実行ユニット、およびストレージユニットをさらに含み、
獲得ユニットは、第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得する前に、圧縮アルゴリズムおよび第1の物理アドレスに従って第1の物理アドレスの第1のインデックス情報を獲得するように構成され、
判定ユニットは、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、第1の物理ページのページ番号と一致する場合に、プリフェッチングデバイスのプリフェッチング機構のトレーニングが完了するかどうかを判定するように構成され、プリフェッチング情報テーブルは、プリフェッチングデバイス内で記憶され、
実行ユニットは、プリフェッチング機構のトレーニングが完了する場合に、プリフェッチングアドレスを獲得するステップを実行するように構成され、
ストレージユニットは、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、第1の物理ページのページ番号と一致しない場合に、第1の物理ページのページ番号および第1の物理ページの隣接性情報を、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に記憶するように構成される。
【００１９】
第3の可能な実施の形では、第1の物理アドレスの第1のインデックス情報は、
第1の物理アドレスが属する第1の物理ページのページ番号と、
第1の物理アドレスが属する第1の物理ページのページ番号の圧縮値と、
第1の物理アドレスが属する第1の物理ページのページ番号のハッシュ値と
という情報のうちの少なくとも1つを特に含む。
【００２０】
第6の態様によれば、プロセッサが提供され、このプロセッサは、受取ユニット、割振りユニット、確立ユニット、および送出ユニットを含み、
受取ユニットは、メモリ空間を申請する第1の指示メッセージを受け取るように構成され、第1の指示メッセージは、メモリ空間の容量情報を搬送し、
割振りユニットは、メモリ空間の容量情報に従って物理メモリ空間および仮想メモリ空間を割り振るように構成され、
確立ユニットは、仮想メモリ空間と物理メモリ空間との間のマッピング関係を確立するように構成され、マッピング関係は、第1の物理ページのページ番号と、第1の物理ページの隣接性情報とを含み、第1の物理ページは、仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスによってマッピングされる第1の仮想アドレスを含み、
送出ユニットは、メモリがマッピング関係を記憶するようにするために、マッピング関係をメモリに送るように構成される。
【００２１】
第7の態様によれば、トランスレーションルックアサイドバッファ(TLB)が提供され、このTLBは、第1の送出ユニット、受取ユニット、獲得ユニット、および第2の送出ユニットを含み、
第1の送出ユニットは、第2の指示メッセージをメモリに送るように構成され、第2の指示メッセージは、メモリが第1の仮想アドレスに従って第1の仮想アドレスに対応するマッピング関係をトランスレーションルックアサイドバッファ(TLB)に送るようにするために第1の仮想アドレスを搬送し、マッピング関係は、第1の物理ページのページ番号と第1の物理ページの隣接性情報とを含み、第1の物理ページは、第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含み、
受取ユニットは、メモリによって送られたマッピング関係を受け取るように構成され、
獲得ユニットは、マッピング関係に従って、第1の仮想アドレスに対応する第1の物理アドレスを獲得するように構成され、
第2の送出ユニットは、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とをキャッシュに送るように構成される。
【００２２】
第8の態様によれば、キャッシュが提供され、このキャッシュは、受取ユニット、第1の送出ユニット、および第2の送出ユニットを含み、
受取ユニットは、トランスレーションルックアサイドバッファ(TLB)によって送られた、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とを受け取るように構成され、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含み、
第1の送出ユニットは、キャッシュが第1の物理アドレスのデータを記憶していない場合に、プロセッサが第1の物理アドレスのデータをメモリから獲得するようにするために、第1の物理アドレスをメモリに送るように構成され、
第2の送出ユニットは、物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送るように構成され、指示メッセージは、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送する。
【００２３】
第9の態様によれば、クロスページプリフェッチングシステムが提供され、このクロスページプリフェッチングシステムは、メモリと、第5の態様によるプリフェッチングデバイスと、第6の態様によるプロセッサと、第7の態様によるトランスレーションルックアサイドバッファ(TLB)と、第8の態様によるキャッシュとを含む。
【００２４】
本発明の実施形態は、クロスページプリフェッチングの方法、装置、およびシステムを提供する。この方法は、プロセッサによって、メモリ空間を申請する第1の指示メッセージを受け取るステップと、プロセッサによって、第1の指示メッセージ内に搬送されたメモリ空間の容量情報に従って物理メモリ空間および仮想メモリ空間を割り振るステップと、プロセッサによって、仮想メモリ空間と物理メモリ空間との間のマッピング関係を確立するステップであって、マッピング関係は、第1の物理ページのページ番号と、第1の物理ページの隣接性情報とを含み、第1の物理ページは、仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む、確立するステップと、最後に、プロセッサによって、マッピング関係をメモリに送るステップとを含む。この形で、トランスレーションルックアサイドバッファ(TLB)が、第1の仮想アドレスに対応するマッピング関係が欠けていることの第2の表示メッセージをメモリに送る時に、TLBが第1の物理ページの隣接性情報を含むマッピング関係を受け取るようにするために、メモリは、第1の物理ページの隣接性情報を含み、第1の仮想アドレスに対応するマッピング関係をTLBに送ることができ、第1の仮想アドレスと第1の物理アドレスとの間のトランスレーションが完了した後に、TLBは、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とをキャッシュに送る。この形で、物理アドレスが、キャッシュ内に欠けている時に、隣接性情報は、データフローと一緒にプリフェッチングデバイスに入ることができ、その結果、プリフェッチング機構のトレーニングが完了し、プリフェッチングデバイスがプリフェッチングアドレスを獲得した後に、プリフェッチングアドレスが属する物理ページのページ番号が、第1の物理ページのページ番号とは異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合に、プリフェッチングデバイスは、プリフェッチングアドレスにあるデータをプリフェッチする。したがって、本発明は、クロスページプリフェッチングが実行される必要があると判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率をさらに改善する。
【００２５】
本発明の実施形態または従来技術の技術的解決策をより明瞭に説明するために、以下では、従来技術の実施形態を説明するのに必要な添付図面を短く紹介する。明らかに、添付図面は、以下の説明において、単に本発明のいくつかの実施形態を示し、当業者は、それでも、創作的努力なしでこれらの添付図面から他の図面を導出することができる。
【図面の簡単な説明】
【００２６】
【図１】プリフェッチングデバイス内のプリフェッチング構造の概略図である。
【図２】本発明の実施形態によるクロスページプリフェッチング方法の図である。
【図３】本発明の実施形態によるプリフェッチング機構をトレーニングする方法の図である。
【図４】本発明の実施形態による別のクロスページプリフェッチング方法の図である。
【図５】本発明の実施形態によるさらに別のクロスページプリフェッチング方法の図である。
【図６】本発明の実施形態によるさらに別のクロスページプリフェッチング方法の図である。
【図７】本発明の実施形態によるクロスページプリフェッチングシステムの図である。
【図８】本発明の実施形態によるクロスページプリフェッチングシステムに含まれるプロセッサおよびメモリの相互作用図である。
【図９Ａ】本発明の実施形態によるクロスページプリフェッチングシステムに含まれるメモリ、トランスレーションルックアサイドバッファ、キャッシュ、およびプリフェッチングデバイスの相互作用図の前半を示す図である。
【図９Ｂ】本発明の実施形態によるクロスページプリフェッチングシステムに含まれるメモリ、トランスレーションルックアサイドバッファ、キャッシュ、およびプリフェッチングデバイスの相互作用図の後半を示す図である。
【図１０】本発明の実施形態によるクロスページプリフェッチングシステム内のプリフェッチングデバイスの動作流れ図である。
【図１１】クロスページプリフェッチングの例の概略流れ図である。
【図１２】本発明の実施形態によるプリフェッチングデバイスの図である。
【図１３】本発明の実施形態による別のプリフェッチングデバイスの図である。
【図１４】本発明の実施形態によるさらに別のプリフェッチングデバイスの図である。
【図１５】本発明の実施形態によるプロセッサの図である。
【図１６】本発明の実施形態によるトランスレーションルックアサイドバッファの図である。
【図１７】本発明の実施形態によるキャッシュの図である。
【図１８】本発明の実施形態によるクロスページプリフェッチングシステムの図である。
【発明を実施するための形態】
【００２７】
以下では、本発明の実施形態において、添付図面を参照して本発明の実施形態での技術的解決策を明瞭かつ完全に説明する。明らかに、説明される実施形態は、単に、本発明の実施形態のすべてではなく一部である。創作的労力なしで本発明の実施形態に基づいて当業者の得るすべての他の実施形態は、本発明の保護範囲に含まれなければならない。
【００２８】
プロセッサによる命令実行またはデータ獲得の速度を改善するために、プロセッサによって実行される命令またはプロセッサによって獲得されるデータをメモリからプリフェッチし、命令またはデータをキャッシュ内に記憶するのに、プリフェッチング技術が従来技術で一般に使用される。プリフェッチング技術は、ソフトウェアプリフェッチングとハードウェアプリフェッチングとに分類され得る。
【００２９】
データプリフェッチングが、ソフトウェアを使用することによって実行される時に、命令のプリフェッチングは、プログラムコードに明示的に追加される必要があり、その後に使用されるデータは、明示的にプリフェッチングされる必要がある。
【００３０】
プリフェッチングが、ハードウェアを使用して実行される時には、プリフェッチングは、専用ハードウェアによって実施される。このハードウェアは、現在のフェッチアドレスの状況と以前のフェッチアドレスの状況とに従って、「プリフェッチング機構」のセットをトレーニングによって入手する。その後、プリフェッチングデバイスは、「プリフェッチング機構」を使用することと、現在のフェッチアドレスを参照することとによって、プリフェッチングアドレスを計算によって入手し、これによって、プリフェッチングアドレスにあるデータを前もってメモリからプリフェッチし、プリフェッチングアドレスにあるデータをキャッシュ（cache）に記憶する。このプロセスは、プログラマまたはコンパイラにとって透過的である。図1は、頻繁に使用されるプリフェッチ構造である。
【００３１】
図1から、プリフェッチング構造が、別々に、現在のフェッチアドレス、以前のフェッチアドレス、およびプリフェッチングアドレスである3つのアドレスを含むことがわかる。さらに、プリフェッチング構造は、ステップサイズと、プリフェッチングデバイスのプリフェッチング状態に関する情報とをさらに記憶する。プリフェッチングアドレスが獲得されつつある時に、現在のフェッチアドレスおよび以前のフェッチアドレスは、まず、ステップサイズを入手するために比較される。計算されたステップサイズおよびステップサイズユニット内に以前に記憶されたステップサイズが、比較される。計算されたステップサイズが、ステップサイズユニット内に以前に記憶されたステップサイズと一貫する場合には、プリフェッチングアドレスは、プリフェッチングアドレス＝現在のフェッチアドレス＋ステップサイズという関係に従う計算によって入手され、計算されたステップサイズが、ステップサイズユニット内に以前に記憶されたステップサイズと一貫しない場合には、ステップサイズおよび状態が、適当に更新される。
【００３２】
プリフェッチングが、物理アドレスに基づくプリフェッチングと仮想アドレスに基づくプリフェッチングとに分類されることに留意されたい。プリフェッチングデバイスが、仮想アドレスに基づくプリフェッチングを実行する場合に、クロスページプリフェッチングは、仮想アドレスの連続性に起因して有効である。しかし、仮想アドレスに基づくプリフェッチングでは、TLB(Translation lookaside buffer、トランスレーションルックアサイドバッファ)が、仮想-物理トランスレーションを実行するために検索される必要があり、これは、性能のコストを負担することを必要とする。さらに、いくつかのプリフェッチングデバイスは、TLBにアクセスすることができない。したがって、本明細書で用いられるプリフェッチングは、物理アドレスに基づくハードウェアプリフェッチングであり、仮想アドレスに基づくプリフェッチングは、本明細書では説明されない。
【００３３】
［実施形態1］
本発明の実施形態は、クロスページプリフェッチング方法を提供する。図2に具体的に示されているように、この方法は、以下を含む。
【００３４】
201  キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取り、指示メッセージは、マッピング先の第1の物理アドレスと、第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送し、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【００３５】
一般に、プロセッサが、キャッシュからの命令またはデータにヒットしない時には、命令またはデータの読取の速度を改善するために、キャッシュは、一般に、プロセッサによってアクセスされる命令またはデータのストレージアドレスに従ってメモリから対応する命令またはデータを獲得し、物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送り、プロセッサによってアクセスされる次の命令または次のデータをメモリからプリフェッチするようにプリフェッチングデバイスに指示し、プロセッサによってアクセスされる次の命令または次のデータをキャッシュ内に記憶することに留意されたい。
【００３６】
プリフェッチングデバイスは、第1の物理アドレスに対応し、プリフェッチング情報テーブル内にあるエントリに、第1の物理アドレスが属し、指示メッセージ内で搬送される第1の物理ページの隣接性情報を記憶することができ、プリフェッチング情報テーブルは、プリフェッチングデバイス内に記憶される。
【００３７】
確かに、エントリの量を減らすために、第1の物理アドレスを、プリフェッチングデバイスのプリフェッチング情報テーブル内に、インデックス形式(index manner)で記憶することができる。物理アドレスが欠けていることの指示メッセージを受け取った後に、プリフェッチングデバイスは、まず、プリフェッチングデバイスのプリフェッチング情報テーブル内に記憶された物理アドレスのインデックス形式とインデックスアルゴリズムとに従って、第1の物理アドレスに対応する第1のインデックス情報を獲得し、その後、プリフェッチングデバイス内に記憶されたプリフェッチング情報テーブル内に含まれる第1のインデックス情報を検索し、さらに、第1の物理アドレスの関係するエントリを獲得する。第1のインデックス情報は、
第1の物理アドレスが属する第1の物理ページのページ番号と、第1の物理アドレスが属する第1の物理ページのページ番号の圧縮値と、第1の物理アドレスが属する第1の物理ページのページ番号のハッシュ値と
という情報のうちの少なくとも1つを特に含むことができる。
【００３８】
例Aに関して、第1のインデックス情報は、第1の物理アドレスが属する第1の物理ページのページ番号の圧縮値である。
【００３９】
フェッチアドレスが、32ビットを有し、1ページのサイズが、4kbである、すなわち、フェッチアドレスの上位20ビットが、ページ番号であり、フェッチアドレスの下位12ビットが、ページオフセットであると仮定する。たとえば、第1の物理アドレス(2進数で表される)は、
1010、1010、1010、1010、1010、0011、0011、0011であり、
ページ番号は、1010、1010、1010、1010、1010であり、
ページオフセットは、0011、0011、0011である。
【００４０】
ページ番号が、第1のインデックス情報として使用される場合には、プリフェッチングデバイス内に記憶されるインデックス情報のエントリの量は、2^20個である。
【００４１】
ページ番号の複数のビットを、圧縮アルゴリズムを使用することによってフェッチし、インデックス情報として使用することができる。たとえば、プリフェッチングデバイス内に記憶されるインデックス情報のエントリの量が、128個のみである場合には、ページ番号の最初の7ビットが、圧縮アルゴリズムを使用することによってインデックス値として使用される、すなわち、1010101が、フェッチされ、インデックス情報として使用される。
【００４２】
例Bに関して、第1のインデックス情報は、第1の物理アドレスが属する第1の物理ページのページ番号のハッシュ値である。
【００４３】
ハッシュ値が、式(1)に従って計算されると仮定する。
index = 物理ページのページ番号 % 128      (式1)
ここで、%は、REM演算を表す。
【００４４】
フェッチアドレス(2進数で表される)が、1010、1010、1010、1010、1010、0011、0011、0011である時には、
ページ番号は、1010、1010、1010、1010、1010であり、これは、10進数に変換された後に699050と等しい。
【００４５】
式(1)に従って、
index = 699050 % 128 = 42
すなわち、インデックス情報は、42であり、これは、2進数で表された時に101010と等しい。
【００４６】
本発明のこの実施形態は、単に、第1のインデックス情報の複数の表現方法を例示的に表すものである。確かに、第1のインデックス情報は、別の形式をさらに記憶することができ、この形式は、本発明のこの実施形態において特に限定されない。
【００４７】
具体的には、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリに含まれる物理ページのページ番号が、第1の物理ページのページ番号と一致しない可能性がある場合には、プリフェッチングデバイスは、そのエントリに、第1の物理ページのページ番号と第1の物理ページの隣接性情報とを記憶し、プリフェッチング機構のトレーニングをもう一度実行する。
【００４８】
たとえば、物理アドレスが欠けていることの現在受け取られている指示メッセージ内で搬送される第1の物理アドレスが、A+Bである(Aは物理ページ番号を表し、Bはページオフセットを表す)と仮定され、第1のインデックス情報Mがインデックスアルゴリズムに従って獲得された後に、Mに対応するエントリ内の物理ページのページ番号が、Aと一致しないことがわかる場合には、Mに対応するエントリ内の物理ページのページ番号が、Aに更新され、同時に、物理ページの隣接性情報が更新され、ステップサイズが、0として構成され、プリフェッチング状態が、初期化状態に更新され、A+Bが、以前のフェッチアドレスエントリに書き込まれ、プリフェッチング機構のトレーニングが、もう一度実行される。
【００４９】
しかし、第1のインデックス情報に対応する、プリフェッチング情報テーブル内のエントリ内の物理ページのページ番号が、第1の物理ページのページ番号と一致するが、プリフェッチング機構のトレーニングを完了することができない場合には、プリフェッチング機構のトレーニングだけが、継続して実行される必要があり、このトレーニングは、プリフェッチングデバイスのステップサイズ、プリフェッチング状態、および以前のフェッチアドレスなどの情報(本発明において本明細書で1つずつリストはしない)に対して更新を実行することを含む。
【００５０】
たとえば、前述の例を続けると、物理アドレスが欠けていることの指示メッセージ内で搬送され、プリフェッチングデバイスによって新たに受け取られる第1の物理アドレスが、A+B+1(Aは、物理ページ番号であり、B+1は、ページオフセットである)であると仮定され、第1のインデックス情報Mが、インデックスアルゴリズムに従って獲得された後に、Mに対応する第1のエントリ内の物理ページ番号がAと一致することがわかる場合に、1のステップサイズが、計算によって入手され、プリフェッチング状態が、レディ状態に更新され、以前のフェッチアドレスが、A+B+1に更新され、プリフェッチング機構のトレーニングが、継続して実行される。
【００５１】
202  第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得する。
【００５２】
具体的には、ステップ301の説明部分を参照すると、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内の物理ページのページ番号が、第1の物理ページのページ番号と一致し、プリフェッチング機構のトレーニングが完了する場合に、プリフェッチングデバイスは、第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得することができる。
【００５３】
プリフェッチング機構をトレーニングするプロセスを、図3に示すことができ、このプロセスは、以下を含む。
【００５４】
S301  キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取り、指示メッセージは、マッピング先の第1の物理アドレスと、第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送し、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【００５５】
S302  圧縮アルゴリズムおよび第1の物理アドレスに従って第1の物理アドレスの第1のインデックス情報を獲得する。
【００５６】
S303  第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、第1の物理ページのページ番号と一致しない場合に、第1の物理ページのページ番号および第1の物理ページの隣接性情報を、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に記憶する。
【００５７】
具体的には、プリフェッチング情報テーブルは、プリフェッチングデバイス内で記憶される。
【００５８】
プリフェッチングデバイスのプリフェッチング機構が、トレーニングを開始したので、ステップS301は、実行される、すなわち、物理アドレスが欠けていることの新しい指示メッセージが受け取られ、プリフェッチング機構のトレーニングが、実行される。
【００５９】
S304  第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、第1の物理ページのページ番号と一致する場合に、プリフェッチングデバイスのプリフェッチング機構のトレーニングが完了するかどうかを判定する。
【００６０】
S305  プリフェッチング機構のトレーニングが完了する場合には、第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得する。
【００６１】
確かに、プリフェッチング機構のトレーニングが完了しない場合には、ステップS301は実行され、物理アドレスが欠けていることの指示メッセージが、継続的に受け取られ、その結果、プリフェッチング機構のトレーニングは、プリフェッチング機構のトレーニングが完了するまで、継続的に実行される。
【００６２】
ステップ201の説明部分に含まれる、プリフェッチング機構のトレーニングが完了しない2つのケースに関して、プリフェッチングデバイスが、プリフェッチングアドレスを生成することができず、これが、本発明のこの実施形態の議論の範囲に含まれないことに留意されたい。
【００６３】
第1の物理アドレスおよびプリフェッチングデバイス内に記憶されたステップサイズに従ってプリフェッチングアドレスを生成する前述の方法が、単に例示的な説明であり、プリフェッチングアドレスを獲得する別の方法が、従来技術に存在する可能性があることに留意されたい。当業者が、本発明のこの実施形態で1つずつ説明されない、従来技術のプリフェッチングアドレスを獲得する別の方法を理解するに違いないことを理解されたい。
【００６４】
203  プリフェッチングアドレスが属する物理ページのページ番号が第1の物理ページのページ番号と異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合には、プリフェッチングアドレスにあるデータをプリフェッチする。
【００６５】
具体的には、プリフェッチングアドレスが属する物理ページのページ番号が、第1の物理ページのページ番号とは異なる(プリフェッチングアドレスがページにまたがることを示す)場合に、第1の物理ページが隣接することが第1の物理ページの隣接性情報に従って判定された後に、プリフェッチングアドレスにあるデータをプリフェッチすることができる。
【００６６】
この方法が、クロスページプリフェッチング方法であり、したがって、プリフェッチングアドレスがページにまたがる場合だけが議論され、プリフェッチングアドレスがページにまたがらないプリフェッチング方法が、本発明のこの実施形態では議論されないことに留意されたい。
【００６７】
本発明のこの実施形態では、プリフェッチングアドレスがページにまたがる時に、クロスページプリフェッチングは、現在のフェッチアドレスの物理ページが隣接するページにまたがる場合にさらに実行され、これが、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率をさらに改善する。
【００６８】
本発明のこの実施形態は、クロスページプリフェッチング方法をさらに提供する。図4に具体的に示されているように、この方法は、以下を含む。
【００６９】
401  物理メモリ空間を申請する第1の指示メッセージを受け取り、第1の指示メッセージは、メモリ空間の容量情報を搬送する。
【００７０】
402  メモリ空間の容量情報に従って物理メモリ空間および仮想メモリ空間を割り振る。
【００７１】
具体的には、アプリケーションプログラムがロードされる時に、プロセッサは、まず、アプリケーションプログラムがメモリ空間を申請することの第1の指示メッセージを受け取り、第1の指示メッセージは、メモリ空間の容量情報を搬送する。次に、プロセッサは、メモリ空間の容量情報に従って、対応する物理メモリ空間および仮想メモリ空間を割り振る。物理メモリ空間および仮想メモリ空間が割り振られる時に、第1の指示メッセージが仮想アドレスに関する情報を搬送する場合には、仮想メモリ空間の対応するサイズが、仮想アドレスに従って利用できるようにされ、そうでない場合には、プロセッサは、適当な仮想メモリ空間をランダムに割り振り、これに対応して、プロセッサは、適当な物理メモリ空間をランダムに割り振る。
【００７２】
メモリ空間を割り振るという問題が、本発明のこの実施形態で具体的には限定されない従来技術の問題に属し、例示的な実施解決策だけが提供されることに留意されたい。
【００７３】
403  仮想メモリ空間と物理メモリ空間との間のマッピング関係を確立し、マッピング関係は、第1の物理ページのページ番号と、第1の物理ページの隣接性情報とを含み、第1の物理ページは、仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【００７４】
具体的には、従来技術で確立される、仮想メモリ空間と物理メモリ空間との間のマッピング関係は、仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属する第1の物理ページのページ番号情報だけを含み、本発明のこの実施形態では、プロセッサによって確立されるマッピング関係は、第1の物理ページの隣接性情報をさらに記憶し、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされた物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされた物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされた第1の仮想アドレスを含み、隣接性情報および第1の物理ページのページ番号は、マッピング関係内に共存する。
【００７５】
具体的には、仮想メモリ空間と物理メモリ空間との間のマッピング関係は、マッピング関係ページテーブルを使用することによって表され得る。第1の物理ページの隣接性情報は、ページテーブルの1ビットを使用することによって判定され得、あるいは、ページテーブルの複数のビットを使用することによって判定され得、これは、本発明のこの実施形態によって特に限定されない。
【００７６】
404  メモリがマッピング関係を記憶するようにするために、マッピング関係をメモリに送る。
【００７７】
本発明のこの実施形態は、さらに、クロスページプリフェッチング方法を提供する。図5に具体的に示されているように、この方法は、以下を含む。
【００７８】
501  第2の指示メッセージをメモリに送り、第2の指示メッセージは、メモリが第1の仮想アドレスに従って第1の仮想アドレスに対応するマッピング関係をトランスレーションルックアサイドバッファ(TLB)に送るようにするために第1の仮想アドレスを搬送し、マッピング関係は、第1の物理ページのページ番号と第1の物理ページの隣接性情報とを含み、第1の物理ページは、第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【００７９】
具体的には、マッピング関係は、一般に、メモリのメモリ内に記憶されるが、仮想アドレスと物理アドレスとの間のトランスレーションの速度を改善するために、複数の頻繁に使用されるマッピング関係または近い将来に使用されるマッピング関係を、トランスレーションルックアサイドバッファ(TLB)内に記憶することができる。
【００８０】
メモリがアクセスされる時には、TLBは、まず、プロセッサがメモリにアクセスすることの指示メッセージを受け取り、この指示メッセージは、第1の仮想アドレスを搬送し、その後、TLBは、記憶されたマッピング関係に従って仮想アドレスと物理アドレスとの間のトランスレーションを実行する。しかし、TLBが、プロセッサがメモリにアクセスすることの指示メッセージを受け取った後に、第1の仮想アドレスに対応するマッピング関係がTLB内に存在しない場合には、TLBは、マッピング関係が欠けていることの第2の指示メッセージをメモリに送り、第1の仮想アドレスに対応するマッピング関係をメモリに申請する。メモリは、第1の仮想アドレスに従って、記憶されたマッピング関係を検索し、第1の仮想アドレスに対応するマッピング関係をTLBに送る。
【００８１】
具体的には、仮想メモリ空間と物理メモリ空間との間の前述のマッピング関係が、マッピング関係ページテーブルを使用することによって表され得る場合には、ここでの第1の仮想アドレスと第1の物理アドレスとの間のマッピング関係を、ページテーブル内のページテーブルエントリを使用することによって表すことができる。
【００８２】
502  メモリによって送られたマッピング関係を受け取る。
【００８３】
503  マッピング関係に従って、第1の仮想アドレスに対応する第1の物理アドレスを獲得する。
【００８４】
504  第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とをキャッシュに送る。
【００８５】
具体的には、TLBは、キャッシュに、第1の物理アドレスが属する第1の物理ページの隣接性情報を送る。物理アドレスがキャッシュ内に欠けている時には、隣接性情報は、データフローと一緒にプリフェッチングデバイスに入ることができ、その結果、プリフェッチング機構のトレーニングが完了し、プリフェッチングデバイスが、プリフェッチングアドレスがページにまたがると判定した後に、隣接性情報に従って、現在のフェッチアドレスが属する物理ページが隣接すると判定される時に、プリフェッチングデバイスが、クロスページプリフェッチングを実行するようになり、これが、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、さらに、メモリアクセスの効率を改善する。
【００８６】
本発明のこの実施形態は、さらに、クロスページプリフェッチング方法を提供する。図6に具体的に示されているように、この方法は、以下を含む。
【００８７】
601  トランスレーションルックアサイドバッファ(TLB)によって送られた、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とを受け取り、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【００８８】
602  キャッシュが第1の物理アドレスのデータを記憶していない場合に、プロセッサが第1の物理アドレスのデータをメモリのメモリから獲得するようにするために、第1の物理アドレスをメモリに送る。
【００８９】
603  物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送り、指示メッセージは、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送する。
【００９０】
一般に、プロセッサが、キャッシュからの命令またはデータにヒットしない時に、その命令またはデータの読取の速度を改善するために、キャッシュが、一般に、プロセッサによってアクセスされる命令またはデータのストレージアドレスに従ってメモリから対応する命令またはデータを獲得し、物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送り、プロセッサによってアクセスされる次の命令または次のデータをメモリからプリフェッチするようにプリフェッチングデバイスに指示し、プロセッサによってアクセスされる次の命令または次のデータをキャッシュに記憶することに留意されたい。
【００９１】
第1の物理アドレスをメモリに送るステップ602と、物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送るステップ603とが、固定されたシーケンスを有するのではなく、ステップ602とステップ603との両方が、第1の物理アドレスのデータが記憶されていないことが判定された後に実行されるアクションであり、ステップ602とステップ603とのシーケンスが、本発明のこの実施形態において特に限定されないことに留意されたい。
【００９２】
本発明のこの実施形態は、クロスページプリフェッチング方法を提供する。この方法は、プロセッサによって、メモリ空間を申請する第1の指示メッセージを受け取るステップと、プロセッサによって、第1の指示メッセージ内で搬送されるメモリ空間の容量情報に従って物理メモリ空間および仮想メモリ空間を割り振るステップと、プロセッサによって、仮想メモリ空間と物理メモリ空間との間のマッピング関係を確立するステップであって、マッピング関係は、第1の物理ページのページ番号と、第1の物理ページの隣接性情報とを含み、第1の物理ページは、仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む、確立するステップと、最後に、プロセッサによって、マッピング関係をメモリに送るステップとを含む。トランスレーションルックアサイドバッファ(TLB)が、第1の仮想アドレスに対応するマッピング関係が欠けていることの第2の表示メッセージをメモリに送る時に、TLBが第1の物理ページの隣接性情報を含むマッピング関係を受け取るようにするために、メモリは、第1の物理ページの隣接性情報を含み、第1の仮想アドレスに対応するマッピング関係をTLBに送ることができ、第1の仮想アドレスと第1の物理アドレスとの間のトランスレーションが完了した後に、TLBは、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とをキャッシュに送る。物理アドレスが、キャッシュ内に欠けている時に、隣接性情報は、データフローと一緒にプリフェッチングデバイスに入ることができ、その結果、プリフェッチング機構のトレーニングが完了し、プリフェッチングデバイスがプリフェッチングアドレスを獲得した後に、プリフェッチングアドレスが属する物理ページのページ番号が、第1の物理ページのページ番号とは異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合に、プリフェッチングデバイスは、プリフェッチングアドレスにあるデータをプリフェッチし、これは、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率をさらに改善する。
【００９３】
［実施形態2］
本発明の実施形態は、クロスページプリフェッチング方法を提供し、具体的な説明は、図7に示されたクロスページプリフェッチングシステムを使用することによって実行され、このクロスページプリフェッチングシステムは、プロセッサ、メモリ、キャッシュ、トランスレーションルックアサイドバッファ、およびプリフェッチングデバイスを含む。
【００９４】
クロスページプリフェッチングを実施するために、まず、アプリケーションプログラムがロードされる時に、プロセッサは、以下を含めて図8に具体的に示されているように、プログラムの命令およびデータのためのメモリ空間を、メモリ内にアプリケーションプログラムのために割り振る。
【００９５】
801  プロセッサが、メモリ空間を申請する第1の指示メッセージを受け取り、第1の指示メッセージは、メモリ空間の容量情報を搬送する。
【００９６】
802  プロセッサが、メモリ空間の容量情報に従って物理メモリ空間および仮想メモリ空間を割り振る。
【００９７】
具体的には、アプリケーションプログラムがロードされる時に、プロセッサは、まず、アプリケーションプログラムがメモリ空間を申請することの第1の指示メッセージを受け取り、第1の指示メッセージは、メモリ空間の容量情報を搬送する。次に、プロセッサは、メモリ空間の容量情報に従って、対応する物理メモリ空間および仮想メモリ空間を割り振る。物理メモリ空間および仮想メモリ空間が割り振られる時に、第1の指示メッセージが仮想アドレスに関する情報を搬送する場合には、仮想メモリ空間の対応するサイズが、仮想アドレスに従って利用できるようにされ、そうでない場合には、プロセッサは、適当な仮想メモリ空間をランダムに割り振り、これに対応して、プロセッサは、適当な物理メモリ空間をランダムに割り振る。
【００９８】
メモリ空間を割り振るという問題が、本発明のこの実施形態で具体的には限定されない従来技術の問題に属し、例示的な実施解決策だけが提供されることに留意されたい。
【００９９】
803  プロセッサが、仮想メモリ空間と物理メモリ空間との間のマッピング関係を確立し、マッピング関係は、第1の物理ページのページ番号と、第1の物理ページの隣接性情報とを含み、第1の物理ページは、仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接情報は、第1の仮想ページにマッピングされる物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【０１００】
具体的には、従来技術で確立される、仮想メモリ空間と物理メモリ空間との間のマッピング関係は、仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属する第1の物理ページのページ番号情報だけを含み、本発明のこの実施形態では、プロセッサによって確立されるマッピング関係は、第1の物理ページの隣接性情報をさらに記憶し、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされた物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされた物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされた第1の仮想アドレスを含み、隣接性情報および第1の物理ページのページ番号は、マッピング関係内に共存する。
【０１０１】
具体的には、仮想メモリ空間と物理メモリ空間との間のマッピング関係は、マッピング関係ページテーブルを使用することによって表され得る。第1の物理ページの隣接性情報は、ページテーブルの1ビットを使用することによって判定され得、あるいは、ページテーブルの複数のビットを使用することによって判定され得、これは、本発明のこの実施形態によって特に限定されない。
【０１０２】
804  プロセッサが、マッピング関係をメモリに送る。
【０１０３】
805  メモリが、プロセッサによって送られたマッピング関係を受け取る。
【０１０４】
806  メモリが、マッピング関係を記憶する。
【０１０５】
確かに、プログラムのローディングが完了し、プロセッサが、プログラムの命令およびデータのためのメモリ空間をメモリ内でアプリケーションプログラムのために割り振った後に、仮想アドレスと物理アドレスとの間のトランスレーションの速度を改善するために、プロセッサは、複数の頻繁に使用されるマッピング関係または近い将来に使用されるマッピング関係をトランスレーションルックアサイドバッファ(TLB)内に記憶する。メモリがアクセスされる時に、TLBは、まず、プロセッサがメモリにアクセスすることの指示メッセージを受け取る。以下では、以下を含めて図9Aおよび図9Bに具体的に示されているように、プロセッサが第1のメモリにアクセスすることの指示メッセージをTLBが受け取った後に、TLBがメモリおよびキャッシュと交換し、キャッシュがプリフェッチングデバイスと交換する例を使用することによって、特定の説明を与え続ける。
【０１０６】
901  TLBは、第1のメモリにアクセスすることの指示メッセージを受け取り、この指示メッセージは、第1の仮想アドレスを搬送する。
【０１０７】
第1のメモリの「第1」が、特別な意味を有しておらず、「第1」が、第1の仮想アドレスに対応する第1の物理アドレスによってポイントされるメモリを表すのみであることに留意されたい。
【０１０８】
902  TLBは、第1の仮想アドレスに従って、第1の仮想アドレスを第1の物理アドレスにマッピングするマッピング関係を検索する。
【０１０９】
903  マッピング関係が存在しない場合には、第2の指示メッセージをメモリに送り、第2の指示メッセージは、第1の仮想アドレスを搬送し、その結果、メモリは、第1の仮想アドレスに従って、第1の仮想アドレスに対応するマッピング関係をトランスレーションルックアサイドバッファ(TLB)に送るようになり、このマッピング関係は、第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属する第1の物理ページのページ番号と、第1の物理ページの隣接性情報とを含み、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【０１１０】
904  メモリが、第2の指示メッセージを受け取る。
【０１１１】
905  メモリが、第1の仮想アドレスに従ってマッピング関係を検索する。
【０１１２】
906  メモリが、マッピング関係をTLBに送る。
【０１１３】
907  TLBが、メモリによって送られたマッピング関係を受け取る。
【０１１４】
確かに、TLBが、メモリによって送られたマッピング関係を受け取った後に、第1の仮想アドレスと第1の物理アドレスとの間のマッピング関係は、TLB内に存在する。
【０１１５】
908  TLBが、マッピング関係に従って、第1の仮想アドレスに対応する第1の物理アドレスを獲得する。
【０１１６】
909  TLBが、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とをキャッシュに送る。
【０１１７】
910  キャッシュは、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とを受け取る。
【０１１８】
911  キャッシュが、第1の物理アドレスのデータを記憶していない場合には、プロセッサが第1の物理アドレスのデータをメモリのメモリから獲得するようにするために、第1の物理アドレスをメモリに送る。
【０１１９】
912  メモリが、キャッシュによって送られた第1の物理アドレスを受け取る。
【０１２０】
913  TLBが、物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送り、この指示メッセージは、第1の物理アドレスと、第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送する。
【０１２１】
具体的には、物理アドレスが、キャッシュ内に欠けている時に、隣接性情報は、データフローと一緒にプリフェッチングデバイスに入ることができ、その結果、プリフェッチング機構のトレーニングが完了した後に、プリフェッチングアドレスが属する物理ページのページ番号が、第1の物理ページのページ番号とは異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合に、プリフェッチングデバイスは、プリフェッチングアドレスにあるデータをプリフェッチし、これは、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率をさらに改善する。
【０１２２】
第1の物理アドレスをメモリに送るステップ911と、物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送るステップ913とが、固定されたシーケンスを有するのではなく、ステップ911とステップ913との両方が、物理アドレスのデータが記憶されていないことが判定された後に実行されるアクションであり、ステップ911とステップ913とのシーケンスが、本発明のこの実施形態において特に限定されないことに留意されたい。
【０１２３】
914  プリフェッチングデバイスは、物理アドレスが欠けていることの、キャッシュによって送られた指示メッセージを受け取る。
【０１２４】
具体的には、プリフェッチングデバイスが、物理アドレスが欠けていることの、キャッシュによって送られた指示メッセージを受け取った後の、プリフェッチングデバイス側でのクロスページプリフェッチング方法は、図10に具体的に示されており、以下を含む。
【０１２５】
1001  プリフェッチングデバイスが、キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取り、指示メッセージは、マッピング先の第1の物理アドレスと、第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送し、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【０１２６】
1002  圧縮アルゴリズムおよび第1の物理アドレスに従って第1の物理アドレスの第1のインデックス情報を獲得する。
【０１２７】
1003  第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、第1の物理ページのページ番号と一致しない場合に、第1の物理ページのページ番号および第1の物理ページの隣接性情報を、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に記憶する。
【０１２８】
1004  第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、第1の物理ページのページ番号と一致する場合に、プリフェッチングデバイスのプリフェッチング機構のトレーニングが完了するかどうかを判定する。
【０１２９】
1005  プリフェッチング機構のトレーニングが完了する場合に、第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得する。
【０１３０】
1006  プリフェッチングアドレスが属する物理ページのページ番号が第1の物理ページのページ番号と異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合に、プリフェッチングアドレスにあるデータをプリフェッチする。
【０１３１】
具体的には、プリフェッチングデバイスを使用することによって実行されるクロスページプリフェッチング方法に関して、実施形態1の説明を参照することができ、詳細は、本発明のこの実施形態においてもう一度説明はされない。
【０１３２】
結論として、実施形態2では、クロスページプリフェッチング方法が、図7に示されたクロスページプリフェッチングシステムの下で詳細に説明され、以下は、図11に具体的に示されているように、クロスページプリフェッチングの手順全体を説明するための例示的な動作を与える。
【０１３３】
図11では、仮想メモリ内の4つの隣接する仮想ページが、物理メモリ内の物理ページ1、物理ページ2、物理ページ3、および物理ページ5に別々にマッピングされ、物理ページの隣接性情報は、「1」および「0」によって表され、「1」は、物理ページが隣接することを示し、「0」は、物理ページが隣接しないことを示す。図11から、そのページ番号が1および2である物理ページが隣接し、そのページ番号が3である物理ページが隣接しないことが明らかにわかる。
【０１３４】
まず、オペレーティングシステムが、物理ページの隣接性情報を物理メモリに記憶し、次に、TLBが、物理ページの隣接性情報をTLBエントリに記憶し、最後に、プリフェッチングデバイスが、物理ページの隣接性情報をプリフェッチングデバイスに記憶し、物理ページの隣接性情報に従って、クロスページプリフェッチングを実行すべきかどうかを判定する。
【０１３５】
本発明のこの実施形態は、クロスページプリフェッチング方法を提供する。この方法は、プロセッサによって、メモリ空間を申請する第1の指示メッセージを受け取るステップと、プロセッサによって、第1の指示メッセージ内で搬送されるメモリ空間の容量情報に従って物理メモリ空間および仮想メモリ空間を割り振るステップと、プロセッサによって、仮想メモリ空間と物理メモリ空間との間のマッピング関係を確立するステップであって、マッピング関係は、第1の物理ページのページ番号と、第1の物理ページの隣接性情報とを含み、第1の物理ページは、仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む、確立するステップと、最後に、プロセッサによって、マッピング関係をメモリに送るステップとを含む。トランスレーションルックアサイドバッファ(TLB)が、第1の仮想アドレスに対応するマッピング関係が欠けていることの第2の指示メッセージをメモリに送る時に、TLBが第1の物理ページの隣接性情報を含むマッピング関係を受け取るようにするために、メモリは、第1の物理ページの隣接性情報を含み、第1の仮想アドレスに対応するマッピング関係をTLBに送ることができ、第1の仮想アドレスと第1の物理アドレスとの間のトランスレーションが完了した後に、TLBは、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とをキャッシュに送る。物理アドレスが、キャッシュ内に欠けている時に、隣接性情報は、データフローと一緒にプリフェッチングデバイスに入ることができ、その結果、プリフェッチング機構のトレーニングが完了し、プリフェッチングデバイスがプリフェッチングアドレスを獲得した後に、プリフェッチングアドレスが属する物理ページのページ番号が、第1の物理ページのページ番号とは異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合に、プリフェッチングデバイスは、プリフェッチングアドレスにあるデータをプリフェッチし、これは、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率をさらに改善する。
【０１３６】
［実施形態3］
本発明の実施形態は、図12に具体的に示されたプリフェッチングデバイス1200を提供し、プリフェッチングデバイス1200は、受取ユニット1201、獲得ユニット1202、およびプリフェッチングユニット1203を含む。
【０１３７】
受取ユニット1201は、キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取るように構成され、指示メッセージは、マッピング先の第1の物理アドレスと、第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送し、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【０１３８】
獲得ユニット1202は、第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得するように構成される。
【０１３９】
プリフェッチングユニット1203は、プリフェッチングアドレスが属する物理ページのページ番号が第1の物理ページのページ番号と異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合に、プリフェッチングアドレスにあるデータをプリフェッチするように構成される。
【０１４０】
さらに、図13に示されているように、プリフェッチングデバイスは、ストレージユニット1204をさらに含む。
【０１４１】
ストレージユニット1204は、受取ユニット1201が、キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取った後に、第1の物理アドレスに対応し、プリフェッチング情報テーブル内にあるエントリ内に、第1の物理アドレスが属する第1の物理ページの、指示メッセージ内で搬送される隣接性情報を記憶するように構成され、プリフェッチング情報テーブルは、プリフェッチングデバイス内で記憶される。
【０１４２】
オプションで、図14に示されているように、プリフェッチングデバイスは、判定ユニット1205、実行ユニット1206、およびストレージユニット1204をさらに含む。
【０１４３】
獲得ユニット1202は、第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得する前に、圧縮アルゴリズムおよび第1の物理アドレスに従って第1の物理アドレスの第1のインデックス情報を獲得するように構成される。
【０１４４】
判定ユニット1205は、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、第1の物理ページのページ番号と一致する場合に、プリフェッチングデバイスのプリフェッチング機構のトレーニングが完了するかどうかを判定するように構成され、プリフェッチング情報テーブルは、プリフェッチングデバイス内で記憶される。
【０１４５】
実行ユニット1206は、プリフェッチング機構のトレーニングが完了する場合に、プリフェッチングアドレスを獲得するステップを実行するように構成される。
【０１４６】
ストレージユニット1204は、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、第1の物理ページのページ番号と一致しない場合に、第1の物理ページのページ番号および第1の物理ページの隣接性情報を、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に記憶するように構成される。
【０１４７】
さらに、第1の物理アドレスの第1のインデックス情報は、
第1の物理アドレスが属する第1の物理ページのページ番号と、
第1の物理アドレスが属する第1の物理ページのページ番号の圧縮値と、
第1の物理アドレスが属する第1の物理ページのページ番号のハッシュ値と
という情報のうちの少なくとも1つを特に含む。
【０１４８】
具体的には、クロスページプリフェッチングが実行される時に、プリフェッチングデバイスの動作プロセスに関して、実施形態1および実施形態2の説明を参照することができ、これを、本発明のこの実施形態で繰り返して説明することはしない。
【０１４９】
本発明のこの実施形態は、プリフェッチングデバイスを提供し、このプリフェッチングデバイスは、受取ユニット、獲得ユニット、およびプリフェッチングユニットを含む。受取ユニットは、キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取るように構成され、指示メッセージは、マッピング先の第1の物理アドレスと、第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送し、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含み、獲得ユニットは、第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得するように構成され、プリフェッチングユニットは、プリフェッチングアドレスが属する物理ページのページ番号が第1の物理ページのページ番号と異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合に、プリフェッチングアドレスにあるデータをプリフェッチするように構成される。
【０１５０】
プリフェッチングアドレスがページをまたぐ時に、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定された後に、プリフェッチングデバイスが、プリフェッチングアドレスのデータをプリフェッチするため、これが、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、さらに、メモリアクセスの効率を改善する。
【０１５１】
［実施形態4］
本発明の実施形態は、図15に具体的に示されたプロセッサ1500を提供し、プロセッサ1500は、受取ユニット1501、割振りユニット1502、確立ユニット1503、および送出ユニット1504を含む。
【０１５２】
受取ユニット1501は、メモリ空間を申請する第1の指示メッセージを受け取るように構成され、第1の指示メッセージは、メモリ空間の容量情報を搬送する。
【０１５３】
割振りユニット1502は、メモリ空間の容量情報に従って物理メモリ空間および仮想メモリ空間を割り振るように構成される。
【０１５４】
確立ユニット1503は、仮想メモリ空間と物理メモリ空間との間のマッピング関係を確立するように構成され、マッピング関係は、第1の物理ページのページ番号と、第1の物理ページの隣接性情報とを含み、第1の物理ページは、仮想メモリ空間内に含まれる第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【０１５５】
送出ユニット1504は、メモリがマッピング関係を記憶するようにするために、マッピング関係をメモリに送るように構成される。
【０１５６】
具体的には、クロスページプリフェッチングが実行される時に、プロセッサの動作プロセスに関して、実施形態1および実施形態2の説明を参照することができ、これを、本発明のこの実施形態で繰り返して説明することはしない。
【０１５７】
本発明のこの実施形態で提供されるプロセッサに基づいて、プロセッサによって確立されるマッピング関係が、マッピングされる第1の物理ページの隣接性情報を含むので、プロセッサがマッピング関係をメモリに送った後には、メモリ内のマッピング関係は、第1の物理ページの隣接性情報をも含み、トランスレーションルックアサイドバッファ(TLB)によってメモリから獲得されるマッピング関係も、第1の物理ページの隣接性情報を含み、物理アドレスがキャッシュ内に欠けている時には、隣接性情報は、データフローと一緒にプリフェッチングデバイスに入ることができ、その結果、プリフェッチング機構のトレーニングが完了した後に、プリフェッチングデバイスは、プリフェッチングアドレスを獲得し、プリフェッチングアドレスがページをまたぐと判定するようになり、第1の物理ページの隣接性情報に従って、現在のフェッチアドレスが属する第1の物理ページが隣接すると判定された後には、プリフェッチングデバイスは、プリフェッチングアドレスのデータをプリフェッチし、これは、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、さらに、メモリアクセスの効率を改善する。
【０１５８】
［実施形態5］
本発明のこの実施形態は、図16に具体的に示されたトランスレーションルックアサイドバッファ(TLB)1600を提供し、TLB1600は、第1の送出ユニット1601、受取ユニット1602、獲得ユニット1603、および第2の送出ユニット1604を含む。
【０１５９】
第1の送出ユニット1601は、第2の指示メッセージをメモリに送るように構成され、第2の指示メッセージは、メモリが第1の仮想アドレスに従って第1の仮想アドレスに対応するマッピング関係をトランスレーションルックアサイドバッファ(TLB)に送るようにするために第1の仮想アドレスを搬送し、マッピング関係は、第1の物理ページのページ番号と第1の物理ページの隣接性情報とを含み、第1の物理ページは、第1の仮想アドレスに対応するマッピング先の第1の物理アドレスが属するページであり、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【０１６０】
受取ユニット1602は、メモリによって送られたマッピング関係を受け取るように構成される。
【０１６１】
獲得ユニット1603は、マッピング関係に従って、第1の仮想アドレスに対応する第1の物理アドレスを獲得するように構成される。
【０１６２】
第2の送出ユニット1604は、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接情報とをキャッシュに送るように構成される。
【０１６３】
具体的には、クロスページプリフェッチングが実行される時に、トランスレーションルックアサイドバッファの動作プロセスに関して、実施形態1および実施形態2の説明を参照することができ、これを、本発明のこの実施形態で繰り返して説明することはしない。
【０１６４】
本発明のこの実施形態のトランスレーションルックアサイドバッファ(TLB)では、マッピング関係が欠けている時に、メモリから獲得されるマッピング関係が、第1の物理ページの隣接性情報を含むので、TLBが、マッピング関係に従って仮想アドレスと物理アドレスとの間のトランスレーションを完了した後に、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とをキャッシュに送る。物理アドレスが、キャッシュ内に欠けている時に、隣接性情報は、データフローと一緒にプリフェッチングデバイスに入ることができ、その結果、プリフェッチング機構のトレーニングが完了し、プリフェッチングデバイスが、プリフェッチングアドレスを獲得し、プリフェッチングアドレスがページをまたぐと判定した後に、第1の物理ページの隣接性情報に従って、現在のフェッチアドレス第1の物理ページが隣接すると判定される場合に、プリフェッチングデバイスは、プリフェッチングアドレスにあるデータをプリフェッチし、これは、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率をさらに改善する。
【０１６５】
［実施形態6］
本発明の実施形態は、図17に具体的に示されたキャッシュ1700を提供し、キャッシュ1700は、受取ユニット1701、第1の送出ユニット1702、および第2の送出ユニット1703を含む。
【０１６６】
受取ユニット1701は、トランスレーションルックアサイドバッファ(TLB)によって送られた、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とを受け取るように構成され、第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【０１６７】
第1の送出ユニット1702は、キャッシュが第1の物理アドレスのデータを記憶していない場合に、プロセッサが第1の物理アドレスのデータをメモリから獲得するようにするために、第1の物理アドレスをメモリに送るように構成される。
【０１６８】
第2の送出ユニット1703は、物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送るように構成され、指示メッセージは、第1の物理アドレスと第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送する。
【０１６９】
具体的には、クロスページプリフェッチングが実行される時に、キャッシュの動作プロセスに関して、実施形態1および実施形態2の説明を参照することができ、これを、本発明のこの実施形態で繰り返して説明することはしない。
【０１７０】
本発明のこの実施形態で提供されるキャッシュ内では、物理アドレスが欠けている時に、一方では、キャッシュは、第1の物理アドレスをメモリに送ることができ、その結果、プロセッサが、メモリのメモリから第1の物理アドレスのデータを獲得するようになり、もう一方では、キャッシュは、物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイスに送り、ここで、隣接性情報が、データフローと一緒にプリフェッチングデバイスに入ることができ、その結果、プリフェッチング機構のトレーニングが完了した後に、プリフェッチングデバイスは、プリフェッチングアドレスを獲得し、プリフェッチングアドレスがページをまたぐと判定し、これを判定した後に、第1の物理ページの隣接性情報に従って、現在のフェッチアドレスが属する第1の物理ページが隣接すると判定し、プリフェッチングデバイスは、プリフェッチングアドレスにあるデータをプリフェッチし、これは、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率をさらに改善する。
【０１７１】
［実施形態7］
本発明の実施形態は、図18に具体的に示されたクロスページプリフェッチングシステム1800を提供し、このクロスページプリフェッチングシステムは、メモリ1801、プリフェッチングデバイス1200、プロセッサ1500、トランスレーションルックアサイドバッファ(TLB)1600、およびキャッシュ1700を含む。
【０１７２】
プロセッサ1500が、第1の物理ページの隣接性情報を含むマッピング関係をメモリ1801に送った後に、メモリ1801は、そのマッピング関係を記憶する。第1の仮想アドレスが物理アドレスにマッピングされるマッピング関係を、トランスレーションルックアサイドバッファ(TLB)1600内で見つけることができない時には、マッピング関係は、メモリから獲得され、TLB1600は、第1の物理ページの、マッピング関係内の第1の物理アドレスと隣接性情報とをキャッシュ1700に送り、キャッシュ1700が、第1の物理アドレスのデータを記憶していない場合には、キャッシュ1700は、第1の物理アドレスをメモリ1801に送り、その結果、第1の物理アドレスのデータが、メモリ1801のメモリから獲得されるようになり、さらに、キャッシュ1700は、物理アドレスが欠けていることの指示メッセージをプリフェッチングデバイス1200にさらに送り、この指示メッセージは、マッピング先の第1の物理アドレスと、その第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送する。第1の物理ページの隣接性情報は、第1の仮想ページにマッピングされる物理ページが、第1の仮想ページの次に隣接する仮想ページにマッピングされるかどうかを示すのに使用され、第1の仮想ページは、第1の物理アドレスにマッピングされる第1の仮想アドレスを含む。
【０１７３】
プリフェッチングデバイス、プロセッサ、トランスレーションルックアサイドバッファ(TLB)、およびキャッシュの特定の動作プロセスに関して、実施形態1および実施形態2の説明を参照することができ、これを、本発明のこの実施形態で繰り返して説明することはしない。
【０１７４】
本発明のこの実施形態は、クロスページプリフェッチングシステムを提供し、このクロスページプリフェッチングシステムは、メモリ、実施形態3によるプリフェッチングデバイス、実施形態4によるプロセッサ、実施形態5によるトランスレーションルックアサイドバッファ(TLB)、および実施形態6によるキャッシュを含む。プロセッサによって確立されるマッピング関係が、マッピングされる第1の物理ページの隣接性情報を含むので、プロセッサがマッピング関係をメモリに送った後に、メモリ内のマッピング関係は、第1の物理ページの隣接性情報をも含み、トランスレーションルックアサイドバッファ(TLB)によってメモリから獲得されるマッピング関係も、第1の物理ページの隣接性情報を含み、物理アドレスがキャッシュ内に欠けている時には、第1の物理ページの隣接性情報は、データフローと一緒にプリフェッチングデバイスに入ることができ、その結果、プリフェッチング機構のトレーニングが完了した後に、プリフェッチングデバイスは、プリフェッチングアドレスを獲得し、プリフェッチングアドレスがページをまたぐと判定し、第1の物理ページの隣接性情報に従って、現在のフェッチアドレスが属する第1の物理ページが隣接すると判定された後に、プリフェッチングデバイスは、プリフェッチングアドレスにあるデータをプリフェッチし、これは、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率をさらに改善する。
【０１７５】
説明された装置実施形態が、単に例示であることに留意されたい。別々の部分として説明されたユニットは、物理的に別々であってもなくてもよく、複数のユニットとして表示された部分が、物理ユニットであってもなくてもよく、1つの位置に配置されてもよく、複数のネットワークユニット上に分散されてもよい。モジュールの一部またはすべてを、諸実施形態の解決策の目的を達成するための実際の必要に従って選択することができる。さらに、本発明によって提供される装置実施形態の添付図面では、モジュールの間の接続関係は、モジュールがお互いとの通信接続を有することを示し、この通信接続は、1つまたは複数の通信バス、または信号ケーブルとして具体的に実施され得る。当業者は、創作的労力なしで本発明の実施形態を理解し、実施することができる。
【０１７６】
前述の実施の形の説明に基づいて、当業者は、必要な万能ハードウェアに加えてソフトウェアによって、または専用集積回路、専用CPU、専用メモリ、専用コンポーネント、および類似物を含む専用ハードウェアによって本発明を実施できることを明瞭に理解することができる。一般に、コンピュータプログラムによって実行できるすべての機能は、対応するハードウェアを使用することによって簡単に実施することができる。さらに、同一の機能を達成するのに使用される特定のハードウェア構造は、さまざまな形、たとえば、アナログ回路、デジタル回路、専用回路、または類似物の形とすることができる。しかし、本発明に関して、ソフトウェアプログラム実施態様は、ほとんどの場合によりよい実施の形である。そのような理解に基づいて、本発明の技術的解決策を本質的に、または従来技術に寄与する部分を、ソフトウェア製品の形で実施することができる。ソフトウェア製品は、コンピュータの、フロッピー（登録商標）ディスク、USBフラッシュドライブ、リムーバブルハードディスク、読取専用メモリ(ROM、Read-Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク、または光ディスクなどの可読記憶媒体内に記憶され、本発明の諸実施形態で説明された方法を実行するようにコンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワークデバイス、および類似物とすることができる)に指示する複数の命令を含む。
【０１７７】
前述の説明は、単に、本発明の特定の実施の形であって、本発明の保護範囲を限定することは意図されていない。本発明で開示された技術的範囲内で当業者によってたやすく考え出されるすべての変形または置換は、本発明の保護範囲に含まれなければならない。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従わなければならない。
【符号の説明】
【０１７８】
1200  プリフェッチングデバイス
1201  受取ユニット
1202  獲得ユニット
1203  プリフェッチングユニット
1204  ストレージユニット
1205  判定ユニット
1206  実行ユニット
1500  プロセッサ
1501  受取ユニット
1502  割振りユニット
1503  確立ユニット
1504  送出ユニット
1600  トランスレーションルックアサイドバッファ(TLB)
1601  第1の送出ユニット
1602  受取ユニット
1603  獲得ユニット
1604  第2の送出ユニット
1700  キャッシュ
1701  受取ユニット
1702  第1の送出ユニット
1703  第2の送出ユニット
1800  クロスページプリフェッチングシステム
1801  メモリ
【図１】
2016520916.tif 000003
【図２】
2016520916.tif 000004
【図３】
2016520916.tif 000005
【図４】
2016520916.tif 000006
【図５】
2016520916.tif 000007
【図６】
2016520916.tif 000008
【図７】
2016520916.tif 000009
【図８】
2016520916.tif 000010
【図９Ａ】
2016520916.tif 000011
【図９Ｂ】
2016520916.tif 000012
【図１０】
2016520916.tif 000013
【図１１】
2016520916.tif 000014
【図１２】
2016520916.tif 000015
【図１３】
2016520916.tif 000016
【図１４】
2016520916.tif 000017
【図１５】
2016520916.tif 000018
【図１６】
2016520916.tif 000019
【図１７】
2016520916.tif 000020
【図１８】
2016520916.tif 000021
【手続補正書】
【提出日】平成27年12月10日(2015.12.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取るステップであって、前記指示メッセージは、マッピング先の第1の物理アドレスと、前記第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送し、前記第1の物理ページの前記隣接性情報は、第1の仮想ページにマッピングされる物理ページが前記第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、前記第1の仮想ページは、前記第1の物理アドレスにマッピングされる第1の仮想アドレスを含む、受け取るステップと、
前記第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得するステップと、
前記プリフェッチングアドレスが属する物理ページのページ番号が前記第1の物理ページのページ番号と異なり、前記第1の物理ページの前記隣接性情報に従って、前記第1の物理ページの前記ページ番号と前記プリフェッチングアドレスが属する前記物理ページの前記ページ番号とが隣接すると判定される場合に、前記プリフェッチングアドレスにあるデータをプリフェッチするステップと
を含む、クロスページプリフェッチング方法。
【請求項２】
キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取る前記ステップの後に、前記方法は、
前記第1の物理アドレスに対応し、プリフェッチング情報テーブル内にあるエントリ内に、前記第1の物理アドレスが属する前記第1の物理ページの、前記指示メッセージ内で搬送される前記隣接性情報を記憶するステップであって、前記プリフェッチング情報テーブルは、前記プリフェッチングデバイス内で記憶される、記憶するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得する前記ステップの前に、前記方法は、
圧縮アルゴリズムおよび前記第1の物理アドレスに従って前記第1の物理アドレスの第1のインデックス情報を獲得するステップと、
前記第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、前記第1の物理ページの前記ページ番号と一致する場合に、前記プリフェッチングデバイスのプリフェッチング機構のトレーニングが完了するかどうかを判定するステップであって、前記プリフェッチング情報テーブルは、前記プリフェッチングデバイス内で記憶される、判定するステップと、
前記プリフェッチング機構の前記トレーニングが完了する場合に、プリフェッチングアドレスを獲得する前記ステップを実行するステップと、
前記第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、前記物理ページの前記ページ番号が、前記第1の物理ページの前記ページ番号と一致しない場合に、前記第1の物理ページの前記ページ番号および前記第1の物理ページの前記隣接性情報を、前記第1のインデックス情報に対応し、前記プリフェッチング情報テーブル内にある前記エントリ内に記憶するステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
前記第1の物理アドレスの前記第1のインデックス情報は、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号と、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号の圧縮値と、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号のハッシュ値と
という情報のうちの少なくとも1つを特に含む、請求項3に記載の方法。
【請求項５】
受取ユニット、獲得ユニット、およびプリフェッチングユニットを含むプリフェッチングデバイスであって、
前記受取ユニットは、キャッシュによって送られた、物理アドレスが欠けていることの指示メッセージを受け取るように構成され、前記指示メッセージは、マッピング先の第1の物理アドレスと、前記第1の物理アドレスが属する第1の物理ページの隣接性情報とを搬送し、前記第1の物理ページの前記隣接性情報は、第1の仮想ページにマッピングされる物理ページが前記第1の仮想ページの次に隣接する仮想ページにマッピングされる物理ページと隣接するかどうかを示すのに使用され、前記第1の仮想ページは、前記第1の物理アドレスにマッピングされる第1の仮想アドレスを含み、
前記獲得ユニットは、前記第1の物理アドレスと前記プリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得するように構成され、
前記プリフェッチングユニットは、前記プリフェッチングアドレスが属する物理ページのページ番号が前記第1の物理ページのページ番号と異なり、前記第1の物理ページの前記隣接性情報に従って、前記第1の物理ページの前記ページ番号と前記プリフェッチングアドレスが属する前記物理ページの前記ページ番号とが隣接すると判定される場合に、前記プリフェッチングアドレスにあるデータをプリフェッチするように構成される
プリフェッチングデバイス。
【請求項６】
前記プリフェッチングデバイスは、ストレージユニットをさらに含み、
前記ストレージユニットは、前記受取ユニットが、前記キャッシュによって送られた、物理アドレスが欠けていることの前記指示メッセージを受け取った後に、前記第1の物理アドレスに対応し、プリフェッチング情報テーブル内にあるエントリ内に、前記第1の物理アドレスが属する前記第1の物理ページの、前記指示メッセージ内で搬送される前記隣接性情報を記憶するように構成され、前記プリフェッチング情報テーブルは、前記プリフェッチングデバイス内で記憶される
請求項5に記載のプリフェッチングデバイス。
【請求項７】
前記プリフェッチングデバイスは、判定ユニット、実行ユニット、およびストレージユニットをさらに含み、
前記獲得ユニットが前記第1の物理アドレスとプリフェッチングデバイス内に記憶された前記ステップサイズとに従って前記プリフェッチングアドレスを獲得する前に、圧縮アルゴリズムおよび前記第1の物理アドレスに従って前記第1の物理アドレスの第1のインデックス情報を獲得するようにさらに構成され、
前記判定ユニットは、前記第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、物理ページのページ番号が、前記第1の物理ページの前記ページ番号と一致する場合に、前記プリフェッチングデバイスのプリフェッチング機構のトレーニングが完了するかどうかを判定するように構成され、前記プリフェッチング情報テーブルは、前記プリフェッチングデバイス内で記憶され、
前記実行ユニットは、前記プリフェッチング機構の前記トレーニングが完了する場合に、プリフェッチングアドレスを獲得する前記ステップを実行するように構成され、
前記ストレージユニットは、前記第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内に含まれる、前記物理ページの前記ページ番号が、前記第1の物理ページの前記ページ番号と一致しない場合に、前記第1の物理ページの前記ページ番号および前記第1の物理ページの前記隣接性情報を、前記第1のインデックス情報に対応し、前記プリフェッチング情報テーブル内にある前記エントリ内に記憶するように構成される
請求項5に記載のプリフェッチングデバイス。
【請求項８】
前記第1の物理アドレスの前記第1のインデックス情報は、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号と、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号の圧縮値と、
前記第1の物理アドレスが属する前記第1の物理ページの前記ページ番号のハッシュ値と
という情報のうちの少なくとも1つを特に含む、請求項7に記載のプリフェッチングデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】削除
【補正の内容】
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
【図１】プリフェッチングデバイス内のプリフェッチング構造の概略図である。
【図２】本発明の実施形態によるクロスページプリフェッチング方法の概略図である。
【図３】本発明の実施形態によるプリフェッチング機構をトレーニングする方法の概略図である。
【図４】本発明の実施形態によるクロスページプリフェッチング方法の別の概略図である。
【図５】本発明の実施形態によるクロスページプリフェッチング方法のさらに別の概略図である。
【図６】本発明の実施形態によるクロスページプリフェッチング方法のさらに別の概略図である。
【図７】本発明の実施形態によるクロスページプリフェッチングシステムの概略図である。
【図８】本発明の実施形態によるクロスページプリフェッチングシステムに含まれるプロセッサおよびメモリの相互作用図である。
【図９Ａ】本発明の実施形態によるクロスページプリフェッチングシステムに含まれるメモリ、トランスレーションルックアサイドバッファ、キャッシュ、およびプリフェッチングデバイスの相互作用図の前半を示す図である。
【図９Ｂ】本発明の実施形態によるクロスページプリフェッチングシステムに含まれるメモリ、トランスレーションルックアサイドバッファ、キャッシュ、およびプリフェッチングデバイスの相互作用図の後半を示す図である。
【図１０】本発明の実施形態によるクロスページプリフェッチングシステム内のプリフェッチングデバイスの動作流れ図である。
【図１１】クロスページプリフェッチングの例の概略流れ図である。
【図１２】本発明の実施形態によるプリフェッチングデバイスの概略図である。
【図１３】本発明の実施形態によるプリフェッチングデバイスの別の概略図である。
【図１４】本発明の実施形態によるプリフェッチングデバイスのさらに別の概略図である。
【図１５】本発明の実施形態によるプロセッサの概略図である。
【図１６】本発明の実施形態によるトランスレーションルックアサイドバッファの概略図である。
【図１７】本発明の実施形態によるキャッシュの概略図である。
【図１８】本発明の実施形態によるクロスページプリフェッチングシステムの概略図である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５２
【補正方法】変更
【補正の内容】
【００５２】
具体的には、ステップ201の説明部分を参照すると、第1のインデックス情報に対応し、プリフェッチング情報テーブル内にあるエントリ内の物理ページのページ番号が、第1の物理ページのページ番号と一致し、プリフェッチング機構のトレーニングが完了する場合に、プリフェッチングデバイスは、第1の物理アドレスとプリフェッチングデバイス内に記憶されたステップサイズとに従ってプリフェッチングアドレスを獲得することができる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
本発明のこの実施形態では、プリフェッチングアドレスがページにまたがる時に、クロスページプリフェッチングは、現在のフェッチアドレスの物理ページが隣接する場合にさらに実行され、これが、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率をさらに改善する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
401  メモリ空間を申請する第1の指示メッセージを受け取り、第1の指示メッセージは、メモリ空間の容量情報を搬送する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
具体的には、アプリケーションプログラムがロードされる時に、プロセッサは、まず、アプリケーションプログラムがメモリ空間を申請することの第1の指示メッセージを受け取り、第1の指示メッセージは、メモリ空間の容量情報を搬送する。次に、プロセッサは、メモリ空間の容量情報に従って、対応する物理メモリ空間および仮想メモリ空間を割り振る。物理メモリ空間および仮想メモリ空間が割り振られる時に、第1の指示メッセージが仮想アドレスに関する情報を搬送する場合には、仮想メモリ空間の対応するサイズが、仮想アドレスに従って利用できるようにされ、第1の指示メッセージが仮想アドレスに関する情報を搬送しない場合には、プロセッサは、適当な仮想メモリ空間をランダムに割り振り、これに対応して、プロセッサは、適当な物理メモリ空間をランダムに割り振る。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
具体的には、マッピング関係は、一般に、メモリ内に記憶されるが、仮想アドレスと物理アドレスとの間のトランスレーションの速度を改善するために、複数の頻繁に使用されるマッピング関係または近い将来に使用されるマッピング関係を、トランスレーションルックアサイドバッファ(TLB)内に記憶することができる。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１２１
【補正方法】変更
【補正の内容】
【０１２１】
具体的には、物理アドレスが、キャッシュ内に欠けている時に、隣接性情報は、データフローと一緒にプリフェッチングデバイスに入ることができ、その結果、プリフェッチング機構のトレーニングが完了し、プリフェッチングデバイスがプリフェッチングアドレスを獲得した後に、プリフェッチングアドレスが属する物理ページのページ番号が、第1の物理ページのページ番号とは異なり、第1の物理ページの隣接性情報に従って、第1の物理ページが隣接すると判定される場合に、プリフェッチングデバイスは、プリフェッチングアドレスにあるデータをプリフェッチし、これは、クロスページプリフェッチングが判定された後にプリフェッチングが停止されるが故のプリフェッチングデバイスの低いヒットレシオという従来技術の問題を解決し、プリフェッチングデバイスのプリフェッチングヒットレシオを改善し、メモリアクセスの効率をさらに改善する。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１３３
【補正方法】変更
【補正の内容】
【０１３３】
図11では、仮想メモリ内の4つの隣接する仮想ページが、物理メモリ内の物理ページ1、物理ページ2、物理ページ3、および物理ページ5に別々にマッピングされ、物理ページの隣接性情報は、「1」および「0」によって表され、「1」は、物理ページが隣接することを示し、「0」は、物理ページが隣接しないことを示す。図11から、そのページ番号が1および2である物理ページが隣接し、そのページ番号が3および5である物理ページが隣接しないことが明らかにわかる。
【国際調査報告】
2016520916.tif 000022
2016520916.tif 000023
2016520916.tif 000024
2016520916.tif 000025