JPH10501085A - 二次キャッシュ・メモリ用のキャッシュ・フラッシュ機構 - Google Patents

二次キャッシュ・メモリ用のキャッシュ・フラッシュ機構

Info

Publication number
JPH10501085A
JPH10501085A JP9502884A JP50288497A JPH10501085A JP H10501085 A JPH10501085 A JP H10501085A JP 9502884 A JP9502884 A JP 9502884A JP 50288497 A JP50288497 A JP 50288497A JP H10501085 A JPH10501085 A JP H10501085A
Authority
JP
Japan
Prior art keywords
cpu
cache
memory
bus
signal
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
JP9502884A
Other languages
English (en)
Inventor
信之 大庭
武男 中田
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH10501085A publication Critical patent/JPH10501085A/ja
Pending 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 デュアルモードで動作するメモリ・システムに適用可能なキャッシュ・フラッシュのための効果的な機構を開示する。デュアルモードは、全体のアドレスの少なくとも一部の中の共通の物理アドレスにある2つの物理的に区別された主記億空間をそれぞれ使用する2つのモードから成る。モードの切換えを表す信号(SMIACT#)の二次キャッシュによる制御を行う。CPUがSMIACT#を発生させて、それがシステム・コアによって検出されると、システム・コアはキャッシュ・メモリがライトバックするメモリ・バンクを切り換え、その結果キャッシュ・メモリと主記億との間で整合性がとれなくなることがある。しかし、本発明は、キャッシュ・フラッシュが終了する前にSMIACT#がシステム・コアに達しないように割り込むだけで、システム・コアが実際にはCPUがSMIACT#を発生させているにもかかわらずモードがまだ切り換えられていないとみなすため、キャッシュ・メモリの内容がそのデータが元々入っていた正しいメモリ・バンクに確実にライトバックされるようにする。

Description

【発明の詳細な説明】 二次キャッシュ・メモリ用のキャッシュ・フラッシュ機構 技術分野 本発明は、二次キャッシュを有するPC用キャッシュ・フラッシュ・ハードウ ェアのための機構に関する。特に、本機構は、複数の物理アドレス空間を使用す るシステムに応用される。 背景 CPUは、内部キャッシュ・システムをフラッシュするFLUSH#という名 称の信号入力を有する。FLUSH#信号がメモリへのアクセスの制御と管理を 行うシステム・コアによって駆動されると、強制的にCPUがオンチップ・キャ ッシュの内容全体をフラッシュさせる。CPUシステムは、通常、情報を記憶し 、その中に記憶されているデータを引き出すためにCPUによってアクセスされ る主記憶と、CPUと主記憶の間にあって、必要なデータへの高速のアクセスを 可能にし、CPUがひんぱんにアクセスし、主記憶にも二重に記憶されているデ ータの一部分を記憶する一次キャッシュ・メモリなど、CPU自体以外のいくつ かの要素で構成されている。好ましくは、一次キャッシュ・メモリと主記憶の間 にあって、一次キャッシュ・メモリほどは高速ではないがより多くのデータを記 憶することができる二次キャッシュ・メモリも備える。二次キャッシュ・メモリ もFLUSH#という名称の信号入力線を有し、同様の目的と機能を有する。 CPUと二次キャッシュとの間のデータ書込み処理を行う方式は2通りある。 1つはライトスルー方式であり、CPUがデータを二次キャッシュと主記憶とに 同時に書き込む。もう1つの方法は、ライトバック方式であり、CPUがデータ を二次キャッシュのみに書込みたい場合に二次キャッシュにのみデータを書き込 む。言い換えると、ライトバック操作の場合には主記憶にはバックアップ・デー タがない。容易に想像できるように、ライトバック操作はデータ転送の点から見 ればより効率的であるが、キャッシュ・フラッシュのときに二次キャッシュの内 容を主記憶に転送すなわち「ライトバック」する必要がある。 システムのこれらの構成要素は、CPUバスと呼ばれる共通データ転送線によ って接続されている。このバスはシステムのすべての構成要素に共通であるため 、FLUSH#信号に応答してライトバック・サイクルを開始する場合にアクセ ス競合が起こることがある。したがって、この競合を回避するための調停機構が 必要である。書きかえられたラインをライト・バックする前に、二次キャッシュ はライトバック・サイクルを開始するためにCPUバスの所有権を獲得しなけれ ばならない。 本明細書で説明する典型的なCPUシステムを第1図に示す。この図では、一 次キャッシュはCPU内に含まれ、図示されていない。主記憶は二次キャッシュ に接続されるようにサポートされているが、主記憶は図示されていない。二次キ ャッシュは、FLUSH#によってCPUとシステム・コアの両方に接続されて いる。システム・コアはCPUと二次キャッシュと主記憶との間でのデータ読み 書きを制御する。FLUSH#は、システム・コアが、一次キャッシュと二次キ ャッシュをフラッシュする場合にアサートされる。CPUとシステム・コアはH OLDおよびHLDAを介して接続されている。HOLDは、システム・コアが CPUに対してバスを解放するよう要求するときに駆動される。CPUは、バス を使用する現行タスクを終了した後、バスを解放し、HLDAをアサートしてバ スが解放されたことを通知する。しかし、このシステムでは二次キャッシュはバ スを獲得するための信号をCPUにもシステム・コアにも送ることができないた め、それ自体ではバスの所有権を獲得することができない。ライトバック操作を 行うためには二次キャッシュはライトバック操作を開始する前にバスの所有権を 集中的に獲得しなければならないため、このシステムではライトバック操作を行 うことができないことになる。 これは従来の技術における主要な問題である。この問題を解決するために、シ ステムにBOFF#線を付加する。この線は、二次キャッシュをCPUに接続し 、この信号線がアサートされると、CPUは即時にバス線を解放し、次のCPU サイクルで二次キャッシュがバスの所有権を獲得する。BOFF#はCPUに現 行タスクを強制的に打ち切らせ、そのタスクを後で最初から再実行させる。しか し、この方法は、CPUが履歴に影響されるようなサイクルを実行中に二次キャ ッシュがBOFF#線をアサートした場合に間題を引き起こすことがある。たと えば、 CPUが入出力サイクルを実行中、CPUはその操作を中止してバスを解放して はならない。たとえばデータ転送などの入出力操作の最中にバスを解放するとデ ータの不整合が発生し、後でそのサイクルを再生しても不整合を回復することが できないためである。二次キャッシュは、CPUが履歴に影響されるようなサイ クルを実行しているかどうかを検出することができず、CPUが履歴に影響され るようなサイクルを実行行っているタイミング・ウィンドウでBOFF#を選択 的にアサートすることもできないことにも留意されたい。 二次キャッシュがバスの所有権を獲得するもう一つの方法は、"Look-Aside St ore In Cache Functional Specification, by Phil Milling and Jorge Lenta,P reliminary revision 1.1 (Jan. '93)"という資料に記載されているように、C PUがダミー入出力サイクルを生成するときにBOFF#をアサートすることで ある。この方法では、二次キャッシュがシステム・コアがFLUSH#をアサー トしているのを検出し、フラッシュ保留状態へ移行することによって、最初の方 法で生じる問題を解決する。フラッシュ保留状態で、二次キャッシュは、CPU が後で生成することを想定しているダミー入出力を待つ。しかし、この方法では 、CPUは必ずダミー入出力サイクルを生成する必要があるため、実際にはシス テム・プログラムによってフラッシュ・サイクルをCPUが開始しなければなら ない。この方法の問題は、システム・コアが自分自身でフラッシュを開始するシ ステムには適用することができないことである。 この方法の1つの代替策は、CPUがフラッシュ肯定応答サイクルを生成する ときに、BOFF#をアサートすることである。この方法は、システム・コアが FLUSH#をアサートしていることを二次キャッシュが検出すると、二次キャ ッシュはフラッシュ保留状態になって、CPUがオンチップ・キャッシュ・フラ ッシュを完了した後に生成するフラッシュ肯定応答サイクルを待つ。しかし、こ の方法はフラッシュ肯定応答サイクルを生成しないタイプのCPUでは機能する ことができない。実際には、フラッシュ肯定応答サイクルを生成するCPUはき わめて限られたタイプであり、これはこの方法が様々なシステムで一般的に利用 できないことを意味する。 最近、パーソナル・コンピュータ(PC)で使用される多くのCPUは、省電 力機能などのアプリケーションに依存しないサービスのためにデュアル・モード ・メモリ管理を採用している。たとえば、インテルx86 CPUチップは、ア ドレス領域のうちの一部にある共通の固有アドレスを使用する2つの明らかに区 別されるメモリ・システムを使用するモードを採用している。すなわち、1つの 特定のアドレスが2つの異なる物理記憶場所に対応しており、システムが実行し ている現行モードを検出することによって、2つの異なる物理記憶場所のうちの いずれか一方が排他的に使用される。標準モードに対して、この迫加されたモー ドは通常、「システム管理モード」と呼ばれ、しばしばSMMと略称される。シ ステムがSMMに入るためには、システム・コアがCPUに対してシステム管理 割込み(SMI#)要求を生成する。 このデュアル・モード・システムを第7図に略図で示す。このシステムでは、 動作は標準モードとシステム管理モードの2つのモードで行われる。2つのモー ドはCPUによって生成されるSMIACT#によって区別される。たとえば、 SMIACT#がハイに駆動されると、システム全体が標準モードで動作し、標 準RAMに対してメモリ・アクセスが行われることになる。SMIACT#がL OWに駆動されると、システム全体がSMMになり、メモリ・アクセスをSMR AMに対して行うことができることを意味する。第7図では、SMRAMは論理 アドレス1000〜2000の範囲に存在しており、したがって、この範囲のア ドレスへのアクセスはSMRAMに対して行われ、その他のメモリ・アドレスへ のアクセスは、システム全体がSMMで動作していた場合でも標準RAMに対し て行われることになる。 SMRAMは、SMM動作中にCPUが専用に使用する物理メモリであり、容 量は32KBないし4GBであり、SMMハンドラ・コードと、関連するシステ ム固有SMMデータと、SMMに入る前のプロセッサの状態を表すプロセッサ状 態情報を保持する。CPUはSMMに入るとSMIACT#をローでアサートし 、システム・コアに対してSMRAM空間に切り換えるように通知する。すると CPUはその現行レジスタ状態情報をSMRAM空間の最上部から始まるエリア にスタック状に格納する。これを、プロセッサ状態ダンプ、コンテキスト切換え 、または状態保存と呼ぶ。状態保存シーケンスが完了すると、SMIハンドラが 起 動する。システム論理回路はCPUおよびSMIハンドラがこの領域のみにアク セスするように保証する必要がある。 既存のシステムでは、システム・コアがFLUSH#を使用してCPUオンチ ップ・キャッシュと二次キャッシュを標準モードとSMMの両方でフラッシュす ることはできなかった。これは、デュアル・モード機が従来、標準メモリとSM RAMが重複しているエリアでライトバック方式を使用できないためである。し かし、デュアル・モードとライトバック方式の並存によってパーソナル・コンピ ュータのパフォーマンスが向上すると考えられ、したがってライトバックとSM Mに関するキャッシュ・フラッシュの問題を解決することには意味がある。 キャッシュ・フラッシュの要求は、CPUがモードを切り換えるときに行われ ることが多い。実際のキャッシュ・フラッシュ操作とほぼ同時にCPUからSM IACT#が発生するため、二次キャッシュと主記憶との間のデータ整合性がと れなくなる可能性がある。すなわち、SMIACT#がすでに発生しており、シ ステム・コアがそのメモリ・バンクを一方から他方に(たとえば標準RAMから SMRAMに)変更した場合、キャッシュ・メモリからのライトバックが、キャ ッシュ・メモリの内容が元々入っていなかった誤ったメモリ(たとえばSMRA M)に入れられることになる。 発明の概要 本発明の1つの目的は、ライトバック・サイクルを侵害せず、フラッシュ操作 とライトバック・サイクルとの間のタイミングに注意を払う必要なしに、キャッ シュ・フラッシュを実現する効率的な機構を提供することである。 本発明の他の目的は、CPU以外によって、より特定的にはシステム・コアに よって開始されるフラッシュ・サイクルを実現することである。 本発明の他の目的は、標準モードとシステム管理モードなどデュアル・モード を有するシステムにおいてキャッシュ・フラッシュを実現する効率的な機構を提 供することである。 本発明の他の目的は、システム・コアがキャッシュ・フラッシュ操作とライト バック・サイクルとの間のタイミングに注意を払う必要なしに、インテルx86 CPUのバス・インタフェースと完全に互換性のあるキャッシュ・フラッシュ機 構を提供することである。 本発明の一態様では、二次キャッシュがCPUに対してキャッシュ・フラッシ ュを開始するためにバスの所有権の獲得を要求する。 本発明の他の態様では、システム・コアがモード切換えを一時的に検出できな いように二次キャッシュによってSMIACT#がトラップされる。SMIAC T#がCPUによってアサートされ、それをシステム・コアが検出すると、シス テム・コアはキャッシュ・メモリがライトバックするメモリ・バンクを切り換え 、その結果、キャッシュと主記憶との間の記憶整合性がとれなくなる。しかし、 本発明は、キャッシュ・フラッシュが終了する前にSMIACT#がシステム・ コアに到達しないようにすることにより、キャッシュ・メモリの内容が、そのデ ータが元々入っていた正しいメモリ・バンクに確実にライトバックされるように する。これは、システム・コアが、実際にはCPUがSMIACT#を発生した にもかかわらずモードがまだ切り換えられていないとみなしているためである。 図面の簡単な説明 第1図は、従来の技術で一般に実施されているメモリ・システムを示す図であ る。 第2図は、本発明の第1の実施例のメモリ・システムを示す概略図である。 第3図は、第2図に示すメモリ・システムの信号タイミング図である。 第4図は、本発明の第2の実施例のメモリ・システムを示す概略図である。 第5図は、CPUと二次キャッシュからのバス・アクセスが競合しない場合の 、第4図に示すメモリ・システムの信号タイミング図である。 第6図は、CPUと二次キャッシュからのバス・アクセスが競合する場合の、 第4図に示すメモリ・システムの他の信号タイミング図である。 第7図は、デュアルモード・メモリ・システムの一例を示す概略図である。 実施例 本発明の一実施例を、第2図に示す。このシステムは、CPUと、システム・ コアと、CPUとシステム・コアの両方に接続された二次キャッシュとを備える 。本発明のこの実施例では、キャッシュ・フラッシュを実現するためにHOLD 信号とHLDA信号が制御される。二次キャッシュはフラッシュを開始するとき 、L2HOLDをアサートし、この信号とシステム・コアからの出力信号である SHOLDとの論理和がとられる。二次キャッシュはCPUからHLDAを受け 取り、それをL2HLDAとしてシステム・コアに渡す。HOLDとHLDAは 「背景」で述べたのと同じ機能を有する信号である。HOLDはCPUに対して バスを解放するように要求するが、本発明では、HOLDはSHOLDとL2H OLDとの論理和によって生成される。これにより、二次キャッシュがL2HO LDをアサートすることによってCPUに対してバスを解放する要求を出すこと ができ、それと同時にシステム・コアもSAHOLDを使用してこれを行うこと ができることを意味する。一般的には、システム・コアはスヌープのため、すな わちキャッシュ・メモリと主記憶との整合性をとるためやバスを使用したいとき にSAHOLDをアサートする。HLDAは、二次キャッシュがバスを獲得する ことができるというCPUからの許可である。第1図とは異なり、HLDAに二 次キャッシュが割り込むため、二次キャッシュはこの許可をシステム・コアより 先に検出することができる。これは、二次キャッシュからのバス要求がシステム ・コアからのバス要求よりも優位にあることを意味し、それによって許可が出さ れた直後にライトバック・サイクルを開始することができる。 フラッシュ操作は、第3図に示すタイミング・チャートを参照しながら説明す る。サイクル1で、システム・コアはFLUSH#をアサートしてローにする。 これは、フラッシュ操作を開始するステム・コアからの要求である。二次キャッ シュはサイクル1の終わりでFLUSH#を検出し、それによってサイクル2で L2HOLDをハイにする。L2HOLDはSHOLDと論理和がとられ、HO LDとしてCPUに送られる出力信号となり、CPUにCPUバスを解放させる 。CPUがバスを解放すると、サイクル3でHLDAがハイでアサートされ、二 次キャッシュがHLDAがハイになっていることを検出してサイクル4の始めか らライトバック・サイクルを開始する。HLDAがハイであることは、CPUが バスを解放し、二次キャッシュのライトバック操作開始の許可とみなされる。サ イ クル20で、二次キャッシュはライトバック・サイクルを終了し、L2HOLD をデアサートし、その結果、HOLDがローになる。これによってCPUはサイ クル21でHLDAをデアサートし、二次キャッシュがこの信号を受け取ってそ れをL2HLDAとしてシステム・コアに渡す。 ただし、CPUはHOLDがアサートされるサイクルの直後のサイクルで常に バスを解放するわけではないことに留意されたい。CPUは、未解決タスクが完 了した場合にのみバスを解放する。第3図では、CPUはサイクル3の後で未解 決タスクをたまたま実行していなかった。しかし、CPUが履歴に影響される処 理をしていたとすれば、そのタスクが終了するまでそのタスクを続行し、その後 で、恐らくサイクル10か100で、HLDAをハイにアサートすることになる 。CPUがバスをただちに二次キャッシュに渡すかそれともCPUがそのタスク を完了するまで続行するかは、単にCPUのみによって決定される。このように して、CPUが履歴に影響される処理を行っていた場合でも適切なライトバック ・サイクルを実現することができ、従来の技術が持っていた主要な問題の1つが 解決される。 この機構によって、HLDAが二次キャッシュによってトラップされ、その結 果ライトバック・サイクル中にL2HLDAがローに維持されるため、システム ・コアが誤ってスヌープ操作を開始するのを防ぐことができる。スヌープは、L 2HLDAが二次キャッシュによってアサートされたこと(これは、ライトバッ ク・サイクルが完了したことを意味する)をシステム・コアが知ってはじめて開 始することができる。このようにして、二次キャッシュはフラッシュ要求時に主 導権をもってそのライトバック操作を開始することができ、それによって従来の 技術が持っていた問題のうちのもう1つが解決される。 本発明の他の態様は、標準モードとシステム管理モードなど、デュアル・モー ドで動作するシステムで実施される。デュアル・モードで動作するシステムでは 、二次キャッシュは現行動作モードと厳密に対応する正しい物理メモリにライト バックしなければならないため、事はさらに複雑である。すなわち、具体的には 、標準モード中のキャッシュ・フラッシュのときはライトバックをシステム管理 RAM(SMRAM)ではなく標準RAMに行わなければならない。標準モード で 誤ってSMRAMにライトバックを行った場合、データ整合性が侵害されること になる。同様に、システム管理モード(SSM)中にキャッシュ・フラッシュを 行った場合は、標準RAMではなくSMRAMにライトバックを行わなければな らない。この場合も、誤って標準RAMにライトバックを行うと、データ整合性 が侵害される。 この実施例では、AHOLD、BOFF#、およびSMIACT#信号を制御 することによって本発明の前述の目的が達成される。信号線はシステムの構成要 素を第4図に示すように接続する。二次キャッシュは、L2AHOLDとL2B OFF#を駆動することができ、これらの信号はそれぞれ、両方ともシステム・ コアからの出力であるSAHOLDと否定BOFF#に対して論理和および否定 論理和がとられる。 システム・コアがフラッシュ操作を行いたい場合、システム・コアはFLUS H#をローでアサートし、これも二次キャッシュによって検出され、二次キャッ シュに強制的にL2AHOLDをハイでアサートさせ、CPUに強制的にそのア ドレス・バスを解放させ、CPUが新たなバスサイクルを発生しないようにする 。前述の実施例で述べたように、CPUが履歴に影響されるタスクを実行してい た場合は、CPUは、二次キャッシュがL2AHOLDをアサートした直後にバ スの権利を放棄する必要はない。 CPUがSMIACT#をローに駆動するにもかかわらず、二次キャッシュは L2SMIACT#をハイのレベルに維持する。これによって、システム・コア がメモリ・バンクを標準メモリからSMRAMに切り換えるのを防ぎ、データが そのデータが属する正しいメモリに確実にライトバックされるようにする。言い 換えると、システムにデュアル・モード動作が適用されている場合、SMIAC T#は一方のモードを他方のモードに変更する信号であり、SMIACT#の変 化をシステム・コアに直接送ったとすれば、システム・コアは動作モードが変わ ったとみなしてメモリ・バンクを切り換え、その結果、誤ったメモリにライトバ ックされることになる。これが起こるのは、SMIACT#が二次キャッシュに よる制御なしで直接、システム・コアに送られる場合である。したがって、第4 図に示すように、SMIACT#を途中で二次キャッシュが受け取り、L2SM IACT#を同じレベルに維持することによってシステム・コアにモードがまだ 変更されていないと思わせる。このようにして、システム・コアはモードがまだ 変更されていないとみなし、それによってメモリ・バンクを切り換えず、二次キ ャッシュ内のデータが標準RAMに正しくライトバックされ、データの整合性が 得られる。 この機構は以下の2つのシナリオに従う。 (i)CPUは、二次キャッシュがL2AHOLDをアサートするのと同時には ADS#をアサートしない、または、 (ii)CPUは、L2AHOLDのアサートと同時にADS#をアサートする 。ADS#はCPU、二次キャッシュ、およびシステム・コアが発生する信号で あり、バスを要求することをシステムの他の構成要素に対して示す。二次キャッ シュがライトバック操作を開始する必要がある時点でCPUがバスを使用するつ もりがない場合、すなわちADS#がL2AHOLDと同時にはアサートされな い場合にはシナリオ1に従う。二次キャッシュがライトバック・サイクルを開始 しようとするのと同じ時点でCPUがバスを使用しようとする場合、すなわちA DS#がL2AHOLDと同時にアサートされる場合には、シナリオ2に従う。 言い換えると、シナリオ2はCPUからと二次キャッシュからの2つのバス・ア クセス要求が競合する場合である。 シナリオ1の場合について、タイミング・チャートを第5図に示す。 a)サイクル1でシステム・コアがFLUSH#をアサートする。これは、フラ ッシュ操作を開始することをシステム・コアがCPUに対して知らせる通知であ る。FLUSH#はサイクル1の終わりで二次キャッシュによっても検出される 。 b)二次キャッシュは、FLUSH#がローになったことを検出すると、サイク ル2でL2AHOLDをハイにし、CPUに次のサイクルでアドレス・バスを解 放させる。L2AHOLDとSAHOLDの論理和をとってAHOLDとしてC PUに送る。 c)CPUが次のバス・サイクルを開始しない場合は、ライトバック操作を開始 することができる。これは前記のADS#によって検出される。サイクル2でA HOLDと同時にCPUがADS#をローに駆動しない場合、二次キャッシュは 、 CPUがバスを使用しないためにライトバック・サイクルを開始することができ るとみなし、したがってサイクル3でL2BOFF#をローに駆動する。 d)その後、二次キャッシュはサイクル4でライトバック・サイクルを成功裏に 開始する(二次キャッシュによってADS#が駆動される)。 e)サイクル2でSMIACT#はローでアサートされるが、二次キャッシュは それに対応してL2SMIACT#をローでアサートしない。これで、モードが 変更された場合でもライトバック操作を適切なメモリに行えることがわかる。具 体的には、システム・コアが動作モードを変えたいときにシステム・コアによっ てFLUSH#がアサートされる。この信号によって次のサイクルでCPUがS MIACT#をローでアサートし、これによって動作モードの変更を二次キャッ シュに通知する。二次キャッシュは、CPUサイクルが終了したことを確認する とただちにライトバック・サイクルを開始する。これはステップ(a)〜(d) に示す通りである。しかし、この段階で二次キャッシュがL2SMIACT#を ローでアサートしないことによって動作モードの変更はシステム・コアには通知 されないため、システム・コアはライトバックされるメモリ・バンクを切り換え ない。その結果、二次キャッシュは、情報が元々入っていた元のメモリ・バンク またはCPUが情報を格納しようとしたメモリ・バンクにライトバックする。こ のSMIACT#をトラップし、L2SMIACT#でバンク切換えを制御する 動作は、デュアル動作モード・システムでライトバック・サイクルを適用する態 様における、本発明の中核である。 また、上述のような動作にすることによって、直前のサイクルでAHOLDが アクティブであるため、CPUがサイクル3でADS#をローに駆動しないこと が保証される。 シナリオ2はCPUと二次キャッシュからの2つのバス要求が競合する事例で あり、第6図に図示するように動作をシナリオ2に修正する必要がある。前述の ように、これはCPUからのバス要求であるADS#と、二次キャッシュまたは システム・コアからのバス要求であるAHOLDが同時にアサートされる場合で ある。 以下のように、最初の2ステップは同じである。 a)サイクル1でシステム・コアがFLUSH#をアサートする。これは、フラ ッシュ動作を開始するというシステム・コアからCPUへの通知である。FLU SH#はサイクル1の終わりで二次キャッシュによっても検出される。 b)二次キャッシュはFLUSH#がローであることを検出すると、サイクル2 でL2AHOLDをハイに駆動し、次のサイクルでCPUにアドレス・バスを解 放させる。L2AHOLDとSAHOLDの論理和がとられ、AHOLDとして CPUに送られ、二次キャッシュがライトバック・サイクルのためにバスを要求 していることをCPUに示す。 しかしこのシナリオでは、ADS#はたまたまAHOLDと同時にアサートさ れ、これはシナリオ1とは異なる。したがって修正されたステップは以下のよう になる。 c)CPUはサイクル2でAHOLDがハイになるのと同時にADS#をローに する。AHOLDはRDY#がローになるまでハイに保たれ、それによってCP Uはバスを使用して現行タスクを終了させることができる。RDY#はCPUに よるバスの占有の終わりを示すことに留意されたい。 d)サイクル4の終わりでRDY#がローになったことを二次キャッシュが検出 すると、BOFF#と同時にAHOLDが下げられる。 e)次に、サイクル4で二次キャッシュがライトバックの開始に成功する。SM IACT#とL2SMIACT#との関係については、シナリオ1とまったく同 じである。 前述のような動作にすることによって、サイクル4でAHOLDがアクティブ であるため、サイクル5でCPUはADS#をローに駆動しないことが保証され る。この実施例についてデュアル・モード・システムに従って言及したが、これ はシングル・モード・システムにも適用されることに留意されたい。 上述の本発明の実施例は好ましい実施態様であるが、当業者ならその変形も可 能であることがわかるであろう。したがって、本発明は特許請求の全範囲内で保 護される資格がある。

Claims (1)

  1. 【特許請求の範囲】 1.CPUと、システム・コアと、前記CPUおよび前記システム・コアにバス を介して接続されたキャッシュ・メモリとを有するコンピュータ・メモリ・シス テムであって、 前記システム・コアが発生させて前記CPUおよび前記キャッシュ・メモリに 送られる、前記キャッシュ・メモリの内容をフラッシュする第1の信号手段と、 前記第1の信号手段に応答して前記キャッシュ・メモリが発生させて前記CP Uに送られ、前記CPUに前記バスの解放を要求するる第2の信号手段と、 前記第2の信号手段に応答して前記CPUが発生し、前記キャッシュ・メモリ にCPUが前記バスを解放したことを通知する第3の信号手段とを備えるコンピ ュータ・メモリ・システム。 2.前記キャッシュ・メモリがフラッシュ操作を終了した後で前記キャッシュ・ メモリが発生させて前記システム・コアに送られる第4の信号手段をさらに備え る、請求項1に記載のコンピュータ・システム。 3.前記第2の信号手段と前記システム・コアが発生させた第5の信号手段との 論理和がとられ、前記CPUに前記バスを解放するように要求することを特徴と する、請求項1に記載のコンピュータ・システム。 4.前記第5の信号手段が前記キャッシュ・メモリにも送られることを特徴とす る、請求項3に記載のコンピュータ・システム。 5.CPUと、システム・コアと、前記CPUおよび前記システム・コアにバス を介して接続されたキャッシュ・メモリと、前記CPU、前記システム・コア、 または前記キャッシュ・メモリのうちのいずれか1つによってイネーブルされて 前記バスを求める要求を示す信号線とを有するコンピュータ・メモリ・システム であって、 前記システム・コアが発生させて前記CPUおよび前記キャッシュ・メモリに 送られる、前記キャッシュ・メモリの内容をフラッシュする第1の信号手段と、 前記第1の信号手段に応答して前記キャッシュ・メモリが発生させて前記CP Uに送られ、前記CPUに前記バスの解放を要求する第2の信号手段とを備え、 前記信号線が前記CPUまたは前記システム・コアのうちのいずれの一方によ ってもイネーブルされない場合に、前記キャッシュ・メモリが前記バスの所有権 を獲得することを特徴とする、コンピュータ・メモリ・システム。 6.CPUと、システム・コアと、前記CPUおよび前記システム・コアにバス を介して接続されたキャッシュ・メモリと、前記CPU、前記システム・コア、 または前記キャッシュ・メモリのうちのいずれか1つによってイネーブルされて 前記バスを求める要求を示す信号線とを有するコンピュータ・メモリ・システム であって、 前記システム・コアが発生させて前記CPUおよび前記キャッシュ・メモリに 送られる、前記キャッシュ・メモリの内容をフラッシュする第1の信号手段と、 前記第1の信号手段に応答して前記キャッシュ・メモリが発生させて前記CP Uに送られ、前記CPUに前記バスの解放を要求する第2の信号手段とを備え、 前記第2の信号手段が発生されるのと同時に前記信号線が前記CPUによって アサートされた場合に前記CPUがその現行タスクを終了した後で、前記キャッ シュ・メモリが前記バスの所有権を獲得することを特徴とする、コンピュータ・ メモリ・システム。 7.CPUと、システム・コアと、前記CPUおよび前記システム・コアにバス を介して接続されたキャッシュ・メモリと、前記CPU、前記システム・コア、 または前記キャッシュ・メモリのうちのいずれか1つによってイネーブルされて 前記バスを求める要求を示す信号線とを有し、物理アドレス全体のうちの少なく とも一部の中にある共通の物理アドレスをそれぞれ有する複数の物理的に区別さ れた主記憶空間を使用する複数のモードで動作するコンピュータ・メモリ・シス テムにおけるキャッシュ・フラッシュの方法であって、 前記システム・コアが前記CPUおよび前記キャッシュ・メモリへの第1の信 号手段を発生させて前記キャッシュ・メモリの内容をフラッシュするステップと 、 前記第1の信号手段に応答して前記キャッシュ・メモリが前記CPUへの第2 の信号を発生させて、前記CPUに前記バスを解放するように要求するステップ と、 前記CPUが前記キャッシュ・メモリへの第3の信号手段を発生させて前記モ ードが切り換えられたことを示すステップと、 前記キャッシュ・メモリが前記システム・コアへの第4の信号手段を発生させ て前記モードが切り換えられたことを示すステップとを含み、 前記第4の信号手段が前記キャッシュ・メモリのフラッシュが完了した後で発 生されることを特徴とする方法。 8.CPUと、システム・コアと、前記CPUおよび前記システム・コアにバス を介して接続されたキャッシュ・メモリと、前記CPU、前記システム・コア、 または前記キャッシュ・メモリのうちのいずれか1つによってイネーブルされて 前記バスを求める要求を示す信号線とを有し、物理アドレス全体のうちの少なく とも一部の中にある共通の物理アドレスをそれぞれ有する複数の物理的に区別さ れた主記憶空間を使用する複数のモードで動作するコンピュータ・メモリ・シス テムにおけるキャッシュ・フラッシュの方法であって、 前記システム・コアが、前記モードを第1のモードから第2のモードに変更す るように要求する第1の信号を発生させるステップと、 前記第1の信号に応答して前記キャッシュ・メモリが前記CPUに対して前記 バスを解放するように要求する第2の信号を発生するステップと、 前記第2の信号に応答して前記CPUが前記モードを切り換える第3の信号を 発生させるステップとを含み、前記第3の信号が前記キャッシュ・メモリによっ て割り込まれて、システム・コアが第3の信号を検出するのを前記キャッシュ・ メモリがキャッシュ・フラッシュを完了するまで遅延されることを特徴とする方 法。 9.前記CPUがその現行タスクを完了した後に前記バスを解放するステップを さらに含む、請求項8に記載のコンピュータ・メモリ・システムにおけるキャッ シュ・フラッシュの方法。 10.前記CPUが前記バスを解放する前に前記CPUが前記第3の信号を発生 させないことを特徴とする、請求項9に記載のコンピュータ・メモリ・システム におけるキャッシュ・フラッシュの方法。 11.CPUと、システム・コアと、前記CPUおよび前記システム・コアにバ スを介して接続されたキャッシュ・メモリとを有し、物理アドレス全体のうちの 少なくとも一部の中にある共通の物理アドレスをそれぞれ有する複数の物理的に 区別された主記憶空間を使用する複数のモードで動作し、前記CPUから発生す る前記モードが切り換えられたことを示す信号が前記キャッシュ・メモリによっ て割り込まれて、前記信号が発生するクロック・サイクルから少なくとも1クロ ック・サイクルの間、前記システム・コアが前記信号を検出するのを遅延される ことを特徴とするコンピュータ・メモリ・システム。 12.前記システム・コアが前記キャッシュ・メモリのフラッシュが終了するま で前記システム・コアによる前記信号の検出が遅延されることを特徴とする、請 求項11に記載のコンピュータ・メモリ・システム。 13.前記キャッシュ・システムが、メモリ・システムがモード切換えの前に維 持していた前のモードでアクセスされる主記憶域に前記キャッシュ・メモリの内 容をライトバックすることを特徴とする、請求項11に記載のコンピュータ・メ モリ・システム。
JP9502884A 1995-06-08 1995-06-08 二次キャッシュ・メモリ用のキャッシュ・フラッシュ機構 Pending JPH10501085A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1995/001162 WO1996042056A1 (en) 1995-06-08 1995-06-08 A cache flush mechanism for a secondary cache memory

Publications (1)

Publication Number Publication Date
JPH10501085A true JPH10501085A (ja) 1998-01-27

Family

ID=14125998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9502884A Pending JPH10501085A (ja) 1995-06-08 1995-06-08 二次キャッシュ・メモリ用のキャッシュ・フラッシュ機構

Country Status (6)

Country Link
US (1) US5913225A (ja)
EP (1) EP0784819A1 (ja)
JP (1) JPH10501085A (ja)
KR (1) KR100246864B1 (ja)
TW (1) TW281740B (ja)
WO (1) WO1996042056A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219757B1 (en) * 1998-02-27 2001-04-17 Sun Microsystems, Inc. Cache flush operation for a stack-based microprocessor
DE69903707T2 (de) * 1999-02-18 2003-07-10 Texas Instruments France, Villeneuve Loubet Optimierte Hardware-Reinigungsfunktion für einen Daten-Cache-Speicher mit virtuellen Indizes und Tags
US6658532B1 (en) * 1999-12-15 2003-12-02 Intel Corporation Cache flushing
US6961807B1 (en) 2002-08-27 2005-11-01 Cypress Semiconductor Corporation Device, system and method for an integrated circuit adaptable for use in computing systems of differing memory requirements
US7107405B2 (en) * 2003-05-30 2006-09-12 Intel Corporation Writing cached data to system management memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0309994A3 (en) * 1987-09-28 1990-08-22 Compaq Computer Corporation Method and apparatus for implementing memory coherency
US5095428A (en) * 1989-01-04 1992-03-10 Compaq Computer Corporation Cache flush request circuit flushes the cache if input/output space write operation and circuit board response are occurring concurrently
US5408636A (en) * 1991-06-24 1995-04-18 Compaq Computer Corp. System for flushing first and second caches upon detection of a write operation to write protected areas
US5581727A (en) * 1993-03-22 1996-12-03 Compaq Computer Corporation Hierarchical cache system flushing scheme based on monitoring and decoding processor bus cycles for flush/clear sequence control
US5475829A (en) * 1993-03-22 1995-12-12 Compaq Computer Corp. Computer system which overrides write protection status during execution in system management mode
US5544344A (en) * 1994-12-06 1996-08-06 Digital Equipment Corporation Apparatus for caching smram in an intel processor based computer system employing system management mode
US5638532A (en) * 1994-12-06 1997-06-10 Digital Equipment Corporation Apparatus and method for accessing SMRAM in a computer based upon a processor employing system management mode

Also Published As

Publication number Publication date
US5913225A (en) 1999-06-15
TW281740B (en) 1996-07-21
KR100246864B1 (ko) 2000-03-15
EP0784819A1 (en) 1997-07-23
WO1996042056A1 (en) 1996-12-27

Similar Documents

Publication Publication Date Title
JP3999821B2 (ja) データ処理システム内でバス仲裁プロトコルを実行する方法および装置
US5550988A (en) Apparatus and method for performing error correction in a multi-processor system
JP3798476B2 (ja) コンピュータシステムおよびそのシステムにおけるキャッシュメモリのパワーダウン制御方法
TW409227B (en) Method and apparatus for selecting thread switch events in a multithreaded processor
CN101097544B (zh) 虚拟化事务存储器的全局溢出方法
US5893141A (en) Low cost writethrough cache coherency apparatus and method for computer systems without a cache supporting bus
JP2849327B2 (ja) システム管理モードの実行中に書込み保護状態を無効にするコンピュータシステムの操作方法及びコンピュータシステム
US5778431A (en) System and apparatus for partially flushing cache memory
US6219745B1 (en) System and method for entering a stream read buffer mode to store non-cacheable or block data
JP2009517742A (ja) マイクロコントローラに基づくフラッシュメモリデジタルコントローラシステムのためのコマンドデコーダ
US6513094B1 (en) ROM/DRAM data bus sharing with write buffer and read prefetch activity
US5822756A (en) Microprocessor cache memory way prediction based on the way of a previous memory read
JP2003524248A (ja) アトミック操作中のキャッシュ・データ追出し防止及び高スヌープ・トラフイック処理能力を維持する方法およびその装置
JPH10501085A (ja) 二次キャッシュ・メモリ用のキャッシュ・フラッシュ機構
JP5737290B2 (ja) データ処理装置および方法、そのプロセッサユニット
JP3814521B2 (ja) データ処理方法および装置
JP2001195242A (ja) データ処理システム
US5699550A (en) Computer system cache performance on write allocation cycles by immediately setting the modified bit true
US5325535A (en) Lock signal extension and interruption apparatus
US5835948A (en) Single bank, multiple way cache memory
US6205507B1 (en) Memory coherency in a processor-to-bus cycle in a multi-processor system
US5809534A (en) Performing a write cycle to memory in a multi-processor system
US5781925A (en) Method of preventing cache corruption during microprocessor pipelined burst operations
JPH05100952A (ja) データ処理装置
JPH06282528A (ja) データ転送方法及びそのシステム