JP3071752B2 - ブリッジ方法、バスブリッジ及びマルチプロセッサシステム - Google Patents

ブリッジ方法、バスブリッジ及びマルチプロセッサシステム

Info

Publication number
JP3071752B2
JP3071752B2 JP10075168A JP7516898A JP3071752B2 JP 3071752 B2 JP3071752 B2 JP 3071752B2 JP 10075168 A JP10075168 A JP 10075168A JP 7516898 A JP7516898 A JP 7516898A JP 3071752 B2 JP3071752 B2 JP 3071752B2
Authority
JP
Japan
Prior art keywords
bus
request
signal
prediction
bridge
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.)
Expired - Fee Related
Application number
JP10075168A
Other languages
English (en)
Other versions
JPH11272552A (ja
Inventor
敏久 亀丸
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 JP10075168A priority Critical patent/JP3071752B2/ja
Priority to US09/178,493 priority patent/US6341334B1/en
Publication of JPH11272552A publication Critical patent/JPH11272552A/ja
Application granted granted Critical
Publication of JP3071752B2 publication Critical patent/JP3071752B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/306In system interconnect, e.g. between two buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、複数のバス間を
ブリッジ接続するためのブリッジ方法及びバスブリッジ
並びにこれらを利用したマルチプロセッサシステムに関
する。
【0002】
【従来の技術】複数のプロセッサを並列動作させること
が可能なマルチプロセッサシステムとしては、1個のバ
スに複数のプロセッサを接続した密結合型システムが知
られている。1個のバスに接続できるプロセッサの個数
には、バス信号線の容量性負荷等の面で制約があるた
め、密結合型システムには、システムを構成するプロセ
ッサの個数をある物理的上限個数より多くすることがで
きないという短所がある。特開平9−128346号公
報に記載されているマルチプロセッサシステムは、複数
個のバス相互間をバスブリッジにて接続した構成を有す
るシステムであり、各バスに接続するプロセッサの個数
を上述の物理的上限個数以下に抑えつつも、システム全
体としては上述の物理的上限個数より多くのプロセッサ
を並列動作させることができる。即ち、密結合型システ
ムに比べてプロセッサの個数を多くすることができる。
【0003】
【発明が解決しようとする課題】上記公報に記載のマル
チプロセッサシステムにおいては、あるデバイスが他の
デバイスからデータを受け取ろうとするときに、データ
を受け取る側のデバイスを一時待機させねばならないこ
とがあり、それによって生じる処理の遅延がシステム性
能改善に支障となっていた。
【0004】例えば、第1のバスに接続されているプロ
セッサが、第2のバスに接続されているメモリ上の任意
のアドレスから、データを読み出す場合を考える。第1
のバスと第2のバスとを接続するバスブリッジは、読出
元のプロセッサから第1のバスを介しデータの読出に関
する要求を受け取るのに応じて、第2のバス上にデータ
の読出に関する要求を送出する。このバスブリッジは、
第2のバスを介しメモリからデータを受け取り、第1の
バス上に送出する。読出元のプロセッサは、データの読
出に係る要求を第1のバス上に送出してからそのデータ
を受け取るまでの間、そのデータに関する処理を実行で
きない。通常は、各プロセッサやバスブリッジがキャッ
シュメモリを有しているから、適宜バススヌープ等の手
法を併用しまたブリッジキャッシュ(バスブリッジのキ
ャッシュメモリをいう)を利用することにより、第2の
バスを介してメモリからデータを受け取る手順を省略で
きる。とはいうものの、ブリッジキャッシュのキャッシ
ュヒット率が低いプログラム即ちブリッジキャッシュ上
にないデータをしばしば要求するプログラムを実行する
ときには、上述の遅延ひいてはそれによるシステムの性
能低下が顕在化することがある。
【0005】この発明は、上述のような問題点を解決す
ることを課題としてなされたものであり、データを要求
したデバイス例えばプロセッサを待機させることに伴う
処理の遅延、ひいてはシステム性能の低下を抑えること
を目的とする。
【0006】
【課題を解決するための手段】上述の目的を達成する
に、この発明に係るブリッジ方法においては、第1バ
スに接続されている複数のデバイスのうちいずれかによ
り将来発行されることが予測されるリクエスト信号の内
容に基づき、第2バスに接続されているデバイスに対
ータを要求するリクエスト信号をバスブリッジが発行
することにより、当該第2バスに接続されているデバイ
スによって保持されているデータの一部を、第1バスと
第2バスとをブリッジするバスブリッジに設けられたブ
リッジキャッシュに、キャッシュしておく予測キャッシ
ュ手順と、上記第1バスに接続されているデバイスによ
り発行されたリクエスト信号に係るデータが上記ブリッ
ジキャッシュにキャッシュ済である場合に、そのデータ
を上記バスブリッジが上記ブリッジキャッシュからリク
エスト信号発行元のデバイスに送るレスポンス手順とを
し、更に、上記第1バスの負荷として判定基準以上の
負荷が検出されたときには、予測発行抑圧条件が満たさ
れていると見なして、上記予測キャッシュ手順によるリ
クエスト信号の発行を行わないこととした。
【0007】また、この発明に係るブリッジ方法におい
ては、第1バスに接続されている複数のデバイスのうち
いずれかにより将来発行されることが予測されるリクエ
スト信号の内容に基づき、第2バスに接続されているデ
バイスに対しデータを要求するリクエスト信号をバスブ
リッジが発行することにより、当該第2バスに接続され
ているデバイスによって保持されているデータの一部
を、第1バスと第2バスとをブリッジするバスブリッジ
に設けられたブリッジキャッシュに、キャッシュしてお
く予測キャッシュ手順と、上記第1バスに接続されてい
るデバイスにより発行されたリクエスト信号に係るデー
タが上記ブリッジキャッシュにキャッシュ済である場合
に、そのデータを上記バスブリッジが上記ブリッジキャ
ッシュからリクエスト信号発行元のデバイスに送るレス
ポンス手順とを有し、上記予測キャッシュ手順に際し
て、上記第1バスに接続されているデバイスにより将来
発行されるリクエスト信号の内容をそのデバイスがそれ
までに発行した複数のリクエスト信号の内容に基づき予
測する履歴利用型の処理と、上記第1バスに接続されて
いるデバイスにより将来発行されるリクエスト信号の内
容をそのデバイスが最近発行した1個のリクエスト信号
の内容に基づき予測する履歴非利用型の処理と、これら
履歴利用型及び履歴非利用型の処理のうちいずれかによ
る予測結果を選択する予測論理切換のための処理とを実
行することとした。
【0008】また、この発明に係るブリッジ方法におい
ては、上記予測キャッシュ手順に際して、上記第1バス
の負荷を検出し、検出結果を第1判定基準及び第2判定
基準と比較し、この比較の結果、上記第1バスの負荷が
第1判定基準より低い場合には上記履歴非利用型の処理
による予測結果を選択し、上記第1バスの負荷が上記第
1判定基準より高く第2判定基準より低い場合には上記
履歴利用型の処理による予測結果を選択し、上記第1バ
スの負荷が上記第2判定基準より高い場合には上記予測
キャッシュ手順によるリクエスト信号の発行を行わない
こととした。
【0009】さらに、この発明に係るバスブリッジにお
いては、第1又は第2バスに接続されている複数のデバ
イスが保持しているデータをキャッシュしておくための
キャッシュメモリたるブリッジキャッシュと、上記第1
バスに接続されている複数のデバイスのうちいずれかに
より将来発行されるリクエスト信号の内容を予測し、予
測したリクエスト信号の内容を示す予測信号を発行する
リクエスト予測部と、上記第1バスに接続されているデ
バイスにより実際にリクエスト信号が発行されたとき及
び上記リクエスト予測部により上記予測信号が発行され
たときに、そのリクエスト信号又は予測信号により要求
されたデータが上記ブリッジキャッシュ上に存するか否
かを判定するキャッシュヒット判定部と、上記第1バス
に接続されているデバイスにより実際に発行されたリク
エスト信号に関し、そのリクエスト信号により要求され
たデータが上記ブリッジキャッシュ上に存していないと
の判定が下されたときに、当該リクエスト信号を発行し
たデバイスに対し、そのデータを後で送信するから待機
せよと指示するためのレスポンス信号を発行するレスポ
ンス生成部と、上記第1バスに接続されているデバイス
により実際に発行されたリクエスト信号又は上記リクエ
スト予測部により発行された上記予測信号に関し、その
リクエスト信号又は予測信号により要求されたデータが
上記ブリッジキャッシュ上に存していないとの判定が下
されたときに、上記第2バスに接続されているデバイス
に対しそのデータを要求するためのリクエスト信号を発
行するリクエスト発行部と、上記第1バスの負荷を監視
しその結果判定基準以上の負荷が検出されたときに高負
荷フラグをセットする負荷モニタ部とを備え、上記リク
エスト予測部が、上記高負荷フラグがセットされている
ときに上記予測信号の発行を禁止するゲートを含むこと
とした。
【0010】さらに、この発明に係るバスブリッジにお
いては、第1又は第2バスに接続されている複数のデバ
イスが保持しているデータをキャッシュしておくための
キャッシュメモリたるブリッジキャッシュと、上記第1
バスに接続されている複数のデバイスのうちいずれかに
より将来発行されるリクエスト信号の内容を予測し、予
測したリクエスト信号の内容を示す予測信号を発行する
リクエスト予測部と、上記第1バスに接続されているデ
バイスにより実際にリクエスト信号が発行されたとき及
び上記リクエスト予測部により上記予測信号が発行され
たときに、そのリクエスト信号又は予測信号により要求
されたデータが上記ブリッジキャッシュ上に存するか否
かを判定するキャッシュヒット判定部と、上記第1バス
に接続されているデバイスにより実際に発行されたリク
エスト信号に関し、そのリクエスト信号により要求され
たデータが上記ブリッジキャッシュ上に存していないと
の判定が下されたときに、当該リクエスト信号を発行し
たデバイスに対し、そのデータを後で送信するから待機
せよと指示するためのレスポンス信号を発行するレスポ
ンス生成部と、上記第1バスに接続されているデバイス
により実際に発行されたリクエスト信号又は上記リクエ
スト予測部により発行された上記予測信号に関し、その
リクエスト信号又は予測信号により要求されたデータが
上記ブリッジキャッシュ上に存していないとの判定が下
されたときに、上記第2バスに接続されているデバイス
に対しそのデータを要求するためのリクエスト信号を発
行するリクエスト発行部とを備え、上記リクエスト予測
部が、上記第1バスに接続されているデバイスにより将
来発行されるリクエスト信号の内容をそのデバイスがそ
れまでに発行した複数のリクエスト信号の内容に基づき
予測する履歴利用型リクエスト予測部と、上記第1バス
に接続されているデバイスにより将来発行されるリクエ
スト信号の内容をそのデバイスが最近発行した1個のリ
クエスト信号の内容に基づき予測する履歴非利用型リク
エスト予測部と、上記履歴利用型リクエスト予測部及び
上記履歴非利用型リクエスト予測部のうちいずれかによ
る予測結果を選択し選択した予測結果に基づき上記予測
信号を発行する予測論理切換部とを含むこととした。
【0011】また、この発明に係るバスブリッジにおい
ては、上記第1バスの負荷を第1判定基準及びそれより
高い第2判定基準と比較する負荷モニタ部を備え、上記
予測論理切換部が、上記負荷モニタ部における比較の結
果に基づき、上記第1バスの負荷が第1判定基準より低
い場合には上記履歴非利用型リクエスト予測部による予
測結果を選択し、上記第1バスの負荷が上記第1判定基
準より高く第2判定基準より低い場合には上記履歴利用
型リクエスト予測部による予測結果を選択し、上記第1
バスの負荷が上記第2判定基準より高い場合には上記予
測信号の発行を禁止することとした。
【0012】また、この発明に係るマルチプロセッサシ
ステムにおいては、それぞれ単数又は複数のデバイスが
接続されている複数のバスと、上記バス同士を接続する
単数又は複数のバスブリッジとを備え、上記複数のバス
のうち第1バスには複数のプロセッサが、この第1バス
に上記バスブリッジを介し接続されている第2バスには
メモリが、それぞれ上記デバイスとして接続されている
マルチプロセッサシステムにおいて、上記バスブリッジ
が、請求項4乃至6のいずれかに記載のバスブリッジで
あることとした。
【0013】
【0014】
【0015】
【0016】
【0017】
【0018】
【0019】
【0020】
【0021】
【0022】
【0023】
【0024】
【0025】
【0026】
【0027】
【発明の実施の形態】以下、この発明の実施の形態に関
し図面に基づき説明する。なお、実施の形態同士で同様
の構成に関しては、記載の簡略化のため、説明を省略す
る。
【0028】実施の形態1.図1に、この発明の実施の
形態1に係るマルチプロセッサシステムの構成を示す。
この図に示されている複数個のバスのバスのうち1個は
システムバス1であり、残りはローカルバス2である。
ローカルバス2には、それぞれプロセッサたる複数個の
CPU3や、システムバス1との接続のためのバスブリ
ッジ4が接続されている。他方、システムバス1には、
上述のバスブリッジ4に加えメモリ5及びI/Oブリッ
ジ6が接続されている。各バスブリッジ4はキャッシュ
メモリとしてブリッジキャッシュ41を有している。メ
モリ5、I/Oブリッジ6、他のバスブリッジ4等、シ
ステムバス1に接続されている他のデバイスが保持して
いるデータは、適宜ブリッジキャッシュ41にキャッシ
ュされる。また、各CPU3はキャッシュメモリとして
CPUキャッシュ31を有している。システムバス1或
いは他のローカルバス2に接続されているデバイスが保
持しているデータは、同じローカルバス2に接続されて
いるバスブリッジ4のブリッジキャッシュ41を介し、
適宜各CPU3のCPUキャッシュ31上にキャッシュ
される。また、あるCPU3のCPUキャッシュ31上
にあるデータを、同じローカルバス2に接続されている
他のCPU3のCPUキャッシュ31上にキャッシュで
きる。I/Oブリッジ6は、外部記憶装置62、ディス
プレイ装置63、キーボード64及びネットワーク制御
装置65が接続されているI/Oバス61とシステムバ
ス1との間を、接続するブリッジである。なお、I/O
バス61に図示以外の装置を接続してもよい。
【0029】各バスブリッジ4は、図2に示すように、
ブリッジキャッシュ41、バスブリッジ本体42及びタ
グメモリ43から構成されており、バスブリッジ本体4
2はローカルバスインタフェース(I/F)421、シ
ステムバスI/F422、タグ制御部423、キャッシ
ュヒット判定部424及びキャッシュデータ制御部42
5から構成されている。ローカルバスI/F421は、
負荷モニタ部426、リクエスト予測部427、リクエ
スト受信部428、リクエスト発行部429、スヌープ
送受信部430及びレスポンス生成部431を有してお
り、システムバスI/F422は、負荷モニタ部43
2、リクエスト予測部433、リクエスト受信部43
4、リクエスト発行部435、スヌープ出力部436及
びレスポンス受信部437を有している。
【0030】ローカルバス2及びシステムバス1にて伝
送される信号としては、リクエスト信号、スヌープ信
号、レスポンス信号、データ信号等がある。リクエスト
信号は、アドレス信号、種類信号、発行元信号、有効信
号等から構成されている。リクエスト信号には、メモリ
リード、メモリライト、メモリライトバック、キャッシ
ュ無効化、I/Oリード、I/Oライト、応答等の種類
がある。この発明を実施するに際しては、無論、ここで
列挙した種類を全て準備する必要はなく、また他の種類
のリクエストを許容してもよい(例えば、メモリ5につ
いてライトバックを行わず常にライトスルーにしてもよ
い)。また、各CPU3、各バスブリッジ4、I/Oブ
リッジ6等のデバイスには、それぞれ、固有の番号が付
与されており、発行元信号はリクエスト信号を発行した
デバイスに付与されているこの番号を含んでいる。有効
信号は、そのリクエスト信号が有効なリクエスト信号で
あることを示している。また、各デバイスによる表明に
用いられるスヌープ信号には、ヒットクリーン(Hit Cle
an)、ヒットモディファイド(Hit Modified)及びミス(Mi
ss)という3種類がある。更に、リクエスト信号への応
答であるレスポンス信号には、ノーマル(Normal)、ディ
ファー(Defer)、リトライ(Retry)等の種類がある。ロー
カルバス2及びシステムバス1は、いずれも、上述の各
信号を互いに並列に又は直列に伝送可能な構成を有する
ものとする。また、上述の各信号それぞれに、一般に、
バス上の複数の信号線が割り当てられているものとす
る。
【0031】ここでは、メモリ5上のあるアドレスから
あるCPU3がデータを読み出すときを例として、ロー
カルバス2及びシステムバス1を介した信号送受信の流
れのあらましを説明する(図3及び図4参照)。
【0032】この例では、まず、データを必要としてい
るCPU3が、 アドレス信号=読出先アドレス 種類信号=メモリリード 発行元信号=発行元のCPU3に固有の番号 有効信号=オン という内容のリクエスト信号を発行し、接続先のローカ
ルバス2上に送出する(1001)。リクエスト信号中
の種類信号は、そのリクエスト信号の種類を表してお
り、この例における「メモリリード」はメモリ5からの
データの読出を意味している。
【0033】ローカルバス2上に送出されたリクエスト
信号を受信したとき、そのローカルバス2に接続されて
いる他のデバイス例えばCPU3やバスブリッジ4は、
スヌープ信号を発行しこのローカルバス2上に送出する
(1002)。スヌープ信号は、受信したリクエスト信
号中のアドレス信号に係るデータを、自分がどのような
形で保持しているかを表明するための信号である。例え
ば、リクエストされたアドレスに係るデータがあるCP
U3のCPUキャッシュ31上にあり、かつそのデータ
がメモリ5上のデータと同じであるならば、そのCPU
3はヒットクリーンを示すスヌープ信号を発行する。ま
た、リクエストされたアドレスに係るデータがあるCP
U3のCPUキャッシュ31上にあり、かつそのデータ
がメモリ5上のデータを変形したデータ即ち最新のデー
タであるならば、そのCPU3はヒットモディファイド
を示すスヌープ信号を発行する。もし、リクエストされ
たアドレスに係るデータがあるCPU3のCPUキャッ
シュ31上にないならば、そのCPU3はミスを示すス
ヌープ信号を発行する。
【0034】スヌープ信号によって各デバイス(図1で
は複数のCPU3及びバスブリッジ4)からの表明が行
われた後、それらのデバイスのうちいずれかがレスポン
ス信号を発行し、そのレスポンス信号をローカルバス2
上に送出する。即ち、ヒットモディファイド又はヒット
クリーンを示すスヌープ信号を発行したデバイスがあれ
ば、そのデバイスが、リクエストに係る手順を正常終了
させる旨のレスポンス信号即ちノーマルを示すレスポン
ス信号を発行し、ローカルバス2上にこれを送出する。
ノーマルを示すレスポンス信号を発行したデバイスは、
該当するデータをデータ信号としてローカルバス2上に
送出する。
【0035】また、図3や図4に示すように全てのCP
U3がミスを示すスヌープ信号を発行しているときに
は、そのローカルバス2に接続されているバスブリッジ
4がレスポンス信号を発行する。バスブリッジ4により
発行されるレスポンス信号の内容は、そのバスブリッジ
4のブリッジキャッシュ41上に、リクエストされたア
ドレスに係るデータが存在しているか否かにより、異な
る内容になる。
【0036】まず、リクエストされたアドレスに係るデ
ータがブリッジキャッシュ41上に存在している即ちキ
ャッシュヒットしているのであれば、図3に示すよう
に、バスブリッジ4はリクエストに係る手順を正常終了
させる旨のレスポンス信号即ちノーマルを示すレスポン
ス信号を発行し、リクエスト信号が送出されたローカル
バス2上にこれを送出する(1003)。その後、バス
ブリッジ4は、そのブリッジキャッシュ41上に存す該
当するデータを、データ信号としてローカルバス2上に
送出する(1004)。リクエスト信号を発行したCP
U3は、レスポンス信号及びデータ信号の受信によっ
て、必要とするデータを獲得する。
【0037】逆に、リクエストされたアドレスに係るデ
ータがブリッジキャッシュ41上に存在していない即ち
キャッシュミスしているのであれば、バスブリッジ4
は、図4に示すように、データを後で送るから待機せよ
という趣旨のレスポンス信号即ちディファーを示すレス
ポンス信号を発行し、リクエスト信号が送出されたロー
カルバス2上にこれを送出する(1005)。バスブリ
ッジ4は、ディファーを示すレスポンス信号をローカル
バス2上に送出するのと相前後して、 アドレス信号=読出先アドレス 種類信号=メモリリード 発行元信号=発行元のバスブリッジ4に固有の番号 有効信号=オン という内容のリクエスト信号を発行し、システムバス1
上に送出する(1006)。
【0038】システムバス1に接続されているデバイス
のうち、リクエストされたアドレスに係るデータを保持
していないデバイスは、このリクエスト信号に対しミス
を示すスヌープ信号を以て応答し、保持しているデバイ
スはヒットモディファイド又はヒットクリーンを示すス
ヌープ信号を以て応答する(1007)。図1の構成で
はシステムバス1にメモリ5が接続されているから、他
にヒットモディファイド等の表明を行ったデバイスがな
ければ、続いて、メモリ5がノーマルを示すレスポンス
信号を発行し(1008)、更に、リクエストされたア
ドレスに係るデータをデータ信号としてシステムバス1
上に送出する(1009)。バスブリッジ4は、このデ
ータをそのブリッジキャッシュ41上にキャッシュす
る。
【0039】バスブリッジ4は、システムバス1を介し
メモリ5からノーマルを示すレスポンス信号を受信した
とき、 アドレス信号=データをリクエストしたCPU3のアド
レス 種類信号=応答 発行元信号=発行元のバスブリッジ4に固有の番号 有効信号=オン という内容のリクエスト信号を発行し、ローカルバス2
上にこれを送出する(1010)。続いて、このローカ
ルバス2に接続されている全てのデバイスからスヌープ
信号が発行される(1011)。リクエスト元のバスブ
リッジ4以外のデバイスからのスヌープ信号はミスを示
すスヌープ信号となる。更に、バスブリッジ4からノー
マルを示すレスポンス信号が発行されローカルバス2上
に送出される(1012)。バスブリッジ4は、続い
て、メモリ5からキャッシュしたデータ即ち先だってC
PU3からリクエストされたアドレスに係るデータを、
データ信号としてローカルバス2上に送出する(101
3)。
【0040】以上の説明から明らかなように、ブリッジ
キャッシュ41がミスしている図4の例では、ヒットし
ている図3の例に比べ、多段階に亘る手順を実行しなけ
ればならない。従って、CPU3がリクエスト信号を発
行してからデータを受け取るまでの時間を比べると、図
3の例における時間T0に比べ図4の例における時間T1
の方が長くなる。この実施の形態の特徴の一つは、バス
ブリッジ4に、ローカルバス2上へのリクエスト信号の
発行に関する予測機能及びシステムバス1上へのリクエ
スト信号の見込発行機能を持たせた点にある。即ち、こ
の実施の形態におけるバスブリッジ4は、図3に示す手
順又は図4に示す手順を実行するのと並行して、ローカ
ルバス2上のリクエスト信号に係る予測を実行し、予測
の結果必要とされればシステムバス1上にリクエスト信
号を送出する。
【0041】リクエスト信号に係る予測を実行する例
を、図5に示す。バスブリッジ4は、ローカルバス2に
接続されているデバイス例えばCPU3により発行され
たリクエスト信号を受信したとき(1001)、このリ
クエスト信号に基づき、そのリクエスト信号を発行した
CPU3が将来発行するであろうリクエスト信号がどの
ような内容の信号であるかを予測する。バスブリッジ4
は、メモリ5上のアドレス(より一般的にいえば、バス
ブリッジ4の接続先のローカルバス2に接続されていな
いデバイス上のアドレス)からデータをリードする旨の
リクエスト信号の発行が予測できるときには、そのアド
レスに係るデータがブリッジキャッシュ41上にあるか
否かを判断する。即ち、発行されるであろうと予測した
リクエスト信号が将来実際に発行されたときに、図3に
示した手順を以て(従ってディファーなしで)このリク
エスト信号に対し応答できるか否かを、判断する。ブリ
ッジキャッシュ41上にないと判断したとき、即ち“こ
のままで放置したのでは、発行されるであろうと予測し
たリクエスト信号が将来実際に発行されたときに、図4
に示したディファーを伴う手順を実行せざるを得なくな
る”と判断したとき、バスブリッジ4は、予測したリク
エスト信号がCPU3によって実際に発行されるのを待
たないで、予測の結果に基づきリクエスト信号を発行し
て、システムバス1上に送出する(1014)。
【0042】バスブリッジ4が予測結果に基づきリクエ
スト信号を発行した後、システムバス1に接続されてい
る各デバイスによるスヌープ信号の発行(1015)、
システムバス1に接続されているいずれかのデバイスに
よるレスポンス信号の発行(1016)、及びそのデバ
イスによるデータ信号の発行(1017)という手順が
実行される。なお、図5においては、ステップ1015
〜1017にて発行される信号及びその発行元が、前述
のステップ1007〜1009にて発行される信号及び
その発行元と(アドレス及びデータをのぞき)同じであ
る例を示している。
【0043】このようにしてブリッジキャッシュ41上
にデータがキャッシュされた後に、ステップ1001で
リクエスト信号を発行したCPU3が予測通りのリクエ
スト信号を発行し(1018)、これに対しバスブリッ
ジ4以外の全てのデバイスがミスを示すスヌープ信号を
発行した場合(1019)、バスブリッジ4は、ノーマ
ルを示すレスポンス信号を発行し(1020)、更にス
テップ1017にて得たデータに係るデータ信号を発行
する(1021)。ステップ1018〜1021の実行
に要する時間は、図3においてステップ1001〜10
04を実行するのに要する時間T0と等しく、図4にお
いてステップ1001〜1013を実行するのに要する
時間T1より短い。言い換えれば、CPU3から見た場
合、メモリリードに係るリクエストがブリッジキャッシ
ュ41にてヒットする確率即ちブリッジキャッシュ41
におけるキャッシュヒット率が、実質的に向上する。こ
れによって、この実施の形態では、処理遅延の短縮ひい
てはシステム性能の向上を実現している。更に、ローカ
ルバス2上にディファーを示すレスポンス信号を送出す
る頻度が低くなるため、ローカルバス2の負荷が低減さ
れる。
【0044】また、システムバス1における信号伝送に
着目すると、この実施の形態では、ステップ1014〜
1017が新たに追加されている。しかし、ステップ1
014〜1017を新たに追加したためにシステムバス
1の負荷(信号伝送量)が極端に増加することはない。
第1に、CPU3によって実際にリクエスト信号が発行
されてからでないとシステムバス1を介しメモリ5から
ブリッジキャッシュ41にデータをキャッシュする手順
が実行されない構成との比較でいえば、システムバス1
上へのリクエスト信号の送出からデータ信号の受信まで
の手順の実行時点が繰り上がるにすぎず、従って十分に
長い時間での平均で見た場合システムバス1の負荷は増
えない。第2に、この実施の形態では、後述のように、
システムバス1の負荷をモニタした結果に基づき、或い
は予測結果に現れたアドレスに基づき、又は発行された
リクエスト信号の種類に応じて、予測結果に基づくリク
エスト信号の発行を制限しているから、システムバス1
の負荷が瞬時的に増加することを防ぐことができる。
【0045】次に、図2に示したバスブリッジ4の各部
がどのように動作するのかに関し、説明する。
【0046】まず、図2中のローカルバスI/F421
中、リクエスト受信部428は、他のデバイスにより発
行されたリクエスト信号をローカルバス2を介して受信
する機能を有している。リクエスト発行部429は、リ
クエスト信号を発行しローカルバス2上に送出する機能
を有している。スヌープ送受信部430は、スヌープ信
号を発行しローカルバス2上に送出する機能及び他のデ
バイスにより発行されたスヌープ信号をローカルバス2
を介して受信する機能を有している。レスポンス生成部
431は、レスポンス信号を発行しローカルバス2上に
送出する機能を有している。
【0047】また、システムバスI/F422中、リク
エスト受信部434は、他のバスブリッジ4等により発
行されたリクエスト信号をシステムバス1を介し受信す
る機能を有している。リクエスト発行部435は、リク
エスト信号を発行しシステムバス1上に送出する機能を
有している。スヌープ出力部436は、スヌープ信号を
発行してシステムバス1上に送出する機能を有してい
る。レスポンス受信部437は、メモリ5等により発行
されたレスポンス信号をシステムバス1を介して受信す
る機能を有している。
【0048】更に、タグ制御部423は、リクエスト受
信部428又は434がリクエスト信号を受信したとき
及びリクエスト予測部427又は433が予測信号を発
行したとき、キャッシュタグ制御信号を発行する機能を
有している。キャッシュヒット判定部424は、キャッ
シュタグ制御信号の発行によってタグメモリ43から読
み出された信号と、リクエスト受信部428若しくは4
34が受信したリクエスト信号又はリクエスト予測部4
27若しくは433が発行した予測信号とに基づき、当
該リクエスト信号に係るアドレスのデータがブリッジキ
ャッシュ41上に存在しているか否か即ちヒットしてい
るかミスしているかを判定する機能を有している。キャ
ッシュデータ制御部425は、ヒットしているとの判定
が下され更にレスポンス信号が発行された後に、ブリッ
ジキャッシュ41上の該当するデータをそのデータをリ
クエストしたデバイスが接続されているバス上にデータ
信号として送出させるべく、キャッシュデータ制御信号
を発行する機能を有している。タグメモリ43は、イン
デクス、タグ部、ステート等の情報を互いに対応付けて
記憶している。ブリッジキャッシュ41は、システムバ
ス1又はローカルバス2を介し所定のキャッシュブロッ
クサイズを単位としてデータを受け取り、記憶する。
【0049】ローカルバス2に接続されているあるCP
U3が、メモリリード、I/Oリード等、何らかのデー
タを要求するためのリクエスト信号を発行したとする。
このとき、上述の如く、タグ制御部423がキャッシュ
タグ制御信号を発行し、キャッシュヒット判定部424
が判定を実行する。より詳細には、タグ制御部423
は、受信したリクエスト信号中のアドレス信号から取り
出したインデクスに基づきキャッシュタグ制御信号を発
行し、キャッシュヒット判定部424は、タグメモリ4
3から読み出されるタグ部、ステート等の情報と、リク
エスト受信部428が受信したリクエスト信号中のアド
レス信号から取り出したタグ部等とに基づき、ヒット/
ミス判定を実行する。なお、ブリッジキャッシュ41の
ヒット/ミス判定に係る手順の詳細については、前掲の
公報を参照されたい。スヌープ送受信部430は、この
判定の結果に応じてヒット(ヒットクリーン若しくはヒ
ットモディファイド)又はミスを示すスヌープ信号を発
行し、かつ、他のデバイスからローカルバス2を介しス
ヌープ信号を受信する。
【0050】他のデバイス全てがミスを示すスヌープ信
号を発行しており、かつ、“ヒット”との判定が下され
ている場合、リクエスト発行部429がノーマルを示す
レスポンス信号を発行し、続いてキャッシュデータ制御
部425がブリッジキャッシュ41上の該当するデータ
をデータ信号としてローカルバス2上に送出させる(図
3参照)。
【0051】他のデバイス全てがミスを示すスヌープ信
号を発行しており、かつ、“ミス”との判定が下されて
いる場合、リクエスト発行部429がディファーを示す
レスポンス信号を発行し、続いてリクエスト発行部43
5がリクエスト信号を発行し、スヌープ出力部436が
ミスを示すスヌープ信号を発行し、レスポンス受信部4
37がメモリ5等からレスポンス信号を受信する。この
レスポンス信号がノーマルを示しているときは、該当す
るデータがレスポンス信号の発行元からブリッジキャッ
シュ41上にキャッシュされ、リクエスト発行部429
がリクエスト元のCPU3に対し応答を示すリクエスト
信号を発行し、スヌープ送受信部430がヒットを示す
スヌープ信号を発行すると共に他のデバイスからミスを
示すスヌープ信号を受信し、レスポンス信号生成部43
1がノーマルを示すレスポンス信号を生成し、キャッシ
ュデータ制御部425がブリッジキャッシュ41上の該
当するデータをローカルバス2上に送出する(図4参
照)。
【0052】ローカルバスI/F421中の負荷モニタ
部426及びリクエスト予測部427並びにシステムバ
スI/F422中の負荷モニタ部432及びリクエスト
予測部433は、リクエスト信号の予測やその結果に基
づくリクエスト信号の発行に関連する部材である。ま
ず、リクエスト予測部427は、ローカルバス2を介し
て受信したリクエスト信号に基づき、将来ローカルバス
2上に現れるであろうリクエスト信号の内容を予測す
る。同様に、リクエスト予測部433は、システムバス
1を介して受信したリクエスト信号に基づき、将来シス
テムバス1上に現れるであろうリクエスト信号の内容を
予測する。
【0053】タグ制御部423は、実際に受信したリク
エスト信号に基づき行ったのと同じく、リクエスト予測
部427又は433における予測の結果を示す予測信号
に基づき、キャッシュタグ制御信号を発生させる。キャ
ッシュヒット判定部424は予測信号に関しヒット/ミ
スの判定を実行する。“ミス”と判定されたときにはリ
クエスト発行部435により当該予測信号に基づくリク
エスト信号が発行され、スヌープ出力部436によりミ
スを示すスヌープ信号が発行され、レスポンス受信部4
37により他のデバイスからのレスポンス信号が受信さ
れる。このレスポンス信号がノーマルを示す信号であれ
ば、ブリッジキャッシュ41上にデータがキャッシュさ
れる。この後、予測したリクエスト信号が実際にCPU
3等により発行されるのに応じて、スヌープ信号及びレ
スポンス信号の送受信に係る手順を経て、ブリッジキャ
ッシュ41上のデータがローカルバス2上に送出される
(図5参照)。
【0054】更に、負荷モニタ部426は、ローカルバ
ス2の負荷をモニタし、その結果から見てローカルバス
2に比較的大きな負荷が担わされていると見なせるとき
や、近い将来そのような状況に陥るであろうと推定でき
るときに、高負荷フラグを発生させる。同様に、負荷モ
ニタ部432は、システムバス1の負荷をモニタし、そ
の結果から見てシステムバス1に比較的大きな負荷が担
わされていると見なせるときや、近い将来そのような状
況に陥るであろうと推定できるときに、高負荷フラグを
発生させる。リクエスト予測部427は、負荷モニタ部
432(及び426)が高負荷フラグを発生させている
ときは、予測信号の発行をやめる(予測信号を無効化す
る)。リクエスト予測部433は、負荷モニタ部426
(及び432)が高負荷フラグを発生させているとき
は、予測信号の発行をやめる。
【0055】図6に負荷モニタ部426の内部構成を、
また図7にその動作を、それぞれ示す。なお、負荷モニ
タ部426と負荷モニタ部432は、互いに、ローカル
バス2から信号を入力するのかそれともシステムバス1
から信号を入力するのかという点と、ローカルバス2の
高負荷状態を示す高負荷フラグを出力するのかそれとも
システムバス1の高負荷状態を示す高負荷フラグを出力
するのかという点で、相違しているのみであり、実質的
に同じ内部機能を有するものである。そこで、説明の簡
略化のため、ここでは負荷モニタ部432の内部構成及
び動作については説明を省略する。負荷モニタ部432
の内部構成及び動作に関しては、負荷モニタ部426の
内部構成及び動作に関する説明中の「ローカルバス2」
を「システムバス1」に、「システムバス1」を「ロー
カルバス2」に、それぞれ読み替えることによって、理
解されたい。
【0056】図6に示すように、負荷モニタ部426
は、リクエスト信号中の有効信号を計数するインクリメ
ンタルカウンタ438を有している。インクリメンタル
カウンタ438により得られる計数値は、インクリメン
タルカウンタ438が最近リセットされてから現時点ま
での間に、ローカルバス2上に送出された有効なリクエ
スト信号(即ちその有効信号がオンしているリクエスト
信号)の個数を表している。また、負荷モニタ部426
は所定周期でパルスを発生させるパルス発生器439を
有しており、インクリメンタルカウンタ438はパルス
発生器439が発生させたパルスにてリセットされる。
図7に示される例では、パルス発生器439が10基本
サイクルを繰返し周期としてパルスを発生させており
(図7(a)参照)、インクリメンタルカウンタ438
はパルス発生器439が発生させたパルスの立下りタイ
ミングt00,t01,…でリセットされている(図7
(c)参照)。
【0057】負荷モニタ部426は、インクリメンタル
カウンタ439の出力に基づき高負荷フラグを発生させ
る高負荷フラグ発生部440を有している。高負荷フラ
グ発生部440はA入力及びB入力を有する比較器44
1を有しており、この比較器441は、A入力とB入力
との間にA≧Bの関係が成立したときには“1”を、成
立していないときには“0”を、出力する。比較器44
1のA入力にはインクリメンタルカウンタ438の出力
が、B入力には判定基準レジスタ442上の判定基準が
入力されている。従って、比較器441の出力が“1”
となるのは、インクリメンタルカウンタ438が最近リ
セットされてから現時点までにローカルバス2上に送出
された有効なリクエスト信号の個数が判定基準を上回っ
たとき、即ちローカルバス2における信号伝送量が比較
的多いときである。
【0058】例えば、有効なリクエスト信号の立下りタ
イミングがt10,t11,…であり(図7(b)参照)、
かつ、判定基準が“2”であるとすると、タイミングt
00にてリセットされてからのインクリメンタルカウンタ
438による計数値は、2個目の有効なリクエスト信号
の立下りタイミングt11から次のパルスの立下りタイミ
ングt01までの間、2以上になる。従って、比較器44
1の出力は、t11〜t01の期間、“1”になる。
【0059】高負荷フラグ発生部440は、パルス発生
器439が発生させたパルスにて制御されるセレクタ4
43と、セレクタ443の出力を保持する高負荷フラグ
レジスタ444とを、有している。セレクタ443は、
パルス発生器439の出力たるパルスが“1”である間
は比較器441の出力を選択し、“0”である間は高負
荷フラグレジスタ444によって保持されている信号を
選択する。選択された信号は高負荷フラグレジスタ44
4に書き込まれる。
【0060】例えば、図7に示される例では、パルス発
生器439が発生させたパルスの立上りタイミング
20,t21,…にて比較器41の出力(図7(d)参
照)がセレクタ443により選択され高負荷レジスタ4
44に書き込まれる(図7(e)参照)。続いて、立下
りタイミングt00,t01,…にて高負荷フラグレジスタ
444上の信号(図7(f)参照)がセレクタ443に
より選択される(図7(e)参照)。第1のパルスの立
上りタイミングt20から第2のパルスの立上りタイミン
グt21までの間に発生した有効なリクエスト信号の個数
が比較器441における判定基準を上回っているため、
この例では、第2のパルスの立下りタイミングt01から
第3のパルスの立下りタイミングt02までの間、高負荷
レジスタ444上に“1”が保持される。
【0061】このように、直前のパルス繰返し周期にお
ける有効なリクエスト信号の発生個数が判定基準を上回
ったときに、高負荷フラグレジスタ444には“1”が
書き込まれ、高負荷フラグレジスタ444の内容は少な
くとも次のパルス立下りまで保持される。この実施の形
態では、高負荷フラグレジスタ444により保持されて
いる信号を高負荷フラグとして出力している。即ち、高
負荷フラグレジスタ444に“1”が保持されていれば
高負荷フラグ=オン、“0”が保持されていれば高負荷
フラグ=オフである。この実施の形態における高負荷フ
ラグは、従って、直前のパルス繰返し周期1周期におい
てローカルバス2の負荷が大きかったことを示すフラグ
である。
【0062】また、負荷モニタ部426は、判定基準レ
ジスタ442に判定基準を設定する手段として判定基準
設定部445を有している。判定基準設定部445は、
使用者又は外部装置からの指令に応じてソフトウエア的
又はハードウエア的に、判定基準レジスタ442上に判
定基準を設定する。判定基準は比較器441の出力を
“1”にするか否かを決めるための基準値である。この
ように、判定基準を使用者又は外部装置から設定できる
ようにしているため、この実施の形態では、例えば、シ
ステムに対し要求されている性能に応じ判定基準を任意
に変化させ、これによって、予測結果に基づくリクエス
ト信号の発行に加える制限の度合を変化させることがで
きる。
【0063】図8に、リクエスト予測部427の内部構
成を示す。なお、リクエスト予測部433の内部構成及
び動作はリクエスト予測部427の内部構成及び動作と
ほぼ同じであるので、説明の簡略化のため、ここではリ
クエスト予測部433の内部構成及び動作については説
明を省略する。リクエスト予測部433の内部構成及び
動作に関しては、リクエスト予測部427の内部構成及
び動作に関する説明中の「ローカルバス2」を「システ
ムバス1」に、「システムバス1」を「ローカルバス
2」に、それぞれ読み替えることによって、理解された
い。
【0064】この実施の形態におけるリクエスト予測部
427は、ローカルバス2を介し受信したリクエスト信
号中のアドレス信号にキャッシュブロックサイズを加算
する加算器446を有している。加算器446から出力
されるキャッシュブロックサイズ加算後のアドレス信号
は、受信したリクエスト信号中の種類信号及び発行元信
号並びにアンドゲート447から出力される有効信号と
共に、予測信号として出力される。この予測信号は、ロ
ーカルバス2上に将来送出されるであろうリクエスト信
号を示している。即ち、この実施の形態では、“あるア
ドレスのデータをリードする旨のリクエスト信号をある
デバイスがある時点で発行したのであれば、そのデバイ
スが次にリードするアドレスは、発行したリクエスト信
号に係るアドレスに連続する次のアドレスであろう”、
と想定している。この実施の形態によれば、将来ローカ
ルバス2上に送出されるであろうリクエスト信号をリク
エスト予測部427が予測しその結果を予測信号として
タグ制御部423その他に与え、リクエストされるであ
ろうアドレスに係るデータを予めブリッジキャッシュ4
1上にキャッシュしておくようにしたため、ブリッジキ
ャッシュ41のキャッシュヒット率の高いシステムが得
られる。
【0065】しかしながら、ローカルバス2を介してリ
クエスト信号を受信したときでも、予測信号を発行すべ
きでないときがある。そのため、リクエスト予測部42
7による予測信号の発行には制限が施される。予測信号
の発行の制限に関する部材として、リクエスト予測部4
27内には、アンドゲート447、デコーダ448及び
アドレステーブル449が設けられている。また、加算
器446も、予測信号の発行の制限に関連する機能を有
している。更に、予測信号の発行の制限に関連する信号
として、前述の如く、ローカルバス2及びシステムバス
1各々に係る高負荷フラグがリクエスト予測部427に
入力されている。なお、リクエスト予測部427は、こ
れらの部材の他、4個のインバータ450、451、4
52及び453も有している。
【0066】加算器446は、ページバウンダリを検出
しOVFフラグを出力する機能を有している。図9に、
キャッシュブロックサイズが32バイト、ページサイズ
が4096バイト=4kバイトである場合の加算器44
6の機能を示す。この図においては、加算器446は7
ビット加算器であり、受信したリクエスト信号中のアド
レス信号(図中の「入力」)に25即ちキャッシュブロ
ックサイズを加算することによって、予測信号を構成す
るアドレス信号(図中の「出力」)を発生させる。
【0067】更に、加算器446は、図中の「入力」に
キャッシュブロックサイズを加算した結果212の桁への
桁上がりが生じた場合に、その旨を示す信号であるOV
Fフラグをセットする。212の桁への桁上がりが生じる
のは、図中の「入力」と「出力」とが別のページに属し
ているとき、即ち加算によりページバウンダリを越えて
しまうときである。また、図8に示したように、OVF
フラグは、インバータ451により論理反転された上
で、有効信号をゲートするためのアンドゲート447に
入力されている。従って、加算器446によるキャッシ
ュブロックサイズの加算の結果アドレス信号の値がペー
ジバウンダリを越えてしまうようなときには、アンドゲ
ート447の出力(即ち予測信号中の有効信号)がオフ
となる。タグ制御部423その他の部材は、有効信号が
オフしている予測信号即ち無効な予測信号を受け付けな
い。
【0068】このようにページバウンダリ越えに係る予
測信号の発行を禁止するようにした理由の一つは、互い
に別のページに属する2個のアドレスに同一のデバイス
が連続的にアクセスする可能性が低いこと、にある。ま
た、キャッシュブロックサイズを加算した結果得られる
アドレスが、実装されていない物理アドレスに該当する
場合、アドレスオーバエラーが発生してしまう。このア
ドレスオーバエラーを防ぐことも、ページバウンダリ越
えに係る予測信号の発行を禁止するようにした理由の一
つである。即ち、この実施の形態では、予測結果に基づ
くリクエスト信号の発行によってシステムバス1の負荷
が増大することやエラーが発生することを、ページバウ
ンダリ越え判定及びその結果に基づく予測信号発行制限
によって、防いでいる。
【0069】デコーダ448は、図10に示すように、
種類判別部454、キャッシュ可/不可判別部455並
びにアンドゲート456及び457を有している。種類
判別部454及びキャッシュ可/不可判別部455は、
いずれも、ローカルバス2を介し受信したリクエスト信
号中の種類信号に基づき判定を実行し、その結果に応じ
て“1”又は“0”を出力する。種類判別部454及び
キャッシュ可/不可判別部455の出力はいずれもアン
ドゲート456に入力されており、アンドゲート456
の出力はアンドゲート457に入力されている。アンド
ゲート457は、受信したリクエスト信号中の有効信号
を、アンドゲート456の出力を利用してゲートする。
アンドゲート457の出力は図8中のアンドゲート44
7に入力される。
【0070】種類判別部454は、ローカルバス2を介
し受信したリクエスト信号がメモリリード、I/Oリー
ド等、データの読出に関するものである場合には“1”
を出力し、キャッシュ無効化等である場合には“0”を
出力する。従って、ローカルバス2を介し受信したリク
エスト信号が有効なリクエスト信号であったとしても、
そのリクエスト信号がキャッシュ無効化に係るリクエス
ト信号であった場合には、リクエスト予測部427から
有効な予測信号が出力されることはない。このようにし
て、この実施の形態では、他のデバイスが必要としてい
るデータが予測結果に基づき発行したリクエスト信号に
よって無効化されてしまうことを、防いでいる。
【0071】また、キャッシュ可/不可判別部455
は、種類信号中に含まれているフラグに基づき、そのリ
クエスト信号が非キャッシュ可能空間(uncacheble spac
e)に属するアドレスに係るものであるか否かを判定し、
そうでない場合には“1”を、そうである場合には
“0”を出力する。従って、メモリ5によって提供され
る記憶空間の一部が、キャッシュの対象とすべきでない
非キャッシュ可能空間として扱われているときに、この
空間に属するアドレスに関し予測信号を発行してしまう
ことひいてはシステムバス1上にリクエスト信号を送出
してしまうことを、防ぐことができる。これによって、
この実施の形態では、予測結果に基づくリクエスト信号
の発行によってシステムバス1の負荷が増大することを
防いでいる。
【0072】図8に示したアドレステーブル449に
は、リードによってその内容が変化してしまうレジスタ
(例えばステータスレジスタ)のアドレス等、予測結果
に基づくリクエスト信号の発行によって何らかの否定的
な「副作用」が生じるであろうアドレスが、登録されて
いる。加算器446から出力されるアドレス信号即ちキ
ャッシュブロックサイズが加算されたアドレス信号が、
アドレステーブル449に登録されているいずれかのア
ドレスと一致ししている場合、アドレステーブル449
は“1”値の予測発行不可信号を出力する。この信号は
インバータ450を介しアンドゲート447に入力され
る。従って、この実施の形態によれば、否定的な「副作
用」につながるリクエスト信号の発行を防止できる。
【0073】更に、図8に示したアンドゲート447に
は、負荷モニタ部432により生成された高負荷フラグ
がインバータ453を介して入力されている。従って、
システムバス1上にリクエスト信号を送出するとシステ
ムバス1の負荷がある限界を超えて増加してしまうこと
が予測されるとき、システムバス1上へのリクエスト信
号の送出が禁止されるため、システムバス1の負荷を抑
えることができる。また、アンドゲート447には、負
荷モニタ部426により生成された高負荷フラグがイン
バータ452を介して入力されている。従って、ローカ
ルバス2の負荷が高まっているときに、予測結果に基づ
きブリッジキャッシュ41にデータをキャッシュしてお
くことを禁止し、これによって、ローカルバス2に接続
されているデバイスからのリードに係るリクエストに対
するデータ信号による応答を意図的に遅らせ、ローカル
バス2の負荷を低減することもできる。
【0074】実施の形態2.上述の実施の形態1では、
ローカルバス2に接続されているデバイスがリードに係
るリクエスト信号を発行したとき、このリクエスト信号
に基づき予測信号を発行し、さらにシステムバス1上に
この予測信号に基づくリクエスト信号を送出するように
していた。これにたいし、以下説明する実施の形態2で
は、ローカルバス2に接続されているデバイスからのリ
クエスト信号の発行に関する履歴に基づき、リクエスト
予測部427が予測信号を発行する。なお、リクエスト
予測部433に関しても同様の内部構成及び動作とする
ことができるため、以下、リクエスト予測部427の内
部構成及び動作に関し説明する。リクエスト予測部43
3の内部構成及び動作に関しては、従前の如く、適宜読
み替えられたい。また、実施の形態1と共通する又は対
応する構成については、説明を省略する。
【0075】図11に、この実施の形態におけるバスブ
リッジ4の動作、特に、ローカルバス2に接続されてい
るデバイスによりリードに係るリクエスト信号が発行さ
れたときの動作を示す。図中、ステップ1001A〜1
013A及び1001B〜1013Bは、それぞれ、図
5に示したステップ1001〜1013と同様の処理に
係るステップである。また、ここでは、ステップ100
1Aにてリクエスト信号を発行したデバイスと、ステッ
プ1001Bにてリクエスト信号を発行したデバイスと
が、同じデバイスであるとし、ステップ1001Aにて
リクエストされたアドレスと、ステップ1001Bにて
リクエストされたアドレスとが、相連続するアドレスで
あるとする。但し、ステップ1001A〜1013Aと
ステップ1001B〜1013Bとの間に、これらのス
テップに係るリクエスト信号の発行元と同じ又は別のデ
バイスによる通信が行われていても構わないものとす
る。
【0076】この実施の形態では、このように、同一の
デバイスが相連続するアドレスに係る複数の(図中2個
の)リクエスト信号をローカルバス2上に送出したとき
に、リクエスト予測部427が予測を実行し、必要であ
ればステップ1014〜1021に係る手順が実行され
る。ステップ1001A〜1013Aが実行されただけ
では、予測等この発明が特徴とする処理は実行されな
い。この実施の形態によれば、このようにローカルバス
2側におけるリクエスト信号発行履歴に基づき予測及び
その結果に基づくシステムバス1側へのリクエスト信号
発行処理を実行しているため、実施の形態1に比べ予測
の精度が高くなり、かつ、システムバス1の負荷が低減
される。
【0077】図12に、この実施の形態におけるリクエ
スト予測部427の構成を示す。この実施の形態におい
ては、新たに、減算器458、過去リクエスト比較部4
59及びオアゲート460を設けている。減算器458
は、ローカルバス2を介し受信したリクエスト信号中の
アドレス信号からキャッシュブロックサイズを減じ、そ
の結果得られる減算後のアドレス信号を過去リクエスト
比較部459に供給している。過去リクエスト比較部4
59は、減算後のアドレス信号に係るリクエスト信号
が、ローカルバス2を介し受信したリクエスト信号の発
行元のデバイスによって、発行されたことがあるかどう
かを判断する。発行されたことがある場合、過去リクエ
スト比較部459は、予測信号の発行を許可すべく一致
信号を出力する。オアゲート460は、各過去リクエス
ト比較部459から出力される一致信号を入力し、複数
設けられている過去リクエスト比較部459のうちいず
れか一つから一致信号が得られたときに、“1”を出力
しアンドゲート447に供給する。このような構成とす
ることで、過去におけるリクエスト信号発行履歴に基づ
く予測信号の発行が可能になる。
【0078】また、過去リクエスト比較部459は、接
続先のローカルバス2上に接続されている各デバイスに
対応して設けられている。即ち、第1のCPU3に対応
して第1の過去リクエスト比較部459を設け、第2の
CPU3に対応して第2の過去リクエスト比較部459
を設け、…というように、ローカルバス2に接続されて
いるデバイス毎に過去リクエスト比較部459を設け
る。過去リクエスト比較部459は、対応するデバイス
によるローカルバス2上へのリクエスト信号の発行履歴
を保存する。この実施の形態では、デバイス毎に過去リ
クエスト比較部459を設けることによって、後述のよ
うに、高い予測精度と小規模なハードウエア(低いコス
ト)という利点を両立させている。各過去リクエスト比
較部459には、また、リクエスト信号発行履歴に係る
比較判定を行うべく、受信したリクエスト信号中の種類
信号や発行元信号も入力される。また、リクエスト信号
の発行履歴を保存すべく、受信したリクエスト信号中の
アドレス信号も、各過去リクエスト比較部459に入力
される。更に、受信したリクエスト信号中の発行元信号
に基づきデコーダ448がいずれかの過去リクエスト比
較部459に係るライト信号を発行する。
【0079】図13に、この実施の形態におけるデコー
ダ448の構成を示す。前述の実施の形態1では、受信
したリクエスト信号中の種類信号を解釈しその結果に基
づき有効信号をゲートしていた。これに対し、この実施
の形態では、受信したリクエスト信号中の種類信号を解
釈した結果と受信したリクエスト信号中の発行元信号を
解釈した結果とに基づき、複数の過去リクエスト比較部
459のうちいずれかを選択的にライト可能にする。な
お、図12に示したように、この実施の形態では、受信
したリクエスト信号中の有効信号がアンドゲート447
に入力されている点にも留意されたい。
【0080】具体的には、この実施の形態においては、
実施の形態1におけるアンドゲート457に代えて発行
元判別部461を設けている。発行元判別部461は、
受信したリクエスト信号中の発行元信号に基づき、複数
の過去リクエスト比較部459のうちリクエスト信号の
発行元に対応するものを選択する。発行元判別部461
は、選択した過去リクエスト比較部459内のリクエス
トキュー(後述)に上記受信したリクエスト信号を書き
込む(キューイングする)べく、その過去リクエスト比
較部459に係るライト信号を発行する。
【0081】図14に、過去リクエスト比較部459の
構成を示す。過去リクエスト比較部459はリクエスト
キュー462及び複数の比較器463を有している。リ
クエストキュー462には、AD、RQ、WTという一
組の入力端子が設けられている。入力端子ADには、ロ
ーカルバス2を介して受信したリクエスト信号のうち対
応するデバイスによって発行されたリクエスト信号に含
まれているアドレス信号が、供給される。入力端子RQ
には、ローカルバス2を介して受信したリクエスト信号
のうち対応するデバイスによって発行されたリクエスト
信号に含まれている種類信号が、供給される。入力端子
WTには、デコーダ448が発行したライト信号が供給
される。即ち、あるデバイスによって発行されたリクエ
スト信号をローカルバス2を介しバスブリッジ4が受信
したとき、デコーダ448はそのリクエスト信号中の発
行元信号に応じていずれかのライト信号をアクティベー
トする。その結果、アクティベートされたライト信号が
供給されている過去リクエスト比較部459のリクエス
トキュー462には、上記受信したリクエスト信号中の
アドレス信号及び種類信号がキューイングされる。
【0082】リクエストキュー462には、更に、AD
0及びRQ0、AD1及びRQ1、…ADm-1及びRQm-1
いうm組の出力端子が設けられている(但し、mはリク
エストキュー462の深さを示す2以上の自然数)。A
0及びRQ0、AD1及びRQ1、…ADm-1及びRQm-1
は、リクエストキュー462内に存するアドレス信号及
び種類信号を、対応する比較器463に供給するための
端子である。比較器463は、リクエストキュー462
の出力端子に対応してm個設けられており、それぞれ、
アドレス信号、種類信号及び発行元信号を入力するため
の端子を2組ずつ備えている。そのうち一方の組に係る
端子には、減算器458から出力されるアドレス信号並
びに受信したリクエスト信号中の種類信号及び発行元信
号が、供給されている。他方の組に係る端子には、リク
エストキュー462の対応する出力端子から供給される
アドレス信号及び種類信号並びにこの過去リクエスト比
較部459に対応するデバイスに固有の発行元番号が、
供給されている。各比較器463は、これら2組の入力
が互いに一致したとき一致信号を出力する。
【0083】このような構成とすることで、対応するデ
バイスから発行されたリクエスト信号を逐次保存し後に
発行履歴として検出することが可能になる。また、デコ
ーダ448によりリクエスト信号の種類を判別し、キュ
ーイングすべきリクエスト信号をできるだけ減らすよう
にしているため、リクエストキュー462の深さを浅く
しても(即ちmが小さくても)、精度よい予測が可能で
ある。従って、リクエストキュー462のサイズを抑え
られるほか、比較器463の個数を減らせるため、低コ
ストでの実現が可能である。
【0084】また、過去リクエスト比較部459をデバ
イス毎に設ける必要はない。しかし、仮に、過去リクエ
スト比較部459特にリクエストキュー462をデバイ
ス毎にわけずに設けたとすると、比較的高頻度でリクエ
スト信号を発行するデバイスからのリクエスト信号によ
って、比較的低頻度でリクエスト信号を発行するデバイ
スからのリクエスト信号が、リクエストキュー462上
から駆逐されてしまう。そのような状況が生じると、比
較的低頻度でリクエスト信号を発行するデバイスについ
ては、この発明の特徴的な効果、即ちブリッジキャッシ
ュ41のキャッシュヒット率改善の効果が、現れにくく
なる。この実施の形態のように、リクエストキュー46
2をデバイス毎に設けることによって、ブリッジキャッ
シュ41のキャッシュヒット率改善の効果が高まる。ま
た、そのために必要なハードウエアの規模も、比較的小
さくて済む。
【0085】なお、実施の形態2は、少なくとも、ロー
カルバス2を介し同じデバイスから2個のリクエスト信
号を受信しないかぎり、予測結果に基づくリクエスト信
号の発行を行わない、という考え方でこの発明を実施し
た例である。この考え方を更に進め、少なくとも、ロー
カルバス2を介し同じデバイスからn個のリクエスト信
号を受信しないかぎり(n:3以上の自然数)、予測結
果に基づくリクエスト信号の発行を行わない、という考
え方でこの発明を実施することもできる。
【0086】実施の形態3.前述の実施の形態1では、
受信したリクエスト信号に基づき予測を行っており、実
施の形態2では、リクエスト信号に関するこれまでの受
信履歴をもその基礎に入れて予測を行っている。従っ
て、予測の精度の面でいえば、実施の形態1に比べ実施
の形態2の方が優れている。即ち、予測結果に基づき発
行されるリクエスト信号の一部が無駄になり(実際には
データがリクエストされないままで終わり)、システム
バス1の負荷が増大する程度の面でいうと、実施の形態
1に比べ実施の形態2の方が優れている。反面、ブリッ
ジキャッシュ41のキャッシュヒット率改善の効果の面
でいうと、予測結果に基づくリクエスト信号発行の頻度
が低い分は、実施の形態1に比べ実施の形態2の方が低
くなる可能性がある。
【0087】このように、実施の形態1と実施の形態2
の間には長短がある。以下説明する実施の形態3は、実
施の形態1の長所と実施の形態2の長所を併存させるこ
とを目的としている。具体的には、負荷モニタ部426
及び432における判定基準を複数通り設け、それによ
って、負荷モニタ部426及び432において複数通り
の高負荷フラグを生成できるようにしている。同時に、
リクエスト予測部427及び433には実施の形態1に
相当する機能と実施の形態2に相当する機能とを設け、
上記複数通りの高負荷フラグのうちいずれがセットされ
ているのかまたどのような組合せで高負荷フラグがセッ
トされているのかに応じて両機能のいずれかを選択的に
使用するようにしている。なお、説明の簡略化のため、
前掲の各実施の形態に関する説明において行った省略と
同様の省略を、以下の説明でも行うこととする。また、
負荷モニタ部426及び432それぞれが2通りの高負
荷フラグを生成する例を説明するが、この実施の形態
は、より多くの高負荷フラグを生成するような構成に変
形することもできる。
【0088】図15に、この実施の形態における負荷モ
ニタ部426の内部構成を示す。この実施の形態では、
インクリメンタルカウンタ438から見て互いに並列な
2個の高負荷フラグ発生部440S及び440Wを設け
ている。これらの高負荷フラグ発生部440S及び44
0Wの内部構成及び動作は、既に説明済みの高負荷フラ
グ発生部440のそれと同じである。更に、判定基準設
定部445は高負荷フラグ発生部440S及び440W
に判定基準を与えている。高負荷フラグ発生部440S
に与えられる判定基準(図中のB1)と、高負荷フラグ
発生部440Wに与えられる判定基準(図中のB2)
は、同じ値にしてもよいが、好ましくは異なる値にす
る。図の例ではB2>B1である。
【0089】この例の如く各判定基準を設定した場合、
パルス立上り時点(図7参照)でA<B1であれば高負
荷フラグ発生部440S及び440Wの出力はいずれも
“0”、B1≦A<B2であれば高負荷フラグ発生部4
40Sの出力が“1”で高負荷フラグ発生部440Wの
出力が“0”、B2≦Aであれば高負荷フラグ発生部4
40S及び440Wの出力はいずれも“1”となる。従
って、高負荷フラグ発生部440Wの出力に比べ高負荷
フラグ発生部440Sの出力の方が負荷の増加に敏感に
反応する。以下の説明では前者を高負荷フラグ(W)と
呼び後者を高負荷フラグ(S)と呼びわけることにす
る。
【0090】図16に、この実施の形態におけるリクエ
スト予測部427の内部構成を示す。この実施の形態に
おいては、リクエスト予測部427内に履歴利用型リク
エスト予測部464S、履歴非利用型リクエスト予測部
464W及び予測論理切換部465が設けられている。
履歴利用型リクエスト予測部464Sは実施の形態2に
おけるリクエスト予測部427(図12参照)と同様の
内部構成を有しており、履歴非利用型リクエスト予測部
464Wは実施の形態1におけるリクエスト予測部42
7(図8参照)と同様の内部構成を有している。予測論
理切換部465は、次の表
【表1】 に示される論理に従い、履歴利用型リクエスト予測部4
64S及び履歴非利用型リクエスト予測部464Wを動
作させる。即ち、予測論理切換部465は、ローカルバ
ス2及びシステムバス1の高負荷フラグ(S)及び高負
荷フラグ(W)がセットされているか否か(“1”値か
否か)に応じ、履歴利用型リクエスト予測部464Sに
て発行された予測信号及び履歴非利用型リクエスト予測
部464Wにて発行された予測信号のうちいずれかを選
択して、選択した予測信号を他の部材に予測信号として
出力する。
【0091】まず、高負荷フラグ(S)及び高負荷フラ
グ(W)がいずれも“0”ならば、予測論理切換部46
5は、予測結果に基づくリクエスト信号の発行によるブ
リッジキャッシュ41のキャッシュヒット率改善の効果
をより大きくすべく、履歴非利用型リクエスト予測部4
64Wにて発行された予測信号を選択する。また、ロー
カルバス2及びシステムバス1のうち少なくとも一方に
関し、高負荷フラグ(S)が“1”で高負荷フラグ
(W)が“0”であるならば、予測結果に基づくリクエ
スト信号の発行によるブリッジキャッシュ41のキャッ
シュヒット率改善の効果を多少犠牲にしてバス負荷を抑
えるべく、履歴利用型リクエスト予測部464Sにて発
行された予測信号を選択する。ローカルバス2及びシス
テムバス1の双方又は一方に関し、高負荷フラグ(S)
及び高負荷フラグ(W)がいずれも“1”ならば、履歴
利用型リクエスト予測部464Sにて発行された予測信
号及び履歴非利用型リクエスト予測部464Wにて発行
された予測信号のいずれも選択しない。
【0092】なお、図16においては、2種類の高負荷
フラグ(ローカルバス2に係る高負荷フラグ及びシステ
ムバス1に係る高負荷フラグ)を予測論理切換部465
から履歴利用型リクエスト予測部464S及び履歴非利
用型リクエスト予測部464Wに供給している。これ
は、図8及び図12に記載されている構成に対応させた
ものである。予測論理切換部465は、履歴利用型リク
エスト予測部464S及び履歴非利用型リクエスト予測
部464Wのうち現在選択している方に対しては、高負
荷フラグとして“0”値の信号を供給する。
【0093】このように、この実施の形態は、バス負荷
を増大させる可能性をはらむ反面キャッシュヒット率改
善の程度が高い履歴非利用型リクエスト予測部464W
と、キャッシュヒット率改善の程度は若干劣るものの無
駄なリクエスト信号の発行によるバス負荷増大の可能性
が低い履歴利用型リクエスト予測部464Sとを、選択
的に利用できるため、実施の形態1及び2に比べ柔軟性
が高くシステム性能向上の効果を生みやすい。なお、図
16では履歴利用型リクエスト予測部446Sと履歴非
利用型リクエスト予測部446Wとを別々のブロックと
して描いているが、実現に際しては、その内部構成の一
部(例えば加算器446)を両者で共用するようにして
もよい。
【0094】なお、以上の説明では、ローカルバス2を
複数個とし、各ローカルバス2に接続されているCPU
3を複数個としていた。しかしながら、この発明を実施
するに際しては、ローカルバス2を1個としてもよい
し、ローカルバス2に接続するCPU3の個数を1個と
してもよい。更に、ローカルバス2に接続するデバイス
としてCPU3及びバスブリッジ4を例示しているが、
メモリやI/Oブリッジ等、他種のデバイスを接続して
もよい。また、ローカルバス2に複数個のバスブリッジ
4を接続してもよい。即ち、以上の説明では図1に示す
2階層のシステムを例示していたが、3階層以上のシス
テムとしてもよい。そのようなシステムでは、1層乃至
複数層上の階層に属するバスとの接続のためのバスブリ
ッジと、1層乃至複数層下の階層に属するバスとの接続
のためのバスブリッジとを設ける。更に、システムバス
1に、CPU等のデバイスを接続してもよい。システム
構成面でのバリエーションに関しては、特開平9−12
8346号公報をも参照されたい。
【0095】更に、以上の説明では、ローカルバス2及
びシステムバス1に係る信号インタフェースが、リクエ
スト信号、スヌープ信号、レスポンス信号及びデータ信
号から構成される例を示していた。しかしながら、この
発明は、各バスの信号構成が他種の構成を採るシステ
ム、言い換えれば各バスにおける信号伝送の手順が上述
の説明とは異なるシステムにも、適用できる。即ち、リ
クエストされたデータをメモリ等のデバイスから獲得す
るまで、データをリクエストしたデバイス(CPUには
限定されない)を一時的に待機させる必要があるシステ
ムであれば、この発明を適用できる。
【0096】更に、以上の説明では、負荷モニタ部42
6にて生成された高負荷フラグ及び負荷モニタ部432
にて生成された高負荷フラグを共にリクエスト予測部4
27に入力する構成に関して説明した。しかしながら、
この発明を実施するに際しては、負荷モニタ部432に
て生成された高負荷フラグのみをリクエスト予測部42
7に入力する構成としてもよい。このようにした場合で
も、システムバス1の負荷をさほど増大させないで、ブ
リッジキャッシュ41のキャッシュヒット率を高めるこ
とができる。より一般的に述べると、リクエスト信号の
発行を予測する機能を一方のバスに関して設け、バスの
負荷をモニタする機能を他方のバスに関して設ける構成
であれば、当該他方のバスの負荷をさほど増大させない
で、当該一方のバスを介したリクエストに対しデータに
より迅速に応答することができる。更に、バス負荷をさ
ほど問題にしなくてもよいシステムであれば、バス負荷
をモニタする機能を省略してもよい。
【0097】
【発明の効果】以上説明したように、この発明によ
ば、第1バスに接続されている複数のデバイスのうちい
ずれかにより将来発行されることが予測されるリクエス
ト信号の内容に基づき、第2バスに接続されているデバ
イスに対しそのデータを要求するリクエスト信号をバス
ブリッジが発行するようにしたため、第1バスに接続さ
れているデバイスによってリクエスト信号が実際に発行
された時点では、既にそのリクエスト信号に係るデータ
がブリッジキャッシュ上にキャッシュされている。従っ
て、バスブリッジがリクエスト信号の発行元のデバイス
に対しそのデータを直ちに送ることが可能になり、リク
エスト信号発行元のデバイスが待機を余儀なくされる頻
度が低くなるため、処理遅延が低減されシステムの性能
が向上する。また、リクエスト信号発行元のデバイスに
対し、待機せよとの指示を与える頻度が減るため、第1
バスの負荷が低減される。
【0098】さらに、所定の予測発行抑圧条件が満たさ
れている場合に、リクエスト信号の予測結果に基づくブ
リッジキャッシュ上へのデータのキャッシュを禁止する
ことにより、予測結果に基づくリクエスト信号の発行に
伴ない生ずる否定的な現象ないし効果を防止できる。例
えば、第2バスにおける信号伝送量すなわち第2バスの
負荷を低減することができる。
【0099】また、この発明によれば、第1バスに接続
されている複数のデバイスのうちいずれかにより将来発
行されるであろうリクエストの内容を予測し、予測した
リクエスト信号の内容を示す予測信号を発行し、この予
測信号に係るデータがブリッジキャッシュ上に存するか
否かを判定し、存していないとの判定が下されたときに
はそのデータを第2バスに接続されているデバイスに対
し要求するリクエスト信号を発行することにより、その
データをブリッジキャッシュ上にキャッシュするように
したため、そのデバイスが実際にリクエスト信号を発行
したときには当該リクエスト信号に係るデータが既にブ
リッジキャッシュ上に存しており、当該デバイスが待機
を余儀なくされ処理遅延ひいてはシステム性能の低下を
発生させることが生じにくくなる。また、リクエスト信
号を発行したデバイスに対し、”そのデータを後で送信
するから待機せよ”と指示するためのレスポンス信号を
発行する頻度が、低くなるため、第1バスの負荷を軽減
できる。
【0100】
【0101】
【0102】
【0103】
【0104】
【0105】
【0106】また、第1バスの負荷が判定基準以上であ
る場合に予測信号の発行を禁止することにより、第1バ
スの負荷を低減させることが可能になる。
【0107】
【0108】
【0109】
【0110】
【0111】
【0112】また、履歴利用型リクエスト予測部及び履
歴非利用型リクエスト予測部を設け、これらのうちいず
れかによる予測結果を選択的に利用することにより、シ
ステムの柔軟性を高めることができる。
【0113】
【0114】
【0115】さらに、第1バスの負荷が第1反対基準よ
り低い場合には履歴非利用型リクエスト予測部を、第1
バスの負荷が第1判定基準より高く第2判定基準より低
い場合には履歴利用型リクエスト予測部を、そして第1
バスの負荷が第2判定基準よりも高い場合には予測信号
の発行禁止をそれぞれ選択するようにすれば、第1バス
の負荷を抑えることと予測精度を高めることとを効果的
に両立させることができる。
【0116】また、第1バスの負荷を第1判定基準及び
第2判定基準と比較しその結果を上述の切替に利用する
ようにすれば、比較的簡素な回路構成によって上述の効
果を実現することができる。
【0117】そして、第1バスには複数のプロセッサ
が、また第2バスにはメモリがそれぞれ接続されている
マルチプロセッサにおいて、第1バスと第2バスとを接
続するバスブリッジとしてこの発明に係るバスブリッジ
を用いることにより、システム全体としてプロセッサの
処理遅延による性能低下が発生し難く、かつ各バスの負
荷が比較的低いシステムを実現することができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1に係るマルチプロセ
ッサシステムの構成を示すブロック図である。
【図2】 この実施の形態におけるバスブリッジの構成
を示すブロック図である。
【図3】 この実施の形態におけるローカルバス及びシ
ステムバス上の信号伝送状態の一例を示すタイミングチ
ャートである。
【図4】 この実施の形態におけるローカルバス及びシ
ステムバス上の信号伝送状態の一例を示すタイミングチ
ャートである。
【図5】 この実施の形態におけるローカルバス及びシ
ステムバス上の信号伝送状態の一例を示すタイミングチ
ャートである。
【図6】 この実施の形態における負荷モニタ部の構成
を示すブロック図である。
【図7】 この実施の形態における負荷モニタ部の動作
を示すタイミングチャートである。
【図8】 この実施の形態におけるリクエスト予測部の
構成を示すブロック図である。
【図9】 この実施の形態における加算器の利用形態を
示すブロック図である。
【図10】 この実施の形態におけるデコーダの構成を
示すブロック図である。
【図11】 この発明の実施の形態2におけるローカル
バス及びシステムバス上の信号伝送状態の一例を示すタ
イミングチャートである。
【図12】 この実施の形態におけるリクエスト予測部
の構成を示すブロック図である。
【図13】 この実施の形態におけるデコーダの構成を
示すブロック図である。
【図14】 この実施の形態における過去リクエスト比
較部の構成を示すブロック図である。
【図15】 この発明の実施の形態3における負荷モニ
タ部の構成を示すブロック図である。
【図16】 この実施の形態におけるリクエスト予測部
の構成を示すブロック図である。
【符号の説明】
1 システムバス、2 ローカルバス、3 CPU、4
バスブリッジ、5メモリ、6 I/Oブリッジ、41
ブリッジキャッシュ、42 バスブリッジ本体、43
タグメモリ、421 ローカルバスインタフェース
(I/F)、422 システムバスインタフェース(I
/F)、424 キャッシュヒット判定部、426,4
32 負荷モニタ部、427,433 リクエスト予測
部、428,434 リクエスト受信部、429,43
5 リクエスト発行部、430スヌープ送受信部、43
1 レスポンス生成部、436 スヌープ出力部、43
7 レスポンス受信部、438 インクリメンタルカウ
ンタ、440,440S,440W 高負荷フラグ発生
部、441,463 比較器、443 セレクタ、44
5 判定基準設定部、446 加算器、447 ゲー
ト、448 デコーダ、449 アドレステーブル、4
54 種類判別部、455 キャッシュ可/不可判別
部、458 減算器、459 過去リクエスト比較部、
461 発行元判別部、462 リクエストキュー、4
64S 履歴利用型リクエスト予測部、464W 履歴
利用型リクエスト予測部、465 予測論理切替部。
フロントページの続き (56)参考文献 特開 昭62−40554(JP,A) 特開 昭56−85168(JP,A) 特開 平9−81456(JP,A) 特開 平9−160827(JP,A) 特開 平2−10450(JP,A) 特開 平7−210460(JP,A) 特開 平6−342401(JP,A) 特開 平8−314803(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 第1バスに接続されている複数のデバイ
    スのうちいずれかにより将来発行されることが予測され
    るリクエスト信号の内容に基づき、第2バスに接続され
    ているデバイスに対しデータを要求するリクエスト信号
    をバスブリッジが発行することにより、当該第2バスに
    接続されているデバイスによって保持されているデータ
    の一部を、第1バスと第2バスとをブリッジするバスブ
    リッジに設けられたブリッジキャッシュに、キャッシュ
    しておく予測キャッシュ手順と、上記第1バスに接続さ
    れているデバイスにより発行されたリクエスト信号に係
    るデータが上記ブリッジキャッシュにキャッシュ済であ
    る場合に、そのデータを上記バスブリッジが上記ブリッ
    ジキャッシュからリクエスト信号発行元のデバイスに送
    るレスポンス手順とを有し、更に、上記第1バスの負荷
    として判定基準以上の負荷が検出されたときには、予測
    発行抑圧条件が満たされていると見なして、上記予測キ
    ャッシュ手順によるリクエスト信号の発行を行わない
    とを特徴とするブリッジ方法。
  2. 【請求項2】 第1バスに接続されている複数のデバイ
    スのうちいずれかにより将来発行されることが予測され
    るリクエスト信号の内容に基づき、第2バスに接続され
    ているデバイスに対しデータを要求するリクエスト信号
    をバスブリッジが発行することにより、当該第2バスに
    接続されているデバイスによって保持されているデータ
    の一部を、第1バスと第2バスとをブリッジするバスブ
    リッジに設けられたブリッジキャッシュに、キャッシュ
    しておく予測キャッシュ手順と、上記第1バスに接続さ
    れているデバイスにより発行されたリクエスト信号に係
    るデータが上記ブリッジキャッシュにキャッシュ済であ
    る場合に、そのデータを上記バスブリッジが上記ブリッ
    ジキャッシュからリクエスト信号発行元のデバイスに送
    るレスポンス手順とを有し、上記予測キャッシュ手順に
    際して、上記第1バスに接続されているデバイスにより
    将来発行されるリクエスト信号の内容をそのデバイスが
    それまでに発行した複数のリクエスト信号の内容に基づ
    き予測する履歴利用型の処理と、上記第1バスに接続さ
    れているデバイスにより将来発行されるリクエスト信号
    の内容をそのデバイスが最近発行した1個のリクエスト
    信号の内容に基づき予測する履歴非利用型の処理と、こ
    れら履歴利用型及び履歴非利 用型の処理のうちいずれか
    による予測結果を選択する予測論理切換のための処理と
    を実行することを特徴とするブリッジ方法。
  3. 【請求項3】 上記予測キャッシュ手順に際して、上記
    第1バスの負荷を検出し、検出結果を第1判定基準及び
    第2判定基準と比較し、この比較の結果、上記第1バス
    の負荷が第1判定基準より低い場合には上記履歴非利用
    型の処理による予測結果を選択し、上記第1バスの負荷
    が上記第1判定基準より高く第2判定基準より低い場合
    には上記履歴利用型の処理による予測結果を選択し、上
    記第1バスの負荷が上記第2判定基準より高い場合には
    上記予測キャッシュ手順によるリクエスト信号の発行を
    行わないことを特徴とする請求項2記載のブリッジ方
    法。
  4. 【請求項4】 第1又は第2バスに接続されている複数
    のデバイスが保持しているデータをキャッシュしておく
    ためのキャッシュメモリたるブリッジキャッシュと、上
    記第1バスに接続されている複数のデバイスのうちいず
    れかにより将来発行されるリクエスト信号の内容を予測
    し、予測したリクエスト信号の内容を示す予測信号を発
    行するリクエスト予測部と、上記第1バスに接続されて
    いるデバイスにより実際にリクエスト信号が発行された
    とき及び上記リクエスト予測部により上記予測信号が発
    行されたときに、そのリクエスト信号又は予測信号によ
    り要求されたデータが上記ブリッジキャッシュ上に存す
    るか否かを判定するキャッシュヒット判定部と、上記第
    1バスに接続されているデバイスにより実際に発行され
    たリクエスト信号に関し、そのリクエスト信号により要
    求されたデータが上記ブリッジキャッシュ上に存してい
    ないとの判定が下されたときに、当該リクエスト信号を
    発行したデバイスに対し、そのデータを後で送信するか
    ら待機せよと指示するためのレスポンス信号を発行する
    レスポンス生成部と、上記第1バスに接続されているデ
    バイスにより実際に発行されたリクエスト信号又は上記
    リクエスト予測部により発行された上記予測信号に関
    し、そのリクエスト信号又は予測信号により要求された
    データが上記ブリッジキャッシュ上に存していないとの
    判定が下されたときに、上記第2バスに接続されている
    デバイスに対しそのデータを要求するためのリクエスト
    信号を発行するリクエスト発行部と、上記第1バスの負
    荷を監視しその結果判定基準以上の負荷が検出されたと
    きに高負荷フラグ をセットする負荷モニタ部とを備え、
    上記リクエスト予測部が、上記高負荷フラグがセットさ
    れているときに上記予測信号の発行を禁止するゲートを
    含むことを特徴とするバスブリッジ。
  5. 【請求項5】 第1又は第2バスに接続されている複数
    のデバイスが保持しているデータをキャッシュしておく
    ためのキャッシュメモリたるブリッジキャッシュと、上
    記第1バスに接続されている複数のデバイスのうちいず
    れかにより将来発行されるリクエスト信号の内容を予測
    し、予測したリクエスト信号の内容を示す予測信号を発
    行するリクエスト予測部と、上記第1バスに接続されて
    いるデバイスにより実際にリクエスト信号が発行された
    とき及び上記リクエスト予測部により上記予測信号が発
    行されたときに、そのリクエスト信号又は予測信号によ
    り要求されたデータが上記ブリッジキャッシュ上に存す
    るか否かを判定するキャッシュヒット判定部と、上記第
    1バスに接続されているデバイスにより実際に発行され
    たリクエスト信号に関し、そのリクエスト信号により要
    求されたデータが上記ブリッジキャッシュ上に存してい
    ないとの判定が下されたときに、当該リクエスト信号を
    発行したデバイスに対し、そのデータを後で送信するか
    ら待機せよと指示するためのレスポンス信号を発行する
    レスポンス生成部と、上記第1バスに接続されているデ
    バイスにより実際に発行されたリクエスト信号又は上記
    リクエスト予測部により発行された上記予測信号に関
    し、そのリクエスト信号又は予測信号により要求された
    データが上記ブリッジキャッシュ上に存していないとの
    判定が下されたときに、上記第2バスに接続されている
    デバイスに対しそのデータを要求するためのリクエスト
    信号を発行するリクエスト発行部とを備え、上記リクエ
    スト予測部が、上記第1バスに接続されているデバイス
    により将来発行されるリクエスト信号の内容をそのデバ
    イスがそれまでに発行した複数のリクエスト信号の内容
    に基づき予測する履歴利用型リクエスト予測部と、上記
    第1バスに接続されているデバイスにより将来発行され
    るリクエスト信号の内容をそのデバイスが最近発行した
    1個のリクエスト信号の内容に基づき予測する履歴非利
    用型リクエスト予測部と、上記履歴利用型リクエスト予
    測部及び上記履歴非利用型リクエスト予測部のうちいず
    れかによる予測結果を選択し選択した予測結果に基づき
    上記予測信号を発行する予測論理切換部とを含むことを
    特徴とするバスブリッジ。
  6. 【請求項6】 上記第1バスの負荷を第1判定基準及び
    それより高い第2判定基準と比較する負荷モニタ部を備
    え、上記予測論理切換部が、上記負荷モニタ部における
    比較の結果に基づき、上記第1バスの負荷が第1判定基
    準より低い場合には上記履歴非利用型リクエスト予測部
    による予測結果を選択し、上記第1バスの負荷が上記第
    1判定基準より高く第2判定基準より低い場合には上記
    履歴利用型リクエスト予測部による予測結果を選択し、
    上記第1バスの負荷が上記第2判定基準より高い場合に
    は上記予測信号の発行を禁止することを特徴とする請求
    記載のバスブリッジ。
  7. 【請求項7】 それぞれ単数又は複数のデバイスが接続
    されている複数のバスと、上記バス同士を接続する単数
    又は複数のバスブリッジとを備え、上記複数のバスのう
    ち第1バスには複数のプロセッサが、この第1バスに上
    記バスブリッジを介し接続されている第2バスにはメモ
    リが、それぞれ上記デバイスとして接続されているマル
    チプロセッサシステムにおいて、上記バスブリッジが、
    請求項4乃至6のいずれかに記載のバスブリッジである
    ことを特徴とするマルチプロセッサシステム。
JP10075168A 1998-03-24 1998-03-24 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム Expired - Fee Related JP3071752B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10075168A JP3071752B2 (ja) 1998-03-24 1998-03-24 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
US09/178,493 US6341334B1 (en) 1998-03-24 1998-10-26 Bridge method, bus bridge, and multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10075168A JP3071752B2 (ja) 1998-03-24 1998-03-24 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JPH11272552A JPH11272552A (ja) 1999-10-08
JP3071752B2 true JP3071752B2 (ja) 2000-07-31

Family

ID=13568412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10075168A Expired - Fee Related JP3071752B2 (ja) 1998-03-24 1998-03-24 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム

Country Status (2)

Country Link
US (1) US6341334B1 (ja)
JP (1) JP3071752B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011045931A1 (ja) * 2009-10-14 2011-04-21 パナソニック株式会社 情報処理装置

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587961B1 (en) * 1998-06-15 2003-07-01 Sun Microsystems, Inc. Multi-processor system bridge with controlled access
JP2001125829A (ja) * 1999-10-28 2001-05-11 Internatl Business Mach Corp <Ibm> コントローラ装置、ディスクコントローラ、補助記憶装置、コンピュータ装置、および補助記憶装置の制御方法
JP4097883B2 (ja) 2000-07-04 2008-06-11 松下電器産業株式会社 データ転送装置および方法
CA2441607C (en) * 2001-03-23 2011-01-25 Arizan Corporation Systems and methods for content delivery over a wireless communication medium to a portable computing device
US6711662B2 (en) * 2001-03-29 2004-03-23 Intel Corporation Multiprocessor cache coherence management
US7752281B2 (en) * 2001-11-20 2010-07-06 Broadcom Corporation Bridges performing remote reads and writes as uncacheable coherent operations
US6779070B2 (en) * 2001-12-12 2004-08-17 Intel Corporation Data transaction through a bridge
TWI282513B (en) * 2002-06-12 2007-06-11 Mediatek Inc A pre-fetch device of instruction for an embedded system
US7475175B2 (en) * 2003-03-17 2009-01-06 Hewlett-Packard Development Company, L.P. Multi-processor module
US7099968B2 (en) * 2003-09-02 2006-08-29 Intel Corporation System and method for generating bus requests in advance based on speculation states
US7194663B2 (en) * 2003-11-18 2007-03-20 Honeywell International, Inc. Protective bus interface and method
US7360008B2 (en) * 2004-12-30 2008-04-15 Intel Corporation Enforcing global ordering through a caching bridge in a multicore multiprocessor system
US7395376B2 (en) 2005-07-19 2008-07-01 International Business Machines Corporation Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
US7461190B2 (en) * 2005-08-11 2008-12-02 P.A. Semi, Inc. Non-blocking address switch with shallow per agent queues
US8032711B2 (en) 2006-12-22 2011-10-04 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
WO2010095166A1 (en) * 2009-02-17 2010-08-26 Hitachi, Ltd. Storage controller and method of controlling storage controller
JP2011182314A (ja) * 2010-03-03 2011-09-15 Oki Semiconductor Co Ltd データ中継装置及び方法
US9176913B2 (en) 2011-09-07 2015-11-03 Apple Inc. Coherence switch for I/O traffic

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5685168A (en) 1979-12-13 1981-07-11 Fujitsu Ltd Access control system for main storage
JPS57123581A (en) 1981-01-26 1982-08-02 Fujitsu Ltd Pre-fetch control system
JPS59225427A (ja) 1983-06-07 1984-12-18 Fujitsu Ltd メモリアクセス方式
JPS6240554A (ja) 1985-08-15 1987-02-21 Nec Corp バツフアメモリブロツク先取り方式
JPS63284648A (ja) 1987-05-18 1988-11-21 Fujitsu Ltd キャッシュメモリ制御方法
JPH0210450A (ja) 1988-06-29 1990-01-16 Hitachi Ltd キヤツシユメモリの先行フエツチ制御方式
JPH0276048A (ja) 1988-09-13 1990-03-15 Fujitsu Ltd ディスクキャッシュ制御方式
JPH02133842A (ja) 1988-11-15 1990-05-23 Fujitsu Ltd 中間バッファプリフェッチ制御方式
SE469402B (sv) 1991-05-02 1993-06-28 Swedish Inst Of Computer Scien Foerfarande foer att haemta data till ett cache-minne
JPH05143330A (ja) 1991-07-26 1993-06-11 Mitsubishi Electric Corp スタツクキヤツシユの制御方式及びスタツクキヤツシユ
JPH06103169A (ja) 1992-09-18 1994-04-15 Nec Corp 中央演算処理装置のリードデータプリフェッチ機構
JPH0799510B2 (ja) 1993-01-25 1995-10-25 株式会社日立製作所 二次記憶制御装置
JP3174211B2 (ja) 1994-01-25 2001-06-11 富士通株式会社 バッファストレイジのムーブイン制御方法
JPH08314803A (ja) 1995-05-23 1996-11-29 Nec Ibaraki Ltd ディスクキャッシュ制御装置
US5721864A (en) 1995-09-18 1998-02-24 International Business Machines Corporation Prefetching instructions between caches
US5809529A (en) 1995-08-23 1998-09-15 International Business Machines Corporation Prefetching of committed instructions from a memory to an instruction cache
JPH09128346A (ja) 1995-11-02 1997-05-16 Mitsubishi Electric Corp 階層バスシステム
US6085291A (en) 1995-11-06 2000-07-04 International Business Machines Corporation System and method for selectively controlling fetching and prefetching of data to a processor
US5915104A (en) * 1997-01-09 1999-06-22 Silicon Graphics, Inc. High bandwidth PCI to packet switched router bridge having minimized memory latency
US6012106A (en) * 1997-11-03 2000-01-04 Digital Equipment Corporation Prefetch management for DMA read transactions depending upon past history of actual transfer lengths
US6157977A (en) * 1998-11-24 2000-12-05 Hewlett Packard Company Bus bridge and method for ordering read and write operations in a write posting system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011045931A1 (ja) * 2009-10-14 2011-04-21 パナソニック株式会社 情報処理装置

Also Published As

Publication number Publication date
US6341334B1 (en) 2002-01-22
JPH11272552A (ja) 1999-10-08

Similar Documents

Publication Publication Date Title
JP3071752B2 (ja) ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
KR100885277B1 (ko) 캐시에서의 라인들을 추론적으로 무효화하는 방법 및 시스템
US6317811B1 (en) Method and system for reissuing load requests in a multi-stream prefetch design
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
US5706464A (en) Method and system for achieving atomic memory references in a multilevel cache data processing system
US5426765A (en) Multiprocessor cache abitration
JP3533355B2 (ja) キャッシュ・メモリ・システム
US6038644A (en) Multiprocessor system with partial broadcast capability of a cache coherent processing request
US7925840B2 (en) Data processing apparatus and method for managing snoop operations
US6668309B2 (en) Snoop blocking for cache coherency
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US8793442B2 (en) Forward progress mechanism for stores in the presence of load contention in a system favoring loads
US20050144399A1 (en) Multiprocessor system, and consistency control device and consistency control method in multiprocessor system
CA2108618A1 (en) Cache snoop reduction and latency prevention apparatus
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
US20060236039A1 (en) Method and apparatus for synchronizing shared data between components in a group
US7380068B2 (en) System and method for contention-based cache performance optimization
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US6449698B1 (en) Method and system for bypass prefetch data path
US5987544A (en) System interface protocol with optional module cache
US7058767B2 (en) Adaptive memory access speculation
CN117609110A (zh) 一种缓存方法、高速缓存、电子设备及可读存储介质
EP0681241A1 (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US8255632B2 (en) Pre-fetch control apparatus
US5793986A (en) Method and system for enhanced efficiency of data transfers from memory to multiple processors in a data processing system

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees