Mikroprocesory - Skripta
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
1
n
úloh je tedy třeba
1
n
kroků.
V případě, že by nebylo použito řetězení, ale museli bychom vždy počkat na dokončení
předcházející úlohy, trvalo by provedení jedné úlohy (při k operacích) k kroků. M úloh by
bylo vykonáno za:
nk
M
( 3.3 )
kroků. Koeficient zrychlení (speedup) je dán vztahem:
1
n
k
nk
N
M
S
k
.
( 3.4 )
Pro velmi velká n (teoreticky
n
):
k
n
k
nk
S
n
k
n
1
lim
lim
.
( 3.5 )
Lineárně zřetězeným procesorem lze teoreticky dosáhnout zrychlení rovnající se počtu
stupňů tohoto procesoru.
Existují tři typy zřetězení:
Aritmetické.
Zřetězení instrukcí.
Zřetězení procesů.
Dále se budeme zabývat pouze zřetězením instrukcí.
V moderních procesorech jsou jednotlivé bloky lineárního řetězce opět děleny na další
lineární řetězce. Vznikne tak superpipelined procesor.
3.2.1.1 Skokový a datový konflikt
Skokový konflikt nastane, jestliže procesor narazí na instrukci větvení (skok, volání
podprogramu) nebo při obsluze přerušení, dojde ke skoku do obslužné rutiny. V okamžiku, kdy
se instrukce větvení začíná provádět, jednotlivé stupně lineárního řetězce obsahují
rozpracované instrukce, které byly v programu umístěny před instrukcí větvení. Tyto instrukce
však již nebudou vykonány a musí být z řetězce odstraněny. Řetězec musí být vyprázdněn a
musí být znovu postupně naplněn instrukcemi z lokality cíle skoku. Dojte tak ke snížení
rychlosti průchodu instrukcí lineárním řetězcem.
Datový konflikt nastane, jestliže několik instrukcí v řetězci za sebou potřebuje pracovat
se stejným operandem. Např. instrukce chce pracovat s obsahem registru, jehož obsah je
modifikován některou z předcházejících instrukcí v lineárním řetězci. Instrukce pak musí
počkat na dokončení předchozí instrukce v řetězci a v registru budu nová hodnota. Symbolicky
to lze znázornit na následujících instrukcích: