JPH0962578A - Information processor and its control method - Google Patents

Information processor and its control method

Info

Publication number
JPH0962578A
JPH0962578A JP7213374A JP21337495A JPH0962578A JP H0962578 A JPH0962578 A JP H0962578A JP 7213374 A JP7213374 A JP 7213374A JP 21337495 A JP21337495 A JP 21337495A JP H0962578 A JPH0962578 A JP H0962578A
Authority
JP
Japan
Prior art keywords
bus
cache
data
memory
information processing
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.)
Withdrawn
Application number
JP7213374A
Other languages
Japanese (ja)
Inventor
Toshiyuki Fukui
俊之 福井
Kazumasa Hamaguchi
一正 濱口
Shuichi Nakamura
秀一 中村
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP7213374A priority Critical patent/JPH0962578A/en
Priority to US08/699,105 priority patent/US5860110A/en
Publication of JPH0962578A publication Critical patent/JPH0962578A/en
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To prevent the degradation of the use efficiency by avoiding concentration of traffic, which is caused by maintaining the cache consistency in a form adapted to a generous memory consistency model, on a bus at a synchronizing point in the parallel computer system. SOLUTION: A cache 11 requests a common bus 15 to a bus arbiter 16 and acquires the permission of the use; and when the cache 11 terminates the use, the bus arbiter 16 checks the use condition of the bus, and the bus arbiter 16 continuously gives the permission or the use to the cache no without the use request if there are no users. When this permission of the use is given to the cache 11, the cache 11 checks whether there is data updated after read from a memory 12 or not; and there is such data, this data is written back to the memory 12. A cache 12 monitors written-back data and finds written-back data to check whether the cache itself already holds this data in the address or not. If it already holds this data, it invalidates this data. Thus, data is written back to maintain the consistency in the bus idle time to prevent concentration of write-back at a prescribed synchronizing point.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、相互結合網により
キャッシュを介して接続された複数のプロセッサが並列
に動作する情報処理装置およびその制御方法に関するも
のである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus in which a plurality of processors connected via a cache by an interconnection network operate in parallel and a control method therefor.

【0002】[0002]

【従来の技術】並列計算機システムにおいては、プロセ
ッサから発せられる主記憶に対するアクセス要求に高速
に応じるため、及び相互結合網のトラフィックを減じる
ために、各プロセッサにキャッシュ・メモリを付随させ
ることが多い。各プロセッサから発行されるメモリ・ア
クセスはキャッシュ・メモリを介して行われ、キャッシ
ュ・メモリ中にはそれらメモリ・アクセス対象のデータ
・ブロックのコピーが置かれることになる。並列計算機
システムにおいては、複数あるキャッシュ・メモリ中に
同一データ・ブロックのコピーが各々存在する状況が生
じ得るが、それらコピー間の一貫性を保証するために、
従来様々な方法が考案/実現されている。
2. Description of the Related Art In a parallel computer system, a cache memory is often attached to each processor in order to respond to an access request to a main memory issued from the processor at high speed and to reduce traffic of an interconnection network. The memory access issued from each processor is performed via the cache memory, and a copy of the data block to be the memory access target is placed in the cache memory. In a parallel computer system, a situation may occur in which multiple copies of the same data block exist in multiple cache memories, but in order to guarantee consistency among these copies,
Conventionally, various methods have been devised / implemented.

【0003】プロセッサ間やプロセッサ・主記憶間を相
互に接続する結合網に、全てのトランザクションが監視
可能であるバスのようなものを用いた並列計算機システ
ムにおいては、スヌープ方式が一般的である。スヌープ
方式は、キャッシュ・メモリが結合網上に発行される全
トランザクションを監視し、トランザクション対象のデ
ータ・ブロックのコピーが自キャッシュ・メモリ中に存
在していた場合は、必要な一貫性保持動作を施すもので
ある。
The snoop method is generally used in a parallel computer system that uses a bus such as a bus capable of monitoring all transactions in a connection network that interconnects processors and processors and main memory. In the snoop method, the cache memory monitors all transactions issued on the connection network, and if a copy of the data block to be transacted exists in its own cache memory, the necessary coherency maintenance operation is performed. It is something to give.

【0004】また、プロセッサ間やプロセッサ・主記憶
間を相互に接続する結合網に、全てのトランザクション
を監視することが困難なものを用いた並列計算機システ
ムにおいては、ディレクトリ方式が用いられる。ディレ
クトリ方式は、データ・ブロック単位、あるいはそれに
類する単位毎に、いずれのキャッシュ・メモリ中にその
コピーが存在するかというキャッシング情報を、ディレ
クトリと呼ばれる記憶装置に格納・管理しておき、プロ
セッサからのトランザクション発行時にはディレクトリ
から得られるキャッシング情報をもとにして、トランザ
クション対象データ・ブロックのコピーを有するキャッ
シュ・メモリにトランザクションの発生を通知し、コピ
ー間の一貫性保持を図るものである。
Further, a directory system is used in a parallel computer system using a coupled network that interconnects processors and a processor / main memory with each other, in which it is difficult to monitor all transactions. The directory method stores and manages, in a storage device called a directory, caching information indicating in which cache memory the copy exists in each data block unit or similar unit, and the cache information from the processor is stored. When a transaction is issued, the occurrence of a transaction is notified to the cache memory having a copy of the transaction target data block based on the caching information obtained from the directory, and the consistency is maintained between the copies.

【0005】一方、メモリに対するアクセス・レイテン
シを抑えるために様々な緩いメモリ・コンシステンシ・
モデルが考案/実現されている。
On the other hand, in order to suppress the access latency to the memory, various loose memory consistency
A model is invented / realized.

【0006】一般に緩いメモリ・コンシステンシ・モデ
ルでは、処理の過程に同期ポイントを定め、処理が同期
ポイントに達した時点で、それまでに発行したメモリ・
トランザクションをシステム中に反映させることを義務
付けている。このことは、同期ポイント以前には各メモ
リ・トランザクション結果を反映させる必要がないこと
を意味する。
Generally, in the loose memory consistency model, a synchronization point is set in the course of processing, and when the processing reaches the synchronization point, the memory
It requires the transaction to be reflected in the system. This means that it is not necessary to reflect the outcome of each memory transaction prior to the sync point.

【0007】この、緩いメモリ・コンシステンシ・モデ
ルを採る並列計算機システムにおいて従来のキャッシュ
一貫性保持手法を用いた場合、その時点では不要な一貫
性保持動作がトランザクション毎に入ることとなり、そ
のオーバヘッドは、緩いメモリ・コンシステンシ・モデ
ルの目的に反し、不用意にメモリ・アクセス・レイテン
シを嵩ませると言える。
When the conventional cache coherency maintaining method is used in the parallel computer system which adopts the loose memory consistency model, an unnecessary coherency maintaining operation is carried out for each transaction at that time, and its overhead is Contrary to the purpose of the loose memory consistency model, it can be said that the memory access latency is carelessly increased.

【0008】この課題を解決するために、キャッシュの
一貫性保持動作の実施を、緩いメモリ・コンシステンシ
・モデルでメモリ・トランザクションを反映する必要が
生じる同期ポイントの時点にまで遅延させることによっ
て、オーバーヘッドを削減しシステムの性能向上を図る
ための提案が、本件出願人により既になされている。
To solve this problem, the overhead of the cache coherency behavior is delayed by delaying it to the point of a synchronization point at which the memory transactions need to be reflected in a loose memory consistency model. The applicant of the present application has already made a proposal to reduce the above-mentioned problem and improve the performance of the system.

【0009】[0009]

【発明が解決しようとする課題】しかし、このように、
キャッシュの一貫性保持動作の実施を、緩いメモリ・コ
ンシステンシ・モデルでメモリ・トランザクションを反
映する必要が生じる同期ポイントの時点にまで遅延させ
ることによって、不要なキャッシュ一貫性保持動作によ
るオーバーヘッドを削減するようなシステムにおいて
は、同期ポイントの時点において集中的にキャッシュの
一貫性保持動作が行われるため、同期ポイントの時点で
相互結合網上に集中的にトラフィックが発生することに
なり、その結果、相互結合網の利用効率が同期ポイント
の時点において極端に低下する恐れがあった。
[Problems to be Solved by the Invention] However, in this way,
Reduces the overhead of unnecessary cache coherency operations by delaying the implementation of cache coherency operations to the point of a synchronization point where memory transactions need to be reflected in a loose memory consistency model. In such a system, since the cache coherency operation is centrally performed at the time of the synchronization point, the traffic is intensively generated on the interconnection network at the time of the synchronization point. There is a possibility that the utilization efficiency of the connection network may drop significantly at the time of the synchronization point.

【0010】本発明は上記従来例に鑑みてなされたもの
で、不要な一貫性保持動作を行うことによるオーバーヘ
ッドを削減しつつ、同期ポイント時点における相互結合
網上のトラフィックの集中による相互結合網の利用効率
の低下を避け、同期動作に伴う処理のオーバヘッドを軽
減することができる情報処理装置を提供することを目的
とする。
The present invention has been made in view of the above-mentioned conventional example, and reduces the overhead caused by performing an unnecessary consistency maintaining operation, and at the same time, a mutual connection network is formed by concentrating traffic on the mutual connection network at a synchronization point. An object of the present invention is to provide an information processing device that can avoid a decrease in utilization efficiency and reduce processing overhead associated with a synchronous operation.

【0011】[0011]

【課題を解決するための手段】上記課題を解決するため
本発明の情報処理装置は次のような構成からなる。すな
わち、複数のプロセッサと、それらプロセッサそれぞれ
に付随するキャッシュ・メモリと主メモリとを含む複数
の結合網利用主体と、各結合網利用主体を相互に接続す
る結合網とを含む情報処理システムであって、各プロセ
ッサの処理が予め定めた段階に達した場合、当該プロセ
ッサに付随するキャッシュ・メモリ中に存在するデータ
・ブロックの内容の一貫性を保持する一貫性保持処理を
実行する。
In order to solve the above problems, the information processing apparatus of the present invention has the following configuration. That is, it is an information processing system including a plurality of processors, a plurality of connection network users including a cache memory and a main memory attached to each of the processors, and a connection network connecting the connection network users to each other. Then, when the processing of each processor reaches a predetermined stage, the coherency holding processing for holding the coherency of the content of the data block existing in the cache memory associated with the processor is executed.

【0012】更に望ましくは、前記プロセッサによる処
理が前記予め定めた段階に達する以前において、前記結
合網の状態が所定の条件を満たした場合には、当該キャ
ッシュ・メモリ中に存在するデータ・ブロックの内容の
一貫性を保持する一貫性保持処理を実行する。
More preferably, if the state of the connection network satisfies a predetermined condition before the processing by the processor reaches the predetermined stage, the data block existing in the cache memory is Performs a consistency process that maintains the consistency of contents.

【0013】更に望ましくは、前記結合網の満たす条件
は、前記結合網利用主体が前記結合網を使用していない
ことである。
More preferably, the condition satisfied by the connection network is that the connection network user does not use the connection network.

【0014】更に望ましくは、前記結合網には、前記結
合網利用主体による前記結合網の使用を調停する調停ユ
ニットが更に接続され、前記結合網が使用されていない
ことを前記調停ユニットにより検知して前記条件を判定
し、その結果に応じて前記結合網利用主体の1に前記結
合網の利用許可を付与する。
Further preferably, an arbitration unit is further connected to the connection network for arbitrating the use of the connection network by the connection network user, and the arbitration unit detects that the connection network is not used. Based on the result, the condition is judged, and according to the result, the permission to use the connection network is given to one of the connection network use subjects.

