Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции АКС / лекции АКС / Лекция 9. СТРУКТУРА ПРОЦЕССОРА.doc
Скачиваний:
186
Добавлен:
26.02.2016
Размер:
4.51 Mб
Скачать

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

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

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

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

Счетчик команд (PC — program counter) содержит адрес извлекаемой ма­шинной команды.

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

Регистр адреса в памяти (MAR — memory address register) содержит адрес ячейки памяти.

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

Как правило, счетчик команд, PC, обновляется процессором сразу после того, как извлекается очередная машинная команда, и, таким образом, практически в течение всего цикла обработки команды в нем содержится ад­рес команды, которая должна выполняться в следующем цикле. Содержимое PC также изменяется командами переходов и пропуска. Извлеченная из па­мяти машинная команда помещается в регистр IR, а затем производится анализ отдельных ее полей — кода операции и полей операндов. Данные из­влекаются из памяти с помощью регистров MAR и MBR. В компьютерах с системной магистралью регистр MAR соединен напрямую с линиями адреса, а регистр MBR — с линиями данных. В свою очередь, программно доступные регистры обмениваются данными с MBR.

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

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

S (sign — знак). Содержит знаковый разряд результата последней арифме­тической операции.

• Z (zero — нуль). Устанавливает в 1, если результат последней операции ра­вен нулю.

• С (carry — перенос). Устанавливает в 1, если в результате последней ариф­метической операции возник перенос (при сложении) или заем (при вычи­тании) из старшего значащего разряда. Используется при выполнении арифметических операций над многословными операндами.

• Е (equal — равенство). Устанавливает в 1, если при логическом сравнении обнаружено равенство операндов.

• О (overflow — переполнение). Индикатор переполнения при выполнении по­следней арифметической операции.

• I (interrupt enable/disable — разрешение/блокировка прерывания). Исполь­зуется для разрешения или блокировки прерывания.

• SV (supervisor — режим супервизора). Индикатор привилегированного ре­жима выполнения программы (режима супервизора). В режиме супервизора разрешается выполнение некоторых привилегированных машинных команд и доступ к защищенным областям памяти.

В конкретных моделях процессоров можно встретить и другие регистры, хранящие информацию о текущем состоянии процессора и управляющие режи­мом его функционирования. Помимо PSW, это может быть регистр указателя блока памяти, содержащего дополнительную информацию о состоянии (т.е. бло­ка управления процессом). В состав процессоров, работающих с векторными прерываниями, включается регистр вектора прерывания. Если для выполнения некоторых функций используется стек, в составе процессора должен быть ре­гистр указателя системного стека. Регистр указателя таблицы страниц необхо­дим в системах, работающих с виртуальной памятью. И наконец, определенные регистры нужны для управления операциями ввода-вывода.

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