(57)【要約】【課題】ターゲット命令セットからホスト命令セットに命令を変換するコンピュータにおいて、メモリ・サブページに対する書き込みが、ホスト命令に変換されたターゲット命令に対して指令されたか否かについて判定を行う方法。【解決手段】ホスト命令に変換されたターゲット命令を格納するメモリ・サブページに対する書き込みを検出するステップと、書き込みがアドレスされたメモリ・ページのサブエリアが、変換されたターゲット命令を格納しているか否かについて検出を行うステップと、アドレスされたターゲット命令から変換されたホスト命令を無効にするステップとを含む。【選択図】図３
2006244516.tif 000002
【特許請求の範囲】
【請求項１】
ターゲット命令セットからホスト命令セットに命令を変換するコンピュータにおいて、メモリ・ページに対する書き込みが、ホスト命令に変換されたターゲット命令に対するものか否かについて判定を行う方法であって、
ホスト命令に変換されたターゲット命令を格納する物理的メモリ・ページに対して物理的にアドレスされた書き込みを検出するステップであって、
物理的にアドレス可能なメモリ内に、ホスト命令に変換されたターゲット命令を格納している物理的メモリ・ページ毎にインディケータを格納するステップと、
かかる物理的メモリ・ページの各々に書き込みが行われようとしたときに、前記インディケータを検出するステップと、
から成るステップと、
前記書き込みがアドレスされた前記物理的メモリ・ページのサブエリアが、変換されたターゲット命令を格納しているか否かについて、前記インディケータを記憶していないルックアップ・テーブル内に記憶されたサブエリア・インディケータを用いて検出を行うステップと、
物理的にアドレスされたターゲット命令から変換されたホスト命令を無効にするステップと、
を含む方法。
【請求項２】
ターゲット命令セットからホスト命令セットに命令を変換するコンピュータであって、
ホスト命令を実行する処理ユニットと、
システム・メモリと、
システム・メモリへのアクセスを制御するメモリ管理ユニットであって、
ホスト命令に変換されたターゲット命令を格納し、第１の数のエントリーを有するシステム・メモリの物理的部分を示す手段と、
物理的にアドレスされた命令に応答して、ホスト命令に変換されたターゲット命令を格納し、前記第１の数のエントリーより少数の第２の数のエントリーを有するシステム・メモリの前記物理的部分のサブエリアを示す手段と、
ターゲット命令のみを格納している物理的システム・メモリの部分に対して書き込みが行われようとしたときに、物理的システム・メモリのかかる部分に格納されているターゲット命令から変換されたホスト命令を無効にする手段と、
ターゲット命令を格納している物理的システム・メモリの部分のサブエリアに対して書き込みが行われようとしたときに、物理的システム・メモリのかかるサブエリアに格納されているターゲット命令から変換されたホスト命令を無効にする手段と、
を含むメモリ管理ユニットと、
を備えているコンピュータ。
【請求項３】
ターゲット命令セットからホスト命令セットに命令を変換するコンピュータにおいてシステム・メモリに対するアクセスを制御するメモリ管理ユニットであって、
物理的にアドレスされた命令に応答して、ホスト命令に変換されたターゲット命令を格納し、第１の数のエントリーを有するシステム・メモリの部分を示す手段と、
物理的にアドレスされた命令に応答して、ホスト命令に変換されたターゲット命令を格納し、前記第１の数のエントリーより少数の第２の数のエントリーを有するシステム・メモリの前記部分のサブエリアを示す手段と、
ターゲット命令のみを格納しているシステム・メモリの部分に対して書き込みが行われようとしたときに、システム・メモリのかかる部分に格納されているターゲット命令から変換されたホスト命令を無効にする手段と、
ターゲット命令を格納しているシステム・メモリの部分のサブエリアに対して書き込みが行われようとしたときに、システム・メモリのかかるサブエリアに格納されているターゲット命令から変換されたホスト命令を無効にする手段と、
を含むメモリ管理ユニット。
【請求項４】
コンピュータ・システムのメモリを保護するための方法であって、
あるページ・テーブル・サイズを有しかつページ・テーブル・エントリーを含むページ・テーブルを維持するステップと、
前記ページ・テーブル・サイズより小さな微粒子テーブル・サイズを有しかつ微粒子テーブル・エントリーを含む微粒子テーブルを維持するステップと、
ターゲット命令をメモリ・ページの第１のサブエリアに記憶するステップと、
前記ターゲット命令をホスト命令の変換されたグループに変換するステップと、
前記メモリ・ページに対応するページ・テーブル・エントリ内にＴビットをセットするステップと、
前記第１のサブエリアに対応する微粒子テーブル・エントリ内に微粒子Ｔビットをセットするステップと、
から成る方法。
【請求項５】
請求項４記載のコンピュータ・システムのメモリを保護するための方法であって、更に、
前記ホスト命令の変換されたグループを無効化すること無しに、前記メモリ・ページの第２のサブエリアにデータを書き込むステップを含む、
ことを特徴とする方法。
【請求項６】
請求項４記載のコンピュータ・システムのメモリを保護するための方法であって、更に、
前記第１のサブエリアに対する書き込み処理を始めるステップと、
前記Ｔビットを検査するステップと、
前記微粒子Ｔビットを検査するステップと、
前記ホスト命令の変換されたグループを無効化するステップと、
を含むことを特徴とする方法。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
【技術分野】
【０００２】
本発明は、コンピュータ・システムに関し、更に特定すれば、ターゲット命令セットからホスト命令セットに命令を動的に変換するマイクロプロセッサによる既に変換されたターゲット命令を格納したメモリへの書き込み試行を検出する方法および装置に関する。
【背景技術】
【０００３】
最近、単純であるが非常に高速のホスト・プロセッサ（「モーフ・ホスト」と呼ぶ）とソフトウエア（「コード・モーフィング・ソフトウエア」と呼ぶ）とを組み合わせ、モーフ・ホスト・プロセッサの命令セットとは異なる命令セットを有するプロセッサ用に設計したアプリケーション・プログラムを実行する新たなマイクロプロセッサが開発された。モーフ・ホスト・プロセッサは、アプリケーション・プログラムを、元のソフトウエアの目的を達成することができるホスト・プロセッサ命令に動的に変換するコード・モーフィング・ソフトウエアを実行する。命令を変換する際、これらを変換バッファに格納する。変換バッファ内では、更に変換せずにこれらを実行することができる。プログラムの初期変換は低速であるが、一旦変換されれば、プログラムを実行するためにハードウエアに通常必要となるステップの多くは不要となる。新たなマイクロプロセッサは、変換した「ターゲット」プログラムを、そのプログラムを設計した対象である「ターゲット」プロセッサと同程度の速度で実行可能であることを証明した。
【０００４】
モーフ・ホスト・プロセッサは、多数のハードウエア強化策を盛り込んでおり、ターゲット・プロセッサの既知の状態間におよぶターゲット命令シーケンスをホスト命令に変換し、更なる使用のために変換バッファに格納し、変換した命令が正しく実行するか否か判定するために検査することができる。これらのハードウエア強化策によって、実行が成功している限り、変換実行の効果をバッファすることが可能となる。「コミット」と呼ばれるプロセスにおいて実行が成功すると、メモリ・ストアおよびターゲット・プロセッサ状態を更新する。これらのハードウエア強化策によって、ターゲット・プロセッサの既知の状態が存在する命令シーケンスの先頭に実行を戻すことによって、ホスト命令シーケンスの実行中に発生する例外の迅速かつ高精度の処理が可能となる。ターゲット状態がわかっている実行点に動作を戻すことを「ロールバック」と呼ぶ。新たなプロセッサは、本発明の譲受人に譲渡された、１９９８年１１月３日付けのKelly等の米国特許第５，８３２，２０５号、Memory Controller For A Microprocessor For Detecting A Failure Of Speculation On The Physical Nature Of A Component Being Addressed （アドレスされているコンポーネントの物理的性質に対する推定の失敗を検出するマイクロプロセッサのメモリ・コントローラ）に詳しく記載されている。
【０００５】
新たなプロセッサに伴って発生する可能性がある問題の１つに、ターゲット・プロセッサのオペレーティング・システムおよびアプリケーションによっては、メモリに格納されているターゲット命令に書き込みを行う可能性があることがあげられる。これが発生すると、上書きされたターゲット命令の変換であるホスト命令は、もはや有効でなくなる。無効なホスト変換を用いないことを保証するために、新たなプロセッサは、「Ｔビット」と名付けられたインディケータを利用する。Ｔビットには、変換ルックアサイド・バッファ（ＴＬＢ：translation lookaside buffer）における物理ページ・アドレスと共に格納される。ルックアサイド・バッファは、最新のメモリ・アクセスの仮想メモリ・アドレスおよび物理メモリ・アドレス双方を含むエントリを格納し、ページ・テーブルによるよりも一層メモリ・アクセスの高速化を可能にする。新たなプロセッサのＴＬＢにおいて、各エントリはＴビットを含む。アドレス・メモリ・ページ上の命令がホスト命令に変換されたときにはいつでも、Ｔビットはセットされる。Ｔビットによって保護されているメモリ・ページに書き込みが行われようとすると、Ｔビット例外が発生する。Ｔビット例外によって、例外ハンドラは、Ｔビットによって保護されているページ上のターゲット命令から変換されたホスト命令のアドレスへの参照を保持するデータ構造を調べる。例外ハンドラは、これらの変換を、ＴＬＢエントリのＴビット保護をオフにすることによって、無効にする。
【０００６】
Ｔビットを利用するための構成は、１９９６年８月２２日に出願され、本発明と同じ譲受人に譲渡された、Kelly等のTranslated Memory Protection Apparatus For An Advanced Microprocessor（高度マイクロプロセッサのための変換メモリ保護装置）と題する米国特許第０８／７０２，７７１号に詳しく記載されている。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ＴＬＢエントリにおいてＴビットを利用する構成は、ほとんどの状況において効率的に機能するが、動作においていくつかの問題が残っている。これらの問題の１つは、あるターゲット・プロセッサが、命令とデータが格納されているエリア間で区別を行わないオペレーティング・システムを採用していることである。例えば、マイクロソフト社の「ウインドウズ」は、命令のために指定されたセグメント、およびデータのために指定された別のセグメントを、同じメモリ・ページ上に格納することを許す。
【０００８】
これが生じると、かかるメモリ・ページ上のデータに書き込みを行おうとした場合、Ｔビット障害が発生する。その結果生ずる例外によって、当該データへの書き込みが、ターゲット命令を全く変化させなかったことを示しても、特定のＴビットによって保護されているメモリ・ページ上のターゲット命令の変換全てが無効となる。メモリ・ページ上において正しい変換が無効にされると、新たなプロセッサの動作が著しく遅くなる。
【０００９】
Ｔビットによって保護されているメモリ・ページへの書き込みによる影響を受けない変換の無効化を排除し、発生しても変換の無効化を生じないＴビット・トラップの数を低減することによって、新たなプロセッサの動作速度を向上させることが望ましい。
【００１０】
したがって、本発明の目的は、他のマイクロプロセッサのために設計されたアプリケーション・プログラムおよびオペレーティング・システムと互換性があり、これらを走らせることができ、しかもこれら他のマイクロプロセッサよりも一層高速なマイクロプロセッサを提供することである。
【課題を解決するための手段】
【００１１】
本発明のこの目的およびその他の目的は、ターゲット命令セットからホスト命令セットに命令を変換するコンピュータにおいて、メモリ・ページに対する書き込みが、ホスト命令に変換されたターゲット命令に対するものか否かについて判定を行う方法によって実現される。この方法は、ホスト命令に変換されたターゲット命令を格納するメモリ・ページに対する書き込みを検出するステップと、書き込みがアドレスされたメモリ・ページのサブエリアが、変換されたターゲット命令を格納しているか否かについて検出を行うステップと、アドレスされたターゲット命令から変換されたホスト命令を無効にするステップとを含む。
【００１２】
本発明のこれらおよびその他の目的ならびに特徴は、図面と共に以下に続く詳細な説明を参照することによって、一層良く理解されよう。図面においては、いくつかの図を通じて同様のエレメントを同様の符号で示すこととする。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明を利用可能なマイクロプロセッサ１１を示す。図示したマイクロプロセッサは、米国特許第５，８３２，２０５号に詳細に記載されている。このマイクロプロセッサは、浮動小数点ユニット１２、整数ユニット１３、システム・メモリの一部である変換バッファ１４、システム・メモリの別の一部であるターゲット・メモリ１５、およびメモリ管理ユニットの一部である変換ルックアサイド・バッファ１６を含む。
【００１４】
前述のように、新たなマイクロプロセッサは、独特な方法を利用して、変換した命令が、これらを変換した元のターゲット命令との一貫性を保持していることを保証する。この方法を「Ｔビット例外」と呼ぶ。Ｔビットは、変換ルックアサイド・バッファ１６内のエントリに置かれ、書き込みを行おうとしているターゲット・メモリ１５内のメモリ・ページが、変換バッファ１４内に格納されているホスト命令に変換されているターゲット命令を格納していることを表示する。Ｔビット例外が発生するのは、変換されたターゲット命令を格納しているメモリ・ページに書き込みを行おうとしたときである。
【００１５】
Ｔビットの目的は、変換したホスト命令を無効にし、変換を発生した元のターゲット命令が変化したときに、変換を用いない（または少なくとも、使用前にこれらが未だ有効であることを判定するためにチェックを行う）ようにすることである。「無効化」とは、この明細書では両方の意味を含むように用いることとする。しかしながら、ある種のターゲット・プロセッサでは（特に、Ｘ８６ファミリ）、変換された命令およびデータ双方を含むメモリ・ページが存在することが許されている。メモリ・ページへのデータの書き込みは、そのページ上の命令を変化させないので、当該メモリ・ページ上の命令から変換されたホスト命令を無効にする理由がない。その結果、新たなプロセスが考案され、これによってコード・モーフィング・ソフトウエアは、あるメモリ・ページに対して行われようとした書き込みが、変換された命令に対するものか、またはデータに対するものかについて判定を行い、ページ上の命令の変換を無効にすることなくデータへの書き込みを許可することができるようにした。また、新たなプロセスは、実際に書き込まれているメモリ・ページのエリアに対する、ページ上の命令への書き込みの効果も制限する。
【００１６】
これを行うための本発明のプロセスは、Ｔビットによって保護されているメモリ・ページを一層微細な粒度で分割する。本プロセスは、被保護ページをサイズが等しい複数のサブエリアに分割し、かかるメモリ・ページのサブエリア毎にインディケータを格納する。一実施形態では、インディケータは、複数のサブエリアの各々に１ビットから成るマスクを形成する。マスクは、Ｔビットで保護されているメモリ・ページの一部として格納することも可能である。保護されているサブエリア毎のインディケータを、「微粒子Ｔビット」と呼ぶ。一実施形態では、マスクは３２ビット・ワードであるので、各微粒子Ｔビットは、４０９６バイトのメモリ・ページの内１２８バイトのサブエリアを保護する。ターゲット命令を含むサブエリア毎に、微粒子Ｔビットがセットされる。Ｔビット例外が発生すると、例外ハンドラがインディケータを検査し、書き込みが行われようとしたメモリ・ページに、微粒子Ｔビット保護が設けられているか否か判定を行う。
【００１７】
検査を加速するために、アクセスするアドレスの下位１２ビットを用いてマスクを発生する。このマスクは、アドレスされるバイトの位置に１を有する（そして、格納されているデータが長く次のサブエリア内に達する場合、次に続くビット位置に１を有する）。下位アドレス・ビットのマスクおよび微粒子Ｔビット・マスクのＡＮＤを取る。いずれの位置においても０が得られた場合、サブエリアに微粒子Ｔビットがセットされ、Ｔビット例外が発生するべきであることを示す。
【００１８】
メモリ・ページがサブエリアに分割されていない場合（即ち、ターゲット命令のみがページに書き込まれている場合）、Ｔビット例外が肯定され、このページに関連する変換バッファ内の変換を無効にする。メモリ・ページがサブエリアに分割されており、微粒子Ｔビット・インディケータが存在し、検査が、微粒子Ｔビットによって指定されていない１つ以上のサブエリアに対して書き込みが行われることを示す場合、元のＴビット例外はソフトウエアによって無視される。メモリ・ページがサブエリアに分割されており、検査が、微粒子Ｔビットによって指定された１つ以上のサブエリア（命令を格納しているエリア）に対して書き込みが行われることを示す場合、元のＴビット例外を肯定し、例外ハンドラは、保護されているメモリ・ページ上の特定のサブエリア内に格納されているターゲット命令から変換され、変換バッファに格納されているホスト命令を無効にする。
【００１９】
以上からわかるように、微粒子Ｔビットによる保護は、新たなプロセッサが発生するＴビット例外の大部分を不要とする。また、微粒子Ｔビットの保護は、破棄される変換を、書き込まれたサブエリアにある命令を変換するもののみに制限する。したがって、本発明のプロセスは、常時メモリ・ページ全体を破棄する場合よりも、かなり速くなる。
【００２０】
コード・モーフィング・ソフトウエアおよびソフトウエア例外ハンドラを用いるプロセスは、基本的なＴビット保護よりも速いが、更に加速することも可能である。本発明のプロセスを高速化するために、図２に示すハードウエアの実施形態を構築した。この実施形態は、先に論じたＴＬＢのように構成した第１ＴＬＢ２１を有する回路２０を含む。このＴＬＢは、各々メモリ・ページの仮想アドレス、仮想メモリ・アドレスによってアドレスされた情報が実際に格納されている物理ページ・アドレス、およびＴビットを含むエントリを格納する位置を与える。有効なメモリ・ページが、変換されているターゲット命令を格納している場合、ＴＬＢ２１内のエントリに対してＴビットをセットする。
【００２１】
また、回路２０は、第２のＴＬＢ状構造２３も含む。これを「微粒子Ｔビット・ルックアップ・テーブル」と呼ぶ。微粒子Ｔビット・ルックアップ・テーブル２３は、ＴＬＢ２１よりも少ない数のエントリを有するのが通例である。何故なら、変換されたターゲット命令を格納するメモリ・ページが、データも格納することは少ないと予想されるからである。テーブル２３は、各々、データおよび変換されたターゲット命令双方を格納するメモリ・ページの物理ページ・アドレスを含むエントリを格納する位置を与える。また、テーブル２３の各エントリは、ソフトウエアの実施形態において利用したのと同じ１組のインディケータ（例えば、３２ビット・ワード・マスク）も格納し、微粒子Ｔビットによって実際に保護されているサブエリアを示す。
【００２２】
回路２０の動作を図３のフロー・チャートで示す。書き込みがメモリ・ページに行われようとすると、ＴＬＢ２１を検索し、アドレスされたメモリ・ページのエントリがテーブルに存在するか否か判定を行う。これを行うために、仮想メモリ・アドレスを含むエントリについて検索を実施する。このようなエントリが存在する場合、このページの物理アドレスを求め、このページに対するＴビットの状態を判定する。Ｔビットがセットされていない場合、このメモリ・ページは、変換されたターゲット命令を格納するページではないので、実際にＴビット保護を有するページではない。メモリ・ページが、変換されたターゲット命令を格納しており、したがってセットされているＴビットによって保護されている場合、このページに対してＴビット・トラップを発生し、エントリの物理アドレスを、微粒子Ｔビット・ルックアップ・テーブル２３に送る。
【００２３】
テーブル２３において検索を行い、物理アドレスを含むエントリを求める。物理アドレスを含むエントリがテーブル２３内に存在しない場合、（１）メモリ・ページはデータおよび変換されたターゲット命令の双方は格納していないか、あるいは（２）メモリ・ページはデータおよび変換されたターゲット命令の双方は格納しているが、メモリ・ページのエントリはテーブル２３に入力されていない。第１の状況では、ＴＬＢ２１内のエントリにおいてセットされているＴビットが、ページが変換されたターゲット命令を含むことを示すので、Ｔビット・トラップ例外を発生し、このページに関連する変換バッファに格納されている変換を無効にする。第２の状況では、物理アドレスのエントリをテーブル２３にロードし、書き込みを再度試す。
【００２４】
微粒子Ｔビット・ルックアップ・テーブル２３内でヒットした場合、このページの特定のサブエリアに対する検査を実施し、アドレスされたサブエリアが微粒子Ｔビットによって保護されているか否か判定を行う。このサブエリアに対して微粒子Ｔビットがセットされていない場合、Ｔビット・トラップ例外を発生せず、データをメモリ・ページに格納する。このサブエリアに対して微粒子Ｔビットがセットされている場合、Ｔビット・トラップ例外を発生し、メモリ・ページの特定のサブエリア、ＴＬＢ２１内のエントリ、およびこのメモリ・ページの特定のサブエリアに関連する変換バッファ内に格納されている変換を無効にする。
【００２５】
アドレスされた領域に対して微粒子Ｔビットがセットされているか否か判定するために、回路２０のテーブル２３内で一致する物理アドレスがあった場合、本発明の一実施形態では、微粒子Ｔビットによって保護されているサブエリアを示すマスクを、レジスタ２５内に置く。次に、仮想アドレスの下位ビットを用いて、アドレスされたサブエリアが微粒子Ｔビットによって保護されているか否か判定を行う。これらの下位ビットは、アドレスされたメモリ・ページ内において、書き込みアクセスによってアクセスされたアドレスを規定する。書き込みアクセスがアドレスされたページの特定のサブエリアを、レジスタ２５におけるマスクの３２ビットＴビット・インディケータと照合し、そのアドレスが、微粒子Ｔビットによって保護された１つ以上のサブエリア内にあるか否か判定を行う。微粒子Ｔビットによって保護されているサブエリアへの書き込みである場合、トラップによってＴビット例外を発生し、特定のサブエリア、これらのサブエリアに格納されている命令の変換、およびＴＬＢ２１内でアドレスされたエントリを無効にする。
【００２６】
メモリ・ページのアドレスされたサブエリアが微粒子Ｔビットの保護を有するか否か判定を行うために、本発明の一実施形態は、下位１２アドレス・ビットの内上位５ビットを利用して、３２のサブエリアのどれが関与しているか判定を行う。このようなサブエリアは、各々、４０９６バイトのページに対して１２８バイトを含む。アドレスされた特定のサブエリアが判定されると、アドレスの下位７ビットを用いて、サブエリア内でアドレスされた具体的なバイトを判定する。アドレスされたバイトが判定されると、微粒子Ｔビットによって保護されているサブエリアを示すマスク（レジスタ２５内のマスク）内においてアドレスされたサブエリアに対するインディケータを保持するビット位置を検査し、微粒子Ｔビットがセットされているか否か判定を行う。一実施形態では、書き込みは、８バイトに及ぶ場合もあるので、格納されているデータの長さ（引く１）を、サブエリア内の開始バイト・アドレスに加え、書き込みが次のサブエリア内に達するか否か判定を行う。書き込みが次のサブエリアに達する場合、マスクも検査し、次のサブエリアに対して微粒子Ｔビットがセットされているか否か判定を行う。
【００２７】
ハードウエアは、Ｔビット・マスク・レジスタ内に置かれているビット・ベクトルを取り出し、１２ビット・ページ・オフセットの上位５ビットだけ、これをシフト・ダウンする(shift down)。これによって、書き込まれた特定のサブエリアに対するビットを下位ビット位置に移動し、次のサブエリアに対するビットを次の下位ビット位置に移動する。１つ（または次のサブエリアに書き込まれている場合は、２つ）の下位ビットを次に検査する。いずれかがセットされている場合、Ｔビット例外を発生する。
【００２８】
米国特許出願第０８／７０２，７７１に記載されている基本的なＴビット保護は、Ｔビットによって保護されているエリアに格納されているターゲット命令から変換されたホスト命令のアドレスを含むデータ構造を利用する。本発明が提供するＴビット保護の微粒子の態様を最適に利用するために、このデータ構造を、図４に示すように変更する。コード・モーフィング・ソフトウエアは、物理ページ・マップと呼ばれるエントリのアレイを利用する。物理ページ・マップにおけるエントリは、物理アドレスの上位ビットによってインデックス付けされている。各エントリは、対応する物理ページからターゲット命令を変換する変換を識別するデータ構造に対するポインタである。物理ページ上のターゲット命令の各変換は、微粒子Ｔビット・インディケータ（例えば、３２ビット・ワード・マスク）を有する。これは、微粒子Ｔビットによって保護されている、変換されたターゲット命令を含むメモリ・ページのサブエリアを識別する。Ｔビット例外がある場合、ストア・アドレスの下位ビットおよびストアのサイズから生成したマスクを、前述のように用いて、変換毎に、物理ページのアクセスされたサブエリアからの命令を変換するか否か判定を行う。
【００２９】
物理ページ・マップ内の各エントリは、変換に対するポインタのリストを示す。変換毎に、Ｔビット・マスクを関連付ける。あるページに対するかかるリスト上の変換に対するＴビット・マスク同士のＯＲを取ると、このページに対するＴビット・マスクが形成される。これらを格納し、テーブル２３を素早く埋め、更にテーブル２３に新たなページをロードするために用いることができる。マスクは、新たな変換がリストに追加されたときにはいつでも、またはリスト上の変換が無効にされたときにはいつでも再計算される。
【００３０】
尚、ターゲット命令またはターゲット命令のシーケンスを変換する場合、ホスト命令のシーケンスが生成されることを注記しておく。多くの場合、これらのホスト命令は、コンピュータの動作速度を高めるために、並び替えられ更にスケジュールされる。その結果、本発明の一実施形態では、ストアのために変換が無効にされた場合、これらがストアによってアクセスされたのではないエリアからのターゲット命令を変換したのであっても、この変換に伴うホスト命令シーケンスの全てが無効とされる。
【００３１】
例示した好適な実施形態以外でも、種々の代替実施形態が利用可能である。例えば、Ｔビット・バッファ２３は、物理アドレスではなく、仮想アドレスを利用してアクセスされてもよい。このような変更によって、バッファ２１及び２３を同じクロックでアクセスすることが可能となる。バッファ２３を不要とし、ＴＬＢ２１内に単一のビットではなくＴビット・マスク全体を格納するような、別の実施形態も可能である。他にも具体的な実施形態が当業者には想起されよう。
【００３２】
更に、本発明は、微粒子Ｔビット保護が与えられる、異なるサイズのサブエリアを作成することによって強化することも可能である。この結果を達成する一実施形態では、サブエリアを更に小さいサブエリアに分割し、これらにも、前述のより大きなサブエリアと同様に、微粒子Ｔビットの保護を与える、テーブル２３と同様の追加のテーブルを作成する回路、およびストアの試行がより小さなサブエリアの保護されたサブエリアに対して行われたか否か判定を行う、関連する回路を備える。
【００３３】
以上、好適な実施形態に関して本発明を説明したが、本発明の精神および範囲から逸脱することなく、種々の変更や変形も当業者によって可能であることが認められよう。したがって、本発明は、特許請求の範囲に関して判断するべきである。
【図面の簡単な説明】
【００３４】
【図１】図１は、本発明を利用したマイクロプロセッサを示すブロック図である。
【図２】図２は、本発明の一部のハードウエア実施態様を示すブロック図である。
【図３】図３は、本発明の動作を示すフロー・チャートである。
【図４】図４は、本発明の一実施態様についての、ホスト・メモリにおけるデータ構造を示すブロック図である。
【図１】
2006244516.tif 000003
【図２】
2006244516.tif 000004
【図３】
2006244516.tif 000005
【図４】
2006244516.tif 000006