JPH0727493B2 - ライトスルーキャッシュおよびパイプラインスヌープサイクルを備えたメモリシステムを有するパーソナルコンピュータ - Google Patents

ライトスルーキャッシュおよびパイプラインスヌープサイクルを備えたメモリシステムを有するパーソナルコンピュータ

Info

Publication number
JPH0727493B2
JPH0727493B2 JP4291228A JP29122892A JPH0727493B2 JP H0727493 B2 JPH0727493 B2 JP H0727493B2 JP 4291228 A JP4291228 A JP 4291228A JP 29122892 A JP29122892 A JP 29122892A JP H0727493 B2 JPH0727493 B2 JP H0727493B2
Authority
JP
Japan
Prior art keywords
memory
cycle
snoop
personal computer
state
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
Application number
JP4291228A
Other languages
English (en)
Other versions
JPH0628254A (ja
Inventor
マイケル、トマス、ダーウィン
ウィリアム、アラン、ウォール
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0628254A publication Critical patent/JPH0628254A/ja
Publication of JPH0727493B2 publication Critical patent/JPH0727493B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

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】
【従来の技術およびその課題】メインメモリおよび、デ
ータを一時的に記憶するための高速キャッシュを含むメ
モリシステムは公知である。キャッシュのデータはプロ
セッサまたはマイクロプロセッサによって容易にアクセ
スできる。2つ以上のデバイスがそうしたキャッシュ可
能メモリにアクセスできるようにコンピュータが設計さ
れている場合、キャッシュの内容がメモリと矛盾しない
ようにしておくために、キャッシュの一致性が維持され
なければならない。次のような状況を検討しよう。中央
処理装置(CPU)がメインメモリからのデータを一時
的に記憶するためにライトスルーキャッシュを使用して
おり、他方、代わりのバスマスタもメインメモリのその
データにアクセスできるとする。そのバスマスタがCP
Uのキャッシュにもたまたま存在している記憶場所に新
しいデータを書き込んだ場合、CPUにそのキャッシュ
にあるデータがもはや有効ではないことを知らせるため
に無効化サイクルが生起しなければならない。「スヌー
プ」サイクルとしても知られる無効化サイクルは、バス
マスタの書き込みサイクルと同時に生じなければならな
い。このような動作は、新しいデータがメインメモリに
書き込まれる時間とCPUが自己のキャッシュ記憶場所
が無効であることを知る時間との間のあらゆる待ち時間
をなくすものである。
【0003】バスマスタがメモリに対していくつかの書
き込みサイクルを実行した場合、影響を受ける各キャッ
シュ線はそのキャッシュ内で無効にされなければならな
い。基本スヌープサイクルの時間がメモリ書き込みサイ
クルよりも短い限り、連続したスヌープサイクルを実行
するうえでまったく問題はない。しかし、基本スヌープ
サイクルの長さがメモリ書き込みサイクルよりも長くな
った場合、以下の2つの状況のいずれかが生じるかもし
れない。1)スヌープ制御機構がバスマスタ書き込みサ
イクルと同調できないために、キャッシュの一致性(キ
ャッシュの内容がメインメモリの対応する内容と同一で
あること)が維持されなくなる。または、2)そのスヌ
ープサイクルが完了できるように、バスマスタがより低
速サイクルで動作するように強いられる。それらのスヌ
ープサイクルがパイプライン化できれば、そうした状況
は回避できる。
【0004】
【課題を解決するための手段】本発明の第1の目的は、
メモリ書き込みサイクルの時間よりも長い基本スヌープ
サイクルを持つ連続したスヌープサイクルをパイプライ
ン化する機構である、ライトスルーキャッシュを有する
メモリシステム用の改良されたスヌープ制御機構を供す
ることである。
【0005】本発明の第2の目的は、キャッシュの非一
致性を防止するためにスヌープサイクルがパイプライン
化されるスヌープ制御機構を供することである。
【0006】本発明の第3の目的は、バスマスタが連続
する書き込みサイクルを実行するために全速度で動作で
きるようにするためにスヌープサイクルをパイプライン
化することである。
【0007】本発明の第4の目的は、異なるキャッシュ
線に位置する対応するキャッシュ記憶場所を有する記憶
場所に書き込み、そのようなキャッシュ線を、パイプラ
イン化され、かつ、メモリ書き込みサイクルよりも長い
時間を有するスヌープサイクルを用いて無効にすること
である。
【0008】すなわち、本発明に従えば、メモリシステ
ムは、2つ以上のデバイスによってアクセス可能なライ
トスルーキャッシュを有する。スヌープ機構は、現スヌ
ープサイクルの終了前に新しいメモリ書き込みサイクル
が開始したかどうかを判定するためにバスマスタ制御信
号を監視する論理を含む。新しい書き込みサイクルが開
始していれば、そのスヌープ機構がそのメモリ書き込み
サイクルに遅れないように、その前のスヌープサイクル
とオーバラップしパイプライン化された対応するスヌー
プサイクルが生起する。
【0009】
【実施例】
〔データ処理システム〕図1について説明する。コンピ
ュータシステム10は、システムボード(すなわち、プ
レーナ)12およびプロセッサ複合体14を含む。プロ
セッサ複合体14は、プロセッサ複合体コネクタ15に
よってプレーナ12に接続されている。プレーナ12
は、プレーナメモリ16および、例えばMICRO C
HANNELコンピュータアーキテクチャに適合すると
してよい、入出力(I/O)バス18を含む。メモリ1
6は、双方向インタリーブドメモリを形成する2つのバ
ンク17Aおよび17Bを含む。拡張デバイス19は、
入出力バス18によってコンピュータ10に接続するこ
とができる。プレーナ12はまた、通常動作においてコ
ンピュータ10によって使用される、従来のビデオ回
路、タイミング回路、キーボード制御回路および割り込
み回路(すべて図示せず)も含んでよい。
【0010】プロセッサ複合体14は、プロセッサ部2
0およびベース部22を含む。プロセッサ部20は、ベ
ース部22とローカルバスコネクタ24によって接続さ
れている。プロセッサ部20は50 MHzで、ベース
部22は40 MHzで動作する。
【0011】プロセッサ部20は、マイクロプロセッサ
30(例えば、Intel,Inc.社より商標“48
6”として入手できる)、キャッシュ制御モジュール3
2、メモリ34(例えば、スタティックランダムアクセ
スメモリ(SRAM))、周波数制御モジュール35、
アドレスバッファ36およびデータバッファ38を含
む。マイクロプロセッサ30、メモリ34およびデータ
バッファ38の間にはデータ情報経路が備わっている。
マイクロプロセッサ30、キャッシュ制御回路32およ
びアドレスバッファ36の間にはアドレス情報経路が備
わっている。マイクロプロセッサ30、キャッシュ制御
モジュール32および周波数制御モジュール35の間に
は制御情報経路が備わっている。さらに、キャッシュ制
御モジュール32とメモリ34との間にはアドレス情報
経路および制御情報経路が備わっている。これらのデー
タ、アドレスおよび制御の情報経路はプロセッサバスを
代表するものである。
【0012】メモリ34は、メモリ16または、拡張デ
バイス19に存在するメモリからメモリ情報を短期間記
憶することによって下位キャッシュ機能を付与する。キ
ャッシュ制御モジュール32は、メモリ34に記憶され
ている情報が対応するメモリ16のアドレスを記憶す
る、タグランダムアクセスメモリ(RAM)を含む。
【0013】周波数制御モジュール35は、50 MH
zのプロセッサ部と40 MHzのベース部を同期さ
せ、また、バッファ36および38も制御する。それに
応じて、周波数制御モジュール35は、情報がいつバッ
ファ36および38に収集されたか、また、バッファ3
6および38に記憶されている情報がいつ上書きされた
かを判定する。バッファ36および38は、メモリ16
からの2つの書き込みが同時にバッファ36および38
に記憶されるように構成されている。バッファ36およ
び38は双方向性である。すなわち、プロセッサ部20
から供給される情報およびプロセッサ部20へ供給され
る情報をラッチすることができる。バッファ36および
38が双方向性であるので、プロセッサ部20は、標準
のベース部22を維持しつつ、交換またはグレードアッ
プすることができる。
【0014】ベース部22は、メモリコントローラ5
0、直接メモリアクセス(DMA)コントローラ(DM
AC)52、セントラルアービトレーション制御ポイン
ト(CACP)回路53、バスインタフェースユニット
(BIU)54およびバッファ/誤り訂正コード(EC
C)回路56を含む。ベース部22はまた、ドライバ回
路58、リードオンリメモリ(ROM)60、自己試験
回路62およびバッファ回路64を含む。メモリコント
ローラ50とプロセッサ部20の周波数制御モジュール
35との間には制御情報経路が備わっている。また、メ
モリコントローラ50、DMAコントローラ52および
バスインタフェースユニット54の間、メモリコントロ
ーラ50とドライバ58との間、ドライバ58とメモリ
16との間、バスインタフェースユニット54とバッフ
ァ64との間、バッファ64とプレーナ12の入出力バ
ス18との間、および、CACP 53とプレーナ12
の入出力バス18との間には、それぞれ、制御情報経路
が備わっている。メモリコントローラ50、ROM 6
0および自己試験回路62とプロセッサ部20のアドレ
スバッファ36との間にはアドレス情報経路が備わって
いる。また、アドレス情報経路は、メモリコントローラ
50、DMAコントローラ52およびバスインタフェー
スユニット54の間、メモリコントローラ50とドライ
バ58との間、ドライバ58とメモリ16との間、バス
インタフェースユニット54とバッファ64との間、お
よび、バッファ64とプレーナ12の入出力バス18と
の間にも備わっている。バッファ/ECC回路56、R
OM 60およびおよび自己試験回路62とプロセッサ
部20のデータバッファ38との間にはデータ情報経路
が備わっている。また、データ情報経路は、バッファ/
ECC回路56、DMAコントローラ52およびバスイ
ンタフェースユニット54の間、バッファ/ECC回路
56とメモリ16との間、バッファ/ECC回路56と
メモリ17との間、インタフェースユニット54とバッ
ファ64との間、および、バッファ64とプレーナ12
の入出力バス18との間にも備わっている。これらの情
報経路は、以下、「バス」と呼ぶこともある。
【0015】メモリコントローラ50は、プロセッサ部
20から受信したアドレス情報を解析し、その情報がプ
レーナメモリ16のアドレスまたは拡張デバイス19上
にあるメモリ(すなわち、拡張メモリ)のアドレスに一
致するかどうかを判定する。アドレス情報がメモリ16
のアドレスに一致すれば、メモリコントローラ50はメ
モリ16に対するプレーナメモリサイクルを開始する。
プロセッサ30からのアドレス情報は、メモリ16にア
クセスするための適切な行および列アドレスビットにメ
モリコントローラによって変換される32ビットを含
む。そのプレーナメモリサイクルが生起している間に、
メモリコントローラ50は、DMAコントローラ52ま
たはバスマスタ拡張デバイス19のいずれかを入出力バ
ス18を介して情報にアクセスできるようにする。
【0016】アドレス情報が拡張メモリアドレスに一致
した場合、メモリコントローラ50は、拡張メモリによ
る拡張メモリサイクルを開始する。拡張メモリサイクル
では、メモリコントローラ50に供給されるアドレス
は、バスインタフェースユニット54を通じて入出力バ
ス18へ供給される。そのアドレスが対応するメモリを
含む拡張デバイスは、入出力バス18からそのメモリア
ドレスを受け取る。データがその拡張メモリから検索さ
れる場合、拡張メモリに記憶されているデータ情報は、
入出力バス18、バッファ回路64、バスインタフェー
スユニット54、バッファ/ECC回路56およびドラ
イバ回路58を通じてプロセッサ部20へ供給される。
データが拡張メモリに書き込まれる場合、データ情報
は、バスインタフェースユニット54および入出力バス
18を通じて拡張メモリに供給される。また、DMAコ
ントローラ52は、メモリ16と拡張デバイス19にあ
るメモリとの間の情報交換を制御する。
【0017】DMAコントローラ52は、プロセッサ複
合体14に3つの機能を付与する。DMAコントローラ
52は、DMAチャネルを構成するために小型コンピュ
ータサブシステム制御ブロック(SCB)アーキテクチ
ャを利用しており、それにより、DMAチャネルを構成
するためにプログラム入出力を使用する必要をなくして
いる。DMAコントローラ52はまた、低速拡張デバイ
スと高速メモリデバイスとの間の転送を最適化するため
にバッファ機能も付与する。さらに、DMAコントロー
ラ52は、8チャネル32ビットのデータ、アドレスお
よびバイトカウント直接メモリアクセス機能も付与す
る。このDMA機能を付与する場合、DMAコントロー
ラ52は2つのモードで機能することができる。第1の
モードでは、DMAコントローラ52は自身が機能的に
入出力スレーブになるプログラム入出力モードで機能す
る。第2のモードでは、DMAコントローラ52は、自
身が入出力バスのアービトレーションを行い制御する、
バスマスタとして機能する。この第2のモードにある
間、DMAコントローラ52は先入れ先出し(FIF
O)レジスタ回路を使用し、発信元からのデータは宛先
へ供給される前にこのFIFOレジスタ回路を経て渡さ
れる。従って、シリアルDMA動作が実行される。
【0018】CACP 53は、コンピュータシステム
10のアービタとして機能する。CACP 53は、D
MAコントローラ52および拡張デバイス19からアー
ビトレーション制御信号を受信し、そのアービトレーシ
ョン制御信号を供給することによって、いずれのデバイ
スが入出力バス18を通じて情報を転送してよいか、ま
た、どれだけの時間特定のデバイスが(自己の)入出力
バス18を制御してよいかを制御する。
【0019】バスインタフェースユニット54は、プロ
セッサ複合体14のアーキテクチャと入出力バス18の
アーキテクチャとの間に双方向インタフェースを付与す
る。バスインタフェースユニット54はまた、それら2
つのアーキテクチャ間のインタフェースを最適化するた
めにバッファ機能を付与する。さらに、バスインタフェ
ースユニット54はバスサイジング機能も付与する。す
なわち、バスインタフェースユニット54は、情報を3
2ビット幅セグメントで受信し、プロセッサ複合体14
が通信する拡張デバイス19の要求条件に応じて、小さ
いセグメントで入出力バス18にその情報を供給するこ
とができる。
【0020】バッファ/ECC回路56は、プロセッサ
部20とメモリ16との間のデータ経路、ならびに、メ
モリ16、DMAコントローラ52およびバスインタフ
ェースユニット54の間のデータ経路を付与する。バッ
ファ/ECC回路56はまた、プロセッサ部20、DM
Aコントローラ52およびバスインタフェース回路54
の間のデータ経路を付与する。バッファ/ECC回路5
6は、誤り訂正コードによって誤りを検査するほか、パ
リティメモリを含むプレーナ12との下位互換性のため
にパリティメモリとともに動作し、それを支持すること
ができる。
【0021】ドライバ回路58は、制御情報およびアド
レス情報をメモリコントローラ50からメモリ16へ供
給する。ドライバ回路58は、メモリ16で使用されて
いるSIMMの数にもとづいて、この情報を励起する。
すなわち、ドライバ回路58は、メモリ16の大きさに
もとづいてメモリ16に供給される制御およびアドレス
情報の信号強度を変化させる。メモリ16の大きさは、
コンピュータ10の初期化においてソフトウエアによっ
て判定される。
【0022】バッファ回路64は、ベース部22とプレ
ーナ12との間の絶縁を行う。バッファ回路64は、バ
ッファ回路64がリアルタイムで入出力バス18とバス
インタフェースユニット54との間の境界情報を収集で
きるようにするバッファを使用する。すなわち、これら
のバッファが、その情報がコネクタ15に現れると同時
にそれを格納する。従って、コンピュータ10が故障状
態にある場合、バッファ回路64は、コンピュータ10
の故障時にコネクタ15に与えられた情報を判定するた
めにコンピュータ修理者によってアクセスすることがで
きる。
【0023】自己試験回路62は、ベース部22の複数
の記憶場所に接続されており、複数の自己試験機能を行
う。自己試験回路62は、故障状態が存在するかどうか
を判定するためにバッファ回路64にアクセスする。自
己試験回路62はまた、コンピュータ10が動作可能状
態にあるかどうかを判定するために電源投入時にベース
部22のその他の主要構成要素も試験する。
【0024】マイクロプロセッサチップ30は、CPU
66および上位ライトスルーキャッシュ68を有す
る。こうしたキャッシュは、各キャッシュ線が16バイ
トの情報を保持するキャッシュ線で構成された複数の記
憶場所を有する。CPUがメインメモリの1つの記憶場
所にアクセスすると、その記憶場所は、隣接する記憶場
所とともに、キャッシュ34または68の線に読み出さ
れる。DMAコントローラ52およびBIU 54は、
バスマスタとして機能し、メモリ16に直接アクセスす
ることができる。バスマスタがメモリ16の記憶場所に
書き込む場合、当該記憶場所の内容がいずれか一方のキ
ャッシュにも記憶されているかどうかを確かめるために
検査が行われる。記憶されていれば、当該記憶場所を含
むキャッシュ線は無効にされなければならない。キャッ
シュ線の無効化は、メモリコントローラ50内にあるス
ヌープ機構の制御のもとでスヌープサイクルによって行
われる。 〔スヌープ機構〕図2について説明する。コントローラ
50は、複数の入力信号を受信し、複数の出力信号を生
成する。これらの信号は、以下に詳述するように、メモ
リおよびスヌープサイクルを制御する。コントローラ5
0の動作は、標準システムクロックまたは発振器(図示
せず)から受信されたCLK信号に従ってタイミングが
とられる。コントローラ50は、全体として、スヌープ
状態機構(SM)70、システムSM 72、デコード
論理74およびアドレスドライバ80を含む。スヌープ
SM 70はスヌープサイクルを制御し、システムSM
72はメモリ書き込みサイクルを含むメモリアクセス
を制御する。メモリコントローラ50は、SADDR信
号を受信するためのアドレスバス76を含むアドレスお
よび制御線、信号SADS、SWRおよびSMIOを受
信するための制御線77、および、SRDY信号を送信
するための制御線78を通じて、DMAC 52および
BIU54に接続されている。バス76はさらに、デコ
ード論理74およびドライバ80に接続されている。ド
ライバ80は双方向ドライバである。制御線77はさら
に、2つの状態機構70および72に接続されており、
制御線78はシステムSM 72に接続されている。S
M 72は、SM 72からメモリ16へRAS、CA
SおよびMADDR信号を送信するための線を含むプレ
ーナメモリバス83を介してメモリに接続されている。
【0025】システムSM 72の一般動作は以下の通
りである。システムアドレスSADDRがバス76で受
信されると、デコード論理74は、そのアドレスがプレ
ーナメモリのキャッシュ可能アドレスであるかどうかを
判定し、そうであれば、バス75で2つの状態機構に供
給される出力を生成する。システムSM 72はまた、
システムアドレスストローブ信号SADS、システム書
き込み/読み出し信号SWRおよびシステムメモリ入出
力信号SMIOを線77で受信する。これらの信号の組
合せがプレーナメモリ16へのメモリ書き込み要求を定
義すると、システムSM 72は、そのアドレス指定さ
れた記憶場所へ書き込むために、時間多重化行/列アド
レスMADDR、行アドレスストローブ信号RASおよ
び列アドレスストローブ信号CASをメモリ16に送信
する。システムSM 72は、データが受け入れられる
と、バスマスタにSRDY信号を送信し、この信号は記
憶される次のデータ項目をゲートするために使用され
る。SADSおよびSRDY信号は、メモリサイクルの
開始および終了を定義する。
【0026】スヌープSM 70は、線75および77
に接続された入力端子を有する。キャッシュ可能メモリ
に対して書き込み要求が行われると、SM 70はスヌ
ープサイクルが要求されているかどうかを判定する。ス
ヌープサイクルが要求されていれば、スヌープSM 7
0は、線82、86および88にENABLE、AHO
LDおよびEADS信号を生成する。アクティブのEN
ABLE信号の受信に応答して、ドライバ80は、プロ
セッサ部20のキャッシュにそのアドレスが向かうバス
84でスヌープアドレスをゲートする。AHOLDおよ
びEADS信号は、キャッシュ内での無効化サイクルを
制御する。AHOLD信号は、無効化を実行するための
ローカルプロセッサバスへのアクセスを可能にする標準
アドレス保持要求としてマイクロプロセッサに送信され
る。EADSは、有効スヌープアドレスを指示する外部
アドレス有効入力信号であり、こうした信号がキャッシ
ュ線の無効化を生じさせる。
【0027】図2に示されたメモリコントローラ外部信
号は標準的なものであり、本発明に従ったそれらのタイ
ミングが、パイプラインスヌープサイクルを生成するも
のである。本発明を使用するためにシステム全体が満た
さなければならない一定の前提または条件が存在する。
システムは、バスマスタ書き込みサイクルの無効化を要
するストアスルーメモリ/キャッシュシステムである。
スヌープサイクルがメモリ書き込みサイクルと同調する
ための最悪例条件は、全部が同一の行アドレスを有する
異なるキャッシュ線に連続したサイクルで連続してメモ
リ書き込みが発生した場合に生じる。基本スヌープサイ
クルは、システムタイミングおよびキャッシュアーキテ
クチャによって、所定の固定長を有する。メモリ書き込
みサイクルはその基本スヌープサイクルよりも短い。基
本スヌープサイクルは、パイプラインモードで動作する
際には短縮することができる。例示実施例では、メモリ
書き込みサイクルは4つのクロック周期または単に「ク
ロック」を要し、また、基本スヌープサイクルは7クロ
ックを要し、その基本スヌープサイクルはパイプライン
モードでは4クロックまで短縮できる。
【0028】図3について説明する。スヌープSM 7
0は、それぞれS0〜S6で指示された7つの状態を有
する。状態S0は、負になるSADS信号がバスマスタ
から受信されてSM 70が状態S1に代わるまで、経
路100によって指示されたループで留まるアイドル状
態である。状態S1では、デコード論理出力が利用可能
となり、現サイクルがキャッシュ可能プレーナメモリへ
のメモリ書き込みであるか、また、それが対応する無効
化またはスヌープサイクルを必要とするかの判定が行わ
れる。アドレスがキャッシュ可能プレーナメモリ記憶場
所に対するものであるが、以前のスヌープサイクルがす
でに対応するキャッシュ線を無効化しているので、スヌ
ープサイクルが要求されないことがあり得る。スヌープ
サイクルがまったく要求されない場合、遷移102はS
M 70をアイドル状態S0に戻す。スヌープサイクル
が要求されている場合、SM 70は状態S2に移り、
AHOLD信号がハイレベルに励起または活性化され
る。この動作は、ローカルプロセッサアドレスバスへの
アクセスを得て、下位キャッシュ34がそのスヌープア
ドレスを受信するために準備できるようにする。この特
定の実施例では、そうした設定を行うために2クロック
を必要とする。従って、S2の後、2つの遅延状態S3
およびS4が生起し、下位キャッシュのセットアップを
行わせる。
【0029】状態S5は、ドライバ78にスヌープアド
レスをバス84に出させるENABLE信号を生成す
る。その後、状態S6でアドレスストローブEADSが
励起され、この信号はキャッシュによって受信され、そ
のアドレス指定されたキャッシュ線を無効にする。ま
た、状態S4は、アクティブのSADS信号を監視また
は探索し、当該事実を記録し、その記録は状態S6で利
用される。状態S6でアクティブのSADS信号がまっ
たく検出または記録されていなければ、スヌープサイク
ルは終了し、遷移110が生じ、SM 70を状態S0
へ戻す。S4でアクティブのSADS信号が記録されて
いれば、遷移104が生じ、SM 70を状態S3に戻
し、4クロックの期間を有するパイプラインスヌープサ
イクルを実行する。このような遷移は、以下の理由で、
基本スヌープサイクル(BSC)の最初の3クロックを
削除または回避する。第1に、BSCの最初の2クロッ
クは、SADDR信号を受信し、それらを、スヌープS
Mから独立しているデコード論理74で処理するために
使用される。S4でSADS信号が使用可能となってい
れば、デコード論理74はS5およびS6においてその
判定を行い、その当該判定はSM 70にとって使用可
能となる。第2に、AHOLD信号がすでにハイレベル
に励起されているので、状態S2は削除することができ
る。
【0030】遷移104を用いての前述の説明は、4ク
ロックを要求する高速メモリを用いた場合になされるも
のである。メモリが低速で、5クロックを必要とする場
合、SADS信号はS5で生起し、遷移106は状態S
6からS2へ戻る。メモリがさらに低速で、6クロック
を必要とする場合は、遷移108は状態S6からS1へ
行われる。
【0031】図4について説明する。CLK信号によっ
て定義されたクロックは最上位の線で連続した番号が付
けられており、3つの連続するメモリ書き込みサイクル
(MWC)MWC1〜MWC3がクロック1〜12にお
いて生起するものとして図示されている。各MWCは、
4クロックの期間を有する。各メモリ書き込みサイクル
において、書き込まれる記憶場所のアドレスSADDR
は、アドレスストローブ信号SADSとともに、コント
ローラ50および各SMに送信される。その後、システ
ムSM 72は、アドレス指定された記憶場所に書き込
むための、プレーナメモリアドレスMADDR、行スト
ローブCASおよび列ストローブRASを生成するため
に通常通りに動作する。図4は、スヌープサイクルが前
述の最悪例条件のもとで連続するメモリ書き込みサイク
ルに同調できる最高性能での動作を示している。各メモ
リサイクルの終わりに、SM 72はSRDY信号をバ
スマスタに返信し、それによって、そのバスマスタが新
しい記憶場所に書き込むことができるようにする。
【0032】基本スヌープサイクル(BSC)は7クロ
ック続き、連続したパイプラインスヌープサイクル(P
SC)はそれぞれ4サイクル続く。BSCでは、クロッ
ク1〜3において状態S1〜S3が生じ、AHOLDは
クロック3で線の無効化のためにキャッシュを準備させ
るために切り換わる。当該準備はクロック4および5に
おいて生じる。SNOOP ADDRESSはバス84
で励起され、それによってクロック6で有効になり、B
SCはクロック7で送信されるEADS信号によって終
了する。SADSがクロック5で生起したので、スヌー
プSMが状態S4にあれば、クロック8〜11でPSC
1が続き、さらに、クロック12のSADSによって、
PSC2がクロック12〜15で生じる。メモリ書き込
みサイクルはパイプラインスヌープサイクルに先行する
ので、スヌープサイクルは、それが終了する前に、以降
のパイプラインスヌープサイクルを要求する別のメモリ
書き込みサイクルが生起しているかを判定できることに
留意しなければならない。
【0033】段階および部分の詳細および構成に関し
て、添付特許請求の範囲に定義された本発明の範囲を逸
脱することなく、多くの変更が行い得ることは、当業者
には明らかであろう。
【図面の簡単な説明】
【図1】本発明の一実施例によるパーソナルコンピュー
タの構成を示したブロック図。
【図2】図1の一部を詳細に示したブロック図。
【図3】図2に示された状態機構を示す説明図。
【図4】図3に示された状態機構によって生成されるパ
イプラインスヌープサイクルを例示する波形のタイミン
グ図。
【符号の説明】
10 コンピュータシステム 12 プレーナ 14 プロセッサ複合体 16 メモリ 18 入出力バス 30 マイクロプロセッサ 32 キャッシュコントローラ 35 周波数コントローラ 36,38 バッファ 50 メモリコントローラ 52 DMAコントローラ 58 ドライバ 56 バッファ/ECC回路 54 バスインタフェースユニット 62 自己試験回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウィリアム、アラン、ウォール アメリカ合衆国フロリダ州、ボカ、ラト ン、エスダブリュ、エイトス、ストリー ト、1001

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】プレーナメモリおよびライトスルーキャッ
    シュを含むメモリシステムと、異なるキャッシュ線の無
    効化を書き込みが要求する連続メモリ書き込みサイクル
    において複数のプレーナ書き込みを行うことができるバ
    スマスタ手段と、前記プレーナメモリにアクセスするた
    めに前記メモリシステムおよび前記バスマスタ手段に接
    続されたメモリコントローラとを有するパーソナルコン
    ピュータにおいて、前記メモリコントローラが、 前記連続メモリサイクルの最初のサイクルにおいて、前
    記第1サイクルで書き込まれるプレーナ記憶場所に対応
    する第1のキャッシュ線を無効にするために基本スヌー
    プサイクルを生起させるように動作する第1の手段であ
    り、前記基本スヌープサイクルはメモリ書き込みサイク
    ルよりも長いものである、前記第1の手段と、 前記バスマスタ手段に接続されており、前記基本スヌー
    プサイクルが終了する前に第2のメモリ書き込みサイク
    ルが開始されたかどうかを判定するためにそれからの制
    御信号を監視し、それを指示する第1の制御信号を生成
    するための第2の監視手段と、 前記監視手段に接続されており、前記第1の制御信号に
    応答して前記第2のキャッシュ線を無効にするために、
    前記基本スヌープサイクルの直後にパイプラインスヌー
    プサイクルを開始するためのスヌープ制御手段であり、
    前記パイプラインスヌープサイクルはメモリ書き込みサ
    イクルと同一の期間を有するものである、前記スヌープ
    制御手段とを含むことを特徴とするパーソナルコンピュ
    ータ。
  2. 【請求項2】請求項1記載のパーソナルコンピュータに
    おいて、前記バスマスタ手段が、各メモリサイクルの開
    始時に、書き込まれるべきプレーナメモリ記憶場所のシ
    ステムアドレスSADDRおよび当該システムアドレス
    が有効であることを指示するストローブ信号SADSを
    送信し、また、 前記監視手段が、前記第2のメモリサイクルにおいてS
    ADS信号の検出に応答して前記第1の制御信号を生成
    することを特徴とするパーソナルコンピュータ。
  3. 【請求項3】請求項2記載のパーソナルコンピュータに
    おいて、前記第1の手段が、前記バスマスタ手段に接続
    されており、前記第1のメモリサイクルにおいてSAD
    S信号の受信に応答して前記基本スヌープサイクルを開
    始することを特徴とするパーソナルコンピュータ。
  4. 【請求項4】請求項3記載のパーソナルコンピュータに
    おいて、前記バスマスタ手段がさらに複数の連続するプ
    レーナメモリ書き込みサイクルを開始し、前記監視手段
    および前記スヌープ制御手段が、先行するメモリサイク
    ルに対応するスヌープサイクルにおいて各後続メモリサ
    イクルでのSADS信号を検出するように動作し、か
    つ、前記さらに複数の連続するプレーナメモリ書き込み
    サイクルと同じ速度で複数のパイプラインスヌープサイ
    クルを開始することを特徴とするパーソナルコンピュー
    タ。
  5. 【請求項5】プレーナメモリおよびライトスルーキャッ
    シュを含むメモリシステムと、異なるキャッシュ線の無
    効化を書き込みが要求する連続メモリ書き込みサイクル
    において複数のプレーナ書き込みを行うことができるバ
    スマスタ手段と、前記プレーナメモリにアクセスするた
    めに前記メモリシステムおよび前記バスマスタ手段に接
    続されたメモリコントローラとを有するパーソナルコン
    ピュータにおいて、前記メモリコントローラが、 書き込まれるプレーナメモリのシステムアドレスSAD
    DR、メモリ書き込み動作を定義するバス定義信号、お
    よび、前記SADDRが有効であることを指示するアド
    レスストローブSADSを同時に前記メモリコントロー
    ラに送信することによってメモリ書き込みサイクルを開
    始するように動作する前記バスマスタと、 該当するキャッシュ線を指示するスヌープアドレスおよ
    び該当するキャッシュ線を無効にするストローブEAD
    Sを送信することによって前記キャッシュ内のキャッシ
    ュ線を無効にするように動作する前記メモリコントロー
    ラと、 デコード論理、前記プレーナメモリにアクセスするため
    のシステム状態機構、および、メモリ書き込みサイクル
    よりも長い基本スヌープサイクルおよびメモリ書き込み
    サイクルと同じ期間を有するパイプラインスヌープサイ
    クルを含むスヌープサイクルを制御するためのスヌープ
    状態機構を含む前記メモリコントローラと、 前記SADDRを受信するために前記バスマスタに接続
    されており、当該アドレスが前記プレーナメモリの記憶
    場所に対するものであるかを判定し、前記記憶場所が前
    記プレーナメモリにあることを指示する第1の信号を前
    記スヌープ状態機構に送信する前記デコード論理と、 前記SADSおよび前記バス定義信号を受信し、書き込
    まれる前記プレーナ記憶場所に対応するキャッシュ線を
    無効にするためにスヌープサイクルが必要であるかを判
    定するための第1の状態、ENABLE信号を生成し、
    前記SADDRを前記キャッシュに送信するためにバス
    でゲートするための第2の状態、および前記EADS信
    号を生成するための第3の状態を含む複数の状態を有す
    る前記スヌープ状態機構と、 異なるキャッシュ線に対応するプレーナメモリ記憶場所
    に対する連続するメモリ書き込みサイクルの複数の要求
    の受信に応答して動作し、最初に、前記複数の要求のう
    ちの最初の要求に応答して基本スヌープサイクルを開始
    し、以降、前記最初の要求の後の要求に応答して複数の
    パイプラインスヌープサイクルを開始する前記状態機構
    とを含むことを特徴とするパーソナルコンピュータ。
  6. 【請求項6】請求項5記載のパーソナルコンピュータに
    おいて、前記スヌープ状態機構が、前記ENABLEお
    よび前記EADS信号の生成に先立って、アドレス保持
    要求信号AHOLDを生成するための第4の状態をさら
    に含むことを特徴とするパーソナルコンピュータ。
  7. 【請求項7】請求項6記載のパーソナルコンピュータに
    おいて、 前記キャッシュが第1のレベルのキャッシュであり、ま
    た、前記メモリシステムが所定の期間のセットアップ時
    間を要求する第2のレベルのキャッシュをさらに含み、 前記スヌープ状態機構が、前記セットアップ時間に一致
    する待ち時間を付与する第5の状態をさらに含むことを
    特徴とするパーソナルコンピュータ。
  8. 【請求項8】請求項7記載のパーソナルコンピュータに
    おいて、前記基本スヌープサイクルが、前記第1の状
    態、前記第4の状態、前記第5の状態、前記第2の状態
    および前記第3の状態をそれぞれ順次交替することによ
    って生起することを特徴とするパーソナルコンピュー
    タ。
  9. 【請求項9】請求項8記載のパーソナルコンピュータに
    おいて、前記パイプラインスヌープサイクルが、前記第
    5の状態、前記第2の状態および前記第3の状態をそれ
    ぞれ順次交替することによって生起することを特徴とす
    るパーソナルコンピュータ。
  10. 【請求項10】請求項9記載のパーソナルコンピュータ
    において、 前記パイプラインスヌープサイクルにおいて、新しいメ
    モリ書き込みサイクルでの新しいSADSを検出し、そ
    れに応答してパイプラインスヌープサイクルを開始する
    ように動作する監視手段を含むことを特徴とするパーソ
    ナルコンピュータ。
  11. 【請求項11】請求項10記載のパーソナルコンピュー
    タにおいて、 前記メモリコントローラに、前記スヌープ状態機構の動
    作と同時にメモリ書き込みサイクルにおいて前記プレー
    ナメモリにアクセスするためのシステム状態機構を含む
    ことを特徴とするパーソナルコンピュータ。
