JPH0638236B2 - 割り込み制御方法 - Google Patents

割り込み制御方法

Info

Publication number
JPH0638236B2
JPH0638236B2 JP62111922A JP11192287A JPH0638236B2 JP H0638236 B2 JPH0638236 B2 JP H0638236B2 JP 62111922 A JP62111922 A JP 62111922A JP 11192287 A JP11192287 A JP 11192287A JP H0638236 B2 JPH0638236 B2 JP H0638236B2
Authority
JP
Japan
Prior art keywords
interrupt
flag
emulation mode
mode
emulation
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
JP62111922A
Other languages
English (en)
Other versions
JPS63276635A (ja
Inventor
陽一 矢野
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP62111922A priority Critical patent/JPH0638236B2/ja
Publication of JPS63276635A publication Critical patent/JPS63276635A/ja
Publication of JPH0638236B2 publication Critical patent/JPH0638236B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置における中央処理装置に関し、特
にネイティブモードとエミュレーションモードという2
つの命令実行状態を持つ中央処理装置における、エミュ
レーションモードでの割り込み制御方式に関する。
〔従来の技術〕
計算機システムの発展にともない、計算機には高速な処
理のみならず、高度な処理も要求されるようになってき
ている。半導体技術を応用したマイクロプロセッサ(M
PUと略す)の分野でも、非常に高度な処理が同様に要
求されており、特に、32ビットMPU(例えばV6
0)と呼ばれる分野においても、その傾向は顕著であ
る。
高度な処理の1つに、従来ソフトウェアとの互換性を提
供するエミュレーションモード(EMと略す)がある。
これは、新しいアーキテクチャを導入する際に、古いア
ーキテクチャ上で開発されていたソフトウェアを変更な
しに動かすことにより、ソフトウェア資産を引き継ぎ、
生かしていこうとするアプローチである。これに対し、
新しいアーキテクチャで命令実行を行なうモードをネイ
ティブモード(NMと略す)と呼ぶ。このアプローチを
採用することにより、スムーズに新しいアーキテクチャ
に移行することができるばかりでなく、古いソフトウェ
アも引続き使用できるため、新しいソフトウェア環境と
古いソフトウェア環境を共存させることもでき、ソフト
ウェアに対する投資を有効に活用できる。
引続き利用したいソフトウェアには、いわゆるアプリケ
ーション・プログラム(適用業務)だけでなく、管理プ
ログラム、すなわちオペレーティング・システム(OS
と略す)自身の場合もある。すなわち、古いプログラム
の実行環境を提供するソフトウェア群である。
特に、EMを備えるMPUでは、周辺機器の制御をどの
ようにNMとEMで分担し、ソフトウェアの互換性を提
供するかが重要となるが、そのなかでも、周辺機器の管
理の基本となる割込みの管理が最も重要である。
EMを持つMPUでは、まず、現在どちらの実行モード
で実行しているかを示すフラグを持つ。これを、モード
フラグと呼ぶが、このモードフラグより、どちらの実行
モードで命令を実行しているかを制御、表示する。これ
以外に、NMの割込み可/不可を制御するフラグと、E
Mでの割込み可/不可を制御するフラグの2つを持つ。
前者をNM割込みステータス(NM.ISと略す)と呼
び、後者をEM割込みステータス(EM.ISと略す)
とする。それぞれ、NM、EMから参照できる、いわゆ
るプログラム・ステータス・ワード(PSWと略す)内
に存在する。NM用のPSWをネイティブPSW、EM
用のPSWをエミュレーションPSWと呼ぶ。NM.I
Sは、MPU自身の割込み可/不可の状態を制御するこ
とを目的とするのに対し、EM.ISはEMでの割込み
可/不可の状態を表示することを目的とする。
一般に、割込みは、NMに対する割込みとEMに対する
割込みの2種類に分類することができるが、NMに対す
る割込みは、EM.ISの状態にかかわらず、NM.I
Sに従って処理される。それは、NMのOSが責任を持
ちシステムの管理を行なっているからである。一方、E
Mに対する割込みは、EMに対して通知されるべき性質
のものであるが、EMの命令実行状態に応じて、もしE
M.ISが割込み可になっていれば、EMの命令実行に
割込み、もしEM.ISが割込み不可であれば、割込み
があったことを記憶しておき、EM.ISが割込み可の
状態になったときに、割込みを通知することになる。こ
れは、非同期な事象の通知方法として、OSでは一般に
使われている方式である。
このとき、EMで走行しているプログラムがEM.IS
を操作しようとしたときには、その動きをなんらかの方
法でエミュレートしなければならない。このために考え
られる方法として3つある。
第1の方法として、EM.ISの割込み可/不可の状態
に連動して、NM.ISも同様の状態に設定する、とい
うものがある。EM.ISお操作する命令をエミュレー
トするわけである。すなわち、EMで割込み不可にした
場合に、NMで無条件に割込み不可にしてしまうやりか
たであるが、この方式をとった場合、タイマ割込みのよ
うなNMに対する重要な割込み要求を逃してしまう可能
性が出てきてしまう。これは、MPUに対する割込みの
制御のような、いわばシステムの実行環境を変更する意
味合いを持つ動作に関して、NMが責任を持つて管理し
ているにもかかわらず、その制御をEMに開放してしま
ったために起こる問題である。したがって、NM.IS
の状態をEM.ISに連動して変化させるわけにはいか
ない。
第2の方法として、NM.ISの割込み可/不可の状態
に無関係にEM.ISを操作するEM内の命令を実行す
る。すなわち、EM.ISの状態は命令実行により変え
るものの、NM.ISの状態は変えない、というやりか
たがある。この方式では、EMでいつ割込みを受け付け
るかが分からないという問題がある。いま、EM.IS
が割込みの状態でEMを動かしているとき、命令実行に
より、EM.ISを割込み不可にしたとする。この後、
EMへの割込み要求がMPUに対して発生したとすると
き、EMでは割込み不可の状態で走行していると仮定し
ているので、NMのOSは、EMの命令実行シーケンス
に対して割込まず、EMに対する割込み要求が発生して
いることのみを記録しておき、EMの命令実行シーケン
スに制御を戻す。問題となるのは、これ以降の動きであ
る。EMでは命令実行にともないEM.ISを割込み可
の状態に戻すかもしれないが、それを戻した時点がいつ
なのか、ということがNMのOSに通知できない。なぜ
ならば、EMでは、EM.ISを操作する命令を実行し
てしまうので、いつEM.ISを割込み可にしたのかが
判断できず、従って、NMのOSはEMに割込み要求が
存在することを通知ができないからである。
第3方法としては、EM.ISを操作する命令をエミュ
レートせず、命令実行をしようとした場合に、NMにト
ラップ起こして戻る、という方式がある。この方式で
は、割込みの制御をNMのソフトウェアがコントロール
できるので上記のような問題は発生せず、NMのOSが
完全にコントロールできる。
従来のエミュレーションでは、EM.ISを操作する命
令の実行をエミュレーションせず、特権的な命令処理で
あるとみなし、例外としてNMに処理をもどす第3の方
法を採用していた。
〔発明が解決しようとする問題点〕
上述した従来のエミュレーションモードでの割込み方式
は、もしEMで走行するプログラムがそれほど頻繁E
M.ISを制御しない場合は、エミュレーションの性能
低下のことを心配する必要はないが、キーボード入力の
ような処理では、1文字入力の度ごとにEM.ISを制
御し、割込み可/不可の制御を繰り返す場合があり、こ
のようなプログラムをEMで動かそうとした場合には、
頻繁に例外が発生し、EMからNMへの状態遷移が数多
く起こることになるので、能率的なエミュレーションが
できないという欠点がある。
〔問題点を解決するための手段〕
本発明の割り込み制御方法は、2つの命令実行状態であ
るネイティブモードとエミュレーションモードとを持
ち、ネイティブモードでの割り込み可/不可の状態を示
す第1のフラグと、エミュレーションモードでの割り込
み可/不可の状態の示を第2のフラグとを有し、割り込
み要求が発生した時は第1のフラグに従って割り込みを
受け付ける割り込み制御方法において、エミュレーショ
ンモードの割り込み保留状態を示し、エミュレーション
モードから参照できる割り込みペンディングフラグを有
し、第2のフラグが割り込み不可を示しているときにエ
ミュレーションモードへの割り込み要求があると、第1
のフラグが割り込み可であれば割り込みを受け付けるス
テップと、実際のエミュレーションモードでの割り込み
処理は保留として、この割り込み要求があったことのみ
を記憶するように割り込みペンディングフラグをセット
するステップと、次にエミュレーションモードで実行し
ているプログラムが第2のフラグを操作して割り込み不
可から割り込み可にした時点で割り込みペンディングフ
ラグがセットされていると、エミュレーションモードへ
の割り込み要求があったことをエミュレーションモード
で検知するステップとを有することを特徴とする。
〔作用〕
したがって、EMにおいて、EM.ISを制御する命令
実行に際し、ペンディングフラグが立っているかどうか
によって、EMにたいする割込み要求があったかどうか
を検知することができるので、毎回NMにトラップする
必要がない。
〔実施例〕
次に、本発明の実施例について図面を参照して説明す
る。
第1図は本発明のエミュレーションモードにおける割り
込み制御方式が適用されている第1の実施例である中央
処理装置の主要部を示す構成図、第2図(a) 、(b) はそ
れぞれ第1図の中央処理装置100に設けられているネ
イティブPSW120とエミュレーションPSW130
の内容を示す説明図、第3図、第4図は割込みに対する
各部動作を示すフローチャートである。
中央処理装置100は、アドレスバスとデータバスから
なるシステムバス120に接続されたバス・インターフ
ェース103と、割込み要求を割込み要求端子101に
入力すると、割込み要求に従って割込み処理を開始する
マイクロプログラム・シーケンサ104と、マイクロプ
ログラム・シーケンサ104が実行するマイクロプログ
ラムを格納しているマイクロプログラムメモリ105
と、32ビットのネイティブPSW120、エミュレー
ションPSW130を含むとともにレジスタ、ALU
(不図示)などの資源をも含むデータパスである実行ユ
ニット106とから構成されている。
ネイティブPSW120は第2図(a) のように、ネイテ
ィブモード(以降NMと記す)とエミュレーションモー
ド(以降EMと記す)との間の遷移状態を制御するモー
ドフラグ110、ネイティブモードにおける割込み可/
不可の状態を示し、割込みを制御するフラグであるネイ
ティブモード割込みステータス111(以降NM.IS
111と記す)などのフラグを保持している、モードフ
ラグ110はネイティブPSW120のビット26から
ビット31(以降ビットはBと記す)であり、命令実行
ペンディングフラグIP、シングルステップトラップペ
ンディングフラグTP、割込みスタック使用中フラグI
S、エミュレーションモードフラグEM、非同期タスク
トラップ処理中フラグATA、非同期システムトラップ
処理中フラグASAを有し、B16からB18がNM.
IS111であり、シングルステップトラップ可フラグ
TE、アドレストラップ可フラグAE、インターラプト
イネーブルフラグIEを有し、B8からB12まではそ
れぞれ浮動小数点精度落ち例外フラグFRP、浮動小数
点アンダフロー例外フラグFUD、浮動小数点オーバー
フロー例外フラグFOV、浮動小数点ゼロ除算例外フラ
グFZD、浮動小数点無効演算例外フラグFIVであ
り、B1からB4はそれぞれゼロフラグZ、サインフラ
グS、オーバーフローフラグOV、キャリフラグCYで
あり、“−”印のビットは予約済フィールドである。
エミュレーションPSW130は第2図(b) に示すよう
に、エミュレーションPSW130のB8からB10が
エミュレーションモード割込みステータス113(以降
EM.IS113と記す)であり、B8,B9,B10
はそれぞれシングルステップトラップ可フラグBRK、
インタラプトイネーブルフラグIE、、転送方向制御フ
ラグである。B0,B2,B4はそれぞれキャリフラグ
CY、パリティフラグP、下位キャリフラグAC、であ
り、B6,B7,B11はそれぞれゼロフラグZ、サイ
ンフラグS、オーバーフローフラグVである。B25は
本実施例において重要な役割を担う割込みペンディング
フラグIRPである。また“−”はネイティブモードP
SW200におけると同様に予約済フィールドである。
次に本実施例の動作について第3,第4図により説明す
る。
割込み要求が割込み要求端子101に入力された場合、
NM.IS111の割込みイネーブルフラグIEが立っ
ているかどうか調べ割込み可/不可を判断し(ステップ
11)、割込みイネーブルフラグIEが立っていないと
きは割込みは受付けず、イネーブルフラグIEが立って
いると割込みを受付け(ステップ12)、次にNMで命
令実行中であったかどうか判断する(ステップ13)。
NMで命令実行中と判断すると、NMの割込み処理ルー
チンを実行し(ステップ14)、ステップ11にもど
る。ステップ13で、EMで命令実行中と判断すると、
EM.IS113の割込みイネーブルフラグIEが立っ
ているか調べて、割込み可/不可の判断を行う(ステッ
プ15)。割込み可であれば、EMでの割込み処理ルー
チンに制御を渡せるように準備し(ステップ16)、一
方EMのプログラムはEM.IS113を操作して、割
込み不可の状態にする(ステップ17)。ステップ17
において、EMのプログラムはNMへのトラップを行わ
ないで命令を実行する。ステップ17が終了すると、N
Mで受付けた割込みをEMでの割込み処理ルーチンの制
御に移し(ステップ18)、ステップ11にもどる。ス
テップ15で割込み不可の場合、例えばステップ17の
後に他の割込み要求が発生した場合、EMの割込み制御
状態にかかわらず、NMの割込み制御状態に従い、NM
の状態遷移をし割込みを受け付ける。NMの割込み処理
ルーチンが起動される。このとき、モードフラグ110
はNMで実行中となる。この割込みが、EMに対する割
込み要求だったとする。しかしステップ17でEMは割
込み不可状態で命令実行を行なっているので、EMの命
令実行を中断してEMの割込み処理ルーチンに制御を移
すわけにはいかない。
そこで、エミュレーションモードPSW300の割込み
ペンディングフラグIRPをセットし、EMへの割込み
要求が存在することを記録して、ステップ11にもど
る。NMからは、EMにそのまま戻る。モードフラグ1
10はEMで実行中となる。EMは、割込まれたところ
から、命令実行を再開する。
ステップ18の後、EMで命令が実行され、EMで割込
みを可にしようとしているかどうか判断し(ステップ2
1)、割込み可にしようとしていなければEM.IS1
13を割込み不可とし(ステップ22)、終了する。
ステップ21で割込みを可にしようとしている場合は割
込みペンディングフラグIRPが立っているかどうか判
断する(ステップ23)。ステップ23で割込みペンデ
ィングフラグIRPが立っていないと判断されるとステ
ップ22に移り、終了し、割込みペンディングフラグI
RPが立っていると判断すると、EM.IS113を割
込み可とし(ステップ24)、NMにトラップする(ス
テップ25)。ステップ25により、NMではEMに対
する割込み要求を解析し、割込み番号、および複数の割
込み要求があったときには、その順序付けを行ない、制
御を移すべきEMの割込み処理ルーチンを探し出し、そ
の後、必要な情報をスタックにEMのスタックに格納
し、EMの割込み処理ルーチンに制御を移す(ステップ
26〜28)。
ここで注意しなければならないことは、実際のプロセッ
サの割込み可/不可の状態はNM.IS111に従うこ
とである。すなわち、インタラプトペンディングフラグ
IRPおよびEM.IS113はプロセッサの割込み状
態の制御はせずEMで動作しているプログラムの意向を
表している。
第5図は本発明が適用されている第2の実施例である中
央処理装置の主要部を示す構成図、第6図(a) 、(b) は
それぞれ第5図の中央処理装置200に設けられている
ネイティブPSW220とエミュレーションPSW23
0の内容を示す説明図、第7図、第8図は割込みに対す
る各部動作を示すフローチャートである。
本実施例は第1の実施例と比較して、エミュレーション
PSW230のB16からB23にペンディング割込み
要求レベル114(以降IRL114と記す)を保持す
るフィールドが確保されている点が異なっている。IR
L114は、ペンディングフラグIRPをセットしたと
きの割込みがどの割込み要求レベルに相当するか、つま
りEMにおいてどの割込み処理ルーチンに制御を移すか
を指示するものである。その他の構成については第1の
実施例の場合と同様なので省略する。
次に本実施例の動作について説明する。
ステップ31,32,〜,39はそれぞれ第3図のそれ
ぞれステップ11,12,〜,19と同じなので説明は
省略する。ステップ39が終了後、IRL114に割込
みレベルをセットしてステップ31にもどる。ステップ
41,42,〜,44は第4図のそれぞれステップ2
1,22,〜,24と同じなので説明は省略する。ステ
ップ44が終了し、EMの状態が割込み可になったと
き、割込みペンディングフラグIRPを参照して割込み
要求がペンディングにされていることを検知し、EM.
IS213を割込み不可にする(ステップ45)。ステ
ップ45が完了するとIRL114が示す割込みレベル
に従って、該当する割込み処理ルーチンに制御を移し
(ステップ46)、終了する。ステップ46においては
NMにトラップせずIRL114が示す割込みレベルに
従っている。
第1の実施例と同様にここで、注意しなればならないこ
とは、実際のプロセッサの割込み可/不可の状態はN
M.IS211に従うことである。すなわち、IRPお
よびEM.IS213はプロセッサの割込み状態の制御
はせず、EMで動作しているプログラムの意向を表して
いる。
〔発明の効果〕
以上説明したように本発明は、割込みペンディングフラ
グを設け、エミュレーションモードにおいて、割込みペ
ンディングフラグが立っているかどうかによって、エミ
ュレーションモードの割込み要求があったかどうか検知
することにより、次のような効果がある。
(1) EMの割込み制御フラグEM.ISを制御するEM
での命令実行を、毎回NMにトラップする必要がないた
めに、エミュレーションの高速化を図ることができる。
(2) EMへの割込み要求を、割込み可状態になったEM
へ通知するオーバーヘッドが小さくなる。
【図面の簡単な説明】
第1図は本発明のエミュレーションモードにおける割込
み方式が適用された第1の実施例の中央処理装置の主要
部を示す構成図、第2図(a) 、(b) はそれぞれ第1図の
中央処理装置100のネイティブPSW120、エミュ
レーションPSW130の内容を示す説明図、第3図,
第4図は第1図への割込みに対する各部動作を示すフロ
ーチャート、第5図は第2の実施例の中央処理装置の主
要部を示す構成図、第6図(a) 、(b) はそれぞれ第5図
の中央処理装置200のネイティブPSW220、エミ
ュレーションPSW230の内容を示す説明図、第7
図,第8図は第5図への割込みに対する各部動作を示す
フローチャートである。 100,200……中央処理装置、 101……割込み要求端子、 102……システムバス、 103、203……バスインターフェース、 104,204……マイクロプログラムシーケンサ、 105,205……マイクロプログラムメモリ、 106,206……実行ユニット、 120,220……ネイティブPSW、 130,230……エミュレーションPSW。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】2つの命令実行状態であるネイティブモー
    ドとエミュレーションモードとを持ち、ネイティブモー
    ドでの割り込み可/不可の状態の示す第1のフラグと、
    エミュレーションモードでの割り込み可/不可の状態を
    示す第2のフラグとを有し、割り込み要求が発生した時
    は第1のフラグに従って割り込みを受け付ける割り込み
    制御方法において、エミュレーションモードの割り込み
    保留状態を示し、エミュレーションモードから参照でき
    る割り込みペンディングフラグを有し、第2のフラグが
    割り込み不可を示しているときにエミュレーションモー
    ドへの割り込み要求があると、第1のフラグが割り込み
    可であれば割り込みを受け付けるステップと、実際のエ
    ミュレーションモードでの割り込み処理は保留として、
    この割り込み要求があったことのみを記憶するように割
    り込みペンディングフラグをセットするステップと、次
    にエミュレーションモードで実行しているプログラムが
    第2のフラグを操作して割り込み不可から割り込み可に
    した時点で割り込みペンディングフラグがセットされて
    いると、エミュレーションモードへの割り込み要求があ
    ったことをエミュレーションモードで検知するステップ
    とを有することを特徴とする割り込み制御方法。
JP62111922A 1987-05-08 1987-05-08 割り込み制御方法 Expired - Lifetime JPH0638236B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62111922A JPH0638236B2 (ja) 1987-05-08 1987-05-08 割り込み制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62111922A JPH0638236B2 (ja) 1987-05-08 1987-05-08 割り込み制御方法

Publications (2)

Publication Number Publication Date
JPS63276635A JPS63276635A (ja) 1988-11-14
JPH0638236B2 true JPH0638236B2 (ja) 1994-05-18

Family

ID=14573481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62111922A Expired - Lifetime JPH0638236B2 (ja) 1987-05-08 1987-05-08 割り込み制御方法

Country Status (1)

Country Link
JP (1) JPH0638236B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system

Also Published As

Publication number Publication date
JPS63276635A (ja) 1988-11-14

Similar Documents

Publication Publication Date Title
US9304794B2 (en) Virtual machine control method and virtual machine system using prefetch information
EP3039540B1 (en) Virtual machine monitor configured to support latency sensitive virtual machines
US8504703B2 (en) Systems and methods for instruction sequence compounding in a virtual machine environment
US12367062B1 (en) Virtualization extension modules
US20050080965A1 (en) Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US9009716B2 (en) Creating a thread of execution in a computer processor
JP5244160B2 (ja) 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム
WO2017112149A1 (en) Thread and/or virtual machine scheduling for cores with diverse capabilities
JPS61286931A (ja) 情報処理装置
US20160253196A1 (en) Optimized extended context management for virtual machines
JP2004258840A (ja) 仮想化されたi/oデバイスをもつ計算機システム
JPH05216689A (ja) コンピュータ装置およびコンピュータ装置を動作させる方法
JPH02153434A (ja) データ処理システム
JP2008500652A (ja) 仮想マシン環境において仮想化アルゴリズムを選択するための適応アルゴリズム
EP0290942B1 (en) Guest machine execution control system for virtual machine system
US20060064528A1 (en) Privileged resource access
JP5235900B2 (ja) 命令実行を容易にするためのバッファの使用
JPH0192843A (ja) データ処理装置
JPS6273333A (ja) エミュレーション制御装置
JPS61184643A (ja) 仮想計算機の起動制御方式
JPS63276635A (ja) 割り込み制御方法
Dubey et al. Operating System–Principles and Applications
JPH0677236B2 (ja) I/o割込みをシミュレートする装置及び方法
JPS61184644A (ja) 仮想計算機システム制御方式
JPH03142532A (ja) 計算機システムの入出力実行装置