6. Procesory jiných firem. Obsah 6. Procesory jiných firem. ........................................................................................................ 1 6.1. Acron RISC Machine (ARM) ........................................................................................................ 1 6.1.1. Charakteristika procesoru ARM ................................................................................................................ 2 6.1.2. Architektura procesoru ARM ..................................................................................................................... 3 6.1.3. Specifika procesoru ARM ........................................................................................................................... 4 6.1.4. Instrukční soubor procesoru ARM ............................................................................................................. 5 6.2. RISC procesor Motorola 88000 ................................................................................................... 6 6.2.1. Architektura procesoru .............................................................................................................................. 6 6.2.2. Funkční popis a instrukční soubor ............................................................................................................. 7 6.3. RISC procesory Intel i860 a i960 ................................................................................................. 8 6.4. Alpha ...................................................................................................................................... 10 6.5. PowerPC .................................................................................................................................. 11 6.5.1. Procesor PowerPC 601............................................................................................................................. 11 6.5.2. Proceser PowerPC 620 ............................................................................................................................. 12 6.6. Procesory SPARC ..................................................................................................................... 13 6.7. Procesory MIPS ....................................................................................................................... 14 6.8. Procesory AMD K10 ................................................................................................................. 14 6.9 Závěr ....................................................................................................................................... 18 6.10. Literatura ............................................................................................................................. 18 Klíčová slova .................................................................................................................................. 19 Slovník ........................................................................................................................................... 19
Časová náročnost kapitoly: 370 minut V této kapitole jsou charakterizovány některé implementace procesorů s redukovaným instrukčním souborem. Při popisu architektur jsou uváděna jen ta specifika, která daný procesor RISC odlišují od ostatních nebo která představují vlastnost odlišující se od základních charakteristických vlastností procesoru RISC. Poněkud podrobněji, oproti ostatním procesorům RISC, jsou popsány architektury procesorů Acron RISC Machine a transputeru, včetně popisu jejich instrukčního souboru.
6.1. Acron RISC Machine (ARM)
1
Časová náročnost kapitoly: 80 minut
Acron RISC Machine (ARM) je plně 32 bitový , universální mikroprocesor, který akceptuje principy procesorů s redukovaným instrukčním souborem. Procesor je určen pro mikropočítače a pro nejrůznější aplikace v počítačové grafice, či řídících systémech průmyslových podniků. Může být použit jako základní procesor pracovních stanic (workstations) nebo jako procesor přídavný (akcelerátor). V roce 1988 byl dán do prodeje osobní počítač Acorn Archimedes, který je postaven na základě procesoru ARM.
6.1.1. Charakteristika procesoru ARM
Časová náročnost kapitoly: 20 minut
Základní vlastnosti procesoru ARM jsou následující. - 32 bitová datová sběrnice s propustností 32 MB/s, - 25 vnitřních 32 bitových registrů, - přístup do paměti pouze instrukcemi Load/Store, - částečné překrývání vnitřních registrů, - nejdelší doba reakce na přerušení 3 Ţs, - hodinová frekvence 8 MHz, - možnost podmíněného vykonání instrukcí, - 26 bitová adresová sběrnice, dostupný lineární adresový prostor 64 MB, - průměrná rychlost vykonání instrukcí 3 až 4 MIPS, - 32 bitová vnitřní architektura, - možnost připojení standardních pamětí DRAM, - technická podpora pro virtuální poměťový prostor, - jednoduchý a výkonný instrukční soubor, jednoduše využitelné kompilátory jazyků vysoké úrovně programování. Procesor ARM podporuje dva adresové módy. Adresovat lze jednak prostřednictvím čítače instrukcí, jednak prostřednictvím bázové adresy uložené v jednom z vnitřních registrů. Použití koncepce přístupu do paměti pouze instrukcemi Load/Store (Load-Store Architecture) výrazně zjednodušuje výkonnou jednotku (Execution Unit) procesoru, protože pouze několik instrukcí pracuje přímo s pamětí. Vetšina instrukcí pracuje s vnitřními registry. Zvýšení výkonnosti při přístupu do paměti poskytují instrukce násobného přístupu do paměti (Load and Store Multiple Registers), které umožňují rychlé přepínání kontextu, přičemž využívají sekvenčního přístupového režimu do paměti.
2
Procesor ARM podporuje dva základní typy přerušení, které se navzájem liší prioritou a použitím registrů. Nejkratší doba akceptování požadavku na přerušení je poskytována režimem rychlého přerušení FIQ (Fast Interrupt Request). Druhý typ přerušení - IRQ (Interrupt Request) je použit pro obsluhu přerušení nevyžadujících extrémě krátké doby odezvy nebo v případě, že vlastní obsluha přerušení je oproti době reakce procesoru mnohonásobně delší.
6.1.2. Architektura procesoru ARM Časová náročnost kapitoly: 20 minut
Procesor ARM má 44 základních instrukcí a všechny mají jednotnou šířku 32 bitů. Pouze arit.-logické instrukce s registry, případně s přímými operandy, jsou vykonávány v jednom taktu. V procesoru je realizováno 3-stupňové zřetězení instrukcí. Procesor je schopen činnosti ve čtyřech režimech (v jednom uživatelském a třech privilegovaných): - v režimu uživatelském USR, - v režimu supervizora SUP, - v režimu přerušení IRQ, - v režimu rychlého přerušení FIQ. Procesor ARM obsahuje množinu 25 částečně se překrývajících 32 bitových registrů, přičemž programově přístupných je v každém režimu činnosti procesorů pouze 16 registrů. Z množiny 25 registrů procesoru ARM je 15 registrů universálních a zbývajících 10 má speciální funkce (stavové slovo procesoru, registry přiřazené daným režimům činnosti atd.) Množina registrů procesoru ARM: • Registry R0 až R13 jsou přístupné v uživatelském režimu pro libovolný účel. • Patnáctý registr R14, návratový registr uživatelského režimu (User Mode Return Link), je určen výhradně pro uživatelský režim. Aktuální režim činností procesoru určují nejnižší dva bity stavového slova (PSW). • Pět registrů je speciálně určeno pro režim rychlého přerušení (FIQ). Pracuje-li procesor v režimu FIQ, je těchto pět registrů mapováno do registrů R10 až R14 uživatelského režimu. V registru R14 je uložena návratová adresa do přerušeného programu-šetří paměťové cykly v případě uložení návratové adresy do zásobníku v hlavní paměti. Režim FIQ je typicky využíván pro realizaci velmi krátkých programů obsluhy přerušení. • Další dva registry jsou určeny pro režim přerušení (IRQ) a v tomto režimu překrývají registry R13 a R14 uživatelského režimu. Registr R14 je registrem návratové adresy do přerušeného programu. Tohoto režimu se používá pro obsluhy přerušení, u nichž délka obsluhy přerušení výrazně přesahuje čas na "úklid" registrů procesoru. • Další dva registry jsou určeny pro režim supervizora.
3
• • •
V případě aktivace tohoto režimu prostřednictvím instrukce SWI budou těmito registry překryty registry R13 a R14 uživatelského režimu. Určení těchto registrů je identické jako ve výše uvedených režimech. Poslední registr (R15) obsahuje stavové slovo procesoru a čítač instrukcí. Tento registr je sdílen všemi režimy činností. Významově nejvyšších 6 bitů PSW obsahuje stav procesoru (Význam kombinace: Negative, Zero, Carry a Overflow), dalších 24 bitů představuje čítač instrukcí a významově nejnižší dva bity obsahuje aktuální režim činnosti procesoru.
6.1.3. Specifika procesoru ARM Časová náročnost kapitoly: 20 minut Jak bylo uvedeno, procesor ARM obsahuje množinu částečně se překrývajících registrů, takže v případě přerušení nemusí být proveden kompletní úklid registrů procesoru. Zkrácení doby odezvy procesoru je dosaženo, v případě režimu rychlého přerušení FIQ, použitím čtyř lokálních univerzálních registrů a jednoho registru s návratovou adresou. Tyto registry mohou obsahovat všechny ukazatele a různé čítače používané v jednoduchých procedůrách obsluhy "Vstupu/Výstupu", takže lze dasáhnout velmi rychlého opakovaného přepínání procesoru mezi režimem "Uživatelským" a režimem "Rychlého přerušení". V ostatních režimech (režim přerušení IRQ a režim supervizora SUP) je vždy vyčleněn jeden universální registr a jeden registr s návratovou adresou. Dále procesor akceptuje následující přerušení: - chyba v adresování (Address Exception Trap), - chyba při čtení nebo zápisu dat do vnější paměti (Data Fetch Cycle Aborts), - chyba při čtení instrukce z vnější paměti (Instruction Fetch Cycle Aborts), - přerušení programovými prostředky (instrukce SWI), - nedefinovaný kód instrukcí (Undefined Instruction Traps), - reset procesoru. Procesor ARM poskytuje 26 bitovou adresu lineárního paměťového prostoru, což umožňuje adresovat 64 MB fyzického paměťového prostoru. Odkaz na data mimo rozsah způsobí přerušení v důsledku chyby adresování (Address Exception Trap). Instrukce programového přerušení (SWI) je použita k přechodu z uživatelského režimu do režimu supervizora. V průběhu uskutečnění této instrukce vykoná procesor následující posloupnost: - uloží čítač instrukcí R15 do registru R14, který je vyhrazen pro režim SUP, - nastaví dva významově nejnižší bity PSW na indikaci režimu supervizora, - předá řízení na adresu danou vektorem softwarových přerušení.
4
┌───────────┬─────────────────────────────┬──────────┐ │ Adresa │ Funkce │Priorita │ ├───────────┼─────────────────────────────┼──────────┤ │000 0000 │ Reset │ 0 │ ├───────────┼─────────────────────────────┼──────────┤ │000 0014 │ Chyba adresace │ 1 │ ├───────────┼─────────────────────────────┼──────────┤ │000 0010 │ Abort (datový) │ 2 │ ├───────────┼─────────────────────────────┼──────────┤ │000 001C │ Rychlé přerušení (FIQ) │ 3 │ ├───────────┼─────────────────────────────┼──────────┤ │000 0018 │ Přerušení (IRQ) │ 4 │ ├───────────┼─────────────────────────────┼──────────┤ │000 000C │ Abort (instrukční) │ 5 │ ├───────────┼─────────────────────────────┼──────────┤ │000 0004 │ Nedefinovaný instrukční kód │ 6 │ ├───────────┼─────────────────────────────┼──────────┤ │000 0008 │ Softwarové přerušení │ 7 │ └───────────┴─────────────────────────────┴──────────┘
Tabulka č. 6.1. Vektory obsluh přerušení. kde: 0 ... nejvyšší priorita 7 ... nejnižší priorita Vektor obsluh jednotlivých přerušení je uveden v tab.č.5.1. (Processor Exception Vector Map).
6.1.4. Instrukční soubor procesoru ARM Časová náročnost kapitoly: 20 minut
Instrukční soubor procesoru ARM se skládá z instrukcí, které je možno rozdělit do následujících skupin: - instrukce zpracování údajů - zpracování registrových operandů, zpracování přímých operandů, nastavení podmínkového kódu a instrukce aritmetickologické, - instrukce jednoduchého přenosu údajů (4 instrukce LOAD/STORE - přímé nebo indexové), - instrukce blokového přenosu údajů - instrukce vykonávají přenos mezi skupinou registrů a spojitou oblastí paměti, přičemž jeden registr je použit jako směrník, - instrukce větvení a větvení s uchováním návratové adresy (tyto instrukce odkládají PSW do R14), - instrukce přechodu do režimu supervizora, které zahrnují i programové přerušení. Všechny instrukce obsahují čtyřbitové pole podmínky, které determinuje vykonání této instrukce. Vykonání všech instrukcí je podmíněno rovností kódu podmínky v instrukci s kódem podmínky, který je odvozen z příznaků v aktuálním PSW. Instrukce zpracování údajů pracují pouze nad souborem vnitřních registrů a každá z těchto instrukcí obsahuje reference na tři operandy: cílový a dva zdrojové. Cílovým registrem (Rd) může být kterýkoliv z registrů včetně registru PSW (R15). Zdrojové registry mohou být zadány dvěma způsoby: 5
- oba zdrojové operandy (Rm,Rn) jsou registry procesoru, - jeden operand je registr (Rn), druhý je 8bitová konstanta. Instrukce přenosu údajů jsou použity k přenosu dat mezi pamětí a souborem registrů (Load) a naopak (Store). Efektivní adresa je vypočtena součtem obsahu zdrojového registru (Rn) a posuvu (offset) daného 12 bitovou konstantou nebo obsahem dalšího registru (Rm). Posuv (offset) může být přičítán k indexovému registru nebo od něho odčítán. Indexový registr je dán registrem Rm. Inkrementace a dekrementace může být realizována pomocí přeindexování nebo postindexování v závislosti na požadovaném adresním módu. Instrukce přenosu údajů mohou pracovat jak s byty, tak s dlouhým slovem (32 bitů). Byte přečtený z paměti je uložen do významově nejnižších 8 bitů cílového registru a zbytek obsahu je zaplněn nulami. V případě zápisu bytu do paměti je zapsáno 8 významově nejnižších bitů zdrojového registru bez dalších změn v tomto registru. Technickými prostředky procesoru ARM je podporováno adresování fyzické i virtuální paměti. Dva typy instrukcí přenosu obsahují bit T (Translate), který označuje požadavek překladu virtuální adresy na adresu fyzickou. Hodnota bitu T je vyvedena na externí vývod procesoru, který má označení TRANS, čímž je umožněna spolupráce s externí MMU. Instrukce blokového přenosu zabezpečují přenos několika registrů jednou instrukcí. Instrukce obsahuje pole bitů, z nichž každý odpovídá jednomu registru viditelnému v daném režimu. Bit 0 odpovídá R0, bit 1 odpovídá R1 atd. Je-li bit nastaven (má hodnotu 1), je odpovídající registr zahrnut do přenosové operace. Instrukce programového přerušení jsou především použity pro přechod do režimu supervizora. PSW je ukládáno do registru R14 režimu supervizora a hodnota čítače instrukcí je dána adresou softwarového přerušení.
6.2. RISC procesor Motorola 88000 Časová náročnost kapitoly: 40 minut
Jedním z představitelů 3. generace RISC je sada čipů firmy Motorola s typovým označením 88000. RISC procesor Motorola 88000 se skládá ze dvou základních prvků: - plně 32 bitového procesoru 88100 s jednotkou pohyblivé řádové čárky, - jednotky (jednotek) 88200, kterou představuje vyrovnávací paměť a obvody správy hlavní paměti MMU. Jednotku 88200 je možno použít separátně jako vyrovnávací paměť instrukcí nebo dat, případně pro data a instrukce současně.
6.2.1. Architektura procesoru
6
Časová náročnost kapitoly: 20 minut
32 bitový procesor 88100 obsahuje 32 datových registrů a 32 registrů se speciálními funkcemi. Přímo může adresovat 4 GB paměti. Instrukční soubor obsahuje 51 instrukcí. Všechny celočíselné, logické a bitově orientované instrukce vykonává procesor v jednom cyklu. Data mohou být uspořádána jak podle definice big-endian, tak i podle definice little-endian. Instrukční soubor procesoru 88100 obsahuje speciální instrukce pro operace se skupinami bitů. Jejich prostřednictvím je možno v jednom taktu procesoru realizovat maskování, extrakci, či nastavení skupiny bitů v jednom 32 bitovém slově. U procesoru Motorola 88000 je také implementována technika zpožděných skoků. Architektura procesoru Motorola 88000 akceptuje tzv. harwardskou architekturuoddělenou paměť pro data a pro instrukce. Procesor 88100 obsahuje čtyři základní jednotky: - jednotka celočíselné aritmetiky, včetně celočíselné násobičky a děličky, - jednotka pohyblivé řádové čárky, sčítačka je realizována pomocí čtyřstupňového zřetězení, násobička pětistupňového aritmetického zřetězení, - datová jednotka (pomocí třístupňového zřetězení)-vykonává nezávislé načítání operandů, - instrukční jednotka (pomocí dvoustupňového zřetězení)-vy konává přístup do paměti instrukcí. Všechny 4 jednotky jsou schopné pracovat paralelně a mohou vykonávat současně až 11 různých oparací. Procesor 88100 je vyroben technologií HCMOS (High Performance Complemantary Metal-Oxide Semiconductor), ale počítá se s technologií ECL (Emitter Coupled Logic), jejímž použitím bude potom možné procesor taktovat až na 100 MHz. Vysoké přenosové kapacity se dosahuje díky čtyřem navzájem odděleným sběrnicovým systémům. Adresová i datová sběrnice jsou 32 bitové. Při taktu 20 MHz je možno uskutečnit přenos dat až 80 MB/s. K obvodu 88100 je možné připojit až 8 obvodů 88200, čtyři pro data a čtyři pro instrukce.
6.2.2. Funkční popis a instrukční soubor Časová náročnost kapitoly: 20 minut
V procesoru 88100 je technická podpora maximálního využití registrů řešena dvěma způsoby. 1. Sada registrů je přístupná pomocí tří vnitřních sběrnic, dvou zdrojových a jedné cílové. Po zdrojové sběrnici jsou přenášeny vstupní operandy instrukcí. Výsledek
7
operace je předáván na cílovou sběrnici. Takto jsou umožněny tři současné přístupy do registrů, což na minimun omezuje možnost vytváření konfliktů. 2. Mnohonásobné přístupy je nutno synchronizovat. Synchronizace je zabezpečena registrem řídících bitů (Semafor-Scoreboard). Pracuje-li instrukce s registrem, nastaví se v registru příznaků bit, který náleží cílovému registru, na jedničku. Ostatní instrukce pokračují v činnosti tak dlouho, dokud jejich zdrojové a cílové oparandy nemají v registru příznaků nastaven bit.Po ukončení činnosti nastaví instrukce v registru příznaků nulu, čímž ho uvolní pro použití dalším instrukcím. Systém Motorola 88000 může být použit k realizaci multiprocesorových počítačových systémů se sdílenou pamětí. V těchto systémech se vyžaduje důsledná synchronizace přístupu do oblasti společné paměti, aby zjistil, zda v ní již neoperuje jiný procesor. V opačném případě je nucen čekat, případně se zařadit do fronty ostatních čekajících procesorů. Tato činnost je řízena pomocí semaforů, které jsou využity operačním systémem k řízení přístupu do oblasti společné paměti. Pro testování a modifikaci semaforů obsahuje instrukční soubor 88000 atomickou instrukci XMEM. Začne-li jeden procesor v multiprocesorovém systému vykonávat instrukci XMEM, činnost všech ostatních procesorů je přechodně zakázána. Problém zajištění konzistence dat v několika vyrovnávacích pamětech je v případě implementace multiprocesorového systému založeného na bázi procesorů 88000 řešen pomocí obvodu sledujícího dění na paměťové sběrnici M (Bus Snooping). Tento obvod je součástí obvodu 88000. Obvod monitoruje provoz na paměťové sběrnici M. Je-li zaznamenána operace modifikace dat, dojde k automatické aktualizaci všech kopií těchto dat ve všech vyrovnávacích pamětech a v hlavní paměti. Vyrovnávací paměť obvodu 88200 aplikuje skupinově asociativní mapování. Podporuje dva způsoby zajištění konzistence dat v hlavní a vyrovnávací paměti. Je to jednak současný zápis do paměti cache a do hlavní paměti a jednak zápis do paměti cache až při uvolnění bloku z paměti cache.
6.3. RISC procesory Intel i860 a i960 Časová náročnost kapitoly: 30 minut -Procesor i860: 64 bitový mikroprocesor firmy Intel i860 představuje nový směr koncepce procesorů RISC. Jeho paralelní architektura podporuje vykonání až tří operací v jednom časovém okamžiku (tj. jedné celočíselné operace nebo řídící instrukce a až dvou instrukcí v pohyblivé řádové čárce). Návrh architektury je podřízen dosažení maximálního výkonu. Procesor je vnitřně i vnějškově plně 64 bitový, přičemž např. sběrnice mezi vyrovnávacími paměťmi (Cache Buse) má šířku 128 bitů. Na jednom čipu je integrována jednotka 32 bitové celočíselné aritmetiky a řízení, 32/64 bitová zřetězená jednotka pohyblivé řádové čárky reprezentována samostatnou sčítačkou a násobičkou, 64 bitová jednotka podpory 3D grafiky, jednotka správy stránkovacího mechanismu externí paměti, 4 kB instrukční vyrovnávací paměť a 8 kB datová vyrovnávací paměť. 8
Mikroprocesor i860 tvoří následující bloky: - centrální řídící jednotka (Core Execution Unit), - jednotka řízení výpočtů v pohyblivé řádové čárce, - sčítačka v pohyblivé řádové čárce, - násobička v pohyblivé řádové čárce, - grafická jednotka, - jednotka správy paměti MMU a stránkovací jednotka (Paping Unit), - vyrovnávací paměť instrukcí, - vyrovnávací paměť dat, - řídící jednotka sběrnice a vyrovnávacích pamětí. Data mohou být uspořádána jak podle definice big-endian, tak i podle definice littleendian. Procesor poskytuje technickou podporu pro řešení přerušení (vnitřních i vnějších) a pro ladění programů. Procesor i860 poskytuje ze všech uvedených procesorů nejvšeobecnější koncepci implementace atomických instrukcí. Jeho instrukční soubor obsahuje dvě instrukce Lock a Ulock. Posloupnost instrukcí v programu umístěná mezi touto dvojicí je procesorem i860 chápána jako atomická operace. Technické prostředky jednotky pohyblivé řádové čárky jsou připojeny k množině registrů pohyblivé řádové čárky, které mohou být zpřístupněny v několika režimech (třicet dva 32 bitových registrů, šestnáct 64 bitových registrů nebo osm 128 bitových registrů). Vše je podporováno speciálními variantami příkazů Load a Store. Všechny instrukce pohyblivé řádové čárky používají tyto registry jako zdroje a cíle svých operandů. Jednotka řízení výpočtů v pohyblivé řádové čárce řídí činnost sčítačky a násobičky v pohyblivé řádové čárce, realizaci instrukcí, zpracování a reakci na všechna přerušení na základě vstupních a výstupních operandů a aktualizuje stavové bity ve stavovém registru v pohyblivé řádové čárce. Sčítačka a násobička mohou pracovat nezávisle, paralelně, a produkovat tak dva výsledky v jednom časovém okamžiku. Sčítačka v pohyblivé řádové čárce vykonává součty, rozdíly, porovnání a konverze 32 bitových nebo 64 bitových operandů. Je implementována prostřednictvím třístupňového zřetězení. Násobička v pohyblivé řádové čárce vykonává operaci násobení pro celočíselné operandy i pro operandy v pohyblivé řádové čárce. Násobička je implementována prostřednictvím třístupňového zřetězení, přičemž v případě operandů v pohyblivé řádové čárce s dvojnásobnou přesností nepostupuje výsledek v každém taktu, ale v každém druhém. V grafické jednotce je implementována speciální celočíselná logika, která podporuje vykonávání třírozměrných grafických operací. Instrukční soubor i860 tyto interpolace prostřednictvím grafické jednotky přímo podporuje. Jednotka správy paměti a stránkovací jednotka implementuje mechanismy ochrany, stránkování a virtualizace paměti. Jednotka stránkování používá TLB k přepočtu virtuální adresy na fyzickou a ke kontrole přístupových práv. Jsou implementovány dvě základní privilegia při operacích s pamětí: - uživatelská, - supervizora. Uživatelským aplikacím a operačnímu systému je k dispozici 4 GB adresový prostor.
9
Vyrovnávací paměť instrukcí je dvoucestná asociativní paměť o kapacitě 4 kB postavená ze 32 bitových bloků. Je schopna přenášet 64 bitů v jednom strojovém kroku (tj. 320 MB/s při 40 MHz). Vyrovnávací paměť dat je dvoucestná asociativní paměť o kapacitě 8 kB postavená ze 32 bitových bloků. Je schopna přenášet 128 bitů v jednom strojovém kroku (tj. 640 MB/s při 40 MHz). Řídící jednotka sběrnice a vyrovnávacích pamětí zajišťuje přístup dat a instrukcí k centrální řídící jednotce. Mikroprocesor i860 je schopen vykonat v jednom cyklu jednu nebo dvě instrukce (single, resp. dual instruction mode). V režimu vykonávání jedné instrukce je možné zpracovat instrukce buď pouze hlavní výkonnou jednotkou, nebo jednotkou pohyblivé řádové čárky. V duálním režimu mohou obě jednotky pracovat souběžně. V tomto režimu může výkonná jednotka zavádět operandy, ukládat výsledky a realizovat řídící operace cyklu, přičemž vlastní operaci s daty vykonává souběžně jednotka pohyblivé řádové čárky. Je potom možno implementovat knihovnu vektorových operací nad vektory s prvky v pohyblivé řádové čárce. Tímto způsobem je možno dosáhnou až 60 MFLOPS výkonu při taktovací frekvenci 40 MHz. -Procesor i960: Tento procesor poskytuje sekvenční programové prostředí, které je vhodné pro implementaci paralelismu na jednom procesoru. Instrukční soubor i960 je orientován na data v registrech, instrukce pracují se třemi operandy, výměna dat s pamětí je vyhrazena instrukcím Load/Store. Paměť je adresována 32 bitovou adresou. Na dosažení paralelismu poskytuje i960 rozsáhlý instrukční soubor. Několik instrukcí je možno vykonávat souběžně (i operace zápisu a čtení operandů). Program má přístup ke třiceti dvěma 32 bitovým všeobecně určeným registrům a 16 globálním registrům. Tyto registry jsou dostupné v libovolném časovém okamžiku. Právě aktivnímu procesu je dostupno dalších 16 lokálních registrů. Při každém volání nového procesu přidělí procesor i960 nové lokální registry. Implementace registrů a strategie jejich zpřístupnění byla navržena s cílem co nejlepšího přizpůsobení konvencím v používání dat v jazycích vysoké úrovně (např. jazyk C). Parametry mezi procedurami jsou předávány prostřednictvím globálních registrů, lokální data procedur jsou uchovávána v lokálních registrech. Instrukce procesoru i960 mají pevný formát a jednotnou délku 32 bitů. Většina instrukcí akceptuje zásadu jednoduchosti. Součástí instrukčního souboru jsou i složité instrukce. Jejich realizace je procesorem optimalizována s cílem maximálního využití paralelismu mezi vnitřními jednotkami procesoru.
6.4. Alpha Časová náročnost kapitoly: 20 minut
10
V roce 1992 oznámila firma DEC nový procesor typu RISC, který pracuje s šířkou toku dat 64 b. Tři hlavní principy, které byly sledovány při návrhu, jsou vysoká frekvence hodin, provádění několika instrukcí současně a možnost použití v multiprocesorovém režimu. Procesor Alpha je určen pro práce pod operačním systémem VMS i pod systémem OSF/1 (ekvivalent systému UNIX). Architektura procesoru ALPHA sdružuje arit. jednotku pro operace s pevnou řádovou čárkou a arit. jednotkou pro operace s pohyblivou řádovou čárkou na jednom čipu. Tento čip obsahuje 1,68 miliónu tranzistorů a je vyroben technologií CMOS 0.75 Ţm. Při hodinové frekvenci 150 MHz dosahuje tento procesor výkonnosti 300 MIPS nebo 150 MFLOPS. Předpokládá se však i použití na frekvenci 200 MHz. Na čipu procesoru jsou realizovány dvě vyrovnávací paměti určené pro data a pro instrukce, každá s kapacitou 8 kB. Pro jejich adresování se používá adresář s přímým mapováním, vyrovnávací paměť dat používá současný zápis do hlavní paměti. Na čipu je integrována i jednotka pro řízení paměti (MMU), v nichž se překládají virtuální adresy délky 64 b na reálné adresy délky 34 b. Velikost stránky je 8 kB, počet adres v TLB s plně asociativním adresářem je 32. K procesoru lze připojit vnější vyrovnávací paměť až do kapacity 8 MB. Jednotka pro operace s pohyblivou řádovou čárkou používá jednak formáty podle normy IEEE 754, jednak formáty známé z počítačů řady VAX. Operace s pohyblivou řádovou čárkou probíhají proudově v deseti sekcích (stupně), jednotka pro operace s pevnou řádovou čárkou je rozdělena do sedmi sekcí (stupně).
6.5. PowerPC Časová náročnost kapitoly: 40 minut RISC procesor s názvem PowerPC byl uveden na trh v roce 1991 jako výsledek dvouletého úsilí firem IBM, Apple a Motorola. Jak sám název naznačuje, přebírá tento procesor základní koncepci předchozího procesoru POWER firmy IBM. Současně využívá některé úspěšné rysy procesoru MC 88100 firmy Motorola. Cílem projektu bylo vytvořit levný vysoce výkonný procesor. První model PowerPC 601, který uvedla do výroby firma IBM, používá vnější adresovou sběrnici šířky 32 b a vnější datovou sběrnici šířky 64 b. Vnitřní přenosy dat v procesoru se uskutečňují na šířkách od 32 do 128 b.
6.5.1. Procesor PowerPC 601 Časová náročnost kapitoly: 20 minut
11
Struktura procesoru PowerPC601 má tři výkonové jednotky, které jsou schopny pracovat současně. Jsou to: -jednotka pro řízení skoků BPU, -celočíselná jednotka IU, -jednotka pro operace s pohyblivou čárkou FPU. Kromě toho jsou na čipu umístěny též: -instrukční jednotka obsahující frontu instrukcí a BPU, -paměťová jednotka, -vyrovnávací paměť, -jednotka řízení paměti MMU, -systémové rozhraní. Instrukční jednotka má za úkol zajistit, aby všechny tři výkonné jednotky byly stále zaměstnány, protože procesor je schopen začít zpracovávat až tři instrukce v jednom taktu. Instrukce vybírá z vyrovnávací paměti na čipu a zařazuje je do své fronty instrukcí. Tuto frontu udržuje instrukční jednotku neustále naplňenou, doplňení je prováděno průběžně v každém taktu. Není-li požadovaná instrukce přítomna ve vyrovnávací paměti, čeká instrukční jednotka s vysláním požadavku na čtení z hlavní paměti až do chvíle, kdy se fronta instrukcí vyprázdní nejméně do poloviny. Jak instrukční jednotka sama, tak i jednotka BPU, je vybavena vlastní sčítačkou, používanou při výpočtu adres skoku. Činnost tří výkonných jednotek procesoru PowerPC 601: Celočíselná aritmetika provádí všechny celočíselné operace, operace s bitovými poli a zápisy do paměti a čtení z ní. Moduly zřetězeného zpracování instrukce v celočíselné jednotce jsou: dekódování, provedení a zápis výsledku Jednotka FPU obsahuje sčítačku s dvounásobnou přesností, násobičku s jednoduchou přesností, děličku a pole registrů. Toto pole registrů je dvoubránové, avšak není vybaveno schopností přímého předávání operandu. Jednotka FPU je tvořena pěti moduly zřetězeného zpracování. První je čekací registr, pak následuje dekódování, dva prováděcí moduly a zápis výsledku. Vyrovnávací paměť je vybavena asociativním adresářem se stupněm asociativity s=8. Jeden řádek má délku 64 B a je rozdělen do dvou sektorů po osmi slovech. Do adresáře se zapisují reálné adresy získané překladem v MMU. Konzistenci obsahu VP a hlavní paměti zajišťují dvě strategie: implicitně se používá úklid při výměně, ale pro jednotlivé řádky lze nařídít společný zápis do VP a HP. Pro uvolňování bloku se používá strategie LRU. Jednotka řízení paměti MMU překládá virtuální adresy generované procesorem na fyzické adresy používané při adresování HP. Logický adresový prostor má kapacitu 4 GB a je rozdělen do segmentů po 256 MB. Kromě překladu adres zajišťuje jednotka MMU též ochranu paměti na úrovni stránky, bloku nebo segmentu. Procesor MPC601 je realizován na čipu 11x11 mm a obsahuje cca 2.8 miliónu tranzistotů. Použitá technologie je 0.65 Ţm CMOS se čtyřmi vrstvami metalizace. Při hodinové frekvenci 66 MHz má příkon 9 W.
6.5.2. Proceser PowerPC 620
12
Časová náročnost kapitoly: 20 minut
Jedná se o procesor, který bude základem výrobní řady serverů a výkonných pracovních stanic. Mikroprocesor je vybaven rozsáhlým paměťovým podsystémem s vysokou průchodností dat, podporujícím plně symetrický multiprocesing, zpracování transakcí a numericky náročné výpočty. Model 620 je první 64bitovou implementací architektury PowerPC, která dovoluje provoz 32bitových i 64bitových aplikací. Pracovní frekvence čipu je 133 MHz. Mikroprocesor je vybaven prostředky pro redukci příkonu v klidovém stavu. Počet tranzistorů je cca. 7 miliónů a je použita technologie 0.5Ţm CMOS se 4 metalických vrstev. Nárust počtu tranzistorů je výsledkem zařazení kvalitativně nových komponent: - 64bitová architektura, - vnitřní rychlé vyrovnávací paměti (cache) pro data a pro instrukce, každá o kapacitě 32 KB a s vlastním řízením MMU, - rozšířené prostředky pro předpověd větvení (branch prediction), - posílené vstupně-výstupní sběrnice (128 bitů pro data). Výkonnost procesoru je určena 3 parametry - počtem instrukcí v úloze, průměrným počtem instrukcí, které procesor provádí v jednom cyklu (IPC) a pracovní frekvencí procesoru.
6.6. Procesory SPARC Časová náročnost kapitoly: 15 minut
Firma Sun nabízí své systémy na dvou řadách procesorů: první je MicroSPARC, určený pro menší systémy a pro notebooky, a druhou Sparc (obdoba PowerPC a POWER u IBM nebo Alpha 21066 a Alpha 21064 u DEC). SPARC znamená Scaleable Processor Architecture neboli přizpůsobivá architektura procesoru. Přizpůsobivost těchto procesorů RISC je dána zejména nezávislostí jejich architektury na použité polovodičové technologii. Firma Sun navíc uvolnila architekturu tohoto procesoru, takže jej v současné době vyrábí několik firem, z nichž nejdůležitější jsou Texas Instruments a Fujitsu. Ve spolupráci s první z nich byl vyvinut první superskalární SPARC V8, jinak též SuperSPARC, a nyní i nový SPARC V9, resp. HyperSPARC, jímž firma Sun hodlá konkurovat Alphě, MIPS a POWER. Pro SPARC V8 se jako I/O sběrnice používá firemní MBus. Přímým předchůdcem obou uvedených byl SPARC V7, který ještě neobsahoval jednotku pro správu paměti MMU. V kooperaci s Fujitsu byl vyvinut MicroSPARC II, což je implementace SPARC V8 na malý čip pracující s napětím 3,3 V a na frekvenci od 50 do 120 MHz. Čip je plně statický a se správou napájení dovede celkem udatně spořit energii. Jako I/O sběrnice je u procesoru MicroSPARC použit firemní SBus. Předchůdcem procesoru MicroSPARC II byl MicroSPARC I, který se od něj lišil interní datovou a instrukční čachr.
13
6.7. Procesory MIPS Časová náročnost kapitoly: 15 minut Procesory MIPS (Microprocessor Without Interlocked Pipeline Stages) pocházejí z výzkumné práce Stanfordské universiti. Zde byly zkoumány možnosti tvorby kompilátorů, které by při kompilaci optimálně využívaly možnosti zřetězeného procesoru. Jako vedlejším produktem byl návrh velmi jednoduchého procesoru, který byl ale extrémě rychlý a výkonný. Zásadním rozdílem oproti ostatním výrobcům procesorů RISC je v případě RISC procesoru MIPS to, že nejprve existoval kompilátor a až potom začala vlastní obvodová implementace. Jestě před existence procesoru byly ověřené vlastnosti kompilátoru a tím i instrukčního souboru budoucího mikroprocesoru. Potom došlo k technické implementace konkrétní instrukce z hlediska maximilizace výkonnosti. Takovýmto způsoben byly navrženy a realizovány základní funkční celky procesoru MIPS. Zde namísto tvorby rozsáhlé sady registrů (registrová okna / Register Windowing / je taková organizace registrů procesoru, která realizuje kruhovou vyrovnávací paměť /Circular Buffer/ ), která umožňuje redukci doby úklydu a obnovy registrů při volání procedur, je v případě procesoru MIPS celá problematika přenesena do kompilátoru. V něm je implemanetována technika meziprocedurálního přiřazení registru, která zabezpečuje minimalizaci přenosů registrů z/do hlavní paměti.
6.8. Procesory AMD K10 Časová náročnost kapitoly: 120 minuta První procesor s kódovým názvem Barcelona v revizi B0 pochází ze začátku prosince 2006. Do současnosti, zejména z důvodů špatné výtěžnosti výše taktovaných kousků, již prošla třemi revizemi. B1 přišla na řadu v březnu letošního roku, následovaná jádrem s revizí B2, která přišla na svět krátce před červnovým Computexem 2007 v Taipei. Zde se již údajně podařilo většinu potíží vyřešit. Za zmínku jistě stojí i to, že s K10, ačkoliv ještě není na trhu, v podání jádra Agena a Phenomu FX přesáhlo AMD již magickou hranici 3.0 GHz. Ačkoliv je to na čtyřjádro (v tomto stádiu a ještě před uvedením) velice dobrý výsledek, důležité bude to, co AMD bude skutečně schopno dodat na trh a v jakém množství.
14
Nejprve krátké představení nové generace Opteronů - jedná se o nativní čtyřjádro s řadou úprav architektury a L3 cache. Velké úsilí bylo kladeno zejména na efektivitu a udržení spotřeby a kompatibility se stávající řadou Opteronů. Stejně jako u pedešlé generace Opteronů, s podporou DDR pamětí, i zde stačí pouhý update BIOSu.
Barcelona přináší 128-bit FPU, načítání dat mimo pořadí, vyšší frekvence pro severní můstek, nezávislé kanály operační paměti, snížení latencí díky L3 cache a řadu dalších drobných úprav architektury. AMD slibuje růst IPC až o 15 procent, ale cílové HPC aplikace a změny ve FPU přinesou výkon podstatně vyšší. Nezávislé kanály DRAM a 2MB L3 cache pomohou výrazně škálovatelnosti K10 v aplikacích
15
náročných na propustnost a Nested paging má zvýšit výkon Opteronů ve virtualizaci. Jádro bylo navrženo s ohledem na další možné úpravy architektury a zejména navýšení L3 cache. Přibylo také několik instrukcí pojmenovaných jako SSE4A. Barcelona přináší 128-bit FPU, načítání dat mimo pořadí, vyšší frekvence pro severní můstek, nezávislé kanály operační paměti, snížení latencí díky L3 cache a řadu dalších drobných úprav architektury. AMD slibuje růst IPC až o 15 procent, ale cílové HPC aplikace a změny ve FPU přinesou výkon podstatně vyšší. Nezávislé kanály DRAM a 2MB L3 cache pomohou výrazně škálovatelnosti K10 v aplikacích náročných na propustnost a Nested paging má zvýšit výkon Opteronů ve virtualizaci. Jádro bylo navrženo s ohledem na další možné úpravy architektury a zejména navýšení L3 cache. Přibylo také několik instrukcí pojmenovaných jako SSE4A.
IPC májí stoupnout přibližně o 15 procent, u HPC aplikací ale bude nárůst výkonu podstatně vyšší.
16
Struktura cache AMD K10 a IMC, HyperTransport 3.0 Poměrně velice výrazné jsou změny v architektuře cache. Asi tou nejpodstatnější je to, že z paměti jsou data načítána rovnou do L1 cache. L2 cache je nesdílená a dedikovaná vždy pouze konkrétnímu jádru - spolu s L3 slouží jako "odložiště" ne právě potřebných dat. L3 cache je sdílená pro všechna jádra a počítá se se snadnou rozšiřitelností. 45nm "K10.5" již bude mít L3 cache s kapacitou 6 MB.
L1 cache je nejblíže výpočetním jednotkám a je tedy nejrychlejší. Slouží k uchování aktuálně kritických dat. Rozděluje se na instrukční a datovou a obě mají po 64 KB. Obvykle L1 cache získává data přes L2, do které jsou načítána data z RAM - u K10 jsou ale data vždy z paměti načtena přímo do L1. To samozřejmě
17
poskytuje nejvyšší možný výkon v případě načítání dat, ale přináší i jisté nedostaky. L1 má nízkou kapacitu, a tak je zde zcela zasadní kvalitní správa cache. L1 cache má 2-cestnou asociativitu a přístupová doba má být 3 cykly. Zde již přichází na řadu L2 cache. L2 cache je také nesdílená a je určena vždy pouze konkrétnímu jádru. Jedná se prakticky o cache, která slouží k "přelévání" dat mezi L1 a L2 a zpět. Stejně jako v předcházející generaci Opteronů při přesunu dat z L2 do L1 jsou data z L2 smazána, což zabraňuje duplicitám a L2 tak slouží jako přechodný zásobník L1. Protože je L2 nesdílená, nemůže tak dojít k zaplnění daty jiného jádra (případně se jedná o kopie, pokud jádra pracují se stejnými daty). Stejně jako jakýkoliv koncept má i tento pár nedostatků - v případě, že jádro potřebuje více místa, než je aktuálně v L2 k dispozici, není snadné získat místo pro další data. L2 má 16ti-cestnou asociativitu a přístup k L2 je 12 hodinových cyklů. Nově je v AMD procesorech použita L3 cache. L3 cache je sdílená mezi všechna jádra a v případě potřeby dále rozšiřitelná. Sdílená L3 poskytuje několik výhod. Obecně, pokud nějaké jádro potřebuje více místa pro data, lze použít L3. Správa cache navíc přináší možnost, aby sdílená data (pro více jader) mohla mít v L3 jedinou společnou kopii. To je vhodné například pro multimediální aplikace. L3 není čistě exkluzivní ani inkluzivní - nemusí vždy data načtená do L1 smazat, ale zde záleží na tom, jestli další jádra data ještě používají. L3 cache také není plněna z paměti, ale z L1, a slouží k uchování dat přetečených z L2. Latence L3 není zatím známa, asociativita je 32-cestná.
6.9 Závěr
Po prostudování tohoto textu a doporučené literatury proveďte: 1. Popis vlastnosti RISC procesoru ARM. 2. Popis vlastnosti RISC procesoru Motorola. 3. Popis vlastnosti RISC procesorů i860 a i960. 4. Popis vlastnosti RISC procesoru Power PC. 5. Popis vlastnosti RISC procesoru AMD K10, SPARC a MIPS. 6. Porovnání vlastnosti výše uvedeních procesorů.
6.10. Literatura 1. 2. 3. 4. 5. 6. 7.
Přednáška Internet Hlavička: Architektura počítačů, skriptum FEL ČVUT, 1994, 1999. Ličev L.: Architektura počítačů, skriptum FEI VŠB TUO, 1996. Ličev L.: Architektura počítačů I, skriptum FEI VŠB TUO, 1999. Ličev L.: Architektura počítačů II, skriptum FEI VŠB TUO, 1999. Ličev L., Morkes D.: Procesory - architektura, funkce, použití, Computer press, Praha, 1999. 8. Strelec, Líška: Architektury procesorů RISC, Grada, Praha, 1992. 9. Valášek: Monolitické mikroprocesory a mikropočítače, SNTL, Praha 1989. 10. http://www.intel.com 11. http://www.svethardware.cz (články Lukáše Petříčka) 12. http://www.wikipedia.com 18
13. http://www.amd.com
Klíčová slova Acron Alpha AMD ARM i860 i960 MFLOPS MIPS MMU Motorola PowerPC Procesor PSW SPARC
Slovník M MIPS Microprocessor Without Interlocked Pipeline Stages
S SPARC
Scaleable Processor Architecture
19