(57)【要約】６４ビットのアクセスアドレスの履歴を記録するキューの１つのエントリ２００に、１つのページアドレス２０１（ビット６３から２２）と、２つのページ内アドレス２０２，２０４（ビット２１から８）と、２つの４ビットからなる登録領域内アクセス履歴２０３，２０５を備える。登録領域内アクセス履歴２０３，２０５内の１つのビットは、一次キャッシュの登録単位である６４バイトの領域に対応し、その６４バイト領域へのアクセスがあったか否かを示す。ページアドレス２０１と２つのページ内アドレス２０２，２０４は、二次キャッシュの登録単位である２５６バイトの２つ分（５１２バイト）の領域に対応する。そして、ページアドレス２０１と２つのページ内アドレス２０２，２０４に対応する５１２バイトの領域の中心近傍に、最近のアクセスアドレスが位置するように、ページアドレス２０１と２つのページ内アドレス２０２，２０４を適宜更新する。
2008155815.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
データを記憶した第１記憶部と、
該プロセッサで処理するデータを該第１記憶部からフェッチする第２記憶部と、
該第２記憶部にブロック単位で保持したデータのアクセス履歴を管理するエントリ保持部と、
該プロセッサのアクセス先が現ブロックから直前にアクセスしたブロックに遷移するとき、該エントリ保持部に保持する現ブロックへのアクセス履歴を更新させる制御部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
該エントリ保持部は、該プロセッサがアクセスする該ブロックの遷移方向を示すアクセス方向情報を保持することを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置において、
該エントリ保持部は、複数のアドレスとアクセス方向情報とを対応付け、エントリ情報として保持することを特徴とする情報処理装置。
【請求項４】
請求項１に記載の情報処理装置において、  
該制御部は、該エントリ保持部が保持する複数のブロックの中から一部のブロックを更新することを特徴とする情報処理装置。
【請求項５】
請求項４に記載の情報処理装置において、
該制御部は、更新したアクセス履歴に対応するアドレス範囲と更新前のアクセス履歴に対応するアドレス範囲を保持することを特徴とする情報処理装置。
【請求項６】
請求項１に記載の情報処理装置において、
該エントリ保持部は該ブロックに対応するアドレス範囲を複数有し、
該制御部は、該プロセッサのアクセスするブロックの遷移に応じて、該エントリ保持部に保持するアドレス範囲を更新することを特徴とする情報処理装置。
【請求項７】
請求項６に記載の情報処理装置において、
該制御部は、該アドレス範囲の中で一部のアドレス範囲を更新することを特徴とする情報処理装置。
【請求項８】
請求項７に記載の情報処理装置において、
該制御部は、更新したアドレス範囲と更新前のアドレス範囲を保持することを特徴とする情報処理装置。
【請求項９】
請求項２に記載の情報処理装置において
該エントリ保持部は、該ブロックと該アクセス方向情報とを対応付け、エントリ情報として保持することを特徴とする情報処理装置。
【請求項１０】
請求項９に記載の情報処理装置において、
該制御部は、該プロセッサがアクセスするデータのアドレスが該ブロックに含まれると判別する複数のエントリ情報を検出し、検出した複数のエントリ情報の該アクセス方向情報が互いに異なると判別した場合、該アクセス方向情報をリセットすることを特徴とする情報処理装置。
【請求項１１】
請求項９に記載の情報処理装置において、
該アドレス範囲は該第２記憶部における連続アドレスの集合であって、該エントリ情報はアドレスが連続するアドレス範囲の組を有することを特徴とする情報処理装置。
【請求項１２】
請求項９に記載の情報処理装置において、
該エントリ情報を構成するアドレス範囲は、より細かいアドレス集合単位のサブアドレス範囲から構成され、該エントリ情報はそれぞれのサブアドレス範囲においてアクセスがあったか否かを示すアクセス履歴情報を有することを特徴とする情報処理装置。
【請求項１３】
請求項９に記載の情報処理装置において、
該制御部は、該プロセッサからのアクセスの発生に応じて、該第２記憶に先読みするデータのアドレス範囲を示すストライド幅を変えることを特徴とする情報処理装置。
【請求項１４】
請求項９に記載の情報処理装置において、
該制御部は、該エントリの更新に際して、該エントリ情報を構成する複数のアドレス範囲の中心近傍に、該プロセッサがアクセスしたアドレスを設定することを特徴とする情報処理装置。
【請求項１５】
請求項９に記載の情報処理装置において、
該制御部が該プロセッサのアクセスアドレスがアクセス進行方向のサブアドレス範囲に含まれると判別する場合には、該制御手段は該第２記憶部に先読みするデータを決定することを特徴とする情報処理装置。
【請求項１６】
請求項９に記載の情報処理装置において、
該アクセス方向情報は、該プロセッサがアクセスするブロックの遷移方向を示す昇順ビット及び降順ビットであることを特徴とする情報処理装置。
【請求項１７】
請求項９に記載の情報処理装置において、
該制御部が複数の該エントリ情報を検出した場合であって、アクセス進行方向の先頭側のブロックに該プロセッサのアクセスするデータのアドレスが含まれると判別した場合には、該制御部は該複数のエントリ情報をリセットすることを特徴とする情報処理装置。
【請求項１８】
データ処理するプロセッサと、データを記憶する第１記憶部と、該第１記憶部からデータをキャッシュする第２記憶部を備える情報処理装置が行うデータのキャッシュ制御方法において、
該第２記憶部にブロック単位で保持したデータのアクセス履歴を管理するステップと、
該プロセッサのアクセス先が現ブロックから直前にアクセスしたブロックに遷移するとき、該エントリ保持部に保持する現ブロックへのアクセス履歴を更新させるステップと、
を、該情報処理装置が行うことを特徴とするキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
キャッシュメモリのアクセス高速化を実現する情報処理装置及びキャッシュ制御方法に関する。
【背景技術】
【０００２】
プロセッサにおける処理の高速化に伴い、メモリへのアクセス時間を短縮することが求められている。その一つの手段として、プロセッサがアクセス要求する以前に、プロセッサがアクセス要求するアドレスを予測し、当該アドレスのデータを予めキャッシュに保持しておくプリフェッチ方法が用いられている。【０００３】
しかしながら上記プリフェッチ方法は、プログラム実行において連続するアドレスに対してメモリアクセスが行われる場合には、連続アクセスパターンの検出をすることは可能であるが、キャッシュメモリの登録ブロック境界を跨るアクセス順序の逆転が発生する場合やアクセスアドレスが飛び飛びの場合には、当該アクセスにおける連続アクセスパターンを検出できず、無駄なアクセスアドレスに対するプリフェッチによる登録を行うといった問題がある。またプリフェッチ方法に関して以下の特許文献がある。
【特許文献１】特開２００２−２１５４５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本願発明に係る情報処理装置は、キャッシュメモリの登録ブロック境界を跨るアクセス順序の逆転が発生する場合やアクセスアドレスが飛び飛びの場合であっても、当該アクセスにおける連続アクセスパターンを検出可能とすることを目的とする。
【課題を解決するための手段】
【０００５】
本実施例に係る情報処理装置は、プロセッサと、データを記憶した第１記憶部と、該プロセッサで処理するデータを該第１記憶部からフェッチする第２記憶部と、該第２記憶部にブロック単位で保持したデータのアクセス履歴を管理するエントリ保持部と、該プロセッサのアクセス先が現ブロックから直前にアクセスしたブロックに遷移するとき、該エントリ保持部に保持する現ブロックへのアクセス履歴を更新させる制御部とを備えたことを特徴とする。【０００６】
また本実施例に係る情報処理装置は、該エントリ保持部が該プロセッサがアクセスする該ブロックの遷移方向を示すアクセス方向情報を保持することを特徴とする。【０００７】
また本実施例に係る情報処理装置は、該エントリ保持部が複数のアドレスとアクセス方向情報とを対応付け、エントリ情報として保持することを特徴とする。【０００８】
また本実施例に係る情報処理装置は、該制御部が該エントリ保持部が保持する複数のブロックの中から一部のブロックを更新することを特徴とする。【０００９】
また本実施例に係る情報処理装置は、該制御部は、更新したアクセス履歴に対応するアドレス範囲と更新前のアクセス履歴に対応するアドレス範囲を保持することを特徴とする。【００１０】
また本実施例に係る情報処理装置は、該エントリ保持部が該ブロックに対応するアドレス範囲を複数有し、該制御部が該プロセッサのアクセスするブロックの遷移に応じて、該エントリ保持部に保持するアドレス範囲を更新することを特徴とする。【００１１】
また本実施例に係る情報処理装置は、該制御部が該アドレス範囲の中で一部のアドレス範囲を更新することを特徴とする。【００１２】
また本実施例に係る情報処理装置は、該制御部が更新したアドレス範囲と更新前のアドレス範囲を保持することを特徴とする。【００１３】
また本実施例に係る情報処理装置は、該エントリ保持部が該ブロックと該アクセス方向情報とを対応付け、エントリ情報として保持することを特徴とする。【００１４】
また本実施例に係る情報処理装置は、該制御部が該プロセッサがアクセスするデータのアドレスが該ブロックに含まれると判別する複数のエントリ情報を検出し、検出した複数のエントリ情報の該アクセス方向情報が互いに異なると判別した場合、該アクセス方向情報をリセットすることを特徴とする。【００１５】
また本実施例に係る情報処理装置は、該アドレス範囲は該第２記憶部における連続アドレスの集合であって、該エントリ情報はアドレスが連続するアドレス範囲の組を有することを特徴とする。【００１６】
また本実施例に係る情報処理装置は、該エントリ情報を構成するアドレス範囲がより細かいアドレス集合単位のサブアドレス範囲から構成され、該エントリ情報はそれぞれのサブアドレス範囲においてアクセスがあったか否かを示すアクセス履歴情報を有することを特徴とする。【００１７】
また本実施例に係る情報処理装置は、該制御部が該プロセッサからのアクセスの発生に応じて、該第２記憶に先読みするデータのアドレス範囲を示すストライド幅を変えることを特徴とする。【００１８】
また本実施例に係る情報処理装置は、該制御部が該エントリの更新に際して、該エントリ情報を構成する複数のアドレス範囲の中心近傍に、該プロセッサがアクセスしたアドレスを設定することを特徴とする。【００１９】
また本実施例に係る情報処理装置は、該制御部が該プロセッサのアクセスアドレスがアクセス進行方向のサブアドレス範囲に含まれると判別する場合には、該制御手段は該第２記憶部に先読みするデータを決定することを特徴とする。【００２０】
また本実施例に係る情報処理装置は、該アクセス方向情報は、該プロセッサがアクセスするブロックの遷移方向を示す昇順ビット及び降順ビットであることを特徴とする情報処理装置。【００２１】
また本実施例に係る情報処理装置は、該制御部が複数の該エントリ情報を検出した場合であって、アクセス進行方向の先頭側のブロックに該プロセッサのアクセスするデータのアドレスが含まれると判別した場合には、該制御部は該複数のエントリ情報をリセットすることを特徴とする。【００２２】
また本実施例に係るキャッシュ制御方法は、データ処理するプロセッサと、データを記憶する第１記憶部と、該第１記憶部からデータをキャッシュする第２記憶部を備える情報処理装置が行うデータのキャッシュ制御方法において、
該第２記憶部にブロック単位で保持したデータのアクセス履歴を管理するステップと、該プロセッサのアクセス先が現ブロックから直前にアクセスしたブロックに遷移するとき、該エントリ保持部に保持する現ブロックへのアクセス履歴を更新させるステップとを、該情報処理装置が行うことを特徴とする。
【発明の効果】
【００２３】
本願発明におけるプリフェッチ方法によれば、連続した複数のアドレス群を記録し、キャッシュブロック単位のアクセス履歴を保持することによって、キャッシュメモリの登録ブロック境界を跨るアクセス順序の逆転が発生する場合やアクセスアドレスが飛び飛びの場合であっても、当該アクセスにおける連続アクセスパターンの検出を行うことができる。
【図面の簡単な説明】
【００２４】
【図１】本実施例における情報処理装置のハードブロック図である。
【図２】本実施例におけるプリフェッチアドレスキューのエントリ構成の図である。
【図３】本実施例におけるプリフェッチアドレスキューのエントリ構成の図である。
【図４】メモリアクセス時のプリフェッチ制御装置の動作フローチャートである。
【図５】登録初期フェーズのプリフェッチアドレスキューに一致した場合の動作フローチャートである。
【図６】昇順モードでの二次キャッシュプリフェッチ関連フローチャートである。
【図７】昇順モードでの一次キャッシュプリフェッチ関連フローチャートである。
【図８】初期登録から初期フェーズにかけてのメモリアクセス時の動作例である。
【図９】昇順モード時のメモリアクセス時の動作例である。
【図１０】本実施例に係るアクセスパターン監視ユニット１０６がプリフェッチアドレスキュー１０７において複数のエントリを検出した場合を示す図である。
【符号の説明】
【００２５】
１０１…プロセッサユニット
１０２…一次キャッシュ
１０３…二次キャッシュ
１０４…主記憶装置
１０５…プリフェッチ制御装置
１０６…アクセスパターン監視ユニット
１０７…プリフェッチアドレスキュー
１０８…一次キャッシュプリフェッチ要求発行ユニット
１０９…二次キャッシュプリフェッチ要求発行ユニット
１１０…プリフェッチアドレスキュー更新ユニット
２０１…ページアドレス
２０２…ページ内アドレス
２０３…登録領域内アクセス履歴
２０４…ページ内アドレス
２０５…登録領域内アクセス履歴
２０６…ストライド幅
２０７…有効ビット
２０８…昇順ビット
２０９…降順ビット
２１０…制御ビット
３０１…ページアドレス
３０２…ページ内アドレス
３０３…登録領域内アクセス履歴
３０４…ページ内アドレス
３０５…登録領域内アクセス履歴
３０６…ストライド幅
３０７…有効ビット
３０８…昇順ビット
３０９…降順ビット
３１０…制御ビット
【発明を実施するための最良の形態】
【００２６】
図１は本実施例に係る情報処理装置１００のブロック図である。【００２７】
情報処理装置１００は、プロセッサユニット１０１、一次キャッシュ１０２、二次キャッシュ１０３、主記憶装置１０４、プリフェッチ制御装置１０５から構成されている。プリフェッチ制御装置１０５はアクセスパターン監視ユニット１０６、プリフェッチアドレスキュー１０７、一次キャッシュプリフェッチ発行ユニット１０８、二次キャッシュプリフェッチ要求発行ユニット１０９、プリフェッチアドレスキュー更新ユニット１１０から構成されている。【００２８】
本実施例における情報処理装置１００は、一次キャッシュ１０２、二次キャッシュ１０３のキャッシュシステムを備えており、アクセスパターンを先読みして当該キャッシュシステムにデータをプリフェッチする情報処理装置である。プリフェッチとは、情報処理装置１００がデータをあらかじめ一次キャッシュ１０２または二次キャッシュ１０３に読み出しておく機能である。情報処理装置１００のプリフェッチ処理は、ロード（ｌｏａｄ）命令などのデータの読み出し命令があった後に読み出しを行う処理に比べて、情報処理装置１００の処理応答速度を大幅に短縮することができる。本実施例に係る情報処理装置１００は、プリフェッチ機能をハードウェアによって実現している。ハードウェアにより実現するプリフェッチは、アクセスアドレスパターンを記録するハードウェア装置を備えている。そしてハードウェアで構成するアクセス監視パターンユニット１０６がアクセスアドレスを監視しながら、情報処理装置１００はプリフェッチ処理を行う。なおハードウェアによって実現するかわりに、ソフトウェアによってプリフェッチ機能を実現することも可能である。ソフトウェアによるプリフェッチは、予めソースコード命令列の中にプリフェッチ命令をコンパイラにより挿入して実現可能にする。【００２９】
本実施例における情報処理装置１００は、プリフェッチアドレスキュー１０７の１エントリに連続した複数のアドレス群を記録すること、さらに記録するアドレス群の単位を二次キャッシュ１０３のキャッシュブロックより大きくすることによって、より広いアドレス範囲の中で大局的にアクセスパターンを検出する。これにより情報処理装置１００は局所的なアクセス順序の前後や、一定間隔置きの飛び飛びのアクセスであっても連続アクセスパターンを検出することができる。【００３０】
さらに本実施例に係る情報処理装置１００が保持する広いアドレス範囲の中においても、キャッシュブロック単位などのより細かい単位アドレス範囲におけるアクセス履歴情報を保持することによって、局所的なアクセスの連続性をも検出することができる。【００３１】
情報処理装置１００は、大局的な連続アクセスパターンと局所的な連続アクセスパターンとを同じエントリ上で検出可能であるため、プリフェッチの発行タイミングやプリフェッチを行うデータサイズを調整することによって、複数階層へのプリフェッチをまとめて制御することが可能である。【００３２】
プロセッサユニット１０１は、情報処理装置１００における演算処理を実行するユニットである。演算処理は、加算、減算、乗算処理など、論理和、論理積といった論理演算などを実行する。【００３３】
一次キャッシュ１０２は二次キャッシュ１０２、主記憶装置１０４よりもアクセスが高速な記憶装置である。一次キャッシュ１０２に使用頻度の高いデータを蓄積しておくことにより、低速な主記憶装置１０４へのアクセスを減らすことができ、情報処理装置１００全体の処理を高速化することができる。【００３４】
二次キャッシュは、２段階のキャッシュメモリを搭載したプロセッサにおいて、一次キャッシュ１０２より低速でより容量の大きなメモリである。本実施例では、一次キャッシュ１０２の登録更新および入替の制御単位を６４バイト、二次キャッシュ１０３の登録更新の制御単位を２５６バイトとする。したがって、一次キャッシュ１０２は二次キャッシュ１０３に対して６４バイト単位でデータの登録要求を行い、登録要求に対応して一次キャッシュ１０２は二次キャッシュ１０３から６４バイト単位でデータを登録する。また、二次キャッシュ１０３は主記憶装置１０４への２５６バイト単位でデータの登録要求を行い、登録要求に対応して二次キャッシュ１０３は主記憶装置１０４から２５６バイト単位でデータを登録する。【００３５】
主記憶装置１０４は、情報処理装置１００において処理するデータ全体を保持するメモリであり、二次キャッシュよりもさらに低速でより容量の大きなメモリである。【００３６】
プリフェッチ制御装置１０５は、プロセッサユニット１０１が処理すると予測するデータを予め一次キャッシュ１０２または二次キャッシュ１０３に登録しておく装置である。プリフェッチ制御装置１０５は前述のとおり、アクセスパターン監視ユニット１０６、プリフェッチアドレスキュー１０７、一次キャッシュプリフェッチ発行ユニット１０８、二次キャッシュプリフェッチ要求発行ユニット１０９、プリフェッチアドレスキュー更新ユニット１１０より構成されている。【００３７】
プリフェッチ制御装置１０５を構成するアクセスパターン監視ユニット１０６は、プロセッサユニットが要求するメモリアクセス要求を監視するユニットである。一次キャッシュ１０２は、プロセッサユニット１０１からメモリアクセス要求のあったデータを、プロセッサユニット１０１へ転送する。【００３８】
プリフェッチアドレスキュー１０７は、複数のエントリから構成されている。それぞれのエントリはアドレス情報であって、６４ビットアドレスが格納される。後述する図２は、本実施例におけるプリフェッチアドレスキュー１０７のエントリ構成である。【００３９】
アクセスパターン監視ユニット１０６は、プロセッサユニット１０１のメモリアクセス要求を監視するユニットである。プロセッサユニット１０１から一次キャッシュ１０２に対してメモリアクセス要求が行われた場合、アクセスパターン監視ユニット１０６はメモリアクセス要求のあったアドレスとプリフェッチアドレスキュー１０７の各エントリに登録されているアドレスとの比較を行う。そして比較結果に応じて、アクセスパターン監視ユニット１０６は一次キャッシュプリフェッチ要求発行ユニット１０８、二次キャッシュプリフェッチ要求発行ユニット１０９にプリフェッチ要求を指示する。具体的なプリフェッチ要求を指示する判断基準については後述する。【００４０】
一次キャッシュプリフェッチ要求発行ユニット１０８は、アクセスパターン監視ユニット１０６の指示に基づいて、一次キャッシュ１０２に対してプリフェッチするデータを二次キャッシュ１０３に対して要求する。一次キャッシュ１０２は、一次キャッシュプリフェッチ要求発行ユニット１０８のプリフェッチ要求に応じて、二次キャッシュ１０３からデータをプリフェッチする。ここで一次キャッシュ１０２が行うプリフェッチとは、具体的には一次キャッシュ１０２が二次キャッシュ１０３に対して一次キャッシュ登録要求をし、一次キャッシュ登録要求に応じて二次キャッシュ１０３が登録データを一次キャッシュ１０２に転送することである。【００４１】
二次キャッシュプリフェッチ要求発行ユニット１０９は、アクセスパターン監視ユニット１０６の指示に基づいて、二次キャッシュ１０３に対してプリフェッチするデータを要求する。二次キャッシュ１０３は二次キャッシュプリフェッチ要求発行ユニット１０９のプリフェッチ要求に応じて、主記憶装置１０４からデータをプリフェッチする。ここで二次キャッシュ１０３が行うプリフェッチとは、具体的には二次キャッシュ１０３が主記憶装置１０４に対して二次キャッシュ登録要求をし、その二次キャッシュ登録要求に応じて主記憶装置１０４が登録データを二次キャッシュ１０３に転送することである。【００４２】
プロセッサユニット１０１のメモリアクセスに応じて、一次キャッシュプリフェッチ発行ユニット１０８および二次キャッシュプリフェッチ発行ユニット１０９は、それぞれ一次キャッシュ１０２および二次キャッシュ１０３に対してプリフェッチアドレスを生成してプリフェッチ要求を発行する。【００４３】
プリフェッチアドレスキュー更新ユニット１１０は、プリフェッチアドレスキュー１０７を構成するエントリを更新するユニットである。アクセスパターン監視ユニット１０６は、メモリアクセスパターンを保持している。メモリアクセスパターンとは、プロセッサユニット１０１が一次キャッシュ１０２にメモリアクセスを要求したアドレスの履歴パターンである。アクセスパターン監視ユニット１０６は、プロセッサユニット１０１が一次キャッシュ１０２にメモリアクセスを要求するタイミングで要求するアドレスを取得して保持し、メモリアクセスパターンを生成する。そしてアクセスパターン監視ユニット１０６は、新たなメモリアクセス要求を取得すると、そのメモリアクセス要求と保持しているメモリアクセスパターンを比較する。比較の結果、メモリアクセス要求のアドレスが保持しているアクセスパターンから外れた場合、アクセスパターン監視ユニット１０６は現在のアクセスアドレス情報をプリフェッチアドレスキュー１０７に新規登録してエントリを有効とする。ここで近傍アドレスとは、メモリアクセスパターンから予測される、プロセッサユニット１０１が所定時間内にアクセスするとアクセスパターン監視ユニット１０６が判別するアドレスである。【００４４】
プリフェッチアドレスキュー更新ユニット１１０は、プリフェッチアドレスキュー１０７のエントリを更新するユニットである。プリフェッチアドレスキュー更新ユニット１１０は、プリフェッチアドレスキュー１０７において最も古いエントリを更新する。プリフェッチアドレスキュー１０７に登録されるエントリは履歴カウンタを有している。プリフェッチアドレスキュー１０７は履歴カウンタを参照してエントリの最も古いものを判別する。履歴カウンタはプリフェッチアドレスキュー１０７に登録可能なエントリの登録または更新した順序を示すカウンタである。この履歴カウンタはエントリを構成するビットの一部を用いて連続な番号を示すことにより実現可能なものである。そしてプリフェッチアドレスキュー更新ユニット１１０は、プリフェッチアドレスキュー１０７にエントリの更新を行うときに、最も古い（例えば履歴カウンタの連続番号が最大）エントリを削除し新たなエントリを登録する。さらにプリフェッチアドレスキュー更新ユニット１１０は、プリフェッチアドレスキュー１０７に登録されていたエントリの履歴カウンタをそれぞれカウントアップする。これにより情報処理装置１００は、プリフェッチアドレスキュー１０７のエントリ登録または更新を行うことができる。またプリフェッチアドレスキュー更新ユニット１１０は、プリフェッチするアドレスを登録するエントリを無効エントリから選択する構成でもよい。プリフェッチアドレスキュー更新ユニット１１０は、エントリが無効エントリか否かはエントリが有するフラグ（エントリの無効を示すフラグ）によって判別する。【００４５】
またアクセスパターン監視ユニット１０６が、プロセッサユニット１０１の連続アクセスがアドレスの漸増方向に進んでいると判別した場合、アクセスパターン監視ユニット１０６はさらにアドレスの昇順方向に連続アクセスが進むと判別し、アクセスアドレス近傍のアドレスをプリフェッチする。【００４６】
つぎに、情報処理装置１００におけるメモリアクセス処理を説明する。
プロセッサユニット１０１は、まず一次キャッシュ１０２にメモリアクセス要求を行う。一次キャッシュ１０２は、プロセッサユニット１０１からメモリアクセス要求のあったデータを保持しているか判別する。一次キャッシュ１０２は、メモリアクセス要求のあったメモリアクセスデータを自身が保持していると判別した場合には、プロセッサユニット１０１へ該当するメモリアクセスデータを転送する。一次キャッシュ１０２は、メモリアクセス要求のあったメモリアクセスデータを自身が保持していないと判別した場合、一次キャッシュ１０２は二次キャッシュ１０３に対して該当するメモリアクセスデータの一次キャッシュ登録を要求する。【００４７】
二次キャッシュ１０３は、一次キャッシュ１０２と同様にして一次キャッシュ登録要求のあったメモリアクセスデータを自身が保持しているか否か判別する。二次キャッシュ１０３は、自身がメモリアクセスデータを保持していると判別した場合、二次キャッシュ１０３から一次キャッシュ１０２に対して登録要求のあったメモリアクセスデータを転送する。また二次キャッシュ１０３は、登録要求のあったメモリアクセスデータを自身が保持していないと判別した場合、二次キャッシュ１０３から主記憶装置１０４に対して該当するメモリアクセスデータの二次キャッシュ登録要求を行う。【００４８】
主記憶装置１０４は、二次キャッシュ１０３へ登録要求のあったメモリアクセスデータを転送する。【００４９】
またプリフェッチ制御装置１０５は、プロセッサユニット１０１がアクセスすると予測するメモリアクセスデータをプリフェッチする。これにより情報処理装置１００の処理をより高速にすることが可能となる。【００５０】
そして本実施例におけるプリフェッチ方法では、連続した複数のアドレス群を記録し、キャッシュライン単位のアクセス履歴を保持する。これにより、本実施例におけるプリフェッチ方法はキャッシュメモリの登録ブロック境界を跨るアクセス順序の逆転が発生する場合やアクセスアドレスが飛び飛びの場合であっても、当該アクセスにおける連続アクセスパターンを検出可能とする。【００５１】
アクセスパターン監視ユニット１０６は、プロセッサユニット１０１の一次キャッシュ１０２へのメモリアクセス要求を監視し、メモリアクセスパターンを生成して保持する。アクセスパターン監視ユニット１０６は、プリフェッチアドレスキュー１０７からエントリを読み出し、メモリアクセスパターンとエントリを構成するアドレスとを比較する。比較結果に応じて、一次キャッシュプリフェッチ要求発行ユニット１０８、二次キャッシュプリフェッチ要求発行ユニット１０９は、エントリを構成するアドレスに対応するデータをプリフェッチする。この際、アクセスパターン監視ユニット１０６は、プリフェッチアドレスキュー１０７のエントリを読み出し、一次キャッシュプリフェッチ発行ユニット１０８、二次キャッシュプリフェッチ要求発行ユニット１０９へ転送する。一次キャッシュプリフェッチ発行ユニット１０８、二次キャッシュプリフェッチ要求発行ユニット１０９は、受信したエントリに基づき、一次キャッシュ１０２、二次キャッシュ１０３にデータのプリフェッチを要求する。またプリフェッチアドレスキュー更新ユニット１１０は、プリフェッチアドレスキュー１０７のエントリの更新を行う。アクセスパターン監視ユニット１０６がプリフェッチアドレスキュー更新ユニット１１０に指示することによって、プリフェッチアドレスキュー更新ユニット１１０はプリフェッチアドレスキュー１０７の更新を行う。【００５２】
一次プリフェッチ要求発行ユニット１０８は一次キャッシュ１０２に、二次キャッシュプリフェッチ発行ユニット１０９は二次キャッシュ１０４にそれぞれプリフェッチを要求する。一次キャッシュ１０２、二次キャッシュ１０３は、それぞれのキャッシュ（一次キャッシュ１０２、二次キャッシュ１０３）に対するプリフェッチ要求に応じて、アクセス監視パターン監視ユニット１０６がメモリアクセスデータであると予測するデータを取得する。そして一次キャッシュ１０２、二次キャッシュ１０３は、アクセス監視パターン監視ユニット１０６がメモリアクセスデータであると予測するそのデータをプリフェッチする。【００５３】
図２は、本実施例にかかるエントリの構成である。エントリ２００を構成するアドレスは、ページアドレス２０１、ページ内アドレス２０２、登録領域内アクセス履歴２０３、ページ内アドレス２０４、登録領域内アクセス履歴２０５、ストライド幅２０６、有効ビット２０７、昇順ビット２０８、降順ビット２０９、制御ビット２１０である。【００５４】
一次キャッシュ１０２の登録更新および入替の制御単位は６４バイト、二次キャッシュ１０３の登録更新の制御単位は２５６バイトである。さらに、主記憶装置１０４の仮想記憶アドレス制御における物理メモリと仮想メモリとの変換を管理するページサイズは４メガバイトであり、主記憶装置１０４の全体は６４ビットアドレスで管理されている。【００５５】
従来のプリフェッチアドレスキューは、１つのページ内アドレスのみアドレス登録している。また従来のプリフェッチアドレスキューは、一次キャッシュ制御単位の６４バイト単位でアドレス登録をしている。そのため従来のアクセスパターン監視ユニットは、６４バイト単位境界を跨るアドレス範囲での連続アクセスを検出することができず、アクセス順序の逆転や一定間隔置きのアクセスが行われた場合には、適切なプリフェッチ発行を行うことができない。また従来のプロセッサユニットが、連続アクセスを検出できない６４バイト境界を跨ってメモリアクセスを行った場合、アクセスパターン監視ユニットはエントリに同じアクセスアドレス範囲を登録してしまい、プリフェッチアドレスキューの使用効率が著しく下がってしまう。【００５６】
次に、本実施例に係るエントリ２００に登録されるアドレス情報を説明する。アドレス情報は６４ビットであり（ビット６３からビット０）、このアドレス情報は４２ビット（ビット６３からビット２２）のページアドレス２０１、１４ビット（ビット２１からビット８）のページ内アドレス２０２、１４ビット（ビット２１から８）のページ内アドレス２０４を登録している。【００５７】
ページアドレス２０１は、主記憶装置１０４の仮想記憶アドレス制御における物理メモリと仮想メモリとの変換を管理するアドレスであり、二次キャッシュの制御単位である２５６バイト境界まで登録されている。【００５８】
ページ内アドレス２０２とページ内アドレス２０４に登録可能な連続したアドレス範囲は５１２バイトに相当する。そのためアクセスパターン監視ユニット１０６は、従来の２つのエントリにおけるプリフェッチ範囲を１つのエントリでプリフェッチすることができ、連続アクセスを検出することができる。【００５９】
さらにそれぞれ４ビットからなる登録領域内アクセス履歴２０３および登録領域内アクセス履歴２０５は、それぞれ２５６バイトより細かい６４バイト×４の一次キャッシュ制御単位でのアクセス履歴を示す履歴である。これによりアクセスパターン監視ユニット１０６は、登録領域内アクセス履歴２０３および登録領域内アクセス履歴２０５を用いて、プロセッサユニット１０１の一次キャッシュ１０２、二次キャッシュ１０３への局所的な連続アクセスを検出することができる。ストライド幅２０６は、どの程度先のアドレス範囲をプリフェッチするかを表す情報である。有効ビット２０７は、エントリが有効であることを表す情報である。昇順ビット２０８は、昇順の連続アクセスを監視する情報である。降順ビット２０９は、降順の連続アクセスを監視する情報である。制御ビット２１０は、その他のアドレス制御に用いる情報である。【００６０】
図３は、本実施例に係るエントリ３００の構成を示す図である。エントリ３００は、基本的にエントリ２００と同様の構成をしており、エントリの構成のバリエーションの１つである。【００６１】
図３の実施例のプリフェッチアドレスキューは、エントリの構成情報は図２と同様だが、ページ内アドレス３０２およびページ内アドレス３０４の登録単位が各１キロバイト単位（ビット２１からビット９まで）となっており、図２のエントリ２００の５１２バイト範囲より広い１キロバイトのアドレス範囲でアクセスパターンを監視することができる。そのため、図３に記載のエントリ３００はエントリ２００よりもさらに大局的に連続アクセスの検出が可能である。エントリ３００は、エントリ２００の５１２バイトより細かい６４バイト×８の一次キャッシュ制御単位でのアクセス履歴を記録する。そのためアクセスパターン監視ユニット１０６は、登録領域内アクセス履歴３０３および登録領域内アクセス履歴３０５を用いて、プロセッサユニット１０１の一次キャッシュ１０２、二次キャッシュ１０３への局所的な連続アクセスを検出することができる。【００６２】
これより、本実施例に係るキャッシュシステムを備えた情報処理装置１００は、過去にメモリアクセスしたアドレスないし将来アクセスが期待される近傍アドレスを記録する手段を備え、その記録済みの登録アドレスと後続アクセスアドレスとの比較を基に連続アクセスパターンを検出して、キャッシュブロックのプリフェッチ要求発行を行う装置である。そして、情報処理装置１００はアクセスアドレスを含む連続した複数のキャッシュブロックアドレス群ないしキャッシュブロックより大きなブロック単位のアドレス群の組を記録し、キャッシュブロック単位より大きな連続アクセスを検出して、プリフェッチを制御することを特徴とする。【００６３】
図４は本実施例にかかるプリフェッチ制御のフローチャートである。【００６４】
アクセスパターン監視ユニット１０６は、プロセッサユニット１０１から一次キャッシュ１０２へのメモリアクセス要求を監視している。プロセッサユニット１０１が一次キャッシュ１０２へメモリアクセスを要求すると、アクセスパターン監視ユニット１０６はそのメモリアクセス要求を検出する（ステップＳ４０１）。そして、アクセスパターン監視ユニット１０６はメモリアクセスが要求されたアクセスアドレスが、プリフェッチアドレスキュー１０７を構成するエントリの登録アドレス範囲に属するか否かを判別する（ステップＳ４０２）。アクセスアドレスの比較対象となる登録アドレス範囲を含むエントリの有効ビットは１である。アクセスアドレスと登録アドレス範囲が一致する場合（ステップＳ４０２  ＹＥＳ）、アクセスパターン監視ユニット１０６は、該当エントリの昇順ビットおよび降順ビットに基づいて、監視する連続アクセスの方向が昇順または降順に既に決定しているかを判別する（ステップＳ４０３）。【００６５】
連続アクセスの方向の昇順降順が決定していないとアクセスパターン監視ユニット１０６が判断した場合（ステップＳ４０３  ＮＯ）、図５に示す登録初期モードの処理フローへ移行する。図５において、登録初期モードの処理フローについては後述する。【００６６】
連続アクセスの方向の昇順降順が決定しているとアクセスパターン監視ユニット１０６が判別した場合（ステップＳ４０３  ＹＥＳ）、アクセスパターン監視ユニット１０６は昇順ビットが１であるか否かを判別する（ステップＳ４０４）。アクセスパターン監視ユニット１０６が、昇順ビットが１であると判別した場合（ステップＳ４０４  ＹＥＳ）、昇順モードの処理フローへ移行する（ステップＳ４０６）。アクセスパターン監視ユニット１０６が、昇順ビットが１でない（昇順ビットが０である）と判別した場合（ステップＳ４０４  ＮＯ）、降順モードの処理フローへ移行する（ステップＳ４０５）。降順モードの処理フローは昇順処理フローと対称な処理フローである。【００６７】
アクセスパターン監視ユニット１０６は、メモリアクセスが要求されたアクセスアドレスがプリフェッチアドレスキューを構成するエントリの登録アドレス範囲に属するか否かを判別する（ステップＳ４０２）。アクセスアドレスと登録アドレス範囲が一致せず、アクセスアドレスに一致するプリフェッチアドレスキューが存在しない場合（ステップＳ４０２  ＮＯ）、プリフェッチアドレスキュー更新ユニット１１０はアクセスアドレスおよびその近傍アドレスを新規にプリフェッチアドレスキュー１０７に登録する。そしてアクセスパターン監視ユニット１０６は、アクセスアドレスが２５６バイトの登録アクセス範囲の大きい側（１２８バイト〜２５５バイト）か、登録アクセス範囲の小さい側（０バイト〜１２７バイト）か、を判別する。より具体的には、プリフェッチアドレスキューの有効エントリに登録するアドレス範囲の中心近くにアクセスアドレスが来る様にするため、アクセスアドレスのビット７が１であるか否かを判別する（ステップＳ４０８）。アクセスアドレスのビット７の状態に応じて、アクセス監視パターン監視ユニット１０６がアドレス漸増方向にエントリを登録するか（ステップＳ４０９）、アドレス降順方向にエントリを降順登録するか（ステップＳ４１０）を判別する。【００６８】
ステップＳ４０８において、アクセスアドレスのビット７が１である場合（ステップＳ４０８  ＹＥＳ）、プリフェッチアドレスキュー１０７の利用されていないエントリを更新して、アクセス監視パターンユニット１０６が新たなアクセスアドレスを登録する（ステップＳ４０９）。これは先述した先進登録であり、アクセスパターン監視ユニット１０６は、ページ内アドレス２０２にアクセスアドレスに２５６バイト加えたアドレス（アクセスアドレス＋２５６バイト）を登録し、ページ内アドレス２０４にアクセスアドレスを登録する。【００６９】
またステップＳ４０８において、アクセスアドレスのビット７が１でない（ビット７が０である）場合（ステップＳ４０８  ＮＯ）、プリフェッチアドレスキュー１０７の利用されていないエントリを更新して、アクセス監視パターンユニット１０６が新たなアクセスアドレスを登録する（ステップＳ４１０）。これは先述した降順アドレス方向の登録であり、ページ内アドレス２０２にアクセスアドレスを登録し、ページ内アドレス２０４にアクセスアドレスから２５６バイト減じたアドレス（アクセスアドレス−２５６バイト）を登録する。【００７０】
図５は、本実施例にかかる登録初期モードの処理フローである。登録初期モードは、アクセスパターン監視ユニット１０６が初期登録するモードである。まず、登録初期モードのプリフェッチアドレスキュー１０７に登録されているエントリがアクセスアドレスと一致する（ステップＳ５０１）。そしてアクセスパターン監視ユニット１０６は、アクセスアドレスが登録アドレス範囲のうち昇順アドレス漸増側（大きい側の２５６バイト）か降順アドレス降順側か（小さい側の２５６バイト）を判別する（ステップＳ５０２）。つまりステップＳ５０２は、アクセスパターン監視ユニット１０６がアクセスパターンアクセス方向を判別するステップである。【００７１】
アクセスパターン監視ユニット１０６がアクセスアドレスは昇順側（大きい側の２５６バイト）と一致したと判別した場合（ステップＳ５０２  ＹＥＳ）、アクセスパターン監視ユニット１０６は一致したアクセスアドレスのビット７は「１」か否かを判別する（ステップＳ５０３）。つまり、ステップＳ５０３は、アクセスパターン監視ユニット１０６がアクセスパターンのアクセス方向が昇順方向か降順方向かを判別するステップである。【００７２】
アクセスパターン監視ユニット１０６がビット７は１であると判別した場合（ステップＳ５０３  ＹＥＳ）には、アクセスパターン監視ユニット１０６は該当プリフェッチアドレスキュー１０７が追従すべき方向は昇順側と判別し、以降昇順モード動作を行う（ステップＳ５０４）。ステップＳ５０４では、プロセッサユニット１０１のメモリアクセスが昇順側（大きい側の１２８バイト）へ進んでいる。そのためアクセスパターン監視ユニット１０６は、該当エントリが追従すべき方向は昇順側であると判別する。そして、これ以降プリフェッチアドレスキュー１０７は昇順モード動作を行う。【００７３】
そして、該当エントリのプリフェッチアドレスキューのページ内アドレス２０２、２０４に２５６バイト加算して、アクセスアドレスを増加させる。また昇順ビット２０８を１とし、降順ビット２０９を０とする。【００７４】
また、アクセスパターン監視ユニット１０６がビット７は１でない（ビット７は０である）と判別した場合（ステップＳ５０３  ＮＯ）には、アクセスパターン監視ユニット１０６はアクセスパターンが昇順側にも降順側にも進んでいないと判別し、初期モード動作を続ける（ステップＳ５０５）。ここで、初期モード動作とはプリフェッチ要求を行わないモードである。【００７５】
また同様にして、アクセスパターン監視ユニット１０６がアクセスアドレスは降順側（小さい側の２５６バイト）と一致したと判別した場合（ステップＳ５０２  ＮＯ）、アクセスパターン監視ユニット１０６は一致したアクセスアドレスのビット７が１か否かを判別する（ステップＳ５０６）。アクセスパターン監視ユニット１０６が、ヒットしたエントリのビット７は「１」であると判別した場合（ステップＳ５０６  ＹＥＳ）、アクセスパターン監視ユニット１０６はアクセスパターンが昇順側にも降順側にも進んでいないと判別し、初期フェーズ動作を続ける（ステップＳ５０５）。【００７６】
アクセスパターン監視ユニット１０６が、ヒットしたエントリのビット７は「１」であると判別した場合（ステップＳ５０６  ＮＯ）、アクセスパターン監視ユニット１０６は該当プリフェッチアドレスキューが追従すべき方向は降順側と判別し、以降降順モード動作を行う（ステップＳ５０７）。【００７７】
そしてアクセスパターン監視ユニット１０６は、該当エントリのページ内アドレス２０２、２０４から２５６バイト減算してアクセスアドレスの後進を行う。またアクセスパターン監視ユニット１０６はエントリの昇順ビット２０８を「０」とし、降順ビット２０９を「１」とする。ステップＳ５０７では、プロセッサユニット１０１のメモリアクセスが降順側（小さい側の１２８バイト）へ後進している。そのためアクセスパターン監視ユニット１０６は、プリフェッチアドレスキュー１０７が追従すべき方向は降順側であると判別し、以降降順モード動作を行う。【００７８】
図６は、本実施例にかかる昇順モードの処理フローチャートである。昇順モードは、アクセスアドレスに２５６バイトずつ加算していくモードである。昇順モードは、プリフェッチアドレスキュー１０７のエントリに対して昇順側に一致したケースでの二次キャッシュプリフェッチの処理フローチャートである。【００７９】
まずアクセスパターン監視ユニット１０６は、アクセスアドレスと昇順モードのプリフェッチアドレスキュー１０７に一致すると判別する（ステップＳ６０１）。アクセスパターン監視ユニット１０６は、登録アドレス範囲の昇順側（大きい側の２５６バイト）で大局的なアクセスパターンを監視し、二次キャッシュプリフェッチ要求のタイミングを図る。【００８０】
アクセスパターン監視ユニット１０６はアクセスアドレスが登録アドレス範囲のうち昇順側（大きい側の２５６バイト）か降順側か（小さい側の２５６バイト）を判別する（ステップＳ６０２）。つまりアクセスパターン監視ユニット１０６は、アクセスアドレスが二次キャッシュプリフェッチを行うか、プリフェッチアドレスキューのエントリ情報を更新するかを判別する（ステップＳ６０２）。ここでアクセスアドレスは、プロセッサユニット１０１が一次キャッシュ１０２に対してメモリアクセス要求するデータのアドレスである。【００８１】
アクセスパターン監視ユニット１０６は、アクセスアドレスが登録アドレス範囲のうち昇順側であると判別した場合（ステップＳ６０２  ＹＥＳ）、アクセスパターン監視ユニット１０６はアクセスアドレスのビット７が１であるか否かを判別する（ステップＳ６０３）。アクセスアドレスのビット７が１であることは、登録アドレス範囲のビット７が１であり、メモリアクセスが登録アドレス範囲の先頭まで進んでいることを示すものである。昇順モード動作時、アクセスパターン監視ユニット１０６は昇順側（大きい側の２５６バイト）において大局的なアクセスパターンを監視し、二次キャッシュプリフェッチ要求のタイミングを図る。アクセスパターン監視ユニット１０６は二次キャッシュプリフェッチを行うか、プリフェッチアドレスキュー１０７のエントリ情報を更新するかを判別する。エントリ情報は、プリフェッチアドレスキュー１０７に登録されるすべてのエントリを意味する。【００８２】
アクセスパターン監視ユニット１０６がアクセスアドレスのビット７が１であると判別した場合（ステップＳ６０３  ＹＥＳ）、アクセスパターン監視ユニット１０６は二次キャッシュ１０３での二次キャッシュプリフェッチを行うストライド幅２０６を増加して、プリフェッチアドレスキュー１０７のエントリ情報を更新する（ステップＳ６０４）。アクセスパターン監視ユニット１０６は昇順側で一致して二次キャッシュプリフェッチを行う場合、登録アドレス範囲の先頭までアクセスが進んだかを判別する。アクセスが登録アドレス範囲の先頭まで進んだステップＳ６０４における更新の結果、アクセスが登録アドレス範囲の先頭まで進んだ場合、プリフェッチアドレスキュー更新ユニット１１０はプリフェッチを行うと共に、プリフェッチアドレスキュー１０７に登録されたデータ全体を２５６バイト前進し更新する。この時、プリフェッチアドレスキュー１０７は５１２バイト登録アドレス範囲に対して２５６バイトし、またプリフェッチアドレスキュー１０７は更新前後で重なっている２５６バイトの登録アドレス範囲のアクセス履歴情報を維持する。またアクセスパターン監視ユニット１０６は、ヒットしたエントリのビット７が「１」でない（ビット７が「０」である）と判別した場合（ステップＳ６０３  ＮＯ）、アクセスパターン監視ユニット１０６は続いてアクセスアドレスを含む１２８バイトのアクセスアドレス範囲へのアクセス履歴があるか否かを判別する（ステップＳ６０５）。【００８３】
アクセスパターン監視ユニット１０６は、アクセスアドレスと同じ１２８バイト領域へのアクセス履歴がないと判別した場合（ステップＳ６０５  ＮＯ）、アクセスパターン監視ユニット１０６は登録ストライド幅で昇順側への二次キャッシュプリフェッチ要求を二次キャッシュプリフェッチ要求発行ユニット１０９に対して指示する。指示に応じて、二次キャッシュプリフェッチ要求発行ユニット１０９は二次キャッシュプリフェッチ要求を生成する（ステップＳ６０６）。【００８４】
アクセスパターン監視ユニット１０６はアクセスアドレスと同じ１２８バイト領域へのアクセス履歴があると判別した場合（ステップＳ６０５  ＹＥＳ）、アクセスパターン監視ユニット１０６は二次キャッシュプリフェッチ要求を二次キャッシュプリフェッチ要求発行ユニット１０９に対して指示せず、アクセスアドレスのアクセス履歴を記録する（ステップＳ６０７）。ステップＳ６０４、ステップＳ６０６、ステップＳ６０７のいずれのケースにおいても、アクセスパターン監視ユニット１０６はアクセスアドレスに対応するアクセス履歴を記録しておく。【００８５】
Ｓ６０６でアクセス履歴がないと判断された場合、情報処理装置１００はプリフェッチを行うと共に、ステップＳ６０４での将来のプリフェッチに備えてプリフェッチアドレス計算用のストライド幅を２５６バイト広げてより先出しをする様にエントリ情報を更新しておく。アクセスパターン監視ユニット１０６は、アクセスアドレス範囲の降順側（小さい側の２５６バイト）において一致した場合や、アクセスアドレス範囲の昇順側において一致しても１２８バイト領域にアクセス履歴がある場合には連続アクセスが進んでいないと判断して二次キャッシュプリフェッチの要求は行わない。ここで１２８バイト領域とはアクセスアドレスを含む１２８バイトのアクセスアドレス範囲である。【００８６】
図７は本実施例に係る昇順モードでの一次キャッシュプリフェッチのフローチャートである。【００８７】
アクセスパターン監視ユニット１０６は昇順モードのプリフェッチアドレスキューが一致すると判別する（ステップＳ７０１）。アクセスパターン監視ユニット１０６はアクセスアドレスに６４バイトを加えた一次キャッシュラインへのアクセス履歴があるか判別する（ステップＳ７０２）。昇順モード動作時には、アクセスパターン監視ユニット１０６は６４バイト単位に記録しているアクセス履歴情報を監視して、一次キャッシュプリフェッチ要求のタイミングを図る。【００８８】
そしてアクセスパターン監視ユニット１０６はアクセスアドレスに６４バイトを加えた一次キャッシュラインへのアクセス履歴があると判別した場合（ステップＳ７０２  ＹＥＳ）、既にプロセッサユニット１０１はメモリアクセスを行っているため、アクセスパターン監視ユニット１０６は一次キャッシュプリフェッチ要求を生成しない（ステップＳ７０４）。またアクセスパターン監視ユニット１０６はアクセスアドレスに６４バイトを加えた一次キャッシュラインへのアクセス履歴がないと判別した場合（ステップＳ７０２  ＮＯ）、アクセスパターン監視ユニット１０６は一次キャッシュプリフェッチ要求を生成する（ステップＳ７０３）。【００８９】
これより本実施例に係る情報処理装置１００は、以下のプリフェッチ制御を実現するものである。本実施例に係るプリフェッチ方法を実現する情報処理装置１００はキャッシュシステムを備えるものである。そして本実施例に係る情報処理装置１００は過去にメモリアクセスしたアドレスないし将来アクセスが期待される近傍アドレスを記録する手段を備えており、その記録済みの登録アドレスと後続アクセスアドレスとの比較を基に連続アクセスパターンを検出してキャッシュブロックのプリフェッチ要求発行を行う情報処理装置である。そして情報処理装置１００はアクセスアドレスを含む連続した複数のキャッシュブロックアドレス群またはキャッシュブロックより大きなブロック単位のアドレス群の組を記録することによって、キャッシュブロック単位より大局的に連続アクセスを検出してプリフェッチを制御する。【００９０】
また本実施例にかかる情報処理装置１００は以下のプリフェッチ方法を実現する。情報処理装置１００は連続アクセスパターンを検出する。そして情報処理装置１００は１エントリに登録されたキャッシュブロックより広い複数のブロックアドレス範囲で、細粒度のサブブロック単位の詳細アクセス履歴を記録する。これにより情報処理装置１００は、同一アドレス領域が登録されている間での局所的なアクセスの進行具合あるいはアクセス回数に応じて、プリフェッチ発行タイミング、ストライド幅、プリフェッチデータサイズを変化させながらプリフェッチ要求し、プリフェッチを行う。【００９１】
また本実施例にかかる情報処理装置１００は以下のプリフェッチ方法を実現する。情報処理装置１００は連続アクセスパターンを検出してキャッシュへのプリフェッチを行う。情報処理装置１００は連続した複数のブロックアドレス群と登録アドレス範囲中の詳細アクセス履歴とを記録する手段を複数階層のキャッシュで共有する。そして情報処理装置１００はキャッシュ階層に応じて比較アドレス範囲およびプリフェッチ発行タイミングおよびストライド幅およびプリフェッチデータサイズなどを制御することによって、同一資源で複数階層へのプリフェッチを制御する。【００９２】
また本実施例に係る情報処理装置１００は以下のプリフェッチ方法を実現する。情報処理装置１００は１エントリに複数のアドレスブロックとアドレスブロックにおけるアクセス履歴を登録する。そしてプロセッサユニット１０１が連続してメモリアクセスすると、エントリ登録するアドレスブロックの開始アドレスをアクセス方向にずらして更新する。更新する前の登録アドレス範囲と更新後の登録アドレスは一部重複する。さらにプロセッサユニット１０１のアクセスアドレスが登録アドレス範囲の中心近傍になる様に登録アドレスブロックの開始アドレスをずらし、かつ重複する登録アドレス範囲の詳細アクセス履歴も継続利用する。これにより本実施例にかかる情報処理装置１００はブロック境界においても過不足なくプリフェッチ要求を制御することができる。【００９３】
また本実施例に係る情報処理装置１００は以下のプリフェッチ方法も実現する。情報処理装置１００は、プロセッサユニット１０１の連続アクセスパターンを検出して、一次キャッシュ１０２また二次キャッシュ１０３へデータをプリフェッチする情報処理装置である。エントリにアドレス範囲が登録している状態において、情報処理装置１００は一度目にプリフェッチしたデータを過去から継続するストライド幅分だけ先のアドレスにずらす。さらに情報処理装置１００は、エントリに登録したアドレス範囲を保持しつつ、二度目以降のプリフェッチを前回プリフェッチ時のストライド幅より前回プリフェッチ時のデータサイズ分だけ大きくしたストライド幅先のアドレスにプリフェッチを行う。これにより情報処理装置１００はプリフェッチの先読み度合いを加速することができる。【００９４】
また本実施例に係る情報処理装置１００は以下のプリフェッチ方法を実現する。情報処理装置１００は連続する複数のアドレスブロックを１エントリとして初期登録する際に、アクセスアドレスが登録アドレス範囲の中心近傍になる様に、複数のアドレスブロックを登録する。そして情報処理装置１００は登録するアドレス範囲で見て昇順降順どちらに後続アクセスが進むかを検出することによって、連続アクセスが昇順方向か降順方向かを大局的に決定する。【００９５】
また本実施例に係る情報処理装置１００は以下のプリフェッチ方法を実現する。情報処理装置１００が、プロセッサユニット１０１のアクセスが複数の異なるエントリの登録アドレス範囲にマルチヒット検出すると、情報処理装置１００は、マルチヒットしたエントリ同士の連続アクセス検出の確信度合いあるいは連続アクセス進行度合いに応じて、優先するエントリと無効とするエントリを決定する。【００９６】
また本実施例に係る情報処理装置１００は以下のプリフェッチ方法を実現する。情報処理装置１００が複数の異なるエントリにおいて連続アクセスをマルチヒット検出した場合であって、情報処理装置１００はメモリアクセスの昇順降順が決定していないエントリと、メモリアクセスの昇順降順が既に決定しているエントリとがマルチヒットした場合、情報処理装置１００はメモリアクセスの昇順降順が決定しているエントリを優先して、メモリアクセスの昇順降順が決定していないエントリを無効化する。【００９７】
また本実施例に係る情報処理装置１００は以下のプリフェッチ方法を実現する。情報処理装置１００はメモリアクセスの連続アクセスパターンを検出してキャッシュへのプリフェッチを行う情報処理装置である。情報処理装置１００が複数の異なるエントリにマルチヒットして連続アクセスを検出した場合であって、連続アクセスの方向が昇順か降順かを決定しているエントリをマルチヒットした場合に、アクセス進行方向の先頭側でマルチヒットしたエントリを無効化する。【００９８】
図８は本実施例に係るプリフェッチキューの新規登録から初期モードへの動作例の図である。図８の行はそれぞれ時刻Ａから時刻Ｄ＋１を表しており、図８の列はそれぞれ６４Ｂ単位でのアドレス進行を２進数５ビット（０００００〜１０１００＝０Ｂ〜１２８０Ｂ）の範囲で表している。ここで近傍アドレスへの連続アクセスの挙動を表しているためアドレス上位ビットは同じであり、図８では記述を省略している。【００９９】
図８において、太枠で囲んである領域がプリフェッチアドレスキュー１０７に登録される領域である。そして「×」が記載のアクセスアドレス領域は、アクセスアドレスとプリフェッチアドレスキュー１０７に登録されるエントリとが一致しなかった場合を意味する。また「○」が記載のアクセスアドレス領域では、一次キャッシュ１０２が一次キャッシュプリフェッチ（Ｌ１ＰＦ）を生成する。「◎」が記載のアクセスアドレス領域では、二次キャッシュ１０３が二次キャッシュプリフェッチ（Ｌ２ＰＦ）を生成する。「△」が記載のアクセスアドレス領域では、アクセスパターン監視ユニット１０６は該アクセスアドレス領域がプリフェッチアドレスキュー１０７に登録されるエントリと一致すると判別するが、プリフェッチ要求を一次キャッシュプリフェッチ発行ユニット１０８と二次キャッシュプリフェッチ要求発行ユニット１０９に対して行わない。【０１００】
時刻Ａでは、プロセッサユニット１０１が一次キャッシュ１０２のアクセスアドレス領域「０００１０」へメモリアクセス要求を行い、アクセスパターン監視ユニット１０６はプロセッサユニット１０１のアクセスアドレス領域「０００１０」へのメモリアクセス要求を監視し検出する。アクセスアドレス領域はプロセッサユニット１０１がメモリアクセス要求するアクセスアドレスを含むキャッシュブロックを意味する。そして時刻Ａにおいて、アクセスパターン監視ユニット１０６は、アクセスアドレスに一致するエントリがプリフェッチアドレスキュー１０７に存在しないと判別する。【０１０１】
そして時刻Ａ＋１において、アクセスパターン監視ユニット１０６は、プリフェッチアドレスキュー１０７のエントリにアクセスアドレス範囲を登録する。登録するアクセスアドレス範囲は「０００００〜０００１１」の２５６バイトである。【０１０２】
時刻Ｂにおいて、プロセッサユニット１０１は一次キャッシュ１０２のアクセスアドレス領域「０００１１」へメモリアクセス要求する。アクセスパターン監視ユニット１０６は、プロセッサユニット１０１の「０００１１」へのメモリアクセス要求を監視し、一次キャッシュ１０２に新たなプリフェッチを行わず、新たなエントリもプリフェッチアドレスキュー１０７に登録しない。時刻Ｂ＋１において、プロセッサユニット１０１は一次キャッシュ１０２へメモリアクセス要求を行わない。また時刻Ｂ＋１において、アクセスパターン監視ユニット１０６は、プリフェッチアドレスキュー１０７に新たなエントリを登録しない。【０１０３】
時刻Ｃにおいて、プロセッサユニット１０１は一次キャッシュ１０２のアクセスアドレス領域「００１０１」へメモリアクセス要求する。アクセスパターン監視ユニット１０６は、プロセッサユニット１０１の「００１０」へのメモリアクセス要求を監視し、一次キャッシュ１０２に新たなプリフェッチを行わず、プリフェッチアドレスキュー１０７に新たなエントリを登録しない。また時刻Ｃ＋１において、プロセッサユニット１０１は一次キャッシュ１０２へメモリアクセス要求を行わない。つまり時刻Ｂ、時刻Ｃでは、アクセスパターン監視ユニット１０６は後続アクセスアドレスがプリフェッチアドレスキュー１０７に登録されるエントリのアドレス領域に一致すると判別した場合に、情報処理装置１００は初期モード動作フローに移る。アクセスパターン監視ユニット１０６は、連続アクセスがそれほど進んでないためプリフェッチが必要ないと判別し、プリフェッチ制御装置１０５はプリフェッチを行わない。【０１０４】
時刻Ｄにおいて、プロセッサユニット１０１は一次キャッシュ１０２の「００１１１」へメモリアクセス要求を行う。アクセスパターン監視ユニット１０６はプリフェッチアドレスキューに新たにアクセスアドレス範囲「００１００〜０１０１１」のエントリをプリフェッチアドレスキュー１０７に登録する。そしてアクセスパターン監視ユニット１０６は、二次キャッシュプリフェッチ要求発行ユニット１０９に対してアクセスアドレス範囲「０１０００〜０１０１１」を二次キャッシュ１０３へプリフェッチすることを要求するプリフェッチ要求を発行することを指示する。時刻Ｄ＋１において、プロセッサユニット１０１は一次キャッシュ１０２へメモリアクセスを行わない。二次キャッシュプリフェッチ発行ユニット１０９はアクセスアドレス範囲「０１０００〜０１０１１」を二次キャッシュ１０３にプリフェッチすることを要求する。つまり時刻Ｄにおいて、アクセスパターン監視ユニット１０６は、プロセッサユニット１０１の連続アクセスがエントリのアクセスアドレス範囲において昇順側に進んだと判別する。そのため情報処理装置１００は２５６バイト先のデータを二次キャッシュプリフェッチし、プリフェッチアドレスキュー１０７のエントリにおけるアドレスを２５６バイト加算し、降順ビットを０にリセットしてエントリを更新する。アクセスアドレスパターン監視ユニット１０６が更新したエントリは昇順モードとして動作する。【０１０５】
図９は本実施例に係る昇順モード時の動作例の図である。図９の行はそれぞれ時刻Ｅから時刻Ｌ＋１を表しており、図９の列はそれぞれ６４バイト単位でのアドレス進行を２進数５ビット（０００００〜１０１００＝０Ｂ〜１２８０Ｂ）の範囲で表している。ここで図９では近傍アドレスへの連続アクセスの挙動を表しているためアドレス上位ビットは同じであり、図９では記述を省略している。【０１０６】
また図９において、太枠で囲んである領域がプリフェッチアドレスキュー１０７に登録される領域である。そして「○」が記載のアクセスアドレス領域では、一次キャッシュ１０２が一次キャッシュプリフェッチ（Ｌ１ＰＦ）を生成する。「◎」が記載のアクセスアドレス領域では、二次キャッシュ１０３が二次キャッシュプリフェッチ（Ｌ２ＰＦ）を生成する。「△」が記載のアクセスアドレス領域では、アクセスパターン監視ユニット１０６は該アクセスアドレス領域がプリフェッチアドレスキュー１０７に登録されるエントリと一致すると判別するが、プリフェッチ要求を一次キャッシュプリフェッチ発行ユニット１０８と二次キャッシュプリフェッチ要求発行ユニット１０９に対して行わない。【０１０７】
時刻Ｅにおいて、プリフェッチアドレスキュー１０７に登録されるアドレス領域は「００１００〜０１０１１」である。そしてプロセッサユニット１０１は、アクセスアドレス領域「００１１０」に含まれるアクセスアドレスにメモリ要求をする。時刻Ｅ＋１において、アクセスパターン監視ユニット１０６は該アクセスアドレス領域がプリフェッチアドレスキュー１０７に登録されるエントリと一致すると判別する。またアクセスパターン監視ユニット１０６はプリフェッチ要求を一次キャッシュプリフェッチ発行ユニット１０８と二次キャッシュプリフェッチ要求発行ユニット１０９に対して行わない。これはアクセスアドレス＋６４バイトのアクセスアドレス領域へのアクセス履歴があるためである。【０１０８】
次に時刻Ｆにおいて、プロセッサユニット１０１はアクセスアドレス領域「００１１１」にメモリアクセス要求する。時刻Ｆ＋１において、アクセスパターン監視ユニット１０６は一次キャッシュプリフェッチ要求発行ユニット１０８に対して一次キャッシュプリフェッチの要求を指示する。ここでアクセスパターン監視ユニット１０６はアクセスアドレス＋６４バイトであるアクセスアドレス領域「０１０００」にアクセスしたアクセス履歴はないと判別する。【０１０９】
時刻Ｇにおいて、プロセッサユニット１０１はアクセスアドレス領域「０１００１」に含まれるアドレスに対してメモリアクセス要求を行う。アクセスパターン監視ユニット１０６はアクセスアドレス＋２５６バイトのアクセスアドレス領域「０１１００〜０１１１１」に対して二次キャッシュプリフェッチし、アクセスアドレス＋６４バイトのアクセスアドレス領域「０１０１０」に対して一次キャッシュプリフェッチを行う。【０１１０】
時刻Ｈにおいて、プロセッサユニット１０１はアクセスアドレス領域「０１０００」に含まれるアドレスに対してメモリアクセス要求をする。時刻Ｈ＋１において、アクセスパターン監視ユニット１０６は該アクセスアドレス領域がプリフェッチアドレスキュー１０７に登録されるエントリと一致すると判別する。またアクセスパターン監視ユニット１０６はプリフェッチ要求を一次キャッシュプリフェッチ発行ユニット１０８と二次キャッシュプリフェッチ要求発行ユニット１０９に対して指示しない。【０１１１】
さらに時刻Ｊにおいて、プロセッサユニット１０１のメモリアクセスが進み、プロセッサユニット１０１がアクセスアドレス領域「０１０１０」に含まれるアクセスアドレスにメモリ要求をする。アクセスアドレスがプリフェッチアドレスキューの登録アドレス範囲の先頭近くになったため、プリフェッチで先出しするストライド幅を５１２バイトに広げて二次キャッシュプリフェッチを行うと同時に、プリフェッチアドレスキューの登録アドレス範囲を２５６バイト進め、ストライド幅も５１２バイトに更新する。そして時刻Ｊ＋１において、アクセスパターン監視ユニット１０６は、一次キャッシュプリフェッチ要求発行ユニット１０８に対してプリフェッチ要求を指示する。【０１１２】
時刻Ｋにおいて、プロセッサユニット１０１はアクセスアドレス領域「０１０１１」に含まれるアクセスアドレスにメモリ要求する。時刻Ｋ＋１において、アクセスパターン監視ユニット１０６は一次キャッシュプリフェッチ要求発行ユニット１０８に対してプリフェッチ要求を指示する。同様にして時刻Ｌにおいて、プロセッサユニット１０１はアクセスアドレス領域「０１１０１」に含まれるアドレスにメモリアクセス要求をする。アクセスパターン監視ユニット１０６は一次キャッシュプリフェッチ要求発行ユニット１０８に対してプリフェッチ要求を指示し、さらに二次キャッシュプリフェッチ要求発行ユニット１０９に対してもプリフェッチ要求を指示する。ここで一次キャッシュ１０２はアクセスアドレス領域「０１１１０」をプリフェッチし、二次キャッシュ１０３はアクセスアドレス領域「１０１００〜１１１１１」をプリフェッチする。【０１１３】
図１０は本実施例に係るアクセスパターン監視ユニット１０６がプリフェッチアドレスキュー１０７において複数のエントリを検出した場合を示す図である。以下この複数エントリの検出をマルチヒット検出と呼ぶ。【０１１４】
アクセスパターン監視ユニット１０６がマルチヒット検出するエントリであって、昇順、降順方向が決定していないエントリは、アクセスパターン監視ユニット１０６が選ぶ優先度は低い。そのためアクセスパターン監視ユニット１０６は昇順、降順の両方向矢印がついているエントリをマルチヒット検出した場合、そのエントリを無効とする。図１０において、アクセス１００１、１００３、１００５が該当する。【０１１５】
次に昇順、降順の決定しているエントリであって、進行方向の先頭側でマルチヒット検出されたエントリも優先度が低く無効化対象となる。アクセス１００２では、アクセスパターン監視ユニット１０６は同じ昇順方向に進んでいる複数エントリをマルチヒット検出する。アクセス１００２の場合には、アクセスパターン監視ユニット１０６は、進行方向に対してより前側のアドレス領域が登録されているエントリを優先するため、進行方向前側でヒット検出したエントリを無効化する。【０１１６】
アクセス１００４では、アクセスパターン監視ユニット１０６は昇順降順の逆方向に進んでいる複数エントリがマルチヒット検出する。アクセス１００４では、アクセスパターン監視ユニット１０６は、今後進むと期待されるアドレス範囲が不明であるため、マルチヒット検出した両方のエントリを無効化している。【０１１７】
このように本実施例におけるプリフェッチ制御装置１０５は、アクセスパターン監視ユニット１０６がマルチヒット検出したときに、これまでの連続アクセスの度合いに基づいて、無効化エントリを効果的に決定することができる。【０１１８】
このようにまた本実施例に係る情報処理装置１００は、プロセッサユニット１０１と主記憶装置１０４と、該プロセッサユニット１０１で処理するデータを該主記憶装置１０４からキャッシュする中間記憶部（一次キャッシュ１０２、二次キャッシュ１０３）とを備える。そして情報処理装置１００はデータのキャッシュ制御を行い、該プロセッサユニット１０１が該主記憶装置１０４ないし該中間記憶部（一次キャッシュ１０２、二次キャッシュ１０３）にアクセスするアドレスを含む、連続する前後複数のアドレスを一エントリとして保持するプリフェッチアドレスキュー１０７を備える。情報処理装置１００はアクセス中のアドレスが一エントリに登録されているアドレス範囲の中心になる様に更新制御し、後続アクセスが登録アドレス範囲中で連続方向に進行したのをアクセスパターン監視ユニット１０６によって検知してプリフェッチを行うことを制御を行うことを特徴とする。【０１１９】
またデータのキャッシュ制御を行う情報処理装置１００、プロセッサユニット１０１と、データを記憶した主記憶装置１０４と、該プロセッサユニット１０１で処理するデータを該主記憶装置１０４からキャッシュする中間記憶部（一次キャッシュ１０２、二次キャッシュ１０３）と、該プロセッサユニット１０１が該主記憶装置１０４ないし該中間記憶部（一次キャッシュ１０２、二次キャッシュ１０３）にアクセスするアドレスを含む、連続する前後複数のアドレスを一エントリ情報として保持するプリフェッチアドレスキュー１０７を備えることを特徴とし、該プロセッサユニット１０１が行う該主記憶装置１０４ないし該中間記憶部（一次キャッシュ１０２、二次キャッシュ１０３）へのアクセスのアドレスが連続方向に進行したのを検知してプリフェッチおよびアクセス履歴エントリの更新を行うことを特徴とする。【０１２０】
また情報処理装置１００は、プリフェッチアドレスキュー１０７の一エントリが保持する連続する複数アドレスの中から、一部のアドレスのみを更新して徐々にエントリ保持するアドレス登録範囲を進めていくことを特徴とする。【０１２１】
また情報処理装置１００は、プリフェッチアドレスキュー１０７に登録されるエントリがアクセス方向を示すアクセス方向フラグを保持し、該プロセッサユニット１０１が行う該主記憶装置１０４ないし該中間記憶部（一次キャッシュ１０２、二次キャッシュ１０３）へのアクセス進行方向を検出して、プリフェッチを行う方向を制御することを特徴とする。
【産業上の利用可能性】
【０１２２】
本発明による情報処理装置は、プリフェッチして情報処理装置の処理速度の向上を行うものである。そして本発明による情報処理装置は、アクセス順序が逆転する場合においてプリフェッチ処理する上で極めて有用である。
【図１】
2008155815.tif 000003
【図２】
2008155815.tif 000004
【図３】
2008155815.tif 000005
【図４】
2008155815.tif 000006
【図５】
2008155815.tif 000007
【図６】
2008155815.tif 000008
【図７】
2008155815.tif 000009
【図８】
2008155815.tif 000010
【図９】
2008155815.tif 000011
【図１０】
2008155815.tif 000012
【手続補正書】
【提出日】平成21年10月16日(2009.10.16)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、
データを記憶した第１記憶部と、
該プロセッサで処理するデータを該第１記憶部からフェッチする第２記憶部と、
該第２記憶部にブロック単位で保持したデータのアクセス履歴を管理し、複数のアドレスと該プロセッサがアクセスする該ブロックの遷移方向を示すアクセス方向情報を対応付けた複数のエントリ情報を保持するエントリ保持部と、
該プロセッサのアクセス先が現ブロックから直前にアクセスしたブロックに遷移するとき、該エントリ保持部に保持する現ブロックへのアクセス履歴を更新させる制御部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、  
該制御部は、該エントリ保持部が保持する複数のブロックの中から一部のブロックを更新することを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置において、
該制御部は、更新したアクセス履歴に対応するアドレス範囲と更新前のアクセス履歴に対応するアドレス範囲を保持することを特徴とする情報処理装置。
【請求項４】
請求項１に記載の情報処理装置において、
該エントリ保持部は該ブロックに対応するアドレス範囲を複数有し、
該制御部は、該プロセッサのアクセスするブロックの遷移に応じて、該エントリ保持部に保持するアドレス範囲を更新することを特徴とする情報処理装置。
【請求項５】
請求項４に記載の情報処理装置において、
該制御部は、該アドレス範囲の中で一部のアドレス範囲を更新することを特徴とする情報処理装置。
【請求項６】
請求項５に記載の情報処理装置において、
該制御部は、更新したアドレス範囲と更新前のアドレス範囲を保持することを特徴とする情報処理装置。
【請求項７】
請求項１に記載の情報処理装置において、
該制御部は、該プロセッサがアクセスするデータのアドレスが該ブロックに含まれると判別する該複数のエントリ情報を検出し、検出した複数のエントリ情報の該アクセス方向情報が互いに異なると判別した場合、該アクセス方向情報をリセットすることを特徴とする情報処理装置。
【請求項８】
請求項３に記載の情報処理装置において、
該アドレス範囲は該第２記憶部における連続アドレスの集合であって、該エントリ情報はアドレスが連続するアドレス範囲の組を有することを特徴とする情報処理装置。
【請求項９】
請求項３に記載の情報処理装置において、
該エントリ情報を構成するアドレス範囲は、より細かいアドレス集合単位のサブアドレス範囲から構成され、該エントリ情報はそれぞれのサブアドレス範囲においてアクセスがあったか否かを示すアクセス履歴情報を有することを特徴とする情報処理装置。
【請求項１０】
請求項１に記載の情報処理装置において、
該制御部は、該エントリの更新に際して、該エントリ情報を構成する複数のアドレス範囲の中心近傍に、該プロセッサがアクセスしたアドレスを設定することを特徴とする情報処理装置。
【請求項１１】
請求項１に記載の情報処理装置において、
該制御部が該プロセッサのアクセスアドレスがアクセス進行方向のサブアドレス範囲に含まれると判別する場合には、該制御部は該第２記憶部に先読みするデータを決定することを特徴とする情報処理装置。
【請求項１２】
請求項１に記載の情報処理装置において、
該アクセス方向情報は、該プロセッサがアクセスするブロックの遷移方向を示す昇順ビット及び降順ビットであることを特徴とする情報処理装置。
【請求項１３】
請求項１に記載の情報処理装置において、
該制御部が複数の該エントリ情報を検出した場合であって、アクセス進行方向の先頭側のブロックに該プロセッサのアクセスするデータのアドレスが含まれると判別した場合には、該制御部は該複数のエントリ情報をリセットすることを特徴とする情報処理装置。
【国際調査報告】
2008155815.tif 000013
2008155815.tif 000014