JP2006331252A - バスブリッジ装置 - Google Patents
バスブリッジ装置 Download PDFInfo
- Publication number
- JP2006331252A JP2006331252A JP2005156785A JP2005156785A JP2006331252A JP 2006331252 A JP2006331252 A JP 2006331252A JP 2005156785 A JP2005156785 A JP 2005156785A JP 2005156785 A JP2005156785 A JP 2005156785A JP 2006331252 A JP2006331252 A JP 2006331252A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- data
- prefetch
- address
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】PCI−PCIバスブリッジにおいて、シングルメモリリードアクセスにて数ワード連続で読み込む場合などに、プリフェッチ機能を有効に利用することができなかった。
【解決手段】リードデータ先読み有効領域情報を持った先読み有効領域情報格納部203と、リードデータの先読みの有効と無効を判断する先読み有効領域判断部204とを備え、適切なサイズで、第2のバス202へリードデータ先読みを行なう事により、第2のバス202上の転送効率を向上させることができる。
【選択図】図2
【解決手段】リードデータ先読み有効領域情報を持った先読み有効領域情報格納部203と、リードデータの先読みの有効と無効を判断する先読み有効領域判断部204とを備え、適切なサイズで、第2のバス202へリードデータ先読みを行なう事により、第2のバス202上の転送効率を向上させることができる。
【選択図】図2
Description
本発明はバスブリッジ装置及びそれを用いたコンピュータシステムにおいて、特にプリフェッチ機能を有したバスブリッジ装置及びコンピュータシステムに関するものである。
PCIバス等のディレイドトランザクションを備えたバスにおいて、転送効率を上げる為、任意のバスマスタデバイスから、バスブリッジを介して接続した任意のターゲットデバイスに対し、データリードを行なう際、バスブリッジにて、ターゲットデバイスより、リードデータの先読みを行ない、予め、バスマスタデバイスに対するデータを準備しておく事によって、バスレイテンシの向上を図ることがある。
一方、それらリードデータのプリフェッチを行なう場合、全てのリードコマンドに対し、バスブリッジにて、一意的にデータの先読みを行なうと、ターゲットデバイスが接続されたバス上で無駄なバスアクセスが発生することがあるが、バスブリッジにて、先読み有効領域に対するバスマスタデバイスからのバーストアクセスに対してのみ、ターゲットデバイスからリードデータの先読みを行なうことによって、バスの転送効率低下を抑止するといった方法があった(例えば、特許文献1参照)。図9は、前記特許文献1に記載された従来のデータ転送効率低下を抑止する手段を示すものである。図9において、バスマスタとなるPCIデバイス905からPCI−PCIバスブリッジ904を介して、ターゲットデバイスであるPCIデバイス906へリードアクセスを行なう際、シングル/バースト判定部908にて、バスマスタからのアクセスの種類を判断し、バーストアクセスであった場合、アクセスする領域が、コンフィグレジスタ909に格納された先読み可能なアドレスの領域であれば、ターゲットデバイスであるPCIデバイス906に対し、リードデータの先読みを行なっていた。
特開2001−154979号公報(第9頁、図1、図4)
しかしながら、前記特許文献1における従来の構成では、例えばバスマスタデバイスから、ターゲットデバイス内のメモリマップドI/Oレジスタ等に対して、シングルメモリリードアクセスにて数ワード連続でデータを読み込む場合などに、プリフェッチ機能を有効に利用することができず、メモリバス等に比べより速度の低いI/Oバスでのリードアクセスに関して、バスレイテンシが低下するといった課題を有していた。
本発明は、前記従来の課題を解決するもので、リードアクセスの種類によらず、適切なサイズで、リードデータを先読みすることが可能な、バスブリッジ装置を提供することを目的とする。
前記従来の課題を解決するために、本発明のバスブリッジ回路は、リードアクセスする先の領域が先読み可能な領域かどうかを判断する手段と、先読み可能領域だった場合、要求されたリードアクセスが、特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、先読み有効領域情報に基づき要求のあったデータ及び、それに続くデータの先読みを行なう。
本構成によって、適切なサイズにてリードデータの先読みを行なうことができる。
本発明のバスブリッジによれば、シングル/バーストアクセスなどアクセス方法によらず、適切なサイズにてリードデータの先読みを行なうことが可能で、例えば、連続シングルアクセスに対しても、バスの転送効率を向上させることができる。結果、I/Oアクセスの速度が速くなることで、PCIバス占有時間が短くなり、例えば、他のメモリアクセスコマンドのレイテンシ向上が期待でき、また、アクセス元がプロセッサだった場合、I/Oアクセスの速度が速くなった分、他の処理を実行可能となり、システム全体の性能向上が期待できる。
以下本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図1は、マイコン109、AV処理部111、ストリーム処理部112、グラフィクス処理部113を有したシステムLSI101において、PCIバスI/F102及びPCIバス108と、内部バスとの制御を行なうバスコントロールユニット(BCU)110を用いて、PCIバス108を介し、バスマスタ機能を有するマイコン115と、バスマスタ/ターゲット機能を有する外部デバイス116とを接続したコンピュータシステムを示す。
図1は、マイコン109、AV処理部111、ストリーム処理部112、グラフィクス処理部113を有したシステムLSI101において、PCIバスI/F102及びPCIバス108と、内部バスとの制御を行なうバスコントロールユニット(BCU)110を用いて、PCIバス108を介し、バスマスタ機能を有するマイコン115と、バスマスタ/ターゲット機能を有する外部デバイス116とを接続したコンピュータシステムを示す。
PCIバスI/F102内には、システムLSI101内のマイコン109からPCIバス108に接続された外部デバイス116へアクセスする為のバスブリッジ103と、PCIバス108のバスマスタからシステムLSI101内のメモリバス107へのアクセスを仲介するバスブリッジ104と、PCIバス108のバスマスタからシステムLSI101内のI/Oバス106へのアクセスを仲介するバスブリッジ105とを含む。
図2は、PCIバス108である第1のバス201と、システムLSI101におけるI/Oバス106である第2のバス202とを接続するバスブリッジ105を示す。
バスブリッジ105は、第2のバス202に接続されたデバイスに関して、先読みの有効な領域の先頭アドレスと、その先頭アドレスから連続した先読み有効領域のサイズとを格納する先読み有効領域情報格納部203と、第1のバス201からのリードデータ要求アドレスが、前記先読みが有効となる領域の先頭アドレスと等しい又は、大きい場合で、且つ、それらの差が前記有効領域のサイズより小さい、又は等しい場合、第1のバス201から要求されたリードデータのアドレスが第2のバス202での先読み有効領域内と判断する先読み有効領域判断部204と、先読みが有効と判断された場合に、第1のバス201からのリードアクセスが特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第1のバス201から要求があったデータ及び、前記データに続く前記有効領域のサイズ以下分のデータを取得する為の手続きを第2のバス202に対し行なうマルチアクセス変換部205と、第2のバス202からの先読みデータを保持し、保持された先読みデータのアドレスと、第1のバス201からのリードデータ要求アドレスとを比較、第1のバスより要求されたデータが保持されているかどうかを判断する先読みデータ保持部206から構成される。マルチアクセス変換部205においては、基本的に、先読み有効領域情報格納部203内の有効領域サイズから、有効領域先頭アドレスと第1のバス201からのリードアドレスの差分を減算することで、第2のバス202へ発行するリードコマンドのデータサイズまたは、アクセス回数を決定するが、もし、前述の算出されたサイズに、先読みデータ保持部206の空き容量が満たない場合、前記サイズ分第2のバスより先読みが完了するまで、先読みデータ保持部206の空き容量分を考慮して、アクセスサイズ又は、アクセス回数を調整、第2のバス202にリードアクセスを行なうことが可能である。
第1のバス201が第2のバス202よりバス速度が速い場合などは、先読みデータ保持部206で保持したデータが断続的に且つ大量に読み出されることも考えられる。その場合は前記算出されたアクセスサイズ以下で、且つ先読みデータ保持部206で保持できる最大サイズ分のリードデータアクセスを第2のバス202に対し発行することで、より容易にリードデータの先読みを行なうことが可能となる。
また、第2のバス202のプロトコルにバーストアクセスが採用されている場合、そのプロトコルの最大転送長が前記算出されたバーストサイズより短い場合、そのプロトコルにおける最大転送長をバーストサイズとし、前記算出されたサイズ分リードアクセスを行なうことが可能である。また、第2のバス202における制限として、アドレス境界が規定されるなど、特定のアドレスを跨いではアクセスできない場合は、アドレス境界までのデータを第2のバス202より先読みすることで、同様な機能を実現できる。さらに本実施の形態における、第1のバス201及び第2のバス202のデータビット幅は同一の場合を想定し記述しているが、第1のバス201のデータビット幅が第2のバス202のデータビット幅より大きい又は等しく、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、第2のバス202のデータビット幅より小さい又は、等しい時、または、第1のバス201のデータビット幅が前記第2のバスのデータビット幅202より小さい時、前記マルチアクセス変換部205は、第2のバス202に対し、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅に合わせ、第2のバス202へバスコマンドを発行し、リードデータの先読みを行ない、第1のバス201のデータビット幅が第2のバス202のデータビット幅より大きい又は等しく、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、第1のバス201のデータビット幅より大きい又は等しい時、マルチアクセス変換部205は、第2のバスに対し、第2のバスで規定するアクセスサイズに応じて、第2のバス202へバスコマンドを発行し、リードデータの先読みを行なうことで、第1のバス201と第2のバス202のデータビット幅が同じ場合と同様にリードデータの先読みを行なうことが可能である。
以下、図3のフローチャートを参照し、第1のバス201でリードアクセスが発生した場合に実行される、第2のバス202に対するアクセス方法の決定動作について説明する。
第1のバス201からリードコマンドを受信すると(S302のY)、先読み有効領域判断部204にて、先読み有効領域先頭アドレス情報と、そのサイズ情報より、受信したアドレスが先読み有効領域かどうかを判断する。先読み有効領域でないと判断した場合(S303のN)、シングル転送にて、第2のバス202へリードアクセスを実施する(S304)。先読み有効領域と判断された場合(S303のY)、先読み有効領域先頭アドレス情報と、そのサイズ情報、及び、先読みデータ保持部206の空き容量情報と、第2のバス202のバスプロトコルより、第2のバス202への先読みデータサイズを算出する(S306)。その後、第2のバス202へ算出したデータサイズ分リードアクセスを実施し、第2のバスより読み込んだデータを先読みデータ保持部206にて保持する(S307)。
(実施の形態2)
図4は、PCIバス108である第1のバス201と、システムLSI101におけるI/Oバス106である第2のバス202とを接続するバスブリッジ105を示す。
図4は、PCIバス108である第1のバス201と、システムLSI101におけるI/Oバス106である第2のバス202とを接続するバスブリッジ105を示す。
バスブリッジ105は、第2のバス202に接続されたデバイスに関して、先読みの無効な領域の先頭アドレスと、その先頭アドレスから連続した先読み無効領域のサイズとを格納する先読み有効領域情報格納部403と、第1のバス201からのリードデータ要求アドレスが、前記先読みが無効となる領域の先頭アドレスより小さい場合で、且つ、前記先読みが無効となる領域の先頭アドレスと、その先頭アドレスから連続した先読み無効領域のサイズの和より大きい場合、第1のバス201から要求されたリードデータのアドレスが第2のバス202での先読み有効領域内と判断する先読み有効領域判断部404と、先読みが有効と判断された場合に、第1のバス201からのリードアクセスが特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第1のバス201から要求があったデータ及び、前記データに続く前記有効領域のサイズ以下分のデータを取得する為の手続きを第2のバス202に対し行なうマルチアクセス変換部405と、実施の形態1と同様に、第2のバス202からの先読みデータを保持し、保持されたリードデータのアドレスと、第1のバス201からのリードデータ要求アドレスとを比較、第1のバスより要求されたデータが保持されているかどうかを判断する先読みデータ保持部206から構成される。マルチアクセス変換部405においては、先読み無効領域のデータを避け、先読みデータ保持部206の空き容量分を考慮して、アクセスサイズ又は、アクセス回数を調整、第2のバス202にリードアクセスを行なうことが可能である。
第1のバス201が第2のバス202よりバス速度が速い場合などは、先読みデータ保持部206で保持したデータが断続的に且つ大量に読み出されることも考えられる。その場合は前記算出されたアクセスサイズ以下で、且つ先読みデータ保持部206で保持できる最大サイズ分のリードデータアクセスを第2のバス202に対し発行することで、より容易にリードデータの先読みを行なうことが可能となる。
また、第2のバス202のプロトコルにバーストアクセスが採用されている場合、そのプロトコルの最大転送長が前記算出されたバーストサイズより短い場合、そのプロトコルにおける最大転送長をバーストサイズとし、前記算出されたサイズ分リードアクセスを行なうことが可能である。また、第2のバス202における制限として、アドレス境界が規定されるなど、特定のアドレスを跨いではアクセスできない場合は、アドレス境界までのデータを第2のバス202より先読みすることで、同様な機能を実現できる。さらに本実施の形態における、第1のバス201及び第2のバス202のデータビット幅は同一の場合を想定し記述しているが、第1のバス201のデータビット幅が第2のバス202のデータビット幅より大きい又は等しく、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、第2のバス202のデータビット幅より小さい又は、等しい時、または、第1のバス201のデータビット幅が前記第2のバスのデータビット幅202より小さい時、前記マルチアクセス変換部205は、第2のバス202に対し、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅に合わせ、第2のバス202へバスコマンドを発行し、リードデータの先読みを行ない、第1のバス201のデータビット幅が第2のバス202のデータビット幅より大きい又は等しく、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、第1のバス201のデータビット幅より大きい又は等しい時、マルチアクセス変換部405は、第2のバスに対し、第2のバスで規定するアクセスサイズに応じて、第2のバス202へバスコマンドを発行し、リードデータの先読みを行なうことで、第1のバス201と第2のバス202のデータビット幅が同じ場合と同様にリードデータの先読みを行なうことが可能である。
(実施の形態3)
図5は、PCIバス108である第1のバス201と、システムLSI101におけるI/Oバス106である第2のバス202とを接続するバスブリッジ105を示す。
図5は、PCIバス108である第1のバス201と、システムLSI101におけるI/Oバス106である第2のバス202とを接続するバスブリッジ105を示す。
バスブリッジ105は、第2のバス202に接続されたデバイスに関して、先読みの有効な領域の先頭アドレスと、先読み有効領域の終端アドレスとを格納する先読み有効領域情報格納部503と、第1のバス201からのリードデータ要求アドレスが、前記先読みが有効となる領域の先頭アドレスと等しい又は、大きい場合で、且つ、前記先読みが有効となる領域の終端アドレスと等しい又は、小さい場合、第1のバス201から要求されたリードデータのアドレスが第2のバス202での先読み有効領域内と判断する先読み有効領域判断部504と、先読みが有効と判断された場合に、第1のバス201からのリードアクセスが特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第1のバス201から要求があったデータ及び、前記先読み有効領域先頭アドレスと前記先読み有効領域終端アドレスの差以下分のデータを取得する為の手続きを第2のバス202に対し行なうマルチアクセス変換部505と、実施の形態1と同様、第2のバス202からの先読みデータを保持し、保持されたリードデータのアドレスと、第1のバス201からのリードデータ要求アドレスとを比較、第1のバスより要求されたデータが保持されているかどうかを判断する先読みデータ保持部206から構成される。マルチアクセス変換部505においては、基本的に、先読み有効領域情報格納部503内の前記先読み有効領域終端アドレスから前記先読み有効領域先頭アドレスを減算し有効領域のサイズを求め、有効領域先頭アドレスと第1のバス201からのリードアドレスの差分を減算することで、第2のバス202へ発行するリードコマンドのデータサイズまたは、アクセス回数を決定するが、もし、前述の算出されたサイズに、先読みデータ保持部206の空き容量が満たない場合、前記サイズ分リードするまで、先読みデータ保持部206の空き容量分を考慮して、アクセスサイズ又は、アクセス回数を調整、第2のバス202にリードアクセスを行なうことが可能である。
第1のバス201が第2のバス202よりバス速度が速い場合などは、先読みデータ保持部206で保持したデータが断続的に且つ大量に読み出されることも考えられる。その場合は前記算出されたアクセスサイズ以下で、且つ先読みデータ保持部206で保持できる最大サイズ分のリードデータアクセスを第2のバス202に対し発行することで、より容易にリードデータの先読みを行なうことが可能となる。
また、第2のバス202のプロトコルにバーストアクセスが採用されている場合、そのプロトコルの最大転送長が前記算出されたアクセスサイズより短い場合、そのプロトコルにおける最大転送長をバーストサイズとし、前記算出されたサイズ分リードアクセスを行なうことが可能である。また、第2のバス202における制限として、アドレス境界が規定されるなど、特定のアドレスを跨いではアクセスできない場合は、アドレス境界までのデータを第2のバス202より先読みすることで、同様な機能を実現できる。さらに本実施の形態における、第1のバス201及び第2のバス202のデータビット幅は同一の場合を想定し記述しているが、第1のバス201のデータビット幅が第2のバス202のデータビット幅より大きい又は等しく、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、第2のバス202のデータビット幅より小さい又は、等しい時、または、第1のバス201のデータビット幅が前記第2のバスのデータビット幅202より小さい時、前記マルチアクセス変換部505は、第2のバス202に対し、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅に合わせ、第2のバス202へバスコマンドを発行し、リードデータの先読みを行ない、第1のバス201のデータビット幅が第2のバス202のデータビット幅より大きい又は等しく、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、第1のバス201のデータビット幅より大きい又は等しい時、マルチアクセス変換部505は、第2のバスに対し、第2のバスで規定するアクセスサイズに応じて、第2のバス202へバスコマンドを発行し、リードデータの先読みを行なうことで、第1のバス201と第2のバス202のデータビット幅が同じ場合と同様にリードデータの先読みを行なうことが可能である。
(実施の形態4)
図6は、PCIバス108である第1のバス201と、システムLSI101におけるI/Oバス106である第2のバス202とを接続するバスブリッジ105を示す。
図6は、PCIバス108である第1のバス201と、システムLSI101におけるI/Oバス106である第2のバス202とを接続するバスブリッジ105を示す。
バスブリッジ105は、第2のバス202に接続されたデバイスに関して、先読みの無効な領域の先頭アドレスと、先読みの無効な領域の終端アドレスとを格納する先読み有効領域情報格納部603と、第1のバス201からのリードデータ要求アドレスが、前記先読みが無効となる領域の先頭アドレスより小さい場合で、且つ、先読みの無効な領域の終端アドレスより大きい場合、第1のバス201から要求されたリードデータのアドレスが第2のバス202での先読み有効領域内と判断する先読み有効領域判断部604と、先読みが有効と判断された場合に、第1のバス201からのリードアクセスが特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第1のバス201から要求があったデータ及び、前記データに続く前記有効領域のサイズ以下分のデータを取得する為の手続きを第2のバス202に対し行なうマルチアクセス変換部605と、実施の形態1と同様、第2のバス202からの先読みデータを保持し、保持されたリードデータのアドレスと、第1のバス201からのリードデータ要求アドレスとを比較、第1のバスより要求されたデータが保持されているかどうかを判断する先読みデータ保持部206から構成される。マルチアクセス変換部605においては、先読み無効領域のデータを避け、先読みデータ保持部206の空き容量分を考慮して、アクセスサイズ又は、アクセス回数を調整、第2のバス202にリードアクセスを行なうことが可能である。その際、マルチアクセス変換部605では、第1のバス201より受取ったアドレスが、先読み無効領域先頭アドレスより小さい場合は、先読み無効領域先頭アドレスから、前記1のバス201より受取ったアドレスを減算した結果を第2のバス202へのアクセスサイズとし、また、第1のバス201より受取ったアドレスが、先読み無効領域終端アドレスより大きい場合は、前記1のバス201より受取ったアドレスから、先読み無効領域先頭アドレスを減算した結果を第2のバス202へのアクセスサイズとする。
第1のバス201が第2のバス202よりバス速度が速い場合などは、先読みデータ保持部206で保持したデータが断続的に且つ大量に読み出されることも考えられる。その場合は先読みデータ保持部206で保持できる最大サイズ分のリードデータアクセスを第2のバス202に対し発行することで、より容易にリードデータの先読みを行なうことが可能となる。
また、第2のバス202のプロトコルにバーストアクセスが採用されている場合、そのプロトコルの最大転送長が前記算出されたバーストサイズより短い場合、そのプロトコルにおける最大転送長をバーストサイズとし、前記算出されたアクセスサイズ分リードアクセスを行なうことが可能である。また、第2のバス202における制限として、アドレス境界が規定されるなど、特定のアドレスを跨いではアクセスできない場合は、アドレス境界までのデータを第2のバス202より先読みすることで、同様な機能を実現できる。さらに本実施の形態における、第1のバス201及び第2のバス202のデータビット幅は同一の場合を想定し記述しているが、第1のバス201のデータビット幅が第2のバス202のデータビット幅より大きい又は等しく、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、第2のバス202のデータビット幅より小さい又は、等しい時、または、第1のバス201のデータビット幅が前記第2のバスのデータビット幅202より小さい時、前記マルチアクセス変換部605は、第2のバス202に対し、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅に合わせ、第2のバス202へバスコマンドを発行し、リードデータの先読みを行ない、第1のバス201のデータビット幅が第2のバス202のデータビット幅より大きい又は等しく、第2のバス202でのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、第1のバス201のデータビット幅より大きい又は等しい時、マルチアクセス変換部605は、第2のバスに対し、第2のバスで規定するアクセスサイズに応じて、第2のバス202へバスコマンドを発行し、リードデータの先読みを行なうことで、第1のバス201と第2のバス202のデータビット幅が同じ場合と同様にリードデータの先読みを行なうことが可能である。
(実施の形態5)
図7は、PCIバス108である第1のバス201と、システムLSI101におけるI/Oバス106である第2のバス202とを接続するバスブリッジ105を示す。
図7は、PCIバス108である第1のバス201と、システムLSI101におけるI/Oバス106である第2のバス202とを接続するバスブリッジ105を示す。
バスブリッジ105は、第2のバス202に接続されたデバイスに関して、先読みの有効な領域の先頭アドレスを格納する先読み有効領域情報格納部703と、第1のバス201からのリードデータ要求アドレスが、前記先読みが有効となる領域の先頭アドレスと等しい場合、第1のバス201から要求されたリードデータのアドレスが第2のバス202での先読み有効領域内と判断する先読み有効領域判断部704と、先読みが有効と判断された場合に、第1のバス201からのリードアクセスが特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第1のバス201から要求があったデータ及び、その次のデータを取得する為の手続きを第2のバス202に対し行なうマルチアクセス変換部705と、実施の形態1と同様、第2のバス202からの先読みデータを保持し、保持されたリードデータのアドレスと、第1のバス201からのリードデータ要求アドレスとを比較、第1のバスより要求されたデータが保持されているかどうかを判断する先読みデータ保持部206から構成される。本実施の形態では、先読み有効領域情報格納部の容量を抑え容易に第2のバス202に対するリードデータの先読みを行なう事が可能となる。
以下、図8のフローチャートを参照し、第1のバス201でリードアクセスが発生した場合に実行される、第2のバス202に対するアクセス方法の決定動作について説明する。
第1のバス201からリードコマンドを受信すると(S802のY)、先読み有効領域判断部704にて、先読み有効領域先頭アドレス情報より、受信したアドレスが先読み有効領域かどうかを判断する。先読み有効領域でないと判断した場合(S803のN)、シングル転送にて、第2のバス202へリードアクセスを実施する(S804)。先読み有効領域と判断された場合(S803のY)、第2のバス202へ第1のバス201より受信したアドレスのデータと、その次のデータを第2のバスより読み込み先読みデータ保持部206にて保持する(S806)。
なお、実施の形態1及び実施の形態2及び実施の形態3及び実施の形態4及び本実施の形態5では、第2のバス202をシステムLSI101内のI/Oバス105として説明したが、第2のバス202をメモリバス107としても同様に実現可能であり、さらに、第1のバス201にPCIバスを例として説明したが、ディレイドトランザクションを備えた他のバスにおいても、同等の機能を実現可能である。
また、上記全ての実施の形態において、先読み有効領域情報格納部は、マイコン109または、マイコン115により設定されるが、第1のバス201からのアクセス方法を記録し、その傾向より、連続領域を判断し、先読み有効領域情報格納部へ設定することも可能である。
本発明に係わるバスブリッジ装置は、シングル/バーストアクセスなどアクセス方法によらず、適切なサイズにてリードデータの先読みを行なうことが可能で、例えば、連続シングルアクセスに対しても、バスの転送効率を向上させることができる。結果、I/Oアクセスの速度が速くなることで、PCIバス占有時間が短くなり、例えば、他のメモリアクセスコマンドのレイテンシ向上が期待でき、また、アクセス元がプロセッサだった場合、I/Oアクセスの速度が速くなった分、他の処理を実行可能となり、システム全体の性能向上が期待できる。従って、バスブリッジ装置及びそれを用いたコンピュータシステムにおいて、特にプリフェッチ機能を有したバスブリッジ装置及びコンピュータシステムにおいて有用である。
101 システムLSI
102 PCIバスI/F
103 バスブリッジ
104 バスブリッジ
105 バスブリッジ
106 I/Oバス
107 メモリバス
108 PCIバス
109 マイコン
110 バスコントロールユニット(BCU)
111 AV処理部
112 ストリーム処理部
113 グラフィクス処理部
114 メモリ
115 マイコン
116 外部デバイス
201 第1のバス
202 第2のバス
203 先読み有効領域情報格納部
204 先読み有効領域判断部
205 マルチアクセス変換部
206 先読みデータ保持部
403 先読み有効領域情報格納部
404 先読み有効領域判断部
405 マルチアクセス変換部
503 先読み有効領域情報格納部
504 先読み有効領域判断部
505 マルチアクセス変換部
603 先読み有効領域情報格納部
604 先読み有効領域判断部
605 マルチアクセス変換部
703 先読み有効領域情報格納部
704 先読み有効領域判断部
705 マルチアクセス変換部
901 CPU
902 ホスト−PCIブリッジ
903 メモリ
904 PCI−PCIブリッジ
905 PCIデバイス
906 PCIデバイス
907 マスタ制御部
908 シングル/バースト判定部
909 コンフィグレジスタ
910 プリフェッチバッファ
102 PCIバスI/F
103 バスブリッジ
104 バスブリッジ
105 バスブリッジ
106 I/Oバス
107 メモリバス
108 PCIバス
109 マイコン
110 バスコントロールユニット(BCU)
111 AV処理部
112 ストリーム処理部
113 グラフィクス処理部
114 メモリ
115 マイコン
116 外部デバイス
201 第1のバス
202 第2のバス
203 先読み有効領域情報格納部
204 先読み有効領域判断部
205 マルチアクセス変換部
206 先読みデータ保持部
403 先読み有効領域情報格納部
404 先読み有効領域判断部
405 マルチアクセス変換部
503 先読み有効領域情報格納部
504 先読み有効領域判断部
505 マルチアクセス変換部
603 先読み有効領域情報格納部
604 先読み有効領域判断部
605 マルチアクセス変換部
703 先読み有効領域情報格納部
704 先読み有効領域判断部
705 マルチアクセス変換部
901 CPU
902 ホスト−PCIブリッジ
903 メモリ
904 PCI−PCIブリッジ
905 PCIデバイス
906 PCIデバイス
907 マスタ制御部
908 シングル/バースト判定部
909 コンフィグレジスタ
910 プリフェッチバッファ
Claims (18)
- 第1のバスと第2のバスに接続し、第2のバスにおいてリードデータの先読みが有効となるアドレス領域の情報を保持する先読み有効領域情報格納部と、前記先読み有効領域情報格納部内の先読み有効アドレス領域情報と、第1のバスからのリードデータ要求アドレスとを比較し、第1のバスから要求されたデータのアドレスが先読み有効領域内かどうかを判断する先読み有効領域判断部と、前記先読み有効領域判断部で、第1のバスから要求されたデータのアドレスが先読み有効領域内と判断した場合、第1のバスからのリードアクセスが、特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第1のバスから要求があったデータ及び、前記データに続くデータを取得する為の手続きを第2のバスに対し行なうマルチアクセス変換部と、第2のバスより先読みしたリードデータを保持し、保持されたリードデータのアドレスと、第1のバスからのリードデータ要求アドレスとを比較し、第1のバスより要求されたデータが格納されているかどうかを判断する先読みデータ保持部とからなり、前記先読みデータ保持部において、第1のバスより要求されたリードデータが前記先読みデータ保持部に保持されていると判断した場合、第1のバスに先読みしたリードデータを送出することが可能なバスブリッジ装置。
- 前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第2のバスにおけるリードデータの先読みが有効となる領域の先頭アドレスと、その連続した領域のサイズで表すことを特徴とした請求項1に記載のバスブリッジ装置。
- 前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第2のバスにおけるリードデータの先読みが有効となる領域の先頭アドレスと、前記先頭アドレスと連続し先読みが有効となる領域の終端アドレスとで表すことを特徴とした請求項1に記載のバスブリッジ装置。
- 前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第2のバスにおける先読みが無効となる領域の先頭アドレスと、その連続した領域のサイズとで表すことを特徴とした請求項1に記載のバスブリッジ装置。
- 前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第2のバスにおけるリードデータの先読みが無効となる領域の先頭アドレスと、第2のバスにおけるリードデータの先読みが無効となる領域の終端アドレスとで表すことを特徴とした請求項1に記載のバスブリッジ装置。
- 前記先読み有効領域情報格納部は、複数の先読み有効アドレス領域情報を保持することを特徴とする、請求項2から5のいずれか一項に記載のバスブリッジ装置。
- 前記マルチアクセス変換部は、前記先読み有効領域判断部にて、第1のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、第1のバスから要求されたアドレスのデータを第2のバスより読み込み、かつ、その次のデータを第2のバスより先読みすることを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
- 前記マルチアクセス変換部は、前記先読み有効領域判断部にて、第1のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、第1のバスから要求されたアドレスから、残りの連続した先読み有効領域のデータを、第2のバスより先読みすることを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
- 前記第2のバスは、バースト転送時のアドレス境界を規定したプロトコルを持ち、前記先読み有効領域判断部にて、第1のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、前記マルチアクセス変換部は、第2のバスのアドレス境界までのデータに関し、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
- 前記第2のバスは、バーストプロトコルを持ち、前記先読み有効領域判断部にて、第1のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、前記マルチアクセス変換部は、第2のバスで規定されたバーストサイズに応じて、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
- 前記第2のバスは、バースト転送時のアドレス境界を規定したバーストプロトコルを持ち、前記先読み有効領域判断部にて、第1のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、前記マルチアクセス変換部は、第2のバスで規定されたバーストサイズ及び、アドレス境界に応じて、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
- 前記第1のバスのデータビット幅が前記第2のバスのデータビット幅より大きい又は等しい場合、第2のバスでのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、前記第2のバスのデータビット幅より小さい又は、等しい時、前記マルチアクセス変換部は、第2のバスに対し、前記アクセスデータ幅に合わせ、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
- 前記第1のバスのデータビット幅が前記第2のバスのデータビット幅より大きい又は等しい場合、第2のバスでのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、前記第1のバスのデータビット幅より大きい又は等しい時、前記マルチアクセス変換部は、第2のバスに対し、第2のバスで規定するアクセスサイズに応じて、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
- 前記第1のバスのデータビット幅が前記第2のバスのデータビット幅より小さい時、前記マルチアクセス変換部は、第2のバスに対し、第2のバスでのアクセス対象となるデータの1アドレス毎のアクセスデータ幅に合わせ、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
- 前記マルチアクセス変換部は、第2のバスに対し、前記先読みデータ保持部のバッファサイズ分のリードデータの先読みを行なう事を特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
- 前記マルチアクセス変換部は、第1のバスのアクセスの有無に拘らず、前記先読みデータ保持部で第1のバスにデータを送出し空いたサイズ分のデータを、第2のバスに対しバスコマンドを発行し、先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
- 前記先読みデータ保持部を複数持ち、前記先読み有効領域判断部は、前記複数の先読みデータ保持部の先頭データアドレスと、第1のバスからのリードデータ要求アドレスとを比較し、どの先読みデータ保持部に第1のバスより要求されたデータが保持されているかどうかを判断する事を特徴とする請求項1から16のいずれか一項に記載のバスブリッジ装置。
- 第1のバスは、ディレイトランザクションに対応したPCIバスである事を特徴とする請求項1から17のいずれか一項に記載のバスブリッジ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005156785A JP2006331252A (ja) | 2005-05-30 | 2005-05-30 | バスブリッジ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005156785A JP2006331252A (ja) | 2005-05-30 | 2005-05-30 | バスブリッジ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006331252A true JP2006331252A (ja) | 2006-12-07 |
Family
ID=37552855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005156785A Pending JP2006331252A (ja) | 2005-05-30 | 2005-05-30 | バスブリッジ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006331252A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012118958A (ja) * | 2010-12-03 | 2012-06-21 | Lsi Corp | Sasエクスパンダにおけるデータプリフェッチ |
-
2005
- 2005-05-30 JP JP2005156785A patent/JP2006331252A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012118958A (ja) * | 2010-12-03 | 2012-06-21 | Lsi Corp | Sasエクスパンダにおけるデータプリフェッチ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6434639B1 (en) | System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operation | |
KR101379524B1 (ko) | 디스플레이 파이프 내에서의 스트리밍 변환 | |
US6330630B1 (en) | Computer system having improved data transfer across a bus bridge | |
JP3918145B2 (ja) | メモリコントローラ | |
KR101350541B1 (ko) | 프리페치 명령어 | |
US5269005A (en) | Method and apparatus for transferring data within a computer system | |
US11500797B2 (en) | Computer memory expansion device and method of operation | |
US9135177B2 (en) | Scheme to escalate requests with address conflicts | |
US20090172295A1 (en) | In-memory, in-page directory cache coherency scheme | |
US6321307B1 (en) | Computer system and method employing speculative snooping for optimizing performance | |
CN108139994B (zh) | 内存访问方法及内存控制器 | |
US20080235461A1 (en) | Technique and apparatus for combining partial write transactions | |
JP4019073B2 (ja) | キャッシュ可能なdma | |
US20080183936A1 (en) | Bus bridge and arbitration method | |
JP4266629B2 (ja) | ページ・テーブル属性によるバス・インタフェース選択 | |
JP5911548B1 (ja) | 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム | |
US6697882B1 (en) | Memory controller and method control method, and rendering device and printing device using the same | |
US20080320176A1 (en) | Prd (physical region descriptor) pre-fetch methods for dma (direct memory access) units | |
US7406571B2 (en) | Memory system and method for controlling the same, and method for maintaining data coherency | |
JP2006331252A (ja) | バスブリッジ装置 | |
US9652560B1 (en) | Non-blocking memory management unit | |
US20050091458A1 (en) | Storage control apparatus, control system capable of DMA transfer, and method of controlling DMA transfer | |
JP4220258B2 (ja) | ノンキャッシュ領域内高速メモリアクセス方法 | |
JP2006268734A (ja) | メモリアクセス制御装置 | |
JP2004126645A (ja) | メモリ制御装置 |