JPH09128325A - Hierarchical bus control system and bus bridge - Google Patents

Hierarchical bus control system and bus bridge

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
Application number
JP7287372A
Other languages
Japanese (ja)
Inventor
Toshihisa Kamemaru
敏久 亀丸
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP7287372A priority Critical patent/JPH09128325A/en
Publication of JPH09128325A publication Critical patent/JPH09128325A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce the latency at the time of transferring a transaction from one bus to the other bus by snooping a cache when the transaction is issued to one of a high-order bus or a low-order bus and precedingly executing the arbitration of the other bus before deciding whether or not the transaction is transferred to the other bus. SOLUTION: When the transaction of a high-order bus is inputted to a bus bridge 30, the index part of an address in the transaction is inputted to a tag- read circuit 32 and a tag corresponding to the index is read from a tag RAM 50. The tag is compared with the tag of the actual address in a mis-hit judging circuit 38. At the time of non-coindidence, the mis-hit judging circuit 38 issues a mis-hit signal, it is inputted to an arbitration circuit 44 with an OR circuit 112 and the arbitration of a low-order bus is executed. After that, the transaction to be transferred is issued to the low-order bus.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、階層バスシステム
において、一方のバス(上位バス又は下位バス)から他
方のバス(下位バス又は上位バス)へトランザクション
を転送する際のバスの制御方式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a bus control method for transferring a transaction from one bus (upper bus or lower bus) to another bus (lower bus or higher bus) in a hierarchical bus system.

【0002】[0002]

【従来の技術】複数のCPUをバスを介してメインメモ
リやI/O装置に共通接続し、他のCPUやメインメモ
リ等とデータの授受を行うバス共有型のマルチプロセッ
サシステムが普及している。このマルチプロセッサシス
テムにおいて、演算能力の向上を狙って並列CPU数を
増やすと、バスへの負荷の増大するため結局スループッ
トやレイテンシが悪化し、CPU数の増加に見合うほど
トータルの処理能力は向上しない。
2. Description of the Related Art A bus sharing type multiprocessor system in which a plurality of CPUs are commonly connected to a main memory or an I / O device via a bus and data is transmitted and received to and from other CPUs, main memories, and the like is prevalent. . In this multiprocessor system, if the number of parallel CPUs is increased in order to improve the computing power, the load on the bus is increased, so that the throughput and the latency are deteriorated, and the total processing power is not improved enough to meet the increase in the number of CPUs. .

【0003】これに対し、本出願人は、特願平7−28
5829号にて、並列するCPUを小数ずつそれぞれ別
々の上位バスに接続し、各上位バスに対してそれぞれキ
ャッシュメモリを有するバスブリッジを設け、各上位バ
スを各バスブリッジを介して、メインメモリ等が接続さ
れる下位バスに接続する階層構成のバスシステムを提案
した。図5は、このような階層バスシステムの概略構成
を示す図であり、CPU10は比較的小数ずつ1つの上
位バス12に接続されており、各上位バスはバスブリッ
ジ14を介してメインメモリ20に接続された下位バス
18に接続されている。各バスブリッジ14にはキャッ
シュ16が接続されており、このキャッシュ16は上位
のCPU10にて共有される。
On the other hand, the present applicant has filed Japanese Patent Application No. 7-28.
No. 5829, parallel CPUs are connected to different upper buses in small numbers, and a bus bridge having a cache memory is provided for each upper bus, and each upper bus is connected to the main memory via each bus bridge. We proposed a hierarchical bus system that connects to a lower-level bus connected to the bus. FIG. 5 is a diagram showing a schematic configuration of such a hierarchical bus system. The CPU 10 is connected to one upper bus 12 in a relatively small number, and each upper bus is connected to the main memory 20 via the bus bridge 14. It is connected to the connected lower bus 18. A cache 16 is connected to each bus bridge 14, and the cache 16 is shared by the upper CPU 10.

【0004】このような階層バスシステムによれば、C
PUの総数が同じ場合、階層化しない場合に比べて上位
バスに接続されるCPUの数が少なくなるので、上位バ
スの負荷が小さくなる。また、バスブリッジにキャッシ
ュを設けたことにより、上位バスのトランザクションの
要求データがバスブリッジのキャッシュにある場合には
メインメモリまでデータを読みにいく必要がないので下
位バスの負荷も大きいものにはならない。したがって、
この階層構成のマルチプロセッサシステムによれば、多
数のCPUを効率的に動作させることが可能になる。
According to such a hierarchical bus system, C
When the total number of PUs is the same, the number of CPUs connected to the upper bus is smaller than that in the case where no hierarchization is performed, so the load on the upper bus is reduced. Also, by providing a cache on the bus bridge, it is not necessary to read the data to the main memory when the requested data for the transaction on the upper bus is in the cache on the bus bridge. I won't. Therefore,
According to the multiprocessor system having the hierarchical structure, it becomes possible to efficiently operate a large number of CPUs.

【0005】[0005]

【発明が解決しようとする課題】このような階層バスシ
ステムにおいて、上位バスあるいは下位バスにトランザ
クションが発行された場合、バスブリッジはキャッシュ
を検索(スヌープ)し、トランザクションを下位バスあ
るいは上位バスに転送する必要がないか判定する。例え
ば、一方のバスからのトランザクションの要求データが
キャッシュにある場合にはバスブリッジはトランザクシ
ョンの転送を行わず、キャッシュにない場合には他方の
バスに対してトランザクションを転送する。
In such a hierarchical bus system, when a transaction is issued to the upper bus or the lower bus, the bus bridge searches (snoops) the cache and transfers the transaction to the lower bus or the upper bus. Determine if it is not necessary to For example, if the requested data for a transaction from one bus is in the cache, the bus bridge does not transfer the transaction, and if it is not in the cache, the bus bridge transfers the transaction to the other bus.

【0006】このようにして一方のバスから他方のバス
へトランザクションを転送することが決定された場合、
バスブリッジは他方のバスのバス使用権を得るためにア
ービトレーションを行う必要がある。従来、バスブリッ
ジからバスへのアービトレーションは、キャッシュのス
ヌープが完了しトランザクションを転送することが決定
されてから行っていた。
In this way, when it is decided to transfer a transaction from one bus to the other,
The bus bridge needs to arbitrate for the right to use the other bus. Conventionally, arbitration from the bus bridge to the bus has been performed after the snoop of the cache is completed and it is decided to transfer the transaction.

【0007】図6は、上位バスに発行されたトランザク
ションが下位バスに転送されるまでの従来の階層バスシ
ステムの処理の流れを示す説明図である。図6に示すよ
うに、CPUは、上位バスにトランザクションを発行し
ようとする場合、まず上位バスのアービトレーションを
行い、これによってバス使用権を獲得する。その後、C
PUは上位バスにトランザクションを発行する。この上
位バスに接続されているバスブリッジは、このトランザ
クションを検出し、このトランザクションのアドレス
(トランザクションが要求するデータのアドレス)を有
していないか、自らのキャッシュをスヌープする。そし
て、バスブリッジは、このスヌープの結果、すなわちバ
スブリッジ・キャッシュがトランザクションが要求する
データを有しているか否か等の情報に基づき、バスブリ
ッジは上位バスのトランザクションを下位バスに転送す
るか否か判定する。そして、この判定においてトランザ
クションを下位バスに転送すべきであると判定された場
合に、バスブリッジは、下位バスに対してバス要求信号
を発して下位バスのアービトレーションを行い、バス使
用権を獲得した後に下位バスに対して転送すべきトラン
ザクションを発行していた。
FIG. 6 is an explanatory diagram showing the flow of processing in the conventional hierarchical bus system until the transaction issued to the upper bus is transferred to the lower bus. As shown in FIG. 6, when issuing a transaction to the upper bus, the CPU first arbitrates the upper bus and thereby acquires the bus use right. Then, C
The PU issues a transaction to the upper bus. The bus bridge connected to this upper bus detects this transaction and either does not have the address of this transaction (the address of the data requested by the transaction) or snoops its cache. Then, the bus bridge determines whether the bus bridge transfers the transaction of the upper bus to the lower bus based on the result of this snoop, that is, whether the bus bridge cache has data required by the transaction. Determine whether. Then, when it is determined in this determination that the transaction should be transferred to the lower bus, the bus bridge issues a bus request signal to the lower bus to arbitrate the lower bus and acquire the bus use right. A transaction to be transferred to the lower bus was issued later.

【0008】このように従来の階層バスシステムでは、
バスブリッジキャッシュのスヌープにより一方のバスか
ら他方のバスへトランザクションを転送することが決定
されて初めて転送先バスに対するアービトレーションを
行っていた。一方、バスブリッジのキャッシュは、上位
バスに接続される複数のCPUに対応するため比較的大
容量すなわち比較的低速のものを用いる必要があるの
で、このキャッシュをスヌープするのにはある程度時間
が掛る。このため、従来の階層バスシステムには、バス
ブリッジを介してトランザクションの転送を行う度に、
処理の遅れ(レイテンシ)が生じるという問題があっ
た。
As described above, in the conventional hierarchical bus system,
The arbitration for the transfer destination bus was performed only after it was decided to transfer the transaction from one bus to the other bus by the snoop of the bus bridge cache. On the other hand, the cache of the bus bridge needs to have a relatively large capacity, that is, a relatively low speed in order to support a plurality of CPUs connected to the upper bus, so it takes some time to snoop this cache. . Therefore, in the conventional hierarchical bus system, every time a transaction is transferred via the bus bridge,
There is a problem that processing delay occurs.

【0009】本発明は、このような問題を解決するため
になされたものであり、階層バスシステムにおいて、上
位バスから下位バスへ又は下位バスから上位バスへトラ
ンザクションを転送する際のレイテンシを少なくする階
層バス制御方式を提供することを目的とする。
The present invention has been made in order to solve such a problem, and in a hierarchical bus system, reduces latency in transferring a transaction from an upper bus to a lower bus or from a lower bus to an upper bus. It is an object to provide a hierarchical bus control method.

【0010】[0010]

【課題を解決するための手段】前述の目的を達成するた
めに、本発明に係る階層バス制御方式は、複数のプロセ
ッサを上位バスに接続し、複数の上位バスに対してキャ
ッシュを有するバスブリッジをそれぞれ設け、各上位バ
スを各々のバスブリッジを介して下位バスに接続し、こ
の下位バスをメインメモリに接続した階層バスシステム
において、前記バスブリッジは、上位バス又は下位バス
の一方にトランザクションが発行されたときに、前記キ
ャッシュをスヌープして他方のバスにトランザクション
を転送するか否かを決定する前に、他方のバスのアービ
トレーションを先行して行うことを特徴とする。
In order to achieve the above object, a hierarchical bus control system according to the present invention is a bus bridge in which a plurality of processors are connected to an upper bus and a cache is provided for the plurality of upper buses. In a hierarchical bus system in which each upper bus is connected to a lower bus via each bus bridge and the lower bus is connected to the main memory, the bus bridge has a transaction on one of the upper bus and the lower bus. When issued, before deciding whether to snoop the cache and transfer the transaction to the other bus, the other bus is arbitrated in advance.

