JP2004110812A - マルチプロセッサ・ホスト上でのマルチプロセッサ・アドレス変換の効率のよいエミュレーションのための方法およびシステム - Google Patents
マルチプロセッサ・ホスト上でのマルチプロセッサ・アドレス変換の効率のよいエミュレーションのための方法およびシステム Download PDFInfo
- Publication number
- JP2004110812A JP2004110812A JP2003302167A JP2003302167A JP2004110812A JP 2004110812 A JP2004110812 A JP 2004110812A JP 2003302167 A JP2003302167 A JP 2003302167A JP 2003302167 A JP2003302167 A JP 2003302167A JP 2004110812 A JP2004110812 A JP 2004110812A
- Authority
- JP
- Japan
- Prior art keywords
- target
- host
- memory address
- virtual memory
- page table
- 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.)
- Pending
Links
Images
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/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/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】 ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用してターゲット・システムのメモリ・アドレス指定をエミュレートするための方法(およびシステム)は、ターゲット仮想メモリ・アドレスをシミュレート済みページ・テーブルに入力してホスト仮想メモリ・アドレスを入手するステップを含む。ターゲット・システムは、それが動作しているソフトウェアに認識されない。
【選択図】 図10
Description
1998年2月発表のStephenA. Herrodの「Using Complete MachineSimulation to Understand Computer System Behavior」というスタンフォード大学博士論文 1987年10月4〜8日にオーランドで開催されたObject Oriented Programming Systems Languages and ApplicationsConference (OOPSLA)の会議録ならびにSpecialIssue of Sigplan Notices, vol. 22, No. 12, Dec. 1987, vol. 22, No. 7, Jun. 24におけるCathy Mayによる「Mimic: A Fast System/370 Simulator」という論文
ターゲット仮想メモリ・アドレスをページ・テーブルに入力してホスト仮想メモリ・アドレスを入手するステップを具備し、
前記ターゲット・システムが、それが動作しているソフトウェアに認識されない方法。
(2)前記ページ・テーブルがシミュレート済みページ・テーブルを具備し、前記方法が、
前記ホスト仮想メモリ・アドレスにより前記シミュレート済みページ・テーブルから特権情報を入手するステップをさらに具備する、上記(1)に記載の方法。
(3)前記ページ・テーブルにより、いくつかのアドレスをまとめて分析し、前記ページ・テーブル・アクセスが複数のアクセスについて1回行われるようにそれらを分類するステップをさらに具備する、上記(1)に記載の方法。
(4)前記ターゲット仮想メモリ・アドレスに対応する前記ホスト仮想メモリ・アドレスを前記ターゲット・システム上でローカルにキャッシュするステップをさらに具備する、上記(1)に記載の方法。
(5)それに対するアクセスを行うときに、前記ページ・テーブルをロックするステップをさらに具備する、上記(1)に記載の方法。
(6)前記ターゲット・プロセッサ用のページ・テーブル内の諸項目からなるローカル・キャッシュを提供するステップをさらに具備する、上記(1)に記載の方法。
(7)前記マルチプロセッサ・システムにおいて、前記マルチプロセッサ・システムのシミュレートした各プロセッサごとに1つのキャッシュが設けられ、前記キャッシュが対応するターゲット・プロセッサによってアクセスされた最近のページに関する情報を含むステップをさらに具備する、上記(6)に記載の方法。
(8)前記ターゲット・プロセッサをシミュレートするスレッドによる前記ローカル・キャッシュへのアクセスがロックされず、前記マルチプロセッサ・システム内の他のプロセッサをエミュレートするスレッドが前記ローカル・キャッシュにアクセスしない、上記(6)に記載の方法。
(9)前記ターゲット・プロセッサにおいて、バッファおよび前記ローカル・キャッシュにターゲット仮想メモリ・アドレスを同時に入力するステップをさらに具備し、
前記ターゲット仮想メモリ・アドレスが前記ローカル・キャッシュに存在する場合に、前記ローカル・キャッシュが前記ホスト仮想メモリ・アドレスと前記位置アクセス権を前記ホスト・システムに送る、上記(6)に記載の方法。
(10)前記ローカル・キャッシュに「ミス」がある場合に、前記バッファに信号が送られ、
前記バッファが前記情報を要求する信号を前記ページ・テーブルに発行する、上記(9)に記載の方法。
(11)前記ページ・テーブルが、前記要求された情報を有する所望のページを見つけ、前記要求された情報および特権とともに前記ページを前記ローカル・キャッシュに送り、
前記ローカル・キャッシュが、前記ホスト仮想メモリ・アドレスとページ・アクセス権を要求側に送る、上記(10)に記載の方法。
(12)妥当性/状況ビット、プロセスID、仮想アドレス、前記仮想アドレスに対応する実アドレス、保護ビット、ルックアサイド・マスクに関する情報を含む項目を前記ページ・テーブルに提供するステップをさらに具備し、
前記ルックアサイド・マスクが、前記システム内のどのプロセッサが所望の情報の一部分をキャッシュしたかを示すビット・パターンである、上記(1)に記載の方法。
(13)対応する項目がすでに前記ページ・テーブル内に存在する場合に、前記対応する項目が前記ローカル・キャッシュにコピーされる、上記(6)に記載の方法。
(14)前記項目が前記ページ・テーブル内に存在しない場合に、前記ターゲット・システム内のページ不在がシミュレートされ、シミュレート中の前記ターゲット・プロセッサのオペレーティング・システム内のページ不在ハンドラを呼び出し、必要なページが持ち込まれる、上記(13)に記載の方法。
(15)エミュレートした命令が、LOAD命令およびSTORE命令のうちの少なくとも一方を具備する、上記(1)に記載の方法。
(16)他のマルチプロセッシング・システムの仮想メモリ・アドレス指定を使用してエミュレートするときに、あるマルチプロセッシング・システムのメモリ・アドレス指定をマッピングする方法において、
ターゲット仮想メモリ・アドレスによりターゲット・プロセッサ上のローカル・ルックアサイド・テーブル(LLT)にアクセスするステップと、
前記LLTに「ミス」があるかどうかを判定するステップと、
前記LLTで判定された前記ミスにより、グローバル・ページ・テーブル用のロックを入手するステップとを具備する方法。
(17)前記グローバル・ページ・テーブルにアクセスするステップと、
前記グローバル・ページ・テーブルにミスがあるかどうかを判定するステップとをさらに具備する、上記(16)に記載の方法。
(18)前記グローバル・ページ・テーブルで前記ミスが判定されないときに、前記グローバル・ページ項目を前記LLTにコピーするステップと、
前記ページ・テーブル・ロックを解除するステップとをさらに具備する、上記(17)に記載の方法。
(19)前記ページ・テーブルで前記ミスが判定されたことにより、前記ページ・テーブル・ロックを解除するステップと、
シミュレート中の前記ターゲット・プロセッサをチェックポイント付き状態にリセットするステップと、
前記ホスト・オペレーティング・システム内のページ不在ハンドラを呼び出して、前記チェックポイント付き状態から始めて、前記ページ不在を判定するステップと、
前記欠落ページを検索し、前記欠落ページを前記グローバル・ページ・テーブルに入れるステップとをさらに具備する、上記(17)に記載の方法。
(20)エミュレートした命令が、LOAD命令およびSTORE命令のうちの少なくとも一方を具備する、上記(16)に記載の方法。
(21)ターゲット・システムの動作を表現する1つまたは複数のスレッドの実行によりターゲット・nプロセッサ・システム(n≧1)の動作をエミュレートするためのホスト・マルチプロセッサ・システムにおいて、前記ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用して前記ターゲット・システムのメモリ・アドレス指定をエミュレートするための方法であって、
(a)ターゲット・システム仮想メモリ・アドレス(ATV)を読み取るステップと、
(b)前記ATVをターゲット実アドレス(ATR)にマッピングするステップと、
(c)前記ATRをホスト仮想メモリ・アドレス(AHV)にマッピングするステップと、
(d)前記AHVをホスト実メモリ・アドレスにマッピングするステップとを具備し、
前記ターゲット・システムのメモリ・アドレス指定のエミュレーションが前記ホスト・マルチプロセッサ・システム上で動作するアプリケーションとして取り扱われる方法。
(22)ターゲット・システムのメモリ・アドレス指定をエミュレートするためのシステムにおいて、
ターゲット・システムからのターゲット仮想メモリ・アドレスをホスト仮想メモリ・アドレスおよびページ・アクセス権にマッピングするためのページ・テーブルを具備し、
前記ターゲット・システムが、それが動作しているソフトウェアに認識されないシステム。
(23)前記ページ・テーブルが、いくつかのアドレスをまとめて分析し、前記シミュレートしたページ・テーブル・アクセスが複数のアクセスについて1回行われるようにそれらを分類するための手段を含む、上記(22)に記載のシステム。
(24)前記ターゲット・システムが、前記ターゲット仮想メモリ・アドレスに対応する前記ホスト仮想メモリ・アドレスを前記ターゲット・システム上でローカルにキャッシュするためのローカル・ルックアサイド・テーブル(LLT)を含む、上記(22)に記載のシステム。
(25)それに対するアクセスを行うときに、前記ページ・テーブルをロックするためのロックをさらに具備する、上記(22)に記載のシステム。
(26)前記マルチプロセッサ・システムにおいて、前記マルチプロセッサ・システムのシミュレートした各プロセッサごとに1つの前記LLTが設けられ、前記LLTが対応するターゲット・プロセッサによってアクセスされた最近のページに関する情報を含むことをさらに具備する、上記(22)に記載のシステム。
(27)前記プロセッサをシミュレートするスレッドによる前記LLTへのアクセスがロックされず、
前記マルチプロセッサ・システム内の他のプロセッサをエミュレートするスレッドが前記LLTにアクセスしない、上記(26)に記載のシステム。
(28)前記LLTにより前記ターゲット仮想メモリ・アドレスが受け取られるのと実質的に同時に前記ターゲット仮想メモリ・アドレスを受け取るためのバッファをさらに具備し、
前記ターゲット仮想メモリ・アドレスが前記LLTに存在する場合に、前記LLTが前記ホスト仮想メモリ・アドレスと前記位置アクセス権を前記ホスト・システムに送る、上記(26)に記載のシステム。
(29)前記LLTに「ミス」がある場合に、バッファに信号が送られ、
前記バッファが前記情報を要求する信号を前記ページ・テーブルに発行する、上記(26)に記載のシステム。
(30)前記ページ・テーブルが、要求された情報を有する所望のページを見つけ、前記情報および特権とともに前記ページを前記LLTに送り、
前記LLTが、前記ホスト仮想メモリ・アドレスとページ・アクセス権を前記要求側に送る、上記(29)に記載のシステム。
(31)前記ページ・テーブルが、妥当性/状況ビット、プロセスID、仮想アドレス、前記仮想アドレスに対応する実アドレス、保護ビット、ルックアサイド・マスクに関する情報を含む項目を含み、
前記ルックアサイド・マスクが、前記システム内のどのプロセッサが所望の情報の一部分をキャッシュしたかを示すビット・パターンである、上記(22)に記載のシステム。
(32)ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用してターゲット・システムのメモリ・アドレス指定をエミュレートするためのシステムにおいて、
ターゲット仮想メモリ・アドレスを受け取り、前記ターゲット仮想メモリ・アドレスに関する情報が前記LLTに記憶された場合にホスト仮想メモリ・アドレスおよびページ・アクセス権を出力するためのローカル・ルックアサイド・テーブル(LLT)を具備するシステム。
(33)前記ターゲット仮想メモリ・アドレスを受け取り、前記ターゲット仮想メモリ・アドレスに対応する前記ホスト仮想メモリ・アドレスを提供するためのページ・テーブルをさらに具備する、上記(32)に記載のシステム。
(34)前記ターゲット・システムが、それが動作しているソフトウェアに認識されない、上記(32)に記載のシステム。
(35)それが前記LLTで見つからないときに、前記ページ・テーブルが前記ターゲット仮想メモリ・アドレスに対応する前記ホスト仮想メモリ・アドレス情報で前記LLTを更新する、上記(33)に記載のシステム。
(36)他のマルチプロセッシング・システムの仮想メモリ・アドレス指定を使用してエミュレートするときに、あるマルチプロセッシング・システムのメモリ・アドレス指定をマッピングするためのシステムにおいて、
ターゲット仮想メモリ・アドレスとそれに対応するホスト仮想メモリ・アドレスとを記憶するためのターゲット・プロセッサ上のローカル・ルックアサイド・テーブル(LLT)と、
ターゲット仮想メモリ・アドレスにより前記LLTにアクセスするための手段と、
前記LLTに「ミス」があるかどうかを判定するための手段と、
前記判定手段からの入力に基づいて、グローバル・ページ・テーブル用のロックを入手するための手段とを具備するシステム。
(37)ターゲット・システムの動作を表現する1つまたは複数のスレッドの実行によりターゲット・nプロセッサ・システム(n≧1)の動作のマルチプロセッサ・エミュレーションのためのシステムにおいて、
ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用して前記ターゲット・システムのメモリ・アドレス指定をエミュレートするための手段を具備し、前記エミュレーティング手段が、
(a)ターゲット・システム仮想メモリ・アドレス(ATV)を読み取るための手段と、
(b)前記ATVをターゲット実アドレス(ATR)にマッピングするための手段と、
(c)前記ATRをホスト仮想メモリ・アドレス(AHV)にマッピングするための手段と、
(d)前記AHVをホスト実メモリ・アドレスにマッピングするための手段とを具備し、
前記ターゲット・システムのメモリ・アドレス指定のエミュレーションが前記ホスト・マルチプロセッサ・システム上で動作するアプリケーションとして取り扱われるシステム。
(38)ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用してターゲット・システムのメモリ・アドレス指定をエミュレートする方法を実行するためにディジタル処理装置により実行可能な複数の機械可読命令からなるプログラムを具体的に実施する信号運搬媒体において、前記方法が、
ターゲット仮想メモリ・アドレスをシミュレート済みページ・テーブルに入力してホスト仮想メモリ・アドレスを入手するステップを具備し、
前記ターゲット・システムが、それが動作しているソフトウェアに認識されない信号運搬媒体。
(39)他のマルチプロセッシング・システムの仮想メモリ・アドレス指定を使用してエミュレートするときに、あるマルチプロセッシング・システムのメモリ・アドレス指定をマッピングする方法を実行するためにディジタル処理装置により実行可能な複数の機械可読命令からなるプログラムを具体的に実施する信号運搬媒体において、前記方法が、
ターゲット仮想メモリ・アドレスによりターゲット・プロセッサ上のローカル・ルックアサイド・テーブル(LLT)にアクセスするステップと、
前記LLTに「ミス」があるかどうかを判定するステップと、
前記LLTで判定された前記ミスにより、前記ページ・テーブル用のロックを入手するステップとを具備する信号運搬媒体。
(40)ターゲット・システムの動作を表現する1つまたは複数のスレッドの実行によりターゲット・nプロセッサ・システム(n≧1)の動作をエミュレートするホスト・マルチプロセッサ・システムにおいて、ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用してターゲット・システムのメモリ・アドレス指定をエミュレートするための方法を実行するためにディジタル処理装置により実行可能な複数の機械可読命令からなるプログラムを具体的に実施する信号運搬媒体において、前記方法が、
(a)ターゲット・システム仮想メモリ・アドレス(ATV)を読み取るステップと、
(b)前記ATVをターゲット実アドレス(ATR)にマッピングするステップと、
(c)前記ATRをホスト仮想メモリ・アドレス(AHV)にマッピングするステップと、
(d)前記AHVをホスト実メモリ・アドレスにマッピングするステップとを具備し、
前記ターゲット・システムのメモリ・アドレス指定のエミュレーションが前記ホスト・マルチプロセッサ・システム上で動作するアプリケーションとして取り扱われる信号運搬媒体。
120 ターゲット実メモリ
210 シミュレート済みページ・マッピング・テーブル
220、330、440、540 ホスト実メモリ
310 ターゲット/ホスト仮想アドレス・マッパ
320、410、420、430、530 ホスト・ページ・マッピング・テーブル
420 ターゲット実/ホスト仮想マッパ
500A ターゲットOS機能
500B ホストOS機能
520 シミュレートした実/ホスト仮想マッパ
600 710 シミュレート済みページ・テーブル
810 グローバル・シミュレート済みページ・テーブル
820 ローカル・ルックアサイド・テーブル(シミュレートしたターゲット・プロセッサ1)
910 妥当性/状況ビット
920 プロセスID
930 仮想アドレス
940 実アドレス
950 保護ビット
960 ルックアサイド・マスク
1118 I/Oアダプタ
1122 ユーザ・インタフェース・アダプタ
1134 通信アダプタ
1136 ディスプレイ・アダプタ
1139 プリンタ
Claims (40)
- ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用してターゲット・システムのメモリ・アドレス指定をエミュレートする方法において、
ターゲット仮想メモリ・アドレスをページ・テーブルに入力してホスト仮想メモリ・アドレスを入手するステップを具備し、
前記ターゲット・システムが、それが動作しているソフトウェアに認識されない方法。 - 前記ページ・テーブルがシミュレート済みページ・テーブルを具備し、前記方法が、
前記ホスト仮想メモリ・アドレスにより前記シミュレート済みページ・テーブルから特権情報を入手するステップをさらに具備する、請求項1に記載の方法。 - 前記ページ・テーブルにより、いくつかのアドレスをまとめて分析し、前記ページ・テーブル・アクセスが複数のアクセスについて1回行われるようにそれらを分類するステップをさらに具備する、請求項1に記載の方法。
- 前記ターゲット仮想メモリ・アドレスに対応する前記ホスト仮想メモリ・アドレスを前記ターゲット・システム上でローカルにキャッシュするステップをさらに具備する、請求項1に記載の方法。
- それに対するアクセスを行うときに、前記ページ・テーブルをロックするステップをさらに具備する、請求項1に記載の方法。
- 前記ターゲット・プロセッサ用のページ・テーブル内の諸項目からなるローカル・キャッシュを提供するステップをさらに具備する、請求項1に記載の方法。
- 前記マルチプロセッサ・システムにおいて、前記マルチプロセッサ・システムのシミュレートした各プロセッサごとに1つのキャッシュが設けられ、前記キャッシュが対応するターゲット・プロセッサによってアクセスされた最近のページに関する情報を含むステップをさらに具備する、請求項6に記載の方法。
- 前記ターゲット・プロセッサをシミュレートするスレッドによる前記ローカル・キャッシュへのアクセスがロックされず、前記マルチプロセッサ・システム内の他のプロセッサをエミュレートするスレッドが前記ローカル・キャッシュにアクセスしない、請求項6に記載の方法。
- 前記ターゲット・プロセッサにおいて、バッファおよび前記ローカル・キャッシュにターゲット仮想メモリ・アドレスを同時に入力するステップをさらに具備し、
前記ターゲット仮想メモリ・アドレスが前記ローカル・キャッシュに存在する場合に、前記ローカル・キャッシュが前記ホスト仮想メモリ・アドレスと前記位置アクセス権を前記ホスト・システムに送る、請求項6に記載の方法。 - 前記ローカル・キャッシュに「ミス」がある場合に、前記バッファに信号が送られ、
前記バッファが前記情報を要求する信号を前記ページ・テーブルに発行する、請求項9に記載の方法。 - 前記ページ・テーブルが、前記要求された情報を有する所望のページを見つけ、前記要求された情報および特権とともに前記ページを前記ローカル・キャッシュに送り、
前記ローカル・キャッシュが、前記ホスト仮想メモリ・アドレスとページ・アクセス権を要求側に送る、請求項10に記載の方法。 - 妥当性/状況ビット、プロセスID、仮想アドレス、前記仮想アドレスに対応する実アドレス、保護ビット、ルックアサイド・マスクに関する情報を含む項目を前記ページ・テーブルに提供するステップをさらに具備し、
前記ルックアサイド・マスクが、前記システム内のどのプロセッサが所望の情報の一部分をキャッシュしたかを示すビット・パターンである、請求項1に記載の方法。 - 対応する項目がすでに前記ページ・テーブル内に存在する場合に、前記対応する項目が前記ローカル・キャッシュにコピーされる、請求項6に記載の方法。
- 前記項目が前記ページ・テーブル内に存在しない場合に、前記ターゲット・システム内のページ不在がシミュレートされ、シミュレート中の前記ターゲット・プロセッサのオペレーティング・システム内のページ不在ハンドラを呼び出し、必要なページが持ち込まれる、請求項13に記載の方法。
- エミュレートした命令が、LOAD命令およびSTORE命令のうちの少なくとも一方を具備する、請求項1に記載の方法。
- 他のマルチプロセッシング・システムの仮想メモリ・アドレス指定を使用してエミュレートするときに、あるマルチプロセッシング・システムのメモリ・アドレス指定をマッピングする方法において、
ターゲット仮想メモリ・アドレスによりターゲット・プロセッサ上のローカル・ルックアサイド・テーブル(LLT)にアクセスするステップと、
前記LLTに「ミス」があるかどうかを判定するステップと、
前記LLTで判定された前記ミスにより、グローバル・ページ・テーブル用のロックを入手するステップとを具備する方法。 - 前記グローバル・ページ・テーブルにアクセスするステップと、
前記グローバル・ページ・テーブルにミスがあるかどうかを判定するステップとをさらに具備する、請求項16に記載の方法。 - 前記グローバル・ページ・テーブルで前記ミスが判定されないときに、前記グローバル・ページ項目を前記LLTにコピーするステップと、
前記ページ・テーブル・ロックを解除するステップとをさらに具備する、請求項17に記載の方法。 - 前記ページ・テーブルで前記ミスが判定されたことにより、前記ページ・テーブル・ロックを解除するステップと、
シミュレート中の前記ターゲット・プロセッサをチェックポイント付き状態にリセットするステップと、
前記ホスト・オペレーティング・システム内のページ不在ハンドラを呼び出して、前記チェックポイント付き状態から始めて、前記ページ不在を判定するステップと、
前記欠落ページを検索し、前記欠落ページを前記グローバル・ページ・テーブルに入れるステップとをさらに具備する、請求項17に記載の方法。 - エミュレートした命令が、LOAD命令およびSTORE命令のうちの少なくとも一方を具備する、請求項16に記載の方法。
- ターゲット・システムの動作を表現する1つまたは複数のスレッドの実行によりターゲット・nプロセッサ・システム(n≧1)の動作をエミュレートするためのホスト・マルチプロセッサ・システムにおいて、前記ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用して前記ターゲット・システムのメモリ・アドレス指定をエミュレートするための方法であって、
(a)ターゲット・システム仮想メモリ・アドレス(ATV)を読み取るステップと、
(b)前記ATVをターゲット実アドレス(ATR)にマッピングするステップと、
(c)前記ATRをホスト仮想メモリ・アドレス(AHV)にマッピングするステップと、
(d)前記AHVをホスト実メモリ・アドレスにマッピングするステップとを具備し、
前記ターゲット・システムのメモリ・アドレス指定のエミュレーションが前記ホスト・マルチプロセッサ・システム上で動作するアプリケーションとして取り扱われる方法。 - ターゲット・システムのメモリ・アドレス指定をエミュレートするためのシステムにおいて、
ターゲット・システムからのターゲット仮想メモリ・アドレスをホスト仮想メモリ・アドレスおよびページ・アクセス権にマッピングするためのページ・テーブルを具備し、
前記ターゲット・システムが、それが動作しているソフトウェアに認識されないシステム。 - 前記ページ・テーブルが、いくつかのアドレスをまとめて分析し、前記シミュレートしたページ・テーブル・アクセスが複数のアクセスについて1回行われるようにそれらを分類するための手段を含む、請求項22に記載のシステム。
- 前記ターゲット・システムが、前記ターゲット仮想メモリ・アドレスに対応する前記ホスト仮想メモリ・アドレスを前記ターゲット・システム上でローカルにキャッシュするためのローカル・ルックアサイド・テーブル(LLT)を含む、請求項22に記載のシステム。
- それに対するアクセスを行うときに、前記ページ・テーブルをロックするためのロックをさらに具備する、請求項22に記載のシステム。
- 前記マルチプロセッサ・システムにおいて、前記マルチプロセッサ・システムのシミュレートした各プロセッサごとに1つの前記LLTが設けられ、前記LLTが対応するターゲット・プロセッサによってアクセスされた最近のページに関する情報を含むことをさらに具備する、請求項22に記載のシステム。
- 前記プロセッサをシミュレートするスレッドによる前記LLTへのアクセスがロックされず、
前記マルチプロセッサ・システム内の他のプロセッサをエミュレートするスレッドが前記LLTにアクセスしない、請求項26に記載のシステム。 - 前記LLTにより前記ターゲット仮想メモリ・アドレスが受け取られるのと実質的に同時に前記ターゲット仮想メモリ・アドレスを受け取るためのバッファをさらに具備し、
前記ターゲット仮想メモリ・アドレスが前記LLTに存在する場合に、前記LLTが前記ホスト仮想メモリ・アドレスと前記位置アクセス権を前記ホスト・システムに送る、請求項26に記載のシステム。 - 前記LLTに「ミス」がある場合に、バッファに信号が送られ、
前記バッファが前記情報を要求する信号を前記ページ・テーブルに発行する、請求項26に記載のシステム。 - 前記ページ・テーブルが、要求された情報を有する所望のページを見つけ、前記情報および特権とともに前記ページを前記LLTに送り、
前記LLTが、前記ホスト仮想メモリ・アドレスとページ・アクセス権を前記要求側に送る、請求項29に記載のシステム。 - 前記ページ・テーブルが、妥当性/状況ビット、プロセスID、仮想アドレス、前記仮想アドレスに対応する実アドレス、保護ビット、ルックアサイド・マスクに関する情報を含む項目を含み、
前記ルックアサイド・マスクが、前記システム内のどのプロセッサが所望の情報の一部分をキャッシュしたかを示すビット・パターンである、請求項22に記載のシステム。 - ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用してターゲット・システムのメモリ・アドレス指定をエミュレートするためのシステムにおいて、
ターゲット仮想メモリ・アドレスを受け取り、前記ターゲット仮想メモリ・アドレスに関する情報が前記LLTに記憶された場合にホスト仮想メモリ・アドレスおよびページ・アクセス権を出力するためのローカル・ルックアサイド・テーブル(LLT)を具備するシステム。 - 前記ターゲット仮想メモリ・アドレスを受け取り、前記ターゲット仮想メモリ・アドレスに対応する前記ホスト仮想メモリ・アドレスを提供するためのページ・テーブルをさらに具備する、請求項32に記載のシステム。
- 前記ターゲット・システムが、それが動作しているソフトウェアに認識されない、請求項32に記載のシステム。
- それが前記LLTで見つからないときに、前記ページ・テーブルが前記ターゲット仮想メモリ・アドレスに対応する前記ホスト仮想メモリ・アドレス情報で前記LLTを更新する、請求項33に記載のシステム。
- 他のマルチプロセッシング・システムの仮想メモリ・アドレス指定を使用してエミュレートするときに、あるマルチプロセッシング・システムのメモリ・アドレス指定をマッピングするためのシステムにおいて、
ターゲット仮想メモリ・アドレスとそれに対応するホスト仮想メモリ・アドレスとを記憶するためのターゲット・プロセッサ上のローカル・ルックアサイド・テーブル(LLT)と、
ターゲット仮想メモリ・アドレスにより前記LLTにアクセスするための手段と、
前記LLTに「ミス」があるかどうかを判定するための手段と、
前記判定手段からの入力に基づいて、グローバル・ページ・テーブル用のロックを入手するための手段とを具備するシステム。 - ターゲット・システムの動作を表現する1つまたは複数のスレッドの実行によりターゲット・nプロセッサ・システム(n≧1)の動作のマルチプロセッサ・エミュレーションのためのシステムにおいて、
ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用して前記ターゲット・システムのメモリ・アドレス指定をエミュレートするための手段を具備し、前記エミュレーティング手段が、
(a)ターゲット・システム仮想メモリ・アドレス(ATV)を読み取るための手段と、
(b)前記ATVをターゲット実アドレス(ATR)にマッピングするための手段と、
(c)前記ATRをホスト仮想メモリ・アドレス(AHV)にマッピングするための手段と、
(d)前記AHVをホスト実メモリ・アドレスにマッピングするための手段とを具備し、
前記ターゲット・システムのメモリ・アドレス指定のエミュレーションが前記ホスト・マルチプロセッサ・システム上で動作するアプリケーションとして取り扱われるシステム。 - ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用してターゲット・システムのメモリ・アドレス指定をエミュレートする方法を実行するためにディジタル処理装置により実行可能な複数の機械可読命令からなるプログラムを具体的に実施する信号運搬媒体において、前記方法が、
ターゲット仮想メモリ・アドレスをシミュレート済みページ・テーブルに入力してホスト仮想メモリ・アドレスを入手するステップを具備し、
前記ターゲット・システムが、それが動作しているソフトウェアに認識されない信号運搬媒体。 - 他のマルチプロセッシング・システムの仮想メモリ・アドレス指定を使用してエミュレートするときに、あるマルチプロセッシング・システムのメモリ・アドレス指定をマッピングする方法を実行するためにディジタル処理装置により実行可能な複数の機械可読命令からなるプログラムを具体的に実施する信号運搬媒体において、前記方法が、
ターゲット仮想メモリ・アドレスによりターゲット・プロセッサ上のローカル・ルックアサイド・テーブル(LLT)にアクセスするステップと、
前記LLTに「ミス」があるかどうかを判定するステップと、
前記LLTで判定された前記ミスにより、前記ページ・テーブル用のロックを入手するステップとを具備する信号運搬媒体。 - ターゲット・システムの動作を表現する1つまたは複数のスレッドの実行によりターゲット・nプロセッサ・システム(n≧1)の動作をエミュレートするホスト・マルチプロセッサ・システムにおいて、ホスト・マルチプロセッサ・システムのオペレーティング・システムの仮想/実メモリ・マッピング・メカニズムを使用してターゲット・システムのメモリ・アドレス指定をエミュレートするための方法を実行するためにディジタル処理装置により実行可能な複数の機械可読命令からなるプログラムを具体的に実施する信号運搬媒体において、前記方法が、
(a)ターゲット・システム仮想メモリ・アドレス(ATV)を読み取るステップと、
(b)前記ATVをターゲット実アドレス(ATR)にマッピングするステップと、
(c)前記ATRをホスト仮想メモリ・アドレス(AHV)にマッピングするステップと、
(d)前記AHVをホスト実メモリ・アドレスにマッピングするステップとを具備し、
前記ターゲット・システムのメモリ・アドレス指定のエミュレーションが前記ホスト・マルチプロセッサ・システム上で動作するアプリケーションとして取り扱われる信号運搬媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/244,559 US7953588B2 (en) | 2002-09-17 | 2002-09-17 | Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004110812A true JP2004110812A (ja) | 2004-04-08 |
Family
ID=31991913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003302167A Pending JP2004110812A (ja) | 2002-09-17 | 2003-08-26 | マルチプロセッサ・ホスト上でのマルチプロセッサ・アドレス変換の効率のよいエミュレーションのための方法およびシステム |
Country Status (3)
Country | Link |
---|---|
US (2) | US7953588B2 (ja) |
JP (1) | JP2004110812A (ja) |
CN (1) | CN100495341C (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006196005A (ja) * | 2005-01-14 | 2006-07-27 | Intel Corp | バーチャルマシーンシステムの物理的メモリのバーチャル化 |
KR100763846B1 (ko) * | 2005-12-20 | 2007-10-05 | 삼성전자주식회사 | 변환테이블 에뮬레이션을 이용한 데이터 처리 시스템 및데이터 처리 방법 |
JP2008527508A (ja) * | 2004-12-29 | 2008-07-24 | インテル・コーポレーション | 仮想化グラフィックスアドレスのワンステップアドレス変換 |
JP2009282774A (ja) * | 2008-05-22 | 2009-12-03 | Fujitsu Ltd | エミュレーションプログラム、エミュレーション装置およびエミュレーション方法 |
JP2010257049A (ja) * | 2009-04-22 | 2010-11-11 | Fujitsu Ltd | 仮想化プログラム、仮想化処理方法及び装置 |
US7873507B2 (en) | 2005-04-12 | 2011-01-18 | Fujitsu Limited | Multi-core model simulator |
JP2011513808A (ja) * | 2008-02-26 | 2011-04-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 変換例外修飾子を用いる動的アドレス変換 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030105617A1 (en) * | 2001-12-05 | 2003-06-05 | Nec Usa, Inc. | Hardware acceleration system for logic simulation |
US6895491B2 (en) * | 2002-09-26 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching |
GB2424092A (en) * | 2005-03-11 | 2006-09-13 | Transitive Ltd | Switching between code translation and execution using a trampoline |
US8225327B2 (en) * | 2005-09-15 | 2012-07-17 | International Business Machines Corporation | Synchronizing access to a shared resource utilizing selective locking |
US7444276B2 (en) * | 2005-09-28 | 2008-10-28 | Liga Systems, Inc. | Hardware acceleration system for logic simulation using shift register as local cache |
US20070074000A1 (en) * | 2005-09-28 | 2007-03-29 | Liga Systems, Inc. | VLIW Acceleration System Using Multi-state Logic |
US20070073999A1 (en) * | 2005-09-28 | 2007-03-29 | Verheyen Henry T | Hardware acceleration system for logic simulation using shift register as local cache with path for bypassing shift register |
US20070129924A1 (en) * | 2005-12-06 | 2007-06-07 | Verheyen Henry T | Partitioning of tasks for execution by a VLIW hardware acceleration system |
US20070129926A1 (en) * | 2005-12-01 | 2007-06-07 | Verheyen Henry T | Hardware acceleration system for simulation of logic and memory |
US20070150702A1 (en) * | 2005-12-23 | 2007-06-28 | Verheyen Henry T | Processor |
US7840398B2 (en) * | 2006-03-28 | 2010-11-23 | Intel Corporation | Techniques for unified management communication for virtualization systems |
US7555628B2 (en) | 2006-08-15 | 2009-06-30 | Intel Corporation | Synchronizing a translation lookaside buffer to an extended paging table |
JP5093509B2 (ja) * | 2008-10-28 | 2012-12-12 | 日本電気株式会社 | Cpuエミュレーションシステム、cpuエミュレーション方法及びcpuエミュレーションプログラム |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8635385B2 (en) * | 2010-07-16 | 2014-01-21 | Advanced Micro Devices, Inc. | Mechanism to handle peripheral page faults |
CN102467406B (zh) * | 2010-11-09 | 2014-04-16 | 无锡江南计算技术研究所 | 多处理器结构的模拟方法及模拟器 |
US9529729B2 (en) * | 2010-11-16 | 2016-12-27 | International Business Machines Corporation | Location of memory management translations in an emulated processor |
US20120317377A1 (en) * | 2011-06-09 | 2012-12-13 | Alexander Palay | Dual flash translation layer |
CN102308282A (zh) * | 2011-07-20 | 2012-01-04 | 华为技术有限公司 | 多处理器体系结构远端内存访问的模拟方法及模拟器 |
CN104335162B (zh) * | 2012-05-09 | 2018-02-23 | 英特尔公司 | 使用多个页表的执行 |
US9063721B2 (en) | 2012-09-14 | 2015-06-23 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
US10216532B2 (en) * | 2014-09-12 | 2019-02-26 | Intel Corporation | Memory and resource management in a virtual computing environment |
US9898322B2 (en) * | 2015-10-29 | 2018-02-20 | International Business Machines Corporation | Steganographic message passing between a virtual machine and a hypervisor |
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 |
US10769076B2 (en) | 2018-11-21 | 2020-09-08 | Nvidia Corporation | Distributed address translation in a multi-node interconnect fabric |
US11886877B1 (en) | 2021-09-24 | 2024-01-30 | Apple Inc. | Memory select register to simplify operand mapping in subroutines |
Family Cites Families (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4392196A (en) * | 1980-08-11 | 1983-07-05 | Harris Corporation | Multi-processor time alignment control system |
US4564903A (en) * | 1983-10-05 | 1986-01-14 | International Business Machines Corporation | Partitioned multiprocessor programming system |
JPS63226740A (ja) | 1986-12-08 | 1988-09-21 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | マルチプロセツサ・コンピユータ・システムの並列シミユレーシヨン方法 |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing 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 |
US6920416B1 (en) | 1989-08-28 | 2005-07-19 | Texas Instruments Incorporated | Electronic systems testing employing embedded serial scan generator |
US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
US5179702A (en) | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
JP2839201B2 (ja) * | 1990-07-30 | 1998-12-16 | 株式会社日立製作所 | 仮想計算機システム |
EP0550286A3 (en) | 1992-01-03 | 1993-11-03 | Amdahl Corp | 2-level multi-processor synchronization protocol |
US5249627A (en) * | 1992-03-13 | 1993-10-05 | Halliburton Company | Method for stimulating methane production from coal seams |
DE4306031C2 (de) | 1993-02-26 | 1995-11-02 | Siemens Ag | Verfahren zum ferngesteuerten Administrieren von Kommunikationssystemen |
US5440610A (en) * | 1993-04-14 | 1995-08-08 | Harris Corporation | Mechanism for controlling operation of telephone metallic loop measurement device in dependence upon rate of settling of telephone line voltage |
JPH0784883A (ja) * | 1993-09-17 | 1995-03-31 | Hitachi Ltd | 仮想計算機システムのアドレス変換バッファパージ方法 |
US5392408A (en) | 1993-09-20 | 1995-02-21 | Apple Computer, Inc. | Address selective emulation routine pointer address mapping system |
US5983012A (en) | 1993-09-28 | 1999-11-09 | Bull Hn Information Systems Inc. | Executing programs of a first system on a second system |
US5581705A (en) | 1993-12-13 | 1996-12-03 | Cray Research, Inc. | Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system |
US5619664A (en) * | 1994-01-04 | 1997-04-08 | Intel Corporation | Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms |
US5481684A (en) | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
US5440710A (en) * | 1994-03-08 | 1995-08-08 | Exponential Technology, Inc. | Emulation of segment bounds checking using paging with sub-page validity |
US5692193A (en) | 1994-03-31 | 1997-11-25 | Nec Research Institute, Inc. | Software architecture for control of highly parallel computer systems |
US5574922A (en) | 1994-06-17 | 1996-11-12 | Apple Computer, Inc. | Processor with sequences of processor instructions for locked memory updates |
JPH0887424A (ja) | 1994-09-16 | 1996-04-02 | Toshiba Corp | 電子計算機 |
US5699538A (en) | 1994-12-09 | 1997-12-16 | International Business Machines Corporation | Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor |
US5692153A (en) | 1995-03-16 | 1997-11-25 | International Business Machines Corporation | Method and system for verifying execution order within a multiprocessor data processing system |
US5833000A (en) * | 1995-03-29 | 1998-11-10 | Halliburton Energy Services, Inc. | Control of particulate flowback in subterranean wells |
US5582249A (en) * | 1995-08-02 | 1996-12-10 | Halliburton Company | Control of particulate flowback in subterranean wells |
US5787986A (en) * | 1995-03-29 | 1998-08-04 | Halliburton Energy Services, Inc. | Control of particulate flowback in subterranean wells |
US5775425A (en) * | 1995-03-29 | 1998-07-07 | Halliburton Energy Services, Inc. | Control of fine particulate flowback in subterranean wells |
US5839510A (en) * | 1995-03-29 | 1998-11-24 | Halliburton Energy Services, Inc. | Control of particulate flowback in subterranean wells |
US5751982A (en) | 1995-03-31 | 1998-05-12 | Apple Computer, Inc. | Software emulation system with dynamic translation of emulated instructions for increased processing speed |
US5655100A (en) | 1995-03-31 | 1997-08-05 | Sun Microsystems, Inc. | Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system |
US5619665A (en) * | 1995-04-13 | 1997-04-08 | Intrnational Business Machines Corporation | Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture |
US5678032A (en) | 1995-09-06 | 1997-10-14 | Bull Hn Information Systems Inc. | Method of optimizing the execution of program instuctions by an emulator using a plurality of execution units |
US6047323A (en) | 1995-10-19 | 2000-04-04 | Hewlett-Packard Company | Creation and migration of distributed streams in clusters of networked computers |
US6091897A (en) | 1996-01-29 | 2000-07-18 | Digital Equipment Corporation | Fast translation and execution of a computer program on a non-native architecture by use of background translator |
US5768593A (en) | 1996-03-22 | 1998-06-16 | Connectix Corporation | Dynamic cross-compilation system and method |
US6031992A (en) | 1996-07-05 | 2000-02-29 | Transmeta Corporation | Combining hardware and software to provide an improved microprocessor |
US5761734A (en) * | 1996-08-13 | 1998-06-02 | International Business Machines Corporation | Token-based serialisation of instructions in a multiprocessor system |
US5832205A (en) | 1996-08-20 | 1998-11-03 | Transmeta Corporation | Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed |
US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6134515A (en) | 1997-06-13 | 2000-10-17 | Telefonaktiebolaget Lm Ericsson | Controlling a first type telecommunications switch upon translating instructions for a second type telecommunications switch |
KR100522468B1 (ko) | 1997-07-11 | 2005-10-19 | 트랜스메타 코포레이션 | 타겟 프로세서의 상태를 일시적으로 홀딩하는 장치를 갖는 호스트 마이크로프로세서 |
US6381682B2 (en) * | 1998-06-10 | 2002-04-30 | Compaq Information Technologies Group, L.P. | Method and apparatus for dynamically sharing memory in a multiprocessor system |
EP1057108A1 (en) | 1998-02-26 | 2000-12-06 | Sun Microsystems, Inc. | Method and apparatus for the suspension and continuation of remote processes |
US6289419B1 (en) | 1998-03-06 | 2001-09-11 | Sharp Kabushiki Kaisha | Consistency control device merging updated memory blocks |
US6075937A (en) | 1998-03-18 | 2000-06-13 | International Business Machines Corporation | Preprocessing of stored target routines for controlling emulation of incompatible instructions on a target processor and utilizing target processor feedback for controlling non-sequential incompatible instruction emulation |
US6189141B1 (en) | 1998-05-04 | 2001-02-13 | Hewlett-Packard Company | Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
US6240490B1 (en) * | 1998-07-20 | 2001-05-29 | International Business Machines Corporation | Comprehensive multilevel cache preloading mechanism in a multiprocessing simulation environment |
US6158049A (en) | 1998-08-11 | 2000-12-05 | Compaq Computer Corporation | User transparent mechanism for profile feedback optimization |
US6289369B1 (en) | 1998-08-25 | 2001-09-11 | International Business Machines Corporation | Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system |
US6738974B1 (en) | 1998-09-10 | 2004-05-18 | International Business Machines Corporation | Apparatus and method for system resource object deallocation in a multi-threaded environment |
US6430657B1 (en) | 1998-10-12 | 2002-08-06 | Institute For The Development Of Emerging Architecture L.L.C. | Computer system that provides atomicity by using a tlb to indicate whether an exportable instruction should be executed using cache coherency or by exporting the exportable instruction, and emulates instructions specifying a bus lock |
US6463582B1 (en) | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
EP0997815A3 (en) | 1998-10-29 | 2004-05-26 | Texas Instruments Incorporated | Interactive translation system and method |
US6351844B1 (en) | 1998-11-05 | 2002-02-26 | Hewlett-Packard Company | Method for selecting active code traces for translation in a caching dynamic translator |
GB9825102D0 (en) * | 1998-11-16 | 1999-01-13 | Insignia Solutions Plc | Computer system |
US6339752B1 (en) * | 1998-12-15 | 2002-01-15 | Bull Hn Information Systems Inc. | Processor emulation instruction counter virtual memory address translation |
US7941647B2 (en) * | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
US6826748B1 (en) | 1999-01-28 | 2004-11-30 | Ati International Srl | Profiling program execution into registers of a computer |
US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US8121828B2 (en) * | 1999-01-28 | 2012-02-21 | Ati Technologies Ulc | Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions |
US6341371B1 (en) | 1999-02-23 | 2002-01-22 | International Business Machines Corporation | System and method for optimizing program execution in a computer system |
US6470492B2 (en) | 1999-05-14 | 2002-10-22 | Hewlett-Packard Company | Low overhead speculative selection of hot traces in a caching dynamic translator |
US6529862B1 (en) | 1999-06-30 | 2003-03-04 | Bull Hn Information Systems Inc. | Method and apparatus for dynamic management of translated code blocks in dynamic object code translation |
US6263302B1 (en) * | 1999-10-29 | 2001-07-17 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating the cache of a target processor |
US6345351B1 (en) * | 1999-11-12 | 2002-02-05 | Telefonaktiebolaget Lm Ericsson(Publ) | Maintenance of speculative state of parallel executed jobs in an information processing system |
US6986128B2 (en) | 2000-01-07 | 2006-01-10 | Sony Computer Entertainment Inc. | Multiple stage program recompiler and method |
US6934832B1 (en) * | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
US6311773B1 (en) * | 2000-01-28 | 2001-11-06 | Halliburton Energy Services, Inc. | Resin composition and methods of consolidating particulate solids in wells with or without closure pressure |
US6587964B1 (en) * | 2000-02-18 | 2003-07-01 | Hewlett-Packard Development Company, L.P. | Transparent software emulation as an alternative to hardware bus lock |
JP2001249824A (ja) | 2000-03-02 | 2001-09-14 | Hitachi Ltd | 論理エミュレーションプロセッサおよびそのモジュールユニット |
US6978233B1 (en) | 2000-03-03 | 2005-12-20 | Unisys Corporation | Method for emulating multi-processor environment |
US6539464B1 (en) | 2000-04-08 | 2003-03-25 | Radoslav Nenkov Getov | Memory allocator for multithread environment |
US6480845B1 (en) * | 2000-06-14 | 2002-11-12 | Bull Hn Information Systems Inc. | Method and data processing system for emulating virtual memory working spaces |
US6763328B1 (en) * | 2000-06-15 | 2004-07-13 | Bull Hn Information Systems Inc. | Method and data processing system for emulating virtual memory utilizing threads |
US6931636B2 (en) | 2000-08-08 | 2005-08-16 | Texas Instruments Incorporated | Multiprocessor emulation support using dynamic linking |
US6883165B1 (en) * | 2000-09-28 | 2005-04-19 | International Business Machines Corporation | Apparatus and method for avoiding deadlocks in a multithreaded environment |
US20020069402A1 (en) * | 2000-10-05 | 2002-06-06 | Nevill Edward Colles | Scheduling control within a system having mixed hardware and software based instruction execution |
US6993754B2 (en) | 2001-11-13 | 2006-01-31 | Hewlett-Packard Development Company, L.P. | Annotations to executable images for improved dynamic optimization functions |
US6439309B1 (en) * | 2000-12-13 | 2002-08-27 | Bj Services Company | Compositions and methods for controlling particulate movement in wellbores and subterranean formations |
US7085705B2 (en) * | 2000-12-21 | 2006-08-01 | Microsoft Corporation | System and method for the logical substitution of processor control in an emulated computing environment |
US6728846B2 (en) | 2000-12-22 | 2004-04-27 | Bull Hn Information Systems Inc. | Method and data processing system for performing atomic multiple word writes |
US6728858B2 (en) * | 2001-03-30 | 2004-04-27 | Intel Corporation | Method and apparatus including heuristic for sharing TLB entries |
JP2002312180A (ja) | 2001-04-11 | 2002-10-25 | Hitachi Ltd | 動的命令変換機能を有するプロセッサシステム、該プロセッサシステムを備えたコンピュータにて実行されるバイナリートランスレーションプログラム及びそのプロセッサシステムを実装した半導体デバイス |
GB2376099B (en) * | 2001-05-31 | 2005-11-16 | Advanced Risc Mach Ltd | Program instruction interpretation |
US7047521B2 (en) | 2001-06-07 | 2006-05-16 | Lynoxworks, Inc. | Dynamic instrumentation event trace system and methods |
US6660693B2 (en) * | 2001-08-08 | 2003-12-09 | Schlumberger Technology Corporation | Methods for dewatering shaly subterranean formations |
US6915513B2 (en) | 2001-11-29 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | System and method for dynamically replacing code |
US6961806B1 (en) | 2001-12-10 | 2005-11-01 | Vmware, Inc. | System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems |
US20030171907A1 (en) | 2002-03-06 | 2003-09-11 | Shay Gal-On | Methods and Apparatus for Optimizing Applications on Configurable Processors |
US20030182653A1 (en) * | 2002-03-22 | 2003-09-25 | Giuseppe Desoli | Systems and methods for verifying correct execution of emulated code via dynamic state verification |
US7107585B2 (en) * | 2002-07-29 | 2006-09-12 | Arm Limited | Compilation of application code in a data processing apparatus |
EP1597673B1 (en) * | 2003-02-20 | 2012-05-02 | Koninklijke Philips Electronics N.V. | Translation of a series of computer instructions |
US7093231B2 (en) * | 2003-05-06 | 2006-08-15 | David H. Alderson | Grammer for regular expressions |
DE10340081A1 (de) * | 2003-08-30 | 2005-03-31 | Cognis Deutschland Gmbh & Co. Kg | Copolymerisierbare Tenside |
US7735073B1 (en) * | 2004-02-28 | 2010-06-08 | Oracle International Corporation | Method and apparatus for data object profiling |
WO2007061426A2 (en) * | 2004-12-22 | 2007-05-31 | Fox Chase Cancer Center | Laser-accelerated proton therapy units and superconducting eletromagnetig systems for same |
-
2002
- 2002-09-17 US US10/244,559 patent/US7953588B2/en active Active
-
2003
- 2003-08-26 JP JP2003302167A patent/JP2004110812A/ja active Pending
- 2003-09-09 CN CNB031570178A patent/CN100495341C/zh not_active Expired - Lifetime
-
2011
- 2011-04-13 US US13/085,873 patent/US8719548B2/en not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008527508A (ja) * | 2004-12-29 | 2008-07-24 | インテル・コーポレーション | 仮想化グラフィックスアドレスのワンステップアドレス変換 |
US10133674B2 (en) | 2004-12-29 | 2018-11-20 | Intel Corporation | System and method for one step address translation of graphics addresses in virtualization |
US10671541B2 (en) | 2004-12-29 | 2020-06-02 | Intel Corporation | System and method for one step address translation of graphics addresses in virtualization |
US11023385B2 (en) | 2004-12-29 | 2021-06-01 | Intel Corporation | System and method for one step address translation of graphics addresses in virtualization |
JP2006196005A (ja) * | 2005-01-14 | 2006-07-27 | Intel Corp | バーチャルマシーンシステムの物理的メモリのバーチャル化 |
US7873507B2 (en) | 2005-04-12 | 2011-01-18 | Fujitsu Limited | Multi-core model simulator |
KR100763846B1 (ko) * | 2005-12-20 | 2007-10-05 | 삼성전자주식회사 | 변환테이블 에뮬레이션을 이용한 데이터 처리 시스템 및데이터 처리 방법 |
JP2011513808A (ja) * | 2008-02-26 | 2011-04-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 変換例外修飾子を用いる動的アドレス変換 |
US8683176B2 (en) | 2008-02-26 | 2014-03-25 | International Business Machines Corporation | Dynamic address translation with translation exception qualifier |
US9092351B2 (en) | 2008-02-26 | 2015-07-28 | International Business Machines Corporation | Creating a dynamic address translation with translation exception qualifier |
JP2009282774A (ja) * | 2008-05-22 | 2009-12-03 | Fujitsu Ltd | エミュレーションプログラム、エミュレーション装置およびエミュレーション方法 |
JP2010257049A (ja) * | 2009-04-22 | 2010-11-11 | Fujitsu Ltd | 仮想化プログラム、仮想化処理方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
US20040054518A1 (en) | 2004-03-18 |
CN100495341C (zh) | 2009-06-03 |
US7953588B2 (en) | 2011-05-31 |
CN1492323A (zh) | 2004-04-28 |
US20110191095A1 (en) | 2011-08-04 |
US8719548B2 (en) | 2014-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8719548B2 (en) | Method and system for efficient emulation of multiprocessor address translation on a multiprocessor | |
Witchel et al. | Mondrian memory protection | |
Narayanan et al. | {RedLeaf}: isolation and communication in a safe operating system | |
TWI622880B (zh) | 比較及取代動態位址轉譯表項之電腦程式產品、電腦系統及方法 | |
Gorman | Understanding the Linux virtual memory manager | |
Johns et al. | Introduction to the cell broadband engine architecture | |
Fitzgerald et al. | The integration of virtual memory management and interprocess communication in accent | |
KR0170565B1 (ko) | 메모리 관리 방법, 마이크로커널 구조 데이타 프로세싱 시스템, 운영 체제 퍼스낼리티 시스템 동작 방법, 퍼스낼리티 뉴트럴 서비스 프로그램 실행 방법 및 응용 프로그램 실행방법 | |
US7165164B2 (en) | Method and apparatus including heuristic for sharing TLB entries | |
US7543131B2 (en) | Controlling an I/O MMU | |
US7783838B1 (en) | Maintaining coherency of derived data in a computer system | |
US8688920B2 (en) | Computing system with guest code support of transactional memory | |
Russo | An object-oriented operating system | |
US7500072B2 (en) | Migrating data that is subject to access by input/output devices | |
US7480784B2 (en) | Ensuring deadlock free operation for peer to peer traffic in an input/output memory management unit (IOMMU) | |
JP2006526203A (ja) | ストレージの無効化、バッファ・エントリの消去 | |
Wang et al. | Enabling cross-isa offloading for cots binaries | |
KR20220045211A (ko) | 캐패빌리티 기입 어드레스 추적 | |
Skarlatos et al. | Babelfish: Fusing address translations for containers | |
JP2022104872A (ja) | バッファ保護における境界情報アクセスを提供する方法、システム、およびコンピュータ・プログラム | |
Vijaykumar et al. | MetaSys: A practical open-source metadata management system to implement and evaluate cross-layer optimizations | |
JP5063131B2 (ja) | 別のプロセスのプロセス・ローカル・ストレージにアクセスする方法、装置、コンピュータ・プログラム、およびコンピュータ実装方法 | |
Shi et al. | Memory/disk operation aware lightweight VM live migration | |
Joannou | High-performance memory safety: optimizing the CHERI capability machine | |
JP2022522740A (ja) | ハイパーバイザ命令に対する条件付きイールド |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061114 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070214 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070214 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20070214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070629 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070629 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070712 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20071005 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071005 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20071113 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20071214 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20081219 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20100419 |