JPS61204743A - Interruption controlling system for microprocessor - Google Patents

Interruption controlling system for microprocessor

Info

Publication number
JPS61204743A
JPS61204743A JP4477485A JP4477485A JPS61204743A JP S61204743 A JPS61204743 A JP S61204743A JP 4477485 A JP4477485 A JP 4477485A JP 4477485 A JP4477485 A JP 4477485A JP S61204743 A JPS61204743 A JP S61204743A
Authority
JP
Japan
Prior art keywords
interrupt
value
signal line
register
signal
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
JP4477485A
Other languages
Japanese (ja)
Inventor
Toshio Hirozawa
広沢 敏夫
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 JP4477485A priority Critical patent/JPS61204743A/en
Priority to US06/809,182 priority patent/US4975836A/en
Priority to DE8585116263T priority patent/DE3582662D1/en
Priority to EP85116263A priority patent/EP0185378B1/en
Publication of JPS61204743A publication Critical patent/JPS61204743A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To reduce an overhead of a simulation processing of VMM which follows the generation of an external interruption, by always setting a value of a state for receiving the external interruption, to a field of an interruption mask code of a real state control register. CONSTITUTION:To an interruption control part 110, a value of a real interruption mask code, and a value of an interruption mask code (virtual interruption mask code) in a status control register corresponding to a running VM are inputted from a status register control part 100 through a signal line l 5 and a signal line l 6, respectively, and an external interruption number is inputted through a signal line l 61 from an external circuit. In case when an external interruption which has been generated, based on said input signal group is in a state that it can be received by a CPU, the interruption control part 110 sets this interruption number and an interrupting operation start signal to a signal line l 20 and a signal line l 21, respectively, and sends out a signal to an instruction execution control part 115.

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、入出力割込み発生など外部割込み発生時のマ
イクロ・プロセッサの割込み制御方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Application of the Invention] The present invention relates to an interrupt control method for a microprocessor when an external interrupt such as an input/output interrupt occurs.

〔発明の背景〕[Background of the invention]

近年、゛′仮仮想計算機上いう概念が考えられ、実用化
されつつある。仮想計算機システムとは第1図に示すよ
うに、1つの実計算機(ベース・マシン(B ase 
Machine)以下BMと称す、)501上で、見か
け上複数のオペレーティング・システム(○perat
ing S yst、ern ;以下OSと称す春)5
06.507を同時に走行させることを可能とするもの
である。したがって、従来の実計算機システムの環境に
おいては、0S506,507などが8M501のもと
で動作していた代りに、特殊な制御プログラム(バーチ
ャル・マシン・モニタ(Virtual Machin
e Mon1ter)以下VMMと称す、)502が動
作し、VMMが08506゜507に対して8M501
の提供するベース・マシン・インタフェース503と同
一のベース・マシン・インタフェース508を提供する
。VMM502がベース・マシン・インタフェース50
8を仮想的に作り出したマシンを仮想計算機(バーチャ
ル・マシン((Virtual Machine)以下
VMと称す。)という。なお、第1図においては仮想計
算機としてVM504.VM505と2つしか示してい
ないが、当然のことながら多数の仮想計算機を生成でき
る。
In recent years, the concept of ``virtual computer'' has been considered and is being put into practical use. As shown in Figure 1, a virtual computer system consists of one real computer (base machine).
Machine) (hereinafter referred to as BM) 501, there are apparently multiple operating systems (○perat
ing Syst, ern; hereinafter referred to as OS) 5
06.507 can be run at the same time. Therefore, in the environment of a conventional real computer system, instead of the 0S506, 507, etc. operating under the 8M501, a special control program (Virtual Machine Monitor)
eMonter) 502 (hereinafter referred to as VMM) is operating, and VMM is 8M501 for 08506°507.
provides a base machine interface 508 that is the same as the base machine interface 503 provided by . VMM 502 is the base machine interface 50
The machine that virtually created VM 8 is called a virtual machine (hereinafter referred to as VM). Note that although only two virtual machines, VM504 and VM505, are shown in Figure 1 as virtual machines, Naturally, a large number of virtual machines can be created.

各VM504,505のもとでは、従来BM501のも
とで動作していた○5506や08507が見かけ上回
時に動作する。また、QS506.507は、ユーザ・
プログラム(UserP rogram以下UPと称す
、)515〜518に対して拡張マシン・インタフェー
ス513,514を提供する。ここで、拡張マシン(E
 xtendedMachine以下EMと称す。)5
09〜512とは。
Under each of the VMs 504 and 505, ○5506 and 08507, which conventionally operated under the BM 501, operate at higher times than expected. In addition, QS506.507
Extended machine interfaces 513 and 514 are provided to programs (UserPrograms hereinafter referred to as UP) 515 to 518. Here, the expansion machine (E
xtendedMachine is hereinafter referred to as EM. )5
What is 09-512?

ユーザ・プログラムからのあるまとまった機能処理の要
求(通常、スーパバイザ・コール、ファンクション・コ
ールとも呼ばれる)に対する処理を。
Processing in response to a request for a certain set of functional processing from a user program (usually called a supervisor call or function call).

oSごとにそのO8内で実行する機能、およびベース・
マシン・インタフェース機能を有している。
The functions that each OS executes within its O8, and the base
It has a machine interface function.

したがって、08506と08507とが異なったもの
であれば、O8毎に実行されるEM509とEM511
は、当然互いに異なった機能である。
Therefore, if 08506 and 08507 are different, EM509 and EM511 are executed every O8.
are of course different functions.

以上が仮想計算機システム(V 1rtual M a
chin45S ystei+以下VMSと称す、)の
概念であって、これにより1つのBM上で複数個の異な
ったO8が見かけ上、同時に走行できることになる。し
たがって、次のような効果が期待できる。
The above is a virtual computer system (V 1rtual Ma
chin45Systei+hereinafter referred to as VMS), which allows a plurality of different O8s to apparently run simultaneously on one BM. Therefore, the following effects can be expected.

(1)  稼動しているシステムのサービスを停止する
ことなく、新しく開発されるシステムのデパックあるい
はテストを行なうことが出来る。
(1) It is possible to depack or test a newly developed system without stopping the services of the running system.

(2)1個のBMで、複数個の異なったO8が動作でき
るので、実ハードウェアのコスト低下が可能となり、か
つハードウェア資源の使用効率が向上する。
(2) Since one BM can operate a plurality of different O8s, it is possible to reduce the cost of actual hardware and improve the efficiency of using hardware resources.

(3)  アーキテクチャが若干具なる計算機システム
またはシステム構成が若干具なる計算機システムを仮想
的に作ることが出来、新しい装置の制御でログラムのテ
ストが実の装置が接続されていない状況で行なえる。
(3) A computer system with a slightly different architecture or a slightly different system configuration can be created virtually, and a program can be tested by controlling a new device even when the actual device is not connected.

ところで、第1図に示すVMSの概念を実現するために
特殊な制御プログラムVMM502が存在する。VMM
502はVM504.VM505などを効率良く動作さ
せるために、通常のマルチプログラミング技術を用いて
おり、8M501のハードウェア資源を時間的、および
空間的に分割して各VM504,505に割当てている
。また、VMM502が提供するベース・マシン・イン
タフェース508は、8M501が提供するベース・マ
シン・インタフェース503と機能的に同一であるため
、8M501で実行できるO3はVM504、VM50
5においても同じように実行できる。したがって、根本
的には、VMはそれが使用するBMに等価であり、機能
的に区別できるような差異は存在しない、VMM502
はO8やUPの夫々プログラムを各命令ごとに解釈実行
することはせず、大部分の時間内では、プログラムが8
M501において直接的に実行することを許可する。し
かし、VMM502はO8から発行されたハードウェア
資源を操作する命令(特権命令であって、動作モードが
特権モードのときに実行できる命令)を検知したとき、
VMS内のシステムの内容の全体的完全性を保証するた
めに、検知した命令を解釈実行して、その解釈・実行が
終了した後に制御を実行中のプログラムに戻す。
By the way, a special control program VMM 502 exists to realize the concept of VMS shown in FIG. VMM
502 is VM504. In order to operate the VM 505 and the like efficiently, a normal multiprogramming technique is used, and the hardware resources of the 8M 501 are divided temporally and spatially and allocated to each VM 504 and 505. Furthermore, the base machine interface 508 provided by the VMM502 is functionally the same as the base machine interface 503 provided by the 8M501, so the O3 that can be executed on the 8M501 is the VM504, VM50
5 can be executed in the same way. Fundamentally, therefore, a VM is equivalent to the BM it uses, with no discernible functional differences, VMM502
does not interpret and execute the O8 and UP programs for each instruction, and most of the time the program is
Allows direct execution in M501. However, when the VMM 502 detects an instruction (privileged instruction, which can be executed when the operating mode is privileged mode) that operates on hardware resources issued by the O8,
To ensure the overall integrity of the system contents within the VMS, the sensed instructions are interpreted and executed, and control is returned to the executing program after the interpretation and execution is complete.

この処理はBM501の資源を各VM間で共用している
ために必要なものであり、この処理時間がVMS特有の
オーバヘッドとなり、性能低下の要因となる。また、ハ
ードウェア資源の中で主メモリの共用制御に関しては、
仮想記憶制御方式の技術を用いて実現している6具体的
には、VMM502の作成する個々の仮想記憶域を各V
M504.505の主メモリとして割り当てる。したが
って、VM504の03506が再び仮想記憶方式を採
用したO8、あるいはVM504のもとで、再び他のV
MMを動作させるような場合には、2レベルのアドレス
変換を必要とし、これらがVMS特有のオーバヘッドと
なる。VMS特有のオーバヘッドは実のハードウェア資
源の共用に起因するものであり、以下のように分類でき
る。
This processing is necessary because the resources of the BM 501 are shared between the VMs, and this processing time becomes an overhead specific to VMS, which causes a decrease in performance. Regarding the shared control of main memory among hardware resources,
This is achieved using virtual memory control technology.6 Specifically, each virtual memory area created by the VMM 502 is
Allocated as main memory of M504.505. Therefore, if 03506 of VM504 becomes O8 which adopts the virtual memory method again, or if 03506 of VM504 again uses another VM
When MM is operated, two levels of address translation are required, which creates overhead unique to VMS. The overhead specific to VMS is caused by the sharing of actual hardware resources, and can be classified as follows.

(1)  特権命令のシミュレーション処理のオーバヘ
ッド。
(1) Overhead of privileged instruction simulation processing.

(2)各VMの切替えサービス処理(ディスパッチ処理
という)のオーバヘッド。
(2) Overhead of switching service processing (referred to as dispatch processing) for each VM.

(3)仮想記憶機能のサポートによる2レベルのアドレ
ス変換によるオーバヘッド。
(3) Overhead due to two-level address translation due to virtual memory support.

