Что такое регистр в информатике определение
Регистр (цифровая техника)
Регистр — последовательное или параллельное логическое устройство, используемое для хранения n-разрядных двоичных чисел и выполнения преобразований над ними.
Регистр представляет собой упорядоченную последовательность триггеров, обычно D, число которых соответствует числу разрядов в слове. С каждым регистром обычно связано комбинационное цифровое устройство, с помощью которого обеспечивается выполнение некоторых операций над словами.
Фактически любое цифровое устройство можно представить в виде совокупности регистров, соединённых друг с другом при помощи комбинационных цифровых устройств.
Основой построения регистров являются D-триггеры, RS-триггеры.
Содержание
Операции в регистрах
Типичными являются следующие операции:
Классификация регистров
Регистры классифицируются [1] по следующим видам:
В свою очередь сдвигающие регистры делятся:
Типы регистров
Регистры различают по типу ввода (загрузки, приёма) и вывода (выгрузки, выдачи) информации:
Использование триггеров с защёлками с тремя состояниями на выходе, увеличенная (по сравнению со стандартными микросхемами серии) нагрузочная способность позволяют использовать (в микропроцессорных системах с магистральной организацией) регистры непосредственно на магистраль в качестве регистров, буферных регистров, регистров ввода-вывода, магистрального передатчика и т. д. без дополнительных схем интерфейса.
Параллельные регистры
В параллельных (статических) регистрах схемы разрядов не обмениваются данными между собой. Общими для разрядов обычно являются цепи тактирования, сброса/установки, разрешения выхода или приема, то есть цепи управления. Пример схемы статического регистра, построенного на триггерах типа D с прямыми динамическими входами, имеющего входы сброса и выходы с третьим состоянием, управляемые сигналом EZ.
Сдвигающие (последовательные) регистры
Последовательные (сдвигающие) регистры представляют собою цепочку разрядных схем, связанных цепями переноса. Основной режим работы — сдвиг разрядов кода от одного триггера к другому на каждый импульс тактового сигнала. В однотактных регистрах со сдвигом на один разряд вправо слово сдвигается при поступлении синхросигнала. Вход и выход последовательные (англ. Data Serial Right, DSR ).
Согласно требованиям синхронизации в сдвигающих регистрах, не имеющих логических элементов в межразрядных связях, нельзя применять одноступенчатые триггеры, управляемые уровнем, поскольку некоторые триггеры могут за время действия разрешающего уровня синхросигнала переключиться неоднократно, что недопустимо. Появление в межразрядных связях логических элементов, и тем более, логических схем неединичной глубины упрощает выполнение условий работоспособности регистров и расширяет спектр типов триггеров, пригодных для этих схем. Многотактные сдвигающие регистры управляются несколькими синхропоследовательностями. Из их числа наиболее известны двухтактные с основным и дополнительным регистрами, построенными на простых одноступенчатых триггерах, управляемых уровнем. По такту С1 содержимое основного регистра переписывается в дополнительный, а по такту С2 возвращается в основной, но уже в соседние разряды, что соответствует сдвигу слова. По затратам оборудования и быстродействию этот вариант близок к однотактному регистру с двухступенчатыми триггерами.
Регистры процессора
По назначению регистры процессора различаются на:
Троичные регистры
Регистр представляет устройство для кратковременного хранения двоичной информации. Запоминание временное, поскольку регистр выполняют роль промежуточного звена. Он получают некоторую n-битную двоичную информацию, а затем передает ее на следующий этап по сигналу извне.
Регистры состоят из n-триггеров и имеет определенное количество входов и выходов. По принципу работы существуют несколько типов регистров.
Параллельные регистры (регистры памяти).
Регистры сдвига.
Это цифровые устройства с большими возможностями, потому что помимо временного хранения полученных данных, они также должны их обрабатывать так, чтобы на выходе получилось нечто иное.
Под действием тактового сигнала управления, записанные сведения можно сдвигать на один порядок вправо или на один порядок влево, что очень важно для всех цифровых технологий. Например, при действии одного тактового сигнала, число 0110 может сдвигаться вправо и иметь вид 0011 (что является делением на 2), или может сдвигаться влево и иметь вид 1100 (который является умножением на 2). Таким образом, такое динамическое перемещение в памяти и выполняют регистры сдвига.
В зависимости от способа получения и извлечения данных существует несколько типов сдвигающих регистров: с параллельным или последовательным входами и выходами.
На рис.2 приводится схема 4-х разрядного регистра сдвига, где триггеры соединены в последовательную цепочку (выход каждого предыдущего соединен со входом D следующего). Входы синхронизации С объединены между собой.
Разнообразие регистров сдвига велико, и они широко используются в компьютерах, где сведения передается через клавиатуру и извлекается для нужд экрана и принтера.
Регистр процессора
Регистр процессора — блок ячеек памяти, образующий сверхбыструю оперативную память (СОЗУ) внутри процессора; используется самим процессором и большой частью недоступен программисту: например, при выборке из памяти очередной команды она помещается в регистр команд (англ.), к которому программист обратиться не может.
Имеются также регистры, которые в принципе программно доступны, но обращение к ним осуществляется из программ операционной системы, например, управляющие регистры и теневые регистры дескрипторов сегментов. Этими регистрами пользуются в основном разработчики операционных систем.
Специальные регистры [3] содержат данные, необходимые для работы процессора — смещения базовых таблиц, уровни доступа и т. д.
Часть специальных регистров принадлежит устройству управления, которое управляет процессором путём генерации последовательности микрокоманд.
Содержание
Архитектура x86
IP (англ. Instruction Pointer ) — регистр, обозначающий смещение следующей команды относительно кодового сегмента.
IP — 16-битный (младшая часть EIP)
EIP — 32-битный аналог (младшая часть RIP)
RIP — 64-битный аналог
Сегментные регистры — регистры, указывающие на сегменты.
CS (англ. Code Segment ), DS (англ. Data Segment ), SS (англ. Stack Segment ), ES, FS, GS
В реальном режиме работы процессора сегментные регистры содержат адрес начала 64Kb сегмента, смещенный вправо на 4 бита.
В защищенном режиме работы процессора сегментные регистры содержат селектор сегмента памяти, выделенного ОС.
CS — указатель на кодовый сегмент. Связка CS:IP (CS:EIP/CS:RIP — в защищенном/64-битном режиме) указывает на адрес в памяти следующей команды.
Регистры данных — служат для хранения промежуточных вычислений.
RAX, RCX, RDX, RBX, RSP, RBP, RSI, RDI, R8 — R15 — 64-битные
EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI, R8D — R15D — 32-битные (extended AX)
AX, CX, DX, BX, SP, BP, SI, DI, R8W — R15W — 16-битные
AH, AL, CH, CL, DH, DL, BH, BL, SPL, BPL, SIL, DIL, R8B — R15B — 8-битные (половинки 16-ти битных регистров)
например, AH — high AX — старшая половинка 8 бит
AL — low AX — младшая половинка 8 бит
RAX | RCX | RDX | RBX | ||||||||||||||||||||||||||||
EAX | ECX | EDX | EBX | ||||||||||||||||||||||||||||
AX | CX | DX | BX | ||||||||||||||||||||||||||||
AH | AL | CH | CL | DH | DL | BH | BL |
RSP | RBP | RSI | RDI | Rx | |||||||||||||||||||||||||||||||||||
ESP | EBP | ESI | EDI | RxD | |||||||||||||||||||||||||||||||||||
SP | BP | SI | DI | RxW | |||||||||||||||||||||||||||||||||||
SPL | BPL | SIL | DIL | RxB |
где x — 8..15.
Регистры RAX, RCX, RDX, RBX, RSP, RBP, RSI, RDI, Rx, RxD, RxW, RxB, SPL, BPL, SIL, DIL доступны только в 64-битном режиме работы процессора.
Регистр флагов FLAGS (16 бит) / EFLAGS (32 бита) / RFLAGS (64 бита) — содержит текущее состояние процессора.
Регистром называется функциональный узел, осуществляющий приём, хранение и передачу информации. Регистры состоят из группы триггеров, обычно D. По типу приёма и выдачи информации различают 2 типа регистров:
Сдвиговые регистры представляют собой последовательно соединённую цепочку триггеров. Основной режим работы — сдвиг разрядов кода от одного триггера к другому на каждый импульс тактового сигнала.
По назначению регистры различаются на:
Счётчик команд
IP (англ. Instruction Pointer ) — регистр, содержащий адрес-смещение следующей команды, подлежащей исполнению, относительно кодового сегмента CS в процессорах семейства x86.
Регистр IP связан с CS в виде CS:IP, где CS является текущим кодовым сегментом, а IP — текущим смещением относительно этого сегмента.
Регистр IP является 16-разрядным регистром-указателем. Кроме него, в состав регистров этого типа входят SP (англ. Stack Pointer — указатель стека) и BP (англ. Base Pointer — базовый указатель).
Адрес следующей инструкции, подлежащей исполнению, вычисляется путем суммирования адреса в CS (сегменте кода) со смещением в регистре IP:
2CB50H + 123H = 2CC73H
При выполнении текущей инструкции процессор автоматически изменяет значение в регистре IP, в результате чего регистровая пара CS:IP всегда указывает на следующую подлежащую исполнению инструкцию.
Начиная с процессора 80386 была введена 32-разрядная версия регистра-указателя — EIP. В данном случае IP является младшей частью этого регистра (первые 16 разрядов). Принцип работы EIP в целом схож с работой регистра IP. Основная разница состоит в том, что в защищённом режиме, в отличие от реального режима, регистр CS является селектором (селектор указывает не на сам сегмент в памяти, а на его дескриптор сегмента в таблице дескрипторов).
В 64-разрядных процессорах используется свой регистр-указатель инструкций — RIP.
Младшей частью этого регистра является регистр EIP.
На основе RIP в 64-разрядных процессорах введён новый метод адресации RIP-relative. В остальном работа RIP аналогична работе регистра EIP.
См. также
Примечания
Это заготовка статьи о компьютерах. Вы можете помочь проекту, исправив и дополнив её. Это примечание по возможности следует заменить более точным. |
Архитектура | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параллелизм |
| ||||||||
Реализации | DSP · GPU · SoC · PPU · Векторный процессор · Математический сопроцессор • Микропроцессор · Микроконтроллер | ||||||||
Компоненты | Barrel shifter · FPU · BSB · MMU · TLB · Регистровый файл · control unit · АЛУ • Демультиплексор · Мультиплексор · Микрокод · Тактовая частота • Корпус • Регистры • Кэш (Кэш процессора) | ||||||||
Управление питанием | APM · ACPI · Clock gating · Динамическое изменение частоты • Динамическое изменение напряжения |
Архитектура |
| ||||||
---|---|---|---|---|---|---|---|
Производители | Analog Devices • Atmel • Silabs • Freescale • Fujitsu • Holtek • Hynix • Infineon • Intel • Microchip • Maxim • Parallax • NXP Semiconductors • Renesas • Texas Instruments • Toshiba • Ubicom • Zilog • Cypress | ||||||
Компоненты | Регистр • Процессор • SRAM • EEPROM • Флеш-память • Кварцевый резонатор • Кварцевый генератор • RC-генератор • Корпус | ||||||
Периферия | Таймер • АЦП • ЦАП • Компаратор • ШИМ-контроллер • Счётчик • LCD • Датчик температуры • Watchdog Timer | ||||||
Интерфейсы | CAN • UART • USB • SPI • I²C • Ethernet • 1-Wire | ||||||
ОС | FreeRTOS • μClinux • BeRTOS • ChibiOS/RT • eCos • RTEMS • Unison • MicroC/OS-II • Nucleus | ||||||
Программирование | JTAG • C2 • Программатор • Ассемблер • Прерывание • MPLAB • AVR Studio • MCStudio |
Полезное
Смотреть что такое «Регистр процессора» в других словарях:
регистр процессора — Память процессора, предназначенная для хранения основных или промежуточных данных либо их частей и используемая для выполнения машинных команд [Источник] Тематики информационные технологии в целом EN processor register … Справочник технического переводчика
Аккумулятор (регистр процессора) — У этого термина существуют и другие значения, см. Аккумулятор (значения). Аккумулятор (регистр процессора) регистр, в котором сохраняются непосредственные результаты выполнения арифметических и логических команд. Альтернативными методами для… … Википедия
Регистр флагов — Регистр флагов регистр процессора, отражающий текущее состояние процессора. Содержание 1 Архитектура x86 1.1 Флаги состояния 1.2 Управляющий флаг … Википедия
Регистр — Регистр: В Викисловаре есть статья «регистр» Регистр (цифровая техника) последовательное или параллельное логическое … Википедия
Регистр (вычислительная техника) — Регистр процессора сверхбыстрая память внутри процессора, предназначенная прежде всего для хранения промежуточных результатов вычисления (регистр общего назначения/регистр данных) или содержащая данные, необходимые для работы процессора … … Википедия
регистр общего назначения — РОН — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] регистр общего назначения универсальный регистр общий регистр Регистр процессора, доступный программам и используемый ими для временного… … Справочник технического переводчика
РЕГИСТР КОМПЬЮТЕРА — Специализированная ячейка памяти, входящая в состав процессора. Регистры выполняют функции кратковременного хранения и преобразования данных или команд. На физическом уровне регистр представляет собой совокупность триггеров, способных хранить… … Словарь бизнес-терминов
Регистр (в вычислит. технике) — Регистр ЦВМ, часть памяти вычислительной машины обычно ёмкостью в одно машинное слово, предназначенная для запоминания (а иногда также и для преобразования) кодов. В каждой ЦВМ имеются наборы Р. различного назначения, например Р. центрального… … Большая советская энциклопедия
Регистр (цифровая техника) — У этого термина существуют и другие значения, см. Регистр. 4 х разрядный сдвиговый регистр, преобразователь последовательного кода в параллельный и обратно Регистр последовательное или параллельное … Википедия
Регистр (в вычислит. технике) — 4 х разрядный сдвиговый регистр, преобразователь последовательного кода в параллельный и обратно Регистр последовательностное логическое устройство, используемое для хранения n разрядных двоичных слов (чисел) и выполнения преобразований над ними … Википедия
Регистры микропроцессоров, их виды и назначение
Общие сведения.
При составлении программ в первую очередь необходимо
знать, какие из регистров микропроцессора являются программно–доступными регистрами, в которых можно хранить подлежащие обработке данные (операнды), адреса и управляющие сигналы (команды). Совокупность программно–доступных регистров образуют регистровую модель микропроцессора. Адресация регистровой области процессора и быстрый доступ к ней обеспечивают создание эффективно исполняемых программ.
В регистровой модели современных процессоров обычно выделяют следующие группы регистров:
● регистры, используемые при выполнении прикладных программ. К ним относят:
• основные функциональные регистры (регистры общего назначения; указатель команд, или программный счетчик; сегментные регистры; регистр флагов, или слова состояния);
обработки чисел с плавающей точкой (регистры данных, тегов, состояния, управления, регистры–указатели команды и операнда);
обработки пакетов чисел с плавающей точкой (регистры пакетов данных и регистр управления–состояния);
● системные регистры (регистры управления режимом, регистры системных адресов, регистры отладки);
● служебные (модельно–специфические) регистры, которые используются в процессе отладки систем, содержат информацию о процессе выполнения программы (число декодированных команд, полученных запросов прерывания, число загрузок в кэш–память и т. п.), обеспечивают различные режимы работы кэш–памяти при обращении к определенным областям основной памяти
О неоднородности регистров.
Регистровая область памяти микропроцессора (
— регистровый сегмент) представляет собой набор неоднородных по возможности доступа и по выполняемым функциям регистров. Например, в рассмотренном выше 8–разрядном процессоре:
● регистр команд является неадресуемым регистром и предназначен только для приема первого байта (кода команды) из памяти;
● адресуемые регистры В и С могут быть использованы для хранения одного байта данных или 16–разрядного адреса (в паре);
● указатель стека, представляющий собой 16–разрядный регистр, используется для доступа к стеку путем явной и неявной (с помощью специальных команд
● программный счетчик, или указатель команд, выполняет строго определенные функции и не может быть использован для хранения 16–разрядных операндов.
Функциональная неоднородность области
процессора проявляется в специализации регистров. В зависимости от выполняемых функций можно выделить три группы регистров:
● регистры данных, используемые в операциях АЛУ в качестве источника и приемника операндов;
● адресные регистры, или указатели, предназначенные для формирования адресов данных и команд;
● специальные регистры, служащие для индикации текущего состояния процессора и управления режимами его работы.
Функциональная специализация затрудняет программирование (из–за необходимости учета организации регистров), однако позволяет создать быстро исполняемую программу с меньшим требуемым объемом памяти для ее хранения.
Регистры обозначаются латинскими буквами, используемыми для символического кодирования и отражающими назначение регистра.
Среди регистров данных важное место занимает аккумулятор А (
), который выполняет функции временного хранения исходных операндов и результатов операций арифметическо–логических устройств (АЛУ). Интенсивное использование аккумулятора и связанное с ним большинство команд арифметической и логической обработки операндов способствует снижению загруженности шины данных, упрощению адресации, повышению быстродействия процессора. В системах команд микропроцессора выделяются операции с аккумулятором. Поэтому ссылка на аккумулятор при адресации, как правило, производится неявно с помощью кода операции. Неявная адресация позволяет не указывать в командах месторасположение одного из операндов и (или) результата операции, что уменьшает длину их кода. В составе микропроцессора может быть не один, а два аккумулятора (например, в МС6809). К регистрам данных относятся явно адресуемые рабочие регистры
1, …., используемые как сверхскоростные регистровые ОЗУ.
Рабочие регистры могут использоваться в операциях совместно с аккумулятором. Некоторые из них могут совмещать функцию хранения данных с функцией адресации. Для образования полноразмерного адреса регистры данных объединяются в пары.
В процессорах, предназначенных для работы в реальном времени, могут быть предусмотрены не один, а два или даже четыре (например, в некоторых микроконтроллерах) набора рабочих регистров. Один из регистров резервируется для системных целей или обработки прерываний, а остальные — для прикладных задач пользователя. В каждый момент времени доступен только один набор рабочих регистров, выбираемый специальным указателем.
К регистрам данных также относятся рассматриваемые ниже регистры общего назначения, которые совмещают функции хранения данных и адресов.
Среди регистров, на которые возложена функция адресации, следует выделить:
), или указатель инструкций–команд (
), хранящий адрес следующей команды выполняемой программы. Его разрядность обычно соответствует числу линий адресной шины. При выполнении программы с последовательно возрастающими адресами команд содержимое
увеличивается на 1 или 2 для указания следующего байта или слова. Увеличение содержимого счетчика происходит автоматически сразу после начала выполнения команды. Изменение последовательной выборки команд из ячеек памяти осуществляется путем загрузки программного счетчика адресом требуемой ячейки. Такая ситуация возникает, например:
• при выполнении команд условных и безусловных переходов;
• при инициализации микропроцессора путем сброса;
• при обслуживании запросов на прерывание;
используемый для обращений к системному стеку. Стек представляет собой область памяти, предназначенную для хранения адресов возврата и состояний процессора (содержимого регистров) при вызове подпрограмм и обслуживании прерываний. Доступ к стеку организован по принципу «последним пришел — первым ушел» (
т. е. в него можно только последовательно добавлять (вталкивать) или извлекать (выталкивать) элементы данных. Типовой стек, применяемый в большинстве процессоров, заполняется в сторону уменьшения адресов.
всегда показывает на последнюю заполненную ячейку, называемую вершиной стека (
Поэтому при операции записи (
) в стек элемента данных сначала содержимое указателя
уменьшается на 1 или 2 в зависимости от длины элемента (байт, два байта), формируя адрес ячейки, в которую затем помещается элемент. При операции считывания (
) сначала элемент данных извлекается из стека, после чего содержимое указателя
увеличивается на 1 или 2.
Принцип взаимодействия указателя
со стеком проиллюстрирован на примере записи в стек и считывания из него четырех однобайтных элементов (рис. 2.4.1, а).
При операциях со стеком значение указателя
непрерывно меняется, поэтому применять его в качестве точки отсчета при доступе к хранящимся в стеке данным вызывает определенные трудности. Поэтому в ряде случаев, например, при хранении в стеке локальных переменных или при обмене параметрами между вызываемой и вызывающей процедурой (подпрограммой), используется указатель кадра (
) — специально зарезервированный адресный регистр. Регистр
, указывающий на начало области параметров в стеке (рис. 2.4.1, б), принадлежит к классу базовых регистров. В 16–разрядных процессорах указателем кадра служит индексный регистр ВХ;
регистры, предназначенные для хранения адресов обращения к основной памяти. Такие регистры, называемые указательными или индексными, позволяют сократить размер кода (программы). К ним следует отнести:
• регистры косвенного адреса (
), содержащие непосредственно адрес операнда;
), хранящие начальные (базовые) адреса массивов и записей;
• индексные регистры I или X (
), содержимое которых является относительным (смещенным) адресом операнда;
• регистры автоинкрементной и автодекрементной адресации, автоматически увеличивающие или уменьшающие свое содержимое после выполнения операции;
• регистры расширения адресного пространства (до 1М байт).
К специальным регистрам следует отнести регистр флагов (
), или регистр слова состояния программы (
а также ряд регистров, используемых в сопроцессорах и микроконтроллерах.
На регистр флагов возлагается функция хранения признаков. С каждым признаком связывается одноразрядная переменная (бит), называемая флагом (флажком). Регистр флагов содержит:
● биты признаков состояния процессора. Обычно эти признаки формируются в АЛУ после выполнения операции и характеризуют ее результат;
● биты управления и системных признаков, которые устанавливаются операционной системой (некоторые пользователем) и задают режим процессора при организации ввода–вывода данных, обслуживании прерываний и исключений, решении последовательности вызываемых задач и реализации ряда других процедур.
Упаковка всех флагов в одно слово и хранение в регистре дает возможность их быстрой пересылки в память с последующим восстановлением, например, при обслуживании запросов на прерывание.
Ниже приведены обозначение, название и назначение флагов признаков состояния, а также показан принцип формирования некоторых флагов из отдельных бит
–разрядных операндов вида
, которые могут быть как исходным операндом, так и результатом выполненной операции: