JP2004046881A - 1プログラムまたは1プロセッサ環境中にさまざまなオブジェクトコードタイプがある複数のプログラムセグメントを実行する装置 - Google Patents
1プログラムまたは1プロセッサ環境中にさまざまなオブジェクトコードタイプがある複数のプログラムセグメントを実行する装置 Download PDFInfo
- Publication number
- JP2004046881A JP2004046881A JP2003277282A JP2003277282A JP2004046881A JP 2004046881 A JP2004046881 A JP 2004046881A JP 2003277282 A JP2003277282 A JP 2003277282A JP 2003277282 A JP2003277282 A JP 2003277282A JP 2004046881 A JP2004046881 A JP 2004046881A
- Authority
- JP
- Japan
- Prior art keywords
- routine
- stack
- software routine
- mode
- object code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】コンピュータシステムは、ルーチン記述子と、スタックスイッチフレームと、第1のプロセッサからコードまたは呼出し規約のタイプを第2のプロセッサにスイッチングするモードスイッチング機構と、さまざまなコードタイプの命令を実行する手段とを特徴とする。ルーチン記述子はプログラムまたはコードセグメント及びそのコードタイプならびに呼出し規約を記述する。この命令に遭遇したときは、制御がモードスイッチング機構に移される。ルーチンが別のスタックモデルを有するルーチンを呼出したときは、上記モードスイッチング機構がこれら二つのスタックタイプ間の遷移を提供するためスタックスイッチフレームを使用する。
【選択図】図1
Description
235はエミュレーション装置に連動されていて、そこでオプションマスクがターゲットシステムの特徴や性質を定義するようになっている。こうしたエミュレータは典型的には、出された指示を変更させるだけであって、異なるルーチン呼出し及びスタック操作規約を有しているプログラムのオブジェクトコードの2種の異なるタイプを取り扱う構造になっていない。例えば、これらのエミュレータは,Motorola
68000(以下「68K」)のようなCISC(Complex Instruction Set Computer)とか、(IBM PowerPC IBM
RISC System/6000のような)RISC(Reduced Instruction Set Computer)(以下「RISC」)を取り扱うには機能的に不十分であった。PowerPC,
IBM RISC System/6000は、International Business Machines Corporation, Armonk, N.Y.が登録した商標である。
1985-1991刊行の「Inside Macintosh」, 第1〜6巻を参照のこと。IBM社のRISC System/6000機に関する背景知識はIBM
Journal of Research and Development, 1990年1月刊行の第34巻, No.1のGregory F. Grokoskiによる「Machine organization of the IBM RISC
System/6000 processor」 pp.37-58, 及びR.R. OhelerとR.D.
Grovesによる「IBM RISC System/6000 processor architecture」 pp.23-36を参照のこと。 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 Business
Machines Corporationの商標である。
System/6000環境では、構造はそのルーチンへの入口点のアドレスと、そのルーチンが拘束されるモジュールの内容を示すテーブルと、ポインタを必要とする言語環境を示すポインタとを有する。RISCコードが68Kルーチンモデルに合うように一致させられているとすれば、RISC指示セットの利点は何も利用され得ない。
図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は、その自分のコードまたはプロセスタイプに適したスタックフォーマットになっている。
bit]が1に設定され、スタックスイッチフレームであることを示している。スタックスイッチフレーム60bは、被呼出人ルーチンが非揮発性レジスタ値を保存することができるように、保管レジスタ領域69も有している。
あるルーチンが異なるスタックモデルを持つ別のルーチンを呼出すときは、呼出人はスタック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は選択値と結合して、どのルーチン記述子を使用し、それによってどのコードセグメントまたはプログラムセグメントを実行するかを決定するのに使われる。
14 スタック
16 記憶装置
20 ルーチン記述子
40 呼出し規約域
42 結果サイズ域
44 レジスタパラメータ域
46 結果サイズ域
48 パラメータサイズ域
50 セレクタサイズ域
52 ユーザ定義可能域
Claims (8)
- 1プロセッサ環境中にさまざまなオブジェクトコードタイプを有する複数のプログラムセグメントを実行する装置であって、つぎの構成要素を含むことを特徴とする装置。
(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ソフトウエアルーチンの実行を終えたら作動する。 - 複数の呼出メカニズムを有するソフトウエアルーチンを実行する装置であって、該ソフトウエアルーチンは1または2以上のパラメータを持ち、第1パラメータはセレクタで、他のパラメータは該セレクタの値によって数、サイズ、内容、及びタイプを異にするもので、
メモリーと、
1または2以上のセレクタ値を特定する特定手段であって、これらセレクタ値は1または2以上のパラメータの具体的な構成に関係しているものと、
複数のルーチン記述子であって、これら複数のルーチン記述子の1つ1つにセレクタ値各々を関連づけ、関連づけられたセレクタ値と関係する特定のパラメータ構成でソフトウエアルーチンを実装するコードセグメントを参照するものと、
セレクタ値を特定する特定手段と、
上記メモリー中のテーブルであって複数のフィールドを備え、該フィールド中には、テーブル中のフィールドの値を取り出すためにプログラムを分岐するインストラクションを参照する第1フィールドと、他の複数のフィールドとが含まれ、これら他のフィールド各々は各々有効に特定されたセレクタ値を有してルーチン記述子と関連づけられているものと、
特定のセレクタ値に従って上記テーブル中のセレクタ値のフィールドから値を取り出す手段と、
該特定のセレクタ値のフィールドに関連づけられたルーチン記述子によって識別されたコードセグメントを実行する実行手段と、
を有することを特徴とする装置。 - プロセッサーとメモリーを備えた、1プロセッサー環境中の複数のオブジェクトコードタイプを実行する装置であって、これら複数のオブジェクトコードタイプは少なくとも第1のオブジェクトコードタイプと第2のオブジェクトコードタイプを有し、該第1及び第2のオブジェクトコードタイプは互換性がないものであって、
上記第1オブジェクトコードタイプを有する第1ソフトウエアルーチンを特定する特定手段と、
上記第2オブジェクトコードタイプを有する第2ソフトウエアルーチンを特定する特定手段と、
上記第1オブジェクトコードタイプから上記第2オブジェクトコードタイプへ切り換えるスイッチを指定する指定手段であって、上記第1ソフトウエアルーチンに透過的なものと、
上記第1ソフトウエアルーチンの実行中に上記指定手段に遭遇したとき上記第1オブジェクトコードタイプから上記第2オブジェクトコードタイプへ切り換えるスイッチ手段であって、この切替が上記第1ソフトウエアルーチンに透過的に実行されるものと、
上記第2ソフトウエアルーチンを実行する実行手段であって、上記第1オブジェクトコードタイプから第2オブジェクトコードタイプへ切り換えられたとき作動するように上記スイッチ手段に接続されたものと、
上記第2ソフトウエアルーチンの実行が終わったら上記第1オブジェクトコードタイプに戻る戻り手段であって、上記第1ソフトウエアルーチンの実行を再開するものと、
を有することを特徴とする装置。 - 1プロセッサー環境中でさまざま異なるオブジェクトコードタイプの複数のソフトウエアルーチンを実行する装置であって、
ソフトウエアルーチンを記述するルーチン記述子と、
該ルーチン記述子中に置かれるモード間を差別化するミクストモード域と、
上記ミクストモード域を特定の所定値にセットするセット手段と、
上記ルーチン記述子中に置かれるプロシージャポインタであって、ソフトウエアルーチンを指定するものと、
上記ルーチン記述子に配置され、特定されたソフトウエアルーチンのオブジェクトコードタイプを指定する指示手段と、
上記特定されたソフトウェアルーチンのオブジェクトコードタイプを特定するために上記指示手段をセットするセット手段と、
上記特定されたソフトウエアルーチンが、当該特定されたソフトウェアルーチンと互換性のないオブジェクトコードタイプの他のソフトウエアルーチンから呼び出されるときに上記特定されたソフトウェアルーチンを実行する実行手段と、
を有することを特徴とする装置。 - 同一のオブジェクトコードタイプだが互換性のない呼出メカニズムのソフトウエアルーチンを呼出すための複数のメカニズムを実行する装置であって、
プロセッサと、
該プロセッサがアクセスできるメモリーと、
第1ソフトウエアルーチンと第2ソフトウエアルーチンとを特定する特定手段であって、該第1ソフトウエアルーチンと第2ソフトウエアルーチンは同一のオブジェクトコードタイプを持ち、第1ソフトウエアルーチンは第1呼出メカニズムにより呼び出されることができ、第2ソフトウエアルーチンは第2呼出メカニズムにより呼び出されることができるが、これら第1呼出メカニズムと第2呼出メカニズムとは互換性がないものと、
上記第1ソフトウェアルーチンが上記第1呼出メカニズムを使用して上記第2ソフトウェアルーチンを呼び出そうとしたことに応答して、上記第2呼出メカニズムを利用して上記第2ソフトウェアルーチンを呼び出す第2呼出メカニズム利用手段であって、上記第2ソフトウエアルーチンを実行するものと、
上記第1モードへ戻す戻し手段であって、上記第2ソフトウエアルーチンの実行が完了したら作動するものと、
を有することを特徴とする装置。 - 少なくとも1つのプロセッサとメモリーとを備えたコンピュータシステムにおけるプロセッサ環境中で複数のモードを実行する方法であって、該モード各々は該プロセッサにより実行することができる関連する一組の有効なインストラクションを持つものであり、以下のステップを有する方法。
(a)メモリーにルーチン記述子を割り当てるステップ。
(b)ルーチン記述子のアドレスにポインタをセットするステップ。
(c)第1モードでは無効なインストラクションに等しい内容にルーチン記述子中の第1域をセットするステップ。この第1域はルーチン記述子をポイントするポインタが第1域の内容をポイントするように配置されている。
(d)ルーチン記述子中のプロシージャポインタ域の内容を第1モード以外のモードで実行できるソフトウエアルーチンのアドレスにセットするステップ。
(e)上記第1域の内容を第1モードで実行するステップ。
(f)第1モードでは無効なインストラクションを実行したときモードを切り換えて、該第1モードと異なる第2モードであってソフトウエアルーチンを実行できるものにするステップ。
(g)第2モードへ切り換えた後、プロシージャポインタ域でアドレスされたルーチンを実行するステップ。 - 1ルーチン中に1ソフトウエアルーチンを呼び出す複数のメカニズムを実行する方法であって、
複数域を有するルックアップテーブルを作成し、
該複数域中にモード切り換えメカニズムを特定するため上記複数域中に第1域をセットし、
ルーチンにとって有効なセレクタ値をそれぞれ取り扱うコードまたはプログラムのセグメントを書き込み、
該コードまたはプログラムのセグメント各々のためのルーチン記述子を作成し、
それら各々のルーチン記述子のためのルックアップテーブル中に域をセットし、
セレクタ値に基づきルックアップテーブル中に具体的な域を探索し、
該具体的域により指定されたルーチン記述子により記述されたルーチンを実行する、
以上のステップを有することを特徴とする方法。
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 |
|---|---|---|---|
| JP51525494A Division JP3508775B2 (ja) | 1992-12-18 | 1993-12-14 | 一つのプログラムの中でまたは1つのプロセッサ環境に於て、夫々のオブジェクトコードタイプが異なる複数のプログラムセグメントを実行するための装置 |
Related Child 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 |
|---|---|
| JP2004046881A true JP2004046881A (ja) | 2004-02-12 |
| JP3705547B2 JP3705547B2 (ja) | 2005-10-12 |
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 (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP51525494A Expired - Lifetime JP3508775B2 (ja) | 1992-12-18 | 1993-12-14 | 一つのプログラムの中でまたは1つのプロセッサ環境に於て、夫々のオブジェクトコードタイプが異なる複数のプログラムセグメントを実行するための装置 |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| 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 | 複数のプログラムセグメントを実行する装置 |
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 (50)
| 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 |
| CN1312549C (zh) * | 1995-02-13 | 2007-04-25 | 英特特拉斯特技术公司 | 用于安全交易管理和电子权利保护的系统和方法 |
| 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 |
| 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 |
| 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 |
| 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 |
| US6026431A (en) * | 1997-10-20 | 2000-02-15 | Micron Electronics, Inc. | System for providing a user with parameter-specific information |
| US5946695A (en) * | 1997-10-20 | 1999-08-31 | Micron Electronics, Inc. | Method for viewing and providing to a user 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| US7506265B1 (en) | 2000-07-17 | 2009-03-17 | Microsoft Corporation | System and method for displaying images of virtual machine environments |
| US7069205B1 (en) * | 2000-07-17 | 2006-06-27 | Microsoft Corporation | System and method for emulating the operation of a video graphics adapter |
| US6651132B1 (en) | 2000-07-17 | 2003-11-18 | Microsoft Corporation | System and method for emulating the operation of a translation look-aside buffer |
| 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 |
| EP1810146B1 (de) * | 2004-10-25 | 2009-03-18 | Robert Bosch Gmbh | Verfahren und vorrichtung zur trennung der abarbeitung von programmcode bei einem rechnersystem mit wenigstens zwei ausführungseinheiten |
| CN101048748A (zh) * | 2004-10-25 | 2007-10-03 | 罗伯特·博世有限公司 | 控制计算机系统的方法和装置 |
| 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 |
| US12346701B2 (en) | 2021-11-03 | 2025-07-01 | International Business Machines Corporation | Sharing global variables between addressing mode programs |
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 |
| DE69029441T2 (de) * | 1989-08-24 | 1997-06-12 | Ibm | System für den Aufruf von Prozeduren von einem Fernnetzwerkknotenpunkt |
| 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 not_active Ceased
- 1993-12-14 EP EP94903634A patent/EP0674783B1/en not_active Expired - Lifetime
- 1993-12-14 AU AU58012/94A patent/AU5801294A/en not_active Abandoned
- 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 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 |
|---|---|
| DE69321255T2 (de) | 1999-05-27 |
| ATE171554T1 (de) | 1998-10-15 |
| US5452456A (en) | 1995-09-19 |
| JP3508775B2 (ja) | 2004-03-22 |
| WO1994015283A1 (en) | 1994-07-07 |
| JPH08506195A (ja) | 1996-07-02 |
| JP2006331450A (ja) | 2006-12-07 |
| EP0674783A1 (en) | 1995-10-04 |
| DE69321255D1 (de) | 1998-10-29 |
| JP3705547B2 (ja) | 2005-10-12 |
| JP2005149532A (ja) | 2005-06-09 |
| JP4298728B2 (ja) | 2009-07-22 |
| CA2152041C (en) | 1999-03-16 |
| US6256658B1 (en) | 2001-07-03 |
| JP3968377B2 (ja) | 2007-08-29 |
| CA2152041A1 (en) | 1994-07-07 |
| AU5801294A (en) | 1994-07-19 |
| EP0674783B1 (en) | 1998-09-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4298728B2 (ja) | 複数のプログラムセグメントを実行する装置 | |
| US5835768A (en) | Computer operating system providing means for formatting information in accordance with specified cultural preferences | |
| US5459854A (en) | Method for optimizing software for any one of a plurality of variant architectures | |
| US5432937A (en) | Method and apparatus for architecture independent executable files | |
| EP1385090B1 (en) | Program code conversion for variably sized registers | |
| EP0752646B1 (en) | Data access implementation of device driver interface | |
| EP0950219B1 (en) | Selective emulation interpretation using transformed instructions | |
| AU1644292A (en) | System and method for transforming procedure calls in a cross-debugging environment | |
| JPH08339296A (ja) | 動的リンク・ライブラリをプログラムにリンクする方法 | |
| CA1319439C (en) | System for processing data to facilitate the creation of executable images | |
| EP0822486B1 (en) | Emulation of asynchronous signals using a branch mechanism | |
| US7003768B2 (en) | Method and apparatus for class intialization barriers and access to class variables in multitasking virtual machines | |
| CA1172375A (en) | Program call method | |
| KR20070118663A (ko) | 고유 명령어를 이용한 레지스터 화일로서의 오퍼랜드스택에 대한 마이크로프로세서 엑세스 | |
| US5581769A (en) | Multipurpose program object linkage protocol for upward compatibility among different compilers | |
| US20040177346A1 (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) | 動的リンクシステム | |
| JPH11212789A (ja) | プログラム翻訳装置、プロセッサ及びプログラム翻訳装置に適用されるプログラムを記録した記録媒体 | |
| Montuelle | CUFOM: the CERN Universal Format for Object Modules | |
| Thomas | Mite: a fast and flexible virtual machine | |
| Feriozi | AC programming model for OS/2 device drivers |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040331 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040928 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050126 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050207 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050308 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050509 |
|
| 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: 20050621 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050722 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080805 Year of fee payment: 3 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080805 Year of fee payment: 3 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100805 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110805 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110805 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120805 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130805 Year of fee payment: 8 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |