JPH05257805A - キャッシュメモリ制御方式 - Google Patents

キャッシュメモリ制御方式

Info

Publication number
JPH05257805A
JPH05257805A JP4274029A JP27402992A JPH05257805A JP H05257805 A JPH05257805 A JP H05257805A JP 4274029 A JP4274029 A JP 4274029A JP 27402992 A JP27402992 A JP 27402992A JP H05257805 A JPH05257805 A JP H05257805A
Authority
JP
Japan
Prior art keywords
bus
cpu
cache memory
signal
cache
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
Application number
JP4274029A
Other languages
English (en)
Inventor
Ryuichi Hattori
隆一 服部
Yukihiro Seki
行宏 関
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPH05257805A publication Critical patent/JPH05257805A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】キャッシュメモリを用いた従来のシステムにお
いて、キャッシュメモリを内蔵したCPUを適用する場
合に簡易な回路の追加によって、CPU以外のバスマス
タが主メモリの内容を書きかえた場合に、CPU内蔵の
キャッシュメモリの保持データ内容と主メモリの記憶内
容とが不一致を生じないようにすること。 【構成】キャッシュメモリを内蔵するCPUと、外付け
のキャッシュコントローラと、主メモリと、バスマスク
とを有する情報処理装置において、バスマスタから主メ
モリに対して書き込み動作があった場合には、CPU内
臓のキャッシュメモリの全ての保持データを無効化する
手段を備えた。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、パーソナルコンピュー
タやワークステーション及びワードプロセッサ等の小形
情報処理機器に好適なキャッシュメモリ制御方式に関す
る。
【0002】
【従来の技術】パーソナルコンピュータ等の小形情報処
理機器の分野では、主記憶装置として集積度及び価格な
どの点からダイナミックメモリ(以下DRAMと略
す。)が広く用いられている。ところでダイナミックメ
モリにはアクセス速度が遅いという欠点があり、これを
補うために一般にキャッシュメモリと呼ばれる高速記憶
が使われている。キャッシュメモリはマイクロプロセッ
サ(以下CPUと略す。)と主メモリの中間に位置し、
主メモリの記憶内容の一部のコピーを保持する高速記憶
である。
【0003】図7に従来のキャッシュメモリを有する情
報処理装置のブロック図の一例を示す。図7において、
まずキャッシュメモリ2へのデータの取り込みは以下の
ように動作する。CPU1がアクセスアドレスをアドレ
スバス9、アドレスゲート7及びホストアドレスバス1
1を通じてシステムバス12へ出力する。メモリコント
ローラ5は主メモリ制御信号21を用いて主メモリ6を
制御し、メモリバス22を通じてシステムバス12上の
アドレスのデータをシステムバス12へ出力する。CP
Uはホストデータバス14、データバッファ8及びデー
タバス10を通じてシステムバス12のデータを取り込
む。この時、同時にキャッシュコントローラ3はアドレ
スバス9上のアドレスを取り込み、続いてキャッシュ制
御信号15を用いて、データバス10上のデータをキャ
ッシュメモリ2に取り込む。このようにしてキャッシュ
メモリ2は主メモリ6の記憶内容のコピーを保持する。
【0004】一般にキャッシュメモリは主メモリに比べ
て容量が小さいため、主メモリの記憶内容のすべてのコ
ピーを保持することはできない。このため、キャッシュ
メモリの内容を更新する様々な方式や、主メモリのアド
レスとキャッシュメモリの記憶場所との対応付け方法な
どがあるがここでは省略する。
【0005】次にCPUが同じアドレスをリードする場
合は以下のように動作する。図7においてまずキャッシ
ュコントローラ3はCPU1が出力するアドレスバス9
上のアクセスアドレスと前記取り込んだアドレスとを比
較して、一致するものがある場合にはキャッシュメモリ
2の保持するデータのうち、上記アドレスに該当するデ
ータをデータバス10に出力する。この時キャッシュコ
ントローラ3はデータバッファ制御信号19を用いてデ
ータバッファ8を制御し、システムバス12上のデータ
がデータバス10へ出力されないようにする。
【0006】このように一旦キャッシュメモリにデータ
を取り込んだ後は、同じアドレスのデータに対しては主
メモリをアクセスする必要が無く、キャッシュメモリか
ら高速にデータを読みだすことができる。ところで、こ
のようにキャッシュメモリを用いるためには、主メモリ
の記憶内容とそのアドレスに対応してキャッシュメモリ
が保持する上記記憶内容のコピーとが常に一致している
必要がある。もし一致していない場合には、CPUはキ
ャッシュメモリから誤ったデータを読み込んでしまい、
以後システムは正常な動作ができなくなる。このためキ
ャッシュコントローラはシステムバスを監視し、CPU
以外のバスマスタから主メモリに対して書き込み動作が
あったときには、主メモリのアドレスに該当するキャッ
シュメモリの記憶データを無効化するのが一般的であ
る。これをバススヌープ動作とよぶ。
【0007】例えば図7においてダイレクトメモリアク
セスコントローラ(以下DMACと略す。)が主メモリ
6に対して書き込み動作を行う場合には、まずDMAC
4はキャッシュコントローラ3に対してバス要求信号1
6を出力する。これに対してキャッシュコントローラ3
はバス開放信号17を送出し、同時にアドレスゲート7
およびデータバッファ8を制御してシステムバス12を
開放する。DMAC4はDMAアドレスバス13を通じ
てシステムバス12へDMAアドレスを出力し、メモリ
コントローラ5に対してメモリ書き込み信号20を出力
する。メモリコントローラ5は前記CPU1からのアク
セスと同様に主メモリ6を制御し、システムバス12上
のデータを主メモリ6のDMAアドレスに書き込む。こ
の時キャッシュコントローラ3はシステムバス12を監
視し、DMAC4がメモリ書き込み信号20を出力する
と、システムバス12上のDMAアドレスに該当するキ
ャッシュメモリ2の保持データを無効化する。このよう
にしてキャッシュコントローラ3はバススヌープ動作を
行い、主メモリ6とキャッシュメモリ2とのデータの一
致性を保持する。
【0008】実際のシステムにはこの他にCPU1から
のバスサイクル起動信号や、終了信号等のコマンド信号
や、リフレッシュ動作を行うための回路などがあるが、
本発明の本質には関係ないのでここでは省略する。
【0009】またシステムによっては、上記DMACの
ようなバスマスタや上記システムバスをコントロールす
るバスコントローラが、上記バススヌープ動作に必要な
アドレス情報を取り込むためのアドレスストローブ信号
を前記キャッシュコントローラに対して直接出力する場
合もある。その場合には、前記キャッシュコントローラ
が前記バス解放信号を出力し、システムバスを解放した
後に上記バスコントローラ等が、DMAアドレスをシス
テムバスに出力した後にアドレスストローブ信号を出力
する。
【0010】なおキャッシュメモリ制御に関する一般的
な公知例としては特開平2−37446公報、特開平2
−72449公報などが挙げられる、またバススヌープ
動作を行うキャッシュコントローラとしては、例えば米
国intel社の 82385 キャッシュコントローラー等
があり、米国インテル社のマニュアル 82385 HIGH PERF
ORMANCE 32-BIT CACHE CONTROLLER (1988年10月
発行)7ページ、19ページ、44ページに記載されて
いる。
【0011】バススヌープ動作に必要なアドレスストロ
ーブ信号を出力するバスコントローラとしては例えば、
米国インテル社のマニュアル 82358 EISA BUS CONTROLL
ER(EBC) (1990年2月発行)104ページ、108
ページ、133〜189ページに記載されている。
【0012】また近年マイクロプロセッサーの高集積化
が進み、例えば米国インテル社のCPU i486TM 等
のようにキャッシュメモリ及びキャッシュコントローラ
をチップ上に搭載したものも現れた。このようなキャッ
シュメモリ内蔵CPUを用いたシステムにおいても、前
記述べたように主メモリの記憶内容とキャッシュメモリ
が保持しているデータとの間で内容の一致性を保つた
め、バススヌープ動作を行なう必要がある。一般にこの
ようなキャッシュメモリ内蔵のCPUは、内蔵キャッシ
ュメモリを制御するためのキャッシュイネーブル信号
や、内蔵キャッシュメモリの全ての保持データを無効化
する(これをフラッシュと呼ぶ)ことが出来るフラッシ
ュ信号、およびバススヌープのためのアドレスストロー
ブ信号などを備えている。
【0013】キャッシュメモリを内蔵するCPUとして
は、例えば米国intel社のマニュアル i486 TM MIC
ROPROCESSOR (1989年11月発行)73ペ−ジから
77ページに記載されている。
【0014】ところでインテル社のi486は上記述べ
たようにキャッシュメモリを内蔵するほか、高速にデー
タをリードするためのバーストリードサイクルを備える
など、従来の80386に対していくつかの機能が追加
されている。例えばCPUに入力するクロック信号は、
従来の80386にはCPUの動作周波数の2倍の周波
数のクロック信号を入力する必要があったのに対して、
i486では動作周波数と同一周波数のクロック信号を
入力してやれば良い。さらに、RESET信号、LOC
K信号など従来の80386とは信号タイミングの規定
が変更されたり、80386にはなかった信号が追加さ
れている。また動作周波数も高速化が図られ、従来の8
0386が最大33MHzでしか動作しなかったのに対
し、最大50MHzで動作可能なi486も発表されて
いる。50MHzで動作可能なi486については、例
えば米国intel社のマニュアル i486 TM MICROPROC
ESSOR DATA BOOK (1991年6月発行:Order Number
240440-004 )1ページから192ページに記載されて
いる。
【0015】
【発明が解決しようとする課題】ところで上記述べたよ
うなキャッシュメモリ内蔵のCPUを図7に示す従来の
回路のCPUとして用いた場合には、以下に述べるよう
な問題が生じる。すなわち従来の方式にでは、主メモリ
の内容とそれに対応するキャッシュメモリの内容を一致
させるためのバススヌープ動作はキャッシュコントロー
ラのみが行なっており、CPUはシステムバスの内容を
監視していない。したがって、従来の方式においてキャ
ッシュメモリを内蔵したCPUを用いた場合には、CP
Uにアドレス情報が入力されていないので、内蔵キャッ
シュメモリに対してバススヌープ動作を行なうことが出
来ず、主メモリの記憶内容とCPU上の保持データ内容
とが不一致を生じ、その結果システムが誤動作をするの
で問題となる。これを解決するためには、図7における
アドレスゲート7を双方向バッファとし、CPU1に対
しバススヌープに必要なアドレス情報と制御信号を入力
する方法が考えられる。しかしこの方法は新たにシステ
ムを設計する場合には良いが、既にあるシステムのCP
Uのみを変更する場合には適用出来ない。また新たにシ
ステムを設計する場合にも、従来片方向だったアドレス
ゲートを双方向にする必要、及びバススヌープに必要な
制御信号をCPUに入力する必要があり、従来のシステ
ムに比べ物量が増すという問題点がある。
【0016】以上述べてきたように、キャッシュメモリ
を内蔵するCPUを従来のシステムのCPUとして使用
する場合には、バススヌープ動作を行なうことが出来な
いため、CPU以外のバスマスタから主メモリに対して
書き込みがあった場合に主メモリの記憶内容とCPU上
のキャッシュメモリの保持データの内容が不一致を生
じ、正しい動作が出来ないという問題がある。
【0017】また、バススヌープ動作を行なうためにシ
ステムを設計し直す場合には、従来のシステムに比べて
物量が増えるという問題がある。
【0018】本発明の目的は、キャッシュメモリを内蔵
するCPUを従来のシステムに適用する際に、主メモリ
の記憶内容とCPU上のキャッシュメモリの保持データ
内容とが、不一致を生じないようにするキャッシュメモ
リ制御方式を提供することにある。
【0019】本発明の他の目的は、キャッシュメモリを
内蔵するCPUを用いたシステムにおいて、バススヌー
プに必要な物量を増加させることなく、かつ簡易にCP
U上のキャッシュメモリと主メモリとの間でデータの不
一致が生じないようにするキャッシュメモリ制御方式を
提供することにある。
【0020】ところで、従来の80386CPUと82
385キャッシュコントローラを用いたシステムにおい
て、80386CPUに代えてキャッシュメモリを内蔵
するインテル社のi486を用いた場合、次のような問
題点が生じる。すなわちi486は従来の80386に
対して前記述べたようにキャッシュメモリを内蔵する以
外にも、バーストリードサイクルの追加、最大動作周波
数が50MHzまで高速化されているなど機能上の変更
点がある。さらに82385キャッシュコントローラ
は、80386インターフェースであり新たに追加され
たi486のバーストリードサイクルには対応していな
い。また82385は33MHz以下でしか動作しない
ため80386CPUを単純にi486に置き換えて8
2385キャッシュコントローラの信号をi486に接
続しただけでは、i486を50MHzで動作させた場
合に信号タイミングが異なる、などの問題が生じる。こ
のため上記システムではi486を最大33MHzでし
か動作させることが出来ず、またバーストリードサイク
ルを行えないので、本来i486が50MHzで動作し
バーストリードサイクルを行った場合に比べて、性能低
下を招くという問題点がある。
【0021】本発明の目的は、33MHz以下で動作す
るキャッシュコントローラ82385およびCPU80
386を用いた従来のシステムにおいて、80386の
代わりにCPUとしてi486を用いた場合に、i48
6を50MHzで動作させることの出来るバス変換手段
を提供することにある。
【0022】本発明の他の目的は、キャッシュコントロ
ーラ82385およびCPU80386を用いた従来の
システムにおいて、80386の代わりにCPUとして
50MHzで動作するi486を用いた場合に、信号同
期化のロスを最小にするとともに、i486のバースト
リードサイクルを動作させるための手段を提供すること
にある。
【0023】本発明のさらに他の目的は、キャッシュコ
ントローラ82385およびCPU80386を用いた
従来のシステムにおいて、80386の代わりにCPU
として50MHzで動作するi486を用いた場合に、
主メモリの記憶内容とCPU上のキャッシュメモリの保
持データ内容とが、不一致を生じないようにするキャッ
シュメモリ制御方式を提供することにある。
【0024】
【課題を解決するための手段】本発明は上記目的を達成
するために、キャッシュメモリ内蔵のCPU以外のバス
マスタから主メモリへ書き込みがあった場合にはこれを
検出し、CPUのフラッシュ信号を用いて内蔵キャッシ
ュメモリの内容を全て無効化するものである。
【0025】また外付けキャッシュコントローラが他の
バスマスタからバス要求信号を受付け、バス開放信号を
出力した場合にはこれを検出し、CPUのフラッシュ信
号を用いて内蔵キャッシュメモリの記憶内容を全て無効
化するものである。
【0026】さらに外付けキャッシュコントローラが他
のバスマスタからバス要求信号を受付け、バス開放信号
を出力した場合にはこれを検出し、かつリフレッシュサ
イクルを示す信号が出力されていない場合には、CPU
のフラッシュ信号を用いて内蔵キャッシュメモリの記憶
内容を全て無効化するものである。
【0027】さらにバスコントローラなどがバススヌー
プのためのアドレスストローブ信号などを出力した場合
にはこれを検出し、CPU内蔵のキャッシュメモリの内
容を全て無効化するものである。
【0028】また本発明はCPUを周波数f、外付けキ
ャッシュコントローラを含むCPU以外のシステムを周
波数f/2でそれぞれ動作させ、周波数fのCPUのサ
イクルを周波数f/2の外付けキャッシュメモリのサイ
クルへと変換するものである。具体的にはバス変換回路
にてCPUが出力する周波数fの信号を周波数f/2の
信号へ、周波数f/2の信号をCPUの周波数fの信号
へと変換する手段を設けたものである。
【0029】さらに本発明は、周波数fで動作するCP
Uの1回のバーストリードサイクルをバス変換回路に
て、周波数f/2で動作する外付けキャッシュコントロ
ーラの複数回のサイクルへと変換するものである。
【0030】
【作用】CPU以外のバスマスタから主メモリへ書き込
みがあった場合には、メモリコントローラへのメモリ書
き込み信号を検出し、フラッシュ信号を用いてCPU内
蔵のキャッシュメモリの内容を全て無効化するので、主
メモリの内容とそれに対応するCPU上のキャッシュメ
モリの保持データ内容が不一致を生じてシステムが誤動
作することがない。
【0031】またキャッシュコントローラが出力するバ
ス開放信号を検出した場合には、フラッシュ信号を用い
てCPU内蔵のキャッシュメモリの内容を全て無効化す
るので、バス開放中に主メモリに書き込み動作があった
場合でも、主メモリの内容とそれに対応するCPU上の
キャッシュメモリの保持データ内容が不一致を生じてシ
ステムが誤動作することがない。
【0032】またキャッシュコントローラが出力するバ
ス開放信号を検出し、かつリフレッシュサイクルを示す
信号が出力されていない場合には、フラッシュ信号を用
いてCPU内蔵のキャッシュメモリの内容を全て無効化
するので、バス開放中に主メモリにたいしてリフレッシ
ュ動作以外の書き込み動作があった場合でも、主メモリ
の内容とそれに対応するCPU上のキャッシュメモリの
保持データ内容が不一致を生じてシステムが誤動作する
ことがない。
【0033】さらにバスコントローラが出力するアドレ
スストローブ信号を検出し、フラッシュ信号を用いてC
PU内蔵のキャッシュメモリの内容を全て無効化するの
で、バススヌープ動作の必要な場合にも、主メモリの内
容とそれに対応するCPU上のキャッシュメモリの保持
データ内容が不一致を生じてシステムが誤動作をするこ
とがない。
【0034】またCPUが周波数fで動作し、外付けキ
ャッシュコントローラなどのシステムはf/2で動作す
るので、50MHzで動作するi486を用いたシステ
ムでも、外付けキャッシュコントローラを最大動作周波
数以下の25MHzで動作させることにより、i486
の性能を最大に引き出しかつ、CPUと周辺回路の周波
数比が2倍であるので同期化によるロスを最小にするこ
とができる。
【0035】さらにi486が出力する周波数fのバー
ストリードサイクル起動信号とバーストサイクル信号、
およびキャッシュコントローラが出力するバス終了信号
とをバス変換回路にて検出し、1回のバーストリードサ
イクルを周波数f/2の外付けキャッシュメモリの複数
回のサイクルに変換するので、バーストリード動作に対
応していない82385キャッシュコントローラを用い
てi486のバーストリード動作を実現することができ
る。
【0036】CPU以外の周波数f/2で動作するバス
マスタから主メモリへ書き込みがあった場合には、バス
変換回路にてメモリコントローラへの周波数f/2のメ
モリ書き込み信号を検出し、周波数fのフラッシュ信号
を用いて周波数fで動作するCPU内蔵のキャッシュメ
モリの内容を全て無効化するので、主メモリの内容とそ
れに対応するCPU上のキャッシュメモリの保持データ
内容が不一致を生じてシステムが誤動作することがな
い。
【0037】また、周波数f/2で動作するキャッシュ
コントローラがバス開放信号を出力している間に周波数
f/2で動作するバスマスタがメモリ書き込み信号を出
力した場合には、バス変換回路にてこれを検出し周波数
fのフラッシュ信号を用いて周波数fで動作するCPU
内蔵のキャッシュメモリの内容を全て無効化するので、
バス開放中に主メモリに書き込み動作があった場合で
も、主メモリの内容とそれに対応するCPU上のキャッ
シュメモリの保持データ内容が不一致を生じてシステム
が誤動作することがない。
【0038】
【実施例】以下本発明の一実施例を図を用いて説明す
る。図1に示す第一の実施例においてCPU101はキ
ャッシュメモリ105を内蔵しており、内蔵キャッシュ
メモリ105のフラッシュのためのフラッシュ信号10
4を有している。図1において、DMAC4から主メモ
リ6に対する書き込み動作は以下のように行われる。ま
ずDMAC4はバス要求信号16をキャッシュコントロ
ーラ3へ出力し、キャッシュコントローラ3はバス開放
信号17を出力すると同時に、アドレスゲート制御信号
18及びデータバッファ制御信号19を用いてアドレス
ゲート7及びデータバッファ8を制御し、システムバス
12を開放する。DMAC4はバス開放信号17を受け
取ると、DMAアドレスバス13を通じてDMAアドレ
スをシステムバス12へ出力し、同時にメモリ書き込み
信号20を出力する。メモリコントローラ5はメモリ書
き込み信号20を受け取ると、システムバス12上のD
MAアドレスに基づいてメモリ制御信号21を出力し、
メモリバス22を通じてシステムバス12のデータを主
メモリ6に書き込む。書き込み終了後DMAC4はバス
要求信号16の出力を止め、それに応じてキャッシュコ
ントローラ3はバス開放信号17の出力を止めると同時
に、アドレスゲート7及びデータバッファ8を制御しバ
ス開放を終了する。上記動作において、キャッシュコン
トローラ3はメモリ書き込み信号20が出力されると、
システムバス12上のDMAアドレスを入力し、対応す
るキャッシュメモリ2の保持データを無効化するバスス
ヌープ動作を行う。またバス開放信号17とメモリ書き
込み信号20とが同時に出力された場合に、ゲートa1
02およびゲートb103によってフラッシュ信号10
4が出力され、CPU101の内蔵キャッシュメモリ1
05の全ての保持データを無効化する。実際のシステム
にはCPU101からのバスサイクル起動信号やバスサ
イクル終了信号、内蔵キャッシュ制御信号、リフレッシ
ュ動作を行なう回路などがあるが本発明の本質に関係な
いのでここでは省略する。
【0039】次に図1に示す回路の動作を図2に示すタ
イムチャートを用いて説明する。図2において、図1に
おけるDMAC4から主メモリ6への書き込みは、まず
時刻T1にDMAC4がバス要求信号16(HOLD)
を出力し、時刻T2にキャッシュコントローラ3がバス
開放信号17(HLDA)を出力する。続いて時刻T3
にDMAC4はDMAアドレスバス13にDMAアドレ
スを出力し、さらに時刻T4にメモリ書き込み信号20
(MWTC−N)を出力する。ゲートa102とゲート
b103はバス開放信号17(HLDA)とメモリ書き
込み信号20(MWTC−N)とからフラッシュ信号1
04(FLUSH−N)を生成し、CPU101へ出力
する。CPU101はフラッシュ信号104(FLUS
H−N)を入力すると、内蔵キャッシュメモリ105の
全ての保持内容を無効化する。その後時刻T6にDMA
C4はバス要求信号16(HOLD)の出力を止め、時
刻T7にDMAアドレス13の出力も終了する。最後に
キャッシュコントローラ3がバス開放信号17(HLD
A)の出力をやめ、サイクルを終了する。
【0040】続いて図3に本発明の他の実施例のブロッ
ク図を示す。図3においてリフレッシュ信号107は、
主メモリ6に対してDRAMのリフレッシュサイクルを
起動する場合、またはリフレッシュ動作を要求する場合
に出力する信号である。リフレッシュサイクルとは、主
メモリの記憶素子に用いられているDRAMが揮発性メ
モリであるために、一定時間に最低一度は行なう必要が
ある記憶保持動作(これをリフレッシュと呼ぶ)のため
のサイクルである。リフレッシュサイクルでは主メモリ
6の内容は変化しないため、キャッシュメモリ2に対す
るバススヌープ動作は行なう必要がない。図2において
DMAC4から主メモリ6へ書き込み動作を行なう際、
バス開放信号17が出力されかつリフレッシュ信号10
7が出力されていない場合に、ゲートc106によって
フラッシュ信号104が生成され、CPU101へ出力
される。CPU101はフラッシュ信号104を入力す
ると、内蔵キャッシュメモリ105の保持データ内容を
すべて無効化する。図3の他の部分の動作については図
1と同様であるので、ここでは省略する。
【0041】続いて図3の回路の動作を図4に示すタイ
ミングチャートを用いて説明する。図4において、時刻
T2に図3におけるキャッシュコントローラ3がバス開
放信号17(HLDA)を出力する。この時リフレッシ
ュ信号20(REFRESH−N)が出力されていない
ので、フラッシュ信号104(FLUSH−N)を出力
する。もし、この時リフレッシュ信号104(REFR
ESH−N)が出力されていると、上記述べたようにリ
フレッシュサイクルではバススヌープ動作が必要ないの
で、フラッシュ信号104(FLUSH−N)を出力し
ない。その後時刻T8にキャッシュコントローラ3がバ
ス開放信号17(HLDA)の出力をやめ、それによっ
てフラッシュ信号104(FLUSH−N)の出力も終
了する。図4における他の動作は図2と同一であるので
ここでは省略する。
【0042】続いて図5に本発明のさらに他の実施例の
ブロック図を示す。図5においてバスマスタ108が主
メモリ6へ書き込み動作を行なう際、キャッシュコント
ローラ3からバス開放信号17を受け取ると、DMAア
ドレスバス13にアドレスを出力すると同時にメモリ書
き込み信号20を出力し、さらにキャッシュコントロー
ラ3に対してアドレスストローブ信号109(HSST
RB−N)を出力する。キャッシュコントローラ3はア
ドレスストローブ信号109を入力すると、システムバ
ス12上のアドレス情報をもとにバススヌープ動作を行
なう。これと同時にゲートd110がアドレスストロー
ブ信号109(HSSTRB−N)からフラッシュ信号
104(FLUSH−N)を作成しCPU101へ出力
して、内蔵キャッシュメモリ105の保持データ内容を
すべて無効化する。図5の他の部分の動作については図
1と同様であるので、ここでは省略する。
【0043】続いて図5の回路の動作を図6に示すタイ
ミングチャートを用いて説明する。図6において、時刻
T2に図3におけるキャッシュコントローラ3がバス開
放信号17(HLDA)を出力し、時刻T3にバスマス
タ108がDMAアドレス13を出力する。その後時刻
T9にアドレスストローブ信号109(HSSTRB−
N)をキャッシュコントローラ3に対して出力する。同
時にゲートd110がフラッシュ信号104(FLUS
H−N)をCPU101へ出力し、内蔵キャッシュメリ
105の保持データを無効化する。図4における他の動
作は図2と同一であるのでここでは省略する。
【0044】さらに図8にCPUとして50MHzで動
作する米国インテル社のi486,キャッシュコントロ
ーラに33MHzまで動作可能な同じくインテル社の8
2385を用いた他の実施例を示す。図8においてi4
86CPU201およびバス変換回路202は、クロッ
ク生成部211が出力する50MHzクロック213に
同期して動作する。また82385キャッシュコントロ
ーラ3およびメモリコントローラ5は、50MHzクロ
ック213をクロック分周回路212にて2分周した2
5MHzクロック214に同期して動作する。図8に示
す実施例の動作を図9及び図10に示すタイミングチャ
ートを用いて説明する。まず図9にバーストサイクルで
はない、通常のバスサイクルの一例を示す。まず時刻T
10においてi486CPU201は50MHzクロッ
ク212に同期してバス起動信号a203(ADS−
N;負論理出力)を出力し、続いて時刻T11にバース
ト信号205(BLAST−N;負論理出力)をハイレ
ベルに出力して通常のバスサイクルを開始する。バス変
換回路202はバス起動信号a203がローレベルにな
ったのを検出し、時刻T11から25MHzクロック2
14に同期してバス起動信号b206(負論理出力)を
82385キャッシュコントローラ3へ出力する。82
385キャッシュコントローラ3はi486CPU20
1の出力するステータス信号(図中では省略する)に応
じて所定のメモリサイクル、i/oサイクル等のバスサ
イクルを実行して、バスサイクル終了後の時刻T13に
25MHzクロック214に同期してバス終了信号b2
08(負論理出力)を時刻T15まで出力する。バス変
換回路202はバス終了信号b208を検出すると、時
刻T14から50MHzクロック212に同期してバス
終了信号a204(BRDY−N;負論理出力)を出力
しi486CPU201のバスサイクルを終了する。図
8の他の部分の動作については図1、図3などと同様で
あるのでここでは省略する。
【0045】続いて図8に示す実施例のバーストサイク
ル動作を図10に示すタイミングチャートを用いて説明
する。図10において時刻T10にi486CPU20
1がバス起動信号a20を出力し、続いて時刻T11に
バースト信号205をローレベルに出力してバーストサ
イクルを起動する。図9と同様にi486CPU201
がバーストサイクルを起動した後、バス変換回路202
が時刻T11に82385キャッシュコントローラ3に
バスサイクルを起動し、82385キャッシュコントロ
ーラ3が時刻T13にバス終了信号b208を出力す
る。ここで時刻T14にバースト信号205がローレベ
ルに出力されている場合には、バス変換回路202にて
これを検出し時刻T15にバス起動信号b206を出力
し、82385キャッシュコントローラ3にバスサイク
ルを起動する。バーストサイクルでは、i486CPU
201がバースト信号205をハイレベルに出力するま
で、バス変換回路202がバス起動信号b206(負論
理出力)を82385キャッシュコントローラ3へ出力
してバスサイクルを繰返し起動する。その後時刻T17
に82385キャッシュコントローラ3がバス終了信号
b208を出力し、バス変換回路202が時刻T18に
バス終了信号a204を出力して時刻T19にi486
CPU201がバースト信号205をハイレベルに出力
していると、そこでバーストサイクルを終了する。
【0046】次に図11にCPUとして50MHzで動
作する米国インテル社のi486,キャッシュコントロ
ーラに25MHzで動作するインテル社の82385を
用いたさらに他の実施例を示す。図10においてバスマ
スタであるDMAC4がメモリコントローラ5に対し
て、メモリ書き込み信号20(負論理出力)を出力して
メモリ書き込みを行なうと、バス変換回路202はメモ
リ書き込み信号20がローレベルに出力されたことを検
出して、50MHzクロック213に同期してフラッシ
ュ信号104(負論理出力)を出力してi486CPU
201の内蔵キャッシュメモリを無効化する。次に図1
2に示すタイミングチャートを用いて図11の動作を説
明する。まず時刻T4にDMACがメモリ書き込み信号
20(MWTC−N;負論理出力)を出力する。すると
バス変換回路202は時刻T20に50MHzクロック
信号213に同期してフラッシュ信号104(FLUS
H−N;負論理出力)を出力する。フラッシュ信号10
4を出力するタイミングは50MHzクロック信号21
3に同期していれば、メモリ書き込み信号20が出力さ
れている期間中のいつでも良く、実施例に示されるタイ
ミングに限られるものではない。さらにフラッシュ信号
104の出力期間はメモリ書き込み信号20の出力期間
中であれば、50MHzクロック213の1クロック長
の整数倍であれば良く、実施例の出力期間に限られるも
のではない。また図11に示す実施例の他の部分の動作
は図1、図3、図8などと同様であるのでここでは省略
する。
【0047】次に図13にCPUとして50MHzで動
作する米国インテル社のi486,キャッシュコントロ
ーラに33MHzまで動作可能な同じくインテル社の8
2385を用いたさらに他の実施例を示す。図14に示
すタイミングチャートを用いて図13に示す実施例の動
作を説明する。DMAC4は時刻T1にバス要求信号1
6(HOLD;正論理出力)を出力してバス使用権を要
求する、これに対して82385キャッシュコントロー
ラ3は時刻T2にバス開放信号17(HLDA;正論理
出力)をハイレベルに出力しシステムバスを開放する。
続いて時刻T4にDMAC4がメモリ書き込み信号20
を出力すると、バス変換回路202はバス開放信号17
とメモリ書き込み信号20とが同時に出力されているこ
とを検出し、50MHzクロック213に同期してフラ
ッシュ信号104(負論理出力)を出力してi486C
PU201の内蔵キャッシュメモリを無効化する。フラ
ッシュ信号104を出力するタイミングは50MHzク
ロック信号213に同期していれば、バス開放信号17
およびメモリ書き込み信号20が同時に出力されている
期間中のいつでも良く、実施例に示されるタイミングに
限られるものではない。さらにフラッシュ信号104の
出力期間はバス開放信号17及びメモリ書き込み信号2
0の出力期間中であれば、50MHzクロック213の
1クロック長の整数倍であれば良く、実施例の出力期間
に限られるものではない。また図13に示す実施例の他
の部分の動作については図1、図3、図8などと同様で
あるのでここでは省略する。
【0048】
【発明の効果】以上述べてきたように本発明によれば、
従来のキャッシュメモリを有するシステムにおいてキャ
ッシュメモリ内蔵のCPUを用いる場合に、簡単な回路
の追加によって、CPU以外のバスマスタから主メモリ
に書き込みがあった場合にも、主メモリの内容とCPU
内蔵キャッシュメモリの保持するデータとの間で内容の
不一致が生じることを防ぐことが出来る。
【0049】またキャッシュメモリ内蔵のCPUを用い
てシステムを構成する場合に、大きく物量を増加させる
ことなく、かつ主メモリの内容とCPU内蔵キャッシュ
メモリの保持するデータとの間で内容の不一致が生じる
ことを防ぐことが出来る。
【0050】さらにi486CPUと82385キャッ
シュコントローラを組み合わせたシステムにおいて、i
486のバーストリードサイクル動作を実現できる。
【0051】さらに周波数fで動作するi486CPU
と、周波数f/2で動作する82385キャッシュコン
トローラを組み合わせたシステムにおいて、主メモリの
内容とi486内蔵のキャッシュメモリが保持するデー
タとの間で内容の不一致が生じることを防ぐことが出来
る。
【図面の簡単な説明】
【図1】本発明の第一の実施例を示すブロック図であ
る。。
【図2】第一の実施例の動作を表すタイミングチャート
である。
【図3】本発明の第二の実施例を示すブロック図であ
る。
【図4】第二の実施例の動作を表すタイミングチャート
である。
【図5】本発明の第三の実施例を示すブロック図であ
る。
【図6】第三の実施例の動作を表すタイミングチャート
である。
【図7】従来のキャッシュメモリ制御方式を表すブロッ
ク図である。
【図8】本発明の第四の実施例を示すブロック図であ
る。
【図9】第四の実施例の動作を表すタイミングチャート
である。
【図10】第四の実施例の動作を表す他のタイミングチ
ャートである。
【図11】本発明の第五の実施例を示すブロック図であ
る。
【図12】第五の実施例の動作を表すタイミングチャー
トである。
【図13】本発明の第六の実施例を示すブロック図であ
る。
【図14】第六の実施例の動作を表すタイミングチャー
トである。
【符号の説明】
1…CPU、 2…キャッシュメモリ、 3…キャッシュコントローラ、 4…DMAC、 5…メモリコントローラ、 6…主メモリ、 7…アドレスゲート、 8…データバッファ、 9…アドレスバス、 10…データバス、 11…ホストアドレスバス、 12…システムバス、 13…DMAアドレスバス、 14…ホストデータバス、 15…キャッシュ制御信号、 16…バス要求信号(HOLD)、 17…バス開放信号(HLDA)、 18…アドレスゲート制御信号、 19…データバッファ制御信号、 20…メモリ書き込み信号、 21…メモリ制御信号、 22…メモリデータバス、 101…CPU、 102…ゲートa、 103…ゲートb、 104…フラッシュ信号、 105…内蔵キャッシュメモリ、 106…ゲートc、 107…リフレッシュ信号、 108…バスマスタ、 109…アドレスストローブ信号、 110…ゲートd、 201…i486CPU、 202…バス変換回路、 203…バス起動信号a、 204…バス終了信号a、 205…バースト信号、 206…バス起動信号b、 208…バス終了信号b、 209…リフレッシュ信号、 211…クロック生成部、 212…クロック分周回路、 213…50MHzクロック、 214…25MHzクロック。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】キャッシュメモリを内蔵するCPUを用い
    た情報処理装置において、CPU以外のバスマスタから
    主メモリに書き込み動作があった場合には、CPUの内
    蔵キャッシュメモリの全ての保持データを無効化するこ
    とを特徴とするキャッシュメモリ制御方式。
  2. 【請求項2】キャッシュメモリを内蔵するCPUと、外
    付けのキャッシュコントローラと、主メモリと、バスマ
    スタとを有する情報処理装置において、前記バスマスタ
    から前記主メモリに対して書き込み動作があった場合に
    は、CPU内蔵のキャッシュメモリの全ての保持データ
    を無効化する手段を備えたことを特徴とするキャッシュ
    メモリメモリ制御方式。
  3. 【請求項3】請求項2に記載のバスマスタはDMAコン
    トローラであることを特徴とするキャッシュメモリ制御
    方式。
  4. 【請求項4】請求項2に記載の情報処理装置において、
    前記キャッシュコントローラが前記バスマスタに対しバ
    ス開放信号を出力した場合には、前記CPU内蔵のキャ
    ッシュメモリの全ての保持データを無効化する手段を備
    えたことを特徴とするキャッシュメモリ制御方式。
  5. 【請求項5】請求項4に記載のバスマスタはDMAコン
    トローラであることを特徴とするキャッシュメモリ制御
    方式。
  6. 【請求項6】キャッシュメモリを内蔵するCPUと、外
    付けのキャッシュコントローラと、バスコントローラと
    を有する情報処理装置において、前記バスコントローラ
    が前記キャッシュコントローラに対しアドレスストロー
    ブ信号を出力した場合には、CPUの内蔵キャッシュメ
    モリの全ての保持データを無効化することを特徴とする
    キャッシュメモリ制御方式。
  7. 【請求項7】周波数fで動作するキャッシュメモリを内
    蔵するCPUと、周波数f/2で動作する外付けキャッ
    シュメモリとを用いた情報処理装置において、CPUの
    1回のバーストリードサイクルを複数回のキャッシュメ
    モリへのリードサイクルに分割する手段を備えたことを
    特徴とするキャッシュメモリ制御方式。
  8. 【請求項8】周波数fで動作するキャッシュメモリを内
    蔵するCPUと、周波数f/2で動作する外付けのキャ
    ッシュコントローラと、主メモリと、バスマスタとを有
    する情報処理装置において、前記バスマスタから前記主
    メモリに対して書き込み動作があった場合には、CPU
    内蔵のキャッシュメモリの全ての保持データを無効化す
    る手段を備えたことを特徴とするキャッシュメモリ制御
    方式。
  9. 【請求項9】請求項8に記載のバスマスタはDMAコン
    トローラであることを特徴とするキャッシュメモリ制御
    方式。
  10. 【請求項10】請求項8に記載の情報処理装置におい
    て、前記キャッシュコントローラが前記バスマスタに対
    しバス開放信号を出力した場合には、前記CPU内蔵の
    キャッシュメモリの全ての保持データを無効化する手段
    を備えたことを特徴とするキャッシュメモリ制御方式。
  11. 【請求項11】請求項10に記載のバスマスタはDMA
    コントローラであることを特徴とするキャッシュメモリ
    制御方式。
  12. 【請求項12】周波数fで動作するキャッシュメモリを
    内蔵するCPUと、周波数f/2で動作する外付けのキ
    ャッシュコントローラと、周波数f/2で動作するバス
    コントローラとを有する情報処理装置において、前記バ
    スコントローラが前記キャッシュコントローラに対しア
    ドレスストローブ信号を出力した場合には、CPUの内
    蔵キャッシュメモリの全ての保持データを無効化するこ
    とを特徴とするキャッシュメモリ制御方式。
JP4274029A 1992-01-14 1992-10-13 キャッシュメモリ制御方式 Pending JPH05257805A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP4-4496 1992-01-14
JP449692 1992-01-14

Publications (1)

Publication Number Publication Date
JPH05257805A true JPH05257805A (ja) 1993-10-08

Family

ID=11585683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4274029A Pending JPH05257805A (ja) 1992-01-14 1992-10-13 キャッシュメモリ制御方式

Country Status (1)

Country Link
JP (1) JPH05257805A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006023792A (ja) * 2004-07-06 2006-01-26 Fujitsu Ltd 情報処理装置
WO2010035425A1 (ja) * 2008-09-24 2010-04-01 パナソニック株式会社 キャッシュメモリ、メモリシステム及びその制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006023792A (ja) * 2004-07-06 2006-01-26 Fujitsu Ltd 情報処理装置
WO2010035425A1 (ja) * 2008-09-24 2010-04-01 パナソニック株式会社 キャッシュメモリ、メモリシステム及びその制御方法

Similar Documents

Publication Publication Date Title
US5524235A (en) System for arbitrating access to memory with dynamic priority assignment
US5802576A (en) Speculative cache snoop during DMA line update
US5787486A (en) Bus protocol for locked cycle cache hit
US5341487A (en) Personal computer having memory system with write-through cache and pipelined snoop cycles
JPS6362010B2 (ja)
US7581054B2 (en) Data processing system
WO1994008297A1 (en) Method and apparatus for concurrency of bus operations
WO1994008297A9 (en) Method and apparatus for concurrency of bus operations
CN107257964B (zh) Dram电路、计算机系统和访问dram电路的方法
US5918069A (en) System for simultaneously writing back cached data via first bus and transferring cached data to second bus when read request is cached and dirty
JPH08263373A (ja) キャッシュにおけるスヌーピング装置および方法
KR930001584B1 (ko) 마이크로 컴퓨터 시스템
US5845107A (en) Signaling protocol conversion between a processor and a high-performance system bus
JP2001282704A (ja) データ処理装置及びデータ処理方法とデータ処理システム
JP2001195242A (ja) データ処理システム
US5699553A (en) Memory accessing device for a pipeline information processing system
US6205507B1 (en) Memory coherency in a processor-to-bus cycle in a multi-processor system
US6938118B1 (en) Controlling access to a primary memory
US5325535A (en) Lock signal extension and interruption apparatus
KR960007833B1 (ko) 고속 페이지 모드 선택을 위한 방법 및 장치
US5809534A (en) Performing a write cycle to memory in a multi-processor system
US20030088801A1 (en) Implementation of wait-states
JP3111052B2 (ja) 複数のプロセッサに接続されたバスにデータを供給する方法およびシステム
JPH07129456A (ja) コンピュータシステム
US6298417B1 (en) Pipelined cache memory deallocation and storeback