mirror of
https://github.com/danbulant/notes
synced 2026-06-17 05:21:20 +00:00
1.2 KiB
1.2 KiB
| tags | |
|---|---|
|
Pipelining
Zřetězené zpracování instrukcí
- instrukce je rozdělena na fáze
- 4 až 5 fází (kroků)
Např:
- výběr instrukce - instruction fetch IF
- dekódování - instruction decode ID
- výběr operandů - execute EX
- čtení/zápis paměti - memory access MEM
- zápis výsledku - writeback WB
- použití více fází se ukázalo být na škodu a od architektury procesorů Core se jejich počet začal opět snižovat
Sekvenční
Jedna instrukce po druhé
Skalární
Efektivnější rozložení, když se dekóduje jedna už se vybírá další
Superskalární
Dvě a více funkčních jednotek provádí pipelining. Dvě instrukce se vybírají, pak se dvě dekódují a zároveň další dvě vybírají.
Hyper pipelining
až dvě desítky fází v jedné pipeline
- problém s datovými závislostmi, což částečně může řešit hyper threading
Nevýhody
- Jedna instrukce potřebuje data, která jsou výsledkem instrukce předchozí
- instrukce nezná adresu paměti odkud má přečíst
- delší pipeline znamená více datových i adresových závislostí
- vznikají prázdná místa (bublinky), což zapříčiňuje snížení výkonu