JP2006331252A - バスブリッジ装置 - Google Patents

バスブリッジ装置 Download PDF

Info

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
Application number
JP2005156785A
Other languages
English (en)
Inventor
Kazuhiro Watanabe
一弘 渡邉
Tomohiko Kitamura
朋彦 北村
Hideyuki Kanzaki
英之 神崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005156785A priority Critical patent/JP2006331252A/ja
Publication of JP2006331252A publication Critical patent/JP2006331252A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】PCI−PCIバスブリッジにおいて、シングルメモリリードアクセスにて数ワード連続で読み込む場合などに、プリフェッチ機能を有効に利用することができなかった。
【解決手段】リードデータ先読み有効領域情報を持った先読み有効領域情報格納部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とを接続したコンピュータシステムを示す。
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を示す。
バスブリッジ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を示す。
バスブリッジ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を示す。
バスブリッジ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を示す。
バスブリッジ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アクセスの速度が速くなった分、他の処理を実行可能となり、システム全体の性能向上が期待できる。従って、バスブリッジ装置及びそれを用いたコンピュータシステムにおいて、特にプリフェッチ機能を有したバスブリッジ装置及びコンピュータシステムにおいて有用である。
本発明の実施の形態1にかかるコンピュータシステムの構成を示すブロック図 本発明の実施の形態1におけるバスブリッジ装置の構成を示すブロック図 本発明の実施の形態1におけるバスブリッジ装置の先読み処理手順示すフローチャート 本発明の実施の形態2におけるバスブリッジ装置の構成を示すブロック図 本発明の実施の形態3におけるバスブリッジ装置の構成を示すブロック図 本発明の実施の形態4におけるバスブリッジ装置の構成を示すブロック図 本発明の実施の形態5におけるバスブリッジ装置の構成を示すブロック図 本発明の実施の形態5におけるバスブリッジ装置の先読み処理手順示すフローチャート 従来のバスブリッジ装置及びそれを利用したコンピュータシステムの構成を示すブロック図
符号の説明
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 プリフェッチバッファ

Claims (18)

  1. 第1のバスと第2のバスに接続し、第2のバスにおいてリードデータの先読みが有効となるアドレス領域の情報を保持する先読み有効領域情報格納部と、前記先読み有効領域情報格納部内の先読み有効アドレス領域情報と、第1のバスからのリードデータ要求アドレスとを比較し、第1のバスから要求されたデータのアドレスが先読み有効領域内かどうかを判断する先読み有効領域判断部と、前記先読み有効領域判断部で、第1のバスから要求されたデータのアドレスが先読み有効領域内と判断した場合、第1のバスからのリードアクセスが、特定のアドレスのデータ要求か、複数アドレスのデータ要求かに拘らず、第1のバスから要求があったデータ及び、前記データに続くデータを取得する為の手続きを第2のバスに対し行なうマルチアクセス変換部と、第2のバスより先読みしたリードデータを保持し、保持されたリードデータのアドレスと、第1のバスからのリードデータ要求アドレスとを比較し、第1のバスより要求されたデータが格納されているかどうかを判断する先読みデータ保持部とからなり、前記先読みデータ保持部において、第1のバスより要求されたリードデータが前記先読みデータ保持部に保持されていると判断した場合、第1のバスに先読みしたリードデータを送出することが可能なバスブリッジ装置。
  2. 前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第2のバスにおけるリードデータの先読みが有効となる領域の先頭アドレスと、その連続した領域のサイズで表すことを特徴とした請求項1に記載のバスブリッジ装置。
  3. 前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第2のバスにおけるリードデータの先読みが有効となる領域の先頭アドレスと、前記先頭アドレスと連続し先読みが有効となる領域の終端アドレスとで表すことを特徴とした請求項1に記載のバスブリッジ装置。
  4. 前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第2のバスにおける先読みが無効となる領域の先頭アドレスと、その連続した領域のサイズとで表すことを特徴とした請求項1に記載のバスブリッジ装置。
  5. 前記先読み有効領域情報格納部に保持する先読み有効アドレス領域情報は、第2のバスにおけるリードデータの先読みが無効となる領域の先頭アドレスと、第2のバスにおけるリードデータの先読みが無効となる領域の終端アドレスとで表すことを特徴とした請求項1に記載のバスブリッジ装置。
  6. 前記先読み有効領域情報格納部は、複数の先読み有効アドレス領域情報を保持することを特徴とする、請求項2から5のいずれか一項に記載のバスブリッジ装置。
  7. 前記マルチアクセス変換部は、前記先読み有効領域判断部にて、第1のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、第1のバスから要求されたアドレスのデータを第2のバスより読み込み、かつ、その次のデータを第2のバスより先読みすることを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
  8. 前記マルチアクセス変換部は、前記先読み有効領域判断部にて、第1のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、第1のバスから要求されたアドレスから、残りの連続した先読み有効領域のデータを、第2のバスより先読みすることを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
  9. 前記第2のバスは、バースト転送時のアドレス境界を規定したプロトコルを持ち、前記先読み有効領域判断部にて、第1のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、前記マルチアクセス変換部は、第2のバスのアドレス境界までのデータに関し、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
  10. 前記第2のバスは、バーストプロトコルを持ち、前記先読み有効領域判断部にて、第1のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、前記マルチアクセス変換部は、第2のバスで規定されたバーストサイズに応じて、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
  11. 前記第2のバスは、バースト転送時のアドレス境界を規定したバーストプロトコルを持ち、前記先読み有効領域判断部にて、第1のバスから要求されたリードデータのアドレスが先読み有効領域内と判断した場合、前記マルチアクセス変換部は、第2のバスで規定されたバーストサイズ及び、アドレス境界に応じて、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
  12. 前記第1のバスのデータビット幅が前記第2のバスのデータビット幅より大きい又は等しい場合、第2のバスでのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、前記第2のバスのデータビット幅より小さい又は、等しい時、前記マルチアクセス変換部は、第2のバスに対し、前記アクセスデータ幅に合わせ、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
  13. 前記第1のバスのデータビット幅が前記第2のバスのデータビット幅より大きい又は等しい場合、第2のバスでのアクセス対象となるデータの1アドレス毎のアクセスデータ幅が、前記第1のバスのデータビット幅より大きい又は等しい時、前記マルチアクセス変換部は、第2のバスに対し、第2のバスで規定するアクセスサイズに応じて、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
  14. 前記第1のバスのデータビット幅が前記第2のバスのデータビット幅より小さい時、前記マルチアクセス変換部は、第2のバスに対し、第2のバスでのアクセス対象となるデータの1アドレス毎のアクセスデータ幅に合わせ、第2のバスへバスコマンドを発行し、リードデータの先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
  15. 前記マルチアクセス変換部は、第2のバスに対し、前記先読みデータ保持部のバッファサイズ分のリードデータの先読みを行なう事を特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
  16. 前記マルチアクセス変換部は、第1のバスのアクセスの有無に拘らず、前記先読みデータ保持部で第1のバスにデータを送出し空いたサイズ分のデータを、第2のバスに対しバスコマンドを発行し、先読みを行なうことを特徴とする請求項1から6のいずれか一項に記載のバスブリッジ装置。
  17. 前記先読みデータ保持部を複数持ち、前記先読み有効領域判断部は、前記複数の先読みデータ保持部の先頭データアドレスと、第1のバスからのリードデータ要求アドレスとを比較し、どの先読みデータ保持部に第1のバスより要求されたデータが保持されているかどうかを判断する事を特徴とする請求項1から16のいずれか一項に記載のバスブリッジ装置。
  18. 第1のバスは、ディレイトランザクションに対応したPCIバスである事を特徴とする請求項1から17のいずれか一項に記載のバスブリッジ装置。
JP2005156785A 2005-05-30 2005-05-30 バスブリッジ装置 Pending JP2006331252A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118958A (ja) * 2010-12-03 2012-06-21 Lsi Corp Sasエクスパンダにおけるデータプリフェッチ

Cited By (1)

* Cited by examiner, † Cited by third party
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) メモリ制御装置