JP2003511788A - 微細粒度変換判別 - Google Patents

微細粒度変換判別

Info

Publication number
JP2003511788A
JP2003511788A JP2001530689A JP2001530689A JP2003511788A JP 2003511788 A JP2003511788 A JP 2003511788A JP 2001530689 A JP2001530689 A JP 2001530689A JP 2001530689 A JP2001530689 A JP 2001530689A JP 2003511788 A JP2003511788 A JP 2003511788A
Authority
JP
Japan
Prior art keywords
instruction
sub
host
target
target instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001530689A
Other languages
English (en)
Other versions
JP4275884B2 (ja
Inventor
バニング,ジョン
アンヴィン,エイチ・ピーター
グリブスタッド,ベンジャミン
ケッペル,デイヴィッド
クライバー,アレックス
サーリス,ポール
Original Assignee
トランスメータ・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by トランスメータ・コーポレーション filed Critical トランスメータ・コーポレーション
Publication of JP2003511788A publication Critical patent/JP2003511788A/ja
Application granted granted Critical
Publication of JP4275884B2 publication Critical patent/JP4275884B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • 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
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Medicines Containing Plant Substances (AREA)
  • Liquid Crystal Substances (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)

Abstract

(57)【要約】 ターゲット命令セットからホスト命令セットに命令を変換するコンピュータにおいて、メモリ・サブページに対する書き込みが、ホスト命令に変換されたターゲット命令に対して指令されたか否かについて判定を行う方法であって、ホスト命令に変換されたターゲット命令を格納するメモリ・サブページに対する書き込みを検出するステップと、書き込みがアドレスされたメモリ・ページのサブエリアが、変換されたターゲット命令を格納しているか否かについて検出を行うステップと、アドレスされたターゲット命令から変換されたホスト命令を無効にするステップとを含む。

Description

【発明の詳細な説明】
【0001】 (発明の背景)発明の分野 本発明は、コンピュータ・システムに関し、更に特定すれば、ターゲット命令
セットからホスト命令セットに命令を動的に変換するマイクロプロセッサによる
既に変換されたターゲット命令を格納したメモリへの書き込み試行を検出する方
法および装置に関する。従来技術の説明 最近、単純であるが非常に高速のホスト・プロセッサ(「モーフ・ホスト」と
呼ぶ)とソフトウエア(「コード・モーフィング・ソフトウエア」と呼ぶ)とを
組み合わせ、モーフ・ホスト・プロセッサの命令セットとは異なる命令セットを
有するプロセッサ用に設計したアプリケーション・プログラムを実行する新たな
マイクロプロセッサが開発された。モーフ・ホスト・プロセッサは、アプリケー
ション・プログラムを、元のソフトウエアの目的を達成することができるホスト
・プロセッサ命令に動的に変換するコード・モーフィング・ソフトウエアを実行
する。命令を変換する際、これらを変換バッファに格納する。変換バッファ内で
は、更に変換せずにこれらを実行することができる。プログラムの初期変換は低
速であるが、一旦変換されれば、プログラムを実行するためにハードウエアに通
常必要となるステップの多くは不要となる。新たなマイクロプロセッサは、変換
した「ターゲット」プログラムを、そのプログラムを設計した対象である「ター
ゲット」プロセッサと同程度の速度で実行可能であることを証明した。
【0002】 モーフ・ホスト・プロセッサは、多数のハードウエア強化策を盛り込んでおり
、ターゲット・プロセッサの既知の状態間におよぶターゲット命令シーケンスを
ホスト命令に変換し、更なる使用のために変換バッファに格納し、変換した命令
が正しく実行するか否か判定するために検査することができる。これらのハード
ウエア強化策によって、実行が成功している限り、変換実行の効果をバッファす
ることが可能となる。「コミット」と呼ばれるプロセスにおいて実行が成功する
と、メモリ・ストアおよびターゲット・プロセッサ状態を更新する。これらのハ
ードウエア強化策によって、ターゲット・プロセッサの既知の状態が存在する命
令シーケンスの先頭に実行を戻すことによって、ホスト命令シーケンスの実行中
に発生する例外の迅速かつ高精度の処理が可能となる。ターゲット状態がわかっ
ている実行点に動作を戻すことを「ロールバック」と呼ぶ。新たなプロセッサは
、本発明の譲受人に譲渡された、1998年11月3日付けのKelly等の米国特
許第5,832,205号、Memory Controller For A Microprocessor For Det ecting A Failure Of Speculation On The Physical Nature Of A Component Be ing Addressed (アドレスされているコンポーネントの物理的性質に対する推定
の失敗を検出するマイクロプロセッサのメモリ・コントローラ)に詳しく記載さ
れている。
【0003】 新たなプロセッサに伴って発生する可能性がある問題の1つに、ターゲット・
プロセッサのオペレーティング・システムおよびアプリケーションによっては、
メモリに格納されているターゲット命令に書き込みを行う可能性があることがあ
げられる。これが発生すると、上書きされたターゲット命令の変換であるホスト
命令は、もはや有効でなくなる。無効なホスト変換を用いないことを保証するた
めに、新たなプロセッサは、「Tビット」と名付けられたインディケータを利用
する。Tビットには、変換ルックアサイド・バッファ(TLB:translation lo
okaside buffer)における物理ページ・アドレスと共に格納される。ルックアサ
イド・バッファは、最新のメモリ・アクセスの仮想メモリ・アドレスおよび物理
メモリ・アドレス双方を含むエントリを格納し、ページ・テーブルによるよりも
一層メモリ・アクセスの高速化を可能にする。新たなプロセッサのTLBにおい
て、各エントリはTビットを含む。アドレス・メモリ・ページ上の命令がホスト
命令に変換されたときにはいつでも、Tビットはセットされる。Tビットによっ
て保護されているメモリ・ページに書き込みが行われようとすると、Tビット例
外が発生する。Tビット例外によって、例外ハンドラは、Tビットによって保護
されているページ上のターゲット命令から変換されたホスト命令のアドレスへの
参照を保持するデータ構造を調べる。例外ハンドラは、これらの変換を、TLB
エントリのTビット保護をオフにすることによって、無効にする。
【0004】 Tビットを利用するための構成は、1996年8月22日に出願され、本発明
と同じ譲受人に譲渡された、Kelly等のTranslated Memory Protection Apparatu s For An Advanced Microprocessor (高度マイクロプロセッサのための変換メモ
リ保護装置)と題する米国特許第08/702,771号に詳しく記載されてい
る。
【0005】 TLBエントリにおいてTビットを利用する構成は、ほとんどの状況において
効率的に機能するが、動作においていくつかの問題が残っている。これらの問題
の1つは、あるターゲット・プロセッサが、命令とデータが格納されているエリ
ア間で区別を行わないオペレーティング・システムを採用していることである。
例えば、マイクロソフト社の「ウインドウズ」は、命令のために指定されたセグ
メント、およびデータのために指定された別のセグメントを、同じメモリ・ペー
ジ上に格納することを許す。
【0006】 これが生じると、かかるメモリ・ページ上のデータに書き込みを行おうとした
場合、Tビット障害が発生する。その結果生ずる例外によって、当該データへの
書き込みが、ターゲット命令を全く変化させなかったことを示しても、特定のT
ビットによって保護されているメモリ・ページ上のターゲット命令の変換全てが
無効となる。メモリ・ページ上において正しい変換が無効にされると、新たなプ
ロセッサの動作が著しく遅くなる。
【0007】 Tビットによって保護されているメモリ・ページへの書き込みによる影響を受
けない変換の無効化を排除し、発生しても変換の無効化を生じないTビット・ト
ラップの数を低減することによって、新たなプロセッサの動作速度を向上させる
ことが望ましい。 (発明の概要) したがって、本発明の目的は、他のマイクロプロセッサのために設計されたア
プリケーション・プログラムおよびオペレーティング・システムと互換性があり
、これらを走らせることができ、しかもこれら他のマイクロプロセッサよりも一
層高速なマイクロプロセッサを提供することである。
【0008】 本発明のこの目的およびその他の目的は、ターゲット命令セットからホスト命
令セットに命令を変換するコンピュータにおいて、メモリ・ページに対する書き
込みが、ホスト命令に変換されたターゲット命令に対するものか否かについて判
定を行う方法によって実現される。この方法は、ホスト命令に変換されたターゲ
ット命令を格納するメモリ・ページに対する書き込みを検出するステップと、書
き込みがアドレスされたメモリ・ページのサブエリアが、変換されたターゲット
命令を格納しているか否かについて検出を行うステップと、アドレスされたター
ゲット命令から変換されたホスト命令を無効にするステップとを含む。
【0009】 本発明のこれらおよびその他の目的ならびに特徴は、図面と共に以下に続く詳
細な説明を参照することによって、一層良く理解されよう。図面においては、い
くつかの図を通じて同様のエレメントを同様の符号で示すこととする。 (詳細な説明) 図1は、本発明を利用可能なマイクロプロセッサ11を示す。図示したマイ
クロプロセッサは、米国特許第5,832,205号に詳細に記載されている。
このマイクロプロセッサは、浮動小数点ユニット12、整数ユニット13、シス
テム・メモリの一部である変換バッファ14、システム・メモリの別の一部であ
るターゲット・メモリ15、およびメモリ管理ユニットの一部である変換ルック
アサイド・バッファ16を含む。
【0010】 前述のように、新たなマイクロプロセッサは、独特な方法を利用して、変換し
た命令が、これらを変換した元のターゲット命令との一貫性を保持していること
を保証する。この方法を「Tビット例外」と呼ぶ。Tビットは、変換ルックアサ
イド・バッファ16内のエントリに置かれ、書き込みを行おうとしているターゲ
ット・メモリ15内のメモリ・ページが、変換バッファ14内に格納されている
ホスト命令に変換されているターゲット命令を格納していることを表示する。T
ビット例外が発生するのは、変換されたターゲット命令を格納しているメモリ・
ページに書き込みを行おうとしたときである。
【0011】 Tビットの目的は、変換したホスト命令を無効にし、変換を発生した元のター
ゲット命令が変化したときに、変換を用いない(または少なくとも、使用前にこ
れらが未だ有効であることを判定するためにチェックを行う)ようにすることで
ある。「無効化」とは、この明細書では両方の意味を含むように用いることとす
る。しかしながら、ある種のターゲット・プロセッサでは(特に、X86ファミ
リ)、変換された命令およびデータ双方を含むメモリ・ページが存在することが
許されている。メモリ・ページへのデータの書き込みは、そのページ上の命令を
変化させないので、当該メモリ・ページ上の命令から変換されたホスト命令を無
効にする理由がない。その結果、新たなプロセスが考案され、これによってコー
ド・モーフィング・ソフトウエアは、あるメモリ・ページに対して行われようと
した書き込みが、変換された命令に対するものか、またはデータに対するものか
について判定を行い、ページ上の命令の変換を無効にすることなくデータへの書
き込みを許可することができるようにした。また、新たなプロセスは、実際に書
き込まれているメモリ・ページのエリアに対する、ページ上の命令への書き込み
の効果も制限する。
【0012】 これを行うための本発明のプロセスは、Tビットによって保護されているメモ
リ・ページを一層微細な粒度で分割する。本プロセスは、被保護ページをサイズ
が等しい複数のサブエリアに分割し、かかるメモリ・ページのサブエリア毎にイ
ンディケータを格納する。一実施形態では、インディケータは、複数のサブエリ
アの各々に1ビットから成るマスクを形成する。マスクは、Tビットで保護され
ているメモリ・ページの一部として格納することも可能である。保護されている
サブエリア毎のインディケータを、「微粒子Tビット」と呼ぶ。一実施形態では
、マスクは32ビット・ワードであるので、各微粒子Tビットは、4096バイ
トのメモリ・ページの内128バイトのサブエリアを保護する。ターゲット命令
を含むサブエリア毎に、微粒子Tビットがセットされる。Tビット例外が発生す
ると、例外ハンドラがインディケータを検査し、書き込みが行われようとしたメ
モリ・ページに、微粒子Tビット保護が設けられているか否か判定を行う。
【0013】 検査を加速するために、アクセスするアドレスの下位12ビットを用いてマス
クを発生する。このマスクは、アドレスされるバイトの位置に1を有する(そし
て、格納されているデータが長く次のサブエリア内に達する場合、次に続くビッ
ト位置に1を有する)。下位アドレス・ビットのマスクおよび微粒子Tビット・
マスクのANDを取る。いずれの位置においても0が得られた場合、サブエリア
に微粒子Tビットがセットされ、Tビット例外が発生するべきであることを示す
【0014】 メモリ・ページがサブエリアに分割されていない場合(即ち、ターゲット命令
のみがページに書き込まれている場合)、Tビット例外が肯定され、このページ
に関連する変換バッファ内の変換を無効にする。メモリ・ページがサブエリアに
分割されており、微粒子Tビット・インディケータが存在し、検査が、微粒子T
ビットによって指定されていない1つ以上のサブエリアに対して書き込みが行わ
れることを示す場合、元のTビット例外はソフトウエアによって無視される。メ
モリ・ページがサブエリアに分割されており、検査が、微粒子Tビットによって
指定された1つ以上のサブエリア(命令を格納しているエリア)に対して書き込
みが行われることを示す場合、元のTビット例外を肯定し、例外ハンドラは、保
護されているメモリ・ページ上の特定のサブエリア内に格納されているターゲッ
ト命令から変換され、変換バッファに格納されているホスト命令を無効にする。
【0015】 以上からわかるように、微粒子Tビットによる保護は、新たなプロセッサが発
生するTビット例外の大部分を不要とする。また、微粒子Tビットの保護は、破
棄される変換を、書き込まれたサブエリアにある命令を変換するもののみに制限
する。したがって、本発明のプロセスは、常時メモリ・ページ全体を破棄する場
合よりも、かなり速くなる。
【0016】 コード・モーフィング・ソフトウエアおよびソフトウエア例外ハンドラを用い
るプロセスは、基本的なTビット保護よりも速いが、更に加速することも可能で
ある。本発明のプロセスを高速化するために、図2に示すハードウエアの実施形
態を構築した。この実施形態は、先に論じたTLBのように構成した第1TLB
21を有する回路20を含む。このTLBは、各々メモリ・ページの仮想アドレ
ス、仮想メモリ・アドレスによってアドレスされた情報が実際に格納されている
物理ページ・アドレス、およびTビットを含むエントリを格納する位置を与える
。有効なメモリ・ページが、変換されているターゲット命令を格納している場合
、TLB21内のエントリに対してTビットをセットする。
【0017】 また、回路20は、第2のTLB状構造23も含む。これを「微粒子Tビット
・ルックアップ・テーブル」と呼ぶ。微粒子Tビット・ルックアップ・テーブル
23は、TLB21よりも少ない数のエントリを有するのが通例である。何故な
ら、変換されたターゲット命令を格納するメモリ・ページが、データも格納する
ことは少ないと予想されるからである。テーブル23は、各々、データおよび変
換されたターゲット命令双方を格納するメモリ・ページの物理ページ・アドレス
を含むエントリを格納する位置を与える。また、テーブル23の各エントリは、
ソフトウエアの実施形態において利用したのと同じ1組のインディケータ(例え
ば、32ビット・ワード・マスク)も格納し、微粒子Tビットによって実際に保
護されているサブエリアを示す。
【0018】 回路20の動作を図3のフロー・チャートで示す。書き込みがメモリ・ページ
に行われようとすると、TLB23を検索し、アドレスされたメモリ・ページの
エントリがテーブルに存在するか否か判定を行う。これを行うために、仮想メモ
リ・アドレスを含むエントリについて検索を実施する。このようなエントリが存
在する場合、このページの物理アドレスを求め、このページに対するTビットの
状態を判定する。Tビットがセットされていない場合、このメモリ・ページは、
変換されたターゲット命令を格納するページではないので、実際にTビット保護
を有するページではない。メモリ・ページが、変換されたターゲット命令を格納
しており、したがってセットされているTビットによって保護されている場合、
このページに対してTビット・トラップを発生し、エントリの物理アドレスを、
微粒子Tビット・ルックアップ・テーブル23に送る。
【0019】 テーブル23において検索を行い、物理アドレスを含むエントリを求める。物
理アドレスを含むエントリがテーブル23内に存在しない場合、(1)メモリ・
ページはデータおよび変換されたターゲット命令の双方は格納していないか、あ
るいは(2)メモリ・ページはデータおよび変換されたターゲット命令の双方は
格納しているが、メモリ・ページのエントリはテーブル23に入力されていない
。第1の状況では、TLB21内のエントリにおいてセットされているTビット
が、ページが変換されたターゲット命令を含むことを示すので、Tビット・トラ
ップ例外を発生し、このページに関連する変換バッファに格納されている変換を
無効にする。第2の状況では、物理アドレスのエントリをテーブル23にロード
し、書き込みを再度試す。
【0020】 微粒子Tビット・ルックアップ・テーブル23内でヒットした場合、このペー
ジの特定のサブエリアに対する検査を実施し、アドレスされたサブエリアが微粒
子Tビットによって保護されているか否か判定を行う。このサブエリアに対して
微粒子Tビットがセットされていない場合、Tビット・トラップ例外を発生せず
、データをメモリ・ページに格納する。このサブエリアに対して微粒子Tビット
がセットされている場合、Tビット・トラップ例外を発生し、メモリ・ページの
特定のサブエリア、TLB21内のエントリ、およびこのメモリ・ページの特定
のサブエリアに関連する変換バッファ内に格納されている変換を無効にする。
【0021】 アドレスされた領域に対して微粒子Tビットがセットされているか否か判定す
るために、回路20のテーブル23内で一致する物理アドレスがあった場合、本
発明の一実施形態では、微粒子Tビットによって保護されているサブエリアを示
すマスクを、レジスタ25内に置く。次に、仮想アドレスの下位ビットを用いて
、アドレスされたサブエリアが微粒子Tビットによって保護されているか否か判
定を行う。これらの下位ビットは、アドレスされたメモリ・ページ内において、
書き込みアクセスによってアクセスされたアドレスを規定する。書き込みアクセ
スがアドレスされたページの特定のサブエリアを、レジスタ25におけるマスク
の32ビットTビット・インディケータと照合し、そのアドレスが、微粒子Tビ
ットによって保護された1つ以上のサブエリア内にあるか否か判定を行う。微粒
子Tビットによって保護されているサブエリアへの書き込みである場合、トラッ
プによってTビット例外を発生し、特定のサブエリア、これらのサブエリアに格
納されている命令の変換、およびTLB21内でアドレスされたエントリを無効
にする。
【0022】 メモリ・ページのアドレスされたサブエリアが微粒子Tビットの保護を有する
か否か判定を行うために、本発明の一実施形態は、下位12アドレス・ビットの
内上位5ビットを利用して、32のサブエリアのどれが関与しているか判定を行
う。このようなサブエリアは、各々、4096バイトのページに対して128バ
イトを含む。アドレスされた特定のサブエリアが判定されると、アドレスの下位
7ビットを用いて、サブエリア内でアドレスされた具体的なバイトを判定する。
アドレスされたバイトが判定されると、微粒子Tビットによって保護されている
サブエリアを示すマスク(レジスタ25内のマスク)内においてアドレスされた
サブエリアに対するインディケータを保持するビット位置を検査し、微粒子Tビ
ットがセットされているか否か判定を行う。一実施形態では、書き込みは、8バ
イトに及ぶ場合もあるので、格納されているデータの長さ(引く1)を、サブエ
リア内の開始バイト・アドレスに加え、書き込みが次のサブエリア内に達するか
否か判定を行う。書き込みが次のサブエリアに達する場合、マスクも検査し、次
のサブエリアに対して微粒子Tビットがセットされているか否か判定を行う。
【0023】 ハードウエアは、Tビット・マスク・レジスタ内に置かれているビット・ベク
トルを取り出し、12ビット・ページ・オフセットの上位5ビットだけ、これを
シフト・ダウンする(shift down)。これによって、書き込まれた特定のサブエリ
アに対するビットを下位ビット位置に移動し、次のサブエリアに対するビットを
次の下位ビット位置に移動する。1つ(または次のサブエリアに書き込まれてい
る場合は、2つ)の下位ビットを次に検査する。いずれかがセットされている場
合、Tビット例外を発生する。
【0024】 米国特許出願第08/702,771に記載されている基本的なTビット保護
は、Tビットによって保護されているエリアに格納されているターゲット命令か
ら変換されたホスト命令のアドレスを含むデータ構造を利用する。本発明が提供
するTビット保護の微粒子の態様を最適に利用するために、このデータ構造を、
図4に示すように変更する。コード・モーフィング・ソフトウエアは、物理ペー
ジ・マップと呼ばれるエントリのアレイを利用する。物理ページ・マップにおけ
るエントリは、物理アドレスの上位ビットによってインデックス付けされている
。各エントリは、対応する物理ページからターゲット命令を変換する変換を識別
するデータ構造に対するポインタである。物理ページ上のターゲット命令の各変
換は、微粒子Tビット・インディケータ(例えば、32ビット・ワード・マスク
)を有する。これは、微粒子Tビットによって保護されている、変換されたター
ゲット命令を含むメモリ・ページのサブエリアを識別する。Tビット例外がある
場合、ストア・アドレスの下位ビットおよびストアのサイズから生成したマスク
を、前述のように用いて、変換毎に、物理ページのアクセスされたサブエリアか
らの命令を変換するか否か判定を行う。
【0025】 物理ページ・マップ内の各エントリは、変換に対するポインタのリストを示す
。変換毎に、Tビット・マスクを関連付ける。あるページに対するかかるリスト
上の変換に対するTビット・マスク同士のORを取ると、このページに対するT
ビット・マスクが形成される。これらを格納し、テーブル23を素早く埋め、更
にテーブル23に新たなページをロードするために用いることができる。マスク
は、新たな変換がリストに追加されたときにはいつでも、またはリスト上の変換
が無効にされたときにはいつでも再計算される。
【0026】 尚、ターゲット命令またはターゲット命令のシーケンスを変換する場合、ホス
ト命令のシーケンスが生成されることを注記しておく。多くの場合、これらのホ
スト命令は、コンピュータの動作速度を高めるために、並び替えられ更にスケジ
ュールされる。その結果、本発明の一実施形態では、ストアのために変換が無効
にされた場合、これらがストアによってアクセスされたのではないエリアからの
ターゲット命令を変換したのであっても、この変換に伴うホスト命令シーケンス
の全てが無効とされる。
【0027】 例示した好適な実施形態以外でも、種々の代替実施形態が利用可能である。例
えば、Tビット・バッファ23は、物理アドレスではなく、仮想アドレスを利用
してアクセスされてもよい。このような変更によって、バッファ21及び23を
同じクロックでアクセスすることが可能となる。バッファ23を不要とし、TL
B21内に単一のビットではなくTビット・マスク全体を格納するような、別の
実施形態も可能である。他にも具体的な実施形態が当業者には想起されよう。
【0028】 更に、本発明は、微粒子Tビット保護が与えられる、異なるサイズのサブエリ
アを作成することによって強化することも可能である。この結果を達成する一実
施形態では、サブエリアを更に小さいサブエリアに分割し、これらにも、前述の
より大きなサブエリアと同様に、微粒子Tビットの保護を与える、テーブル23
と同様の追加のテーブルを作成する回路、およびストアの試行がより小さなサブ
エリアの保護されたサブエリアに対して行われたか否か判定を行う、関連する回
路を備える。
【0029】 以上、好適な実施形態に関して本発明を説明したが、本発明の精神および範囲
から逸脱することなく、種々の変更や変形も当業者によって可能であることが認
められよう。したがって、本発明は、特許請求の範囲に関して判断するべきであ
る。
【図面の簡単な説明】
【図1】 図1は、本発明を利用したマイクロプロセッサを示すブロック図である。
【図2】 図2は、本発明の一部のハードウエア実施態様を示すブロック図である。
【図3】 図3は、本発明の動作を示すフロー・チャートである。
【図4】 図4は、本発明の一実施態様についての、ホスト・メモリにおけるデータ構造
を示すブロック図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成13年10月3日(2001.10.3)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0018
【補正方法】変更
【補正の内容】
【0018】 回路20の動作を図3のフロー・チャートで示す。書き込みがメモリ・ページ
に行われようとすると、テーブル23を検索し、アドレスされたメモリ・ページ
のエントリがテーブルに存在するか否か判定を行う。これを行うために、仮想メ
モリ・アドレスを含むエントリについて検索を実施する。このようなエントリが
存在する場合、このページの物理アドレスを求め、このページに対するTビット
の状態を判定する。Tビットがセットされていない場合、このメモリ・ページは
、変換されたターゲット命令を格納するページではないので、実際にTビット保
護を有するページではない。メモリ・ページが、変換されたターゲット命令を格
納しており、したがってセットされているTビットによって保護されている場合
、このページに対してTビット・トラップを発生し、エントリの物理アドレスを
、微粒子Tビット・ルックアップ・テーブル23に送る。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0019
【補正方法】変更
【補正の内容】
【0019】 テーブル23において検索を行い、物理アドレスを含むエントリを求める。物
理アドレスを含むエントリがテーブル23内に存在しない場合、(1)メモリ・
ページはデータおよび変換されたターゲット命令の双方は格納していないか、あ
るいは(2)メモリ・ページはデータおよび変換されたターゲット命令の双方は
格納しているが、メモリ・ページのエントリはテーブル23に入力されていない
。第1の状況では、TLB21内のエントリにおいてセットされているTビット
が、ページが変換されたターゲット命令を含むことを示すので、Tビット・トラ
ップ例外を発生し、このページに関連する変換バッファに格納されている変換を
無効にする。第2の状況では、物理アドレスのエントリをテーブル23にロード
し、書き込みを再度試す。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正の内容】
【0020】 微粒子Tビット・ルックアップ・テーブル23内でヒットした場合、このペー
ジの特定のサブエリアに対する検査を実施し、アドレスされたサブエリアが微粒
子Tビットによって保護されているか否か判定を行う。このサブエリアに対して
微粒子Tビットがセットされていない場合、Tビット・トラップ例外を発生せず
、データをメモリ・ページに格納する。このサブエリアに対して微粒子Tビット
がセットされている場合、Tビット・トラップ例外を発生し、メモリ・ページの
特定のサブエリア、TLB21内のエントリ、およびこのメモリ・ページの特定
のサブエリアに関連する変換バッファ内に格納されている変換を無効にする。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 グリブスタッド,ベンジャミン アメリカ合衆国カリフォルニア州95051, サンタ・クララ,ミラヴァーデ・コート 3740,ナンバー 28 (72)発明者 ケッペル,デイヴィッド アメリカ合衆国ワシントン州98115,シア トル,ナインティーンス・アベニュー・ノ ースイースト 6852 (72)発明者 クライバー,アレックス アメリカ合衆国カリフォルニア州94043, マウンテン・ヴュー,シエラ・ヴィスタ・ アベニュー 231 (72)発明者 サーリス,ポール アメリカ合衆国カリフォルニア州94086, サニーヴェイル,サン・ディエゴ・アベニ ュー 661 Fターム(参考) 5B005 JJ01 MM51 SS11

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 ターゲット命令セットからホスト命令セットに命令を変換す
    るコンピュータにおいて、メモリ・ページに対する書き込みが、ホスト命令に変
    換されたターゲット命令に対するものか否かについて判定を行う方法であって、 ホスト命令に変換されたターゲット命令を格納するメモリ・ページに対する書
    き込みを検出するステップと、 前記書き込みがアドレスされた前記メモリ・ページのサブエリアが、変換され
    たターゲット命令を格納しているか否かについて検出を行うステップと、 アドレスされたターゲット命令から変換されたホスト命令を無効にするステッ
    プと、 を含む方法。
  2. 【請求項2】 請求項1記載の方法において、ホスト命令に変換されたター
    ゲット命令を格納するメモリ・ページに対する書き込みを検出する前記ステップ
    は、 ホスト命令に変換されたターゲット命令を格納しているメモリ・ページ毎にイ
    ンディケータを格納するステップと、 かかるメモリ・ページの各々に書き込みが行われようとしたときに、前記イン
    ディケータを検出するステップと、 から成る方法。
  3. 【請求項3】 請求項2記載の方法において、前記書き込みがアドレスされ
    た前記メモリ・ページのサブエリアが、変換されたターゲット命令を格納してい
    るか否かについて検出を行う前記ステップは、 ホスト命令に変換されたターゲット命令を格納しているメモリ・ページの各サ
    ブエリア毎にインディケータを格納するステップと、 かかるメモリ・ページのかかるサブエリアの各々に対して書き込みが行われよ
    うとしたとき、かかるサブエリアに対するインディケータを検出するステップと
    、 から成る方法。
  4. 【請求項4】 請求項2記載の方法において、アドレスされたターゲット命
    令から変換されたホスト命令を無効にする前記ステップは、ターゲット命令のみ
    を格納しているメモリ・ページ上に格納されている、アドレスされたターゲット
    命令から変換されたホスト命令全てを無効にすることから成る方法。
  5. 【請求項5】 請求項2記載の方法において、アドレスされたターゲット命
    令から変換されたホスト命令を無効にする前記ステップは、前記書き込みがアド
    レスされたメモリ・ページのサブエリア上に格納されている、アドレスされたタ
    ーゲット命令から変換されたホスト命令のみを無効にすることから成る方法。
  6. 【請求項6】 請求項2記載の方法において、アドレスされたターゲット命
    令から変換されたホスト命令を無効にする前記ステップは、前記書き込みがアド
    レスされたメモリ・ページの任意のサブエリアに格納されている、アドレスされ
    たターゲット命令からの変換の一部である、ホスト命令を全て無効にすることか
    ら成る方法。
  7. 【請求項7】 ターゲット命令セットからホスト命令セットに命令を変換す
    るコンピュータであって、 ホスト命令を実行する処理ユニットと、 システム・メモリと、 システム・メモリへのアクセスを制御するメモリ管理ユニットであって、 ホスト命令に変換されたターゲット命令を格納するシステム・メモリの部分を
    示す手段と、 ホスト命令に変換されたターゲット命令を格納するシステム・メモリの前記部
    分のサブエリアを示す手段と、 ターゲット命令のみを格納しているシステム・メモリの部分に対して書き込み
    が行われようとしたときに、システム・メモリのかかる部分に格納されているタ
    ーゲット命令から変換されたホスト命令を無効にする手段と、 ターゲット命令を格納しているシステム・メモリの部分のサブエリアに対して
    書き込みが行われようとしたときに、システム・メモリのかかるサブエリアに格
    納されているターゲット命令から変換されたホスト命令を無効にする手段と、 を含むメモリ管理ユニットと、 を備えているコンピュータ。
  8. 【請求項8】 請求項7記載のコンピュータであって、更に、ターゲット命
    令を格納するシステム・メモリのサブエリアまたはサブエリアに対して書き込み
    が行われようとしたときに、システム・メモリのサブエリアのかかるサブエリア
    に格納されているターゲット命令から変換されたホスト命令を無効にする手段を
    備えているコンピュータ。
  9. 【請求項9】 請求項7記載のコンピュータにおいて、ホスト命令に変換さ
    れたターゲット命令を格納するシステム・メモリの部分を示す前記手段は、 システム・メモリの部分に対する仮想アドレスによってアドレス可能なエント
    リであって、各々システム・メモリの一部の物理アドレスを含む、エントリと、
    変換されたターゲット命令が前記一部に格納されているか否かについての指示と
    を格納する変換ルックアサイド・バッファを備えているコンピュータ。
  10. 【請求項10】 請求項7記載のコンピュータにおいて、ホスト命令に変換
    されたターゲット命令を格納するシステム・メモリの前記部分のサブエリアを示
    す前記手段は、 物理アドレスによってアドレス可能なシステム・メモリの部分に対するエント
    リを格納するテーブルを備え、各エントリが、変換されたターゲット命令が格納
    されているサブエアリアを区別するインディケータを含む、コンピュータ。
  11. 【請求項11】 請求項10記載のコンピュータにおいて、 前記サブエリアは等しいサイズに形成されており、 各エントリにおけるインディケータは、ビット位置であり、その状態が、変換
    されたターゲット命令の格納を区別し、その位置が前記部分のサブエリアを示す
    、 コンピュータ。
  12. 【請求項12】 請求項11記載のコンピュータにおいて、ターゲット命令
    を格納しているシステム・メモリの部分のサブエリアに対して書き込みが行われ
    ようとしたときに、かかるサブエリアに格納されているホスト命令を無効にする
    前記手段は、 ホスト命令に変換されたターゲット命令を格納するサブエリアに対する書き込
    みに応答して、かかるサブエリアに格納されているターゲット命令から変換され
    たホスト命令を無効にする例外処理手段を備えている、 コンピュータ。
  13. 【請求項13】 請求項12記載のコンピュータであって、更に、変換され
    たターゲット命令から変換されたホスト命令を格納しているシステム・メモリの
    部分に対して書き込みが行われようとしたときに、かかる部分を無効にする例外
    処理手段を備えているコンピュータ。
  14. 【請求項14】 ターゲット命令セットからホスト命令セットに命令を変換
    するコンピュータにおいてシステム・メモリに対するアクセスを制御するメモリ
    管理ユニットであって、 ホスト命令に変換されたターゲット命令を格納するシステム・メモリの部分を
    示す手段と、 ホスト命令に変換されたターゲット命令を格納するシステム・メモリの前記部
    分のサブエリアを示す手段と、 ターゲット命令のみを格納しているシステム・メモリの部分に対して書き込み
    が行われようとしたときに、システム・メモリのかかる部分に格納されているタ
    ーゲット命令から変換されたホスト命令を無効にする手段と、 ターゲット命令を格納しているシステム・メモリの部分のサブエリアに対して
    書き込みが行われようとしたときに、システム・メモリのかかるサブエリアに格
    納されているターゲット命令から変換されたホスト命令を無効にする手段と、 を含むメモリ管理ユニット。
  15. 【請求項15】 請求項14記載のメモリ管理ユニットであって、更に、タ
    ーゲット命令を格納するシステム・メモリのサブエリアまたはサブエリアに対し
    て書き込みが行われようとしたときに、システム・メモリのサブエリアのかかる
    サブエリアに格納されているターゲット命令から変換されたホスト命令を無効に
    する手段を備えているメモリ管理ユニット。
  16. 【請求項16】 請求項14記載のメモリ管理ユニットにおいて、ホスト命
    令に変換されたターゲット命令を格納するシステム・メモリの部分を示す前記手
    段は、 システム・メモリの部分に対する仮想アドレスによってアドレス可能なエント
    リであって、各々システム・メモリの一部の物理アドレスを含む、エントリと、
    変換されたターゲット命令が前記一部に格納されているか否かについての指示と
    を格納する変換ルックアサイド・バッファを備えている、 メモリ管理ユニット。
  17. 【請求項17】 請求項14記載のメモリ管理ユニットにおいて、ホスト命
    令に変換されたターゲット命令を格納するシステム・メモリの前記部分のサブエ
    リアを示す前記手段は、 物理アドレスによってアドレス可能なシステム・メモリの部分に対するエント
    リを格納するテーブルを備え、各エントリが、変換されたターゲット命令が格納
    されているサブエアリアを区別するインディケータを含む、 メモリ管理ユニット。
  18. 【請求項18】 請求項17記載のメモリ管理ユニットにおいて、 前記サブエリアは等しいサイズに形成されており、 各エントリにおけるインディケータは、ビット位置であり、その状態が、変換
    されたターゲット命令の格納を区別し、その位置が前記部分のサブエリアを示す
    、 メモリ管理ユニット。
  19. 【請求項19】 請求項16記載のメモリ管理ユニットにおいて、ターゲッ
    ト命令を格納しているシステム・メモリの部分のサブエリアに対して書き込みが
    行われようとしたときに、システム・メモリのかかるサブエリアに格納されてい
    るホスト命令を無効にする前記手段は、 ホスト命令に変換されたターゲット命令を格納するサブエリアに対する書き込
    みに応答して、かかるサブエリアに格納されているターゲット命令から変換され
    たホスト命令を無効にする例外処理手段を備えている、 メモリ管理ユニット。
  20. 【請求項20】 請求項19記載のメモリ管理ユニットであって、更に、変
    換されたターゲット命令から変換されたホスト命令を格納しているシステム・メ
    モリの部分に対して書き込みが行われようとしたときに、かかる部分を無効にす
    る例外処理手段を備えているメモリ管理ユニット。
JP2001530689A 1999-10-13 2000-09-06 微細粒度変換判別 Expired - Lifetime JP4275884B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/417,356 US6363336B1 (en) 1999-10-13 1999-10-13 Fine grain translation discrimination
US09/417,356 1999-10-13
PCT/US2000/024651 WO2001027743A1 (en) 1999-10-13 2000-09-06 Fine grain translation discrimination

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006112312A Division JP4417346B2 (ja) 1999-10-13 2006-04-14 微細粒度変換判別方法及び装置

Publications (2)

Publication Number Publication Date
JP2003511788A true JP2003511788A (ja) 2003-03-25
JP4275884B2 JP4275884B2 (ja) 2009-06-10

Family

ID=23653666

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2001530689A Expired - Lifetime JP4275884B2 (ja) 1999-10-13 2000-09-06 微細粒度変換判別
JP2006112312A Expired - Lifetime JP4417346B2 (ja) 1999-10-13 2006-04-14 微細粒度変換判別方法及び装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2006112312A Expired - Lifetime JP4417346B2 (ja) 1999-10-13 2006-04-14 微細粒度変換判別方法及び装置

Country Status (9)

Country Link
US (1) US6363336B1 (ja)
EP (1) EP1240582B1 (ja)
JP (2) JP4275884B2 (ja)
KR (1) KR100573446B1 (ja)
CN (1) CN1196994C (ja)
AT (1) ATE377212T1 (ja)
CA (1) CA2384254C (ja)
DE (1) DE60036960T2 (ja)
WO (1) WO2001027743A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257049A (ja) * 2009-04-22 2010-11-11 Fujitsu Ltd 仮想化プログラム、仮想化処理方法及び装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US8065504B2 (en) 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US6826748B1 (en) 1999-01-28 2004-11-30 Ati International Srl Profiling program execution into registers of a computer
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7761857B1 (en) * 1999-10-13 2010-07-20 Robert Bedichek Method for switching between interpretation and dynamic translation in a processor system based upon code sequence execution counts
US6845353B1 (en) 1999-12-23 2005-01-18 Transmeta Corporation Interpage prologue to protect virtual address mappings
US7680999B1 (en) * 2000-02-08 2010-03-16 Hewlett-Packard Development Company, L.P. Privilege promotion based on check of previous privilege level
US6594821B1 (en) 2000-03-30 2003-07-15 Transmeta Corporation Translation consistency checking for modified target instructions by comparing to original copy
US6615300B1 (en) * 2000-06-19 2003-09-02 Transmeta Corporation Fast look-up of indirect branch destination in a dynamic translation system
US6826682B1 (en) 2000-06-26 2004-11-30 Transmeta Corporation Floating point exception handling in pipelined processor using special instruction to detect generated exception and execute instructions singly from known correct state
GB2393274B (en) * 2002-09-20 2006-03-15 Advanced Risc Mach Ltd Data processing system having an external instruction set and an internal instruction set
US7310723B1 (en) 2003-04-02 2007-12-18 Transmeta Corporation Methods and systems employing a flag for deferring exception handling to a commit or rollback point
US6925928B2 (en) * 2003-09-18 2005-08-09 Anthony Fox Trash compactor for fast food restaurant waste
JP4520790B2 (ja) * 2004-07-30 2010-08-11 富士通株式会社 情報処理装置およびソフトウェアプリフェッチ制御方法
US8413162B1 (en) 2005-06-28 2013-04-02 Guillermo J. Rozas Multi-threading based on rollback
US7478226B1 (en) * 2006-09-29 2009-01-13 Transmeta Corporation Processing bypass directory tracking system and method
US7774583B1 (en) 2006-09-29 2010-08-10 Parag Gupta Processing bypass register file system and method
US8006055B2 (en) 2008-03-04 2011-08-23 Microsoft Corporation Fine granularity hierarchiacal memory protection
KR101744081B1 (ko) 2012-12-27 2017-06-07 인텔 코포레이션 이진 변환된 자가 수정 코드 및 교차 수정 코드의 처리
US9081707B2 (en) * 2012-12-29 2015-07-14 Intel Corporation Apparatus and method for tracking TLB flushes on a per thread basis
US9411600B2 (en) * 2013-12-08 2016-08-09 Intel Corporation Instructions and logic to provide memory access key protection functionality

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589092A (en) * 1983-12-12 1986-05-13 International Business Machines Corporation Data buffer having separate lock bit storage array
US4638462A (en) * 1985-01-31 1987-01-20 International Business Machines Corporation Self-timed precharge circuit
US4794522A (en) * 1985-09-30 1988-12-27 International Business Machines Corporation Method for detecting modified object code in an emulator
EP0425771A3 (en) * 1989-11-03 1992-09-02 International Business Machines Corporation An efficient mechanism for providing fine grain storage protection intervals
CA2078310A1 (en) * 1991-09-20 1993-03-21 Mark A. Kaufman Digital processor with distributed memory system
US5437017A (en) * 1992-10-09 1995-07-25 International Business Machines Corporation Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system
US5548746A (en) * 1993-11-12 1996-08-20 International Business Machines Corporation Non-contiguous mapping of I/O addresses to use page protection of a process
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
US5560013A (en) * 1994-12-06 1996-09-24 International Business Machines Corporation Method of using a target processor to execute programs of a source architecture that uses multiple address spaces
US5577231A (en) * 1994-12-06 1996-11-19 International Business Machines Corporation Storage access authorization controls in a computer system using dynamic translation of large addresses
US5832205A (en) * 1996-08-20 1998-11-03 Transmeta Corporation Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US6009516A (en) * 1996-10-21 1999-12-28 Texas Instruments Incorporated Pipelined microprocessor with efficient self-modifying code detection and handling
US6243668B1 (en) * 1998-08-07 2001-06-05 Hewlett-Packard Company Instruction set interpreter which uses a register stack to efficiently map an application register state

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257049A (ja) * 2009-04-22 2010-11-11 Fujitsu Ltd 仮想化プログラム、仮想化処理方法及び装置

Also Published As

Publication number Publication date
CA2384254A1 (en) 2001-04-19
JP4275884B2 (ja) 2009-06-10
KR20020039685A (ko) 2002-05-27
ATE377212T1 (de) 2007-11-15
EP1240582A1 (en) 2002-09-18
DE60036960T2 (de) 2008-08-14
WO2001027743A1 (en) 2001-04-19
CN1399735A (zh) 2003-02-26
DE60036960D1 (de) 2007-12-13
EP1240582A4 (en) 2005-08-31
KR100573446B1 (ko) 2006-04-26
US6363336B1 (en) 2002-03-26
JP4417346B2 (ja) 2010-02-17
JP2006244516A (ja) 2006-09-14
EP1240582B1 (en) 2007-10-31
CA2384254C (en) 2004-11-02
CN1196994C (zh) 2005-04-13

Similar Documents

Publication Publication Date Title
JP4417346B2 (ja) 微細粒度変換判別方法及び装置
US9804970B2 (en) Invalidating a range of two or more translation table entries and instruction therefor
US6604187B1 (en) Providing global translations with address space numbers
US5835962A (en) Parallel access micro-TLB to speed up address translation
EP1653343B1 (en) Invalidating storage, clearing buffer entries
KR960001946B1 (ko) 우선 변환 참조버퍼
US6119204A (en) Data processing system and method for maintaining translation lookaside buffer TLB coherency without enforcing complete instruction serialization
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
EP0491498B1 (en) Apparatus and method for a space saving translation lookaside buffer for content addressable memory
US5666509A (en) Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
EP0851357A1 (en) Method and apparatus for preloading different default address translation attributes
US5873123A (en) Processor and method for translating a nonphysical address into a physical address utilizing a selectively nonsequential search of page table entries
JPH10133950A (ja) ページテーブル更新方法および装置
GB2458295A (en) Cache way accessing using pointers in a micro tag
US5764944A (en) Method and apparatus for TLB invalidation mechanism for protective page fault
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
CN112639750A (zh) 用于控制存储器存取的装置及方法
US4648033A (en) Look-aside buffer LRU marker controller
EP1107122A1 (en) Legacy MIL-STD-1750A software emulator address translation using power PC memory management hardware
US7971002B1 (en) Maintaining instruction coherency in a translation-based computer system architecture
JPH071489B2 (ja) コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法
JPH0713864A (ja) データ処理装置
JPH02121044A (ja) キャッシュメモリ初期化方式
JPH02287850A (ja) 仮想メモリ装置
JPH02239330A (ja) 情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050517

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050816

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050823

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081205

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090305

R150 Certificate of patent or registration of utility model

Ref document number: 4275884

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130313

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130313

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140313

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term