Alpha-HOWTO.pl.txt

(23 KB) Pobierz
  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ś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
  ______________________________________________________________________

  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...
Zgłoś jeśli naruszono regulamin