Procesor OpenSPARC T1 (1)
Robert Prus, Sun Microsystems
robert.prus@sun.com
wersja 1.9, 12 czerwiec - 14 wrzesień 2006
Procesor UltraSPARC T1 w całej swojej okazałości (2)
1
Artykuł ten ma się ukazać w Sun Magazine (http://pl.sun.com/press/sunmagazine/), edycja 2/2006.
2
http://opensparc.sunsource.net/images/ultrasparcT1 overlay die.jpg
W dniu 21 marca 2006 roku Sun Microsystems otworzył kod zródłowy procesora Ultra-
SPARC T1 na zasadzie licencji otwartej GNU GPLv2 (3). Jest to wydarzenie przełomowe,
gdyż po raz pierwszy w historii został otworzony pełny kod zródłowy procesora 64-bitowego.
Wydarzenie to rodzi wiele konsekwencji dla całej społeczności IT.
Sun Microsystems w ciągu swojej ponad 24-letniej historii otworzył dla społeczności
open source więcej kodu zródłowego niż jakakolwiek inna organizacja na naszej planecie.
Najbardziej znane przykłady takich inicjatyw to OpenSolaris, OpenOffice, technologia Ja-
va. Otworzenie kodu zródłowego procesora to jednak wydarzenie zupełnie innego charakteru
niż otworzenie kodu zródłowego systemu operacyjnego, czy też aplikacji. W przypadku pro-
cesora należy wyraznie odróżnić otwarcie jego architektury, czyli otwarcie tak zwanego ISA
(Instruction Set Architecture) od otwarcia kodu zródłowego samego procesora wyrażonego w
przeznaczonym do tego celu języku RTL (Register Transfer Language). Termin ISA oznacza
specyfikację interfejsu pomiędzy procesorem, a systemem operacyjnym, czy też aplikacją.
W dużym skrócie jest to po prostu pełna lista instrukcji wykonywanych przez procesor z
dokładnym opisem ich działania. Opublikowanie specyfikacji ISA dla danego procesora jest
warunkiem sine qua non jego zaistnienia na rynku. Bez tego nie można stworzyć kompila-
torów (czy też cross-kompilatorów), systemu operacyjnego czy aplikacji na dany procesor.
Samo ISA może być rozwijane jedynie i wyłącznie przez firmę, która je stworzyła, i wtedy
można mówić o zamkniętym ISA. Albo też ISA może być rozwijane na zasadzie współpracy
wielu różnych firm, organizacji i instytucji, i wtedy można mówić o otwartym ISA. Termin
RTL oznacza natomiast specyfikację precyzyjnie definującą co dokładnie robi dana instrukcja
na poziomie sprzętowym procesora, czyli na poziomie rejestrów czy bloków logicznych, scho-
dząc aż do poziomu bramek i tranzystorów. Jest ona wyrażona w specjalizowanym języku
typu HDL (Hardware Description Language).
Pierwszy komputer z procesorem SPARC (co jest skrótem od Scalable Processor AR-
Chitecture) pojawił się w ofercie Sun w roku 1987. Była to oczywiście stacja robocza, czyli
tradycyjny produkt Sun. W roku 1989 powstała niezależna organizacja SPARC Internatio-
nal (http://www.sparc.org/) o charakterze non-profit. Sun przekazał jej prawa do stworzonej
przez siebie architektury (czyli ISA) SPARC V7. Organizacja ta w następnych latach opra-
cowała i opublikowała standardy SPARC V8 (architektura 32-bitowa) oraz SPARC V9 (ar-
chitektura 64-bitowa). W szczególności organizacja ta przeprowadza testy zgodności i nadaje
certyfikaty zgodności z architekturą SPARC dla procesorów, komputerów (serwerów, stacji
roboczych) i urządzeń peryferyjnych (4). Architektura SPARC V8 stała się pózniej standar-
dem IEEE Standard 1754-1994. Lista członków organizacji SPARC International jest dość
obszerna (http://www.sparc.org/members.html). Tak więc, rozwój architektury SPARC jest
od prawie dwudziestu lat prowadzony w sposób zupełnie otwarty. Wszystkie współcześnie
oferowane procesory SPARC, czy to przez Sun (UltraSPARC IV+, IIIi, T1), czy to przez
Fujitsu (SPARC64 V), są zgodne z architekturą SPARC V9.
3
http://www.sun.com/smi/Press/sunflash/2006-03/sunflash.20060321.3.xml
4
http://www.sparc.org/scd a-i.shtml, http://www.sparc.org/v8.shtml
Wspomniane tutaj dwie firmy nie są jedynymi, które projektują procesory SPARC. Na
istotną uwagę zasługuje tutaj rodzina procesorów LEON rozwijanych przez Gaisler Research
(http://www.gaisler.com/). Procesory LEON2 i LEON3 są implementacjami architektury
SPARC V8 (architektura 32-bitowa). Pod tymi hasłami nie kryją się w zasadzie fizyczne eg-
zemplarze procesora, a tylko tak zwane modele procesora wyrażone w języku VHDL (VHSIC
Hardware Description Language, VHSIC = Very-High-Speed Integrated Circuit). Bazując na
tych modelach można wykonać implementacje ASIC (Application Specific Integrated Circu-
it) lub FPGA (Field Programmable Gate Array), czyli fizyczne egzemplarze procesora. Co
jest ważne, kod zródłowy tych procesorów jest otwarty. Jest to licencja GNU GPL dla LE-
ON3 oraz GNU LGPL dla LEON2. Istnieją odmiany odporne na awarie (fault tolerant) oraz
odporne na promieniowanie (radiation tolerant) tych procesorów. Nadają się ona idealnie do
zastosowań w przemyśle kosmicznym, gdzie z jednej strony jest niezbędna niezwykle wysoka
niezawodność, a z drugiej strony jest niezbędna niezwykle wysoka odporność na promienio-
wanie kosmiczne. Ekscytującą ciekawostką jest to, że procesor LEON SPARC właśnie w tej
chwili orbituje nad planetą Wenus zarządzając instrumentem pomiarowym Venus Monitoring
Camera (VMC) na pokładzie sondy Venus Express wysłanej tam przez Europejską Agencję
Kosmiczną (http://www.sparc.org/flash/2006-05/06may22.1.htm).
Sun nie po raz pierwszy w swojej historii otworzył kod zródłowy procesora SPARC. W
roku 1999 został otworzony kod zródłowy procesora microSPARC zgodnego z architekturą
6
SPARC V8 (5, ). Specyfikacja ta została otworzona na zasadzie licencji Sun Community
Source Licensing (SCSL). Już wtedy noszono się z pomysłem otworzenia kodu zródłowego
procesora 64-bitowego, czyli na owe czasy procesora UltraSPARC.
Ciekawym faktem jest to, że procesor UltraSPARC T1 swoje istnienie w dużej mierze
zawdzięcza właśnie otwartości architektury SPARC! Procesor UltraSPARC T1 oraz jego
starszy brat, procesor o nazwie kodowej Gemini, powstały na bazie kilku projektów toczą-
cych się w firmie Afara Websystems, przejętej przez Sun w lipcu 2002 roku (7). Firma ta
projektowała procesory wielordzeniowe z możliwością równoległego przetwarzania kilku wąt-
ków przez jeden rdzeń w oparciu właśnie o architekturę SPARC, gdyż nie musiała się ona
wtedy obawiać o jakiekolwiek przykre konsekwencje legalno-prawne wykorzystywania tego
ISA.
Sun Microsystems zapowiedział otworzenie kodu zródłowego procesora UltraSPARC T1
w grudniu 2005 roku (8). Powołano wtedy do życia portal http://opensparc.sunsource.net/,
na którym zaczęto publikować różnego typu dokumentację i specyfikacje. Były to:
- UltraSPARC Architecture 2005 Specification. Zawierają one specyfikację ISA wspól-
ną dla wszystkich procesorów 64-bitowych SPARC Suna począwszy od UltraSPARC T1.
5
http://www.sun.com/smi/Press/sunflash/1999-03/sunflash.990302.4.xml
6
http://www.sun.com/software/communitysource/processors/index.xml
7
http://www.sun.com/smi/Press/sunflash/2002-07/sunflash.20020723.1.xml
8
http://www.sun.com/smi/Press/sunflash/2005-12/sunflash.20051206.4.xml
Specyfikacja ta jest zgodna ze specyfikacją SPARC V9 Level 1 i zawiera dużą liczbę roz-
szerzeń tej architektury stworzonych przez Sun. Specyfikacje te opisują nieuprzywilejowany,
uprzywilejowany oraz hiperuprzywilejowany tryb pracy procesora.
- UltraSPARC T1 supplement to UltraSPARC Architecture 2005 Specification. Zawierają
one dodatkowe informacje odnośnie architektury procesora specyficzne dla UltraSPARC T1.
- UltraSPARC T1 Hypervisor API Specification. Zawiera on specyfikację tak zwanego
hiperwizora (hypervisor), co należy utożsamiać ze specyfikacją architektury sun4v. Jest to
technologia wirtualizacji serwera umożliwiająca stworzenie na jednym serwerze z proceso-
rem wielordzeniowym, czyli na przykład UltraSPARC T1, odseparowanych od siebie domen
logicznych (logical domains).
Przysłowiowego pierwszego dnia wiosny tego roku Sun Microsystems udostępnił kluczową
specyfikację dla architektury OpenSPARC T1 bazującej na procesorze UltraSPARC T1 oraz
narzędzia wspomagające projektowanie swojego własnego procesora. Były to:
- Specyfikacja RTL procesora OpenSPARC T1 w języku Verilog. Obecnie jest dostępna
wersja 1.2 tej specyfikacji. Jest ona dostępna na zasadzie licencji otwartej GNU General
Public License w wersji 2.
- Środowisko i narzędzia do przeprowadzenia weryfikacji i testów diagnostycznych pro-
jektu procesora.
- Dodatkowe narzędzia wspomagające wykonywanie symulacji procesora.
- Dodatkowe narzędzia wspomagające syntezę i implementację FPGA procesora.
Zasadniczo kod zródłowy procesora OpenSPARC T1 jest przeznaczony dla inżynierów
sprzętowych uczestniczących w projektowaniu procesora na różnych etapach tego procesu.
Do projektowania, weryfikacji, symulacji i syntezy projektu procesora bazującego na Ultra-
SPARC T1 służą narzędzia Electronic Design Automation (EDA). Oczywiście istnieją takie
narzędzia i jako komercyjne pakiety oprogramowania, i jako oprogramowanie otwarte open
source.
Otwarcie kodu zródłowego procesora UltraSPARC T1 umożliwia stworzenie w jak naj-
bardziej legalny sposób szeroko rozumianych klonów tego procesora. To zresztą było jedną z
intencji Suna stojących za decyzją o otwarciu kodu zródłowego UltraSPARC T1! Przy czym
klony te nie muszą mieć dokładnie takiej samej architektury, jak oryginał. Przykładowo,
zamiast czterech kontrolerów pamięci DDR-2 ze wsparciem dla technologii ochrony pamię-
ci Chipkill, projektant może zaimplementować na swoim klonie inną technologię dostępu
do pamięci. Zamiast jednej jednostki obliczeń zmiennoprzecinkowych FPU współdzielonej
przez osiem rdzeni, projektant może próbować ;) zaimplementować rdzenie ze swoimi wła-
snymi jednostkami FPU. Wszystko to pozwala na stworzenie swojego własnego klona Ultra-
SPARC T1, na przykład w postaci implementacji FPGA, prawie że w garażu! Implementacje
ASIC pozostają jedynie w zasięgu firm mających swoje linie technologiczne produkujące ta-
kie układy. Oczywiście pozostaje kwestia zaprojektowania otoczenia tego klona, czyli reszty
płyty głównej danego urządzenia komputerowego w postaci podsystemu pamięci, podsyste-
mu wejścia-wyjścia. Idealnym zastosowaniem klonów UltraSPARC T1 są wszelakiego typu
specjalizowane urządzenia komputerowe typu embedded.
W przypadku implementacji FPGA należy pamiętać, że ze względu na ograniczenia tech-
nologiczne nie będzie ona tak energooszczędna jak oryginał. Nie będzie też możliwe nawet
zbliżenie się do poziomu wydajności oryginału, gdyż układy FPGA z reguły nie mogą być
taktowane tak wysokimi częstotliwościami, jak układy ASIC. Pozostaje też kwestia ile rdzeni
UltraSPARC T1 uda się zreplikować na danym układzie FPGA. Oczywiście poprzez praco-
chłonny tuning architektury swojego klona UltraSPARC T1 można próbować uzyskać lepsze
rezultaty w odniesieniu do trzech przedstawionych tutaj problemów. Olbrzymią zaletą tech-
nologii FPGA jest to, że aby stworzyć swój własny klon UltraSPARC T1 są wymagane
względnie nieduże nakłady finansowe.
Przykładowo. Dla układu FPGA Virtex-4 XC4VLX200 firmy Xilinx (9) mamy dostępne
maksimum 200,000 tak zwanych logic cells, nazywanych również LUT, z których buduje-
my większe struktury logiczne. Uproszczony rdzeń UltraSPARC T1 przetwarzający tylko
jeden wątek wymaga 80,000 logic cells, pełny rdzeń UltraSPARC T1 przetwarzający czte-
ry wątki wymaga 135,000 logic cells, jednostka zmiennoprzecinkowa FPU wymaga 14,000
logic cells, crossbar CPU-cache wymaga 25,000 logic cells. Tak więc, jak widać, z funda-
mantalnych powodów technologicznych dość trudne będzie zaimplementowanie w układzie
FPGA kilku pełnych rdzeni UltraSPARC T1. Maksymalne przewidywane osiągalne taktowa-
nie rdzenia jest w granicach 60-70 MHz. Więcej informacji na temat możliwości implemen-
tacji architektury OpenSPARC T1 przy użyciu technologii FPGA można znalezć na portalu
http://fpga.sunsource.net/.
Z powyższego widać, że pewnym potencjalnym kierunkiem adaptacji technologii Open-
SPARC T1 jest produkowanie układów FPGA z zaimplementowanym od razu rdzeniem
UltraSPARC T1 w postaci tak zwanego embedded core. W tym momencie można by się już
skupić na projektowaniu pozostałej części logiki na układzie FPGA.
Jednym z elementów strategii otwarcia kodu zródłowego procesora UltraSPARC T1 jest
wspieranie prac społeczności zainteresowanych przeniesieniem systemów operacyjnych na
platformę UltraSPARC T1 i serwery Sun Fire CoolThreads. Stan prac nad przystosowaniem
jądra Linuxa do procesora UltraSPARC T1 jest na etapie finalnym. W bardzo zaawanso-
wanym stadium są prace nad przeniesieniem systemu operacyjnego FreeBSD na procesor
UltraSPARC T1. Z końcem maja zostało ogłoszone, że następna duża edycja dystrybucji
Linuxa o nazwie Ubuntu GNU/Linux 6.06 LTS (Long Term Support) będzie supportowa-
11
na na serwerach Sun Fire CoolThreads T1000 i T2000 (10, ). Jest to pierwszy na rynku
9
http://www.xilinx.com/products/silicon solutions/fpgas/virtex/virtex4/product table.htm
10
http://www.sun.com/smi/Press/sunflash/2006-05/sunflash.20060530.1.xml
11
http://www.ubuntu.com/news/sunfire, http://www.ubuntu.com/news/606released
komercyjny model wsparcia serwisowego dla klienta dla systemu operacyjnego Linux na plat-
formie SPARC! Zainteresowani mogą już teraz ściągnąć obraz płyty CD z nieoficjalną wersją
Ubuntu GNU/Linux 6.06 na platformę SPARC z website Ubuntu (12).
Na bardzo ważną uwagę zasługuje technologia hiperwizora (hypervisor) znana również
pod nazwą architektury sun4v. Jest to technologia, która między innymi pozwala uruchomić
na serwerze opartym na procesorze UltraSPARC T1 (lub też jego klonie) jednocześnie kilka
różnych systemów operacyjnych, jak na przykład Solaris 10, Solaris Nevada, OpenSolaris,
Linux, FreeBSD. Każdy z nich będzie pracował w swojej własnej domenie logicznej. Tech-
nologia ta jest obecnie w fazie beta testów. Tym niemniej, jak już było zaznaczone wyżej,
specyfikacja interfejsu pomiędzy systemem operacyjnym, a hiperwizorem została opubliko-
wana ponad pół roku temu. Specyfikacja ta pozwala na przystosowanie dowolnego systemu
operacyjnego, który może pracować na procesorze w architekturze SPARC V9, do pracy w
domenie logicznej na serwerze z procesorem UltraSPARC T1.
12
http://releases.ubuntu.com/releases/6.06/
Wyszukiwarka
Podobne podstrony:
Egz T1 14Zagadnienia T1egz zal sem2 03 pop t1 (2)T1 GiGG GruszczyńskagT1 pionowanie[PROGRAM] Rondo T1Dumas A Ojciec Balsamo t1SLP 4118B 51 T1011114 Czosnek Przemysław T1 Przemysław Czosnekwięcej podobnych podstron