Kaj je izvedba po naročilu?

Računalniki so zapleteni stroji, pri katerih ni nobenega dela bolj zapletenega kot CPE. Na ravni osnovnega pregleda se zdi, da bi moral biti CPE relativno preprost. Sprejme niz ukazov, jih obdela in nato izda podatke. To pa je malo podobno dejanskemu delovanju sodobnih procesorjev.

Subskalarno v superskalarno

Zgodnji procesorji so bili točno takšni, kot bi pričakovali. Navodila so vzeli posamično, v vrstnem redu, kot so jih dobili, jih obdelali do konca in nato prešli na naslednje navodilo. CPE te vrste so bili subskalarni in so lahko dokončali manj kot en ukaz na takt. Oblikovalci CPU so ugotovili, da obstaja veliko različnih stopenj dokončanja navodil. Vsaka od teh stopenj je zahtevala drugačno strojno opremo. To je pomenilo, da so nekateri deli strojne opreme pri izvajanju enega samega ukaza skozi celotno zaporedje naenkrat mirovali. V katerem koli procesorju je nedejavna strojna oprema neuporabna strojna oprema.

Da bi izkoristili to nedejavno strojno opremo, so bili modeli CPE posodobljeni za uporabo cevovodnega pristopa. To je dodatno ločilo strojno opremo za vsako stopnjo, vendar je omogočilo, da se vse uporabljajo hkrati z nizom navodil. Čeprav je še vedno trajalo nekaj ciklov, da je vsako navodilo šlo skozi cevovod, je bila skupna prepustnost eno navodilo na cikel. S tem so CPE postali skalarni.

Da bi lahko naredili več, je bilo treba procesorje narediti superskalarne. Da bi to dosegli, je bilo implementiranih več vzporednih cevovodov.

Ohranjanje cevovodov, napolnjenih s podatki

Glavna težava pri delovanju računalnikov je običajno zakasnitev pomnilnika. Številna navodila delujejo na podlagi podatkov, zato morajo biti ti podatki na voljo, da se navodilo izvede. Vprašanje je, kaj storite, če morate počakati na te podatke, ker niso takoj na voljo? Tradicionalno je bil odgovor le ustaviti in počakati, da bo na voljo. To pusti celoten cevovod prazen, potencialno za stotine ciklov procesorja. Stvari postanejo še hujše, ko morata dve navodili v vzporednih cevovodih čakati na pomnilnik, saj bo prva zadržala celo zahtevo po podatkih druge. Čeprav lahko predpomnilnik procesorja pomaga odpraviti to težavo, je še vedno ne more odpraviti. Za rešitev je bila potrebna nova paradigma. Ta sprememba paradigme je bila Out Of Order Execution ali OOO.

Prva stopnja cevovoda je dekodiranje navodil. To pomeni ugotoviti, kaj je treba narediti, in preveriti, ali so podatki, potrebni za operacijo, na voljo. V CPU OOO se dekodirana navodila dodajo v čakalno vrsto. Odstranjeni so iz čakalne vrste in dejansko obdelani, ko so na voljo podatki, ki jih potrebujejo. Bistveno je, da ni pomembno, v kakšnem vrstnem redu so bila navodila dodana v čakalno vrsto. Če zgodnje navodilo čaka na podatke, lahko novejše navodilo preskoči naprej, če je pripravljeno za uporabo. Procesorji OOO lahko prerazporedijo navodila, ki naj bi jih obdelali, glede na čakalno vrsto prihajajočih navodil in glede na to, katera od teh so pripravljena za izvedbo.

Kritične odvisnosti

Ta postopek predvideva dve stvari. Najprej, da je mogoče zanesljivo identificirati in obravnavati prave odvisnosti. Drugič, da lahko zanesljivo obravnavate in prepoznate lažne odvisnosti. Kakšna je razlika? No, prava odvisnost je odvisnost, ki je v sistemu OOO sploh ni mogoče ublažiti. Najlažji primer je branje po pisanju. Če imate eno navodilo, ki naj bi zapisalo nekaj podatkov, in drugo, ki naj bi te podatke nato prebralo, teh navodil ne morete preurediti. Izpolniti jih je treba v vrstnem redu, v katerem so bili predstavljeni, sicer boste dobili nesmiselne podatke.

Lažna odvisnost je tista, ki jo je mogoče skriti z drugim premetenim trikom. Vzemimo primer pisanje-za-branjem. Na prvi pogled se vam morda zdi, da podatkov ne morete prepisati, preden jih ne preberete. Stvari pa niso tako preproste. Kaj pa, če imate drugo mesto, kamor lahko zapišete nove podatke, nato pa lahko preprosto zamenjate nove in stare podatke, ko so stari podatki prebrani? To je postopek preimenovanja registra in je ključnega pomena za obdelavo OOO.

Običajno nabor navodil definira določeno število arhitekturnih registrov, ki se uporabljajo v sistemu. Dobesedno ne moreš nagovarjati drugih. Kaj pa, če naredite registre prekomerne ponudbe? Večinoma jih lahko le skrijete, uporabite za shranjevanje podatkov, ki še ne bi smeli biti obdelani, nato pa preprosto zamenjate oznake skritih in arhitekturnih registrov, ko bo časovnica spet pravilna. V vsakem trenutku obstaja natančna prava količina arhitekturnih registrov, le ni nujno, da so vedno na istem mestu. Analogija iz resničnega sveta bi bila vroča miza.

Zaključek

Izvajanje brez vrstnega reda je paradigma obdelave, kjer lahko CPE dinamično preureja navodila v času izvajanja. To se izvaja na podlagi prvih izdanih navodil, ki imajo na voljo podatke. To pomeni, da so navodila, ki se nalagajo v cevovod, vedno pripravljena za izvedbo in ni zamud med čakanjem na podatke. Seveda je treba imeti dovolj dolgo čakalno vrsto, da se ne napolni z navodili, ki čakajo na podatke, vendar je to izziv implementacije. Izvajanje OOO se zanaša na preimenovanje registra, da skrije lažne odvisnosti. Tudi če se ta navodila dejansko izvajajo nepravilno, se registri preimenujejo tako, da to dejstvo skrijejo pred preostalim delom računalnika.


Kako klonirati trdi disk

Kako klonirati trdi disk

V sodobni digitalni dobi, kjer so podatki dragocena dobrina, je lahko kloniranje trdega diska v sistemu Windows za mnoge ključen postopek. Ta obsežen vodnik

Kako popraviti, da se gonilnik WUDFRd ni uspel naložiti v sistemu Windows 10?

Kako popraviti, da se gonilnik WUDFRd ni uspel naložiti v sistemu Windows 10?

Ali se med zagonom računalnika soočate s sporočilom o napaki, ki pravi, da se gonilnik WUDFRd ni uspel naložiti v vaš računalnik?

Kako popraviti kodo napake NVIDIA GeForce Experience 0x0003

Kako popraviti kodo napake NVIDIA GeForce Experience 0x0003

Ali imate na namizju izkušnje s kodo napake NVIDIA GeForce 0x0003? Če je odgovor pritrdilen, preberite blog in poiščite, kako hitro in enostavno odpraviti to napako.

Kaj je SMPS?

Kaj je SMPS?

Preberite, kaj je SMPS in pomen različnih ocen učinkovitosti, preden izberete SMPS za svoj računalnik.

Kaj je varnost na podlagi izolacije?

Kaj je varnost na podlagi izolacije?

Poglobili se bomo v temo, ki postaja vse bolj pomembna v svetu kibernetske varnosti: varnost, ki temelji na izolaciji. Ta pristop k

Kako uporabljati Auto Clicker za Chromebook

Kako uporabljati Auto Clicker za Chromebook

Danes sem se nameraval poglobiti v orodje, ki lahko avtomatizira ponavljajoča se opravila klikanja na vašem Chromebooku: Auto Clicker. To orodje vam lahko prihrani čas in

Roomba se ustavi, zatakne in obrne – popravi

Roomba se ustavi, zatakne in obrne – popravi

Odpravite težavo, ko se vaš robotski sesalnik Roomba ustavi, zatakne in se nenehno obrača.

Zakaj se moj Chromebook ne vklopi

Zakaj se moj Chromebook ne vklopi

Pridobite odgovore na vprašanje Zakaj se moj Chromebook ne vklopi? V tem koristnem vodniku za uporabnike Chromebooka.

Kako spremeniti grafične nastavitve na Steam Deck

Kako spremeniti grafične nastavitve na Steam Deck

Steam Deck ponuja robustno in vsestransko igralno izkušnjo na dosegu roke. Vendar, da optimizirate svoje igranje in zagotovite najboljše možno

Kako spremeniti številčnico ure na Fitbit Versa 4

Kako spremeniti številčnico ure na Fitbit Versa 4

Brezplačno spremenite številčnico ure svojega Fitbit Versa 4, da bo vaša ura vsak dan drugačna. Poglejte, kako hitro in enostavno je.