Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Цифровая и микропроцессорная техника. Учебное пособие
.pdf
5.8. Организация конвейерной обработки команд в процессоре
выборки команд, как если бы условный переход был обычной
командой. Поведение конвейера выглядит так, как будто ничего
не происходит. Однако если условный переход на самом деле выполняется, то необходимо просто очистить конвейер от команд,
выбранных вслед за командой условного перехода, и заново повторить выборку команд.
Как только команда условного перехода декодирована и вычислен целевой адрес перехода, предполагается, что переход выполняемый, и осуществляется выборка команд и их выполнение,
начиная с целевого адреса. Если целевой адрес перехода неизвестен раньше, чем окончательное направление перехода, то у
этого подхода нет никаких преимуществ. Если бы условие перехода зависело от непосредственно предшествующей команды,
то произошла бы приостановка конвейера из-за конфликта по
данным для регистра, который является условием перехода, и
сначала стал бы известен целевой адрес. Дополнительно в некоторых машинах (особенно в машинах с устанавливаемыми по
умолчанию кодами условий или более мощным (а потому и более
медленным) набором условий перехода) целевой адрес перехода
известен раньше окончательного направления перехода, и схема
прогноза перехода как выполняемого имеет смысл.
В задержанном переходе такт выполнения с задержкой перехода длиною n есть:
команда условного перехода
следующая команда 1
следующая команда 2
.....
следующая команда n
целевой адрес при выполняемом переходе
Команды 1, 2, ...…, n находятся в слотах (временных интервалах) задержанного перехода. Задача программного обеспечения
заключается в том, чтобы сделать команды, следующие за командой перехода, действительными и полезными. Аппаратура гарантирует реальное выполнение этих команд перед выполнением
собственно перехода.
Проблемы реализации точного прерывания в конвейере. Обработка прерываний в конвейерной машине оказывается более
сложной из-за того, что совмещен ное вы полнение команд затрудняет определение возможности безопасного изменения состояния
151

Глава 5. Основы архитектуры микропроцессоров и микропроцессорных систем
машины произвольной командой. В конвейерной машине команда выполняется по этапам, и ее завершение осуществляется через
несколько тактов после выдачи для выполнения. В процессе выполнения отдельных этапов команда может изменить состояние
машины. Тем временем возникшее прерывание может вынудить
машину прервать выполнение еще незавершенных команд.
Как и в неконвейерных машинах двумя основными пробле-
мами при реализации прерываний являются:
• прерывания, возникающие в процессе выполнения неко-
торой команды;
• необходимость механизма возврата из прерывания для
продолжения выполнения программы.
Например, для простейшего конвейера прерывание по отсутствию страницы виртуальной памяти при выборке данных не
может произойти до этапа выборки из памяти. В момент возникновения этого прерывания в процессе обработки уже будут
находиться несколько команд. Поскольку подобное прерывание
должно обеспечить возврат для продолжения программы и требует переключения на другой процесс (операционную систему),
необходимо надежно очистить конвейер и сохранить состояние
машины таким, чтобы повторное выполнение команды после
возврата из прерывания осуществлялось при корректном состоянии машины. Обычно это реализуется путем сохранения адреса
команды, вызвавшей прерывание. Если выбранная после возврата из прерывания команда не является командой перехода, то
сохраняется обычная последовательность выборки и обработки
команд в конвейере. Если же это команда перехода, то следует
оценить условие перехода и в зависимости от выбранного направ ления начать выборку либо по целевому адресу команды перехода, либо следующей за переходом команды. При прерывании для
корректного сохранения состояния машины необходимо выполнить следующие шаги:
1) в последовательность команд, поступающих на обработку
в конвейер, принудительно вставить команду перехода на прерывание;
2) пока выполняется команда перехода на прерывание, погасить все требования записи, выставленные командой, вызвавшей
прерывание, а также всеми следующими за ней в конвейере командами. Эти действия позволяют предотвратить все изменения
152

5.8. Организация конвейерной обработки команд в процессоре
состояния машины командами, которые не завершились к моменту начала обработки прерывания;
3) после передачи управления подпрограмме обработки прерываний операционной системы она немедленно должна сохранить значение адреса команды, вызвавшей прерывание. Это значение будет использоваться позже для организации возврата из
прерывания.
При использовании механизмов задержанных переходов состояние машины невозможно восстановить с помощью одного
счетчика команд, так как в процессе восстановления команды в
конвейере могут оказаться непоследовательными. Если команда,
вызвавшая прерывание, находилась в слоте задержки перехода и
переход был выполненным, то необходимо заново повторить выполнение команд из слота задержки и команду, находящуюся по
целевому адресу команды перехода. Сама команда перехода уже
выполнилась, и ее повторения не требуется. При этом адреса команд из слота задержки перехода и целевой адрес команды перехода естественно не являются последовательными. Поэтому необходимо сохранять и восстанавливать несколько счетчиков команд,
число которых на единицу превышает длину слота задержки. Это
выполняется на третьем шаге обработки прерывания.
После обработки прерывания специальные команды осуществляют возврат из прерывания путем перезагрузки счетчиков
команд и инициализации потока команд. Если конвейер может
быть остановлен так, что команды, непосредственно предшествовавшие вызвавшей прерывание команде, завершаются, а следовавшие за ней могут быть заново запущены для выполнения, то
говорят, что конвейер обеспечивает точное прерывание. В идеале
команда, вызывающая прерывание, не должна менять состояние
машины, и для корректной обработки некоторых типов прерываний требуется, чтобы команда, вызывающая прерывание, не имела никаких побочных эффектов. Для других типов прерываний
(например, прерываний по исключительным ситуациям плавающей точки), вызывающая прерывание команда на некоторых
машинах записывает свои результаты еще до того момента, когда
прерывание может быть обработано. В этих случаях аппаратура
должна быть готовой для восстановления операндов-источников,
даже если местоположение результата команды совпадает с местоположением одного из операндов-источников.
153

Глава 5. Основы архитектуры микропроцессоров и микропроцессорных систем
Поддержка точных прерываний во многих системах является
обязательным требованием. В машинах со страничной организацией памяти или реализацией арифметической обработки в соответствии со стандартом IEEE средства обработки прерываний
должны обеспечивать точное прерывание целиком с помощью
аппаратуры либо некоторой поддержки со стороны программных
средств.
Необходимость реализации в машине точных прерываний
иногда оспаривается из-за некоторых проблем, которые осложняют повторный запуск команд. Повторный запуск сложен из-за
того, что команды могут изменить состояние машины еще до
того, как они гарантировано завершают свое выполнение. Гарантированное завершение команды называют фиксацией команды
или фиксацией результатов выполнения команды. Поскольку команды в конвейере могут быть взаимозависимыми, блокировка
изменения состояния машины может оказаться непрактичной,
если конвейер продолжает работать. Таким образом, по мере
увеличения степени конвейеризации машины возникает необходимость отката любого изменения состояния, выполненного до
фиксации команды. В таблице 5.2 показаны ступени конвейера
и причины прерываний, которые могут возникнуть на соответствующих ступенях при выполнении команд.
Таблица 5.2
Причины прерываний в простейшем конвейере
Ступень
конвейера
IF Ошибка при обращении к странице памяти при выборке
команды; невыровненное обращение к памяти;
нарушение защиты памяти
ID Неопределенный или запрещенный код операции
EX Арифметическое прерывание
MEM Ошибка при обращении к странице памяти при выборке
данных; невыровненное обращение к памяти; нарушение
защиты памяти
WB Отсутствует
154
Причина прерывания

5.8. Организация конвейерной обработки команд в процессоре
Контрольные вопросы и задания
1. Дайте определение понятий «микропроцессор», «микропроцессорная система».
2. Охарактеризуйте платы Arduino. Дайте определение понятия «скетч».
3. Охарактеризуйте главные функции скетча (setup() и loop()).
4. Перечислите и охарактеризуйте функции интерфейсов ввода/вывода
Arduino.
5. Дайте определение понятия «архитектура микропроцессора». Перечислите основные элементы микропроцессора и их назначение.
6. Перечислите и охарактеризуйте принципы построения процессоров
с точки зрения системы команд и способов адресации операндов (CISC и
RISC). Приведите их преимущества и недостатки.
7. Дайте определение понятия «интерфейс».
8. Дайте определение понятия «конвейер». Перечислите группы конфликтов и причины их возникновения. Приведите способы решения данных конфликтов.
9. Перечислите и охарактеризуйте основные этапы выполнения команд
центрального процессора.
10. Дайте определение понятия «прерывание», охарактеризуйте механизм
его обработки.
155

ЛИТЕРАТУРА
Волович, Г.И. Схемотехника аналоговых и аналогово-цифровых
электронных устройств / Г.И. Волович. М., 2005.
Галкин, В.И. Промышленная электроника и микроэлектроника :
пособие / В.И. Галкин, Е.В. Пелевин. М., 2006.
Пухальский, Г.И. Проектирование дискретных устройств на интегральных микросхемах / Г.И. Пухальский, Т.Я. Новосельцева.
М., 1990.
Титце, У. Полупроводниковая схемотехника : в 2 т. / У. Титце,
К. Шенк. М., 2008.
Угрюмов, Е.П. Цифровая схемотехника / Е.П. Угрюмов. 2-е изд.
СПб., 2007.
Хоровиц, П. Искусство схемотехники : пер. с англ. / П. Хоровиц,
У. Хилл. 2-е изд. М., 2014.
156

ОГЛАВЛЕНИЕ
Введение ............................................................................................3
Глава 1. Основы теории цифровых устройств ............................... 4
1.1. Системы счисления. Кодирование чисел ................................4
1.2. Булева алгебра (алгебра логики) .............................................12
Глава 2. Цифровые интегральные микросхемы ........................... 19
2.1. Общие сведения о цифровых интегральных
микросхемах .....................................................................................19
2.2. Интегральные микросхемы серии
транзисторно-транзисторной логики ............................................ 28
2.3. Интегральные микросхемы серии
транзисторно-транзисторной логики с диодом Шоттки .............31
2.4. Интегральные микросхемы серии
комплементарной структуры металл–оксид–
полупроводник и металл–диэлектрик–полупроводник .............32
2.5. Интегральные микросхемы серий
эмиттерно-связанной и инжекционной
интегральной логики ......................................................................34
Глава 3. Типовые элементы и узлы цифровой техники ..............40
3.1. Система логических элементов ...............................................40
3.2. Комбинационные схемы и цифровые
автоматы ...........................................................................................42
3.3. Импульсные генераторы на интегральных
микросхемах .....................................................................................46
3.4. Триггеры ....................................................................................51
3.5. Регистры ....................................................................................60
3.6. Счетчики ...................................................................................67
3.7. Дешифраторы и шифраторы ....................................................75
157

Оглавление
Глава 4. Специальные узлы и устройства
цифровой техники ..........................................................................82
4.1. Преобразователи кодов ............................................................82
4.2. Цифровые компараторы ..........................................................84
4.3. Сумматоры ................................................................................86
4.4. Арифметико-логические устройства .......................................89
4.5. Мультиплексоры и демультиплексоры ..................................92
Глава 5. Основы архитектуры микропроцессоров
и микропроцессорных систем ........................................................97
5.1. Типовая структура микропроцессорной системы .................97
5.2. Типовая архитектура микропроцессора ............................... 112
5.3. Интерфейс передачи данных UART ..................................... 119
5.4. Интерфейс передачи данных I2C ......................................... 124
5.5. Интерфейс передачи данных SPI ......................................... 127
5.6. Функции памяти .................................................................... 131
5.7. Система команд процессора .................................................. 135
5.8. Организация конвейерной обработки
команд в процессоре ..................................................................... 140
Литература ..................................................................................... 156
158

Учебное издание
Маляр Елизавета Владиславовна
Цифровая
и микропроцессорная
техника.
Учебное пособие
Редактор, технический редактор Е.В. Потапейко
Корректор И.В. Счеснюк
Дизайн обложки С.Л. Прокопцовой
Подписано в печать 08.07.2024. Формат 60×84/16.
Бумага офсетная. Цифровая печать.
Усл. печ. л. 9,33. Уч.-изд. л. 7,58.
Тираж 450 экз. Заказ 906.
Республиканский институт профессионального образования.
Свидетельство о государственной регистрации издателя, изготовителя,
распространителя печатных изданий № 1/245 от 27.03.2014.
Ул. К. Либкнехта, 32, 220004, Минск. Тел.: 374 41 00, 272 43 88.
Отпечатано в Республиканском институте
профессионального образования. Тел. 373 69 45.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
