Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Kontakty Webpage přednášky: –http://ulita.ms.mff.cuni.cz/mff/sylaby/PRG017.HTML Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.

Podobné prezentace


Prezentace na téma: "Kontakty Webpage přednášky: –http://ulita.ms.mff.cuni.cz/mff/sylaby/PRG017.HTML Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické."— Transkript prezentace:

1 Kontakty Webpage přednášky: –http://ulita.ms.mff.cuni.cz/mff/sylaby/PRG017.HTML Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické informace (manuály ap.): –ftp://ulita.ms.mff.cuni.cz/techdoc/index.html Mail: –Jakub.Yaghob@mff.cuni.cz

2 Compaq - DEC Alpha I – obecná charakteristika Jedna z prvních 64-bitových mikroprocesorových architektur (1998?) Architektura navrhovaná v souladu se strategií fy Digital – s výhledem na 25 let Kompletně nová architektura: –od základů 64-bitová –bez vazeb na minulé architektury „Čistý“ RISC –jednoduché instrukce –instrukce v pevném formátu (32-bit) –Load-Execute-Store architektura –architektura bez příznaků podmíněné instrukce vyhodnocují přímo obsah obecného registru –bez hw podpory pro zásobník instrukce volání ukládá RA do registru

3 Compaq - DEC Alpha II - registry Registry –32 obecných celočíselných (64-bitových) registrů R0-R31 speciální význam R31: při čtení vždy 0, nedefinované chování pro zápis –32 (64-bitových) registrů pro práci v řádové čárce F31: opět vždy 0.0 při čtení, nedefinované chování pro zápis –PC (Program counter) – 64-bitový čítač instrukcí; vždy zarovnán na adresu dělitelnou 4 –Lock flag register (1 bit) a Lock phys. address register (64-bitový) –PCC (Processor cycle counter) – časovací registr (32-bitový čítač)

4 Compaq - DEC Alpha III – instrukční soubor Instrukční soubor – významné rysy: –ortogonální –3 operandový –bez podmínkových kódů –bez hw podpory zásobníku –silně 64-bitový jen omezená podpora pro jiné šířky operandů (8-bitové, 32-bitové) –pevný formát (32-bitový) limituje přímé operandy paměťové instrukce (offset) skoky –běžný repertoár instrukcí; chybí celočíselné dělení –„RISC“ like podpora pro MP: load_locked, modify, store_conditional

5 Compaq - DEC Alpha IV – formát instrukcí Instrukční soubor

6 Compaq - DEC Alpha V – formát instrukcí

7 Intel IA64 – obecná charakteristika V porovnání s předchozí architekturou (Alpha) velmi složitá Opět zpětná kompatibilita Integruje množství technických „triků“ předchozích generací: –Registrová okna (Fairchild F8, SPARC) –Velké pole registrů (RISC) –Explicitní paralelismus na úrovni kódování instrukcí –Predikace instrukcí (Acorn ARM) –Silné adresové módy (postinkrementace - Motorola) –Spekulativní provádění kódu na explicitní úrovni –Predikce skoků –SW pipelining, rotace registrů „Konec programátorů v asembleru“

8 IA64 - registry - přehled

9 IA64 – registry - okna (stack) Registrová okna (register stack) podobně jako SPARC Okna existují pro obecné (celočíselné) registry část registrového pole (GR0-GR31) je statická, tj. přístupná vždy přímo ze zbývající části (GR32-GR127) je viditelná pouze aplikačně definovatelná část (okno) Některé významné odlišnosti proti SPARC implementaci: –architektura definuje pevný počet obecných registrů –přesuny obsahu registrů mezi registrovým polem a pamětí při implementaci „nekonečného“ registrového zásobníku probíhají automaticky na HW úrovni (bez výjimek a intervence OS) –velikost registrových oken je proměnná, aplikačně definovatelná (na úrovni individuálních oken) Specialita: GR0 - pro čtení vždy 0, zápis zakázán

10 IA64 – instrukční soubor RISC-like –jednoduché krátké instrukce v pevném formátu –Load-Execute-Store architektura Bez HW podpory zásobníku –instrukce volání ukládají návratovou adresu do registru Bez celočíselného dělení –existuje (float) instrukce pro výpočet obrácené hodnoty Kódování instrukcí umožňuje paralelismus –tzv. skupiny instrukcí (instruction groups) s přísnějšími vnitřními požadavky na zdrojové závislosti (např. registrové RAW, WAW zakázány) –poměrně volný paměťový model - v podstatě jediné omezení je dodržení RAW, WAW a WAR závislostí při přístupu na stejnou adresu explicitní synchronizace paměťových přístupů; možné sémantiky: –„release“ - předchozí paměťové přístupy provedeny dřív než aktuální –„acquire“ - aktuální paměťový přístup proveden dřív než všechny následující –„fence“ - kombinace předchozích

11 IA64 – instrukční soubor - predikace Architektura nepoužívá specializované, automaticky nastavované aritmetické/logické příznaky a specializované (podmíněné) instrukce Sada predikátových registrů (PR0-PR63) Specialita - PR0 při čtení TRUE, zápis do stoupy Nastavovány speciálními porovnávacími a testovacími instrukcemi –obvykle nastavovány dva predikátové registry zároveň v různých módech –některé módy umožňují obejít omezení WAW závislostí uvnitř instrukčních skupin za účelem paralelizovatelnosti (Téměř) každá instrukce je kvalifikována (podmíněna) predikátovým registrem –jiná specialita - kvalifikační predikát je instrukcemi porovnání a testů používán trochu jiným způsobem (jako operand některých speciálních módů porovnání)

12 IA64 – instrukční soubor - spekulace Umožňují dosažení vyšší utilizace procesoru (mem. unit) předsunováním časově náročných paměťových instrukcí (LOAD/STORE) Podporovány dva typy spekulativního provádění kódu: –Control speculation if(p != NULL) a=*p;// pomalý přístup do paměti –Data speculation - ALAT (Advanced Load Address Table) (1) st8[r4] = r12 ld8.ar6 = [r8] ;; (2) ld8r6 = [r8] ;; st8[r4] = r12 (3) addr5 = r6,r7 ;; ld8.c.clrr6 = [r8] (4) st8[r18] = r5 addr5 = r6,r7 ;; st8[r18] = r5

13 IA64 – instrukční soubor - hints Architektura na různých místech umožňuje programátorovi (překladači) předat procesoru nápovědu (hint) Paměťová nápověda –každá paměťová instrukce definuje pravděpodobnost budoucího použití dat –lze využít pro řízení chování jednotlivých úrovní cache paměti Skoková nápověda –instrukce skoků mohou definovat mód skokové predikce (statická-dynamická) –podobně mohou definovat i počáteční chování při dynamické predikci –umožňuje lepší využití BTB –existují i explicitní nápovědné instrukce (hint only instruction)

14 IA64 – instrukční soubor - SW pipelining I HW náhrada SW optimalizačních metod (např. loop unrolling) Jde o možnost paralelního vykonávání několika iterací cyklu zároveň podobně jako při HW pipeliningu (současné vykonávání několika instrukcí) Základním požadavkem je možnost HW přejmenovávání (rotace) registrů Př.: Základní tvar: L1:ld4 r4 = [r5],4 ;;// Cycle 0 load postinc 4 add r7 = r4,r9 ;; // Cycle 2 st4 [r6] = r7,4 // Cycle 3 store postinc 4 br.cloop L1 ;; // Cycle 3

15 IA64 – instrukční soubor - SW pipelining II SW optimalizace - dvojnásobný loop unrolling s (částečným) SW přejmenováním registrů: L1:ld4 r4 = [r5],4 ;;// Cycle 0 ld4 r14 = [r5],4 ;; // Cycle 1 add r7 = r4,r9 ;; // Cycle 2 add r17 = r14,r9 // Cycle 3 st4 [r6] = r7,4 ;; // Cycle 3 st4 [r6] = r17,4 // Cycle 4 br.cloop L1 ;; // Cycle 4

