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

* * *

Подробности

В первых моделях микропроцессоров (включая и интеловские процессоры для ПК — от 8086 до 80386) процессор выполнял команды строго последовательно: загрузить команду, определить, что ей нужны операнды, загрузить эти операнды (по адресу регистров, которые их должны содержать, — адреса эти, как правило, хранятся сразу после собственно кода команды или определены заранее), потом проделать нужные действия, складировать результаты… До нашего времени дошла архитектура суперпопулярных еще недавно микроконтроллеров 8051, выпускающихся и по сей день различными фирмами (Atmel, Philips), которые выполняли одну команду аж за 12 тактов (в некоторых современных аналогах, впрочем, это число меньше). Для ускорения работы стали делить такты на части (например, срабатывать по переднему и заднему фронтам), но действительный прорыв произошел с внедрением конвейера. Со времен Генри Форда известно, что производительность конвейера зависит только от времени выполнения самой длинной операции, — если поделить команды на этапы и выполнять их одновременно разными аппаратными узлами, то можно добиться существенного ускорения (хотя и не во всех случаях). В рассматриваемых далее микроконтроллерах Atmel AVR конвейер двухступенчатый: когда очередная команда загружается и декодируется, предыдущая уже выполняется и пишет результаты. В AVR это позволило выполнять большинство команд за один такт (кроме команд ветвления программы).

* * *

Главное устройство в МП, которое связывает все узлы в единую систему, — внутренняя шина данных. По ней все устройства обмениваются сигналами. Например, если МП требуется обратиться к внешней дополнительной памяти, то при исполнении соответствующей команды на шину данных выставляется нужный адрес, от устройства управления поступает через нее же запрос на обращение к нужным портам ввода/вывода. Если порты готовы, адрес поступает на выходы портов (т. е. на соответствующие выводы контроллера), затем по готовности принимающий порт выставляет на шину принятые из внешней памяти данные, которые загружаются в нужный регистр, после чего шина данных свободна. Для того чтобы все устройства не мешали друг другу, все это строго синхронизировано, при этом каждое устройство имеет, во-первых, собственный адрес, во-вторых, может находиться в трех состояниях: работать на ввод, на вывод или находиться в третьем состоянии, не мешая другим работать.

Под разрядностью МП обычно понимают разрядность чисел, с которыми работает АЛУ, соответственно, такую же разрядность имеют и рабочие регистры. Например, все ПК-процессоры от i386 до последних инкарнаций Pentium были 32-разрядными, большинство последних моделей от Intel и AMD относятся уже к 64-разрядным. Большинство микроконтроллеров общего назначения — 8-разрядные, но все большую популярность приобретают 32-разрядные, обладающие принципиально большими возможностями при практически той же цене. Интересно, что развитие промежуточной ветви 16-разрядных контроллеров практически остановилось ввиду нецелесообразности.

* * *

Заметки на полях

Обычно тактовая частота универсальных МК невелика (хотя инженеру 1980-х, когда ПК работали на частотах не выше 6 МГц, она показалась бы огромной) — порядка 8-16 МГц, иногда до 20 МГц или несколько более. И это всех устраивает — дело в том, что обычные МК и не предназначены для разработки быстродействующих схем. Если требуется быстродействие, то используется другой класс интегральных схем — ПЛИС, «программируемые логические интегральные схемы» (английское название самой популярной сейчас их разновидности — FPGA, field-programmable gate array). Простейшая ПЛИС представляет собой набор никак не связанных между собой логических элементов (наиболее сложные из них могут включать в себя и некоторые законченные узлы, вроде триггеров и генераторов), которые в процессе программирования такого чипа соединяются в нужную схему. Комбинационная логика работает гораздо быстрее тактируемых контроллеров, и для построения сложных логических схем в настоящее время применяют только ПЛИС, от использования дискретных элементов («рассыпухи») в массовых масштабах уже давно отказались. Еще одно преимущество ПЛИС — статическое потребление энергии для некоторых серий составляет единицы микроватт, в отличие от МК, которые во включенном состоянии потребляют достаточно много (если не находятся в режиме энергосбережения). В совокупности с более универсальными и значительно более простыми в обращении, но менее быстрыми и экономичными микроконтроллерами, ПЛИС составляют основу большинства массовых электронных изделий, которые вы видите на прилавках. В этой книге мы, конечно, рассматривать ПЛИС не будем — в любительской практике, в основном из-за дороговизны соответствующего инструментария и высокого порога его освоения, они не используются, а для конструирования одиночных экземпляров приборов даже для профессиональных применений их использовать нецелесообразно.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату