A VAX (a Virtual Address eXtension rövidítése) 32 bitesutasításkészlet-architektúrával (ISA) és virtuális memóriával rendelkező számítógépek sorozata, amelyet a Digital Equipment Corporation (DEC) fejlesztett ki és forgalmazott a 20. század végén. Az 1977. október 25-én bemutatott VAX–11/780 volt az első a VAX utasításkészlet-architektúrát megvalósító, népszerű és nagy jelentőségű számítógépek között. A VAX család óriási sikert hozott a DEC számára, a gépcsalád utolsó tagjait az 1990-es évek elején bocsájtották ki. A VAX-ot a DEC Alpha követte, amely számos, a VAX-programok átvételét (portolását) megkönnyítő funkciót vett át a VAX architektúrából.
A VAX-ot a 16 bitesPDP–11 utódjának tervezték, amely a DEC egyik legsikeresebb miniszámítógépe volt, közelítőleg 600 000 eladott egységgel. A rendszer tervezésekor alapvető szempont volt a teljes visszafelé kompatibilitás az előd PDP-11-gyel, miközben a megvalósításban a memóriát teljes 32 bites megvalósításúra bővítették, igény szerint lapozhatóvirtuális memóriával. A VAX név a virtuális címkiterjesztés (Virtual Address eXtension) koncepciójára utalt ami lehetővé tette a programok számára, hogy kihasználják ezt az újonnan elérhető memóriát, miközben továbbra is kompatibilisek maradtak a változatlan, felhasználói módú PDP-11 kóddal. A korai modelleken használt „VAX–11” nevet e képesség kihangsúlyozására választották. A VAX a komplex utasításkészletű számítógépek (CISC) családjába tartozik.
A DEC gyorsan elvetette a „−11” márkajelzést, mivel a PDP-11 kompatibilitásnak az 1980-as évek közepén már nem volt nagy jelentősége. A cég magát a „VAX” típusnevet is elvetette volna, mivel ez egy azóta is létező porszívómárka, de erre nem volt lehetősége.[3] A vonal kibővült a csúcskategóriás nagyszámítógépekkel, mint például a VAX 9000, valamint a munkaállomás-méretű rendszerekkel, mint a VAXstation sorozat. A VAX család végül tíz különböző konstrukciót/kialakítást és összesen több mint 100 egyedi modellt tartalmazott. Ezek mindegyike kompatibilis volt egymással, és rendszerint az VAX/VMSoperációs rendszert futtatta.
A „VAX” név a „Virtual Address eXtension” kifejezés rövidítéséből származik, egyrészt azért, mert ezt az új architektúrát a korábbi 16 bitesPDP–11 32 bites kiterjesztésének tekintették, másrészt azért, mert (a Prime Computer után) a virtuális memória egyik legkorábbi alkalmazója volt, ami kezelni tudta ezt a több nagyságrenddel nagyobb címteret.
A VAX processzor korai verzióiban használható volt egy olyan „kompatibilitási mód”, amely a PDP-11 legtöbb utasítását hardveresen hajtotta végre, és a VAX–11 márkanévben a „11” éppen ezt a kompatibilitást emeli ki. A későbbi verziók a kompatibilitási módot és a kevésbé használt CISC-utasítások egy részét az operációs rendszer szoftveréből emulálták.
Utasításkészlet
A VAX utasításkészletet nagy teljesítményűnek és ortogonálisnak tervezték.[6] Bevezetésekor a programok nagy része assembly nyelven íródott, így fontos volt, hogy létezzen egy „programozóbarát” utasításkészlet.[7][8] Később, ahogy egyre több programot készítettek ill. írtak át magas szintű programozási nyelveken, az utasításkészlet sokkal inkább háttérbe szorult, és csak a fordítóprogramok írói foglalkoztak vele.
A VAX utasításkészlet egyik szokatlan tulajdonsága a regisztermaszkok megléte az alprogramok elején.[9] Ezek tetszőleges bitminták, amelyek előírják, hogy az alprogramra történő vezérlésátadás során mely regisztereket kell megőrizni. A legtöbb architektúrában a fordító(program) feladata, hogy előállítsa a szükséges adatok mentésére szolgáló utasításokat, ami általában a hívási veremben történő ideiglenes tárolás. A 16 regiszterrel rendelkező VAX-on ehhez akár 16 utasításra lett volna szükség az adatok mentéséhez és további 16 utasításra a visszaállításhoz. A maszk ennek a 16 műveletnek a hardveres végrehajtását váltja ki egyetlen 16 bites érték használatával, így időt és memóriát takarít meg.[6]
Mivel a regisztermaszk a végrehajtható kódba ágyazott adat egy formája, ez megnehezíti a gépi kód lineáris elemzését a fordításkor és bonyolultabbá teszi a gépi kódon alkalmazott optimalizálási technikákat.[10]
Operációs rendszerek
A VAX natív operációs rendszere a Digital VAX/VMS volt. Ezt 1992 júliusában átnevezték OpenVMS-re, ezzel is jelezve, hogy egy nyílt és a POSIX szabványoknak megfelelő rendszer, elhagyva a VAX kapcsolatot, mivel folyamatban volt más architektúrára (az Alpha processzorra) való áttérés. Az OpenVMS megkapta az X/Open konzorcium XPG4 specifikációjának megfelelő minősítést.[11] A VAX architektúra és a VMS operációs rendszer tervezése párhuzamosan folyt, hogy mindkettő maximálisan kihasználja a másik lehetőségeit, ahogy a VAXcluster rendszer kezdeti megvalósításában is.
Az 1980-as években a Digital egy új hypervisort fejlesztett ki a VAX architektúrához VMM (Virtual Machine Monitor) néven, amely VAX Security Kernel néven is ismert – azzal a céllal, hogy lehetővé tegye a VMS és az ULTRIX több izolált példányának futtatását ugyanazon a hardveren.[12] A VMM célja a TCSEC A1 megfelelőség elérése volt. Az 1980-as évek végén a VAX 8000-es sorozatú hardvereken működött, de kereskedelmi forgalomba nem került, és a kiadás előtt leállították.
További VAX hardveren futó operációs rendszerek a BSDUNIX különféle kiadásai a BSD 4.3-as verziójáig, az Ultrix-32, VAXELN és Xinu. A közelmúltban a NetBSD[13] és OpenBSD[14] különböző VAX modelleket támogatott, és kisebb fejlesztések történtek a Linux portolására a VAX architektúrára.[15] Az OpenBSD 2016 szeptemberében megszüntette az architektúra támogatását.[16]
Történet
Az első eladott VAX modell a VAX–11/780 volt, amit 1977. október 25-én mutattak be a Digital Equipment Corporation részvényeseinek éves közgyűlésén.[17] A rendszer főkonstruktőre William D. Strecker volt, C. Gordon Bell egykori végzős hallgatója.[18] Ezt követően több, árban, teljesítményben és kapacitásban eltérő modellt hoztak létre. A VAX szuperminiszámítógépek nagyon népszerűek voltak az 1980-as évek elején.
Egy ideig a VAX–11/780 volt a CPU-sebességtesztek szabványa. Kezdetben egy MIPS sebességű gépként jellemezték, mert teljesítménye egyenértékű volt egy IBM System/360-as gépével, amely egy MIPS-en futott, és a System/360 implementációk korábban de facto teljesítményszabványnak számítottak. Az 1 másodperc alatt végrehajtott utasítások tényleges száma közel 500 000 volt, ami marketinges túlzásokkal kapcsolatos panaszokhoz vezetett. Ennek eredményeként született meg a „VAX MIPS” definíciója, ami konkrétan a VAX–11/780-as modell sebességét jelenti; egy 27 VAX MIPS-en működő számítógép nagyjából 27-szer gyorsabban futtatná ugyanazt a programot, mint a VAX–11/780.
A Digital felhasználói közösségen belül a VUP (VAX Unit of Performance) kifejezést használták leginkább, mivel a MIPS értékek nem hasonlíthatók össze azonos mértékben a különböző architektúrák között. A kapcsolódó klaszter VUP kifejezést informálisan a VAXcluster összesített teljesítményének leírására használták. (A VAX–11/780 teljesítménye továbbra is kiindulási mérőszámként szolgált a BRL-CAD Benchmarkban, a BRL-CAD szilárdtestmodellező szoftver disztribúciójában található teljesítményelemző csomagban.) A VAX–11/780 egy alárendelt önálló LSI–11 számítógépet is tartalmazott, amely mikrokódbetöltő, rendszerindítási és diagnosztikai funkciókat hajtott végre a gazdaszámítógép számára. Ezt a következő VAX modellekből kihagyták. A vállalkozó kedvű VAX–11/780 felhasználók ezért három különböző DEC operációs rendszert futtathattak: VMS-t a VAX processzoron (a merevlemezekről), és RSX–11S-t vagy RT–11-et az LSI–11-en (egyszeres kapacitású hajlékonylemez-meghajtóról).
A VAX számítógépek processzorainak felépítésében több különböző technológiát alkalmaztak. Az eredeti VAX 11/780-at TTL logikával valósították meg, ezekben egyetlen CPU egy négyszer öt láb (122x152 cm) méretű szekrényt töltött ki.[19] Az 1980-as évek során a család csúcskategóriáját folyamatosan továbbfejlesztették egyre gyorsabb diszkrét komponensek felhasználásával, ennek a fejlődésnek az 1989 októberében bemutatott VAX 9000 volt a végpontja. Ez a konstrukció túl bonyolultnak és drágának bizonyult, és végül nem sokkal a bevezetés után megszüntették. Többszörös emittercsatolt logikájú (ECL) kaputömbökből vagy makrocella tömbökből álló csipek alkották a CPU-kat a VAX 8600 és 8800 szupermini, végül a VAX 9000 nagyszámítógép osztályú gépekben. A több egyedi MOSFET csipből álló CPU-megvalósítások közé tartoztak a 8100 és 8200 osztályú gépek. A VAX 11-730 és 725 alsókategóriás gépek processzoraiban az ALU-k az AMD Am2901bitszelet-technológiájú komponensekkel készültek.
A MicroVAX I modell jelentős változást jelentett a VAX családban. Tervezése idején a félvezetőgyártási technológia még nem tette lehetővé, hogy a teljes VAX architektúrát egyetlen VLSI integrált áramköri lapon építsék fel (vagy akár több VLSI lapkán, mint a VAX 8200/8300 típusok V-11 CPU-ja esetén). Ehelyett a MicroVAX I modellben, a VAX architektúrában először, a bonyolultabb VAX-utasításokat (például a pakolt decimális adatformátumhoz kapcsolódó műveleteket) az emulációs szoftverbe helyezték át. Ez a szétválasztás jelentősen csökkentette a szükséges mikrokód méretét; a megoldást „MicroVAX” architektúrának nevezték el. A MicroVAX I-ben az ALU-t és a regisztereket egyetlen kaputömb csipként valósították meg, míg a gép maradék vezérlése hagyományos logika volt.
A MicroVAX miniszámítógép-architektúra teljes VLSI (mikroprocesszoros) megvalósítása a MicroVAX II 78032 (vagy DC333) CPU és a 78132 (DC335) FPU megalkotása idején történt meg. A 78032 volt az első beépített memóriakezelő egységgel rendelkező mikroprocesszor.[20] A MicroVAX II-ben a processzorok egy 8,5 × 10,5 inch (quad) méretű kártyán helyezkednek el, és a gép MicroVMS vagy Ultrix-32 operációs rendszert futtat. 1 MiB beépített memóriával és DMA átvitelt is támogató Q22-busz interfésszel rendelkezik. A MicroVAX II-t számos további, megnövelt memóriájú és teljesítményű MicroVAX modell követte.
További VLSI VAX processzorok következtek a V-11, CVAX, CVAX SOC (System On Chip, egycsipes CVAX), Rigel, Mariah és NVAX implementációk formájában. A VAX mikroprocesszorok kiterjesztették az architektúrát az olcsó munkaállomásokra, és később a csúcskategóriás VAX modelleket is kiszorították. Az egyetlen architektúrát használó platformok ilyen széles választéka (nagyszámítógéptől munkaállomásig) egyedülálló volt az akkori számítástechnikai iparban. A CVAX mikroprocesszor-lapkákon különböző grafikákat helyeztek el. Például a tört orosz nyelvű „CVAX... ha eléggé törődsz azzal, hogy a legjobbat lopd el” kifejezés is helyett kapott a processzorcsipen, üzenetként a szovjet mérnököknek, mivel köztudomású volt, hogy a Szovjetunióban a DEC számítógépeket és csipeket visszafejtik, lemásolják és katonai célokra használják.[21][22] Az 1980-as évek végére a VAX mikroprocesszorok teljesítménye megnőtt, hogy versenyképesek legyenek a diszkrét kialakításokkal. Ez a 8000-es és 9000-es sorozat megszüntetéséhez és a VAX 6000 Rigel processzoros modelljére, majd később NVAX processzoros VAX 7000-es rendszerre való váltásához vezetett.
A DEC termékkínálatában a VAX architektúrát végül felváltotta a RISC technológia. 1989-ben a DEC bevezette az Ultrix-ot futtató munkaállomások és szerverek sorát, a DECstation és DECsystem családokat, melyekben a MIPS Computer Systems processzorait alkalmazták. 1992-ben a DEC bemutatta saját RISC utasításkészlet-architektúráját, a Alpha AXP-t (később egyszerűen Alpha), és az ezt megvalósító mikroprocesszorát, a DECchip 21064-et, egy nagy teljesítményű 64 bites kialakítást, ami továbbra is képes az OpenVMS futtatására.
2000 augusztusában a Compaq nagy hangon bejelentette, hogy még az év végéig beszüntetik a maradék VAX modellek gyártását,[23] de a régebbi rendszerek továbbra is széles körben használatban maradtak.[24] A Stromasys CHARON-VAX és a SIMH szoftveres VAX emulátorok továbbra is elérhetők. A VMS-t ezek után a VMS Software Incorporated fejlesztette, bár csak az Alpha, HPE Integrity és x86-64 platformokra.
Processzorarchitektúra
DEC VAX regiszterek
31
...
23
...
15
...
07
...
00
(bitpozíció)
Általános regiszterek
R0
0. regiszter
R1
1. -"-
R2
2.
R3
3.
R4
4.
R5
5.
R6
6.
R7
7.
R8
8.
R9
9.
R10
10. -"-
R11
11. regiszter
R12 / AP
12. regiszter / argumentum-mutató
R13 / FP
13. regiszter / keretmutató
R14 / SP
14. regiszter / veremmutató
R15 / PC
15. regiszter / programszámláló
Processzorállapot hosszúszó
(A bitdefiníciókat lásd a lenti táblázatban)
PSL
A virtuális memória elrendezése
A VAX virtuális memóriája négy részre van osztva. Mindegyik rész egy gibibájt méretű (230 bájt címezhető):
Szakasz
Címtartomány
P0
0x00000000 – 0x3fffffff
P1
0x40000000 – 0x7fffffff
S0
0x80000000 – 0xbfffffff
S1
0xc0000000 – 0xffffffff
A VMS esetén a P0 a felhasználói folyamatterület, a P1 a folyamatverem, az S0 az operációs rendszer területe, az S1 pedig foglalt.
Privilegizált üzemmódok
A VAX négy hardveresen megvalósított jogosultsági móddal rendelkezik:
Az első VAX-alapú rendszer a VAX–11/780 volt, a VAX–11 család tagja. A VAX–11/780-at 1984 októberében felváltotta a felső kategóriás VAX 8600, majd az 1980-as évek közepén csatlakoztak hozzá a belépő szintű MicroVAX miniszámítógépek és a VAXstation munkaállomások. A MicroVAX-ot a VAX 4000, a VAX 8000-et a VAX 6000 váltotta fel az 1980-as évek végén, majd bemutatták a VAX 9000-es nagyszámítógép-családot. Az 1990-es évek elején mutatták be a hibatűrő VAXft gépet, valamint az Alpha-kompatibilis VAX 7000/10000-et. VAX-alapú rendszerek változatait VAXserver néven is értékesítették.
A System Industries cég kifejlesztett egy technikát, amely lehetővé teszi több DEC CPU írási hozzáférését egy megosztott lemezhez, ahol a hozzáférés nem egyidejű. Ezt a 'SImultaneous Machine ACceSs' (SIMACS) nevű fejlesztésben valósították meg,[25][26] amely lehetővé tette a speciális lemezvezérlőjükben egy szemafor jelző segítségével több írási kérelem kiszolgálását ugyanarra a fájlra, miközben a lemezt több DEC rendszer használja közösen. A SIMACS a PDP-11 RSTS rendszereken is létezett.
Törölt rendszerek
A megszüntetett rendszerek közé tartozik a BVAX, egy gyors ECL-alapú (emittercsatolt logikával felépített) VAX, és két másik ECL-alapú VAX modell: az Argonaut és a Raven.[27] A Ravent 1990-ben törölték.[28] A Gemini nevű VAX-ot szintén törölték, ami tartalékként szolgált arra az esetre, ha az LSI-alapú Scorpio sikertelen lenne. Ezekből a rendszerekből nem szállítottak.
Klónok
Számos VAX klónt gyártottak, engedélyezett és nem engedélyezett típusokat vegyesen. Példák:
Az Egyesült Királyságbeli Systime Computers Ltd.olyan korai VAX modellek klónjait állította elő, mint a Systime 8750 (a VAX 11/750-nek megfelelő).[29]
A Norden Systems a robusztus, katonai specifikációjú MIL VAX sorozatot gyártotta.[11]
A magyarországi Központi Fizikai Kutatóintézet (KFKI) a korai VAX modellek klónjainak sorozatát állította elő, többek között a TPA–11/540, 560 és 580 típusokat.[30]
Az SzM-1700 a VAX–11/730 szovjet klónja, az SzM-1702 a MicroVAX II klónja, az SzM-1705 pedig a VAX–11/785 klónja.[32] Ezek a rendszerek számos másolt operációs rendszert futtattak – pl. DEMOS (BSD Unix alapú), MOS VP (VAX/VMS alapú) vagy MOS VP RV (VAXELN alapú).[33]
Az NCI-2780 Super-mini, amelyet Taiji-2780 néven is árultak, a VAX–11/780 klónja, amelyet a pekingi ‘North China Institute of Computing Technology’ fejlesztett ki.[34][35]
↑Steal the best. micro.magnet.fsu.edu . (Hozzáférés: 2008. január 30.) The Russian phrase was: СВАКС... Когда вы забатите довольно воровать настоящий лучший
↑CVAX (1987). Computer History and Simulation . (Hozzáférés: 2008. január 30.)
↑ (1999) „On the history of computer science, computer engineering, and computer technology development in Slovakia”. IEEE Annals of the History of Computing21 (3), 38–48. o. DOI:10.1109/85.778981.
Ez a szócikk részben vagy egészben a VAX című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.