SPARC

procesor typu RISC firmy Sun Microsystems

SPARC (Scalable Processor ARChitecture, česky architektura procesoru s měnitelným měřítkem[1]) je architektura mikroprocesorů typu RISC původně navržená firmou Sun Microsystems roku 1985. SPARC je registrovanou obchodní značkou organizace SPARC International, Inc., která vznikla roku 1989 za účelem otevřít tuto architekturu ostatním výrobcům. Mezi licencované výrobce dnes patří například Texas Instruments, Cypress Semiconductor a Fujitsu. Architektura je tedy otevřená a neproprietární.

Sun UltraSPARC II (1997)

Ve skutečnosti existují dvě open source implementace této architektury. Zdrojový kód (napsaný v jazyce VHDL) implementace 32bitového SPARC Version 8 zvaná LEON je k dispozici pod licencí LGPL. 64bitová, 32vláknová implementace, která splňuje UltraSPARC Architecture 2005 a SPARC Version 9 zvaná OpenSPARC T1 je též k dispozici pod open source licencí. Implementace OpenSPARC T1 je napsaná v jazyku Verilog.

Implementace SPARC architektury byly původně navrženy pro pracovní stanice a až poté pro větší víceprocesorové servery vyrobené firmami Sun Microsystems a Fujitsu. Stroje SPARC obvykle běží na operačním systému Solaris (který byl přímo navržen pro SPARC), ale lze použít také systémy jako NeXTSTEP, RTEMS, FreeBSD, OpenBSD, NetBSD a Linux.

Postupem času vzniklo několik revizí architektury. SPARC Version 8 (V8), která je považovaná za standardní definici 32bitového SPARCu, byla zveřejněna přibližně roku 1989. 64bitová architektura SPARC Version 9 byla zveřejněna organizací SPARC International roku 1994. Na začátku roku 2006 uvolnil Sun rozšířenou specifikaci architektury – UltraSPARC Architecture 2005.

32bitová SPARC V8 architektura je čistě big-endian. Architektura SPARC V9 používá big-endian instrukce, ale umí přistupovat k datům jak ve formátu big-endian, tak i v little-endian.

Procesor UltraSparc

editovat

UltraSparc je vysoce výkonný, vysoce integrovaný procesor implementující 64bitovou SPARC V9 RISC architekturu. Je schopen udržet a realizovat až 4 strojové instrukce za jeden takt procesoru, souměrně podle požadavků a podmínek rozvětvení a možností cache paměti. Z asynchronního hlediska se jedná o hlavní způsob práce jednotky přivádějící instrukce a data do konce spojení (fronty). Instrukce určené k provedení jsou ukládány (v programovém pořadí) v násobné funkční jednotce, realizované paralelně a pro přidaný paralelismus, které může dokončit mimo pořadí.

UltraSparc podporuje 44bitovou virtuální adresaci a 41bitovou fyzickou adresaci prostoru. Jádro instrukční sady bylo rozšířeno o grafické instrukce, které přináší většinou běžné operace spojené s dvou dimenzionálním obrazovým zpracováním, 2D a 3dimenzionální grafiku a obrazové kompresní algoritmy a paralelní operace na pixel, data s 8- a 16bitovými komponentami.

Doba provedení aplikace je závislá na třech faktorech:

  • počet instrukcí generovaný kompilátorem
  • průměrný počet taktů procesoru potřebný na instrukci
  • doba jednoho taktu procesoru

Průměrný počet cyklů na instrukci záleží na architektuře procesoru a na schopnosti kompilátoru zvýhodnit hlavní HW nabídky.

Redukování instrukcí záleží na přetížení. UltraSparc mají krátké latentní doby operací a zajišťují vnější řízení mezi jednotkami nebo mezi jednou jednotkou. Prázdná cache je obvykle zapříčiněna pomalými (dlouhými) spolu-procesy v CPI, je redukována symboly při použití propojených jednotek (prefetch unit, vstupní buffer a uchovávací buffer), které pracují asynchronně se zbytkem spojení.

Dokončení instrukcí
UltraSparc I UltraSparc II
Technologie 0,5 µm CMOS 0,35 µm CMOS
Časový cyklus 7 ns a rychlejší 4 ns a rychlejší

Symetrická architektura musí být schopná poskytnout pomalý CPI bez porušení časového taktu. Některými z rysů architektury UltraSparc je spojování agresivní implementací a špičkovou technologii. To umožňuje dokončit instrukce v krátkém cyklu (resp. taktu procesoru, viz tabulka) spojení je organizováno tak, že větší část, krátký latentní čas a násobné vnější okruhy, nenaruší hodnotově časový takt.

Instrukční cache (I-cache)

editovat

