JP2642064B2 - 非同期dmaキャッシュ - Google Patents

非同期dmaキャッシュ

Info

Publication number
JP2642064B2
JP2642064B2 JP6163468A JP16346894A JP2642064B2 JP 2642064 B2 JP2642064 B2 JP 2642064B2 JP 6163468 A JP6163468 A JP 6163468A JP 16346894 A JP16346894 A JP 16346894A JP 2642064 B2 JP2642064 B2 JP 2642064B2
Authority
JP
Japan
Prior art keywords
data
address
sector
snoop
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.)
Expired - Lifetime
Application number
JP6163468A
Other languages
English (en)
Other versions
JPH07105090A (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 JPH07105090A publication Critical patent/JPH07105090A/ja
Application granted granted Critical
Publication of JP2642064B2 publication Critical patent/JP2642064B2/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
    • 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
    • G06F12/0835Cache 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)
  • Storage Device Security (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は"スヌーピング(snoopin
g)"によりシステム・バスをモニタする中央処理ユニッ
ト(CPU)及び他の装置を有するコンピュータ・シス
テムにおけるキャッシュ・コヒーレンスの提供に関す
る。より詳細には、本発明は、第1の装置により所有さ
れるデータのメモリ・アドレスと、別の装置により要求
されるデータのメモリ・アドレスとを比較し識別するた
めの基準を変更することにより、非同期バス間のコヒー
レンス(coherence)を維持する。
【0002】
【従来の技術】非同期バス及びスヌーピング・プロトコ
ルを有する従来の多重キャッシュ・システムには、キャ
ッシュに書込まれるデータのアドレスが無効な期間が存
在すると言った問題がある。(更新とスヌープ比較との
間の非同期性のために)この期間中にスヌープが発生す
ると、誤り応答によりシステムに性能低下または不正デ
ータが生じる。この誤り応答には誤りスヌープ・ヒッ
ト、または識別されなかった実際のスヌープ・ヒットが
含まれる。より詳しくは、入出力(I/O)チャネル制
御装置(IOCC)内に含まれるキャッシュ・メモリに
書込むまたはそこから読出す入出力(I/O)装置の非
同期性により、I/O装置があるメモリ・セクタとの対
話を終了し、別のメモリ・セクタとの対話を開始する期
間が存在する。従って、スヌープ比較のために使用され
るセクタ・アドレスが遷移状態であり、このアドレス遷
移期間の間にシステム・バスのスヌープが発生すると、
誤りスヌープ・ヒットまたはスヌープ・ヒット検出誤り
が発生する可能性がある。
【0003】キャッシュ・コヒーレンスを維持する従来
の解決方法が米国特許第5119485号に述べられて
おり、ここでは代替バスマスタからの符号化制御信号を
バス・インタフェース制御回路に結合し、選択的にデー
タ・バス・スヌーピングを可能とする。米国特許第50
72369号はコヒーレンスを保証するために、異なる
バスに跨ってアドレスをマッピングする。すなわち、イ
ンタフェース回路が選択されたバス・アドレスを別のバ
ス上の対応するアドレスにマッピングする。具体的に
は、第1のバス上のバスマスタが読出しまたは書込みを
試行すると、バス・インタフェース回路が第2のバスの
メモリの対応するアドレスをアクセスすることにより応
答する。
【0004】キャッシュ・コヒーレンスのための別の方
法が米国特許第5025365号に述べられており、こ
れは異なる期間において各キャッシュ・メモリの更新を
許可する分散ディレクトリを有する。これは更新と更新
の間の期間にディレクトリの非一貫性を生じる。システ
ム・バス・プロトコルが、分散ディレクトリを更新する
ことによりデータ・コヒーレンスを維持する周期的な正
当なオペレーションを提供するように構成される。米国
特許第5193170号はCPU、RAM及びROMを
含む。ROMがRAMにマッピングされるモードの間、
CPU書込みオペレーションを検出するためにスヌープ
・サイクルが導入され、もし検出されると、キャッシュ
無効化信号がCPUに送信される。米国特許第4945
486号は、共用データ・バスを介して各プロセッサに
接続され、同期要求信号を生成する一連のプロセッサを
含む。同期制御装置がプロセッサ状態を同期バス上に同
報通信し、それにより通信をモニタするためにバスのス
ヌーピングを可能とする。
【0005】従来のシステムがキャッシュ・コヒーレン
スを維持するために、マッピング、分散ディレクトリ、
同期プロセッサ、許可ビットなどの様々な技術を使用す
ることが理解される。これらの従来システムは同期シス
テムにおけるキャッシュ・コヒーレンス問題を解決する
が、システム内の少なくとも2つのバスが非同期である
場合に遭遇する問題には触れていない。従って、追加の
複雑な論理を要することなく、非同期バス間においてキ
ャッシュ・コヒーレンスを提供するために、システム内
の既存のパラメータを再定義するシステムが極めて有利
であることが理解される。
【0006】
【発明が解決しようとする課題】従来技術に対して、本
発明はキャッシュ・コヒーレンスが非同期バス間で維持
されるように、スヌープ・ヒットを識別するために動的
に再定義される詳細レベル(細分性(granularity))
を使用する。
【0007】一般的には、本発明はスヌープ比較のため
に、すなわちスヌープ・ヒットが発生したかどうかを判
断するために、セクタ・アドレスではなく、ページ・ア
ドレスを特定の時間において使用する。ここで使用され
るメモリのページはメモリ・セクタのセットであり、ペ
ージは4Kバイトで、セクタは32バイトであり、従っ
て1ページ当たり128セクタが存在する。メモリ・ア
ドレスはページ・アドレス及びセクタ・アドレスの両者
を含む。通常、システムはセクタ・レベルにおいてキャ
ッシュ・コヒーレンスを維持する。すなわち、ページ及
びセクタ・アドレスの両者が同じ場合にスヌープ・ヒッ
トが発生したと見なされる。しかしながら、本発明はC
PUクロックに対して非同期に進行する直接メモリ・ア
クセス(DMA)・オペレーションの状態(活動状態ま
たは非活動状態)に依存して、セクタとページ間のスヌ
ープ比較細分性を動的に変更する。ページ・アドレス細
分性を使用することにより、本発明は誤りスヌープ・ヒ
ットが発生しないことを保証する。なぜなら、潜在的に
無効なセクタ・アドレスがスヌープ比較の間に使用され
ないからである。
【0008】バスマスタがページ・アドレス変更を要求
すると、バスマスタをホールドオフすることによりDM
Aオペレーションが非活動状態にされ、IOCCのスヌ
ープ比較アドレスがCPUクロックと同期して更新され
る。バスマスタ装置がIOCCが現在使用している以外
のページ・アドレスのデータを要求すると、本発明のデ
ータ処理システムはバスマスタを自動的に非活動状態に
する。
【0009】DMAオペレーションが活動状態の時、バ
スマスタ装置はIOCCなどの装置内に含まれるレベル
1(L1)キャッシュと非同期に対話する。これにより
IOCCはスヌープ比較のために使用されるアドレスを
非同期に更新する。なぜなら、バスマスタはCPUクロ
ックとは独立のコマンド・クロックを制御するからであ
る。本発明によれば、IOCCはDMA活動のこうした
期間中に、ページ・アドレスだけを基本として、システ
ム・バスをスヌープする。
【0010】
【課題を解決するための手段】ページ細分性を使用する
ことにより、別の装置が、DMAバスマスタが現在アク
セスしているセクタと同じページ上のメモリ・セクタか
らデータを要求する場合に、スヌープ・ヒットが発生す
る。この場合、IOCCはARTRY信号を発行するこ
とにより、DMA活動が完了するまで他の装置をホール
ドオフ(待機)させる。DMAオペレーションが完了す
るか、一時的に非活動状態になると要求されるメモリ・
アクセスの進行が許可される。バスマスタがメモリに書
込んでいる場合には、要求装置は更新されたコピーへの
アクセスを獲得する。また、DMAオペレーションが非
活動状態の時には、IOCCにより所有されるデータの
アドレスは静的であり、セクタ・アドレスを無効化する
遷移フェーズが存在せず、スヌープ比較細分性がセクタ
・アドレス・レベルに復帰する。
【0011】より詳細には、ここでI/Oバスマスタが
IOCCキャッシュからデータを読出していると仮定す
る。すなわち、バスマスタは全てのデータが読出される
まで、様々なメモリ・アドレスを要求するか、またはあ
るタイプの休止状態が発生する。DMA活動のこうした
期間の間、バスマスタはスヌープ比較オペレーションの
間に、スヌープ比較アドレスのセクタ部分を更新させる
かもしれない。これは別の装置が、バスマスタによりア
クセスされるデータと同じページ上に存在するセクタ・
アドレスのデータを要求する時、発生する。こうした場
合、バスマスタ活動が完了するまで要求装置をホールド
オフするARTRY信号が発行され、それによりコヒー
レンスが維持される。
【0012】従って、本発明のデータ処理システムはス
ヌープ・ヒットの検出に失敗しない。なぜなら、メモリ
・アドレス比較がセクタ・アドレス間ではなく、ページ
・アドレス間で行われるからである。このようにして、
メモリ・セクタの遷移の間に発生するメモリ・アドレス
のセクタ部分の潜在的無効性が回避され、キャッシュ・
コヒーレンスが保証される。
【0013】上述のように、DMAバスマスタにより要
求されるメモリ・アドレスがページ境界を横断する場
合、処理は中断され、CPUクロックと同期するために
スヌープ比較がリセットされ、それによりコヒーレンス
が維持される。
【0014】従って前述の要約から、当業者には後述の
説明及び添付図を参照しながら、本発明の目的、特徴及
び利点を理解することができよう。
【0015】
【実施例】図1を参照すると、本発明を使用可能なデー
タ処理システムのブロック図が示され、参照番号1はレ
ベル1(L1)キャッシュ3を内部に有する中央処理ユ
ニット(CPU)である。CPUはPowerPC 601マイク
ロプロセッサ(PowerPCはIBM社の登録商標)などの
幾つかの市販されるプロセッサの1つである。システム
・バス5はCPU1を入出力チャネル制御装置(IOC
C)7及びメモリ・サブシステム11に接続する。メモ
リ・サブシステム11はメモリ制御チップ及びランダム
・アクセス・メモリの実際の物理ロケーション(記憶位
置)を含む。IOCC7は複数のメモリ・セクタ10を
有するL1キャッシュ9を含み、各メモリ・セクタは3
2バイトのデータを記憶することができる。また入出力
バス13がIOCC7に接続されるように示され、キー
ボード、マウス、表示装置を含む複数のI/O周辺装
置、小型コンピュータ・システム・インタフェース(S
CSI)、通信装置、バス・メモリ及び1つ以上の追加
のI/Oバスマスタ装置(M、N)の全てがIOCC7
を介して、CPU1及びメモリ11に接続される。ここ
でシステム・バス5及びI/Oバス13はデータ転送の
タイミングに関し、非同期な関係を有すると述べられる
べきではない。すなわち、システム・バス5は第1のス
ピードを有するクロックを含むCPU1により駆動さ
れ、一方、I/Oバス13は、固有の独立なクロックを
有し自身とIOCCキャッシュ9との間のデータの転送
を制御する特定のI/Oバスマスタ装置により駆動され
る。従って、2つのバス上におけるアドレス・サンプリ
ング周期は非同期である。更に図1に示されるデータ処
理システムはスヌーピング・プロトコルを含み、任意の
メモリ・セクタの有効(且つ変更された可能性がある)
コピーを所有する装置は、システム・バス5に接続され
る他の装置がデータへのアクセスを要求しているか否か
を判断するために、システム・バス5をスヌープする。
スヌーピング比較が別の装置がデータを要求していると
判断すると、これはスヌープ・ヒットが発生すると言わ
れ、データを所有する装置がコヒーレンスを維持するた
めに必要な活動を実施する。これらの活動には、所有者
のキャッシュ内のデータの無効化、変更データのメモリ
への書戻し、他の装置との未変更データの共用などが含
まれる。IOCC7はまたスヌーピング機能を含み、ス
ヌープ・ヒットが発生するかどうかを判断するために、
L1キャッシュ9に含まれるデータのアドレスに対応し
てシステム・バス5がモニタされる。
【0016】本発明の好適な実施例では、メモリ・サブ
システム11はページ、セクタ及びバイト・オフセット
階層システム上に編成される。すなわち、各メモリ・ア
ドレスはページ・アドレス、セクタ・アドレス及びバイ
ト・オフセットを示す部分を含む。例としてPowerPC の
メモリ・アドレス・マッピング機構を使用すると、各メ
モリ・アドレスは32ビット長であり、その内20ビッ
トがこの特定のページを識別するために使用され、7ビ
ットがセクタを識別するために使用され、5ビットがセ
クタ内のバイト・オフセットを識別するために使用され
る。各ページは4Kバイトのメモリを含み、各セクタは
32バイトを記憶し、従って4Kバイトの各ページに
は、各々が32バイトを含む128個のセクタが存在す
る。バイト・オフセット量は変更可能であるが、1、4
または8バイトが好適である。図5はメモリ・アドレ
ス、並びにページ、セクタ及びバイト・オフセットの各
部分に対して割当てられるビット数を示す。通常のスヌ
ーピング状態では、図5に示される完全なメモリ・アド
レスが、そのアドレスのデータへのアクセスを要望する
装置によりシステム・バス上に出力される。要望された
データを現在所有する装置が次にシステム・バスをスヌ
ープし、バス上のアドレスを所有されるデータのアドレ
スと比較し、もしページ及びセクタが同一であると、ス
ヌープ・ヒットが発生する。この比較はページ及びセク
タを基本として実行され、スヌープ・ヒットが生じる個
々のセクタに関連して、コヒーレンス維持活動が実行さ
れる。
【0017】図4は記憶されるデータのアドレスを分割
するために、本発明のメモリ・サブシステムにより使用
される2つの代表的な4Kバイト・ページを示す。これ
らのページ21及び23は、0乃至Nまでラベル化され
る複数の32バイト・メモリ・セクタ10を含むように
示される。好適な実施例ではNは128である。32バ
イト・セクタの各々は、複数のバイト・オフセット部分
12(これは好適な実施例では8個の4バイト・セクシ
ョンである)を有するように示される。個々のバイト・
オフセット部分12の各々は、図5で示される32ビッ
ト・メモリ・アドレスなどの異なるアドレスを有する。
上述のように、通常のスヌーピング・オペレーションは
スヌープ・ヒットが発生するかどうかを判断するため
に、32ビット・アドレスのページ及びセクタ部分を比
較する。
【0018】図7は代表的な32バイト・セクタ10
A、10B及び10Lの更に詳細を示す図であり、各々
はそれぞれ8個の4バイト・オフセット部分12A、1
2B及び12Lを有する。これらのバイト・オフセット
部分12は0乃至7で指定される。
【0019】本発明のデータ処理システムは、I/O装
置20、22、24、26とメモリ11との間の直接メ
モリ・アクセス(DMA)を提供し、これらの間にはI
OCC7が介在する。これはCPU1による介入なし
に、データがこれらのI/O装置とメモリ11との間で
転送されることを意味する。I/O装置24がデータを
メモリ・サブシステム11から読出すようにプログラム
される場合、I/O装置24は最初にバス13の所有権
を調停し、次にデータが読出されるメモリ内のロケーシ
ョンに対応するアドレスをIOCC7に提供する。IO
CCは所望のセクタのコピーを自己のキャッシュ9にロ
ードし、次にI/O装置がバス13を使用してコピーを
アクセスすることを許可する。
【0020】特定の例では、SCSI装置(図1の参照
番号22)などのDMA I/Oバスマスタ装置が、メ
モリ11からの読出しなどのデータ転送オペレーション
を開始する。バスマスタ装置はI/Oバス13の所有権
を調停する。バスマスタ装置は次に読出されるデータの
アドレスをIOCC7に提供し、IOCC7はそのアド
レスを使用してデータをメモリ11から獲得するタイミ
ングを指示するために、内部コマンド・クロックを使用
する。バスマスタ装置が、提供されるアドレスに対応す
るメモリのセクタからのデータの読出しを完了し、更に
読出されるデータが存在する場合には、別のアドレスが
IOCC7に提供され、コマンド・クロックがその獲得
タイミングを規定する。前述のように、このコマンド・
クロックはCPUクロックとは非同期であり、IOCC
がスヌープ比較を実行するタイミングを示す。バスマス
タ装置は次に周期的に新たなメモリ・アドレスを提供
し、データの次の部分が読出される以前にメモリ・アド
レスが変更される度に、コマンド・クロックから信号を
活動化する。このコマンド・クロック・タイミングはD
MAバスマスタ装置により選択され、CPU1により生
成されるあらゆるクロック信号に非同期であり、または
他の目的でIOCC7により使用される。
【0021】図7を参照すると、バスマスタ装置がメモ
リ・セクタ10A内のバイト・オフセット部分2に読出
されるデータを要求する様子が表される。バスマスタ装
置はこのアドレスをIOCC7に提供し、データの所有
権が獲得されるようにコマンド・クロックをパルス出力
する。読出しオペレーションが次に発生し、バスマスタ
装置は次に例えばメモリ・セクタ10Lのバイト・オフ
セット5などの別のセクタ・アドレスを提供する。セク
タ・アドレス遷移が32バイト・セクタ10Aと10L
との間で発生し、32バイト・セクタ10Aのバイト・
オフセット2から読出されるデータに続き、図5に示さ
れるセクタ・アドレスがDMAバスマスタ装置からのコ
マンド・クロック信号により変更されることがわかる。
また、本発明が"ストリーミング"データ転送にも適用可
能であることが理解される。この転送ではバスマスタ装
置がIOCC7に初期セクタ・アドレスを提供し、次に
IOCCがバスマスタ装置により提供されるストローブ
信号の各パルスにおいて、アドレスを増分する。ストリ
ーミング・データの例が図7に示され、バスマスタがセ
クタ10Aのバイト・オフセット7を要求すると、IO
CC7はアドレスをセクタ10Bのバイト・オフセット
0に増分する。このようにしてセクタ・アドレスの遷移
が発生する。
【0022】図2はコマンド・クロック信号の例であ
り、これはIOCC7のキャッシュ9をアクセスするD
MAバスマスタ装置により使用される。各サイクルにお
いて、バスマスタ装置は新たなセクタ・メモリ・アドレ
スをIOCC7に提供し、各後縁1乃至6において、バ
スマスタは新たなアドレス・ロケーションからの読出し
を開始する。再度、IOCC7が例えば32バイト・セ
クタ10Aのバイト・オフセット部分2からメモリ・セ
クタ10Lのバイト・オフセット部分5にメモリ・アド
レスを変更すると(図7)、遷移フェーズが発生し、7
ビットのセクタ・アドレス(図5)が変化する。
【0023】図6は発生するアドレス遷移のタイプの例
を示す。例えば、32バイト・セクタ10Aのセクタ・
アドレスが0111111 と仮定する。クロック信号の後縁1
乃至6がIOCC7により受信される時に、バスマスタ
装置が新たなセクタ例えばセクタ10Lからのデータの
読出しを要求すると、セクタ10Aのアドレスがセクタ
10Lのアドレスに11(2進の1011)増分される。こ
れにより32バイト・セクタ10Lの7ビットのセクタ
・アドレスが2進加算の結果、1001010 となる。しかし
ながら、セクタ10Aからのセクタ・アドレスの状態
が、セクタ10Lの正確な値に達していない期間が存在
する。すなわちIOCC7が32バイト・セクタ10L
に対応する正確なセクタ・アドレスを含むように、全て
のビットが修正されていない。図6は幾つかの潜在的な
遷移段階を示し、ここではセクタ10A(0111111)に
対応する正確なアドレスが、セクタ10L(1001010)
の正確なアドレスにまだ完全に変更されていない。この
遷移フェーズは図2のストローブ信号の脇に期間A及び
Bとして示され、これは図7に関連して述べたように、
ポイント1及び4における後縁がメモリ・セクタ内の変
更を引起こす潜在性を有することを示す。
【0024】この遷移期間はIOCC7論理に固有の潜
在的タイミング遅延による。例えば、バスマスタ・コマ
ンド・クロックがメモリ・セクタの変更を要求すると、
新たなアドレスが読出しのために要求されるタイミング
と、IOCC論理が新たなアドレスを計算し、ラッチ内
の以前のセクタ・アドレスを置換するタイミングとの間
に遷移期間が存在する。
【0025】従って当業者には、図6に示される遷移フ
ェーズの間に、スヌープ・オペレーションがCPU1ク
ロックに同期して発生する場合(すなわちCPUクロッ
クが図2の期間AまたはBに一致するように、スヌープ
比較のためのアドレス・サンプリング周期を規定すると
き)、誤りスヌープ・ヒットが発生するか、有効スヌー
プ・ヒットが省かれ、その結果、システム・バス5をス
ヌープする装置は、IOCC7が実際に遷移セクタ・ア
ドレスの1つに対応するデータを所有するにも関わら
ず、この判断を誤り、遷移フェーズの間に与えられる不
正な応答により、キャッシュ9、キャッシュ3及びメモ
リ11が非コヒーレントな状況を生じることが理解され
よう。IOCC7がメモリ・セクタを所有する間、これ
はシステム・バス上でスヌーピングを実行する。特定の
バス・サイクルが "スヌープ・ウィンドウ" であること
を判断するために、CPUバス・プロトコル信号が使用
される。
【0026】図3はスヌープ・ヒットが発生したかどう
かを判断するために本発明により使用され、IOCC7
に含まれるハードウェア論理を示す。ラッチ15はデー
タ転送オペレーションの間に、I/Oバスマスタにより
提供されるアドレスを受信する。バスマスタ装置はま
た、メモリ・アドレスがラッチされるタイミングを示す
図2のコマンド・クロックをラッチ15に入力する(ゲ
ーティング論理22により適切に調節される)。スヌー
プ・ヒットが発生するかどうかを判断するために、IO
CC7はページ比較器19及びセクタ比較器29を含
み、これらはシステム・バス5から、システム・バス5
に接続され、メモリ11をアクセス可能な別の装置によ
り要求されるデータのロケーションに対応するアドレス
を受信する。ラッチ15内のアドレスはまた比較器19
及び29に提供され、I/Oバスマスタ装置によりアク
セスされるI/Oキャッシュ9内のデータのメモリ・ア
ドレスを含む。
【0027】更に、バスマスタ装置が別のページ上のデ
ータにアクセスを要求したかどうかを判断するページ専
用比較器30が提供され、システムにバスマスタを非活
動化させ、CPUクロックに同期してバスマスタ・アド
レス・ラッチをリセットさせる。バスマスタにより提供
されるメモリ・アドレス及びシステム・バスからのメモ
リ・アドレスが次に比較される。ページが同一の場合、
ページ・ヒットが発生し、対応する信号がANDゲート
31及び35に出力される。セクタ・アドレスが同一の
場合、セクタ・ヒットが発生し、信号が比較器29から
ANDゲート31に出力される。ページ・ヒット信号及
びセクタ・ヒット信号の両者が有効な場合、信号がAN
Dゲート31からANDゲート33に出力される。次に
DMAオペレーションの状態を示す信号がANDゲート
33及び35に入力される。DMAバスマスタ活動信号
はANDゲート33に入力される以前に反転される。両
方のANDゲート33及び35の出力はORゲート37
に入力され、これは次に信号をANDゲート40に出力
し、ANDゲート40は更にスヌープ・ヒットの発生を
示すCPUクロック(図2)により規定される信号を受
信する。
【0028】従って図3から、本発明がDMAバスマス
タ装置の状態にもとづき、スヌープ比較アドレスの細分
性を動的なものとする様子が理解される。すなわち、図
3のDMA信号が非活動状態の場合、有効信号がAND
ゲート33に入力される。ANDゲート31からの信号
にもとづきページ・ヒット及びセクタ・ヒットの両方が
発生すると、ゲート33が有効信号をORゲート37に
出力する。次にANDゲート40は、スヌープ・ウィン
ドウ信号が入力される時にORゲート37からの信号が
存在すると、スヌープ・ヒットが発生したことを示す信
号を出力する。ここでスヌープ・ヒットが発生したかど
うかを判断するために、IOCC7がその内部論理をサ
ンプルするタイミングを決定するために、CPUバス・
クロックが使用される。このように、DMAバスマスタ
装置が非活動状態の場合、スヌープ比較はセクタ細分性
を基本として導入される。しかしながら、DMA活動信
号が活動状態の場合、有効信号がANDゲート33では
なく、ANDゲート35に入力される。従って、比較器
19からのページ・ヒット信号及びDMA活動信号によ
り、信号がORゲート37に出力され、続いてANDゲ
ート40に出力される。このようにゲート40は、ペー
ジ・ヒットが存在する間にスヌープ・ヒット信号が入力
される場合に、スヌープ・ヒットの存在を示す。DMA
信号はトグルされるので(活動状態と非活動状態の間を
変化する)、システムがページ・アドレスとセクタ・ア
ドレスの間のスヌープ比較細分性を動的に変更する様子
が理解される。
【0029】従って本発明は、ページ・アドレス部分と
セクタ・アドレス部分との間で、スヌープ比較細分性が
動的に変化するように、IOCC7のスヌープ比較論理
を変更する。このようにして、DMAバスマスタ装置が
スヌープ比較のためのアドレスを非同期に更新させる
時、DMAバスマスタ装置による活動の間、セクタ・ア
ドレスは完全に無視される。
【0030】ページ・アドレス細分性がスヌーピング・
オペレーションのために使用される場合に、活動状態の
DMAバスマスタ装置及びシステム・バス5上の別の装
置(CPU1など)が、同一ページ上の異なるメモリ・
アドレス・セクタ内のデータへのアクセスを希望する可
能性がある。この場合、ページ・アドレス細分性のため
にスヌープ・ヒットが発生する。DMAバスマスタ装置
がキャッシュ9内のデータをアクセスしている時にスヌ
ープ・ヒットが発生すると、IOCC7はARTRY信
号を発行し、データを要求する装置にDMAバスマスタ
活動が停止されるまで待機するように伝える。この時、
IOCC7はデータの所有権の転送を阻止するために介
入しない(例えばARTRYの発行を中止する)。この
第1のケースでは、システム・バス5に接続される別の
装置が、DMAバスマスタ装置によりアクセスされるメ
モリ・セクタ・アドレスと同じページ上のメモリ・セク
タ・アドレスを要求する時、本発明はデータ処理システ
ム内の種々のメモリ・ロケーション(L1キャッシュ及
びシステム・メモリ)間のデータの非コヒーレンスを回
避する。
【0031】別のケースでは、活動状態のDMAバスマ
スタ装置が、IOCC7が別の装置により所有されるメ
モリ・セクタ・アドレスからフェッチしなければならな
いデータを要求することにより、スヌープ・ヒットを発
生する。その装置はスヌープ・ヒットを検出し、IOC
Cをホールドオフし、その間、要求されるコヒーレンス
維持活動を実行する。これには要求されるセクタの変更
されたコピーのメモリへの書込みなどが含まれる。IO
CC7がI/Oバスマスタにより要求されるデータを提
供できない時には、IOCCは前記バスマスタをホール
ドオフし、そのDMA活動信号を非活動化する。DMA
が非活動状態の時、IOCCはセクタ細分性を使用して
CPUバスをスヌープし、更に要求セクタのその(未変
更の)コピーを無効化することにより、スヌープ・ヒッ
トに応答する。すなわち、IOCC7のキャッシュ9内
のセクタの未変更のコピーが無効化される。
【0032】前のケースでは、メモリ・セクタ・アドレ
スには無関係にスヌープ・ヒットが発生する。なぜな
ら、DMAバスマスタ装置が活動状態であり、スヌープ
比較細分性がページ・アドレス・レベルであるからであ
る。しかしながら、DMAバスマスタが現在アクセスさ
れているデータと異なるページ・アドレスを有するデー
タを要求すると(これはバスマスタ装置が新たなページ
のアドレスを提供する時、図3の比較器30により判断
される)、前述されたリセット活動が発生し、DMAバ
スマスタは非活動状態となり、図3のラッチ15がCP
Uクロックに同期して更新される。
【0033】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0034】(1)スヌーピング・プロトコルによりシ
ステムのキャッシュ・コヒーレンスを維持する方法であ
って、スヌープ比較がCPUクロックにより決定される
タイミングで発生するものにおいて、ページ部分及びセ
クタ部分を有するアドレスを提示することにより、メモ
リからのデータの所有権を要求するステップと、前記C
PUクロックとは非同期に第1の装置の内部キャッシュ
内の前記データを活動的にアクセスするステップと、前
記内部キャッシュが活動的にアクセスされる間に、前記
スヌープ比較を導入するために、前記アドレスのページ
部分だけを使用するステップと、を含む方法。 (2)前記データが活動的にアクセスされる時に、別の
装置が前記データへのアクセスを獲得することを阻止す
るステップを含む、前記(1)記載の方法。 (3)前記内部キャッシュが活動的にアクセスされてい
ない間に、前記スヌープ比較を導入するために、前記ア
ドレスのページ部分及びセクタ部分を使用するステップ
を含む、前記(2)記載の方法。 (4)前記内部キャッシュが活動的にアクセスされてい
ない間に、別の装置が前記データを要求したことを判断
して、前記第1の装置内の前記データを無効化するステ
ップを含む、前記(3)記載の方法。 (5)スヌーピング・プロトコルによりシステムのキャ
ッシュ・コヒーレンスを維持するデータ処理システムで
あって、スヌープ比較がCPUクロックにより決定され
るタイミングで発生するものにおいて、ページ部分及び
セクタ部分を有するアドレスを提示することにより、メ
モリからのデータの所有権を要求する手段と、前記CP
Uクロックとは非同期に第1の装置の内部キャッシュ内
の前記データを活動的にアクセスする手段と、前記内部
キャッシュが活動的にアクセスされる間に、前記スヌー
プ比較を導入するために、前記アドレスのページ部分だ
けを使用する手段と、を含むデータ処理システム。 (6)前記データが活動的にアクセスされる時に、別の
装置が前記データへのアクセスを獲得することを阻止す
る手段を含む、前記(5)記載のデータ処理システム。 (7)前記内部キャッシュが活動的にアクセスされてい
ない間に、前記スヌープ比較を導入するために、前記ア
ドレスのページ部分及びセクタ部分を使用する手段を含
む、前記(6)記載のデータ処理システム。 (8)前記内部キャッシュが活動的にアクセスされてい
ない間に、別の装置が前記データを要求したことを判断
して、前記第1の装置内の前記データを無効化する手段
を含む、前記(7)記載のデータ処理システム。 (9)前記第1の装置がシステム・バスと入出力バスと
の間のインタフェースを提供する入出力制御装置であ
る、前記(8)記載のデータ処理システム。 (10)前記活動的にアクセスする手段が、前記入出力
制御装置に接続可能で、前記メモリとの間でデータの直
接メモリ・アクセスを導入可能な入出力装置である、前
記(9)記載のデータ処理システム。 (11)ページ部分だけを使用する前記手段が、前記入
出力装置の状態にもとづき、前記スヌープ比較を導入す
るために使用される細分性を前記ページ部分と前記セク
タ部分との間で動的に変更する手段を含む、前記(1
0)記載のデータ処理システム。 (12)前記動的に変更する手段が、前記入出力制御装
置上に含まれる論理回路を含む、前記(11)記載のデ
ータ処理システム。
【0035】
【発明の効果】以上説明したように、本発明によれば、
I/Oバスマスタ装置がキャッシュ9との間で非同期に
データを転送することができ、CPUクロックにもとづ
き開始されるスヌープ・オペレーションは、ページ・ア
ドレス細分性の使用により、スヌープ比較のための有効
アドレスを有することが保証される。従って、新たなペ
ージがバスマスタ装置によりアドレスされる時に、I/
Oバス13上の活動を暫時ホールドオフすることによ
り、システム性能の低下がほとんど発生しないことが理
解される。
【0036】当業者には理解されるように、本発明はバ
スマスタ装置とIOCCとの間のデータ転送に関連して
述べられてきたが、本発明はシステム・バスに同期して
システム・メモリ内のデータをアクセスする装置間のキ
ャッシュ・コヒーレンスを提供し、そのL1キャッシュ
はシステム・バスとは非同期に更新される。
【図面の簡単な説明】
【図1】本発明を使用可能なデータ処理システムのブロ
ック図である。
【図2】I/Oバス上のバスマスタ装置からI/O制御
チップへのデータ書込みオペレーションの非同期性を表
すクロック信号を示す図である。
【図3】スヌーピング・プロトコルによりシステムにキ
ャッシュ・コヒーレンスを提供するための、本発明によ
り使用される論理コンポーネントの図である。
【図4】各々がI/OバスマスタDMA装置により書込
まれる複数のセクタを有するメモリ・ページを示す図で
ある。
【図5】メモリ・ロケーションのページ、セクタ及びバ
イト・オフセットを識別するのに必要な詳細レベルを示
すメモリ・アドレスを表す図である。
【図6】変更を受け、本発明により解決される問題を担
うセクタ・アドレスの実際のビットの例を示す図であ
る。
【図7】複数の32バイト・メモリ・セクタの個々の4
バイト・ワード・オフセット部分を示す図である。
【符号の説明】
1 中央処理ユニット(CPU) 2 バイト・オフセット部分 5 システム・バス 7 入出力チャネル制御装置 9 L2キャッシュ 10 メモリ・セクタ 11 メモリ・サブシステム 13 入出力(I/O)バス 19 ページ比較器 29 セクタ比較器 30 ページ専用比較器 31、33、40 ANDゲート 37 ORゲート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デニス・ジェラルド・グレゴイル アメリカ合衆国78758、テキサス州オー スティン、ステーリング・ヒル・ドライ ブ 11800 (72)発明者 アミイ・メイ・ヤングス アメリカ合衆国78759、テキサス州オー スティン、フローラル・パーク・ドライ ブ 10638 (56)参考文献 特開 平5−189359(JP,A) 特開 平1−118944(JP,A) 特開 平2−72451(JP,A) 実開 平4−132550(JP,U)

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】スヌーピング・プロトコルによりシステム
    のキャッシュ・コヒーレンスを維持する方法であって、
    スヌープ比較がCPUクロックにより決定されるタイミ
    ングで発生するものにおいて、 ページ部分及びセクタ部分を有するアドレスを提示する
    ことにより、メモリからのデータの所有権を要求するス
    テップと、 前記CPUクロックとは非同期に第1の装置の内部キャ
    ッシュ内の前記データを活動的にアクセスするステップ
    と、 前記内部キャッシュが活動的にアクセスされる間に、前
    記スヌープ比較を導入するために、前記アドレスのペー
    ジ部分だけを使用するステップと、 を含む方法。
  2. 【請求項2】前記データが活動的にアクセスされる時
    に、別の装置が前記データへのアクセスを獲得すること
    を阻止するステップを含む、請求項1記載の方法。
  3. 【請求項3】前記内部キャッシュが活動的にアクセスさ
    れていない間に、前記スヌープ比較を導入するために、
    前記アドレスのページ部分及びセクタ部分を使用するス
    テップを含む、請求項2記載の方法。
  4. 【請求項4】前記内部キャッシュが活動的にアクセスさ
    れていない間に、別の装置が前記データを要求したこと
    を判断して、前記第1の装置内の前記データを無効化す
    るステップを含む、請求項3記載の方法。
  5. 【請求項5】スヌーピング・プロトコルによりシステム
    のキャッシュ・コヒーレンスを維持するデータ処理シス
    テムであって、スヌープ比較がCPUクロックにより決
    定されるタイミングで発生するものにおいて、 ページ部分及びセクタ部分を有するアドレスを提示する
    ことにより、メモリからのデータの所有権を要求する手
    段と、 前記CPUクロックとは非同期に第1の装置の内部キャ
    ッシュ内の前記データを活動的にアクセスする手段と、 前記内部キャッシュが活動的にアクセスされる間に、前
    記スヌープ比較を導入するために、前記アドレスのペー
    ジ部分だけを使用する手段と、 を含むデータ処理システム。
  6. 【請求項6】前記データが活動的にアクセスされる時
    に、別の装置が前記データへのアクセスを獲得すること
    を阻止する手段を含む、請求項5記載のデータ処理シス
    テム。
  7. 【請求項7】前記内部キャッシュが活動的にアクセスさ
    れていない間に、前記スヌープ比較を導入するために、
    前記アドレスのページ部分及びセクタ部分を使用する手
    段を含む、請求項6記載のデータ処理システム。
  8. 【請求項8】前記内部キャッシュが活動的にアクセスさ
    れていない間に、別の装置が前記データを要求したこと
    を判断して、前記第1の装置内の前記データを無効化す
    る手段を含む、請求項7記載のデータ処理システム。
  9. 【請求項9】前記第1の装置がシステム・バスと入出力
    バスとの間のインタフェースを提供する入出力制御装置
    である、請求項8記載のデータ処理システム。
  10. 【請求項10】前記活動的にアクセスする手段が、前記
    入出力制御装置に接続可能で、前記メモリとの間でデー
    タの直接メモリ・アクセスを導入可能な入出力装置であ
    る、請求項9記載のデータ処理システム。
  11. 【請求項11】ページ部分だけを使用する前記手段が、
    前記入出力装置の状態にもとづき、前記スヌープ比較を
    導入するために使用される細分性を前記ページ部分と前
    記セクタ部分との間で動的に変更する手段を含む、請求
    項10記載のデータ処理システム。
  12. 【請求項12】前記動的に変更する手段が、前記入出力
    制御装置上に含まれる論理回路を含む、請求項11記載
    のデータ処理システム。
