JPH0797352B2 - コンピュータ・システム及び入出力コントローラ - Google Patents
コンピュータ・システム及び入出力コントローラInfo
- Publication number
- JPH0797352B2 JPH0797352B2 JP4175398A JP17539892A JPH0797352B2 JP H0797352 B2 JPH0797352 B2 JP H0797352B2 JP 4175398 A JP4175398 A JP 4175398A JP 17539892 A JP17539892 A JP 17539892A JP H0797352 B2 JPH0797352 B2 JP H0797352B2
- Authority
- JP
- Japan
- Prior art keywords
- main memory
- resource
- cache
- access
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
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)
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)
Description
【0001】
【産業上の利用分野】この発明はキャッシュ・メモリを
具備するコンピュータ・システムに関し、とくに主メモ
リとキャッシュ・メモリとのデータの一致性を効率よく
保つようにしたものである。
具備するコンピュータ・システムに関し、とくに主メモ
リとキャッシュ・メモリとのデータの一致性を効率よく
保つようにしたものである。
【0002】
【従来の技術】近年、マイクロプロセッサの速度向上に
伴い、主メモリとの速度ギャップを埋めるため、キャッ
シュ・メモリの採用が一般化している。キャッシュ・メ
モリはマイクロプロセッサ内部に設けられたり(オンチ
ップ・キャッシュ)、マイクロプロセッサとシステムバ
スの間に置かれたりする(オフチップ・キャッシュ)。
伴い、主メモリとの速度ギャップを埋めるため、キャッ
シュ・メモリの採用が一般化している。キャッシュ・メ
モリはマイクロプロセッサ内部に設けられたり(オンチ
ップ・キャッシュ)、マイクロプロセッサとシステムバ
スの間に置かれたりする(オフチップ・キャッシュ)。
【0003】キャッシュ・メモリを設けた場合、一番の
問題となるのが、キャッシュ・コンシステンシ(キャッ
シュの一致性)である。これを簡単に説明すると、キャ
ッシュ・メモリの中に含まれるデータが常に最新のもの
であるかどうかという問題である。外部から新しいデー
タが主記憶に書き込まれたときに、キャッシュ・メモリ
中に古いデータが残存していると、マイクロプロセッサ
はその古いデータを読んでしまい、正常な動作ができな
くなる。図1のような標準的なパーソナル・コンピュー
タの構成を考えてみる。プロセッサ1はキャッシュ・メ
モリ2を通してプロセッサ・バス3に接続されている。
そのプロセッサ・バス3には主メモリ4、DMAコント
ローラ5、種々の入出力装置(I/Oデバイス6)が同
じように接続されている。なお7は入出力コントローラ
であり、8はI/Oバスである。
問題となるのが、キャッシュ・コンシステンシ(キャッ
シュの一致性)である。これを簡単に説明すると、キャ
ッシュ・メモリの中に含まれるデータが常に最新のもの
であるかどうかという問題である。外部から新しいデー
タが主記憶に書き込まれたときに、キャッシュ・メモリ
中に古いデータが残存していると、マイクロプロセッサ
はその古いデータを読んでしまい、正常な動作ができな
くなる。図1のような標準的なパーソナル・コンピュー
タの構成を考えてみる。プロセッサ1はキャッシュ・メ
モリ2を通してプロセッサ・バス3に接続されている。
そのプロセッサ・バス3には主メモリ4、DMAコント
ローラ5、種々の入出力装置(I/Oデバイス6)が同
じように接続されている。なお7は入出力コントローラ
であり、8はI/Oバスである。
【0004】入出力コントローラ7は主メモリ4のメモ
リ制御機能と、プロセッサ・バス3とI/Oバス8との
間のバス・インターフェース機能とを実現するものであ
る。メモリ制御用には、入出力コントローラ7と主メモ
リ4との間で、Read/Write, Addres
s, data, Byte−enable, Acc
ess−strobe(RAS/CAS)等がやり取り
され、また入出力コントローラ7と入出力装置6との間
でRead/Write, Address,dat
a, Byte−enable, Access−st
robe, Ready等がやり取りされる。またバス
・インターフェース機能は、プロセッサ・バス3と入出
力バス8との信号線の相違を吸収するものである。
リ制御機能と、プロセッサ・バス3とI/Oバス8との
間のバス・インターフェース機能とを実現するものであ
る。メモリ制御用には、入出力コントローラ7と主メモ
リ4との間で、Read/Write, Addres
s, data, Byte−enable, Acc
ess−strobe(RAS/CAS)等がやり取り
され、また入出力コントローラ7と入出力装置6との間
でRead/Write, Address,dat
a, Byte−enable, Access−st
robe, Ready等がやり取りされる。またバス
・インターフェース機能は、プロセッサ・バス3と入出
力バス8との信号線の相違を吸収するものである。
【0005】プロセッサ1が主メモリ4からデータを読
み込むとそのデータはプロセッサ1に供給されると同時
にキャッシュ・メモリ2にも記憶される。一度キャッシ
ュ・メモリ2に記憶されたデータならば、再びプロセッ
サ1が読み込みを行ったとしても,主メモリ4にまで取
りに行かずにキャッシュ・メモリ2からそのデータを供
給すればよい。キャッシュ・メモリ2は主メモリ4と比
べて小容量ながらも非常に高速なメモリ・デバイスで実
現されているので、データ読み込みに必要な時間は大幅
に短縮される。また、キャッシュ・メモリ2に記憶され
ているデータに対して、プロセッサ1が書き込みを行っ
たときでも、主メモリ4に書き込まれずにキャッシュ・
メモリ2内のデータのみ書き替えられればよいので、読
み込みに加えて書き込みに関しても速度向上が実現され
る。
み込むとそのデータはプロセッサ1に供給されると同時
にキャッシュ・メモリ2にも記憶される。一度キャッシ
ュ・メモリ2に記憶されたデータならば、再びプロセッ
サ1が読み込みを行ったとしても,主メモリ4にまで取
りに行かずにキャッシュ・メモリ2からそのデータを供
給すればよい。キャッシュ・メモリ2は主メモリ4と比
べて小容量ながらも非常に高速なメモリ・デバイスで実
現されているので、データ読み込みに必要な時間は大幅
に短縮される。また、キャッシュ・メモリ2に記憶され
ているデータに対して、プロセッサ1が書き込みを行っ
たときでも、主メモリ4に書き込まれずにキャッシュ・
メモリ2内のデータのみ書き替えられればよいので、読
み込みに加えて書き込みに関しても速度向上が実現され
る。
【0006】このようにキャッシュ・メモリ2を用いる
と、メモリ・アクセス速度を向上させることによって、
プロセッサ1の性能を引き上げることができる。しかし
ながら、ここにひとつの問題が発生してくる。キャッシ
ュ・メモリ2がない場合は主メモリ4が唯一のデータを
記憶する装置だったが、キャッシュ・メモリ2を導入す
ると当然のことながらキャッシュ・メモリ2もデータを
記憶している。そして、忘れてはならないのが主メモリ
4にアクセスするのはプロセッサ1だけではないという
こと、つまりDMAコントローラ5や入出力装置6の一
部も主メモリ4にアクセスにいくということである。
と、メモリ・アクセス速度を向上させることによって、
プロセッサ1の性能を引き上げることができる。しかし
ながら、ここにひとつの問題が発生してくる。キャッシ
ュ・メモリ2がない場合は主メモリ4が唯一のデータを
記憶する装置だったが、キャッシュ・メモリ2を導入す
ると当然のことながらキャッシュ・メモリ2もデータを
記憶している。そして、忘れてはならないのが主メモリ
4にアクセスするのはプロセッサ1だけではないという
こと、つまりDMAコントローラ5や入出力装置6の一
部も主メモリ4にアクセスにいくということである。
【0007】いま、アドレスA番地のデータがキャッシ
ュ・メモリ2に記憶されているとしよう。DMAコント
ローラ5が新しいデータを入出力装置6から読み、主メ
モリ4のアドレスA番地に書き込んだとする。ここでキ
ャッシュ・メモリ2に記憶されているデータをそのまま
にしておくとプロセッサ1はいつまでたっても昔の古い
データを読み続けることになり、DMAコントローラ5
によってもたらされた最新のデータを読み取ることがで
きない。
ュ・メモリ2に記憶されているとしよう。DMAコント
ローラ5が新しいデータを入出力装置6から読み、主メ
モリ4のアドレスA番地に書き込んだとする。ここでキ
ャッシュ・メモリ2に記憶されているデータをそのまま
にしておくとプロセッサ1はいつまでたっても昔の古い
データを読み続けることになり、DMAコントローラ5
によってもたらされた最新のデータを読み取ることがで
きない。
【0008】逆の場合もやはり同様に問題となる。プロ
セッサ1がアドレスA番地のデータを書き替えたとしよ
う。書き替えられたデータはキャッシュ・メモリ2の中
だけであり、すぐに主メモリ4に反映されていない。D
MAコントローラ5が主メモリ4からアドレスA番地の
データを読み出し、入出力装置6に送り出したとして
も、キャッシュ・メモリ4内の最新のデータはそこに残
ったままである。DMAコントローラ5は最新のデータ
がキャッシュ・メモリ2から主メモリ4に書き戻されな
い限り古いデータを読み出してしまう。
セッサ1がアドレスA番地のデータを書き替えたとしよ
う。書き替えられたデータはキャッシュ・メモリ2の中
だけであり、すぐに主メモリ4に反映されていない。D
MAコントローラ5が主メモリ4からアドレスA番地の
データを読み出し、入出力装置6に送り出したとして
も、キャッシュ・メモリ4内の最新のデータはそこに残
ったままである。DMAコントローラ5は最新のデータ
がキャッシュ・メモリ2から主メモリ4に書き戻されな
い限り古いデータを読み出してしまう。
【0009】従来の計算機ではキャッシュ・コンシステ
ンシ問題を以下のようにして解決していた。 (1)プロセッサが書き込みを行ったときは必ず主メモ
リも書き換える。この方式をライト・スルー方式と呼
ぶ。こうすることによって、プロセッサが与える最新の
データはキャッシュ・メモリに記録されると同時に主メ
モリにも必ず記録かれるので、DMAコントローラはキ
ャッシュ・メモリの内容を気にすることなく、いつも主
メモリから読みだせばよい。ライト・スルー方式はプロ
セッサが書き込みを行うとキャッシュ・メモリのみなら
ず、主メモリにも書き込みにいくので、つぎに述べるラ
イト・バック方式より性能的に劣る。
ンシ問題を以下のようにして解決していた。 (1)プロセッサが書き込みを行ったときは必ず主メモ
リも書き換える。この方式をライト・スルー方式と呼
ぶ。こうすることによって、プロセッサが与える最新の
データはキャッシュ・メモリに記録されると同時に主メ
モリにも必ず記録かれるので、DMAコントローラはキ
ャッシュ・メモリの内容を気にすることなく、いつも主
メモリから読みだせばよい。ライト・スルー方式はプロ
セッサが書き込みを行うとキャッシュ・メモリのみなら
ず、主メモリにも書き込みにいくので、つぎに述べるラ
イト・バック方式より性能的に劣る。
【0010】(2)(1)の方式とは違い、プロセッサ
が書き込みを行ったときはキャッシュ・メモリの中のデ
ータのみ書き替える。この方式はライト・バック方式と
呼ばれる。主メモリとキャッシュ・メモリの内容が一致
していない可能性があるので、DMAコントローラが主
メモリを読みに行ったときには、同時にキャッシュ・メ
モリ内も検索し(スヌープ)、もし最新のデータがキャ
ッシュ・メモリにだけ格納されていたならば、それをキ
ャッシュ・メモリから供給する。なお、キャッシュ・メ
モリに格納されているデータが主メモリ中のものと異な
る場合、キャッシュ・メモリ中のデータはDIRTYも
しくはMODIFIEDの状態にあると表現される。ラ
イト・バック方式は、プロセッサが書き込みを行って
も、キャッシュ・メモリ中にデータがあればそこにだけ
書き込んで主記憶は更新しない。そのため、性能的に見
るとライト・スルー方式よりライト・バック方式が望ま
しい。
が書き込みを行ったときはキャッシュ・メモリの中のデ
ータのみ書き替える。この方式はライト・バック方式と
呼ばれる。主メモリとキャッシュ・メモリの内容が一致
していない可能性があるので、DMAコントローラが主
メモリを読みに行ったときには、同時にキャッシュ・メ
モリ内も検索し(スヌープ)、もし最新のデータがキャ
ッシュ・メモリにだけ格納されていたならば、それをキ
ャッシュ・メモリから供給する。なお、キャッシュ・メ
モリに格納されているデータが主メモリ中のものと異な
る場合、キャッシュ・メモリ中のデータはDIRTYも
しくはMODIFIEDの状態にあると表現される。ラ
イト・バック方式は、プロセッサが書き込みを行って
も、キャッシュ・メモリ中にデータがあればそこにだけ
書き込んで主記憶は更新しない。そのため、性能的に見
るとライト・スルー方式よりライト・バック方式が望ま
しい。
【0011】(3)DMAコントローラが主メモリにデ
ータを書き込むとき、もし同じ番地のデータがキャッシ
ュ・メモリにも記憶されている場合はこれを消し去る
(無効化する)。そのあと、プロセッサが同じ番地を読
みに行っても、もはやデータがキャッシュ・メモリに存
在しないので、主メモリに最新のデータを読みに行くと
いう訳である。注意しなければならないのは、もし
(2)に示したようなライト・バック方式を採用する
と、最新のデータがキャッシュ・メモリにのみ存在する
可能性があるため、無条件にキャッシュ・メモリ内のデ
ータを無効化するわけにはいかないという点である。す
なわち、所定のキャッシュ・ライン(たとえば32バイ
ト)に相当するデータの一部(4バイト)をDMAコン
トローラから主メモリに書き込むときにキャッシュ・メ
モリの対応するキャッシュ・ラインを無効にすると、当
該キャッシュ・ラインの残りの最新データ(28バイ
ト)が消失してしまう。このためキャッシュ・メモリ内
のデータがDIRTYの状態にある場合は、それをまず
主メモリに書き戻したあとで無効化する。
ータを書き込むとき、もし同じ番地のデータがキャッシ
ュ・メモリにも記憶されている場合はこれを消し去る
(無効化する)。そのあと、プロセッサが同じ番地を読
みに行っても、もはやデータがキャッシュ・メモリに存
在しないので、主メモリに最新のデータを読みに行くと
いう訳である。注意しなければならないのは、もし
(2)に示したようなライト・バック方式を採用する
と、最新のデータがキャッシュ・メモリにのみ存在する
可能性があるため、無条件にキャッシュ・メモリ内のデ
ータを無効化するわけにはいかないという点である。す
なわち、所定のキャッシュ・ライン(たとえば32バイ
ト)に相当するデータの一部(4バイト)をDMAコン
トローラから主メモリに書き込むときにキャッシュ・メ
モリの対応するキャッシュ・ラインを無効にすると、当
該キャッシュ・ラインの残りの最新データ(28バイ
ト)が消失してしまう。このためキャッシュ・メモリ内
のデータがDIRTYの状態にある場合は、それをまず
主メモリに書き戻したあとで無効化する。
【0012】ここではDMAコントローラのアクセスを
例として用いたが、実際のシステムではDMAコントロ
ーラだけでなく、入出力装置が直接主メモリにアクセス
する場合もある。
例として用いたが、実際のシステムではDMAコントロ
ーラだけでなく、入出力装置が直接主メモリにアクセス
する場合もある。
【0013】なおこの発明と関連のある文献としては、
IBM Technical Desclosure
Bulletin, Vol.32, No.8B,
pp288−290, "SYSTEM BUS TA
G RAM"がある。この文献では、バス・マスタのメ
モリへの書き込みごとに、スヌープを行って、無効化す
るとオーバーヘッドが大きくなるので、キャッシュ・メ
モリがコピーを有するかどうかを表すタグ・メモリを設
け、タグ・メモリにより指定される場合のみ、スヌープ
を行うようにしている。しかしながらこの文献には一連
のデータの特性を利用してオーバーヘッドを削減するこ
とについてはなんら記載がない。
IBM Technical Desclosure
Bulletin, Vol.32, No.8B,
pp288−290, "SYSTEM BUS TA
G RAM"がある。この文献では、バス・マスタのメ
モリへの書き込みごとに、スヌープを行って、無効化す
るとオーバーヘッドが大きくなるので、キャッシュ・メ
モリがコピーを有するかどうかを表すタグ・メモリを設
け、タグ・メモリにより指定される場合のみ、スヌープ
を行うようにしている。しかしながらこの文献には一連
のデータの特性を利用してオーバーヘッドを削減するこ
とについてはなんら記載がない。
【0014】
【発明が解決しようとする課題】従来の方式には次に示
すような欠点がある。 (1)ライト・バック方式を用いると、DMAコントロ
ーラを含む入出力装置が主メモリを読みに行く場合に、
1アクセス毎にキャッシュ・メモリの内容を検索し、キ
ャッシュ・メモリにデータがDIRTY状態で記憶され
ているかどうか調べなければならない。 (2)DMAコントローラを含む入出力装置が主メモリ
に書きに行く場合に、1アクセスごとにキャッシュ・メ
モリの内容を検索し、キャッシュ・メモリにデータがD
IRTYでない状態で記憶されていればそれをそのまま
無効化し、DIRTYの状態で記憶されていればそれを
主メモリに書き戻した後に無効化する。そして主メモリ
内のデータを書き替える。
すような欠点がある。 (1)ライト・バック方式を用いると、DMAコントロ
ーラを含む入出力装置が主メモリを読みに行く場合に、
1アクセス毎にキャッシュ・メモリの内容を検索し、キ
ャッシュ・メモリにデータがDIRTY状態で記憶され
ているかどうか調べなければならない。 (2)DMAコントローラを含む入出力装置が主メモリ
に書きに行く場合に、1アクセスごとにキャッシュ・メ
モリの内容を検索し、キャッシュ・メモリにデータがD
IRTYでない状態で記憶されていればそれをそのまま
無効化し、DIRTYの状態で記憶されていればそれを
主メモリに書き戻した後に無効化する。そして主メモリ
内のデータを書き替える。
【0015】従って、入出力装置が主メモリに対して読
み書きを行うたびに必ずキャッシュ・メモリの内容を検
索し、DIRTYな状態にあるかないかを見極めた後で
はじめて主メモリにアクセスするということである。こ
れは入出力装置のメモリ・アクセス速度を著しく低下さ
せる。さらに、入出力装置のアクセスが発生する度にキ
ャッシュ・メモリを検索するので、その検索中キャッシ
ュ・メモリはマイクロプロセッサからのアクセスに対し
て応答することができない。マイクロプロセッサの性能
にも大きな影響を与える。以上からわかるように、入出
力装置からのアクセス全部に対してキャッシュ・メモリ
を検索する(スヌープする)のは効率がよくない。本発
明では入出力装置アクセスに対して必要とするキャッシ
ュ・メモリの検索回数(スヌープ回数)を減少させる方
式を提供する。
み書きを行うたびに必ずキャッシュ・メモリの内容を検
索し、DIRTYな状態にあるかないかを見極めた後で
はじめて主メモリにアクセスするということである。こ
れは入出力装置のメモリ・アクセス速度を著しく低下さ
せる。さらに、入出力装置のアクセスが発生する度にキ
ャッシュ・メモリを検索するので、その検索中キャッシ
ュ・メモリはマイクロプロセッサからのアクセスに対し
て応答することができない。マイクロプロセッサの性能
にも大きな影響を与える。以上からわかるように、入出
力装置からのアクセス全部に対してキャッシュ・メモリ
を検索する(スヌープする)のは効率がよくない。本発
明では入出力装置アクセスに対して必要とするキャッシ
ュ・メモリの検索回数(スヌープ回数)を減少させる方
式を提供する。
【0016】
【課題を解決するための手段】この発明では、以上の目
的を達成するために、アドレス・バッファとアドレス比
較器を設けて、入出力装置等のアクセスに対し必要最小
限のキャッシュ・メモリ検索(スヌープ)でキャッシュ
・コンシステンシを保つメカニズムを実現する。なおこ
の発明はキャッシュ・メモリがライト・スルーでもライ
ト・バックでもかまわない。
的を達成するために、アドレス・バッファとアドレス比
較器を設けて、入出力装置等のアクセスに対し必要最小
限のキャッシュ・メモリ検索(スヌープ)でキャッシュ
・コンシステンシを保つメカニズムを実現する。なおこ
の発明はキャッシュ・メモリがライト・スルーでもライ
ト・バックでもかまわない。
【0017】
【実施例】以下この発明の実施例について2図以降の図
面を参照して説明する。なお図2において図1と対応す
る箇所には対応する番号を付す。図2はマイクロプロセ
ッサ1、キャッシュ・メモリ2、入出力コントローラ
7、入出力装置6からなるシステムを示す。図2におい
て、入出力コントローラ7は内部にアドレス・バッファ
9を持ち、入出力装置6からのメモリ・アクセスのアド
レスを保持できるようになっている。
面を参照して説明する。なお図2において図1と対応す
る箇所には対応する番号を付す。図2はマイクロプロセ
ッサ1、キャッシュ・メモリ2、入出力コントローラ
7、入出力装置6からなるシステムを示す。図2におい
て、入出力コントローラ7は内部にアドレス・バッファ
9を持ち、入出力装置6からのメモリ・アクセスのアド
レスを保持できるようになっている。
【0018】また、キャッシュ・メモリ2に対して、2
本の制御信号線SNP、INVが与えられるようになっ
ている。この2本の制御線でキャッシュ・メモリ2の検
索を制御する。SNPが0のとき、キャッシュ・メモリ
2はなにもしない。SNPが1のとき、キャッシュ・メ
モリ2は入出力コントローラ7から与えられるアドレス
(入出力装置6のアクセスのアドレス)を使って、キャ
ッシュ・メモリ2内を検索する(スヌープする)。それ
にともない、INVが1で同じアドレスのデータがキャ
ッシュ・メモリ2内にあればそれを無効化(インバリデ
ート)する。一方、キャッシュ・メモリ2から入出力コ
ントローラ7へSHという信号が与えられる。これはキ
ャッシュ・メモリ2がスヌープしたときに、同じアドレ
スのデータを持っている場合に1になり、持っていなか
った場合には0になる。なお、このSH信号を用意でき
ない場合でも有効な実現方法も別途示す。
本の制御信号線SNP、INVが与えられるようになっ
ている。この2本の制御線でキャッシュ・メモリ2の検
索を制御する。SNPが0のとき、キャッシュ・メモリ
2はなにもしない。SNPが1のとき、キャッシュ・メ
モリ2は入出力コントローラ7から与えられるアドレス
(入出力装置6のアクセスのアドレス)を使って、キャ
ッシュ・メモリ2内を検索する(スヌープする)。それ
にともない、INVが1で同じアドレスのデータがキャ
ッシュ・メモリ2内にあればそれを無効化(インバリデ
ート)する。一方、キャッシュ・メモリ2から入出力コ
ントローラ7へSHという信号が与えられる。これはキ
ャッシュ・メモリ2がスヌープしたときに、同じアドレ
スのデータを持っている場合に1になり、持っていなか
った場合には0になる。なお、このSH信号を用意でき
ない場合でも有効な実現方法も別途示す。
【0019】入出力コントローラ7は1個のアドレス・
バッファ9とVALID、SHAREDの2ビットのフ
ラグ10を持っている。キャッシュ・メモリ2とは異な
り、データは持っていない。フラグ10のビット値の組
み合わせで表現される状態は図3に示すように3通りあ
り、INVALID,VALID−NOT_SHARE
D,VALID−SHAREDである。
バッファ9とVALID、SHAREDの2ビットのフ
ラグ10を持っている。キャッシュ・メモリ2とは異な
り、データは持っていない。フラグ10のビット値の組
み合わせで表現される状態は図3に示すように3通りあ
り、INVALID,VALID−NOT_SHARE
D,VALID−SHAREDである。
【0020】システム初期化時には両方のフラグは0
(リセット)である。アドレス部分はマイクロプロセッ
サ1の出力するアドレスの上位Nビットからなる。Nは
マイクロプロセッサ1のもつアドレス線の数をキャッシ
ュ・メモリのライン・サイズで割ったものである。例え
ばマイクロプロセッサ1の出力するアドレスが32ビッ
トで、キャッシュ・メモリ2のライン・サイズが32
(=25)バイトなら、N=32−5=27である。本
発明の実現のために入出力コントローラ7に追加すべき
ハードウェアはこのアドレス・バッファと2ビットのフ
ラグの合計N+2ビットのレジスタだけである。
(リセット)である。アドレス部分はマイクロプロセッ
サ1の出力するアドレスの上位Nビットからなる。Nは
マイクロプロセッサ1のもつアドレス線の数をキャッシ
ュ・メモリのライン・サイズで割ったものである。例え
ばマイクロプロセッサ1の出力するアドレスが32ビッ
トで、キャッシュ・メモリ2のライン・サイズが32
(=25)バイトなら、N=32−5=27である。本
発明の実現のために入出力コントローラ7に追加すべき
ハードウェアはこのアドレス・バッファと2ビットのフ
ラグの合計N+2ビットのレジスタだけである。
【0021】以下に本発明の動作の詳細を示す。以後、
本文中で使う言葉を定義しておく。マイクロプロセッサ
1または入出力装置6が発生するアクセスのアドレス
が、入出力コントローラ7のなかのアドレス・バッファ
と一致した場合をHITとよび、一致しなかった場合を
MISSと呼ぶ。VALIDフラグが0すなわちINV
ALID状態の時はいつもMISSである。主メモリ4
を読みに行ってHITした場合をRead−Hit、M
ISSした場合をRead−Missという。書き込み
の場合も同様にWrite−Hit/Write−Mi
ssという。さらに、マイクロプロセッサ1からのアク
セスと入出力装置6からのアクセスを区別するために、
マイクロプロセッサ1からのアクセスで生起したものに
はCPU、入出力装置6からのアクセスで生起したもの
にはI/Oとつけて呼ぶことにする。まとめると次のよ
うに表される。
本文中で使う言葉を定義しておく。マイクロプロセッサ
1または入出力装置6が発生するアクセスのアドレス
が、入出力コントローラ7のなかのアドレス・バッファ
と一致した場合をHITとよび、一致しなかった場合を
MISSと呼ぶ。VALIDフラグが0すなわちINV
ALID状態の時はいつもMISSである。主メモリ4
を読みに行ってHITした場合をRead−Hit、M
ISSした場合をRead−Missという。書き込み
の場合も同様にWrite−Hit/Write−Mi
ssという。さらに、マイクロプロセッサ1からのアク
セスと入出力装置6からのアクセスを区別するために、
マイクロプロセッサ1からのアクセスで生起したものに
はCPU、入出力装置6からのアクセスで生起したもの
にはI/Oとつけて呼ぶことにする。まとめると次のよ
うに表される。
【0022】 CPU−Read−Hit マイクロプロセッサがRead、アドレス・ バッファ中のアドレスにHITした CPU−Read−Miss マイクロプロセッサがRead、アドレス・ バッファ中のアドレスにHITしなかった CPU−Write−Hit マイクロプロセッサがWrite、アドレ ス・バッファ中のアドレスにHITした CPU−Write−Miss マイクロプロセッサがWrite、アドレ ス・バッファ中のアドレスにHITしなか った I/O−Read−Hit 入出力装置がRead、アドレス・バッファ 中のアドレスにHITした I/O−Read−Miss 入出力装置がRead、アドレス・バッファ 中のアドレスにHITしなかった I/O−Write−Hit 入出力装置がWrite、アドレス・バッ ファ中のアドレスにHITした I/O−Write−Miss 入出力装置がWrite、アドレス・バッ ファ中のアドレスにHITしなかった
【0023】ここではまずキャッシュ・メモリ2からS
H信号が有る場合、すなわちキャッシュ・メモリ2探索
時にHITしたかどうかを入出力コントローラ7が判断
できる場合について説明する。SHが無い場合での実現
例は後に述べる。図4に状態遷移図を示す。図4の遷移
のうち網がかかっているものはキャッシュ・メモリ2の
スヌープ(検索)を必要とする。
H信号が有る場合、すなわちキャッシュ・メモリ2探索
時にHITしたかどうかを入出力コントローラ7が判断
できる場合について説明する。SHが無い場合での実現
例は後に述べる。図4に状態遷移図を示す。図4の遷移
のうち網がかかっているものはキャッシュ・メモリ2の
スヌープ(検索)を必要とする。
【0024】(1)入出力装置6のアクセス i)I/O−Read−Miss。SNP信号を1に、
INV信号を0にしてキャッシュ・メモリにスヌープさ
せる。その結果、キャッシュ・メモリからSHが返って
きたとき(SH=1)は状態をVALID−SHARE
Dに変化させる。図4では遷移Tr1、Tr2、Tr7
に相当する。現状態がINVALIDのときは遷移Tr
1に従ってVALID−SHAREDへ、VALID−
SHAREDのときは遷移Tr2に従ってそのままVA
LID−SHAREDへ、VALID−NOT_SHA
REDのときは遷移Tr7に従ってVALID−SHA
REDへ遷移する。一方、SHが返ってこなかったとき
(SH=0)はVALID−NOT_SHAREDに変
化させる。図4では遷移Tr5、Tr6、Tr8に相当
する。現状態がINVALIDのときは遷移Tr5に従
ってVALID−NOT_SHAREDへ、VALID
−SHAREDのときは遷移Tr6に従ってVALID
−NOT_SHAREDへ、VALID−NOT_SH
AREDのときは遷移Tr8に従ってVALID−NO
T_SHAREDへ遷移する。なお、図4ではSHが1
であることを(SH)で、SHが0であることを(!S
H)で表現している。アドレス・バッファ9を入出力装
置6が出したアドレスで更新する。INV信号が0なの
でキャッシュ・メモリの中のデータは無効化されない。
INV信号を0にしてキャッシュ・メモリにスヌープさ
せる。その結果、キャッシュ・メモリからSHが返って
きたとき(SH=1)は状態をVALID−SHARE
Dに変化させる。図4では遷移Tr1、Tr2、Tr7
に相当する。現状態がINVALIDのときは遷移Tr
1に従ってVALID−SHAREDへ、VALID−
SHAREDのときは遷移Tr2に従ってそのままVA
LID−SHAREDへ、VALID−NOT_SHA
REDのときは遷移Tr7に従ってVALID−SHA
REDへ遷移する。一方、SHが返ってこなかったとき
(SH=0)はVALID−NOT_SHAREDに変
化させる。図4では遷移Tr5、Tr6、Tr8に相当
する。現状態がINVALIDのときは遷移Tr5に従
ってVALID−NOT_SHAREDへ、VALID
−SHAREDのときは遷移Tr6に従ってVALID
−NOT_SHAREDへ、VALID−NOT_SH
AREDのときは遷移Tr8に従ってVALID−NO
T_SHAREDへ遷移する。なお、図4ではSHが1
であることを(SH)で、SHが0であることを(!S
H)で表現している。アドレス・バッファ9を入出力装
置6が出したアドレスで更新する。INV信号が0なの
でキャッシュ・メモリの中のデータは無効化されない。
【0025】ii)I/O−Write−Miss。SN
P信号を1に、INV信号を1にしてキャッシュ・メモ
リにスヌープさせる。状態をVALID−NOT_SH
AREDに変化させる。現状態がINVALIDのとき
は遷移Tr5に従ってVALID−NOT_SHARE
Dへ、VALID−SHAREDのときは遷移Tr6に
従ってVALID−NOT_SHAREDへ、VALI
D−NOT_SHAREDのときは遷移Tr8に従って
VALID−NOT_SHAREDへ遷移する。
P信号を1に、INV信号を1にしてキャッシュ・メモ
リにスヌープさせる。状態をVALID−NOT_SH
AREDに変化させる。現状態がINVALIDのとき
は遷移Tr5に従ってVALID−NOT_SHARE
Dへ、VALID−SHAREDのときは遷移Tr6に
従ってVALID−NOT_SHAREDへ、VALI
D−NOT_SHAREDのときは遷移Tr8に従って
VALID−NOT_SHAREDへ遷移する。
【0026】iii)I/O−Read−Hit。スヌー
プは必要ない。SNP信号もINV信号も0のまま。デ
ータは主メモリから得られる。図4では遷移Tr2、T
r8に相当し、状態は変化しない。
プは必要ない。SNP信号もINV信号も0のまま。デ
ータは主メモリから得られる。図4では遷移Tr2、T
r8に相当し、状態は変化しない。
【0027】iv)I/O−Write−Hit。状態が
VALID−SHAREDならば、SNP信号を1に、
INV信号を1にしてキャッシュ・メモリにスヌープさ
せる。キャッシュ・メモリが同じアドレスのデータを保
持していたならばそれを無効化する。この動作は図4の
遷移Tr6に相当し、状態はVALID−SHARED
からVALID−NOT_SHAREDに変化する。状
態がVALID−NOT_SHAREDならばスヌープ
は必要ない。図4では遷移Tr8に相当し、状態もVA
LID−NOT_SHAREDのままである。
VALID−SHAREDならば、SNP信号を1に、
INV信号を1にしてキャッシュ・メモリにスヌープさ
せる。キャッシュ・メモリが同じアドレスのデータを保
持していたならばそれを無効化する。この動作は図4の
遷移Tr6に相当し、状態はVALID−SHARED
からVALID−NOT_SHAREDに変化する。状
態がVALID−NOT_SHAREDならばスヌープ
は必要ない。図4では遷移Tr8に相当し、状態もVA
LID−NOT_SHAREDのままである。
【0028】(2)マイクロプロセッサのアクセス i)CPU−Read−Miss。変化なし。 ii)CPU−Write−Miss。変化なし。 iii)CPU−Read−Hit。状態をVALID−
SHAREDに変化させる。現状態がVALID−SH
AREDのときは、図4の遷移Tr2に相当し、そのま
まVALID−SHAREDに残る。現状態がVALI
D−NOT_SHAREDのときは、図4の遷移Tr7
に相当しVALID−SHAREDに移る。 iv)CPU−Write−Hit。状態をINVALI
Dに変化させる。現状態がVALID−SHAREDの
ときは、図4の遷移3Trに相当し、INVALIDに
移る。現状態がVALID−NOT_SHAREDのと
きは、図4の遷移Tr4に相当しINVALIDに移
る。
SHAREDに変化させる。現状態がVALID−SH
AREDのときは、図4の遷移Tr2に相当し、そのま
まVALID−SHAREDに残る。現状態がVALI
D−NOT_SHAREDのときは、図4の遷移Tr7
に相当しVALID−SHAREDに移る。 iv)CPU−Write−Hit。状態をINVALI
Dに変化させる。現状態がVALID−SHAREDの
ときは、図4の遷移3Trに相当し、INVALIDに
移る。現状態がVALID−NOT_SHAREDのと
きは、図4の遷移Tr4に相当しINVALIDに移
る。
【0029】この実施例の有効性を示す。いまキャッシ
ュ・メモリ2のライン・サイズを32バイトとする。ま
た、入出力装置6のデータ転送幅を4バイトとし、32
バイトの連続したデータを主メモリ4から読むものとす
る。この状況では入出力装置6は8回(32バイト/4
バイト=8回)のメモリ読み込みアクセスを発生する。
従来の方式では、入出力コントローラ7が入出力装置6
がアクセスを発生するたびに合計8回のスヌープを行わ
なければならない。しかし、この実施例のメカニズムを
用いると、8回の読み込みアクセスのうち、最初の1回
にだけスヌープを行えばよい。たとえば、入出力装置6
がアクセスを発生する前は、INVALID状態にあっ
たとする。図4に示す通り、最初のI/O−Read−
missでSHが1ならばVALID−SHAREDへ
(遷移Tr1)、SHが0ならばVALID−NOT_
SHAREDへ遷移する(遷移Tr5)。そのとき、ス
ヌープを行う。しかし、一度VALID−SHARED
もしくはVALID−NOT_SHAREDへ遷移して
しまうと、残るあとの7回のアクセスはI/O−Rea
d−Hitであるから、スヌープを必要としない。スヌ
ープの回数は8回から1回に大きく減少する。
ュ・メモリ2のライン・サイズを32バイトとする。ま
た、入出力装置6のデータ転送幅を4バイトとし、32
バイトの連続したデータを主メモリ4から読むものとす
る。この状況では入出力装置6は8回(32バイト/4
バイト=8回)のメモリ読み込みアクセスを発生する。
従来の方式では、入出力コントローラ7が入出力装置6
がアクセスを発生するたびに合計8回のスヌープを行わ
なければならない。しかし、この実施例のメカニズムを
用いると、8回の読み込みアクセスのうち、最初の1回
にだけスヌープを行えばよい。たとえば、入出力装置6
がアクセスを発生する前は、INVALID状態にあっ
たとする。図4に示す通り、最初のI/O−Read−
missでSHが1ならばVALID−SHAREDへ
(遷移Tr1)、SHが0ならばVALID−NOT_
SHAREDへ遷移する(遷移Tr5)。そのとき、ス
ヌープを行う。しかし、一度VALID−SHARED
もしくはVALID−NOT_SHAREDへ遷移して
しまうと、残るあとの7回のアクセスはI/O−Rea
d−Hitであるから、スヌープを必要としない。スヌ
ープの回数は8回から1回に大きく減少する。
【0030】同じように、入出力装置6が32バイトの
連続したデータを主メモリ4に書き込む場合を考える。
やはり8回のアクセスを発生するが、この実施例のメカ
ニズムを用いることによって8回のスヌープを1回に減
らすことができる。入出力装置6がアクセスする前はI
NVALID状態にあったとする。最初のI/O−Wr
ite−missでVALID−NOT_SHARED
へ遷移する(遷移Tr5)。残る7回の書き込みアクセ
スはすべてI/O−Write−Hitになるのでスヌ
ープを必要としない(遷移Tr8)。
連続したデータを主メモリ4に書き込む場合を考える。
やはり8回のアクセスを発生するが、この実施例のメカ
ニズムを用いることによって8回のスヌープを1回に減
らすことができる。入出力装置6がアクセスする前はI
NVALID状態にあったとする。最初のI/O−Wr
ite−missでVALID−NOT_SHARED
へ遷移する(遷移Tr5)。残る7回の書き込みアクセ
スはすべてI/O−Write−Hitになるのでスヌ
ープを必要としない(遷移Tr8)。
【0031】つぎにキャッシュ・メモリ2のキャッシュ
・コントローラからSH信号が得られない場合の変更例
を示す。状態遷移図を図5に示す。先の実施例と異なる
動作は2ヵ所ある。(1)先の実施例ではI/O−Re
ad−Missが発生するとSH信号を参照して、VA
LID−SHAREDもしくはVALID−NOT_S
HAREDへ変化していたが、この変更例ではいつもV
ALID−SHAREDへ変化する。(2)先の実施例
ではCPU−Read−HitでVALID−SHAR
EDへ変化していたものが、INVALIDへ変化す
る。CPU−Read−MissでいつもINVALI
Dへ変化するので、I/O−Read−MissとI/
O−Write−Missの発生する確率が増えるが、
これは大きな欠点とはならない。なぜなら、この状態が
発生するのは、入出力装置6が同じキャッシュ・ライン
に対して2回以上のアクセスを行っている間にプロセッ
サ1がCPU−Read−Missを起こした場合に限
られるからである。
・コントローラからSH信号が得られない場合の変更例
を示す。状態遷移図を図5に示す。先の実施例と異なる
動作は2ヵ所ある。(1)先の実施例ではI/O−Re
ad−Missが発生するとSH信号を参照して、VA
LID−SHAREDもしくはVALID−NOT_S
HAREDへ変化していたが、この変更例ではいつもV
ALID−SHAREDへ変化する。(2)先の実施例
ではCPU−Read−HitでVALID−SHAR
EDへ変化していたものが、INVALIDへ変化す
る。CPU−Read−MissでいつもINVALI
Dへ変化するので、I/O−Read−MissとI/
O−Write−Missの発生する確率が増えるが、
これは大きな欠点とはならない。なぜなら、この状態が
発生するのは、入出力装置6が同じキャッシュ・ライン
に対して2回以上のアクセスを行っている間にプロセッ
サ1がCPU−Read−Missを起こした場合に限
られるからである。
【0032】
【発明の効果】以上説明したようにこの発明によれば入
出力装置が主メモリをアクセスする際のキャッシュ・コ
ンシステンシの処理を大幅に削減したので、メモリ・ア
クセスの高速化を図ることができる。
出力装置が主メモリをアクセスする際のキャッシュ・コ
ンシステンシの処理を大幅に削減したので、メモリ・ア
クセスの高速化を図ることができる。
【図1】 従来のコンピュータ・システムを説明するブ
ロック図である。
ロック図である。
【図2】 この発明の実施例の構成を説明するブロック
図である。
図である。
【図3】 上述の実施例の動作を説明する図である。
【図4】 上述の実施例の動作を説明する状態遷移図で
ある。
ある。
【図5】 上述実施例の変形例を説明する状態遷移図で
ある。
ある。
【符号の説明】 1・・・マイクロプロセッサ、2・・・キャッシュ・メ
モリ、6・・・入出力装置、7・・・入出力コントロー
ラ、9・・・アドレス・バッファ。
モリ、6・・・入出力装置、7・・・入出力コントロー
ラ、9・・・アドレス・バッファ。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭57−195375(JP,A)
Claims (6)
- 【請求項1】プロセッサと、このプロセッサのキャッシ
ュ・メモリと、主メモリと、この主メモリを直接アクセ
ス可能なリソースとを有し、上記キャッシュ・メモリと
上記主メモリとの間のデータの一致性を保持する処理を
上記リソースによる上記主メモリのアクセスの際に実行
可能なコンピュータ・システムにおいて、 上記リソースの上記主メモリへの読み出しアクセスが同
一のアドレス・ブロック内で連続して起こるときに、一
回目のアクセス以外では上記一致性を保持する処理を実
行しないようにしたことを特徴とするコンピュータ・シ
ステム。 - 【請求項2】プロセッサと、このプロセッサのキャッシ
ュ・メモリと、主メモリと、この主メモリを直接アクセ
ス可能なリソースとを有し、上記キャッシュ・メモリと
上記主メモリとの間のデータの一致性を保持する処理を
上記リソースによる上記主メモリのアクセスの際に実行
可能なコンピュータ・システムにおいて、 上記リソースの上記主メモリへの読み出しアクセスが同
一のアドレス・ブロック内で連続して起こるときに、一
回目のアクセス以外では、上記一致性を保持する処理で
ある、上記主メモリへの当該読み出しアクセスに係わる
データを上記キャッシュ・メモリ内の最新のデータ・コ
ピーで更新する処理を実行しないようにしたことを特徴
とするコンピュータ・システム。 - 【請求項3】プロセッサと、このプロセッサのキャッシ
ュ・メモリと、主メモリと、この主メモリを直接アクセ
ス可能なリソースとを有し、上記キャッシュ・メモリと
上記主メモリとの間のデータの一致性を保持する処理を
上記リソースによる上記主メモリのアクセスの際に実行
可能なコンピュータ・システムにおいて、 上記リソースの上記主メモリへの書き込みアクセスが同
一のアドレス・ブロック内で連続して起こるときに、一
回目のアクセス以外では、上記一致性を保持する処理で
ある、上記主メモリへの当該書き込みアクセスに係わる
キャッシュ・ライン分のデータを上記キャッシュ・メモ
リ内の最新のデータ・コピーで更新し、上記キャッシュ
・メモリ内の当該データ・コピーのキャッシュ・ライン
を無効化する処理を実行しないようにしたことを特徴と
するコンピュータ・システム。 - 【請求項4】プロセッサと、このプロセッサのキャッシ
ュ・メモリと、主メモリと、この主メモリを直接アクセ
ス可能なリソースとを有し、上記キャッシュ・メモリと
上記主メモリとの間のデータの一致性を保持する処理を
上記リソースによる上記主メモリのアクセスの際に実行
可能なコンピュータ・システムに用いられ、上記主メモ
リへのアクセスを制御する入出力コントローラにおい
て、 上記リソースの上記主メモリへのアクセスごとに当該ア
クセスのアドレスの所定の上位ビットを一時記憶するレ
ジスタと、 上記リソースの主メモリに対する新たな読み出しアクセ
スのアドレスの上記所定の上位ビットが上記レジスタの
値と一致するときに、上記一致性を保持する処理を実行
しないようする手段とを有することを特徴とする入出力
コントローラ。 - 【請求項5】 プロセッサと、このプロセッサのキャッ
シュ・メモリと、主メモリと、この主メモリを直接アク
セス可能なリソースとを有し、上記キャッシュ・メモリ
と上記主メモリとの間のデータの一致性を保持する処理
を上記リソースによる上記主メモリのアクセスの際に実
行可能なコンピュータ・システムに用いられ、上記主メ
モリへのアクセスを制御する入出力コントローラにおい
て、 上記キャッシュは、上記入出力コントローラからのアド
レスでスヌープした時の結果を上記入出力コントローラ
に出力し、 上記リソースの上記主メモリへのアクセスごとに当該ア
クセスのアドレスの所定の上位ビットを一時記憶するレ
ジスタと、 上記プロセッサと上記リソースが上記主メモリにアクセ
スするごとに、当該アクセスのアドレスごとのアクセス
結果及び上記キャッシュによるスヌープ結果により、キ
ャッシュの内容が無効であるか、キャッシュの内容は有
効であるが主メモリと共有していないか、キャッシュの
内容が有効で主メモリと共有されているか、を示すよう
にするフラグと、 上記リソースが上記主メモリにアクセスするアドレスで
上記レジスタ及び上記フラグにアクセスして、(1)上
記リソースによる読み出しアクセスであって、上記レジ
スタに上記アドレスが記憶されていない場合、(2)上
記リソースによる書き込みアクセスであって、上記レジ
スタに上記アドレスが記憶されていない場合、(3)上
記リソースによる書き込みアクセスであって、上記レジ
スタに上記アドレスが記憶されており、前回のアクセス
の結果を示すフラグがキャッシュの内容が有効で主メモ
リと共有されていること示している場合、上記アドレス
で上記キャッシュがスヌープを行うようにする手段とを
有する入出力コントローラ。 - 【請求項6】 プロセッサと、このプロセッサのキャッ
シュ・メモリと、主メモリと、この主メモリを直接アク
セス可能なリソースとを有し、上記キャッシュ・メモリ
と上記主メモリとの間のデータの一致性を保持する処理
を上記リソースによる上記主メモリのアクセスの際に実
行可能なコンピュータ・システムに用いられ、上記主メ
モリへのアクセスを制御する入出力コントローラにおい
て、 上記リソースの上記主メモリへのアクセスごとに当該ア
クセスのアドレスの所定の上位ビットを一時記憶するレ
ジスタと、 上記プロセッサと上記リソースが上記主メモリにアクセ
スするごとに、当該アクセスのアドレスごとのアクセス
結果により、キャッシュの内容が無効であるか、キャッ
シュの内容は有効であるが主メモリと共有していない
か、キャッシュの内容が有効で主メモリと共有されてい
るか、を示すようにするフラグと、 上記リソースが上記主メモリにアクセスするアドレスで
上記レジスタ及び上記フラグにアクセスして、(1)上
記リソースによる読み出しアクセスであって、上記レジ
スタに上記アドレスが記憶されていない場合、(2)上
記リソースによる書き込みアクセスであって、上記レジ
スタに上記アドレスが記憶されていない場合、(3)上
記リソースによる書き込みアクセスであって、上記レジ
スタに上記アドレスが記憶されており、前回のアクセス
の結果を示すフラグがキャッシュの内容が有効で主メモ
リと共有されていること示している場合、上記アドレス
で上記キャッシュがスヌープを行うようにする手段とを
有する入出力コントローラ。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4175398A JPH0797352B2 (ja) | 1992-07-02 | 1992-07-02 | コンピュータ・システム及び入出力コントローラ |
| EP93305156A EP0579418A3 (en) | 1992-07-02 | 1993-07-01 | Information processing system allowing to maintain the coherence of the data between the memory and the main memory. |
| US08/550,545 US5694575A (en) | 1992-07-02 | 1995-11-07 | Direct I/O control system with processor, main memory, and cache employing data consistency retaining scheme |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4175398A JPH0797352B2 (ja) | 1992-07-02 | 1992-07-02 | コンピュータ・システム及び入出力コントローラ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0659974A JPH0659974A (ja) | 1994-03-04 |
| JPH0797352B2 true JPH0797352B2 (ja) | 1995-10-18 |
Family
ID=15995401
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4175398A Expired - Lifetime JPH0797352B2 (ja) | 1992-07-02 | 1992-07-02 | コンピュータ・システム及び入出力コントローラ |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5694575A (ja) |
| EP (1) | EP0579418A3 (ja) |
| JP (1) | JPH0797352B2 (ja) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5586297A (en) * | 1994-03-24 | 1996-12-17 | Hewlett-Packard Company | Partial cache line write transactions in a computing system with a write back cache |
| US5539895A (en) * | 1994-05-12 | 1996-07-23 | International Business Machines Corporation | Hierarchical computer cache system |
| US6002883A (en) * | 1996-07-18 | 1999-12-14 | International Business Machines Corporation | System with intersystem information links for intersystem traffic having I/O traffic being transmitted to and from processor bus via processor means |
| GB2317722B (en) * | 1996-09-30 | 2001-07-18 | Nokia Mobile Phones Ltd | Memory device |
| US5923898A (en) * | 1997-05-14 | 1999-07-13 | International Business Machines Corporation | System for executing I/O request when an I/O request queue entry matches a snoop table entry or executing snoop when not matched |
| US6460119B1 (en) * | 1997-12-29 | 2002-10-01 | Intel Corporation | Snoop blocking for cache coherency |
| US6389527B1 (en) * | 1999-02-08 | 2002-05-14 | Kabushiki Kaisha Toshiba | Microprocessor allowing simultaneous instruction execution and DMA transfer |
| US6643717B1 (en) | 1999-11-10 | 2003-11-04 | Digi International Inc. | Flow control |
| US6886063B1 (en) | 1999-11-10 | 2005-04-26 | Digi International, Inc. | Systems, devices, structures, and methods to share resources among entities |
| US6629164B1 (en) | 1999-11-10 | 2003-09-30 | Digi International Inc. | Character counter and match registers in a serial interface |
| JP4434534B2 (ja) * | 2001-09-27 | 2010-03-17 | 株式会社東芝 | プロセッサ・システム |
| JP2005209163A (ja) * | 2003-12-22 | 2005-08-04 | Matsushita Electric Ind Co Ltd | メモリシステム制御方法 |
| TW201017421A (en) * | 2008-09-24 | 2010-05-01 | Panasonic Corp | Cache memory, memory system and control method therefor |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3735360A (en) * | 1971-08-25 | 1973-05-22 | Ibm | High speed buffer operation in a multi-processing system |
| JPS57195375A (en) * | 1981-05-27 | 1982-12-01 | Mitsubishi Electric Corp | Channel controller |
| US4504902A (en) * | 1982-03-25 | 1985-03-12 | At&T Bell Laboratories | Cache arrangement for direct memory access block transfer |
| US4695951A (en) * | 1983-07-07 | 1987-09-22 | Honeywell Bull Inc. | Computer hierarchy control |
| US4843542A (en) * | 1986-11-12 | 1989-06-27 | Xerox Corporation | Virtual memory cache for use in multi-processing systems |
| US5148533A (en) * | 1989-01-05 | 1992-09-15 | Bull Hn Information Systems Inc. | Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units |
| US5214767A (en) * | 1989-02-07 | 1993-05-25 | Compaq Computer Corp. | Full address and odd boundary direct memory access controller which determines address size by counting the input address bytes |
| US5119485A (en) * | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
| JPH03225540A (ja) * | 1990-01-31 | 1991-10-04 | Mitsubishi Electric Corp | キャッシュメモリの無効化処理方式 |
| US5163140A (en) * | 1990-02-26 | 1992-11-10 | Nexgen Microsystems | Two-level branch prediction cache |
| US5247648A (en) * | 1990-04-12 | 1993-09-21 | Sun Microsystems, Inc. | Maintaining data coherency between a central cache, an I/O cache and a memory |
| US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
| JP3081635B2 (ja) * | 1990-09-26 | 2000-08-28 | 富士通株式会社 | キャッシュメモリの無効化処理装置および無効化制御方法 |
| US5265235A (en) * | 1990-11-30 | 1993-11-23 | Xerox Corporation | Consistency protocols for shared memory multiprocessors |
| US5228134A (en) * | 1991-06-04 | 1993-07-13 | Intel Corporation | Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus |
| US5325504A (en) * | 1991-08-30 | 1994-06-28 | Compaq Computer Corporation | Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system |
| US5359723A (en) * | 1991-12-16 | 1994-10-25 | Intel Corporation | Cache memory hierarchy having a large write through first level that allocates for CPU read misses only and a small write back second level that allocates for CPU write misses only |
| US5325503A (en) * | 1992-02-21 | 1994-06-28 | Compaq Computer Corporation | Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line |
-
1992
- 1992-07-02 JP JP4175398A patent/JPH0797352B2/ja not_active Expired - Lifetime
-
1993
- 1993-07-01 EP EP93305156A patent/EP0579418A3/en not_active Withdrawn
-
1995
- 1995-11-07 US US08/550,545 patent/US5694575A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0579418A3 (en) | 1995-01-18 |
| JPH0659974A (ja) | 1994-03-04 |
| EP0579418A2 (en) | 1994-01-19 |
| US5694575A (en) | 1997-12-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5157774A (en) | System for fast selection of non-cacheable address ranges using programmed array logic | |
| JP3067112B2 (ja) | 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 | |
| US5091850A (en) | System for fast selection of non-cacheable address ranges using programmed array logic | |
| US10896128B2 (en) | Partitioning shared caches | |
| US5715428A (en) | Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system | |
| US5557769A (en) | Mechanism and protocol for maintaining cache coherency within an integrated processor | |
| US6021468A (en) | Cache coherency protocol with efficient write-through aliasing | |
| US4959777A (en) | Write-shared cache circuit for multiprocessor system | |
| US6418515B1 (en) | Cache flush unit | |
| US5226146A (en) | Duplicate tag store purge queue | |
| JPH09259036A (ja) | ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法 | |
| CN101593161A (zh) | 确保微处理器的快取存储器层级数据一致性的装置与方法 | |
| JP2000010860A (ja) | キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム | |
| JPH06266616A (ja) | メモリアクセス制御装置 | |
| US7549025B2 (en) | Efficient marking of shared cache lines | |
| JPH0797352B2 (ja) | コンピュータ・システム及び入出力コントローラ | |
| US5590310A (en) | Method and structure for data integrity in a multiple level cache system | |
| US5606687A (en) | Method and apparatus for optimizing supervisor mode store operations in a data cache | |
| CN1127693C (zh) | 保持指令、数据高速缓存之间相关性的方法和设备 | |
| US20050204088A1 (en) | Data acquisition methods | |
| EP0309995B1 (en) | System for fast selection of non-cacheable address ranges using programmed array logic | |
| US7464227B2 (en) | Method and apparatus for supporting opportunistic sharing in coherent multiprocessors | |
| US6256710B1 (en) | Cache management during cache inhibited transactions for increasing cache efficiency | |
| US6976130B2 (en) | Cache controller unit architecture and applied method | |
| US5619673A (en) | Virtual access cache protection bits handling method and apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 8 Free format text: PAYMENT UNTIL: 20090427 |
|
| LAPS | Cancellation because of no payment of annual fees |