что такое регистры микропроцессора
Регистры процессора
Регистр процессора — сверхбыстрая память внутри процессора, предназначенная прежде всего для хранения промежуточных результатов вычисления (регистр общего назначения/регистр данных) или содержащая данные, необходимые для работы процессора — смещения базовых таблиц, уровни доступа и т. д. (специальные регистры).
Регистр представляет собой цифровую электронную схему, служащую для временного хранения двоичных чисел. В процессоре имеется значительное количество регистров, большая часть которых используется самим процессором и недоступна программисту. Например, при выборке из памяти очередной команды она помещается в регистр команд. Программист обратиться к этому регистру не может. Имеются так же регистры, которые в принципе программно доступны, но обращение к ним осуществляется из программ операционной системы (например управляющие регистры и теневые регистры дескрипторов сегментов). Этими регистрами пользуются в основном разработчики операционных систем.
Основные регистры процессора, совместимого с Intel 386
IP (англ. Instruction Pointer ) — регистр, обозначающий смещение следующей команды относительно кодового сегмента.
IP — 16-битный (младшая часть EIP)
EIP — 32-битный аналог
Сегментные регистры — Регистры указывающие на сегменты.
CS — указатель на кодовый сегмент. Связка CS:IP указывает на адрес в памяти следующей команды.
Регистры данных — служат для хранения промежуточных вычислений.
RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 — R15 — 64-битные
EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP — 32-битные (extended AX)
AX, BX, CX, DX — 16-битные
AH, AL, BH, BL, CH, CL, DH, DL — 8-битные (половинки 16-ти битных регистров)
RAX | RBX | RCX | RDX | ||||||||||||
—— | EAX | —— | EBX | —— | ECX | —— | EDX | ||||||||
—— | —— | AX | —— | —— | BX | —— | —— | CX | —— | —— | DX | ||||
—— | —— | AH | AL | —— | —— | BH | BL | —— | —— | CH | CL | —— | —— | DH | DL |
Регистр флагов EFLAGS — содержит текущее состояние процессора.
Регистром называется функциональный узел, осуществляющий приём, хранение и передачу информации. Регистры состоят из группы триггеров, обычно D. По типу приёма и выдачи информации различают 2 типа регистров:
Сдвиговые регистры представляют собой последовательно соединённую цепочку триггеров. Основной режим работы — сдвиг разрядов кода от одного триггера к другому на каждый импульс тактового сигнала.
По назначение регистры различаются на:
См. также
Примечания
Микроконтроллеры
8-bit | MCS-51 • MCS-48 • AVR • Z8 • H8 • COP8 • 68HC08 • 68HC11 |
---|---|
16-bit | PIC24 • MAXQ • Nios • 68HC12 • 68HC16 |
32-bit | ARM • PIC32MX • 683XX • M32R • |
Полезное
Смотреть что такое «Регистры процессора» в других словарях:
Архитектура процессора — количественная составляющая компонентов микроархитектуры вычислительной машины (процессора компьютера) (например, регистр флагов или регистры процессора), рассматриваемая IT специалистами в аспекте прикладной деятельности. С точки зрения… … Википедия
Регистр процессора — Эта статья включает описание термина «IP»; см. также другие значения. Регистр процессора блок ячеек памяти, образующий сверхбыструю оперативную память (СОЗУ) внутри процессора; используется самим процессором и большой частью недоступен… … Википедия
Кэш процессора — Кэш микропроцессора кэш (сверхоперативная память), используемый микропроцессором компьютера для уменьшения среднего времени доступа к компьютерной памяти. Является одним из верхних уровней иерархии памяти[1] … Википедия
Кэш центрального процессора — Кэш (англ. cache[1], произносится kæʃ кЭш) промежуточный буфер с быстрым доступом, содержащий копию той информации, которая хранится в памяти с менее быстрым доступом, но с наибольшей вероятностью может быть оттуда запрошена. Доступ к данным в… … Википедия
Моделезависимые регистры — (Model Specific Registers, MSR) cпециальные регистры процессоров архитектуры x86, наличие и назначение которых варьируется от модели к модели процессора. Программно доступны при помощи команд RDMSR и WRMSR. Адресуются 32 битным индексом,… … Википедия
Регистр (цифровая техника) — У этого термина существуют и другие значения, см. Регистр. 4 х разрядный сдвиговый регистр, преобразователь последовательного кода в параллельный и обратно Регистр последовательное или параллельное … Википедия
РОН (электроника) — Регистр процессора сверхбыстрая память внутри процессора, предназначенная прежде всего для хранения промежуточных результатов вычисления (регистр общего назначения/регистр данных) или содержащая данные, необходимые для работы процессора … … Википедия
Регистр (вычислительная техника) — Регистр процессора сверхбыстрая память внутри процессора, предназначенная прежде всего для хранения промежуточных результатов вычисления (регистр общего назначения/регистр данных) или содержащая данные, необходимые для работы процессора … … Википедия
Motorola 6809 — > Центральный процессор Процессор Motorola 6809E с рабочей частотой 1 МГц, выпущен в 1983 году … Википедия
Иерархия памяти — Пирамида иерархии памяти. По левой грани обозначены размер и емкость, по центру требование постоянного электропитания и длительность хранения, справа пример памяти данного уровня, скорос … Википедия
Лекция 7 Регистры микропроцессора
Информация о работе
Помогла работа? Поделись ссылкой
Есть ненужная работа?
Добавь её на сайт, помоги студентам и школьникам выполнять работы самостоятельно
Информация о документе
Документ предоставляется как есть, мы не несем ответственности, за правильность представленной в нём информации. Используя информацию для подготовки своей работы необходимо помнить, что текст работы может быть устаревшим, работа может не пройти проверку на заимствования.
Если Вы являетесь автором текста представленного на данной странице и не хотите чтобы он был размешён на нашем сайте напишите об этом перейдя по ссылке: «Правообладателям»
Можно ли скачать документ с работой
Да, скачать документ можно бесплатно, без регистрации перейдя по ссылке:
Лекция 7 Регистры микропроцессора
Сначала рассмотрим режимы работы процессора.
Все 32-разрядные процессоры Intel и совместимые, начиная с 80386-го, могут выполнять программы в нескольких режимах. Режимы процессора предназначены для выполнения программ в различных средах; в разных режимах возможности микропроцессора неодинаковы, потому что команды выполняются по-разному. В зависимости от режима процессора изменяется схема управления памятью системы и задачами. Процессоры могут работать в трех режимах:
• реальном,
• защищенном,
• виртуальном реальном режиме (реальном внутри защищенного).
В данной лекции рассмотрим работу процессора в реальном режиме.
Операционная система (а не сама программа) размещает сегменты программы в ОП по определенным физическим адресам, а значения этих адресов записывает в определенные места, в зависимости от режима работы микропроцессора:
• в реальном режиме адреса помещаются непосредственно в специальные сегментные регистры (cs, ds, ss, es, gs, fs);
Для доступа к данным внутри сегмента обращение производится относительно начала сегмента линейно, т.е. начиная с 0 и заканчивая адресом, равным размеру сегмента. Этот адрес называется смещением (offset).
Таким образом, для обращения к конкретному физическому адресу ОП необходимо определить адрес начала сегмента и смещение внутри сегмента.
Физический адрес принято записывать парой этих значений, разделенных двоеточием
segment : offset
Например, 0040:001Ch; 0000:041Ch; 0020:021Ch; 0041:000Ch.
Пример:
Адрес, локализующий положение сегмента в оперативной памяти, содержится в одном из специальных сегментных регистров процессора, но он тоже 16-разрядный. Для того, чтобы при помощи этого адреса можно было перекрыть все пространство ОЗУ (в реальном режиме 1 Мб), со стороны младшего байта его дополняют четырьмя нулями.
Например, если содержимое сегментного регистра: 0001.1101.1000.1111 (или 1D8F16) то адрес начала соответствующего сегмента будет равен: 0001.1101.1000.1111.0000 (или 1D8F016). Таким образом можно искусственно разделить всю память на сегменты, начинающиеся по адресам, кратным 1610. Предположим, что внутрисегментное смещение нашей ячейки задано числом 1001.1011.0010.0101 или 9В2516, в этом случае ее реальный адрес будет равен сумме адреса сегмента и внутрисегментного смещения: 1D8F016+9B2516 = 2741516 (рис. 4).
Стек реализуется на базе оперативной памяти. Элементы стека расположены в оперативной памяти,
В этой памяти каждая ячейка не имеет адреса, а имеется только адрес данной области (сегмента) стека, и адрес смещения внутри сегмента, называемый адрес вершины стека. Поэтому стековая память называется еще безадресной в отличии от остальной оперативной памяти, где каждая ячейка имеет свой адрес.
Стек ( stack – стопка)
Стек – это специальная структура данных в памяти. По способу записи эту структуру еще часто называют LIFO (Last In First Out)– последним пришел, первым ушел. Стек представляет собой, как бы обойму, в которую вместо патрона загоняется очередная переменная и та переменная, которая поступила в стек последней извлекается первой.
Запись нового слова производится в верхнюю ячейку, при этом все ранее записанные слова сдвигаются вниз, в соседние ячейки. Считывание возможно только из верхней ячейки памяти. Если производится считывание с удалением, все остальные слова в памяти сдвигаются в верх.
Возможен также способ записи FIFO («first-in-first-out») –по принципу: первым пришел, первым ушел.
Регистры микропроцессоров, их виды и назначение
Общие сведения.
При составлении программ в первую очередь необходимо
знать, какие из регистров микропроцессора являются программно–доступными регистрами, в которых можно хранить подлежащие обработке данные (операнды), адреса и управляющие сигналы (команды). Совокупность программно–доступных регистров образуют регистровую модель микропроцессора. Адресация регистровой области процессора и быстрый доступ к ней обеспечивают создание эффективно исполняемых программ.
В регистровой модели современных процессоров обычно выделяют следующие группы регистров:
● регистры, используемые при выполнении прикладных программ. К ним относят:
• основные функциональные регистры (регистры общего назначения; указатель команд, или программный счетчик; сегментные регистры; регистр флагов, или слова состояния);
обработки чисел с плавающей точкой (регистры данных, тегов, состояния, управления, регистры–указатели команды и операнда);
обработки пакетов чисел с плавающей точкой (регистры пакетов данных и регистр управления–состояния);
● системные регистры (регистры управления режимом, регистры системных адресов, регистры отладки);
● служебные (модельно–специфические) регистры, которые используются в процессе отладки систем, содержат информацию о процессе выполнения программы (число декодированных команд, полученных запросов прерывания, число загрузок в кэш–память и т. п.), обеспечивают различные режимы работы кэш–памяти при обращении к определенным областям основной памяти
О неоднородности регистров.
Регистровая область памяти микропроцессора (
— регистровый сегмент) представляет собой набор неоднородных по возможности доступа и по выполняемым функциям регистров. Например, в рассмотренном выше 8–разрядном процессоре:
● регистр команд является неадресуемым регистром и предназначен только для приема первого байта (кода команды) из памяти;
● адресуемые регистры В и С могут быть использованы для хранения одного байта данных или 16–разрядного адреса (в паре);
● указатель стека, представляющий собой 16–разрядный регистр, используется для доступа к стеку путем явной и неявной (с помощью специальных команд
● программный счетчик, или указатель команд, выполняет строго определенные функции и не может быть использован для хранения 16–разрядных операндов.
Функциональная неоднородность области
процессора проявляется в специализации регистров. В зависимости от выполняемых функций можно выделить три группы регистров:
● регистры данных, используемые в операциях АЛУ в качестве источника и приемника операндов;
● адресные регистры, или указатели, предназначенные для формирования адресов данных и команд;
● специальные регистры, служащие для индикации текущего состояния процессора и управления режимами его работы.
Функциональная специализация затрудняет программирование (из–за необходимости учета организации регистров), однако позволяет создать быстро исполняемую программу с меньшим требуемым объемом памяти для ее хранения.
Регистры обозначаются латинскими буквами, используемыми для символического кодирования и отражающими назначение регистра.
Среди регистров данных важное место занимает аккумулятор А (
), который выполняет функции временного хранения исходных операндов и результатов операций арифметическо–логических устройств (АЛУ). Интенсивное использование аккумулятора и связанное с ним большинство команд арифметической и логической обработки операндов способствует снижению загруженности шины данных, упрощению адресации, повышению быстродействия процессора. В системах команд микропроцессора выделяются операции с аккумулятором. Поэтому ссылка на аккумулятор при адресации, как правило, производится неявно с помощью кода операции. Неявная адресация позволяет не указывать в командах месторасположение одного из операндов и (или) результата операции, что уменьшает длину их кода. В составе микропроцессора может быть не один, а два аккумулятора (например, в МС6809). К регистрам данных относятся явно адресуемые рабочие регистры
1, …., используемые как сверхскоростные регистровые ОЗУ.
Рабочие регистры могут использоваться в операциях совместно с аккумулятором. Некоторые из них могут совмещать функцию хранения данных с функцией адресации. Для образования полноразмерного адреса регистры данных объединяются в пары.
В процессорах, предназначенных для работы в реальном времени, могут быть предусмотрены не один, а два или даже четыре (например, в некоторых микроконтроллерах) набора рабочих регистров. Один из регистров резервируется для системных целей или обработки прерываний, а остальные — для прикладных задач пользователя. В каждый момент времени доступен только один набор рабочих регистров, выбираемый специальным указателем.
К регистрам данных также относятся рассматриваемые ниже регистры общего назначения, которые совмещают функции хранения данных и адресов.
Среди регистров, на которые возложена функция адресации, следует выделить:
), или указатель инструкций–команд (
), хранящий адрес следующей команды выполняемой программы. Его разрядность обычно соответствует числу линий адресной шины. При выполнении программы с последовательно возрастающими адресами команд содержимое
увеличивается на 1 или 2 для указания следующего байта или слова. Увеличение содержимого счетчика происходит автоматически сразу после начала выполнения команды. Изменение последовательной выборки команд из ячеек памяти осуществляется путем загрузки программного счетчика адресом требуемой ячейки. Такая ситуация возникает, например:
• при выполнении команд условных и безусловных переходов;
• при инициализации микропроцессора путем сброса;
• при обслуживании запросов на прерывание;
используемый для обращений к системному стеку. Стек представляет собой область памяти, предназначенную для хранения адресов возврата и состояний процессора (содержимого регистров) при вызове подпрограмм и обслуживании прерываний. Доступ к стеку организован по принципу «последним пришел — первым ушел» (
т. е. в него можно только последовательно добавлять (вталкивать) или извлекать (выталкивать) элементы данных. Типовой стек, применяемый в большинстве процессоров, заполняется в сторону уменьшения адресов.
всегда показывает на последнюю заполненную ячейку, называемую вершиной стека (
Поэтому при операции записи (
) в стек элемента данных сначала содержимое указателя
уменьшается на 1 или 2 в зависимости от длины элемента (байт, два байта), формируя адрес ячейки, в которую затем помещается элемент. При операции считывания (
) сначала элемент данных извлекается из стека, после чего содержимое указателя
увеличивается на 1 или 2.
Принцип взаимодействия указателя
со стеком проиллюстрирован на примере записи в стек и считывания из него четырех однобайтных элементов (рис. 2.4.1, а).
При операциях со стеком значение указателя
непрерывно меняется, поэтому применять его в качестве точки отсчета при доступе к хранящимся в стеке данным вызывает определенные трудности. Поэтому в ряде случаев, например, при хранении в стеке локальных переменных или при обмене параметрами между вызываемой и вызывающей процедурой (подпрограммой), используется указатель кадра (
) — специально зарезервированный адресный регистр. Регистр
, указывающий на начало области параметров в стеке (рис. 2.4.1, б), принадлежит к классу базовых регистров. В 16–разрядных процессорах указателем кадра служит индексный регистр ВХ;
регистры, предназначенные для хранения адресов обращения к основной памяти. Такие регистры, называемые указательными или индексными, позволяют сократить размер кода (программы). К ним следует отнести:
• регистры косвенного адреса (
), содержащие непосредственно адрес операнда;
), хранящие начальные (базовые) адреса массивов и записей;
• индексные регистры I или X (
), содержимое которых является относительным (смещенным) адресом операнда;
• регистры автоинкрементной и автодекрементной адресации, автоматически увеличивающие или уменьшающие свое содержимое после выполнения операции;
• регистры расширения адресного пространства (до 1М байт).
К специальным регистрам следует отнести регистр флагов (
), или регистр слова состояния программы (
а также ряд регистров, используемых в сопроцессорах и микроконтроллерах.
На регистр флагов возлагается функция хранения признаков. С каждым признаком связывается одноразрядная переменная (бит), называемая флагом (флажком). Регистр флагов содержит:
● биты признаков состояния процессора. Обычно эти признаки формируются в АЛУ после выполнения операции и характеризуют ее результат;
● биты управления и системных признаков, которые устанавливаются операционной системой (некоторые пользователем) и задают режим процессора при организации ввода–вывода данных, обслуживании прерываний и исключений, решении последовательности вызываемых задач и реализации ряда других процедур.
Упаковка всех флагов в одно слово и хранение в регистре дает возможность их быстрой пересылки в память с последующим восстановлением, например, при обслуживании запросов на прерывание.
Ниже приведены обозначение, название и назначение флагов признаков состояния, а также показан принцип формирования некоторых флагов из отдельных бит
–разрядных операндов вида
, которые могут быть как исходным операндом, так и результатом выполненной операции:
Лекция 2: Регистровая структура универсального микропроцессора
Регистровая структура универсального микропроцессора
В универсальном 32-разрядном микропроцессоре выделяют следующие группы регистров:
Рассмотрим каждую из этих групп подробнее.
Основные функциональные регистры
В состав регистров этой группы входят:
Состав и структура регистров общего назначения представлены на рис. 2.1.
Блок состоит из восьми 32-разрядных регистров. К каждому из них можно обращаться как к одному двойному слову (32 разряда).
Все эти регистры используются для хранения промежуточных результатов вычислений и составных частей адреса при различных режимах адресации операндов, расположенных в памяти.
Кроме того, ряд регистров этого блока имеют свое, присущее только им назначение:
Регистр указателя команд и регистр флагов имеют длину 32 разряда.
Младшее слово каждого из этих регистров (разряды 0-15) функционально соответствует аналогичным разрядам в 16-разрядном микропроцессоре (рис. 2.2).
Регистр указателя команд EIP хранит смещение адреса команд относительно начала сегмента кода (сегмента команд).
Регистр флагов EFLAGS содержит признаки результата выполненной команды, а также разряды, управляющие работой микропроцессора: обработкой маскированных прерываний, последовательностью вызываемых задач, вводом-выводом и рядом других действий. Из этих флагов рассмотрим только наиболее значимые и интересные с точки зрения дальнейшего изучения работы микропроцессора.
К битам состояния регистра флагов относятся:
В состав флагов управления входят:
При работе микропроцессора в реальном режиме в сегментном регистре содержатся старшие 16 разрядов 20-разрядного базового адреса сегмента. Физический адрес начала сегмента получается умножением этой величины на 16:
Регистры процессора с плавающей точкой
К этой группе регистров относятся (рис. 2.3):