Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТО_САПР_2010_11.doc
Скачиваний:
3
Добавлен:
08.11.2018
Размер:
19.26 Mб
Скачать

Микропрограммное управление вентильными схемами

Микрокоманды. Интерпретирующий уровень (см. рис. 4.7) обладает набором команд, состоящим только из двух микрокоманд: операционной (ОМК) и управляющей (УМК), форматы которых показаны на рис. 4.8.

Рис. 4.8. Система команд микропрограммного уровня,

показанного на рис. 4.7 (состоит только из двух команд)

Поскольку команд только две, достаточно однобитового кода операции: 0 — для ОМК и 1 — для УМК. Хотя для размещения информации и кода операции достаточно 30 бит, были выбраны 32-разрядные (четырехбайтовые) микрокоманды.

В операционной микрокоманде каждый из 29 информационных битов управляет одной из 29 вентильных схем, описанных в параграфе 4.2. Единица означает, что вентильная схема должна быть открыта, нуль — закрыта.- Подобная структура микрокоманды обычно называется горизонтальной.

Управляющая микрокоманда используется для изменения последовательности выполнения микрокоманд в зависимости от тех или иных условий. Каждая микрокоманда УМК определяет 1 бит, подлежащий проверке (любой из 61 бит, находящихся в А, РК, РД и PC). Если выбранный бит и 24-й бит микрокоманды совпадают, последовательность микрокоманд, подлежащих исполнению, изменяется и адрес следующей микрокоманды определяется битами с 16 по 23 самой УМК. Если выбранный бит отличается от бита 24, последовательность выполнения микрокоманд не претерпевает изменений.

Бит, подлежащий проверке, определяется двумя полями микрокоманды. Биты с 25 по 28 указывают, какой регистр интерпретирующей машины должен быть проверен согласно следующим правилам:

бит 25 — регистр состояний (PC);

бит 26 — регистр данных (РД);

бит 27 — регистр команд (РК);

бит 28 — аккумулятор (А).

Биты микрокоманды с 0 по 15 указывают, какой бит выбранного регистра подлежит проверке. Только один бит, принадлежащий группе битов с 0 по 15, и один бит группы битов с 25 по 28 должны быть равны единице.

Например, после увеличения на единицу содержимого регистра данных (РД) в команде ISZ (см. параграф 2.4) надо проверить его знаковый разряд (разряд с номером 15). Если этот разряд равен 1 (содержимое РД меньше нуля), то выполнение микрокоманд команды ISZ завершается. В противном случае необходимо прибавить единицу к содержимому счетчика команд, т. е. организовать пропуск следующей за ISZ команды. Разветвление в микропрограмме реализации команды ISZ (переход по адресу 8F) осуществляется с помощью микрокоманды (858F8000)16. На рис. 4.9, а эта микрокоманда представлена в двоичной форме с указанием всех используемых битов.

Рис. 4.9. Примеры управляющих микрокоманд: а — условного перехода; б— безусловного перехода

Для организации безусловного перехода (например, по тому же адресу 8F) используется 3-й бит регистра состояний, содержащий константу 0. Сравнение этого разряда с константой 0, установленной в 24-й разряд УМК, всегда дает положительный результат и позволяет переслать в СчМК нужный адрес перехода (рис. 4.9, б).

Выполнение микропрограмм. Микропрограмма хранится в памяти микрокоманд, которая состоит из 256 (28) 32-битовых слов (см. рис. 4.7). Для управления выполнением микропрограммы используется счетчик микрокоманд (СчМК), аналогичный счетчику команд традиционного машинного уровня. Чтобы извлекать микрокоманды из памяти микрокоманд, декодировать их и исполнять, следовало бы иметь регистры адреса, данных и команд. Но поскольку машина-интерпретатор очень проста, один регистр выполнит функции регистра адреса и счетчика микрокоманд, а другой — регистра данных и регистра микрокоманд (РМК).

Работу процессора можно описать следующим образом. При появлении тактового импульса из памяти микрокоманд извлекается и загружается в РМК слово, на которое указывает СчМК, и к содержимому этого счетчика прибавляется единица. Если из памяти извлечена УМК, то в 31-м бите РМК содержится 1 (код операции УМК), которая открывает вентильную схему ВР1 и тем самым создает условия для исполнения УМК. Если же извлечена ОМК, то в 31-м бите РМК — нуль. Этот сигнал с помощью инвертора НЕ открывает вентильную схему ВРО, и через нее на ВО—В28 передаются состояния соответствующих битов РМК. Разряды РМК, содержащие единицы, создают открывающий управляющий сигнал, а содержащие нули — закрывающий (У0 — У28).

При исполнении УМК по сигналу, создаваемому каким-либо битом поля выбора проверяемого регистра (У1, У2, У4 или У5), открывается одна из вентильных схем В1, В2, В4 или В5 и на вентили ВВО — ВВ15 поступает через АЛУ содержимое соответствующего регистра. Одновременно на эти же вентили поступает с РМК содержимое поля выбора проверяемого бита. Так как в этом поле должна быть записана только одна единица, то открывается лишь один из вентилей ВВО — ВВ15, через который на схему сравнения поступает содержимое проверяемого бита из проверяемого регистра.

На второй вход схемы сравнения поступает содержимое однобитового поля сравнения (24-й бит УМК), в которое при кодировании УМК записали цифру 0 или 1. Если проверяемый бит и бит из поля сравнения идентичны, то схема сравнения формирует единичный сигнал, который открывает вентильную схему ВА, и на СчМК пересылается адрес перехода (биты с 16 по 23). В противном случае на СчМК сохраняется адрес микрокоманды, расположенной вслед за исполняемой.

Когда на СчМК появляется адрес микрокоманды, с которой начинается какой-либо из машинных циклов (см. параграфы 2.5 и 3.3), изменяется информация на индикаторе состояний процессора. Эта информация изменяется и при переходе ЭВМ из состояния ОСТАНОВ в состояние ПРОГРАММА или обратном переходе.

Реализация любой адресной команды (впрочем, как и любой другой команды) завершается микрокомандой перехода к циклу прерывания (микрокоманды 8F — 98), где выясняется режим работы ЭВМ и, если машина находится в состоянии “ПРОГРАММА”, то проверяется, не требуется ли прервать выполнение программы по запросу внешнего устройства (см. параграф 3.5). Если не требуется, то осуществляется переход к началу микропрограммы (строка 01), т. е. к выборке новой команды интерпретируемой машины. В противном случае организуется переход к подпрограмме обработки прерываний.

Аналогичным образом обрабатываются безадресные команды, команды ввода-вывода и команды, задаваемые нажатием кнопок на пульте управления ЭВМ.

В системе команд базовой ЭВМ ряд кодов операций зарезервирован для включения новых команд. Это арифметическая команда 7ххх, команда перехода Dxxx и безадресные команды FCOO, FD00, FE00 или FF00. Когда при декодировании команды выясняется, что выбрана команда 7ххх, производится передача управления к строке В0. Следовательно, часть микропрограммы, описывающая последовательность микроопераций по реализации этой команды, должна начинаться со строки В0. Сюда можно записать, например, действия по умножению или делению операндов. Часть микропрограммы, реализующая дополнительные безадресные команды, начинается от строки Е0. Первые микрокоманды этой части должны осуществить декодирование выбранной команды (определить расширение кода операции: С, D, Е или F) и передать управление соответствующим микрокомандам нового куска микропрограммы. Так как память микрокоманд имеет 256 ячеек, то при составлении микропрограмм новых команд можно использовать лишь строки с номерами от AD до FF.

Заключение

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