Spekulativní provádění

optimalizační technika ve výpočetní technice

Spekulativní provádění je označení optimalizační metody používané v oblasti počítačů, jejíž podstatou je provedení pomocné práce, jejíž výsledek může, ale nemusí být v budoucnu využit. Lze provést tehdy, pokud jsou pro provedení dané práce aktuálně volné zdroje, pokud není závislá na ještě nedokončené jiné práci a pokud je její zrušení v případě nepoužití snadné (například výsledek výpočtu může být jednoduše nepoužit a zapomenut).

Typickým nízkoúrovňovým použitím je nízkoúrovňové použití při předvídání skoků v procesorech s překrývaným zpracováním strojových instrukcí. Část procesoru vyzvedávající instrukce z paměti by teoreticky měla čekat na výsledek zpracování předchozí instrukce podmíněného skoku, ale to by znamenalo velké čekání a zdržení. Na základě odhadu proto začne procesor pracovat podle jedné z variant výsledku a v případě, že byl odhad správný, výpočet využije a ušetřil mnoho času, zatímco v případě, kdy nebyl, bude postupovat jen s malým zpožděním způsobeným nutností zahodit předzpracované instrukce, které vlastně nemají být vůbec vykonány. Spekulativní provádění na úrovni procesoru je ovšem obtížné správně implementovat z hlediska počítačové bezpečnosti a v implementaci tohoto v procesorech široce rozšířeném použití spekulativního provádění bylo nalezeno několik závažných bezpečnostních děr: Meltdown, Foreshadow, Spectre.[1]

Na jiných úrovních jsou příkladem stejného přístupu například přednahrávání dat do rychlé procesorové mezipaměti či dokonce celých souborů do paměti na základě odhadu, že budou brzy vyžadovány.

Reference editovat

  1. Researchers break Apple's new MacBook pro weeks after release. techxplore.com [online]. [cit. 2023-11-22]. Dostupné online.