Машинные циклы и синхронизация
Для запуска программы ЦПУ задает стартовый адрес, который показывает, где расположена первая инструкция программного кода. Точное время выполнения любой инструкции зависит от быстродействия микропроцессора, которые, независимо от типа, выполняют цикл выбор-исполнение для каждой инструкции. Новейшие процессоры выбирают нескольких инструкций и выстраивают их в виде очереди на исполнение. Это положительно влияет на эффективность и повышает быстродействие. В следующем описании указаны основные этапы выполнения машинных инструкций, что позволяет составить общее представление о работе компьютеров. Детали, касающиеся конкретного микропроцессора, можно найти в руководствах изготовителей.
Цикл выполнения любой инструкции начинается с помещения адреса ячейки в памяти, но которому расположен код следующей инструкции, на шину адреса. Дешифраторы адреса выбирают ИС, в которой находится адрес. Когда ЦПУ готов принять код операции, он активирует управляющую шину, подавая сигнал типа RD (чтение), который запускает выходные буферы схемы памяти с тремя состояниями, и на шину подается код операции. Когда импульс RD заканчивается, код операции запоминается в регистре инструкций внутри ЦПУ.
Система синхронизации и управления декодирует инструкцию и определяет, требует ли она операндов. Если да, то они выбираются из следующих ячеек памяти таким же образом, что и код операции. Когда все части инструкции переданы в ЦПУ, начинается выполнение инструкции: считывание величины из памяти или устройства ввода-вывода, инкрементирование величины во внутреннем регистре или запись величины из ЦПУ в память или выходной порт. Важно понимать, что в разные периоды во время выполнения цикла инструкции шина данных может содержать коды инструкций, информацию об адресе, величины данных, и иногда ничего не значащий «цифровой мусор». Для анализа имеющихся сигналов необходимо очень хорошо понимать синхронизацию микропроцессора. Для описания этого достаточно сложного процесса в 8 и 16-битовых шинах используются специальные временные диаграммы (рис. 9.6).
Рис. 9.6. Временная диаграмма шины микропроцессора
Вся 16-битовая шина адреса представлена на временной диаграмме одной линией. Участки, где линии параллельны, показывают, что состояние каждой из 16-ти адресных линий не изменяется. Реальная величина может быть показана в шестнадцатеричном виде в пространстве между двумя параллельными линиями. Место, где линии пересекаются на временной диаграмме, показывают, что один или более бит на этой шине изменили состояние, и на выход подается новая величина.
Шина данных образована восемью отдельными линиями, каждая из которых может иметь высокий, низкий или переменный уровень. Переменное состояние возникает тогда, когда все подключенные к шине приборы находятся в третьем состоянии с высоким импедансом (бездействуют). Это состояние с высоким импедансом представляется горизонтальной линией на среднем уровне между высоким и низким. Когда выходы включаются, временная диаграмма расширяется, показывая, что все 8 бит стабильны и имеют уровень высокий или низкий. Их величина в этом интервале может быть показана в виде шестнадцатеричного числа. Сигналы дешифратора ПЗУ и ОЗУ, которые идут к входам выбора ИМС, и сигналы линий RD и WD представляют собой однобитовые сигналы и выглядят, как и на всех остальных временных диаграммах.
Последовательность, которая представлена на временной диаграмме, следу-
1. ЦПУ выдает адрес ячейки памяти, содержащей операционный код инструкции.
2. Выход ПЗУ дешифратора адреса переходит на низкий уровень.
3. ЦПУ переводит линию RD на низкий уровень, разрешая выход схемы памяти.
4. Код операции от ПЗУ появляется на шине данных.
5. Кончается импульс RD, код инструкции запоминается в ЦПУ. ЦПУ теперь знает, что оно должен записать величину данных в указанный адрес ОЗУ.
6. Адрес ячейки памяти, куда должны быть записаны данные, выдается на шину адреса.
7. Дешифратор адреса активирует вход выбора RAM.
8. Данные для записи подаются ЦПУ на шину данных.
9. Линия WR переходит на НИЗКИЙ уровень при прохождении по ней импульса.
10. По фронту нарастания на линии WR данные записываются в память.
Теперь инструкция полностью выполнена и микропроцессор готов выбрать следующую.
Читать дальше