Александр Микушин - Занимательно о микроконтроллерах стр 17.

Шрифт
Фон

В большинстве случаев быстродействие у RISC-процессоров выше, чем у CISC-процессоров. Тем не менее, при выборе процессора нужно принимать в расчет все параметры в целом. Нужно учитывать, что тактовая частота RISC-процессора может оказаться значительно ниже, чем у CISC-процессора (особенно если в нем применяются специальные меры по повышению производительности), разрядность команды может оказаться выше, чем у CISC-процессора (что чаще всего и бывает). В результате общий объем исполняемой программы для RISC-процессора, как правило, превышает объем подобной программы для CISC-процессора.

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

- аккумуляторные микропроцессоры;

- микропроцессоры с регистрами общего назначения.

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

В зависимости от типа операции команда может быть одноадресной, двухадресной или трехадресной.

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

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

Следующий признак, по которому классифицируются микропроцессоры, - это способ работы с системной памятью. По способу работы с системной памятью существует два основных принципа построения микропроцессоров:

- гарвардская архитектура;

- архитектура фон Неймана.

В гарвардской архитектуре принципиально различаются два вида памяти:

- память программ;

- память данных.

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

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

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

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

Ядро CISC-микропроцессора состоит из двух основных частей:

- операционного блока;

- блока микропрограммного управления.

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

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

Основным принципом работы любого цифрового устройства с памятью, в том числе и микропроцессора, является наличие цепи синхронизации CLK. Синхросигнал, как и цепь питания, подводится к любому регистру цифрового устройства. Схема одного из вариантов операционного блока приведена на рис. 4.19.

Александр Микушин - Занимательно о микроконтроллерах

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

В схеме, приведенной на рис. 4.19, явно просматривается, что отдельные биты микрокоманды (обозначены надписями внизу схемы) управляют различными элементами ОБ, поэтому их можно рассматривать независимо друг от друга. Такие группы битов называются полями микрокоманды. Кроме битов, управляющих арифметико-логическим устройством (АЛУ) и регистрами общего назначения (РОН), в микрокоманде есть биты, управляющие БМУ. Формат микрокоманды рассматриваемого процессора приведен на рис. 4.20. Результат выполнения микрокоманды записывается во внутренние регистры ОБ по сигналу синхронизации микропроцессора CLK.

Занимательно о микроконтроллерах

Рис. 4.20.Формат микрокоманды процессора

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

Для реализации аккумуляторного процессора необходимо один из регистров ОБ выделить в качестве аккумулятора АСС. Для хранения и декодирования выполняемой команды выделим 8-разрядный регистр, который назовем RI.

Для дальнейших рассуждений лучше иметь перед глазами временную диаграмму записи или чтения ОЗУ или чтения из ПЗУ. Можно воспользоваться временными диаграммами, приведенными на рис. 3.30 или 4.25.

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

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

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

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

В приведенной на рис. 4.19 схеме для того, чтобы получить 16-разрядный адрес используются два 8-разрядных регистра адреса, которые образуют 16-разрядную пару регистров. Теперь максимальное число, которое можно записать в этих двух регистрах, будет 65535, что во многих случаях достаточно для адресации программ и обрабатываемых ими данных. Для того чтобы различать регистры старшего и младшего байта регистра адреса, обозначим их как RA - старший байт и RA - младший байт.

То же самое можно сказать и про программный счетчик. Он тоже должен быть 16-разрядным. И для него тоже выделим два 8-разрядных регистра.

Для того чтобы различать регистры старшего и младшего байта программного счетчика, обозначим их как РСН - старший байт и PCL - младший байт. Это позволяет при помощи 8-разрядного АЛУ формировать 16-разрядный адрес очередной команды при помощи последовательной работы с младшим и старшим байтом адреса.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке