VAX

DEC VAX
Ilustracja
Typ

32-bity

Premiera

1977

Procesor

VAX (CISC, pamięć wirtualna)

System operacyjny

VAX/VMS, Ultrix, BSD UNIX, VAXELN

VAXarchitektura procesorów opracowana przez firmę Digital; także seria komputerów bazujących na tej architekturze. Ta 32-bitowa architektura opracowana została, aby zastąpić różne (wzajemnie niezgodne) architektury komputerów serii Programmed Data Processor (PDP).

Głównymi cechami architektury VAX-owej była obsługa wirtualnej pamięci implementowanej metodą stronicowania i tzw. ortogonalny zestaw instrukcji[1]. VAX odbierany był jako kwintesencja CISC: posiadał bardzo dużą liczbę trybów adresowania i instrukcji maszynowych, włączając obsługę tak złożonych zagadnień jak dodawanie/usuwanie elementów kolejki.

Nazwa

Nazwa VAX jest skrótem od Virtual Address eXtension (od ang. Rozszerzenie o Adresy Wirtualne) i były ku temu dwa powody: po pierwsze, komputery te były jednymi z pierwszych używającymi wirtualnej pamięci, a po drugie dlatego, że VAX był 32-bitowym rozszerzeniem starszego 16-bitowego komputera PDP-11. Pierwsze wersje VAX-a miały nawet tryb wstecznej zgodności, emulujący wiele spośród instrukcji starego PDP, w szczególności VAX-11, którego nazwa odnosiła się właśnie do rzeczonej zgodności. Późniejsze wersje przerzuciły tę funkcjonalność (jak i wiele z rzadziej używanych instrukcji CISC-owych) na system operacyjny.

Systemy operacyjne

Domyślnym systemem operacyjnym był VAX/VMS (później przemianowany na OpenVMS, przeniesiony na Alphę)[2]. Architektura VAX i system operacyjny VMS były projektowane równolegle, aby najlepiej wykorzystać ich zalety: podobna historia powtórzyła się przy projektowaniu rozwiązania VAXcluster. Inne systemy operacyjne na VAX-a to Unix BSD, w różnych wydaniach włączając 4.3BSD, Ultrix-32, VAXELN i Xinu. Z nowszych warto wymienić NetBSD i OpenBSD obsługujące różne komputery VAX, a także pewne działania mające przystosować Linuxa do pracy na VAX-ach.

Historia

VAX-11/780

Pierwszą wprowadzoną na rynek maszyną VAX był VAX-11/780 pokazany akcjonariuszom Digitala 25 października 1977 r.[3] Za architekturę odpowiedzialny był Bill Strecker, doktorant Gordona Bella[4] na Uniwersytecie Carnegie Mellon[5]. Powstało wiele modeli VAX różniących się wydajnością, funkcjonalnością i cenami. Superminikomputery VAX osiągnęły znaczną popularność w latach 80. XX w.

Przez pewien czas VAX-11/760 był punktem odniesienia w benchmarkowaniu procesorów, ponieważ jego szybkość wynosiła około 1 MIPS. Co ciekawe: rzeczywista liczba instrukcji wykonywanych w ciągu sekundy przez ten komputer była bliższa 500.000. Jako że jeden MIPS VAX-owy równał się prędkości VAX-11/760, komputer o wydajności 27 MIPS-ów VAX-owych wykonywałby ten sam program około 27 razy szybciej niż VAX-11/760. W obrębie społeczności Digitalowej częściej nazywano tę miarę VUP (VAX Unit of Performance – ang. VAX-owa Jednostka Wydajności), ponieważ MIPS-y jako takie nie są porównywalne między różnymi architekturami. Powiązanym z tym pojęciem jest cluster VUP, używany przy pomiarze wydajności rozwiązań VAXcluster. Wydajność tego komputera dalej jest podstawą w benchmarku BRL-CAD-a, narzędziu do analizy wydajności dołączonym do tego pakietu.

VAX 8350 – otwarty

VAX miał wiele różnych implementacji. Oryginalny CPU wykonany był w technologii TTL i zajmował więcej niż jedną szafę. Były też układy zbudowane z wielu macierzy bramek logicznych typu ECL lub technologii macrocell array włączając superminikomputery VAX 8600 i 8800, jak i mainframe’a VAX 9000. CPU zbudowane z zestawów układów scalonych w technologii MOSFET znalazły zastosowanie w maszynach 8100 i 8200.

Ze znaczną zmianą w obrębie architektury VAX wiązał się komputer MicroVAX I: w czasie jego wprowadzenia na rynek technologia nie pozwalała jeszcze na zaimplementowanie pełnego zestawu instrukcji VAX jako pojedynczego układu VLSI (ani nawet jako zestawu układów VLSI, jak uczyniono to w procesorze V-11 systemów 8200 i 8300). Postanowiono więc zaimplementować najbardziej złożone elementy modelu programowego jako oprogramowanie emulujące pozostawiając sprzętową implementację jedynie najpotrzebniejszych operacji. Ten nowy podział znacznie ograniczył złożoność mikrokodu VAX-a, i był nazywany architekturą „MicroVAX”. W komputerze MicroVAX I ALU i rejestry zaimplementowane były na jednej macierzy bramek, a cała reszta funkcji kontrolnych przy pomocy konwencjonalnych układów logicznych.

Implementacja pełnego VLSI to mikroprocesor MicroVAX-a II: 78032 (lub DC333) CPU oraz 78132 (DC335) FPU. Był to jednocześnie pierwszy mikroprocesor wyposażony w MMU[6]. MicroVAX II zbudowany był w oparciu o pojedynczą płytę procesorową i obsługiwał system operacyjny MicroVMS lub Ultrix-32. Miał 1 MB wbudowanej pamięci i wykorzystywał szynę Q-22 z obsługą DMA. Liczni następcy MicroVAX-a II mieli znacznie poprawioną wydajność i pojemność pamięci.

Kolejne VAX-owe procesory VLSI to wyżej wymieniony V-11, CVAX, „SOC” (System on Chip, z ang. „System w jednym układzie”, czyli CVAX zbudowany w postaci jednego układu scalonego), Rigel, Mariah i NVAX. Mikroprocesory VAX rozwinęły się w niedrogie stacje robocze i zastąpiły bardziej rozbudowane modele VAX-ów. Tak szerokie spektrum typów komputerów (od mainframe do stacji roboczych) opartych o jeden model programowy nie było w tamtych czasach powszechne. Na procesorach CVAX były wymalowane różne ciekawe obrazki: na uwagę zasługuje napis „CVAX, jeśli zależy wam na tyle, że kradniecie to, co najlepsze” w łamanym rosyjskim, adresowany do inżynierów sowieckich, którzy dokonywali wstecznej inżynierii kradzionych komputerów DEC dla zastosowań wojskowych[7][8].

Ostatecznie architekturę VAX zastąpiły technologie RISC. W 1989 r. Digital wprowadził linie serwerów i stacji roboczych w architekturze MIPS (odpowiednio DECsystem i DECstation). W 1992 r. Digital wprowadził własną architekturę RISC, Alpha AXP, przemianowaną później na Alpha, i własny układ DECchip 21064: szybki, 64-bitowy procesor zdolny do obsługi systemu operacyjnego OpenVMS.

W sierpniu 2000 roku Compaq ogłosił, że VAX-y przestaną być oferowane klientom[9]. W 2005 r. zakończona została produkcja komputerów VAX, ale stare maszyny są jeszcze w użyciu. W dalszym ciągu dostępne są programowe emulatory VAX-a: SRI CHARON-VAX oraz SIMH.

Architektura procesora

Architektura procesora w skrócie
NazwaVAX
ProjektantDigital Equipment Corporation
Liczba bitów32
Rok wprowadzenia1977
TypCISC, Pamięć-pamięć
Wielkość rozkazówróżna (od 1 do 321 bajtów)
Kolejność bajtówLittle endian
RozszerzeniaVAXvector
Liczba rejestrów16

Mapa pamięci wirtualnej

Pamięć wirtualna komputera VAX podzielona była na 4 sekcje po 1 GB każda (gigabajt w tym kontekście oznacza 230 bajtów):

SekcjaZakres adresów (szesnastkowo)
P00x000000000x3fffffff
P10x400000000x7fffffff
S00x800000000xbfffffff
S10xc00000000xffffffff

W systemie operacyjnym VMS P0 była używana na procesy w przestrzeni użytkownika, P1 na stos, S0 na system operacyjny, a S1 była zarezerwowana.

Poziomy uprzywilejowania

VAX korzystał z czterech poziomów (trybów) uprzywilejowania:

Lp.TrybUżycie w systemie VMSUwagi
0KernelJądro systemu operacyjnegoNajwyższy poziom uprzywilejowania
1ExecutiveSystem plików
2SupervisorPowłoka (DCL)
3UserZwykłe programyNajniższy poziom uprzywilejowania

Rejestr stanu procesora

CMTPMBZFDIScmodpmodMBZIPLMBZDVFUIVTNZVC
3130292726252321201576543210
BityNazwaKomentarz
31PDP-11 compatibility modeang. tryb zgodności z PDP-11
30trace pendingdotyczy śledzenia wykonania programu
29:28MBZ (must be zero)zawsze zero
27first part done (interrupted instruction)dotyczy przerwania[10]
26interrupt stackstos przerwania
25:24current privilege modeobecny poziom uprzywilejowania
23:22previous privilege modepoprzedni poziom uprzywilejowania
21MBZ (must be zero)zawsze zero
20:16IPL (interrupt priority level)granica poziomu priorytetu dla przerwań[11]
15:8MBZ (must be zero)zawsze zero
7decimal overflow trap enablesterowanie zachowaniem w przypadku przepełnienia w przypadku operacji dziesiętnych[12]
6floating-point underflow trap enablejw., ale dotyczy operacji zmiennoprzecinkowych
5integer overflow trap enablejw., ale dotyczy zwykłych operacji całkowitoliczbowych
4traceśledzenie wykonania
3negativewynik ostatniej ujemny
2zerowynik ostatniej operacji zerowy
1overflowczy nastąpiło przepełnienie?
0carrybit przeniesienia

Komputery w technologii VAX

Pierwszym był VAX-11/760 z rodziny VAX-11, we wczesnych latach 80. został on zastąpiony przez high-endowy VAX 8000. Również w latach 80. do rodziny VAX dołączył MicroVAX i VAXstation. Następcą MicroVAX-a był VAX 4000, a VAX 8000 – VAX 6000. W późnych latach 80. zaprezentowano system klasy mainframe, VAX 9000. Na początku lat 90. wprowadzono odporne na awarie komputery VAXft i zgodne z Alphą VAX 7000/10000. Wiele maszyn VAX było również sprzedawanych w wersji VAXserver.

Projekty porzucone

Nie udało się ukończyć projektu BVAX high-endowego VAX-a w technologii ECL. Takoż nie wprowadzono w życie dwóch innych ECL-owych projektów: „Argonaut” i „Raven”[13]. Nigdy nie dostarczono także VAX-a znanego jako „Gemini” (który był projektem awaryjnym na wypadek porażki systemu Scorpio).

Klony

