【富士通】 AVM/EF, AVM/EX

AVM/EF (Advanced Virtual Machine/Extended Facilities)は,富士通の仮想計算機(VM : Virtual Machine)システムを制御するオペレーティングシステム(以下OS)であり,1982年6月に発表された.AVM/EFでは,ハードウェアが持つ高速VM機構を利用して5〜15%という小さいオーバーヘッド(実計算機上でのCPU時間に対する仮想計算機システムでのCPU時間の増加比率)を実現し,高性能な仮想計算機システムを提供した.1989年6月には,Mシリーズの新しいアーキテクチャEXA (EXtended Architecture)に対応した拡張VM機構を使用し,オーバーヘッドをAVM/EFの最大1/3に削減したAVM/EX (Advanced Virtual Machine/Extended)が発表された.
以下に,富士通の仮想計算機用OSの歴史,仮想計算機用OSの機能および仮想計算機システムの導入効果について説明する.

1. 富士通の仮想計算機用OSの歴史

富士通は,FACOM Mシリーズ用仮想計算機用OSとしてAVM(Advanced Virtual Machine)を1980年から主に大型Mシリーズコンピュータ用に出荷していた.このAVMは,ハードウェアが有するAVMA(AVM Assist)を使用したが,AVMが行うシミュレーションのオーバーヘッド(実計算機上でのCPU時間に対する仮想計算機システムでのCPU時間の増加比率)が大きかった.
そこで,富士通は汎用コンピュータFACOM M-300シリーズで,このオーバーヘッドを大幅に削減する新しいアーキテクチャとして高速VM機構を開発した.この高速VM機構を活用し,さらに,仮想計算機で使用するチャネルを専用とする機能(専用チャネル機能)を新たに開発して,OSのオーバーヘッドを大幅に削減したAVM/EFを1982年6月に発表した(超大型コンピュータFACOM M-380モデルグループでのオーバーヘッドは5〜15%).
また,富士通は,従来のMシリーズアーキテクチャを拡張し,システム記憶(SSU),拡張チャネル機構(ECF)および拡張VM機構(EVM)などを追加した拡張アーキテクチャ EXA (EXtended Architecture)をM-700シリーズの上位機で実装したが,仮想計算機OSとして拡張アーキテクチャに対応したAVM/EX (Advanced Virtual Machine/Extended)を1989年6月に発表した.AVM/EXでは,ハードウェアの拡張VM機構を使用して,そのオーバーヘッドをAVM/EFに対し最大1/3(平均1/2)に削減した.
2. 仮想計算機用OSの機能

AVMの制御プログラムであるCP(Control Program)は,実計算機資源を分割,再構成し,実計算機の機能をシミュレートして,機能的に実計算機と等価な仮想計算機を作り出す.このVMの計算機資源はCPにより以下のように作り出された.

(1) 仮想コンソール
VMのシステムコンソール装置を仮想コンソールと呼んだ.CPは文字ディスプレイ装置などの仮想コンソールからのCPコマンド指令により実計算機のコンソールが持つIPL機能などをシミュレートした.
(2) 仮想CPU
VMのCPUを仮想CPUと呼んだ.CPは実CPUの演算時間をCPU配分に基づいて時分割で各VMに与え,仮想CPUを作り出した.
仮想CPUでの特権命令の実行や割り込み動作については,AVMではすべてCPがその動作をシミュレートした.しかし,AVM/EFおよびAVM/EXでは,CPが動作している(ホストモード)か,VMが動作している(ゲストモード)かを認識するモードを設け,ハードウェアが直接実行する仕組みを高速VM機構および拡張VM機構に設けた.ハードウェアが直接実行する範囲は高速VM機構と拡張VM機構で異なるが,このハードウェア機構によりAVM/EFおよびAVM/EXのオーバーヘッドの削減に寄与した.
また,AVM/EXは,MアーキテクチャとEXAアーキテクチャのVMを同時にサポートし,システム内のすべてのCPUはVM間で共用したり特定のVMが専用で使用したりできるようにして,運用の柔軟性と信頼性を高めた.
(3) 仮想主記憶
VMの主記憶を仮想主記憶と呼んだ.仮想主記憶の実現方法には,2つの方法があった.1つは主記憶(実主記憶)の連続領域を各VMに専用の仮想主記憶として与える方法で,V=R (Virtual=Real)領域とドメイン領域の2種の領域タイプがあった.もう1つの方法は,主記憶(実主記憶)のページング領域をデマンドページング方式により複数のVMの主記憶として共通使用する方法である.
VM専用に仮想主記憶を与える方法のドメイン領域の場合, VMの仮想記憶空間(図のレベル3)の実際の主記憶(実主記憶)アドレスを求めるには,そのVMの仮想記憶空間(図のレベル3)がマッピングされている仮想主記憶(図のレベル2)のアドレスに,さらに仮想主記憶自身が割当てられている主記憶(図のレベル1)の先頭アドレスを加算する必要がある.AVMでは,VMシステムが生成したアドレス変換用テーブルの中の実アドレスを書き替える方式のため,OSのオーバヘッドが大きかった.高速VM機構および拡張VM機構では,ハードウェアにVMに割り当てた主記憶(実主記憶)アドレスの先頭を示すレジスタを設け,アドレス変換の際にこのレジスタの値を加算するようにした.これによりAVM/EFおよびAVM/EXでは,テーブルの書き換え作業が不要となりオーバヘッドを大幅に削減することができた.

図 高速VM機構における二重ページングによるアドレス変換

図 高速VM機構における二重ページングによるアドレス変換


(4) 仮想入出力装置
VMの入出力装置を仮想入出力装置と呼んだ.AVMでは,入出力装置を接続するチャネル装置を複数のVMで共用したが,AVM/EFではチャネルを特定のVMに専用に割り当てる機能を追加した.これにより,オーバヘッドを削減できた.
また,拡張アーキテクチャEXAでは,従来OSが行っていた入出力制御をハードウェアにオフロードした(拡張チャネル機構).AVM/EXでも同様に,従来CPで行っていた入出力制御をハードウェアの拡張VM機構にオフロードした.つまり,従来CPがVMの代わりに発行していた入出力命令は,チャネルの専用や共用にかかわらず,ハードウェアが直接実行する方式となった.これにより,AVM/EXのオーバヘッドをAVM/EFよりも削減することができた.
3. 仮想計算機システムの導入効果

AVM(AVM/EF,AVM/EXを含む)を使用した仮想計算機システムは,1台の実計算機上で複数のOSを効率よく動作させることができ,主に以下の3つの場合に適用された.AVMとAVM/EFは(1)や(2)の利用が主であったが,AVM/EXでは(3)の利用が多くを占めるようになった.

(1) 新システムへの移行
より価格性能比の優れた計算機システムへの移行や,より上位のOSへ移行する場合,従来では休日や夜間に移行作業を行うか,新旧両システムを併設せざるを得なかった.しかし,AVMを利用することにより段階的かつ経済的な移行が可能となった.
(2) 運用系と開発系のシステムの分離
計算機で処理する業務の拡大のため開発業務が常態化していたが,開発専用にシステムを導入するよりも1台のハードウェアでAVM配下に運用系と開発系を分離したシステムを導入する方が経済的であった.
(3) 異種のOSの同時運用
計算センタのようにOSIV/F4 MSPOSIV/X8 FSPの異なる計算サービスを要求される場合や,大学や研究所で新たにUNIXシステム(UTS)の導入が要求される場合など,複数台のコンピュータを導入するよりもAVMによる異種OSの同時運用を行う方が経済的であった.
表 富士通の仮想計算機用OSの概要
  AVM/EF AVM/EX
発表時期 1982年6月 1989年6月
出荷時期 1982年12月 1990年7月
特長 ・高速VM機構を使ってオーバヘッドを5〜15%に低減
・専用チャネル機能のサポート
・拡張VM機構を使ってオーバヘッドをAVM/EFに対して最大1/3に削減
必要とするハードウェア機構 高速VM機構 拡張VM機構
制御方法 特権命令 入出力命令と一部の特権命令以外はハードウェアが直接実行する. ほぼすべての特権命令をハードウェアが直接実行する.
割込みの処理 SVC(*1),プログラム割込みは,ハードウェアで直接OSに割込む. SVC,プログラム,外部,入出力割込みはハードウェアで直接OSに割り込む.
実アドレスの加算 高速VM機構が仮想実アドレスにレジスタの値を加算 拡張VM機構が仮想実アドレスにレジスタの値を加算
最大メモリ 512メガバイト 2ギガバイト
最大チャネル 64台 256台
最大
VM
ドメイン領域のVM 15台 14台
VP(*2)仮想計算機 1台 4台
動作可能な主な機種 M-380
M-360
M-340
M-700シリーズ
VPシリーズEモデル
M-770上位モデル
M-780
M-1800
VP1000,VP2000
サポートする主なOS OSIV/F4OSIV/F4 MSP
OSIV/X8OSIV/X8 FSP
OSIV/F2
MVS,MVS/SE,DOS/VS,OS/VS1
OSIV/F4OSIV/F4 MSPOSIV/MSP
OSIV/X8OSIV/X8 FSPOSIV/XSP
UTS/MUXP/M
MVS/SP,MVS/XA,
DOS/VSE,VM/SP
*1:Supervisor Call *2:Vector Processor