Кэш процессора
- 1 year ago
- 0
- 0
Регистр процессора — поле заданной длины во внутрипроцессорной сверхбыстрой оперативной памяти (СОЗУ). Используется самим процессором, может быть как доступным, так и не доступным программно. Например, при выборке из памяти очередной команды она помещается в регистр команд , обращение к которому программист прописать не может.
Программно не доступные регистры — любые процессорные регистры, к которым невозможно так или иначе обратиться из выполняемой программы. Пример таких регистров — уже упомянутый регистр команд .
Программно доступные регистры есть те, к которым возможно так или иначе обратиться из выполняемой программы. Практически каждый такой регистр обозначается своим именем-идентификатором на уровне языка ассемблера и соответствующим числовым кодом-идентификатором на уровне машинного языка. По уровню доступности программно доступные регистры неодинаковы и практически делятся на две большие подгруппы:
Специальные регистры содержат данные, необходимые для работы процессора — смещения базовых таблиц, уровни доступа и т. д.
Часть специальных регистров принадлежит устройству управления , которое управляет процессором путём генерации последовательности микрокоманд .
Доступ к значениям, хранящимся в регистрах, осуществляется непосредственно на тактовой частоте процессора и, как правило, в несколько раз быстрее, чем доступ к полям в оперативной памяти (даже если кеш-память содержит нужные данные), но объём оперативной памяти намного превосходит суммарный объём процессорных регистров, суммарная «ёмкость» регистров общего назначения/данных для 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 | |
32 | 32 | ||
Alpha | 32 | 32 | |
6502 | 3 | 0 | |
W65C816S | 5 | 0 | |
PIC | 1 | 0 | |
AVR | 32 | 0 | |
ARM 32-bit | 16 | различное | |
ARM 64-bit | 31 | 32 | |
MIPS | 31 | 32 | Регистр 0 всегда занулён |
RISC-V | 31 | 32 | Дополнительно есть регистр 0, который всегда возвращает ноль |
Эльбрус 2000 | 256 |
совмещены с
целочисленными |
32 двухразрядных регистра,
256 = 32 глобальных регистра + 224 регистра стека процедур |