JP4298728B2 - 複数のプログラムセグメントを実行する装置 - Google Patents
複数のプログラムセグメントを実行する装置 Download PDFInfo
- Publication number
- JP4298728B2 JP4298728B2 JP2006207207A JP2006207207A JP4298728B2 JP 4298728 B2 JP4298728 B2 JP 4298728B2 JP 2006207207 A JP2006207207 A JP 2006207207A JP 2006207207 A JP2006207207 A JP 2006207207A JP 4298728 B2 JP4298728 B2 JP 4298728B2
- Authority
- JP
- Japan
- Prior art keywords
- routine
- stack
- code
- object code
- software
- 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
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/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- 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
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)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
IBM社のRISCサブルーチンリンケージ規約に関する背景知識についてはニューヨーク州, アーモンクのInternational Business Machines Corporation,1992年9月刊行の「AIX XL FORTRAN Compiler/6000 User’s Guide Version 2.3」 第10章及びIBM Journal of Research of Development, 1990年1月刊行の第34巻, No. 1, pp.98−104, Marc A. Auslanderによる 「Managing programs and libraries in AIX Version 3 for RISC System/6000 processors」 参照のこと。なお、AIXはInternational BusinessMachines Corporationの商標である。
図2に示すように、ルーチン記述子20は好ましくはミックスモード域28と選択域29を有している。又、ルーチン記述子20は手続情報域30と、1つのペア31又は2つのペア31以上を有するリスト27とを持っている。これら各ペア31はコードタイプ域32と手続ポインタ33を有している。さらにルーチン記述子20はインジケータ域34、バージョン域35及びカスタムパラメータ手続域36をも有している。図2はルーチン記述子20の具体化を簡単に図示したに過ぎない。ルーチン記述子20内のこれら諸域の正確な配列はさまざまに変化し得る。
ルーチン記述子は、プログラムがオブジェクトコードにコンパイルされ、オブジェクトコードセグメントをまとめて結合し実行可能なプログラムを形成するランタイムリンカーによって解読されるとき、静的に作り出すことができる。しかしそれ以外のときは、ルーチン記述子を動的に割り当てて放出し、ルーチン記述子中の情報にアクセスし、そしてルーチン記述子中の情報をセットするか変更することが好ましい。
RoutineDescriptor=NewRoutineDescriptor(ProcPtr theProc,ProcInfoType procInfo,CodeType executionMode)
DisposeRoutineDescriptor(RoutineDescriptor *theRoutine)
図10は、さまざまなスタックモデルと呼出し規約を有する異なる2プログラムセグメント間の遷移[transition]を供給するスタックスイッチフレーム60aを示す。このスタックスイッチフレーム60aは、異なる2つのスタック規約間に遷移域を提供することによって異なる2タイプのスタックフレームが1つのスタックポインタ58のある1つのスタックモデル上に共存することを可能にする。 あるプログラムセグメント(呼出人)が別のプログラムセグメント(被呼出人)を呼出すが、被呼出人が呼出人とは違うスタックモデルまたは呼出し規約を使うときは、スタックスイッチフレーム60aが呼出人のスタックフレーム61と被呼出人のスタックフレーム62間のスタック14に位置される。呼出人のスタックフレーム61は、そのコードまたはプロセスタイプに適したスタックフォーマットになっているのに対し、被呼出人のスタックフレーム62は、その自分のコードまたはプロセスタイプに適したスタックフォーマットになっている。
あるルーチンが異なるスタックモデルを持つ別のルーチンを呼出すときは、呼出人はスタック14上のスタックフレームをプッシュする。するとモードスイッチング機構がスタック14上のスタックスイッチフレームをプッシュする。するとスタックポインタ58がスタックスイッチフレームの底をポイントするようにセットされる。もしそれがスタックスイッチフレーム60cなら、68Kスタックポインタがスタックスイッチフレームの底をもポイントするようセットされる。 スタックスイッチフレーム60bは、スタックポインタ58をポインタ68の値にセットし、レジスタ17のポインタ68により言及された被呼出人のスタック中のロケーションに記憶されたリターンアドレスを記憶することにより、スタック14からリリースされる。スタックスイッチフレーム60cは、保管された非揮発性レジスタを復元し、スタックポインタをこれに従ってリセットすることによりリリースされる。
本発明はまた、1つのオブジェクトコードタイプ内の異なる呼出し規約間をスイッチングするのにも使うことができる。例えば本発明はFORTRANとPASCALとをスイッチングするのに使うことができる。この場合、モードスイッチング機構は、実行またはコードタイプモードスイッチングは何も起こらないことを除けばほぼ同一で、むしろ呼出し規約の変形だけが行われる。また、スイッチングはコードタイプ間では発生せず呼出し規約間でだけしか発生しないので、スタックスイッチフレームも簡素化できる。
本発明はまた、ルーチン、つまり多数の呼出し規約を持っているコードまたはプログラムセグメントでも使うことができる。例えば、あるルーチンは第1のパラメータがセレクタ[selector]でその他のパラメータは数、大きさ、内容及びタイプのそれぞれでその選択値[selector value]に左右されて変化するファンクションであることがある。図17は記憶装置16が複数の域92のあるルックアップテーブル90を有している好ましい実施例を示す。ルーチン記述子20は有効な各選択値と関係し、そのルーチン記述子はその選択値に対応するプログラムまたはコードセグメントを照合する。ルックアップテーブル90中の第1域92aは、ルーチンに対応するルックアップテーブル中の適切な域92を探索[look
up]するプログラムセグメントまたはコードセグメントに分岐せよとする指示を有している。当該域92は選択値と結合して、どのルーチン記述子を使用し、それによってどのコードセグメントまたはプログラムセグメントを実行するかを決定するのに使われる。
(a)プロセッサー。
(b)メモリー。
(c)該プロセッサーがアクセスできるスタック。このスタックは、第1スタックフレームと第2スタックフレームを備え、該第1スタックフレームは第1オブジェクトコードタイプを有する第1コードセグメントに関係付けられ、第2スタックフレームは第2オブジェクトコードタイプを有する第2コードセグメントに関係付けられる。第1及び第2のオブジェクトコードタイプは互換性がないので第1及び第2のスタックフレームを異なるフォーマットになるようにされる。上記第1コードタイプは第1の呼出メカニズムに関係付けられ上記第2コードタイプは第2の呼出メカニズムに関係付けられ、これら第1及び第2の呼出メカニズムも互換性がないものとされている。
(d)スタックスイッチフレーム。このスタックスイッチフレームは、上記スタックにおいて、上記第1及び第2スタックフレーム間に配置される。さらにこのスタックフレームスイッチは、第1スタックフレームを参照する第1セグメントと、第1スタックフレームのフォーマットから第2スタックフレームのフォーマットに変換されたパラメータを持つ第2セグメントと、スタックスイッチフレーム本体が第2スタックフレームにより参照可能なフォーマットになるようにする第3セグメント情報とを有するものと、
(e)第1モードから第2モードへ切り換えるスイッチを示す指示手段。
(f)複数のオブジェクトコードタイプのうちの1つを有するコードセグメントを実行する実行手段。
上記実行手段は、上記第1コードセグメントを上記第1モードで実行し、上記第2コードセグメントを上記第2モードで実行する。上記指示手段は、上記第1コードセグメントが上記第1呼出メカニズムを使って上記第2コードセグメントを呼び出したとき起動される。
(g)第1モードから第2モードへ切り換えるスイッチ手段。このスイッチ手段は、上記指示手段によって作動される。
上記実行手段は、上記第1コードセグメントの実行時に上記スタック上に上記第1スタックフレームを割り当て、上記スイッチ手段が第1モードから第2モードへ切り換えたとき上記スタックスイッチフレームと上記第2スタックフレームを上記スタックに割り当てて上記第2呼出メカニズムを使って上記第2コードセグメントを実行する。
(h)上記第1モードに戻る戻り手段。この戻り手段は、上記第2コードセグメントの実行を終えたら作動する。
(a)プロセッサー。
(b)上記プロセッサーがアクセスできるメモリー。
(c)該プロセッサーがアクセスできるスタック。このスタックは、第1スタックフレームと第2スタックフレームを備え、該第1スタックフレームは第1オブジェクトコードタイプを有する第1コードセグメントに関係付けられ、第2スタックフレームは第2オブジェクトコードタイプを有する第2コードセグメントに関係付けられる。第1及び第2のオブジェクトコードタイプは互換性がないので第1及び第2のスタックフレームを異なるフォーマットになるようにされる。上記第1コードタイプは第1の呼出メカニズムに関係付けられ上記第2コードタイプは第2の呼出メカニズムに関係付けられ、これら第1及び第2の呼出メカニズムも互換性がないものとされている。
(d)スタックスイッチフレーム。このスタックスイッチフレームは、上記スタックにおいて、上記第1及び第2スタックフレーム間に配置される。さらにこのスタックスイッチフレームは、第1スタックフレームを参照する第1セグメントと、第1スタックフレームのフォーマットから第2スタックフレームのフォーマットに変換されたパラメータを持つ第2セグメントと、スタックスイッチフレーム本体が第2スタックフレームにより参照可能なフォーマットになるようにする第3セグメントとを有する。
(e)第1ソフトウエアルーチンと第2ソフトウエアルーチンを特定する特定手段。該第1ソフトウエアルーチンと第2ソフトウエアルーチンは同一のオブジェクトコードタイプを有し、第1ソフトウエアルーチンは第1呼出メカニズムで呼び出すことができ第2ソフトウエアルーチンは第2呼出メカニズムで呼び出すことができる。第1呼出メカニズムは第2呼出メカニズムと互換性がない。
(f)上記第1ソフトウェアルーチンが上記第1呼出メカニズムを使用して上記第2ソフトウェアルーチンを呼び出そうとしたことに応答して、上記第2呼出メカニズムを利用して上記第2ソフトウェアルーチンを呼び出す第2呼出メカニズム利用手段。第2呼出メカニズム利用手段は、上記スタックスイッチフレームと上記第2スタックセグメントを上記スタックに割り当て、上記第2ソフトウエアルーチンを実行する。
(g)上記第1モードに戻る戻り手段。この戻り手段は、上記第2ソフトウエアルーチンの実行を終えたら作動する。
(a)メモリーにルーチン記述子を割り当てるステップ。
(b)ルーチン記述子のアドレスにポインタをセットするステップ。
(c)第1モードでは無効なインストラクションに等しい内容にルーチン記述子中の第1域をセットするステップ。この第1域はルーチン記述子をポイントするポインタが第1域の内容をポイントするように配置されている。
(d)ルーチン記述子中のプロシージャポインタ域の内容を第1モード以外のモードで実行できるソフトウエアルーチンのアドレスにセットするステップ。
(e)上記第1域の内容を第1モードで実行するステップ。
(f)第1モードでは無効なインストラクションを実行したときモードを切り換えて、該第1モードと異なる第2モードであってソフトウエアルーチンを実行できるものにするステップ。
(g)第2モードへ切り換えた後、プロシージャポインタ域でアドレスされたルーチンを実行するステップ。
14 スタック
16 記憶装置
20 ルーチン記述子
40 呼出し規約域
42 結果サイズ域
44 レジスタパラメータ域
46 結果サイズ域
48 パラメータサイズ域
50 セレクタサイズ域
52 ユーザ定義可能域
Claims (2)
- 異なるオブジェクトコードタイプを有する複数のソフトウェアルーチンをプロセッサが実行する装置であって、該プロセッサは、少なくとも対応するソフトウェアルーチンのオブジェクトコードタイプとそのタイプの実行モードと該実行モードの切り換えに関わるソフトウェアルーチンのオブジェクトコードタイプに応じた切り換え動作とを記述している各ルーチン記述子であってメモリに格納されたそれぞれのルーチン記述子の情報に基づいて実行する手段を有しており、この手段が、
第1オブジェクトコードタイプの第1ソフトウェアルーチンを実行するための第1実行モードから第2オブジェクトコードタイプの第2ソフトウェアルーチンを実行するための第2実行モードへ、前記ルーチン記述子に記述された切り換え動作にしたがって選択されたスイッチフレームにしたがって切り換えを行う手段を有しており、
さらに、前記スイッチフレームは、前記第1実行モードで実行される第1ソフトウェアルーチンのオブジェクトコードタイプに適したフォーマットの第1スタックフレームと前記第2実行モードで実行される第2ソフトウェアルーチンのオブジェクトコードタイプに適したフォーマットの第2スタックフレームとの間に配置されるスタックスイッチフレームであり、このスタックスイッチフレームが、前記第2実行モードが終了した段階で制御を第1実行モードに戻すことができるようにするために該第1実行モードの情報を有する第1セグメントと、第1実行モードで実行される第1ソフトウェアルーチンのオブジェクトコードタイプに適したフォーマットから第2実行モードで実行される第2ソフトウェアルーチンのオブジェクトコードタイプに適したフォーマットに変換されたパラメータを有する第2セグメントと、前記スタックスイッチフレームへの前記第2スタックフレームによる参照を可能にする情報を有する第3セグメントとを有することを特徴とする装置。 - プロセッサー環境中でさまざま異なるオブジェクトコードタイプの複数のソフトウエアルーチンを実行する装置であって、
ソフトウエアルーチンを記述するルーチン記述子と、
該ルーチン記述子中に置かれるモード間を差別化するミクストモード域と、
前記ミクストモード域を特定の所定値にセットするセット手段と、
前記ルーチン記述子中に置かれる、実行されるべきモード切り換え動作のタイプを示す値を有した選択域と、
前記ルーチン記述子中に置かれた、ソフトウエアルーチンを指定するプロシージャポインタと、
前記ルーチン記述子に配置され、特定されたソフトウエアルーチンのオブジェクトコードタイプを指定する指示手段と、
前記特定されたソフトウェアルーチンのオブジェクトコードタイプを特定するために前記指示手段をセットするセット手段と、
前記特定されたソフトウエアルーチンが、当該特定されたソフトウェアルーチンと互換性のないオブジェクトコードタイプの他のソフトウエアルーチンから呼び出されるときに、前記選択域に保持された値に応じた切り換え動作を経て前記特定されたソフトウェアルーチンを実行する実行手段と、
を有し、
前記切り換え動作が、呼出側のソフトウェアルーチンのオブジェクトコードタイプに適したフォーマットの第1スタックフレームと被呼出側のソフトウェアルーチンのオブジェクトコードタイプに適したフォーマットの第2スタックフレームとの間にスタックスイッチフレームを配置することを含み、かつ、このスタックスイッチフレームが、前記被呼出側のソフトウェアルーチンが終了した段階で制御を呼出側のソフトウェアルーチンに戻すことができるようにするために被呼出側のソフトウェアルーチンの情報を有する第1セグメントと、呼出側のソフトウェアルーチンのオブジェクトコードタイプに適したフォーマットから被呼出側のソフトウェアルーチンのオブジェクトコードタイプに適したフォーマットに変換されたパラメータを有する第2セグメントと、前記スタックスイッチフレームへの前記第2スタックフレームによる参照を可能にする情報を有する第3セグメントとを有することを特徴とする装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/993,923 US5452456A (en) | 1992-12-18 | 1992-12-18 | Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005018957A Division JP3968377B2 (ja) | 1992-12-18 | 2005-01-26 | 1プログラムまたは1プロセッサ環境中にさまざまなオブジェクトコードタイプがある複数のプログラムセグメントを実行する装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006331450A JP2006331450A (ja) | 2006-12-07 |
JP4298728B2 true JP4298728B2 (ja) | 2009-07-22 |
Family
ID=25540073
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51525494A Expired - Lifetime JP3508775B2 (ja) | 1992-12-18 | 1993-12-14 | 一つのプログラムの中でまたは1つのプロセッサ環境に於て、夫々のオブジェクトコードタイプが異なる複数のプログラムセグメントを実行するための装置 |
JP2003277282A Expired - Lifetime JP3705547B2 (ja) | 1992-12-18 | 2003-07-22 | 1プログラムまたは1プロセッサ環境中にさまざまなオブジェクトコードタイプがある複数のプログラムセグメントを実行する装置 |
JP2005018957A Expired - Lifetime JP3968377B2 (ja) | 1992-12-18 | 2005-01-26 | 1プログラムまたは1プロセッサ環境中にさまざまなオブジェクトコードタイプがある複数のプログラムセグメントを実行する装置および方法 |
JP2006207207A Expired - Fee Related JP4298728B2 (ja) | 1992-12-18 | 2006-07-28 | 複数のプログラムセグメントを実行する装置 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51525494A Expired - Lifetime JP3508775B2 (ja) | 1992-12-18 | 1993-12-14 | 一つのプログラムの中でまたは1つのプロセッサ環境に於て、夫々のオブジェクトコードタイプが異なる複数のプログラムセグメントを実行するための装置 |
JP2003277282A Expired - Lifetime JP3705547B2 (ja) | 1992-12-18 | 2003-07-22 | 1プログラムまたは1プロセッサ環境中にさまざまなオブジェクトコードタイプがある複数のプログラムセグメントを実行する装置 |
JP2005018957A Expired - Lifetime JP3968377B2 (ja) | 1992-12-18 | 2005-01-26 | 1プログラムまたは1プロセッサ環境中にさまざまなオブジェクトコードタイプがある複数のプログラムセグメントを実行する装置および方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US5452456A (ja) |
EP (1) | EP0674783B1 (ja) |
JP (4) | JP3508775B2 (ja) |
AT (1) | ATE171554T1 (ja) |
AU (1) | AU5801294A (ja) |
CA (1) | CA2152041C (ja) |
DE (1) | DE69321255T2 (ja) |
WO (1) | WO1994015283A1 (ja) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199200B1 (en) * | 1994-04-15 | 2001-03-06 | International Business Machines Corporation | Method and system for supporting dual conventions for methods that return structures |
CN1183841A (zh) * | 1995-02-13 | 1998-06-03 | 英特特拉斯特技术公司 | 用于安全交易管理和电子权利保护的系统和方法 |
US5748963A (en) * | 1995-05-12 | 1998-05-05 | Design Intelligence, Inc. | Adaptive binding |
US5696956A (en) * | 1995-11-08 | 1997-12-09 | Digital Equipment Corporation | Dynamically programmable reduced instruction set computer with programmable processor loading on program number field and program number register contents |
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 |
US6535903B2 (en) * | 1996-01-29 | 2003-03-18 | Compaq Information Technologies Group, L.P. | Method and apparatus for maintaining translated routine stack in a binary translation environment |
US5784638A (en) * | 1996-02-22 | 1998-07-21 | International Business Machines Corporation | Computer system supporting control transfers between two architectures |
US5835958A (en) * | 1996-10-29 | 1998-11-10 | Sun Microsystems, Inc. | Method and apparatus for dynamically sizing non-contiguous runtime stacks |
US5961639A (en) * | 1996-12-16 | 1999-10-05 | International Business Machines Corporation | Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution |
US5896522A (en) * | 1996-12-31 | 1999-04-20 | Unisys Corporation | Selective emulation interpretation using transformed instructions |
US6012129A (en) * | 1997-03-31 | 2000-01-04 | International Business Machines Corporation | Apparatus and method allocating virtual memory upon demand |
US5946695A (en) * | 1997-10-20 | 1999-08-31 | Micron Electronics, Inc. | Method for viewing and providing to a user parameter-specific information |
US6026431A (en) * | 1997-10-20 | 2000-02-15 | Micron Electronics, Inc. | System for providing a user with parameter-specific information |
US6295640B1 (en) * | 1998-05-08 | 2001-09-25 | Apple Computer, Inc. | Method and apparatus for distinguishing reference values from non-reference values in a runtime environment |
US6279082B1 (en) | 1998-10-14 | 2001-08-21 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for efficient use of cache to improve access to memory of page type |
US8065504B2 (en) | 1999-01-28 | 2011-11-22 | Ati International Srl | Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor |
US8074055B1 (en) * | 1999-01-28 | 2011-12-06 | Ati Technologies Ulc | Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code |
US8127121B2 (en) | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
JP2001142692A (ja) * | 1999-10-01 | 2001-05-25 | Hitachi Ltd | 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法 |
JP4277396B2 (ja) * | 1999-11-30 | 2009-06-10 | 株式会社デンソー | 電子制御装置 |
US7765581B1 (en) | 1999-12-10 | 2010-07-27 | Oracle America, Inc. | System and method for enabling scalable security in a virtual private network |
GB2358261B (en) * | 2000-01-17 | 2004-06-09 | Advanced Risc Mach Ltd | Data processing with native and interpreted program instruction words |
AU2001257566A1 (en) | 2000-05-08 | 2001-11-20 | Transilica, Inc. | Priority in a portable thread environment |
US6961934B2 (en) * | 2000-05-08 | 2005-11-01 | Microtune (San Diego), Inc. | Portable thread environment |
US6651132B1 (en) | 2000-07-17 | 2003-11-18 | Microsoft Corporation | System and method for emulating the operation of a translation look-aside buffer |
US7069205B1 (en) * | 2000-07-17 | 2006-06-27 | Microsoft Corporation | System and method for emulating the operation of a video graphics adapter |
US7506265B1 (en) | 2000-07-17 | 2009-03-17 | Microsoft Corporation | System and method for displaying images of virtual machine environments |
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 |
US6980946B2 (en) * | 2001-03-15 | 2005-12-27 | Microsoft Corporation | Method for hybrid processing of software instructions of an emulated computer system |
US6968350B2 (en) * | 2001-04-07 | 2005-11-22 | Microsoft Corporation | Method for establishing a virtual hard drive for an emulated computer system running on a host computer system |
US20020154635A1 (en) * | 2001-04-23 | 2002-10-24 | Sun Microsystems, Inc. | System and method for extending private networks onto public infrastructure using supernets |
US6907519B2 (en) * | 2001-11-29 | 2005-06-14 | Hewlett-Packard Development Company, L.P. | Systems and methods for integrating emulated and native code |
JP4042527B2 (ja) * | 2002-10-29 | 2008-02-06 | 株式会社日立製作所 | 呼出規約変換処理の生成方法 |
US8271976B2 (en) * | 2004-06-30 | 2012-09-18 | Microsoft Corporation | Systems and methods for initializing multiple virtual processors within a single virtual machine |
JP2008518300A (ja) * | 2004-10-25 | 2008-05-29 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 少なくとも2つの実行ユニットを備えるコンピュータシステムにおけるプログラムコードの処理分割方法および装置 |
US20080313384A1 (en) * | 2004-10-25 | 2008-12-18 | Ralf Angerbauer | Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units |
GB2424092A (en) | 2005-03-11 | 2006-09-13 | Transitive Ltd | Switching between code translation and execution using a trampoline |
WO2006095155A1 (en) * | 2005-03-11 | 2006-09-14 | Transitive Limited | Execution control during program code conversion |
US10317892B2 (en) * | 2014-10-15 | 2019-06-11 | Brigham Young University | System and method for concurrent multi-user computer-aided manufacturing |
US10181030B2 (en) | 2015-07-24 | 2019-01-15 | Citrix Systems, Inc. | Blocking routine redirection |
US10977101B2 (en) | 2018-12-12 | 2021-04-13 | International Business Machines Corporation | Interoperability between programs associated with different addressing modes |
US11249760B2 (en) | 2019-04-10 | 2022-02-15 | International Business Machines Corporation | Parameter management between programs |
US11294695B2 (en) | 2020-05-28 | 2022-04-05 | International Business Machines Corporation | Termination of programs associated with different addressing modes |
US11231918B1 (en) | 2020-08-31 | 2022-01-25 | Microsoft Technologly Licensing, LLC | Native emulation compatible application binary interface for supporting emulation of foreign code |
US11403100B2 (en) | 2020-08-31 | 2022-08-02 | Microsoft Technology Licensing, Llc | Dual architecture function pointers having consistent reference addresses |
US11042422B1 (en) * | 2020-08-31 | 2021-06-22 | Microsoft Technology Licensing, Llc | Hybrid binaries supporting code stream folding |
US11947993B2 (en) | 2021-06-22 | 2024-04-02 | International Business Machines Corporation | Cooperative input/output of address modes for interoperating programs |
US11556356B1 (en) | 2021-09-23 | 2023-01-17 | International Business Machines Corporation | Dynamic link objects across different addressing modes |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4084235A (en) * | 1975-04-14 | 1978-04-11 | Honeywell Information Systems Inc. | Emulation apparatus |
US4589087A (en) * | 1983-06-30 | 1986-05-13 | International Business Machines Corporation | Condition register architecture for a primitive instruction set machine |
JPS6017539A (ja) * | 1983-07-11 | 1985-01-29 | Hitachi Ltd | エミユレ−シヨン方式 |
US4825358A (en) * | 1985-04-10 | 1989-04-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US5027273A (en) * | 1985-04-10 | 1991-06-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US4779187A (en) * | 1985-04-10 | 1988-10-18 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US4766566A (en) * | 1986-08-18 | 1988-08-23 | International Business Machines Corp. | Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing |
US4974159A (en) * | 1988-09-13 | 1990-11-27 | Microsoft Corporation | Method of transferring control in a multitasking computer system |
JP2655615B2 (ja) * | 1988-12-08 | 1997-09-24 | 日本電気株式会社 | 情報処理装置 |
US5146593A (en) * | 1989-03-06 | 1992-09-08 | International Business Machines Corporation | Procedure call interface |
EP0414624B1 (en) * | 1989-08-24 | 1996-12-18 | International Business Machines Corporation | System for calling procedures on a remote network node |
US5754855A (en) * | 1994-04-21 | 1998-05-19 | International Business Machines Corporation | System and method for managing control flow of computer programs executing in a computer system |
-
1992
- 1992-12-18 US US07/993,923 patent/US5452456A/en not_active Expired - Lifetime
-
1993
- 1993-12-14 WO PCT/US1993/012148 patent/WO1994015283A1/en active IP Right Grant
- 1993-12-14 EP EP94903634A patent/EP0674783B1/en not_active Expired - Lifetime
- 1993-12-14 DE DE69321255T patent/DE69321255T2/de not_active Expired - Lifetime
- 1993-12-14 CA CA002152041A patent/CA2152041C/en not_active Expired - Lifetime
- 1993-12-14 AT AT94903634T patent/ATE171554T1/de not_active IP Right Cessation
- 1993-12-14 AU AU58012/94A patent/AU5801294A/en not_active Abandoned
- 1993-12-14 JP JP51525494A patent/JP3508775B2/ja not_active Expired - Lifetime
-
1995
- 1995-03-22 US US08/409,477 patent/US6256658B1/en not_active Expired - Lifetime
-
2003
- 2003-07-22 JP JP2003277282A patent/JP3705547B2/ja not_active Expired - Lifetime
-
2005
- 2005-01-26 JP JP2005018957A patent/JP3968377B2/ja not_active Expired - Lifetime
-
2006
- 2006-07-28 JP JP2006207207A patent/JP4298728B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
ATE171554T1 (de) | 1998-10-15 |
WO1994015283A1 (en) | 1994-07-07 |
DE69321255T2 (de) | 1999-05-27 |
JP3508775B2 (ja) | 2004-03-22 |
US5452456A (en) | 1995-09-19 |
US6256658B1 (en) | 2001-07-03 |
AU5801294A (en) | 1994-07-19 |
CA2152041A1 (en) | 1994-07-07 |
JP3968377B2 (ja) | 2007-08-29 |
JPH08506195A (ja) | 1996-07-02 |
JP3705547B2 (ja) | 2005-10-12 |
EP0674783B1 (en) | 1998-09-23 |
EP0674783A1 (en) | 1995-10-04 |
JP2006331450A (ja) | 2006-12-07 |
JP2004046881A (ja) | 2004-02-12 |
CA2152041C (en) | 1999-03-16 |
DE69321255D1 (de) | 1998-10-29 |
JP2005149532A (ja) | 2005-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4298728B2 (ja) | 複数のプログラムセグメントを実行する装置 | |
EP0752646B1 (en) | Data access implementation of device driver interface | |
US5835768A (en) | Computer operating system providing means for formatting information in accordance with specified cultural preferences | |
EP1385090B1 (en) | Program code conversion for variably sized registers | |
AU2004200608B2 (en) | Extreme pipeline and optimized reordering technology | |
US6766513B2 (en) | Method and system of memory management using stack walking | |
CA2082409C (en) | Improved system and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment | |
KR100503077B1 (ko) | 자바 실행 장치 및 자바 실행 방법 | |
CA1319439C (en) | System for processing data to facilitate the creation of executable images | |
JPH08339296A (ja) | 動的リンク・ライブラリをプログラムにリンクする方法 | |
EP0822486B1 (en) | Emulation of asynchronous signals using a branch mechanism | |
CA1172375A (en) | Program call method | |
US7003768B2 (en) | Method and apparatus for class intialization barriers and access to class variables in multitasking virtual machines | |
US6199117B1 (en) | Generalized control for starting of tasks (processes and threads) | |
US5581769A (en) | Multipurpose program object linkage protocol for upward compatibility among different compilers | |
US7219337B2 (en) | Direct instructions rendering emulation computer technique | |
WO2002097552A2 (en) | Method for fast compilation of preverified java bytecode to high quality native machine code | |
JP3293821B2 (ja) | 動的リンクシステム | |
Montuelle | CUFOM: the CERN Universal Format for Object Modules | |
Feriozi | AC programming model for OS/2 device drivers | |
Thomas | Mite: a fast and flexible virtual machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080201 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20080201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080520 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080820 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080825 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080922 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081028 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090122 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090324 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090415 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120424 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |