SPARC: Różnice pomiędzy wersjami
[wersja nieprzejrzana] | [wersja nieprzejrzana] |
Usunięta treść Dodana treść
m →Linki zewnętrzne: Kategoria:Architektury procesorów |
redakcja |
||
Linia 6:
Procesory opracowane na podstawie architektury SPARC używane są powszechnie w wysokowydajnych [[serwer]]ach, [[stacja robocza|stacjach roboczych]], a także [[systemy wbudowane|systemach wbudowanych]] (ang. ''embeded'').
Zaprezentowane po raz pierwszy w 1985 roku przez [[Sun]]'a. Architektura SPARC, będąca zawczasu bardzo radykalna, pozwala na ominięcie wielokrotnych pętli mnożenia i dzielenia. Inną podstawową cechą architektury SPARC,
===Specyfikacja SPARC-v9===
[[Grafika:SPARC-okno-rejestrow.png|thumb|200px|right|Zasada działania okna rejestrów]]
Architektura SPARC-v9 zawiera dwa typy rejestrów: rejestry ogólnego przeznaczenia (nazywane rejestrami roboczymi) oraz rejestry statusowe/kontrolne.
* Zestaw rejestrów roboczych
** Rejestry całkowitoliczbowe (rejestry ''r'')
** Rejestry
* Zestaw rejestrów statusu/kontrolne zawiera, m.in.:
** Rejestr licznika programu (PC)
Linia 21:
** i wiele innych...
'''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''). Rejestry ''r[0] - r[7]'' stanowią zestaw rejestrów globalnych o nazwach odpowiednio ''g0 - g7''. Rejestr globalny ''g0'' (''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 rejestrze ''r[0]''). Drugim specyficznym rejestrem jest ''r[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
'''Zestaw rejestrów
*32 rejestry pojedynczej precyzji (ang. ''single-precision'' - 32-bity) oznaczane jako ''f[0], f[1], - f[31]''
*32 rejestry podwójnej precyzji (ang. ''double-precision'' - 64-bity) oznaczone jako ''f[0], f[2], - f[62]''
*16 rejestrów poczwórnej precyzji (ang. ''quad-precision'' - 128-bitów) oznaczone jako ''f[0], f[4], - f[60]''
Zestaw tej zorganizowany jest w ten sposób, że rejestrty 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
'''Architektura SPARC-v9''' zawiera kilka specyficznych, w porównaniu do [[x86]] i innych znanych procesorów, aspektów, m.in:
|