JP2004013240A - 計算機システム - Google Patents

計算機システム Download PDF

Info

Publication number
JP2004013240A
JP2004013240A JP2002162280A JP2002162280A JP2004013240A JP 2004013240 A JP2004013240 A JP 2004013240A JP 2002162280 A JP2002162280 A JP 2002162280A JP 2002162280 A JP2002162280 A JP 2002162280A JP 2004013240 A JP2004013240 A JP 2004013240A
Authority
JP
Japan
Prior art keywords
interrupt
host
emulator
computer
guest
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
Application number
JP2002162280A
Other languages
English (en)
Other versions
JP4140286B2 (ja
Inventor
Yoshio Miki
三木 良雄
Akihiro Takamura
高村 明裕
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002162280A priority Critical patent/JP4140286B2/ja
Publication of JP2004013240A publication Critical patent/JP2004013240A/ja
Application granted granted Critical
Publication of JP4140286B2 publication Critical patent/JP4140286B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

【課題】割込みによりエミュレータ−などの仮想計算機環境の提供手段が突然停止することを防止する。
【解決手段】割込みモニタをホストOSと計算機との間に介在させ、モニタ結果に応じて割込みをホストOSではなく、エミュレータに引き渡し、ゲストOSの機能によって割込みの例外処理を実行させる。
【選択図】図1

Description

【0001】
【発明の属する技術分野】
本発明は特定の命令セットアーキテクチャを有する計算機上で異なる命令セットアーキテクチャ向けに開発されたプログラムを実行するプロセッサエミュレータに係り、特にソフトウェアやハードウェアからの割込みによって、上記の異なる命令セットアーキテクチャ向けに開発されたプログラムが異常終了してしまうことを防止するソフトウェア技術に係わる。
【0002】
【従来の技術】
エミュレータに代表される仮想計算機技術では、ある特定の命令セットアーキテクチャを有する計算機(以下ホスト計算機と呼ぶ)上で、異なる命令セットアーキテクチャ向けに開発されたプログラム(以下アプリケーションプログラムと呼ぶ)を実行することができる。この種の技術は、たとえば特開平11−65854に開示されているように、ホスト計算機上で稼動するエミュレータプログラムがアプリケーションプログラムをメモリ上に配置し、命令語一つ一つを解読し、アプリケーションプログラムの意図する動作を実現する。つまり、エミュレータはアプリケーションプログラムが前提としている命令セットアーキテクチャの計算機をホスト計算機上に仮想計算機として実現する手段である。
【0003】
より詳細には、ホスト計算機上にはホスト計算機向けのオペレーティングシステム(以下ホストOSと呼ぶ)が稼動しており、エミュレータは、このホストOS上の一プログラムとして稼動する。仮想計算機上でも仮想計算機向けのオペレーティングシステム(以降ゲストOSと呼ぶ)が動作しており、仮想計算機向けのアプリケーションプログラムの実行環境を提供する。
【0004】
以上のような構成により、仮想計算機の範囲内で機能が完結しているアプリケーションプログラムを実行することができる。しかし、利用するハードウェアに依存した動作あるいは機能に関しては、エミュレータによって提供される仮想計算機が実現している範囲を越えて想定外の動作をすることがある。たとえば、先に引例とした特開平11−65854では、ホストOSやエミュレータ自身に不備があり、CPUから割込み処理が発生した場合、ホストOSが異常処理を実施する。具体的には、不正命令の実行のように重大なエラーが発生した場合、ホストOSはエミュレータの実行を即時停止し、メモリのダンプ等の例外処理を実行する。
【0005】
【発明が解決しようとする課題】
上述のように、重大なエラーの検出などでホストOSにCPUから割込みが発生した場合には、エミュレータ自身が停止してしまうため、アプリケーションプログラムの側からは仮想計算機が突然停止してしまったかのように見える。しかし、正しくはゲストOSの例外処理によってアプリケーションプログラムの後処理が行われるべきであって、ホストOSの例外処理によってエミュレータが停止し、ゲストOSの例外処理が起動される機会を奪うことが問題である。
【0006】
そこで、本発明の課題としては、CPUなどから割込みが発生した場合に、ホストOSの例外処理を回避し、ゲストOSの例外処理によってアプリケーションプログラムの適切な後処理を実現することにある。
【0007】
【課題を解決するための手段】
上記の課題は次の手段により解決される。特定の命令セットアーキテクチャを有する計算機上で異なる命令セットアーキテクチャ向けに開発されたプログラムを実行可能な仮想計算機環境を提供する計算機システムであって、ホスト計算機上で稼動するホストOSと、仮想計算機環境を提供するエミュレータと、エミュレータ上で稼動するゲストOSと、仮想計算機の命令セットアーキテクチャ向けに開発されたアプリケーションプログラムとからなる計算機システムにおいて、ハードウェアとホストOSとの間に介在し、ホスト計算機から発生する割込み情報を受け取り、エミュレータに通知する割込みモニタを設けることで、計算機から発生した割込みを、ホストOSの処理を回避してゲストOSの機能にて例外処理を行わせる。
【0008】
【発明の実施の形態】
図1に本発明の第1の実施例を示す。ハードウェアが異常を検知して割込み100が発生すると、割込みモニタで割込み先判定101が行なわれる。割込み先判定101は、割込み要因を調べ、ホストOSで処理すべき割込み要因なのか、ゲストOSで処理すべき割込み要因なのかを判定する。この時、ホストOSがエミュレータに通知を行う割込み要因であれば、ホストOSで処理すべきであると判断し、ホストOSがエミュレータに割込み通知を行わない割込み要因であれば、ゲストOSで処理すべきであると判断する。
【0009】
上記ホストOSで処理すべき割込み要因である場合は、割込みモニタはホストOSに制御を移す。ホストOSは割込み(例外)処理103を行い、割込みを終了する(処理104)。上記ゲストOSで処理すべき割込み要因である場合は、割込みモニタはエミュレータに割込み通知102を行う。具体的には、エミュレータ内の割込みフラグを1にすることでエミュレータへの割込み通知を行う。割込み通知102が完了すると、割込みを終了する(処理104)。
【0010】
割込みが終了し、エミュレータが動作可能になると、エミュレータ内で定期的に実行される割込通知判定105が行われる。事前にエミュレータに割込み通知102が実行されていなければ、エミュレーションの継続109を行う。事前にエミュレータへの割込み通知102が実行されていれば、エミュレータはハードウェアが発生した割込みの要因をゲストOSでの割込み要因に割り当てるため、ゲストOSの割込み要因への変換106を行う。
【0011】
たとえばメモリ障害の割込みについて、ホストOSの稼働するハードウェアでは割込み要因が3と定義されており、ゲストOSの稼働するハードウェア(エミュレータ)では1と定義されていた場合、割込み要因3(メモリ障害)が発生すると、エミュレータは割込み要因1としてゲストOSに割込みの通知を行う。さらに、エミュレータは変換した割込み要因を用いてゲストOSに割込み通知107を行う。ゲストOSに通知が行われると、ゲストOSは割込み(例外)処理108を行う。割込み(例外)処理108が終了すると、エミュレーションの継続109を行う。
【0012】
図5に本実施例における割込み処理の流れを示す。本実施例では、ハードウェア605が異常を検知して割込みを発生した際、ホストOS603がエミュレータ602に対して割込みの通知を行わない割込み要因であっても、割込みモニタ604がエミュレータ602に割込みを通知することで、エミュエータ602が動作可能になった時にゲストOS601がアプリケーションプログラム600の後処理を行うことができる。
【0013】
図2に本実施例における割込み発生の詳細を示す。同図(a)のように、ハードウェアから割込み200が発生すると、プロセッサは割込み種別毎に異なるアドレスに分岐し、割込み種別毎の割込み処理命令を実行する。すなわち、割込み種別判定201を行い、割込み種別に対応する割込み処理アドレス計算202を行い、計算で求めた割込み処理アドレスへ分岐203する。メモリ204には、同図(b)のように割込み種別ごとに決まる割込み処理アドレスから割込み処理命令が格納されている。これによって、割込み種別毎の割込み処理が可能になっている。
【0014】
図3に本実施例におけるメモリ204の割込み処理命令の設定手順である起動時処理の詳細を示す。本システムの起動時には、割込みモニタのロード、ホストOSのロードと割込み処理命令の設定が行なわれる。
【0015】
まずプログラムローダをディスクからメモリに転送し、プログラムローダ起動300を行う。プログラムローダは、割込みモニタをディスクからメモリに転送し、割込みモニタ起動301を行う。割込みモニタは、割込み命令変更302でメモリ204の割込み処理命令に、割込みモニタへの分岐命令を格納する。さらに、割込みモニタは割込み命令の変更をメモリ保護機構を用いて監視するために、特権レベル取得303とメモリ保護設定304を行い、割込み処理命令が格納されているアドレスへの書き込み、読み出しがある場合にメモリ保護割込みが発生するように設定する。
【0016】
続いて、プログラムローダは、ホストOSをディスクからメモリに転送し、ホストOS起動305を行う。ホストOSは割込み命令変更306でメモリ204の割込み処理命令に、ホストOSへの分岐命令を格納する。この時、割込みモニタが割込み処理命令が格納されているアドレスへの書き込み、読み出しでメモリ保護割込みが発生する。割込みモニタは、ホストOSへの分岐命令をホストOSによる割込み処理の実行103に格納する。
【0017】
以上の手順により、すべての割込みは、割込みモニタに分岐するようにできる。また、割込みモニタ内で割込み処理をホストOSで実行すると判断した場合に、ホストOS内の割込み処理命令に分岐することができる。
【0018】
図4に本発明の第2の実施例における割込み処理の詳細を示す。本実施例では、ゲストOSへ割込み通知を行う際、ハードウェアで発生した割込み要因のままホストOSに割込みを通知するとホストOSがエミュレータに対して割込みを発生しない場合には、割込み内容を変換し、ソフトウェア割込みを用いてホストOSに割込みを通知し、ホストOSからエミュレータに割込み通知が行なわれる様にする点が第1の実施形態と異なる。
【0019】
以下では、第1の実施例と異なる部分のみ詳細に説明する。ある割込み要因によって、ハードウェアが割込み500を発生させると、割込みモニタで割込み先判定501が行なわれる。
【0020】
割込み先判定501は、割込み要因を調べ、ホストOSで処理すべき割込み要因なのか、ゲストOSで処理すべき割込み要因なのかを判定する。この時、ホストOSがエミュレータに通知を行う割込み要因であれば、ホストOSで処理すべきであると判断し、ホストOSがエミュレータに通知を行わない割込み要因であれば、ゲストOSで処理すべきであると判断する。
【0021】
ホストOSで処理すべき割込み要因である場合は、割込みモニタはホストOSに制御を移す。ホストOSは割込み(例外)処理の実行507を呼び出して、割込みを終了する。
【0022】
ゲストOSで処理すべき割込み要因である場合は、割込みモニタはホストOSからエミュレータに割込み通知が行なわれる割込み要因とするため割込み要因の変更502を行う。
【0023】
さらに、得られた割込み要因を用いてソフト割込み503を実行する。ソフト割込み503が実行されると、ホストOSはエミュレータに割込み通知を行う。エミュレータは、割込み要因をゲストOSの割込み要因に変更504し、得られた割込み要因でゲストOSへ割込み通知505を行い、ゲストOSによる割込み処理506を呼び出して、割込みを終了する。
【0024】
【発明の効果】
本発明によれば、計算機の発生する割込みを一旦割込みモニタが受け取り、エミュレータに制御を渡すため、ホストOSの割込み処理(例外処理)を回避してゲストOSによる例外処理を実行できる。これにより、不正な命令や不正なメモリアドレス参照による割込みにより、ホストOSがエミュレータ自体の動作を停止させ、ユーザのアプリケーションプログラムが何の後処理も無く停止してしまうことを防止できる。
【図面の簡単な説明】
【図1】本発明の一実施例の割込み処理を示すフローチャート。
【図2】システムの割込み発生時の動作説明図。
【図3】システム起動時の割込みベクトル変更方法の説明図。
【図4】本発明の他の実施例の割込み処理を示すフローチャート。
【図5】本発明における割込み処理の流れを示すフローチャート。
【符号の説明】
200…割込み、201…割込み種別判定、202…割込み処理アドレス判定、203…割込み処理アドレスに分岐。

Claims (2)

  1. ホスト計算機上で稼動するホストOSと、仮想計算機環境を提供するエミュレータと、エミュレータ上で稼動するゲストOSと、仮想計算機の命令セットアーキテクチャ向けに開発されたアプリケーションプログラムからなり、特定の命令セットアーキテクチャを有する計算機上で異なる命令セットアーキテクチャ向けに開発されたプログラムを実行可能な仮想計算機環境を提供する計算機システムにおいて、ハードウェアとホストOSとの間に介在し、ホスト計算機から発生する割込み情報を受け取り、エミュレータに通知する割込みモニタを有することを特徴とする計算機システム。
  2. ホスト計算機上で稼動するホストOSと、仮想計算機環境を提供するエミュレータと、エミュレータ上で稼動するゲストOSと、仮想計算機の命令セットアーキテクチャ向けに開発されたアプリケーションプログラムとからなり、特定の命令セットアーキテクチャを有する計算機上で異なる命令セットアーキテクチャ向けに開発されたプログラムを実行可能な仮想計算機環境を提供する計算機システムにおいて、ハードウェアとホストOSとの間に介在し、ホスト計算機から発生する割込み情報を受け取り、割込み要因を変換してホストOSに通知する割込みモニタを有することを特徴とする計算機システム。
JP2002162280A 2002-06-04 2002-06-04 計算機システム Expired - Fee Related JP4140286B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002162280A JP4140286B2 (ja) 2002-06-04 2002-06-04 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002162280A JP4140286B2 (ja) 2002-06-04 2002-06-04 計算機システム

Publications (2)

Publication Number Publication Date
JP2004013240A true JP2004013240A (ja) 2004-01-15
JP4140286B2 JP4140286B2 (ja) 2008-08-27

Family

ID=30431060

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002162280A Expired - Fee Related JP4140286B2 (ja) 2002-06-04 2002-06-04 計算機システム

Country Status (1)

Country Link
JP (1) JP4140286B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009288864A (ja) * 2008-05-27 2009-12-10 Fujitsu Ltd 仮想マシンの入出力エミュレーション機構
JP2011529240A (ja) * 2008-07-28 2011-12-01 アーム・リミテッド 仮想処理装置のための割込み制御
WO2014118940A1 (ja) * 2013-01-31 2014-08-07 三菱電機株式会社 計算機装置及び計算機装置の制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009288864A (ja) * 2008-05-27 2009-12-10 Fujitsu Ltd 仮想マシンの入出力エミュレーション機構
JP2011529240A (ja) * 2008-07-28 2011-12-01 アーム・リミテッド 仮想処理装置のための割込み制御
WO2014118940A1 (ja) * 2013-01-31 2014-08-07 三菱電機株式会社 計算機装置及び計算機装置の制御方法
CN104956337A (zh) * 2013-01-31 2015-09-30 三菱电机株式会社 计算机装置和计算机装置的控制方法
JP5877533B2 (ja) * 2013-01-31 2016-03-08 三菱電機株式会社 計算機装置及び計算機装置の制御方法
US9959225B2 (en) 2013-01-31 2018-05-01 Mitsubishi Electric Corporation Computer apparatus and control method of computer apparatus

Also Published As

Publication number Publication date
JP4140286B2 (ja) 2008-08-27

Similar Documents

Publication Publication Date Title
KR100940335B1 (ko) 멀티프로세서에서 복수의 인스트럭션 스트림/복수의 데이터 스트림 확장을 인에이블링하는 방법, 시스템 및 기계-판독 가능한 매체
JP4954281B2 (ja) ネイティブコードに結合中に例外処理するための例外処理システム、例外処理方法、変換装置、および記憶媒体
JP2002268914A (ja) 特権命令の実行を監視する方法
US20210334125A1 (en) Method and Apparatus for Resuming Running of Application, and Computer
JP2015506525A (ja) セキュアドメインおよび低セキュアドメインを有するデータ処理装置の例外処理
US11360832B2 (en) Operation method of robot operating system and a robot control method
US10379931B2 (en) Computer system
US11734079B2 (en) Methods of hardware and software-coordinated opt-in to advanced features on hetero ISA platforms
US20020049897A1 (en) Method for adding processor
JP2005316599A (ja) 割込制御装置
TW201346570A (zh) 技術抽象層
JP4140286B2 (ja) 計算機システム
JP2009157808A (ja) データ処理装置及びデータ処理装置におけるバスアクセス制御方法
US9959225B2 (en) Computer apparatus and control method of computer apparatus
KR20140069936A (ko) 하이퍼바이저 컴퍼넌트를 업그레이드하는 방법 및 그 시스템
JP2008077388A (ja) マルチプロセッサ制御システム、方法、およびプログラム
WO2023188905A1 (ja) 情報処理装置、及び情報処理装置の動作制御方法
CN118036092A (zh) 一种基于硬件辅助虚拟化的软件完整性保护方法与系统
JPH02187830A (ja) 割り込み制御方式
JP2022055002A (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP2007213396A (ja) デバッグシステム、オペレーションシステム、デバッグ方法、プログラム
JPH04364545A (ja) メモリダンプ方法
JP2835896B2 (ja) テストプログラムの実行制御方式
JP2007249736A (ja) 言語処理実行方法およびその計算機システム
Bhave et al. and 10 Hardware Interrupts and Trap Routine

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050311

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080304

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080321

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: 20080520

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080602

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

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130620

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees