Kaj je register?

click fraud protection

Če vas računalniki ne zanimajo posebej, vam bo oproščeno domnevo, da sta edini obliki pomnilnika v računalniku trdi disk in RAM. Tisti, ki vas zanimajo računalniki, bi verjetno vedeli, da temu ni tako in da CPE ima tudi niz predpomnilnikov, ki se uporabljajo za predpomnilnik podatkov iz RAM-a, tako da lahko CPE dostopa do njih. hitreje. Vse to so oglaševane lastnosti, predvsem zato, ker sta hitrost in/ali zmogljivost spodobna prodajna točka in na splošno vplivata na ravni zmogljivosti.

Pravzaprav obstaja še ena plast spomina. Čeprav mislite, da je predpomnilnik L1 čim bližje dejanskemu procesorskemu jedru, obstaja še ena višja plast v pomnilniški hierarhiji. To so registri procesorja. Razlog za to, da se v resnici ne oglašujejo ali omenjajo, je, da v resnici sploh niso spremenjeni. Tehnično bi lahko bili, vendar je število in velikost registrov dejansko temeljnega pomena za arhitekturo. To pomeni, da imajo vsi procesorji x86-64 enako število registrov. Ne tržijo se, ker niso konkurenčna točka.

Kaj počne register?

Register je hitro dostopna lokacija za shranjevanje procesorja. Dostop do registra je takojšen z ničelno zakasnitvijo, medtem ko ima celo predpomnilnik L1 v sodobnih procesorjih približno 4-5 ciklov zakasnitve. Ta takojšen dostop namiguje na primer uporabe registrov. Registri se uporabljajo za shranjevanje navodil, ki jih CPE aktivno izvaja. Shranjujejo tudi podatkovne točke, ki jih je treba obdelati. Nekateri registri so splošnega namena, drugi pa zelo specifičnega. Primer registra za posebne namene bi bil programski števec, kjer procesor sledi svojemu položaju v svojem programskem zaporedju.

Mnogi registri veljajo za uporabniško dostopne. To pa ne pomeni, da lahko uporabnik računalnika izbere, kakšno vrednost jim bo dal. To pomeni, da lahko delujoča programska oprema določi podatke, ki naj se naložijo v te registre. Manjše število registrov je notranjih, kar pomeni, da jih programska oprema sploh ne more obravnavati. Register ukazov, v katerem so shranjeni ukazi, ki se trenutno izvajajo, je primer notranjega registra.

Registrirajte preimenovanje

Čeprav arhitektura CPE morda dovoljuje samo eno konfiguracijo registrov, je v tem dejansko nekaj odtenkov. Vsi sodobni procesorji uporabljajo preimenovanje registra. To je tehnika, pri kateri lahko imate več fizičnih registrov in jih uporabite za vnaprejšnje nalaganje podatkov ali shranjevanje podatkov, povezanih z ukazom, ki ni v redu, ki bi bil sicer prepisan. Ko CPE pride do točke, ko potrebuje podatke v dodatnih registrih, jih preprosto preimenuje, tako da jih je mogoče nasloviti, hkrati pa naredi register, ki je bil prej naslovljiv, nenaslovljiv.

Postopek preimenovanja registra je lahko zelo koristen pri nepravilnem izvajanju. Na primer, če je pomnilniška lokacija programirana tako, da se bere od nje, nato pa se vanjo zapiše in so bila navodila izvedena v tem vrstnem redu, je to v redu. Če pa so navodila preurejena tako, da najprej izvedejo pisanje, bi navodilo za branje dobilo napačno vrednost. Da bi to preprečili, je prvotna vrednost, ki jo je treba prebrati, shranjena v neuporabljenem registru, ki se nato preimenuje, ko se obdeluje ustrezen ukaz.

Zaključek

Registri so najvišji nivo v hierarhiji pomnilnika. So edini del, ki ga lahko CPE neposredno naslovi in ​​nimajo zakasnitve. Registri se uporabljajo za shranjevanje podatkov, ki jih CPE aktivno izvaja. Uporabljajo se tudi za shranjevanje drugih podatkovnih točk, kot je programski števec, ki spremlja, kateri ukaz je naslednji za izvedbo. Pri arhitekturi x86-64 je na voljo zelo omejeno število registrov, ki ima 16 splošnih registrov in 16 ali 32 registrov s plavajočo vejico, odvisno od tega, ali je podprt AVX-512.