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

Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 14:17, творческая работа

Описание работы

Регистры процессора
В процессоре имеется набор регистров, представляющих собой область памяти быстрого доступа, но намного меньшей емкости, чем основная память. Регистры процессора выполняют две функции.

Файлы: 1 файл

5.4.Регистры процессора.doc

— 32.00 Кб (Скачать файл)

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

В процессоре имеется набор регистров, представляющих собой область памяти быстрого доступа, но намного меньшей  емкости, чем основная память. Регистры процессора выполняют две функции.

Регистры, доступные пользователю.

Эти регистры позволяют программисту сократить число обращений к основной памяти, оптимизируя использование регистров с помощью машинного языка или ассемблера. В состав языков высокого уровня входят оптимизирующие компиляторы, построенные на алгоритмах, которые, в частности, позволяют определить, какие переменные следует заносить в регистры, а какие — в основную память. Некоторые языки высокого уровня, такие, как С, предоставляют программисту возможность предложить компилятору хранить те или иные данные в регистрах.

Регистры управления и регистры состояния.

Используются в процессоре для контроля над выполняемыми операциями; с их помощью привилегированные  программы операционной системы  могут контролировать ход выполнения других программ. Для разделения регистров  на эти две категории не существует определенного признака. Например, на некоторых машинах оператор имеет возможность следить за состоянием программного счетчика, а на других — нет. Однако такое разделение удобно при дальнейшем рассмотрении.    

 

Регистры процессора, доступные пользователю

К доступным регистрам пользователь может обращаться с помощью команд машинного языка. К этим регистрам, как правило, имеют доступ все  программы — как приложения, так  и системные. Обычно среди доступных  регистров есть регистры данных, адресные регистры и регистры кода условия.

Регистры данных.

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

Адресные регистры.

В них заносятся адреса команд и данных в основной памяти; в этих регистрах может быть записана только часть адреса, использующаяся при вычислении полного или эффективного адреса. Рассмотрим следующие примеры.

Индексный регистр.

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

Сегментный регистр.

При сегментной адресации  память разделяется на блоки (сегменты), состоящие из различного количества машинных слов. Адрес ячейки памяти складывается из адреса сегмента и  смещения относительно начала сегмента. При этом режиме адресации базовый адрес сегмента (его начало) хранится в одном из регистров. Таких регистров может быть несколько; например, один — для операционной системы (т.е. использующийся при выполнении процессором кода операционной системы), другие — для исполняющихся в данный момент приложений.

Регистр стека.

При стековой адресации1 выделяется специальный регистр, в котором размещен указатель на вершину стека. Этот режим адресации позволяет использовать некоторые команды, в которых отсутствует поле адреса, например push и pop. В некоторых машинах вызов процедуры или подпрограммы приводит к автоматическому сохранению содержимого всех доступных пользователю регистров, чтобы по возвращении их можно было восстановить. Процедура сохранения и восстановления, являющаяся составной частью команды вызова и возврата, выполняется процессором. Такой подход позволяет процедурам использовать регистры независимо друг от друга.

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

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

 

Управляющие регистры процессора и регистры состояния

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

Конечно, у разных типов машин  организация регистров отличается; для их классификации также используется различная терминология. Здесь приводится довольно полный список типов регистров и дается их краткое описание. Кроме ранее упомянутых регистров, MAR, MBR, I/OAR и I/OBR, важными для выполнения команд являются следующие.

Программный счетчик (program counter — PC).

Содержит адрес команды, которая должна быть выбрана из памяти.

Регистр команд (instruction register — IR).

Содержит последнюю выбранную  из памяти команду. В состав всех процессоров  входит также регистр (или набор  регистров), известный под названием  регистра слова состояния программы (program status word — PSW). В нем, как правило, содержатся коды условий и другая информация о состоянии, например бит разрешения/запрещения прерываний или бит режима системный/пользовательский.

Коды условий (известные  также как флаги) — это последовательность битов, устанавливаемых или сбрасываемых процессором в зависимости от результата выполненных операций. Например, в результате выполнения арифметического действия может получиться положительное число, отрицательное, ноль, или может произойти переполнение. В дополнение к сохранению полученного значения в памяти или регистре в результате арифметических операций устанавливаются также соответствующие коды условий. Впоследствии они могут быть проверены условной операцией ветвления. Биты кодов условий группируются в один или несколько регистров (обычно они составляют часть регистра управления). Вообще говоря, есть машинные команды, позволяющие прочитать содержимое этих битов с помощью явных обращений к регистрам; однако изменять их содержимое явным образом нельзя, поскольку эти биты предназначены для отображения результатов выполнения команд.


Информация о работе Регистры процессора