Alpha HOWTO
Autor: Neal Crook neal.crook@reo.mts.digital.com, Digital
Equipment
(edycja: David Mosberger davidm@azstarnet.com)
v0.11, 6 Czerwca 1997
WWeerrssjjaa ppoollsskkaa:: LLeesszzeekk UUrrbbaańńsskkii ttyyggrryyss@@ffiiddoonneett..oorrgg..ppll
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świad
czenia. 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 stan
dardzie ISO-8859-2. Oryginał tego dokumentu znajduje się pod adresem
http://www.azstarnet.com/~axplinux/.
______________________________________________________________________
Table of Contents:
1. Co to jest Alpha
2. Czym jest Digital Semiconductor
3. Procesory Alpha
4. Wydajność 21064 i 21066
5. Kilka uwag o zegarach
6. Chipsety
7. Płyty główne
8. O bajtach
9. PALcode
10. Przenoszenie systemu na AlphÄ™
11. Więcej informacji
12. Bibliografia
13. Od tłumacza
______________________________________________________________________
11.. CCoo ttoo jjeesstt AAllpphhaa
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.
22.. CCzzyymm jjeesstt DDiiggiittaall SSeemmiiccoonndduuccttoorr
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.
33.. PPrroocceessoorryy AAllpphhaa
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:
2211006644--115500,,116666
EV4 (pierwotnie), EV4S (obecnie)
2211006644--220000
EV4S
2211006644AA--223333,,227755,,330000
EV45
2211006666
LCA4S (rdzeń EV4, z jednostką zmiennoprzecinkową EV4)
2211006666AA--223333
LCA45 (rdzeń EV4, ale z jednostką zmiennoprzecinkową EV45)
2211116644--223333,,330000,,333333
EV5
2211116644AA--441177
EV56
2211226644
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.
44.. WWyyddaajjnnoośśćć 2211006644 ii 2211006666
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 _w_e_w_n_ę_t_r_z_n_y_m_i 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 _z_n_a_c_z_n_i_e większe przepustowości
szyny systemowej (pomimo tego, że ma taką samą ilość wyprowadzeń
sygnałowych - tak, _w_i_e_m, ż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?''.
55.. KKiillkkaa uuwwaagg oo zzeeggaarraacchh
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 (_n_i_e 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.
UUwwaaggaa:: 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.
66.. CChhiippsseettyy
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.
77.. PPłłyyttyy ggłłóówwnnee
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.
EEBB6644: 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.
EEBB6644++: 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.
EEBB6666: 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).
EEBB116644: 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.
AAllpphhaaPPCC6644 (CCaabbrriioolleett): 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.
AAXXPPppccii3333 (NNooNNaammee): 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.
MMuullttiiaa (UUnniivveerrssaall DDeesskkttoopp BBooxx): 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).
DDEECC PPCC 115500 AAXXPP (JJeennsseenn): 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
_s_y_s_t_e_m_ó_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.
88.. OO bbaajjttaacchh
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.
99.. PPAALLccooddee
To jest miejsce na sekcję opisującą kod PAL. Napiszę ją, jeżeli będzie
wystarczajÄ…ce zainteresowanie.
1100.. PPrrzzeennoosszzeenniiee ssyysstteemmuu nnaa AAllpphhęę
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
1111.. WWiięęcceejj iinnffoorrmmaaccjjii
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.
1122.. BBiibblliiooggrraaffiiaa
[1] Bill Hamburgen, Jeff Mogul, Brian Reid, Alan Eustace, Richard
Swan, Mary Jo Doherty i Joel Bartlett.
_O_p_i_s _O_r_g_a_n_i_c_z_n_y_c_h _S_y_s_t_e_m_ó_w _I_l_u_m_i_n_a_c_y_j_n_y_c_h. DEC WRL, Uwaga Techniczna
13, Kwiecień 1989.
1133.. OOdd ttłłuummaacczzaa
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 pl 7 (2)Alpha HOWTO pl 4 (2)alpha howto plAlpha 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