JP2000512406A - システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置 - Google Patents

システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置

Info

Publication number
JP2000512406A
JP2000512406A JP10500799A JP50079998A JP2000512406A JP 2000512406 A JP2000512406 A JP 2000512406A JP 10500799 A JP10500799 A JP 10500799A JP 50079998 A JP50079998 A JP 50079998A JP 2000512406 A JP2000512406 A JP 2000512406A
Authority
JP
Japan
Prior art keywords
address
cycle
bus
smram
range
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.)
Granted
Application number
JP10500799A
Other languages
English (en)
Other versions
JP3987577B2 (ja
JP2000512406A5 (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2000512406A publication Critical patent/JP2000512406A/ja
Publication of JP2000512406A5 publication Critical patent/JP2000512406A5/ja
Application granted granted Critical
Publication of JP3987577B2 publication Critical patent/JP3987577B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means

Landscapes

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

Abstract

(57)【要約】 システム管理モード(SMM)データを他のデータと共にキャッシュに入れて、SMMハンドラ・ルーチンのパフォーマンスを向上させ、待ち時間を少なくする新規な方法および装置。この方法および装置は、実装コストを増大させる可能性のある余分なキャッシュ・バスを必要とせずにキャッシュ内でSMMデータと非SMMデータを区別することを可能にする。SMMデータと非SMMデータがキャッシュ内に共存できるため、2つのモードの間で切り替えを行うときに時間のかかるキャッシュ・フラッシュ・サイクルの必要がない(1150)。SMMデータをキャッシュに入れることができるため、SMMルーチンのパフォーマンスが向上する。この方法および装置は、SMRAMアドレス範囲(1110)を、タグで表すことができるが、実装メイン・メモリに直接対応しないアドレスの範囲として定義する。SMRAMアドレスにアクセスを行うと、それらのアクセスメイン・メモリの未使用部分にリダイレクトされる。SMM中でないときにこれらのSMRAMアドレスへのアクセスを制限するために保護機構(1150)を実装することができる。

Description

【発明の詳細な説明】 システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置発明の背景 1.発明の分野 本発明はコンピュータ・システムに関し、より詳細には、システム管理モード で動作可能なコンピュータ・システムに関する。 2.関連技術の説明 システム管理モード(SMM)を使用すると、システム開発者は、電力管理や セキュリティなどの低水準機能をオペレーティング・システムやアプリケーショ ン・プログラムに透過な方式で設けることができる。SMMでは、オペレーティ ング・システムやアプリケーション・ソフトウェアの動作に割り込んでこの種の 低水準機能を実行できる。オペレーティング・システムやアプリケーション・ソ フトウェアの動作は低水準機能の実行後割込み箇所から再開される。 低水準機能を開始するために、本明細書でシステム管理割込み(SMI)と呼 ぶハードウェア割込みが生成される。プロセッサは、SMIを受け取ると、書込 み中のもの全てが完了するのを待つ。また、プロセッサは、外部キャッシュなど の外部装置上で書込み中のものも待つ。そのすべての継続中の書込みが完了する と、プロセッサはそのレジスタ状態の一部をシステム管理ランダム・アクセス・ メモリ(SMRAM)に保存し、SMMハンドラの実行を開始する。SMMハン ドラはエラーの報告やログ、I/Oエミュレーション、中断または再開動作、電 力管理などの低水準機能を実行するソフトウェア・ルーチンである。 SMRAMは、SMM用に予約されているメモリである。SMMハンドラはS MRAMに記憶される。SMMハンドラの実行の前に、プロセッサはそのレジス タ状態の一部をSMRAMの予約部分に自動的に記憶する。たとえば、プロセッ サは、セグメンテーション・レジスタ、汎用レジスタ、命令・ポインタ、ディス クリプタ・テーブル・レジスタ、およびモデル固有レジスタの状態を、SMRA Mの予約部分に記憶することが多い。浮動小数点レジスタなどの一部のレジスタ 状態は、SMMに入るときに自動的に記憶することができない。これは、多くの SMMハンドラはこの種のレジスタに変更を加えないためである。しかし、これ らのレジスタをSMMハンドラで使用する場合、レジスタの記憶と再記憶を行う コードをSMMハンドラ・ルーチンに組み込むことができる。 SMMハンドラ・ルーチンは、実モードに類似したモードで動作する。SMM と実モードの1つの相違点は、32ビット・プロセッサがSMM中に4ギガバイ トのアドレス空間をアドレス指定することができることである。実モード(およ び保護モード)は、Intelアーキテクチャ・プロセッサを熟知している者お よび当業者には周知である。 割り込まれたプログラムには、SMMハンドラ・ルーチンの終わりにあるRS M(再開)命令が制御を返す。RSM命令の実行中に、プロセッサはその状態を SMRAMから再記憶し、割り込まれたルーチンの実行を再開する。プロセッサ の内部状態が再記憶され、すべてのメモリ・アクセスがSMRAMに対して行わ れるため、この割込みはオペレーティング・システムとアプリケーション・ソフ トウェアの両方にとって透過である。 従来の技術では、SMMがオペレーティング・システムに透過であるように、 SMRAMは標準(非SMM)メモリ空間とは異なるメモリ空間にあった。標準 メモリ空間は一般に、メイン・メモリの全部をアドレスする。SMRAM用の別 個のメモリを設けるのではなく、SMRAMは一般に、グラフィクス・アダプタ ・メモリなどのメイン・メモリ内の未使用部分に記憶される。プロセッサによっ ては、SMRAMの場所が、メイン・メモリの未使用部分に対応するSMRAM アドレス空間内のアドレス範囲にマッピングされる。一部のIntelアーキテ クチャ・プロセッサでは、初期SMRAM場所は00030000Hである(ア ドレスの終わりに付加された「H」は、アドレスが16進数で表されていること を示す)。従来の技術では、グラフィクス・アダプタ・メモリのアドレス範囲は アドレスA0000H〜BFFFFHに対応する。したがって、30000H〜 4FFFFHのSMRAMアドレスはA0000H〜BFFFFHにマッピング される。SMM中にグラフィクス・アダプタ・メモリ・アドレス範囲内のアドレ スへのアクセスが行われる場合、その要求はメモリ・コントローラを介してメイ ン・メモリに宛てて送られる(SMMデータ)。SMM中でないときにグラフィ クス・アダプタ・メモリ・アドレス範囲内のアドレスへのアクセスが行われる場 合、その要求は周辺入出力(I/O)ブリッジを介して、ビデオ装置上のグラフ ィクス・アダプタ・メモリに宛てて送られる(非SMMデータ)。SMRAMに 記憶されているデータは標準アドレス空間に記憶されているデータと同じアドレ スを有することもできるが、そのアドレスに対応するSMMデータと非SMMデ ータは別個のものである。キャッシュ・メモリはデータ要素をそのアドレスだけ で区別するため、特定のアドレスにあるSMMデータとそれと同じアドレスにあ る非SMMデータが別個のデータを持っている場合であっても、それらのSMM データと非SMMデータを区別する機構がない。 SMMデータと非SMMデータが、それらを区別する機構のないキャッシュに 記憶された場合、データ汚損問題が起こる可能性がある。特定のアドレスにある データがキャッシュからライトバックされるとき、メモリ・サブシステムはその データがSMMデータであるか非SMMであるかを区別することができない。た とえば、ライトバック・データがSMMデータであった場合、メモリ・サブシス テムはそれをメイン・メモリに宛てて経路指定する必要がある。ライトバック・ データが非SMMデータであった場合、メモリ・サブシステムはそれをたとえば 周辺I/O装置に宛てて経路指定する必要がある。外部システムがライトバック ・データを誤って経路指定した場合、SMMデータが非SMMデータによって上 書きされたり、その逆の上書きが行われたりし、それによってそのアドレスにあ るデータが汚損される。 キャッシュ内のSMMデータと非SMMデータを別個のものとして維持する1 つの従来技術の方法は、同じアドレスを共用するSMMデータと非SMMデータ をキャッシュに入れることができないようにすることである。グラフィクス・ア ダプタ・メモリ・アドレス範囲は、このようなキャッシュ不能な非SMMメモリ の有力な候補である。表示装置に書き出される画素データはライトバック・キャ ッシュに記憶されるのではなく、グラフィクス・アダプタ・メモリに更新される 必要があるため、グラフィクス・アダプタ・メモリは通常はキャッシュ不能であ る。この方法では、同じアドレス範囲を共用するSMRAMもキャッシュ不能で ある。この方法では、SMMデータはキャッシュに記憶されないため、SMMと 非SMMとを切り換える時にキャッシュ・フラッシュが不要である。この方法の 欠点は、キャッシュ不能バス・サイクルがキャッシュ可能バス・サイクルよりも 低速であることである。フラッシュ動作が不要なため、その待ち時間は改善され るが、キャッシュ不能サイクルのアクセス時間が低速になるために命令とデータ のスループットが低下する。 SMMデータと非SMMデータを区別しておく他の従来技術の方法は、SMM に入るときとSMMから出るときにキャッシュをフラッシュすることである。非 SMM中には、プロセッサは一般にキャッシュ可能バス・サイクルを実行する。 SMIが認識されると、SMMに入る前にキャッシュ・フラッシュを行い、すべ ての非SMMデータのキャッシュを一掃し、SMMデータをキャッシュに入れる ことができるようにする。SMM中には、プロセッサは一般にキャッシュ可能バ ス・サイクルを実行する。RSMを受け取ると、SMMを出る前にキャッシュ・ フラッシュが行われて、非SMMデータをキャッシュに入れることができるよう にすべてのSMMデータがキャッシュから一掃される。SMM中は、キャッシュ にはSMMデータのみが入れられている。非SMM中は、キャッシュには非SM Mデータのみが入れられる。この方法の利点は、SMMバス・サイクルと非SM Mバス・サイクルがキャッシュ可能であり、その結果、アクセス時間が高速化す ることである。しかし、SMMに入るときとSMMから出るときに必要なキャッ シュ・フラッシュに長時間かかり、それによってシステム管理ハンドラの待ち時 間が長くなる。これは、迅速に応答する必要のあるSMMハンドラと、2回の長 時間のキャッシュ・フラッシュの間ディスエーブルされない割込みハンドラにと っては問題である。たとえば、リアルタイム・オペレーティング・システムは、 イベントにリアルタイムで応答するために低待ち時間を必要とする。さらに、た とえば、オーディオ再生、音声認識、ディジタル同時音声およびデータ(DVS D)を含むモデム・エミュレーション、およびビデオ会議などのリアル・タイム ・アプリケーションも低待ち時間を必要とする。待ち時間の増大の結果、ビデオ ・アプリケーションにおける「テア」や「フレーム・ドロップアウト」、音声ア プリケーションにおける音声の短縮及びその他の聴覚的影響が起こる可能性があ る。さらに、待ち時間の増大によってデータ汚損、システム・クラッシュ、重要 なサービスの損失も起こることがある。 データ汚損問題なしにSMMデータと非SMMデータをキャッシュに記憶する ことができるようにすると同時に、SMMと非SMMとの切り替えの際のキャッ シュ・フラッシュ動作を回避する方法が必要である。さらに、SMMハンドラ・ ルーチンの待ち時間を少なくし、パフォーマンスを向上させる方法が必要である 。発明の概要 データ汚損問題を起こさずにキャッシュ内にSMMデータと非SMMデータが 共存できるように、システム管理ランダム・アクセス・メモリ(SMRAM)・ アドレスを対応するメイン・メモリ・アドレスに変換する方法および装置につい て記載する。SMRAMをキャッシュ内のすべてのメイン・メモリ・アドレスか ら区別することができるように、SMRAMアドレス範囲はメイン・メモリ・ア ドレス範囲外にある。SMRAMがメイン・メモリのうちの他の用途には使用さ れない部分に配置されるように、SMRAMアドレスを対応するメイン・メモリ ・アドレスに変換する。図面の簡単な説明 第1図は、本発明のコンピュータ・システムの一実施形態を示す図である。 第2図は、SMRAMアクセスを保護する装置の一実施形態を示す図である。 第3図は、SMRAMサイクル照合論理回路の一実施形態を示す図である。 第4図は、SMRAM TSEGアドレス照合論理回路の一実施形態を示す図 である。 第5図は、SMRAM A−F SEGアドレス照合論理回路の一実施形態を 示す図である。 第6図は、エイリアスSMRAM TSEGアドレス照合論理回路の一実施形 態を示す図である。 第7図は、アドレス変換論理回路の一実施形態を示す図である。 第8図は、ハード・エラー生成論理回路の一実施形態を示す図である。 第9図は、SMRAMをメイン・メモリにマッピングすると同時に、SMM中 でないときにエイリアスSMRAM空間の保護を行う方法の一実施形態を示す図 である。詳細な説明 以下の説明では、本発明をよりよく理解することができるように、特定のメモ リ構成、アドレス範囲、保護方式など、多くの特定の詳細を記載する。しかし、 当業者なら、本発明はこれらの特定の詳細がなくても実施可能であることがわか るであろう。他の場合には、本発明が不明瞭にならないように、周知の装置およ びプロセス・ステップについては詳述していない。システム管理モード 本発明は、システム管理モード(SMM)データおよびコードを、非SMMデ ータと共にキャッシュに記憶することができるようにする。本発明では、キャッ シュに記憶されている場合にSMRAMアドレスをすべてのメイン・メモリ・ア ドレスから区別できるように、メイン・メモリ・アドレス範囲外に1つまたは複 数のシステム管理ランダム・アクセス・メモリ(SMRAM)アドレス範囲を備 えることによってこれが可能になる。SMRAMデータをメイン・メモリに記憶 するとき、またはメイン・メモリから取り出すとき、SMRAMアドレスがメイ ン・メモリの1つまたは複数の未使用部分における対応するエイリアスSMRA Mアドレスに変換される。たとえば、SMRAMデータをキャッシュからライト バックするとき、論理回路によって、メイン・メモリ・アドレスから区別するた めに使用されるSMRAMアドレスをSMRAMとして使用するメイン・メモリ の部分に対応するエイリアスSMRAMアドレスに変換する。この別個のアドレ ス範囲によって、SMRAMからのSMMデータを非SMMデータと共にキャッ シュに記憶することが可能になり、それによってSMMハンドラ・ルーチンのア クセス時間と待ち時間が短縮される。コンピュータ・システム 第1図に、本発明を使用するコンピュータ・システムの一実施形態を示す。こ のコンピュータ・システムは、プロセッサ(CPU)100と、プロセッサ・サ ブシステム105内に結合されたキャッシュ106とを含む。プロセッサ・サブ システム105はシステム・バス130に結合されている。バス・サイクル要求 が、たとえばプロセッサ・サブシステム105およびその他のバスマスタによっ て、周知の方法に従ってシステム・バス130上に送出される。システム・バス 130にはメモリ・コントローラ110と周辺装置I/Oブリッジ120も結合 されている。システム・バス130上のバス・サイクル要求が、指定されたメモ リ・アドレス範囲内のアドレスを有する場合、メモリ・コントローラ110はそ れらのメモリ・アドレス範囲をメイン・メモリ・バス170を介してメイン・メ モリ140にリダイレクトする。本発明では、このような1つのメモリ・アドレ ス範囲はSMRAMアドレス範囲である。システム・バス130上のバス・サイ クル要求が指定された周辺I/Oアドレス範囲内のアドレスを有する場合、周辺 I/Oブリッジ120がそれらのメモリ・アドレス範囲を周辺I/Oバス180 を介してビデオ装置150や基本入出力システム(BIOS)160などの周辺 I/O装置190に送る。1つの周辺I/Oアドレス範囲は、ビデオ装置150 上のグラフィクス・アダプタ・メモリ(GAM)155に対応するビデオ・グラ フィクス・アダプタ・メモリ・アドレス範囲である。一実施形態では、周辺I/ Oバス180とメイン・メモリ・バス170は単一のバスとして実装され、たと ば、周知の方法に従って、そのサイクルを周辺I/O装置190とメイン・メモ リ140のどちらで処理すべきかを制御信号を使用して示す。 メモリ・コントローラ110はシステム・バス130に結合され、システム・ バス130はアドレス・バス101とサイクル状況バス102とSMIACT# バス103とデータ・バス104とを含む。SMIACT#バス103は、プロ セッサ・サブシステム105がSMMモードであるかどうかを示す(「#」接尾 部は、条件が真であるときに信号が低であることを示す)。サイクル状況バス1 02は、システム・バス130がアクティブであるかどうかを示し、アクティブ の場合は、どのタイプのサイクルが実行されているかを示す。アドレス・バス1 01はバス要求のアドレスを示す。バス要求が書込みサイクルである場合、プロ セッサ・サブシステム105は、そのアドレスに関連づけられたデータをデータ ・バス104に書き出す。バス要求が読取りサイクルである場合、プロセッサ・ サブシステム105はそのデータが返されたときにデータ・バス104からデー タを読み取る。メモリ・コントローラ110は、バス要求が(たとえば周辺I/ Oブリッジ120ではなく)メモリ・コントローラ110によって処理されるべ きであると判断した場合、システム・バス130上のバス要求に対応するバス要 求をメイン・メモリ・バス170上に生成する。メイン・メモリ・バス170は 、アドレス・バス111とサイクル状況バス112とデータ・バス114とを含 む。メモリ・コントローラ110は、アドレス・バス101上のアドレスがSM RAMアドレス範囲内にあるかどうかを判断するSMRAMアドレス照合論理回 路と、サイクルがSMRAMにアクセスを許可されたサイクルであるかどうかを 判断するSMRAMサイクル照合論理回路とを含む。メモリ・コントローラ11 0は、SMRAMアドレスを対応するエイリアスSMRAMアドレスに変換(マ ッピング)するアドレス変換論理回路410も含み、そのエイリアスSMRAM アドレスは、サイクルがSMRAM範囲内にあるアドレスを有する許可されたサ イクルである場合にアドレス・バス111上に送り出され、サイクルが許可され たサイクルでない場合、アドレス・バス101上のアドレスがアドレス・バス1 11上に送り出される。サイクル状況バス112は、メイン・メモリ・バス17 0がアクティブであるかどうかを示し、アクティブである場合は、どのタイプの サイクルが行われているかを示す。サイクルのタイプが書込みサイクルである場 合、データ・バス114にはプロセッサ・サブシステム105によってデータ・ バス104上に書き出されたデータに対応するデータが入れられる。サイクルの タイプが読取りサイクルである場合、データ・バス114にはメイン・メモリ1 40から取り出されたデータが後で入れられ、そのデータが後でデータ・バス1 04上に返される。一実施形態では、メモリ・コントローラ110は、SMRA Mアドレス範囲内のアドレスを有する特定の許可されないバス・サイクルが検出 された場合にエラーを示すハード・エラー論理回路も含む。SMRAMアドレス範囲の選択 SMRAMアドレス範囲を選択する際に考慮すべき2つの要素は、メイン・メ モリが使用するアドレス範囲とアドレス・バスで表すことができるアドレス空間 である。本発明では、各SMRAMアドレス範囲を、メイン・メモリ・アドレス 範囲外にあるアドレス・バスで表すことができるアドレス範囲の一部に入るよう に定義する。メイン・メモリ・アドレス範囲は、実装メイン・メモリに(変換せ ずに)直接対応するすべてのアドレスを含む。メイン・メモリ・アドレス範囲は 、アドレス・バスで表すことができるすべてのアドレスのサブセットである。た とえば、32ビット・アドレス・バスは、00000000HからFFFFFF FFHまでのアドレス(アドレスの終わりに付加された「H」はアドレスが16 進数で表されていることを示す)を使用して4ギガバイト(4GB)のメイン・ メモリをアドレスすることができるが、たとえば実装メイン・メモリが64MB しかない場合がある。そのようなコンピュータでは、メイン・メモリ・アドレス 範囲は00000000H〜03FFFFFFHであり、SMRAMアドレス範 囲は04000000〜FFFFFFFFHのアドレス範囲の部分に定義するこ とができる。キャッシュはキャッシュ内のデータ要素を区別するためにアドレス の最上位ビット側を(後述する)タグ要素として使用するため、キャッシュ内で SMMデータと非SMMデータを区別することができる。キャッシュからSMM データがライトバックされると、アドレス変換論理回路はSMRAMアドレスを メイン・メモリの未使用部分内の対応するエイリアスSMRAMアドレスに変換 する。一実施形態では、アプリケーションがメイン・メモリ・アドレス範囲では なくSMRAMアドレス範囲にアクセスする可能性を少なくするために、使用可 能なアドレス空間の上位部分にあるSMRAMアドレス範囲が好ましい。 SMRAMアドレス範囲を選択する際に考慮すべき第3の要素は、キャッシュ 内のタグ要素によって表すことができるアドレス範囲である。タグ要素は、キャ ッシュに記憶されている関連づけられたデータ要素のアドレスの最上位ビット側 から成る。タグ要素は、データ要素のアドレスを識別するために使用される。一 実施形態では、キャッシュ内のタグ要素にはアドレスの最上位ビットから幾つか が記憶されない。このような実施形態では、各SMRAMアドレス範囲は、それ をメイン・メモリ・アドレス範囲と区別するのに、この記憶されないアドレス・ ビットを必要としないように選択しなければならない。たとえば、64MBのメ イン・メモリが実装されている場合、メイン・メモリ・アドレス範囲は0000 0000Hから03FFFFFFHに対応する。このようなシステムでは、メイ ン・メモリに直接アクセスする場合、アドレスの上位6ビットは常にゼロである 。キャッシュのタグ要素の最上位ビット側を、将来のメモリ・アップグレードを 見込んでも使用しないという前提のもとに記憶しないことによって、チップ面積 をある程度節約することができる。たとえば、アドレスの上位3ビットA31、 A30、およびA29をキャッシュに記憶しないとすれば、さらに512MB( 1FFFFFFFH)より下のすべてのアドレスを互いに区別することができる ことになる。しかし、そのようなシステムのキャッシュに1FFFFFFFHよ り上のアドレスを記憶したとすれば、データ汚損問題が起こる可能性がある。た とえば、アドレス3FF00000Hは、そのようなキャッシュ・タグ・アレイ に1FF00000Hとして記憶されることになる。たとえば、3FF0000 0Hに関連づけられたデータをメイン・メモリにライトバックした場合、IFF 00000Hに記憶されることになり、それによって1FF00000Hに前に 記憶したデータが汚損される。データ汚損を起こさずに1FFFFFFFHより 上のアドレスをサポートするためには、キャッシュ・タグ・アドレス範囲外にあ るすべてのアドレスに「非キャッシュ」というデフォルトのキャッシング・タイ プを割り当てる。したがって、各SMRAMアドレス範囲をメイン・メモリ・ア ドレス範囲外になるように定義しても、SMMデータをキャッシュに入れるパフ ォーマンス上の利点を得るために、各SMRAMアドレス範囲はタグ要素内で実 施されているアドレス空間の範囲内に収める必要がある。 SMRAMアドレス範囲を選択する際に考慮すべき第4の要素は、SMM中の A20M#ピンの不確定さである。A20M#ピンは、Intelアーキテクチ ャ・マイクロプロセッサを熟知している業者には周知である。一実施形態では、 A20M#ピンはSMM中には不確定である。一実施形態では、論理回路を不確 定なA20M#信号から独立させるために、アドレスがSMRAMアドレス範囲 内にあるかどうかを判断する際にA20ビットは検査されない。したがって、た とえばアドレス1FFXXXXXHがアドレス範囲1FEXXXXXHとも一致 することになる。 これは、SMRAMアドレス範囲が偶数メガバイトのアドレス境界上にくるよ うにすることによって行う。算術的に示すと、SMRAMアドレス範囲は、任意 のアドレスとFFEFFFFFHとの論理ANDをとることによって形成される 境界にある。実際上の効果は、A20M#が無視されることである。他の実施形 態では、A20M#信号が不確定であっても、ソフトウェアに頼ってSMRAM アドレス範囲を偶数メガバイト範囲(A20はゼロである)に割り当てることに よってA20ビットが照合される。このような実施形態では、対応する奇数メガ バイト(A20は1である)を他の機能に割り当てることができる。エイリアスSMRAMアドレス範囲の選択 エイリアスSMRAMアドレス範囲を選択する際の1つの考慮すべき点は、メ モリの未使用部分の場所である。本発明では、各エイリアスSMRAMアドレス 範囲をメイン・メモリの未使用部分に対応するアドレス範囲になるように定義す る。一実施形態では、1つのエイリアスSMRAMアドレス範囲はグラフィクス ・アダプタ・メモリ・アドレス範囲に対応する。一実施形態では、グラフィクス ・アダプタ・メモリ・アドレス範囲は、アドレス範囲A0000H〜BFFFF Hに対応する。第1図を参照すると、システム・バス130上のグラフィクス・ アダプタ・メモリ・アドレス範囲内のすべてのアドレスが周辺I/Oブリッジ1 20によってビデオ装置150上のグラフィクス・アダプタ・メモリ155にリ ダイレクトされるため、ビデオ装置150はこれらのアドレスに対応するメイン ・メモリ・データ要素を使用しない。本発明では、システム・バス130上のS MRAMアドレスはビデオ装置によって使用されないまま残されたメイン・メモ リの部分内にある対応するエイリアスSMRAMアドレスを使用して、メモリ・ コントローラ110によってメイン・メモリ・バス170にリダイレクトされる 。一実施形態では、1つのエイリアスSMRAMアドレス範囲はグラフィクス・ アダプタ・メモリと業界標準アーキテクチャ(ISA)拡張アドレス範囲に対応 する。ISA拡張領域は、アドレス範囲C0000H〜DFFFFHに対応する 。 ISA拡張領域は、メモリまたは装置に独立して割り振ることができる8個の1 6Kブロックに分けられている。装置にブロックを割り振ると、グラフィクス・ アダプタ・メモリのように、エイリアスSMRAMアドレス範囲で使用すること ができる。ブロックをメモリに割り振ると、エイリアスSMRAMアドレス範囲 で使用することができない。一実施形態では、プログラマがSMMコードを、た とえば周辺I/O装置に割り振られたセグメントを含まないSMRAM範囲の部 分に入れる責任を負う。他の実施形態では、エイリアスSMRAM範囲は、SM RAM用に予約されたメイン・メモリの部分に対応する。一実施形態では、エイ リアスSMRAM範囲はメイン・メモリ・アドレス範囲の最後の(最上位)12 8Kアドレスのブロックに対応する。一実施形態では、エイリアスSMRAM範 囲は、メイン・メモリ・アドレス範囲の最後の256Kアドレスのブロックに対 応する。当業者なら、メイン・メモリ・アドレス範囲の他の部分にあるエイリア スSMRAMアドレス範囲や異なるサイズのSMRAMアドレス範囲も実施可能 であることがわかるであろう。 エイリアスSMRAMアドレス範囲を選択する際の他の考慮すべき点は、プロ セッサの下位アドレス・ピンからメイン・メモリ上のアドレス・ピンまでの経路 によって、最高速の動作タイミング(速度経路とも呼ぶ)が制限されることであ る。SMRAMアドレスおよびそれに対応するエイリアスSMRAMアドレスを 、同じ下位アドレス・ビットを有するように選択することによって、速度経路に 余分な回路を追加するのを回避することができる。当業者なら、デコードする上 位ビット用のデコーダ回路の設計は、新たな速度経路が生じないように行う必要 があることがわかるであろう。SMRAM A−Fアドレス範囲 一実施形態では、SMRAM A−Fアドレス範囲は、グラフィクス・アダプ タ・メモリなど、メイン・メモリ・アドレス範囲の未使用部分にあるエイリアス SMRAM A−Fアドレス範囲に対応する。一実施形態では、キャッシュ・タ グ・アレイに実施された最上位側のアドレス・ビットを使用して、各SMRAM アドレス範囲を、エイリアスSMRAMアドレス範囲を含むメイン・メモリ・ア ドレス範囲から区別する。一実施形態では、SMRAM A−Fアドレス範囲は 、100XXXXXHであり、エイリアスSMRAM A−F範囲は000XX XXXHである。ただし、各Xは任意の独立した4ビットの組合せを表す。他の 実施形態では、上位アドレス・ビットの他の組合せを使用してSMRAMアドレ ス範囲を、エイリアスSMRAMアドレス範囲を含むメイン・メモリ・アドレス 範囲から区別することもできる。一実施形態では、SMRAMアドレス範囲1F EA0000H〜1FEDFFFFHは、エイリアスSMRAMアドレス範囲0 00A0000H〜000DFFFFHにマッピングされる。この実施形態では 、マッピングされたすべてのアドレスはグラフィクス・アダプタ・メモリまたは ISA領域内のエイリアスを有する。他の実施形態では、認識されたSMRAM アドレス範囲の一部だけがエイリアスSMRAMアドレス範囲のターゲット部分 に変換される。たとえば、一実施形態では、SMRAMアドレス範囲1FEXX XXXHはエイリアスSMRAMアドレス範囲000XXXXXHにマッピング される。この場合、たとえばアドレス1FE00000Hは、グラフィクス・ア ダプタ・メモリまたはISA領域内のエイリアスSMRAMアドレス範囲のター ゲット部分内になく、別の目的のために使用されるメイン・メモリの部分に対応 させることができる00000000Hにマッピングされる。この実施形態では 、SMMハンドラは、エイリアスSMRAMアドレス範囲のターゲット部分に対 応するSMRAMアドレス範囲の部分のみを使用しなければならない。一実施形 態では、ISA拡張領域の一部がメイン・メモリに割り振られる。この実施形態 では、ISA拡張領域のそれらの部分はエイリアスSMRAMアドレス範囲のタ ーゲット部分から除外される。SMRAM上位セグメント(TSEG)アドレス範囲 一実施形態では、SMRAM上位セグメント(TSEG)アドレス範囲は、メ イン・メモリ・アドレス範囲の予約部分にあるエイリアスSMRAM TSEG アドレス範囲に対応する。たとえば、64MBの実装メイン・メモリを備えたコ ンピュータでは、メイン・メモリ・アドレス範囲は前述のように0000000 0H〜03FFFFFFHである。一実施形態では、SMRAM TSEGアド レス範囲は13FCXXXXH〜13FFXXXXHであり、エイリアスSMR AM TSEGアドレス範囲は03FCXXXXH〜03FFXXXXH(メイ ン・メモリ・アドレス範囲の最後の256Kアドレスに対応する)である。他の 実施形態では、SMRAM TSEGアドレス範囲は、13FEXXXXH〜1 3FFXXXXHであり、エイリアスSMRAM TSEGアドレス範囲は03 FEXXXXH〜03FFXXXXH(メイン・メモリ・アドレス範囲の最後の 128Kアドレスに対応する)である。エイリアスSMRAM TSEGアドレ ス範囲に含めるアドレスはこれより多くても少なくてもよい。さらに、エイリア スSMRAM TSEGアドレス範囲は、メイン・メモリ・アドレス範囲の他の 部分に対応させることもできる。当業者なら、他のビットを使用してSMRAM アドレス範囲をそれに対応するエイリアスSMRAMアドレス範囲と区別するこ ともできることがわかるであろう。また、当業者なら、他のアドレス範囲も使用 可能であることがわかるであろう。SMRAMアドレス範囲の他の実施形態 1つまたは複数のTSEGアドレス範囲と1つまたは複数のA−Fアドレス範 囲を使用することができることは明らかであろう。他の実施形態では、1つまた は複数のTSEGアドレス範囲か、あるいは1つまたは複数のA−Fアドレス範 囲を使用する。当業者なら、上記のようにして、またはその他の方法で、アドレ スを恣意的なアドレス範囲にマッピングすることができることがわかるであろう 。そのようなアドレスには固定値が与えられることに留意されたい。また、当業 者なら、このような恣意的なアドレス範囲はプログラム制御によって修正可能で あることがわかるであろう。一実施形態では、SMRAM TSEGアドレス照 合論理回路またはSMRAM A−Fアドレス照合論理回路あるいはその両方に 、任意選択の範囲選択バスを結合して、指定されたSMRAMアドレス範囲内の ビットの一部を外部から定義することができるようにする。一実施形態では、S MRAMアドレスはアドレス範囲ISEXXXXXHにあり、SはSMRAMア ドレス範囲を再配置するために外部的に選択可能な4ビットのターゲット・ビッ トを表す。各ターゲット・ビットによって、対応するアドレス・ビットが一致を 構 成するためにどのようなアドレス・ビットでなければならないかが決まる。他の 実施形態では、SMRAMアドレス範囲は、将来容易に再配置することができる ようにパラメータ化される。たとえば、メイン・メモリを2GB(3FFFFF FFH)に拡張する場合、SMRAMアドレス範囲を7FEXXXXXHに再配 置する。このようなシステムで使用されるキャッシュは、より大きなSMRAM アドレスを表すためにより多くのタグ・ビットを有する。当業者なら、他のシス テム構成のために他のメモリ範囲も選択可能であることがわかるであろう。SMRAMアドレス範囲の予約 適切なSMRAMアドレス範囲を選択した後は、それらを他の目的に使用しな いように予約しなければならない。第1図を参照すると、オペレーティング・シ ステムとBIOS160は周辺I/Oブリッジ120に対して、どのアドレスが 周辺I/O装置190にマッピングされるかを示すことが多い。オペレーティン グ・システムは、周辺I/O装置190のためにSMRAMアドレス範囲内のア ドレスを選択してはならない。たとえば、オペレーティング・システムがSMR AMアドレス範囲内のアドレスを周辺I/O装置に割り当てた場合、周辺I/O ブリッジ120とメモリ・コントローラ110の両方が、そのアドレスにあるバ ス・サイクルをそれぞれのバスに送るように構成されることになる。周辺I/O ブリッジ120がメモリ・コントローラ110よりも優先順位が高い場合、その アドレスへのすべてのアクセスは周辺I/O装置に向けられることになり、それ によってSMMハンドラへのアクセスが不可能になる。メモリ・コントローラ1 10の優先順位が周辺I/Oブリッジ120よりも高い場合、そのアドレスへの すべてのアクセスはSMRAMに向けられることになり、それによって周辺I/ O装置へのアクセスが不可能になる。一実施形態では、プラグ・アンド・プレイ BIOSにおけるシステム装置構成リストに32ビットの固定場所メモリ範囲デ ィスクリプタを付加することによって、SMRAMアドレス範囲を予約する。他 の実施形態は、周知のBIOS INT15/E801サービスが実装メモリの 上位を、実装メモリの実際の上位より下に延びるものとして報告し、それによっ てオペレーティング・システムが実装メモリのうちの報告されたメイン・メモリ の上位と実際のメイン・メモリ上位との間の部分を使用しないようにする。この 報告されないメモリがSMRAMに使用される。他の実施形態では、SMRAM アドレス範囲を予約する他の方法も使用可能である。SMRAM保護モード 重要なSMMハンドラ・ルーチンの無許可の変更を防止するために、プロセッ サがSMM中でない場合、SMRAMへのアクセスに制限を加えることが望まし い。SMMハンドラ・ルーチンはSMMで呼び出されると実モード特権レベルで 実行されるため、特権データおよび特権命令への無許可のアクセスを可能にする 可能性がある。このような無許可のアクセスは、熱制御、エラー回復、エミュレ ーションなどの重要なシステム制御を損なう可能性があり、たとえばウィルスに 対する保護を損なう可能性がある。一実施形態では、SMRAMアドレス範囲内 のアドレスへの無許可のアクセスの防止をオペレーティング・システムに任せる 。上位メモリへのアクセスは、オペレーティング・システムや、オペレーティン グ・システムによってアクセスが認められたアプリケーションなどの特権プログ ラムのみが行うことができるため、オペレーティング・システムによる対応がな い限りアプリケーションはSMRAMアドレス範囲へのアクセスを獲得すること ができない。したがって、システム・バス130上のすべてのSMRAMバス要 求は、オペレーティング・システムによって許可されているものとみなされ、し たがってメイン・メモリ・バス170に送られる。 他の実施形態では、メモリ・コントローラ110(第1図を参照)は、システ ム・バス130上の特定のSMRAMバス要求がメイン・メモリ・バス170に 送られるのを防止する保護論理回路を含む。一実施形態では、保護論理回路は非 SMMでSMRAMに対して非ライトバック・サイクルが発行されると、任意選 択のハード・エラー・バス上でハード・エラー信号を発生する。一実施形態では 、このハード・エラー信号は、エラー・ハンドラを開始するためにプロセッサ・ サブシステム105に結合される。一実施形態では、メモリ・コントローラ11 0は非SMMでSMRAMへのライトバック・サイクルを可能にして、キャッシ ュに入れられたSMMデータを更新することができるようにする。他の実施形態 で は、メモリ・コントローラ110は、SMMハンドラ・ルーチンの終了時にキャ ッシュに残されているのは重要でないSMMデータのみであるという前提のもと に、非SMMでのSMRAMへのライトバック・サイクルを無視する。メモリ・ コントローラ110が非SMM中にSMRAMへのライトバック・サイクルを無 視する場合、プロセッサが非SMMに戻る前にキャッシュからSMRAMに重要 なデータがライトバックされるように保証することが重要である。一実施形態は 、SMRAM範囲全体をライトスルーとして割り振る。キャッシュ内のライトス ルー・データが変更されると、メイン・メモリを更新するバス・サイクルが開始 される。データが変更されるたびにバス・サイクルを行わなければならないため 、ライトスルー・サイクルによってパフォーマンスが低下する。他の実施形態で は、重要なデータを含むSMRAMの領域をライトスルーとして割り振り、重要 でないデータを含む領域をライトバックとして割り振る。これによって、可能な 場合にライトバック・キャッシングのパフォーマンス上の利点を利用することが できると同時に、重要なデータがSMRAMに合わせてただちに更新されるよう に強制することができる。当業者なら他の保護方式も実施可能であることがわか るであろう。SMRAM論理回路 第2図に、システム・バス130上の適切なバス・サイクルを検出し、そのサ イクルがメイン・メモリ・バス170で発行されたことを示す信号をメイン・メ モリ発行バス441上で発行する装置の一実施形態を示す。 オープン・バス430と、SMIACT#バス103(「#」接尾部は条件が 真の場合に信号が低であることを示す)と、ライトバック・バス428と、バス マスタ・バス427とが、サイクル照合論理回路402に結合され、サイクル照 合論理回路402はサイクル・タイプ照合バス433上で、システム・バス13 0上で発行されたサイクル・タイプがSMRAMへのアクセスを許可されている かどうかを示す。オープン・バス430は、SMM外でSMRAMへのアクセス が許可されているかどうかを示す。これは、たとえばSMRAM初期設定のため に使用される。ライトバック・バス428は、システム・バス130上で発行さ れたサイクルがライトバック・サイクルであるかどうかを示す。オープン信号は 、たとえば周知の方法に従ってサイクル状況バス102から判断することができ る。バスマスタ・バス427は、システム・バス130上で発行されたサイクル が、周辺構成要素相互接続(PCI)装置などの非CPUバスマスタによって生 成されたものであるかどうかを示す。バスマスタ信号は、たとえば周知の方法に 従ってサイクル状況バス102から判断することができる。アドレス・バス10 1は、アドレス・ビット17(A17)バス420と、アドレス・ビット19お よびアドレス・ビット18(A19〜A18)バス421と、アドレス・ビット 21およびアドレス・ビット20(A21〜A20)バス422と、アドレス・ ビット27からアドレス・ビット22まで(A27〜A22)のバス423と、 アドレス・ビット28(A28)バス424と、アドレス・ビット32からアド レス・ビット29まで(A31〜A29)までのバス425とを含む。 [DRB4−1]バス462は、周知の方法に従って実装メイン・メモリの最 後の(最上位)4メガバイトに対応する上位アドレス・ビットを示す。256K /128K#バス426は、SMRAM TSEGアドレス範囲が256Kアド レスと128Kアドレスのいずれを含むかを示す。アドレス・バス101と、[ DRB4−1]バス462と、256K/128K#バス426は、SMRAM 上位セグメント(TSEG)アドレス照合論理回路401に結合され、論理回路 401はSMRAM TSEGアドレス照合バス432上でアドレスがSMRA M TSEGアドレス範囲内にあるかどうかを示す。SMRAM TSEGアド レス照合バス432とサイクル・タイプ照合バス433はANDゲート450に 結合され、ANDゲート450はTSEG発行サイクル・バス438上でTSE Gサイクルを許可するかどうかを示す。 A28バス424とA31−A29バス425はSMRAM A−Fアドレス 照合論理回路403に結合され、SMRAM A−Fアドレス照合論理回路40 3はSMRAM A−Fアドレス照合バス434上でアドレスがSMRAM A −Fアドレス範囲内にあるかどうかを示す。SMRAM A−Fアドレス照合バ ス434とサイクル・タイプ照合バス433はANDゲート451に結合され、 ANDゲート451はA−Fサイクル発行バス439上でA−Fサイクルを許可 するかどうかを示す。 DRB4バス461は、周知の方法に従って、アンインストール・メモリ・ア ドレス空間の最初の(最下位)4MGに対応する上位アドレス・ビットを示す。 A27−A22バス423と、A28バス424と、A31−A29バス425 と、DRB4バス461とは、メイン・メモリ・アドレス照合論理回路404に 結合され、メイン・メモリ・アドレス照合論理回路404は、周知の方法に従っ てメイン・メモリ・サイクル発行バス435上でメイン・メモリ(非SMRAM )アクセスを許可するかどうかを示す。一実施形態では、メイン・メモリ照合論 理回路は、DRB4バス461によって示されたアドレス以外のすべてのアドレ スについてメイン・メモリ・アクセスを許可する。当業者なら、メイン・メモリ 照合論理回路の他の実施形態も実施可能であることがわかるであろう。 アドレス・ホール#バス440は、アドレスが周辺I/O装置に割り当てられ ているメモリ空間の部分の外部、またはたとえばエイリアスSMRAM TSE Gアドレス範囲の外部にあることを示す。I/O装置アドレス照合論理回路40 5は、周知の方法に従ってI/Oアドレス照合バス436上でアドレスがI/O アドレス範囲内にあることを示す。エイリアスSMRAM TSEGアドレス照 合論理回路406は、エイリアスSMRAM TSEGアドレス照合バス437 上で、アドレスがエイリアスSMRAM TSEGアドレス範囲内にあることを 示す。I/Oアドレス照合バス436とエイリアスSMRAM TSEGアドレ ス照合バス437はNORゲート452の入力端子に結合され、NORゲート4 52はアドレス・ホール#バス440上でアドレスが周辺I/O装置に割り当て られたメモリ空間の部分の外部またはエイリアスSMRAM TSEGアドレス 範囲の外部にあることを示す。 TSEGサイクル発行バス438と、A−Fサイクル発行バス439と、メイ ン・メモリ・サイクル発行バス435とはORゲート453に結合され、ORゲ ート453は、アドレス・ホール#バス440上の信号がアサートされていない 場合、条件付き発行バス442上でサイクルを発行する必要があることを示す。 条件付き発行バス442とアドレス・ホール#バス440はANDゲート454 の入力端子に結合され、ANDゲート454はメイン・メモリ発行バス441上 で、サイクルがメイン・メモリに対して発行されていることを示す。一実施形態 では、周知の方法に従って、この信号を使用してサイクル状況バス112の発行 信号を発生させるサイクル状況信号を生成する。他の実施形態では、発光信号は 、独立して生成され、この信号は、発行されたバス・サイクルをメイン・メモリ と、たとえばI/O装置とのうちのどちらに送るべきかを示す。サイクル照合論理回路 第3図に、サイクル照合論理回路402の一実施形態を示す。SMIACT# バス103はインバータ550に結合され、インバータはSMIACTバス54 2上でSMMがアクティブかどうかを示す。SMIACT#バス103とライト バック・バス428はANDゲート551に結合され、ANDゲート551は非 SMMライトバック・バス543上で、SMM中でないときにサイクルがライト バック・サイクルであるかどうかを示す。オープン・バス430とSMIACT バス542と非SMMライトバック・バス543とはORゲート552の入力端 子に結合され、ORゲート552は条件付きサイクル・タイプ照合バス544上 で、サイクル・タイプがバスマスタ・バス427上の信号を条件としてSMRA Mへのアクセスを許可されているかどうかを示す。条件付きサイクル・タイプ照 合バス544とバスマスタ・バス427はANDゲート553に結合され、AN Dゲート553はサイクル・タイプ照合バス433上でサイクル・タイプがSM RAMへのアクセスを許可されているかどうかを示す。 第3図に示すサイクル照合論理回路402の実施形態では、SMRAMへのサ イクルは、(オープン・ビットが設定されていない限り)SMM中でないときに ライトバックのためにのみ発行される。これによって、SMRAMが非SMMア クセスから保護されると同時に、SMM中にキャッシュに書き込まれたがSMM 中にメイン・メモリに再記憶されていないSMMデータを、SMM中でないとき に再記憶することが可能になる。他の実施形態では、ライトバック・バス428 は、SMM中に許可されている他のサイクルのためにもアサートされる。他の実 施形態では、SMRAMへのすべての非SMMバス・サイクルが無視される。こ のような保護は、適切にプログラムされたSMMコードによってサポートしなけ ればならない。このようなSMMコードは、SMM中に読み取る前に書き込む変 数をキャッシュから強制的に追い出してメイン・メモリに入れなければならない 。SMMコードでこれを行うことが可能な1つの方法は、アクセスする変数のた めに十分なキャッシュ時エイリアスにアクセスし、それによってそれらの変数が キャッシュから追い出されるようにすることである。キャッシュ時エイリアスは 、ターゲット・データと同じセットに対応するアドレスである。そのセットに対 応するすべてのデータ記憶場所がいっぱいになると、キャッシュは周知の方法に 従ってデータをライトバックし、より最近にアクセスされたデータのための空き を作る。他の実施形態では、保護モード信号に応じて非SMMバス・サイクルが 無視されたり許可されたりする。これらの保護モードのそれぞれの実施態様は、 当業者には明らかである。当業者なら、サイクル照合論理回路402の他の実施 形態も実施可能であることがわかるであろう。SMRAM TSEG照合論理回路 第4図に、SMRAM TSEGアドレス照合論理回路401の一実施形態を 示す。A31−A29バス425は1組のインバータ650の入力端子に結合さ れ、インバータ650はA31−A29#バス601上でA31−A29が高で あるかどうかを示す。[DRB4−1]バス462およびA27−A22バス4 23は比較器651の入力端子に結合され、比較器651は最後の4MGバス6 02上で、これらのアドレス・ビットが実装メイン・メモリの最後の4MGのア ドレス・ビットに対応しているかどうかを示す。A17バス420と256K/ 128K#バス426はORゲート652に結合され、ORゲート652はA1 7照合バス603上でA17バスがSMRAM TSEGアドレス範囲内に入る 必要があるアドレス・ビット17の値に対応しているかどうかを示す。SMRA M TSEGアドレス範囲には128Kのアドレスしか含まれないため、256 K/128K#バス426上の信号が低の場合、照合のためにA17バス420 上の信号は高でなければならない。256K/128K#バス426上の信号が 高の場合、SMRAM TSEGアドレス範囲はA17高とA17低の両方に対 応する256Kアドレスを含む。A31−A29#バス601、A28バス、最 後の4MGバス602、A21−A20バス422、A19−A18バス421 、およびA17照合バス603はANDゲート653に結合され、ANDゲート 653はSMRAM TSEGアドレス照合バス432上で、アドレスがSMR AM TSEGアドレス範囲内にあるかどうかを示す。SMRAM A−F照合論理回路 第5図に、SMRAM A−Fアドレス照合論理回路403の一実施形態を示 す。A31−A29バス425が1組のインバータ750の入力端子に結合され 、インバータ750はA31−A29#バス701上で、A31−A29ビット が高であるかどうかを示す。A27−A22バス423は1組のインバータ75 1の入力端子に結合され、A27−A22#バス702上で、A27−A22ビ ットが高であるかどうかを示す。A21−A20バス422は1組のインバータ 752の入力端子に結合され、インバータ752はA21−A20#バス703 上でA21−A20ビットが高であるかどうかを示す。A31−A29#バス7 01、A28バス424、A27−A22#バス702、およびA21−A20 #バス703がANDゲート753の入力端子に結合され、ANDゲート753 はSMRAM A−Fアドレス照合バス434上でアドレスがSMRAMアドレ ス範囲内にあるかどうかを示す。エイリアスSMRAM TSEGアドレス照合論理回路 第6図に、エイリアスSMRAM TSEGアドレス照合論理回路406の一 実施形態を示す。A31−A29バス425は1組のインバータ850の入力端 子に結合され、インバータ850はA31−A29#バス801上でA31−A 29が高であるかどうかを示す。A28バス424はインバータ851の入力端 子に結合され、インバータ851はA28#バス802上でA28が高であるか どうかを示す。[DRB4−1]バス462とA27−A22バス423は比較 器852の入力端子に結合され、比較器852は最後の4MGバス803上でこ れらのアドレス・ビットが実装メイン・メモリの最後の4MGのアドレス・ビッ トに対応しているかどうかを示す。A17バス420と256K/128K#バ ス 426はORゲート853に結合され、ORゲート853はA17照合バス80 4上でA17バスがSMRAM TSEGアドレス範囲内に入る必要のあるアド レス・ビット17値に対応しているかどうかを示す。SMRAM TSEGアド レス範囲は128Kアドレスしか含まないため、256K/128K#バス42 6上の信号が低の場合、一致のためにA17バス420上の信号は高でなければ ならない。256K/128K#バス426上の信号が高の場合、SMRAMT SEGアドレス範囲には、A17高とA17低の両方に対応する256Kアドレ スが含まれる。A31−A29#バス801、A28#バス802、最後の4M Gバス803、A21−A20バス422、A19−A18バス421、および A17照合バス804は、ANDゲート854に結合され、ANDゲート854 はエイリアスSMRAM TSEGアドレス照合バス437上でアドレスがエイ リアスSMRAM TSEGアドレス範囲内にあるかどうかを示す。アドレス変換論理回路 第7図に、アドレス・バス101上のシステム・バス・アドレスをアドレス・ バス111上のメイン・メモリ・バス・アドレスに変換するアドレス変換論理回 路410の一実施形態を示す。システム・バス・アドレスがSMRAMアドレス 範囲内にある場合、アドレスはそれに対応するエイリアスSMRAMアドレスに 変換される。システム・バス・アドレスがシステム・バス・アドレスの範囲外に ある場合、メイン・メモリ・アドレスがシステム・バス・アドレスである。SM RAM TSEGアドレス照合バス432とSMRAM A−Fアドレス照合バ ス434はORゲート1050の入力端子に結合され、ORゲート1050はS MRAMアドレス照合バス1001上でアドレス・バス101上のアドレスがS MRAMアドレス範囲内にあるかどうかを示す。SMRAMアドレス照合バス1 001とサイクル・タイプ照合バス433はNANDゲート1057の入力端子 に結合され、NANDゲート1057はSMRAMサイクル#バス1002上で サイクルが許可されているSMRAMサイクルであるかどうかを示す。A28バ ス424とSMRAMサイクル#バス1002はANDゲート1052の入力端 子に結合され、ANDゲート1052はA28出力バス116上でメイン・メモ リ・バス上のA28ビットの値を示す。A31−A29バス425、A27−A 22バス423、A21−A20バス422、A19−A18バス421、およ びA17バス420を含む他のアドレス・ビットは、アドレス・バス101とア ドレス・バス111の両方に共通である。ハード・エラー論理回路 第8図に、任意選択のハード・エラー論理回路409の一実施形態を示す。オ ープン・バス430がインバータ951の出力端子に結合され、インバータ95 1はオープン#バス901上でSMRAM空間が無条件に使用可能であるかどう かを示す。ライトバック・バス428がインバータ952に結合され、インバー タ952はライトバック#バス上でサイクルがライトバックであるかどうかを示 す。SMRAM TSEGアドレス照合バス432とSMRAM A−Fアドレ ス照合バス434がORゲート953の入力端子に結合され、ORゲート953 はSMRAMアドレス・バス903上でアドレスがSMRAMアドレス範囲内に あるかどうかを示す。オープン#バス901、SMIACT#バス103、ライ トバック#バス902、およびSMRAMアドレス・バス903がANDゲート 954の入力端子に結合され、ANDゲート954はハード・エラー・バス11 5上で、ハード・エラーが発生したかどうかを示す。一実施形態では、ハード・ エラー信号は、ライトバック・サイクル以外のSMRAMアドレス範囲へのバス ・サイクルが非SMMで開始されたことを示す。一実施形態では、非ライトバッ ク・サイクルには、読取りサイクル、所有権読取りサイクル、キャッシュ・フィ ル・サイクル、非ライトバック書込みサイクルなどの周知のサイクル・タイプが 含まれる。当業者なら、他のサイクル・タイプを含むものや上記のサイクル・タ イプの一部を含まないものなどのバス・サイクルのいくつかのセットについてエ ラー信号を発生させることができることがわかるであろう。一実施形態では、ハ ード・エラー信号を使用してレジスタにビットを設定する。他の実施形態では、 ハード・エラー信号を使用して、エラー処理ルーチンを開始するために使用可能 な割込み信号を発生させる。アドレス変換およびSMRAM保護方法 第9図に、SMRAMアドレスをエイリアスSMRAMアドレスに変換し、S MM中でないときにSMRAMを特定のアクセスから保護する本発明の方法のい くつかの実施形態を示す。以下のステップでは第1図も参照する。ステップ11 00で、アドレス照合論理回路(たとえば、SMRAM TSEGアドレス照合 論理回路401またはSMRAM A−Fアドレス照合論理回路403)がシス テム・バス130から第1のアドレスを受け取る。ステップ1105で、サイク ル照合論理回路402が、システム・バス130からサイクル状況信号を受け取 る。ステップ1110で、アドレス照合論理回路は、第1のアドレスがSMRA M範囲内にあるかどうかを判断する。第1のアドレスがSMRAM範囲内にない 場合、ステップ1115でサイクルはメイン・メモリ・バス170で発行され、 この方法は終了する。第1のアドレスがSMRAM範囲内にある場合、ステップ 1120でアドレス変換論理回路410が第1のアドレスをエイリアスSMRA M範囲内の対応する第2のアドレスに変換(マッピング)する。ステップ112 5でサイクル照合論理回路402がSMM状況信号を受け取る。ステップ113 0で、サイクル照合論理回路402はSMMがアクティブか否かを判断する。S MMがアクティブの場合、ステップ1115でサイクルがメイン・メモリ・バス 170で発行され、この方法は終了する。SMMがアクティブでない場合、ステ ップ1140でサイクル照合論理回路402はサイクルがライトバック・サイク ルかどうかを判断する。サイクルがライトバック・サイクルでない場合、ステッ プ1145で任意選択のハード・エラー論理回路409がハード・エラーを発行 し、この方法は終了する。サイクルがライトバック・サイクルの場合、実施形態 によって異なる応答がある。一実施形態では、ステップ1155でサイクル照合 論理回路402がメイン・メモリ・バス170上でサイクルを発行する。他の実 施形態では、サイクル照合論理回路402はそのサイクルを無視する。さらに他 の実施形態では、ステップ1150でサイクル照合論理回路402がどの保護モ ードがイネーブルになっているかを判断する。そのモードでライトバックが可能 な場合、ステップ1155でサイクル照合論理回路402はそのサイクルをメイ ン・メモリ・バス170で発行する。その保護モードでライトバックが許可され ていない場合、サイクル照合論理回路402はそのサイクルを無視する。その他の実施形態 本発明の他の実施形態も実施可能である。たとえば、コンピュータ・システム は複数プロセッサ・サブシステム、またはシステム・バスにデータを送り出すそ の他の装置を含むことができる。さらに、Pentium(R)プロセッサなどの Intelアーキテクチャ・マイクロプロセッサを参照しながら説明したが、P owerPCTMやAlphaTMなど他のマイクロプロセッサ・アーキテクチャも 本発明によって使用することができる。(Pentium(R)はIntel C orporationの登録商標である。PowerPCTMはIBM、APPL E COMPUTER、およびMOTOROLAの商標である。AlphaTMは Digital Equipment Corporationの商標である。 )
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(GH,KE,LS,MW,S D,SZ,UG),EA(AM,AZ,BY,KG,KZ ,MD,RU,TJ,TM),AL,AM,AT,AT ,AU,AZ,BA,BB,BG,BR,BY,CA, CH,CN,CU,CZ,CZ,DE,DE,DK,D K,EE,EE,ES,FI,FI,GB,GE,GH ,HU,IL,IS,JP,KE,KG,KP,KR, KZ,LC,LK,LR,LS,LT,LU,LV,M D,MG,MK,MN,MW,MX,NO,NZ,PL ,PT,RO,RU,SD,SE,SG,SI,SK, SK,TJ,TM,TR,TT,UA,UG,UZ,V N,YU (72)発明者 ホリガン,ジョン・ダブリュ アメリカ合衆国・94041・カリフォルニア 州・マウンテンビュー・ヴィラ ストリー ト・1209 (72)発明者 ソンガー,ニール アメリカ合衆国・95051・カリフォルニア 州・サンタ クララ・キャピトラ ウェ イ・996 (72)発明者 グルー,アンドリュー・エフ アメリカ合衆国・53715・ウィスコンシン 州・マディソン・ウエスト ショア ドラ イブ・4112 【要約の続き】 できる。

Claims (1)

  1. 【特許請求の範囲】 1.第1のデータ要素と対応する第1のタグ・アドレスおよび第2のデータ要素 と対応する第2のタグ・アドレスを含み、前記第1のタグ・アドレスがSMRA Mアドレス範囲内の第1のアドレスに対応し、前記第2のタグ・アドレスが前記 SMRAMアドレス範囲外の第2のアドレスに対応し、前記SMRAMアドレス 範囲がメイン・メモリ・アドレス範囲外にあるキャッシュ・メモリ。 2.前記SMRAMアドレス範囲がZ00000HからZFFFFFHまでであ り、Zが少なくとも1ビットからなる順列を表す請求項1に記載のキャッシュ・ メモリ。 3.前記SMRAMアドレス範囲がZA0000HからZDFFFFHまでであ り、Zが少なくとも1ビットからなる順列を表す請求項1に記載のキャッシュ・ メモリ。 4.前記SMRAMアドレス範囲内のすべてのアドレスが、ゼロであるA20ビ ットを有する請求項1に記載のキャッシュ・メモリ。 5.前記第2のアドレスが前記メイン・メモリ・アドレス範囲内にある請求項1 に記載のキャッシュ・メモリ。 6.第1のアドレスを有するバス・サイクルを処理する回路であって、 前記第1のアドレスが、メイン・メモリ・アドレス範囲外にあるシステム管理 ランダム・アクセス・メモリ(SMRAM)のアドレス範囲内にあるか否かを判 断するアドレス照合論理回路と、 前記第1のアドレスが前記SMRAMアドレス範囲内にある場合に、前記第1 のアドレスを前記メイン・メモリ・アドレス範囲内の対応する第2のアドレスに 変換するアドレス変換論理回路と を含む回路。 7.前記SMRAMアドレス範囲がZ00000HからZFFFFFHまでであ り、Zが少なくとも1ビットからなる順列を表す請求項6に記載の回路。 8.前記SMRAMアドレス範囲がZA0000HからZDFFFFHまでであ り、Zが少なくとも1ビットからなる順列を表す請求項6に記載の回路。 9.範囲選択バスをさらに含み、前記SMRAMアドレス範囲が前記範囲選択バ ス上の値によって少なくとも部分的に決まる請求項6に記載の回路。 10.前記SMRAMアドレス範囲がZ00000HからZFFFFFHまでで あり、Zが少なくとも1ビットからなる順列を表し、前記少なくとも1ビットの 少なくとも一部が前記値によって決まる請求項9に記載の回路。 11.前記SMRAMアドレス範囲がZA0000HからZDFFFFHまでの 範囲であり、Zが少なくとも1ビットからなる順列を表し、前記少なくとも1ビ ットの少なくとも一部が前記値によって決まる請求項9に記載の回路。 12.前記SMRAMアドレス範囲内のすべてのアドレスが、ゼロであるA20 ビットを有する請求項6に記載の回路。 13.前記対応する第2のアドレスがグラフィクス・アダプタ・メモリ・アドレ ス範囲内にある請求項6に記載の回路。 14.前記対応する第2のアドレスが業界標準アーキテクチャ(ISA)領域ア ドレス範囲内にある請求項6に記載の回路。 15.前記対応する第2のアドレスが前記メイン・メモリ・アドレス範囲の予約 部分内にある請求項6に記載の回路。 16.前記予約部分が前記メイン・メモリ・アドレス範囲の最上位(最後)部分 を含む請求項15に記載の回路。 17.前記バス・サイクルを選択的に処理する保護論理回路をさらに含み、前記 保護論理回路は、 SMM中でないときに前記バス・サイクルが第1のセットのバス・サイクル・ タイプのうちの1つであるか否かを判断するサイクル照合論理回路と、 前記サイクル照合論理回路に結合され、SMM中でないときに、前記第1のア ドレスが前記SMRAMアドレス範囲内にあり、前記バス・サイクルが前記第1 のセットのバス・サイクル・タイプの1つである場合、前記バス・サイクルを実 行すべきであることを示し、SMM中でないときに、前記第1のアドレスが前記 SMRAMアドレス範囲内にあり、バス・サイクルが前記第1のセットのバス・ サイクル・タイプの1つでない場合、SMRAMバス・サイクルを実行すべきで ないことを示す第1の出力とを含む請求項6に記載の回路。 18.前記第1のセットのバス・サイクル・タイプがライトバック・サイクルを 含む請求項17に記載の回路。 19.前記バス・サイクルを処理するエラー論理回路をさらに含み、前記エラー 論理回路は、 SMM中でないときに前記バス・サイクルが第2のセットのバス・サイクル・ タイプのうちの1つであるか否かを判断するハード・エラー論理回路と、 前記ハード・エラー論理回路に結合され、SMM中でないときに、前記第1の アドレスが前記SMRAMアドレス範囲内にあり、前記バス・サイクルが前記第 2のセットのバス・サイクル・タイプのうちの1つである場合、前記バス・サイ クルが要求されたことを示す第2の出力とを含む請求項17に記載の回路。 20.前記第2のセットのバス・サイクル・タイプが読取りサイクルを含む請求 項19に記載の回路。 21.前記第2のセットのバス・サイクル・タイプが所有権読取りサイクルを含 む請求項19に記載の回路。 22.前記第2のセットのバス・サイクル・タイプがキャッシュ・フィル・サイ クルを含む請求項19に記載の回路。 23.前記第2のセットのバス・サイクル・タイプが書込みサイクルを含み、前 記書込みサイクルがライトバック・サイクルでない請求項19に記載の回路。 24.バス・サイクルを発行するSMRAMを備えたコンピュータ・システムで あって、 プロセッサがSMM中であるか否かを示すSMM状況バスを含むプロセッサと 、 前記プロセッサに結合されたキャッシュ・メモリと、 前記キャッシュ・メモリに結合され、サイクル・タイプを示すサイクル・タイ プ・バスと、 前記キャッシュ・メモリに結合され、前記バス・サイクルの第1のアドレスを 示す第1のアドレス・バスと、 前記第1のアドレス・バスに結合され、前記第1のアドレスがSMRAMアド レス範囲内にあり、前記サイクル・タイプが第3のセットのサイクル・タイプの 1つであり、前記SMRAMアドレス範囲がメイン・メモリ・アドレス範囲外に ある場合、前記第1のアドレスを対応する第2のアドレスに変換するアドレス変 換論理回路と、 前記アドレス変換論理回路に結合され、前記バス・サイクルの前記第2のアド レスを示す第2のアドレス・バスと、 前記第2のアドレス・バスに結合されたメイン・メモリとを含み、前記第2の アドレスが前記メイン・メモリ・アドレス範囲内にある コンピュータ・システム。 25.前記キャッシュ・メモリがSMM中に記憶されたデータ要素と非SMM中 に記憶されたデータ要素とを含む請求項24に記載のコンピュータ・システム。 26.前記キャッシュ・メモリがSMM中に記憶された前記データ要素に対応す るタグ・アドレスを含み、前記タグ・アドレスが前記メイン・メモリ・アドレス 範囲外にあるアドレスに対応する請求項25に記載のコンピュータ・システム。 27.前記SMRAMアドレス範囲がZ00000HからZFFFFFHまでで あり、Zが少なくとも1ビットからなる順列を表す請求項24に記載のコンピュ ータ・システム。 28.前記SMRAMアドレス範囲がZA0000HからZDFFFFHまでで あり、Zが少なくとも1ビットからなる順列を表す請求項24に記載のコンピュ ータ・システム。 29.前記アドレス変換論理回路が範囲選択バスをさらに含み、前記SMRAM アドレス範囲が範囲選択バス上の値によって少なくとも部分的に決まる請求項2 4に記載のコンピュータ・システム。 30.前記SMRAMアドレス範囲がZ00000HからZFFFFFHまでで あり、Zが少なくとも1ビットからなる順列を表し、前記少なくとも1ビットの 少なくとも一部が前記値によって決まる請求項29に記載のコンピュータ・シス テム。 31.前記SMRAMアドレス範囲がZA0000HからZDFFFFHまでで あり、Zが少なくとも1ビットからなる順列を表し、前記少なくとも1ビットの 部分が前記値によって決まる請求項29に記載のコンピュータ・システム。 32.BIOSをさらに含み、前記BIOSが前記値を供給する請求項29に記 載のコンピュータ・システム。 33.前記値を使用して前記SMRAMアドレス範囲の最上位ビットが判断され る請求項29に記載のコンピュータ・システム。 34.プラグ・アンド・プレイBIOSをさらに含み、前記SMRAMアドレス 範囲が32ビット固定記憶場所メモリ範囲ディスクリプタによって予約される請 求項24に記載のコンピュータ・システム。 35.前記SMRAMアドレス範囲内のすべてのアドレスがゼロに等しいA20 ビットを有する請求項24に記載のコンピュータ・システム。 36.前記対応する第2のアドレスがグラフィクス・アダプタ・メモリ・アドレ ス範囲内にある請求項24に記載のコンピュータ・システム。 37.前記対応する第2のアドレスが業界標準アーキテクチャ(ISA)領域ア ドレス範囲内にある請求項24に記載のコンピュータ・システム。 38.前記対応する第2のアドレスが前記メイン・メモリ・アドレス範囲の予約 部分内にあり、前記予約部分が前記メイン・メモリ・アドレス範囲の最上位(最 後)部分を含む請求項24に記載のコンピュータ・システム。 39.前記予約部分が前記メイン・メモリ・アドレス範囲の最上位(最後)部分 を含む請求項38に記載のコンピュータ・システム。 40.SMMが非アクティブであるときに前記SMRAMバス・サイクル・タイ プの第1のグループを処理する保護論理回路をさらに含み、前記保護論理回路が 、 SMM中でないときに前記バス・サイクルが第1のセットのバス・サイクル・ タイプの1つであるか否かを判断するサイクル照合論理回路と、 前記サイクル照合論理回路に結合され、SMM中でないときに前記第1のアド レスが前記SMRAMアドレス範囲内にあり、前記バス・サイクルが前記第1の セットのバス・サイクル・タイプの1つである場合、前記バス・サイクルを実行 すべきであることを示し、SMM中でないときに前記第1のアドレスが前記SM RAMアドレス範囲内にあり、バス・サイクルが前記SMRAMバス・サイクル ・タイプの前記第1のグループの1つでない場合、SMRAMバス・サイクルを 実行すべきでないことを示すサイクル・イネーブル出力とを含む請求項24に記 載のコンピュータ・システム。 41.前記第1のセットのバス・サイクル・タイプがライトバック・サイクルを 含む請求項40に記載のコンピュータ・システム。 42.SMMが非アクティブであるときに第2のセットのバス・サイクル・タイ プを処理するエラー論理回路をさらに含み、前記エラー論理回路が、 前記SMM状況バスと前記サイクル・タイプ・バスとに結合され、前記バス・ サイクルが前記第2のセットのバス・サイクル・タイプの1つであるか否かを判 断するハード・エラー論理回路と、 前記ハードエラー・論理回路に結合され、前記第1のアドレスが前記SMRA Mアドレス範囲内にあり、前記バス・サイクル・タイプが前記第2のセットのバ ス・サイクル・タイプの1つである場合、前記バス・サイクルが要求されたこと を示すハード・エラー出力とを含む請求項40に記載のコンピュータ・システム 。 43.前記第2のセットのバス・サイクル・タイプが読取りサイクルを含む請求 項42に記載のコンピュータ・システム。 44.前記第2のセットのバス・サイクル・タイプが所有権読取りサイクルを含 む請求項42に記載のコンピュータ・システム。 45.前記第2のセットのバス・サイクル・タイプがキャッシュ・フィル・サイ クルを含む請求項42に記載のコンピュータ・システム。 46.前記第2のセットのバス・サイクル・タイプが書込みサイクルを含み、前 記書込みサイクルがライトバック・サイクルではない請求項42に記載のコンピ ュータ・システム。 47.バス・サイクルを実行するためのシステム管理メモリを保護するようにバ ス・サイクルを処理する方法であって、 前記バス・サイクルの第1のアドレスを受け取るステップと、 前記第1のアドレスがSMRAMアドレス範囲内にあるか否かを判断するステ ップと、 前記SMRAMアドレス範囲がメイン・メモリ・アドレス範囲外にあり、前記 第1のアドレスに対応する、メイン・メモリ・アドレス範囲内にある第2のアド レスを生成するステップとを含む方法。 48.少なくとも1つの範囲選択ビットを受け取るステップと、 前記少なくとも1つの範囲選択ビットを使用して前記SMRAMアドレス範囲 の少なくとも一部を判断するステップとをさらに含む請求項47に記載の方法。 49.SMM状況を受け取るステップと、 バス・サイクル・タイプを受け取るステップと、 SMM中でないときに前記バス・サイクル・タイプが第1のセットのバス・サ イクル・タイプの1つであるか否かを判断するステップと、 SMM中でないときに前記第1のアドレスが前記SMRAMアドレス範囲内に あり、前記バス・サイクル・タイプが前記第1のセットのバス・サイクル・タイ プである場合に、前記バス・サイクルを実行すべきであることを示すステップと を含む請求項47に記載の方法。 50.前記SMRAMバス・サイクル・タイプの前記第1のグループがライトバ ック・サイクルを含む請求項49に記載の方法。 51.SMM状況を受け取るステップと、 バス・サイクル・タイプを受け取るステップと、 SMM中でないときに前記バス・サイクル・タイプが第2のセットの前記バス ・サイクル・タイプの1つであるか否かを判断するステップと、 SMM中でないときに、前記第1のアドレスが前記SMRAMアドレス範囲内 にあり、前記バス・サイクルが前記第2のセットのバス・サイクル・タイプの1 つである場合、エラーを示すステップとを含む請求項49に記載の方法。 52.前記第2のセットのバス・サイクル・タイプが読取りサイクルを含む請求 項51に記載の方法。 53.前記第2のセットのバス・サイクル・タイプが所有権読取りサイクルを含 む請求項51に記載の方法。 54.前記第2のセットのバス・サイクル・タイプがキャッシュ・フィル・サイ クルを含む請求項51に記載の方法。 55.前記第2のセットのバス・サイクル・タイプが書込みサイクルを含む請求 項51に記載の方法。 56.第1のアドレスを有するバス・サイクルを処理するサイクル処理手段であ って、 前記第1のアドレスが、メイン・メモリ・アドレス範囲外にあるシステム管理 ランダム・アクセス・メモリ(SMRAM)のアドレス範囲内にあるか否かを判 断するアドレス照合手段と、 前記第1のアドレスが前記SMRAMアドレス範囲内にある場合、前記第1の アドレスを前記メイン・メモリ・アドレス範囲内の対応する第2のアドレスに変 換する変換手段と を含むサイクル処理手段。 57.前記SMRAMアドレス範囲がZ00000HからZFFFFFHまでで あり、Zが少なくとも1ビットからなる順列を表す請求項56に記載のサイクル 処理手段。 58.前記SMRAMアドレス範囲がZA0000HからZDFFFFHまでで あり、Zが少なくとも1ビットからなる順列である請求項56に記載のサイクル 処理手段。 59.範囲入力手段をさらに含み、前記SMRAMアドレス範囲が前記範囲選択 手段によって少なくとも部分的に決まる請求項56に記載のサイクル処理手段。 60.前記SMRAMアドレス範囲がZ00000HからZFFFFFHまでで あり、Zが1つまたは複数ビットの順列を表し、前記少なくとも1ビットの少な くとも一部が前記範囲選択手段によって決まる請求項59に記載のサイクル処理 手段。 61.前記SMRAMアドレス範囲がZA0000HからZDFFFFHまでで あり、Zが少なくとも1ビットからなる順列であり、前記少なくとも1ビットの 部分が前記範囲選択手段によって決まる請求項59に記載のサイクル処理手段。 62.前記SMRAMアドレス範囲内のすべてのアドレスがゼロであるA20ビ ットを有する請求項56に記載のサイクル処理手段。 63.前記メイン・メモリ・アドレス範囲が00000000Hから最大0FF FFFFFHまでである請求項56に記載のサイクル処理手段。 64.前記バス・サイクルを選択的に処理する保護論理回路をさらに含み、前記 保護論理回路は、 前記バス・サイクル・タイプが第1のセットのバス・サイクル・タイプの1つ であるか否かを判断するサイクル照合手段と、 前記サイクル照合手段に結合され、SMM中でないときに、前記第1のアドレ スが前記SMRAMアドレス範囲内にあり、前記バス・サイクル・タイプが前記 第1のセットのバス・サイクル・タイプの1つである場合、前記バス・サイクル を実行すべきであることを示し、SMM中でないときに、前記第1のアドレスが 前記SMRAMアドレス範囲内にあり、バス・サイクルが前記第1のセットのバ ス・サイクル・タイプの1つでない場合、SMRAMバス・サイクルを実行すべ きでないことを示す、サイクル・イネーブル出力手段とを含む請求項56に記載 のサイクル処理手段。 65.前記第1のセットのバス・サイクル・タイプがSMRAMへのライトバッ ク・サイクルを含む請求項64に記載のサイクル処理手段。 66.前記バス・サイクルを処理するエラー論理回路をさらに含み、前記エラー 論理回路が、 前記バス・サイクルが第2のセットのバス・サイクル・タイプの1つであるか 否かを判断するエラー検出手段と、 前記エラー検出手段に結合され、前記第1のアドレスが前記SMRAMアドレ ス範囲内にあり、前記バス・サイクルが前記第2のセットのバス・サイクル・タ イプの1つである場合、前記バス・サイクルが要求されたことを示すエラー出力 手段とを含む請求項64に記載のサイクル処理手段。 67.前記第2のセットのバス・サイクル・タイプが読取りサイクルを含む請求 項66に記載のサイクル処理手段。 68.前記第2のセットのバス・サイクル・タイプが所有権読取りサイクルを含 む請求項66に記載のサイクル処理手段。 69.前記第2のセットのバス・サイクル・タイプがキャッシュ・フィル・サイ クルを含む請求項66に記載のサイクル処理手段。 70.前記第2のセットのバス・サイクル・タイプが書込みサイクルを含み、前 記書込みサイクルがライトバック・サイクルではない請求項66に記載のサイク ル処理手段。
JP50079998A 1996-06-04 1997-05-27 システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置 Expired - Fee Related JP3987577B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/656,922 1996-06-04
US08/656,922 US5909696A (en) 1996-06-04 1996-06-04 Method and apparatus for caching system management mode information with other information
PCT/US1997/009571 WO1997046937A1 (en) 1996-06-04 1997-05-27 Method and apparatus for caching system management mode information with other information

Publications (3)

Publication Number Publication Date
JP2000512406A true JP2000512406A (ja) 2000-09-19
JP2000512406A5 JP2000512406A5 (ja) 2004-12-09
JP3987577B2 JP3987577B2 (ja) 2007-10-10

Family

ID=24635129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50079998A Expired - Fee Related JP3987577B2 (ja) 1996-06-04 1997-05-27 システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置

Country Status (7)

Country Link
US (1) US5909696A (ja)
EP (1) EP0902922B1 (ja)
JP (1) JP3987577B2 (ja)
AU (1) AU3297597A (ja)
DE (1) DE69732181T2 (ja)
TW (1) TW351788B (ja)
WO (1) WO1997046937A1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6560680B2 (en) 1998-01-21 2003-05-06 Micron Technology, Inc. System controller with Integrated low latency memory using non-cacheable memory physically distinct from main memory
US6397299B1 (en) * 1998-01-21 2002-05-28 Micron Technology, Inc. Reduced latency memory configuration method using non-cacheable memory physically distinct from main memory
US6192455B1 (en) * 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6535798B1 (en) * 1998-12-03 2003-03-18 Intel Corporation Thermal management in a system
US6779027B1 (en) * 1999-04-30 2004-08-17 Hewlett-Packard Development Company, L.P. Intelligent management module application programming interface with utility objects
US6748502B2 (en) * 2001-01-12 2004-06-08 Hitachi, Ltd. Virtual volume storage
US20040078681A1 (en) * 2002-01-24 2004-04-22 Nick Ramirez Architecture for high availability using system management mode driven monitoring and communications
KR100488516B1 (ko) * 2002-02-05 2005-05-11 삼성전자주식회사 디스플레이장치 및 디스플레이장치의 에러검출방법
US6918020B2 (en) * 2002-08-30 2005-07-12 Intel Corporation Cache management
US7107405B2 (en) * 2003-05-30 2006-09-12 Intel Corporation Writing cached data to system management memory
US20050188064A1 (en) * 2004-02-24 2005-08-25 Ioannis Schoinas Using a configuration mode for partition management in server platforms
US7475190B2 (en) * 2004-10-08 2009-01-06 International Business Machines Corporation Direct access of cache lock set data without backing memory
US7644258B2 (en) 2005-08-29 2010-01-05 Searete, Llc Hybrid branch predictor using component predictors each having confidence and override signals
US8275976B2 (en) * 2005-08-29 2012-09-25 The Invention Science Fund I, Llc Hierarchical instruction scheduler facilitating instruction replay
US20070083735A1 (en) * 2005-08-29 2007-04-12 Glew Andrew F Hierarchical processor
US8296550B2 (en) * 2005-08-29 2012-10-23 The Invention Science Fund I, Llc Hierarchical register file with operand capture ports
US9176741B2 (en) * 2005-08-29 2015-11-03 Invention Science Fund I, Llc Method and apparatus for segmented sequential storage
US8683158B2 (en) * 2005-12-30 2014-03-25 Intel Corporation Steering system management code region accesses
US7896823B2 (en) * 2006-01-17 2011-03-01 Theranova, Llc Method and apparatus for treating wound using negative pressure therapy
US8661265B1 (en) 2006-06-29 2014-02-25 David Dunn Processor modifications to increase computer system security
US7925815B1 (en) 2006-06-29 2011-04-12 David Dunn Modifications to increase computer system security
US7610426B1 (en) * 2006-12-22 2009-10-27 Dunn David A System management mode code modifications to increase computer system security
US7840792B2 (en) * 2007-04-25 2010-11-23 American Megatrends, Inc. Utilizing hand-off blocks in system management mode to allow independent initialization of SMBASE between PEI and DXE phases
US8909957B2 (en) * 2010-11-04 2014-12-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamic voltage adjustment to computer system memory
US9940204B2 (en) * 2015-11-02 2018-04-10 International Business Machines Corporation Memory error recovery
US12339979B2 (en) 2016-03-07 2025-06-24 Crowdstrike, Inc. Hypervisor-based interception of memory and register accesses
US12248560B2 (en) * 2016-03-07 2025-03-11 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10565141B1 (en) * 2018-08-28 2020-02-18 Dell Products L.P. Systems and methods for hiding operating system kernel data in system management mode memory to thwart user mode side-channel attacks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4309532C2 (de) * 1992-03-25 1996-10-31 Intel Corp Verfahren zum Sichern einer Systemabbildung eines Computersystems auf einer permanenten Speichereinrichtung sowie ein Computersystem
JPH06230979A (ja) * 1992-06-17 1994-08-19 Cyrix Corp 改良されたシステム管理方法および装置
US5509139A (en) * 1993-03-22 1996-04-16 Compaq Computer Corp. Circuit for disabling an address masking control signal using OR gate when a microprocessor is in a system management mode
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
US5764999A (en) * 1995-10-10 1998-06-09 Cyrix Corporation Enhanced system management mode with nesting

Also Published As

Publication number Publication date
DE69732181T2 (de) 2005-12-29
JP3987577B2 (ja) 2007-10-10
EP0902922B1 (en) 2005-01-05
WO1997046937A1 (en) 1997-12-11
EP0902922A4 (en) 2000-06-21
TW351788B (en) 1999-02-01
DE69732181D1 (de) 2005-02-10
AU3297597A (en) 1998-01-05
US5909696A (en) 1999-06-01
EP0902922A1 (en) 1999-03-24

Similar Documents

Publication Publication Date Title
JP3987577B2 (ja) システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置
US5325499A (en) Computer system including a write protection circuit for preventing illegal write operations and a write poster with improved memory
US5551006A (en) Low cost writethrough cache coherency apparatus and method for computer systems without a cache supporting bus
EP0258559B1 (en) Cache memory coherency control provided with a read in progress indicating memory
US7047322B1 (en) System and method for performing conflict resolution and flow control in a multiprocessor system
US6904499B2 (en) Controlling cache memory in external chipset using processor
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
US6192458B1 (en) High performance cache directory addressing scheme for variable cache sizes utilizing associativity
US5778171A (en) Processor interface chip for dual-microprocessor processor system
US5802576A (en) Speculative cache snoop during DMA line update
US5418927A (en) I/O cache controller containing a buffer memory partitioned into lines accessible by corresponding I/O devices and a directory to track the lines
JPH0345407B2 (ja)
US6219745B1 (en) System and method for entering a stream read buffer mode to store non-cacheable or block data
US5678025A (en) Cache coherency maintenance of non-cache supporting buses
US5544344A (en) Apparatus for caching smram in an intel processor based computer system employing system management mode
JPH04306748A (ja) 情報処理装置
US6321302B1 (en) Stream read buffer for efficient interface with block oriented devices
US5638532A (en) Apparatus and method for accessing SMRAM in a computer based upon a processor employing system management mode
US5920891A (en) Architecture and method for controlling a cache memory
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
JPH10143431A (ja) マイクロプロセッサおよびコンピュータシステムにおけるデータのキャッシング方法
US7308557B2 (en) Method and apparatus for invalidating entries within a translation control entry (TCE) cache
JPH04336641A (ja) 処理システムにおける使用のためのデータキャッシュおよび方法
US5950227A (en) CPU write-back cache coherency mechanism that transfers data from a cache memory to a main memory after access of the main memory by an alternative bus master
KR100453262B1 (ko) 주변 장치의 상태 정보를 관리 및 갱신하는 방법, 컴퓨터 시스템, 그리고 프로세서 내의 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040407

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070626

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070713

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100720

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110720

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees