Микропроцессор — функционально законченное устройство обработки информации, управляемое хранимой в памяти программой. Появление микропроцессоров (МП) стало возможным благодаря развитию интегральной электроники. Это позволило перейти от схем малой и средней степени интеграции к большим и сверхбольшим интегральным микросхемам (БИС и СБИС).
По логическим функциям и структуре МП напоминает упрощенный вариант процессора обычных ЭВМ. Конструктивно он представляет собой одну или несколько БИС или СБИС.
По конструктивному признаку МП можно разделить на однокристальные МП с фиксированной длиной (разрядностью) слова и определенной системой команд; многокристальные (секционированные) МП с наращиваемой разрядностью слова и микропрограммным управлением (они составляются из двух БИС и более).
В последнее время появились однокристальные МП с микропрограммным управлением.
Архитектура многокристального МП с микропрограммным управлением позволяет достичь гибкости в его применении и сравнительно простыми средствами организовать параллельное выполнение отдельных машинных операций, что повышает производительность ЭВМ на таких МП.
Несмотря на то что возможности многокристальных МП существенно выше, чем у однокристальных, многие прикладные задачи успешно решаются на основе использования однокристального микропроцессора.
В состав МП (рис. 10.1) входят арифметически-логическое устройство, устройство управления и блок внутренних регистров.
Арифметическо-логическое устройство состоит из двоичного сумматора со схемами ускоренного переноса, сдвигающего регистра и регистров для временного хранения операндов. Обычно это устройство выполняет по командам несколько простейших операций: сложение, вычитание, сдвиг, пересылку, логическое сложение (ИЛИ), логическое умножение (И), сложение по модулю 2.
Устройство управления управляет работой АЛУ и внутренних регистров в процессе выполнения команды. Согласно коду операции, содержащемуся в команде, оно формирует внутренние сигналы управления блоками МП. Адресная часть команды совместно с сигналами управления используется для считывания данных из определенной ячейки памяти или для записи данных в ячейку. По сигналам УУ осуществляется выборка каждой новой, очередной команды.
Блок внутренних регистров БВР, расширяющий возможности АЛУ, служит внутренней памятью МП и используется для временного хранения данных и команд. Он также выполняет некоторые процедуры обработки информации.
На рис. 10.2 приведена более подробная структурная схема однокристального МП. Здесь блок внутренних регистров содержит регистры общего назначения и специальные регистры: регистр- аккумулятор, буферный регистр адреса, буферный регистр данных, счетчик команд, регистры команд, стека, признаков.
Регистры общего назначения (РОН), число которых может изменяться от 4 до 64, в значительной мере определяют вычислительные возможности МП. Их основная функция — хранение операндов. Но они могут выполнять и роль специальных регистров. Все РОН доступны программисту, который их рассматривает как сверхоперативное запоминающее устройство.
Регистр-аккумулятор, обычно называемый просто аккумулятором (встречается также название «накопитель»), предназначен для временного хранения операнда или промежуточного результата арифметических и логических операций, производимых АЛУ. При выполнении какой-либо операции с двумя операндами в этом регистре содержится один из используемых операндов, а после выполнения операции — ее результат. Разрядность регистра равна разрядности информационного слова.
Буферный регистр адреса служит для приема и хранения адресной части исполняемой команды. Иначе говоря, адрес слова в нем содержится до выдачи на адресную шину. Возможное количество адресов, т. е. непосредственно адресуемых слов памяти, определяется разрядностью этого регистра. Так, в 16-разрядном регистре, изменяя значения разрядов двухбайтового слова, можно поместить любое из 216=65536 адресов ячеек (слов) памяти.
Буферный регистр данных используется для временного хранения выбранного из памяти слова перед выдачей его во внешнюю шину данных. Его разрядность определяется количеством байтов информационного слова.
Счетчик команд содержит адрес ячейки памяти, в которой помещены байты выполняемой команды. Обычно команды определенной программы находятся в последовательно расположенных ячейках памяти: число, указывающее адрес каждой последующей ячейки, на единицу больше числа, отмечающего адрес данной ячейки. Поэтому переход к следующей команде достигается увеличением числа, содержащегося в счетчике команд, на единицу. В ходе выполнения текущей команды, т. е. при передаче команды из памяти в МП, содержимое счетчика команд увеличивается на единицу и образуется адрес очередной команды. Если после данной команды требуется использовать команду, хранимую не в соседней, а в другой, например удаленной, ячейке памяти, то по сигналу УУ в счетчик команд заносится адрес удаленной ячейки.
Регистр команд принимает и хранит код очередной команды, адрес которой находится в счетчике команд. По сигналу УУ в него передается из регистра хранимая там информация.
Регистры стека делятся на стек и указатель стека. Название «стек» происходит от английского слова stack, что в дословном переводе означает штабель (дров), кипа (бумаг) и др. В МП стек представляет собой набор регистров, хранящих адреса команд возврата при обращении к подпрограммам или состояния внутренних регистров при обработке прерываний. Этот набор организован таким образом, что слово адреса или данных выбирается по принципу: «вошедший последним — выходит первым». При записи в стек очередного слова все находящиеся в нем слова сдвигаются на один регистр вниз. После выборки слова из стека-оставшиеся слова сдвигаются на один регистр вверх. Стек может быть выполнен не только на внутренних регистрах МП, составляя его часть, но и находиться в ОЗУ, занимая там выделенную для него зону. В последнем случае стек получается более глубоким, емким, однако для обращения к нему необходим специальный регистр — указатель стека.
Указатель стека хранит адреса последней занятой ячейки стека, которую называют вершиной. Содержащееся в указателе число указывает, где находится вершина стека. Когда в стек записывается очередное слово, то число в указателе стека соответственно увеличивается. Извлечение слова из стека сопровождается, наоборот, уменьшением числа, заполняющего указатель стека. Кроме такой процедуры предусматривается возможность считывания без разрушения содержимого любой ячейки стека при неизменном числе, хранимом в указателе стека.
Регистр признаков представляет собой набор триггеров — флажков. В зависимости от результатов операций, выполняемых АЛУ, каждый триггер устанавливается в состояние 0 или 1. Флажковые биты, определяющие содержимое регистра, индицируют условные признаки: нулевого результата, знака результата, переполнения и т. п. Эта информация, характеризующая состояние процессора, важна для выбора дальнейшего пути вычислений.
Рассмотрим более подробно основные части микропроцессора (рис. 10.2). Внутренняя шина данных соединяет между собой основные части МП. Шиной называют группу линий передачи информации, объединенных общим функциональным признаком. В микропроцессорной системе используются три вида шин: данных, адресов и управления.
Разрядность внутренней шины данных, т. е. количество передаваемых по ней одновременно (параллельно) битов числа, соответствует разрядности слов, которыми оперирует МП. Очевидно, что разрядность внутренней и внешней шин данных должна быть одной и той же. У восьмиразрядного МП внутренняя шина состоит из восьми линий, по которым можно передавать последовательно восьмиразрядные слова — байты. Следует иметь в виду, что по шине данных передаются не только обрабатываемые АЛУ слова, но и командная информация. Следовательно, недостаточно высокая разрядность шины данных может ограничить состав (сложность) команд и их число. Поэтому разрядность шины данных относят к важным характеристикам микропроцессора — она в большой мере определяет его структуру (числа разрядов указаны на рисунке в скобках рядом с названиями блоков).
Шина данных МП работает в режиме двунаправленной передачи, т. е. по ней можно передавать слова в обоих направлениях, но не одновременно. В этом случае требуется применение специальных буферных схем и мультиплексного режима обмена данными между МП и внешней памятью. Мультиплексный режим (от английского слова multiple—многократный, множественный), иногда называемый многоточечным,— режим одновременного использования канала передачи большим числом абонентов с разделением во времени средств управления обменом.
Мультиплексор — устройство, которое выбирает данные от одного, двух (или более) входных информационных каналов и подает эти данные на свой выход (рис. 10.3, а). Схема мультиплексора состоит из двухвходовых логических элементов И—ИЛИ, управляемых распределителем импульсов. Промышленностью выпускаются мультиплексоры, которые могут входить в состав МП, а также в виде отдельных БИС (например, восьмивходовый одноразрядный; двухвходовый четырехразрядный; трехвходовый четырехразрядный и др.).
Демультиплексор — устройство, выполняющее противоположную мультиплексору функцию,— подает данные, подводимые к его входу, на один (или более) выходной информационный канал (рис. 10.3,6).