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é.

Slides:



Advertisements
Podobné prezentace
Programování v asembleru - multiprocesory Jakub Yaghob.
Advertisements

13AMT Procesory I. Lecture 2 Ing. Martin Molhanec, CSc.
Zásobník (LiFo) Fronta (FiFo)
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Otázky k absolutoriu HW 1 - 5
Procesory Filip Skulník.
Programování v asembleru - historie
Programování v asembleru - prostředí
Principy překladačů Architektury procesorů Jakub Yaghob.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Instrukční soubor PIC16Fxxx osnova: Charakteristika instrukčního souboru Rozdělení instrukcí Časové průběhy (zpracování instrukcí)
Technické prostředky informačních systémů 4. Týden – Sběrnice.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_02A13 Autor Ing. Jiří Kalousek Období vytvoření duben 2014.
Architektura a vývoj PC 2.
PicoBlaze, MicroBlaze, PowerPC
Základy mikroprocesorové techniky
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Paměťové obvody a vývoj mikroprocesoru
Tato prezentace byla vytvořena
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
= monolitický integrovaný obvod obsahující kompletní mikropočítač
Procesory. Co je procesor?  Procesor je jedna ze základních součástí počítače (laicky nazýván mozkem počítače). Probíhají v něm všechny hlavní operace.
Operační systém (OS) ICT Informační a komunikační technologie.
Informatika / …o počítači (základní pojmy, jednoduché představy) 2006.
Přehled a vývoj mikroprocesorů
Dokumentace informačního systému
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Začátky mikroprocesorů
Vnitřní (operační paměť)
1 Procesory „Počítače by jednou mohly vážit méně než 1.5 tuny.“ časopis Popular Mechanics, 1949.
Pevný disk (HDD - Hard Disk Drive)
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Mikroprocesor.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
9 Family Pavel Mezera. ARM processors family jsou založené 32b RISC architektuře s ortogonálními instrukcemi dnes představují 75% trhu procesorů pro vestavěné.
XSLT překladač Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Kontakty slajdy: ftp://ulita.ms.mff.cuni.cz/predn/POS.
Instrukce procesoru.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Číslo projektu CZ.1.07/1.5.00/ Název školy Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64 Název materiálu VY_32_INOVACE_IVT_1_KOT_04_PROCESOR.
Technika počítačů 3. Mikroprocesory © Milan Keršlágerhttp:// Obsah: ●
Překladače Optimalizace © Milan Keršláger
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Rozdělení počítačů. Počítače rozdělujeme podle mnoha kritérií z nichž některé dále probereme. Nejčastější rozdělení je na počítače typu :  CISC (Complex.
VIRTUÁLNÍ PAMĚŤ EP1. Kryštof Supek. Umožňuje předložit běžícímu procesu adresní prostor paměti, který je větší, než je fyzicky připojená paměť RAM Procesor.
Překladače Operační paměť © Milan Keršláger
Vývoj architektur mikroprocesorů Od 4 bitů k superskalárnímu RISC Vývoj architektur mikroprocesorů Od 4 bitů k superskalárnímu RISC Pavel Píša
SOFTWAROVÁ PODPORA PRO VYTVÁŘENÍ FUZZY MODELŮ Knihovna fuzzy procedur Ing. Petr Želasko, VŠB-TU Ostrava.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Operační systémy Mikroprocesory
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
MIKROPROCESOROVÁ TECHNIKA
Jednočipové počítače – instrukční sada
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
1. ročník oboru Mechanik opravář motorových vozidel
Výukový materiál zpracován v rámci projektu
Operační systémy 9. Spolupráce mezi procesy
Správa paměti.
1. ročník oboru Mechanik opravář motorových vozidel
Výukový materiál zpracován v rámci projektu
Segmentace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Informatika / …o počítači
Paměť.
Transkript prezentace:

Kontakty Webpage přednášky: – 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:

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

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č)

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

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

Compaq - DEC Alpha V – formát instrukcí

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“

IA64 - registry - přehled

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

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

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í)

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

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)

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

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

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, Cycle 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

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

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.

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

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

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