Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

temata:07-princip_cinnosti_pocitace:main [2011/04/27 12:45]
george [Obecné informace]
temata:07-princip_cinnosti_pocitace:main [2013/02/20 13:35] (aktuální)
marho [CISC architektura]
Řádek 1: Řádek 1:
 +~~ODT~~
 +
 ====== 07 - Princip činnosti počítače ====== ====== 07 - Princip činnosti počítače ======
  
Řádek 34: Řádek 36:
     - __instrukční registr__ - IR     - __instrukční registr__ - IR
       * uchovává právě zpracovávanou instrukci       * uchovává právě zpracovávanou instrukci
-      * //neviditelný registr//+      * //neviditelný registr//, v podstatě se jedná o aktuální stav konečného automatu
     - __řadič__     - __řadič__
       * řídí činnost procesoru  - vykonává instrukce       * řídí činnost procesoru  - vykonává instrukce
Řádek 43: Řádek 45:
     - __I/O jednotka__     - __I/O jednotka__
       * umožňuje vstup a výstup dat do/z procesoru (obvykle do jeho registrů) i jinak než pouze skrz paměť       * umožňuje vstup a výstup dat do/z procesoru (obvykle do jeho registrů) i jinak než pouze skrz paměť
 +      * TODO
     - __registry__     - __registry__
       * klopné obvody, které ochovávají informace po dobu napájení       * klopné obvody, které ochovávají informace po dobu napájení
Řádek 110: Řádek 113:
     * __parametr V__ - počet instrukcí, které se v jednom okamžiku vydají ke zpracování     * __parametr V__ - počet instrukcí, které se v jednom okamžiku vydají ke zpracování
     * __parametr P__ - počet současně prováděných (rozpracovaných) instrukcí     * __parametr P__ - počet současně prováděných (rozpracovaných) instrukcí