JP4291228A 1991-12-20 1992-10-29 ライトスルーキャッシュおよびパイプラインスヌープサイクルを備えたメモリシステムを有するパーソナルコンピュータ Expired - Lifetime JPH0727493B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US812196 1985-12-23
US07/812,196 US5341487A (en) 1991-12-20 1991-12-20 Personal computer having memory system with write-through cache and pipelined snoop cycles

Publications (2)

Publication Number Publication Date
JPH0628254A JPH0628254A (ja) 1994-02-04
JPH0727493B2 true JPH0727493B2 (ja) 1995-03-29

Family

ID=25208830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4291228A Expired - Lifetime JPH0727493B2 (ja) 1991-12-20 1992-10-29 ライトスルーキャッシュおよびパイプラインスヌープサイクルを備えたメモリシステムを有するパーソナルコンピュータ

Country Status (6)

Country Link
US (1) US5341487A (ja)
EP (1) EP0549164B1 (ja)
JP (1) JPH0727493B2 (ja)
BR (1) BR9204884A (ja)
CA (1) CA2077048C (ja)
DE (1) DE69203842T2 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249481B1 (en) * 1991-10-15 2001-06-19 Kabushiki Kaisha Toshiba Semiconductor memory device
US5966728A (en) * 1992-01-02 1999-10-12 International Business Machines Corp. Computer system and method for snooping date writes to cacheable memory locations in an expansion memory device
JP3027843B2 (ja) * 1993-04-23 2000-04-04 株式会社日立製作所 バススヌ−プ方法
JP2675981B2 (ja) * 1993-09-20 1997-11-12 インターナショナル・ビジネス・マシーンズ・コーポレイション スヌープ・プッシュ・オペレーションを回避する方法
US5572702A (en) * 1994-02-28 1996-11-05 Intel Corporation Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
US5797026A (en) * 1994-02-28 1998-08-18 Intel Corporation Method and apparatus for self-snooping a bus during a boundary transaction
US5600802A (en) * 1994-03-14 1997-02-04 Apple Computer, Inc. Methods and apparatus for translating incompatible bus transactions
US5485572A (en) * 1994-04-26 1996-01-16 Unisys Corporation Response stack state validation check
US5539895A (en) * 1994-05-12 1996-07-23 International Business Machines Corporation Hierarchical computer cache system
US5615334A (en) * 1994-10-07 1997-03-25 Industrial Technology Research Institute Memory reflection system and method for reducing bus utilization and device idle time in the event of faults
US5634073A (en) * 1994-10-14 1997-05-27 Compaq Computer Corporation System having a plurality of posting queues associated with different types of write operations for selectively checking one queue based upon type of read operation
US5630094A (en) * 1995-01-20 1997-05-13 Intel Corporation Integrated bus bridge and memory controller that enables data streaming to a shared memory of a computer system using snoop ahead transactions
US5893921A (en) * 1995-02-10 1999-04-13 International Business Machines Corporation Method for maintaining memory coherency in a computer system having a cache utilizing snoop address injection during a read transaction by a dual memory bus controller
US5704058A (en) * 1995-04-21 1997-12-30 Derrick; John E. Cache bus snoop protocol for optimized multiprocessor computer system
US5737756A (en) * 1995-04-28 1998-04-07 Unisys Corporation Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
US5710906A (en) * 1995-07-07 1998-01-20 Opti Inc. Predictive snooping of cache memory for master-initiated accesses
JP3782840B2 (ja) 1995-07-14 2006-06-07 株式会社ルネサステクノロジ 外部記憶装置およびそのメモリアクセス制御方法
US5652859A (en) * 1995-08-17 1997-07-29 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5809537A (en) * 1995-12-08 1998-09-15 International Business Machines Corp. Method and system for simultaneous processing of snoop and cache operations
US6031758A (en) 1996-02-29 2000-02-29 Hitachi, Ltd. Semiconductor memory device having faulty cells
US6748463B1 (en) * 1996-03-13 2004-06-08 Hitachi, Ltd. Information processor with snoop suppressing function, memory controller, and direct memory access processing method
US5809534A (en) * 1996-06-13 1998-09-15 Compaq Computer Corporation Performing a write cycle to memory in a multi-processor system
US5875469A (en) * 1996-08-26 1999-02-23 International Business Machines Corporation Apparatus and method of snooping processors and look-aside caches
US5960457A (en) * 1997-05-01 1999-09-28 Advanced Micro Devices, Inc. Cache coherency test system and methodology for testing cache operation in the presence of an external snoop
KR100255510B1 (ko) * 1997-05-09 2000-05-01 김영환 원포트램셀구조로이루어진캐시데이터램
US5900017A (en) * 1997-05-14 1999-05-04 International Business Machines Corporation Snooping a variable number of cache addresses in a multiple processor system by a single snoop request
US6065101A (en) 1997-06-12 2000-05-16 International Business Machines Corporation Pipelined snooping of multiple L1 cache lines
US5912906A (en) * 1997-06-23 1999-06-15 Sun Microsystems, Inc. Method and apparatus for recovering from correctable ECC errors
US6061766A (en) * 1997-06-24 2000-05-09 Sun Microsystems, Inc. Non-inclusive cache method using pipelined snoop bus
US6076147A (en) * 1997-06-24 2000-06-13 Sun Microsystems, Inc. Non-inclusive cache system using pipelined snoop bus
US6385703B1 (en) * 1998-12-03 2002-05-07 Intel Corporation Speculative request pointer advance for fast back-to-back reads
US6615323B1 (en) 1999-09-02 2003-09-02 Thomas Albert Petersen Optimizing pipelined snoop processing
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
US6658545B1 (en) * 2000-02-16 2003-12-02 Lucent Technologies Inc. Passing internal bus data external to a completed system
US6728869B1 (en) * 2000-04-21 2004-04-27 Ati International Srl Method and apparatus for memory latency avoidance in a processing system
US7085889B2 (en) * 2002-03-22 2006-08-01 Intel Corporation Use of a context identifier in a cache memory
US7080198B1 (en) * 2002-07-31 2006-07-18 Adaptec, Inc. Method for snooping RAID 1 write transactions by a storage device
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
JP5218228B2 (ja) * 2008-04-23 2013-06-26 新東工業株式会社 搬送装置及びブラスト加工装置
KR102490104B1 (ko) 2017-10-30 2023-01-19 삼성전자주식회사 데이터 보호를 사용하는 인-밴드 메모리에 액세스하기 위한 장치 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
US4638431A (en) * 1984-09-17 1987-01-20 Nec Corporation Data processing system for vector processing having a cache invalidation control unit
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
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
US5193170A (en) * 1990-10-26 1993-03-09 International Business Machines Corporation Methods and apparatus for maintaining cache integrity whenever a cpu write to rom operation is performed with rom mapped to ram

