Операционный блок микропроцессора 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Операционный блок микропроцессора



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

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

Рис. 18.26. Временные диаграммы сигналов считывания однобайтных команд из памяти

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

Определим необходимую разрядность шины адреса. Так как в качестве примера мы выбрали восьмиразрядный микропроцессор, то и все регистры в этом процессоре восьмиразрядные. Максимальное беззнаковое число, которое можно записать в такой регистр — 255, но для большинства программ такого объема памяти недостаточно. Именно поэтому для хранения адреса обычно выделяют два регистра, что позволяет формировать шестнадцатиразрядный адрес. Максимальное число, которое можно записать в этих двух регистрах равно 65535, что во многих случаях достаточно для адресации программ и обрабатываемых ими данных.

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

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

Назовем выбранную пару регистров — регистром адреса (RA). Два регистра требуются для того, чтобы получить шестнадцатиразрядный адрес, а регистры в сверхоперативном ОЗУ — восьмиразрядные. Применение двух восьмиразрядных регистров позволяет образовать шестнадцатиразрядную пару регистров. Для того чтобы различать регистры старшего и младшего байта регистра адреса обозначим их как RAH — старший байт и RAL — младший байт.

Из временных диаграмм, приведенных на рис. 18.26 видно, что кроме адреса и собственно данных, для взаимодействия с оперативным запоминающим устройством нам потребуется сигнал чтения. В дальнейшем мы собираемся научиться работать с данными, а значит, кроме сигнала чтения (RD) нам потребуется еще и сигнал записи (WR). Для формирования этих сигналов воспользуемся подобным решением и выведем за пределы микросхемы выходы еще одного регистра сверхоперативного запоминающего устройства. Так как сигналы, которые будет формировать этот регистр, являются управляющими, то и регистр назовем регистром управления — CNTR.

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

               
            RD WR

Рис. 18.27. Формат регистра управления (CNTR)

Уточненный вариант структурной схемы одношинного операционного блока, способный выполнять поставленные выше задачи, показан на рис. 18.28. Давайте остановимся на особенностях этого варианта схемы подробнее.

Рис. 18.28. Операционный блок микропроцессора

В схеме расписано назначение каждого регистра сверхоперативного запоминающего устройства. Может показаться, что у этих регистров есть какие-то особенности, однако это не так. В момент проектирования операционного блока все регистры абсолютно одинаковы. Особенности появляются под действием микропрограммы. Мы просто договариваемся, что первые восемь регистров будут использоваться микропрограммой как регистры общего назначения. Далее, для работы микропроцессора нам нужен аккумулятор? Назначим следующий по порядку регистр сверхоперативного запоминающего устройства аккумулятором (ACC).

Для работы с микросхемами ОЗУ (или ПЗУ), в которых хранится программа, требуется специальный счетчик, который будет определять начальный адрес команд микропроцессора. Назовем это устройство программным счетчиком (PC). Программный счетчик, как и регистр адреса, должен быть шестнадцатиразрядным. Для его реализации выделим следующие два регистра сверхоперативного запоминающего устройства. Для того чтобы превратить их в счетчик команд, в процессе выполнения микропрограммы к их содержимому будем добавлять длину текущей команды и, тем самым, вычислять адрес следующей. Для того чтобы различать регистры старшего и младшего байта программного счетчика, обозначим их как PCH — старший байт и PCL — младший байт. Это позволяет при помощи восьмиразрядного АЛУ формировать 16-разрядный адрес очередной команды при помощи последовательной работы с младшим и старшим байтом адреса.

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

Для правильной работы микропрограммы нужно где-то помнить текущую команду. Назначим следующий по порядку регистр — регистром команд (RI), ну а остальные регистры сверхоперативного ОЗУ, изображенные на структурной схеме рис. 18.28 мы уже рассматривали ранее.

Следующее отличие данной схемы от рассмотренной ранее схемы одношинного операционного блока — это отсутствие триггера хранения признака переноса C. Этот триггер вошел в состав специального регистра операционного блока — PSW. Кроме данного триггера в этот регистр объединены триггер, хранящий знак обработанного числа N, триггер, хранящий признак переполнения результата OV, а также триггер хранения признака нулевого результата Z. Значение признака переполнения вычисляется при помощи операции исключающего ‘ИЛИ’ между признаком переноса и знаком числа. Содержимое регистра PSW в схеме, приведенной на рис. 18.28, передается в блок микропрограммного управления. Так как признаки, содержащиеся в регистре PSW, характеризуют результат операции, то по каждому из них может быть организовано ветвление программы.

Формат регистра состояния микропроцессора PSW приведен на рис. 18.29. При необходимости значение признака переноса C может быть подано на вход АЛУ PI блоком микропрограммного управления.

       
C N OV Z

Рис. 18.29. Формат регистра состояния PSW

В схеме, приведенной на рис. 18.28, сверху подведены линии, управляющие различными блоками операционного блока. Изменяя потенциалы на этих проводниках, можно выбирать операцию, которую выполнит операционный блок при поступлении очередного тактового импульса. Совокупность этих потенциалов называется микрокомандой. Если сразу же после поступления тактового импульса изменять микрокоманду, то операционный блок будет последовательно выполнять операции, заданные этой микрокомандой.

Теперь остановимся подробнее на формате микрокоманды. В схеме, приведенной на рис. 18.28, явно просматривается, что отдельные группы бит микрокоманды управляют различными элементами операционного блока, поэтому их можно рассматривать независимо друг от друга. Такие группы битов называются полями микрокоманды. Формат микрокоманды операционного блока, показанного на рис. 18.28, приведен на рис. 18.30. Общая длина микрокоманды в данном случае получилась равной 22 битам.

6 бит 4 бит 1 бит 1 бит 8 бит 1 бит 1 бит
АЛУ Адр. RG tmp1 tmp2 Const BUF in BUF out

Рис. 18.30. Формат микрокоманды операционного блока, изображенного на рис. 4.27

Теперь нерешенной осталась еще одна проблема — откуда же будут поступать на входы управления операционного блока микропроцессора микрокоманды? Устройство, которое формирует последовательность микрокоманд, подаваемую на операционный блок микропроцессора, называется блоком микропрограммного управления. Давайте остановимся на устройстве этого блока подробнее.



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 528; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.227.104.229 (0.011 с.)