Основы микропроцессорной техники

Раздел 1. Фиософия микропроцессорной техники


«Структура курса | Раздел 1 | Раздел 2 | Раздел 3 | Раздел 4 | Раздел 5 | Раздел 6 | Раздел 7 | Глава 8 | Дополнения

Раздел 1 - Страницы: 1 | 2 | 3 | 4 | »

В этом разделе рассматриваются базовые концепции, которые лежат в основе любой микропроцессорной системы - от самого простого микроконтроллера к сложному компьютера. Именно в этом смысле здесь используется термин «философия».

Для начала несколько основных определений.

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

Микропроцессорная система может рассматриваться как частный случай электронной системы, предназначенной для обработки входных сигналов и выдачи выходных сигналов (Рис. 1.1). В качестве входных и выходных сигналов при этом могут использоваться аналоговые сигналы, одиночные цифровые сигналы, цифровые коды, последовательности цифровых кодов. Внутри системы может происходить сохранения, накопления сигналов (или информации), но суть от этого не меняется. Если система цифровая (а микропроцессорные системы относятся к разряду цифровых), то входные аналоговые сигналы преобразуются в последовательности кодов выборок с помощью АЦП, а выходные аналоговые сигналы формируются из последовательности кодов выборок с помощью ЦАП. Обработка и хранение информации происходит в цифровом виде.

Характерной чертой традиционной цифровой системы является то, что алгоритмы обработки и хранения информации в ней жестко связаны со схемотехникой системы. То есть изменение этих алгоритмов возможна только путем изменения структуры системы, замены электронных узлов, входящих в систему, и / или связей между ними. Например, если нам потребуется дополнительная операция сложения, то необходимо добавить в структуру системы лишний сумматор. Или если нужна дополнитель ая функция сохранения кода в течение одного такта, то мы должны добавить в структуру еще один регистр. Естественно, что это практически невозможно сделать в процессе эксплуатации, обязательно нужен новый производственный цикл проектирования, изготовления, наладки всей системы. Именно поэтому традиционная цифровая система часто называется системой на "жесткой логике".

Электронная система.
Рис. 1.1. Электронная система.

Любая система на "жесткой логике" обязательно является специализированной систему, настроенную исключительно на одну задачу или (реже) на несколько близких, заранее известных задач. Это имеет свои неоспоримые преимущества:

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

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

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

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

Программируемая (она же универсальная) электронная система.
Рис. 1.2. Программируемая (она же универсальная) электронная система.

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

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

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

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

1.1. Что такое микропроцессор?

Ядром любой микропроцессорной системы является микропроцессор или просто процессор (от английского processor). Перевод на украинский язык это слово правильнее всего как "обработчик", потому что именно микропроцессор - это тот узел, блок, который делает всю обработку информации внутри микропроцессорной системы. Другие узлы выполняют всего лишь вспомогательные функции: сохранение информации (в том числе и управляющей информации, то есть программы), связи с внешними устройствами, связи с пользователем и т.д. Процессор заменяет практически всю "жесткую логику", которая потребовалась бы в случае традиционной цифровой системы. Он выполняет арифметические функции (сложение, умножение и т.д.), логические функции (сдвига, сравнения, маскировки кода и др.), временное хранение кодов (во внутренних регистрах), пересылка кодов между узлами микропроцессорной системы и многое другое. Количество таких элементарных операций, выполняемых процессором, может достигать нескольких сотен. Процессор можно сравнить с мозгом системы.

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

Информационные потоки в ми
ропроцессорной системе.
Рис. 1.3. Информационные потоки в микропроцессорной системе.

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

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

Для выполнения команд в структуру процессора входят внутренние регистры, арифметико-логическое устройство (АЛУ, ALU - Arithmetic Logic Unit), мультиплексоры, буферы, регистры и другие узлы. Работа всех узлов синхронизируется общим внешним тактовым сигналом процессора. То есть процессор является довольно сложным цифровым устройством (Рис. 1.4).

Пример структуры простейшего процессора.
Рис. 1.4. Пример структуры простейшего процессора.

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


«Структура курса Раздел 1 - Страницы: 1 | 2 | 3 | 4