1 / 32

Hardware přednáška

Hardware přednáška. Mikroprocesory Obecné charakteristiky. Obsah přednášky. Mikroprocesory – architektura a funkce Fyzické charakteristiky CISC/RISC. Zpracování programu. Počítačový program je tvořen lineární řadou instrukcí

channer
Download Presentation

Hardware přednáška

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hardwarepřednáška Mikroprocesory Obecné charakteristiky

  2. Obsah přednášky • Mikroprocesory – architekturaa funkce • Fyzické charakteristiky • CISC/RISC

  3. Zpracování programu • Počítačový program je tvořen lineární řadou instrukcí • Instrukce je příkaz k elementární operaci, která má být provedena počítačem • Instrukce provádí (nebo provedení zabezpečuje) procesor počítače v pořadí,v jakém jsou tyto zapsány v programu • Pořadí postupného zpracování narušují instrukce volání podprogramů a instrukce podmíněného a nepodmíněného skoku

  4. Instrukční cyklus • = proces zpracování jedné instrukce. • Struktura instrukce: nepovinné • Provedení instrukce: výběr operačního kódu z paměti, výběr operandu / adresy operandu z paměti, (výběr operandu z paměti), provedení instrukce

  5. Mikroprocesor • Je synchronní stroj řízený řadičem • Mikroprocesor můžeme rozdělit na4 části • I/O (= vstupně-výstupní) jednotka • registry • řadič • ALU • Poslední tři části nazýváme CPU (Central Processing Unit)

  6. I/O jednotka • Spojuje mikroprocesor se zbytkem počítače • Umožňuje přesun dat a instrukcí z hl. paměti do registrů řadiče a ALU • Obsahuje také vyrovnávací paměť cache a obvody, které synchronizují rychlost procesoru s pomalejší hlavní pamětí

  7. I/O jednotka • Spojení se zbytkem počítače je realizováno pomocí adresové a datové sběrnice • Množství bitů, které přenáší datová sběrnice (její šířka) určuje rychlost přenosu informací • Šířka adresové sběrnice určuje, kolik paměti můžeme adresovat (dokáže procesor používat)

  8. ALU (Arithmetic–Logic Unit) • Buď bere instrukce dekódované řadičem a přímo je provádí (obvodové řízení – viz dále), nebo spouští příslušný mikrokód (mikroprogramové řízení – viz dále) • Provádí logické operace a operace s čísly v pevné řádové čárce (tzn. s celými čísly) – výkonnost ALU se dá vyjádřit počtem vykonaných instrukcí za sekundu (Million Instructions Per Second – MIPS) • Neprovádí operace v pohyblivé řádové čárce • Svou činností modifikuje údaje obsaženév registrech

  9. Operace v pohyblivé řádové čárce • Matematické operace s reálnými čísly • Provádí je speciální jednotka – FPU (Float Point Unit) – nebo jsou softwarově převedeny na operace s číslyv pevné řádové čárce a následně provedeny ALU(u starších procesorů které FPU neměli – do 486SX) • FPU – provádí vyšší matematické operace s vyšší přesností a rychleji – výkonnost měřenav jednotkách MFLOPS (Million Float Point Operations Per Second) • Dříve (do i80386) byla FPU samostatným čipem – matematický koprocesor – od 486DX součástí procesoru

  10. Časování • Mikroprocesor nereaguje na příchozí data okamžitě, protože by některé signály zpracovával v nestabilním stavu (viz sekvenční obvody). • Proto zavádíme systémové hodiny, které vysílají pravidelné napěťové pulsy. Při jejich přijetí provádí mikroprocesor instrukce.

  11. Časování • Některé instrukce jsou provedeny během jednoho cyklu, některé trvají více cyklů. • Hodinová frekvence je vyjádřenáv MHz, ale nemusí přesně vyjadřovat rychlost procesoru. • Frekvence procesoru se většinou odvozuje od frekvence sběrnice pro komunikaci s pamětí, je jejím násobkem (cca 3–12×).

  12. Registry • Provádění operací na datech v operační paměti je pomalé • Proto procesor používá registry – rychlé paměťové buňky přímo v mikroprocesoru • Některé registry používá pro data, jiné pro adresaci, jiné pro informace o stavu, ...

  13. Příklady registrůprocesoru Intel 8086 • CS (code segment) – segment adresy instrukce • IP (Instruction Pointer) – offsetová část právě prováděné instrukce (adresa právě prováděné instrukce je tedy CS:IP) • AX – accumulator – střadač – pro matemat. operace • CX – counter – čítač – např. počet opakování cyklu • DX – data – zde jsou uložena zpracovávaná data • F – flags – 16bitový příznakový registr, obsahuje informace o výsledku vykonaných instrukcí (každý příznak = 1 bit) • příznak ZF (Zero Flag) je nastaven na hodnotu 1 při nulovém výsledku operace, jinak 0 • příznak OF (Overflow Flag) je nastaven na hodnotu 1, došlo-liv průběhu provádění instrukce k aritmetickému přeplnění, tzn., že výsledek se nevejde do určeného místa

  14. Příklady instrukcíprocesoru Intel 8086 • Assembler – jazyk pro programování přímo ve strojovém kódu • Každému příkazu assembleru odpovídá jedna instrukce procesoru • Instrukce se nezadávají pomocí čísel, nýbrž symbolickými názvy • Např. • MOVzdroj cíl, např. MOV AX, BX provede operaci AX := BXMOV AH, ES:[$1A40] zapíše do registru AH data z adresy, jejíž segment je uložen v registru ES a ofset je $1A40 (zdroj a cíl mohou být např. registr nebo adresa v paměti) • INCcíl– zvýší hodnotu cíle o 1 • ADDkam co – do argumentu kam přičte hodnotu uloženou v co • JZnávěští – skok na návěští při ZF = 1 • PUSHF – uložení registru příznaků do zásobníku

  15. Způsoby řízení počítače • Obvodové řízení – řadič je tvořen logickými obvody přímo navazujícími na instrukční a datový registr, řízení realizováno obvodovými prostředky. • Mikroprogramové řízení – každá instrukce se při provádění převede na řadu mikroinstrukcí (8–30(–100)), které se potom provedou.

  16. Mikroprogramový řadič IR DAM RAM PM R SIGNÁLY RM ZČP ŘÍDICÍ SIGNÁLY

  17. Porovnání Mikroprogramové řízení (oproti obvodovému): • poskytuje programovým překladačům možnost použít komplexnější instrukce, • umožňuje výrobcům procesorů snadné provádění změn v algoritmech jednotl. instrukcí (změnou mikrokódu), • znamená nižší rychlost procesoru (o dobu dekódování instrukce a vybavovací dobu paměti mikroinstrukcí).

  18. CISC × RISC CISC (Complete Instruction Set Computing) • mikroprogramové řízení • von Neumannova koncepce RISC (Reduced Instruction Set Computing) • obvodové řízení • současný trend (rychlost) • problém: zpětná kompatibilita

  19. RISC – charakteristika • Umí pouze jednoduché instrukce • V každém taktu zpravidla provedena jedna instrukce • Uniformita instrukcí – stejná délka, parametry • Minimální instrukční soubor (80–150) • Chybějící mikrokód • Jednoduchý design (méně součástek než u srovnatelné CISC) – zbývá více místa na další registry • Všechny operace algoritmu musí překladač převést na posloupnost jednoduchých instrukcí

  20. Vyrovnávací paměť – cache • Je rychlejší, než hlavní paměť • Obsahuje vždy část hlavní paměti • Procesor data hledá nejprve zde, teprve pokud je nenajde, čte z hlavní paměti a celý blok dat uloží do cache. • Princip lokality reference adres: procesor pracuje vždy určitou dobu v jedné určité oblasti hlavní paměti – proto je pravděpodobnost nalezení potřebných dat v cache poměrně velká a její používání výrazně urychluje práci procesoru.

  21. Druhy (úrovně) cache • L1 (Level 1 – úroveň 1): malá (cca32–128 kB) a rychlá (na stejné frekvenci jako jádro procesoru) vyrovnávací paměť přímo v procesoru, bývá rozdělena na část pro data a část pro instrukce • L2: velikost cca 128 kB až 2 MB, na frekvenci jádra procesoru nebo na nižší Například • Pentium4 2,8 GHz: 8 + 12 kB L1, 512 kB L2 • AMD Opteron 254: 128 kB L1, 1 MB L2

  22. Metody urychlení vykonávání instrukcíProudové zpracování instrukcí • Anglicky Pipelining. Proces zpracování instrukce lze rozdělit do několika fází, např. • Výběr instrukce z paměti • Dekódování (náhrada mikroinstrukcemi) • Příprava operandů – z hlavní paměti nebo cache • Vykonání operace • Zápis výsledků operace do registrů či paměti • Zatímco 1 instrukce prochází jednotlivými fázemi, začínají se zpracovávat další

  23. Pipelining – proudové zpracování instrukcí

  24. Metody urychlení vykonávání instrukcíVykonávání instrukcí mimo pořadí • Anglicky Out of Order – instrukce nejsou vykonávány ve stanoveném pořadí, ale tak, aby byly zpracovány v co nejkratším čase. K současnému zpracování se vybírají instrukce, které využívají vzájemně různé části procesoru, i když zrovna nejsou „na řadě“. Při vykonávání instrukcí v původním pořadí by některé části procesoru zůstávaly nevyužity.

  25. Metody urychlení vykonávání instrukcíPředpověď větvení a skoků • Anglicky Branch Prediction – do speciální paměti se ukládají informace o instrukcích, kterév minulosti provedly skok. Při jejich dalším výskytu procesor už ve fázi jejich dekódování předpokládá skok a rozpracovává odpovídající instrukce (namísto těch, které následují za touto instrukcí).

  26. Metody urychlení vykonávání instrukcíZvyšování hustoty hradel,zvyšování frekvence procesoru • Hradlo = elementární prvek logických obvodů (AND, OR, NOT, …) • Po zmenšením vzdálenosti mezi hradly lze aplikovat vyšší frekvenci, procesor může pracovat s nižším napětím, má menší spotřebu energie a méně se zahřívá • Současné vzdálenosti: 90 nm, 65nm (dříve 180 nm a 130 nm) • pozn.: 130 nm = 0,13 µm = 0,13 mikronu

  27. Metody urychlení vykonávání instrukcíVícejádrové procesory • Současný trendem je výroba procesorů s více (2, 4, …) jádry. • Jádro je tvořeno výpočetními obvody a často také řadičem. Vyrovnávací paměť má každé jádro svou, nebo je společná pro všechna jádra. • Každé jádro může v daném okamžiku zpracovávat více procesů nebo více vláken jednho procesu.

  28. Superskalární počítače • To jsou počítače se superskalárními procesory • Superskalární = procesor obsahuje více než jednu pipeline • Díky tomu může být schopen dokončit více než jednu instrukci za jeden takt

  29. Hyperthreading • Cílem hyperthreadingu je, aby jeden „fyzický“ procesor byl schopen pracovat jako dva „logické“ procesory. • Řešení: je zdvojeno to, co určuje aktuální stav jednoho výpočetního procesu – především registry a stavový vektor (vlajky, programový čítač atd.). Pak je možno, v okamžiku kdy určitý thread (vlákno) čeká například na data z hlavní paměti, prostým přepnutím registrových sad přepnout na druhý thread. Toto samozřejmě optimálně funguje především u vícevláknových úloh. Výkonový zisk se pohybuje okolo 30 %, thready je možno přepnout během jednoho taktu hodin. Přitom všechny ostatní prostředky procesoru jako jsou výpočetní jednotky nebo pamět L2 cache, jsou sdílené.

  30. Vektorové počítače • Četné veličiny ve vědeckých a technických výpočtech jsou popsány jako datová pole. • Proto se v algoritmech pro tyto výpočty používají operace typu vektor–vektor, matice–vektor a matice–matice. • Procesory vektorových počítačů zpracovávají celé vektory dat najednou. • Buď počítač obsahuje více procesorů nebo tuto schopnost má jeden procesor

  31. Přerušení • je signál, který k procesoru vyšle některé hardwarové zařízení nebo program. Vysílatel signálu se tak snaží zabrat procesor sám pro sebe. Klasickým příkladem je stisk klávesy klávesnice. Procesor musí přerušit svoji činnost a povel daný klávesou zpracovat. • Procesory používají vektorový signál přerušení. To znamená, že každé přerušení je identifikováno svým číslem. Na určitém místě v operační paměti je uložena tabulka vektorů přerušení. Vektor přerušení, identifikovaný právě číslem přerušení, ukazuje na adresu v paměti, kde je uložen obslužný podprogram přerušení.

  32. Přerušení • N-té přerušení tedy spustí (přes N-tý vektor přerušení) N-tý program, který zpracuje požadavek zdroje přerušení. Před přechodem na vektor přerušení uloží mikroprocesor svůj momentální stav do speciálního registru zásobníku. To mu umožní vrátit se po zpracování přerušení k původní činnosti. • Pro zpracování přerušení je určen speciální obvod – řadič přerušení (interrupt controller). Ten určuje, jaké přerušení bude obslouženo. • Reakci na některá přerušení lze dočasně zakázat (maskovat). K obsluze pak dojde až po opětovném povolení přerušení.

More Related