JP2001202287A - 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法 - Google Patents

改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法

Info

Publication number
JP2001202287A
JP2001202287A JP2000335192A JP2000335192A JP2001202287A JP 2001202287 A JP2001202287 A JP 2001202287A JP 2000335192 A JP2000335192 A JP 2000335192A JP 2000335192 A JP2000335192 A JP 2000335192A JP 2001202287 A JP2001202287 A JP 2001202287A
Authority
JP
Japan
Prior art keywords
cache
instructions
memory
instruction
data
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
JP2000335192A
Other languages
English (en)
Inventor
Shinichi Yoshioka
ヨシオカ・シンイチ
Chopra Rajesh
ラジェシュ・チョプラ
Atsushi Hasegawa
ハセガワ・アツシ
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23625836&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2001202287(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2001202287A publication Critical patent/JP2001202287A/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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

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

Abstract

(57)【要約】 【課題】 後の世代のマイクロプロセッサの発展に適合
すべく容易にスケーリングできる技術を提供する。 【解決手段】 MMU110は、そのMMUが後の世代
のプロセッサ100の発展に適合するようにより用意に
スケーリングされ得るような方式で提供される。MMU
リソースは、好ましくは、物理及び論理アドレス空間か
ら分離した構成レジスタ空間においてアクセスされ、そ
してそのようなMMU構成レジスタはより容易に将来の
スケーリングされるバージョンに適合するように具体化
される。MMU構成レジスタ・コンテンツに対してアク
セスし、変更し、そして制御する命令が提供される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマイクロプロセッサ
及び同様の計算型装置に関し、より詳細にはマイクロプ
ロセッサや、改善されたメモリ管理及びキャッシュ能力
を具備する同様な計算型装置に関しており、特に仮想キ
ャッシュ・メモリを含むものに関する。
【0002】
【従来の技術】マイクロプロセッサ、データ・プロセッ
サ、マイクロコンピュータ、マイクロコントローラ、並
びに、他の計算型装置(ここでは全般的に「マイクロプ
ロセッサ」と単に呼称する)は、しばしば、メモリ管理
ユニット(MMU)や1つ或はそれ以上のキャッシュ・
メモリを含んで構成される。この業界においては公知な
ように、このMMUは論理的又は仮想的なアドレス空間
(仮想メモリ)を物理アドレス空間(メイン・メモリ)
からの分離を管理することによってマイクロプロセッサ
能力を典型的には改善しており、論理アドレスと物理ア
ドレスと間の翻訳又は変換を試す、変換索引バッファ
(TLB)(Translation Lookside Buffer)若しくは
他のリソースをしばしば含む。更に当業界では公知なよ
うに、キャッシュ・メモリは最後にアクセスされたメモ
リ箇所の内容のコピーを維持し、もしそのキャッシュ内
の任意のアドレスが再度アクセスされた場合には、その
データをプロセッサへ非常に迅速に提供可能である。
【0003】一般にキャッシュは以下の3つのタイプに
分割される:(1)物理的に索引(インデックス)付け
られ物理的にタグ付けされたもの(PIPT);(2)
仮想的に索引付けられ物理的にタグ付けされたもの(V
IPT);そして(3)仮想的に索引付けられ仮想的に
タグ付けされたもの又は「仮想キャッシュ」である。最
も共通して使用されるキャッシュ形態はVIPTキャッ
シュである。このVIPTキャッシュにおいて、仮想ア
ドレスはそのキャッシュ内への索引を選択するために使
用される。次いで物理タグが、物理ページ番号及びTL
Bによって提供されたサイズ情報から引き出される物理
アドレスの一部と比較される。仮想キャッシュは仮想ア
ドレスを用いてキャッシュ内へ索引付けする(VIPT
キャッシュに類似)が、そのキャッシュ内に存在するタ
グも仮想的である。仮想のタグ・マッチの場合には、デ
ータは何らのTLBアクセスもなく、即座に返送され
る。この理由のために、仮想キャッシュはVIPTキャ
ッシュと比べてより高速なキャッシュ・アクセスタイム
となる傾向にある。従って、仮想キャッシュでより高い
周波数を達成することが可能となる。
【0004】
【発明が解決しようとする課題】そのような仮想キャッ
シュの使用が提案されてきている一方で(引用すること
で本明細書に組み込まれている米国特許5,930,8
33号参照)、多数の問題が生じ得る。例えば、仮想キ
ャッシュは仮想−物理のアドレス翻訳中に遅延を被るこ
とがないので非常に高速なアクセスタイムを有する。し
かしながら、仮想キャッシュは、シノニム問題としばし
ば呼称される一貫性問題を背負い込む傾向にある。これ
は、2つの異なる仮想アドレスが唯一の物理アドレスを
指示する場合、或は、異なるプロセスIDを備える同一
仮想アドレスが唯一の物理アドレスを指示する場合に生
ずる。この米国特許第5,930,833号はシノニム
問題に対処するため、また別な方法でマイクロプロセッ
サを改善するための特定の戦略を提案しているが、MM
U、TLB、キャッシュ、仮想キャッシュ等々を組み入
れているマイクロプロセッサにおける更なる一層の改善
の必要性が存在している。
【0005】従って、本発明の目的は、MMU/TLB
/キャッシュ及び/又は本明細書に記載した長所及び利
点、並びに以下に詳述する説明に開示され、及び(又
は)以下の説明から明白である長所及び利点を備えたM
MU/TLB/キャッシュ及び(又は)仮想キャッシュ
を有するマイクロプロセッサを提供することにある。
【0006】
【課題を解決するための手段】本発明は、改善されたM
MU、TLB、キャッシュ、仮想キャッシュを利用して
の、マイクロプロセッサやマイクロプロセッサを操作す
る方法を提供する。
【0007】本発明に従えば、MMUは、そのMMUが
後の世代のマイクロプロセッサの発展に適合するように
より容易にスケーリングされ得るような方式で提供され
る。MMUリソースは、好ましくは、物理及び論理アド
レス空間から分離した構成レジスタ空間においてアクセ
スされ、そしてそのようなMMU構成レジスタはより容
易に将来のスケーリングされるバージョンに適合するよ
うに具現化される。MMU構成レジスタ・コンテンツに
対してアクセスし、変更し、そして制御する命令が好ま
しくは提供される。
【0008】好適な実施の形態に従ったMMUは、キャ
ッシュ或は仮想キャッシュに特にリンクした操作を行
う。そのような好適な実施の形態において、キャッシュ
或は仮想キャッシュは、特定の命令が依然そのキャッシ
ュ構成レジスタにアクセスしているにもかかわらず(キ
ャッシュ・リソースは好ましくは別個の構成レジスタ空
間においてもアクセスされる)、好ましくは、そのMM
Uがディスエーブルされた際に凍結されてバイパスされ
る。
【0009】本発明に従ったMMUはより最適化された
方法で仮想キャッシュ・メモリによっても操作する。1
つの例示として、キャッシュにおける対応する入力そし
て望ましくはキャッシュ許可が自動的に拡大され得るよ
うにMMU/TLBにおける許可がより広いと判明する
と、許可はキャッシュ内において拡大されることができ
る。
【0010】また、本発明に従えば、MMUと共にキャ
ッシュは後の世代のマイクロプロセッサの発展に適合す
べくより容易にスケーリングされるように提供され得
る。キャッシュ・リソースも物理及び論理アドレス空間
から分離した構成レジスタ空間内にアクセスされ、その
ようなキャッシュ構成レジスタは将来のスケーリングさ
れたバージョンより容易に適合するように具現化され
る。そのキャッシュ構成レジスタ・コンテンツに対して
アクセスし、変更し、そして制御する命令は好ましくは
提供される。
【0011】好適な実施の形態に従えば、MMU及びキ
ャッシュは仮想及び非仮想キャッシュ設計で各種バージ
ョンにより容易にイネーブルするように具現化される。
【0012】キャッシュ、キャッシュを伴うマイクロプ
ロセッサをより最適に作動するために、複数の命令が提
供されて、キャッシュ・ロッキング及びキャッシュ無効
/フラッシュ/パージ操作をより望ましい方法でイネー
ブルする。一般に本発明に従えば、キャッシュ及び特に
仮想キャッシュはより容易に具現化され、管理され、そ
して、構成レジスタ、キャッシュ制御命令、並びに、以
下により詳しく説明される他の手段を用いて制御され
る。
【0013】本発明は添付図面との組合せで行われる下
記の特定の好適な実施の形態の説明でより完全に理解さ
れ得る。
【0014】
【発明の実施の形態】本発明は特定の好適な実施の形態
及び特定の他の実施の形態を参照してより詳細に説明さ
れ、それらは本発明の好適な実施の形態の更なる理解に
役立ち得る。理解して頂きたいことは、当業者には正し
く認識して頂けるように、ここで開示される様々な実施
の形態の特定の特徴はそのような他の特徴(好適な実施
の形態で図示されたもの等)と便宜的に組み合わせるこ
とができる一方で、特定の特徴(MMU/TLB或はキ
ャッシュ/仮想キャッシュ等々)は好適な実施の形態に
おいて例示された全般的な組合せとは分離した有益性及
び有用性を有することである。そのような組合せから分
離したそのような特徴の使用はここで開示される発明の
範囲内に入ることが明白に意図されている。また理解さ
れるように、特定の典型的な好適な実施の形態は、アド
レス、命令フィールド、レジスタ及びその類、キャッシ
ュ、TLB、並びに、ページ・サイズ等々におけるビッ
ト数等の、特定の数値的な量と云うことに関して説明さ
れる。理解されるように、そのような好適な典型的な数
値的属性は、一般的には、本発明をそのような数値的属
性に特別に限定するようには解釈されるべきではない。
【0015】次に図1を参照すると、単一チップのマイ
クロプロセッサから好ましくは構成されるプロセッサ1
00が図示されるが、他の実施の形態ではワンチップ以
外のより多数のチップで実現可能である。プロセッサ1
00はCPUコア102を含み、このCPUコア102
は、数ある他の構成要素の中でも、実行リソース(命令
実行パイプライン、算術/論理ユニット、汎用(多目
的)および、他のレジスタ、制御論理、バス・インタフ
ェース・ユニット等々)、MMU110(好ましくは単
一TLB或はマルチTLBを含む)、並びに、キャッシ
ュ・メモリ111を含む。留意すべきことは、図1は個
別の命令及びデータのTLBと個別の命令及びデータの
キャッシュを図示する一方で、本発明の様々な実施の形
態は、この明細書の他の場所でより完全に説明するよう
な他のMMU/キャッシュ構成を利用する。当業者によ
って理解されるように、CPUコア102の各種構成要
素は、メモリからの命令及びデータのフェッチ、フェッ
チした命令の前処理、実行されるべき命令の順序付け/
スケジューリング、それら命令の実行及び(又は)例外
の処理、メモリ・トランザクションの管理及び外部メモ
リ、周辺デバイス等々を含む外部回路装置とのインタフ
ェースを含む機能を実行する(或は、機能の性能を制御
する)。
【0016】CPUコア102は、主としてバス104
を介して、プロセッサ100の他の構成要素と通信す
る。特定の好適な実施の形態において、バス104は高
速ネットワーク型バスから構成され、好ましくは、パケ
ットに基づくデータ伝送技術を用いて、ここでは「スー
パー・ハイウェイ」と呼称される。バス104は、例え
ば、CPUコア120を、ダイレクト・メモリ・アクセ
ス・コントローラ(「DMAC」)106、外部メモリ
・インタフェース/コントローラ120、並びに、PC
H(周辺構成要素ハイウェイ)ブリッジ114に結合す
ると共に、周辺バス112を介して、様々な周辺モジュ
ール108に結合しており、該周辺モジュールとして
は、例えば、プログラマブル入力/出力(「PIO」)
回路、リアルタイム・クロック(「RTC」)、タイマ
・ユニット(「TMU」)、FIFOとのシリアル通信
インタフェース(「SCIF」)、割り込みコントロー
ラ(「INTC」)、並びに、読取り専用メモリ(「R
OM」)を含む。外部メモリ装置、たとえば(ダイナミ
ック・ランダム・アクセス・メモリ(「DRAM」)
は、好ましくは、メモリ・バス122を介して外部メモ
リ・インタフェース/コントローラ120に結合されて
いる。1つ又は複数の外部装置128は、好ましくはP
CI型(周辺構成要素相互接続)装置として知られるも
のから構成されており(PCI型装置は単なる例示)、
バス124を介してインタフェース118(これも好ま
しくはPCI型インタフェース)に結合されている。留
意されるべきことは、外部メモリ126はしばしば「主
メモリ」として呼称され得ることであり、そして更に留
意されることは、そのような主メモリの幾つか或は全て
はCPUコア102と同一チップ上に実装されるか、或
は、外部メモリ内に実装されるか、若しくは、それら双
方に実装され得ることである。
【0017】留意されるべきことは、図1の全システム
・レイアウトは模範例又は典型例であることである。特
に留意されるべきことは、代替実施の形態において、P
CHバス116及びPCHブリッジ114は設けられ
ず、その代わりに要素118が、事実上、バス104及
びPCIバス124間にブリッジしているPCIブリッ
ジ型装置であり、それにPCI型装置(装置128等)
の1つ或は複数が接続されている。本発明の範囲内にお
ける他の変形例は(好ましくは)外部或は内部ROM
(或はFLASH型メモリ)を含み、それは別個のイン
タフェースを介してバス104に結合されている(それ
は、周辺モジュール108のROMの代わりとなるか、
或は、そのROMに追加されることが可能である)。そ
のような変形例も本発明の範囲内である。
【0018】CPUコア102は、この技術で知られて
いる他のCPUコアの場合のように、命令を実行して、
広範な種類の所望された機能を遂行する。そのようなC
PUコアは典型的にはステータス・レジスタ(「S
R」)を含み、SRは当該CPUコアによって実行され
る命令の動作を制御するか或はそれに影響するフィール
ド(field) を一般的には含む制御レジスタである。特定
の好適な実施の形態に利用されるSRの典型的なレイア
ウトは図2に図示されている。
【0019】典型的な好適な実施の形態は、「r」フィ
ールドによって例示される1つ或は多数の予約ビットを
含むSRを利用する。予約ビットは追加機能或は命令セ
ット/命令セット動作変化が将来追加されるようにイネ
ーブルする。好ましくは、CPUコア102は複数の命
令の内の少なくとも第1セットを実行し、それら命令の
第1セットは一般的なフェッチ、デコード、実行形式で
行われる。更に好ましくは、CPUコア102は前記第
1セット命令を用いて命令の第2セットをエミュレート
(模倣)する。好適な実施の形態において、Sビット,
Qビット,Mビットは好ましくは前記第2セット命令の
エミュレーション(模倣)を支援すべく使用され、FR
ビット,SZビット,PRビットは、好ましくは第2セ
ット命令内に含まれる浮動小数点命令の模倣に対する追
加支援を提供すべく使用される。
【0020】IMASKフィールドは、好ましくは、4
ビット(或は別のビット数)を含んで、CPUコア10
2が割り込みをマスクするための16個の優先レベルの
内の1個にセットされることを可能としている。FDビ
ットは、好ましくは、第1セット命令内に含まれる浮動
小数点命令がイネーブルされたか(クリアされた際)或
はディスエーブルされたか(セットされた際)を制御す
る。ASIDフィールドは、好ましくは、同時に実行さ
れる命令の「スレッド」のアドレス空間識別子(又はア
ドレス空間識別番号)を示し、この明細書の別の場所で
更に説明されているように、メモリ管理ユニットによっ
て使用される。WATCHビットは、好ましくは、ウォ
ッチ点がディスエーブルされたか(クリアされた際)或
はイネーブルされたか(セットされた際)を制御する。
STEPビットは、好ましくは、単一ステッピングがデ
ィスエーブルされたか(クリアされた際)或はイネーブ
ルされたか(セットされた際)を制御する。BLビット
は、好ましくは、例外、トラップ、並びに、割り込みが
許可されたか(クリアされた際)或は阻止(ブロック)
されたか(セットされた際)を制御する。MDビット
は、好ましくは、命令がユーザ・モードで実行されたか
(クリアされた際)或は特権モードで実行されたか(セ
ットされた際)を制御し、データがユーザ・モードで読
取り/書込みが試されるか(クリアされた際)或は特権
モードで読取り/書込みが試される(セットされた
際)。理解されるように、MDビットは命令実行に暗に
影響する。MMUビットは、この明細書の別の場所でよ
り完全に説明されているようにも、該MMUがディスエ
ーブルされたか(クリアされた際)或はイネーブルされ
たか(セットされた際)を好ましくは制御する。
【0021】先に議論されたように好適な実施の形態に
おいて、CPUコア102はプロセッサにおけるメモリ
・トランザクションを管理するMMUを含む。好適な実
施の形態はそのようなMMUを含むが、該MMUの機能
は特定のプロセッサ要件にスケーリング可能であり且つ
それら特定のプロセッサ要件に最も適切になるように構
成され得る。本発明は、具現化又はインプリメンテーシ
ョンによって支援されるメモリ管理構成が特定のプロセ
ッサ要件に合わせられることを可能とするMMU能力を
提供する。好適な実施の形態において、MMU構成は以
下の: ディスエーブル/イネーブル;前記MMUがディスエー
ブルされ(ブート- ストラップ目的等)、イネーブルさ
れる(プログラム実行目的等)ことを可能とする機構; 保護;保護情報をアドレス範囲に関連させて、それらア
ドレス範囲が不適切なアクセスに対して保護されるよう
に試す機構; キャッシュ制御;キャッシュ動作情報をアドレス範囲と
関連させて、そのキャッシュのそれらアドレス範囲に対
する制御を可能とする機構; 有効アドレス空間;CPUに対する命令を実行すること
で試される全てのメモリ・アクセスが有効アドレス空間
内のアドレス向けであること; 物理アドレス空間:CPUによって試されるメモリ・シ
ステムへの全てのメモリ・アクセスが物理アドレス空間
内のアドレス向けであること; 翻訳;翻訳が支援されていない(或はターン・オフされ
ている等の)実施の形態において、有効アドレスが一致
マッピングで物理アドレス内へ向けられる;好ましく
は、そのようなアドレス翻訳が提供されている場合、有
効アドレスの物理アドレスへのマッピングはプログラマ
ブルであること;を含む。
【0022】また好適な実施の形態において、MMUは
異なる複数の具現化例の間で以下のパラメータがスケー
リング/変動されることを可能としており、それらパラ
メータは: 有効アドレス内の実装ビットの数;物理アドレス内の実
装ビットの数; ページ・サイズ;ページ・サイズの数;並びに、それら
の実際のサイズ; キャッシング;支援されたキャッシュ動作の数; 翻訳;支援されるもの或は支援されないもの; 有効アドレス空間の数;そして翻訳記述の組織及びサイ
ズ;である。
【0023】CPUコア102のMMUは、好ましく
は、フレキシブル且つ所望様式でイネーブル及びディス
エーブルされ得る。例えば、パワーオン・リセット又は
マニュアル・リセットの後、好適な実施の形態における
CPUコア102はMMUディスエーブルの状態で実行
をスタートする。MMUのイネーブル/ディスエーブル
の状態はSR制御レジスタを介してアクセスされ得る。
MMUは、先に説明したように、SRのMMUビットを
変更する1つ或はそれ以上の命令を用いてイネーブル或
はディスエーブルされ得る。従って、MMUをイネーブ
ルすること及びディスエーブルすることに対する様々な
シーケンスが好都合な様式で所望通りに利用される。こ
の明細書の別の場所で説明されているように、好適な実
施の形態は有効アドレス及び物理アドレス間のマッピン
グを支援するが、実施の形態はそのようなマッピングを
支援しなくてもよい。
【0024】CPUコア102は、図3Aに図示された
物理アドレス空間における物理アドレスを用いて物理メ
モリ・システムと相互作用する。好適な実施の形態では
単一の物理アドレス空間がある。好適な実施の形態にお
ける合計物理アドレス空間は264バイトを含む。好まし
くは、物理アドレスは符号が付けられておらず、それ故
に[ 0,264] の範囲内で変動し得る。理解されるよう
に、特定の実施の形態は物理アドレス空間の全てを必ず
具現化し得るか或は必ずしも具現化し得ず、提供された
量は複数の具現化例の間で変更し得る。具現化された物
理アドレスのビットの数、即ちnphysは[ 32,6
4] の範囲内となる。これらの具現化されたビットは、
好ましくは、物理アドレスの最下位ビットである。好適
な実施の形態において、64ビット合計物理アドレス空
間の具現化されたサブセットはビット数と同一値(np
hy- 1)まで物理アドレス・セットの上方(64- n
phys)ビットを有し得る。特定の実施の形態におい
て、具現化された物理アドレス空間は合計物理アドレス
空間に符号拡張され得る。具現化された物理アドレス空
間は物理を占有して、図3Aに図示されているような[
0,2nphys-1]の範囲と[ 264- 2nphys-1 ,264] の
範囲内のアドレスから構成され得る。nphysが64
の実施の形態において、この[ 0,264] の単一範囲に
崩壊する。
【0025】また好適な実施の形態において、CPUコ
ア102で試されたメモリ・アクセスは有効アドレス及
びデータ幅で特徴付けられる。合計有効アドレス空間
は、好ましくは、図3Bに図示されるように64ビット
であり、そして好ましくはロード/ストア(記憶)の命
令での有効アドレス計算は64ビット精度で実行され
る。64ビット有効アドレス空間の組織は物理アドレス
空間のものと類似し得て、そして好ましくは264バイト
を含む。そのような実施の形態で、有効アドレスは符号
が付けられずに、[ 0,264] の範囲内で変動し得る。
【0026】本発明の特定の実施の形態は有効アドレス
空間の全てを必ず具現化し得るか、或は、それらを必ず
しも具現化し得ず、提供された量は具現化例間で変動し
得る。具現化された有効アドレスにおけるビットの数は
図3Bにおけるneffとして引用例される。もし具現
化例が翻訳を支援しなければ、neffはnphysと
同一値を有し得る。もし具現化例が翻訳を支援すれば、
neffは[ nphys,64] の範囲内となる。その
ような実施の形態において、具現化された有効アドレス
空間は具現化された物理アドレス空間の全てをマッピン
グするに常に充分である。これらの具現化されたビット
は、好ましくは、有効アドレスの最下位ビットである。
64ビット合計有効アドレス空間の具現化されたサブセ
ットは、図3Bに図示されたように、ビット数(nef
f−1)と同一値までの有効アドレス・セットの上方
(64−neff)ビットを有し得る。特定の実施の形
態において、具現化された有効アドレス空間は合計有効
アドレス空間に符号拡張され得て、具現化された有効ア
ドレス空間は[ 0,2neff-1] 及び[ 264−2neff-1
64] の範囲内で有効アドレスを占有し得る。neff
が64である場合の実施の形態において、これは単一範
囲[ 0,264] に崩壊する。
【0027】翻訳を支援する具現化例に対して、有効ア
ドレスから物理アドレスまでへのマッピングは、好まし
くは、以下に概説されるようになる。MMUがディスエ
ーブルされると、マッピング・アルゴリズムは、好まし
くは、全ての具現化に対して共通である。MMUがイネ
ーブルされると、マッピング・アルゴリズムは具現化例
が翻訳を支援するか否かに依存することになる。CPU
が有効アドレスにアクセスを試すと、マッピングは好ま
しくは以下のように達成される。
【0028】1.有効アドレスは妥当性又は有効性がチ
ェックされる。妥当性チェックは具現化された有効アド
レス空間の量を変更することによる具現化例間での互換
性を増大する。もしneffが64であれば、有効アド
レスは常に妥当又は有効であり、不当/過誤アドレス例
外は提起されない。さもなければ、もし有効アドレスは
[ 2neff-1,264−2neff-1] の範囲内であれば、有効
アドレスは無効ないし不当として検出されて、アドレス
・エラー例外が提起される。もし有効アドレスが妥当で
あれば、マッピングは続行する。
【0029】2.もしMMUがディスエーブルされれ
ば、有効アドレスはこの明細書の別の場所で説明されて
いるように翻訳無しで直に物理アドレスへ変換又はコン
バートされる。
【0030】3.もしMMUがイネーブルされ且つMM
Uが翻訳を支援しなければ、有効アドレスは、好ましく
は、翻訳無しに、直に物理アドレスへコンバートされ
る。そのようなマッピングはこの明細書の別の場所でよ
り詳細に説明される。留意されるべきことは、アドレス
翻訳はないかもしれないが、様々な特性がアクセスに関
連され得る。
【0031】4.もしMMUがイネーブルされ且つMM
Uが翻訳を支援しなければ、有効アドレスは、好ましく
は、翻訳プロセスによって物理アドレスへコンバートさ
れる。この翻訳機構は、好ましくは、多重的な有効アド
レス空間を支援する。各有効アドレス空間が典型的には
異なるプロセスと関連されている。有効アドレス空間
は、この明細書の別の場所でより詳細に説明されている
ように、アドレス空間識別子(「ASID」)で区別さ
れる。
【0032】好適な実施の形態において、アドレス空間
に属性を関連させる細分化はページである。好ましく
は、多重ページ・サイズは支され得て、異なるページ・
サイズの幾つか或は全ては同時に使用中となり得る。ペ
ージ・サイズは常に2の累乗、即ち2n であり、nは[
12,nphys] の範囲内で変動する。特定の好適な
実施の形態における最も小さい可能性があるページ・サ
イズは(例えば)、4キロバイトであり、最も大きい可
能性があるページ・サイズは物理アドレス空間を正確に
満たす。メモリ内のページは常に、そのページ・サイズ
に整合するアドレスで始まらなければならない。
【0033】物理アドレス空間は複数のページに仕切ら
れる。好ましくは、所与のページ・サイズ、即ち2n
対して、物理アドレスのビット0からn−1はそのペー
ジ内のバイト索引を表し、ビットnからnphys−1
は物理ページ数(PPN)を表す。有効アドレス空間も
複数のページに仕切られる。もし支援されていれば、翻
訳情報は、各有効ページに関連されている。所与のペー
ジ・サイズ、即ち2nに対して、有効アドレスのビット
0からn−1はそのページ内のバイト索引を表し、ビッ
トnからneff−1は有効ページ数(EPN)を表
す。命令ストリームによって試された各メモリ・アクセ
スは、好ましくは、8バイトの境界に整合(アライメン
ト)されたメモリの8バイトのグレイン又は粒子(grai
n) 内に完全に含まれる。これが意味することは、アク
セスがページ境界を跨っていないことであり、各アクセ
スは単一ページ内に完全に含まれるべきである。
【0034】本発明の特定の実施の形態にとって特に重
要なことは、MMU及びキャッシュはメモリ空間を介し
てはアクセスされないが、別個の構成レジスタ空間を介
してアクセスされることである。好適な実施の形態にお
いて、構成空間は232個の64ビット構成レジスタ又は
箇所を図3Cに図示されるように含む(再度、本発明は
任意の特定数或はサイズの構成レジスタ等に特に限定さ
れない)。留意されるべきことは、構成空間はメモリ・
アドレス空間とは無関係であることである。構成空間は
翻訳されず、また汎用のレジスタを他の汎用レジスタ或
はメモリ等々からロードする一般的なロード及びストア
(記憶)命令によってアクセスされない。構成空間にお
けるレジスタ/箇所は、好ましくは、バイト・アドレス
されないが、むしろ構成番号によってアドレスされる。
表示CFG[ i] は第i番目の64ビット構成レジスタ
を呼称すべく使用され得る。好適な実施の形態におい
て、構成レジスタは、MMU及びキャッシュ等のCPU
コア102の具現化依存部を大きく構成すべく有益に使
用される。
【0035】好適な実施の形態において、構成レジスタ
は2つの命令を用いてアクセスされる。命令GETCF
G(再度、汎用のロード/記憶命令ではない)は構成レ
ジスタから汎用レジスタ)への64ビット・データの転
送を実行する。より詳細には、GETCFG命令は、好
ましくは、構成レジスタのコンテンツを一般レジスタR
d内へ移動する。ソース構成レジスタは、好ましくは、
別の一般レジスタRmのコンテンツを(好ましくは)6
ビット符号付きに付加することで識別される。命令PU
TCFGは64ビット・データの汎用レジスタから構成
レジスタへの転送を実行する。より詳細には、PUTC
FG命令は一般レジスタRyのコンテンツを構成レジス
タへ移動する。宛先構成レジスタは別の一般レジスタR
mのコンテンツを(好ましくは)6ビット符号付き即値
に付加することで識別される。
【0036】GETCFG及びPUTCFG命令の双方
に対して、構成レジスタは、好ましくは、オフセット値
(好ましくは即値として提供されている)を伴う基本値
(好ましくはレジスタ内に提供されている)を付加する
ことで識別される。好適な実施の形態においてGETC
FG及びPUTCFGは特権付き命令であり、特権モー
ドで実行される。これらの2つの命令の何れかをユーザ
・モードで実行する試みは予約命令例外となる。不定構
成レジスタを読取ることは、好ましくは、不定値とな
る。不定構成レジスタを書込むことは同様に不定動作に
到る可能性がある。代替実施の形態において、他の条件
の結果として例外が提起されるようになり得る。
【0037】留意されるべきことは、特定の先行技術に
係るプロセッサでは、そのようなTLBリソースにアク
セスするために特別な命令が使用され得ることである
(Write TBLエントリ型の命令等)。本発明に従った
PUTCFG型の命令は構成レジスタ空間と組み合わさ
れて、単一命令をイネーブルし得て採用されるべき構成
レジスタを書込む動作となり、よってTLB(及びキャ
ッシュ)リソースですら第2プロセッサにスケーリング
されるか或は変化する可能性があり、新しい動作を伴う
新命令が定義される必要性がなく、オリジナルPUTC
FG型命令動作もその第2プロセッサ等に使用可能とな
る。
【0038】先に議論されたようにMMU及びキャッシ
ュのリソースは構成空間内へマッピングされる。好適な
実施の形態におけるMMUに対する構成レジスタは次に
更に説明される。
【0039】図4A及び図4Bは、本発明の好適な実施
の形態で利用されている典型的なMMU構成レジスタを
図示している。「r」フィールドは予約ないし保留ビッ
トを示している。MMU構成レジスタの他のフィールド
は、ここではPTEH及びPTELと呼称され、図4C
内に要約されて、この明細書の別の場所でより詳細に議
論される。好適な実施の形態において、PTEH及びP
TEL構成レジスタは複数のページ・テーブル・エント
リから成るアレイを提供すべく複製され、そのアレイは
有効アドレスから物理アドレスへの利用可能マッピング
を説明する。
【0040】好適な実施の形態において、各構成レジス
タは64ビット幅であり、2つのそれら構成レジスタが
MMU/TLBの1つのページ・テーブル・エントリを
具現化すべく使用される。留意されるように、利用可能
レジスタの全て及び利用可能フィールドの全てが好適な
実施の形態の全ての変異形で具現化されるわけではな
い。理解されるように、ここで説明されている構成空間
における構成レジスタの使用の他の長所の中でも、第1
プロセッサは1つのMMU構成(構成空間におけるMM
U構成レジスタの適切な選択で)や、構成空間における
レジスタ/箇所で利用可能なアドレス・ビットの第1セ
ットを伴って開発され得る。より詳細には、本発明で
は、MMU(及びキャッシュ特性)は定義され、構成レ
ジスタの使用を介して、フィールド、サイズ及びASI
D等の構成レジスタの数(支援されたプロセッサの数等
々)、有効ページ数、物理ページ数、保護、並びに、第
1プロセッサ及び第2プロセッサの間を第1プロセッサ
から第2プロセッサへ変化可能であって、MMU(及び
キャッシュ)特性がより容易にスケーリングされるか或
は変更されるようになるサイズ・フィールド(即ち、好
ましくは構成レジスタ、例外、好ましくはSH及びVフ
ィールドの殆ど全ての局面)で制御される。第2プロセ
ッサ、おそらく第1プロセッサと同様の少なくとも幾つ
か属性を有するプロセッサは、スケーリングが可能なM
MUを有し得て、そのサイズが追加的な(或はより少な
い)構成レジスタを具現化することで変化可能であり、
保留ないし予約ビットが例えば第2プロセッサで使用可
能であって、より大きなアドレス・フィールドをその構
成レジスタで利用することができる。言い換えれば、そ
のような好適な実施の形態において、スケーリングされ
/可変なMMU特性を具備する追加的なプロセッサは構
成レジスタの所望数を具現化することで(即ち、TLB
におけるページ・テーブル・エントリの異なる数に到
る)、そして、そのMMU/TLBにおいてより大きな
(或はより小さな)アドレス・フィールドを用いること
でより容易に開発され得る。よって、異なっているが多
分関連している特性の1シリーズのマイクロプロセッサ
はより容易に開発され得て、具現化され、そのシリーズ
の様々なマイクロプロセッサに対して望まれたようによ
り容易にスケーリングされたMMU特性を伴う。
【0041】MMUがディスエーブルされた場合のCP
Uコア102の操作に関する更なる説明が以下に提供さ
れる。パワーオン・リセット、マニュアル・リセット、
或は、特別なタイプの例外の後、MMUは自動的にディ
スエーブルされ、CPUコア102はディスエーブルさ
れたMMUに関するコードを実行する。ディスエーブル
されたMMUに関するコードの実行は、一般に、MMU
構成レジスタの状態に拘わらずにより予測可能な動作を
提供する。これが重要な訳は、MMU具現化が多くのプ
ログラマブル・フィールドを含むことができ、これらの
フィールドが電源投入リセット(パワーオン・リセッ
ト)後に不定値を有する可能性があるからである。更
に、マニュアル・リセット或は特定タイプの例外事象の
後、これらのフィールドの先行値は有効ではなくなる、
ないしは妥当性を欠くことがあり得る。好適な実施の形
態において、ディスエーブルされたMMUに関して実行
するコードの量は一般に比較的小さい。そのようなコー
ド、しばしばブート・ストラップと呼称されるコードは
MMUを適切なメモリ管理構成でプログラムしてから、
そのMMUをイネーブルする必要性がある。この構成の
詳細は特定の実施の形態によって提供されるメモリ管理
特徴に依存する。一般に、MMUがディスエーブルされ
る場合のコードの実行速度は、ブート・ストラップ・コ
ードの内の1つの作用がMMUを構成してそれをイネー
ブルすると云う事実によってそれ程重要ではない。これ
は比較的小さな数の命令で達成可能であり、MMUがデ
ィスエーブルされる場合のモデルに対する実行モードは
比較的簡素であり得る。
【0042】MMUがディスエーブルされた状態でのコ
ード実行の際、有効アドレスは、好ましくは、物理アド
レスへ直にマッピングされる。このマッピングは本質的
には一致翻訳である。しかしながら、具現化が物理アド
レス空間よりも有効アドレス空間をより多く支援する場
合(即ち、neff>nphys)、物理アドレス空間
は有効アドレス空間の全てにわたって複製されているよ
うに見える。有効アドレス(EA)は、好ましくは、P
A←SignExtendnphys (EA)によって物理
アドレス(PA)へマッピングされる。このマッピング
はneff及びnphysが同等である際に正確には一
致翻訳である。一般に、MMUがディスエーブルされて
いる際に保護機構は何等ない。加えて、データ・アクセ
スはあたかもそれらが装置アクセスであるかの如くに具
現化される(この「装置アクセス」は、緩衝されること
無しに順次アクセスされるか或はさもなければ、命令で
指定されたトランザクションをより効率的に管理するよ
うに処理すること無しに特定の命令で指定されたように
アクセスされるアクセスについて呼称していることが、
当業界では知られている)。データ・キャッシュは効果
的に凍結され、バイパスされる(ただし、他の場所で説
明されているように、データ・キャッシュ・リソースは
この状態において特定命令でアクセスされ得る)。命令
で指定されたデータの正確な量は転送され、データ・フ
ェッチングは何等ない。
【0043】MMUがディスエーブルされている際、命
令フェッチ(取り出し)はキャッシュされない。命令キ
ャッシュ(別個の命令キャッシュを含む実施の形態にと
って)も効果的に凍結されバイパスされる。更に、命令
プリフェッチング(事前取り出し)の量は、指定された
装置領域であるもの等の物理メモリの領域からのプリフ
ェッチを回避するように制限されている。好ましくは、
CPUコア102はプログラム・カウントを包む最小ペ
ージ(特定の実施の形態で提供されている)以外の命令
を理論的にフェッチしない。アクセスはMMUがディス
エーブされている間はキャッシュされないので、一般に
は最適な性能が達成されない。よって殆どの実施の形態
においてMMUはリセット等の後にできる限り直ぐに構
成されてイネーブルされる。
【0044】MMUがイネーブルされると、有効アドレ
スから物理アドレスまでのマッピングはページ・テーブ
ル・エントリ(「PTE」)を用いて説明される。各ペ
ージ・テーブル・エントリは、先に説明したように、2
つの構成レジスタ(PTEH及びPTEL)から構成さ
れ、事実上そのページと物理アドレス空間の特性を指定
している。ページ・テーブル・エントリはアレイ内に保
持されて、多数のページが記述されることを可能として
いる。PTEアレイは変換索引バッファ(TLB)とし
ても呼称されている。次に、PTEアレイの好適な模範
組織、PTE構成レジスタのコンテンツ、マッピング機
構、具現化オプションをより詳細に説明する。
【0045】一般に、本発明の様々な実施の形態で使用
される2つのページ・テーブル・アレイの可能な組織が
あり、統一ないし統合されたものと分割ないし分離され
たものとである。統合された組織は、基本的には、ペー
ジ・テーブル・エントリの単一アレイから構成されてい
る。各エントリは、記述されたページに対するデータ及
び命令のアクセスの双方の動作を制御している。アレイ
におけるエントリの数は定義された具現化でありここで
はuで表現される。統合されたアレイにおける構成レジ
スタは、MMUR[ n] .PTEH、並びに、MMUR
[ n] .PTELと云われ、nは[ 0,u] の範囲内で
変化する。
【0046】他方、分割組織は、一般に、ページ・テー
ブル・エントリの2つのアレイから構成されている。第
1のデータ・レジスタ・アレイにおけるエントリは記述
したページに対するデータ・アクセスの動作を制御し、
しかるに第2の命令レジスタ・アレイにおけるエントリ
は記述ページに対する命令アクセスの動作を制御する。
これらのアレイにおけるエントリの数は特定実施の形態
に対して定義され、ここではデータ・レジスタアレイに
対してdで表現され、命令レジスタ・アレイに対しては
iで表現される。データ・アレイにおける構成レジスタ
はMMUDR[n] .PTEH及びMMUDR[ n] .
PTELと云われ、ここでnは[ 0,d] の範囲内で変
化する。命令アレイにおける構成レジスタはMMUID
R[ n].PTEH及びMMUIDR[ n] .PTEL
と云われ、ここでnは[ 0,i]の範囲内で変化する。
【0047】統合及び分割が試された組織が本発明の様
々な実施の形態用として明らかに意図されており、特定
の好適な実施の形態において、例えば、分割アレイが使
用され、例えば、データPTEアレイ・サイズは64、
命令PTEアレイ・サイズは64である。よって、その
ような実施の形態においてd及びiの双方は値64を有
する。PTEアレイにおける全てのエントリは好ましく
は同等であり、PTEアレイは充分に連想性(関連性)
があり、各エントリは任意の有効アドレス対物理アドレ
スのマッピングに対して情報を保持し得る。
【0048】PTE構成レジスタ内のフィールドは、一
般に、特定の機能或は動作を制御或は影響すべく提供さ
れている。幾つかのフィールドは全ての実施の形態に提
供され得るか或は提供され得ず、そして幾つかは、例え
ば翻訳を支援する実施の形態にのみ提供される。更に、
幾つかのフィールドの動作はPTEアレイ組織が統合さ
れているか或は分割されているかに依存し得る。図5A
乃至図5Iを参照すると、好適なPTE構成レジスタに
おけるフィールドはより詳細に説明される(特定のフィ
ールド定義及びその類が典型的である等々)。
【0049】図5Aで図示されているように、イネーブ
ル・フィールド(好ましくは1ビット)(PTEH.
V)が提供されて、このPTEは妥当か或は不当か(又
は有効か或は無効か)を制御する。このビットは、好ま
しくは、ソフトウェアが未使用PTEを無効とするこ
と、そして、PTEが例えばプログラムされている一方
でそれらが無効であることを確保することを可能とす
る。
【0050】図5Bに図示されているように、ページ・
サイズ・フィールド(PTEL.SZ)が提供される。
支援されるページ・サイズの数、即ちnpageは特定
の実施の形態の間で変化するが、各実施の形態及び具現
化は少なくとも1ページ・サイズを提供しなければなら
ない。2ビットが図5Bに図示されている一方、一般に
サイズ・ビット(及びサイズ)の異なる数も本発明の範
囲内である。支援されたページのサイズは、一般に、定
義された実施の形態/具現化でもある。図5Cは本発明
の特定の好適な実施の形態で使用される典型的な支援ペ
ージを例示している。
【0051】図5Dに図示されているように、キャッシ
ュ動作フィールド(PTEL.CB)が提供されてい
る。この明細書の別の場所で議論されるように、本発明
の実施の形態は命令及びデータ・キャッシュを随意に提
供し得る。そのような異なる実施の形態に従えば異なる
キャッシュ動作は、キャッシュの動作が異なるページに
対するアクセス用に指定されるように所望通りに選択さ
れ得る。もしキャッシュが特定の実施の形態で支援され
ていなければ、キャッシュ動作フィールドは非キャッシ
ュにセットされるべきである。好適な実施の形態で利用
可能な異なるキャッシュ動作はキャッシュ動作フィール
ドを用いて区別される。一般に、キャッシュ動作は物理
ページの特性であり、同一の物理ページを共有する全て
のマッピングが同一キャッシュ動作をとることを保証す
ることが重要であり、さもなければそのページに対する
メモリ・アクセスが予想できない。
【0052】好適な実施の形態で利用可能な命令キャッ
シュはキャッシュされた命令フェッチ及び非キャッシュ
の命令フェッチである。好適な実施の形態で利用可能な
データ・キャッシュ動作は、ライト−バック(write bac
k)動作でキャッシュされたアクセス、ライト−スルー(w
rite through) 動作でキャッシュされたアクセス、装置
アクセス(これらのは好ましくは非キャッシュであり、
データの正確な量がアクセスされる等の、この明細書の
別の場所で説明される)、そして、非キャッシュ・アク
セス(これらのは好ましくは非キャッシュであるが、装
置ページに対して許容されるものよりもより効率的にデ
ータにアクセスし得る)である。図5Dは本発明の好適
な実施の形態で利用される典型的なキャッシュ動作を図
示している。もしRESERVED(予約ないし保留)
設定が列挙(リスト)されれば、その動作はアーキテク
チャとしては未定義であり、将来の第2プロセッサ等々
に割り当てられ得る。
【0053】図5Eで図示されているように、保護フィ
ールド(PTEL.PR)が提供される。一般に、アク
セスは様々な種類の保護妨害に対してチェックされる。
好適な実施の形態における保護妨害は提起されるべき適
切な例外である。保護は一般に有効ページの特性であ
る。同一物理ページを同一保護属性に使用すべく共有す
るマッピングに対する要件は何等ない。好適な実施の形
態において、各PTEは以下のビットを含む保護フィー
ルドを有する:PTEL.PR.U(セットされた際、
そのページはユーザ・モード及び特権モードにアクセス
可能であり、さもなければ特権モードだけにアクセス可
能である);PTEL.PR.W(セットされた際、ペ
ージは書込み可能であり、さもなければ書込み不可能で
ある);PTEL.PR.R(セットされた際、そのペ
ージは読取り可能であり、さもなければ読取り不可能で
ある);PTEL.PR.X(セットされた際、そのペ
ージは実行可能であり、さもなければ実行不可能であ
る)。
【0054】理解して頂けるように、好適な実施の形態
において、許可はもし適切なアクセス許可が付与されれ
ば、アクセスに対する特権モードに与えられる。許可は
もしPTEL.PR.Uがセットされ、適切なアクセス
許可が付与されれば、アクセスに対するユーザ・モード
に与えられる。禁止されたアクセスは適切な例外の提起
となる。保護フィールドは図5Eにおける模範動作を伴
って図示されている。もしRESERVED設定が列挙
されると、その動作はアーキテクチャとしては未定義で
あり、将来の第2のプロセッサ等に割り当てられ得る。
【0055】図5Fで図示されているように、物理ペー
ジ番号フィールド(PTEL.PPN)が提供される。
好適な実施の形態において、2n バイトのページ・サイ
ズに対しては、PPNに(nphys−n)ビットがあ
る。PTEl.PPNフィールドは一般に充分なビット
を含んで、アーキテクチャ(例えば4kバイト)によっ
て可能となる最小ページ・サイズを含む。よって、PT
EL.PPNは(nphys−12)ビットを含む。実
際のページ・サイズがこの最小ページ・サイズより大き
い場合、PPNはPTEL.PPNの最上位ビットに記
憶されるべきであり、PTEL.PPNの残りの最下位
ビットはクリアされるべきである。例えば、好適な実施
の形態においてはPTEL.PPNフィールドには20
ビットがある。
【0056】図5Gに図示されているように、共有され
たページ・フィールド(PTEH.SH)が提供されて
いる。このフィールドは、好ましくは、翻訳を支援する
実施の形態/具現化例にだけ提供される。共有されたペ
ージ・フィールド(PTEH.SH)は一般に異なるA
SID値間でのページ共有を制御するように使用され
る。それは、この明細書の別の場所で説明される有効ア
ドレス検索機構で使用される。手短に言えば、SH=1
の際、そのページはASID値に拘わらずに共有される
(例えば、そのASIDは好ましくは無視される)。
【0057】図5Hに図示されているように、アドレス
空間識別子フィールド(PTEH.ASID)が提供さ
れる。このフィールドは、好ましくは、翻訳を支援する
実施の形態/具現化例にだけ提供される。PTEH.A
SIDは異なる有効アドレス空間を区別するために使用
される。一般に、提供された有効アドレス空間の数は具
現化例間で変動し得る。それは、この明細書の別の場所
に説明される有効アドレス検索機構で使用される。
【0058】図5Iに図示されているように、有効ペー
ジ番号フィールド(PTEH.EPN)が提供される。
このフィールドは、好ましくは、翻訳を支援する具現化
例にだけ提供される。2n バイトのページ・サイズに対
して、EPNにおいて(neff−n)ビットがある。
PTEH.EPNフィールドは常に充分なビットを含む
べきであって、そのアーキテクチャによって可能とされ
る最小ページ・サイズを含む(例えば、4kバイト)。
よって、PTEH.EPNは(neff−12)ビット
を含む。実際のページ・サイズがこの最小ページ・サイ
ズよりも大きい場合、EPNはPTEH.EPNの最上
位ビットに記憶されるべきであり、PTEH.EPNの
残りの最下位ビットがクリアされるべきである。特定の
好適な実施の形態においては、PTEH.EPNフィー
ルドに20ビットがある。ページ・サイズの典型的なセ
ットの各々に対して要求されるEPNビットの数は図5
Iに図示されている。
【0059】本発明に従えば、有効アドレス・マッピン
グは翻訳を支援しない実施の形態に提供され得る。その
ような実施の形態において、有効アドレスは、好ましく
は、物理アドレスへ直にマッピングされる。このマッピ
ングは、好ましくは、一致翻訳であり、物理アドレスは
有効アドレスと同等である。一致マッピングは、妥当性
有効アドレスの範囲が物理アドレスの範囲と正確に一致
又は符合しているので充分であり、neff及びnph
ysは翻訳を支援しない具現化例に対して同等であるべ
きである。この物理アドレスは、次いで、適切なPTE
アレイにおける連想検索を実行すべく使用される。符合
は、もしPTEによって記述された物理ページがアクセ
スの物理アドレスを含めば見出される。もし符合が見出
されると、検索でそのアクセスに対して使用されるべき
保護及びキャッシュ属性を決定する。もし符合が見出さ
れなければ、例外が提起されて、命令ミス(ITLBM
ISS)或はデータ・ミス(RTLBMISS或はWT
LBMISS)を表示する。PTEアレイのコンテンツ
は、任意の物理アドレスのマッピングを記述するせいぜ
い1つのPTEがあるように構成されなければならな
い。
【0060】また、本発明に従えば、有効アドレス・マ
ッピングは翻訳で提供され得る。理解して頂けるよう
に、翻訳は一般に有効アドレスから物理アドレスへのマ
ッピングを凌ぐよりフレキシブルな又は柔軟性がある制
御を提供する。規格仮想メモリは有効アドレス空間、翻
訳機構、並びに、適切なソフトウェアを用いて支援可能
である。この場合、仮想メモリ・マップはCPUアーキ
テクチャではなく、ソフトウェアで決定される。
【0061】好適な実施の形態において、この有効アド
レス・マッピングは、好ましくは、以下のようにして達
成される。アクセスの有効アドレス及び現行プロセスの
ASIDは、連想検索を適切なPTEアレイに実行すべ
く使用される。以下のチェックは各PTEに対して試さ
れる:(1)有効アドレス符合は、もしアクセスの有効
アドレスのEPNがPTEH.EPNに符合すれば見出
される。留意されるべきは、この比較に好ましくは使用
される有効アドレスのビットがそのPTEのページ・サ
イズに依存することである。サイズ2n バイトのページ
の場合、有効アドレスを含むビットnからneff−1
は比較される;(2)ASID符合は、もしPTEH.
SHが1であれば見出されるか、或は、現行プロセスの
ASID(SR.ASID;SRはこの明細書の別の場
所で議論される)がPTEH.ASIDフィールドに符
合すれば見出される。
【0062】PTE符合は有効アドレス符合及び同一P
TEにおけるASID符号を必要とする。もしPTE符
合が見出されれば、検索でそのアクセスに対して使用さ
れるべき属性(物理ページ番号、保護、並びに、キャッ
シュ属性等々)を決定する。有効アドレスから物理アド
レスへの翻訳は、好ましくは、物理ページ番号を有効ペ
ージ番号の代わりとすることによって達成される。よっ
て、ページ内のバイト索引は保持され得て、EPNがP
PNによって置き換わることが可能である。このプロセ
スは図6に図示されている。
【0063】もしPTE符合が見出されなければ、例外
が提起されて命令ミス(ITLBMISS)或はデータ
・ミス(RTLBMISS或はWTLBMISS)を表
示する。そのような例外は、好ましくは、ソフトウェア
を適切なPTEアレイに補給させて、不当アドレスに対
するアクセスを検出すべく使用可能である。好適な実施
の形態において、PTE補給はソフトウェアで完全に実
行され;ハードウェアのページ・テーブル・ウォーキン
グは何等ない。好適な実施の形態において、任意の有効
アドレス空間における任意の有効アドレスのマッピング
を記述するせいぜい1つのPTEがあるべきである。も
し多数のマッピングが任意の有効アドレス及びASID
の組合せに対して存在すれば、その動作は一般に未定義
となり得る。適切なソフトウェアが特定の実施の形態で
利用されてこの条件を防止する。
【0064】本発明に従えば、変形がPTEアレイ組織
及びPTE状態にも利用可能である。もし翻訳が支援さ
れていなければ、具現化されたPTEフィールドは読取
り専用となり得る。この変形はハードウェアに組み込ま
れた非翻訳のマッピングのセットであり、非常に簡単な
具現化となる。例えばPTE検索は、PTEアレイ内へ
の連想検索よりも、むしろ、有効アドレスからのビット
をデコードすることによって利用され得る。そのような
変更は一般に非常に簡単なメモリ管理要件でシステムを
支援する。もし翻訳が支援されていなければ、具現化さ
れたPTEフィールドは読取り−書込みが可能である。
この変形はページ- レベルでの保護及びキャッシングの
プログラマブル制御を提供するが、翻訳に対する支援無
しである。そのような変形は、例えば翻訳のコスト無し
で保護を必要とするシステムを支援すべく使用され得
る。もし翻訳が支援されていれば、具現化PTEフィー
ルドは読取り−書込みが可能である。この変形は完全に
特徴付けとなり得て、規格ないし標準仮想メモリを支援
すべく使用され得る。
【0065】以下、本発明に従ってメモリ管理ユニット
及びキャッシュの間の相互作用又は対話(キャッシュ等
々を具現化する実施の形態に対する)が説明される。
【0066】MMUがディスエーブルされると、好適な
実施の形態におけるキャッシュ情報がバイパスされアク
セスに対して凍結される。実効的には、キャッシュはデ
ィスエーブルされる。この好適な動作はキャッシュがそ
れ自体イネーブルされるか或はディスエーブルされるか
に拘わらず提供される。キャッシュ・イネーブル・フラ
グは、好ましくは、MMUがイネーブルされるときだけ
効力を有する。よって、そのような実施の形態におい
て、もしMMUがディスエーブルされるが、キャッシュ
がイネーブルされると、キャッシュ状態は依然バイパス
され、凍結されている。留意されるべきことは、バイパ
スが意味することはアクセスが任意のキャッシュの状態
を見ないことであり、本質的には、アクセスは常にバイ
パスされたキャッシュを見失うことである。凍結は、ア
クセスがキャッシュの状態を変更しないことを意味す
る。事実上、アクセスはそのキャッシュがあたかも存在
しないかのように進行する。また留意されるべきこと
は、キャッシュ一貫性(コヒーレンシー)命令及びキャ
ッシュ構成機構は依然としてキャッシュ状態上で操作
し、通常通りにキャッシュにアクセスする。これはソフ
トウェアに、MMUがイネーブルされているか或はディ
スエーブルされているかに関わらずにキャッシュ状態に
アクセスする手段を提供する。
【0067】そのような好適な構成に多数の長所があ
る。第1として、MMUがディスエーブルされている際
のキャッシュの動作は完全に指定されて、自己矛盾(或
は一貫性がない或は未定義等々の)キャッシュ状況に遭
遇することなしに、命令の充分に機能した実行を可能と
している。加えて、マニュアル・リセット後、ソフトウ
ェアはそのリセットに先行するキャッシュの完全な状態
を観測すべく使用され得る。これは、例えば、「事後」
デバッギング(debugging) 或は他のコード分析等々に有
益に利用され得る。また、通常操作において、MMUは
イネーブルされ、こうして、MMUにとってディスエー
ブルされ、命令にとって翻訳無しに実行されるように構
成することが可能であり、そしてMMUにとってキャッ
シュ状態に影響すること無しに再度イネーブルされるこ
とが可能である。この動作は、システムが例えば、非浸
食的で、完全結合解除の、相互作用的なデバッギングを
支援することを可能とする。本質的には、デバッガ(deb
ugger)はそれ自体のコードを、ディスエーブルされたM
MUで、目的システムの機能的な動作に影響すること無
しに、操作させるように構成すべく使用される。
【0068】MMUはイネーブルされると、キャッシュ
の動作はソフトウェアによってプログラムされ得る。キ
ャッシュ動作は、この明細書の別の場所で説明されてい
るように、PTEL.CBを用いて指定される。好適な
実施の形態において、PTEL.CB設定は以下の方法
におけるキャッシュ構成によって乗り越え可能である。
第1として、もしデータ・キャッシングがディスエーブ
ルされると、各PTEのデータ・キャッシュ動作がPT
EL.CBの値に拘わらず非キャッシュとして処理され
得る。もし命令キャッシングがディスエーブルされる
と、各PTEの命令キャッシュ動作はPTEL.CBの
値に拘わらず非キャッシュとして処理され得る。もしデ
ータ・キャッシュがディスエーブルされたライト−バッ
クで構成されれば、キャッシュ可能なPTEL.Bを伴
う任意のPTEはライト−スルーとしてそしてライト−
バックとしてでなく処理され得る。
【0069】好適な実施の形態において、キャッシュ置
き換えアルゴリズムは具現化特有であり、キャッシュ・
ロッキング(キャッシュ・ロッキングもこの明細書の別
の場所でより詳細に説明される)を支援し得る。そのよ
うな実施の形態においては、キャッシュが十分にロック
されたようにキャッシュ・ロッキングを構成することが
可能である。そのような実施の形態において、キャッシ
ュを見失うキャッシュ可能なアクセスは非キャッシュ・
アクセスとして動作することになる。MMUがイネーブ
ルされると、好適な実施の形態では、ソフトウェアは、
そのキャッシュが適切に方法で使用されていることを保
証する責務がある。特に、ソフトウェアは、例えば、キ
ャッシュ自己矛盾が回避されるように保証すべきであ
る。キャッシュ自己矛盾は、現行キャッシュ状態が必要
とされたキャッシュ動作に不一致であるか或いは一貫性
がないことをメモリ・アクセスが見出した際に生ずる。
一例としては、アクセスされたデータがキャッシュ内で
あることを見出す装置アクセスであり、この状況は装置
アクセス条件/意味論に対して不一致であるか或いは一
貫性がない。好ましくは、ソフトウェア条約ないし規約
がそのような状態を防止すべく使用される。例えば、同
一ページを共有する全てのマッピングが同一キャッシュ
動作を有することを確保することが重要であり、さもな
ければそのページに対するメモリ・アクセスの動作が予
測できなくなる。
【0070】この明細書の別の場所で説明されているよ
うに仮想キャッシュに関する問題はキャッシュ・シノニ
ムとして公知である。翻訳を支援する実施の形態に対し
て、具現化はキャッシュ可能なページに対するPTE
H.EPN及びPTEL.PPNの許可された値に追加
的な制約を課し得る。そのような制約は解像キャッシュ
・シノニムの回避及び(又は)補助を試すために役立つ
と共により効率的なMMU及びキャッシュ具現化を可能
とする。
【0071】特定の実施の形態における1つの典型的な
制約は単一のパラメータ、即ちnsynbitsによっ
て指定され、それは実施の形態/具現化に固有の値を有
する。そのようなパラメータは、キャッシュ・シノニム
から被り得るPTEH.EPN及びPTEL.PPNの
最下位ビットの数を提供し得る。そのようなビットはシ
ノニム・ビットと呼ばれる(それは、しばしば、「カラ
ーリング(coloring)」ビットとしても呼称される)。好
適な実施の形態で支援される最小ページ・サイズは4k
バイトであり、よってPTEH.EPN及びPTEL.
PPNの双方はアドレスの最下位12ビットを含まない
ことに留意すべきである。この制約は、キャッシュ可能
なページに対するPTE値が、シノニム・ビットが同一
PTEL.PPNをマッピングする全てのPTEH.E
PN例において同一値を有するようにプログラムされる
ことを必要とする。
【0072】この制約はキャッシュ具現化が、物理アド
レスよりも有効アドレスからのより低い次数のビットを
用いてキャッシュ内への索引付けを行うことを可能とし
ている。よってソフトウェアは、好ましくは、キャッシ
ュ可能なページのメモリ・マッピングを構成して同一P
TEL.PPNをマッピングする全てのPTEH.EP
N例のビット[ 0,nsynbits] が同等となる。
もし特定のPTEL.PPNが一度だけマッピングされ
ると、制約は何等ない。しかしながら、もし特定のPT
EL.PPNの2回或はそれ以上のマッピングがあれ
ば、ソフトウェアはPTEH.EPN値を構成してこの
制約を満たすようにしなければならない。もしソフトウ
ェアがこの制約を尊重しなければ、キャッシュの動作は
予想できなくなる。留意すべきことは、もし選択された
ページ・サイズが212+nsynbits バイト或はそれ以上で
あれば、その制約はページ整合によって自動的に尊重さ
れる。一例として、特定の好適な実施の形態に対するn
synbitsの値は1である可能性がある。よって、
好適4kバイトのページ・サイズを用いてのキャッシュ
可能マッピングは1シノニム・ビットだけ制約される。
そのような実施の形態では、より大きなページ・サイズ
は制約されない。
【0073】好適な実施の形態において、nsynbi
tsは全ての具現化例に対して[ 0,nsynmax]
の範囲内となる。そのような実施の形態で、nsynm
ax以上のPTEH.EPN及びPTEL.PPNのビ
ットはシノニム問題を被ることがない。望ましく且つ好
適なことは、ソフトウェアが、より弱い具現化定義済み
nynbits制約よりも、そのようなより厳しくアー
キテクチャ的に定義されたnsynmax制約を尊重す
ることである。この好適制約を用いることは、ソフトウ
ェアがそのメモリ・マッピングを将来の実施の形態/具
現化例と互換性があるように構成することを可能とす
る。一例として、nsynmaxの値は4となり得る。
よって将来の具現化は、4kバイトのページを用いるキ
ャッシュ可能なマッピングが4シノニム・ビットだけ制
約されることを要求し得る。実施の形態/具現化例は、
64kバイトのページ・サイズ或はそれ以上を用いるマ
ッピングを制約しないように開発され得る。
【0074】読取り−書込みPTEフィールドを有する
実施の形態に対して、ソフトウェアはPTEのコンテン
ツを変えることができる。CPUコア102のMMU
は、好ましくは、慣習モデルをページ・テーブル更新に
負担させて、広範な具現化を可能とする。このモデル
は、好ましくは、ページ・マッピングのコンテンツを変
更する際、特定の制約を尊重することをソフトウェアに
要求する。MMUアーキテクチャは、好ましく、そのモ
デルを使用し、PTEにおけるエントリ(ハードPTE
或はオンチップTLBにおけるページ・テーブル・エン
トリ)が、ソフトウェアによって何等かの方法で維持さ
れる概念的PTEのより大きなセットの1サブセットで
ある(通常は主メモリに記憶されている、ソフトPT
E、典型的には、外部ページ・ページにおけるエントリ
の集まり)。次いで、ソフトウェアには、そのようなソ
フトPTEがどのように管理されるかについての完全な
自由度が付与され得る。例えば、それらソフトPTEは
メモリ保持されたPTEデータ構造によって管理可能で
あり、それらは休む間もなく計算されて、それらは物理
的に存在し得ず、或は、他の選択肢である。
【0075】好ましくは、MMUには、PTEがハード
PTE内へロードされてイネーブルされる時点でソフト
PTEの存在が知らされる。MMUがソフトPTEの存
在を知らされる一方、MMUはキャッシュされたPTE
へハードPTEを(随意に)キャッシュすることができ
る。そのキャッシュされたPTEは、MMUが対応する
ハードPTEが再プログラムされた際でさえソフトPT
Eの状態を維持することを可能とする。この特性は、好
ましくは、例えば好適な実施の形態で仮想キャッシュの
使用をイネーブルする。
【0076】通常使用の下、ソフトウェアは一般にハー
ドPTEからエントリを取り戻し、ページ・ミスによっ
て要求されるとソフトPTEから補給する。これらのの
取り戻し及び補給は変更されるべきソフトPTEの状態
を一般に必要とせず、何等特別な操作が一般に必要とさ
れずそのキャッシュされたPTE状態一貫性(コヒーレ
ンシー)を保持する。しかしながら、ソフトPTEが変
更されると、そのキャッシュされたPTE状態は明白な
ソフトウェア作用で一貫していなければならない。2つ
の条件は(同時に)満たされるべきであって、MMUに
その変更を知らせる。第1として、ソフトPTEに対応
するイネーブルされたハードPTEは何等あってはなら
ない。これは、もしあれば、そのソフトPTEに対応す
るハードPTEをディスエーブルすることによって達成
され得る。第2として、そのソフトPTEによってマッ
ピングされた有効アドレスに対応し得る任意のキャッシ
ュに妥当(又は有効)或は汚れた(又はダーティ・)ラ
インがあってはならない。この条件は、もしPTEのキ
ャッシュ動作が策略或は非キャッシュであれば自動的に
満たされる。もしそれがキャッシュされれば、この条件
は、この明細書の別の場所で説明されるような適切なキ
ャッシュ一貫性(コヒーレンシー)機構を介して満足さ
せられるはずである。
【0077】ソフトPTEは、好ましくは、PTEH.
EPN、PTEH.ASID、並びに、PTEL.SZ
によって定義された有効アドレス空間内で有効ページを
識別する。次のシナリオはこのソフトPTEに対する変
更を説明している。
【0078】1.有効ページはマッピング解除状態であ
る(即ち、もはやアクセスできなくなっている)。
【0079】2.有効ページは再マッピング状態である
(即ち、PTEH.EPNが変更状態である)。
【0080】3.有効ページのキャッシュ動作(PTE
L.CB)は変更状態である。留意されるべきことは、
キャッシュ動作は物理ページの特定であり、PTEL.
CBへの変更はその物理ページの全マッピングにわたっ
て同期されるべきことである。
【0081】4.有効ページの保護特性(PTEL.P
R)は変更状態であって、保護属性の内の何れも保護に
関して増大している(即ち、新PTEに対してもはや許
可されていない旧PTEに対するアクセスがある)。こ
れは、もし許可ビットが1からゼロへ変更されれば生ず
る。もし保護ビットの何れもがそれらの保護を増大する
ように変更されなければ(即ち、各ビットが未変更か或
はより多くのアクセスを可能とするように変更されるか
のいずれか)、これはこうした状況でのPTE変更とし
てカウントしない。この譲歩は、ソフトウェアが任意の
PTE一貫性(コヒーレンシー)コストをかけること無
しにページへの第1アクセスを捕らえることを可能とし
ている。例えばソフトウェアは白紙ページを非書込み可
能として示し、初期書込み例外を捕らえてから、書込み
許可をイネーブルし得る(そのような手続きは、この明
細書の別の場所でより詳細に説明される)。書込み許可
のイネーブルはPTE一貫性(コヒーレンシー)を必要
としない。
【0082】5.有効ページの割り当て(PTEL.S
H)は変更状態である。
【0083】本発明の好適な実施の形態におけるMMU
に対して適用可能であり得る典型的なコード・シーケン
スについて以下に説明する。
【0084】このようなコード・シーケンスはMMUを
操作し、好ましくは特権モードで実行される。第1命令
のセットを実行してから、該セットされた第1命令を用
いて第2命令を模倣する実施の形態に対して、そのよう
なコード・シーケンスは、好ましくは第1命令のセット
だけを使用する。また、割り込みが、典型的には、それ
ら臨界的なコード・シーケンスに渉って阻止されること
は好ましい。
【0085】一例として、MMUは例外(RTE)命
令、或は、SRのMMUビットを変更可能な同様ないし
類似の命令からの返却を用いることによってイネーブル
されるか或はディスエーブルされ得る。他の典型的な命
令はGETCON及びPUTCON型命令であり、それ
は、好ましくは、SR等の制御レジスタに特にアクセス
するように好ましくは提供される命令である。典型的実
施の形態において、GETCONは、好ましくは、制御
レジスタ(SR或はCPUコア102における他の制御
レジスタ)から汎用のレジスタまでの64ビット・デー
タ転送を提供する。PUTCONは、好ましくは、汎用
レジスタから制御レジスタへの64ビット・データ転送
を実行する。よって、汎用レジスタ及びPUTCON命
令内における値の適切なローディングによって、SR等
の制御レジスタのコンテンツは変更され得る。代替的に
は、保存されるか或は第2プログラム・カウンタPC、
或は、保存されるか若しくは第2ステータス・レジスタ
(プログラム・カウンタ及びステータス・レジスタのそ
れぞれの保存されたコピーを記憶するそのような「SP
C」及び「SSR」レジスタを利用する)、或は、他の
適切なレジスタを提供することによって、RTE型命令
(或は他の命令)はPC及びSRを新しい値へ切り替え
可能である。これは、望ましくは、MMUが単一のRT
E型命令で達成され得るPCを変更することと同時にイ
ネーブルされるか或はディスエーブルされるように試す
ことを可能としている。
【0086】次に、好適な実施の形態で使用されるRT
E型命令はより詳細に説明される。好適な実施の形態に
おいて、これは例外ハンドラ或は他のソフトウェアが先
行するプログラム前後関係(即ち、プログラム・カウン
タ、ステータス・レジスタ等々のコンテンツ)を回復す
ることを可能とする。好適な実施の形態において、これ
は例外ハンドラの最終命令としてしばしば使用される。
好適な実施の形態のRTE型命令は、好ましくは、以下
の作用を行う。このプログラム・カウンタは実行される
べき次の命令のSPC(好適な実施の形態において、S
PCの最下位ビットが、この明細書の別の場所で説明さ
れているように、セットされた多重命令を具現化する実
施の形態に対する命令セット・モードを決定する)から
復帰又は回復される。SPCの残りのビットは、実行さ
れるべき次の命令のプログラム・カウンタを決定する。
加えて、SRはSSRから復帰される。命令の実行は、
命令セット・モードにおけるPCから、同期化された命
令ストリームを伴って続行する。
【0087】以下の変更は好適な実施の形態におけるR
TE型命令の実行に及んで生じ得る。MMUはイネーブ
ルされるか或はディスエーブルされ得る。特権レベルM
Dが変更し得る。ASIDが変更し得る。命令セット・
モードが変更し得る。また、好適な実施の形態における
RTE型命令の実行は、次の命令がそのような変更に対
して正しくフェッチされることを保証する。
【0088】好適な実施の形態において、命令フェッチ
ングはそのようなRTE命令にわたって自動的に同期化
される。RTE命令はSRのオリジナル値に従ってフェ
ッチされる。RTE命令の実行は、PCからSPCへ、
そして、SRからSSRへ切り替える。それに直ぐに続
く命令は新しいPCにおいてであり、新しいSRに従っ
てフェッチされる。そのような好適な実施の形態では、
別個の同期化型命令(以下で議論されるSYNCI等)
を用いる必要性がなく、MMUイネーブル/ディスエー
ブルのステータスの変更の際に一致翻訳を用いるという
要件は一般にはない。
【0089】しかしながら、そのような実施の形態にお
いてデータ・アクセスはRTE型命令にわたって自動的
に同期化され得ない。MMUがイネーブルされるか或は
ディスエーブルされると、そのRTE型命令の前に同期
化命令を用いることが望ましく、データ・アクセスを同
期化する。これは、MMUステータスが変更される前
に、任意のアクセス・バッファリングを洗い流して空と
することを含む、全ての先行データ・アクセスの完了を
保証する。データ同期化は、MMUステータスを変更す
ることがキャッシュ動作を劇的に変更し得るので重要で
あり、これがメモリ・アクセスに対する充分定義された
時点で生ずることを確保することが必要である。
【0090】幾つかの典型的コード・シーケンスに話を
移す前に、次に本発明に従って使用され得るそのような
同期化型命令をより詳細に説明する。
【0091】好適な実施の形態において、命令が特定の
同期化操作に対して提供される。これらの同期化型命令
は、好ましくは:命令フェッチを同期化すべく使用され
るSYNCI;データ操作を同期化すべく使用されるS
YNCO;並びに、メモリ・システムを介してのソフト
ウェア同期化に使用されるSWAP、を含む。これらの
好適な同期化型命令を次により詳細に説明する。
【0092】SYNCI命令は、好ましくは、命令フェ
ッチを同期化すべく使用される。好適な実施の形態にお
いて、SYNCI命令の実行は、先行する全ての命令が
任意の引き続く命令がフェッチされる前に完了すること
を保証する。しかしながら、好適な実施の形態におい
て、SYNCI命令はデータ・メモリでのそのような先
行命令の効果が完了することを保証しない。そのような
実施の形態において、データ同期化はSYNCO命令
(別の場所でより詳細に説明される)を用いて別個に達
成され得る。
【0093】SYNCI型命令は、例えば、コードがロ
ードされるか或は変更された後に命令フェッチを同期化
し、命令翻訳が変更された後に命令フェッチを同期化
し、そして、引き続く命令の思索的な実行を停止するよ
うに使用され得る。幾つかの実施の形態において、命令
フェッチを最適化する機構が提供される。一例として、
命令プリフェッチング及び命令バッファリングが提供さ
れ得る。命令プリフェッチングは、命令フェッチ・レイ
テンシ(待ち時間)を低減する技法であり、命令が必要
とされる前にそれらがフェッチされる。命令バッファリ
ングは命令フェッチ・レイテンシを低減する技法であ
り、命令がCPUに近接したバッファであり、おそら
く、分岐操作等々を具現化する際に使用される目的レジ
スタに関連されたバッファに保持される。好適な実施の
形態において、SYNCI型命令に応じて、任意のその
ような状態が無効にされて、引き続く命令が再フェッチ
される。また好適な実施の形態において、SYNCI命
令は任意の命令キャッシュの状態と一貫性がなく、これ
が所望されたならば明白なキャッチ一貫性命令で達成さ
れなければならない。
【0094】また好適な実施の形態において、データ同
期化命令が提供される。そのような「SYNCO」命令
は、好ましくは、複数のデータ操作又はデータ・オペレ
ーションを同期化するように使用される。データ操作に
は、ロード、ストア、スワップ、プリフェッチ、割り振
り、並びに、データ・キャッシュ一貫性命令を含む。そ
のようなSYNCO命令は、好ましくは、他のメモリ・
ユーザに見えるデータ操作に指令又は注文を課する。好
適な実施の形態において、SYNCOの実行は先行命令
からの全てのデータ操作が、引き続く命令から任意のデ
ータ・アクセスが開始される前に完了されることを保証
する。更には、そのようなSYNCO命令自体は、好ま
しくは、先行する命令からの全てのデータ操作が完了し
てしまう前に完了しない。一例として、SYNCI型命
令によって追従されるSYNCO型命令のシーケンスが
使用され得て、全ての先行命令そして全ての先行データ
操作が任意の引き続く命令がフェッチされる前に完了さ
れることを保証する。他の例としては、SYNCO型命
令が使用され得て、別のメモリ・ユーザと共有されるメ
モリ箇所へのアクセスの指令、装置メモリ箇所へのアク
セスの指令、他の命令に対するキャッシュ一貫性命令の
指令、任意の書込みバッファリングの洗い流し、そし
て、メモリ・アクセスが併合されるか或は削除されるこ
との防止を行う。
【0095】幾つかの実施の形態において、データ・ア
クセスを最適化する機構が提供され得る。そのような実
施の形態におけるそのような機構は書込みバッファリン
グを含み得て、それは書込まれたデータが、幾分後の時
点でメモリへ追い出される前にバッファ内に保持される
技法である。書込みバッファは書込みを遅らせて寄せ集
めることによってメモリ性能を高めることができる。好
適な実施の形態において、任意のバッファされたデータ
はSYNCO命令の間、或は、SYNCO命令に応じて
洗い流されて、先行する書込み操作がメモリへ伝播する
ことを保証する。留意されることは、好適SYNCO命
令が任意のデータ・キャッシュの状態と一貫していない
ことであり、好適な実施の形態において、これは所望さ
れた場合に明白なキャッシュ一貫性命令によって達成さ
れる。
【0096】別の同期化型命令は「SWAP」命令であ
り、これはメモリ箇所における原子的な(この明細書の
別の場所でより詳細に説明されているように、原子的に
実行される操作が、基本的には不適切な動作を回避する
割り込み無しに、完了するまで実行される)読取り- 変
更- 書込み操作である。好適なSWAP型命令は新しい
値を(事前にフェッチ可能なように)8バイト・メモリ
対象内へ書込んでその先行コンテンツを戻す。好適な実
施の形態において、メモリ・システムはそのスワップ命
令の読取り及び書込み部分が、目的メモリへの任意の他
のアクセスに対して、その目的メモリ箇所において原子
的に具現化されることを保証する。またスワップは、好
ましくは、アクセスに関連されたキャッシュ動作に拘わ
らずにメモリ内で実行される。そのようなSWAP型命
令は、好ましくは、ソフトウェアによって使用され得
て、多数のメモリ・ユーザがメモリ・システムを介して
同期化される。
【0097】再度、本発明の好適な実施の形態での操作
に参照しながら、例示的なコード・シーケンスが次に説
明される。次の例示的なコード・シーケンスは以下の規
約を使用する: ;-SR denotes the SR control register; ;-SSR denotes the SSR control register; ;-SPC denotes the SPC control register; ;-MMU _BIT is the bit number of the MMU field wit
hin SR; and ;-R0, R1 and TR0 can be used as temporaries. (;- SRはSR制御レジスタを示す; ;SSRはSSR制御レジスタを示す; ;- SPCはSPC制御レジスタを示す; ;- MMU_BITはSR内のMMUフィールドのビッ
ト数であり; ;- R0,R1,TR0は臨時として使用され得る。) 任意の翻訳を用いてMMUをイネーブルする典型的なコ
ード・シーケンスは以下に与えられる。目的命令は一般
レジスタR4内に指定され、それは適切な実行可能マッ
ピング内でなければならない。目的命令は任意の翻訳に
よってマッピングされ得る(即ち、必ずしも一致翻訳で
はない)。MOVI(移動即値)、SHLLI(シフト
・レフト即値)、OR(論理ORオペレーション)、並
びに、SYNCO(データ・アクセス同期化)等の命令
はこの特定の状況で、もし違ったふうに述べられていな
ければ、或は、ここで説明されているように、慣用され
ている機能を有する。本発明の状況において特別な注釈
の特定機能を有する命令は、一般に、この明細書の別の
場所で説明される。 ;Pre-conditions: ;-the MMU is currently disabled; ;-the PTE configuration is valid; ;-a PTE gives the target instruction an appropriat
e executable mapping; ;-the cache has been appropriately configured. GETCON SR, R0; get current SR, must have an approp
riate ASID value MOVI 1, R1 SHLLI R1, MMU _BIT, R1 OR R0, R1, R0 PUTCON R0, SSR; set the target SR (with the MMU en
abled) PUTCON R4, SPC; set the target PC SYNCO; synchronize data accesses RTE ;Post-conditions; ;-execution continues at the address indicated by
R4; ;-execution proceeds with the MMU enabled. (;事前条件 ;- MMUは現状でディスエーブルされており; ;- PTE構成は有効であり; ;- PTEは目的命令に適切な実行可能マッピングを付
与し; ;- キャッシュは適切に構成されており; GETCON SR,RO;現行SRを得、適切なAS
ID値を持たなければならず MOVI 1,R1 SHLLI R1,MMU_BIT,R1 OR R0,R1,R0 PUTCON R0,SSR;目的SRをセット(MM
Uはイネーブルとされる) PUTCON R4,SPC;目的PCをセット SYNCO;データ・アクセスを同期化 RTE ;事後条件; ;- 実行をR4で示されたアドレスで続行; ;- 実行はMMUイネーブルとしてを進行。) 留意されるべきことは、MMUが同様なシーケンスを用
いてディスエーブルされ得ることである。この場合、A
NDC(論理ANDオペレーション等々)命令はORの
代わりに使用され得て、SRのMMUビットがセットで
はなくクリアされる。また、目的命令は一般レジスタR
4内で指定され、それがディスエーブルされたMMUで
実行される命令を参照する(そして翻訳無し)。
【0098】特定の実施の形態において、一致翻訳の領
域内でMMUをイネーブル或はディスエーブルすること
はしばしば好都合である。これは正にコード・シーケン
スである。これは一致実行可能なマッピング(即ち、E
PNがPPNに符合)がコード・シーケンス内の複数の
命令から成るセットの全体に対して提供されることを確
保することによって達成され得る。これがPTE構成レ
ジスタの適切なセットアップを必要とする。MMUを一
致翻訳を用いてイネーブルするための典型的なコード・
シーケンスを以下に提供する。 ;Pre-conditions: ;-the MMU is currently disabled; ;-the PTE configuration is valid; ;-a PTE gives these instructions an identity execu
table mapping; ;-the cache has been appropriately configured. GETCON SR, R0; get current SR MOVI 1, R1 SHLLI R1, MMU _BIT, R1 OR R0, R1, R0 PUTCON R0, SSR; set the target SR (with the MMU en
abled) PTB label-$, TR0; calculate target PC GETTR TR0, R0 PUTCON R0, SPC; set the target PC SYNCO; synchronize data accesses RTE label: ;Post-conditions: ;-execution continues at the address indicated by
the label; ;-execution proceeds with the MMU enabled. (;事前条件 ;- MMUは現状でディスエーブルされており; ;- PTE構成は有効であり; ;- PTEはこれらの命令に同一性実行可能マッピング
を付与し; ;- キャッシュは適切に構成されており; GETCON SR,RO;現行SRを得、 MOVI 1,R1 SHLLI R1,MMU_BIT,R1 OR R0,R1,R0 PUTCON R0,SSR;目的SRをセット(MM
Uはイネーブルとされる) PTB label−$,TR0;目的PCを計算 GETTR TR0,R0 PUTCON R0,SPC;目的PCをセット SYNCO;データ・アクセスを同期化 RTE label: ;事後条件; ;- 実行をlabelで示されたアドレスで続行; ;- 実行はMMUイネーブルとして進行。) 留意されるべきことは、MMUが同様なシーケンスを用
いてディスエーブルされ得ることである。この場合AN
DC命令がORの代わりに使用されて、SRのMMUビ
ットがセットではなくクリアされる。
【0099】好適な実施の形態において、PTEはPU
TCFG命令(この明細書の別の場所でより詳細に説明
される)の単純なシーケンスを用いてイネーブル及びデ
ィスエーブルが試され得る。PTEがイネーブルされる
か、或は、ディスエーブルされると、ソフトウェアが、
好ましくは、同期化或はRTE型命令がそのPTEへの
任意のアクセスの前に実行されることを確保すべきであ
る。これは、翻訳参照、例外検出、並びに、メモリ・ア
クセスが変更されたPTE状態に対して正しく実行され
ることを確保することである。PTEをイネーブルする
ための典型的なコード・シーケンスは以下に提供され
る。 ;Pre-condition: ;-R0 contains configuration space index of the PT
E; ;-R1 contains new PTEH value (PTEH.V is set); ;-R2 contains new PTEL value; ;-OFFSET_PTEH is offset of PTEH within the PTE; ;-OFFSET_PTEL is offset of PTEL within the PTE; PUTCFG R0, OFFSET _PTEH, R63; disable PTE before
modifying translation PUTCFG R0, OFFSET _PTEL, R2; set new PTEL value PUTCFG R0, OFFSET _PTEH, R1; set new PTEH value,
enable the PTE ;Post-conditions: ;-Ensure SYNCI or RTE is executed before any acces
s through the; ;-enabled PTE. This is ensures that the access is
translated correctly. (;事前条件: ;- R0はPTEの構成空間インデックスを含み; ;- R1は新PTEH値であり(PTEH.Vはセッ
ト); ;- R2は新PTEL値を含み; ;- OFFSET_PTEHはPTE内のPTEHのオ
フセットであり; ;- OFFSET_PTELはPTE内のPTELのオ
フセットであり; PUTCFG R0,OFFSET_PTEH,R6
3;翻訳変更前にPTEをディスエーブル PUTCFG R0,OFFSET_PTEL,R2;
新PTEL値をセット PUTCFG R0,OFFSET_PTEH,R1;
新PTEH値をセットし、PTEをイネーブルする ;事後条件: ;- SYNCI或はRTEが・・・を介して任意のアク
セス前に実行されることを確保; ;- イネーブルされたPTE。これは、アクセスが正し
く翻訳されたことを確保する。) 好適な実施の形態において、PTEフィールドの値は、
該PTEがイネーブルされている間に変更されない。P
TEは、好ましくは、そのコンテンツを変更する前にデ
ィスエーブルされるべきである。しかしながらPTEの
コンテンツは、好適な実施の形態において、任意時に安
全に読取り可能である。PTEは以下の典型的コード・
シーケンスによってディスエーブルされることができ
る。 ;Pre-conditions: ;-R0 contains configuration space index of the PT
E; ;-OFFSET_PTEH is offset of PTEH within the PTE. PUTCFG R0, OFFSET _PTEH, R63 ;Post-conditions: ;-Ensure SYNCI or RTE is executed before any acces
s through the; ;-disabled PTE. This ensures that the exception i
s handled correctly. (;事前条件: ;- R0はPTEの構成空間インデックスを含み; ;- OFFSET_PTEHはPTE内のPTEHのオ
フセットであり; PUTCON R0,OFFSET_PTEH,R63 ;事後条件: ;- SYNCI或はRTEが・・・を介して任意のアク
セス前に実行されることを確保; ;- ディスエーブルされたPTE。これは、例外が正し
く取り扱われたことを確保する。) 次に更なる説明がキャッシュの様々なタイプに対して提
供され、それらキャッシュは、本発明の様々な好適な実
施の形態及び他の実施の形態で使用される仮想キャッシ
ュを含み得る。
【0100】当業界で知られているように、キャッシュ
は「空間的区域(又は場所)」或は「時間的区域」等々
に基づき、CPUに接近してデータ或は命令のコピーを
維持するべく使用される。キャッシュはキャッシュされ
たデータ及び命令へのアクセス・レイテンシを低減し、
それらアクセスに対して使用されるメモリ帯域幅の量を
低減する傾向がある。好ましくは、キャッシュはメモリ
・アクセスを遅延し、統合し、削除し、そして、再指令
することができる。これらの技法は、メモリ・レイテン
シがCPUサイクル時間と比べて大きい場合でさえ、高
度のロード/ストアの性能をイネーブルできる。
【0101】理解して頂きたいことは、しばしばキャッ
シュ属性が特定の具現化/実施の形態に特有であること
である。ここで説明されるキャッシュ構造及び方法論
は、本発明の他の局面(MMU属性、特定命令、構成空
間等々)と組み合わされると特別有益な有用性を提供す
ると信ぜられるが、そのような特定の構造及び方法論は
本発明の様々な実施の形態の範囲を特に限定しているも
のとして解釈されるべきではない。よって、キャッシュ
を全く提供しない実施の形態や、(他のキャッシュと共
に)ここに説明された様々はキャッシュ属性を含む実施
の形態等の全ては、本発明の様々な局面の範囲内であり
得る。
【0102】キャッシュは性能に対して重大な効果を有
し得るが、キャッシュの存在は一般に殆どのソフトウェ
アにとって機能的には透明ないし明白である。これは、
キャッシュが一般的には、きっかり1つの命令ストリー
ムから見れば、メモリ・モデルをもたらさないからであ
る。しかしながらキャッシュを直に管理するソフトウェ
アは(オペレーティング・システム等々)はキャッシュ
の特定の特性にさらされ得る。
【0103】キャッシュの幾つかの特性は具現化固有の
パラメータによって説明され得る。キャッシュを管理す
るソフトウェアはこれらのパラメータに換算して書込ま
れるべきであり、これらのパラメータが目的具現化例に
対して適切にセットさせられることを可能とする機構を
提供する。理想的には、これらのパラメータはロード時
或は操作時に構成可能であるべきであって、異なるキャ
ッシュ組織での具現化例間の二値レベル互換性を可能と
する。しかしながら他の実施の形態において、この情報
をプログラムに固定状態で結び付けることが必要であり
得る。本発明の好適な実施の形態において、2つの機構
がキャッシュ管理に対して提供される。キャッシュ・プ
リフェッチ、割り振り、並びに、一貫性命令が提供さ
れ、それらがユーザ・モード及び特権モードのソフトウ
ェアに利用可能である。これらの命令の使用は、一般
に、ソフトウェアを殆どの具現化例特有のキャッシュ特
性から絶縁する。またこの明細書の別の場所で説明され
ているように、キャッシュ構成レジスタも提供され、そ
れが特定の構成命令を用いている特権モードから構成空
間を用いてアクセス可能である。これは高度の具現化例
特有の機構であり、この機構を用いる任意のソフトウェ
アは、万一それが異なるキャッシュ組織での別の具現化
にポート(変更なしに移植)されるのであれば、重大な
注意を必要とする。その結果、好適な実施の形態におけ
るキャッシュ構成レジスタはソフトウェアによって控え
めに使用されて、その代わりに、キャッシュ・プリフェ
ッチ、割り振り、並びに一貫性命令は、それらが所望の
効果を達成できる場合に使用される。
【0104】好適な実施の形態において、キャッシュの
唯一のレベルは支援されている(他の実施の形態では、
1つ以上のキャッシュのレベルが利用されるのである
が)。本発明の実施の形態で利用される様々な代替例は
以下のものを含む。キャッシュ無し組織が利用され得
て、キャッシング無しにデータ及び命令の双方のアクセ
スがメモリに実行される。統合されたキャッシュ組織が
利用され得て、データ及び命令の双方のアクセスが単一
の統合キャッシュを通過する。分割キャッシュ組織が利
用され得て、データ及び命令のアクセスが別個に処理さ
れる。そのような分割キャッシュ組織は以下の代替的な
組織を含み得る。ただ1つのデータ(又はオペランド)
・キャッシュが具現化され得て、命令アクセスがキャッ
シング無しでメモリに実行されている間にデータ・アク
セスがデータ・キャッシュを通過する。ただ1つの命令
が具現化され得て、データ・アクセスがキャッシング無
しでメモリに実行されている間に命令アクセスが命令キ
ャッシュを通過する。データ・キャッシュ及び命令キャ
ッシュが具現化され得て、命令アクセスが独立して命令
キャッシュを通過している間にデータ・アクセスはオペ
ランド・キャッシュを通過する。一般に、キャッシュ組
織の選択はMMUのPTE組織とは独立している。もし
個別命令キャッシュが提供されれば、そのキャッシュは
書込みアクセスを支援する必要がない。また留意される
べきことは、内部ハードウェア或は外部ハードウェア・
システムはキャッシュのより多くのレベルを提供し得る
ということである。
【0105】キャッシュにおける割り振りのユニットは
キャッシュ・ブロックである(しばしばキャッシュ・ラ
インと呼称される)。キャッシュ・ブロックは幾つかの
メモリ・ブロックの状態のコピーを保持すべく使用され
る。キャッシュ・ブロックは一般にデータ及びアドレス
情報から構成されている。データはメモリ・ブロックの
コピーを保持すべく使用される。アドレス情報が使用さ
れて、(もしあれば)現行キャッシュされているメモリ
・ブロックに固有の追加情報を提供する。正確な情報は
具現化例固有であるが、一般には以下のパーツから構成
されている。そのキャッシュ・ブロックが使用中(有
効)か或は未使用中(無効)かを示すフラグ。そのキャ
ッシュ・ブロックがクリーンか或は汚れているかを示す
フラグ。アドレス・マップ内においてメモリ・ブロック
を識別する情報。そのキャッシュ・ブロックに対するキ
ャッシュ・アクセス及び代替情報。キャッシュ・ブロッ
クに関連されたデータのバイト数はキャッシュ・ブロッ
ク・サイズと呼称される。キャッシュ・ブロック・サイ
ズは一般にnbytesであり、nbytesは2の累
乗である。nbytesの値は少なくともアーキテクチ
ャのレジスタ・サイズ(例えば8バイト)であり、そし
てせいぜいアーキテクチャの最小ページ・サイズ(例え
ば4kバイト)である。nbytesの実際の値は具現
化例固有である。もし具現化例が別個の命令及びオペラ
ンド・キャッシュを提供すれば、キャッシュ・ブロック
・サイズは一般に両キャッシュに対して同一となる。ま
たメモリ・ブロックは切れ目のないメモリのnbyte
sバイトを含む。メモリ・ブロックの物理アドレス及び
有効アドレスは正確にnbytesの倍数である(即
ち、整合されたキャッシュ・ブロック・サイズ)。
【0106】キャッシュを直に管理するソフトウェア
は、しばしば、キャッシュ・ブロック・サイズに晒され
る。好適な実施の形態において、ソフトウェアはキャッ
シュ・ブロック・サイズを具現化例固有のパラメータと
して取り扱い、それを目的具現化用に適するようにセッ
トさせることを可能とする機構を提供する。二値レベル
のソフトウェア互換性が1組の具現化にわたって要求さ
れるような(即ち、この明細書の別の場所で説明されて
いるように一連のマイクロプロセッサ)にわたって要求
されるような他の実施の形態において、そのような具現
化のキャッシュ・ブロック・サイズは一般に同一とな
る。命令キャッシュは命令キャッシュ・ブロックを含
む。データ・キャッシュはデータ・キャッシュ・ブロッ
クを含む。統合されたキャッシュにおいて、各キャッシ
ュ・ブロックは命令及びデータ・キャッシュ・ブロック
の双方であり、そして命令及びデータ・アクセス双方に
対して使用可能である。
【0107】キャッシュ・ブロックはセットを形成すべ
く複製される。セットからキャッシュ・ブロックを選択
すべく使用される値はウェイ(way)と呼称される。
ウェイの数(セット・サイズ及び連想性又は関連性(ass
ociative) としても知られる)はnwayで示され、n
wayは2の累乗であり且つ0より大きい。1セットが
複製されて、キャッシュを形成する。キャッシュからセ
ットを選択すべく使用される値は索引又はインデックス
(index)と呼称される。セットの数はnsets
で示され、nsetsは2の累乗であり且つ0より大き
い。キャッシュの連想性は、特定のメモリ・ブロックが
マッピングされ得る異なるキャッシュ・ブロックの数で
ある。連想性の量はnways(セット・サイズ)で付
与される。以下の構成が可能である: 1.もしnways=1であれば、これは直接マッピン
グされたキャッシュである。メモリ・ブロックはキャッ
シュ内の正確に1つのキャッシュ・ブロック内へマッピ
ングされ得る。
【0108】2.もしnways>1且つnsets>
1であれば、これはnwaysウェイのセット連想性キ
ャッシュである。メモリ・ブロックはキャッシュにおけ
る特定セット内のnwaysキャッシュ・ブロックの任
意内へマッピングされ得る。
【0109】留意されるべきことは、これらの構成の各
々がnways且つnsetsのパラメータの特定選択
に対応していることである。このパラメータ化は3つの
構成全てを覆っている。バイトでのキャッシュ・サイズ
は、キャッシュ・ブロック・サイズをセット数でのセッ
ト・サイズで乗算することによって付与される。もし具
現化が別個の命令及びオペランド・キャッシュを提供す
れば、セット・サイズ及びセット数は各キャッシュ毎に
異なることがある。
【0110】メモリ・ブロックがキャッシュ・ブロック
へマッピングされるウェイは以下のように達成される。
マッピングはメモリ・ブロックのアドレスに基づいてい
る。アドレスはオフセット、インデックス、並びに、タ
グに分割される。これらのフィールド間の境界は、この
明細書の別の場所で説明される具現化例固有特性等によ
って決定される。
【0111】1.オフセットはキャッシュ・ブロック内
のバイトを選択する。オフセット・フィールド内のビッ
ト数はlog2 (nbytes)である。
【0112】2.インデックスはキャッシュ内のセット
を選択する。インデックス・フィールド内にビット数は
log2 (nsets)である。
【0113】3.タグは残りのアドレス・ビットの全て
から構成されている。タグ・フィールド内のビット数は
64−log2 (nsets)−log2 (nbyte
s)である。
【0114】アドレスのマッピングは、セットを識別す
べく、キャッシュ内へのインデックスでの添字付けによ
って進む。このセットはキャッシュ・ブロック全てから
構成されており、それにはこのアドレスがマッピングさ
れ得る。具現化はこのマッピングがアクセスの有効アド
レスか或は物理アドレスかの何れに基づいているかを決
定する。もし翻訳がなければ、或は、もし一致翻訳があ
れば、この区別は重要ではない。加えて、もし具現化の
最小ページ・サイズが、アドレスのインデックスが翻訳
プロセスで変更されないようであれば、再度区別は重要
ではない。
【0115】特定の実施の形態において、(物理アドレ
スを用いての)翻訳後か、或は、(有効アドレスを用い
ての)翻訳前かの何れでインデックス付けを試すかが決
定される。後者の場合、特定アドレスの全ての有効エイ
リアス(シノニム)が同一セットへのインデックス付け
が試されることを確保する必要があり、さもなければキ
ャッシュ操作は正しくなくなる。MMUアーキテクチャ
はこれを達成するために、この明細書の別の場所で説明
されているように、許可された翻訳に制約を負担させ
る。もしそのような制約が尊重されなければ、特定アド
レスの異なる有効エイリアスに対するアクセスは異なる
セット内へマッピングされ得て、キャッシュ内の幾つか
のメモリ箇所の多重的なコピーとなる。好適な実施の形
態において、キャッシュはこうしたキャッシュ・シノニ
ム一貫性を保持する機構を何等提供せず、そしてそのよ
うな欲せざる条件が予想できない誤ったメモリ・モデル
に到り得る。
【0116】アドレスはセット内の特定キャッシュ・ブ
ロック内に保持されると、タグはそのキャッシュ・ブロ
ック内に記録されてこの特定アドレスを識別する。イン
デックス及びオフセットのフィールドは、それらの値が
キャッシュ構造内に固有であるので記録される必要性が
ない。特定の具現化が、その記録されたタグがアクセス
の有効アドレスからのものか、或は、物理アドレスから
のものかを決定する。もし具現化がアドレス空間の全て
を具現化しなければ、上方のタグ・ビットの幾分かは冗
長である。もしタグが有効アドレスから誘導され、且
つ、有効アドレス空間のneffビットが実行される
と、そのタグの(64−neff)ビットが冗長であ
る。同様に、もしタグが物理アドレスから誘導され、且
つ、物理アドレス空間のnphysビットが具現化され
ると、そのタグの(64−nphys)ビットが冗長で
ある。
【0117】電源投入リセット後、特定実施の形態にお
けるキャッシュ状態の値及びキャッシュ構成レジスタは
無効である。好ましくはこれはハードウェアによって実
行され、それは有効ビットがセットされて、全エントリ
が電源投入リセットに及んで無効となることを確保する
(他の実施の形態において、キャッシュ状態及びキャッ
シュ構成レジスタは電源投入リセットに及んで単に未定
義であり得る)。またMMUはディスエーブルされ、こ
れが全キャッシュ状態がバイパスされて、命令フェッチ
及びデータ・アクセスに関して凍結されることを確保す
る。キャッシュはMMUがイネーブルされる前に適切に
構成されるべきである。これは、好ましくは、キャッシ
ュを無効化し(もしハードウェアがそのような無効化を
保証しなければ)、適切な値を(好ましくは4つの)キ
ャッシュ構成レジスタに提供することによって実行され
る。ひとたびMMUがイネーブルされると、キャッシュ
はこの明細書の別な場所でより詳細に説明されているよ
うにイネーブル状態となる。アクセスに対するキャッシ
ュ動作はMMU及びキャッシュ構成によって決定され
る。好適な実施の形態において、MMUがディスエーブ
ル可能となる様々な状況がある。これは、RTE型命令
(この明細書の別の場所でより詳細に説明される)、マ
ニュアル・リセット、パニック事象として知られる特別
な例外、デバッグ例外、或は、デバッグ割り込みによ
る。MMUがディスエーブルされると、キャッシュはキ
ャッシュ構成に拘わらずにその凍結及びバイパス状態に
戻る。好適な実施の形態において、支援された読取り及
び書込みアクセスはメモリの8バイト整合グレインで保
持された8バイトまでのデータに作用する。キャッシュ
・ブロック・サイズは、好ましくは、少なくとも8バイ
トであるので、各アクセスは単一キャッシュ・ブロック
内に入る。
【0118】好ましくは、オペランド/データのキャッ
シュを含む実施の形態はライト−スルー及びライト−バ
ックの動作を支援する。ライト−スルーに対して、各書
込みアクセスは、好ましくは、任意の関連キャッシュ・
ブロックを更新してから、メモリへ伝播する。このアプ
ローチの特性はライト−スルー・キャッシュ・ブロック
が常にメモリ状態のコピーであり、任意の更なるメモリ
更新を必要とせずに廃棄され得ることである。ライト−
バックについては、ライト−アクセスはキャッシュ・ブ
ロック上で行われ、メモリへの書き込みはキャッシュ・
ブロックが廃棄されるまで、延期される。ライト−バッ
ク・キャッシュ動作は、好ましくは、各キャッシュ・ブ
ロックにおけるビットを用いて、クリーン・データ及び
ダーティ・データを識別する。ライト−バックは、特定
キャッシュ・ブロックに対する書込みアクセスの集合を
可能とする。好適な実施の形態において、キャッシュ割
り振りを伴うライト−バックは具現化されるか、或は、
キャッシュ割り振り無しでのライト−バックである。
【0119】キャッシュ可能な読取り及び書込みのアク
セスに対するキャッシュの包括的な動作は次の通りであ
る。
【0120】1.アクセスのアドレスは、この明細書の
別の場所で説明されるインデックス付け手続きを介し
て、キャッシュ内のセットへマッピングされる。
【0121】2.選択/インデックス付けセットにおけ
る各キャッシュ・ブロックはチェックされて、そのタグ
がアクセスのタグと符合するかをチェックする。キャッ
シュ検索アルゴリズムが好ましくは操作して、セット内
に多くとも1つの符合があり得る。
【0122】3.タグ符合の2つの可能な結果がある。
もし何等符合がなければ、これはキャッシュ・ミスであ
る。好適な実施の形態において、代替アルゴリズムが使
用されて、代替用にセット内の適切なキャッシュ・ブロ
ックを選択する。もし、そのアルゴリズムに従って代替
可能なキャッシュ・ブロックが何等なければ、アクセス
がメモリに実行されキャッシュ状態に対する変更は何等
ない。もし、そのアルゴリズムに従って代替可能なキャ
ッシュ・ブロックがあれば、そのキャッシュ・ブロック
が置き換わる。もしそのキャッシュ・ブロックがクリー
ンであれば、そのブロック内のエントリがライト−バッ
ク無しに置き換わり(即ち、ブロック・エントリが単に
再使用され得る)、しかしながらもしそのキャッシュ・
ブロックがダーティであれば、そのデータはそれが再使
用される前にメモリへライト−バックされなければなら
ない。次いでキャッシュ・ブロックは、好ましくは、ク
リーンとしてマーク付けられ、このアクセスのメモリ・
アドレスから補給されて、タグが符合したかのようにア
クセスが継続する。もし符合があれば、これはキャッシ
ュ・ヒットである。リード・アクセスはキャッシュ・ブ
ロックからの適切なバイトを単に戻す。書込みアクセス
はキャッシュ・ブロック内の適切なバイトを更新する。
ライト−スルー動作に対して、書込みはキャッシュ・ブ
ロック状態及びメモリ状態の双方を更新する。ライト−
バック動作に対して、書込みはまさにキャッシュ・ブロ
ック状態を更新して、キャッシュ・ブロックをダーティ
としてマークが付けられる。好適な実施の形態におい
て、ライト−バック・モードでの書込みミスで、TLB
がアクセスされ、タグが更新され、データがキャッシュ
に書込まれ、ライン/ブロックが一杯になるのを待機す
ることは無い(即ち、ライン/ブロックを先ず一杯にし
終えることとは反対に、本発明のハードウェアは好まし
くは特定データがキャッシュに書込まれることを可能と
し、その後にライン/ブロックの残りが一杯にされ
る)。他のアクセスに対する動作は上述のものとは異な
らせることができ(例えば、スワップ・アクセス、プリ
フェッチ・アクセス、割り振りアクセス、並びに、キャ
ッシュ一貫性命令は他の動作となり得る)、本発明は上
記した特定の好ましい動作に限定されるものではない。
【0123】命令フェッチのキャッシュ動作、或は、デ
ータ・アクセスは以下のようにして決定される。もしM
MUがディスエーブルされれば、アクセスはキャッシュ
をバイパスする。もしMMUがイネーブルされれば、キ
ャッシュ動作は、好ましくはグローバル・キャッシュ動
作(キャッシュ構成レジスタで指定された、CCR、I
CCR1、OCCR1等々)と、ページ- レベル・キャ
ッシュ動作(そのアクセスに対してPTEで指定)とに
よって決定される。これらの2つの動作は、好ましく
は、より大きな制限動作を選択することによって組み合
わされる。キャッシュ動作は一般にメモリにおける物理
ページの特性であるので、ソフトウェアは、特定の物理
ページへの全アクセスが互換性あるキャッシュ動作を用
いることを確保しなければならない。例えば、物理ペー
ジに対するデータ・アクセス全ては同一のオペランド・
キャッシュ動作を用いなければならず、物理ページから
の全ての命令フェッチは同一の命令キャッシュ動作を用
いなければならない。
【0124】好適な実施の形態において、キャッシュ動
作は命令アクセス及びデータ・アクセスに対して独立し
て選択可能であるが、好ましくは、特定の物理ページに
対する許可組合せに制限がある。そのような実施の形態
において、キャッシュ不能の命令動作はキャッシュ不能
データ動作(装置或は非キャッシュ)で使用可能であ
る。好ましくは、キャッシュ可能な命令動作はキャッシ
ュ可能データ動作(ライト−スルー或はライト−バッ
ク)で使用可能である。そのような制約は、統合された
キャッシュでの具現化に対する正しい動作を確保すべく
望ましい。好適な実施の形態でのキャッシュ動作に関す
る更なる議論が以下に提供される。
【0125】キャッシュ不能命令動作でのアクセスは、
好ましくは、メモリ・システムに対して直接的に実行さ
れる。好適な実施の形態でのキャッシュ不能命令はキャ
ッシュに置かれず、それ故に、これらのアクセスはキャ
ッシュを、決して、ヒットしないか、或は、キャッシュ
の状態を変更しない。本発明の特定の具現化において、
そのようなアクセスは最適化された方法で使用される。
そのような具現化において、より多くのデータがアクセ
スで指定されるというよりも転送され得て、アクセスは
他のアクセスと共に集合され得る。
【0126】キャッシュされた命令動作でのアクセスは
キャッシュを介して実行される。これらのアクセスはキ
ャッシュをヒットし、クリーン・キャッシュ・ブロック
を割り振ることができる。本発明の特定の具現化におい
て、そのようなアクセスも最適化され得る。そのような
具現化において、アクセスで指定されたものよりも多く
のデータが転送され得て、アクセスは他のアクセスで集
合され得る。
【0127】装置データ動作でのアクセスはメモリ・シ
ステム上で直接的に実行される。装置データは、好まし
くはキャッシュ内に配置されず、それ故にこれらのアク
セスはキャッシュを、決して、ヒットしないか、或は、
キャッシュの状態を変更しない。本発明の好適具現化に
おいて、装置アクセスは最適化されない。そのような具
現化において、アクセスで指定されたデータの正確な量
は転送され、アクセスは他の任意のものとは集合されな
い。留意されるべきことは、好ましくは、この明細書の
別の場所で説明されるSYNCO命令等の同期化命令が
利用されることが望ましいことである。
【0128】非キャッシュデータ動作でのアクセスはメ
モリ・システム上で直に実行される。非キャッシュデー
タは、好ましくは、キャッシュ内に配置されず、それ故
にこれらのアクセスは、決して、キャッシュをヒットし
ないか、或は、キャッシュの状態を変更しない。本発明
の好適具現化において、非キャッシュデータ・アクセス
も最適化され得る。そのような具現化において、アクセ
スで指定されたものよりも多くのデータが転送され得
て、アクセスが他のアクセスと集合され得る。
【0129】ライト−スルー・データ動作でのアクセス
はライト−スルー意味論を用いてキャッシュを介して実
行される。これらのアクセスは、好ましくは、キャッシ
ュをヒットして、読取りの場合には(書込みではない)
クリーン・キャッシュ・ブロックを割り振る(好ましく
は、本発明においてライト−スルーにおいて操作してい
るキャッシュは書込みに対して割り振らない)。ダーテ
ィ・データは決してキャッシュに配置されず、それ故に
これらのアクセスは決してダーティ・データにヒットし
ない。本発明の好適な実施の形態において、そのような
アクセスは最適化され得る。そのような具現化におい
て、アクセスで指定されたものよりも本発明のより多く
のデータが転送され得て、アクセスが他のアクセスと集
合され得る。
【0130】ライト−バック・データ動作でのアクセス
はライト−バック意味論を用いてキャッシュを介して実
行される。これらのアクセスは、好ましくは、キャッシ
ュをヒットし得て、クリーン或はダーティのキャッシュ
・ブロックを割り振ることができる。本発明の好適な具
現化において、そのようなアクセスは最適化され得る。
そのような具現化において、アクセスで指定されたもの
より多くのデータが転送され得て、アクセスは他のアク
セスと集合され得る。
【0131】キャッシュ・アクセスがキャッシュをミス
すると、キャッシュ代替アルゴリズムが使用されて、も
しあれば、どのキャッシュ・ブロックがキャッシュから
除去されようとしているかを決定し、新アクセスがキャ
ッシュされることを可能とする。アクセスのアドレスが
使用されて、キャッシュ内にインデックス付けされ、セ
ットを選択する。選択されたセット内にnwaysキャ
ッシュ・ブロックがあり、これらのが代替の候補であ
る。キャッシュ代替アルゴリズムの詳細は特定の実施の
形態に対して選択され得る。好適な実施の形態は、各セ
ットに対する幾つかの追加状態を維持するアルゴリズム
を用いて、選択がそのセットに対する最新又は最近のア
クセス履歴によって影響されるようにする。特定の実施
の形態で使用されるアルゴリズムは、最初使用されたキ
ャッシュ・ブロックを選択することである。特定の実施
の形態において、キャッシュ・ロッキング特性が提供さ
れ得る。ロックされたキャッシュ・ブロックは代替に対
して適格ではなく、それ故に明白に廃棄されるまでキャ
ッシュに残存することになる。特定実施の形態におい
て、特定セットにおいて全てのキャッシュ・ブロックを
ロックすることは可能である(例えば、この明細書の別
の場所で説明されるPREFI或はPREFO型命令を
用いてロック・ウェイを充填する)。そのような実施の
形態において、代替アルゴリズムは何等代替ブロックを
見出せず、そのセットに対する任意のキャッシュ・ミス
がキャッシング無しにメモリに対して実行されることに
なる。キャッシュ・ロッキングの他の局面は特定実施の
形態に対して最適化され得る。
【0132】好適な実施の形態において、スワップ・ア
クセスはメモリ内で実行され、キャッシュ内ではない。
これは、キャッシュ動作に拘わらず、メモリ・システム
内に安全な同期化を提供する。様々なキャッシュ動作に
対する好適なスワップ命令によって実行される作用は、
以下のものを含む。装置或は非キャッシュの動作に対し
て、有効アドレスはキャッシュされない。スワップはメ
モリ内で自動的に(即ち、完了するまで割り込み無し
に、完了前にバスの制御を試す周辺機器無しに等々)実
行される。ライト−スルー動作に対して、有効アドレス
はキャッシュされ得ないが、ダーティにはならない。も
しキャッシュされれば、キャッシュ・ブロックは無効と
なる。スワップはメモリ内で自動的に実行される。ライ
ト−バック動作に対して、有効アドレスはキャッシュさ
れ得て、ダーティとなり得る。もしキャッシュされれ
ば、キャッシュ・ブロックがパージされる(ライト−バ
ックは、もしダーティであれば、無効となる)。スワッ
プはメモリ内で自動的に実行される。これらの各々の場
合において、スワップ命令の実行後、目的とされたメモ
リ箇所はキャッシュされない。
【0133】好適な実施の形態において、MMUがイネ
ーブルされると、キャッシュ動作の不適切な使用がアク
セスとなって、矛盾状態のキャッシュを見出す。これら
の状態はキャッシュ・パラドックスと呼称される。キャ
ッシュ動作はページ- レベル・キャッシュ及びグローバ
ル・キャッシュ動作で決定され、ページ- レベル或はグ
ローバル・キャッシュ動作の不適切な管理はキャッシュ
・パラドックスに到る。好適な実施の形態において、ソ
フトウェア(例えば、オペレーティング・システム)は
メモリを管理する(1つ或はそれ以上の様々なアプリケ
ーション・プログラムをランさせている間)一方で、以
下の状況を回避している:「UNCACHEDINST
RUCTION」動作を用いる命令アクセスはキャッシ
ュをヒットし、「DEVICE」動作を用いるデータ・
アクセスはキャッシュをヒットし、「UNCACHED
DATA」動作を用いるデータ・アクセスはキャッシュ
をヒットし、「WRITE−THROUGHDATA」
動作を用いるデータ・アクセスはキャッシュをヒット
し、キャッシュ・ブロックはダーティとなる。好適な実
施の形態において、これらのアクセスの動作はアーキテ
クチャとしては未定義であり、好ましくはソフトウェア
は明らかにキャッシュに「一貫性を持たせて(coher
e)」、特定の物理ページのキャッシュ動作が変更される
際にこれらの状況を回避する。MMUがディスエーブル
されると、キャッシュの状態がバイパスされて凍結さ
れ、キャッシュ・パラドックスが生じ得ない。可能なシ
ナリオはソフトウェアにとってはMMUイネーブルにし
た状態でランしてから、そのMMUを何等かの理由でデ
ィスエーブルし、引き続いてそのMMUを再度イネーブ
ルすることである。もしソフトウェアがこのシーケンス
を通じて一貫性メモリを必要とすれば、一貫性は適切な
キャッシュ管理を通じてソフトウェアにおいて達成され
なければならない。
【0134】好適な実施の形態においてキャッシュ及び
MMUの間の重要な相互作用をまとめるために:正規キ
ャッシュ操作はMMUがイネーブルされた際にだけ提供
され;制約はMMU上に配置されてキャッシュ・シノニ
ム問題の解決を補助し;ページ・テーブル・エントリを
変更することが典型的にはキャッシュの適切なソフトウ
ェア管理を必要とする。
【0135】好適な実施の形態において、キャッシュ操
作を制御し且つ管理するために提供されるキャッシュ命
令には3つのカテゴリーがある:プリフェッチ;割り振
り;一貫性(コヒーレンシー)である。そのような命令
は、ソフトウェアがキャッシュ操作を大きくは具現化と
は独立した方法で制御して最適化することを可能とす
る。留意されるべきことは、キャッシュ・ブロック・サ
イズがこれらの命令によってさらされ、この値が特定実
施の形態に対して選択され得ることである。
【0136】好適な実施の形態において、キャッシュ命
令の殆どが、命令ストリームから単に見た際には、メモ
リ・モデルの意味論に対して何等機能的効果を持たな
い。しかしながら、特定の命令、ALLOCO及びOC
BI(これ以降でより詳細に説明されることになる)は
メモリ・モデルに対して注目すべき効果を有する。その
ような命令はメモリ位置の値を変更し得て、変更された
位置の数はキャッシュ・ブロック・サイズによって決定
される。もし異なるキャッシュ・ブロック・サイズでの
具現化に対する移植性が望まれれば、これらの命令を使
用する際には特別な注意が払われるべきである。
【0137】好適な実施の形態は、好ましくは、指定さ
れた有効アドレスからのソフトウェア向けプリフェッチ
に対して2つの命令を提供する。PREFI型命令は、
好ましくは、命令でキャッシュ・ブロックをプリフェッ
チすべく使用され、PREFO型命令は、好ましくは、
データでキャッシュ・ブロックをプリフェッチすべく使
用される。このように使用される際、ソフトウェアはこ
れらの命令を性能ヒントとして考慮し、それらがタイミ
ングに影響するが意味論には影響しない。PREFI動
作は、それがソフトウェア向けであることを除けば、命
令フェッチを非常に好む。PREFO動作は、データが
レジスタよりはむしろキャッシュ・ブロック内へロード
されることを除けば、読取りアクセスを非常に好む。殆
どの点で、プリフェッチは好ましくは正規アクセスのよ
うに動作する。
【0138】そのようなプリフェッチ命令で、キャッシ
ュ動作及びキャッシュ・ロッキングを含むキャッシュ操
作は、好ましくは、正規アクセスと正に同じように実行
される。そのような命令は正規アクセスと正に同様にキ
ャッシュ・パラドックスに敏感である。好適な実施の形
態において、プリフェッチ命令が好ましくは何等効果を
有さない多数のシナリオがある。MMUがディスエーブ
ルにされた時には、プリフェッチは何等効果を有さな
い。装置或はキャッシュ不能の動作でのプリフェッチは
何等効果を有さない。もし実施の形態が命令キャッシュ
或は統合キャッシュを提供しなければ、PREFI命令
は何等効果を有することがない。もし実施の形態がオペ
ランド・キャッシュ或は統合キャッシュを提供しなけれ
ば、PREFO命令は何等効果を有することがない。プ
リフェッチは好ましくはアドレス・エラー、翻訳ミス、
或は、保護例外を引き起こさない。もしアドレス・エラ
ーがあれば、又は翻訳が利用可能でなければ、或は、保
護チェックが失敗すれば、プリフェッチは好ましくは何
等効果を有さない。そのような特性は、ソフトウェアが
プリフェッチを「推測」することを可能とする。もし実
施の形態がキャッシュ・ロッキングを提供すれば、プリ
フェッチ命令は使用され得て、キャッシュのロックされ
た部分に情報をプリロードする。
【0139】好適なPREFI命令が次に更に説明され
る。PREFIはソフトウェア向け命令を指定された有
効アドレスからプリフェッチすることを表している。ソ
フトウェアはこの命令を用いて、特定命令が必要とされ
ることの予備的に先行した通知を付与することができ
る。有効アドレスは、好ましくは、汎用レジスタ
(Rm)のコンテンツを(好ましくは)6ビット符号拡
張変位値(理解して頂けるように、命令の二値コード化
のフィールドの一部としてコードされ得る値等々)に加
算することによって計算される。有効アドレスはメモリ
の包囲ブロックを識別し、それがキャッシュ・ブロック
・サイズに整合されたアドレスでスタートし、キャッシ
ュ・ブロック・サイズと同等のサイズを有する(そのサ
イズは特定実施の形態に対して選択され得る)。好適な
実施の形態は、もし現行キャッシュ動作で許可されれ
ば、キャッシュ内へのメモリ・ブロックのプリフェッチ
を実行することになる。この命令が実行されている間、
例外は何等生じることがない。
【0140】好適なPREFO命令が次に更に説明され
る。PREFOは、指定された有効アドレスからのソフ
トウェア向けデータ・プリフェッチを示す。ソフトウェ
アはこの命令を用いて、特定データが必要とされること
の先行通知を付与することができる。有効アドレスは、
汎用レジスタ(Rm )のコンテンツを(好ましくは)6
ビット符号拡張変位値に加算することによって計算され
る。有効アドレスはメモリの包囲ブロックを識別し、そ
れがキャッシュ・ブロック・サイズに整合されたアドレ
スでスタートし、キャッシュ・ブロック・サイズと同等
のサイズを有する(そのサイズは特定実施の形態に対し
て選択され得る)。好適な実施の形態は、もし現行キャ
ッシュ動作で許可されれば、キャッシュ内へのメモリ・
ブロックのプリフェッチを実行することになる。この命
令が実行されている間、例外は何等生じることがない。
【0141】好適な実施の形態も1つ或はそれ以上の割
り振り型命令を提供する。好適なALLOCO命令は指
定された有効アドレスに対するオペランド・キャッシュ
・ブロックを割り振り(それは好ましくはプリフェッチ
のように動作するが、キャッシュ・ライン補給ないし充
填無しであり、アレイのタグ領域が更新される等々)、
その好適な具体化例が次に更に説明される。有効アドレ
スはメモリの包囲ブロックを識別し、それがキャッシュ
・ブロック・サイズに整合されたアドレスでスタート
し、キャッシュ・ブロック・サイズと同等のサイズを有
する。割り振り命令は割り振られTEAオペランド・キ
ャッシュ・ブロックがメモリからフェッチされる必要が
ないことのヒントを提供する。ALLOCOによって目
標とされたメモリ・ブロック内の各箇所の値は好適な実
施の形態においてゼロにセットされる(他の実施の形態
では、それは単に未定義となり、更なる実施の形態で
は、その先行状態から変化されるが、明白には定義され
ない)。好適なALLOCO命令は保護モデルを破壊す
る任意のデータを明らかとすることがない。ユーザ・モ
ードにおいて、ALLOCO命令はメモリ・ブロック
を、変化させずにおくか、特定実施の形態に対して定義
された何等かのパターンを残すか、或は、実行され得る
特定のソフトウェア・スレッドにアクセス可能な何等か
のデータを残すかの何れかである。特権モードでは、A
LLOCO命令はメモリ・ブロックに任意の値を残し、
それは、特権スレッドが任意のメモリ状態の視認性を構
成し得る理由からである。
【0142】ALLOCOは、好ましくは、ライト−バ
ック・キャッシュ動作と組み合わされて使用されるよう
に設計され、且つ、好ましくは、ALLOCOはオペラ
ンド・キャッシュ・ラインを割り振るように使用され
て、それがストア命令を用いて新データで完全にオーバ
ー- ライトされ、そして引き続きライト−バックされ
る。ALLOCOはメモリから不必要なキャッシュ・ブ
ロック・フェッチを削除し得て、リード・メモリ・レイ
テンシを回避し且つメモリ帯域幅を低減する。割り振り
命令はアドレス・エラー、翻訳ミス、並びに、そのアド
レスへのデータ書込みと正に同様な保護例外に対してチ
ェックされる。好適な実施の形態においてはミスアライ
メント・チェックが何等なく、提供された有効アドレス
はキャッシュ・ブロック・サイズの最も近い正確な倍数
へ向かって下方へ自動的に整合(アライメント)され
る。キャッシュ動作、キャッシュ・パラドックス、並び
に、ALLOCOに対するキャッシュ・ロッキングの処
理は、好ましくは、正規アクセスに対するものと同一で
ある。
【0143】幾つかの状況において、割り振り命令は、
好ましくは何等効果を持たない(例外ケースの検出とは
別)。例えば、MMUがディスエーブルされると割り振
りは何等効果を持たない。装置或は非キャッシュ動作で
の割り振りは何等効果を持たない。もし具現化がオペラ
ンド・キャッシュ或は統合キャッシュの何れも提供しな
ければ、割り振りは何等効果を持たない。
【0144】好適なALLOCO命令が次に更に説明さ
れる。ALLOCOは好ましくは、指定された有効アド
レスに対するオペランド・キャッシュ・ブロックの割り
振りを要求するべく使用される。有効アドレスは、好ま
しくは、汎用レジスタ(Rm)のコンテンツを(好まし
くは)6ビット符号拡張変位値に加算することによって
計算される。有効アドレスはメモリの包囲ブロックを識
別し、それがキャッシュ・ブロック・サイズに整合され
たアドレスでスタートし、キャッシュ・ブロック・サイ
ズと同等のサイズを有する(そのサイズは特定実施の形
態に対して選択され得る)。ALLOCOによって目標
とされたメモリ・ブロックにおける各箇所の値は好適実
施異例においてゼロにセットされる。プログラムは、好
ましくは、これらのの値に依存しない。ALLOCO
は、好ましくは、アドレス・エラー、翻訳ミス、並び
に、保護例外のケースをチェックする。
【0145】好適な実施の形態は、オペランド・キャッ
シュがソフトウェアで管理されることを可能とするキャ
ッシュ一貫性命令のセットをも提供する。好ましくは、
これらの命令は含むものは:命令キャッシュ・ブロック
を無効とするICBI;オペランド・キャッシュ・ブロ
ックを無効とするOCBI;キャッシュ・ブロックをパ
ージするOCBP;オペランド・キャッシュ・ブロック
をライト−バックするOCBWBである。無効に対し
て、キャッシュ・ブロックは好ましくはメモリへのライ
ト−バック無しに廃棄される。パージに対して、キャッ
シュ・ブロックは好ましくはもしダーティであればメモ
リへライト−バックされてから廃棄される。ライト−バ
ック(或は、しばしば「フラッシュ(flush) 」として知
られる)に対しては、キャッシュ・ブロックは好ましく
はもしダーティであればメモリへライト−バックされる
が、廃棄されない。
【0146】OCBI、OCBP、並びに、OCBWB
は物理メモリに対してキャッシュ一貫性を実行する。こ
れらの命令は一貫性を有することになる有効アドレスを
使用して物理メモリにおける箇所を識別する。達成され
た一貫性は有効アドレス空間におけるその物理メモリの
全エイリアスに適用される。しかしながら好適な実施の
形態において、ICBIは有効メモリに対する一貫性を
実行することだけを保証する。この命令は有効アドレス
を用いて、一貫性を有することになる有効メモリにおけ
る箇所を識別する。達成された一貫性(コヒーレンシ
ー)は、好ましくは有効アドレス及びICBIで見られ
る有効アドレス空間だけに適用される。他の実施の形態
において、これより強力な一貫性(コヒーレンシー)性
(例えば、物理メモリに対する一貫性としてこれを具現
化することによって)が提供され得るが、一般にはソフ
トウェアは、異なる具現化に対するソフトウェアの移植
性(portability)が要求されるこの動作に依存しない。
【0147】そのような命令は、好ましくは、アドレス
・エラー、翻訳ミス、並びに、メモリ・アクセスと同様
な保護例外に対してチェックされる。ICBIは、好ま
しくは、そのアドレスからの命令フェッチと正に同様に
チェックされる。ICBIにおける例外ケースは代替例
ではあるけれども好適な実施の形態において提起され、
もし例外ケースが生ずると、命令は例外の開始無しに完
了へ向けて実行されるが、命令キャッシュの状態に影響
しない(そのような動作は、望ましくは、ハードウェア
のコストがそのようなICBI命令を何等かの実施の形
態でデバッグ等の幾分かの複雑性を伴って低減されるよ
うに具現化することを可能とする)。
【0148】OCBIは、好ましくは、そのアドレスに
対するデータ書込みと正に同様にチェックされる。その
実行でメモリ値を変えることができるので書込みと考え
られる(命令ストリームから見た場合)。OCBP及び
OCBWBは、好ましくは、そのアドレスに対する読取
り性或は書込み性に対してチェックされる。よって、保
護例外は、もし読取り及び書込みの双方が禁止されたの
であればチェックされる。例外型は、それら命令の実行
がメモリ値を変えることにならないので読取り例外とし
て考えられる(命令ストリームから見た場合)。これら
の命令に対してのミスアライメントのチェックは何等な
く、提供された有効アドレスはキャッシュ・ブロック・
サイズの最も近い正確な倍数へ向かって下方へ自動的に
整合(アライメント)される。
【0149】これらの命令の好適な形態はキャッシュの
状態に対して直に操作する。多くの重要な点で、これら
の命令は、好ましくは、正規メモリ・アクセスに対して
全く異なって動作する。例えばこれらの命令は、MMU
がディスエーブルされていてもキャッシュの状態を更新
する。また、これらのの命令は、キャッシュ・ロッキン
グされていても、キャッシュの状態を更新する。加え
て、これらの命令は、プログラムされたキャッシュ動作
に拘わらず、キャッシュの状態を更新する。これらの命
令はキャッシュ・パラドックスに敏感ではない。しかし
ながら明らかとなるように、そのような命令の機能性は
キャッシュ操作を本発明に従って管理すべく望ましくは
利用され得る。
【0150】これらの命令は、好ましくは、使用法の簡
単な、充分に定義されたモデルを有する。ソフトウェア
はこれらの命令を使用可能であって、キャッシュ及びM
MU構成に拘わらず、キャッシュに対する保証された効
果を有する。もし特定の実施の形態が命令キャッシュ或
は統合キャッシュを提供しなければ、ICBIは例外に
対してチェックされるが、さもなければ操作無しとして
動作する。もし特定実施の形態がオペランド・キャッシ
ュ或は統合キャッシュを提供しなければ、OCBI、O
CBP、並びに、OCBWBが例外に対してチェックさ
れるが、さもなければ操作無しとして動作する。統合さ
れたキャッシュの実施の形態において、ICBI及びO
CBIはキャッシュに対して同一の効果を有するが、そ
れら例外チェックは異なると留意されるべきである。ソ
フトウェアは、好ましくは、ICBIが命令無効に対し
て使用され、OCBIがデータ無効に対して使用される
ことを保証する。これはソフトウェアの分割キャッシュ
を伴う他の実施の形態への移植性を改善する。
【0151】好適なICBI命令が次に更に説明され
る。ICBIは、好ましくは、指定された有効アドレス
に対応する命令キャッシュ・ブロック(もしあれば)を
無効にする。もし統合キャッシュ組織が使用され且つ命
令キャッシュ・ブロック内のデータがダーティであれ
ば、それは好ましくはメモリへのライト−バック無しに
廃棄される。有効アドレスは、汎用レジスタ(Rm )の
コンテンツを(好ましくは)6ビット符号拡張変位値に
加算することによって計算される。有効アドレスはメモ
リの包囲ブロックを識別し、それはキャッシュ・ブロッ
ク・サイズに整合されたアドレスでスタートし、キャッ
シュ・ブロック・サイズと同等のサイズを有する(その
サイズは特定実施の形態に対して選択され得る)。IC
BIはアドレス・エラー、翻訳ミス、並びに、保護例外
ケースをチェックする。ICBIの実行直後、例外ケー
スが何等検出されてなかったと想定して、有効アドレス
空間における目標とされたメモリ・ブロックが任意の命
令或は統合キャッシュ内に存在しないことが保証され
る。留意されるべきことは、ICBIが有効メモリに対
する無効を実行する。他の有効アドレス或は他の有効ア
ドレス空間でのエイリアスの無効の保証は何等ない。
【0152】好適なOCBI命令が次に更に説明され
る。OCBIは、好ましくは、指定された有効アドレス
に対応するオペランド・キャッシュ・ブロック(もしあ
れば)を無効にする。もしオペランド・キャッシュ・ブ
ロックにおけるデータがダーティであれば、それはメモ
リへのライト−バック無しに廃棄される。有効アドレス
は、汎用レジスタ(Rm )のコンテンツを(好ましく
は)6ビット符号拡張変位値に加算することによって計
算される。有効アドレスはメモリの包囲ブロックを識別
し、それはキャッシュ・ブロック・サイズに整合された
アドレスでスタートし、キャッシュ・ブロック・サイズ
と同等のサイズを有する(そのサイズは特定実施の形態
に対して選択され得る)。OCBIはアドレス・エラ
ー、翻訳ミス、並びに、保護例外ケースをチェックす
る。OCBIの実行直後、例外ケースが何等検出されて
なかったと想定して、物理アドレス空間における目標と
されたメモリ・ブロックが任意のオペランド或は統合キ
ャッシュ内に存在しないことが保証される。
【0153】好適なOCBP命令が次に更に説明され
る。OCBPは、好ましくは、指定された有効アドレス
に対応するオペランド・キャッシュ・ブロック(もしあ
れば)をパージする。もしオペランド・キャッシュ・ブ
ロックにおけるデータがダーティであれば、それは廃棄
される前にメモリへライト−バックされる。有効アドレ
スは、汎用レジスタ(Rm )のコンテンツを(好ましく
は)6ビット符号拡張変位値に加算することによって計
算される。有効アドレスはメモリの包囲ブロックを識別
し、それはキャッシュ・ブロック・サイズに整合された
アドレスでスタートし、キャッシュ・ブロック・サイズ
と同等のサイズを有する(そのサイズは特定実施の形態
に対して選択され得る)。OCBPはアドレス・エラ
ー、翻訳ミス、並びに、保護例外ケースをチェックす
る。OCBPの実行直後、例外ケースが何等提起されて
なかったと想定して、物理アドレス空間における目標と
されたメモリ・ブロックが任意のオペランド或は統合キ
ャッシュ内に存在しないことが保証される。
【0154】好適なOCBWB命令が次に更に説明され
る。OCBWBは、好ましくは、指定された有効アドレ
スに対応するオペランド・キャッシュ・ブロック(もし
あれば)をライト−バックにする。もしオペランド・キ
ャッシュ・ブロックにおけるデータがダーティであれ
ば、それはメモリへライト−バックされるが廃棄されな
い。有効アドレスは、汎用レジスタ(Rm )のコンテン
ツを(好ましくは)6ビット符号拡張変位値に加算する
ことによって計算される。有効アドレスはメモリの包囲
ブロックを識別し、それはキャッシュ・ブロック・サイ
ズに整合されたアドレスでスタートし、キャッシュ・ブ
ロック・サイズと同等のサイズを有する(そのサイズは
特定実施の形態に対して選択され得る)。OCBWBは
アドレス・エラー、翻訳ミス、並びに、保護例外ケース
をチェックする。OCBWBの実行直後、例外ケースが
何等提起されてなかったと想定して、物理アドレス空間
における目標とされたメモリ・ブロックが任意のオペラ
ンド或は統合キャッシュ内でダーティにならないことが
保証される。
【0155】先に説明したように、特定の好適な実施の
形態はキャッシュ或は「仮想キャッシュ」に対する仮想
のインデックス付きの仮想タグされた構成を具現化す
る。そのような仮想キャッシュの好適な実施の形態に関
する更なる詳細が次に説明される。留意されるべきこと
は、他の実施の形態がここで説明されるような仮想キャ
ッシュ或は特定の仮想キャッシュを必ずしも用いないこ
とであり、しかしながらそのような仮想キャッシュはそ
のような好適な実施の形態において著しい長所及び利益
を提供するものと信ぜられる。
【0156】好適な実施の形態は、好ましくは、分割キ
ャッシュ組織を利用し、オペランド・データと命令とに
対して別個のキャッシュがある。両キャッシュは、好ま
しくは、有効アドレスを用いてインデックス付けられ、
有効アドレス1によってタグ付けされる(仮想キャッシ
ュ)。そのような好適構成は、この明細書の別の場所で
説明されるMMU及びキャッシュ・アーキテクチャと共
に利用され得て、かつそれらにより支援され得る。その
ような仮想キャッシュの使用は、好ましくは、殆どのキ
ャッシュ・ヒットがPTEアレイに相談する必要性無し
にキャッシュ内で具現化されることを可能とする。これ
は、物理アドレスに基づく具現化に関連する性能及びパ
ワー上の長所を付与する。本発明の仮想キャッシュは、
この明細書の別の場所でより充分に説明されているよう
に、PTE情報の相当のものをキャッシュ・ブロック内
に保持する。
【0157】キャッシュ具現化が有効アドレスを用い
て、キャッシュ・ブロックにタグ付けすると、キャッシ
ュ・シノニムの問題が別の場所で説明されているように
考慮されなければならない。好適なMMUアーキテクチ
ャは、特定の物理アドレスが多重的な有効アドレス内及
び多重的な有効アドレス空間内へマッピングされること
を可能とする。問題は、これらのエイリアスが多重的な
同時キャッシュ・ブロックが特定の物理アドレスに対し
て有効となり得るかどうかであり、即ち、キャッシュが
シノニムを含み得るかどうかである。もしシノニムが許
容されれば、これらのシノニムの一貫性が考慮されなけ
ればならない。
【0158】好適な実施の形態において、シノニムはオ
ペランド・キャッシュ・ブロックに対して存在しないこ
とが保証される。好適な実施の形態はここで議論される
透明な機構を提供してオペランド・キャッシュ・シノニ
ムを解決して、任意の物理アドレスに対応するせいぜい
1つのオペランド・キャッシュ・ブロックがあることが
保証される。また、特定の好適な実施の形態において、
シノニムは命令キャッシュ・ブロックに対して存在し得
て、そのような実施の形態は命令キャッシュ・シノニム
を解決すべく機構を提供することが要求されない。特定
の物理アドレスに対応する多重的な命令オペランド・ブ
ロックが存在し得る。そのような実施の形態において好
ましくは保証されることは、特定の物理アドレスの任意
のシノニムが同一セット内で生ずることである。また、
ソフトウェア制約及びMMUの適切使用等々に関して
は、この明細書の別の場所での議論を参照されたい。
【0159】よって好適な実施の形態は、オペランド・
キャッシュにおけるシノニムを解決するが、その命令キ
ャッシュにおけるシノニムを解決しない。命令キャッシ
ュは4- ウェイ連想性(関連性)であるので、命令キャ
ッシュにおいて特定の物理アドレスの4つのシノニムま
であり得る。シノニム解決に対する方針の間に非対称性
がある。その理由は、命令キャッシュが書込みを支援し
ておらず、そして命令の多重コピーが命令キャッシュに
おいて非一貫性につながっていないからである。しかし
ながらそのような好適な実施の形態において、この特性
はICBI命令を介してソフトウェアに見える。好まし
くはソフトウェアは、命令を無効化する際に特別な注意
を払う(例えば、シノニムも無効化されることを確保す
るため等々)。キャッシュ及びMMUアーキテクチャの
他の局面(この明細書別の場所に説明されている)は有
効的にアドレスされ且つ有効的にタグ付けされたキャッ
シュと作業するように設計されてきた。好ましくは、ソ
フトウェアは、この明細書の別の場所で説明されている
ように、ページ・テーブル・エントリのコンテンツが変
更されるとキャッシュ一貫性を確保する。またこの明細
書の別の場所で説明されているように、好適な実施の形
態における有効タグを含むキャッシュの内部状態は、構
成レジスタを介して見ることができる。これは管理され
制御されるべきキャッシュにフレキシブルで役立つウェ
イを提供する等々である。
【0160】好適な実施の形態において、両キャッシュ
は4- ウェイ連想性(関連性)である。またこうした好
適な実施の形態において、代替アルゴリズムは1セット
当たり6ビットの状態を使用して、最初に使用された方
針(LRU)を具現化する。このLRU状態は、それら
の最後の使用によって決定された順番でそのセット内に
有効ブロックを注文する。この状態は順序付けされたリ
ストと同等であり、そのヘッド要素がその最初に使用さ
れた有効ブロックを表しており、そのテール要素が最後
に使用された有効ブロックを表している。無効ブロック
は好ましくはこのリストには現れない。
【0161】更に好適な実施の形態はキャッシュ・ロッ
キング機構を提供する。キャッシュ・ロッキングはソフ
トウェアが指定されたメモリ・ブロックがキャッシュ内
にロックされるように構成することを可能とする。好適
な実施の形態におけるロッキングの粒度がウェイであ
る。キャッシュにおける各ウェイは独立してロックされ
るか或はアンロックされる。ひとたびウェイがロックさ
れると、そのウェイは代替に対する候補ではなく、よっ
て正規キャッシュ操作はロック・ウェイのキャッシュ・
ブロックを駆逐しない。各キャッシュ可能なアクセスに
対する代替方針は、好ましくは、以下のように動作す
る。
【0162】1.もしアクセスがキャッシュをヒットす
れば、このキャッシュ・ブロックはそれを順番リストの
テールに移動することによって最後に使用されものとし
てマークされる。
【0163】2.さもなければ、もしアクセスがキャッ
シュをミスして、セットが無効及びアンロック双方であ
るブロックを含めば、それらブロックの内の1つが選択
される。もし多重的にそのようなブロックがあれば、そ
れらブロックの内の1つが選択される(好適な実施の形
態において実際の選択は重要ではない)。選択されたブ
ロックは、それを順番リストのテールに移動することに
よって最後に使用されたものとしてマークされる。
【0164】3.さもなければ、もしアクセスがキャッ
シュをミスして、セットが有効及びアンロック双方であ
るブロックを含めば、それらブロックの内の1つが選択
される。好ましくは1つのブロックが選択され、それが
最初に使用されたものであり、それは順番リストのヘッ
ドに最も近いものである。選択されたブロックは、それ
を順番リストの最後に移動することによって最後に使用
されたものとしてマークされる。
【0165】4.さもなければ、アクセスがキャッシュ
をミスして、全てのブロックがロックされる(それらは
有効或は無効であり得る)。この場合、代替用の候補は
何等なく、アクセスはキャッシング無しでメモリに具現
化される。
【0166】代替目的に対して、好適な実施の形態にお
ける全キャッシュ命令はアクセスとしてカウントし、最
初に使用された情報を上記アルゴリズムによって要求さ
れるように更新させる。好適な実施の形態は6ビット・
フィールド(LRUと呼称)を利用して、代替方針の状
態を記録する。各キャッシュ・セットに関連されたLR
Uフィールドがある。留意されるべきことは、それが先
の代替方針よりも優位に立つことが可能であって、指定
ウェイ内へのプリフェッチを可能としている。この特徴
は、ロックされたウェイがプリフェッチ命令を用いて占
有されることを可能とし、この明細書の別の場所で説明
される。
【0167】好適な実施の形態におけるキャッシュ・ロ
ッキングはキャッシュ構成レジスタを介して構成され、
それ故に好ましくは特権モードだけで管理される。好適
なキャッシュ・ロッキング構成は、アドレス空間識別子
に拘わらず、ユーザ及び特権双方の全てのソフトウェア
実行スレッドに影響する。キャッシュ・ロッキングの典
型的な使用法は、キャッシュ状態をキャッシュ操作とR
AM操作の間で仕切ることである。1つ或はそれ以上の
キャッシュ・ウェイはロックされ、メモリ箇所から成る
セットでロードされる。それらメモリ箇所はロー・レイ
テンシ(低待ち時間)RAMとして振る舞って、その
間、任意のアンロック・キャッシュ・ウェイはキャッシ
ュとして動作続ける。キャッシュ・ロッキング機構の効
果は、キャッシュ代替アルゴリズムに影響することであ
る。他のキャッシュ特性及び動作は、好ましくは、キャ
ッシュ・ロッキングの使用で影響されない。キャッシュ
・ブロックがキャッシュ内へロックされると、好適実施
理例におけるキャッシュ・ブロックに対するデータ及び
アドレス情報は、読取り、書込み、キャッシュ命令、並
びに、キャッシュの正規操作によって依然として変更可
能である。キャッシュ・ロッキングが提供する唯一の特
性は、ロックされたキャッシュ・ブロックが代替用に選
択されることを防止することである。
【0168】ひとたびウェイがロックされれば、そのウ
ェイは代替用の候補ではなく、よって正規キャッシュ操
作はロックされたウェイにおいてキャッシュ・ブロック
を駆逐しない。このルールは、好ましくは、キャッシュ
・ブロックが有効であるか或は無効であるかに拘わらず
適用される。よってロックされたウェイにおける無効キ
ャッシュ・ブロックは代替用の候補ではない。キャッシ
ュ内に任意のウェイ或は全ウェイをロックすることがで
きる。もし幾つかのウェイがアンロックされれば、正規
キャッシュ操作は全てのこれらのアンロックされたウェ
イにおいて続行する。もし全てのウェイはロックされれ
ば、キャッシュ・ミスはキャッシュ・ブロックがキャッ
シュ内に割り振られることを許容せず、任意のキャッシ
ング無しにメモリに対して直に達成される。
【0169】キャッシュ一貫性命令は、好ましくは、そ
れらキャッシュ・ブロックがロックされているか否かに
拘わらず、キャッシュ・ブロックに直に操作する。MM
Uによって提供される保護機構は所望されれば使用され
て、ロックされたキャッシュ・ブロックを不適切なアク
セスに抗して保護する。もしソフトウェア実行スレッド
が命令キャッシュ・ブロックに対して成就可能性を有す
れば、そのスレッドはそのブロックを無効化できる(ロ
ッキングに拘わらず)ことに留意すべきである。同様
に、もしスレッドがオペランド・キャッシュ・ブロック
に対して書込み可能性を有すれば、そのスレッドはその
ブロックを無効化できる(ロッキングに拘わらず)。キ
ャッシュは正規代替アルゴリズムより優位に立つ機構を
提供できて、メモリ・ブロックが、この明細書の別の場
所でより詳細に説明されているように、プリフェッチ命
令を用いて指定されたウェイ内へロードされ得る。好適
な実施の形態は、これもまたこの明細書の別の場所でよ
り詳細に説明されているように、キャッシュ構成レジス
タを利用する。そのような好適な実施の形態は分離した
命令及びオペランド・キャッシュを支援し、キャッシュ
構成レジスタも、好ましくは同一のウェイ内で分割され
る。各キャッシュは以下のレジスタと関連されている:
グローバル・キャッシュ動作及びキャッシュ・ロッキン
グを制御するキャッシュ構成レジスタ(ICCR及びO
CCR);キャッシュ・タグ情報を含む構成レジスタの
アレイ(ICACHETAG及びOCACHETA
G);キャッシュ・データ情報を含む構成レジスタのア
レイ(ICACHEDATA及びOCACHEDAT
A)。
【0170】構成レジスタICCR及びOCCRはGE
TCFG命令を用いて読取り可能であると共に、PUT
CFG命令を用いて書込み可能である。そのようなレジ
スタは、好ましくは、キャッシング、グローバル・キャ
ッシュ無効化、ライト−スルー/ライト−バック選択
(オペランド・キャッシュのみ)、並びに、キャッシュ
・ロッキングの管理をイネーブルするために使用され
る。PUTCFG乃至ICCRは、好ましくは、同期化
命令(SYNCI)で追従されなければならず、それ
も、PUTCFG乃至OCCRが他の同期化命令(SY
NCO)で追従されなければならない間である。本発明
の範囲の限定性が意図されている一方で、好適な実施の
形態においてそのような命令は、キャッシュ特性が変更
中の間、命令フェッチ及びデータ・アクセスの同期化を
確保する。
【0171】タグ及びデータ構成レジスタは、好ましく
は、GETCFG命令を用いて読取り可能である。これ
は、特権モード・スレッドがキャッシュの内部状態を見
ることを可能とする。これは、望ましくは、キャッシュ
一貫性命令と組み合わされて使用され得て、特定のキャ
ッシュ・ブロックに一貫性をもたせる。また、デバッギ
ングの間にキャッシュ状態の視認性を付与すべくデバッ
ガで使用されることも望ましい。留意されるべきこと
は、キャッシュ状態は非常に揮発性であり幾分かの注意
が予測可能な結果を達成するには必要である、というこ
とである。キャッシュ状態は安定状態で以下の状況で観
測される。MMUがディスエーブルされると、命令キャ
ッシュ及びオペランド・キャッシュの双方が凍結され
る。これらのキャッシュの状態は、GETCFGを介し
て観測されると不揮発性となる。
【0172】MMUがイネーブルされると、安定キャッ
シュ状態を観測するには相当な注意が必要とされる。特
に、キャッシュ・ロッキング機構はキャッシュ代替方策
がキャッシュ状態を変更するを阻止すべく使用されるべ
きである。ロックされた命令キャッシュ・ウェイに対応
するICACHETAG及びICACHEDATA構成
レジスタは、GETCFGを介して観測される際に不揮
発性となる。オペランド・キャッシュに対して、任意の
ロードやオペランド・キャッシュをヒットする格納又は
記憶アクセスを試すことを回避する必要性もあり、その
理由はそれらがOCACHETAG及びOCACHED
ATAへの変更となり得るからである。安定したオペラ
ンド・キャッシュ状態を観測するために、ソフトウェア
は書込まれるべきであって、これらのGETCFGシー
ケンス内へのロード及びストアを使用することを回避
し、これが適切な同期化命令(SYNCO)バリアを必
要とする可能性がある。この場合、ロックされたオペラ
ンド・キャッシュ・ウェイに対応するOCACHETA
G及びOCACHEDATA構成レジスタは、GETC
FGを介して観測される際に不揮発性となる。
【0173】また留意されるべきことは、これらの構成
レジスタに書込まれるべきではないことである。PUT
CFGのこれらのレジスタの内の任意のものに対する動
作は未定義の動作に結びつき得る。特に、メモリ・モデ
ルは譲歩され得て、メモリ・アクセスの動作は予測不可
能である。
【0174】好適な実施の形態において、ICCR0及
びICCR1の2つの命令キャッシュ制御レジスタがあ
る。ICCR0について留意されるべきことは、ソフト
ウェアがこのレジスタに書込まれる際に注意を払うべき
であることである。もし命令キャッシングがイネーブル
からディスエーブルへ変更されれば、命令キャッシュは
キャッシュ・パラドックスを防止すべく同時に無効化さ
れるべきである。
【0175】例示的目的のみで、図7A及び図7Bは好
適な実施の形態で使用されたICCR0及びICCR1
構成レジスタのフィールドの典型的な実施の形態の要約
を提供している。他の実施の形態はそのような構成レジ
スタに対して異なる構成を利用可能であり、図示された
特定の具現化は本発明を限定しようと意図されていな
い。
【0176】好適な実施の形態において、ICACHE
TAG構成レジスタは2- 次元アレイとして組織化され
ている。このアレイは、好ましくは、ウェイ番号及びイ
ンデックス番号で添字付けられて命令キャッシュにおけ
る特定ブロックに対するタグ情報を付与している。各命
令キャッシュ・ブロックに対するこのタグ情報は1つの
構成レジスタ内に保持される。ICACHETAG0
は、好ましくは、有効アドレス・タグを保持している。
このレジスタは好ましくは有効ビットをも含む。これは
無効ブロックを示すべくクリアされるか、或は有効ブロ
ックを示すべくセットされる。ブロックが無効となる
と、他の全てのフィールドは未定義値を有する。留意さ
れるべきことは、好適な実施の形態において、ICAC
HETAG構成レジスタへの書込みは未定義動作に結び
つくことができる、ということである。
【0177】例示的目的で、図7Cは好適な実施の形態
で使用されたICACHETAG構成レジスタのフィー
ルドの典型的な実施の形態の要約を提供している。他の
実施の形態はそのような構成レジスタに対する異なる構
成を利用可能であり、図示された特定の具現化は本発明
の限定的に試すことを意図したわけではない。
【0178】好適な実施の形態において、ICACHE
DATA構成レジスタは3次元アレイとして組織化され
ている。このアレイは、好ましくはウェイ番号、インデ
ックス番号、並びに、レジスタ番号で添字付けられて、
命令キャッシュにおける特定ブロックに対してデータ情
報を付与している。ICACHEDATAにおける情報
は、好ましくは、対応するICACHETAGが有効で
ある際に定義されるのみである。1つの特定の好適な実
施の形態において、例えば、各命令キャッシュ・ブロッ
クは32バイトのデータを含む。これらの32バイトは
4つの64ビット構成レジスタにわたって分配される。
これらのレジスタはrで番号付けられ、rは[ 0,3]
内である。このブロックでキャッシュされた物理アドレ
スはPで表され、Pはキャッシュ・ブロック・サイズの
倍数であることを仮定する。物理メモリはPMEMと呼
称されるバイト- アレイで表されていることを仮定す
る。レジスタrの下方の32ビットはPMEMに対応す
るキャッシュされたデータを含む[P+8r FOR 4]。レジス
タrの上方の32ビットはPMEMに対応するキャッシ
ュされたデータを含む[P+8r+4 FOR 4]。
【0179】各ICACHEDATAレジスタにおける
データのエンディアネス(endianness)は、好ましくは2
つの32ビット・メモリ・アクセスと一貫している。こ
のデータは、好ましくは、2つの命令としての解釈に対
して常に正しくフォーマットされる(例えば、32ビッ
トの第1命令セットは各々、「MODE A命令」)。小さな
エンディアン・モード(little-endian mode)でも、4つ
の命令としての解釈に対して正しくフォーマットされる
(例えば、16ビットの第2命令セットは各々、「MODE
B命令」)。しかしながら大きなエンディアン・モード
(big-endian mode) では、第1及び第2MODE B命令がレ
ジスタ内でスワップ状態で現れ、第3及び第4MODE B命
令もスワップ状態で現れる。このスワップ状態はソフト
ウェアで試されることがない。留意されるべきことは、
ICACHEDATA構成レジスタへの書込みは未定義
動作に結びつくことが可能である。
【0180】例示的目的に対して、図7Dは好適な実施
の形態で使用されるICACHEDATA構成レジスタ
のフィールドの典型的実施の形態の要約を提供してい
る。他の実施の形態はそのような構成レジスタに対する
異なる構成を利用可能であり、図示された特定の具現化
は本発明の限定的に試すことを意図したわけではない。
【0181】好適な実施の形態において、OCCR0及
びOCCR1の2つのオペランド・キャッシュ制御レジ
スタがある。OCCR0レジスタに関しては、ソフトウ
ェアはこのレジスタに対する書込みに際して注意を払う
べきである。もしオペランド・キャッシュが無効化され
ると、任意のダーティ・キャッシュ・ブロックの状態が
失われる。OCCR0.OCE或はOCCR0.OWT
フィールドの何れかの値を変更することはキャッシュ動
作における変更となり得る。
【0182】例示的目的で、図7E及び図7Fは好適な
実施の形態で使用されるOCCR0及びOCCR1の構
成レジスタのフィールドの典型的実施の形態の要約を提
供している。他の実施の形態はそのような構成レジスタ
に対する異なる構成を利用可能であり、図示された特定
の具現化は本発明を限定することを意図したわけではな
い。
【0183】好適な実施の形態において、OCACHE
TAG構成レジスタは2次元アレイとして組織化されて
いる。このアレイは、好ましくはウェイ番号及びインデ
ックス番号で添字付けされて、オペランド・キャッシュ
における特定のブロックに対するタグ情報を付与してい
る。各オペランド・キャッシュ・ブロックに対するタグ
情報は2つの構成レジスタ内に保持される:OCACH
ETAG0は有効アドレス・タグを保持し;OCACH
TAG1は物理アドレス・タグを保持する。各レジスタ
は、好ましくは有効ビットを含む。これらのは共にクリ
アされて無効ブロックを示すか或は共にセットされた有
効ブロックを示すかの何れかとなる。ブロックが無効と
なると、他の全てのフィールドは未定義値を有する。留
意されるべきことは、OCACHETAG構成レジスタ
への書込みが未定義動作に結びつくことができることで
ある。
【0184】例示的目的で、図7G1〜3及び図7Hは
好適な実施の形態で使用されるOCACHETAG0及
びOCACHETAG1の構成レジスタのフィールドの
典型的実施の形態の要約を提供している。他の実施の形
態はそのような構成レジスタに対する異なる構成を利用
可能であり、図示された特定の具現化は本発明を限定す
ることを意図したわけではない。
【0185】好適な実施の形態において、OCACHE
DATA構成レジスタは3次元アレイとして組織化され
ている。このアレイは、好ましくはウェイ番号、インデ
ックス番号、並びに、レジスタ番号で添字付けされて、
オペランド・キャッシュにおける特定のブロックに対す
るデータ情報を付与している。OCACHEDATAに
おける情報は、好ましくは、対応するOCACHETA
Gが有効である際に定義されるのみである。
【0186】好適な実施の形態において、各オペランド
・キャッシュ・ブロックは32バイトのデータを含む。
これらの32バイトは4つの64ビット構成レジスタに
わたって分配されている。これらのレジスタはrと番号
付けされ、rは[ 0,3] 内である。このブロックでキ
ャッシュされた物理アドレスはPで表され、Pはキャッ
シュ・ブロック・サイズの倍数であることを仮定する。
物理メモリはPMEMと呼称されるバイト- アレイで表
されていることを仮定する。レジスタrはPMEMに対
応するキャッシュされたデータを含む[P+8r FOR 8]。各
OCACHEDATAレジスタにおけるデータのエンデ
ィアネスは64ビット・メモリ・アクセスと一貫してい
る。GETCFG命令は64ビット読取りを実行し、そ
れ故にメモリ・エンディアネスと一貫する値を戻す。留
意されるべきことは、OCACHEDATA構成レジス
タへの書込みは未定義動作に結びつくことができる、と
いうことである。
【0187】例示的目的で、図7Iは好適な実施の形態
で使用されるOCACHEDATA構成レジスタのフィ
ールドの典型的実施の形態の要約を提供する。他の実施
の形態はそのような構成レジスタに対する異なる構成を
利用可能であり、図示された特定の具現化は本発明の限
定的に試すことを意図したわけではない。
【0188】また例示的目的で、図8A及び図8Bは好
適な実施の形態の(ここで説明されているように構成レ
ジスタを介して好ましくは具現化されるものとして)仮
想キャッシュの概観的な斜視図を提供している。pta
gアレイ及びvtagアレイの別個のV有効フィールド
が留意されるべきである。例えば、キャッシュ一貫性に
関してはptagチェックが具現化される際(この明細
書の別の場所で説明されているように、外部的に提供さ
れたキャッシュ一貫性/スヌープのコマンドに応答する
等)、そのような複製有効フィールドはそのような機能
性に対するハードウェアを具現化する点で改善を提起す
る。また留意されることは、図8Bにおいて、典型的L
RUアレイが図示され、この明細書の別の場所で説明さ
れているように、それがキャッシュ代替方針に対する好
適な実施の形態で使用される。
【0189】本発明に従ったキャッシュ管理に関する典
型的コード・シーケンス及びアルゴリズムが次に説明さ
れる。
【0190】先に説明したように、キャッシュはMMU
がイネーブルされる前に初期化されるべきである。好適
な実施の形態において、必要とされるステップは以下の
通りである。
【0191】1.オペランド・キャッシュのグローバル
動作を指定し、オペランド・キャッシュが使用される前
にその状態を無効化するためのOCCR0への書込み。
【0192】2.オペランド・キャッシュ・ロッキング
情報を構成するためのOCCR1への書込み。
【0193】3.命令キャッシュのグローバル動作を指
定し、命令キャッシュが使用される前にその状態を無効
化するためのICCR0への書込み。
【0194】4.命令キャッシュ・ロッキング情報を構
成するためのICCR1への書込み。
【0195】もしキャッシュ・ロッキングが使用される
のであれば、留意されるべきことは、MMUがイネーブ
ルされるまでキャッシュがプリ- ロードされることがで
きず、その理由は、これにはキャッシュ状態を変更する
ことがプリフェッチにとって必要であるからである。キ
ャッシュ・ロッキング・シーケンスはこの明細書の別の
場所でより詳細に説明される。
【0196】好適な実施の形態において、4つの基本的
な一貫性操作がある。
【0197】1.オペランド・キャッシュ・ブロックの
無効化。これは好ましくはOCBI或はOCCR0.O
CEを用いて達成される。留意されるべきことは、オペ
ランド・キャッシュ・ブロックの無効化が廃棄されるダ
ーティなオペランド・キャッシュ・ブロックとなること
である。好ましくは、メモリ状態のロスとなり得るの
で、これは注意をもって試される。
【0198】2.オペランド・キャッシュ・ブロックの
ライト−バック。これは好ましくはOCBWBを用いて
達成される。
【0199】3.オペランド・キャッシュ・ブロックの
パージ。これは好ましくはOCBPを用いて達成され
る。
【0200】4.命令キャッシュ・ブロックの無効化。
これは好ましくはICBI或はICCR0.ICEを用
いて達成される。
【0201】こうしたキャッシュ一貫性操作は好ましく
は3つの異なる粒度で実行され得る。第1はメモリ箇所
であり:適切な命令はメモリ箇所に適用されるべきであ
る。これは供給されたメモリ・アドレスを包囲して、キ
ャッシュ・ブロック・サイズと試されたメモリ・ブロッ
クに一貫性を持たせる。これは好ましくはユーザ或は特
権モードで達成され得る。
【0202】第2はメモリのページであり:メモリの小
さなページに対して(特定実施の形態において4キロバ
イトのページ等)、適切なキャッシュ一貫性命令は、キ
ャッシュ・ブロック・サイズ間隔でページを通じて増分
する有効アドレスでページにわたって反復されるべきで
ある。これは、好ましくは、ユーザ或は特権モードで達
成され得る。より大きなメモリ・ページに対しては、特
権モードを使用し、キャッシュ構成レジスタを通じて見
たようにキャッシュ状態を通じてスキャンすることがよ
り効率的である。目的ページに対応するアドレス情報を
含む各キャッシュ・ブロックは適切なキャッシュ一貫性
命令を用いて一貫させるべきである。目的の有効アドレ
スはキャッシュ・ブロックにおけるアドレス情報から計
算され得る。
【0203】第3は全てのキャッシュであり:これは好
ましくは特権モードだけで達成され得る。全体的なオペ
ランド・キャッシュの無効化はOCCR0.0CEを用
いて達成可能であり、そして全体的な命令キャッシュの
無効化はICCR0.ICEを用いて達成可能である。
ライト−バックある或はパージ操作に対しては、適切な
キャッシュ一貫性レジスタであるが考慮したようにスキ
ャンはキャッシュ状態を通すことが必要である。各有効
キャッシュ・ブロックは適切なキャッシュ一貫性命令を
用いて一貫性を持たせるべきである。目的有効アドレス
はキャッシュ・ブロックにおけるアドレス情報から計算
可能である。
【0204】命令キャッシュ無効化がICBIを介して
達成されると、好適な実施の形態での無効化は無効化用
に使われる有効アドレスに対応するキャッシュ・ブロッ
クに対して保証されるだけである。これは、この明細書
の別の場所で説明されるキャッシュ・シノニム発行のた
めである。幾つかの場合、命令無効化は物理レベルで要
求され得て、命令の物理アドレスへマップされ得る全て
の有効アドレス空間で命令が無効化されることを確保す
る。推奨されるアプローチは、特権モードを使用し、キ
ャッシュ構成レジスタを通じて命令キャッシュ状態を検
査することである。命令キャッシュ状態は無効化される
有効アドレスのキャッシュ・インデックス・フィールド
を用いてインデックス付けされるべきである。これはキ
ャッシュにおけるセットを識別し;命令の全てのキャッ
シュ・シノニムがこのセット内になって、アドレス・キ
ャッシュ・シノニム問題(この明細書の別の箇所で説明
される)に対する制約が追従される。これらのキャッシ
ュ・ブロックの各々はキャッシュ構成レジスタ内で調査
されるべきであり、そして、所望に応じて適切に目標と
されたICBIを用いて無効化されるべきである。留意
されるべきことは、ソフトウェア・チェックを実行し
て、その無効化が実際に必要であるかを見るよりも、各
ケースを無条件で無効化することがより迅速であり得
る、ということである。もし多くの物理命令を無効化す
ることが必要であれば、全命令キャッシュをICCR
0.ICEを用いて単に無効化することがより容易であ
るか或はより迅速であり得る。
【0205】以下の典型的な好適シーケンスが単一キャ
ッシュ・ブロックを特定ウェイ(way) でロックすべく使
用可能である。
【0206】1.以下の前提条件が好ましくは保持され
るべきである。第1として、特権モードは構成レジスタ
・アクセスが必要とされているので使用されなければな
らない。第2として、MMUはイネーブルされなければ
ならず;SR.MMUはセットされるべきである。第3
として、キャッシングはイネーブルされるべきである。
OCCR0.OCEはもしオペランド・キャッシュ内へ
ロッキングされたならばセットされるべきであり;IC
CR0.ICEはもし命令キャッシュ内へロッキングさ
れたならばセットされるべきである。第4として、目的
有効アドレスは、キャッシュ可能であり且つ適切な許可
を含む翻訳によってマッピングされるべきである。読取
り許可はデータ・キャッシュ内へのプリフェッチングを
求めて必要とされ、命令キャッシュに対しての許可を実
行する。
【0207】2.目的ウェイはロックされるべきであ
る。OCCR1.OW_LOCK或はICCR1.IW
_LOCKの適切なビットがセットされるべきである。
ウェイは引き続くステップの前にロックされるべきであ
って、他のアクセスがこのシーケンスと干渉しないこと
を確保している。
【0208】3.目的有効アドレスはキャッシュ内に既
にあるべきではない。もしこれが試されなければ、キャ
ッシュから、相応しいように、OCBP、OCBI、或
は、ICBIを用いて除去可能である。命令フェッチン
グはプログラム実行とは独立して実行されるので、命令
無効化はICBIを用いて明白に常に達成されるべきで
ある。これは、ステップ2でウェイをロッキングした後
に試されるべきである。
【0209】4.キャッシュは、プリフェッチが目的ウ
ェイ内へ実行されるよう構成されるべきである。オペラ
ンド・キャッシュ・ロッキングに対して、OCCR1.
OW_LEはセットされるべきであり、OCCR1.O
W_LOADは目的ウェイを示すべくセットされるべき
である。命令キャッシュ・ロッキングに対して、ICC
R1.IW_LEはセットされるべきあり、ICCR
1.IW_LOADは目的ウェイを示すべくセットされ
るべきである。
【0210】5.キャッシュ・ブロックはプリフェッチ
命令を用いてロードされるべきである。目的有効アドレ
スに対して、相応しいように、PREFO或はPREF
Iを実行する。先行するステップは、このプリフェッチ
がキャッシュをミスして、キャッシュ・ブロックが指定
されたウェイでメモリから補充されるように構成され
た。留意すべきことは、もし何等翻訳がなければ或はも
しプリフェッチが許可を何等有しなければ、そのプリフ
ェッチは無視されることである。ソフトウェアは好まし
くはステップ1で説明されたように適切な翻訳に対して
構成される。
【0211】6.OCCR1.OW_LE或はICCR
1.IW_LEのロード・イネーブル・ビットはこれで
クリアできて正規のキャッシュ代替を再スタートする。
【0212】ロックされたキャッシュ・ブロックは適切
なパージ或は無効命令を介してキャッシュから除去され
ることができる。もしウェイが引き続いてアンロックさ
れれば、そのウェイはキャッシュ代替用の候補となる。
【0213】この明細書の別の場所で議論されているよ
うに、特定の好適な実施の形態は仮想キャッシュを具現
化する。シノニム問題をそのような仮想キャッシュ内に
アドレスする改善された方法を提供したことに加えて、
そのような好適な実施の形態は読取り/書込み許可がど
のようにチェックされ、そのような仮想キャッシュ実施
の形態で処理されるかの改善をも提供する。
【0214】図9を参照すると、そのような改善された
許可プロセッシングの第1の例を説明する例示的なフロ
ーチャートが説明されている。ステップ200でキャッ
シュがアクセスされ、この例の目的では書込み要求/操
作である。ステップ202でチェック/比較が書込み要
求に対する仮想アドレス(或はその一部)と仮想キャッ
シュのvtagとの間で試される。この比較の後、vt
agヒットがあったか(ステップ204)どうかについ
て決定が試される。もしvtagヒットがなければ、次
のステップはTLBのアクセスである(ステップ21
2)。もしステップ204での決定がvtagヒットで
あれば、ステップ206及び208では、選択されたキ
ャッシュ・エントリの許可についてチェックが試され
る。もしキャッシュ・エントリが適切な許可を有すれば
(例えば、書込み操作を認可する許可フィールド/ビッ
ト・セッティング等々)、操作は完了し、それはステッ
プ210で表されている。一般に、書込み操作の場合、
データは選択されたキャッシュ・エントリ内へ書込ま
れ、それはライト−スルー或はライト−バック操作であ
り得る(この明細書の別の場所で説明されているよう
に)。もし選択されたキャッシュ・エントリが適切な許
可を有することがなければ(例えば、読取り操作に対す
るアクセスを制限する許可フィールド/ビット等々)、
プロセスはステップ21のTLBアクセスへ進む。
【0215】ステップ212でTLBがアクセスされ、
それにはTLB入力として、書込み要求に対する仮想ア
ドレス(或はその一部)を用いる。その後、仮想アドレ
スで選択されるようにPTEが試され、選択されたペー
ジの許可がステップ214でチェックされる(留意され
るべきことは、好適な実施の形態において、ステップ2
12及び214は単一ステップ或は単一サイクルで一緒
に実行され得ることである等々)。ステップ216で示
されているように、適切な許可が選択されたページに関
連されているかどうかの決定はTLBアクセス後に試さ
れる。もし選択されたPTEが書込み操作に対して適切
な許可を有することがなければ、ステップ218で例外
が提起され、例外ハンドラ・ソフトウェア・ルーチンが
その書込み要求に応答することになる。もし書込み要求
の仮想アドレスに対応するPTEが何等なかったなら
ば、再度例外がステップ218で提起される(TLBミ
スを取り扱うような、適切な例外ハンドラでの処理に対
する)。説明例のように、もしオペレーション・システ
ム或は他のソフトウェアが特定ページに対する第1書込
み操作の検出を望めば、ページは読取りとしてだけ初期
的に指定され得て、例外ハンドラがステップ218の後
にそのページに対するTLB許可を更新して、例えば読
取り/書込みされる。
【0216】もしステップ216でページが適切な許可
を有すると決定されたならば、ステップ220でキャッ
シュは更新される。もしTLBがステップ208で何等
決定が試されないのでステップ212でアクセスされた
ならば、キャッシュの許可フィールド/ビットはステッ
プ220で更新される必要性がある。もしTLBがステ
ップ204で何等決定が試されないのでアクセスされた
ならば、キャッシュのvtag、ptag、データ、並
びに、許可がステップ220で更新される(例えば、キ
ャッシュ・ミスとして取り扱われる)。ステップ222
で操作は完了され、書込み操作の場合、データが選択さ
れたキャッシュ・エントリ内へ書込まれ、それはライト
−スルー或はライト−バック操作であり得る(この明細
書の別の場所で説明されているように)。この場合、キ
ャッシュ・エントリが代替され得るように、どのエント
リが代替されるかを決定するプロセス(この明細書の別
の場所で説明されているように)が実行されることにな
る。
【0217】そのような「許可拡大」も、仮称キャッシ
ュに関連してより一般的に使用可能であり、特に、この
明細書の別の場所で説明されているようなシノニム問題
に対処するプロセスと組み合わされて使用可能である。
次に図10で参照されるように、仮想キャッシュを利用
している本発明の特定の好適な実施の形態で使用される
許可拡大に対する典型的なフローチャートが説明され
る。
【0218】ステップ228で仮想キャッシュがアクセ
スされ、例えば読取り要求或は書込み要求の目的のため
である。ステップ230では、チェック/比較が、読取
り要求或は書込み要求(或はその一部)に対する仮想ア
ドレス及び仮想キャッシュのvtagとについての要求
の許可レベルとの間でなされる。仮想キャッシュの選択
されたエントリ。ステップ232でvtagヒットがあ
るかどうかそして保護違反がないかについての決定がさ
れ、プロセスはステップ248へ進み、その操作が完了
される。しかしながらもしvtagヒットがなければ、
或は、vtagがあるが保護違反であれば、次のステッ
プはTLBのアクセスである(ステップ234)。ステ
ップ236で例外がTLBミス或は保護違反に対して等
のためにとられるべきかどうか決定される(もし例外
が、TLBミス或は保護違反で取られるべきであれば、
例外がステップ238で提起される)。もしステップ2
36で例外が提起されなければ、ステップ240でpt
agヒットがあるかどうかのチェックが試される(例え
ば、TLBからの物理アドレス情報と(試されたシノニ
ムが記憶されている)仮想キャッシュのエントリでのp
tagsとの間で比較が試される)。ステップ242で
もしTLBからの物理アドレスとキャッシュの選択され
た(インデックスで選択された)エントリ(nwayセ
ットの連想キャッシュの場合での多重的エントリ)との
間に符合或は一致がないことが決定されれば、ステップ
244でキャッシュ・ミスとして操作が取り扱われる。
もしステップ242で符合或は一致があると決定された
ならば、ステップ246でその符合キャッシュ・エント
リのvtagがTLBからの仮想アドレスで更新され
る。またステップ246でキャッシュ・エントリの許可
ビット/フィールドも更新される。よって、ステップ2
46後に、許可が拡大され得てvtagエントリがステ
ップ234でのTLBアクセス後の更新されるか、或
は、それらの何れかが生じ、それによってシノニム問題
を解決し(もし必要であれば)、許可を拡大し(もし必
要であれば)、そして、不必要な例外を回避する等々で
ある。ステップ248で操作は完了される(例えば、相
応しいようにメモリ読取り或は書込みのように処理され
る)。ステップ248で操作は完了され、書込み操作の
場合においては、データが選択キャッシュ・エントリ内
へ書込まれ、それはライト−スルー或はライト−バック
操作である(例えば、この明細書の別の場所で説明され
ているように)。読取りの場合、操作は選択されたキャ
ッシュ・エントリからの読取りである。
【0219】留意されるべきことは、vtagエントリ
を再書込みするステップが実行されて、現行アクセスと
同一アドレスを用いて引き続くアクセスがキャッシュを
vtagアレイ・アクセスでヒットする、ということで
ある。おそらく、基準考察の区域に基づいて、データに
対する次のアクセスは先行アクセスと同一の仮想アドレ
ス(エイリアス)を介して試され、この故に先行するプ
ロセスは好適な実施の形態における性能を最適化する。
【0220】また留意されるべきことは、ここで説明さ
れた許可拡大も命令キャッシュにも適用され得る、とい
うことである。例えば、実行可能性或はユーザ/特権許
可等の許可は上述したアルゴリズムで拡大され得る(特
に図9に関連して議論されたアルゴリズム)。そのよう
な命令キャッシュ実施の形態において、好ましくはエイ
リアスを除去するハードウェア作用がなく(即ちpta
g検索がなく)、構造キャッシュに対するキャッシュ一
貫性を提供する必要性が全くない(キャッシュ一貫性は
別の場所で議論される)。そのような考察は命令キャッ
シュと、簡略化された論理で且つより低いコストで具現
化されるそのコントローラをイネーブルする。
【0221】次に図11を参照すると、本発明の好適な
実施の形態における許可の取り扱いの特定の局面がより
詳細に説明される。図11において、仮想キャッシュ・
アレイ262は典型的な4ウェイ・セット連想仮想キャ
ッシュにおけるvtagアレイと許可フィールド/ビッ
トとを図示している(仮想キャッシュ・エントリの他の
フィールドは図11に示されていないが、この明細書の
別の場所で説明されている)。仮想キャッシュ・アレイ
262の各セットは多数のセットから構成され、その各
々が図示の実施の形態において4ウェイを含む。各セッ
ト及びウェイに対して、そのデータがそのセット及びウ
ェイに記憶されているアドレスの仮想タグがあると共
に、ライン/ブロックがそのキャッシュに配置された際
にTLBから獲得された許可情報もある。この明細書の
別の場所でより完全に説明されているように、許可情報
は読取り/書込み許可、ユーザ/特権モード許可等々か
ら構成され得る。
【0222】仮想キャッシュ・アレイ262にアクセス
する目的のために、仮想アクセス・アドレス(例えばC
PUコア102から)が仮想キャッシュに提供され、そ
れが仮想アドレス・タグ・フィールド266とインデッ
クス・フィールド268とを含んでいる(ワード・サイ
ズに依存している他のビットは、特定のワード或はキャ
ッシュにおけるライン/ブロックからアクセスされてい
るバイトを選択すべく使用可能であり、この議論のため
に無視され得る)。インデックス268は仮想アレイ2
62のセット264の内の1つのセット内への選択/符
号付けのために使用される(再度、例示的目的のため、
4ウェイ・セット連想仮想キャッシュが図11に図示さ
れている)。仮想アレイ262における選択された/イ
ンデックス付けされたエントリの4つのウェイは、好ま
しくは、アレイ262から読取られて、仮想アドレスの
タグ・フィールド266と比較される(アイテム270
はウェイの内の1つのウェイの選択された/インデック
ス付けされたvtagを保持しているバッファと、タグ
部266を保持しているバッファとを図示しており、そ
れが好ましくはコンパレータで比較される)。4つの比
較がAND論理274へ搬送され、好ましくは4つのタ
グ符号信号を介して並列で搬送される(AND論理はA
NDまたはNANDゲート、又は他の適当な論理等より
なる)。
【0223】加えて、選択されたセットの各ウェイに関
連された許可情報は論理272へ提供される。許可要求
情報も論理272へ提供される。この明細書の別の場所
でより完全に説明されているように、CPUコア102
のロード/ストア・ユニット(或はCPUコア102の
他の適切な部分)は特定の要求されたアクセスに対して
の要求された許可を決定する。例えば、ロード操作は読
取り許可を要求し、記憶操作は書込み許可を要求し;ユ
ーザ・モード許可は、もし命令がユーザ・モードから成
就すれば要求される(即ち、この明細書の別の場所で説
明されているように、SR.MDビットから決定され
る)。
【0224】再度、図11を参照すると、論理272は
キャッシュ・アレイ262から戻った許可ビットをCP
Uからの許可情報と組合せる。論理272は、CPUか
らの許可情報に基づいて、アクセスがウェイの選択され
た/インデックス付けされたセットの各ウェイに対して
許可されているかどうかを決定する。アクセスは次のよ
うな場合、例えば読取り専用ページへの書込みの場合、
非読取り可能ページに対する読取り或はページは特権で
ある場合、そのモードがユーザである場合、等の許可違
反の理由については、許可されない。論理272は、も
しアクセスがそのウェイに対して許可されているかを示
す各ウェイに対して信号を作り出す。論理272は、C
PUからの許可/許可要求型情報の受信と、キャッシュ
のウェイからの許可情報に基づいてアクセスが許可され
ているかの決定とに適合した任意の論理から構成され得
る。
【0225】AND論理274は、次いで、許可された
アクセス信号でアレイ262からの各ウェイ出力に対し
てタグ符号信号を論理的に足して、各ウェイに対するキ
ャッシュ・ヒット信号を得る。その結果、好適な実施の
形態において、キャッシュ・ヒット信号は、もしアドレ
ス・タグがキャッシュ・ウェイにおけるタグと符号すれ
ば所与のウェイに対して生成され、そのウェイに対する
許可情報は、操作が許可されて、仮想タグ・アクセスだ
けに基づいて完了され得ることを示す。
【0226】次に図12を参照すると、外部供給された
キャッシュ一貫性/スヌープ・コマンドに望ましくは応
答する仮想キャッシュ・メモリ・システムについて更な
る説明が提供される。
【0227】図1は全体的なマイクロプロセッサ/デー
タ処理システムを図示し、PCIバス或は他のタイプの
周辺機器であり得る外部装置128(例えば、グラフィ
ックス或は他のディスプレイ・モジュール、ネットワー
ク・インターフェース装置、記憶装置等々)がバス12
4を介してインターフェース118(好適な実施の形態
において、PCI型インターフェースであり、他のイン
ターフェースが他の実施の形態では使用可能)に結合さ
れている。外部装置128は、読取り或は書込みの何れ
かで、メモリ・バス122を介して外部メモリ・インタ
ーフェース120に結合された外部メモリ126にアク
セスを望み得る。しかしながらそのようなメモリ・トラ
ンザクションで、キャッシュ一貫性に拘わる問題が生じ
得る。もし外部装置128がキャッシュ・メモリ・シス
テムに記憶され得るメモリ箇所にアクセスすることを望
めば、外部装置128によってアクセスされた外部メモ
リ126に記憶されたデータがキャッシュ・メモリに記
憶されたデータと一貫性がなければエラーが生じ得る。
【0228】好適な実施の形態において、この問題は、
好ましくは、外部的に提供された(CPUコア102と
仮想キャッシュ・メモリ・システム等に対して外部であ
る)「スヌープ(snoop) 」或は他のキャッシュ一貫性コ
マンドとに望ましくは応答する仮想キャッシュ・メモリ
のウェイによって対処される。一般的に云えば、外部装
置(外部装置128等)がメモリ・アクセス・トランザ
クションを始動すると、PCHブリッジ114(或は他
の好適インターフェース或は他の装置)はそのメモリ・
アクセス・トランザクションがキャッシュ一貫性がある
べきであるメモリの領域に影響するかどうかを決定す
る。好適な実施の形態において、メモリの幾つかの領域
は非キャッシュ一貫性であると指定され得て(例えばキ
ャッシュ不能)、よってそのようなメモリ領域はキャッ
シュ一貫性問題が提起されない。しかしながら、もし要
求されたメモリ・トランザクションがメモリのキャッシ
ュ一貫性領域に影響すると決定されれば、スヌープ或は
他のキャッシュ一貫性コマンドがCPUコア102へ供
給される。スヌープ或は他のキャッシュ一貫性コマンド
に応じて、仮想キャッシュ・システムはプロセスを始動
して、キャッシュ一貫性が維持されることを確保し(例
えば、もしデータが「ダーティ」であれば、キャッシュ
・メモリからデータのメモリ・ライト−バックを始
動)、それがその後に、外部/主メモリ及びキャッシュ
・メモリが一貫性を有すると承認する信号となって、元
々要求されたメモリ・トランザクションが完了され得
る。
【0229】図12は、本発明の好適な実施の形態で利
用されるそのようなキャッシュ一貫性プロセスに対する
典型的なフローチャートである。ステップ300で、こ
の例ではPCI型装置(本発明はそのような装置に限定
されることはないが)である外部装置がメモリ要求を試
す。これは読取り或は書込み要求として、その要求に応
答するのに必要なアドレス情報と共にブリッジ114に
よって受信される。ステップ302でブリッジ114
は、その要求がキャッシュ一貫性メモリに関わるかを決
定する目的のために、内部レジスタ、メモリ、或は、他
のリソースを参照する。留意されるべきことは、好適な
実施の形態において、そのようなチェックを試すのは必
ずしもブリッジ114ではなく、即ち他のインターフェ
ース或はメモリ・トランザクション処理装置等々もその
ような決定をCPUコア102及び仮想キャッシュ・メ
モリ・システムの外部で試し得ることである。図1に示
される特定のバス及び全体的なシステムは、本発明の仮
想キャッシュ・メモリ・システムの好適な実施の形態に
対するただの典型例であるに過ぎない。
【0230】ステップ304でその要求がキャッシュ一
貫性メモリに拘わるかどうかについての決定が試され、
もしNoであれば、プロセスはステップ306へ進み元
々要求された操作が完了し(このトランザクションはブ
リッジ或は要求されたバス・プロトコル等を始動する他
の制御装置によって具現化され得て、元々要求されたメ
モリ・トランザクションを完了する)、もしYesであ
れば、ステップ308でブリッジはスヌープ・コマンド
(或は他のキャッシュ一貫性型コマンド)をCPUコア
102へ発する。このコマンドの正確な特性及びそのコ
マンドを提供するバス・プロトコルは特定のシステム及
び具現化に基づいて選択され得る。重要なことは、外部
的に提供されたスヌープ或は他のキャッシュ一貫性コマ
ンドがCPUコア102へ提供されることである。図1
2において、これは例示的に「スヌープ要求」と呼称さ
れている。
【0231】CPUコア102は、好ましくは、バス・
インターフェース・ユニット(BIU)或はバス104
へデータを提供するか或は該バス104からデータを提
供する他のインターフェース回路を含み、ステップ31
0でCPUコア102のBIUがスヌープ要求を受信
し、それが次いでキャッシュ・コントローラへ渡される
(図12において例示的に「DCC」と呼称される)。
留意されるべきことは、BIUの特定の具現化及びDC
Cは特定用途に対して選択され得て、議論されている仮
想キャッシュ実施の形態は任意のタイプのインターフェ
ース回路或は制御回路に限定されない。重要なことは、
CPUコア102がスヌープ要求を受信し、仮想キャッ
シュ・メモリ・システムに対する適切な制御回路がスヌ
ープ要求(及び、他の任意の適切な制御及びアドレス情
報等々)を受信して、ここで説明された方法でその要求
に応答することである。
【0232】ステップ312で仮想キャッシュ・メモリ
はDCCから物理アドレス・タグ情報(ptag)を含
む情報を受信して、仮想キャッシュptagアレイのコ
ンテンツでptagヒットを捜す。ステップ312の実
行は、好ましくは以下のように行われる。DCCは物理
アドレスのインデックス・フィールドを採用すると共に
このインデックスを用いるか或は物理アドレス・インデ
ックスからインデックスを作り出して、仮想キャッシュ
のptagアレイ内へ適切にインデックス付けを試す。
ページ・サイズ及び特定の実施の形態での他の特性に依
存して、DCCはptagヒットを捜すために仮想キャ
ッシュに対して、1つ、2つ、4つ、或は、それ以上の
インデックスを必要とし得る。重要なことは、スヌープ
結果を随伴する物理アドレス情報に基づいて、ヒットが
見出され得るptagアレイの全箇所がそのヒットを求
めて調査され、DCCが所望に応じてptagアレイ内
への1つ或はそれ以上のインデックスを用いて、pta
gアレイのこの調査を行う。ステップ312の結論で、
仮想キャッシュのptagアレイはヒットが見出され得
るptag箇所の全てにおいて調査された。
【0233】留意されるべきことは、ここで説明される
と共に好適な実施の形態で使用されたptag調査の特
性の内の1つがゼロか或は1つのヒットが見出されるこ
とである。好適な実施の形態において、2つ以上が存在
し得ず、それは、この明細書の別の場所で説明されてい
るように、ハードウェア及びソフトウェア機構の組合せ
によって達成される。ハードウェアは、好ましくは、同
一セット内において物理アドレスのエイリアスが何等な
いことを確保し(即ち、ptag検索及びチェック機
構)、ソフトウェアは、異なるセット間で物理アドレス
のエイリアスが何等ないことを確保する(即ち、キャッ
シュ・シノニムを回避するためのソフトウェア制約)。
その結果、好適な実施の形態でのようにキャッシュ一貫
性を具現化することは、せいぜい、1つのキャッシュ・
ライン/ブロックの洗い流し/無効化だけを要求する。
好適な実施の形態において、これはハードウェアを相当
に簡略化するものであり、それは適切な洗い流し/無効
かを実行するために多数のキャッシュ・ラインを通じて
の反復が何等要求されていないからである。
【0234】ステップ314で、ステップ312のpt
agチェック/比較に基づくptagヒットがあるかど
うかを決定する(勿論、特定実施の形態において312
及び314等のステップが組合せ可能であるが、主に議
論の目的のために別個に示されている)。もしステップ
314でptagヒットがないと決定されると、プロセ
スはステップ328へ進む(ステップ328は追ってよ
り詳細に説明される)。もしステップ314でptag
ヒットがあると決定されると、プロセスはステップ31
6へ進み、その時点で、選択されたキャッシュ・ライン
/ブロックがダーティかを決定すべくチェックが試され
る(即ち、ptagヒットが主メモリへ書き込まれるべ
きデータを有し得るかどうかである)。ステップ318
で、ライン/ブロックのダーティ・チェック及び決定に
基づいて(再度、そのようなチェック及び決定が一般的
に組合せ或は別個の操作であり得る)、プロセスは直に
ステップ322へ進む(もしライン/ブロックがダーテ
ィでなければ)、或は、プロセスは先ずステップ320
へ進み、その時点でDCC(或は他の適切な制御論理)
がダーティ・キャッシュのライン/ブロック内のデータ
をメモリへ書込ませる。
【0235】ステップ322でスヌープ要求が書込み操
作に対してかどうかがチェックされる。もしスヌープ要
求が書込み操作に対してであれば(ステップ324でy
es決定)、ステップ326でptag(ptagヒッ
トがあると仮定)によってキャッシュ・ヒットのライン
/ブロックが無効化され、それはキャッシュ・ライン/
ブロックのコンテンツが元々要求された書込み操作の結
論に及んで最後のデータをおそらく含まないであろうか
らである。もしステップ314でptagヒット無しが
決定されたならば、ステップ322は代替的にはスキッ
プされ得て、プロセスは直にステップ328へ進む。こ
こで重要なことは、メモリ書込み操作の場合、仮想キャ
ッシュ・システムは、もしそのメモリ書込み操作に基づ
いて一貫性を確保すべく要求されたならばキャッシュ・
ラインを無効化する、ということである。
【0236】ステップ328で、好ましくは(仮想キャ
ッシュから適切なステータス情報の受領後)、CPUコ
ア102のBIUはスヌープ完了信号或は他の適切な信
号を戻して、スヌープ操作が完了され、キャッシュ及び
メモリが元々要求されたメモリ・トランザクションに対
して一貫性を持たされていることを、ブリッジ114
(或は他の制御装置)へ表示する。好ましくは、この信
号は、キャッシュ及びメモリが一貫性を有するとの信号
から構成され得るが、担持データはない。実際上、信号
は「全てクリア」或は「進行準備よし」として戻され
て、ブリッジ或は他の装置に元々要求されたメモリ・ト
ランザクションは完了されるとの合図を試す。ステップ
306で元々要求されたメモリ・トランザクションは完
了される(例えば、「全てクリア」或は「進行準備よ
し」との信号に応答して)。
【0237】本発明に従えば、特定の好適な実施の形態
に従って実行され得る特定の典型的な方法が次に説明さ
れる。命令を実行して、メモリ空間に複数箇所を有する
メモリからのデータを記憶し、且つ、該メモリからデー
タを受信するデータ処理システムにおいて、データ処理
システムは多数のエントリを有するキャッシュ・メモリ
をも含んでおり、そのキャッシュ・メモリのエントリは
メモリ空間から別個のレジスタ空間における複数箇所に
あり、本発明に従った方法は以下のステップ: A.第1命令を実行してキャッシュ・メモリの少なくと
も1つのエントリからアドレス情報を獲得し、該第1命
令がメモリ空間における箇所にではなく、レジスタ空間
における箇所だけに対して操作することから成るステッ
プと、 B.前記獲得されたアドレス情報を目的アドレス情報と
比較するステップと、 C.前記獲得アドレス情報と前記目的アドレス情報との
比較が一致となれば、第1操作が前記キャッシュ・メモ
リの前記少なくとも1つのエントリに対して実行される
ステップと、 D.前記獲得アドレス情報と前記目的アドレス情報との
比較が一致とならなければ、前記第1操作が前記キャッ
シュ・メモリの前記少なくとも1つのエントリに対して
実行されないステップと、の諸ステップから成り、管理
操作が、メモリ空間内における複数箇所を用いること無
しに、前記キャッシュ・メモリに対して実行されること
から構成され得る。
【0238】先の方法において、第1操作は、無効化、
洗い流し、或は、パージの操作であり得る。先の方法に
おいて、ステップA乃至Dはループ状に実行されて、キ
ャッシュ・メモリの複数のエントリがアクセスされ、前
記第1操作が共通特性を有するキャッシュ・メモリのエ
ントリから成るサブセットに対して実行される。先の方
法において、前記共通特性は、メモリのページであり得
る、メモリにおける共通領域に関連されたアドレスを有
することであり得る。先の方法において、前記アドレス
情報は物理アドレス情報であり得る。先の方法におい
て、前記キャッシュ・メモリは複数のエントリを有する
仮想キャッシュ・メモリであり得て、その仮想キャッシ
ュ・メモリのエントリ各々は物理アドレス情報、論理ア
ドレス情報を含み、前記獲得アドレス情報が論理アドレ
ス情報或は物理アドレス情報である。
【0239】先の方法において、データ処理システムは
多数のエントリを有する変換索引バッファ(TLB)を
含み得て、その変換索引バッファのエントリがメモリ空
間とは別のレジスタ空間における複数箇所内である。先
の方法において、変換索引バッファのエントリは、キャ
ッシュ・メモリのエントリと同一のレジスタ空間におけ
る複数箇所内である。先の方法において、第1命令は多
数のフィールドを含み得て、それらフィールドの内の1
つ或はそれ以上のフィールドにおける情報の制御が、変
換索引バッファのエントリ或はキャッシュ・メモリのエ
ントリがその第1命令の実行に及んでアクセスされるか
どうかを制御する。先の方法において、第1命令は変換
索引バッファ或はキャッシュ・メモリのエントリから情
報を読取るGET命令であり得る。先の方法において、
第1操作は第2命令の実行によって実行され得て、その
第2命令が多数のフィールドを含み、前記フィールドの
内の1つ或はそれ以上のフィールドにおける情報の制御
が、変換索引バッファのエントリ或はキャッシュ・メモ
リのエントリが第2命令の実行に及んでアクセスされる
かどうかを制御する。先の方法において、第2命令は変
換索引バッファ或はキャッシュ・メモリのエントリに対
して情報を書込むPUT命令であり得る。先の方法にお
いて、第1操作は、キャッシュ・メモリのエントリをマ
ッピング解除する操作か、或は、許可情報が許可を狭め
るように変更される、許可情報を変更する操作かであり
得る。
【0240】命令を実行し、メモリ空間に複数箇所を有
するメモリからのデータを記憶し、該メモリからデータ
を受信するデータ処理システムにおいて、該データ処理
システムは多数のエントリを有する命令キャッシュ・メ
モリをも含み、それらエントリが多数のセット(nse
ts)を含み、それらセットの各々が多数のウェイ(n
ways)を含み、本発明に従う方法は以下のステッ
プ: A.1つ或はそれ以上の第1命令を実行して、1つ或は
それ以上の命令を前記命令キャッシュ・メモリの第1ウ
ェイ内へロードするステップと、 B.1つ或はそれ以上の第2命令を実行して、前記命令
キャッシュ・メモリの第1ウェイをロックするステップ
と、 C.前記命令キャッシュ・メモリの前記第1ウェイ内に
ロードされた1つ或はそれ以上の命令を含む1連の命令
を実行し、前記命令キャッシュ・メモリの前記第1ウェ
イ内にロードされたその1つ或はそれ以上の命令が、前
記一連の命令の実行中に前記メモリからの前記1つ或は
それ以上の命令を受信すること無しに、実行されること
から成るステップと、の諸ステップから構成され得る。
【0241】先の方法において、命令キャッシュ・メモ
リはメモリ空間とは別のレジスタ空間における制御レジ
スタによって制御され得て、前記1つ或はそれ以上の第
2命令が前記制御レジスタに情報を書込むPUT命令で
あり、その書込み情報が前記命令キャッシュ・メモリの
前記ロッキングを制御する。先の方法において、多数の
ウェイが2つ以上の数であり得る。先の方法において、
前記第1ウェイがロックされている間に、1つ或はそれ
以上の他のウェイがアンロックされ命令のキャッシング
に対して利用可能である。先の方法において、nset
sが2以上の数であり得る。先の方法において、ステッ
プAがステップBの後に実行可能である。先の方法にお
いて、前記1つ或はそれ以上の第2命令が、前記第1ウ
ェイがロックされることになり且つ該第1ウェイが命令
をロードするために使用されることになることを制御し
得る。
【0242】命令を実行し、メモリ空間に複数箇所を有
するメモリからのデータを記憶し、該メモリからデータ
を受信するデータ処理システムにおいて、該データ処理
システムは多数のエントリを有するデータ・キャッシュ
・メモリをも含み、それらエントリが多数のセット(n
sets)を含み、それらセットの各々が多数のウェイ
(nways)を含み、本発明に従う方法は以下のステ
ップ: A.1つ或はそれ以上の第1命令を実行して、前記デー
タ・キャッシュ・メモリにおける第1ウェイの1つ或は
それ以上の箇所内へデータをロードするステップと、 B.1つ或はそれ以上の第2命令を実行して、前記第1
データ・キャッシュ・メモリの前記第1ウェイをロック
するステップと、 C.前記データ・キャッシュ・メモリの前記第1ウェイ
内にデータがロードされる前記1或はそれ以上の箇所に
アクセスすることになる1つ或はそれ以上の命令を含む
1連の命令を実行し、前記命令キャッシュ・メモリの前
記第1ウェイ内にロードされた前記データに対する前記
1つ或はそれ以上の箇所が、キャッシュ・ミス無しに、
前記一連の命令の実行中にアクセスされることが予め決
定されていることから成るステップと、の諸ステップか
ら構成され得る。
【0243】先の方法において、データ・キャッシュ・
メモリはメモリ空間とは別のレジスタ空間における制御
レジスタによって制御され得て、前記1つ或はそれ以上
の命令が該制御レジスタに情報を書込むPUT命令であ
り、前記書込まれた情報が前記データ・キャッシュ・メ
モリの前記ロッキングを制御する。先の方法において、
ウェイの数は2つ以上の数である。先の方法において、
前記第1ウェイがロックされている間に、1つ或はそれ
以上の他のウェイがアンロックされてデータのキャッシ
ングに対して利用可能であり得る。先の方法において、
nsetsは2以上の数である。
【0244】命令を実行し、メモリ空間に複数箇所を有
するメモリからのデータを記憶し、該メモリからデータ
を受信するデータ処理システムにおいて、該データ処理
システムは多数のエントリを有するキャッシュ・メモリ
をも含み、それらエントリが多数のセット(nset
s)を含み、それらセットの各々が多数のウェイ(nw
ays)を含み、本発明に従う方法は以下のステップ: A.1つ或はそれ以上の第1命令を実行して、前記キャ
ッシュ・メモリにおける第1ウェイの1つ或はそれ以上
の箇所内へデータ或は命令をロードするステップと、 B.1つ或はそれ以上の第2命令を実行して、前記キャ
ッシュ・メモリの前記第1ウェイをロックするステップ
と、 C.前記キャッシュ・メモリの前記第1ウェイ内にデー
タ或は命令がロードされる前記1或はそれ以上の箇所に
アクセスすることになる1つ或はそれ以上の命令を含む
1連の命令を実行し、前記キャッシュ・メモリの前記第
1ウェイ内にロードされた前記データ或は命令に対する
前記1つ或はそれ以上の箇所が、キャッシュ・ミス無し
に、前記一連の命令の実行中にアクセスされることが予
め決定されていることから成るステップと、の諸ステッ
プから構成され得る。
【0245】先の方法において、キャッシュ・メモリは
メモリ空間とは別のレジスタ空間における制御レジスタ
によって制御され得て、前記1つ或はそれ以上の命令
が、前記制御レジスタへの情報書込みに対するPUT命
令であり、前記書込み情報が前記キャッシュ・メモリの
前記ロッキングを制御する。先の方法において、ウェイ
の数が2以上の数である。先の方法において、前記第1
ウェイがロックされている間に、1つ或はそれ以上の他
のウェイがアンロックされてデータのキャッシングに対
して利用可能である。先の方法において、nsetsは
2つ以上の数である。
【0246】各々が物理アドレス情報及び論理アドレス
情報を含む複数のエントリを有する仮想キャッシュ・メ
モリを具備するデータ処理システムにおいて、本発明に
従った方法は以下のステップ: A.メモリ・アクセス操作に関連された物理アドレス情
報に基づいて、1つ或はそれ以上の所定メモリ箇所に対
してそのメモリ・アクセス操作を開始するステップと、 B.前記メモリ・アクセス操作がキャッシュ一貫性メモ
リを含み得るかを決定するステップと、 C.もし前記メモリ・アクセス操作がキャッシュ一貫性
メモリを含み得れば、前記メモリ・アクセス操作の物理
アドレス情報を含むキャッシュ一貫性コマンドを発する
ステップと、 D.前記キャッシュ一貫性コマンド及び前記メモリ・ア
クセス操作の前記物理アドレス情報に基づいて、前記メ
モリ・アクセス操作における前記物理アドレス情報の内
の少なくとも一部と、前記仮想キャッシュの前記エント
リ内に記憶された前記物理アドレス情報の内の少なくと
も一部との間に符合があるかを決定するステップと、 E.もし前記メモリ・アクセス操作の前記物理アドレス
情報と、前記キャッシュ・メモリの特定エントリにおけ
る物理アドレス情報との間に符合があれば、前記仮想キ
ャッシュ・メモリの前記特定エントリに関連するデータ
がダーティであるかどうかを決定するステップと、 F.もし前記仮想キャッシュ・メモリの前記特定エント
リに関連する前記データがダーティであれば、ライト−
バック操作を始動して、前記仮想キャッシュ・メモリの
前記特定エントリにおけるデータがメモリへ書込まれる
ことから成るステップと、 G.前記仮想キャッシュ・メモリ及び前記メモリ・アク
セス操作の前記メモリ箇所が一貫性を有することを示唆
するコマンドを発するステップと、 H.前記メモリ・アクセス操作を完了するステップと、
の諸ステップから構成され得る。
【0247】先の方法において、追加的ステップが、前
記メモリ・アクセス操作が書込み操作であるかを決定す
ることであってもよく、そして、前記メモリ・アクセス
操作が書込み操作であれば、前記仮想キャッシュ・メモ
リの前記特定エントリを無効化する。先の方法におい
て、仮想キャッシュ・メモリが単一チップ・マイクロプ
ロセッサに含まれ得て、該単一チップ・マイクロプロセ
ッサの外部の装置が前記メモリ・アクセス操作を開始す
る。先の方法において、前記外部装置及び内部バスの間
のブリッジを試す回路が該外部装置からコマンドを受信
し得て、前記メモリ・アクセス操作を開始する。先の方
法において、前記回路が情報を記憶し得て、メモリのど
の領域がキャッシュ一貫性を有するかを決定する。先の
方法において、前記回路が前記外部装置からの物理アド
レス情報を前記記憶された情報と比較し得て、もし前記
メモリ・アクセス情報が一貫性メモリを含まなければ、
前記回路が前記キャッシュ一貫性コマンドを発すること
無しに前記メモリ・アクセス操作の完了を開始する。先
の方法において、前記キャッシュ一貫性コマンドに応じ
て且つ前記メモリ・アクセス操作の物理アドレス情報に
基づいて、1つ或はそれ以上のインデックスが前記仮想
キャッシュ・メモリに対して形成され得て、その1つ或
はそれ以上のインデックスが使用され、前記仮想キャッ
シュ・メモリを調査して、前記メモリ・アクセス操作の
前記物理アドレス情報の内の少なくとも一部と、前記仮
想キャッシュの前記エントリに記憶された前記物理アド
レス情報の内の少なくとも一部との間に符合があるかを
決定する。先の方法において、前記仮想キャッシュ・メ
モリの全てではないエントリが調査され得て、前記イン
デックスが何処に符合が見出され得るかについて前記仮
想キャッシュの前記エントリ調査を制御する。
【0248】仮想キャッシュ・メモリ及び変換索引バッ
ファを有するデータ処理システムであって、前記仮想キ
ャッシュ・メモリが複数のエントリを有し、前記仮想キ
ャッシュ・メモリの該エントリの各々が物理アドレス情
報、論理アドレス情報、並びに、許可情報を含み、前記
変換索引バッファが複数のエントリを有し、その変換索
引バッファの該エントリの各々が物理アドレス情報、論
理アドレス情報、並びに、許可情報を含むことから成る
データ処理システムにおいて、本発明に従った方法は以
下のステップ: A.メモリ・アクセス操作に関連された論理アドレス情
報及び許可情報に基づいて、所定メモリ箇所に対してそ
のメモリ・アクセス操作を開始するステップと、 B.前記仮想キャッシュ・メモリにアクセスし、前記メ
モリ・アクセス操作の前記論理アドレス情報の内の少な
くとも一部と、前記仮想キャッシュの前記エントリに記
憶された前記論理アドレス情報の内の少なくとも一部と
の間に符合があるかを決定するステップと、 C.もし前記メモリ・アクセス操作の前記論理アドレス
情報と、前記仮想キャッシュ・メモリの特定エントリに
おける論理アドレス情報との間に符合があれば、前記メ
モリ・アクセス操作の前記許可情報と前記仮想キャッシ
ュ・メモリの前記特定エントリにおける前記許可情報と
に基づいて、前記メモリ・アクセス操作が前記仮想キャ
ッシュ・メモリの前記特定エントリにおける前記許可情
報によって許可されているかどうかを決定するステップ
と、 D.もし前記メモリ・アクセス操作が前記仮想キャッシ
ュ・メモリの前記特定エントリにおける前記許可情報に
よって許可されていなければ、前記仮想キャッシュ・メ
モリの前記特定エントリにおける前記論理アドレス情報
に基づいて、前記変換索引バッファにアクセスするステ
ップと、 E.もし前記仮想キャッシュ・メモリの前記特定エント
リにおける前記論理アドレス情報と前記変換索引バッフ
ァの特定エントリにおける前記論理アドレス情報との間
に符合があれば、前記メモリ・アクセス操作の前記許可
情報と前記変換索引バッファの前記特定エントリにおけ
る前記許可情報とに基づいて、前記メモリ・アクセス操
作が前記変換索引バッファの前記特定エントリにおける
前記許可情報によって許可されているかどうかを決定す
るステップと、 F.もし前記メモリ・アクセス操作が前記変換索引バッ
ファの前記特定エントリにおける前記許可情報によって
許可されていれば、前記変換索引バッファの前記特定エ
ントリにおける前記許可情報に基づいて、前記仮想キャ
ッシュ・メモリの前記特定エントリの前記許可情報を更
新するステップと、 G.前記メモリ・アクセス操作を完了するステップと、
の諸ステップから構成され得る。
【0249】先の方法において、ステップDの後で、も
し前記仮想キャッシュ・メモリの前記特定エントリにお
ける前記論理アドレス情報と前記変換索引バッファの特
定エントリにおける前記論理アドレス情報との間に符合
がなければ、変換索引バッファ・ミス操作が実行され得
る。先の方法において、ステップCの後で、もし前記メ
モリ・アクセス操作が前記仮想キャッシュ・メモリの前
記特定エントリにおける前記許可情報によって許可され
れば、前記メモリ・アクセス操作は完了され得る。先の
方法において、前記仮想キャッシュ・メモリの前記特定
エントリにおける前記許可情報が、前記変換索引バッフ
ァの前記特定エントリにおける前記許可情報に基づいて
拡大され得る。先の方法において、前記操作が許可違反
操作を実行すること無しに完了され得る。
【0250】先の方法において、ステップHは実行され
得て:ステップCの後で、もし前記メモリ・アクセス操
作の前記論理アドレス情報と前記仮想キャッシュ・メモ
リの特定エントリにおける論理アドレス情報との間に符
合がなければ、変換索引バッファは前記メモリ・アクセ
ス操作の前記論理アドレス情報に基づいてアクセスされ
得、またステップIが実行され得て:もし前記メモリ・
アクセス操作の前記論理アドレス情報と前記変換索引バ
ッファの特定エントリとの間に符合があれば、前記変換
索引バッファの前記特定エントリにおける前記物理アド
レス情報と前記仮想キャッシュ・メモリの特定エントリ
における物理アドレス情報との間に符合があるかが決定
され得、そしてステップJが実行され得て:もし前記変
換索引バッファの前記特定エントリにおける前記物理ア
ドレス情報と前記仮想キャッシュ・メモリの特定エント
リにおける前記物理アドレス情報との間に符合があれ
ば、前記キャッシュ・メモリの前記特定エントリにおけ
る前記論理アドレス情報が、前記変換索引バッファの前
記特定エントリにおける論理アドレス情報で更新され得
る。
【0251】先の方法において、ステップD及びHでの
前記変換索引バッファの前記アクセスのステップが、前
記変換索引バッファの単一アクセスと一緒に実行され得
る。先の方法において、同一物理アドレスを有する2つ
の論理アドレスの条件が検出され得て、前記メモリ・ア
クセス操作がキャッシュ・ミス操作を実行すること無し
に完了される。先の方法において、前記メモリ・アクセ
ス操作がメモリ書込み操作であり得て、前記仮想キャッ
シュ・メモリの前記特定エントリにおける前記許可情報
が、前記メモリ書込み操作が許可されていないことを初
期的に表示し、前記変換索引バッファの前記特定エント
リが、前記メモリ書込み操作が許可されていないことを
初期的に表示し、前記方法は、以下のステップ:前記メ
モリ書込み操作が前記所定のメモリ箇所を含むメモリの
特定ページに対する第1メモリ書込み操作であるかを決
定する操作を実行するステップ;前記変換索引バッファ
の前記特定エントリにおける前記許可情報を更新するス
テップを更に含み得る。先の方法において、ステップA
乃至Gは前記メモリ書込み操作に対して繰り返され得
て、前記仮想キャッシュ・メモリの前記特定エントリに
おける前記許可情報が更新され、前記メモリ書込み操作
が完了される。
【0252】また、先の方法において、ステップEの
後、もし前記メモリ・アクセス操作が前記変換索引バッ
ファの前記特定エントリにおける前記許可情報によって
許可されていなければ、許可違反例外が提起され得る。
【0253】理解して頂けるように、そのような仮想キ
ャッシュ・メモリの好適な実施の形態で、外部供給され
るスヌープ型コマンドは、例えば該スヌープ型コマンド
で提供される物理アドレス情報に基づくptag比較を
用いて処理され得て、キャッシュ及びメモリは望まれる
通りに一貫性を有し得る。
【0254】特定の好ましい実施の形態に関する付加的
な情報は、添付の、かつ引用により本明細書に組み込ま
れている文献「SH5アーキテクチャ」およびそれに付
随するパンフレットからも理解されるであろう。
【0255】以上、本発明を好適な実施の形態及び代替
の実施の形態に関して説明したが、当業者には明らかな
ように、本発明の精神から実質的に逸脱すること無し
に、数多くの代替及び変更等が試され得る。従って、全
てのそのような代替及び変更は添付の特許請求の範囲で
定義されたように本発明の精神及び範囲に含まれること
が意図されている。
【図面の簡単な説明】
【図1】図1は、本発明の好適な実施の形態に従ったC
PU、及び、計算システム/データ・プロセッサの例示
的なブロック構成図である。
【図2】図2は、本発明に従ったCPUの好適な実施の
形態で利用される例示的なステータス・レジスタを示す
図である。
【図3A】図3Aは、本発明の好適な実施の形態に利用
される、例示的な物理アドレス空間を示す図である。
【図3B】図3Bは、本発明の好適な実施の形態に利用
される、例示的な論理アドレス空間を示す図である。
【図3C】図3Cは、本発明の好適な実施の形態に利用
される、例示的な構成アドレス空間を示す図である。
【図4A】図4Aは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図4B】図4Bは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図4C】図4Cは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図5A】図5Aは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図5B】図5Bは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図5C】図5Cは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図5D】図5Dは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図5E】図5Eは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図5F】図5Fは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図5G】図5Gは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図5H】図5Hは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図5I】図5Iは、本発明の好適な実施の形態に従っ
たMMUに対する例示的な構成レジスタを示す図であ
る。
【図6】図6は、本発明の好適な実施の形態に従った、
有効アドレスから物理アドレスへの例示的な翻訳を示す
図である。
【図7A】図7Aは、本発明の好適な実施の形態に従っ
た、仮想キャッシュ・メモリに対する例示的な構成レジ
スタを示す図である。
【図7B】図7Bは、本発明の好適な実施の形態に従っ
た、仮想キャッシュ・メモリに対する例示的な構成レジ
スタを示す図である。
【図7C1】図7C1は、本発明の好適な実施の形態に
従った、仮想キャッシュ・メモリに対する例示的な構成
レジスタを示す図である。
【図7C2】図7C2は、図7C1に続く構成レジスタ
を示す図である。
【図7D】図7Dは、本発明の好適な実施の形態に従っ
た、仮想キャッシュ・メモリに対する例示的な構成レジ
スタを示す図である。
【図7E】図7Eは、本発明の好適な実施の形態に従っ
た、仮想キャッシュ・メモリに対する例示的な構成レジ
スタを示す図である。
【図7F】図7Fは、本発明の好適な実施の形態に従っ
た、仮想キャッシュ・メモリに対する例示的な構成レジ
スタを示す図である。
【図7G1】図7G1は、本発明の好適な実施の形態に
従った、仮想キャッシュ・メモリに対する例示的な構成
レジスタを示す図である。
【図7G2】図7G2は、図7G1に続く構成レジスタ
を示す図である。
【図7G3】図7G3は、図1G2に続く構成レジスタ
を示す図である。
【図7H】図7Hは、本発明の好適な実施の形態に従っ
た、仮想キャッシュ・メモリに対する例示的な構成レジ
スタを示す図である。
【図7I】図7Iは、本発明の好適な実施の形態に従っ
た、仮想キャッシュ・メモリに対する例示的な構成レジ
スタを示す図である。
【図8A】図8Aは、本発明の好適な実施の形態に従っ
た例示的仮想キャッシュ・アレイを示す図である。
【図8B】図8Bは、本発明の好適な実施の形態に従っ
た例示的仮想キャッシュ・アレイを示す図である。
【図9】図9は、本発明の好適な実施の形態に従った、
仮想キャッシュにおける許可を拡大するための1つの例
示的なプロセス・フローを図示するフローチャートであ
る。
【図10】図10は、本発明の好適な実施の形態に従っ
た、仮想キャッシュにおける許可を拡大してシノニム/
エイリアシングを解決するための第2の例示的なプロセ
ス・フローを図示する別のフローチャートである。
【図11】図11は、本発明の好適な実施の形態に従っ
た、vtag比較及び許可チェックを図示する概略図で
ある。
【図12】図12は、本発明の好適な実施の形態に従っ
た、外部供給スヌープ形式コマンドに応じて仮想キャッ
シュ・メモリ・システムにおけるキャッシュ・コヒーレ
ンシーを維持するプロセスを図示するフローチャートで
ある。
【符号の説明】
100 プロセッサ 102 CPUコア 104,112,122,124 バス 106 ダイレクト・メモリ・アクセス・コントロー
ラ(DMAC) 108 周辺モジュール 114 PCHブリッジ 118 インターフェース 120 外部メモリ・インターフェース/コントロー
ラ 126 外部メモリ
フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/12 503 G06F 12/12 503 (72)発明者 ハセガワ・アツシ アメリカ合衆国、カリフォルニア州 94086、サニーヴェイル、#301、オール ド・サンフランシスコ・ロード 718

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 命令を実行し、メモリ空間に複数箇所を
    有するメモリからのデータを記憶し且つ受信するデータ
    処理システムであり、多数のセット(nsets)を含
    む多数のエントリを有する命令キャッシュ・メモリを含
    み、前記セット各々が多数のウェイ(nways)を含
    むことから成るデータ処理システムにおいて、 A.1つ或はそれ以上の第1命令を実行して、1つ或は
    それ以上の命令を前記命令キャッシュ・メモリの第1ウ
    ェイ内へロードするステップと、 B.1つ或はそれ以上の第2命令を実行して、前記命令
    キャッシュ・メモリの前記第1ウェイをロックするステ
    ップと、 C.前記命令キャッシュ・メモリの前記第1ウェイ内に
    ロードされた前記1つ或はそれ以上の命令を含んでいる
    一連の命令を実行し、前記命令キャッシュ・メモリの前
    記第1ウェイ内にロードされた前記1つ或はそれ以上の
    命令が、前記一連の命令の実行中に前記メモリから前記
    1つ或はそれ以上の命令を検索すること無しに、実行さ
    れることが予め決定されていることから成るステップ
    と、の諸ステップを含むデータ処理方法。
  2. 【請求項2】 前記命令キャッシュ・メモリが前記メモ
    リ空間から独立したレジスタ空間内の制御レジスタによ
    って制御され、前記1つ或はそれ以上の第2命令が、情
    報を前記制御レジスタに書込むPUT命令を含み、前記
    書込まれた情報が前記命令キャッシュ・メモリの前記ロ
    ッキングを制御する、請求項1に記載の方法。
  3. 【請求項3】 前記ウェイの数が2以上の数である、請
    求項1に記載の方法。
  4. 【請求項4】 前記第1ウェイがロックされている間
    に、1つ或はそれ以上の他のウェイがアンロックされて
    命令のキャッシング又は保存のために利用可能である、
    請求項3に記載の方法。
  5. 【請求項5】 前記多数のセット(nsets)が2以
    上の数である、請求項1に記載の方法。
  6. 【請求項6】 前記ステップAが前記ステップBの後で
    実行される、請求項1に記載の方法。
  7. 【請求項7】 前記1つ或はそれ以上の第2命令が、前
    記第1ウェイがロックされ、且つ前記第1ウェイが命令
    をロードするために使用されるように制御する、請求項
    6に記載の方法。
  8. 【請求項8】 命令を実行し、メモリ空間に複数箇所を
    有するメモリからのデータを記憶し且つ受信するデータ
    処理システムであり、多数のセット(nsets)を含
    む多数のエントリを有する命令キャッシュ・メモリを含
    み、前記セット各々が多数のウェイ(nways)を含
    むことから成るデータ処理システムにおいて、 A.1つ或はそれ以上の第1命令を実行して、1つ或は
    それ以上の命令を前記命令キャッシュ・メモリの第1ウ
    ェイ内へロードするステップと、 B.1つ或はそれ以上の第2命令を実行して、前記命令
    キャッシュ・メモリの前記第1ウェイをロックするステ
    ップと、 C.前記命令キャッシュ・メモリの前記第1ウェイ内に
    ロードされた前記1つ或はそれ以上の命令を含んでいる
    一連の命令を実行し、前記命令キャッシュ・メモリの前
    記第1ウェイ内にロードされた前記1つ或はそれ以上の
    命令が、前記一連の命令の実行中にキャッシュ・ミス無
    しに、実行されることが予め決定されていることから成
    るステップと、の諸ステップを含むデータ処理方法。
  9. 【請求項9】 前記命令キャッシュ・メモリが前記メモ
    リ空間から独立したレジスタ空間内の制御レジスタによ
    って制御され、前記1つ或はそれ以上の第2命令が、情
    報を前記制御レジスタに書込むPUT命令を含み、前記
    書込まれた情報が前記命令キャッシュ・メモリの前記ロ
    ッキングを制御する、請求項8に記載の方法。
  10. 【請求項10】 前記ウェイの数が2以上の数である、
    請求項8に記載の方法。
  11. 【請求項11】 前記第1ウェイがロックされている間
    に、1つ或はそれ以上の他のウェイがアンロックされて
    命令のキャッシング又は保存のために利用可能である、
    請求項10に記載の方法。
  12. 【請求項12】 前記多数のセット(nsets)が2
    以上の数である、請求項8に記載の方法。
  13. 【請求項13】 前記ステップAが前記ステップBの後
    で実行される、請求項8に記載の方法。
  14. 【請求項14】 前記1つ或はそれ以上の第2命令が、
    前記第1ウェイがロックされ、且つ前記第1ウェイが命
    令をロードするために使用されるように制御する、請求
    項13に記載の方法。
  15. 【請求項15】 命令を実行し、メモリ空間に複数箇所
    を有するメモリからのデータを記憶し且つ受信するデー
    タ処理システムであり、多数のセット(nsets)を
    含む多数のエントリを有するデータ・キャッシュ・メモ
    リを含み、前記セット各々が多数のウェイ(nway
    s)を含むことから成るデータ処理システムにおいて、 A.1つ或はそれ以上の第1命令を実行して、データを
    前記データ・キャッシュ・メモリの第1ウェイにおける
    1つ或はそれ以上の箇所内へロードするステップと、 B.1つ或はそれ以上の第2命令を実行して、前記デー
    タ・キャッシュ・メモリの前記第1ウェイをロックする
    ステップと、 C.データが前記データ・キャッシュ・メモリの前記第
    1ウェイ内にロードされる前記1つ或はそれ以上の箇所
    にアクセスする1つ或はそれ以上の命令を含んでいる一
    連の命令を実行し、前記命令キャッシュ・メモリの前記
    第1ウェイ内にロードされた前記データに対する前記1
    つ或はそれ以上の箇所が、前記一連の命令の実行中にキ
    ャッシュ・ミス無しに、アクセスされることが予め決定
    されていることから成るステップと、の諸ステップを含
    む方法。
  16. 【請求項16】 前記データ・キャッシュ・メモリが前
    記メモリ空間から独立したレジスタ空間内の制御レジス
    タによって制御され、前記1つ或はそれ以上の第2命令
    が、情報を前記制御レジスタに書込むPUT命令を含
    み、且つ前記書込まれた情報が前記データ・キャッシュ
    ・メモリの前記ロッキングを制御する、請求項15に記
    載の方法。
  17. 【請求項17】 前記ウェイの数が2以上の数である、
    請求項15に記載の方法。
  18. 【請求項18】 前記第1ウェイがロックされている間
    に、1つ或はそれ以上の他のウェイがアンロックされて
    データのキャッシング又は保存のために利用可能であ
    る、請求項17に記載の方法。
  19. 【請求項19】 前記多数のセット(nsets)が2
    以上の数である、請求項15に記載の方法。
  20. 【請求項20】 命令を実行し、メモリ空間に複数箇所
    を有するメモリからのデータを記憶し且つ受信するデー
    タ処理システムであり、多数のセット(nsets)を
    含む多数のエントリを有するキャッシュ・メモリを含
    み、前記セット各々が多数のウェイ(nways)を含
    むことから成るデータ処理システムにおいて、 A.1つ或はそれ以上の第1命令を実行して、データ或
    は命令を前記キャッシュ・メモリの第1ウェイにおける
    1つ或はそれ以上の箇所内へロードするステップと、 B.1つ或はそれ以上の第2命令を実行して、前記キャ
    ッシュ・メモリの前記第1ウェイをロックするステップ
    と、 C.データ或は命令が前記キャッシュ・メモリの前記第
    1ウェイ内にロードされた前記1つ或はそれ以上の箇所
    にアクセスする1つ或はそれ以上の命令を含んでいる一
    連の命令を実行し、前記キャッシュ・メモリの前記第1
    ウェイ内にロードされた前記データ或は命令に対する前
    記1つ或はそれ以上の箇所が、前記一連の命令の実行中
    にキャッシュ・ミス無しに、アクセスされることが予め
    決定されていることから成るステップと、の諸ステップ
    を含むデータ処理方法。
  21. 【請求項21】 前記キャッシュ・メモリが前記メモリ
    空間から独立したレジスタ空間内の制御レジスタによっ
    て制御され、前記1つ或はそれ以上の第2命令が、情報
    を前記制御レジスタに書込むPUT命令を含み、前記書
    込まれた情報が前記キャッシュ・メモリの前記ロッキン
    グを制御する、請求項20に記載の方法。
  22. 【請求項22】 前記ウェイの数が2以上の数である、
    請求項20に記載の方法。
  23. 【請求項23】 前記第1ウェイがロックされている間
    に、1つ或はそれ以上の他のウェイがアンロックされて
    データのキャッシング又は保存のために利用可能であ
    る、請求項22に記載の方法。
  24. 【請求項24】 前記多数のセット(nsets)が2
    以上の数である、請求項20に記載の方法。
JP2000335192A 1999-10-01 2000-09-28 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法 Pending JP2001202287A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/410,693 US6629207B1 (en) 1999-10-01 1999-10-01 Method for loading instructions or data into a locked way of a cache memory
US09/410693 1999-10-01

Publications (1)

Publication Number Publication Date
JP2001202287A true JP2001202287A (ja) 2001-07-27

Family

ID=23625836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000335192A Pending JP2001202287A (ja) 1999-10-01 2000-09-28 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法

Country Status (2)

Country Link
US (1) US6629207B1 (ja)
JP (1) JP2001202287A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227880A (ja) * 2010-04-22 2011-11-10 Arm Ltd プレロード命令制御
JP2013533567A (ja) * 2010-08-11 2013-08-22 アーム・リミテッド メモリアクセス制御

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615300B1 (en) * 2000-06-19 2003-09-02 Transmeta Corporation Fast look-up of indirect branch destination in a dynamic translation system
US6772299B2 (en) * 2001-07-16 2004-08-03 Sun Microsystems, Inc. Method and apparatus for caching with variable size locking regions
US7234027B2 (en) * 2001-10-24 2007-06-19 Cray Inc. Instructions for test & set with selectively enabled cache invalidate
US7162608B2 (en) * 2001-10-24 2007-01-09 Cray, Inc. Translation lookaside buffer-based memory system and method for use in a computer having a plurality of processor element
JP2003345531A (ja) * 2002-05-24 2003-12-05 Hitachi Ltd ストレージシステム、管理サーバ、及びそのアプリケーションの管理方法
JP4160790B2 (ja) * 2002-06-28 2008-10-08 株式会社ルネサステクノロジ 半導体装置
US6976117B2 (en) * 2002-08-13 2005-12-13 Intel Corporation Snoopy virtual level 1 cache tag
US7139905B2 (en) * 2004-04-29 2006-11-21 Microsoft Corporation Dynamic endian switching
JP4783229B2 (ja) * 2006-07-19 2011-09-28 パナソニック株式会社 キャッシュメモリシステム
US9208095B2 (en) 2006-12-15 2015-12-08 Microchip Technology Incorporated Configurable cache for a microprocessor
US7966457B2 (en) 2006-12-15 2011-06-21 Microchip Technology Incorporated Configurable cache for a microprocessor
US7877537B2 (en) * 2006-12-15 2011-01-25 Microchip Technology Incorporated Configurable cache for a microprocessor
US8051338B2 (en) * 2007-07-19 2011-11-01 Cray Inc. Inter-asic data transport using link control block manager
US20090164758A1 (en) * 2007-12-20 2009-06-25 Haertel Michael J System and Method for Performing Locked Operations
WO2010035236A1 (en) * 2008-09-25 2010-04-01 Nxp B.V. System for managing access rights to an object of an object oriented programming language
US8589629B2 (en) * 2009-03-27 2013-11-19 Advanced Micro Devices, Inc. Method for way allocation and way locking in a cache
US8234407B2 (en) * 2009-06-30 2012-07-31 Oracle America, Inc. Network use of virtual addresses without pinning or registration
US8631207B2 (en) * 2009-12-26 2014-01-14 Intel Corporation Cache memory power reduction techniques
US20120011490A1 (en) * 2010-07-09 2012-01-12 Kabushiki Kaisha Toshiba Development system
US8417880B2 (en) * 2010-11-01 2013-04-09 Hong Kong Applied Science and Technology Research Institute Company Limited System for NAND flash parameter auto-detection
US8631212B2 (en) * 2011-09-25 2014-01-14 Advanced Micro Devices, Inc. Input/output memory management unit with protection mode for preventing memory access by I/O devices
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
KR20160122278A (ko) 2012-08-18 2016-10-21 퀄컴 테크놀로지스, 인크. 프리페칭을 갖는 변환 색인 버퍼
US8984368B2 (en) 2012-10-11 2015-03-17 Advanced Micro Devices, Inc. High reliability memory controller
US9558121B2 (en) * 2012-12-28 2017-01-31 Intel Corporation Two-level cache locking mechanism
US9292453B2 (en) * 2013-02-01 2016-03-22 International Business Machines Corporation Storing a system-absolute address (SAA) in a first level translation look-aside buffer (TLB)
GB2514611A (en) * 2013-05-31 2014-12-03 Ibm Storage integrity validator
US10891234B2 (en) * 2018-04-04 2021-01-12 Sap Se Cache partitioning to accelerate concurrent workloads
US11221957B2 (en) * 2018-08-31 2022-01-11 International Business Machines Corporation Promotion of ERAT cache entries
US11288213B2 (en) * 2019-03-29 2022-03-29 Intel Corporation Memory protection with hidden inline metadata

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101077A (ja) * 1999-10-01 2001-04-13 Fujitsu Ltd キャッシュメモリの制御方法とその方法を採用した計算機

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4332010A (en) 1980-03-17 1982-05-25 International Business Machines Corporation Cache synonym detection and handling mechanism
US4400770A (en) 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
US4724517A (en) 1982-11-26 1988-02-09 Inmos Limited Microcomputer with prefixing functions
DE3584690D1 (de) 1984-06-20 1992-01-02 Convex Computer Corp Ein-/ausgabebus fuer rechner.
US4873629A (en) 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
US4935867A (en) 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
US4797814A (en) 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
US4814981A (en) 1986-09-18 1989-03-21 Digital Equipment Corporation Cache invalidate protocol for digital data processing system
JPH0221342A (ja) 1987-02-27 1990-01-24 Hitachi Ltd マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法
US4926317A (en) 1987-07-24 1990-05-15 Convex Computer Corporation Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses
US5483518A (en) 1992-06-17 1996-01-09 Texas Instruments Incorporated Addressable shadow port and protocol for serial bus networks
JPH0666056B2 (ja) 1989-10-12 1994-08-24 甲府日本電気株式会社 情報処理システム
US5148538A (en) 1989-10-20 1992-09-15 International Business Machines Corporation Translation look ahead based cache access
JPH03217949A (ja) 1990-01-23 1991-09-25 Hitachi Ltd 計算機システム
US5452432A (en) 1990-08-14 1995-09-19 Chips And Technologies, Inc. Partially resettable, segmented DMA counter
JP2984463B2 (ja) 1991-06-24 1999-11-29 株式会社日立製作所 マイクロコンピュータ
US5423050A (en) 1991-11-27 1995-06-06 Ncr Corporation Intermodule test across system bus utilizing serial test bus
US5367653A (en) * 1991-12-26 1994-11-22 International Business Machines Corporation Reconfigurable multi-way associative cache memory
US5724549A (en) 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals
GB2266606B (en) 1992-04-27 1996-02-14 Intel Corp A microprocessor with an external command mode
US5974508A (en) * 1992-07-31 1999-10-26 Fujitsu Limited Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced
US5448576A (en) 1992-10-29 1995-09-05 Bull Hn Information Systems Inc. Boundary scan architecture extension
JP3524110B2 (ja) 1992-11-06 2004-05-10 株式会社ルネサステクノロジ マイクロコンピュータシステム
JPH06150023A (ja) 1992-11-06 1994-05-31 Hitachi Ltd マイクロコンピュータ及びマイクロコンピュータシステム
JP3231429B2 (ja) 1992-11-06 2001-11-19 株式会社日立製作所 中央処理装置と乗算器とを有する半導体集積回路装置
US5627842A (en) 1993-01-21 1997-05-06 Digital Equipment Corporation Architecture for system-wide standardized intra-module and inter-module fault testing
US5493667A (en) * 1993-02-09 1996-02-20 Intel Corporation Apparatus and method for an instruction cache locking scheme
JP2731692B2 (ja) 1993-04-28 1998-03-25 日本電気アイシーマイコンシステム株式会社 デバッグ装置
US5598551A (en) 1993-07-16 1997-01-28 Unisys Corporation Cache invalidation sequence system utilizing odd and even invalidation queues with shorter invalidation cycles
EP0636976B1 (en) 1993-07-28 1998-12-30 Koninklijke Philips Electronics N.V. Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions
JP3904244B2 (ja) 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
EP0652516A1 (en) 1993-11-03 1995-05-10 Advanced Micro Devices, Inc. Integrated microprocessor
US5596734A (en) 1993-12-17 1997-01-21 Intel Corporation Method and apparatus for programming embedded memories of a variety of integrated circuits using the IEEE test access port
US5828825A (en) 1993-12-22 1998-10-27 Intel Corporation Method and apparatus for pseudo-direct access to embedded memories of a micro-controller integrated circuit via the IEEE test access port
US5434804A (en) 1993-12-29 1995-07-18 Intel Corporation Method and apparatus for synchronizing a JTAG test control signal to an on-chip clock signal
US5488688A (en) 1994-03-30 1996-01-30 Motorola, Inc. Data processor with real-time diagnostic capability
JPH07287668A (ja) 1994-04-19 1995-10-31 Hitachi Ltd データ処理装置
JPH082819A (ja) 1994-06-13 1996-01-09 Murata Mach Ltd 風綿回収装置のダストコレクター
GB9417602D0 (en) 1994-09-01 1994-10-19 Inmos Ltd A controller for implementing scan testing
JPH08329687A (ja) 1995-06-05 1996-12-13 Hitachi Ltd 半導体集積回路
JP3672634B2 (ja) 1994-09-09 2005-07-20 株式会社ルネサステクノロジ データ処理装置
JP3713312B2 (ja) 1994-09-09 2005-11-09 株式会社ルネサステクノロジ データ処理装置
US5907867A (en) 1994-09-09 1999-05-25 Hitachi, Ltd. Translation lookaside buffer supporting multiple page sizes
JP3740195B2 (ja) 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US5848247A (en) 1994-09-13 1998-12-08 Hitachi, Ltd. Microprocessor having PC card interface
US20030061545A1 (en) * 1994-09-30 2003-03-27 Chandrashekhar S. Patwardhan Method and apparatus for providing test mode access to an instruction cache and microcode rom
US5613153A (en) 1994-10-03 1997-03-18 International Business Machines Corporation Coherency and synchronization mechanisms for I/O channel controllers in a data processing system
US5751621A (en) 1994-11-17 1998-05-12 Hitachi, Ltd. Multiply-add unit and data processing apparatus using it
TW330265B (en) 1994-11-22 1998-04-21 Hitachi Ltd Semiconductor apparatus
JP2752592B2 (ja) 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5778237A (en) 1995-01-10 1998-07-07 Hitachi, Ltd. Data processor and single-chip microcomputer with changing clock frequency and operating voltage
US5664197A (en) 1995-04-21 1997-09-02 Intel Corporation Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller
US5867726A (en) 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
US5570375A (en) 1995-05-10 1996-10-29 National Science Council Of R.O.C. IEEE Std. 1149.1 boundary scan circuit capable of built-in self-testing
GB9509988D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Matrix transposition
GB9509989D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
US5860127A (en) 1995-06-01 1999-01-12 Hitachi, Ltd. Cache memory employing dynamically controlled data array start timing and a microcomputer using the same
US5774701A (en) 1995-07-10 1998-06-30 Hitachi, Ltd. Microprocessor operating at high and low clok frequencies
GB9514684D0 (en) 1995-07-18 1995-09-13 Sgs Thomson Microelectronics An arithmetic unit
US5708773A (en) 1995-07-20 1998-01-13 Unisys Corporation JTAG interface system for communicating with compliant and non-compliant JTAG devices
US5737516A (en) 1995-08-30 1998-04-07 Motorola, Inc. Data processing system for performing a debug function and method therefor
US5704034A (en) 1995-08-30 1997-12-30 Motorola, Inc. Method and circuit for initializing a data processing system
JP3655403B2 (ja) 1995-10-09 2005-06-02 株式会社ルネサステクノロジ データ処理装置
JP3623840B2 (ja) 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
US5950012A (en) 1996-03-08 1999-09-07 Texas Instruments Incorporated Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US5978874A (en) 1996-07-01 1999-11-02 Sun Microsystems, Inc. Implementing snooping on a split-transaction computer system bus
JPH09311786A (ja) 1996-03-18 1997-12-02 Hitachi Ltd データ処理装置
JP3579205B2 (ja) 1996-08-06 2004-10-20 株式会社ルネサステクノロジ 半導体記憶装置、半導体装置、データ処理装置及びコンピュータシステム
GB9617033D0 (en) 1996-08-14 1996-09-25 Int Computers Ltd Diagnostic memory access
US5768152A (en) 1996-08-28 1998-06-16 International Business Machines Corp. Performance monitoring through JTAG 1149.1 interface
JPH10177520A (ja) 1996-10-16 1998-06-30 Hitachi Ltd データプロセッサ及びデータ処理システム
JP3790307B2 (ja) 1996-10-16 2006-06-28 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
JP3641327B2 (ja) 1996-10-18 2005-04-20 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
GB9622686D0 (en) 1996-10-31 1997-01-08 Sgs Thomson Microelectronics A test port controller and a method of effecting communication using the same
US5953538A (en) 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US5983017A (en) 1996-11-12 1999-11-09 Lsi Logic Corporation Virtual monitor debugging method and apparatus
US5771240A (en) 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin
US5956477A (en) 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
US5913224A (en) * 1997-02-26 1999-06-15 Advanced Micro Devices, Inc. Programmable cache including a non-lockable data way and a lockable data way configured to lock real-time data
US5896550A (en) 1997-04-03 1999-04-20 Vlsi Technology, Inc. Direct memory access controller with full read/write capability
US5978902A (en) 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US5944841A (en) 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US5961631A (en) * 1997-07-16 1999-10-05 Arm Limited Data processing apparatus and method for pre-fetching an instruction in to an instruction cache
US6047358A (en) * 1997-10-31 2000-04-04 Philips Electronics North America Corporation Computer system, cache memory and process for cache entry replacement with selective locking of elements in different ways and groups
GB9802097D0 (en) 1998-01-30 1998-03-25 Sgs Thomson Microelectronics DMA controller
GB9806184D0 (en) 1998-03-23 1998-05-20 Sgs Thomson Microelectronics A cache coherency mechanism
GB9809203D0 (en) 1998-04-29 1998-07-01 Sgs Thomson Microelectronics Packet distribution in a microcomputer
US6412043B1 (en) * 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101077A (ja) * 1999-10-01 2001-04-13 Fujitsu Ltd キャッシュメモリの制御方法とその方法を採用した計算機

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227880A (ja) * 2010-04-22 2011-11-10 Arm Ltd プレロード命令制御
US9632776B2 (en) 2010-04-22 2017-04-25 Arm Limited Preload instruction control
JP2013533567A (ja) * 2010-08-11 2013-08-22 アーム・リミテッド メモリアクセス制御
US8788775B2 (en) 2010-08-11 2014-07-22 Arm Limited Memory access control using redundant and non-redundant encoding

Also Published As

Publication number Publication date
US6629207B1 (en) 2003-09-30

Similar Documents

Publication Publication Date Title
US6591340B2 (en) Microprocessor having improved memory management unit and cache memory
US6598128B1 (en) Microprocessor having improved memory management unit and cache memory
US6629207B1 (en) Method for loading instructions or data into a locked way of a cache memory
US8949572B2 (en) Effective address cache memory, processor and effective address caching method
US7793067B2 (en) Translation data prefetch in an IOMMU
US9081711B2 (en) Virtual address cache memory, processor and multiprocessor
US7543131B2 (en) Controlling an I/O MMU
US20070130237A1 (en) Transient cache storage
US5802574A (en) Method and apparatus for quickly modifying cache state
US7480784B2 (en) Ensuring deadlock free operation for peer to peer traffic in an input/output memory management unit (IOMMU)
JP2016534431A (ja) ロード/記憶ユニット及びデータキャッシュの順序付け及びバンド幅の向上
US12038840B2 (en) Multi-level cache security
US11119925B2 (en) Apparatus and method for managing capability metadata
TWI442227B (zh) 微處理器之可組態快取
CN112639750B (zh) 用于控制存储器存取的装置及方法
US6553460B1 (en) Microprocessor having improved memory management unit and cache memory
US5471602A (en) System and method of scoreboarding individual cache line segments
WO1997034229A1 (en) Segment descriptor cache for a processor
WO1997034229A9 (en) Segment descriptor cache for a processor
Groote et al. Computer Organization
Teman Lecture 6: The Memory Hierarchy

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070802

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101116

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110308