Какво е регистър?

Ако не се интересувате особено от компютрите, ще ви бъде простено да приемете, че единствените форми на памет в компютъра са твърдият диск и RAM. Тези от вас, които се интересуват от компютри, вероятно ще знаят, че това не е така и че процесорът също има набор от кеш памети, които се използват за кеширане на данни от RAM, така че процесорът да има по-бърз достъп до тях. Всичко това са рекламирани функции, главно защото скоростта и/или капацитетът са прилична точка за продажба и като цяло засягат нивата на производителност.

Всъщност има още един слой памет. Колкото и да си мислите, че L1 кешът е възможно най-близо до действителното процесорно ядро, има още един по-висок слой в йерархията на паметта. Това са регистрите на процесора. Причината, поради която те наистина не се рекламират или споменават, е, че те изобщо не са променени. Технически може да са, но броят и размерът на регистрите всъщност са основни за архитектурата. Това означава, че всички процесори x86-64 имат еднакъв брой регистри. Те не се предлагат на пазара, защото не са конкурентна точка.

Какво прави регистърът?

Регистърът е бързо достъпно място за съхранение на процесора. Достъпът до регистър е незабавен с нулева латентност, докато дори L1 кешът има латентност от приблизително 4-5 цикъла в съвременните процесори. Тази непосредственост на достъпа намеква за случая на използване на регистрите. Регистрите се използват за съхраняване на инструкциите, които се обработват активно от процесора. Те също така съхраняват точки от данни, които трябва да бъдат обработени. Някои регистри са с общо предназначение, докато други имат много специфично предназначение. Пример за регистър със специално предназначение би бил програмният брояч, който е мястото, където процесорът проследява позицията си в своята програмна последователност.

Много регистри се считат за достъпни за потребителя. Това обаче не означава, че потребителят на компютър може да избере каква стойност да постави в тях. Това означава, че работещият софтуер може да посочи данни, които да бъдат заредени в тези регистри. По-малък брой регистри са вътрешни, което означава, че софтуерът изобщо не може да ги адресира. Регистърът на инструкциите, който съхранява инструкцията, която се изпълнява в момента, е пример за вътрешен регистър.

Регистрирайте преименуване

Въпреки че CPU архитектурата може да позволява само една конфигурация на регистрите, всъщност има малко нюанси в това. Всички съвременни процесори използват преименуване на регистъра. Това е техника, при която можете да имате повече физически регистри и да ги използвате за предварително зареждане на данни или съхраняване на данни, свързани с инструкция извън реда, която иначе би била презаписана. Когато процесорът стигне до точката, в която се нуждае от данните в допълнителните регистри, той просто ги преименува, така че да може да се адресира, като в същото време прави адресируем регистър неадресируем.

Процесът на преименуване на регистър може да бъде много полезен за изпълнение извън реда. Например, ако място в паметта е програмирано да бъде прочетено от след това записано и инструкциите са били изпълнени в този ред, това е добре. Ако обаче инструкциите се пренаредят така, че първо да извършат записа, инструкцията за четене ще получи грешна стойност. За да се предотврати това, оригиналната стойност за четене се съхранява в неизползван регистър, който след това се преименува, когато се обработва съответната инструкция.

Заключение

Регистрите са най-високото ниво в йерархията на паметта. Те са единствената част, адресируема директно от процесора и нямат латентност. Регистрите се използват за съхраняване на данните, които се изпълняват активно от процесора. Те се използват и за съхраняване на други точки от данни, като програмния брояч, който следи коя инструкция е следващата, която трябва да бъде изпълнена. Налични са много ограничен брой регистри с архитектурата x86-64, която има 16 регистъра с общо предназначение и 16 или 32 регистъра с плаваща запетая в зависимост от това дали се поддържа AVX-512.


Как да клонирате твърд диск

Как да клонирате твърд диск

В съвременната цифрова ера, където данните са ценен актив, клонирането на твърд диск в Windows може да бъде решаващ процес за мнозина. Това изчерпателно ръководство

Как да коригирам неуспешно зареждане на драйвер WUDFRd на Windows 10?

Как да коригирам неуспешно зареждане на драйвер WUDFRd на Windows 10?

Изправени ли сте пред съобщението за грешка при зареждане на компютъра, което казва, че драйверът WUDFRd не успя да се зареди на вашия компютър?

Как да коригирате код за грешка на NVIDIA GeForce Experience 0x0003

Как да коригирате код за грешка на NVIDIA GeForce Experience 0x0003

Срещате ли NVIDIA GeForce код за грешка 0x0003 на вашия работен плот? Ако да, прочетете блога, за да разберете как да поправите тази грешка бързо и лесно.

Какво е SMPS?

Какво е SMPS?

Научете какво е SMPS и значението на различните рейтинги на ефективност, преди да изберете SMPS за вашия компютър.

Защо моят Chromebook не се включва

Защо моят Chromebook не се включва

Получете отговори на въпроса Защо моят Chromebook не се включва? В това полезно ръководство за потребителите на Chromebook.

Как да докладвате на Google за фишинг измами

Как да докладвате на Google за фишинг измами

Научете как да докладвате измамник на Google, за да му попречите да мами други с това ръководство.

Roomba спира, залепва и се обръща – Коригирайте

Roomba спира, залепва и се обръща – Коригирайте

Коригирайте проблем, при който прахосмукачката робот Roomba спира, залепва и продължава да се върти.

Как да промените графичните настройки на Steam Deck

Как да промените графичните настройки на Steam Deck

Steam Deck предлага стабилно и многостранно игрово изживяване на една ръка разстояние. Въпреки това, за да оптимизирате играта си и да осигурите възможно най-доброто

Какво представлява сигурността, базирана на изолация?

Какво представлява сигурността, базирана на изолация?

Щях да се задълбоча в тема, която става все по-важна в света на киберсигурността: сигурност, базирана на изолация. Този подход към

Как да използвате Auto Clicker за Chromebook

Как да използвате Auto Clicker за Chromebook

Днес щях да разгледам инструмент, който може да автоматизира повтарящи се задачи за щракване на вашия Chromebook: Auto Clicker. Този инструмент може да ви спести време и