JPS5820066B2 - Hardware virtualizer - Google Patents

Hardware virtualizer

Info

Publication number
JPS5820066B2
JPS5820066B2 JP49061028A JP6102874A JPS5820066B2 JP S5820066 B2 JPS5820066 B2 JP S5820066B2 JP 49061028 A JP49061028 A JP 49061028A JP 6102874 A JP6102874 A JP 6102874A JP S5820066 B2 JPS5820066 B2 JP S5820066B2
Authority
JP
Japan
Prior art keywords
virtual
virtual machine
level
map
machine
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
Application number
JP49061028A
Other languages
Japanese (ja)
Other versions
JPS5023146A (en
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.)
HANEIUERU INFUOOMEISHON SHISUTEMUSU Inc
Original Assignee
HANEIUERU INFUOOMEISHON SHISUTEMUSU Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HANEIUERU INFUOOMEISHON SHISUTEMUSU Inc filed Critical HANEIUERU INFUOOMEISHON SHISUTEMUSU Inc
Publication of JPS5023146A publication Critical patent/JPS5023146A/ja
Publication of JPS5820066B2 publication Critical patent/JPS5820066B2/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 (イ)発明の層する技術分野 本発明は一般には計算機システムに関し、詳細には、汎
用ホスト計算機上でシミュレートされる仮想的資源と前
記ホスト計算機において実行している実プロセスとの間
の対応を確立するための方法及びハードウェア仮想化装
置(パーチャライザ)に関する。
DETAILED DESCRIPTION OF THE INVENTION (a) Technical field to which the invention pertains The present invention generally relates to a computer system, and specifically relates to virtual resources simulated on a general-purpose host computer and virtual resources executed on the host computer. The present invention relates to a method and a hardware virtualization device (partualizer) for establishing correspondence with a real process.

(B)従来の技術の説明 1960年頭初における入出力(’10)処理装置の出
現と資源(リソース)の利用および全体的処理効率の改
善のためのマルチプログラム方式の使用とにより、主メ
モリーを同一でない処理装置間において共用しまた1台
の処理装置を共通のリソースに関して競合する数個のプ
ロセスで共用するというマルチプロセッサ(多重処理装
置)およびマルチプログラム処理方式の発展がうながさ
れた。
(B) Description of the Prior Art The advent of input/output ('10) processing units in the early 1960s and the use of multiprogram methods to improve resource utilization and overall processing efficiency made main memory This encouraged the development of multiprocessor and multiprogram processing systems in which dissimilar processing units are shared and a single processing unit is shared by several processes competing for a common resource.

システムの完全性に関する問題を遅けるために、二状態
のアーキテクチャ(体系)が採用された。
A two-state architecture was adopted to slow system integrity issues.

基本的にはシステム動作は2つのモードすなわち特権モ
ードと非特権的モードに大別される。
Basically, system operation can be broadly divided into two modes: privileged mode and non-privileged mode.

特伶〆非特権・動作モード(あるいはマスター/スレー
ブ・動作モード、システム/ユーザ・動作モートとも称
されている。
Special: Unprivileged operating mode (also called master/slave operating mode, system/user operating mode).

)においては、重要な動作の実行は特権モードに限定さ
れ、重要でないである大部分の動作は非特権モードにお
いて実行される。
), the execution of critical operations is limited to privileged mode, and most non-critical operations are performed in non-privileged mode.

(B−1)普通の二状態体系とその問題点第1a図には
普通の二状態体系の一部が示しである。
(B-1) Ordinary two-state system and its problems Figure 1a shows a part of an ordinary two-state system.

ベア(無装飾の、素面の)マシン101(図面では「ベ
ースマシン」と表示する)は%権ソフトウェア核102
を支持する(取扱える)ベース(基本)マシン・インタ
フェース103を有する。
A bare (undecorated, sober) machine 101 (indicated as "base machine" in the drawing) is a %-rights software core 102
It has a base (basic) machine interface 103 that supports (can handle).

このベース・マシン・インタフェースとは特定システム
のハードウェアおよびファームウェアにより直接支持さ
れるところの、ソフトウェアで参照できる(visib
le)対象物および命令の群を意味する。
This base machine interface is a software-visible interface directly supported by a particular system's hardware and firmware.
le) means a group of objects and instructions.

このベア・マシン101、特権ソフトウェア核102お
よびベース・マシン・インタフェース103は組合わさ
って数個の拡張マシン(エキステンデッド・マシン)1
04,105等を支持する(第1a図では簡単のために
2つだけが示しである)。
This bare machine 101, privileged software core 102, and base machine interface 103 are combined into several extended machines (extended machines) 1
04, 105, etc. (only two are shown in FIG. 1a for simplicity).

この拡張マシン106および101で示した如き数個の
ユーザー・プログラムを支持し得る。
This expansion machine 106 and 101 may support several user programs as shown.

しかしながらこの形式の従来のシステムは唯一つのベー
ス・マシン・インタフェース103しか有していないの
で、どの時点においても唯一つの特権ソフトウェア核1
02しか遂行(実行)することができない。
However, since conventional systems of this type have only one base machine interface 103, there is only one privileged software core 103 at any given time.
Only 02 can be executed.

したがってハードウェアを完全にアクセスしハードウェ
アのすべての機能・能力を制御できるソフトウェアは特
権ソフトウェア核だけであるので、いくつかの問題が生
じる。
Therefore, since the privileged software core is the only software that can completely access the hardware and control all functions and capabilities of the hardware, several problems arise.

その内の重要な問題点は、非特権プログラムか特権ソフ
トウェア核とハードウェアの非特権機能で構成される拡
張マシンに対して実際に作成されるので、プログラム・
トランスポータビリティ(プログラム移植可能性)の分
野に存在する。
An important problem is that the program is actually created for an extended machine consisting of an unprivileged program or a privileged software core and unprivileged functions of the hardware.
It exists in the field of transportability (program portability).

ベア・ハードウェア・マシン(素面のハードウェアを有
したマシン)は比較的容易に標準化できるが、拡張マシ
ンは、そのシステムのフリミティブ(原始機能すなわち
擬似命令)が部分的にはソフトウェアで具体化されその
ため特権ソフトウェア核を含むシステムの変更・修正が
比較的容易であるので、標準化が非常に困難である。
While bare hardware machines (machines with bare hardware) can be standardized relatively easily, extended machines require that the system's primitives (original functions or directives) are partially embodied in software. Therefore, since it is relatively easy to change or modify a system that includes a privileged software core, standardization is extremely difficult.

このため標準ベア・マシンで実行できる拡張マシン(シ
ステム)は多種多様となる。
Therefore, there are a wide variety of extended machines (systems) that can be executed on a standard bare machine.

このため、ユーザーの拡張マシンとは異種の1つの拡張
マシンのために作成したプログラムを実行したいユーザ
ーは、「異種」ソフトウェア核を実行するためにユーザ
ー自身の拡張マシンを棄てるか、異種拡張マシンのため
に作成したプログラムをユーザー自身の拡張マシン用に
変更することが必要である。
Therefore, a user who wants to run a program written for one extended machine that is disparate from the user's extended machine must either abandon his own extended machine to run a "foreign" software kernel, or run a program on a dissimilar extended machine. It is necessary to modify the program written for the user's own expansion machine.

この選択はほとんどのユーザーは好まない。This option is not preferred by most users.

別の問題は、1つの特権ソフトウェア核しか設けてない
ので同時に2種の特権ソフトウェア核を実行させること
が不可能であることから生じる。
Another problem arises from the fact that since only one privileged software kernel is provided, it is not possible to have two privileged software kernels running at the same time.

従ってソフトウェア核を常時発展させ変更・修正するこ
とは、システム・プログラマに、関連するマシンを非常
に長時間自由に使用させる必要が生ずるので、非常に実
施困難である。
Continuously evolving, changing and modifying the software kernel is therefore very difficult to implement since it requires system programmers to have the associated machines at their disposal for very long periods of time.

更に、システム・プログラマがデバッキング(演算実行
検査)や変更・修正のために関連システムを自由に使用
するときその使用効率は極めて低くつりソース(資源)
の利用効率は極めて悪くなる。
Furthermore, when system programmers freely use related systems for debugging (examination of calculation execution) or changes/modifications, the utilization efficiency is extremely low and resources are
The efficiency of use of will be extremely poor.

最後に、診断ソフトウェアはハードウェアのすべての機
能・能力をアクセスし制御する必要がありそのため特権
ソフトウェア核と同時に実行不可能であるので、通常の
計算処理の計画に干渉しないようにして実施できるテス
ト・診断の処理量は制限される。
Finally, tests can be performed without interfering with the normal computational planning, since the diagnostic software must access and control all functions and capabilities of the hardware and therefore cannot run concurrently with the privileged software core.・The amount of diagnostic processing is limited.

(B−2)仮想マシンの説明 このような問題点を除くためには、拡張マシン・インタ
フェースではなくて数個の相似なベース・マシン・イン
クフェース124(第1b図)を支持し得るバーチャル
(仮想)マシン・モニタVMM122(第1b図)を作
ることが必要である。
(B-2) Description of a virtual machine In order to eliminate such problems, it is necessary to create a virtual machine (which can support several similar base machine interfaces 124 (FIG. 1b) instead of an extended machine interface). It is necessary to create a virtual) machine monitor VMM 122 (Figure 1b).

このようにすれば異なる特権ソフトウェア核、即ちオペ
レーティングシステム112,113(第1b図)が各
追加のベース・マシン・インタフェース124において
実行可能となり上述した問題点は除かれるであろう。
In this way, different privileged software kernels, ie operating systems 112, 113 (FIG. 1b), could be executed on each additional base machine interface 124 and the problems described above would be eliminated.

ベア・マシンでは直接的に支持されないが拡張マシン・
インタフェースと同様にしてなら支持さt’Lルベース
・マシン・インクフェースはバーチャル・マシン(仮想
マシン)と称されており、第1b図に番号rllo、1
11Jで示しである。
Although not directly supported on bare machines, extended machines
The base machine interfaces supported in the same way as the interfaces are called virtual machines and are numbered rllo, 1 in Figure 1b.
It is indicated by 11J.

第1b図には第1a図のものと同じベア・マシン101
が示しであるが、ベース・マシン・インクフェース10
3において実行される特権ソフトウェアはバーチャル・
マシン・モニター(VMM)122である。
Figure 1b shows the same bare machine 101 as in Figure 1a.
is shown, but the base machine ink face 10
Privileged software running in 3 is a virtual
A machine monitor (VMM) 122.

このバーチャル・マシンビモニター122はこの図では
数個のベース・マシン・インタフェース124を支持す
る。
The virtual machine monitor 122 supports several base machine interfaces 124 in this illustration.

したがって、異なる特権ソフトウェア核112,113
は各追加のベース・マシン・インタフェース124にお
いて実行可能となる。
Therefore, different privileged software kernels 112, 113
is executable at each additional base machine interface 124.

各特権ソフトウェア核112゜113は一群のそれ自身
の拡張マシン・インタフェース125および126を支
持し得るので、したがってそれ自身のユーザ゛−・プロ
グラム118゜119または120,121を支持し得
る。
Each privileged software kernel 112-113 may support its own set of extended machine interfaces 125 and 126 and therefore its own user programs 118-119 or 120,121.

ハーチャル・マシン・モニター(VMM)で支持される
ベース・マシン・インタフェースは対応tル実(rea
l)マシンのベース・マシン・インタフェースと機能的
に同一であるので、ベース・マシンで実行できる任意の
特権ソフトウェア核はバーチャル(仮想)マシンにおい
ても同様に実行できるであろう。
The base machine interface supported by the Virtual Machine Monitor (VMM) is
l) Functionally identical to the machine's base machine interface, any privileged software kernel that can run on the base machine will be able to run on the virtual machine as well.

更に、特権ソフトウェア核はそれがベア(素面)マシン
で実行されているかバーチャル・マシンで実行されてい
るかについて決定する手段を有していない。
Furthermore, a privileged software kernel has no means of determining whether it is running on a bare machine or a virtual machine.

したがって根本的には、バーチャル・マシンはその実際
の複製したマシンに等価であり機能的には区別できる差
異はない。
Fundamentally, therefore, a virtual machine is equivalent to its actual replica, with no discernible functional differences.

バーチャル・マシン・モニター(VMM)はこれらプロ
グラムを各命令毎に解釈実行することはしないが、大部
分の時間の間はプログラムをベア(素面)マシンにおい
て直接的に実行させることを許す。
Virtual Machine Monitors (VMMs) do not interpret and execute these programs instruction by instruction, but allow the programs to run directly on a bare machine most of the time.

しかしながら時にはバーチャル・マシン・モニター(V
MM)はある種の命令をトラップ(捕捉)しシステムの
内容の全体的完全性を保証するために捕捉した命令を解
釈的に実行し、この解釈による実行が終了した後、制御
は実行中のプログラムに戻される。
However, sometimes the Virtual Machine Monitor (V
MM) traps certain instructions and executes them interpretively to ensure the overall integrity of the system's contents; after this interpretive execution is finished, control is transferred to the returned to the program.

したがってバーチャル・マシンにおいてのプログラムの
実行は拡張マシンにおいてプログラムを実行することに
極めて相似であり、大部分の命令はソフトウェアによる
介入なしに直接的に実行され、必要な解釈演算を実行す
るために制御用ソフトウェアにより時々介入が行われる
Executing a program in a virtual machine is therefore very similar to executing a program in an extended machine, with most instructions being executed directly without software intervention, and control to perform the necessary interpretive operations. Interventions are sometimes performed by software for

明らかな如く、第1b図のバーチャル・マシン・モニタ
ー(VMM)122はベア・マシンにおいて直接的に運
行される。
As can be seen, the virtual machine monitor (VMM) 122 of FIG. 1b is run directly on the bare machine.

この形式のシステムはrIJ形バーチャル・マシンと称
されている。
This type of system is called an rIJ virtual machine.

しかしながら拡張マシンにおいて運行されるバーチャル
・マシン・モニターも存在し得る。
However, there may also be virtual machine monitors running on extended machines.

この第2の形式のバーチャル・マシンは第1C図に概略
的に示してあり、rllJ形バーチャル・マシンと称す
る。
This second type of virtual machine is shown schematically in FIG. 1C and is referred to as an rllJ type virtual machine.

第1c図には、特権ソフトウェア核151を有したベー
ス・マシン・インタフェース103を具備するベア・マ
シン101が示しである。
In FIG. 1c, a bare machine 101 is shown comprising a base machine interface 103 with a privileged software kernel 151. In FIG.

特権ソフトウェア核151は、夫々拡張マシン・インタ
フェース157a 、157bを有する拡張マシン15
3,154を支持している。
Privileged software core 151 is connected to expansion machine 15 having expansion machine interfaces 157a and 157b, respectively.
It supports 3,154.

拡張マシン153はユーザー・プログラム155を支持
しており、他方の拡張マシン154はバーチャル・マシ
ン158を支持し、けのバーチャル・マシン158は拡
張マシン161を支持することができて、この拡張マシ
ン161はユーザー・プログラム162を支持し得る。
The extension machine 153 supports the user program 155, the other extension machine 154 supports the virtual machine 158, and the other virtual machine 158 can support the extension machine 161. may support user programs 162.

(B−3)仮想マシンの具体例 ここで従来の技術における比較的少数のバーチャル・マ
シンについて述べる。
(B-3) Specific examples of virtual machines Here, a relatively small number of virtual machines in the conventional technology will be described.

次の如きものが無形的である。The following things are intangible.

(イ)I 8M44=r I J形FV(同族パーチャ
ライジング、同族仮想計算機) I 8M44 (高度に変更・修正した第2世代のIB
M7044)は、プロブレム(問題)/スーパーバイズ
(監督)・動作モード・ロケ−。
(b) I 8M44=r I J type FV (family parturizing, family virtual computer) I 8M44 (Highly modified and modified second generation IB
M7044) is problem/supervision/operation mode/location.

ジョン・テスト/非ロケーション・テスト、マツピング
/非マツピング・動作モード等の多数の動作モードとペ
ージング機能を含むように拡張された。
It has been expanded to include multiple operating modes such as John/Non-location testing, mapping/non-mapping operating modes, and paging functionality.

MOS(モジュール・オペレーティング・システム)と
呼ぶオペレーティング・シ。
An operating system called MOS (Module Operating System).

ステムの使用により「44X」と呼ばれる一群のバーチ
ャル・マシンが作られる。
The use of stems creates a family of virtual machines called "44X."

しかしながら実際のr7044Jとはわずかに異なるの
で厳密な意味ではこれらr44XJはバーチャル・マシ
ンではない。
However, since they are slightly different from the actual r7044J, these r44XJs are not virtual machines in the strict sense.

r44XJオペレーテイン・システムは各r44XJに
おいて運行され、多くのオペレーティング・システムに
見られる慣習的サービスを行える。
The r44XJ operating system runs on each r44XJ and is capable of conventional services found in many operating systems.

(0)IBMケンブリッジ科学センターCP−40=「
I」形Fv(同族パーチャライジング、同族仮想計算機 CP−40(コントロール・プログラム−40)はCP
−67の先駆を成すものであって、連想メモリー・ペー
ジング・ボックス(ページング機構)を加えて特に変更
・修正したIBM360/40に応じて作成された。
(0) IBM Cambridge Science Center CP-40="
I” type Fv (cognate partializing, cognate virtual computer CP-40 (control program-40) is CP
-67, and was created in response to the IBM 360/40, which was specifically modified and modified with the addition of an associative memory paging box.

このシステムはタイム・シェアリング・システムであっ
て14台のバーチャル・マシン「360」を支持する。
This system is a time sharing system and supports 14 virtual machines "360".

これらr360Jは標準のr IBM360Jであって
ホスト・マシン40の特殊な変更・修正を何んら含んで
いない。
These r360Js are standard rIBM360Js and do not include any special changes or modifications to the host machine 40.

バーチャル・マシン360は多数のr360Jオペレー
ティング・システムを運行させることができる。
Virtual machine 360 can run multiple r360J operating systems.

これらオペレーティング・システムには標準のO8/3
60およびCMS(CP−40と共に使用する為に特に
ケンブリッジ科学センターにおいて開発された「会話シ
ステム」、(ケンブリッジ・モニターシステム)が含ま
れる。
These operating systems have a standard O8/3
60 and CMS (a "conversation system" developed at the Cambridge Science Center specifically for use with the CP-40 (Cambridge Monitor System)).

このシステムは、360/40の処理装置速度、中程度
の実際のコアの容量、ページング機能に対する遅いディ
スクの速度、の合成した制限を受けた。
This system suffered from the combined limitations of 360/40 processor speed, moderate actual core capacity, and slow disk speed for paging functions.

しかしながらCP−40はバーチャル・マシンの概念の
生存可能性を示すのに役立った。
However, the CP-40 helped demonstrate the viability of the virtual machine concept.

更に、VMTSS(バーチャル・マシン・タイム・シェ
アリング・システム)を提供し、その同族マシンにおけ
る汎用タイム・シェアリング・システムがどれもその当
時実現していなかったときCMS(ケンブリッジ・モニ
ターシステム)ヲ用いてr360Jのための都合の良い
会話システムを提供した。
Furthermore, it provided VMTSS (Virtual Machine Time Sharing System) and used CMS (Cambridge Monitor System) when no general-purpose time sharing system for its family of machines was available at the time. We have provided a convenient conversation system for the R360J.

事実この試みの成功が後のシステムrCP−67Jに直
接むすびついた。
In fact, the success of this attempt led directly to the later system rCP-67J.

)IBMケンブリッジ科学センターCP−67=rlJ
形FV(同族パーチャライジング、同族仮想計算機) CP−67(コントロール・プロクラム−67)は19
67年1月にMITリンカーン・ラボラトリとの協同で
実験的システムとして発展した。
) IBM Cambridge Science Center CP-67=rlJ
Type FV (family parturizing, family virtual computer) CP-67 (control program-67) is 19
It was developed as an experimental system in January 1967 in collaboration with MIT Lincoln Laboratory.

最初は、360/67における異種メモリー再配置(リ
ロケーション)システムを支持するためにCP−40が
わずかに変更・修正された。
Initially, CP-40 was slightly modified to support the heterogeneous memory relocation system in the 360/67.

続いてCP−67システム全体が書き直された。Subsequently, the entire CP-67 system was rewritten.

CP−67は360/67で運行できるVMTSS(バ
ーチャル・マシン・タイム・シェアリング・システム)
であって、30〜40ものユーザを支持する。
CP-67 is a VMTSS (Virtual Machine Time Sharing System) that can operate at 360/67.
It supports as many as 30-40 users.

現在のところこれは最も広く知られたバーチャル・マシ
ン・システムである。
Currently this is the most widely known virtual machine system.

CP−67に基いて作られたバーチャル・システム36
0は多数の異なるr360Jオペレーティング・システ
ムを運行するのに極めて成功している。
Virtual system 36 based on CP-67
0 has been extremely successful in running many different r360J operating systems.

このシステムは(各種形式0式% ( −・システム)、LLMPSを含む(但しこれらに制限
されない)。
This system includes (but is not limited to) (various formats 0 system), LLMPS.

バーチャル・マシンは電気通信の応用分野にすでに使用
されている。
Virtual machines are already used in telecommunications applications.

グルノープル大学は実際のマシンr 360/40Jを
バーチャル・システムI 8M360に接続してIBM
O8/ASP(附加した支持処理装置用O8)システム
を運行した。
The University of Grenople connects a real machine R 360/40J to a virtual system I 8M360 and uses IBM
The O8/ASP (O8 for Added Support Processing Equipment) system was operated.

CP−67で作ったバーチャル・マシンの基本的な制限
は少数のプログラムが正しく作動しないことである。
A fundamental limitation of virtual machines created with the CP-67 is that a small number of programs do not work properly.

正しく作動しないものとは、(1)正確な実行時間に依
存するプログラム、(2)処理時間と入出力時間の関係
に依存するプログラム、(3)正確なリアルタイム(実
時刻)に依存するプログラム、(4)自己修正チャンネ
ル・プログラムを含むプログラム、である。
Programs that do not work correctly include (1) programs that depend on accurate execution time, (2) programs that depend on the relationship between processing time and input/output time, (3) programs that depend on accurate real-time (actual time), (4) A program including a self-modifying channel program.

最初の2つの制限事項は、IBM360の同族マシンに
おける2つの異なる処理装置の間の両立性をもたらすと
き生じる制限と同じである。
The first two limitations are the same limitations that arise when creating compatibility between two different processing units in the IBM 360 family of machines.

に)バーチャル・システム360/67を支持するため
の「拡張したCP−67」=r I J形S V (セ
ルフ・パーチャライジング、自己仮想計算機) 1969年5月にアール・ゴールドベルブ(R,Gol
dberg)はバーチャル・システム360/67 (
バーチャル・リロケーションを具備している。
) "Extended CP-67" to support Virtual System 360/67
dberg) is Virtual System 360/67 (
Equipped with virtual relocation.

)の比較的能率的なソフトウェア実現機能を支持するた
めにCP−67に対するわずかな拡張を設計した。
) have designed slight enhancements to CP-67 to support a relatively efficient software implementation.

わずかな変更・修正を加えて1969年の秋にエフ・フ
ァーチク(F、Furtek)によりバーチャル・シス
テム360/67のこの設計が具体化された。
With minor changes and modifications, this design, Virtual System 360/67, was implemented by F. Furtek in the fall of 1969.

この仕事とは独立にニー・オーラッス(A、、 Aur
oux)はIBMケンブリッジ科学センターにおいてC
P−67に対する「バーチャル・システム360/67
拡張型」を設計した。
Independently of this work, Ny Aurass (A., Aur.
ox) was developed at IBM Cambridge Science Center in C
"Virtual System 360/67" for P-67
We designed an "expanded type".

この両方の設計は非常に似ており、オーラックスの作っ
たものが標準(IBM販売用)CP−67システムの一
部となった。
Both designs were very similar, and the one created by Aurax became part of the standard (IBM-sold) CP-67 system.

バーチャル・システム360/67は「24ビツト・ア
ドレスモード単一処理装置マシン」に制限されていた。
Virtual System 360/67 was limited to "24-bit address mode single processor machines."

この性能をもって各種の360/67オペレーテイング
・システム(CP−67、TSS/360を含む)が運
行に供された。
With this performance, various 360/67 operating systems (including CP-67 and TSS/360) were put into service.

すなわち、CP−67はそれ自体で運行に供された。That is, CP-67 was put into service by itself.

事実、この系列のものは少くとも4つの段階にわたって
テストされた。
In fact, this series was tested over at least four stages.

標準のバーチャル・システム360(CP−67のFで
の)におけるバーチャル・システム360/67の動作
に関した基本的な別の制限は、セグメント(segme
nt )やページテーブルの内容を動的に変更するプロ
グラムが意図したようには実行されないということであ
る。
Another fundamental limitation regarding the operation of Virtual System 360/67 in standard Virtual System 360 (in CP-67 F) is that the segment
nt) or programs that dynamically change the contents of page tables will not execute as intended.

このため結果が実際の360/67によるものと同じで
あるときとないときがある。
Therefore, the results may or may not be the same as the actual 360/67 results.

実際のマシンでは、連想レジスタの内容が結果に影響し
て結果は予想不可能となり得る。
In a real machine, the contents of the associative registers affect the results and the results can be unpredictable.

(ホ)UMMPS(ミシガン大学マルチプログラミング
・システム)によるバーチャル・システム36 o==
r n J形F■(同族バーチャライジンング、同族仮
想計算機) UMMPSによるバーチャル・システム360はr n
J形のバーチャル・マシン・システムである。
(e) Virtual system 36 by UMMPS (University of Michigan Multiprogramming System) o==
r n J-type F (homogeneous virtualizing, homogeneous virtual computer) Virtual system 360 by UMMPS is r n
It is a J-shaped virtual machine system.

UMMPSは2重(dual)処理装置360/67に
おいて運行するためにミシガン大学で作成された普通の
マルチプログラミング・システムである。
UMMPS is a common multiprogramming system created at the University of Michigan to run on dual processors 360/67.

ブリテラシュ・コロンビア大学はバーチャル・システム
360を支持するためにUMMPSをわずかに変更・修
正した。
British Columbia University has slightly changed and modified UMMPS to support Virtual System 360.

この変更・修正事項は、バーチャル・マシンをディスパ
ッチ(dispatch)するときいくつかの重要な動
作を行うための数個の追加したスーパーバイザ呼出機能
の形で行われた。
This change/modification was made in the form of several additional supervisor invocation functions to perform several important operations when dispatching a virtual machine.

バーチャル・マシンにおいて明白な例外状態が生じると
、その状態はUMMPSスーパーバイザによりユーザー
・プログラムに戻される(このユーザー・プログラムは
例えば特権命令のシミュレーションを行っていたとする
When an apparent exceptional condition occurs in the virtual machine, the condition is returned by the UMMPS supervisor to the user program (which may be simulating a privileged instruction, for example).

)バーチャル(併重)システム360とこのバーチャル
・システム360/67はこのシステムで支持されるが
、バーチャル・マシン・インタフェース以外に他のユー
ザー・インタフェース(例えばMTS「ミシガン・テク
ニカル・システム」、普通のバッチ・システム)も設は
得る。
) virtual system 360 and this virtual system 360/67 are supported by this system, but in addition to the virtual machine interface, other user interfaces (for example, MTS "Michigan Technical System", ordinary Batch system) can also be set up.

(へ)日本電気技術研究所HI TAC−8400=「
■」形F■(同族パーチャライジング、同族仮想計算機
) HITAC−8400はRCAスペクトラ70/45の
日本製のものである。
(to) Japan Electrical Technology Research Institute HI TAC-8400 = “
``Type F'' (Homologous Parturizing, Homologue Virtual Computer) HITAC-8400 is an RCA Spectra 70/45 made in Japan.

これはIBMシステム/360と同様に、メモリーマツ
ピング・システムを有しない普通の第3世代コンピュー
タである。
Like the IBM System/360, this is a regular third generation computer without a memory mapping system.

ETSS(実験的タイム・シェアリング・システム)を
デバッグする助けとしてのHITAC−8400用の新
しいタイム・シェアリング・システム(rllJ形バー
チャルマシン)は現存する販売用オペレーティング・シ
ステムrTO8/TDO8J(テープ・オペレーティン
グ・システム/テープ・ディスク・オペレーティング・
システム)に基いて作成された。
The new time sharing system (rllJ virtual machine) for the HITAC-8400 as an aid to debugging the ETSS (Experimental Time Sharing System) is compatible with the existing commercial operating system rTO8/TDO8J (tape operating system).・System/Tape Disk Operating・
system).

このバーチャル・マシン・システムはUMMPS(ミシ
ガン大学マルチプログラミング・システム)に基いて作
られたバーチャル・システム360に非常に似ている。
This virtual machine system is very similar to Virtual System 360, which is based on UMMPS (University of Michigan Multiprogramming System).

その内の1つの興味ある概念は、正確な物理的対応手段
(例えば表示スコープ)を有していない各種バーチャル
(仮想)Ilo(入出力)装置をシミュレートしようと
する試みである。
One interesting concept is the attempt to simulate various virtual Ilo (input/output) devices that do not have precise physical equivalents (eg, display scopes).

勿論バーチャル・マシンはETSS(実験的タイム・シ
ェアリング・システム)に対するスーパーバイザコード
をデバッグするためぬだけ使用され生産的仕事を運行さ
せなかったので、その目的は達成された。
Of course, the virtual machine was only used to debug the supervisor code for the ETSS (Experimental Time Sharing System) and did not perform any productive work, so that purpose was achieved.

(ト)ハードウェアを変更・修正したIBM360/3
0=rlJ形FV(同族パーチャライジング、同族仮想
計算機) バーチャル・マシン・システムは実験的システム360
/30にソフトウェアと特別のハードウェアすなわちマ
イクロプログラミングに関する変更・修正との組み合わ
せを通して構成された。
(g) IBM360/3 with hardware changed/modified
0 = rlJ type FV (family parturizing, family virtual machine) Virtual machine system is experimental system 360
/30 through a combination of software and special hardware or microprogramming changes and modifications.

バーチャル・マシンの構成を簡単化するために行イつれ
たこの変更・修正は、特殊な「モニター」モードを具体
化しかつ物理的ベージ「0」において通常の制御プログ
ラム領域から割り込み制御領域を再配置するために使用
される。
This change/modification, made to simplify the configuration of the virtual machine, embodies a special "monitor" mode and relocates the interrupt control area from the normal control program area on physical page "0". used for

このシステムはVMT S S rバーチャル・マシン
・タイム・シェアリング・システム」ではなく1つのバ
ーチャル・マシンを支持するだけである。
This system is not a "VMTS Virtual Machine Time Sharing System" and only supports one virtual machine.

更に、このシステムは自己仮想計算機(システム)では
なく、この変更した36Q/30に等価なバーチャル・
マシンを支持しない。
Furthermore, this system is not a self-virtual computer (system), but a virtual machine equivalent to this modified 36Q/30.
Do not support the machine.

この基本的な使用は、オペレーティング・システム/3
60(O8/360)、ベーシック、ディスクおよびテ
ープ・オペレーティング・システム(BO8、DO8、
TO8/360)の如き現存するオペレーティング・シ
ステムの性能をモニターし評価することにある。
This basic use is based on the operating system/3
60 (O8/360), Basic, Disk and Tape Operating System (BO8, DO8,
The aim is to monitor and evaluate the performance of existing operating systems such as TO8/360).

(力 MITプロジェクトMACPDP−10ITS
(非互換性のタイム・シェアリング・システム)−rn
J形SVHVM(自己仮想混成バーチャル・マシン) 普通の第3世代のソフトウェア技術を用いてDECPD
P−10においてバーチャル・マシンを具体化するこ吉
は不可能である。
(Power MIT Project MACPDP-10ITS
(Incompatible Time Sharing System) -rn
J-type SVHVM (Self-Virtual Hybrid Virtual Machine) DECPD using ordinary 3rd generation software technology
It is impossible to implement a virtual machine in P-10.

最近、アール・ピー・ゴールドベルブ(R,P 、 G
oldberg)およびニス・ダブりニー・ガレイ(S
、W。
Recently, R.P.Goldbelve (R, P, G
oldberg) and Niss double knee flounder (S
,W.

Ga1ley)はPDP−10に対し混成バーチャル・
マシンの概念を導入した。
Ga1ley) is a hybrid virtual
Introduced the concept of machines.

この技術により、すべての実行モード命令は解釈して実
行され、すべてのユーザーモード命令は直接的に実行さ
れる。
With this technique, all execution mode instructions are interpreted and executed, and all user mode instructions are executed directly.

MITプロジェクトMACダイナミック・モテル化コン
ピュータ・グラフィックス (Dynamic Modeling −Comput
erGrcphics) P D P−10はこの具体
化に理想的環境を提供した。
MIT Project MAC Dynamic Modeling - Compute
erGrcphics) PDP-10 provided an ideal environment for this implementation.

ITS(非互換性タイム・シェアリング・システム)は
r31形(拡張したマシン・ホストによる)VC8(バ
ーチャル・コンピュータ・システム)を支持するのに必
要な形態を提供する。
The ITS (Incompatibility Time Sharing System) provides the necessary form to support the R31 type (Extended Machine Host) VC8 (Virtual Computer System).

更にハードウェア構成は、十分なコア(記憶領域)と時
には十分なCPU(中央処理ユニット)の演算動作ザイ
クルにより高められて、HVM(混成バーチャル・マシ
ン)を運行させることが可能となる。
Furthermore, the hardware configuration is enhanced with sufficient cores (storage areas) and sometimes sufficient CPU (central processing unit) operation cycles to enable running an HVM (hybrid virtual machine).

(1力 IBM VM/370 1972年8月にIBM社はシステム/370の各種モ
デルに対するバーチャル・マシンの機構について発表し
た。
IBM VM/370 In August 1972, IBM announced a virtual machine mechanism for various models of the System/370.

このシステムは普通のソフトウェア技術を用いてバーチ
ャル・マシンを支持するCP−67の直接的な「子供」
である。
This system uses common software techniques to create a direct "child" of CP-67 that supports a virtual machine.
It is.

VM/370(バーチャル・マシン/370)は業者か
ら初めて正式に商業的に販売された実用的バーチャル・
マシン・システムである。
VM/370 (Virtual Machine/370) was the first practical virtual machine officially sold commercially by a vendor.
It is a machine system.

(B−4)従来の仮想マシンの問題点 極めて初期のバーチャル・マシンは、バーチャル・マシ
ン・モニター(VMM)がバーチャル・マシンの処理装
置状態、主メモリーおよびl10(入出力)動作を制御
するという特徴を有していた。
(B-4) Problems with conventional virtual machines In the very early days of virtual machines, a virtual machine monitor (VMM) controlled the state of the virtual machine's processing unit, main memory, and l10 (input/output) operations. It had characteristics.

簡単に述べれば、初期のVMM(バーチャル・マシン・
モニター)はすべてのプログラムを非特権モードで運行
(遂行)したので、バーチャル・マシンで実行している
特権ソフトウェア核(Software nucleu
s)は全く特権モードに進入し得ないと共に全システム
に対し非制限的アクセスをすることもできず、従ってV
MM自体またはシステム内の他のバーチャル・マシンと
干渉をもつことがあった。
Simply put, the early VMM (virtual machine)
Since the monitor ran all programs in unprivileged mode, the privileged software nucleus running in the virtual machine
s) cannot enter any privileged mode and cannot have unrestricted access to the entire system, so V
It could have interference with the MM itself or with other virtual machines in the system.

更にこれら初期のVMMは通常「ページング技法」を介
して主メモリーの「マツピンク(mapping)写像
」を行ない、常にすべてのl10(入出力)動作を解釈
的に実行していた。
Additionally, these early VMMs typically performed "pine-pink mapping" of main memory through "paging techniques" and always performed all I10 (input/output) operations interpretively.

このためにこれら初期のバーチャル・マシンは、処理装
置状態を変更または間会わせ得るあるいはI10動作を
開始し得るすべての命令をトラップ(捕捉)する性能を
有しかつ一種の再構成(メモリーのりロケーション)機
能を具備した計算機システムにおいてのみ具体化するこ
とができた。
To this end, these early virtual machines had the ability to trap all instructions that could change or interrupt processor state or initiate an I10 operation, and a type of reconfiguration (memory location). ) could only be realized in a computer system equipped with this function.

例えばCP−67(コントロール・プログラム−67)
の如きいくつかの初期のVMMはページング機能付き計
算機システムにおいて具体化される必要があったが、そ
れ自体で「ページング型」バーチャル・マシンを支持す
ることができず、したがってその作成したバーチャル・
マシンにおいて運行することができなかった。
For example, CP-67 (control program-67)
Some early VMMs, such as the
The machine could not be operated.

この「再帰能力(recursive capabi
1ity)Jの不足のためにVMMのテストと開発は使
用される処理装置において行う必要かぁ−)た。
This “recursive capacity”
1ity) Due to the lack of J, testing and development of VMM must be done on the processing device used.

この困難を克服しより高度の論理的完全性を満足するた
めに、CP−67は再帰的に運行され得るように変更・
修正された。
To overcome this difficulty and satisfy a higher degree of logical completeness, CP-67 was modified so that it could be operated recursively.
Modified.

このためには、VMM自体で行われる追加の「ページン
グ」動作を取扱うために「2重のマツピング動作」を効
果的に遂行することが必要であった。
This required effectively performing a "double mapping operation" to handle the additional "paging" operations performed on the VMM itself.

このため、ページング型バーチャル・マシンにおいてプ
ロセスを運行するためには、プロセスの発生したアドレ
スAを最初にバーチャル・マシンのページ・テーブルに
よりバーチャル・メモリー・アドレスA′にマンピンク
(写像)シ、次にこのXをVMMのページ・テーブルに
より実(recl)アドレスA“にマツピングすること
が必要である。
Therefore, in order to run a process in a paging virtual machine, the address A where the process occurred is first mapped to the virtual memory address A' using the page table of the virtual machine, and then It is necessary to map this X to the real (recl) address A" by the page table of the VMM.

この2重のマツピング動作を効果的に遂行するために、
VMMソフトウェアは(バーチャル・プロセス・アドレ
スAを実アドレスA“にマツピングするところの)合成
ページ・テーブルを構成し、このマツプを用いてアドレ
ス翻訳ハードウェアを制御する。
In order to effectively perform this double mapping operation,
The VMM software constructs a composite page table (which maps virtual process address A to real address A") and uses this map to control address translation hardware.

VMMがメモリーからページを転送するときは、最初に
それ自体のページ・テーブルを変更し次に合成マツプを
再計算しなければならない。
When the VMM transfers a page from memory, it must first modify its own page table and then recompute the composite map.

同様に、特権ソフトウェア核がバーチャル・マシンのペ
ージ・テーブルを変更すれば、VMMR:、合成マツプ
が再計算され得るように通知しなければならない。
Similarly, if a privileged software kernel modifies a virtual machine's page table, it must be notified so that the VMMR:composite map can be recalculated.

バーチャル・マシンのページテーブルが通常のメモリー
ロケーションに記憶されているので、テーブルを参照す
る命令は必ずしも■■によりトラップされない。
Because the virtual machine's page table is stored in normal memory locations, instructions that reference the table are not necessarily trapped by ■■.

このためこの変更・はVMMにより検出されないことに
なり、正しい動作は保証され得ない。
Therefore, this change will not be detected by the VMM, and correct operation cannot be guaranteed.

拡張インタフェースにおいて運行するr II J形バ
ーチャル・マシンは一般には、ベア(素面)マシンにお
いて直接運行するVMMより構成が容易である。
An r II J virtual machine running on an extended interface is generally easier to configure than a VMM running directly on a bare machine.

その理由は、Iloの如き複雑な演算を実行するときV
MMが拡張マシンの命令レパートリイを利用することが
できるからである。
The reason is that when performing complex operations such as Ilo, V
This is because the MM can utilize the instruction repertoire of the extended machine.

更に、VMMは拡張マシンのメモリー管理機能(ページ
ング機能も含み得る。
In addition, the VMM may also include memory management functions (paging functions) for the extended machine.

)とそのファイル・システムの利点を利用し得る。) and its file system advantages.

「■」形バーチャル・マシンは、UMMPS(ミシガン
大学マルチプログラミング・システム)オペレーティン
グ・システムにより計画された拡張マシン・インターフ
ェースに対して構成された。
The "■" virtual machine was configured for the extended machine interface planned by the UMMPS (University of Michigan Multiprogramming System) operating system.

上述したようにUMMPSはIBMモデル67において
運行し、したがって、UMMPSのFで運行するVMM
は、CP−67の行うと同じ処理装置状態の「マツプン
グ」機能を利用することができる。
As mentioned above, UMMPS operates on the IBM Model 67 and therefore VMM operates on the F of UMMPS.
can utilize the same processor state "mapping" function that the CP-67 does.

しかしながら、バーチャル・マシンの動作を開始させる
VMMの命令は、バーチャル・マシンの発生した引続く
特権命令トラップが直接的に作動されるべきでなくて適
切な解釈のためにVMMを参照すべきであることを、U
MMPSに知らせなければならない。
However, a VMM instruction that initiates a virtual machine operation should not cause subsequent privileged instruction traps generated in the virtual machine to be triggered directly, but should refer to the VMM for proper interpretation. That, U
MMPS must be notified.

更に、バーチャル・マシンの動作を開始させる命令は、
新しいアドレス・スペースが使用されたことを反映する
ようにページ・テーブルを変更(更新)するようにUM
MPSに指令する。
Furthermore, the instruction to start the operation of the virtual machine is
UM to change (update) the page table to reflect that the new address space has been used
Command the MPS.

作成されるバーチャル・マシンがぺ−ジ化されるならば
、バーチャル・マシンのメモリー内に現われるページ・
テーブルを用いて結果テーブルを構成することが必要で
ある。
If the virtual machine being created is paged, the pages that appear in the virtual machine's memory
It is necessary to construct the result table using tables.

この動作はCP−67のFでページング型バーチャル・
マシンを作ることに完全に相似である。
This operation is performed by paging type virtual in F of CP-67.
It's completely analogous to building a machine.

元(7)UMMPS r II J形バーチャル・マシ
ンにおけるI10演算は、チャンネル・プログラム実行
を開始させた命令をトラップ(捕捉)した後、UMMP
Sが制御をVMMに転送して取扱われた。
The I10 operation in the original (7) UMMPS r II J virtual machine traps the instruction that started the channel program execution, and then
S transferred control to the VMM for handling.

VMMは、必要ならバーチャル・マシンのページ・マツ
プを適用し次に一定のりロケーション(再配置)因子を
各アドレスに加算することにより、チャンネル・プログ
ラムをそのアドレス・スペースに移した。
The VMM moved the channel program into its address space by applying the virtual machine's page map if necessary and then adding a constant relocation factor to each address.

この移動の後VMMはチャンネル・プログラムを実行す
るためにUMMPSを呼出した。
After this move, the VMM called UMMPS to execute the channel program.

次にUMMPSはチャンネル・プログラムを絶対化しそ
の実行を開始させた。
UMMPS then absoluteized the channel program and started its execution.

上述した必然的オーバーヘッドに加えて、このマツピン
グ手続きは、バーチャル・マシンが自己修正(変更)チ
ャンネル・プログラムを実行することを不可能にした。
In addition to the necessary overhead mentioned above, this mapping procedure made it impossible for the virtual machine to execute self-modifying (changing) channel programs.

UMMPSバーチャル・マシン・モニター・ソフトウェ
アに対する最近の修正・変更ではこの状態で軽減できた
Recent fixes and changes to the UMMPS Virtual Machine Monitor software have alleviated this situation.

この変更・修正は、各ロケーションのバーチャル(仮想
)およびリアル(実)アドレスが同一となるように実メ
モリー内にバーチャル・マシン・メモリーを位置づけす
ることを含む。
This modification involves positioning the virtual machine memory within real memory so that the virtual and real addresses of each location are the same.

これにより、チャンネル・プログラムの絶対化が必要で
なくなり能率を改善し、同時にチャンネル・プログラム
の自己修正・変更を可能にする。
This eliminates the need for absoluteization of channel programs, improving efficiency, and at the same time allows self-correction and change of channel programs.

VMMに対しこの変更を行うとき克服しなければならな
い困難の1つは、特定のバーチャル・マシン・メモリー
・ロケーションの「写し」である実際のロケーションが
UMMPSにより既に使用されていることであった。
One of the difficulties that had to be overcome when making this change to the VMM was that the actual location, which was a "copy" of a particular virtual machine memory location, was already in use by the UMMPS.

その解決策は、ソフトウェア核0/Sがバーチャル・マ
シン・モニタVMM上で運用されるように作られるので
、はとんどのロケーションが決して使用されないように
バーチャル・メモリーの特権ソフトウェア核を単に書き
なおすことであった。
The solution is to simply rewrite the privileged software kernel in virtual memory so that most locations are never used, since the software kernel 0/S is made to run on the virtual machine monitor VMM. Was that.

