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.