Istniały liczne „klony”, zarówno autoryzowane, jak i pirackie. Wśród nich wymienić warto:

  • Klony wczesnych VAX-ów produkowane przez Systime Ltd z Wlk. Brytanii. Na przykład Systime 8750 (odpowiednik komputera VAX 11/750)[14].
  • Odporne VAX-y odpowiadające specyfikacjom wojskowym oferowane przez Norden Systems jako MIL VAX[2].
  • Węgierskie klony budowane przez Narodowy Instytut Badań Fizycznych (KFKI). Były to klony wczesnych VAX-ów, i nazwane były TPA-11/540, /560 i /580[15].
  • SM 52/12[16] z Czechosłowacji: opracowane przez VUVT w Żylinie i produkowane od 1986 r. przez ZVT w Bańskiej Bystrzycy.

Fotografie

Przypisy

  1. Pojęcie to odnosi się do takiej architektury komputera, gdzie do każdego rodzaju danych można odwoływać się używając każdego z dostępnych w danym komputerze trybów adresowania. Innym przykładem architektury posiadającej tę cechę jest ARM 11. – przypis tłumacza.
  2. a b VAX/VMS at 20. Digital Equipment Corporation, 1997. [dostęp 2007-10-13]. [zarchiwizowane z tego adresu (2009-07-06)].
  3. VAX 11/780, The First VAX System (październik 1977). [dostęp 2099-06-17]. [zarchiwizowane z tego adresu (3 października 2019)].
  4. Jeden z pierwszych pracowników Digitala, inżynier odpowiedzialny m.in. za zaprojektowanie licznych PDP, Sprawował ogólny nadzór nad projektowaniem VAX-a. – przypis tłumacza.
  5. Robert Slater: Portraits in Silicon. MIT Press, 1987. [dostęp 2009-06-17].
  6. Bob Supnik: MicroVax II. The Computer History Simulation Project, 24 lutego 2008. [dostęp 2009-06-17]. (ang.).
  7. Bob Supnik: CVAX. The Computer History Simulation Project, 24 lutego 2008. [dostęp 2009-06-17]. (ang.).
  8. Michael W. Davidson: Steal the best. Florida State University, 3 marca 2004. [dostęp 2009-06-17]. (ang.). Cytat w języku rosyjskim: (ros.) СВАКС... Когда вы забатите довольно воровать настоящий лучший.
  9. VAX Systems: A letter from Jesse Lipcon.
  10. Dosłownie oznacza, że instrukcja zaczęła być wykonywana w momencie przerwania, i należy wznowić jej wykonywanie w momencie powrotu z procedury obsługi przerwania.
  11. Przerwania o niższym priorytecie nie są obsługiwane.
  12. http://www.osdata.com/topic/language/asm/register.htm#processorflags.
  13. Mark Smotherman: Who are the Computer Architects?. 2008-07-19. [dostęp 2008-09-30]. (ang.).
  14. RAL Informatics Report 1984-85. [dostęp 2007-10-15].
  15. Varga Ákos Endr: The KFKI TPA series: much more than just „clones”... [dostęp 2009-06-17]. (ang.).
  16. http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/85/16907/00778981.pdf?temp=x

Media użyte na tej stronie

Microvax 3600 (2).jpg
Digital MicroVAX 3600 with a printer to the right.
VAX 11-780 intero.jpg
Elaboratore Digital VAX 11/780
SPEC-1 VAX 05.jpg
(c) Joe Mabel, CC BY-SA 3.0
The SPEC-1 VAX, the VAX 11/780 that was used as the benchmark for the speed of each of DEC's VAXes. Now on display at the Department of Computer Science & Engineering, University of Washington, Seattle, Washington.
DEC-VAX-8350-front-0a.jpg
(c) I, Adamantios, CC-BY-SA-3.0
DEC (Digital Equipment Corporation) VAX 8350 front view with cover removed.
VAX-11-750.jpg
Autor: Retro-Computing Society of Rhode Island , Licencja: CC BY-SA 3.0
VAX-11/750 minicomputer. From the collection of the RCS/RI.
Vax 11-780 (2).jpg
dettaglio dell'elaboratore Digital VAX 11/780