バーチャル・マシン構造を作る問題に対する特異な対策
の1つは、特権状態を完全に除くという考え方に基礎を
置いている。
One unique approach to the problem of creating virtual machine structures is based on the idea of eliminating privileged states completely.

この方式の提案は、特権状態の第1のかつ実際上唯一の
機能は処理装置のアドレス・マツピング機構を保護する
ことであるという事に注目している。
The proposed scheme notes that the first and practically only function of the privileged state is to protect the address mapping mechanism of the processing unit.

アドレス・マツピング機構がベース・マシン・インタフ
ェースから除かれてソフトウェアで全然見えないように
(ソフトウェアで検出され得ないように)すると、この
機構を保護する必要がなくなり、特権状態の必要もなく
なる。
If the address mapping mechanism is removed from the base machine interface and made completely invisible to software (so that it cannot be detected by software), there is no need to protect this mechanism, and there is no need for a privileged state.

上述した単一状態の構造は再帰的バーチャル・マシン・
システムを作るのに都合が良い。
The single-state structure described above is a recursive virtual machine.
Good for creating systems.

しかしながら、このような構造に関連したベース・マシ
ン・インタフェースは特権ソフトウェア核を書くとき有
用な多数の特権を欠くことになる。
However, the base machine interface associated with such a structure lacks many privileges that are useful when writing privileged software kernels.

後期の第3世代計算機システムにある程度具備されてお
り、第4世代のシステムに具備されることになるだろう
これらの特徴には、ディスクリブタ(descr 1p
tor )に基づくメモリーのアドレス機構、保護のた
めの多層リング(レベル)、およびプロセス同期プリミ
ティブが含まれる。
These features, which were included to some extent in later 3rd generation computer systems and will be included in 4th generation systems, include the descr 1p
tor)-based memory addressing mechanism, multiple rings (levels) for protection, and process synchronization primitives.

これらのより複雑なシステムに対するバーチャル・マシ
ン構造の最近の研究は、2つの異なる形式の障害の間に
見られる重大な差違に基礎を置いている。
Recent research into virtual machine architecture for these more complex systems is based on the important differences seen between the two different types of failure.

(イタリーのペニスで行われたACMAICAインター
ナショナル・計算関係シンポジウムにおける、仮想化可
能の構造についてのニー・オー・ガブリアルディ(U、
0.Gagl 1ardi)とアール・ピー・ゴールド
ベルブ(R,P、Goldberg)の提案の差違。
(Nie O. Gabriardi on the structure of virtualizability at the ACMAICA International Computational Symposium in Penis, Italy)
0. Differences between the proposals of R.P.Gagl 1ardi) and R.P.Goldberg.

)第1の形式は、特@/非特権・状態、アドレス・マツ
ピング・テーブル等の如きベース・マシン・インタフェ
ースのソフトウェアで可視(検出可能)の特権に関連し
ている。
) The first type relates to software-visible (detectable) privileges of the base machine interface, such as special@/unprivileged states, address mapping tables, etc.

これらの障害はそのインターフェースで運行する特権ソ
フトウェア核により取扱われる。
These faults are handled by a privileged software core running on that interface.

第2の形式の障害はバーチャル・マシン・システムにお
いてのみ現われ、バーチャル・マシンにおいては利用可
能であるが実システムにおいては第1用できないリソー
ス(資源)(例えば実メモリー内でないバーチャル・マ
シン・メモリー・ロケーション)をVMM(バーチャル
・マシン・モニター)力保持しあるいは参照しようとす
るリソース・マツプをプロセスが変更しようとするとき
発生される。
The second type of failure appears only in virtual machine systems and includes resources that are available in the virtual machine but unavailable in the real system (e.g. virtual machine memory that is not in real memory). Occurs when a process attempts to change a resource map that maintains or references a VMM (virtual machine monitor) location.

これら障害はVMMによってだけ取扱われ、バーチャル
・マシン自体には完全に見えない(検出できない)。
These failures are handled only by the VMM and are completely invisible (undetectable) to the virtual machine itself.

利用不能な実リソースを参照して生じる障害はこの文で
は明確には識別されなかった。
Failures that result from references to unavailable real resources were not explicitly identified in this sentence.

本願で引用している差違はゴールドベルブによるあとか
らの研究に基いでいる。
The differences cited in this application are based on subsequent research by Goldberb.

(バーバード大学におけるエンジニアリングおよび応用
物理の分会[バーチャル・コンピュータ・システムに対
する構造基本」) 普通の構造が前者の形式の障害だけを支持するので、普
通のVMM(バーチャル・マシン・モニター)は両形式
の障害を1つの機構にマツピングするように仕向けられ
る。
(Department of Engineering and Applied Physics at the University of Harvard [Structural Fundamentals for Virtual Computer Systems]) A normal VMM (Virtual Machine Monitor) supports both types of failures, since the normal structure supports only the former type of failure. Enables mapping of failures to one mechanism.

すでに述べたように、これは、すべてのバーチャル・マ
シン・プロセスを非特権モードで運行しすべての障害を
VMMに対して指向することにより、かつVMMが第1
の形式のすべての障害をバーチャル・マシンの特権ソフ
トウェア核に反映することにより実施される3この状況
に対する明らかな改善は、両形式の障害を認識し支持す
る構造を作ることにより実現され得る。
As mentioned earlier, this is done by running all virtual machine processes in unprivileged mode and directing all failures to the VMM, and the VMM
A clear improvement to this situation can be realized by creating structures that recognize and support both types of failures.

同時代のコンピュータ・システムにおいてはほとんどマ
シン・システムは作らなかったし、現在のコンピュータ
・システムの大部分はバーチャル・マシンを支持せずま
た支持することもできない。
Few contemporary computer systems created machine systems, and most current computer systems do not and cannot support virtual machines.

現在動作する少数のバーチャル・マシン、例えばCP−
67、はその不適切な構造により不便で不都合な技術を
利用している。
A small number of virtual machines are currently running, e.g. CP-
No. 67 utilizes inconvenient and inconvenient technology due to its inappropriate structure.

バーチャル・マシンに対し特別に設計されたコンピュー
タ構造が提案されたとき、それらは2つの基本的弱点を
有していた。
When computer architectures specifically designed for virtual machines were proposed, they had two fundamental weaknesses.

すなわち、バーチャル・マシンにおいて現代の複雑なオ
ペレーティング・システムを直接に支持し得ないか、バ
ーチャル・マシン・サポートに関連した従来の不便と重
大なソフトウェア介入によるオーバーヘッドのすべてを
避けることができなかった。
That is, it is not possible to directly support modern complex operating systems in virtual machines or avoid all of the traditional inconveniences and significant software intervention overhead associated with virtual machine support.

必要なのは、ディスクリブタ(descriptor)
を基準としたメモリーアドレス方式、保護用の多層リン
グ、およびセマフォ(semaphore 、典型的第
4世代コンピュータ・システムにおけるプロセス間通信
手段)のようなプロセス同期プリミティブ(primi
tive 、擬命令呼出し等)等を含むところの、現存
する普通のコンピュータ・システムまたは第4世代のコ
ンピュータ・システムにおいて具体化され得るバーチャ
ル・マシンの案(構想)である。
What you need is a descriptor
A memory addressing scheme based on
tive, pseudo-instruction calls, etc.), which can be implemented in existing conventional computer systems or fourth generation computer systems.

更に、これらバーチャル・マシンの構想は比較的少しの
ハードウェア/ファームウェアの変更・修正を行うだけ
で具体化できるものが良い。
Furthermore, it is preferable that these virtual machine concepts can be realized with relatively small changes and modifications to the hardware/firmware.

(上述した内容は、ジエイ・ピー・ブゼン(J。(The above content is based on G.P. Buzen (J.

P−Buzen)およびニー・オー・ガブリアルディ(
U 、 0 、 Gagl 1ardi )の「バーチ
ャル・マシンの構造の評価」と上述したゴールドベルブ
(R,P。
P-Buzen) and N. O. Gabrieldi (
"Evaluation of the structure of virtual machines" by U., 0, Gagl 1ardi) and Goldberb (R, P.) mentioned above.

Goldbeng) の「バーチャル・コンピュータ
・システムの構造原理」の抜草である。
Goldbeng)'s ``Structural Principles of Virtual Computer Systems''.

(C)本発明の目的 本発明の主目的は、改良したバーチャル・マシンを提供
することである。
(C) OBJECTS OF THE INVENTION The main object of the invention is to provide an improved virtual machine.

本発明の他の主目的は、バーチャル・マシンにおいてr
Mul ties j の如き現代の複雑なオペレー
ティング・システムを直接支持し得るバーチャル・マシ
ンを提供することである。
Another main object of the present invention is to
The objective is to provide a virtual machine that can directly support modern complex operating systems such as Multis.

本発明の他の主目的は、重大なVMM(バーチャル・マ
シン・モニター)ソフトウェアのオーバーヘッドの不便
さとそれによる時間を常くようにしたバーチャル・マシ
ンを提供することである。
Another main object of the present invention is to provide a virtual machine that eliminates the inconvenience and time associated with significant VMM (Virtual Machine Monitor) software overhead.

本発明の他の主目的は、現存するコンピュータ・システ
ムに加え得る改良したバーチャル・マシンを提供するこ
とである。
Another main object of the invention is to provide an improved virtual machine that can be added to existing computer systems.

本発明の他の目的は、比較的少しのハードウェア/ファ
ームウェアの変更・修正を行うだけで現存のコンピュー
タ・システムで具体化できるバーチャル・マシンを提供
することである。
Another object of the present invention is to provide a virtual machine that can be implemented in existing computer systems with relatively few hardware/firmware changes/modifications.

本発明の他の目的は、プロセスをバーチャル・マシンに
おいて運行するために用いなければならない各種のリソ
ースマツプ(資源マツプ)をハードウェアおよびファー
ムウェアにより動的に構成するようになってハードウェ
ア・パーチャライザ(仮想化装置)を提供することであ
る。
Another object of the present invention is to dynamically configure various resource maps that must be used to run a process in a virtual machine by hardware and firmware, so that a hardware partializer can be used. (virtualization device).

本発明の他の目的は、改良したバーチャル・マシンを構
成するのに使用するハードウェア・パーチャライザを提
供することである。
Another object of the invention is to provide a hardware partializer for use in configuring improved virtual machines.

本発明の他の目的は、バーチャル・リソース名を実すソ
ース名に対応させる「fマツプ」とプロセス名をリソー
ス名に対応させる「φマツプ」から成る「合成fおよび
φマツプ」の丁でプロセスをバーチャル・コンピュータ
・マシンにおいて運行させるためのハードウェア・パー
チャライザを提供することである。
Another object of the present invention is to process processes using a composite f and φ map consisting of an ``f map'' that maps virtual resource names to actual source names, and a ``φ map'' that maps process names to resource names. An object of the present invention is to provide a hardware partializer for running a computer on a virtual computer machine.

本発明の他の目的は、異なるφマツプに適用可能であり
更にφマツプに関係なしにコンピュータ・システムに適
用可能なハードウェア・パーチャライザを提供すること
である。
Another object of the present invention is to provide a hardware partializer that is applicable to different φ maps and is also applicable to computer systems regardless of the φ map.

本発明の他の目的は、広い範囲の各種のfマツプに適用
できるところのバーチャル・コンピュータ・システムに
おいてプロセスを運行するハードウェア・パーチャライ
ザを提供することである。
Another object of the present invention is to provide a hardware partializer for running processes in a virtual computer system that can be applied to a wide variety of f-maps.

本発明の他の目的は、再帰的に改良したバーチャル・マ
シンを運行できる機構を提供することである。
Another object of the invention is to provide a mechanism by which recursively improved virtual machines can be run.

本発明の他の目的は、作動中のバーチャル・マシンを認
識(1dentifier)レジスタで表示しておいて
再帰的バーチャル・マシンを運行する/’%−ドウエア
・パーチャライザを提供することである。
Another object of the present invention is to provide a /'%-doware partializer for running a recursive virtual machine while indicating the active virtual machine with a 1 dentifier register.

本発明の他の目的は、バーチャル・マシン障害を適切な
バーチャル・マシン・モニター(他のバーチャル・マシ
ンを知らずにあるいはバーチャル・マシンで運行するソ
フトウェアを知らずに障害を取扱う。
Another object of the present invention is to handle virtual machine failures with appropriate virtual machine monitors (without knowing other virtual machines or software running on the virtual machines).

)に直接通知して再起的バーチャル・マシンを運行する
ハードウェア・パーチャライザを提供することである。
) to provide a hardware partializer that runs a recursive virtual machine by directly notifying the virtual machine.

本発明の他の目的は、特殊なハードウェア命令により作
動されるようになった再帰的(recurs 1ve)
バーチャル・マシンを運行するハードウェア・パーチャ
ライザを提供することである。
Another object of the invention is to provide a recursive system operated by special hardware instructions.
The purpose of the present invention is to provide a hardware partializer for running virtual machines.

本発明の他の目的は、バーチャル・マシンのサブツ’)
(subtree、副系列)が障害を起したときブ
ランチ(分岐)に沿った任意の中間のバーチャル・マシ
ンを知らずに適切なバーチャル・マシンが再作動されか
つバーチャル・マシンがハードウェア命令により作動さ
れるようになった、再帰的バーチャル・マシン構造を運
行するハードウェア・パーチャライザを提供することで
ある。
Another object of the present invention is to
(subtree) fails, the appropriate virtual machine is reactivated without knowing any intermediate virtual machines along the branch, and the virtual machine is activated by hardware instructions. The purpose of the present invention is to provide a hardware partializer for running recursive virtual machine structures.

本発明の他の目的は、再帰的fマツプがバーチャル・リ
ソース名のレベルを実すソース名にかつφマツプがプロ
セス名をリソース名に対応させるようにした両マツプの
合成再帰fマツプおよびφマツプを基にしてプロセスを
バーチャル・コンピュータ・システムにおいて運行する
ハードウェア・パーチャライザを提供することである。
Another object of the present invention is to create a composite recursive f-map and a φ-map in which the recursive f-map maps virtual resource name levels to source names and the φ-map maps process names to resource names. An object of the present invention is to provide a hardware partializer for running processes in a virtual computer system based on the following.

本発明の他の目的は、パーチャルーマシンにおいて多数
のφマツプを運行できるハードウェア・パーチャライザ
を提供することである。
Another object of the present invention is to provide a hardware partializer that can run multiple φ maps in a partial room machine.

本発明の他の目的は、異なる内部装備(interio
rdecor差有した複数のバーチャル・マシンを運行
するハードウェア・パーチャライザを提供することであ
る。
Another object of the invention is to
An object of the present invention is to provide a hardware partializer for running multiple virtual machines with rdecor differences.

本発明の他の目的は、VMM(バーチャル・マシン・モ
ニター)ソフトウェアの介入なしに実行中のバーチャル
・マシンにおけるすべてのプロセス例外(except
ion )を取扱うハードウェア・パーチャライザを
提供することである。
Another object of the present invention is to detect all process exceptions in a running virtual machine without the intervention of VMM (Virtual Machine Monitor) software.
ion).

(D)本発明の要約 ハネイウエル・シリーズ6000(Honeywell
Series 6000 )の如き現存のコンピュー
タ・システムにおいて具体化できるバーチャル・マシン
は、合成fおよびφマツプのFでバーチャル・コンピュ
ータ・マシン上でプロセスを運行スるハードウェア・パ
ーチャライザ(仮想化装置)を具備する。
(D) Summary of the Invention Honeywell Series 6000 (Honeywell Series 6000)
A virtual machine, which can be implemented in an existing computer system such as the Series 6000, uses a hardware partializer (virtualization device) that runs a process on a virtual computer machine with a composite f and φ map F. Be equipped.

バーチャル・マシンにおいて運行するオペレーティング
・システム・ソフトウェアに見える(で検出できる)マ
ツプを表わす「φマツプ」はプロセス名をリソース名に
対応させる。
A ``φ map'' that represents a map visible to (and detectable by) operating system software running in a virtual machine maps process names to resource names.

バーチャル・マシンにおいて運行しているすべてのソフ
トウェアにとって見えない(検出できない)マツプを表
わすfマツプは、バーチャル・リソース名を実すソース
名または他のバーチャル・リソース名に対応させると共
に、いくつかの再帰レベルを有し得る。
The f-map, which represents a map that is invisible (undetectable) to all software running in a virtual machine, allows virtual resource names to correspond to real source names or other virtual resource names, and does some recursion. It can have levels.

φマツプはレベル内マツプであって1つのレベル内の相
互関係を表わし、fマツプはレベル間マツプであってバ
ーチャル・マシンの2つの隣接したレベルのリソースの
間の相互関係を規定する。
The φ map is an intralevel map, representing the interrelationships within one level, and the f map is an interlevel map, defining the interrelationships between resources at two adjacent levels of a virtual machine.

φマツプは再帰的fマツプと合成され一般的合成マツプ
を作る。
The φ map is combined with a recursive f map to create a general composite map.

ハードウェア・パーチャライザは、fマツプを表わすた
めにデータ・ベース(共用データ群)を使用し、fマツ
プを運行させる命令を提供し、運行中のバーチャル・マ
シンを識別する手段を提供し、バーチャル・マシン内の
障害を取扱う機構を提供する。
A hardware partializer uses a database to represent the f-map, provides instructions for running the f-map, provides a means to identify the virtual machines in operation, and・Provides a mechanism for handling failures within the machine.

ハードウェア・パーチャライザは、VMM(バーチャル
・マシン・モニター)ソフトウェアの介入なしに実行中
のバーチャル・マシン内ですべてのプロセス例外(割込
み)を直接的に取扱う(処理する)ことを許す。
A hardware partializer allows all process exceptions (interrupts) to be handled directly within a running virtual machine without the intervention of VMM (virtual machine monitor) software.

バーチャル・マシンで発生したすべてのリソース障害(
VM障害、パーチャミル・マシン障害)は、(再起レベ
ルに関係なく)バーチャル・マシンにおけるプロセスを
知ることすく適切ナバーチャル・マシン・モニター(V
MM)へ送られる。
All resource failures (
VM failures (VM failures, perchamill machine failures) can be detected using the appropriate Virtual Machine Monitor (V
MM).

(E)本発明に関する一般的説明 バーチャル・コンピュータ・マシンの概念ハ「電子計算
機システム」の水平線に現われたばかりであり、計算機
の分野における技術者のほんの少数にしかまだ理解され
ていない。
(E) GENERAL DESCRIPTION OF THE INVENTION The concept of virtual computer machines has just appeared on the horizon of "electronic computer systems" and is still understood by only a small minority of engineers in the computing field.

本発明が十分に理解され通常の計算機技術者により容易
に具体化されるためには、多少従来の技術を調べるのが
有益であろう。
In order for the present invention to be fully understood and easily implemented by one of ordinary computer engineering, it may be beneficial to review some of the prior art.

しかしながら本発明の内容が十分に理解されるためには
、バーチャル・マシンにおいて実行するプロセスにより
リソースのマツピングおよびアドレス機能を表わす本発
明のモデルを展開することにより、好適な実施例の説明
への導入を行うのも有益であろう。
However, in order for the subject matter of the present invention to be fully understood, an introduction to the description of the preferred embodiment is provided by developing a model of the present invention that represents resource mapping and addressing functions by processes executing in virtual machines. It would also be beneficial to do so.

更に、バーチャル・マシンの構造原理を導くためには、
バーチャル・マシンにおけるプロセスの実行を表わすモ
デルを与えるのが好ましいであろう。
Furthermore, in order to derive the structural principle of the virtual machine,
It may be preferable to provide a model that represents the execution of a process in a virtual machine.

この原理なるものはミニコンピユータ、現用されている
第3世代の汎用システム、更に未来■おそらく第4世代
の)マシンまでの広い範囲の計算機システムに適用可能
であるので、これらすべてのシステムの共通点に結びつ
くモデルを提供することが必要であろう。
This principle can be applied to a wide range of computer systems, from minicomputers to current 3rd generation general-purpose systems, and even future (perhaps 4th generation) machines, so all these systems have something in common. It will be necessary to provide a model that connects the

このモデルは述べようとするマシンのソフトウェアに可
視の特定のマツプ構造に左右されるべきではない。
This model should not depend on the particular map structure visible to the software of the machine being described.

メモリー・リロケーション(メモリー再配置)あるいは
スーパバイザ(監視)状態等の形態は、現存するシステ
ムの特徴であるが、バーチャル・マシンであるかないか
に関係なく用いられる。
Forms such as memory relocation or supervisory states are features of existing systems, whether or not they are virtual machines.

バーチャル・マシンを述べるに当り、すべてのバーチャ
ル・コンピュータ・システムに共通の記述法を用いて異
なった独立した「マツピング」構造を規定する。
In describing virtual machines, we use a notation common to all virtual computer systems to define different and independent "mapping" structures.

統一的なテーマは、バーチャル・マシンの構造と一群の
「バーチャル・リソース」の概念である。
The unifying theme is the architecture of virtual machines and the concept of a set of "virtual resources."

例えばバーチャル・マシンにおける主メモリーの大きさ
の如きリソース(資源)はメモリー・リロケーション(
再配置)等の機能を有した特定のバーチャル処理装置形
式に関係なくすべてのバーチャル・マシンの特徴である
For example, resources such as the size of main memory in a virtual machine can be controlled by memory relocation (
It is a feature of all virtual machines, regardless of the particular virtual processing device type, that they have capabilities such as relocation (relocation).

したがって主眼点は、バーチャル・マシン機構における
リソースと実(ホスト)マシン機構におけるリソースと
の間の関係である。
The focus is therefore on the relationship between resources in the virtual machine fabric and resources in the real (host) machine fabric.

この関係が十分に理解された後、任意の追加のマツピン
グ構造によりもたらされる複雑さについて述べる。
Once this relationship is fully understood, we address the complexity introduced by any additional mapping structure.

(イ) リソース・マツプ バーチャル′マシン・リソース・マツピング(写1m
)のモデルは、バーチャル・マシン構成に存在するリソ
ース集合(set) V−V。
(b) Resource map virtual 'machine resource mapping (photo 1m)
) is a model for resource sets V-V that exist in a virtual machine configuration.

、■1.・・・・・・・・・、Vm)と実(ホスト)マ
シン構成に存在するリソース集合 R−(rO+ rl + ・・”・・”・+ r n)
を規定することにより展開される。
, ■1.・・・・・・・・・, Vm) and the resource set R-(rO+ rl + ・・”・・”・+ r n) existing in the real (host) machine configuration
It is developed by specifying the

