Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:bakalar:b0b35apo [2025/06/09 18:38] – [5. Vstupně výstupní periferie] zapleka3statnice:bakalar:b0b35apo [2025/06/09 21:41] (current) zapleka3
Line 1: Line 1:
-==== Architektura počítače; CPU, paměti, subsystémy ====+====== Architektura počítače; CPU, paměti, subsystémy ======
  
 [[https://fel.cvut.cz/cz/education/bk/predmety/50/99/p5099306.html|B0B35APO]] [[https://cw.fel.cvut.cz/wiki/courses/b35apo/lectures/start|Webové stránky předmětu]] [[https://comparch.edu.cvut.cz|CompArch]] [[https://eval.comparch.edu.cvut.cz|WebEval]] [[https://fel.cvut.cz/cz/education/bk/predmety/50/99/p5099306.html|B0B35APO]] [[https://cw.fel.cvut.cz/wiki/courses/b35apo/lectures/start|Webové stránky předmětu]] [[https://comparch.edu.cvut.cz|CompArch]] [[https://eval.comparch.edu.cvut.cz|WebEval]]
Line 422: Line 422:
   * Binární reprezentace má své specifické chování, včetně přetečení, podtečení a zaokrouhlovacích chyb.   * Binární reprezentace má své specifické chování, včetně přetečení, podtečení a zaokrouhlovacích chyb.
   * Na rovnost dvou desetinných čísel nelze spoléhat — i malá aritmetická chyba způsobí rozdíl.   * Na rovnost dvou desetinných čísel nelze spoléhat — i malá aritmetická chyba způsobí rozdíl.
- 
-===== 2. CPU ===== 
-RISC/CISC architektura, registry, formát RISC CPU instrukcí, porovnání jednocyklového procesoru a zřetězeného zpracování instrukcí. Jaké problémy přináší zřetězené zpracování instrukcí a jak je lze řešit – stall/forwarding. 
- 
-** RISC/CISC ** 
- 
-Reduced Instruction Set Computing vs. Complex Instruction Set Computing referuje o přístupu k návrhu procesorů. Jak název napovídá první z přístupů disponuje tzv. redukovanou instrukční sadou a druhý komplexní instrukční sadou. V redukované sadě mají standardně všechny instrukce stejnou délku a jejich sada není příliš početná. V komplexní nemusí mít instrukce konstantní délku, a jejich množství je větší. Redukovaná sada představuje většinou více práce pro programátora, kdežto komplexní sada často umožňuje provedení několika operací zavoláním jedné instrukce.  
- 
-** Registry ** 
- 
-|Registr | Popis| 
-|PC | Program counter - dresa právě prováděné (nebo následující) instrukce| 
-|IR | Instruction register - obsahje kód prováděné instrukce načtený zpaměti | 
-|GPR | General purpose registers – obecné uživatelské registry, mohou se dělit na data a adresy do paměti, nebo být univerzální| 
-|SP | Stack Pointer - kazuje na vrchol zásobníku, slouží k organizaci lokálních dat funkcí| 
-|PSW | Program Status Word – definuje v jakém stavu je procesor | 
-|IM | Interrupt Mask – kontrola přerušení | 
-|FPR | Floating point registers – rozšíření procesoru pro práci s reálnými čísly, případně i vektorové/multimediální registry | 
- 
-** Formát RISC CPU instrukcí ** 
- 
-Obecně – instrukce mají 32bit, kde bity 0-7 (LSb, little endian -> "zprava doleva") definují operaci, následně zbytek obsahuje registry cíle a zdrojů, případně konstant, či další specifikaci operace. 
- 
-** Porovnání jednocyklového procesoru a zřetězeného zpracování instrukcí ** 
- 
-Jednocyklový procesor funguje asi takto 
- 
-  - Počáteční nastavení – inicializace PC a PSW 
-  - Načtení instrukce z paněti z adresy PC (nastav PC -> Přečti obsah do IR -> uprav PC dle délky instrukce) 
-  - Dekóduj instrukci 
-  - Proveď instrukci 
-  - Kontrola přerušení nebo výjimky 
-  - Opakuj od kroku 2 
- 
- 
-Zřetězení přináší rozdělení vykonání jednotlivých úkonů instrukce. Tj. mezitím co dochází k faktickému vykonání instrukce, již se připravuje vykonání další, či dalších několika. 
-Tomuto procesu se také jinak říká pipelining.  
- 
-{{:statnice:bakalar:pasted:20250529-123852.png|400}} 
- 
- Jednotlivé fáze pro pětistupňovou pipeline jsou - 
-  - Instruction Fetch - přivedení PC na adreosvý vstup paměti, načtení instrukce 
-  - Instruction Decode - dokódování opcode (bity 0-7), přímého operandu a načtení registrů 
-  - EXecution - provedení požadované operace v ALU 
-  - MEMory - zápis/čtení z paměti 
-  - Write Back - zpětný zápis výsledků do pole registrů pro meziregistrové instrukce a paměti 
- 
-** Jaké problémy přináší zřetězené zpracování instrukcí a jak je lze řešit – stall/forwarding ** 
- 
-Za předpokladu, že výsledek předchozí instrukce potřebujeme využít v další instrukci, došlo by bez ošetření k "datovému hazardu". Ten lze vyřešit pomocí zpoždění vykonání následující operace (stall), či doplněním procesoru o tzv. forwarding, při kterém jsou nově vypočítané hodnoty přímo předány instrukci následující. 
- 
-Další možné hazardy, které mohou vzniknout, jsou tzv. "control hazardy" (tj. řídící). Ty nastávají v případě, kdy je vyhodnocován skok. Pokud dojde ke skoku, může tak dojít na stav, kdy instrukce nejsou předpočítané a dochází tak k významnému zpomalení. Toto lze omezit efektivní predikcí skoků, či přesunutím rozhodování o skocích do kroku ID (jako například u architektury MIPS).  
  
  
Line 689: Line 637:
 Statická predikce je jednoduchá a nezatěžuje hardware, ale neposkytuje dostatečnou flexibilitu při složitějším chování programů. Statická predikce je jednoduchá a nezatěžuje hardware, ale neposkytuje dostatečnou flexibilitu při složitějším chování programů.
  
-===== Dynamické prediktory =====+==== Dynamické prediktory ====
 Dynamické prediktory se snaží zjistit, zda se skoková instrukce provede, a to na základě jejího předchozího chování. Jinými slovy, sledují minulost konkrétní skokové instrukce a podle toho se snaží odhadnout, zda se tentokrát skočí nebo ne. Dynamické prediktory se snaží zjistit, zda se skoková instrukce provede, a to na základě jejího předchozího chování. Jinými slovy, sledují minulost konkrétní skokové instrukce a podle toho se snaží odhadnout, zda se tentokrát skočí nebo ne.
  
Navigation

Playground

QR Code
QR Code statnice:bakalar:b0b35apo (generated for current page)