【Fujitsu】 AVM/EF, AVM/EX

 AVM/EF (Advanced Virtual Machine/Extended Facilities) was an operating system (hereinafter “OS”) that controlled Fujitsu’s virtual computer (VM: Virtual Machine) system. It was announced in June 1982. AVM/EF achieved a small, 5 to 15% overhead (increase ratio of the CPU time of the real computer to the CPU time on a virtual computer) by using a high-speed VM mechanism in the hardware, and provided a high-performance virtual computer system. In June 1989, AVM/EX (Advanced Virtual Machine/Extended) was announced. AVM/EX used an extended VM mechanism that harmonized with the new architecture EXA (EXtended Architecture) of the M series, and reduced the overhead to as little as 1/3 of that of AVM/EF.
 The following describes the brief history of the OSs for Fujitsu’s virtual computers, the functions of the OSs for virtual computers and the effects of adopting a virtual computer.

1. Brief history of the OSs for Fujitsu’s virtual computers

 Fujitsu started shipping AVM (Advanced Virtual Machine) as the OS for virtual computers for the FACOM M series in 1980, mainly for large M series computers. AVM used an AVMA (AVM Assist) function of the hardware but simulation results indicated that it had a large overhead.
 To solve this problem, Fujitsu developed a high-speed VM mechanism aimed at drastically reducing the overhead in the FACOM M-300 series general-purpose computers. As a result of utilizing this high-speed VM mechanism and developing a new function of using channel exclusively for virtual computers (exclusive channel function), Fujitsu was able to announce in June 1982 AVM/EF, which drastically reduced the overhead of the OS (the overhead of AVM/EF with the super-large computer FACOM M-380 model group was 5 to 15%).
 Fujitsu implemented in higher machines of the M-700 series the extended architecture EXA (EXtended Architecture), which was developed by extending the previous M series architecture and adding a system storage unit (SSU), an extended channel mechanism (ECF) and an extended VM mechanism (EVM). In June 1989, the company announced AVM/EX (Advanced Virtual Machine/Extended), which supported the extended architecture as a virtual computer OS. AVM/EX used the extended VM mechanism of the hardware and reduced its overhead to as little as 1/3 (1/2 on average) of that of AVM/EF.
2. Functions of the OSs for virtual computers

 CP (Control Program), which was the control program for AVM, created a virtual computer that was functionally equivalent to the real computer by dividing the real computer resources, reconfiguring them and simulating the functions of the real computer. The computer resources of the virtual computer (hereinafter “VM”) were created using CP in the following manner:

(1) Virtual console
 The system console unit of VM was called a virtual console. CP simulated IPL and other functions of the real computer’s console through CP commands from a virtual console such as a character display device.
(2) Virtual CPU
 The CPU of VM was called a virtual CPU. CP created a virtual CPU by allocating the calculation time of the real CPU to each VM based on the CPU distribution.
 In AVM, CP simulated all actions including the execution of privileged instructions and interrupt action with the virtual CPU. However, with AVM/EF and AVM/EX, Fujitsu introduced the modes for identifying whether the CP was operating (host mode) or the VM was operating (guest mode), and added new mechanism, that allowed the hardware to directly execute instructions, to the high-speed VM mechanism and the extended VM mechanism. Although the extent to which the hardware directly executed instructions differed between the high-speed VM mechanism and the extended VM mechanism, this added hardware mechanism contributed to reduction of the overheads of AVM/EF and AVM/EX.
AVM/EX ensured high flexibility and reliability of operation by supporting the VMs of both the M architecture and the EXA architecture, and by allowing the VMs to share all CPUs within the system or a certain VM to use them exclusively.
(3) Virtual main memory
 The main memory of VM was called virtual main memory. There were two ways for achieving virtual main memory. One was to allocate a continuous area of the main memory (real main memory) to each VM as the exclusive virtual main memory; there were two area types: a V = R (Virtual = Real) area and a domain area. The second way was to allow the paging area of the main memory (real main memory) to be shared as the main memory of multiple VMs using a demand-paging mechanism.
 In the case of the domain area, in order to obtain the actual main memory (real main memory) address of the virtual memory space of VM (level 3 in the figure), it was necessary to add the initial address of the main memory (level 1 in the figure), to which the virtual main memory itself was allocated, in addition to the address of the virtual main memory (level 2 in the figure) where the virtual memory (level 3 in the figure) space of VM was mapped. With AVM, the overhead of the OS was heavy because the VM system rewrote the real address in an address conversion table generated by the VM system. For the high-speed VM mechanism and the extended VM mechanism, the company introduced a register that indicated the top address of the main memory (real main memory) part which allocated to a VM, in order to allow the system to add this registered value quickly when converting the address. This eliminated the table rewriting work from AVM/EF and AVM/EX, and drastically reduced the overhead.

Figure: Address conversion through double paging in high-speed VM mechanism

Figure: Address conversion through double paging in high-speed VM mechanism

(4) Virtual I/O devices
 The I/O devices of VM were called virtual I/O devices. In AVM, multiple VMs shared the channel devices to which the I/O devices were connected. For AVM/EF, Fujitsu added a function for allocating the channel exclusively to a specific VM. This reduced the overhead.
In the extended architecture EXA, the I/O control process previously performed by the OS was off-loaded to the hardware (extended channel mechanism). Similarly, in AVM/EX, the I/O control process previously performed by the CP was off-loaded to the extended VM mechanism of the hardware. In other words, the hardware directly performed the I/O instructions that CP had previously issued in place of VM, regardless of whether the channel was exclusive or shared. This reduced the overhead of AVM/EX to lower level than that of AVM/EF.
3. Effects of adopting the virtual computer system

 The virtual computer system using AVM (including AVM/EF and AVM/EX) enabled multiple OSs to efficiently operate on one real computer, and was adopted mainly in the following three cases. Major uses of AVM and AVM/EF were (1) and (2). AVM/EX was applied for (3) in many cases.

(1) Migration to a new system
 To migrate to a computer system with a better performance-cost ratio or to a higher OS, it was previously necessary to either perform the migration work on holidays or at night, or to keep both of the new and old systems. However, use of AVM enabled staged and economical migration.
(2) Separation of a system for software operation from a At that time, it was normal to be constantly developing application programs in order to expand the range of computer applications. In such circumstance, adopting VM using AVM was more economical than adding a computer system exclusively for application development, because the production system and the development system were hosted on one real computer.
(3) Simultaneous operation of different types of OSs
  In case where multiple different OSs were needed concurrently, adopting VMs using AVM in a computer was more economical than installing multiple computers. An example of such case was calculation services on different OSs, which were OSIV/F4 MSP and OSIV/X8 FSP, by a computing service center. Another example was the case where an installation of new UNIX system (UTS) was required in universities or laboratories.

Table Overview of the OSs for Fujitsu’s virtual computers
Announcement date June 1982 June 1989
Shipment date December 1982 July 1990
Features ・Reduced the overhead by 5 to 15% by using high-speed VM mechanism
・Support for exclusive channel function
・Reduced the overhead to as little as 1/3 of that of AVM/EF by using extended VM mechanism
Required hardware mechanism High-speed VM mechanism Extended VM mechanism
Control method Privileged instruction Hardware directly executed privileged instructions except for I/O instructions and some privileged instructions. Hardware directly executed almost all privileged instructions.
Interrupt processing Hardware received the interruption of SVC (*1) and program interrupts, and called the OS directly. Hardware received the interruption of SVC and program, external and I/O interrupts, and called the OS directly.
Addition of real address High-speed VM mechanism added the register’s value to virtual real address. Extended VM mechanism added the register’s value to virtual real address.
Maximum storage 512 MB 2 GB
Maximum number of channels 64 units 256 units
Maximum number of VMs VMs in a domain area 15 units 14 units
VP (*2) virtual computers 1 units 4 units
Major operable models M-380
M-700 series
VP series E model
M-770 higher models
Major supported OSs OSIV/F4OSIV/F4 MSP
*1:Supervisor Call *2:Vector Processor