(実およびバーチャルのリソース・スペース(lu域)
は共に図面においては正方形で表わされる。
(real and virtual resource space (lu area)
Both are represented by squares in the drawings.

)集合■およびRは全部の主メモリー名、アドレス可能
処理装置レジスタ、I10装置、等を含む、。
) Sets ■ and R contain all main memory names, addressable processor registers, I10 devices, etc.

しかしながら以トの説明の簡単にするために、すべての
リソース化をそれらがメモリー名(すなわち、アドレス
)であるとして取扱う。
However, for ease of explanation below, we will treat all resourceizations as if they were memory names (ie, addresses).

メモリーロケーションがしiえばDECPDP−10の
如き処理レジスタやDECPDP−11の如きI10装
置等の他のリソース化を参照するために使用できるので
、すべてのリソース化をメモリー名として取扱っても一
般性は失われない。
Since a memory location can then be used to refer to other resourceizations such as processing registers such as DECPDP-10 or I10 devices such as DECPDP-11, it is not general enough to treat all resourceizations as memory names. not lost.

バーチャル名と実(リソース)名の間に「先だって」対
応関係が仮定されないので、バーチャル・マシンの実行
中にバーチャル名を実名に対応させる手法を導入しなけ
ればならない。
Since no correspondence is assumed ``a priori'' between virtual names and real (resource) names, a method must be introduced to map virtual names to real names while the virtual machine is running.

結局、各瞬時に対し次の関数が規定される。Eventually, for each instant the following function is defined:

f:■→RU(t) ここでRはシステムの実リソースの集合であり、tはト
ラップまたは障害(fault)の発生を示すイベント
((event)事象))であり、fは[R和(uni
on) tJの集合に対するバーチャル・リソースの集
合Vのリソース・マツプである。
f:■→RU(t) Here, R is a set of real resources of the system, t is an event ((event)) indicating the occurrence of a trap or fault, and f is [R sum ( uni
on) is a resource map of the set V of virtual resources for the set tJ.

したがって、yε■および2εRであれば (ここでyεVはyが集合■の元または要素であること
を表わし、2εRは2が集合Rの元であることを表わし
、すなわちyはバーチャル・リソースであり2は実リソ
ースである) 1つの集合の元を他の集合の元に関連づけるには f(y)=z・・・・・・・・・2がバーチャル名yに
対する実名であるとき。
Therefore, if yε■ and 2εR (where yεV represents that y is an element or element of the set ■, and 2εR represents that 2 is an element of the set R, that is, y is a virtual resource. 2 is a real resource) To relate the elements of one set to the elements of another set, f(y)=z... When 2 is the real name for the virtual name y.

または、=t・・・・・・・・・yが対応する実名を有
さないとき。
Or =t......when y does not have a corresponding real name.

すなわち、特定時点において、Zがバーチャル・リソー
スyに対応する実リソースであればf(y)=2であり
、yがそれに指定された対応する実リソースを有さない
ときf(い−tである。
That is, at a particular time, if Z is a real resource corresponding to virtual resource y, then f(y) = 2, and if y does not have a corresponding real resource assigned to it, then f(y - t). be.

f (y) = tでは、トラップまたは障害はリソー
ス集塵がRのマシンすなわちマシンHにおいて何んらか
の障害処理手続きにまわされる。
At f (y) = t, the trap or fault is routed to some fault handling procedure on the machine with resource collection R, ie machine H.

明瞭にするために、このイベント(手傷)は以rにおい
てVM(バーチャル・マシン)障害と称する(例外−割
込ではない)。
For clarity, this event (hand injury) is referred to hereinafter as a VM (virtual machine) failure (not an exception-interrupt).

この関数fはリソース・マツプ、バーチャル・マシン・
マツプ、またはfマツプと呼ばれる。
This function f is a resource map, a virtual machine,
It is called a map or f-map.

fマツプを設定しく通常)VM障害のとき制御を受取る
実マシンRのソフトウェアは、バーチャル・マシン・モ
ニター(VMM)と呼ばれる。
The software on the real machine R that takes control in the event of a VM failure is called the virtual machine monitor (VMM).

モデルはfマツプがページ・マツプ、リロケーション・
境界(R−8)マツプ、あるいは他の形式のものである
という要件を課さない。
In the model, f maps are page maps, relocation maps,
There is no requirement that it be a boundary (R-8) map or any other type of map.

しかしながら、バーチャル・マシンに対する関心は、バ
ーチャル・マシンが実マシンの正確な複製でありバーチ
ャル・マシンの性能が実マシンのものに匹敵し得るとい
う場合に限定される。
However, interest in virtual machines is limited to the extent that the virtual machine is an exact replica of a real machine and the performance of the virtual machine can be comparable to that of the real machine.

(ロ))再帰(recursion ) 上述のようにして作られたリソース・マツプ・モデルは
2つの隣接したレベルのバーチャル・リソースとして■
およびRを解釈することにより再帰的なもの(recu
rs ion )に直接拡張される。
(b)) Recursion The resource map model created as described above can be used as two adjacent levels of virtual resources.
and recursive ones (recu
rs ion ) directly.

このようにすることにより実際の物理的マシンはレベル
「0」であり、fマツプはレベルIn+IJからレベル
rnJへの対応を表わすことになる。
By doing this, the actual physical machine is at level "0" and the f map represents the correspondence from level In+IJ to level rnJ.

バーチャル・マシンに対する再帰性は実用の面において
極めて興味のある性能である。
Recursion for virtual machines is a very interesting feature in practical terms.

簡単な形で述べれは、バーチャル・マシンにおいて普通
のオペレーティング・システムを運行され得ると共に、
バーチャル・マシンにおいてVMM(バーチャル・マシ
ン・モニター)ソフトウェアをテストするために、少く
とも第2レベルのバーチャル・マシンを運行させ得る必
要があるということが、バーチャル・マシンの再帰性に
関する動機である。
In simple terms, a normal operating system can be run in a virtual machine, and
The motivation for virtual machine recursion is the need to be able to run at least a second level virtual machine in order to test VMM (virtual machine monitor) software in a virtual machine.

バーチャライゼション(仮想化)が再帰的でなけれは、
1つの個立したレベルのバーチャル・マシンを作成し得
るのみであり、したがって、システムにおいて通常の処
理を行わせながら、バーチャル・モード・エクセプショ
ン(バーチャル・マシン・モニター・VMM)を取扱ウ
ソフトウエアをデくラグ(誤りを取除く)することが不
可能である。
Unless virtualization is recursive,
It is possible to create only one separate level of virtual machines, and therefore it is not possible to create software that handles virtual mode exceptions (Virtual Machine Monitor, VMM) while allowing normal processing to occur in the system. It is impossible to derag (remove errors).

事実、他の動作と共にVMMをデバッグするためには、
1つのバーチャル・マシンを動作させてVMMを運行し
それにより第2レベルのバーチャル・マシンを発生する
ことが必要である。
In fact, to debug the VMM along with other operations,
It is necessary to run one virtual machine to run the VMM and thereby generate a second level virtual machine.

実際的な面から見れば必要なことは、バーチャル・マシ
ンを包含する2レベルを有した限定した再帰的性能であ
る。
From a practical standpoint, what is needed is limited recursive capability with two levels encompassing virtual machines.

この最低の能力により、1つのシステムにおいて他の動
作を行わせなからVMMソフトウェアをデバッグするこ
とが可能となる。
This minimal capability allows the VMM software to be debugged without other operations taking place in one system.

以Fの説明で、レベルrnJのバーチャル・マシンがそ
の名称にn個のシラブル(syl fable)を有し
ているという、rPL/Ijスタイルで修飾した名称の
ツリーによる名前付けの約束を用いる。
In the following discussion, we use the rPL/Ij-style naming convention of a tree of qualified names, in which a virtual machine at level rnJ has n syllables in its name.

第1d図には、再帰性能を有する本発明のバーチャル・
マシンの概略が示しである。
FIG. 1d shows the virtual virtual machine of the present invention with recursive performance.
A schematic of the machine is shown.

レベル「0」の実際のマシン(実マシン)にVMM(バ
ーチャル・マシン・モニター)が存在する。
A VMM (virtual machine monitor) exists in an actual machine at level "0".

レベル「1」には2つのバーチャル・マシンrVM1と
VM2jが存在する。
Two virtual machines rVM1 and VM2j exist at level "1".

VMIはツリー塩「1」をVM2はツリー塩「2」を有
する。
VMI has a tree salt of '1' and VM2 has a tree salt of '2'.

レベル「2」には2つのVMrVM3およびVM4Jが
存在する。
There are two VMrVM3 and VM4J at level "2".

VM3はツリー塩r2.IJをVM4はツリー塩r2.
2Jを有する。
VM3 is tree salt r2. IJ VM4 is tree salt r2.
It has 2J.

(第1d図においては、「0」レベルから順に数えて実
行中のVMの名称はr2.1.1」である。
(In FIG. 1d, the names of the VMs that are being executed, counting sequentially from the "0" level, are r2.1.1.)

)これから明らかなように、レベルrnJのバーチャル
・マシンの名称にはn個のシラブルがあり、シタ力って
、バーチャル・マシンのレベルrnJのリソースを実マ
シンに実際に対応させるにはn個のマツプを合成するこ
とが必要であることが分るであろう。
) As is clear from this, there are n syllables in the name of a virtual machine at level rnJ, and it takes n syllables to actually make the resources at level rnJ of a virtual machine correspond to the real machine. You will find it necessary to synthesize the map.

この名前付けの約束により、実行中のVMの「先祖」、
特にその「親」を一意に名付けることができる。
This naming convention ensures that the "ancestors" of the running VM,
In particular, its "parent" can be uniquely named.

したがって実行中のVMがバーチャル・マシン障害を発
生すると、ハードウェア/ファームウェアは、実行中の
VMr 2.1.I J(7)r親」であるVMr2.
IJにおいて運行中のVMMに制御を移すべきであると
結論を出せる。
Therefore, if a running VM experiences a virtual machine failure, the hardware/firmware will fail to update the running VMr 2.1. I J (7) r parent” VMr2.
It can be concluded that control should be transferred to the VMM operating at IJ.

このツリー塩はバーチャル・リソース・スぺ−スと対応
するfマツプの下添字として使用される。
This tree salt is used as a subscript of the f-map corresponding to the virtual resource space.

すなわち、各々「vl、1」およヒ「fl、1」となる
That is, they become "vl, 1" and "fl, 1", respectively.

したがって、 fl :Vl−−R(VlをRに対応づけるレベル「1
」リソース・マツプ) fl、1 :vl、1v1(Vl、1をV□を対応づ
けるレベル「2」リン ス・マツプ) これにより、レベル「2」バーチャル・リソース・マツ
フ丁y」は r2< ft、t (y) )または floft、5(y) のようにマツピングされる。
Therefore, fl :Vl−-R(level “1” which associates Vl with R
"resource map) fl, 1 :vl, 1v1 (Level "2" rinse map that associates Vl, 1 with V□) As a result, the level "2" virtual resource map y" is r2< ft, t (y) ) or float, 5(y).

これは第2a図に示しである。This is shown in Figure 2a.

なお、上記第2式の「○」は数字における普通の関数合
成演算記号である。
Note that "○" in the second equation above is an ordinary function composition operation symbol for numbers.

上記のマツプおよび第2a図は、レベル「2」からレベ
ル「1」へ更にレベル「0」すなわち実マシンへ対応づ
けを行う(マツピング機能)ために、どのようにして2
つのバーチャル・マシン・マツプflおよびfl、1が
合成(結合)されるかを示している。
The above map and Figure 2a show how to map level ``2'' to level ``1'' to level ``0'', that is, the actual machine (mapping function).
It shows whether two virtual machine maps fl and fl,1 are combined (combined).

すてにfマツプが規定されたのでバーチャル・リソース
はリアル(実)リソースまたは異なるレベルのバーチャ
ル・リソースにマツピンクされるか、障害を起こすこと
になる。
Now that the f-map has been defined, the virtual resource will be mapped to a real resource or a virtual resource at a different level, or will fail.

第2a図はバーチャル・マシン■1.1のバーチャル・
マシン・リソースをパーチャフL/7シン■1 に更に
実マシンRに(障害なしに)順にマツプングする動作、
すなわちfl(f、、1(z ) )を示している。
Figure 2a shows the virtual machine ■1.1 virtual
The operation of sequentially mapping machine resources to the perchaf L/7 thin ■1 and then to the real machine R (without any failure),
That is, fl(f,,1(z)) is shown.

上記関数f10f1.1において、2つの起こり得る障
害を次に示す。
In the above function f10f1.1, two possible failures are shown below.

(1) レベル「1」のVMMに対するレベル「2」
リソース(バーチャル・マシン)障害、すなわちり、t
(y)=t(第2b図参照)、(2)レベル「0」
(実マシン)のVMMに対するレベル「1」リソース(
バーチャル・マシン)障害、すなわちfloft、t(
y)=1(第2c図参照)、 第2b図は、存在するバーチャル・リソース・スペース
v1.1 からvl に存在しないバーチャル・リソー
ス・スペース■1ヘリソースをマツピングするとき起こ
る。
(1) Level “2” for VMM of level “1”
Resource (virtual machine) failure, i.e., t
(y) = t (see Figure 2b), (2) Level "0"
Level “1” resource for VMM (real machine) (
virtual machine) failure, i.e. float, t(
y)=1 (see Figure 2c), Figure 2b occurs when mapping resources from an existing virtual resource space v1.1 to a non-existing virtual resource space v1.

例えば■1.1 に存在すするページがvlに存在しな
いとき起こる、障害を表わしている。
For example, it represents a failure that occurs when a page that exists in 1.1 does not exist in vl.

したがってこの場合は障害rtJが生じる。Therefore, in this case, a fault rtJ occurs.

これは、ft、t (3’)=tの上の(1)形障害
(すなわちレベル「2」障害)である。
This is a type (1) failure (ie, a level "2" failure) on ft, t (3') = t.

第2c図は(2)形障害(レベル「1」障害)を示して
おり、この場合はバーチャル・スペースv1.□に存在
するリソースはバーチャル・リソース・スペース■□に
マツピングされるが実リソース・スペースRにはマツピ
ングされ得ない。
Figure 2c shows type (2) failure (level "1" failure), in which virtual space v1. Resources existing in □ are mapped to virtual resource space ■□, but cannot be mapped to real resource space R.

上記(1)形障害においては、(以下に更に詳しく述べ
る)本発明の特徴により、実マシンRにおいて運行して
いるVMM(バーチャル・マシン・モニターの知識(情
報)なしに(1)形障害における制御はvlで運行して
いるVMMへ直接移される。
In the above (1) type failure, due to the features of the present invention (described in more detail below), it is possible to detect (1) type failure without the knowledge (information) of the VMM (virtual machine monitor) running on the real machine R. Control is transferred directly to the VMM running on vl.

これは重要な工夫である。同様に、マツプf1.1が■
1 をマツピングすること(vlに対応するリソースを
見出すこと)に成功しても、マツプf1がRにマツピン
グすることに不成功であれば(Rに対応するリソースを
見出せなければ)、障害rtJにより、vlで運行して
いるVMMの知識なしに実マシンで運行しているVMM
へ制御が移される。
This is an important idea. Similarly, map f1.1 is ■
Even if mapping f1 is successful (finding a resource corresponding to vl), if mapping f1 to R is unsuccessful (unable to find a resource corresponding to R), then due to the failure rtJ. , a VMM running on a real machine without knowledge of the VMM running on vl.
Control is transferred to

再帰性能の具体化を試みたCP−67の如き従来のバー
チャル・マシンにおいては、例えばレベル「1」におい
て障害が起きると、この障害はレベル「0」を参照する
ことにより取扱われた(その理由は実際の障害を取扱う
機構が存在しなかったからである)。
In conventional virtual machines such as the CP-67, which attempted to realize recursive performance, if a failure occurred at level ``1'', this failure was handled by referring to level ``0'' (the reason for this is (This is because there was no mechanism to deal with actual failures.)

次にソフトウェアによりレベル「1」に戻された。The software then returned it to level "1".

このためソフトウェアのオーバヘッド(処理時間)が極
めて大きくなった。
As a result, software overhead (processing time) has become extremely large.

一般に合成fマツプは両方の障害を起こし得る。In general, synthetic f-maps can suffer from both failures.

しかしながら、第1の障害(レベル「2」障害)だけを
起こす「包含的マツプ」と呼ばれる類のマツプが存在す
る。
However, there is a class of maps called "inclusive maps" that cause only the first failure (level "2" failure).

再配置境界(R−B)マツプは包含的であるが、ページ
・マップハ包含的でない。
The relocation boundary (R-B) map is inclusive, but the page map is not.

包含的な場合は簡単な再帰性の具体化の可能性が暗示さ
れる。
The inclusive case implies the possibility of a simple reification of recursion.

一般的にレベルrnJ再帰性に対しては、flofl、
10・・・・・・・・・○f1.・・・・・・・・・1
0)の形でマツピングされる(対応づけの行われる)n
レベル・バーチャル名を用いる。
Generally for level rnJ recursivity, flofl,
10...○f1.・・・・・・・・・1
0) is mapped (corresponding is done) n
Use level virtual names.

(第2cl参照) このモデルは単一状態の再帰的バーチャル・マシンを述
べるとき用い得る(表■参照)。
(See 2nd cl.) This model can be used to describe a single-state recursive virtual machine (see Table ■).

(ハ)プロセス・マツプ「φ」 今上に述べたモデルはコンピュータ・システムにおける
リソースの「マツピング」だけを表わしている。
(c) Process map "φ" The model just described represents only the "mapping" of resources in a computer system.

この方式は、局所的マツピング構造を取らない例えばD
ECPDP−8の如き一定範囲のミニコンピユータのバ
ーチャライゼション(仮想化)を検討するのには十分で
ある。
This method does not take a local mapping structure, for example, D
This is sufficient to consider the virtualization of a range of minicomputers such as the ECPDP-8.

しかしながら多くの現用の(第3世代)汎用システムは
、追加の「ソフトウェアで見える(検出できる)」ハー
ドウェア・マツプを有する。
However, many current (3rd generation) general purpose systems have additional "software visible" hardware maps.

この追加構造は、簡単なものではスーパバイザ/プロブ
レム状M(IBMシステム/360)および再配置境界
(R−8)レジスタ(DECPDP−10およびハネイ
ウエル6000)があり、複雑なものとしてはセグメン
ト・ページング・リング(ハネイウエル・インホメーシ
ョン・システムのマルチツクスF Mul t ics
J )なるものがある。
These additional structures include simple supervisor/problem-like M (IBM System/360) and relocation boundary (R-8) registers (DECPDP-10 and Honeywell 6000), and more complex ones such as segment paging, Ring (Honeywell Information System's Multitics)
J) There is something.

将来の第4世代のシステムでは、マツプはおそらく更に
複雑になり、ハードウェア/ファームウェアのプロセス
・モデルを形式的に具体化したものとなろう。
In future 4th generation systems, maps will likely become even more complex and will formally embody the hardware/firmware process model.

これらハードウェア(で支持された)マツプの各々につ
いての決定的な点は、これらマツプがソフトウェアで見
える(検出できる)ことである。
The critical point about each of these hardware maps is that they are software visible (detectable).

ある種のシステムでは非特権ソフトウェアにまでこのり
視性が拡張されている。
Some systems extend this visibility to unprivileged software.

しかしながら、すべての場合マツプは特権ソフトウェア
から見ることができる。
However, in all cases the map is visible to privileged software.

典型的には、これらマシンのオペレーテイン。Typically, the operators of these machines.

グ・システムは、ユーザーのプロセスをディスパッチ(
済ませる)する前にマツプ情報を変えるであろう。
The programming system dispatches the user's process (
will change the map information before completing the process).

マツプの変更・修正は簡単な場合は処理装置モードをプ
ロブレム状態に変えることであり、複雑な場合はプロセ
ス・アドレス・。
Changing or modifying a map is simple in a simple case by changing the processing device mode to a problem state, or in a complicated case by changing the process address.

スペースをそのセグメント・テーブルを切換えて変更す
ることに当たる。
This corresponds to changing a space by switching its segment table.

しかしながらいずれの場合でも、プロセスの引続く実行
とそれによるリソースへのアクセス(呼出し)はそのと
きのローカル(局所的)マツプにより影響されるであろ
う。
However, in either case, subsequent execution of the process and its access to resources will be affected by the current local map.

したがって、バーチャル・マシンにおいてのプロセスの
運行を正しくモデル化するためには、モデルにローカル
・マンピング構造を導入しなければならない。
Therefore, in order to correctly model the operation of a process in a virtual machine, a local manipulating structure must be introduced into the model.

ソフトウェアで可視のハードウェア・マツプのモデルは
、プロセス名の集合P二(、po tpl・・・・・・
p7)をコンピュータ・システムで実行中のプロセスに
よりアドレス可能の名前の集合として定義することによ
り作られる。
The model of the hardware map visible to software is the set P2 of process names (, po tpl...
p7) as a set of names addressable by processes running on a computer system.

(第3a図および第3b図においてはプロセス・スペー
ス(プロセス空間)は円で表わしである)上述の如<R
(rQ 、 r、・・・・・・・・・、rn)を(実)
リソース名の集合とする。
(In Figures 3a and 3b, the process space is represented by a circle)
(rQ , r, ......, rn) (real)
A collection of resource names.

次に作動プロセスに対し、プロセスの実行中にプロセス
名をリソース名に関連づける仕方が与えられる。
The working process is then provided with a way to associate process names with resource names during execution of the process.

最終的に、スーパバイザ/プロブレム状態やセグメント
・テーブル等のソフトウェアで可視のハードウェア・マ
ンピング構造のすべてを用いて、各時刻に次の関数が規
定される。
Finally, using all of the software-visible hardware manipulating structures such as supervisor/problem states and segment tables, the following function is defined at each time:

φ:P→RU(e) (ここで、Rはシステムの実リソースの集合、eは例外
が起きたことを表わすイベント(手傷)、φは「R和e
」なる集合にプロセス名の集合Pを対応づけるオペレー
ティング・システムで可視のソフトウェア・マツプであ
る。
φ:P → RU(e) (Here, R is the set of real resources of the system, e is an event indicating that an exception has occurred (hand injury), and φ is "R
is a software map visible to the operating system that associates a set P of process names with a set ``.''.

)したがってもしXεP、yεRであれは (ここで、XεPはXがプロセスの集合Pの元または要
素であること、yεRはyがリソースの集合Hの元であ
ることを夫々表わしている。
) Therefore, if XεP, yεR (here, XεP represents that X is an element or element of the set P of processes, and yεR represents that y is an element of the set H of resources, respectively.

)一方の集合の元を他方の集合の元に関連づけるには、 φ(x)二y・・・−・・・・・もしyがプロセス名X
に対するリソース名である とき、 または=e・・・・・・・・・ もしXが対応するリソ
ースを有さないとき、 すなわち、yがプロセス名Xに対応する(1)リソース
であればφ(X)はyに等しく、Xが特定時点でそれに
指定された対応する(実)リソースを有さないときはφ
(x)はeに等しい。
) To relate the elements of one set to the elements of the other set, use φ(x)2 y --- If y is the process name
or = e... If X does not have a corresponding resource, that is, if y is a (1) resource corresponding to process name X, then φ( X) is equal to y, and φ if X does not have the corresponding (real) resource assigned to it at a particular time
(x) is equal to e.

