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