【0015】更に望ましくは、前記一貫性保持処理は、
当該キャッシュメモリ中に存在する更新されたデータブ
ロックを主メモリに書き戻す。
More preferably, the consistency maintaining process is
The updated data block existing in the cache memory is written back to the main memory.

【0016】更に望ましくは、当該情報処理システム
は、緩いメモリ・コンシステンシ・モデルである。
More preferably, the information processing system is a loose memory consistency model.

【0017】あるいは、バス手段と、前記バス手段に接
続されたメモリ手段と、前記バス手段を用いて前記メモ
リ手段から読み出したデータを保持し、該データを更新
する複数のバスマスタ手段と、前記バス手段がいずれの
バスマスタ手段にも使用されていない場合に、前記複数
のバスマスタ手段のいずれかにバス手段の使用許可を出
すバス管理手段と、を備え、前記バスマスタ手段は、所
定の時点に達した場合、及び前記使用許可が出された場
合に、前記バス手段を使用して保持する更新されたデー
タを前記メモリ手段に書き戻す。
Alternatively, the bus means, the memory means connected to the bus means, a plurality of bus master means for holding the data read from the memory means by using the bus means and updating the data, and the bus Bus management means for issuing permission to use the bus means to any of the plurality of bus master means when the means is not used by any of the bus master means, the bus master means having reached a predetermined time point. In the case, and when the use permission is issued, the updated data held by the bus means is written back to the memory means.

【0018】更に望ましくは、前記バス管理手段は、前
記バスマスタ手段からの前記バス手段の使用要求に対す
る使用の許可に応じたバス手段の使用後、いずれのバス
マスタ手段も前記バス手段を使用していない場合に、直
前にバス手段を使用したバスマスタ手段に対してバス手
段の使用許可を出す。
More preferably, the bus management means does not use any of the bus means after the use of the bus means in accordance with the permission of the bus master means to use the bus means. In this case, use permission of the bus means is issued to the bus master means that used the bus means immediately before.

【0019】更に望ましくは、バス手段の使用許可を得
ていない前記バスマスタ手段は、バス手段の使用許可を
得たバスマスタ手段が所定時間以上バス手段を使用しな
い場合には、前記バス手段を使用して、保持している更
新されたデータを前記メモリ手段に書き戻す。
More preferably, the bus master means that has not obtained permission to use the bus means uses the bus means when the bus master means that has obtained permission to use the bus means does not use the bus means for a predetermined time or longer. Then, the stored updated data is written back to the memory means.

【0020】更に望ましくは、前記バスマスタ手段に接
続されたプロセッサ手段を更に備え前記バスマスタ手段
は、前記プロセッサ手段から発行される所定の命令に従
って、前記メモリ手段から読み出して更新したデータを
前記メモリ手段に書き戻す。
More preferably, the bus master means further comprises processor means connected to the bus master means, and the bus master means stores in the memory means data updated and read from the memory means in accordance with a predetermined instruction issued from the processor means. Write back.

【0021】更に望ましくは、前記バスマスタ手段の1
は、他のバスマスタ手段が前記メモリ手段にデータを書
き戻した場合、そのデータが重複して前記メモリ手段か
ら当該バスマスタ手段に読み出されているか調べ、重複
して読み出されている場合には、そのデータを無効化す
ることを特徴とする。
More preferably, 1 of the bus master means
When another bus master unit writes data back to the memory unit, it checks whether the data is duplicated and read from the memory unit to the bus master unit. , The data is invalidated.

【0022】あるいは、メモリ手段に格納されたデータ
を、複数のプロセッサごとに接続されたキャッシュ手段
により重複して保持する情報処理装置であって、前記キ
ャッシュ手段に格納されたデータが、前記メモリ手段に
格納されたデータを読み出して更新したデータであるか
判定する判定手段と、前記判定手段による判定結果に応
じて、前記キャッシュ手段のいずれからも前記メモリ手
段にアクセスしていない場合に、前記キャッシュ手段の
何れかにより読み出されて更新されたデータを前記メモ
リ手段に書き戻す第1の書き戻し手段と、所定の時期に
達した場合に、前記前記キャッシュ手段により読み出さ
れて更新されたデータを前記メモリ手段に書き戻す第2
の書き戻し手段とを備える。。
Alternatively, in an information processing apparatus that holds the data stored in the memory means in duplicate by the cache means connected to each of the plurality of processors, the data stored in the cache means is the memory means. Determining means for determining whether or not the data stored in the memory is read and updated data, and the cache means if none of the cache means accesses the memory means according to the determination result by the determining means. First write-back means for writing back the data read and updated by any of the means to the memory means, and data read and updated by the cache means when a predetermined time is reached Writing back to the memory means
And write-back means of. .

【0023】また、本発明の情報処理装置の制御方法は
次のような構成からなる。すなわち、メモリ手段に格納
されたデータを、複数のプロセッサごとに接続されたキ
ャッシュ手段により重複して保持する情報処理装置の制
御方法であって、前記キャッシュ手段に格納されたデー
タが、前記メモリ手段に格納されたデータを読み出して
更新したデータであるか判定する判定工程と、前記判定
工程による判定結果に応じて、前記キャッシュ手段のい
ずれからも前記メモリ手段にアクセスしていない場合
に、前記キャッシュ手段の何れかにより読み出されて更
新されたデータを前記メモリ手段に書き戻す第1の書き
戻し工程と、所定の時期に達した場合に、前記前記キャ
ッシュ手段により読み出されて更新されたデータを前記
メモリ手段に書き戻す第2の書き戻し工程とを備える。
Further, the control method of the information processing apparatus of the present invention has the following configuration. That is, it is a control method of an information processing apparatus, wherein data stored in a memory means is redundantly held by a cache means connected to each of a plurality of processors, wherein the data stored in the cache means is the memory means. The determination step of determining whether the data stored in the memory is read and updated, and the cache means when the memory means is not accessed from any of the cache means according to the determination result of the determination step. A first write-back step of writing back to the memory means the data read and updated by any one of the means, and the data read and updated by the cache means when a predetermined time is reached And a second write back step of writing back to the memory means.

【0024】以上の構成により、バス手段が空いている
場合にキャッシュの内容をメモリに書き戻すため、メモ
リとキャッシュとのデータの無矛盾性を保持する動作が
随時行われ、その動作によりシステムを混雑させること
がなくなる。
With the above configuration, since the contents of the cache are written back to the memory when the bus means is free, an operation for maintaining the data consistency between the memory and the cache is performed at any time, and the operation causes congestion of the system. There is nothing to do.

【0025】[0025]

【発明の実施の形態】以下、添付図面を参照して本発明
の好適な実施の形態を詳細に説明する。 <マルチプロセッサシステムの構成>図1は本発明を実
現するためのシステムの第1のマルチプロセサシステム
の構成図である。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of the present invention will be described below in detail with reference to the accompanying drawings. <Configuration of Multiprocessor System> FIG. 1 is a configuration diagram of a first multiprocessor system of a system for realizing the present invention.

【0026】10、20はプロセッサであり、各プロセ
ッサはプロセッサバス14、24を介してキャッシュ1
1、21に接続される。また、キャッシュ11、21は
共有バス15を介してメインメモリ12、及びキャッシ
ュ同志の間を接続され、プロセッサの要求に基づいて、
キャッシュ11、21の内部にあるデータの更新を行っ
たり、メインメモリ12に反映させたり等すると共に、
バス上を流れるアドレス情報等をスヌープしてキャッシ
ュのメインテナンスを実施する。バスアービタ16は共
有バス15の利用権を調停するためのものである。共有
バス15はアドレスバス151とデータバス152とコ
ントロールバス153とを含み、プロセッサバス14
は、アドレスバス141とデータバス142とコントロ
ールバス143とを含む。プロセッサバス24も同様で
ある。
Reference numerals 10 and 20 denote processors, and each processor has a cache 1 via processor buses 14 and 24.
1, 21 are connected. Further, the caches 11 and 21 are connected between the main memory 12 and the caches via the shared bus 15, and based on the request of the processor,
The data inside the caches 11 and 21 is updated and reflected in the main memory 12, and
Cache maintenance is performed by snooping the address information flowing on the bus. The bus arbiter 16 is for arbitrating the right to use the shared bus 15. The shared bus 15 includes an address bus 151, a data bus 152, and a control bus 153, and includes the processor bus 14
Includes an address bus 141, a data bus 142, and a control bus 143. The same applies to the processor bus 24.

【0027】図2は、図1におけるキャッシュ11,1
2の構成図である。
FIG. 2 shows the caches 11 and 1 in FIG.
FIG.

【0028】キャッシュの本体は、キャッシュ全体を制
御するキャッシュ制御シーケンサ111、アドレスタグ
112、状態フラグ113、SRAM114、比較器1
15、選択器116及びプロセッサバスとのインターフ
ェース144〜146、共有バスとのインターフェース
154〜156からなる。アドレスタグ112、状態フ
ラグ113、SRAM114は一組でひとまとまりのデ
ータに対応する。
The main body of the cache is a cache control sequencer 111 that controls the entire cache, an address tag 112, a status flag 113, an SRAM 114, and a comparator 1.
15, the selector 116 and interfaces 144 to 146 with the processor bus, and interfaces 154 to 156 with the shared bus. The address tag 112, the status flag 113, and the SRAM 114 correspond to a set of data as a set.

【0029】ここで、SRAM114はデータを保持す
るためのデータ・ブロックを構成する。アドレスタグ1
12はSRAM114に格納されたデータ・ブロックの
アドレスを保持し、状態フラグ113はSRAM114
上のデータの状態を保持する役割りを果たす。この状態
については後述する。比較器115は、アドレスタグ1
12の内容と、プロセッサバス14あるいは共有バス1
5からもたらされるアドレスとを比較する。選択器11
6は比較器115の比較結果からSRAM114内のデ
ータを選択する。これらによるアドレスの比較・選択に
よってキャッシュに何等かの要求の対象となるデータが
あるか判定でき、ある場合にはそれを選択することがで
きる。なお、キャッシュ制御シーケンサ111はこれら
キャッシュ内の各モジュールを制御する。
Here, the SRAM 114 constitutes a data block for holding data. Address tag 1
12 holds the address of the data block stored in the SRAM 114, and the status flag 113 holds the SRAM 114.
It plays a role in maintaining the state of the above data. This state will be described later. The comparator 115 has an address tag 1
12 and the processor bus 14 or shared bus 1
Compare with the address that comes from 5. Selector 11
6 selects the data in the SRAM 114 from the comparison result of the comparator 115. It is possible to determine whether there is any request target data in the cache by comparing / selecting the addresses by these, and if there is, it is possible to select it. The cache control sequencer 111 controls each module in these caches.

【0030】ここでは、2ウェイ・セット・アソシアテ
ィブの構成をとっているが、これらの構成は本発明によ
り制限されるものではない。これらキャッシュは、プロ
セッサとは、プロセッサバスアドレスインタフェース1
44、プロセッサバスデータインタフェース145、プ
ロセッサバスコントロールインタフェース146によっ
て接続され、プロセッサからもたらされる要求に従っ
て、データの供給等を実行する。また、これらは、共有
バス15に、共有バスアドレスインタフェース154、
共有バスデータインタフェース155、共有バスコント
ロールインタフェース156によって接続され、プロセ
ッサからもたらされる要求に従って、キャッシュミスし
た場合にデータをメインメモリ12からキャッシュ内に
ロードしたり、キャッシュの情報をメインメモリにライ
トバックしたり、他のキャッシュからもたらされる制御
情報をもとに、キャッシュ内部の状態フラグ113を変
更したりする。
Although the two-way set associative structure is adopted here, these structures are not limited by the present invention. These caches are the processor, the processor bus address interface 1
44, a processor bus data interface 145, and a processor bus control interface 146, and supplies data and the like according to a request from the processor. In addition, these are shared bus 15 with shared bus address interface 154,
It is connected by the shared bus data interface 155 and the shared bus control interface 156, and when a cache miss occurs, data is loaded from the main memory 12 into the cache or the cache information is written back to the main memory according to a request from the processor. Alternatively, the state flag 113 inside the cache is changed based on the control information provided from another cache.

【0031】本実施形態では、図1、図2に示すような
構成のシステムにおいて、ライトバック型キャッシュ・
メモリの無効化型プロトコルが用いられているとする。
無効化型プロトコルとは、キャッシュにあるデータブロ
ックを読み込んだ後、そのデータブロックが他のキャッ
シュからメインメモリに書き戻された場合、そのデータ
ブロックを無効にしてしまうというものである。その条
件の下で、緩いメモリ・コンシステンシ・モデルに適合
したキャッシュメモリの制御方法に基づいて、キャッシ
ュ・メモリの一貫性が保証される例を示す。
In this embodiment, in the system having the configuration shown in FIGS. 1 and 2, the write-back type cache
It is assumed that a memory invalidation protocol is used.
The invalidation protocol is to read a data block in a cache and invalidate the data block when the data block is written back to the main memory from another cache. An example is shown under which the cache memory coherency is guaranteed based on the control method of the cache memory that conforms to the loose memory consistency model.

【0032】具体的には、プロセッサから同期のための
命令(ここでは以下SYNC命令と記す)が発行された
時点において、キャッシュ・メモリの一貫性を保証する
ようなプロトコルを用いたシステムにおいて、その性能
を高めるために、将来SYNC命令が発行される時点に
おいてキャッシュ・メモリからメイン・メモリへの書き
戻しが行われるであろうデータ・ブロック、即ちキャッ
シュ・メモリ内部で最新の値で書き換えられてメインメ
モリにその値を反映していないデータ・ブロック(以下
“DIRTY”ブロックと呼ぶ)を、共有バスが他のバ
スマスタに利用されていない間に書き戻すことを可能に
するという、本発明を適用したマルチプロセサシステム
の動作手順とシステム構成の詳細に付いて以下に説明す
る。なお、メインメモリから読出されてあるいはメイン
メモリに書き戻されてキャッシュブロックの値と、それ
に対応するメインメモリのデータブロックとの値が一致
しているブロックを“CLEAN”ブロックと呼ぶ。 <キャッシュシステムの基本動作>まず最初にこのキャ
ッシュシステム自体の基本動作について図1,図2及び
図3〜図5の流れ図を参照しながら説明する。 [LOAD命令]図3は、メインメモリ12からプロセ
ッサ10にデータブロックを読み込むLOAD命令実行
の際の、キャッシュ11による制御手順を示したもので
ある(以下LOAD命令がプロセッサ10から発行され
たものとして説明する)。
Specifically, in a system using a protocol that guarantees the coherency of the cache memory at the time when an instruction for synchronization (hereinafter referred to as a SYNC instruction) is issued from the processor, In order to improve the performance, a data block that will be written back from the cache memory to the main memory at the time when a SYNC instruction is issued in the future, that is, the data block that is rewritten with the latest value inside the cache memory The present invention is applied to allow a data block whose value is not reflected in the memory (hereinafter referred to as “DIRTY” block) to be written back while the shared bus is not used by another bus master. The details of the operation procedure and system configuration of the multiprocessor system will be described below. A block in which the value of the cache block that has been read from the main memory or written back to the main memory and the value of the corresponding data block of the main memory match is called a "CLEAN" block. <Basic Operation of Cache System> First, the basic operation of the cache system itself will be described with reference to the flow charts of FIGS. 1, 2 and 3 to 5. [LOAD instruction] FIG. 3 shows a control procedure by the cache 11 when executing a LOAD instruction for reading a data block from the main memory 12 into the processor 10 (hereinafter, assuming that the LOAD instruction is issued from the processor 10). explain).

【0033】図3において、プロセッサ10から発行さ
れるLOAD命令に対して、アドレスバス141に出力
されているアドレスとアドレスタグ112に格納された
アドレスとを比較器115により比較し(ステップS3
01)、キャッシュ・リードヒットした場合、キャッシ
ュ11は、プロセッサ10に対してSRAM114より
データを供給する(ステップS303)。
In FIG. 3, in response to the LOAD instruction issued from the processor 10, the address output to the address bus 141 and the address stored in the address tag 112 are compared by the comparator 115 (step S3).
01), if there is a cache read hit, the cache 11 supplies data to the processor 10 from the SRAM 114 (step S303).

【0034】一方、プロセッサ10から発行されるLO
AD命令に対してキャッシュ・リードミスした場合、キ
ャッシュ11はキャッシュミス処理を行い、メインメモ
リ12からデータを読み込んで(ステップS302)、
プロセッサ10に対してSRAM114よりデータを供
給する(ステップS303)。この場合、キャッシュ・
リードミスしたデータがキャッシュ11に供給されるま
で、キャッシュ11はプロセッサ10に対して当該デー
タの供給を行わない。
On the other hand, the LO issued from the processor 10
When a cache read miss occurs with respect to the AD instruction, the cache 11 performs cache miss processing and reads data from the main memory 12 (step S302).
Data is supplied from the SRAM 114 to the processor 10 (step S303). In this case, the cache
The cache 11 does not supply the data to the processor 10 until the read-missed data is supplied to the cache 11.

【0035】リードキャッシュミス処理は図5に示した
通りの手順で行われる。
The read cache miss process is performed in the procedure as shown in FIG.

【0036】まず、キャッシュ置換を行う必要があるか
判定する(ステップS501)。すなわち、SRAM1
14がすべて使用されており、空いている容量がない場
合には、使用されているブロックと置換することにな
る。置換する場合には、もっとも遠い過去に使用された
ブロックや、予め付された優先順位により決定されたブ
ロックなど、所定の方法で置換されるブロックを決定す
る(ステップS502)。次に置換対象のブロックをメ
インメモリ12にライトバックする(ステップS50
3)。ライトバックの結果、キャッシュ11内の置換対
象のブロックとメインメモリの対応するデータブロック
とが一致することが保証され、そのブロックをキャッシ
ュから削除することが可能となる。
First, it is determined whether cache replacement is necessary (step S501). That is, SRAM1
When all 14 are used and there is no free capacity, the block used is replaced. In the case of replacement, a block to be replaced is determined by a predetermined method, such as a block used in the farthest past or a block determined by a priority given in advance (step S502). Next, the block to be replaced is written back to the main memory 12 (step S50).
3). As a result of the write-back, it is guaranteed that the block to be replaced in the cache 11 and the corresponding data block in the main memory match, and the block can be deleted from the cache.

【0037】その状態で、バスアービタ16に対して共
有バス15の利用要求を発行する(ステップS50
4)。
In this state, a request to use the shared bus 15 is issued to the bus arbiter 16 (step S50).
4).

【0038】キャッシュ11は、共有バス15の利用許
可を得た後、共有アドレスバス151に対して当該リー
ドアクセスのアドレスを転送し、共有コントロールバス
153に対してリード要求を発行し、共有データバス1
52にデータが供給されるまで待つ(ステップS50
6)。
After obtaining the use permission of the shared bus 15, the cache 11 transfers the address of the read access to the shared address bus 151, issues a read request to the shared control bus 153, and outputs the shared data bus. 1
Wait until data is supplied to 52 (step S50
6).

【0039】メイン・メモリ12により、リード要求、
及び当該リードアクセスのアドレスが受け付けられ、共
有データバス152にデータが供給される(ステップS
507)。
The main memory 12 requests read,
Also, the address of the read access is accepted, and data is supplied to the shared data bus 152 (step S
507).

【0040】キャッシュ11は、共有データバス152
に供給されたデータをキャッシュ11内のSRAM11
4の当該データブロックのエントリに登録する(ステッ
プS508)。
The cache 11 has a shared data bus 152.
The data supplied to the SRAM 11 in the cache 11
It is registered in the entry of the data block of No. 4 (step S508).

【0041】その後状態フラグ113を所定の値にセッ
トする(ステップS509)。状態フラグ113の値は
後述するが、リードミスであれば“CLEAN”に、ラ
イトミスであれば“DIRTY”にセットされる。
After that, the state flag 113 is set to a predetermined value (step S509). Although the value of the status flag 113 will be described later, it is set to "CLEAN" in the case of a read miss and set to "DIRTY" in the case of a write miss.

【0042】このようにして、キャッシュミスがあれば
メインメモリ12から必要なデータブロックを読み出し
て、LOAD命令を実行することができる。 [STORE命令]図4は、データをプロセッサ10か
らキャッシュ11に書き込むSTORE命令実行の際
の、キャッシュ11による制御手順を示したものである
(以下STORE命令がプロセッサ10から発行された
ものとして説明する)。
In this way, if there is a cache miss, the required data block can be read from the main memory 12 and the LOAD instruction can be executed. [STORE instruction] FIG. 4 shows a control procedure by the cache 11 when executing the STORE instruction for writing data from the processor 10 to the cache 11 (hereinafter, it is assumed that the STORE instruction is issued from the processor 10). ).

【0043】図4において、プロセッサ10から発行さ
れるSTORE命令に対して、アドレスバス141に出
力されているアドレスとアドレスタグ112に格納され
たアドレスとを比較器115により比較して一致するア
ドレスがあるか、すなわちキャッシュヒットしたか調べ
(ステップS401)、キャッシュ・ライトヒットした
場合、プロセッサ10はキャッシュ11に対してデータ
を供給する(ステップS403)。
In FIG. 4, in response to a STORE instruction issued from the processor 10, the address output to the address bus 141 and the address stored in the address tag 112 are compared by the comparator 115, and the matching address is found. If there is a cache hit (step S401), and if a cache write hit occurs, the processor 10 supplies data to the cache 11 (step S403).

【0044】プロセッサ10から発行されるSTORE
命令に対してキャッシュ・ライトミスした場合には、図
5のキャッシュミス処理を行って(ステップS40
2)、対応するエントリをキャッシュ内部に得た後キャ
ッシュ・ライトヒット処理を行う。
STORE issued from the processor 10
If a cache write miss occurs for the instruction, the cache miss process of FIG. 5 is performed (step S40).
2) The cache write hit process is performed after the corresponding entry is obtained in the cache.

【0045】以上のようにして、LOAD/STORE
命令をキャッシュにおいて処理している。 [SYNC命令]また、図11としてSYNC命令に対
する処理を説明する。SYNC命令はプロセッサがそれ
までに発行したメモリトランザクションをシステム中に
反映することを要求するものであり、本実施の形態にお
いてはキャッシュのデータブロックの一貫性を保持する
ためにDIRTYブロックを強制的にライトバックさせ
る命令となる。コントロール信号のデコードなどでSY
NC命令を検出すると、キャッシュ制御シーケンサ11
1が図8に示した単に後述のライトバック処理によりラ
イトバックを実施するというものである。 [ライトバック制御(流れ図による説明)]次に本シス
テムの特長であるキャッシュからメモリへのライトバッ
クを実施するまでの制御手順を、図8のフローチャート
を用いて説明する。この手順は、図3〜図5及び図11
における「ライトバック処理」工程により実行される。
As described above, LOAD / STORE
The instruction is being processed in the cache. [SYNC instruction] The processing for the SYNC instruction will be described with reference to FIG. The SYNC instruction requests that the processor reflect the memory transaction issued so far in the system. In the present embodiment, the DIRTY block is forced to maintain the consistency of the data block of the cache. It is an instruction to write back. SY for decoding control signals
When the NC instruction is detected, the cache control sequencer 11
In FIG. 1, the write-back is performed by the write-back processing described later and shown in FIG. [Write-back Control (Explanation by Flowchart)] Next, a control procedure for executing write-back from the cache to the memory, which is a feature of the present system, will be described with reference to the flowchart of FIG. This procedure is shown in FIGS.
The "write-back process" step is executed.

