(57)【要約】【課題】ＰＣＩ−ＰＣＩバスブリッジにおいて、シングルメモリリードアクセスにて数ワード連続で読み込む場合などに、プリフェッチ機能を有効に利用することができなかった。【解決手段】リードデータ先読み有効領域情報を持った先読み有効領域情報格納部２０３と、リードデータの先読みの有効と無効を判断する先読み有効領域判断部２０４とを備え、適切なサイズで、第２のバス２０２へリードデータ先読みを行なう事により、第２のバス２０２上の転送効率を向上させることができる。【選択図】図２
2006331252.tif 000002
【特許請求の範囲】
【請求項１】
第１のバスと第２のバスに接続し、第２のバスにおいてリードデータの先読みが有効となるアドレス領域の情報を保持する先読み有効領域情報格納部と、前記先読み有効領域情報格納部内の先読み有効アドレス領域情報と、第１のバスからのリードデータ要求アドレスとを比較し、第１のバスから要求されたデータのアドレスが先読み有効領域内かどうかを判断する先読み有効領域判断部と、前記先読み有効領域判断部で、第１のバスから要求されたデータのアドレスが先読み有効領域内と判断した場合、第１のバスからのリードアクセスが、特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第１のバスから要求があったデータ及び、前記データに続くデータを取得する為の手続きを第２のバスに対し行なうマルチアクセス変換部と、第２のバスより先読みしたリードデータを保持し、保持されたリードデータのアドレスと、第１のバスからのリードデータ要求アドレスとを比較し、第１のバスより要求されたデータが格納されているかどうかを判断する先読みデータ保持部とからなり、前記先読みデータ保持部において、第１のバスより要求されたリードデータが前記先読みデータ保持部に保持されていると判断した場合、第１のバスに先読みしたリードデータを送出することが可能なバスブリッジ装置。
【請求項２】
前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第２のバスにおけるリードデータの先読みが有効となる領域の先頭アドレスと、その連続した領域のサイズで表すことを特徴とした請求項１に記載のバスブリッジ装置。
【請求項３】
前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第２のバスにおけるリードデータの先読みが有効となる領域の先頭アドレスと、前記先頭アドレスと連続し先読みが有効となる領域の終端アドレスとで表すことを特徴とした請求項１に記載のバスブリッジ装置。
【請求項４】
前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第２のバスにおける先読みが無効となる領域の先頭アドレスと、その連続した領域のサイズとで表すことを特徴とした請求項１に記載のバスブリッジ装置。
【請求項５】
前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第２のバスにおけるリードデータの先読みが無効となる領域の先頭アドレスと、第２のバスにおけるリードデータの先読みが無効となる領域の終端アドレスとで表すことを特徴とした請求項１に記載のバスブリッジ装置。
【請求項６】
前記先読み有効領域情報格納部は、複数の先読み有効アドレス領域情報を保持することを特徴とする、請求項２から５のいずれか一項に記載のバスブリッジ装置。
【請求項７】
前記マルチアクセス変換部は、前記先読み有効領域判断部にて、第１のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、第１のバスから要求されたアドレスのデータを第２のバスより読み込み、かつ、その次のデータを第２のバスより先読みすることを特徴とする請求項１から６のいずれか一項に記載のバスブリッジ装置。
【請求項８】
前記マルチアクセス変換部は、前記先読み有効領域判断部にて、第１のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、第１のバスから要求されたアドレスから、残りの連続した先読み有効領域のデータを、第２のバスより先読みすることを特徴とする請求項１から６のいずれか一項に記載のバスブリッジ装置。
【請求項９】
前記第２のバスは、バースト転送時のアドレス境界を規定したプロトコルを持ち、前記先読み有効領域判断部にて、第１のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、前記マルチアクセス変換部は、第２のバスのアドレス境界までのデータに関し、第２のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項１から６のいずれか一項に記載のバスブリッジ装置。
【請求項１０】
前記第２のバスは、バーストプロトコルを持ち、前記先読み有効領域判断部にて、第１のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、前記マルチアクセス変換部は、第２のバスで規定されたバーストサイズに応じて、第２のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項１から６のいずれか一項に記載のバスブリッジ装置。
【請求項１１】
前記第２のバスは、バースト転送時のアドレス境界を規定したバーストプロトコルを持ち、前記先読み有効領域判断部にて、第１のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、前記マルチアクセス変換部は、第２のバスで規定されたバーストサイズ及び、アドレス境界に応じて、第２のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項１から６のいずれか一項に記載のバスブリッジ装置。
【請求項１２】
前記第１のバスのデータビット幅が前記第２のバスのデータビット幅より大きい又は等しい場合、第２のバスでのアクセス対象となるデータの１アドレス毎のアクセスデータ幅が、前記第２のバスのデータビット幅より小さい又は、等しい時、前記マルチアクセス変換部は、第２のバスに対し、前記アクセスデータ幅に合わせ、第２のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項１から６のいずれか一項に記載のバスブリッジ装置。
【請求項１３】
前記第１のバスのデータビット幅が前記第２のバスのデータビット幅より大きい又は等しい場合、第２のバスでのアクセス対象となるデータの１アドレス毎のアクセスデータ幅が、前記第１のバスのデータビット幅より大きい又は等しい時、前記マルチアクセス変換部は、第２のバスに対し、第２のバスで規定するアクセスサイズに応じて、第２のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項１から６のいずれか一項に記載のバスブリッジ装置。
【請求項１４】
前記第１のバスのデータビット幅が前記第２のバスのデータビット幅より小さい時、前記マルチアクセス変換部は、第２のバスに対し、第２のバスでのアクセス対象となるデータの１アドレス毎のアクセスデータ幅に合わせ、第２のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項１から６のいずれか一項に記載のバスブリッジ装置。
【請求項１５】
前記マルチアクセス変換部は、第２のバスに対し、前記先読みデータ保持部のバッファサイズ分のリードデータの先読みを行なう事を特徴とする請求項１から６のいずれか一項に記載のバスブリッジ装置。
【請求項１６】
前記マルチアクセス変換部は、第１のバスのアクセスの有無に拘らず、前記先読みデータ保持部で第１のバスにデータを送出し空いたサイズ分のデータを、第２のバスに対しバスコマンドを発行し、先読みを行なうことを特徴とする請求項１から６のいずれか一項に記載のバスブリッジ装置。
【請求項１７】
前記先読みデータ保持部を複数持ち、前記先読み有効領域判断部は、前記複数の先読みデータ保持部の先頭データアドレスと、第１のバスからのリードデータ要求アドレスとを比較し、どの先読みデータ保持部に第１のバスより要求されたデータが保持されているかどうかを判断する事を特徴とする請求項１から１６のいずれか一項に記載のバスブリッジ装置。
【請求項１８】
第１のバスは、ディレイトランザクションに対応したＰＣＩバスである事を特徴とする請求項１から１７のいずれか一項に記載のバスブリッジ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバスブリッジ装置及びそれを用いたコンピュータシステムにおいて、特にプリフェッチ機能を有したバスブリッジ装置及びコンピュータシステムに関するものである。
【背景技術】
【０００２】
ＰＣＩバス等のディレイドトランザクションを備えたバスにおいて、転送効率を上げる為、任意のバスマスタデバイスから、バスブリッジを介して接続した任意のターゲットデバイスに対し、データリードを行なう際、バスブリッジにて、ターゲットデバイスより、リードデータの先読みを行ない、予め、バスマスタデバイスに対するデータを準備しておく事によって、バスレイテンシの向上を図ることがある。
【０００３】
一方、それらリードデータのプリフェッチを行なう場合、全てのリードコマンドに対し、バスブリッジにて、一意的にデータの先読みを行なうと、ターゲットデバイスが接続されたバス上で無駄なバスアクセスが発生することがあるが、バスブリッジにて、先読み有効領域に対するバスマスタデバイスからのバーストアクセスに対してのみ、ターゲットデバイスからリードデータの先読みを行なうことによって、バスの転送効率低下を抑止するといった方法があった（例えば、特許文献１参照）。図９は、前記特許文献１に記載された従来のデータ転送効率低下を抑止する手段を示すものである。図９において、バスマスタとなるＰＣＩデバイス９０５からＰＣＩ−ＰＣＩバスブリッジ９０４を介して、ターゲットデバイスであるＰＣＩデバイス９０６へリードアクセスを行なう際、シングル／バースト判定部９０８にて、バスマスタからのアクセスの種類を判断し、バーストアクセスであった場合、アクセスする領域が、コンフィグレジスタ９０９に格納された先読み可能なアドレスの領域であれば、ターゲットデバイスであるＰＣＩデバイス９０６に対し、リードデータの先読みを行なっていた。
【特許文献１】特開２００１−１５４９７９号公報（第９頁、図１、図４）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前記特許文献１における従来の構成では、例えばバスマスタデバイスから、ターゲットデバイス内のメモリマップドＩ／Ｏレジスタ等に対して、シングルメモリリードアクセスにて数ワード連続でデータを読み込む場合などに、プリフェッチ機能を有効に利用することができず、メモリバス等に比べより速度の低いＩ／Ｏバスでのリードアクセスに関して、バスレイテンシが低下するといった課題を有していた。
【０００５】
本発明は、前記従来の課題を解決するもので、リードアクセスの種類によらず、適切なサイズで、リードデータを先読みすることが可能な、バスブリッジ装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記従来の課題を解決するために、本発明のバスブリッジ回路は、リードアクセスする先の領域が先読み可能な領域かどうかを判断する手段と、先読み可能領域だった場合、要求されたリードアクセスが、特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、先読み有効領域情報に基づき要求のあったデータ及び、それに続くデータの先読みを行なう。
【０００７】
本構成によって、適切なサイズにてリードデータの先読みを行なうことができる。
【発明の効果】
【０００８】
本発明のバスブリッジによれば、シングル／バーストアクセスなどアクセス方法によらず、適切なサイズにてリードデータの先読みを行なうことが可能で、例えば、連続シングルアクセスに対しても、バスの転送効率を向上させることができる。結果、Ｉ／Ｏアクセスの速度が速くなることで、ＰＣＩバス占有時間が短くなり、例えば、他のメモリアクセスコマンドのレイテンシ向上が期待でき、また、アクセス元がプロセッサだった場合、Ｉ／Ｏアクセスの速度が速くなった分、他の処理を実行可能となり、システム全体の性能向上が期待できる。
【発明を実施するための最良の形態】
【０００９】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００１０】
（実施の形態１）
図１は、マイコン１０９、ＡＶ処理部１１１、ストリーム処理部１１２、グラフィクス処理部１１３を有したシステムＬＳＩ１０１において、ＰＣＩバスＩ／Ｆ１０２及びＰＣＩバス１０８と、内部バスとの制御を行なうバスコントロールユニット（ＢＣＵ）１１０を用いて、ＰＣＩバス１０８を介し、バスマスタ機能を有するマイコン１１５と、バスマスタ／ターゲット機能を有する外部デバイス１１６とを接続したコンピュータシステムを示す。
【００１１】
ＰＣＩバスＩ／Ｆ１０２内には、システムＬＳＩ１０１内のマイコン１０９からＰＣＩバス１０８に接続された外部デバイス１１６へアクセスする為のバスブリッジ１０３と、ＰＣＩバス１０８のバスマスタからシステムＬＳＩ１０１内のメモリバス１０７へのアクセスを仲介するバスブリッジ１０４と、ＰＣＩバス１０８のバスマスタからシステムＬＳＩ１０１内のＩ／Ｏバス１０６へのアクセスを仲介するバスブリッジ１０５とを含む。
【００１２】
図２は、ＰＣＩバス１０８である第１のバス２０１と、システムＬＳＩ１０１におけるＩ／Ｏバス１０６である第２のバス２０２とを接続するバスブリッジ１０５を示す。
【００１３】
バスブリッジ１０５は、第２のバス２０２に接続されたデバイスに関して、先読みの有効な領域の先頭アドレスと、その先頭アドレスから連続した先読み有効領域のサイズとを格納する先読み有効領域情報格納部２０３と、第１のバス２０１からのリードデータ要求アドレスが、前記先読みが有効となる領域の先頭アドレスと等しい又は、大きい場合で、且つ、それらの差が前記有効領域のサイズより小さい、又は等しい場合、第１のバス２０１から要求されたリードデータのアドレスが第２のバス２０２での先読み有効領域内と判断する先読み有効領域判断部２０４と、先読みが有効と判断された場合に、第１のバス２０１からのリードアクセスが特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第１のバス２０１から要求があったデータ及び、前記データに続く前記有効領域のサイズ以下分のデータを取得する為の手続きを第２のバス２０２に対し行なうマルチアクセス変換部２０５と、第２のバス２０２からの先読みデータを保持し、保持された先読みデータのアドレスと、第１のバス２０１からのリードデータ要求アドレスとを比較、第１のバスより要求されたデータが保持されているかどうかを判断する先読みデータ保持部２０６から構成される。マルチアクセス変換部２０５においては、基本的に、先読み有効領域情報格納部２０３内の有効領域サイズから、有効領域先頭アドレスと第１のバス２０１からのリードアドレスの差分を減算することで、第２のバス２０２へ発行するリードコマンドのデータサイズまたは、アクセス回数を決定するが、もし、前述の算出されたサイズに、先読みデータ保持部２０６の空き容量が満たない場合、前記サイズ分第２のバスより先読みが完了するまで、先読みデータ保持部２０６の空き容量分を考慮して、アクセスサイズ又は、アクセス回数を調整、第２のバス２０２にリードアクセスを行なうことが可能である。
【００１４】
第１のバス２０１が第２のバス２０２よりバス速度が速い場合などは、先読みデータ保持部２０６で保持したデータが断続的に且つ大量に読み出されることも考えられる。その場合は前記算出されたアクセスサイズ以下で、且つ先読みデータ保持部２０６で保持できる最大サイズ分のリードデータアクセスを第２のバス２０２に対し発行することで、より容易にリードデータの先読みを行なうことが可能となる。
【００１５】
また、第２のバス２０２のプロトコルにバーストアクセスが採用されている場合、そのプロトコルの最大転送長が前記算出されたバーストサイズより短い場合、そのプロトコルにおける最大転送長をバーストサイズとし、前記算出されたサイズ分リードアクセスを行なうことが可能である。また、第２のバス２０２における制限として、アドレス境界が規定されるなど、特定のアドレスを跨いではアクセスできない場合は、アドレス境界までのデータを第２のバス２０２より先読みすることで、同様な機能を実現できる。さらに本実施の形態における、第１のバス２０１及び第２のバス２０２のデータビット幅は同一の場合を想定し記述しているが、第１のバス２０１のデータビット幅が第２のバス２０２のデータビット幅より大きい又は等しく、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅が、第２のバス２０２のデータビット幅より小さい又は、等しい時、または、第１のバス２０１のデータビット幅が前記第２のバスのデータビット幅２０２より小さい時、前記マルチアクセス変換部２０５は、第２のバス２０２に対し、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅に合わせ、第２のバス２０２へバスコマンドを発行し、リードデータの先読みを行ない、第１のバス２０１のデータビット幅が第２のバス２０２のデータビット幅より大きい又は等しく、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅が、第１のバス２０１のデータビット幅より大きい又は等しい時、マルチアクセス変換部２０５は、第２のバスに対し、第２のバスで規定するアクセスサイズに応じて、第２のバス２０２へバスコマンドを発行し、リードデータの先読みを行なうことで、第１のバス２０１と第２のバス２０２のデータビット幅が同じ場合と同様にリードデータの先読みを行なうことが可能である。
【００１６】
以下、図３のフローチャートを参照し、第１のバス２０１でリードアクセスが発生した場合に実行される、第２のバス２０２に対するアクセス方法の決定動作について説明する。
【００１７】
第１のバス２０１からリードコマンドを受信すると（Ｓ３０２のＹ）、先読み有効領域判断部２０４にて、先読み有効領域先頭アドレス情報と、そのサイズ情報より、受信したアドレスが先読み有効領域かどうかを判断する。先読み有効領域でないと判断した場合（Ｓ３０３のＮ）、シングル転送にて、第２のバス２０２へリードアクセスを実施する（Ｓ３０４）。先読み有効領域と判断された場合（Ｓ３０３のＹ）、先読み有効領域先頭アドレス情報と、そのサイズ情報、及び、先読みデータ保持部２０６の空き容量情報と、第２のバス２０２のバスプロトコルより、第２のバス２０２への先読みデータサイズを算出する（Ｓ３０６）。その後、第２のバス２０２へ算出したデータサイズ分リードアクセスを実施し、第２のバスより読み込んだデータを先読みデータ保持部２０６にて保持する（Ｓ３０７）。
【００１８】
（実施の形態２）
図４は、ＰＣＩバス１０８である第１のバス２０１と、システムＬＳＩ１０１におけるＩ／Ｏバス１０６である第２のバス２０２とを接続するバスブリッジ１０５を示す。
【００１９】
バスブリッジ１０５は、第２のバス２０２に接続されたデバイスに関して、先読みの無効な領域の先頭アドレスと、その先頭アドレスから連続した先読み無効領域のサイズとを格納する先読み有効領域情報格納部４０３と、第１のバス２０１からのリードデータ要求アドレスが、前記先読みが無効となる領域の先頭アドレスより小さい場合で、且つ、前記先読みが無効となる領域の先頭アドレスと、その先頭アドレスから連続した先読み無効領域のサイズの和より大きい場合、第１のバス２０１から要求されたリードデータのアドレスが第２のバス２０２での先読み有効領域内と判断する先読み有効領域判断部４０４と、先読みが有効と判断された場合に、第１のバス２０１からのリードアクセスが特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第１のバス２０１から要求があったデータ及び、前記データに続く前記有効領域のサイズ以下分のデータを取得する為の手続きを第２のバス２０２に対し行なうマルチアクセス変換部４０５と、実施の形態１と同様に、第２のバス２０２からの先読みデータを保持し、保持されたリードデータのアドレスと、第１のバス２０１からのリードデータ要求アドレスとを比較、第１のバスより要求されたデータが保持されているかどうかを判断する先読みデータ保持部２０６から構成される。マルチアクセス変換部４０５においては、先読み無効領域のデータを避け、先読みデータ保持部２０６の空き容量分を考慮して、アクセスサイズ又は、アクセス回数を調整、第２のバス２０２にリードアクセスを行なうことが可能である。
【００２０】
第１のバス２０１が第２のバス２０２よりバス速度が速い場合などは、先読みデータ保持部２０６で保持したデータが断続的に且つ大量に読み出されることも考えられる。その場合は前記算出されたアクセスサイズ以下で、且つ先読みデータ保持部２０６で保持できる最大サイズ分のリードデータアクセスを第２のバス２０２に対し発行することで、より容易にリードデータの先読みを行なうことが可能となる。
【００２１】
また、第２のバス２０２のプロトコルにバーストアクセスが採用されている場合、そのプロトコルの最大転送長が前記算出されたバーストサイズより短い場合、そのプロトコルにおける最大転送長をバーストサイズとし、前記算出されたサイズ分リードアクセスを行なうことが可能である。また、第２のバス２０２における制限として、アドレス境界が規定されるなど、特定のアドレスを跨いではアクセスできない場合は、アドレス境界までのデータを第２のバス２０２より先読みすることで、同様な機能を実現できる。さらに本実施の形態における、第１のバス２０１及び第２のバス２０２のデータビット幅は同一の場合を想定し記述しているが、第１のバス２０１のデータビット幅が第２のバス２０２のデータビット幅より大きい又は等しく、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅が、第２のバス２０２のデータビット幅より小さい又は、等しい時、または、第１のバス２０１のデータビット幅が前記第２のバスのデータビット幅２０２より小さい時、前記マルチアクセス変換部２０５は、第２のバス２０２に対し、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅に合わせ、第２のバス２０２へバスコマンドを発行し、リードデータの先読みを行ない、第１のバス２０１のデータビット幅が第２のバス２０２のデータビット幅より大きい又は等しく、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅が、第１のバス２０１のデータビット幅より大きい又は等しい時、マルチアクセス変換部４０５は、第２のバスに対し、第２のバスで規定するアクセスサイズに応じて、第２のバス２０２へバスコマンドを発行し、リードデータの先読みを行なうことで、第１のバス２０１と第２のバス２０２のデータビット幅が同じ場合と同様にリードデータの先読みを行なうことが可能である。
【００２２】
（実施の形態３）
図５は、ＰＣＩバス１０８である第１のバス２０１と、システムＬＳＩ１０１におけるＩ／Ｏバス１０６である第２のバス２０２とを接続するバスブリッジ１０５を示す。
【００２３】
バスブリッジ１０５は、第２のバス２０２に接続されたデバイスに関して、先読みの有効な領域の先頭アドレスと、先読み有効領域の終端アドレスとを格納する先読み有効領域情報格納部５０３と、第１のバス２０１からのリードデータ要求アドレスが、前記先読みが有効となる領域の先頭アドレスと等しい又は、大きい場合で、且つ、前記先読みが有効となる領域の終端アドレスと等しい又は、小さい場合、第１のバス２０１から要求されたリードデータのアドレスが第２のバス２０２での先読み有効領域内と判断する先読み有効領域判断部５０４と、先読みが有効と判断された場合に、第１のバス２０１からのリードアクセスが特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第１のバス２０１から要求があったデータ及び、前記先読み有効領域先頭アドレスと前記先読み有効領域終端アドレスの差以下分のデータを取得する為の手続きを第２のバス２０２に対し行なうマルチアクセス変換部５０５と、実施の形態１と同様、第２のバス２０２からの先読みデータを保持し、保持されたリードデータのアドレスと、第１のバス２０１からのリードデータ要求アドレスとを比較、第１のバスより要求されたデータが保持されているかどうかを判断する先読みデータ保持部２０６から構成される。マルチアクセス変換部５０５においては、基本的に、先読み有効領域情報格納部５０３内の前記先読み有効領域終端アドレスから前記先読み有効領域先頭アドレスを減算し有効領域のサイズを求め、有効領域先頭アドレスと第１のバス２０１からのリードアドレスの差分を減算することで、第２のバス２０２へ発行するリードコマンドのデータサイズまたは、アクセス回数を決定するが、もし、前述の算出されたサイズに、先読みデータ保持部２０６の空き容量が満たない場合、前記サイズ分リードするまで、先読みデータ保持部２０６の空き容量分を考慮して、アクセスサイズ又は、アクセス回数を調整、第２のバス２０２にリードアクセスを行なうことが可能である。
【００２４】
第１のバス２０１が第２のバス２０２よりバス速度が速い場合などは、先読みデータ保持部２０６で保持したデータが断続的に且つ大量に読み出されることも考えられる。その場合は前記算出されたアクセスサイズ以下で、且つ先読みデータ保持部２０６で保持できる最大サイズ分のリードデータアクセスを第２のバス２０２に対し発行することで、より容易にリードデータの先読みを行なうことが可能となる。
【００２５】
また、第２のバス２０２のプロトコルにバーストアクセスが採用されている場合、そのプロトコルの最大転送長が前記算出されたアクセスサイズより短い場合、そのプロトコルにおける最大転送長をバーストサイズとし、前記算出されたサイズ分リードアクセスを行なうことが可能である。また、第２のバス２０２における制限として、アドレス境界が規定されるなど、特定のアドレスを跨いではアクセスできない場合は、アドレス境界までのデータを第２のバス２０２より先読みすることで、同様な機能を実現できる。さらに本実施の形態における、第１のバス２０１及び第２のバス２０２のデータビット幅は同一の場合を想定し記述しているが、第１のバス２０１のデータビット幅が第２のバス２０２のデータビット幅より大きい又は等しく、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅が、第２のバス２０２のデータビット幅より小さい又は、等しい時、または、第１のバス２０１のデータビット幅が前記第２のバスのデータビット幅２０２より小さい時、前記マルチアクセス変換部５０５は、第２のバス２０２に対し、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅に合わせ、第２のバス２０２へバスコマンドを発行し、リードデータの先読みを行ない、第１のバス２０１のデータビット幅が第２のバス２０２のデータビット幅より大きい又は等しく、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅が、第１のバス２０１のデータビット幅より大きい又は等しい時、マルチアクセス変換部５０５は、第２のバスに対し、第２のバスで規定するアクセスサイズに応じて、第２のバス２０２へバスコマンドを発行し、リードデータの先読みを行なうことで、第１のバス２０１と第２のバス２０２のデータビット幅が同じ場合と同様にリードデータの先読みを行なうことが可能である。
【００２６】
（実施の形態４）
図６は、ＰＣＩバス１０８である第１のバス２０１と、システムＬＳＩ１０１におけるＩ／Ｏバス１０６である第２のバス２０２とを接続するバスブリッジ１０５を示す。
【００２７】
バスブリッジ１０５は、第２のバス２０２に接続されたデバイスに関して、先読みの無効な領域の先頭アドレスと、先読みの無効な領域の終端アドレスとを格納する先読み有効領域情報格納部６０３と、第１のバス２０１からのリードデータ要求アドレスが、前記先読みが無効となる領域の先頭アドレスより小さい場合で、且つ、先読みの無効な領域の終端アドレスより大きい場合、第１のバス２０１から要求されたリードデータのアドレスが第２のバス２０２での先読み有効領域内と判断する先読み有効領域判断部６０４と、先読みが有効と判断された場合に、第１のバス２０１からのリードアクセスが特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第１のバス２０１から要求があったデータ及び、前記データに続く前記有効領域のサイズ以下分のデータを取得する為の手続きを第２のバス２０２に対し行なうマルチアクセス変換部６０５と、実施の形態１と同様、第２のバス２０２からの先読みデータを保持し、保持されたリードデータのアドレスと、第１のバス２０１からのリードデータ要求アドレスとを比較、第１のバスより要求されたデータが保持されているかどうかを判断する先読みデータ保持部２０６から構成される。マルチアクセス変換部６０５においては、先読み無効領域のデータを避け、先読みデータ保持部２０６の空き容量分を考慮して、アクセスサイズ又は、アクセス回数を調整、第２のバス２０２にリードアクセスを行なうことが可能である。その際、マルチアクセス変換部６０５では、第１のバス２０１より受取ったアドレスが、先読み無効領域先頭アドレスより小さい場合は、先読み無効領域先頭アドレスから、前記１のバス２０１より受取ったアドレスを減算した結果を第２のバス２０２へのアクセスサイズとし、また、第１のバス２０１より受取ったアドレスが、先読み無効領域終端アドレスより大きい場合は、前記１のバス２０１より受取ったアドレスから、先読み無効領域先頭アドレスを減算した結果を第２のバス２０２へのアクセスサイズとする。
【００２８】
第１のバス２０１が第２のバス２０２よりバス速度が速い場合などは、先読みデータ保持部２０６で保持したデータが断続的に且つ大量に読み出されることも考えられる。その場合は先読みデータ保持部２０６で保持できる最大サイズ分のリードデータアクセスを第２のバス２０２に対し発行することで、より容易にリードデータの先読みを行なうことが可能となる。
【００２９】
また、第２のバス２０２のプロトコルにバーストアクセスが採用されている場合、そのプロトコルの最大転送長が前記算出されたバーストサイズより短い場合、そのプロトコルにおける最大転送長をバーストサイズとし、前記算出されたアクセスサイズ分リードアクセスを行なうことが可能である。また、第２のバス２０２における制限として、アドレス境界が規定されるなど、特定のアドレスを跨いではアクセスできない場合は、アドレス境界までのデータを第２のバス２０２より先読みすることで、同様な機能を実現できる。さらに本実施の形態における、第１のバス２０１及び第２のバス２０２のデータビット幅は同一の場合を想定し記述しているが、第１のバス２０１のデータビット幅が第２のバス２０２のデータビット幅より大きい又は等しく、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅が、第２のバス２０２のデータビット幅より小さい又は、等しい時、または、第１のバス２０１のデータビット幅が前記第２のバスのデータビット幅２０２より小さい時、前記マルチアクセス変換部６０５は、第２のバス２０２に対し、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅に合わせ、第２のバス２０２へバスコマンドを発行し、リードデータの先読みを行ない、第１のバス２０１のデータビット幅が第２のバス２０２のデータビット幅より大きい又は等しく、第２のバス２０２でのアクセス対象となるデータの１アドレス毎のアクセスデータ幅が、第１のバス２０１のデータビット幅より大きい又は等しい時、マルチアクセス変換部６０５は、第２のバスに対し、第２のバスで規定するアクセスサイズに応じて、第２のバス２０２へバスコマンドを発行し、リードデータの先読みを行なうことで、第１のバス２０１と第２のバス２０２のデータビット幅が同じ場合と同様にリードデータの先読みを行なうことが可能である。
【００３０】
（実施の形態５）
図７は、ＰＣＩバス１０８である第１のバス２０１と、システムＬＳＩ１０１におけるＩ／Ｏバス１０６である第２のバス２０２とを接続するバスブリッジ１０５を示す。
【００３１】
バスブリッジ１０５は、第２のバス２０２に接続されたデバイスに関して、先読みの有効な領域の先頭アドレスを格納する先読み有効領域情報格納部７０３と、第１のバス２０１からのリードデータ要求アドレスが、前記先読みが有効となる領域の先頭アドレスと等しい場合、第１のバス２０１から要求されたリードデータのアドレスが第２のバス２０２での先読み有効領域内と判断する先読み有効領域判断部７０４と、先読みが有効と判断された場合に、第１のバス２０１からのリードアクセスが特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第１のバス２０１から要求があったデータ及び、その次のデータを取得する為の手続きを第２のバス２０２に対し行なうマルチアクセス変換部７０５と、実施の形態１と同様、第２のバス２０２からの先読みデータを保持し、保持されたリードデータのアドレスと、第１のバス２０１からのリードデータ要求アドレスとを比較、第１のバスより要求されたデータが保持されているかどうかを判断する先読みデータ保持部２０６から構成される。本実施の形態では、先読み有効領域情報格納部の容量を抑え容易に第２のバス２０２に対するリードデータの先読みを行なう事が可能となる。
【００３２】
以下、図８のフローチャートを参照し、第１のバス２０１でリードアクセスが発生した場合に実行される、第２のバス２０２に対するアクセス方法の決定動作について説明する。
【００３３】
第１のバス２０１からリードコマンドを受信すると（Ｓ８０２のＹ）、先読み有効領域判断部７０４にて、先読み有効領域先頭アドレス情報より、受信したアドレスが先読み有効領域かどうかを判断する。先読み有効領域でないと判断した場合（Ｓ８０３のＮ）、シングル転送にて、第２のバス２０２へリードアクセスを実施する（Ｓ８０４）。先読み有効領域と判断された場合（Ｓ８０３のＹ）、第２のバス２０２へ第１のバス２０１より受信したアドレスのデータと、その次のデータを第２のバスより読み込み先読みデータ保持部２０６にて保持する（Ｓ８０６）。
【００３４】
なお、実施の形態１及び実施の形態２及び実施の形態３及び実施の形態４及び本実施の形態５では、第２のバス２０２をシステムＬＳＩ１０１内のＩ／Ｏバス１０５として説明したが、第２のバス２０２をメモリバス１０７としても同様に実現可能であり、さらに、第１のバス２０１にＰＣＩバスを例として説明したが、ディレイドトランザクションを備えた他のバスにおいても、同等の機能を実現可能である。
【００３５】
また、上記全ての実施の形態において、先読み有効領域情報格納部は、マイコン１０９または、マイコン１１５により設定されるが、第１のバス２０１からのアクセス方法を記録し、その傾向より、連続領域を判断し、先読み有効領域情報格納部へ設定することも可能である。
【産業上の利用可能性】
【００３６】
本発明に係わるバスブリッジ装置は、シングル／バーストアクセスなどアクセス方法によらず、適切なサイズにてリードデータの先読みを行なうことが可能で、例えば、連続シングルアクセスに対しても、バスの転送効率を向上させることができる。結果、Ｉ／Ｏアクセスの速度が速くなることで、ＰＣＩバス占有時間が短くなり、例えば、他のメモリアクセスコマンドのレイテンシ向上が期待でき、また、アクセス元がプロセッサだった場合、Ｉ／Ｏアクセスの速度が速くなった分、他の処理を実行可能となり、システム全体の性能向上が期待できる。従って、バスブリッジ装置及びそれを用いたコンピュータシステムにおいて、特にプリフェッチ機能を有したバスブリッジ装置及びコンピュータシステムにおいて有用である。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施の形態１にかかるコンピュータシステムの構成を示すブロック図
【図２】本発明の実施の形態１におけるバスブリッジ装置の構成を示すブロック図
【図３】本発明の実施の形態１におけるバスブリッジ装置の先読み処理手順示すフローチャート
【図４】本発明の実施の形態２におけるバスブリッジ装置の構成を示すブロック図
【図５】本発明の実施の形態３におけるバスブリッジ装置の構成を示すブロック図
【図６】本発明の実施の形態４におけるバスブリッジ装置の構成を示すブロック図
【図７】本発明の実施の形態５におけるバスブリッジ装置の構成を示すブロック図
【図８】本発明の実施の形態５におけるバスブリッジ装置の先読み処理手順示すフローチャート
【図９】従来のバスブリッジ装置及びそれを利用したコンピュータシステムの構成を示すブロック図
【符号の説明】
【００３８】
１０１    システムＬＳＩ
１０２    ＰＣＩバスＩ／Ｆ
１０３    バスブリッジ
１０４    バスブリッジ
１０５    バスブリッジ
１０６    Ｉ／Ｏバス
１０７    メモリバス
１０８    ＰＣＩバス
１０９    マイコン
１１０    バスコントロールユニット（ＢＣＵ）
１１１    ＡＶ処理部
１１２    ストリーム処理部
１１３    グラフィクス処理部
１１４    メモリ
１１５    マイコン
１１６    外部デバイス
２０１    第１のバス
２０２    第２のバス
２０３    先読み有効領域情報格納部
２０４    先読み有効領域判断部
２０５    マルチアクセス変換部
２０６    先読みデータ保持部
４０３    先読み有効領域情報格納部
４０４    先読み有効領域判断部
４０５    マルチアクセス変換部
５０３    先読み有効領域情報格納部
５０４    先読み有効領域判断部
５０５    マルチアクセス変換部
６０３    先読み有効領域情報格納部
６０４    先読み有効領域判断部
６０５    マルチアクセス変換部
７０３    先読み有効領域情報格納部
７０４    先読み有効領域判断部
７０５    マルチアクセス変換部
９０１    ＣＰＵ
９０２    ホスト−ＰＣＩブリッジ
９０３    メモリ
９０４    ＰＣＩ−ＰＣＩブリッジ
９０５    ＰＣＩデバイス
９０６    ＰＣＩデバイス
９０７    マスタ制御部
９０８    シングル／バースト判定部
９０９    コンフィグレジスタ
９１０    プリフェッチバッファ
【図１】
2006331252.tif 000003
【図２】
2006331252.tif 000004
【図３】
2006331252.tif 000005
【図４】
2006331252.tif 000006
【図５】
2006331252.tif 000007
【図６】
2006331252.tif 000008
【図７】
2006331252.tif 000009
【図８】
2006331252.tif 000010
【図９】
2006331252.tif 000011