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
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Advertisements

HRADLOVÁ POLE REKONFIGUROVATELNÁ ZA PROVOZU ZAŘÍZENÍ Soběslav Valach Ústav automatizace a měřicí techniky, FEKT, VUT Brno, Czech Republic.
Prezentační práce na téma PAMĚTI CACHE
Programování v asembleru - multiprocesory Jakub Yaghob.
Programování v asembleru - multiprocesory Jakub Yaghob.
Manuál pro začátečníky
Mikroprocesory Intel Obr. 1.
13AMT Procesory I. Lecture 2 Ing. Martin Molhanec, CSc.
Mikroprocesory Procesory. Procesor je synchronní zařízení provádí operace s daty je programovatelný pomocí mikroinstrukcí je více rodin procesorů (jednočipy.
SYSTÉM PŘERUŠENÍ U 68HC11.
Otázky k absolutoriu HW 1 - 5
BPGA RS Logix 500 a Logix 5000 Ing. Radek Štohl, Ph.D.
Principy překladačů Mezikód Jakub Yaghob.
Programování v asembleru - prostředí
Principy překladačů Interpretované jazyky Jakub Yaghob.
Principy překladačů Architektury procesorů Jakub Yaghob.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Architektura a vývoj PC 3. Ing. Vladislav Bezouška, Ph.D.
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.
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
= monolitický integrovaný obvod obsahující kompletní mikropočítač
Informatika / …o počítači (základní pojmy, jednoduché představy) 2006.
Sběrnice Obr. 1.
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
Operační systémy Přednášky pro předmět Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
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é.
CZ.1.07/1.4.00/ VY_32_INOVACE_152_IT7 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
1. ELEKTRICKÝ SIGNÁL VSTUPUJE DO uPROCESORU 2.VYMAŽE DATA KTERÁ ZŮSTALA V REGISTRECH VNITŘNÍ PAMĚTI 3. NASTAVÍ REGISTR CPU – ČÍTAČ INSTRUKCÍ NA F000 ADRESA.
Distribuovaná sdílená paměť Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Vnitřní (operační paměť)
Procesor Renesas H8S/2633F.
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é.
18/07/20151 Intel (1) Vyroben v roce 1989 Prodáván pod oficiálním názvem 80486DX Plně 32bitový procesor Na svém čipu má integrován: -zmodernizovaný.
Univerzita třetího věku kurz Znalci Hardware 1.
Mikroprocesor.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
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é.
Základy operačních systémů
X13UIT Procesory I. Lecture 2 Ing. Martin Molhanec, CSc.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Procesory.
Instrukce procesoru.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
John von Neumannova koncepce. John von Neumann  Narozen 28. prosince 1903 Budapešť Rakousko-Uhersko  Zemřel 8. února 1957 Spojené státy americké.
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.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
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.
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.
ZŠ Brno, Řehořova 3 S počítačem snadno a rychle Informatika 7. ročník III
Počítačová bezpečnost Cvičení 1: Start počítače IBM PC © 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
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.
Základní desky Marek Kougl 1.L.
XML a datový standard Zdeněk Jirkovec Softwarové Aplikace a systémy.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
PC základní jednotka.
1. ročník oboru Mechanik opravář motorových vozidel
Výukový materiál zpracován v rámci projektu
Správa paměti.
Centrální procesorová jednotka
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: 
Správa disků
Intel Pentium (1) 32-bitová vnitřní architektura s 64-bitovou datovou sběrnicí Superskalární procesor: obsahuje více než jednu (dvě) frontu pro zřetěze-né.
Informatika / …o počítači
Přednášky z distribuovaných systémů
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:

Správa více procesorů Mechanismy –podpora pro atomické operace v hlavní paměti: zamykání sběrnice a udržování koherence cache –serializující instrukce (Pentium+) –APIC –L2 cache (P6+ internal, i486 & Pentium external) –L3 cache (Xeon) –Hyper-threading (P4 HT, Xeon HT) Cíle –udržení koherence hlavní paměti –udržení koherence cache –predikovatelné pořadí zápisů do paměti –distribuce přerušení mezi procesory –zvýšení výkonu systému podporou vícevláknových a víceprocesových aplikací současnosti

Uzamčené atomické operace Tři nezávislé mechanismy pro provedení uzamčených atomických operací: –zaručené atomické operace –zamknutí sběrnice signálem LOCK# nebo prefixem instrukce LOCK –protokoly pro udržení koherence cache při atomických operacích na cachované datové struktury (cache lock) (P6+)

Zaručené atomické operace i486+ –R/W bytu –R/W wordu (2B) zarovnaného na word –R/W doublewordu (4B) zarovnaného na doubleword Pentium+ –R/W quadwordu (8B) zarovnaného na quadword –R/W wordu z/do necachované paměti spadající do 32-bitové datové sběrnice P6+ –nezarovnaný R/W z/do wordu, doublewordu, quadwordu do cachované paměti uvnitř 32-bytové řádky cache

Zamykání sběrnice Automatické zamykání –XCHG s pamětí –nastavení B (busy) příznaku v popisovači TSS –změna popisovačů segmentů (příznak A, ostatní) –změna stránkovacích tabulek –přerušení (zaslání vektoru přerušení) Zamykání řízené SW (prefix LOCK ) –automaticky pro XCHG –BTS, BTR, BTC –XADD, CMPXCHG, CMPXCHG8B –INC, DEC, NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, XOR –jinak výjímka #UD (invalid-opcode) –pro P6+ jsou atomické operace serializující

Samomodifikující se kód Možnost 1 –zapsat modifikovaný kód jako data do kódového segmentu –skok na nový kód nebo na „mezistanici“ –provádění nového kódu Možnost 2 –zapsat modifikovaný kód jako data do kódového segmentu –provedení serializující instrukce –provádění nového kódu Požadováno pro P6+ Velmi snižuje výkon Cross-modifikující kód –jeden CPU mění kód, druhý ho vykonává –nutno synchronizovat CPU a vykonat serializující instrukci

Pořadí paměťových operací Program-ordering –alias strong-ordering –R/W na sběrnici ve stejném pořadí jako v proudu instrukcí za všech okolností –i386 Processor-ordering –cílem je zvýšení rychlosti vykonávání instrukcí při udržení koherence paměti –individuálně podle procesoru Pentium a i486 –využívají procesor-ordering –při většině situací se chovají jako program-ordered –R miss předběhne W, pokud jsou všechny W cache hity

Processor-ordering pro P CPU a paměť WB –R se provádí spekulativně v jakémkoliv pořadí –R mohou předběhnout bufferované W, ale procesor je konzistentní –W do paměti prováděny vždy v pořadí instrukcí kromě CLFLUSH, MOVNTI, MOVNTQ, MOVNTDQ, MOVNTPS, MOVNTPD –W mohou být bufferovány –W nejsou spekulativní, pouze pro skutečně prováděné instrukce –Data z bufferovaných W se mohou podstrčit čekajícím R uvnitř procesoru –R/W nemohou předběhnout I/O, zamknuté a serializující instrukce –R nemohou předběhnout LFENCE a MFENCE –W nemohou předběhnout SFENCE a MFENCE Více procesorů: –jednotlivé procesory jako samostatný procesor –zápisy z jednoho CPU jsou viditelné ve stejném pořadí všemi CPU –zápisy z jednotlivých CPU NEJSOU seřazeny mezi sebou

Processor-ordering pro P6+ - 2

„Fast string“ operace pro P6+ MOVS nebo STOS CPU uvažuje po řádcích cache - bude celá neplatná Přerušení pouze na hranicích řádků cache Podmínky –EDI a ESI zarovnány na 8B (PIII), EDI zarovnáno na 8B (P4) –vzestupné pořadí ( DF =0) –počáteční nastavení ECX >=64 –zdroj a cíl se nesmí překrývat o méně než řádka cache (64B pro P4 a Xeon, ostatní 32B) –paměť typu WB nebo WC

Zesílení nebo zeslabení modelu paměti I/O instrukce, zamknuté instrukce, LOCK a serializující instrukce zesilují ordering SFENCE (PIII), LFENCE a MFENCE (P4) poskytují možnosti pro určení pořadí paměťových operací a serializaci –SFENCE - všechny W dokončeny před touto instrukcí –LFENCE - všechny R dokončeny před touto instrukcí –MFENCE - všechny R a W dokončeny před touto instrukcí MTRR (Memory Type Range Registers) zesilují nebo zeslabují ordering (P6+) pro oblasti fyzické paměti PAT (Page Attribute Table) zesilují ordering pro stránky (PIII)

Změna stránkovacích tabulek pro více CPU „TLB shootdown“ Jednoduchá metoda –zaslat všem procesorům IPI (interprocessor interrupt) –zastavit všechny kromě aktivního –aktivní procesor provede změny –všechny procesory zneplatní příslušné položky v TLB –probudit všechny procesory Složitější ale rychlejší –na různých procesorech nesmí být během změny jiné TLB mapování –OS musí počítat se situací, kdy procesor použije „vyčpělou“ adresu během změny

Serializující instrukce CPU dokončí všechny změny příznaků, registrů a paměti Vyčistí všechny bufferované W Pentium+ Privilegované –MOV CRx, MOV DRx, WRMSR, INVD, INVLPG, WBINVD, LGDT, LIDT, LTR Neprivilegované serializující –CPUID, IRET, RSM Neprivilegované instrukce pro paměťové pořadí –SFENCE, LFENCE, MFENCE

MPS 1.4 Multiple-processor specification Start více procesorů bez speciálního HW HW může zahájit start bez speciálního signálu předdefinovanému startovacímu procesoru Všechny IA-32 procesory mají stejný start (včetně HT) Rozdílné mechanismy pro různé rodiny CPU (P4 x Xeon starý x Xeon nový) BSP = Bootstrap Processor AP = Application Processor

Hyper-threading - 1 Jeden fyzický procesor je schopen vykonávat 2 nebo více proudů instrukcí Lze rozeznat pomocí CPUID Části procesoru jsou odděleny, části jsou sdíleny

Hyper-threading - 2 Lokální věci pro logický procesor –obyčejné registry EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP –segmentové registry CS, DS, ES, FS, GS, SS –EFLAGS a EIP –x87 ( ST0 - ST7 ), MMX ( MM0 - MM7 ) a XMM registry ( XMM0 - XMM7 ) –řídící registry CRx, GDTR, IDTR, LDTR –ladící registry DRx –time stamp –většina MSR (včetně PAT ) –lokální APIC Sdílené věci –MTRR –TLB –cache, sběrnice –některé MSR

Hyper-threading - 3 Vyžaduje podporu OS Používání PAUSE ve spin-locku –kódováno jako REP NOP –starší IA-32 procesory chápou PAUSE jako NOP –AMD procesory to tak NECHÁPOU Využití HLT –stojící logický procesor nesmí čekat aktivně, ale musí stát na HLT Plánování –plánovat nejdříve na všechny logické procesory 0 na fyzických procesorech, pak teprve na logické 1, atd. Neměřit rychlost procesoru aktivní smyčkou Locky a semafory umisťovat samostatně zarovnaně do 128B paměti

APIC Lokální APIC –interně v procesorech –přijímá přerušení z nožiček, z vnitřních zdrojů a od I/O APICu –posílá a přijímá IPI (interprocessor interrupt) I/O APIC –součást chipsetu –přijímá přerušení z externích zdrojů a převádí je na IPI –distribuuje IPI mezi různé procesory xAPIC –nová architektura –extended APIC –P4 a Xeony

APIC – xAPIC xAPIC systém (P4 a Xeony)

APIC – „tradiční“ APIC APIC systém (Pentium a P6+)

APIC – blokové schéma lokálního APICu

Reset Nastaví registry CPU na definovaný stav CPU je v reálném režimu Zneplatní vnitřní cache, TLB a BTB Teď už to závisí na CPU –P6+, P4 a Xeony – všechny procesory spustí inicializační protokol, jeden z nich je zvolen jako BSP a pokračuje v inicializaci OS, ostatní AP stojí a čekají na IPI „Wait for Startup“ –Pentium a i486 – HW ví, který CPU je BSP, ostatní AP stojí a čekají na SIPI INIT –obdoba reset –vnitřní cache, MSR, MTRR, x87, SSE se nezmění –přechod do reálného režimu

Reset – stav registrů EFLAGS hCR h EIP0000FFF0hCRx0 CSF000hEAX,...0 BázeFFFF0000hEDX000006xxh LimitFFFFhSTx+0.0 xS0000x87 CW0040h Báze x87 SW0000 LimitFFFFhx87 Tag5555h GDTR,IDTR XMMx0 LimitFFFFhMXCSR1F80h LDTR,TR0000DRx0 Báze DR6FFFF0FF0h LimitFFFFhDR h

Mikrokód P6+ má rozhraní na nahrání bloku mikrokódu s opravami do CPU Mikrokód dodává Intel přímo výrobcům BIOSů Správný mikrokód do správného CPU Mikrokód musí být načten před spuštěním L2 cache a ještě další různá omezení (např. nesmí překračovat limit segmentu)

Vnitřní cache Struktura vnitřních cache pro P4 a Xeony

Co je co a kolik čeho? Typ cachePentiumPentium Pro & spol.P4 a Xeon Trace cacheN/A 12Kμops; 8ca L1 instrukce8(2ca)/16K(4ca);32B16K; 32B; 4caN/A L1 data8(2ca)/16K(4ca);32B 8K; 64B; 4ca L2 společnáexterní128K-2M; 32B; 4ca256,512K; 64B; 8ca L3 společnáN/A Xeon 512K,1M; 64B; 8ca Instr TLB 4K32; 4ca/full32; 4ca128; 4ca Data TLB 4K64; 4ca/full64; 4ca64; full ca Instr TLB LP==ITLB4K2; full cafragmentováno?? Data TLB LP8; 4ca/==DTLB4K8; 4ca==DTLB4K Store buffer2*1/4*41224 WC bufferN/A46

Něco terminologie Cache používají MESI protokol k udržení koherence Naplnění řádky cache (cache line fill) –operand se čte z cachovatelné paměti –načte se celá řádka Zásah cache (cache hit) –operand je stále ještě v cache –příští přístup je do cache místo do hlavní paměti Minutí cache (cache miss) –operand není v cache Zásah zápisu (write hit) –pokud je platná řádka cache, zapíše se do ní, příp. i do hlavní paměti –provede se cache line fill, a pak viz výše Čmuchání (snooping) –CPU na sběrnici kontrolují přístupy do paměti s adresami v cache

Typy paměti - přehled Typ paměti Možnost cachování Možnost cachování zápisů Spekulativní čtení Pořadí paměťových operací Strong Uncacheable (UC) NE strong ordering Uncacheable (UC-) NE strong ordering, lze změnit pomocí WC v MTRR Write Combining (WC) NE ANOweak ordering Write Through (WT)ANONEANOspekulativní Write Back (WB)ANO spekulativní Write Protected (WP)ANO (R)NEANOspekulativní Pentium nemá UC-, WC, WP (řízení pomocí NW,CD) UC- až od PIII (řízení pomocí PAT)

Typy paměti - 1 Strong Uncacheable (UC) –hlavní paměť není cachovaná –všechny čtení i zápisy mají program ordering, žádné spekulace –paměťově mapované I/O –velmi snižuje výkon systému Uncacheable (UC-) –jako UC, ale lze změnit změnou MTRR na WC –pouze P4, Xeon, PIII, pomocí PAT Write Combining (WC) –hlavní paměť není cachovaná –žádný protokol na udržení koherence –spekulativní čtení povoleno, NENÍ zaručeno pořadí zápisů –zápisy jsou pozdrženy a spojovány v WC bufferech –vhodné pro video frame buffery

Typy paměti - 2 Write Through (WT) –R a W hlavní paměti cachovány –R při zásahu cache z řádky cache, při minutí naplnění řádky, spekulativní R –W při zásahu do cache i do hlavní paměti, při minutí nenaplňuje řádku –WC povoleno –vhodné pro frame buffery nebo zařízení, co neumí snooping Write Back (WB) –R a W hlavní paměti cachovány –R při zásahu cache z řádky cache, při minutí naplnění řádky, spekulativní R –W při zásahu do cache, při minutí naplní řádku –protokol pro cache koherenci Write Protected (WP) –R při zásahu cache z řádky cache, při minutí naplnění řádky, spekulativní R –W propagovány na sběrnici

MESI Každá řádka cache má 2 bity pro stav Transparentní pro program L1 instrukcí má pouze SI Přechod snoopingem –detekuji zápis do řádky s M - zrušit transakci, zápis řádky přímo jinému CPU s odbočkou do paměti, přechod do I Stav řádkyM (Modified)E (Exclusive)S (Shared)I (Invalid) Je platná?ANO NE Kopie v paměti je......mimo...přesná N/A Kopie u jiných CPU?NE Možná Zápis do řádky nejde na sběrnici...nejde na sběrnici, přechod na M...přechod na E...přímo do hlavní paměti

Řízení cache CR0[CD] –=0 - cachování povoleno pro celou paměť, může být dále omezeno –=1 - cachování zrušeno pro Pentium, pro ostatní omezeno CR0[NW] –=0 - WB povoleno, může být dále omezeno –=1 - není WB PCD a PWT ve stránkovacích tabulkách a adresářích –zakazuje cachování/WB pro stránky nebo stránkovací tabulky PCD a PWT v CR3 –zakazuje cachování/WB pro stránkovací adresáře G ve stránkovacích tabulkách a adresářích –neruší mapování v TLB při implicitním čištění (task switch, mov CR3,eax) CR4[PGE] –povoluje funkci G ve stránkovacích tabulkách a adresářích MTRR (P6+) –typy paměti pro oblasti fyzické paměti PAT (PIII+) –typy paměti pro stránky

Omezení typu paměti Je-li CR0[CD]=1, pak je cachování zakázáno Při CR0[CD]=0 je dále omezení podle PAT (nebo PCD a PWT ) a MTRR Vždy se vybere nejvíce omezující mechanismus WT „vyhrává“ nad WB WC „vyhrává“ nad WT i WB

MTRR (Memory Type Range Registers) Přiřazení typu paměti oblastem fyzické paměti Kontrola vlastnosti MTRR pomocí CPUID MSR r/o registr IA32_MTRRCAP –podpora pro pevné rozsahy –počet volných rozsahů (P6+ má 8) –podpora typu WC Mimooblast –MSR IA32_MTRR_DEF_TYPE udává typ paměti pro oblasti fyzické paměti nepokryté pevnými i volnými rozsahy Pevné rozsahy –8 rozsahů po 64KB v nejnižších 512KB ( FFFF) –16 rozsahů po 16KB v následujících 256KB ( BFFFF) –64 rozsahů po 4KB v následujících 256KB (000C FFFFF) Volné rozsahy –adresa & PHYSMASKn = PHYSBASEn & PHYSMASKn –pokud se překrývají s pevným rozsahem, vyhrává pevný rozsah

PAT (Page Attribute Table) Přiřazení typu paměti oblastem lineárního adresového prostoru Kontrola vlastnosti PAT pomocí CPUID MSR IA32_CR_PAT definuje 8 typů Příslušný typ vybrán z IA32_CR_PAT indexací pomocí PAT (4), PCD (2), PWT (1) ze stránkovacích tabulek Nelze zapnout/vypnout Počáteční nastavení po RESET odpovídá zpětně PCD a PWT –2 * WB, WT, UC-, UC