Организация набора регистров

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

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

• Регистры управления и состояния используются для управления функционированием процессора. К этим регистрам иногда могут иметь доступ специальные привилегированные команды, которые используются только в программах операционной системы.

Программно доступные регистры можно разделить на четыре категории

1. Регистры общего назначения (или универсальные регистры) используются для выполнения различных функций. Но чаще всего возможность применения того или иного регистра все-таки в определенной мере ограничивается. Например, для работы с системным стеком и числами в формате с плавающей точкой используются не любые, а только определенные регистры.

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

2. Регистры данных используется для хранения операндов и результатов. Регистры данных разрешается использовать только для хранения операндов и результатов, но они не принимают участия в вычислении исполнительного адреса.

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

• Указатель сегмента. В компьютерах с сегментной организацией оперативной памяти выделяется специальный регистр сегмента, в котором хранится базовый, адрес сегмента. Таких регистров может быть несколько, один хранит базовый адрес сегмента операционной системы, а .другой (другие) —базовый адрес сегмента текущего процесса (или нескольких параллельно выполняемых процессов).

• Индексные регистры. Эти регистры используются в режимах адресации с индексацией, и в некоторых процессорах при обращении к ним автоматически выполняется приращение или уменьшение значения на 1 (происходит автоиндексация).

• Указатель стека. Если в компьютере механизм управления системным стеком программно доступен, то стек размещается в оперативной памяти и выделяется специальный регистр, который содержит текущее значение указателя вершины стека. Наличие системного стека позволяет неявно специфицировать операнды в нульадресных командах.

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

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

• Счетчик команд (РС) содержит адрес извлекаемой машинной команды.

• Регистр текущей команды (IR) содержит последнюю извлеченную машинную команду.

• Регистр адреса в памяти (MAR) содержит адрес ячейки памяти, к которой происходит обращение.

• Регистр данных памяти (MBR) содержит слово данных, которое должно быть записано в память или слово, только что извлеченное из памяти.

Четыре перечисленных регистра используются при перемещении данных между процессором и памятью. Но внутри процессора данные должны передаваться в АЛУ для обработки. АЛУ имеет доступ как к регистру МВR, так и к программно доступным регистрам. Но возможен вариант структуры процессора, в котором существуют дополнительные буферные регистры на стыке АЛУ с другими компонентами. Эти буферные регистры играют роль входных и выходных для АЛУ и обмениваются данными с МВR и с программно доступными регистрами.

Во всех моделях процессоров существуют один или несколько регистров, хранящих слово состояния программы (PSW – program status word).

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