(4)割込みのシミュレーション処理のオーバヘッド・ VMSによる性能低下を押えるための特許の例として、
特開昭50−23146号公報、特開昭57−2126
80号公報、および特開昭55−53749号公報があ
る。特開昭50−23146号公報、特開昭57−21
2680号公報では2レベルのアドレス変換によるオー
バヘッドを低減させる方式を開示したものである。特開
昭50−23146号公報ではアドレス変換過程におい
て、VMSの各レベルにそれ自体のf−マツプを設ける
ことを意図しているものである。このf−マツプは1つ
のVMレベルを越えて動作する八−ドウエア仮想化機構
(Hardvare V 1rtualizer以下H
Vと称す。)を意図している。また、上記発明はベース
・マシンの複製物であるようなVMに制限されており、
ベース・マシンに対し帰納的関係を有するようなVMに
制限されている。
(4) As an example of a patent for suppressing interrupt simulation processing overhead/VMS-induced performance degradation,
JP-A-50-23146, JP-A-57-2126
No. 80, and Japanese Patent Application Laid-Open No. 55-53749. JP-A-50-23146, JP-A-57-21
Publication No. 2680 discloses a method for reducing the overhead caused by two-level address translation. JP-A-50-23146 intends to provide each level of the VMS with its own f-map in the address translation process. This f-map is an 8-doware virtualization mechanism (Hardvare Virtualizer or later) that operates beyond one VM level.
It is called V. ) is intended. Further, the above invention is limited to VMs that are replicas of the base machine;
It is restricted to VMs that have an inductive relationship to the base machine.

特開昭57−212680号公報の発明は、従来の2レ
ベルのアドレス変換に対して2つ以上のレベルを越えて
アドレス変換が行なえるようなシャドウ・テーブルを用
いた動的アドレス変換(Dynamie Addres
s Translation以下DATと称す。)方式
を採用していたVMSでの性能上の問題点を解決するた
めのものであり、シャドウ・テーブルを排除し、その代
りに変換索引緩衝機構(Translation Lo
ok−a 5ede Buffer以下TMBと称す。
The invention disclosed in Japanese Unexamined Patent Publication No. 57-212680 is a dynamic address conversion method using a shadow table that can perform address conversion beyond two or more levels, in contrast to the conventional two-level address conversion.
s Translation, hereinafter referred to as DAT. ) method, it eliminates the shadow table and replaces it with a translation index buffer mechanism (Translation Locator).
OK-A 5EDE Buffer is hereinafter referred to as TMB.

)内に第ルベルあるいは第2レベルでのアドレス変換対
であるかの印を持たせるようにして論理アドレスから主
メモリ内物理アドレスへの変換の高速化を図っている。
) is used to indicate whether the address is a second-level or second-level address conversion pair, thereby increasing the speed of conversion from a logical address to a physical address in the main memory.

しかし、特定のVMのみの性能向上を図ったものである
However, this is an attempt to improve the performance of only a specific VM.

上記発明はDAT、およびTLBを有する計算機システ
ム構成の適用に制限されている。
The above invention is limited to application to a computer system configuration having a DAT and a TLB.

特開昭55−53749号公報の発明は、ベース・マシ
ン内にVMのもとで動作するO8が使用する複数の演算
レジスタとVMMが使用する複数の演算レジスタを別個
に持たせることにより。
The invention disclosed in Japanese Unexamined Patent Publication No. 55-53749 provides a base machine with separate a plurality of operation registers used by O8 operating under VM and a plurality of operation registers used by VMM.

VMMがVMのもとで動作するO8から発行される特権
命令のシミュレーション処理を行なうときに演算レジス
タの退避/回路処理のオーバヘッドを削減しようとする
ものである。しかし、VM用に割当てられた演算レジス
タ群は1つの集まりのみであり、VM間で共用せざるを
得ない。したがって、VM間の走行サービスの切替え時
においては、VM用に割当てられた演算レジスタの入替
えが必要になる。
This is intended to reduce the overhead of saving arithmetic registers/circuit processing when the VMM performs simulation processing of privileged instructions issued from the O8 operating under the VM. However, the arithmetic register group allocated for VM is only one set, and must be shared between VMs. Therefore, when switching running services between VMs, it is necessary to replace the calculation registers allocated to the VMs.

ところで、仮想計算機システムの効用はメインフレーム
・プロセッサ(大型汎用計算機)の分野で認められつつ
あり、また実用化が試みられている。また、先願の発明
もメイン・フレーム・プロセッサを対象としたものであ
る。
Incidentally, the effectiveness of virtual computer systems is being recognized in the field of mainframe processors (large general-purpose computers), and attempts are being made to put them into practical use. Furthermore, the invention of the earlier application is also directed to main frame processors.

さて、最近の大規模集積回路技術の目覚しい発展により
、マイクロ・コンピュータ技術が大幅に飛躍した。マイ
クロ・コンピュータとその周辺回路を組み合せてパーソ
ナル・コンピュータ(P ersonalComput
er以下pcと称す、)として計算機システムが実現さ
れている。
Now, with recent remarkable developments in large-scale integrated circuit technology, microcomputer technology has made a significant leap forward. A personal computer is created by combining a microcomputer and its peripheral circuits.
A computer system is realized as er (hereinafter referred to as pc).

PCはその使用者が1名であることからもPCで動作す
るO8の規模は、大型電子計算機システムのO8に比べ
て大幅に小さく、また、O8の機能も単純である。具体
的には、PCのO8では。
Since the PC has only one user, the scale of the O8 that operates on the PC is significantly smaller than that of the large computer system O8, and the functions of the O8 are also simple. Specifically, on the O8 of the PC.

マルチ・プログラミング、マルチ・ジョブ機能を有して
いないことなどである。これはPCの目的はパーソナル
・ユースを主眼としているためである。
It does not have multi-programming or multi-job functions. This is because the purpose of PCs is primarily for personal use.

したがって、PCのO8は簡便に作り易く、そのO8の
機能に密接に依存した応用プログラムが多数開発されて
いる。ここで、ある特定のPCのO8のもとで動作する
応用プログラムの機能が非常に魅力的であった場合、そ
の応用プログラムを他のO8の環境下ででも使用したい
という要求が生じて来る。しかし、第1図に示したよう
な仮想計算機システム構成を採用せずに、08506な
どを直接BM501で動作させている場合には。
Therefore, the O8 of a PC is easy to create, and many application programs that closely depend on the functions of the O8 have been developed. Here, if the functionality of an application program that runs under the O8 of a particular PC is very attractive, a demand arises to use the application program under other O8 environments. However, if the 08506 or the like is operated directly on the BM 501 without adopting the virtual computer system configuration shown in FIG.

必要な応用プログラムを動作させるために、O8の入替
え作業が必要になる。あるいは、その魅力的な応用プロ
グラムを他のO8の環境下ででも動作するように、その
応用プログラムのO8依存部分を再プログラム化しなけ
ればならない。
In order to run the necessary application programs, it is necessary to replace the O8. Alternatively, the O8-dependent parts of the attractive application program must be reprogrammed so that it can operate under other O8 environments.

しかし、PCの使用者は応用プログラムの機能を直ちに
使用したい訳であり、O8の入れ替えや応用プログラム
の再プログラム化は行ないたくない。そこで、第1図に
示したような仮想計算機システムの利用方法が有効な解
決方法である。現状のマイクロ・プロセッサ利用による
PCでは仮想計算機システム実現上におけるVMMのオ
ーバヘッドを低減させるためのハードウェア制御回路的
なサポートはなされていない、このような代表的なマイ
クロ・プロセッサとしてはモトローラ社のマイクロ・プ
ロセッサ68000やインテル社の8086.8088
などがある。なお、68000のアーキテクチャについ
ては、下記論文に論じられている。
However, PC users want to use the functions of application programs immediately, and do not want to replace the O8 or reprogram the application programs. Therefore, the method of using a virtual computer system as shown in FIG. 1 is an effective solution. Current microprocessor-based PCs do not have hardware control circuit support to reduce the overhead of VMM when realizing a virtual computer system.A typical microprocessor of this type is Motorola's Microprocessor.・Processor 68000 or Intel's 8086.8088
and so on. Note that the architecture of the 68000 is discussed in the following paper.

“A Microprocessor Archite
cture for achanging World
 : the Motorola 6g000″Com
puter  vol、12  pp、43−51. 
 (1979−2)また、8086のアーキテクチャに
ついては。
“A Microprocessor Architecture
culture for changing world
: the Motorola 6g000″Com
puter vol, 12 pp, 43-51.
(1979-2) Also regarding the 8086 architecture.

インテル・ジャパン株式会社により、下記刊行物が発行
されている。
The following publications are published by Intel Japan Corporation.

” i A P X 86フアミリ・ユーザズマニュア
ル″インテルジャパン:資料番号205885Jマイク
ロ・コンピュータ利用によるPCの場合でのO8と応用
プログラムとは、先にも述べたように密接な関係を有し
ており、O8の規模もメイン・フレーム・プロセッサに
比べて小さい、したがって、魅力的な応用プログラムを
仮想計算機システムのもとで動作させる意議は非常に大
きい。
"i AP The scale of O8 is also smaller than that of a main frame processor, so there is a great deal of interest in running attractive application programs under a virtual computer system.

しかし、仮想計算機システムを実現する制御プログラム
VMMのオーバヘッドも無視出来ない訳である。
However, the overhead of the control program VMM that implements the virtual computer system cannot be ignored.

特に、PCのもとで走行しているO8は、大型汎用計算
機のもとで走行しているO8のように仮想記憶機能を有
しておらず、特開昭50−23146号公報、特開昭5
7−212680号公報で開示されているような2レベ
ル・アドレッシングの間層に対する解決策や、特開昭5
5−53749号公報で開示されているような特権命令
シミュレーション処理の高速化のために演算レジスタ群
をVMM用とVM用に別個に持たせる解決策のようなメ
イン・フレーム・プロセッサ分野での解決策の他にマイ
クロ・プロセッサにおける仮想計算機システムとして以
下の問題点が生じる。
In particular, the O8 that runs on a PC does not have a virtual memory function unlike the O8 that runs on a large general-purpose computer. Showa 5
A solution to the interlayer of two-level addressing as disclosed in Japanese Patent Publication No. 7-212680, and
Solutions in the field of main frame processors, such as the solution of having separate arithmetic register groups for VMM and VM in order to speed up privileged instruction simulation processing, as disclosed in Publication No. 5-53749. In addition to this, the following problems arise as a virtual computer system using a microprocessor.

(1)仮想記憶方式を用いて仮想計算機システムを実現
していることによるオーバヘッド。
(1) Overhead due to realizing a virtual computer system using a virtual memory method.

仮想記憶方式によるアドレッシング方法のために、DA
T動作のオーバヘッドやTLBの管理のオーバヘッドが
残る。
Because of the virtual memory addressing method, the DA
The overhead of T operation and TLB management remains.

(2)  各VMの切替えサービス処理(ディスパッチ
処理という)のオーバヘッド。
(2) Overhead of switching service processing (referred to as dispatch processing) for each VM.

(3)特権命令のシミュレーション処理のオーバヘッド
(3) Overhead of privileged instruction simulation processing.

PCを構成するマイクロ・コンピュータ内の状態レジス
タを操作するための特権命令シミュレーション処理がオ
ーバヘッドとなる。
Privileged instruction simulation processing for manipulating status registers in the microcomputer that constitutes the PC becomes overhead.

(4)割込みのシミュレーション処理のオーバへラド・ 割込みが発生したときに、−担VMMに報告され、VM
Mが該VMに再び報告するためのシミュレーシゴン処理
のオーバーヘッド。
(4) Overrun of interrupt simulation processing When an interrupt occurs, it is reported to the VMM responsible for the interrupt, and the VM
Simulation processing overhead for M to report back to the VM.

上記の問題点を解決しない限り、PCのもとで走行する
O8の機能に密接な関係を有した魅力的な応用プログラ
ムを走行させたくても、実計算機での動作に比べて性能
的に劣るという問題を残したままである。
Unless the above problems are solved, even if you want to run an attractive application program that is closely related to the functions of O8 that runs on a PC, the performance will be inferior to that on an actual computer. The problem remains.

上記の問題点の中で、(3)の特権命令のシミュレーシ
ョン処理と、(4)の割込みシミュレーション処理に関
して、マイクロ・プロセッサによる仮想計算機システム
を実現したときの問題点を、特に、状態レジスタを変更
するシミュレーション処理と、その後に発生する割込み
動作との関係から明らかにする。
Among the above problems, regarding (3) privileged instruction simulation processing and (4) interrupt simulation processing, we have focused on the problems when realizing a virtual computer system using a microprocessor, especially when changing the status register. This will be clarified from the relationship between the simulation processing that occurs and the interrupt operations that occur afterwards.

第2図は第1図に示したベース・7928M501内の
主メモリ(主記憶域)200とその主メモリ内に存在す
る制御ブロック類を示しており、さらに、第1図のバー
チャル・マシンBM504゜505群の仮想的な主メモ
リ201,202と実の主メモリ200間での対応関係
を示している。
FIG. 2 shows the main memory (main storage area) 200 in the base 7928M501 shown in FIG. 5 shows the correspondence between the virtual main memories 201 and 202 of the 505 group and the real main memory 200.

すなわち、仮想計算機システムのもとでは各VMの仮想
的な主メモリ201などは、実の主メモリ200内のあ
る領域に対応づけされている。
That is, under the virtual computer system, the virtual main memory 201 of each VM is associated with a certain area within the actual main memory 200.

一方、第1図のユーザ・プログラムUP505やオペレ
ーティング・システム08506などは、仮想の主メモ
リ201,202を実の主メモリとみなして動作する。
On the other hand, the user program UP505 and operating system 08506 in FIG. 1 operate by regarding the virtual main memories 201 and 202 as real main memories.

