Aller au contenu principal

Регистр процессора


Регистр процессора


Реги́стр проце́ссора — поле заданной длины во внутрипроцессорной сверхбыстрой оперативной памяти (СОЗУ). Используется самим процессором, может быть как доступным, так и не доступным программно. Например, при выборке из памяти очередной команды она помещается в регистр команд, обращение к которому программист прописать не может.

Программно не доступные регистры — любые процессорные регистры, к которым невозможно так или иначе обратиться из выполняемой программы. Пример таких регистров — уже упомянутый регистр команд.

Программно доступные регистры есть те, к которым возможно так или иначе обратиться из выполняемой программы. Практически каждый такой регистр обозначается своим именем-идентификатором на уровне языка ассемблера и соответствующим числовым кодом-идентификатором на уровне машинного языка. По уровню доступности программно доступные регистры неодинаковы и практически делятся на две большие подгруппы:

  • системные регистры — любые регистры, программно доступные только системным программам (например, ядру операционной системы), имеющим достаточный для этого уровень системных привилегий/прав. В терминах многих машинных систем такой уровень привилегий часто называется «уровнем/режимом ядра» или «режимом супервизора». Для всех прочих программ — работающих в «режиме пользователя» — эти регистры недоступны. Примеры таких регистров: управляющие регистры и теневые регистры дескрипторов сегментов.
  • регистры общего назначения (РОН) — регистры, доступные любым программам. В частности, регистры, используемые без ограничения в арифметических и логических операциях, но имеющие определённые аппаратные ограничения (например, в строковых РОН). Эти регистры не характерны для эпохи мейнфреймов типа IBM/370 и стали популярными в микропроцессорах архитектуры X86 — Intel 8085, Intel 8086 и последующих.

Специальные регистры содержат данные, необходимые для работы процессора — смещения базовых таблиц, уровни доступа и т. д.

Часть специальных регистров принадлежит устройству управления, которое управляет процессором путём генерации последовательности микрокоманд.

Доступ к значениям, хранящимся в регистрах, осуществляется непосредственно на тактовой частоте процессора и, как правило, в несколько раз быстрее, чем доступ к полям в оперативной памяти (даже если кеш-память содержит нужные данные), но объём оперативной памяти намного превосходит суммарный объём процессорных регистров, суммарная «ёмкость» регистров общего назначения/данных для x86-процессоров (например, Intel 80386 и более новых) 8 регистров по 4 байта = 32 байта (В x86-64-процессорах — 16 по 8 байт = 128 байт и некоторое количество векторных регистров).

В таблице показано количество регистров общего назначения в нескольких распространённых архитектурах микропроцессоров. Стоит отметить, что в некоторых архитектурах использование отдельных регистров может быть осложнено. Так, в SPARC и MIPS регистр номер 0 не сохраняет информацию и всегда считывается как 0, а в процессорах x86 с регистром ESP (указатель на стек) могут работать лишь некоторые команды.


Text submitted to CC-BY-SA license. Source: Регистр процессора by Wikipedia (Historical)



INVESTIGATION