【0046】本システムの特長は緩いコンシステンシモ
デルに合わせて、キャッシュのライトバックを実施する
ことにある。従来では他のプロセッサ等から自キャッシ
ュの最新の値で書き換えられた後メインメモリにその値
を反映していないデータ・ブロック(“DIRTY”ブ
ロック)に対するリードが行われた場合、ライトバック
を実行していたが、本システムではこれを行わない。ラ
イトバックが行われるのは、 1:プロセッサからSYNC命令が発行された場合;こ
の場合、キャッシュ内部にある“DIRTY”ブロック
は全てメイン・メモリにライトバックされる。
The feature of this system is that the cache write-back is performed in accordance with the loose consistency model. Conventionally, when a data block (“DIRTY” block) that does not reflect the value is read from the main memory after being rewritten by another processor or the like with the latest value, the write-back is executed. However, this system does not do this. The write-back is performed as follows: 1: When a SYNC instruction is issued from the processor; in this case, all "DIRTY" blocks in the cache are written back to the main memory.

【0047】2:キャッシュミスが発生し、置換対象と
して“DIRTY”ブロックが選択された場合;この場
合、キャッシュ内部にある、置換の対象となったブロッ
クのみメイン・メモリにライトバックされる。
2: When a cache miss occurs and the "DIRTY" block is selected as a replacement target; in this case, only the replacement target block in the cache is written back to the main memory.

【0048】これら1及び2の場合を、共有バスの利用
要求(共有バスリクエスト)を行ってバスの利用権を自
ら得てライトバックを実行しようとする意味で高優先度
ライトバックと呼ぶことにする。さらに、 3:キャッシュ内部に“DIRTY”ブロックが存在
し、共有バスが空いている場合;この場合、共有バスが
空いている時、“DIRTY”ブロックが順次メモリに
ライトバックされる。共有バスが空いている場合をこの
方法では暗黙の共有バス利用許可信号が共有バスアービ
タから与えられていることに依って判断する。このライ
トバックを実行するために、共有バス要求を発行するこ
とはしない。この暗黙の共有バス利用許可信号について
詳しくは後述する。
These cases 1 and 2 will be referred to as high-priority write-back in the sense that a shared-bus use request (shared bus request) is made and the bus use right is acquired to execute write-back. To do. Further, 3: When the "DIRTY" block exists in the cache and the shared bus is free; in this case, when the shared bus is free, the "DIRTY" block is sequentially written back to the memory. In this method, the case where the shared bus is vacant is determined based on the implicit shared bus use permission signal given from the shared bus arbiter. No shared bus request is issued to perform this write back. The implicit shared bus use permission signal will be described later in detail.

【0049】この3の場合のライトバックを低優先度ラ
イトバックと呼ぶことにする。
The write back in the case of this 3 will be called a low priority write back.

【0050】以上、3つの場合にライトバックが行われ
るが、各場合の制御を図8の手順により実現している。
As described above, the write back is performed in the three cases, and the control in each case is realized by the procedure of FIG.

【0051】ライトバック処理が開始されると、キャッ
シュ内部に“DIRTY”ブロックがあるか判定し(ス
テップS801)、あれば、すなわち上記場合1(図1
1から呼び出される場合)であれば、プロセッサからS
YNC命令が発行されたことによるライトバックである
ことを検出して(ステップS802)、キャッシュ制御
シーケンサ111が共有バスの要求を発行して(ステッ
プS803)、キャッシュ内部の“DIRTY”ブロッ
クが無くなるまで繰り返しライトバックを実施する(ス
テップS804〜S805)。
When the write-back process is started, it is judged whether or not there is a "DIRTY" block in the cache (step S801), and if there is, that is, in the case 1 (FIG. 1).
If it is called from 1), S from the processor
Until the cache control sequencer 111 issues a request for the shared bus (step S803) after detecting the write back due to the issuance of the YNC instruction (step S803), there is no "DIRTY" block inside the cache. The write back is repeatedly performed (steps S804 to S805).

【0052】また場合2であれば(図5から呼び出され
る場合)、すなわちキャッシュミスした際に“DIRT
Y”キャッシュブロックを置換する場合には(ステップ
S806−Yes)、共有バスリクエストを発行して共
通バス15の使用許可を得ると(ステップS807)、
置換対象となるキャッシュブロックをメインメモリ12
にライトバックする(ステップS808)。
In case 2 (when called from FIG. 5), that is, when a cache miss occurs, "DIRT
If the Y "cache block is replaced (step S806-Yes), a shared bus request is issued to obtain permission to use the common bus 15 (step S807).
Replace the cache block to be replaced with the main memory 12
Write back to (step S808).

【0053】また、場合3であれば、暗黙の共有バス利
用許可が与えられていると(ステップS809−Ye
s)、“DIRTY”ブロックのライトバックを行う
(ステップS810)。
In case 3, the implicit permission to use the shared bus is given (step S809-Ye).
s), write back of the "DIRTY" block is performed (step S810).

【0054】図6は、メイン・メモリへ“DIRTY”
データブロックのライトバック処理実行の制御手順を示
したものであり、図8におけるライトバック手順の高優
先(ステップS804,S808)及び低優先(ステッ
プS810)ライトバック実施の手順となる。以下、メ
イン・メモリ12へのライトバック処理がキャッシュ1
1から発行されたものとして説明する。
FIG. 6 shows "DIRTY" in main memory.
9 shows a control procedure for executing write-back processing of a data block, which is a write-back execution procedure of high priority (steps S804 and S808) and low priority (step S810) of the write-back procedure in FIG. Hereinafter, the write-back processing to the main memory 12 is the cache 1
It will be described as being issued from 1.

【0055】図6は、キャッシュ11が共有バス15の
利用権を要求した直後から開始されている。図6の高優
先ライトバック実施手順において、キャッシュ11は、
共有バス15の利用権を獲得した後(ステップS60
1)、共有コントロールバス153に対してライトバッ
ク要求元情報、及び共有アドレスバス151に対して当
該ライトバックアクセスのアドレスを転送し、共有コン
トロールバス153に対してライトバック要求を発行し
(ステップS602)、共有データバス152にライト
バックするデータを供給してメインメモリ12にそのデ
ータを書き込む(ステップS603)。その後、当該ラ
イトバックされたキャッシュブロックの状態フラグを
“CLEAN”に設定する(ステップS604)。
FIG. 6 starts immediately after the cache 11 requests the right to use the shared bus 15. In the high-priority write-back execution procedure of FIG. 6, the cache 11
After acquiring the right to use the shared bus 15 (step S60)
1), the write-back request source information to the shared control bus 153 and the address of the write-back access to the shared address bus 151 are transferred, and the write-back request is issued to the shared control bus 153 (step S602). ), And supplies the data to be written back to the shared data bus 152 and writes the data in the main memory 12 (step S603). Then, the state flag of the write-back cache block is set to "CLEAN" (step S604).

【0056】低優先ライトバック実施手順では、共有バ
スリクエストは発行しないため、ステップS602から
開始される。
In the low-priority write-back execution procedure, the shared bus request is not issued, so that the procedure starts from step S602.

【0057】一方、キャッシュ11からライトバック要
求が発生すると、キャッシュ11以外のキャッシュ、例
えばキャッシュ21は、共有バス15に転送されるアド
レスをスヌープして(ステップS611)、キャッシュ
12内のアドレスタグを検索する(ステップS61
2)。検索の結果、アドレスタグに、スヌープしたアド
レスのデータのコピーが有効な状態、すなわち“DIR
TY”もしくは“CLEAN”で保持されている場合は
(ステップS613)、有効な状態で保持しているデー
タブロックに対応する状態フラグを無効化(“INVA
LID”に)する。この無効化が、本例における一貫性
保持動作である。
On the other hand, when a write back request is issued from the cache 11, the caches other than the cache 11, for example, the cache 21, snoops the address transferred to the shared bus 15 (step S611) and sets the address tag in the cache 12 to the address tag. Search (step S61)
2). As a result of the search, the copy of the data of the snooped address is valid in the address tag, that is, "DIR".
If it is held in TY "or" CLEAN "(step S613), the status flag corresponding to the data block held in the valid status is invalidated (" INVA ").
LID "). This invalidation is the consistency maintaining operation in this example.

【0058】このように、ライトバック処理が行われる
と、ライトバックしたキャッシュに保持されているデー
タがメインメモリと一致しているデータとして有効とな
り、それ以外のキャッシュに保持されている、ライトバ
ックされたデータは無効化され、データの一貫性が保持
される。
When the write-back process is performed in this way, the data held in the cache that was written back becomes valid as the data that matches the main memory, and the write-back held in the other caches is performed. The invalidated data is invalidated and the data is kept consistent.

【0059】図7は、各メモリトランザクション実行時
の状態フラグの状態遷移図を示したものであり、図3〜
図6,図8及び図11に従ったキャッシュ制御シーケン
サの制御の結果、状態フラグが変遷する様子をまとめた
ものである。以下キャッシュ11の状態フラグ113と
して説明する。
FIG. 7 is a state transition diagram of the state flag at the time of executing each memory transaction.
12 is a summary of how the status flag changes as a result of the control of the cache control sequencer according to FIGS. 6, 8 and 11. Hereinafter, the state flag 113 of the cache 11 will be described.

【0060】図7において、状態“INVALID”は
当該状態フラグ113が管理するデータエントリが無効
であることを示す。状態“CLEAN”は当該状態フラ
グ113が管理するデータエントリがメイン・メモリか
らリードされた後、1回も書き換えられていないことを
示す。当該データエントリにはメイン・メモリと同一の
値が格納されているが、他のキャッシュのデータエント
リには最新の値が格納されている可能性がある。状態
“DIRTY”は当該状態フラグ113が管理するデー
タエントリがメイン・メモリからリードされた後、1回
以上最新の値で書き換えられ、かつ、主記憶にその値を
反映していないことを示す。当該データエントリには最
新の値が格納されている。このようなそれぞれの状態に
おいて、処理に応じて図7のように状態が遷移する。以
下、丸数字は図7に対応する。
In FIG. 7, the status "INVALID" indicates that the data entry managed by the status flag 113 is invalid. The state "CLEAN" indicates that the data entry managed by the state flag 113 has not been rewritten even once after being read from the main memory. Although the same value as the main memory is stored in the data entry, the latest value may be stored in the data entry of another cache. The state "DIRTY" indicates that the data entry managed by the state flag 113 is read from the main memory and then rewritten with the latest value one or more times, and the value is not reflected in the main memory. The latest value is stored in the data entry. In each of these states, the state transitions as shown in FIG. 7 depending on the processing. Hereinafter, the circled numbers correspond to those in FIG. 7.

【0061】“INVALID”状態のデータに対し
てプロセッサ10からLOAD命令が発行された場合、
キャッシュミス処理が行なわれ、状態フラグは“CLE
AN”に遷移する。
When the LOAD instruction is issued from the processor 10 to the data in the "INVALID" state,
Cache miss processing is performed, and the status flag is "CLE
Transition to "AN".

【0062】“INVALID”状態のデータに対し
てプロセッサ10からSTORE命令が発行された場
合、一旦キャッシュミス処理が実行され、状態フラグは
“DIRTY”に遷移する。
When the STORE instruction is issued from the processor 10 to the data in the "INVALID" state, the cache miss process is once executed and the state flag transits to "DIRTY".

【0063】“CLEAN”状態のデータに対してプ
ロセッサ10からLOAD命令が発行された場合、キャ
ッシュ・リードヒット処理が実行され、状態フラグは
“CLEAN”に遷移する。
When the LOAD instruction is issued from the processor 10 to the data in the "CLEAN" state, the cache read hit process is executed and the state flag transits to "CLEAN".

【0064】“CLEAN”状態のデータに対してプ
ロセッサ10からSTORE命令が発行された場合、キ
ャッシュ・ライトヒット処理が実行され、状態フラグは
“DIRTY”に遷移する。
When the STORE instruction is issued from the processor 10 to the data in the "CLEAN" state, the cache write hit process is executed and the state flag transits to "DIRTY".

【0065】“CLEAN”状態のデータに対して外
部のバスマスタのライトバック処理に対してスヌープヒ
ットした場合は、一貫性保持動作(他プロセッサからの
無効化トランザクション)が実行され、状態フラグは
“INVALID”に遷移する。
When a snoop hit is made to the write back process of the external bus master for the data in the "CLEAN" state, the consistency maintaining operation (invalidation transaction from another processor) is executed and the state flag is set to "INVALID". Transition to ".

【0066】“DIRTY”状態のデータに対してプ
ロセッサ10からLOAD命令が発行された場合、キャ
ッシュ・リードヒット処理が実行され、状態フラグは
“DIRTY”のままである。
When the LOAD instruction is issued from the processor 10 to the data in the "DIRTY" state, the cache read hit process is executed and the state flag remains "DIRTY".

【0067】“DIRTY”状態のデータに対しプロ
セッサ10からSTORE命令が発行された場合、キャ
ッシュ・ライトヒット処理が実行され、状態フラグは
“DIRTY”のままである。
When the STORE instruction is issued from the processor 10 to the data in the "DIRTY" state, the cache write hit process is executed and the state flag remains "DIRTY".

【0068】“DIRTY”状態のデータに対して主
記憶へのライトバック処理が実行された場合、状態フラ
グは“CLEAN”に遷移する。
When the write-back process to the main memory is executed for the data in the "DIRTY" state, the state flag transits to "CLEAN".

【0069】“DIRTY”状態のデータに対して、
外部のバスマスタのライトバック処理に対してスヌープ
ヒットした場合は、一貫性保持動作(他プロセッサから
の無効化トランザクション)が実行され、状態フラグは
“INVALID”に遷移する。
For data in the "DIRTY" state,
When a snoop hit is made to the write-back processing of the external bus master, the consistency holding operation (invalidation transaction from another processor) is executed, and the status flag transits to "INVALID".

【0070】以上のように状態を遷移させることで、図
1の構成におけるキャッシュブロックとメインメモリと
の一貫性を保持することができる。 <バスアービタ>次に、本発明の特徴である低優先度ラ
イトバックを実現するために、暗黙の共有バス利用許可
をバスアービタによってキャッシュに与えるための構成
を、図9,図10を参照して説明する。
By changing the states as described above, the consistency between the cache block and the main memory in the configuration of FIG. 1 can be maintained. <Bus Arbiter> Next, a configuration for giving an implicit shared bus use permission to the cache by the bus arbiter in order to realize the low-priority write-back, which is a feature of the present invention, will be described with reference to FIGS. To do.

【0071】図9はバスアービタ16の構成図である。FIG. 9 is a block diagram of the bus arbiter 16.

【0072】キャッシュ11及び21からコントロール
バス153の一部として、キャッシュ11の共有バスリ
クエスト信号(BR1*)161、キャッシュ21の共
有バスリクエスト信号(BR2*)162が入力されて
いる。共有バスリクエスト信号161,162はLの時
に真(要求あり)である。
The shared bus request signal (BR1 *) 161 of the cache 11 and the shared bus request signal (BR2 *) 162 of the cache 21 are input from the caches 11 and 21 as part of the control bus 153. The shared bus request signals 161, 162 are true (requested) when L.

【0073】また、キャッシュ11に対する共有バスグ
ラント信号(BG1*)165、キャッシュ21に対す
る共有バスグラント信号(BG2*)166が出力され
ている。これらの信号もLの時に真(要求許可)であ
る。
A shared bus grant signal (BG1 *) 165 for the cache 11 and a shared bus grant signal (BG2 *) 166 for the cache 21 are output. These signals are also true (request permission) when L.

【0074】さらに、バスアービタ16には、各バスマ
スタが共有バスを使用しているかどうかを示すバスビジ
ー信号(BB*:Lのときあるバスマスタがバスを使用
中であることを示す)167も入力されている。バスア
ービタ16は同期式回路であり、システムクロック(B
CLK)168の各立ち上がりで各信号はラッチ169
a〜169eによりラッチされ、その信号に合わせて組
み合わせ回路160は各状態を遷移する。
Further, the bus arbiter 16 is also supplied with a bus busy signal 167 indicating whether each bus master is using the shared bus (BB *: L indicates that a certain bus master is using the bus) 167. There is. The bus arbiter 16 is a synchronous circuit and has a system clock (B
CLK) 168, each signal is latched at each rising edge 169
a to 169e, and the combinational circuit 160 transits each state according to the signal.

【0075】図10は、共有バスのアービトレーション
のタイミングの一例を示したものである。本実施の形態
においては、各共有バスマスタは、図10に示すように
バス利用要求を出していて、BB*=Hを検出したバス
クロック(BCLK)の立ち上がり時点t1において、
自分にバス利用許可が降りていること(BG*=L)を
認識した場合、その次のバスサイクルでBB*をLにア
サートして共有バスの使用を宣言し、自分が共有バスを
利用している間BB*をアサートし続けるという形で、
共有バスアービトレーションが行われているものとす
る。
FIG. 10 shows an example of the arbitration timing of the shared bus. In the present embodiment, each shared bus master issues a bus use request as shown in FIG. 10, and at the rising time t1 of the bus clock (BCLK) at which BB * = H is detected,
If you recognize that you have been granted the bus permission (BG * = L), assert BB * to L in the next bus cycle to declare the use of the shared bus, and then use the shared bus yourself. While continuing to assert BB *,
It is assumed that shared bus arbitration is in progress.

【0076】この調停アルゴリズムの基本は、BB*が
HからLに遷移したことを検出した後、(即ち、新しく
バスマスタがバスを利用し始めた後)バスの使用権の調
停を開始し、その時点において優先順位のもっとも高い
バスマスタに対してバスの利用許可を与えるというもの
である。
The basis of this arbitration algorithm is to start arbitration of the right to use the bus after detecting the transition of BB * from H to L (that is, after a new bus master starts using the bus). The bus permission is given to the bus master having the highest priority at the time.

【0077】優先順位は調停開始時点において以下のよ
うなものである。
The priority order is as follows at the start of arbitration.

【0078】まず、バス利用要求の有無に基づいて以下
の2グループに分けられる。
First, the following two groups are classified based on the presence / absence of a bus use request.

【0079】優先度A:バスリクエストを出しているバ
スマスタ 優先度B:バスリクエストを出していないが、現在バス
の使用権をもつバスマスタ 但し優先度A>優先度Bとする。
Priority A: Bus master issuing a bus request Priority B: Bus master not issuing a bus request but having the right to use the bus now, however, priority A> priority B.

【0080】また、優先度Aのグループの中では各バス
マスタの順位はラウンドロビン方式で決められる。
In the priority A group, the order of each bus master is determined by the round robin method.

【0081】即ちN個のバスマスタがあったとして(本
実施の形態ではN=2)今バスマスタ番号i(0≦i≦
N−1)がバスを利用しているとすると i+1(mod N)>i+2(mod N) > … > i+N-2(mod N) > i+N-1
(mod N) > i となる。この順番にしたがってバスリクエストを発行し
ているバスマスタに対してバスの利用権が与えられる。
That is, assuming that there are N bus masters (N = 2 in this embodiment), the bus master number i (0≤i≤)
N-1) is using the bus i + 1 (mod N)> i + 2 (mod N)>…> i + N-2 (mod N)> i + N-1
(mod N)> i. According to this order, the bus use right is given to the bus master issuing the bus request.

【0082】どのバスマスタもバスリクエストを発行し
ていない場合に限り、優先度Bに基づいて、現在バスの
使用権を持つバスマスタに対して、そのままバス利用許
可が与えられる。このように利用要求がないにもかかわ
らず出される利用許可を暗黙の利用許可と呼ぶ。
Only when no bus master issues a bus request, the bus use permission is given to the bus master having the right to use the bus based on the priority B as it is. The usage permission that is issued even when there is no usage request is called an implicit usage permission.

【0083】調停は上記優先度に従って次のバスマスタ
が決められた段階(BG*がアサートされた時点)で終
了する。但し、その調停によって決められたバスマスタ
が暗黙のバス利用許可に基づく場合で、その暗黙の許可
を受けているバスマスタがBB*=Hにおいて自分のバ
ス使用権を認識するより前に、他のバスマスタからのバ
ス利用要求が発生した場合には再調停が行われる。
The arbitration ends at the stage (when BG * is asserted) when the next bus master is decided according to the above-mentioned priority. However, if the bus master determined by the arbitration is based on the implicit bus use permission, and before the bus master that has received the implicit permission recognizes its own bus use right at BB * = H, another bus master When a bus use request is issued from the server, arbitration is performed.

【0084】図10においては、まずキャッシュ11
(バスマスタ1)から共有バスリクエストBR1*が出
され、タイミングt1においてバスアービタ16がそれ
を検出すると、次のクロックタイミングt2に間に合う
ようにその許可信号BG1*を出力する。するとキャッ
シュ11はバス使用中信号BB*を出力してバスを占有
する。その間にキャッシュ21(バスマスタ2)からバ
ス要求BR2*が出力されていると、タイミングt3で
それを検出して優先度に従って許可信号BG2*を出
す。キャッシュ21はキャッシュ11がバスを使用して
いる間待って、共有バス15が空いたタイミングt5で
そのことを認識し、バス使用中信号BB*を出力してバ
スを使用する。
In FIG. 10, first, the cache 11
When the shared bus request BR1 * is issued from (bus master 1) and the bus arbiter 16 detects it at the timing t1, the enable signal BG1 * is output in time for the next clock timing t2. Then, the cache 11 outputs the bus busy signal BB * and occupies the bus. If the bus request BR2 * is output from the cache 21 (bus master 2) in the meantime, it is detected at timing t3 and the permission signal BG2 * is issued according to the priority. The cache 21 waits while the cache 11 is using the bus, recognizes that at the timing t5 when the shared bus 15 becomes free, and outputs the bus busy signal BB * to use the bus.

【0085】キャッシュ21がバスの要求をやめると、
すなわちBR2*をHにすると、バスアービタ16は、
いずれのバスマスタからも共通バス要求が出されていな
いため、現在使用中のバスマスタであるキャッシュ21
に引き続きバスの利用許可を与え続ける。キャッシュ2
1は一旦バスを手放すものの、タイミングt6で利用許
可が与え続けられていることを検出して引き続きバスの
使用を開始する。
When the cache 21 stops requesting the bus,
That is, when BR2 * is set to H, the bus arbiter 16
Since no common bus request is issued from any of the bus masters, the cache 21 which is the bus master currently in use.
Will continue to give permission to use the bus. Cache 2
Although No. 1 once releases the bus, it detects that the use permission is continuously given at timing t6 and continues to use the bus.

【0086】本例では、このタイミング、すなわち、図
10の(b)のタイミングでキャッシュのライトバック
処理を行っており、これが図8のステップS809,S
810に相当する。
In this example, the cache write-back processing is performed at this timing, that is, the timing shown in FIG. 10B, and this is steps S809, S in FIG.
Corresponding to 810.

