JPH06242987A - コンピュータ装置においてマイクロプロセッサの正常な処理の引継ぎをホストプロセッサが実行する方法および装置 - Google Patents

コンピュータ装置においてマイクロプロセッサの正常な処理の引継ぎをホストプロセッサが実行する方法および装置

Info

Publication number
JPH06242987A
JPH06242987A JP5247353A JP24735393A JPH06242987A JP H06242987 A JPH06242987 A JP H06242987A JP 5247353 A JP5247353 A JP 5247353A JP 24735393 A JP24735393 A JP 24735393A JP H06242987 A JPH06242987 A JP H06242987A
Authority
JP
Japan
Prior art keywords
microprocessor
interrupt
bus
bus cycle
cycle
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
Application number
JP5247353A
Other languages
English (en)
Inventor
Steven E Golson
スティーブン・イー・ゴルソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH06242987A publication Critical patent/JPH06242987A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation

Abstract

(57)【要約】 (修正有) 【目的】 マイクロプロセッサの状態を乱すことなく一
時的引継ぎを行う方法および装置を得る。 【構成】 ステップ400で、ホストはホストプロセッ
サへ割り込みを送り、そのプロセッサを単一ステップ・
モードに置く。各命令が実行された後、このモードはマ
イクロプロセッサに実行をトラップさせる。ブロック4
10で単一ステップ・モードにあると、マイクロプロセ
ッサは各バス・サイクルを待つかトラップし、これによ
り、プロセッサにより出された各バス要求を調べる機会
がホストへ与えられる。ホストプロセッサは、割り込み
サービス・ルーチンのためのコードをマイクロプロセッ
サがフェッチするかどうかをステップ420で決定し、
フェッチしないとすると、サイクルがステップ430で
終了する。ステップ440で、フェッチをホストが決定
すると、希望の機能、又はプロセスのコンテキスト切り
替えのためのコードの実行をマイクロプロセッサに強制
するデータを、ホストが発生する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明の方法および装置は、マイ
クロプロセッサをホストコンピュータ装置のスレーブプ
ロセッサとして動作させる分野に関するものである。更
に詳しくいえば、本発明の方法および装置は、マイクロ
プロセッサ装置のエミュレーションを行う周辺装置とし
てホストコンピュータ装置へ結合されているマイクロプ
ロセッサの制御に関するものである。この出願は、19
91年12月31日に出願された「I/Oエミュレーシ
ョンのためのメモリ管理構造(Memory Mana
gement Structure for I/O
Emulation)」という名称の米国特許出願07
/815,245に関連するものである。参考のために
その米国特許出願をここに収めた。
【0002】
【従来の技術】コンピュータおよびシステムはますます
高度および高速になってきているが、「バックワード・
コンパチブル」である必要が依然としてある、すなわ
ち、より多くの現在のコンピュータ装置が、旧式のシス
テムを動作させるために最初に開発された既存のソフト
ウェアを実行できる性能を有する必要がある。このこと
は、プログラムが拡張ユーザー・ベースを有する場合、
または新しいコンピュータ装置により置き換えられる旧
式のコンピュータ装置が大きいユーザー・ベースを有す
る場合にとくにそうである。したがって、コンピュータ
装置の製造者は、旧式の装置を動作させるために設計さ
れたソフトウェアを実行するために旧式の装置をエミュ
レートするエミュレーション・プログラムを開発してい
る。
【0003】エミュレーションはソフトウェアによって
のみ行うことができる。この場合、ソフトウェアは実行
すべき命令を解釈し、それらの命令を新しいシステムが
理解するフォームへ翻訳する。しかし、これは時間が非
常にかかり、システムは著しく遅くなる。エミュレーシ
ョンを行うためにハードウェアとソフトウェアを混合す
ることも提案されている。たとえば、アメリカ合衆国カ
リフォルニア州マウンテン・ビュー(Mountain
View)所在のサン・マイクロシステムズ社(Su
n Microsystems,Inc.)により製造
されているワークステーションのようなワークステーシ
ョンは、IBMパーソナル・コンピュータ「PC」(ア
メリカ合衆国ニューヨーク州アーモンク(Armon
k)所在のインター・ナショナル・ビジネスマシンズ
(International Business M
achines)により製造された)で典型的に動作す
るディスク・オペレーティング・システム(「DO
S」)のエミュレーションを提供できる。このエミュレ
ーションは、IBM PCにおいてワークステーション
のための周辺装置として利用されているCPUチップを
接続することにより行うことができる。この場合、CP
Uチップはソフトウェアのための命令を時期に適ったや
り方で実行でき、ワークステーションは周辺サポートを
行う。たとえば、ワークステーションはシステムを構成
するためにメモリと入力/出力装置をマイクロプロセッ
サへ提供する。利用される一般的なマイクロプロセッサ
と、IBM PCにおいて利用されるものは、アメリカ
合衆国カリフォルニア州サンタ・クララ(Santa
Clara)所在のインテル・コーポレーション(In
telCorporation)により製造されたCP
Uチップ、とくにインテル80486、80386、8
0286、8086または8088である。
【0004】ワークステーションへ結合されているマイ
クロプロセッサCPUチップは、マイクロプロセッサと
相互作用する周辺装置へマイクロプロセッサが直結され
ているかのように機能する。ワークステーションはマイ
クロプロセッサに対して見えない。しかし、ワークステ
ーションがマイクロプロセッサの正常な動作を一時的に
引き継ぐすなわち妨害することが望ましいことがある。
たとえば、デバッグまたはシステムの性能を測定するた
めには、マルチプレクサのレジスタ内容をモニタする必
要があるかもしれない。別の例は、多重処理性能を持た
ないマイクロプロセッサでコンテキスト・スイッチング
を行う能力である。引継ぎが終わった後でマイクロプロ
セッサの状態が回復されるようにすることにより、マイ
クロプロセッサの状態を乱すことなしにそれらの一時的
「引継ぎ」を実行せねばならない。
【0005】より最近のCPUチップ、すなわち、80
386および80486、はシステムへ異なる機能性を
提供するいくつかのシステム動作モードを提供する。た
とえば、80486は仮想86モードと、実モードと、
保護されるモードとをサポートする。実モードは元の8
086プロセッサのエミュレーションである。仮想86
モードはいくつかの8086アプリケーションを同時に
実行する性能を提供する。保護されるモードで動作して
いるプロセッサがプロセッサを本質的に「所有してい
る」から、あるハードウェア部分が別のプロセッサによ
りアクセスされることから保護する手段を提供するため
に、保護されるモードは望ましいことがある。しかし、
プロセスはプロセッサを「所有している」から、ただ1
つの保護されるモード・プロセスを任意の1つの時刻に
実行できる。80386または80486をベースとす
るシステムにおいては、これは典型的には問題ではな
い。というのは、マイクロプロセッサの機能性のため
に、ユーザーは1つの保護されるモード・プロセスを1
度に実行することに制約されるからである。しかし、ゲ
ストプロセッサがホストプロセッサへ接続されて、ゲス
トプロセッサにより実行されるプロセスがホストプロセ
ッサにより制御され、かつホストプロセッサにより実行
される環境においては、ホストプロセッサが多重処理で
きるならばゲストプロセッサも多重処理できることが可
能であるようである。しかし、現在のゲストプロセスが
ゲストプロセッサの状態の制御を実行し、ゲストプロセ
ッサが多数のプロセスを同時に実行できないとすると、
次のプロセスを実行できる前に現在のプロセスをゲスト
プロセッサで終了せねばならないから、それは常に簡単
なタスクではない。
【0006】ゲストプロセッサが、ウィンドウ・システ
ムにより多重処理を行えるようにするワークステーショ
ンにおけるDOSを動作させる80486であるとする
と、ユーザーは複数のウィンドウを開くことができる。
全てのウィンドウは486プロセッサをアクセスでき、
IBM PCおよびDOSオペレーティングシステムで
実行するために開発されたプログラムを実行する。保護
されるモード動作を含んでいる2つのプロセスを、ユー
ザーがDOSオペレーティングシステムを用いて実行し
ようとする時は、プロセッサは2つ以上の保護されるモ
ード・プロセスを同時に実行できないから、プロセッサ
はそれらのプロセスを適正に実行しない。それらの問題
は、実モードのように、最初は1つのモードでスタート
でき、それから中間点において保護されるモードへ切り
替わり、保護されるモードのみ実行できるようなプロセ
スの実行中にしばしば起きる。したがって、あるプログ
ラムがマイクロプロセッサの保護されるモードを求めて
いるかどうかを最初に決定する方法はない。
【0007】
【発明が解決しようとする課題】したがって本発明の目
的は、マイクロプロセッサの状態を乱すことなしに、マ
イクロプロセッサの一時的引継ぎを行う方法および装置
を得ることである。本発明の別の目的は、ホストコンピ
ュータ・システムと、割り込みを行わず、マイクロプロ
セッサの状態を乱さない、マイクロプロセッサに対する
デバッグ・オペレーションを行うための周辺装置とし
て、ホストコンピュータ・システムへ結合されるマイク
ロプロセッサと、で構成されたエミュレーション・シス
テムを提供することにある。本発明の別の目的は、多数
の保護されるモード・アプリケーションを1つの保護さ
れるモード・マイクロプロセッサにおいて同時に実行す
るための方法および装置を得ることである。本発明の更
に別の目的は、1つの保護されるモード・アプリケーシ
ョンから、マイクロプロセッサとは独立している別の保
護されるモード・アプリケーションへ切り換えるため
に、マイクロプロセッサにおいてコンテキスト切り替え
を行う方法および装置を得ることである。
【0008】
【課題を解決するための手段】本発明のコンピュータ装
置においては、マイクロプロセッサは周辺装置としてホ
ストプロセッサへ接続される。マイクロプロセッサの状
態を切り換えるためにマイクロプロセッサの一時的引継
ぎを実行すること、またはマイクロプロセッサの状態の
内容を犯さないようにして調べるというようなタスクを
実行することを希望する時に、ホストプロセッサはマイ
クロプロセッサへ割り込みを送る。更に、ホストプロセ
ッサは、各命令の後でマイクロプロセッサがストップま
たはトラップするというような単一ステップ・モードで
マイクロプロセッサを機能させる。割り込みを受ける
と、マイクロプロセッサは単一ステップ・モードで動作
して割り込みをサービスする。ホストプロセッサは動作
と、マイクロプロセッサにより送られたメッセージをモ
ニタし、記述子テーブル・エントリおよびその他のデー
タ構造を読出すというマイクロプロセッサの要求を横取
りして、マルチプレクサ命令を送り、ホストコンピュー
タがデバッグ・オペレーションを実行するためにアクセ
スするためにマイクロプロセッサの状態を検索するとい
うような、希望の動作をなんでも実行する。引継ぎが終
わると、マイクロプロセッサは正常な動作へ戻る。別の
実施例においては、マイクロプロセッサはコンテキスト
・スイッチング・ルーチンのコードを実行し、マイクロ
プロセッサ中の種々のレジスタの状態を保存し、コンテ
キスト切り替えの終了後に実行すべきプロセスのために
存在する同じレジスタの状態をロードすることにより、
マイクロプロセッサは第2のプロセスのコンテキストで
実行を続ける。第1のプロセスに関するレジスタの状態
は、第1のプロセスの処理を継続するために以後のコン
テキストを実行できるように、保存される。
【0009】
【実施例】図1は本発明の一実施例である。ここではホ
ストプロセッサ、たとえば、アメリカ合衆国カリフォル
ニア州マウンテン・ビュー(Mountain Vie
w)所在のサン・マイクロシステムズ社(Sun Mi
crosystems,Inc.)により製造されたプ
ロセッサのような、UNIXをベースとするプロセッ
サ、が使用されている。ホストプロセッサ100は第1
のオペレーティングシステム、たとえば、UNIX(U
NIXはAT&Tの登録商標)の下で典型的に動作する
ものであって、多数のプロセッサ110、120、13
0、140、150が実行できる多重タスク実行システ
ムである。また、プロセッサ100は内部バス160へ
接続される。その内部バスへは、メモリ管理装置19
0、メモリ170、記憶装置180および各種の装置制
御器のような周辺装置が接続される。また、インテル8
0386または80486マイクロプロセッサのような
第2のプロセッサ200が内部バス160へ結合され
る。このプロセッサは、マイクロソフト社(Micro
soft Corporation)により製作され、
IBMパーソナル・コンピュータまたはそれと互換でき
るコンピュータ装置で典型的に動作するディスク・オペ
レーティングシステム(DOS)のような、第2のオペ
レーティングシステム210により発生される命令を実
行する。
【0010】DOSオペレーティングシステム210は
マイクロプロセッサ200により、DOS環境において
IBM PCまたはそれと互換できるコンピュータ装置
で実行するために開発されたソフトウェア220、23
0を実行するためにプロセッサを動作させ、かつ制御で
きる。ホストプロセッサ100は周辺エミュレーション
とマイクロプロセッサ200のサポートを行う。マイク
ロプロセッサ200へ接続されている周辺装置をエミュ
レートするためにソフトウェアが供給される。ホストプ
ロセッサが、割り込み信号線のようなマイクロプロセッ
サにおける各種の信号線を制御し、かつマイクロプロセ
ッサのローカル・メモリ・アドレス空間とホストプロセ
ッサのアドレス空間の間のメモリ変換を行えるようにす
る性能を提供するためのインタフェース240が更に含
まれる。1991年12月31日に出願された「I/O
エミュレーションのためのメモリ管理構造(Memor
yManagement Structure for
I/O Emulation)」という名称の未決の
米国特許出願07/815,245に開示されているよ
うなインタフェースを利用することが好ましい。したが
って、ホストプロセッサ100は、インタフェース20
0を介して、マイクロプロセッサのための周辺装置およ
びメモリのエミュレーションを行う。たとえば、マイク
ロプロセッサ200がオフライン・メモリ180に記憶
されているデータを求めたとすると、オフライン・メモ
リ180から読出すためにマイクロプロセッサはアドレ
スを送り出す。インタフェース240はメモリ要求のア
ドレスを、ホストプロセッサのアドレス空間に適合する
アドレスへ変換する。それからメモリ要求がバス160
を介してメモリ管理装置へ送られる。ホストのメモリ管
理装置は、その要求を受けると、マイクロプロセッサ2
00により求められたデータをアクセスするために必要
な追加のアドレス変換を行い、読出されたデータをバス
160を介してインタフェース240へ送り返す。そう
するとそのインタフェースはデータをマイクロプロセッ
サ200へ入力する。この一連の事象はマイクロプロセ
ッサにとっては分からず、取り付けられた専用の周辺装
置を備えた独立の装置として動作しているかのようにみ
える。
【0011】以下の説明は80486のようなインテル
・マイクロプロセッサのインタフェースについてのもの
である。そのマイクロプロセッサは、SPARC(商
標)(SPARCはSPARCインターナショナル会社
(SPARC International,In
c.)の商標である)のようなワークステーションへ接
続される。しかし、本発明の装置はインテル・マイクロ
プロセッサに限定されるものではなく、またワークステ
ーションへ限定されるものでも無く、ホストプロセッサ
に関連して動作するマイクロプロセッサへ一般に応用で
きることが当業者には明らかであろう。
【0012】デバッグ動作を行うため、およびマイクロ
プロセッサの典型的な範囲外のタスクを実行することが
必要である時のようなある場合には、ホスト・システム
がそれらのタスクを実行するためにマイクロプロセッサ
を「引継ぐ」ことができることが望ましい。タスクが一
度終了すると、マイクロプロセッサはその正常な処理を
継続することが可能である。図2を参照して引継ぎを実
行するためのプロセスを説明する。ステップ400にお
いては、ホストはマイクロプロセッサへ割り込みを送
り、そのマイクロプロセッサを単一ステップ・モードに
置く。割り込みが出されると、マイクロプロセッサは、
正常な割り込み処理の一部として、プロセッサ状態をス
タックに自動的に記憶する。たとえば、割り込まれた命
令のアドレスをプッシュする前に、80486はEFL
AGSレジスタの内容をスタック内にプッシュする。各
命令が実行された後で、単一ステップ・モードはマイク
ロプロセッサに実行をトラップすなわち停止させる。た
とえば、ホストプロセッサは、インタフェース240内
の全てのサイクル・ビットをセットすることにより、8
0486マイクロプロセッサを単一ステップ・モードに
置く。プロセッサがブロック410において単一ステッ
プ・モードにあると、マイクロプロセッサは各バス・サ
イクルを待つ、またはトラップする。各バス・サイクル
でトラップすることにより、マイクロプロセッサにより
出された各バス要求を調べる機会がホストへ与えられ
る。全てのサイクル・ビットおよび単一ステップ・モー
ドについての詳細は、前記未決の米国特許出願07/8
15,245を参照されたい。
【0013】ホストプロセッサは、ホスト・システムに
より出された割り込みに応じて割り込みサービス・ルー
チンのためのコードをマイクロプロセッサがフェッチす
るかどうかを決定する(ステップ420)。割り込みサ
ービス・ルーチンのためのコードをまだフェッチしない
とすると、ホスト・システムはサイクルがステップ43
0を終了し、サービス・ルーチンがマイクロプロセッサ
により求められていることをホストが検出するまで、各
命令のモニタを再び継続する(ステップ410、42
0、430)。
【0014】アドレス等に対する要求がマルチプレクサ
により出され、マイクロプロセッサの周辺装置のエミュ
レーションを行っているホスト・システムへバスを介し
て送るから、ホストはマイクロプロセッサをモニタでき
る。同様に、ホスト・システムは種々の命令およびマル
チプレクサにより出された要求に対する応答を行う。更
に、割り込みと、それらの割り込みをサービスするため
にマイクロプロセッサにより行われるステップとに対し
てマイクロプロセッサがどのように応答するかをホスト
コンピュータ装置が正確に知っているから、ホストコン
ピュータ装置は、マイクロプロセッサにより開始された
バス・サイクルをモニタでき、引継ぎ中に実行すべきコ
ードをマイクロプロセッサへ供給する必要があるバス・
サイクルを横取りする。したがって、ステップ440に
おいては、割り込みサービス・ルーチンのためのコード
をマイクロプロセッサがフェッチしようとしていること
をホストがひとたび決定すると、デバッグ機能のような
希望の機能を実行するコード、またはプロセスのコンテ
キスト切り替えを実行するためのコードを実行すること
をマイクロプロセッサに強制するデータを、ホストが発
生できる。
【0015】ホストコンピュータ・システムにより指令
された動作をマイクロプロセッサがひとたび実行する
と、ホストは正常な処理を継続する状態にマイクロプロ
セッサを置くために必要な情報を供給する。割り込み命
令、たとえば80486におけるIRET命令の正常な
終わりが実行されることにより、マイクロプロセッサは
割り込みモードを離れて正常な処理を回復する。このプ
ロセスを利用することにより、マイクロプロセッサは典
型的にはマイクロプロセッサの範囲内にないオペレーシ
ョンを実行し、かつマイクロプロセッサの典型的なオペ
レーションを妨害することなしにオペレーションを実行
するように制御される。
【0016】図3、4は80486マイクロプロセッサ
のために採用された引継ぎプロセスを記述するものであ
る。ステップ500においては、マイクロプロセッサを
フラッシュさせ、オンチップ・キャッシュすなわち主キ
ャッシュを不能にする命令を出す。各命令がバスを介し
て送り出され、ホストがマイクロプロセッサにより行わ
れるステップをモニタでき、引継ぎを行うために必要な
要求を横取りできるようにするために、主キャッシュ・
ヒットがないことを確実にするようにそのステップが実
行される。ステップ510においては、ホストはマスク
可能でない割り込み(NMI)をマイクロプロセッサへ
送って、全てのバス・サイクルがトラップされるように
インタフェース240内のトラップ全サイクルをセット
することにより、80486を単一ステップ・モードに
置く。このようにして、各サイクルの後では、次の命令
へ進むために信号が受けられるまでマイクロプロセッサ
は停止する。ステップ520においては、マイクロプロ
セッサは次のバス・サイクルをトラップし、ホストプロ
セッサは命令を読出し、その命令がアドレス0×8から
の4バイトのメモリ読出しであるかどうかを判定する。
アドレス0×8は、実モードにある間は、80486が
命令ベクトルをフェッチすることを試みているかどうか
を指示する。アドレス情報は80486マイクロプロセ
ッサの仕様にしたがって決定される。アドレッシングの
詳細については、インテル社(Intel Corpo
ration)「i486マイクロプロセッサ・プログ
ラマの参考手引き(i486 Microproces
sor Programmer′s Referenc
e Manual)」(インテル社、1990年)、お
よび「i486マイクロプロセッサ・ハードウェア参考
手引き(i486 Microprocessor H
ardware Reference Manua
l)」を参照されたい。
【0017】ホストプロセッサにより出された割り込み
をサービスするために、80486は所定のステップを
続行して割り込みのサービスを実行する。80486が
割り込みベクトルをフェッチすることを試みると(ステ
ップ545)、ホストは、割り込みベクトルが位置させ
られているメモリ場所の読出しに対するその要求に応答
して、零の値を80486へ戻す(ステップ555)。
ステップ610においては、80486は次のサイクル
で再びトラップされ、ホストコンピュータ・システムは
その要求を今調べて80486がコード読出しを実行す
ることを試みているかどうかを判定する(ステップ62
0)。マイクロプロセッサがコード読出しを実行するこ
とを試みていないとすると、ホストはサイクルを終わる
ことを許し、コード読出しがマイクロプロセッサにより
出されるまでモニタを再び継続する。
【0018】この点で(ステップ640)、典型的には
割り込みサービス・ルーチンの始めであるものが、ホス
トコンピュータ・システムがマイクロプロセッサに特定
のオペレーションを実行することを指示する機会にな
る。その特定のオペレーションとは、レジスタを読出し
て、それをバスへ出力し、マイクロプロセッサの状態に
ついての情報を供給するというようなものである。同様
に、後で説明するように、マイクロプロセッサが別のオ
ペレーションのコンテキストにおける処理を続行するよ
うに、ホスト・システムはコンテキスト切り替えを行う
ことをマイクロプロセッサに指示できる。引継ぎプロセ
ス中にマイクロプロセッサが希望のオペレーションを行
うと(ステップ650)、ホスト・システムは正常な処
理を続行できるような状態にマイクロプロセッサを置
く。
【0019】図3のステップ530へ再び戻り、サイク
ルがアドレス0×8からの4バイトのメモリ読出しでは
ないとすると、80486は実モードで動作せず、むし
ろ保護されるモードまたは仮想8086モードで動作す
る。保護されるモードにある間に、80486が異なる
ステップ列を実行することにより割り込みをサービスす
る。ステップ540においては、ホストは80486に
より出された要求を調べて、サイクルが割り込み記述子
テーブル(IDT)フェッチにあるかどうかを判定す
る。もしそうでなければ、マイクロプロセッサが割り込
みサービスを開始するサイクルにまだ到達していないか
ら、バス・サイクルは終わる事を許される。
【0020】ステップ540においては、サイクルがI
DTフェッチにあるとホストが判定したとすると、ホス
トは無効なIDT値をマイクロプロセッサへ戻す(ステ
ップ560)。無効な値が供給されたこと、および割り
込みをサービスするためにサイクリングを継続すること
をマイクロプロセッサは認識しない。ホストプロセッサ
はマイクロプロセッサのサイクルをモニタして、大域記
述子テーブル(GDT)からフェッチが行われる時を決
定する(ステップ580)。GDTフェッチがまだ行わ
れないとすると、ホストはサイクルが終わる事を許す
(ステップ590)。GDTフェッチが試みられている
ことをホストが判定したとすると(ステップ590)、
ステップ610においてホストは無効なGDT値をマイ
クロプロセッサへ戻す。それらにステップは、割り込み
サービス・ルーチンが配置されているアドレスを決定す
るためにマイクロプロセッサにより利用される値を供給
する。GDTとIDTにおいて見出される値を用いて、
アドレスが形成され、マイクロプロセッサはそのアドレ
スで始まるコード読出しを実行して、割り込みサービス
・ルーチンの実行を開始する。IDT値またはGDT値
に対する要求に応答して無効な値またはデバッグ値が供
給されると(ステップ610、620)、コード読出し
が何時実行されるかを決定するためにトラップ・サイク
ルがホストプロセッサにより再びモニタされる。その点
において(ステップ640)、割り込みサービス・ルー
チンに対するアクセスが試みられ、ホストは応答して、
マイクロプロセッサが引継ぎ中に実行すべきコードを供
給する。プロセスがひとたび実行されると(ステップ6
50)、ホスト・システムはマイクロプロセッサを正常
な処理のための状態に置く。
【0021】ホストプロセッサは、多数のプロセスを同
時に実行することを許すマルチタスキング性能を典型的
に有する。これは典型的には、図5を参照して、多数の
ウィンドウ250、255、260、265を供給する
今日のウィンドウ・システムにおいて明らかである。各
ウィンドウ内では異なるプロセスが実行される。たとえ
ば、ウィンドウ250ではワード・プロセッシング・プ
ログラムを実行でき、ウィンドウ260においては会計
プログラムを実行でき、マイクロプロセッサ200はマ
ルチタスキングでもあって、多数のプロセスを同時に実
行できる。しかし、マイクロプロセッサはそれが同時に
実行できるプロセッサの種類に限定される。とくに、i
486マイクロプロセッサは3つのモードを有する。そ
れらのモードにおいては、そのマイクロプロセッサは仮
想8086(V86)モードと、実モードと、保護され
るモードとを実行できる。実モードは8086プロセッ
サのプログラミング環境をエミュレートし、いくらか拡
張される(このモードを出て、別のモードに入る)。リ
セット初期化がプロセッサを実モードに置く。V86モ
ードは8086エミュレーション・モードの別の態様で
あるが、システム保護およびメモリ管理に適合する。
【0022】保護されたモードはプロセッサの自然32
ビット命令セットを用いる。このモードにおいては、全
ての命令およびアーキテクチャ特徴を、種々のレベルの
保護(「保護されるモード」という名の由来である)を
含めて利用できる。保護されるモードは動作してプロセ
ッサ200を制御し、あるメモリおよびレジスタを別の
プロセスによるアクセスから保護する。プロセッサの性
能を完全に利用するためにはこれはしばしば望ましい事
である。しかし、ただ1つのプロセスがプロセッサ20
0を制御できるから、ただ1つの保護されるモードを1
度に実行できるだけである。これは、マイクロプロセッ
サ200が独立の環境において動作させられる時には明
らかな問題ではなかった。しかし、ウィンドウ・システ
ムで動作しているワークステーション・ホストプロセッ
サへ接続されるものとすると、ユーザーが追加のウィン
ドウ255、265を調整し、保護されたモードプロセ
スであるプロセスを実行することを試みる事は極めて容
易である。これが起きると、マイクロプロセッサ200
は誤りをひき起こし、適正には動作しない。
【0023】多数の保護されるモード・プロセスをユー
ザーが実行できるようにするために、命令を実行するマ
イクロプロセッサ200へアクセスし、これを制御する
所定の長さの時間が各保護されたモード・プロセスへ割
り当てられるような、コンテキスト切り替えを行う方法
が利用される。これは、ホストにより開始される革新的
な引継ぎプロセスを用いて行われる。割り当てられた時
間が経過すると、ホストプロセッサ100はマイクロプ
ロセッサ200に割り込み、現在のプロセス(以後プロ
セス1と呼ぶ)の状態にマイクロプロセッサ200で実
行させ、保存ささせ、マイクロプロセッサ200により
次に実行させるべきプロセス(以下プロセス2と呼ぶ)
の状態をマイクロプロセッサのレジスタに記憶させて、
第2のプロセスのコンテキストにおいてマイクロプロセ
ッサ200が実行を継続するようにする。本発明によ
り、割り込みテーブルを変更することなしに、したがっ
てプロセスの状態と、または割り込みのサービス中にマ
イクロプロセッサによりアクセスされる割り込み記述子
テーブル(IDT)および大域記述子テーブル(GD
T)の場所とを知る必要なしに、マイクロプロセッサに
おけるコンテキスト切り替えを実行するために、ホスト
プロセッサがマイクロプロセッサを制御することを許
す。これは極めて重要である。というのは、プロセッサ
の全状態を制御するモード(保護されるモードのよう
な)においては、割り込みサービス・ルーチンを制御す
るため、およびコンテキスト切り替えを実行するために
割り込みテーブルの場所をホストプロセッサが知る方法
はない。
【0024】ホストはマイクロプロセッサで割り込みを
発生させ、各命令サイクルをトラップするためにインタ
フェースを制御する。これによりマイクロプロセッサに
より供給される各要求をホストプロセッサが横取りする
ことを許し、希望のコンテキスト切り替えルーチンをア
クセスするためにマイクロプロセッサのプログラム・・
カウンタを変更するために適切なデータを供給する。こ
のようにして、ホストがコンテキスト切り替えを割り込
みに行わせると、その割り込みのためのサービス・ルー
チンを実行するために、マイクロプロセッサは割り込み
サービスに応答して種々の情報片(テーブル・アドレ
ス、サービス・ルーチン・アドレスのような)を検索す
る。ホストプロセッサはマイクロプロセッサの活動、と
くに、要求された情報(「フェッチ」)をモニタし、割
り込みサービス・ルーチンを実行すべき時に、現在のプ
ロセスから次に実行すべきプロセスからのコンテキスト
切り換えを実行する既知の場所におけるコードをマイク
ロプロセッサが実行するように、マルチプレクサ情報を
適時に供給する。
【0025】実際のコンテキスト切り換えを実行するコ
ードは、ホストのMMUテーブルを変更することによ
り、またはインタフェース中のマップとマスク・レジス
タを変更することにより、種々のレジスタに現在存在す
るデータを保存することにより現在のプロセスの状態を
保存し、現在のプロセスにより利用されているアドレス
空間から、次に実行するプロセスにより利用されるアド
レス空間へ変更する。それから、レジスタへ、次のプロ
セスの実行の状態を示すデータがロードされ、プロセス
実行が次のプロセスのコンテキストにおいて続行する。
【0026】マイクロプロセッサの影響を及ぼさないデ
バッギングと、ホスト・エミュレーション・プロセスを
実行するために、この革新的なプロセスを使用できる。
デバッギングする時は、マイクロプロセッサの種々のレ
ジスタの内容を調べる必要があるかもしれない。しか
し、これは、マイクロプロセッサのレジスタの内容を乱
すことなしに、またはマイクロプロセッサの実行状態を
乱すことなしに行わねばならない。更に、レジスタの内
容を読出すための最適なやり方は、レジスタをアクセス
するためにマイクロプロセッサ自体における特殊化され
たコードを利用することなしに行うことである。こうす
ることはマイクロプロセッサの状態が乱される効果があ
る。マイクロプロセッサにレジスタ読出し命令を実行さ
せ、それに続いて、レジスタから読出されたデータをバ
スへ出力させるI/O命令を発生させるために引継ぎプ
ロセスを使用できる。それから、ホストプロセッサはバ
スからデータを取り出す事ができ、デバッギングのため
にその情報を利用できる。たとえば、80486ではE
AXレジスタをそれのないように影響を及ぼすことなし
に読出すために、「OUT 0,EAX」命令が実行さ
れてEAXレジスタを読出し、それをホストへ出力す
る。EAXレジスタの内容がそのままにされ、デバッグ
のために別のレジスタの内容の読出しをホストが終了す
ると、割り込み命令からの復帰がマイクロプロセッサへ
送られ、単一ステップ・モードが除去されてマイクロプ
ロセッサを引継ぎプロセスの前のそれの状態へ戻る。
【図面の簡単な説明】
【図1】本発明の好適な実施例のシステム構成を示す。
【図2】本発明の方法の好適な実施例の流れ図である。
【図3】本発明の好適な実施例の特定の実現を示す流れ
図である。
【図4】本発明の好適な実施例の特定の実現を示す流れ
図である。
【図5】本発明のシステムにおいて提示できる多数のウ
ィンドウを示す。
【符号の説明】
100 ホストプロセッサ 160 内部バス 170 メモリ 180 記憶装置 190 メモリ管理装置 200 マイクロプロセッサ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 バスを介して結合されるホストプロセッ
    サと、マイクロプロセッサと、メモリとを備えるコンピ
    ュータ装置でホストプロセッサがマイクロプロセッサの
    正常な処理の引継ぎを実行する方法において、 割り込みをサービスするプロセス過程をマイクロプロセ
    ッサに実行させる割り込みをマイクロプロセッサへ発行
    する過程と、 マイクロプロセッサにより開始されたバス・サイクルを
    モニタする過程と、 割り込みサービス・ルーチンのアドレスについての情報
    を要求するバス・サイクルをマイクロプロセッサが開始
    した時に、そのバス・サイクルを横取りし、マイクロプ
    ロセッサの引継ぎ中に実行されるべきルーチンのアドレ
    スを供給する過程と、 前記マイクロプロセッサが、ホストプロセッサによりマ
    イクロプロセッサへ供給されたアドレスにおいて開始す
    るルーチンを実行する過程と、 ルーチンがひとたび実行されると、マイクロプロセッサ
    を割り込み状態から戻す過程と、 前記マイクロプロセッサが正常な処理を続行する過程
    と、を備える方法。
  2. 【請求項2】 バスを介して結合されるホストプロセッ
    サと、マイクロプロセッサと、メモリとを備え、前記ホ
    ストプロセッサは入力/出力装置エミュレーションをマ
    イクロプロセッサへ供給し、前記マイクロプロセッサ
    は、ホストプロセッサによりエミュレートされたメモリ
    および装置をアクセスするバス要求を発するコンピュー
    タ装置で、ホストプロセッサがマイクロプロセッサの正
    常な処理の引継ぎを実行する方法において、 割り込みをサービスするプロセス過程をマイクロプロセ
    ッサに実行させる割り込みをマイクロプロセッサへ発行
    する過程と、 マイクロプロセッサにより開始されたバス・サイクルを
    モニタする過程と、 マイクロプロセッサが第1のモードにあり、かつ割り込
    みサービス・ルーチンのメモリ内のアドレスを示す割り
    込みベクトルをフェッチするためにメモリを読出すこと
    を要求するバス・サイクルを開始したときに、そのバス
    ・サイクルを横取りし、にせの値をマイクロプロセッサ
    へ戻す過程と、 マイクロプロセッサが第2のモードにあるとすると、 割り込みサイクルの場所についての情報を供給する割り
    込み記述子テーブルからの値をフェッチするために、前
    記マイクロプロセッサがメモリ読出しを要求するバス・
    サイクルを開始する時に、そのバス・サイクルを横取り
    し、にせの値をマイクロプロセッサへ戻す過程と、 割り込みサイクルの場所についての情報を供給する全般
    的な割り込み記述子テーブルからの値をフェッチするた
    めに、前記マイクロプロセッサがメモリ読出しを要求す
    るバス・サイクルを開始する時に、そのバス・サイクル
    を横取りし、にせの値をマイクロプロセッサへ戻す過程
    と、 コード読出しを要求するバス・サイクルをマイクロプロ
    セッサが開始した時に、引継ぎ中に実行されるべきルー
    チンのコードを供給する過程と、 ホストプロセッサによりマイクロプロセッサへ供給され
    たコードにより決定されたルーチンを前記マイクロプロ
    セッサが実行する過程と、 ルーチンがひとたび実行されると、マイクロプロセッサ
    を割り込み状態から戻す過程と、 前記マイクロプロセッサが正常な処理を継続する過程
    と、を備える方法。
  3. 【請求項3】 バスを介して結合される入力/出力装置
    エミュレーションをマイクロプロセッサへ供給するホス
    トプロセッサと、メモリとホストプロセッサによりエミ
    ュレートされた装置をアクセスするバス要求を発するマ
    イクロプロセッサと、メモリとを備えるコンピュータ装
    置の前記ホストプロセッサが前記マイクロプロセッサの
    正常な処理を引継ぎを実行する装置において、 割り込みをサービスするプロセス過程をマイクロプロセ
    ッサに実行させる割り込みをマイクロプロセッサへ発行
    する割り込み手段と、 マイクロプロセッサにより開始されたバス・サイクルを
    モニタする手段と、 割り込みサービス・ルーチンのアドレスについての情報
    を要求するバス・サイクルをマルチプレクサが開始した
    時にそのバス・サイクルを横取りするバス・サイクル横
    取り手段であって、このバス・サイクル横取り手段は、
    横取り手段によりマイクロプロセッサへ供給されたアド
    レスで始まるルーチンを実行するように、マイクロプロ
    セッサの引継ぎ中に実行すべきルーチンのアドレスを供
    給する前記横取り手段と、 マイクロプロセッサを割り込み状態から戻す手段と、を
    備え、前記マイクロプロセッサが正常な処理を継続する
    ことを特徴とする装置。
  4. 【請求項4】 バスを介して結合される、入力/出力装
    置エミュレーションをマイクロプロセッサへ供給するホ
    ストプロセッサと、メモリとホストプロセッサによりエ
    ミュレートされた装置をアクセスするバス要求を発する
    マイクロプロセッサと、メモリとを備えるコンピュータ
    装置でホストコンピュータがマイクロプロセッサの正常
    処理の引継ぎを実行する装置において、 割り込みをサービスするプロセス過程をマイクロプロセ
    ッサに実行させる割り込みをマイクロプロセッサへ発行
    する割り込み手段と、 マイクロプロセッサにより開始されたバス・サイクルを
    モニタする手段と、 マイクロプロセッサのバス・サイクルを横取りする手段
    であって、 マイクロプロセッサが第1のモードにあり、割り込みサ
    ービス・ルーチンのメモリ内のアドレスを示す割り込み
    ベクトルをフェッチするためにメモリを読出すことを要
    求するバス・サイクルを開始した際に、前記横取り手段
    がバス・サイクルを横取りして、にせの値をマイクロプ
    ロセッサへ戻し、 マイクロプロセッサが第2のモードにあるとすると、割
    り込みサイクルの場所についての情報を供給する割り込
    み記述子テーブルからの値をフェッチするために、前記
    マイクロプロセッサがメモリ読出しを要求するバス・サ
    イクルを開始する際に、前記横取り手段は、バス・サイ
    クルを横取りして、にせの値をマイクロプロセッサへ戻
    し、かつ、割り込みサイクルの場所についての情報を供
    給する全般的な割り込み記述子テーブルからの値をフェ
    ッチするためにメモリ読出しを要求するバス・サイクル
    を前記マイクロプロセッサが開始する時に、バス・サイ
    クルを横取りし、にせの値をマイクロプロセッサへ戻
    す、ようにマイクロプロセッサのバス・サイクルを横取
    りする前記横取り手段と、 コード読出しを要求するバス・サイクルをマイクロプロ
    セッサが開始した際に、ホストプロセッサによりマイク
    ロプロセッサへ供給されたコードにより決定されたルー
    チンをマイクロプロセッサが実行するように、前記横取
    り手段は、サイクルを横取りし、引継ぎ中に実行すべき
    ルーチンのコードを供給し、 ルーチンが、ひとたび実行されると、マイクロプロセッ
    サを割り込み状態から戻す手段と、を備え、前記マイク
    ロプロセッサは正常な処理を継続することを特徴とする
    装置。
JP5247353A 1992-09-15 1993-09-09 コンピュータ装置においてマイクロプロセッサの正常な処理の引継ぎをホストプロセッサが実行する方法および装置 Pending JPH06242987A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US945,214 1992-09-15
US07/945,214 US5390332A (en) 1992-09-15 1992-09-15 Method and apparatus for performing a takeover of a microprocessor

Publications (1)

Publication Number Publication Date
JPH06242987A true JPH06242987A (ja) 1994-09-02

Family

ID=25482797

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5247353A Pending JPH06242987A (ja) 1992-09-15 1993-09-09 コンピュータ装置においてマイクロプロセッサの正常な処理の引継ぎをホストプロセッサが実行する方法および装置

Country Status (4)

Country Link
US (1) US5390332A (ja)
EP (1) EP0588473B1 (ja)
JP (1) JPH06242987A (ja)
DE (1) DE69320741T2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530891A (en) * 1994-05-31 1996-06-25 Advanced Micro Devices System management interrupt mechanism within a symmetrical multiprocessing system
AU4467996A (en) * 1994-12-12 1996-07-03 Intel Corporation Cpu-cycle stealing for multi-tasking operating system
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5819067A (en) * 1996-02-23 1998-10-06 Advanced Micro Devices, Inc. Computer system configured to translate a computer program into a second computer program prior to executing the computer program
EP0814404B1 (en) * 1996-06-19 2001-01-31 Matsushita Electric Industrial Co., Ltd. Debugging apparatus for debugging a program
US5901293A (en) * 1996-06-25 1999-05-04 Claxton; Daniel Dean Bus interface controller for serially-accessed variable-access-time memory device
US5937185A (en) * 1996-09-11 1999-08-10 Creative Technology, Inc. Method and system for device virtualization based on an interrupt request in a DOS-based environment
US5790837A (en) * 1996-09-11 1998-08-04 Ensoniq Corporation Method and system for device virtualization based on an interrupt request in a dos-based environment
US5951696A (en) * 1996-11-14 1999-09-14 Hewlett-Packard Company Debug system with hardware breakpoint trap
US5987495A (en) * 1997-11-07 1999-11-16 International Business Machines Corporation Method and apparatus for fully restoring a program context following an interrupt
GB9805482D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Microcomputer
DE19954407A1 (de) * 1999-11-12 2001-05-17 Gfs Systemtechnik Gmbh & Co Kg Verfahren zum direkten Aufrufen einer Funktion mittels eines Softwaremoduls durch einen Prozessor mit einer Memory-Management-Unit (MMU)
US6601122B1 (en) * 2000-04-17 2003-07-29 International Business Machines Corporation Exceptions and interrupts with dynamic priority and vector routing
US7162615B1 (en) 2000-06-12 2007-01-09 Mips Technologies, Inc. Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch
US6915414B2 (en) * 2001-07-20 2005-07-05 Zilog, Inc. Context switching pipelined microprocessor
US9665466B2 (en) 2014-09-02 2017-05-30 Nxp Usa, Inc. Debug architecture for multithreaded processors

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3940743A (en) * 1973-11-05 1976-02-24 Digital Equipment Corporation Interconnecting unit for independently operable data processing systems
US4015243A (en) * 1975-06-02 1977-03-29 Kurpanek Horst G Multi-processing computer system
DE2546202A1 (de) * 1975-10-15 1977-04-28 Siemens Ag Rechnersystem aus mehreren miteinander verbundenen und zusammenwirkenden einzelrechnern und verfahren zum betrieb des rechnersystems
US4296466A (en) * 1978-01-23 1981-10-20 Data General Corporation Data processing system including a separate input/output processor with micro-interrupt request apparatus
US4268902A (en) * 1978-10-23 1981-05-19 International Business Machines Corporation Maintenance interface for a service processor-central processing unit computer system
US4701845A (en) * 1984-10-25 1987-10-20 Unisys Corporation User interface processor for computer network with maintenance and programmable interrupt capability
US4779187A (en) * 1985-04-10 1988-10-18 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US5053949A (en) * 1989-04-03 1991-10-01 Motorola, Inc. No-chip debug peripheral which uses externally provided instructions to control a core processing unit
US5008805A (en) * 1989-08-03 1991-04-16 International Business Machines Corporation Real time, fail safe process control system and method
DE9203527U1 (ja) * 1992-03-17 1993-04-15 Sack, Hansjoerg, 4792 Bad Lippspringe, De

