JP3210384B2 - 異なるモードで動作する2個のプログラム・セグメント間でコンピューターがコントロールを転送することを可能にする方法及び装置 - Google Patents

異なるモードで動作する2個のプログラム・セグメント間でコンピューターがコントロールを転送することを可能にする方法及び装置

Info

Publication number
JP3210384B2
JP3210384B2 JP01564292A JP1564292A JP3210384B2 JP 3210384 B2 JP3210384 B2 JP 3210384B2 JP 01564292 A JP01564292 A JP 01564292A JP 1564292 A JP1564292 A JP 1564292A JP 3210384 B2 JP3210384 B2 JP 3210384B2
Authority
JP
Japan
Prior art keywords
memory address
stack
program
mode
address format
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 - Lifetime
Application number
JP01564292A
Other languages
English (en)
Other versions
JPH04309135A (ja
Inventor
エイ デニオ マイケル
Original Assignee
テキサス インスツルメンツ インコーポレイテツド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テキサス インスツルメンツ インコーポレイテツド filed Critical テキサス インスツルメンツ インコーポレイテツド
Publication of JPH04309135A publication Critical patent/JPH04309135A/ja
Application granted granted Critical
Publication of JP3210384B2 publication Critical patent/JP3210384B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、互いに呼び合うけれ
ども異なるモードで動作する2個のプログラム部分間で
コンピューターがコントロールを転送することを可能に
するソフトウェア製品及び方法に関する。
【0002】
【従来の技術】発明の範囲を限定することなく、例えば
コンピューターシステムにおけるプロセスとプロセスと
の間を通るコントロール及びアーギュメントの転送に関
連して、発明の背景を説明する。従来、この分野では、
一つのプログラムが、ターミネイト・アンド・ステイ・
レジデント・プログラム(Terminata and Stay Residen
t (『TSR』と略記する)program)などの、他のプロ
グラムの入口点を呼ぼうとする時には、両方のプログラ
ムが同じ動作モードのためのコード・セグメント内にな
ければならず、或いは、その2プログラムが異なる動作
モードのためのモード・セグメント内にあるならば、モ
ード転換が必要である。
【0003】これら選択肢の両方が望ましくない。前者
は、TSRプログラムが、他の装置に関連していること
があるので、TSRプログラムの入口点を呼ばなければ
ならいなプログラムに関して包括的であるべきである。
例えば、通信ドライバーが、アプリケーション・プログ
ラムとグラフィックス・システムとの間の通信能力を提
供するTSRプログラムであり、アプリケーション・プ
ログラムをインテル(Intel) 80386マイクロプロセ
ッサ上で実モード、仮想モード及び保護モードで書くこ
とが出来るならば、両方のプログラムが同じモードで作
動するという制約で、これらのモードの各々について別
々の通信ドライバーTSRプログラムがなければならな
いであろう。
【0004】しかし、モード転換も望ましくはない。モ
ード・スイッチは、制御レジスターにおけるビットの変
更を伴う。保護モードから実モードへの復帰のためのモ
ード転換では、ページングが正確に行われることをプロ
グラムが保証し、コントロールを64K限度のセグント
に移転する。更に、安全に達成するために、コントロー
ル転送の前後にモード転換割り込みを作動不能にし、後
に再び作動可能にしなければならない。モード転換動作
が現在100マイクロ秒以上を消費すると見積もられて
いる。複雑なグラフィックスを描くアプリケーション・
プログラムについては、1個の絵に数千個以上のモード
転換が必要となることがあり、性能に否定的な影響を与
える。また、実モード・プログラムに利用することの出
来るアドレス空間に制限があることがある。
【0005】
【発明の概要】一般に、本発明の一つの形として、第1
動作モードで動作している第1プログラムが、第2動作
モードで動作している第2プログラム内にあるコードを
呼ぶことが出来る様にコンピューターを作動させる方法
があり、この方法は、プログラム間通信に使われるスタ
ック内の全てのアーギュメントを、第1動作モードで使
われているフォーマットから、第2動作モードで使われ
るフォーマットに変換するステップと;コンピューター
が第2プログラムから第1プログラムの所望の場所に戻
ることになる様に、所望の戻りアドレスを、第2動作モ
ードで使われるフォーマットに変換するステップとから
成る。
【0006】一般に、本発明の他の形は、コンピュータ
ーが、第1プログラムを第1動作モードで実行すると同
時に第2プログラムを第2動作モードで実行することを
可能にするソフトウェア製品であり、このソフトウェア
製品は、プロセス間通信に使われるスタックで渡される
アーギュメントを、第1動作モードにより使われるフォ
ーマットから、第2動作モードで使われるフォーマット
に変換するアーギュメント変換手段と、第1プログラム
を第2プログラムに結合させるコール・ゲートであっ
て、該アーギュメント変換手段に結合された戻りアドレ
ス変換手段を有するコール・ゲートとから成り、その戻
りアドレス変換手段は、第1プログラムにおける戻りア
ドレスを、第1動作モードで使われるフォーマットから
第2動作モードで使われるフォーマットに変換するコー
ドから成る。
【0007】独創的システムと本発明の他の形も開示さ
れ、特許請求の範囲の欄に記載されている。本発明の利
点は、コンピューターが二つのプログラムを異なる動作
モードで実行することを可能にし、第1プログラムの動
作モードから第2プログラムの動作モードへの転換を必
要とすることなく、一方のプログラムが他方のプログラ
ム内にあるサブルーチンへのコールを行うことを許すこ
とである。
【0008】
【実施例】図1は、上位プロセッサ・システム310と
グラフィックス・コプロセッサ・システム320とを有
するマルチプロセッサ・コンピューター・システム30
0である好適な実施例を示す。この様なシステムのため
のアプリケーションとしては、コンピューター支援設
計、デスクトップ・パブリッシング、イメージング、及
びプレゼンテーション・グラフィックスなどの高解像度
グラフィックスがある。しかし、ここに記載したソフト
ウェア製品及び方法がマルチプロセッサ環境で実施され
ることは必要ではない。実際、当業者は、多くの可能な
単一プロセッサ実施例を理解するであろうが、それにつ
いては図10と関連させて説明する。
【0009】典型的には、上位プロセッサ311は、周
辺管理のために最適化されている。適当な例は、インテ
ル80286及び80386プロセッサである。これら
のプロセッサは、DOSに基づくパーソナル・コンピュ
ーター・システムと共に使われるものであり、適当なオ
ペレーティングシステムの一例である。実際に、ここに
記載した方法及びメカニズムは種々のプロセッサ及びオ
ペレーティングシステムを使って実現され得るものであ
る。上位プロセッサ311に随伴するメモリー210は
ランダムアクセスメモリー(RAM)を包含しており、
これは、その動作を指揮するプログラムに該プロセッサ
がアクセスすることを可能にするものである。
【0010】グラフィックスプロセッサ321は、グラ
フィックス処理のために設計されていて、プログラマブ
ルである。この様なプロセッサの例は、テキサス・イン
スツルメント・インコーポレーテッドにより製造されて
いるTMS34010及びTMS34020グラフィッ
クス・システム・プロセッサ・チップであり、これはグ
ラフィックス処理のための命令セット拡張と、ディスプ
レイ装置制御及び再生タスクのためのハードウェアとを
伴う32ビット・マイクロプロセッサである。メモリー
220はRAMメモリーを包含しているので、グラフィ
ックスプロセッサ321は、グラフィックス情報の処理
方法を教えるプログラムを記憶することが出来る。グラ
フィックス・システム320は、共通譲渡された、本書
に組み込まれた特許出願586,914、544,775、
386,850、387,472及び387,455に記載さ
れている様に実施されるのが適当である。
【0011】この2個のプロセッサ間の通信手段は、バ
ス330と通信バッファー323とにより具体化され
る。バス330は、2方向バスであり、データ経路とコ
ントロール・ラインとを提供する。通信バッファー32
3は、両方のプロセッサ・システム310及び320に
よりアクセスされることが出来る。通信バッファーの他
のハードウェア実施態様も可能である。各プロセッサ3
11及び321は、プロセッサ間の初期接続のためのメ
ッセージ・データと、呼ばれている機能を識別するコマ
ンド識別子スペースと、コマンド・アーギュメント及び
追加のデータを通すデータ・スペースとから成る、通信
バッファー323へのアクセスを有する。図1に示され
ている構成は、プロセッサ間通信を提供する多数の手段
のうちの一つに過ぎない。更に、図1は、別々のメモリ
ー210及び220を有するものとして2個のプロセッ
サ・システム310及び320を示しているけれども、
この通信回路は、共有のメモリーを持つことも出来る。
【0012】図1のマルチプロセッサ・システム300
は、ディスプレイ340、大量記憶装置350、及び、
例えばキーボードやマウスなどの入力装置360等の種
々の標準的周辺装置と共に作動する。これら入力装置及
び出力装置と、上位システム310のその他の部分との
間で、上位システム・バス314を介して、適切な形の
情報を通信するためにI/O回路313が使われる。入
力装置360は、ユーザーが上位処理システム310と
相互作用することを可能にする。ディスプレイ340
は、例えばVRAMとパレットとを介してグラフィック
スプロセッサ321に接続されている。
【0013】好適な実施例である単一プロセッサ環境ハ
ードウェア構成は、上位処理システム310と、プロセ
ッサに接続されずに該システムに接続された周辺装置3
60及び350と同一である。単一プロセッサ環境にお
ける該ソフトウェア製品及び方法の一例は、アプリケー
ション・プログラムがそれを通して装置にインターフェ
ースするところのプログラムとして実現される装置ドラ
イバーである。
【0014】図2は、メモリー210及び220に常駐
する種々のソフトウェアを示す。メモリー210は、ア
プリケーション・プログラム130及び通信ドライバー
211を内蔵する。通信ドライバー211は、ターミネ
イト・アンド・ステイ・レジデント・プログラム(Term
inate and Stay Resident (『TSR』と略記する)pr
ogram )である。TSRは、ロード及び実行後にメモリ
ー210に留まり、更に、アプリケーション・プログラ
ム130などの別のプログラムからのコールを介して実
行することの出来るプログラムである。
【0015】アプリケーション・プログラム130と通
信ドライバー211とは、スタック800を介して相互
に通信する別々のプログラムである。アプリケーション
・プログラム130は、アプリケーション・プログラム
・ソース201とアプリケーション・インターフェース
・ソース207に由来する。例えばCなどの高レベル言
語アプリケーション・プログラム・ソースについては、
アプリケーション・プログラム・ソース201はアプリ
ケーション・プログラム対象203にコンパイルされ
る。アセンブリー言語ソースについては、アプリケーシ
ョン・プログラム・ソースはアプリケーション・プログ
ラム対象203にアセンブルされる。アプリケーション
・インターフェース・ソース207は、同様にして、コ
ンパイル又はアセンブリによりアプリケーション・イン
ターフェース対象209に変換される。
【0016】アプリケーション・プログラム対象ファイ
ル203とアプリケーション・インターフェース対象フ
ァイル209とは、相互に結合されて一つの実行可能な
ファイル(即ち、アプリケーション実行可能ファイル2
05)を形成し、これはアプリケーション・プログラム
130としてメモリー210にロードされる。図2は、
更に、アプリケーション・プログラム実行可能イメージ
130が、アプリケーション・プログラム・ソース20
1に対応する構成要素214と、アプリケーション・イ
ンターフェース・ソース207に対応する構成要素21
7とから成ることを示している。
【0017】上記の変換及び/又は結合のステップはコ
ンピューターシステム300の外部で達成することが出
来て、例えば入力装置360などの、周辺装置の一つを
通してそれに搭載出来ることは当業者には明白であろ
う。その搭載は、ソース・ファイル201及び207、
又は対象ファイル203及び209、又は実行可能ファ
イル205、又はその組合せのいずれによっても行われ
ることが出来る。
【0018】通信ドライバーは、同様の変換を受ける。
そのソース・ファイル219は、それらが高レベル言語
で書かれているかアセンブリー言語で書かれているかに
より、通信ドライバー実行可能ファイル223にコンパ
イルされ又はアセンブルされる。通信ドライバー実行可
能ファイル223は、通信ドライバー実行可能イメージ
211としてメモリー210にロードされる。スタック
800は、メモリー210の一部分であることの出来る
ものであるが、アプリケーション・プログラム130と
通信ドライバー211との間のプログラム間データ転送
を提供する。
【0019】通信ドライバー211は、バス330を介
してグラフィックスプロセッサ320上のメモリー22
0内のコマンド・エグゼクテイブ225と通信する。こ
の通信は、次の同時係属の特許出願、即ち、1989年
10月12日に出願された第420,409、1989年
10月12日に出願された第420,491、1989年
10月11日に出願された第419,999、1989年
10月11日に出願された第420,085に更に記載さ
れている。
【0020】或るコンピューターは、多重動作モードで
作動する。その一つの用途はエミュレーション、即ち、
他のために書かれたプログラムを実行する一コンピュー
ターの能力である。インテル80386は、その様なコ
ンピューターの例である。それは実モード、仮想モード
又は保護モードで作動する。好適な実施例は実モード及
び保護モードを包含するけれども、別の実施例は仮想モ
ードと、インテル80386以外のコンピューターでの
随意の動作モードとを包含するであろう。
【0021】80386は、8086などの初期インテ
ル・プロセッサと両立する16ビット・モードである実
モードで作動を始める。これは、保護モードに転換され
るが、それは、或る種のエラーを避けるために実施され
る或る補と特徴からその名称を得る32ビット・モード
である。種々の動作モードについての精しい解説は、エ
ドムンド・ストラウスの1987年ブラディー・ブック
スの80386テクニカル・レファレンス(Bdmund Str
auss, 80386 Technical Reference, Brady Books, 198
7)に見出される。しかし、プログラムは、一般的には
専ら一つのモードで作動するように書かれていることに
注意しなければならない。
【0022】図3は、メモリー210の線型表示であ
り、アプリケーション・プログラム130が一セクショ
ンに記憶され、通信ドライバー211がもう一つのセク
ションに記憶されている。アプリケーション・プログラ
ム130と通信ドライバー211とは別々のプログラム
であって、同じモードのために書かれていなくてもよ
い。従って、アプリケーション・プログラム130と通
信ドライバー211とが、両立しないモードで作動する
という場合もある。図3は、この場合の例を示す。メモ
リー210は、実モード640と保護モード630との
ためのコード・セグメントに分割されている。通信ドラ
イバー211は、実モードのコード・セグメント630
に常駐する実モード・プログラムであり、アプリケーシ
ョン・プログラム130は、保護モードのコード・セグ
メント640に常駐する保護モード・プログラムであ
る。
【0023】インテル80386マイクロプロセッサ
は、サブルーチン・コールが通常はコンピュータープロ
グラムで行われるのと全く同様に、プログラムが他のプ
ログラムの入口点へのコールを行うことを許す。よっ
て、アプリケーション・プログラム130は、通信ドラ
イバー211内のルーチンを呼ぶことが出来る。プログ
ラム間通信は、スタックにより達成される。図4(a) 及
び図4(b) は、呼び出しスタックの二つの例を示す。図
4(a) は、保護モード・プログラムが見るメモリー21
0のセクションを示す。スタック・ポインタSSは、呼
び出しスタック700を内蔵するメモリー210のセク
ションを『指す』。保護モード・プログラムは、メモリ
ーを32ビット幅であると見なす。その結果として、該
呼び出しスタックは32ビット・ワードを使って実施さ
れるが、これは、アプリケーション・プログラム130
が通信ドライバー211への転送の前につくり出すスタ
ックである。
【0024】スタック700は、2個のショート・ワー
ド、ロングワード、及びポインタを有するアーギュメン
ト・リストを包含している。記憶場所710及び712
内のアーギュメント・スタックは、16ビットに嵌まり
込む値を包含する2個の値を包含している。それでもな
お、これらの値は2個の32ビット記憶場所に記憶さ
れ、高位ビットは全て0又は未定義である。一方、記憶
場所714は、16ビットより多くを必要とする数値を
内蔵している。最後に、要素716はポインタであり、
これは保護モードでは48ビットを必要とし、従って2
個の32ビット記憶場所を必要とする。
【0025】16ビット・モードである実モードでは、
メモリーは16ビット幅であると見なされる。よって、
図4(b) のスタック800は16ビット幅であり、これ
は、図示の通信ドライバー211が予期する種類のスタ
ックである。記憶場所810及び812は、共に、16
ビットで表されるのに充分な程度に小さな情報を記憶す
る。要素814は、該スタック内の2個の記憶場所であ
り、32ビットを使うことを必要とする程度に大きな情
報を記憶する。これは、32ビット・スタック700内
の要素714に対応する。最後に、要素816はポイン
タである。16ビット実モードの場合には、ポインタ
は、図5に示されている16ビット・セレクター及び1
6ビット・オフセットから成る32ビット・データ構造
である。
【0026】図5は、メモリー212の他の部分を示
す。領域650は、セグメントと呼ばれるメモリーの連
続的線型ブロックである。2種類のセグメント、即ち、
データ・セグメント及びコード・セグメントがある。イ
ンテル80386のメモリーは、数千個のセグメントを
内蔵することがある。多数のセグメントの中の一つを特
定する、セレクタと呼ばれるデータ構造を通して特別の
セグメントがアドレス指定される。図5において、DS
及びDS2は、線型アドレスY及び+1000からそれ
ぞれ始まるメモリー212内のセグメントを特定するセ
レクタである。
【0027】ポインタは、セレクタ及びオフセットの組
合せである。ポインタ716を形成する2個の記憶場所
において、これら2個の記憶場所のうちの第1の記憶場
所の最初の16ビットは、該ポインタにおいて使用され
ないので未定義の内容を有する。一方、第2の半分であ
る低位の16ビットはセレクタを内蔵する。第2の記憶
場所は32ビット・オフセットを内蔵しており、これ
は、該セレクタにより選択されセグメントの中のインデ
ックスとして使われる。図5を再び参照すると、要素6
52及び654は、共に、32ビット保護モードにより
使用される48ビット・ポインタである。これらはセレ
クタDSを共有するけれども、異なるオフセツト、即
ち、0及び1000をそれぞれ有する。一方、要素66
2は、16ビット・モードにより使用される32ビット
・ポインタである。これは、要素654と同じ記憶場所
を指す。
【0028】スタック800などの16ビット・スタッ
クを予期するプログラム、又はプログラム・セグメント
には、ワードをスタック700から放り出すときに、1
6ビット実モードで作動しているプログラムは16ビッ
トを一度に放り出すのに、該ワードは一度に32ビット
書かれているという問題がある。よって、スタック70
0及び800が、32ビット保護モードで作動するプロ
グラム・セグメント130から16ビット実モードで作
動するプログラム・セグメント140へのコールのアー
ギュメント・リストを表し、そのアーギュメント・リス
トが2個の16ビット・アーギュメントと、1個の32
ビット・アーギュメントと、1個のポインタとを有する
ならば、その16ビット・プログラム・セグメントは、
所望の『10A5』及び『E51A』ではなくて、その
初めの2個のアーギュメントとして『0000』と『1
0A5』とを放り出す(ポップ・オフする)であろう。
同様に、例えばポインタが戻りアドレスであれば、異な
るポインタ・フォーマットは問題を引き起こすことにな
り、呼び出されたルーチンは呼び出しプログラム中の適
切な記憶場所に戻らないであろう。
【0029】図6の方法は、呼び出されたプログラム・
セグメントが呼び出しプログラム・セグメントに関して
両立しないスタック幅とポインタ・フォーマットとを有
するときに有利に働く。所望の結果を達成する一つの方
法は、通信ドライバー211への全てのコールについて
モード転換による。しかし、それは、アーギュメントを
変換し、スタックを複写することから成る非常に時間の
かかる動作であり、そして、グラフィックス・システム
の場合には適度の速度の描画を妨げる。更に、インテル
80386の場合には、DOSオペレーティングシステ
ムにおける制約に起因して、実モードへのモード・スイ
ッチ時に、呼び出されたルーチンが1Meg境界より上の
メモリーにアクセス出来ないという別の問題がある。
【0030】図6は、所望の結果を達成するための第2
の方法を示す。図6は、各ステップを実行することの出
来る一つの順序を示すに過ぎず、他のシーケンスも可能
であることに注意するべきである。ステップ902は、
初期設定ステップを示す。インテル80386(PC)
は、16ビット実モードで動作を開始する。このとき、
通信ドライバー(CDと略記する)がステップ904に
おいて初期設定手順により又はプログラムから始動させ
られる。通信ドライバー211はターミネイト・アンド
・ステイ・レジデント(TSRと略記する)プログラム
であり、それ自体としては、実行された後にメモリーか
ら除去されない。更に、それは、メモリーに留まるの
で、他のプログラムから呼び出されることが出来る。
【0031】ステップ906は、アプリケーション・プ
ログラム214の実行を開始し、これにより、それはプ
ログラム・セグメント130としてメモリー210にロ
ードされ、そのステップの一部はボックス908に含ま
れている。初期ステップの一つはステップ910であ
り、プロセッサを保護モードに転換させる。その初期モ
ード転換後に、該プロセッサは、更なるモード転換を必
要とすることなく保護モードに留まる。しかし、ステッ
プ906の前に、即ち、アプリケーション・プログラム
214の実行を開始する前に、プロセッサを保護モード
に転換することも可能である。
【0032】ボックス912は、該アプリケーション・
プログラムにおける内部ループを構成するステップを構
成している。それは、通信ドライバー211への各コー
ルのためのステップを包含している。図6の912のス
テップは、アプリケーション・プログラム214と通信
ドライバー211とが異なるモード・セグメントにある
ことを前提としている。その二つのプログラムが同じモ
ード・セグメント内にあれば、ステップ910、91
4、916及び918は不要であろう。更に、ステップ
920における通信ドライバーへのコールは、呼び出し
プログラムが存在しているモード・セグメントと同じ種
類のモード・セグメントへのコールであろう。
【0033】ステップ914は、アプリケーション・イ
ンターフェース217におけるルーチンへのコールであ
る。通信ドライバー211における各入口点は、アプリ
ケーション・インターフェース217内に対応するサブ
ルーチンを有する。ステップ916及び918は、32
ビット・フォーマットから16ビット・フォーマットへ
の呼び出しスタックの変換を実行する。アーギュメント
・リストを分解するステップ916は、データの種類
と、呼び出されたルーチンのアーギュメントの数とが分
からないときに実行される。プログラミング言語Cから
の例は、『printf』ルーチンである。『printf』は、或
る出力装置への定義式出力のために使われる。該ルーチ
ンへのアーギュメントは、該フォーマットと、印刷され
るべきデータとであり、アーギュメントの数と該アーギ
ュメントのデータの種類とに関しては何らの制約もな
い。しかし、殆どのサブルーチンの場合には、アーギュ
メントの数及びデータの種類は固定されており、分解の
ステップは不要である。
【0034】アーギュメントとして使うことの出来るデ
ータの種類には制約が無いけれども、好適な実施例で
は、アーギュメントは、長さ16ビットのショート・ワ
ード(S)と、長さ32ビットのロングワード(L)
と、上記フォーマットを有するポインタ(P)とを含
む。通信ドライバー211における各入口点は、そのア
ーギュメント・リスト種類、即ち、その全てのアーギュ
メントのデータの種類の連鎖、によって特徴付けられ
る。例えば、ルーチンが4個のアーギュメント、即ち、
ショート・ワードと、もう一つのショート・ワードと、
ロングワードと、ポインタとを期待するならば、そのア
ーギュメント・リスト種類はSSLPである。これは図
4(a) におけるスタック700の場合である。
【0035】ステップ918は、別の呼び出しスタック
を構築する。好適な実施例では、各アーギュメント・リ
スト種類について明確なスタック変換方法がある。例え
ば、SSLPアーギュメント・リスト種類のための変換
方法が図7に示されている。ステップ950は、ショー
ト・ワードである第1アーギュメントを変換し、ステッ
プ952は、もう一つのショート・ワードである第2ア
ーギュメントを変換し、ステップ954はロングワード
である第3アーギュメントを変換し、ステップ956は
ポインタである第4アーギュメントを変換する。
【0036】ショート・ワード変換は、低位16ビット
を代替の呼び出しスタックに複写することを伴う。ロン
グワード変換は、高位16ビットと低位16ビットとを
代替の呼び出しスタックの連続する2個の16ビット記
憶場所に複写することを必要とする。しかし、ポインタ
変換は、もっと複雑である。それは図8に示されてい
る。基本的に、それは、48ビット・ポインタが指す線
型アドレスを計算し(32ビット保護モードは48ビッ
ト・ポインタを使い、16ビット実モードは32ビット
・ポインタを使うことを想起されたい)、そのアドレス
を指す新しいセレクタを生成し、その新しいセレクタと
ゼロのオフセットとを使って32ビット・ポインタを該
代替呼び出しスタックに複写する。よって、ポインタ変
換は、ステップ958から始まって、該48ビット・ポ
インタのセレクタが指すコード・セグメントの線型開始
アドレスを検索する。図5は、メモリー212内の2個
の重なり合うコード・セグメントを示す。ポインタ65
2は、セレクタDSとオフセット0000 0000と
の組合せである。よって、それは、セレクタDSにより
選択されるセグメントのベース・アドレスを指す。図4
(a) の呼び出しスタック700において、メモリー要素
716は、セレクタDSとオフセット0000 100
0とを有するポインタである(DS:0000 100
0)。メモリー要素716に記憶されているポインタ6
54が指すコード・セグメントは、セレクタDSにより
選択されるセグメントであり、ベース・アドレスDS:
0000 0000を有し、これに或る線型アドレスY
(これはステップ958が検索するアドレスである)が
随伴している。
【0037】ステップ960は、32ビット・オフセッ
トを線型アドレスYに加える。呼び出しスタック700
の記憶場所716からのポインタ654においてオフセ
ットは0000 1000である。よって、ステップ9
60の結果はY+00001000であり、これもポイ
ンタ654が指す線型アドレスである。ステップ962
は新しいセレクタDS2を割り振る。効率のために、ア
プリケーション・プログラムは初期設定時にプログラム
実行時の内部割り振りのために数個のセレクタを割り振
ることが出来る。
【0038】ステップ964は、64Kバイト範囲を有
するコード・セグメントのための新しいセレクタDS2
を生成する。メモリー内の各バイトは1個のアドレス指
定可能ユニットである。従って、16ビット数は0〜6
4K−1についての値を有するので、16ビット・オフ
セットは64Kバイトの範囲をアドレス指定することが
出来る。ポインタ変換のターゲットは、16ビットのセ
レクタと16ビットのオフセットとを有する32ビット
・ポインタである。この理由から、新しいセレクタは6
4Kバイト範囲で作られる。更に、ステップ964は、
新しいセレクタ・ベース・アドレスである線型アドレス
Y+0000 1000から始まるコード・セグメント
(これは図5にコード・セグメント660として示され
ている)を指すこととなる様に新しいセレクタDS2を
生成する。図5に示されている様に、DS2:0000
とDS:0000 1000とは同じ線型アドレスを指
す。
【0039】最後に、ステップ966は、新しいセレク
タとゼロ・オフセットとを連結して32ビット・ポイン
タを生成するが、その内容は『DS2:0000』であ
る。ステップ966は、その32ビット・ポインタを代
替の呼び出しスタックに複写する。よって、図11及び
図12の方法を図4(a) の32ビット・スタック700
に対して行うと、図4(b) のスタック800が得られ
る。有益なことに、この方法は、無数の可能な呼び出し
スタックのいずれに対しても適用可能である。
【0040】32ビット保護モード・コード・セグメン
トで作動するプログラムから16ビット実モード・コー
ド・セグメントの入口点を呼び出す際の別の問題は、該
プログラムが16ビット・ルーチンから戻るときに適切
な記憶場所に戻ることを保証することである。図9は、
アプリケーション・プログラム210と通信ドライバー
211との別の図である。通信ドライバー211は、例
えばブロック250、252、及び256などとして示
されている数個のルーチンから成っている。通信ドライ
バー211の各ルーチンは、例えば図9のA,B,及び
Nなどの、外部から呼び出し可能な入口点を有する。更
に、通信ドライバー211内の各ルーチンについて、ジ
ャンプ・テーブル270中に対応する入口がある。ジャ
ンプ・テーブル270は、通信ドライバー211内の各
ルーチンのための入口点のアドレスを与える。また通信
ドライバー211内の各ルーチンについて、対応するル
ーチンがアプリケーション・インターフェース217内
にある。よって、ルーチン250については、入口点
A、ジャンプ・テーブル項目240、及びアプリケーシ
ョン・インターフェース・ルーチン230がある。
【0041】通信ドライバー211におけるルーチンの
実行を行わせるために、アプリケーション・コード21
4は例えばルーチン230などの、アプリケーション・
インターフェース217内のルーチンを呼び出す。該ア
プリケーション・インターフェース・ルーチンはジャン
プ・テーブル270内の対応する入口点のアドレスを参
照する。検索されたアドレスで、それはアプリケーショ
ン・インターフェース217内の特別のルーチンである
コール・ゲート260を呼び出すが、これはアプリケー
ション・プログラム214から通信ドライバー211へ
の全てのコールを処理する。コール・ゲート260は、
ステップ262において、戻りアドレス266を、通信
ドライバー211が使用する戻りアドレスのためのフォ
ーマットに変換する。それはジャンプ命令264の後の
第1命令であって、コール・ゲート260を通して行わ
れる通信ドライバー211への全てのコールについて同
一であるので、所望の戻りアドレスの線型アドレスは既
知である。戻りアドレス266を変換した後、ステップ
262はそれを代替の呼び出しスタックに記憶させる。
ステップ264は、JUMP命令264によって通信ド
ライバー211への実行の実際の転送を行わせるが、そ
れは、検索された入口点アドレスを取って実行をそれへ
転送する。これは、呼び出しスタックはプログラム自体
によって作られ、JUMPは明示的に行われるのに対し
て、殆どのサブルーチン・コールではCALL命令はス
タック及び実行の転送を自動的に生成する点において、
サブルーチン・コールが通常行われる道とは異なること
に注意しなければならない。
【0042】ステップ264後にコントロールは通信ド
ライバー211の入口点へ転送される。コンピューター
は該入口点に随伴するルーチンを実行し、その終わりに
戻り命令がある。RET命令は、ステップ262により
変換された戻りアドレスをコンピューターに得させてコ
ントロールをコール・ゲート260の戻りアドレス26
6へ戻させる。
【0043】コール・ゲート260は、RET命令であ
るステップ268で終わり、これはコントロールを呼び
出しアプリケーション・インターフェース・ルーチンへ
戻し、これはコントロールをアプリケーション・コード
214へ戻す。アプリケーション・プログラム130が
プロセッサ間通信のために通信ドライバー211内のル
ーチンを呼び出す様になっているマルチプロセッサ環境
300を参照して好適な実施例について説明したれど
も、アプリケーション・プログラム130と通信ドライ
バー211とが異なるモード・セグメント内に常駐する
ことを可能にする前記ソフトウェア製品及び方法は、異
なるモード・セグメント内に常駐する二つの別々のプロ
グラムが相互に通信する単一プロセッサ環境にも適用す
ることの出来るものである。この様なシステムの例が図
10に示されている。システム301は、コンピュータ
ーシステム310と、周辺装置350、360及び37
0とを包含する単一プロセッサ・システムである。コン
ピューター310はプロセッサ311及びメモリー21
0を包含している。図1の装置350及び360に加え
て、システム310がライトペン370に接続されてい
る。メモリー215は、少なくとも2個のプログラム、
即ち、アプリケーション・プログラム130とライトペ
ン・インターフェース・プログラム215とを包含す
る。アプリケーション・プログラム130は、該ライト
ペンから入力を読み出すサブルーチン・コールを包含し
ている。これらのコールは、ライトペン370のための
装置ドライバーとして作用するライトペン・インターフ
ェース・プログラム215を介して行われる。アプリケ
ーション・プログラム130及びライトペン・インター
フェース・プログラム215の間の通信はスタック80
0を介して行われる。上記した通信ドライバー211の
場合と同じく、ライトペン・インターフェース・プログ
ラム215とアプリケーション・プログラム130とが
異なるモード・セグメントに常駐しているならば、図
6、7、8、及び9の方法は、モード間通信の問題を解
決する。ライトペン・インターフェース・プログラム2
15がTSRプログラムであるならば、それはメモリー
に常駐し、第2アプリケーション・プログラム132
は、それにアクセスすることが出来る。アプリケーショ
ン・プログラム130とアプリケーション・プログラム
132との両方がライトペン・インターフェース・プロ
グラム215へのコールを行うけれども、それらが同じ
モードで作動する必要はない。アプリケーション・イン
ターフェース217は、ライトペン・インターフェース
・プログラム215が実行するモードとは異なるモード
で実行するアプリケーション・プログラム間の通信に適
用可能な図6、7、8、及び9との関連で説明した変換
を行う。
【0044】幾つかの好適な実施例について以上に詳し
く説明をした。本発明の範囲は、上記した実施例とは異
なる実施例も包含していることが理解されなければなら
ない。例えば、カラーディスプレイ装置は、ラスター走
査陰極線管又はその他のラスター走査装置;ラスター走
査されず、パラレル・ライン又はフレーム・ドライバー
を有する装置;カラー・プリンタ、フィルム・フォーマ
ッター、又はその他のハードコピー・ディスプレイ;液
晶、プラズマ、ホログラフィー、変形可能マイクロミラ
ー、又はその他の非CRT技術のディスプレイ;又は非
平面イメージ形勢技術を使う3次元装置又はその他の装
置であることが出来る。
【0045】『マイクロコンピューター』という用語
は、或る文脈では、マイクロコンピューターはメモリー
を必要とするが『マイクロプロセッサ』はメモリーを必
要としないということを意味するために使われている。
本書での使用方法では、これらの用語が同義で、同等の
ものを指すこともある。『処理回路』という用語は、A
SIC(アプリケーション固有の集積回路)、PAL
(プログラマブル・アレー・ロジック)、PLA(プロ
グラマブル・ロジック・アレー)、デコーダー、メモリ
ー、非ソフトウェアに基づくプロセッサ、又はその他の
回路、又は、マイクロプロセッサ及び随意のアーキテク
チャのマイクロコンピュータを含むディジタルコンピュ
ーター、又はその組合せを包含する。包含という言葉
は、発明の範囲を考察するのに網羅的でないと解釈され
なければならない。
【0046】内部接続及び外部接続は、抵抗又は容量に
よるものであってもよく、直接的でも間接的でもよく、
介在する回路を介してもよく、その他の態様でもよい。
別々の部品で、又はシリコン、ガリウム砒素、又はその
他の電子材料属の完全な集積回路で実施し、また光学又
はその他の技術に基づく形及び実施例で実施することが
考えられる。本発明の種々の実施例はハードウェア、ソ
フトウェア、又はマイクロコード化ファームウェーハを
使用し又はハードウェア、ソフトウェア、又はマイクロ
コード化ファームウェーハで具体化されることが出来る
ことが理解されるべきである。プロセス図はマイクロコ
ード化されたソフトウェアに基づく実施例についての流
れ図も表す。
【0047】実施例を参照して本発明を説明したけれど
も、この説明は限定的意味に解されるべきものではな
い。実施例の種々の変形及び組合せと、本発明の他の実
施例とは、当業者にとっては上記説明を参照すれば明ら
かであろう。従って、特許請求の範囲の欄の記載内容は
その様な変形や実施例を包摂するものである。(C)著
作権、テキサス・インスツルメント・インコーポレーテ
ッド、1990。このトラック文献の開示内容の一部分
は、著作権保護の対象となるものを含んでいる。著作権
所有者は、特許商標庁の特許ファイル又は記録にある該
特許文献又は特許開示内容の何人による複写にも異存は
ないが、其以外では全ての著作権を保留する。
【図面の簡単な説明】
【図1】上位プロセッサとグラフィックスプロセッサと
を有するマルチプロセッサ・コンピューターのブロック
図である。
【図2】上位プロセッサ及びグラフィックスプロセッサ
のそれぞれのメモリーに常駐する種々のプログラムを示
すブロック図である。
【図3】二つの異なるモード・セグメント内のアプリケ
ーション・プログラムと通信ドライバーとを示す上位プ
ロセッサのメモリーの線型表示である。
【図4】(a) は32ビット・プログラムからのコールに
使われる32ビット・スタックである。 (b) は16ビット・サブルーチンへのコールに使われる
16ビット・スタックである。
【図5】上位プロセッサ・メモリー内の二つの重なり合
うコード・セグメントと、これらのコード・セグメント
へのポインタとを示す。
【図6】32ビット・コード・セグメントから16ビッ
ト・コード・セグメントにおける入口点を呼ぶための方
法の流れ図である。
【図7】特別のアーギュメント・スタックを変換するた
めの方法の流れ図である。
【図8】48ビット・ポインタを32ビット・ポインタ
に変換する方法の流れ図である。
【図9】アプリケーション・インターフェースにおける
種々の構成要素間のデータの流れと、アプリケーション
・インターフェース・ヘッダ・ルーチン、コール・ゲー
ト、及び通信ドライバー間のコントロールの流れとのブ
ロック図である。
【図10】単一プロセッサ・コンピューター・システム
のブロック図である。
フロントページの続き (56)参考文献 特開 平2−81227(JP,A) 特開 昭63−3339(JP,A) 特開 平1−277934(JP,A) 特開 平1−137334(JP,A) 特開 昭63−247830(JP,A) 特開 昭63−65529(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/355 G06F 9/40 - 9/42 G06F 9/46 CSDB(日本国特許庁)

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 第1メモリー・アドレス・フォーマット
    を有する第1動作モードで動作する第1プログラムをイ
    ネーブルするコンピュータを動作して、動作モードを変
    更することなく、第2メモリー・アドレス・フォーマッ
    トを有する第2動作モードで動作する第2プログラムと
    通信する方法であって、 前記第2プログラムにおいて呼び出し可能なエントリー
    ・ポイントのためのエントリーを有するジャンプ・テー
    ブルを形成するステップと、 前記第2プログラムへ送られるべき少なくとも1つのア
    ーギュメントのアーギュメント・リストを含む前記第1
    メモリー・アドレス・フォーマットにスタックを形成す
    るステップと、 前記第1プログラムによって、前記第2プログラムの呼
    び出し可能なエントリー・ポイントへの各々の呼び出し
    にあたって、 前記スタックのアーギュメント・リストにおける各々の
    アーギュメントを前記第1メモリー・アドレス・フォー
    マットから前記第2メモリー・アドレス・フォーマット
    へ変換することによって、前記スタックを前記第1メモ
    リー・アドレス・フォーマットから前記第2メモリー・
    アドレス・フォーマットへ変換し、かつ前記第2メモリ
    ー・アドレス・フォーマットに前記スタックを再形成す
    るステップと、 戻りアドレスを前記第1メモリー・アドレス・フォーマ
    ットから前記第2メモリー・アドレス・フォーマットヘ
    変換するステップと、 所望の呼び出し可能なエントリー・ポイントにある前記
    第2プログラムにおいて、ルーチンの完全性をフォロー
    するコントロールの戻りのための戻りアドレスを特定す
    るステップと、 前記第2プログラムの所望の呼び出し可能なエントリー
    ・ポイントのエントリー・ポイント・アドレスを得るた
    めに、前記ジャンプ・テーブルにアクセスするステップ
    と、 前記ジャンプ・テーブルから得られたエントリ・ポイン
    ト・アドレスへコントロールを転送するステップと、 を有することを特徴とする方法。
  2. 【請求項2】 第1メモリー・アドレス・フォーマット
    を有する第1動作モードで動作する第1プログラムをイ
    ネーブルするするコンピュータを動作して、動作モード
    を変更することなく、第2メモリー・アドレス・フォー
    マットを有する第2動作モードで動作する第2プログラ
    ムと通信する方法であって、 前記第2プログラムへ送られるべき少なくとも1つのア
    ーギュメントのアーギュメント・リストを含む前記第1
    メモリー・アドレス・フォーマットにスタックを形成す
    るステップと、 前記第1プログラムによって、前記第2プログラムの呼
    び出し可能なエントリー・ポイントへの各々の呼び出し
    にあたって、前記スタックのアーギュメント・リストに
    おける各々のアーギュメントを前記第1メモリー・アド
    レス・フォーマットから前記第2メモリー・アドレス・
    フォーマットへ変換することによって、前記スタックを
    前記第1メモリー・アドレス・フォーマットから前記第
    2のアドレスフォーマットへ変換し、かつ前記第2メモ
    リー・アドレス・フォーマットに前記スタックを再形成
    するステップと、 を有することを特徴とする方法。
  3. 【請求項3】 第1メモリー・アドレス・モードは、3
    2ビットのデータ・ワードを特定し、 第2メモリー・アドレス・モードは、16ビットのデー
    タ・ワードを特定し、かつ短い(16ビット)のデータ・
    ワードを前記第1メモリー・アドレス・フォーマットか
    ら前記第2メモリー・アドレス・フォーマットへ変換す
    るステップは、前記第1メモリー・アドレス・フォーマ
    ットにおいて対応するスタック・エントリーの下位の1
    6ビットに等しい前記第2メモリー・アドレス・フォー
    マットにスタック・エントリーを設定するステップと、
    前記対応するスタック・エントリーの上位の16ビット
    を捨てるステップを有することを特徴とする請求項1ま
    たは請求項2に記載の方法。
  4. 【請求項4】 第1メモリー・アドレス・モードは、3
    2ビットのデータ・ワードを特定し、 第2メモリー・アドレス・モードは、16ビットのデー
    タ・ワードを特定し、かつ長い(32ビット)のデータ・
    ワードを前記第1メモリー・アドレス・フォーマットか
    ら前記第2メモリー・アドレス・フォーマットへ変換す
    るステップは、前記第1メモリー・アドレス・フォーマ
    ットにおいて対応するスタック・エントリーの上位の1
    6ビットに等しい前記第2メモリー・アドレス・フォー
    マットに第1スタック・エントリーを設定するステップ
    と、前記対応するスタック・エントリーの下位の16ビ
    ットに等しい前記第2メモリー・アドレス・フォーマッ
    トに第2スタック・エントリーを設定するステップを有
    することを特徴とする請求項1または請求項2に記載の
    方法。
  5. 【請求項5】 第1メモリー・アドレス・モードは、3
    2ビットのデータ・ワードを特定し、 第2メモリー・アドレス・モードは、16ビットのデー
    タ・ワードを特定し、かつポインタ(48ビット)のデー
    タ・ワードを前記第1メモリー・アドレス・フォーマッ
    トから前記第2メモリー・アドレス・フォーマットヘ変
    換するステップは、 前記ポインターが支持するコード・セグメントに対応す
    るリニア・スタート・アドレスを検索するステップと、 リニア・ベース・アドレスを決めるために、前記ポイン
    タの32ビット・オフセットを前記リニア・スタート・
    アドレスヘ加えるステップと、 新しいセレクター・エントリーを割当てるステップと、 前記リニア・ベース・アドレスにおいてスタートする範
    囲を有する、新しいセレクター・エントリーに新しいセ
    レクターを形成するステップと、 前記新しいセレクターを含む、前記第2メモリー・アド
    レス・フォーマットに第1スタック・エントリーを形成
    するステップと、 ゼロ・オフセットを特定する全てのゼロを含む、前記第
    2メモリー・アドレス・フォーマットに第2スタック・
    エントリーを形成するステップと、 を有することを特徴とする請求項1または請求項2に記
    載の方法。
JP01564292A 1991-02-01 1992-01-31 異なるモードで動作する2個のプログラム・セグメント間でコンピューターがコントロールを転送することを可能にする方法及び装置 Expired - Lifetime JP3210384B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/649624 1991-02-01
US07/649,624 US5604885A (en) 1991-02-01 1991-02-01 Apparatus and method enabling a computer to transfer control between two program segments that call one another but operate in different modes

Publications (2)

Publication Number Publication Date
JPH04309135A JPH04309135A (ja) 1992-10-30
JP3210384B2 true JP3210384B2 (ja) 2001-09-17

Family

ID=24605588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01564292A Expired - Lifetime JP3210384B2 (ja) 1991-02-01 1992-01-31 異なるモードで動作する2個のプログラム・セグメント間でコンピューターがコントロールを転送することを可能にする方法及び装置

Country Status (2)

Country Link
US (1) US5604885A (ja)
JP (1) JP3210384B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5628021A (en) * 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US5970236A (en) * 1995-11-14 1999-10-19 Compaq Computer Corporation Circuit for selectively performing data format conversion
US5802307A (en) * 1995-11-24 1998-09-01 Sun Microsystems, Inc. Network communications subsystem and method for digital computer system employing protocol stack having diverse lower-level network driver components optimized for each of base and enhance operating systems
US6535929B1 (en) * 1996-07-02 2003-03-18 Sun Microsystems, Inc. Universal communication mechanism for applications running in a multitasking environment
US7917753B2 (en) * 2005-05-16 2011-03-29 Texas Instruments Incorporated Transferring control between programs of different security levels
US9594670B2 (en) * 2008-07-03 2017-03-14 International Business Machines Corporation Managing software dependencies during software testing and debugging
US10120663B2 (en) 2014-03-28 2018-11-06 Intel Corporation Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture
US11500653B2 (en) 2020-02-05 2022-11-15 International Business Machines Corporation Signal handling between programs associated with different addressing modes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5027273A (en) * 1985-04-10 1991-06-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
JPS62145326A (ja) * 1985-12-20 1987-06-29 Toshiba Corp マイクロプログラム制御回路
US4928237A (en) * 1987-03-27 1990-05-22 International Business Machines Corp. Computer system having mode independent addressing
US5257369A (en) * 1990-10-22 1993-10-26 Skeen Marion D Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes

Also Published As

Publication number Publication date
JPH04309135A (ja) 1992-10-30
US5604885A (en) 1997-02-18

Similar Documents

Publication Publication Date Title
US5623692A (en) Architecture for providing input/output operations in a computer system
US5758182A (en) DMA controller translates virtual I/O device address received directly from application program command to physical i/o device address of I/O device on device bus
US5721947A (en) Apparatus adapted to be joined between the system I/O bus and I/O devices which translates addresses furnished directly by an application program
US4742450A (en) Method to share copy on write segment for mapped files
US6321314B1 (en) Method and apparatus for restricting memory access
KR100239028B1 (ko) 컴퓨터 시스템
JP3268310B2 (ja) メモリ管理方法
US5696924A (en) Memory access circuit with address translation performing auto increment of translated address on writes and return to translated address on reads
US5692190A (en) Bios emulation of a hard file image as a diskette
US6321323B1 (en) System and method for executing platform-independent code on a co-processor
US7120778B2 (en) Option ROM virtualization
US6134641A (en) Method of and system for allowing a computer system to access cacheable memory in a non-cacheable manner
JP3758732B2 (ja) エンディアンタスクを実行するシステム及び方法
US5918050A (en) Apparatus accessed at a physical I/O address for address and data translation and for context switching of I/O devices in response to commands from application programs
US5696923A (en) Graphics processor writing to shadow register at predetermined address simultaneously with writing to control register
JPH05233452A (ja) 情報処理装置
US6606697B1 (en) Information processing apparatus and memory control method
JP3210384B2 (ja) 異なるモードで動作する2個のプログラム・セグメント間でコンピューターがコントロールを転送することを可能にする方法及び装置
US5640591A (en) Method and apparatus for naming input/output devices in a computer system
US5649142A (en) Method and apparatus for translating addresses using mask and replacement value registers and for accessing a service routine in response to a page fault
US5887190A (en) System for determining from a command storing in a storage circuit an application program which has initiated the command to determine an input/output device address
US5659750A (en) Apparatus for context switching of input/output devices in responses to commands from unprivileged application programs
JPH11265286A (ja) レガシ指令のエミュレ―ション装置及び方法
US6324635B1 (en) Method and apparatus for address paging emulation
US5619658A (en) Method and apparatus for trapping unimplemented operations in input/output devices

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070713

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080713

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080713

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090713

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 9