VAX

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
DEC VAX
VAX-11-750.jpg
Producent Digital Equipment Corporation
Rozmiar 1 bajtu 8 bitów (oktet)
Długość szyny danych 32-bity
Szyna urządzeń peryferyjnych Unibus, Massbus, Q-Bus, XMI, VAXBI
Architektura CISC, pamięć wirtualna
Systemy operacyjne 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[edytuj | edytuj kod]

Nazwa VAX była skrótem od Virtual Address eXtension (ang. Rozszerzenie o Adresy Wirtualne) i były ku temu dwa powody: po pierwsze komputery te były jednymi z pierwszych użytkowników 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[edytuj | edytuj kod]

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 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[edytuj | edytuj kod]

VAX-11/780

Pierwszą wprowadzoną na rynek maszyną VAX był VAX-11/780 pokazany akcjonariuszom Digitala 25 października 1977[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.

Przez pewien czas VAX-11/760 był punktem odniesienia w benchmarkowaniu procesorów, ponieważ jego szybkość był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-CADa, 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 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", ang. "System na kości", 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 był on 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 Digital wprowadził linie serwerów i stacji roboczych w architekturze MIPS (odpowiednio DECsystem i DECstation). W 1992 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 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[edytuj | edytuj kod]

Architektura procesora w skrócie
Nazwa VAX
Projektant Digital Equipment Corporation
Liczba bitów 32
Rok wprowadzenia 1977
Typ CISC, Pamięć-pamięć
Wielkość rozkazów różna (od 1 do 321 bajtów)
Kolejność bajtów Little endian
Rozszerzenia VAXvector
Liczba rejestrów 16

Mapa pamięci wirtualnej[edytuj | edytuj kod]

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

Sekcja Zakres adresów (szesnastkowo)
P0 0x000000000x3fffffff
P1 0x400000000x7fffffff
S0 0x800000000xbfffffff
S1 0xc00000000xffffffff

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[edytuj | edytuj kod]

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

Lp. Tryb Użycie w systemie VMS Uwagi
0 Kernel Jądro systemu operacyjnego Najwyższy poziom uprzywilejowania
1 Executive System plików
2 Supervisor Powłoka (DCL)
3 User Zwykłe programy Najniższy poziom uprzywilejowania

Rejestr stanu procesora[edytuj | edytuj kod]

CM TP MBZ FD IS cmod pmod MBZ IPL MBZ DV FU IV T N Z V C
31 30 29 27 26 25 23 21 20 15 7 6 5 4 3 2 1 0
Bity Nazwa Komentarz
31 PDP-11 compatibility mode ang. tryb zgodności z PDP-11
30 trace pending dotyczy śledzenia wykonania programu
29:28 MBZ (must be zero) zawsze zero
27 first part done (interrupted instruction) dotyczy przerwania[10]
26 interrupt stack stos przerwania
25:24 current privilege mode obecny poziom uprzywilejowania
23:22 previous privilege mode poprzedni poziom uprzywilejowania
21 MBZ (must be zero) zawsze zero
20:16 IPL (interrupt priority level) granica poziomu priorytetu dla przerwań[11]
15:8 MBZ (must be zero) zawsze zero
7 decimal overflow trap enable sterowanie zachowaniem w przypadku przepełnienia w przypadku operacji dziesiętnych[12]
6 floating-point underflow trap enable jw., ale dotyczy operacji zmiennoprzecinkowych
5 integer overflow trap enable jw., ale dotyczy zwykłych operacji całkowitoliczbowych
4 trace śledzenie wykonania
3 negative wynik ostatniej ujemny
2 zero wynik ostatniej operacji zerowy
1 overflow czy nastąpiło przepełnienie?
0 carry bit przeniesienia

Komputery w technologii VAX[edytuj | edytuj kod]

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.

Maszyny anulowane[edytuj | edytuj kod]

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[edytuj | edytuj kod]

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].

Fotografie[edytuj | edytuj kod]

Wikimedia Commons

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. 2,0 2,1 VAX/VMS at 20. Digital Equipment Corporation, 1997. [dostęp 2007-10-13].
  3. VAX 11/780, The First VAX System (październik 1977).
  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.
  6. Bob Supnik: MicroVax II (ang.). The Computer History Simulation Project, 24 lutego 2008. [dostęp 17 czerwca 2009].
  7. Bob Supnik: CVAX (ang.). The Computer History Simulation Project, 24 lutego 2008. [dostęp 17 czerwca 2009].
  8. Michael W. Davidson: Steal the best (ang.). Florida State University, 3 marca 2004. [dostęp 17 czerwca 2009]. 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. www.osdata.com
  13. Mark Smotherman: Who are the Computer Architects? (ang.). 2008-07-19. [dostęp 2008-09-30].
  14. RAL Informatics Report 1984-85. [dostęp 2007-10-15].
  15. Varga Ákos Endr: The KFKI TPA series: much more than just "clones".. (ang.). [dostęp 17 czerwca 2009].