VAX (バックス) とは
VAX(Virtual Address eXtension)は、
1970年代に
ディジタル・イクイップメント・コーポレーション(DEC)が開発・販売した
32ビットの
ミニコンピュータシリーズです。その命令セットアーキテクチャ(ISA)も指すことがあります。VAXは、
16ビット時代の人気モデルであった
PDP-11の後継として設計され、互換命令を持つなど、
PDP-11の拡張という側面も持ち合わせていました。
VAXの主な特徴は、直交性の高い命令セット(
機械語)と
ページング方式による
仮想記憶です。複雑な処理を行うための命令(キュー操作や
多項式計算など)や、豊富な
アドレッシングモードが提供され、多様なプログラミングニーズに対応しました。
後に、DECは64
ビットRISCマイクロプロセッサであるAlphaを開発し、VAXのアーキテクチャは
RISCへと移行しました。VAXの
オペレーティングシステムであるVMSは、
OpenVMSという名称に変更されました。
名称の由来
"VAX"という名称は、Virtual Address eXtension の
頭字語です。これは、
16ビットの
PDP-11を
32ビットに拡張し、巨大な
アドレス空間を
仮想記憶で管理することを意味しています。初期のVAXプロセッサには、
PDP-11の命令をエミュレートする「
互換モード」が実装されており、VAX-11という名称は
PDP-11ファミリーの継承者であることを強調していました。しかし、後のバージョンでは
互換モードは縮小され、
PDP-11の命令はソフトウェアエミュレーションで実行されるようになりました。
また、"VAX"という名前は、
1970年代にMick Atkinsonが発明した
掃除機のブランド名でもあり、DECとの間で
商標使用に関する法的なやり取りがありました。結果として、DECは家電製品に進出せず、VAXコーポレーションはコンピュータに進出しないという非競争協定が結ばれました。
英語圏では、VAXコンピュータシステムの複数形として"VAXen"という言葉が使われることもありましたが、DECは
商標保護の観点からこの表現を歓迎しませんでした。
歴史
最初のVAXはVAX-11/780であり、
1977年10月25日にDECの株主会議で公開されました。この機種のアーキテクトは、
カーネギーメロン大学で
ゴードン・ベルが指導したBill Streckerです。その後、様々な価格、性能、容量を持つ派生機種が開発され、VAXは
1980年代初頭に広く普及しました。
VAX-11/780は、コンピュータの性能指標である
MIPS(Million Instructions Per Second)の基準として使用されることがありました。VAX-11/780の性能を1
MIPSとして、他のコンピュータの性能を比較するために利用されました。また、ドライストーンという
ベンチマークプログラムで得られたVAX-11/780の性能を基準値として、D
MIPSという単位も使用されました。BRL-CAD
ベンチマークもVAX-11/780を性能比較の基準としています。
DEC周辺では、VUP(VAX Unit of Performance)という用語が使われ、VAXclusterの全体性能を示すためにcluster VUPが使用されました。
VAX-11/780にはLSI-11が内蔵されており、マイクロコードのロード、ブート、診断などに使用されていました。後の機種では内蔵されていません。そのため、VAX-11/780のユーザーはVMS以外にLSI-11上でRSX-11MやRT-11といったOSを動作させることもできました。
VAXの実装
VAXは、さまざまな実装形態で開発されました。初期のVAXはTTLで実装され、4×5フィートの筐体が
CPUの実装に使われました。ECLゲートアレイ/マクロセルアレイチップを使用した
CPUは、VAX 8600、VAX 8800、VAX 9000シリーズで使用されました。複数の
MOSFETカスタムチップで実装された
CPUは、VAX 8100、VAX 8200シリーズで使用されました。ローエンドモデルであるVAX 11/730や725は
ビットスライス方式で実装されました。
MicroVAX Iは、VAXファミリの転換期に登場したマシンです。VAXアーキテクチャ全体を1個のVLSIチップで実装することがまだ不可能だったため、MicroVAX IではVAXの命令セットの複雑な部分をエミュレーションソフトウェアに移行させ、基本的な命令だけをハードウェアで実装しました。これにより、マイクロコードの削減が可能となりました。このアーキテクチャは"MicroVAX"アーキテクチャと称されました。
MicroVAX IIでは、78032
CPUと78132
FPUが完全VLSI(
マイクロプロセッサ)で実装されました。78032は
メモリ管理ユニットを内蔵した初の
マイクロプロセッサです。MicroVAX IIの中核部は1枚の基板に実装され、プロセッサ、1MBのメモリ、DMA機構を備えたQ22-busのインタフェースが搭載されていました。
その後、CVAX、SOC(ワンチップ版CVAX)、Rigel、Mariah、NVAXとチップは進化し、VAX
マイクロプロセッサは当初低価格な
ワークステーション向けに進化し、その後
ハイエンドの機種にも使用されていきました。メインフレームから
ワークステーションまでをカバーする一つのアーキテクチャは当時の業界ではVAXのみでした。
CVAX
マイクロプロセッサのダイには、「最良のものを盗むには十分気をつけて」という意味の言葉が
ロシア語でエッチングされていました。これは、DECのコンピュータを
リバースエンジニアリングしてクローンを開発していた当時のソビエト連邦の技術者に向けたメッセージでした。
1989年、DECは
MIPSアーキテクチャのプロセッサを搭載したDECstationをリリースし、
RISC技術への移行を始めました。
1992年には、高性能64
ビットRISCプロセッサであるAlpha(当初はAlpha AXP)を導入し、
OpenVMSが動作しました。
2000年8月、
コンパックは
2000年末までにVAXシリーズの生産を完全に終了すると発表しました。2005年までにVAXの生産は終了しましたが、古いシステムは現在でも世界中で使われています。
VAXの主要な
オペレーティングシステムは、DECのVAX/VMS(後にAlphaに移植され、
POSIX準拠となった際に
OpenVMSに改名)です。VAXアーキテクチャとVMS
オペレーティングシステムは、互いを最大限に活用するために同時並行的に開発されました。VAXcluster機能の最初の実装も同様です。VAX用の他の
オペレーティングシステムとしては、BSD(4.3まで)、
Ultrix-32、RTOSのVAXELN、
Xinuなどがあります。近年では、
NetBSDと
OpenBSDがさまざまなVAX機種をサポートし、
LinuxのVAXアーキテクチャへの移植も行われています。
プロセッサアーキテクチャ
命令セット
VAXの命令セットは強力で直交性が高く、当時の
アセンブリ言語プログラマーに親しみやすいものでした。しかし、
高水準言語でのプログラミングが主流になると、命令セットは
コンパイラ開発者のみが関心を持つものとなりました。
VAXの命令セットの特徴として、サブプログラムの最初にレジスタマスクを置くことが挙げられます。このレジスタマスクは、サブプログラムに制御が渡された際にどのレジスタの内容を保持するかを示す
ビットパターンです。レジスタマスクは実行コード内にデータを埋め込む形式のため、
機械語コードの解析を複雑にする要因となりました。
VAXは、リテラル、レジスタ、ポストインクリメント、プレデクリメント、レジスタ間接、ポストインクリメント付きレジスタ間接、プレデクリメント付きレジスタ間接、ディスプレースメント付きレジスタ間接、ディスプレースメント付き二重間接、インデックス付きといった豊富な
アドレッシングモードを備えており、これらを組み合わせて使用できます。プログラムカウンタ(PC)はR15として汎用レジスタの一つとされているため、PCに対しても各種
アドレッシングモードが使用できます。これにより、PC相対アドレッシングが可能となり、位置独立コードが容易に記述できます。また、VAXには実効アドレスをロードする命令群も存在し、後で使用するアドレスを計算するために利用されました。
VAXの
仮想記憶空間は、それぞれ1ギガバイトの4つのセクションに分割されています。
VMSでは、P0がユーザープロセスの空間、P1がプロセスのスタック、S0がOSで使用する空間、S1が予約されていました。
特権モード
VAXにはハードウェアで実装された4つの特権モードが存在します。
プロセッサステータスロングワード(PSL)
プロセッサステータスロングワードの下位
16ビットが、ユーザープロセスから利用できるプロセッサステータスワード(PSW)です。
VAXシステム一覧
以下は、VAXシステムのほぼ時系列のリストです。DEC内部で開発中に使用されたコードネームはイタリック体で示されています。VAXシステムは、VLSIプロセッサを使用しているか否かで大きく分類できます。MicroVAX-Iはその過渡期の設計です。
VLSI未使用のVAX
VAX 11 シリーズ
VAX 11/780 (Star)
VAX 11/750 (Comet)
VAX 11/751
VAX 11/730 (Nebula)
VAX 11/782 (Atlas)
VAX 11/784 (VAXimus)
VAX 11/785 (Superstar)
VAX 11/787
VAX 11/788 (VISQ)
VAX 11/725 (LCN)
VAX 8000 シリーズ
VAX 8600 (Venus)
VAX 8650 (Morningstar)
VAX 8x00 (Gemini)
VAX 8500 (Flounder)
VAX 8530 (Skipjack)
VAX 8550 (Skipjack)
VAX 8700 (Nautilus)
VAX 8800 (Nautilus)
VAX 8810/8820/8830/8840 (Polarstar)
VAX 8974/8978
VAX 9000 (Aridus)
技術転換期のVAX
MicroVAX/VAXstation I (Seahorse)
VLSI使用のVAX
MicroVAX シリーズ
MicroVAX II (Mayflower)
MicroVAX III
MicroVAX 2000 (TeamMate)
MicroVAX 3100 シリーズ
VAXstation シリーズ
VAXstation II
VAXstation II/GPX (Caylith)
VAXstation 2000
VAXstation 3100 シリーズ
VT1300
VAXstation 3200/3500 (Mayfair/GPX)
VAXstation 3520/3540 (Firefox)
VAXstation 4000
VAXstation 8000 (Lynx)
VAX 4000 シリーズ
VAX 4000 Model 50 (VAXbrick)
VAX 4000 Model 100/100A (Cheetah-Q)
VAX 4000 Model 105A (Cheetah-Q+)
VAX 4000 Model 106A/108 (Cheetah-Q++)
VAX 4000 Model 200 (Spitfire)
VAX 4000 Model 300 (Pele)
VAX 4000 Model 400 (Omega)
VAX 4000 Model 500/500A (Omega/N)
VAX 4000 Model 505A/600/600A (Omega/N+)
VAX 4000 Model 700A (Legacy)
VAX 4000 Model 705A (Legacy+)
VAX 8000 シリーズ(ミッドレンジ)
VAX 8200, VAX 8300 (Scorpio)
VAX 8250, VAX 8350
VAX 6000 シリーズ
VAX 6000 Model 2x0 (Calypso)
VAX 6000 Model 3x0 (Hyperion)
VAX 6000 Model 4x0 (Calypso/XRP)
VAX 6000 Model 5x0 (Calypso/XMP)
VAX 6000 Model 6x0 (Neptune)
VAXft - フォールトトレラントシリーズ
VAXft 3000 Model 310 (Cirrus)
VAXft Model 110
VAXft Model 410/610/612 (Cirrus II)
VAXft Model 810 (Jetstream)
VAX 7000 シリーズ
VAX 7000 Model 6x0 (Laser/Neon)
VAX 7000 Model 7x0 (Laser/Krypton)
VAX 7000 Model 8x0 (Laser/Krypton+)
VAX 10000 Model 6x0 (Blazer)
VAX XXXX (BVAX)
VAXserverは、VAXの様々な機種をネットワークサーバ専用に構成したものです。
クローン
公認、非公認のVAXクローンが多数製造されました。
Systime Ltd. (
イギリス): Systime 8750 (VAX 11/750 クローン)
Norden Systems: 軍用VAX
KFKI (
ハンガリー): TPA-11/540, 560, 580
SM 52/12 (
チェコスロバキア): 1986年から製造
Robotron (東ドイツ): K 1840, K 1820
ソビエト連邦: CM-1700, CM-1702, CM-1705
参考文献
「SuperASCII 1991年1月号」第2巻第1号、株式会社アスキー出版、1991年1月1日。
外部リンク
VAX & VMSものがたり
History of
OpenVMS:40th Anniversary - HPE
History of
OpenVMS
OpenVMS.org
DEC Microprocessors
NetBSD VAX Hardware Documentation
VAXarchive
Chuck's House of VAX
*
OpenBSD on VAX