# Alpha HOWTO

## Autor: Neal Crook neal.crook@reo.mts.digital.com, Digital Equipment
(edycja: David Mosberger davidm@azstarnet.com)
v0.11, 6 Czerwca 1997
Wersja polska: Leszek Urbański tygrys@fidonet.org.pl
v0.1, 22 Lipca 1998

Ten dokument jest ogólnym przedstawieniem istniejących procesorów Alpha, chipsetów do nich, oraz systemów opartych na tych procesorach. Opisuję sprzęt, a nie oprogramowanie, ukazując mój obszar doświadczenia. Chociaż jestem pracownikiem Digital Equipment Corporation, nie jest to oficjalna wypowiedź Digitala, a wszystkie opinie tu wyrażone są moimi opiniami, nie zaś Digitala. Dokument został napisany w standardzie ISO-8859-2. Oryginał tego dokumentu znajduje się pod adresem http://www.azstarnet.com/~axplinux/.

## 1. Co to jest Alpha

Alpha jest 64-bitową architekturą RISC Digitala. Projekt Alpha został rozpoczęty w połowie 1989 roku, jego celem było stworzenie wysokowydajnej alternatywy dla użytkowników VAX'a. Nie była to pierwsza architektura RISC zaprojektowana przez Digitala, ale jako pierwsza osiągnęła sukces rynkowy. Kiedy Digital ogłosił wyprodukowanie Alphy w marcu 1992, zdecydował się wejść na rynek półprzewodników, sprzedając mikroprocesory Alpha.

Alpha jest czasami nazywana Alphą AXP, z tajemniczych powodów, które nie są warte wyjaśniania. Wystarczy powiedzieć, że jest to jedno i to samo.

## 2. Czym jest Digital Semiconductor

Digital Semiconductor (DS) jest oddziałem firmy Digital Equipment Corporation (Digital - nie lubimy nazwy DEC), który sprzedaje półprzewodniki. Do produktów Digitala zaliczają się procesory (CPU), chipsety, mostki PCI-PCI i układy peryferyjne PCI dla telekomunikacji i multimediów.

## 3. Procesory Alpha

Obecnie istnieją dwie generacje rdzenia CPU (core), które są implementacją architektury Alpha:

- EV4
- EV6

