Prediktor přechodu

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 6. listopadu 2018; kontroly vyžadují 8 úprav .

Jednotka predikce větvení ( větvená predikční jednotka ) je  zařízení, které je součástí mikroprocesorů s architekturou potrubí, které předpovídá, zda bude ve spustitelném programu proveden podmíněný skok . Predikce větvení snižuje dobu nečinnosti zřetězení předběžným načítáním a prováděním instrukcí, které musí být provedeny po provedení podmíněné instrukce větvení. Predikce větvení hraje zásadní roli, protože ve většině případů (přesnost predikce větvení u moderních procesorů přesahuje 90 %) umožňuje optimální využití výpočetních zdrojů procesoru [1] .

Bez predikce větvení musí zřetězení počkat, dokud nebude provedena instrukce podmíněného větvení, aby bylo možné provést další načtení. Prediktor větve se vyhne plýtvání časem pokusy o určení větve. Větev je vybrána na základě předchozích výsledků kontroly stavu. Zamýšlená větev je pak načtena a částečně provedena. Pokud se pak zjistí, že předpověď byla nesprávná, výsledky nesprávné větve se zahodí a do potrubí se načte správná větev, což způsobí zpoždění. Velikost zpoždění závisí na délce dopravníku. U procesoru Intel Core i7 je hloubka potrubí 14 stupňů.

„Předpověď skoku“ by měla být odlišena od „předvídání adresy skoku“ . Účelem predikce adresy větvení je vybrat adresu podmíněné nebo nepodmíněné větve před dekódováním a provedením instrukce větvení.

Pro predikci větvení existují dvě hlavní metody:

Statická předpověď

Metody statické predikce větví jsou nejjednodušší. Podstatou těchto metod je, že různé typy přechodů:

V moderních procesorech se statické metody používají pouze tehdy, když nelze použít dynamické metody.

Příklad triviální statické predikce implementované v raných procesorech architektur SPARC a MIPS .

V tomto případě se předpokládá, že podmíněná větev nebude nikdy provedena.

Příklad statické predikce implementované v moderních procesorech.

V tomto případě se předpokládá, že jakýkoli zpětný přechod bude proveden a jakýkoli dopředný přechod nikoli. Metoda se používá jako „záchranná síť“.

Dynamická předpověď

2a ISIP tat

Nasycené počítadlo nebo bimodální počítadlo

Je analyzována tabulka historie navigace. Tabulka obsahuje:

Tabulka se aktualizuje po každém přechodu. Algoritmus změní volbu větvení, pokud se výsledek podmínky dvakrát odchýlil od předchozích výsledků. Použití nejméně významných bitů adresy instrukce umožňuje predikci více instrukcí před jejich dekódováním.

Adaptivní dvouúrovňový prediktor

Pro první úroveň se provádí historie posledních k větví, pro druhou úroveň k ukazuje na tabulku šablon.

Predikce lokálního přechodu

Každá podmíněná větev v oboru má svou vlastní historii větve. Přechodové vzory mohou být sdílené nebo specifické.

Predikce globálního přechodu

Globální predikce větvení neukládá samostatnou historii pro každý přechod, ale používá obecnou historii. Jakékoli vzory v přechodech ovlivňují tuto historii, ale irelevantní záznamy mohou historii znečišťovat.

Hybridní prediktor

Hybridní prediktor může vybrat výsledky nejúspěšnějších prediktorů na základě historie nebo použít většinovou funkci lichého počtu prediktorů.

Prediktor smyčky

Prediktor smyčky může pomocí čítače smyčky počítat počet skoků na začátek smyčky. Tento prediktor lze použít v hybridním prediktoru.

Predikce nepřímých skoků

Nepřímá větev může mít více než dvě větve. Nejnovější procesory mají možnost vybrat více než dvě podmínky pomocí dvouúrovňového adaptivního prediktoru. Procesory bez podpory predikce nepřímé větve mohou používat statickou predikci nebo převzít předchozí hodnotu.

Poznámky

  1. PC Magazine / ruské vydání. Článek "RISC Legacy: Transition Prediction". Vydání z října 1995. Online verze: [1] Archivováno 10. března 2012 na Wayback Machine

Literatura

Viz také