【0011】この構成によれば、一方のバスにトランザ
クションが発行されると、バスブリッジは、比較的時間
の掛るバスブリッジキャッシュのスヌープが完了する前
から他方のバスのアービトレーションを行うので、他方
バスのアービトレーションの完了するタイミングが従来
に比べて早くなる。したがって、キャッシュスヌープが
終わって他方バスへのトランザクション転送が決定され
た場合には、バスブリッジは従来より早く他方バスへト
ランザクションを発行することができるので、一方のバ
スから他方のバスへトランザクションを転送する際のレ
イテンシを少なくすることができる。
According to this structure, when a transaction is issued to one bus, the bus bridge arbitrates the other bus before the snooping of the bus bridge cache, which takes a relatively long time, is completed. The timing of completing the arbitration will be faster than before. Therefore, when the cache snoop ends and the transaction transfer to the other bus is decided, the bus bridge can issue the transaction to the other bus earlier than before, so that the transaction is transferred from one bus to the other bus. The latency when doing can be reduced.

【0012】なお、この構成及び以下に示す構成おい
て、バスブリッジが一方のバスから他方のバスへトラン
ザクションを「転送する」とは、バスブリッジが、一方
のバスから受け取ったトランザクションに対して、当該
トランザクションの種類や前記キャッシュの状態等に基
づいて決定したトランザクションを他方のバスに発行す
ることを意味する。したがって、バスブリッジが他方の
バスに発行するトランザクションが、バスブリッジが一
方のバスから受け取ったトランザクションと同じ種類の
トランザクションになるとは必ずしも限らない。
[0012] In this configuration and the configuration described below, the bus bridge "transfers" a transaction from one bus to the other bus means that the bus bridge receives a transaction from one bus. It means issuing a transaction determined on the basis of the type of the transaction and the state of the cache to the other bus. Therefore, the transaction issued by the bus bridge to the other bus is not always the same type of transaction as the transaction received from the one bus by the bus bridge.

【0013】また、本発明の別の構成は、前記構成にお
いて、前記バスブリッジが、前記一方のバスに発行され
たトランザクションの種類又はアドレスに基づきそのト
ランザクションが前記他方のバスに転送される可能性を
判定し、トランザクションが転送される可能性が高いと
判定された場合にのみ、前記他方のバスに対する先行ア
ービトレーション(すなわち、キャッシュをスヌープし
て他方のバスにトランザクションを転送するか否かを決
定する前に、先行して行うアービトレーション)を行う
ことを特徴とする。
Further, in another configuration of the present invention, in the above configuration, the bus bridge may transfer the transaction to the other bus based on the type or address of the transaction issued to the one bus. Arbitration to the other bus (ie, whether to snoop the cache and transfer the transaction to the other bus) only if it is determined that the transaction is likely to be transferred. Arbitration that precedes the above) is performed.

【0014】この構成は、無駄な先行アービトレーショ
ンを低減することを目的とするものである。すなわち、
もしスヌープの結果、一方のバスのトランザクションが
要求するデータがバスブリッジキャッシュ内に存在した
場合、結局トランザクションは他方のバスに転送されず
スヌープの完了前に先行して行ったアービトレーション
は無駄になってしまうが、この構成は、このような無駄
を低減しようとするものである。ここで、一方のバスか
ら他方のバスにトランザクションの転送が行われる可能
性の高さは、トランザクションの種類又はアドレスから
ある程度推測できるので、この構成では、一方のバスに
発行されたトランザクションの種類又はアドレスからそ
のトランザクションの転送可能性を判定し、可能性が高
いと判定された場合にのみ、先行アービトレーションを
行う。したがって、この構成によれば、無駄な先行アー
ビトレーションを低減し、バスの負荷を低減することが
できる。
This structure is intended to reduce wasteful preceding arbitration. That is,
If, as a result of snooping, the data requested by a transaction on one bus is present in the bus bridge cache, then the transaction will not be transferred to the other bus and the previous arbitration performed before snooping will be wasted. However, this configuration is intended to reduce such waste. Here, since the probability of the transaction being transferred from one bus to the other can be estimated to some extent from the transaction type or address, in this configuration, the type of transaction issued to one bus or The transferability of the transaction is determined from the address, and the preceding arbitration is performed only when it is determined that the transferability is high. Therefore, according to this configuration, useless preceding arbitration can be reduced and the load on the bus can be reduced.

【0015】また、本発明の別の構成は、スプリット対
応可能な複数のプロセッサを上位バスに接続し、複数の
前記上位バスに対してキャッシュを有するバスブリッジ
をそれぞれ設け、前記各上位バスを各々のバスブリッジ
を介して下位バスに接続し、この下位バスをメインメモ
リに接続した階層バスシステムにおいて、前記バスブリ
ッジは、上位バスのトランザクションをスプリットして
下位バスへ転送した場合には、当該転送したトランザク
ションに対する下位バスからの応答を待たずに、前記転
送処理から所定の時間間隔の後に上位バスに対するアー
ビトレーションを先行して行うことを特徴とする。
Another structure of the present invention is to connect a plurality of processors capable of splitting to an upper bus, provide a bus bridge having a cache for each of the plurality of upper buses, and provide each of the upper buses. In the hierarchical bus system in which the lower bus is connected to the main memory via the bus bridge of, and when the transaction of the upper bus is split and transferred to the lower bus in the hierarchical bus system, the transfer is performed. It is characterized in that arbitration for the upper bus is preceded after a predetermined time interval from the transfer processing without waiting for a response from the lower bus for the transaction.

【0016】この構成は、上位バスがスプリットバスで
ある場合において、上位バス上のプロセッサから発せら
れたトランザクションをバスブリッジがスプリットして
下位バスへ転送した場合のレイテンシの短縮を目的とす
るものである。すなわち、本構成では、このスプリット
したトランザクションに対するスプリット応答を元のプ
ロセッサに返送する際に必要な上位バスのアービトレー
ションを、そのトランザクションに対する下位バスから
応答が来る前から予め行っておくことにより、上位バス
にスプリット応答を発するタイミングを早める。この構
成によれば、プロセッサから発せられたトランザクショ
ンがスプリットされた場合において、当該プロセッサに
そのトランザクションに対するスプリット応答が戻るま
での時間を短縮することができる。
This configuration is intended to reduce the latency when the bus bridge splits a transaction issued from a processor on the upper bus and transfers it to the lower bus when the upper bus is a split bus. is there. That is, in this configuration, the arbitration of the upper bus required for returning the split response for this split transaction to the original processor is performed in advance before the response from the lower bus for that transaction is received. Advance the timing of issuing a split response to. According to this configuration, when the transaction issued from the processor is split, the time until the split response to the transaction is returned to the processor can be shortened.

【0017】なお、この構成において、トランザクショ
ンのスプリット転送のあと上位バスのアービトレーショ
ンを行うまでは、上位バスは当該元のプロセッサの占有
から離れるので、その間、別のトランザクションのため
に上位バスを使用することができる。したがって、トラ
ンザクションのスプリット転送のあと上位バスのアービ
トレーションを行うまでの時間間隔は、プロセッサにど
の程度まで上位バスの占有を許すかという点とスプリッ
ト応答のためのアービトレーションの遅れをどの程度ま
で許容するかという点とを総合的に考慮して決定する必
要がある。
In this configuration, the upper bus is separated from the occupation of the original processor until the upper bus is arbitrated after the split transfer of the transaction. Therefore, the upper bus is used for another transaction in the meantime. be able to. Therefore, the time interval between the transaction split transfer and the arbitration of the upper bus depends on how much the processor is allowed to occupy the upper bus and how long the arbitration delay for split response is allowed. It is necessary to make a decision by comprehensively considering

【0018】また、本発明の別の構成は、バスブリッジ
に接続されたプロセッサのバス占有率の総和が所定のし
きい値を越える場合は前記上位バスに対する前記先行ア
ービトレーションを禁止することを特徴とする。
Another structure of the present invention is characterized in that the preceding arbitration to the upper bus is prohibited when the total bus occupation ratio of the processors connected to the bus bridge exceeds a predetermined threshold value. To do.

【0019】この構成において、バス占有率とは、単位
時間当たり1個の装置がバスを占有している時間のこと
である。プロセッサの場合には、バス占有率はそのプロ
セッサの性能から求めることができる。この構成によれ
ば、上位バスのバス負荷が高いと予測される場合には、
上位バスの先行アービトレーションを行わないようにす
ることができる。
In this configuration, the bus occupancy is the time during which one device occupies the bus per unit time. In the case of a processor, the bus occupation rate can be obtained from the performance of the processor. According to this configuration, when the bus load of the upper bus is predicted to be high,
It is possible to prevent the preceding arbitration of the upper bus.

【0020】また、本発明の別の構成は、階層バスシス
テムに含まれるプロセッサ及びI/O装置のバス占有率
の総和が所定のしきい値を越える場合は前記下位バスに
対する前記先行アービトレーションを禁止することを特
徴とする。
Further, according to another configuration of the present invention, the preceding arbitration to the lower bus is prohibited when the sum of bus occupancy rates of the processors and I / O devices included in the hierarchical bus system exceeds a predetermined threshold value. It is characterized by doing.

【0021】この構成によれば、下位バスのバス負荷が
高いと予測される場合には、下位バスの先行アービトレ
ーションを行わないようにすることができる。
According to this configuration, when the bus load of the lower bus is predicted to be high, it is possible to prevent the preceding arbitration of the lower bus from being performed.

【0022】また、本発明の別の構成は、各バスブリッ
ジにて上位バス及び下位バスのバス負荷をそれぞれ常時
監視し、各バスのバス負荷が所定のしきい値を越えた場
合に、しきい値を越えたバスについては前記先行アービ
トレーションを禁止する事を特徴とする。
Further, another configuration of the present invention is that each bus bridge constantly monitors the bus loads of the upper bus and the lower bus, and when the bus load of each bus exceeds a predetermined threshold, It is characterized in that the preceding arbitration is prohibited for a bus exceeding a threshold value.

【0023】すなわち、先行アービトレーションが無駄
になった場合、その先行アービトレーションの結果占有
されていたバスが無駄になってしまう。例えば、バスが
混んでいる場合などには、このような無駄なバス占有は
スループットの低下を招く。そこで、この構成では各バ
スのバス負荷を常時検出し、バス負荷が所定のしきい値
を越えた場合には当該バスに対する先行アービトレーシ
ョンを禁止する。すなわち、この構成では、先行アービ
トレーションを許可するモードと禁止するモードとを動
的に切り換えることにより、バス負荷の増加を防ぎ、ス
ループットの低下を防止する。
That is, when the preceding arbitration is wasted, the bus occupied as a result of the preceding arbitration is wasted. For example, when the bus is busy, such wasteful bus occupation causes a decrease in throughput. Therefore, in this configuration, the bus load of each bus is constantly detected, and when the bus load exceeds a predetermined threshold value, the preceding arbitration for the bus is prohibited. That is, in this configuration, by dynamically switching between the mode in which the preceding arbitration is permitted and the mode in which the preceding arbitration is prohibited, an increase in bus load is prevented and a decrease in throughput is prevented.