したがって、08506やUP505は仮想計算機シス
テムのもとで動作していることを、全く意識する必要が
ない。これを実現しているのが、仮想計算機モニタ(V
irtualM achine M onitor以降
VMMと称す、)502と呼ばれている特殊な制御プロ
グラムである。
Therefore, there is no need for the 08506 and the UP505 to be aware that they are operating under a virtual computer system. The virtual machine monitor (V
It is a special control program called 502 (hereinafter referred to as VMM).

仮想計算機モニタVMM502は各VMの走行管理を円
滑に行なうために制御ブロックVMLIST205,2
06などを各VMに対応して作成、管理される。VML
IST205には。
The virtual machine monitor VMM 502 uses control blocks VMLIST 205 and 2 to smoothly manage the running of each VM.
06 etc. are created and managed corresponding to each VM. VML
For IST205.

第2図に示したように当該VMの状態や状態レジスタ演
算レジスタ類の値が格納されている。該VMを実のプロ
セッサのもとで走行させるときに、VML I 5T2
05に格納されている状態レジスタや演算レジスタの値
を実のマイクロ・プロセッサに設定する。なお、VMI
DM207は現在走行サービス中のVM用の制御ブロッ
ク VML I Sr105をポイントするポインタである
As shown in FIG. 2, the status of the VM and the values of status register operation registers are stored. When running the VM under a real processor, VML I 5T2
The values of the status register and operation register stored in 05 are set in the actual microprocessor. In addition, VMI
DM207 is a pointer that points to the control block VML I Sr105 for the VM currently in running service.

以上がマイクロ・プロセッサにおける仮想計算機システ
ムの動作概要である。ここで、マイクロ・プロセッサに
よる仮想計算機システムを構成した場合には、従来から
知られているメイン・フレーム・プロセッサによる仮想
計算機システムを構成したときとは別の動作をなしてい
る。
The above is an overview of the operation of a virtual computer system in a microprocessor. Here, when a virtual computer system is configured using a microprocessor, the operation is different from when a virtual computer system is configured using a conventionally known main frame processor.

これは、マイクロ・プロセッサによる仮想計算機システ
ムでは、状態制御レジスタ(S tatusRegis
ter)とベクタ・テーブルによって割込み発生要因を
処理していることに起因する。すなわち、VMM502
はVM504など(7)VMをディスパッチするときに
は、マイクロ・プロセッサの状態制御レジスタの割込み
マスクの値を0にすることと、スーパバイザ・モードの
ビット値を0にして処理する。第3図はマイクロ・プロ
セッサにおける状態制御レジスタの一例を示したもので
あり、この状態レジスタの詳細は先に開示したコンピュ
ータ第12巻筒43−51頁の論文に述べられている。
In a virtual computer system using a microprocessor, this is a status control register (StatusRegis).
This is due to the fact that interrupt generation factors are processed by the vector table (ter) and the vector table. That is, VMM502
(7) When dispatching a VM, the interrupt mask value of the microprocessor's state control register is set to 0, and the supervisor mode bit value is set to 0. FIG. 3 shows an example of a state control register in a microprocessor, and the details of this state register are described in the previously disclosed article on Computer Vol. 12, pages 43-51.

第3図を参照するに、状態制御レジスタの中で割込みマ
スクINT215の値を0にするのは、仮想計算機シス
テムの環境下では、VMの走行中には外部割込みを常に
受は入れるためであり、スーパバイザ・モード・ビット
8216の値をOにするのも、VMFのO8から発行さ
れるセンシティブ命令をDMMが検知して、そのシミュ
レーション処理を行なうためである。ここで、センシテ
ィブ命令とは、マイクロ・プロセッサ内のハードウェア
状態、たとえば状態制御レジスタなどの値を変更する命
令などであり、特権命令とも呼ばれている。
Referring to FIG. 3, the reason why the value of the interrupt mask INT215 in the state control register is set to 0 is that in the virtual machine system environment, external interrupts are always accepted while the VM is running. The reason why the value of the supervisor mode bit 8216 is set to O is for the DMM to detect a sensitive instruction issued from O8 of the VMF and perform simulation processing thereof. Here, a sensitive instruction is an instruction that changes the hardware state within a microprocessor, for example, the value of a state control register, and is also called a privileged instruction.

第4図は上記で述べたVMFのO8から発行される状態
制御レジスタの値を変更するセンシティブ命令をVMM
がシミュレーション処理を行なうときの処理手順を示し
たものであり、第5図は第4図のディスパッチ処理22
2の詳細を示している。第4図において、VMFのO8
が状態レジスタの内容を変更する命令を発行した場合(
処理220)には、処理221で示したように、VM毎
の制御ブロックVML I ST205内のレジスタ領
域213にその値を反映させ、実の状態制御レジスタの
値には反映させていない。また、第5図に示したディス
パッチ処理の処理225において、状態制御レジスタの
割込みマスクINT225の値を0にして、すべての外
部割込みを常に受けつけるようにする。
Figure 4 shows the VMM sensitive instruction that changes the value of the status control register issued from O8 of the VMF mentioned above.
shows the processing procedure when performing simulation processing, and FIG. 5 shows the dispatch processing 22 in FIG.
2 details are shown. In Figure 4, O8 of VMF
issues an instruction that changes the contents of the status register (
In process 220), as shown in process 221, the value is reflected in the register area 213 in the control block VML_IST205 for each VM, but is not reflected in the value of the actual state control register. Further, in the dispatch processing process 225 shown in FIG. 5, the value of the interrupt mask INT225 of the state control register is set to 0 so that all external interrupts are always accepted.

以上の処理のために、VMMの処理プログラムが500
〜600ステップ走行することになり、この走行時間が
VMMのオーバヘッドとなる。
For the above processing, the VMM processing program requires 500
It will run for ~600 steps, and this running time will become the overhead of VMM.

次に、外部割込みが発生したときの処理手順についてV
MMのオーバヘッドを明らかにする。第6図は外部割込
みが発生したときのVMM502の処理フローである。
Next, V
Clarify the overhead of MM. FIG. 6 shows the processing flow of the VMM 502 when an external interrupt occurs.

マイクロ・プロセッサ・ベースによる仮想計算機システ
ムにおいては、割込み条件が成立すると第2図の主メモ
リ200内の実のベクタ・テーブル210に登録されて
いる処  1理プログラムに制御が移る。第6図のフロ
ー図で示したVMMの処理プログラムがその割込み処理
プログラムの中の1つである。なお、割込み処理の手順
、ならびにベクタ・テーブルの詳細に関しては、先に開
示したコンピュータ第12巻第43〜51頁の論文に述
べられている。
In a microprocessor-based virtual computer system, when an interrupt condition is met, control is transferred to a processing program registered in the actual vector table 210 in the main memory 200 in FIG. The VMM processing program shown in the flowchart of FIG. 6 is one of the interrupt processing programs. The details of the interrupt processing procedure and the vector table are described in the previously disclosed article in Computer Vol. 12, pages 43-51.

第6図を参照するに、VMM502の外部割込み処理プ
ログラムでは、判定処理226で緊急割込みであるか否
かを判定後、処理227で当該割込みに対応するVMの
制御ブロックVML I 5T205をロケートする。
Referring to FIG. 6, in the external interrupt processing program of the VMM 502, after determining whether or not it is an emergency interrupt in determination processing 226, in processing 227, the control block VML I 5T 205 of the VM corresponding to the interrupt is located.

判定処理228では、DMLI 5T205内のレジス
タ領域213より、該VMの状態制御レジスタの割込み
マスク情報を調べる。レジスタ領域213内の状態制御
レジスタの写しの形式は第3図に示した形式と同じであ
る。
In the determination process 228, the interrupt mask information of the state control register of the VM is checked from the register area 213 in the DMLI 5T 205. The format of the state control register copy in register area 213 is the same as that shown in FIG.

判定の結果、該VMで割込み可能であるならば処理23
0を実行し、該VMへの割込み反映処理となる。一方、
割込み禁止であれば処理229を実行し、割込み保留(
P ending)状態とする。割込み保留状態は、第
2図の割込みリスト214を作成することで表示する。
As a result of the determination, if the VM is interruptible, process 23
0 is executed to reflect the interrupt to the VM. on the other hand,
If interrupts are disabled, execute process 229 and suspend interrupts (
Pending) state. The interrupt pending state is displayed by creating the interrupt list 214 in FIG. 2.

なお、割込みリスト214には割込み順位番号、装置番
号1割込みを起した外部装置の状態などが格納される。
Note that the interrupt list 214 stores the interrupt priority number, the state of the external device that caused the device number 1 interrupt, and the like.

以上の処理が、外部割込み発生時にVMMの処理プログ
ラムによって実行され、これらがVMMのオーバヘッド
となる。
The above processing is executed by the VMM processing program when an external interrupt occurs, and becomes overhead of the VMM.

〔発明の目的〕[Purpose of the invention]

本発明の目的は、マイクロ・プロセッサで構成されたパ
ーソナル・コンピュータによる仮想計算機システムを実
現したときに、上述で述べたVMMのシミュレーション
処理によるオーバヘッドの中で、第6図で示した外部割
込み発生にともなうVMM(7)シミュレーション処理
のオーバヘッドを低減させる制御手段を提供することに
ある。
An object of the present invention is to realize a virtual computer system using a personal computer configured with a microprocessor, and to avoid the occurrence of an external interrupt as shown in FIG. An object of the present invention is to provide a control means for reducing the overhead of accompanying VMM(7) simulation processing.

〔発明の概要〕[Summary of the invention]

上記目的を達成するために1本発明のマイクロ・プロセ
ッサ・ベースの割込み制御方式は、複数の状態制御レジ
スタを具備し、各々の状態制御レジスタは個々のVMに
対応させている。さらに、実の状態制御レジスタを具備
しており、VMの走行時には該VM対応の状態制御レジ
スタの中で割込みマスク・コード以外のフィールドを実
の状態制御レジスタに移して動作する。実の状態制御レ
ジスタの割込みマスク・コードのフィールドには、常に
外部割込みを受付ける状態の値を設定する手段を具備し
ていることに特徴がある。
To achieve the above object, the microprocessor-based interrupt control method of the present invention is provided with a plurality of state control registers, each state control register corresponding to an individual VM. Furthermore, it is provided with an actual state control register, and operates by moving fields other than the interrupt mask code in the state control register corresponding to the VM to the actual state control register when the VM is running. The interrupt mask code field of the actual state control register is characterized in that it includes means for setting a state value that always accepts external interrupts.

したがって、仮想計算機システムの動作状態においては
、すべての優先順位レベルの外部割込み要因は、実の状
態制御レジスタの割込みマスク・コードの値によって全
て受は付けられることになるが1本発明のマイクロ・プ
ロセッサ・ベースの割込み制御方式によれば、該当する
VMの状態制御レジスタに設定されている該VMの割込
みマスク・コードの値と発生した外部割込み番号値とを
比較し1割込み動作可能ならばマイクロ・プロセッサ内
の命令実行制御部に対して割込み番号、および割込み動
作起動信号を送出する手段を、ならびに前記比較手段の
結果、割込み動作抑止条件が成立していたならば、マイ
クロ・プロセッサ内の命令実行制御部に対して割込み保
留信号を送出する手段を具備していることに特徴がある
Therefore, in the operating state of the virtual machine system, external interrupt sources of all priority levels are accepted depending on the value of the interrupt mask code in the actual state control register. According to the processor-based interrupt control method, the value of the interrupt mask code of the corresponding VM set in the state control register of the corresponding VM is compared with the generated external interrupt number value, and if one interrupt operation is possible, the micro - A means for sending an interrupt number and an interrupt operation start signal to an instruction execution control unit in the processor, and if the result of the comparison means is that the interrupt operation suppression condition is satisfied, the instruction in the microprocessor is A feature of the present invention is that it includes means for sending an interrupt pending signal to the execution control section.

これによって、VMMのシミュレーション処理によるオ
ーバヘッドの中で、第6図で示した外部割込みの発生に
ともなうVMMのシミュレーション処理のオーバヘッド
が低減できる。
As a result, among the overheads caused by the VMM simulation processing, the overhead of the VMM simulation processing due to the occurrence of the external interrupt shown in FIG. 6 can be reduced.

〔発明の実施例〕[Embodiments of the invention]

以下、本発明の詳細を一実施例を用いて説明する。 The details of the present invention will be explained below using an example.

第7図は本発明が適用されたマイクロ・プロセッサCP
Uの構成を示している。図中の符号110は本発明の仮
想計算機システムマイクロ・プロセッサ・ベースの割込
み制御方式が適用されている割込み制御部である。符号
100は状態レジスタ制御部であり、複数個の状態制御
レジスタを具備し、それらがVMの識別子によって選択
される手段を具備している。
FIG. 7 shows a microprocessor CP to which the present invention is applied.
It shows the configuration of U. Reference numeral 110 in the figure is an interrupt control unit to which the virtual computer system microprocessor-based interrupt control method of the present invention is applied. Reference numeral 100 denotes a state register control unit, which includes a plurality of state control registers and means for selecting them based on the VM identifier.

本発明の割込み制御部110へは、状態レジスタ制御部
100より、信号線Ω5を介して実の割込みマスク・コ
ードの値と、信号線Q6を介して走行中のVMに対応す
る状態制御レジスタ内の割込みマスク・コードの値(こ
れを仮想の割込みマスク・コードという、)、および外
部回路からは信号線群f161を介して外部割込み番号
が入力される。
The interrupt control unit 110 of the present invention receives the actual interrupt mask code value via the signal line Ω5 from the status register control unit 100, and the status control register corresponding to the running VM via the signal line Q6. The value of the interrupt mask code (this is referred to as a virtual interrupt mask code) and the external interrupt number are input from the external circuit via the signal line group f161.

割込み制御部110は、上記の入力信号群をもとにして
、該発生した外部割込みがマイクロ・プロセッサCPU
で受付けられる状態であれば、信号線Q20には該割込
み番号を、信号線fi21には割込み動作起動信号をそ
れぞれ設定し、命令実行制御部115へ該信号を送出す
る。
The interrupt control unit 110 determines whether the generated external interrupt is executed by the microprocessor CPU based on the above input signal group.
If the interrupt number can be accepted, the interrupt number is set on the signal line Q20, the interrupt operation start signal is set on the signal line fi21, and the signals are sent to the instruction execution control unit 115.

では、まず本発明の仮想計算機システムマイクロ・プロ
セッサ・ベースの割込み制御方式を実現する割込み制御
部110の構成と動作を第8図を用いて詳細に説明する
6次に、再び第7図、および第9図以降の図を用いて、
マイクロ・プロセッサCPUの動作ならびにマイクロ・
プロセッサCPUを用いた計算機システムの構成と動作
を説明する。
First, the configuration and operation of the interrupt control unit 110 that implements the virtual computer system microprocessor-based interrupt control method of the present invention will be explained in detail using FIG. Using the figures from Figure 9 onwards,
Microprocessor CPU operation and microprocessor
The configuration and operation of a computer system using a processor CPU will be explained.

第8図は本発明のマイクロ・プロセッサ・ベースの割込
み制御方式の構成を示したものであり、第7図の割込み
制御部110をより詳細に示した図である0図中の符号
21はセレクタ(S E L)、22.23は比較器で
ある。符号24は最高優先順位値発生回路であり、本実
施例では7の値を発生する。符号25はアンド回路、2
6はオア回路。
FIG. 8 shows the configuration of the microprocessor-based interrupt control system of the present invention, and shows the interrupt control section 110 of FIG. 7 in more detail. (SEL), 22.23 is a comparator. Reference numeral 24 is a highest priority value generation circuit, which generates a value of 7 in this embodiment. Reference numeral 25 is an AND circuit, 2
6 is an OR circuit.

27はゲート回路である。27 is a gate circuit.

第7図の状態レジスタ制御部100からは、信号線I2
5を介して実の状態制御レジスタ内の割込みマスク・コ
ード(INT)の値、信号線Q6を介して、先に述べた
仮想の状態制御レジスタ内の割込みマスク・コード(V
INT)の値、および信号線fi41を介して現在のマ
イクロ・プロセッサの動作状態を示す情報が割込み制御
部110に送出されている。ここで、マイクロ・プロセ
ッサの動作状態情報とは、実計算機の動作状態であるか
、仮想計算機の動作状態であるかを区別するものであり
、Vビットともいう、すなわち、Vビットの値が′0′
 (信号線Ω41の値が′0′)ならば実計算機の動作
状態を示し、値が′1′ならば仮想計算機の動作状態を
示している。
From the status register control unit 100 in FIG.
5, the value of the interrupt mask code (INT) in the real state control register, and the value of the interrupt mask code (V
INT) and information indicating the current operating state of the microprocessor are sent to the interrupt control unit 110 via the signal line fi41. Here, the operating state information of the microprocessor is information that distinguishes between the operating state of the real computer and the operating state of the virtual computer, and is also called the V bit, that is, the value of the V bit is '0'
(If the value of the signal line Ω41 is '0', it indicates the operating state of the real computer, and if the value is '1', it indicates the operating state of the virtual computer.

セレクタ21ではVビットの値が′0′であるならば信
号線a5の値、すなわちINTの値を選択し、比較器2
2の一方の入力とする。一方、Vビットの値が′1′で
あるならば信号線a6の値、すなわちVINTの値を選
択し、比較器22の一方の入力とする。
If the value of the V bit is '0', the selector 21 selects the value of the signal line a5, that is, the value of INT, and the comparator 2
This is one of the two inputs. On the other hand, if the value of the V bit is '1', the value of the signal line a6, that is, the value of VINT, is selected and used as one input of the comparator 22.

比較器22の他方には1割込み要因発生時の割込み信号
の値が信号線Q61を介して入力される。
The value of the interrupt signal when one interrupt factor occurs is input to the other side of the comparator 22 via the signal line Q61.

なお、信号線fi61の値は比較器23.ゲート回路2
7にも送出されている。
Note that the value of the signal line fi61 is determined by the comparator 23. Gate circuit 2
It was also sent out on 7th.

比較器22では割込み要因発生時の割込み番号と割込み
マスク・コードの値とを比較する。比較の結果、割込み
要因発生時の割込み信号の値が割込みマスク・コードの
値以下であるならば、信号線Ω25の値を ′1′とし
、アンド回路25の一方の入力となる。一方、割込み番
号の値が割込みマスク・コードの値よりも大きいならば
、割込み動作起動条件が成立したことになり、信号線Q
26の値を ′1′  とし、その値がオア回路26を
経て信号線Q21を介して第7図の命令実行制御部11
5へ割込み動作起動の旨を報告する。このとき1割込み
番号はゲート回路27に入力されており、信号線Q21
の値が′1′となることによって、ゲート回路27が開
く。その結果、割込み番号が信号線f120を介して命
令実行制御部115へ送出される。
The comparator 22 compares the interrupt number and the value of the interrupt mask code when the interrupt factor occurs. As a result of the comparison, if the value of the interrupt signal when the interrupt factor occurs is less than the value of the interrupt mask code, the value of the signal line Ω25 is set to '1' and becomes one input of the AND circuit 25. On the other hand, if the value of the interrupt number is greater than the value of the interrupt mask code, it means that the interrupt operation activation condition has been met, and the signal line Q
26 is set to '1', and the value is passed through the OR circuit 26 and the signal line Q21 to the instruction execution control unit 11 in FIG.
5 to report that the interrupt operation has started. At this time, the 1 interrupt number is input to the gate circuit 27, and the signal line Q21
When the value becomes '1', the gate circuit 27 is opened. As a result, the interrupt number is sent to the instruction execution control unit 115 via the signal line f120.

また、比較器22の動作と並行して比較器23の動作も
行なわれる。比較器23では信号線Q61を介して送出
されて来た割込み要因発生時の割込み番号が最優先割込
みであるか否かを検査する。ここで、最優先割込みとは
状態制御レジスタ内の割込みマスク・コードの値に関係
なく割込みが発生するものであり1本実施例においては
、信号線群Q61が3本の線でなっているため割込み番
号の値が7のときに最優先割込みとなる。したがって、
最高優先順位値発生回路24では7の値を生成する。な
お、この値は変更可能である。
Furthermore, the comparator 23 operates in parallel with the operation of the comparator 22. The comparator 23 checks whether the interrupt number sent via the signal line Q61 at the time of occurrence of the interrupt factor is the highest priority interrupt. Here, the highest priority interrupt is one that occurs regardless of the value of the interrupt mask code in the status control register, and in this embodiment, the signal line group Q61 consists of three lines. When the value of the interrupt number is 7, it becomes the highest priority interrupt. therefore,
The highest priority value generation circuit 24 generates a value of 7. Note that this value can be changed.

比較器23で比較の結果1割込み番号の値が最高優先順
位値の値と一致しないときには信号線Q27の値が′1
′ となり、アンド回路25の一方の入力となる。アン
ド回路25の他方には先に述べた比較器22の結果の信
号が入力されており、割込み番号が割込みマスク・コー
ドの値以下のときに11′ となっている。したがって
、アンド回路25の出力信号は割込み保留信号となり、
信号線Q22を介して命令実行制御部115へ報告する
As a result of the comparison in comparator 23, if the value of interrupt number 1 does not match the value of the highest priority value, the value of signal line Q27 becomes '1'.
' and becomes one input of the AND circuit 25. The signal resulting from the comparator 22 described above is input to the other side of the AND circuit 25, and is 11' when the interrupt number is less than or equal to the value of the interrupt mask code. Therefore, the output signal of the AND circuit 25 becomes an interrupt pending signal,
It is reported to the instruction execution control unit 115 via the signal line Q22.

比較器23の比較の結果、割込み番号が最高優先順位値
と一致した場合には強制的に割込み動作起動となる。こ
れは信号線Q2Bを介してオア回路26を経た後、信号
線Q21を介して命令実行制御部115に報告する。な
お、当然のことながら割込み番号も、先に述べた場合と
同様に信号線Q20を介して送出される。
As a result of the comparison by the comparator 23, if the interrupt number matches the highest priority value, the interrupt operation is forcibly activated. After passing through the OR circuit 26 via the signal line Q2B, this is reported to the instruction execution control unit 115 via the signal line Q21. Note that, as a matter of course, the interrupt number is also sent out via the signal line Q20 as in the case described above.

以上によって、外部割込み発生時には該走行中のVMの
状態制御レジスタの割込みマスク・コードの値を自動的
に比較検査する手段により。
As described above, when an external interrupt occurs, the means automatically compares and inspects the value of the interrupt mask code of the state control register of the running VM.

VMMが介入する必要がなくなり、VMMの走行オーバ
ヘッドを低減できる。
There is no need for the VMM to intervene, and the running overhead of the VMM can be reduced.

では、第7図、および第9図以降の図を用いてマイクロ
・プロセッサCPUの動作ならびにマイクロ・プロセッ
サCPUを用いた計算機システムの構成と動作を説明す
る。
Now, the operation of the microprocessor CPU and the configuration and operation of a computer system using the microprocessor CPU will be explained using FIG. 7 and FIG. 9 and subsequent figures.

再び第7図を参照するに、符号51は命令レジスタIR
,52は命令のデコード処理部、53は命令制御部、5
4は命令の処理を行なうマイクロ・プログラムが格納さ
れているローカル・ストレッジである。符号55は複数
のアドレス・レジスタ・ファイルであり、1つの面のレ
ジスタ群が1つのVMに対応する。符号56は複数のデ
ータ・レジスタ・ファイルであり、符号55のときと同
様に、1つの面のレジスタ群が1つのVMに対応する。
Referring again to FIG. 7, reference numeral 51 indicates an instruction register IR.
, 52 is an instruction decoding processing unit, 53 is an instruction control unit, 5
4 is a local storage in which a microprogram for processing instructions is stored. Reference numeral 55 indicates a plurality of address register files, and a group of registers on one plane corresponds to one VM. Reference numeral 56 indicates a plurality of data register files, and as in the case of reference numeral 55, a group of registers on one plane corresponds to one VM.

符号57はアドレス・レジスタ・ファイル55、データ
・レジスタ・ファイル56に対して、VMID105の
値によって該VMに対応する1つの面を選択する制御回
路、58はプログラムの各命令で指定されるレジスタ番
号に対応してレジスタ・ファイル55.56から選択さ
れた1つの面内でのレジスタ番号に対応するエントリを
選択する制御回路である。符号59は命令アドレス・レ
ジスタ (I n5truction Address
 Register :IAR)であり1.m(7)I
AR59はVM対応に存在している。なお、IAR59
をプログラム・カウンタ(Program Count
、er)という場合もある。
Reference numeral 57 is a control circuit that selects one plane corresponding to the VM according to the value of VMID 105 for the address register file 55 and data register file 56, and 58 is a register number specified by each instruction of the program. This is a control circuit that selects an entry corresponding to a register number in one plane selected from register files 55 and 56 in response to. Reference numeral 59 is an instruction address register.
Register: IAR) and 1. m(7)I
AR59 exists for VM. In addition, IAR59
Program Count
, er).