Also Published As

Publication number Publication date
EP0588473B1 (en) 1998-09-02
EP0588473A1 (en) 1994-03-23
DE69320741T2 (de) 1999-05-06
DE69320741D1 (de) 1998-10-08
US5390332A (en) 1995-02-14

Similar Documents

Publication Publication Date Title
US5459869A (en) Method for providing protected mode services for device drivers and other resident software
US7434224B2 (en) Plural operating systems having interrupts for all operating systems processed by the highest priority operating system
US5901312A (en) Providing application programs with unmediated access to a contested hardware resource
US5953516A (en) Method and apparatus for emulating a peripheral device to allow device driver development before availability of the peripheral device
US5187802A (en) Virtual machine system with vitual machine resetting store indicating that virtual machine processed interrupt without virtual machine control program intervention
US5357628A (en) Computer system having integrated source level debugging functions that provide hardware information using transparent system interrupt
EP1080407B1 (en) Computer system with an emulation coprocessor and method for executing an emulated application program
US6895460B2 (en) Synchronization of asynchronous emulated interrupts
US5511217A (en) Computer system of virtual machines sharing a vector processor
US6772419B1 (en) Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
JP2650675B2 (ja) マルチモードマイクロプロセッサにおいてプログラムを実行する方法及びオペレーティングシステム
JPH06242987A (ja) コンピュータ装置においてマイクロプロセッサの正常な処理の引継ぎをホストプロセッサが実行する方法および装置
KR20080028827A (ko) 마이크로프로세서에서 복수의 인스트럭션 스트림/복수의데이터 스트림 확장을 인에이블링하는 방법, 시스템 및기계-판독 가능한 기록 매체
US7111200B2 (en) Apparatus and method for debugging a logical partition
US5937185A (en) Method and system for device virtualization based on an interrupt request in a DOS-based environment
GB2392998A (en) Handling interrupts during multiple access program instructions
US5093776A (en) Information processing system emulation apparatus and method
JPH02153434A (ja) データ処理システム
JP2007507779A (ja) オペレーティングシステム
KR920003044B1 (ko) 가상 머신 시스템용의 게스트 머신 실행 제어 시스템
US6106565A (en) System and method for hardware emulation of a digital circuit
EP0575171B1 (en) Enhanced system management method and apparatus
JP2001216172A (ja) マルチos構成方法
CA2521748A1 (en) Operating systems
JPH05216690A (ja) コンピュータ装置およびコンピュータ装置を動作させる方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040406