JPH10143431A - マイクロプロセッサおよびコンピュータシステムにおけるデータのキャッシング方法 - Google Patents

マイクロプロセッサおよびコンピュータシステムにおけるデータのキャッシング方法

Info

Publication number
JPH10143431A
JPH10143431A JP9297069A JP29706997A JPH10143431A JP H10143431 A JPH10143431 A JP H10143431A JP 9297069 A JP9297069 A JP 9297069A JP 29706997 A JP29706997 A JP 29706997A JP H10143431 A JPH10143431 A JP H10143431A
Authority
JP
Japan
Prior art keywords
address
memory
cache
data
translator
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
JP9297069A
Other languages
English (en)
Inventor
H Shell Jonathan
エィチ.シエル ジョナサン
W Boshart Patrick
ダブリュ.ボスハート パトリック
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH10143431A publication Critical patent/JPH10143431A/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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

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)【要約】 【課題】 正規のシステムメモリとシステム管理モード
メモリのミックスされたものをキャッシュすることがで
きる内部キャッシュメモリを有するマルチプレクサを得
る。 【解決手段】 アドレス変換器115は、正規モードで
はアドレスを変化させずに通し、システム管理モードで
はアドレスを外部記憶装置により占有されるアドレスの
範囲外のアドレス範囲へ変換する。キャッシュメモリ1
60がアドレス変換器115に接続され、そこから受信
するアドレスに対応するアドレスタグによりデータをキ
ャッシングする。アドレス変換器115はアドレス範囲
比較器を含み、仮想メモリから物理的メモリへのアドレ
ス変換と組み合わせることができる。逆アドレス変換器
120は逆アドレス比較器を含み、キャッシュ線ライト
バックアドレスが変換されたアドレス範囲内である場合
に外部システムへ一致信号を発生する。マイクロプロセ
ッサはキャッシュメモリの多レベルを含むことができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明の技術分野はシステム
管理モードおよび内部キャッシュメモリを有するマイク
ロプロセッサを使用するコンピュータシステムである。
【0002】
【従来の技術】インテル社製SLエンハンスト8048
6マイクロプロセッサおよびx86ファミリーの後継マ
イクロプロセッサを利用したコンピュータシステムはシ
ステム管理動作モード(SMM)が可能である。SMM
はシステムファームウェアが使用して、コンピュータオ
ペレーティングシステムおよびアプリケーションプログ
ラムに対してトランスペアレントな方法で特定製品のハ
ードウェア機能を制御するのに使用することができる。
SMM管理モードは、典型的には、システム構成や、パ
ワーダウンマイクロプロセッサの構成等のシステム管理
情報や0V保留機能等の節電機能を引き出すのに使用さ
れる。
【0003】SMMはDOSやWindowsオペレー
ティングシステムを利用するコンピュータでは非効率的
となりがちである。SMMで作動する場合、マイクロプ
ロセッサはシステム管理ランダムアクセスメモリ(SM
RAM)と呼ばれる専用の独立した記憶装置へアクセス
する。SMRAMは2つの方法で実施することができ
る。第1に、SMRAMは一意的なアドレス可能位置を
有する記憶エリアを占有することができる。これは非オ
ーバレイメモリとして知られている。SMRAMのこの
実施例を使用すると、マイクロプロセッサは内部キャッ
シュメモリを使用してSMRAMからのデータおよび命
令を格納することができる。DOSコンパチブルなシス
テムでは、インテル8086の20ビットアドレスに対
応するメモリの最初の1Mバイトは、オリジナルIBM
パーソナルコンピュータにおいて選択され、今でも有効
なソフトウェアコンパチビリティ必要条件に従ってマッ
プされる。したがって、非オーバレイSMRAMはメモ
リの最初の1Mバイトを越えて配置しなければならな
い。その結果、この記憶スペースに関連するコンピュー
タアーキテクチュアの制約は1Mバイトよりも大きくな
る。例えば、遠くへ分岐する(far jump)こと
は制約されプログラムコードサイズは4kバイトセグメ
ントへ制限される。このような制約により、非オーバレ
イSMRAMはあまり使用されない。
【0004】第2のSMRAMの実施例はパーソナルコ
ンピュータでより広く使用されている。SMRAMは記
憶装置の最初の1メガバイト内でシステムメモリのエリ
アを重畳する第2の、独立したアドレススペースにおい
てアドレスされる。上記の今でも有効な(regac
y)ソフトウェアの制約により、SMRAMはSMMで
はない場合に他の目的で一般的に使用される正規のメモ
リのある部分をオーバレイする必要があることをお判り
願いたい。プロセッサが正規のモードであれば、外部記
憶装置システムはシステムメモリへ正常にアクセスす
る。プロセッサがSMMである場合には、外部記憶装置
システムはシステムメモリ内にアドレスを有する独立し
たシステム管理メモリへメモリアクセスを再マップす
る。マイクロプロセッサはこの外部記憶装置の再マッピ
ングには気づかない。
【0005】そのため、マイクロプロセッサの内部キャ
ッシュメモリの使用に問題が生じる。マイクロプロセッ
サはメモリの再マッピングには関与しないため、正規の
システムメモリとSMRAMを区別することができな
い。したがって、正規モードとSMMの両方を使用する
場合にはキャッシュコヒーレンシを維持できない。これ
はSMRAMをキャッシュ不能として処理することによ
り回避することができる。もちろん、それによりマイク
ロプロセッサ内部キャッシュの価値は取り消される。現
在のマイクロプロセッサはシステムバスレートよりも高
いレートの命令で作動する場合が多い。したがって、キ
ャッシュを使用できなければマイクロプロセッサは遥か
に低速で作動する。このキャッシュコヒーレンシ問題
は、SMMに対する入出力時のキャッシュフラッシング
(chache flushing)により回避するこ
ともできる。外部記憶装置から呼び戻されて以来変化し
ていないエントリはキャッシュフラッシュにより無効と
され、メモリ汚染エントリ、すなわち外部記憶装置から
呼び戻されて以来変化しているキャッシュエントリへ書
き戻される。内部キャッシュは益々大型化する傾向があ
るため、このようなキャッシュフラッシュは長時間を要
する。さらに、大型キャッシュはSMMプログラム命令
フェッチおよびデータロードに対処するのに前の全ての
キャッシュエントリのクリアを必要性とする可能性がよ
り少ないため、多くのキャッシュエントリが不要にフラ
ッシュされることがある。両方の代替策共マイクロプロ
セッサの内部キャッシュは無駄に使用される。同時に、
SMMアプリケーションの使用は次第に増大する傾向が
ある。それは内部キャッシュの無駄な使用がさらに決定
的になりつつあることを意味する。
【0006】システム管理メモリのキャッシングを可能
にする解決策が米国特許第5,544,34号、システ
ム管理モードを利用するインテルプロセッサベースコン
ピュータシステムにおけるSMRAMキャッシング装
置、に記載されている。この特許は、マイクロプロセッ
サが正規モードであるかシステム管理モードであるかを
示すSMIACTビットを、最上位アドレスビットのよ
うに使用することを提案している。すなわち、SMIA
CTビットが“0”であって正規モードを示す場合に
は、データおよび命令は正規にキャッシュされる。SM
IACTビットが“1”でシステム管理モードを示す場
合には、このビットは別のメモリスペースを選択する。
また、この特許は、キャッシュアクセス毎にアドレスを
SMRAMに割り当てられているアドレス範囲に対して
チェックすることを教示している。したがって、システ
ム管理メモリ内のデータおよび命令は正規の記憶装置か
らのデータおよび命令と並んでキャッシュすることがで
きる。
【0007】
【発明が解決しようとする課題】この解決策には欠点が
ある。この解決策では、キャッシュタグテーブル内のビ
ット数を1ビットだけ拡張して、アドレスの最上位ビッ
トとして有効に使用されるSMIACTビットをカバー
する必要がある。したがって、各キャッシュ線が付加タ
グビットを必要とする。内部キャッシュが次第に大きく
なる傾向により、これらの付加キャッシュタグビットに
必要な余分なエリアは相当なものとなる。
【0008】
【課題を解決するための手段】本発明は正規のシステム
メモリとシステム管理モードメモリがミックスされたも
のをキャッシュすることができる内部キャッシュメモリ
を有するマイクロプロセッサである。アドレス変換器が
入力アドレスを受信する。システム管理モード入力信号
が正規モードを示す場合には、アドレス変換器はアドレ
スを変化させずに通す。システム管理モード入力信号が
システム管理モードを示す場合には、アドレス変換器は
アドレスを外部記憶装置により占有されるアドレスの範
囲外のアドレス範囲へ変換する。キャッシュメモリがア
ドレス変換器に接続されていて、アドレス変換器から受
信するアドレスに対応するアドレスタグを有する、デー
タポートから受信したデータをキャッシュする。アドレ
ス変換器はメモリリード上の外部記憶装置、外部記憶装
置から読み出されるデータのロードアドレスを発生もし
くは外部記憶装置へ書き込まれるデータのアドレスを格
納するロード/ストアユニット、および外部記憶装置か
ら読み出される命令の命令フェッチアドレスを発生する
命令フェッチユニットからアドレスを受信することがで
きる。これらのアドレスソースはアドレスマルチプレク
サにより選択される。
【0009】好ましくは、アドレス変換器はアドレスを
所定のアドレス範囲と比較するアドレス範囲比較器を含
んでいる。アドレス範囲比較器は、アドレスが所定のア
ドレス範囲内であるかどうかを示す一致信号を発生す
る。この一致信号は、外部システムから受信するシステ
ム管理モード信号とANDされる。変換アドレスは、変
換アドレスからの最上位ビットを受信アドレスと多重化
し、ANDゲート出力を受信アドレスの選定ビットとX
ORし、ANDゲート出力を受信アドレスの選定ビット
とORし、変換アドレスを受信アドレスとORしあるい
は変換アドレスを受信アドレスとXORすることにより
形成することができる。アドレス範囲および変換アドレ
スはマイクロプロセッサの製作時に固定したり、動作中
に書き込み可能にすることができる。アドレス変換は仮
想メモリと組み合わせて物理的メモリアドレス変換とす
ることができる。
【0010】好ましくは、マイクロプロセッサはキャッ
シュ線ライトバックのための逆アドレス変換器を含むこ
ともできる。逆アドレス変換器は、変換されたアドレス
を変換されたアドレス範囲と比較する逆アドレス比較器
を含んでいる。キャッシュ線ライトバックアドレスが変
換されたアドレス範囲内になければ、逆アドレス変換器
はキャッシュ線ライトバックアドレスを変化させずに通
す。キャッシュ線ライトバックアドレスが変換されたア
ドレス範囲内であれば、逆アドレス変換器はキャッシュ
線ライトバックアドレスを所定のアドレス範囲へ変換す
る。逆アドレス変換器は、キャッシュ線ライトバックア
ドレスが変換されたアドレス範囲内である時にシステム
管理モードを示す一致信号を発生して外部記憶装置およ
び周辺装置へ送る。逆アドレス変換器はアドレス変換器
と同様に構成することができる。
【0011】マイクロプロセッサはキャッシュメモリの
多レベルを含むことができる。前記したキャッシュメモ
リが単一化されたレベル2キャッシュであれば、レベル
1データキャッシュを使用することができる。レベル1
データキャッシュは、システム管理モードにエントリも
しくはエグジットする時にフラッシュされる。正規メモ
リおよびシステム管理メモリはこのデータキャッシュに
同時にキャッシュインされることはないため、このキャ
ッシュは非変換アドレスを含むことができる。オリジナ
ルアドレス変換器と同様な2次アドレス変換器が、レベ
ル2キャッシュメモリへ書き戻されるキャッシュ線のア
ドレスを処理する。2次逆アドレス変換器は、レベル1
データキャッシュメモリへ書き込まれるキャッシュ線の
アドレスを処理する。同様な技術はレベル1コードキャ
ッシュメモリにも使用することができる。自己修正符号
が禁止される場合には、レベル2キャッシュメモリとレ
ベル1符号キャッシュメモリとの間に2次アドレス変換
器は不要である。
【0012】
【発明の実施の形態】図1は本発明を応用するタイプの
パーソナルコンピュータシステム10のブロック図であ
る。コンピュータシステム10により、システムデータ
バス12を介した、内部キャッシュ16を含む中央処理
装置CPU14とシステムメモリ18、SMRAM2
0、ビデオメモリ(VRAM)22およびディスクドラ
イブコントローラ(DD CTL)24やネットワーク
コントローラ26等のさまざまな入出力(I/O)周辺
装置間のバス変換が可能とされる。中央処理装置14は
システムアドレスバス28およびCPUコントロールバ
ス30を介してメモリコントローラ32に接続されてお
り、それはシステムメモリ18およびSMRAM20に
接続されている。メモリコントローラ32はメモリアド
レスバス34およびメモリ制御信号36をシステムメモ
リ18およびSMRAM20へ供給する。それにより、
システムデータバス12を介したシステムメモリ18も
しくはSMRAM20と中央処理装置14間のデータ転
送が可能となる。中央処理装置14はシステムデータバ
ス12、システムアドレスバス28およびCPUコント
ロールバス30を介してバスコントローラ38に接続さ
れている。バスコントローラ38はバッファされたアド
レスバス40およびバッファされたデータバス42を介
してビデオメモリ20、ネットワークコントローラ26
およびディスクドライブコントローラ24および任意他
の周辺装置に接続されている。コンピュータシステム1
0はディスクトップパーソナルコンピュータ、ポータブ
ルノートブックコンピュータ、ネットワークサーバとす
ることができ、図1に示すデバイスを全部含んでも含ま
なくてもよい。
【0013】好ましい実施例では、中央処理装置14は
インテル社製SHエンハンスト80486マイクロプロ
セッサもしくはx86ファミリー内の後継マイクロプロ
セッサである。このファミリーのマイクロプロセッサは
システム管理モード(SMM)を利用している。システ
ム管理モードに独特な専用の割込線SMI44およびメ
モリスペースSMRAM20が割り当てられている。典
型的に、SMMはインテリジェント電力管理およびSM
RAM20からの他の改善されたシステム機能をオペレ
ーティングシステムおよびアプリケーションプログラム
に対してトランスペアレントに実施するのに使用され
る。
【0014】割込線41上のSMI信号を介したシステ
ム管理割込み(SMI)の表明により、中央処理装置1
4内にシステム管理モードが呼び出される。中央処理装
置14は、CPUコントロールバス30の一部であるラ
イン46上でシステム管理割込み肯定応答SMIACT
を表明して応答する。次に、メモリコントローラ32に
より中央処理装置14はSMRAM20へアクセスする
ことができる。SMRAM20はSMM専用であってそ
れに対して確保され、オペレーティングシステムおよび
アプリケーションプログラムはSMRAM20にアクセ
スすることはできない。SMIACT信号が表明された
後で、中央処理装置14の現在状態(すなわち、文脈)
がSMRAM20に格納される。次に、中央処理装置1
4はSMRAM20内のシステム管理機能をイネーブル
するSMIハンドラーコードを実行する位置へ分岐す
る。システム管理機能が完了すると、SMIハンドラー
はSMRAM20からの中央処理装置14の文脈を再格
納するリジューム(RSM)命令を実行し、SMIAC
T信号を表明撤回し、次に予め割り込まれたオペレーテ
ィングシステムもしくはアプリケーションプログラム機
能へ制御を戻す。
【0015】中央処理装置14によりアドレスバス28
上に表明されるアドレスは“システム”アドレスとして
知られている。これらのアドレスは“H”添え字で示す
十六進フォーマットで表示される。アドレスバス28の
アドレスA(31:0)の32ビットはメモリの232
なわち4Gバイトをアクセスすることができる。SMR
AM20はこのシステムアドレス空間内のどこへでも配
置することができる。0 HからF FFFF Hまで
を含むメモリの最初の1Mバイト内に配置されたプログ
ラム命令は、アドレス10 0000 Hを越える1M
バイトよりも大きいアドレスに配置されたプログラム命
令よりも柔軟性が高い。最初の1Mバイトよりも上に存
在する命令は遠くへ分岐して現在のセグメントの外側へ
アクセスすることが制約される。この制約により、特
に、最初の1Mバイトに存在するシステムベーシック入
出力システム(BIOS)を呼び出す命令コードが制限
される。したがって、所要のBIOS呼によりSMM命
令を実行する時は、アドレス空間の最初の1Mバイトか
らの命令を実行するのが望ましい。
【0016】図2にコンピュータ10のシステムメモリ
の部分メモリマッピングを示す。このメモリマッピング
はMS−DOSオペレーティングシステムとコンパチブ
ルなコンピュータに典型的なものである。システムアド
レス空間の最下位640Kバイト、0 Hから9 FF
FF Hまでのアドレス、はシステムメモリ18へマッ
プされる。アドレス空間のこの部分はオペレーティング
システムおよびDOSアプリケーションプログラムに利
用することができる。A 0000 HからBFFFF
Hまでのシステムアドレスはビデオメモリ22へマッ
プされる。C0000 HからC FFFF Hまでの
システムアドレスはビデオBIOSコードへマップされ
る。D 0000 HからD FFFF Hまでおよび
E0000 HからE FFFF Hまでのシステムア
ドレスは、それぞれ、独立したPCMCIA周辺エリア
へマップされることが多く、あるいは他の周辺装置へマ
ップすることができる。F 0000 HからF FF
FF HまでのシステムアドレスはBIOSコードのた
めに保存される。10 0000 Hよりも上の、1M
バイトを越える、システムアドレスはアプリケーション
プログラムに使用するシステムメモリへマップされる。
図2に示すように、SMRAMは64−128Kバイト
を含む場合が多くシステムアドレスA 0000 Hか
らBFFFF Hまでマップされる場合が多い。
【0017】図2では、典型的なパーソナルコンピュー
タシステム内のシステムアドレス空間の下位1Mバイト
はソフトウェアコンパチビリティに対して既に完全にマ
ップされている。したがって、システムアドレス空間の
最初の1Mバイトからのシステム管理命令を実行するた
めに、SMRAM20はレギュラーシステムメモリ18
により“オーバレイ”しなければならない。すなわち、
SMRAM20とシステムメモリ18の両方が単一範囲
のアドレスによりアクセスされる。したがって、アクセ
スされる物理的メモリは、コンピュータシステム10が
正規モードであるかシステム管理モードであるかによっ
て決まる。例として、SMRAM20はシステムアドレ
スD 0000 HからD FFFF Hまでに存在す
るようにマップすることができる。正規モードで作動す
る場合、中央処理装置14によるシステムアドレスD
0000 Hへのアクセスはメモリコントローラ32に
よりシステムメモリ18のアドレスD 0000 Hへ
指向される。システム管理モードで作動する場合、中央
処理装置14によるシステムアドレスD 0000Hへ
のアクセスはメモリコントローラ32により、SMRA
M20が物理的に存在している限り、そこへ指向され
る。メモリコントローラ32はアドレスバス28および
SMIACTの状態を監視して中央処理装置14のアド
レス要求をD0000 HからD FFFF Hまでの
範囲内のメモリ位置へ適切に指向する。
【0018】前記したように、従来技術のオーバレイS
MRAMではキュッシュコヒーレンシ問題が生じる。中
央処理装置14およびその内部キャッシュ16は、所与
のアドレスに対してシステムメモリ18とSMRAM2
0を区別することができない。このキュッシュコヒーレ
ンシ問題に対する従来技術の解決策はSMRAMをキャ
ッシュ不能として処理することである。もちろん、その
ためシステム管理機能を実行する場合に内部キャッシュ
16の値は取り消される。
【0019】本発明に従って、SMRAMの値は実際の
メモリの未使用部へ変換される。アドレスバス28のア
ドレスA(31:0)の32ビットはメモリの232すな
わち4Gバイトへアクセスすることができる。現在のパ
ーソナルコンピュータの実際のメモリはこれよりも遥か
に少ない。パーソナルコンピュータが128Gバイトの
メモリを有するのは非常にまれである。したがって、一
般的に大きなアドレス可能エリアが現在使用されていな
い。一般的に、マイクロプロセッサの内部アドレスバス
は全部で32アドレスビットを含んでいる。したがっ
て、典型的に内部キャッシュは実際のメモリが無いアド
レスを処理する容量を有している。
【0020】図3に本発明の技術の一例をブロック図で
示す。図3には図1のCPU14内に含まれる機能しか
図示されていない。図1に示す外部システムは変わらな
い。図3には、データ線D(63:0)12に接続され
たバスインターフェイスユニット110、アドレス線A
(31:0)28、SMIACT線30およびSMI線
44が図示されている。バスインターフェイスユニット
110はキャッシュ16とデータを交換する。また、図
3にはキャッシュ16からマイクロプロセッサ14のコ
アへのデータ供給が例示されていない。この接続は従来
通りであり、簡潔にするために図示されていない。
【0021】バスインターフェイスユニットはマルチプ
レクサ117およびアドレス変換器115を介してキャ
ッシュ16へアドレスを送り、キャッシュ16へ書き込
んでキャッシュを埋める。マルチプレクサ117により
選択される場合、アドレスはアドレス変換器115へ送
られる。アドレス変換器115はSMIACT信号によ
りイネーブルされる。マイクロプロセッサ14が正規モ
ードであれば、アドレス変換器115はターンオフされ
る。したがって、アドレスは変化されずにアドレス変換
器115を通る。そのため、キャッシュユニット16は
正規にアドレスされる。同様に、マルチプレクサ117
により選択されかつマイクロプロセッサ14が正規モー
ドであれば、ロード/ストアユニット130からのデー
タアドレスはキャッシュユニット16へ通される。同様
に、マルチプレクサ117により選択される場合、マイ
クロプロセッサ14が正規モードであれば、命令フェッ
チユニット140(Iフェッチ)からの命令アドレスは
変化せずにアドレス変換器115を通過する。
【0022】マイクロプロセッサ14がSMMであれ
ば、SMIACT信号はアクティブである。それによ
り、アドレス変換器115がイネーブルされる。アドレ
ス変換器115はマルチプレクサ117により選択され
るソースからのアドレスをチェックする。このアドレス
がSMRAMに割り当てられたアドレス範囲内であれ
ば、アドレス変換器115はアドレスをメモリの未使用
部へ変換する。典型的に、それは128Mバイト(07
FF FFFF Hex)よりも大きいアドレスであ
り、一般的に実際のメモリには使用されない。このアド
レスがSMMに割り当てられた範囲内でなければ、アド
レス変換器はアドレスを変化させずに通す。したがっ
て、キャッシュユニット16は正規モードのデータおよ
びシステム管理モードのデータを干渉させずに格納する
ことができる。
【0023】図4から図8にアドレス変換器115のさ
まざまな実施例を示す。図4はアドレス変換中のいくつ
かの最上位ビットの置換を示す。着信アドレスはアドレ
ス範囲比較器210へ送られる。アドレス範囲比較器2
10は受信したアドレスを高範囲レジスタ211および
低範囲レジスタ213に格納されたアドレスと比較す
る。高範囲レジスタ211はSMRAMへ割り当てられ
た最高アドレス、好ましくは000B FFFF He
x,を格納する。低範囲レジスタ213はSMRAMへ
割り当てられた最低アドレス、好ましくは000A 0
000 Hex,を格納する。受信したアドレスが高範
囲レジスタ211および低範囲レジスタ213により包
含される範囲内であれば、アドレス範囲比較器210は
一致信号を発生する。この一致信号はANDゲート22
0への1入力を形成する。ANDゲート220の他方の
入力はSMIACT信号を受信する。ANDゲート22
0の出力はマルチプレクサ223により選択されるデー
タを制御する。アドレスが一致しないかあるいはマイク
ロプロセッサ14がSMMでなければ、ANDゲート2
20の出力は“0”である。この状態において、マルチ
プレクサ223は入力アドレス信号を選択して出力す
る。したがって、アドレス変換器115はアドレスを変
化させずに通す。アドレス範囲が一致しかつマイクロプ
ロセッサ14がSMMであれば、ANDゲート220の
出力は“1”である。この状態において、マルチプレク
サ223は変換アドレスレジスタ221に格納された1
組の最上位ビット、および入力アドレスからの1組の最
下位ビットを選択する。アドレスエリアシングを防止す
るために、変換アドレスレジスタ221に格納される最
上位ビットはSMRAMアドレスが“0”である場所の
ビットである。したがって、好ましくは、変換アドレス
レジスタ221は最上位ビット27−31を含んでい
る。これらのアドレスの全てが“1”である必要はない
が、これらのアドレスのいずれかに“1”を置くとSM
RAMアドレスは128Mバイトを越えて再マップされ
る。これは実際のメモリで使用される任意のアドレスを
越えている。
【0024】図5にアドレス変換器115の別の実施例
を示す。この実施例は、図4に示すようなアドレス範囲
比較器210、高範囲レジスタ211、低範囲レジスタ
213、およびANDゲート220を含んでいる。一致
が検出されかつSMMであれば、ANDゲート220は
1つ以上のビットワイズXORゲート231へ“1”を
送る。好ましくは、それには変換されたアドレスが12
8Mバイトを越えることを保証するためのビット範囲2
7−31内の少なくとも1ビットが含まれている。ビッ
トワイズXORゲート231はSMRAMアドレスを実
際のメモリにより占有されていないアドレス空間内の別
のアドレスへ変える。
【0025】図6に示すアドレス変換器115の実施例
は図4に示すものと実施的に同じである。図6では、ビ
ットワイズXORゲート231がビットワイズOR23
3と置換されている。ビットワイズOR233は変換さ
れたアドレスを発生してキャッシュユニット16へ送
る。図6で“1’”を受信するビットが実際のメモリで
使用されるものよりも大きい最上位ビットであれば、図
6のアドレス変換器115は図5のアドレス変換器11
5と同じアドレスを発生する。
【0026】図7および図8にアドレス変換器115の
さらに別の実施例を記す。図7には、図4に図示されて
いるような、アドレス範囲比較器210、高範囲レジス
タ211、低範囲レジスタ213、およびANDゲート
220が図示されている。一致が検出されかつSMMで
あれば、ANDゲート220はビットワイズANDゲー
ト236の各ビットへ“1”を送る。アドレスレジスタ
235に格納されているアドレスはビットワイズOR2
37へ通される。好ましくは、このアドレスレジスタ2
35は、変換されたアドレスが128Mバイトを越える
ことを保証するための少なくとも1つの“1”ビットを
ビット範囲27−31内に含んでいる。ビットワイズO
R237はSMRAMアドレスをアドレス空間内の実際
のメモリにより占有されない別のアドレスへ変える。図
8に部分的に示すように、ビットワイズORゲート23
7はビットワイズXORゲート239に置換することが
できる。
【0027】次に、図3に戻って、キャッシュユニット
16に格納されたデータをバスインターフェイスユニッ
ト110を介してメモリシステムへ通さなければならな
い時がある。それは、汚染したキャッシュ線、すなわ
ち、外部記憶装置から呼び出されて以来変化されている
データを含むキャッシュ線、を置換して新しいデータや
命令のための場所を作らなければならない場合に生じ
る。このライトバックキャッシュ線はシステムメモリや
SMRAMから生じたものであることをお判り願いた
い。キャッシュユニット16により発生されるこのアド
レスは逆アドレス変換器120へ送られる。逆アドレス
変換器120はアドレス変換器115のアドレス変換の
逆を実行する。逆アドレス変換器120はキャッシュユ
ニット16から受信したアドレスがSMRAMへ割り当
てられた再マップされたアドレス内にあるかどうかを検
出する。アドレスがSMRAMの再マップされた範囲内
であれば、逆アドレス変換器120はアドレス変換器1
15のアドレス変換を逆にする。この回復されたアドレ
スはバスインターフェイスユニット110へ送られ外部
システムへ送られる。逆アドレス変換器120により範
囲の一致が検出されない場合には、バスインターフェイ
スユニット110はSMIACTを一時的に表明撤回し
なければならない。それにより、外部システムはSMR
AMではなくシステムメモリにライトが行われることを
知らされる。逆アドレス変換器120からの一致信号が
無ければ、バスインターフェイスユニット110は正し
いメモリ空間を指定するための適切な信号を外部システ
ムへ送ることができない。そのため、外部システムはマ
イクロプロセッサ14のSMIACT出力にサイクル毎
のベースで応答してシステムメモリとSMRAMの両方
のキャッシングをサポートできる必要がある。
【0028】逆アドレス変換器120は実質的にアドレ
ス変換器115と同じ構造とされている。逆アドレス変
換器120のさまざまな例が図9、図10、図11およ
び図12に図示されている。逆アドレス変換器120は
ANDゲート220を含まずSMIACT信号には応答
しないことをお判り願いたい。替わりに、逆アドレス変
換器120は、前記したように、そのMATCH信号を
バスインターフェイスユニット110により使用される
ように出力する。別の局面において、図9、図10、図
11および図12に例示するアドレス変換器120は、
それぞれ、図4、図5、図6および図7に例示するアド
レス変換器115と実質的に同じである。図8に示すビ
ットワイズXORゲート239は図12に示すビットワ
イズORゲート237と置換できることをお判り願いた
い。この置換については、図7および図8に関して前記
した。
【0029】好ましい実施例では、範囲およびアドレス
変換はマイクロプロセッサ14の製作時に固定されてい
る。したがって、高範囲レジスタ211、低範囲レジス
タ213、変換アドレスレジスタ221およびアドレス
レジスタ235は読出し専用メモリもしくは他の適切な
固定構造により形成される。それには、SMRAMキャ
ッシングをイネーブルするのにマイクロプロセッサ14
を利用したコンピュータシステムを何ら変更する必要が
ないという利点がある。しかしながら、それには、SM
RAMのアドレス範囲が製作時にマイクロプロセッサ1
4内に固定されたものと同じである必要がある。また、
高範囲レジスタ211、低範囲レジスタ213、変換ア
ドレスレジスタ221およびアドレスレジスタ235の
1つ以上をコントロールレジスタ等のリード/ライトメ
モリにより形成することができる。その場合、これらの
リード/ライトリジスタは、SMRAMのキャッシュを
試みる前に適切にロードされなければならない。システ
ム読出し専用メモリベーシック入出力システム(ROM
BIOS)は、これらのリード/ライトレジスタをロ
ードするための選定されたデータおよびプログラムコー
ドを含むことが好ましい。外部記憶装置のパラメータと
共同して特定のROM BIOSを選択しアドレス範囲
の適切な相関を保証しなければならない。コンピュータ
システムのオリジナルな装置の製作によりこれら全ての
パラメータが規制されるため、ROMBIOSを特定の
コンピュータに一致させることは実現可能である。
【0030】図13にこのアドレス変換技術を多レベル
キャッシュシステムに使用する例を示す。図13に示す
マイクロプロセッサ14はレベル1データキャッシュユ
ニット131、レベル1コードキャッシュユニット14
1および単一化されたレベル2キュッシュユニット16
0を含んでいる。バスインターフェイスユニット110
と単一化されたレベル2キュッシュユニット160間の
インタラクションは、図3に関して説明したバスインタ
ーフェイスユニット110とキュッシュユニット160
間のインタラクションと実質的に同じである。図13の
実施例では、レベル1データキャッシュユニット131
およびレベル1コードキャッシュユニット141は変換
されたアドレスを利用しない。替わりに、レベル1デー
タキャッシュユニット131およびレベル1コードキャ
ッシュユニット141は、それぞれ、ロード/ストアユ
ニット130および命令フェッチユニット140から受
信したマイクロプロセッサコアアドレスを利用する。こ
の実施例では、レベル1データキャッシュユニット13
1およびレベル1コードキャッシュユニット141は実
質的に単一化されたレベル2キュッシュユニット160
よりも小さい。これらのキャッシュは、おそらくは、S
MMで作動する時にSMRAMからのデータにより埋め
られるようなサイズである。そのため、システムメモリ
とこれらのキャッシュ内のSMRAMの両方を同時にキ
ャッシュする試みは少しも有利ではない。したがって、
これらのキャッシュはSMMにエントリおよびエグジッ
トする時にフラッシュされる。一方、単一化されたレベ
ル2キュッシュユニット160は好ましくは十分大き
く、SMMにエントリおよびエグジットする時にフラッ
シュすることがシステムにとって相当な重荷となる。し
たがって、SMRAMデータは単一化されたレベル2キ
ュッシュユニット160に変換されたアドレスでキャッ
シュされる。
【0031】レベル1データキャッシュ131から単一
化されたレベル2キュッシュユニット160へ転送され
たライトバックデータは、前記した方法でアドレス変換
器133により変換される。アドレス変換器133は図
4、図5、図6、図7および図8に例示し前記したいず
れかの実施例に従って構成することができる。レベル1
データキャッシュユニット131はシステムメモリとS
MRAMの両方はキャッシュしないため、これら2つの
メモリソースを区別する必要がないことをお判り願いた
い。逆アドレス変換器135は図9、図10、図11お
よび図12に例示した前記いずれかの実施例に従って構
成することができる。同様に、レベル1コードキャッシ
ュ141から単一化されたレベル2キュッシュユニット
160へ転送された(自己修正コード等からの)ライト
バック命令はアドレス変換器143により変換され、そ
れは図4、図5、図6、図7および図8に例示した前記
いずれかの実施例に従って構成することができる。自己
修正コードが許されない場合には、単一化されたレベル
2キュッシュユニット160へ書き戻す必要のあるレベ
ル1コードキャッシュユニット141の“汚染された”
エントリは決して無いことをお判り願いたい。したがっ
て、アドレス変換器143は必要ではなくこの回路は省
くことができる。単一化されたレベル2キュッシュユニ
ット160からレベル1コードキャッシュユニット14
1へ転送されるキャッシュ書き込みデータは逆アドレス
変換器145を介して逆変換され、それは図9、図1
0、図11および図12に例示した前記いずれかの実施
例に従って構成することができる。SMMにエントリも
しくはエグジットする時にフラッシュされるマイクロプ
ロセッサ14の実行部に近い小型、高速キャッシュと大
型で低速の単一化されたキャッシュを設けることによ
り、シリコン領域および計算リソースの最適使用が可能
となる。
【0032】図14は本発明のアドレス変換が仮想アド
レスから物理的アドレスへの変換と組み合わされる別の
実施例を示す。ロード/ストアユニット130がデータ
テーブルルックアサイドバッファおよびアドレス変換器
117へ仮想アドレスを与える。データテーブルルック
アサイドバッファおよびアドレス変換器117は従来の
方法で物理的アドレス変換へ仮想アドレスを与える。前
記したように、この仮想アドレスから物理的アドレスへ
の変換はSMACT信号に基づいたマイクロプロセッサ
モードによって決まる選択物理的アドレス変換も含んで
いる。命令フェッチユニット140が命令テーブルルッ
クアサイドバッファおよびアドレス変換器119へ仮想
アドレスを与える。命令テーブルルックアサイドバッフ
ァおよびアドレス変換器119は従来の方法で仮想アド
レスから物理的アドレスへの変換を行う。前記したよう
に、この仮想アドレスから物理的アドレスへの変換はS
MACT信号に基づいたマイクロプロセッサモードによ
って決まる選択物理的アドレス変換も含んでいる。この
機能の組合せは4Mバイトページを使用すると、特に有
用で容易に実施することができる。この技術により、仮
想アドレスから物理的アドレスへの変換機能と本発明の
アドレス変換が有利に組み合わされる。以上の説明に関
して更に以下の項を開示する。
【0033】(1) 外部記憶装置および周辺装置に接
続されるようにされたマイクロプロセッサであって、該
マイクロプロセッサは、外部記憶装置および周辺装置と
データの双方向交換を行うデータポートと、外部記憶装
置および周辺装置へアドレスを供給するアドレスポート
と、外部記憶装置および周辺装置からのシステム管理モ
ード入力信号用のモード入力であって、前記システム管
理モード入力信号は正規モードもくしはシステム管理モ
ードを示すモード入力と、前記モード入力に接続され、
アドレス入力を受信するアドレス変換器であって、前記
アドレス変換器は(1)前記システム管理モード入力信
号が前記正規モードを示す場合には前記受信したアドレ
スを変化させずに通し(2)前記システム管理モード入
力信号が前記正規システム管理モードを示す場合には前
記受信したアドレスを外部記憶装置を含むアドレス範囲
外のアドレス範囲へ変換するアドレス変換器と、前記デ
ータポートおよび前記アドレス変換器に接続され前記ア
ドレス変換器から受信するアドレスに対応するアドレス
タグにより前記データポートから受信するデータをその
中に格納するキャッシュメモリと、を含むマイクロプロ
セッサ。
【0034】(2) 第1項記載のマイクロプロセッサ
であって、さらに、外部記憶装置から読み出されるデー
タのロードアドレスもしくは外部記憶装置へ書き込まれ
るデータのストアアドレスの選択された一方を発生する
ロード/ストアユニットと、前記ロード/ストアユニッ
トおよび前記アドレス変換器に接続されたアドレスマル
チプレクサであって、前記アドレスマルチプレクサは外
部記憶装置のメモリアクセスに対応するアドレスを受信
する第1の入力および前記ロードアドレスもしくは前記
ストアアドレスを受信する第2の入力を有し、前記アド
レスマルチプレクサは前記第1の入力もしくは前記第2
の入力の選択された一方を接続して前記アドレスを前記
アドレス変換器へ与えるアドレスマルチプレクサと、を
含むマイクロプロセッサ。
【0035】(3) 第1項記載のマイクロプロセッサ
であって、さらに、外部記憶装置から読み出される命令
の命令フェッチアドレスを発生する命令フェッチユニッ
トと、前記命令フェッチユニットに接続されたアドレス
マルチプレクサであって、前記アドレスマルチプレクサ
は外部記憶装置のメモリアクセスに対応するアドレスを
受信する第1の入力および前記命令フェッチアドレスを
受信する第2の入力を有し、前記アドレスマルチプレク
サは前記第1の入力もしくは前記第2の入力の選択され
た一方を接続して前記アドレスを前記アドレス変換器へ
与えるアドレスマルチプレクサと、を含むマイクロプロ
セッサ。
【0036】(4) 第1項記載のマイクロプロセッサ
であって、さらに、外部記憶装置から読み出されるデー
タのロードアドレスもしくは外部記憶装置へ書き込まれ
るデータのストアアドレスの選択された一方を発生する
ロード/ストアユニットと、外部記憶装置から読み出さ
れる命令の命令フェッチアドレスを発生する命令フェッ
チユニットと、前記ロード/ストアユニット、前記命令
フェッチユニットおよび前記アドレス変換器に接続され
たアドレスマルチプレクサであって、前記アドレスマル
チプレクサは外部記憶装置のメモリアクセスに対応する
アドレスを受信する第1の入力と、前記ロードアドレス
もしくは前記ストアアドレスを受信する第2の入力と前
記命令フェッチアドレスを受信する第3の入力を有し、
前記アドレスマルチプレクサは前記第1の入力、前記第
2の入力もしくは前記第3の入力の中の選択された1つ
の入力を接続して前記アドレスを前記アドレス変換器へ
与えるアドレスマルチプレクサと、を含むマイクロプロ
セッサ。
【0037】(5) 第1項記載のマイクロプロセッサ
であって、さらに、キャッシュ線ライトバック時に前記
キャッシュメモリからキャッシュ線ライトバックアドレ
ス出力を受信する逆アドレス変換器であって、前記逆ア
ドレス変換器は(1)前記キャッシュ線ライトバックア
ドレスが外部記憶装置を含むアドレスの範囲外の前記ア
ドレス範囲内ではない場合に前記キャッシュ線ライトバ
ックアドレスを変化させずに通し(2)前記キャッシュ
線ライトバックアドレスが外部記憶装置を含むアドレス
の範囲外の前記アドレス範囲内である場合に前記キャッ
シュ線ライトバックアドレスを前記所定のアドレス範囲
へ変換する逆アドレス変換器と、外部記憶装置および周
辺装置へのシステム管理モード出力信号のために前記逆
アドレス変換器に接続されたモード出力であって、前記
システム管理モード出力信号は前記キャッシュ線ライト
バックアドレスが前記所定のアドレス範囲内である時に
システム管理モードを示すモード出力と、を含むマイク
ロプロセッサ。
【0038】(6) 第1項記載のマイクロプロセッサ
であって、さらに、外部記憶装置から読み出されるデー
タのロードアドレスもしくは外部記憶装置へ書き込まれ
るデータのストアアドレスの選択された一方を発生する
ロード/ストアユニットと、前記ロード/ストアユニッ
トに接続されたデータキャッシュメモリであって、前記
データキャッシュメモリは前記ロード/ストアユニット
から受信するアドレスに対応するアドレスタグによりそ
の中へデータを格納し、前記データキャッシュメモリは
前記システム管理モードへのエントリおよび前記システ
ム管理モードからのエグジットの度にフラッシュされる
データキャッシュメモリと、前記データキャッシュメモ
リからデータキャッシュ線ライトバックアドレスを受信
して前記キャッシュメモリへ送る2次アドレス変換器で
あって、前記2次アドレス変換器は(1)前記システム
管理モード入力信号が前記正規モードを示す場合には前
記データキャッシュ線ライトバックアドレスを変化させ
ずに通し、(2)前記システム管理モード入力信号が前
記システム管理モードを示す場合には前記データキャッ
シュ線アドレスを外部記憶装置を含むアドレスの範囲外
の前記アドレス範囲へ変換する2次アドレス変換器と、
キャッシュ線書込み時に前記キャッシュメモリからキャ
ッシュ線書込みアドレス出力を受信する2次逆アドレス
変換器であって、前記逆アドレス変換器は(1)前記キ
ャッシュ線書込みアドレスが外部記憶装置を含むアドレ
スの範囲外の前記アドレス範囲内ではない場合に前記キ
ャッシュ線書込みアドレスを変化させずに通し(2)前
記キャッシュ線書込みアドレスが外部記憶装置を含むア
ドレスの範囲外の前記アドレス範囲内である場合に前記
キャッシュ線書込みアドレスを前記所定のアドレス範囲
へ変換する2次逆アドレス変換器と、を含み、前記キャ
ッシュメモリは、データキャッシュメモリとデータの双
方向交換を行うためのキャッシュ間データポートと、前
記2次アドレス変換器からアドレスを受信するように接
続された入力アドレスポートと、前記2次逆アドレス変
換器へアドレスを送るための出力アドレスポートと、を
含むマイクロプロセッサ。
【0039】(7) 第1項記載のマイクロプロセッサ
であって、さらに、外部記憶装置から読み出される命令
の命令フェッチアドレスを発生する命令フェッチユニッ
トと、前記命令フェッチユニットに接続されたコードキ
ャッシュメモリであって、前記コードキャッシュメモリ
は前記命令フェッチユニットから受信するアドレスに対
応するアドレスタグによりその中へ命令を格納し、前記
コードキャッシュメモリは前記システム管理モードへの
エントリおよび前記システム管理モードからのエグジッ
トの度にフラッシュされるコードキャッシュメモリと、
キャッシュ線書込み時に前記データキャッシュメモリか
らキャッシュ線書込みアドレス出力を受信する2次逆ア
ドレス変換器であって、前記逆アドレス変換器は(1)
前記キャッシュ線書込みアドレスが外部記憶装置を含む
アドレスの範囲外の前記アドレス範囲内ではない場合に
前記キャッシュ線書込みアドレスを変化させずに通し
(2)前記キャッシュ線書込みアドレスが外部記憶装置
を含むアドレスの範囲外の前記アドレス範囲内である場
合に前記キャッシュ線書込みアドレスを前記所定のアド
レス範囲へ変換する2次逆アドレス変換器と、を含み、
前記キャッシュメモリは、前記コードキャッシュメモリ
とデータの双方向交換を行うためのキャッシュ間コード
ポートと、前記2次逆アドレス変換器へアドレスを送る
ための出力アドレスポートと、を含むマイクロプロセッ
サ。
【0040】(8) 第1項記載のマイクロプロセッサ
であって、さらに、前記コードキャッシュメモリからコ
ードキャッシュ線ライトバックアドレスを受信して前記
キャッシュメモリへ送る2次アドレス変換器であって、
前記2次アドレス変換器は(1)前記システム管理モー
ド入力信号が前記正規モードを示す場合には前記コード
キャッシュ線ライトバックアドレスを変化させずに通
し、(2)前記システム管理モード入力信号が前記シス
テム管理モードを示す場合には前記コードキャッシュ線
アドレスを外部記憶装置を含むアドレスの範囲外の前記
アドレス範囲へ変換する2次アドレス変換器を含み、前
記キャッシュメモリは、さらに、前記2次アドレス変換
器からアドレスを受信するように接続された入力アドレ
スポートを含む、マイクロプロセッサ。
【0041】(9) 第1項記載のマイクロプロセッサ
であって、さらに、外部記憶装置から読み出されるデー
タのロードアドレスもしくは外部記憶装置へ書き込まれ
るデータのストアアドレスの選択された一方を発生する
ロード/ストアユニットと、前記モード入力に接続さ
れ、前記ロード/ストアユニットにより出力される前記
ロードアドレスもしくは前記ストアアドレスのいずれか
を受信するデータテーブルルックアサイドバッファおよ
びアドレス変換器と、を含み、前記データテーブルルッ
クアサイドバッファおよびアドレス変換器は、(1)前
記ロード/ストアユニットから受信する前記ロードアド
レスもしくは前記ストアアドレスを仮想アドレスから物
理的アドレスへ変換し、(2)前記システム管理モード
入力信号が前記正規モードを示す場合には前記ロード/
ストアユニットから受信する前記ロードアドレスもしく
は前記ストアアドレスを変化させずに通し、(3)前記
システム管理モード入力信号が前記システム管理モード
を示す場合には前記ロード/ストアユニットから受信す
る前記ロードアドレスもしくは前記ストアアドレスを外
部記憶装置を含むアドレスの範囲外の前記アドレス範囲
へ変換し、前記キャッシュメモリは、さらに、前記デー
タテーブルルックアサイドバッファおよびアドレス変換
器からアドレスを受信するデータアクセスアドレス入力
ポートを含む、マイクロプロセッサ。
【0042】(10) 第1項記載のマイクロプロセッ
サであって、さらに、外部記憶装置から読み出されるデ
ータの命令フェッチアドレスを発生する命令フェッチユ
ニットと、前記モード入力に接続され、前記命令フェッ
チユニットにより出力される前記命令フェッチアドレス
出力を受信する命令テーブルルックアサイドバッファお
よびアドレス変換器と、を含み、前記命令テーブルルッ
クアサイドバッファおよびアドレス変換器は、(1)前
記命令フェッチユニットから受信する前記命令フェッチ
アドレスを仮想アドレスから物理的アドレスへ変換し、
(2)前記システム管理モード入力信号が前記正規モー
ドを示す場合には前記命令フェッチユニットから受信す
る前記命令フェッチアドレスを変化させずに通し、
(3)前記システム管理モード入力信号が前記システム
管理モードを示す場合には前記命令フェッチユニットか
ら受信する前記命令フェッチアドレスを外部記憶装置を
含むアドレスの範囲外の前記アドレス範囲へ変換し、前
記キャッシュメモリは、さらに、前記命令テーブルルッ
クアサイドバッファおよびアドレス変換器からアドレス
を受信する命令アクセスアドレス入力ポートを含む、マ
イクロプロセッサ。
【0043】(11) 正規モードおよびシステム管理
モードを有するコンピュータシステムにおけるデータの
キャッシング方法であって、該方法は、正規モードであ
れば受信したアドレスを変化させずに通すステップと、
システム管理モードであれば受信したアドレスを外部記
憶装置を含むアドレスの範囲外の所定のアドレス範囲へ
変換するステップと、前記変化させないアドレスもくし
は前記変換したアドレスに対応するアドレスタグにより
キャッシュメモリ内の受信データをキャッシングするス
テップと、を含むデータキャッシング方法。
【0044】(12) 第12項記載の方法であって、
前記所定のアドレス範囲はコンピュータシステムの製作
時に固定されている方法。
【0045】(13) 第11項記載の方法であって、
前記所定のアドレス範囲はコンピュータシステムの製作
に続いて変更することができる方法。
【0046】(14) 第11項記載の方法であって、
さらに、前記システムキャッシュ線ライトバックアドレ
スが外部記憶装置を含むアドレスの範囲外の前記アドレ
ス範囲内でなければ、キャッシュ線ライトバックアドレ
スを変化させずに通すステップと、前記システムキャッ
シュ線ライトバックアドレスが外部記憶装置を含むアド
レスの範囲外の前記アドレス範囲内であれば、前記キャ
ッシュ線ライトバックアドレスを前記所定のアドレス範
囲へ変換するステップと、前記キャッシュ線ライトバッ
クアドレスが前記所定のアドレス範囲内であれば、シス
テム管理モードを信号で伝えるステップと、を含む方
法。
【0047】(15) 第14項記載の方法であって、
外部記憶装置を含むアドレスの範囲外の前記アドレス範
囲はコンピュータシステムの製作時に固定されている方
法。
【0048】(16) 第14項記載の方法であって、
外部記憶装置を含むアドレスの範囲外の前記アドレス範
囲はコンピュータシステムの製作に続いて変更すること
ができる方法。
【0049】(17) マイクロプロセッサは正規のシ
ステムメモリとシステム管理モードメモリのミックスさ
れたものをキャッシュすることができる内部キャッシュ
メモリ160を有している。アドレス変換器115は、
システム管理モード入力信号が正規モードを示す場合に
は、アドレスを変化させずに通す。アドレス変換器11
5は、システム管理モードにおいて、アドレスを外部記
憶装置により占有されるアドレスの範囲外のアドレス範
囲へ変換する。キャッシュメモリ160がアドレス変換
器115に接続されていて、アドレス変換器115から
受信するアドレスに対応するアドレスタグによりデータ
をキャッシングする。好ましくは、アドレス変換器11
5はアドレスを所定のアドレス範囲と比較するアドレス
範囲比較器を含んでいる。アドレス変換115は仮想メ
モリから物理的メモリへのアドレス変換と組み合わせる
ことができる。逆アドレス変換器120がキャッシュ線
ライトバックを処理する。逆アドレス変換器120は、
変換されたアドレスを変換されたアドレス範囲と比較す
る逆アドレス比較器を含み、それはキャッシュ線ライト
バックアドレスが変換されたアドレス範囲内である場合
に外部システムへ一致信号を発生する。マイクロプロセ
ッサはキャッシュメモリの多レベルを含むことができ、
プロセッサコアにより近いキャッシュはシステム管理モ
ードにエントリおよびエグジットする時にフラッシュさ
れる。アドレス変換133,143および逆アドレス変
換135,145は単一化されたレベル2キャッシュ1
60およびレベル1データキャッシュ131もしくはレ
ベル1コードキャッシュ141からの転送に使用され
る。
【図面の簡単な説明】
【図1】I/Oデバイス、正規システムメモリおよびシ
ステム管理メモリを例示するシステム管理モードをサポ
ートするコンピュータシステムのブロック図。
【図2】図1に例示するような代表的なコンピュータシ
ステムのシステムメモリアドレスマップ。
【図3】本発明に従ったシステム管理メモリをキャッシ
ングするアドレス変換技術のブロック図。
【図4】図3に例示するアドレス変換器の第1の実施例
のブロック図。
【図5】図3に例示するアドレス変換器の第2の実施例
のブロック図。
【図6】図3に例示するアドレス変換器の第3の実施例
のブロック図。
【図7】図3に例示するアドレス変換器の第4の実施例
のブロック図。
【図8】第1の実施例に従って修正された図7に例示す
るアドレス変換器の一部のブロック図。
【図9】図3に例示する逆アドレス変換器の第1の実施
例のブロック図。
【図10】図3に例示する逆アドレス変換器の第2の実
施例のブロック図。
【図11】図3に例示する逆アドレス変換器の第3の実
施例のブロック図。
【図12】図3に例示する逆アドレス変換器の第4の実
施例のブロック図。
【図13】多レベルキャッシュを使用するのに適した別
の実施例に従ったシステム管理メモリをキャッシングす
るアドレス変換技術のブロック図。
【図14】本発明のアドレス変換が仮想アドレスから物
理的アドレスへの変換と組み合わされる別の実施例のブ
ロック図。
【符号の説明】
10 パーソナルコンピュータシステム 12 システムデータバス 14 CPU 16 内部キャッシュ 18 システムメモリ 20 SMRAM 22 ビデオメモリ 24 ディスクドライブコントローラ 26 ネットワークコントローラ 28 システムアドレスバス 30 CPUコントロールバス 32 メモリコントローラ 34 メモリアドレスバス 38 バスコントローラ 40 バッファドアドレスバス 42 バッファドデータバス 110 インターフェイスユニット 115,133,143 アドレス変換器 117 データテーブルルックアサイドバッファおよび
アドレス変換器 119 命令テーブルルックアサイドバッファおよびア
ドレス変換器 120,135 逆アドレス変換器 130 ロード/ストアユニット 131 レベル1データキャッシュユニット 140 命令フェッチユニット 141 レベル1コードキャッシュユニット 160 レベル2キャッシュユニット 210 アドレス範囲比較器 211 高範囲レジスタ 213 低範囲レジスタ 220 ANDゲート 221 変換アドレスレジスタ 223 マルチプレクサ 231 XORゲート 233,237 ビットワイズOR 235 アドレスレジスタ 236 ビットワイズANDゲート 239 ビットワイズXORゲート

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 外部記憶装置および周辺装置に接続され
    るようにされたマイクロプロセッサであって、該マイク
    ロプロセッサは、外部記憶装置および周辺装置とデータ
    の双方向交換を行うデータポートと、外部記憶装置およ
    び周辺装置へアドレスを供給するアドレスポートと、外
    部記憶装置および周辺装置からのシステム管理モード入
    力信号用のモード入力であって、前記システム管理モー
    ド入力信号は正規モードもくしはシステム管理モードを
    示すモード入力と、前記モード入力に接続され、アドレ
    ス入力を受信するアドレス変換器であって、前記アドレ
    ス変換器は(1)前記システム管理モード入力信号が前
    記正規モードを示す場合には前記受信したアドレスを変
    化させずに通し(2)前記システム管理モード入力信号
    が前記正規システム管理モードを示す場合には前記受信
    したアドレスを外部記憶装置を含むアドレス範囲外のア
    ドレス範囲へ変換するアドレス変換器と、前記データポ
    ートおよび前記アドレス変換器に接続され前記アドレス
    変換器から受信するアドレスに対応するアドレスタグに
    より前記データポートから受信するデータをその中に格
    納するキャッシュメモリと、を含むマイクロプロセッ
    サ。
  2. 【請求項2】 正規モードおよびシステム管理モードを
    有するコンピュータシステムにおけるデータのキャッシ
    ング方法であって、該方法は、正規モードであれば受信
    したアドレスを変化させずに通すステップと、システム
    管理モードであれば受信したアドレスを外部記憶装置を
    含むアドレスの範囲外の所定のアドレス範囲へ変換する
    ステップと、前記変化させないアドレスもくしは前記変
    換したアドレスに対応するアドレスタグによりキャッシ
    ュメモリ内の受信データをキャッシングするステップ
    と、を含むデータキャッシング方法。
JP9297069A 1996-10-29 1997-10-29 マイクロプロセッサおよびコンピュータシステムにおけるデータのキャッシング方法 Pending JPH10143431A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US2938396P 1996-10-29 1996-10-29
US029383 1996-10-29

Publications (1)

Publication Number Publication Date
JPH10143431A true JPH10143431A (ja) 1998-05-29

Family

ID=21848725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9297069A Pending JPH10143431A (ja) 1996-10-29 1997-10-29 マイクロプロセッサおよびコンピュータシステムにおけるデータのキャッシング方法

Country Status (2)

Country Link
US (1) US5954812A (ja)
JP (1) JPH10143431A (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69738902D1 (de) * 1997-06-27 2008-09-25 Bull Sa Busschnittstellebrücke zwischen einem Systembus und Lokalbussen mit Lokaladressenübersetzung für mittels Adressenraum programmierbaren Systemraumzugriff
US6122708A (en) * 1997-08-15 2000-09-19 Hewlett-Packard Company Data cache for use with streaming data
US6405307B1 (en) * 1998-06-02 2002-06-11 Intel Corporation Apparatus and method for detecting and handling self-modifying code conflicts in an instruction fetch pipeline
US6418498B1 (en) * 1999-12-30 2002-07-09 Intel Corporation Integrated system management memory for system management interrupt handler independent of BIOS and operating system
JP3760767B2 (ja) * 2000-12-21 2006-03-29 株式会社日立製作所 ネットワーク管理装置及びネットワーク管理方法
US6823421B2 (en) * 2002-04-19 2004-11-23 Intel Corporation Method, apparatus, and system for maintaining conflict-free memory address space for input/output memory subsystems
US7107405B2 (en) * 2003-05-30 2006-09-12 Intel Corporation Writing cached data to system management memory
US7151709B2 (en) * 2004-08-16 2006-12-19 Micron Technology, Inc. Memory device and method having programmable address configurations
KR20140085756A (ko) * 2012-12-27 2014-07-08 에스케이하이닉스 주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
US10078597B2 (en) * 2015-04-03 2018-09-18 Via Alliance Semiconductor Co., Ltd. System and method of distinguishing system management mode entries in a translation address cache of a processor
US10628329B2 (en) * 2016-04-26 2020-04-21 Nxp Usa, Inc. Data processing system having a coherency interconnect
CN110825312B (zh) * 2018-08-10 2023-06-23 昆仑芯(北京)科技有限公司 数据处理装置、人工智能芯片及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475829A (en) * 1993-03-22 1995-12-12 Compaq Computer Corp. Computer system which overrides write protection status during execution in system management mode
US5603004A (en) * 1994-02-14 1997-02-11 Hewlett-Packard Company Method for decreasing time penalty resulting from a cache miss in a multi-level cache system
US5630087A (en) * 1994-11-02 1997-05-13 Sun Microsystems, Inc. Apparatus and method for efficient sharing of virtual memory translations
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
US5764999A (en) * 1995-10-10 1998-06-09 Cyrix Corporation Enhanced system management mode with nesting

Also Published As

Publication number Publication date
US5954812A (en) 1999-09-21

Similar Documents

Publication Publication Date Title
KR100316505B1 (ko) 프로세서에 데이타를 제공하기 위한 캐시 및 캐시로부터 프로세서에 데이타를 제공하기 위한 방법
US5752275A (en) Translation look-aside buffer including a single page size translation unit
KR920005280B1 (ko) 고속 캐쉬 시스템
EP0902922B1 (en) Method and apparatus for caching system management mode information with other information
US6742104B2 (en) Master/slave processing system with shared translation lookaside buffer
US6453388B1 (en) Computer system having a bus interface unit for prefetching data from system memory
US6920521B2 (en) Method and system of managing virtualized physical memory in a data processing system
US20040117587A1 (en) Hardware managed virtual-to-physical address translation mechanism
US20040117588A1 (en) Access request for a data processing system having no system memory
JP3669555B2 (ja) 可変キャッシュ・サイズのための改良されたキャッシュ・ディレクトリ・アドレシング方法及び装置
JP2008542948A (ja) コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ
US5619677A (en) Data processing system with an enhanced cache memory control
US12038840B2 (en) Multi-level cache security
US6742103B2 (en) Processing system with shared translation lookaside buffer
US5638532A (en) Apparatus and method for accessing SMRAM in a computer based upon a processor employing system management mode
US7308557B2 (en) Method and apparatus for invalidating entries within a translation control entry (TCE) cache
US5954812A (en) Apparatus for caching system management memory in a computer having a system management mode employing address translation
US6751700B2 (en) Date processor and storage system including a set associative cache with memory aliasing
US20040117591A1 (en) Data processing system having no system memory
GB2386441A (en) Bus interface selection by page table attributes
US6049852A (en) Preserving cache consistency in a computer system having a plurality of memories with overlapping address ranges
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
KR19980081314A (ko) 프로세서 버스로의 캐쉬 연산의 요구-기반 발생 방법 및 장치
US20040024792A1 (en) Write back policy for memory
CN113849262A (zh) 用于无需复制而在虚拟机之间移动数据的技术