
SPARC (ang.Scalable Processor ARChitecture) – architekturamikroprocesorówRISC zaprojektowana początkowo przez firmęSun Microsystems, a od roku 1989 rozwijana przez organizację SPARC International.
Architektura SPARC określa32-bitowy (SPARC version 8) oraz64-bitowy (SPARC version 9)model programowy mikroprocesora (ang.ISA – Instruction Set Architecture) oraz zawiera wskazówki pomagające wimplementacji tej architektury. SPARC jest otwartą architekturą (zgodnie z dawną definicją otwartości – przyp. autora), oznacza to, że dostępna jest publicznie cała dokumentacja opisującaISA oraz wskazówki dla osób lub firm implementujących. Dodatkowo firmy będące członkami organizacji SPARC mają wpływ na rozwój tej architektury oraz prawo do używania znaków handlowych. Dostępna jest także otwarta implementacja – na licencjiGNU LGPL, kod w językuVHDL – procesora o nazwieLEON.
Procesory opracowane na podstawie architektury SPARC używane są powszechnie w wysokowydajnychserwerach,stacjach roboczych, a takżesystemach wbudowanych (ang.embedded).Zaprezentowane po raz pierwszy w 1985 roku przezSun Microsystems. Architektura SPARC, będąca zawczasu bardzo radykalna, pozwala na ominięcie wielokrotnych pętli mnożenia i dzielenia. Inną podstawową cechą architektury SPARC, nieczęsto spotykaną w innych rozwiązaniach, jest zastosowanie bardzo dużego zestawu rejestrów ogólnego przeznaczenia (zalecenia implementacyjne mówią nawet o zestawie 64 do 528 – 64-bitowych rejestrów) dostępnych poprzez „okna rejestrów”, które mogą być przełączane podczas każdorazowego wywołania podprogramu czy obsługi przerwania za pomocą instrukcjiSAVE tak, że zbiór rejestrów stanowiących parametry wywołania podprogramu staje się automatycznie zbiorem rejestrów parametrów lokalnych bez dodatkowych działań programowo-sprzętowych (patrz obrazek).

Architektura SPARC-v9 zawiera dwa typy rejestrów: rejestry ogólnego przeznaczenia (nazywane rejestrami roboczymi) oraz rejestry statusowe/kontrolne.
Rejestry ogólnego przeznaczenia –r, podzielone są na grupy: 8 rejestrów globalnych (ang.global registers), 8 alternatywnych rejestrów globalnych (ang.alternate global registers) oraz zależną od implementacji liczbę zestawów 24 rejestrów dostępnych jako okno rejestrów (ang.register window) podzielone jako: 8 rejestrów wejściowych (ang.in), 8 rejestrów lokalnych (ang.local) i 8 rejestrów wyjściowych (ang.out). Rejestryr[0] – r[7] stanowią zestaw rejestrów globalnych o nazwach odpowiedniog0 – g7. Rejestr globalnyg0 (r[0]) zawiera zawsze wartość zero i zwraca ją podczas odczytu, natomiast podczas zapisu do tego rejestru zapisywana wartość jest ignorowana (tak naprawdę, to odwołanie do tego rejestru za pomocą pewnych instrukcji – LDD, LDA, STD, STA, powoduje zapisanie wyniku w rejestrzer[0]). Drugim specyficznym rejestrem jestr[15] do którego zapisywany jest adres instrukcji wywołania CALL. Wybór pomiędzy zestawami rejestrów globalnych – aktualnym i alternatywnym – odbywa się poprzez wybór w polu AG (ang.alternate global) rejestru stanu procesora PSTATE. Dodatkowy zestaw rejestrów globalnych został wprowadzony w specyfikacji v9. Przełączanie okien rejestrów ogólnego przeznaczeniar realizowane jest za pomocą instrukcji SAVE (zwiększająca numer aktywnego okna) oraz RESTORE (zmniejszająca numer aktywnego okna). Przekroczenie możliwych wartości w rejestrze CWP wskazującego na aktualne okno rejestrów jest kontrolowane przez zawartość rejestrów CANSAVE oraz CANRESTORE i w przypadku przekroczenia procesor generuje pułapkę (ang.trap).
Zestaw rejestrów zmiennopozycyjnych (ang.floating-point)f zawiera:
Zestaw tej zorganizowany jest w ten sposób, że rejestry mogą na siebie nachodzić. Zestaw ten w przeciwieństwie do rejestrów ogólnego przeznaczenia nie jest podzielony na okna rejestrów i jest dostępny cały czas. Dostęp i operacje wykonywane na tych rejestrach realizowany jest za pomocą specjalnych instrukcji zmiennopozycyjnychFPop. Zestaw rejestrów oraz wykonywane na nich operacje zgodne są z normą IEEE std 754-1985.
Architektura SPARC-v9 zawiera kilka specyficznych, w porównaniu dox86 i innych znanych procesorów, aspektów, m.in.:
SPARC International została założona w 1989 roku jako niezależna organizacja niekomercyjna (ang.non-profit) w celu nadzorowania i kierowania rozwojem architektury SPARC. Organizacja posiada prawa do modelu programowego (ang.ISA – Instruction Set Architecture) architektury SPARC, znaków handlowych (ang.trademarks) SPARC, oraz pochodnych znaków handlowych (ang.derivative trademarks – TM) SPARC. Organizacja jest utrzymywana wyłącznie przez członków organizacji wspierających architekturę SPARC oraz technologieotwartych standardów. Członkami organizacji SPARC są m.in.:Fujitsu, ORACLE America (dawniejSun Microsystems),Texas Instruments,LSI Logic,Toshiba Corporation oraz wiele mniej lub bardziej znanych firm.
| Początki | |
|---|---|
| Aktywne | |
| Nierozwijane |