JPH03172947A - Microcomputer system - Google Patents
Microcomputer systemInfo
- Publication number
- JPH03172947A JPH03172947A JP2306957A JP30695790A JPH03172947A JP H03172947 A JPH03172947 A JP H03172947A JP 2306957 A JP2306957 A JP 2306957A JP 30695790 A JP30695790 A JP 30695790A JP H03172947 A JPH03172947 A JP H03172947A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- bus
- memory
- data
- cache memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【発明の詳細な説明】
[発明の目的]
〈産業上の利用分野〉
本発明は、キャッシュメモリに関し、より詳細に言えば
、コピーバックφモードで動作するキャッシュメモリを
制御してマイクロコンピュータ・システムに於けるキャ
ッシュメモリ俸コントローラに関する。[Detailed Description of the Invention] [Object of the Invention] <Industrial Application Field> The present invention relates to a cache memory, and more specifically, the present invention relates to a cache memory that operates in a copyback φ mode to control a cache memory that operates in a copyback φ mode to improve a microcomputer system. The present invention relates to a cache memory salary controller in a computer.
〈従来の技術〉
キャッシュメモリは、コンピュータシステムに使用され
る小容量、高速の補助メモリである。周知のアルゴリズ
ムを用いて、コンピュータシステムの主メモリ内の選択
された記憶場所の内容が周期的に前記キャッシュメモリ
内にコピーされる。<Prior Art> Cache memory is a small capacity, high speed auxiliary memory used in computer systems. Using well-known algorithms, the contents of selected memory locations within the computer system's main memory are periodically copied into the cache memory.
中央処理装置が、可能であればキャッシュメモリから読
み取りかつ書き込む。キャッシュメモリは主メモリより
高速のメモリであるので、これによってサイクル時間が
減少する。更に、直接メモリアクセス(DMA)デバイ
スのようなリモート俸バスマスタ・デバイスが主メモリ
をアクセスする際に、プロセッサは、前記リモート・バ
スマスタ・デバイスによる主メモリへのアクセスが行わ
れている間、キャッシュメモリを用いてラン(run)
即ち動作し続けることができる。これによって、更にス
ループットが容易になり、かつコンピュータシステムの
性能を強化することができる。The central processing unit reads and writes from cache memory if possible. This reduces cycle time since cache memory is a faster memory than main memory. Additionally, when a remote bus master device, such as a direct memory access (DMA) device, accesses main memory, the processor may store cache memory during the access to main memory by the remote bus master device. run using
In other words, it can continue to operate. This can further facilitate throughput and enhance the performance of the computer system.
最近まで、キャッシュメモリは一般にメインフレーム・
コンピュータ及びミニコンピユータでのみ使用されてい
た。パーソナルコンピュータまたはマイクロコンピュー
タに使用されるマイクロプロセッサは、遅すぎてキャッ
シュメモリの利益が得られなかった。インテル(Int
el)80386のような32ビツトのマイクロプロセ
ッサの出現によって、マイクロプロセッサのクロック速
度が十分に増大し、それによって今ではキャッシュメモ
リによってマイクロコンピュータ・システムに於けるス
ループットの大幅な向上が可能になっている。この結果
、キャッシュメモリは、前記インテル80386のよう
な高速マイクロプロセッサを有するマイクロコンピュー
タ・システムに於て使用されている。更に、最近25メ
ガヘルツのクロックを有するインテル80286コンパ
チブルチツプが開発された。このマイクロプロセッサは
、同様にキャッシュメモリを使用することが有利である
ような十分に早いクロック速度を有する。Until recently, cache memory was commonly used in mainframe
Used only in computers and minicomputers. Microprocessors used in personal computers or microcomputers were too slow to benefit from cache memory. Intel
el) With the advent of 32-bit microprocessors such as the 80386, microprocessor clock speeds have increased sufficiently that cache memory now allows for significant increases in throughput in microcomputer systems. There is. As a result, cache memory is used in microcomputer systems having high speed microprocessors such as the Intel 80386. Additionally, an Intel 80286 compatible chip with a 25 MHz clock was recently developed. This microprocessor has a sufficiently fast clock speed that it is advantageous to use cache memory as well.
キャッシュメモリは、一般に高速度のランダムアクセス
メモリ(RAM)からなる。これは、キャッシュメモリ
に書き込みまたはそれがら読み取るものを決定するキャ
ッシュメモリ・コントローラによって制御される。先に
説明したように、キャッシュメモリは、可能であるなら
ば全メモリアクセス時間を減少させかっそれによってス
ループットを増大させるために、主メモリの代わりにア
クセスされる。Cache memory generally consists of high speed random access memory (RAM). This is controlled by the cache memory controller, which decides what to write to or read from the cache memory. As previously discussed, cache memory is accessed in place of main memory, if possible, to reduce overall memory access time and thereby increase throughput.
プロセッサが主メモリに書き込もうとする場合、キャッ
シュコントローラが、主メモリの記憶場所のアドレスを
そのタグメモリに記憶されているメモリアドレスと比較
して、この主メモリの記憶場所の内容がキャッシュメモ
リに記憶されているがどうかを決定する。(「タグメモ
リ」は、キャッシュメモリに最新に記憶された主メモリ
の記憶場所のアドレスをキャッシュコントローラが記憶
しておくRAMメモリである。)その内容が記憶されて
いる場合には、「書込みヒツトJが起っている。記憶さ
れていなかった場合には、「書込みミス」が起っている
。When a processor attempts to write to main memory, the cache controller compares the address of a main memory location with the memory address stored in its tag memory and determines whether the contents of this main memory location are stored in cache memory. Decide whether it is. (The "tag memory" is a RAM memory in which the cache controller stores the address of the main memory storage location most recently stored in the cache memory.) If its contents are stored, the "tag memory" J has occurred. If it has not been stored, a "write error" has occurred.
前記プロセッサが周知の「ライトスルー」モードで動作
している場合には、キャッシュメモリには書込みヒツト
のみが書き込まれるのに対して、主メモリには全てのプ
ロセッサ書込み要求が書き込まれる。対照的に、キャッ
シュコントローラが周知の「コピーパック」モードで動
作している場合には、前記プロセッサは成る環境下にあ
る場合を除いて、書込みヒツトの場合にキャッシュメモ
リのみに書き込み、かつ書込みミスの場合に主メモリに
書き込む。書込みヒツトに対する主メモリのアップデー
ティング即ち更新は、新しいキャッシュデータのための
場所を作るために古いデータを主メモリに「コピーパッ
ク」させる読取りミスが起こるまで、遅らされる。キャ
ッシュメモリは、使用されているキャッシュメモリの更
新計画または方法に従って書込みミスに対して更新され
たりされなかったりする。When the processor is operating in the well-known "write-through" mode, only write hits are written to cache memory, whereas all processor write requests are written to main memory. In contrast, when a cache controller is operating in the well-known "copy-pack" mode, the processor writes only to cache memory in the event of a write hit, and only writes to cache memory in the event of a write hit, except under certain circumstances. Write to main memory if . Updating main memory for write hits is delayed until a read miss occurs which causes old data to be "copy packed" into main memory to make room for new cache data. The cache memory may or may not be updated for write misses according to the cache memory update plan or method being used.
より遅いライトスルー・モードへの逆戻りを行わなけれ
ばならない場合が2つある。その第1の場合は、後述す
るパススヌープ・ヒツトがある場合に機能抑止できない
主メモリが拡張バスに存在する場合である。第2の場合
は、書き込まれる記憶場所がビデオ・デイスプレィ用R
AMのようなメモリのマツブトI10記憶場所である場
合である。There are two cases in which reversion to a slower write-through mode must occur. The first case is when there is main memory on the expansion bus whose function cannot be inhibited if there is a path snoop hit, which will be described later. In the second case, the memory location to be written to is R for video display.
This is the case with Matsubuto I10 storage locations in memory such as AM.
前記プロセッサによる主メモリへの書込みは、「後書込
み」によって行われる場合が多い。以下に詳述するよう
に、ここで言う後書込みは、アドレス指定された主メモ
リの記憶場所の番地を前記キャッシュコントローラ内に
固定すること、及び前記データをバッフアートバス・ト
ランシーバ内に固定することが必要である。ここで、前
記プロセッサは次のバス動作を実行することができ、か
つキャッシュコントローラが残りの書込み動作を取り扱
う。Writing to main memory by the processor is often performed by "post-write." As explained in more detail below, write-after refers to fixing the address of the addressed main memory memory location in the cache controller and fixing the data in the buffer art bus transceiver. is necessary. The processor can now perform the next bus operation, and the cache controller handles the remaining write operations.
前記プロセッサが主メモリの記憶場所から読み取ろうと
する場合には、前記キャッシュコントローラが主メモリ
の記憶場所の番地をその[タグメモリJと比較して、ア
ドレス指定されたメモリの記憶場所の内容がキャッシュ
メモリに書き込まれているかどうかを判断する。書き込
まれている場合には、これが「読取りヒツト」と呼ばれ
る。読取りヒツト時には、前記キャッシュローラが主メ
モリの機能を抑止し、かつキャッシュメモリに主メモリ
であるかのように応答させる。このようにして、前記プ
ロセッサはキャッシュメモリを読み取る。前記プロセッ
サが読み取ろうとする記憶場所がキャッシュメモリに書
き込まれていない場合には、「読取りミス」が生じる。When the processor attempts to read from a main memory location, the cache controller compares the address of the main memory location with its [tag memory J] so that the contents of the addressed memory location are cached. Determine whether it is written to memory. If it has been written, this is called a "read hit." During a read hit, the cache roller disables main memory and causes the cache memory to respond as if it were main memory. In this way, the processor reads the cache memory. A "read miss" occurs if the memory location that the processor attempts to read has not been written to cache memory.
この場合、前記プロセッサが前記主メモリの記憶場所を
読み取り、かつ成る共通の方法で、この主メモリの記憶
場所の内容が同様にキャッシュメモリに書き込まれる。In this case, the processor reads the main memory location, and the contents of this main memory location are also written to a cache memory in a common manner.
次に、前記キャッシュコントローラはそのタグメモリを
更新して、この主メモリの記憶場所が現在キャッシュメ
モリ内に記憶されていることを表示する。The cache controller then updates its tag memory to indicate that this main memory location is currently stored in cache memory.
今まで、コピーパック・モードで動作するキャッシュメ
モリは、メインフレーム・コンピュータ及びミニコンピ
ユータのようなより大型のコンピュータシステムでのみ
使用されていた。マイクロプロセッサに使用されるキャ
ッシュメモリは、ライトスルー・モードに於てのみ動作
させることができた。Until now, cache memories operating in copy-pack mode have been used only in larger computer systems such as mainframe computers and minicomputers. Cache memories used in microprocessors could only be operated in write-through mode.
このようなインテル80386チツプまたはその同等品
に基づくマイクロコンピュータ・システムのキャッシュ
メモリ・コントローラの1つがインテル82385キヤ
ツシユコントローラである。One such cache memory controller for a microcomputer system based on the Intel 80386 chip or its equivalent is the Intel 82385 cache controller.
このようなキャッシュメモリ・コントローラの別の例と
して、オースペック(Auspek)38152がある
。Another example of such a cache memory controller is the Auspek 38152.
これら2個のキャッシュコントローラには、キャッシュ
メモリを用いることによって得ることができるスルーブ
ツトの向上を制限するような限界がある。(スループッ
トの向上とは、メモリのアクセスに必要な時間の短縮に
よるマイクロコンピュータΦシステムがプログラムを実
行するために必要な時間の短縮を言う。プログラムを実
行する際に行われるメモリのアクセスが多くなるほど、
メモリのアクセスに必要な時間を減少させることよって
より大幅にスループットが改善される。)これらの限界
には、コピーパック令モードに於て、かつ最大32キロ
バイトのキャッシュサイズに於て動作させることができ
ないことが含まれる。These two cache controllers have limitations that limit the throughput improvements that can be obtained by using cache memory. (Improvement in throughput refers to the reduction in the time required for the microcomputer Φ system to execute a program by reducing the time required for memory access.The more memory accesses are performed when executing a program, the more ,
Throughput is significantly improved by reducing the time required to access memory. ) These limitations include the inability to operate in copy-pack order mode and with cache sizes up to 32 kilobytes.
最も重要な限界はコピーパック令モードで動作できない
ことであると考えられる。ライトスルー技術によってリ
アルタイム・コヒーレンス、即ちキャッシュメモリがそ
の対応する主メモリの記憶場所と一致することが保証さ
れるのに対して、システムの帯域幅という形でペナルテ
ィが課される。The most important limitation is believed to be the inability to operate in copy-pack order mode. While write-through techniques guarantee real-time coherence, ie, that a cache memory is consistent with its corresponding main memory location, it imposes a penalty in the form of system bandwidth.
ライトスルー・モードに於ける読取りヒツトの間、前記
キャッシュメモリがCPUに対して高速のアクセスを提
供するが、更にDMAコントローラ(最近のPCシステ
ム、特により高性能なPCシステムに於ける非常に一般
的な機能及び非常にありふれたバスマスタ)のような別
のバスマスタが使用するための「自由」サイクルがシス
テムバスに与えられ、システムバスの帯域幅及びシステ
ムのスルーブツトが増大することになる。しかしながら
、ライトスルー・モードに於ける書込みヒツトの間、キ
ャッシュへの全書込みが同時に(「後」書込みについて
は略同時に)前記主メモリに書き込まれるので、対称的
な利益を得ることができない。これは、前記キャッシュ
メモリ内で更新されているが主メモリ内にコピーバック
されていない主メモリの記憶場所をリモートマスクが読
み取ることを防止するためである。During read hits in write-through mode, the cache memory provides fast access to the CPU, but also requires a DMA controller (very common in modern PC systems, especially higher performance PC systems). ``free'' cycles are given to the system bus for use by another bus master, such as a very common bus master, increasing system bus bandwidth and system throughput. However, during a write hit in write-through mode, all writes to the cache are written to the main memory at the same time (substantially at the same time for "later" writes), so symmetrical benefits cannot be obtained. This is to prevent the remote mask from reading main memory locations that have been updated in the cache memory but not copied back into main memory.
コピーパック令モードではキャッシュメモリへのプロセ
ッサの書込みが、読取りミス時にのみ前記主メモリにコ
ピーされる。読取りミス時には、前記キャッシュコント
ローラが、先ずアドレス指定された主メモリの記憶場所
からのデータが「ダーティ」であるかどうかを確かめる
ために書込まれるべきキャッシュメモリの記憶場所を点
検する。In the copy-pack instruction mode, processor writes to cache memory are copied to the main memory only on read misses. On a read miss, the cache controller first checks the cache memory location to be written to see if the data from the addressed main memory location is "dirty."
前記キャッシュメモリの記憶場所は、更新されているが
その対応する主メモリの記憶場所が更新されていない場
合に、ダーティである。選択されたキャッシュメモリの
記憶場所がダーティである場合には、キャッシュローラ
が選択された前記キャッシュメモリの記憶場所の内容を
前記対応する主メモリの記憶場所に書き込む。次に、前
記キャッシュコントローラがアドレス指定された主メモ
リの記憶場所の内容を選択された前記キャッシュメモリ
の記憶場所に書き込ませ、かつ前記プロセッサに供給さ
せる。A cache memory location is dirty if it has been updated but its corresponding main memory location has not. If the selected cache memory location is dirty, a cache roller writes the contents of the selected cache memory location to the corresponding main memory location. The cache controller then causes the contents of the addressed main memory location to be written to the selected cache memory location and provided to the processor.
また、前記キャッシュコントローラはそのタグRAMを
更新して、前記選択キャッシュメモリ記憶場所に対応す
ることになった新しい主メモリの記憶場所を指示する。The cache controller also updates its tag RAM to indicate a new main memory location that will correspond to the selected cache memory location.
前記コピーバック・モードは重要なバス帯域幅を他の動
作のために開放するので、特にディスクアクセスのよう
なシステムバスに於けるDMAの動作にとって有用であ
る。しかしながら、インテル82385及びオースペッ
クΦコンパチブルチップは、コピーバック・モードで動
作できないだけでなく、インテルのデータシートには、
コピーバック・モードが80386マイクロプロセツサ
についても使用できないことが示されている。The copyback mode is particularly useful for DMA operations on the system bus, such as disk accesses, because it frees up important bus bandwidth for other operations. However, Intel 82385 and Auspec Φ compatible chips not only cannot operate in copyback mode, but Intel's datasheet states:
It has been shown that copyback mode is also not available for the 80386 microprocessor.
インテルは、一般にインテル486として知られる最新
のマイクロプロセッサに於て、キャッシュコントローラ
がコピーバック会モードで動作し得る386及び286
マイクロプロセツサには存在しない成る設計上の特徴を
提供した。特に、この486は、所コη「バックオフJ
(BOFF)入力を有する。DMA動作の際に前記
BOFF入力が真であるとされると、前記486は現在
行っている動作を投げ出して、前記バスをDMA動作に
提供する。前記DMA動作が完了した後、前記486は
、前記DMA動作の開始時に行っていた前記バス動作を
再び実行する。これによって、BOFF入力を持たない
デバイスでは解決不可能であると考えられていたデッド
ロックをコピーバック・モードで解決することが可能に
なる。Intel has announced that in its latest microprocessors, commonly known as Intel 486, the cache controller can operate in copyback mode.
It offered design features not present in microprocessors. In particular, this 486 is
(BOFF) input. If the BOFF input is true during a DMA operation, the 486 abandons the operation it is currently performing and provides the bus for the DMA operation. After the DMA operation is completed, the 486 again performs the bus operation that it was performing at the beginning of the DMA operation. This makes it possible to resolve deadlocks in copyback mode, which were considered unresolvable in devices without a BOFF input.
DMAが行われている場合のようにリモートバスマスタ
が主メモリを読み取ろうとする場合に、コピーバック・
モードが有するライトスルー・モードには存在しない問
題が生じる。この問題とは、コピーバックが用いられる
場合に、ライトスルーが用いられる場合よりも主メモリ
がキャッシュメモリと非常にコヒーレント性即ち一致性
を持ち難いことである。この結果、DMAが起こると、
アドレス指定された主メモリの記憶場所の内容が誤りと
なり、即ちデータがアドレス指定された前記主メモリの
記憶場所に対応するキャッシュメモリの記憶場所に書き
込まれているが、前記主メモリの記憶場所には書き込ま
れていないことになる。If a remote bus master attempts to read main memory, such as when DMA is occurring, copyback
A problem arises that does not exist in write-through mode. The problem is that main memory is much less coherent with cache memory when copyback is used than when write-through is used. As a result, when DMA occurs,
The contents of the addressed main memory location are incorrect, i.e. data has been written to the cache memory location corresponding to the addressed main memory location, but the data is is not written.
〈発明が解決しようとする課題〉
本発明は、「ロック命令シーケンス」を実行することが
できるマイクロプロセッサからなるマイクロプロセッサ
・システムに於けるキャッシュコントローラの使用に関
する。ロック命令シーケンスとは、実行の途中で中断で
きない命令のシーケンスである。マイクロプロセッサが
第1データバスに接続され、かつそれが次にキャッシュ
メモリに接続される。また、前記システムは、主メモリ
に接続された第2データバスに接続された周辺デバイス
を有する。また、前記システムは、前記第2データバス
からのデータで第1データバスを駆動し、かつ前記第1
データバスからのデータで前記第2テータバスを駆動す
るためのトランシーバ手段を備える。即ち、前記トラン
シーバ手段によって前記周辺デバイスは前記キャッシュ
メモリにアクセスすることができ、かつ前記マイクロプ
ロセッサが前記主メモリにアクセスすることができる。SUMMARY OF THE INVENTION The present invention relates to the use of a cache controller in a microprocessor system consisting of a microprocessor capable of executing a "lock instruction sequence." A locked instruction sequence is a sequence of instructions that cannot be interrupted during execution. A microprocessor is connected to the first data bus, which in turn is connected to cache memory. The system also has a peripheral device connected to a second data bus connected to the main memory. The system also drives a first data bus with data from the second data bus, and
Transceiver means are provided for driving said second data bus with data from a data bus. That is, the transceiver means allows the peripheral device to access the cache memory and allows the microprocessor to access the main memory.
このようなシステムでは、前記周辺デバイスが前記第2
バス、トランシーバ手段及び第1バスを介して前記キャ
ッシュメモリをアクセスしようとする場合に、前記マイ
クロプロセッサが前記第1バス、トランシーバ手段及び
第2データバスを介して主メモリにアクセスされるロッ
ク書込み命令を実行するのに対して、前記プロセッサが
バックオフ・ピンを持たない場合に前記マイクロプロセ
ッサシステムがロックアツプする可能性がある。In such a system, the peripheral device is connected to the second
A lock write instruction in which the microprocessor accesses main memory via the first bus, transceiver means and a second data bus when attempting to access the cache memory via the first bus, transceiver means and a first bus. However, if the processor does not have a backoff pin, the microprocessor system may lock up.
本発明は、この問題を解決しようとするものである。The present invention seeks to solve this problem.
[発明の構成]
〈課題を解決するための手段及び作用〉本発明の1実施
例によれば、全てのマイクロプロセッサ・ロック命令シ
ーケンスがロック読取り命令で開始される。前記周辺デ
バイスがその時点で第2データバスを制御しているかど
うかを決定するために制御手段が設けられる。前記周辺
デバイスが前記第2データバスを制御し、かつ前記マイ
クロプロセッサが(常にロック読取り命令で開始する)
ロック命令シーケンスを開始している場合には、前記周
辺デバイスが前記第2データバスの制御を放棄するまで
、前記制御手段は前記マイクロプロセッサの準備完了入
力ラインを偽とする。SUMMARY OF THE INVENTION According to one embodiment of the invention, every microprocessor lock instruction sequence begins with a read lock instruction. Control means are provided for determining whether the peripheral device is currently controlling the second data bus. the peripheral device controls the second data bus, and the microprocessor (always starts with a lock read instruction)
When initiating a lock command sequence, the control means causes the microprocessor's ready input line to be false until the peripheral device relinquishes control of the second data bus.
前記準備完了入力ラインを偽とする間、前記マイクロプ
ロセッサは前記第1データバスを有効データを含む入力
バスとして取扱うので、前記第1データバスをデータで
駆動しようとすることはない。While the ready input line is false, the microprocessor treats the first data bus as an input bus containing valid data and therefore does not attempt to drive the first data bus with data.
これによって、前記周辺デバイスは、前記トランシーバ
手段及びS1データバスを介して前記キャッシュメモリ
にアクセスすることができる。This allows the peripheral device to access the cache memory via the transceiver means and the S1 data bus.
前記周辺デバイスが前記第2データバスの制御を要求し
ている時にロック命令シーケンスが実行されている場合
には、前記制御手段が前記ロックシーケンスの間は前記
周辺デバイスによる前記第2データバス制御を否定する
ことになる。If a lock command sequence is being executed when the peripheral device requests control of the second data bus, the control means controls control of the second data bus by the peripheral device during the lock sequence. I will deny it.
このプロトコルに従うことによって、ロックアツプが発
生することはない。By following this protocol, no lockups will occur.
〈実施例〉
キャッシュメモリは、そのセットアソシアティビティに
従って構成される。セットアソシアティビティによって
、主メモリのどの記憶場所がキャッシュメモリのどの記
憶場所に書き込み得るかが決定される。これは、直接マ
ツピングからフルセットアソシアティビティまでの範囲
に及ぶ。直接マツピングでは、所定の主メモリ記憶場所
が1つのキャッシュメモリ記憶場所にのみ書き込むこと
ができるのに対して、フルセットアソシアティビティで
は、全ての主メモリ記憶場所をあらゆるキャッシュメモ
リ記憶場所に書き込むことができる。Embodiment A cache memory is configured according to its set associativity. Set associativity determines which locations in main memory can write to which locations in cache memory. This ranges from direct mapping to full set associativity. Direct mapping allows a given main memory location to be written to only one cache memory location, whereas full set associativity allows all main memory locations to be written to any cache memory location. can.
そのセットアソシアティビティに従って、キャッシュメ
モリは1つまたは2つ以上のバンクに分割される。直接
マツブトキャッシュは1つのバンクのみを有する。2ウ
ェイΦセットアソシアティビティを有するキャッシュは
、2つのバンクを有し、4ウエイ・セットアソシアティ
ビティを有するキャッシュは4つのバンクを有する。According to its set associativity, the cache memory is divided into one or more banks. Direct Matsubuto cache has only one bank. A cache with 2-way Φ set associativity has two banks, and a cache with 4-way set associativity has 4 banks.
主メモリはキャッシュバンクと同サイズのページと称さ
れる区分に分割される。例えば、第1図に示されるよう
に、キャッシュメモリのサイズが32にである場合には
、各ページが直接マツブトコンフィグレーションに於て
32にとなる。2ウエイリセツトアソシアテイビテイを
有するキャッシュメモリでは、第2図に示されるように
、各ページがキャッシュメモリのサイズの2分の1、即
ち32にのキャッシュメモリに対して16にとなり、か
つ4ウエイ・セットアソシアティビティを有するキャッ
シュメモリでは、第3図に示されるように、各ページが
キャッシュメモリのサイズの4分の1、即ち32にキャ
ッシュメモリに対して8にとなる。Main memory is divided into sections called pages, which are the same size as the cache banks. For example, as shown in FIG. 1, if the cache memory size is 32, each page will be 32 in the direct Matsubuto configuration. In a cache memory with two-way reset associativity, each page has one-half the size of the cache memory, or 16 for a cache memory of 32, and a four-way reset associativity, as shown in FIG. - In a cache memory with set associativity, each page is one quarter of the size of the cache memory, or 32 to 8 cache memories, as shown in FIG.
主メモリに於ける各ページまたは前記キャッシュに於け
る各バンクは数個のブロックからなる。Each page in main memory or each bank in the cache consists of several blocks.
各ブロックは、自己のタグをキャッシュディレクトリと
も称されるキャッシュコントローラのタグRAM内に有
する。従って、前記キャッシュの物理的空間に於ける連
続ブロックは、論理的には非連続になり得る。第1図乃
至第3図に示されるように、各タグに関するデータ横進
が、前記ブロック内の各サブブロックについてタグフィ
ールド、「ダーティ」ブロックビット及び「有効」ビッ
トを有する。前記タグフィールドは、主メモリ内の関連
するブロックアドレスを識別する。前記ダーティブロッ
クビットは、サブブロックのいずれかが更新されており
、かつ主メモリ内の対応する記憶場所とコヒーレント性
を有しないことを示すようにセットされまたはクリアさ
れる。前記有効ビットは、関連するサブブロックが使用
されているかまたは使用可能であるかどうかを示すよう
にセットされまたはクリアされる。Each block has its own tag in the cache controller's tag RAM, also referred to as the cache directory. Therefore, contiguous blocks in the physical space of the cache may become logically non-contiguous. As shown in FIGS. 1-3, the data traverse for each tag includes a tag field, a "dirty" block bit, and a "valid" bit for each subblock within the block. The tag field identifies the associated block address in main memory. The dirty block bit is set or cleared to indicate that any of the subblocks has been updated and is not coherent with the corresponding memory location in main memory. The valid bit is set or cleared to indicate whether the associated sub-block is used or available.
同様に第1図乃至第3図に示されるように、各ブロック
は、前記キャッシュディレクトリ内の単一のタグの下で
一体的にグループ化される固定数のサブブロックからな
る。サブブロックは、主メモリからキャッシュメモリに
データを転換する際またはキャッシュメモリから主メモ
リへの更新のために、主メモリとキャッシュメモリとの
間で交換される最小の情報量である。各サブブロックの
サイズはキャッシュメモリのサイズに比例して変化する
。成るブロックの全サブブロックは、該ブロックのタグ
が該ブロックのベースアドレスを含んでいるので、シー
ケンシャルな記憶場所に基づく。Also as shown in FIGS. 1-3, each block consists of a fixed number of sub-blocks grouped together under a single tag within the cache directory. A subblock is the smallest amount of information exchanged between main memory and cache memory when transferring data from main memory to cache memory or for updates from cache memory to main memory. The size of each subblock changes in proportion to the size of the cache memory. All subblocks of a block are based on sequential memory locations because the block's tag contains the block's base address.
サブブロックと語との相違に注意することが重要である
。上述したようにサブブロックは、キャッシュメモリと
主メモリとの間に於ける情報交換の最小単位である。語
は、中央処理装置(CPU)とキャッシュメモリまたは
主メモリのいずれかとの間に於ける情報交換の最大単位
を定義する。サブブロックのサイズは、前記キャッシュ
メモリ内の全ブロック数及びブロック毎のサブブロック
数が、使用可能な一定数のタグ及び有効ビットによって
一定のままであるので、キャッシュメモリのサイズに直
接比例して変化する。It is important to note the difference between subblocks and words. As described above, a subblock is the smallest unit of information exchange between the cache memory and the main memory. Defines the largest unit of information exchange between a central processing unit (CPU) and either cache memory or main memory. The size of the subblocks is directly proportional to the size of the cache memory, since the total number of blocks in the cache memory and the number of subblocks per block remain constant due to the constant number of tags and valid bits available. Change.
直接マツピングは最も簡単な種類のセットアソシアティ
ビティである。第1図に示されるように、前記主メモリ
は前記キャッシュメモリバンクと等しいサイズのページ
に論理的に分割される。キャッシュメモリの各記憶場所
は、タグ及びオフセットによって指標される。前記タグ
がブロックを識別し、かつ前記オフセットが前記ブロッ
ク内のサブブロックの記憶場所を識別する。実際に、前
記タグはその内容が主メモリ内の前記ページを指標する
アドレスポインタであり、それに基いて前記キャッシュ
メモリのその記憶場所に格納されるブロックがコピーさ
れている。Direct mapping is the simplest type of set associativity. As shown in FIG. 1, the main memory is logically divided into pages of equal size to the cache memory banks. Each cache memory location is indexed by a tag and an offset. The tag identifies a block and the offset identifies a storage location of a subblock within the block. In fact, the tag is an address pointer whose content points to the page in the main memory, on the basis of which the block stored at that location in the cache memory is copied.
各ブロックの前記タグがあらゆるページのアドレスを含
むことができるので、前記キャッシュの連続ブロックは
あらゆるページからランダムに選択することができる。Since the tag of each block can contain the address of any page, consecutive blocks of the cache can be randomly selected from any page.
しかしながら、直接マツブト・コンフィグレーションで
は、前記キャッシュメモリの各ブロックの記憶場所がそ
の主メモリ内のページに於けるその記憶場所に直接にマ
ツピングされ即ち対応していなければならない。更に、
ブロック内のサブブロックの位置がそのオフセットによ
って決定されるので、前記キャッシュメモリにコピーさ
れるブロック内のサブブロックは同様に主メモリとキャ
ッシュメモリとの間で対応していなければならない。However, in a direct mapping configuration, the memory location of each block of the cache memory must directly map or correspond to its memory location in a page in main memory. Furthermore,
Since the position of a sub-block within a block is determined by its offset, sub-blocks within a block that are copied to the cache memory must likewise correspond between main memory and cache memory.
動作時には、前記CPUが、読出しサイクルまたは書込
みサイクルに於てアクセスされるべき前記主メモリ記憶
場所の完全なアドレスを供給する。In operation, the CPU provides the complete address of the main memory location to be accessed in a read or write cycle.
ヒツトを決定するために、前記キャッシュコントローラ
内のタグコンパレータが前記タグの内容を主メモリ内の
ページを決定する高次のアドレスビットと比較する。ヒ
ツトがある場合には、前記キャッシュメモリが適当なコ
ンパレータの出力によって動作可能になり、かつ残りの
アドレスビットが前記キャッシュメモリのアドレスライ
ンを駆動して選択された記憶場所にアクセスする。To determine a hit, a tag comparator in the cache controller compares the contents of the tag to higher order address bits that determine the page in main memory. If there is a hit, the cache memory is enabled by the output of the appropriate comparator and the remaining address bits drive the address lines of the cache memory to access the selected memory location.
nウェイ・セット連想機構が、2ウエイ・セットアソシ
アティビティに関する第2図及び4ウエイ争セツトアソ
シアテイビテイに関する第3図に示されるように、前記
キャッシュメモリをn個のバンクに分割する。この場合
に同じオフセット記憶場所が、これらの記憶場所のそれ
ぞれが異なるキャッシュバンクに属するので、主メモリ
のn個のページについて使用可能である。直接マツピン
グは本質的に1ウエイ・セットアソシアテイビティであ
る。An n-way set associative mechanism divides the cache memory into n banks, as shown in FIG. 2 for two-way set associativity and FIG. 3 for four-way contention set associativity. In this case, the same offset storage location is available for n pages of main memory, since each of these storage locations belongs to a different cache bank. Direct mapping is essentially one-way set associativity.
第4図は、インテル80386マイクロプロセツサに基
づき、かつ従来のインテル82385キヤツシユコント
ローラによって制御されるキャッシュメモリを有するマ
イクロコンピュータ・システムのブロック図である。マ
イクロコンピュータ・システム10は、例えばインテル
80386マイクロプロセツサである中央処理装置(C
PU)12を有する。また、マイクロコンピュータ・シ
ステム10は「ローカル」バス34と「システム」′バ
ス32とを有する。良く理解されているように、マイク
ロコンピュータ・システムは内部の即ちローカルバスと
外部の即ちシステムバスとを有する。FIG. 4 is a block diagram of a microcomputer system based on an Intel 80386 microprocessor and having a cache memory controlled by a conventional Intel 82385 cache controller. Microcomputer system 10 includes a central processing unit (C), which is, for example, an Intel 80386 microprocessor.
PU) has 12. Microcomputer system 10 also has a "local" bus 34 and a "system" bus 32. As is well understood, microcomputer systems have an internal or local bus and an external or system bus.
前記ローカルバスは、前記マイクロプロセッサのピンの
位置に於てアドレス信号、データ信号、ステータス信号
及び制御信号からなる。前記システムバスは、前記ロー
カルバスの緩衝部分であり、ステータス及び制御ライン
並びにタイミングを取扱う方法に於て前記ローカルバス
と幾分具なる場合がある。The local bus consists of address signals, data signals, status signals and control signals at the pin locations of the microprocessor. The system bus is a buffer portion of the local bus and may differ somewhat from the local bus in the way it handles status and control lines and timing.
マイクロプロセッサ12は、ローカルバス34を介して
キャッシュメモリ14及び32ビツト・トランシーバ1
8のプロセッサ側入力に接続されたデータポートD31
−0を有する。「ポート」の語は、選択的に入力及び出
力の双方として機能し得るものを表すために使用される
。チップセット20は、32ビツト働トランシーバ18
のチップセット側データポートD31−0に接続された
トランシーバ側データボー1− D 31−0を有する
。Microprocessor 12 is connected to cache memory 14 and 32-bit transceiver 1 via local bus 34.
Data port D31 connected to the processor side input of 8
-0. The term "port" is used to refer to something that can optionally function as both an input and an output. The chipset 20 includes a 32-bit working transceiver 18.
The transceiver side data port D31-0 is connected to the chipset side data port D31-0 of the transceiver side data port D31-0.
パーソナルコンピュータ及びワークステーションの設計
に詳しい者であれば容易に理解されるように、「チップ
セット」は、インタラブド(割込み)処理、タイマ/カ
ウンタ/クロック、バスタイミング、バスマネージメン
ト(バス管理)、メモリマネージメント(メモリ管理)
及び場合によって外部デバイスとのインターフェイス等
の様々な周辺システム機能を実行するために必要な素子
を、少数の部品(約6個またはそれ以下)に集積する1
組の大型集積化(LSI)部品を意味する。このような
チップセットはセット物としてまたは個々の素子として
購入することができる。本発明に於て使用可能なチップ
セットの1例として、テキサス働インストラメンツ(T
exas Instruments)社が製造してい
るTACT 83000がある。As anyone familiar with the design of personal computers and workstations will readily understand, a "chipset" is a component that handles interconnected (interrupt) processing, timers/counters/clocks, bus timing, bus management, and memory. Management (memory management)
1 that integrates into a small number of components (approximately 6 or fewer) the elements necessary to perform various peripheral system functions, such as and possibly interfacing with external devices.
Refers to a set of large scale integrated (LSI) components. Such chipsets can be purchased as a set or as individual components. One example of a chipset that can be used in the present invention is a chipset manufactured by Texas Laboratories (T.
There is a TACT 83000 manufactured by Exas Instruments.
また、マイクロプロセッサ12は、ローカルバス34を
介して16ビツトのバッファ22の入力、32ビツトの
バッファ24の入力、及びキャッシュコントローラ30
のアドレスポートA31−2に接続されたアドレス出力
A31−2を有する。The microprocessor 12 also has inputs to a 16-bit buffer 22, a 32-bit buffer 24, and a cache controller 30 via a local bus 34.
It has an address output A31-2 connected to the address port A31-2 of the address port A31-2.
16ビツトのバッファ22の出力は、キャッシュRAM
14のアドレス入力CA13−0に接続されている。例
示すれば、キャッシュコントローラ30はインテル82
385キヤツシユコントローラである。32ビツトのバ
ッファ24の出力は、チップセット20のアドレス入力
A31−2に接続されている。マイクロプロセッサ12
は、更にローカルバス34を介して8ビツトφラツチ2
8の入力に接続されたバスコントロール出力26を有す
る。8ビツト・ラッチ28の出力はチップセット20の
バスコントロール入力に接続されている。The output of the 16-bit buffer 22 is stored in the cache RAM.
14 address input CA13-0. For example, the cache controller 30 is an Intel 82
385 cash controller. The output of the 32-bit buffer 24 is connected to the address input A31-2 of the chipset 20. microprocessor 12
is further connected to the 8-bit φ latch 2 via the local bus 34.
It has a bus control output 26 connected to 8 inputs. The output of 8-bit latch 28 is connected to the bus control input of chipset 20.
チップセット20は、システムバス32のシステムアド
レスライン5A31−0に接続されたシステムアドレス
出力5A31−0を有する。システムアドレスライン5
A31−0は、キャッシュコントローラ30のスヌープ
・アドレス入力5A31−〇にも接続されている。また
、チップセット20はシステムバス32のデータライン
5D31−〇に接続されたシステムデータポート5D3
1−〇を有する。DMAデバイス36のようなリモート
令バスマスクデバイス及び主メモリ38がシステムバス
32に接続されている。キャッシュコントローラ30は
更に、キャッシュメモリ14のコントロール入力OE/
WE/C8に接続されたキャッシュメモリコントロール
出力OE/WE/C3を有する。(キャッシュコントロ
ーラ30の入力及び出力の表現は、インテル82385
キヤツシユコントローラに関するデータシートに見つけ
ることができる。)
動作時には、キャッシュコントローラ30が3つの種類
のメモリアクセス、即ちプロセッサ読取り、プロセッサ
書込み及びリモート・バスマスク書込みに対して適当に
応答しなければならない。Chipset 20 has a system address output 5A31-0 connected to system address line 5A31-0 of system bus 32. System address line 5
A31-0 is also connected to snoop address input 5A31-0 of cache controller 30. The chipset 20 also has a system data port 5D3 connected to the data line 5D31-0 of the system bus 32.
It has 1-0. Connected to system bus 32 are remote command bus mask devices such as DMA device 36 and main memory 38 . The cache controller 30 further includes a control input OE/ of the cache memory 14.
It has a cache memory control output OE/WE/C3 connected to WE/C8. (The representation of the input and output of the cache controller 30 is based on Intel 82385
Can be found in datasheets regarding cash controllers. ) In operation, cache controller 30 must respond appropriately to three types of memory accesses: processor reads, processor writes, and remote busmask writes.
主メモリにアクセスするリモート・ノ(スマスタデバイ
スはディスクコントローラのようなりMAデバイスであ
る場合が多く、そのようなアクセスはDMA読取り及び
書込みの形で表すことができる。The remote master device that accesses main memory is often an MA device, such as a disk controller, and such accesses can be expressed in the form of DMA reads and writes.
プロセッサ書込み時には、データは常に、インテル82
385であるキャッシュコントローラ30がライトスル
ー・モードに於てのみ動作する際に、主メモリ38に書
込まれる。プロセッサ書込みが起こると、キャッシュコ
ントローラ30が、プロセッサ12によってローカルバ
ス34のアドレスラインA31−2に出た主メモリアド
レスを、そのタグRAM内に記憶された主メモリ記憶場
所と比較して、書込みヒツトが起っているかどうかを決
定する。その場合には、前記データが同様にキャッシュ
メモリ14内の適当な記憶場所に書き込まれる。When writing to a processor, data is always written to the Intel 82
385 is written to main memory 38 when cache controller 30 operates only in write-through mode. When a processor write occurs, cache controller 30 compares the main memory address presented by processor 12 on address line A 31-2 of local bus 34 with the main memory location stored in its tag RAM to identify the write hit. determine whether something is happening. In that case, the data is similarly written to the appropriate storage location within cache memory 14.
プロセッサ読取り時には、前記キャッシュコントローラ
が同様にデータを読み取るべき主メモリ記憶場所のアド
レスをそのタグRAMと比較して、読取りヒツトが生じ
ているかどうかを決定する。During a processor read, the cache controller similarly compares the address of the main memory location from which data is to be read with its tag RAM to determine if a read hit has occurred.
そうである場合には、キャッシュコントローラ30が主
メモリ38からではなくキャッシュメモリ14から読取
りを行わせる。読取りミスの際には、前記読取りが主メ
モリ38から行われ、かつアドレス指定された主メモリ
記憶場所の内容が同様にキャッシュメモリ14内の適当
な記憶場所にコピーされる。If so, cache controller 30 causes the read to occur from cache memory 14 rather than from main memory 38 . In the event of a read miss, the read is performed from main memory 38 and the contents of the addressed main memory location are similarly copied to the appropriate location within cache memory 14.
キャッシュコントローラ30がライトスルー・モードに
於てのみ動作するので、キャッシュメモリ14は常に主
メモリ38とコヒーレント性を有する。その結果、読取
りミスの際には、アドレス指定された前記主メモリ記憶
場所の前記内容が、キャッシュメモリ14の適当な記憶
場所に、このキャッシュメモリ14の記憶場所が対応す
る主メモリ記憶場所に記憶されているデータより最新の
データを有すること、即ち対応する前記主メモリとコヒ
ーレント性を有しないことを心配することなく、書込む
ことができる。Because cache controller 30 operates only in write-through mode, cache memory 14 is always coherent with main memory 38. As a result, in the event of a read miss, the contents of the addressed main memory location are stored in the appropriate memory location of the cache memory 14 in the main memory location to which this cache memory 14 memory location corresponds. It is possible to write data without worrying that the data is more recent than the current data, ie, that it is not coherent with the corresponding main memory.
ライトスルーΦモードに於ては、DMA読取り及び書込
みが主メモリからまたは主メモリに対して直接に行われ
る。DMA読取り時には、アドレス指定された前記主メ
モリ記憶場所の内容が読み取られる。キャッシュメモリ
14は影響されない状態のままであり、かつプロセッサ
12は読取りミスまたは2つのプロセッサ書込みが生じ
るまで、キャッシュメモリ14を用いて動作し続けるこ
とができる。In write-through Φ mode, DMA reads and writes are performed directly to or from main memory. During a DMA read, the contents of the addressed main memory location are read. Cache memory 14 remains unaffected and processor 12 can continue to operate with cache memory 14 until a read miss or two processor writes occur.
DMA書込み時には、同様に書込みが主メモリに対して
直接に行われる。データはキャッシュメモリに書き込ま
れない。この結果、コントローラ30は、アドレス指定
された前記主メモリ記憶場所が同様にキャッシュRAM
16に記憶されているかどうかを決定するために、DM
A書込みを監視しなければならない。これが所謂[スヌ
ーピングJ (sn□oping)である〇アドレス
指定された前記主メモリ記憶場所が同様にキャッシュメ
モリ14に記憶されていた場合には、このキャッシュメ
モリ14の記憶場所はもはや対応する主メモリ記憶場所
とコヒーレント性を持たないことになる。コントローラ
30がこれを判断し、かつこのキャッシュメモリ14の
記憶場所に関連するそのタグRAMの「有効」ビットを
クリアする。これはこのキャッシュメモリの記憶場所の
内容がもはや読取りのために使用できず、かつこのキャ
ッシュメモリ14の記憶場所に対応する主メモリの記憶
場所を読み取ろうとすれば読取りミスになるように書き
込むことが可能であることを示している。上述した「ス
ヌービング」方法はインテル82385によって使用さ
れる。別の実施例では、前記プロセッサを全DMAサイ
クルについて保持することができ、かつDAM書込みを
同様に書込みヒツト時にキャッシュメモリに書き込むこ
とができる。しかしながら、この方法では、キャッシュ
メモリを用いることによつて達成可能なスループットの
改善が更に低下する。During a DMA write, the write is also performed directly to main memory. Data is not written to cache memory. As a result, controller 30 determines that the addressed main memory memory location is also cache RAM.
16 to determine whether the DM
A writing must be monitored. This is the so-called snooping. If the addressed main memory memory location was also stored in the cache memory 14, this cache memory 14 memory location is no longer the corresponding main memory memory location. It will not have coherence with the memory location. Controller 30 determines this and clears the "valid" bit of the tag RAM associated with this cache memory 14 location. This can be written such that the contents of this cache memory location are no longer available for reading and an attempt to read the main memory location corresponding to this cache memory 14 location results in a read miss. It shows that it is possible. The "snubbing" method described above is used by the Intel 82385. In another embodiment, the processor can be held for an entire DMA cycle, and DAM writes can be written to cache memory on write hits as well. However, this method further reduces the throughput improvement achievable by using cache memory.
第5図には、本発明により構成されるキャッシュコント
ローラ44によって制御されるキャッシュメモリまたは
キャッシュRAM42を有するマイクロコンピュータ・
システム40が、簡略化されたブロック図で示されてい
る。また、マイクロコンピュータ・システム40は、例
えばインテル80386マイクロプロセツサであるCP
U48と、チップセット50と、32ビツト・トランシ
ーバ52とを有する。CPU48の1例としてインテル
80386を挙げたことが、本発明をインテル8038
6のような特定のマイクロプロセッサに限定するもので
ないことが明らかである。マイクロコンピュータ・シス
テム40は、プロセッサまたはローカルバス62とシス
テムバス56とを有する。ローカルバス62は、キャッ
シュコントローラ44及び32ビツトΦトランシーバ5
2が途中に設けられ、かつ拡張ローカルバス58として
チップセット50に駆動される。即ち、キャッシュコン
トローラ44はCPU48とシステムバス56との間に
介設されている。キャッシュコントローラ44がCPU
48及びシステムバス56からのコントロールライン及
びアドレスラインを中断しており、かつそれらを適当に
伝播している。データはキャッシュコントローラ44の
外側を32ビツトトランシーバ52の中を通過し、適当
にキャッシュRAM42の中へまたはそれから駆動され
る。FIG. 5 shows a microcomputer having a cache memory or cache RAM 42 controlled by a cache controller 44 constructed in accordance with the present invention.
System 40 is shown in a simplified block diagram. The microcomputer system 40 also includes a CP, which is an Intel 80386 microprocessor, for example.
It has a U48, a chipset 50, and a 32-bit transceiver 52. The fact that the Intel 80386 was cited as an example of the CPU 48 makes the present invention applicable to the Intel 8038.
It is clear that the present invention is not limited to a particular microprocessor such as 6. Microcomputer system 40 has a processor or local bus 62 and a system bus 56. The local bus 62 connects the cache controller 44 and the 32-bit Φ transceiver 5.
2 is provided on the way and is driven to the chipset 50 as an extended local bus 58. That is, the cache controller 44 is interposed between the CPU 48 and the system bus 56. Cache controller 44 is CPU
48 and system bus 56, and propagates them appropriately. Data passes outside of cache controller 44 into 32-bit transceiver 52 and is driven into or out of cache RAM 42 as appropriate.
CPU48は、ローカルバス62を介してそれぞれキャ
ッシュコントローラ44のCPU側アドレス入力A31
−2及びコントロール/ステータス入力C/Sに接続さ
れたアドレス出力A31−2及びコントロール/ステー
タス出力C/Sを有する。マイクロプロセッサ48は、
更にローカルバス62を介してキャッシュメモリ42の
データポートD31−0及び32ビツト・トランシーバ
52のCPU側データボートD31−0に接続されたデ
ータポートD31−0を有する。チップセット50が、
キャッシュコントローラ44のチップセット側アドレス
ポートA31−0に接続されたアドレスポートA31−
0と、32ビツト拳トランシーバ52のチップセット側
データポートに接続されたデータポートD31−0とを
有する。The CPU 48 receives the CPU side address input A31 of each cache controller 44 via the local bus 62.
-2 and control/status input C/S. The microprocessor 48 is
It further has a data port D31-0 connected to the data port D31-0 of the cache memory 42 and the CPU side data port D31-0 of the 32-bit transceiver 52 via the local bus 62. The chipset 50 is
Address port A31- connected to chipset side address port A31-0 of cache controller 44
0, and a data port D31-0 connected to the chipset side data port of the 32-bit transceiver 52.
また、チップセット50は、システムバス56に接続さ
れたデータポート5D31−0とアドレスポート5A3
1−0とを有する。主メモリ60が、DMAデバイス4
6と同様にシステムバス56に接続されている。The chipset 50 also has a data port 5D31-0 and an address port 5A3 connected to the system bus 56.
1-0. The main memory 60 is connected to the DMA device 4
6, it is connected to the system bus 56.
キャッシュコントローラ44は、キャッシュメモリ42
のキャッシュメモリφアドレス入力CA13−0に接続
されたキャッシュメモリ・アドレス出力CA13−0を
有する。また、キャッシュコントローラ44は、キャッ
シュメモリ42のコントロール入力OE/WE/C5に
それぞれ接続されたキャッシュメモリ・コントロール出
力OE/WE/C8を有する。更に、キャッシュコント
ローラ44は、チップセット50のコントロールポート
81に接続されたコントロールポート80と、32ビツ
ト舎トランシーバ52のコントロール入力83に接続さ
れたコントロール出力82とを有する。前記チップセッ
トは、前記システムバスに接続されたコントロール出力
を有する。The cache controller 44 is a cache memory 42
has a cache memory address output CA13-0 connected to a cache memory φ address input CA13-0 of the memory address input CA13-0. Cache controller 44 also has cache memory control outputs OE/WE/C8 connected to control inputs OE/WE/C5 of cache memory 42, respectively. Additionally, cache controller 44 has a control port 80 connected to control port 81 of chipset 50 and a control output 82 connected to a control input 83 of 32-bit transceiver 52. The chipset has a control output connected to the system bus.
第6図は、成る設計のためのキャッシュコントローラ4
4のCPU48、チップセット50及び32ビツトトラ
ンシーバ52に対する様々なコントロール入出力に関す
るハードウェア・インタフェースを詳細に示すブロック
図である。第6図の素子の各入出力を識別するために使
用されるネモニックコードが添付した表Aに記載されて
いる。FIG. 6 shows a cache controller 4 for a design consisting of
4 is a block diagram detailing the hardware interfaces for various control inputs and outputs to CPU 48, chipset 50, and 32-bit transceiver 52 of PCB 4. The mnemonic codes used to identify each input and output of the device of FIG. 6 are listed in the attached Table A.
第6′図に記載されない表Aのネモニックコードは、他
の型式のCPUについて使用する場合及び他のコンフィ
グレーションで使用する場合に、キャッシュコントロー
ラ44のピンについて使用可能である。ここに於いて、
ネモニックコードの後の「#」は、入力、出力または信
号が低論理レベルで真であることを表している。The mnemonic codes of Table A not listed in FIG. 6' can be used for pins of cache controller 44 when used with other types of CPUs and in other configurations. Here,
The "#" after the mnemonic code indicates that the input, output, or signal is true at a low logic level.
キャッシュコントローラ44は直接マツピング、2ウエ
イ・セットアソシアティビティ及び4ウエイ・セットア
ソシアテイビティを支援する。表Aに記載されるように
、キャッシュコントローラ44は4WAY入力と2W/
D#入力とを有する。Cache controller 44 supports direct mapping, two-way set associativity, and four-way set associativity. As described in Table A, the cache controller 44 has 4WAY input and 2W/
D# input.
4WAY入力が高い場合には、4ウエイ・セットアソシ
アティビティが選択される。4WAY入力が低い場合に
は、前記2W/D#入力がセットアソシアティビティを
制御し、かつ高い場合には2ウエイ・セットアソシアテ
ィビティを選択し、かつ低い場合には直接マツピングを
選択する。If the 4WAY input is high, 4way set associativity is selected. When the 4WAY input is low, the 2W/D# input controls set associativity, and when it is high, it selects 2-way set associativity, and when it is low, it selects direct mapping.
また、キャッシュコントローラ44が32に164に、
128K及び256にのサイズのキャッシュメモリを支
援する。キャッシュコントローラ44は、表Aに示され
るようにキャッシュコントローラ44が制御するキャッ
シュメモリ42のサイズを選択する入力MO−1を有す
る。In addition, the cache controller 44 is changed to 32 to 164,
Supports cache memory sizes up to 128K and 256K. Cache controller 44 has an input MO-1 that selects the size of cache memory 42 that cache controller 44 controls as shown in Table A.
キャッシュコントローラ44は、主メモリ60とキャッ
シュメモリ42との間に於けるコヒーレント性を確保し
なければならない。表Aに記載されるようにそのWTM
(ライトスルー・モード)及びWTO(ライトスルー
・オンリ)の状態によって応じてライトスルー・モード
またはコピーパック舎モードのいずれかによってそのよ
うに行われる。ライトスルーオンリーモードでは、キャ
ッシュコントローラ44が従来のインテル82385キ
ヤツシユコントローラと同様に動作するので、ライトス
ルーオンリ・モードについては詳細な説明を省略する。Cache controller 44 must ensure coherency between main memory 60 and cache memory 42. Its WTM as listed in Table A
It does so by either write-through mode or copy pack mode depending on the state of the WTO (write-through mode) and the WTO (write-through only). In the write-through only mode, the cache controller 44 operates in the same manner as the conventional Intel 82385 cache controller, so a detailed description of the write-through only mode will be omitted.
コピーパック舎モードでは、CPU48からのデータが
プロセッサの書込みミス時に主メモリ60にのみ書き込
まれ、かつプロセッサの書込みヒツト時にキャッシュメ
モリ42にのみ書き込まれる。キャッシュコントローラ
44は、読取りミス時及び選択したキャッシュメモリ4
2の記憶場所がその時点に於ける対応する主メモリの記
憶場所とコヒーレント性を持たない場合にのみ、キャッ
シュメモリ42のCPU48更新を主メモリ60に書き
込ませる。この結果、キャッシュコントローラ44は、
取り換られるべきキャッシュメモリ記憶場所の内容が、
これらのキャッシュメモリ記憶場所が新しいデータでオ
ーバライドされる前に主メモリ60内の対応する記憶場
所に確実に更新されていなければならない。これを実行
するために、各ブロックに関する前記タグの「ダーティ
jビットが、CPU48によって更新されているが主メ
モリ60にはコピーされてないような記憶場所を前記ブ
ロックが有するかどうかを表示する。In the copy pack mode, data from the CPU 48 is written only to the main memory 60 when there is a write miss by the processor, and only to the cache memory 42 when there is a write hit by the processor. The cache controller 44 controls the cache memory 4 at the time of a read miss and when the selected cache memory 4
A CPU 48 update of cache memory 42 is written to main memory 60 only if the storage location of No. 2 is not coherent with the corresponding main memory storage location at that time. As a result, the cache controller 44
The contents of the cache memory location to be replaced are
These cache memory locations must be updated to their corresponding locations in main memory 60 before being overridden with new data. To do this, the "dirty j" bit of the tag for each block indicates whether the block has a memory location that has been updated by CPU 48 but not copied to main memory 60.
CPU48によって行われるキャッシュメモリ42の記
憶場所への書込みは、同時に対応する主メモリ記憶場所
を更新しない。その代わりに、このバイトを有する前記
ブロックについて適当な「ダーティ」ビットが設定され
る。Writes to cache memory 42 locations performed by CPU 48 do not simultaneously update the corresponding main memory locations. Instead, the appropriate "dirty" bit is set for the block containing this byte.
書込みミスがCPU48の書込み時に生じる場合には、
キャッシュコントローラ44がキャッシュRAM42へ
の書込み許可信号WEを不可にし、かつCPU48から
のデータ及びアドレスをそれぞれ32ビツトトランシー
バ52及びその内部アドレスラッチに後書込みとして固
定する。これによってローカルバス62が自由になり、
それによってCPU48は前記書込みの完了を待つこと
なく次のサイクルを実行することができる。また、ロー
カルバス62は、後述するようにリモート・バスマスク
デバイスからのスヌープヒットに役立つことができるよ
うに、キャッシュコントローラ44に対して使用可能で
ある。第2の連続書込みミスの後、CPU48は、前記
ラッチが1つの後書込みのみを維持できるだけであるの
で、主メモリ60への先の書込みが完了するまでPRE
ADY#が偽であるとして待たせなければならない。If a writing error occurs during writing by the CPU 48,
Cache controller 44 disables write enable signal WE to cache RAM 42 and locks the data and address from CPU 48 into 32-bit transceiver 52 and its internal address latches, respectively, as post-write. This frees up the local bus 62,
This allows the CPU 48 to execute the next cycle without waiting for the completion of the write. Local bus 62 is also available to cache controller 44 so that it can serve snoop hits from remote busmask devices as described below. After a second consecutive write miss, the CPU 48 will hold the PRE until the previous write to main memory 60 is complete, since the latch can only sustain one post-write.
Assuming that ADY# is false, it must be made to wait.
CPU48の読取り時に読取りミスが生じた場合には、
キャッシュコントローラ44は先ずプロセッサREAD
Y#信号を偽とする。直接マツピングが使用されていな
い場合には、前記キャッシュコントローラが2つ(2ウ
エイ・セットアソシアティビティの場合)または4つ(
4ウエイ・セットアソシアティビティの場合)の使用可
能なブロックについて、そのLRUビット(第7図)を
検査し、主メモリ60から更新されるべきブロックを選
択する。選択された前記ブロックに関するタグRAM記
憶場所のダーティビットが設定された場合には、キャッ
シュコントローラ44が、いずれのサブブロックを主メ
モリ60にコピーしなければならないかを決定するため
に、前記選択ブロックのサブブロックについて前記タグ
RAM記憶場所の有効ビットを点検する。キャッシュコ
ントローラ44は、有効と表示された即ちその有効ビッ
トが設定されているサブブロックを主メモリ60にコピ
ーし、かつ次に前記選択ブロック内のサブブロックにつ
いて全ての有効ビットをクリアすると共に、前記選択ブ
ロックについてダーティビットをクリアする。If a reading error occurs when reading the CPU 48,
The cache controller 44 first
Make Y# signal false. If direct mapping is not used, the cache controllers may be two (for two-way set associativity) or four (for two-way set associativity).
4-way set associativity), examine its LRU bit (FIG. 7) and select from main memory 60 the block to be updated. If the dirty bit of the tag RAM memory location for the selected block is set, cache controller 44 uses the selected block to determine which sub-blocks should be copied to main memory 60. Check the valid bit of the tag RAM memory location for the sub-block. Cache controller 44 copies to main memory 60 a sub-block that is indicated as valid, ie, has its valid bit set, and then clears all valid bits for the sub-block within said selected block; Clear dirty bits for selected blocks.
この段階に於て、キャッシュコントローラ44は32ビ
ツトトランシーバ52を制御して、有効と表示された前
記サブブロックからのデータを拡張ローカルバス58に
駆動する。また、キャッシュコントローラ44は、チッ
プセット50からのEREADY#信号を監視し、かつ
前記ダーティブロックの全有効サブブロックが主メモリ
60に書き込まれるまで連続サブブロック会コピーパッ
ク・サイクルを開始する。At this stage, cache controller 44 controls 32-bit transceiver 52 to drive data from the subblocks marked valid onto extended local bus 58. Cache controller 44 also monitors the EREADY# signal from chipset 50 and initiates successive subblock copy-pack cycles until all valid subblocks of the dirty block have been written to main memory 60.
次に、キャッシュコントローラ44は、読取りサイクル
令アドレス及びコントロール信号が拡張ローカルバス5
8にあるとすることによって、CPU48からの読取り
要求を主メモリ60に送り、かつキャッシュメモリ42
の前記選択ブロックの適当なサブブロックに書き込まれ
るべき主メモリ60内の記憶場所([置換えサブブロッ
ク」と称される)から内容を読み取る。CPU48が前
記置換えサブブロック即ちアドレス指定された前記主メ
モリ60の記憶場所内の適当な語を読み取ることができ
るように、キャッシュコントローラ44は適当なバスサ
イクルのために前記EREADY■#信号を拡張ローカ
ルバス58からローカルバス2に送る。The cache controller 44 then receives the read cycle command address and control signals from the extended local bus 5.
8, the read request from the CPU 48 is sent to the main memory 60 and the cache memory 42
The content is read from a memory location in main memory 60 (referred to as a ``replacement subblock'') to be written to the appropriate subblock of the selected block. Cache controller 44 extends the EREADY# signal to the extended local for the appropriate bus cycle so that CPU 48 can read the appropriate word in the replacement subblock or addressed main memory 60 memory location. from bus 58 to local bus 2.
また、キャッシュコントローラ44は、その適当なタグ
RAM記憶場所のキャッシュメモリ42内で更新された
ばかりの前記サブブロックについて有効ビットをセット
する。また、キャッシュコントローラ44は、リモート
番バスマスクデバイスによるメモリのアクセスについて
コヒーレント性が確実に維持されるようにしなければな
らない。Cache controller 44 also sets the valid bit for the just-updated sub-block in cache memory 42 in its appropriate tag RAM storage location. Cache controller 44 must also ensure that memory accesses by remote bus mask devices remain coherent.
例えば、リモート番バスマスクデバイスは、キャッシュ
メモリ42に於て更新されているが主メモリ60に対し
て転送されていない主メモリ記憶場所を読み取ろうとす
ることができる。また、コヒーレント性がないことは、
キャッシュコントローラ44がバスマスタでないのに、
リモート・バスマスクデバイスが主メモリ60に書き込
むような結果になる。この場合に、書き込まれるアドレ
ス指定された主メモリ記憶場所がその時点でキャッシュ
メモリ42内に複写されている場合には、アドレス指定
された前記主メモリ記憶場所に対応するキャッシュメモ
リ42内のデータが古いものになる。For example, a remote bus mask device may attempt to read a main memory location that has been updated in cache memory 42 but not transferred to main memory 60. Also, the lack of coherence means that
Even though the cache controller 44 is not a bus master,
The result is that the remote busmask device writes to main memory 60. In this case, if the addressed main memory location to be written is currently being copied into the cache memory 42, then the data in the cache memory 42 corresponding to the addressed main memory location is becomes old.
コヒーレント性を維持するために、キャッシュコントロ
ーラ44は、リモート・バスマスタからのEHOLD信
号または要求についてチップセット50を介してシステ
ムバス56を監視することによって、リモート中バスマ
スクデバイスによる読取り及び書込みから生じる読取り
ヒツト及び書込みヒツトをスヌーブする。キャッシュコ
ントローラ44が後述するロック信号をCPU48から
受け取っていない場合には、EHLDA確認信号を前記
リモート・バスマスタに向けて発生し、かつ後述するよ
うにスヌープを開始する。To maintain coherency, cache controller 44 monitors system bus 56 via chipset 50 for EHOLD signals or requests from remote bus masters to monitor reads resulting from reads and writes by remote bus mask devices. Snob hits and write hits. If cache controller 44 has not received a lock signal from CPU 48, described below, it generates an EHLDA acknowledge signal to the remote bus master and begins snooping, as described below.
読み取るヒツトをスヌープ即ち監視する際に、キャッシ
ュコントローラ44は主メモリ読取りサイクルアドレス
を点検して、その対応する「ダーティ」ビットの組を有
するブロック内のキャッシュメモリ40内に記憶されて
いる主メモリ記憶場所からのデータをリモート畢バスマ
スクデバイスが読み取ろうとしているかどうかを確かめ
る。書込みヒツトについてスヌープする場合には、キャ
ッシュコントローラ44が、リモート・バスマスクデバ
イスによって書き込まれるべきアドレス指舊゛基れた主
メモリ記憶場所のアドレスを点検して、アドレス指定さ
れた前記主メモリ記憶場所のコピーがキャッシュメモリ
42に記憶されているかどうかを決定する。そうである
場合には、スヌープ書込みヒツトが起こる。In snooping for reads, cache controller 44 examines the main memory read cycle address and determines which main memory stores are stored in cache memory 40 in the block that has its corresponding set of "dirty" bits. Determine if the remote bus mask device is attempting to read data from the location. When snooping for a write hit, the cache controller 44 checks the address of the main memory location based on the address pointed to by the remote busmask device and determines the address of the addressed main memory location. is stored in cache memory 42. If so, a snoop write hit occurs.
スヌーブ読取りヒツトの場合には、キャッシュコントロ
ーラ44がキャッシュメモリ42から適当なデータを駆
動し、メモリ不可(MEMD I S)信号が真である
としてシステムバス56への主メモリの出力を不可にし
、かつ32ビツトトランシーバ52を介してキャッシュ
メモリ42の出力を駆動する。このデータは、拡張ロー
カルバス58に於けるEREADYI #を真としてそ
の時点に於ける読取りサイクルの終了が示されるまで、
チップセット50に於てイネーブル(enable)状
態に保持される。即ち、DMAデバイス46のようなあ
らゆるリモート畢バスマスクデバイスが、データが主メ
モリ60にあるかのように正しいデータを受け取ること
になる。In the event of a snob read hit, cache controller 44 drives the appropriate data from cache memory 42, disables main memory output to system bus 56 as the memory disable (MEMD IS) signal is true, and It drives the output of cache memory 42 through a 32-bit transceiver 52. This data is stored until EREADYI # on expansion local bus 58 is true, indicating the end of the current read cycle.
It is maintained in an enabled state in the chipset 50. That is, any remote bus mask device, such as DMA device 46, will receive the correct data as if the data were in main memory 60.
キャッシュコントローラ44がコピーバック・モードで
ある時にスヌープ書込みヒツトが生じた場合には、その
影響を受けたサブブロックがCPU48によって更新さ
れているが対応する主メモリ60の記憶場所にコピーバ
ックされていないデータを含む。これは、影響を受けた
前記サブブロックが属するブロックの「ダーティ」ビッ
トが設定されている場合に検出される。次に、キャッシ
ュコントローラ44は、書込みが主メモリ60に於て実
行されると同時にキャッシュメモリ42への書込みが実
行されることによって、影響を受けた前記サブブロック
を更新させる。If a snoop write hit occurs while cache controller 44 is in copyback mode, the affected subblock has been updated by CPU 48 but has not been copied back to the corresponding main memory 60 location. Contains data. This is detected if the "dirty" bit of the block to which the affected sub-block belongs is set. Cache controller 44 then updates the affected sub-blocks by executing writes to cache memory 42 at the same time as writes are executed in main memory 60 .
前記CPU48がシステムバス56に接続されたリモー
ト・バスマスクデバイスと非同期的に動作するので、前
記プロセッサがキャッシュメモリ42の外のローカルバ
ス62で読取り/書込み動作を行っている間にスヌープ
ヒットが生じる可能性がある。CPU48が読取りを行
っている間にスヌープヒットが生じた場合には、キャッ
シュコントローラ44がCPU48へのREADY#入
力に接続されたローカルバス62上のREADYO#ラ
インが偽であるとして、キャッシュメモリ42へのリモ
ート−バスマスクデバイスのアクセスが完了するまで、
追加のサイクルについて前記CPUの読取りを停止させ
る。スヌープ読取りヒツトでは、キャッシュメモリ44
からのデータが読み取られかつ32ビツト・トランシー
バ52を介して送られるのに対して、スヌープ書込みヒ
ツトでは、前記リモートデータが1サイクルでキャッシ
ュメモリ42内に書き込まれる。これによってCPU4
8に対する時間のペナルティが最小になる。Because the CPU 48 operates asynchronously with a remote bus mask device connected to the system bus 56, snoop hits occur while the processor is performing read/write operations on the local bus 62 outside of the cache memory 42. there is a possibility. If a snoop hit occurs while CPU 48 is performing a read, cache controller 44 asserts that the READYO# line on local bus 62 connected to the READY# input to CPU 48 is false and sends a message to cache memory 42. until the remote bus mask device access is completed.
Stops the CPU from reading for an additional cycle. In snoop read hit, cache memory 44
In a snoop write hit, the remote data is written into cache memory 42 in one cycle, while the data from the remote is read and sent through 32-bit transceiver 52. This allows CPU4
The time penalty for 8 is minimal.
CPU48の書込み動作またはアイドル時にスヌープヒ
ットが生じた場合には、キャッシュコントローラ44が
ローカルバス62上のHOLDラインを真として、CP
U48のHOLD入力を真と主張する。CPU48は、
キャッシュメモリ42に書き込むことによって、または
キャッシュコントローラ44の内部アドレスラッチ(第
7図)にアドレスを固定しかつ後で実行されるべき後書
込みのためにデータを32ビツトトランシーバ52に固
定することによって書込みが完了するまで、動作を続け
る。CPU48は書込み動作を完了した後、真とされる
そのHOLD入力によって維持され、かつキャッシュコ
ントローラ44に対してホールド確認信号HLDAを真
であるとする。If a snoop hit occurs during a write operation or idle time of the CPU 48, the cache controller 44 sets the HOLD line on the local bus 62 true and the CPU
Assert the HOLD input of U48 as true. The CPU 48 is
Write by writing to cache memory 42 or by pinning the address to the internal address latches of cache controller 44 (FIG. 7) and pinning the data to 32-bit transceiver 52 for later writes to be performed at a later time. The operation continues until the process is completed. After CPU 48 completes the write operation, it is maintained by its HOLD input being true and asserts hold confirmation signal HLDA to cache controller 44.
次に、前記リモート・バスマスタが即座にキャッシュメ
モリ42にアクセスし、かつそれに対する読取りまたは
書込みを進行する。この時、CPU48からのデータが
32ビツトトランシーバ52内に固定され、かつキャッ
シュコントローラ44がキャッシュメモリ42とチップ
セット50との間に於けるデータの伝送を指示して、3
2ビツトトランシーバ52の1部分と理解されるバイパ
スの中を通過させる。この場合、キャラシュスヌープ読
取りヒツトからのデータは、後から開始される後書込み
について前記ラッチには既にデータが入っているので、
固定することができない。この場合の前記プロセッサは
、DMA動作の終了まで維持されなければならない。D
MAデバイスからのEHOLDが偽になった後、EHL
DAが偽になり、前記プロセッサのHOLDが開放され
、かつ後書込みが必要であれば開始される。The remote bus master then immediately accesses cache memory 42 and proceeds to read or write to it. At this time, data from the CPU 48 is fixed in the 32-bit transceiver 52, and the cache controller 44 instructs data transmission between the cache memory 42 and the chipset 50.
It passes through a bypass, which is understood to be part of a two-bit transceiver 52. In this case, the data from the charash snoop read hit is stored in the latch for later writes, since the latch already contains data.
cannot be fixed. The processor in this case must be maintained until the end of the DMA operation. D
EHL after EHOLD from MA device becomes false
DA goes false, the processor's HOLD is released, and a post-write is initiated if necessary.
インテル80386のようなマイクロプロセッサは、キ
ャッシュメモリを有するシステムに於けるデッドロック
に結びつき得る所謂バス動作の「ロックシーケンス」を
有する。バス動作のロックシーケンスを実行する場合、
前記マイクロプロセッサは、バス動作のロックシーケン
スを完了するまでローカルバスの制御を放棄することを
拒否する。前記デッドロックは、バス動作のロックシー
ケンスの一部としてCPU48が書込みを行っている間
にスヌープヒットが生じた時に起こる。Microprocessors such as the Intel 80386 have so-called "lock sequences" of bus operations that can lead to deadlocks in systems with cache memory. When performing a lock sequence of bus operations,
The microprocessor refuses to relinquish control of the local bus until it completes a lock sequence of bus operations. The deadlock occurs when a snoop hit occurs while the CPU 48 is writing as part of a lock sequence of bus operations.
CPU48は、バス動作のロックシーケンスを実行して
いるので、そのHOLD入力がキャッシュコントローラ
44によって真であるとされていることに気付かず、そ
の結果、書込みを完了するまで維持しない。従って、キ
ャッシュコントローラ44はコントローラバス62を制
御することができず、従ってスヌープヒットの役に立た
ない。Because CPU 48 is executing a lock sequence of bus operations, it is unaware that its HOLD input is being asserted true by cache controller 44 and, as a result, does not hold until the write is complete. Therefore, cache controller 44 cannot control controller bus 62 and is therefore useless for snoop hits.
キャッシュコントローラ44は、バス動作のロックシー
ケンスが必ず読取りで開始されるので、キャッシュコン
トローラ44がシステムバス56のマスクでない時に読
取り動作についてCPU48を監視することによって、
このデッドロックを解決する。キャッシュコントローラ
44は、システムバス56がマスクでない場合に、その
EHLDA出力を真にしてEHOLD要求に応答して、
システムバス56のリモート番バスマスクデバイスへの
制御を放棄していることを示す。スヌーブヒットは、キ
ャッシュコントローラ44がEHLDA確認を与えてシ
ステムバス56の制御を放棄した場合にのみ生じる。こ
の結果、キャッシュコントローラ44がEHLDAを真
としかっCPU48によるロック読取り動作を検出した
場合には、キャッシュコントローラ44はCPU48へ
のREADY#入力を、DMAデバイス46がEHOL
D信号を偽とすることによってシステムバス56の制御
を放棄するまで偽とする。Cache controller 44 monitors CPU 48 for read operations when cache controller 44 is not masking system bus 56, since the lock sequence of bus operations always begins with a read.
Resolve this deadlock. Cache controller 44 responds to the EHOLD request with its EHLDA output true if system bus 56 is not masked;
Indicates relinquishing control to a remote bus mask device on system bus 56. A snob hit occurs only when cache controller 44 gives an EHLDA confirmation and relinquishes control of system bus 56. As a result, if the cache controller 44 determines EHLDA to be true and detects a lock read operation by the CPU 48, the cache controller 44 sends the READY# input to the CPU 48, and the DMA device 46
The signal D remains false until control of the system bus 56 is relinquished by making it false.
CPU48は、そのREADY#入力が読取り動作の完
了前にもはや偽とされなくなるまで待つので、これによ
ってローカルバス62はスヌープヒットを貢献するよう
にキャッシュコントローラ44によって使用されるよう
に解放され゛る。別の実施例では、キャッシュコントロ
ーラ44がEHLDAを与えずかつCPU48がそのL
OCK#出力を真としていることが検出された場合には
、キャッシュコントローラ44は、CPU48のLOC
K#出力が偽になるまでEHLDAを与えることを拒否
することによって、自分自身を事実上不可または機能抑
止状態にする。キャッシュコントローラ44がシステム
バス56のマスクになるので、リモート番バスマスクデ
バイスによるメモリのアクセスは全く起こらない。Since CPU 48 waits until its READY# input is no longer false before completing a read operation, this frees up local bus 62 for use by cache controller 44 to contribute snoop hits. In another embodiment, cache controller 44 does not provide EHLDA and CPU 48
If it is detected that the OCK# output is true, the cache controller 44 outputs the LOC of the CPU 48.
By refusing to provide EHLDA until the K# output goes false, it effectively disables or disables itself. Since the cache controller 44 serves as a mask for the system bus 56, no memory accesses by remote bus mask devices occur.
直接マツピング・モードの場合、キャッシュコントロー
ラ44がCPU48による主メモリへのアクセスに対し
て次のように応答する。キャッシュコントローラ44の
前記タグRAMは、キャッシュメモリ42内の各ブロッ
クについてタグを有する。前記タグは、上述したように
、主メモリ内の関連するブロックのアドレスを識別する
タグフィールドと、前記ブロック内のサブブロックのい
ずれかが更新されており、かつその対応する主メモリの
記憶場所とコヒーレント性を持たないかどうかを示すよ
うにセットされまたはクリアされるダーティ・ブロック
ビットと、前記関連サブブロツクが使用されているかま
たは使用することができることを示すようにセットされ
またはクリアされる前記ブロック内の各サブブロックに
関する有効ビットとを有するように構成される。(表B
は、キャッシュコントローラ44によって支援される様
々なキャッシュのサイズ及び選択されるマツピングにつ
いてサブブロック、ブロック、バンク及びページのサイ
ズ及び/またはカウントをまとめたものである。)
キャッシュコントローラ44は、ローカルバス62から
のA31−2アドレスラインを3つのフィールドに解読
する。即ち、(i)217(128K)ページのいずれ
がアクセスされていたかを決定する17ビツトのタグフ
ィールド、(it)キャッシュメモリ42の104個の
ブロックの中から1つのブロックを選択するための10
ビツトのブロックアドレス、及び(i i i)選択さ
れた前記ブロックに於ける8個のサブブロックのいずれ
かを選択するための3つの追加ビットである。次に、キ
ャッシュコントローラ44は、17ビツトの前記タグフ
ィールドをそのタグRAMに記憶されている前記タグの
17ビツトのタグフィールドと比較して、キャツシュヒ
ツト即ち読取りまたは書込みヒツトが生じているかどう
かを決定する。In direct mapping mode, cache controller 44 responds to main memory accesses by CPU 48 as follows. The tag RAM of cache controller 44 has a tag for each block within cache memory 42 . The tag includes a tag field identifying the address of the associated block in main memory, and any subblock within the block that has been updated and its corresponding main memory storage location, as described above. A dirty block bit that is set or cleared to indicate whether it has no coherency and a dirty block bit that is set or cleared to indicate that the associated subblock is used or can be used. A valid bit for each sub-block. (Table B
summarizes subblock, block, bank, and page sizes and/or counts for various cache sizes and selected mappings supported by cache controller 44. ) Cache controller 44 decodes the A31-2 address line from local bus 62 into three fields. (i) a 17-bit tag field to determine which of the 217 (128K) pages was being accessed; (it) a 10-bit tag field to select one of the 104 blocks of cache memory 42;
a block address of bits, and (i i i) three additional bits to select any of the eight sub-blocks in the selected block. Cache controller 44 then compares the 17-bit tag field with the 17-bit tag field of the tag stored in its tag RAM to determine whether a cache hit, read or write hit, has occurred. .
キャツシュヒツトの場合には、キャッシュコントローラ
44がキャッシュメモリ42を残りの13個のアドレス
ラインで駆動して、場合に応じてデータをキャッシュメ
モリ42に書き込みまたはキャッシュメモリ42からデ
ータを読み取る。In the case of a cash hit, cache controller 44 drives cache memory 42 with the remaining 13 address lines to write data to or read data from cache memory 42, as the case may be.
2ウエイ・セットアソシアティビティ争モードの場合に
は、キャッシュメモリ42が2つの同じサイズのバング
に分割される。主メモリに於ける各ページは、キャッシ
ュメモリ42の前記バンクと同じサイズである。前記タ
グRAMに於けるタグは、各キャッシュバンクに於ける
各ブロックと関連する。例示すれば、各タグフィールド
は218(256K)ページを識別する18ビツトの幅
を有する。タグRAMに記憶される前記タグの構造はそ
れに応じて変化する。ページの数は、ページ/バンクの
サイズが半分に縮小するので、直接マツピングと比較し
て2倍になる。各ブロックについての単一のダーティビ
ット及び8個のサブブロックについての8個の有効ビッ
トは、変更な(元のままである。In the two-way set associativity contention mode, cache memory 42 is divided into two equally sized bangs. Each page in main memory is the same size as the bank of cache memory 42. A tag in the tag RAM is associated with each block in each cache bank. To illustrate, each tag field has a width of 18 bits that identifies 218 (256K) pages. The structure of the tag stored in the tag RAM changes accordingly. The number of pages is doubled compared to direct mapping since the page/bank size is reduced by half. The single dirty bit for each block and the 8 valid bits for the 8 subblocks remain unchanged.
CPU48がメモリをアドレスしかつキャッシュコント
ローラ44が2ウエイ・セットアソシアティビティ・モ
ードにある場合、キャッシュコントローラ44はローカ
ルバス62からのA31−2アドレスラインを3つのフ
ィールドに解読する。When CPU 48 is addressing memory and cache controller 44 is in two-way set associativity mode, cache controller 44 decodes the A31-2 address line from local bus 62 into three fields.
即ち、(i)218ページのいずれがアクセスされてい
たかを決定する18ビツトのタグフィールド、(i i
)前記キャッシュバンク内の512個のブロックの中の
いずれかを選択する9ビツトのブロックアドレス、及び
(i i i)選択された前記ブロック内の8個のサブ
ブロック内のいずれかを選択する3つの追加ビットであ
る。この場合に、キャッシュコントローラ44は、18
ビツトの前記タグフィールドをタグRAMに記憶されて
いる前記タグの18ビツトのタグフィールドと比較して
、キャツシュヒツトが生じたかどうかを決定する。(i) an 18-bit tag field that determines which of the 218 pages was being accessed;
) a 9-bit block address that selects one of the 512 blocks in the cache bank; and (ii) a 9-bit block address that selects one of the 8 sub-blocks within the selected block. There are two additional bits. In this case, the cache controller 44 has 18
The tag field of bits is compared to the tag's 18-bit tag field stored in tag RAM to determine if a cash hit has occurred.
キャツシュヒツトの場合には、キャッシュコントローラ
44が、キャッシュメモリ42を残りの12個のアドレ
スラインで駆動して、場合に応じてキャッシュメモリ4
2にデータを書き込みまたはキャッシュメモリ42から
データを読み取る。In the case of a cash hit, cache controller 44 drives cache memory 42 with the remaining 12 address lines to
2 or read data from the cache memory 42.
4ウエイ・セットアソシアティビティΦモードの場合に
は、キャッシュメモリ42が4つの等しいサイズのバン
クに分割される。主メモリの各ページは、キャッシュメ
モリ42の前記各バンクと同じサイズを有する。タグR
AM内のタグは各キャッシュバンクの各ブロックと関連
する。例示すれば、各タグは、214(512K)ペー
ジを識別する19ビツトの幅を有する。同様に、タグR
AMに記憶されているタグの構造はそれに従って変化し
なければならない。ページの数は、ページ/バンクのサ
イズが4分の1に縮小するので、直接マツピングと比較
して4倍である。各ブロックについての1個のダーティ
ビット及び8個のサブブロックについての有効ビットは
、変化なく元のままである。In the 4-way set associativity Φ mode, cache memory 42 is divided into four equally sized banks. Each page of main memory has the same size as each bank of cache memory 42. Tag R
A tag in the AM is associated with each block of each cache bank. To illustrate, each tag has a width of 19 bits that identifies 214 (512K) pages. Similarly, tag R
The structure of the tags stored in the AM must change accordingly. The number of pages is four times as large compared to direct mapping since the page/bank size is reduced by a factor of four. One dirty bit for each block and valid bits for the eight sub-blocks remain unchanged.
CPU48がメモリをアドレスし、かつキャッシュコン
トローラ44が4ウエイ・セットアソシアティビティ・
モードにある場合、キャッシュコントローラ44はロー
カルバス62からのA31−2アドレスラインを3つの
フィールドに解読する。即ち、(i)219ページのい
ずれがアクセスされていたかを判断する19ビツトのタ
グフィールド、(ii)キュッシュバンク内の256個
のブロックの中のいずれかを選択する8ビツトのブロッ
クアドレス、及び(i i i)選択された前記ブロッ
ク内の8個のサブブロックのいずれかを選択する3つの
追加ビットである。この場合に、キャッシュコントロー
ラ44は、19ビツトの前記タグフィールドをタグRA
M内に記憶されている前記タグの19ビツトのタグフィ
ールドと比較して、キャツシュヒツトが生じたかどうか
を判断する。キャツシュヒツトの場合には、キャッシュ
コントローラ44がキャッシュメモリ42を残りの11
個のアドレス線で駆動して、場合に応じてデータをキャ
ッシュメモリ42に書き込みまたはデータをキャッシュ
メモリ42から読み取る。The CPU 48 addresses the memory, and the cache controller 44 performs four-way set associativity.
When in mode, cache controller 44 decodes the A31-2 address line from local bus 62 into three fields. (i) a 19-bit tag field that determines which of the 219 pages was being accessed; (ii) an 8-bit block address that selects any of the 256 blocks in the cache bank; i i i) 3 additional bits to select any of the 8 sub-blocks within the selected block. In this case, the cache controller 44 sets the 19-bit tag field to the tag RA.
The 19-bit tag field of the tag stored in M is compared to determine whether a cash hit has occurred. In the case of a cash hit, the cache controller 44 stores the remaining 11 cache memories 42.
address lines to write data to or read data from the cache memory 42, as the case may be.
第7図は、第5図のマイクロコンピュータ・システム4
0のキャッシュコントローラ44のブロック図である。Figure 7 shows the microcomputer system 4 in Figure 5.
2 is a block diagram of a cache controller 44 of No. 0. FIG.
キャッシュコントローラ44は、ローカルバス62のア
ドレスラインA31−A2に接続された入力を有するア
ドレス多重論理100と、拡張ローカルバス58のアド
レスライン5A31−8A2に接続された入力/出力と
、キャッシュメモリ42のアドレス入力CA15−CA
Oに接続されたキャッシュメモリ・アドレス出力CAI
5−CAOと、拡張ローカルバス58のアドレスライ
ン5AI−8AOに接続された入力とを有する。キャッ
シュメモリ44が256Kまでのサイズのキャッシュメ
モリを支援するために16個のキャッシュメモリ令アド
レスライン(CA15−CAO)を有することに注意す
べきである。Cache controller 44 includes address multiplexing logic 100 having inputs connected to address lines A31-A2 of local bus 62, inputs/outputs connected to address lines 5A31-8A2 of expansion local bus 58, and Address input CA15-CA
Cache memory address output CAI connected to O
5-CAO and inputs connected to address lines 5AI-8AO of expansion local bus 58. It should be noted that cache memory 44 has 16 cache memory command address lines (CA15-CAO) to support cache memory sizes up to 256K.
アドレス多重論理100は、タグRAM102.104
.106.108(タグRAM0−3)の入力と、タグ
コンパレータ110.112.114.116(タグC
OMPO−3)の入力と、有効ビットデコーダ118の
入力と、バイト選択論理120の入力と、LRU−RA
M124の入力に接続された出力とを有する。タグRA
M102.104.106.108は、それぞれタグコ
ンパレータ110.112.114.116の入力に接
続された出力を有する。タグコンパレータ110.11
2.114.116は、有効ビット・デコーダ118の
出力に接続された入力と、出力コントロール論理122
の入力に接続された出力と、タグデータ・ジェネレータ
130の入力に接続された出力とを有する。タグデータ
・ジェネレータ130は、タグRAM102.104.
106.108の入力とアドレス多重論理の入力とに接
続された出力を有する。LRU−RAMI24は、LR
U@RAM124の入力と出力コントロール論理122
の入力とに接続された出力を有するLRU論理128の
入力に接続された出力を有する。The address multiplexing logic 100 includes tag RAMs 102 and 104.
.. 106.108 (tag RAM0-3) input and tag comparator 110.112.114.116 (tag C
OMPO-3), the valid bit decoder 118 input, the byte selection logic 120 input, and the LRU-RA
and an output connected to the input of M124. Tag RA
M102.104.106.108 each have an output connected to an input of a tag comparator 110.112.114.116. Tag comparator 110.11
2.114.116 has an input connected to the output of valid bit decoder 118 and output control logic 122.
and an output connected to an input of tag data generator 130 . The tag data generator 130 includes tag RAMs 102.104.
106.108 and an output connected to the input of the address multiplexing logic. LRU-RAMI24 is LR
Input and output control logic 122 of U@RAM 124
LRU logic 128 has an output connected to an input of LRU logic 128 and has an output connected to an input of LRU logic 128 .
また、LRU論理128は、出力コントロール論理12
2のヒツトステータス出力に接続された入力を有する。The LRU logic 128 also includes the output control logic 12.
2 inputs connected to the 2 hit status outputs.
また、出力コントロール論理122のヒツトステータス
出力は、コントロール論理状態マシン132の入力とタ
グ読取り/書込みコントロール134の入力とに接続さ
れている。タグ読取り/書込みコントロール134は、
タグRAM102.104.106.108の入力に接
続された出力を有する。出力コントロール論理122は
、更にキャッシュメモリ42の対応する入力に接続され
たキャッシュメモリ出力許可出力C0ED−A#と、キ
ャッシュメモリ42の対応する入力に接続されたキャッ
シュメモリ書込み許可出力CWED−A#とを有する。The hit status output of output control logic 122 is also connected to an input of control logic state machine 132 and an input of tag read/write control 134. Tag read/write control 134 includes:
It has an output connected to an input of tag RAM 102.104.106.108. Output control logic 122 further includes a cache memory output enable output C0ED-A# connected to a corresponding input of cache memory 42 and a cache memory write enable output CWED-A# connected to a corresponding input of cache memory 42. has.
バイト選択論理120は、ローカルバス62のバイト許
可ラインBE3−0#に接続された入力と、拡張ローカ
ルバス58のバスサイズラインMC816#、MC33
2#に接続された入力とを有する。また、バイト選択論
理120は、キャッシュメモリ42の対応する入力に接
続されたキャッシュメモリ選択出力CC53−0#と、
拡張ローカルバス58のバイト許可ラインEBE3−0
#に接続された拡張ローカルバス・バイト許可出力EB
E3−0#とを有する。Byte selection logic 120 has inputs connected to byte enable lines BE3-0# of local bus 62 and bus size lines MC816#, MC33 of expanded local bus 58.
It has an input connected to 2#. The byte selection logic 120 also has a cache memory selection output CC53-0# connected to a corresponding input of the cache memory 42;
Byte enable line EBE3-0 of extended local bus 58
Extended local bus byte enable output EB connected to #
E3-0#.
コントロール論理132は、ローカルバス62のCPU
Bus−Op (ADS#、W/R#、D/C#、
及びM/IO#) 、LOCK#、HLDASMEMR
#、及びMEMW#の各ラインに接続された入力と、拡
張ローカルバス58のEHOLDライン及びEREAD
YI #ラインに接続された入力とを有する。コントロ
ール論理132は、ローカルバス62のPH0LD、R
EADYO#、及びWBSの各ラインに接続された出力
と、拡張ローカルバスのE−Bus Op (EAD
S#、EW/R#、E D/C#、及びWM/IO#)
、EHLDA及びERDYEN#の各ラインに接続され
た出力とを有する。また、コントロール論理132はア
ドレス多重論理100と、タグRAM102.104.
106.108と、タグコンパレータ110.112.
114.116と、有効ビット・デコーダ118と、バ
イト選択論理120と、出力コントロール論理122と
、LRU・RAMI24と、LRU論理128と、タグ
データ・ジェネレータ130と、タグ読取り/書込みコ
ントローラ134とに適当に接続されている。Control logic 132 is a CPU on local bus 62.
Bus-Op (ADS#, W/R#, D/C#,
and M/IO#), LOCK#, HLDASMEMR
#, and MEMW# lines, and the EHOLD and EREAD lines of the expansion local bus 58.
and an input connected to the YI# line. Control logic 132 includes PH0LD, R of local bus 62.
The outputs connected to EADYO# and WBS lines and the E-Bus Op (EAD
S#, EW/R#, ED/C#, and WM/IO#)
, EHLDA, and ERDYEN# lines. Control logic 132 also includes address multiplexing logic 100 and tag RAMs 102, 104 .
106.108 and tag comparators 110.112.
114.116, valid bit decoder 118, byte selection logic 120, output control logic 122, LRU RAMI 24, LRU logic 128, tag data generator 130, and tag read/write controller 134. It is connected to the.
(以下余白)
通常のCPU48による読取り及び書込みの際に、アド
レス多重論理100がアドレスA31−A15を取って
、それを適当にキャッシュメモリ・アドレス出力CA1
5−CAOと、タグRAN102.104.106.1
08(タグRAM0−3)と、タグコンパレータ110
.112.114.116と、有効ビット・デコーダ1
18と、バイト選択論理120と、及びLRU RA
MI24とに分散する。有効ビット・デコーダ118は
、次に入力としてタグコンパレータ110.112.1
14.116に供給されるアドレス多重論理100から
の前記アドレスを解読する。タグコンパレータ110.
112.114.116は、アドレス多重論理100か
らのアドレスラインA31−A13、タグRAM102
.104.106.108の出力、及び有効ビット・、
デコーダ118の出力を取って、キャツシュヒツトまた
はキャッシュミスが生じているかどうかを決定する。(Left below) During normal reading and writing by the CPU 48, the address multiplexing logic 100 takes addresses A31-A15 and outputs them to the cache memory address CA1 as appropriate.
5-CAO and tag RAN102.104.106.1
08 (tag RAM0-3) and tag comparator 110
.. 112.114.116 and valid bit decoder 1
18, byte selection logic 120, and LRU RA
Distributed to MI24. Valid bit decoder 118 then receives tag comparator 110.112.1 as input.
14. decodes said address from address multiplexing logic 100 provided to 116; Tag comparator 110.
112.114.116 are address lines A31-A13 from address multiplexing logic 100, tag RAM 102
.. 104.106.108 output and valid bits...
The output of decoder 118 is taken to determine if a cache hit or cache miss has occurred.
このヒツトまたはミスの決定が、次に出力コントロール
論理122へと送られる。次に、出力コントロール論理
122が、適当なキャッシュメモリ出力許可C0ED−
A#またはキャッシュメモリ書込み許可CWED−A#
を放出し、かつ更にコントロール論理132及びタグ読
取り/書込みコントローラ134にヒツトステータス出
力を出力する。This hit or miss determination is then sent to output control logic 122. Output control logic 122 then selects the appropriate cache memory output enable C0ED-
A# or cache memory write permission CWED-A#
and also outputs a hit status output to control logic 132 and tag read/write controller 134.
タグデータ・ジェネレータ130は、タグRAM102
.104.106.108のいずれかに書き込まれるべ
きデータを該タグRAMが更新されるべき時に決定する
。タグコンパレータ110.112.114.116は
、コントロール論理132の制御下で、アドレス多重論
理100からのアドレスをタグデータージェネレータ1
30に送る。このアドレスデータをタグデータ番ジェネ
レータ130が用いて、更新されるタグRAMIO2,
104,106,108に書き込まれるべきデータを決
定する。別言すれば、コントロール論理132によって
選択されるタグコンパレータ110.112.114.
116のいずれかを介して供給されるアドレス多重論理
100からのアドレスが、更新さレルタグRAM102
.104.1406.108に送られかつ書き込まれて
、適当なタグフィールドを更新する。The tag data generator 130 uses the tag RAM 102
.. 104.106.108 when the tag RAM is to be updated. Tag comparators 110, 112, 114, 116 convert addresses from address multiplexing logic 100 to tag data generator 1 under control of control logic 132.
Send it to 30. The tag data number generator 130 uses this address data to update the tag RAMIO2,
Determine the data to be written to 104, 106, 108. In other words, tag comparators 110.112.114 . selected by control logic 132 .
116 from the address multiplexing logic 100 is updated to the real tag RAM 102.
.. 104.1406.108 and written to update the appropriate tag fields.
LRU−RAM124は、256X6ビツトRAMであ
り、CPU48によって使用される最後のバンクのトラ
ックを対応する各キャッシュ記憶場所についてキャッシ
ュメモリ42内に維持するために使用される。LRU−
RAMI24は、3つの独特な2ビツトバンクIDの固
定シーケンスに対してフラッシュ(1’1ush )シ
ーケンスの際に初期化される。4ウエイ・セット連想キ
ャッシュに関する直送式LRU方法に於ては、4つの独
特な2ビツトバンクIDが記憶される。4番目のバンク
IDは常に他の3つのバンクIDから得られるので、3
個のバンクIDのみが記憶される。LRU-RAM 124 is a 256.times.6 bit RAM and is used to maintain a track of the last bank used by CPU 48 in cache memory 42 for each corresponding cache location. LRU-
RAMI 24 is initialized during a flush (1'1ush) sequence to a fixed sequence of three unique 2-bit bank IDs. In the direct LRU method for 4-way set associative caches, four unique 2-bit bank IDs are stored. The fourth bank ID is always derived from the other three bank IDs, so 3
Only one bank ID is stored.
LRU論理128が、2ビツトの幅及び3バンクIDの
深さを有するスタックの上部に最新に使用されたバンク
iDを配置する機能を実行する。LRU logic 128 performs the function of placing the most recently used bank ID at the top of a stack having a width of 2 bits and a depth of 3 bank IDs.
最新に使用された前記IDより」二にあった他の全バン
クIDが前記スタックに於て押し下げられる。All other bank IDs below the most recently used ID are pushed down in the stack.
前記スタックの深さが唯3つであり、かつバンクが4個
であるので、最も古くに使用されたバンクのバンクID
が、キャッシュコントローラ44が4ウエイ・セット連
想モードにある場合に、前記スタ・ンク上にある他の3
個のバンクIDから論理的に導き出される。2ウエイ晦
セツト連想モードでは、最も古くに使用されたバンク対
が、最新に使用されたバンクIDの逆最上位ビットによ
って表示される。直接マツピング・モードでは、LRU
出力が無視される。Since the depth of the stack is only 3 and the number of banks is 4, the bank ID of the oldest used bank is
However, when the cache controller 44 is in the 4-way set associative mode, the other 3 cache controllers on the stand
is logically derived from the bank ID. In the two-way set associative mode, the oldest used bank pair is indicated by the reverse most significant bits of the most recently used bank ID. In direct mapping mode, LRU
Output is ignored.
通常の動作時には、バイト選択論理120が適当なキャ
ッシュメモリチップ選択出力(C83−0#)または適
当な拡張ローカルバス・バイト許可出力(EBE3−0
#)を決定して、ローカルバス62のバイト許可ライン
(BH3−0#)に基づいて仮定する。スヌープ動作に
於ては、これが、スヌープヒットの場合に、更新される
べきキャッシュメモリ42内の適当なバイトを決定しな
ければならないという点で変化する。これは、アドレス
多重論理100を介してバイト選択論理120に供給さ
れる拡張ローカルバス58のアドレスライン5AI−8
AOによって決定される。次に、バイト選択論理120
が、キャッシュメモリ42内のいずれのバイトを更新す
るべきかを決定する。拡張ローカルバス58からのMC
816#及びMC832#入力が、8ビツト、16ビツ
トまたは32ビット動作のいずれが行われているかを決
定する。During normal operation, byte selection logic 120 outputs the appropriate cache memory chip select output (C83-0#) or the appropriate extended local bus byte enable output (EBE3-0#).
#) and make assumptions based on the byte grant lines (BH3-0#) of local bus 62. In a snoop operation, this changes in that in the case of a snoop hit, the appropriate byte in cache memory 42 to be updated must be determined. This corresponds to address line 5AI-8 of extended local bus 58 which is fed to byte selection logic 120 via address multiplexing logic 100.
Determined by AO. Next, byte selection logic 120
determines which bytes in cache memory 42 should be updated. MC from extended local bus 58
The 816# and MC832# inputs determine whether 8-bit, 16-bit or 32-bit operation is occurring.
コピーパックを実行しなければならない場合には、タグ
読取り/書込みコントローラが、コピーパックしなけれ
ばならないキャッシュメモリ42の記憶場所及び書き込
まれるべきタグRAMIO2,104,106,108
を決定する。例えば、コピーパック・モー′ドに於ける
書込みヒツトの場合には、前記ヒツトを受け取ったタグ
RAMIO2,104,106,108が決定され、か
つそのダーティビット・セットが必要になる。If a copy pack has to be performed, the tag read/write controller determines the cache memory 42 storage location that has to be copy packed and the tag RAMIO2, 104, 106, 108 to be written.
Determine. For example, in the case of a write hit in copy pack mode, the tag RAMIO2, 104, 106, 108 that received the hit is determined and its dirty bit set is required.
第8図乃至第10図は、プロセッサ状態マシン、キャッ
シュ動作状態マシン、及び拡張ローカルバス状態マシン
の状態図である。集合的に、これらは第7図のコントロ
ール論理132によって実行される制御機能を表してい
る。FIGS. 8-10 are state diagrams of the processor state machine, cache operations state machine, and extended local bus state machine. Collectively, these represent the control functions performed by control logic 132 of FIG.
第8図乃至第10図の状態図に於ては、遷移方程式の結
果が高論理レベルである場合に成る状態から別の状態へ
の遷移が生じる。例えば、第8図に関して、PiとPa
との間に於ける遷移は、篩oop信号にλ丁「yl−信
号を加えた結果が高論理レベルである場合に発生する。In the state diagrams of FIGS. 8-10, a transition occurs from one state to another when the result of the transition equation is a high logic level. For example, with respect to Figure 8, Pi and Pa
A transition between and occurs when the result of adding the oop signal to the yl- signal is a high logic level.
ここで、信号の上のバー表示(−)は、該信号が偽であ
るというこてはなく、該信号の「否」を表す。上記実施
例に於て、PiからPaへの遷移は、s noopが偽
(即ち、5noopが高であるように低であること)で
あり、かつADS#が真(即ち、ADS#が高であるよ
うに低であること)である場合に発生する。Here, the bar display (-) above the signal does not mean that the signal is false, but represents "no" of the signal. In the above example, a transition from Pi to Pa occurs when s noop is false (i.e., low as 5 noop is high) and ADS# is true (i.e., ADS# is high). occurs when the value is low (such that the value is low).
第8図のプロセッサバス状態マシンは、プロセッサバス
62の動作に追従して、該動作と拡張ローカルバス58
からのスヌーブ動作との間のインタロックを制御するキ
ャッシュコントローラ44のコントロール論理の部分に
関する状態図を表している。前記プロセッサバス状態マ
シンはRESET状態からPi(アイドル)状態に入り
、がっADS#が真(ADS#が高)と主張されるまで
前記Pi状態に留まる。同時に5noopが真(即ち、
スヌープ動作が進行中)であるならば、前記プロセッサ
バス状態マシンはPr状態に遷移する。Pr状態では、
プロセッサバス62の要求は、未定状態であるが、スヌ
ープ動作が進行中であることによって満足されてはいな
い。ADS#が真(λDS#が高)になる時に5noo
pが偽(snoopが高)であった場合には、前記バス
状態マシンがPa(プロセッサ・バスアクティブ)状態
に遷移する。The processor bus state machine of FIG.
4 depicts a state diagram for the portion of the control logic of the cache controller 44 that controls the interlock between snob operations from and to the cache controller 44. FIG. The processor bus state machine enters the Pi (idle) state from the RESET state and remains in the Pi state until ADS# is asserted true (ADS# high). At the same time, 5noop is true (i.e.
If a snoop operation is in progress), the processor bus state machine transitions to the Pr state. In the Pr state,
The request on processor bus 62 is in a pending state, but has not been satisfied due to a snoop operation in progress. 5noo when ADS# becomes true (λDS# is high)
If p is false (snoop high), the bus state machine transitions to the Pa (processor bus active) state.
前記プロセッサバス状態マシンがPr状態にあるならば
、5noopが偽(snoopが高)になってスヌープ
動作が完了したことを示すまで、その状態のままである
。そして、Pa状態に遷移する。Once the processor bus state machine is in the Pr state, it remains there until 5noop goes false (snoop high) indicating that the snoop operation is complete. Then, it transitions to the Pa state.
Pa状態の場合に、pready#が真(V下eady
#が高)になると、前記プロセッサバス状態マシンがP
i状態に遷移する。pready#が次のクロックサイ
クルに於て真にならない(即ち、pready#が高の
ままである)場合には、前記プロセッサバス状態マシン
は、pready#が真(pready#が高)になる
までP2状態に遷移しかつその状態を維持するが、その
時点に於て前記プロセッサバス状態マシンは前記Pi状
態に再び遷移する。前記P2状態は、プロセッサバス6
2の動作の第2の終了状態、即ち第1のクロックサイク
ルの終了と第2のクロックサイクルの時に生じる状態遷
移との間の状態である。(プロセッサバス62の動作に
は、通常2つのクロックサイクルが必要である。)
前記プロセッサバス状態マシンがPa状態にある場合に
は、スヌープ動作が開始されない。逆に、スヌープ動作
が行われている場合には、Pa状態に入らない。pre
ady#信号は、プロセッサバス状態マシンがPa状態
またはP2状態のいずれかでなければ、真(即ち、pr
eady#が高であるように低)になることができない
。In the Pa state, ready# is true (V lower ready
When # goes high), the processor bus state machine
Transition to i state. If ready# does not go true on the next clock cycle (i.e., ready# remains high), the processor bus state machine will run P2 until ready# becomes true (pready# is high). state and remain there, at which point the processor bus state machine transitions back to the Pi state. The P2 state is the processor bus 6
2, the state between the end of the first clock cycle and the state transition that occurs during the second clock cycle. (Processor bus 62 operations typically require two clock cycles.) If the processor bus state machine is in the Pa state, no snoop operation is initiated. Conversely, if a snoop operation is being performed, the Pa state is not entered. pre
The ady# signal is true (i.e., pr
cannot be low) as easy# is high.
第9図のキャッシュ動作状態マシンは、キャッシュRA
M42に空が無いかまたは空が有る間の状態を示してい
る。前記キャッシュ動作状態マシンは前記RESET状
態かまたは0Pf(フラッシュ)状態に入り、かつ1n
it done信号が真になるまでその状態である。The cache operational state machine of FIG.
This shows the state while M42 is empty or empty. The cache operation state machine enters the RESET state or the 0Pf (flush) state and
It remains in that state until the it done signal becomes true.
In1t d。In1t d.
ne倍信号、キャッシュコントローラ44内の全ての前
記キャッシュタグを順番に配列するために使用されるキ
ャッシュコントローラ44の8ビツト・アドレスカウン
タのキャリー出力から到来する。前記キャッシュ動作状
態マシンが前記OPf状態に入ると、クリヤされる各タ
グ内の全てのブロック有効ビット及びダーティビットに
よって書込み動作が強制される。これによって、キャッ
シュコントローラ44が空キャッシュ状態に初期化され
る。前記OPf状態にある間、全プロセッサバス62の
要求は、キャッシュ俸フィル(cachef’1ll)
b<全く実行されない場合を除いて、ミスとして取り
扱われる。The ne times signal comes from the carry output of the 8-bit address counter of cache controller 44, which is used to sequence all the cache tags in cache controller 44. When the cache operation state machine enters the OPf state, a write operation is forced with all block valid and dirty bits in each tag being cleared. As a result, the cache controller 44 is initialized to an empty cache state. While in the OPf state, all processor bus 62 requests are processed by cache fill (cachef'1ll).
Treated as a miss unless b<never executed.
キャッシュ動作状態マシンが0Pi(アイドル)状態に
ある場合には、タグ中ルックアップがプロセッサバス6
2の要求またはスヌープ要求ニより実行される。前記キ
ャッシュ動作状態マシンへの入力であるrdmiss信
号、dirty信号及びblock hit信号が、
第8図の前記プロセッサバス状態マシンのPa状態の間
のみ固定される。キャッシュ読取りミスを生じさせるキ
ャッシュ可能なCPU48メモリ読取り動作が生じるま
で、前記キャッシュ動作状態マシンは前記OPi状態の
ままである。キャッシュ読取りミスが生じると、キャッ
シュ動作状態マシンは、要求された主メモリ記憶場所を
キャッシュメモリ42内に書き込む前に要求された前記
主メモリ記憶場所が書き込まれるべきであるキヤ―ソシ
ュメモリ42のセグメントを主メモリ60に「コピーパ
ック」する必要があるかどうかに従って、前記OPr状
態またはOPw状態のいずれかに遷移する。When the cache operation state machine is in the 0Pi (idle) state, lookups during tags are performed on processor bus 6.
2 request or a snoop request. The inputs to the cache operation state machine, rdmiss signal, dirty signal and block hit signal, are:
It is fixed only during the Pa state of the processor bus state machine of FIG. The cache activity state machine remains in the OPi state until a cacheable CPU 48 memory read operation occurs that causes a cache read miss. When a cache read miss occurs, the cache operating state machine determines the segment of cache memory 42 to which the requested main memory location is to be written before writing the requested main memory location into cache memory 42. A transition is made to either the OPr state or the OPw state, depending on whether it is necessary to "copy pack" into main memory 60.
要求された前記主メモリ記憶場所を含む前記ブロックが
キャッシュメモリ42内にある場合には、前記キャッジ
i動作状態マシンは前記OPr状態に遷移する。この時
に、要求された前記主メモリ60の記憶場所を含むサブ
ブロック以外のこのブロック内のサブブロックがキャッ
シュメモリ42内に記憶される。また、前記キャッシュ
動作状態マシンは、選択された主メモリ60の記憶場所
が書き込まれるべきブロックが「ダーティ」でないとい
う条件で前記選択主メモリ60を含む前記ブロックが記
憶場所キャッシュメモリ42内に無い場合には、OPr
状態に遷移する。If the block containing the requested main memory storage location is in cache memory 42, the Catch i operational state machine transitions to the OPr state. At this time, subblocks within this block other than the subblock containing the requested main memory 60 storage location are stored in the cache memory 42. The cache operation state machine also determines whether the block containing the selected main memory 60 is not in the memory location cache memory 42 provided that the block to which the selected main memory 60 memory location is to be written is not "dirty." The OPr
Transition to state.
要求された前記主メモリ記憶場所を含む前記ブロックが
キャッシュメモリ42内に無い場合には、前記LRU−
RAMが使用されて、前記記憶場所について使用可能な
タグが最も古くに使用されたものであるかどうかを決定
する。次に、そのタグに関するダーティビットが点検さ
れる。該ダーティビットが偽(dirtyが高)である
場合は、前記キャッシュ動作状態マシンが前記OPr状
態に遷移する。逆に、ダーティビットが真(高)の場合
には、前記キャッシュ動作状態マシンが「コピーバック
」が生じるOPw状態に遷移する。If the block containing the requested main memory location is not in cache memory 42, then the LRU-
RAM is used to determine if the available tag for the memory location is the oldest used. Next, the dirty bits for that tag are checked. If the dirty bit is false (dirty is high), the cache operation state machine transitions to the OPr state. Conversely, if the dirty bit is true (high), the cache operation state machine transitions to the OPw state where a "copyback" occurs.
前記OPr状態では、要求された前記主メモリ60記憶
場所を含む新しいサブブロックが、最後の語の読込みが
CPU48の読込み要求を満足させるような順序で主メ
モリ60からキャッシュメモリ42内に読み込まれる。In the OPr state, new subblocks containing the requested main memory 60 storage locations are read from main memory 60 into cache memory 42 in such an order that the last word read satisfies the CPU 48 read request.
E reqが真とされ、かつ十分な拡張ローカルバス
58の読込みが行われてキャッシュコントローラ44内
にサブブロックカウンタが満足されるまで、真を維持す
る。E_req is taken true and remains true until enough extended local bus 58 reads have occurred to satisfy the subblock counter in cache controller 44.
その時点に於て、sb 1astが真(高)にセット
されて、前記キャッシュ動作状態マシンを前記OPi状
態に遷移させる。At that point, sb 1ast is set true (high) to transition the cache operational state machine to the OPi state.
前記OPw状態の場合には、キャッシュコントローラ4
4が、LRUタグのブロック内の全有効サブブロックの
主メモリ60へのメモリ書込みを実行する。各サブブロ
ックの有効ビットは、各サブブロックの最後の語が書き
込まれる時にクリヤされる。前記LRUブロックの全有
効ビットがクリヤされている場合に、blk val
idが偽(低)にセットされる。前記サブブロックが書
き込まれている場合には、sb 1astが真(高)
になる。この時点に於て、前記キャッシュ動作状態マシ
ンが前記OPr状態に遷移する。この遷移の間、sb
1astが偽(低)にリセットされる。In the case of the OPw state, the cache controller 4
4 performs a memory write to main memory 60 of all valid subblocks within the block of LRU tags. The valid bit of each subblock is cleared when the last word of each subblock is written. If all valid bits of the LRU block are cleared, blk val
id is set to false (low). If the subblock is being written, sb 1ast is true (high)
become. At this point, the cache operational state machine transitions to the OPr state. During this transition, sb
1ast is reset to false (low).
第10図の拡張ローカルバス状態マシンは、拡張ローカ
ルバス58の動作とCPU48との間に於けるインタロ
ックを制御するキャッシュコントローラ44のコントロ
ール論理の部分に関する状態図である。RESET状態
の際に、前記拡張ローカルバス状態マシンはEi(アイ
ドル)状態にされる。前記状態マシンは、E req
信号が真(高)であるとされるかまたはEHOLDが真
(高)であるとされ、かつキャッシュコントローラ44
が拡張ローカルバス48を解放し得る他の条件が存在す
るまで、E2状態に留まる。EHOLDがEi状態また
はE2状態のいずれかに於て真(高)である場合には、
CPU48のLOCK#が偽(fiが高)であり、WB
Sが偽(WBSが高)であって後書込みバッファが空で
あることを示し、かつ第9図の前記キャッシュ動作状態
マシンが前記OPr状態にない(即ち、新たなサブブロ
ックがその時点に於て主メモリ60からキャッシュメモ
リ42内にフェッチされていない)場合にのみ、Eh(
ホールド)状態に遷移される。これらの全条件が適合し
ない場合には、それらが適合しかつ拡張ローカルバス状
態マシンがEi状態またはE2状態のいずれかになるま
で、EHOLDは無視される。The enhanced local bus state machine of FIG. 10 is a state diagram for the portion of the control logic of the cache controller 44 that controls the interlock between the operation of the enhanced local bus 58 and the CPU 48. During the RESET state, the extended local bus state machine is placed in the Ei (idle) state. The state machine is
signal is true (high) or EHOLD is true (high) and cache controller 44
remains in the E2 state until other conditions exist that may cause the extended local bus 48 to be released. If EHOLD is true (high) in either the Ei state or the E2 state, then
LOCK# of CPU48 is false (fi is high) and WB
S is false (WBS high) to indicate that the after-write buffer is empty, and the cache operational state machine of FIG. 9 is not in the OPr state (i.e., a new subblock is currently Eh( has not been fetched from main memory 60 into cache memory 42 ).
hold) state. If all of these conditions are not met, EHOLD is ignored until they are met and the extended local bus state machine is in either the Ei or E2 state.
前記EHOLD条件がEi状態に於て真でない場合には
、前記拡張ローカルバス状態マシンは、それらが真であ
るかまたはE reqが真(高)であるまで、前記E
i状態に留まる。E reqが真でありかつ前記EH
OLD条件がそうでない場合には、前記拡張ローカルバ
ス状態マシンが前記E1状態に遷移する。前記EHOL
D条件がEreqに優先する点に注意する。If the EHOLD conditions are not true in the Ei state, the extended local bus state machine holds the EHOLD condition until they are true or E_req is true (high).
Stay in i-state. E_req is true and the EH
If the OLD condition is not, the extended local bus state machine transitions to the E1 state. Said EHOL
Note that the D condition takes precedence over Ereq.
E1状態である場合、拡張ローカルバス状態マシンは、
常に次のサイクルによってE2状態に遷移する。E2状
態である場合、前記拡張ローカルバス状態マシンは、E
READYI #が真(EREADYI #が高)であ
るまでE2状態に留まる。If in the E1 state, the extended local bus state machine:
It always transitions to E2 state by the next cycle. If in state E2, the extended local bus state machine
Stays in E2 state until READYI # is true (EREADYI # is high).
前記E2状態の時にEREADYI#が真(E、REA
DYI #が高)である場合、拡張ローカルバス状態マ
シンは次のEi、El、またはEhのいずれかの状態に
遷移する。前記EHOLD条件が真である場合には、前
記拡張ローカルバス状態マシンは他の入力に拘らず前記
Eh状態に遷移する。EREADYI# is true (E, REA
If DYI # is high), the extended local bus state machine transitions to the next state, either Ei, El, or Eh. If the EHOLD condition is true, the enhanced local bus state machine transitions to the Eh state regardless of other inputs.
前記EHOLD条件が真でない場合には、前記拡張ロー
カルバス状態マシンは、前記E reqが真(高)で
ある場合に前記E1状態へ、またはEreqが真でない
(E reqが高)である場合には前記Ei状態へ遷
移する。If the EHOLD condition is not true, the enhanced local bus state machine returns to the E1 state if the E_req is true (high) or to the E1 state if the E_req is not true (E_req is high). transitions to the Ei state.
前記拡張ローカルバス状態マシンが前記Eh状態にある
場合には、他の条件に拘らずEHOLDが真(高)であ
る限りそのまま維持される。EHOLDが偽に(EHO
LDが高に)なり、かつEreqが偽(E reqが
高)である場合、前記拡張ローカルバス状態マシンは前
記Ei状態に遷移する。EHOLDが偽(EHOLDが
高)になりかつE reqが真(高)であるならば、
前記拡張ローカルバス状態マシンは前記E1状態に遷移
する。If the extended local bus state machine is in the Eh state, it remains there as long as EHOLD is true, regardless of other conditions. EHOLD becomes false (EHO
If LD goes high) and Ereq is false (E_req is high), the enhanced local bus state machine transitions to the Ei state. If EHOLD becomes false (EHOLD high) and E_req is true (high), then
The extended local bus state machine transitions to the E1 state.
前記拡張ローカルバス状態マシンは、拡張ローカルバス
58の出力であるEHLDA信号を直接制御して、前記
バスを制御していることをリモート・バスマスクデバイ
スに示す。前記Eh状態が、キャッシュコントローラ4
4によって駆動されるEHLDA以外の全拡張ローカル
バス制御信号を無効にしく非駆動状態にし)、かつ前記
EHLDA信号を真(高)とする。E1状態によって、
EADS#出力が前記状態の持続時間の間真(低)であ
るとされ、拡張ローカルバス58上のデバイスに対して
拡張ローカルバス58の動作開始を表示する。前記E2
状態によって、EREADY1#信号を用いてCPU4
8の出力となるべき前記pready#信号を形成でき
るが、これは、外部バス56の動作からのデータがCP
U48に送られなければならない場合、または外部バス
56の動作が完了するまでCPU48を進行させてはな
らないような外部即ちシステムバス56の動作で終了す
る特定の動作の間だけである。The extended local bus state machine directly controls the EHLDA signal, which is the output of extended local bus 58, to indicate to remote bus mask devices that it is in control of the bus. The Eh state is the cache controller 4
4 (all extended local bus control signals other than EHLDA driven by EHLDA are disabled and undriven), and the EHLDA signal is made true (high). Depending on the E1 state,
The EADS# output is assumed to be true (low) for the duration of the state, indicating to devices on the expansion local bus 58 that expansion local bus 58 is beginning to operate. Said E2
Depending on the state, the CPU4 uses the EREADY1# signal.
The ready# signal to be the output of
It is only during certain operations that terminate with an external or system bus 56 operation that must be sent to the U 48 or the CPU 48 must not proceed until the external bus 56 operation is complete.
jsnoopJ信号、rpready#J信号、信号、
rblock hitJ信号、「E req」信号
及び[sb 1astJ信号は、全てキャッシュコント
ローラ44の内部生成信号である。jsnoopJ signal, rpready#J signal, signal,
The rblock hitJ signal, the “E req” signal, and the [sb 1astJ signal are all internally generated signals of the cache controller 44.
以上、本発明について特定の実施例を参照しつつ詳細に
説明したが、本発明はその技術的範囲内に於て上述した
実施例に様々な変形・変更を加えて実施することができ
る。Although the present invention has been described above in detail with reference to specific embodiments, the present invention can be implemented by adding various modifications and changes to the above-described embodiments within its technical scope.
(以下余白) 表^説明(Margin below) Table ^ Description
第1図は、直接マツピングされた32KBキヤツシユメ
モリに関するキャッシュ構造を示すブロック図である。
第2図は、2ウエイ拳セツトアソシアテイビテイを有す
る32KBキヤツシユメモリに関するキャッシュ構造を
示すブロック図である。
第3図は、4ウエイ・セットアソシアティビティを有す
る32KBキヤツシユメモリに関するキャッシュ構造を
示すブロック図である。
第4図は、従来技術のインテル82385キヤツシユコ
ントローラを使用するキャッシュメモリを有する従来の
マイクロコンピュータ・システムを示すブロック図であ
る。
第5図は、本発明のキャッシュコントローラを使用する
キャッシュメモリを有するマイクロコンピュータ・シス
テムのブロック図である。
第6図は、第5図のキャッシュコントローラへの様々な
制御入力及び出力に関するハードウェアインタフェース
を示すブロック図である。
第7図は、第7a図と第7b図とからなり、本発明によ
り構成されるキャッシュコントローラを詳細に示すブロ
ック図である。
第8図乃至第10図は、それぞれ第7図のキャッシュコ
ントローラの動作を示す状態図である。
10・・・マイクロコンピュータ・システム、12・・
・マイクロプロセッサ、14・・・キャッシュメモリ、
18・・・32ビツト・トランシーバ、20・・・チッ
プセット、22・・・16ビツト・バッファ、24・・
・32ビツト・バッファ、26・・・バスコントロール
出力、28・・・8ビツトeラツチ、30・・・キャッ
シュコントローラ、32・・・システムバス、34・・
・ローカルバス、36・・・DMAデバイス、38・・
・主メモリ、40・・・マイクロコンピュータΦシステ
ム、42・・・キャッシュRAM、44・・・キャッシ
ュコントローラ、46・・・DMAデバイス、48・・
・CPU。FIG. 1 is a block diagram illustrating the cache structure for a directly mapped 32KB cache memory. FIG. 2 is a block diagram showing the cache structure for a 32 KB cache memory with two-way set associativity. FIG. 3 is a block diagram illustrating the cache structure for a 32 KB cache memory with 4-way set associativity. FIG. 4 is a block diagram illustrating a conventional microcomputer system having a cache memory using a prior art Intel 82385 cache controller. FIG. 5 is a block diagram of a microcomputer system having a cache memory using the cache controller of the present invention. FIG. 6 is a block diagram illustrating the hardware interfaces for various control inputs and outputs to the cache controller of FIG. 5. FIG. 7 is a block diagram consisting of FIG. 7a and FIG. 7b showing details of a cache controller constructed according to the present invention. 8 to 10 are state diagrams showing the operation of the cache controller of FIG. 7, respectively. 10...Microcomputer system, 12...
・Microprocessor, 14...cache memory,
18...32-bit transceiver, 20...chip set, 22...16-bit buffer, 24...
32-bit buffer, 26... Bus control output, 28... 8-bit e-latch, 30... Cache controller, 32... System bus, 34...
・Local bus, 36...DMA device, 38...
- Main memory, 40... Microcomputer Φ system, 42... Cache RAM, 44... Cache controller, 46... DMA device, 48...
・CPU.
Claims (3)
バスとを有し、ロック書込み命令シーケンスを実行し得
るプロセッサと、 データを記憶するための複数の場所と、前記プロセッサ
・データバスに接続されたキャッシュ・データバスとを
有するキャッシュメモリと、システム・アドレスライン
とシステム・データラインとを有するシステムバスと、 データを記憶するための複数の場所を有し、かつ前記シ
ステム・アドレスライン及び前記システム・データライ
ンに接続された主メモリと、前記システム・アドレスラ
イン及び前記システム・データラインに接続された周辺
デバイスと、前記周辺デバイスが前記システムバスを制
御できるようにするために前記プロセッサ・アドレスバ
ス、プロセッサ・データバス、キャッシュメモリ、シス
テム・アドレスライン及びシステム・データラインに接
続され、かつ前記周辺デバイスが前記システムバスを制
御している場合に、ロック書込み命令の開始前に前記プ
ロセッサの動作を停止させる制御手段とを備え、 前記プロセッサがロック命令シーケンスを開始すると、
前記制御手段が前記周辺デバイスを前記システムバスを
制御できなくすることを特徴とするマイクロコンピュー
タ・システム。(1) a processor having a processor address bus and a processor data bus and capable of executing locked write instruction sequences; and a plurality of locations for storing data and a cache connected to the processor data bus. a cache memory having a data bus; a system bus having a system address line and a system data line; and a system bus having a plurality of locations for storing data, and having a plurality of locations for storing data; a main memory connected to the system address line and the system data line; a peripheral device connected to the system address line and the system data line; A control for halting operation of the processor prior to initiation of a lock write instruction if the peripheral device is connected to a data bus, cache memory, system address line, and system data line, and the peripheral device is controlling the system bus. and means, when the processor initiates a lock instruction sequence,
A microcomputer system, wherein the control means disables the peripheral device from controlling the system bus.
全ロック命令シーケンスを開始し、かつロック命令を実
行する際に前記制御手段にロック命令信号を通信し、前
記プロセッサが前記プロセッサ・データバスに於ける有
効データの存在を示す準備完了信号を受信するための準
備完了入力ラインを有し、前記周辺デバイスが前記シス
テムバスを制御している際に前記プロセッサがロック読
取り命令を開始した時に、前記周辺デバイスが前記シス
テムバスの制御を止めるまで前記制御手段が前記準備完
了入力ラインを偽であるとして前記プロセッサを停止さ
せることを特徴とする請求項1に記載のマイクロコンピ
ュータ・システム。(2) said microprocessor initiates a full lock instruction sequence with a lock read instruction and communicates a lock instruction signal to said control means upon executing a lock instruction; a ready input line for receiving a ready signal indicating the presence of valid data, the peripheral device controlling the system bus when the processor initiates a read lock instruction; 2. The microcomputer system of claim 1, wherein said control means halts said processor by assuming said ready input line to be false until said controller ceases controlling said system bus.
通信するために前記制御手段に接続されたEHOLD信
号線を有し、前記制御手段が、前記プロセッサがロック
命令を実行していない時に前記制御手段が前記周辺デバ
イスにEHLDA信号を通信できるようにするために、
前記周辺デバイスに接続されたEHLDA信号線を有し
、前記周辺デバイスが、前記EHLDA信号を受け取る
ことによって前記周辺デバイスが前記システムバスを制
御することが可能になり、前記プロセッサがロック命令
を実行する時には前記制御手段が前記EHLDA信号を
真にさせないようになっていることを特徴とする請求項
2に記載のマイクロコンピュータ・システム。(3) the peripheral device has an EHOLD signal line connected to the control means for communicating a request signal to the control means; for enabling the control means to communicate EHLDA signals to said peripheral device;
an EHLDA signal line connected to the peripheral device, the peripheral device receiving the EHLDA signal allowing the peripheral device to control the system bus, and causing the processor to execute a lock instruction. 3. The microcomputer system of claim 2, wherein said control means prevents said EHLDA signal from becoming true at times.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US43493189A | 1989-11-13 | 1989-11-13 | |
| US434,931 | 1989-11-13 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03172947A true JPH03172947A (en) | 1991-07-26 |
Family
ID=23726294
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2306957A Pending JPH03172947A (en) | 1989-11-13 | 1990-11-13 | Microcomputer system |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP0428149A3 (en) |
| JP (1) | JPH03172947A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8366295B2 (en) | 2005-12-16 | 2013-02-05 | Nichia Corporation | Light emitting device |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0463967A3 (en) * | 1990-06-29 | 1993-02-24 | Digital Equipment Corporation | Cache set selection for high-performance processor |
| IT1241318B (en) * | 1990-11-19 | 1994-01-10 | Olivetti & Co Spa | MEMORY ADDRESSING DEVICE |
| US5485594A (en) * | 1992-07-17 | 1996-01-16 | International Business Machines Corporation | Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system |
| EP0597729A1 (en) * | 1992-11-13 | 1994-05-18 | Cyrix Corporation | Method of allowing write-back caching in a write-through environment |
| US5544342A (en) * | 1993-06-30 | 1996-08-06 | International Business Machines Corporation | System and method for prefetching information in a processing system |
| US5557769A (en) * | 1994-06-17 | 1996-09-17 | Advanced Micro Devices | Mechanism and protocol for maintaining cache coherency within an integrated processor |
| US5778431A (en) * | 1995-12-19 | 1998-07-07 | Advanced Micro Devices, Inc. | System and apparatus for partially flushing cache memory |
| US6289420B1 (en) | 1999-05-06 | 2001-09-11 | Sun Microsystems, Inc. | System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem |
| GB2516092A (en) * | 2013-07-11 | 2015-01-14 | Ibm | Method and system for implementing a bit array in a cache line |
| CN109101439B (en) * | 2017-06-21 | 2024-01-09 | 深圳市中兴微电子技术有限公司 | Message processing method and device |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3782335T2 (en) * | 1987-04-22 | 1993-05-06 | Ibm | MEMORY CONTROL SYSTEM. |
-
1990
- 1990-11-13 JP JP2306957A patent/JPH03172947A/en active Pending
- 1990-11-13 EP EP19900121743 patent/EP0428149A3/en not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8366295B2 (en) | 2005-12-16 | 2013-02-05 | Nichia Corporation | Light emitting device |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0428149A2 (en) | 1991-05-22 |
| EP0428149A3 (en) | 1992-07-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3067112B2 (en) | How to reload lazy push into copy back data cache | |
| US5157774A (en) | System for fast selection of non-cacheable address ranges using programmed array logic | |
| US6366984B1 (en) | Write combining buffer that supports snoop request | |
| US5715428A (en) | Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system | |
| US5091850A (en) | System for fast selection of non-cacheable address ranges using programmed array logic | |
| US4959777A (en) | Write-shared cache circuit for multiprocessor system | |
| US5557769A (en) | Mechanism and protocol for maintaining cache coherency within an integrated processor | |
| US5903911A (en) | Cache-based computer system employing memory control circuit and method for write allocation and data prefetch | |
| US5623633A (en) | Cache-based computer system employing a snoop control circuit with write-back suppression | |
| US5426765A (en) | Multiprocessor cache abitration | |
| US5802559A (en) | Mechanism for writing back selected doublewords of cached dirty data in an integrated processor | |
| JP2554449B2 (en) | Data processing system having cache memory | |
| US6202125B1 (en) | Processor-cache protocol using simple commands to implement a range of cache configurations | |
| US6321296B1 (en) | SDRAM L3 cache using speculative loads with command aborts to lower latency | |
| US20020144064A1 (en) | Controlling cache memory in external chipset using processor | |
| US5778431A (en) | System and apparatus for partially flushing cache memory | |
| US6219745B1 (en) | System and method for entering a stream read buffer mode to store non-cacheable or block data | |
| JPH09259036A (en) | Write-back cache and method for maintaining consistency in write-back cache | |
| US6178481B1 (en) | Microprocessor circuits and systems with life spanned storage circuit for storing non-cacheable data | |
| JPH0997214A (en) | Information-processing system inclusive of address conversion for auxiliary processor | |
| US5829027A (en) | Removable processor board having first, second and third level cache system for use in a multiprocessor computer system | |
| JPH03172947A (en) | Microcomputer system | |
| US5717894A (en) | Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system | |
| JP2000501539A (en) | Multi-port cache memory with address conflict detection | |
| EP0309995B1 (en) | System for fast selection of non-cacheable address ranges using programmed array logic |