(57)【要約】【課題】ＡＸＩプロトコルからＯＣＰプロトコルに変換を行うバスブリッジにおいてもアウトオブオーダ転送を可能にし、かつＡＸＩプロトコルにおいてポステッドライト動作を可能とする。【解決手段】ＬＳＩ内部においてバスプロトコルを用いるバスの転送動作を受け取り、他のバスプロトコルを用いる他のバスの転送動作へ変換するバス中継装置であって、前記他のバスプロトコルの転送ＩＤを生成する生成手段と、前記バスから受け取ったバスの転送動作の前記バスプロトコルに含まれるアドレス情報と、前記バスの転送動作を前記他のバスの転送動作へ変換した際に前記生成した転送ＩＤとを格納するバッファ手段と、前記バスの転送動作とアドレス情報とに基づいて、前記転送ＩＤの生成を制御する制御手段とを備えている。【選択図】図１
2010134627.tif 000002
【特許請求の範囲】
【請求項１】
ＬＳＩ内部においてバスプロトコルを用いるバスの転送動作を受け取り、他のバスプロトコルを用いる他のバスの転送動作へ変換するバス中継装置であって、
前記他のバスプロトコルの転送ＩＤを生成する生成手段と、
前記バスから受け取ったバスの転送動作の前記バスプロトコルに含まれるアドレス情報と、前記バスの転送動作を前記他のバスの転送動作へ変換した際に前記生成した転送ＩＤとを格納するバッファ手段と、
前記バスの転送動作とアドレス情報とに基づいて、前記転送ＩＤの生成を制御する制御手段とを備えたことを特徴とするバス中継装置。
【請求項２】
前記他のバスプロトコルに含まれる前記転送ＩＤが同一である２つのバスの転送動作を、転送要求の発行順に処理することを特徴とする請求項１に記載のバス中継装置。
【請求項３】
前記バスプロトコルは、リードアドレスの転送に用いる転送ＩＤと、ライトアドレスの転送に用いる転送ＩＤとが独立していることを特徴とする請求項１に記載のバス中継装置。
【請求項４】
前記他のバスに接続された少なくとも１つのバススレーブに転送したコマンドは、アウトオブオーダで処理されるものであることを特徴とする請求項１乃至３の何れか１項に記載のバス中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバス中継装置に関し、特に、システム内の複数のモジュール間を接続する際に規定された２種類の異なるバスプロトコル間を変換するために用いて好適な技術に関する。
【背景技術】
【０００２】
近年、プロセスの微細化が進み、ＬＳＩに内蔵される回路規模は数千万ゲートに達するようになった。一方、デバイスサイズの微細化の影響により様々な問題が顕著になってきている。その中でも、とりわけ配線遅延の増大は重要な問題である。このＬＳＩ内部の配線遅延から大きな影響を受けるものとして、モジュール間を配線により接続するシステムバスが挙げられる。
【０００３】
今日、ＬＳＩ内部のシステムバスとしては英国ＡＲＭ社の規定するＡＭＢＡ（バージョン２．０）、あるいはその規格の中のバスの一つであるＡＨＢが業界標準となっている。ＡＨＢはいわゆる共有バス構造を用いており、複数のバスマスタと複数のスレーブとが単一のバス構造によって接続されている。この共有バス構造はアドレスデコーダやマルチプレクサ、デマルチプレクサといった要素により構成されている。共有バス構造を用いているので、全てのマスタ、あるいは全てのスレーブが同一のバス信号を同時に観測できるように、同一信号の配線をＬＳＩ内部で長い距離に渡って引き回すことになる。
【０００４】
ＡＨＢはこのような構成を取るため、前述のように配線遅延が問題となってきている現在、動作周波数を上げることが困難になってきている。そこで、新たなバス規格として、ＡＲＭ社が規定したＡＭＢＡバージョン３．０ＡＸＩプロトコルと、ＯＣＰ−ＩＰ（Open Core Protocol International Partnership）により規定されたＯＣＰプロトコルとがある。
【０００５】
ＡＸＩプロトコルは、ＡＨＢのような共有バス構造ではなく、イニシエータとターゲットとの間のポイントトゥーポイントでの接続を規定したプロトコルである。また、ＡＸＩプロトコルは、アドレス、コマンド、データがそれぞれ別チャネルに分離されており、それぞれのチャネル毎にValid信号とReady信号とを用いた簡単な２線ハンドシェークによって送信する。すなわち、イニシエータがアサートするValid信号とターゲットのアサートするReady信号との両者が同時にアサートされているサイクルで一つの転送が成立する。
【０００６】
なお、ＡＸＩはプロトコルの規定であってバス接続網の実装までは規定していない。通常はクロスバー構造や、マルチレイヤ構造などでの実現が想定される。ＡＲＭ社は自社のＩＰコアとしてマルチレイヤ構造のPrimeCell PL300を供給している。
【０００７】
図１１は、クロスバー構造を用いたシステムＬＳＩの基本的な構造例を示すブロック図である。
図１１において、１０１はバス接続網であり、ここではクロスバー構造をとっているため任意のマスタと任意のスレーブとの間を同時多重に接続することができる。ただし一つのバスマスタは同時に一つのバススレーブとのみ接続できる。
【０００８】
１０２〜１０５はバスマスタであり、リード・ライトコマンドを生成しスレーブにアクセスする。１０６〜１０９はバススレーブである。１１０、１１１はバスブリッジであり、それぞれ別のバスに接続されたバスマスタ１０２〜１０５、バススレーブ１０６〜１０９との間のデータ転送を媒介する。
【０００９】
なお、ＡＸＩは信号はライトアドレス、リードアドレス、ライトデータ、ライトレスポンス、リードデータから成る５つのチャネルに分割されている。そして、それらは他のチャネルと直接的には依存関係が無く、各々独立して動作できるようになっている。すなわち、マスタからスレーブに向けてライトアドレスチャネルを通じライト転送のアドレスを送信している間にも、スレーブからマスタに対しリードデータを送信することが可能である。その他のチャネル間も同様であり、以下の表１にＡＸＩで規定される信号のリストを示す。
【００１０】
【表１】
2010134627.tif 000003
【００１１】
このように、ＡＸＩはアドレス・コマンド転送フェーズとデータ転送フェーズとが分離されているためバス自身の制約によって性能が制限されることがなく、高効率に転送することができる。
【００１２】
また、各チャネルには転送毎にＩＤが付与可能で、これによりアドレス・コマンド転送の順序とその処理の順序とが異なるアウトオブオーダ転送をサポートしている。例えば、リードの場合には、マスタは特定のＩＤを付与したリードアドレス転送を、リードアドレスチャネルを通じて発行する。その転送のアドレスに割当てられているスレーブは、そのリードコマンドに対する応答として、同一のＩＤを持ったリードデータ転送を、リードデータチャネルを介して当該マスタに対して行う。
【００１３】
該マスタは、複数のアドレス転送を応答が未完了のまま発行することができるが、リードデータのＩＤを識別することによっていずれのリードアドレス転送に対するリード応答であるかを知ることができる。ライトの場合も同様に、一回の転送に対し、ライトアドレス、ライトデータ、ライトレスポンスの各チャネルにつき同一のＩＤを用いる。
【００１４】
一方、ＯＣＰプロトコルも基本的な考え方はＡＸＩと同様であり、ポイントトゥーポイントでの接続を規定したプロトコルであり、また、Thread IDを用いたアウトオブオーダ転送も可能である。以下の表２にＯＣＰプロトコルで規定される代表的な信号のリストを示す。
【００１５】
【表２】
2010134627.tif 000004
【００１６】
ＯＣＰプロトコルでは、この他にも多数の信号が定義されているが、それら全てを使用する必要はなく、どの信号を利用するかをユーザは選択することができる。
【００１７】
ＡＸＩプロトコルとＯＣＰプロトコルとの大きな違いの一つは、前者がアドレスチャネルをリード、ライト個別に備えるのに対し、後者は共用している点である。また、前述のＡＸＩプロトコルとＯＣＰプロトコルとが共にサポートする、アウトオブオーダ転送は以下のような場合に効果的である。
【００１８】
一つは、マスタが複数のスレーブに対して同時にアクセス要求を発行する場合である。一般にスレーブがリード要求ないしライト要求を処理するのに要する時間は、スレーブ毎に異なるため、マスタが一時に複数の要求を発行した場合、それら要求に対するリードデータ転送あるいはライトレスポンス転送は順不同で行われる可能性がある。従ってアウトオブオーダをサポートしないシステムにおいては、複数のスレーブに対するアクセスは同時に並行して行うことができず、必ず順序的に行わなければならない。アウトオブオーダをサポートするシステムであればその制約は無くなり、複数スレーブを同時並行してアクセスできるため、効率を上げることができる。
【００１９】
もう一つは、スレーブが自身の処理効率を高めるため、コマンドを受け取った順とは異なる順番で処理を行う場合である。このようなスレーブの代表例としてＳＤＲＡＭやＤＤＲ−ＳＤＲＡＭをサポートするメモリコントローラが挙げられる。今日のＳＤＲＡＭ系のデバイスは内部が複数のバンクに分割されており、それぞれが独立して動作できるという特徴を持っている。さらに各バンクの内部は複数のページから構成されている。
【００２０】
ＳＤＲＡＭへのアクセスは、まず一つのページをオープンすることから始まる。これはページに対応するアドレス情報と共にＲＡＳ信号をＳＤＲＡＭに入力することにより行われる。一旦ページがオープンされると、ＣＡＳ信号によってページ内のデータを高速かつランダムにアクセスすることが可能である。なお、ライトの場合はＷＥ信号とともにＣＡＳ信号によってページ内のデータを高速かつランダムにアクセスすることが可能である。
【００２１】
ただし、一時にオープンできるページの数はバンクあたり一つのみであるので、アクセスしようとするデータが現在オープンされているページとは別のページに存在する場合は、一旦現ページをクローズする必要がある。これはＲＡＳ信号とＷＥ信号（プリチャージコマンド）とを同時にＳＤＲＡＭに入力することで行われる。その後、アクセスするページをＲＡＳ信号によりオープンする。
【００２２】
これらの信号入力のタイミングはデバイスによって必要最小限の間隔が規定されている。例えば、ページをオープンするためのＲＡＳ信号を入力するタイミングと、その後のＣＡＳ信号を入力するタイミングとの間隔はtRCDで規定される。
【００２３】
また、例えばプリチャージコマンドとページオープンコマンドとの最小間隔はtRPで規定されている。連続してアクセスする場合に必要なデータが同一ページにある場合は、ＣＡＳ信号を続けて入力すればよく、この場合にはＳＤＲＡＭの最大スループットを引き出すことができ、「ページヒット」と呼ばれている。図１２に、ページヒットの場合のメモリバスのタイミング示す。
【００２４】
一方、必要なデータが同一ページに無い場合は「ページミス」と呼ばれ、前述のように一旦プリチャージコマンドを入力し、次いで別のページをオープンした後、ようやくＣＡＳ信号を入力できることになる。このページミスが連続する場合、ＳＤＲＡＭのスループットは著しく低下する。図１３に、ページミスの場合のメモリバスのタイミングを示す。
【００２５】
ただし、２つのページがそれぞれ別のバンクにある場合は前述した例とは異なる。前述のように各バンクは独立して動作することができるので、２番目のページへのアクセスにおいて、１番目のページをクローズする必要はなく、ただちにＲＡＳ信号を入力することにより新たなページをオープンすることができる。この場合のタイミングを図１４に示す。
【００２６】
当該ページが既にオープンされている状態にあれば、最短のタイミングでＣＡＳ信号を入力することができる。逆に連続してアクセスされる２つの異なるページが同一バンク内に存在する場合、「バンク衝突」あるいは「バンク競合」と呼ばれる。
【００２７】
高度なメモリコントローラは、ＳＤＲＡＭのこのような特性を活かし、マスタから受け取ったコマンドを並び換えることにより、なるべくページミスやバンク衝突を回避しようとする。従って、例えば２つのリードコマンドを連続して受け取った場合、この並び替えによって２番目のリードコマンドの方が先にＳＤＲＡＭに対して発行されることが有り得る。
【００２８】
ここで注意しなければならないのは、アウトオブオーダ転送をサポートしないバスプロトコルを用いている場合には、コマンドの完了順序を守る必要があるということである。そのためには２番目のリードコマンドに対するリードデータを一時スレーブの内部バッファに格納しておく必要がある。
【００２９】
次に、１番目のリードコマンドをＳＤＲＡＭに発行しそのリードデータをバスを介してマスタに転送した後、２番目のリードコマンドのリードデータを内部バッファから取り出し、マスタに転送するようにしなければならない。その結果、内部バッファ分の回路規模が増大してしまうのみならず、リードデータが内部バッファに滞留されるため平均リードレイテンシが増加し、性能が低下してしまうことになる。
【００３０】
一方、アウトオブオーダをサポートするバスプロトコルを用いれば、コマンドを受け取った順序とは無関係にリードデータをマスタに転送できるため、このような不利は生じない。このようにアウトオブオーダ転送をサポートするバスプロトコルを用いると、バスがボトルネックにならず高性能化を達成しやすくなるため、今後は標準的に用いられるようになると考えられる。
【００３１】
前述したように、ＡＸＩプロトコル及びＯＣＰプロトコルでは、転送毎のＩＤあるいはThread IDを用いてアウトオブオーダ転送を実現している。ところが、複数の転送に同一のＩＤが与えられていた場合は、転送の処理順序は発行順序と一致することが保証されなければならない。これはバス接続網とスレーブとに課せられた機能であり、マスタは順次処理が必要な場合は同一のＩＤを付与したコマンドを発行するだけである。
【００３２】
なお、ＯＣＰプロトコルの場合はそれだけでよいが、ＡＸＩプロトコルの場合は異なる。これが可能なのは転送がライトあるいはリードの同一種類の場合についてであり、ライトとリードとのチャネル間ではお互いのＩＤには関係が無い。すなわち、同一のＩＤが付与されていてもそれらの間の処理順序は規定されない。
【００３３】
そこで、マスタがリードとライトとの間で処理順序の保証を必要とする場合には、次のように動作することがプロトコル仕様上要求されている。すなわち、処理順序の保証が必要な２つのリード・ライトあるいはライト・リードのアクセス要求がある場合には、必ず最初のコマンドの処理が完了したことを確認した後、次のコマンドを発行するようにする。
【００３４】
最初のコマンドがリードの場合は、スレーブからリードデータが返るのを待って、次のライトコマンドを発行する。最初のコマンドがライトの場合も、ＡＸＩプロトコルはライトレスポンスチャネルを規定しているため、スレーブからライト応答が返るのを待って次のリードコマンドを発行する。
【００３５】
ところが、このような動作を行う場合、スレーブに依存するが、例えばスレーブがチップ外部のＳＤＲＡＭを制御するメモリコントローラであった場合には、リードリターンもライト応答も数十サイクル単位の遅延時間を必要とする。そのため、ＡＸＩマスタのスループットは大きく低下する可能性がある。ただし、この動作が必要なのはあくまで依存関係のあるライト−リードあるいはリード−ライトの間においてのみである。このような状況は限定されており、それ以外の場合は、ＯＣＰプロトコルと同様、リードもライトも先のコマンドの完了を待つことなく次々にパイプライン的に発行することが可能である。
【発明の開示】
【発明が解決しようとする課題】
【００３６】
以上のような動作を行うため、ＡＸＩプロトコルを汎用的に用いるためにはライト応答チャネルが必須である。従ってポステッドライト動作を行うことができず、必ずライトコマンドの完了をライト応答によってマスタに通知する機能が必要である。
【００３７】
一方、ＯＣＰプロトコルの場合は、ポステッドライト動作と非ポステッドライト動作との両方をサポートしている。アドレス／コマンドチャネルもリード・ライトで共用である。したがって、必ずしもライト応答を待たずとも依存関係のある後続のリードコマンドを発行することが可能な仕様になっている。ポステッドライト動作をサポートする最大の利点は、ライト応答を待つ必要が無いため、一般的にライトコマンド発行のスループットを上げることができることである。
【００３８】
ところが、ＡＸＩプロトコルからＯＣＰプロトコルに変換を行うバスブリッジを構成する場合には、ＡＸＩ側から見たときライトコマンドの完了を知る必要がある。そのため、結局ＯＣＰ側でも非ポステッドライト動作が必要になる。このためＡＸＩ−ＯＣＰブリッジにおいてはライトコマンド発行のスループットを十分上げることができない。これを解決する一つの方法は、ＯＣＰ側において全て同一のThread IDを用いることである。ところが、この方法を用いた場合には、前述のアウトオブオーダ転送が不可能になり、この場合もシステムのスループットを下げる原因となる。
【００３９】
本発明は前述の問題点に鑑み、ＡＸＩプロトコルからＯＣＰプロトコルに変換を行うバスブリッジにおいてもアウトオブオーダ転送を可能にし、かつＡＸＩプロトコルにおいてポステッドライト動作を可能とすることを目的としている。
【課題を解決するための手段】
【００４０】
本発明のバス中継装置は、ＬＳＩ内部においてバスプロトコルを用いるバスの転送動作を受け取り、他のバスプロトコルを用いる他のバスの転送動作へ変換するバス中継装置であって、前記他のバスプロトコルの転送ＩＤを生成する生成手段と、前記バスから受け取ったバスの転送動作の前記バスプロトコルに含まれるアドレス情報と、前記バスの転送動作を前記他のバスの転送動作へ変換した際に前記生成した転送ＩＤとを格納するバッファ手段と、前記バスの転送動作とアドレス情報とに基づいて、前記転送ＩＤの生成を制御する制御手段とを備えたことを特徴とする。
【発明の効果】
【００４１】
本発明によれば、ＡＸＩプロトコルからＯＣＰプロトコルに変換を行うバスブリッジにおいてもアウトオブオーダ転送を可能にし、かつＡＸＩプロトコルにおいてポステッドライト動作を行うことができる。
【発明を実施するための最良の形態】
【００４２】
（第１の実施形態）
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態に係るバスブリッジ（バス中継装置）５００の構成例を示すブロック図である。
図１において、バスブリッジ５００は、転送元として不図示のＡＸＩバスマスタあるいはバス接続網と接続され、転送先として不図示のＯＣＰバススレーブまたはバス接続網と接続される。
【００４３】
５０１〜５０５は各チャネルのＡＸＩプロトコルインターフェースであり、５０１はライトアドレスＩＦ、５０２はリードアドレスＩＦ、５０３はリードデータＩＦ、５０４はライトデータＩＦである。また、５０５はライトレスポンスＩＦである。このように、それぞれはインターフェースの機能フロックである。
【００４４】
５１２〜５１５は、それぞれＯＣＰプロトコルをサポートするインターフェースである。コマンド・アドレスＩＦ５１２、リードデータＩＦ５１３、ライトデータＩＦ５１４、及びライトレスポンスＩＦ５１５の各チャネルは、前述の各チャネルに対応する。５０６は調停部であり、ＡＸＩプロトコルのライトアドレスチャネルと、リードアドレスチャネルとの間を調停し、同時にコマンドが発行された場合にいずれかのチャネルを選択する機能を備える。ここで調停に用いるアルゴリズムはラウンドロビン等公知のものを使用すればよいため説明は省略する。
【００４５】
５０７はライトアドレス情報保持部であり、５０８はリードアドレス情報保持部である。この両者は同一の構成であり、図２は、ライトアドレス情報保持部５０７及びリードアドレス情報保持部５０８の構成例を示す図である。
図２に示すように、ライトアドレス情報保持部５０７及びリードアドレス情報保持部５０８は、それぞれ８ビットのＡＸＩ転送ＩＤ、ＡＸＩプロトコルのアドレスのうち上位Ｍビット、ＯＣＰのThread IDから成るＮ個のエントリを保持している。ここで、Ｍ及びＮは任意の正整数であり、好適にはＭは２６〜３２であるが本実施形態については３２を用い、Ｎは４〜８の値であるが本実施形態では４を用いる。
【００４６】
ライトアドレス情報保持部５０７及びリードアドレス情報保持部５０８は、ＡＸＩ側から新たなコマンドを受け付けると、そのコマンドからＡＸＩ転送ＩＤ及びＡＸＩアドレスの情報を抜き出し、新たなエントリに登録する。さらに、転送ＩＤ生成部５１１から当該コマンドに対応するＯＣＰのThread IDを受け取り、同一エントリに登録する。
【００４７】
５０９はライトアドレス情報比較部であり、５１０はリードアドレス情報比較部である。この両者も同一の構成であるが、後述するように、調停部５０６によって調停された新たな転送コマンドがリードであるかライトであるかによって相補的な動作をする。
【００４８】
５１１は転送ＩＤ生成部であり、ライトアドレス情報比較部５０９及びリードアドレス情報比較部５１０における比較結果に従い、ＯＣＰプロトコル側のThread IDを生成する。具体的な動作は以下のようである。
【００４９】
第１の条件としては、新規コマンドがリードであり、そのアドレスがライトアドレス情報保持部５０７の保持するいずれかのアドレスと一致した場合である。この場合は、該一致したアドレスと一対で保持されているＯＣＰのThread IDを新規コマンドのThread IDとする。
【００５０】
第２の条件としては、新規コマンドがライトであり、そのアドレスがリードアドレス情報保持部５０８の保持するいずれかのアドレスと一致した場合である。この場合は、該一致したアドレスと一対で保持されているＯＣＰのThread IDを新規コマンドのThread IDとする。
【００５１】
第３の条件としては、新規コマンドがリードであり、ＡＸＩ転送ＩＤがリードアドレス情報保持部５０８の保持するいずれかのＡＸＩ転送ＩＤと一致した場合である。この場合、一致したＡＸＩ転送ＩＤと一対で保持されているＯＣＰのThread IDを新規コマンドのThread IDとする。
【００５２】
第４の条件としては、新規コマンドがライトであり、アドレスがライトアドレス情報保持部５０７の保持するいずれかのＡＸＩ転送ＩＤと一致した場合である。この場合は、該一致したＡＸＩ転送ＩＤと一対で保持されているＯＣＰのThread IDを新規コマンドのThread IDとする。
【００５３】
第５の条件としては、第１〜第４の条件のうち、複数の条件が競合する場合は、競合が解消されるまで新たなコマンドをＯＣＰ側に転送することを中断する。
【００５４】
第６の条件としては、上記いずれにも該当しない場合、その時点でライトアドレス情報保持部５０７およびリードアドレス情報保持部５０８のいずれにも登録されていないThread IDを選択し新規コマンドのThread IDとする。
【００５５】
第７の条件としては、ライトアドレス情報保持部５０７またはリードアドレス情報保持部５０８においてエントリに空きが無く、新たなコマンドに対応するエントリを登録できない場合である。この場合は、エントリに空きができるまでコマンドをＯＣＰ側に転送することを中断する。
【００５６】
以上のように、アウトスタンディング・コマンドのアドレスと新規コマンドのアドレスとが一致する場合は、ＯＣＰ側でも同一Thread IDを用いることでＡＸＩの規約により課せられるコマンドの発行順の順序性を保つことができる。さらに、リードコマンド間、ライトコマンド間の順序性を保つため、ＡＸＩ転送ＩＤも比較し、独立した転送ＩＤが同一のコマンドについてはＯＣＰ側でも同一のThread IDを用いるように構成されている。
【００５７】
なお、アドレスの比較に際しては必ずしも３２ビットを全て比較する必要はなく、任意の上位Ｍビットのみについて比較を行うように構成することも可能である。その場合は（３２−Ｍ）ビットで表現されるアドレス範囲を単位としてその範囲内におけるリード・ライトの順序性を保つように動作する。
【００５８】
次に、具体的な転送動作の変換における動作シーケンスについて、図３を参照しながら説明する。
図３は、任意の一つのＡＸＩマスタ、バスブリッジ、任意の一つのＯＣＰスレーブ間のデータ転送の手順を示すシーケンス図である。
図３において、まず、ＡＸＩマスタによりライト転送ＩＤ＝１、アドレス０ｘ１００番地へのライトコマンドが発行される。このライトコマンドはバスブリッジ５００を中継し、Thread ID＝１としてＯＣＰスレーブに伝達する。これと同時に、ＡＸＩマスタに対しライト転送ＩＤ＝１のライト応答を返す（図３のステップ（１））。この時点におけるライトアドレス情報保持部５０７及びリードアドレス情報保持部５０８の保持する情報は、図４に示すようなものである。
【００５９】
次に、再びＡＸＩマスタによりリード転送ＩＤ＝２、アドレス０ｘ１００へのリードコマンドが発行される。ここで、最初のコマンドと２番目のコマンドとの間ではアドレスが一致する。このコマンドもバスブリッジ５００を中継し、転送ＩＤ生成部５１１はThread IDには最初のコマンドと同一の１を与える。そして、ＯＣＰスレーブに伝達する（図３のステップ（２））。この時点におけるライトアドレス情報保持部５０７及びリードアドレス情報保持部５０８の保持する情報は、図５に示すようなものである。
【００６０】
次に、ＡＸＩマスタによりリード転送ＩＤ＝２、アドレス０ｘ２２０番地へのリードコマンドが発行される。このコマンドは以前に発行された２つのコマンドとはアドレスは異なるが、直前のリードコマンドとリード転送ＩＤが同一である。したがって、転送ＩＤ生成部５１１は、リードアドレス情報保持部５０８の内容を参照し、ＯＣＰのThread IDとして１を与える。そして、ＯＣＰスレーブに伝達する（図３のステップ（３））。この時点におけるライトアドレス情報保持部５０７及びリードアドレス情報保持部５０８の保持する情報は、図６に示すようなものである。
【００６１】
次に、ＯＣＰスレーブより最初のライトコマンドに対するライト応答が返される。ここで、ＡＸＩマスタに対してはすでにライト応答は返されているので、このライト応答はバスブリッジ５００において処理される。具体的には、当該応答がエラーを通知するものであれば、不図示のＣＰＵに対し割り込みを上げる等の処理を行う。書き込み成功を表すものであれば何もしない。このとき、同時にライトアドレス情報保持部５０７の対応するエントリの内容を抹消する（図３のステップ（４））。この時点におけるライトアドレス情報保持部５０７及びリードアドレス情報保持部５０８の保持する情報は、図７に示すようなものである。
【００６２】
次に、ＡＸＩマスタによりライト転送ＩＤ＝２、アドレス０ｘ２２０番地へのライトコマンドが発行される。このコマンドのアドレスは３番目のコマンド（リード）のアドレスと一致する。よって、転送ＩＤ生成部５１１はThread ID＝１とする。そして、ＯＣＰスレーブに伝達する。これと同時に、ＡＸＩマスタに対しライト転送ＩＤ＝２のライト応答を返す（図３のステップ（５））。この時点におけるライトアドレス情報保持部５０７及びリードアドレス情報保持部５０８の保持する情報は、図８に示すようなものである。
【００６３】
引き続き、ＯＣＰスレーブにより２番目のコマンド（リード）と３番目のコマンド（リード）とに対するリードデータが順次返される。ここで、これらのコマンドには同一のThread IDが与えられており、これらリードデータはコマンドが発行された順番で返される。この時点でリードアドレス情報保持部５０８にはThread ID＝１のリードコマンドに対応するエントリが２つ登録されている。そこで、登録された転送要求の順番どおりにこれらエントリを参照し、対応するＡＸＩ転送ＩＤを取り出し、ＡＸＩマスタに返す。これと同時に、当該エントリを抹消する（図３のステップ（６））。この時点におけるライトアドレス情報保持部５０７及びリードアドレス情報保持部５０８の保持する情報は、図９に示すようなものである。
【００６４】
次に、ＡＸＩマスタによりリード転送ＩＤ＝２、アドレス０ｘ３００番地へのリードコマンドが発行される。このコマンドは、以前に発行され、かつ未だＯＣＰスレーブが応答を返していないコマンドとはアドレスも転送ＩＤも異なる。したがって、転送ＩＤ生成部５１１はＯＣＰのThread IDとして新たに２を与える。そして、ＯＣＰスレーブに伝達する（図３のステップ（７））。この時点におけるライトアドレス情報保持部５０７及びリードアドレス情報保持部５０８の保持する情報は、図１０に示すようなものである。
【００６５】
本実施形態では、ＬＳＩ内部において前述した動作を行うことによりＡＸＩプロトコルで規定される処理の順序性を保つとともに、ＡＸＩマスタに対しポステッドライト動作を可能にしている。以上において、本実施形態に関して図示して説明したが、さらに他の修正および改善が可能であることは言うまでもない。
【００６６】
例えば、本実施形態においては、ＡＸＩマスタがアクセスするＯＣＰスレーブの性質に関わらず動作する例を示したが、これに限定するものではない。例えば、第１のバスから受け取ったバス転送動作が、第２のバスに接続されたＯＣＰスレーブのうちいずれのＯＣＰスレーブを宛先とするかを判定する制御を行うアドレスデコード部を具備するようにしてもよい。そして、宛先のＯＣＰスレーブがアウトオブオーダ処理を行う場合のみ本実施形態と同様の動作を行うように構成してもよい。
【００６７】
この場合、宛先のＯＣＰスレーブがアウトオブオーダ処理を行わない場合には、前記第１のバスからバス転送動作を受け取った際に、バス転送動作がライト動作であった場合には直ちに前記第１のバスに対してバス転送完了応答を行う。このとき、バッファは使用しないよう構成することができる。この構成では、必要な場合にのみ内部に備えるバッファを使用することになり、バッファを構成するために必要な回路リソースを最適化することができる。
【００６８】
また、例えば、本実施形態においては、第１のバスプロトコルとしてＡＸＩを用い、リードアドレスチャネルとライトアドレスチャネルとが分離している場合を例に示したが、これに限定するものではない。リードアドレスチャネルとライトアドレスチャネルとが分離していないプロトコルを用いたシステムのバスブリッジに対しても適用することができる。
【００６９】
例えば、第１のバスプロトコルが転送ＩＤを備えるものでなく、常にインオーダー動作を要求するような場合にも、ポステッドライトとオウトオブオーダー処理とを両立させることができる。したがって、本発明は前述の実施形態に示された特定の形式に限定されるものではない。
【００７０】
（本発明に係る他の実施形態）
前述した本発明の実施形態におけるバス中継装置を構成する各手段、並びにバス中継方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００７１】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００７２】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００７３】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００７４】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００７５】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００７６】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００７７】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００７８】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００７９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８０】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施形態に係るバスブリッジ（バス中継装置）の構成例を示すブロック図である。
【図２】本発明の実施形態に係るライトアドレス情報保持部及びリードアドレス情報保持部の構成例を示す図である。
【図３】本発明の実施形態において、任意の一つのＡＸＩマスタ、バスブリッジ、任意の一つのＯＣＰスレーブ間のデータ転送の手順を示すシーケンス図である。
【図４】図３のステップ（１）におけるライトアドレス情報保持部及びリードアドレス情報保持部の構成例を示す図である。
【図５】図３のステップ（２）におけるライトアドレス情報保持部及びリードアドレス情報保持部の構成例を示す図である。
【図６】図３のステップ（３）におけるライトアドレス情報保持部及びリードアドレス情報保持部の構成例を示す図である。
【図７】図３のステップ（４）におけるライトアドレス情報保持部及びリードアドレス情報保持部の構成例を示す図である。
【図８】図３のステップ（５）におけるライトアドレス情報保持部及びリードアドレス情報保持部の構成例を示す図である。
【図９】図３のステップ（６）におけるライトアドレス情報保持部及びリードアドレス情報保持部の構成例を示す図である。
【図１０】図３のステップ（７）におけるライトアドレス情報保持部及びリードアドレス情報保持部の構成例を示す図である。
【図１１】クロスバー構造を用いたシステムＬＳＩの基本的な構造例を示すブロック図である。
【図１２】ＳＤＲＡＭへのアクセスにおけるページヒットの場合のメモリバスのタイミング示す図である。
【図１３】ＳＤＲＡＭへのアクセスにおけるページミスの場合のメモリバスのタイミングを示す図である。
【図１４】ＳＤＲＡＭへのアクセスにおけるバンクインターリーブの場合のメモリバスのタイミングを示す図である。
【符号の説明】
【００８２】
５００  バスブリッジ
５０１  ライトアドレスＩＦ
５０２  リードアドレスＩＦ
５０３  リードデータＩＦ
５０４  ライトデータＩＦ
５０５  ライトレスポンスＩＦ
５０６  調停部
５０７  ライトアドレス情報保持部
５０８  リードアドレス情報保持部
５０９  ライトアドレス情報比較部
５１０  リードアドレス情報比較部
５１１  転送ＩＤ生成部
５１２  コマンド・アドレスＩＦ
５１３  リードデータＩＦ
５１４  ライトデータＩＦ
５１５  ライトレスポンスＩＦ
【図１】
2010134627.tif 000005
【図２】
2010134627.tif 000006
【図３】
2010134627.tif 000007
【図４】
2010134627.tif 000008
【図５】
2010134627.tif 000009
【図６】
2010134627.tif 000010
【図７】
2010134627.tif 000011
【図８】
2010134627.tif 000012
【図９】
2010134627.tif 000013
【図１０】
2010134627.tif 000014
【図１１】
2010134627.tif 000015
【図１２】
2010134627.tif 000016
【図１３】
2010134627.tif 000017
【図１４】
2010134627.tif 000018