(57)【特許請求の範囲】
【請求項１】
プロセッサからの第１のラップアラウンドメモリアクセスリクエストの対象がプリフェッチバッファに格納されているか否かを判定する判定部と、
前記対象が前記プリフェッチバッファに格納されていないと判定された場合において前記対象を含む第２のラップアラウンドメモリアクセスリクエストを生成するリクエスト生成部と、
前記第１のラップアラウンドメモリアクセスリクエストの開始アドレスを所定の規則に従ってアドレス変換して前記第２のラップアラウンドメモリアクセスリクエストの開始アドレスとして生成するアドレス変換部と
を具備し、
前記アドレス変換部は、前記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位ビット部分のうち、前記第１のラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さの前記下位ビット部分をゼロ値に置換することにより前記アドレス変換を行う
メモリアクセス制御回路。
【請求項２】
前記第１のラップアラウンドメモリアクセスリクエストが４バーストのラップアラウンドを行うリクエストであり、前記第２のラップアラウンドメモリアクセスリクエストが１６バーストのラップアラウンドを行うリクエストである場合において、前記アドレス変換部は、前記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位２ビットをゼロ値に置換することにより前記アドレス変換を行う請求項１記載のメモリアクセス制御回路。
【請求項３】
前記第１のラップアラウンドメモリアクセスリクエストが４バーストのラップアラウンドを行うリクエストであり、前記第２のラップアラウンドメモリアクセスリクエストが８バーストのラップアラウンドを行うリクエストである場合において、前記アドレス変換部は、前記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位２ビットをゼロ値に置換することにより前記アドレス変換を行う請求項１記載のメモリアクセス制御回路。
【請求項４】
前記第１のラップアラウンドメモリアクセスリクエストが８バーストのラップアラウンドを行うリクエストであり、前記第２のラップアラウンドメモリアクセスリクエストが１６バーストのラップアラウンドを行うリクエストである場合において、前記アドレス変換部は、前記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位３ビットをゼロ値に置換することにより前記アドレス変換を行う請求項１記載のメモリアクセス制御回路。
【請求項５】
プリフェッチバッファと、
プロセッサからの第１のラップアラウンドメモリアクセスリクエストの対象が前記プリフェッチバッファに格納されているか否かを判定する判定部と、
前記対象が前記プリフェッチバッファに格納されていないと判定された場合において前記対象を含む第２のラップアラウンドメモリアクセスリクエストを生成するリクエスト生成部と、
前記第１のラップアラウンドメモリアクセスリクエストの開始アドレスを所定の規則に従ってアドレス変換して前記第２のラップアラウンドメモリアクセスリクエストの開始アドレスとして生成するアドレス変換部と
を具備し、
前記アドレス変換部は、前記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位ビット部分のうち、前記第１のラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さの前記下位ビット部分をゼロ値に置換することにより前記アドレス変換を行う
プリフェッチ回路。
【請求項６】
メモリと、
前記メモリの一部のコピーを格納するプリフェッチバッファと、
プロセッサからの第１のラップアラウンドメモリアクセスリクエストの対象が前記プリフェッチバッファに格納されているか否かを判定する判定部と、
前記対象が前記プリフェッチバッファに格納されていないと判定された場合において前記メモリに対する前記対象を含む第２のラップアラウンドメモリアクセスリクエストを生成するリクエスト生成部と、
前記第１のラップアラウンドメモリアクセスリクエストの開始アドレスを所定の規則に従ってアドレス変換して前記第２のラップアラウンドメモリアクセスリクエストの開始アドレスとして生成するアドレス変換部と
を具備し、
前記アドレス変換部は、前記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位ビット部分のうち、前記第１のラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さの前記下位ビット部分をゼロ値に置換することにより前記アドレス変換を行う
メモリ装置。
【請求項７】
プロセッサと、
メモリと、
前記メモリの一部のコピーを格納するプリフェッチバッファと、
前記プロセッサからの第１のラップアラウンドメモリアクセスリクエストの対象が前記プリフェッチバッファに格納されているか否かを判定する判定部と、
前記対象が前記プリフェッチバッファに格納されていないと判定された場合において前記メモリに対する前記対象を含む第２のラップアラウンドメモリアクセスリクエストを生成するリクエスト生成部と、
前記第１のラップアラウンドメモリアクセスリクエストの開始アドレスを所定の規則に従ってアドレス変換して前記第２のラップアラウンドメモリアクセスリクエストの開始アドレスとして生成するアドレス変換部と
を具備し、
前記アドレス変換部は、前記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位ビット部分のうち、前記第１のラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さの前記下位ビット部分をゼロ値に置換することにより前記アドレス変換を行う
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス制御回路に関し、特にメモリに対してバーストアクセスを行うメモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システムに関する。
【背景技術】
【０００２】
プロセッサはメモリを命令保持領域およびデータ保持領域として使用するため、プログラム実行中に高い頻度でメモリへのアクセスを必要とする。そのようなメモリへのアクセスによる負荷を低減するために、プロセッサとメモリの間にキャッシュメモリが設けられている。キャッシュメモリは連続した複数のワードを１つのラインとして管理するため、キャッシュミスヒット時には複数のワードをまとめてフィルすることになるが、その際、メモリからのデータ転送にはバースト転送が用いられる。
【０００３】
バースト転送により複数ワードの転送を行う際、特定のアドレス範囲内においてアドレスを循環させるラップアラウンド機能を用いることにより、転送されるワードの順序を変更可能とするシステムが知られている。例えば、バースト転送の種類として４バーストラップ（ＷＲＡＰ４）、８バーストラップ（ＷＲＡＰ８）、１６バーストラップ（ＷＲＡＰ１６）等を指定可能なデータ処理装置が提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１５５４８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
メモリの階層化が進み、キャッシュメモリとメモリの間にプリフェッチバッファを設ける場合も生じ得る。この場合、プリフェッチバッファの管理サイズはキャッシュメモリのラインサイズよりも長くすることが想定されるため、バースト転送のサイズも増すことになる。例えば、プロセッサから４バーストラップのリクエストがあった場合、プリフェッチバッファにおいては１６バーストラップをメモリに要求することが考えられる。この場合においてラップアラウンド機能を用いると、図７（ａ）に示すように、開始アドレスが第３ワードであったとすると残りの第０乃至２ワードは速やかに転送されず、プロセッサにストールが生じることになる。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、サイズの異なるラップアラウンドメモリアクセスリクエストを生成する際に、プロセッサストールサイクルが低減するように開始アドレスを変換することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、プロセッサからの第１のラップアラウンドメモリアクセスリクエストの対象がプリフェッチバッファに格納されているか否かを判定する判定部と、上記対象が上記プリフェッチバッファに格納されていないと判定された場合において上記対象を含む第２のラップアラウンドメモリアクセスリクエストを生成するリクエスト生成部と、上記第１のラップアラウンドメモリアクセスリクエストの開始アドレスを所定の規則に従ってアドレス変換して上記第２のラップアラウンドメモリアクセスリクエストの開始アドレスとして生成するアドレス変換部とを具備するメモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システムである。これにより、第１のラップアラウンドメモリアクセスリクエストの応答完了までの処理を高速化し、プロセッサストールサイクルを低減させるという作用をもたらす。
【０００８】
また、この第１の側面において、上記アドレス変換部は、上記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位ビット部分を所定値に置換することにより上記アドレス変換を行うようにしてもよい。この場合において、上記アドレス変換部は、上記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのうち上記第１のラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さの上記下位ビット部分を上記所定値に置換することにより上記アドレス変換を行うようにしてもよい。さらに、上記アドレス変換部は、上記第１のラップアラウンドメモリアクセスリクエストの開始アドレスの上記下位ビット部分をゼロ値に置換することにより上記アドレス変換を行うようにしてもよい。
【０００９】
特に、上記第１のラップアラウンドメモリアクセスリクエストが４バーストのラップアラウンドを行うリクエストであり、上記第２のラップアラウンドメモリアクセスリクエストが１６バーストのラップアラウンドを行うリクエストである場合において、上記アドレス変換部は、上記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位２ビットをゼロ値に置換することにより上記アドレス変換を行うようにしてもよい。
【００１０】
また、上記第１のラップアラウンドメモリアクセスリクエストが４バーストのラップアラウンドを行うリクエストであり、上記第２のラップアラウンドメモリアクセスリクエストが８バーストのラップアラウンドを行うリクエストである場合において、上記アドレス変換部は、上記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位２ビットをゼロ値に置換することにより上記アドレス変換を行うようにしてもよい。
【００１１】
また、上記第１のラップアラウンドメモリアクセスリクエストが８バーストのラップアラウンドを行うリクエストであり、上記第２のラップアラウンドメモリアクセスリクエストが１６バーストのラップアラウンドを行うリクエストである場合において、上記アドレス変換部は、上記第１のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位３ビットをゼロ値に置換することにより上記アドレス変換を行うようにしてもよい。
【発明の効果】
【００１２】
本発明によれば、サイズの異なるラップアラウンドメモリアクセスリクエストを生成する際に開始アドレスを変換することにより、プロセッサストールサイクルを低減することができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態における情報処理システムの一構成例を示す図である。
【図２】本発明の実施の形態におけるバスマスタインターフェース１０２の一構成例を示す図である。
【図３】ＨＢＵＲＳＴ［２：０］信号の内容を示す図である。
【図４】本発明の実施の形態におけるプリフェッチ回路２００の一構成例を示す図である。
【図５】本発明の第１の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。
【図６】本発明の第１の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。
【図７】本発明の第１の実施の形態によるラップアラウンドメモリアクセスリクエストのタイミング例を説明するための図である。
【図８】本発明の第２の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。
【図９】本発明の第２の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。
【図１０】本発明の第３の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。
【図１１】本発明の第３の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（ＷＲＡＰ４に対してＷＲＡＰ１６を生成する例）
２．第２の実施の形態（ＷＲＡＰ４に対してＷＲＡＰ８を生成する例）
３．第３の実施の形態（ＷＲＡＰ８に対してＷＲＡＰ１６を生成する例）
【００１５】
＜１．第１の実施の形態＞
［情報処理システム構成］
図１は、本発明の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、プロセッサ１００と、クライアント１１０乃至１３０と、プリフェッチ回路２００と、メモリバス３００と、メモリコントローラ４００と、メモリ５００を備えている。
【００１６】
プロセッサ１００は、プログラムの各命令に従って処理を実行するものである。プログラムの各命令はメモリ５００の命令保持領域に保持される。また、処理に必要なデータはメモリ５００のデータ保持領域に保持される。これらメモリ５００の命令保持領域およびデータ保持領域の内容は、その一部のコピーがプリフェッチ回路２００に保持される。また、プロセッサ１００は内部にキャッシュメモリ１０１を備えており、メモリ５００の命令保持領域およびデータ保持領域の一部のコピーが保持される。また、プロセッサ１００は内部にバスマスタインターフェース１０２を備えており、メモリバス３００に対するやり取りを行うようになっている。
【００１７】
プリフェッチ回路２００は、メモリ５００の命令保持領域およびデータ保持領域の内容の一部のコピーをプリフェッチして保持するものである。後述するように、このプリフェッチ回路２００は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストのサイズおよび開始アドレスを変換してメモリバス３００に出力する。
【００１８】
メモリバス３００は、プロセッサ１００に接続するプリフェッチ回路２００、プロセッサ１００以外の他のクライアント１１０乃至１３０、および、メモリコントローラ４００を接続するバスである。ここでは統合メモリシステム（Unified Memory System）を想定しているが、本発明はこれに限定されるものではない。
【００１９】
メモリコントローラ４００は、メモリ５００に対するアクセスを制御するためのコントローラである。メモリ５００は、プロセッサ１００および他のクライアント１１０乃至１３０に共有されるメモリである。
【００２０】
［バスマスタインターフェース］
図２は、本発明の実施の形態におけるバスマスタインターフェース１０２の一構成例を示す図である。このバスマスタインターフェース１０２は、ＡＲＭ社のＡＨＢバスマスタインターフェースに準ずるものであるが、本発明はこれに限定されるものではなく、ＡＸＩバスやＯＣＰバス等、ラップアラウンドメモリアクセスを行う他のバスにも適用することができる。
【００２１】
ＨＧＲＡＮＴ信号は、アービタによって許可されたバス転送であることを示す信号である。ＨＲＥＡＤＹ信号は、現在の転送が終了したことを示す信号である。ＨＲＥＳＰ［１：０］信号は、転送ステータスを示す信号である。ＨＲＥＳＥＴｎ信号は、グローバルリセットを行うための信号である。なお、信号名の最後の「ｎ」は、ローアクティブ信号であることを意味する。
【００２２】
ＨＣＬＫ信号は、バスクロックの入力信号である。ＨＣＬＫＥＮ信号は、バスクロックのイネーブル信号である。ＨＲＤＡＴＡ［３１：０］信号は、メモリ５００からのリードデータの入力信号である。
【００２３】
ＨＢＵＳＲＥＱ信号は、バス転送をアービタに要求するための信号である。ＨＬＯＣＫ信号は、ロックされたアクセスであることを示す信号である。ＨＴＲＡＮＳ［１：０］は、現在の転送のタイプを示す信号である。
【００２４】
ＨＡＤＤＲ［３１：０］は、メモリ５００に対してリードアドレスまたはライトアドレスを出力するアドレス信号である。バースト転送の場合、このアドレス信号は開始アドレスを示すことになる。ＨＷＲＩＴＥ信号は、現在の転送の方向がライト方向であるかリード方向であるかを示す信号である。ＨＳＩＺＥ［２：０］は、現在の転送のサイズを示す信号である。ＨＢＵＲＳＴ［２：０］は、現在の転送のバースト長を示す信号である。ＨＰＲＯＴ［３：０］は、プロテクション制御信号である。ＨＷＤＡＴＡ［３１：０］信号は、メモリ５００に対するライトデータの出力信号である。
【００２５】
図３は、ＨＢＵＲＳＴ［２：０］信号の内容を示す図である。ＨＢＵＲＳＴ［２：０］が「３'ｂ０００」を示す場合には、シングル転送（ＳＩＮＧＬＥ）を意味する。なお、「ｎ'ｂ０…０」は、ｎ桁（ここでは３桁）のビット列を表現するものである。ＨＢＵＲＳＴ［２：０］が「３'ｂ００１」を示す場合には、長さ指定のないインクリメンタルバースト転送（ＩＮＣＲ）を意味する。インクリメンタルバースト転送とは、各バーストを転送する際にアドレスに固定値を加算するものである。ＨＢＵＲＳＴ［２：０］が「３'ｂ０１０」を示す場合には、４バーストのラップアラウンドバースト転送（ＷＲＡＰ４）を意味する。ラップアラウンドバースト転送とは、特定のアドレス範囲内においてアドレスを加算して、ラップ境界においてアドレスを循環させるものである。ここでは、ラップアラウンドメモリアクセスをラップアラウンドバースト転送と同義のものとして扱う。
【００２６】
ＨＢＵＲＳＴ［２：０］が「３'ｂ０１１」を示す場合には、４バーストのインクリメンタルバースト転送（ＩＮＣＲ４）を意味する。ＨＢＵＲＳＴ［２：０］が「３'ｂ１００」を示す場合には、８バーストのラップアラウンドバースト転送（ＷＲＡＰ８）を意味する。ＨＢＵＲＳＴ［２：０］が「３'ｂ１０１」を示す場合には、８バーストのインクリメンタルバースト転送（ＩＮＣＲ８）を意味する。ＨＢＵＲＳＴ［２：０］が「３'ｂ１１０」を示す場合には、１６バーストのラップアラウンドバースト転送（ＷＲＡＰ１６）を意味する。ＨＢＵＲＳＴ［２：０］が「３'ｂ１１１」を示す場合には、１６バーストのインクリメンタルバースト転送（ＩＮＣＲ１６）を意味する。
【００２７】
［プリフェッチ回路の構成］
図４は、本発明の実施の形態におけるプリフェッチ回路２００の一構成例を示す図である。このプリフェッチ回路２００は、プリフェッチバッファ２１０と、タグ管理部２２０と、ヒット判定部２３０と、リクエスト生成部２４０と、アドレス変換部２５０とを備える。
【００２８】
プリフェッチバッファ２１０は、メモリ５００におけるプロセッサ１００のための命令保持領域およびデータ保持領域の内容の一部のコピーを保持するバッファである。このプリフェッチバッファ２１０の管理単位のサイズは、プロセッサ１００のキャッシュメモリ１０１のラインサイズよりも大きいことを想定している。
【００２９】
タグ管理部２２０は、プリフェッチバッファ２１０に保持される対象（命令またはデータ）のアドレスのタグを管理するものである。タグとしては、対象のアドレスフィールドの上位の複数ビットのうち、一部のビットが用いられる。
【００３０】
ヒット判定部２３０は、プロセッサ１００からのメモリアクセスがプリフェッチバッファ２１０にヒットしているか否かを判定するものである。すなわち、プロセッサ１００からのメモリアクセスの対象（命令またはデータ）がプリフェッチバッファ２１０に格納されていればヒットであり、格納されていなければミスヒットとなる。このヒット判定部２３０は、プロセッサ１００からのアドレスＨＡＤＤＲ＿Ｉ［３１：０］信号を参照することにより、プリフェッチバッファ２１０にヒットしているか否かを判定する。
【００３１】
リクエスト生成部２４０は、プロセッサ１００からのメモリアクセスリクエストに従って、メモリ５００へのメモリアクセスリクエストを生成するものである。ヒット判定部２３０がミスヒットであると判定した場合、リクエスト生成部２４０はプロセッサ１００からのバースト種類を表すＨＢＵＲＳＴ＿Ｉ［２：０］信号に基づいて、新たなバースト種類を表すＨＢＵＲＳＴ＿Ｏ［２：０］信号を生成する。この第１の実施の形態では、ＨＢＵＲＳＴ＿Ｉ［２：０］信号が「ＷＲＡＰ４」を示している場合に、ＨＢＵＲＳＴ＿Ｏ［２：０］信号として「ＷＲＡＰ１６」を出力する。
【００３２】
アドレス変換部２５０は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストのバースト転送の開始アドレスを変換するものである。ヒット判定部２３０がミスヒットであると判定した場合、アドレス変換部２５０はプロセッサ１００からの開始アドレスを表すＨＡＤＤＲ＿Ｉ［３１：０］信号を所定の規則に従ってアドレス変換して、新たな開始アドレスを表すＨＡＤＤＲ＿Ｏ［３１：０］信号を生成する。アドレス変換の具体例として、ＨＡＤＤＲ＿Ｉ［３１：０］信号の開始アドレスのバースト単位の下位ビット部分を所定値（例えば、ゼロ値）に置換することが考えられる。この下位ビット部分の長さは、プロセッサ１００からのラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さである。この第１の実施の形態の場合、プロセッサ１００からのラップアラウンドサイズが４バーストであるため、ＨＡＤＤＲ＿Ｉ［３１：０］信号の開始アドレスのバースト単位の下位２ビット（ＨＡＤＤＲ＿Ｉ［３：２］）をゼロ値に置換する。後述のように、プロセッサ１００からのラップアラウンドサイズが８バーストである場合には、ＨＡＤＤＲ＿Ｉ［３１：０］信号の開始アドレスのバースト単位の下位３ビット（ＨＡＤＤＲ＿Ｉ［４：２］）をゼロ値に置換する。すなわち、プロセッサ１００からのラップアラウンドサイズが２mバーストである場合には、ＨＡＤＤＲ＿Ｉ［３１：０］信号の開始アドレスのバースト単位の下位ｍビット（ＨＡＤＤＲ＿Ｉ［（ｍ＋１）：２］）をゼロ値に置換する。なお、置換されたビット部分以外は、ＨＡＤＤＲ＿Ｉ［３１：０］信号の値がそのまま使用されて、ＨＡＤＤＲ＿Ｏ［３１：０］信号となる。
【００３３】
［ラップアラウンドメモリアクセスリクエストの応答タイミング］
図５は、本発明の第１の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。この第１の実施の形態では、プロセッサ１００からのラップアラウンドメモリアクセスリクエストがＷＲＡＰ４であり、プリフェッチ回路２００からのラップアラウンドメモリアクセスリクエストがＷＲＡＰ１６である例を示している。
【００３４】
同図（ａ）は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスが「０」乃至「３」である場合の対応関係を示している。この場合、プリフェッチ回路２００への応答の開始アドレスを「０」に固定することにより、「＋０」乃至「＋３」の追加レイテンシで４バーストの転送を完了することができる。
【００３５】
同図（ｂ）は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスが「４」乃至「７」である場合の対応関係を示している。この場合、プリフェッチ回路２００への応答の開始アドレスを「４」に固定することにより、「＋０」乃至「＋３」の追加レイテンシで４バーストの転送を完了することができる。
【００３６】
同図（ｃ）は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスが「８」乃至「１１」である場合の対応関係を示している。この場合、プリフェッチ回路２００への応答の開始アドレスを「８」に固定することにより、「＋０」乃至「＋３」の追加レイテンシで４バーストの転送を完了することができる。
【００３７】
同図（ｄ）は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスが「１２」乃至「１５」である場合の対応関係を示している。この場合、プリフェッチ回路２００への応答の開始アドレスを「１２」に固定することにより、「＋０」乃至「＋３」の追加レイテンシで４バーストの転送を完了することができる。
【００３８】
図６は、本発明の第１の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。すなわち、プロセッサ１００からのバースト種類を表すＨＢＵＲＳＴ＿Ｉ［２：０］信号が「ＷＲＡＰ４」を示している場合、新たなバースト種類を表すＨＢＵＲＳＴ＿Ｏ［２：０］信号は「ＷＲＡＰ１６」となる。また、プロセッサ１００からの開始アドレスを表すＨＡＤＤＲ＿Ｉ［３１：０］信号のうち、バースト単位の下位２ビット（ＨＡＤＤＲ＿Ｉ［３：２］）がゼロ値に置換されて、ＨＡＤＤＲ＿Ｏ［３１：０］信号が生成される。
【００３９】
この場合、追加レイテンシは「＋０」乃至「＋３」であり、最悪のケースでも３サイクルの追加レイテンシしか生じない。これ対し、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスをそのまま用いた場合、最大で１２サイクルのストール期間が生じ得る。
【００４０】
図７は、本発明の第１の実施の形態によるラップアラウンドメモリアクセスリクエストのタイミング例を説明するための図である。ここでは、プロセッサ１００からのバースト種類が「ＷＲＡＰ４」であり、プリフェッチ回路２００からのバースト種類が「ＷＲＡＰ１６」である。また、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスを「３」としている。
【００４１】
同図（ａ）は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスをそのままメモリ５００へ出力したと仮定した場合のタイミングである。この場合、バースト「３」は速やかに受け取ることができるが、バースト「０」以降を受け取るまでに待ちが生じ、プロセッサ１００において１２サイクルのストール期間が生じてしまう。
【００４２】
そこで、本発明の第１の実施の形態では、プリフェッチ回路２００からのラップアラウンドメモリアクセスリクエストの開始アドレスを「０」に固定することにより、同図（ｂ）のように早期にバースト転送を完了する。この場合、バースト「３」を受け取るまでに３サイクルの追加レイテンシが生じるが、バースト「０」以降は既に揃っているため、さらなる待ちを生じることなくバースト転送を完了することができる。すなわち、この例では、９サイクル分の性能向上を実現することができることがわかる。
【００４３】
このように、本発明の第１の実施の形態によれば、ＷＲＡＰ４からＷＲＡＰ１６を生成する際に開始アドレスのバースト単位の下位２ビットをゼロ値に置換することにより、プロセッサストールサイクルを低減することができる。
【００４４】
＜２．第２の実施の形態＞
この第２の実施の形態では、プロセッサ１００からのラップアラウンドメモリアクセスリクエストがＷＲＡＰ４であり、プリフェッチ回路２００からのラップアラウンドメモリアクセスリクエストがＷＲＡＰ８である例について説明する。情報処理システムとしての構成は第１の実施の形態と同様である。
【００４５】
［ラップアラウンドメモリアクセスリクエストの応答タイミング］
図８は、本発明の第２の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。この第２の実施の形態は、プリフェッチ回路２００からのラップアラウンドメモリアクセスリクエストがＷＲＡＰ１６である以外は、上述の第１の実施の形態と同様である。
【００４６】
同図（ａ）は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスが「０」乃至「３」である場合の対応関係を示している。この場合、プリフェッチ回路２００への応答の開始アドレスを「０」に固定することにより、「＋０」乃至「＋３」の追加レイテンシで４バーストの転送を完了することができる。
【００４７】
同図（ｂ）は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスが「４」乃至「７」である場合の対応関係を示している。この場合、プリフェッチ回路２００への応答の開始アドレスを「４」に固定することにより、「＋０」乃至「＋３」の追加レイテンシで４バーストの転送を完了することができる。
【００４８】
同図（ｃ）は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスが「８」乃至「１１」である場合の対応関係を示している。この場合、プリフェッチ回路２００への応答の開始アドレスを「８」に固定することにより、「＋０」乃至「＋３」の追加レイテンシで４バーストの転送を完了することができる。
【００４９】
同図（ｄ）は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスが「１２」乃至「１５」である場合の対応関係を示している。この場合、プリフェッチ回路２００への応答の開始アドレスを「１２」に固定することにより、「＋０」乃至「＋３」の追加レイテンシで４バーストの転送を完了することができる。
【００５０】
図９は、本発明の第２の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。すなわち、プロセッサ１００からのバースト種類を表すＨＢＵＲＳＴ＿Ｉ［２：０］信号が「ＷＲＡＰ４」を示している場合、新たなバースト種類を表すＨＢＵＲＳＴ＿Ｏ［２：０］信号は「ＷＲＡＰ８」となる。また、プロセッサ１００からの開始アドレスを表すＨＡＤＤＲ＿Ｉ［３１：０］信号のうち、バースト単位の下位２ビット（ＨＡＤＤＲ＿Ｉ［３：２］）がゼロ値に置換されて、ＨＡＤＤＲ＿Ｏ［３１：０］信号が生成される。
【００５１】
この場合、上述の第１の実施の形態と同様に、追加レイテンシは「＋０」乃至「＋３」であり、最悪のケースでも３サイクルの追加レイテンシしか生じない。これ対し、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスをそのまま用いた場合、最大で４サイクルのストール期間が生じ得る。
【００５２】
このように、本発明の第２の実施の形態によれば、ＷＲＡＰ４からＷＲＡＰ８を生成する際に開始アドレスのバースト単位の下位２ビットをゼロ値に置換することにより、プロセッサストールサイクルを低減することができる。
【００５３】
＜３．第３の実施の形態＞
この第３の実施の形態では、プロセッサ１００からのラップアラウンドメモリアクセスリクエストがＷＲＡＰ８であり、プリフェッチ回路２００からのラップアラウンドメモリアクセスリクエストがＷＲＡＰ１６である例について説明する。情報処理システムとしての構成は第１の実施の形態と同様である。
【００５４】
［ラップアラウンドメモリアクセスリクエストの応答タイミング］
図１０は、本発明の第３の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。
【００５５】
同図（ａ）は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスが「０」乃至「７」である場合の対応関係を示している。この場合、プリフェッチ回路２００への応答の開始アドレスを「０」に固定することにより、「＋０」乃至「＋７」の追加レイテンシで８バーストの転送を完了することができる。
【００５６】
同図（ｂ）は、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスが「８」乃至「１５」である場合の対応関係を示している。この場合、プリフェッチ回路２００への応答の開始アドレスを「８」に固定することにより、「＋０」乃至「＋７」の追加レイテンシで８バーストの転送を完了することができる。
【００５７】
図１１は、本発明の第３の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。すなわち、プロセッサ１００からのバースト種類を表すＨＢＵＲＳＴ＿Ｉ［２：０］信号が「ＷＲＡＰ８」を示している場合、新たなバースト種類を表すＨＢＵＲＳＴ＿Ｏ［２：０］信号は「ＷＲＡＰ１６」となる。また、プロセッサ１００からの開始アドレスを表すＨＡＤＤＲ＿Ｉ［３１：０］信号のうち、バースト単位の下位３ビット（ＨＡＤＤＲ＿Ｉ［４：２］）がゼロ値に置換されて、ＨＡＤＤＲ＿Ｏ［３１：０］信号が生成される。
【００５８】
この場合、追加レイテンシは「＋０」乃至「＋７」であり、最悪のケースでも７サイクルの追加レイテンシしか生じない。これ対し、プロセッサ１００からのラップアラウンドメモリアクセスリクエストの開始アドレスをそのまま用いた場合、最大で１２サイクルのストール期間が生じ得る。
【００５９】
このように、本発明の第３の実施の形態によれば、ＷＲＡＰ８からＷＲＡＰ１６を生成する際に開始アドレスのバースト単位の下位３ビットをゼロ値に置換することにより、プロセッサストールサイクルを低減することができる。
【００６０】
なお、本発明の実施の形態では、ＡＨＢバスマスタインターフェースに準ずるものを例に挙げて説明したが、本発明はこれに限定されるものではなく、ＡＸＩバスやＯＣＰバス等、ラップアラウンドメモリアクセスを行う他のバスにも適用することができる。
【００６１】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、本発明の実施の形態において明示したように、本発明の実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本発明の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【符号の説明】
【００６２】
１００  プロセッサ
１０１  キャッシュメモリ
１０２  バスマスタインターフェース
１１０〜１３０  クライアント
２００  プリフェッチ回路
２１０  プリフェッチバッファ
２２０  タグ管理部
２３０  ヒット判定部
２４０  リクエスト生成部
２５０  アドレス変換部
３００  メモリバス
４００  メモリコントローラ
５００  メモリ
【図１】
0005598337.tif 000002
【図２】
0005598337.tif 000003
【図３】
0005598337.tif 000004
【図４】
0005598337.tif 000005
【図５】
0005598337.tif 000006
【図６】
0005598337.tif 000007
【図７】
0005598337.tif 000008
【図８】
0005598337.tif 000009
【図９】
0005598337.tif 000010
【図１０】
0005598337.tif 000011
【図１１】
0005598337.tif 000012