符号60は一時的保持しジスタT −Reg、 61は
演算器ALU、62はシフト演算器、63はマルチプレ
クサMPX、64はセレクタ、65はデータ保持レジス
タDR,66はアドレス値保持レジスタADR,67は
制御信号処理回路である。
60 is a temporary holding register T-Reg, 61 is an arithmetic unit ALU, 62 is a shift arithmetic unit, 63 is a multiplexer MPX, 64 is a selector, 65 is a data holding register DR, 66 is an address value holding register ADR, and 67 is an address value holding register ADR. This is a control signal processing circuit.

信号線Q51は32ビット幅の内部データ・バスである
。信号線Q52には、マイクロ・プロセッサCPUの状
態、たとえばVMモードであるか否かの区別、スーパバ
イザ・モードであるかユーザ・モードであるかの区別、
さらに、VMID105の値などが出力される。なお、
状態レジスタ制御部[°00内の状態制御レジスタの値
の一部が信号線Q53を介して、マイクロ・プロセッサ
CPUより出力される。ここで、第7図の信号線群の中
で、2重矢印で示した信号線群は、マイクロ・プロセッ
サCPUからの主な入出力信号線群を意味している。
Signal line Q51 is a 32-bit wide internal data bus. The signal line Q52 indicates the state of the microprocessor CPU, for example, whether it is in VM mode or not, whether it is in supervisor mode or user mode,
Furthermore, the value of VMID 105 and the like are output. In addition,
A part of the value of the state control register in the state register control section [°00 is outputted from the microprocessor CPU via the signal line Q53. Here, among the signal line groups in FIG. 7, the signal line group indicated by double arrows means the main input/output signal line group from the microprocessor CPU.

信号線Q54はマイクロ・プロセッサCPUから送出さ
れる24ビツト幅のアドレス・バス、信号線Q55はメ
モリ装置や入出力装置との間で、データをやりとりする
ための16ビツト幅、あるいは32ビツト幅のデータバ
スであ・る。信号線Q56〜Q59はマイクロ・プロセ
ッサCP Uからパーソナル・コンピュータ・システム
を構成する各装置へ送出する制御信号、信号線R60は
各装置からの応答信号、信号線861は各装置からマイ
クロ・プロセッサCPUに対して外部割込みを励起する
ときの割込み信号を伝える信号線である。
Signal line Q54 is a 24-bit wide address bus sent from the microprocessor CPU, and signal line Q55 is a 16-bit wide or 32-bit wide address bus for exchanging data with memory devices and input/output devices. It is a data bus. Signal lines Q56 to Q59 are control signals sent from the microprocessor CPU to each device making up the personal computer system, signal line R60 is a response signal from each device, and signal line 861 is a signal sent from each device to the microprocessor CPU. This is a signal line that transmits an interrupt signal when exciting an external interrupt.

では、第7図を用いて主メモリ内に存在している命令列
が順次に実行されるときの各部の動作概要を説明し、そ
の後、本発明の状態レジスタ制御部100、および割込
み制御部110の動作を第9図、第10図を用いて、よ
り詳細に説明する。
Next, using FIG. 7, we will explain the outline of the operation of each unit when the instruction sequence existing in the main memory is executed sequentially, and then explain the operation of the status register control unit 100 and interrupt control unit 110 of the present invention. The operation will be explained in more detail using FIGS. 9 and 10.

命令制御部53はプログラム・カウンタIAR59の中
から回路57によって選択されたIARの示す値をもと
にして、その値を次に実行する命令のメモリ・アドレス
とみなしてメモリより命令列を読み込むことを試みる。
The instruction control unit 53 reads an instruction string from the memory based on the value indicated by the IAR selected by the circuit 57 from the program counter IAR 59 and regards that value as the memory address of the next instruction to be executed. try.

IAR59の中から選択されたIARの値はMPX63
を経てADR66に保持され、アドレス・バス1115
4上に送出される。このとき、信号線Q56.Q57を
介して補助用の制御信号をも送出する。たとえばデータ
・バスQ55のビット幅が16ビノI−の場合には、信
号線ff56の信号が1′ で16ビツ1〜中の下位8
ピツ1〜を意味し、信号線Ω57の信号が111 で1
6ビツト中の上位8ビツトを意味するなどである。なお
、命令の読み出しの場合には、信号線Q56.Q57の
値が11. となっており、16ビツトのデータを要求
する。これらの指令は命令制御部53より信号線群Q6
2を介して命令実行制御部115を経て、さらに信号線
群Q63を介して制御信号処理回路67に伝えられ、回
路67が制御信号線Q56〜Q59の信号を作り出す。
The IAR value selected from IAR59 is MPX63
is held in the ADR66 via the address bus 1115.
4 is sent on. At this time, signal line Q56. It also sends out an auxiliary control signal via Q57. For example, when the bit width of data bus Q55 is 16 bits I-, the signal on signal line ff56 is 1', which means 16 bits 1 to the lower 8 bits.
It means 1~, the signal of signal line Ω57 is 111 and 1
For example, it means the upper 8 bits out of 6 bits. Note that in the case of reading an instruction, the signal line Q56. The value of Q57 is 11. , and requests 16-bit data. These commands are sent from the command control unit 53 to the signal line group Q6.
2 to the instruction execution control unit 115, and is further transmitted to the control signal processing circuit 67 via the signal line group Q63, and the circuit 67 generates signals on the control signal lines Q56 to Q59.

今、メモリからデータを読み出す処理であるために、信
号線Q58のR/W信号の値は1′ となっている。次
に、信号線Q59の信号をある一定期間の間論理′1′
に保つ。ここで、後述の主メモリ制御装置(Memor
y Control Unit、:MCU)は信号線Q
52.Q53、および256〜Q59の信号の値により
、主メモリ内より所望の命令データを取り出して、その
データをデータ・バスQ55に送出する。なお、データ
・バスQ55は双方向バス構造である。
Since this is the process of reading data from the memory, the value of the R/W signal on the signal line Q58 is 1'. Next, the signal on the signal line Q59 is set to logic '1' for a certain period of time.
Keep it. Here, the main memory control device (Memor
y Control Unit, :MCU) is the signal line Q
52. Depending on the values of signals Q53 and 256-Q59, desired instruction data is retrieved from the main memory and sent to data bus Q55. Note that the data bus Q55 has a bidirectional bus structure.

次に、主メモリ制御装置MCU (MCUとの接続関係
は後述する。)は信号9060の信号を11、 とする
。この信号は信号線f159の要求信号に対する応答信
号である。マイクロ・プロセッサCPUは信号線Q60
の信号が1′になると、データ・バスQ55のデータを
DR65に保持した後、DR65の命令データをMPX
63、内部データ・バスQ51を介して命令レジスタI
R5Iに保持する。
Next, the main memory control unit MCU (the connection relationship with the MCU will be described later) sets the signal 9060 to 11. This signal is a response signal to the request signal on signal line f159. Microprocessor CPU is signal line Q60
When the signal becomes 1', the data on data bus Q55 is held in DR65, and then the instruction data on DR65 is transferred to MPX.
63, instruction register I via internal data bus Q51
Hold in R5I.

IR5]に保持された命令データは、命令デコード処理
部52で解読される。命令データ(図示せず)は命令フ
ィールド、レジスタ・フィールド。
The instruction data held in the IR5] is decoded by the instruction decode processing section 52. Instruction data (not shown) is an instruction field and a register field.