-    - **subskalární procesory** - P = 1, V = 1 (286, 383) +    - **subskalární procesory** - P = 1, V = 1 (286, 383) (bez zřetězeného zpracovaní
-    - **skalární procesory** - P > 1, V = 1 - využívá řetězené zpracování (Pentium) +    - **skalární procesory** - P > 1, V = 1 - využívá řetězené zpracování (Pentium) (s zřetězeným zpracováním
-    - **superskalární procesory** - P > 1, V > 1+    - **superskalární procesory** - P > 1, V > 1 (s zřetězeným zpracováním + multithreading/multicore)
   * **Flynnova klasifikace procesorů**   * **Flynnova klasifikace procesorů**
     * je založena na sledování počtu instrukčních a datových proudů v počítači     * je založena na sledování počtu instrukčních a datových proudů v počítači
Řádek 119: Řádek 122:
     * příklady:     * příklady:
       * __SISD__ - von Neumannův počítač       * __SISD__ - von Neumannův počítač
-      * __SIMD__ - vektorový procesor - dva vektory (více čísel) sčítá jedna instrukce +      * __SIMD__ - vektorový procesor - dva vektory (více čísel) sčítá jedna instrukce (např. grafická karta vykonává 1 instrukci na více datech[napr. pixelech]) 
-      * __MISD__ - více počítačů zpracovává stejná data (řídicí počítač Space Shuttle) - stehný problém řeší více počítačů => bezpečnost +      * __MISD__ - více počítačů zpracovává stejná data (řídicí počítač Space Shuttle) - stehný problém řeší více počítačů => bezpečnost (výsledek všech počítačů se porovnává a vybírá výsledná hodnota [např. většina počítačů musí mít stejný výsledek]) 
-      * __MIMD__ - multiprocesorový systém+      * __MIMD__ - multiprocesorový systém (více instrukcí zpracovává více dat)
   * **Současné kategorie procesorů**   * **Současné kategorie procesorů**
     * Univerzální (Intel, AMD, HP, IBM, ...)     * Univerzální (Intel, AMD, HP, IBM, ...)
Řádek 231: Řádek 234:
   * experimenty bylo zjištěno, že četnost skoků v programech je značná - z toho se asi 83% povede   * experimenty bylo zjištěno, že četnost skoků v programech je značná - z toho se asi 83% povede
   * u skoků je třeba zrychlit zjištění cílové adresy (kam skočit), proto se používá malá cache pamět pro uložení cílových adres (//BTB// - Branch Target Buffer)   * u skoků je třeba zrychlit zjištění cílové adresy (kam skočit), proto se používá malá cache pamět pro uložení cílových adres (//BTB// - Branch Target Buffer)
-  * u podmíněných skoků jsou navíc ještě vyhodnocovány podmínky, o jejich splnění je možné spelukovat **predikce skoků** - ta může být statická (kompilátor nastaví bit predikce) nebo dynamická (pomocí speciálního HW)+  * u podmíněných skoků jsou navíc ještě vyhodnocovány podmínky, o jejich splnění je možné spekulovat **predikce skoků** - ta může být statická (kompilátor nastaví bit predikce) nebo dynamická (pomocí speciálního HW)
   * predikce (spekulace) probíhá podle předchozích směrů skoku (historii lze popsat binárním řetězcem několika bitů)   * predikce (spekulace) probíhá podle předchozích směrů skoku (historii lze popsat binárním řetězcem několika bitů)
   * nejjednodušší prediktor = **Jednobitový prediktor**   * nejjednodušší prediktor = **Jednobitový prediktor**
     * použí 1 bit z historie (tj. předchozí skok) a předpovídá následující     * použí 1 bit z historie (tj. předchozí skok) a předpovídá následující
     * {{:temata:07-princip_cinnosti_pocitace:jednobitovy_prediktor.png|}}     * {{:temata:07-princip_cinnosti_pocitace:jednobitovy_prediktor.png|}}
-    * stav 0 = skok se minule neprovedl, předpověje neskoč (-) +    * stav 0 = skok se minule neprovedl, předpověď je neskoč (-) 
-    * stav 1 = skok se minile provedl => předpověje skoč (+) +    * stav 1 = skok se minile provedl => předpověď je skoč (+) 
     * pokud je předpověd špatná musí být špatná větev programu ukončena a musí začít načítání instrukcí ze správné větve (je třeba aktualizovat BTB, to stojí několik taktů zřetězené linky)     * pokud je předpověd špatná musí být špatná větev programu ukončena a musí začít načítání instrukcí ze správné větve (je třeba aktualizovat BTB, to stojí několik taktů zřetězené linky)
  
  
 Zřetězené zpracování přináší urychlení výpočtu nejen v procesorech, ale i jiných číslicových obvodech (např. pro zpracování obrazu, bioinformatických dat apod.). Zřetězené zpracování přináší urychlení výpočtu nejen v procesorech, ale i jiných číslicových obvodech (např. pro zpracování obrazu, bioinformatických dat apod.).
-Pokud použijeme zřetězené zpracování, musíme dodat řadu podpůrných oibvodů a řešit řadu nových problémů.+Pokud použijeme zřetězené zpracování, musíme dodat řadu podpůrných obvodů a řešit řadu nových problémů.
 Moderní procesory používají kromě zřetězení i další koncepty: Moderní procesory používají kromě zřetězení i další koncepty:
   * superskalární architektury   * superskalární architektury
-  * VLIW procesory+  * VLIW procesory - má více ALU - tzn. může zároveň dělat více operací => k tomu slouží dlouhé instrukce
   * vektorové procesory   * vektorové procesory
-  * multivlákonové procesory                            +  * multivláknové procesory                            
  
 ==== CISC architektura ==== ==== CISC architektura ====
Řádek 254: Řádek 257:
   * vysoká složitost instrukcí => nutný systematický návrh řadiče procesoru   * vysoká složitost instrukcí => nutný systematický návrh řadiče procesoru
   * vykonání strojové instrukce probíhá posloupností mikrooperací (předpepsána mikroinstrukcí v řídící paměti)   * vykonání strojové instrukce probíhá posloupností mikrooperací (předpepsána mikroinstrukcí v řídící paměti)
-  * řidící paměti byly pevné (Read-Only Memory = ROM) a mnohem rychlejší než RAM    +  * řidící paměti byly pevné (Read-Only Memory = ROM) a mnohem rychlejší než RAM (je rychlejší načíst 1 složitou instrukci z RAM, která "obsahuje" 10 obyčených instrukcí, které se už načítají z napr. EEPROM než všech 10 instrukcí načítat z RAM)
   * díky vývoji mikrotechniky se řídící pamět přesuna na cache; to umožnilo držet krok s RISC architekturou   * díky vývoji mikrotechniky se řídící pamět přesuna na cache; to umožnilo držet krok s RISC architekturou
   * patří mezi nejvíce rozšířené (486, Pentium)   * patří mezi nejvíce rozšířené (486, Pentium)
temata/07-princip_cinnosti_pocitace/main.1303901157.txt.gz · Poslední úprava: 2011/04/27 12:45 autor: george
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki