Шины и логические устройства с тремя состояниями
Микропроцессор использует три основных типа сигналов для связи с памятью и устройствами ввода/вывода: сигналы адреса, сигналы данных и управляющие сигналы. Вспомним, что в обычной микропроцессорной системе очень много различных областей памяти и устройств ввода/вывода, каждый их которых должен иметь свой адрес. Все эти устройства должны быть соединены общими линиями подачи сигналов, поступающих от процессора.
Группа проводников, которая используется для подачи сигналов одного типа, называется шиной. Существуют несколько подобных элементов.
Шина адреса состоит из 16-ти или более проводников, которые начинаются от ЦПУ и указывают, к какой ячейке памяти или к какому устройству ввода/вывода происходит обращение в настоящий момент.
Набор проводников, которые несут двоичную информацию кили от микропроцессора, — это шина данных. Количество проводников здесь обычно такое же, как и длина слова микропроцессора.
Шина управления несет информацию о времени и синхронизирует все операции периферийных устройств с работой ЦПУ. Число проводников и названия сигналов различаются в зависимости от типа микропроцессора и конкретного применения.
Рассмотрим проблему соединения нескольких ИМС памяти и устройств ввода-вывода с использованием одного набора из восьми линий передачи данных, как показано на рис. 9.5.
Рис. 9.5. Микрокомпьютерная система
Если каждый из выводов выхода данных ОЗУ, ПЗУ и ИМС ввода-вывода имеет два состояния (высокий и низкий), будет невозможно соединить устройства параллельно, как это показано на рисунке. Любой выходной контакт с низким уровнем может находиться в противоречии с выходными сигналами других ИМС, которые могут иметь высокий уровень. Для решения этой проблемы все приборы, подключаемые к шине, имеют специальные выходы с тремя состояниями: логический высокий уровень, логический низкий уровень, состояние высокого импеданса. Когда прибор с гремя состояниями не действует, его выходы находятся в третьем состоянии, что электрически равносильно полному удалению прибора их схемы. При запуске устройства, на выходные контакты подастся уровень ВЫСОКИЙ или НИЗКИЙ.
Шина адреса используется для определения, к какой именно ИМС происходит обращение в соответствии с текущим адресом, выдаваемым ЦПУ. Это очень похоже на то, как мы находим конкретный квартал в городе и нужное здание.
Старшие цифры указывают квартал, а младшие — дом. Аналогично, старшие биты адреса используются для выбора конкретной ИС, а младшие — определяют, к какой ячейке ИМС происходит доступ.
Адресная шина на рис. 9.5 представлена в виде «жгута» проводов, в котором неразличимы отдельные проводники. Это обычный метод изображения шин на диаграммах. Когда провод входит или отходит от жгута, он помечается своим номером, названием или символом идущего по нему сигнала.
Инструкции и машинный код
Теперь, когда некоторые основные аппаратные схемы описаны и даны определения многих терминов, мы можем начать рассматривать, как же в действительности работает микрокомпьютер. Понимание того, как должна функционировать система, что можно ожидать, абсолютно необходимо для правильной диагностики проблем. Чтобы заставить компьютер сделать нечто полезное, его надо запрограммировать, то есть организовать набор допустимых команд или инструкций, представляющих двоичный код, расположенный в памяти ЭВМ, которым должен следовать компьютер. Ест и машина работает только с данными длиной 8 бит, то код инструкции ограничен 8 битами и общее количество возможных инструкций не превышает 256 (2 8).
Полная инструкция состоит, по меньшей мере, из одного слова, которое называется кодом операции и представляет инструкцию для ЦПУ, в которые иногда включаются также величины данных или адреса, расположенные в памяти непосредственно после кода операции. Эти величины называются операндами. Код операции указывает задачу ЦПУ, а операнды — место назначения. Некоторые операции не требуют операндов, другие могут использовать одну или более ячеек памяти для хранения своих операндов.
Когда в память занесен полный список инструкций, они образуют программу в машинном коде. Машинный код — это единственный язык, который понимает компьютер. Каждый тип микропроцессора имеет свой уникальный язык машинных инструкций. Программисты используют обычно языки высокого уровня для организации инструкций, например BASIC и С. Компьютерная программа, называемая компилятор , переводит язык высокого уровня в машинный (двоичные 1 и 0). В любом случае информация, которая будет проходить по шинам, представляет собой только двоичные 1 и 0, образующие машинный код.
Читать дальше