φ(x)=eのときは、どれかの「例外」取扱い手続き
、おそらくはそのマシンのオペレーティング・システム
の特権手続き、に対して例外(割込み)が起こされる。
When φ(x)=e, an exception (interrupt) is raised to some "exception" handling procedure, perhaps a privileged procedure in the machine's operating system.

上述したVM(バーチャル・マシン)障害との混乱を避
けるために、プロセス・トラップを「例外」と呼ぶ。
To avoid confusion with the above-mentioned VM (virtual machine) failure, process traps are referred to as "exceptions."

関数φはプロセス・マツプあるいはφマツブト呼ばれる
The function φ is called a process map or φ map.

このプロセス・マツプなる名称はφマツプがどのような
形であろうと適用される。
This name "process map" applies regardless of the shape of the φ map.

将来の(第4世代の)システムでは、φはおそらくプロ
セスのファームウェアによる具体化を実際に表わすであ
ろうが、この必要はない。
In future (4th generation) systems, φ will probably actually represent a firmware instantiation of the process, but this need not be the case.

φについての重要な点は、レベル間マツプであるfと異
なり、φ力釦−カル(局所的)でレベル内マツプであり
再帰的マツピングのレベルと交差しないことである。
The important point about φ is that, unlike f which is an interlevel map, it is an intralevel map in the φ force button-cal (local) and does not intersect the levels of recursive mapping.

に)バーチャル・マシンの運行(f○φ)バーチャル・
マシンにおいてプロセスを運行することはバーチャル・
リソースを有した構成においてプロセスを運行すること
を意味する。
) Virtual machine operation (f○φ) Virtual machine operation
Running a process on a machine is a virtual
It means running a process in a configuration with resources.

したがって、プロセス P=(po、pl、・・・・・・・・・、p、)をバー
チャル・マシン ■−(vo、vl、・・・・・・・・・、■IT1)に
おいて運行すれは上述した如く φ:P→VU(e) ここでバーチャル・リソース名「v」はマツプのリソー
ス範囲における実すソース名に置換される。
Therefore, run the process P = (po, pl, ......, p,) on the virtual machine - (vo, vl, ......, ■IT1). As described above, φ:P→VU(e) Here, the virtual resource name "v" is replaced with the actual source name in the resource range of the map.

次にバーチャル・リソース名はマツプにより等価な実際
の名前にマツピング(対応づけ)されれすなわち f:■→R したがってプロセス名(X)は実リソースf(φ(X)
) に対応する。
Next, the virtual resource name is mapped to the equivalent real name by the map, that is, f: ■→R Therefore, the process name (X) is the real resource f(φ(X)
) corresponds to

一般にはプロセス名は(合成)マツプ f○φ: P−+RU (t )U (e )に基づき
実すソース名にマツピングされる(なお、上記記号は上
述した定義のとおりである)3この(合成)マツプは2
つの操作の1つにおいてプロセス名を実すソース名に対
応させるのに失敗し得る。
Generally, the process name is mapped to the actual source name based on the (composite) map f○φ: P−+RU (t)U (e) (the above symbols are as defined above). Synthesis) map is 2
One of the operations may fail to match a process name to an actual source name.

プロセス名「例外」(第3a図)の場合には、VMM(
バーチャル・マシン・モニター)の感知または介入なし
に、同一レベル内のオペレーティング・システムの特権
ソフトウェアに制御が移される。
In the case of the process name "Exception" (Figure 3a), VMM (
Control is transferred to privileged software of the operating system within the same level without the knowledge or intervention of the virtual machine monitor.

しかしながらバーチャル名の障害のときは、オペレーテ
ィング・システムの感知または介入なしに(第3b図)
、制御は低いレベルのバーチャル・マシンのプロセスに
移行する。
However, in the event of a virtual name failure, without operating system sensing or intervention (Figure 3b)
, control is transferred to a lower level virtual machine process.

VMMにおけるこの障害取扱いソフトウェアは実マシン
において運行する故にfマツプにとって主題ではないが
、マシンにおける他のプロセスと同じようにそのφマツ
プの主題である。
This fault handling software in the VMM is not the subject of the f-map because it runs on the real machine, but it is the subject of the φ-map just like any other process on the machine.

第3a図および第3b図には、円で示したプロセス・ス
ペース(空間)P、正方形で示したバーチャル・リソー
ス・スペース■および実リソース・スペースRが示しで
ある。
FIGS. 3a and 3b show a process space P shown as a circle, a virtual resource space ■ and a real resource space R shown as squares.

有効なマツピング機能を与えるために、プロセス・スペ
ースPにおけるプロセス名Paはバーチャル・リソース
・スペースV内の点Vaに対応され、最後に実リソース
・スペースHの点Raに対応づけられる。
To provide an effective mapping function, a process name Pa in process space P is mapped to point Va in virtual resource space V and finally to point Ra in real resource space H.

しかしながら第3a図は、バーチャル・ヌペースV内で
動作するバーチャル・マシンに制御がとどまっていると
いう「例外」eがバーチャル・スペースVに起きている
ことを示している。
However, FIG. 3a shows that an "exception" e has occurred in virtual space V, where control remains in the virtual machine running within virtual space V.

この「例外」はバーチャル・マシンの特権ソフトウェア
により取扱うためにバーチャル・マシン■の特権ソフト
ウェアに移される。
This "exception" is transferred to the virtual machine's privileged software for handling by the virtual machine's privileged software.

第3b図において「φマツピング」は点Vaに対して有
効であったが、Va(バーチャル・リソース)を失リソ
ースにマツピングするとき障害「t」が起こりこれは実
マシンRにおいて運行しているバーチャル・マシン・モ
ニターで取扱われる。
In Figure 3b, ``φ mapping'' was effective for point Va, but when mapping Va (virtual resource) to the lost resource, a failure ``t'' occurred, which caused the virtual - Handled by machine monitor.

典型的には第3a図の場合とは、rGcO8J(ハネイ
ウエル社の登録商標)オペレーテイグ・システムがバー
チャル・マシン■において運行しており、rGcO8J
の下−で非特権モードにおいて動作しているユーザー・
プログラムがオペレーティング・システムの特権命令を
使用しようと試みたときである。
Typically, in the case of Figure 3a, the rGcO8J (registered trademark of Honeywell) operating system is running in a virtual machine ■, and the rGcO8J
A user operating in unprivileged mode under
When a program attempts to use privileged instructions of the operating system.

この場合には「例外」はrGcO8Jオペレーティング
・システムにより取扱われる。
In this case the "exception" is handled by the rGcO8J operating system.

第3b図の場合に対する典型的な例は、上述した同じr
GcO8Jオペレーティング・システムのプログラムが
rGcO8Jの割当てたバーチャル・メモリー(仮想記
憶)内の主メモリーの一部を参照したがバーチャル・メ
モリーのその部分がその特定時点に主メモリーに「ない
」ことを全県した場合であり、障害が実マシンHのバー
チャル・マシン・モニターに生じる。
A typical example for the case of Figure 3b is the same r
A GcO8J operating system program references a portion of main memory in rGcO8J's allocated virtual memory, but that portion of virtual memory is not in main memory at that particular point in time. In this case, a failure occurs in the virtual machine monitor of real machine H.

この障害はRのVMMにより取扱うためにRのVMMに
送られる。
This fault is sent to the R VMM for handling by the R VMM.

φマツプは再帰的fマツプと結合されて「一般的」合成
マツプ flofl、10・・・・・・・・・○f1.1・・・
・・・・・・110ψを作る。
The φ map is combined with the recursive f map to form a "general" synthetic map flofl, 10...○f1.1...
・・・・・・Make 110ψ.

したがって再帰のレベルに関係なくバーチャル・マシン
に対しψマツプには1つの適用があり、fマツプにはn
個の適用がある。
Therefore, regardless of the level of recursion, there is one application of the ψ map to a virtual machine, and an application of the f map to n
There are several applications.

これはfマツプとφマツプを区別する定義から生じる重
要な結果である。
This is an important consequence of the definition that distinguishes between f-maps and φ-maps.

したがって複雑なφマツプと簡単なfマツプを有したシ
ステムにおいては、nレベルの再帰性を具体化すること
は容易でかつ廉価である。
Therefore, in a system with a complex φ map and a simple f map, it is easy and inexpensive to implement n-level recursion.

提出したモチ゛ルではfマツプはレベルrn十1」のリ
ソース(資源)をレベルrnJのリソースにマツピング
する。
In the submitted model, the f-map maps resources at level rn11 to resources at level rnJ.

同様に、レベルrn十1」のリソースをレベルrnJの
プロセス名にマツピングするfマツプを容易に定義する
ことができる(このプロセス名は次にレベルrnJのリ
ソース名にマツピングされる)。
Similarly, an f-map can be easily defined that maps resources at level rn1 to process names at level rnJ (which process names are then mapped to resource names at level rnJ).

この新しいfマツプは別のところで述べるrlJ形fマ
ツプから区別するために「■」形fマツプと呼ばれる。
This new f-map is called a "■"-type f-map to distinguish it from the rlJ-type f-map described elsewhere.

(ホ)モデルの解釈 モデルはバーチャル・マシンに2つの非常に異なる基本
的マツプが存在することを示すために非常に重要である
(e) Interpretation of the Model Models are very important because they show that there are two very different basic maps of virtual machines.

従来の概念はマツプを明瞭に区別しなかった。Traditional concepts did not clearly distinguish between maps.

主要な点は、fマツプとφマツプは大きく相違し異なれ
機能・目的で使用されることである。
The main point is that f-maps and φ-maps are very different and are used for different functions and purposes.

これらマツプには、特定の形式を取るべきとか所定の関
係を有さなければならないというような優先した条件は
ない。
There are no overriding conditions for these maps, such as that they must take a particular form or have certain relationships.

φマツプは実行プログラムで見えるインターフェース(
中間面)であり、fマツプはリソースにより見えるイン
ターフェースである。
φmap is an interface (
The f-map is the interface visible to the resource.

現存するコンピュータ・システムにバーチャル・マシン
を加えるために、ψマツプはすでに規定されているので
fマツプだけが加えられなけイユばならない。
To add a virtual machine to an existing computer system, only the f map must be added since the ψ map is already defined.

fマツプを再配置境界(R−B)形、ページング形、等
にするという選択は、バーチャル・マシンのリソースを
どのように使用するかて汰まる。
The choice of making the f-map relocation boundary (R-B) type, paging type, etc. depends on how the virtual machine's resources are used.

いずれにしてもfマツプは再帰的であり、ψマツプは再
帰的である必要はない。
In any case, the f-map is recursive, and the ψ-map need not be recursive.

新しいマシンが設計されるときはφマツプもfマツプも
まだ定義されていない。
When a new machine is designed, neither the φ map nor the f map has yet been defined.

φマツプはプログラマにとって見える構造を理想化する
ために選択され得るが、fマツプはシステムにおけるリ
ソースの利用を最適化するために選択され得る。
The φ map may be chosen to idealize the structure visible to the programmer, while the f map may be chosen to optimize the utilization of resources in the system.

マツプ間の別の本質的相違は、fマシンはバーチャル・
マシン間のリソース割当てのレベルを支持し他方φマツ
プは1つのバーチャル・マシン内における特権の層(リ
ング、マスター/スレーブ・モード)を確立するという
点である。
Another essential difference between maps is that f-machines are virtual
It supports levels of resource allocation between machines, while the φ map establishes layers of privilege (ring, master/slave mode) within a virtual machine.

次の表■は、上に述べたモデルを使用しあるは使用しよ
うとするバーチャル・コンピュータ・システムの特性の
比較を示している。
The following table (1) shows a comparison of the characteristics of virtual computer systems that use or are intended to use the model described above.

表Iから明らかなように、現存しあるいは提案された従
来のどのシステムも、完全に汎用のバーチャル・マシン
を直接支持しない。
As is clear from Table I, no existing or proposed prior art system directly supports a fully general-purpose virtual machine.

CP767は特異なφマツプを有するがfマツプの直接
的ハードウェア支持を行っていない。
The CP767 has a unique φ map but does not provide direct hardware support for an f map.

ロウア(Lauer)およびスノー(Snow)の方式
はfマツプの直接的ハ−ドウェア支持を行っているが普
通のφマツプ(φ=恒等)を有している。
The Lauer and Snow scheme provides direct hardware support for the f-map, but has an ordinary φ-map (φ=identity).

このためCP−67はレベルをシミュレートするために
ソフトウェアとφマツプの層相互関係を利用しなければ
ならないが、ロウアおよびスノーの場合は層をシミュレ
ートするためにソフトウェアとfマシンのレベル相反関
係を利用しなければならない。
For this reason, CP-67 must use the layer correlation between the software and the φ map to simulate the level, but in the case of Lower and Snow, the level reciprocity between the software and the f-machine is required to simulate the layer. must be used.

このためこれらシステムは一般的ではなく、個個のバー
チャル・マシンにおいて直接運行する現代のオペレーテ
ィング・システムを支持しない。
As such, these systems are uncommon and do not support modern operating systems running directly on individual virtual machines.

ガグリアルテ゛−ゴールドベルグ(Gagl iard
i−Goldberg)の「ペニス提案(Venice
Proposal)J(VP)は層およびレベルの相
互関径の支持を示唆している。
Gagliard - Goldberg
i-Goldberg)'s "Venice Proposal"
Proposal) J (VP) suggests support for layer and level correlations.

しかしながらvPはfマツプに対しハードウェア支持を
直接には提供しないので、なおソフトウェアによる介入
か必要である。
However, since vP does not directly provide hardware support for f-maps, software intervention is still required.

上記表■における■〜■の参考文献: ■ 1970年IBMシステム・ジャーナルvol 、
9A3 「バーチャル・マシン・タイムシェアリング・
システム」 ■ 1972年A、CM AlCAlンターナショナ
ル・コンピユーテイング・ミンボジウム「パーチャライ
ザプル・アーチテクチャ」 ■ 同上「スーパーバイザ状態は必要か」■ 1973
年ACM 5IGARCH−8IGOPSワークシヨ
ツプ会議「再帰的バ一チャル・マシン・アーチテクチャ
」 (F)実施例の説明 次に本発明の実施例について述べる。
References for ■ to ■ in the table ■ above: ■ 1970 IBM System Journal vol.
9A3 “Virtual Machine Time Sharing
System'' ■ 1972 A, CM AlCAl International Computing Minbosium ``Practicalizer Pull Architecture'' ■ Same as above ``Is Supervisor State Necessary?'' ■ 1973
ACM 5IGARCH-8 IGOPS Workshop Conference "Recursive Virtual Machine Architecture" (F) Description of Embodiments Next, embodiments of the present invention will be described.

(イ)ハードウェア・パーチャライザ(HV)上述した
バーチャル・マシン・モデルの現存しあるいは提案され
ているシステムを見抜くことができて、すべての普通の
コンピュータ・システムにおいてバーチャル・マシンを
具体化(実現)する自然の手段を示す。
(b) Hardware partializer (HV) A hardware partializer (HV) capable of identifying existing or proposed systems of the virtual machine model described above, and capable of materializing (realizing) virtual machines in all ordinary computer systems. ) show natural means of doing.

fマツプおよびφマツプは別個のものであり、おそらく
バーチャル・コンピュータ・システムにおいては異なる
ものであるので、各マツプは独立した構成で表わすべき
である。
Since the f-map and the φ-map are separate and possibly different in the virtual computer system, each map should be represented by an independent construct.

バーチャル・マシンにおいて運行しているプロセスがプ
ロセス名を用いてリソースを参照するときは、必要とさ
れる実すソース名は実行時点においてfマツプとφマツ
プの動的合成により得るべきである。
When a process running in a virtual machine refers to a resource using a process name, the required actual source name should be obtained by dynamic composition of the f map and the φ map at the time of execution.

更に、再帰性に関係なくかつfおよびφマツプの特定の
形式に関係なく、結果は保持されるべきである。
Furthermore, the results should hold regardless of the recursion and regardless of the particular form of the f and φ maps.

第1の実施例は一般化したものであって、第5図、第6
a図および第6b図に示した構成を有する。
The first embodiment is a generalized one, and FIGS.
It has the configuration shown in Figures a and 6b.

第2の実施例は特殊なものであって、φ=R−Bマツプ
とfニページング・マツプ(主メモリー領域において)
とを具備しく第7図に示しである。
The second embodiment is a special one, in which the φ=RB map and the f nipaging map (in the main memory area)
This is shown in FIG. 7.

)、「ハネイウエル6000Jに付加し得るものである
), “It can be added to the Honeywell 6000J.

第3の実施例は「ハネイウエル6180Jに付加し得る
ものであって、第8a図および第8b図に示すようにφ
−スゲメンテージョン・マツプと主メモリー領域におけ
るf=R−8マツプを含む。
The third embodiment can be added to the Honeywell 6180J, and as shown in FIGS. 8a and 8b, the φ
- Contains a projection map and an f=R-8 map in the main memory area.

以Fに述べるハードウェア・パーチャライザrHVJは
上述した本発明の概念を具体化する。
The hardware partializer rHVJ described below embodies the inventive concept described above.

このHVは現存するシステムの延長の一部を成し得ると
共に新しいマシンの設計の一部になり得る。
This HV can form part of an extension of an existing system and can be part of a new machine design.

(ロ)HVの設計と要件 ハードウェア・バーチャライザ丁HVJの設計には次の
点を考慮する。
(b) HV design and requirements Hardware virtualizer The following points should be considered when designing the HVJ.

(1)fを記憶するためのデータベース(共用データ) (2)fを呼出すための機構 (3)マツプ合成の機構 (4)VM(バーチャル・マシン)の障害における動作 以Fの説明においてハードウェア・パーチャライザは、
マツプ合成機能を達成するものとし、パーチャライザ自
体、支持用制御機構、再帰的バーチャル・マシンの作成
に使用する典型的な命令、および各種障害を取扱う機構
について述べる。
(1) Database for storing f (shared data) (2) Mechanism for calling f (3) Mechanism for map synthesis (4) Operation in the event of a VM (virtual machine) failure・The parturizer is
The map synthesis function will be accomplished, and the partializer itself, supporting control mechanisms, typical instructions used to create recursive virtual machines, and various failure handling mechanisms will be described.

ハネイウエル6000シリーズ、DEC PDP−10、IBMシステム/360シリーズ、等の
現存するコンピュータ・システムがある種のφマツプを
含むので、fマツプに関連した追加の構造について述べ
る。
Since existing computer systems such as the Honeywell 6000 series, DEC PDP-10, IBM Systems/360 series, etc. include some type of φ map, additional structures related to the f map will be described.

以Fにおいて、上述した4つの考慮すべき点に関連して
本発明をその実施例について説明すると共に、2つの特
殊な実施例に関してハードウェア・パーチャライザの構
造と動作について詳しく述べる。
In the following, the present invention will be described with reference to the four considerations discussed above, and the structure and operation of the hardware partializer will be detailed with respect to two specific embodiments.

Gl fを表わすためのデータベース レベルrnJのVMM(バーチャル・マシン・モニター
)は2つの隣接したレベル、すなわちレベルrn+IJ
とレベル「n」のバーチャル・マシン・リソースの間の
fマツプ相互関係を表わすデータベースを作成し保持す
る。
The VMM (virtual machine monitor) of database level rnJ to represent Gl f has two adjacent levels, namely level rn+IJ
Create and maintain a database representing f-map interrelationships between virtual machine resources at level "n" and virtual machine resources.

このデータベースは最特権ソフトウェアを含むバーチャ
ル・マシンすな4つもレベルIn+IJにとって見えな
い(検出できない)ように記憶される。
This database is stored so that it is invisible (undetectable) to level In+IJ, even the virtual machines containing the most privileged software.

経済的の理由からデータベースは主メモリーに記憶され
るものと仮定する。
For economic reasons, we assume that the database is stored in main memory.

このためfはレベ/1zrn+IJの(バーチャル)メ
モリーにハ存在しないであろうが、レベルrnJの(バ
ーチャル)メモリーには存在しなければならない。
Therefore, although f will not exist in the (virtual) memory of level /1zrn+IJ, it must exist in the (virtual) memory of level rnJ.

fマツブヲレベルrnJのメモリーに記1意スるという
1つの要件は、それにより、レベルrnJのメモリーの
始点(ROOT、基点)から「決定アルゴリズム」を適
用することによりHV(ハードウェア・パーチャライザ
)がfマツプを見出し得ることにある。
One requirement to write a memory at level rnJ is that it allows the HV (hardware partializer) to write a memory at level rnJ by applying a "decision algorithm" from the starting point (ROOT, base point) of memory at level rnJ. The purpose is to be able to find the f-map.

同一レベルの他のバーチャル・マシンに対応するfマツ
プは暗示的または明示的に与えられる。
The f-maps corresponding to other virtual machines at the same level are given implicitly or explicitly.

第4図はfマツプを明示的に示すためのブロック図であ
る。
FIG. 4 is a block diagram for explicitly showing the f-map.

すなわち第4図にはハネイウエル6000の如き典型的
コンピュータ・システムのレベルrnJバーチャル・マ
シンにおける主メモリー400がブロック図で示しであ
る。
Specifically, FIG. 4 depicts in block diagram form main memory 400 in a level rnJ virtual machine of a typical computer system such as the Honeywell 6000.

基点(ROOT)401はメモリーブロック400の内
の固定既知アドレスであって、VMTAB(バーチャル
・マシン・テーブル)ポインタ407を(他の情報と共
に)含む。
ROOT 401 is a fixed, known address within memory block 400 and includes (among other information) a VMTAB (virtual machine table) pointer 407.

このVMTABポインタ407はそのメモリーブロック
内のVMTAB(バーチャル・マシン・テーブル)40
2のロケーションを指示する。
This VMTAB pointer 407 is the VMTAB (virtual machine table) 40 in that memory block.
Indicate the location of 2.