オペランド・フィールドで成っており、命令フィールド
を調べて命令の種別を判別し、命令制御部53へ命令の
処理に必要な情報を信号線Q64を介して送出する。な
お、命令データの形式の例としては先に開示したE d
ward S シritt、erらの論文に述べられて
いる。
It consists of an operand field, examines the instruction field to determine the type of instruction, and sends information necessary for processing the instruction to the instruction control unit 53 via the signal line Q64. Note that an example of the command data format is the previously disclosed E d
It is described in the paper by Ward S. Schritt, er et al.

命令制御部53は、実効メモリ・アドレスの計算やそれ
に必要な命令データの準備のために、信号線Q65を介
して処理部52へ連絡し、演算に必要なマイクロ・プロ
グラムをローカル・ストレッジ54から準備する。また
、IAR59の修正も行なう。
The instruction control unit 53 communicates with the processing unit 52 via the signal line Q65 in order to calculate the effective memory address and prepare the instruction data necessary for it, and downloads the microprogram necessary for the operation from the local storage 54. prepare. Also, IAR59 will be corrected.

次に、命令実行制御部115によって演算制御がなされ
る。たとえば、加算演算の場合には、VMID105の
内容にもとづいて回路57のデコード結果でアドレス・
レジスタ・ファイル55、あるいはデータ・レジスタ・
ファイル56の中の1つの面が選択され、レジスタ・フ
ァイル制御58によってアドレス・レジスタ、データ・
レジスタのどちらかを選択し、かつ選択されたレジスタ
群の中で命令で指定されたレジスタ番号に対応するJつ
のレジスタの値を取り出して、T−Reg60、セレク
タ64を経た後、ALU61の一方の入力となる。一方
、メモリ・アドレスのデータは、先に述べた命令データ
の読込み時と同様にADR66にメモリ・アドレス値を
設定し、MCUに要求を発行した後、DR65,MPX
63を経てALU61の一方の入力となる。次に、AL
U61によって演算がなされ、演算結果は、結果をレジ
スタに格納するときには、再びアドレス・レジスタ・フ
ァイル55、あるいはデータ・レジスタ・ファイル56
のどちらかに格納する。
Next, the instruction execution control unit 115 performs calculation control. For example, in the case of an addition operation, the address is
Register file 55 or data register
One plane in file 56 is selected and register file control 58 selects the address register, data
Select one of the registers, take out the values of the J registers corresponding to the register number specified by the instruction among the selected register group, pass through the T-Reg 60 and the selector 64, and then retrieve the values from one of the ALUs 61. It becomes input. On the other hand, the memory address data is obtained by setting the memory address value in the ADR66 and issuing a request to the MCU in the same way as when reading the instruction data mentioned above.
63 and becomes one input of the ALU 61. Next, A.L.
An operation is performed by U61, and the operation result is stored in the address register file 55 or data register file 56 again.
Store it in either.

以上が一般の命令の処理順序である。これらの命令は一
般に非特権命令とも呼ばれている。これに対して、CP
Uの状態を変更するセンシチイブ命令、たとえば状態制
御レジスタの内容を変更する命令に関しては本発明の状
jrlAレジスタ制御部の制御によってなされる。この
動作の詳補を第7図。
The above is the general instruction processing order. These instructions are also commonly called non-privileged instructions. On the other hand, C.P.
Sensitive instructions that change the state of U, such as instructions that change the contents of the state control register, are controlled by the jrlA register control section of the present invention. Figure 7 shows the details of this operation.

および第9図を用いて説明する。This will be explained using FIG.

まず、第7図を用いて状態制御レジスタの変更処理の概
略を説明し、次に第9図を用いて制御部100の中の主
な構成と動作を詳細に説明する。
First, the outline of the state control register changing process will be explained using FIG. 7, and then the main configuration and operation in the control section 100 will be explained in detail using FIG. 9.

第3図に示した状態制御レジスタのフィールド、たとえ
ばINT215の値を変更する命令を実行する場合には
、変更データが信号線Q1を介し。
When executing an instruction to change the value of the field of the state control register shown in FIG. 3, for example INT215, the change data is transmitted via signal line Q1.

参照/更新の区別信号が信号線Q2を介して状態レジス
タ制御部100に送出さ九る。イ3号線Q2の信号の値
が0′であれば状態制御レジスタの参照を意味し、1′
 であれば更新を意味する。
A reference/update discrimination signal is sent to the status register control unit 100 via the signal line Q2. If the value of the signal on line 3 Q2 is 0', it means that the state control register is referenced, and 1'
If so, it means updating.

なお、信号線群Q2には上記で述べた変更データの他に
も他の情報を送出する信号線、たとえばVMモードに動
作モードを設定する信号線(第9図ではQllで表示)
も含んでいる。さらに、信号線Qlは双方向のデータ転
送が可能であり、状態制御レジスタの内容の参照の場合
には、その状態制御レジスタの内容が内部バスQ51に
送出される。また、状態レジスタ制御部100へは、走
行しているVMの識別情報を表わすVMIDレジスタ1
05の内容も送出されている。
In addition to the change data described above, the signal line group Q2 also includes signal lines for transmitting other information, such as signal lines for setting the operating mode to VM mode (indicated by Qll in FIG. 9).
Also includes. Further, the signal line Ql is capable of bidirectional data transfer, and when the contents of the status control register are referenced, the contents of the status control register are sent to the internal bus Q51. The state register control unit 100 also receives a VMID register 1 representing identification information of the running VM.
The contents of 05 are also sent out.

状態制御レジスタ制御部100は、複数個の状態制御レ
ジスタの中からVMIDレジスタ105の示す番号に対
応する状態制御レジスタをロケートする。その後、その
状態制御レジスタに対して信号線Q2の信号の値にもと
づいて動作する。たとえば、信号!1AQ2の信号の値
が0′であるならば、ロケートした状態制御レジスタの
内容を信号線Q1を介して内部バスQ51上に送出する
The state control register control unit 100 locates the state control register corresponding to the number indicated by the VMID register 105 from among the plurality of state control registers. Thereafter, the state control register operates based on the value of the signal on the signal line Q2. For example, signal! If the value of the signal 1AQ2 is 0', the contents of the located state control register are sent onto the internal bus Q51 via the signal line Q1.

一方、信号線Q2の信号の値が1′ であるならば状態
制御レジスタの値の更新を意味することになり、信号線
Q1を介して送られて来る更新データをVMIDレジス
タ105の内容対応にロケートした状態制御レジスタに
格納する。
On the other hand, if the value of the signal on the signal line Q2 is 1', it means that the value of the status control register is updated, and the update data sent via the signal line Q1 is matched to the contents of the VMID register 105. Store in the located state control register.

ロケートした状態制御レジスタに更新データを格納した
後は、実の状態制御レジスタに値を反映する動作が起動
される。すなわち、仮想計算機の動作モード(VMモー
ド)であるならば、第3図で示したSビット216、お
よびINTマスク216を強制的に0として実の状態制
御レジスタに設定する。これは、命令実行制御部115
.および割込み制御部110に対しては、VMモードの
ときにはユーザ・モードとし、さらに、いかなる外部割
込みをも受は入れる旨を表示している。
After storing the updated data in the located state control register, an operation is started to reflect the value in the actual state control register. That is, if it is the virtual machine operation mode (VM mode), the S bit 216 and INT mask 216 shown in FIG. 3 are forcibly set to 0 and set in the actual state control register. This is the instruction execution control unit 115
.. And for the interrupt control unit 110, it is displayed that when the VM mode is in the user mode, it will accept any external interrupts.

実の状態制御レジスタの値は信号線Q4を介して命令実
行制御部115へ送出する。なお、VMモードの値は信
号線Q4L、167を介して出力される。なお、信号線
Q41の信号は命令実行制御部115へも送出されてい
る。
The actual state control register value is sent to the instruction execution control unit 115 via the signal line Q4. Note that the VM mode value is output via the signal line Q4L, 167. Note that the signal on the signal line Q41 is also sent to the instruction execution control section 115.

では、次に第9図を用いて状態制御レジスタ制御部10
0の構成、ならびに動作を詳細に説明する。第9図は第
7図で示した状態制御レジスタ制御部lOOの中で本発
明に関係する箇所をより詳細に示したものである。図中
の符号の中で第7図と同じ意味のものは同一符号を話し
である。第9図において、符号1は複数個の状態制御レ
ジスタを記憶する状態制御レジスタ・ファイルであり。
Next, using FIG. 9, state control register control section 10
The configuration and operation of 0 will be explained in detail. FIG. 9 shows in more detail the portions of the state control register control unit lOO shown in FIG. 7 that are related to the present invention. Among the symbols in the figure, those having the same meaning as in FIG. 7 are referred to by the same symbols. In FIG. 9, reference numeral 1 is a state control register file that stores a plurality of state control registers.

個々の状態制御レジスタの形成は第3図に示した通りで
ある。符号2はデコーダ、3は保持レジスタ、4は比較
器、5はゼロ発生回路、6はVMモモ−表示子、7はア
ンド回路、8は増幅回路であり信号反転出力の能力も有
する。9はオア回路。
The formation of the individual state control registers is as shown in FIG. Reference numeral 2 is a decoder, 3 is a holding register, 4 is a comparator, 5 is a zero generation circuit, 6 is a VM momo indicator, 7 is an AND circuit, and 8 is an amplifier circuit, which also has the ability to invert a signal. 9 is an OR circuit.

10は選択回路SEL、11.12はゼロ発生回路、1
3は選択回路SEL、14は実の状態制御レジスタであ
る。
10 is a selection circuit SEL, 11.12 is a zero generation circuit, 1
3 is a selection circuit SEL, and 14 is an actual state control register.

VMID105の内容は線Q3を介してデコーダ2、お
よび比較器4の入力となるるここでVMTD105の値
がOであるなら゛ば、仮想計算機の動作モードのときに
VMMが動作中であるか、あるいは実計算機の動作モー
ドのことを意味する。
The contents of VMID105 are input to decoder 2 and comparator 4 via line Q3.If the value of VMTD105 is O, it indicates whether the VMM is operating in the virtual machine operating mode or not. Alternatively, it refers to the operating mode of an actual computer.

デコーダ2によってVMrDI05の値に対応する状態
制御レジスタが状態制御レジスタ・ファイル1の中から
1個が選ばれる。状態制御レジスタの内容の参照/更新
の区別は信号線Q2を介して命令実行制御部115より
書込み読み出し制御回路15へ入力されており、その更
新データ内部バスQ51を経由して信号線21を介して
入力されている。なお、VMモモ−表示子6へのセット
/リセット制御信号は命令実行制御部115から送出さ
れる。
The decoder 2 selects one state control register from the state control register file 1 corresponding to the value of VMrDI05. The distinction between reference and update of the contents of the status control register is input from the instruction execution control unit 115 to the write/read control circuit 15 via the signal line Q2, and the updated data is input via the signal line 21 via the internal bus Q51. is entered. Note that the set/reset control signal to the VM momo indicator 6 is sent from the instruction execution control section 115.

制御回路15は状態制御レジスタ・ファイル1内から選
択した状態制御レジスタに対して、信号線Q2の内容に
もとづいた処理を行なう。すなわち、信号線0.2の信
号の値が′O″であるならば状態制御レジスタの参照で
あることになり、選択した状態制御レジスタの内容を保
持レジスタ3に出力させ、その値を信号線ff12を介
して戻し、再び線Qlを経由させ、内部バスQ51に戻
す。
The control circuit 15 performs processing on the state control register selected from the state control register file 1 based on the contents of the signal line Q2. In other words, if the value of the signal on signal line 0.2 is 'O'', it means that the state control register is being referenced, and the contents of the selected state control register are output to holding register 3, and the value is transferred to signal line 0.2. ff12, and again via the line Ql, returning to the internal bus Q51.