Instrukční cache je 16KB dvoucestná skupina asociovaných cache s 32bajtovými bloky. Cache je fyzicky indexována a obsahuje fyzické tagy (značky). Skupina je předpovězena jako část z následující položky 13 bity, které se rovnají minimální velikosti stránky. I-cache vrací až 4 instrukce z 8 instrukcí široké cachovací řádky.

Celočíselná odbavovací jednotka IEU

editovat

Jednotka IEU obsahuje tyto komponenty:

  • Dvě aritmetickologické jednotky ALU
  • Multicyklickou celočíselnou násobičku
  • Multicyklickou celočíselnou děličku
  • 8 registrů oken
  • 4 skupiny globálních registrů (normal, alternate, MMU, globální přerušení)
  • zachytávací registr

Jednotka pro čísla s desetinnou čárkou FPU

editovat

Jednotka FPU je rozdělena do samostatných realizačních jednotek, které procesoru UltraSparc dovolují zpracování a zakončení dvou float instrukcí za takt procesoru. Vstupní a výstupní data jsou uchovávána v 32bitovém vstupním registru archívů (pořadač), kde každý vstup může obsahovat 32bitovou hodnotu. Většina instrukcí je plně propojena (s předáváním za jeden takt procesoru), má latentní dobu tři a neovlivňuje přesnost operandů. Precizní model výjimek je udržován synchronizací floatové fronty s frontou integrovanou a s předpovídáním nedostatku pro dlouho čekající operace.

Grafická jednotka GRU

editovat

UltraSparc zavádí základní sadu grafických instrukcí, které poskytují rychlou HW podporu pro dvoudimenzionální a třídimenzionální obrázky a video procesy, obrazovou kompresi, zpracování zvuku… Předpokladem jsou 16bitové a 32bitové částečné sčítání a násobení, booleovské operace a porovnání.

Datová cache (D-cache)

editovat

Zapisuje průchodně, tedy bez alokací – 16 KB přímé mapování cache s dvěma 16bitovými podbloky na řádek. D-cache je virtuálně indexována a fyzicky označena. Značkou je pole s dvěma úrovněmi, tedy aktualizace způsobená naplněním řádku není v rozporu s čtením značky pro přicházející nahrávání.

Velikost ECU
E-cache velikost UltraSparc I UltraSparc II
512 Kib Ano Ano
1 Mib Ano Ano
2 Mib Ano Ano
4 Mib Ano Ano
8 Mib Ano
16 Mib Ano

Externí cache ECU

editovat

Hlavní rolí ECU je dosáhnout vhodné minimalizace nedostatků I-cache a D-cache. Přístupy do E-cache jsou propojeny efektivně – E-cache je částí instrukčního spojení. Následující tabulka ukazuje na velikost E-cache, kterou každý model UltraSparc podporuje. Velikost řádku E-cache je vždy 64 bytů. UltraSparc používá protokol MOESI (modify, own, exclusive, shared, invalid) udržující spojitost systému.

ECU zajišťuje přesahy procesů během nahrávacích a uchovávacích nedostatků. Může zpracovávat čtení a zápis tak, že je nerozlišuje, bez nákladného vracení (2 cykly). Konečně ECU provádí blokové hledání, nahrávání a uchovávání, které nahrává/ukládá 64bitový řádek dat z paměti do float registru souborů.

UltraSparc™ II

editovat

64bitový mikroprocesor druhé generace architektury SPARC v9. Tento procesor dokáže dokončit až 4 instrukce za 1 hodinový takt procesoru. UltraSparc II jsou procesory druhé generace UltraSparců, které používají novou technologii řízení procesů, vyšší hodinové kmitočty, několik režimů SRAM a také několik možných volitelných poměrů frekvencí mezi systémem a procesorem, což jistě nejvíce ocení hlavně vývojáři systémů na bázi tohoto procesoru. Avšak při tom všem tyto procesory stále zůstávají kompatibilní se staršími systémy na bázi procesorů UltraSparc I.

Vlastnosti procesoru UltraSparc II