【0024】また、本発明に係るバスブリッジは、タグ
メモリの情報を所定の方式で圧縮したテーブルを格納し
た圧縮タグメモリと、一方のバスに発行されたトランザ
クションのアドレスからタグを抽出し前記所定の方式で
圧縮するタグ圧縮手段と、一方のバスに発行されたトラ
ンザクションのアドレスからインデックスを抽出し、そ
のインデックスに対応する圧縮されたタグ情報を前記圧
縮タグメモリから読み出す圧縮タグ検出手段と、タグ圧
縮手段の出力と前記圧縮タグ検出手段の出力とを比較す
る比較手段とを有し、前記比較手段による比較の結果、
前記タグ圧縮手段の出力と前記圧縮タグ検出手段の出力
とが不一致のときには、前記タグメモリの検索の終了を
待たずに前記他方のバスに対してアービトレーション信
号を出力することを特徴とする。
Further, the bus bridge according to the present invention extracts a tag from a compressed tag memory storing a table obtained by compressing information in the tag memory by a predetermined method and an address of a transaction issued to one of the buses, and the predetermined tag. Tag compression means for compressing in accordance with the method, compressed tag detection means for extracting an index from the address of a transaction issued to one bus, and reading compressed tag information corresponding to the index from the compressed tag memory, and a tag Comprising a comparison means for comparing the output of the compression means and the output of the compression tag detection means, the result of the comparison by the comparison means,
When the output of the tag compression unit and the output of the compressed tag detection unit do not match, an arbitration signal is output to the other bus without waiting for the end of the search of the tag memory.

【0025】この構成において、トランザクションのイ
ンデックスに基づき圧縮タグメモリから読み出された圧
縮タグと、そのトランザクションのタグ自身を圧縮した
ものとが不一致の場合には、当該キャッシュ内にはその
トランザクションの要求するデータは存在しない。この
圧縮タグ同士の比較は、タグメモリの検索(スヌープ)
よりも短時間で行うことができる。したがって、この構
成によれば、比較的時間を要するタグメモリ検索の結果
が得られる前に、圧縮タグの比較に基づきトランザクシ
ョンの要求データが存在しないことを知ることができる
ので、トランザクションが転送されることをより早く知
ることができる。よって、この構成では、タグ圧縮手段
の出力と圧縮タグ検出手段の出力とが不一致のときに、
バスブリッジが転送先バスにアービトレーション信号を
出力することにより、アービトレーションの完了が早く
なり、トランザクションの転送に要する時間を短縮する
ことができる。
In this structure, if the compression tag read from the compression tag memory based on the transaction index and the compression tag of the transaction do not match, the transaction request is stored in the cache. There is no data to do. This comparison of compressed tags is done by searching the tag memory (snoop).
Can be done in less time. Therefore, according to this configuration, it is possible to know that the requested data of the transaction does not exist based on the comparison of the compressed tags before the result of the tag memory search, which takes a relatively long time, is obtained, so that the transaction is transferred. You can know things faster. Therefore, in this configuration, when the output of the tag compression unit and the output of the compressed tag detection unit do not match,
Since the bus bridge outputs the arbitration signal to the transfer destination bus, the arbitration is completed faster, and the time required for transferring the transaction can be shortened.

【0026】[0026]

【発明の実施の形態】以下、本発明の好適な実施形態を
図面に基づいて説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of the present invention will be described below with reference to the drawings.

【0027】以下の各実施形態は、例えば図5に示した
階層バスシステムに適用される。なお、以下の各実施形
態においては、CPUは、自分自身専用のキャッシュ
(以下、CPUキャッシュと呼ぶ)を有しているものと
して説明する。また、各実施形態において、CPUキャ
ッシュ及びバスブリッジのキャッシュ(以下、ブリッジ
キャッシュと呼ぶ)はライトバック方式のキャッシュで
あり、各キャッシュの内容の一貫性(キャッシュ・コン
システンシ)を維持するために、MESIプロトコルを
用いてCPUキャッシュとブリッジキャッシュとの間の
マルチレベル包含性(MLI)を維持している。
The following embodiments are applied to the hierarchical bus system shown in FIG. 5, for example. In each of the following embodiments, the CPU will be described as having its own cache (hereinafter referred to as a CPU cache). Further, in each embodiment, the CPU cache and the cache of the bus bridge (hereinafter referred to as bridge cache) are write-back type caches, and in order to maintain the consistency of the contents of each cache (cache consistency), The MESI protocol is used to maintain multi-level inclusion (MLI) between the CPU cache and the bridge cache.

【0028】MLIとは、ある上位バスに接続されたC
PUキャッシュにあるデータは、その上位バスに接続さ
れたバスブリッジのブリッジキャッシュにも存在すると
いうことをいう。したがって、以下の実施形態では、ブ
リッジキャッシュは、少なくともその上位のCPUキャ
ッシュの容量の総和よりも大きな容量を有している。
The MLI is a C connected to a certain upper level bus.
It means that the data in the PU cache also exists in the bridge cache of the bus bridge connected to the upper bus. Therefore, in the following embodiments, the bridge cache has a capacity that is at least larger than the sum of the capacities of the CPU caches above it.

【0029】また、MESIプロトコルとは、各キャッ
シュブロックに対してそのブロックの状態(ステート)
を示すデータを設けることによりキャッシュコンシステ
ンシを保つ方式の一つであり、M,E,S,Iの4種類
のステートを用いて各キャッシュブロックを制御する。
ここで、M,E,S,Iの各ステートの示す意味は以下
の通りである。
The MESI protocol is a state of each cache block.
Is one of the methods of maintaining the cache consistency by providing the data indicating the above, and each cache block is controlled by using four kinds of states of M, E, S, and I.
Here, the meanings of the M, E, S, and I states are as follows.

【0030】M(Modify):そのブロックの更新されたデ
ータ(すなわち、そのブロックの最新のデータ)をその
キャッシュだけが持つ。
M (Modify): Only the cache has updated data of the block (that is, the latest data of the block).

【0031】E(Exclusive) :そのブロックに関しメイ
ンメモリと同一内容のデータをそのキャッシュだけが持
つ。
E (Exclusive): Only the cache has data having the same contents as the main memory for the block.

【0032】S(Shared):そのブロックに関しメインメ
モリと同一内容のデータを持つが、他のキャッシュも当
該データを持っている可能性がある。
S (Shared): Although the block has the same data as the main memory, there is a possibility that another cache also has the data.

【0033】I(Invalid) :そのブロックは無効であ
る。
I (Invalid): The block is invalid.

【0034】なお、以上のステートは基本的には同レベ
ルにあるキャッシュ同士の関係を示すものである。すな
わち、CPUキャッシュのステートは、他のCPUキャ
ッシュとの関係を示すものであり、ブリッジキャッシュ
のステートは、他のブリッジキャッシュとの関係を示す
ものである。したがって、ブリッジキャッシュのステー
トがMだったとしても、それは当該ブリッジキャッシュ
自体が最新のデータを有することを意味するとは限ら
ず、当該ブリッジキャッシュ自体かその上位のCPUキ
ャッシュのいずれかが最新のデータを持つことを意味す
ることになる。
The above states basically indicate the relationship between caches at the same level. That is, the state of the CPU cache shows the relationship with other CPU caches, and the state of the bridge cache shows the relationship with other bridge caches. Therefore, even if the state of the bridge cache is M, that does not mean that the bridge cache itself has the latest data, and either the bridge cache itself or the CPU cache above it has the latest data. It means having.

【0035】以下、このようなプロトコルを採用するシ
ステムを例にとって、本発明の実施形態について説明す
る。ただし、これはあくまで一例であって、本発明は上
記以外のプロトコルを採用するシステムにも有効であ
る。
An embodiment of the present invention will be described below by taking a system adopting such a protocol as an example. However, this is merely an example, and the present invention is also effective for a system that employs a protocol other than the above.

【0036】実施形態1.本実施形態は、上位バス又は
下位バスのいずれか一方にトランザクションが発行され
た場合において、ブリッジキャッシュをスヌープして他
方のバスにトランザクションを転送するか否かを決定す
る前に、先行して他方のバスのアービトレーションを行
うことにより、トランザクション転送によって生じる処
理の遅れを短縮するものである。
Embodiment 1. In the present embodiment, when a transaction is issued to either the upper bus or the lower bus, the other is preceded by the snooping of the bridge cache before determining whether to transfer the transaction to the other bus. By performing arbitration of the bus, the processing delay caused by the transaction transfer is shortened.

【0037】以下、上位バスから下位バスへのトランザ
クション転送を例にとり、図1を参照して本実施形態の
方法を説明する。
The method of this embodiment will be described below with reference to FIG. 1 by taking transaction transfer from the upper bus to the lower bus as an example.

【0038】図1に示すように、CPUは、上位バスに
トランザクションを発行しようとする場合、まず上位バ
スのアービトレーションを行い、これによってバス使用
権を獲得する。その後、CPUは上位バスにトランザク
ションを発行する。この上位バスに接続されているバス
ブリッジは、このトランザクションを検出し、このトラ
ンザクションのアドレス(トランザクションが要求する
データのアドレス)を有していないか、自らのキャッシ
ュをスヌープする。
As shown in FIG. 1, when issuing a transaction to the upper bus, the CPU first arbitrates the upper bus to acquire the bus use right. After that, the CPU issues a transaction to the upper bus. The bus bridge connected to this upper bus detects this transaction and either does not have the address of this transaction (the address of the data requested by the transaction) or snoops its cache.

【0039】従来は、このスヌープの結果に基づき上位
バスから下位バスへトランザクションを転送する必要が
あると判定された後に下位バスのアービトレーションを
開始していたが、本実施形態では、ブリッジキャッシュ
のスヌープが完了する前から下位バスのアービトレーシ
ョンを開始する。すなわち、本実施形態では、バスブリ
ッジは、上位バスからのトランザクションを受信する
と、ブリッジキャッシュのスヌープを開始すると共に下
位バスに対してアービトレーション信号(バス要求信
号)を出力して、下位バスのアービトレーションを開始
する。ここで、下位バスのアービトレーションの方式
は、集中アービトレーション、分散アービトレーション
のいずれでもよい。
Conventionally, the arbitration of the lower bus is started after it is determined that the transaction needs to be transferred from the upper bus to the lower bus based on the result of the snoop, but in the present embodiment, the snoop of the bridge cache is started. Arbitration of the lower bus is started before is completed. That is, in the present embodiment, when the bus bridge receives a transaction from the upper bus, it starts snooping the bridge cache and outputs an arbitration signal (bus request signal) to the lower bus to confirm the arbitration of the lower bus. Start. Here, the method of arbitration of the lower bus may be either centralized arbitration or distributed arbitration.

【0040】このトランザクション転送の決定の前にア
ービトレーションを先行して行う方式(以下、先行アー
ビトレーションと呼ぶ)によれば、例えばブリッジキャ
ッシュのスヌープが終了してトランザクションを下位バ
スへ転送することが決定される前に下位バスのアービト
レーションが終了していれば、トランザクション転送が
決定されると同時にバスブリッジから下位バスに対して
転送すべきトランザクションを発行することができる。
また、もしトランザクションを下位バスへ転送すると決
定される前に下位バスのアービトレーションが完了しな
くても、従来よりもアービトレーションを開始のタイミ
ングが早いため、いずれにしても下位バスへのトランザ
クションの発行タイミングが従来よりも早くなる。した
がって、本実施形態によれば、上位バスから下位バスへ
トランザクションが転送される場合の処理時間を短縮す
ることができるので、バスシステム全体としてレイテン
シを小さくすることができる。
According to the method of performing arbitration prior to this transaction transfer decision (hereinafter referred to as "preceding arbitration"), for example, it is determined that the snoop of the bridge cache is completed and the transaction is transferred to the lower bus. If the arbitration of the lower bus is completed before the operation, the transaction to be transferred can be issued to the lower bus from the bus bridge at the same time when the transaction transfer is decided.
Even if the arbitration of the lower bus is not completed before it is decided to transfer the transaction to the lower bus, the timing of starting the arbitration is earlier than before, so the transaction issuance timing to the lower bus in any case. Will be faster than before. Therefore, according to the present embodiment, the processing time when a transaction is transferred from the upper bus to the lower bus can be shortened, so that the latency of the entire bus system can be reduced.

【0041】なお、本実施形態において、上位バスから
のトランザクションの受信した後キャッシュスヌープ完
了(すなわち、トランザクションの転送・非転送の決
定)までの間に、いつ下位バスのアービトレーションを
開始するかは、バスの負荷状態とトランザクション転送
処理の時間短縮要求とのトレードオフを勘案して決定す
る。例えば、アービトレーションの開始のタイミングを
早くすると、下位バスへのトランザクションの発行タイ
ミングが早くなるかわりに、スヌープの完了の前にアー
ビトレーションが終了した場合などにはバスブリッジが
下位バスを無駄に占有する時間が生じてしまう。そこ
で、下位バスのバス負荷が大きい場合などには、バスブ
リッジが下位バスを無駄に占有する時間を短縮あるいは
無くすために、アービトレーションの開始を遅くする。
逆に、バス負荷が小さい場合には、アービトレーション
の開始タイミングを早くすることにより、処理時間の短
縮の効果を高めることができる。
In this embodiment, when arbitration of the lower bus is started after the receipt of the transaction from the upper bus and before the completion of the cache snoop (that is, determination of transaction transfer / non-transfer), It is decided in consideration of the trade-off between the load condition of the bus and the request for shortening the transaction transfer processing time. For example, if the arbitration start timing is advanced, the transaction is issued to the lower bus earlier, but the time when the bus bridge unnecessarily occupies the lower bus when the arbitration ends before the snoop is completed. Will occur. Therefore, when the bus load of the lower bus is large, the start of arbitration is delayed in order to shorten or eliminate the time when the bus bridge unnecessarily occupies the lower bus.
On the contrary, when the bus load is small, the effect of shortening the processing time can be enhanced by advancing the arbitration start timing.

【0042】以上の例では、上位バスから下位バスへの
トランザクション転送を例にとって説明したが、下位バ
スから上位バスへのトランザクション転送の場合も、上
記の例と全く同様に処理時間を短縮することができる。
In the above example, the transaction transfer from the upper bus to the lower bus has been described as an example. However, in the case of the transaction transfer from the lower bus to the upper bus, the processing time can be shortened in the same manner as in the above example. You can

【0043】次に実施形態1の変形例について説明す
る。以上説明した実施形態1では、一方のバスにトラン
ザクションが発行された場合、バスブリッジは基本的に
他方のバスの先行アービトレーションを行うので、ブリ
ッジキャッシュのスヌープの結果トランザクションの要
求データがブリッジキャッシュ内に存在した場合などに
は、トランザクションは他方のバスに転送されず、先行
アービトレーションは無駄になってしまう。この変形例
は、このような無駄な先行アービトレーションを少なく
するための方式である。
Next, a modification of the first embodiment will be described. In the first embodiment described above, when a transaction is issued to one bus, the bus bridge basically performs the preceding arbitration of the other bus, so that the request data of the transaction resulting from the snoop of the bridge cache is stored in the bridge cache. If so, the transaction is not transferred to the other bus and the preceding arbitration is wasted. This modification is a method for reducing such wasteful preceding arbitration.

【0044】この方式では、バスブリッジが、一方のバ
スに発行されたトランザクションの種類又はアドレスに
基づき、そのトランザクションが他方のバスに転送され
る可能性を判定し、トランザクションが転送される可能
性が高いと判定された場合にのみ、他方のバスに対する
先行アービトレーションを行う。
In this method, the bus bridge determines the possibility of transferring the transaction to the other bus based on the type or address of the transaction issued to the one bus, and the transaction may be transferred. Only when it is determined to be high, the preceding arbitration to the other bus is performed.

【0045】バスブリッジにおけるトランザクション転
送の可能性の判定の方法としては、例えば以下に示すも
のがある。
As a method of determining the possibility of transaction transfer in the bus bridge, there are the following methods, for example.

【0046】まず第1は、上位バスから下位バスへのト
ランザクション転送に際して、そのトランザクションの
アドレスに基づき転送可能性を判定する方法である。こ
の方法は、次の原理に基づくものである。
First, when a transaction is transferred from the upper bus to the lower bus, the transfer possibility is determined based on the address of the transaction. This method is based on the following principle.

【0047】一連の処理を表す命令コード群はメインメ
モリ上の連続したアドレスに格納される可能性が高い。
したがって、CPUが新しい命令コード群を読み出す場
合、ブリッジキャッシュのミスヒットは連続して起こり
やすい。すなわち、一連の命令コード群の読出しの場
合、CPUからはその命令コード群が格納された一連の
アドレスに対する一連のリードトランザクションが順次
発行される(ただし、ここではCPUは自分専用のキャ
ッシュを有しているので、実際にCPUから発行される
リードトランザクションのアドレスはキャッシュブロッ
ク単位で連続したものとなる)ので、あるトランザクシ
ョンに対してブリッジキャッシュでミスヒットした場
合、その次のトランザクションがミスヒットする可能性
は高い。一方、連続したトランザクションがキャッシュ
ブロック単位で連続したアドレスに対するトランザクシ
ョンである場合には、それら一連のトランザクション
は、一連の命令コード群に対するものである可能性が高
い。したがって、この第1の方法では、上位バスから下
位バスにトランザクション転送した際の要求アドレスを
バスブリッジに記録しておき、そのバスブリッジに次に
与えられたトランザクションのアドレスが前回記録され
たアドレスとキャッシュブロック単位で連続しているか
否かを判定し、連続している場合には後のトランザクシ
ョンが下位バスに転送される可能性は高いと判定する。
なお、この第1の方法において、バスブリッジにおける
転送トランザクションのアドレス記録は、転送を行う度
に更新する。
It is highly possible that the instruction code group representing a series of processing is stored in consecutive addresses on the main memory.
Therefore, when the CPU reads a new instruction code group, bridge cache mishits are likely to occur continuously. That is, in the case of reading a series of instruction code groups, the CPU sequentially issues a series of read transactions to a series of addresses in which the instruction code groups are stored (however, here, the CPU has its own cache). Since the address of the read transaction actually issued from the CPU is continuous in cache block units, if a miss hit occurs in the bridge cache for a certain transaction, the next transaction may miss hit. The nature is high. On the other hand, when the consecutive transactions are transactions for consecutive addresses in cache block units, the series of transactions is highly likely to be a series of instruction code groups. Therefore, according to the first method, the request address when the transaction is transferred from the upper bus to the lower bus is recorded in the bus bridge, and the address of the next transaction given to the bus bridge is recorded as the previously recorded address. It is determined whether or not the cache blocks are continuous, and if they are continuous, it is determined that a subsequent transaction is likely to be transferred to the lower bus.
In the first method, the address record of the transfer transaction in the bus bridge is updated every time the transfer is performed.

【0048】トランザクション転送の可能性の判定の第
2の方法は、下位バスから上位バスへのトランザクショ
ン転送において、そのトランザクションの種類に基づき
転送可能性を判定する方法である。バス上に発行される
トランザクションには、リード(Read),インバリ
デート(Invalidate),リード・アンド・イ
ンバリデート(Read&Invalidate)など
がある。ここで、リードはCPUが自分のキャッシュに
ないデータを読み出す際に発行されるトランザクション
であり、インバリデートはCPUが自分のキャッシュに
持っているデータを書き替える際に、他のキャッシュと
のコンシステンシを維持するために、他のキャッシュ内
の該当ブロックを無効化するためのトランザクションで
ある。また、リード・アンド・インバリデートは、CP
Uが自分のキャッシュにないデータについてライトを行
う際に発行されるトランザクションであり、該当データ
を含むブロックの読み出しと他のキャッシュにおける該
当ブロックの無効化とを同時に指示するものである。こ
のようなトランザクションのうち、インバリデートやリ
ード・アンド・インバリデートなど他のキャッシュの無
効化を指示するトランザクションは、インバリデート系
トランザクションと総称される。第2の方法では、この
ようなトランザクションの種類をバスブリッジで判別
し、トランザクション転送の可能性を判定する。
The second method of determining the possibility of transaction transfer is the method of determining the transfer possibility based on the type of transaction in the transaction transfer from the lower bus to the upper bus. Transactions issued on the bus include read (Read), invalidate (Invalidate), and read and invalidate (Read & Invalidate). Here, a read is a transaction issued when the CPU reads data that is not in its own cache, and an invalidate is a consistency with another cache when the CPU rewrites the data that it has. This is a transaction for invalidating the corresponding block in another cache in order to maintain The lead and invalidate is CP
This is a transaction issued when U writes data that is not in its own cache, and simultaneously instructs reading of a block containing the corresponding data and invalidation of the corresponding block in another cache. Among such transactions, transactions that instruct invalidation of other caches such as invalidate and read-and-invalidate are collectively referred to as invalidate transactions. In the second method, the type of transaction is determined by the bus bridge, and the possibility of transaction transfer is determined.

【0049】すなわち、この第2の方法は、下位バスに
発行されたトランザクションをバスブリッジが受け取っ
た場合、バスブリッジにてそのトランザクションの種類
を特定し、そのトランザクションがインバリデート系で
あった場合には先行アービトレーションを行い、そのト
ランザクションが非インバリデート系の場合には先行ア
ービトレーションを行わないというものである。このよ
うな方法を採るのは、次の理由からである。
That is, in the second method, when the bus bridge receives a transaction issued to the lower bus, the type of the transaction is specified by the bus bridge, and the transaction is an invalidate type transaction. Is that the preceding arbitration is performed, and if the transaction is a non-invalidating type, the preceding arbitration is not performed. The reason why such a method is adopted is as follows.

【0050】あるCPUにおいてあるアドレスに対する
データライト(書き替え)動作を行う場合、キャッシュ
コンシステンシを保つためには、同一上位バス上のCP
Uだけでなく、バスブリッジや他の上位バス上のCPU
にも該当ブロックの無効化を指示する必要がある。この
ような場合、そのCPUの接続されたバスブリッジから
下位バスに対しても、インバリデート系のトランザクシ
ョンが発行される。このようにして下位バスにインバリ
デート系トランザクションが発行された場合、それを受
け取ったバスブリッジでは、ブリッジキャッシュのステ
ートがM,E,Sのいずれかであるとそのバスブリッジ
の上位のCPUが該当データを持っている可能性がある
ため、バスブリッジから上位バスに対してインバリデー
ト系のトランザクションを発行しなければならない。
When performing a data write (rewrite) operation for a certain address in a certain CPU, in order to maintain the cache consistency, the CP on the same upper bus is used.
CPU not only on U but also on bus bridges and other upper buses
Also, it is necessary to instruct invalidation of the corresponding block. In such a case, an invalidate transaction is issued to the lower bus from the bus bridge to which the CPU is connected. When an invalidate transaction is issued to the lower bus in this way, the bus bridge that received it determines that the cache cache state is M, E, or S, and the upper CPU of the bus bridge is the corresponding cache cache state. Since there is a possibility of having data, the bus bridge must issue an invalidate transaction to the upper bus.

【0051】これに対して、下位バスに発行されたトラ
ンザクションが非インバリデート系(例えば、リード)
であった場合において、キャッシュコンシステンシの維
持が必要となるのは、そのトランザクションを受け取っ
たバスブリッジのキャッシュのステートがMの場合だけ
である。非インバリデート系トランザクションでは、他
のCPUが最新のデータ(すなわち、ステートM)のデ
ータを持っている場合にのみ、その最新データを読み出
す必要があるため、上位バスに対してそのトランザクシ
ョンを転送する必要がある。
On the other hand, the transaction issued to the lower bus is a non-invalidate system (eg, read).
In this case, maintaining the cache consistency is required only when the cache state of the bus bridge that received the transaction is M. In the non-invalidate transaction, the latest data needs to be read out only when the other CPU has the latest data (that is, the state M). Therefore, the transaction is transferred to the upper bus. There is a need.

【0052】ここで、ブリッジキャッシュのあるブロッ
クのステートがMである可能性は、M,E,Sのいずれ
かである可能性よりも当然に低い。しかも、ステートが
Mとなるのはデータが書き替えられた場合であるので、
命令コードのブロックがMになることはあまり考えられ
ない。以上を総合すれば、下位バスのトランザクション
が上位バスへ転送される可能性は、インバリデート系の
方が非インバリデート系よりもはるかに高いといえる。
Here, the possibility that the state of the block with the bridge cache is M is naturally lower than the possibility that it is M, E, or S. Moreover, the state becomes M when the data is rewritten,
It is unlikely that the block of instruction code will be M. Summarizing the above, it can be said that the possibility that the transaction of the lower bus is transferred to the upper bus is much higher in the invalidate system than in the non-invalidate system.

【0053】以上のような理由から、この第2の方法で
は、下位バスに発行されたトランザクションがインバリ
デート系の場合は、上位バスに対してインバリデート系
のトランザクションを発行、すなわち転送しなければな
らない可能性が高いと判定する。
For the above reasons, in the second method, if the transaction issued to the lower bus is an invalidate type transaction, the invalidate type transaction must be issued to the upper level bus, that is, transferred. It is highly likely that it will not happen.

【0054】以上、トランザクションの種類又はアドレ
スからトランザクション転送の可能性を判定する方法の
例をいくつか挙げたが、トランザクション転送の可能性
の判定方法は以上の例にあげたものに限られるものでは
ない。いずれにしても、トランザクション転送の可能性
の高低を、キャッシュスヌープに要する時間よりも短時
間で判定することができる方法であれば、どのような方
法を用いてもよい。
Although some examples of the method of determining the possibility of transaction transfer from the type or address of the transaction have been given above, the method of determining the possibility of transaction transfer is not limited to the above examples. Absent. In any case, any method may be used as long as the possibility of transaction transfer can be determined in a shorter time than the time required for cache snooping.

【0055】そして、このような判定方法によって一方
のバスから他方のバスへトランザクションが転送される
可能性を判定し、転送可能性が高いと判定された場合に
のみ他方のバスに対して先行アービトレーションを行う
ことにより、無駄な先行アービトレーションの数を低減
することができる。
Then, the possibility that a transaction is transferred from one bus to the other bus is judged by such a judging method, and only when it is judged that the transfer possibility is high, the preceding arbitration is performed for the other bus. By performing the above, it is possible to reduce the number of useless preceding arbitrations.

【0056】以上、トランザクションの種類やアドレス
に基づき先行アービトレーションを行うか否かを決定す
ることにより、無駄な先行アービトレーションを低減す
る方法について説明した。ただし、トランザクション転
送先のバスのバス負荷が小さい場合は、無駄な先行アー
ビトレーションを行ってもスループットにはあまり影響
がないので、実施形態1の実施に当たって上記変形例の
方法は必須のものではない。
The method for reducing useless preceding arbitration by determining whether or not to perform the preceding arbitration based on the transaction type and address has been described above. However, if the bus load of the bus of the transaction transfer destination is small, the throughput is not so much affected even if the wasteful preceding arbitration is performed. Therefore, the method of the modified example is not essential for implementing the first embodiment.

【0057】実施形態2.本発明の実施形態2は、上位
バスがスプリットバスである場合において、スプリット
応答時のアービトレーションによるレイテンシを低減す
ることを目的とする。
Embodiment 2 The second embodiment of the present invention aims to reduce the latency due to arbitration during split response when the upper bus is a split bus.

【0058】階層バスシステムにおいて上位バスにスプ
リットバスを採用するのは、上位バスのスループットを
向上させるためである。すなわち、CPUから上位バス
にトランザクションが発せられた場合において、ブリッ
ジキャッシュに該当データが存在せず下位バスにトラン
ザクションを転送した場合、下位バスからそのトランザ
クションに対する応答が返ってくるまでの間、上位バス
は元のCPUに占有されたままになる。これでは、その
間に他のCPUはトランザクションを発することができ
ず、上位バスのスループットは低くなる。これに対し
て、CPUをスプリット対応可能とし上位バスをスプリ
ットバスとして構成すれば、上位バスのトランザクショ
ンを下位バスへ転送する場合にはそのトランザクション
をスプリットして元のCPUにバスを放棄させることが
でき、その間に他のトランザクションを発行することが
可能となる。したがって、この場合、上位バスのスルー
プットは向上する。近年、スプリットに対応可能なCP
Uが開発されており、これを用いれば上位バスのスプリ
ットを実現することができる。
The reason why the split bus is adopted as the upper bus in the hierarchical bus system is to improve the throughput of the upper bus. That is, when a transaction is issued from the CPU to the upper bus, if the corresponding data does not exist in the bridge cache and the transaction is transferred to the lower bus, the upper bus waits for a response to the transaction from the lower bus. Remain occupied by the original CPU. In this case, other CPUs cannot issue transactions in the meantime, and the throughput of the upper bus becomes low. On the other hand, if the CPU is capable of splitting and the upper bus is configured as a split bus, when the transaction of the upper bus is transferred to the lower bus, the transaction can be split and the original CPU can relinquish the bus. It is possible to issue another transaction in the meantime. Therefore, in this case, the throughput of the upper bus is improved. CP that can handle splits in recent years
U has been developed and can be used to realize splitting of the upper bus.

【0059】上位バスのトランザクションをスプリット
して下位バスに転送した場合、そのトランザクションに
対する下位バスからの応答をバスブリッジを介して元の
CPUに返す必要がある。バスブリッジから元のCPU
に対するこのような応答のことをスプリット応答とい
う。このスプリット応答を行う場合には、バスブリッジ
はアービトレーションを行って上位バスの使用権を獲得
する必要がある。なぜなら、スプリットを行った時点で
元のCPUは上位バスの使用権を放棄しているからであ
る。
When the transaction of the upper bus is split and transferred to the lower bus, the response from the lower bus to the transaction must be returned to the original CPU through the bus bridge. Bus bridge to original CPU
Such a response to is called a split response. When performing this split response, the bus bridge needs to perform arbitration to acquire the right to use the upper bus. This is because the original CPU has abandoned the right to use the upper bus when the split is performed.

【0060】このスプリット応答時のアービトレーショ
ンは、例えば図2に示すように、転送したトランザクシ
ョンに対する下位バスからのレスポンス(応答)をバス
ブリッジが受けた後に行う方法も考えられるが、これで
はアービトレーションを待つ分だけスプリット応答の出
力タイミングが遅くなってしまう。
The arbitration at the time of split response may be performed after the bus bridge receives a response from the lower bus to the transferred transaction, as shown in FIG. 2, for example, but this waits for the arbitration. The output timing of split response will be delayed by that much.

【0061】そこで、本実施形態では、バスブリッジが
上位バスのトランザクションをスプリットした場合、下
位バスからバスブリッジに対する応答を待たずに、スプ
リット時点から所定時間間隔の後にそのバスブリッジが
上位バスのアービトレーションを行うようにする。
Therefore, in the present embodiment, when the bus bridge splits the transaction of the upper bus, the bus bridge does not wait for a response from the lower bus to the bus bridge, and the bus bridge arbitrates the upper bus after a predetermined time interval from the split time. To do.

【0062】このときの処理の流れを示す説明図が図3
である。図3において、上位バスに発行されたトランザ
クションについて、バスブリッジのキャッシュスヌープ
の完了前に下位バスのアービトレーションを行うところ
までは、図1の処理の流れと同様である。ただし、この
実施形態ではトランザクションのスプリットを行うた
め、バスブリッジは、スヌープの結果トランザクション
の転送を決定した場合に元のCPUに対してスプリット
したことを示す旨のレスポンスを返す点が、図1の場合
と異なる。このレスポンスを受け取った元のCPUは、
上位バスを放棄し、バスブリッジからのスプリット応答
がくるのを待ち受ける。
FIG. 3 is an explanatory diagram showing the flow of processing at this time.
It is. In FIG. 3, with respect to the transaction issued to the upper bus, the process flow is the same as that of FIG. 1 up to the point where the lower bus arbitration is performed before the completion of the cache snoop of the bus bridge. However, in this embodiment, since the transaction is split, the bus bridge returns a response indicating the split to the original CPU when the transfer of the transaction is decided as a result of the snoop, which is the point of FIG. Different from the case. The original CPU that received this response
Abandon the upper bus and wait for the split response from the bus bridge.

【0063】下位バスでは、転送されたトランザクショ
ンについて他のバスブリッジに対するスヌープが行わ
れ、このスヌープの結果に基づいて、当該トランザクシ
ョンに対するレスポンスが生成される。そして、このレ
スポンスを受け取ったバスブリッジは、スプリット応答
を生成し上位バスに対して出力する。
In the lower bus, the transferred transaction is snooped to another bus bridge, and a response to the transaction is generated based on the result of this snoop. Then, the bus bridge that receives this response generates a split response and outputs it to the upper bus.

【0064】本実施形態では、このスプリット応答のた
めに必要なバス使用権の獲得のため、バスブリッジに下
位バスのレスポンスが返ってくるのを待たずに上位バス
のアービトレーションを行う。すなわち、本実施形態で
は、スプリット応答のための上位バスアービトレーショ
ンを、下位バスからのレスポンスを契機として開始する
のではなく、バスブリッジがキャッシュスヌープの結果
トランザクションのスプリット転送を決定した時点から
所定の時間間隔の後に開始する。本実施形態では、スプ
リット応答のための上位バスアービトレーションを、下
位バスからのレスポンスを待たずに開始することを先行
アービトレーションと呼ぶ。
In this embodiment, in order to acquire the bus use right necessary for this split response, the upper bus is arbitrated without waiting for the response of the lower bus to be returned to the bus bridge. In other words, in the present embodiment, the upper bus arbitration for split response is not started with the response from the lower bus as a trigger, but a predetermined time from the time when the bus bridge determines split transfer of the transaction as a result of cache snoop. Start after the interval. In the present embodiment, starting the upper bus arbitration for the split response without waiting for the response from the lower bus is called the preceding arbitration.

【0065】この時間間隔は、上位バスアービトレーシ
ョンの開始が少なくとも下位バスからのレスポンスより
も早くなるように設定される。この時間間隔を小さくす
るほど、上位バスアービトレーションの完了のタイミン
グが早くなるため、バスブリッジからのスプリット応答
の発行のタイミングを早くすることができる。ただし、
この時間間隔をあまり小さく設定するとバスブリッジが
上位バスを無駄に占有する時間が生じてしまうので、下
位バスに対するスプリット転送からレスポンスまでに要
する時間と、上位バスのアービトレーションに要する時
間とを考慮して最適な時間間隔を設定する。
This time interval is set so that the upper bus arbitration starts at least earlier than the response from the lower bus. The smaller the time interval is, the earlier the completion timing of the upper bus arbitration is. Therefore, the timing of issuing the split response from the bus bridge can be advanced. However,
If this time interval is set too small, the bus bridge will wastefully occupy the upper bus, so consider the time required from split transfer to the lower bus to the response and the time required for arbitration of the upper bus. Set an optimal time interval.

【0066】なお、スプリット転送から上位バスアービ
トレーションの開始までの所定時間間隔の間は、各CP
Uは別のトランザクションを上位バスに発行することが
できる。
During the predetermined time interval from the split transfer to the start of upper bus arbitration, each CP is
U can issue another transaction to the upper bus.

【0067】このように、本実施形態によれば、スプリ
ット応答のための上位バスアービトレーションの完了タ
イミングを早くすることができるので、スプリット応答
の発行タイミングを早くすることができ、CPUが最初
にトランザクションを発行してからスプリット応答が完
了するまでの一連のトランザクション処理全体に要する
時間を短くすることができる。
As described above, according to this embodiment, the completion timing of the upper bus arbitration for the split response can be accelerated, so that the issuance timing of the split response can be accelerated, and the CPU first executes the transaction. It is possible to shorten the time required for the entire series of transaction processing from the issuance of the statement to the completion of the split response.

【0068】なお、この実施形態2において、スプリッ
ト転送の結果下位バスに発行されるトランザクションの
種類によって前記所定時間間隔を変えるようにすれば、
より効率的に先行アービトレーションを行うことができ
る。すなわち、下位バスのスヌープに要する時間は一般
にトランザクションの種類により異なってくるので、下
位バススヌープに要する時間によって上位バスアービト
レーションの開始時刻を変えることにより、各トランザ
クション種類ごとに最適なタイミングで上位バスアービ
トレーションを実行することが可能になる。
In the second embodiment, if the predetermined time interval is changed according to the type of transaction issued to the lower bus as a result of split transfer,
The leading arbitration can be performed more efficiently. In other words, the time required for snooping the lower bus generally differs depending on the transaction type.Therefore, by changing the start time of the upper bus arbitration according to the time required for the lower bus snoop, the upper bus arbitration can be performed at the optimum timing for each transaction type. It becomes possible to execute.

【0069】実施形態1の変形例にて説明したように、
下位バスのトランザクションが上位バスへ転送される可
能性は、インバリデート系の方が非インバリデート系よ
りも高い。したがって、スプリット転送の結果下位バス
に発行されたトランザクションがインバリデート系であ
る場合は、他のバスブリッジがその上位バスに対してト
ランザクションを発行する可能性が高い。よって、イン
バリデート系トランザクションの場合、下位バスのスヌ
ープの結果は他のブリッジの上位バスにおける処理が終
わらないと決定されないので、図3における下位バスス
ヌープに要する時間は、非インバリデート系トランザク
ションに比べて長くなりがちである。
As described in the modification of the first embodiment,
The possibility that a transaction on the lower bus is transferred to the upper bus is higher in the invalidate system than in the non-invalidate system. Therefore, when the transaction issued to the lower bus as a result of the split transfer is an invalidate system, there is a high possibility that another bus bridge will issue the transaction to the upper bus. Therefore, in the case of an invalidate transaction, the result of snoop of the lower bus is not determined until the processing in the upper bus of the other bridge is completed, so the time required for the lower bus snoop in FIG. 3 is shorter than that of the non-invalidate transaction. Tend to be long.

【0070】したがって、スプリット転送から上位バス
アービトレーションの開始までの所定時間間隔の値とし
て、インバリデート系トランザクションに対するものと
非インバリデート系トランザクションに対するものとで
別々の値を設定し、インバリデート系に対する値を非イ
ンバリデート系に対する値よりも大きくすることによ
り、各トランザクション種類に応じて適切なタイミング
でアービトレーションを行うことができる。なお、この
場合、バスブリッジでは、下位バスにスプリット転送さ
れるトランザクションの種類を常時検出する。
Therefore, as the value of the predetermined time interval from the split transfer to the start of the upper bus arbitration, different values are set for the invalidating transaction and the non-invalidating transaction, and the value for the invalidating transaction is set. By making the value larger than the value for the non-invalidate system, arbitration can be performed at an appropriate timing according to each transaction type. In this case, the bus bridge always detects the type of transaction to be split-transferred to the lower bus.

【0071】以上、本発明に係る階層バス制御方式の第
1及び第2の実施形態について説明したが、以上に説明
した各方式をソフトウエアからの構成制御で切り換える
ようにすれば柔軟な階層バスシステム構成が可能とな
る。すなわち、上記各実施形態の方式は具体的にはバス
ブリッジの機能として実現されるが、このバスブリッジ
を構成する際に前述の複数の先行アービトレーション方
式のための手段を組み込んでおき、これら各方式および
先行アービトレーションを禁止するモードを構成制御に
て切り換えるのである。このような切り換えによれば、
例えば、あるバスブリッジは上位バス・下位バスの両方
について常に先行アービトレーションを行い、別のバス
ブリッジは下位バスについてトランザクションのアドレ
スに基づく先行アービトレーションを行い、上位バスに
ついては先行アービトレーションを行わないなど、各バ
スブリッジごとにそれぞれ最適の先行アービトレーショ
ン方式を実行することができる。
The first and second embodiments of the hierarchical bus control system according to the present invention have been described above. However, if the respective systems described above are switched by configuration control from software, a flexible hierarchical bus can be obtained. System configuration becomes possible. That is, the method of each of the above-described embodiments is specifically realized as a function of a bus bridge. However, when the bus bridge is configured, the means for the plurality of preceding arbitration methods described above is incorporated, and each of these methods is implemented. And the mode for prohibiting the preceding arbitration is switched by the configuration control. According to such switching,
For example, one bus bridge always performs leading arbitration for both upper and lower buses, another bus bridge performs leading arbitration based on transaction address for lower buses, and does not perform leading arbitration for upper buses. The optimum preceding arbitration method can be executed for each bus bridge.

【0072】この切り換え方式において、先行アービト
レーションを禁止するモードに切り換え可能とするの
は、無駄な先行アービトレーションによるスループット
の低下を防止するためのである。
In this switching method, the mode in which the preceding arbitration is prohibited can be switched in order to prevent a decrease in throughput due to useless preceding arbitration.

【0073】この禁止モードの選択は、例えばバス負荷
の予測に基づいて行う。すなわち、上位バスについて
は、例えば、 TCPU ×(CPU個数)>しきい値 となる場合に禁止モードを選択する。ここで、TCPU
CPUのバス占有率(単位時間当たりのCPUのバス占
有時間)であり、この値はCPUの性能から予測でき
る。またCPU個数は、バスブリッジ自体の上位バスに
接続されているCPUの個数である。
The prohibition mode is selected based on, for example, the prediction of the bus load. That is, for the upper bus, the prohibit mode is selected when, for example, T CPU × (number of CPUs)> threshold. Here, T CPU is the CPU bus occupancy rate (CPU bus occupancy time per unit time), and this value can be predicted from the CPU performance. The number of CPUs is the number of CPUs connected to the upper bus of the bus bridge itself.

【0074】また、下位バスについては、例えば、 TCPU ×(CPU個数)+TI/O ×(I/O個数)>し
きい値 となる場合に禁止モードを選択する。ここで、TI/O
I/O装置のバス占有率(単位時間当たりのI/O装置
のバス占有時間)であり、この値はI/O装置の性能か
ら予測できる。なお、この式におけるCPU個数、I/
O個数は階層バスシステム全体についての個数である。
For the lower bus, the prohibit mode is selected when, for example, T CPU × (number of CPUs) + T I / O × (number of I / Os)> threshold. Here, T I / O is the bus occupation rate of the I / O device (bus occupation time of the I / O device per unit time), and this value can be predicted from the performance of the I / O device. The number of CPUs, I /
The O number is the number for the entire hierarchical bus system.

【0075】このように、各バスブリッジごとに、バス
負荷が大きくなると予測されるバスについては先行アー
ビトレーションを禁止することにより、バスシステムの
構成に応じてスループットとレイテンシを最適化するこ
とができる。
As described above, by prohibiting the preceding arbitration for the bus whose bus load is expected to increase for each bus bridge, the throughput and latency can be optimized according to the configuration of the bus system.

【0076】また、バスブリッジにて上位バス及び下位
バスのバス負荷を監視し、その監視結果に基づき動的に
先行アービトレーションの許可・禁止を切り換えること
もできる。すなわち、バスブリッジにバス負荷を監視す
る構成を設け、各バスのバス負荷が所定のしきい値より
大きくなった場合に先行アービトレーションを禁止す
る。ここで、バス負荷は、例えば一定期間中に発生した
バス要求の数から求める。この動的な先行アービトレー
ション制御によれば、階層バスシステムのスループット
の低下を防止することができる。
It is also possible to monitor the bus loads of the upper bus and the lower bus by the bus bridge and dynamically switch the permission / prohibition of the preceding arbitration based on the monitoring result. That is, the bus bridge is provided with a configuration for monitoring the bus load, and the preceding arbitration is prohibited when the bus load of each bus exceeds a predetermined threshold value. Here, the bus load is obtained, for example, from the number of bus requests generated during a certain period. According to this dynamic preceding arbitration control, it is possible to prevent the throughput of the hierarchical bus system from decreasing.

【0077】実施形態3.図4は、本発明の実施形態3
に係るバスブリッジの要部構成を示すブロック図であ
る。実際のバスブリッジには様々な回路が含まれるが、
図4にはそのうちの先行アービトレーションに関する構
成のみを示している。なお、図4は、上位バスからのト
ランザクションについての処理系のみを示している。
Embodiment 3. FIG. 4 shows a third embodiment of the present invention.
3 is a block diagram showing a main configuration of a bus bridge according to FIG. The actual bus bridge contains various circuits,
FIG. 4 shows only the configuration related to the preceding arbitration. Note that FIG. 4 shows only the processing system for transactions from the upper bus.

【0078】この例では、アドレスは32ビットで指定
され、そのうちの上位12ビットはタグ(Tag )、その
次の15ビットはインデックス(Index )として用いら
れ、下位の5ビットがオフセット(Offset)となってい
る。すなわち、この例では、4Gバイトのアドレス空間
とブリッジキャッシュとは1キャッシュブロック=32
バイト単位でマッピングされており、ブリッジキャッシ
ュは1015ブロックすなわち1Mバイトの容量を有して
いる。なお、ブリッジキャッシュは、1Mバイトのデー
タを格納するキャッシュRAMと、キャッシュRAMの
各ブロックに格納されているデータのアドレスをインデ
ックスとタグとの対応関係の形で記憶するタグRAMと
から構成されているが、図4ではそのうちタグRAMの
みが図示されている。なお、ブリッジキャッシュはこの
ように大容量であるため、バスブリッジ本体とは別のチ
ップとして形成されている。
In this example, the address is specified by 32 bits, the upper 12 bits of which are used as a tag (Tag), the next 15 bits are used as an index (Index), and the lower 5 bits are used as an offset (Offset). Has become. That is, in this example, the address space of 4 Gbytes and the bridge cache are 1 cache block = 32
It is mapped in bytes, and the bridge cache has a capacity of 10 15 blocks or 1 Mbytes. The bridge cache is composed of a cache RAM that stores 1 Mbytes of data, and a tag RAM that stores the address of the data stored in each block of the cache RAM in the form of a correspondence between an index and a tag. However, in FIG. 4, only the tag RAM is shown. Since the bridge cache has such a large capacity, it is formed as a chip separate from the bus bridge body.