一方、信号線Q2の信号の値が′ビであるならば状態制
御レジスタの値の更新を意味することになり、選択した
状態制御レジスタに対して、信号線Q1を介して送出さ
れている更新データを線ff13わ経由させてその状態
$制御レジスタに書込む。その後、状態制御レジスタ・
ファイル1内の変更された状態制御レジスタの内容は保
持レジスタ3に出力される。なお、保持レジスタ3の形
式は第3図で示した状態制御レジスタの形式と同一であ
る。
On the other hand, if the value of the signal on the signal line Q2 is 'bi', it means that the value of the state control register is updated, and the update is sent to the selected state control register via the signal line Q1. Write data to the state $ control register via line ff13. Then the state control register
The modified contents of the state control register in file 1 are output to holding register 3. The format of the holding register 3 is the same as that of the state control register shown in FIG.

次に、保持レジスタ3に保持された状態制御レジスタの
値を実の状態制御レジスタに反映する動作がなされる。
Next, an operation is performed to reflect the value of the state control register held in the holding register 3 to the actual state control register.

この動作は状態制御レジスタの参照、更新にかかわらず
行なわれる。
This operation is performed regardless of whether the status control register is referenced or updated.

実の状態制御レジスタ14へ値を反映する基準は次の通
りである。
The criteria for reflecting a value to the actual state control register 14 are as follows.

(1)  動作モードが実計算機の動作モード、すなわ
ち表示子6の値が0′ のとき、あるいは仮想計算機の
動作モードであってもVMMの動作(VMID105の
値が0のとき)のときには、状態制御レジスタ・ファイ
ル3内の該選択された状態制御レジスタの値をそのまま
実の状態制御レジスタ14に設定する。
(1) When the operation mode is the real computer operation mode, that is, the value of indicator 6 is 0', or even if it is the virtual computer operation mode, when it is VMM operation (when the value of VMID105 is 0), the state The value of the selected state control register in the control register file 3 is set as is in the actual state control register 14.

(2)仮想計算機の動作モードであり、かつ走行中のV
MがVMMでないならば、状態制御レジスタ・ファイル
3内の該選択された状態制御レジスタの中で、Sモード
・ビット216゜割込みマスクINT215を強制的に
0とし、常に外部装置からの割込みを受は付ける状態す
る6 では、まず上記の(1)のときの動作を説明する。
(2) V that is the operating mode of the virtual machine and is running
If M is not a VMM, force the S mode bit 216 and interrupt mask INT 215 to 0 in the selected state control register in state control register file 3 to always accept interrupts from external devices. 6. First, we will explain the operation in case (1) above.

実計算機の動作モードの場合には表示子6の値が0′ 
となっており、その信号は反転増幅器8を経由してオア
回路9の出力線+214の信号が1′となる。また、仮
想計算機の動作モードの場合であってもVMMの動作の
とき、すなわちVMrDレジスタ105の値が0′のと
きには、比較器4の結果により@Q15の信号が′I′
 となる。
In the case of the actual computer operation mode, the value of indicator 6 is 0'.
The signal passes through the inverting amplifier 8, and the signal on the output line +214 of the OR circuit 9 becomes 1'. Furthermore, even in the virtual machine operation mode, when the VMM is operating, that is, when the value of the VMrD register 105 is 0', the @Q15 signal is set to 'I' by the result of the comparator 4.
becomes.

その結果、オア回路9の出力信号線Q14の信号も1′
 となる。したがって、セレクタ5EL10は信号線Q
16の信号を選択する。セレクタ5EL136信号線Q
6の信号を選択する。これらは、それぞれ、実の状態制
御レジスタ14のSビット18.INTビット19に設
定される。なお、状S制御レジスタの他のデータは信号
aρ17を経由して、そのまま実の状態制御レジスタに
設定される。
As a result, the signal on the output signal line Q14 of the OR circuit 9 is also 1'
becomes. Therefore, the selector 5EL10 selects the signal line Q
Select 16 signals. Selector 5EL136 signal line Q
Select signal 6. These are the S bits 18 . of the real state control register 14, respectively. Set to INT bit 19. Note that other data in the state S control register are directly set in the actual state control register via the signal aρ17.

では1次に、上記(2)の動作について説明する。Next, the operation (2) above will be explained.

状態表示子6の値は1′ となり、その信号の出力信号
は増幅回路8を経由してアンド回路7の−方の入力とな
る。また、比較器4の結果はVMの走行中であるので0
と等しくなり、結果として信号線Q18の信号が1′と
なる。したがって、アンド回路7の出力信号線Q19の
信号が1′となる。
The value of the status indicator 6 becomes 1', and the output signal thereof is passed through the amplifier circuit 8 and becomes the negative input of the AND circuit 7. Also, the result of comparator 4 is 0 because the VM is running.
As a result, the signal on signal line Q18 becomes 1'. Therefore, the signal on the output signal line Q19 of the AND circuit 7 becomes 1'.

信号線Q19の信号が1′ となると、セレクタ5EL
IOはゼロ発生回路11の出力信号を選択する。また、
セレクタ13もゼロ発生回路12の出力信号を選択する
。その結果、実の状態制御レジスタ14のSビット18
1割込みマスクlNT19の値は強制的にOに設定され
る。したがって、仮想計算機システムの動作モードであ
り、かつVMの走行中は常に外部装置からの割込みを受
付けれる状態になる。
When the signal on signal line Q19 becomes 1', selector 5EL
IO selects the output signal of the zero generation circuit 11. Also,
The selector 13 also selects the output signal of the zero generation circuit 12. As a result, the S bit 18 of the actual state control register 14
The value of 1 interrupt mask lNT19 is forcibly set to O. Therefore, this is the operating mode of the virtual computer system, and while the VM is running, it is always in a state where it can accept interrupts from external devices.

なお、実の状態制御レジスタ14の内容は命令実行制御
部115へ、割込みマスクlNT19の内容は割込み制
御部110へ送出されている。動作状態表示子6の値は
、命令実行制御部115、割込み制御部110、制御信
号処理回路67へ送出されている。また、状態制御レジ
スタ・ファイル1から選択されたVM対応の状態制御レ
ジスタの割込みマスク(VINTという)は信号線℃6
を介して割込み制御部11へ送出される。
Note that the contents of the actual state control register 14 are sent to the instruction execution control section 115, and the contents of the interrupt mask lNT19 are sent to the interrupt control section 110. The value of the operating state indicator 6 is sent to the instruction execution control section 115, the interrupt control section 110, and the control signal processing circuit 67. In addition, the interrupt mask (referred to as VINT) of the state control register corresponding to the VM selected from the state control register file 1 is connected to the signal line ℃6.
It is sent to the interrupt control unit 11 via.

再び第7図を参照するに、割込み制御部110は外部装
置から信号線Q61を介して報告される割込みレベル番
号と実の状態レジスタ14の割込みマスクlNT19の
値を送出している信号aQ5の値あるいは信号線126
の値(V I NT)と比較する。どちらの信号線の値
と比較するかは、先に述べたようにVビット6の出力信
号線U41の値で決まる。外部装置からの割込みが可能
であれば、信号線Q21の信号を 1′ とし、信号線
Q20には割込み番号を送出し、命令実行制御部115
に対して割込みを報告する。また、割込みを受は付けれ
ない場合には、信号線Q22の信号を 1′ として、
割込み保留状態を報告する。
Referring again to FIG. 7, the interrupt control unit 110 outputs the interrupt level number reported from the external device via the signal line Q61 and the value of the signal aQ5 which sends the value of the interrupt mask lNT19 of the actual status register 14. Or signal line 126
(V I NT). The value of the signal line to be compared is determined by the value of the output signal line U41 of V bit 6, as described above. If an interrupt from an external device is possible, the signal on the signal line Q21 is set to 1', the interrupt number is sent to the signal line Q20, and the instruction execution control unit 115
Report interrupts to . If interrupts cannot be accepted, set the signal on signal line Q22 to 1',
Reports pending interrupts.

外部装置からの割込みが可能であるか否かの検査は、信
号線Q61の値(第7図の例ではOから7番までの割込
みレベル番号)と信号線Q5の値(割込みマスク番号:
0〜7)とを比較し、割込みレベル番号が割込みマスク
番号よりも大きいならば、常に外部装置からの割込みを
受付けることになる。
To check whether or not an interrupt from an external device is possible, check the value of the signal line Q61 (interrupt level numbers from O to 7 in the example of FIG. 7) and the value of the signal line Q5 (interrupt mask number:
0 to 7), and if the interrupt level number is larger than the interrupt mask number, interrupts from external devices are always accepted.

第10図は本発明の仮想計算機システム用マイクロ・プ
ロセッサ方式を用いて構成されるパーソナル・コンピュ
ータ・システムのブロック図である。
FIG. 10 is a block diagram of a personal computer system constructed using the microprocessor method for virtual computer systems of the present invention.

この一実施例によるP C(P ersonal Ca
mput、er)構成の符号301は本発明の制御方式
を具備しているマイクロ・プロセッサCPU、302は
クロック・ジェネレータCLOCK、303は割込み優
先順位制御回路、304は第1図で示したVMSの構成
例の制御プログラムVMM502や0S506、ユーザ
・プログラム515が格納されるメモリRAM、305
はRAM304の制御部 (Memory  Cont
rol  Unit  :  M CU)  、   
3 0 6はディスク制御回路、307は磁気ディスク
・ファイル、308はプリンタ制御回路、309はプリ
ンタ装置、310はディスプレイ/キーボード制御回路
、311はディスプレイ装置とキーボード、312は通
信制御回路、313は通信回路装置である。第10図の
構成において、プリンタ装置309とその制御部308
、および通信回路装置1313とその制御部312は必
須構成要素ではない。
PC (Personal Ca) according to this embodiment
301 is a microprocessor CPU equipped with the control method of the present invention, 302 is a clock generator CLOCK, 303 is an interrupt priority control circuit, and 304 is the configuration of the VMS shown in FIG. Memory RAM 305 in which example control programs VMM 502 and 0S 506 and user program 515 are stored
is the control unit of the RAM 304 (Memory Control
rolUnit: MCU),
306 is a disk control circuit, 307 is a magnetic disk file, 308 is a printer control circuit, 309 is a printer device, 310 is a display/keyboard control circuit, 311 is a display device and keyboard, 312 is a communication control circuit, 313 is communication It is a circuit device. In the configuration of FIG. 10, the printer device 309 and its control unit 308
, and the communication circuit device 1313 and its control unit 312 are not essential components.

マイクロ・プロセッサCPU30Lと各コンポーネント
間とは、24ビツトのアドレス・バスQ31.16ビツ
ト、あるいは32ビツトのデータ・バスQ32、CPU
301の動作状態の中でメモリRAM304へのアクセ
ス形態を示すファンクション・ライン・バスQ52、各
部への制御信号線群Q56〜1259.Q53.各部か
らの応答信号Q601割込み優先順位制御回路303か
らの割込みライン・バスμ61で接続されている。
The connection between the microprocessor CPU30L and each component is a 24-bit address bus Q31.16 bits, or a 32-bit data bus Q32, and a
301, a function line bus Q52 indicating the access form to the memory RAM 304, and control signal line groups Q56 to 1259. Q53. A response signal Q60 from each part is connected to an interrupt line bus μ61 from an interrupt priority control circuit 303.

割込み優先順位制御回路303は、各部からの割込み要
求を優先付けして、その割込みレベル番号(0〜7番)
を作り出す。この割込みレベル番号を信号線群Q61に
送出する。
The interrupt priority control circuit 303 prioritizes interrupt requests from each section and assigns them an interrupt level number (0 to 7).
create. This interrupt level number is sent to signal line group Q61.

〔発明の効果〕〔Effect of the invention〕

本発明によれば、マイクロ・プロセッサCPUの割込み
マスク・コードの値として、マイクロ・プロセッサの動
作モードによって実の状態制御レジスタの割込みマスク
・コードの値を用いるか、あるいは各VM対応に具備し
ている仮想の状態制御レジスタの割込みマスク・コード
の値を用いることになるので、仮想計算機システムの動
作時には外部割込み番号は該走行中のVMに対応する仮
想の状態制御レジスタ内の割込みマスク・コードの値と
比較される。その結果、外部割込みが発生する度にVM
Mの介入によるシミュレーション処理のオーバヘッドを
削減でき、仮想計算機システムにおける処理性能が向上
する。
According to the present invention, as the value of the interrupt mask code of the microprocessor CPU, the value of the interrupt mask code of the actual state control register is used depending on the operation mode of the microprocessor, or the value of the interrupt mask code provided for each VM is used. Since the value of the interrupt mask code in the virtual state control register corresponding to the running VM is used, when the virtual machine system is operating, the external interrupt number is the value of the interrupt mask code in the virtual state control register corresponding to the running VM. compared to the value. As a result, every time an external interrupt occurs, the VM
The overhead of simulation processing due to the intervention of M can be reduced, and the processing performance in the virtual computer system can be improved.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は通常の仮想計算機システムの概念を示す図、第
2図は主メモリの割当て方法とVMJIの制御ブロック
の関係を示した図、第3図は状態制御レジスタの形成を
示した図、第4図は仮想計算機システムの環境下におい
てVM下のO8から発行される状態レジスタの値を変更
するセンシティブ命令をVMMがシミュレーション処理
を行なうときの処理手順を示した図、第5図は第4図の
ディスパッチ処理222の詳細を示した図、第6図は外
部割込みが発生したときのVMMの動作フローを示した
図、第7図は本発明の割込み制御部、および状態レジス
タ制御部を含むマイクロ・プロセッサの構成を示した図
、第8図は割込み制御部の詳細を示した図、第9図は状
態レジスタ制御部の詳細を示した図、第10図は本発明
の仮想計算機システム用マイクロ・プロセッサを含むパ
ーソナル・コンピュータ・システムの構成を示す図であ
る。 第8図において、21:セレクタ、22,23:比較器
、24:最高優先順位値発生回路、25:アンド回路、
26:オア回路、27:ゲート回路、O5:実の状態制
御レジスタ内の割込みマスク・コードの値を伝送する信
号線、O6:仮想の状態制御レジスタ内の割込みマスク
・コードの値を伝送する信号線、O41:仮想計算機シ
ステムの動作状態を伝送する信号線、O61:外部割込
み発生時の割込み番号を伝達する信号線、O20:割込
み番号を伝達する信号線、O21:割込み動作起動信号
を伝達する信号線、 O22:割込み保留信号を伝達す
る信号線、である。 また、第9図において、1:状態制御レジスタ・ファイ
ル、2:デコーダ、3:保持レジスタ、4:比較器、5
:ゼロ発生器、6:VMモード表示子、7:アンド回路
、8:増幅回路、9:オア回路、10:セレクタ、11
,12:ゼロ発生回路、13:セレクタ、14:実の状
態制御レジスタ、15:書込み読出し制御回路、である
。 第1図 躬2図 第48 第2図 第7ゾ 第3圀 vJNT  1M7 第q目 〃6へ
Figure 1 is a diagram showing the concept of a normal virtual computer system, Figure 2 is a diagram showing the relationship between the main memory allocation method and VMJI control blocks, and Figure 3 is a diagram showing the formation of state control registers. Figure 4 is a diagram showing the processing procedure when the VMM performs simulation processing of a sensitive instruction that changes the value of the status register issued from the O8 under the VM in the environment of a virtual computer system. 6 is a diagram showing the operation flow of the VMM when an external interrupt occurs, and FIG. 7 is a diagram showing details of the dispatch processing 222 shown in FIG. A diagram showing the configuration of the microprocessor, FIG. 8 a diagram showing details of the interrupt control section, FIG. 9 a diagram showing details of the status register control section, and FIG. 10 a diagram for the virtual computer system of the present invention. 1 is a diagram showing the configuration of a personal computer system including a microprocessor. In FIG. 8, 21: selector, 22, 23: comparator, 24: highest priority value generation circuit, 25: AND circuit,
26: OR circuit, 27: Gate circuit, O5: Signal line that transmits the value of the interrupt mask code in the real state control register, O6: Signal that transmits the value of the interrupt mask code in the virtual state control register. line, O41: signal line that transmits the operating state of the virtual computer system, O61: signal line that transmits the interrupt number when an external interrupt occurs, O20: signal line that transmits the interrupt number, O21: transmits the interrupt operation activation signal Signal line O22: A signal line that transmits an interrupt pending signal. In addition, in FIG. 9, 1: state control register file, 2: decoder, 3: holding register, 4: comparator, 5
: Zero generator, 6: VM mode indicator, 7: AND circuit, 8: Amplifier circuit, 9: OR circuit, 10: Selector, 11
, 12: zero generation circuit, 13: selector, 14: actual state control register, 15: write/read control circuit. Figure 1 Figure 2 Figure 48 Figure 2 Figure 7 Zoro 3rd area vJNT 1M7 Go to qth 〃6

Claims (1)

【特許請求の範囲】 1、複数の仮想計算機が走行するマイクロ・プロセッサ
の割込み制御方式において、外部装置からの割込み要因
発生を示す割込み番号に対応して、該外部割込み要因を
許可するか否かを比較判定するための割込みマスク・コ
ードを該複数の仮想計算機に対応して複数個記憶する手
段と、該複数個の割込みマスク・コード記憶群の中から
現在走行中の仮想計算機に対応するマスク・コードを選
択する手段と、選択された割込マスク・コードと外部装
置からの割込み番号を比較する手段と、比較の結果、割
込み動作の起動を励起する条件が成立したならば、該割
込み番号と割込み動作起動指令を報告する手段とを設け
たことを特徴とするマイクロ・プロセッサの割込み制御
方式。 2、第1項において、前記選択手段は、仮想計算機動作
モード表示子と走行する仮想計算機識別子とを具備し、
仮想計算機動作モード表示子が実計算機システムの動作
を表示している場合には、実の割込みマスク・コードの
記憶情報を選択し、仮想計算機動作モード表示子が仮想
計算機システムの動作を表示している場合には、該仮想
計算機識別子の値に対応した割込みマスク・コードの記
憶情報を選択する手段を有することを特徴とするマスク
ロ・プロセッサの割込み制御方式。 3、第1項において、前記比較手段は外部装置からの割
込み番号が選択されたマスク・コードの値よりも小さい
ときに割込み動作の起動を励起する指令信号を発し、割
込みマスク・コードの値以上の場合には割込み保留の旨
の指令を発する手段を有することを特徴とする特許請求
の範囲第1項記載のマイクロ・プロセッサの割込み制御
方式。
[Claims] 1. In an interrupt control method for a microprocessor in which a plurality of virtual machines are running, whether or not to permit an external interrupt factor in response to an interrupt number indicating the occurrence of an interrupt factor from an external device. means for storing a plurality of interrupt mask codes corresponding to the plurality of virtual machines for comparing and determining the interrupt mask codes; and a mask corresponding to the currently running virtual machine from among the plurality of interrupt mask code storage groups. means for selecting a code; means for comparing the selected interrupt mask code with an interrupt number from an external device; 1. An interrupt control method for a microprocessor, comprising: and means for reporting an interrupt operation activation command. 2. In item 1, the selection means includes a virtual machine operation mode indicator and a running virtual machine identifier,
If the virtual machine operation mode indicator is displaying the operation of the real computer system, select the storage information of the actual interrupt mask code, and the virtual machine operation mode indicator should display the operation of the virtual computer system. 1. An interrupt control method for a mask processor, comprising means for selecting storage information of an interrupt mask code corresponding to the value of the virtual machine identifier, if the virtual machine identifier has a value. 3. In paragraph 1, the comparison means issues a command signal to excite the activation of the interrupt operation when the interrupt number from the external device is smaller than the value of the selected mask code, and when the interrupt number from the external device is smaller than the value of the selected mask code, 2. The microprocessor interrupt control system according to claim 1, further comprising means for issuing a command to suspend the interrupt in the case of .
JP4477485A 1984-12-19 1985-03-08 Interruption controlling system for microprocessor Pending JPS61204743A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP4477485A JPS61204743A (en) 1985-03-08 1985-03-08 Interruption controlling system for microprocessor
US06/809,182 US4975836A (en) 1984-12-19 1985-12-16 Virtual computer system
DE8585116263T DE3582662D1 (en) 1984-12-19 1985-12-19 VIRTUAL DATA PROCESSING SYSTEM.
EP85116263A EP0185378B1 (en) 1984-12-19 1985-12-19 Virtual computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4477485A JPS61204743A (en) 1985-03-08 1985-03-08 Interruption controlling system for microprocessor

Publications (1)

Publication Number Publication Date
JPS61204743A true JPS61204743A (en) 1986-09-10

Family

ID=12700757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4477485A Pending JPS61204743A (en) 1984-12-19 1985-03-08 Interruption controlling system for microprocessor

Country Status (1)

Country Link
JP (1) JPS61204743A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009157178A1 (en) * 2008-06-24 2009-12-30 パナソニック株式会社 Virtual computer control device, virtual computer control program, and virtual computer control circuit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009157178A1 (en) * 2008-06-24 2009-12-30 パナソニック株式会社 Virtual computer control device, virtual computer control program, and virtual computer control circuit
US8504752B2 (en) 2008-06-24 2013-08-06 Panasonic Corporation Virtual machine control device, virtual machine control program, and virtual machine control circuit for managing interrupts of plural virtual machines
JP5323828B2 (en) * 2008-06-24 2013-10-23 パナソニック株式会社 Virtual machine control device, virtual machine control program, and virtual machine control circuit

Similar Documents

Publication Publication Date Title
US4975836A (en) Virtual computer system
US4347565A (en) Address control system for software simulation
US4814975A (en) Virtual machine system and method for controlling machines of different architectures
US5218712A (en) Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption
US4885681A (en) I/O Execution method for a virtual machine system and system therefor
US4494189A (en) Method and means for switching system control of CPUs
JPS61206043A (en) Interruption control method in virtual computer system
JPS5911943B2 (en) Trap mechanism for data processing equipment
US8612975B2 (en) World switch between virtual machines with selective storage of state information
US5339417A (en) Computer system with two levels of guests
JPS6313223B2 (en)
US10452420B1 (en) Virtualization extension modules
US5325520A (en) Invoking hardware recovery actions via action latches
JPH0766365B2 (en) Co-processor control system
US5280592A (en) Domain interlock
EP0619899B1 (en) Software control of hardware interruptions
US5179691A (en) N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M
CA1302579C (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
JPS61204743A (en) Interruption controlling system for microprocessor
JPS61184643A (en) Starting control system for virtual computer
JPH0754468B2 (en) Virtual computer system
JPH0567973B2 (en)
US5355470A (en) Method for reconfiguring individual timer registers offline
JPS61208133A (en) State register controller in virtual computer system
EP0550290A2 (en) CPU register array