Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
МИКРОПРОГРАММНОЕ УСТРОЙСТВО УПРАВЛЕНИЯ ⇐ ПредыдущаяСтр 6 из 6
Переход к исследованию работы микропрограммного устройства управления модели базовой ЭВМ осуществляется вхождением в меню (нажатием клавиш " Shift +F4" ) и выбором из меню режима " Работа с МПУ" (клавиши " стрелка вниз", " стрелка вверх" - для перемещения курсора и клавиша " Enter" - для выбора режима), после чего на экране появляется картинка, соответствующая рис. 3.1.
Микропрограммное управление вентильными схемами. Процесс выборки, дешифрации и выполнения команд ЭВМ состоит из последовательности элементарных операций (например, пересылка содержимого одного регистра в другой регистр или проверка определенного бита в каком-либо регистре). Для выполнения таких микроопераций, как правило, достаточно подать открывающий сигнал на одну или несколько вентильных схем, связывающих между собой два регистра, регистр и АЛУ и (или) перестраивающих АЛУ на выполнение заданной операции (сложения, логического умножения и т.п.). Требуемая последовательность сигналов на вентильные схемы ЭВМ вырабатывается ее устройством управления, связанным с тактовым генератором. Микропрограммное устройство управления (МПУ) базовой ЭВМ - это, в свою очередь, очень простая ЭВМ, для которой регистры и вентильные схемы процессора являются как бы устройствами ввода-вывода (рис. 3.2.). Программа работы такой ЭВМ называется микропрограммой, а ее команды, содержащие информацию об элементарных действиях, выполняемых в течение одного рабочего такта ЭВМ, - микрокомандами. В данном варианте реализации МПУ используется всего два типа микрокоманд - операционная и управляющая: Операционная микрокоманда (ОМК)
Управляющая микрокоманда
Микропрограмма хранится в постоянном запоминающем устройстве - памяти микрокоманд. В каждом такте работы ЭВМ из этой памяти в регистр микрокоманд (РМК) пересылается очередная микрокоманда, т. е. микрокоманда, на которую указывает счетчик микрокоманд (СчМК), одновременно выполняющий функции регистра адреса микрокоманд. Затем содержимое СчМК наращивается на единицу. Если из памяти микрокоманд выбрана операционная микрокоманда, то в 31-й бит РМК записывается 0. Этот сигнал через инвертор открывает вентильную схему ВРО и обеспечивает передачу на В0-В28 состояний соответствующих битов РМК (управляющих сигналов У0-У28). Разряды РМК, содержащие 1, создают открывающий управляющий сигнал, а содержащие 0 - закрывающий. Подобная структура микрокоманды, где каждый бит используется для создания отдельного управляющего сигнала, называется горизонтальной. Вентильные схемы В1, В2, В3 предназначены, соответственно, для передачи содержимого РД, РК, СК на правый вход АЛУ. Если все эти схемы закрыты (У1=У2=У3=0), то сигнал на правом входе АЛУ соответствует коду числа 0. Аналогично используются вентильные схемы В4, В5 и В6, позволяющие передать на левый вход АЛУ содержимое А, РС, клавишного регистра (КР) или кода числа 0. Управляющие сигналы У7-У10 перестраивают АЛУ на выполнение различных микроопераций. При У7=...=У10=0 в 17 разрядный буферный регистр АЛУ (БР) записывается сумма входных сигналов АЛУ; при У7=У8=У9=0 и У10=1 к такой сумме добавляется 1; при У7=У8=У10=0 и У9=1 в БР записывается результат логического умножения входных сигналов АЛУ; при У7=1 и (или) У8=1 можно получить аналогичные результаты, но для инверсных значений одного или двух входных сигналов. Рассмотрим несколько примеров операционных микрокоманд. 1. Для вычитания содержимого РД из содержимого А и записи результата в буферный регистр следует выполнить микрокоманду (0000 0000 0000 0000 0000 0101 0001 0010)2=(0000 0512)16, т.е. одновременно подать единичные управляющие сигналы на В1, В4, В8 и В10. Тогда к уменьшаемому прибавится обратный код вычитаемого и к этой сумме добавится единица, что эквивалентно суммированию уменьшаемого с дополнительным кодом вычитаемого. 2. Для вычитания 1 из содержимого аккумулятора надо выполнить микрокоманду (0000 0110)16, т.е. подать единичные управляющие сигналы на В4 и В8 и сложить содержимое А с обратным кодом числа 0 или (что то же самое) с дополнительным кодом числа -1. 3. Для увеличения на 1 содержимого СК надо выполнить микрокоманду (0000 0408)16, т.е. открыть В3 и В10. Вентильные схемы В11 и В12 позволяют записать в БР сдвинутое на один разряд вправо или влево содержимое аккумулятора. При этом " лишний" разряд БР заполняется содержимым регистра переноса С. Вентильные схемы В13-В15 используются для передачи в однобитные регистры C, N, Z признаков результата операции, выполненной в АЛУ: двух старших разрядов 17-ти битового БР (перенос и знак), а также выходного сигнала специальной схемы, который равен 1 лишь в том случае, когда содержимое БР равно 0. Управляющие сигналы У16 и У17 позволяют установить регистр С в 0 или 1 независимо от результата выполнения операции, сохраняемого на БР. Вентильные схемы В18-В22 позволяют переписать содержимое 16 или 11 младших разрядов БР в РА, РД, РК, СК и А соответственно. Вентильные схемы В23-В28 используются для организации обмена информацией между регистрами процессора и другими подсистемами ЭВМ (памятью и устройствами ввода-вывода). И, наконец, вентильная схема В0 используется для передачи сигнала прекращения выполнения программы (команда HLT). Если из памяти микрокоманд выбрана управляющая микрокоманда, то в 31-й бит РМК записывается единица (код операции УМК). Этот сигнал открывает вентильную схему ВР1 и тем самым создает условия для выполнения УМК. Теперь по сигналу, создаваемому каким-либо битом поля выбора проверяемого регистра (У1, У2, У4 или У5) открывается одна из вентильных схем В1, В2, В4 или В5 и на вентили ВВ0-ВВ15 поступает через АЛУ содержимое соответствующего регистра (РД, РК, А или РС). Одновременно на эти же вентили поступает с РМК содержимое поля выбора проверяемого бита. Так как в этом поле записана только одна 1 (на месте, соответствующем проверяемому биту), то открывается лишь один из вентилей ВВ0-ВВ15, через который на схему сравнения поступает содержимое проверяемого бита из проверяемого регистра. На другой вход этой схемы поступает содержимое однобитового поля сравнения (24 бит УМК), в которое при кодировании УМК записали 0 или 1. Если проверяемый бит и бит из поля сравнения идентичны, то схема сравнения формирует единичный сигнал, который открывает вентильную схему ВА и на СчМК пересылается адрес перехода (16-23 биты УМК). В противном случае на СчМК сохраняется адрес микрокоманды, расположенной вслед за исполняемой, так как после выборки текущей микрокоманды содержимое СчМК увеличивается на единицу. При организации разветвлений в микропрограмме используется содержимое регистра состояний, являющегося объединением однобитовых регистров признаков и состояний ЭВМ (табл. 3.1). Такое объединение сделано с целью формального уменьшения числа регистров, с которыми работает МПУ, что позволяет сократить разрядность УМК. На структурной схеме (рис. 3.2) РС изображен (для удобства описания ) в виде самостоятельного регистра, хотя его разряды лишь дублируют состояние регистров C, N, Z и.т.д.
Табл. 3.1
Рассмотрим две управляющие команды: 1. После увеличения на 1 содержимого РД в команде ISZ надо проверить знаковый разряд РД (разряд с номером 15). Если этот разряд равен 1 (содержимое < 0), то выполнение команды ISZ завершается. В противном случае необходимо прибавить 1 к содержимому СК, т.е. организовать пропуск команды, следующей за ISZ. Это разветвление (переход по адресу 8F) осуществляется с помощью микрокоманды (858F 8000)16, имеющей следующую структуру:
2. Для организации безусловного перехода (например, по тому же адресу 8F) используется 3-й бит регистра состояний, содержащий константу 0. Сравнение этого разряда с нулем, записанным в 24-й разряд УМК, всегда дает положительный результат и позволяет переслать в СчМК нужный адрес перехода. Микрокоманда, реализующая эту операцию, имеет вид: (828F 0008)16. Интерпретатор базовой ЭВМ Полный текст микропрограммы (интерпретатора команд) приведен в табл. 3.2. В столбце " Верт." приведены варианты укороченной кодировки микрокоманд - вертикальные микрокоманды. Эти микрокоманды состоят из полей, в которых закодированы требуемые наборы управляющих сигналов (рис.3.3). Для декодирования таких команд используются дополнительные устройства – дешифраторы. В модели базовой ЭВМ используется вариант интерпретатора с вертикальными микрокомандами. Первые микрокоманды интерпретатора служат для выборки команды из основной памяти (ОП) базовой ЭВМ и определения ее типа: адресная, безадресная или ввода-вывода. Для этого содержимое СК (в котором хранится адрес исполняемой команды) пересылается через БР в РА(СК -> БР и БР -> РА). Затем из ячейки ОП, на которую указывает РА, пересылается в РД команда, а содержимое СК увеличивается на единицу и пересылается в БР: ОП(РА) -> РД, СК + 1 -> БР. Далее содержимое БР, т.е. адрес следующей команды, пересылается из БР в СК, а код команды из РД в РК, после чего начинается дешифрация команды. Так как адресные команды (команды с кодами операций от 0 до D) обязательно содержат ноль в 15, 14 или 13-м бите, то проверкой этих битов РК можно выделить адресную команду и перейти к проверке ее 11 бита (бита вида адресации). Для разделения команд ввода-вывода (код операции Е) и безадресных команд (код операции F) достаточно проанализировать 12-й бит РК: если этот бит равен единице, то надо переходить к микрокомандам продолжения дешифрации безадресных команд, расположенных, начиная с адреса 5Е (метка БАД). В комментариях микрокоманда анализа 12-го бита записана в виде:
IF BIT(12, PK)=1 THEN БАД(5Е). В памяти микрокоманд нет полных микропрограмм для адресных команд с кодами операций 7 и D, а также для безадресных команд FC00, FD00 и FF00. Когда при декодировании команды выясняется, что выбрана команда 7ххх, управление передается ячейке с адресом В0. Начиная с этой ячейки могут располагаться микрокоманды какой-либо новой арифметической команды (например, умножения). Для микропрограмм реализации команды перехода и безадресных команд выделены участки памяти микрокоманд с начальными адресами D0 и Е0.
Операционная микрокоманда (ОМК0)
Операционная микрокоманда (ОМК1)
Рис. 3.3
Управляющая микрокоманда
Рис. 3.3 (продолжение).
Таблица 3.2. Интерпретатор базовой ЭВМ
Продолжение таблицы 3.2
Продолжение таблицы 3.2
Продолжение таблицы 3.2
Продолжение таблицы 3.2
Домашнее задание Расширение системы команд базовой ЭВМ Цель задания - изучение микрокоманд базовой ЭВМ, микропрограмм выполнения отдельных команд, а также овладение навыками составления микропрограмм для новых команд. Часть 1. Написать последовательность адресов микрокоманд, которые должны быть выполнены при реализации заданного фрагмента программы, начинающегося с команды, расположенной по адресу 002 (предполагается, что регистр переноса и аккумулятор предварительно очищены).
Результаты сводятся в таблицу вида:
Популярное:
|
Последнее изменение этой страницы: 2016-03-17; Просмотров: 1478; Нарушение авторского права страницы