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.
SYSTÉM PŘERUŠENÍ U 68HC11.
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čů Vysokoúrovňové optimalizace 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í)
Informatika I 7.a 8. hodina 4. týden.
DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektuCZ.1.07/1.5.00/ Název projektuEU peníze středním školám Masarykova OA Jičín Název školyMASARYKOVA OBCHODNÍ.
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
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.
Procesory.
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.
Provedení logických obvodů
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Procesory Něco o procesorech a jejich připojení Lukáš Mládek.
Pokročilé architektury počítačů (PAP_04.ppt) Karel Vlček, katedra Informatiky, FEI VŠB Technická Univerzita Ostrava.
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.
Marek Malík a František Černý, ME4A, 2012
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é.
Instrukce procesoru.
Čí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.
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.
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.
ALU Aritmeticko-logická jednotka
Aritmetickologická jednotka
Výukový materiál zpracován v rámci projektu
Jednočipové počítače – instrukční sada
Mikropočítač Soubor instrukcí
Operační systémy 1. Základní pojmy
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: 
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