VMTAB402はVMCB(バーチャル・マシン・コ
ントロール・ブロック)ポインタVMI〜VMKのに個
のエントリ(entry記人事項)を含む。
The VMTAB 402 includes entries for VMCB (virtual machine control block) pointers VMI to VMK.

各VMCBポインタハ各バーチャル・マシン・コントロ
ール・ブロックを指示する。
Each VMCB pointer points to a respective virtual machine control block.

例えば、VMCBポインタVMIはVMCB−1,40
3を、ポインタVM2はVMCB−2,404を夫々指
示する。
For example, VMCB pointer VMI is VMCB-1,40
3, pointer VM2 points to VMCB-2, 404, respectively.

VMCB(バーチャル・マシン・コントロール・ブロッ
ク)はバーチャル・マシンのリソースのマツピング(写
像)のための情報を提供するので、典型的にはVMCB
は、メモリーマツプ、プロセス・マツプ、■10マツフ
、バーチャル・マシンの状態情報、等のデータ・ハード
ウェア構造を含む。
The VMCB (Virtual Machine Control Block) provides information for the mapping of virtual machine resources, so typically the VMCB
includes data/hardware structures such as memory maps, process maps, 10 maps, virtual machine state information, etc.

このため基本的にはVMCBは特定のバーチャル・マシ
ンのfマツプである。
So basically the VMCB is an f-map of a particular virtual machine.

例えばVMCB−1はバーチャル・マシン「1」に対す
るfマツプであり、VMCB−2はバーチャル・マシン
「2」に対するfマツプである。
For example, VMCB-1 is the f-map for virtual machine "1" and VMCB-2 is the f-map for virtual machine "2".

VMCBの特定形状は例えばR−Bページング等の如き
実際に使用するfマツプに応じて変わる。
The specific shape of the VMCB varies depending on the f-map actually used, such as for R-B paging.

ページング方式が用いられればVMCBのメモリー・マ
ツプは典型的にページ・テーブル405.406を含む
If a paging scheme is used, the VMCB's memory map typically includes page tables 405, 406.

VMCBに保持され得る付加的情報としては、特殊な性
能、命令、その存在、不存在を表わすところのバーチャ
ル・プロセッサに関する能力情報がある。
Additional information that may be maintained in the VMCB includes capability information about the virtual processor, indicating special capabilities, instructions, their presence, or absence.

この能力ビットの例としては、科学命令群、バーチャル
・マシン命令群(再帰的)がある。
Examples of this capability bit include scientific instructions and virtual machine instructions (recursive).

再起性が支持されればVMCBは、低イレヘルのVMi
害において高いレベルのバーチャル・マシンを自動的に
再起動するための十分な命令を含む(第2C図、第5図
のブロック506〜512参照)。
If recurrence is supported, VMCB will have a low irregular VMi.
Contains sufficient instructions to automatically restart a high-level virtual machine upon failure (see blocks 506-512 of FIG. 2C and FIG. 5).

データ構造はファームウェアにとって知られており、マ
ツプ合成の操作中に自動的に行使され得ると共に、デー
タ構造はレベルrn+1jとレベルrnJの間において
相対的である。
The data structures are known to the firmware and can be automatically invoked during map synthesis operations, and the data structures are relative between levels rn+1j and rnJ.

に) fを呼出すための機構 fマツプを呼出すためにHV(ハードウェア・パーチャ
ライザ)は1つの既知のレジスタとそれを操作するため
の1つの命令を必要とする。
) Mechanism for invoking f To invoke an f map, the HV (hardware partializer) requires one known register and one instruction to manipulate it.

このレジスタはバーチャル・マシン識別レジスタ(VM
ID)、第6図の653.第1図の701、であり、そ
の時実行しているバーチャル・マシンの「ツリー名」を
含む、。
This register is the virtual machine identification register (VM
ID), 653 in FIG. 701 in FIG. 1, and includes the "tree name" of the virtual machine currently running.

VMIDは多シラブル(多音節用)レジスタであって、
そのシラブルは実すソース名を提供するために合成すべ
きfマツプのすべてを表わしている。
VMID is a multi-syllable register,
The syllable represents all of the f-maps that must be synthesized to provide the actual source name.

バーチャル・マシンをレベル「2」において運行したい
ときは、VMIDは2シラブルを含み、そのレベルにお
けるその時のバーチャル・マシンのツリー名を成してい
る。
When it is desired to run a virtual machine at level "2", the VMID contains two syllables and forms the tree name of the current virtual machine at that level.

第5図に示す命令rLVMIDJ (VMIDにロード
せよ。
The command rLVMIDJ (load into VMID) shown in FIG.

)は新しいシラブルをVMIDレジスタに付加する。) adds a new syllable to the VMID register.

したがってその時点におけるVMID内のシラブルが1
でかつVMMがバーチャル・マシン番号「3」を起動し
たいときは、LVMID命令によりVMIDレジスタラ
スその時の数に13」を付加して連鎖数r1.3Jを作
る。
Therefore, the syllable in VMID at that point is 1.
And when the VMM wants to start virtual machine number "3", it adds "13" to the current number of VMID registers using the LVMID command to create a chain number r1.3J.

VMIDレジスタ(およびLVMID命令)は次の4つ
の決定特徴を有する。
The VMID register (and LVMID instruction) has four determining characteristics:

(1)VMIDレジスタの「絶対的」内容はソフトウェ
アにより読出されずまた書込みもできない (2)実マシンのVMIDは空白表示すなわち「零」を
含む (3)LVMID命令だけがVMIDにシラブルを付加
できる (4)VM障害(またはバーチャル・マシンの動作を終
力させる命令)だけがVMIDからシラブルを除く。
(1) The "absolute" contents of the VMID register cannot be read or written by software. (2) The VMID of the real machine contains a blank representation or "zero." (3) Only the LVMID instruction can append a syllable to the VMID. (4) Only VM failures (or instructions that terminate virtual machine operation) remove the syllable from the VMID.

第5図はLVMID命令のフローチャートであって、マ
ツプの特定の選択に関した具体化部分を除いてLVMI
D命令の演算を表わしている。
FIG. 5 is a flowchart of the LVMID command, except for the implementation part related to the specific selection of the map.
It represents the operation of the D instruction.

第5図において、LVMID命令がr501Jにおいて
呼出され、r502Jにおいてバーチャル・マシン(V
M)能力が存在するかどうかの決定が行われる。
In FIG. 5, the LVMID instruction is called at r501J and the virtual machine (V
M) A determination is made whether a capability exists.

すなわちそのマシンはバーチャル・マシンを作ることを
許されているかどうか決定される。
That is, it is determined whether the machine is allowed to create virtual machines.

バーチャル・マシン能力が存在しなければr503Jに
おいてVM能力「例外」が起きる。
If virtual machine capability does not exist, a VM capability "exception" occurs in r503J.

そうでなければr504JにおいてVMIDシラブルが
呼出される。
Otherwise, the VMID syllable is called in r504J.

次にr505Jにおいてそのとき実行しているVMが0
より大きいレベルにあるかどうか決定される。
Next, the VM running at that time on r505J is 0.
Determined whether it is at a larger level.

レベルがOより太きければ、r506Jにおいて、呼出
したシラブル(LVMID命令のオシランド)がその時
点におけるVMCB(バーチャル・マシン・コントロー
ル・ブロック)の「次のシラブル」フィールド(領域)
に記憶される。
If the level is thicker than O, in r506J, the called syllable (the oscilland of the LVMID instruction) is stored in the "next syllable" field (area) of the VMCB (virtual machine control block) at that point.
is memorized.

(第5図のボックス506において、VMIDはその時
点でのコントロール・ブロックを示すための添字として
使用される、すなわちvMcB[VMIDlのように用
いられるので、LVMID命令のオペランドのシラブル
はその時点のVMCBの「次のシラブル」フィールドに
記憶される。
(In box 506 of FIG. 5, VMID is used as a subscript to indicate the current control block, i.e. vMcB[VMIDl, so that the syllable of the operand of the LVMID instruction is the current VMCB ``Next Syllable'' field.

)シラブルはVMIDに付加され、レベルは増加される
(第5図のボックス507,508,509を参照)。
) syllable is appended to the VMID and the level is incremented (see boxes 507, 508, 509 in Figure 5).

この新しく識別されたバーチャル・マシンはこの時点で
は作動しておりその処理装置レジスタ、メモリー・マツ
プ、等にはそのVMCBからロードされる(ボックス5
10)。
This newly identified virtual machine is now running and its processor registers, memory map, etc. are loaded from its VMCB (box 5).
10).

r511Jにおいて作動中のVMCBの「次のシラブル
」フィールドは呼出される。
The "next syllable" field of the active VMCB in r511J is called.

このフィールドが空白であればすなわち零であれば(r
512Jを経て)、命令はr513Jで完了する。
If this field is blank, i.e. zero (r
512J), the instruction completes with r513J.

「次のシラブル」フィールドが空白でなけれは゛、ボッ
クス508から513までのフローチャートにより障害
が少くとも2レベルのバーチャル・マシンをジャンプし
てこのジャンプの行ったレベルよす低いバーチャル・マ
シン構造がまぢ存在するとき、バーチャル・マシンの副
ツリーを作る手続きが与えられる。
If the "Next Syllable" field is blank, then the flowchart in boxes 508 through 513 will cause the fault to jump through at least two levels of virtual machines and then jump to a virtual machine structure lower than the level at which this jump occurred. When present, a procedure is provided to create a virtual machine subtree.

(ホ)マツプの合成 第6a図および第6b図のマツプ・コンポーザ(com
poser、合成手段)はリソースに対するアクセス毎
にφマツプ(おそらく恒等マツプ)と作動fマツプの動
的合成を行う。
(E) Map synthesis The map composer (com) shown in Figures 6a and 6b
poser (synthesizer) performs dynamic synthesis of the φ map (possibly the identity map) and the operational f map each time a resource is accessed.

φマツプは既知であり、作動fマツプすなわちVMCB
(バーチャル・マシン・コントロール・ブロック)はV
MIDレジスタから決定される。
The φ map is known and the operating f map or VMCB
(virtual machine control block) is V
Determined from the MID register.

第6a図のフローチャートは、マツプの特定の選択の関
連した事項を除いてマツプ合成像構を表わしている。
The flowchart of FIG. 6a depicts the map composition image configuration except for the implications of specific selections of maps.

明らかになるようにこのマツプ・コンポーザ(合成手段
)はプロセス名Pを受取り実すソース名Rを発生するが
VM障害を起こす。
As is clear, this map composer receives a process name P and generates a source name R to be executed, but causes a VM failure.

第6a図において、マツプ・コンポーザはr601Jに
おいて呼出され、r602Jにおいてプロセス名Pが取
出される。
In Figure 6a, the map composer is called at r601J and the process name P is retrieved at r602J.

r6G3JにおいてPのφを得るためにφマツプがプロ
セスPに適用され、r504Jにおいて有効なマツピン
グ(写像)が存在するかどうかの決定が行われる。
In r6G3J the φ map is applied to process P to obtain φ of P, and in r504J a determination is made whether a valid mapping exists.

例えは境界基のメモリーを参照しようとしたときの如く
有効でないマツピングが行われれば、プロセス「例外」
が起こる。
If an invalid mapping occurs, for example when attempting to refer to boundary-based memory, a process ``exception'' will occur.
happens.

この「例外」はすでに呼出しである同じバーチャル・マ
シン内において取扱われる局部的「例外」である。
This "exception" is already a local "exception" handled within the same virtual machine that is the call.

このためこの「例外」は特権ソフトウェアにとって見え
ると共にそれにより取扱われ、VMIDレジスタは影響
を受けない。
This "exception" is therefore visible to and handled by privileged software, and the VMID register is unaffected.

他方、プロセスのφマツピングが有効であれば(Pの値
「φ」を計算することができたとき)r606jにおい
てPの値φは内部レジスタ[リソース名RJに一時的に
記憶される。
On the other hand, if the φ mapping of the process is valid (when the value "φ" of P can be calculated), the value φ of P is temporarily stored in the internal register [resource name RJ] in r606j.

次にVMIDレジスタはそれが空白であるかどうかを決
定するためにチェックされ、もし空白であれば合成操作
が完了し、計算したリソース名Rは実すソース名である
The VMID register is then checked to determine if it is blank, and if so, the composition operation is complete and the computed resource name R is the actual source name.

この処理は、(内部レジスタVにコピーされている)V
MIDの値を「607Jで(スクラッチ・パッド(一時
的使用)レジスタLにコピーされている)レベル値を1
608」で夫々取出し、r609Jにおいてレベル値(
L)が零であるおどうかを決定することにより効果的に
行われる。
This process consists of V (copied to internal register V)
Change the value of MID to ``607J and set the level value (copied to scratch pad (temporary use) register L) to 1.
608'' respectively, and r609J takes out the level value (
This is effectively done by determining whether L) is zero.

「0」レベルが存在スレば、すなわちVMIDが空白で
あれば、すでにマツピング(写像)の行われたRは確か
に実リソースであり6109合成はr611Jにおいて
完了する。
If the "0" level exists, that is, if the VMID is blank, R, which has already been mapped, is indeed a real resource, and the 6109 synthesis is completed in r611J.

他方、r609Jにおいて「0」レベルが存在しなけれ
ば、Rは実リソースではなく、VMIDレジスタの次の
シラブルで表わされているfマツプを適用しなければな
らない。
On the other hand, if there is no "0" level in r609J, then R must apply the f-map represented by the next syllable in the VMID register, rather than the real resource.

次にr612Jにおイテ、f?’、/プは7MIDレジ
スタのその時の内容で表わされているVMCBから得ら
れる。
Next, go to r612J, f? ', /p is obtained from the VMCB represented by the current contents of the 7MID register.

r613jにおいて、有効なマツピング(写像)が存在
したかどうかが決定され、r613Jにおいて有効なマ
ツピングが存在すれば(すなわち、実リソースであるよ
うに見える値f(R)が計算れていれば)、ボックス6
14,615,616および609を適用してf(R)
が実リソースであるか否かを決定する必要がある。
In r613j, it is determined whether a valid mapping exists, and in r613J, if a valid mapping exists (that is, if a value f(R) that appears to be a real resource has been calculated), box 6
14,615,616 and 609 to obtain f(R)
It is necessary to determine whether or not the resource is a real resource.

したがってfをマツピングした(写像した)値f(R)
はそれが実リソースRであるとしてコピーされる(ボッ
クス614)、すなわちRはf(R)で置換えられる。
Therefore, the value f(R) mapped to f
is copied as if it were a real resource R (box 614), ie, R is replaced by f(R).

次に■のL番目のシラブル、すなわちVMIDの内部レ
ジスタ・コピーはr615Jにおいて空白(null
)にされ、内部レベル・カウント「L」は616におい
て「1」だけ減少される。
Next, the Lth syllable of ■, that is, the internal register copy of VMID is blank (null) in r615J.
) and the internal level count "L" is decremented by "1" at 616.

r609Jにおいてレベル「L」が0であるか否かのチ
ェックが行われ(すなわちマシンはそ。
A check is made in r609J to see if level "L" is 0 (i.e. the machine is 0).

のとき実マシン・レベルにあるか否かのチェックが行わ
れ)、もし0でなければボックス612〜616が繰返
され、L=0になるまで続けられる。
A check is made to see if it is at the real machine level), and if not, boxes 612-616 are repeated until L=0.

L=0となれば、r610JにおいてRが実リソースで
あると決定され、合成が完了す。
If L=0, R is determined to be a real resource in r610J, and the synthesis is completed.

る。Ru.

ボックス612〜616のプロセスを例示するために、
VMIDレジスタにはツリー塩r1.2.4.Jが存在
すると仮定する。
To illustrate the process of boxes 612-616:
The VMID register contains the tree salt r1.2.4. Assume that J exists.

VMIDレジスタの内容はVにコピーされている(ボッ
クス607を参照)。
The contents of the VMID register have been copied to V (see box 607).

更に、ボックス614から・明らかなように、Rはf(
R)で置換えられている。
Furthermore, as is clear from box 614, R is f(
R).

r615」において、■のシラブルは「4」であり「o
」ではない。
r615", the syllable of ■ is "4" and "o
"isn't it.

したがって、内部レジスタに保持されているレベルrL
Jは「1」だけ減少され、最後のレベル「4」が取。
Therefore, the level rL held in the internal register
J is decreased by "1" and the last level "4" is taken.

除かれたので、■におけるツリー塩はこの時点ではrl
、2Jである。
Since the tree salt in ■ has been removed, the tree salt in ■ is now rl
, 2J.

したがって、今は2つのレベルが存在し、「609」に
おいてレベル「L」がチェックされると、これは「0」
ではなく、再びボックス612〜616が繰返され・る
Therefore, there are now two levels, and when level "L" is checked at "609", this is "0".
Instead, boxes 612-616 are repeated again.

この時点では内部識別レジスタVは2つのレベル「1.
2」を有し、L番目のシラブル「2」は第2レベルにあ
るので、r616Jにおいて更に1つのレベルが取除か
れ、したがってツリー塩は「1」となり、r609Jに
おいてレベルがOであるか否かチェックされる。
At this point, the internal identification register V has two levels "1.
2'' and the Lth syllable ``2'' is at the second level, so one more level is removed in r616J, so the tree salt is ``1'', and whether the level is O or not in r609J. is checked.

1回だけ繰返される操作ではないがr609jでこの時
りをチェックするときはLは0であり、流れはボックス
610へ分岐し、r611jにおいて合成が完了する。
Although it is not an operation that is repeated only once, when this time is checked in r609j, L is 0 and flow branches to box 610 and the synthesis is completed in r611j.

第6a図のボックス613に進むと、ここでは有効でな
いマツピングが存在したので(すなわちリソースが見出
されなかったので)、バーチャル・マシン障害がr61
7Jにおいて起こる。
Proceeding to box 613 of Figure 6a, the virtual machine failure is determined by r61 because there was a mapping that was not valid (i.e., the resource was not found).
Occurs in 7J.

内部識別レジスタ「■」において利用されるその時点で
のシラブルはr618Jにおいて除かれr619Jにお
いて内部レベルレジスタrLJは減少される。
The current syllable utilized in the internal identification register "■" is removed in r618J and the internal level register rLJ is decremented in r619J.

r620Jにおいて新しいレベルがOであるかどうかテ
ストされる。
The new level is tested in r620J to see if it is O.

Lが0でなければその時のVMCBの「次のシラブル」
フィールドはr621 Jにおいて空白にセットされな
けれはならない。
If L is not 0, then VMCB's "next syllable"
The field must be set to blank in r621J.

いずれの場合でも、「622」において内部レベルレジ
スタrLJはレベル・レジスタにコピーされ内部識別レ
ジスタ「v」はr623JにおイテvIMDレジスタに
コピーされる。
In either case, the internal level register rLJ is copied to the level register at ``622'' and the internal identification register ``v'' is copied to the item vIMD register at r623J.

r624JにおいてVM障害はそのとき作動しているバ
ーチャル・マシンに通知される。
In r624J, a VM failure is notified to the virtual machine running at the time.

第6b図は一般化した実施例の一部のブロック図であり
、第5図および第6a図に直接関連している。
FIG. 6b is a block diagram of a portion of a generalized embodiment and is directly related to FIGS. 5 and 6a.

様照番号650はマツプ・コンポーザ(合成手段)を表
わしており、一般化したハードウェア・パーチャライザ
で利用されるハードウェア/ファームウェアおよび内部
レジスタ657.658.659.660を含む。
Reference numeral 650 represents a map composer and includes hardware/firmware and internal registers 657, 658, 659, 660 utilized in a generalized hardware partializer.

スクラッチパッド(一時使用)レジスタ651および連
想レジスタ652は特定の実施例において実行性能の向
上のために利用され得る(第8b図とその説明参照)。
Scratchpad (temporary use) registers 651 and associative registers 652 may be utilized in certain embodiments to improve execution performance (see Figure 8b and its description).

VMID653における特定の識別手段(1denti
fier)の制御のFに、ハードウェア・パーチャライ
ザは与えたプロセス名rPJ654を取り出し、φマツ
プ661とfマツプ662の集合を適用し、実すソース
名655を発生する。
Specific identification means (1 denti
The hardware partializer takes out the given process name rPJ 654, applies the set of φ map 661 and f map 662 to F under the control of fier), and generates the actual source name 655.

VMIDレジスク653にはレベル・レジスタ656が
関連しており、このレベル・レジスタ656は作動バー
チャル・マシンのその時のレベル、すなわちVMIDレ
ジスタにおける有効シラブルの数を表示する。
Associated with the VMID register 653 is a level register 656 that indicates the current level of the active virtual machine, ie, the number of valid syllables in the VMID register.

VMIDレジスタ653およびレベル・レジスタ656
は共に任意の最大寸法(容量)を有するように選定され
る。
VMID register 653 and level register 656
are both selected to have arbitrary maximum dimensions (capacities).

一般化した実施例は次の明示の内部HVレジラスを使用
する。
A generalized embodiment uses the following explicit internal HV resistor.

すなわち、(1)VMIDをコピーされる663ところ
のvレジスタ657(第6a図の607参照)−このレ
ジスタは合成アルゴリズムにおいてfマツプ値を得るた
めに利用され(第6a図の612参照)更に障害時にV
MIDに内容が戻される(664、第6a図の623参
照)、(2)レベルをコピーされる666ところのLレ
ジスタ659(第6a図の608参照)−このレジスタ
は合成アルゴリズムにおいて利用され(第6a図の60
9.616参照)更に障害時にレベルに内容が戻される
(661、第6a図の622参照)、(3)合成が完了
するまで部分的に合成された結果を保持するRレジスタ
660(第6a図の606,614参照)−そのRは実
リソース・レジスタ668へ送られる(第6a図の61
0参照)、(4)L VM I D命令ノドきVMID
にシラブルを付加する665のに使用されるIレジスタ
658(第5図の507.509 。
(1) The v register 657 (see 607 in Figure 6a) where the VMID is copied 663 - this register is used to obtain the f-map value in the synthesis algorithm (see 612 in Figure 6a) and the failure Sometimes V
The contents are returned to the MID (664, see 623 in Figure 6a); (2) the level is copied 666 to the L register 659 (see 608 in Figure 6a) - this register is utilized in the synthesis algorithm (see 623 in Figure 6a); 60 in figure 6a
9.616) and the contents are returned to the level in the event of a failure (661, see 622 in Figure 6a); (3) an R register 660 (see Figure 6a) which holds the partially synthesized result until the synthesis is complete; 606, 614) - the R is sent to the real resource register 668 (see 61 in Figure 6a).
0), (4) L VM ID command nod VMID
I register 658 (507.509 in FIG. 5) is used to add syllables to 665.