editovat
  • Vyhovuje architektuře SPARC V9
  • Binárně kompatibilní se všemi SPARCovskými aplikacemi
  • Podporuje multimédia pomocí instrukcí VIS
  • Podporuje multiprocesing
    • propojení 4 procesorů
    • podpora adresářově orientovaného protokolu
  • 4cestný superskalární design s 9 prováděcími jednotkami
    • 4 celočíselné jednotky
    • 3 jednotky plovoucí čárky
    • 2 jednotky pro grafiku
  • Volitelný formát bajtů Little- nebo Big Endian
  • 64bitové ukazatele
  • 16 KB nebloková datová cache
  • 16 kB instrukční cache
    • Jednocyklové sledování větvení
    • 2bitová predikace větvení uvnitř cache
  • Integrovaný řadič cache druhé úrovně
  • Podporuje cache od 512 KB do 16 MB
  • Blokové instrukce Load/Store
  • Vysokorychlostní propojení procesoru s pamětí přenosové rychlosti
    • 1,3 GiB/s Procesor–Paměť
    • 600 MiB/s Pomocný procesor–Paměť
  • Technologie/Pouzdro
    • 0,35µm 5vrstvá Metal CMOS technologie
    • Napájení 3,3 V a 2,6 V
    • 787pinové keramické pouzdro typu LGA (Land Grid Array)
  • Power Management
  • Možnost volby taktu procesoru – režimy kompatibilní s ultraSparc I

Technické parametry procesoru

editovat

V procesoru UltraSparc II jsou na jednom čipu integrovány následující komponenty:

  • Prefetch, branch prediction and dispatch unit (PDU)
  • 16 kB instrukční cache (I-cache)
  • Memory management unit (MMU) obsahující 2 buffery o 64 položkách
    • instruction translation lookaside buffer (iTLB)
    • data translation lookaside buffer (dTLB)
  • Integer execution unit (IEU) se dvěma aritmeticko-logickými jednotkami
  • Load buffer a Store buffer střídající data z pipeline
  • 16 KB datová cache (D-cache)
  • Grafická jednotka (GRU) sestavená ze dvou nezávislých spouštěcích pipeline
  • Řadič externí cache (E-cache)

Instrukční cache (I-cache)

editovat

Instrukční cache je 16 KB pseudo-dvoucestná asociativní cache s 32bajtovými bloky. Je fyzicky indexována a obsahuje fyzické značky. Nastavení je predikováno jako součást tzv. následující položky, takže k adresování cache jsou potřebné jen indexové bity adresy.

Data cache (D-cache)

editovat

Datová cache je typu write-through, nealokující, 16 KB, přímo mapovaná cache se dvěma 16bajtovými subbloky v každém řádku. Je virtuálně indexována a fyzicky značena. Pole značek je dvouportové, takže update značek nekoliduje se čtením těchto značek.

External cache unit (ECU)

editovat

Hlavní role ECU spočívá v tom, že účinně zachycuje nedostatky I-cache a D-cache. ECU může zpracovat jeden přístup do externí cache za takt procesoru. Podporuje také práci s externí cache v režimech 1–1–1 a 2–2 V režimu 1–1–1 je SRAM taktována na frekvenci procesoru. V režimu 2–2 je SRAM taktována na polovinu frekvence procesoru. Velikost externí cache může být 512 KB, 1 MiB, 2 MiB, 4 MiB, 8 MiB a 16 MiB, přičemž velikost řádku je vždy 64 bajtů. K udržení spojitosti systému se používá protokol MOESI. Externí cache je fyzicky indexována a fyzicky značena.

Procesor UltraSparc III

editovat

Třetí generace rodiny mikroprocesorů UltraSparc. Tento procesor je projektován pro práci na 600 MHz. Pro splnění velkých požadavků na vzrůstající výkon internetových serverů bude UltraSparc III nabízet vysoce škálovatelné a robustní řešení systémů, které umožňuje multiprocesorovým systémům pracovat až s 1 000 procesory.

Tento mikroprocesor reprezentuje krok vpřed ve výkonu procesorů Sparc a oslovuje rapidně se měnící požadavky v síťových prostředích. Škálovatelnost procesoru dovoluje jednoduše podporovat rychle se rozvíjející infrastruktury při zachování 100% binární kompatibility pro OS Solaris.

Použitím výkonné Sunovské VIS instrukční sady pro sítě, média, vizualizaci a Javu dostaneme 2 až 3násobný výkon oproti UltraSparc II.

Tento procesor najde nejčastěji použití v aplikacích, jako je CAD, finanční analýza a datové sklady.

Architektury procesorů SPARC

editovat
  • UltraSparc
  • UltraSparc™ II
  • UltraSparc™ IIi
  • SuperSparc™ II
  • UltraSparc III
  • MicroSPARC™ IIep

Reference

editovat
  1. HLAVIČKA, Jan. Architektura počítačů. 2. vyd. Praha: vydavatelství ČVUT, září 1998. 234 s. ISBN 80-01-01847-4. Kapitola 6. Počítače s redukovaným souborem instrukcí, s. 113. 

Literatura

editovat
  • LIČEV, Lačezar; MORKES, David. Procesory – architektura, funkce, použití. 1. vyd. Brno: Computer Press, 1999. 260 s. (Hardware). ISBN 80-7226-172-X. 

Externí odkazy

editovat