JPH01258168A - Multiprocessor system - Google Patents

Multiprocessor system

Info

Publication number
JPH01258168A
JPH01258168A JP63085233A JP8523388A JPH01258168A JP H01258168 A JPH01258168 A JP H01258168A JP 63085233 A JP63085233 A JP 63085233A JP 8523388 A JP8523388 A JP 8523388A JP H01258168 A JPH01258168 A JP H01258168A
Authority
JP
Japan
Prior art keywords
cache
data
virtual address
processor
address
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.)
Granted
Application number
JP63085233A
Other languages
Japanese (ja)
Other versions
JP2696899B2 (en
Inventor
Kenji Yoshida
吉田 健児
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP63085233A priority Critical patent/JP2696899B2/en
Publication of JPH01258168A publication Critical patent/JPH01258168A/en
Application granted granted Critical
Publication of JP2696899B2 publication Critical patent/JP2696899B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To evade mismatching of cache memories by transferring lower bits of a virtual address to the other caches to determine an entry where data should be rewritten. CONSTITUTION:A multiprocessor system using caches 2-1-2-N of the write-in system is provided with a means 51 which sends at least lower bits of a virtual address VA, which determines an entry of each of caches 2-1-2-N, to a system bus. Consequently, though data in a certain processor system is rewritten, entries in caches 2-1-2-N of the other processor systems which correspond to said data are determined. Thus, cache mismatching is evaded.

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はマルチプロセッサシステムに関するものであり
、特に、各プロセッサに接続されたキャッシュ内データ
の不整合を回避するのに好適なマルチプロセッサシステ
ムに関するものである。
DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to a multiprocessor system, and particularly to a multiprocessor system suitable for avoiding inconsistencies in data in caches connected to each processor. It is something.

(従来の技術) 周知のように、プロセッサシステムにおいては、メモリ
から呼び出されたデータを、−旦キャッシュ内に格納し
、該キャッシュとプロセッサとの間でデータの授受を行
うことにより、その演算処理速度を上げるように構成さ
れている。
(Prior Art) As is well known, in a processor system, data retrieved from memory is first stored in a cache, and data is exchanged between the cache and a processor to process the data. Configured to increase speed.

ところで、複数のプロセッサシステムがシステムバスを
介してメモリを共有するように構成されたMIMD (
Multlple  In5truct1on  Mu
ltipleData)方式のマルチプロセッサシステ
ムにおいては、複数のプロセッサシステムより同一アド
レスのデータがメモリより読み出されて、該データが各
プロセッサシステムのキャッシュ内に登録されている場
合に、前記各プロセッサシステムうちの少なくとも一つ
が前記データを書換えたときに、該データが他のキャッ
シュ内のデータと同一アドレスのデータであるにもかか
わらず、その内容が異なるという問題(いわゆるキャッ
シュ不整合問題)を生ずる。
By the way, MIMD (
Multiple In5truct1 on Mu
In a multiprocessor system using the ltipleData) method, when data at the same address is read from memory by multiple processor systems and the data is registered in the cache of each processor system, the When at least one of the caches rewrites the data, a problem arises in that the data differs in content even though the data has the same address as the data in the other caches (so-called cache inconsistency problem).

したがって、この場合には、前記他のキャッシュ内のデ
ータを書換える必要がある。
Therefore, in this case, it is necessary to rewrite the data in the other cache.

キャッシュは、ダイレクトマツプ方式あるいはセットア
ソシアティブ方式等のものが構成が簡単で安価であるが
、このようなキャッシュは、前記キャッシュ不整合問題
が解決されないために、従来のマルチプロセッサシステ
ムには連想記憶装置の一種であるC A M (con
tent−addressablemes+ory)が
用いられている。
Direct map type or set associative type caches are easy to configure and inexpensive, but because such caches do not solve the cache inconsistency problem, conventional multiprocessor systems do not use content addressable memory devices. C A M (con
tent-addressablemes+ory) is used.

以下に、その理由を順を追って説明する。The reasons for this will be explained step by step below.

キャッシュは、そのアクセスの仕方に応じて、リアルキ
ャッシュおよびバーチャルキャッシュの二つの方式に分
類される。すなわち、プロセッサによるアクセスがバー
チャルアドレスにより行われるに対して、メモリへのア
クセスはリアルアドレスで行われるので、そのバーチャ
ルアドレスをリアルアドレスに変換した後でキャッシュ
をアクセスするようにするか、変換する前にアクセスす
るようにするかに応じて2つの方式に分類されている。
Caches are classified into two types, real cache and virtual cache, depending on how they are accessed. In other words, accesses by the processor are performed using virtual addresses, whereas accesses to memory are performed using real addresses. Therefore, either the cache is accessed after converting the virtual address to a real address, or the cache is accessed before the conversion. They are classified into two methods depending on how they are accessed.

リアルキャッシュは、バーチャルアドレスをリアルアド
レスに変換した後に、該リアルアドレスでアクセスされ
ることができるように構成されており、また、バーチャ
ルキャッシュは、バーチャルアドレスそのままでアクセ
スされることができるように構成されている。
A real cache is configured so that it can be accessed using a real address after converting a virtual address into a real address, and a virtual cache is configured so that it can be accessed using a virtual address as is. has been done.

バーチャルキャッシュを用いたシステムにおいては、バ
ーチャルアドレスをリアルアドレスに変換しているとき
に、キャッシュへのアクセスを行うことができるので、
キャッシュへのデータ書き込みおよび読み出しを速く行
うことができる。
In systems using virtual cache, the cache can be accessed while converting virtual addresses to real addresses.
Data can be written to and read from the cache quickly.

一方、キャッシュは、メモリへの書き込みの仕方に応じ
て、ライトスル一方式およびライトイン方式の二つの方
式に分類される。
On the other hand, caches are classified into two types, write-through type and write-in type, depending on the method of writing to memory.

ライトスル一方式のキャッシュは、キャッシュ内に記録
されたデータを書換える場合に、その書換えごとに、前
記メモリ内のデータの書換えも行うものである。
In a write-through type cache, when data recorded in the cache is rewritten, the data in the memory is also rewritten each time the data recorded in the cache is rewritten.

これに対してライトイン方式のキャッシュにおいては、
メモリ内のデータの書換えは、特に必要とされる場合(
例えば、同一エントリ内に異なるアドレスのデータを記
録する場合、アドレス空間が変化する場合、当該プロセ
ッサシステムを終了する場合等)にのみ行われる。
On the other hand, in write-in cache,
Rewriting data in memory is not permitted, especially when required (
For example, this is performed only when recording data at different addresses within the same entry, when the address space changes, when terminating the processor system, etc.).

通常のプロセッサシステムにおいては、ライトスル一方
式のキャッシュが用いられる場合が多いが、MIMD方
式のマルチプロセッサシステムにおいては、ライトスル
一方式のキャッシュを用いると、各プロセッサがメモリ
に書き込みを行う頻度が高くなるために、バスの利用率
が高くなり、バスの転送能力が低下するおそれがある。
In normal processor systems, a write-through cache is often used, but in a MIMD multiprocessor system, when a write-through cache is used, each processor writes to memory more frequently. Therefore, the utilization rate of the bus may increase and the transfer capacity of the bus may decrease.

・換言すれば、マルチプロセッサシステムを構成した意
味がなくなってしまう。
- In other words, there is no point in configuring a multiprocessor system.

したがって、マルチプロセッサシステムにおいては、ラ
イトイン方式のキャッシュが利用される。
Therefore, in a multiprocessor system, a write-in cache is used.

ここで、ライトイン方式のバーチャルキャッシュの構成
を簡単に説明する。
Here, the configuration of the write-in virtual cache will be briefly explained.

第5図はライトイン方式のバーチャルキャッシュのうち
、最も構成の簡単なダイレクトマツプ方式のキャッシュ
の構成の一例を示す概略図である。この方式のキャッシ
ュにおいては、そのエントリはバーチャルアドレスの下
位ビットにより決定される。
FIG. 5 is a schematic diagram showing an example of the structure of a direct map type cache, which is the simplest type of write-in type virtual caches. In this type of cache, the entry is determined by the lower bits of the virtual address.

図において、キャッシュ20の記憶領域は、基本的には
、バーチャルアドレスVAの上位ビットを記憶する領域
(タグ)21、および前記バーチャルアドレスVAに対
応するデータを記憶する領域22、およびデータが書換
えられたか否かを示すダーティビットを記憶する領域2
3より構成されている。
In the figure, the storage areas of the cache 20 basically include an area (tag) 21 for storing the upper bits of the virtual address VA, an area 22 for storing data corresponding to the virtual address VA, and an area 22 for storing data corresponding to the virtual address VA. Area 2 for storing dirty bits indicating whether or not
It is composed of 3.

以上のような構成を有するキャッシュにおいて、プロセ
ッサがデータを必要とする場合には、まず、バーチャル
アドレスVAの上位ビットが比較器25に出力されると
共に、該バーチャルアドレスVAの下位ビットによりキ
ャッシュのエントリが決定されて、該エントリ内の領域
21よりバーチャルアドレスVAの上位ビットが読み出
され、前記比較器25に出力される。
In the cache having the above configuration, when the processor needs data, first, the upper bits of the virtual address VA are output to the comparator 25, and the lower bits of the virtual address VA are used to select the cache entry. is determined, the upper bits of the virtual address VA are read from the area 21 within the entry, and are output to the comparator 25.

この比較器25により、前記各上位ビットが等しいと判
別されたときは、前記エントリの領域22に記憶されて
いるデータが読み出される。
When the comparator 25 determines that the upper bits are equal, the data stored in the entry area 22 is read out.

前記各上位ビットが等しいと判別されない場合(すなわ
ち、プロセッサが読み出しを希望するデータが当該キャ
ッシュ20内に記憶されていない場合)には、メモリを
アクセスして該当するデータを読み出し、同時に該デー
タおよびバーチャルアドレスVAの上位ビットを、該バ
ーチャルアドレスVAの下位ビットにより決定されるエ
ントリに記憶する。
If it is determined that the upper bits are not equal (that is, if the data that the processor desires to read is not stored in the cache 20), the memory is accessed and the corresponding data is read, and at the same time the data and The upper bits of the virtual address VA are stored in the entry determined by the lower bits of the virtual address VA.

キャッシュ内データを書換えた場合には、そのエントリ
の領域23にダーティビットをたてておく。そして、そ
のエントリに異なるバーチャルアドレスVAのデータを
記憶させる場合であって、ダーティビットがたてられて
いるもののみ、そのデータをメモリに転送し、データの
書換えを行う。
When data in the cache is rewritten, a dirty bit is set in the area 23 of that entry. Then, when data of a different virtual address VA is to be stored in that entry, and only the data for which a dirty bit is set is transferred to the memory and rewritten.

ところで、マルチプロセッサシステムにおけるキャッシ
ュ不整合問題を回避するには、あるプロセッサがキャッ
シュ内データを書換えた場合に、他のキャッシュ内に同
一アドレスのデータが存在するときに、該データを書換
えることが必要である。この場合、各キャッシュ間はシ
ステムバスを介して相互に接続されているので、他のキ
ャッシュ内に、書換えら゛れたデータと同一データが存
在するか否かを確認するためには、リアルアドレスで行
わなければならない。
By the way, in order to avoid the cache inconsistency problem in a multiprocessor system, when a processor rewrites data in the cache, if data at the same address exists in another cache, it is possible to rewrite the data. is necessary. In this case, each cache is interconnected via the system bus, so in order to check whether the same data as the rewritten data exists in other caches, it is necessary to check the real address. must be done.

ここで、このキャッシュが、バーチャルキャッシュであ
る場合には、第5図の破線で示されたように、各エント
リに、該エントリに記憶されたデータのバーチャルアド
レスVAに対応するリアルアドレスRAを記憶しておく
ことが可能である。
Here, if this cache is a virtual cache, each entry stores a real address RA corresponding to the virtual address VA of the data stored in the entry, as shown by the broken line in FIG. It is possible to keep it.

すなわち、メモリへのアクセスの際に変換されたリアル
アドレスRAを、領域24に記憶しておくことができる
That is, the real address RA converted when accessing the memory can be stored in the area 24.

ところが、このようにあらかじめリアルアドレスRAを
記憶しておいて、書換えられたデータに対応するリアル
アドレスRAを他のキャッシュに転送しても、そのキャ
ッシュ内のどのエントリのリアルアドレスRAと比較す
るかを決定することができない。
However, even if the real address RA is stored in advance in this way and the real address RA corresponding to the rewritten data is transferred to another cache, it is not possible to compare it with the real address RA of which entry in that cache. cannot be determined.

つまり、例えばデータの書換えに用いられたバーチャル
アドレスVAをシステムバス3を介して前記他のキャッ
シュに転送するためには、マツプ機構(図示せず)を介
さなければならないために、リアルアドレスRAが前記
他のキャッシュに転送されるが、該キャッシュ内のエン
トリを決定するためには、前記リアルアドレスRAをバ
ーチャルアドレスVAに再変換しなければならない。
In other words, in order to transfer the virtual address VA used for data rewriting to the other cache via the system bus 3, the real address RA must go through a map mechanism (not shown). Although transferred to the other cache, the real address RA must be retranslated into a virtual address VA in order to determine the entry in the cache.

しかし、前記マツプ機構は、−殻内には単なるテーブル
により構成されているため、バーチャルアドレスVAを
リアルアドレスRAに変換できても、その逆の変換はで
きないのである。
However, since the map mechanism is constituted by a mere table within the shell, even if it can convert a virtual address VA to a real address RA, it cannot convert the reverse.

したがって、このダイレクトマツプ方式のキャッシュは
、マルチプロセッサシステムに適用されることかできな
い。セットアソシアティブ方式のキャッシュも同様であ
る。
Therefore, this direct map type cache cannot be applied to a multiprocessor system. The same applies to set-associative caches.

これに対し、バーチャルアドレスVAの大小にかかわら
ず、アクセスされた順にそのエントリに記憶する方式の
CAMにおいては、各エントリごとに比較器が設けられ
ているので、リアルアドレスRAのみを他のキャッシュ
(CAM)に転送しても、該アドレスRAに対応するデ
ータがそのキャッシュに記憶されているか否かを判断す
ることができる。
In contrast, in a CAM that stores entries in the order in which they are accessed, regardless of the size of the virtual address VA, a comparator is provided for each entry, so only the real address RA is stored in other caches ( CAM), it can be determined whether the data corresponding to the address RA is stored in the cache.

(発明が解決しようとする課題) 上記した従来の技術は、次のような問題点を有していた
(Problems to be Solved by the Invention) The above-described conventional technology had the following problems.

すなわち、前述したように、従来のマルチプロセッサシ
ステムにおいては、キャッシュとしてCAMが用いられ
ているが、CAMは、各エントリごとに比較器を必要と
するために、その構成が極めて複雑である。
That is, as described above, in conventional multiprocessor systems, CAM is used as a cache, but CAM requires a comparator for each entry, so its configuration is extremely complicated.

詳しく言えば、ダイレクトマツプ方式、セットアソシア
ティブ方式等のキャッシュは、例えばRAMを用いて簡
単に構成されることができるが、CAMは、少なくとも
LSIレベルの複雑な構成を必要とし、仮にこれを既成
の回路素子を用いて構成しようとすると、極めて大型の
専有容積を必要とする。
To be more specific, caches such as the direct map method and the set associative method can be easily configured using, for example, RAM, but CAM requires a complex configuration at least at the LSI level, and if this is When constructed using circuit elements, an extremely large dedicated volume is required.

この結果、当該マルチプロセッサシステムの構成も複雑
化し、また高価になる。
As a result, the configuration of the multiprocessor system becomes complicated and expensive.

本発明は、前述の問題点を解決するためになされたもの
である。
The present invention has been made to solve the above-mentioned problems.

(課題を解決するための手段および作用)前記の問題点
を解決するために、本発明は、ライトイン方式のキャッ
シュを用いたマルチプロセッサシステムにおいて、各キ
ャッシュのエントリを決定するバーチャルアドレスVA
の少なくとも下位ビットをシステムバスに送出するとい
う手段を講じた点に特徴がある。
(Means and Effects for Solving the Problems) In order to solve the above-mentioned problems, the present invention provides a multiprocessor system using a write-in type cache.
The feature is that at least the lower bits of the data are sent to the system bus.

そしてこれにより、あるプロセッサシステム内のデータ
を書換えた場合においても、該データに対応する他のキ
ャッシュのエントリを決定することができるという作用
効果を生じさせることができる。
As a result, even when data in a certain processor system is rewritten, it is possible to determine an entry in another cache corresponding to the data.

(実施例) 以下に、図面を参照して、本発明の詳細な説明する。(Example) The present invention will be described in detail below with reference to the drawings.

第2図は本発明が適用されるマルチプロセッサシステム
の概略構成図である。
FIG. 2 is a schematic configuration diagram of a multiprocessor system to which the present invention is applied.

第2図において、複数のプロセッサ1−1〜1−Nは、
それぞれキャッシュ(ローカルキャッジ:L)2−1〜
2−Nを備えている。
In FIG. 2, a plurality of processors 1-1 to 1-N are
Cache (local cache: L) 2-1~
Equipped with 2-N.

以下の説明においては、前記プロセッサ1−1およびキ
ャッシュ2−1、プロセッサ1−2およびキャッジ:L
2−2、・・・等、−のプロセッサと該プロセッサが管
理するキャッシュとをプロセッサシステム(プロセッサ
システム100−1〜100−N)という。
In the following description, the processor 1-1 and the cache 2-1, the processor 1-2 and the cache L
2-2, . . . , - processors and caches managed by the processors are referred to as processor systems (processor systems 100-1 to 100-N).

前記各プロセッサシステム100−1〜100−Nは、
それぞれシステムバス3を介してメモリ4に接続されて
いる。
Each of the processor systems 100-1 to 100-N includes:
Each is connected to a memory 4 via a system bus 3.

第1図は本発明の一実施例に適用されるキャッシュ、お
よびその近傍のブロック図である。第1図において、第
2.5図と同一の符号は、同一または同等部分をあられ
している。
FIG. 1 is a block diagram of a cache applied to an embodiment of the present invention and its vicinity. In FIG. 1, the same reference numerals as in FIG. 2.5 represent the same or equivalent parts.

このキャッシュは、ダイレクトマツプ方式かつライトイ
ン方式のキャッシュである。
This cache is a direct map type and write-in type cache.

第1図において、このキャッシュ2−1(または2−2
、・・・、2−N)の記憶領域は、基本的には、バーチ
ャルアドレスVAの上位ビットを記憶する領域(タグ)
21、および前記バーチャルアドレスVAに対応するデ
ータを記憶する領域22、データが書換えられたか否か
を示すダーティビットを記憶する領域23、および前記
バーチャルアドレスVAに対応するリアルアドレスRA
を記憶する領域24より構成されている。
In FIG. 1, this cache 2-1 (or 2-2
, ..., 2-N) is basically an area (tag) that stores the upper bits of the virtual address VA.
21, an area 22 for storing data corresponding to the virtual address VA, an area 23 for storing a dirty bit indicating whether the data has been rewritten, and a real address RA corresponding to the virtual address VA.
It is made up of an area 24 for storing.

このキャッシュ2−1に接続されるプロセッサ1−1の
バーチャルアドレスレジスタ51は、その所定の下位ビ
ットの出力線がキャッシュ2−1のエントリ決定用信号
線に接続されている。プロセッサ1−1は、この出力線
を用いて、キャッシュ2−1のエントリを決定すること
ができる。
The virtual address register 51 of the processor 1-1 connected to the cache 2-1 has its predetermined lower bit output line connected to the entry determination signal line of the cache 2-1. Processor 1-1 can use this output line to determine the entry in cache 2-1.

前記バーチャルアドレスレジスタ51の所定の上位ビッ
トの出力線、およびキャッシュ2−1の領域21の出力
線は、比較器25に接続されている。前記比較器25の
出力線は、プロセッサ1−1に接続されている。
The output line of a predetermined upper bit of the virtual address register 51 and the output line of the area 21 of the cache 2-1 are connected to a comparator 25. The output line of the comparator 25 is connected to the processor 1-1.

前記バーチャルアドレスレジスタ51の下位ビット出力
線は、第1の信号線として、当該マルチプロセッサシス
テムのシステムバス3にも接続されている。
The lower bit output line of the virtual address register 51 is also connected to the system bus 3 of the multiprocessor system as a first signal line.

また、前記第1の信号線より送出されるバーチャルアド
レスVAの下位ビットを、システムバス3よりキャッシ
ュ2−1に転送するために、該システムバス3およびキ
ャッシュ2−1間には、第2の信号線が接続されている
。この例においては、前記システムバス3およびキャッ
ジ:L2 1間には、ラッチ用のバーチャルアドレスレ
ジスタ52が配置されているが、特に設けられなくても
良い。
Further, in order to transfer the lower bits of the virtual address VA sent from the first signal line from the system bus 3 to the cache 2-1, a second signal line is connected between the system bus 3 and the cache 2-1. The signal line is connected. In this example, a virtual address register 52 for latching is arranged between the system bus 3 and the carriage L2 1, but it does not need to be provided.

当該キャッシュ2−1は、この第2の信号線より転送さ
れるバーチャルアドレスVAの下位ビットによっても、
そのエントリが決定されることができるように構成され
ている。
The cache 2-1 also uses the lower bits of the virtual address VA transferred from this second signal line.
The entry is configured such that it can be determined.

すなわち、当該キャッシュ2−1は、プロセッサ1−1
より出力されるバ、−チャルアドレスVAの下位ビット
、およびシステムバス3より転送されるバーチャルアド
レスVAの下位ビットの双方により、異なるタイミング
または同一タイミングでエントリが決定され、データを
読出すことができるように、2ボートに構成されている
In other words, the cache 2-1 is
Entries can be determined at different timings or at the same timing, and data can be read by both the lower bits of the virtual address VA output from the system bus 3 and the lower bits of the virtual address VA transferred from the system bus 3. It is composed of two boats.

システムバス3より引き出された第2の信号線を用いて
決定されるエントリの領域24の出力線、およびシステ
ムバス3より出力されるリアルアドレスRAの出力信号
線は、比較器26に接続されている。前記比較器26の
出力線は、当該キャッシュ2−1を管理するプロセッサ
1−1に接続されている。
The output line of the entry area 24 determined using the second signal line drawn out from the system bus 3 and the output signal line of the real address RA output from the system bus 3 are connected to the comparator 26. There is. The output line of the comparator 26 is connected to the processor 1-1 that manages the cache 2-1.

以上の構成を有するマルチプロセッサシステムにおいて
、キャッシュ2−1にデータを記憶させる場合、まずプ
ロセッサのバーチャルアドレスレジスタ51より出力さ
れるバーチャルアドレスVAの下位ビットにより、当該
キャッシュのエントリが決定される。そして、前記エン
トリより領域21に記憶されたデータ(バーチャルアド
レスVAの上位ビット)が読み出され、比較器25にお
いて、前記バーチャルアドレスレジスタ51より出力さ
れたバーチャルアドレスVAの上位ビットと比較される
In the multiprocessor system having the above configuration, when data is to be stored in the cache 2-1, the cache entry is first determined by the lower bits of the virtual address VA output from the virtual address register 51 of the processor. Then, the data (upper bits of the virtual address VA) stored in the area 21 is read from the entry, and compared in the comparator 25 with the upper bits of the virtual address VA output from the virtual address register 51.

前記両データが等しい場合には、前記エントリの領域2
2内のデータがプロセッサに読み出される。
If both data are equal, area 2 of the entry
The data in 2 is read out to the processor.

等しくない場合には、前記バーチャルアドレスVAが、
マツプ機構(図示せず)によりリアルアドレスRAに変
換され、メモリに転送される。そして、前記リアルアド
レスRAに対応するデータが該メモリより読み出され、
当該キャッシュの、前記バーチャルアドレスVAの下位
ビットにより決定されるエントリの領域22に記憶され
る。
If they are not equal, the virtual address VA is
It is converted into a real address RA by a map mechanism (not shown) and transferred to the memory. Then, data corresponding to the real address RA is read from the memory,
It is stored in the area 22 of the cache in the entry determined by the lower bits of the virtual address VA.

キャッシュ2−1内の所定エントリのデータを、同一ア
ドレスのデータとして他のデータに書換えた場合には、
領域23にダーティビットをたてておく。
When data in a predetermined entry in cache 2-1 is rewritten to other data as data at the same address,
A dirty bit is written in area 23.

キャッシュ2−1内の所定エントリのデータを、異なる
アドレスのデータとして書換える場合には、そのエント
リにダーティビットがたてられているものに限り、該エ
ントリ内データをメモリ4に出力し、該メモリ4内の該
当するデータの書換えを行う。このメモリ4へのデータ
書換えの際には、前記バーチャルアドレスレジスタ51
よりバーチャルアドレスVAの下位ビットがシステムバ
ス3に出力され、また、同時にあるいはその後、該バー
チャルアドレスVAに対応するリアルアドレスRAがマ
ツプ機構により変換されてシステムバス3に出力される
When data in a predetermined entry in the cache 2-1 is rewritten as data at a different address, the data in the entry is output to the memory 4 only if the dirty bit is set in that entry, and the data in the entry is output to the memory 4. The corresponding data in the memory 4 is rewritten. When rewriting data to the memory 4, the virtual address register 51
The lower bits of the virtual address VA are then output to the system bus 3, and at the same time or thereafter, the real address RA corresponding to the virtual address VA is converted by the map mechanism and output to the system bus 3.

ここで、バーチャルアドレスVAがバーチャルページナ
ンバーおよびページオフセットより成り、また、リアル
アドレスRAがリアルページナンバーおよびページオフ
セットより成る場合において、エントリ決定のためにバ
ーチャルアドレスレジスタ51より当該キャッシュに出
力されるバーチャルアドレスVAの下位ビットは、ペー
ジオフセットを含むものである必要があるが、第1の信
号線を介してシステムバス3に出力されるデータは、ペ
ージオフセット信号を含まないものであっても良い。
Here, when the virtual address VA consists of a virtual page number and a page offset, and the real address RA consists of a real page number and a page offset, the virtual address register 51 outputs the virtual address to the cache for entry determination. Although the lower bits of the address VA must include a page offset signal, the data output to the system bus 3 via the first signal line may not include a page offset signal.

当該プロセッサシステム以外のプロセッサシステムのプ
ロセッサは、システムバス3にバーチャルアドレスVA
の下位ビットが出力されるのを検出し、このビットをバ
ーチャルアドレスレジスタ52に一旦取り入れてラッチ
した後、該プロセッサに接続されたキャッシュに出力す
る。このキャッシュは、前記バーチャルアドレスVAの
下位ビットによりエントリが決定され、該エントリに記
憶されたリアルアドレスRAを比較器26に出力する。
The processors of processor systems other than the processor system in question have a virtual address VA on the system bus 3.
It detects that the lower bit of is output, and after this bit is once taken into the virtual address register 52 and latched, it is output to the cache connected to the processor. The entry of this cache is determined by the lower bits of the virtual address VA, and the real address RA stored in the entry is output to the comparator 26.

前記比較器26は、前記リアルアドレスRAと、システ
ムバス3を介して転送されたリアルアドレスRAとを比
較する。
The comparator 26 compares the real address RA with the real address RA transferred via the system bus 3.

前記各アドレスが一致している場合には、データの書換
えが行われたキャッシュより、そのデータが取り込まれ
、データ書換えが行われる。
If the addresses match, the data is retrieved from the cache where the data has been rewritten, and the data is rewritten.

さて、このように、各プロセッサは、システムバス3に
バーチャルアドレスVAの下位ビットが送出されたか否
かを常に監視し、また、キャッシュ内データを書換える
プロセッサは、その書換え時にバーチャルアドレスVA
の下位ビットをシステムバス3に送出する。
In this way, each processor always monitors whether the lower bits of the virtual address VA are sent to the system bus 3, and the processor that rewrites data in the cache uses the virtual address VA at the time of rewriting.
The lower bits of the data are sent to the system bus 3.

この、システムバス3にバーチャルアドレスVAの下位
ビットが送出されたか否かを監視し、キャッシュ不整合
を回避すべくデータの書換えを行う各プロセッサの動作
を、さらに第3図を参照して説明する。
The operation of each processor that monitors whether the lower bits of the virtual address VA are sent to the system bus 3 and rewrites data to avoid cache inconsistency will be further explained with reference to FIG. .

第3図は、各プロセッサの、バーチャルアドレスVAの
下位ビットの送出を監視し、キャッシュ不整合を回避す
るための動作を示すフローチャートである。
FIG. 3 is a flowchart showing the operation of each processor to monitor the transmission of the lower bits of the virtual address VA and avoid cache mismatch.

第3図において、まずステップS1においては、第2の
信号線よりバーチャルアドレスVAの下位ビットが出力
されたか否かが判別される。
In FIG. 3, first in step S1, it is determined whether the lower bits of the virtual address VA are output from the second signal line.

バーチャルアドレスVAの下位ビットが検出されたなら
ば、ステップS2において、前記下位ビットにより当該
プロセッサが管理するキャッシュのエントリが決定され
、該エントリの領域24よリアルアドレスRAを読み出
す。
If the lower bits of the virtual address VA are detected, in step S2, the cache entry managed by the processor is determined by the lower bits, and the real address RA is read from the area 24 of the entry.

ステップS3におい、では、読み出されたリアルアドレ
スRAと、システムバス3より出力されたリアルアドレ
スRAとが一致したか否かが判別される。
In step S3, it is determined whether the read real address RA and the real address RA output from the system bus 3 match.

一致していなければ、当該処理はそのまま終了する。If they do not match, the process ends as is.

一致している場合には、データの書換えが行われたキャ
ッシュより、そのデータを取り込み、当該プロセッサが
管理するキャッシュ内の、所定エントリ内のデータを書
換える。そして、その後当該処理は終了する。
If they match, the data is fetched from the cache where the data has been rewritten, and the data in the predetermined entry in the cache managed by the processor is rewritten. After that, the process ends.

第4図は本発明の一実施例の機能ブロック図である。第
4図において、第1図と同一の符号は、同一または同等
部分をあられしている。またこの図においては、複数の
プロセッサシステムの内の−のプロセッサシステム(プ
ロセッサシステム100−1)のみの機能が示されてい
る。
FIG. 4 is a functional block diagram of an embodiment of the present invention. In FIG. 4, the same reference numerals as in FIG. 1 represent the same or equivalent parts. Also, in this figure, the functions of only one processor system (processor system 100-1) among the plurality of processor systems are shown.

第4図において、第1のデータ書換え手段61は、当該
プロセッサより出力されるバーチャルアドレスVAによ
り、データの書換えを行う手段である。
In FIG. 4, first data rewriting means 61 is means for rewriting data using a virtual address VA output from the processor.

第2のデータ書換え手段62は、システムバス3より転
送されるバーチャルアドレスVAの下位ビット、および
リアルアドレスRAにより、キャッシュ不整合を回避す
るためにデータの書換えを行う手段である。
The second data rewriting means 62 is a means for rewriting data using the lower bits of the virtual address VA transferred from the system bus 3 and the real address RA in order to avoid cache mismatch.

前記第1のデータ書換え手段61により、キャッシュ2
−1の所定エントリ内のデータ書換えが行われた後、バ
ーチャルアドレス下位ビット送出手段63は、前記書換
えに用いたバーチャルアドレスVAの下位ビットをシス
テムバス3に送出する。また、マツプ機構64は、前記
書換え時に、前記バーチャルアドレスVAをリアルアド
レスRAに変化し、システムバス3に送出する。
By the first data rewriting means 61, the cache 2
After rewriting the data in the predetermined entry of -1, the virtual address lower bit sending means 63 sends the lower bits of the virtual address VA used for the rewriting to the system bus 3. Furthermore, during the rewriting, the map mechanism 64 changes the virtual address VA to a real address RA and sends it to the system bus 3.

バーチャルアドレス下位ビット検出手段65は、システ
ムバス3内に送出されたバーチャルアドレスVAの下位
ビットを検出し、該ビットをリアルアドレス読出し手段
66に出力する。
The virtual address lower bit detection means 65 detects the lower bits of the virtual address VA sent into the system bus 3 and outputs the bits to the real address reading means 66.

前記リアルアドレス読出し手段66は、前記下位ビット
により決定されるキャッシュ2−1のエントリよりリア
ルアドレスRAを読みだし、比較器26に出力する。
The real address reading means 66 reads the real address RA from the entry of the cache 2-1 determined by the lower bits and outputs it to the comparator 26.

前記比較器26は、この読み出されたリアルアドレスR
ANおよびシステムバス3に送出されたリアルアドレス
RAを比較し、その結果を第2のデータ書換え手段62
に出力する。
The comparator 26 receives the read real address R.
The real address RA sent to the AN and system bus 3 is compared, and the result is sent to the second data rewriting means 62.
Output to.

前記第2のデータ書換え手段62は、比較されたリアル
アドレスRAが互いに同じものであれば、システムバス
3を介して、データの書換えが行われたキャッシュより
該データを取り込み、キャッシュ2−1内の所定エント
リのデータを書換える。
If the compared real addresses RA are the same, the second data rewriting means 62 takes in the data from the rewritten cache via the system bus 3 and stores it in the cache 2-1. rewrite the data of the predetermined entry.

比較されたリアルアドレスRAが互いに同じものでなけ
れば、データの書換えを行わない。
If the compared real addresses RA are not the same, data is not rewritten.

さて、本発明の構成は、基本的には、プロセッサにより
キャッシュ内データを書換える際に、キャッシュのエン
トリを決定するバーチャルアドレスVAの下位ビットを
システムバス3に送出するようにした点に特徴がある。
The configuration of the present invention is basically characterized in that when the processor rewrites data in the cache, the lower bits of the virtual address VA that determine the cache entry are sent to the system bus 3. be.

このように構成されることにより、あるプロセッサシス
テムのキャッシュ内データの書換えが行われた場合に、
該データの書換えに用いられたバーチャルアドレスVA
に対応するリアルアドレスRAを他のキャッシュに転送
しても、該リアルアドレスRAを比較すべき、前記他の
キャッシュ内のエントリを決定することができ、これに
より、キャッシュ不整合を回避することができる。
With this configuration, when data in the cache of a certain processor system is rewritten,
Virtual address VA used to rewrite the data
Even if the real address RA corresponding to the real address RA is transferred to another cache, it is possible to determine the entry in the other cache with which the real address RA should be compared, thereby avoiding cache inconsistency. can.

なお、第3図に示されたような、当該マルチプロセッサ
システムを構成する各プロセッサが行う、キャッシュ不
整合回避のための処理動作(いわゆるスヌービ動作)は
、公知の手法を用いて当業者により種々の形態に構成さ
れることができ、同図に示されたもののみに限定されな
いことは当然である。
Note that the processing operation (so-called snob operation) performed by each processor constituting the multiprocessor system to avoid cache mismatch, as shown in FIG. 3, can be performed in various ways by those skilled in the art using known techniques. It goes without saying that the configuration is not limited to only that shown in the figure.

また、前述の説明においては、キャッシュのエントリを
決定するバーチャルアドレスVAの下位ビットのみが第
1の信号線を介してシステムバス3に送出されるととも
に、該下位ビットのみが第2の信号線を介してキャッシ
ュに転送されるものとして説明したが、本発明は特にこ
れのみに限定されることはなく、リアルアドレスRAす
べてをシステムバス3に送出し、また該システムバス3
よりキャッシュ内に取り込むようにしても良いことは当
然である。
Furthermore, in the above description, only the lower bits of the virtual address VA that determine the cache entry are sent to the system bus 3 via the first signal line, and only the lower bits are sent to the system bus 3 via the second signal line. Although it has been described that the real address RA is transferred to the cache via the system bus 3, the present invention is not limited to this.
Of course, it is also possible to incorporate more data into the cache.

さらに、前記実施例は、ダイレクトマツプ方式のキャッ
シュに本発明を適用した例であるが、本発明は特にこれ
のみに限定されることなく、セットアソシアティブ方式
等のキャッシュに適用されても良いことは当然である。
Further, although the above embodiment is an example in which the present invention is applied to a direct map type cache, the present invention is not limited to this, and may be applied to a set associative type cache. Of course.

この場合の構成は当業者により容易に創作されることが
できるので、その説明は省略する。
Since the configuration in this case can be easily created by those skilled in the art, its explanation will be omitted.

(発明の効果) 以上の説明から明らかなように、本発明によれば、次の
ような効果が達成される。
(Effects of the Invention) As is clear from the above description, according to the present invention, the following effects are achieved.

キャッシュ内データの書換えを行ったときに該データに
対応するバーチャルアドレスVAの下位ビットを他のキ
ャッシュに転送することができるので、該キャッシュの
、データを書換えるべきエントリを決定することができ
る。
When data in the cache is rewritten, the lower bits of the virtual address VA corresponding to the data can be transferred to another cache, so it is possible to determine the entry in the cache where the data should be rewritten.

この結果、マルチプロセッサシステムにライトイン方式
で、かつダイレクトマツプ方式あるいはセットアソシア
ティブ方式等のキャッシュを用いても、キャッシュの不
整合を回避することができる。すなわち、構成容易なダ
イレクトマツプ方式あるいはセットアソシアティブ方式
等のキャッシュを用いて、マルチプロセッサシステムを
構成することができる。
As a result, cache inconsistency can be avoided even if a write-in type cache is used in a multiprocessor system and a direct map type or set associative type cache is used. In other words, a multiprocessor system can be constructed using a cache that is easy to configure, such as a direct map method or a set associative method.

したがって、当該マルチプロセッサシステムを容易に構
成することができる。
Therefore, the multiprocessor system can be easily configured.

また、この結果、当該マルチプロセッサシステムを小型
かつ安価に製作することができる。
Moreover, as a result, the multiprocessor system can be manufactured in a small size and at low cost.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の一実施例に適用されるキャッシュ、お
よびその近傍のブロック図である。 第2図は本発明が適用されるマルチプロセッサシステム
の概略構成図である。 第3図は、各プロセッサの、バーチャルアドレスVAの
下位ビットの送出を監視し、キャッシュ不整合を回避す
るための動作を示すフローチャートである。 第4図は本発明の一実施例の機能ブロック図である。 第5図はライトイン方式、ダイレクトマツプ方式のバー
チャルキャッシュの構成の一例を示す概略図である。 1−1〜1−N・・・プロセッサ、2−1.2−N・・
・キャッシュ、3・・・システムバス、4・・・メモリ
、25.26・・・比較器、61・・・第1のデータ書
換え手段、62・・・第2のデータ書換え手段、63・
・・バーチャルアドレス下位ビット送出手段、64・・
・マツプ機構、65・・・バーチャルアドレス下位ビッ
ト検出手段、66・・・リアルアドレス読出し手段、1
00−1〜100−N・・・プロセッサシステム 代理人弁理士 平木通人 外1名 第   2   図 第   3   図
FIG. 1 is a block diagram of a cache applied to an embodiment of the present invention and its vicinity. FIG. 2 is a schematic configuration diagram of a multiprocessor system to which the present invention is applied. FIG. 3 is a flowchart showing the operation of each processor to monitor the transmission of the lower bits of the virtual address VA and avoid cache mismatch. FIG. 4 is a functional block diagram of an embodiment of the present invention. FIG. 5 is a schematic diagram showing an example of the structure of a write-in type virtual cache and a direct map type virtual cache. 1-1 to 1-N...processor, 2-1.2-N...
- Cache, 3... System bus, 4... Memory, 25.26... Comparator, 61... First data rewriting means, 62... Second data rewriting means, 63.
...Virtual address lower bit sending means, 64...
- Map mechanism, 65... Virtual address lower bit detection means, 66... Real address reading means, 1
00-1 to 100-N... Processor system agent Michito Hiraki and 1 other person Figure 2 Figure 3

Claims (3)

【特許請求の範囲】[Claims] (1)プロセッサ、およびライトイン方式のキャッシュ
より成る複数のプロセッサシステムと、メモリと、前記
各プロセッサシステムおよび前記メモリを接続するシス
テムバスとより成るMIMD方式のマルチプロセッサシ
ステムであって、 前記各プロセッサシステムは、各キャッシュのエントリ
を決定するためのバーチャルアドレスVAの少なくとも
下位ビットを、前記システムバスに送出することを特徴
とするマルチプロセッサシステム。
(1) A MIMD multiprocessor system comprising a plurality of processor systems each comprising a processor and a write-in cache, a memory, and a system bus connecting each of the processor systems and the memory, wherein each of the processors A multiprocessor system characterized in that the system sends at least the lower bits of the virtual address VA to the system bus for determining the entry of each cache.
(2)プロセッサ、およびライトイン方式のキャッシュ
より成る複数のプロセッサシステムと、メモリと、前記
各プロセッサシステムおよび前記メモリを接続するシス
テムバスとより成るMIMD方式のマルチプロセッサシ
ステムであって、 前記各プロセッサシステムは、 各キャッシュのエントリを決定するためのバーチャルア
ドレスVAの少なくとも下位ビットを、前記システムバ
スに送出する第1の信号線と、前記システムバスに送出
されたバーチャルアドレスVAの少なくとも下位ビット
を、各キャッシュに転送する第2の信号線とを具備した
ことを特徴とするマルチプロセッサシステム。
(2) A MIMD multiprocessor system comprising a plurality of processor systems each comprising a processor and a write-in cache, a memory, and a system bus connecting each of the processor systems and the memory, wherein each of the processors The system includes: a first signal line for sending at least the lower bits of the virtual address VA to the system bus for determining the entry of each cache; and at least the lower bits of the virtual address VA sent to the system bus; A multiprocessor system comprising a second signal line for transferring data to each cache.
(3)プロセッサ、およびライトイン方式のキャッシュ
より成る複数のプロセッサシステムと、メモリと、前記
各プロセッサシステムおよび前記メモリを接続するシス
テムバスとより成るMIMD方式のマルチプロセッサシ
ステムであって、 前記各プロセッサシステムは、 バーチャルアドレスVAにより、キャッシュ内のデータ
書換えを行う第1のデータ書換え手段と、前記第1のデ
ータ書換え手段によるデータ書換え時に、バーチャルア
ドレスVAの少なくとも下位ビットを前記システムバス
に送出するバーチャルアドレス下位ビット送出手段と、 前記第1のデータ書換え手段によるデータ書換え時に、
前記バーチャルアドレスVAをリアルアドレスRAに変
換して、前記システムバスに送出する手段と、 他のプロセッサシステムより、前記システムバスに送出
されるバーチャルアドレスVAの少なくとも下位ビット
を検出するバーチャルアドレス下位ビット検出手段と、 前記バーチャルアドレス下位ビット検出手段により検出
されたバーチャルアドレスVAの少なくとも下位ビット
により決定されるキャッシュのエントリより、リアルア
ドレスRAを読み出すリアルアドレス読出し手段と、 前記リアルアドレス読出し手段により読出されたリアル
アドレスRANおよび前記システムバスに送出されたリ
アルアドレスRAを比較する比較器と、 前記比較器により前記各リアルアドレスRAが一致して
いる場合に、前記他のプロセッサシステムにより書換え
られたデータを取り込み、当該キャッシュ内データを書
換える第2のデータ書換え手段とを具備したことを特徴
とするマルチプロセッサシステム。
(3) A MIMD multiprocessor system comprising a plurality of processor systems each comprising a processor and a write-in cache, a memory, and a system bus connecting each of the processor systems and the memory, wherein each of the processors The system includes a first data rewriting unit that rewrites data in the cache using a virtual address VA, and a virtual controller that sends at least the lower bits of the virtual address VA to the system bus when the first data rewriting unit rewrites the data. When data is rewritten by the address lower bit sending means and the first data rewriting means,
means for converting the virtual address VA into a real address RA and sending it to the system bus; virtual address lower bit detection for detecting at least the lower bits of the virtual address VA sent to the system bus from another processor system; real address reading means for reading a real address RA from a cache entry determined by at least the lower bits of the virtual address VA detected by the virtual address lower bit detection means; a comparator that compares a real address RAN and a real address RA sent to the system bus; and a comparator that reads data rewritten by the other processor system if the real addresses RA match each other according to the comparator; , and second data rewriting means for rewriting the data in the cache.
JP63085233A 1988-04-08 1988-04-08 Multiprocessor system Expired - Fee Related JP2696899B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63085233A JP2696899B2 (en) 1988-04-08 1988-04-08 Multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63085233A JP2696899B2 (en) 1988-04-08 1988-04-08 Multiprocessor system

Publications (2)

Publication Number Publication Date
JPH01258168A true JPH01258168A (en) 1989-10-16
JP2696899B2 JP2696899B2 (en) 1998-01-14

Family

ID=13852845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63085233A Expired - Fee Related JP2696899B2 (en) 1988-04-08 1988-04-08 Multiprocessor system

Country Status (1)

Country Link
JP (1) JP2696899B2 (en)

Also Published As

Publication number Publication date
JP2696899B2 (en) 1998-01-14

Similar Documents

Publication Publication Date Title
US5586294A (en) Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
JPS63195752A (en) Cache memory
US5249284A (en) Method and system for maintaining data coherency between main and cache memories
JPH05127992A (en) Apparatus and method for decreasing interference in two-level cache memories
JPH087718B2 (en) Computer memory system
KR900016868A (en) Cache Diagnostic Mode
US5590310A (en) Method and structure for data integrity in a multiple level cache system
US5313602A (en) Multiprocessor system and method of control over order of transfer of data between buffer storages
US5502828A (en) Reducing memory access in a multi-cache multiprocessing environment with each cache mapped into different areas of main memory to avoid contention
US6704820B1 (en) Unified cache port consolidation
JPH1091521A (en) Duplex directory virtual cache and its control method
JPH0511337B2 (en)
JPH01258168A (en) Multiprocessor system
JPH03230238A (en) Cache memory control system
US6397295B1 (en) Cache mechanism for shared resources in a multibus data processing system
JPH0210446A (en) Buffer storage device
JPS6329297B2 (en)
US20070038813A1 (en) System and method for cache coherence
JPH0830568A (en) Cache control system for distributed memory type parallel computer
JP2963257B2 (en) Processing equipment
JPH01226056A (en) Address converter
JPS6131495B2 (en)
KR0140952B1 (en) A single cache sharing device in a multiprocessor system and data writing / reading method using the device
EP0460852A2 (en) System for maintaining data coherency between main and cache memories
JPH10207773A (en) Bus connecting device

Legal Events

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