【0087】このように、図10において、BR2*が
Hに変化したのちもBG2*がバスマスタ2に対して与
えられている(図中(a))が、この部分が暗黙のバス
利用許可であり、それに対してバスマスタ2は、BR2
*をアサートすることなく、再びバスを利用している。
(図中(b)) このようにすることによって、バスアービタ16は、共
有バスが空いている場合に、その直前にバスを利用して
いたバスマスタに対してバスの暗黙の利用許可を与える
ことができる。 <ライトバック制御(信号による説明)>このようにし
て暗黙のバス利用許可が与えられた場合に、どのように
して低優先度のライトバックを実行するかを図2を参照
しながら説明する。これは図8におけるステップS80
9,810のより詳細な説明となる。
As described above, in FIG. 10, BG2 * is given to the bus master 2 even after BR2 * changes to H ((a) in the figure), but this portion is an implicit bus use permission. Yes, in contrast, the bus master 2 is BR2
Bus is used again without asserting *.
((B) in the figure) By doing so, the bus arbiter 16 can give the implicit use permission of the bus to the bus master who was using the bus immediately before when the shared bus is free. it can. <Write-back Control (Explanation by Signal)> How the low-priority write-back is executed when the implicit bus use permission is given in this way will be described with reference to FIG. This is step S80 in FIG.
This will be a more detailed description of 9,810.

【0088】図2において、キャッシュ制御シーケンサ
はキャッシュ外部からのアクセスが無い場合、内部レジ
スタ196の値をアドレス‐m171上に発行し、それ
によって得られる状態フラグ113の状態をステータス
信号線192を通じて検査する。その結果そのブロック
が“DIRTY”であると判断されると、共有バスコン
トロールインタフェース156に対して、暗黙の共有バ
ス利用許可信号を受け取った場合には、その“DIRT
Y”ブロックを低優先度ライトバックするようにS‐C
ont信号線195を通じて通知する。
In FIG. 2, when there is no access from outside the cache, the cache control sequencer issues the value of the internal register 196 to the address -m171 and checks the status of the status flag 113 obtained thereby through the status signal line 192. To do. As a result, when the block is judged to be "DIRTY", if the implicit shared bus use permission signal is received to the shared bus control interface 156, the "DIRT" is transmitted.
Y ”block to write back low priority SC
Notification is made via the ont signal line 195.

【0089】次いで、BR1*161をアサートすべき
状態にないにもかかわらず、BB*=Hを満たすバスク
ロックBCLK168の立ち上がりでBG1*165が
Lであること(すなわち、暗黙のバス利用許可)を認識
した共有バスコントロールインタフェース156は、B
B*をLにドライブして、共有バスの使用を宣言する。
得られたバス利用権は暗黙のものであるから、他のバス
マスタの動作を阻害することはない。
Next, it is confirmed that BG1 * 165 is L at the rising edge of the bus clock BCLK168 satisfying BB * = H (that is, implicit bus use permission) even though BR1 * 161 is not in a state to be asserted. The recognized shared bus control interface 156 is B
Drive B * low to declare the use of the shared bus.
Since the obtained bus use right is implicit, it does not hinder the operation of other bus masters.

【0090】共有バス15の利用権を得たことを認識し
たキャッシュ制御シーケンサ111は、ライトバックを
行うべきアドレスをアドレス‐m171及びそれによっ
て引き出された上位アドレスアドレス‐h’173など
から生成し、共有バスアドレスI/F154に供給し共
有バス15上にドライブする。同時にそのとき選択され
るべきSRAM114上のデータを、比較器コントロー
ル信号176を115の比較器を通すことによって得ら
れる選択器に対するセレクト信号193によって選択
し、Data信号線174上にドライブさせる。そのデ
ータは共有バスデータI/F155を通して共有バス上
にドライブされ、メインメモリ12に対するライトバッ
ク動作が実行される。
The cache control sequencer 111, which has recognized that it has obtained the right to use the shared bus 15, generates an address to be written back from the address-m171 and the upper address address-h'173 fetched by the address-m171. It is supplied to the shared bus address I / F 154 and driven onto the shared bus 15. At the same time, the data on the SRAM 114 to be selected at that time is selected by the select signal 193 for the selector obtained by passing the comparator control signal 176 through the comparator 115, and is driven onto the Data signal line 174. The data is driven onto the shared bus through the shared bus data I / F 155, and the write back operation for the main memory 12 is executed.

【0091】なお、同時にキャッシュ21はバスをスヌ
ープしており、上記のようなライトバック動作が実行さ
れた場合には、自キャッシュ内を検査し、該当するエン
トリが存在していた場合にはその状態フラグ113を無
効化する。
At the same time, the cache 21 snoops the bus, and when the above write-back operation is executed, the inside of its own cache is inspected, and if the corresponding entry exists, its cache is checked. The status flag 113 is invalidated.

【0092】この仕組みにより、プロセッサから同期の
ための命令(ここでは以下SYNC命令と記す)が発行
された時点でキャッシュ・メモリの一貫性が保証される
ようなプロトコルを用いたシステムにおいて、その性能
を高めるために将来SYNC命令が発行された時点にキ
ャッシュ・メモリからメイン・メモリへのライトバック
が行われるであろうデータ・ブロックを、共有バスが他
のバスマスタに利用されていない場合にあらかじめ書き
戻すことが可能になり、システムの高性能化が図れるこ
とになる。
With this mechanism, the performance of a system using a protocol that guarantees the consistency of the cache memory when a synchronization instruction (hereinafter referred to as a SYNC instruction) is issued from the processor. In order to improve performance, a data block that will be written back from the cache memory to the main memory when a SYNC instruction is issued in the future is written in advance when the shared bus is not used by another bus master. It will be possible to restore the system and improve the performance of the system.

【0093】[0093]

【他の実施形態】前の実施の形態では、キャッシュ制御
シーケンサ111は、キャッシュ内部に低優先度のライ
トバックに対する要求が存在していても、バスアービタ
16が暗黙のバス利用許可を与えてくれるのを待たない
限り、それをメインメモリ12にライトバックすること
はできなかった。この方法では、ライトバックの要求が
ないバスマスタに暗黙のバス利用許可が下りていて、そ
のバスマスタがバスを使用しない場合、別のバスマスタ
において低優先度のライトバックの要求が存在していた
場合にはバスの利用効率が落ちることになる。
Other Embodiments In the previous embodiment, the cache control sequencer 111 gives the implicit bus use permission by the bus arbiter 16 even if there is a low priority write-back request in the cache. It was not possible to write it back to the main memory 12 unless I waited for. In this method, if a bus master that does not have a write-back request has an implicit bus use permission, the bus master does not use the bus, and another bus master has a low-priority write-back request, Will reduce the efficiency of bus usage.

【0094】それを改善し、あるバスマスタに暗黙のバ
ス利用許可が与えられていた場合においても、そのバス
マスタがバスを利用しない場合で、他のバスマスタに低
優先度のライトバック要求が存在している場合には、そ
のバスマスタに与えられた暗黙のバス利用許可を取り消
して、低優先度のライトバック要求を持つバスマスタに
バスの利用許可を与えることで、バスの利用効率を上げ
る方法について、第2の実施形態として説明する。
Improving that, even when an implicit bus use permission is given to a certain bus master, when that bus master does not use the bus, another bus master has a write-back request of low priority. In this case, the method of improving the bus usage efficiency by canceling the implicit bus usage permission given to the bus master and granting the bus usage permission to the bus master with the low-priority write-back request is explained. The second embodiment will be described.

【0095】全体システムの構成、キャッシュシステム
の構成及び各処理の流れに関しては、第1の実施の形態
のものと図1から図7までについては同様であるので省
略する。
The configuration of the entire system, the configuration of the cache system, and the flow of each processing are the same as those of the first embodiment in FIGS.

【0096】図12は、第2の実施形態におけるキャッ
シュがライトバックを実施する際の制御手順を示したも
のである。第1の実施の形態における図8と異なるの
は、低優先度ライトバックの場合の実施方法として、新
たに1つのパスが加わったことである。本実施の形態に
おいては、ライトバックが行われるのは、 1:プロセッサからSYNC命令が発行された場合 2:キャッシュミスが発生し、置換対象として“DIR
TY”ブロックが選択された場合 3:キャッシュ内部に“DIRTY”ブロックが存在
し、共有バスが空いている場合 以上3つに加えて、 4:キャッシュ内部に“DIRTY”ブロックが存在
し、共有バスの利用許可が与えられていない(他のバス
マスタに暗黙の利用許可が与えられている場合を含む)
が、他のバスマスタがバスを利用していない場合 の4つの場合である。
FIG. 12 shows a control procedure when the cache performs the write-back in the second embodiment. What is different from FIG. 8 in the first embodiment is that one path is newly added as an implementation method in the case of low priority write-back. In the present embodiment, write-back is performed in the following manner: 1: When a SYNC instruction is issued from the processor 2: A cache miss occurs and the replacement target is "DIR".
When the "TY" block is selected 3: When the "DIRTY" block exists inside the cache and the shared bus is free In addition to the above three, 4: When the "DIRTY" block exists inside the cache and the shared bus Is not granted permission (including the case where other bus masters are given implicit permission)
However, there are four cases where other bus masters are not using the bus.

【0097】1から3の場合は前の実施形態で既に述べ
たので説明を省略する。4の場合は、共有バスの利用権
は自分には与えられていないが、他のバスマスタもバス
を利用していないということによって、その状態にある
ことを判断する。また、この4のライトバックも低優先
度ライトバックと呼ぶことにする。
The cases of 1 to 3 have already been described in the previous embodiment, and the description thereof will be omitted. In the case of 4, the right to use the shared bus is not given to itself, but it is determined that the bus is in that state because no other bus master is also using the bus. Also, the write back of 4 will be referred to as a low priority write back.

【0098】以上を示すのが図12である。ステップS
1201〜S1210まではステップS801S810
とほぼ同じであるが、ステップS1209において、暗
黙の共有バス利用許可が与えれれていない場合に、バス
使用中信号BBが一定時間Hである、すなわち一定時間
未使用のままであると(ステップS1211−Ye
s)、共有バスリクエストを発行し(ステップS121
2)、DIRTYデータのライトバックを実行する(ス
テップS1213)。なお、ステップS1213におけ
るライトバックは、低優先度ライトバックとはいえ共有
バスリクエストを発行するため、高優先度と同様にバス
リクエストに対する使用許可を確認するステップS60
1から呼び出すことになる。
FIG. 12 shows the above. Step S
Steps 1201 to S1210 are steps S801 to S810.
However, if the implicit shared bus use permission is not given in step S1209, the bus busy signal BB is H for a certain period of time, that is, remains unused for a certain period of time (step S1211). -Ye
s), and issues a shared bus request (step S121
2) WRITE back the DIRTY data is executed (step S1213). Note that the write-back in step S1213 issues a shared bus request even though it is a low-priority write-back, so that the use permission for the bus request is confirmed in the same manner as in the high-priority step S60.
It will be called from 1.

【0099】以下、上記場合4を実現するための装置及
び手順について詳細に説明する。
The apparatus and procedure for realizing Case 4 will be described in detail below.

【0100】図2,図9において、キャッシュ制御シー
ケンサ111はキャッシュ外部からのアクセスが無い場
合、内部レジスタ196の値をアドレス‐m171上に
発行し、それによって得られる状態フラグ113の状態
をステータス信号線192を通じて検査する。その結果
がそのブロックが“DIRTY”であると判断される
と、共有バスコントロールインタフェース156に対し
て、共有バス利用許可信号を受け取ったならその“DI
RTY”ブロックを低優先度ライトバックするようにS
‐Cont信号線195を通じて通知する。
In FIGS. 2 and 9, the cache control sequencer 111 issues the value of the internal register 196 to the address -m171 when there is no access from the outside of the cache, and the state of the state flag 113 obtained by this is sent to the status signal. Check through line 192. When it is determined that the block is "DIRTY" as a result, if the shared bus use permission signal is received by the shared bus control interface 156, that "DI" is received.
RTY ”block to write back low priority S
-Notify via the Cont signal line 195.

【0101】低優先度ライトバックの要求を受けた共有
バスインタフェース156は暗黙のバス利用許可を待
つ。同時に共有バスの状態を監視し、他のバスマスタに
対して暗黙のバス利用許可が与えられているにもかかわ
らず、そのバスマスタがバスを利用していないような状
態(共有バス不活性状態)がないかどうかをチェックす
る。
The shared bus interface 156 that has received the low-priority write-back request waits for an implicit permission to use the bus. At the same time, the state of the shared bus is monitored, and the state in which the bus master is not using the bus even though the implicit bus use permission is given to other bus masters (shared bus inactive state) Check for any.

【0102】本実施の形態の場合は、共有バス不活性状
態は、自分に対して暗黙のバス利用許可が降りていない
場合で、BB*信号167が、一定時間T以上Hである
状態として認識される。
In the case of the present embodiment, the shared bus inactive state is recognized as a state in which the BB * signal 167 is H for a certain period of time T or more when the implicit bus use permission is not given to itself. To be done.

【0103】ここで、一定時間Tは、共有バスのプロト
コルとして定まる値であり、実施の形態1の図10で示
したプロトコルを用いた場合には、T=2となる。
Here, the constant time T is a value determined as the protocol of the shared bus, and T = 2 when the protocol shown in FIG. 10 of the first embodiment is used.

【0104】T≧2を検出して共有バス不活性状態にあ
ると認識した共有バスコントロールインタフェース15
6は、自分がバス利用権を得るためバスリクエスト信号
BR1*をLにドライブする。そのことにより、バス利
用許可を、許可信号BG1*=Lの形で受け取った共有
バスコントロールインタフェース156は、BB*信号
167をLにドライブし、低優先度ライトバックを実施
する。
Shared bus control interface 15 which recognizes T ≧ 2 and recognizes that the shared bus is inactive
6 drives the bus request signal BR1 * to L to obtain the right to use the bus. As a result, the shared bus control interface 156, which has received the bus use permission in the form of the permission signal BG1 * = L, drives the BB * signal 167 to L and implements low-priority write-back.

【0105】共有バスの利用権を得たことを認識したキ
ャッシュ制御シーケンサ111は、ライトバックを行う
べきアドレスをアドレス‐m171及びそれによって引
き出された上位アドレスアドレス‐h’173などから
生成し、共有バスアドレスインタフェース154に供給
し共有バス上にドライブする。同時にそのとき選択され
るべきSRAM114上のデータを、比較器コントロー
ル信号176を115の比較器を通すことによって得ら
れる選択器に対するセレクト信号193によって選択
し、Data信号線174上にドライブさせる。そのデ
ータは共有バスデータインタフェース155を通して共
有バス上にドライブされ、メインメモリ12に対するラ
イトバック動作が実行される。
When the cache control sequencer 111 recognizes that it has acquired the right to use the shared bus, it generates an address to be written back from the address-m171 and the upper address address-h'173 fetched by the address-m171 and shares it. It is supplied to the bus address interface 154 and driven onto the shared bus. At the same time, the data on the SRAM 114 to be selected at that time is selected by the select signal 193 for the selector obtained by passing the comparator control signal 176 through the comparator 115, and is driven onto the Data signal line 174. The data is driven onto the shared bus through the shared bus data interface 155, and the write back operation for the main memory 12 is executed.

【0106】一旦バス利用許可を受けた共有バスコント
ロールインタフェース156は、その時点でBR1*を
デアサートし、以後は暗黙のバス利用許可に基づいて後
に続く低優先度ライトバックを実施する。
The shared bus control interface 156 that has once received the bus use permission deasserts BR1 * at that time, and thereafter executes the subsequent low-priority write-back based on the implicit bus use permission.

【0107】なお、同時にキャッシュ20はバスをスヌ
ープしており、上記のようなライトバック動作が実行さ
れた場合には、自キャッシュ内を検査し、該当するエン
トリが存在していた場合にはその状態フラグ113を無
効化する。
At the same time, the cache 20 snoops the bus, and when the above write-back operation is executed, the inside of its own cache is inspected, and if the corresponding entry exists, it is checked. The status flag 113 is invalidated.

【0108】この仕組みにより、プロセッサから同期の
ためのSYNC命令が発行された時点でキャッシュ・メ
モリの一貫性が保証されるようなプロトコルを用いたシ
ステムにおいて、その性能を高めるために将来SYNC
命令が発行された時点にキャッシュ・メモリからメイン
・メモリへのライトバックが行われるであろうデータ・
ブロックを、共有バスが他のバスマスタに利用されてい
ない場合にあらかじめ書き戻すことが可能になり、シス
テムの高性能化が図れることになる。さらに、前の実施
形態に対して、本実施形態では、共有バスが空いている
場合には、そのバスの使用権が与えられていなくとも使
用権を獲得してライトバックを行うため、最後にバスを
使用したバスマスタ以外のバスマスタでも、バスリクエ
ストに伴う利用許可およびそれに引き続き与えられる暗
黙のバス利用許可を得てライトバックを行うことができ
る。そのため、ライトバックをこまめに行うことがで
き、ライトバックのトランザクションが集中することを
防止できる。
With this mechanism, in a system using a protocol in which the consistency of the cache memory is guaranteed at the time when the SYNC instruction for synchronization is issued from the processor, in order to improve its performance, SYNC will be added in the future.
Data that will be written back from cache memory to main memory at the time the instruction is issued.
The block can be written back in advance when the shared bus is not used by another bus master, and the system performance can be improved. Further, in contrast to the previous embodiment, in the present embodiment, when the shared bus is vacant, the right to use is acquired and the write back is performed even if the right to use the bus is not given. Even a bus master other than the bus master using the bus can perform write-back with the use permission accompanying the bus request and the implicit permission to use the bus given subsequently. Therefore, write back can be performed frequently, and concentration of write back transactions can be prevented.

【0109】[0109]

【発明の効果】以上説明したように、本発明に係る情報
処理装置およびその制御方法は、緩いメモリ・コンシス
テンシ・モデルを採用した並列計算機において、その性
能をより向上させるためのキャッシュ一貫性保持動作機
構を提供し、同期ポイント時点における相互結合網上の
トラフィックの集中による相互結合網の利用効率の低下
を避け、同期動作に伴う処理のオーバヘッドを軽減する
ことによりシステム全体の処理能力の向上をさせるとい
う効果がある。
As described above, the information processing apparatus and the control method therefor according to the present invention, in a parallel computer adopting a loose memory consistency model, maintain cache coherency for further improving its performance. By providing an operating mechanism, avoiding a decrease in the utilization efficiency of the interconnection network due to the concentration of traffic on the interconnection network at the synchronization point, and reducing the processing overhead associated with the synchronization operation to improve the overall system processing capacity. It has the effect of

【0110】[0110]

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

【図1】本発明を実現するためのシステムの一構成例を
示す図である。
FIG. 1 is a diagram showing a configuration example of a system for implementing the present invention.

【図2】本発明の構成例で用いられているキャッシュの
構成を示した図である。
FIG. 2 is a diagram showing a configuration of a cache used in a configuration example of the present invention.

【図3】本発明の第1の実施形態で用いられているLO
AD命令実行の際の制御手順を示したフローチャートで
ある。
FIG. 3 is an LO used in the first embodiment of the present invention.
7 is a flowchart showing a control procedure when executing an AD instruction.

【図4】本発明の第1の実施形態で用いられているST
ORE命令実行の際の制御手順を示したフローチャート
である。
FIG. 4 is an ST used in the first embodiment of the present invention.
6 is a flowchart showing a control procedure when executing an ORE instruction.

【図5】本発明の第1の実施形態で用いられているLO
AD/STORE命令実行のキャッシュミスの際の制御
手順を示したフローチャートである。
FIG. 5 is an LO used in the first embodiment of the present invention.
7 is a flowchart showing a control procedure at the time of a cache miss of AD / STORE instruction execution.

【図6】本発明の第1の実施形態で用いられているキャ
シュの“DIRTY”データのライトバック処理手順を
示したフローチャートである。
FIG. 6 is a flowchart showing a write-back processing procedure of cache “DIRTY” data used in the first embodiment of the present invention.

【図7】本発明の実施形態におけるキャッシュの状態フ
ラグの状態遷移図である。
FIG. 7 is a state transition diagram of cache state flags in the embodiment of the present invention.

【図8】本発明の第1の実施形態で用いられているキャ
シュのライトバックを実施する際の制御手順を示したフ
ローチャートである。
FIG. 8 is a flowchart showing a control procedure when performing write back of the cache used in the first embodiment of the present invention.

【図9】本発明の実施形態の共有バスアービタの構成を
示した図である。
FIG. 9 is a diagram showing a configuration of a shared bus arbiter according to the embodiment of the present invention.

【図10】本発明の実施形態で用いられているバスアー
ビトレーションプロトコルの例を示す図である。
FIG. 10 is a diagram showing an example of a bus arbitration protocol used in the embodiment of the present invention.

【図11】本発明の第1の実施形態で用いられているS
YNC命令実行の際の制御手順を示したフローチャート
である。
FIG. 11 is an S used in the first embodiment of the present invention.
7 is a flowchart showing a control procedure when executing a YNC instruction.

【図12】本発明の第2の実施形態で用いられているキ
ャシュのライトバックを実施するまでの制御手順を示し
たフローチャートである。
FIG. 12 is a flowchart showing a control procedure until the cache write-back used in the second embodiment of the present invention is executed.

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

10、20:プロセッサ 11、21:キャッシュ 12、22:メインメモリ 14、24:プロセッサバス 15、25:共有バス 16、26:共有バスアービタ 111:キャシュ制御シーケンサ 112:アドレスタグ 113:状態フラグ 114:SRAM 115:比較器 116:選択器 144:プロセッサバスアドレスインタフェース 145:プロセッサバスデータインタフェース 146:プロセッサバスコントロールインタフェース 151:共有アドレスバス 152:共有データバス 153:共有コントロールバス 154:共有バスアドレスインタフェース 155:共有バスデータインタフェース 156:共有バスコントロールインタフェース 160:バスアービタ内部組み合わせ回路 161:共有バスリクエスト信号1(BR1*) 162:共有バスリクエスト信号2(BR2*) 165:共有バスグラント信号1(BG1*) 166:共有バスグラント信号2(BG2*) 167:バスビジー信号(BB*) 168:バスクロック信号(BCLK) 170:addr‐h 171:addr‐m 172:addr‐l 173:addr‐h’ 174:Data 175:キャッシュブロックコントロール 176:比較器コントロール信号 190:プロセッサバスIFコントロール信号 191:共有バスIFコントロール信号 192:status信号 193:Select信号 194:L‐Cont信号 195:S‐Cont信号 10, 20: Processor 11, 21: Cache 12, 22: Main memory 14, 24: Processor bus 15, 25: Shared bus 16, 26: Shared bus arbiter 111: Cache control sequencer 112: Address tag 113: Status flag 114: SRAM 115: Comparator 116: Selector 144: Processor Bus Address Interface 145: Processor Bus Data Interface 146: Processor Bus Control Interface 151: Shared Address Bus 152: Shared Data Bus 153: Shared Control Bus 154: Shared Bus Address Interface 155: Shared Bus data interface 156: Shared bus control interface 160: Bus arbiter internal combinational circuit 161: Shared bus request signal 1 (B R1 *) 162: Shared bus request signal 2 (BR2 *) 165: Shared bus grant signal 1 (BG1 *) 166: Shared bus grant signal 2 (BG2 *) 167: Bus busy signal (BB *) 168: Bus clock signal ( BCLK) 170: addr-h 171: addr-m 172: addr-l 173: addr-h '174: Data 175: cache block control 176: comparator control signal 190: processor bus IF control signal 191: shared bus IF control Signal 192: Status signal 193: Select signal 194: L-Cont signal 195: S-Cont signal

