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
Links
- 238000006243 chemical reaction Methods 0.000 title description 13
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000013519 translation Methods 0.000 claims description 32
- 239000000872 buffer Substances 0.000 claims description 22
- 230000014616 translation Effects 0.000 description 29
- 238000012937 correction Methods 0.000 description 11
- 239000002245 particle Substances 0.000 description 8
- 239000010419 fine particle Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100366711 Arabidopsis thaliana SSL13 gene Proteins 0.000 description 1
- 101100366561 Panax ginseng SS11 gene Proteins 0.000 description 1
- 230000006658 host protein synthesis Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract 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
Description
セットからホスト命令セットに命令を動的に変換するマイクロプロセッサによる
既に変換されたターゲット命令を格納したメモリへの書き込み試行を検出する方
法および装置に関する。従来技術の説明 最近、単純であるが非常に高速のホスト・プロセッサ(「モーフ・ホスト」と
呼ぶ)とソフトウエア(「コード・モーフィング・ソフトウエア」と呼ぶ)とを
組み合わせ、モーフ・ホスト・プロセッサの命令セットとは異なる命令セットを
有するプロセッサ用に設計したアプリケーション・プログラムを実行する新たな
マイクロプロセッサが開発された。モーフ・ホスト・プロセッサは、アプリケー
ション・プログラムを、元のソフトウエアの目的を達成することができるホスト
・プロセッサ命令に動的に変換するコード・モーフィング・ソフトウエアを実行
する。命令を変換する際、これらを変換バッファに格納する。変換バッファ内で
は、更に変換せずにこれらを実行することができる。プログラムの初期変換は低
速であるが、一旦変換されれば、プログラムを実行するためにハードウエアに通
常必要となるステップの多くは不要となる。新たなマイクロプロセッサは、変換
した「ターゲット」プログラムを、そのプログラムを設計した対象である「ター
ゲット」プロセッサと同程度の速度で実行可能であることを証明した。
、ターゲット・プロセッサの既知の状態間におよぶターゲット命令シーケンスを
ホスト命令に変換し、更なる使用のために変換バッファに格納し、変換した命令
が正しく実行するか否か判定するために検査することができる。これらのハード
ウエア強化策によって、実行が成功している限り、変換実行の効果をバッファす
ることが可能となる。「コミット」と呼ばれるプロセスにおいて実行が成功する
と、メモリ・ストアおよびターゲット・プロセッサ状態を更新する。これらのハ
ードウエア強化策によって、ターゲット・プロセッサの既知の状態が存在する命
令シーケンスの先頭に実行を戻すことによって、ホスト命令シーケンスの実行中
に発生する例外の迅速かつ高精度の処理が可能となる。ターゲット状態がわかっ
ている実行点に動作を戻すことを「ロールバック」と呼ぶ。新たなプロセッサは
、本発明の譲受人に譲渡された、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 (アドレスされているコンポーネントの物理的性質に対する推定
の失敗を検出するマイクロプロセッサのメモリ・コントローラ)に詳しく記載さ
れている。
プロセッサのオペレーティング・システムおよびアプリケーションによっては、
メモリに格納されているターゲット命令に書き込みを行う可能性があることがあ
げられる。これが発生すると、上書きされたターゲット命令の変換であるホスト
命令は、もはや有効でなくなる。無効なホスト変換を用いないことを保証するた
めに、新たなプロセッサは、「Tビット」と名付けられたインディケータを利用
する。Tビットには、変換ルックアサイド・バッファ(TLB:translation lo
okaside buffer)における物理ページ・アドレスと共に格納される。ルックアサ
イド・バッファは、最新のメモリ・アクセスの仮想メモリ・アドレスおよび物理
メモリ・アドレス双方を含むエントリを格納し、ページ・テーブルによるよりも
一層メモリ・アクセスの高速化を可能にする。新たなプロセッサのTLBにおい
て、各エントリはTビットを含む。アドレス・メモリ・ページ上の命令がホスト
命令に変換されたときにはいつでも、Tビットはセットされる。Tビットによっ
て保護されているメモリ・ページに書き込みが行われようとすると、Tビット例
外が発生する。Tビット例外によって、例外ハンドラは、Tビットによって保護
されているページ上のターゲット命令から変換されたホスト命令のアドレスへの
参照を保持するデータ構造を調べる。例外ハンドラは、これらの変換を、TLB
エントリのTビット保護をオフにすることによって、無効にする。
と同じ譲受人に譲渡された、Kelly等のTranslated Memory Protection Apparatu s For An Advanced Microprocessor (高度マイクロプロセッサのための変換メモ
リ保護装置)と題する米国特許第08/702,771号に詳しく記載されてい
る。
効率的に機能するが、動作においていくつかの問題が残っている。これらの問題
の1つは、あるターゲット・プロセッサが、命令とデータが格納されているエリ
ア間で区別を行わないオペレーティング・システムを採用していることである。
例えば、マイクロソフト社の「ウインドウズ」は、命令のために指定されたセグ
メント、およびデータのために指定された別のセグメントを、同じメモリ・ペー
ジ上に格納することを許す。
場合、Tビット障害が発生する。その結果生ずる例外によって、当該データへの
書き込みが、ターゲット命令を全く変化させなかったことを示しても、特定のT
ビットによって保護されているメモリ・ページ上のターゲット命令の変換全てが
無効となる。メモリ・ページ上において正しい変換が無効にされると、新たなプ
ロセッサの動作が著しく遅くなる。
けない変換の無効化を排除し、発生しても変換の無効化を生じないTビット・ト
ラップの数を低減することによって、新たなプロセッサの動作速度を向上させる
ことが望ましい。 (発明の概要) したがって、本発明の目的は、他のマイクロプロセッサのために設計されたア
プリケーション・プログラムおよびオペレーティング・システムと互換性があり
、これらを走らせることができ、しかもこれら他のマイクロプロセッサよりも一
層高速なマイクロプロセッサを提供することである。
令セットに命令を変換するコンピュータにおいて、メモリ・ページに対する書き
込みが、ホスト命令に変換されたターゲット命令に対するものか否かについて判
定を行う方法によって実現される。この方法は、ホスト命令に変換されたターゲ
ット命令を格納するメモリ・ページに対する書き込みを検出するステップと、書
き込みがアドレスされたメモリ・ページのサブエリアが、変換されたターゲット
命令を格納しているか否かについて検出を行うステップと、アドレスされたター
ゲット命令から変換されたホスト命令を無効にするステップとを含む。
細な説明を参照することによって、一層良く理解されよう。図面においては、い
くつかの図を通じて同様のエレメントを同様の符号で示すこととする。 (詳細な説明) 図1は、本発明を利用可能なマイクロプロセッサ11を示す。図示したマイ
クロプロセッサは、米国特許第5,832,205号に詳細に記載されている。
このマイクロプロセッサは、浮動小数点ユニット12、整数ユニット13、シス
テム・メモリの一部である変換バッファ14、システム・メモリの別の一部であ
るターゲット・メモリ15、およびメモリ管理ユニットの一部である変換ルック
アサイド・バッファ16を含む。
た命令が、これらを変換した元のターゲット命令との一貫性を保持していること
を保証する。この方法を「Tビット例外」と呼ぶ。Tビットは、変換ルックアサ
イド・バッファ16内のエントリに置かれ、書き込みを行おうとしているターゲ
ット・メモリ15内のメモリ・ページが、変換バッファ14内に格納されている
ホスト命令に変換されているターゲット命令を格納していることを表示する。T
ビット例外が発生するのは、変換されたターゲット命令を格納しているメモリ・
ページに書き込みを行おうとしたときである。
ゲット命令が変化したときに、変換を用いない(または少なくとも、使用前にこ
れらが未だ有効であることを判定するためにチェックを行う)ようにすることで
ある。「無効化」とは、この明細書では両方の意味を含むように用いることとす
る。しかしながら、ある種のターゲット・プロセッサでは(特に、X86ファミ
リ)、変換された命令およびデータ双方を含むメモリ・ページが存在することが
許されている。メモリ・ページへのデータの書き込みは、そのページ上の命令を
変化させないので、当該メモリ・ページ上の命令から変換されたホスト命令を無
効にする理由がない。その結果、新たなプロセスが考案され、これによってコー
ド・モーフィング・ソフトウエアは、あるメモリ・ページに対して行われようと
した書き込みが、変換された命令に対するものか、またはデータに対するものか
について判定を行い、ページ上の命令の変換を無効にすることなくデータへの書
き込みを許可することができるようにした。また、新たなプロセスは、実際に書
き込まれているメモリ・ページのエリアに対する、ページ上の命令への書き込み
の効果も制限する。
リ・ページを一層微細な粒度で分割する。本プロセスは、被保護ページをサイズ
が等しい複数のサブエリアに分割し、かかるメモリ・ページのサブエリア毎にイ
ンディケータを格納する。一実施形態では、インディケータは、複数のサブエリ
アの各々に1ビットから成るマスクを形成する。マスクは、Tビットで保護され
ているメモリ・ページの一部として格納することも可能である。保護されている
サブエリア毎のインディケータを、「微粒子Tビット」と呼ぶ。一実施形態では
、マスクは32ビット・ワードであるので、各微粒子Tビットは、4096バイ
トのメモリ・ページの内128バイトのサブエリアを保護する。ターゲット命令
を含むサブエリア毎に、微粒子Tビットがセットされる。Tビット例外が発生す
ると、例外ハンドラがインディケータを検査し、書き込みが行われようとしたメ
モリ・ページに、微粒子Tビット保護が設けられているか否か判定を行う。
クを発生する。このマスクは、アドレスされるバイトの位置に1を有する(そし
て、格納されているデータが長く次のサブエリア内に達する場合、次に続くビッ
ト位置に1を有する)。下位アドレス・ビットのマスクおよび微粒子Tビット・
マスクのANDを取る。いずれの位置においても0が得られた場合、サブエリア
に微粒子Tビットがセットされ、Tビット例外が発生するべきであることを示す
。
のみがページに書き込まれている場合)、Tビット例外が肯定され、このページ
に関連する変換バッファ内の変換を無効にする。メモリ・ページがサブエリアに
分割されており、微粒子Tビット・インディケータが存在し、検査が、微粒子T
ビットによって指定されていない1つ以上のサブエリアに対して書き込みが行わ
れることを示す場合、元のTビット例外はソフトウエアによって無視される。メ
モリ・ページがサブエリアに分割されており、検査が、微粒子Tビットによって
指定された1つ以上のサブエリア(命令を格納しているエリア)に対して書き込
みが行われることを示す場合、元のTビット例外を肯定し、例外ハンドラは、保
護されているメモリ・ページ上の特定のサブエリア内に格納されているターゲッ
ト命令から変換され、変換バッファに格納されているホスト命令を無効にする。
生するTビット例外の大部分を不要とする。また、微粒子Tビットの保護は、破
棄される変換を、書き込まれたサブエリアにある命令を変換するもののみに制限
する。したがって、本発明のプロセスは、常時メモリ・ページ全体を破棄する場
合よりも、かなり速くなる。
るプロセスは、基本的なTビット保護よりも速いが、更に加速することも可能で
ある。本発明のプロセスを高速化するために、図2に示すハードウエアの実施形
態を構築した。この実施形態は、先に論じたTLBのように構成した第1TLB
21を有する回路20を含む。このTLBは、各々メモリ・ページの仮想アドレ
ス、仮想メモリ・アドレスによってアドレスされた情報が実際に格納されている
物理ページ・アドレス、およびTビットを含むエントリを格納する位置を与える
。有効なメモリ・ページが、変換されているターゲット命令を格納している場合
、TLB21内のエントリに対してTビットをセットする。
・ルックアップ・テーブル」と呼ぶ。微粒子Tビット・ルックアップ・テーブル
23は、TLB21よりも少ない数のエントリを有するのが通例である。何故な
ら、変換されたターゲット命令を格納するメモリ・ページが、データも格納する
ことは少ないと予想されるからである。テーブル23は、各々、データおよび変
換されたターゲット命令双方を格納するメモリ・ページの物理ページ・アドレス
を含むエントリを格納する位置を与える。また、テーブル23の各エントリは、
ソフトウエアの実施形態において利用したのと同じ1組のインディケータ(例え
ば、32ビット・ワード・マスク)も格納し、微粒子Tビットによって実際に保
護されているサブエリアを示す。
に行われようとすると、TLB23を検索し、アドレスされたメモリ・ページの
エントリがテーブルに存在するか否か判定を行う。これを行うために、仮想メモ
リ・アドレスを含むエントリについて検索を実施する。このようなエントリが存
在する場合、このページの物理アドレスを求め、このページに対するTビットの
状態を判定する。Tビットがセットされていない場合、このメモリ・ページは、
変換されたターゲット命令を格納するページではないので、実際にTビット保護
を有するページではない。メモリ・ページが、変換されたターゲット命令を格納
しており、したがってセットされているTビットによって保護されている場合、
このページに対してTビット・トラップを発生し、エントリの物理アドレスを、
微粒子Tビット・ルックアップ・テーブル23に送る。
理アドレスを含むエントリがテーブル23内に存在しない場合、(1)メモリ・
ページはデータおよび変換されたターゲット命令の双方は格納していないか、あ
るいは(2)メモリ・ページはデータおよび変換されたターゲット命令の双方は
格納しているが、メモリ・ページのエントリはテーブル23に入力されていない
。第1の状況では、TLB21内のエントリにおいてセットされているTビット
が、ページが変換されたターゲット命令を含むことを示すので、Tビット・トラ
ップ例外を発生し、このページに関連する変換バッファに格納されている変換を
無効にする。第2の状況では、物理アドレスのエントリをテーブル23にロード
し、書き込みを再度試す。
ジの特定のサブエリアに対する検査を実施し、アドレスされたサブエリアが微粒
子Tビットによって保護されているか否か判定を行う。このサブエリアに対して
微粒子Tビットがセットされていない場合、Tビット・トラップ例外を発生せず
、データをメモリ・ページに格納する。このサブエリアに対して微粒子Tビット
がセットされている場合、Tビット・トラップ例外を発生し、メモリ・ページの
特定のサブエリア、TLB21内のエントリ、およびこのメモリ・ページの特定
のサブエリアに関連する変換バッファ内に格納されている変換を無効にする。
るために、回路20のテーブル23内で一致する物理アドレスがあった場合、本
発明の一実施形態では、微粒子Tビットによって保護されているサブエリアを示
すマスクを、レジスタ25内に置く。次に、仮想アドレスの下位ビットを用いて
、アドレスされたサブエリアが微粒子Tビットによって保護されているか否か判
定を行う。これらの下位ビットは、アドレスされたメモリ・ページ内において、
書き込みアクセスによってアクセスされたアドレスを規定する。書き込みアクセ
スがアドレスされたページの特定のサブエリアを、レジスタ25におけるマスク
の32ビットTビット・インディケータと照合し、そのアドレスが、微粒子Tビ
ットによって保護された1つ以上のサブエリア内にあるか否か判定を行う。微粒
子Tビットによって保護されているサブエリアへの書き込みである場合、トラッ
プによってTビット例外を発生し、特定のサブエリア、これらのサブエリアに格
納されている命令の変換、およびTLB21内でアドレスされたエントリを無効
にする。
か否か判定を行うために、本発明の一実施形態は、下位12アドレス・ビットの
内上位5ビットを利用して、32のサブエリアのどれが関与しているか判定を行
う。このようなサブエリアは、各々、4096バイトのページに対して128バ
イトを含む。アドレスされた特定のサブエリアが判定されると、アドレスの下位
7ビットを用いて、サブエリア内でアドレスされた具体的なバイトを判定する。
アドレスされたバイトが判定されると、微粒子Tビットによって保護されている
サブエリアを示すマスク(レジスタ25内のマスク)内においてアドレスされた
サブエリアに対するインディケータを保持するビット位置を検査し、微粒子Tビ
ットがセットされているか否か判定を行う。一実施形態では、書き込みは、8バ
イトに及ぶ場合もあるので、格納されているデータの長さ(引く1)を、サブエ
リア内の開始バイト・アドレスに加え、書き込みが次のサブエリア内に達するか
否か判定を行う。書き込みが次のサブエリアに達する場合、マスクも検査し、次
のサブエリアに対して微粒子Tビットがセットされているか否か判定を行う。
トルを取り出し、12ビット・ページ・オフセットの上位5ビットだけ、これを
シフト・ダウンする(shift down)。これによって、書き込まれた特定のサブエリ
アに対するビットを下位ビット位置に移動し、次のサブエリアに対するビットを
次の下位ビット位置に移動する。1つ(または次のサブエリアに書き込まれてい
る場合は、2つ)の下位ビットを次に検査する。いずれかがセットされている場
合、Tビット例外を発生する。
は、Tビットによって保護されているエリアに格納されているターゲット命令か
ら変換されたホスト命令のアドレスを含むデータ構造を利用する。本発明が提供
するTビット保護の微粒子の態様を最適に利用するために、このデータ構造を、
図4に示すように変更する。コード・モーフィング・ソフトウエアは、物理ペー
ジ・マップと呼ばれるエントリのアレイを利用する。物理ページ・マップにおけ
るエントリは、物理アドレスの上位ビットによってインデックス付けされている
。各エントリは、対応する物理ページからターゲット命令を変換する変換を識別
するデータ構造に対するポインタである。物理ページ上のターゲット命令の各変
換は、微粒子Tビット・インディケータ(例えば、32ビット・ワード・マスク
)を有する。これは、微粒子Tビットによって保護されている、変換されたター
ゲット命令を含むメモリ・ページのサブエリアを識別する。Tビット例外がある
場合、ストア・アドレスの下位ビットおよびストアのサイズから生成したマスク
を、前述のように用いて、変換毎に、物理ページのアクセスされたサブエリアか
らの命令を変換するか否か判定を行う。
。変換毎に、Tビット・マスクを関連付ける。あるページに対するかかるリスト
上の変換に対するTビット・マスク同士のORを取ると、このページに対するT
ビット・マスクが形成される。これらを格納し、テーブル23を素早く埋め、更
にテーブル23に新たなページをロードするために用いることができる。マスク
は、新たな変換がリストに追加されたときにはいつでも、またはリスト上の変換
が無効にされたときにはいつでも再計算される。
ト命令のシーケンスが生成されることを注記しておく。多くの場合、これらのホ
スト命令は、コンピュータの動作速度を高めるために、並び替えられ更にスケジ
ュールされる。その結果、本発明の一実施形態では、ストアのために変換が無効
にされた場合、これらがストアによってアクセスされたのではないエリアからの
ターゲット命令を変換したのであっても、この変換に伴うホスト命令シーケンス
の全てが無効とされる。
えば、Tビット・バッファ23は、物理アドレスではなく、仮想アドレスを利用
してアクセスされてもよい。このような変更によって、バッファ21及び23を
同じクロックでアクセスすることが可能となる。バッファ23を不要とし、TL
B21内に単一のビットではなくTビット・マスク全体を格納するような、別の
実施形態も可能である。他にも具体的な実施形態が当業者には想起されよう。
アを作成することによって強化することも可能である。この結果を達成する一実
施形態では、サブエリアを更に小さいサブエリアに分割し、これらにも、前述の
より大きなサブエリアと同様に、微粒子Tビットの保護を与える、テーブル23
と同様の追加のテーブルを作成する回路、およびストアの試行がより小さなサブ
エリアの保護されたサブエリアに対して行われたか否か判定を行う、関連する回
路を備える。
から逸脱することなく、種々の変更や変形も当業者によって可能であることが認
められよう。したがって、本発明は、特許請求の範囲に関して判断するべきであ
る。
を示すブロック図である。
に行われようとすると、テーブル23を検索し、アドレスされたメモリ・ページ
のエントリがテーブルに存在するか否か判定を行う。これを行うために、仮想メ
モリ・アドレスを含むエントリについて検索を実施する。このようなエントリが
存在する場合、このページの物理アドレスを求め、このページに対するTビット
の状態を判定する。Tビットがセットされていない場合、このメモリ・ページは
、変換されたターゲット命令を格納するページではないので、実際にTビット保
護を有するページではない。メモリ・ページが、変換されたターゲット命令を格
納しており、したがってセットされているTビットによって保護されている場合
、このページに対してTビット・トラップを発生し、エントリの物理アドレスを
、微粒子Tビット・ルックアップ・テーブル23に送る。
理アドレスを含むエントリがテーブル23内に存在しない場合、(1)メモリ・
ページはデータおよび変換されたターゲット命令の双方は格納していないか、あ
るいは(2)メモリ・ページはデータおよび変換されたターゲット命令の双方は
格納しているが、メモリ・ページのエントリはテーブル23に入力されていない
。第1の状況では、TLB21内のエントリにおいてセットされているTビット
が、ページが変換されたターゲット命令を含むことを示すので、Tビット・トラ
ップ例外を発生し、このページに関連する変換バッファに格納されている変換を
無効にする。第2の状況では、物理アドレスのエントリをテーブル23にロード
し、書き込みを再度試す。
ジの特定のサブエリアに対する検査を実施し、アドレスされたサブエリアが微粒
子Tビットによって保護されているか否か判定を行う。このサブエリアに対して
微粒子Tビットがセットされていない場合、Tビット・トラップ例外を発生せず
、データをメモリ・ページに格納する。このサブエリアに対して微粒子Tビット
がセットされている場合、Tビット・トラップ例外を発生し、メモリ・ページの
特定のサブエリア、TLB21内のエントリ、およびこのメモリ・ページの特定
のサブエリアに関連する変換バッファ内に格納されている変換を無効にする。
Claims (20)
- 【請求項1】 ターゲット命令セットからホスト命令セットに命令を変換す
るコンピュータにおいて、メモリ・ページに対する書き込みが、ホスト命令に変
換されたターゲット命令に対するものか否かについて判定を行う方法であって、 ホスト命令に変換されたターゲット命令を格納するメモリ・ページに対する書
き込みを検出するステップと、 前記書き込みがアドレスされた前記メモリ・ページのサブエリアが、変換され
たターゲット命令を格納しているか否かについて検出を行うステップと、 アドレスされたターゲット命令から変換されたホスト命令を無効にするステッ
プと、 を含む方法。 - 【請求項2】 請求項1記載の方法において、ホスト命令に変換されたター
ゲット命令を格納するメモリ・ページに対する書き込みを検出する前記ステップ
は、 ホスト命令に変換されたターゲット命令を格納しているメモリ・ページ毎にイ
ンディケータを格納するステップと、 かかるメモリ・ページの各々に書き込みが行われようとしたときに、前記イン
ディケータを検出するステップと、 から成る方法。 - 【請求項3】 請求項2記載の方法において、前記書き込みがアドレスされ
た前記メモリ・ページのサブエリアが、変換されたターゲット命令を格納してい
るか否かについて検出を行う前記ステップは、 ホスト命令に変換されたターゲット命令を格納しているメモリ・ページの各サ
ブエリア毎にインディケータを格納するステップと、 かかるメモリ・ページのかかるサブエリアの各々に対して書き込みが行われよ
うとしたとき、かかるサブエリアに対するインディケータを検出するステップと
、 から成る方法。 - 【請求項4】 請求項2記載の方法において、アドレスされたターゲット命
令から変換されたホスト命令を無効にする前記ステップは、ターゲット命令のみ
を格納しているメモリ・ページ上に格納されている、アドレスされたターゲット
命令から変換されたホスト命令全てを無効にすることから成る方法。 - 【請求項5】 請求項2記載の方法において、アドレスされたターゲット命
令から変換されたホスト命令を無効にする前記ステップは、前記書き込みがアド
レスされたメモリ・ページのサブエリア上に格納されている、アドレスされたタ
ーゲット命令から変換されたホスト命令のみを無効にすることから成る方法。 - 【請求項6】 請求項2記載の方法において、アドレスされたターゲット命
令から変換されたホスト命令を無効にする前記ステップは、前記書き込みがアド
レスされたメモリ・ページの任意のサブエリアに格納されている、アドレスされ
たターゲット命令からの変換の一部である、ホスト命令を全て無効にすることか
ら成る方法。 - 【請求項7】 ターゲット命令セットからホスト命令セットに命令を変換す
るコンピュータであって、 ホスト命令を実行する処理ユニットと、 システム・メモリと、 システム・メモリへのアクセスを制御するメモリ管理ユニットであって、 ホスト命令に変換されたターゲット命令を格納するシステム・メモリの部分を
示す手段と、 ホスト命令に変換されたターゲット命令を格納するシステム・メモリの前記部
分のサブエリアを示す手段と、 ターゲット命令のみを格納しているシステム・メモリの部分に対して書き込み
が行われようとしたときに、システム・メモリのかかる部分に格納されているタ
ーゲット命令から変換されたホスト命令を無効にする手段と、 ターゲット命令を格納しているシステム・メモリの部分のサブエリアに対して
書き込みが行われようとしたときに、システム・メモリのかかるサブエリアに格
納されているターゲット命令から変換されたホスト命令を無効にする手段と、 を含むメモリ管理ユニットと、 を備えているコンピュータ。 - 【請求項8】 請求項7記載のコンピュータであって、更に、ターゲット命
令を格納するシステム・メモリのサブエリアまたはサブエリアに対して書き込み
が行われようとしたときに、システム・メモリのサブエリアのかかるサブエリア
に格納されているターゲット命令から変換されたホスト命令を無効にする手段を
備えているコンピュータ。 - 【請求項9】 請求項7記載のコンピュータにおいて、ホスト命令に変換さ
れたターゲット命令を格納するシステム・メモリの部分を示す前記手段は、 システム・メモリの部分に対する仮想アドレスによってアドレス可能なエント
リであって、各々システム・メモリの一部の物理アドレスを含む、エントリと、
変換されたターゲット命令が前記一部に格納されているか否かについての指示と
を格納する変換ルックアサイド・バッファを備えているコンピュータ。 - 【請求項10】 請求項7記載のコンピュータにおいて、ホスト命令に変換
されたターゲット命令を格納するシステム・メモリの前記部分のサブエリアを示
す前記手段は、 物理アドレスによってアドレス可能なシステム・メモリの部分に対するエント
リを格納するテーブルを備え、各エントリが、変換されたターゲット命令が格納
されているサブエアリアを区別するインディケータを含む、コンピュータ。 - 【請求項11】 請求項10記載のコンピュータにおいて、 前記サブエリアは等しいサイズに形成されており、 各エントリにおけるインディケータは、ビット位置であり、その状態が、変換
されたターゲット命令の格納を区別し、その位置が前記部分のサブエリアを示す
、 コンピュータ。 - 【請求項12】 請求項11記載のコンピュータにおいて、ターゲット命令
を格納しているシステム・メモリの部分のサブエリアに対して書き込みが行われ
ようとしたときに、かかるサブエリアに格納されているホスト命令を無効にする
前記手段は、 ホスト命令に変換されたターゲット命令を格納するサブエリアに対する書き込
みに応答して、かかるサブエリアに格納されているターゲット命令から変換され
たホスト命令を無効にする例外処理手段を備えている、 コンピュータ。 - 【請求項13】 請求項12記載のコンピュータであって、更に、変換され
たターゲット命令から変換されたホスト命令を格納しているシステム・メモリの
部分に対して書き込みが行われようとしたときに、かかる部分を無効にする例外
処理手段を備えているコンピュータ。 - 【請求項14】 ターゲット命令セットからホスト命令セットに命令を変換
するコンピュータにおいてシステム・メモリに対するアクセスを制御するメモリ
管理ユニットであって、 ホスト命令に変換されたターゲット命令を格納するシステム・メモリの部分を
示す手段と、 ホスト命令に変換されたターゲット命令を格納するシステム・メモリの前記部
分のサブエリアを示す手段と、 ターゲット命令のみを格納しているシステム・メモリの部分に対して書き込み
が行われようとしたときに、システム・メモリのかかる部分に格納されているタ
ーゲット命令から変換されたホスト命令を無効にする手段と、 ターゲット命令を格納しているシステム・メモリの部分のサブエリアに対して
書き込みが行われようとしたときに、システム・メモリのかかるサブエリアに格
納されているターゲット命令から変換されたホスト命令を無効にする手段と、 を含むメモリ管理ユニット。 - 【請求項15】 請求項14記載のメモリ管理ユニットであって、更に、タ
ーゲット命令を格納するシステム・メモリのサブエリアまたはサブエリアに対し
て書き込みが行われようとしたときに、システム・メモリのサブエリアのかかる
サブエリアに格納されているターゲット命令から変換されたホスト命令を無効に
する手段を備えているメモリ管理ユニット。 - 【請求項16】 請求項14記載のメモリ管理ユニットにおいて、ホスト命
令に変換されたターゲット命令を格納するシステム・メモリの部分を示す前記手
段は、 システム・メモリの部分に対する仮想アドレスによってアドレス可能なエント
リであって、各々システム・メモリの一部の物理アドレスを含む、エントリと、
変換されたターゲット命令が前記一部に格納されているか否かについての指示と
を格納する変換ルックアサイド・バッファを備えている、 メモリ管理ユニット。 - 【請求項17】 請求項14記載のメモリ管理ユニットにおいて、ホスト命
令に変換されたターゲット命令を格納するシステム・メモリの前記部分のサブエ
リアを示す前記手段は、 物理アドレスによってアドレス可能なシステム・メモリの部分に対するエント
リを格納するテーブルを備え、各エントリが、変換されたターゲット命令が格納
されているサブエアリアを区別するインディケータを含む、 メモリ管理ユニット。 - 【請求項18】 請求項17記載のメモリ管理ユニットにおいて、 前記サブエリアは等しいサイズに形成されており、 各エントリにおけるインディケータは、ビット位置であり、その状態が、変換
されたターゲット命令の格納を区別し、その位置が前記部分のサブエリアを示す
、 メモリ管理ユニット。 - 【請求項19】 請求項16記載のメモリ管理ユニットにおいて、ターゲッ
ト命令を格納しているシステム・メモリの部分のサブエリアに対して書き込みが
行われようとしたときに、システム・メモリのかかるサブエリアに格納されてい
るホスト命令を無効にする前記手段は、 ホスト命令に変換されたターゲット命令を格納するサブエリアに対する書き込
みに応答して、かかるサブエリアに格納されているターゲット命令から変換され
たホスト命令を無効にする例外処理手段を備えている、 メモリ管理ユニット。 - 【請求項20】 請求項19記載のメモリ管理ユニットであって、更に、変
換されたターゲット命令から変換されたホスト命令を格納しているシステム・メ
モリの部分に対して書き込みが行われようとしたときに、かかる部分を無効にす
る例外処理手段を備えているメモリ管理ユニット。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010257049A (ja) * | 2009-04-22 | 2010-11-11 | Fujitsu Ltd | 仮想化プログラム、仮想化処理方法及び装置 |
Families Citing this family (25)
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)
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 |
-
1999
- 1999-10-13 US US09/417,356 patent/US6363336B1/en not_active Expired - Lifetime
-
2000
- 2000-09-06 DE DE60036960T patent/DE60036960T2/de not_active Expired - Lifetime
- 2000-09-06 CN CNB00814186XA patent/CN1196994C/zh not_active Expired - Lifetime
- 2000-09-06 AT AT00960034T patent/ATE377212T1/de not_active IP Right Cessation
- 2000-09-06 WO PCT/US2000/024651 patent/WO2001027743A1/en active IP Right Grant
- 2000-09-06 CA CA002384254A patent/CA2384254C/en not_active Expired - Fee Related
- 2000-09-06 JP JP2001530689A patent/JP4275884B2/ja not_active Expired - Lifetime
- 2000-09-06 EP EP00960034A patent/EP1240582B1/en not_active Expired - Lifetime
- 2000-09-06 KR KR1020027004731A patent/KR100573446B1/ko not_active IP Right Cessation
-
2006
- 2006-04-14 JP JP2006112312A patent/JP4417346B2/ja not_active Expired - Lifetime
Cited By (1)
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 |