Also Published As

Publication number Publication date
EP0549164B1 (en) 1995-08-02
DE69203842T2 (de) 1996-05-02
CA2077048C (en) 1996-10-22
JPH0628254A (ja) 1994-02-04
BR9204884A (pt) 1993-06-22
US5341487A (en) 1994-08-23
EP0549164A1 (en) 1993-06-30
DE69203842D1 (de) 1995-09-07
CA2077048A1 (en) 1993-06-21

Similar Documents

Publication Publication Date Title
JPH0727493B2 (ja) ライトスルーキャッシュおよびパイプラインスヌープサイクルを備えたメモリシステムを有するパーソナルコンピュータ
US5353415A (en) Method and apparatus for concurrency of bus operations
JP2988501B2 (ja) パリティエラーを検出するコンピュータシステム及びその動作方法
US5519839A (en) Double buffering operations between the memory bus and the expansion bus of a computer system
US6405271B1 (en) Data flow control mechanism for a bus supporting two-and three-agent transactions
US5774700A (en) Method and apparatus for determining the timing of snoop windows in a pipelined bus
US5255374A (en) Bus interface logic for computer system having dual bus architecture
US6836829B2 (en) Peripheral device interface chip cache and data synchronization method
US5659696A (en) Method and apparatus for determining address location and taking one of two actions depending on the type of read/write data transfer required
US20020065967A1 (en) Transmission of signals synchronous to a common clock and transmission of data synchronous to strobes in a multiple agent processing system
WO1994008297A9 (en) Method and apparatus for concurrency of bus operations
US5966728A (en) Computer system and method for snooping date writes to cacheable memory locations in an expansion memory device
JPH07122865B2 (ja) バス動作の動作速度を制御するようにしたバス・インターフェースを有するコンピュータ・システム
US5673414A (en) Snooping of I/O bus and invalidation of processor cache for memory data transfers between one I/O device and cacheable memory in another I/O device
US5900014A (en) External means of overriding and controlling cacheability attribute of selected CPU accesses to monitor instruction and data streams
US6754779B1 (en) SDRAM read prefetch from multiple master devices
US5987570A (en) Performing overlapping burst memory accesses and interleaved memory accesses on cache misses
JP3444154B2 (ja) メモリアクセス制御回路
JPH0271344A (ja) マイクロコンピユータ・システム
KR960007833B1 (ko) 고속 페이지 모드 선택을 위한 방법 및 장치
US5809534A (en) Performing a write cycle to memory in a multi-processor system
CA1299767C (en) Cache memory control system
JPH07129456A (ja) コンピュータシステム
KR100454652B1 (ko) 하이파이버스시스템의주기억장치
JP2000227877A (ja) 待ち時間を低減した非同期入出力キャッシュ