Claims (13)

【特許請求の範囲】[Claims] 【請求項1】 複数のプロセッサと、それらプロセッサ
それぞれに付随するキャッシュ・メモリと主メモリとを
含む複数の結合網利用主体と、各結合網利用主体を相互
に接続する結合網とを含む情報処理システムであって、 各プロセッサの処理が予め定めた段階に達した場合、当
該プロセッサに付随するキャッシュ・メモリ中に存在す
るデータ・ブロックの内容の一貫性を保持する一貫性保
持処理を実行することを特徴とする情報処理システム。
1. An information processing system comprising: a plurality of processors; a plurality of connection network users including a cache memory and a main memory attached to each processor; and a connection network interconnecting the connection network users. In the system, when the processing of each processor reaches a predetermined stage, execute the coherency processing to maintain the coherency of the contents of the data block existing in the cache memory attached to the processor. Information processing system characterized by.
【請求項2】 前記プロセッサによる処理が前記予め定
めた段階に達する以前において、前記結合網の状態が所
定の条件を満たした場合には、当該キャッシュ・メモリ
中に存在するデータ・ブロックの内容の一貫性を保持す
る一貫性保持処理を実行することを特徴とする請求項1
記載の情報処理システム。
2. Before the processing by the processor reaches the predetermined stage, if the state of the connection network satisfies a predetermined condition, the contents of the data block existing in the cache memory are The consistency maintaining process for maintaining consistency is executed.
The information processing system as described.
【請求項3】 前記結合網の満たす条件は、前記結合網
利用主体が前記結合網を使用していないことであること
を特徴とする請求項2に記載の情報処理システム。
3. The information processing system according to claim 2, wherein the condition satisfied by the connection network is that the connection network user does not use the connection network.
【請求項4】 前記結合網には、前記結合網利用主体に
よる前記結合網の使用を調停する調停ユニットが更に接
続され、前記結合網が使用されていないことを前記調停
ユニットにより検知して前記条件を判定し、その結果に
応じて前記結合網利用主体の1に前記結合網の利用許可
を付与することを特徴とする請求項3に記載の情報処理
システム。
4. An arbitration unit that arbitrates the use of the connection network by the connection network user is further connected to the connection network, and the arbitration unit detects that the connection network is not used, 4. The information processing system according to claim 3, wherein a condition is determined, and a permission to use the connection network is given to one of the connection network use subjects according to the result.
【請求項5】 前記一貫性保持処理は、当該キャッシュ
メモリ中に存在する更新されたデータブロックを主メモ
リに書き戻すことを特徴とする請求項1乃至4いずれか
に記載の情報処理システム。
5. The information processing system according to claim 1, wherein the coherency holding process writes back the updated data block existing in the cache memory to the main memory.
【請求項6】 当該情報処理システムは、緩いメモリ・
コンシステンシ・モデルを採用することを特徴とする請
求項1乃至4いずれかに記載の情報処理システム。
6. The information processing system comprises:
The information processing system according to any one of claims 1 to 4, wherein a consistency model is adopted.
【請求項7】 バス手段と、 前記バス手段に接続されたメモリ手段と、 前記バス手段を用いて前記メモリ手段から読み出したデ
ータを保持し、該データを更新する複数のバスマスタ手
段と、 前記バス手段がいずれのバスマスタ手段にも使用されて
いない場合に、前記複数のバスマスタ手段のいずれかに
バス手段の使用許可を出すバス管理手段と、を備え、前
記バスマスタ手段は、所定の時点に達した場合、及び前
記使用許可が出された場合に、前記バス手段を使用して
保持する更新されたデータを前記メモリ手段に書き戻す
ことを特徴とする情報処理装置。
7. Bus means, memory means connected to the bus means, a plurality of bus master means for holding data read from the memory means using the bus means and updating the data, the bus Bus management means for issuing permission to use the bus means to any of the plurality of bus master means when the means is not used by any of the bus master means, the bus master means having reached a predetermined time point. In this case, and when the use permission is issued, the updated data held by using the bus means is written back to the memory means.
【請求項8】 前記バス管理手段は、前記バスマスタ手
段からの前記バス手段の使用要求に対する使用の許可に
応じたバス手段の使用後、いずれのバスマスタ手段も前
記バス手段を使用していない場合に、直前にバス手段を
使用したバスマスタ手段に対してバス手段の使用許可を
出すことを特徴とする請求項7に記載の情報処理装置。
8. The bus management means, when no bus master means is using the bus means after the use of the bus means according to the permission of use to the use request of the bus means from the bus master means. 8. The information processing apparatus according to claim 7, wherein the bus master means that has used the bus means immediately before is issued permission to use the bus means.
【請求項9】 バス手段の使用許可を得ていない前記バ
スマスタ手段は、バス手段の使用許可を得たバスマスタ
手段が所定時間以上バス手段を使用しない場合には、前
記バス手段を使用して、保持している更新されたデータ
を前記メモリ手段に書き戻すことを特徴とする請求項8
に記載の情報処理装置。
9. The bus master means that has not obtained permission to use the bus means uses the bus means if the bus master means that has obtained permission to use the bus means does not use the bus means for a predetermined time or more, 9. The stored updated data is written back to the memory means.
The information processing device according to 1.
【請求項10】 前記バスマスタ手段に接続されたプロ
セッサ手段を更に備え前記バスマスタ手段は、前記プロ
セッサ手段から発行される所定の命令に従って、前記メ
モリ手段から読み出して更新したデータを前記メモリ手
段に書き戻すことを特徴とする請求項7乃至9いずれか
に記載の情報処理装置。
10. The processor further comprises processor means connected to the bus master means, the bus master means writing back the updated data read from the memory means to the memory means in accordance with a predetermined instruction issued from the processor means. The information processing apparatus according to any one of claims 7 to 9, characterized in that.
【請求項11】 前記バスマスタ手段の1は、他のバス
マスタ手段が前記メモリ手段にデータを書き戻した場
合、そのデータが重複して前記メモリ手段から当該バス
マスタ手段に読み出されているか調べ、重複して読み出
されている場合には、そのデータを無効化することを特
徴とする請求項7乃至10いずれかに記載の情報処理装
置。
11. The bus master unit 1 checks if another bus master unit writes data back to the memory unit and whether the data is duplicated and read from the memory unit to the bus master unit. The information processing apparatus according to any one of claims 7 to 10, wherein the data is invalidated when being read out.
【請求項12】 メモリ手段に格納されたデータを、複
数のプロセッサごとに接続されたキャッシュ手段により
重複して保持する情報処理装置であって、 前記キャッシュ手段に格納されたデータが、前記メモリ
手段に格納されたデータを読み出して更新したデータで
あるか判定する判定手段と、 前記判定手段による判定結果に応じて、前記キャッシュ
手段のいずれからも前記メモリ手段にアクセスしていな
い場合に、前記キャッシュ手段の何れかにより読み出さ
れて更新されたデータを前記メモリ手段に書き戻す第1
の書き戻し手段と、 所定の時期に達した場合に、前記前記キャッシュ手段に
より読み出されて更新されたデータを前記メモリ手段に
書き戻す第2の書き戻し手段とを備えることを特徴とす
る情報処理装置。
12. An information processing device for duplicatively holding data stored in a memory means by a cache means connected to each of a plurality of processors, wherein the data stored in the cache means is the memory means. Determining means for determining whether the data stored in the memory is read and updated, and the cache means for accessing the memory means from none of the cache means according to the determination result by the determining means. First writing back the data read and updated by any of the means to the memory means,
And write-back means for writing back the data read and updated by the cache means to the memory means when a predetermined time is reached. Processing equipment.
【請求項13】 メモリ手段に格納されたデータを、複
数のプロセッサごとに接続されたキャッシュ手段により
重複して保持する情報処理装置の制御方法であって、 前記キャッシュ手段に格納されたデータが、前記メモリ
手段に格納されたデータを読み出して更新したデータで
あるか判定する判定工程と、 前記判定工程による判定結果に応じて、前記キャッシュ
手段のいずれからも前記メモリ手段にアクセスしていな
い場合に、前記キャッシュ手段の何れかにより読み出さ
れて更新されたデータを前記メモリ手段に書き戻す第1
の書き戻し工程と、 所定の時期に達した場合に、前記前記キャッシュ手段に
より読み出されて更新されたデータを前記メモリ手段に
書き戻す第2の書き戻し工程とを備えることを特徴とす
る情報処理装置の制御方法。
13. A method of controlling an information processing apparatus, wherein data stored in a memory means is redundantly held by a cache means connected to each of a plurality of processors, wherein the data stored in the cache means is: A determination step of determining whether the data stored in the memory means is read and updated, and a case where the memory means is not accessed from any of the cache means according to the determination result of the determination step Writing back the data read and updated by any of the cache means to the memory means,
And a second write-back step of writing back the data read and updated by the cache means to the memory means when a predetermined time is reached. A method for controlling a processing device.
JP7213374A 1995-08-22 1995-08-22 Information processor and its control method Withdrawn JPH0962578A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7213374A JPH0962578A (en) 1995-08-22 1995-08-22 Information processor and its control method
US08/699,105 US5860110A (en) 1995-08-22 1996-08-16 Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7213374A JPH0962578A (en) 1995-08-22 1995-08-22 Information processor and its control method

Publications (1)

Publication Number Publication Date
JPH0962578A true JPH0962578A (en) 1997-03-07

Family

ID=16638137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7213374A Withdrawn JPH0962578A (en) 1995-08-22 1995-08-22 Information processor and its control method

Country Status (1)

Country Link
JP (1) JPH0962578A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001109723A (en) * 1999-08-21 2001-04-20 Koninkl Philips Electronics Nv Multiprocessor system
JP2022047008A (en) * 2020-09-11 2022-03-24 株式会社東芝 Write-back cache device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001109723A (en) * 1999-08-21 2001-04-20 Koninkl Philips Electronics Nv Multiprocessor system
JP2022047008A (en) * 2020-09-11 2022-03-24 株式会社東芝 Write-back cache device

Similar Documents

Publication Publication Date Title
US5426765A (en) Multiprocessor cache abitration
US5774700A (en) Method and apparatus for determining the timing of snoop windows in a pipelined bus
US5796977A (en) Highly pipelined bus architecture
US5463753A (en) Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
US5353415A (en) Method and apparatus for concurrency of bus operations
JP3884990B2 (en) Multiprocessor device
US6466825B1 (en) Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system
US5682516A (en) Computer system that maintains system wide cache coherency during deferred communication transactions
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
US5909699A (en) Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
JP3635634B2 (en) System and method for providing speculative arbitration for transferring data
US5797026A (en) Method and apparatus for self-snooping a bus during a boundary transaction
US20060236039A1 (en) Method and apparatus for synchronizing shared data between components in a group
US20100005247A1 (en) Method and Apparatus for Global Ordering to Insure Latency Independent Coherence
JPH0247756A (en) Reading common cash circuit for multiple processor system
US8015364B2 (en) Method and apparatus for filtering snoop requests using a scoreboard
JPH10154100A (en) Information processing system, device and its controlling method
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
JP6792139B2 (en) Arithmetic processing unit and control method of arithmetic processing unit
US6601145B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
JPH03163640A (en) Multi-processor system and cache memory used therefor
JPH0962578A (en) Information processor and its control method
JP2000347933A (en) Bus bridge, device and method for controlling cache coherence, processor unit and multiprocessor system
JPH0962579A (en) Information processor and information processing system

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20021105