VAX

VAX (バックス) は、1970年代中ごろディジタル・イクイップメント・コーポレーション (DEC) が開発し販売した32ビットのミニコンピュータのシリーズ、及び同シリーズの命令セットアーキテクチャ (ISA) を指すこともある。前述のように32ビットアーキテクチャだが、同時に16ビット時代の最も人気のあったモデルであるPDP-11の後継ないし代替を意識した互換命令などを持っている点では、PDP-11の拡張という面もあるアーキテクチャでもある。 直交性の高い命令セット（機械語）とページング方式の仮想記憶が特徴である。VAXには、キュー挿入/削除命令や多項式計算命令などといった複雑な処理をする命令があり、豊富なアドレッシングモードとの組み合わせといった特徴がある。 後の64ビット化では、RISCマイクロプロセッサのAlphaがデザインされた。OSのVMSはOpenVMSという名称となっている。 "VAX"は本来 Virtual Address eXtension の頭字語である。その名が示すとおり、VAXは16ビットのPDP-11の32ビットへの拡張であり、その巨大なアドレス空間の管理に仮想記憶を使用した初期の商用コンピュータでもあった。初期のVAXプロセッサには「互換モード」が実装されていて、PDP-11の命令のほとんどをエミュレートできた。VAX-11 という呼称は PDP-11ファミリの継承者であることを強調したものである。後のバージョンでは互換モードが縮小され、PDP-11の命令は徐々にエミュレーションソフトウェアで実行されるようになっていった。 VAXという名称は、1970年代に Mick Atkinson が発明した掃除機のブランド名でもある。DECとの間で商標使用に関する法的なやりとりがあった。解決策として非競争協定が結ばれた。つまり、DECは将来に渡って家電製品に進出せず、VAXコーポレーションはコンピュータに進出しないという約束である。 英語圏のユーザーの間では、「VAXコンピュータシステム」の複数形として VAXen という言葉が使用された。ox(雄牛) の複数形 oxen からの類推であるが、DECは商標保護の立場から VAXen という表現を歓迎しなかった。 最初のVAXは VAX-11/780 であり、1977年10月25日にDECの株主会議で公開された。この機種のアーキテクトはカーネギーメロン大学でゴードン・ベルが指導した Bill Streckerである。その後様々な価格および性能、容量の派生機種が開発された。VAXは1980年代初期には非常に一般的になった。 VAX-11/780は時にMIPSの基準として扱われる。コンピュータの性能を示すMIPSという単位は、本来、単に実行される命令の個数を示すだけで、具体的にどのような仕事をこなせるのか、を反映しない。そこで、VAX-11/780でなんらかのベンチマークプログラムを動かし、それが示す性能を1MIPSとして、性能の基準とする、ということがしばしば行われたのである。1 VAX MIPS は VAX-11/780 の性能を意味し、あるコンピュータが 27 VAX MIPS の性能という場合、VAX-11/780 の約27倍の性能であることを意味する。この目的で実際によく使われたベンチマークプログラムは当時ポピュラーだったものの一つであるドライストーンで、こんにちでも時折使われている単位DMIPSは、あるマシンのドライストーンの成績の値を、VAX-11/780のドライストーンの成績の値1757で割った値である。他にVAX-11/780を性能比較の基準として今も使っている例として、BRL-CADベンチマークがある。これはBRL-CADというソリッドモデリングソフトウェアに含まれる性能解析スイートである。 DEC周辺では VUP (VAX Unit of Performance) という用語が使われた。関連用語として cluster VUP が VAXcluster の全体性能を示すのに使われた。 VAX-11/780にはLSI-11が内蔵されており、マイクロコードのロード、ブート、診断などに使われていた。その後の機種では内蔵していない。そのため780のユーザーはVMS以外にLSI-11上でRSX-11MやRT-11といったOSを動作させることもできた。 その後VAXは様々な実装がなされた。最初のVAXはTTLで実装されており、4×5フィートの筐体が1個の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チップで実装することはまだ不可能だった（後に VAX 8200/8300で実施されたような数個のVLSIチップによる実装も無理だった）。その代わりに MicroVAX I ではVAXの命令セットの複雑な部分のほとんどをエミュレーションソフトウェアに移行させ、基本的な命令だけをハードウェアで実装したのである。これによって大量に必要とされたマイクロコードを削減することが可能となった。これを"MicroVAX"アーキテクチャと称した。MicroVAX I では、ALUとレジスタが1個のゲートアレイチップで実装され、それ以外の制御部は従来の論理回路を使用した。 その後の MicroVAX II の 78032 CPU (DC333) と 78132 FPU (DC335) がMicroVAXアーキテクチャを完全VLSI（マイクロプロセッサ）で実装したものである。78032 はメモリ管理ユニットを内蔵した初のマイクロプロセッサである。MicroVAX II の中核部は1枚の基板で実装されており、そこにプロセッサと1MBのメモリとDMA機構を備えたQ22-busのインタフェースが搭載されている。MicroVAXシリーズのその後の機種ではさらに改良やメモリの追加が行われていった。 その後、CVAX、SOC（"System-on-a-chip"、ワンチップ版CVAX）、Rigel、Mariah、NVAX とチップは進化していった。VAXマイクロプロセッサは当初低価格なワークステーション向けに進化し、その後ハイエンドの機種にも使用されていった。メインフレームからワークステーションまでをカバーする1つのアーキテクチャは当時の業界ではVAXだけであった。CVAXマイクロプロセッサのダイには「最良のものを盗むには十分気をつけて」という意味の言葉がいいかげんなロシア語でエッチングされていた。これは当時のソビエト連邦の技術者に向けたメッセージであり、ソ連ではDECのコンピュータをリバースエンジニアリングしてクローンを開発していたためである。 VAXアーキテクチャはRISC技術に取って代わられた。1989年、DECはMIPSアーキテクチャのプロセッサを使用しUltrixの動作するDECstationをリリースした。1992年、DECは自身のRISCプロセッサ Alpha(当初の名称は Alpha AXP)を導入した。この高性能64ビットRISCアーキテクチャ上では 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は、リテラル（即値）、レジスタ、ポストインクリメント、プレデクリメント、レジスタ間接、ポストインクリメント付きレジスタ間接、プレデクリメント付きレジスタ間接、ディスプレースメント (byte, word, long) 付きレジスタ間接、ディスプレースメント (byte, word, long) 付き二重間接、インデックス付きといった多数のアドレッシングモードを持ち、それらを組み合わせて使用できる。プログラムカウンタ (PC) はR15として汎用レジスタの1つとされているので、PCに対して各種アドレッシングモードを使用することもできる。そのためPC相対アドレッシングが可能であり、位置独立コードが容易に書ける。また、VAXには実効アドレスをロードする命令群もあり、それ自体はメモリアクセスしないが、後で使用するアドレスを計算するのに使われる。 VAXの仮想記憶空間は4つのセクションに分割されており、それぞれ1ギガバイトのサイズである。 VMSでは、P0をユーザープロセスの空間、P1はプロセスのスタック、S0はOSで使用し、S1は予約されていた。 VAXにはハードウェアで実装された4つの特権モードが存在する。 プロセッサ・ステータス・ロングワードの下位16ビットがユーザ・プロセスから利用できるプロセッサ・ステータス・ワード(PSW)である。 ほぼ時系列に列挙している。DEC内部で開発中に使用したコードネームをイタリック体で示す。VAXシステムはVLSIプロセッサを使っているか使っていないかで大まかに分けられる。MicroVAX-I はその過渡期の設計である。 VAX 11 シリーズ VAX 11/780 (Star) - TTL CPU, 1977年10月 VAX 11/750 (Comet) - 小型版, 性能も低い TTL ゲートアレイベースの実装, 1980年10月 VAX 11/751 - 堅牢なラックマウント型 11/750 VAX 11/730 (Nebula) - さらに小型化, さらに性能が低いビットスライス実装, 1982年4月 VAX 11/782 (Atlas) - 2プロセッサ版 11/780 VAX 11/784 (VAXimus) - 4プロセッサ版 11/780, 1つの MA780 メモリユニットを共有, 非常に珍しい。 VAX 11/785 (Superstar) - 高速版 11/780, 1984年4月 VAX 11/787 - 2プロセッサ版 11/785 VAX 11/788 (VISQ) VAX 11/725 (LCN) - 低価格版 11/730 VAX 8000 シリーズ VAX 8600 (Venus) - 開発中の別名は 11/790, ECL ゲートアレイ CPU, 1984年10月 VAX 8650 (Morningstar) - 開発中の別名は 11/795, 高速版 8600, VAX 11/78xモデルで使われたSBIバックプレーンを使用した最後の機種, PDP-11互換モードを持つ最後の機種, その後の全 8000 シリーズ機種は VAXBI を使用 VAX 8x00 (Gemini) - LSIベースの Scorpio が失敗したときの予備として並行開発; 出荷されず VAX 8500 (Flounder) - 1プロセッサでかなり低速な 8800 VAX 8530 (Skipjack) - 1プロセッサでやや低速な 8800 VAX 8550 (Skipjack) - 1プロセッサ版 8800, 拡張不可 VAX 8700 (Nautilus) - 1プロセッサ版 Nautilus, 8800にアップグレード可能 VAX 8800 (Nautilus) - 2プロセッサ ECL マクロセルアレイ-ベースの実装, 1986年1月 VAX 8810/8820/8830/8840 (Polarstar) - Nautilusの派生シリーズで1～4プロセッサ, コンソールプロセッサをアップデート VAX 8974/8978 - それぞれ4台か8台の VAX 8810 から構成されるクラスター, 1987年1月 VAX 9000 (Aridus) - 空冷式だが当初水冷式で設計され Aquarius と呼ばれていた, ECL マクロセルアレイ CPU, VAXBI, 1989年10月 VAX 9000 Model 110 VAX 9000 Model 210 VAX 9000 Model 310 VAX 9000 Model 4x0 (x = プロセッサ数, 1～4) MicroVAX/VAXstation I (Seahorse) - 1984年10月 MicroVAX シリーズ - エントリレベルのサーバ。1984年- MicroVAX II (Mayflower) - 1985年5月 MicroVAX III - MicroVAX II のCPUを KA650 CVAX CPU で置換したもの MicroVAX 2000 (TeamMate) - デスクトップ機, 1987年2月 MicroVAX 3100 シリーズ - デスクトップ機, 1987年～ MicroVAX 3100 Model 10 (TeamMate II) - KA41-A CVAX プロセッサ MicroVAX 3100 Model 10e (TeamMate II) - KA41-D CVAX+ プロセッサ MicroVAX 3100 Model 20 - Model 10 の筐体を大きくして拡張性を増したもの MicroVAX 3100 Model 20e - Model 20 の拡張性をさらに高めた MicroVAX 3100 Model 30 (Waverley/S) - KA45 SOC CPU MicroVAX 3100 Model 40 - Model 30 の筐体を大きくして拡張性を増したもの MicroVAX 3100 Model 80 (Waverley/M) - KA47 Mariah CPU MicroVAX 3100 Model 85 (Waverley/M+) - KA55 NVAX CPU MicroVAX 3100 Model 88 (Waverley/M+) - KA58 NVAX CPU MicroVAX 3100 Model 90 (Cheetah) - KA50 NVAX CPU MicroVAX 3100 Model 95 (Cheetah+) - KA51 NVAX CPU MicroVAX 3100 Model 96 (Cheetah++) - KA56 NVAX CPU MicroVAX 3100 Model 98 (Cheetah++) - KA59 NVAX CPU MicroVAX 3300/3400 (Mayfair) - KA640 CPU MicroVAX 3500/3600 (Mayfair-II) - KA650 CPU, 1987年9月 MicroVAX 3800/3900 (Mayfair-III) - KA655 CPU VAXstation シリーズ - ワークステーション型。1984年- VAXstation II - MicroVAX II のワークステーション版 VAXstation II/GPX (Caylith) - ハードウェア強化, 高性能カラーグラフィックス, 1985年12月 VAXstation 2000 - MicroVAX 2000 のワークステーション版 VAXstation 3100 シリーズ VAXstation 3100 Model 30 (PVAX) - KA42-A CVAX CPU VAXstation 3100 Model 38 (PVAX rev#7) - KA42-B CVAX CPU VAXstation 3100 Model 40 - Model 30 の筐体を大きくしたもの VAXstation 3100 Model 48 - Model 38 の筐体を大きくしたもの VAXstation 3100 Model 76 (RigelMAX) - KA43-A Rigel CPU VT1300 - X端末; VAXstation 3100 Model 30 のディスクレス版 VAXstation 3200/3500 (Mayfair/GPX) - KA650 CVAX CPU VAXstation 3520/3540 (Firefox) - 2個か4個の KA60 CVAX プロセッサを搭載 VAXstation 4000 - TURBOchannel（英語版）バス VAXstation 4000/VLC 別名 Model 30 (PVAX2/VLC) - KA48 SOC ("System On Chip") CPU, 薄いピザボックス型, 標準の72ピンSIMMモジュールを使用可能 VAXstation 4000 Model 60 (PMariah) - KA46 Mariah CPU VAXstation 4000 Model 90 (Cougar) - KA49-A NVAX CPU VAXstation 4000 Model 90A (Cougar+) - KA49-A NVAX CPU VAXstation 4000 Model 96 (Cougar++) - KA49-C NVAX CPU VAXstation 8000 (Lynx) - VAX 8200 ベースのハイエンド3Dワークステーション VAX 4000 シリーズ - VAXstationの後継。1990年- VAX 4000 Model 50 (VAXbrick) - KA600 NVAX プロセッサ, MicroVAX 3x00 や VAX 4000-200 にCPUアップグレード可能 VAX 4000 Model 100/100A (Cheetah-Q) - KA52 NVAX プロセッサ VAX 4000 Model 105A (Cheetah-Q+) - 高速な KA53 NVAX プロセッサ VAX 4000 Model 106A/108 (Cheetah-Q++) - 高速な KA54/KA57 NVAX プロセッサ VAX 4000 Model 200 (Spitfire) - KA660 SOC プロセッサ VAX 4000 Model 300 (Pele) - KA670 Rigel 1.5 μm CMOS プロセッサチップセット, 1989年中ごろ VAX 4000 Model 400 (Omega) - KA675 NVAX プロセッサ VAX 4000 Model 500/500A (Omega/N) - KA680/KA681 NVAX プロセッサ VAX 4000 Model 505A/600/600A (Omega/N+) - KA690/KA691 NVAX プロセッサ VAX 4000 Model 700A (Legacy) - KA692 NVAX プロセッサ VAX 4000 Model 705A (Legacy+) - KA694 NVAX プロセッサ VAX 8000 シリーズ （ミッドレンジ） VAX 8200, VAX 8300 (Scorpio) - 1-2プロセッサ, VAXBI バックプレーン, 1986年1月 VAX 8250, VAX 8350 - 8200/8300の高速版 VAX 6000 シリーズ - VAX 8000 シリーズの後継。以下、x = プロセッサ数, 6000シリーズでは最大6プロセッサ。1988年- VAX 6000 Model 2x0 (Calypso) - CVAX チップセット, 1988年4月 VAX 6000 Model 3x0 (Hyperion) - CVAX+ 1.5 μm CMOS プロセッサチップセット, 1989年1月 VAX 6000 Model 4x0 (Calypso/XRP) - Rigel 1.5 μm CMOS チップセット, 1989年中ごろ VAX 6000 Model 5x0 (Calypso/XMP) - Mariah 1.0 μm CMOS チップセット, 1990年10月（1プロセッサあたり13VUPS（英語版）、モデル500が7450万円から） VAX 6000 Model 6x0 (Neptune) - NVAX 0.75 μm CMOS チップセット, 1991年11月 VAXft - フォールトトレラントシリーズ。1990年- VAXft 3000 Model 310 (Cirrus) - CVAX+ CPUs, 2プロセッサ, ロックステップ型フォールトトレラントシステム, 1990年2月 VAXft Model 110 - 310(Cirrus)の低速/低価格版 VAXft Model 410/610/612 (Cirrus II) - SOC CPUs VAXft Model 810 (Jetstream) - NVAX+ CPUs VAX 7000 シリーズ - Alphaベースの DEC 7000 AXP シリーズとシステム設計が共通。1992年- VAX 7000 Model 6x0 (Laser/Neon) - 最大6個の NVAX+ プロセッサ, Alpha AXP 64ビットプロセッサにフィールドアップグレード可能, 1992年7月 VAX 7000 Model 7x0 (Laser/Krypton) - NVAX5 プロセッサ VAX 7000 Model 8x0 (Laser/Krypton+) - 高速な NVAX5 プロセッサ VAX 10000 Model 6x0 (Blazer) - VAX 7000 Model 6x0 とほぼ同じだが、構成が大きい。1992年7月 VAX XXXX (BVAX) - ハイエンド VAX; 出荷されなかった) VAXserverはVAXのさまざまな機種（MicroVAX、VAX 4000、VAX 6000、VAX 9000）をネットワークサーバ専用に設定・構成したものである。 公認のものも非公認のものも含めて、様々なVAXのクローンが生産された。以下に例を挙げる。 イギリスの Systime Ltd. は初期の VAX 11/750 のクローン Systime 8750 を生産した。 Norden Systems は軍用に堅牢化したVAXシリーズを生産した。 ハンガリーの中央物理学研究所 (KFKI) は初期のVAXのクローン TPA-11/540, 560, 580 を生産した。 チェコスロバキアの SM 52/12 は1986年から生産された。 東ドイツのロボトロンは、VAX-11/780のクローン K 1840 (SM 1710) と MicroVAX II のクローン K 1820 (SM 1720) を生産した。 ソビエト連邦では、VAX-11/730のクローン CM-1700、MicroVAX II のクローン CM-1702、VAX-11/785のクローン CM-1705 を生産した。 [脚注の使い方] ^ “VAX 11/780, The First VAX System (October 1977)”. 2012年11月3日閲覧。 ^ Slater, Robert (1987). Portraits in Silicon. MIT Press. p. 213. ISBN 978-0-262-69131-4. https://books.google.co.jp/books?id=aWTtMyYmKhUC&dq=%22Bill+Strecker%22+vax+designer&redir_esc=y&hl=ja  ^ “VAX 11/780 Computer – CPU”. Computer History Museum. 2012年10月24日閲覧。 ^ The Computer History Simulation Project: MicroVAX II (1985) ^ micro.magnet.fsu.edu, Steal the best, retrieved 30 January 2008. 実際のロシア語のメッセージは次の通り: СВАКС... Когда вы забатите довольно воровать настоящий лучший ^ The Computer History Simulation Project: CVAX (1987), retrieved 30 January 2008 ^ “VAX Systems: A letter from Jesse Lipcon”. 2000年8月15日時点のオリジナルよりアーカイブ。2012年11月3日閲覧。 ^ a b “VAX/VMS at 20”. Digital Equipment Corporation (1997年). 2009年7月27日閲覧。 ^ “VAX MACRO and Instruction Set Reference Manual”. OpenVMS documentation (April 2001). 2012年11月3日閲覧。 ^ VAX Architecture & Assembly Reference. Department of Computer Science, Rochester Institute of Technology. http://cs.rit.edu/~icss352/document/vax_pkt.pdf 2012年9月14日閲覧。  ^ Clinton F. Goss (June 1986), Machine Code Optimization - Improving Executable Object Code, New York University, http://www.ClintGoss.com/mco/ 2011年3月24日閲覧。  ^ アドレッシングという意味では、1GBは230バイトと等しい。 ^ 『VAX概説書』（初）ディジタル イクイップメント コーポレーション インターナショナル 日本支社、1981年10月。  ^ VAX timeline, ヒューレット・パッカードのウェブサイト ^ DIGITAL Computing Timeline ^ Trailing edge, 歴史的コンピュータのシミュレーションプロジェクト ^ SuperASCII 1991年1月号, p. 48. ^ Mark Smotherman (2008年7月19日). “Who are the Computer Architects?”. 2008年9月30日閲覧。 ^ “RAL Informatics Report 1984-85”. 2007年10月15日閲覧。 ^ “The TPA story”. 2007年10月15日閲覧。 ^ Dujnic, J.; Fristacky, N.; Molnar, L.; Plander, I.; Rovan, B.: On the history of computer science, computer engineering, and computer technology development in Slovakia. IEEE Annals of the History of Computing, vol. 21, no. 3, pp. 38-48, July-Sept. 1999 ^ Laimutis Telksnys, Antanas Zilinskas: Computers in Lithuania. IEEE Annals of the History of Computing, vol. 21, no. 3, pp. 31-37, July-Sept. 1999 「SuperASCII 1991年1月号」第2巻第1号、株式会社アスキー出版、1991年1月1日。  ウィキメディア・コモンズには、VAXに関連するカテゴリがあります。 VAX & VMSものがたり History of OpenVMS：40th Anniversary - HPE History of OpenVMS OpenVMS.org OpenVMSユーザー向けサイト; VAXについても情報あり DEC Microprocessors NetBSD VAX Hardware Documentation VAXarchive Chuck's House of VAX OpenBSD on VAX