(57)【要約】【課題】周辺デバイスからプロセッサのメモリへのアクセスにおいて、効率向上を図る。【解決手段】プロセッサユニットと周辺デバイスを接続するブリッジ２０の下流ポート２２は、周辺デバイスとの間に提供されるバーチャルチャネルであって、周辺デバイスがそのいずれかを利用してプロセッサユニットのメモリにアクセスするための複数の下流チャネルのいずれかを介して、周辺デバイスからのアクセスを受け付ける。中継部２４は、このアクセスを、プロセッサユニットによりサポートされる複数のバーチャルチャネルであって、各チャネルについてメモリへアクセスする際に使用可能なメモリ帯域がそれぞれ割り当てられた上流チャネルへ中継する。その際、下流チャネルの識別子と上流チャネルの識別子とを対応付けて記憶したテーブルを参照して、周辺デバイスからのアクセスに応じて、該周辺デバイスが用いる下流チャネルに対応する上流チャネルを割り当てる。【選択図】図２
2007241904.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサユニットと周辺デバイスを接続するブリッジであって、
前記周辺デバイスと接続する下流ポートと、
前記周辺デバイスが前記下流ポートを介して前記プロセッサユニットのメモリへのアクセスを、前記プロセッサユニットによりサポートされる複数のバーチャルチャネルであって、各チャネルについて前記プロセッサユニットのメモリへアクセスする際に使用可能なメモリ帯域がそれぞれ割り当てられた上流チャネルへ中継する中継部とを備え、
前記下流ポートは、前記周辺デバイスとの間に提供されるバーチャルチャネルであって、前記周辺デバイスがそのいずれかを利用して前記アクセスを行うための複数の下流チャネルをサポートし、
前記中継部は、前記下流チャネルの識別子と前記上流チャネルの識別子とを対応付けて記憶したテーブルを有し、
該テーブルを参照して、前記周辺デバイスからの前記アクセスに応じて、該周辺デバイスが用いる下流チャネルに対応する上流チャネルを前記周辺デバイスに割り当てることを特徴とするブリッジ。
【請求項２】
前記中継部は、複数の内部バスを有し、
前記テーブルは、下流チャネルの識別子と内部バスの識別子とを対応付けて記憶した第１のテーブルと、
内部バスの識別子と上流チャネルの識別子とを対応付けて記憶した第２のテーブルとを有し、
前記中継部は、前記周辺デバイスからの前記アクセスに応じて、前記第１のテーブルを参照して、該周辺デバイスが用いる下流チャネルに対応する内部バスを前記周辺デバイスに割り当て、
前記第２のテーブルを参照して、前記周辺デバイスに割り当てられた前記内部バスに対応する上流チャネルを前記周辺デバイスに割り当てることを特徴とする請求項１に記載のブリッジ。
【請求項３】
前記第２のテーブルは、さらに、各内部バスにそれぞれ割り当てられた、ブリッジ内部におけるリソース帯域を、前記内部バスの識別子に対応付けて記憶しており、
前記中継部は、該第２のテーブルを参照して、前記アクセスを行う周辺デバイスが使用する前記リソース帯域をさらに割り当てることを特徴とする請求項２に記載のブリッジ。
【請求項４】
プロセッサユニットと、
周辺デバイスと、
前記プロセッサユニットと前記周辺デバイスを接続するブリッジとを備える情報処理装置であって、
前記ブリッジは、前記周辺デバイスと接続する下流ポートと、
前記周辺デバイスが前記下流ポートを介して前記プロセッサユニットのメモリへのアクセスを、前記プロセッサユニットによりサポートされる複数のバーチャルチャネルであって、各チャネルについて前記プロセッサユニットのメモリへアクセスする際に使用可能なメモリ帯域がそれぞれ割り当てられた上流チャネルへ中継する中継部とを備え、
前記下流ポートは、前記周辺デバイスとの間に提供されるバーチャルチャネルであって、前記周辺デバイスがそのいずれかを利用して前記アクセスを行うための複数の下流チャネルをサポートし、
前記中継部は、前記下流チャネルの識別子と前記上流チャネルの識別子とを対応付けて記憶したテーブルを有し、
該テーブルを参照して、前記周辺デバイスからの前記アクセスに応じて、該周辺デバイスが用いる下流チャネルに対応する上流チャネルを前記周辺デバイスに割り当て、
前記プロセッサユニットは、いずれかの前記上流チャネルが割り当てられた前記アクセスを、該上流チャネルに対して割り当てられたメモリ帯域で前記メモリに中継するアクセス制御部を有することを特徴とする情報処理装置。
【請求項５】
前記中継部は、複数の内部バスを有し、
前記テーブルは、下流チャネルの識別子と内部バスの識別子とを対応付けて記憶した第１のテーブルと、
内部バスの識別子と上流チャネルの識別子とを対応付けて記憶した第２のテーブルとを有し、
前記中継部は、前記周辺デバイスからの前記アクセスに応じて、前記第１のテーブルを参照して、該周辺デバイスが用いる下流チャネルに対応する内部バスを前記周辺デバイスに割り当て、
前記第２のテーブルを参照して、前記周辺デバイスに割り当てられた前記内部バスに対応する上流チャネルを前記周辺デバイスに割り当てることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記第２のテーブルは、さらに、各内部バスにそれぞれ割り当てられた、ブリッジ内部におけるリソース帯域を、前記内部バスの識別子に対応付けて記憶しており、
前記中継部は、該第２のテーブルを参照して、前記アクセスを行う周辺デバイスが使用する前記リソース帯域をさらに割り当てることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
プロセッサユニットと周辺デバイスとを接続するブリッジを用いたアクセス制御方法であって、
前記ブリッジと前記周辺デバイスとの間に提供されるバーチャルチャネルであって、前記周辺デバイスがそれを利用して前記プロセッサユニットのメモリにアクセスするための複数の下流チャネルのいずれかを介して、前記周辺デバイスからの前記アクセスを受け付けるステップと、
該アクセスを、前記プロセッサユニットによりサポートされる複数のバーチャルチャネルであって、各チャネルについて前記プロセッサユニットのメモリへアクセスする際に使用可能なメモリ帯域がそれぞれ割り当てられた上流チャネルへ中継するステップとを有し、
前記中継をするステップは、前記下流チャネルの識別子と前記上流チャネルの識別子とを対応付けて記憶したテーブルを参照して、前記周辺デバイスからの前記アクセスに応じて、該周辺デバイスが用いる下流チャネルに対応する上流チャネルを前記周辺デバイスに割り当てるステップを有することを特徴とするアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサユニットに接続された周辺デバイスから、プロセッサユニットへのアクセス技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータやサーバには、ＩＯＩＦ（ＩＯ  インターフェイス）や、バスたとえばＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを介して各種の周辺デバイスが接続され、情報処理システムが構成される。
【０００３】
周辺デバイスからプロセッサのメモリへアクセスする際に、プロセッサの負担を減らすために、ＤＭＡ（ダイレクト・メモリ・アクセス）アーキテクチャを用いることが考えられる。こうすることによって、周辺デバイスは、プロセッサのメモリに直接アクセスすることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、周辺デバイスの種類によって、要求されるアクセス速度が異なる。たとえば、グラフィックカードは他の周辺デバイスより高速なアクセスが要求される。効率の良いアクセスを実現するためには、周辺デバイスから、プロセッサのメモリへのアクセスの制御に工夫が要求される。
【０００５】
本発明は、上記事情に鑑みてなされたものであり、その目的は、周辺デバイスからプロセッサのメモリへのアクセスにおいて、良い効率を図ることができる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は、ブリッジである。このブリッジは、プロセッサユニットと周辺デバイスを接続するブリッジであって、下流ポートと中継部を有する。
【０００７】
下流ポートは、周辺デバイスと接続し、周辺デバイスとの間に提供されるバーチャルチャネルであって、周辺デバイスがそのいずれかを利用してプロセッサユニットのメモリへのアクセスを行うための複数の下流チャネルをサポートする。
【０００８】
中継部は、周辺デバイスが下流ポートを介してプロセッサユニットのメモリへのアクセスを、プロセッサユニットによりサポートされる複数のバーチャルチャネルであって、各チャネルについてメモリへアクセスする際に使用可能なメモリ帯域がそれぞれ割り当てられた上流チャネルへ中継する。
【０００９】
この中継部は、下流チャネルの識別子と上流チャネルの識別子とを対応付けて記憶したテーブルを有し、該テーブルを参照して、周辺デバイスからのアクセスに応じて、該周辺デバイスが用いる下流チャネルに対応する上流チャネルを該周辺デバイスに割り当てる。
【００１０】
また、中継部が複数の内部バスを有する場合において、テーブルを、下流チャネルの識別子と内部バスの識別子とを対応付けて記憶した第１のテーブルと、内部バスの識別子と上流チャネルの識別子とを対応付けて記憶した第２のテーブルとを用いて構成するようにしてもよい。この場合、中継部は、周辺デバイスからのアクセスに応じて、第１のテーブルを参照して、該周辺デバイスが用いる下流チャネルに対応する内部バスを周辺デバイスに割り当て、第２のテーブルを参照して、周辺デバイスに割り当てられた内部バスに対応する上流チャネルを周辺デバイスに割り当てる。
【００１１】
さらに、第２のテーブルは、各内部バスにそれぞれ割り当てられた、ブリッジ内部におけるリソース帯域を、内部バスの識別子に対応付けて記憶しており、中継部は、該第２のテーブルを参照して、アクセスを行う周辺デバイスが使用するリソース帯域をさらに割り当てるようにしてもよい。
【００１２】
本発明の別の態様は、情報処理装置である。この情報処理装置は、プロセッサユニット、周辺デバイス、プロセッサユニットと周辺デバイスを接続するブリッジを備える。
【００１３】
ブリッジとしては、上述した態様のブリッジを適用することができる。プロセッサユニットは、ブリッジにより、いずれかの上流チャネルが割り当てられたアクセスを、該上流チャネルに対して割り当てられたメモリ帯域でプロセッサユニットのメモリに中継するアクセス制御部を有する。
【００１４】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記憶した記憶媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１５】
本発明は、プロセッサユニットに接続された周辺デバイスから、プロセッサユニットのメモリへのアクセスにおいて、効率の向上を図ることができる。
【発明を実施するための最良の形態】
【００１６】
本発明の実施の形態の詳細を説明する前に、まず、本発明者が提案する技術の概要を説明する。
【００１７】
図１に示す情報処理システムについて考える。この情報処理システムは、プロセッサユニット１０と、複数ここでは例として２つの周辺デバイス３０を有し、プロセッサユニット１０と周辺デバイス３０は、ブリッジ２０により接続される。プロセッサユニット１０は、単一のプロセッサを有するシングルプロセッサシステムであってもよいし、複数のプロセッサを含むマルチプロセッサシステムであってもよい。なお、プロセッサユニット１０は、図示しないメモリを備え、マルチプロセッサシステムの場合においては、このメモリは、各プロセッサからアクセス可能な共有メモリである。
【００１８】
図２は、ブリッジ２０を示す。ブリッジ２０は、周辺デバイス３０と接続する下流ポート２２と、プロセッサユニット１０と接続する上流ポート２８と、中継部２４を備える。  下流ポート２２は、周辺デバイス３０が、プロセッサユニット１０のメモリへアクセスするための複数のバーチャルチャネル（以下下流ＶＣという）２１をサポートし、周辺デバイス３０は、いずれか１つまたは複数の下流ＶＣ２１を用いてアクセスを行う。
【００１９】
周辺デバイス３０は、プロセッサユニット１０のメモリにアクセスするのに当たり、アクセス要求パケットを発行する。このアクセス要求パケットは、周辺デバイス３０のアクセス先のメモリ領域のアドレスを指定可能なものであり、この周辺デバイス３０が使用する下流ＶＣ２１の識別子を含む。図３の上部は、周辺デバイス３０が発行したアクセス要求パケット（以下入力パケットという）の例を示す。図中の下流ＶＣＩＤは、該アクセスを行う周辺デバイス３０が使用する下流ＶＣの識別子であり、アドレスは、アクセス先のメモリ領域内の所定の位置を示しうるものである。
【００２０】
中継部２４は、下流ポート２２が受信した入力パケットを、図３の下部に示す出力パケットに変換し、この出力パケットは、上流ポート２８によりプロセッサユニット１０に出力される。
【００２１】
図３の下部に示すように、出力パケットは、上流ＶＣＩＤとアドレスを有する。ここで、上流ＶＣＩＤを説明する。
【００２２】
上流ポート２８は、プロセッサユニット１０のメモリへアクセス可能な複数のバーチャルチャネル（以下、上流ＶＣという）２９をサポートし、これらの上流ＶＣ２９はまた、プロセッサユニット１０によりサポートされている。上流ＶＣＩＤは、上流ＶＣ２９の識別子である。
【００２３】
各上流ＶＣ２９は、プロセッサユニット１０のメモリへアクセスする際に使用するメモリ帯域をそれぞれ割り当てられている。すなわち、上流ポート２８から出力された出力パケットは、それに含まれる上流ＶＣＩＤによっていずれの上流ＶＣ２９を指定し、これによりメモリ帯域を指定することができる。
【００２４】
なお、「上流ＶＣ２９がメモリ帯域を割り当てられている」とは、上流ＶＣ２９とメモリ帯域が所定の対応関係を決められていればよく、直接に割り当てられているのはもちろん、間接に割り当てられているのもよい。たとえば、プロセッサユニット１０の、上流ポート２８と接続するＩＯＩＦが、メモリ帯域がそれぞれ割り当てられた複数のバーチャルチャネルをサポートし、上流ＶＣ２９は、ＩＯＩＦがサポートするバーチャルチャネルに割り当てられている場合において、上流ＶＣ２９は、間接にメモリ帯域を割り当てられていると言える。
【００２５】
ブリッジ２０の中継部２４は、下流ＶＣ２１を指定した入力パケットを、上流ＶＣ２９を指定する出力パケットに変換する際に、たとえば図４に示すテーブルを用いる。このテーブルは、下流ＶＣ２１の識別子（下流ＶＣＩＤ）と、上流ＶＣ２９の識別子（上流ＶＣＩＤ）とを対応付けて記憶している。中継部２４は、このテーブルを参照して、入力パケットに含まれる下流ＶＣＩＤを、この下流ＶＣＩＤに対応する上流ＶＣＩＤに変換して出力パケットを得る。
【００２６】
プロセッサユニット１０は、図示しないアクセス制御部を有する。このアクセス制御部は、出力パケットに含まれる上流ＶＣＩＤを読み出し、それによって指定された上流ＶＣに対応するメモリ帯域を割り当てアクセスを中継することによって、このアクセスのためのメモリ帯域の予約を実現する。
【００２７】
このように、本発明者が提案したこの技術によれば、周辺デバイス３０毎に、プロセッサユニット１０のメモリへアクセスする際に使用可能なメモリ帯域を制御することができる。これによって、周辺デバイスの種類に応じてメモリ帯域を予約することができ、たとえばリアルタイムデータなどのためのメモリ帯域を保証することができる。
【００２８】
また、メモリ帯域の予約は、プロセッサユニット１０のＣＰＵを介さずに、ブリッジ２０とプロセッサユニット１０のアクセス制御部との協働によって直接行われるので、オーバーヘッドを防ぐことができる。
【００２９】
次いで、ブリッジ２０内において、下流ポート２２から上流ポート２８へのデータ転送を担う内部バス（図示せず）が複数ある場合について考える。この場合において、ブリッジ２０の中継部２４は、図５に示すテーブルを用いることができる。
【００３０】
図５に示すテーブルは、第１のテーブルと第２のテーブルを有する。第１のテーブルは、下流ＶＣＩＤと、内部バスの識別子とを対応付けて記憶している。第２のテーブルは、内部バスの識別子と、上流ＶＣＩＤとを対応付けて記憶している。なお、第２のテーブルは、内部バスの識別子と、上流ＶＣＩＤに対応して、リソース割合も記憶しており、その詳細については後述する。
【００３１】
ブリッジ２０の中継部２４は、まず、第１のテーブルを参照して、周辺デバイス３０から受信した入力パケットに含まれる下流ＶＣＩＤに対応する内部バスの識別子を得、この識別子により示される内部バスを、このアクセスに割り当てる。この際、入力パケットに含まれる下流ＶＣＩＤを、割り当てられた内部バスの識別子に変換する。以下、この変換されたパケットを内部パケットといい、図６はそれを示している。なお、図６において、内部バスＩＤは、内部バスの識別子である。
【００３２】
図６に示す内部パケットは、それに割り当てられた内部バス、すなわちこの内部パケットに含まれる内部バスＩＤにより示される内部バスによって上流ポート２８へ転送される。中継部２４は、内部パケットが上流ポート２８により出力される前に、さらに内部パケットを出力パケットに変換する。具体的には、図５に示す第２のテーブルを参照し、内部パケットに含まれる内部バスＩＤを、この内部バスＩＤに対応する上流ＶＣＩＤに変換する。
【００３３】
このように、下流ＶＣ２１に応じて内部バスを割り当て、内部バスに応じて上流ＶＣ２９を割り当てる。２つのテーブルを用いてパケットの変換すなわち割当を行い、テーブルの組み合わせによって柔軟な設定が可能となる。
【００３４】
さらに、本発明者は、ブリッジ２０内部において、コマンドやデータなどを一時的に記憶するバッファなどのリソース（図示せず）を内部バス毎に設定可能にすることを提案する。具体的には、たとえば図５の第２のテーブルに示すように、内部バス毎に、この内部バスに割り当てられたリソースの割合が設定されている。なお、ここでリソースの割合を内部バス毎に設定しているが、エントリ数などを設定してもよい。
【００３５】
中継部２４は、第２のテーブルを参照して内部パケットを出力パケットに変換する際に、内部パケットに含まれる内部バスＩＤに対応するリソースの割合も取得する。これによって、内部バス毎に使用可能なリソースを制御することができ、結果的には内部バス毎に出力可能な出力パケット数も制御することができる。
【００３６】
以下、本発明の実施の形態について、以上の概要を具現化してシステムを説明する。
【００３７】
図７は、本発明にかかる実施の形態による情報処理システムの構成を示す。この情報処理システムは、複数の周辺デバイス、マルチコアプロセッサ１２０、メインメモリ１８０、ＰＣＩデバイス１００とマルチコアプロセッサ１２０とを接続するブリッジ１１０を有する。マルチコアプロセッサ１２０とメインメモリ１８０は、１つのプロセッサユニットを構成する。複数の周辺デバイスは、ＩＯＩＦ１０４を介して接続するデバイスや、ＰＣＩデバイス１００などを含む。
【００３８】
ＰＣＩデバイス１００の接続インターフェイスとして、ＰＣＩバスを用いる。ここで、ＰＣＩバスは、ＰＣＩ、ＰＣＩＸ、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）のいずれの仕様によるものでもよい。
【００３９】
ブリッジ１１０は、周辺デバイスとの間において複数のバーチャルチャネルすなわち下流ＶＣを提供する。周辺デバイスは、いずれか１つまたは複数の下流ＶＣを用いてアクセス要求パケットすなわち入力パケットをブリッジ１１０に発行する。
【００４０】
また、マルチコアプロセッサ１２０のＩＯＩＦ１６０は、ブリッジ１１０との間において複数のバーチャルチャネルすなわち上流ＶＣを提供する。ブリッジ１１０は、周辺デバイスからの入力パケットを変換してからいずれかの上流ＶＣに中継する。入力パケットの変換については後述する。
【００４１】
さらに、マルチコアプロセッサ１２０のメモリコントローラ１７０は、ＩＯＩＦ１６０との間において複数のバーチャルチャネル（以下内部ＶＣという）を提供する。各内部ＶＣについて、メインメモリ１８０へアクセスするメモリ帯域が割り当てられている。
【００４２】
マルチコアプロセッサ１２０は、ワンチップで形成されており、主処理ユニットＰＰＥ（Ｐｏｗｅｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）１４０と、複数、図示の例では８つのサブ処理ユニットＳＰＥ（Ｓｙｎｅｒｇｉｓｔｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）１３０と、ＩＯＩＦ１６０と、メモリコントローラ１７０とを有し、これらは、リングバス１５０によって接続される。
【００４３】
メインメモリ１８０は、マルチコアプロセッサ１２０の各処理ユニットの共有メモリであり、メモリコントローラ１７０と接続されている。
【００４４】
メモリコントローラ１７０は、メインメモリ１８０へのアクセスを制御する。なお、図７に示す例では、メインメモリ１８０はマルチコアプロセッサ１２０の外部に設けられているが、マルチコアプロセッサ１２０内に含まれるように設けられてもよい。
【００４５】
ＩＯＩＦ１６０は、図示しないＩＯＥＦバスによってブリッジ１１０と接続され、ブリッジ１１０と協働して、周辺デバイスからメインメモリ１８０へのアクセスを可能にする。ＩＯＩＦ１６０には、ＩＯコントローラ１６４が含まれている。
【００４６】
ＳＰＥ１３０は、コア１３２と、ローカルメモリ１３４と、メモリフローコントローラ（以下ＭＦＣという）１３６とを備え、ＭＦＣ１３６には、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）１３８が含まれている。なお、ローカルメモリ１３４は、従来のハードウェアキャッシュメモリではないことが望ましく、それには、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に置かれたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが無い。
【００４７】
ＰＰＥ１４０は、コア１４２と、Ｌ１キャッシュ１４４と、Ｌ２キャッシュ１４５と、ＭＦＣ１４６とを備え、ＭＦＣ１４６には、ＤＭＡＣ１４８が含まれている。
【００４８】
通常、マルチコアプロセッサ１２０のオペレーティングシステム（以下ＯＳともいう）は、ＰＰＥ１４０において動作し、ＯＳの基本処理に基づいて、各ＳＰＥ１３０で動作するプログラムが決定される。また、ＳＰＥ１３０で動作するプログラムは、ＯＳの機能の一部をなすようなプログラム（たとえばデバイスドライバや、システムプログラムの一部など）であってもよい。なお、ＰＰＥ１４０とＳＰＥ１３０の命令セットアーキテクチャは、異なる命令セットを有する。
【００４９】
図７に示す情報処理システムの初期化時において、マルチコアプロセッサ１２０のＰＰＥ１４０は、ＩＯＩＦ１６０内の変換テーブル（図示せず）を設定する。図８は、この変換テーブルの例を示す。図中上流ＶＣＩＤは、ＩＯＩＦ１６０とブリッジ１１０の間に提供されるバーチャルチャネル（上流ＶＣ）の識別子であり、内部ＶＣＩＤは、メモリコントローラ１７０が提供するバーチャルチャネル（内部ＶＣ）の識別子である。メモリコントローラ１７０は、内部ＶＣを用いてメインメモリ１８０へのアクセスを中継する。なお、初期化時において、各内部ＶＣに対して、メモリ帯域の割当も行われる。
【００５０】
周辺デバイスは、メインメモリ１８０にアクセスするのにあたり、アクセス要求パケットを発行する。ここで、このアクセス要求パケットとして、図３に示す入力パケットを用いる。本実施例において、入力パケットに含まれるアドレスは、実効アドレスである。
【００５１】
実効アドレスはメインメモリ１８０の実効アドレス空間内の所定の位置を示すアドレスである。また、実効アドレス空間は、メインメモリ１８０から部分的に切り取られたメモリ空間の一部同士を集合させ、結合したものである。マルチコアプロセッサ１２０は、実効メモリ空間をワークメモリとして使用する。実効メモリ空間の内部構成を最適化することにより、マルチコアプロセッサ１２０は最大パフォーマンスで動作できる。
【００５２】
図９は、ブリッジ１１０の構成を示す。ブリッジ１１０は、第１の入出力部１１２、ブリッジコントローラ１１４、複数（図示の例では４つ）の内部バス１１５、バッファ１１６、第２の入出力部１１８を有する。
【００５３】
第１の入出力部１１２は、周辺デバイスにより発行された入力パケットを、該入力パケットに含まれる下流ＶＣを介して受け取る。ブリッジコントローラ１１４は、この入力パケットを、内部バス１１５上を転送される内部パケットに変換するとともに、内部バス１１５により転送された内部パケットを、第２の入出力部１１８に渡す出力パケットに変換する。ここで、内部パケットと出力パケットのフォーマットとして、図６と図３に示すものをそれぞれ使用する。
【００５４】
なお、内部パケットは、第２の入出力部１１８により出力される前にバッファ１１６に一時記憶されるようにすることができる。第２の入出力部１１８は、内部バス１１５により転送され、ブリッジコントローラ１１４により変換されたパケットを、このパケットに含まれる上流ＶＣＩＤに対応する上流ＶＣを介して、マルチコアプロセッサ１２０のＩＯＩＦ１６０に出力する。
【００５５】
ブリッジコントローラ１１４は、図示しない２つの変換テーブルを有し、この２つの変換テーブルを用いて、入力パケットを内部パケットへの変換、および内部パケットを出力パケットへの変換を行う。ここで、入力パケットと出力パケット変換テーブルとして、図５に示すテーブルを用いる。なお、図５に示す第２のテーブルにおける「リソース割合」は、ここではバッファ１１６の割合に相当する。
【００５６】
ＩＯＩＦ１６０のＩＯコントローラ１６４は、ブリッジ１１０から渡された出力パケットをさらにメモリコントローラ１７０へ出力する。出力に際して、２つの変換を行う。１つは、図８に示すテーブルを参照して、出力パケットに含まれる上流ＶＣＩＤを、対応する内部ＶＣＩＤへの変換である。もう１つは、出力パケットに含まれる実効アドレスを、メインメモリ１８０における物理アドレスへの変換である。この変換によって得られたパケットを、以下ＩＯＩＦコマンドという。図１０には、ＩＯＩＦコマンドを示している。
【００５７】
メモリコントローラ１７０、渡されたＩＯＩＦコマンドにしたがってメインメモリ１８０へのアクセスを中継する。ここで、メモリコントローラ１７０は、システムの初期化時において設定された、図１１に示すテーブルを用いる。図１１に示すテーブルは、内部ＶＣの識別子（内部ＶＣＩＤ）と、該内部ＶＣＩＤにより示される内部ＶＣに割り当てられたメモリ帯域とを対応付けて記憶している。メモリコントローラ１７０は、このテーブルを参照して、ＩＯＩＦコマンドに含まれる内部ＶＣＩＤに対応するメモリ帯域でアクセスを中継し、アクセス先として、メインメモリ１８０における、このＩＯＩＦコマンドに含まれる物理アドレスにより示される位置である。
【００５８】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５９】
たとえば、図７に示す情報処理システムにおいて、周辺デバイスとなるＰＣＩデバイス１００について、ＰＣＩ規格以外の周辺デバイスを用いてもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明の概要の説明に用いた情報処理システムを示す図である。
【図２】図１に示す情報処理システムにおけるブリッジを示す図である。
【図３】入力パケットと出力パケットを示す図である。
【図４】入力パケットを出力パケットに変換するためのテーブルの例（その１）を示す図である。
【図５】入力パケットを出力パケットに変換するためのテーブルの例（その２）を示す図である。
【図６】ブリッジ２０の内部バス上を転送される内部パケットを示す図である。
【図７】本発明にかかる実施の形態による情報処理システムの構成を示す図である。
【図８】上流ＶＣＩＤを内部ＶＣＩＤに変換するためのテーブルの例を示す図である。
【図９】図７に示す情報処理システムにおけるブリッジの構成例を示す図である。
【図１０】ＩＯＩＦコマンドの例を示す図である。
【図１１】内部ＶＣＩＤとメモリ帯域を対応づけたテーブルである。
【符号の説明】
【００６１】
１０  プロセッサユニット、  ２０  ブリッジ、  ２１  下流ＶＣ、  ２２  下流ポート、  ２４  中継部、  ２８  上流ポート、  ２９  上流ＶＣ、  ３０  周辺デバイス、  １００  ＰＣＩデバイス、  １０２  ＩＯＩＦ、  １１０  ブリッジ、  １１２  第１の入出力部、  １１４  ブリッジコントローラ、  １１５  内部バス、  １１６  バッファ、  １１８  第２の入出力部、  １２０  マルチコアプロセッサ、  １３０  ＳＰＥ、  １３２  コア、  １３４  ローカルメモリ、  １３６  ＭＦＣ、  １３８  ＤＭＡＣ、  １４０  ＰＰＥ、  １４２  コア、  １４４  Ｌ１キャッシュ、  １４５  Ｌ２キャッシュ、  １４６  ＭＦＣ、  １４８  ＤＭＡＣ、  １５０  リングバス、  １６０  ＩＯＩＦ、  １６４  ＩＯコントローラ、  １７０  メモリコントローラ、  １８０  メインメモリ。
【図１】
2007241904.tif 000003
【図２】
2007241904.tif 000004
【図３】
2007241904.tif 000005
【図４】
2007241904.tif 000006
【図５】
2007241904.tif 000007
【図６】
2007241904.tif 000008
【図７】
2007241904.tif 000009
【図８】
2007241904.tif 000010
【図９】
2007241904.tif 000011
【図１０】
2007241904.tif 000012
【図１１】
2007241904.tif 000013