JPH09198255A - オペレーティング・システムに影響を与えないエミュレーション・コンテキストの保管と復元を行う方法およびシステム - Google Patents
オペレーティング・システムに影響を与えないエミュレーション・コンテキストの保管と復元を行う方法およびシステムInfo
- Publication number
- JPH09198255A JPH09198255A JP8333229A JP33322996A JPH09198255A JP H09198255 A JPH09198255 A JP H09198255A JP 8333229 A JP8333229 A JP 8333229A JP 33322996 A JP33322996 A JP 33322996A JP H09198255 A JPH09198255 A JP H09198255A
- Authority
- JP
- Japan
- Prior art keywords
- register
- special purpose
- processor
- floating point
- operating system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000004044 response Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 102100021145 fMet-Leu-Phe receptor Human genes 0.000 description 3
- 101000818522 Homo sapiens fMet-Leu-Phe receptor Proteins 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- -1 68K compound Chemical class 0.000 description 1
- 101100455522 Caenorhabditis elegans spr-5 gene Proteins 0.000 description 1
- 101710108492 fMet-Leu-Phe receptor Proteins 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
- 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/46—Multiprogramming arrangements
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- 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/45533—Hypervisors; Virtual machine monitors
-
- 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
・アプリケーションをエミュレートするプロセッサにお
いてエミュレーション・コンテキスト保管および復元を
行う方法およびシステムを提供する。 【解決手段】 このプロセッサは、オペレーティング・
システムと、ホスト・アプリケーション・コンテキスト
切換え中にオペレーティング・システムによって保管お
よび復元される第1のレジスタとを含む。この方法およ
びシステムは、ゲスト・アプリケーションをエミュレー
トするときに特殊目的レジスタを第1のレジスタに名前
変更するステップを含む。エミュレーション・コンテキ
スト切換えが行われると、オペレーティング・システム
を変更することなく第1のレジスタを使用して特殊目的
レジスタのコンテキスト保管および復元が実行される。
Description
サにおいてゲスト命令をエミュレートする方法およびシ
ステムに関し、より特定的にはオペレーティング・シス
テムに影響を与えないエミュレーション・コンテキスト
保管を行う方法およびシステムに係わる。
命令セットなどのゲスト命令セットをモトローラPow
erPC(TM)などのホスト・プロセッサ上でエミュ
レートする方法は2通りある。第1の方法はインタプリ
テーションと呼ばれ、インタプリタを使用し、第2の方
法は動的変換と呼ばれ、ダイナミック・トランスレータ
を使用する。インタプリタは、従来のホスト・プロセッ
サにおいてハードウェアによって行われるフェッチ、デ
コード、および実行サイクルを模倣する。ダイナミック
・トランスレータは、1ブロックのゲスト命令をフェッ
チし、デコードし、それをホスト命令に変換し、さらに
それが再使用される。それぞれの方法に強みと弱点があ
る。
ンスレータよりメモリの使用量は少ないが、実行速度が
遅い。ダイナミック・トランスレータは、ゲスト・プロ
グラムに頻繁に再使用される部分が含まれている場合に
パフォーマンスが良い。しかし、ダイナミック・トラン
スレータは、前に変換された部分をゲスト・プログラム
が修正する場合、パフォーマンスが劣る。
なわちインタプリタの小さなサイズとダイナミック・ト
ランスレータの実行速度とを備える解決策を得るため
に、ソフトウェア・エミュレーション方法を援助するハ
ードウェアを開発した。この援助ハードウェアを使用す
る前に、各ゲスト命令の機能を実行するのに必要なホス
ト命令のシーケンスを、セマンティック・ルーチンと呼
ばれる別々の機能にコンパイルし、メモリに記憶する。
このハードウェアはホスト・プロセッサにおいてソフト
ウェアと共に機能して、ゲスト命令をフェッチし、それ
らをデコードし、それに対応するセマンティック・ルー
チンをディスパッチする。
くつかのアプリケーションを実行することができる。こ
のプロセッサは、各アプリケーションについて別々のプ
ロセスを作成し、プロセッサのオペレーティング・シス
テムは、1つのプロセスをスワップアウトし、次に別の
プロセスをスワップインすることによって、プロセッサ
にプロセス間でタイム・スライシングを行わせる。これ
はコンテキスト切換えと呼ばれる。プロセッサがプロセ
スを実行するとき、命令と変数が一時的に汎用レジスタ
と浮動小数点レジスタに格納される。コンテキスト切換
え中にプロセスがスワップアウトされると、オペレーテ
ィング・システムはそのプロセスが使用しているレジス
タの内容を保管する。これをコンテキスト保管と呼ぶ。
後でプロセスをスワップインにより戻すとき、オペレー
ティング・システムはレジスタの内容を復元する。これ
をコンテキスト復元と呼ぶ。
ョン間でタイム・スライシングを実行しようとすれば、
ハードウェア援助ユニットでもコンテキスト切換えが行
われることになる。しかし、ハードウェア援助ユニット
は、現行オペレーティング・システムがコンテキスト保
管および復元を実行することができない特殊目的レジス
タを使用する。
オペレーティング・システムが特殊目的レジスタでコン
テキスト保管と復元を実行することができるようにする
ことであろう。しかし、これにはAIXやシステム7な
どすべてのネイティブ・オペレーティング・システムに
修正を加える必要がある。一般には、オペレーティング
・システムの修正は、そのオペレーティング・システム
の次のリリースまで実施されず、これには通常数年を要
する。したがって、ゲスト・アプリケーションに対して
エミュレーション・コンテキスト切換えを実行すること
ができるプロセッサが利用可能になるのがそれに応じて
遅れることになる。
・システムに影響を与えないエミュレーション・コンテ
キスト保管と復元を実行するシステムと方法である。本
発明はこのような必要に対処する。
リケーションを実行し、ゲスト・アプリケーションをエ
ミュレートする、プロセッサにおけるエミュレーション
・コンテキスト切換え保管および復元を行う方法とシス
テムである。このプロセッサは、オペレーティング・シ
ステムと、ホスト・アプリケーション・コンテキスト切
換え中にオペレーティング・システムによって保管およ
び復元される第1のレジスタとを備える。この方法およ
びシステムは、ゲスト・アプリケーションをエミュレー
トするときに特殊目的レジスタを第1のレジスタに名前
変更するステップを含む。エミュレーション・コンテキ
スト切換えが行われると、オペレーティング・システム
の修正を行わずに第1のレジスタを使用して特殊目的レ
ジスタのコンテキスト保管と復元が実行される。
よると、本発明はユーザ・レベル命令のみを使用して、
プロセッサにエミュレーション・コンテキスト切換え機
能を付加することができるようにし、それによってオペ
レーティング・システムに更新を加えなくても済むよう
にする。
けるゲスト命令のエミュレーションの改善に関する。以
下の説明は、当業者が本発明を実施することができるよ
うに示す。好ましい実施態様の様々な変更は当業者には
容易に明らかになろうし、本明細書に記載の一般原理は
他の実施態様にも適用可能である。したがって、本発明
は提示する実施態様には限定されることを意図したもの
ではなく、本明細書に記載の原理および特徴と矛盾のな
い最も広い範囲を与えられるものである。
アーキテクチャを図示したブロック図である。典型的に
は、プロセッサ10は、メモリ12、レベル2(L2)
キャッシュ14、データ・キャッシュ16、命令キャッ
シュ(IC)18、命令キュー(IQ)20、分岐予測
ユニット22、機能ユニット24〜32、完了ユニット
34などの様々なハードウェア構成要素を使用して、ネ
イティブ・ソフトウェア命令を実行する。
サ10はPowerPC(PPC)命令セットを実行す
るモトローラ製のPowerPCである。PPC命令セ
ットを実行するほかに、プロセッサ10はインテルx8
6命令およびモトローラ68K複合命令セットコンピュ
ータ(CISC)命令など複数のゲスト命令38のエミ
ュレーションも行うことができる。
レートするのを援助する役割を果たす構成要素は、エミ
ュレーション援助ユニット(EAU)36である。プロ
セッサ10がゲスト命令38をエミュレートすることが
できるようにするため、各ゲスト命令38はまず、ホス
ト・プロセッサ10でゲスト命令38の機能を実行する
セマンティック・ルーチン40と呼ばれる対応する1組
のホスト命令に変換される。各セマンティック・ルーチ
ン40は、メモリ12内の特定のアドレス場所に格納さ
れる。ゲスト命令38(およびデータ)もメモリ12に
格納される。
とデータをそれぞれL2キャッシュ14とデータ・キャ
ッシュ16とにキャッシュする。EAU36がゲスト命
令38をフェッチしてデコードし、次に各ゲスト命令3
8を対応するセマンティック・ルーチン40のホスト・
メモリ・アドレスにマッピングする。プロセッサ10
は、指定されたメモリ・アドレスにあるセマンティック
・ルーチン40をフェッチして命令キャッシュ18に入
れる。次に、セマンティック・ルーチン40に含まれる
ホスト命令がIQ20に送られる。次に、分岐予測ユニ
ット22と機能ユニット24〜32を使用して各ホスト
命令がデコードされ、実行される。セマンティック・ル
ーチン40が実行され、その結果が完了ユニット34に
格納された後、EAU36が次のゲスト命令38のホス
ト・アドレスをマッピングし、このプロセスが繰り返さ
れる。
ック図が図示されている。EAU36は、命令バッファ
50と、プリフェッチ・ユニット52と、特殊目的レジ
スタ(SPR)54と、デコード・ユニット56と、分
岐履歴テーブル58と、タグ生成ユニット60と、ゲス
ト・キャッシュ(gキャッシュ)62と、gキャッシュ
命令キュー64とを含む。EAU36の機能は、ダイレ
クト・マッピング方式を使用してプロセッサ10がゲス
ト命令38をエミュレートするのを援助することであ
る。
てデータ・キャッシュ16からゲスト命令38がプリフ
ェッチされる。次に、ゲスト命令38は命令バッファ5
0にロードされ、デコード・ユニット56に転送され
る。ホスト・アドレスへのゲスト命令38のダイレクト
・マッピングはその構文によって複雑になるため、デコ
ード・ユニット56を使用してゲスト命令38を構文解
析またはデコードして、長さ、分岐タイプ、および即値
データを判断する。命令38が分岐命令の場合、分岐履
歴テーブル58を使用して次のプリフェッチ・アドレス
を予測する。
ルーチン40の項目とそれに対応するホスト・メモリ・
アドレスとを含む配列である。ゲスト命令38がデコー
ドされた後、タグ生成ユニット60が命令38を固有の
命令コード・タグに変換し、その命令コード・タグが、
対応するセマンティック・ルーチン40アドレスにアク
セスするためにgキャッシュ62への索引として使用さ
れる。
応するセマンティック・ルーチン40がわかると、その
セマンティック・ルーチン40とそのアドレスがgキャ
ッシュ命令キュー64に格納される。命令キュー64内
の各項目は、セマンティック・ルーチン40のホスト・
アドレス(PPC)と、ゲスト命令38に含まれていた
即値データ(IMM)と、ゲスト命令ポインタ(IP)
とを含む。
サ10は実行のために線66を介して命令キュー64か
ら最初の項目をフェッチし、メモリ12から適切なセマ
ンティック・ルーチン40を取り出す。各セマンティッ
ク・ルーチン40内の最後の命令は分岐命令であり、好
ましい実施態様ではその分岐命令はゲスト・ディスパッ
チ完了(GDISC)命令68である。プロセッサ10
がGDISC命令68をフェッチし、デコードすると、
それによってプロセッサ10は線68を介して命令キュ
ー64から次のセマンティック・ルーチン40のアドレ
スをフェッチする。
マンティック・ルーチン40のアドレスは現行命令ポイ
ンタ(IP)70に格納されている。GDISC命令6
8のデコードによって、次IP72が現行IP72に移
される。好ましい実施態様では、GDISC命令は無条
件分岐命令であるが、プロセッサに次のセマンティック
・ルーチンをフェッチさせる命令であればどのような命
令でも使用することができる。
ーション内のゲスト命令38をエミュレートするほか
に、プロセッサ10は、アプリケーション間のタイム・
スライシングによっていくつかのホスト・アプリケーシ
ョンをマルチスレッド化することができる。プロセッサ
10によって実行されるホスト・アプリケーションの中
には浮動小数点演算を実行するものがあり、それらは浮
動小数点ユニット(FPU)32によって処理される。
図である。浮動小数点ユニット32は、乗算−加算配列
100と、32個(0〜31)の浮動小数点レジスタ
(FPR)102とを含む。乗算−加算配列100は、
乗算、加算、除算、乗算−加算などの浮動小数点演算を
行う。FPR102は、浮動小数点アプリケーションが
実行されるときに浮動小数点アプリケーションによって
生成された値を格納するために使用される。
ケーションがスワップアウトされるとき、オペレーティ
ング・システム(OS)104は、アプリケーションに
よって使用されるFPR102で以下のようにしてコン
テキスト保管を行う。後で浮動小数点命令を実行する別
のアプリケーションがスワップインされると、浮動小数
点命令によって浮動小数点利用不能(FPNA)例外と
呼ばれる例外が起こる。FPNA例外は、オペレーティ
ング・システム104に直前のアプリケーションの内容
を保管させ、FPNAをリセットさせて、新しいアプリ
ケーションがFPR102を使用することができるよう
にする割込みである。
スト・アプリケーション(ゲスト命令を含むアプリケー
ション)は、SPR54にアクセスするEAU36によ
ってエミュレートされる。しかし、現行オペレーティン
グ・システム104はSPR54でのコンテキスト保管
と復元を行うことができない。したがって、エミュレー
ション・コンテキスト切換えが行われるとき、SPR5
4にアクセスするようにオペレーティング・システム1
04を修正しない限り、プロセッサ10で2つのゲスト
・アプリケーションをマルチスレッド化することはでき
ない。前述のように、オペレーティング・システムのこ
のような修正は何年間も実施されることがなく、その結
果、ゲスト・アプリケーションをマルチスレッド化する
ことができるプロセッサ10が利用可能になるのは遅く
なる。
04を修正することなくエミュレーション・コンテキス
ト保管および復元を行う方法およびシステムである。こ
れは、オペレーティング・システム104がEAUコン
テキスト切換えを浮動小数点アプリケーションとして扱
うように、SPR54をFPR102に名前変更するこ
とによって実現される。次に、本発明による方法および
システムをより具体的に例示するために、そのようなシ
ステムの一実施例のブロック図を図示した図4を参照さ
れたい。
R102に名前変更してエミュレーション・コンテキス
ト切換えを浮動小数点コンテキスト切換えとして実行す
ることができるようにする様子を図示したブロック図で
ある。本発明によると、コンテキスト保管と復元のため
に、SPR対110が単一のFPR102を指すように
名前変更される。好ましい実施態様では、SPR対11
0はFPR16〜FPR31に名前変更される。
R102には、FPR102の最新の値を指す指示
(D)ビット112が関連づけられている。Dビット1
12は、ゲスト・アプリケーションがSPR対110の
内容とそれに対応するFPR102の内容のどちらにア
クセスすべきかを指示する。好ましい実施態様では、D
ビット112は、「1」の場合は、SPR54に最新の
値が入っていることを示し、「0」の場合は、FPR1
02に最新の値が入っていることを示す。本発明は、S
PR対110をFPR102に名前変更することによっ
て、EAUコンテキスト切換え機能をユーザ・レベル命
令のみを使用してプロセッサ10に付加することができ
るようにし、それによってオペレーティング・システム
の更新を回避する。
たフロー・チャートである。FPR102は、EAUコ
ンテキスト切換え時にFPR16〜FPR31を更新す
るユーザ・レベルEAU命令が使用するか、またはユー
ザ・レベル浮動小数点命令が使用することができる。ま
ず、ステップ120で、命令が浮動小数点命令である
か、SPR54を変更するEAU命令であるかが判断さ
れる。命令がFPR102を変更する浮動小数点命令の
場合、プロセスはステップ122に進む。
からFPR31にアクセスする。ある浮動小数点アプリ
ケーションがスワップアウトされた後にスワップインす
るとき、前にそのアプリケーションによって使用されて
いたFPR102を復元しなければならない。したがっ
て、Dビット112は浮動小数点命令の間にリセットさ
れる。したがって、命令がFPR16〜FPR31を読
み取る浮動小数点命令であり、Dビット112がステッ
プ122でリセットされる場合は、ステップ124でF
PU32が通常の浮動小数点演算を実行する。
イプを判断しなければならない。ステップ126で命令
がSPR54を変更する場合、ステップ128でそれに
対応するFPR102のDビット112が設定される。
ステップ130でEAU命令がコンテキスト保管であ
り、ステップ132でDビット112のうちのいずれか
がリセットされた場合、ステップ134でそれに対応す
るFPR102が保管される。ステップ136でDビッ
ト112のうちのいずれかがセットされた場合、ステッ
プ138でそれに対応するSPR対112が保管され
る。
ト復元の場合、ステップ142でFPR00〜FPR1
5が更新され、さらにFPR16〜FPR31でFPR
102およびSPR対112の両方が更新される。次
に、ロードされた特定のFPR102に最新の値が入っ
ているため、それらのFPR102に対応するDビット
112がリセットされる。
を与えないエミュレーション・コンテキスト保管および
復元を実現する方法およびシステムを開示した。これ
は、オペレーティング・システムがEAUコンテキスト
切換えを浮動小数点アプリケーションとして扱うように
EAU SPRをFPRに名前変更することによって実
現される。
したが、当業者ならこれらの実施態様の変形が本発明の
精神と範囲内に収まることが容易に理解されよう。した
がって、当業者は特許請求の範囲の精神と範囲から逸脱
することなく、多くの変更を加えることができる。
の事項を開示する。
スト・アプリケーション・コンテキスト切換え中に前記
オペレーティング・システムによって保管および復元さ
れる第1のレジスタとを含み、ホスト・アプリケーショ
ンを実行し、ゲスト・アプリケーションをエミュレート
するプロセッサにおいて、エミュレーション・コンテキ
スト切換え保管および復元を行う方法であって、(a)
ゲスト・アプリケーションをエミュレートする際に特殊
目的レジスタを前記第1のレジスタに名前変更するステ
ップと、(b)前記特殊目的レジスタのコンテキスト保
管および復元が前記オペレーティング・システムを変更
することなく前記第1のレジスタを介して実行される、
エミュレーション・コンテキスト切換えを実行するステ
ップとを含む方法。 (2)前記第1のレジスタが浮動小数点レジスタであ
る、上記(1)に記載の方法。 (3)ステップ(b)が、エミュレーション・コンテキ
スト切換えを浮動小数点アプリケーションとして実行す
るステップをさらに含む、上記(2)に記載の方法。 (4)ステップ(a)が、前記特殊目的レジスタおよび
前記浮動小数点レジスタのいずれに最新の値が含まれて
いるかを示すように前記特殊目的レジスタおよび前記浮
動小数点レジスタに指示ビットを関連づけるステップを
さらに含む、上記(3)に記載の方法。 (5)ステップ(b)が、前記特殊目的レジスタに最新
の値が含まれていることを示すように指示ビットをセッ
トするステップをさらに含む、上記(4)に記載の方
法。 (6)ステップ(b)が、前記浮動小数点レジスタに最
新の値が含まれていることを示すように指示ビットをリ
セットするステップをさらに含む、上記(5)に記載の
方法。 (7)ステップ(b)が、エミュレーション・コンテキ
スト保管を行うときに、前記指示ビットがセットされて
いれば前記特殊目的レジスタの内容を保管し、前記指示
ビットがリセットされていれば前記浮動小数点レジスタ
の内容を保管するステップをさらに含む、上記(6)に
記載の方法。 (8)ステップ(b)が、エミュレーション・コンテキ
スト復元を実行するときに、前記浮動小数点レジスタお
よび前記特殊目的レジスタをロードするステップと、前
記指示ビットをリセットするステップとを含む、上記
(7)に記載の方法。 (9)1対の特殊目的レジスタを浮動小数点レジスタに
名前変更する、上記(8)に記載の方法。 (10)ホスト・アプリケーションを実行し、ゲスト・
アプリケーションをエミュレートするプロセッサであっ
て、オペレーティング・システムと、ホスト・アプリケ
ーション・コンテキスト切換え中に前記オペレーティン
グ・システムによって保管および復元される第1のレジ
スタと、特殊目的レジスタと、前記ゲスト・アプリケー
ションをエミュレートするときに前記特殊目的レジスタ
を前記第1のレジスタに名前変更する手段と、前記オペ
レーティング・システムを変更せずに前記第1のレジス
タを介して前記特殊目的レジスタのエミュレーション・
コンテキスト保管および復元を実行する手段とを含むプ
ロセッサ。 (11)前記特殊目的レジスタのエミュレーション・コ
ンテキスト保管および復元を実行する手段がユーザ・レ
ベル命令である、上記(10)に記載のプロセッサ。 (12)前記第1のレジスタが浮動小数点レジスタであ
る、上記(11)に記載のプロセッサ。 (13)前記オペレーティング・システムがエミュレー
ション・コンテキスト保管および復元を浮動小数点アプ
リケーションとして実行する、上記(12)に記載のプ
ロセッサ。 (14)前記特殊目的レジスタおよび前記浮動小数点レ
ジスタのいずれに最新の値が含まれているかを示す、前
記特殊目的レジスタおよび前記浮動小数点レジスタに関
連づけられた指示ビットをさらに含む、上記(13)に
記載のプロセッサ。 (15)前記特殊目的レジスタに最新の値が含まれてい
ることを示すように前記指示ビットがセットされる、上
記(14)に記載のプロセッサ。 (16)前記浮動小数点レジスタに最新の値が含まれて
いることを示すように前記指示ビットがリセットされ
る、上記(15)に記載のプロセッサ。 (17)エミュレーション・コンテキスト保管を行うと
きに、前記指示ビットがセットされていれば前記オペレ
ーティング・システムが前記特殊目的レジスタの内容を
保管し、前記指示ビットがリセットされていれば前記オ
ペレーティング・システムが前記浮動小数点レジスタの
内容を保管する、上記(16)に記載のプロセッサ。 (18)エミュレーション・コンテキスト復元を行うと
きに、前記オペレーティング・システムが前記浮動小数
点レジスタおよび前記特殊目的レジスタをロードし、前
記指示ビットをリセットする、上記(17)に記載のプ
ロセッサ。 (19)1対の特殊目的レジスタが浮動小数点レジスタ
に名前変更される、上記(18)に記載のプロセッサ。 (20)ホスト・アプリケーションを実行し、ゲスト命
令を含むゲスト・アプリケーションをエミュレートする
プロセッサであって、ゲスト命令の機能をエミュレート
するためにセマンティック・ルーチンを特定のアドレス
に格納するメモリと、ゲスト命令に関連する複数の項目
を格納するための複数の特殊目的レジスタを含み、ゲス
ト命令をデコードし、対応するセマンティック・ルーチ
ンをディスパッチするエミュレーション援助ユニット
と、複数の浮動小数点レジスタを含み、特殊目的レジス
タの各対が特定の浮動小数点レジスタに名前変更され
る、ホスト・アプリケーションの浮動小数点命令を処理
する浮動小数点ユニットと、特殊目的レジスタの対およ
び該対に対応する浮動小数点レジスタのいずれに最新の
値が含まれているかを示すように、特殊目的レジスタの
各対と浮動小数点レジスタとに関連づけられた指示ビッ
トとを含み、オペレーティング・システムが指示ビット
に応答してエミュレーション・コンテキスト切換えを浮
動小数点アプリケーションとして実行し、特殊目的レジ
スタのコンテキスト保管および復元がオペレーティング
・システムを変更することなく浮動小数点レジスタを使
用して実行されることを特徴とするプロセッサ。
図示するブロック図である。
ック図である。
る。
示すブロック図である。
である。
Claims (20)
- 【請求項1】オペレーティング・システムと、ホスト・
アプリケーション・コンテキスト切換え中に前記オペレ
ーティング・システムによって保管および復元される第
1のレジスタとを含み、ホスト・アプリケーションを実
行し、ゲスト・アプリケーションをエミュレートするプ
ロセッサにおいて、エミュレーション・コンテキスト切
換え保管および復元を行う方法であって、 (a)ゲスト・アプリケーションをエミュレートする際
に特殊目的レジスタを前記第1のレジスタに名前変更す
るステップと、 (b)前記特殊目的レジスタのコンテキスト保管および
復元が前記オペレーティング・システムを変更すること
なく前記第1のレジスタを介して実行される、エミュレ
ーション・コンテキスト切換えを実行するステップとを
含む方法。 - 【請求項2】前記第1のレジスタが浮動小数点レジスタ
である、請求項1に記載の方法。 - 【請求項3】ステップ(b)が、エミュレーション・コ
ンテキスト切換えを浮動小数点アプリケーションとして
実行するステップをさらに含む、請求項2に記載の方
法。 - 【請求項4】ステップ(a)が、前記特殊目的レジスタ
および前記浮動小数点レジスタのいずれに最新の値が含
まれているかを示すように前記特殊目的レジスタおよび
前記浮動小数点レジスタに指示ビットを関連づけるステ
ップをさらに含む、請求項3に記載の方法。 - 【請求項5】ステップ(b)が、前記特殊目的レジスタ
に最新の値が含まれていることを示すように指示ビット
をセットするステップをさらに含む、請求項4に記載の
方法。 - 【請求項6】ステップ(b)が、前記浮動小数点レジス
タに最新の値が含まれていることを示すように指示ビッ
トをリセットするステップをさらに含む、請求項5に記
載の方法。 - 【請求項7】ステップ(b)が、エミュレーション・コ
ンテキスト保管を行うときに、前記指示ビットがセット
されていれば前記特殊目的レジスタの内容を保管し、前
記指示ビットがリセットされていれば前記浮動小数点レ
ジスタの内容を保管するステップをさらに含む、請求項
6に記載の方法。 - 【請求項8】ステップ(b)が、エミュレーション・コ
ンテキスト復元を実行するときに、前記浮動小数点レジ
スタおよび前記特殊目的レジスタをロードするステップ
と、 前記指示ビットをリセットするステップとを含む、請求
項7に記載の方法。 - 【請求項9】1対の特殊目的レジスタを浮動小数点レジ
スタに名前変更する、請求項8に記載の方法。 - 【請求項10】ホスト・アプリケーションを実行し、ゲ
スト・アプリケーションをエミュレートするプロセッサ
であって、 オペレーティング・システムと、 ホスト・アプリケーション・コンテキスト切換え中に前
記オペレーティング・システムによって保管および復元
される第1のレジスタと、 特殊目的レジスタと、 前記ゲスト・アプリケーションをエミュレートするとき
に前記特殊目的レジスタを前記第1のレジスタに名前変
更する手段と、 前記オペレーティング・システムを変更せずに前記第1
のレジスタを介して前記特殊目的レジスタのエミュレー
ション・コンテキスト保管および復元を実行する手段と
を含むプロセッサ。 - 【請求項11】前記特殊目的レジスタのエミュレーショ
ン・コンテキスト保管および復元を実行する手段がユー
ザ・レベル命令である、請求項10に記載のプロセッ
サ。 - 【請求項12】前記第1のレジスタが浮動小数点レジス
タである、請求項11に記載のプロセッサ。 - 【請求項13】前記オペレーティング・システムがエミ
ュレーション・コンテキスト保管および復元を浮動小数
点アプリケーションとして実行する、請求項12に記載
のプロセッサ。 - 【請求項14】前記特殊目的レジスタおよび前記浮動小
数点レジスタのいずれに最新の値が含まれているかを示
す、前記特殊目的レジスタおよび前記浮動小数点レジス
タに関連づけられた指示ビットをさらに含む、請求項1
3に記載のプロセッサ。 - 【請求項15】前記特殊目的レジスタに最新の値が含ま
れていることを示すように前記指示ビットがセットされ
る、請求項14に記載のプロセッサ。 - 【請求項16】前記浮動小数点レジスタに最新の値が含
まれていることを示すように前記指示ビットがリセット
される、請求項15に記載のプロセッサ。 - 【請求項17】エミュレーション・コンテキスト保管を
行うときに、前記指示ビットがセットされていれば前記
オペレーティング・システムが前記特殊目的レジスタの
内容を保管し、前記指示ビットがリセットされていれば
前記オペレーティング・システムが前記浮動小数点レジ
スタの内容を保管する、請求項16に記載のプロセッ
サ。 - 【請求項18】エミュレーション・コンテキスト復元を
行うときに、前記オペレーティング・システムが前記浮
動小数点レジスタおよび前記特殊目的レジスタをロード
し、前記指示ビットをリセットする、請求項17に記載
のプロセッサ。 - 【請求項19】1対の特殊目的レジスタが浮動小数点レ
ジスタに名前変更される、請求項18に記載のプロセッ
サ。 - 【請求項20】ホスト・アプリケーションを実行し、ゲ
スト命令を含むゲスト・アプリケーションをエミュレー
トするプロセッサであって、 ゲスト命令の機能をエミュレートするためにセマンティ
ック・ルーチンを特定のアドレスに格納するメモリと、 ゲスト命令に関連する複数の項目を格納するための複数
の特殊目的レジスタを含み、ゲスト命令をデコードし、
対応するセマンティック・ルーチンをディスパッチする
エミュレーション援助ユニットと、 複数の浮動小数点レジスタを含み、特殊目的レジスタの
各対が特定の浮動小数点レジスタに名前変更される、ホ
スト・アプリケーションの浮動小数点命令を処理する浮
動小数点ユニットと、 特殊目的レジスタの対および該対に対応する浮動小数点
レジスタのいずれに最新の値が含まれているかを示すよ
うに、特殊目的レジスタの各対と浮動小数点レジスタと
に関連づけられた指示ビットとを含み、 オペレーティング・システムが指示ビットに応答してエ
ミュレーション・コンテキスト切換えを浮動小数点アプ
リケーションとして実行し、特殊目的レジスタのコンテ
キスト保管および復元がオペレーティング・システムを
変更することなく浮動小数点レジスタを使用して実行さ
れることを特徴とするプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/581,794 US5812823A (en) | 1996-01-02 | 1996-01-02 | Method and system for performing an emulation context save and restore that is transparent to the operating system |
US08/581794 | 1996-01-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09198255A true JPH09198255A (ja) | 1997-07-31 |
JP3193650B2 JP3193650B2 (ja) | 2001-07-30 |
Family
ID=24326589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33322996A Expired - Fee Related JP3193650B2 (ja) | 1996-01-02 | 1996-12-13 | オペレーティング・システムに影響を与えないエミュレーション・コンテキストの保管と復元を行う方法およびシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5812823A (ja) |
JP (1) | JP3193650B2 (ja) |
KR (1) | KR100258650B1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002543490A (ja) * | 1999-04-27 | 2002-12-17 | トランジティブ テクノロジーズ リミテッド | プログラムコード変換において使用する例外処理の方法および装置 |
JP2011516972A (ja) * | 2008-04-02 | 2011-05-26 | クゥアルコム・インコーポレイテッド | 複数のタスクにわたる複数のオペレーティングシステム・サブプロセスの共有 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5995743A (en) * | 1997-09-22 | 1999-11-30 | International Business Machines Corporation | Method and system for interrupt handling during emulation in a data processing system |
US6230259B1 (en) * | 1997-10-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Transparent extended state save |
US7464044B2 (en) * | 1998-12-08 | 2008-12-09 | International Business Machines Corporation | Method and system for using emulation objects for developing point of sale |
US6560449B1 (en) * | 2000-06-12 | 2003-05-06 | Broadcom Corporation | Image-rejection I/Q demodulators |
DE60130836T2 (de) * | 2000-06-12 | 2008-07-17 | Broadcom Corp., Irvine | Architektur und Verfahren zur Kontextumschaltung |
US6778594B1 (en) | 2000-06-12 | 2004-08-17 | Broadcom Corporation | Receiver architecture employing low intermediate frequency and complex filtering |
US6807627B2 (en) * | 2001-01-19 | 2004-10-19 | Hewlett-Packard Development Company, L.P. | Preserving the content of a first register without affecting the content of a second register |
US7225446B2 (en) * | 2001-02-20 | 2007-05-29 | Pts Corporation | Context preservation |
GB2372348B (en) * | 2001-02-20 | 2003-06-04 | Siroyan Ltd | Context preservation |
US6980946B2 (en) * | 2001-03-15 | 2005-12-27 | Microsoft Corporation | Method for hybrid processing of software instructions of an emulated computer system |
US6901298B1 (en) | 2002-09-30 | 2005-05-31 | Rockwell Automation Technologies, Inc. | Saving and restoring controller state and context in an open operating system |
ES2315469T3 (es) * | 2003-04-09 | 2009-04-01 | Virtuallogix Sa | Sistemas operativos. |
US8612992B2 (en) * | 2003-04-09 | 2013-12-17 | Jaluna Sa | Operating systems |
EP1503286B1 (en) * | 2003-07-30 | 2014-09-03 | Jaluna SA | Multiple operating system networking |
JP2007509387A (ja) * | 2003-09-30 | 2007-04-12 | ジャルナ エスアー | オペレーティングシステム |
KR101205325B1 (ko) * | 2006-05-12 | 2012-11-29 | 삼성전자주식회사 | 시뮬레이션 시스템 및 그 방법 |
KR101282963B1 (ko) | 2006-05-12 | 2013-07-08 | 삼성전자주식회사 | 에뮬레이션 시스템 및 그 방법 |
DE102007025397B4 (de) * | 2007-05-31 | 2010-07-15 | Advanced Micro Devices, Inc., Sunnyvale | System mit mehreren Prozessoren und Verfahren zu seinem Betrieb |
US9916173B2 (en) * | 2013-11-25 | 2018-03-13 | Red Hat Israel, Ltd. | Facilitating execution of MMIO based instructions |
US9846610B2 (en) | 2016-02-08 | 2017-12-19 | Red Hat Israel, Ltd. | Page fault-based fast memory-mapped I/O for virtual machines |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4445173A (en) * | 1981-09-11 | 1984-04-24 | Data General Corporation | Improved system for saving and restoring state in call and return operations |
US4514803A (en) * | 1982-04-26 | 1985-04-30 | International Business Machines Corporation | Methods for partitioning mainframe instruction sets to implement microprocessor based emulation thereof |
US4591982A (en) * | 1983-08-29 | 1986-05-27 | International Business Machines Corporation | Storage selection override apparatus for a multimicroprocessor implemented data processing system |
US4714993A (en) * | 1983-10-18 | 1987-12-22 | International Business Machines Corporation | Apparatus and method for effecting dynamic address translation in a microprocessor implemented data processing system |
JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
US4841476A (en) * | 1986-10-06 | 1989-06-20 | International Business Machines Corporation | Extended floating point operations supporting emulation of source instruction execution |
US4926322A (en) * | 1987-08-03 | 1990-05-15 | Compag Computer Corporation | Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management |
US5142677A (en) * | 1989-05-04 | 1992-08-25 | Texas Instruments Incorporated | Context switching devices, systems and methods |
US4888680A (en) * | 1987-10-14 | 1989-12-19 | Little Blue Limited Partnership | Peripheral device interface and controller |
JP2589713B2 (ja) * | 1987-11-20 | 1997-03-12 | 株式会社日立製作所 | データプロセッサ及びデータ処理システム |
US5008812A (en) * | 1988-03-18 | 1991-04-16 | Digital Equipment Corporation | Context switching method and apparatus for use in a vector processing system |
US5012403A (en) * | 1988-04-01 | 1991-04-30 | Digital Equipment Corporation | Apparatus and method for replaying decoded instructions |
JPH02208740A (ja) * | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | 仮想計算機制御方式 |
US5179691A (en) * | 1989-04-12 | 1993-01-12 | Unisys Corporation | N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M |
US5283868A (en) * | 1989-05-17 | 1994-02-01 | International Business Machines Corp. | Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system |
US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
JPH0337723A (ja) * | 1989-07-05 | 1991-02-19 | Hitachi Ltd | 情報処理装置 |
JPH0353328A (ja) * | 1989-07-20 | 1991-03-07 | Hitachi Ltd | レジスタ退避回復方法ならびに処理装置 |
GB2234613B (en) * | 1989-08-03 | 1993-07-07 | Sun Microsystems Inc | Method and apparatus for switching context of state elements in a microprocessor |
US5230069A (en) * | 1990-10-02 | 1993-07-20 | International Business Machines Corporation | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system |
EP0501613A3 (en) * | 1991-02-28 | 1993-09-01 | Hewlett-Packard Company | Heterogeneous software configuration management apparatus |
US5507030A (en) * | 1991-03-07 | 1996-04-09 | Digitial Equipment Corporation | Successive translation, execution and interpretation of computer program having code at unknown locations due to execution transfer instructions having computed destination addresses |
US5321828A (en) * | 1991-06-07 | 1994-06-14 | Step Engineering | High speed microcomputer in-circuit emulator |
US5524250A (en) * | 1991-08-23 | 1996-06-04 | Silicon Graphics, Inc. | Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers |
EP0529303A3 (en) * | 1991-08-29 | 1993-09-22 | International Business Machines Corporation | Checkpoint synchronization with instruction overlap enabled |
US5448707A (en) * | 1991-10-29 | 1995-09-05 | Intel Corporation | Mechanism to protect data saved on a local register cache during inter-subsystem calls and returns |
US5438669A (en) * | 1991-11-20 | 1995-08-01 | Hitachi, Ltd. | Data processor with improved loop handling utilizing improved register allocation |
AU3424293A (en) * | 1992-01-02 | 1993-07-28 | Amdahl Corporation | Computer system with two levels of guests |
US5386563A (en) * | 1992-10-13 | 1995-01-31 | Advanced Risc Machines Limited | Register substitution during exception processing |
US5428779A (en) * | 1992-11-09 | 1995-06-27 | Seiko Epson Corporation | System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions |
US5367661A (en) * | 1992-11-19 | 1994-11-22 | International Business Machines Corporation | Technique for controlling channel operations in a host computer by updating signals defining a dynamically alterable channel program |
WO1994027214A1 (en) * | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding sequences of guest instructions for a host computer |
AU6629894A (en) * | 1993-05-07 | 1994-12-12 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
US5555414A (en) * | 1994-12-14 | 1996-09-10 | International Business Machines Corporation | Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals |
-
1996
- 1996-01-02 US US08/581,794 patent/US5812823A/en not_active Expired - Lifetime
- 1996-10-30 KR KR1019960050004A patent/KR100258650B1/ko not_active IP Right Cessation
- 1996-12-13 JP JP33322996A patent/JP3193650B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002543490A (ja) * | 1999-04-27 | 2002-12-17 | トランジティブ テクノロジーズ リミテッド | プログラムコード変換において使用する例外処理の方法および装置 |
JP2011516972A (ja) * | 2008-04-02 | 2011-05-26 | クゥアルコム・インコーポレイテッド | 複数のタスクにわたる複数のオペレーティングシステム・サブプロセスの共有 |
JP2013232215A (ja) * | 2008-04-02 | 2013-11-14 | Qualcomm Inc | 複数のタスクにわたる複数のオペレーティングシステム・サブプロセスの共有 |
US9015727B2 (en) | 2008-04-02 | 2015-04-21 | Qualcomm Incorporated | Sharing operating system sub-processes across tasks |
Also Published As
Publication number | Publication date |
---|---|
US5812823A (en) | 1998-09-22 |
KR100258650B1 (ko) | 2000-06-15 |
JP3193650B2 (ja) | 2001-07-30 |
KR970059925A (ko) | 1997-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3193650B2 (ja) | オペレーティング・システムに影響を与えないエミュレーション・コンテキストの保管と復元を行う方法およびシステム | |
US5953520A (en) | Address translation buffer for data processing system emulation mode | |
US8473718B2 (en) | Java hardware accelerator using microcode engine | |
EP0950216B1 (en) | A processing device for executing virtual machine instructions | |
US5870575A (en) | Indirect unconditional branches in data processing system emulation mode | |
JP3615770B2 (ja) | アドレスされた構成部分の思索の失敗を検出するメモリ・コントローラ | |
US6122638A (en) | Object-oriented processor and method for caching intermediate data in an object-oriented processor | |
US8185882B2 (en) | Java virtual machine hardware for RISC and CISC processors | |
US7124286B2 (en) | Establishing an operating mode in a processor | |
US5956495A (en) | Method and system for processing branch instructions during emulation in a data processing system | |
US5995743A (en) | Method and system for interrupt handling during emulation in a data processing system | |
US20010010072A1 (en) | Instruction translator translating non-native instructions for a processor into native instructions therefor, instruction memory with such translator, and data processing apparatus using them | |
US20130339697A1 (en) | Branch prediction preloading | |
JP3776132B2 (ja) | マイクロプロセッサの改良 | |
US8769508B2 (en) | Virtual machine hardware for RISC and CISC processors | |
US5758140A (en) | Method and system for emulating instructions by performing an operation directly using special-purpose register contents | |
US5732235A (en) | Method and system for minimizing the number of cycles required to execute semantic routines | |
JP3621116B2 (ja) | 先進のプロセッサのための変換メモリ保護装置 | |
KR100267434B1 (ko) | 제 1 처리 환경내에서 제 1 명령어를 에뮬레이션 환경내에서의제 2 명령어 처리 개시에 응하여 처리하는 방법 및 시스템 | |
KR100522468B1 (ko) | 타겟 프로세서의 상태를 일시적으로 홀딩하는 장치를 갖는 호스트 마이크로프로세서 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080525 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080525 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090525 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100525 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110525 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110525 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120525 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120525 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130525 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140525 Year of fee payment: 13 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
LAPS | Cancellation because of no payment of annual fees |