Programování v asembleru - multiprocesory Jakub Yaghob.

Slides:



Advertisements
Podobné prezentace
Na velikosti (ne)záleží aneb Úvod do programování jednočipů
Advertisements

Prezentační práce na téma PAMĚTI CACHE
Programování v asembleru - multiprocesory Jakub Yaghob.
Manuál pro začátečníky
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.
Sběrnice vývoj a charakteristika. Motherboard (základní deska)
SYSTÉM PŘERUŠENÍ U 68HC11.
Otázky k absolutoriu HW 1 - 5
Techniky síťového útoku
Procesory Filip Skulník.
Postupně tedy doplňujeme hodnoty do na začátku prázdného SFC (postupového diagramu), který je v automatu realizován krokovým řadičem.
Programování v asembleru - prostředí
Principy překladačů Interpretované jazyky Jakub Yaghob.
Principy překladačů Architektury procesorů Jakub Yaghob.
Programování v asembleru - instrukce Jakub Yaghob.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Program Programátorský model procesoru Instrukční soubor
TEP Instrukční soubor č.9.
Instrukční soubor PIC16Fxxx osnova: Charakteristika instrukčního souboru Rozdělení instrukcí Časové průběhy (zpracování instrukcí)
Implementace USB rozhraní AVR mikrořadičem Diplomová práce Implementace USB rozhraní AVR mikrořadičem Vypracoval: Jan Smrž Vedoucí práce: Ing. Pavel Kubalík.
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.
PicoBlaze, MicroBlaze, PowerPC
Základy mikroprocesorové techniky
David Klíma- 1 - Opáčko Celkové schéma základní desky Co je to čipová sada IRQ DMA Slot, patice Domácí úkol: zákl. deska pro P4.
Tato prezentace byla vytvořena
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
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.
Zdroj Parametry – napájení všech komponent PC
Operační systém (OS) ICT Informační a komunikační technologie.
Informatika / …o počítači (základní pojmy, jednoduché představy) 2006.
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.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
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é.
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.
Distribuovaná sdílená paměť Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
1 Paměťový subsystém „640 kB ought to be enough for anybody.“ Bill Gates, 1981.
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é.
Hardware osobních počítačů
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
Pokročilé architektury počítačů (PAP_05.ppt)
Základní pojmy ve výpočetní technice
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Procesory.
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: ●
John von Neumannova koncepce. John von Neumann  Narozen 28. prosince 1903 Budapešť Rakousko-Uhersko  Zemřel 8. února 1957 Spojené státy americké.
Překladače Optimalizace © Milan Keršláger
Základy programování mikropočítačů První program v jazyce symbolických adres.
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.
Orbis pictus 21. století Instrukční soubor 2
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
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
Vypracoval / Roman Málek
Operační systémy Mikroprocesory
Výukový materiál zpracován v rámci projektu
Jednočipové počítače – instrukční sada
1. ročník oboru Mechanik opravář motorových vozidel
1. ročník oboru Mechanik opravář motorových vozidel
Výukový materiál zpracován v rámci projektu
Mikropočítač Soubor instrukcí
Operační systémy 1. Základní pojmy
Výukový materiál zpracován v rámci projektu
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
Transkript prezentace:

Programování v asembleru - multiprocesory Jakub Yaghob

Programování na MP Problémy Atomické operace Zaručené atomické operace Zamykání sběrnice Cache Pořadí paměťových operací Serializující instrukce Samomodifikující se kód Spin-locky

Zaručené atomické operace i486+ R/W byte R/W word zarovnané na word R/W dword zarovnané na dword Pentium+ R/W qword zarovnané na qword R/W word z/do necachované paměti v rámci 32-bitové sběrnice Pentium Pro+ Nezarovnaný R/W word, dword, qword z/do jedné řádky cache

Zamykání sběrnice Automatické Instrukce XCHG s pamětí Pomocí prefixu LOCK Pouze pro povolené instrukce, jinak #UD BTS, BTC, BTR XADD, CMPXCHG, CMPXCHG8B INC, DEC, NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, XOR

Terminologie cache Cache line fill R z cacheovatelné paměti R celé řádky cache Cache hit Adresa je v cache Cache miss Adresa není v cache Write hit Pokud je adresa v cache, jde zápis do cache Jinak je proveden cache line fill

