JP2965884B2 - コンピュータシステムにおいてクロスドメイン通話を検出及び実行するための方法及び装置 - Google Patents
コンピュータシステムにおいてクロスドメイン通話を検出及び実行するための方法及び装置Info
- Publication number
- JP2965884B2 JP2965884B2 JP7047337A JP4733795A JP2965884B2 JP 2965884 B2 JP2965884 B2 JP 2965884B2 JP 7047337 A JP7047337 A JP 7047337A JP 4733795 A JP4733795 A JP 4733795A JP 2965884 B2 JP2965884 B2 JP 2965884B2
- Authority
- JP
- Japan
- Prior art keywords
- domain
- address
- program
- cross
- call
- 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.)
- Expired - Fee Related
Links
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
-
- 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
- G06F9/45554—Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
Description
テムに係り、より詳細には、クロスドメイン通話を検出
及び実行するための技術に係る。本発明は、プログラム
が書かれたもの以外のアーキテクチャーを有するコンピ
ュータシステムにおいてプログラムを実行するようにエ
ミュレーションシステムを動作するのに特に使用でき
る。又、本発明は、アーキテクチャーの異なるプロセッ
サを備えたマルチプロセッサコンピュータシステムに特
に使用できる。
ば、アプリケーションプログラムによるような高いソフ
トウェアレベルで操作するのに使用できるものとは対照
的に、ハードウェア及びマシン言語レベルで確立された
コンピュータのアトリビュートとして定義することがで
きる。一般に述べると、アーキテクチャーのアトリビュ
ートは、例えば、命令セット、命令フォーマット、オペ
レーションコード、アドレスモード、レジスタ位置、及
びメモリ位置を含み、マシン状態を定義するものを含ん
でいる。
るアーキテクチャーの2つの形式である。「CISC」
は、例えば、インテル社の80X86プロセッサを組み
込んだIBM(登録商標)対応のパーソナルコンピュー
タにおいて実施される複雑な命令セット計算を意味して
いる。CISCマシンは、可変長さの命令フォーマット
で、非常に多数のアドレスモードがあり、小サイズから
中間サイズのレジスタファイルがあり、レジスタからメ
モリ(又はメモリからメモリ)への命令がありそして命
令をマイクロコード式に実行することを特徴とする。
「RISC」は、例えば、デジタル・イクイップメント
社のALPHA AXP(登録商標)プロセッサを組み
込んだコンピュータにおいて実施される縮小命令セット
計算を意味する。RISCアーキテクチャーは、一般
に、簡単な固定長さ命令フォーマットで、少数のアドレ
スモードをもち、大きなレジスタファイルがあり、ロー
ド記憶命令セットモデルがありそして命令を直接ハード
ウェア実行することを特徴とする。
に合致するコンピュータで実行することが所望される
が、プログラムが別の異なる形式のアーキテクチャーに
合致するマシンで実行するように設計されていることが
しばしばある。例えば、CISCコンピュータで実行す
るように設計されたプログラムをRISCマシンにおい
て実行する必要がある。これを行うためには、2つのア
ーキテクチャー間にある形式の「ソフトウェア」ブリッ
ジを設けなければならない。
場合に、多くのCISC(例えば、80X86)プログ
ラムではプログラムの実行をサポートするためのシステ
ムサービスファンクション(SSF)が必要とされるこ
とから複雑さが生じる。SSFは、通常、(i)ビデ
オ、ディスクアクセス、システムクロック等を制御する
ための基本的な入力/出力システム(BIOS)ファン
クションと、(ii)プログラムのロード及びアンロー
ド、ネットワーク制御オペレーション、ファイルサービ
ス等を与えるためのオペレーティングシステムファンク
ションとを備えている。
は、しばしばSSFを「呼び出し」、即ち、例えばCI
SCシステムソフトウェアにより通常与えられるSSF
ルーチンへと分岐する。各分岐(即ち、呼び出しを表す
逐次プログラム流からの変化)は、制御を通すべきター
ゲットアドレスを直接的又は間接的に指定する。
割り込みの形態の分岐を含むことができる。これらの割
り込みは、SSFルーチンのターゲットアドレスを識別
する割り込みベクトルテーブル(IVT)に対するイン
デックスとして使用するための割り込み番号を指定す
る。この割り込み番号により指定されたSSFルーチン
へ制御が通される。IBM(登録商標)対応のパーソナ
ルコンピュータに対する適応規格は、特定の割り込み番
号によってアクセスできるSSFルーチンを指定する。
他の形式の分岐は、通常ターゲットアドレスを直接指定
する分岐命令及びジャンプ命令を含む。
キテクチャー実行を行えるようにするソフトウェアブリ
ッジは、多数の異なる方法で形成することができる。先
ず、アプリケーションプログラムは、例えば、RISC
コンピュータにおいて実行できる新たなプログラムに変
換することができる。これは、時間とコストのかかる手
順であり、プログラムの知的財産権の所有者の許可を必
要とする。第2に、別の形態において、RISCコンピ
ュータは、CISCアーキテクチャーを好ましくは透過
的にエミュレートするのに使用でき、これにより、CI
SCアプリケーションプログラムを実行することができ
る。
ータは、プログラム実行の目的でCISCマシンのイリ
ュウジョン(幻想)を作り出す、すなわち、CISCマ
シンの環境を模写する。このようなCISCマシンの環
境を模写するには、プロセッサ、システムソフトウェ
ア、周辺ハードウェア及びメモリを含むCISCマシン
のオペレーティング環境をエミュレートする必要があ
り、簡単に言えば、実行中にアプリケーションプログラ
ムが使用すると「予想」される全ての要素及びリソース
をエミュレートする必要がある。
Cコンピュータは、後述するようなインタープリテーシ
ョン(解釈)と称するプロセスを用いてアプリケーショ
ンプログラムを実行する。換言すれば、RISCコンピ
ュータは、アプリケーションプログラムをデコードしそ
して構文解析して、CISCマシンでプログラムを実行
することによって生じるであろう状態情報を得ると共
に、同等のオペレーションを実行するRISCシステム
における対応コードを識別しそして実行する。
ンシステムは、それらの意図された目的に一般に適して
いるが、幾つかの制限及び欠点に遭遇する。例えば、従
来のエミュレーションシステムは、アプリケーションプ
ログラムによって呼び出されたSSFを効率的に実行す
ることが困難である。
レーション(変換)又はインタープリテーション(解
釈)により実行するためのCISC命令セットか、又は
直接実行するためのRISCアーキテクチャーの命令セ
ットかのいずれかにおいてプログラム実行中に与えるこ
とができる。RISCコンピュータにおけるSSFルー
チンの直接的な実行は、他の技術に勝る性能及びその他
の利益を実現することができる。というのは、解釈する
より速く且つ変換するより経済的だからである。
行によりインタープリテーションによりアプリケーショ
ンプログラムを実行する場合には、アプリケーションプ
ログラムがSSFルーチンの実行のための制御をいつ移
行したかを検出するメカニズムが必要である。この検出
メカニズムは、制御をSSFルーチンへ通そうとする通
話(即ち、CISCエミュレーションとネーティブRI
SCマシンとの間の)を、制御を同じアプリケーション
プログラム内の他のルーチンへ単に通そうとするものか
ら区別することができねばならない。前者を「クロスド
メイン通話」と称し、CISCエミュレーションは一方
のドメインを表しそしてRISCマシンは他方のドメイ
ンを表す。
ションシステム以外のコンテクストにおいて顕著なもの
である。例えば、多数のコンピュータシステムは、単一
のエンクロージャ内に多数のプロセッサを有するか、或
いは遠隔配置されて通信リンクによって接続された多数
のコンピュータを有する。システム内のプロセッサは次
第に異なるアーキテクチャーになりつつあり、従って、
システムは2つ以上の(即ち、多数の)ドメインを実施
すると言える。このような雑多な環境の利点を得るため
に、プロセッサは、システム内の他のプロセッサにより
ルーチンを実行するためにクロスドメイン通話を時々行
う。このようなクロスドメイン通話を効率的に且つ確実
に検出及び実行するメカニズムを提供することが望まれ
る。
内にクロスドメイン通話を表す基準アドレス範囲を設け
ることにより第1ドメインから第2ドメインへの通話を
検出するための改良された技術を提供する。本発明は、
その広い形態において、第1プログラムから第2プログ
ラムへの通話を検出及び実行するための請求項1に記載
のコンピュータにおいて実施される方法と、請求項8に
記載のそれに対応する装置とに係る。分岐のターゲット
アドレスが基準アドレス範囲内に入る場合には、本発明
はその通話をクロスドメイン通話として実行する。
発明は、第1ドメインのターゲットアドレスに対応する
第2ドメインの被呼アドレスを、ターゲットアドレスの
数学的な操作によって決定する。次いで、本発明は、第
2ドメインにおいてその被呼アドレスをアクセスしそし
てそこに記憶されたコードを実行する。次いで、本発明
は、そのコードを実行した結果を、返送クロスドメイン
通話により、その通話を呼び出した第1ドメインで実行
しているプログラムへ返送する。
々の異なる形態のいずれをとることもできる。例えば、
ターゲットアドレスと所定範囲の境界の1つとの間の演
算上の相違を計算し、これをオフセットとして第2ドメ
インにおける第2の所定のアドレス範囲に対して使用
し、被呼アドレスを形成することができる。
的に対する整数として処理される)を定数で加算、減
算、又は乗算するような演算操作をターゲットアドレス
に対して実行することができる。別の実施例は、ターゲ
ットアドレスに対して変換のための多項式を用いて、被
呼アドレスを形成する。
基準スペース」即ち「CRS」と称する「仮想」テーブ
ルを用いて基準アドレス範囲を確立する。CRSは、複
数の独立してアドレスできるメモリ位置、例えば、アー
キテクチャーにより許された最小の位置(例えば、単一
バイト)をもつことができ、その各々は第2ドメインに
おける通話可能なアドレスに対応する。CRSの内容
は、好ましくは本発明において使用されず、そのテーブ
ルは「仮想」として指定される。
メイン通話であるかどうかを判断するために、通話の分
岐ターゲットアドレスは、直接的に又は割り込みベクト
ルテーブルを介してCRSのエントリーの対応アドレス
を指定するためのポインタとして使用される。CRSの
アドレススペースの対応エントリーがターゲットアドレ
スに対して存在する場合は、通話がクロスドメイン通話
として処理される。
RSの例えば最下位アドレスとの差に等しいオフセット
が計算される。次いで、このオフセットを用いて、第2
ドメインアドレステーブルをアクセスする。
くは、CRSと同じ数のエントリーを有し、その各々
は、実行されるべきコードの第2ドメインのアドレスス
ペース内のアドレスの表示を含む。CRSの計算された
オフセットは、例えば、これを第2ドメインアドレステ
ーブル内の最下位アドレスに加算しそしてそれにより得
た和をアクセスされるべきエントリーのアドレスとして
使用することにより、第2ドメインアドレステーブルを
アクセスするように使用することができる。
レステーブルがファンクションアドレステーブル(FA
T)であり、アクセスされるエントリーは、システムサ
ービスファンクションスペース(SSFS)に記憶され
た被呼システムサービスルーチンのアドレスを含む。
グラムは、そのプログラムが書かれたものとは異なるア
ーキテクチャーを有する第1コンピュータシステムにお
いて実行することができる(例えば、エミュレートされ
た環境においてインタープリテーションによって実行で
きる)。更に、このプログラムにより要求されるシステ
ムサービスファンクションは、例えば、そのエミュレー
ションのホストであるコンピュータシステムにおいて、
たとえそれが異なるアーキテクチャーを有していても、
直接実行することができる。
果を得ることができる。例えば、CRSを用いたクロス
ドメイン検出は、各システムファンクション当たりエミ
ュレートされたCISCドメイン内で1バイトのアドレ
ススペースしか消費せず、しかも、CRSは、本発明の
目的としてそのアドレススペースにデータ又はコードを
記憶する必要がない。従来のメモリとして悪評の高い制
限されたアドレススペースをもつ80X86マシンのエ
ミュレーションである場合には、本発明のこの特徴が特
に有効となる。別の重要な効果は、この実施例では、実
行されるアプリケーションプログラムの変更も、プログ
ラムの進歩したインタープリテーションも必要としない
ことである。更に別の効果は、例えば、グラフィックボ
ードや他のデバイスのようなパーソナルコンピュータハ
ードウェア製品を、拡張バスを介して、非適合アーキテ
クチャーのコンピュータシステムへ接続できるよう容易
にサポートする能力がこの実施例により与えられること
である。
例の以下の詳細な説明より完全に理解されよう。図1
は、本発明によるホストコンピュータシステム10を示
している。このコンピュータシステム10は、第1のア
ーキテクチャーを実施するもので、従来のCPU12
と、システム10の動作を制御するためのシステムソフ
トウェア14(例えば、オペレーティングシステムを含
む)と、メモリ16とを有している。
従来のユーザインターフェイス24と、CPU12に接
続された周辺ハードウェア26とを備えている。ユーザ
インターフェイス24は、例えば、ディスプレイ又はモ
ニタ24Aと、表示出力を形成すると共にユーザが各々
コマンド及びデータを入力できるようにするキーボード
24Bとを備えている。周辺ハードウェア26は、例え
ば、従来のディスクコントローラ、キーボードコントロ
ーラ、及び入力/出力(I/O)ポート(個別に図示せ
ず)を備えている。
12で実行できるソフトウェアで好ましくは実施される
エミュレータ30であって、第2の異なるアーキテクチ
ャーを実施するコンピュータシステム32をエミュレー
トするためのエミュレータ30を備えている。従来のエ
ミュレーションシステムは、当業者に良く明らかであろ
う。
するための便宜上、ホストコンピュータシステム10及
びその要素と、第1のアーキテクチャーについて書かれ
たコードを「ネーティブ(固有)」と称する。同様に、
エミュレートされるシステム32及びその要素と、第2
のアーキテクチャーについて書かれたコードを「フォー
リン(外部)」と称する。
リンコード、例えば少なくとも1つのフォーリンアプリ
ケーションプログラム35を実行するフォーリンCPU
34についてエミュレータ34により作られた「幻想
(illusion)」、すなわち、フォーリンCPU
34の環境を模写したものである。又、エミュレータ3
0は、コンピュータシステム32のオペレーションを制
御するフォーリンシステムソフトウェア36のエミュレ
ーションと、フォーリン周辺ハードウェア38のエミュ
レーションを発生する。アプリケーションプログラム3
5は、第2のアーキテクチャーにより指令される命令セ
ットに合致する一連の命令(即ち、コードのライン)を
備え、これらはフォーリンCPU34において実行され
る。アプリケーションプログラム35は、以下に述べる
ように、制御を1つ以上のSSFルーチンへ通すための
分岐(即ち、順次のプログラム流れからの変化)を含
む。
トコンピュータシステム10は、例えば、上記のALP
HA−AXPベースのコンピュータのようなRISCマ
シンであり、そしてフォーリンコンピュータシステム3
2は、例えば、上記の80X86ベースのマシン(しば
しば「IBMコンパチブルコンピュータ」と称し、IB
Mは登録商標である)のようなCISCマシンである。
ース52及びフォーリンドメインアドレススペース54
を含むメモリ16を示している。ネーティブドメインア
ドレススペース52は、ネーティブドメインのコンピュ
ータシステム10からの特権アクセスを有する。フォー
リンドメインメモリスペース54は、エミュレータ30
により形成されるコンピュータシステム32からの特権
アクセスを有する。ネーティブドメインアドレススペー
ス52は、システムサービスファンクションスペース
(SSFS)56及びファンクションアドレステーブル
(FAT)58を備えている。フォーリンドメインアド
レススペース54は、クロスドメイン基準スペース又は
テーブル(CRS)62と、割り込みベクトルテーブル
(IVT)64とを備えている。
スペース52について以下に詳細に述べる。SSFS5
6は、SSFをSSF_0、SSF_1、・・・SSF
_Nと示されたエントリーとして記憶し、各エントリー
は、ネーティブドメインアドレススペース52内におい
て対応アドレスSSF_ADN_0、SSF_ADN_
1、・・・SSF_ADN_Kによって独特に識別さ
れ、ここで「K」は正の整数である。
のエントリーを有し、ここで「M」は正の整数であり、
各エントリーは、SSFS56の対応エントリーSSF
_0、SSF_1、・・・又はSSF_KのSSFSア
ドレスSSF_ADN_0、SSF_ADN_1、・・
・又はSSF_ADN_Kの1つの表示を記憶する。好
ましくは、「M」は、SSFS56のエントリーにより
表されたシステムサービスファンクションの数である
「K」に等しいか又はそれ未満である。(「M」は、特
定のプログラムの実行に対しSSFのサブセットを使用
できるようにすべき場合には「K」より小さくすること
ができる。)FAT58は、ネーティブなドメインアド
レススペース52内にアドレス範囲FAT_ADN_0
ないしFAT_ADN_Mを占有する。
ース54を参照すれば、CRS62は、各アドレスCR
S_ADr_0ないしCRS_ADr_Mに配置された
エントリー0ないしエントリー「M」と示された多数の
エントリーを有する。好ましくは、各エントリー0ない
しMは、フォーリンドメイン54における位置の最小の
独立してアクセスできるブロック、例えば、単一バイト
を占有する。
いしMの数は、FAT58におけるエントリー0ないし
Mの数、即ち「M」に等しい。換言すれば、FAT58
及びCRS62におけるアドレス可能な位置は、一致対
において割り当てられ、各対は、システム10において
実施するのに使用できるSSFの1つに対応する。
され、それ故、本発明によれば、そのテーブルのエント
リー0ないしMに記憶されるべきコードは必要とされな
い。本質的に、CRS62は、ネーティブドメインのF
AT58のフォーリンドメイン対応部分であり、そして
FAT58に対するポインタを導出するのにのみ使用さ
れる。実際に、CRS62に対して指定されたエミュレ
ートされたドメインアドレススペース54の部分は、他
のアプリケーションに必要とされるデータ又はコードを
記憶するために本発明とは独立して使用できる。
_AD_1、・・・CRS_ADMと示された多数のエ
ントリーを含み、その各々は各割り込み番号INT_0
ないしINT_Mに対応する。各IVTエントリーCR
S_AD_0、CRS_AD_1、・・・CRS_AD
_Mは、対応する割り込み番号をIVT64に対するポ
インタとして使用してアクセスすることができる。各エ
ントリーCRS_AD_0、CRS_AD_1、・・・
CRS_AD_Mは、CRS62の対応するエントリー
のアドレスを表す。
スMEM_AD_0、MEM_AD_2、・・・MEM
_AD_Pを含むエントリー位置であって、CRS62
内のアドレス範囲CRS_AD_0ないしCRS_AD
_M内に入らず、従って、クロスドメイン通話を必要と
しないエントリー位置を含むことができる。例えば、ア
ドレスMEM_AD_0、MEM_AD_2、・・・M
EM_AD_Pは、アプリケーションプログラム35
(図1)自体の中のルーチンに対する通話のターゲット
アドレスである。
て、テーブル56、58、62、64(図2)を設定す
る方法100を示している。
実行することによりCRS62を発生する。サブブロッ
ク104は、CRSに対しフォーリンドメインアドレス
スペース54のアドレス範囲CRS_ADr_0ないし
CRS_ADr_M(即ち、セクション)を指定しそし
てアドレス範囲に必要とされるバイトの数、例えば、1
バイト/アドレスを決定することによりCRS62を位
置設定しそしてサイズ決めする。サブブロック106
は、CRS62の位置をFATエントリーに割り当て
る。例えば、CRS62の各単一バイト位置は、コンピ
ュータシステム10のアーキテクチャーに合致するネー
ティブアドレススペースにアドレス(例えば32ビット
アドレス)が記憶されたFATエントリーに対応する。
記憶されたアドレスは、SSFルーチンのエントリーポ
イント(例えば、コードの第1ライン又は第1命令)で
ある。
ば、CRS62は、各SSFごとに例えば32ビットと
いった全ネーティブドメインアドレスを保持するに充分
なバイトではなくて、単一バイト/SSFのみを有する
最小サイズに構成することができる。
例えばバッファ16C(図1)に後で使用するためにC
RS62のアドレス範囲を記憶する。ブロック110
は、FAT58及びIVT64を発生する。サブブロッ
ク112は、FATエントリーを個々のSSFに割り当
てる。サブブロック114は、SSFエントリーアドレ
スを対応するFATエントリーに記憶する。サブブロッ
ク116は、個々のCRS62エントリーに対応する基
準アドレスを、対応する割り込み番号によりアクセスさ
れたIVT64の対応エントリーにロードする。
のように設定された後にプログラム35を実行するため
のランタイム方法200を示している。ブロック202
は、好ましくはCPU12(図1)によって実施される
従来のインタープリター12A(図1)を用いた変換、
すなわち、インタープリテーション(解釈)によりフォ
ーリンプログラムコードを実行する。
の変化(「分岐」と称する)を検出し、そして検出され
た分岐に対するターゲットアドレス(即ち、分岐に続い
て実行されるべき次の命令のアドレス)を識別する。換
言すれば、方法200は、非順次命令に対して試みた制
御の転送をトラップする。分岐が検出されない場合に
は、ブロック202は、プログラムの実行完了までプロ
グラムを実行し続ける。
て、好ましくはCPU12(図1)により実施される検
出器12Bは、その分岐のターゲットアドレスがCRS
のアドレス範囲CRS_ADr_0ないしCRS_AD
r_M内にあるかどうか判断する。検出器12Bは、サ
ブブロックにより表された多数のオペレーションを実行
する。サブブロック208は、メモリ16のバッファ1
6CからCRSアドレス範囲CRS_ADr_0ないし
CRS_ADr_Mをフェッチし、そしてサブブロック
210は、分岐ターゲットアドレスがその範囲内にある
かどうかテストする。好ましくは、方法200は、クロ
スドメイン通話を検出する際に単一範囲アドレス比較を
使用するのであって、例えば、分岐ターゲットアドレス
を多数の異なるアドレス範囲と比較するのではない。
場合には、ブロック212は、CPU12のプログラム
カウンタファンクションを増加し、そして次の命令がブ
ロック202において実行される。
ットアドレスが範囲CRS_ADr_0ないしCRS_
ADr_M内にある場合には、好ましくはCPU12に
より実施される実行モジュール12C(図1)がクロス
ドメイン通話を実行する制御権を得る。実行モジュール
12Cは、インタープリテーションによりプログラム実
行を停止させ、クロスドメイン通話をジャケット処理し
て、被呼ドメインの規定に合致するパラメータ(例え
ば、レジスタ識別等)を通し、そして一般に被呼システ
ムのサービスルーチンを直接実行できるようにする。
サブブロックを含む。サブブロック222は、CRS6
2に対するオフセットであって、CRS範囲の境界アド
レスの1つ(即ち、最初のアドレスCRS_ADr_0
及び最後のアドレスCRS_ADr_Mの1つ)と、C
RS62内の分岐ターゲットアドレスとの間の差に等し
いオフセットを計算する。
ットをFAT58に対するインデックスとして使用し、
対応するFATエントリー0ないしMをアクセスする。
これを説明するために、ターゲットアドレスと境界アド
レスCRS_ADr_0との間の差としてオフセットを
計算することができる。次いで、このオフセットは、F
AT58に対するインデックスとして使用することがで
きる。例えば、CRS62からのオフセットは、必要に
応じて大きさ決めすることができ、例えば、FATにお
けるエントリーのサイズ(バイト数)とCRSにおける
エントリーのサイズとの比を乗算することができる。こ
れにより生じる大きさ決めされたオフセットは、FAT
58の第1アドレスFAT_ADN_0に追加して、対
応するFATエントリーのFATアドレスを生じること
ができる。
クスにより識別されたFATエントリーをSSFS56
のエントリーSSF_0ないしSSF_Kのネーティブ
ドメインアドレススペース52におけるアドレスとして
使用する。このように識別されたSSFSエントリー
は、被呼SSFルーチンのSSFエントリーポイントで
ある。
トリーポイントで始めて被呼SSFルーチンをフェッチ
し実行する。SSFルーチンの実行による結果は、CP
U12(図1)により適当なジャケット処理が行われて
返送クロスドメイン通話を介してアプリケーションプロ
グラム35へ返送することができる。返送通話が必要と
されるかどうかに関わりなく、方法200は、次いで、
インタープリテーションによりアプリケーションプログ
ラム35のフォーリンコードを実行し続けるためにブロ
ック212へ制御を通す。
ついて以下に述べる。特定のSSFは、ディスプレイサ
ービスを行うことができ、SSFS56に、例えば、ア
ドレスSSF_ADN_1を有するエントリーSSF_
1に記憶することができる。FAT58のエントリー
(例えば、エントリー1)は、SSF_1に割り当てら
れ、そしてそのアドレスにSSF_ADN_1を含む。
このエントリーのアドレスは、例えば、CRS62のア
ドレス範囲CRS_ADr_0ないしCRS_ADr_
M内の分岐ターゲットアドレスの相対的な位置から導出
されたオフセットを用いて識別できる。
_1を保持するCRSエントリー1は、ディスプレイサ
ービスSSFに対応することができる。アプリケーショ
ンプログラムに含まれた分岐は、ディスプレイサービス
SSFを呼び出すことができる。このために、分岐は、
分岐又はジャンプ命令において直接与えられるターゲッ
トアドレスを指定するか、又はIVT64を経て間接的
に与えられるターゲットアドレスを指定する。分岐ター
ゲットアドレスはCRS_ADr_1である。オフセッ
トは、CRS62の最下位アドレス、即ちCRS_AD
r_0を分岐ターゲットアドレスから減算して1のオフ
セットを生じることにより計算することができる。
のSSFを直接実行するためにドメイン交差を必要と
し、即ち通話は、フォーリンドメインアドレススペース
54とネーティブドメインアドレススペース52との間
のドメイン境界65を横切る。
FAT58に対するインデックスとしてこれを用いるこ
とにより、FAT58における対応エントリーを識別す
るのに使用することができる。大きさ決めされたオフセ
ットが1に等しく、この値がFAT58の最下位アドレ
スに加えられる場合は、この解決策により、FAT58
におけるエントリーのアドレスFAT_ADN_1であ
って、その内容が例えばディスプレイサービスSSFの
エントリーポイントのアドレスSSF_ADN_1であ
るようなアドレスが与えられる。次いで、ディスプレイ
サービスSSFを実行することができる。
ことができよう。図5は、ネーティブアドレススペース
302と、図2と同様のエミュレートされたアドレスス
ペース304との間のマッピングをもつメモリアドレス
スペース300の実施を示している。ネーティブアドレ
ススペース302は、コンピュータシステム10(図
1)により直接実行するのに使用されるネーティブドメ
インの全てのメモリ位置に割り当てられた独特に指定さ
れたアドレスを有する。エミュレートされたアドレスス
ペース304はエミュレータ30によって発生され、そ
してエミュレートされたコンピュータシステム32(図
1)によりアクセス可能な全ての位置に割り当てられた
独特に指定されたアドレスを有する。
エミュレートされたアドレススペース304内でのアド
レス動作は、これらのスペースをアクセスするコンピュ
ータ10、32の各アーキテクチャーに合致するのが好
ましい。ネーティブなアドレススペース302は、フォ
ーリンプログラム、例えば、ディスプレイ24A(図
1)を制御するためのコード及びそれに関連したデータ
を記憶するためのスペース312と、ディスプレイバッ
ファ及びレジスタ314とを備えている。アドレススペ
ース312、314は、例えば、拡張バス318により
ネーティブCPU12に接続されたグラフィックカード
346(図1)に配置されたネーティブアドレススペー
ス302の部分に指定することができる。
は、FAT322、SSFS324、メモリバッファ3
26、及びネーティブなオペレーティングシステムを含
むシステムソフトウェアのためのアドレススペース32
8を備えている。アドレススペース322ないし328
は、コンピュータシステム、例えば、図1のシステム1
0のランダムアクセスメモリ(RAM)16Aに指定す
ることができる。
4は、CRS332と、ターゲットプログラムのための
アドレススペース334と、グラフィックコード及びデ
ータのためのディスプレイバッファ及びレジスタスペー
ス336と、IVTを含み下位メモリに指定されたアド
レススペース338とを備えている。ターゲットプログ
ラムのためのアドレススペース334は、インタープリ
テーションにより実行するためのターゲットとして、即
ちフォーリンプログラムのマップされたバージョンとし
てフォーリンプログラムを含むリードオンリメモリ16
B(図1)に指定される。同様に、スペース336は、
エミュレータ30によりアクセスできるようにディスプ
レイバッファ及びレジスタ314の内容を含む。
サービスのための標準割り込みの形態をとることができ
る。アドレススペース338内のIVTは、矢印「a」
で示すようにINT10に対応する基準アドレスをCR
Sアドレススペース332に含むことができる。
用でき、矢印「b」で示すようにFATアドレススペー
ス322において対応するエントリーをアクセスし、ネ
ーティブアドレススペース302におけるアドレスを得
ることができる。
チされたアドレスは、矢印「C」で示すようにSSFS
324をアクセスするのに使用でき、そこから、ディス
プレイサービスに対するエントリーポイント、例えば、
第1命令即ちコードのラインをフェッチすることができ
る。次いで、ディスプレイサービスが直接実行され、そ
してエミュレートされたアドレススペース304へ制御
が復帰されて、インタープリテーションによりターゲッ
トプログラムが再び実行される。
トアドレスを決定するためにオフセットを用いてIVT
により指定されたSSFに分岐するための割り込み処理
に関して本発明を実施して示した。
岐を生じる他の事象又は条件から生じるクロスドメイン
通話を検出し、クロスドメインにおいてルーチンを実行
することにより、更に一般的に実施することができる。
ターゲットアドレスを別のドメインにおけるターゲット
アドレスに変換するのにオフセットを使用する必要はな
い。実際に、CRSの分岐ターゲットアドレスは、他の
アドレスを生じるように数学的に操作することができ
る。分岐ターゲットアドレスの数学的な操作は、種々の
異なる形態をとることができる。例えば、分岐ターゲッ
トアドレス(これらの目的のために整数として処理され
る)を定数により加算、減算又は乗算してネーティブド
メインの対応アドレスを生じるような演算操作を分岐タ
ーゲットアドレスにおいて実行することができる。別の
実施例は、ターゲットアドレスに対して変換のための多
項式を使用し、他のアドレスを生じることができる。
発明は、プロセッサが異なるアーキテクチャーのもので
あるマルチプロセッサコンピュータシステムに特に使用
できる。本発明のこのような用途では、第1のプロセッ
サは、図1のネーティブCPU12と考えることがで
き、そして第2のプロセッサは、フォーリンプロセッサ
34と考えることができ、直接実行か、インタープリテ
ーションによる実行かに関わりなく、またエミュレーシ
ョンに関わりなく、図示して上記したように本発明を実
施することができる。
を図示して説明した。使用した用語及び表現は、説明の
ためのものであって、これに限定するものではない。解
説のための実施例によって例示された上記及び他の種々
の変更、追加並びに置き換えは、本発明の範囲から逸脱
せずに行い得ることが当業者に理解されよう。
ラムを実行するエミュレータを含むコンピュータシステ
ムのブロック図である。
ッピングを示す図で、クロスドメイン通話の検出及び実
行に関する特徴を示す図である。
メイン通話を検出及び実行するための図1のコンピュー
タシステムを初期化する方法のブロック図である。
メイン通話を検出及び実行するためのランタイム方法を
示すブロック図である。
を詳細に示す図である。
Claims (10)
- 【請求項1】 第1のアーキテクチャードメインに関連
した第1のプログラムから第2のアーキテクチャードメ
インに関連した第2のプログラムへの通話を検出し実行
するためコンピュータシステムにおいて実行される方法
であって、上記第1のアーキテクチャードメインは、第
1の命令セットを含む第1のアーキテクチャーによって
特徴付けられており、上記第2のアーキテクチャードメ
インは、第2の命令を含む第2の異なるアーキテクチャ
ーによって特徴付けられており、上記第1のプログラム
は、上記第1のアーキテクチャードメインにおいて実行
するのに適しており且つ上記第1の命令セットのうちの
命令を含み、上記第2のプログラムは、上記第2のアー
キテクチャードメインにおいて実行するのに適しており
且つ上記第2の命令セットのうちの命令を含んでいるよ
うな方法において、 上記通話が上記第1のアーキテクチャードメインにおい
てクロスドメイン基準アドレス範囲内のターゲットアド
レスを指定しているかを検出し、上記クロスドメイン基
準アドレス範囲は、クロスドメイン通話のアドレスの範
囲を指示するものであるような検出段階と、 上記ターゲットアドレスが上記クロスドメイン基準アド
レス範囲内にあることに応答して、該ターゲットアドレ
スを使用して上記第1のアーキテクチャードメインにお
ける該ターゲットアドレスに対応する上記第2のアーキ
テクチャードメインにおける被呼アドレスを決定する決
定段階と、 上記第2のアーキテクチャードメインにおける上記被呼
アドレスによって指定された上記第2のプログラムの命
令をフェッチ及び実行し、上記コンピュータシステム
は、上記第1のアーキテクチャードメイン内の上記第1
のプログラムを実行し、上記通話および上記被呼アドレ
スに関連した上記第2のプログラムに含まれた命令を検
出し実行するようなフェッチ及び実行段階と、 を含むことを特徴とする方法。 - 【請求項2】 上記クロスドメイン基準アドレス範囲
は、該クロスドメイン基準アドレス範囲を定める第1及
び第2の境界アドレスを含み、上記決定段階は、上記タ
ーゲットアドレスと、上記第1及び第2の境界アドレス
のうちの1つとの間のオフセットを決定する段階及び上
記第2のアーキテクチャードメインにおいて第2の所定
のアドレス範囲内の上記オフセットを使用して、上記第
2のプログラムが記憶されている上記被呼アドレスを識
別する段階を行うことによって、上記ターゲットアドレ
スを使用して上記被呼アドレスを決定する段階を含む請
求項1に記載の方法。 - 【請求項3】 上記決定段階は、上記ターゲットアドレ
スに対して演算操作を行って上記被呼アドレスを生じる
段階を含み、上記演算操作は、加算、減算または上記タ
ーゲットアドレスと定数との乗算のうちの1つである請
求項1に記載の方法。 - 【請求項4】 第1のコンピュータアーキテクチャーに
関連した第1の命令セットのうちの複数の命令を含むア
プリケーションプログラムにおいてクロスドメイン通話
を検出し実行するためコンピュータシステムにおいて実
行される方法であって、上記クロスドメイン通話のうち
の少なくとも1つは、上記アプリケーションプログラム
の命令の所定の実行流における非順次変化である分岐を
含むような方法において、 上記アプリケーションプログラムに含まれた上記分岐の
ターゲットとして指定されたターゲットアドレスが第2
のドメインにおけるあるルーチンへのクロスドメイン通
話を指示する第1のドメイン内のクロスドメイン基準ア
ドレス範囲内にあるかを決定する決定段階と、 上記ターゲットアドレスが上記クロスドメイン基準アド
レス範囲内にある場合に、上記ターゲットアドレスを数
学的に操作することにより上記第1のドメインにおける
上記ターゲットアドレスに対応する上記第2のドメイン
における被呼アドレスを決定することによって上記ター
ゲットアドレスを指定する上記クロスドメイン通話を実
行する実行段階と、 上記第2のドメインにおける上記被呼アドレスにアクセ
スし、そこに記憶された第2のコンピュータアーキテク
チャーを特徴付ける第2の命令セットのうちの命令を実
行するアクセス及び実行段階と、 を含むことを特徴とする方法。 - 【請求項5】 第1のコンピュータアーキテクチャーに
関連した第1の命令セットのうちの命令を含むアプリケ
ーションプログラムを実行するためコンピュータシステ
ムにおいて行われる方法において、 第2のコンピュータアーキテクチャーを有するコンピュ
ータシステムにおいてインタープリテーションによって
上記アプリケーションプログラムの一部分を実行し、上
記アプリケーションプログラムは、上記第2のアーキテ
クチャーに関連した第2の命令セットから選択された命
令を含むシステムサービスファンクションルーチンを実
行するための少なくとも1つの通話を有しているような
アプリケーションプログラム実行段階と、 実行されるべき次の命令のターゲットアドレスが第1の
ドメインのクロスドメイン基準アドレス範囲内にあるか
を決定する決定段階と、 もし、上記ターゲットアドレスが上記クロスドメイン基
準アドレス範囲内にある場合には、上記ターゲットアド
レスを数学的に操作することにより上記第1のドメイン
における上記ターゲットアドレスに対応する第2のドメ
インにおける被呼アドレスを決定することにより上記通
話を実行する通話実行段階と、 上記被呼アドレスに対応するメモリ位置にアクセスし、
上記被呼アドレスに記憶されたコードを実行することに
より上記システムサービスルーチンを実行するシステム
サービスルーチン実行段階と、 を含むことを特徴とする方法。 - 【請求項6】 第1のアーキテクチャーを有し第1のド
メインに関連した第1のプロセッサにおいて第1のプロ
グラムを実行し、第2のアーキテクチャーを有し第2の
ドメインに関連した第2のプロセッサにおいて第2のプ
ログラムを実行する方法であって、上記第1のプログラ
ムは、上記第2のプログラムを実行するためのクロスド
メイン通話を含むような方法において、 上記第1のプロセッサにおいて上記第1のプログラムの
複数の命令を実行し、上記命令は、上記第1のアーキテ
クチャーに関連した第1の命令セットであるような実行
段階と、 上記第1のプログラムに含まれた通話によって指定され
たターゲットアドレスが上記第1のドメイン内のクロス
ドメイン基準アドレス範囲内にあるかを決定することに
よって、該通話がクロスドメイン通話であるかを決定す
る決定段階と、もし、上記通話がクロスドメイン通話で
ある場合には、上記ターゲットアドレスを数学的に操作
することによって上記ターゲットアドレスに対応する上
記第2のドメインにおける被呼アドレスを決定する被呼
アドレス決定段階と、 上記被呼アドレスにアクセスし、該被呼アドレスに記憶
されたコードで上記第2のプログラムの実行を開始し、
上記コードは、上記第2のアーキテクチャーに関連した
第2の命令セットのうちの命令を指定するようなアクセ
スおよび実行段階と、 を含むことを特徴とする方法。 - 【請求項7】 上記通話がクロスドメイン通話であるか
を決定する決定段階は、複数の独立してアドレスできる
メモリ位置を有するクロスドメイン基準テーブルを確立
し、上記メモリ位置の各々は、上記第2のドメインにお
ける通話可能なアドレスに対応すると共に、上記クロス
ドメイン基準アドレス範囲における上記アドレスの1つ
に対応しているような確立段階と、上記ターゲットアド
レスが上記クロスドメイン基準テーブルにおける上記メ
モリ位置の1つを指定するかを決定する決定段階とを含
む請求項6に記載の方法。 - 【請求項8】 第1のドメインにおいて実行される第1
のプログラムから第2のドメインにおける第2のプログ
ラムへの通話を検出し実行する装置であって、上記第1
のプログラムは、第1の命令セットのうちの命令を含
み、上記第2のプログラムは、第2の命令セットのうち
の命令を含むような装置において、 上記第1のプログラムの実行中に動作して、上記通話が
上記第1のドメインにおけるフォーリンアドレススペー
スにおけるクロスドメイン基準アドレス範囲内のターゲ
ットアドレスを指定しているかを検出する検出手段と、 上記検出手段に結合され上記ターゲットアドレスが上記
クロスドメイン基準アドレス範囲内にあることに応答し
て、上記ターゲットアドレスを数学的に操作することに
よって、上記第2のドメインにおける上記ターゲットア
ドレスに対応する上記第2のドメインにおける被呼アド
レスを決定するための決定手段と、 上記被呼アドレスに位置する上記第2のプログラムの命
令をフェッチして実行する実行手段と、 を備えたことを特徴とする装置。 - 【請求項9】 上記クロスドメイン基準アドレス範囲
は、上記クロスドメイン基準アドレス範囲の境界を定め
る第1および第2の境界アドレスを含み、上記決定手段
は、上記ターゲットアドレスを数学的に操作する数学的
操作手段を含み、該数学的操作手段は、A)上記ターゲ
ットアドレスと上記第1および第2の境界アドレスのう
ちの1つとの間のオフセットを決定する手段と、B)上
記第2のドメインにおける第2の所定のアドレス範囲内
のオフセットを使用して、上記第2のプログラムのコー
ドが記憶されている上記被呼アドレスを識別する手段と
を備える請求項8に記載の装置。 - 【請求項10】 上記決定手段は、上記ターゲットアド
レスに対して演算操作を行って上記被呼アドレスを生じ
るように上記ターゲットアドレスを数学的に操作する請
求項8に記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20745394A | 1994-03-08 | 1994-03-08 | |
US08/207453 | 1994-03-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07287659A JPH07287659A (ja) | 1995-10-31 |
JP2965884B2 true JP2965884B2 (ja) | 1999-10-18 |
Family
ID=22770608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7047337A Expired - Fee Related JP2965884B2 (ja) | 1994-03-08 | 1995-03-07 | コンピュータシステムにおいてクロスドメイン通話を検出及び実行するための方法及び装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5666519A (ja) |
EP (1) | EP0671685B1 (ja) |
JP (1) | JP2965884B2 (ja) |
KR (1) | KR950033823A (ja) |
DE (1) | DE69505717T2 (ja) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289390B1 (en) | 1993-08-18 | 2001-09-11 | Microsoft Corporation | System and method for performing remote requests with an on-line service network |
US5774668A (en) * | 1995-06-07 | 1998-06-30 | Microsoft Corporation | System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing |
US6901433B2 (en) * | 1995-06-07 | 2005-05-31 | Microsoft Corporation | System for providing users with a filtered view of interactive network directory obtains from remote properties cache that provided by an on-line service |
US5956489A (en) * | 1995-06-07 | 1999-09-21 | Microsoft Corporation | Transaction replication system and method for supporting replicated transaction-based services |
US5933599A (en) * | 1995-07-17 | 1999-08-03 | Microsoft Corporation | Apparatus for presenting the content of an interactive on-line network |
US5941947A (en) * | 1995-08-18 | 1999-08-24 | Microsoft Corporation | System and method for controlling access to data entities in a computer network |
US5956509A (en) | 1995-08-18 | 1999-09-21 | Microsoft Corporation | System and method for performing remote requests with an on-line service network |
US5892934A (en) * | 1996-04-02 | 1999-04-06 | Advanced Micro Devices, Inc. | Microprocessor configured to detect a branch to a DSP routine and to direct a DSP to execute said routine |
US5721945A (en) * | 1996-05-06 | 1998-02-24 | Advanced Micro Devices | Microprocessor configured to detect a DSP call instruction and to direct a DSP to execute a routine corresponding to the DSP call instruction |
US6513057B1 (en) * | 1996-10-28 | 2003-01-28 | Unisys Corporation | Heterogeneous symmetric multi-processing system |
US6360244B1 (en) * | 1997-04-11 | 2002-03-19 | Fujitsu Limited | System and method for multi-level memory domain protection |
US6128679A (en) * | 1998-02-26 | 2000-10-03 | Unisys Corporation | Computer for executing I/O instructions, by emulation, in a foreign application program wherein the emulator result thread is blocked from running between processes |
JPH11296381A (ja) * | 1998-04-08 | 1999-10-29 | Matsushita Electric Ind Co Ltd | 仮想マシン及びコンパイラ |
US6308255B1 (en) | 1998-05-26 | 2001-10-23 | Advanced Micro Devices, Inc. | Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system |
US6480952B2 (en) | 1998-05-26 | 2002-11-12 | Advanced Micro Devices, Inc. | Emulation coprocessor |
US7305451B2 (en) * | 1998-08-24 | 2007-12-04 | Microsoft Corporation | System for providing users an integrated directory service containing content nodes located in different groups of application servers in computer network |
EP2275930B1 (en) * | 1999-01-28 | 2017-06-14 | Advanced Silicon Technologies, LLC | Executing programs for a first computer architecture on a computer of a second architecture |
US6882968B1 (en) * | 1999-10-25 | 2005-04-19 | Sony Computer Entertainment Inc. | Method of measuring performance of an emulator and for adjusting emulator operation in response thereto |
AU2002227451A1 (en) * | 2000-11-10 | 2002-05-21 | Chipwrights Design, Inc. | Method and apparatus for reducing branch latency |
US6732253B1 (en) * | 2000-11-13 | 2004-05-04 | Chipwrights Design, Inc. | Loop handling for single instruction multiple datapath processor architectures |
US6931518B1 (en) | 2000-11-28 | 2005-08-16 | Chipwrights Design, Inc. | Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic |
JP4783527B2 (ja) | 2001-01-31 | 2011-09-28 | 株式会社ガイア・システム・ソリューション | データ処理システム、データ処理装置およびその制御方法 |
JP4865960B2 (ja) | 2001-06-25 | 2012-02-01 | 株式会社ガイア・システム・ソリューション | データ処理装置およびその制御方法 |
US6993674B2 (en) | 2001-12-27 | 2006-01-31 | Pacific Design, Inc. | System LSI architecture and method for controlling the clock of a data processing system through the use of instructions |
US7493607B2 (en) | 2002-07-09 | 2009-02-17 | Bluerisc Inc. | Statically speculative compilation and execution |
US20050114850A1 (en) | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
US7996671B2 (en) | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
US8020141B2 (en) * | 2004-12-06 | 2011-09-13 | Microsoft Corporation | Operating-system process construction |
US7716642B1 (en) | 2005-05-03 | 2010-05-11 | Emc Corporation | Techniques for detecting coding incompatibilities |
US8078740B2 (en) | 2005-06-03 | 2011-12-13 | Microsoft Corporation | Running internet applications with low rights |
US8849968B2 (en) | 2005-06-20 | 2014-09-30 | Microsoft Corporation | Secure and stable hosting of third-party extensions to web services |
US8074231B2 (en) * | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
US20070094495A1 (en) * | 2005-10-26 | 2007-04-26 | Microsoft Corporation | Statically Verifiable Inter-Process-Communicative Isolated Processes |
US8250082B2 (en) | 2006-06-23 | 2012-08-21 | Microsoft Corporation | Cross domain communication |
US8185737B2 (en) | 2006-06-23 | 2012-05-22 | Microsoft Corporation | Communication across domains |
US8032898B2 (en) * | 2006-06-30 | 2011-10-04 | Microsoft Corporation | Kernel interface with categorized kernel objects |
US20080126766A1 (en) | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
US8789063B2 (en) * | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
US20080244507A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Homogeneous Programming For Heterogeneous Multiprocessor Systems |
US10019570B2 (en) * | 2007-06-14 | 2018-07-10 | Microsoft Technology Licensing, Llc | Protection and communication abstractions for web browsers |
US8595821B2 (en) | 2011-01-14 | 2013-11-26 | International Business Machines Corporation | Domains based security for clusters |
US8631123B2 (en) | 2011-01-14 | 2014-01-14 | International Business Machines Corporation | Domain based isolation of network ports |
US8832389B2 (en) * | 2011-01-14 | 2014-09-09 | International Business Machines Corporation | Domain based access control of physical memory space |
US9830176B2 (en) | 2013-04-19 | 2017-11-28 | The Trustees Of Columbia University In The City Of New York | Methods, systems, and media for binary compatible graphics support in mobile operating systems |
WO2014172710A1 (en) * | 2013-04-19 | 2014-10-23 | The Trustees Of Columbia University In The City Of New York | Methods, systems, and media for binary compatibility |
US10423537B2 (en) * | 2018-01-31 | 2019-09-24 | Arm Limited | Address space resizing table for simulation of processing of target program code on a target data processing apparatus |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4503492A (en) * | 1981-09-11 | 1985-03-05 | Data General Corp. | Apparatus and methods for deriving addresses of data using painters whose values remain unchanged during an execution of a procedure |
US5210832A (en) * | 1986-10-14 | 1993-05-11 | Amdahl Corporation | Multiple domain emulation system with separate domain facilities which tests for emulated instruction exceptions before completion of operand fetch cycle |
US5210874A (en) * | 1988-03-22 | 1993-05-11 | Digital Equipment Corporation | Cross-domain call system in a capability based digital data processing system |
US5307504A (en) * | 1991-03-07 | 1994-04-26 | Digital Equipment Corporation | System and method for preserving instruction granularity when translating program code from a computer having a first architecture to a computer having a second reduced architecture during the occurrence of interrupts due to asynchronous events |
MX9200935A (es) * | 1991-03-07 | 1993-03-01 | Digital Equipment Corp | Sistema y metodo para detectar llamadas de instruccion de dominio cruzado en un sistema de computadora |
US5287490A (en) * | 1991-03-07 | 1994-02-15 | Digital Equipment Corporation | Identifying plausible variable length machine code of selecting address in numerical sequence, decoding code strings, and following execution transfer paths |
US5339422A (en) * | 1991-03-07 | 1994-08-16 | Digital Equipment Corporation | System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment |
JPH05233570A (ja) * | 1991-12-26 | 1993-09-10 | Internatl Business Mach Corp <Ibm> | 異オペレーティング・システム間分散データ処理システム |
JPH05346872A (ja) * | 1992-06-15 | 1993-12-27 | Toshiba Corp | 異種計算機命令の疑似実行方法および装置 |
JPH05346871A (ja) * | 1992-06-15 | 1993-12-27 | Toshiba Corp | 異種計算機命令の疑似実行方法および装置 |
US5497463A (en) * | 1992-09-25 | 1996-03-05 | Bull Hn Information Systems Inc. | Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system |
-
1995
- 1995-02-21 EP EP95301096A patent/EP0671685B1/en not_active Expired - Lifetime
- 1995-02-21 DE DE69505717T patent/DE69505717T2/de not_active Expired - Fee Related
- 1995-03-07 JP JP7047337A patent/JP2965884B2/ja not_active Expired - Fee Related
- 1995-03-08 KR KR1019950004685A patent/KR950033823A/ko not_active Application Discontinuation
-
1996
- 1996-09-30 US US08/721,842 patent/US5666519A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5666519A (en) | 1997-09-09 |
EP0671685A3 (en) | 1996-05-15 |
JPH07287659A (ja) | 1995-10-31 |
EP0671685A2 (en) | 1995-09-13 |
DE69505717T2 (de) | 1999-06-24 |
KR950033823A (ko) | 1995-12-26 |
EP0671685B1 (en) | 1998-11-04 |
DE69505717D1 (de) | 1998-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2965884B2 (ja) | コンピュータシステムにおいてクロスドメイン通話を検出及び実行するための方法及び装置 | |
KR100737666B1 (ko) | 가상 기계 동작에서 기계 상태를 관리하는 방법 및 시스템 | |
RU2686552C2 (ru) | Системы и способы предоставления результата текущей команды процессора при выходе из виртуальной машины | |
US10303491B2 (en) | Method and device of running application program across systems | |
US6009261A (en) | Preprocessing of stored target routines for emulating incompatible instructions on a target processor | |
US7275028B2 (en) | System and method for the logical substitution of processor control in an emulated computing environment | |
US5430862A (en) | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution | |
US7594094B2 (en) | Move data facility with optional specifications | |
US7783867B2 (en) | Controlling instruction execution in a processing environment | |
US5678032A (en) | Method of optimizing the execution of program instuctions by an emulator using a plurality of execution units | |
JP2001514411A (ja) | 信頼できない実行可能コードに関するセキュリティ向上 | |
JP2004054948A (ja) | 非同期のエミュレートされた割込みの同期化 | |
US20160048458A1 (en) | Computer Security Systems and Methods Using Hardware-Accelerated Access To Guest Memory From Below The Operating System | |
US6578193B1 (en) | Endian-neutral loader for interpretive environment | |
US7506321B1 (en) | Computer emulator employing direct execution of compiled functions | |
US20030093258A1 (en) | Method and apparatus for efficient simulation of memory mapped device access | |
US7293184B2 (en) | Programmatic binding for power management events involving execution of instructions in a first programming system with a first interface and a second programming system with a second interface | |
US20040193394A1 (en) | Method for CPU simulation using virtual machine extensions | |
US7882336B2 (en) | Employing a buffer to facilitate instruction execution | |
US20210157601A1 (en) | Exception interception | |
JPS6273333A (ja) | エミュレーション制御装置 | |
JP2715967B2 (ja) | マイクロコンピュータ | |
JP2637770B2 (ja) | マイクロコンピュータ | |
EP0842466B1 (en) | Method for emulating program instructions | |
JPS61145643A (ja) | 可変語長命令処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080813 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090813 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090813 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100813 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |