Alpha HOWTO
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:
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''.
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:
Obsługa bajtów w pamięci podręcznej i podsystemie pamięci zwykle zwalnia dostęp
do 32 i 64-bitowych danych.
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.
Wyszukiwarka
Podobne podstrony:
Alpha HOWTO plAlpha HOWTO pl 7 (2)Alpha HOWTO pl 4 (2)Alpha HOWTO pl 8 (2)Alpha HOWTO pl (2)Alpha HOWTO pl 12 (2)Alpha HOWTO pl 10 (2)Alpha HOWTO pl 6 (2)Alpha HOWTO pl 13 (2)Alpha HOWTO pl 5 (2)Alpha HOWTO pl 1 (2)Alpha HOWTO pl 11 (2)Alpha HOWTO pl 3 (2)bootdisk howto pl 8PPP HOWTO pl 6 (2)NIS HOWTO pl 1 (2)cdrom howto pl 1więcej podobnych podstron