Автор работы: Пользователь скрыл имя, 11 Января 2014 в 17:55, курс лекций
Работа содержит конспекты лекций по дисциплине "Микропроцессорные устройства".
Микрокомандный уровень управления рассматривается как последняя ступень детализации процесса управления операционными блоками на уровне элементарных действий. Каждой машинной команде соответствует микропрограмма - последовательность микрокоманд, выполнение которых приводит к выполнению операций, заданных командой. Микрокоманда управляет выполнением одной или нескольких микроопераций. В каждом такте работы микро-ЭВМ из ПМК в РМК пересылается очередная микрокоманда, адрес которой находится в РАМК. МПУУ состоит из двух основных блоков: ПМК и СФАМК. ПМК выполняется на основе ПЗУ или программируемых логических матриц (ПЛМ). Матрицы данных ПЗУ и ПЛМ совпадают. Различие существует только между дешифраторами адресов ПЗУ и ПЛМ.
Типов МК всего два. Существуют операционные (ОМК) и управляющие (УМК) микрокоманды. Их форматы показаны ниже.
Поскольку типов команд только два, достаточно однобитового кода операции, a=0 - для ОМК и a=1 - для УМК.
Операционные МК не содержат адресного поля поскольку за исполняемой ОМК будет выполняться следующая МК, т.е. адрес МК увеличивается на единицу (инкрементируется). За счет исключения поля адреса из ОМК уменьшается разрядность памяти ПМК. Подобным образом формируется адрес команды в счетчике команд (РС). Поэтому имеет место функциональная аналогия программного и микропрограммного уровней управления ЭВМ.
Управляющие МК используются для изменения последовательности выполнения МК в зависимости от тех или иных условий. Иными словами, для выполнения условных и безусловных переходов в микропрограмме используются УМК, содержащие адрес перехода и поле признаков. На рисунке 5 показан алгоритм выполнения микрокоманды в МПУУ.
Наибольший интерес в алгоритме представляют операции проверки условия и формирования адреса перехода в микропрограмме. Для пояснения процедуры проверки признаков получаемых результатов рассмотрим подробнее формат управляющей МК.
Биты с 17 по 20 указывают, какой регистр микропроцессора должен быть проверен:
бит 17 – регистр состояния (РС);
бит 18 – буферный регистр данных (РД);
бит 19 – регистр команд (РК);
бит 20 – аккумулятор (А).
Каждая УМК производит проверку лишь одного из битов заданного регистра. Каждая управляющая МК определяет 1 бит подлежащий проверке. Если выбранный бит и 16-й бит микрокоманды совпадают, то последовательность МК, подлежащих исполнению, изменяется и адрес следующей МК определяется битами с 8 по 15 самой УМК. Бит, который требуется проверить, определяется двумя полями МК: полем битов от 0 до 7 и от 17 до 20. Биты от 0 до 7 указывают, какой бит выбранного регистра подлежит проверке. Таким образом, только один бит с 0 по 7, и один бит с 17 по 20 должны быть равны единице.
Например, после увеличения на единицу содержимого аккумулятора командой JM (перейти по адресу если минус) надо проверить знак результата. Если 7-й разряд аккумулятора равен 1 (содержимое А меньше нуля ), то требуется перейти по новому адресу. В противном случае счётчик команд инкрементируется нормально, т.е. выполняется следующая за JМ команда.
Адрес перехода – это адрес, пересылаемый в счетчик МК при положительном результате сравнения.
Поле выбора бита представляет собой маску, которая операцией И закрывает все кроме одного разряды выбранного регистра МП. В данном примере в микропрограмме реализации команды JМ переход по адресу 8F осуществляется с помощью микрокоманды (918F80) .
Для организации безусловного перехода используется 3-й бит регистра состояния, содержащий константу 0. Сравнение этого разряда с константой 0 в 16-ом разряде УМК, всегда дает положительный результат и позволяет переслать в СчМК нужный адрес перехода. Формат МК показан ниже на рисунке 8.
В МПУУ при выполнении машинной команды поступает её код, который является адресом первой микрокоманды микропрограммы выполнения данной команды. Адреса последующих МК этой микропрограммы определяются СФАМК.
Существует два основных способа адресации МК: принудительная и естественная. В случае принудительной адресации в составе каждой считанной из ПМК микрокоманды находится поле адреса следующей МК. Этот способ адресации предоставляет широкие возможности по размещению МК в ПМК, однако при этом не исключается повторение МК, что приводит к нерациональному использованию памяти.
При естественной адресации адрес следующей МК образуется путём приращения адреса предыдущей МК. Блок СФАМК с инкрементным счетчиком показан ниже на рисунке 9.
Мультиплексор МС обеспечивает поступление на вход регистра адреса РАМК либо кода а с внешней магистрали, либо информации с выхода инкрементного счетчика микрокоманд (СчМК).
Перед выполнением команды на вход а от дешифратора команд поступает КОП, который является адресом первой МК микропрограммы выполнения данной команды. Содержимое СчМК увеличивается на единицу после исполнения очередной МК. Теперь адрес МК поступает от СчМК, а не со входа а. Переход к другой последовательности МК требует формирования на входе а начального адреса новой последовательности (машинной команды) и далее передачи управления СчМК.
Микропрограммное устройство управления МПУУ представляет собой простую интерпретирующую машину. Структура МПУУ схожа со структурой МП. Однако типов МК всего два и МПУУ есть очень простая ЭВМ. Схема работы МПУУ показана на рисунке 10.
При появлении тактового импульса из ПМК извлекается и загружается в РМК слово данных, на которое указывает СчМК, и к содержимому СчМК прибавляется единица. Таким образом, в начале такте выполнения МК в СчМК уже содержится адрес следующей МК. Если из ПМК извлечена ОМК, то в 23-м бите РМК будет нуль. Этот сигнал с помощью инвертора НЕ открывает вентильную схему ВС0, и через неё биты РМК как управляющие сигналы поступают в схемы МП. Разряды РМК, содержащие единицы, создают открывающий управляющий сигнал, а содержащие нули - закрывающий УС.
Если из памяти извлечена УМК, то в 23-м бите РМК содержится 1, которая открывает вентильную схему ВС1 и тем самым создает условия для исполнения УМК. При исполнении УМК по сигналу, создаваемому каким-либо битом поля выбора регистра (У ,….,У ) открывается одна из вентильных схем В ,……,В . Далее на вентили В ,…,В поступает через АЛУ содержимое соответствующего регистра. Одновременно на эти же вентили с РМК поступает содержимое поля выбора проверяемого бита. Так как в этом поле записана только одна единица, то открывается лишь один из вентилей (ключей) В ,…,В , через который на схему сравнения поступает содержимое проверяемого бита из выбранного регистра. На второй вход схемы сравнения поступает содержимое 16-го бита, в который при кодировании УМК записали 0 или 1.
Если проверяемый бит и бит сравнения одинаковы, то схема сравнения формирует единичный сигнал, который открывает вентильную схему ВА, и на СчМК пересылается адрес перехода (биты с 8 по 15). В противном случае на СчМК сохраняется адрес МК, расположенной в ПМК вслед за исполняемой.
В горизонтальных МК каждый бит управляет одной вентильной схемой. Микрокоманда с одним битом, приходящимся на одну вентильную схему, имеет горизонтальное кодирование. Единицы и нули, содержащиеся в МК, непосредственно поступают на ключевые элементы. Однако число вентильных схем может быть большим и горизонтальная МК окажется неприемлемо длинной. Такие МК требуют для своего хранения большой разрядности ПМК, что является основным недостатком горизонтального типа кодирования МК. Однако при горизонтальном кодировании МПУУ обладает большим быстродействием.
Другим подходом является вертикальное кодирование МК. В таком случае дополнительно требуется дешифратор микроопераций. Время выполнения МК увеличивается. Дешифратор представляет собой комбинационную схему с m входами и 2 выходами. Каждый выходной код дешифратора однозначно соответствует одной из 2 возможных комбинаций входных сигналов. В современных микро-ЭВМ широко используют двухуровневое кодирование МК. Количество различных по содержанию горизонтальных МК обычно невелико, но часть из них используется многократно. Это обстоятельство и большая длина таких МК привели к размещению в специальной дополнительной памяти (нанопамяти) только часто использующихся микрокоманд. Микропрограмма в этом случае состоит только из управляющих МК и адресов ячеек нанопамяти.
Так как количество ячеек нанопамяти невелико, то их адреса имеют малую разрядность, что позволяет уменьшить длину ячеек памяти микрокоманд, где размещаются такие адреса. Это существенно сокращает общий объём памяти МПУУ, несмотря на появления нового вида памяти - нанопамяти.
На рисунке 12. представлена структурная схема МПУУ с двухуровневым кодированием МК, в котором на первом уровне используется вертикальное кодирование, а на втором – горизонтальное. МК с вертикальным кодированием извлекается из ПМК. Поле кода микрооперация КМО является