【0079】図4に示す構成は、通常のキャッシュ検索
(スヌープ)のための構成と、先行アービトレーション
のための構成とからなっている。
The structure shown in FIG. 4 is composed of a structure for normal cache search (snoop) and a structure for preceding arbitration.

【0080】通常のキャッシュスヌープは、タグリード
回路32、タグRAM50及びミスヒット判定回路38
によって行われる。すなわち、上位バスのトランザクシ
ョンがバスブリッジ30に入力されると、トランザクシ
ョンのアドレスのインデックス部分は、タグリード回路
32に入力される。タグリード回路32は、タグRAM
50から、このインデックスに対応するタグを読み出
す。タグRAM50から出力されたタグは、ミスヒット
判定回路38にて実際のアドレスのタグと比較される。
両者が一致した場合は、キャッシュRAM内にトランザ
クションの要求データが存在しており、この場合バスブ
リッジは、図示しないキャッシュコントローラを介して
キャッシュRAMから所望データを読み出し、上位バス
を介して要求元のCPUに返送する。この場合、下位バ
スにはトランザクションが転送されない。これに対して
両者が不一致となった場合には、ミスヒット判定回路3
8はミスヒット信号を発し、このミスヒット信号がオア
回路42を介してアービトレーション回路44に入力さ
れる。この場合、アービトレーション回路44は、下位
バスに対してアービトレーション信号を発し、下位バス
のアービトレーションを行う。その後、転送すべきトラ
ンザクションが下位バスに発行される。
The normal cache snoop is composed of a tag read circuit 32, a tag RAM 50 and a mishit determination circuit 38.
Done by That is, when the transaction of the upper bus is input to the bus bridge 30, the index portion of the address of the transaction is input to the tag read circuit 32. The tag read circuit 32 is a tag RAM
From 50, the tag corresponding to this index is read. The tag output from the tag RAM 50 is compared with the tag of the actual address in the mishit determination circuit 38.
If the two match, the requested data for the transaction exists in the cache RAM. In this case, the bus bridge reads the desired data from the cache RAM via a cache controller (not shown), and sends the request data via the host bus. Return to CPU. In this case, no transaction is transferred to the lower bus. On the other hand, if the two do not match, the mishit determination circuit 3
8 outputs a mishit signal, and this mishit signal is input to the arbitration circuit 44 via the OR circuit 42. In this case, the arbitration circuit 44 issues an arbitration signal to the lower bus to arbitrate the lower bus. Then, the transaction to be transferred is issued to the lower bus.

【0081】以上が、通常のキャッシュスヌープの流れ
であるが、本実施形態においてブリッジキャッシュは大
容量でバスブリッジ30とは別チップとして構成されて
いるため、タグRAM50の検索には比較的長時間を要
する。
The above is the flow of the normal cache snoop. However, since the bridge cache has a large capacity and is configured as a separate chip from the bus bridge 30 in this embodiment, it takes a relatively long time to search the tag RAM 50. Requires.

【0082】一方、先行アービトレーションのための構
成は、圧縮タグテーブル34と、タグ圧縮回路36及び
ミスヒット判定回路40とからなる。圧縮タグテーブル
34には、タグRAM50に格納されたインデックスと
タグの対応情報を圧縮した情報が格納されている。すな
わち、圧縮タグテーブル34には、各インデックスごと
に、対応するタグを所定のデータ圧縮法で圧縮した値
(圧縮タグと呼ぶ)が格納される。データ圧縮法として
は、例えばタグの全ビットの排他的論理和をとるなどの
方法を用いる。圧縮タグテーブル34は、タグRAM5
0に比べてはるかに小さいサイズで済むため、バスブリ
ッジ30のチップ内に搭載することが可能であり、高速
アクセスが可能である。圧縮タグテーブル34は、トラ
ンザクションのアドレスのインデックスが与えられる
と、そのインデックスに対応する圧縮タグを出力する。
一方、タグ圧縮回路36は、トランザクションアドレス
のタグを圧縮タグテーブル34と同様のデータ圧縮法で
圧縮する。
On the other hand, the structure for the preceding arbitration comprises a compression tag table 34, a tag compression circuit 36 and a mishit determination circuit 40. The compression tag table 34 stores information obtained by compressing the correspondence information between the index and the tags stored in the tag RAM 50. That is, the compression tag table 34 stores a value (called a compression tag) obtained by compressing a corresponding tag by a predetermined data compression method for each index. As the data compression method, for example, a method such as exclusive OR of all bits of the tag is used. The compression tag table 34 is the tag RAM 5
Since the size is much smaller than 0, it can be mounted in the chip of the bus bridge 30 and high-speed access is possible. When the index of the address of the transaction is given, the compression tag table 34 outputs the compression tag corresponding to the index.
On the other hand, the tag compression circuit 36 compresses the transaction address tag by the same data compression method as the compression tag table 34.

【0083】ミスヒット判定回路40は、圧縮タグテー
ブル34の出力とタグ圧縮回路36の出力とを比較す
る。ここで、圧縮タグ同士が不一致の場合はもともとの
タグ同士も必ず不一致になるので、ミスヒット判定回路
40での比較結果が不一致となる場合は、当該トランザ
クションは必ず下位バスに転送される。そこで、ミスヒ
ット判定回路40は、両入力の値が不一致であったとき
にミスヒット信号を出力することにより、アービトレー
ション回路44に対して下位バスのアービトレーション
を指示する。なお、このミスヒット信号は、オア回路4
2を介してアービトレーション回路44に入力される。
The mishit determination circuit 40 compares the output of the compression tag table 34 with the output of the tag compression circuit 36. Here, if the compressed tags do not match, the original tags also always do not match. Therefore, if the comparison result in the mishit determination circuit 40 does not match, the transaction is always transferred to the lower bus. Therefore, the mishit determination circuit 40 instructs the arbitration circuit 44 to arbitrate the lower bus by outputting a mishit signal when the values of both inputs do not match. This mishit signal is the OR circuit 4
It is input to the arbitration circuit 44 via 2.

【0084】ここで、圧縮タグテーブル34の検索はタ
グRAM50の検索よりも短時間で済むため、ミスヒッ
ト判定回路40のミスヒット信号はミスヒット判定回路
38のミスヒット信号よりも早く出力される。したがっ
て、本構成によれば、圧縮タグ同士の比較によりトラン
ザクション転送が確実に起こる場合を予め検知すること
ができるので、キャッシュスヌープ完了前に下位バスの
先行アービトレーションを開始することができる。
Since the search of the compressed tag table 34 is shorter than the search of the tag RAM 50, the mishit signal of the mishit determination circuit 40 is output earlier than the mishit signal of the mishit determination circuit 38. . Therefore, according to this configuration, it is possible to detect in advance the case where the transaction transfer reliably occurs by comparing the compression tags with each other, so that the preceding arbitration of the lower bus can be started before the completion of the cache snoop.

【0085】なお、図4の構成では、ミスヒット判定回
路40からミスヒット信号が出力される場合には必ずト
ランザクション転送が起こるので、無駄な先行アービト
レーションは生じない。
In the configuration of FIG. 4, when the mishit signal is output from the mishit determination circuit 40, transaction transfer always occurs, so that useless preceding arbitration does not occur.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 実施形態1におけるトランザクション転送の
ための先行アービトレーションを説明するための図であ
る。
FIG. 1 is a diagram for explaining prior arbitration for transaction transfer according to a first embodiment.

【図2】 スプリット応答のための先行アービトレーシ
ョンを説明するための図である。
FIG. 2 is a diagram for explaining prior arbitration for split response.

【図3】 実施形態2におけるスプリット応答のための
先行アービトレーションを説明するための図である。
FIG. 3 is a diagram for explaining prior arbitration for split response according to the second embodiment.

【図4】 実施形態3に係るバスブリッジの要部構成を
示すブロック図である。
FIG. 4 is a block diagram showing a main configuration of a bus bridge according to a third embodiment.

【図5】 階層バスシステムの構成を示す説明図であ
る。
FIG. 5 is an explanatory diagram showing a configuration of a hierarchical bus system.

【図6】 従来の上位バスから下位バスへのトランザク
ションの転送処理を説明するための図である。
FIG. 6 is a diagram for explaining a conventional transaction transfer process from an upper bus to a lower bus.

【符号の説明】[Explanation of symbols]

10 CPU、12 上位バス、14 バスブリッジ、
16 キャッシュ、18 下位バス、20 メインメモ
リ、22 I/O装置。
10 CPU, 12 upper bus, 14 bus bridge,
16 cache, 18 lower bus, 20 main memory, 22 I / O device.

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】 複数のプロセッサを上位バスに接続し、
複数の上位バスに対してキャッシュを有するバスブリッ
ジをそれぞれ設け、各上位バスを各々のバスブリッジを
介して下位バスに接続し、この下位バスをメインメモリ
に接続した階層バスシステムにおいて、 前記バスブリッジは、上位バス又は下位バスの一方にト
ランザクションが発行されたときに、前記キャッシュを
スヌープして他方のバスにトランザクションを転送する
か否かを決定する前に、他方のバスのアービトレーショ
ンを先行して行うことを特徴とする階層バス制御方式。
1. A plurality of processors are connected to a host bus,
In a hierarchical bus system in which a bus bridge having a cache is provided for each of a plurality of upper buses, each upper bus is connected to a lower bus via each bus bridge, and the lower bus is connected to a main memory, the bus bridge When a transaction is issued to either the upper bus or the lower bus, the arbitration of the other bus is preceded before the cache is snooped and the transaction is transferred to the other bus. A hierarchical bus control method characterized by performing.
【請求項2】 請求項1記載の階層バス制御方式におい
て、 前記バスブリッジは前記一方のバスに発行されたトラン
ザクションの種類又はアドレスに基づきそのトランザク
ションが前記他方のバスに転送される可能性を判定し、
トランザクションが転送される可能性が高いと判定され
た場合にのみ、前記他方のバスに対する前記先行アービ
トレーションを行うことを特徴とする階層バス制御方
式。
2. The hierarchical bus control method according to claim 1, wherein the bus bridge determines the possibility of transferring the transaction to the other bus based on the type or address of the transaction issued to the one bus. Then
A hierarchical bus control method, wherein the preceding arbitration to the other bus is performed only when it is determined that a transaction is likely to be transferred.
【請求項3】 請求項2記載の階層バス制御方式におい
て、 前記バスブリッジは、上位バスから下位バスへトランザ
クションを転送したときに当該トランザクションのアド
レスを記憶し、このトランザクションの後に、前記記憶
されたアドレスが含まれるキャッシュブロックに連続し
たキャッシュブロック内のアドレスに対するトランザク
ションが上位バスに発行された場合に、後者のトランザ
クションは下位バスに転送される可能性が高いと判定す
ることを特徴とする階層バス制御方式。
3. The hierarchical bus control method according to claim 2, wherein the bus bridge stores the address of the transaction when the transaction is transferred from the upper bus to the lower bus, and the stored address is stored after the transaction. A hierarchical bus characterized in that when a transaction for an address in a cache block consecutive to a cache block containing an address is issued to an upper bus, it is determined that the latter transaction is likely to be transferred to a lower bus. control method.
【請求項4】 請求項2記載の階層バス制御方式におい
て、 前記バスブリッジは、下位バスにインバリデート(In
validate)系トランザクションが発行された場
合には、そのトランザクションは上位バスに転送される
可能性が高いと判定することを特徴とする階層バス制御
方式。
4. The hierarchical bus control method according to claim 2, wherein the bus bridge invalidates (In) the lower bus.
validate) transaction is issued, it is determined that the transaction is highly likely to be transferred to the upper bus. Hierarchical bus control method.
【請求項5】 スプリット対応可能な複数のプロセッサ
を上位バスに接続し、複数の前記上位バスに対してキャ
ッシュを有するバスブリッジをそれぞれ設け、前記各上
位バスを各々のバスブリッジを介して下位バスに接続
し、この下位バスをメインメモリに接続した階層バスシ
ステムにおいて、 前記バスブリッジは、上位バスのトランザクションをス
プリットして下位バスへ転送した場合には、当該転送し
たトランザクションに対する下位バスからの応答を待た
ずに、前記転送処理から所定の時間間隔の後に上位バス
に対するアービトレーションを先行して行うことを特徴
とする階層バス制御方式。
5. A plurality of processors capable of splitting are connected to an upper bus, a bus bridge having a cache is provided for each of the plurality of upper buses, and each upper bus is connected to a lower bus via each bus bridge. In the hierarchical bus system in which the lower bus is connected to the main memory, when the bus bridge splits the transaction of the upper bus and transfers it to the lower bus, the response from the lower bus to the transferred transaction is transmitted. Arbitration for the higher-order bus is performed after a predetermined time interval from the transfer processing without waiting.
【請求項6】 請求項5記載の階層バス制御方式におい
て、 前記バスブリッジは、上位バスから下位バスへ転送した
トランザクションの種類を検出し、その検出結果がイン
バリデート(Invalidate)系であった場合に
は、検出結果が非インバリデート系であった場合よりも
上位バスのアービトレーションを行うまでの前記時間間
隔を大きくすることを特徴とする階層バス制御方式。
6. The hierarchical bus control method according to claim 5, wherein the bus bridge detects the type of transaction transferred from the upper bus to the lower bus, and the detection result is an invalidate system. In the hierarchical bus control method, the time interval until the arbitration of the higher-order bus is made larger than when the detection result is a non-invalidate system.
【請求項7】 請求項1〜6のいずれかに記載の階層バ
ス制御方式において、 前記バスブリッジに接続されたプロセッサのバス占有率
の総和が所定のしきい値を越える場合は前記上位バスに
対する前記先行アービトレーションを禁止することを特
徴とする階層バス制御方式。
7. The hierarchical bus control method according to claim 1, wherein if the total bus occupancy of the processors connected to the bus bridge exceeds a predetermined threshold value, the upper bus A hierarchical bus control method, wherein the preceding arbitration is prohibited.
【請求項8】 請求項1〜6のいずれかに記載の階層バ
ス制御方式において、 階層バスシステムに含まれるプロセッサ及びI/O装置
のバス占有率の総和が所定のしきい値を越える場合は前
記下位バスに対する前記先行アービトレーションを禁止
することを特徴とする階層バス制御方式。
8. The hierarchical bus control method according to claim 1, wherein the sum of bus occupancy rates of processors and I / O devices included in the hierarchical bus system exceeds a predetermined threshold value. A hierarchical bus control method, wherein the preceding arbitration for the lower bus is prohibited.
【請求項9】 請求項1〜6のいずれかに記載の階層バ
ス制御方式において、 前記バスブリッジは、当該バスブリッジに接続された上
位バス及び下位バスのバス負荷をそれぞれ監視し、各バ
スのバス負荷が所定のしきい値を越えた場合に、しきい
値を越えたバスについては前記先行アービトレーション
を禁止することを特徴とする階層バス制御方式。
9. The hierarchical bus control method according to claim 1, wherein the bus bridge monitors a bus load of each of an upper bus and a lower bus connected to the bus bridge, and A hierarchical bus control method, wherein when the bus load exceeds a predetermined threshold value, the preceding arbitration is prohibited for the bus exceeding the threshold value.
【請求項10】 複数のプロセッサが接続された上位バ
スとメインメモリが接続された下位バスとを接続するバ
スブリッジであって、タグ情報を格納したタグメモリと
データを格納したキャッシュメモリとから構成されるキ
ャッシュユニットに接続され、一方のバスに発行された
トランザクションのアドレスに含まれるインデックスか
ら前記タグメモリを検索し、検索の結果得られたタグが
前記トランザクションアドレスに含まれるタグと一致し
なかった場合に前記トランザクションアドレスがキャッ
シュメモリに含まれないと判定し、他方のバスに前記ト
ランザクションを転送するバスブリッジにおいて、 前記タグメモリの情報を所定の方式で圧縮したテーブル
を格納した圧縮タグメモリと、 前記一方のバスに発行されたトランザクションのアドレ
スからタグを抽出し前記所定の方式で圧縮するタグ圧縮
手段と、 前記一方のバスに発行されたトランザクションのアドレ
スからインデックスを抽出し、そのインデックスに対応
する圧縮されたタグ情報を前記圧縮タグメモリから読み
出す圧縮タグ検出手段と、 前記タグ圧縮手段の出力と前記圧縮タグ検出手段の出力
とを比較する比較手段と、 を有し、前記比較手段による比較の結果、前記タグ圧縮
手段の出力と前記圧縮タグ検出手段の出力とが不一致の
ときには、前記タグメモリの検索の終了を待たずに前記
他方のバスに対してアービトレーション信号を出力する
ことを特徴とするバスブリッジ。
10. A bus bridge that connects an upper bus to which a plurality of processors are connected and a lower bus to which a main memory is connected, and includes a tag memory storing tag information and a cache memory storing data. Connected to the cache unit, the tag memory is searched from the index included in the address of the transaction issued to one of the buses, and the tag obtained as a result of the search does not match the tag included in the transaction address. In the case of determining that the transaction address is not included in the cache memory in the case, in the bus bridge that transfers the transaction to the other bus, a compressed tag memory that stores a table in which the information in the tag memory is compressed by a predetermined method, Transaction issued to one of the buses Tag compression means for extracting a tag from an address and compressing it in the predetermined method, and extracting an index from an address of a transaction issued to the one bus, and compressing tag information corresponding to the index to the compression tag memory. Compression tag detection means for reading from the output, and comparison means for comparing the output of the tag compression means and the output of the compression tag detection means, and the comparison result by the comparison means, the output of the tag compression means and the A bus bridge which outputs an arbitration signal to the other bus without waiting for the end of the search of the tag memory when the output of the compressed tag detection means does not match.
JP7287372A 1995-11-06 1995-11-06 Hierarchical bus control system and bus bridge Pending JPH09128325A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7287372A JPH09128325A (en) 1995-11-06 1995-11-06 Hierarchical bus control system and bus bridge

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7287372A JPH09128325A (en) 1995-11-06 1995-11-06 Hierarchical bus control system and bus bridge

Publications (1)

Publication Number Publication Date
JPH09128325A true JPH09128325A (en) 1997-05-16

Family

ID=17716517

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7287372A Pending JPH09128325A (en) 1995-11-06 1995-11-06 Hierarchical bus control system and bus bridge

Country Status (1)

Country Link
JP (1) JPH09128325A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006053857A (en) * 2004-08-16 2006-02-23 Fujitsu Ltd System controller, speculative fetch method, and information processor
KR100596947B1 (en) * 1998-07-31 2006-07-07 프리스케일 세미컨덕터, 인크. Method and apparatus for performing transactions in a data processing system
US7093078B2 (en) 1999-12-09 2006-08-15 Nec Corporation Data access method in the network system and the network system
JP2008159057A (en) * 2006-12-22 2008-07-10 Intel Corp Prefetch from dynamic random access memory to static random access memory
JP2008176699A (en) * 2007-01-22 2008-07-31 Renesas Technology Corp Multiprocessor system
JP2010140362A (en) * 2008-12-12 2010-06-24 Nec Corp Distributed cache system, method and program, and calculation node
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

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100596947B1 (en) * 1998-07-31 2006-07-07 프리스케일 세미컨덕터, 인크. Method and apparatus for performing transactions in a data processing system
US7093078B2 (en) 1999-12-09 2006-08-15 Nec Corporation Data access method in the network system and the network system
JP2006053857A (en) * 2004-08-16 2006-02-23 Fujitsu Ltd System controller, speculative fetch method, and information processor
JP2008159057A (en) * 2006-12-22 2008-07-10 Intel Corp Prefetch from dynamic random access memory to static random access memory
JP4658112B2 (en) * 2006-12-22 2011-03-23 インテル コーポレイション Prefetching from dynamic random access memory to static random access memory
JP2008176699A (en) * 2007-01-22 2008-07-31 Renesas Technology Corp Multiprocessor system
JP2010140362A (en) * 2008-12-12 2010-06-24 Nec Corp Distributed cache system, method and program, and calculation node
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

Similar Documents

Publication Publication Date Title
US5426765A (en) Multiprocessor cache abitration
US6295582B1 (en) System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available
US7047374B2 (en) Memory read/write reordering
US20080301371A1 (en) Memory Cache Control Arrangement and a Method of Performing a Coherency Operation Therefor
US6219745B1 (en) System and method for entering a stream read buffer mode to store non-cacheable or block data
JP2003316753A (en) Multi-processor device
KR19980079433A (en) Method and system for implementing cache coherency mechanism for use in non-cache cache hierarchy
US7330940B2 (en) Method and system for cache utilization by limiting prefetch requests
JP3071752B2 (en) Bridge method, bus bridge and multiprocessor system
US5918069A (en) System for simultaneously writing back cached data via first bus and transferring cached data to second bus when read request is cached and dirty
JPH10154100A (en) Information processing system, device and its controlling method
JP2002073415A (en) Computer cache system made delay invalid
JP2001147854A (en) Processing system and method for optimizing storage in writing buffer unit and method for storing and distributing data
US5987544A (en) System interface protocol with optional module cache
JPH06222993A (en) Cache memory system and method for realization of it
JPH06318174A (en) Cache memory system and method for performing cache for subset of data stored in main memory
JPH09128325A (en) Hierarchical bus control system and bus bridge
US6862646B2 (en) Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain
JPH03172947A (en) Microcomputer system
US5793986A (en) Method and system for enhanced efficiency of data transfers from memory to multiple processors in a data processing system
JP2001249846A (en) Cache memory device and data processing system
JPH03163640A (en) Multi-processor system and cache memory used therefor
US5809534A (en) Performing a write cycle to memory in a multi-processor system
JPH06222994A (en) Cache memory system
US7120758B2 (en) Technique for improving processor performance