Architektura procesorů Intel

Rozměr: px
Začít zobrazení ze stránky:

Download "Architektura procesorů Intel"

Transkript

1 Architektura procesorů Intel Procesory 8086 / 88 Šířka vnitřní datové sběrnice procesoru 8086 je 16-bitová, zatímco procesoru 8088 je 8-bitová. AX AH AL ACCUMULATOR BX BH BL BASE CX CH CL COUNT DX DH DL DATA SP STACK POINTER BP BASE POINTER SI SOURCE INDEX DI DESTINATION INDEX IP INSTRUCTION POINTER F FH FL FLAGS CS CODE SEGMENT DS DATA SEGMENT SS STACK SEGMENT ES EXTRA SEGMENT F CF PF AF ZF SF TF IF DF OF 1

2 CF Carry Flag Nastavuje se při přenosu / výpůjčce z / do nejvyššího bitu, jinak se nuluje. PF Parity Flag Nastavuje se při sudém počtu jedničkových bitů nejnižší slabiky výsledku, jinak se nuluje. AF Auxiliary Flag Nastavuje se při přenosu / výpůjčce z / do bitu 3 (poloviční přenos), jinak se nuluje. ZF Zero Flag Nastavuje se při nulovém výsledku aritmetických a logických operací. SF Sign Flag Nastavuje se při záporném výsledku aritmetických a logických operací. TF Trap Flag Ovládá se programově, nuluje se navíc při každém přerušení; je-li nastaven, pak procesor krokuje program (po provedení každé instrukce se zastaví). IF Interrupt Flag Ovládá se programově, nuluje se navíc při každém přerušení; je-li nastaven, jsou povolena maskovatelná přerušení. DF Direction Flag Ovládá se programově; určuje směr zpracování řetězových instrukcí. OF Overflow Flag Nastavuje se při přetečení výsledku aritmetických operací se znaménkem. Hlavní paměť: FFFFFh max. 64kB kódový segment Segmentové registry xxxx0h CS DS SS ES EA = offset datový segment xxxxx0h zásobníkový segment xxxx0h extra segment xxxx0h 00000h 2

3 Procesory / 188 Architektura procesorů / 188 je (opět z hlediska programátora) stejná jako u procesorů 8086 / 88. Znamená to, že procesory / 188 mají stejné registry, pracují se stejnými typy operandů, mají stejné formáty instrukcí a stejným způsobem i adresují operandy. Mají i stejné vyjímečné situace a stejným způsobem zpracovávají přerušení. Procesor má 16-bitovou vnitřní sběrnici, zatímco procesor má tuto sběrnici pouze 8-bitovou. Procesory Procesory umožňují práci ve 2 režimech základní (Real) a chráněný (Protected). V základním režimu pracují procesory zcela stejně jako V chráněném režimu poskytují procesory nové přístupy ke správě paměti, především zavádí pojem úlohy (Task) a zabudovaným systémem přepínání úloh přímo podporují multiprogramování. V chráněném režimu lze používat všechny instrukce procesorů a navíc několik nových, speciálních systémových instrukcí, se kterými běžný uživatel nepracuje. AX AH AL ACCUMULATOR BX BH BL BASE CX CH CL COUNT DX DH DL DATA SP STACK POINTER BP BASE POINTER SI SOURCE INDEX DI DESTINATION INDEX IP INSTRUCTION POINTER F FH FL FLAGS MACHINE STATUS WORD CS CODE SEGMENT DS DATA SEGMENT SS STACK SEGMENT ES EXTRA SEGMENT 3

4 F IF TF SF ZF AF PF CF DF OF IOPL NT IOPL I/O Privilege Level Dvoubitové pole indikuje maximální hodnotu CPL (Current Privilege Level), ve které jsou ještě povoleny I/O operace bez jakýchkoliv omezení; dále určuje max. hodnotu CPL, ve které je ještě povolena změna příznaku IF. Obsah IOPL je měněn při předávání řízení mezi úlohami, jinak ho lze měnit pouze instrukcemi POPF a IRET při CPL=0. NT Nested Task Je-li nastaven (NT=1) pak indikuje, že zpracovávaná úloha je vnořena v jiné úloze; příznak je měněn při předávání řízení mezi úlohami. MSW TS EM MP PE TS Task Switched TS=1 indikuje, že došlo k přepnutí úloh; instrukce pro koprocesor ESC a WAIT pak způsobí výjimku 7 a tím umožní programově zjistit, zda aktuální stav koprocesoru náleží aktuální úloze. EM Emulate Procesor Extension EM=1 indikuje, že koprocesor není dostupný; následující instrukce ESC pak způsobí výjimku 7 a tím umožní činnost koprocesoru programově emulovat. 4

5 MP Monitor Procesor Extension MP=1 indikuje, že koprocesor je dostupný. PE Protected Mode Enable Nastavením PE na hodnotu 1 se přepne procesor do chráněného režimu. Procesor lze přepnout zpět do základního režimu pouze signálem RESET LDTR Hlavní paměť Selektor deskriptoru LDT IDTR Velikost IDT Bázová adresa IDT GDTR Velikost GDT Bázová adresa GDT Deskriptor LDT Tabulka globálních deskriptorů Formát kódového a datového deskriptoru Rezerva pro Intel (kvůli kompatibilitě s vynulováno) Práva přístupu Báze segmentu: bity Báze segmentu: bity 15-0 Hranice segmentu (limit) offset poslední slabiky segmentu Formát deskriptoru bran Rezerva pro Intel (kvůli kompatibilitě s vynulováno) Práva přístupu X X X Počet slov Cílový selektor: bity 15-2 Cílový offset X X 5

6 Slabika práv přístupu u deskriptoru kódových segmentů P DPL S=1 E=1 C R A Slabika práv přístupu u deskriptoru datových segmentů P DPL S=1 E=0 ED W A Slabika práv přístupu u deskriptoru speciálních systémových datových segmentů P DPL S=0 0 TYPE P Present P=0/1 segment není/je mapován do fyzické paměti, tj. obsah deskriptoru není/je platný. DPL Descriptor Privilege Level DPL=0,1,2,3 úroveň oprávnění deskriptoru S Segment Descriptor S=0/1 systémový/kódový_nebo_datový segment E Executable E=0/1 datový/kódový segment A Accessed A=0/1 selektor segmentu dosud nebyl/byl použit C Conforming C=0/1 regulární/přizpůsobivý segment; regulární může měnit CPL. R Readable R=0/1 segment nesmí/může být čten ED Expansion Direction ED=0/1 segment roste nahoru/dolů (data/zásobník); offset musí být / > hranice segmentu (limit). W Writeable W=0/1 do segmentu se nesmí/může zapisovat 6

7 TYPE 1 volný segment stavu úlohy (Available TSS) 2 segment (tabulka) lokálních deskriptorů 3 obsazený segment stavu úlohy (Busy TSS) Segment stavu úlohy (TSS) Hlavní paměť Selektor deskriptoru TSS Deskriptor TSS Tabulka globálních / lokálních deskriptorů Báze TSS (z deskriptoru TSS) Segment stavu úlohy (TSS) Selektor LTD Selektor DS Selektor SS Selektor CS Selektor ES Registr DI Registr SI Registr BP Registr SP Registr BX Registr DX Registr CX Registr AX Registr F Registr IP SS pro CPL=2 SP pro CPL=2 SS pro CPL=1 SP pro CPL=1 SS pro CPL=0 SP pro CPL=0 Selektor TSS

8 Procesory Procesory jsou prvními procesory firmy Intel, které mají 32-bitovou architekturu. Plně však respektují architektury předchozích procesorů, m.j. akceptují úplný instrukční soubor procesorů a umožňují práci v 16-bitovém základním režimu i 16- bitovém chráněném režimu; navíc umožňují práci i ve virtuálním chráněném režimu, kdy přepínáním úloh napodobují paralelní práci několika samostatných procesorů EAX AH AX AL EBX ECX EDX ESI EDI EBP ESP BH BX BL CH CX CL DH DX DL SI DI BP SP CS SS Code segment Stack segment DS ES FS Data segments GS EIP EF IP F 8

9 VM RF NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 0 CF VM Virtual 8086 Mode VM=1 indikuje virtuální 8086 režim; příznak lze měnit pouze v chráněném režimu přepnutím úloh. Instrukce POPF příznak nemění, PUSHF ukládá do zásobníku místo tohoto příznaku nulu. RF Resume Flag RF=1 způsobí, že případný breakpoint při zpracování následující instrukce bude ignorován. Po úspěšném provedení následující instrukce je příznak RF vždy nulován. Tím je umožněno pokračování programu po ukončení obslužného programu tohoto breakpointu od stejné instrukce, která předtím breakpoint způsobila. Řídící registry: CR0 PG 0. 0 MSW CR2 CR3 Lineární adresa, která způsobila chybu stránky Báze adresáře tabulek stránek 0 0 GDTR Limit GDT Báze GDT IDTR Limit IDT Báze IDT LDTR Selektor LDT TR Selektor TSS 9

10 Ladící registry: 31 0 DR0 DR1 DR2 DR3 DR6 DR7 Lineární adresa breakpointu 0 Lineární adresa breakpointu 1 Lineární adresa breakpointu 2 Lineární adresa breakpointu 4 Stav breakpointu (Breakpoint Status) Řízení breakpointu (Breakpoint Control) Testovací registry: 31 0 TR6 TR7 Řízení testu TLB (TLB Test Control) Stav testu TLB (TLB Test Status) Transformace adresy: Výpočet efektivní adresy Báze Index Konstanta Displacement * CS registr: Selektor Index k deskriptoru + Logická (virtuální) adresa Segmentace Stránkování Lineární adresa Fyzická adresa 10

11 Formát kódového a datového deskriptoru AVL Báze segmentu: bity G D 0 Limit: Práva přístupu Báze segmentu: bity Báze segmentu: bity 15-0 Limit segmentu: bity Formát systémového datového deskriptoru Báze segmentu: bity G Limit: Práva přístupu Báze segmentu: bity Báze segmentu: bity 15-0 Limit segmentu: bity Formát deskriptoru bran Cílový offset: bity Práva přístupu Počet slov Cílový selektor: bity 15-2 x x Cílový offset: bity G Granularity G=0/1 slabiková/stránková granularita, tj. segment může být dlouhý buď 1MB (2 20 slabik), nebo 4GB (2 20 stránek dlouhých 4kB; tyto stránky jsou nezávislé na stránkovacím systému). D Default Instruction Attributes D=0/1 implicitní atributy jsou 16/32 bitů (operandy i adresy) AVL Available Field for User or OS Volný bit pro využití uživatelem/systémem. 11

12 Slabika práv přístupu u deskriptoru speciálních systémových datových segmentů P DPL S=0 TYPE TYPE 0 neplatný segment (Invalid) 1 volný segment stavu úlohy pro (Available TSS) 2 segment (tabulka) lokálních deskriptorů (LDT) 3 obsazený segment stavu úlohy pro (Busy TSS) 4 brána volání procedury pro (80286 Call Gate) 5 brána přepínání úloh (Task Gate) pro i brána přerušení pro (80286 Interrupt Gate) 7 brána zachycování/krokování pro (80286 Trap Gate) 8 neplatný segment (Invalid) 9 volný segment stavu úlohy pro (Available TSS) A nedefinováno (rezervováno pro Intel) B obsazený segment stavu úlohy pro (Busy TSS) C brána volání procedury pro (80386 Call Gate) D nedefinováno (rezervováno pro Intel) E brána přerušení pro (80386 Interrupt Gate) F brána zachycování/krokování pro (80386 Trap Gate) Procesory Procesory jsou velmi podobné procesorům Na svém čipu však mají zabudovánu i jednotku prakticky shodnou s koprocesorem 80387, tzv. FPU (Floating-Point Unit) a obsahuje i některé další doplňky hardware, jako např. rychlou (cache) paměť o velikosti 8kB umožňující podstatné zrychlení přístupu k nejpoužívanějším instrukcím i datům, mohutnější testovací subsystém apod. Instrukční soubor obsahuje všechny instrukce procesorů a koprocesorů a šest nových instrukcí určených ke zrychlení práce s programovými semafory a k vnitřnímu testování. Řídící registr CR0 procesorů PG CD NW AM 0 WP NE 1 TS EM MP PE NE Numeric Exception Příznak umožňuje kompatibilitu s předchozími koprocesory 8087, a Pro NE=0 (nastaveno po startu procesoru) je nemaskovaná výjimka koprocesoru zpracována jako externí přerušení 13; pro NE=1 jako výjimka 16. WP Write Protect Příznak má vztah ke stránkování. Podrobnosti viz. literatura. 12

13 Procesory Pentium Procesor Pentium obsahuje dvojici zřetězených výkonných jednotek označovaných jako jednotka U a jednotka V. Ovšem tyto 2 jednotky si nejsou zcela rovnocenné. Výkonná jednotka U je schopna provádět všechny celočíselné i numerické instrukce, kdežto výkonná jednotka V pouze základní celočíselné instrukce a instrukci FXCH. Procesor Pentium má oddělenou paměť cache pro instrukce a data (oproti 80486). Datová cache je realizována jako dvoubranná, aby k ní mohly přistupovat současně obě výkonné jednotky. Pole příznaků je dokonce tříbranné, aby mohlo být přístupné současně i při dotazovacím cyklu sběrnice. Obě paměti cache jsou vybaveny TLB (Translation Lookaside Buffer) k překladu lineární adresy na fyzickou. Novinkou procesoru Pentium oproti předchozím procesorům je to, že je schopen dokončit 2 instrukce během jedné periody hodin. To umožňuje superskalární zřetězená architektura se dvojicí výkonných jednotek (popis u procesoru viz. dále). PF D1 D2 D2 E WB E WB PF PreFetch čtení instrukce D1 Decode1 dekódování instrukce D2 Decode2 generování adres EX Execute provedení WB Write Back zápis výsledku Díky superskalární architektuře však může procesor Pentium zpracovávat v každém stupni 2 instrukce, tedy rozpracováno může být až 10 instrukcí (protože každá výkonná jednotka má 5 stupňů viz. obrázek). PF jednotka předvýběru instrukcí má za úkol načítat instrukce z vnitřní paměti cache nebo z operační paměti a ukládat je do fronty instrukcí. Protože má procesor oddělenou pamět cache pro data a instrukce, nehrozí konflikt se čtenými nebo zapisovanými daty při načítání instrukce z této vnitřní paměti cache. Jednotka pro předvýběr instrukcí disponuje frontou instrukcí o délce 64 slabik, která je plněna z paměti cache položkami o délce 32 slabik. Protože jednotka předvýběru instrukcí spolupracuje s jednotkou předvídání skoků, mohou být pro další zpracování připraveny 2 nezávislé položky. První může odpovídat sekvenčnímu zpracování programu, druhá pak jeho větvení na základě spolupráce s jednotkou předvídání skoků a bufferem adres skoků. Běžně jednotka předvýběru instrukcí načítá instrukce z paměti v přirozeném pořadí. Pokud je však načtena instrukce skoku, buffer cílových adres BTB (Branch Target Buffer) napoví, zda ke skoku dojde nebo nikoliv. Pokud se předpokládá, že skok nebude proveden, načítání instrukcí pokračuje sekvenčně. V případě předpokladu provedení skoku je jako druhá 13

14 položka načtena položka odpovídající cílové adrese skoku. Došlo-li ke špatnému předpokladu provedení skoku, je obsah fronty instrukcí zneplatněn a ihned je zahájeno nové načítání instrukcí. Algoritmus předvídání skoků předpokládá, že instrukce větvení bude provedena tím samým způsobem, jako byla provedena naposledy. Druhou fází zpracování instrukce je první dekódování D1 prováděné dekodérem instrukcí. Ten obsahuje dvojici dekodérů, které dekódují následující 2 instrukce v přirozené posloupnosti instrukcí. V tomto bodě se také určuje, zda instrukce musí být dále zpracovány postupně, nebo jako pár instrukcí, každá v jedné výkonné jednotce. Podobně jako u procesorů a platí i u procesoru Pentium to, že pokud má instrukce prefix, pak její dekódování trvá o 1 periodu hodin déle. Proto je zapotřebí dát pozor na to, aby byl v programu minimalizován počet prefixů, který může snížit výkon celého systému. První dekódování instrukce je následováno dekódováním druhým D2, při němž jsou určovány adresy operandů ležících v paměti podobným způsobem jako u předchozích procesorů Intel. Přínosem procesoru Pentium při generování adresy je to, že zvládne během jediné periody hodin generovat adresu skládající se ze 2 částí (báze a index). Při fázi provádění E procesor prostřednictvím dvojice ALU a vnitřní paměti cache dat realizuje vlastní provedení instrukce. Některé instrukce jsou přitom prováděny nikoliv mikroprogramově, ale hardwarově, takže jejich provedení vychází rychlejší než u procesorů dřívějších. Při této fázi jsou všechny instrukce zpracovávané v řetězci U a instrukce zpracovávané řetězcem V kromě podmíněných skoků kontrolovány na správnost předpovězení cílové adresy. Během jedné periody hodin může být prováděna buď jedna nebo 2 instrukce. K tomu, aby mohly být současně zpracovány 2 instrukce je nutno splnit několik pravidel. Předně nesmí jít o instrukce závislé, kdy by jedna instrukce potřebovala ke svému provedení výsledek instrukce druhé. Závislostí je např. i to, když je první instrukce instrukcí aritmetickou nebo logickou (tedy nastavující příznaky) a druhá instrukce je využívá (příznaky). Žádná z instrukcí nesmí obsahovat v adresní části displacement a přitom pracovat s přímou hodnotou. Instrukce s prefixem (s výjimkou prefixu (0F) H pro podmíněné skoky) mohou být zpracovány pouze v jednotce U. Kromě toho musí být obě instrukce tzv. jednoduché. Jednoduché instrukce nejsou prováděny mikroprogramově, ale hardwarově. Kromě aritmetických a logických instrukcí mezi pamětí a registrem trvá jejich provádění jedinou periodu hodin. V zásadě je možno říci, že jednoduché jsou a mohou být tedy zpracovávány po dvojicích instrukce MOV, aritmetické a logické instrukce, INC, DEC, PUSH, POP, LEA, JMP, CALL, podmíněné skoky a NOP. Přitom instrukce skoků a volání mohou být prováděny ve dvojici, jen jde-li o druhou instrukci dvojice. Naopak instrukce rotací a posuvů musí být první instrukcí dvojice, neboť mohou být zpracovávány pouze výkonnou jednotkou U. Poslední fází zpracování instrukce je zápis výsledku. Nyní instrukce modifikují stav procesoru a jejich výsledek je ukládán na místo určení. Kromě toho jsou instrukce podmíněných skoků zpracovávané v řetězci V kontrolovány na správnost předpovězení cílové adresy. 14

15 Po dokončení některých instrukcí provádí procesor nové řazení instrukcí. To má za následek zrušení provádění instrukcí, jejichž zpracování již bylo zahájeno a vyprázdnění fronty načtených instrukcí. Proč se tohle zrovna provádí? V případech, kdy jsou modifikovány některé důležité informace ovlivňující činnost procesoru by totiž mohly být instrukce, jejichž zpracování již bylo zahájeno chybně interpretovány. Struktura registru příznaků EFLAGS ID VIP VIF AC VM RF NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF ID Identification Flag ID=1/0 umožňuje/neumožňuje provádět instrukci CPUID VIP Virtual Interrupt Pending Flag VIP=1/0 je/není povolena činnost virtuálního příznaku povolení přerušení VIF VIF Virtual Interrupt Flag Virtuální příznak povolování přerušení. Aktivuje se příznakem VIP a je-li aktivován, má stejný význam jako příznak IF. Zřetězená numerická výkonná jednotka procesoru Pentium je výrazně výkonnější než numerická jednotka procesoru 80486DX. Podstatně byl zdokonalen především mikrokód. Kromě toho je numerická jednotka navržena tak, aby byla schopna v každé periodě hodin převzít 1 instrukci plovoucí řádové čárky. Provádění instrukce probíhá v 8 fázích, numerická výkonná jednotka je tedy osmistupňově zřetězena, prvních 5 fází je přitom sdíleno s celočíselnou výkonnou jednotkou. X1 X2 WF PF D1 D2 E WB Obrázek 2 Jednotka s pohyblivou řádovou čárkou začleněná do integerové podjednotky Jedna z částí jednotky s pohyblivou řádovou čárkou Integerová jednotka 15

16 Jednotlivé fáze jsou: X1 Floating-Point Execute Stage 1 výpočet v plovoucí řád. Čárce X2 Floating-Point Execute Stage 2 výpočet v plovoucí řád. Čárce WF Write Floating-Point Result zapsání výsledku ER Error Reporting/Update Status Word chybové hlášení/nastavení stavového slova Instrukce v plovoucí řádové čárce nemohou být párovány s celočíselnými instrukcemi. Je-li však v programu některá z instrukcí FLD, FADD, FSUB, FMUL, FDIV, FCOM, FUCOM, FTST, FABS, FCHS bezprostředně následována instrukcí FXCH, pak budou obě numerické instrukce zpracovány souběžně. První z nich přitom bude zpracovávána řetězcem U a druhá řetězcem V. Při zpracovávání posloupnosti instrukcí je třeba vzít v úvahu to, že ve fázi X1 je určována tzv. bezpečnost instrukce, která může ovlivnit dobu zpracování instrukce následující. Pod pojmem bezpečnost instrukce se skrývá to, zda instrukce může generovat chybu přeplnění, podplnění nebo ztráty přesnosti a když nepotřebuje asistenci mikroprogramu pro obsluhu speciálních výsledků. Je-li instrukce bezpečná, pak pro instrukci následující je možno ukončit fázi EX. Není-li však bezpečná, musí se s provedením fáze EX následující instrukce počkat do té doby, než je dokončena fáze ER právě zpracovávané instrukce. To znamená pozdržení zpracovávání následující instrukce o 4 periody hodin. Procesor Pentium Pro Rodina procesorů Pentium Pro používá dynamickou spouštěcí architekturu, která používá spekulativní spouštění bez předem určeného pořadí a hardwarového přejmenování registrů a samozřejmě predikci větví programů. Hlavním rysem procesoru je roura (pipeline), která rozdělí procesorové makroinstrukce do jednoduchých mikrooperací, nazývaných microops nebo µops, a superskalární mikroprocesorové jádro, které provádí mikrooperace. Toto jádro obsahuje několik jednotek pro celočíselnou větev, větev s plovoucí řádovou čárkou a část zpřístupňující paměť. Například celočíselná jednotka a jednotka s plovoucí řádovou čárkou sdílejí společně 1 jednotku. Cache paměť je dvoubranná se dvěma porty, první slouží ke čtení, druhý k zapisování. Jednotka procesoru Pentium Pro obsahuje 3 části: (1) předřazená část respektující pořadí, (2) jádro, nerespektující pořadí a (3) ukončovací obvod, respektující pořadí. Na obrázku 3 je schéma roury. Port 2 Port 3 Port 4 BTB0 BTB1 IFU0 IFU1 IFU2 ID0 ID1 RAT ROB Rd RS BTB0 BTB0 Port 0 BTB0 Port 1 Obrázek 3 16

17 Jelikož procesor Pentium Pro provádí instrukce v pořadí rozdílném od spuštěného programu (předpisu), je důležité se ujistit, zda je připraven dostatečný počet mikrooperací pro spuštění. Vybrání správné větve a rychlé dekódování jsou základními předpoklady k získání dobrého výkonu. Během každého hodinového cyklu může být dekódovány 3 makroinstrukce v ID1. Pokud jsou instrukce komplexní nebo příliš dlouhé (více jak 7 slabik) je dekodér omezen nemůže dekódovat tolik instrukcí. Dekodér může dekódovat: - 3 makroinstrukce během hodinového cyklu - 6 mikrooperací během hodinového cyklu - makroinstrukce dlouhé nad 7 slabik Procesor Pentium Pro má 3 dekodéry v části D1. První dekodér je schopen dekódovat jednu ze 4 makroinstrukcí nebo několik mikrooperací během hodinového cyklu. Další dva dekodéry mohou dekódovat instrukci jedné mikrooperace během hodinového cyklu. Instrukce které mají více jak 4 mikrooperace zaberou více času. Tedy: - Jednoduché instrukce typu registr-registr jsou pouze jedna mikrooperace - Nahrání instrukce je pouze 1 mikrooperace - Uložení instrukce jsou 2 mikrooperace - Jednoduché čtení a změna jsou 2 mikrooperace - Jednoduché operace registr-paměť mají 2 až 3 mikrooperace - Jednoduché uložení se změnou jsou 4 mikrooperace - Komplexní instrukce zabírají více jak 4 mikrooperace Po dekódování jsou mikrooperace předány do Reservation Station (RS), což je začátek jádra mikroprocesoru, které neuvažuje pořadí. V RS čekají mikrooperace, dokud nejsou jejich data aktivní. Pokud má mikrooperace přístupná všechna data, je tato mikrooperace předána prováděcí jednotce. Pokud už přijde mikrooperace do RS s daty aktivními a prováděcí jednotka je volná, je mikrooperace přímo poslána do prováděcí jednotky; potom tato mikrooperace nezabere žádný čas v RS. Všechny prováděcí jednotky jsou rozděleny na jednotlivé porty, které vystupují z RS. Po provedení mikrooperace je tato uložena v Re-Order Buffer (ROB) a čeká na dokončení. V této části jsou všechna data zapsána zpět do paměti a všechny mikrooperace jsou dokončovány, vždy 3 během hodinového cyklu. Obrázek 4 ukazuje jádro Re-Order a dokončovací část. 17

18 ROB Rd RS Port 0 Port 2 Port 1 Port 3 Port 4 RRF ROB Wb Register Retirement File Re-Order Buffer Writeback Obrázek 4 Cache paměti (na čipu) L1 se skládají z 8kB čtyřcestných asociativních, instrukčních cache jednotek a s délkou řádku 32 bytů. Dále obsahuje jednu 8kB dvoubrannou datovou cache jednotku. Veškeré miss v paměti L1 jsou maskovány úrovní dvě L2. Časový rozdíl mezi náhradou L2 chyby L1 je 11 až 14 cyklů (struktura DRAM). Data v paměti mohou být současně zpřístupněna pomocí instrukce nahrání a uložení, dokud jsou data v různých bankách. Instrukční předzpracovávač umožňuje agresivní předzpracování přímého kódového řádku. Nejvhodnější je uspořádání kódu tak, aby šlo celou větev projít bez cyklů, nebo skoků. Málo používaná část kódu je přesunuta do spodek a je zpracována až na konci. Předzpracování je vždy pro 16-bitový, zarovnaný blok. Procesor totiž čte instrukce v 16-bitových rámcích. 512-vstupová BTB (Branch Target Buffer) uchovává historii předešlých větví programu a jejich cílů (adres). Když je daná větev předzpracovávaná, BTB předá cílovou adresu přímo do IFU (Instruction Fetch Unit). Pokud je větev zpracována, je do BTB uložena nová cílová adresa. Tento algoritmus (Branch Target Buffer) zahrnuje srovnávání vzorků s předešlými 4 historickými bity cílové adresy. Například cyklus, který se 4x opakuje, má 100% predikci. Navíc má procesor Pentium Pro RSB (Return Stack Buffer), který určuje predikcí návratové adresy procedur, které jsou volány z různých míst. Pro větve existují 3 stavy: - Každá větev, která není brána v úvahu nezabírá žádný čas. - Větev, která je správně určena pomocí BTB zabírá maximálně 1 hodinový cyklus. - Větev, která je chybně určená zabírá až 9 hodinových cyklů. - Větve, které nejsou v BTB, ale jsou správně určeny predikcí, zabírají kolem 5 až 6 hodinových cyklů. 18

19 Procesor Pentium Pro uchovává všechny zápisy do paměti do zápisového bufferu. Tento buffer zajišťuje, že při provádění instrukcí se nemusí čekat na provedení zápisu, ale pokračuje se až do konce a potom se teprve provedou všechny zápisy. Zápisy jsou provedeny v tom pořadí, v jakém přišly. Procesor Pentium MMX Technologie MMX (Multimedia Extension) je jakousi nádstavbou nad základní procesorovou technologií. Technologie používá SIMD (Single Instruction, Multiple Data) ke zvýšení multimédií a komunikací, zpracováním datových elementů paralelně. Do instrukční sady je přidáno 57 nových instrukcí a nové 64-bitové datové typy viz. obrázek 5. Tedy je přidáno osm 64-bitových MMX registrů; každý z nich může být nezávisle adresován MM0 MM7, viz. obrázek slabik zapakovaných do 64-bitů slova zapakovaná do 64-bitů dvouslova zapakovaná do 64-bitů Obrázek 5 MM MM6 MM5 MM4 MM3 MM2 MM1 MM0 Obrázek 6 19

20 Technologie MMX je transparentní k operačním systémům a 100% kompatibilní se všemi předchozími technologiemi Intelu. Tento procesor přidává nové části do pipeline zpracování, viz. obrázek 7. MR/W Mex WM/M 2 M 3 WMul PF F D1 D2 E WB Část MMX E 1 E 1 E 2 E 2 E 3 MMX integrovaná do integer části Pouze integerová roura Obrázek 7 Procesory Pentium s technologií MMX přidávají jednu část do integerové roury. Instrukční slabiky jsou předzpracovány z kódové cache v části předzpracování (PF) a dále jsou analyzovány v zpracovávací fázi (F). Také veškeré prefixy jsou zpracovány ve fázi F. Instrukční analýza používá FIFO buffer, který se nachází mezi částí F a D1. Během každého hodinového cyklu mohou být uloženy 2 instrukce do FIFO bufferu. Potom jsou přetaženy tyto instrukce do části D1. Pokud je průměrné provádění jedné instrukce 2 hod. cykly, je FIFO normálně plný. Zde se mohou objevit časové prostoje, když je FIFO plný a instrukce trvá déle. Pokud je FIFO naopak prázdný, vydá signál, že hladoví (starving) a požaduje instrukce. - Aritmeticko-logická jednotka provádí aritmetické a logické operace (add, xor, ) - Násobící jednotka provádí násobící operace. Násobení zabírá 3 cykly, ale může být zřetězeno a tím pádem může zabírat i 1 hodinový cyklus. - Posunová jednotka provádí veškeré posuny a provádí pakovací a depakovací operace. - Veškeré instrukce MMX nemohou být zpárovány s jinými instrukcemi. - Při ukládáná MMX registru do paměti, nebo jiného (ne MMX) registru zabere navíc jeden hodinový cyklus na provedení konverze. Dva typy aritmetiky: s kruhovým přenosem (Wrap Around) a s nasycením (Saturating), kdy se po dosažení mezní hodnoty (např. (0FFFF) H ) dalším přičítáním kladného čísla hodnota nemění. To může mít smysl v případě, kdy číslo znamená hodnotu barvy a po dosažení mezní hodnoty černé nebo bílé se barva dále nemění. Tohoto typu aritmetiky (saturace) se používá při zpracování difernčně kódovaných pixelů, při interpolaci a u Gouraudova stínování. 20

21 MM FP MM MM MMX MM3 MM MM5 MM6 MM7 Obrázek 8 Důležitou věcí je, že MMX registry MM0 až MM7 se mapují do registrů s pohyblivou řádovou čárkou koprocesoru, tedy nelze zároveň používat MMX režimu a FP režimu (obrázek 8). Na obrázku 9 je vidět, jak přispívá technologie MMX na zvýšení výkonu grafických operací Pentium 200 MHz Pentium MMX 200 MHz Dekomprese videa MPEG-1 Dekomprese audia MPEG-1 Filtrace obrazu Obrázek 9 Na obrázku 10 je vidět, rozdíl mezi čistým procesorem Pentium bez technologie MMX a s technologií MMX. U V U V U WB V WB WB (32b) Hlavní paměť Hlavní paměť Obrázek 10 21

22 Procesor Pentium II Tento procesor používá stejnou zřetězenou technologii, popsanou u MMX technologie. Cache paměť u procesoru Intel Pentium MMX a Pentium II se skládá ze dvou 16kB, čtyřcestných asociativních pamětí, s délkou řádku 32 bytů. Cache obsahuje 8 banek, proložených na 4-bytových hranicích. U tohoto procesoru může být datová cache zpřístupněna z obou rour, pokud je adresa odkazující do různých banek. Pokud čistě náhodou adresy (u Pentium II) odkazují na stejné místo (načtení + uložení), jsou zpracovány v jediném hodinovém cyklu. U technologie MMX je prodleva při cache miss 8 hodinových cyklů, u Pentium II je to 10 hodinových cyklů. Prediktivní určení správných větví programu je identické s procesorem Pentium Pro až na jednu výjimku. V této technologii, mohou být větve chybně predikovány, když poslední slabika dvou instrukcí stejné větve se objeví ve stejné 4-bytově zarovnané části paměti, viz. obrázek 8. Větev A Větev B Byte 0 Byte 1 Byte 2 Byte 3 Byte 0 Byte 1 Byte 2 Byte 3 Obrázek 8 Poslední byte větve A Poslední byte větve B To může nastat, pokud existují dvě po sobě jdoucí větve, bez zasahujících instrukcí a druhá instrukce je dlouhá pouze 2 byty (jako JMP ±128). K zamezení chybné predikce se vytvoří druhá větev delší, použitím 16-bitového, relativního displacementu, místo 8-bitového displacementu. Tato technologie má 4 zápisové buffery, ty mohou být použity oběma větvemi U i V (viz. popis procesoru Pentium). K vylepšení zápisu do paměti se instrukce spojí do 4- instrukční skupiny a ty jsou provedeny, před provedením dalších instrukcí. Procesor Pentium III Procesor Pentium III zavádí proudící SIMD rozšíření, které zahrnuje 70 nových instrukcí pro rychlejší zpracování, podporu rozsáhlých struktur obrázků, 3D streaming audio a video, přístup na Internet, rozpoznávání řeči, atd. 22

23 Jedná se o 0.18 mikronovou technologii a obsahuje 28.1 miliónů tranzistorů. Existují provedení o frekvenci 667 MHz, 733MHz a 800MHz. V této technologii je použito ATC (Advanced Transfer Cache) a ASB (Advanced System Buffering). ATC se skládá z mikroarchitektury, která zajišťuje větší rozhraní pro rozsah dat. ATC zahrnuje neblokující, plně rychlostní, maticové cache úrovně 2, osmicestné, asociativní; dále 256-bitová datová, sběrnicová cache úrovně 2. ASB zvyšuje použití dostupné šířky dat na 100 až 133 Mhz; skládá se ze 4 bufferů se zpětným zápisem, 6 plnících bufferů a 8 frontových vstupů na sběrnici. Také je zvětšen prostor adresovatelné cache paměti na 4GB a systémové paměti až na 64GB. Procesor má zabudované sériové číslo, které by mělo sloužit k zvýšení bezpečnosti; slouží jako elektronické sériové číslo a umožňuje uživateli/sítí identifikaci stanice. V procesoru je zabudován test, který umožňuje testovat instrukční cache a datovou cache na výskyt chyby a dokáže ji i případně odstranit. Na procesoru je zabudována termodioda, která zjišťuje teplotu procesoru a podle zahřátí se může zapínat větrák, popř. se úplně vypnout počítač. Procesor Pentium III je umístěn ve speciální schránce nazývané S.E.C.C.2, která je odolná proti lidským dotykům a má zvýšenou odolnost proti statické elektřině. Koneckonců, jak uvádí Intel, toto pouzdro bude v budoucnosti akceptováno i jinými firmami, protože je naprosto skvělé. Procesor má zabudovanou technologii ECC (Error Correction Code), která funguje v cache pamětech. Jednotka s pohyblivou řádovou čárkou podporuje 32-bitový, 64-bitový a 80-bitový formát dat. Koprocesory 8087 / / Koprocesory 8087, a jsou matematické koprocesory rozšiřující možnosti procesorů 8086/88 až o práci s čísly s větší přesností a o práci s čísly typu Real. Všechny tyto koprocesory mají velmi podobnou architekturu a instrukční soubor. Registry koprocesoru R0 Sig Exponent f 63 f 62 Mantisa f 1 f 0 R1 R2 R3 R4 R5 R6 R7 23

24 Ukazatel instrukce Registr známek Ukazatel operandu Stavový registr Sig Sign Znaménko čísla (0/1 +/-) Řídící registr Exponent Exponent Exponent čísla v kódu transformované nuly (0 až 32767) Mantisa Mantisa Mantisa čísla v přímém kódu (f i značí jednotlivé bity) Číslo = (-1) Sign * 2 (Exponent 16383) * (f 63.f 62 f 61 f 1 f 0 ) Okolí koprocesoru v chráněném režimu Řídící slovo Stavové slovo Slovo známek Offset (IP) Selektor (CS) Offset operandu Selektor operandu Okolí koprocesoru ve 32-bitovém základním režimu Rezervováno Řídící slovo 0 +7 Rezervováno Stavové slovo Rezervováno Slovo známek Rezervováno Ukazatel instrukce IP: Ukazatel IP: Operační kód: 11 bitů Rezervováno Ukazatel operandu OP: Ukazatel OP:

25 Okolí koprocesoru ve 32-bitovém chráněném režimu Rezervováno Řídící slovo 0 +7 Rezervováno Stavové slovo Rezervováno Slovo známek Offset (IP) Op. kód: 11 bitů Selektor (CS) Offset operandu Rezervováno Selektor operandu

26 INSTRUKCE Instrukční soubor procesorů Intel 8086 / 88 Instrukční soubor procesorů Intel / 188 Instrukční soubor procesorů Intel Instrukční soubor procesorů Intel Instrukční soubor procesorů Intel Instrukční soubor procesorů Intel Pentium Instrukční soubor procesorů Intel Pentium III Instrukční soubor matematického koprocesoru AAA ASCII Adjust After Addition Instrukce AAA se používá po instrukci ADD/ADC AL, x aplikované na dva operandy v rozvinutém BCD tvaru k úpravě výsledku na stejný tvar. AAD ASCII Adjust AX Before Division Instrukce AAD se používá před instrukcí DIV: v registru AX se předpokládají dvě číslice v rozvinutém BCD tvaru. Úprava výsledku na stejný tvar. AAM ASCII Adjust AX After Multiply Instrukce AAM se používá po instrukci MUL aplikované na dva slabikové operandy v rozvinutém BCD tvaru k úpravě výsledku na stejný tvar. AAS ASCII Adjust AL After Subtraction Instrukce AAS se požívá po instrukci SUB/SBB AL, x aplikované na dva operandy v rozvinutém BCD tvaru k úpravě výsledku na stejný tvar. ADC Add with Carry Instrukce ADC aritmeticky sečte zdrojový operand s cílovým a s příznakem a výsledkem operace přepíše cílový operand a nastaví podle něj příznaky OF, ZF, AF, PF a CF. Zdrojový operand nemění. ADD Add Instrukce ADD aritmeticky sečte zdrojový operand s cílovým, výsledkem operace přepíše cílový operand a nastaví podle něj příznaky OF, SF, ZF, AF, PF a CF. Zdrojový operand nemění. ADDPS Packed Single-FP Add Instrukce přičte čísla s pohyblivou řádovou čárkou SP. Výsledek (zprava): Byte0 1 + Byte0 2 ; Byte1 1 + Byte1 2 ; Byte2 1 + Byte2 2 ; Byte3 1 + Byte3 2. ADDSS Scalar Single-FP Add Instrukce sečte pouze nejnižší slabiku ze 4; ostatní 3 slabiky převezme z prvního operandu. Výsledek (zprava): Byte0 1 + Byte0 2 ; Byte1 1 ; Byte2 1 ; Byte

27 AND Logical AND Instrukce AND provede logický součin operandů: operaci provádí bitově s odpovídajícími bity operandů. Výsledkem operace přepíše cílový operand a nastaví podle něj příznaky OF, SF, ZF, PF a CF, hodnota příznaku AF není definována. Zdrojový operand nemění. ANDNPS Bit-wise Logical And Not For Single-FP Instrukce provede bitový, logický součin mezi znegovaným zdrojovým operandem a cílovým operandem. ANDPS Bit-wise Logical And For Signle-FP Instrukce provede bitový, logický součin mezi jednotlivými 4 slabikami. ARPL Adjust RPL Field of Segment Selector Instrukce ARPL provede kontrolu, zda selektor určený cílovým operandem (obvykle selektor volaného programu podprogramu) nemá vyšší oprávnění (RPL) než selektor určený zdrojovým operandem (selektor volajícího operandu). Je-li tomu tak, změní hodnotu RPL cílového operandu na hodnotu RPL zdrojového operandu a nastaví příznak ZF, v opačném případě pouze vynuluje ZF. BOUND Check Array Index Against Bounds Instrukce BOUND provede kontrolu obsahu registru určeného prvním operandem, zda leží v mezích určených druhým operandem. Druhým operandem instrukce je adresa dvouslova; první slovo tohoto dvouslova obsahuje dolní mez, druhé slovo potom horní mez. Kontrolovaná hodnota musí ležet uvnitř určeného intervalu (včetně mezí), jinak je generována výjimka 5. Operandy ani příznaky se nemění. BSF Bit Scan Forward Instrukce BSF hledá první jedničkový bit zprava ve zdrojovém operandu. Pokud takový bit nalezne, nastaví příznak ZF a pozici bitu uloží do cílového registru. BSR Bit Scan Reverse Instrukce BSR hledá první jedničkový bit zleva ve zdrojovém operandu. Pokud takový bit nalezne, nastaví příznak ZF a pozici bitu uloží do cílového registru. BSWAP Byte Swap Reverzuje pořadí bitů ve 32-bitovém registru. Bity 0-7 jsou prohozeny s bity Bity 8-15 jsou prohozeny s bity (Little-endian Big-endian) BT Bit Test Instrukce BT přenese do příznaku CF hodnotu bitu, jehož offset je dán druhým operandem z objektu daného prvním operandem. BTC Bit Test and Complement Instrukce BTC pracuje stejně jako instrukce BT, ale navíc pak změní (invertuje) hodnotu testovaného bitu. BTR Bit Test and Reset Instrukce BTR pracuje stejně jako instrukce BT, ale navíc testovaný bit vynuluje. BTS Bit Test and Set Instrukce BTS pracuje stejně jako instrukce BT, ale navíc testovaný bit nastaví (na jedničku). 27

28 CALL Call Procedure Instrukce CALL předá řízení proceduře (podprogramu). CBW/CWDE Convert Byte to Word / Convert Word to Doubleword Instrukce CBW nastaví jednotlivé bity registru AH na hodnotu nejvyššího bitu registru AL převede osmibitové číslo se znaménkem (AL) na stejné 16-bitové číslo v AX. Instrukce CWDE nastaví jednotlivé bity (16) horní části registru EAX na hodnotu nejvyššího bitu registru AX převede 16-bitové číslo z registru AX na 32-bitové číslo v registru EAX. CDQ Convert Doubleword to Quadword Převede 32-bitové číslo na 64-bitové číslo. CLC Clear Carry Flag Instrukce CLC vynuluje příznak CF. CLD Clear Direction Flag Instrukce CLD vynuluje příznak DF. CLII Clear Interrupt Flag Instrukce CLI vynuluje příznak IF. CLTS Clear Task-Switched Flag in CR0 Instrukce CLTS nuluje příznak TS ve stavovém slově procesoru (MSW). Může být provedena pouze při nejvyšším oprávnění, jinak způsobí výjimku 13. CMC Complement Carry Flag Instrukce CMC změní hodnotu příznaku CF (not CF CF). CMOVcc Conditional Move Instrukce porovná hodnoty příznaků EFLAGS a provede MOV, pokud příznaky splňují definovanou podmínku. CMP Compare Two Operands Instrukce CMP aritmeticky odečte zdrojový operand od cílového a podle výsledku nastaví příznaky OF, SF, ZF, AF, PF a CF. Operandy nemění. CMPPS Packed Single-FP Compare Instrukce porovná 4 jednotlivé slabiky. Pokud se dané odpovídající slabiky shodují, nastaví na dané výstupní slabice samé jedničky, v opačném případě samé nuly. Př.: Byte0 1 =52, Byte0 2 =52; Byte1 1 =119, Byte1 2 =5; Byte2 1 =320, Byte2 2 =321; Byte3 1 =0, Byte3 2 =0. Výsledkem bude: Byte0=255 (tj. ( ) 2 ), Byte1=0, Byte2=0, Byte3=255. CMPS/CMPSB/CMPSW/CMPSD Compare String Operands Tyto instrukce porovnávají slabiku, slovo nebo dvouslovo jejich vzájemným rozdílem a podle výsledku nastaví příznaky v EFLAGS. 28

29 CMPSS Scalar Single-FP Compare Instrukce porovná pouze nejnižší slabiku ze 4 slabik obou operandů. Pokud se slabiky shodují, uloží do výstupní nejnižší slabiky samé jedničky, v opačném případě tam uloží samé nuly. Další 3 vyšší slabiky neporovnává. Ve výsledném slově ponechá první 3 slabiky ze zdrojového operandu. CMPXCHG Compare and Exchange Instrukce CMPXCHG porovná hodnotu v registru AL, AX nebo EAX s prvním operandem, pokud jsou obě hodnoty shodné, je nahrán druhý operand do prvního, jinak je první operand nahrán do AL, AX nebo EAX. CMPXCHG8B Compare and Exchange 8 bits Tato instrukce porovnává 64-bitový operand EDX:EAX s cílovým operandem. Pokud jsou hodnoty shodné, je hodnota v ECX:EBX uložena do cílového operandu. Cílový operand je 8- bytová paměťová pozice. COMIISS Scalar Ordered Single-FP Compare and Set EFLAGS Instrukce COMISS porovná dva operandy s pohyblivou řádovou čárkou a podle výsledku nastaví příznaky ZF, PF, CF v registru EFLAGS. CPUIID CPU Identification Tato instrukce umožňuje procesoru jeho identifikaci do registrů EAX, EBX, ECX a EDX. Informace identifikují Intel, třídu, model, rysové informace a informace o cache. CVTPII2PS Packed Signed INT32 to Packed Single-FP Conversion Instrukce konvertuje znaménkové 32-bitové číslo (integer) na číslo SP s pohyblivou řádovou čárkou. CVTPS2PII Packed Single-FP to Packed INT32 Conversion Instrukce konvertuje spodní dvě slabiky z SP čísla s pohyblivou řádovou čárkou na 32- bitové, znaménkové číslo (integer). Byte0=1.0 ; Byte1=15.0 Byte0=1 ; Byte1=15. CVTSII2SS Scalar Signed INT32 to Single-FP Conversion Instrukce konvertuje znaménkové 32-bitové číslo (integer) z paměti, nebo 32-bitového registru na číslo SP s pohyblivou řádovou čárkou. CVTSS2SII Scalar Single-FP to Signed INT32 Conversion Instrukce konvertuje SP číslo s pohyblivou řádovou čárkou na znaménkové, 32-bitové číslo a vrací výsledek v 32-bitovém registru. CVTTPS2PII Packed Single-FP to Packed INT32 Conversion (Truncate) Instrukce konvertuje spodní 2 slabiky SP čísla s pohyblivou řádovou čárkou na znaménkové, 32-bitové číslo (integer) v paměti. Pokud výsledek není celé číslo, je zaokrouhlen. CVTTSS2SII Scalar Single-FP to Signed INT32 Conversion (Truncate) Instrukce konvertuje SP číslo s pohyblivou řádovou čárkou na znaménkové, 32-bitové číslo a výsledek vrací v 32-bitovém registru. Pokud výsledek není celé číslo, je zaokrouhlen. CWD Convert Word to Doubleword Instrukce CWD nastaví jednotlivé bity registru DX na hodnotu nejvyššího bitu registru AX převede 16-bitové číslo se znaménkem z AX na stejné 32-bitové číslo v DX:AX. 29

30 DAA Decimal Adjust AL after Addition Instrukce DAA se používá po instrukci ADD/ADC AL, x aplikované na dva operandy ve zhuštěném BCD tvaru k úpravě výsledku na stejný tvar. DAS Decimal Adjust AL after Subtraction Instrukce DAS se používá po instrukci SUB/SBB AL, x aplikované na dva operandy ve zhuštěném BCD tvaru k úpravě výsledku na stejný tvar. DEC Decrement by 1 Instrukce DEC aritmeticky odečte od operandu jedničku a podle výsledku nastaví příznaky OF, SF, ZF, AF, PF (nemění CF!). DIIV Unsigned Divide Je-li zdrojovým operandem slabika, vydělí instrukce DIV tímto operandem obsah AX, podíl uloží do registru AL a zbytek do AH. Je-li zdrojovým operandem slovo, vydělí instrukce DIV tímto operandem obsah registrů DX:AX a podíl uloží do registru AX a zbytek do DX. DIIVPS Packed Single-FP Divide Instrukce vydělí dvě SP čísla s pohyblivou řádovou čárkou. Vždy se dělí odpovídající si slabiky (ze 4). DIIVSS Scalar Single-FP Divide Instrukce vydělí nejnižší slabiky dvou SP operandů s pohyblivou řádovou čárkou. Zbývající 3 slabiky jsou převzaty ze zdrojového operandu. EMMS Empty MMX State Instrukce EMMS vynuluje hodnoty všech tagů CPU. Tedy FFFFh FPUTagWord. ENTER Make Stack Frame for Procedure Parameters Instrukce ENTER vytvoří zásobníkový rámec využívaný především vyššími programovacími jazyky. Hodnota prvního operandu instrukce určuje počet slavik rámce určených pro parametry procedury, lokální proměnné, Hodnota druhého operandu udává úroveň vnoření procedury. F2XM1 Compute 2 x -1 Instrukce F2XM1 vypočítá hodnotu 2 x zmenšený o jedničku. FABS Absolute Value Vynuluje hodnotu znaménkového bitu ST(0) k získání absolutní hodnoty operandu. FADD/FADDP/FIIADD Add Sčítání. Sečte hodnotu prvního operandu s druhým a výsledek uloží do ST(0). FBLD Load Binary Coded Decimal Načte hodnotu zdrojového operandu v BCD kódu, ten převede na rozšířený floating-point a tuto hodnotu uloží na vrchol FPU zásobníku. FBSTP Store BCD Integer and POP Načte hodnotu z ST(0), tu konvertuje na 18-bitovou hodnotu v BCD kódu, uloží tuto hodnotu do cílového operandu a odstraní hodnotu z ST(0). 30

31 FCHS Change Sign Instrukce FCHS provede komplement znaménkového bitu ST(0). Tedy změní znaménko na opačné. FCLEX/FNCLEX Clear Exceptions Vynuluje floating-point příznakové registry PE, UE, OE, ZE, DE, IE, ES a B mimo ES ve stavovém slově FPU. Instrukce FCLEX (oproti FNCLEX) zjistí a uchová hodnoty nemaskovaných floating-point příznaků. FCMOVcc Floating-Point Conditional Move Instrukce porovná hodnoty příznaků EFLAGS a provede MOV, pokud příznaky splňují definovanou podmínku. Cílovým operandem je vždy ST(0). FCOM/FCOMP/FCOMPP Compare Real Porovná hodnotu ST(0) se zdrojovou hodnotou a podle výsledku nastaví hodnoty podmínkových registrů C0, C2, C3 ve stavovém slově FPU. FCOMII/FCOMIIP/FUCOMII/FUCOMIIP Compare Real and Set EFLAGS Porovnání hodnoty ST(0) s hodnotou v ST(i) a podle výsledku nastavení příznaků ZF, PF, CF v EFLAGS. FCOS Cosine Instrukce FCOS vypočte hodnotu funkce cosinus hodnoty v ST(0) a výsledek uloží do ST(0). FDECSTP Decrement Stack-Top Pointer Tato instrukce odečte jedničku od hodnoty vrcholu zásobníku ve stavovém slově FPU. Pokud je tam hodnota 0, je výsledek nastaven na 7. FDIIV/FDIIVP/FIIDIIV Divide Instrukce vydělí cílový operand zdrojovým a výsledek uloží do cílového operandu. FDIIVR/FDIIVRP/FIIDIIVR Reverse Divide Instrukce vydělí zdrojový operand cílovým a výsledek uloží do cílového operandu. FFREE Free Float-Point Register Nastaví hodnotu obsazenosti ST(i) v tag registru FPU na hodnotu (11) b, tedy obsah ST(i) je volný, ale hodnotu obsahu ani ukazatele vrcholu zásobníku nezmění. FIICOM/FIICOMP Compare Integer Instrukce porovná hodnotu v ST(0) s integerovou hodnotou zdrojového operandu a nastaví podmínkové registry C0, C2 a C3 ve stavovém slově FPU. FIILD Load Integer Načte integerovskou hodnotu, převede ji na floating-point a uloží na vrchol zásobníku. FIINCSTP Increment Stack-Top Pointer Instrukce zvýší o jedničku hodnotu ukazatele vrcholu zásobníku ve stavovém slovu FPU. Pokud je zde hodnota 7, výsledkem je hodnota 0. 31

32 FIINIIT/FNIINIIT Initialize Floating-Point Unit Instrukce nastaví kontrolu FPU, stav, registr tagů, instrukční ukazatel a ukazatel na data na implicitní hodnoty. Kontrolní slovo FPU je nastaveno na hodnotu (037F) h, stavové slovo FPU je vynulováno. FIIST/FIISTP Store Integer Instrukce načte hodnotu z ST(0), konvertuje ji na znaménkový integer a výsledek uloží do cílového operandu. FLD Load Real Uloží zdrojový operand na vrchol zásobníku. Automaticky jsou prováděny implicitní konverze real hodnot. FLD1/FLDL2T/FLDL2E/FLDPII/FLDLG2/FLDLN2/FLDZ Load Constant FLD1 uloží na vrchol zásobníku jedničku. FLDL2T uloží na vrchol zásobníku log 2 (10). FLDL2E uloží na vrchol zásobníku log 2 (e). FLDPI uloží na vrchol zásobníku hodnotu π. FLDLG2 uloží na vrchol zásobníku hodnotu log 10 (2). FLDLN2 uloží na vrchol zásobníku hodnotu log e (2). FLDZ uloží na vrchol zásobníku hodnotu 0. FLDCW Load Control Word Nahraje 16-bitový zdrojový operand do kontrolního slova FPU. FLDENV Load FPU Environment Nahraje kompletní prostředí FPU z paměti do FPU registrů. První operand udává první byte dat operačního prostředí v paměti. K uložení tohoto prostředí se používá instrukcí FSTENV nebo FNSTENV. FMUL/FMULP/FIIMUL Multiply Instrukce vynásobí zdrojový a cílový operand a výsledek uloží do cílového operandu. FNOP No Operation Provede žádnou operaci FPU. Tato instrukce pouze zabírá místo a čas, ale nemá žádný jiný následek. FPATAN Partial Arctangent Instrukce spočítá arctan() registru v ST(1), vydělený operandem v ST(0). Výsledek je uložen do ST(1) a je provedeno odstranění hodnoty z vrcholu zásobníku. FPREM/FPREM1 Partial Remainder Instrukce spočítá IEEE zbytek získaný dělením hodnoty v ST(0) hodnotou v ST(1) a uložení výsledku je do ST(0). Tedy Zbytek = ST(0) (Q * ST(1)). Instrukce FPREM zaokrouhlí hodnotu Q k nule, zatímco instrukce FPREM1 zaokrouhlí Q směrem k nejbližší celočíselné hodnotě. FPTAN Partial Tangent Instrukce spočítá tangens hodnoty v registru ST(0) a výsledek uloží do ST(0). Dále uloží na vrchol zásobníku hodnotu 1. Zdrojový operand musí být zadán v radiánech a v rozmezí ±

33 FRNDIINT Round to Integer Instrukce zaokrouhlí hodnotu v ST(0) na nejbližší integerovou hodnotu. Zaokrouhlování závisí na nastaveném zaokrouhlovacím módu. FRSTOR Restore FPU State Instrukce nahraje stav (operační prostředí a zásobník registrů) FPU z paměti určené zdrojovým operandem. Uložení tohoto stavu lze docílit instrukcemi FSAVE / FNSAVE. FSAVE/FNSAVE Store FPU State Instrukce uloží aktuální stav FPU na paměťové místo určené cílovým operandem. Obnovení viz. instrukce FRSTOR. FSCALE Scale Instrukce vynásobí cílový operand číslem 2 a výsledek uloží do cílového operandu. Cílový operand je reálné číslo uložené v ST(0). Zdrojový operand je nejbližší integerové číslo nižší než hodnota ST(1). FSIIN Sine Instrukce vypočte hodnotu sinus operandu uloženého v ST(0) a výsledek uloží do ST(0). FSIINCOS Sine and Cosine Instrukce v jednom výpočetním kroku vypočte hodnotu sinus a cosinus operandu uloženého v ST(0). Hodnota sinus je uložena do ST(0) a hodnota cosinus je poté uložena na vrchol zásobníku. Tedy ST(0) = cosinus a ST(1) = sinus. FSQRT Square Root Instrukce vypočte druhou odmocninu operandu uloženého v ST(0) a výsledek je uložen do ST(0). FST/FSTP Store Real Instrukce uloží hodnotu z ST(0) do cílového operandu. FSTCW/FNSTCW Store Control Word Instrukce uloží hodnotu aktuálního kontrolního slova FPU do paměti na adresu určenou cílovým operandem. FSTENV/FNSTENV Store FPU Environment Instrukce uloží aktuální prostředí FPU do paměti na adresu určenou cílovým operandem. Po uložení jsou maskovány všechny floating-point výjimky. Prostředí FPU se skládá z kontrolního slova, stavového slova, slova tagů, ukazatele instrukcí, ukazatele na data a posledního operačního kódu. FSTSW/FNSTSW Store Status Word Instrukce uloží aktuální hodnotu stavového slova FPU do cílového operandu. FSUB/FSUBP/FIISUB Subtract Instrukce odečte zdrojový operand od cílového a rozdíl uloží do cílového operandu. FSUBR/FSUBRP/FIISUBR Reverse Subtract Instrukce odečte cílový operand od zdrojového a rozdíl uloží do cílového operandu. 33

Procesor z pohledu programátora

Procesor z pohledu programátora Procesor z pohledu programátora Terminologie Procesor (CPU) = řadič + ALU. Mikroprocesor = procesor vyrobený monolitickou technologií na čipu. Mikropočítač = počítač postavený na bázi mikroprocesoru. Mikrokontrolér

Více

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2) Procesor 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ězené zpracování instrukcí (značeny u, v) poskytuje

Více

CHARAKTERISTIKA PROCESORU PENTIUM První verze:

CHARAKTERISTIKA PROCESORU PENTIUM První verze: CHARAKTERISTIKA PROCESORU PENTIUM První verze: Verze Pentia 200 Mhz uvádělo se 330 MIPS (srovnávalo se s 54 MIPS procesoru 486DX2-66). Struktura Pentia Rozhraní 64 bitů datová sběrnice, 32 bitů adresová

Více

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů). Strojový kód k d a asembler procesoru MIPS Použit ití simulátoru SPIM K.D. - cvičení ÚPA 1 MIPS - prostředí 32 ks 32bitových registrů ( adresa registru = 5 bitů). Registr $0 je zero čte se jako 0x0, zápis

Více

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná

Více

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje: Základní deska (1) Označována také jako mainboard, motherboard Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje: procesor (mikroprocesor) patici pro numerický koprocesor (resp. osazený

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

Intel 80486 (2) Intel 80486 (1) Intel 80486 (3) Intel 80486 (4) Intel 80486 (6) Intel 80486 (5) Nezřetězené zpracování instrukcí:

Intel 80486 (2) Intel 80486 (1) Intel 80486 (3) Intel 80486 (4) Intel 80486 (6) Intel 80486 (5) Nezřetězené zpracování instrukcí: Intel 80486 (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ý procesor 80386 - numerický koprocesor 80387 - L1 (interní)

Více

Registry 32 bitové pro všeobecné použití: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.

Registry 32 bitové pro všeobecné použití: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP. 1 Procesor i486 a vyšší - úvodní seznámení Procesory i486 a vyšší jsou v technické literatuře dobře dokumentovány, ale dokumentace je rozsáhlá a obsahuje pro začínajícího i zkušeného programátora mnoho

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

Paměťový podsystém počítače

Paměťový podsystém počítače Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...

Více

Metody připojování periferií BI-MPP Přednáška 2

Metody připojování periferií BI-MPP Přednáška 2 Metody připojování periferií BI-MPP Přednáška 2 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011

Více

ISU Cvičení 7. Marta Čudová

ISU Cvičení 7. Marta Čudová ISU Cvičení 7 Marta Čudová Supercomputing Technologies Research Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Osnova

Více

Strojový kód. Instrukce počítače

Strojový kód. Instrukce počítače Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden

Více

Systém adresace paměti

Systém adresace paměti Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného

Více

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti

Více

Procesor. Procesor FPU ALU. Řadič mikrokód

Procesor. Procesor FPU ALU. Řadič mikrokód Procesor Procesor Integrovaný obvod zajišťující funkce CPU Tvoří srdce a mozek celého počítače a do značné míry ovlivňuje výkon celého počítače (čím rychlejší procesor, tím rychlejší počítač) Provádí jednotlivé

Více

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard Základní deska (1) Označována také jako mainboard, motherboard Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje: procesor (mikroprocesor) patici pro numerický koprocesor (resp. osazený

Více

Assembler - 2.část. poslední změna této stránky: Zpět

Assembler - 2.část. poslední změna této stránky: Zpět 1 z 9 19.2.2007 7:51 Assembler - 2.část poslední změna této stránky: 9.2.2007 1. Příznaky (flagy) Zpět Flagy (česky podivně "příznaky", proto používám výhradně anglický název) jsou výlučnou záležitostí

Více

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Vývoj architektur PC 1

Vývoj architektur PC 1 Vývoj architektur PC 1 Cíl přednášky Prezentovat vývoj architektury PC. Prezentovat aktuální pojmy. 2 První verze Pentia První verze Pentia: kmitočet procesoru - 200 MHz (dnes vyšší jak 3 GHz) uvádělo

Více

Procesory, mikroprocesory, procesory na FPGA. 30.1.2013 O. Novák, CIE 11 1

Procesory, mikroprocesory, procesory na FPGA. 30.1.2013 O. Novák, CIE 11 1 Procesory, mikroprocesory, procesory na FPGA 30.1.2013 O. Novák, CIE 11 1 Od sekvenčních automatů k mikroprocesorům 30.1.2013 O. Novák, CIE 11 2 30.1.2013 O. Novák, CIE 11 3 Architektura počítačů Von Neumannovská,

Více

Struktura a architektura počítačů (BI-SAP) 11

Struktura a architektura počítačů (BI-SAP) 11 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 11 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Cache paměť - mezipaměť

Cache paměť - mezipaměť Cache paměť - mezipaměť 10.přednáška Urychlení přenosu mezi procesorem a hlavní pamětí Hlavní paměť procesoru je typu DRAM a je pomalá. Proto se mezi pomalou hlavní paměť a procesor vkládá menší, ale rychlá

Více

Architektura Pentia 1

Architektura Pentia 1 Architektura Pentia 1 Cíl přednášky Prezentovat vývoj architektury Pentia. Prezentovat aktuální pojmy. 2 První verze Pentia První verze Pentia: kmitočet procesoru - 200 MHz uvádělo se 330 MIPS, srovnání

Více

Michal Brandejs. Mikroprocesory Intel 8086 80486

Michal Brandejs. Mikroprocesory Intel 8086 80486 Michal Brandejs Mikroprocesory Intel 8086 80486 Copyright Michal Brandejs, 1991, 2010 Fakulta informatiky, Masarykova univerzita, Brno Michal Brandejs Mikroprocesory Intel 8086 80486 The following are

Více

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů Úvod: CHARAKTERISTIKA MODERNÍCH PENTIÍ Flynnova klasifikace paralelních systémů Paralelní systémy lze třídit z hlediska počtu toků instrukcí a počtu toků dat: SI systém s jedním tokem instrukcí (Single

Více

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Petr

Více

Architektura Intel Atom

Architektura Intel Atom Architektura Intel Atom Štěpán Sojka 5. prosince 2008 1 Úvod Hlavní rysem Atomu je podpora platformy x86, která umožňuje spouštět a běžně používat řadu let vyvíjené aplikace, na které jsou uživatelé zvyklí

Více

Popis instrukční sady procesoru ADOP

Popis instrukční sady procesoru ADOP instrukční sady procesoru ADOP ČVUT FEL, 2008 K. Koubek, P. Bulena Obsah instrukční sady...5 Univerzální registry...5 Registr příznaků FR...5 Standardní význam příznaků...6 Přehled instrukcí...7 ADD Add...8

Více

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC Informační systémy 2 Obsah: Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC ROM RAM Paměti typu CACHE IS2-4 1 Dnešní info: Informační systémy 2 03 Informační systémy

Více

Michal Brandejs. Mikroprocesory Intel Pentium

Michal Brandejs. Mikroprocesory Intel Pentium Michal Brandejs Mikroprocesory Intel Pentium Copyright Michal Brandejs, 1994, 2010 Fakulta informatiky, Masarykova univerzita, Brno Michal Brandejs Mikroprocesory Intel Pentium The following are trademarks

Více

Struktura a architektura počítačů (BI-SAP) 7

Struktura a architektura počítačů (BI-SAP) 7 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 7 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 1 / 21

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 1 / 21 Operační systémy Úvod do Operačních Systémů Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YOS: Přednáška I. 10. 10. 2014 1 / 21 Organizační informace email: petr.krajca@upol.cz

Více

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor: Západočeská univerzita v Plzni Písemná zkouška z předmětu: Zkoušející: Katedra informatiky a výpočetní techniky Počítačová technika KIV/POT Dr. Ing. Karel Dudáček Akademický rok: 2004/05 Datum: Příjmení:

Více

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2 Základy informatiky 2. Přednáška HW Lenka Carr Motyčková February 22, 2011 Základy informatiky 1 February 22, 2011 Základy informatiky 2 February 22, 2011 Základy informatiky 3 February 22, 2011 Základy

Více

Architektury CISC a RISC, uplatnění v personálních počítačích

Architektury CISC a RISC, uplatnění v personálních počítačích Architektury CISC a RISC, uplatnění v personálních počítačích 1 Cíl přednášky Vysvětlit, jak pracují architektury CISC a RISC, upozornit na rozdíly. Zdůraznit, jak se typické rysy obou typů architektur

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

ISU Cvičení 3. Marta Čudová

ISU Cvičení 3. Marta Čudová ISU Cvičení 3 Marta Čudová Supercomputing Technologies Research Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Program

Více

Jan Nekvapil ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Jan Nekvapil ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Jan Nekvapil jan.nekvapil@tiscali.cz ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Motivace MMX, EMMX, MMX+ 3DNow!, 3DNow!+ SSE SSE2 SSE3 SSSE3 SSE4.2 Závěr 2 Efektivní práce s vektory

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru Cíl přednášky: Vysvětlit principy práce s registry v architekturách RISC a CISC, upozornit na rozdíly. Vysvětlit možnosti využívání sad registrů. Zabývat se principy využívanými v procesorech Intel. Zabývat

Více

8. Laboratoř: Aritmetika a řídicí struktury programu

8. Laboratoř: Aritmetika a řídicí struktury programu 8. Laboratoř: Aritmetika a řídicí struktury programu Programy v JSA aritmetika, posuvy, využití příznaků Navrhněte a simulujte v AVR studiu prográmky pro 24 bitovou (32 bitovou) aritmetiku: sčítání, odčítání,

Více

Charakteristika dalších verzí procesorů v PC

Charakteristika dalších verzí procesorů v PC Charakteristika dalších verzí procesorů v PC 1 Cíl přednášky Poukázat na principy tvorby architektur nových verzí personálních počítačů. Prezentovat aktuální pojmy. 2 Úvod Zvyšování výkonu cestou paralelizace

Více

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

Principy komunikace s adaptéry periferních zařízení (PZ)

Principy komunikace s adaptéry periferních zařízení (PZ) Principy komunikace s adaptéry periferních zařízení (PZ) Několik možností kategorizace principů komunikace s externími adaptéry, např.: 1. Podle způsobu adresace registrů, které jsou součástí adaptérů.

Více

Přidělování paměti II Mgr. Josef Horálek

Přidělování paměti II Mgr. Josef Horálek Přidělování paměti II Mgr. Josef Horálek Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování

Více

Metody připojování periferií

Metody připojování periferií Metody připojování periferií BI-MPP Přednáška 3 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011

Více

Architektury VLIW M. Skrbek a I. Šimeček

Architektury VLIW M. Skrbek a I. Šimeček Architektury VLIW M. Skrbek a I. Šimeček xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PAP, LS2010/11, Predn.3 Příprava studijního programu

Více

Struktura a architektura počítačů (BI-SAP) 10

Struktura a architektura počítačů (BI-SAP) 10 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 10 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051 051 Seznámení s mikropočítačem Architektura mikropočítače Instrukce Paměť Čítače Porovnání s AT89C2051 Seznámení s mikropočítačem řady 8051 Mikroprocesor řady 8051 pochází z roku 1980 a je vytvořené firmou

Více

Architektura procesoru ARM

Architektura procesoru ARM Architektura procesoru ARM Bc. Jan Grygerek GRY095 Obsah ARM...3 Historie...3 Charakteristika procesoru ARM...4 Architektura procesoru ARM...5 Specifikace procesoru...6 Instrukční soubor procesoru...6

Více

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Semestrální práce z předmětu Speciální číslicové systémy X31SCS Semestrální práce z předmětu Speciální číslicové systémy X31SCS Katedra obvodů DSP16411 ZPRACOVAL: Roman Holubec Školní rok: 2006/2007 Úvod DSP16411 patří do rodiny DSP16411 rozšiřuje DSP16410 o vyšší

Více

x86 assembler and inline assembler in GCC

x86 assembler and inline assembler in GCC x86 assembler and inline assembler in GCC Michal Sojka sojkam1@fel.cvut.cz ČVUT, FEL License: CC-BY-SA 4.0 Useful instructions mov moves data between registers and memory mov $1,%eax # move 1 to register

Více

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru Počítačové systémy Procesor Miroslav Flídr Počítačové systémy LS 2006-1/17- Západočeská univerzita v Plzni Víceúrovňová organizace počítače Digital logic level Microarchitecture level Processor Instruction

Více

Opakování programování

Opakování programování Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování

Více

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW. p 1 Koncepce DMA Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW. Čekání na připravenost V/V Přenos paměť V/V nebo V/V paměť Posun pointeru

Více

Vnitřní a vnější paměti Část: vnitřní paměti

Vnitřní a vnější paměti Část: vnitřní paměti Vnitřní a vnější paměti Část: vnitřní paměti Cíl kapitoly Tato kapitola navazuje na kapitolu stejného jména, která se zabývá základními rysy zejména vnějších pamětí. Cílem této kapitoly je porozumět a

Více

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Ústav radioelektroniky Vysoké učení technické v Brně Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Přednáška 8 doc. Ing. Tomáš Frýza, Ph.D. listopad 2012 Obsah

Více

Operační systémy 2. Přednáška číslo 1. Úvod do OS

Operační systémy 2. Přednáška číslo 1. Úvod do OS Operační systémy 2 Přednáška číslo 1 Úvod do OS Co je to operační systém (definice) Operační systém jsou ty programové moduly ve výpočetním systému, jež ovládají řízení prostředku, jimiž je tento výpočetní

Více

PROCESOR. Typy procesorů

PROCESOR. Typy procesorů PROCESOR Procesor je ústřední výkonnou jednotkou počítače, která čte z paměti instrukce a na jejich základě vykonává program. Primárním úkolem procesoru je řídit činnost ostatních částí počítače včetně

Více

OPS Paralelní systémy, seznam pojmů, klasifikace

OPS Paralelní systémy, seznam pojmů, klasifikace Moorův zákon (polovina 60. let) : Výpočetní výkon a počet tranzistorů na jeden CPU chip integrovaného obvodu mikroprocesoru se každý jeden až dva roky zdvojnásobí; cena se zmenší na polovinu. Paralelismus

Více

Představení a vývoj architektur vektorových procesorů

Představení a vývoj architektur vektorových procesorů Představení a vývoj architektur vektorových procesorů Drong Lukáš Dro098 1 Obsah Úvod 3 Historie, současnost 3 Architektura 4 - pipelining 4 - Operace scatter a gather 4 - vektorové registry 4 - Řetězení

Více

Petr Krajča. 26. říjen, 2012

Petr Krajča. 26. říjen, 2012 Operační systémy Řízení výpočtu Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 26. říjen, 2012 Petr Krajča (UP) KMI/YOS: Přednáška II. 26. říjen, 2012 1 / 18 Reprezentace hodnot záporná

Více

RISC a CISC architektura

RISC a CISC architektura RISC a CISC architektura = dva rozdílné přístupy ke konstrukci CPU CISC (Complex Instruction Set Computer) vývojově starší přístup: pomoci konstrukci překladače z VPP co nejpodobnějšími instrukcemi s příkazy

Více

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA Literatura W.Stallings: Computer Organization & Architecture J.L.Hennessy, P.A.Patterson: Patterson: Computer Architecture: a Quantitative Approach

Více

Operační systémy. Přednáška 8: Správa paměti II

Operační systémy. Přednáška 8: Správa paměti II Operační systémy Přednáška 8: Správa paměti II 1 Jednoduché stránkování Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné

Více

Struktura a architektura počítačů (BI-SAP) 6

Struktura a architektura počítačů (BI-SAP) 6 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 6 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Charakteristika dalších verzí procesorů Pentium

Charakteristika dalších verzí procesorů Pentium Charakteristika dalších verzí procesorů Pentium 1 Cíl přednášky Poukázat na principy architektur nových verzí typů Pentií. Prezentovat aktuální pojmy. 2 Úvod Paralelní systémy lze třídit z hlediska počtu

Více

Přerušovací systém s prioritním řetězem

Přerušovací systém s prioritním řetězem Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním

Více

Počítač jako prostředek řízení. Struktura a organizace počítače

Počítač jako prostředek řízení. Struktura a organizace počítače Řídicí počítače - pro řízení technologických procesů. Specielní přídavná zařízení - I/O, přerušovací systém, reálný čas, Č/A a A/Č převodníky a j. s obsluhou - operátorské periferie bez obsluhy - operátorský

Více

Profilová část maturitní zkoušky 2014/2015

Profilová část maturitní zkoušky 2014/2015 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2014/2015 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika

Více

Kubatova 19.4.2007 Y36SAP - 13. procesor - control unit obvodový a mikroprogramový řadič RISC. 19.4.2007 Y36SAP-control unit 1

Kubatova 19.4.2007 Y36SAP - 13. procesor - control unit obvodový a mikroprogramový řadič RISC. 19.4.2007 Y36SAP-control unit 1 Y36SAP - 13 procesor - control unit obvodový a mikroprogramový řadič RISC 19.4.2007 Y36SAP-control unit 1 Von Neumannova architektura (UPS1) Instrukce a data jsou uloženy v téže paměti. Paměť je organizována

Více

Architektury CISC a RISC, uplatnění v personálních počítačích - pokračování

Architektury CISC a RISC, uplatnění v personálních počítačích - pokračování Architektury CISC a RISC, uplatnění v personálních počítačích - pokračování 1 Cíl přednášky Vysvětlit, jak pracují architektury CISC a RISC, upozornit na rozdíly. Upozornit, jak se typické rysy obou typů

Více

Architektura procesorů PC shrnutí pojmů

Architektura procesorů PC shrnutí pojmů Architektura procesorů PC shrnutí pojmů 1 Co je to superskalární architektura? Minimálně dvě fronty instrukcí. Provádění instrukcí je možné iniciovat současně, instrukce se pak provádějí paralelně. Realizovatelné

Více

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Ověřeno ve výuce dne, třída Střední průmyslová škola strojnická Vsetín

Více

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz Assembler RISC T.Mainzer, kiv.zcu.cz RISC RISC, neboli Reduced Instruction Set Computer - koncepce procesorů s redukovaným souborem instrukcí (vs. CISC, neboli Complex Instruction Set Computer, "bohatý"

Více

Řízení IO přenosů DMA řadičem

Řízení IO přenosů DMA řadičem Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována

Více

Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování

Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování 1 Cíl přednášky Vysvětlit další rysy architektur CISC a RISC, upozornit na rozdíly. Upozornit, jak se typické

Více

Mezipaměti počítače. L2 cache. L3 cache

Mezipaměti počítače. L2 cache. L3 cache Mezipaměti počítače Cache paměť - mezipaměť Hlavní paměť procesoru je typu DRAM a je pomalá. Proto se mezi pomalou hlavní paměť a procesor vkládá menší, ale rychlá vyrovnávací (cache) paměť SRAM. Rychlost

Více

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Mikrokontroléry. Doplňující text pro POS K. D. 2001 Mikrokontroléry Doplňující text pro POS K. D. 2001 Úvod Mikrokontroléry, jinak též označované jako jednočipové mikropočítače, obsahují v jediném pouzdře všechny podstatné části mikropočítače: Řadič a aritmetickou

Více

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu 1 Podklady předmětu pro akademický rok 2006/2007 Radim Farana Obsah 2 Obsah předmětu, Požadavky kreditového systému, Datové typy jednoduché, složené, Programové struktury, Předávání dat. Obsah předmětu

Více

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr. Model procesoru Jedná se o blokové schéma složené z registrů, paměti RAM, programového čítače, instrukčního registru, sčítačky a řídicí jednotky, které jsou propojeny sběrnicemi. Tento model má dva stavy:

Více

Čísla, reprezentace, zjednodušené výpočty

Čísla, reprezentace, zjednodušené výpočty Čísla, reprezentace, zjednodušené výpočty Přednáška 5 A3B38MMP kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2015, J.Fischer, ČVUT - FEL, kat. měření 1 Čísla 4 bitová dec bin. hex. 0 0000 0 1 0001

Více

Vnitřní a vnější paměti Část: vnitřní paměti

Vnitřní a vnější paměti Část: vnitřní paměti Vnitřní a vnější paměti Část: vnitřní paměti Cíl kapitoly Tato kapitola navazuje na kapitolu stejného jména, která se zabývá základními rysy zejména vnějších pamětí. Cílem této kapitoly je porozumět a

Více

Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování

Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování 1 Cíl přednášky Vysvětlit další rysy architektur CISC a RISC, upozornit na rozdíly. Upozornit, jak se typické

Více

Kubatova 19.4.2007 Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR. 2007-Kubátová Y36SAP-strojový kód 1

Kubatova 19.4.2007 Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR. 2007-Kubátová Y36SAP-strojový kód 1 Y36SAP 8 Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR 2007-Kubátová Y36SAP-strojový kód 1 Architektura souboru instrukcí, ISA - Instruction Set Architecture Vysoká Architektura

Více

Y36SAP - aritmetika. Osnova

Y36SAP - aritmetika. Osnova Y36SAP - aritmetika Čísla se znaménkem a aritmetické operace pevná a pohyblivá řádová čárka Kubátová 2007 Y36SAP-aritmetika 1 Osnova Zobrazení záporných čísel Přímý, aditivní a doplňkový kód a operace

Více

Pokročilé architektury počítačů

Pokročilé architektury počítačů Pokročilé architektury počítačů Přednáška 5 GPU - CUDA Martin Milata Obsah Obecné výpočty a GPU Grafické procesory NVIDIA Tesla Výpočetní model Paměťový model GT200 Zpracování instrukcí Vydávání instrukcí

Více

Adresní mody procesoru

Adresní mody procesoru Adresní mody procesoru K.D. - přednášky 1 Obecně o adresování Různé typy procesorů mohou mít v instrukci 1, 2 nebo více adres. Operandy mohou ležet v registrech nebo v paměti. Adresní mechanismus procesoru

Více

a operačních systémů

a operačních systémů NSWI2 2/2 ZS Principy počítačů a operačních systémů INSTRUKCE Kdybych nařídil generálovi, aby létal od květině ke květině a on by rozkaz neprovedl, nebyla by to chyba generálova, ale moje. král asteroidu

Více

Struktura a architektura počítačů

Struktura a architektura počítačů Struktura a architektura počítačů Aritmetické operace Pevná a pohyblivá řádová čárka České vysoké učení technické Fakulta elektrotechnická Ver..2 J. Zděnek 23 Aritmetické operace pevná řádová čárka Pevná

Více

Profilová část maturitní zkoušky 2015/2016

Profilová část maturitní zkoušky 2015/2016 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2015/2016 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika

Více

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic 1 Cíl přednášky Zabývat se principy využití principů přerušení. Popsat, jak se tyto principy odrazily v konstrukci systémových

Více

MSP 430F1611. Jiří Kašpar. Charakteristika

MSP 430F1611. Jiří Kašpar. Charakteristika MSP 430F1611 Charakteristika Mikroprocesor MSP430F1611 je 16 bitový, RISC struktura s von-neumannovou architekturou. Na mikroprocesor má neuvěřitelně velkou RAM paměť 10KB, 48KB + 256B FLASH paměť. Takže

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Aritmetika v Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Příklad Napíšeme program pro výpočet 54321-12345 dekadicky: 54321-12345=41976 hexadecimálně: x 0000D431

Více

Mikroprocesorová technika (BMPT)

Mikroprocesorová technika (BMPT) Mikroprocesorová technika (BMPT) Přednáška č. 10 Číselné soustavy v mikroprocesorové technice Ing. Tomáš Frýza, Ph.D. Obsah přednášky Číselné soustavy v mikroprocesorové technice Dekadická, binární, hexadecimální

Více

MIKROPROCESOR. (c) Ing. Josef Varačka. Title: XI 28 11:40 (1 of 8)

MIKROPROCESOR. (c) Ing. Josef Varačka. Title: XI 28 11:40 (1 of 8) MIKROPROCESOR 1/ Účel: Vzhledem k pokračující digitalizaci (používání zpracování dvojkového signálu) je žádoucí provozovat univerzální zařízení, které podle programu instrukcí informace zpracuje. Mikroprocesor

Více

3. Počítačové systémy

3. Počítačové systémy 3. Počítačové systémy 3.1. Spolupráce s počítačem a řešení úloh 1. přímý přístup uživatele - neekonomické. Interakce při odlaďování programů (spusť., zastav.,krok, diagnostika) 2. dávkové zpracování (batch

Více