Koherence cache MESI protokol Každá řádka cache má 2 bity na stav „Transparentní“ pro software Instrukční L1 má pouze SI stavy Přechody snoopingem CPU detekuje na sběrnici W do řádky s M Zruší transakci Přímý přepis řádky cache do druhého CPU s odbočkou do paměti Přepnutí do stavu I Stav řádky cacheM (Modified)E (Exclusive)S (Shared)I (Invalid) Je platná?ano ne Kopie v paměti je......stará...přesná N/A Kopie na jiných CPU?ne možná W do této řádky......nejde na sběrnici... Nejde na sběrnici, přesun do M...přesun do E...jde přímo do paměti

Pořadí paměťových operací Pořadí podle programu (silné pořadí) R/W na sběrnici ve stejném pořadí, v jakém se vyskytují v proudu instrukcí i386 Pořadí podle procesoru (slabé/spekulativní pořadí) Přesné chování záleží na modelu CPU Pentium Pro+ Pentium a i486 Většinou se chovají v pořadí podle programu R miss může předběhnout W, když jsou všechny nabufferované W cache hity I/O vždy v pořadí podle programu

Pořadí podle procesoru na WB paměti Jeden CPU R může být prováděn spekulativně v jakémkoliv pořadí R může předběhnout W, ale CPU se musí chovat konzistentně W do paměti jsou prováděny vždy v pořadí podle programu, kromě instrukcí CLFLUSH, MOVNTI, MOVNTQ, MOVNTDQ, MOVNTPS, MOVNTPD W mohou být bufferovány W nejsou spekulativní, provádí se pouze pro instrukce, které byly skutečně provedeny Data z bufferovaných W mohou být podstrčeny čekajícím R uvnitř CPU R/W nemohou předběhnout I/O, zamčené a serializující instrukce R nemůže předběhnout LFENCE a MFENCE W musí být proveden před SFENCE nebo MFENCE Více CPU Jednotlivé CPU se chovají samostatně jako jeden CPU W z jednoho CPU jsou pozorovány ve stejném pořadí všemi CPU W z jednotlivých CPU na sběrnici NEJSOU seřazeny vůči sobě

Pořadí podle procesoru

Serializující instrukce CPU dokončí všechny změny příznaků, registrů a paměti CPU vyčistí všechny bufferované W Pentium+ Některé privilegované instrukce Neprivilegované instrukce CPUID, IRET, RSM Neprivilegované pro zesílení pořadí paměťových operací LFENCE, SFENCE, MFENCE

Samomodifikující se kód Možnost 1 Zapsat modifikovaný kód pomocí datového segmentu Skok na modifikovaný kód nebo na mezilehlou adresu Vykonávání změněného kódu Možnost 2 Zapsat modifikovaný kód pomocí datového segmentu Provést serializující instrukci Vykonávání změněného kódu Velká výkonnostní ztráta Cross-modifikující kód Jeden CPU změní kód a druhý ho chce vykonat Sesynchronizovat CPU a vykonat serializující instrukci

Spin-locky Využití instrukce PAUSE Kódována jako REP NOP, potíže na starších AMD spin_lock: cmplockvar,0 jeget_lock pause jmpspin_lock get_lock: moveax,1 xchg eax,lockvar testeax,eax jnespin_lock spin_lock_end: movlockvar,0

TSX Transactional Synchronizations Extensions Haswell 2 SW rozhraní pro transakční zpracování HW Lock Elision (HLE)  Zpětná kompatibilita pro CPU bez TSX  Znovuvyužití prefixů REPE / REPNE u dalších instrukcí, kde jsou pak jako prefixy XACQUIRE / XRELEASE  Instrukce musí mít LOCK prefix (kromě XCHG )  ADD, ADC, AND, BTC, BTR, BTS, CMPXCHG, CMPXCHG8B, DEC, INC, NEG, NOT, OR, SBB, SUB, XOR, XADD, XCHG  Pro XRELEASE ještě MOV mem,reg a MOV mem,imm Restricted Transactional Memory (RTM)  Nová sada instrukcí XBEGIN, XEND, XABORT  Zanořené transakce  Fallback kód specifikován u XBEGIN s chybovým kódem v EAX Testování probíhajícího transakčního zpracování instrukcí XTEST