Są różne opinie na temat znaczenia ,,EV'' (uwaga D.M.: prawdziwa odpowiedź to oczywiście ,,Electro Vlassic" [1]), numer odpowiada generacji technologii CMOS Digitala, w której został wykonany rdzeń. A więc EV4 był pierwotnie zaimplementowany w CMOS4. Z biegiem czasu, procesor zwiększa swoją wydajność, poprzez optyczne pomniejszenie do następnej generacji procesu CMOS. EV45 jest więc rdzeniem EV4 zaimplementowanym w technologii CMOS5. Istnieje duża różnica pomiędzy dostosowywaniem projektu do danej technologii, a implementowaniem go od podstaw w tej technologii (nie będę się jednak teraz w to wgłębiał). Jest też parę innych symboli: CMOS4S (pomniejszenie CMOS4) i CMOS5L.

Prawdziwi technofile będą chcieli wiedzieć, że CMOS4 jest technologią 0.75 mikronową, CMOS5 jest technologią 0.5 mikronową, a CMOS6 0.35 mikronową.

A oto konkretne procesory z różnymi rdzeniami:

21064-150,166

> EV4 (pierwotnie), EV4S (obecnie)

21064-200

> EV4S

21064A-233,275,300

> EV45

21066

> LCA4S (rdzeń EV4, z jednostką zmiennoprzecinkową EV4)

21066A-233

> LCA45 (rdzeń EV4, ale z jednostką zmiennoprzecinkową EV45)

21164-233,300,333

> EV5

21164A-417

> EV56

21264

> EV6

Rdzeń EV4 jest dwuinstrukcyjny (dual-issue), znaczy to, że może wykonać dwie instrukcje na jednostkę zegara, posiada superpotokowy rdzeń z jednostką liczb całkowitych (superpipelined core with integer unit), jednostkę zmiennoprzecinkową i przewidywanie instrukcji (branch prediction). Jest w pełni krosowalny (bypassed), korzysta z technologii 64-bitowej i ośmiokilobajtowych pamięci cache, po jednej dla Instrukcji i Danych. Jednostki cache obsługują technologię ,,write-through'' - nigdy nie zostają ,,zanieczyszczone''.

Rdzeń EV45 ma parę usprawnień w stosunku do EV4 - usprawniono trochę jednostkę zmiennoprzecinkową i dodano 16KB cache (po jednym dla Instrukcji i Danych, obsługuje parzystość). (uwaga D.M.: w wiadomości email Neil Crook zauważył, że zmiany w jednostce FPU (jednostka zmiennoprzecinkowa, ang. floating point unit) poprawiają wydajność podzielnika. Podzielnikowi FPU EV4 dzielenie o pojedyńczej precyzji zabiera 34 cykle zegara, a dzielenie o podwójnej precyzji 63 cykle (niezależnie od danych). Dla porównania FPU EV45 zabiera to zwykle 19 cykli (do 34) i 29 cykli (do 63) (zależnie od danych).)

Rdzeń EV5 jest czteroinstrukcyjny, superpotokowany, w pełni krosowalny itp. Posiada 8 kilobajtowe pamięci cache, po jednej dla I i D. Cache te obsługują metodę ,,write-through''. Ma też 96 kilobajtowy trójdrożny cache drugiego poziomu Scache (w procesorze), używający metody ,,write-back'' (może zostać zanieczyszczony). Całkowity wzrost wydajności EV4->EV5 jest większy niż wzrost spowodowany samym zwiększeniem szybkości zegara. Została też ulepszona mikroarchitektura, dla zmniejszenia opóźnień producenta/klienta na niektórych trasach danych.

EV56 posiada mikroarchitekturę podobną do EV5, jednakże dodaje nowe instrukcje dla 8 i 16-bitowych obciążeń (zobacz sekcję ,, O bajtach''. Instrukcje te znajdują zastosowanie głównie w sterownikach urządzeń. Rdzeń EV56 jest zaimplementowany w CMOS6, który jest technologią 2.0V.

21064 został ukończony w marcu 1992. Używa rdzenia EV4, ze 128-bitową szyną danych. Szyna obsługuje ,,łatwe'' podłączenie zewnętrznego cache'u drugiego poziomu, z rozmiarem bloku 256 bitów. Zegar Bcache jest konfigurowalny całkowicie programowo. 21064 może też być skonfigurowana do używania 64-bitowej szyny zewnętrznej (nie jestem jednak pewien, czy jakakolwiek płyta główna dostępna w sprzedaży używa tego trybu). 21064 nie wymusza żadnego sposobu używania Bcache'u, jednakże zazwyczaj jest on skonfigurowany jako write-back cache. 21064 zawiera obejścia pozwalające zewnętrznemu sprzętowi utrzymać zgodność cache'u z Bcache'm i wewnętrzną pamięcią podręczną, ale nie polecam tego sposobu.

21066 używa rdzenia EV6; zawiera wewnętrzny kontroler pamięci oraz mostek PCI. Dla oszczędzania wyprowadzeń procesora, kontroler pamięci ma 64-bitową szynę danych (ale wewnętrzne pamięci podręczne mają rozmiar blokowy 256 bitów, tak jak 21064, a więc wypełnienie bloku zajmuje 4 cykle zegara szyny). Kontroler pamięci obsługuje zewnętrzny Bcache i zewnętrzne DRAM'y. Częstotliwość zegara Bcache i DRAM'ów jest konfigurowana całkowicie programowo, może być dostosowana do rozdzielczości cyklu zegara CPU. Czterocyklowy proces wypełniania bloku cache nie jest taki zły, na jaki wygląda, ponieważ dostęp do DRAM'u działa w trybie stronicowania. Niestety, kontroler pamięci nie obsługuje żadnego z nowych ezoterycznych DRAM'ów (SDRAM, EDO lub BEDO), ani synchronicznych RAM pamięci podręcznej. Interfejs szyny PCI jest w pełni zgodny z normą rev2.0 i działa na częstotliwości 33MHz.

21164 ma 128-bitową szynę danych; obsługuje odczyt rozdzielony (split read), do 2 odczytów na raz (pozwala to na stuprocentowe wykorzystanie szyny danych w idealnych warunkach - można teoretycznie przesyłać 128 bitów danych w każdym cyklu zegara szyny). 21164 pozwala na łatwe podłączenie zewnętrznego cache'u trzeciego poziomu (Bcache), pozwala na synchronizację zewnętrznych systemów ze wszystkimi pamięciami podręcznymi. Rozwiązania wieloprocesorowe są więc łatwe do zaimplementowania.

21164A został ukończony w październiku 1995. Używa rdzenia EV56; jego wyprowadzenia są kompatybilne z 21164, jednak wymaga on oddzielnych szyn zasilających - wszystkie piny zasilania pobierające +3.3V w 21164 zostały podzielone na dwie grupy; jedna pobiera 2.0V dla rdzenia CPU, a druga 3.3V dla sekcji I/O (wejścia-wyjścia). Inaczej niż w innych implementacjach, wyprowadzenia 21164 nie tolerują pięciu woltów. Rezultatem tych zmian jest niekompatybilność płyt głównych 21164 z procesorami 21164A (zauważ jednak, że zaprojektowanie płyty 21164A obsługującej 21164 nie byłoby trudne). 21164A ma też kilka nowych wyprowadzeń dla obsługi nowych 8 i 16-bitowych obciążeń. Polepsza też obsługę synchronicznych SRAM'ów do implementacji zewnętrznego Bcache.

## 4. Wydajność 21064 i 21066

21064 i 21066 mają ten sam rdzeń (EV4). Jeżeli ten sam program zostanie uruchomiony na 21064 i 21066, przy takiej samej szybkości zegara, różnica w wydajności jest tylko rezultatem [większej] przepustowości Bcache/pamięci. Każdy wątek kodu, mający duży współczynnik współpracy z wewnętrznymi pamięciami cache, będzie wykonywał się tak samo na obu jednostkach. Istnieją dwa główne ograniczniki wydajności:

1. Kod który wykonuje dużą liczbę zapisywań. Chociaż 21064 i 21066 mają bufory zapisu, żeby pokryć niektóre opóźnienia to i tak kod który intensywnie zapisuje będzie zdławiony przez przepustowość zapisu na szynie systemowej. To zjawisko zwiększa się, ponieważ wewnętrzna pamięć podręczna cache działa w trybie ,,write-through''.
2. Kod, który chce traktować liczby zmiennoprzecinkowe (float) jako całkowite (integer). Architektura Alphy nie pozwala na przysyłanie w trybie rejestr-rejestr z rejestrów całkowitych na zmiennoprzecinkowe. Taka konwersja musi być dokonana w pamięci (i dlatego, ponieważ wewnętrzna pamięć podręczna działa w trybie w-t, w Bcache). (uwaga D.M.: wygląda na to, że zarówno EV4, jak i EV45 mogą wykonać konwersję przez podstawowy cache danych (Dcache), zakładając, że pamięć jest już stronicowana. W takim przypadku, zawartość sekwencji konwersji będzie uaktualniać Dcache, a kolejne obciążenie jest w stanie, pod pewnymi warunkami, odczytać uaktualnioną wartość d-cache, zapobiegając każdorazowemu obejściu trasy przez Bcache. W praktyce, najlepiej jest wykonywać instrukcje stq/ldt lub stt/ldq jednocześnie, co jest jednak nieintuicyjne.

Jeżeli porównasz 21064A i 21066A, powstaje dodatkowy czynnik w postaci różnych rozmiarów Icache i Dcache w tych procesorach.

21164 rozwiązuje oba problemy: osiąga znacznie większe przepustowości szyny systemowej (pomimo tego, że ma taką samą ilość wyprowadzeń sygnałowych - tak, wiem, że ma dwa razy więcej pinów niż 21064, ale wszystkie dodatkowe to zasilanie i masa! (tak, naprawdę!!)), posiada również pamięć podręczną pracującą w trybie write-back. Jedyny problem, który pozostaje, to odpowiedź na pytanie ,,ile kosztuje?''.

## 5. Kilka uwag o zegarach

Wszystkie obecnie produkowane procesory Alpha używają szybkich zegarów, ponieważ ich mikroarchitektury zostały zaprojektowane w tzw. systemie krótkich cykli zegara (short-tick design). Dlatego też żadna z szyn systemowych nie musi działać z potwornymi prędkościami.

- W 21066(A), 21064(A) i 21164 zewnętrzna pamięć cache (Bcache) jest całkowicie pogramowalna, nawet do rozdzielczości zegara CPU. Na przykład w 275MHz-owym procesorze czas dostępu czytania Bcache może być kontrolowany z szybkością 3.6ns.
- W 21066(A) zegar DRAM jest także programowalny, do rodzielczości zegara CPU (nie zegara PCI, zegara procesora).
- W 21064(A) i 21164(A), częstotliwość szyny systemowej jest mnożnikiem częstotliwości zegara CPU. Większość płyt głównych 21064 taktuje szynę systemową zegarem o częstotliwości 33MHz.
- Płyty główne, używające 21066 mogą taktować PCI każdą częstotliwością relatywną do częstotliwości CPU. Jednakże PCI powinno być taktowane częstotliwością 33MHz.
- Płyty używające chipsetu APECS (zobacz sekcję Chipsety) taktują szynę systemową częstotliwością równą częstotliwości szyny PCI. Znaczy to, że obie szyny działają zwykle na 25 lub 33MHz (ponieważ te częstotliwości po pomnożeniu są równe częstotliwości procesora). Zegar kontrolera DRAM na płytach APECS jest ustawiany programowo w granicach częstotliwości szyny systemowej procesora.

Uwaga: Ktoś zasugerował, że wydajność jego 21066 była za niska, ponieważ kontroler pamięci tego procesora pracował tylko na 33MHz. Jednak superszybkie systemy 21064A posiadają kontrolery pamięci taktowane ,,tylko'' 33MHz.

## 6. Chipsety

DS sprzedaje dwa chipsety wspomagające CPU. Chipset 2107x (APECS) obsługuje 21064(A), a 2117x (ALCOR) obsługuje 21164. Zapowiadany jest 2117xA (ALCOR 2), stosowany w 21164A.

Oba chipsety posiadają kontrolery pamięci i mostki PCI dla procesorów. APECS korzysta z 32-bitowego mostka PCI, ALCOR natomiast z 64-bitowego, który (zgodnie z wymaganiami specyfikacji PCI) może obsługiwać zarówno 32, jak i 64-bitowe urządzenia PCI.

APECS składa się z 6 208-pinowych układów (cztery 32-bitowe przełączniki danych (DECADE), jeden kontroler systemu (COMANCHE), jeden kontroler PCI (EPIC)). Zapewnia kontroler DRAM (128-bitowa szyna pamięci) i interfejs PCI. Wykonuje też całą pracę potrzebną do utrzymania zgodności pamięci, kiedy urządzenie PCI wykonuje bezpośredni dostęp do/z pamięci (ang. DMA, Direct Memory Acces).

ALCOR zawiera 5 układów (4 64-bitowe przełączniki danych (Data Switch, DSW) - 208-pinowe PQFP i jeden kontrolny (Kontrola, Adresy I/O, CIA) - 383-pinowy plastykowy PGA). Zapewnia kontroler DRAM (265-bitowa szyna pamięci), oraz interfejs PCI. W ten sam sposób co APECS obsługuje DMA.

Nie istnieje chipset dla 21066, ponieważ kontroler pamięci i mostek PCI są zintegrowane z procesorem.

## 7. Płyty główne

Grupa inżynieryjna DS produkuje wzorcowe projekty, używające Alphy i w/w chipsety. Są to w większości płyty rozmiaru PC-AT, z funkcjonalnością nowoczesnej płyty głównej do Pentium. Pierwotnie te przykładowe płyty miały być używane jako punkty startu dla firm produkujących tego typu produkty. Te projekty pierwszej generacji były nazywane płytami ewaluacyjnymi (Evaluation Board, EB). Ponieważ ilość czynności inżynieryjnych potrzebnych do wykonania płyty głównej wzrosła (z powodu zegarów o dużych prędkościach i norm emisji i podatności na zakłócenia), nacisk został postawiony na produkcję płyt głównych nadających się do sprzedaży detalicznej.

Oddziały płyt głównych Digitala wyprodukowały kilka generacji maszyn używających procesorów Alpha. Niektóre z tych systemów używają logiki wspomagającej zaprojektowanej przez te oddziały, a inne chipsetów DS. W niektórych przypadkach, płyty używają kombinacji obu tych technik.

Rózne firmy produkują płyty używające procesorów Alpha. Niektóre projektują systemy od podstaw, inne zaś używają chipsetów DS, powielają lub modyfikują przykładowe projekty Digitala, a nawet produkują komputery oparte na zbudowanych i przetestowanych płytach DS.

EB64: Nie używana już płyta do 21064 z kontrolerem pamięci wykorzystującym logikę programowalną. Wejście/Wyjście jest zapewnione przez użycie logiki programowalnej do interfejsowania układu-mostu 486<->ISA. Wbudowany Ethernet, SuperI/O (2 p. szeregowe, 1 p. równoległy, FDD) i ISA. Rozmiar PC-AT. Wykorzystuje standardowe zasilacze PC.

EB64+: Do 21064/21064A (wykorzystuje APECS). Posiada szyny ISA i PCI (3 ISA, 2 PCI, jedna para jest dzielona). Obsługuje 36-bitowe SIMM'y DRAM. Most do ISA'y jest tworzony za pomocą mostka Intel SaturnI/O PCI-ISA. Płyta posiada wbudowany kontroler SCSI (NCR 810 na PCI), Ethernet (Digital 21040), kontroler klawiatury i myszy (złącze PS/2), SuperI/O (2 sz. 1 r., FDD), RTC (ang. Real Time Clock - zegar czasu rzeczywistego - przyp. tłum.)/NVRAM. Boot ROM to EPROM (to niedobrze - vide MILO HOWTO - przyp. tłum.). Rozmiar PC-AT. Wykorzystuje standardowe zasilacze PC.

EB66: Do 21066 lub 21066A. Podsystem Wejścia/Wyjścia jest identyczny do EB64+. Rozmiar PC-AT. Wykorzystuje standardowe zasilacze PC. Schemat EB66 został opublikowany jako plakat reklamowy dla 21066 jako "pierwszy mikroprocesor na świecie posiadający wewnętrzny kontroler PCI" (dla fanów plotek: są dwie wersje tego plakatu - ja narysowałem obwody i napisałem hasło [reklamowe] dla pierwszej, a jacyś Amerykanie zmienili hasło dla drugiej wersji).

EB164: Do 21164 (i to jest w IMHO najlepszy wybór - sam na takim systemie pracuję - a pracowałem na wielu alfach - przyp. tłum.), używa ALCOR'a. Posiada szyny ISA i PCI (3 sloty ISA, 2 64-bitowe sloty PCI (jeden jest współdzielony ze slotem ISA) i dwa 32-bitowe sloty PCI). Używa SIMM'ów ,,plug-in'' do Bcache. Podsystem I/O zawiera SuperI/O (2 sz., 1 r., FDD), kontroler klawiatury i myszy (złącze PS/2), RTC/NVRAM. Boot ROM to Flash (EEPROM - przyp. tłum.). Rozmiar płyty PC-AT. Wymaga zasilacza o napięciu 3.3V.

AlphaPC64 (Cabriolet): pochodzi od EB64+, ale teraz to płyta baby-AT z Flash Boot ROM. Nie posiada kontrolera SCSI ani Ethernetu. Trzy sloty ISA, cztery sloty PCI (jedna para to slot dzielony), używa SIMM'ów Bcache typu ,,plug-in''. Wymaga zasilacza o napięciu 3.3V.

AXPpci33 (NoName): jest bazowany na EB66. Ta płyta jest produkowana przez Techniczny OEM (TOEM) Digitala. Jest przeznaczona dla procesora 21066 o szybkości 166MHz albo 233MHz. Jest to płyta rozmiaru baby-AT i wykorzystuje standardowe zasilacze PC. Posiada 5 slotów ISA i 3 sloty PCI (jedna para jest dzielona). Są dwie wersje płyty - ze złączami klawiatury typu PS/2 lub dużego DIN.

Inne płyty główne dla procesorów 21066: większość, jeżeli nie wszystkie płyty dla 21066 są bazowane na EB66 - nie ma wielu rozwiązań systemowych dla płyt 21066, ponieważ kontrola jest wykonywana w procesorze.

Multia (Universal Desktop Box): Jest to bardzo mały system podstawowy, wykorzystujący 21066. Na płycie znajdują się: 2 gniazda PCMCIA, chip grafiki TGA (21030), Ethernet (chip 21040), kontroler SCSI NCR 810, oraz kontroler stacji dysków, dwa porty szeregowe i jeden równoległy. Ma małe możliwości rozszerzenia (jeden slot PCI), ze względu na mały rozmiar. (Jest jakieś ograniczenie w używaniu slotu PCI, nie pamiętam jakie) (Zauważ, że są też Multie do 21066A i Pentium).

DEC PC 150 AXP (Jensen): Jest to bardzo stary system Digitala - jeden z systemów Alpha pierwszej generacji. Jest tutaj załączony tylko z powodu dostępności takich płyt na rynku komputerów używanych. Jensen jest stojącą na podłodze wieżą. Używa 150MHz 21064 (późniejsze wersje używały szybszych procesorów, ale nie jestem pewien co do prędkości). Płyta używała logiki programowalnej do interfejsowania mostu 486 EISA - CPU.

Inne systemy 21064(A): Istnieją 3 lub 4 płyty (nie załączam tu systemów Digitala) i wszystkie, które znam, wyeluowały z EB64+. Są to:

- EB64+ (niektórzy sprzedawcy pakowali płytę i sprzedawali ją bez modyfikacji); rozmiar AT.
- Krewny EB64+ firmy Aspen Systems; rozmiar baby-AT.
- Płyta serwera firmy Aspen Systems; dużo slotów PCI (razem z mostem PCI).
- AlphaPC64 (Cabriolet), rozmiar baby-AT.

Inne systemy 21164(A): Jedyne, które znam, a nie są klonami EB164, to płyta wykonana przez DeskStation. System ten został zaimplementowany przy użyciu kontrolerów I/O oraz pamięci stosowanych przez DeskStation. Nie znam ich stosunku do Linuxa.

## 8. O bajtach

Kiedy architektura Alpha została przedstawiona, była unikalna pośród innych architektur RISC z powodu przetwarzania 8 i 16-bitowych obciążeń i zmiennych. Wspomagała też 32 i 64-bitowe. (,,longword'' i ,,quadword'' wg. nomenklatury Digitala). Projektanci (Dick Sites, Rich Witek) wyjaśnili tą decyzję następującymi zaletami:

1. Obsługa bajtów w pamięci podręcznej i podsystemie pamięci zwykle zwalnia dostęp do 32 i 64-bitowych danych.
2. Obsługa bajtów czyni ciężkim zbudowanie układu korekcji błędów cache/pamięci o dużej prędkości.

Alpha kompensuje to przez zapewnienie silnych instrukcji manipulujących grupami bajtów w rejestrach 64-bitowych. Standardowe programy testujące operacje na łańcuchach (strings) (np. programy testujące magazynu ,,Byte'') pokazują, że wydajność Alphy jest bardzo wysoka przy operacjach na bajtach.

Absencja bajtowych obciążeń i ładunków zmienia działanie przełączników (semaphores) w oprogramowaniu, oraz podsystemów wejścia/wyjścia. Rozwiązanie problemu I/O Digitala, to użycie kilku niskopoziomowych linii adresowych do zdefiniowania rozmiaru danych podczas przesyłania I/O, oraz do dekodowania tych danych jako bajtów. Jest to tzw. rozproszone adresowanie (sparse addressing). Marnuje ono przestrzeń adresową i powoduje fragmentację pamięci I/O (więcej o skutkach rozproszonego adresowania kiedy uda mi się coś o tym napisać). Zauważ, że pamięć I/O w tym kontekście odnosi się do wszystkich zasobów systemowych PCI i dlatego odnosi się zarówno do pamięci PCI, jak i do przestrzeni adresowej PCI.

Kiedy na rynek wyszedł 21164A, architektura Alphy musiała już zawierać adresowanie bajtów. Wykonywanie tych nowych instrukcji na wcześniejszych procesorach spowoduje wyjątek ,,OPCDEC'' kodu PAL, a wtedy kod będzie obsługiwał ten wyjątek, co będzie miało wpływ na wydajność. Skutkiem tego powninno być (wg. mnie) ograniczenie korzystania z tych instrukcji do sterowników urządzeń, a nie kodu aplikacji.

Te nowe bajtowe obciążenia i ładunki znaczą, że przyszłe chipsety będą w stanie obsługiwać zdefragmentowaną przestrzeń I/O.

## 9. PALcode

To jest miejsce na sekcję opisującą kod PAL. Napiszę ją, jeżeli będzie wystarczające zainteresowanie.

## 10. Przenoszenie systemu na Alphę

Możliwość uruchamiania Linuxa na każdej maszynie z Alphą jest ograniczona tylko twoimi możliwościami zdobycia informacji małych detali jej wnętrza. Ponieważ istnieją wersje Linuxa na EB66, EB64+ i EB164, wszystkie systemy oparte na 21066, 21064/APECS lub 21164/ALCOR powinny działać pod Linuxem z małymi albo bez żadnych modyfikacji. Główna różnica pomiędzy tymi płytami głównymi, to sposób, w jaki route'ują przerwania. Są trzy źródła przerwań:

- urządzenia na płycie
- urządzenia PCI
- urządzenia ISA

Wszystkie systemy użwają mostku Intel System I/O (SIO), jako mostu PCI <-> ISA (główna szyna I/O to PCI, ISA jest drugorzędną szyną używaną do obsługi wolniejszych i ,,wywłaszczających'' (ang. legacy) urządzeń). SIO składa się z tradycyjnej, połączonej pary 8259-tek.

Niektóre systemy (np. NoName) route'ują wszystkie przerwania przez SIO do procesora, a inne mają oddzielny kontroler przerwań i route'ują wszystkie przerwania PCI i przerwanie SIO (wyjście 8295) przez niego, a wszystkie przerwania ISA przez SIO.

Inne różnice pomiędzy systemami to:

- liczba slotów
- posiadane urządzenia wbudowane w płytę
- posiadany Boot ROM - Flash lub EPROM

## 11. Więcej informacji

Wszystkie płyty ewaluacyjne Digital Semiconductor oraz projekty płyt głównych nie są zastrzeżone, a cały zestaw dokumentacji do jednego projektu kosztuje około 50$. Składają się na niego wszystkie schematy, źródła części programowalnych, arkusze danych dla procesora i chipsetu. Zestawy dokumentacji można zakupić u dystrybutorów Digital Semiconductors. Nie sugeruję tutaj, żeby szybko iść i kupić te zestawy, ale chcę zaznaczyć, że takie informacje są dostępne.

Mam nadzieję, że to HOWTO było pomocne. Komentarze/uaktualnienia/sugestie rozwoju przesyłaj do Neala Crooka.

## 12. Bibliografia

[1] Bill Hamburgen, Jeff Mogul, Brian Reid, Alan Eustace, Richard Swan, Mary Jo Doherty i Joel Bartlett.
Opis Organicznych Systemów Iluminacyjnych. DEC WRL, Uwaga Techniczna 13, Kwiecień 1989.

## 13. Od tłumacza

Ponieważ było to HOWTO dosyć skomplikowane pod względem technicznym, użyłem tutaj wielu wyrażeń niezrozumiałych dla ludzi nie zajmujących się elektroniką cyfrową. Jeden rzut oka do książki o elektronice dla początkujących powinien rozwiać te wątpliwości.
To HOWTO jest jednym z dwóch potrzebnych do uruchomienia Linuxa na Alfie. Drugie to MILO-HOWTO, które znajduje się w wersji polskiej na serwerze projektu JTZ ( http://www.jtz.org.pl/). Opisuje ono program ładujący Linuxa na Alfę (odpowiednik LILO).
Jak zwykle, jeżeli znajdziesz jakieś błędy albo masz ciekawe sugestie, napisz do mnie.