511.512参照)。511.512).

fを呼出すための上述したマツプ合成手段およびLVM
ID命令は、周知の典型的コンピュータ制御ユニットを
利用するファームウェアおよびハードウェアにおいて具
体化される(1970年発行のサミア・ニス・フサンr
samir S。
The above-mentioned map synthesis means and LVM for calling f
The ID instructions are embodied in firmware and hardware that utilizes well-known typical computer control units (Samia Nis Husanr, 1970).
samir s.

Husson Jによる「マイクロプログラミング・原
理と実際」参照)。
(See "Microprogramming: Principles and Practice" by Husson J.)

更に米国特許願第283617号[内容アドレス可能メ
モリーを利用したアドレス発生技術J(1972年8月
24日米国出願)に開示されている典型的な連想メモリ
ーを動作性能の改善のために利用される。
Further, a typical associative memory disclosed in U.S. Patent Application No. 283,617 [Address Generation Technique Using Content Addressable Memory J (filed in the United States on August 24, 1972) is utilized to improve operational performance. .

実マシンに相似した状態で効果的にバーチャル・マシン
でプロセスが実行できることについては根本的な理由が
ある。
There are fundamental reasons why a process can effectively run in a virtual machine in a way that resembles a real machine.

(φマツプにおいて)メモリー・マツピング(メモリー
写像)を用いル最tiのコンピュータ・システムは、プ
ログラムの実行性能に関して設計士の仮定を行う。
Most computer systems that use memory mapping (in the φ map) make the designer's assumptions about program execution performance.

この仮定は同等にバーチャル・マシンにも適用できる。This assumption is equally applicable to virtual machines.

コンピュータ・システムの実行性能に影響するこれら仮
定の一部は、プログラムを実行することによる「参照」
の一時的で特殊な局所性(1ocality)である。
Some of these assumptions that affect the execution performance of a computer system can be "referenced" by running a program.
This is the temporary and special locality (1locality) of .

マルチプログラミング・システムにおいてはプロセス・
マツプはしばしば変更されることはない(プロセスの局
所性)、またバーチャル・マシン・システムにおいては
VMIDはしばしば変更されることはない(バーチャル
・マシンの局所性)。
In multiprogramming systems, processes
Maps are not often changed (process locality), and in virtual machine systems VMIDs are not often changed (virtual machine locality).

これらすべての局所性の概念を結合すると、多しベル再
帰的バーチャル・マシンは実マシンから大巾に異った動
作性能を有する必要はないと結論できる。
Combining all these locality concepts, we can conclude that a multi-level recursive virtual machine need not have significantly different performance from a real machine.

この点を別の言葉で言えば、一時的で空間的な局所性は
ネーム・インバIJ 7ント(名称不変)であると言え
る。
To express this point in other words, it can be said that temporal and spatial locality is name immutability.

どのメモリーブロックが呼出されるかあるいは(合成f
マツプを)「シて)何回改称(rename) され
るかに関係なく、実行プログラムによりそれを参照する
という本質的可能性は依然として存在する。
Which memory block is called or (composite f
No matter how many times a map is renamed, there is still an inherent possibility that it will be referenced by an executing program.

したがってマツプ・コンポーザおよび連想記憶手段で支
持されるバーチャル・マシンは実マシンに匹敵する動作
性能を有し得る。
Therefore, a virtual machine supported by the map composer and associative memory means can have operational performance comparable to a real machine.

fマツプおよびφマツプが非常に簡単であれば連想装置
は必要ではない。
If the f-map and φ-map are very simple, no associative device is necessary.

例えばf二R−B(再配置・境界レジスタ)でφ−空白 (identitいならば、レベル変更のときだけ変更
される静的合成のR−B値を維持するために(一般にC
PU内に)「不可視のスクラッチパッド・レジスタ」を
提供するだけでHV(ハードウェア・パーチャライザ)
は十分であろう。
For example, in f2R-B (relocation/boundary register), φ-blank (identity) is used to maintain the R-B value of static synthesis, which is changed only when the level is changed (generally C
HV (hardware partializer) by simply providing an "invisible scratchpad register" (within the PU)
would be sufficient.

φがページングまたはセグメンテーションの技法を含ん
でいれば、動作性能の理由で実マシン自体は連想装置を
必要とする。
If φ includes paging or segmentation techniques, the real machine itself requires an associative unit for performance reasons.

HV連想装置はこれに置換し得る。The HV associator can be replaced with this.

fマツプが簡単であれば、例えばf=R−Bであれば、
HV連想装置は極めて簡単である。
If the f map is simple, for example, if f = R-B,
The HV associator is extremely simple.

もしfページングを含めば、多少異なるものとなる。If f paging is included, things will be somewhat different.

連想装置のサーチ(探査)キーの一部としてVMIDを
含むか「レベル」を含むかの選択は、価格と動作性能の
観点で決められる。
The choice of whether to include the VMID or the "level" as part of the associative device's search key is determined from the viewpoint of price and performance.

上述した典型的連想装置は、上述したコンポーザ(合成
手段)機構を「短絡」してプロセス名から実すソース名
へ直接的にマツピング(写像)する。
The typical associator described above "short-circuits" the composer mechanism described above to directly map process names to actual source names.

この点はアール・ピー・ゴールドベルブの論文[バーチ
ャル・コンピュタ・システムの構造原理(Archit
ecturalPrinciples for Vir
tul Computer Systems)Jに詳し
く示しである。
This point is discussed in R.P. Goldberb's paper [Structural Principles of Virtual Computer Systems (Archit
ectural principles for Vir
tul Computer Systems) J.

(へ)ハードウェア・パーチャライザの例示実施剣先に
述べた如く、ハードウェア・パーチャライザは新しいコ
ンピュータ・システムの設計のとき中央機構としてまた
は現存するコンピュータ・システムに対する拡張部とし
て役立つ。
Exemplary Implementation of a Hardware Particularizer As previously mentioned, a hardware partializer serves as a central facility in the design of a new computer system or as an extension to an existing computer system.

後者の場合、従来のコンピュータ・システムMには所定
のφマツプが設けであると仮定する。
In the latter case, it is assumed that the conventional computer system M is provided with a predetermined φ map.

HVの構成例えば追加のデータ構造、新しい命令(LV
MID)、VM障害等で、別ノ独特な機能を有した新し
いマシンM′が規定される。
HV configuration e.g. additional data structures, new instructions (LV
MID), VM failure, etc., a new machine M' with a different and unique function is defined.

ハードウェア・パーチャライザは、所望によりM(ll
iaのマシンを端末手段としてM′個のマシンの組織を
支持し得る再帰的バーチャル・マシンにM′がなること
を保証する。
The hardware partializer optionally M(ll
We ensure that M' becomes a recursive virtual machine capable of supporting an organization of M' machines with ia's machine as the terminal means.

ハードウェア・パーチャライザの動作を明らかに。Clarifying the operation of hardware partializers.

するために、その使用について2つの例を例示する。In order to do so, we will illustrate two examples of its use.

第1の例はハネイウエル6000に似た典型的第3世代
のシステムを中心として展開される。
The first example revolves around a typical third generation system similar to the Honeywell 6000.

第2の例はハネイウエル6180に似た更に複雑なコン
ピュータ・システムを中心にして展開される。
The second example revolves around a more complex computer system similar to the Honeywell 6180.

第1の例において典型的第3世代の構造のいくつかの特
徴を提示し、ハードウェア・パーチャライザの導入した
拡張部を示し、更にいくつかの命令の実行を示す。
The first example presents some features of a typical third generation structure, shows the introduced extensions of the hardware partializer, and also shows the execution of some instructions.

以Fに述べる例は、ハネイウエル6000、DECPD
P−10またはIBMシステム/36oに似た標準的第
3世代コンピュータ・システムを中心に展開される。
The examples described below are Honeywell 6000, DECPD
It revolves around standard third generation computer systems similar to the P-10 or IBM System/36o.

これら構造の目立った特徴は、(1)命令カウンタ(I
C)の一部としての特権/非特権(マスター/スレーブ
、スーパーバイサ/フロブレム、等)モードの相違、(
2)特権モードにおいて「絶対」内容をロードされ得る
1つの再配置・境界(R−B)レジスタ、(3)プロセ
スの実行中に新旧のR−BとICレジスタの交換が行わ
れるところの主メモリ一山固定ロケーション、であ、る
The salient features of these structures are (1) instruction counter (I
C) Differences in privileged/unprivileged (master/slave, supervisor/froblem, etc.) modes as part of (
2) one relocation and boundary (R-B) register that can be loaded with "absolute" contents in privileged mode; (3) the main register where the exchange of old and new R-B and IC registers takes place during process execution; It is a fixed memory location.

例を簡単にするために、特権モードにおいてもR−Bレ
ジスタは作動すると仮定する。
To simplify the example, assume that the R-B register is active even in privileged mode.

更に、全ての命令は特権モードにおいて実行されると仮
定スル。
Furthermore, it is assumed that all instructions are executed in privileged mode.

モードの違反は局所的プロセス「例外」でありR−8違
反に似た取扱いを受けるので、この両方の違反を示す心
安はない。
Since a mode violation is a local process "exception" and is treated similarly to an R-8 violation, there is no peace of mind indicating both violations.

Iloの同次的(homoge neous)操作を含
むように例を拡張するときは、上述した原理、ハードウ
ェアおよび技術を利用する。
When extending the example to include homogeneous operations of Ilo, we utilize the principles, hardware, and techniques described above.

しかしながらこの例で示すのは、rR−8マツプはφマ
ツプである」場合である。
However, this example shows the case where the rR-8 map is a φ map.

ハードウェア・パーチャライザは第3世代の構造に対す
る以Fの拡張により具体化される。
The hardware partializer is implemented by the following extensions to the third generation structure.

(メモリー領域に)バージfマツプを付加して変更を加
えることが示され、1000語のページが仮定される。
Adding verge f-maps (in memory areas) to make changes is shown and a 1000 word page is assumed.

(第7図参照)変更、修正事項は (1)fを記憶するためのデータベース。(See Figure 7) Changes and corrections (1) Database for storing f.

レベル「n」のメモIJ−700における(第7図の)
いくつかの固定した既知のロケーション704,714
が、レベルrn+IJのバーチャル・マシン(VMCB
I等)を記述するバーチャル・マシン・テーブル(VM
TAB)707.717を指す。
Level “n” memo IJ-700 (in Figure 7)
Several fixed known locations 704, 714
is a virtual machine (VMCB) with level rn+IJ.
A virtual machine table (VM
TAB) 707.717.

飼では、各バーチャル・マシン・コントロール・ブロッ
ク(VMCB708.710,718)は、メモリー・
マツプ(ページ・テーブル)709,711,719お
よびプロセッサ・マツプ708a、710a。
In this case, each virtual machine control block (VMCB708.710,718) has memory
Maps (page tables) 709, 711, 719 and processor maps 708a, 710a.

118aを例示している。118a is illustrated.

ページ・マツプはfマツプに対応している、例えばfl
は709にflは711に対応している′。
Page maps correspond to f maps, e.g. fl
corresponds to 709 and fl corresponds to 711'.

プロセッサ・マツプはレベルIn+IJのICおよびR
−8に対する記憶手段を含む。
The processor map is level In+IJ IC and R.
-8.

同じく含まれているが示されていないものは、レベル「
n+1」がLVMID命令を発生したとき常に記憶され
るレベルrn+2Jの「次のシラブル」である。
What is also included but not shown is the level "
"n+1" is the "next syllable" at level rn+2J that is always stored when an LVMID instruction is issued.

(2)fを呼出すための機構。(2) Mechanism for calling f.

多シラブルのVMID70ルジスタと上述したLVMI
D命令が加えられる。
Multi-syllable VMID70 Lugistar and the above-mentioned LVMI
D command is added.

バーチャル・?−//ンが作動すると、そのICおよび
R−Bはそのコントロール・ブロック(VMCB )7
08a、710a、718aからロードされる。
virtual·? -// When the switch is activated, its IC and R-B are connected to its control block (VMCB) 7.
Loaded from 08a, 710a, 718a.

(3)コンポーザ(合成手段)。(3) Composer (composition means).

スクラッチパッド・メモリーで支持される上述したハー
ドウェア・ファームウェア・コンポーザと(動作性能の
理由で)連想装置が加えられる。
The hardware firmware composer and associator described above supported by scratchpad memory (for performance reasons) is added.

(4)VM障害における動作。(4) Behavior in case of VM failure.

ICおよびR−8はそのVMCBに記憶され適切なシラ
ブルがVMIDから除かれ、制御はVMM(バーチャル
・マシン・モニター)内のV M 障害のロケーション
γ05.γ15の如き固定の既知のロケーションに移る
IC and R-8 are stored in their VMCB, the appropriate syllable is removed from the VMID, and control is transferred to the VM failure location γ05. in the VMM (Virtual Machine Monitor). Move to a fixed known location such as γ15.

なお、この例はrIJ形のfマツプを示しておす、レベ
ルIn+IJのリソースはレベルrnJのリソースにマ
ツピング(写像)される。
Note that this example shows an rIJ-type f map, in which a resource at level In+IJ is mapped to a resource at level rnJ.

したがって、レベルrnJの再配置・境界レジスタのR
−B値、φマツプはマツピングに入らない。
Therefore, R of the relocation/boundary register at level rnJ
-B value and φ map are not included in mapping.

この例でLVMIDが実行されるときは再配置は零に符
合するが、その必要はない。
When LVMID is performed in this example, the relocation matches zero, but that is not necessary.

第1の例の説明 第7図はハードウェアを仮想化したマシンにおける主メ
モリーの状態を示す概略図である。
DESCRIPTION OF THE FIRST EXAMPLE FIG. 7 is a schematic diagram showing the state of the main memory in a machine with virtualized hardware.

第7図は更に3つのレジスタVMID、R−8およびI
Cを示しているが、その値は指示してない。
FIG. 7 further shows three registers VMID, R-8 and I.
C, but does not indicate its value.

この代りに表■はVMID、R−BおよびICに対する
6組の値を示している。
Table 3 instead shows six sets of values for VMID, RB, and IC.

各組に対して実行される命令を示してあり、絶対物理的
メモリーアドレスを発生するのに使用する「数値を求め
る」手続きが示しである。
The instructions executed for each set are shown, and the ``number'' procedure used to generate the absolute physical memory address is illustrated.

表にはプロセス「例外」、VM障害、VMIDに対する
変更が示しである。
The table shows process "exceptions", VM failures, and changes to the VMID.

R−Bレジスタの値については、rが再配置(1000
語の単位)で、bが連続した割当ての大きさく 100
0語の単位で)で夫々示しである。
For the value of the R-B register, r is the rearrangement (1000
unit of word), where b is the size of the consecutive assignment 100
(in units of 0 words).

表■の6つの欄は3つに分けである、すなわち枦1〜3
,4.5と6に分けである。
The six columns in Table ■ are divided into three, namely, columns 1 to 3.
, 4.5 and 6.

この3組の内で欄1〜3は連続して実行され、欄5と6
も引続いて実行される。
Of these three sets, columns 1 to 3 are executed consecutively, and columns 5 and 6
will continue to be executed.

第7図を参照して、物理的主メモIJ−700はロケー
ション0から始まりIIK語にまで延びている。
Referring to FIG. 7, physical main memo IJ-700 begins at location 0 and extends to word IIK.

主メモリーの最初の境界は3000語目であり、それ以
後は1000語毎に境界があり1100.0語まで続い
ている。
The first boundary of the main memory is the 3000th word, and thereafter there is a boundary every 1000 words, continuing up to 1100.0 words.

このメモリーは、φマツプを操作するためにGCOSオ
ペレーティング・システムを通常利用するハネイウエル
6000システムの一部である。
This memory is part of a Honeywell 6000 system that typically utilizes the GCOS operating system to manipulate the φ map.

命令カウンタ(IC)703に加えて、更に再配置・境
界レジスタ(R−B)702に加えて、バーチャル・マ
シン識別レジスフVMID701が付加されている。
In addition to an instruction counter (IC) 703, a relocation/boundary register (R-B) 702, and a virtual machine identification register VMID 701 are added.

VMIDレジスタ701はソフトウェアにとって見えな
い(すなわち、アクセスすることができない)が、R−
8レジスク702およびICレジスタ703はソフトウ
ェアで見える(ソフトウェアにとってアクセスできる)
VMID register 701 is invisible to software (i.e., cannot be accessed), but R-
8 register 702 and IC register 703 are visible to software (accessible to software)
.

実マシン内においてVMM(バーチャル・マシン・モニ
ター)はメモリー・ロケーションOと3にの間で運行す
る。
Within the real machine, the VMM (Virtual Machine Monitor) runs between memory locations O and 3.

第1 cr)バーーf−ヤル−マシ7VM、は3K(!
:8K(7)間に位置し、第2レベルの別のバーチャル
・マシンVM、、1はメモリー・ロケーション5K(!
18にの間に示してあり、VM、を親のバーチャル・マ
シンとして有する。
1st cr) bar-f-yal-masi 7VM, is 3K (!
:8K (7), another virtual machine VM at the second level, , 1 is located between memory locations 5K (!
18 and has VM as the parent virtual machine.

更に別のバーチャル・マシンVM2はメモリー・ロケー
ション8にとIIKの間に示しである。
Yet another virtual machine VM2 is shown between memory locations 8 and IIK.

実マシンに対する局所的プロセス「例外」は局所的プロ
セス例外ロケーション706において取扱われ、vMl
に対する局所的プロセス「例外」は局所的プロセス例外
VM、ロケーション716において取扱われる。
Local process "exceptions" to the real machine are handled in the local process exception location 706, and vMl
Local process "exceptions" to are handled in the local process exception VM, location 716.

これらロケーションはプロセス例外すなわちφマツプ「
例外」が存在するとき夫々のマシンにおいて運行してい
るプログラムを転送すべき「点(ロケーション)」を示
している。
These locations are process exceptions, i.e.
It shows the ``point (location)'' to which the program running on each machine should be transferred when an ``exception'' exists.

この場合には特権ソフトウェア(この例ではGeO2)
が制御を得る。
In this case privileged software (GeO2 in this example)
gains control.

同様に、上述したようにfマツプ領域において障害が起
こると、所定のバーチャル・マシンにおいて運行してい
るプログラムをその適切なVM障害ロケーション領域7
05゜715に参照させて、VMM(バーチャル・マシ
ン・モニター)が制御を得る。
Similarly, when a failure occurs in the f-map area as described above, the program running in a given virtual machine is moved to the appropriate VM failure location area 7.
05°715, the VMM (Virtual Machine Monitor) gains control.

第7図および表■を参照して最初のいくつかの評価手続
を調べる。
Examine the first few evaluation procedures with reference to Figure 7 and Table ■.

表■の欄1において、VMMは実マシンで運行している
In column 1 of Table ■, the VMM is running on a real machine.

すなわちVMID701は空白である。That is, VMID 701 is blank.

すべてのコントロール・ブ゛ロックVMCBがセットさ
れているので、バーチャル・マシンVM1を作動する時
である。
With all control blocks VMCB set, it is time to activate virtual machine VM1.

命令カウンタ703の値は2000である。The value of the instruction counter 703 is 2000.

R−Bレジスタ702の値が0−14であるので、20
00にOを加え(200が1900より小さいことをチ
ェックし)で、φ(2000)=2000を得る。
Since the value of the R-B register 702 is 0-14, 20
By adding O to 00 (checking that 200 is less than 1900), we get φ(2000)=2000.

VMIDは空白である。したがってリソース名2000
は実リソースであり、第7図の物理的ロケーション20
00(参照番号712)における命令(LVMID28
00)がフェッチ(ホ)出)される。
VMID is blank. Therefore resource name 2000
is a real resource, physical location 20 in FIG.
00 (reference number 712) (LVMID28
00) is fetched.

マシンのφマツプを使用してR−Bマツプを2800に
適用し、すなわちロケーション2800(参照番号71
3)を見出し、(ロケーション2800の内容である)
1を最後にフェッチする。
Apply the R-B map to 2800 using the machine's φ map, i.e. location 2800 (reference number 71
3), (which is the content of location 2800)
Fetch 1 last.

この「1」はVMIDレジスタ701にロードされる。This “1” is loaded into the VMID register 701.

この時点でレベル「1」のバーチャル・マシンVM1は
作動され、そのICおよびR−8レジスタにはVMCB
I、708aからロードされる。
At this point, the virtual machine VM1 at level "1" is activated and its IC and R-8 registers contain VMCB.
I, 708a.

表Hの欄2は、IC703が2100を受取り、R−8
702はrl−3Jを受取る。
Column 2 of Table H shows that IC703 received 2100 and R-8
702 receives rl-3J.

(ページ・テーブル709から明らかなように)バーチ
ャル・マシンvMlのメモリーは5000語であるが、
R−Bレジスタ102は3000語だけをアドレスする
ようにその作動プロセスを制御する。
Although the memory of virtual machine vMl is 5000 words (as evident from page table 709),
R-B register 102 controls its operating process to address only 3000 words.

この制限はおそらくバーチャル・マシンVM、のオペレ
ーティング・システムにより設定される。
This limit is likely set by the virtual machine VM's operating system.

その理由は作動プロセスが標準(非モニター)ユーザー
のものであるからである。
The reason is that the operating process is that of a standard (non-monitor) user.

表■の欄2から明らかなように、ICは2100である
As is clear from column 2 of Table 2, the IC is 2100.

φマツプを適用するために1000が加えられ、210
0が3000より小さいことをチェックし、φ(210
0)=3100を得る。
1000 is added to apply the φ map, 210
Check that 0 is less than 3000 and use φ(210
0)=3100 is obtained.

VMIDが「1」であるので、バーチャル・マシンにお
いて演算しているので、flを適用してバーチャル・リ
ソース3100をその「実」の等価のものにマツピング
(写像)しなけれはならない。
Since the VMID is "1", we are operating on a virtual machine, so fl must be applied to map the virtual resource 3100 to its "real" equivalent.

VMCBl 708により指示さているページ・テーブ
ルf1709は、バーチャル・ページ3がロケーション
4000にあることを示している。
Page table f 1709 pointed to by VMCBl 708 shows that virtual page 3 is at location 4000.

したがって、fl (3100)=4100(参照番号
720)であり、rLOAD128J命令がフェッチさ
れる。
Therefore, fl (3100)=4100 (reference number 720) and the rLOAD128J instruction is fetched.

他の手続も表■を用いて同じように評価できる。Other procedures can be similarly evaluated using Table ■.

欄3はVMIの局所的「例外」取扱いに対するプロセス
「例外」を示しており、欄5は再帰性の作動を示し、欄
4と6は各VMMの障害取扱いに対するVM障害を示し
ている。
Column 3 shows the process "exception" to the VMI's local "exception" handling, column 5 shows the recursive behavior, and columns 4 and 6 show the VM failure to each VMM's failure handling.

スクラッチパッド・レジスタ(第6b図の651)は、
作動ページ・テーブル例えばf、709の絶対ロケーシ
ョンを直接指示して動作性能を改善する。
The scratchpad register (651 in Figure 6b) is
The absolute location of the working page table, e.g., f, 709, is directly indicated to improve performance.

連想レジスタ(第6b図の652)は、いくつかの最近
合成したマツプ値、Pと「f○φ(P)」を記憶するこ
とにより動作性能を改善する。
The associative register (652 in FIG. 6b) improves performance by storing several recently synthesized map values, P and "f○φ(P)".

したがって表■の瀾2の終了の後、連想メモリーにはエ
ントリ(記入)があり、プロセス名2000は実すソー
ス名4000に、プロセス名6000は実すソース名6
000に夫々マツピング(写像)される。
Therefore, after the completion of line 2 in table ■, there is an entry (input) in the associative memory, process name 2000 is the actual source name 4000, process name 6000 is the actual source name 6
000 respectively.

表Hの欄6における命令のフェッチの終了の後、連想メ
モリーにはエントリがあり、プロセス名1000は実す
ソース名5000にマツピングされる。
After the completion of the instruction fetch in column 6 of Table H, there is an entry in the associative memory, and the process name 1000 is mapped to the actual source name 5000.

明うかな如く、レベルrnJのソフトウェアにとって見
えないページングfマツプが付加されている。
As can be seen, a paging f-map is added that is invisible to level rnJ software.

すでに存在するrR−BJφマツプはレベルrnJにお
いて見える状態にとどまっている。
The already existing rR-BJφ map remains visible at level rnJ.

したがって、GeO2の如きR−8マツプを承知してい
るかページ・マツプを承知していないオペレーティング
・システムは、変更なしにバーチャル・マシンにおいて
運行できる。
Therefore, operating systems that are aware of R-8 maps, such as GeO2, or that are not aware of page maps, can run in virtual machines without modification.

ページングfマツプの代りにrR−BJfマツプを付加
することは可能である。
It is possible to add an rR-BJf map instead of the paging f-map.

この新しいrR−Bjfマツプは存在するrR−BJφ
マツプとは別のものでありそれに付加するものである。
This new rR-Bjf map exists rR-BJφ
It is something different from the map and something that is added to it.

更に、fマツプの再帰的特質を満足しなければならない
であろう。
Furthermore, the recursive property of the f-map would have to be satisfied.

同様に、I 8M360/67の如きマシンに付加した
ページングfマツプは存在するベーシング−マツプとは
別のものであろう。
Similarly, the paging f-map added to a machine such as the I8M360/67 will be separate from the existing basing-map.

第2の例の説明 第2の例はハネイウエル6180の如き更に複雑なコン
ピュータ・システムを中心に展開される。
Description of the Second Example The second example revolves around a more complex computer system such as the Honeywell 6180.

この例のための、第3世代のコンピュータに加えた複雑
な機構は、セグメンテーションを行ったアドレス・スペ
ース(領域)である。
A complication added to third generation computers for this example is a segmented address space.

マシン内のアドレスは、Sをセグメント番号としdをセ
グメント内の偏位として、Is/dJで表わされる。
Addresses within the machine are expressed as Is/dJ, where S is the segment number and d is the deviation within the segment.

したがって通常のアドレスの発生には、各セグメントを
見出すためにセグメント・テーブルを使用する この例におけるハードウェア・パーチャライザは、φマ
ツプがセグメンテーションでfマツプがR−Bであるこ
とを除いて、上述した例と同じ拡張の仕方で具体化され
る。
Therefore, for normal address generation, the hardware partializer in this example, which uses a segment table to find each segment, uses It is materialized in the same way as the example above.

この第2の例では第1の例との差異だけを示す。This second example shows only the differences from the first example.

第8a図において、レベルrnJのメモIJ−800内
の固定既知ロケーション804は、レベルrn+IJの
バーチャル・マシン(vMCBl等)を記述するVMT
AB(バーチャル・マシン・テーブル)805を指示し
ている。
In FIG. 8a, a fixed known location 804 in memo IJ-800 at level rnJ is a VMT that describes a virtual machine (such as vMCBl) at level rn+IJ.
AB (virtual machine table) 805 is specified.

この例では各VMCB806,807は、VMCBの残
りに隣接して記憶されるR−8メモリー・マツプ808
,809を表わしている。
In this example, each VMCB 806, 807 has an R-8 memory map 808 stored adjacent to the rest of the VMCBs.
,809.

処理装置マツプ、I10マツプ、および「状態」は示し
てない。
Processor map, I10 map, and "Status" are not shown.

したがって、主メモリー領域においてはR−Bマツプは
fマツプである。
Therefore, in the main memory area, the R-B map is an f-map.

VMIDレジスタ801と前述したLVMID命令が付
加される。
A VMID register 801 and the aforementioned LVMID instruction are added.

上述した(第6a図および第6b図の)マツプ・コンポ
ーザおよびVM障害機構も付加される。
The map composer and VM failure mechanisms described above (of Figures 6a and 6b) are also added.

第8a図において、物理的主メモIJ−800はロケー
ション0から始まり、14に語まで延びている。
In FIG. 8a, physical main memo IJ-800 begins at location 0 and extends to word 14.

主メモリー内に図示しである実線の境界はバーチャル・
マシンを分けている。
The solid boundaries shown in main memory are virtual
The machines are separated.

すなわち、VMM(バーチャル・マシン・モニター)は
Oと3にの間に位置し、VMlは3にと8にの間に位置
し、VM2は8にと14にの間に位置する。
That is, the VMM (virtual machine monitor) is located between 0 and 3, VM1 is located between 3 and 8, and VM2 is located between 8 and 14.

主メモリー内に示しである点線の境界は、バーチャル・
マシンVMIで運行するプロセスPに対するセグメント
の分離を表わしている。
The dotted border indicates the virtual
It represents segment separation for process P running on machine VMI.

実行が開始されると、プロセスP1が作動シ、そのセグ
メント・テーブル802はφマツプのアドレス発生のた
めに使用される。
When execution begins, process P1 is activated and its segment table 802 is used to generate addresses for the φ map.

命令カウンターC803の値は21500である。The value of the instruction counter C803 is 21,500.

セグメント2がvMlのメモリーのロケーション200
0にあるので、φ(21500)=2500となる。
Segment 2 is vMl memory location 200
Since it is at 0, φ(21500)=2500.

VMID801の値が1であるので、マツプf1を上記
結果に適用しなければならない。
Since the value of VMID 801 is 1, map f1 must be applied to the above result.

したがって、fl (2500)=5500である。Therefore, fl (2500)=5500.

したがってロケーション5500の命令810がフェッ
チされ実行される。
Therefore, instruction 810 at location 5500 is fetched and executed.

このためにはオペランド・フィールドのアドレスを発生
する必要がある。
This requires generating the address of the operand field.

すなわち、φ(1/20)=4020、fl(4020
)=7020が得られる。
That is, φ(1/20)=4020, fl(4020
)=7020 is obtained.

それによりロケーション7020の内容812がロード
される。
The contents 812 of location 7020 are thereby loaded.

IC(命令カウンタ)は21501に増加され、実行が
続行される。
The IC (instruction counter) is incremented to 21501 and execution continues.

次の命令は、φ(21501)=2501とfl (2
501)=5501により、ロケーション5501.8
11に存在し、それがフェッチされる。
The next instruction is φ (21501) = 2501 and fl (2
501) = 5501, the location 5501.8
11, and it is fetched.

この命令811に対してはオペランド・フィールドrl
/2000Jをマツピング(写像)する必要がある。
For this instruction 811, the operand field rl
/2000J needs to be mapped.

しかしながら、偏位2000がセグメントの寸法i o
o oより大きいので、φ(1/2000)=eによ
り「例外」が起きる。
However, if the deviation 2000 is the segment dimension i o
Since it is larger than o o, an "exception" occurs due to φ(1/2000)=e.

この「例外」で、その時点のバーチャル・マシンVM1
内の特権ソフトウェアに制御が移される。
With this "exception", the current virtual machine VM1
control is transferred to privileged software within the

このためVMID801はこの「例外」で影響されない
Therefore, VMID 801 is not affected by this "exception".

動作性能を改善するために、スクラッチパッド・レジス
タ(第6b図の651)および連想レジスタ(第6b図
の652)が設けられ得る。
To improve performance, scratchpad registers (651 in Figure 6b) and associative registers (652 in Figure 6b) may be provided.

第8b図は、第8a図における実行の後の連想装置85
0の内容を表わしている。
FIG. 8b shows the associative device 85 after execution in FIG. 8a.
It represents the content of 0.

第8b図においてセグメント2は、再帰性に関係なくそ
の絶対的物理的ロケーションに対するサーチ・キーであ
る。
In Figure 8b, segment 2 is the search key for its absolute physical location regardless of recursion.

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

第1a図乃至第1c図は従来の技術を示すブロック図、
第1d図と第2a図乃至第2d図は本発明の再帰的fマ
ツプのプロセスを示すブロック図、第3a図および第3
b図は本発明のプロセス1例外」とVM障害の発生を示
す説明図、第4図はバーチャル・マシン・テーブル(V
MTAB)(!:バーチャル・マシン・コントロール・
ブロック(VMCB)とバーチャル・マシン・ページ・
テーブルとを示しているfマツプのブロック図、第5図
はバーチャル・マシン識別レジスタを変更するためのフ
ァームウェアで具体化できる命令を示す高レベル・フロ
ーチャート、第6a図はファームウェアおよびハードウ
ェアで具体化できるfマツプおよびφマツプの合成機構
のための高レベル・フローチャート、第6b図はハード
ウェア・パーチャライザ゛・レジスタのブロック図、第
1図は特定のfマツプおよびφマツプを有するハードウ
ェア・パーチャライザの1つの実施例を示す図、第8a
図および第8b図は別のfマツプおよびφマツプを有す
るハードウェア・パーチャライザの他の実施例を示すブ
ロック図、である。 図面において、VMはバーチャル・マシン、VMCBは
バーチャル・マシン・コントロール・ブロック、VMI
Dはバーチャル・マシン識別レジスタ、VMMはバーチ
ャル・マシン・モニター、VMTABはバーチャル・マ
シン・テーブル、LVMIDはrVMIDにロードせよ
」という命令を夫々示す。
FIGS. 1a to 1c are block diagrams showing conventional technology;
1d and 2a-2d are block diagrams illustrating the recursive f-map process of the present invention, and FIGS. 3a and 3.
Figure b is an explanatory diagram showing the process 1 exception of this invention and the occurrence of a VM failure, and Figure 4 is an explanatory diagram showing the occurrence of a VM failure.
MTAB) (!: Virtual Machine Control
Blocks (VMCB) and Virtual Machine Pages
FIG. 5 is a high-level flowchart illustrating instructions that can be implemented in firmware to modify virtual machine identification registers; FIG. Figure 6b is a block diagram of the hardware partializer registers; Figure 1 is a hardware parcher with a particular f-map and φ-map; Figure 8a showing one embodiment of the riser
FIG. 8b is a block diagram illustrating another embodiment of a hardware partializer having an alternative f-map and φ-map. In the drawing, VM is a virtual machine, VMCB is a virtual machine control block, and VMI is a virtual machine.
"D is a virtual machine identification register, VMM is a virtual machine monitor, VMTAB is a virtual machine table, and LVMID is a load into rVMID," respectively.

Claims (1)

【特許請求の範囲】 1 ユーザープログラム処理用の命令を実行するための
中央処理装置や主メモリー等の実リソースを有し、ソフ
トウェア及びプロセス名をリソース名にマツプングする
ためのφマツプを含む汎用ホスト計算機と、 夫々前記ホスト計算機及び実リソースのシミュレートを
する、仮想リソースを有する少くとも1つの仮想計算機
と、を含み、 前記ホスト計算機が前記各仮想計算機を制御するための
個別の仮想マシン、モニターをも含み、前記ホスト計算
機と各仮想計算機の組み合わせカオペレーションのレベ
ルに写象されており、仮想計算機の各レベルは仮想リソ
ースを有し、前記組み合わせの連続的により高いレベル
が、nを0以上の任意のlO進進数数して番号(n+1
)からOで識別され、(n+1)から1までのレベルは
仮想計算機の仮想オペレーティングレベルであり、0レ
ベルはユーザープログラムの命令が実リソースに写象さ
れる、実リソースを有するホスト計算機の実オペレーテ
インダレベルである計算機システムにおいて、 前記ホスト計算機が更に次の(イ)、 (D) 、 r
→、に)から成るハードウェア仮想化装置を有すること
を特徴とする装置; (イ) (n+1)から1までの個々の仮想オペレーテ
ィンダレベルへのアクセスを制御するためのレジスタ手
段、 (へ))仮想マシンの全ソフトウェアから不可視であり
、前記レジスタ手段に応答して、仮想マシンの隣接した
レベルの仮想リソース間の関連を確立するために前記(
n+1)番目のレベルの(n+1)番仮想リソースをn
番目のレベルへ写象し、かつレベル1まで含む連続かつ
逐次的なより高レベルへ写象する手段、 (ハ)仮想マシンの少くとも特権ソフトウェアから可視
であり、オペレーションのレベル1から0へのみでの前
記プロセスの選ばれた1つと前記実リソースの選ばれた
1つとの間の対応を表示するための手段、 に)前記レジスタ手段と写象手段と表示手段とに応答し
て、オペレーションの前記0レベルの実リソースとオペ
レーションの前記レベル1の仮想リソースとの間の対応
を確立するための手段。 2、特許請求の範囲第1項記載の装置であって、前記レ
ジスタ手段が前記仮想オペレーティングレベルを識別す
る手段を含み、該識別手段は前記仮想オペレーティング
レベルの夫々の番号に対応する複数のシラブルを夫々有
する仮想マシンレベル識別子を含み、かつ前記レジスタ
手段が前記識別子によって表示されるレベルを増加する
ために前記識別子からシラブルを取り除く手段をも含む
ことを特徴とする装置。 3 特許請求の範囲第1項記載の装置であって、前記万
象手段が仮想リソース塩を実すソース名にマツピングす
るためのレベル間fマツプを含み、前記対応表示手段が
プロセス名をリソース塩にマツピングするためのレベル
内φマツプを含み、前記対応確立手段が前記fマツプと
φマツプを組み合わせる合成手段を含むことを特徴とす
る装置。 4 特許請求の範囲第1項記載の装置であって、前記ホ
スト計算機が前記0レベルで動作する仮想マシンモニタ
をも含み、また前記装置が、前記万象手段であるレベル
の仮想リソースを次のより高い仮想レベルへ4象するの
に失敗したとき第1信号を発生しかつ、前記Oレベルで
動作中の仮想マシンモニタの認識なしに、前記次のより
高い仮想レベルを制御する仮想マシンモニタへ直接前記
第1信号を送るための手段をも含むことを特徴とする装
置。 5 特許請求の範囲第4項記載の装置であって、更に、
前記対応確立手段が前記レベル1の仮想リソースとレベ
ル0の実リソースとの間の対応の確立に失敗したとき第
2信号を発生しかつ、仮想レベルを制御するどの仮想マ
シンモニタの認識もなしに、前記0レベルで動作する前
記仮想マシンモニタへ前記第2信号を送るための手段を
も含むことを特徴とする装置。
[Claims] 1. A general-purpose host that has real resources such as a central processing unit and main memory for executing instructions for user program processing, and includes a φ map for mapping software and process names to resource names. a computer; and at least one virtual machine having virtual resources that simulates the host computer and real resources, respectively; an individual virtual machine and a monitor for the host computer to control each of the virtual computers; and is mapped to the level of a combination of the host computer and each virtual machine, each level of the virtual machine has a virtual resource, and successively higher levels of the combination are such that n is greater than or equal to 0. Any lO decimal number of (n+1
) to O, the levels (n+1) to 1 are the virtual operating levels of the virtual machine, and the 0 level is the real operating level of the host computer with real resources, where instructions of the user program are mapped to real resources. In a computer system that is an internal level, the host computer further performs the following (A), (D), r
(b) register means for controlling access to the individual virtual operator levels from (n+1) to 1; ) is invisible to all software of the virtual machine and is responsive to said register means to establish an association between virtual resources of adjacent levels of the virtual machine.
The (n+1)th virtual resource of the n+1)th level is
(c) visible to at least privileged software of the virtual machine and only from levels 1 to 0 of operations; a) means for displaying a correspondence between a selected one of said processes and a selected one of said real resources in response to said register means, mapping means and display means; Means for establishing a correspondence between said 0 level real resources and said level 1 virtual resources of operation. 2. The apparatus according to claim 1, wherein the register means includes means for identifying the virtual operating level, and the identifying means includes a plurality of syllables corresponding to respective numbers of the virtual operating levels. Apparatus comprising a virtual machine level identifier having a respective virtual machine level identifier, and wherein said register means also includes means for removing syllables from said identifier in order to increase the level represented by said identifier. 3. The device according to claim 1, wherein the universal means includes an interlevel f-map for mapping virtual resource salts to actual source names, and the correspondence display means maps process names to resource salts. An apparatus characterized in that the apparatus includes an intra-level φ map for mapping, and wherein the correspondence establishing means includes a synthesizing means for combining the f map and the φ map. 4. The device according to claim 1, wherein the host computer also includes a virtual machine monitor that operates at the 0 level, and the device controls virtual resources at the level of the universal means by: generates a first signal when the virtual machine monitor fails to move to a higher virtual level, and directly sends the signal to the virtual machine monitor controlling the next higher virtual level without the knowledge of the virtual machine monitor operating at the O level; Apparatus according to claim 1, further comprising means for sending said first signal. 5. The device according to claim 4, further comprising:
The correspondence establishing means generates a second signal when the correspondence establishing means fails to establish a correspondence between the level 1 virtual resource and the level 0 real resource, and without knowledge of any virtual machine monitor controlling the virtual level. , further comprising means for sending the second signal to the virtual machine monitor operating at the zero level.
JP49061028A 1973-05-31 1974-05-31 Hardware virtualizer Expired JPS5820066B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US36579573A 1973-05-31 1973-05-31

Publications (2)

Publication Number Publication Date
JPS5023146A JPS5023146A (en) 1975-03-12
JPS5820066B2 true JPS5820066B2 (en) 1983-04-21

Family

ID=23440398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP49061028A Expired JPS5820066B2 (en) 1973-05-31 1974-05-31 Hardware virtualizer

Country Status (7)

Country Link
JP (1) JPS5820066B2 (en)
CA (1) CA1015063A (en)
DE (1) DE2426435C2 (en)
FR (1) FR2232010B1 (en)
GB (1) GB1431423A (en)
IT (1) IT1013315B (en)
NL (1) NL7407274A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0428095Y2 (en) * 1986-11-25 1992-07-07

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS601661B2 (en) * 1978-02-23 1985-01-16 株式会社東芝 information processing equipment
JPS6019536B2 (en) * 1978-02-23 1985-05-16 株式会社東芝 information processing equipment
JPS5576447A (en) * 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
JPS56153456A (en) * 1980-04-28 1981-11-27 Mitsubishi Electric Corp Testing method for program
JPS5856058A (en) * 1981-09-29 1983-04-02 Fujitsu Ltd Daso common-use control system for virtual computer system cp resident volume
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
US4764864A (en) * 1985-04-04 1988-08-16 Nec Corporation Circuit arrangement capable of improving overhead of a control program on interrupting into a virtual machine
US8387049B2 (en) 2005-07-15 2013-02-26 International Business Machines Corporation Facilitating processing within computing environments supporting pageable guests
CN102770846B (en) 2010-12-21 2016-08-31 松下电器(美国)知识产权公司 Virtual computer system controls device and virtual computer system control method
JP5981984B2 (en) 2012-02-22 2016-08-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America Virtual computer system, confidential information protection method, and confidential information protection program
GB2563889B (en) * 2017-06-28 2019-10-09 Advanced Risc Mach Ltd Realm identifiers for realms for memory access control
GB2563884B (en) 2017-06-28 2020-01-08 Advanced Risc Mach Ltd Exception return instruction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0428095Y2 (en) * 1986-11-25 1992-07-07

Also Published As

Publication number Publication date
DE2426435C2 (en) 1986-06-05
AU6894074A (en) 1975-11-20
JPS5023146A (en) 1975-03-12
GB1431423A (en) 1976-04-07
FR2232010A1 (en) 1974-12-27
DE2426435A1 (en) 1974-12-19
NL7407274A (en) 1974-12-03
CA1015063A (en) 1977-08-02
IT1013315B (en) 1977-03-30
FR2232010B1 (en) 1978-05-05

Similar Documents

Publication Publication Date Title
US4253145A (en) Hardware virtualizer for supporting recursive virtual computer systems on a host computer system
US7467381B2 (en) Resource partitioning and direct access utilizing hardware support for virtualization
US6711605B2 (en) Multi OS configuration method and computer system
TWI407366B (en) Microprocessor with private microcode ram,method for efficiently storing data within a microprocessor ,and computer program product for use with a computing device
TWI254861B (en) Data processing system, method, and computer readable medium for sharing input/output facilities of a logical partition with another logical partition
US4814975A (en) Virtual machine system and method for controlling machines of different architectures
JP3546678B2 (en) Multi-OS configuration method
JP5735070B2 (en) Guest address to host address translation for devices to access memory in partitioned systems
US7783838B1 (en) Maintaining coherency of derived data in a computer system
RU2412468C2 (en) Systems and methods for multilevel processing of interceptions in virtual machine environment
US20060005200A1 (en) Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor
RU2562372C2 (en) Computation medium adapter activation/deactivation
JPS5911943B2 (en) Trap mechanism for data processing equipment
US10162657B2 (en) Device and method for address translation setting in nested virtualization environment
JPS61206043A (en) Interruption control method in virtual computer system
JPS5820066B2 (en) Hardware virtualizer
JP2009506462A (en) Hierarchical virtualization using a multi-layered virtualization mechanism
JPH02734B2 (en)
JPH03225455A (en) Data processing system
US10853259B2 (en) Exitless extended page table switching for nested hypervisors
JP2730896B2 (en) Data processing device
EP0619898A4 (en) Computer system with two levels of guests.
US20190391814A1 (en) Implementing firmware runtime services in a computer system
JPH0458056B2 (en)
EP0550286A2 (en) 2-Level multi-processor synchronization protocol