16 IA64 – instrukční soubor - SW pipelining III HW optimalizace - SW pipelining: stage 1:ld4 r4 = [r5],4 stage 2:--- // empty stage stage 3:add r7 = r4,r9 stage 4:st4 [r6] = r7,4 1 2 3 4 5 6Cycle ld4 X ld4 X+1 prolog add ld4 X+2 st4 add ld4 X+3 st4 add ld4 X+4 core st4 add ld4 X+5 st4 add X+6 st4 add X+7 epilog st4 X+8

17 IA64 – instrukční soubor - SW pipelining IV HW optimalizace - SW pipelining, využití rotace registrů: L1: ld4 r35 = [r4],4 // post increment by 4 st4 [r5] = r37,4 // post increment by 4 swp_branch L1 ;; Možná je i rotace float a predikátových registrů –rotace predikátových registrů lze využít pro řízení SW pipeline - plnění, běh, vyprazdňování stage 1:(p16) ld4 r4 = [r5],4 stage 2:(p17) --- // empty stage stage 3:(p18) add r7 = r4,r9 stage 4:(p19) st4 [r6] = r7,4

18 IA64 – Systémová architektura Podobně jako u jiných moderních architektur je definována poměrně volně –zjednodušení reálné HW implementace –volnost pro optimalizace Definuje řadu oblastí činnosti procesoru, některé z nich jsou nové (v porovnání s 32-bitovými architekturami): –obsluha výjimek a přerušení mechanismy obsluhy definice podmínek pro vznik výjimek, jejich typy a parametry –správa paměti virtualizace paměti ochrana paměti –chování v MP prostředí –rozhraní na firmware (PAL) –požadavky na chování systému vzhledem k RSE –atd.

19 IA64 – Správa paměti I Virtualizace paměti –jednotka řízení paměti (MMU) podporuje stránkování –na rozdíl od (většiny) 32-bitových architektur není řešena přímým víceúrovňovým stránkováním –podpora pro inverzní stránkování (stránkování úrovně 0) - přímo ovladatelné TLB fixní (systémem udržovaná)  automaticky plněná část TLB –MMU chápe lineární flat adresy jako 3-složkové: index tzv. regionu (3 bity) index (binární id) stránky offset ve stránce –64-bitový virtuální adresový prostor rozdělen na 8 regionů regiony jsou využívány při ochraně paměti –tzv. rid - region identifier - podobně jako např. page-tagging (IBM360) redukují potřebu časově drahých operací (flush TLB) při změnách kontextu umožňují definice atributů (na jiných architekturách obvykle řešeny na úrovni celého adresového prostoru –„advanced“ HW podpora pro inverzní stránkování (VHPT walker) –velikost stránky

20 IA64 – Správa paměti II Ochrana paměti –regiony –„protection keys“ - podobný mechanismus, jako regionová identifikace, ale BEZ vztahu k lineární adrese

21 64-bitové mikroprocesory - shrnutí Instrukční soubor: –většinou RISC (výjimka - např. AMD x86-64 „Hammer“) jednoduché rychlé instrukce v pevném formátu velká registrová pole Load-Execute-Store architektura –plně 64-bitová aritmetika, obvykle chybí náročné operace (dělení) –adresace řádově 64-bitová (aktuální implementace často kratší) –samozřejmostí je elementární podpora pro víceprocesorové systémy Systémová architektura –Ochranné mechanismy (minimálně 2 úrovně priorit) –MMU plně podporující virtualizaci paměti on-chip typicky inverzní stránkování –Běžně podpora pro implementaci firmware


Stáhnout ppt "Kontakty Webpage přednášky: –http://ulita.ms.mff.cuni.cz/mff/sylaby/PRG017.HTML Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické."

Podobné prezentace


Reklamy Google