JP6163468A 1993-09-20 1994-07-15 非同期dmaキャッシュ Expired - Lifetime JP2642064B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US123820 1993-09-20
US08/123,820 US5526512A (en) 1993-09-20 1993-09-20 Dynamic management of snoop granularity for a coherent asynchronous DMA cache

Publications (2)

Publication Number Publication Date
JPH07105090A JPH07105090A (ja) 1995-04-21
JP2642064B2 true JP2642064B2 (ja) 1997-08-20

Family

ID=22411087

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6163468A Expired - Lifetime JP2642064B2 (ja) 1993-09-20 1994-07-15 非同期dmaキャッシュ

Country Status (8)

Country Link
US (1) US5526512A (ja)
EP (1) EP0644491B1 (ja)
JP (1) JP2642064B2 (ja)
KR (1) KR970007271B1 (ja)
AT (1) ATE191803T1 (ja)
CA (1) CA2125218A1 (ja)
DE (1) DE69423938T2 (ja)
ES (1) ES2144488T3 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781763A (en) * 1995-04-07 1998-07-14 International Business Machines Corporation Independent control of DMA and I/O resources for mixed-endian computing systems
US6128711A (en) 1996-11-12 2000-10-03 Compaq Computer Corporation Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes
US5809528A (en) * 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
US5958011A (en) * 1997-03-31 1999-09-28 International Business Machines Corporation System utilizing mastering and snooping circuitry that operate in response to clock signals having different frequencies generated by the communication controller
US5937167A (en) * 1997-03-31 1999-08-10 International Business Machines Corporation Communication controller for generating four timing signals each of selectable frequency for transferring data across a network
US6173371B1 (en) * 1997-04-14 2001-01-09 International Business Machines Corporation Demand-based issuance of cache operations to a processor bus
KR100455116B1 (ko) * 1997-10-23 2004-12-30 엘지전자 주식회사 내장시스템의메모리액세스방법
US6792424B1 (en) 1999-04-23 2004-09-14 International Business Machines Corporation System and method for managing authentication and coherency in a storage area network
US7062612B2 (en) * 2002-12-12 2006-06-13 International Business Machines Corporation Updating remote locked cache
FR2864730B1 (fr) * 2003-12-26 2006-03-17 Temento Systems Dispositif de memorisation
US7395448B2 (en) * 2006-07-26 2008-07-01 International Business Machines Corporation Directly obtaining by application programs information usable in determining clock accuracy
WO2015195076A1 (en) * 2014-06-16 2015-12-23 Hewlett-Packard Development Company, L.P. Cache coherency for direct memory access operations

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3638947C2 (de) * 1986-11-14 1995-08-31 Bosch Gmbh Robert Verfahren zur Synchronisation von Rechnern eines Mehrrechnersystems und Mehrrechnersystem
JPH01118944A (ja) * 1987-10-31 1989-05-11 Toshiba Corp キャッシュメモリ制御装置
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
JPH0778765B2 (ja) * 1988-09-08 1995-08-23 富士通株式会社 キャッシュ内蔵プロセッサ
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5287482A (en) * 1989-01-13 1994-02-15 International Business Machines Corporation Input/output cache
DE68923863T2 (de) * 1989-01-13 1996-03-28 Ibm Ein-/Ausgabecachespeicherung.
US5133074A (en) * 1989-02-08 1992-07-21 Acer Incorporated Deadlock resolution with cache snooping
JPH0630094B2 (ja) * 1989-03-13 1994-04-20 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセツサ・システム
US5072369A (en) * 1989-04-07 1991-12-10 Tektronix, Inc. Interface between buses attached with cached modules providing address space mapped cache coherent memory access with SNOOP hit memory updates
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
JPH0348951A (ja) * 1989-07-18 1991-03-01 Fujitsu Ltd アドレスモニタ装置
JPH03219345A (ja) * 1990-01-25 1991-09-26 Toshiba Corp 多ポートキャッシュメモリ制御装置
US5263142A (en) * 1990-04-12 1993-11-16 Sun Microsystems, Inc. Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
US5202973A (en) * 1990-06-29 1993-04-13 Digital Equipment Corporation Method of controlling a shared memory bus in a multiprocessor system for preventing bus collisions and for ensuring a full bus
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
JPH04132550U (ja) * 1991-05-23 1992-12-08 横河電機株式会社 マルチプロセツサシステム
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
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
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
GB2272315B (en) * 1991-07-02 1995-10-04 Intel Corp Asynchronous modular bus architecture with burst capability
JPH05189359A (ja) * 1992-01-16 1993-07-30 Hitachi Ltd キャッシュメモリ制御方式
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
EP0559409B1 (en) * 1992-03-04 1998-07-22 Motorola, Inc. A method and apparatus for performing a bus arbitration protocol in a data processing system
US5398325A (en) * 1992-05-07 1995-03-14 Sun Microsystems, Inc. Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems

Also Published As

Publication number Publication date
KR950009444A (ko) 1995-04-24
ATE191803T1 (de) 2000-04-15
KR970007271B1 (ko) 1997-05-07
DE69423938D1 (de) 2000-05-18
EP0644491B1 (en) 2000-04-12
DE69423938T2 (de) 2000-10-12
ES2144488T3 (es) 2000-06-16
CA2125218A1 (en) 1995-03-21
JPH07105090A (ja) 1995-04-21
EP0644491A1 (en) 1995-03-22
US5526512A (en) 1996-06-11

Similar Documents

Publication Publication Date Title
US5555398A (en) Write back cache coherency module for systems with a write through cache supporting bus
US5913224A (en) Programmable cache including a non-lockable data way and a lockable data way configured to lock real-time data
US5426765A (en) Multiprocessor cache abitration
US5551006A (en) Low cost writethrough cache coherency apparatus and method for computer systems without a cache supporting bus
US5119485A (en) Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US5557769A (en) Mechanism and protocol for maintaining cache coherency within an integrated processor
US5659710A (en) Cache coherency method and system employing serially encoded snoop responses
US5774700A (en) Method and apparatus for determining the timing of snoop windows in a pipelined bus
US5802559A (en) Mechanism for writing back selected doublewords of cached dirty data in an integrated processor
KR100228940B1 (ko) 메모리 일관성 유지 방법
JPH08328957A (ja) マルチプロセッシング・システムにおけるキャッシュ・パフォーマンス向上のためのシステムおよび方法
JP2002163148A (ja) キャッシュメモリー付マルチ処理システム
JPH0797354B2 (ja) 2レベルのキャッシュ・メモリ及びそれを操作するキャッシュ・コヒーレンスの方法
JP4119380B2 (ja) マルチプロセッサシステム
US20060236039A1 (en) Method and apparatus for synchronizing shared data between components in a group
JP2642064B2 (ja) 非同期dmaキャッシュ
US5590310A (en) Method and structure for data integrity in a multiple level cache system
US5617556A (en) System and method to prevent the occurrence of a snoop push during read and write operations
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US5920891A (en) Architecture and method for controlling a cache memory
US20040111566A1 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
WO1997004392A1 (en) Shared cache memory device
JP3202943B2 (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法
US6021466A (en) Transferring data between caches in a multiple processor environment
JPH0353657B2 (ja)