Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Цифровая и микропроцессорная техника. Учебное пособие

.pdf
Скачиваний:
3
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
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.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]