Chapter 1. Assists for VM/370
This pubHcation gives a detailed description of the
virtual-machine assist and the shadow-table bypass
assist.
Six assists are available on the various models of System/370 to improve the performance of Virtual
Machine Facility /370 (VM/370): Virtual-machine assist Shadow-table-bypass assist Control-program assist Expanded virtual-machine assist Virtual-interval-timer assist Virtual-machine extended-facility assist
The exte11ded control-program support for VM/370 (or ECPS:VM/370) consists of a
combination of four assists: (1) the virtual-machine assist, (2) the control-program assist, (3) the
expanded virtual-machine assist, and (4) the
virtual-interval-timer assist.
The six assists for VM/370 (1) execute specific
privileged instructions for virtual machines, (2)
simulate virtual-machine operations (such as
interruptions) or maintain the virtual-machine
interval timer, and (3) provide new instructions for
use by the VM/370 control program to perform
frequently occurring functions.
The virtual-machine assist, the basic assist for VM/370, directly executes 12 virtual-machine
instructions and validates page-table entries in the
shadow tables. The virtual-machine assist exists in
two forms: with and without the VM-common­
segment modification. The VM-common-segment
modification of the virtual-machine assist maintains
high performance for virtual machines executing
programs that use the common-segment-bit
function of the System/370 extended facility.
Assist
Virtual-machine assist (VMA) Shadow-table-bypass assist
Control-program assist (CPA) Expanded virtual-machine I assist I lVlrtual-interval-timer assistj extended- I facility assist Figure 1. VM/370 Assists
Instruc-
Prereq- tions
uisites Assisted
- 12
- 7
- - VMA,CPA 11
12
The shadow-table-bypass assist is a specialized
assist used only for virtual machines for which the
virtual = real option of VMj370 is specified.
The control-program assist provides 22 new
instructions for use by the VM/370 supervisor
program to accelerate completion of the various
functions of the control program itself.
The expanded virtual-machine assist, which has
the virtual-machine assist and the control-program
assist as prerequisites, completely or partially
executes 11 virtual-machine instructions.
The virtual-interval-timer assist maintains the
virtual-machine interval-timer value and causes
virtual or real program interruptions when the
interval timer is decremented through zero.
The virtual-machine extended-facility assist, an
integral part of the System/370 extended facility,
causes the direct execution of 12 instructions of
that facility for a virtual machine.
Figure 1 summarizes the preceding information.
In general, a particular assist directly executes a
virtual-machine instruction only for specific
conditions (for example, DAT on, PER off, or no
exceptional conditions). The same virtual
instruction may be executed by one or another
assist, depending on the specific conditions at
execution. For example, STORE THEN OR SYSTEM MASK can be assisted by the virtual­
machine assist, the shadow-table-bypass assist, or
the expanded virtual-machine assist. For this
reason, the column in Figure 1 giving the number
of instructions assisted contains some duplication.
Other New
Virtual Instruc-
Functions tions
1 -
1 -
- 22
- -
2
Assists for VM/370 1
VM/370 Control and Storage
This section discusses certain aspects of VM/370 design which are related to the operation of the
various assists for VM/370. It can be skipped by
readers familiar with the VM/370 supervisor
program. VM/370 is a system-control program that uses
the resources of a real System/370 machine to
execute a number of independent programs, each
appearing to run on its own System/370 machine.
These apparent machines are called virtual
machines in distinguishing them from the real
machine, whose resources are actually used to give
the appearance of concurrent execution of a
number of independent virtual machines.
Virtual-machine programs are executed by a
combination of (1) the simulation of all virtual­
machine I/O and console operations and of certain
machine instructions, and (2) the direct execution
on a real CPU of the remaining virtual-machine
instructions. Figure 2 is a simplified flowchart
showing a CPU alternating between direct
execution of instructions in storage containing
virtual-machine programs and execution of
simulation routines in storage which contains the VM/370 control program. The figure shows that VM/370 depends entirely on interruptions to
recapture control of the real CPU for simulation of
virtual-machine functions. VM/370 divides the storage of the real machine
into 4K-byte page frames. Some page frames are
allocated to contain parts of the VM/370 control
program; other page frames are allocated to hold
pages of the storage of virtual machines. These
latter page frames may be dynamically stolen and
later reassigned to hold a different page of storage
for the same or for a different virtual machine. In
general, at any moment, only some of the pages of
each virtual machine have real page frames
assigned to them. The remaining pages have been
swapped out to VM/370 auxiliary storage. VM/370 performs input and output paging
operations between auxiliary storage and the real­
machine storage in a manner not apparent to the
virtual-machine program. The paging by VM/370 is in addition to any paging by the virtual-machine
operating system, which may move pages between
virtual-machine storage and the virtual-machine
auxiliary-storage devices.
During direct execution of virtual-machine
instructions, the condition code, instruction
address, PSW key, and program mask of the
virtual-machine PSW are in the real-machine PSW. 2 Virtual-\1achine Assist and Shadow-Table-Bypass Assist
The remaining real PSW bits, however, are
controlled by VM/370. In particular, the
problem-state bit of the real PSW is always one;
hence, any attempt to execute a privileged
instruction for the virtual machine always results in
a program interruption for a privileged-operation
exception if no assist is active.
In VM/370 terminology, an address that is real
to a virtual machine is called a virtual address. VM/370 may have assigned anyone of a number
of real page frames to hold the page of virtual
storage corresponding to a 4K-byte block of
consecutive virtual addresses. For each virtual
machine, VM/370 keeps a set of real translation
tables for translating virtual addresses to real
addresses. The real translation tables consist of one real segment table and a real page table for
each 64K bytes of virtual-machine storage. These
tables are formatted for use with the dynamic­
address-translation (DAT) facility of System/370.
When a virtual-machine program is being directly
executed with the virtual machine in BC mode, or
in Ee mode with DAT off, the real PSW is in Ee
mode with DA T on, and real control registers 0 and
1 specify the real segment table of the virtual
machine in execution.
When the virtual machine PSW is in EC mode
with DAT on, control registers 0 and 1 of the
virtual machine specify how to translate logical
addresses to virtual addresses. Such a logical
address, called a virtual/virtual address in VM/370 terminology, after translation to a virtual address
must be translated a second time to obtain a real
address. Because the System/370 DAT mechanism
does not perform this double translation, VM/370 maintains another set of translation tables, called
shadow tables, which can be used by the DAT
facility to translate addresses directly to real
addresses in one step. When a virtual-machine
program is being directly executed in a virtual
machine in EC mode with DAT on, the real PSW is
also in Ee mode with DA T on, but real control
registers 0 and 1 specify the shadow segment table
for the current virtual machine and current values
of virtual control registers 0 and 1. If a new value
is placed in virtual control register 1, VM/370 must
set up real control register 1 -to specify a
corresponding new" shadow table. storage keys for each 2K-byte storage block
of a page frame assigned to a virtual machine are
shared by the virtual machine and the VM/370 control program. The access-contro·} bits and the
fetch-protection bit are controlled solely by the
virtual machine, but the reference and change bits
Previous Page Next Page