For faster navigation, this Iframe is preloading the Wikiwand page for Регистр процессора.

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

Материал из Википедии — свободной энциклопедии

В статье не хватает ссылок на источники (см. рекомендации по поиску). Информация должна быть проверяема, иначе она может быть удалена. Вы можете отредактировать статью, добавив ссылки на авторитетные источники в виде сносок. (8 января 2023)

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

Программно недоступные регистры

[править | править код]

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

Программно доступные регистры

[править | править код]

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

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

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

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

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

Некоторые примеры

[править | править код]
Этот раздел имеет чрезмерный объём или содержит маловажные подробности неэнциклопедичного характера.Если вы не согласны с этим, пожалуйста, покажите в тексте существенность излагаемого материала. В противном случае раздел может быть удалён. Подробности могут быть на странице обсуждения.

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

Архитектура Целочисленных
регистров
FP-
регистров
Примечания
x86-32 8 8
x86-64 16 16
IBM System/360 16 4
z/Architecture 16 16
Itanium 128 128
SPARC 31 32 Регистр 0 (глобальный) всегда запущен
IBM Cell 4~16 1~4
IBM POWER 32 32
Power Architecture 32 32
Alpha 32 32
6502 3 0
W65C816S 5 0
PIC 1 0
AVR 32 0
ARM 32-bit[4] 16 различное
ARM 64-bit[5] 31 32
MIPS 31 32 Регистр 0 всегда занулён
RISC-V 31 32 Дополнительно есть регистр 0, который всегда возвращает ноль
Эльбрус 2000 256 совмещены с

целочисленными

32 двухразрядных регистра,

256 = 32 глобальных регистра + 224 регистра стека процедур[6]

Примечания

[править | править код]
  1. Barbara J. Burian. Программирование на языке ассемблера системы IBM/370 упрощённый подход = A simple approach to S/370 assembly language programming. — New York: Prentice-Hall, Inc, 1977.
  2. Погорелый С. Д., Слободянюк Т. Ф. Программное обеспечение микропроцессорных систем. Справочник. — 2-е, переработанное и дополненное. — Киев: Тэхника, 1989. — С. 7, 48-51. — 301 с. — (Справочник специалиста). — 50 000 экз. — ISBN 5-335-00169-0.
  3. Intel 64 and IA-32 Architectures Software Developer’s Manual. Volume 1: Basic Architecture. 3.4 BASIC PROGRAM EXECUTION REGISTERS Архивная копия от 24 мая 2011 на Wayback Machine (англ.)
  4. Procedure Call Standard for the ARM Architecture. ARM Holdings (16 октября 2009). Дата обращения: 24 апреля 2012. Архивировано 28 апреля 2013 года.
  5. Procedure Call Standard for the ARM 64-bit Architecture. ARM Holdings (25 ноября 2011). Дата обращения: 24 апреля 2012. Архивировано 28 апреля 2013 года.
  6. МЦСТ. Введение в архитектуру «Эльбрус» (рус.). Альт Линукс (31 мая 2020). Дата обращения: 16 июля 2020. Архивировано 2 июня 2020 года.
{{bottomLinkPreText}} {{bottomLinkText}}
Регистр процессора
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?