Čo je vykonanie mimo prevádzky?

Počítače sú zložité stroje, ktorých žiadna časť nie je zložitejšia ako CPU. Na úrovni základného prehľadu sa zdá, že CPU by mal byť relatívne jednoduchý. Vyžaduje sériu príkazov, spracuje ich a potom vypíše údaje. To sa však len málo podobá skutočnému fungovaniu moderných CPU.

Od subskalárnej až po superskalárnu

Prvé CPU boli presne také, ako by ste očakávali. Pokyny prijímali jednotlivo, v poradí, v akom ich dostali, spracovali ich až do konca a potom prešli k ďalšej inštrukcii. CPU tohto typu boli subskalárne, schopné dokončiť menej ako jednu inštrukciu za cyklus hodín. Dizajnéri CPU zistili, že existuje veľa rôznych fáz dokončovania inštrukcie. Každá z týchto fáz si vyžadovala iný hardvér. To znamenalo, že pri spustení jednej inštrukcie cez celú sekvenciu naraz niektoré časti hardvéru zostali nečinné. V akomkoľvek druhu procesora je nečinný hardvér zbytočným hardvérom.

Na využitie tohto nečinného hardvéru boli návrhy CPU aktualizované tak, aby využívali prístup potrubia. To ďalej oddelilo hardvér pre každú fázu, ale umožnilo to, aby boli všetky použité súčasne pomocou série pokynov. Aj keď stále trvalo niekoľko cyklov, kým každá inštrukcia prešla potrubím, celková priepustnosť bola jedna inštrukcia na cyklus. Tým sa CPU stali skalárnymi.

Aby bolo možné urobiť viac, museli byť procesory superskalárne. Na dosiahnutie tohto cieľa bolo implementovaných viacero paralelných potrubí.

Udržiavanie potrubí napájaných údajmi

Hlavným problémom s výkonom počítačov je zvyčajne latencia pamäte. Mnoho inštrukcií pracuje s dátami, takže tieto dáta musia byť dostupné, aby sa inštrukcia mohla vykonať. Otázkou je, čo robiť, ak potrebujete na tieto údaje počkať, pretože nie sú okamžite k dispozícii? Tradične bolo odpoveďou len zastaviť sa a počkať, kým bude k dispozícii. Takto zostane celý kanál prázdny, potenciálne na stovky cyklov CPU. Veci sa ešte zhoršia, keď dve inštrukcie v paralelných pipeline musia čakať na pamäť, pretože prvá zadrží aj požiadavku na údaje druhej. Aj keď vyrovnávacia pamäť CPU môže pomôcť vyriešiť tento problém, stále ho nedokáže vyriešiť. Na jeho vyriešenie bola potrebná nová paradigma. Tou zmenou paradigmy bola exekúcia mimo poradia alebo OOO.

Prvou fázou potrubia je dekódovanie inštrukcie. To znamená zistiť, čo je potrebné urobiť, a overiť, či sú k dispozícii údaje potrebné na operáciu. V OOO CPU sa dekódované inštrukcie pridávajú do frontu. Sú odstránené z frontu a skutočne spracované, keď sú dostupné údaje, ktoré potrebujú. V zásade nezáleží na tom, v akom poradí boli pokyny pridané do frontu. Ak skoršia inštrukcia čaká na dáta, novšia inštrukcia môže preskočiť, ak je pripravená. Procesory OOO môžu zmeniť poradie inštrukcií, ktoré majú spracovať, na základe frontu nadchádzajúcich inštrukcií a podľa toho, ktoré z nich sú pripravené na vykonanie.

Kritické závislosti

Tento proces predpokladá dve veci. V prvom rade, že je možné spoľahlivo identifikovať a zvládnuť skutočné závislosti. Po druhé, že môžete spoľahlivo zvládnuť a identifikovať falošné závislosti. V čom je rozdiel? Skutočná závislosť je závislosť, ktorú nemožno v systéme OOO vôbec zmierniť. Najjednoduchším príkladom je čítanie-po-zápis. Ak máte jednu inštrukciu, ktorá má zapísať nejaké údaje a inú, ktorá má potom tieto údaje prečítať, neexistuje spôsob, ako tieto inštrukcie zmeniť. Musia byť vyplnené v poradí, v akom boli prezentované, inak dostanete nezmyselné údaje.

Falošná závislosť je taká, ktorú možno skryť iným šikovným trikom. Vezmime si príklad zápisu po prečítaní. Na prvý pohľad sa vám môže zdať, že údaje nemôžete prepísať, kým si ich neprečítate. Veci však nie sú také jednoduché. Čo ak máte iné miesto, kde môžete zapisovať nové údaje, a potom môžete po prečítaní starých údajov jednoducho vymeniť nové a staré údaje? Toto je proces premenovania registra a je rozhodujúci pre spracovanie OOO.

Inštrukčná sada zvyčajne definuje počet architektonických registrov, ktoré sa používajú v systéme. Doslova nemôžete osloviť iných. Ale čo keď robíte registre nadmerných zásob? Môžete ich z väčšej časti jednoducho skryť, použiť ich na ukladanie údajov, ktoré ešte nemali byť spracované, a potom jednoducho vymeniť štítky skrytých a architektonických registrov, keď bude časová os opäť správna. V každom okamihu existuje presné množstvo architektonických registrov, len nie sú nevyhnutne vždy na rovnakom mieste. Analógia v reálnom svete by bola hot-desking.

Záver

Vykonávanie mimo poradia je paradigma spracovania, pri ktorej môže CPU dynamicky meniť poradie v čase vykonávania. Deje sa tak na základe najskôr vydaných pokynov, ktoré majú k dispozícii údaje. To znamená, že inštrukcie, ktoré sa načítavajú do potrubia, sú vždy pripravené na vykonanie a pri čakaní na dáta nedochádza k žiadnym oneskoreniam. Samozrejme, je potrebné mať dostatočne dlhý front, aby sa nezaplnil pokynmi čakajúcimi na dáta, ale to je implementačná výzva. Spustenie OOO sa spolieha na premenovanie registra, aby sa skryli falošné závislosti. Aj keď sú tieto inštrukcie skutočne vykonávané mimo poradia, registre sú premenované tak, aby túto skutočnosť zakryli pred zvyškom počítača.


Ako klonovať pevný disk

Ako klonovať pevný disk

V modernom digitálnom veku, kde sú údaje cenným aktívom, môže byť klonovanie pevného disku v systéme Windows pre mnohých zásadným procesom. Tento komplexný sprievodca

Ako opraviť načítanie ovládača WUDFRd v systéme Windows 10?

Ako opraviť načítanie ovládača WUDFRd v systéme Windows 10?

Zobrazuje sa vám pri zavádzaní počítača chybové hlásenie, ktoré hovorí, že sa nepodarilo načítať ovládač WUDFRd do vášho počítača?

Ako opraviť kód chyby NVIDIA GeForce Experience 0x0003

Ako opraviť kód chyby NVIDIA GeForce Experience 0x0003

Máte na pracovnej ploche skúsenosti s kódom chyby 0x0003 NVIDIA GeForce? Ak áno, prečítajte si blog a zistite, ako rýchlo a jednoducho opraviť túto chybu.

čo je SMPS?

čo je SMPS?

Pred výberom SMPS pre váš počítač si prečítajte, čo je SMPS a čo znamenajú rôzne hodnotenia účinnosti.

Prečo sa môj Chromebook nezapne

Prečo sa môj Chromebook nezapne

Získajte odpovede na otázku Prečo sa môj Chromebook nezapne? V tejto užitočnej príručke pre používateľov Chromebookov.

Ako nahlásiť phishing spoločnosti Google

Ako nahlásiť phishing spoločnosti Google

V tejto príručke sa dozviete, ako nahlásiť podvodníka spoločnosti Google, aby ste mu zabránili v podvádzaní iných.

Roomba sa zastaví, prilepí a otočí – oprava

Roomba sa zastaví, prilepí a otočí – oprava

Vyriešte problém, kedy sa váš robotický vysávač Roomba zastaví, zasekne a stále sa otáča.

Ako zmeniť nastavenia grafiky na Steam Deck

Ako zmeniť nastavenia grafiky na Steam Deck

Steam Deck ponúka robustný a všestranný herný zážitok priamo na dosah ruky. Aby ste však optimalizovali svoje hranie a zabezpečili to najlepšie možné

Čo je bezpečnosť založená na izolácii?

Čo je bezpečnosť založená na izolácii?

Chceli sme sa ponoriť do témy, ktorá sa vo svete kybernetickej bezpečnosti stáva čoraz dôležitejšou: bezpečnosť založená na izolácii. Tento prístup k

Ako používať Auto Clicker pre Chromebook

Ako používať Auto Clicker pre Chromebook

Dnes sme sa chceli ponoriť do nástroja, ktorý dokáže automatizovať úlohy opakovaného klikania na Chromebooku: Auto Clicker. Tento nástroj vám môže ušetriť čas a