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
Application number
JP8333229A
Other languages
English (en)
Other versions
JP3193650B2 (ja
Inventor
A Curley James
ジェームズ・エイ・カーレ
Mallick Soummya
ソウンミャ・マリック
Martin De Nicholas Arthur
アルトゥーロ・マルティン=デ=ニコラス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH09198255A publication Critical patent/JPH09198255A/ja
Application granted granted Critical
Publication of JP3193650B2 publication Critical patent/JP3193650B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/46Multiprogramming arrangements
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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/45533Hypervisors; Virtual machine monitors
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving 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

(57)【要約】 (修正有) 【課題】 ホスト・アプリケーションを実行し、ゲスト
・アプリケーションをエミュレートするプロセッサにお
いてエミュレーション・コンテキスト保管および復元を
行う方法およびシステムを提供する。 【解決手段】 このプロセッサは、オペレーティング・
システムと、ホスト・アプリケーション・コンテキスト
切換え中にオペレーティング・システムによって保管お
よび復元される第1のレジスタとを含む。この方法およ
びシステムは、ゲスト・アプリケーションをエミュレー
トするときに特殊目的レジスタを第1のレジスタに名前
変更するステップを含む。エミュレーション・コンテキ
スト切換えが行われると、オペレーティング・システム
を変更することなく第1のレジスタを使用して特殊目的
レジスタのコンテキスト保管および復元が実行される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ホスト・プロセッ
サにおいてゲスト命令をエミュレートする方法およびシ
ステムに関し、より特定的にはオペレーティング・シス
テムに影響を与えないエミュレーション・コンテキスト
保管を行う方法およびシステムに係わる。
【0002】
【従来の技術】ソフトウェアにおいて、インテルx86
命令セットなどのゲスト命令セットをモトローラPow
erPC(TM)などのホスト・プロセッサ上でエミュ
レートする方法は2通りある。第1の方法はインタプリ
テーションと呼ばれ、インタプリタを使用し、第2の方
法は動的変換と呼ばれ、ダイナミック・トランスレータ
を使用する。インタプリタは、従来のホスト・プロセッ
サにおいてハードウェアによって行われるフェッチ、デ
コード、および実行サイクルを模倣する。ダイナミック
・トランスレータは、1ブロックのゲスト命令をフェッ
チし、デコードし、それをホスト命令に変換し、さらに
それが再使用される。それぞれの方法に強みと弱点があ
る。
【0003】インタプリタは一般にダイナミック・トラ
ンスレータよりメモリの使用量は少ないが、実行速度が
遅い。ダイナミック・トランスレータは、ゲスト・プロ
グラムに頻繁に再使用される部分が含まれている場合に
パフォーマンスが良い。しかし、ダイナミック・トラン
スレータは、前に変換された部分をゲスト・プログラム
が修正する場合、パフォーマンスが劣る。
【0004】本出願人は、両方の方法の優れた特性、す
なわちインタプリタの小さなサイズとダイナミック・ト
ランスレータの実行速度とを備える解決策を得るため
に、ソフトウェア・エミュレーション方法を援助するハ
ードウェアを開発した。この援助ハードウェアを使用す
る前に、各ゲスト命令の機能を実行するのに必要なホス
ト命令のシーケンスを、セマンティック・ルーチンと呼
ばれる別々の機能にコンパイルし、メモリに記憶する。
このハードウェアはホスト・プロセッサにおいてソフト
ウェアと共に機能して、ゲスト命令をフェッチし、それ
らをデコードし、それに対応するセマンティック・ルー
チンをディスパッチする。
【0005】マルチスレッド・プロセッサは、一度にい
くつかのアプリケーションを実行することができる。こ
のプロセッサは、各アプリケーションについて別々のプ
ロセスを作成し、プロセッサのオペレーティング・シス
テムは、1つのプロセスをスワップアウトし、次に別の
プロセスをスワップインすることによって、プロセッサ
にプロセス間でタイム・スライシングを行わせる。これ
はコンテキスト切換えと呼ばれる。プロセッサがプロセ
スを実行するとき、命令と変数が一時的に汎用レジスタ
と浮動小数点レジスタに格納される。コンテキスト切換
え中にプロセスがスワップアウトされると、オペレーテ
ィング・システムはそのプロセスが使用しているレジス
タの内容を保管する。これをコンテキスト保管と呼ぶ。
後でプロセスをスワップインにより戻すとき、オペレー
ティング・システムはレジスタの内容を復元する。これ
をコンテキスト復元と呼ぶ。
【0006】プロセッサが2つのゲスト・アプリケーシ
ョン間でタイム・スライシングを実行しようとすれば、
ハードウェア援助ユニットでもコンテキスト切換えが行
われることになる。しかし、ハードウェア援助ユニット
は、現行オペレーティング・システムがコンテキスト保
管および復元を実行することができない特殊目的レジス
タを使用する。
【0007】
【発明が解決しようとする課題】この問題の解決策は、
オペレーティング・システムが特殊目的レジスタでコン
テキスト保管と復元を実行することができるようにする
ことであろう。しかし、これにはAIXやシステム7な
どすべてのネイティブ・オペレーティング・システムに
修正を加える必要がある。一般には、オペレーティング
・システムの修正は、そのオペレーティング・システム
の次のリリースまで実施されず、これには通常数年を要
する。したがって、ゲスト・アプリケーションに対して
エミュレーション・コンテキスト切換えを実行すること
ができるプロセッサが利用可能になるのがそれに応じて
遅れることになる。
【0008】したがって、必要なのはオペレーティング
・システムに影響を与えないエミュレーション・コンテ
キスト保管と復元を実行するシステムと方法である。本
発明はこのような必要に対処する。
【0009】
【課題を解決するための手段】本発明は、ホスト・アプ
リケーションを実行し、ゲスト・アプリケーションをエ
ミュレートする、プロセッサにおけるエミュレーション
・コンテキスト切換え保管および復元を行う方法とシス
テムである。このプロセッサは、オペレーティング・シ
ステムと、ホスト・アプリケーション・コンテキスト切
換え中にオペレーティング・システムによって保管およ
び復元される第1のレジスタとを備える。この方法およ
びシステムは、ゲスト・アプリケーションをエミュレー
トするときに特殊目的レジスタを第1のレジスタに名前
変更するステップを含む。エミュレーション・コンテキ
スト切換えが行われると、オペレーティング・システム
の修正を行わずに第1のレジスタを使用して特殊目的レ
ジスタのコンテキスト保管と復元が実行される。
【0010】本明細書で開示するシステムおよび方法に
よると、本発明はユーザ・レベル命令のみを使用して、
プロセッサにエミュレーション・コンテキスト切換え機
能を付加することができるようにし、それによってオペ
レーティング・システムに更新を加えなくても済むよう
にする。
【0011】
【発明の実施の形態】本発明はホスト・プロセッサにお
けるゲスト命令のエミュレーションの改善に関する。以
下の説明は、当業者が本発明を実施することができるよ
うに示す。好ましい実施態様の様々な変更は当業者には
容易に明らかになろうし、本明細書に記載の一般原理は
他の実施態様にも適用可能である。したがって、本発明
は提示する実施態様には限定されることを意図したもの
ではなく、本明細書に記載の原理および特徴と矛盾のな
い最も広い範囲を与えられるものである。
【0012】図1は、ホスト・プロセッサ10の高水準
アーキテクチャを図示したブロック図である。典型的に
は、プロセッサ10は、メモリ12、レベル2(L2)
キャッシュ14、データ・キャッシュ16、命令キャッ
シュ(IC)18、命令キュー(IQ)20、分岐予測
ユニット22、機能ユニット24〜32、完了ユニット
34などの様々なハードウェア構成要素を使用して、ネ
イティブ・ソフトウェア命令を実行する。
【0013】本発明の好ましい実施態様では、プロセッ
サ10はPowerPC(PPC)命令セットを実行す
るモトローラ製のPowerPCである。PPC命令セ
ットを実行するほかに、プロセッサ10はインテルx8
6命令およびモトローラ68K複合命令セットコンピュ
ータ(CISC)命令など複数のゲスト命令38のエミ
ュレーションも行うことができる。
【0014】プロセッサ10がゲスト命令38をエミュ
レートするのを援助する役割を果たす構成要素は、エミ
ュレーション援助ユニット(EAU)36である。プロ
セッサ10がゲスト命令38をエミュレートすることが
できるようにするため、各ゲスト命令38はまず、ホス
ト・プロセッサ10でゲスト命令38の機能を実行する
セマンティック・ルーチン40と呼ばれる対応する1組
のホスト命令に変換される。各セマンティック・ルーチ
ン40は、メモリ12内の特定のアドレス場所に格納さ
れる。ゲスト命令38(およびデータ)もメモリ12に
格納される。
【0015】動作時、プロセッサ10はゲスト命令38
とデータをそれぞれL2キャッシュ14とデータ・キャ
ッシュ16とにキャッシュする。EAU36がゲスト命
令38をフェッチしてデコードし、次に各ゲスト命令3
8を対応するセマンティック・ルーチン40のホスト・
メモリ・アドレスにマッピングする。プロセッサ10
は、指定されたメモリ・アドレスにあるセマンティック
・ルーチン40をフェッチして命令キャッシュ18に入
れる。次に、セマンティック・ルーチン40に含まれる
ホスト命令がIQ20に送られる。次に、分岐予測ユニ
ット22と機能ユニット24〜32を使用して各ホスト
命令がデコードされ、実行される。セマンティック・ル
ーチン40が実行され、その結果が完了ユニット34に
格納された後、EAU36が次のゲスト命令38のホス
ト・アドレスをマッピングし、このプロセスが繰り返さ
れる。
【0016】次に図2を参照すると、EAU36のブロ
ック図が図示されている。EAU36は、命令バッファ
50と、プリフェッチ・ユニット52と、特殊目的レジ
スタ(SPR)54と、デコード・ユニット56と、分
岐履歴テーブル58と、タグ生成ユニット60と、ゲス
ト・キャッシュ(gキャッシュ)62と、gキャッシュ
命令キュー64とを含む。EAU36の機能は、ダイレ
クト・マッピング方式を使用してプロセッサ10がゲス
ト命令38をエミュレートするのを援助することであ
る。
【0017】まず、プリフェッチ・ユニット52によっ
てデータ・キャッシュ16からゲスト命令38がプリフ
ェッチされる。次に、ゲスト命令38は命令バッファ5
0にロードされ、デコード・ユニット56に転送され
る。ホスト・アドレスへのゲスト命令38のダイレクト
・マッピングはその構文によって複雑になるため、デコ
ード・ユニット56を使用してゲスト命令38を構文解
析またはデコードして、長さ、分岐タイプ、および即値
データを判断する。命令38が分岐命令の場合、分岐履
歴テーブル58を使用して次のプリフェッチ・アドレス
を予測する。
【0018】gキャッシュ62は、各セマンティック・
ルーチン40の項目とそれに対応するホスト・メモリ・
アドレスとを含む配列である。ゲスト命令38がデコー
ドされた後、タグ生成ユニット60が命令38を固有の
命令コード・タグに変換し、その命令コード・タグが、
対応するセマンティック・ルーチン40アドレスにアク
セスするためにgキャッシュ62への索引として使用さ
れる。
【0019】ゲスト命令38がデコードされ、それに対
応するセマンティック・ルーチン40がわかると、その
セマンティック・ルーチン40とそのアドレスがgキャ
ッシュ命令キュー64に格納される。命令キュー64内
の各項目は、セマンティック・ルーチン40のホスト・
アドレス(PPC)と、ゲスト命令38に含まれていた
即値データ(IMM)と、ゲスト命令ポインタ(IP)
とを含む。
【0020】図1と図2の両方を参照すると、プロセッ
サ10は実行のために線66を介して命令キュー64か
ら最初の項目をフェッチし、メモリ12から適切なセマ
ンティック・ルーチン40を取り出す。各セマンティッ
ク・ルーチン40内の最後の命令は分岐命令であり、好
ましい実施態様ではその分岐命令はゲスト・ディスパッ
チ完了(GDISC)命令68である。プロセッサ10
がGDISC命令68をフェッチし、デコードすると、
それによってプロセッサ10は線68を介して命令キュ
ー64から次のセマンティック・ルーチン40のアドレ
スをフェッチする。
【0021】好ましい実施態様では、次に実行されるセ
マンティック・ルーチン40のアドレスは現行命令ポイ
ンタ(IP)70に格納されている。GDISC命令6
8のデコードによって、次IP72が現行IP72に移
される。好ましい実施態様では、GDISC命令は無条
件分岐命令であるが、プロセッサに次のセマンティック
・ルーチンをフェッチさせる命令であればどのような命
令でも使用することができる。
【0022】再び図1を参照すると、ゲスト・アプリケ
ーション内のゲスト命令38をエミュレートするほか
に、プロセッサ10は、アプリケーション間のタイム・
スライシングによっていくつかのホスト・アプリケーシ
ョンをマルチスレッド化することができる。プロセッサ
10によって実行されるホスト・アプリケーションの中
には浮動小数点演算を実行するものがあり、それらは浮
動小数点ユニット(FPU)32によって処理される。
【0023】図3は浮動小数点ユニット32のブロック
図である。浮動小数点ユニット32は、乗算−加算配列
100と、32個(0〜31)の浮動小数点レジスタ
(FPR)102とを含む。乗算−加算配列100は、
乗算、加算、除算、乗算−加算などの浮動小数点演算を
行う。FPR102は、浮動小数点アプリケーションが
実行されるときに浮動小数点アプリケーションによって
生成された値を格納するために使用される。
【0024】コンテキスト切換え時に浮動小数点アプリ
ケーションがスワップアウトされるとき、オペレーティ
ング・システム(OS)104は、アプリケーションに
よって使用されるFPR102で以下のようにしてコン
テキスト保管を行う。後で浮動小数点命令を実行する別
のアプリケーションがスワップインされると、浮動小数
点命令によって浮動小数点利用不能(FPNA)例外と
呼ばれる例外が起こる。FPNA例外は、オペレーティ
ング・システム104に直前のアプリケーションの内容
を保管させ、FPNAをリセットさせて、新しいアプリ
ケーションがFPR102を使用することができるよう
にする割込みである。
【0025】再び図2を参照すると、前述のように、ゲ
スト・アプリケーション(ゲスト命令を含むアプリケー
ション)は、SPR54にアクセスするEAU36によ
ってエミュレートされる。しかし、現行オペレーティン
グ・システム104はSPR54でのコンテキスト保管
と復元を行うことができない。したがって、エミュレー
ション・コンテキスト切換えが行われるとき、SPR5
4にアクセスするようにオペレーティング・システム1
04を修正しない限り、プロセッサ10で2つのゲスト
・アプリケーションをマルチスレッド化することはでき
ない。前述のように、オペレーティング・システムのこ
のような修正は何年間も実施されることがなく、その結
果、ゲスト・アプリケーションをマルチスレッド化する
ことができるプロセッサ10が利用可能になるのは遅く
なる。
【0026】本発明は、オペレーティング・システム1
04を修正することなくエミュレーション・コンテキス
ト保管および復元を行う方法およびシステムである。こ
れは、オペレーティング・システム104がEAUコン
テキスト切換えを浮動小数点アプリケーションとして扱
うように、SPR54をFPR102に名前変更するこ
とによって実現される。次に、本発明による方法および
システムをより具体的に例示するために、そのようなシ
ステムの一実施例のブロック図を図示した図4を参照さ
れたい。
【0027】図4は、本発明によってSPR54をFP
R102に名前変更してエミュレーション・コンテキス
ト切換えを浮動小数点コンテキスト切換えとして実行す
ることができるようにする様子を図示したブロック図で
ある。本発明によると、コンテキスト保管と復元のため
に、SPR対110が単一のFPR102を指すように
名前変更される。好ましい実施態様では、SPR対11
0はFPR16〜FPR31に名前変更される。
【0028】SPR対110およびそれに対応するFP
R102には、FPR102の最新の値を指す指示
(D)ビット112が関連づけられている。Dビット1
12は、ゲスト・アプリケーションがSPR対110の
内容とそれに対応するFPR102の内容のどちらにア
クセスすべきかを指示する。好ましい実施態様では、D
ビット112は、「1」の場合は、SPR54に最新の
値が入っていることを示し、「0」の場合は、FPR1
02に最新の値が入っていることを示す。本発明は、S
PR対110をFPR102に名前変更することによっ
て、EAUコンテキスト切換え機能をユーザ・レベル命
令のみを使用してプロセッサ10に付加することができ
るようにし、それによってオペレーティング・システム
の更新を回避する。
【0029】図5は、本発明の一般的動作規則を図示し
たフロー・チャートである。FPR102は、EAUコ
ンテキスト切換え時にFPR16〜FPR31を更新す
るユーザ・レベルEAU命令が使用するか、またはユー
ザ・レベル浮動小数点命令が使用することができる。ま
ず、ステップ120で、命令が浮動小数点命令である
か、SPR54を変更するEAU命令であるかが判断さ
れる。命令がFPR102を変更する浮動小数点命令の
場合、プロセスはステップ122に進む。
【0030】浮動小数点アプリケーションがFPR16
からFPR31にアクセスする。ある浮動小数点アプリ
ケーションがスワップアウトされた後にスワップインす
るとき、前にそのアプリケーションによって使用されて
いたFPR102を復元しなければならない。したがっ
て、Dビット112は浮動小数点命令の間にリセットさ
れる。したがって、命令がFPR16〜FPR31を読
み取る浮動小数点命令であり、Dビット112がステッ
プ122でリセットされる場合は、ステップ124でF
PU32が通常の浮動小数点演算を実行する。
【0031】命令がEAU命令の場合、EAU命令のタ
イプを判断しなければならない。ステップ126で命令
がSPR54を変更する場合、ステップ128でそれに
対応するFPR102のDビット112が設定される。
ステップ130でEAU命令がコンテキスト保管であ
り、ステップ132でDビット112のうちのいずれか
がリセットされた場合、ステップ134でそれに対応す
るFPR102が保管される。ステップ136でDビッ
ト112のうちのいずれかがセットされた場合、ステッ
プ138でそれに対応するSPR対112が保管され
る。
【0032】ステップ140でEAU命令がコンテキス
ト復元の場合、ステップ142でFPR00〜FPR1
5が更新され、さらにFPR16〜FPR31でFPR
102およびSPR対112の両方が更新される。次
に、ロードされた特定のFPR102に最新の値が入っ
ているため、それらのFPR102に対応するDビット
112がリセットされる。
【0033】以上、オペレーティング・システムに影響
を与えないエミュレーション・コンテキスト保管および
復元を実現する方法およびシステムを開示した。これ
は、オペレーティング・システムがEAUコンテキスト
切換えを浮動小数点アプリケーションとして扱うように
EAU SPRをFPRに名前変更することによって実
現される。
【0034】本発明について図の実施態様に従って説明
したが、当業者ならこれらの実施態様の変形が本発明の
精神と範囲内に収まることが容易に理解されよう。した
がって、当業者は特許請求の範囲の精神と範囲から逸脱
することなく、多くの変更を加えることができる。
【0035】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0036】(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)前記特殊目的レジスタおよび前記浮動小数点レ
ジスタのいずれに最新の値が含まれているかを示す、前
記特殊目的レジスタおよび前記浮動小数点レジスタに関
連づけられた指示ビットをさらに含む、上記(13)に
記載のプロセッサ。 (15)前記特殊目的レジスタに最新の値が含まれてい
ることを示すように前記指示ビットがセットされる、上
記(14)に記載のプロセッサ。 (16)前記浮動小数点レジスタに最新の値が含まれて
いることを示すように前記指示ビットがリセットされ
る、上記(15)に記載のプロセッサ。 (17)エミュレーション・コンテキスト保管を行うと
きに、前記指示ビットがセットされていれば前記オペレ
ーティング・システムが前記特殊目的レジスタの内容を
保管し、前記指示ビットがリセットされていれば前記オ
ペレーティング・システムが前記浮動小数点レジスタの
内容を保管する、上記(16)に記載のプロセッサ。 (18)エミュレーション・コンテキスト復元を行うと
きに、前記オペレーティング・システムが前記浮動小数
点レジスタおよび前記特殊目的レジスタをロードし、前
記指示ビットをリセットする、上記(17)に記載のプ
ロセッサ。 (19)1対の特殊目的レジスタが浮動小数点レジスタ
に名前変更される、上記(18)に記載のプロセッサ。 (20)ホスト・アプリケーションを実行し、ゲスト命
令を含むゲスト・アプリケーションをエミュレートする
プロセッサであって、ゲスト命令の機能をエミュレート
するためにセマンティック・ルーチンを特定のアドレス
に格納するメモリと、ゲスト命令に関連する複数の項目
を格納するための複数の特殊目的レジスタを含み、ゲス
ト命令をデコードし、対応するセマンティック・ルーチ
ンをディスパッチするエミュレーション援助ユニット
と、複数の浮動小数点レジスタを含み、特殊目的レジス
タの各対が特定の浮動小数点レジスタに名前変更され
る、ホスト・アプリケーションの浮動小数点命令を処理
する浮動小数点ユニットと、特殊目的レジスタの対およ
び該対に対応する浮動小数点レジスタのいずれに最新の
値が含まれているかを示すように、特殊目的レジスタの
各対と浮動小数点レジスタとに関連づけられた指示ビッ
トとを含み、オペレーティング・システムが指示ビット
に応答してエミュレーション・コンテキスト切換えを浮
動小数点アプリケーションとして実行し、特殊目的レジ
スタのコンテキスト保管および復元がオペレーティング
・システムを変更することなく浮動小数点レジスタを使
用して実行されることを特徴とするプロセッサ。
【図面の簡単な説明】
【図1】ホスト・プロセッサの高水準アーキテクチャを
図示するブロック図である。
【図2】エミュレーション援助ユニットを図示するブロ
ック図である。
【図3】浮動小数点ユニット2を示すブロック図であ
る。
【図4】本発明によるSPRからFPRへの名前変更を
示すブロック図である。
【図5】本発明の一般動作規則を示すフロー・チャート
である。
【符号の説明】
12 メモリ 14 L2キャッシュ 16 データ・キャッシュ 18 命令キャッシュ 20 命令キュー 22 分岐予測ユニット 34 完了ユニット 36 エミュレーション援助ユニット 40 セマンティック・ルーチン 50 命令バッファ 52 命令プリフェッチ・ユニット 54 特殊目的レジスタ 56 命令デコード・ユニット 58 分岐履歴テーブル 60 ゲスト・キャッシュ・タグ生成ユニット 62 ゲスト・キャッシュ 64 8キャッシュ命令キュー 70 現行命令ポインタ 72 次命令ポインタ 100 乗算加算配列 102 浮動小数点レジスタ 104 オペレーティング・システム
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ソウンミャ・マリック アメリカ合衆国78729 テキサス州オース チン パートリッジ・ベンド・ドライブ 13032 (72)発明者 アルトゥーロ・マルティン=デ=ニコラス アメリカ合衆国78730 テキサス州オース チン ベル・マウンテン・ドライブ 8104

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】オペレーティング・システムと、ホスト・
    アプリケーション・コンテキスト切換え中に前記オペレ
    ーティング・システムによって保管および復元される第
    1のレジスタとを含み、ホスト・アプリケーションを実
    行し、ゲスト・アプリケーションをエミュレートするプ
    ロセッサにおいて、エミュレーション・コンテキスト切
    換え保管および復元を行う方法であって、 (a)ゲスト・アプリケーションをエミュレートする際
    に特殊目的レジスタを前記第1のレジスタに名前変更す
    るステップと、 (b)前記特殊目的レジスタのコンテキスト保管および
    復元が前記オペレーティング・システムを変更すること
    なく前記第1のレジスタを介して実行される、エミュレ
    ーション・コンテキスト切換えを実行するステップとを
    含む方法。
  2. 【請求項2】前記第1のレジスタが浮動小数点レジスタ
    である、請求項1に記載の方法。
  3. 【請求項3】ステップ(b)が、エミュレーション・コ
    ンテキスト切換えを浮動小数点アプリケーションとして
    実行するステップをさらに含む、請求項2に記載の方
    法。
  4. 【請求項4】ステップ(a)が、前記特殊目的レジスタ
    および前記浮動小数点レジスタのいずれに最新の値が含
    まれているかを示すように前記特殊目的レジスタおよび
    前記浮動小数点レジスタに指示ビットを関連づけるステ
    ップをさらに含む、請求項3に記載の方法。
  5. 【請求項5】ステップ(b)が、前記特殊目的レジスタ
    に最新の値が含まれていることを示すように指示ビット
    をセットするステップをさらに含む、請求項4に記載の
    方法。
  6. 【請求項6】ステップ(b)が、前記浮動小数点レジス
    タに最新の値が含まれていることを示すように指示ビッ
    トをリセットするステップをさらに含む、請求項5に記
    載の方法。
  7. 【請求項7】ステップ(b)が、エミュレーション・コ
    ンテキスト保管を行うときに、前記指示ビットがセット
    されていれば前記特殊目的レジスタの内容を保管し、前
    記指示ビットがリセットされていれば前記浮動小数点レ
    ジスタの内容を保管するステップをさらに含む、請求項
    6に記載の方法。
  8. 【請求項8】ステップ(b)が、エミュレーション・コ
    ンテキスト復元を実行するときに、前記浮動小数点レジ
    スタおよび前記特殊目的レジスタをロードするステップ
    と、 前記指示ビットをリセットするステップとを含む、請求
    項7に記載の方法。
  9. 【請求項9】1対の特殊目的レジスタを浮動小数点レジ
    スタに名前変更する、請求項8に記載の方法。
  10. 【請求項10】ホスト・アプリケーションを実行し、ゲ
    スト・アプリケーションをエミュレートするプロセッサ
    であって、 オペレーティング・システムと、 ホスト・アプリケーション・コンテキスト切換え中に前
    記オペレーティング・システムによって保管および復元
    される第1のレジスタと、 特殊目的レジスタと、 前記ゲスト・アプリケーションをエミュレートするとき
    に前記特殊目的レジスタを前記第1のレジスタに名前変
    更する手段と、 前記オペレーティング・システムを変更せずに前記第1
    のレジスタを介して前記特殊目的レジスタのエミュレー
    ション・コンテキスト保管および復元を実行する手段と
    を含むプロセッサ。
  11. 【請求項11】前記特殊目的レジスタのエミュレーショ
    ン・コンテキスト保管および復元を実行する手段がユー
    ザ・レベル命令である、請求項10に記載のプロセッ
    サ。
  12. 【請求項12】前記第1のレジスタが浮動小数点レジス
    タである、請求項11に記載のプロセッサ。
  13. 【請求項13】前記オペレーティング・システムがエミ
    ュレーション・コンテキスト保管および復元を浮動小数
    点アプリケーションとして実行する、請求項12に記載
    のプロセッサ。
  14. 【請求項14】前記特殊目的レジスタおよび前記浮動小
    数点レジスタのいずれに最新の値が含まれているかを示
    す、前記特殊目的レジスタおよび前記浮動小数点レジス
    タに関連づけられた指示ビットをさらに含む、請求項1
    3に記載のプロセッサ。
  15. 【請求項15】前記特殊目的レジスタに最新の値が含ま
    れていることを示すように前記指示ビットがセットされ
    る、請求項14に記載のプロセッサ。
  16. 【請求項16】前記浮動小数点レジスタに最新の値が含
    まれていることを示すように前記指示ビットがリセット
    される、請求項15に記載のプロセッサ。
  17. 【請求項17】エミュレーション・コンテキスト保管を
    行うときに、前記指示ビットがセットされていれば前記
    オペレーティング・システムが前記特殊目的レジスタの
    内容を保管し、前記指示ビットがリセットされていれば
    前記オペレーティング・システムが前記浮動小数点レジ
    スタの内容を保管する、請求項16に記載のプロセッ
    サ。
  18. 【請求項18】エミュレーション・コンテキスト復元を
    行うときに、前記オペレーティング・システムが前記浮
    動小数点レジスタおよび前記特殊目的レジスタをロード
    し、前記指示ビットをリセットする、請求項17に記載
    のプロセッサ。
  19. 【請求項19】1対の特殊目的レジスタが浮動小数点レ
    ジスタに名前変更される、請求項18に記載のプロセッ
    サ。
  20. 【請求項20】ホスト・アプリケーションを実行し、ゲ
    スト命令を含むゲスト・アプリケーションをエミュレー
    トするプロセッサであって、 ゲスト命令の機能をエミュレートするためにセマンティ
    ック・ルーチンを特定のアドレスに格納するメモリと、 ゲスト命令に関連する複数の項目を格納するための複数
    の特殊目的レジスタを含み、ゲスト命令をデコードし、
    対応するセマンティック・ルーチンをディスパッチする
    エミュレーション援助ユニットと、 複数の浮動小数点レジスタを含み、特殊目的レジスタの
    各対が特定の浮動小数点レジスタに名前変更される、ホ
    スト・アプリケーションの浮動小数点命令を処理する浮
    動小数点ユニットと、 特殊目的レジスタの対および該対に対応する浮動小数点
    レジスタのいずれに最新の値が含まれているかを示すよ
    うに、特殊目的レジスタの各対と浮動小数点レジスタと
    に関連づけられた指示ビットとを含み、 オペレーティング・システムが指示ビットに応答してエ
    ミュレーション・コンテキスト切換えを浮動小数点アプ
    リケーションとして実行し、特殊目的レジスタのコンテ
    キスト保管および復元がオペレーティング・システムを
    変更することなく浮動小数点レジスタを使用して実行さ
    れることを特徴とするプロセッサ。
JP33322996A 1996-01-02 1996-12-13 オペレーティング・システムに影響を与えないエミュレーション・コンテキストの保管と復元を行う方法およびシステム Expired - Fee Related JP3193650B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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