JPH09128325A - 階層バス制御方式及びバスブリッジ - Google Patents
階層バス制御方式及びバスブリッジInfo
- Publication number
- JPH09128325A JPH09128325A JP7287372A JP28737295A JPH09128325A JP H09128325 A JPH09128325 A JP H09128325A JP 7287372 A JP7287372 A JP 7287372A JP 28737295 A JP28737295 A JP 28737295A JP H09128325 A JPH09128325 A JP H09128325A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- transaction
- bridge
- tag
- arbitration
- 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
Landscapes
- Multi Processors (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 階層バスシステムのレイテンシを低減する。
【解決手段】 バスブリッジは、上位バスからのトラン
ザクションを受け取った場合、ブリッジキャッシュのス
ヌープが完了する前から下位バスの先行アービトレーシ
ョンを開始する。トランザクションの種類又はアドレス
に応じて、この先行アービトレーションを行うか否かを
選択することもできる。
ザクションを受け取った場合、ブリッジキャッシュのス
ヌープが完了する前から下位バスの先行アービトレーシ
ョンを開始する。トランザクションの種類又はアドレス
に応じて、この先行アービトレーションを行うか否かを
選択することもできる。
Description
【0001】
【発明の属する技術分野】本発明は、階層バスシステム
において、一方のバス(上位バス又は下位バス)から他
方のバス(下位バス又は上位バス)へトランザクション
を転送する際のバスの制御方式に関する。
において、一方のバス(上位バス又は下位バス)から他
方のバス(下位バス又は上位バス)へトランザクション
を転送する際のバスの制御方式に関する。
【0002】
【従来の技術】複数のCPUをバスを介してメインメモ
リやI/O装置に共通接続し、他のCPUやメインメモ
リ等とデータの授受を行うバス共有型のマルチプロセッ
サシステムが普及している。このマルチプロセッサシス
テムにおいて、演算能力の向上を狙って並列CPU数を
増やすと、バスへの負荷の増大するため結局スループッ
トやレイテンシが悪化し、CPU数の増加に見合うほど
トータルの処理能力は向上しない。
リやI/O装置に共通接続し、他のCPUやメインメモ
リ等とデータの授受を行うバス共有型のマルチプロセッ
サシステムが普及している。このマルチプロセッサシス
テムにおいて、演算能力の向上を狙って並列CPU数を
増やすと、バスへの負荷の増大するため結局スループッ
トやレイテンシが悪化し、CPU数の増加に見合うほど
トータルの処理能力は向上しない。
【0003】これに対し、本出願人は、特願平7−28
5829号にて、並列するCPUを小数ずつそれぞれ別
々の上位バスに接続し、各上位バスに対してそれぞれキ
ャッシュメモリを有するバスブリッジを設け、各上位バ
スを各バスブリッジを介して、メインメモリ等が接続さ
れる下位バスに接続する階層構成のバスシステムを提案
した。図5は、このような階層バスシステムの概略構成
を示す図であり、CPU10は比較的小数ずつ1つの上
位バス12に接続されており、各上位バスはバスブリッ
ジ14を介してメインメモリ20に接続された下位バス
18に接続されている。各バスブリッジ14にはキャッ
シュ16が接続されており、このキャッシュ16は上位
のCPU10にて共有される。
5829号にて、並列するCPUを小数ずつそれぞれ別
々の上位バスに接続し、各上位バスに対してそれぞれキ
ャッシュメモリを有するバスブリッジを設け、各上位バ
スを各バスブリッジを介して、メインメモリ等が接続さ
れる下位バスに接続する階層構成のバスシステムを提案
した。図5は、このような階層バスシステムの概略構成
を示す図であり、CPU10は比較的小数ずつ1つの上
位バス12に接続されており、各上位バスはバスブリッ
ジ14を介してメインメモリ20に接続された下位バス
18に接続されている。各バスブリッジ14にはキャッ
シュ16が接続されており、このキャッシュ16は上位
のCPU10にて共有される。
【0004】このような階層バスシステムによれば、C
PUの総数が同じ場合、階層化しない場合に比べて上位
バスに接続されるCPUの数が少なくなるので、上位バ
スの負荷が小さくなる。また、バスブリッジにキャッシ
ュを設けたことにより、上位バスのトランザクションの
要求データがバスブリッジのキャッシュにある場合には
メインメモリまでデータを読みにいく必要がないので下
位バスの負荷も大きいものにはならない。したがって、
この階層構成のマルチプロセッサシステムによれば、多
数のCPUを効率的に動作させることが可能になる。
PUの総数が同じ場合、階層化しない場合に比べて上位
バスに接続されるCPUの数が少なくなるので、上位バ
スの負荷が小さくなる。また、バスブリッジにキャッシ
ュを設けたことにより、上位バスのトランザクションの
要求データがバスブリッジのキャッシュにある場合には
メインメモリまでデータを読みにいく必要がないので下
位バスの負荷も大きいものにはならない。したがって、
この階層構成のマルチプロセッサシステムによれば、多
数のCPUを効率的に動作させることが可能になる。
【0005】
【発明が解決しようとする課題】このような階層バスシ
ステムにおいて、上位バスあるいは下位バスにトランザ
クションが発行された場合、バスブリッジはキャッシュ
を検索(スヌープ)し、トランザクションを下位バスあ
るいは上位バスに転送する必要がないか判定する。例え
ば、一方のバスからのトランザクションの要求データが
キャッシュにある場合にはバスブリッジはトランザクシ
ョンの転送を行わず、キャッシュにない場合には他方の
バスに対してトランザクションを転送する。
ステムにおいて、上位バスあるいは下位バスにトランザ
クションが発行された場合、バスブリッジはキャッシュ
を検索(スヌープ)し、トランザクションを下位バスあ
るいは上位バスに転送する必要がないか判定する。例え
ば、一方のバスからのトランザクションの要求データが
キャッシュにある場合にはバスブリッジはトランザクシ
ョンの転送を行わず、キャッシュにない場合には他方の
バスに対してトランザクションを転送する。
【0006】このようにして一方のバスから他方のバス
へトランザクションを転送することが決定された場合、
バスブリッジは他方のバスのバス使用権を得るためにア
ービトレーションを行う必要がある。従来、バスブリッ
ジからバスへのアービトレーションは、キャッシュのス
ヌープが完了しトランザクションを転送することが決定
されてから行っていた。
へトランザクションを転送することが決定された場合、
バスブリッジは他方のバスのバス使用権を得るためにア
ービトレーションを行う必要がある。従来、バスブリッ
ジからバスへのアービトレーションは、キャッシュのス
ヌープが完了しトランザクションを転送することが決定
されてから行っていた。
【0007】図6は、上位バスに発行されたトランザク
ションが下位バスに転送されるまでの従来の階層バスシ
ステムの処理の流れを示す説明図である。図6に示すよ
うに、CPUは、上位バスにトランザクションを発行し
ようとする場合、まず上位バスのアービトレーションを
行い、これによってバス使用権を獲得する。その後、C
PUは上位バスにトランザクションを発行する。この上
位バスに接続されているバスブリッジは、このトランザ
クションを検出し、このトランザクションのアドレス
(トランザクションが要求するデータのアドレス)を有
していないか、自らのキャッシュをスヌープする。そし
て、バスブリッジは、このスヌープの結果、すなわちバ
スブリッジ・キャッシュがトランザクションが要求する
データを有しているか否か等の情報に基づき、バスブリ
ッジは上位バスのトランザクションを下位バスに転送す
るか否か判定する。そして、この判定においてトランザ
クションを下位バスに転送すべきであると判定された場
合に、バスブリッジは、下位バスに対してバス要求信号
を発して下位バスのアービトレーションを行い、バス使
用権を獲得した後に下位バスに対して転送すべきトラン
ザクションを発行していた。
ションが下位バスに転送されるまでの従来の階層バスシ
ステムの処理の流れを示す説明図である。図6に示すよ
うに、CPUは、上位バスにトランザクションを発行し
ようとする場合、まず上位バスのアービトレーションを
行い、これによってバス使用権を獲得する。その後、C
PUは上位バスにトランザクションを発行する。この上
位バスに接続されているバスブリッジは、このトランザ
クションを検出し、このトランザクションのアドレス
(トランザクションが要求するデータのアドレス)を有
していないか、自らのキャッシュをスヌープする。そし
て、バスブリッジは、このスヌープの結果、すなわちバ
スブリッジ・キャッシュがトランザクションが要求する
データを有しているか否か等の情報に基づき、バスブリ
ッジは上位バスのトランザクションを下位バスに転送す
るか否か判定する。そして、この判定においてトランザ
クションを下位バスに転送すべきであると判定された場
合に、バスブリッジは、下位バスに対してバス要求信号
を発して下位バスのアービトレーションを行い、バス使
用権を獲得した後に下位バスに対して転送すべきトラン
ザクションを発行していた。
【0008】このように従来の階層バスシステムでは、
バスブリッジキャッシュのスヌープにより一方のバスか
ら他方のバスへトランザクションを転送することが決定
されて初めて転送先バスに対するアービトレーションを
行っていた。一方、バスブリッジのキャッシュは、上位
バスに接続される複数のCPUに対応するため比較的大
容量すなわち比較的低速のものを用いる必要があるの
で、このキャッシュをスヌープするのにはある程度時間
が掛る。このため、従来の階層バスシステムには、バス
ブリッジを介してトランザクションの転送を行う度に、
処理の遅れ(レイテンシ)が生じるという問題があっ
た。
バスブリッジキャッシュのスヌープにより一方のバスか
ら他方のバスへトランザクションを転送することが決定
されて初めて転送先バスに対するアービトレーションを
行っていた。一方、バスブリッジのキャッシュは、上位
バスに接続される複数のCPUに対応するため比較的大
容量すなわち比較的低速のものを用いる必要があるの
で、このキャッシュをスヌープするのにはある程度時間
が掛る。このため、従来の階層バスシステムには、バス
ブリッジを介してトランザクションの転送を行う度に、
処理の遅れ(レイテンシ)が生じるという問題があっ
た。
【0009】本発明は、このような問題を解決するため
になされたものであり、階層バスシステムにおいて、上
位バスから下位バスへ又は下位バスから上位バスへトラ
ンザクションを転送する際のレイテンシを少なくする階
層バス制御方式を提供することを目的とする。
になされたものであり、階層バスシステムにおいて、上
位バスから下位バスへ又は下位バスから上位バスへトラ
ンザクションを転送する際のレイテンシを少なくする階
層バス制御方式を提供することを目的とする。
【0010】
【課題を解決するための手段】前述の目的を達成するた
めに、本発明に係る階層バス制御方式は、複数のプロセ
ッサを上位バスに接続し、複数の上位バスに対してキャ
ッシュを有するバスブリッジをそれぞれ設け、各上位バ
スを各々のバスブリッジを介して下位バスに接続し、こ
の下位バスをメインメモリに接続した階層バスシステム
において、前記バスブリッジは、上位バス又は下位バス
の一方にトランザクションが発行されたときに、前記キ
ャッシュをスヌープして他方のバスにトランザクション
を転送するか否かを決定する前に、他方のバスのアービ
トレーションを先行して行うことを特徴とする。
めに、本発明に係る階層バス制御方式は、複数のプロセ
ッサを上位バスに接続し、複数の上位バスに対してキャ
ッシュを有するバスブリッジをそれぞれ設け、各上位バ
スを各々のバスブリッジを介して下位バスに接続し、こ
の下位バスをメインメモリに接続した階層バスシステム
において、前記バスブリッジは、上位バス又は下位バス
の一方にトランザクションが発行されたときに、前記キ
ャッシュをスヌープして他方のバスにトランザクション
を転送するか否かを決定する前に、他方のバスのアービ
トレーションを先行して行うことを特徴とする。
【0011】この構成によれば、一方のバスにトランザ
クションが発行されると、バスブリッジは、比較的時間
の掛るバスブリッジキャッシュのスヌープが完了する前
から他方のバスのアービトレーションを行うので、他方
バスのアービトレーションの完了するタイミングが従来
に比べて早くなる。したがって、キャッシュスヌープが
終わって他方バスへのトランザクション転送が決定され
た場合には、バスブリッジは従来より早く他方バスへト
ランザクションを発行することができるので、一方のバ
スから他方のバスへトランザクションを転送する際のレ
イテンシを少なくすることができる。
クションが発行されると、バスブリッジは、比較的時間
の掛るバスブリッジキャッシュのスヌープが完了する前
から他方のバスのアービトレーションを行うので、他方
バスのアービトレーションの完了するタイミングが従来
に比べて早くなる。したがって、キャッシュスヌープが
終わって他方バスへのトランザクション転送が決定され
た場合には、バスブリッジは従来より早く他方バスへト
ランザクションを発行することができるので、一方のバ
スから他方のバスへトランザクションを転送する際のレ
イテンシを少なくすることができる。
【0012】なお、この構成及び以下に示す構成おい
て、バスブリッジが一方のバスから他方のバスへトラン
ザクションを「転送する」とは、バスブリッジが、一方
のバスから受け取ったトランザクションに対して、当該
トランザクションの種類や前記キャッシュの状態等に基
づいて決定したトランザクションを他方のバスに発行す
ることを意味する。したがって、バスブリッジが他方の
バスに発行するトランザクションが、バスブリッジが一
方のバスから受け取ったトランザクションと同じ種類の
トランザクションになるとは必ずしも限らない。
て、バスブリッジが一方のバスから他方のバスへトラン
ザクションを「転送する」とは、バスブリッジが、一方
のバスから受け取ったトランザクションに対して、当該
トランザクションの種類や前記キャッシュの状態等に基
づいて決定したトランザクションを他方のバスに発行す
ることを意味する。したがって、バスブリッジが他方の
バスに発行するトランザクションが、バスブリッジが一
方のバスから受け取ったトランザクションと同じ種類の
トランザクションになるとは必ずしも限らない。
【0013】また、本発明の別の構成は、前記構成にお
いて、前記バスブリッジが、前記一方のバスに発行され
たトランザクションの種類又はアドレスに基づきそのト
ランザクションが前記他方のバスに転送される可能性を
判定し、トランザクションが転送される可能性が高いと
判定された場合にのみ、前記他方のバスに対する先行ア
ービトレーション(すなわち、キャッシュをスヌープし
て他方のバスにトランザクションを転送するか否かを決
定する前に、先行して行うアービトレーション)を行う
ことを特徴とする。
いて、前記バスブリッジが、前記一方のバスに発行され
たトランザクションの種類又はアドレスに基づきそのト
ランザクションが前記他方のバスに転送される可能性を
判定し、トランザクションが転送される可能性が高いと
判定された場合にのみ、前記他方のバスに対する先行ア
ービトレーション(すなわち、キャッシュをスヌープし
て他方のバスにトランザクションを転送するか否かを決
定する前に、先行して行うアービトレーション)を行う
ことを特徴とする。
【0014】この構成は、無駄な先行アービトレーショ
ンを低減することを目的とするものである。すなわち、
もしスヌープの結果、一方のバスのトランザクションが
要求するデータがバスブリッジキャッシュ内に存在した
場合、結局トランザクションは他方のバスに転送されず
スヌープの完了前に先行して行ったアービトレーション
は無駄になってしまうが、この構成は、このような無駄
を低減しようとするものである。ここで、一方のバスか
ら他方のバスにトランザクションの転送が行われる可能
性の高さは、トランザクションの種類又はアドレスから
ある程度推測できるので、この構成では、一方のバスに
発行されたトランザクションの種類又はアドレスからそ
のトランザクションの転送可能性を判定し、可能性が高
いと判定された場合にのみ、先行アービトレーションを
行う。したがって、この構成によれば、無駄な先行アー
ビトレーションを低減し、バスの負荷を低減することが
できる。
ンを低減することを目的とするものである。すなわち、
もしスヌープの結果、一方のバスのトランザクションが
要求するデータがバスブリッジキャッシュ内に存在した
場合、結局トランザクションは他方のバスに転送されず
スヌープの完了前に先行して行ったアービトレーション
は無駄になってしまうが、この構成は、このような無駄
を低減しようとするものである。ここで、一方のバスか
ら他方のバスにトランザクションの転送が行われる可能
性の高さは、トランザクションの種類又はアドレスから
ある程度推測できるので、この構成では、一方のバスに
発行されたトランザクションの種類又はアドレスからそ
のトランザクションの転送可能性を判定し、可能性が高
いと判定された場合にのみ、先行アービトレーションを
行う。したがって、この構成によれば、無駄な先行アー
ビトレーションを低減し、バスの負荷を低減することが
できる。
【0015】また、本発明の別の構成は、スプリット対
応可能な複数のプロセッサを上位バスに接続し、複数の
前記上位バスに対してキャッシュを有するバスブリッジ
をそれぞれ設け、前記各上位バスを各々のバスブリッジ
を介して下位バスに接続し、この下位バスをメインメモ
リに接続した階層バスシステムにおいて、前記バスブリ
ッジは、上位バスのトランザクションをスプリットして
下位バスへ転送した場合には、当該転送したトランザク
ションに対する下位バスからの応答を待たずに、前記転
送処理から所定の時間間隔の後に上位バスに対するアー
ビトレーションを先行して行うことを特徴とする。
応可能な複数のプロセッサを上位バスに接続し、複数の
前記上位バスに対してキャッシュを有するバスブリッジ
をそれぞれ設け、前記各上位バスを各々のバスブリッジ
を介して下位バスに接続し、この下位バスをメインメモ
リに接続した階層バスシステムにおいて、前記バスブリ
ッジは、上位バスのトランザクションをスプリットして
下位バスへ転送した場合には、当該転送したトランザク
ションに対する下位バスからの応答を待たずに、前記転
送処理から所定の時間間隔の後に上位バスに対するアー
ビトレーションを先行して行うことを特徴とする。
【0016】この構成は、上位バスがスプリットバスで
ある場合において、上位バス上のプロセッサから発せら
れたトランザクションをバスブリッジがスプリットして
下位バスへ転送した場合のレイテンシの短縮を目的とす
るものである。すなわち、本構成では、このスプリット
したトランザクションに対するスプリット応答を元のプ
ロセッサに返送する際に必要な上位バスのアービトレー
ションを、そのトランザクションに対する下位バスから
応答が来る前から予め行っておくことにより、上位バス
にスプリット応答を発するタイミングを早める。この構
成によれば、プロセッサから発せられたトランザクショ
ンがスプリットされた場合において、当該プロセッサに
そのトランザクションに対するスプリット応答が戻るま
での時間を短縮することができる。
ある場合において、上位バス上のプロセッサから発せら
れたトランザクションをバスブリッジがスプリットして
下位バスへ転送した場合のレイテンシの短縮を目的とす
るものである。すなわち、本構成では、このスプリット
したトランザクションに対するスプリット応答を元のプ
ロセッサに返送する際に必要な上位バスのアービトレー
ションを、そのトランザクションに対する下位バスから
応答が来る前から予め行っておくことにより、上位バス
にスプリット応答を発するタイミングを早める。この構
成によれば、プロセッサから発せられたトランザクショ
ンがスプリットされた場合において、当該プロセッサに
そのトランザクションに対するスプリット応答が戻るま
での時間を短縮することができる。
【0017】なお、この構成において、トランザクショ
ンのスプリット転送のあと上位バスのアービトレーショ
ンを行うまでは、上位バスは当該元のプロセッサの占有
から離れるので、その間、別のトランザクションのため
に上位バスを使用することができる。したがって、トラ
ンザクションのスプリット転送のあと上位バスのアービ
トレーションを行うまでの時間間隔は、プロセッサにど
の程度まで上位バスの占有を許すかという点とスプリッ
ト応答のためのアービトレーションの遅れをどの程度ま
で許容するかという点とを総合的に考慮して決定する必
要がある。
ンのスプリット転送のあと上位バスのアービトレーショ
ンを行うまでは、上位バスは当該元のプロセッサの占有
から離れるので、その間、別のトランザクションのため
に上位バスを使用することができる。したがって、トラ
ンザクションのスプリット転送のあと上位バスのアービ
トレーションを行うまでの時間間隔は、プロセッサにど
の程度まで上位バスの占有を許すかという点とスプリッ
ト応答のためのアービトレーションの遅れをどの程度ま
で許容するかという点とを総合的に考慮して決定する必
要がある。
【0018】また、本発明の別の構成は、バスブリッジ
に接続されたプロセッサのバス占有率の総和が所定のし
きい値を越える場合は前記上位バスに対する前記先行ア
ービトレーションを禁止することを特徴とする。
に接続されたプロセッサのバス占有率の総和が所定のし
きい値を越える場合は前記上位バスに対する前記先行ア
ービトレーションを禁止することを特徴とする。
【0019】この構成において、バス占有率とは、単位
時間当たり1個の装置がバスを占有している時間のこと
である。プロセッサの場合には、バス占有率はそのプロ
セッサの性能から求めることができる。この構成によれ
ば、上位バスのバス負荷が高いと予測される場合には、
上位バスの先行アービトレーションを行わないようにす
ることができる。
時間当たり1個の装置がバスを占有している時間のこと
である。プロセッサの場合には、バス占有率はそのプロ
セッサの性能から求めることができる。この構成によれ
ば、上位バスのバス負荷が高いと予測される場合には、
上位バスの先行アービトレーションを行わないようにす
ることができる。
【0020】また、本発明の別の構成は、階層バスシス
テムに含まれるプロセッサ及びI/O装置のバス占有率
の総和が所定のしきい値を越える場合は前記下位バスに
対する前記先行アービトレーションを禁止することを特
徴とする。
テムに含まれるプロセッサ及びI/O装置のバス占有率
の総和が所定のしきい値を越える場合は前記下位バスに
対する前記先行アービトレーションを禁止することを特
徴とする。
【0021】この構成によれば、下位バスのバス負荷が
高いと予測される場合には、下位バスの先行アービトレ
ーションを行わないようにすることができる。
高いと予測される場合には、下位バスの先行アービトレ
ーションを行わないようにすることができる。
【0022】また、本発明の別の構成は、各バスブリッ
ジにて上位バス及び下位バスのバス負荷をそれぞれ常時
監視し、各バスのバス負荷が所定のしきい値を越えた場
合に、しきい値を越えたバスについては前記先行アービ
トレーションを禁止する事を特徴とする。
ジにて上位バス及び下位バスのバス負荷をそれぞれ常時
監視し、各バスのバス負荷が所定のしきい値を越えた場
合に、しきい値を越えたバスについては前記先行アービ
トレーションを禁止する事を特徴とする。
【0023】すなわち、先行アービトレーションが無駄
になった場合、その先行アービトレーションの結果占有
されていたバスが無駄になってしまう。例えば、バスが
混んでいる場合などには、このような無駄なバス占有は
スループットの低下を招く。そこで、この構成では各バ
スのバス負荷を常時検出し、バス負荷が所定のしきい値
を越えた場合には当該バスに対する先行アービトレーシ
ョンを禁止する。すなわち、この構成では、先行アービ
トレーションを許可するモードと禁止するモードとを動
的に切り換えることにより、バス負荷の増加を防ぎ、ス
ループットの低下を防止する。
になった場合、その先行アービトレーションの結果占有
されていたバスが無駄になってしまう。例えば、バスが
混んでいる場合などには、このような無駄なバス占有は
スループットの低下を招く。そこで、この構成では各バ
スのバス負荷を常時検出し、バス負荷が所定のしきい値
を越えた場合には当該バスに対する先行アービトレーシ
ョンを禁止する。すなわち、この構成では、先行アービ
トレーションを許可するモードと禁止するモードとを動
的に切り換えることにより、バス負荷の増加を防ぎ、ス
ループットの低下を防止する。
【0024】また、本発明に係るバスブリッジは、タグ
メモリの情報を所定の方式で圧縮したテーブルを格納し
た圧縮タグメモリと、一方のバスに発行されたトランザ
クションのアドレスからタグを抽出し前記所定の方式で
圧縮するタグ圧縮手段と、一方のバスに発行されたトラ
ンザクションのアドレスからインデックスを抽出し、そ
のインデックスに対応する圧縮されたタグ情報を前記圧
縮タグメモリから読み出す圧縮タグ検出手段と、タグ圧
縮手段の出力と前記圧縮タグ検出手段の出力とを比較す
る比較手段とを有し、前記比較手段による比較の結果、
前記タグ圧縮手段の出力と前記圧縮タグ検出手段の出力
とが不一致のときには、前記タグメモリの検索の終了を
待たずに前記他方のバスに対してアービトレーション信
号を出力することを特徴とする。
メモリの情報を所定の方式で圧縮したテーブルを格納し
た圧縮タグメモリと、一方のバスに発行されたトランザ
クションのアドレスからタグを抽出し前記所定の方式で
圧縮するタグ圧縮手段と、一方のバスに発行されたトラ
ンザクションのアドレスからインデックスを抽出し、そ
のインデックスに対応する圧縮されたタグ情報を前記圧
縮タグメモリから読み出す圧縮タグ検出手段と、タグ圧
縮手段の出力と前記圧縮タグ検出手段の出力とを比較す
る比較手段とを有し、前記比較手段による比較の結果、
前記タグ圧縮手段の出力と前記圧縮タグ検出手段の出力
とが不一致のときには、前記タグメモリの検索の終了を
待たずに前記他方のバスに対してアービトレーション信
号を出力することを特徴とする。
【0025】この構成において、トランザクションのイ
ンデックスに基づき圧縮タグメモリから読み出された圧
縮タグと、そのトランザクションのタグ自身を圧縮した
ものとが不一致の場合には、当該キャッシュ内にはその
トランザクションの要求するデータは存在しない。この
圧縮タグ同士の比較は、タグメモリの検索(スヌープ)
よりも短時間で行うことができる。したがって、この構
成によれば、比較的時間を要するタグメモリ検索の結果
が得られる前に、圧縮タグの比較に基づきトランザクシ
ョンの要求データが存在しないことを知ることができる
ので、トランザクションが転送されることをより早く知
ることができる。よって、この構成では、タグ圧縮手段
の出力と圧縮タグ検出手段の出力とが不一致のときに、
バスブリッジが転送先バスにアービトレーション信号を
出力することにより、アービトレーションの完了が早く
なり、トランザクションの転送に要する時間を短縮する
ことができる。
ンデックスに基づき圧縮タグメモリから読み出された圧
縮タグと、そのトランザクションのタグ自身を圧縮した
ものとが不一致の場合には、当該キャッシュ内にはその
トランザクションの要求するデータは存在しない。この
圧縮タグ同士の比較は、タグメモリの検索(スヌープ)
よりも短時間で行うことができる。したがって、この構
成によれば、比較的時間を要するタグメモリ検索の結果
が得られる前に、圧縮タグの比較に基づきトランザクシ
ョンの要求データが存在しないことを知ることができる
ので、トランザクションが転送されることをより早く知
ることができる。よって、この構成では、タグ圧縮手段
の出力と圧縮タグ検出手段の出力とが不一致のときに、
バスブリッジが転送先バスにアービトレーション信号を
出力することにより、アービトレーションの完了が早く
なり、トランザクションの転送に要する時間を短縮する
ことができる。
【0026】
【発明の実施の形態】以下、本発明の好適な実施形態を
図面に基づいて説明する。
図面に基づいて説明する。
【0027】以下の各実施形態は、例えば図5に示した
階層バスシステムに適用される。なお、以下の各実施形
態においては、CPUは、自分自身専用のキャッシュ
(以下、CPUキャッシュと呼ぶ)を有しているものと
して説明する。また、各実施形態において、CPUキャ
ッシュ及びバスブリッジのキャッシュ(以下、ブリッジ
キャッシュと呼ぶ)はライトバック方式のキャッシュで
あり、各キャッシュの内容の一貫性(キャッシュ・コン
システンシ)を維持するために、MESIプロトコルを
用いてCPUキャッシュとブリッジキャッシュとの間の
マルチレベル包含性(MLI)を維持している。
階層バスシステムに適用される。なお、以下の各実施形
態においては、CPUは、自分自身専用のキャッシュ
(以下、CPUキャッシュと呼ぶ)を有しているものと
して説明する。また、各実施形態において、CPUキャ
ッシュ及びバスブリッジのキャッシュ(以下、ブリッジ
キャッシュと呼ぶ)はライトバック方式のキャッシュで
あり、各キャッシュの内容の一貫性(キャッシュ・コン
システンシ)を維持するために、MESIプロトコルを
用いてCPUキャッシュとブリッジキャッシュとの間の
マルチレベル包含性(MLI)を維持している。
【0028】MLIとは、ある上位バスに接続されたC
PUキャッシュにあるデータは、その上位バスに接続さ
れたバスブリッジのブリッジキャッシュにも存在すると
いうことをいう。したがって、以下の実施形態では、ブ
リッジキャッシュは、少なくともその上位のCPUキャ
ッシュの容量の総和よりも大きな容量を有している。
PUキャッシュにあるデータは、その上位バスに接続さ
れたバスブリッジのブリッジキャッシュにも存在すると
いうことをいう。したがって、以下の実施形態では、ブ
リッジキャッシュは、少なくともその上位のCPUキャ
ッシュの容量の総和よりも大きな容量を有している。
【0029】また、MESIプロトコルとは、各キャッ
シュブロックに対してそのブロックの状態(ステート)
を示すデータを設けることによりキャッシュコンシステ
ンシを保つ方式の一つであり、M,E,S,Iの4種類
のステートを用いて各キャッシュブロックを制御する。
ここで、M,E,S,Iの各ステートの示す意味は以下
の通りである。
シュブロックに対してそのブロックの状態(ステート)
を示すデータを設けることによりキャッシュコンシステ
ンシを保つ方式の一つであり、M,E,S,Iの4種類
のステートを用いて各キャッシュブロックを制御する。
ここで、M,E,S,Iの各ステートの示す意味は以下
の通りである。
【0030】M(Modify):そのブロックの更新されたデ
ータ(すなわち、そのブロックの最新のデータ)をその
キャッシュだけが持つ。
ータ(すなわち、そのブロックの最新のデータ)をその
キャッシュだけが持つ。
【0031】E(Exclusive) :そのブロックに関しメイ
ンメモリと同一内容のデータをそのキャッシュだけが持
つ。
ンメモリと同一内容のデータをそのキャッシュだけが持
つ。
【0032】S(Shared):そのブロックに関しメインメ
モリと同一内容のデータを持つが、他のキャッシュも当
該データを持っている可能性がある。
モリと同一内容のデータを持つが、他のキャッシュも当
該データを持っている可能性がある。
【0033】I(Invalid) :そのブロックは無効であ
る。
る。
【0034】なお、以上のステートは基本的には同レベ
ルにあるキャッシュ同士の関係を示すものである。すな
わち、CPUキャッシュのステートは、他のCPUキャ
ッシュとの関係を示すものであり、ブリッジキャッシュ
のステートは、他のブリッジキャッシュとの関係を示す
ものである。したがって、ブリッジキャッシュのステー
トがMだったとしても、それは当該ブリッジキャッシュ
自体が最新のデータを有することを意味するとは限ら
ず、当該ブリッジキャッシュ自体かその上位のCPUキ
ャッシュのいずれかが最新のデータを持つことを意味す
ることになる。
ルにあるキャッシュ同士の関係を示すものである。すな
わち、CPUキャッシュのステートは、他のCPUキャ
ッシュとの関係を示すものであり、ブリッジキャッシュ
のステートは、他のブリッジキャッシュとの関係を示す
ものである。したがって、ブリッジキャッシュのステー
トがMだったとしても、それは当該ブリッジキャッシュ
自体が最新のデータを有することを意味するとは限ら
ず、当該ブリッジキャッシュ自体かその上位のCPUキ
ャッシュのいずれかが最新のデータを持つことを意味す
ることになる。
【0035】以下、このようなプロトコルを採用するシ
ステムを例にとって、本発明の実施形態について説明す
る。ただし、これはあくまで一例であって、本発明は上
記以外のプロトコルを採用するシステムにも有効であ
る。
ステムを例にとって、本発明の実施形態について説明す
る。ただし、これはあくまで一例であって、本発明は上
記以外のプロトコルを採用するシステムにも有効であ
る。
【0036】実施形態1.本実施形態は、上位バス又は
下位バスのいずれか一方にトランザクションが発行され
た場合において、ブリッジキャッシュをスヌープして他
方のバスにトランザクションを転送するか否かを決定す
る前に、先行して他方のバスのアービトレーションを行
うことにより、トランザクション転送によって生じる処
理の遅れを短縮するものである。
下位バスのいずれか一方にトランザクションが発行され
た場合において、ブリッジキャッシュをスヌープして他
方のバスにトランザクションを転送するか否かを決定す
る前に、先行して他方のバスのアービトレーションを行
うことにより、トランザクション転送によって生じる処
理の遅れを短縮するものである。
【0037】以下、上位バスから下位バスへのトランザ
クション転送を例にとり、図1を参照して本実施形態の
方法を説明する。
クション転送を例にとり、図1を参照して本実施形態の
方法を説明する。
【0038】図1に示すように、CPUは、上位バスに
トランザクションを発行しようとする場合、まず上位バ
スのアービトレーションを行い、これによってバス使用
権を獲得する。その後、CPUは上位バスにトランザク
ションを発行する。この上位バスに接続されているバス
ブリッジは、このトランザクションを検出し、このトラ
ンザクションのアドレス(トランザクションが要求する
データのアドレス)を有していないか、自らのキャッシ
ュをスヌープする。
トランザクションを発行しようとする場合、まず上位バ
スのアービトレーションを行い、これによってバス使用
権を獲得する。その後、CPUは上位バスにトランザク
ションを発行する。この上位バスに接続されているバス
ブリッジは、このトランザクションを検出し、このトラ
ンザクションのアドレス(トランザクションが要求する
データのアドレス)を有していないか、自らのキャッシ
ュをスヌープする。
【0039】従来は、このスヌープの結果に基づき上位
バスから下位バスへトランザクションを転送する必要が
あると判定された後に下位バスのアービトレーションを
開始していたが、本実施形態では、ブリッジキャッシュ
のスヌープが完了する前から下位バスのアービトレーシ
ョンを開始する。すなわち、本実施形態では、バスブリ
ッジは、上位バスからのトランザクションを受信する
と、ブリッジキャッシュのスヌープを開始すると共に下
位バスに対してアービトレーション信号(バス要求信
号)を出力して、下位バスのアービトレーションを開始
する。ここで、下位バスのアービトレーションの方式
は、集中アービトレーション、分散アービトレーション
のいずれでもよい。
バスから下位バスへトランザクションを転送する必要が
あると判定された後に下位バスのアービトレーションを
開始していたが、本実施形態では、ブリッジキャッシュ
のスヌープが完了する前から下位バスのアービトレーシ
ョンを開始する。すなわち、本実施形態では、バスブリ
ッジは、上位バスからのトランザクションを受信する
と、ブリッジキャッシュのスヌープを開始すると共に下
位バスに対してアービトレーション信号(バス要求信
号)を出力して、下位バスのアービトレーションを開始
する。ここで、下位バスのアービトレーションの方式
は、集中アービトレーション、分散アービトレーション
のいずれでもよい。
【0040】このトランザクション転送の決定の前にア
ービトレーションを先行して行う方式(以下、先行アー
ビトレーションと呼ぶ)によれば、例えばブリッジキャ
ッシュのスヌープが終了してトランザクションを下位バ
スへ転送することが決定される前に下位バスのアービト
レーションが終了していれば、トランザクション転送が
決定されると同時にバスブリッジから下位バスに対して
転送すべきトランザクションを発行することができる。
また、もしトランザクションを下位バスへ転送すると決
定される前に下位バスのアービトレーションが完了しな
くても、従来よりもアービトレーションを開始のタイミ
ングが早いため、いずれにしても下位バスへのトランザ
クションの発行タイミングが従来よりも早くなる。した
がって、本実施形態によれば、上位バスから下位バスへ
トランザクションが転送される場合の処理時間を短縮す
ることができるので、バスシステム全体としてレイテン
シを小さくすることができる。
ービトレーションを先行して行う方式(以下、先行アー
ビトレーションと呼ぶ)によれば、例えばブリッジキャ
ッシュのスヌープが終了してトランザクションを下位バ
スへ転送することが決定される前に下位バスのアービト
レーションが終了していれば、トランザクション転送が
決定されると同時にバスブリッジから下位バスに対して
転送すべきトランザクションを発行することができる。
また、もしトランザクションを下位バスへ転送すると決
定される前に下位バスのアービトレーションが完了しな
くても、従来よりもアービトレーションを開始のタイミ
ングが早いため、いずれにしても下位バスへのトランザ
クションの発行タイミングが従来よりも早くなる。した
がって、本実施形態によれば、上位バスから下位バスへ
トランザクションが転送される場合の処理時間を短縮す
ることができるので、バスシステム全体としてレイテン
シを小さくすることができる。
【0041】なお、本実施形態において、上位バスから
のトランザクションの受信した後キャッシュスヌープ完
了(すなわち、トランザクションの転送・非転送の決
定)までの間に、いつ下位バスのアービトレーションを
開始するかは、バスの負荷状態とトランザクション転送
処理の時間短縮要求とのトレードオフを勘案して決定す
る。例えば、アービトレーションの開始のタイミングを
早くすると、下位バスへのトランザクションの発行タイ
ミングが早くなるかわりに、スヌープの完了の前にアー
ビトレーションが終了した場合などにはバスブリッジが
下位バスを無駄に占有する時間が生じてしまう。そこ
で、下位バスのバス負荷が大きい場合などには、バスブ
リッジが下位バスを無駄に占有する時間を短縮あるいは
無くすために、アービトレーションの開始を遅くする。
逆に、バス負荷が小さい場合には、アービトレーション
の開始タイミングを早くすることにより、処理時間の短
縮の効果を高めることができる。
のトランザクションの受信した後キャッシュスヌープ完
了(すなわち、トランザクションの転送・非転送の決
定)までの間に、いつ下位バスのアービトレーションを
開始するかは、バスの負荷状態とトランザクション転送
処理の時間短縮要求とのトレードオフを勘案して決定す
る。例えば、アービトレーションの開始のタイミングを
早くすると、下位バスへのトランザクションの発行タイ
ミングが早くなるかわりに、スヌープの完了の前にアー
ビトレーションが終了した場合などにはバスブリッジが
下位バスを無駄に占有する時間が生じてしまう。そこ
で、下位バスのバス負荷が大きい場合などには、バスブ
リッジが下位バスを無駄に占有する時間を短縮あるいは
無くすために、アービトレーションの開始を遅くする。
逆に、バス負荷が小さい場合には、アービトレーション
の開始タイミングを早くすることにより、処理時間の短
縮の効果を高めることができる。
【0042】以上の例では、上位バスから下位バスへの
トランザクション転送を例にとって説明したが、下位バ
スから上位バスへのトランザクション転送の場合も、上
記の例と全く同様に処理時間を短縮することができる。
トランザクション転送を例にとって説明したが、下位バ
スから上位バスへのトランザクション転送の場合も、上
記の例と全く同様に処理時間を短縮することができる。
【0043】次に実施形態1の変形例について説明す
る。以上説明した実施形態1では、一方のバスにトラン
ザクションが発行された場合、バスブリッジは基本的に
他方のバスの先行アービトレーションを行うので、ブリ
ッジキャッシュのスヌープの結果トランザクションの要
求データがブリッジキャッシュ内に存在した場合などに
は、トランザクションは他方のバスに転送されず、先行
アービトレーションは無駄になってしまう。この変形例
は、このような無駄な先行アービトレーションを少なく
するための方式である。
る。以上説明した実施形態1では、一方のバスにトラン
ザクションが発行された場合、バスブリッジは基本的に
他方のバスの先行アービトレーションを行うので、ブリ
ッジキャッシュのスヌープの結果トランザクションの要
求データがブリッジキャッシュ内に存在した場合などに
は、トランザクションは他方のバスに転送されず、先行
アービトレーションは無駄になってしまう。この変形例
は、このような無駄な先行アービトレーションを少なく
するための方式である。
【0044】この方式では、バスブリッジが、一方のバ
スに発行されたトランザクションの種類又はアドレスに
基づき、そのトランザクションが他方のバスに転送され
る可能性を判定し、トランザクションが転送される可能
性が高いと判定された場合にのみ、他方のバスに対する
先行アービトレーションを行う。
スに発行されたトランザクションの種類又はアドレスに
基づき、そのトランザクションが他方のバスに転送され
る可能性を判定し、トランザクションが転送される可能
性が高いと判定された場合にのみ、他方のバスに対する
先行アービトレーションを行う。
【0045】バスブリッジにおけるトランザクション転
送の可能性の判定の方法としては、例えば以下に示すも
のがある。
送の可能性の判定の方法としては、例えば以下に示すも
のがある。
【0046】まず第1は、上位バスから下位バスへのト
ランザクション転送に際して、そのトランザクションの
アドレスに基づき転送可能性を判定する方法である。こ
の方法は、次の原理に基づくものである。
ランザクション転送に際して、そのトランザクションの
アドレスに基づき転送可能性を判定する方法である。こ
の方法は、次の原理に基づくものである。
【0047】一連の処理を表す命令コード群はメインメ
モリ上の連続したアドレスに格納される可能性が高い。
したがって、CPUが新しい命令コード群を読み出す場
合、ブリッジキャッシュのミスヒットは連続して起こり
やすい。すなわち、一連の命令コード群の読出しの場
合、CPUからはその命令コード群が格納された一連の
アドレスに対する一連のリードトランザクションが順次
発行される(ただし、ここではCPUは自分専用のキャ
ッシュを有しているので、実際にCPUから発行される
リードトランザクションのアドレスはキャッシュブロッ
ク単位で連続したものとなる)ので、あるトランザクシ
ョンに対してブリッジキャッシュでミスヒットした場
合、その次のトランザクションがミスヒットする可能性
は高い。一方、連続したトランザクションがキャッシュ
ブロック単位で連続したアドレスに対するトランザクシ
ョンである場合には、それら一連のトランザクション
は、一連の命令コード群に対するものである可能性が高
い。したがって、この第1の方法では、上位バスから下
位バスにトランザクション転送した際の要求アドレスを
バスブリッジに記録しておき、そのバスブリッジに次に
与えられたトランザクションのアドレスが前回記録され
たアドレスとキャッシュブロック単位で連続しているか
否かを判定し、連続している場合には後のトランザクシ
ョンが下位バスに転送される可能性は高いと判定する。
なお、この第1の方法において、バスブリッジにおける
転送トランザクションのアドレス記録は、転送を行う度
に更新する。
モリ上の連続したアドレスに格納される可能性が高い。
したがって、CPUが新しい命令コード群を読み出す場
合、ブリッジキャッシュのミスヒットは連続して起こり
やすい。すなわち、一連の命令コード群の読出しの場
合、CPUからはその命令コード群が格納された一連の
アドレスに対する一連のリードトランザクションが順次
発行される(ただし、ここではCPUは自分専用のキャ
ッシュを有しているので、実際にCPUから発行される
リードトランザクションのアドレスはキャッシュブロッ
ク単位で連続したものとなる)ので、あるトランザクシ
ョンに対してブリッジキャッシュでミスヒットした場
合、その次のトランザクションがミスヒットする可能性
は高い。一方、連続したトランザクションがキャッシュ
ブロック単位で連続したアドレスに対するトランザクシ
ョンである場合には、それら一連のトランザクション
は、一連の命令コード群に対するものである可能性が高
い。したがって、この第1の方法では、上位バスから下
位バスにトランザクション転送した際の要求アドレスを
バスブリッジに記録しておき、そのバスブリッジに次に
与えられたトランザクションのアドレスが前回記録され
たアドレスとキャッシュブロック単位で連続しているか
否かを判定し、連続している場合には後のトランザクシ
ョンが下位バスに転送される可能性は高いと判定する。
なお、この第1の方法において、バスブリッジにおける
転送トランザクションのアドレス記録は、転送を行う度
に更新する。
【0048】トランザクション転送の可能性の判定の第
2の方法は、下位バスから上位バスへのトランザクショ
ン転送において、そのトランザクションの種類に基づき
転送可能性を判定する方法である。バス上に発行される
トランザクションには、リード(Read),インバリ
デート(Invalidate),リード・アンド・イ
ンバリデート(Read&Invalidate)など
がある。ここで、リードはCPUが自分のキャッシュに
ないデータを読み出す際に発行されるトランザクション
であり、インバリデートはCPUが自分のキャッシュに
持っているデータを書き替える際に、他のキャッシュと
のコンシステンシを維持するために、他のキャッシュ内
の該当ブロックを無効化するためのトランザクションで
ある。また、リード・アンド・インバリデートは、CP
Uが自分のキャッシュにないデータについてライトを行
う際に発行されるトランザクションであり、該当データ
を含むブロックの読み出しと他のキャッシュにおける該
当ブロックの無効化とを同時に指示するものである。こ
のようなトランザクションのうち、インバリデートやリ
ード・アンド・インバリデートなど他のキャッシュの無
効化を指示するトランザクションは、インバリデート系
トランザクションと総称される。第2の方法では、この
ようなトランザクションの種類をバスブリッジで判別
し、トランザクション転送の可能性を判定する。
2の方法は、下位バスから上位バスへのトランザクショ
ン転送において、そのトランザクションの種類に基づき
転送可能性を判定する方法である。バス上に発行される
トランザクションには、リード(Read),インバリ
デート(Invalidate),リード・アンド・イ
ンバリデート(Read&Invalidate)など
がある。ここで、リードはCPUが自分のキャッシュに
ないデータを読み出す際に発行されるトランザクション
であり、インバリデートはCPUが自分のキャッシュに
持っているデータを書き替える際に、他のキャッシュと
のコンシステンシを維持するために、他のキャッシュ内
の該当ブロックを無効化するためのトランザクションで
ある。また、リード・アンド・インバリデートは、CP
Uが自分のキャッシュにないデータについてライトを行
う際に発行されるトランザクションであり、該当データ
を含むブロックの読み出しと他のキャッシュにおける該
当ブロックの無効化とを同時に指示するものである。こ
のようなトランザクションのうち、インバリデートやリ
ード・アンド・インバリデートなど他のキャッシュの無
効化を指示するトランザクションは、インバリデート系
トランザクションと総称される。第2の方法では、この
ようなトランザクションの種類をバスブリッジで判別
し、トランザクション転送の可能性を判定する。
【0049】すなわち、この第2の方法は、下位バスに
発行されたトランザクションをバスブリッジが受け取っ
た場合、バスブリッジにてそのトランザクションの種類
を特定し、そのトランザクションがインバリデート系で
あった場合には先行アービトレーションを行い、そのト
ランザクションが非インバリデート系の場合には先行ア
ービトレーションを行わないというものである。このよ
うな方法を採るのは、次の理由からである。
発行されたトランザクションをバスブリッジが受け取っ
た場合、バスブリッジにてそのトランザクションの種類
を特定し、そのトランザクションがインバリデート系で
あった場合には先行アービトレーションを行い、そのト
ランザクションが非インバリデート系の場合には先行ア
ービトレーションを行わないというものである。このよ
うな方法を採るのは、次の理由からである。
【0050】あるCPUにおいてあるアドレスに対する
データライト(書き替え)動作を行う場合、キャッシュ
コンシステンシを保つためには、同一上位バス上のCP
Uだけでなく、バスブリッジや他の上位バス上のCPU
にも該当ブロックの無効化を指示する必要がある。この
ような場合、そのCPUの接続されたバスブリッジから
下位バスに対しても、インバリデート系のトランザクシ
ョンが発行される。このようにして下位バスにインバリ
デート系トランザクションが発行された場合、それを受
け取ったバスブリッジでは、ブリッジキャッシュのステ
ートがM,E,Sのいずれかであるとそのバスブリッジ
の上位のCPUが該当データを持っている可能性がある
ため、バスブリッジから上位バスに対してインバリデー
ト系のトランザクションを発行しなければならない。
データライト(書き替え)動作を行う場合、キャッシュ
コンシステンシを保つためには、同一上位バス上のCP
Uだけでなく、バスブリッジや他の上位バス上のCPU
にも該当ブロックの無効化を指示する必要がある。この
ような場合、そのCPUの接続されたバスブリッジから
下位バスに対しても、インバリデート系のトランザクシ
ョンが発行される。このようにして下位バスにインバリ
デート系トランザクションが発行された場合、それを受
け取ったバスブリッジでは、ブリッジキャッシュのステ
ートがM,E,Sのいずれかであるとそのバスブリッジ
の上位のCPUが該当データを持っている可能性がある
ため、バスブリッジから上位バスに対してインバリデー
ト系のトランザクションを発行しなければならない。
【0051】これに対して、下位バスに発行されたトラ
ンザクションが非インバリデート系(例えば、リード)
であった場合において、キャッシュコンシステンシの維
持が必要となるのは、そのトランザクションを受け取っ
たバスブリッジのキャッシュのステートがMの場合だけ
である。非インバリデート系トランザクションでは、他
のCPUが最新のデータ(すなわち、ステートM)のデ
ータを持っている場合にのみ、その最新データを読み出
す必要があるため、上位バスに対してそのトランザクシ
ョンを転送する必要がある。
ンザクションが非インバリデート系(例えば、リード)
であった場合において、キャッシュコンシステンシの維
持が必要となるのは、そのトランザクションを受け取っ
たバスブリッジのキャッシュのステートがMの場合だけ
である。非インバリデート系トランザクションでは、他
のCPUが最新のデータ(すなわち、ステートM)のデ
ータを持っている場合にのみ、その最新データを読み出
す必要があるため、上位バスに対してそのトランザクシ
ョンを転送する必要がある。
【0052】ここで、ブリッジキャッシュのあるブロッ
クのステートがMである可能性は、M,E,Sのいずれ
かである可能性よりも当然に低い。しかも、ステートが
Mとなるのはデータが書き替えられた場合であるので、
命令コードのブロックがMになることはあまり考えられ
ない。以上を総合すれば、下位バスのトランザクション
が上位バスへ転送される可能性は、インバリデート系の
方が非インバリデート系よりもはるかに高いといえる。
クのステートがMである可能性は、M,E,Sのいずれ
かである可能性よりも当然に低い。しかも、ステートが
Mとなるのはデータが書き替えられた場合であるので、
命令コードのブロックがMになることはあまり考えられ
ない。以上を総合すれば、下位バスのトランザクション
が上位バスへ転送される可能性は、インバリデート系の
方が非インバリデート系よりもはるかに高いといえる。
【0053】以上のような理由から、この第2の方法で
は、下位バスに発行されたトランザクションがインバリ
デート系の場合は、上位バスに対してインバリデート系
のトランザクションを発行、すなわち転送しなければな
らない可能性が高いと判定する。
は、下位バスに発行されたトランザクションがインバリ
デート系の場合は、上位バスに対してインバリデート系
のトランザクションを発行、すなわち転送しなければな
らない可能性が高いと判定する。
【0054】以上、トランザクションの種類又はアドレ
スからトランザクション転送の可能性を判定する方法の
例をいくつか挙げたが、トランザクション転送の可能性
の判定方法は以上の例にあげたものに限られるものでは
ない。いずれにしても、トランザクション転送の可能性
の高低を、キャッシュスヌープに要する時間よりも短時
間で判定することができる方法であれば、どのような方
法を用いてもよい。
スからトランザクション転送の可能性を判定する方法の
例をいくつか挙げたが、トランザクション転送の可能性
の判定方法は以上の例にあげたものに限られるものでは
ない。いずれにしても、トランザクション転送の可能性
の高低を、キャッシュスヌープに要する時間よりも短時
間で判定することができる方法であれば、どのような方
法を用いてもよい。
【0055】そして、このような判定方法によって一方
のバスから他方のバスへトランザクションが転送される
可能性を判定し、転送可能性が高いと判定された場合に
のみ他方のバスに対して先行アービトレーションを行う
ことにより、無駄な先行アービトレーションの数を低減
することができる。
のバスから他方のバスへトランザクションが転送される
可能性を判定し、転送可能性が高いと判定された場合に
のみ他方のバスに対して先行アービトレーションを行う
ことにより、無駄な先行アービトレーションの数を低減
することができる。
【0056】以上、トランザクションの種類やアドレス
に基づき先行アービトレーションを行うか否かを決定す
ることにより、無駄な先行アービトレーションを低減す
る方法について説明した。ただし、トランザクション転
送先のバスのバス負荷が小さい場合は、無駄な先行アー
ビトレーションを行ってもスループットにはあまり影響
がないので、実施形態1の実施に当たって上記変形例の
方法は必須のものではない。
に基づき先行アービトレーションを行うか否かを決定す
ることにより、無駄な先行アービトレーションを低減す
る方法について説明した。ただし、トランザクション転
送先のバスのバス負荷が小さい場合は、無駄な先行アー
ビトレーションを行ってもスループットにはあまり影響
がないので、実施形態1の実施に当たって上記変形例の
方法は必須のものではない。
【0057】実施形態2.本発明の実施形態2は、上位
バスがスプリットバスである場合において、スプリット
応答時のアービトレーションによるレイテンシを低減す
ることを目的とする。
バスがスプリットバスである場合において、スプリット
応答時のアービトレーションによるレイテンシを低減す
ることを目的とする。
【0058】階層バスシステムにおいて上位バスにスプ
リットバスを採用するのは、上位バスのスループットを
向上させるためである。すなわち、CPUから上位バス
にトランザクションが発せられた場合において、ブリッ
ジキャッシュに該当データが存在せず下位バスにトラン
ザクションを転送した場合、下位バスからそのトランザ
クションに対する応答が返ってくるまでの間、上位バス
は元のCPUに占有されたままになる。これでは、その
間に他のCPUはトランザクションを発することができ
ず、上位バスのスループットは低くなる。これに対し
て、CPUをスプリット対応可能とし上位バスをスプリ
ットバスとして構成すれば、上位バスのトランザクショ
ンを下位バスへ転送する場合にはそのトランザクション
をスプリットして元のCPUにバスを放棄させることが
でき、その間に他のトランザクションを発行することが
可能となる。したがって、この場合、上位バスのスルー
プットは向上する。近年、スプリットに対応可能なCP
Uが開発されており、これを用いれば上位バスのスプリ
ットを実現することができる。
リットバスを採用するのは、上位バスのスループットを
向上させるためである。すなわち、CPUから上位バス
にトランザクションが発せられた場合において、ブリッ
ジキャッシュに該当データが存在せず下位バスにトラン
ザクションを転送した場合、下位バスからそのトランザ
クションに対する応答が返ってくるまでの間、上位バス
は元のCPUに占有されたままになる。これでは、その
間に他のCPUはトランザクションを発することができ
ず、上位バスのスループットは低くなる。これに対し
て、CPUをスプリット対応可能とし上位バスをスプリ
ットバスとして構成すれば、上位バスのトランザクショ
ンを下位バスへ転送する場合にはそのトランザクション
をスプリットして元のCPUにバスを放棄させることが
でき、その間に他のトランザクションを発行することが
可能となる。したがって、この場合、上位バスのスルー
プットは向上する。近年、スプリットに対応可能なCP
Uが開発されており、これを用いれば上位バスのスプリ
ットを実現することができる。
【0059】上位バスのトランザクションをスプリット
して下位バスに転送した場合、そのトランザクションに
対する下位バスからの応答をバスブリッジを介して元の
CPUに返す必要がある。バスブリッジから元のCPU
に対するこのような応答のことをスプリット応答とい
う。このスプリット応答を行う場合には、バスブリッジ
はアービトレーションを行って上位バスの使用権を獲得
する必要がある。なぜなら、スプリットを行った時点で
元のCPUは上位バスの使用権を放棄しているからであ
る。
して下位バスに転送した場合、そのトランザクションに
対する下位バスからの応答をバスブリッジを介して元の
CPUに返す必要がある。バスブリッジから元のCPU
に対するこのような応答のことをスプリット応答とい
う。このスプリット応答を行う場合には、バスブリッジ
はアービトレーションを行って上位バスの使用権を獲得
する必要がある。なぜなら、スプリットを行った時点で
元のCPUは上位バスの使用権を放棄しているからであ
る。
【0060】このスプリット応答時のアービトレーショ
ンは、例えば図2に示すように、転送したトランザクシ
ョンに対する下位バスからのレスポンス(応答)をバス
ブリッジが受けた後に行う方法も考えられるが、これで
はアービトレーションを待つ分だけスプリット応答の出
力タイミングが遅くなってしまう。
ンは、例えば図2に示すように、転送したトランザクシ
ョンに対する下位バスからのレスポンス(応答)をバス
ブリッジが受けた後に行う方法も考えられるが、これで
はアービトレーションを待つ分だけスプリット応答の出
力タイミングが遅くなってしまう。
【0061】そこで、本実施形態では、バスブリッジが
上位バスのトランザクションをスプリットした場合、下
位バスからバスブリッジに対する応答を待たずに、スプ
リット時点から所定時間間隔の後にそのバスブリッジが
上位バスのアービトレーションを行うようにする。
上位バスのトランザクションをスプリットした場合、下
位バスからバスブリッジに対する応答を待たずに、スプ
リット時点から所定時間間隔の後にそのバスブリッジが
上位バスのアービトレーションを行うようにする。
【0062】このときの処理の流れを示す説明図が図3
である。図3において、上位バスに発行されたトランザ
クションについて、バスブリッジのキャッシュスヌープ
の完了前に下位バスのアービトレーションを行うところ
までは、図1の処理の流れと同様である。ただし、この
実施形態ではトランザクションのスプリットを行うた
め、バスブリッジは、スヌープの結果トランザクション
の転送を決定した場合に元のCPUに対してスプリット
したことを示す旨のレスポンスを返す点が、図1の場合
と異なる。このレスポンスを受け取った元のCPUは、
上位バスを放棄し、バスブリッジからのスプリット応答
がくるのを待ち受ける。
である。図3において、上位バスに発行されたトランザ
クションについて、バスブリッジのキャッシュスヌープ
の完了前に下位バスのアービトレーションを行うところ
までは、図1の処理の流れと同様である。ただし、この
実施形態ではトランザクションのスプリットを行うた
め、バスブリッジは、スヌープの結果トランザクション
の転送を決定した場合に元のCPUに対してスプリット
したことを示す旨のレスポンスを返す点が、図1の場合
と異なる。このレスポンスを受け取った元のCPUは、
上位バスを放棄し、バスブリッジからのスプリット応答
がくるのを待ち受ける。
【0063】下位バスでは、転送されたトランザクショ
ンについて他のバスブリッジに対するスヌープが行わ
れ、このスヌープの結果に基づいて、当該トランザクシ
ョンに対するレスポンスが生成される。そして、このレ
スポンスを受け取ったバスブリッジは、スプリット応答
を生成し上位バスに対して出力する。
ンについて他のバスブリッジに対するスヌープが行わ
れ、このスヌープの結果に基づいて、当該トランザクシ
ョンに対するレスポンスが生成される。そして、このレ
スポンスを受け取ったバスブリッジは、スプリット応答
を生成し上位バスに対して出力する。
【0064】本実施形態では、このスプリット応答のた
めに必要なバス使用権の獲得のため、バスブリッジに下
位バスのレスポンスが返ってくるのを待たずに上位バス
のアービトレーションを行う。すなわち、本実施形態で
は、スプリット応答のための上位バスアービトレーショ
ンを、下位バスからのレスポンスを契機として開始する
のではなく、バスブリッジがキャッシュスヌープの結果
トランザクションのスプリット転送を決定した時点から
所定の時間間隔の後に開始する。本実施形態では、スプ
リット応答のための上位バスアービトレーションを、下
位バスからのレスポンスを待たずに開始することを先行
アービトレーションと呼ぶ。
めに必要なバス使用権の獲得のため、バスブリッジに下
位バスのレスポンスが返ってくるのを待たずに上位バス
のアービトレーションを行う。すなわち、本実施形態で
は、スプリット応答のための上位バスアービトレーショ
ンを、下位バスからのレスポンスを契機として開始する
のではなく、バスブリッジがキャッシュスヌープの結果
トランザクションのスプリット転送を決定した時点から
所定の時間間隔の後に開始する。本実施形態では、スプ
リット応答のための上位バスアービトレーションを、下
位バスからのレスポンスを待たずに開始することを先行
アービトレーションと呼ぶ。
【0065】この時間間隔は、上位バスアービトレーシ
ョンの開始が少なくとも下位バスからのレスポンスより
も早くなるように設定される。この時間間隔を小さくす
るほど、上位バスアービトレーションの完了のタイミン
グが早くなるため、バスブリッジからのスプリット応答
の発行のタイミングを早くすることができる。ただし、
この時間間隔をあまり小さく設定するとバスブリッジが
上位バスを無駄に占有する時間が生じてしまうので、下
位バスに対するスプリット転送からレスポンスまでに要
する時間と、上位バスのアービトレーションに要する時
間とを考慮して最適な時間間隔を設定する。
ョンの開始が少なくとも下位バスからのレスポンスより
も早くなるように設定される。この時間間隔を小さくす
るほど、上位バスアービトレーションの完了のタイミン
グが早くなるため、バスブリッジからのスプリット応答
の発行のタイミングを早くすることができる。ただし、
この時間間隔をあまり小さく設定するとバスブリッジが
上位バスを無駄に占有する時間が生じてしまうので、下
位バスに対するスプリット転送からレスポンスまでに要
する時間と、上位バスのアービトレーションに要する時
間とを考慮して最適な時間間隔を設定する。
【0066】なお、スプリット転送から上位バスアービ
トレーションの開始までの所定時間間隔の間は、各CP
Uは別のトランザクションを上位バスに発行することが
できる。
トレーションの開始までの所定時間間隔の間は、各CP
Uは別のトランザクションを上位バスに発行することが
できる。
【0067】このように、本実施形態によれば、スプリ
ット応答のための上位バスアービトレーションの完了タ
イミングを早くすることができるので、スプリット応答
の発行タイミングを早くすることができ、CPUが最初
にトランザクションを発行してからスプリット応答が完
了するまでの一連のトランザクション処理全体に要する
時間を短くすることができる。
ット応答のための上位バスアービトレーションの完了タ
イミングを早くすることができるので、スプリット応答
の発行タイミングを早くすることができ、CPUが最初
にトランザクションを発行してからスプリット応答が完
了するまでの一連のトランザクション処理全体に要する
時間を短くすることができる。
【0068】なお、この実施形態2において、スプリッ
ト転送の結果下位バスに発行されるトランザクションの
種類によって前記所定時間間隔を変えるようにすれば、
より効率的に先行アービトレーションを行うことができ
る。すなわち、下位バスのスヌープに要する時間は一般
にトランザクションの種類により異なってくるので、下
位バススヌープに要する時間によって上位バスアービト
レーションの開始時刻を変えることにより、各トランザ
クション種類ごとに最適なタイミングで上位バスアービ
トレーションを実行することが可能になる。
ト転送の結果下位バスに発行されるトランザクションの
種類によって前記所定時間間隔を変えるようにすれば、
より効率的に先行アービトレーションを行うことができ
る。すなわち、下位バスのスヌープに要する時間は一般
にトランザクションの種類により異なってくるので、下
位バススヌープに要する時間によって上位バスアービト
レーションの開始時刻を変えることにより、各トランザ
クション種類ごとに最適なタイミングで上位バスアービ
トレーションを実行することが可能になる。
【0069】実施形態1の変形例にて説明したように、
下位バスのトランザクションが上位バスへ転送される可
能性は、インバリデート系の方が非インバリデート系よ
りも高い。したがって、スプリット転送の結果下位バス
に発行されたトランザクションがインバリデート系であ
る場合は、他のバスブリッジがその上位バスに対してト
ランザクションを発行する可能性が高い。よって、イン
バリデート系トランザクションの場合、下位バスのスヌ
ープの結果は他のブリッジの上位バスにおける処理が終
わらないと決定されないので、図3における下位バスス
ヌープに要する時間は、非インバリデート系トランザク
ションに比べて長くなりがちである。
下位バスのトランザクションが上位バスへ転送される可
能性は、インバリデート系の方が非インバリデート系よ
りも高い。したがって、スプリット転送の結果下位バス
に発行されたトランザクションがインバリデート系であ
る場合は、他のバスブリッジがその上位バスに対してト
ランザクションを発行する可能性が高い。よって、イン
バリデート系トランザクションの場合、下位バスのスヌ
ープの結果は他のブリッジの上位バスにおける処理が終
わらないと決定されないので、図3における下位バスス
ヌープに要する時間は、非インバリデート系トランザク
ションに比べて長くなりがちである。
【0070】したがって、スプリット転送から上位バス
アービトレーションの開始までの所定時間間隔の値とし
て、インバリデート系トランザクションに対するものと
非インバリデート系トランザクションに対するものとで
別々の値を設定し、インバリデート系に対する値を非イ
ンバリデート系に対する値よりも大きくすることによ
り、各トランザクション種類に応じて適切なタイミング
でアービトレーションを行うことができる。なお、この
場合、バスブリッジでは、下位バスにスプリット転送さ
れるトランザクションの種類を常時検出する。
アービトレーションの開始までの所定時間間隔の値とし
て、インバリデート系トランザクションに対するものと
非インバリデート系トランザクションに対するものとで
別々の値を設定し、インバリデート系に対する値を非イ
ンバリデート系に対する値よりも大きくすることによ
り、各トランザクション種類に応じて適切なタイミング
でアービトレーションを行うことができる。なお、この
場合、バスブリッジでは、下位バスにスプリット転送さ
れるトランザクションの種類を常時検出する。
【0071】以上、本発明に係る階層バス制御方式の第
1及び第2の実施形態について説明したが、以上に説明
した各方式をソフトウエアからの構成制御で切り換える
ようにすれば柔軟な階層バスシステム構成が可能とな
る。すなわち、上記各実施形態の方式は具体的にはバス
ブリッジの機能として実現されるが、このバスブリッジ
を構成する際に前述の複数の先行アービトレーション方
式のための手段を組み込んでおき、これら各方式および
先行アービトレーションを禁止するモードを構成制御に
て切り換えるのである。このような切り換えによれば、
例えば、あるバスブリッジは上位バス・下位バスの両方
について常に先行アービトレーションを行い、別のバス
ブリッジは下位バスについてトランザクションのアドレ
スに基づく先行アービトレーションを行い、上位バスに
ついては先行アービトレーションを行わないなど、各バ
スブリッジごとにそれぞれ最適の先行アービトレーショ
ン方式を実行することができる。
1及び第2の実施形態について説明したが、以上に説明
した各方式をソフトウエアからの構成制御で切り換える
ようにすれば柔軟な階層バスシステム構成が可能とな
る。すなわち、上記各実施形態の方式は具体的にはバス
ブリッジの機能として実現されるが、このバスブリッジ
を構成する際に前述の複数の先行アービトレーション方
式のための手段を組み込んでおき、これら各方式および
先行アービトレーションを禁止するモードを構成制御に
て切り換えるのである。このような切り換えによれば、
例えば、あるバスブリッジは上位バス・下位バスの両方
について常に先行アービトレーションを行い、別のバス
ブリッジは下位バスについてトランザクションのアドレ
スに基づく先行アービトレーションを行い、上位バスに
ついては先行アービトレーションを行わないなど、各バ
スブリッジごとにそれぞれ最適の先行アービトレーショ
ン方式を実行することができる。
【0072】この切り換え方式において、先行アービト
レーションを禁止するモードに切り換え可能とするの
は、無駄な先行アービトレーションによるスループット
の低下を防止するためのである。
レーションを禁止するモードに切り換え可能とするの
は、無駄な先行アービトレーションによるスループット
の低下を防止するためのである。
【0073】この禁止モードの選択は、例えばバス負荷
の予測に基づいて行う。すなわち、上位バスについて
は、例えば、 TCPU ×(CPU個数)>しきい値 となる場合に禁止モードを選択する。ここで、TCPU は
CPUのバス占有率(単位時間当たりのCPUのバス占
有時間)であり、この値はCPUの性能から予測でき
る。またCPU個数は、バスブリッジ自体の上位バスに
接続されているCPUの個数である。
の予測に基づいて行う。すなわち、上位バスについて
は、例えば、 TCPU ×(CPU個数)>しきい値 となる場合に禁止モードを選択する。ここで、TCPU は
CPUのバス占有率(単位時間当たりのCPUのバス占
有時間)であり、この値はCPUの性能から予測でき
る。またCPU個数は、バスブリッジ自体の上位バスに
接続されているCPUの個数である。
【0074】また、下位バスについては、例えば、 TCPU ×(CPU個数)+TI/O ×(I/O個数)>し
きい値 となる場合に禁止モードを選択する。ここで、TI/O は
I/O装置のバス占有率(単位時間当たりのI/O装置
のバス占有時間)であり、この値はI/O装置の性能か
ら予測できる。なお、この式におけるCPU個数、I/
O個数は階層バスシステム全体についての個数である。
きい値 となる場合に禁止モードを選択する。ここで、TI/O は
I/O装置のバス占有率(単位時間当たりのI/O装置
のバス占有時間)であり、この値はI/O装置の性能か
ら予測できる。なお、この式におけるCPU個数、I/
O個数は階層バスシステム全体についての個数である。
【0075】このように、各バスブリッジごとに、バス
負荷が大きくなると予測されるバスについては先行アー
ビトレーションを禁止することにより、バスシステムの
構成に応じてスループットとレイテンシを最適化するこ
とができる。
負荷が大きくなると予測されるバスについては先行アー
ビトレーションを禁止することにより、バスシステムの
構成に応じてスループットとレイテンシを最適化するこ
とができる。
【0076】また、バスブリッジにて上位バス及び下位
バスのバス負荷を監視し、その監視結果に基づき動的に
先行アービトレーションの許可・禁止を切り換えること
もできる。すなわち、バスブリッジにバス負荷を監視す
る構成を設け、各バスのバス負荷が所定のしきい値より
大きくなった場合に先行アービトレーションを禁止す
る。ここで、バス負荷は、例えば一定期間中に発生した
バス要求の数から求める。この動的な先行アービトレー
ション制御によれば、階層バスシステムのスループット
の低下を防止することができる。
バスのバス負荷を監視し、その監視結果に基づき動的に
先行アービトレーションの許可・禁止を切り換えること
もできる。すなわち、バスブリッジにバス負荷を監視す
る構成を設け、各バスのバス負荷が所定のしきい値より
大きくなった場合に先行アービトレーションを禁止す
る。ここで、バス負荷は、例えば一定期間中に発生した
バス要求の数から求める。この動的な先行アービトレー
ション制御によれば、階層バスシステムのスループット
の低下を防止することができる。
【0077】実施形態3.図4は、本発明の実施形態3
に係るバスブリッジの要部構成を示すブロック図であ
る。実際のバスブリッジには様々な回路が含まれるが、
図4にはそのうちの先行アービトレーションに関する構
成のみを示している。なお、図4は、上位バスからのト
ランザクションについての処理系のみを示している。
に係るバスブリッジの要部構成を示すブロック図であ
る。実際のバスブリッジには様々な回路が含まれるが、
図4にはそのうちの先行アービトレーションに関する構
成のみを示している。なお、図4は、上位バスからのト
ランザクションについての処理系のみを示している。
【0078】この例では、アドレスは32ビットで指定
され、そのうちの上位12ビットはタグ(Tag )、その
次の15ビットはインデックス(Index )として用いら
れ、下位の5ビットがオフセット(Offset)となってい
る。すなわち、この例では、4Gバイトのアドレス空間
とブリッジキャッシュとは1キャッシュブロック=32
バイト単位でマッピングされており、ブリッジキャッシ
ュは1015ブロックすなわち1Mバイトの容量を有して
いる。なお、ブリッジキャッシュは、1Mバイトのデー
タを格納するキャッシュRAMと、キャッシュRAMの
各ブロックに格納されているデータのアドレスをインデ
ックスとタグとの対応関係の形で記憶するタグRAMと
から構成されているが、図4ではそのうちタグRAMの
みが図示されている。なお、ブリッジキャッシュはこの
ように大容量であるため、バスブリッジ本体とは別のチ
ップとして形成されている。
され、そのうちの上位12ビットはタグ(Tag )、その
次の15ビットはインデックス(Index )として用いら
れ、下位の5ビットがオフセット(Offset)となってい
る。すなわち、この例では、4Gバイトのアドレス空間
とブリッジキャッシュとは1キャッシュブロック=32
バイト単位でマッピングされており、ブリッジキャッシ
ュは1015ブロックすなわち1Mバイトの容量を有して
いる。なお、ブリッジキャッシュは、1Mバイトのデー
タを格納するキャッシュRAMと、キャッシュRAMの
各ブロックに格納されているデータのアドレスをインデ
ックスとタグとの対応関係の形で記憶するタグRAMと
から構成されているが、図4ではそのうちタグRAMの
みが図示されている。なお、ブリッジキャッシュはこの
ように大容量であるため、バスブリッジ本体とは別のチ
ップとして形成されている。
【0079】図4に示す構成は、通常のキャッシュ検索
(スヌープ)のための構成と、先行アービトレーション
のための構成とからなっている。
(スヌープ)のための構成と、先行アービトレーション
のための構成とからなっている。
【0080】通常のキャッシュスヌープは、タグリード
回路32、タグRAM50及びミスヒット判定回路38
によって行われる。すなわち、上位バスのトランザクシ
ョンがバスブリッジ30に入力されると、トランザクシ
ョンのアドレスのインデックス部分は、タグリード回路
32に入力される。タグリード回路32は、タグRAM
50から、このインデックスに対応するタグを読み出
す。タグRAM50から出力されたタグは、ミスヒット
判定回路38にて実際のアドレスのタグと比較される。
両者が一致した場合は、キャッシュRAM内にトランザ
クションの要求データが存在しており、この場合バスブ
リッジは、図示しないキャッシュコントローラを介して
キャッシュRAMから所望データを読み出し、上位バス
を介して要求元のCPUに返送する。この場合、下位バ
スにはトランザクションが転送されない。これに対して
両者が不一致となった場合には、ミスヒット判定回路3
8はミスヒット信号を発し、このミスヒット信号がオア
回路42を介してアービトレーション回路44に入力さ
れる。この場合、アービトレーション回路44は、下位
バスに対してアービトレーション信号を発し、下位バス
のアービトレーションを行う。その後、転送すべきトラ
ンザクションが下位バスに発行される。
回路32、タグRAM50及びミスヒット判定回路38
によって行われる。すなわち、上位バスのトランザクシ
ョンがバスブリッジ30に入力されると、トランザクシ
ョンのアドレスのインデックス部分は、タグリード回路
32に入力される。タグリード回路32は、タグRAM
50から、このインデックスに対応するタグを読み出
す。タグRAM50から出力されたタグは、ミスヒット
判定回路38にて実際のアドレスのタグと比較される。
両者が一致した場合は、キャッシュRAM内にトランザ
クションの要求データが存在しており、この場合バスブ
リッジは、図示しないキャッシュコントローラを介して
キャッシュRAMから所望データを読み出し、上位バス
を介して要求元のCPUに返送する。この場合、下位バ
スにはトランザクションが転送されない。これに対して
両者が不一致となった場合には、ミスヒット判定回路3
8はミスヒット信号を発し、このミスヒット信号がオア
回路42を介してアービトレーション回路44に入力さ
れる。この場合、アービトレーション回路44は、下位
バスに対してアービトレーション信号を発し、下位バス
のアービトレーションを行う。その後、転送すべきトラ
ンザクションが下位バスに発行される。
【0081】以上が、通常のキャッシュスヌープの流れ
であるが、本実施形態においてブリッジキャッシュは大
容量でバスブリッジ30とは別チップとして構成されて
いるため、タグRAM50の検索には比較的長時間を要
する。
であるが、本実施形態においてブリッジキャッシュは大
容量でバスブリッジ30とは別チップとして構成されて
いるため、タグRAM50の検索には比較的長時間を要
する。
【0082】一方、先行アービトレーションのための構
成は、圧縮タグテーブル34と、タグ圧縮回路36及び
ミスヒット判定回路40とからなる。圧縮タグテーブル
34には、タグRAM50に格納されたインデックスと
タグの対応情報を圧縮した情報が格納されている。すな
わち、圧縮タグテーブル34には、各インデックスごと
に、対応するタグを所定のデータ圧縮法で圧縮した値
(圧縮タグと呼ぶ)が格納される。データ圧縮法として
は、例えばタグの全ビットの排他的論理和をとるなどの
方法を用いる。圧縮タグテーブル34は、タグRAM5
0に比べてはるかに小さいサイズで済むため、バスブリ
ッジ30のチップ内に搭載することが可能であり、高速
アクセスが可能である。圧縮タグテーブル34は、トラ
ンザクションのアドレスのインデックスが与えられる
と、そのインデックスに対応する圧縮タグを出力する。
一方、タグ圧縮回路36は、トランザクションアドレス
のタグを圧縮タグテーブル34と同様のデータ圧縮法で
圧縮する。
成は、圧縮タグテーブル34と、タグ圧縮回路36及び
ミスヒット判定回路40とからなる。圧縮タグテーブル
34には、タグRAM50に格納されたインデックスと
タグの対応情報を圧縮した情報が格納されている。すな
わち、圧縮タグテーブル34には、各インデックスごと
に、対応するタグを所定のデータ圧縮法で圧縮した値
(圧縮タグと呼ぶ)が格納される。データ圧縮法として
は、例えばタグの全ビットの排他的論理和をとるなどの
方法を用いる。圧縮タグテーブル34は、タグRAM5
0に比べてはるかに小さいサイズで済むため、バスブリ
ッジ30のチップ内に搭載することが可能であり、高速
アクセスが可能である。圧縮タグテーブル34は、トラ
ンザクションのアドレスのインデックスが与えられる
と、そのインデックスに対応する圧縮タグを出力する。
一方、タグ圧縮回路36は、トランザクションアドレス
のタグを圧縮タグテーブル34と同様のデータ圧縮法で
圧縮する。
【0083】ミスヒット判定回路40は、圧縮タグテー
ブル34の出力とタグ圧縮回路36の出力とを比較す
る。ここで、圧縮タグ同士が不一致の場合はもともとの
タグ同士も必ず不一致になるので、ミスヒット判定回路
40での比較結果が不一致となる場合は、当該トランザ
クションは必ず下位バスに転送される。そこで、ミスヒ
ット判定回路40は、両入力の値が不一致であったとき
にミスヒット信号を出力することにより、アービトレー
ション回路44に対して下位バスのアービトレーション
を指示する。なお、このミスヒット信号は、オア回路4
2を介してアービトレーション回路44に入力される。
ブル34の出力とタグ圧縮回路36の出力とを比較す
る。ここで、圧縮タグ同士が不一致の場合はもともとの
タグ同士も必ず不一致になるので、ミスヒット判定回路
40での比較結果が不一致となる場合は、当該トランザ
クションは必ず下位バスに転送される。そこで、ミスヒ
ット判定回路40は、両入力の値が不一致であったとき
にミスヒット信号を出力することにより、アービトレー
ション回路44に対して下位バスのアービトレーション
を指示する。なお、このミスヒット信号は、オア回路4
2を介してアービトレーション回路44に入力される。
【0084】ここで、圧縮タグテーブル34の検索はタ
グRAM50の検索よりも短時間で済むため、ミスヒッ
ト判定回路40のミスヒット信号はミスヒット判定回路
38のミスヒット信号よりも早く出力される。したがっ
て、本構成によれば、圧縮タグ同士の比較によりトラン
ザクション転送が確実に起こる場合を予め検知すること
ができるので、キャッシュスヌープ完了前に下位バスの
先行アービトレーションを開始することができる。
グRAM50の検索よりも短時間で済むため、ミスヒッ
ト判定回路40のミスヒット信号はミスヒット判定回路
38のミスヒット信号よりも早く出力される。したがっ
て、本構成によれば、圧縮タグ同士の比較によりトラン
ザクション転送が確実に起こる場合を予め検知すること
ができるので、キャッシュスヌープ完了前に下位バスの
先行アービトレーションを開始することができる。
【0085】なお、図4の構成では、ミスヒット判定回
路40からミスヒット信号が出力される場合には必ずト
ランザクション転送が起こるので、無駄な先行アービト
レーションは生じない。
路40からミスヒット信号が出力される場合には必ずト
ランザクション転送が起こるので、無駄な先行アービト
レーションは生じない。
【図1】 実施形態1におけるトランザクション転送の
ための先行アービトレーションを説明するための図であ
る。
ための先行アービトレーションを説明するための図であ
る。
【図2】 スプリット応答のための先行アービトレーシ
ョンを説明するための図である。
ョンを説明するための図である。
【図3】 実施形態2におけるスプリット応答のための
先行アービトレーションを説明するための図である。
先行アービトレーションを説明するための図である。
【図4】 実施形態3に係るバスブリッジの要部構成を
示すブロック図である。
示すブロック図である。
【図5】 階層バスシステムの構成を示す説明図であ
る。
る。
【図6】 従来の上位バスから下位バスへのトランザク
ションの転送処理を説明するための図である。
ションの転送処理を説明するための図である。
10 CPU、12 上位バス、14 バスブリッジ、
16 キャッシュ、18 下位バス、20 メインメモ
リ、22 I/O装置。
16 キャッシュ、18 下位バス、20 メインメモ
リ、22 I/O装置。
Claims (10)
- 【請求項1】 複数のプロセッサを上位バスに接続し、
複数の上位バスに対してキャッシュを有するバスブリッ
ジをそれぞれ設け、各上位バスを各々のバスブリッジを
介して下位バスに接続し、この下位バスをメインメモリ
に接続した階層バスシステムにおいて、 前記バスブリッジは、上位バス又は下位バスの一方にト
ランザクションが発行されたときに、前記キャッシュを
スヌープして他方のバスにトランザクションを転送する
か否かを決定する前に、他方のバスのアービトレーショ
ンを先行して行うことを特徴とする階層バス制御方式。 - 【請求項2】 請求項1記載の階層バス制御方式におい
て、 前記バスブリッジは前記一方のバスに発行されたトラン
ザクションの種類又はアドレスに基づきそのトランザク
ションが前記他方のバスに転送される可能性を判定し、
トランザクションが転送される可能性が高いと判定され
た場合にのみ、前記他方のバスに対する前記先行アービ
トレーションを行うことを特徴とする階層バス制御方
式。 - 【請求項3】 請求項2記載の階層バス制御方式におい
て、 前記バスブリッジは、上位バスから下位バスへトランザ
クションを転送したときに当該トランザクションのアド
レスを記憶し、このトランザクションの後に、前記記憶
されたアドレスが含まれるキャッシュブロックに連続し
たキャッシュブロック内のアドレスに対するトランザク
ションが上位バスに発行された場合に、後者のトランザ
クションは下位バスに転送される可能性が高いと判定す
ることを特徴とする階層バス制御方式。 - 【請求項4】 請求項2記載の階層バス制御方式におい
て、 前記バスブリッジは、下位バスにインバリデート(In
validate)系トランザクションが発行された場
合には、そのトランザクションは上位バスに転送される
可能性が高いと判定することを特徴とする階層バス制御
方式。 - 【請求項5】 スプリット対応可能な複数のプロセッサ
を上位バスに接続し、複数の前記上位バスに対してキャ
ッシュを有するバスブリッジをそれぞれ設け、前記各上
位バスを各々のバスブリッジを介して下位バスに接続
し、この下位バスをメインメモリに接続した階層バスシ
ステムにおいて、 前記バスブリッジは、上位バスのトランザクションをス
プリットして下位バスへ転送した場合には、当該転送し
たトランザクションに対する下位バスからの応答を待た
ずに、前記転送処理から所定の時間間隔の後に上位バス
に対するアービトレーションを先行して行うことを特徴
とする階層バス制御方式。 - 【請求項6】 請求項5記載の階層バス制御方式におい
て、 前記バスブリッジは、上位バスから下位バスへ転送した
トランザクションの種類を検出し、その検出結果がイン
バリデート(Invalidate)系であった場合に
は、検出結果が非インバリデート系であった場合よりも
上位バスのアービトレーションを行うまでの前記時間間
隔を大きくすることを特徴とする階層バス制御方式。 - 【請求項7】 請求項1〜6のいずれかに記載の階層バ
ス制御方式において、 前記バスブリッジに接続されたプロセッサのバス占有率
の総和が所定のしきい値を越える場合は前記上位バスに
対する前記先行アービトレーションを禁止することを特
徴とする階層バス制御方式。 - 【請求項8】 請求項1〜6のいずれかに記載の階層バ
ス制御方式において、 階層バスシステムに含まれるプロセッサ及びI/O装置
のバス占有率の総和が所定のしきい値を越える場合は前
記下位バスに対する前記先行アービトレーションを禁止
することを特徴とする階層バス制御方式。 - 【請求項9】 請求項1〜6のいずれかに記載の階層バ
ス制御方式において、 前記バスブリッジは、当該バスブリッジに接続された上
位バス及び下位バスのバス負荷をそれぞれ監視し、各バ
スのバス負荷が所定のしきい値を越えた場合に、しきい
値を越えたバスについては前記先行アービトレーション
を禁止することを特徴とする階層バス制御方式。 - 【請求項10】 複数のプロセッサが接続された上位バ
スとメインメモリが接続された下位バスとを接続するバ
スブリッジであって、タグ情報を格納したタグメモリと
データを格納したキャッシュメモリとから構成されるキ
ャッシュユニットに接続され、一方のバスに発行された
トランザクションのアドレスに含まれるインデックスか
ら前記タグメモリを検索し、検索の結果得られたタグが
前記トランザクションアドレスに含まれるタグと一致し
なかった場合に前記トランザクションアドレスがキャッ
シュメモリに含まれないと判定し、他方のバスに前記ト
ランザクションを転送するバスブリッジにおいて、 前記タグメモリの情報を所定の方式で圧縮したテーブル
を格納した圧縮タグメモリと、 前記一方のバスに発行されたトランザクションのアドレ
スからタグを抽出し前記所定の方式で圧縮するタグ圧縮
手段と、 前記一方のバスに発行されたトランザクションのアドレ
スからインデックスを抽出し、そのインデックスに対応
する圧縮されたタグ情報を前記圧縮タグメモリから読み
出す圧縮タグ検出手段と、 前記タグ圧縮手段の出力と前記圧縮タグ検出手段の出力
とを比較する比較手段と、 を有し、前記比較手段による比較の結果、前記タグ圧縮
手段の出力と前記圧縮タグ検出手段の出力とが不一致の
ときには、前記タグメモリの検索の終了を待たずに前記
他方のバスに対してアービトレーション信号を出力する
ことを特徴とするバスブリッジ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7287372A JPH09128325A (ja) | 1995-11-06 | 1995-11-06 | 階層バス制御方式及びバスブリッジ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7287372A JPH09128325A (ja) | 1995-11-06 | 1995-11-06 | 階層バス制御方式及びバスブリッジ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09128325A true JPH09128325A (ja) | 1997-05-16 |
Family
ID=17716517
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7287372A Pending JPH09128325A (ja) | 1995-11-06 | 1995-11-06 | 階層バス制御方式及びバスブリッジ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09128325A (ja) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006053857A (ja) * | 2004-08-16 | 2006-02-23 | Fujitsu Ltd | システム制御装置、投機フェッチ方法および情報処理装置 |
| KR100596947B1 (ko) * | 1998-07-31 | 2006-07-07 | 프리스케일 세미컨덕터, 인크. | 데이터 처리 시스템의 트랜잭션 수행 방법 및 장치 |
| US7093078B2 (en) | 1999-12-09 | 2006-08-15 | Nec Corporation | Data access method in the network system and the network system |
| JP2008159057A (ja) * | 2006-12-22 | 2008-07-10 | Intel Corp | ダイナミック・ランダムアクセスメモリからスタティック・ランダムアクセスメモリへのプリフェッチ |
| JP2008176699A (ja) * | 2007-01-22 | 2008-07-31 | Renesas Technology Corp | マルチプロセッサ装置 |
| JP2010140362A (ja) * | 2008-12-12 | 2010-06-24 | Nec Corp | 分散キャッシュシステム、方法、プログラム、及び計算ノード |
| US8601192B2 (en) | 2009-06-08 | 2013-12-03 | Panasonic Corporation | Arbitration device, arbitration system, arbitration method, semiconductor integrated circuit, and image processing device |
| US9747231B2 (en) | 2012-03-30 | 2017-08-29 | Nec Corporation | Bus access arbiter and method of bus arbitration |
| WO2024185323A1 (ja) * | 2023-03-07 | 2024-09-12 | 富士通株式会社 | プロセッサ |
-
1995
- 1995-11-06 JP JP7287372A patent/JPH09128325A/ja active Pending
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100596947B1 (ko) * | 1998-07-31 | 2006-07-07 | 프리스케일 세미컨덕터, 인크. | 데이터 처리 시스템의 트랜잭션 수행 방법 및 장치 |
| US7093078B2 (en) | 1999-12-09 | 2006-08-15 | Nec Corporation | Data access method in the network system and the network system |
| JP2006053857A (ja) * | 2004-08-16 | 2006-02-23 | Fujitsu Ltd | システム制御装置、投機フェッチ方法および情報処理装置 |
| JP2008159057A (ja) * | 2006-12-22 | 2008-07-10 | Intel Corp | ダイナミック・ランダムアクセスメモリからスタティック・ランダムアクセスメモリへのプリフェッチ |
| JP2008176699A (ja) * | 2007-01-22 | 2008-07-31 | Renesas Technology Corp | マルチプロセッサ装置 |
| JP2010140362A (ja) * | 2008-12-12 | 2010-06-24 | Nec Corp | 分散キャッシュシステム、方法、プログラム、及び計算ノード |
| US8601192B2 (en) | 2009-06-08 | 2013-12-03 | Panasonic Corporation | Arbitration device, arbitration system, arbitration method, semiconductor integrated circuit, and image processing device |
| US9747231B2 (en) | 2012-03-30 | 2017-08-29 | Nec Corporation | Bus access arbiter and method of bus arbitration |
| WO2024185323A1 (ja) * | 2023-03-07 | 2024-09-12 | 富士通株式会社 | プロセッサ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5426765A (en) | Multiprocessor cache abitration | |
| US6912612B2 (en) | Shared bypass bus structure | |
| US20030115422A1 (en) | System and method for managing data in an I/O cache | |
| US6219745B1 (en) | System and method for entering a stream read buffer mode to store non-cacheable or block data | |
| JP2000250813A (ja) | I/oキャッシュ・メモリにおけるデータ管理方法 | |
| JP3071752B2 (ja) | ブリッジ方法、バスブリッジ及びマルチプロセッサシステム | |
| KR19980079433A (ko) | 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템 | |
| JPH10154100A (ja) | 情報処理システム及び装置及びその制御方法 | |
| JP2002073415A (ja) | 遅延無効化コンピュータキャッシュシステム | |
| CN101617298B (zh) | 用于dma、任务终止和同步操作的缓存一致保持 | |
| US5987544A (en) | System interface protocol with optional module cache | |
| JP2001147854A (ja) | 処理システム、書き込みバッファユニット内の格納の最適化方法、並びに、データの格納及び分配方法 | |
| JPH06222993A (ja) | キャッシュメモリシステムおよびそれを実現するための方法 | |
| WO2000038077A1 (fr) | Antememoire et procede de commande | |
| JPH09128325A (ja) | 階層バス制御方式及びバスブリッジ | |
| US7330940B2 (en) | Method and system for cache utilization by limiting prefetch requests | |
| US6862646B2 (en) | Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain | |
| JPH03163640A (ja) | マルチプロセッサシステムおよびそれに用いるキャッシュメモリ | |
| US5809534A (en) | Performing a write cycle to memory in a multi-processor system | |
| JPH06222994A (ja) | キャッシュメモリシステム | |
| JP2976867B2 (ja) | 入出力バッファ装置及びその管理方法 | |
| US7120758B2 (en) | Technique for improving processor performance | |
| JPH06282528A (ja) | データ転送方法及びそのシステム | |
| JP2002268943A (ja) | キャッシュメモリ装置 | |
| JPH0744459A (ja) | キャッシュ制御方法およびキャッシュ制御装置 |