Регистар (рачунарство)

Из Википедије, слободне енциклопедије

Регистар, у рачунарству процесорски регистар, је посебан део процесора који служи за чување информација које су потребне процесу током извршавања програма. Основне карактеристике су велика брзина, али мали капацитет. Брзина је последица рада на такту централног процесора, што је у данашњим применама значајно више од такта оперативне меморије. Капацитет је последица чињенице да процесор има мали део издвојен за складиштење података спрам оперативне меморије која је огромна. Већина данашњих рачунара ради на следећи начин – податак се из оперативне меморије учита у регистар, обради, потом врати у оперативну меморију – то се зове читај-пиши архитектура.

Процесорски регистри су на врху меморијске хијерархије и најбржи су начин за приступ податку у рачунару. Величина регистра се изражава у битима, на пример 8-битни регистар (код 8-битних процесора), 32-битни регистар (код 32-битних процесора) или 64-битни регистар код најновије генерације процесора.

Регистри су реализовани на истом комаду полупроводника као и остатак процесора, и организовани као таблица регистара. Некада су били прављени као дискретни елементи од флип-флопова или у технологији танког филма, а пре тога од магнетних прстенова.

Појам регистар се обично односи само на оне регистре који се могу непосредно навести као улазни или излазни за наредбе, према скупу наредби процесора. Ови регистри су, у ствари, архитектурни регистри. На пример, x86 скуп наредби ради са осам 32-битних регистара, док сам процесор има још регистара који служе за неке друге сврхе.

Постоји више врста регистара:

  • Регистри података се користе за смештање целих бројева и карактера (за бројеве у покретном зарезу постоје други регистри). Код старијих и једноставнијих процесора постоји посебан регистар акумулатор који учествује имплицитно у многим операцијама.
  • Адресни регистри садрже меморијске адресе и служе за приступ оперативној меморији рачунара. Код неких процесора постоји посебан индексни регистар који се често користи за комплексна комбиновања ради рачунања адресе.
  • Регистри опше намене могу чувати и податке и адресе, значи могу се сматрати комбиновано адресно/податковним.
  • Регистри података у покретном зарезу су посебни регистри који се користе приликом рачуна у покретном зарезу од стране специјализованог процесора (FPU - Процесор за рачун у покретном зарезу) односно дела процесора који се бави таквим рачуном.
  • Регистри константи служе само за читање и то неке унапред изабране, често коришћене вредности. Често се тако третира нула, мада постоје примери и за 1 или пи.
  • Векторски регистри садрже податке за векторски рачун код посебне врсте процесора (СИМД - једна инструкција више података).
  • Регистри посебне намене садрже стање програма и процесора; обично су то
    • Програмски бројач или показатељ инструкција садржи адресу следеће инструкције програма коју треба извршити.
    • Показивач стека је такође врста адресног регистра који показује на врх структуре података организоване у меморији.
    • Статусни регистар или статусна реч садржи податке који описују стање процесора, извршавања текуће инструкције или последњих значајних промена.
  • Регистар инструкција садржи текућу инструкцију коју извршава процесор.
  • Индекс регистри служе комбиновању са адресним регистрима ради остваривања сложенијих начина добијања адресе података, операнада или инструкција.
  • Код неких архитектура, регистри зависни од модела (некад се зову машински зависни регистри) податке или подешавања која представљају унутрашње стање процесора и нису доступни споља. Њихова намена је специфична те су стога повазани са дизајном процесора и нису заједничке за више генерација процесора.
  • Регистри намењени прихватању података из оперативне меморије, су скуп меморијских регистара који обично нису смештени на исти чип са процесором (за разлику од свих претходно наведених, ови регистри нису везани за архитектуру процесора):
    • Прихватна међумеморија
    • Међумеморија за податке
    • Међумеморија за адресе


Хардверски регистри су слични регистрима опште намене, али нису смештене на процесору већ на другим чиповима и служе за привремени смештај података, адреса и статуса.


Регистар је најчешће капацитета једне речи, а у процесору их има неколико (типично 1 - 32, интел x86 их има 8). Могу бити подељени у групе према намени (чување адреса или података). Регистри су директно адресибилни (може им се приступити) из инструкција.

Види још[уреди]