Вы находитесь на странице: 1из 272

Основы информационных технологий

В. В. Гуров

АРХИТЕКТУРА
МИКРОПРОЦЕССОРОВ
Учебное пособие

Интернет-Университет БИНОМ.
Информационных Технологий Лаборатория знаний
www.intuit.ru www.lbz.ru

Москва
2010
У Д К [004.2:004.318](075.8)
Б Б К 32.973.26-02я73-1
Г95

Гуров В. В.
Г95 Архитектура микропроцессоров: Учебное пособие / В.В. Гуров —
М.: Интернет-Университет И н ф о р м а ц и о н н ы х Технологий: Б И Н О М .
Л а б о р а т о р и я з н а н и й , 2010. — 272 с.: ил., табл. — (Основы информа¬
ц и о н н ы х технологий).

I S B N 978-5-9963-0267-3

Рассматривается архитектура микропроцессоров различных типов: универсаль­


ных CISC- и RISC-микропроцессоров, однокристальных микроконтроллеров, про­
цессоров цифровой обработки сигналов, а также принципы построения микропро­
цессорных систем, включая многопроцессорные конфигурации.
В пособии представлены как базовые понятия микропроцессорной техники
(организация адресного пространства, система прерываний, кэш-память, конвейер,
аппаратные средства защиты информации, мультипрограммирование, M M X - и SSE-
обработка), так и особенности архитектуры новейших образцов микропроцессоров.
Знание этого материала закладывает фундамент для освоения таких ключевых
вопросов в сфере информационных технологий, как системное и прикладное про¬
граммирование, операционные системы, информационная безопасность, интерфей¬
сы и многие другие.
Рекомендуется студентам высших учебных заведений, обучающихся по различ­
ным специальностям в области вычислительной техники.

УДК [004.2:004.318](075.8)
ББК 32.973.26-02я73-1

Полное или частичное воспроизведение или размножение каким-либо способом,


в том числе и публикация в Сети, настоящего издания допускается только
с письменного разрешения Интернет-Университета
Информационных Технологий.

По вопросам приобретения обращаться:


«БИНОМ. Лаборатория знаний»
Телефон (499) 157-1902, (499) 157-5272,
e-mail: binom@lbz.ru, http://www.lbz.ru

© Интернет-Университет
Информационных
Технологий,2010
© БИНОМ. Лаборатория
2 0 1 0
ISBN 978-5-9963-0267-3 rimmd^
О проекте

Интернет-Университет И н ф о р м а ц и о н н ы х Технологий — это первое


в России высшее учебное заведение, которое предоставляет возможность
получить дополнительное образование во Всемирной сети. Web-сайт у н и ­
верситета находится п о адресу www.intuit.ru.
М ы рады, что вы решили расширить свои знания в области к о м п ь ю ­
терных технологий. Современный м и р — это м и р компьютеров и и н ф о р ­
мации. Компьютерная индустрия — самый быстрорастущий сектор э к о н о ­
м и к и , и ее рост будет продолжаться еще долгое время. Во времена жесткой
конкуренции от уровня развития и н ф о р м а ц и о н н ы х технологий, достиже¬
н и й научной мысли и перспективных инженерных решений зависит успех
не только отдельных людей и компаний, н о и целых стран. Вы выбрали са¬
мое подходящее время для изучения компьютерных дисциплин. Профес¬
сионалы в области и н ф о р м а ц и о н н ы х технологий сейчас востребованы
везде: в науке, экономике, образовании, медицине и других областях, в го­
сударственных и частных компаниях, в России и за рубежом. Анализ д а н ­
ных, прогнозы, организация связи, создание программного обеспечения,
построение моделей процессов — вот далеко н е полный список областей
применения знаний для компьютерных специалистов.
Обучение в университете ведется п о собственным учебным планам,
разработанным ведущими р о с с и й с к и м и специалистами на основе между¬
народных образовательных стандартов Computer Curricula 2001 Computer
Science. Изучать учебные курсы м о ж н о самостоятельно п о учебникам или
на сайте Интернет-Университета, задания выполняются только н а сайте.
Для обучения необходимо зарегистрироваться н а сайте университета.
Удостоверение об о к о н ч а н и и учебного курса и л и специальности выдает¬
ся п р и условии выполнения всех заданий к л е к ц и я м и успешной сдачи
итогового экзамена.
К н и г а , которую в ы держите в руках, — очередная в м н о г о т о м н о й
серии «Основы и н ф о р м а ц и о н н ы х технологий», выпускаемой И н т е р н е т -
Университетом И н ф о р м а ц и о н н ы х Технологий. В этой серии будут вы¬
п у щ е н ы учебники п о всем базовым областям з н а н и й , с в я з а н н ы м с ком¬
пьютерными дисциплинами.

Добро пожаловать в
Интернет-Университет Информационных Технологий!

Анатолий Шкред
anatoli@shkred.ru
Об а в т о р е

Гуров Валерий Валентинович


Кандидат технических наук. Доцент М И Ф И , заместитель декана фа­
культета «Кибернетика». Автор ряда новых лекционных курсов и лабора¬
торных практикумов по м и к р о п р о ц е с с о р н ы м системам, организации
Э В М , защите информации. Основная область интересов — надежность
программного обеспечения, а также разработка компьютерных обучающих
программ и систем компьютерного тестирования. Автор свыше 70 печат­
ных научных и учебно-методических работ. На протяжении более 15 лет
читает лекции на различных факультетах и в институтах М И Ф И и М Ф Т И .

4
Лекции

Лекция 1. Микропроцессор и его архитектура 11


Лекция 2. Регистровая структура универсального
микропроцессора 28
Лекция 3. Физическая и логическая организация
адресного пространства 37
Лекция 4. Организация и п р и н ц и п ы работы к э ш - п а м я т и 65
Лекция 5. Аппаратные средства защиты и н ф о р м а ц и и
в микропроцессоре 78
Лекция 6. Мультипрограммный режим работы
микропроцессора 87
Лекция 7. П р е р ы в а н и я и особые случаи 99
Лекция 8. Структура микропроцессорной системы 110
Лекция 9. Конвейерная организация работы микропроцессора . . . . 121
Лекция 10. Структура и особенности архитектуры
микропроцессора Pentium 4 135
Лекция 11. Основные направления развития архитектуры
универсальных микропроцессоров 146
Лекция 12. М и к р о п р о ц е с с о р ы с RISC-архитектурой 156
Лекция 13. Многопроцессорные и м н о г о м а ш и н н ы е
вычислительные системы 165
Лекция 14. Архитектура однокристального микроконтроллера 178
Лекция 15. Построение микропроцессорных систем на основе
однокристальных микроконтроллеров.
Тенденции развития однокристальных
микроконтроллеров 202
Лекция 16. Процессоры ц и ф р о в о й обработки сигналов 216
Лекция 17. Методы и средства отладки микропроцессорных
систем 238
Лекция 18. Методы и средства оценки производительности
микропроцессоров и микропроцессорных систем 257

5
Содержание

Предисловие 9

Лекция 1. Микропроцессор и его архитектура 11


О с н о в н ы е понятия и характеристики
архитектуры микропроцессоров 11
Этапы развития архитектуры универсальных
микропроцессоров 18
Структура 32-разрядного универсального микропроцессора . . . . 24

Лекция 2. Регистровая структура универсального


микропроцессора 28
О с н о в н ы е ф у н к ц и о н а л ь н ы е регистры 28
Регистры процессора с плавающей точкой 31
Системные регистры 34
Регистры отладки и тестирования 35

Лекция 3. Физическая и логическая организация


адресного пространства 37
Логическое адресное пространство 37
Ф о р м и р о в а н и е физического адреса
в универсальном микропроцессоре
при различных режимах работы 38
Структура кода команды и ф о р м и р о в а н и е
с м е щ е н и я в сегменте 44
Сегментная организация памяти
в з а щ и щ е н н о м режиме 47
Страничная организация памяти 53
Буфер ассоциативной трансляции
страничного адреса 60

Лекция 4. Организация и п р и н ц и п ы работы к э ш - п а м я т и 65


Общие принципы функционирования кэш-памяти 65
Типы к э ш - п а м я т и 67
Организация внутренней к э ш - п а м я т и
микропроцессора 70
Обеспечение согласованности к э ш - п а м я т и
микропроцессоров в мультипроцессорных системах 73
6
Лекция 5. Аппаратные средства защиты и н ф о р м а ц и и
в микропроцессоре 78
Использование шлюзов вызова 82

Лекция 6. Мультипрограммный режим работы


микропроцессора 87
Переключение задач 94

Лекция 7. Прерывания и особые случаи 99


П о р я д о к обработки прерываний 100
Контроллер приоритетных прерываний 104

Лекция 8. Структура микропроцессорной системы 110


П р я м о й доступ к памяти 114
Назначение и ф у н к ц и и чипсета
в микропроцессорной системе 118

Лекция 9. Конвейерная организация работы микропроцессора . . . . 121


Оценка производительности идеального конвейера 122
К о н ф л и к т ы в конвейере и способы м и н и м и з а ц и и
их в л и я н и я на производительность процессора 123

Лекция 10. Структура и особенности архитектуры


микропроцессора Pentium 4 135

Лекция 11. Основные направления развития архитектуры


универсальных микропроцессоров 146
Архитектура микропроцессора Itanium 152

Лекция 12. Микропроцессоры с RISC-архитектурой 156

Лекция 13. Многопроцессорные и м н о г о м а ш и н н ы е


вычислительные системы 165
Транспьютеры 174

Лекция 14. Архитектура однокристального микроконтроллера 178


Структура микроконтроллера М К - 5 1 178
Организация памяти 180
Система команд 183
Основные ф у н к ц и о н а л ь н ы е блоки
микроконтроллера М К - 5 1 188
Б л о к таймеров/счетчиков 192
Организация ввода-вывода и н ф о р м а ц и и
в микроконтроллере 197
7
Лекция 15. Построение микропроцессорных систем на основе
однокристальных микроконтроллеров.
Тенденции развития однокристальных
микроконтроллеров 202
П р и н ц и п ы организации взаимодействия
микропроцессора с в н е ш н и м и устройствами 202
Тенденции развития однокристальных
микроконтроллеров 212

Лекция 16. Процессоры ц и ф р о в о й обработки сигналов 216


Ц и ф р о в о й сигнальный процессор A D S P BF561 234

Лекция 17. Методы и средства отладки микропроцессорных


систем 238
Особенности контроля и отладки М П С на различных
этапах ж и з н е н н о г о цикла 242
Внутрисхемный эмулятор 245
Платы развития 247
ПЗУ-мониторы 247
Эмулятор П З У 248
Логический анализатор 249
Сигнатурный анализатор 250
JTAG-эмулятор 251
Средства разработки и отладки программного
обеспечения 253
Комплексная отладка микропроцессорных систем 255

Лекция 18. Методы и средства о ц е н к и производительности


микропроцессоров и микропроцессорных систем 257
MIPS и MFLOPS 258
Тестовые программы 259
Оценка производительности сигнальных процессоров 263

Список с о к р а щ е н и й 268

Литература 270

8
Предисловие

Предисловие

Если бы автомобилестроение развива­


лось со скоростью полупроводниковой про­
мышленности, то сегодня «Ролс Ройс» стоил
бы 3 доллара, мог бы проехать полмиллиона
миль на одном галлоне бензина и было бы де¬
шевле его выбросить, чем платить за пар­
ковку.
Гордон Мур,
председатель Совета директоров
ф и р м ы Intel

В настоящее время микропроцессоры применяются практичес-ки


повсеместно — от бытового оборудования до суперкомпьютеров. Р а с ш и ­
рение областей их п р и м е н е н и я привело к появлению различных направ­
л е н и й в развитии архитектуры микропроцессоров. Универсальные микро­
процессоры предназначены для р е ш е н и я задач ц и ф р о в о й обработки раз¬
личного типа и н ф о р м а ц и и от инженерных расчетов до работы с базами
данных и обработки мультимедийной и н ф о р м а ц и и , н е связанных жёст­
к и м и ограничениями на время в ы п о л н е н и я задания. В то ж е время их и с ­
пользование для построения к а к о й - л и б о , даже простейшей, системы у п ­
равления чрезвычайно затруднено. Это потребует п р и м е н е н и я большого
количества дополнительных устройств от памяти различного типа до кон¬
троллеров прерываний и таймеров.
В настоящее время две трети выпускаемых микропроцессорных
Б И С используется в устройствах управления, к а к п р о м ы ш л е н н ы х , так и
бытовых. К а к правило, для этого используется микропроцессоры нового
класса — однокристальные микроконтроллеры. О н и обладают возможнос¬
тями реализации системы управления м и н и м а л ь н о й конфигурации толь­
ко за счёт своих внутренних ресурсов, расположенных непосредственно в
Б И С : памяти к о м а н д и д а н н ы х , контроллеров п р е р ы в а н и й , тайме¬
ров/счетчиков, большого количества разнообразных портов ввода/выво¬
да, включая аналоговые. В то ж е время о н и обычно н е содержат средств
для высокопроизводительных вычислений. В них, к а к правило, отсутст­
вуют блоки в ы п о л - н е н и я операций с плавающей точкой, MMX-обработ-
ки. М и к р о к о н т р о л л е р ы обладают достаточно простой системой команд,
использующей только основные р е ж и м ы адресации, работают на отно¬
сительно н и з к о й тактовой частоте.
Промежуточное положение между этими двумя классами м и к р о п р о ­
цессоров занимают процессоры цифровой обработки сигналов (Digital Signal
Processor — D S P ) . Уникальные особенности их архитектуры, включающие

9
Курс Архитектура микропроцессоров

как систему команд, так и аппаратные р е ш е н и я , обеспечивают высокую


производительность обработки в реальном времени аналоговых сигна¬
лов, пред-ставленных в ц и ф р о в о й форме.
Развитие микропроцессорной техники идет чрезвычайно быстрыми
темпами. Согласно эмпирическому закону Мура, количество транзисто¬
ров на кристалле, а вместе с этим и ф у н к ц и о н а л ь н ы е возможности мик¬
ропроцессоров, удваиваются каждые 18 месяцев. За последнее время
только у наиболее известной в этом сегменте р ы н к а ф и р м ы Intel появи¬
лось более 20 новых моделей микропроцессоров. Рассмотрение особен¬
ностей работы каждой из них не представляется возможным, да и не я в ­
ляется необходимым.
Цель данного пособия заключается в том, чтобы рассмотреть о с н о в ­
н ы е п р и н ц и п ы построения микропроцессоров различных типов и систем
на их основе, отразить этапы развития их архитектуры, а также состояние
в этой области на момент подготовки книги к изданию.
В силу быстрого прогресса данного направления вычислительной
техники, и н ф о р м а ц и я по современному этапу ее развития не имеет адек­
ватного отражения в каких-либо печатных изданиях. Поэтому соответст­
вующие фрагменты представляемого материала базируются на открытых
интернет-источниках. Н е имея возможности привести все соответствую¬
щ и е ссылки в д а н н о м учебном пособии, выражаю и с к р е н н ю ю благодар¬
ность их авторам.
Надеюсь, что обладая з н а н и я м и , полученными в результате изуче­
н и я представленного курса, читатель сможет самостоятельно разобраться
в д и н а м и ч н о м е н я ю щ е й с я картине современных микропроцессоров и
микропроцессорных систем.
Курс подготовлен на основе более чем 15-летнего опыта автора по
его чтению на кафедре «Компьютерные системы и технологии» Н И Я У
МИФИ и в МФТИ.

10
Лекция 1 Микропроцессор и его архитектура

Лекция 1. Микропроцессор и его архитектура

Цель лекции: знакомство с архитектурой микропроцессоров, отли¬


чительными чертами микропроцессоров различных типов архитектуры,
этапами развития архитектуры универсальных микропроцессоров, а так¬
ж е с о с н о в н ы м и чертами архитектуры IA-32.

Основные понятия и характеристики


архитектуры микропроцессоров
Микропроцессор ( М П ) — это программно управляемое устройство,
которое предназначено для обработки ц и ф р о в о й и н ф о р м а ц и и и управле­
н и я процессом этой обработки и выполнено в виде одной или нескольких
больших интегральных схем ( Б И С ) .
П о н я т и е «большая интегральная схема» в настоящее время четко не
определено. Ранее считалось, что к этому классу следует относить микро¬
схемы, содержащие более 1000 элементов на кристалле. И действительно,
в эти параметры укладывались первые микропроцессоры. Н а п р и м е р , 4-
разрядная процессорная секция микропроцессорного комплекта К584,
выпускавшегося в к о н ц е 1970-х годов, содержала около 1500 элементов.
Сейчас, когда микропроцессоры содержат десятки миллионов транзисто­
ров и их количество непрерывно увеличивается, под Б И С будем пони¬
мать функционально сложную интегральную схему.
Микропроцессорная система ( М П С ) представляет собой ф у н к ц и о ­
нально законченное изделие, состоящее из одного или нескольких уст­
ройств, основу которой составляет микропроцессор.
Микропроцессор характеризуется большим количеством парамет­
ров и свойств, так к а к он является, с одной стороны, функционально
с л о ж н ы м вычислительным устройством, а с другой — электронным при¬
бором, изделием электронной промышленности.
К а к средство вычислительной техники о н характеризуется прежде
всего своей архитектурой, то есть совокупностью программно-аппарат­
ных свойств, предоставляемых пользователю. Сюда относятся система
команд, т и п ы и форматы обрабатываемых данных, р е ж и м ы адресации,
количество и распределение регистров, п р и н ц и п ы взаимодействия с опе­
ративной памятью и в н е ш н и м и устройствами (характеристики системы
прерываний, прямой доступ к памяти и т. д.).
П о своей архитектуре микропроцессоры разделяются на несколько
типов (рис. 1.1).
Универсальные микропроцессоры предназначены для решения задач
цифровой обработки различного типа и н ф о р м а ц и и от инженерных расче¬
тов до работы с базами данных, не связанных жесткими ограничениями на

11
Курс Архитектура микропроцессоров

Рис. 1.1. К л а с с и ф и к а ц и я микропроцессоров

время выполнения задания. Этот класс микропроцессоров наиболее ш и ­


роко известен. К нему относятся такие известные микропроцессоры, к а к
М П ряда Pentium ф и р м ы Intel и М П семейства Athlon ф и р м ы A M D .

Характеристики универсальных микропроцессоров:


• разрядность: определяется максимальной разрядностью целочис­
ленных данных, обрабатываемых за 1 такт, то есть фактически раз­
рядностью арифметико-логического устройства (АЛУ);
• виды и форматы обрабатываемых данных;
• система команд, р е ж и м ы адресации операндов;
• емкость прямоадресуемой оперативной памяти: определяется раз­
рядностью ш и н ы адреса;
• частота в н е ш н е й синхронизации. Д л я частоты синхронизации
обычно указывается ее максимально возможное значение, п р и к о ­
тором гарантируется работоспособность схемы. Д л я ф у н к ц и о ­
нально сложных схем, к которым относятся и микропроцессоры,
иногда указывают также м и н и м а л ь н о возможную частоту синхро¬
низации. Уменьшение частоты ниже этого предела может привес­
ти к отказу схемы. В то же время в тех применениях М П , где не
требуется высокое быстродействие, снижение частоты синхрони­
зации — одно из направлений энергосбережения. В ряде совре¬
менных микропроцессоров п р и уменьшении частоты он перехо¬
дит в «спящий режим», п р и котором сохраняет свое состояние.
Частота синхронизации в рамках одной архитектуры позволяет
сравнить производительность микропроцессоров. Н о разные ар­
хитектурные р е ш е н и я влияют на производительность гораздо
больше, чем частота;
• производительность: определяется с п о м о щ ь ю специальных тес­
тов, п р и этом совокупность тестов подбирается таким образом,

12
Лекция 1 Микропроцессор и его архитектура

чтобы о н и по возможности покрывали различные характеристики


микроархитектуры процессоров, в л и я ю щ и е на производитель¬
ность.

Универсальные микропроцессоры п р и н я т о разделять на CISC- и


RISC-микропроцессоры. CISC-микропроцессоры (completed instruction set
computing — вычисления с полной системой команд) имеют в своем соста¬
ве весь классический набор команд с ш и р о к о развитыми режимами адре¬
сации операндов. И м е н н о к этому классу относятся, например, м и к р о ­
процессоры типа Pentium. В то ж е время RISC-микропроцессоры (reduced
instruction set computing — вычисления с с о к р а щ е н н о й системой команд)
используют, к а к следует из определения, уменьшенное количество ко¬
манд и режимов адресации. Здесь прежде всего следует выделить такие
микропроцессоры, к а к Alpha 21x64, Power P C . Количество команд в с и с ­
теме команд — наиболее очевидное, н о на сегодняшний день н е самое
главное различие в этих направлениях развития универсальных м и к р о ­
процессоров. Другие различия м ы будем рассматривать п о мере изучения
особенностей их архитектуры.
Однокристальные микроконтроллеры ( О М К или просто М К ) пред­
назначены для использования в системах п р о м ы ш л е н н о й и бытовой а в ­
томатики. О н и представляют собой большие интегральные схемы, кото­
р ы е включают в себя все устройства, необходимые для реализации ц и ф ­
ровой системы управления м и н и м а л ь н о й конфигурации: процессор (как
правило, целочисленный), ЗУ команд, З У данных, генератор тактовых
сигналов, программируемые устройства для связи с в н е ш н е й средой (кон­
троллер п р е р ы в а н и я , т а й м е р ы - с ч е т ч и к и , р а з н о о б р а з н ы е п о р т ы в в о ­
да/вывода), иногда аналого-цифровые и цифро-аналоговые преобразова¬
тели и т. д. В некоторых источниках этот класс микропроцессоров назы¬
вается однокристальными м и к р о - Э В М ( О М Э В М ) .
В настоящее время две трети всех производимых микропроцессор­
ных Б И С в мире составляют М П этого класса, причем почти две трети из
них имеет разрядность, н е превышающую 16 бит. К классу однокристаль­
ных микроконтроллеров прежде всего относятся микропроцессоры серии
M C S - 5 1 ф и р м ы Intel и аналогичные микропроцессоры других произво¬
дителей, архитектура которых де-факто стала стандартом.
Отличительные особенности архитектуры однокристальных микро¬
контроллеров:
• физическое и логическое разделение памяти команд и памяти
данных (гарвардская архитектура), в то время к а к в классической
неймановской архитектуре программы и д а н н ы е находятся в об¬
щ е м з а п о м и н а ю щ е м устройстве и имеют одинаковый механизм
доступа;

13
Курс Архитектура микропроцессоров

• упрощенная и ориентированная на задачи управления система


команд: в М К , как правило, отсутствуют средства обработки дан¬
ных с плавающей точкой, но в то же время в систему команд вхо­
дят команды, ориентированные на э ф ф е к т и в н у ю работу с датчи¬
ками и исполнительными устройствами, например, команды об¬
работки битовой и н ф о р м а ц и и ;
• простейшие р е ж и м ы адресации операндов.
Основные характеристики микроконтроллеров (в качестве примера
ч и с л е н н ы е значения представлены для M K - 5 1 ) :
1. Разрядность (8 бит).
2. Емкость внутренней памяти команд и памяти данных, возможно­
сти и пределы их расширения:
• внутренняя память команд — 4 Кбайт (в среднем команда
имеет длину 2 байта, таким образом, во внутренней памяти
может быть размещена программа д л и н о й около 2000 ко¬
манд); возможность н а р а щ и в а н и я за счет подключения в н е ш ­
ней памяти до 64 Кбайт;
• память данных на кристалле 128 байт (можно подключить
в н е ш н ю ю память общей емкостью до 64 Кбайт).
3. Тактовая частота:
• в н е ш н я я частота 12 МГц;
• частота м а ш и н н о г о цикла 1 МГц.
4. Возможности взаимодействия с в н е ш н и м и устройствами: коли¬
чество и назначение портов ввода-вывода, характеристики систе¬
мы прерывания, программная поддержка взаимодействия с
в н е ш н и м и устройствами.
5. Наличие и характеристики встроенных аналого-цифровых пре¬
образователей ( А Ц П ) и ц и ф р о - а н а л о г о в ы х преобразователей
(ЦАП) для упрощения согласования с датчиками и исполнитель­
н ы м и устройствами системы управления.

Секционированные микропроцессоры (другие названия: м и к р о п р о -


граммируемые и разрядно-модульные) — это микропроцессоры, предназ­
наченные для построения специализированных процессоров. О н и пред­
ставляют собой микропроцессорные секции относительно небольшой (от
2 до 16) разрядности с пользовательским доступом к микропрограммному
уровню управления и средствами для объединения нескольких секций.
Такая организация позволяет спроектировать процессор необходимой
разрядности и со специализированной системой команд. И з - з а своей ма­
лой разрядности микропроцессорные секции могут быть построены с и с ­
пользованием быстродействующих технологий, например, Т Т Л Ш . С о в о ­
купность всех этих факторов обеспечивает возможность создания п р о -

14
Лекция 1 Микропроцессор и его архитектура

цессора, наилучшим образом ориентированного на заданный класс алго¬


ритмов как п о системе команд и режимам адресации, так и п о форматам
данных.
Одним и з первых комплектов секционированных микропроцессо¬
ров были М П Б И С семейства Intel 3000. В н а ш е й стране о н и выпускались
в составе серии К589 и 585. Процессорные элементы этой серии пред­
ставляли собой двухразрядный микропроцессор.
Наиболее распространенным комплектом секционированных мик¬
ропроцессоров является Am2900, основу которого составляют 4-разряд­
н ы е секции. В нашей стране аналог этого комплекта выпускался в соста­
ве серии К1804. В состав комплекта входили следующие Б И С :
• 4-разрядное с е к ц и о н н о е АЛУ;
• блок ускоренного переноса;
• 4-разрядное с е к ц и о н н о е АЛУ с аппаратной поддержкой умноже­
ния;
• 3 типа схем микропрограммного управления;
• контроллер состояния и сдвига;
• контроллер приоритетных прерываний.
Основным недостатком микропроцессорных систем на базе секцио¬
нированных микропроцессорных Б И С явилась сложность проектирова­
н и я , отладки и программирования систем на их основе. Использование
специализированной системы команд приводило к несовместимости раз¬
рабатываемого П О для различных микропроцессоров. Возможность созда­
н и я оптимального по многим параметрам специализированного процессо­
ра требовала труда квалифицированных разработчиков на протяжении
длительного времени. Однако бурное развитие электронных технологий
привело к тому, что за время проектирования специализированного п р о ­
цессора разрабатывался универсальный микропроцессор, возможности
которого перекрывали гипотетический выигрыш от проектирования спе­
циализированного устройства. Это привело к тому, что в настоящее время
данный класс микропроцессорных Б И С практически не используется.

Процессоры цифровой обработки сигналов, или цифровые сигнальные


процессоры, представляют собой бурно развивающийся класс м и к р о п р о ­
цессоров, предназначенных для р е ш е н и я задач ц и ф р о в о й обработки сиг­
налов — обработки звуковых сигналов, изображений, распознавания о б ­
разов и т. д. О н и включают в себя многие черты однокристальных м и к р о ­
контроллеров: гарвардскую архитектуру, встроенную память команд и
данных, развитые возможности работы с в н е ш н и м и устройствами. В то
ж е время в н и х присутствуют черты и универсальных М П , особенно с
RISC-архитектурой: конвейерная организация работы, программные и
аппаратные средства для в ы п о л н е н и я операций с плавающей запятой,

15
Курс Архитектура микропроцессоров

аппаратная поддержка сложных специализированных вычислений, осо­


бенно умножения.

Как электронное изделие микропроцессор характеризуется рядом па­


раметров, наиболее важными из которых являются следующие:
1. Требования к синхронизации: максимальная частота, стабиль¬
ность.
2. Количество и н о м и н а л ы источников питания, требования к их
стабильности. В настоящее время существует тенденция к умень­
ш е н и ю н а п р я ж е н и я питания, что сокращает тепловыделение схе¬
м ы и ведет к п о в ы ш е н и ю частоты ее работы. Если первые микро¬
процессоры работали при н а п р я ж е н и и питания ±15 В, то сейчас
отдельные схемы используют источники менее 1 В.
3. Мощность рассеяния — это мощность потерь в выходном каскаде
схемы, превращающаяся в тепло и нагревающая выходные тран­
зисторы. И н а ч е говоря, она характеризует показатель тепловыде­
ления Б И С , что во многом определяет требования к конструктив¬
ному о ф о р м л е н и ю микропроцессорной системы. Эта характери¬
стика особенно важна для встраиваемых М П С .
4. Уровни сигналов логического нуля и логической е д и н и ц ы , кото­
р ы е связаны с н о м и н а л а м и источников питания.
5. Тип корпуса — позволяет оценить пригодность схемы для работы
в тех или и н ы х условиях, а также возможность использования но¬
вой Б И С в качестве замены существующей на плате.
6. Температура окружающей среды, при которой может работать
схема. Здесь выделяют два диапазона:
• коммерческий (0 °С ... +70 °С);
• р а с ш и р е н н ы й (—40 °С ... +85 °С).
7. Помехоустойчивость — определяет способность схемы выпол­
нять свои ф у н к ц и и при наличии помех. Помехоустойчивость
оценивается интенсивностью помех, при которых нарушение
ф у н к ц и й устройства еще не превышает допустимых пределов.
Чем сильнее помеха, при которой устройство остается работоспо¬
собным, тем в ы ш е его помехоустойчивость.
8. Нагрузочная способность, или к о э ф ф и ц и е н т разветвления по в ы ­
ходу, определяется числом схем этой ж е серии, входы которых м о ­
гут быть присоединены к выходу д а н н о й схемы без нарушения ее
работоспособности. Ч е м в ы ш е нагрузочная способность, тем ши¬
ре логические возможности схемы и тем меньше таких микросхем
необходимо для построения сложного вычислительного устрой­
ства. Однако с увеличением этого к о э ф ф и ц и е н т а ухудшаются по¬
мехоустойчивость и быстродействие.

16
Лекция 1 Микропроцессор и его архитектура

9. Надежность — это способность схемы сохранять свой уровень


качества ф у н к ц и о н и р о в а н и я при установленных условиях за ус­
тановленный период времени. Обычно характеризуется и н т е н ­
-1
сивностью отказов ( ч а с ) или средним временем наработки на
отказ (час). В настоящее время этот параметр для больших инте­
гральных схем обычно не указывается изготовителем. О надеж­
ности М П Б И С м о ж н о судить по к о с в е н н ы м показателям, на¬
пример, по приводимой разработчиками средств вычислитель¬
н о й техники надежности изделия в целом.
10. Характеристики технологического процесса. Основной показа­
тель здесь — разрешающая способность процесса. В настоящее
время она составляет 32 н м , то есть около 30 тыс. л и н и й на 1 мм.
Более совершенный технологический процесс позволяет создать
микропроцессор, обладающий большими функциональными
возможностями.

Рис. 1.2. Затраты на производство микропроцессорной системы

Затраты на изготовление устройств, использующих м и к р о п р о ц е с ­


сорные Б И С , представлены на рис. 1.2. Здесь:
1. затраты на изготовление Б И С (чем больше степень интеграции эле­
ментов на кристалле, тем дороже обходится производство схемы);
2. затраты на сборку и наладку микропроцессорной системы ( с уве¬
личением функциональных возможностей М П потребуется м е н ь ­
ше схем для создания М П С ) ;
3. общая стоимость микропроцессорной системы, которая склады­
вается из затрат (1) и (2). Она имеет некоторое оптимальное зна­
чение для данного уровня развития технологии;
4. переход на новую технологию (оптимальным будет уже другое к о ­
личество элементов на кристалле, а общая стоимость изделия
снижается).
В 1965 году Гордон Мур сформулировал гипотезу, известную в настоя­
щее время как «закон Мура», согласно которой каждые 1,5—2 года число

17
Курс Архитектура микропроцессоров

транзисторов в расчете на одну интегральную схему будет удваиваться.


Это обеспечивается н е п р е р ы в н ы м совершенствованием технологических
процессов производства микросхем.
Наиболее развитая в технологическом о т н о ш е н и и ф и р м а Intel в ж и з ­
н е н н о м цикле полупроводниковых технологий, создаваемых и п р и м е н я ­
емых в корпорации, выделяет шесть стадий.
Самая р а н н я я стадия проходит за пределами Intel — в университет­
ских лабораториях и независимых исследовательских центрах, где ведут­
ся поиски новых физических п р и н ц и п о в и методов, которые могут стать
основой научно-технологического задела на годы вперед. К о р п о р а ц и я
финансирует эти исследования.
На второй стадии исследователи Intel выбирают наиболее перспек¬
т и в н ы е направления развития новых технологий. П р и этом обычно рас­
сматривается 2—3 варианта решения.
Главная задача третьей стадии — полная черновая проработка новой
технологии и демонстрация ее осуществимости.
После этого начинается четвертая стадия, главная цель которой —
обеспечить достижение заданных значений таких ключевых технических
и экономических показателей, как выход годных изделий, надежность,
стоимость и некоторые другие. Завершение этапа подтверждается выпус¬
ком первой п р о м ы ш л е н н о й партии новых изделий.
Пятая стадия — п р о м ы ш л е н н о е освоение новой технологии. Эта
проблема н е менее сложна, ч е м разработка самой технологии, поскольку
необычайно трудно в точности воспроизвести в условиях реального про¬
изводства то, что было получено в лаборатории. Обычно и м е н н о здесь
возникают задержки со сроками выпуска новых изделий, с достижением
запланированного объема поставок и себестоимости продукции.
П о с л е д н я я , шестая стадия ж и з н е н н о г о ц и к л а технологии (перед
отказом от ее п р и м е н е н и я ) — зрелость. Зрелая технология, подвергаясь
определенному с о в е р ш е н с т в о в а н и ю с целью п о в ы ш е н и я п р о и з в о д и ­
тельности оборудования и с н и ж е н и я себестоимости продукции, обеспе­
чивает о с н о в н ы е объемы производства. П о мере в н е д р е н и я новых, б о ­
лее с о в е р ш е н н ы х технологий «старые» производства ликвидируются.
Н о н е сразу: сначала о н и переводятся на выпуск микросхем с м е н ь ш и м
быстродействием и л и с м е н ь ш и м ч и с л о м транзисторов, н а п р и м е р , пе¬
риферийных Б И С .

Этапы развития архитектуры универсальных


микропроцессоров
Первый микропроцессор был разработан ф и р м о й Intel в 1971 году.
О н получил название I-4004, имел 4-разрядную структуру и был ориенти-

18
Лекция 1 Микропроцессор и его архитектура

рован на использование в калькуляторах. Впоследствии этой ж е ф и р м о й


был выпущен е щ е один 4-разрядный микропроцессор — I-4040.
На протяжении многих лет к р у п н е й ш и м и разработчиками и п р о и з ­
водителями универсальных микропроцессоров в мире являются компа­
н и и Intel (70—75 % мирового производства) и Advanced M i c r o Devices
( A M D ) , з а н и м а ю щ а я 20—25 % рынка. И х разработки идут во многом па­
раллельными путями. В нашем курсе м ы будем рассматривать развитие
архитектуры универсальных микропроцессоров на примере микропро¬
цессоров ф и р м ы Intel.
В 1972 году на р ы н к е появился 8-разрядный М П I-8008, а вслед за
н и м , в 1974 году, — I-8080. Последний микропроцессор сыграл значитель¬
ную роль в развитии микропроцессорной техники. Во многом о н заложил
основы архитектуры для всех последующих поколений микропроцессо­
ров. О н имеет раздельные 8-разрядную ш и н у данных и 16-разрядную ш и ­
ну адреса, возможность подключения памяти емкостью до 64 Кбайт и до
256 внешних устройств. Микропроцессор содержит 16-разрядные указа­
тель команд (Instruction Pointer — IP) и указатель стека (Stack Pointer —
SP), шесть 8-разрядных регистров общего назначения ( Р О Н ) , которые
могут использоваться к а к три 16-разрядные. Система команд состоит из
78 базовых команд. П р и загрузке операнда и з памяти применяется п р я ­
мая, косвенная регистровая или стековая адресация. В общем случае п р о ­
граммист может использовать регистровую, прямую, косвенную, н е п о ­
средственную, индексную, прямую и косвенную автоинкрементную и ав¬
тодекрементную адресации.
Микропроцессор содержит входные и выходные и н т е р ф е й с н ы е сиг¬
налы, обеспечивающие реакцию на сигналы запросов внешних прерыва¬
н и й , организацию прямого доступа к памяти, а также согласование свое¬
го цикла работы с медленными в н е ш н и м и устройствами (ВУ).
Его отличительной чертой стало с о з д а н и е микропроцессорного ком­
плекта, и л и семейства, то есть набора Б И С , с о в м е с т и м ы х между собой
по и н т е р ф е й с н ы м сигналам и ф у н к ц и о н а л ь н о д о п о л н я ю щ и х друг дру­
га. В н а ш е й стране этот м и к р о п р о ц е с с о р н ы й к о м п л е к т выпускался в
составе с е р и и К 5 8 0 , в которую в о ш л и с л е д у ю щ и е м и к р о с х е м ы :
КР580ВМ80А — однокристальный 8-разрядный микропроцессор;
КР580ВВ51А — программируемый последовательный интерфейс;
КР580ВИ53 — программируемый таймер;
КР580ВВ55А — программируемый параллельный интерфейс;
КР580ВТ57 — контроллер прямого доступа к памяти;
КР580ВН59 — контроллер прерываний;
КР580ВВ79 — интерфейс клавиатуры и дисплея;
КР580ВГ75 — контроллер ЭЛТ;
19
Курс Архитектура микропроцессоров

КР580ВК91А — интерфейс М П — канал общего пользования;


КР580ГФ24 — генератор тактовых сигналов
и некоторые другие схемы, предназначенные в основном для согласова­
н и я работы отдельных частей микропроцессорной системы.
Б И С данного микропроцессорного комплекта вследствие хороших
архитектурных р е ш е н и й , ш и р о к о й номенклатуры и совместимости до сих
пор м о ж н о встретить в некоторых цифровых устройствах, н е требующих
высокого быстродействия и разрядности, а идеи, заложенные в таких схе­
мах, к а к контроллер прерываний и контроллер прямого доступа к п а м я ­
ти, используются в современных наборах системной логики — чипсетах.

Очередным крупным шагом в развитии микропроцессорной техни¬


ки стало появление в 1978 году 16-разрядных универсальных микропро¬
цессоров. Здесь прежде всего следует выделить микропроцессор I-8086,
выпускавшийся отечественной электронной промышленностью в соста­
ве семейства К1810. Эти микропроцессоры, заложившие основы архитек­
туры x86, использовались при производстве первых персональных Э В М .
О с н о в н ы м и отличительными чертами в архитектуре этого микропроцес¬
сора стали:
• увеличение разрядности регистров общего назначения до 16 бит;
• увеличение количества регистров общего назначения до 8;
• увеличение количества режимов адресации операндов;
• р а с ш и р е н и е количества флагов в регистре признаков, в том числе
за счет введения флагов управления, обеспечивающих, например,
возможность запрета внешних маскируемых прерываний;
• появление сегментного механизма обращения к памяти, который
обеспечил возможность о б р а щ е н и я к памяти емкостью д о 1
Мбайт п р и использовании 16-разрядных регистров.

П о я в и в ш и й с я вслед за этим в 1982 году микропроцессор i286 явился


переходной ступенью к 32-разрядным универсальным микропроцессо¬
рам. В процессоре i286 было реализовано два режима работы — защищен¬
н ы й и реальный. В реальном режиме работы процессор был полностью
совместим с выпускавшимися ранее 16-разрядными микропроцессорами
с архитектурой x86. В ф о р м и р о в а н и и адреса участвовали только 20 л и н и й ,
поэтому максимальная емкость адресуемой памяти в этом режиме оста­
лась прежней — 1 Мбайт. В защищенном режиме процессор мог адресовать
до 1 Гбайт виртуальной памяти. Ш и н а адреса увеличена до 24 бит, поэто­
му емкость адресуемой памяти составляла 16 Мбайт. Д л я защиты от н е ­
санкционированного доступа к программам и д а н н ы м и в ы п о л н е н и я
привилегированных команд, которые могут кардинально изменить со¬
стояние всей системы, в процессоре i286 была введена защита п о п р и в и -

20
Лекция 1 Микропроцессор и его архитектура

легиям. С этой целью микропроцессор поддерживал 4 уровня привиле­


гий. Для в ы п о л н е н и я операций над числами с плавающей точкой была
разработана отдельная Б И С — математический сопроцессор 80287.

В 1985 году был выпущен 32-разрядный универсальный микропро¬


цессор i386 — первый п о л н о ц е н н ы й представитель архитектуры IA-32
(Intel Architecture-32). Развитие этой архитектуры продолжалось вплоть
до последних моделей микропроцессора Pentium 4. Д а н н у ю архитектуру
отличает ряд и з м е н е н и й , некоторые из которых имеют чисто количест­
венное значение, а другие носят п р и н ц и п и а л ь н ы й характер.
Главным в н е ш н и м отличием является увеличение разрядности ш и ­
н ы данных и ш и н ы адреса до 32 бит. Это, в свою очередь, связано с изме­
н е н и я м и в разрядности внутренних элементов микропроцессора.
Большие качественные изменения произошли на уровне работы м и ­
кропроцессора в защищенном режиме, который был существенно развит
по сравнению с i286. Отметим основные черты этого режима.
1. П р и н ц и п и а л ь н о меняется механизм ф о р м и р о в а н и я физического
адреса. Прежде всего, изменяется механизм использования сег­
ментированной памяти. Сегменты в з а щ и щ е н н о м режиме могут
иметь произвольную длину и располагаться в памяти начиная с
произвольного адреса. Каждый сегмент снабжается рядом атри¬
бутов (базовый адрес, длина сегмента, его тип, уровень защиты и
т. п.), которые хранятся в специальной структуре, называемой де­
скриптором сегмента, и используются блоком управления памя¬
тью микропроцессора при ф о р м и р о в а н и и физических адресов
операндов и команд. Появляется возможность использования
страничного механизма организации памяти. Страница — это раз­
дел памяти, который, в отличие от сегмента, имеет ф и к с и р о в а н ­
ную длину. Страничная организация памяти служит основой в и р ­
туальной памяти и обеспечивает более э ф ф е к т и в н о е , по сравне­
н и ю с сегментной, использование памяти.
2. Организуется аппаратная поддержка мультипрограммного режи­
ма работы, при котором в памяти одновременно содержатся п р о ­
граммы и д а н н ы е для выполнения нескольких задач. Каждой за­
даче предоставляется свой «виртуальный процессор». В каждый
момент времени реальный процессор предоставляется одному из
виртуальных процессоров, выполняющему свою задачу.
3. С целью обеспечения защиты и н ф о р м а ц и и и упрощения органи¬
зации мультипрограммного режима работы микропроцессор
снабжается специальными механизмами, определяющими, какие
операции и обращения к памяти разрешается производить про¬
цессору при в ы п о л н е н и и текущей задачи.

21
Курс Архитектура микропроцессоров

За время, прошедшее после появления первого 32-разрядного м и к ­


ропроцессора, только ф и р м о й Intel было выпущено несколько десятков
м о д и ф и к а ц и й 32-разрядных М П . И з м е н е н и я в некоторых моделях н о с и ­
ли п р и н ц и п и а л ь н ы й характер, а ряд моделей содержали в основном л и ш ь
количественные и з м е н е н и я отдельных параметров (частота, емкость
к э ш - п а м я т и и т. п.). Основные этапы развития этой архитектуры, кото­
рые, на н а ш взгляд, носят п р и н ц и п и а л ь н ы й характер, представлены в
табл. 1.1.

Таблица 1.1. Этапы развития архитектуры IA-32

Количество конвейеров/
тактовая частота, МГц

Наличие кэш-памяти
Число транзисторов
Год начала выпуска

ступеней конвейера
Количество команд
в системе команд
Схема обработки
Максимальная
на кристалле

на кристалле
Модель

Регистры
данных

SISD, 32-разряд­
1386 1985 275 тыс. 40 нет 220
ФТ ные с ФТ**
SISD,
i486 1989 1,2 млн. 100 да +80-разряд­
ФТ, ПТ
ные с ПТ***
Pentium 1993 3,1 млн. 200 -"- 2/5

Pentium
1997 4,5 млн. 233 + SIMD, + 57 4/14
ммх
ФП
9,5 млн.
Pentium III 1999 1400 + SIMD, +КЭШ +128-раз­ +70 5/11
(28,1 млн.)*
ПЗ L2 рядные SSE
Pentium 4 2000 42 млн. 3800 + 144 9/31
С учетом интегрированной на кристалле кэш-памяти второго уровня L2.
Фиксированная точка.
Плавающая точка.

Остановимся вкратце на их рассмотрении.


К основным нововведениям микропроцессора i486, выпущенного в
1989 году, относятся два, которые связаны с р а с ш и р и в ш и м и с я технологи­
ческими возможностями. Это размещение непосредственно на кристалле
Б И С двух важных блоков, которые раньше выполнялись в виде отдель­
ных микросхем: к э ш - п а м я т и и блока процессора обработки чисел с пла-

22
Лекция 1 Микропроцессор и его архитектура

вающей точкой (floating point unit — F P U ) . К э ш - п а м я т ь имела объем 8


Кбайт и предназначалась для хранения программ и данных. F P U имел
внутренний файл из восьми 80-разрядных регистров, свой регистр состо­
я н и я и управления.
Главной отличительной чертой нового продукта в л и н е й к е 32-раз­
рядных микропроцессоров — М П Pentium — явилась возможность к о н ­
вейерной обработки и н ф о р м а ц и и . Хотя некоторые авторы считают, что
конвейер появился уже в i486, это н е является о б щ е п р и н я т ы м мнением.
Высокая скорость в ы п о л н е н и я команд в М П Pentium достигалась благо­
даря двум 5-ступенчатым конвейерам, позволявшим одновременно и с ­
полнять несколько инструкций. Обмен и н ф о р м а ц и е й с памятью через
к э ш данных осуществлялся независимо от процессорного ядра, а буфер
инструкций был связан с н и м через высокоскоростную 256-разрядную
внутреннюю шину. Несмотря на то что новый кристалл был спроектиро­
ван к а к 32-разрядный, для связи с остальными компонентами системы
использовалась в н е ш н я я 64-разрядная ш и н а данных. П о я в л е н и е к о н в е й ­
ера обусловило необходимость введения е щ е одного блока — схемы пред­
сказания переходов. Э ф ф е к т и в н а я работа д а н н о й схемы чрезвычайно
важна для п о в ы ш е н и я производительности микропроцессора. Все после­
дующие м о д и ф и к а ц и и микропроцессоров непременно связаны с улучше¬
н и е м ее работы.
Основным нововведением разработанного в 1997 году микропроцес¬
сора Pentium M M X стал блок, обеспечивавший новую схему обработки це¬
лочисленной и н ф о р м а ц и и — SIMD (Single Instruction — Multiple Data: одна
команда — множество данных). Д о этого обработка велась по классичес­
кой схеме SISD: каждая команда выполняла действия над своей парой
операндов. Введение S I M D - о п е р а ц и й позволило обрабатывать одновре¬
м е н н о несколько операндов с использованием одной команды, что дало
возможность существенно поднять производительность микропроцессора
на тех задачах, где над большими массивами однородной и н ф о р м а ц и и вы¬
полнялись одинаковые операции, например, в мультимедийных приложе­
ниях. Появление таких возможностей потребовало введения в систему к о ­
манд 57 новых инструкций, н о регистровая структура микропроцессора не
изменилась.
Микропроцессор Pentium III, п о я в и в ш и й с я в 1999 году, позволил
обрабатывать по схеме S I M D н е только целочисленные операнды, н о и
числа с плавающей точкой. Д л я этого система команд была расширена на
70 инструкций, а в структуре микропроцессора появился специальный
блок SSE, содержащий, в частности, отдельный регистровый файл из
восьми 128-разрядных регистров. Е щ е одной н о в и н к о й , использованной
в Pentium III, было размещение на кристалле к э ш - п а м я т и второго уровня
(начиная с ядра Coppermine), работающей на частоте ядра. Н о это носило

23
Курс Архитектура микропроцессоров

скорее количественный характер и не внесло существенных и з м е н е н и й в


архитектуру.
Микропроцессор Pentium 4 завершает линейку 32-разрядных микро¬
процессоров. О с н о в н ы м вкладом этого микропроцессора в развитие ар¬
хитектуры IA-32 стало еще большее увеличение глубины конвейера — до
31 стадии, что позволило сильно нарастить частоту процессора. Количе¬
ство конвейеров возросло до 9. К р о м е поддержки ставших традиционны¬
ми инструкций M M X и SSE, в Pentium 4 добавили еще 144 команды SSE2,
затем и SSE3, ориентированные в первую очередь на работу с потоковы¬
ми д а н н ы м и .
В 2001 году ф и р м о й Intel был выпущен микропроцессор Itanium, по¬
л о ж и в ш и й начало новой 64-разрядной архитектуре — IA-64, которая сме­
нила архитектуру 32-разрядных микропроцессоров IA-32, господствовав­
шую на протяжении более 15 лет.
Д а н н о е учебное пособие в части универсальных микропроцессоров
будет базироваться в основном на рассмотрении базовой архитектуры 32-
разрядного микропроцессора, которая сложилась в микропроцессоре i486.
Основные моменты, касающиеся развития этой архитектуры (конвейер­
ная организация работы, обработка и н ф о р м а ц и и по схеме S I M D и т. д.),
будут рассмотрены отдельно. Также отдельно будут рассмотрены совре­
менные направления развития архитектуры универсальных микропроцес­
соров и, в качестве примера, архитектура 80-ядерного микропроцессора
ф и р м ы Intel и микропроцессора Itanium.

Структура 32-разрядного универсального


микропроцессора
Рассмотрение архитектуры IA-32 начнем с микропроцессора i486. В
нем впервые появились те блоки, которых не было на кристалле первого
32-разрядного микропроцессора i386, — к э ш - п а м я т ь и процессор обра­
ботки чисел с плавающей точкой. И м е н н о его архитектуру м о ж н о рассма­
тривать к а к базовую для IA-32. Структура микропроцессора i486 пред¬
ставлена на рис. 1.3.
Рассмотрим состав и назначение основных блоков этого микропро¬
цессора.
Процессор обработки чисел с фиксированной точкой содержит 32-раз­
рядное АЛУ и блок регистров общего назначения. АЛУ предназначено для
обработки двоичных чисел длиной 1, 2 или 4 байта без знака или со зна¬
ком, а также двоично-десятичных чисел, не превышающих 99. Д в о и ч н ы е
числа со знаком представляются в дополнительном коде.
Блок регистров общего назначения содержит восемь 32-разрядных
регистров, часть из которых допускает 16- и 8-разрядное обращение.

24
Лекция 1 Микропроцессор и его архитектура

Рис. 1.3. Структура универсального микропроцессора

Процессор обработки чисел с плавающей точкой состоит из 80-разряд­


ного АЛУ, блока из восьми 80-разрядных регистров общего назначения, а
также управляющих регистров. Главным образом он предназначен для об­
работки чисел с плавающей точкой, н о также используется для обработки
целых чисел со знаком д л и н о й 8 байт и двоично-десятичных чисел вели­
ч и н о й от 100 до 99...9 (18 ц и ф р ) . Н а первых этапах развития S I M D - о б р а -
ботки регистры FPU использовались для хранения операндов, представ¬
ленных в новых форматах.
Блок управления памятью (Memory Management U n i t — M M U ) с о ­
стоит и з двух о с н о в н ы х б л о к о в в соответствии с о р г а н и з а ц и е й п а м я т и .
В о б щ е м случае п а м я т ь в м и к р о п р о ц е с с о р е делится н а сегменты, к о т о ­
р ы е , в свою очередь, делятся н а с т р а н и ц ы . В соответствии с э т и м ,
M M U содержит б л о к с е г м е н т а ц и и ( и л и б л о к с е г м е н т н о г о преобразо¬
в а н и я адреса) и б л о к с т р а н и ч н о г о п р е о б р а з о в а н и я , в состав к о т о р о г о
входит т а к н а з ы в а е м ы й буфер ассоциативной трансляции адресов стра­
ниц ( T L B ) .
Кэш-память представляет собой промежуточную ступень между
оперативной памятью и регистрами микропроцессора и предназначена
для хранения наиболее часто используемой и н ф о р м а ц и и .
В состав блока управления входят:
• собственно устройство управления, то есть та классическая схема,
которая под действием кода команды вырабатывает набор управ­
л я ю щ и х сигналов, поступающих на разные узлы к а к самого м и к ­
ропроцессора, так и на блок интерфейса в н е ш н е й ш и н ы ;

25
Курс Архитектура микропроцессоров

• управление защитой памяти: обеспечивает аппаратную защиту


программ и данных при управлении памятью и по привилегиям;
• блок управления предвыборной команд: реализует опережающее
заполнение буфера команд, представляющего собой некоторую
буферную память. Буфер команд имеет емкость 32 байта и запол­
няется командами из следующих ячеек памяти команд по мере
своего освобождения. Этим обеспечивается ускорение обработки
микропроцессором следующей команды. Д а н н ы й блок подвер¬
гался, пожалуй, наиболее существенным переработкам по мере
развития архитектуры IA-32 — причина в ш и р о к о м последующем
использовании конвейерной организации работы М П и связан­
н о й с этим необходимости постоянного совершенствования бло­
ка предсказания адреса следующей команды.
Блок интерфейса внешней шины осуществляет электрическое согласо¬
вание параметров внутренней магистрали с сигналами внешних магист¬
ралей, ф о р м и р о в а н и е необходимых сигналов на в н е ш н ю ю магистраль и
прием сигналов извне. В н е ш н я я магистраль микропроцессора состоит из
ш и н ы адреса, ш и н ы данных и сигналов управления:
• ш и н а данных имеет ш и р и н у 32 разряда;
• 3 2 - р а з р я д н ы й адрес передается по 3 4 - р а з р я д н о й шине
A31...A2+(B3,B2,B1,B0). Ч т о б ы с м и н и м а л ь н ы м и потерями согла­
совывать 32-разрядную ш и н у данных с передачей данных м е н ь ­
шей разрядности, младшие разряды адреса (А1 и А0) передаются в
д е ш и ф р и р о в а н н о м виде (B3, B2, B1, B0). О н и показывают, какие
байты из 32-разрядной ш и н ы данных в д а н н ы й момент реально
востребованы: 1 байт, 2 младших байта, 2 старших байта либо все
32 разряда данных;
• шина управления — 32-разрядная. По ней передаются сигналы запи­
си и чтения содержимого оперативной памяти и внешних устройств,
сигналы запросов прерываний, прямого доступа к памяти и т. д.

Особый интерес представляют три режима работы микропроцессо­


ра: реальный, з а щ и щ е н н ы й и режим виртуального М П i8086. В реальном
режиме обеспечивается совместимость на уровне объектных кодов с м и ­
кропроцессором i8086 и микропроцессором i286, работающем в реальном
режиме. В этом режиме архитектура 32-разрядного микропроцессора
почти полностью идентична архитектуре 16-разрядного М П . Для п р о ­
граммиста ж е он вообще представляется как М П i8086, в ы п о л н я ю щ и й
н а п и с а н н ы е программы с большей скоростью и обладающий расширен¬
ной системой команд и регистрами. Благодаря этим качествам ф и р м а
Intel сохранила прежних клиентов, которые хотели модернизировать свои
системы, не отказываясь от имевшегося задела в области программного

26
Лекция 1 Микропроцессор и его архитектура

обеспечения, и привлекла тех, кому изначально требовалась высокая ско¬


рость обработки и н ф о р м а ц и и .
Одно из основных ограничений реального режима было связано с
предельной емкостью адресуемой памяти, равной 1 Мбайт. От него свобо­
ден защищенный режим, позволяющий воспользоваться всеми преимуще¬
ствами архитектуры нового М П . Размер адресного пространства в этом
случае увеличивается до 4 Гбайт, а о б щ и й объем поддерживаемого адрес­
4 0
ного пространства — до 64 терабайт (1 Тбайт = 2 байт). М П , работающие
в з а щ и щ е н н о м режиме, обладают более высоким быстродействием и воз¬
можностями организации истинной многозадачности.
Н а к о н е ц , режим виртуального МП открывает возможность одновре­
менного исполнения программ, написанных для М П i8086, i286 и i386.
Поскольку емкость памяти, адресуемой микропроцессором, не ограниче­
на значением 1 Мбайт, этот режим позволяет формировать несколько
виртуальных сред i8086.

Краткие итоги. В лекции д а н ы определения микропроцесса и микро¬


процессорной системы, архитектуры микропроцессора. Приведена клас¬
с и ф и к а ц и я микропроцессоров по их архитектуре, представлены парамет¬
р ы , которые характеризуют микропроцессоры каждого класса к а к вычис¬
лительное устройство и как электронное изделие. Рассмотрены этапы
развития архитектуры универсальных микропроцессоров на примере М П
Б И С ф и р м ы Intel, занимающей доминирующее положение в этом секто¬
ре рынка. О п и с а н ы структура и основные блоки микропроцессора i486,
являющегося базовым микропроцессором для этой архитектуры.

27
Курс Архитектура микропроцессоров

Л е к ц и я 2. Р е г и с т р о в а я с т р у к т у р а у н и в е р с а л ь н о г о
микропроцессора

Цель лекции: рассмотреть состав, назначение и особенности исполь­


зования различных групп регистров, входящих в состав универсального
микропроцессора.

Состав, структура и назначение регистров микропроцессора являют­


ся важной чертой его архитектуры и во многом определяют его ф у н к ц и о ­
нальные возможности. Поэтому изучение этого вопроса весьма важно для
п о н и м а н и я дальнейшего материала.
В универсальном 32-разрядном микропроцессоре выделяют следую­
щ и е группы регистров:
• основные ф у н к ц и о н а л ь н ы е регистры;
• регистры процессора с плавающей точкой;
• системные регистры;
• регистры отладки и тестирования.
Первые две группы регистров используются прикладными програм¬
мами, последние две группы — системными программами, и м е ю щ и м и
н а и в ы с ш и й уровень привилегий.
Рассмотрим каждую из этих групп подробнее.

Основные функциональные регистры

В состав регистров этой группы входят:


• регистры общего назначения;
• регистр указателя команд;
• регистр флагов;
• сегментные регистры.
Состав и структура регистров общего назначения представлены на рис. 2.1.
Блок состоит из восьми 32-разрядных регистров. К каждому из них
м о ж н о обращаться как к одному двойному слову (32 разряда).
Отметим, что понятие «слово» в данной архитектуре не идентично раз­
рядности микропроцессора. Исторически сложилось так, что под словом по­
нимается единица информации длиной 2 байта, или 16 двоичных разрядов.
К младшим 16 разрядам регистров общего назначения можно обра­
щаться так же, как и в 16-разрядном микропроцессоре (AX, BX...SP). Четы­
ре 16-разрядных регистра A X , B X , C X , D X допускают обращение отдельно
к своему старшему и младшему байту. Тем самым регистры позволяют на
программном уровне работать либо с восемью 32-разрядными, либо с восе­
мью 16-разрядными, либо с восемью 8-разрядными регистрами.

28
Лекция 2 Регистровая структура универсального микропроцессора

31 16 15 0
ЕАХ (АН) АХ (AL)
ЕВХ (ВН) ВХ (BL)
ЕСХ (СН) СХ (CL)
EDX (DH) DX (DL)
ESI SI
EDI DI
ЕВР BP
ESP SP
32 •

Рис. 2.1. Регистры общего назначения

Все эти регистры используются для хранения промежуточных ре¬


зультатов вычислений и составных частей адреса п р и различных режимах
адресации операндов, расположенных в памяти.
Кроме того, ряд регистров этого блока имеют свое, присущее только
и м назначение:
• E A X / A X / A L — регистр-аккумулятор, используется для сокра­
щ е н и я д л и н ы к о м а н д ы п р и работе с н е п о с р е д с т в е н н ы м и опе¬
рандами;
• A X / A L — п р и е м н и к (источник) данных в командах ввода (вывода)
данных из ( в) внешнего устройства;
• D X — определяет адрес ВУ в командах ввода (вывода) данных;
• E C X — используется в качестве счетчика циклов в командах циклов;
• BP, SP — используются при работе со стеком;
• ESI, E D I (DI, SI) — определяют положение строк в памяти в ко¬
мандах обработки строк.

Регистр указателя команд и регистр флагов имеют длину 32 разряда.


Младшее слово каждого из этих регистров (разряды 0—15) ф у н к ц и о н а л ь ­
но соответствует аналогичным разрядам в 16-разрядном микропроцессо¬
ре (рис. 2.2).

31 16 15 0
EIP IP
EFLAGS FLAGS

А 32 •

Рис. 2.2. Регистр указателя команд и регистр флагов

29
Курс Архитектура микропроцессоров

Регистр указателя команд E I P хранит смещение адреса команд отно¬


сительно начала сегмента кода (сегмента команд).
Регистр флагов E F L A G S содержит признаки результата в ы п о л н е н ­
ной команды, а также разряды, управляющие работой микропроцессора:
обработкой маскированных прерываний, последовательностью вызывае¬
мых задач, вводом-выводом и рядом других действий. И з этих флагов рас­
смотрим только наиболее значимые и интересные с точки зрения даль­
нейшего изучения работы микропроцессора.
К битам состояния регистра флагов относятся:
Z F — п р и з н а к нуля результата ( Z F = 1, если все разряды результата
равны 0);
SF — знак результата (SF = 1, если старший разряд результата равен
1, то есть если результат отрицательный);
O F — п р и з н а к переполнения ( O F = 1, если при в ы п о л н е н и и ариф¬
метических операций над числами со знаком происходит переполнение
разрядной сетки);
C F — флаг переноса ( C F = 1, если в ы п о л н е н и е операции сложения
приводит к переносу за пределы разрядной сетки), устанавливается также
в некоторых других операциях;
P F — п р и з н а к четности (дополняет до нечетного числа единиц млад¬
ш и й байт результата);
A F — флаг полупереноса (используется при операциях над д в о и ч н о -
десятичными числами);
D F — устанавливается пользователем и определяет порядок обра¬
ботки строк символов в соответствующих командах: декремент (при
D F = 1) или инкремент (при D F = 0) содержимого индексных регистров
ESI, E D I (SI, DI) после обработки одного символа.
В состав флагов управления входят:
I F — флаг прерываний (при I F = 1 разрешается обработка маскиро¬
ванных аппаратных прерываний);
T F — флаг ловушки, или трассировки (при T F = 1 после в ы п о л н е н и я
каждой команды возникает прерывание, используемое отладчиками;);
N T — бит вложенной задачи (показывает, что данная задача была
вызвана из другой программы, аналогично подпрограмме, и возврат из
этой задачи должен проводиться по механизму переключения задач);
I O P L — 2-разрядное поле уровня привилегий ввода/вывода (опреде­
ляет уровень привилегий программ, которым разрешено выполнение
операции ввода-вывода);
V M — режим виртуального микропроцессора i8086 (при работе микро­
процессора в защищенном режиме установка V M = 1 вызывает переключе­
ние в режим виртуального микропроцессора i8086; в этом случае микропро­
цессор функционирует как быстрый М П i8086, но реализует механизмы за-

30
Лекция 2 Регистровая структура универсального микропроцессора

щиты памяти, страничной адресации и ряд других дополнительных возмож¬


ностей; бит V M может быть установлен только в защищенном режиме).
Блок сегментных регистров состоит из шести 16-разрядных регист­
ров, которые указывают на различные сегменты, расположенные в памя¬
ти компьютера:
• C S (Code Segment) — сегмент кода программы;
• D S (Data Segment) — сегмент данных;
• SS (Stack Segment) — сегмент стека;
• E S , F S , G S — дополнительные сегменты данных.
П р и работе микропроцессора в реальном режиме в сегментном реги¬
стре содержатся старшие 16 разрядов 20-разрядного базового адреса сег­
мента. Физический адрес начала сегмента получается умножением этой
величины на 16:

А б а з с е г м = (сегментный регистр)*16.

Получающийся 20-разрядный адрес позволяет адресовать память ем­


2 0 1 6
костью 2 байт = 1 Мбайт. П р и этом сегменты имеют постоянную длину 2
байт. Разработчики первых персональных компьютеров полагали, что опе¬
ративная память, большая чем 1 Мбайт, никогда н е потребуется пользовате­
лю, поэтому вся архитектура строилась исходя именно из этого положения.
При переходе к 32-разрядной архитектуре стало необходимым обеспе­
3 2
чить возможность адресации памяти емкостью до 2 байт. Кроме того, вве¬
дение защищенного режима работы микропроцессора потребовало хране¬
н и я большого количества дополнительной информации о сегменте: его
длине, которая стала переменной, уровне привилегий, его типе и т. д. П р о ­
стое увеличение разрядности сегментных регистров до 32 бит не обеспечи­
ло бы возможности хранения всей этой информации. Поэтому все данные о
сегменте стали размещаться в специальных структурах — дескрипторах (опи­
сателях) сегментов, которые хранятся в таблицах дескрипторов, расположен­
ных в памяти, а сегментные регистры, сохранив свою первоначальную дли­
ну в 16 разрядов, содержат так называемый селектор (указатель), который
используется для того, чтобы найти нужный дескриптор в этих таблицах.

Регистры процессора с плавающей точкой

К этой группе регистров относятся (рис. 2.3):


• регистры данных;
• регистры тегов;
• регистр состояния;
• указатели команд и данных F P U ;
• регистр управления F P U .

31
Курс Архитектура микропроцессоров

Регистры данных Регистры ТЭГов


1 О
R0 ЗНАК ПОРЯДОК МАНТИССА
R1
R2
R3
R4
R5
R6
R7
диапазон точность
15 О 47
Регистр управления Указатель команд
Регистр состояния Указатель данных

16-селектор 32-смещение

Рис. 2.3. Структура регистров процессора с плавающей точкой

Блок регистров данных. Доступен либо к а к стек (его вершина T O P


определена в регистре состояний F P U ) , либо к а к набор пронумерован¬
ных регистров.
Старший разряд 80-разрядного регистра данных кодирует знак м а н ­
тиссы хранящегося в нем числа с плавающей точкой. Следующее поле от­
ведено под кодирование порядка. П о р я д о к представлен в виде так н а з ы ­
ваемого м а ш и н н о г о , или смещенного, порядка (Псм) без знака:

П с м = П + А,

где П — и с т и н н ы й порядок числа, а величина А определяется следующим


образом: А = |—Пмакс|. П р и этом самый большой по модулю отрицатель­
н ы й и с т и н н ы й порядок преобразуется в нулевой с м е щ е н н ы й , а все ос­
тальные истинные порядки преобразуются в положительные. Тем самым
упрощаются операции обработки чисел с плавающей точкой.
В последнем поле регистра данных записывается мантисса числа.
Количество разрядов, отводимых под поле порядка и поле мантиссы, о п ­
ределяется регистром управления F P U .
Д а н н ы й блок может также использоваться для хранения д в о и ч н о -
десятичных чисел. О н и представляются в упакованной форме и содержат
18 тетрад, каждая из которых соответствует одному десятичному разряду.
Для представления знака такого числа используется старший разряд стар­
шего байта (бит 79), в остальных разрядах этого байта устанавливаются
нули.

32
Лекция 2 Регистровая структура универсального микропроцессора

М и к р о п р о ц е с с о р м о ж е т обрабатывать ч и с л а следующих типов


(табл. 2.1):

Таблица 2.1. Типы чисел 32-разрядного микропроцессора

Тип Размер, байт Диапазон Обработка

Целые без знака 1 0...255


2 0...65535 АЛУ Ф Т
9
4 0...4,3*10
Ц е л ы е со знаком 1 -128...+127
2 -32768...+32767 АЛУ Ф Т
4 2,1*109...+2,1*109
8 9,1*1018...+9*1018 FPU

С плавающей 4 (1+8+23)
точкой знак-порядок- ±3,37*1035
мантисса FPU

8 (1+11+52) ±1,67*10308

10 (1+15+64) ± 1 1*104932

Двоично- 1 распакованный 0... 9 АЛУ Ф Т


десятичные 1 упакованный 0...99 АЛУ Ф Т
числа 10 упакованных 0...9... 9 (18 ц и ф р ) FPU

П о м и м о этого микропроцессор может обрабатывать символьные


д а н н ы е , д а н н ы е типа «строка» и типа «указатель».
Регистр тегов. Определяет содержимое регистра д а н н ы х с целью оп¬
т и м и з а ц и и обработки:
• 00 — достоверное значение;
• 01 — нуль (нулевое значение);
• 10 — не-числа (например, бесконечность);
• 11 — пусто (содержание регистров н е определено).
Операции с плавающей точкой требуют довольно много времени.
Использование тегов позволяет в определенных случаях сократить время
в ы п о л н е н и я команды. Н а п р и м е р , если известно, ч т о один и з сомножите¬
лей равен нулю, то произведению м о ж н о присвоить нулевое значение без
в ы п о л н е н и я каких-либо действий.
Регистр состояния содержит указатель в е р ш и н ы блока данных, рабо¬
тающего в р е ж и м е стека (TOP), п р и з н а к и результата и о ш и б о к , возника-

33
Курс Архитектура микропроцессоров

ющих при в ы п о л н е н и и операции в F P U , а также флаг переполнения и а н ­


типереполнения стека регистров данных.
Регистр управления управляет округлением (к ближайшему значению,
вниз, вверх, к нулю), точностью (длина мантиссы 24, 53 или 64 бита), а так¬
ж е содержит маску признаков ошибок, фиксируемых в регистре состояния.
Указатели команд и данных содержат адрес команды, вызвавшей
ошибку, и адрес использованного операнда. Эти регистры имеют 48-раз¬
р я д н ы й формат: 16 разрядов содержат селектор соответствующего сег­
мента, а остальные 32 разряда — смещение в нем.

Системные регистры

Системные регистры управляют функционированием микропроцес¬


сора в целом и режимами работы отдельных его блоков. Эти регистры до¬
ступны только в защищенном режиме для программ, имеющих максималь¬
н ы й уровень привилегий. Они включают в свой состав 2 группы регистров:
• регистры управления (CR0...CR4);
• регистры системных адресов и системных сегментов.
Регистр управления C R 0 содержит биты, определяющие режим ра¬
боты процессора:
P E — разрешение защиты: установка P E = 1 переводит микропро¬
цессор в з а щ и щ е н н ы й режим;
P G — включение страничной адресации памяти (при P G = 1 стра¬
н и ч н ы й механизм включен);
C D , N W — управление режимами работы внутренней к э ш - п а м я т и
( C D = 1 — запрещение заполнения к э ш - п а м я т и ; N W = 1 — запрет сквоз¬
ной записи).
Ряд бит (MP, E M , TS, N E ) управляют режимами работы F P U .
Регистр C R 1 был зарезервирован для последующего развития. Одна­
ко начиная с М П Pentium в микропроцессорах появился регистр управле­
н и я C R 4 , а регистр C R 1 так и остался зарезервированным.
Регистр C R 2 содержит л и н е й н ы й адрес, который вызвал странич¬
ную ошибку, например, отсутствие страницы в оперативной памяти или
недостаточный уровень привилегий.
В регистре C R 3 находится базовый адрес каталога таблицы страниц
(старшие 20 разрядов), а также биты P C D и PWT, управляющие работой
к э ш - п а м я т и при страничной адресации (при P C D = 1 загрузка содержи­
мого страницы в к э ш - п а м я т ь запрещена; при P W T = 1 реализуется режим
сквозной записи, а п р и P W T = 0 — обратной записи).
Регистр C R 4 содержит биты, обеспечивающие р а с ш и р е н и е функци¬
ональных возможностей микропроцессора, начиная с Pentium. В частно­
сти, он содержит следующие управляющие разряды:

34
Лекция 2 Регистровая структура универсального микропроцессора

V M E , P V I — управляют работой виртуальных прерываний;


P A E — обеспечивает расширение физического адреса до 36 разрядов
(при P A E = 1);
P G E — определяет некоторые страницы (часто используемые или ис¬
пользуемые несколькими процессорами) к а к глобальные ( при P G E = 1);

P S E — расширяет размер адресуемых страниц до 4 Мбайт (при


P S E =1), п р и P S E = 0 сохраняет размер страницы 4 Кбайт.

Регистры системных адресов и системных сегментов представлены на


рис. 2.4.

Рис. 2.4. Структура регистров системных адресов и системных сег¬


ментов

В их число входят G D T R — регистр глобальной таблицы дескрипто­


ров и I D T R — регистр таблицы дескрипторов прерываний. В этих регист­
рах определяются базовый адрес и размер соответствующей таблицы. К
этой группе относятся также L D T R — регистр локальной таблицы дес­
крипторов и T R — регистр задач. Регистры L T D R и T R представляют со¬
бой селекторы, которые указывают н а п о л о ж е н и е дескрипторов, описы¬
в а ю щ и х соответственно сегмент, содержащий локальную таблицу дес¬
к р и п т о р о в , и сегмент с о с т о я н и я задачи (Task State Segment — TSS).
И с п о л ь з о в а н и е этих регистров в д а л ь н е й ш е м будет рассмотрено более
подробно.

Регистры отладки и тестирования

32-разрядные регистры отладки (DR0...DR7) имеют следующее на¬


значение:
• D R 0 . . . D R 3 — содержат л и н е й н ы е адреса 4 контрольных точек ос¬
танова п р и отладке;

35
Курс Архитектура микропроцессоров

• D R 4 и D R 5 зарезервированы;
• D R 6 — регистр состояния: показывает текущее состояние М П при
останове в этих точках;
• D R 7 — регистр управления: задает условия останова в контроль¬
ных точках.
Регистры D R 4 и D R 5 не используются.
Регистры тестирования (TR3...TR7) используются при тестировании
к э ш - п а м я т и и буфера ассоциативной трансляции адресов страниц ( T L B ) .
П о мере развития архитектуры микропроцессора их количество расши¬
рилось и дополнилось н о в ы м содержанием. В частности, с п о м о щ ь ю ре¬
гистра TR12 м о ж н о запретить предсказание и трассировку ветвлений, па¬
раллельное в ы п о л н е н и е инструкций и выполнить некоторые другие дей¬
ствия.

Краткие итоги. В л е к ц и и рассмотрены назначение и состав регистро­


вой структуры универсального микропроцессора, во многом определяю¬
щ и е архитектурные особенности микропроцессора.

36
Лекция 3 Физическая и логическая организация адресного пространства

Л е к ц и я 3. Ф и з и ч е с к а я и л о г и ч е с к а я о р г а н и з а ц и я
адресного пространства

Цель лекции: изучение механизмов ф о р м и р о в а н и я физического ад¬


реса при различной организации логического адресного пространства.

Организация памяти микропроцессорной системы — один из важ­


н е й ш и х компонентов, в л и я ю щ и й на многие параметры ее работы: з а щ и ­
ту данных, мультипрограммирование, работу к э ш - п а м я т и и т. д. Поэтому
изучение п р и н ц и п о в построения памяти как на логическом, так и на ф и ­
зическом уровне является одним из ключевых моментов данного курса, и
данному вопросу будет уделено достаточно много в н и м а н и я .

Логическое адресное пространство

Для адресации операндов в физическом адресном пространстве про¬


граммы используют логическую адресацию. Процессор автоматически
транслирует логические адреса в физические, выдаваемые затем на сис¬
темную шину.
Архитектура компьютера различает физическое адресное простран­
ство (ФАП) и логическое адресное пространство (ЛАП). Физическое ад­
ресное пространство представляет собой простой одномерный массив
байтов, доступ к которому реализуется аппаратурой памяти по адресу,
присутствующему на ш и н е адреса микропроцессорной системы. Логичес­
кое адресное пространство организуется самим программистом исходя из
конкретных потребностей. Трансляцию логических адресов в физические
осуществляет блок управления памятью M M U .
В архитектуре современных микропроцессоров Л А П представляется
в виде набора элементарных структур: байтов, сегментов и страниц. В ми¬
кропроцессорах используются следующие варианты организации логиче­
ского адресного пространства:
• плоское (линейное) ЛАП: состоит из массива байтов, не имеющего
определенной структуры; трансляция адреса не требуется, так как
логический адрес совпадает с физическим;
• сегментированное ЛАП: состоит из сегментов — непрерывных об­
ластей памяти, содержащих в общем случае переменное число
байтов; логический адрес содержит 2 части: идентификатор сег¬
мента и с м е щ е н и е внутри сегмента; трансляцию адреса проводит
блок сегментации M M U ;
• страничное ЛАП: состоит из страниц — непрерывных областей па­
мяти, каждая из которых содержит ф и к с и р о в а н н о е число байтов.

37
Курс Архитектура микропроцессоров

Логический адрес состоит из номера (идентификатора) страницы


и смещения внутри страницы; трансляция логического адреса в
ф и з и ч е с к и й проводится блоком страничного преобразования
MMU;
• сегментно-страничное ЛАП: состоит из сегментов, которые, в свою
очередь, состоят из страниц; логический адрес состоит из иденти­
фикатора сегмента и смещения внутри сегмента. Блок сегментно­
го преобразования M M U проводит трансляцию логического адре¬
са в номер страницы и смещение в ней, которые затем транслиру¬
ются в ф и з и ч е с к и й адрес блоком страничного преобразования
MMU.
Таким образом, основой получения физического адреса памяти слу¬
жит логический адрес. В какой-то степени логическое адресное прост¬
ранство, с которым имеет дело программист, м о ж н о сравнить со структу¬
рой к н и г и , где аналогом сегмента выступает рассказ, страница книги со¬
ответствует странице Л А П , а искомая и н ф о р м а ц и я — это некоторое
слово. П р и этом если память организована как л и н е й н а я , то номер и с к о ­
мого слова задается в я в н о м виде и просто отсчитывается от начала к н и ­
ги. П р и сегментном представлении памяти искомое слово определяется
его номером в заданном рассказе. Страничное представление памяти
предполагает задание и н ф о р м а ц и и о слове в виде номера страницы в кни¬
ге и номера слова на указанной странице. П р и сегментно-страничном
представлении логический адрес слова задается номером слова в опреде­
л е н н о м рассказе. В этом случае по оглавлению книги определяется номер
страницы, с которой начинается указанный рассказ. Затем, зная количе¬
ство слов на странице и положение слова в рассказе, м о ж н о вычислить
страницу книги и положение искомого слова на этой странице.

Формирование физического адреса


в универсальном микропроцессоре
при различных режимах работы

Микропроцессор способен работать в двух режимах: реальном и за¬


щищенном.
П р и работе в реальном режиме возможности процессора ограничены:
емкость адресуемой памяти составляет 1 Мбайт, отсутствует страничная
1 6
организация памяти, сегменты имеют фиксированную длину 2 байт.
Этот режим обычно используется на начальном этапе загрузки компьюте­
ра для перехода в защищенный режим.
В реальном режиме сегментные регистры процессора содержат стар¬
ш и е 16 бит физического адреса начала сегмента. Сдвинутый на 4 разряда

38
Лекция 3 Физическая и логическая организация адресного пространства

влево селектор дает 20-разрядный базовый адрес сегмента. Ф и з и ч е с к и й


адрес получается путем сложения этого адреса с 16-разрядным значением
смещения в сегменте, формируемого по заданному режиму адресации для
операнда или извлекаемому из регистра E I P для команды (рис. 3.1). П о
полученному адресу происходит выборка и н ф о р м а ц и и из памяти.

Базовый адрес сегмента (16 бит) Смещение в сегменте (16 бит)

Физический адрес (20 бит)

Рис. 3.1. Схема получения физического адреса

Наиболее полно возможности микропроцессора по адресации памяти


реализуются при работе в защищенном режиме. Объем адресуемой памяти
увеличивается до 4 Гбайт, появляется возможность страничного режима ад­
ресации. Сегменты могут иметь переменную длину от 1 байта до 4 Гбайт.
Общая схема ф о р м и р о в а н и я физического адреса микропроцессо¬
ром, работающим в защищенном режиме, представлена на рис. 3.2.
К а к уже отмечалось, основой ф о р м и р о в а н и я физического адреса
служит логический адрес. О н состоит из двух частей: селектора и смещения
в сегменте.
Селектор содержится в сегментном регистре микропроцессора и
позволяет найти описание сегмента (дескриптор) в специальной таблице
дескрипторов. Дескрипторы сегментов хранятся в специальных систем­
ных объектах — глобальной ( G D T ) и локальных ( L D T ) таблицах дескрип¬
торов. Дескриптор играет очень важную роль в ф у н к ц и о н и р о в а н и и мик¬
ропроцессора, от ф о р м и р о в а н и я физического адреса при различной орга¬
н и з а ц и и адресного пространства и до организации мультипрограммного
режима работы. Поэтому рассмотрим его структуру более подробно.
Сегменты микропроцессора, работающего в защищенном режиме, ха¬
рактеризуются большим количеством параметров. Поэтому в универсаль­
ных 32-разрядных микропроцессорах и н ф о р м а ц и я о сегменте хранится в

39
Курс Архитектура микропроцессоров

Рис. 3.2. Формирование физического адреса при сегментно-стра-


н и ч н о й организации памяти

специальной 8-байтной структуре данных, называемой дескриптором, а за


сегментными регистрами закреплена основная ф у н к ц и я — определение
местоположения дескриптора.
Структура дескриптора сегмента представлена на рис. 3.3.

Байт доступа Атрибуты


Базовый адрес Предел р DPL S ТИП А G D X и
3 2 2 0
4 »4 t не определен
8 байт

Рис. 3.3. Структура дескриптора сегмента

40
Лекция 3 Физическая и логическая организация адресного пространства

М ы будем рассматривать и м е н н о структуру, а не формат дескрипто­


ра, так к а к п р и переходе от микропроцессора i286 к 32-разрядному М П
расположение отдельных полей дескриптора потеряло свою стройность и
частично стало иметь вид «заплаток», поставленных с целью механичес­
кого увеличения разрядности этих полей.
32-разрядное поле базового адреса позволяет определить начальный
3 2
адрес сегмента в любой точке адресного пространства в 2 байт (4 Гбайт).
Поле предела (limit) указывает длину сегмента (точнее, длину сегмен¬
та минус 1: если в этом поле записан 0, то это означает, что сегмент имеет
длину 1) в адресуемых единицах, то есть максимальный размер сегмента
2 0
равен 2 элементов.
Величина элемента определяется одним из атрибутов дескриптора —
битом G (Granularity — гранулярность, и л и дробность):

^ _ f 0 — длина в байтах
\ 1 — длина в страницах

Таким образом, сегмент может иметь размер с точностью до 1 байта


1 2
в диапазоне от 1 байта до 1 Мбайт (при G = 0). П р и объеме страницы в 2
= 4 Кбайт м о ж н о задать объем сегмента до 4 Гбайт (при G = 1):

V = 220 х 212б й = 232 б


а й т
у
с е г м макс ^ стр л
^ байт ^иаш.

Так к а к в архитектуре IA-32 сегмент может начинаться в произволь¬


н о й точке дресного простр нств и иметь произвольную длину, сегмен¬
ты в памяти могут частично и л и полностью перекрываться.
Бит размерности D (Default size) определяет длину адресов и опе¬
р ндов, используемых в к о м нде п о умолч н и ю :

^ _ f 0 — длина в байтах
\ 1 — длина в страницах

Бит пользователя U (user) может использоваться программистами п о


своему усмотрению. К о н е ч н о , этот бит предназначен не для обычного
пользователя, а для системного программиста, применяющего его, н а ­
пример, для отметки сегментов для сбора «мусора» и л и сегментов, базо­
вые адреса которых нельзя модифицировать. Этот бит доступен только
прогр м м м, р бот ю щ и м н высшем уровне привилегий. Микропроцес¬
сор в своей работе его не меняет и не использует.
Байт доступа определяет основные правила обращения с сегментом.
Бит присутствия P (Present) показывает возможность доступа к сег­
менту. Операционная система (ОС) отмечает сегмент, передаваемый из

41
Курс Архитектура микропроцессоров

оперативной во в н е ш н ю ю память, к а к временно отсутствующий, уста­


навливая в его дескрипторе P = 0. П р и P = 1 сегмент находится в ф и з и ч е ­
ской памяти. Когда выбирается дескриптор с P = 0 (сегмент отсутствует в
ОЗУ), поля базового адреса и предела игнорируются. Это естественно: на¬
пример, к к может идти речь о б зовом дресе сегмент , если с мого сег¬
мента вообще нет в оперативной памяти? В этой ситуации процессор от¬
верг ет все последующие п о п ы т к и использов ть дескриптор в к о м нд х, и
определяемое дескриптором адресное пространство к а к бы «пропадает».
Возникает особый случай неприсутствия сегмента. П р и этом операцион­
ная система копирует з а п р о ш е н н ы й сегмент с диска в память (при этом,
возможно, удаляя другой сегмент), загружает в дескриптор базовый адрес
сегмента, устанавливает P = 1 и осуществляет рестарт той команды, кото­
рая обратилась к отсутствовавшему в О З У сегменту.
Двухразрядное поле D P L (Descriptor Privilege Level) указывает один
из четырех возможных (от 0 до 3) уровней привилегий дескриптора, опреде­
л я ю щ и й возможность доступа к сегменту со стороны тех или иных п р о -
гр м м ( уровень 0 соответствует с мому высокому уровню привилегий).
Бит обращения A (Accessed) устанавливается в «1» п р и любом обра­
щ е н и и к сегменту. Используется операционной системой для того, чтобы
отслежив ть сегменты, к которым дольше всего не было обр щ е н и й .
Пусть, например, 1 раз в секунду операционная система в дескрипторах
всех сегментов сбрасывает бит А. Если по прошествии некоторого време­
н и необходимо загрузить в оперативную память н о в ы й сегмент, места для
которого недостаточно, операционная система определяет «кандидатов»
на то, чтобы очистить часть оперативной памяти, среди тех сегментов, в
дескрипторах которых бит А до этого момента не был установлен в «1», то
есть к которым не было обращения за последнее время.
Поле типа в байте доступа определяет назначение и особенности и с ­
пользования сегмента. Если бит S (System — бит 4 байта доступа) равен 1, то
данный дескриптор описывает ре альный сегмент памяти. Если S = 0, то этот
дескриптор описывает специальный системный объект, который может и не
быть сегментом памяти, например, шлюз вызова, используемый при пере­
ключении задач, или дескриптор локальной таблицы дескрипторов LDT. На­
значение битов <3...0> байта доступа определяется типом сегмента (рис. 3.4).

4 3 2 1 0
1 1 С R А Сегмент кода

1 0 ED W А Сегмент данных

0 Т и п Системный объект

Рис. 3.4. Формат поля типа байта доступа

42
Лекция 3 Физическая и логическая организация адресного пространства

В сегменте кода:
• бит подчинения, или согласования, C (Conforming) определяет д о ­
полнительные правила обращения, которые обеспечивают з а щ и ­
ту сегментов программ. П р и C = 1 д а н н ы й сегмент является под­
ч и н е н н ы м сегментом кода. В этом случае о н намеренно лишается
защиты по привилегиям. Такое средство удобно для организации,
н пример, подпрогр м м , которые д о л ж н ы быть доступны всем
в ы п о л н я ю щ и м с я в системе задачам. П р и C = 0 — это о б ы ч н ы й
сегмент кода;
• бит считывания R (Readable) устанавливает, м о ж н о ли обращаться
к сегменту только н исполнение или н исполнение и считыв -
ние, н пример, конст нт к к д н н ы х с п о м о щ ь ю префикс з ме¬
н ы сегмента. П р и R = 0 допускается только выборка из сегмента
команд для их выполнения. П р и R = 1 разрешено также чтение
д н н ы х и з сегмент .
Запись в сегмент кода запрещена. П р и любой попытке записи воз¬
н и к ет прогр м м н о е прерыв н и е .

В сегменте данных:
• E D (Expand Down) — бит направления расширения. П р и E D = 1
этот сегмент является сегментом стека и с м е щ е н и е в сегменте
должно быть больше р змер сегмент . П р и E D = 0 — это сегмент
собственно д н н ы х (смещение должно быть м е н ь ш е и л и р вно
р змеру сегмент );
• бит разрешения записи W (Writeable). П р и W = 1 разрешено изме­
н е н и е сегмента. П р и W = 0 запись в сегмент запрещена, п р и по¬
пытке з писи в сегмент возник ет прогр м м н о е прерыв ние.
В случае о б р а щ е н и я за операндом смещение в сегменте формирует­
ся м и к р о п р о ц е с с о р о м п о режиму адресации операнда, заданному в к о ­
манде. С м е щ е н и е в сегменте кода извлекается и з регистра — указателя
команд EIP.
Сумм извлеченного из дескриптор н ч льного дрес сегмент и
сформированного смещения в сегменте дает линейный адрес (ЛА).
Если в микропроцессоре используется только сегментное представ­
л е н и е адресного пространства, то полученный л и н е й н ы й адрес является
т к ж е и физическим.
Если п о м и м о сегментного используется и страничный механизм о р ­
ганизации памяти, то линейный адрес представляется в виде двух полей:
старшие разряды содержат номер виртуальной страницы, а младшие —
с м е щ е н и е в стр нице. Преобр зов н и е номер вирту льной стр н и ц ы в
номер физической проводится с п о м о щ ь ю специальных системных таб­
лиц: каталога таблиц страниц (КТС) и таблиц страниц (ТС). П о л о ж е н и е

43
Курс Архитектура микропроцессоров

каталога таблиц страниц в памяти определяется системным регистром


C R 3 . Ф и з и ч е с к и й адрес вычисляется к а к сумма полученного из таблицы
страниц адреса физической страницы и смещения в странице, получен¬
ного из л и н е й н о г о дрес .
Рассмотрим теперь все этапы преобразования логического адреса в
ф и з и ч е с к и й более подробно.

Структура кода команды и формирование


смещения в сегменте
К а к отмечалось в ы ш е , с м е щ е н и е в сегменте кода к о м а н д извлека­
ется из регистра E I P и поэтому не требует дополнительных п о я с н е н и й .
М е х а н и з м же ф о р м и р о в а н и я смещения в сегменте д а н н ы х проводится на
основе р е ж и м а адресации операнда и требует отдельного изучения. Р а с ­
смотрим сначала структуру кода к о м а н д ы универсального 32-разрядно­
го м и к р о п р о ц е с с о р а . К о м а н д ы в архитектуре IA-32 имеют большое р а з ­
нообразие форматов, которые зависят от типа о п е р а ц и и , р е ж и м о в адре¬
с ц и и опер ндов, д л и н ы используемых непосредственных опер ндов и
с м е щ е н и й и ряда других факторов. О н и имеют длину от 1 до 15 байт. Все
это существенно затрудняет их декодирование в М П с д а н н о й архитек­
турой. Н а р и с . 3.5 представлен ф о р м а т двухоперандной к о м а н д ы обще¬
го вид .

Adress size Operand size КОП Пост байт SIB байт DISP Imm
0..1 байт 0..1 байт 0..2 б и т а П 0..1 байт 0..1 байт 0..4 байта 0..4 байта

6 и т W
Префиксы замены непосредственный операнд
разрядности (может отсутствовать)
адреса и данных

Рис. 3.5. Формат команды 32-разрядного микропроцессора

Команда может начинаться с нескольких необязательных байт (пре­


фиксов), которые определяют особенности в ы п о л н е н и я команды. П р е ­
ф и к с ы размеров д л и н ы адреса и операндов позволяют изменить их значе­
н и я , установленные п о умолчанию битом размерности D в дескрипторе
сегмента. Д л я операндов совместно с битом w, содержащимся в коде к о ­
манды, п р е ф и к с размера позволяет определить операнд д л и н о й 8, 16 или
32 разряда. П р е ф и к с размера адреса определяет 16- или 32-разрядное
смещение в сегменте ( т бл. 3.1).

44
Лекция 3 Физическая и логическая организация адресного пространства

Таблица 3.1. Использование префиксов переопределения размеров


адресов и операндов

Бит размерности D
в дескрипторе сегмента 0 0 0 0 1 1 1 1
П р е ф и к с размерности
операнда* + + + +
П р е ф и к с размерности
адреса* + + + +
Разрядность
операнда(бит)** 16/8 16/8 32/8 32/8 32/8 32/8 16/8 16/8

Разрядность адреса (бит) 16 32 16 32 32 16 32 16

Примечания:
* + — префикс присутствует;
префикс отсутствует.
** w = l/o

В коде команды могут использоваться также дополнительные байты


для префикса замены сегментного регистра, установленного по умолча­
н и ю , префикса повторения операции или префикса, предотвращающего
прерывания операции перемещения данных.
Поле К О П содержит код выполняемой команды, а также бит w размер­
ности используемых операндов. Для команд, применяющих непосредствен¬
ный операнд, код операции может также занимать также часть постбайта.
Постбайт (рис. 3.6) определяет местоположение операндов. Основ­
ная часть команд микропроцессора с архитектурой IA-32 позволяет рабо­
тать только с одним операндом, находящимся в оперативной памяти. Его
режим адресации кодируется п о л я м и md и r / m постбайта. Второй опе­
ранд либо извлекается из регистров общего назначения микропроцессора
(его номер указывается в поле reg постбайта), либо кодируется в поле Imm
самой команды (непосредственный операнд).
J
^ W

md reg r/m

Рис. 3.6. Формат постбайта

45
Курс Архитектура микропроцессоров

Байт масштабируемого индекса базы (SIB) служит для представле­


н и я сложных структур памяти. Н а его наличие указывает код 100 в поле
2 3 3

SS Index Base

r / m постбайта.
SIB-байт имеет следующую структуру (рис. 3.7):

Рис. 3.7. Формат SIB-байта

Здесь SS — поле масштаба, Index задает н о м е р одного и з Р О Н , ис¬


пользуемого в качестве и н д е к с н о г о регистра ( регистр E S P не может
быть регистром и н д е к с а ) . П о л е Base в к о м б и н а ц и и с п о л е м mod пост¬
байта указывает регистр базы и с м е щ е н и е д л я и н д е к с и р о в а н н ы х опе¬
рандов.
П р и м е н е н и е SIB-байта позволяет формировать смещение в сегмен­
те, иногда называемое э ф ф е к т и в н ы м адресом (ЭА), для операндов следу¬
ю щ и м образом:

ss
(смещение в сегменте) = [base] + [index] + disp (3.1),

где [base] — значение базового регистра, [index] — значение индексного


регистра, ss — величина масштабного множителя, disp — значение смеще­
н и я , закодированного в самой команде.
В качестве базы и л и индекса может быть использован любой регистр
общего назначения микропроцессора. Величина индекса может быть у м ­
ножена н а масштабный к о э ф ф и ц и е н т (1, 2, 4 и л и 8), что дает возмож¬
ность ссылки н а элемент массива и л и записи соответствующей длины.
С м е щ е н и е disp кодируется к а к величина со знаком в дополнительном к о ­
де. Его длина определяется значением бита D в дескрипторе сегмента, би¬
том w в первом байте команды и наличием или отсутствием префикса раз¬
рядности адреса согласно табл. 3.1.
Этот механизм отражает основные усовершенствования в способах
адресации операндов для 32-разрядной архитектуры IA-32 п о сравнению
с архитектурой x86. Различные к о м б и н а ц и и слагаемых в выражении (3.1)
дают следующие способы адресации памяти:
• прямая (только смещение),
• косвенная (только база),
• базовая относительная (база + смещение),
• индексная (индекс с масштабом),
• индексная со смещением (индекс с масштабом + смещение),

46
Лекция 3 Физическая и логическая организация адресного пространства

• базовая индексная (база + индекс с масштабом)


• относительная базовая индексная (база + индекс с масштабом +
смещение).
Главные особенности формата команд М П с архитектурой IA-32 по
сравнению с 16-разрядным микропроцессором:
• возможность использования любого и з регистров общего назначе­
ния в любом из режимов адресации;
• в о з м о ж н о с т ь и с п о л ь з о в а н и я 32-разрядных н е п о с р е д с т в е н н ы х
операндов и смещений п р и относительных режимах адресации
наряду с и м е в ш и м и с я ранее 8- и 16-разрядными;
• добавление е щ е одного режима адресации — относительного ба¬
зового индексного с масштабированием.

Сегментная организация памяти


в защищенном режиме

В основе сегментной модели памяти лежит разделение ее на неза­


в и с и м ы е адресные пространства п е р е м е н н о й д л и н ы — сегменты. Д л я
п р о г р а м м ы адресное пространство разделено на блоки смежных адре¬
сов, называемых сегментами, а программа может обращаться только к
д а н н ы м , н а х о д я щ и м с я в этих сегментах. Внутри сегментов п р и м е н я е т с я
л и н е й н а я адресация, то есть программа может обращаться к байту 0,
байту 1 и т. д. Такая адресация осуществляется относительно начала сег­
мента, и ф и з и ч е с к и й адрес, ассоциируемый, н а п р и м е р , с п р о г р а м м н ы м
адресом 0, п о существу, скрыт от программиста. Этот подход к управле­
н и ю памятью опирается на тот факт, что п р о г р а м м ы о б ы ч н о логически
разделяются на области (сегменты) кода, д а н н ы х и стека. П р и этом у п ­
рощается и з о л я ц и я программ друг от друга в мультипрограммном р е ж и ­
м е работы. К а ж д ы й сегмент имеет свое целевое назначение. Каждая за¬
дача имеет непосредственный доступ к трем о с н о в н ы м сегментам: кода,
д а н н ы х и стека, определяемых с е г м е н т н ы м и регистрами C S , D S SS с о ­
ответственно, и к трем д о п о л н и т е л ь н ы м сегментам д а н н ы х , определяе­
мых с е г м е н т н ы м и регистрами E S , F S , G S . О п и с а н и я этих сегментов с о ­
держатся в их дескрипторах. Л ю б а я программа, н е з а в и с и м о от уровня ее
п р и в и л е г и й , н е может обращаться к сегменту до тех п о р , п о к а о н н е
о п и с а н с п о м о щ ь ю дескриптора, а сам д е с к р и п т о р н е п о м е щ е н в табли¬
цу дескрипторов.
Д е с к р и п т о р ы хранятся либо в глобальной таблице дескрипторов
(Global Descriptor Table — G D T ) , либо в локальных таблицах дескрипто­
ров (Local Descriptor Table — L D T ) . В G D T содержатся дескрипторы сег­
ментов, которые доступны всем активным задачам, и м е ю щ и м с я в систе¬
ме на д а н н ы й момент. G D T может содержать любые дескрипторы сегмен-

47
Курс Архитектура микропроцессоров

тов, за исключением дескрипторов прерываний и ловушек. Обычно G D T


включает дескрипторы сегментов кодов и данных операционной систе¬
м ы , сегментов состояния задач и дескрипторы сегментов, содержащих
локальные таблицы дескрипторов. Микропроцессорная система имеет
единственную глобальную таблицу дескрипторов.
Локальная таблица дескрипторов L D T используется для хранения д е ­
скрипторов, доступных только д а н н о й задаче. И х количество определяет­
ся количеством активных задач в системе.
С точки зрения расположения в памяти, локальные таблицы дес­
крипторов представляют собой обычные сегменты. О н и могут наклады­
ваться друг на друга, частично пересекаться. Это приводит к тому, что от-
Дескрипторы Сегменты

дельные сегменты, описанные дескрипторами в своих L D T , могут разде¬


ляться несколькими задачами (рис. 3.8).

Рис. 3.8. Описание сегментов в таблицах дескрипторов

Для нахождения дескриптора в таблице дескрипторов используется


селектор, который содержится в одном из сегментных регистров. Селек­
тор представляет собой 16-разрядое слово, которое разбито на 3 поля
(рис. 3.9):
• TI (Table Indicator — индикатор таблицы) показывает, к какой таб­
лице идет обращение: TI = 0 — дескриптор находится в глобаль-

48
Лекция 3 Физическая и логическая организация адресного пространства

н о й таблице дескрипторов G D T , TI = 1 — в локальной таблице


LDT;
• Index: поле индекса — номер дескриптора в соответствующей таб¬
лице дескрипторов;

15 ... 3 2 1 0
Index TI RPL

• R P L (Request privilege level — уровень привилегий запроса). П р и об­


р а щ е н и и сравнивается с полем D P L в байте доступа дескриптора.
Обращение разрешается, если уровень привилегий запроса не ни¬
же, чем уровень привилегий дескриптора.

Рис. 3.9. Формат селектора

Максимальное количество дескрипторов, находящихся в таблице


13
дескрипторов, определяется длиной поля Index селектора и равно 2 . Так
к а к каждый дескриптор имеет длину 8 байт, м а к с и м а л ь н ы й объем любой
1 6
таблицы дескрипторов составляет 2 байт.
Каждая из таблиц дескрипторов имеет регистр ( G D T R для глобаль­
н о й таблицы и L D T R для локальной), определяющий ее положение в п а ­
мяти. Регистр G D T R содержит 48 разрядов, из которых 32 задают базовый
адрес глобальной таблицы дескрипторов, а 16 указывают ее объем в байтах
(границу таблицы). Д л я определения положения дескриптора относитель­
но начала таблицы его номер (поле Index селектора) умножается на 8, то
есть реально сдвигается на три разряда влево, так к а к длина дескриптора
составляет 8 байт. Если селектор обращается к дескриптору, содержащему­
ся в таблице G D T (при TI = 0 в селекторе), то полученное смещение срав­
нивается с хранящейся в G D T R границей таблицы. Если нарушения гра­
н и ц ы нет, то смещение прибавляется к содержащемуся в G D T R базовому
адресу, в результате чего образуется физический адрес выбираемого дес­
криптора (рис. 3.10).
Нулевой дескриптор в G D T является пустым, не используемым. С е ­
лектор с нулевым значением разрядов 2 15 называется нуль-индикато¬
ром. О н обеспечивает обращение к нулевому дескриптору G D T . Так к а к
этот дескриптор не используется, то п р и обращении к нему происходит
прерывание. Одно из возможных применений пустых селекторов заклю¬
чается в следующем. Перед инициированием задачи операционная систе¬
ма может загрузить в регистры D S и E S пустые селекторы. Если в последу¬
ющем не инициализировать эти регистры, то адресация памяти через них
вызовет особый случай (прерывание). Загрузка в L D T R пустого селектора,

49
Курс Архитектура микропроцессоров

Рис. 3.10. Получение дескриптора, находящегося в глобальной таб¬


лице дескрипторов G D T

для которого поле Index = 0, допустима. Такая операция сообщает процес­


сору о том, что в задаче не будет использоваться локальная дескрипторная
таблица. Это характерно для небольших однопользовательских систем.
Для обращения к локальной таблице дескрипторов предназначен 16-
разрядный регистр L D T R . Он содержит селектор, определяющий размеще¬
ние в G D T дескриптора используемой локальной таблицы дескрипторов.
Такая структура упрощает работу с таблицами LDT. Благодаря описанию
L D T с помощью селектора эти таблицы превращаются в обычные сегменты
памяти и, в частности, могут размещаться в любых областях памяти, участ¬
вовать в свопинге и т. п. Внутри процессора с регистром L D T R ассоцииру¬
ется так называемый «теневой регистр», в котором и хранится дескриптор
L D T текущей задачи. Это ускоряет в последующем обращение к локальной
таблице дескрипторов текущей задачи. П р и переключении с одной задачи
на другую для замены используемой L D T достаточно загрузить в регистр
L D T R селектор новой LDT, а процессор уже автоматически загрузит в тене¬
вой регистр дескриптор новой L D T при первом обращении к нему.
Если в селекторе индикатор таблицы TI = 1, то дескриптор сегмента
выбирается из локальной таблицы дескрипторов. Процесс определения ад¬
реса сегмента в этом случае представлен на рис. 3.11.
О н более сложен по сравнению с получением дескриптора из гло¬
бальной таблицы дескрипторов и проходит следующие этапы:

50
Лекция 3 Физическая и логическая организация адресного пространства

Рис. 3.11. Получение дескриптора, находящегося в локальной табли¬


це дескрипторов L D T

1. Анализируем, к какой из двух возможных таблиц дескрипторов


идет обращение. Если в селекторе TI = 1, то обращение идет к ло¬
кальной таблице дескрипторов.
2. Находим дескриптор локальной таблицы дескрипторов в глобаль¬
н о й таблице дескрипторов.
3. Считываем дескриптор L D T в «теневой» регистр регистра L D T R
микропроцессора. После считывания дескриптора в «теневой»
регистр дальнейшее обращение к сегменту аналогично обраще¬
н и ю к G D T , где вместо G D T R используются поля базового адре­
са и предела из дескриптора L D T R , находящегося в «теневом» ре¬
гистре.
4. П о адресу локальной таблицы дескрипторов, находящемуся в ее
дескрипторе, и номеру дескриптора из обрабатываемого селектора
находим дескриптор сегмента в локальной таблице дескрипторов.
5. Записываем дескриптор сегмента в «теневой» регистр сегментно­
го регистра микропроцессора для ускорения последующих обра¬
щ е н и й к искомому сегменту.
Таким образом, при обращении к сегменту через таблицу L D T п о я в ­
ляется дополнительный уровень вложенности, с н и ж а ю щ и й быстродейст-

51
Курс Архитектура микропроцессоров

вие микропроцессора. «Теневые» регистры микропроцессора частично


обеспечивают р е ш е н и е этой проблемы.
Поле адреса дескриптора, полученного и з локальной или глобаль¬
ной таблицы дескрипторов, определяет начало искомого сегмента. П р и
суммировании полученного базового адреса сегмента и с м е щ е н и я в сег­
менте получается линейный адрес искомой я ч е й к и памяти.
В случае если режим страничной адресации выключен (в регистре
C R 0 бит P G = 0), полученный л и н е й н ы й адрес равен физическому адре¬
су искомого операнда и л и команды.
Рассмотрим подробнее процесс получения адреса операнда на при¬
мере команды

M O V E A X , [ECX+ESI+20h].

В этой команде нет специальных указаний об использовании сег¬


мента, поэтому она обращается к текущему сегменту данных, селектор
которого п о умолчанию находится в сегментном регистре D S .
Пусть (DS) = 0000000000011.0.XXb.
Ф о р м и р о в а н и е физического адреса операнда включает следующие
действия (для сегментированного Л А П ) :
1. Образовать эффективный адрес (вычислить смещение в сегменте):

E A = (ECX)+(ESI)+20h.

2. Выбрать 3-й дескриптор (Index = 3) и з G D T (TI = 0). Д л я этого:


а) считать базовый адрес глобальной т а б л и ц ы д е с к р и п т о р о в
(АбазGDт) и з G D T R ;
б) вычислить А ^ о о т + (Index)*8;
в) обратиться по полученному адресу в память и считать нужный
дескриптор.
3. Получить линейный адрес: Л А = E A + Абаз дескр.3, где Абаз дескр.3 —
базовый адрес сегмента из считанного дескриптора с номером 3.
4. Так к а к п р и сегментной организации адресного пространства ли­
нейный адрес равен физическому, следует обратиться к памяти по
сформированному адресу и передать двойное слово в E A X .
П р и T I = 1 потребовалось бы еще одно обращение к памяти для счи­
тывания дескриптора L D T из G D T .
Чтобы сократить число обращений к памяти (а такой процесс дол¬
ж е н проходить и п р и считывании кода каждой команды), в микропроцес¬
сорах с архитектурой IA-32 применяется так называемое к э ш и р о в а н и е де­
скрипторов. К э ш и р о в а н и е опирается на тот факт, ч т о обращение к п а м я ­
ти производятся гораздо чаще, ч е м изменение используемых сегментов и

52
Лекция 3 Физическая и логическая организация адресного пространства

переключение задач. Поэтому с каждым регистром, содержащим селекто¬


ры тех или иных сегментов (сегментные регистры, а также регистры ло¬
кальной таблицы дескрипторов L D T R и регистр задач T R ) , ассоциируются
«теневые», или кэш-регистры.
П р и первом считывании дескриптора, определяемого д а н н ы м селек¬
тором, процессор автоматически считывает (кэширует) нужный дескрип¬
тор в соответствующий «теневой» регистр. Поскольку теперь дескриптор
находится внутри М П , для получения линейного адреса памяти потребу­
ется только сформировать э ф ф е к т и в н ы й адрес и просуммировать его с
базовым адресом сегмента из нужного «теневого» регистра.
Так как программа обычно редко модифицирует регистры с селекто¬
рами, в защищенном режиме она будет выполняться примерно с такой же
скоростью, как и в реальном режиме.
П о м и м о локальной и глобальной таблиц дескрипторов в микропро¬
цессорной системе используется также дескрипторная таблица прерыва­
ний (IDT). Она содержит дескрипторы специальных системных объектов,
которые определяют точки входа в процедуры обработки прерываний.
I D T служит заменой таблицы векторов прерываний 16-разрядного м и к ­
ропроцессора. Обращение к ней проводится только аппаратными средст¬
вами М П при возникновении аппаратных прерываний или особых случа¬
ев при в ы п о л н е н и и программы. Программы самостоятельно не могут об­
ратиться к IDT, так как единственный бит индикатора таблицы в селекторе
сегмента идентифицирует только G D T или L D T .
Д о перевода процессора в защищенный режим необходимо создать
т а б л и ц ы G D T и I D T и соответственно и н и ц и а л и з и р о в а т ь регистры
G D T R и I D T R . Таблицы G D T и I D T определяются при загрузке в соот¬
ветствующие регистры G D T R и I D T R базового адреса и предела. Это дей¬
ствие осуществляется только один раз в ходе подготовки к переходу в за­
щищенный режим, и в дальнейшем содержимое G D T R и I D T R не и з м е н я ­
ется. Это значит, что местонахождение таблиц G D T и I D T в известном
смысле ф и к с и р о в а н о , и они не могут участвовать в свопинге.

Страничная организация памяти

Страничная организация памяти применяется только в защищенном


режиме, если в регистре управления C R 0 бит P G = 1.
Основное п р и м е н е н и е страничного преобразования адреса связано
с реализацией виртуальной памяти, которая позволяет программисту и с ­
пользовать большее пространство памяти, чем физическая основная па­
мять.
П р и н ц и п виртуальной памяти предполагает, что пользователь при
подготовке своей программы имеет дело не с физической О П , действи-

53
Курс Архитектура микропроцессоров

тельно работающей в составе компьютера и имеющей некоторую фикси¬


рованную емкость, а с виртуальной (кажущейся) одноуровневой п а м я ­
тью, емкость которой равна всему адресному пространству, определяемо­
му размером адресной ш и н ы ( Х ) компьютера:
ш а

V >> у ф

' вирт ^ ^ ' физ?


V вирт = 2Lша

Для 32-разрядного микропроцессора:


3 2
Vвирт = 2 = 4 Гбайт.
Программист имеет в своем распоряжении адресное пространство,
ограниченное л и ш ь разрядностью адресной ш и н ы , независимо от реаль­
ной емкости оперативной памяти компьютера и объемов памяти, кото­
р ы е используются другими программами, параллельно обрабатываемыми
в мультипрограммной Э В М .
Виртуальная память, обеспечивая возможность программисту обра­
щаться к очень большому объему непрерывного адресного пространства,
предоставляемого в его монопольное распоряжение, обладает о б ы ч н ы м и
свойствами: побайтовая адресация, время доступа, сравнимое со време­
нем доступа к оперативной памяти.
На всех этапах подготовки программ, включая загрузку в память,
программа представляется в виртуальных адресах, и л и ш ь при выполне­
н и и м а ш и н н о й команды виртуальные адреса преобразуются в физичес­
кие. Для каждой программы, выполняемой в мультипрограммном р е ж и ­
ме, создается своя виртуальная память. Каждая программа использует од¬
н и и те ж е виртуальные адреса от нулевого до максимально большого в
д а н н о й архитектуре.
Для преобразования виртуальных адресов в физические физическая
и виртуальная память разбиваются на блоки ф и к с и р о в а н н о й д л и н ы , на¬
зываемые страницами. Объемы виртуальной и физической страниц совпа¬
дают. С т р а н и ц ы виртуальной и физической памяти нумеруются. Отсутст­
вующие в физической памяти страницы обычно хранятся во в н е ш н е й па­
мяти. Ф и к с и р о в а н н ы й размер всех страниц позволяет загрузить любую
нужную виртуальную страницу в любую физическую.
К а к отмечалось в ы ш е , при страничном представлении памяти в и р ­
туальный (логический) адрес представляет собой номер виртуальной
страницы и смещение внутри этой страницы. В свою очередь, физичес¬
к и й адрес — это номер физической страницы и смещение в ней.
Правила перевода н о м е р о в виртуальных страниц в номера физиче¬
ских страниц о б ы ч н о задаются в виде т а б л и ц ы страничного преобразо­
вания. Такие т а б л и ц ы формируются системой управления памятью и
м о д и ф и ц и р у ю т с я каждый раз п р и перераспределении памяти. Опера­
ц и о н н а я система п о с т о я н н о отслеживает состояние виртуальных стра-

54
Лекция 3 Физическая и логическая организация адресного пространства

н и ц той и л и и н о й п р о г р а м м ы и определяет, находится л и она в опера­


т и в н о й п а м я т и , и если находится, то в к а к о м к о н к р е т н о месте. П р и к л а д ­
н ы е п р о г р а м м ы не касаются процесса страничного п р е о б р а з о в а н и я ад­
реса и могут использовать все адресное пространство. П р о ц е с с о р авто­
м а т и ч е с к и формирует о с о б ы й случай неприсутствия, когда программа
Виртуальный адрес
Номер программы Номер виртуальной страницы Смещение в странице
п р L

г
Таблица
страничного

преобразования
m=f(n,p)

Уг Физический адрес \г
т L
Номер физической страницы Смещение в странице

обращается к странице, отсутствующей в ф и з и ч е с к о й памяти. П р и об­


работке этого особого случая О С загружает затребованную страницу и з
в н е ш н е й п а м я т и , п р и н е о б х о д и м о с т и отправляя некоторую другую
страницу н а д и с к (процесс свопинга).
Перевод виртуальных адресов в физические проиллюстрирован на
рис. 3.12.

Рис. 3.12. П р и н ц и п преобразования виртуального страничного адре¬


са в ф и з и ч е с к и й

Рассмотрим п р и м е р преобразования адреса виртуальной страницы


в адрес ф и з и ч е с к о й страницы. Пусть компьютер использует адресное
пространство, предполагающее разбиение н а страницы объемом ^ = 1, т р

и имеет оперативную память V o = 3 страницы. Пусть н а компьютере


3 y

одновременно в ы п о л н я ю т с я четыре программы, и м е ю щ и е следующее


количество страниц: V = 2, V = 1, V = 3, V = 2. Переключение между
A B C D

программами происходит через время кванта t = 1. Время в ы п о л н е н и я


k

каждой страницы л ю б о й программы составляет t = 2t . Полагаем, что k

страницы программ загружаются в оперативную память по мере необхо­


димости и по возможности в свободные области ОЗУ. Если вся память
занята, то н о в а я страница замещает ту, к которой дольше всего не было
обращений.

55
Курс Архитектура микропроцессоров

Таблица 3.2. П р и м е р страничного распределения памяти в мульти­


программной Э В М

Такты
Страница 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Динамическое распределение оперативной памяти
ОЗУО АО АО АО DO DO DO СО СО СО С1 С1 С1 С1 С1 С1 С1
1 ВО ВО ВО АО АО АО DO DO DO D1 D1 D1 D1 D1 D1
2 СО СО СО ВО ВО ВО А1 А1 А1 А1 А1 А1 С2 С2
Таблица страничного преобразования для программы А
А 0 0 0 1 1 1
1 - 2 2 2 2 2 2
Таблица страничного преобразования для программы В
В 0 - 1 1 1 - 2 2 2
Таблица страничного преобразования для программы С
С 0 - - 2 2 2 - 0 0 0
1 0 0 0 0 0 0 0
2 2 2
Таблица страничного преобразования для программы D
D 0 - - 0 0 0 - 1 1 1
1 1 1 1 1 1 1

П р и таких условиях таблица загрузки оперативной памяти и табли­


ц ы страничного преобразования для каждой программы будут иметь вид,
представленный в табл. 3.2.
В таблице распределения оперативной памяти выделены номера ак­
тивных в д а н н о м такте страниц. В таблицах страничного преобразования
прочерками отмечены ситуации, когда данная виртуальная страница от­
сутствует в оперативной памяти.
Если каждая страница имеет объем 1000 адресуемых ячеек, то, на­
пример, в такте 9 обращение по виртуальному адресу 1100 программы A
(виртуальная страница 1, смещение в странице равно 100) приведет к об­
р а щ е н и ю по физическому адресу 2100 (физическая страница 2, смещение
в физической странице такое же, к а к и в виртуальной, то есть 100).

Рассмотрим теперь применение этих общих п р и н ц и п о в странично­


го преобразования адреса в микропроцессоре с архитектурой IA-32 при
объеме страницы в 4 Кбайт.
Основой страничного преобразования служит 32-разрядный линейный
адрес, полученный на этапе сегментного преобразования логического адре­
са. Страничное преобразование выполняется при значении бита P G = 1 в
управляющем регистре CR0.

56
Лекция 3 Физическая и логическая организация адресного пространства

В этом случае старшие 20 разрядов линейного адреса фактически пред­


ставляют собой номер виртуальной страницы. Однако п р и прямом одно­
ступенчатом преобразовании этого номера в номер физической страницы
2 0
необходима таблица из 2 элементов длиной 4 байта каждый (20-разряд­
н ы й номер страницы плюс некоторая дополнительная информация), т. е. 4
Мбайт. В мультипрограммной среде такая таблица может потребоваться
для каждой задачи. Эта таблица должна постоянно храниться в оператив­
ной памяти, чтобы существенно не увеличивать время формирования ф и ­
зического адреса. Д л я этих целей потребуется постоянное резервирование
существенной части емкости ОЗУ, что на этапе появления первых Э В М на
основе М П с архитектурой IA-32 было практически невозможно.
Вместо этого микропроцессор использует двухступенчатое страничное
преобразование адреса. Корневая страница, называемая каталогом таблиц
страниц (КТС), содержит 1024 32-разрядных элемента каталога таблиц
страниц (ЭКТС — P D E page directory entry). Каждый из них адресует подчи­
ненную таблицу страниц (ТС), то есть всего допускается до 1024 подчинен­
ных таблиц страниц. Каждая из таблиц страниц содержит 1024 32-разряд­
ных элемента таблицы страниц (ЭТС — P T E page table entry), каждый из ко¬
торых и адресует физическую страницу. Таким образом, общее количество
20
адресуемых физических страниц равно 2 , то есть все виртуальное адресное
2 0 3 2
пространство (4 Кбайт * 2 элементов = 2 байт). Каждая таблица занима­
ет 1024 х 4 = 4 Кбайт, то есть ровно 1 страницу. Общий объем таблиц, и с ­
пользуемых для страничного преобразования, не уменьшился, а даже н е ­
сколько возрос за счет использования каталога таблиц страниц. Однако, в о -

Рис. 3.13. Страничное преобразование линейного адреса в физический

57
Курс Архитектура микропроцессоров

первых, практически всегда в системе этот размер можно существенно


уменьшить за счет того, что некоторые линейные адреса никогда не будут
сформированы (а эту информацию дают таблицы дескрипторов сегментов),
и для них не нужно создавать таблицу страниц. А во-вторых, в оперативной
памяти должны постоянно находиться лишь каталог таблиц страниц и табли­
ца страниц выполняемой в настоящее время программы. Остальные табли­
цы страниц могут временно храниться во внешней памяти.
Таким образом, преобразование линейного адреса в физический
имеет вид, представленный на рис. 3.13.
Старшие 20 разрядов линейного адреса разбиваются на два 10-раз­
рядных поля: поле номера элемента каталога таблиц страниц и поле номера
элемента таблицы страниц. Так к а к и каталог таблиц страниц, и каждая таб¬
лица страниц занимают ровно 1 страницу и выровнены по границе стра-

31...12 11 109 87 6 5 4 3 2 1 0
Абаз Резерв ОС 0 0 D А PCD PWT U/S R/W Р

н и ц ы , то младшие 12 разрядов их базового адреса равны нулю, и для о п ­


ределения их физического адреса достаточно 20-разрядного поля.
Для каталога таблиц страниц его 20-разрядный адрес находится в р е ­
гистре управления C R 3 . К Т С постоянно находится в памяти и не участву¬
ет в свопинге.
Старшие 20 разрядов физического адреса таблицы страниц извлека­
ются из ЭТС. Структуры элемента К Т С и элемента ТС схожи (рис. 3.14).

Рис. 3.14. Структура элементов каталога таблиц страниц и таблицы


страниц

Старшие 20 разрядов элемента дают базовый адрес таблицы страниц


(в Э К Т С ) и л и физической страницы (в ЭТС). Б и т ы P, A , R / W и U / S име¬
ют определенное сходство с аналогичными атрибутами дескриптора сег¬
мента, другие биты имеют специфическое назначение.
Бит присутствия P показывает, отображается л и адрес страничного
кадра (таблицы страниц и л и страницы памяти) на страницу в физической
памяти. П р и P = 1 страница присутствует в ОЗУ. П р и P = 0 страницы в па­
мяти нет, и обращение к этой странице вызывает прерывание типа «стра­
ничное нарушение».
Бит доступа А устанавливается микропроцессором в состояние А = 1
п р и обращении к данному страничному кадру для записи и л и чтения ин¬
формации.

58
Лекция 3 Физическая и логическая организация адресного пространства

Бит модификации D (Dirty — «грязный») устанавливается процессо­


р о м равным 1 в элементе Э Т С п р и записи на данную страницу. Д л я эле­
ментов каталога таблиц страниц значение бита D является неопределен­
н ы м . П р и загрузке страницы в память операционная система сбрасывает
бит D . Если при необходимости выгрузки страницы во в н е ш н ю ю память
оказывается, что для н е е D = 0, это означает, что к странице в памяти н е
было обращений на запись, во в н е ш н е й памяти есть ее точная к о п и я , и
реально передавать страницу и з памяти на д и с к н е нужно. Тем самым э к о ­
номится время при свопинге.
Бит чтения-записи R / W и бит U / S (user/supervisor — пользова­
тель/супервизор) определяют права доступа к таблице страниц и л и к
странице для программ с различными уровнями привилегий. Д л я стра­
н и ц существует только 2 уровня привилегий: уровень супервизора ( U / S =
0), соответствующий значению D P L сегмента 0, 1, 2, и уровень пользова­
теля ( U / S = 1), соответствующий D P L = 3. Если к странице осуществля­
ется запрос с уровнем привилегий 3 (программы пользователя), то при
значении U / S = 0 ему запрещается доступ к соответствующей таблице
или странице. Если U / S = 1, то при значении R / W = 0 разрешается толь-
ко чтение таблицы или страницы, а при R / W = 1 — и чтение, и запись.
П р и запро сах с большими привилегиями (системные программные уров-
н и 0, 1, 2) допускается! запись и чтение таблиц и страниц п р и любых зна-
чениях U / S , R / W (табл. 3.3).

Таблица 3.3. Допустимые действия со страницами на различных


уровнях привилегий

U/S R/W Допустимо Допустимо


для уровня 3 для уровней 0, 1, 2
0 Х Ничего Чтение/запись
1 0 Чтение Чтение/запись
1 1 Чтение/запись Чтение/запись

Биты PWT и P C D используются для управления работой кэш-памяти


при страничной адресации. Бит P C D — запрещение кэширования страни¬
цы. П р и P C D = 1 кэширование запрещено. Бит PWT — бит обратной запи¬
си страниц. Определяет метод обновления внешней кэш-памяти (кэш 2-го
уровня). П р и PWT = 1 — обновление проводится методом сквозной запи­
си (как для внутреннего кэша), при PWT = 0 — методом обратной записи.
Биты 9...11 в Э К Т С и ЭТС зарезервированы за операционной систе­
мой. Процессор никогда н е использует и н е изменяет эти биты. Разработ­
ч и к и О С могут привлечь эти биты для хранения и н ф о р м а ц и и о «старе-

59
Курс Архитектура микропроцессоров

нии» страниц, чтобы определять страницы, подлежащие замене из в н е ш ­


ней памяти, и для других целей.

Старшие 10 разрядов линейного адреса совместно с содержимым р е ­


гистра управления C R 3 определяют необходимый элемент каталога таб­
лиц страниц. Следующие 10 разрядов линейного адреса содержат номер
элемента в выбранной таблице страниц.
Так к а к и Э К Т С , и ЭТС имеют длину 4 байта, для получения смеще­
н и я начала элемента относительно начала соответствующей таблицы не¬
обходимо его номер умножить на 4.
Последние 12 разрядов линейного адреса содержат смещение в стра­
нице. Таким образом, сумма с м е щ е н и я в странице и базового адреса стра­
н и ц ы , извлеченного из ЭТС, дает физический адрес искомого байта.

Рис. 3.15. Структура буфера T L B ассоциативной трансляции стра¬


ничного адреса

60
Лекция 3 Физическая и логическая организация адресного пространства

Буфер ассоциативной трансляции


страничного адреса
Страничная организация памяти требует двух дополнительных обра­
щ е н и й к памяти: для считывания Э К Т С и ЭТС. Чтобы не ухудшать п р о ­
изводительность процессора, в схемы управления страничным преобра­
зованием адреса встроен буфер ассоциативной трансляции страничного ад­
реса (Translation Lookaside Buffer — T L B ) .
Когда программа формирует линейный адрес, который отображен на
находящийся в T L B элемент P T E , преобразование выполняется без д о ­
полнительных обращений к памяти.
T L B представляет собой память с ассоциативной выборкой, которая
содержит 20-разрядные базовые адреса 32 страниц. Каждый из базовых
адресов имеет свой п р и з н а к (тег), в качестве которого используются стар­
шие разряды линейного адреса.
Программы не могут управлять к э ш и р о в а н и е м элементов P T E . Д и с ­
петчер памяти M M U кэширует каждый используемый элемент P T E до за­
п о л н е н и я буфера. П р и заполненном T L B процессор может найти стра­
ничную и н ф о р м а ц и ю для 128 Кбайт физической памяти (32 страницы по
4 Кбайт). П р и такой емкости T L B доля к э ш - п о п а д а н и й составляет в сред­
нем 98 %.

тэг Абаз. физ. страницы V | D |U/S|R/W|PWT|PCD|


17 бит 20 бит

T L B состоит из модуля основной памяти, блока L R U , используемо­


го при ее обновлении, и логики обслуживания (рис. 3.15).
Основной модуль памяти содержит 8 блоков, каждый из них содер­
жит и н ф о р м а ц и ю о 4 страницах, для которых ранее производилось пре¬
образование страничного адреса. Таким образом, основной модуль содер¬
жит 32 строки, позволяющие непосредственно, без обращения к К Т С и
таблице страниц, определить базовый физический адрес для одной из 32
страниц, параметры которой загружены в T L B .
Каждая строка T L B содержит и н ф о р м а ц и ю , необходимую для ее в ы ­
бора (тег, биты, определяющие доступ к странице), и и н ф о р м а ц и ю о в ы ­
бираемой странице (базовый адрес, атрибуты). Ее структура представлена
на рис. 3.16.

Рис. 3.16. Формат строки модуля основной памяти T L B

Поля базового адреса физической страницы и атрибуты D , U / S , R/W,


PWT, P C D аналогичны соответствующим полям в ЭТС. Поле тега содер-

61
Курс Архитектура микропроцессоров

жит старшие разряды линейного адреса, для которого номер виртуальной


страницы преобразовывался в номер физической страницы. Бит V опреде­
ляет достоверность хранимой в данной строке и н ф о р м а ц и и (V = 0 — неза­
полненная строка, V = 1 — достоверная информация).
После ф о р м и р о в а н и я линейного адреса 3 младших разряда поля н о ­
мера виртуальной страницы (биты 14 12 линейного адреса) определяют
номер одного и з 8 блоков T L B . Старшие 17 разрядов (биты 31...15) Л А
сравниваются одновременно ассоциативным образом с 17 битами тегов,
содержащихся в каждой из 4 строк выбранного блока, с учетом бита д о ­
стоверности V каждой строки. Если для некоторой строки сравнение про¬
шло успешно, значит, эта строка содержит и н ф о р м а ц и ю по и с к о м о й фи¬
зической странице. То есть для нее преобразование виртуального адреса в
ф и з и ч е с к и й уже выполнялось, и результат этого преобразования содер­
жится в найденной строке. Указанный в найденной строке базовый адрес
обеспечивает выборку нужной физической страницы.
Если совпадения н е было, то базовый адрес нужной страницы отсут­
ствует в T L B , и преобразование страничного адреса проводится обычным
путем с обращением к К Т С и ТС. Полученная и з таблицы страниц и н ф о р ­
м а ц и я о физической странице вместе с 17 старшими разрядами линейного
адреса (тег) заносится в строку одного и з блоков T L B , номер которого за­
дается битами 14...12 линейного адреса.
Выбор одной и з 4 строк адресованного блока, в которую заносится
новое содержимое (тег, базовый адрес и др.), определяется п р и н я т ы м м е ­
ханизмом замещения.
Для T L B принят механизм замещения наиболее долго неиспользуе­
мой строки (least recently used — L R U ) . П р и этом выбор замещаемой стро­
ки в блоке определяется битами B0, B 1 , B2 (биты L R U ) , которые хранят­
ся в дополнительном модуле памяти T L B . Этот модуль содержит 8 строк
по 3 разряда каждая. Строка модуля соответствует одному и з блоков о с ­
новной памяти T L B . Логика обслуживания T L B переопределяет биты
строки L R U по мере обращения к соответствующим строкам блока T L B .
В любой момент сочетание разрядов B0...B2 указывает, к какой и з строк
данного блока дольше всего н е было обращения. И м е н н о эта строка и за­
мещается п р и необходимости записи новой строки, если все 4 строки
блока уже заполнены. Заполненность строки определяется значением би¬
та ее достоверности V.
П р и и н и ц и а л и з а ц и и все биты B0, B 1 , B2 для всех блоков сбрасыва­
ются в «0». В ходе работы биты B0, B 1 , B2 п р и н и м а ю т значения в соответ­
ствии с алгоритмом L R U следующим образом. Если последнее обраще¬
н и е в текущем блоке производилось к строкам L0 или L 1 , устанавливает¬
ся B0 = 1. Если ж е о н о осуществлялось к L3 или L 4 , то B0 = 0. П р и
проверке пары строк L0:L1 в случае последнего обращения к L0 устанав-

62
Лекция 3 Физическая и логическая организация адресного пространства

ливается B1 = 1, в противном случае B1 = 0. П р и проверке пары строк


L2:L3 в случае последнего обращения к L2 устанавливается B2 = 1, в п р о ­
тивном случае B2 = 0 (табл. 3.4).

Таблица 3.4. Порядок изменения бит в строке L R U

Бит LRU Последнее обращение


B0 = 1 L0 или L1
B0 = 0 L2 или L3
B1 = 1 L0
B1 = 0 L1
B2 = 1 L2
B2 = 0 L3
П р и поиске подлежащей замене строки в блоке, если все 4 строки
достоверны, вначале проверяется, к какой из пар строк L0:L1 или L2:L3
производилось последнее обращение. Затем производится анализ внутри
пары, отобранной на предыдущем этапе. Таким образом, замена строки в
блоке T L B в случае, когда о н и все достоверны, проводится в соответствии
с табл. 3.5.

Таблица 3.5. П о р я д о к замены строк в блоке T L B

B0 B1 B2 Заменяемая строка
0 0 X L0
0 1 X L1
1 X 0 L2
1 X 1 L3

В п р и н ц и п е , для того чтобы задать номер одной из 4 строк, достаточ­


но 2-разрядного кода. Н о при этом механизм, определяющий строку, к
которой дольше всего не было обращений, может оказаться достаточно
сложным. Здесь ж е путем добавления всего л и ш ь одного бита получаем
прозрачный механизм к а к по установке этих разрядов, так и по определе¬
н и ю строк, подлежащих замене.
Хранение элементов таблиц страниц в T L B таит в себе опасность, свя­
занную с модификацией ЭТС «на лету», то есть в ходе выполнения програм­
мы. Предположим, что в программе предусматривается вносить изменения
в каталог таблиц страниц или в таблицы страниц. После подготовки необхо­
димых таблиц и разрешения страничного преобразования процессор будет
загружать ЭТС в T L B до заполнения. Затем по мере необходимости процес­
сор заменяет старые элементы новыми. Пусть теперь программа изменила
некоторый ЭТС, хранящийся в памяти. Если измененный элемент уже на-

63
Курс Архитектура микропроцессоров

ходится в T L B , процессор будет пользоваться его старым значением, так как


он н е может узнать о том, что этот элемент в памяти был модифицирован.
Для преодоления этой коллизии программисту необходимо после
всей подготовки к и з м е н е н и ю Э Т С сразу ж е перезагрузить регистр C R 3 ,
например, с п о м о щ ь ю такой пары команд:

MOV EAX, CR3


MOV CR3, E A X

П р и любой перезагрузке регистра C R 3 все биты достоверности в


T L B сбрасываются (V = 0), и М П будет вынужден проводить новые пре­
образования страничного адреса для всех страниц, загружая п р и этом в
T L B и м о д и ф и ц и р о в а н н ы й ЭТС.
Аналогичные операции выполняются при отсутствии страницы в
оперативной памяти (P = 0), н о уже операционной системой. Страничное
нарушение п р и отсутствии страницы в оперативной памяти вызывает
следующие действия:
1) операционная система копирует запрошенную страницу с диска в
оперативную память;
2) О С загружает адрес страничного кадра в элемент таблицы стра¬
н и ц или каталога таблиц страниц и устанавливает P = 1. П р и этом
могут быть установлены и другие биты, например, R / W ;
3) так к а к в T L B может оставаться к о п и я старого Э К Т С или Э Т С ,
операционная система очищает его;
4) осуществляется рестарт команды, вызвавшей страничное нару¬
шение.
Расширение объемов обрабатываемой и н ф о р м а ц и и , особенно муль¬
тимедийной, вместе с увеличением функциональных возможностей мик¬
ропроцессоров и микропроцессорных систем в целом, привело к сущест¬
венному и з м е н е н и ю в параметрах страниц. Современные микропроцес¬
с о р ы , с о х р а н я я главную о с о б е н н о с т ь с т р а н и ч н о й о р г а н и з а ц и и —
постоянство объема страницы, обеспечивают возможность использова­
н и я широкого диапазона их размеров. Так, в микропроцессоре Itanium на
аппаратном уровне поддерживаются страницы емкостью 4/8/16/64/256
Кбайт, 1/4/16/64/256 Мбайт.

Краткие итоги. В лекции рассмотрено физическое и логическое


представление памяти. П о к а з а н о б щ и й механизм ф о р м и р о в а н и я физиче¬
ского адреса при сегментно-страничном представлении адресного прост¬
ранства. Рассмотрен порядок ф о р м и р о в а н и я адреса блоком сегментации
и блоком страничного преобразования микропроцессора. П о к а з а н ы с п о ­
собы, обеспечивающие сокращение времени такого преобразования.

64
Лекция 4 Организация и принципы работы кэш-памяти

Лекция 4. Организация и принципы работы


кэш-памяти

Цель лекции: рассмотреть назначение и общие п р и н ц и п ы построе­


н и я к э ш - п а м я т и микропроцессора, а также особенности ее использова­
н и я в мультимикропроцессорных системах.

Общие принципы функционирования кэш-памяти

Кэш-память ( К П ) , или кэш, представляет собой организованную в


виде ассоциативного запоминающего устройства (АЗУ) быстродействую­
щую буферную память ограниченного объема, которая располагается
между регистрами процессора и относительно медленной основной памя¬
тью и хранит наиболее часто используемую и н ф о р м а ц и ю совместно с ее
признаками (тегами), в качестве которых выступает часть адресного кода.
В процессе работы отдельные блоки и н ф о р м а ц и и копируются из о с ­
новной памяти в к э ш - п а м я т ь . П р и обращении процессора за командой
или д а н н ы м и сначала проверяется их наличие в К П . Если необходимая
и н ф о р м а ц и я находится в к э ш е , она быстро извлекается. Это кэш-попада­
ние. Если необходимая и н ф о р м а ц и я в К П отсутствует (кэш-промах), то
она выбирается из основной памяти, передается в микропроцессор и од­
новременно заносится в к э ш - п а м я т ь . П о в ы ш е н и е быстродействия в ы ­
числительной системы достигается в том случае, когда кэш-попадания ре­
ализуются намного чаще, чем кэш-промахи.
Зададимся вопросом: «А как определить наиболее часто используе­
мую и н ф о р м а ц и ю ? Неужели сначала кто-то анализирует ход выполнения
программы, определяет, к а к и е команды и д а н н ы е ч а щ е используются, а
потом, при следующем запуске программы, эти д а н н ы е переписываются
в к э ш - п а м я т ь и уже тогда программа выполняется эффективно?» К о н е ч ­
но нет. Хотя в современных микропроцессорах имеется определенный
механизм, который позволяет в некоторой степени реализовать этот
п р и н ц и п . Н о в основном, конечно, к э ш - п а м я т ь сама отбирает и н ф о р м а ­
ц и ю , которая ч а щ е всего используется. Рассмотрим, как это происходит.

Механизм сохранения информации в кэш-памяти


П р и включении микропроцессора в работу вся и н ф о р м а ц и я в его
к э ш - п а м я т и недостоверна.
П р и обращении к памяти микропроцессор, как уже отмечалось, сна­
чала проверяет, не содержится ли искомая и н ф о р м а ц и я в к э ш - п а м я т и .
Для этого с ф о р м и р о в а н н ы й им физический адрес сравнивается с адреса­
ми ячеек памяти, которые были ранее к э ш и р о в а н ы из ОЗУ в К П .

65
Курс Архитектура микропроцессоров

П р и первом обращении такой и н ф о р м а ц и и в к э ш - п а м я т и , естест­


венно, нет, и это соответствует кэш-промаху. Тогда микропроцессор п р о ­
водит обращение к оперативной памяти, извлекает нужную и н ф о р м а ­
ц и ю , использует ее в своей работе, но одновременно записывает эту ин¬
формацию в кэш.
Если бы в к э ш - п а м я т ь заносилась только востребованная м и к р о п р о ­
цессором в д а н н ы й момент и н ф о р м а ц и я , то, скорее всего, при следую­
щ е м обращении вновь произошел бы кэш-промах: вряд ли следующее об¬
ращение произойдет к той же самой команде или к тому же самому опе¬
ранду. Кэш-попадания происходили бы л и ш ь после того, к а к в К П
накопится достаточно большой фрагмент программы, содержащий н е к о ­
торые циклические участки кода, или фрагмент данных, подлежащих п о ­
вторной обработке. Для того чтобы уже следующее обращение к К П п р и ­
водило к а к м о ж н о чаще к кэш-попаданиям, передача из оперативной па­
м я т и в к э ш - п а м я т ь п р о и с х о д и т не теми п о р ц и я м и (байтами и л и
словами), которые востребованы микропроцессором в д а н н о м обраще¬
н и и , а так называемыми строками. То есть к э ш - п а м я т ь и оперативная па­
мять с точки зрения к э ш и р о в а н и я организуются в виде строк. Д л и н а
строки превышает максимально возможную длину востребованных мик¬
ропроцессором данных. Обычно она составляет от 16 до 64 байт и выров­
нена в памяти по границе соответствующего раздела (рис. 4.1).

рш
строка кэш-памяти
< •

востребованная информация

Рис. 4.1. Организация обмена между оперативной и к э ш - п а м я т ь ю

Высокий процент кэш-попаданий в этом случае обеспечивается бла­


годаря тому, что в большинстве случаев программы обращаются к я ч е й ­
кам памяти, расположенным вблизи от ранее использованных. Это свой­
ство, называемое принципом локальности ссылок, обеспечивает э ф ф е к т и в ­
ность и с п о л ь з о в а н и я К П . О н о подразумевает, что п р и и с п о л н е н и и
программы в течение некоторого относительно малого интервала време¬
н и происходит обращение к памяти в пределах ограниченного диапазона
адресов (как по коду программы, так и по д а н н ы м ) .
Например, микропроцессору для своей работы потребовалось 2 бай¬
та и н ф о р м а ц и и . Если строка имеет длину 16 байт, то в к э ш переписывают¬
ся не только нужные 2 байта, но и некоторое их окружение. Когда м и к р о ­
процессор обращается за новой информацией, в силу локальности ссы-

66
Лекция 4 Организация и принципы работы кэш-памяти

лок, скорее всего, обращение произойдет по соседнему адресу. Затем опять


по соседнему, опять по соседнему и т. д. Таким образом, ряд следующих об­
р а щ е н и й будет происходить непосредственно к к э ш - п а м я т и , минуя опе­
ративную память (кэш-попадания). Когда очередной сформированный
микропроцессором физический адрес выйдет за пределы строки кэш-па¬
мяти (произойдет кэш-промах), будет выполнена подкачка в к э ш новой
строки, и вновь ряд последующих обращений вызовет кэш-попадания.
Ч е м д л и н н е е используемая при обмене между оперативной и к э ш ­
памятью строка, тем больше вероятность того, что следующее обращение
произойдет в пределах этой строки. Н о в то ж е время чем д л и н н е е строка,
тем дольше она будет перекачиваться из оперативной памяти в к э ш . И ес­
ли очередная команда окажется командой перехода или выборка данных
начнется из нового массива, то есть следующее обращение произойдет не
по соседнему адресу, то время, затраченное на передачу д л и н н о й строки,
будет использовано напрасно. Поэтому при выборе д л и н ы строки должен
быть разумный компромисс между соотношением времени обращения к
оперативной и к э ш - п а м я т и и вероятностью достаточно удаленного пере¬
хода от текущего адреса при в ы п о л н е н и и программы. Обычно длина
строки определяется в результате моделирования аппаратно-программ¬
н о й структуры системы.
После того как в К П накопится достаточно большой объем и н ф о р ­
м а ц и и , увеличивается вероятность того, что ф о р м и р о в а н и е очередного
адреса приведет к кэш-попаданию. Особенно велика вероятность этого
при в ы п о л н е н и и циклических участков программы.
Старая и н ф о р м а ц и я по возможности сохраняется в к э ш - п а м я т и . Ее
замена на новую определяется емкостью, организацией и стратегией об­
новления кэша.

Типы кэш-памяти

Если каждая строка О З У имеет только одно ф и к с и р о в а н н о е место,


на котором она может находиться в к э ш - п а м я т и , то такая к э ш - п а м я т ь на­
зывается памятью с прямым отображением.
Предположим, что О З У состоит из 1000 строк с номерами от 0 до
999, а к э ш - п а м я т ь имеет емкость только 100 строк. В к э ш - п а м я т и с п р я ­
м ы м отображением строки ОЗУ с номерами 0, 100, 200, 900 могут с о ­
храняться только в строке 0 К П и нигде иначе, строки 1, 101, 201, 901
О З У — в строке 1 К П , строки О З У с номерами 99, 199, 999 сохраняют­
ся в строке 99 к э ш - п а м я т и (рис. 4.2). Такая организация к э ш - п а м я т и
обеспечивает быстрый п о и с к в ней нужной и н ф о р м а ц и и : необходимо
проверить ее наличие только в одном месте. Однако емкость К П при этом
используется не в полной мере: несмотря на то, что часть к э ш - п а м я т и м о -

67
Курс Архитектура микропроцессоров

жет быть не заполнена, будет происходить вытеснение из нее полезной


и н ф о р м а ц и и п р и последовательных обращениях, например, к строкам
101, 301, 101 ОЗУ.

ОЗУ

Рис. 4.2. П р и н ц и п организации кэш-памяти с прямым отображением

К э ш - п а м я т ь называется полностью ассоциативной, если каждая


строка О З У может располагаться в любом месте к э ш - п а м я т и .
В полностью ассоциативной к э ш - п а м я т и максимально используется
весь ее объем: вытеснение сохраненной в К П и н ф о р м а ц и и проводится
л и ш ь после ее полного заполнения. Однако п о и с к в к э ш - п а м я т и , органи­
зованной подобным образом, представляет собой трудную задачу.
К о м п р о м и с с о м между этими двумя способами организации к э ш - п а ­
мяти служит множественно-ассоциативная К П , в которой каждая строка
О З У может находиться по ограниченному множеству мест в к э ш - п а м я т и .

П р и необходимости замещения и н ф о р м а ц и и в к э ш - п а м я т и на н о ­
вую используется несколько стратегий замещения. Наиболее известными
среди них являются:
1) L R U — замещается строка, к которой дольше всего не было обра­
щений;
2) F I F O — замещается самая давняя по пребыванию в к э ш - п а м я т и
строка;
3) Random — замещение проходит случайным образом.
Последний вариант, существенно э к о н о м я аппаратные средства по
сравнению с другими подходами, в ряде случаев обеспечивает и более э ф -

68
Лекция 4 Организация и принципы работы кэш-памяти

фективное использование к э ш - п а м я т и . Предположим, например, что К П


имеет объем 4 строки, а некоторый циклический участок программы име¬
ет длину 5 строк. В этом случае при стратегиях L R U и F I F O к э ш - п а м я т ь
окажется фактически бесполезной ввиду отсутствия к э ш - п о п а д а н и й . В то
ж е время при использовании стратегии случайного замещения и н ф о р м а ­
ц и и часть обращений к К П приведет к к э ш - п о п а д а н и я м .
Некоторые эвристические о ц е н к и вероятности кэш-промаха при
разных стратегиях замещения (в процентах) представлены в табл. 4.1.

Таблица 4.1. Вероятность кэш-промаха для различной к э ш - п а м я т и

Размер Организация кэш-памяти


кэша, 2-канальная 4-канальная 8-канальная
Кбайт ассоциативная ассоциативная ассоциативная
LRU Random LRU Random LRU Random
16 5,2 5,7 4,7 5,3 4,4 5,0
64 1,9 2,0 1,5 1,7 1,4 1,5
256 1,15 1,17 1,13 1,13 1,12 1,12

Анализ таблицы показывает, что:


• с увеличением емкости кэша, естественно, уменьшается вероят­
ность кэш-промаха, н о даже при незначительной на сегодняшний
день емкости к э ш - п а м я т и в 16 Кбайт около 95 % обращений п р о ­
исходят к К П , минуя оперативную память;
• ч е м больше степень ассоциативности к э ш - п а м я т и , т е м больше
вероятность кэш-попадания за счет более полного з а п о л н е н и я
К П (время п о и с к а и н ф о р м а ц и и в К П в д а н н о м анализе н е учи­
тывается);
• механизм L R U обеспечивает более высокую вероятность кэш-по­
падания п о с р а в н е н и ю с механизмом случайного з а м е щ е н и я
Random, однако этот выигрыш н е очень значителен.

Соответствие между д а н н ы м и в оперативной памяти и в к э ш - п а м я ­


ти обеспечивается внесением и з м е н е н и й в те области ОЗУ, для которых
д а н н ы е в к э ш - п а м я т и подверглись изменениям. Существует два о с н о в ­
ных способа реализации этих действий: со сквозной записью (write-
through) и с обратной записью (write-back).
П р и считывании оба способа работают идентично. П р и записи кэ­
ширование со сквозной записью обновляет основную память параллельно с
обновлением и н ф о р м а ц и и в К П . Это несколько снижает быстродействие
системы, так к а к микропроцессор впоследствии может вновь обратиться
по этому ж е адресу для записи и н ф о р м а ц и и , и предыдущая пересылка

69
Курс Архитектура микропроцессоров

строки к э ш - п а м я т и в О З У окажется бесполезной. Однако п р и таком под¬


ходе содержимое соответствующих друг другу строк О З У и К П всегда
идентично. Это играет большую роль в мультипроцессорных системах с
общей оперативной памятью.
Кэширование с обратной записью модифицирует строку О З У л и ш ь
при вытеснении строки к э ш - п а м я т и , например, в случае необходимости
освобождения места для записи новой строки и з О З У в уже заполненную
К П . Операции обратной записи также инициируются механизмом под­
держания согласованности к э ш - п а м я т и п р и работе мультипроцессорной
системы с общей оперативной памятью.
Промежуточное положение между этими подходами занимает спо¬
соб, при котором все строки, предназначенные для передачи из К П в
ОЗУ, предварительно накапливаются в некотором буфере. Передача осу­
ществляется либо п р и вытеснении строки, к а к в случае кэширования с об­
ратной записью, либо п р и необходимости согласования к э ш - п а м я т и не¬
скольких микропроцессоров в мультипроцессорной системе, либо п р и
заполнении буфера. Такая передача проводится в пакетном режиме, что
более э ф ф е к т и в н о , чем передача отдельной строки.

Организация внутренней кэш-памяти


микропроцессора
Внутренний к э ш 32-разрядного универсального микропроцессора
является о б щ и м п р и обращении к а к к командам, так и к д а н н ы м . Обра­
щ е н и е ведется по ф и з и ч е с к и м адресам.
К э ш - п а м я т ь обычно реализуется в виде ассоциативного ЗУ, в кото­
р о м для каждой строки сохраняются дополнительные сведения, называе­
м ы е тегом, или п р и з н а к о м , в качестве которого выступает адресный код
или его часть. Когда в АЗУ подается адрес, с н и м одновременно сравни­
ваются все теги.
Внутренняя к э ш - п а м я т ь в микропроцессоре i486 реализует сквозную
запись. Начиная с М П Pentium используется сквозная или обратная запись.
Во в н е ш н е й К П применяется любой способ записи или их к о м б и н а ц и я .
Внутренняя кэш-память М П i486 имеет емкость 8 Кбайт и организова­
на в виде 4-канальной ассоциативной памяти. Это означает, что данные из
какой-либо строки О З У могут храниться в любой из 4 строк кэш-памяти.
К П состоит и з следующих блоков (рис. 4.3):
• блока данных,
• блока тегов,
• блока достоверности и L R U .
Блок данных содержит 8 Кбайт данных и команд. О н разделен на 4
массива (направления), каждый из которых состоит из 128 строк. Строка

70
Лекция 4 Организация и принципы работы кэш-памяти

Рис. 4.3. Структура внутренней к э ш - п а м я т и М П i486

содержит данные из 16 последовательных адресов памяти начиная с адре­


са, кратного 16. Индекс массивов блока данных, состоящий из 7 бит, со­
ответствует 4 строкам К П , по одной из каждого массива. Четыре строки
К П с одним и тем же индексом называются множеством.
В блоке тегов имеется один тег длиной 21 бит для каждой строки д а н ­
ных в К П . Б л о к тегов также разделен на 4 массива по 128 тегов. Тег содер­
жит старшие 21 бит физического адреса данных, находящихся в соответ¬
ствующей строке К П .
В блоке достоверности и LRU содержится по одному 7-разрядному
значению для каждого из 128 множеств строк К П : 4 бита достоверности
(V) по одному на каждую строку множества и 3 бита (B0 ... B2), управля¬
ющие механизмом L R U . Б и т ы достоверности показывают, содержит ли
строка достоверные (V = 1) или недостоверные (V = 0) данные. П р и про¬
граммной очистке К П и аппаратном сбросе процессора все биты досто¬
верности сбрасываются в 0.
Адресация к э ш - п а м я т и осуществляется путем разделения старших
28 бит физического адреса на 2 части. Младшие 7 бит из этих разрядов

71
Курс Архитектура микропроцессоров

(разряды 10...4 физического адреса) образуют поле индекса и определяют


множество, в котором могут храниться данные. Старшие 21 бит (разряды
31.. .11 физического адреса) служат полем тега и применяются для опреде­
л е н и я того, находится ли и н ф о р м а ц и я с д а н н ы м физическим адресом в
какой-либо строке выбранного множества.
П о и с к в к э ш - п а м я т и и н ф о р м а ц и и с заданным физическим адресом
выполняется следующим образом:
1. Ф и з и ч е с к и й адрес, по которому происходит обращение, разбива­
ется на 3 поля: Тег, Индекс, № байта. 7 разрядов А10...А4 поля и н ­
декса определяют одно из 128 множеств.
2. В выбранном множестве содержатся 4 строки с и н ф о р м а ц и е й .
Ч т о б ы определить, присутствует ли нужная и н ф о р м а ц и я в одной
из строк этого множества, проводится сравнение старших 21 би¬
та физического адреса (поле Тег) с тегами строк выбранного мно¬
жества. Сравнение проводится только для достоверных строк, то
есть тех, у которых в блоке достоверности установлен бит досто¬
верности V = 1.
3. Если для одной из строк ее тег и разряды А31...А11 физического
адреса совпали, то это означает, что произошло кэш-попадание и
необходимая и н ф о р м а ц и я есть в к э ш - п а м я т и .
4. Считывается найденная строка из 16 байт. И с к о м ы й байт в ней
определяется 4 м л а д ш и м и р а з р я д а м и ф и з и ч е с к о г о адреса
(А3. А0).
5. Если на этапе 3 совпадения не произошло или все строки множе­
ства недостоверны, эта ситуация определяется как кэш-промах. В
этом случае по сформированному микропроцессором физическо¬
му адресу выполняется обращение к оперативной памяти. И з ОЗУ
извлекается нужная и н ф о р м а ц и я , и содержащая ее строка запи­
сывается в свободную строку выбранного множества. Старшие 21
бит физического адреса записываются в поле тега этой строки. Ес­
ли все строки в выбранном множестве достоверны, то замещается
строка, к которой дольше всего не было обращений согласно ме¬
ханизму L R U . Этот механизм действует точно так ж е , как и при
вытеснении строк из буфера ассоциативной трансляции T L B .

Р е ж и м р а б о т ы к э ш - п а м я т и определяется п р о г р а м м н о установкой
р а з р я д о в C D (запрет к э ш и р о в а н и я ) и N W (запрет с к в о з н о й з а п и с и ) в
у п р а в л я ю щ е м регистре C R 0 . К э ш и р о в а н и е м о ж н о р а з р е ш и т ь (это с о ­
с т о я н и е после и н и ц и а л и з а ц и и п р и сбросе), м о ж н о запретить п р и нали¬
ч и и д о с т о в е р н ы х строк (в этом р е ж и м е К П действует к а к быстрое вну¬
т р е н н е е ОЗУ) и л и , н а к о н е ц , к э ш и р о в а н и е может быть п о л н о с т ь ю за¬
прещено.

72
Лекция 4 Организация и принципы работы кэш- памяти

Управление работой кэш-памяти на уровне страниц


В элементах каталога страниц и таблиц страниц имеются 2 бита, кото­
рые применяются для управления выходными сигналами процессора и
участвуют в к э ш и р о в а н и и страниц.
Бит P C D запрещает ( P C D = 1) и л и разрешает ( P C D = 0) к э ш и р о в а ­
ние страницы. Запрещение к э ш и р о в а н и я необходимо для страниц, кото­
рые содержат порты ввода/вывода с отображением на память. О н о также
полезно для страниц, к э ш и р о в а н и е которых не дает выигрыша в быстро¬
действии, например, страниц, содержащих программу инициализации.
Бит P W T определяет метод обновления О З У и в н е ш н е й к э ш - п а м я т и
(кэш 2-го уровня). Если P W T = 1, то для данных в соответствующей стра­
нице определяется к э ш и р о в а н и е со сквозной записью, п р и P W T = 0 п р и ­
меняется способ обратной записи. Используется в микропроцессорах н а ­
чиная с Pentium. Так к а к внутренняя к э ш - п а м я т ь в М П i486 работает со
сквозной записью, состояние бита P W T на нее не влияет. Бит P W T в этом
случае действует только на в н е ш н ю ю К П .

Обеспечение согласованности кэш-памяти


микропроцессоров
в мультипроцессорных системах

Рассмотрим особенности работы к э ш - п а м я т и в том случае, когда од¬


новременно несколько микропроцессоров используют общую оператив¬
ную память (рис. 4.4). В этом случае могут возникнуть проблемы, связан­
ные с к э ш и р о в а н и е м и н ф о р м а ц и и из оперативной памяти в к э ш - п а м я т ь
микропроцессоров.

Рис. 4.4. Структура мультимикропроцессорной системы с общей


оперативной памятью

Предположим, что М П А считал некоторую строку данных из О З У в


свою внутреннюю К П и изменил данные в этой строке в процессе работы.

73
Курс Архитектура микропроцессоров

М ы отмечали, что существует два основных механизма обновления


оперативной памяти:
1) сквозная запись, которая подразумевает, что к а к только и з м е н и ­
лась и н ф о р м а ц и я во внутренней к э ш - п а м я т и , эта ж е и н ф о р м а ц и я
копируется в то ж е место оперативной памяти, и
2) обратная запись, при которой микропроцессор после изменения ин¬
формации во внутреннем кэше отражает это изменение в оператив¬
ной памяти не сразу, а лишь в тот момент, когда происходит вытесне­
ние данной строки из кэш-памяти в оперативную. То есть существуют
определенные моменты времени, когда информация, предположим,
по адресу 2000 имеет разные значения: микропроцессор ее обновил, а
в оперативной памяти осталось старое значение. Если в этот момент
другой микропроцессор ( М П В), использующий ту же оперативную
память, обратится по адресу 2000 в ОЗУ, то он прочитает оттуда старую
информацию, которая к этому времени уже не актуальна.
Для обеспечения согласованности (когерентности) памяти в мульти­
процессорных системах используются аппаратные механизмы, позволя­
ю щ и е решить эту проблему. Такие механизмы называются протоколами
когерентности кэш-памяти. Эти протоколы призваны гарантировать, что
любое считывание элемента данных возвращает последнее по времени за¬
писанное в него значение.
Существует два класса протоколов когерентности:
• протоколы на основе справочника (directory based): и н ф о р м а ц и я о
состоянии блока физической памяти содержится только в одном
месте, называемом справочником (физически справочник может
быть распределен по узлам системы);
• протоколы наблюдения (snooping): каждый к э ш , который содержит
к о п и ю данных некоторого блока физической памяти, имеет также
соответствующую к о п и ю служебной и н ф о р м а ц и и о его состоя­
н и и ; централизованная система записей отсутствует; обычно кэ¬
ш и расположены на общей ш и н е , и контроллеры всех к э ш е й на¬
блюдают за ш и н о й (просматривают ее), чтобы определять, какие
обращения по адресам в пределах этого блока происходят со сто¬
р о н ы других микропроцессоров.
В мультипроцессорных системах с общей памятью наибольшей п о ­
пулярностью пользуются протоколы наблюдения, поскольку для опроса
состояния к э ш е й о н и могут использовать уже существующее физическое
соединение — ш и н у памяти.
Для поддержания когерентности применяется два основных метода.
Один из методов заключается в том, чтобы гарантировать, что процессор
должен получить исключительные права доступа к элементу данных пе¬
ред выполнением записи в этот элемент данных. Этот тип протоколов н а -

74
Лекция 4 Организация и принципы работы кэш-памяти

зывается протоколом записи с аннулированием (write invalidate protocol), по¬


скольку п р и в ы п о л н е н и и записи о н аннулирует другие к о п и и . Это наибо¬
лее часто используемый протокол к а к в схемах на основе справочников, так
и в схемах наблюдения. Исключительное право доступа гарантирует, что
во время выполнения записи н е существует никаких других к о п и й эле¬
мента данных, в которые м о ж н о писать и л и и з которых м о ж н о читать: все
другие к э ш и р о в а н н ы е к о п и и элемента данных аннулированы.
Альтернативой протоколу записи с аннулированием является обновле¬
ние всех копий элемента данных в случае записи в этот элемент данных.
Этот тип протокола называется протоколом записи с обновлением (write
update protocol), или протоколом записи с трансляцией (write broadcastprotocol).
Эти две схемы во многом похожи на схемы работы кэш-памяти со
сквозной и с обратной записью. Ключевым моментом реализации в много¬
процессорных системах с небольшим числом процессоров как схемы запи¬
си с аннулированием, так и схемы записи с обновлением данных, является
использование для выполнения этих операций механизма ш и н ы . Для в ы ­
полнения операции обновления или аннулирования процессор просто за¬
хватывает шину и транслирует по ней адрес, по которому должно произво¬
диться обновление или аннулирование данных. Все процессоры непрерыв­
но наблюдают за ш и н о й , контролируя появляющиеся на ней адреса.
Процессоры проверяют, не находится ли в их кэш-памяти адрес, появив­
шийся на шине. Если это так, то соответствующие данные в к э ш е либо а н ­
нулируются, либо обновляются в зависимости от используемого протокола.
Рассмотрим один из наиболее распространенных протоколов, обес¬
печивающих согласованную работу к э ш - п а м я т и нескольких м и к р о п р о ­
цессоров и основной памяти в мультимикропроцессорных системах, —
протокол MESI, который относится к группе протоколов наблюдения с ан­
нулированием. Будем знакомиться с н и м на примере двухпроцессорной
системы, состоящей из микропроцессоров A и B .
Этот протокол использует 4 признака состояния строки к э ш - п а м я т и
микропроцессора, п о первым буквам которых и называется протокол:
• измененное состояние (Modified): и н ф о р м а ц и я , хранимая в к э ш ­
памяти микропроцессора А, достоверна только в этом к э ш е ; она
отсутствует в оперативной памяти и в к э ш - п а м я т и других микро¬
процессоров;
• исключительная копия (Exclusive): и н ф о р м а ц и я , содержащаяся в
к э ш е А, содержится е щ е только в оперативной памяти;
• разделяемая и н ф о р м а ц и я (Shared): и н ф о р м а ц и я , содержащаяся в
к э ш е А, содержится в к э ш - п а м я т и по крайней мере е щ е одного
М П , а также в оперативной п а м я т и ;
• недостоверная и н ф о р м а ц и я (Invalid): в строке к э ш - п а м я т и нахо­
дится недостоверная и н ф о р м а ц и я .

75
Курс Архитектура микропроцессоров

Таким образом, состояние признаков протокола M E S I отражает сле­


дующие состояния (по отношению к М П ) строки к э ш - п а м я т и (табл. 4.2):
А

Таблица 4.2. Ф о р м и р о в а н и е признаков состояния протокола M E S I

Состояние Состояние строки памяти


признака протокола Кэш А Кэш В ОЗУ
Modified Д НД НД
Shared Д Д Д
Exclusive Д НД Д
Invalid НД Х Х

Примечание: Д — информация достоверна;


НД — информация не достоверна;
Х — статус информации не имеет значения.

П р и работе микропроцессора А с точки зрения обеспечения коге­


рентности памяти возможны следующие ситуации:
R H (Read Hit) — кэш-попадание при чтении;
W H (Write Hit) — кэш-попадание при записи;
R M E (Read Miss Exclusive) — кэш-промах при чтении;
R M S (Read Miss Shared) — кэш-промах при чтении, но соответству­
ю щ и й блок есть в к э ш - п а м я т и другого микропроцессора;
W M (Write Miss) — кэш-промах при записи;
S H R (Snoop Hit Read) — обнаружение к о п и и блока при прослушива­
н и и операции чтения другого кэша;
S H W (Snoop Hit Write) — обнаружение к о п и и блока при прослуши¬
вании операции записи другого кэша.
Н а и б о л ь ш и й интерес здесь представляют две последние позиции.
Современные микропроцессоры имеют двунаправленную ш и н у адреса.
Выдавая и н ф о р м а ц и ю на эту шину, микропроцессор адресует я ч е й к и опе­
ративной памяти или устройства ввода-вывода. В силу того, что в рассма­
триваемой мультипроцессорной системе микропроцессоры связаны об­
щей ш и н о й , в том числе и ш и н о й адреса, п р и н и м а я и н ф о р м а ц и ю по ад­
р е с н ы м л и н и я м , микропроцессор определяет, было ли обращение по
адресам, содержащимся в его к э ш - п а м я т и , со стороны других м и к р о п р о ­
цессоров. П р и обнаружении такого обращения меняется состояние стро­
ки к э ш - п а м я т и микропроцессора.
И з м е н е н и я признака состояния блока к э ш - п а м я т и М П в зависимо¬
сти от различных ситуаций в его работе и работе мультимикропроцессор-
ной системы в целом представлены на рис. 4.5.

76
Лекция 4 Организация и принципы работы кэш-памяти

Рис. 4.5. MESI-диаграмма обеспечения когерентности к э ш - п а м я т и

Проиллюстрируем некоторые из представленных переходов.


Пусть блок кэш-памяти находится в состоянии Modified, то есть досто­
верная информация находится только в кэш-памяти данного М П . Тогда в
случае обнаружения п р и прослушивании адресной ш и н ы обращения со
стороны другого микропроцессора для чтения информации п о входящим в
данную строку адресам микропроцессор должен передать эту строку кэш¬
памяти в ОЗУ, откуда она уже будет прочитана другим микропроцессором.
П р и этом состояние строки в кэш-памяти рассматриваемого микропро­
цессора изменится с модифицированного на разделяемое (Shared).
Если строка к э ш - п а м я т и находилась в состоянии Invalid, то есть и н ­
ф о р м а ц и я в н е й была недостоверной, то п о о т н о ш е н и ю к этой строке сле­
дует рассматривать только ситуации, связанные с кэш-промахами. Так, ес­
ли произошел кэш-промах п р и в ы п о л н е н и и операции записи, то необхо­
димая строка будет занесена в к э ш - п а м я т ь данного М П , в эту строку
будут записаны измененные данные, и она приобретет статус исключи¬
тельного владельца новой и н ф о р м а ц и и ( Modified).

Краткие итоги. В лекции рассмотрены общие п р и н ц и п ы ф у н к ц и о н и ­


рования к э ш - п а м я т и микропроцессора, организация к э ш - п а м я т и с пря¬
м ы м отображением, полностью ассоциативной и множественно- ассоциа¬
тивной К П . Рассмотрены основные механизмы обновления оперативной
памяти: кэширование со сквозной и с обратной записью. Представлена
организация внутренней к э ш - п а м я т и микропроцессора. Разобраны спо­
собы обеспечения согласованности к э ш - п а м я т и микропроцессоров в
мультипроцессорных системах.

77
Курс Архитектура микропроцессоров

Л е к ц и я 5. А п п а р а т н ы е с р е д с т в а з а щ и т ы
информации в микропроцессоре

Цель лекции: рассмотреть основные механизмы защиты памяти,


поддерживаемые аппаратурой микропроцессора.

Если в памяти одновременно могут находиться несколько независи¬


мых программ, необходимы специальные меры по предотвращению или ог¬
раничению обращений одной программы к областям памяти, используе¬
мым другими программами. Программы могут содержать такие ошибки,
которые, если этому не воспрепятствовать, приводят к искажению и н ф о р ­
мации, принадлежащей другим программам. Последствия таких ошибок
особенно опасны, если разрушению подвергнутся программы операцион¬
ной системы. Другими словами, надо исключить несанкционированное
воздействие программы пользователя на работу программ других пользова¬
телей и программ операционной системы.
Чтобы воспрепятствовать разрушению одних программ другими, д о ­
статочно защитить область памяти д а н н о й программы от п о п ы т о к записи
в нее со стороны других программ, а в некоторых случаях и своей п р о ­
граммы (защита от записи), при этом допускается обращение других п р о ­
грамм к этой области памяти для считывания данных.
В других случаях, например, при ограничениях на доступ к и н ф о р ­
м а ц и и , хранящейся в системе, необходимо иметь возможность запрещать
другим программам производить как запись, так и считывание в д а н н о й
области памяти. Такая защита от записи и считывания помогает отладке
программы, при этом осуществляется контроль каждого случая выхода за
область памяти своей программы.
Для облегчения отладки программ желательно выявлять и такие ха­
рактерные о ш и б к и в программах, как попытки использования данных
вместо команд или команд вместо данных в собственной программе, хо¬
тя эти о ш и б к и могут и не разрушать и н ф о р м а ц и ю .
Средства защиты памяти д о л ж н ы предотвращать:
• неразрешенное взаимодействие пользователей друг с другом;
• н е с а н к ц и о н и р о в а н н ы й доступ пользователей к д а н н ы м ;
• повреждение программ и данных из-за о ш и б о к в программах;
• намеренные п о п ы т к и разрушить целостность системы;
• случайные искажения данных.

Средства защиты микропроцессора делятся на 2 группы:


• защиту при управлении памятью и
• защиту по привилегиям.

78
Лекция 5 Аппаратные средства защиты информации в микропроцессоре

Средства управления памятью обнаруживают большинство про¬


граммных ошибок.
До загрузки селектора в сегментный регистр и к э ш и р о в а н и я дес­
криптора осуществляется несколько контрольных проверок:
• процессор проверяет, что поле Index селектора находится в преде­
лах таблицы, определяемой его битом T I ;
• при загрузке селектора в сегментный регистр данных (DS, E S , F S ,
G S ) тип дескриптора должен разрешать считывание из сегмента.
Только в ы п о л н я е м ы е сегменты для этих регистров не допускают­
ся, но сегменты с р а з р е ш е н н ы м и операциями в ы п о л н е н и я / с ч и ­
тывания допустимы;
• в случае сегментного регистра стека (SS) в сегменте д о л ж н ы быть
разрешены операции считывания и записи;
• при загрузке регистра C S сегмент должен быть обязательно и с ­
полняемым;
• в регистр L D T R м о ж н о загружать только селектор, указывающий
на дескриптор сегмента типа L D T ;
• в регистр T R м о ж н о загружать только селектор, указывающий на
дескриптор сегмента состояния задачи.
Если хотя бы одна проверка дала отрицательный результат, то ф о р ­
мируется особый случай и загрузка селектора не производится.
После загрузки селектора при фактическом обращении к памяти п р о ­
цессор контролирует, чтобы запрашиваемая операция (чтение/запись)
для этого сегмента была разрешена. На этом этапе обнаруживаются и от­
вергаются попытки записи в сегмент кода или в только считываемые сег­
менты данных, а также считывание из сегмента кода, для которого разре­
ш е н о только выполнение. Здесь же проводится проверка превышения
сформированного смещения в сегменте д л и н ы сегмента, указанной в поле
предела дескриптора. Такие ситуации невозможно выявить при загрузке
селектора.

Защита по привилегиям фиксирует более т о н к и е о ш и б к и и намерен¬


н ы е попытки нарушить целостность системы.
Под привилегиями понимается свойство, определяющее, какие опе­
р а ц и и и обращения к памяти разрешается производить процессору при
в ы п о л н е н и и текущей задачи.
На аппаратном уровне в процессоре поддерживаются 4 уровня приви­
легий. Распознаваемым процессором объектам назначается значение от 0
до 3, причем 0 соответствует высшему, а 3 — низшему уровню привиле­
гий. С п о м о щ ь ю указания уровня привилегий и правил защиты обеспечи­
вается управляемый доступ к процедурам и д а н н ы м операционной систе¬
м ы и других задач.

79
Курс Архитектура микропроцессоров

Привилегии устанавливаются значениями соответствующих полей в


следующих основных системных объектах микропроцессора:
• D P L — уровень привилегий сегмента (находится в байте доступа де¬
скриптора сегмента);
• R P L — биты <0,1> селектора, хранящегося в сегментном регистре;
текущий уровень привилегий программы C P L задается полем
R P L селектора, хранящегося в сегментном регистре C S ;
• I O P L — поле регистра флагов, которое указывает, на каком уровне
привилегий разрешено выполнять операции ввода/вывода,
а также в некоторых других объектах, используемых, например, при
переключении задач и обработке прерываний.

Так к а к число программ, которые могут выполняться на более высо­


к о м уровне привилегий, уменьшается к уровню 0 и так к а к программы
уровня 0 действуют к а к ядро системы, уровни привилегий обычно изобра­
жаются в виде четырех колец защиты (Protection Rings) (рис. 5.1).

Наименее

Наиболее
привилегированный
уровень

Рис. 5.1. «Кольца защиты»

Типовое распределение программ по кольцам защиты выглядит сле¬


д у ю щ и м образом:
уровень 0: ядро О С , обеспечивающее и н и ц и а л и з а ц и ю работы, управ­
ление доступом к памяти, защиту и ряд других ж и з н е н н о важных функ­
ц и й , нарушение которых полностью выводит из строя процессор;
уровень 1: основная часть программ О С (утилиты);
уровень 2: служебные программы О С (драйверы, СУБД, специализи­
рованные подсистемы программирования и т. д.);
уровень 3: прикладные программы пользователя.

80
Лекция 5 Аппаратные средства защиты информации в микропроцессоре

Аппаратные средства процессора, работающего в защищенном режи­


ме, постоянно контролируют, что текущая программа достаточно п р и в и ­
легированна для того, чтобы:
• выполнять некоторые команды, называемые привилегированными;
• выполнять операции ввода/вывода на том или и н о м в н е ш н е м ус¬
тройстве;
• обращаться к д а н н ы м других программ;
• передавать управление внешнему (по о т н о ш е н и ю к самой п р о ­
грамме) коду командами межсегментной передачи управления.
Привилегированные команды — это те команды, которые влияют на
механизмы управления памятью, защиты и некоторые другие ж и з н е н н о
важные функции. Это, например, команды загрузки таблиц дескрипторов
G D T , IDT, L D T , команды обмена с регистрами управления C R i . О н и м о ­
гут выполняться только программами, и м е ю щ и м и н а и в ы с ш и й (нулевой)
уровень привилегий. Это приводит к тому, что простую н е з а щ и щ е н н у ю си¬
стему м о ж н о целиком реализовать только в кольце 0, так к а к в других
кольцах защиты не будут доступны все команды.
Операции ввода/вывода разрешено выполнять программам, уровень
привилегий которых не ниже значения, установленного в поле I O P L ре­
гистра флагов. То есть должно выполняться соотношение: C P L < I O P L .
Обращение к д а н н ы м других программ разрешается только на своем
и менее привилегированном уровнях защиты (рис. 5.2).

Рис. 5.2. П о р я д о к взаимодействия программ и данных на разных


уровнях привилегий

Передачи управления между программами ограничиваются только


текущим кольцом защиты. В то же время в процессе в ы п о л н е н и я любой
программы необходимо обращаться к программам, находящимся на бо­
лее высоком уровне привилегий, например, к драйверам или СУБД. Для
этих целей используются специально установленные точки входа в эти

81
Курс Архитектура микропроцессоров

программы (шлюзы). Передача управления на более н и з к и й уровень п р и ­


вилегий осуществляется с п о м о щ ь ю механизма подчиненных сегментов.
П р и передаче управления подчиненному сегменту действует правило:
D P L > max ( C P L , R P L ) . Однако при этом п о д ч и н е н н ы й код будет выпол­
няться на том же уровне привилегий, что и вызвавший его код ( C P L не
изменится). Ограничивая передачу управления в пределах одного кольца
защиты, процессор предотвращает произвольное изменение уровней при­
вилегий. Ели бы значение C P L м о ж н о было легко изменить, все осталь­
н ы е средства защиты по привилегиям потеряли бы смысл.

Использование шлюзов вызова

В процессе работы программам постоянно приходится обращать­


ся к п р о г р а м м а м , н а х о д я щ и м с я на более в ы с о к о м у р о в н е п р и в и л е г и й ,
н а п р и м е р , к д р а й в е р а м в н е ш н и х устройств, с и с т е м а м программирова¬
ния. Прямой бесконтрольный вызов таких программ запрещается
средствами з а щ и т ы . О д н а к о если к к а к о й - л и б о с и с т е м н о й п р о г р а м м е
предусматривается о б р а щ е н и е со с т о р о н ы м е н е е п р и в и л е г и р о в а н н ы х
п р о г р а м м , то д л я н е е создается с п е ц и а л ь н ы й объект — шлюз вызова.
Здесь н а и б о л е е и н т е р е с н ы й м о м е н т с в я з а н с р е а л и з а ц и е й этого шлю¬
за. С о д н о й с т о р о н ы , пользователю н е о б х о д и м о предоставить возмож¬
н о с т ь в ы п о л н и т ь необходимую ему более п р и в и л е г и р о в а н н у ю про¬
грамму. Н о , с другой с т о р о н ы , б е с к о н т р о л ь н ы й в ы з о в т а к и х п р о г р а м м ,
н а п р и м е р , запуск д р а й в е р а с его с е р е д и н ы вследствие о ш и б о к про¬
г р а м м и р о в а н и я и л и злого у м ы с л а , может п р и в е с т и к н е п р е д с к а з у е м ы м
последствиям.
Таким образом, необходимо дать возможность обращаться к систем­
н ы м программам, но обращаться только начиная с определенной ф и к с и ­
рованной точки кода. Шлюзы вызова — это некоторые системные объек¬
ты, которые обеспечивают вход в строго определенную точку программы,
находящейся на более высоком уровне привилегий.
Ш л ю з должен быть предварительно п о м е щ е н в таблицу дескрипто­
ров. Дескрипторы шлюзов не определяют никакого адресного простран¬
ства, поэтому в них нет полей базы и предела, то есть они фактически не
являются дескрипторами. Обращение к более привилегированным п р о ­
граммам производится командами, аналогичными командам обращения
к подпрограммам в другом кодовом сегменте (команды типа F A R C A L L ) .
То есть нельзя перейти в более привилегированный сегмент командой с
полной передачей управления: «пришел на уровень с более в ы с о к и м и
привилегиями и там остался», а переход возможен только с п о м о щ ь ю к о ­
манд с возвратом. Эти команды должны адресовать шлюз вызова, а не сег­
мент кода назначения. Шлюз вызова определяет сегмент кода, которому

82
Лекция 5 Аппаратные средства защиты информации в микропроцессоре

передается управление, и точное смещение в этом сегменте, где начина­


ется выполнение процедуры.
Формат шлюза вызова представлен на рис. 5.3.

Селектор Смещение Р DPL WC


16 4 5
< 3 2

64 б]ста

Рис. 5.3. Формат шлюза вызова

Шлюз вызова содержит селектор того сегмента, куда передается уп­


равление, и смещение в этом сегменте. Это, с одной стороны, позволяет
найти данную программу, н о , с другой стороны, строго определяет точку
входа в программу, чтобы м о ж н о было запустить ее только со строго опре¬
деленного места.
Другими важными параметрами, определяемыми ш л ю з о м вызова,
являются: P — бит присутствия; W C — количество параметров, передавае¬
мых из стека текущей программы в стек вызываемой программы; D P L —
уровень привилегий.
П р и использовании шлюза вызова проводится следующий анализ
уровней привилегий:
• значение D P L шлюза вызова должно быть больше или равно зна¬
ч е н и ю текущего уровня привилегий C P L и значению R P L селек¬
тора, вызывающего шлюз;
• значение D P L шлюза вызова должно быть больше или равно зна¬
ч е н и ю D P L целевого сегмента кода;
• значение D P L целевого сегмента кода должно быть меньше или
равно значению текущего уровня привилегий C P L .

П о р я д о к использования шлюза вызова представлен на рис. 5.4.


1. К а к любая команда межсегментного перехода, команда F A R C A L L
содержит селектор сегмента и смещение в этом сегменте. Смеще¬
ние, которое указано в команде, микропроцессор игнорирует: поло¬
жение вызываемого кода в более привилегированном сегменте оп¬
ределяется не им, а шлюзом вызова. П о селектору, определенному в
команде, идет обращение к таблице дескрипторов. П о типу дескрип¬
тора определяется, что это системный объект типа «шлюз вызова».
2. Селектор из шлюза вызова заносится в регистр C S м и к р о п р о ц е с ­
сора, а смещение — в регистр — указателя команд EIP.
3. П о полученному селектору обращаемся к дескриптору сегмента
более привилегированной программы.

83
Курс Архитектура микропроцессоров

Рис. 5.4. Использование шлюза вызова для обращения к программам


на более высоком уровне привилегий

4. И з дескриптора извлекается базовый адрес нового сегмента. Его


суммирование со значением с м е щ е н и я из шлюза вызова, зане­
сенного в EIP, определяет физический адрес начала новой про¬
граммы.
Иначе говоря, с п о м о щ ь ю такой многоступенчатой обработки ко¬
манды перехода мы получаем доступ к более привилегированной про¬
грамме. Н о для этого поле D P L шлюза должно быть установлено таким,
чтобы к нему могла обратиться менее привилегированная программа. То
есть если м ы хотим, чтобы пользовательские программы могли вызывать
некоторую программу, находящуюся, например, на уровне привилегий 1,
то D P L шлюза этой программы должен быть равен 3.
Предположим теперь, что пользователь хочет воспользоваться н е к о ­
торыми системными утилитами. Пусть пользовательская программа и м е ­
ет уровень привилегий 3, ядро О С — уровень 0, утилиты О С — уровень 1
( рис. 5.5).
В этом случае шлюз утилиты должен иметь D P L = 3. Это позволит
пользовательской программе вызвать утилиты О С , но не ее ядро. П р и н е ­
обходимости к ядру операционной системы могут обратиться утилиты.
Механизм вызова:
• шлюзу утилит присваивается уровень привилегий 3, обеспечивая
его доступность пользовательским программам;
• шлюзу ядра присваивается уровень привилегий 1, что делает его д о ­
ступным для программ-утилит, но обращение пользовательских
программ к шлюзу ядра невозможно.

84
Лекция 5 Аппаратные средства защиты информации в микропроцессоре

Рис. 5.5. Последовательное обращение к более привилегированным


программам

Таким образом, программа может последовательно обратиться к ря¬


ду более привилегированных программ.

Конкретная О С необязательно должна поддерживать все 4 уровня


привилегий. Так, О С U N I X работает с двумя кольцами защиты: супервизор
(уровень 0) и пользователь (уровни 1, 2, 3). Операционная система OS/2
поддерживает 3 уровня: код Ос работает в кольце 0, специальные проце­
дуры для обращения к устройствам ввода/вывода действуют в кольце 1, а
прикладные программы выполняются в кольце 3. В Windows N T исполь­
зуются только два уровня привилегий: нулевое и третье кольцо. В нулевом
кольце работает ядро системы и системные драйверы, а в третьем — все
запущенные приложения. Привилегированные команды и ввод-ввод для
третьего кольца запрещены. Для взаимодействия с аппаратной частью
компьютера пользовательские программы вызывают системные сервисы
ядра О С , обращение к которым оформлено к а к шлюзы. П р и вызове тако­
го шлюза процесс переходит в нулевое кольцо, и там ядро О С и драйверы
обрабатывают запрос и возвращают результаты приложению. После пере¬
хода в нулевое кольцо приложение не может как- либо контролировать
свое исполнение, пока управление не будет возвращено коду третьего
кольца. Это является необходимым условием защиты, обеспечивающим
безопасность всей системы.

Защита по привилегиям начинает работать уже на этапе загрузки селек¬


тора в сегментные регистры. П р и загрузке селектора в сегментные регист¬
ры данных должно выполняться соотношение: D P L < max ( C P L , R P L ) ,

85
Курс Архитектура микропроцессоров

а при загрузке селектора в сегментный регистр стека SS должно быть вы¬


полнено соотношение: D P L = C P L .
П р и страничном преобразовании адреса применяется простой дву­
хуровневый механизм защиты по привилегиям: пользователь (соответству¬
ет уровню 3 привилегий сегмента) и супервизор (уровни 0, 1, 2), указыва¬
емый в бите U / S ЭТС.
П р и сегментно-страничной организации памяти производится объ­
единение защиты сегментов и страниц: сначала реализуется защита сег­
ментов, а затем защита страниц. Н а п р и м е р , допускается определить боль¬
ш о й сегмент данных, в котором некоторые части будут только считывае¬
м ы е , а другие допускают с ч и т ы в а н и е и запись. В т а к о й ситуации
элементы каталога таблиц страниц и / и л и элементы таблиц страниц долж¬
н ы иметь соответствующие значения атрибута R/W.

Краткие итоги. В л е к ц и и рассмотрены основные требования, предъ­


я в л я е м ы е к средствам защиты памяти, механизмы защиты, используемые
при управлении памятью и при защите по привилегиям, доступ к про¬
граммам на более высоком уровне привилегий посредством использова¬
н и я шлюзов вызова.

86
Лекция 6 Мультипрограммный режим работы микропроцессора

Л е к ц и я 6. М у л ь т и п р о г р а м м н ы й р е ж и м р а б о т ы
микропроцессора

Цель лекции: рассмотреть п р и н ц и п ы организации мультипрограмм¬


ного режима работы и аппаратные средства микропроцессора, использу¬
емые для этих целей.

Многозадачностью (мультипрограммным режимом работы) называ­


ют такой способ организации работы системы, при которой в ее памяти
одновременно содержатся программы и д а н н ы е для выполнения не¬
скольких процессов обработки и н ф о р м а ц и и (задач). В этом режиме
должна обеспечиваться взаимная защита программ и данных, относя­
щихся к различным задачам, а также возможность перехода от выполне­
н и я одной задачи к другой (переключение задач).
Под задачей (процессом) понимается последовательность взаимосвя¬
занных действий, ведущих к достижению некоторой цели. В вычисли¬
тельной технике под задачей понимается конкретная сущность, которая
тесно связана с архитектурой процессора и обладает своим виртуальным
адресным пространством и состоянием. В более простом смысле будем
полагать, что задача — это программа, которая выполняется или ожидает
в ы п о л н е н и я , пока выполняется другая программа.
Процесс может находиться в следующих состояниях:
• порождение — подготавливаются условия для первого и с п о л н е ­
н и я на процессоре;
• активное состояние (счет) — программа исполняется на процес¬
соре;
• ожидание — программа не исполняется по п р и ч и н е занятости ка¬
кого-либо ресурса;
• готовность — программа не исполняется, но для исполнения пре¬
доставлены все необходимые в текущий момент ресурсы, кроме
центрального процессора;
• о к о н ч а н и е — н о р м а л ь н о е или а в а р и й н о е з а в е р ш е н и е програм¬
м ы , после которого процессор и другие ресурсы ей н е предостав¬
ляются.
П р и м е н и т е л ь н о к к о м п ь ю т е р а м в о п р е д е л е н и е задачи о б ы ч н о
в к л ю ч а ю т с я ресурсы, н е о б х о д и м ы е д л я д о с т и ж е н и я цели. П о н я т и е «ре­
сурс» строго н е определено. Будем считать, что в с я к и й п о т р е б л я е м ы й
объект ( н е з а в и с и м о от ф о р м ы его с у щ е с т в о в а н и я ) , о б л а д а ю щ и й н е к о ­
т о р о й п р а к т и ч е с к о й ц е н н о с т ь ю для потребителя, я в л я е т с я ресурсом:
объем о п е р а т и в н о й п а м я т и , время счета на п р о ц е с с о р е , д и с к о в о е про¬
странство и т. д.

87
Курс Архитектура микропроцессоров

Основные черты мультипрограммного режима:


• в оперативной памяти находятся несколько программ в состояни­
ях активности, ожидания или готовности;
• время работы процессора разделяется между программами, нахо­
д я щ и м и с я в памяти в состоянии готовности;
• параллельно с работой процессора происходит подготовка и об¬
мен с несколькими в н е ш н и м и устройствами (ВУ).

Мультипрограммирование предназначено для п о в ы ш е н и я пропуск¬


н о й способности вычислительной системы путем более равномерной и
п о л н о й загрузки всего его оборудования, в первую очередь — процессора.
П р и этом скорость работы самого процессора и н о м и н а л ь н а я производи­
тельность Э В М не зависят от использования мультипрограммирования.
Мультипрограммный режим имеет в Э В М аппаратную и программ­
ную поддержку. Аппаратура, используемая при организации мультипро­
граммного режима, включает контроллеры О З У и внешних устройств, к о ­
торые могут работать параллельно с процессором, систему прерывания,
аппаратные средства защиты программ и данных и т. д.
Программная составляющая содержит мультизадачную операцион¬
ную систему, драйверы внешних устройств, обработчики прерываний и
другие средства. Операционная система, реализуя мультипрограммный ре­
жим, должна распределять (в том числе динамически) между параллельно
в ы п о л н я е м ы м и программами ресурсы системы (время процессора, опе­
ративную и в н е ш н ю ю память, устройства ввода-вывода) с целью увеличе­
н и я пропускной способности и с учетом ограничений на ресурсы и требо­
ваний по срочности в ы п о л н е н и я отдельных программ.
Эффективность работы мультипрограммной Э В М м о ж н о оценить
количеством задач, выполненных в единицу времени (пропускная с п о ­
собность), и временем в ы п о л н е н и я отдельной программы.
Важное значение п р и анализе работы Э В М имеет определение сте¬
п е н и использования ее ресурсов. Для этого ш и р о к о применяются следу­
ю щ и е показатели (рис. 6.1):
к — к о э ф ф и ц и е н т загрузки устройства:
д

Т
к , где T — время занятости устройства q за общее время Гра¬
q

т
боты Э В М ;
L — средняя длина очереди запросов к устройству q:
q

L = , где Lq — д л и н а очереди к устройству q на интервале


t
д гр
п
= т
времени At и t -

88
Лекция 6 Мультипрограммный режим работы микропроцессора

Рис. 6.1. Оценка показателей работы мультипрограммной Э В М

Для представленного на рис. 6.1 случая:

7 т 0 x 2 + 1x1 + 0 x 4 + 1x1 + 1x2 + 1x1 5


к =—; L =
п =—
q 9
10 10 10

П о м и м о средней д л и н ы очереди важна также и д и н а м и к а изменения


ее длины.
П о значениям k , L и и з м е н е н и я м во времени значения L м о ж н о
q q q

определить наиболее д е ф и ц и т н ы й ресурс в системе, ее «узкое место».


Устранение этих «узких мест» может проводиться или за счет увели­
чения производительности соответствующего ресурса, или выбором та­
кой смеси задач, которая обеспечивала бы более равномерное использо¬
вание всех ресурсов ( например, одни задачи более активно используют
процессор (счетные задачи), другие — жесткий д и с к (работа с базами д а н ­
ных), третьи — устройства ввода-вывода (вывод большого объема графи¬
ческой и н ф о р м а ц и и ) ) .
Рассмотрим пример выполнения четырех программ в мультипро­
граммном режиме при коэффициенте мультипрограммирования равном 2.
Коэффициент мультипрограммирования ( К М ) — это количество программ,
обрабатываемых одновременно в мультипрограммном режиме.
Полагаем, что Э В М имеет 3 устройства, которые могут работать па­
раллельно: центральный процессор ( C P U ) , устройство ввода (IN) и уст­
ройство вывода ( O U T ) , а программы проходят следующий ц и к л работы:
счет1 — ввод — счет2 — вывод. Времена в ы п о л н е н и я соответствующих
блоков программ заданы в табл. 6.1.
Будем считать, что программы имеют относительный приоритет. То
есть, во- первых, если на к а к о й - либо ресурс при его освобождении одно¬
временно претендует несколько программ, то он предоставляется п р о ­
грамме с н а и м е н ь ш и м номером. Во-вторых, программа, занявшая ресурс,
не освобождает его до истечения требуемого времени, даже если в этот п е -

89
Курс Архитектура микропроцессоров

Таблица 6.1. Характеристики программ

Программа CPU1 IN CPU2 OUT


1 2 1 4 2
2 2 2 1 3
3 4 3 3 1
4 2 2 2 2

риод на ресурс станет претендовать программа, и м е ю щ а я больший п р и ­


оритет.
Более приоритетной считаем программу с м е н ь ш и м номером.
Очередь программ к процессору обозначим Ready, а общую очередь
к в н е ш н и м устройствам — Wait.
Полученная диаграмма выполнения программ представлена на рис. 6.2.

Т 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

C P U |1 1|2 211 1 1 1121 | 3 I 3 I 3 I 3 I4 4 1 13 3 3 I4 4 1


IN ГП 12 2 1 I 3 3 3 I 4 4 I

OUT I 1 1|2 2 2| ГП I 4 4 I

Ready ПГ^2] ГП ГГ^Л RH ПП

Wait YY] ПП

I TI I

T4 I

Рис. 6.2. Диаграмма в ы п о л н е н и я программ в Э В М при К м = 2

Построив аналогичную диаграмму работы Э В М для К м = 3, получим


результаты, представленные в табл. 6.2 ( К м = 1 соответствует однопро-
граммной работе Э В М , и результаты для этого случая могут быть получе­
н ы расчетными методами).
Анализ показывает, что с увеличением коэффициента мультипрограм­
мирования пропускная способность Э В М будет увеличиваться, стремясь к
некоторому пределу, определяемому характеристиками ресурсов Э В М . В
то же время каждая программа будет выполняться в общем случае более
длительное время из-за необходимости ожидания освобождения ресур­
сов, занятых другими программами. П р и увеличении коэффициента муль­
типрограммирования изменение значений показателей эффективности за-

90
Лекция 6 Мультипрограммный режим работы микропроцессора

Таблица 6.2. Характеристики работы Э В М при различных к о э ф ф и ­


циентах мультипрограммирования

Характеристика Км = 1 Км = 2 Км = 3

Время в ы п о л н е н и я программы Т1 9 10 10

- " - Т2 8 13 13

- " - Т3 11 11 19

- " - Т4 8 11 12

висит от того, в каком состоянии находится система: перегрузки или н е ­


догрузки. Если какие-либо ресурсы Э В М задействованы достаточно и н ­
тенсивно, то добавление новой программы, активно использующей эти
ресурсы, будет м а л о э ф ф е к т и в н ы м .

Микропроцессор для поддержки мультипрограммного режима работы


использует определенный набор аппаратных средств.
В компьютере, работающем в мультипрограммном режиме, выделяет¬
ся область памяти, доступная только операционной системе, в которой
хранится вся и н ф о р м а ц и я , необходимая для рестарта задачи (контекст­
ная память, или кадр состояния). П р и переключении контекста компью¬
тер просто переходит от одного раздела к другому. В качестве такого раз¬
дела в универсальных микропроцессорах выступает сегмент состояния
задачи TSS, который является небольшим сегментом данных с разрешен­
н ы м и операциями считывания и записи, — доступ к нему не разрешается
н и к а к и м программам, даже на самом высоком уровне привилегий. К сег¬
ментам TSS может обращаться только сам процессор.
Для поддержки работы с сегментом состояния задачи служит 16-раз­
р я д н ы й регистр задачи T R , в который заносится селектор дескриптора
TSS, и связанный с T R программно недоступный 64-разрядный «тене­
вой» регистр, в который загружается дескриптор TSS. Дескрипторы сег­
ментов состояния задач хранятся только в глобальной таблице дескрипто­
ров G D T . Для переключения задач используется шлюз задачи.

Сегмент состояния задачи состоит из двух частей (рис. 6.3). Обяза­


тельная часть TSS объемом 104 байта содержит и н ф о р м а ц и ю , необходи¬
мую для рестарта д а н н о й задачи после ее вызова на исполнение, а также
некоторую другую и н ф о р м а ц и ю . Дополнительная часть может содержать

91
Курс Архитектура микропроцессоров

какую-либо и н ф о р м а ц и ю о задаче, используемую операционной систе­


м о й (имя задачи, комментарии и т. д.), и битовую карту ввода/вывода
(БКВВ), определяющую устройства ввода/вывода, к которым разрешено
обращение д а н н о й задачи при определенных ситуациях.

31 16 15 0
Селектор возврата 0
ESPO* 4
| SS0* 8
ESP1* С
| SS1* 10
ESP2* 14
| SS2* 18
CR3* 1С
EIP 20
EFLAGS 24
ЕАХ 28
о ЕСХ 2С
EDX 30
ельна

ЕВХ 34
ESP 38
ЕВР зс
Ю ESI 40
О EDI 44
0 0 ...00 ES 48
0 0 ...00 CS 4С
0 0 ...00 SS 50
0 0 . . .00 DS 54
0 0 . . .00 FS 58
0 0 . . .00 GS 5С
0 0 ...00 LDTR* 60
Относительный
0 0 .. .оот 64
адрес БКВВ
Доп. информация для ОС
\ %
1 £ Битовая карта ввода/вывода 11111111

Рис. 6.3. Структура сегмента состояния задачи

Содержимое ряда полей TSS не изменяется п р и р е ш е н и и задачи (на


рис. 6.3 о н и помечены звездочкой): селектор L D T д а н н о й задачи (то есть
регистр L D T R ) , регистр управления C R 3 (базовый адрес каталога таблиц
страниц), поля SSi и E S P i , которые определяют начальные адреса стеков
п р и переключении к задачам с более высоким уровнем привилегий, что
обеспечивает их более надежную защиту.

92
Лекция 6 Мультипрограммный режим работы микропроцессора

П р и переключении задачи процессор может перейти к другой ло­


кальной таблице дескрипторов L D T и перезагрузить базовый регистр ката­
лога страниц C R 3 . Это позволяет назначить каждой задаче свое отображе­
н и е логических адресов на физические, что служит дополнительным
средством защиты, так как задачи м о ж н о изолировать и предотвратить их
взаимодействие друг с другом.
Поле селектора возврата обеспечивает связь д а н н о й задачи с вызвав­
шей ее программой. Селектор возврата — это селектор TSS предыдущей
задачи, при в ы п о л н е н и и которой произошел вызов д а н н о й задачи ( T R
предыдущей задачи, если предполагается возврат к ней).
Бит ловушки T используется при отладке программного обеспече­
н и я аналогично биту T F в регистре флагов: если T = 1, то при переключе¬
н и и на данную задачу возникает прерывание.
В TSS отсутствуют поля для хранения регистров управления C R 0 и
C R 2 . Это означает, что их содержимое не меняется при переключении
задач. Следовательно, страничное преобразование и условия работы с
F P U являются глобальными для всех задач. Д л я каждой задачи может
быть свой каталог таблиц страниц, но страничное преобразование может
быть разрешено или запрещено только для м и к р о п р о ц е с с о р н о й системы
в целом.
Объем дополнительной части TSS зависит от количества служебной
и н ф о р м а ц и и О С , определяемой характером решаемой задачи, и размеров
п р и м е н я е м о й битовой карты ввода/вывода. Дополнительная часть TSS
может вообще отсутствовать.
Относительный адрес БКВВ определяет положение битовой карты в
TSS. К а ж д ы й бит Б К В В соответствует однобайтовому порту ввода/выво­
1 6
да. Так как микропроцессор может обращаться к 2 портов, полная бито­
вая карта ввода/вывода, определяющая возможность их обслуживания, —
это строка д л и н о й до 64 Кбит. Когда для задачи определена Б К В В , ей пре­
доставляется дополнительная возможность в ы п о л н е н и я к о м а н д вво­
да/вывода. Если обычная защита по привилегиям запрещает ввод/вывод
(уровень привилегий задачи м е н ь ш е уровня, установленного в поле I O P L
регистра флагов), процессор обращается к Б К В В для дополнительной
проверки возможности ввода/вывода на конкретных устройствах. Если
соответствующие этим адресам биты карты содержат нули, то операции
ввода/вывода разрешаются. В противном случае формируется особый
случай нарушения защиты. Таким образом, Б К В В обеспечивает задаче
свободный доступ к н е з а щ и щ е н н ы м портам ввода/вывода без требования
п о н и ж е н и я значения в поле I O P L регистра флагов.
За последним байтом Б К В В в TSS должен следовать заключитель­
н ы й байт, состоящий из одних единиц. Адрес этого байта должен соответ¬
ствовать границе сегмента, определенной дескриптором TSS.

93
Курс Архитектура микропроцессоров

Дескриптор TSS имеет структуру дескриптора обычного сегмента, но


в поле предела должна быть указана длина не менее 104 байт (длина обя­
зательной части TSS). Если указанный размер сегмента меньше 104 байт,
то происходит прерывание.
Байт доступа дескриптора TSS имеет следующий вид (рис. 6.4):

7 6 5 4 3 2 1 0

и DPL 0 м н В ГП
Рис. 6.4. Байт доступа дескриптора сегмента состояния задачи

У него есть ряд особенностей по сравнению с дескрипторами обыч¬


ных сегментов.
Бит занятости B устанавливается в 1 при переключении на данную за­
дачу. Используется для обнаружения попытки вызова задачи, выполнение
которой прервано. Переключение задач производится, только если B = 0.
П р и B = 1 возникает прерывание. Установка B = 1 в дескрипторе TSS про­
изводится командами J M P и C A L L , переключающими микропроцессор на
выполнение данной задачи. П р и этом другие обращения в мультипрограмм­
ной системе к этой задаче будут запрещены.
В байте доступа дескриптора TSS поле D P L не означает уровень п р и ­
вилегий самого сегмента состояния задач, а аналогично ф у н к ц и и поля
D P L шлюза вызова показывает, какие программы могут обращаться к за­
даче, которая определяется д а н н ы м дескриптором TSS.
Значение M = 0 обеспечивает совместимость с микропроцессором
i286, в котором впервые появился мультипрограммный режим работы.

Переключение задач

Переключение задач осуществляется командами межсегментной п е ­


редачи управления, при обработке прерываний и возврате из обработчи­
ков. Если при этом управление передается дескриптору сегмента состояния
задачи или шлюзу задачи, то происходит переключение задач. В соответст­
вии с содержимым обязательной части TSS производится загрузка регис­
тров М П , и он начинает выполнение поступившей задачи.
Ш л ю з задачи имеет следующий формат (рис. 6.5):

Селектор TSS Р D P L 0 0101 Резерв

4 " •4 8 •4 ^ •
байт доступа

Рис. 6.5. Формат шлюза задачи

94
Лекция 6 Мультипрограммный режим работы микропроцессора

О н имеет статус системного объекта, и его тип, определенный в бай­


те доступа, имеет значение 0101.
Переключение задач похоже на вызов процедуры, но при этом с о ­
храняется больше и н ф о р м а ц и и . И н ф о р м а ц и я о состоянии процессора
сохраняется в TSS, а не в стеке.
Обращение к TSS осуществляется путем загрузки в регистр T R се­
лектора, который адресует р а з м е щ е н н ы й в G D T дескриптор TSS соответ­
ствующей задачи. Обычно команда L T R загрузки T R используется только
при и н и ц и а л и з а ц и и системы для установки начального содержимого T R .
В дальнейшем этот регистр загружается микропроцессором при выполне¬
н и и команд, переключающих задачу.
П р и переключении задач проверяются привилегии, установленные
для доступа к данным:

D P L ' < max ( C P L , R P L ) ,

т. е. допускается переключение на задачи, чья степень защиты меньше


или равна уровню привилегий текущей программы и запроса.
К а к п р а в и л о , поле D P L дескриптора TSS равно 0, поэтому пере¬
к л ю ч е н и е задач могут производить только п р и в и л е г и р о в а н н ы е про¬
граммы.
Д л я п е р е к л ю ч е н и я на задачи с б о л ь ш и м п р и о р и т е т о м использует­
ся м е х а н и з м шлюзов задач, а н а л о г и ч н ы й шлюзам вызова. П р и этом не¬
обходимо с о х р а н е н и е стеков более п р и в и л е г и р о в а н н ы х задач, что и
осуществляется с п о м о щ ь ю с о х р а н е н и я SSi, E S P i в сегменте состояния
задачи.
Д л я п е р е к л ю ч е н и я задач в командах межсегментных переходов
м о ж н о указать селектор ш л ю з а задачи ( к о с в е н н о е п е р е к л ю ч е н и е зада¬
чи) или селектор дескриптора TSS (прямое п е р е к л ю ч е н и е задачи без
п р и в л е ч е н и я ш л ю з а задачи). П р и н ц и п и а л ь н о й р а з н и ц ы между э т и м и
п е р е к л ю ч е н и я м и нет. Н о обычно цель использования шлюза задачи
связана с мультизадачностью. Так к а к для каждой задачи имеется е д и н ­
с т в е н н ы й дескриптор TSS, к о т о р ы й должен находиться в G D T , все до¬
статочно п р и в и л е г и р о в а н н ы е задачи имеют к нему доступ и могут про¬
извести п е р е к л ю ч е н и е задачи. Н о если определить для данного дескрип­
тора TSS н е с к о л ь к о ш л ю з о в задачи и разместить их в различных L D T ,
м о ж н о разрешить переключать задачи только тем задачам, которые име¬
ют ш л ю з задачи в своих L D T . П р и этом сохраняется доступ к дескрипто­
ру TSS для программ с нулевым уровнем п р и в и л е г и й , которые могут
п р я м о обращаться к нему в G D T .
Рассмотрим теперь переключение задач более подробно на примере
механизма прямого переключения (рис. 6.6).

95
Курс Архитектура микропроцессоров

Рис. 6.6. Механизм прямого переключения задач

В общем случае команда межсегментного перехода содержит 3 поля:


• поле кода операции ( J M P — безусловный переход, C A L L — пере¬
ход с возвратом),
• селектор нового сегмента команд, который заносится в сегмент¬
н ы й регистр C S , и
• поле смещения, содержимое которого заносится в регистр — ука¬
затель команд EIP.
П р и переключении задач выполняется следующая последователь¬
ность действий:
1. В случае, когда тип дескриптора, определяемого вторым полем
команды перехода, указывает, что д а н н ы й дескриптор является
дескриптором TSS и новая задача не занята (В = 0), запускается
механизм переключения задач. В этом случае поле смещения в
команде игнорируется.
2. В теневом регистре регистра задач T R микропроцессора к данно¬
му моменту содержится дескриптор TSS исполняемой задачи. Его
поле адреса указывает на область памяти, где должно быть сохра­
нено состояние текущей задачи. Микропроцессор записывает в
этот сегмент необходимую и н ф о р м а ц и ю .

96
Лекция 6 Мультипрограммный режим работы микропроцессора

3. Дескриптор TSS новой задачи переписывается из глобальной таб­


л и ц ы дескрипторов в теневой реп1стр регистра задач м и к р о п р о ­
цессора. Этот дескриптор определяет положение в памяти сег­
мента состояния новой задачи.
4. И н ф о р м а ц и я о новой задаче переписывается из своего TSS в ре¬
гистры микропроцессора.
5. Если команда, вызвавшая переключение задач, предполагает п о ­
следующий возврат к старой задаче ( C A L L ) , то в поле селектора
возврата TSS входящей задачи заносится содержимое регистра
T R снимаемой с обработки задачи. П р и этом устанавливается
значение бита вложенной задачи N T = 1 в регистре флагов
EFLAGS.
6. В регистр T R микропроцессора из второго поля к о м а н д ы зано­
сится селектор дескриптора TSS новой задачи.

Использование флага вложенной задачи N T и бита занятости B п о з ­


воляет организовать корректную обработку вложенных задач. П о р я д о к
установки этих бит в зависимости от типа команды, вызвавшей переклю¬
ч е н и е задач, указан в табл. 6.3.

Таблица 6.3. М о д и ф и к а ц и я флагов занятости и вложенности при пе¬


реключении задач

Тип Входящая задача Выходящая задача


команды Флаг NT Бит B Флаг NT Бит B
в EFLAGS в дескрипторе в EFLAGS в дескрипторе
TSS TSS
CALL 1 1 X 1
JMP 0 1 X 0

Команда J M P при переключении на новую задачу не сохраняет в


TSS селектор возврата и устанавливает N T = 0, а также B = 0 в дескрипто¬
ре старой задачи и B = 1 в дескрипторе новой задачи.
Команда C A L L устанавливает B = 1 для новой задачи, но сохраняет
B = 1 для предыдущей. Таким образом, каждая задача в цепи вызовов ока­
зывается занятой, что запрещает п р и м е н е н и е рекурсивных процедур и
реентерабельных программ.
Возврат из задачи осуществляется по команде IRET, которая анали­
зирует флаг N T и при N T = 1 осуществляет переключение на задачу, зада¬
ваемую селектором возврата в TSS текущей задачи. П р и N T = 0 осуществ¬
ляется обычная процедура возврата из процедуры с восстановлением из
стека содержимого C S , EIP, E F L A G S .

97
Курс Архитектура микропроцессоров

Обычная команда R E T возврата из подпрограммы не учитывает вло­


ж е н и я задач.

Краткие итоги. В л е к ц и и рассмотрены п р и н ц и п ы организации муль¬


типрограммного режима обработки и н ф о р м а ц и и , представлены аппарат¬
н ы е средства микропроцессора, используемые для поддержки мульти­
программирования, разобран механизм переключения задач.

98
Лекция 7 Прерывания и особые случаи

Л е к ц и я 7. П р е р ы в а н и я и о с о б ы е с л у ч а и

Цель лекции: изучение ф у н к ц и о н и р о в а н и я системы прерываний м и ­


кропроцессорной системы.

Прерывание — это изменение естественного порядка в ы п о л н е н и я


программы, которое связано с необходимостью р е а к ц и и системы на ра­
боту внешних устройств, а также на о ш и б к и и особые ситуации, возник­
шие п р и в ы п о л н е н и и программы. П р и этом вызывается специальная
программа — обработчик прерываний, специфическая для каждой возник­
ш е й ситуации, после в ы п о л н е н и я которой возобновляется работа пре¬
р в а н н о й программы.
Механизм прерывания обеспечивается соответствующими аппарат­
н о - п р о г р а м м н ы м и средствами компьютера.
К л а с с и ф и к а ц и я прерываний представлена на рис. 7.1.

Рис. 7.1. К л а с с и ф и к а ц и я прерываний

Запросы аппаратных прерываний возникают асинхронно по отно­


ш е н и ю к работе микропроцессора и связаны с работой внешних уст¬
ройств.
Запрос от немаскируемых прерываний поступает на вход N M I м и к р о ­
процессора и не может быть программно заблокирован. Обычно этот вход
используется для запросов прерываний от схем контроля питания или не¬
устранимых о ш и б о к ввода/вывода.
Д л я запросов маскируемых прерываний используется вход I N T м и к ­
ропроцессора. Обработка запроса прерывания по данному входу может
быть заблокирована сбросом бита I F в регистре флагов микропроцессора.
Программные прерывания, строго говоря, называются и с к л ю ч е н и я м и
или особыми случаями. О н и связаны с особыми ситуациями, возникаю¬
щ и м и п р и в ы п о л н е н и и программы (отсутствие страницы в оперативной
памяти, нарушение защиты, переполнение), то есть с теми ситуациями,
которые программист предвидеть не может, либо с наличием в программе
специальной команды I N T n, которая используется программистом для

99
Курс Архитектура микропроцессоров

вызова ф у н к ц и й операционной системы либо BIOS, поддерживающих


работу с в н е ш н и м и устройствами. В дальнейшем при обсуждении работы
системы прерываний м ы будем употреблять единый термин «прерыва­
ние» для аппаратных прерываний и исключений, если это не оговорено
особо.
Программные прерывания делятся на следующие типы.
Нарушение (отказ) — особый случай, который микропроцессор м о ­
жет обнаружить до возникновения фактической о ш и б к и (например, от­
сутствие страницы в оперативной памяти); после обработки нарушения
программа выполняется с рестарта команды, приведшей к нарушению.
Ловушка — особый случай, который обнаруживается после о к о н ч а ­
н и я в ы п о л н е н и я к о м а н д ы (например, наличие в программе к о м а н д ы
I N T n или установленный флаг T F в регистре флагов). П о с л е обработки
этого п р е р ы в а н и я в ы п о л н е н и е программы продолжается со следующей
команды.
Авария (выход из процесса) — столь серьезная ошибка, что некото­
р ы й контекст программы теряется и ее продолжение невозможно. П р и ­
чину аварии установить нельзя, поэтому программа снимается с обработ­
ки. К авариям относятся аппаратные о ш и б к и , а также несовместимые
или недопустимые значения в системных таблицах.

Порядок обработки прерываний

Прерывания и особые случаи распознаются на границах команд, и


программист может не заботиться о состоянии внутренних рабочих реги¬
стров и устройств конвейера.
Реагируя на запросы прерываний, микропроцессор должен иденти¬
фицировать его источник, сохранить м и н и м а л ь н ы й контекст текущей
программы и переключиться на специальную программу — обработчик
прерывания. После обслуживания прерывания М П возвращается к пре­
р в а н н о й программе, и она должна возобновиться так, как будто прерыва­
н и я не было.
Обработка запросов прерываний состоит и з :
• «рефлекторных» действий процессора, которые одинаковы для
всех прерываний и особых случаев и которыми программист уп¬
равлять не может;
• выполнения созданного программистом обработчика.
Для того чтобы микропроцессор мог идентифицировать источник
прерывания и найти обработчик, соответствующий полученному запросу,
каждому запросу прерывания присвоен свой номер ( т и п прерывания).
Тип прерывания для программных прерываний вводится изнутри м и ­
кропроцессора; например, прерывание по отсутствию страницы в памяти

100
Лекция 7 Прерывания и особые случаи

имеет тип 14. Для прерываний, вызываемых командой I N T n, тип содер­


жится в самой команде. Для маскируемых аппаратных прерываний тип
вводится из контроллера приоритетных прерываний по ш и н е данных. Не­
маскируемому прерыванию назначен тип 2.
Всего микропроцессор различает 256 типов прерываний. Таким обра¬
зом, все они могут быть закодированы в 1 байте.
«Рефлекторные» действия микропроцессора по обработке запроса
прерывания выполняются аппаратными средствами М П и включают в себя:
• определение типа прерывания;
• сохранение контекста прерываемой программы (некоторой ин¬
ф о р м а ц и и , которая позволит вернуться к прерванной программе
и продолжить ее выполнение). Всегда автоматически сохраняют­
ся к а к м и н и м у м регистры E I P и C S , определяющие точку возвра­
та в прерванную программу, и регистр флагов E F L A G S . Если в ы ­
зов обработчика прерывания проводится с использованием ш л ю ­
за задачи, то в памяти полностью сохраняется сегмент состояния
TSS прерываемой задачи;
• определение адреса обработчика прерывания и передача управле­
н и я первой команде этого обработчика.
После этого выполняется программа — обработчик прерывания, с о ­
ответствующая поступившему запросу. Эта программа пишется и разме­
щается в памяти прикладным или системным программистом. Обработ­
ч и к прерывания должен завершаться командой IRET, по которой автома­
тически происходит переход к продолжению выполнения прерванной
программы с восстановлением ее контекста.

Для вызова обработчика прерывания микропроцессор при работе в


реальном режиме использует таблицу векторов прерываний, а в защищенном
режиме — таблицу дескрипторов прерываний.
Таблица векторов прерываний (рис. 7.2) располагается в самых млад­
ших адресах оперативной памяти, имеет объем 1 Кбайт и содержит 4-
байтные элементы (векторы прерываний) для 256 обработчиков прерыва­
н и й . Старшие 2 байта вектора загружаются в сегментный регистр команд
C S , а младшие 2 байта — в регистр указателя команд IP. Обращение к эле­
ментам таблицы осуществляется по 8-разрядному коду — типу прерыва­
ния. Так как таблица всегда имеет нулевой начальный адрес и длину век­
тора в 4 байта, чтобы определить адрес вектора для прерывания типа i , до¬
статочно просто умножить это значение на 4.
В защищенном режиме для вызова обработчика прерывания исполь­
зуется таблица дескрипторов прерываний IDT. Элементами таблицы я в л я ­
ются 8-байтные дескрипторы типа шлюз — специальные программные
структуры, через которые происходит передача управления обработчику.

101
Курс Архитектура микропроцессоров

IP255 CS
255

х 4

тип 4г/
IPn cs n

0004 IPl csx


0000 IPo CS 0

2 байта 2 байта
4 •4 •

Рис. 7.2. Таблица векторов прерываний

Обращение к I D T аналогично обращению к глобальной таблице дес­


крипторов, где вместо системного регастра G D T R используется регистр
I D T R , который определяет размер и базовый адрес таблицы в памяти.
Ф и з и ч е с к и й адрес дескриптора шлюза, находящегося в IDT, определяет­
ся к а к сумма базового адреса таблицы и умноженного на 8 типа прерыва­
н и я (рис. 7.3).

Рис. 7.3. П о р я д о к обращения к таблице дескрипторов прерываний

Содержимое регистра I D T R не сохраняется в сегментах TSS и не и з ­


меняется п р и переключении задачи. Программы не могут обратиться к
IDT, так к а к единственный бит TI индикатора таблицы в селекторе сегмен­
та обеспечивает выбор только между таблицами G D T и L D T .

102
Лекция 7 Прерывания и особые случаи

М а к с и м а л ь н ы й предел таблицы дескрипторов прерываний состав­


ляет 256*8 - 1 = 2047.
М о ж н о определить предел меньшим, но это не рекомендуется. Если
происходит обращение к дескриптору вне пределов IDT, процессор перехо­
дит в режим отключения до получения сигнала по входу N M I или сброса.
В I D T могут храниться только дескрипторы следующих типов:
• шлюз ловушки,
• шлюз прерывания,
• шлюз задачи.
Ш л ю з ы ловушки и прерывания сходны со шлюзом вызова, только в
них отсутствует поле счетчика W C (рис. 7.4). Так к а к прерывание являет­
ся н е о ж и д а н н ы м событием и не связано с текущей программой, говорить
о передаче параметров их обработчику не приходится.

байт доступа
селектор смещение Р DPL О ТИП резерв

< / 3 2

/ 64 бита = 8 байт

CS I г
ETPl Н ^ ^ ^

Рис. 7.4. Формат шлюзов ловушки и прерывания

Бит S = 0 в байте доступа определяет этот дескриптор к а к системный


объект. Если поле Т И П в байте доступа равно 1110, то это шлюз прерыва­
ния, если 1111 — то шлюз ловушки.
Поле уровня привилегий дескриптора D P L , к а к правило, устанавли­
вается р а в н ы м 3 с тем, чтобы к обработчику прерываний могли обращать­
ся программы с любого уровня привилегий.
Бит присутствия P может быть равен к а к 0, так и 1.
П р и входе в обработчик через шлюз прерывания в регистре флагов
сбрасывается бит разрешения прерываний IF. В этом случае м и к р о п р о ц е с ­
сор блокирует все маскируемые аппаратные прерывания. Поэтому в обра¬
ботчике прерываний этот бит должен быть установлен в 1 к а к м о ж н о
раньше с тем, чтобы не блокировать работу программ, которые вызыва¬
ются, например, п р и обработке прерываний от системного таймера.
П р и входе в обработчик через шлюз ловушки флаг I F не меняется.
Вызов обработчика через шлюз ловушки, а не шлюз прерывания, чаще
реализуют п р и обработке исключений, так к а к на период обслуживания

103
Курс Архитектура микропроцессоров

прерывания нежелательно выключать механизм разделения времени, и с ­


пользующий прерывания таймера.
Вызов обработчика через шлюз задачи обычно осуществляется при
обработке аппаратных прерываний, так как такая обработка не связана с
текущей выполняемой задачей. П р и этом возможен механизм вложенных
прерываний, если прерывания в задаче разрешены. Вызов обработчика
прерывания через ш л ю з задачи осуществляется и при обработке и с к л ю ­
ч е н и й , например, «неразрешенный TSS», когда поврежденная задача не
может вызвать процедуру прерывания. Переключение задач требует п р и ­
мерно в 5 раз больше времени, чем вызов процедуры. Поэтому, если п р и ­
оритет запроса высок, а программа обслуживания короткая, ее оформля¬
ют в виде процедуры.

Контроллер приоритетных прерываний

Прерывание — один из наиболее дефицитных ресурсов в м и к р о п р о ­


цессорной системе. Микропроцессор имеет только 2 входа для приема за­
просов прерываний: вход I N T — по нему принимаются запросы, обработ¬
ка которых может быть замаскирована сбросом флага I F в регистре фла¬
гов, — и вход немаскируемых прерываний N M I . Вход N M I фактически
закреплен за запросами прерываний от схем контроля питания. Поэтому
при такой архитектуре микропроцессора в микропроцессорной системе
обязательно д о л ж н ы использоваться средства, которые позволяют пред¬
варительно обрабатывать и передавать на вход маскируемых прерываний
I N T микропроцессора запросы от многочисленных внешних устройств,
входящих в состав микропроцессорной системы. В качестве такой схемы
используется контроллер приоритетных прерываний ( К П П ) .
М ы рассмотрим его ф у н к ц и о н и р о в а н и е на примере Б И С i8259, к о ­
торая, с одной стороны, имеет самостоятельное значение, а с другой сто¬
р о н ы , фактически без и з м е н е н и й входит в состав современных чипсетов.
Его структура представлена на рис. 7.5.
Функции контроллера приоритетных прерываний:
• восприятие и ф и к с а ц и я до 8 запросов прерываний (IRQ0 - IRQ7),
поступающих по в н е ш н и м входам;
• выделение наиболее приоритетного из поступивших запросов,
включая возможность маскирования отдельных запросов;
• выдача на ш и н у данных (по требованию микропроцессора) типа
выбранного прерывания.
П р и использовании К П П обработка запросов немаскируемых пре¬
р ы в а н и е проходит следующие этапы:
1) Системная периферия на системной плате или устройство вво¬
да/вывода на внешней ш и н е активирует одну из л и н и й IRQx.

104
Лекция 7 Прерывания и особые случаи

Рис. 7.5. Структура контроллера приоритетных прерываний

2) В регистре запросов прерываний I R R , который предварительно на­


страивается на восприятие запросов по спаду или низкому уровню
сигнала, происходит установка соответствующих разрядов в «1».
3) Незамаскированные в регистре маски I M R запросы передаются в
приоритетный арбитр, замаскированные блокируются.
4) В соответствии с выбранной в процессе и н и ц и а л и з а ц и и дисцип¬
л и н о й обслуживания приоритетный арбитр выделяет наиболее
приоритетный запрос. П р и системном сбросе контроллера самый
высокий приоритет устанавливается для запроса, приходящего
по входу IRQ0, а самый н и з к и й — по входу IRQ7.
5) Приоритет выделенного запроса сравнивается с приоритетом за­
проса, который в данный момент может обрабатываться м и к р о ­
процессором (его номер установлен в регистре обслуживания пре¬
рываний ISR). Если приоритет нового запроса выше либо в данный
момент обслуживаемых запросов нет, то контроллер формирует
сигнал прерывания I N T в микропроцессор, в противном случае
обработка запроса откладывается. В регистре типа прерывания
формируется тип принятого к обработке запроса прерывания.
6) М П воспринимает запрос прерывания, и если флаг I F = 1, то по
завершении текущей команды выполняет 2 цикла подтверждения
прерывания, выдавая сигналы на выход I N T A :
а) в 1-м цикле запрещается запись в I R R . В ISR устанавливается
разряд, соответствующий принятому к обработке запросу, и
сбрасывается разряд в I R R ;

105
Курс Архитектура микропроцессоров

б) во 2-м цикле тип прерывания передается в М П по разрядам D 0 -


D7 ш и н ы данных. Разрешается запись в I R R ;
7) М П принимает тип прерывания и использует его в качестве индек­
са при обращении к соответствующей таблице прерываний (табли­
це векторов или таблице дескрипторов прерываний в зависимости
от режима работы М П ) .
8) В соответствии с установленным в микропроцессоре режимом
работы ( реальном или з а щ и щ е н н о м ) и механизмом вызова про¬
граммы — обработчика прерывания М П сохраняет необходимую
и н ф о р м а ц и ю о прерываемой программе и переходит к выполне­
н и ю обработчика прерывания.
9) Команда IRET, завершающая обработчик прерываний, восстанав­
ливает прежнее состояние микропроцессора и передает управле¬
ние прерванной программе.

Каскадное включение контроллеров приоритетных


прерываний

Для р а с ш и р е н и я количества запросов прерываний, которые могут


быть подключены к микропроцессору, в микропроцессорной системе мо¬
жет быть использовано несколько К П П . Схема каскадного подключения
двух контроллеров представлена на рис. 7.6.

1NT INT КПП IRQ0 INT КПП IRQ8


0 0
1 1
2 2
3 IRQ4 3
4 4
МП D D 5 D 5
6 IRQ7 6
7 7
INTA INTA

TNTA Ведущий В едомый

Рис. 7.6. Каскадное подключение контроллеров приоритетных пре¬


р ы в а н и й к микропроцессору

К входу I N T микропроцессора подключается выход I N T ведущего


контроллера. Выход I N T ведомого контроллера подключается к одному
из входов I R Q ведущего К П П на правах других запросов прерываний, п о -
i

106
Лекция 7 Прерывания и особые случаи

ступающих н а этот контроллер. В персональной Э В М всегда используют­


ся два контроллера приоритетных прерываний, причем ведомый К П П
подключен к входу IRQ2 ведущего.
Н а р и с . 7.5 было дано схематическое представление контроллера
приоритетных прерываний. Д л я того чтобы лучше понять ф у н к ц и о н и р о ­
вание контроллеров приоритетных прерываний в реальных м и к р о п р о ц е с ­
сорных системах и оценить все и м е ю щ и е с я у них возможности, рассмот¬
р и м структуру К П П более подробно.
Регистры К П П делятся н а 2 группы: регистры и н и ц и а л и з а ц и и
ICW1-ICW4 и операционные регистры O C W 1 - O C W 3 .
Регистры инициализации загружаются п р и и н и ц и а л и з а ц и и контрол­
лера и в процессе работы К П П не меняются.
Регистр ICW1 — управление микросхемой:
• настраивает контроллер н а восприятие сигналов запроса п о низ¬
кому уровню и л и заднему фронту;
• определяет, используется в М П С единственный К П П и л и п р и м е ­
няется их каскадное включение;
• определяет п о р я д о к загрузки приказов и н и ц и а л и з а ц и и . Необхо¬
димость этого обусловлена тем, что в пространстве ввода/вывода
каждому контроллеру выделено всего 2 адреса. Так, в стандартной
к о н ф и г у р а ц и и персональной Э В М ведущему контроллеру выде¬
л е н ы адреса 20h и 21h, а ведомому — A 0 h и A1h. В то же время
каждый контроллер имеет в своем составе 7 регистров, к которым
должен быть обеспечен п р о г р а м м н ы й доступ. В частности, п р и
и н и ц и а л и з а ц и и необходимо занести и н ф о р м а ц и ю в 4 регистра
ICWi.
Регистр ICW2 — регистр типа прерывания. П р и и н и ц и а л и з а ц и и в 5
его старших разрядов заносится некоторая константа. В процессе обра­
ботки запросов п р е р ы в а н и й в 3 младшие разряда этого регистра заносит­
ся номер входа I R Q , п о которому п р и н я т запрос, подлежащий обработке
i

(рис. 7.7):

Рис. 7.7. Формат регистра типа прерывания ICW2

В персональной Э В М в регистр ICW2 ведущего контроллера п р и


и н и ц и а л и з а ц и и заносится константа 00001b, а в ведомый — константа
01110b. Поэтому т и п ы всех прерываний, запросы от которых поступают
через ведущий К П П , лежат в диапазоне 00001000b-00001111b (08h-0Fh), а

107
Курс Архитектура микропроцессоров

через ведомый — в диапазоне 01110000b-01110111b (70h-77h). Распреде­


л е н и е входов прерываний в стандартной конфигурации персональной
Э В М представлено в табл. 7.1.

Таблица 7.1. Распределение входов запросов прерываний в персо¬


нальной Э В М

Контроллер IRQ Тип Назначение Начальное


состояние
маски
Ведущий 0 8 Таймер 0
контроллер 1 9 Клавиатура 0
2 A Ведомый К П П 0
3 B Последовательный порт 2
(COM2) 1
4 C Последовательный порт 1
(COM1) 1
5 D Последовательный принтер
(LPT2) 1
6 E НГМД 0
7 F Параллельный принтер (LPT1) 1
Ведомый 8 70 Ч а с ы реального времени 1
контроллер 9 71 Резерв. Программно
переназначен на IRQ2 0
10 72 Резерв 1
11 73 Резерв 1
12 74 Мышь 1
13 75 О ш и б к а сопроцессора 1
14 76 НЖМД 0
15 77 Резерв 1

Регистр ICW3 — регистр управления ведомым. Имеет различное на­


значение в ведущем и ведомом К П П . В ведущем К П П устанавливаются
единицы в разрядах, соответствующих л и н и я м с подключенными ведомы¬
ми К П П . В персональной Э В М его значение имеет вид 00000100b. В ведо¬
мом К П П пять старших разрядов этого регистра установлены в 0, а в трех
младших кодируется номер входа ведущего К П П , к которому подключен
д а н н ы й ведомый. В персональной Э В М его значение имеет вид 00000010b.
Регистр ICW4 — регистр управления режимом. Определяет, является
д а н н ы й К П П ведущим или ведомым, тип о к о н ч а н и я прерывания, то есть
кем должен сбрасываться бит запроса в регистре обслуживания прерыва­
н и я ISR, и другие параметры работы.

108
Лекция 7 Прерывания и особые случаи

Так к а к для К П П определено только 2 допустимых состояния (веду­


щ и й или ведомый), максимальная конфигурация контроллеров п р и о р и ­
тетных прерываний состоит из 1 ведущего и 8 ведомых К П П . Это обеспе­
чивает возможность подключения к входу I N T микропроцессора до 64 за¬
просов прерываний.
Содержимое операционных регистров изменяется в процессе работы
К П П записью в них новой и н ф о р м а ц и и .
Регистр OCW1 (IMR) — регистр маски прерывания. Код 1 в разряде i за­
прещает, а код 0 — разрешает обработку запроса прерывания по входу IRQ . i

Регистр O C W 2 — определяет один из трех возможных порядков и з ­


м е н е н и я приоритетов запросов прерываний:
• приоритеты не меняются в процессе работы К П П ;
• приоритеты меняются циклически: после обработки очередного
запроса его приоритет становится самым н и з к и м , а приоритеты
остальных запросов циклически сдвигаются;
• в процессе работы К П П какому-либо запросу м о ж н о задать н а и ­
в ы с ш и й приоритет, приоритеты остальных запросов при этом
циклически сдвигаются.
В персональной Э В М установлено постоянство приоритетов запро¬
сов прерываний, при этом запрос IRQ0 имеет самый высокий приоритет.
Так к а к здесь используются два каскадно включенных контроллера (см.
рис. 7.6), приоритеты запросов прерываний I R Q имеют вид, представ¬
i

л е н н ы й на рис. 7.8.

Рис. 7.8. Приоритетность запросов прерываний I R Q в персональной


i

ЭВМ

Регистр OCW3 — управляет переводом контроллера в режим н е п р и ­


оритетного обслуживания и считыванием содержимого регистра запросов
I R R и регистра обслуживания ISR. В режиме неприоритетного обслужива­
н и я микропроцессор получает от К П П только сигнал запроса прерыва­
н и я , после чего микропроцессор должен программно считать содержимое
регистров I R R и ISR и по своим алгоритмам определить, какой из имею¬
щихся запросов прерываний принять к обслуживанию.

Краткие итоги. В л е к ц и и рассмотрена к л а с с и ф и к а ц и я прерываний,


порядок обработки прерываний в реальном и з а щ и щ е н н о м режимах ра¬
боты микропроцессора, структура и ф у н к ц и о н и р о в а н и е контроллера
приоритетных прерываний.

109
Курс Архитектура микропроцессоров

Л е к ц и я 8. С т р у к т у р а м и к р о п р о ц е с с о р н о й с и с т е м ы

Цель лекции: изучение п р и н ц и п о в построения микропроцессорных


систем и взаимодействия устройств в составе М П С .

М П С — сложная система, включающая в себя большое количество


различных устройств. Основой ее является микропроцессор. Связь уст­
ройств Э В М между собой осуществляется с п о м о щ ь ю сопряжений, кото­
рые в вычислительной технике называются интерфейсами.
Интерфейс — это совокупность программных и аппаратных средств,
предназначенных для передачи и н ф о р м а ц и и между компонентами Э В М
и включающих в себя электронные схемы, л и н и и , ш и н ы и сигналы адре­
сов, данных и управления, алгоритмы передачи сигналов и правила ин¬
терпретации сигналов устройствами.
В ш и р о к о м смысле интерфейс включает также механическую часть
(совместимость по типоразъемам) и вспомогательные схемы, обеспечива­
ю щ и е электрическую совместимость устройств по уровням логических
сигналов, входным и выходным токам и т. д.
Подробное изучение интерфейсов и системных ш и н не входит в зада¬
чи данного курса. Поэтому эти вопросы м ы будем рассматривать л и ш ь с
точки зрения общего представления об организации работы микропроцес­
сорной системы и принципах взаимодействия составляющих ее устройств.
О с н о в н ы м способом организации М П С является магистрально-мо-
дульный (рис. 8.1): все устройства, включая и микропроцессор, представ­
ляются в виде модулей, которые соединяются между собой общей магис­
тралью. Обмен и н ф о р м а ц и е й по магистрали удовлетворяет требованиям
некоторого общего интерфейса, установленного для магистрали данного
типа. К а ж д ы й модуль подключается к магистрали посредством специаль¬
ных интерфейсных схем.

Рис. 8.1. Магистрально-модульный п р и н ц и п построения микропро¬


цессорной системы

110
Лекция 8 Структура микропроцессорной системы

На интерфейсные схемы модулей возлагаются следующие задачи:


• обеспечение ф у н к ц и о н а л ь н о й и электрической совместимости
сигналов и протоколов обмена модулей и системной магистрали;
• преобразование внутреннего формата данных модуля в формат
данных системной магистрали и обратно;
• обеспечение восприятия единых команд обмена и н ф о р м а ц и е й и
преобразование их в последовательность внутренних управляю¬
щих сигналов.
Эти интерфейсные схемы могут быть достаточно сложными. Обыч¬
но о н и выполняются в виде специализированных микропроцессорных
Б И С . Такие схемы принято называть контроллерами.
Контроллеры обладают высокой степенью автономности, что позво¬
ляет обеспечить параллельную во времени работу п е р и ф е р и й н ы х уст¬
ройств и выполнение программы обработки данных микропроцессором.
Кроме того, предварительно буферируя данные, контроллеры обеспечи­
вают пересылку сразу для многих слов, расположенных по подряд иду­
щ и м адресам, что позволяет использование так называемого «взрывного»
(burst) режима работы ш и н ы — 1 ц и к л адреса и следующие за н и м много¬
численные циклы данных.
Недостатком магистрально-модульного способа организации Э В М
является невозможность одновременного взаимодействия более двух мо¬
дулей, что ставит ограничение на производительность компьютера.
Взаимодействие микропроцессора с оперативной памятью (ОП) и
в н е ш н и м и устройствами (ВУ) проиллюстрировано на рис. 8.2.

Рис. 8.2. Взаимодействие микропроцессора с оперативной памятью


и в н е ш н и м и устройствами

111
Курс Архитектура микропроцессоров

Микропроцессор формирует адрес внешнего устройства или я ч е й к и


оперативной памяти и вырабатывает управляющие сигналы — либо
I O R / I O W при обращении на чтение/запись и з внешнего устройства, либо
M R / M W для ч т е н и я / з а п и с и и з оперативной памяти.
Для обмена и н ф о р м а ц и е й с в н е ш н и м и устройствами в М П имеются
только 2 к о м а н д ы :
• команда ввода I N A X , D X записывает в регистр A X число из в н е ш ­
него устройства, адрес которого находится в регистре D X ; п р и
этом вырабатывается сигнал I O R (Input/Output Read);
• команда вывода O U T D X , A X выводит и н ф о р м а ц и ю из регистра
A X во внешнее устройство, адрес которого находится в регистре
D X ; п р и этом вырабатывается сигнал IOW (Input/Output Write).
Сигналы I O R / I O W формируются п р и в ы п о л н е н и и только этих ко¬
манд.
Ф о р м и р о в а н и е сигналов M R / M W происходит в командах, для кото­
рых операнд и / и л и п р и е м н и к результата располагаются в оперативной
памяти, например, A D D [ E B X ] , A X .
В связи с этим возможны два основных способа организации адрес­
ного пространства микропроцессорной системы:
1) с о б щ и м адресным пространством внешних устройств и оператив­
ной памяти;
2) с независимыми адресными пространствами.
В первом случае к портам ввода/вывода м о ж н о обращаться к а к к
ячейкам оперативной памяти. Достоинством такого подхода является
возможность использовать различные р е ж и м ы адресации при обращении
к в н е ш н и м устройствам, а также выполнять над содержимым портов вво¬
да/вывода различные арифметико-логические операции. Н о в то ж е вре¬
мя п р и этом сокращается емкость адресуемой О П и снижается з а щ и щ е н ­
ность системы, так к а к она лишается дополнительных средств защиты,
связанных с выполнением команд ввода/вывода (не работает поле I O P L
регистра флагов). К тому ж е нарушение в логике работы программы (фор¬
мирование неверного адреса оперативной памяти) может привести к
ложному срабатыванию внешнего устройства.
Если первый недостаток н е столь существенен п р и современных объ¬
емах запоминающих устройств, то второй может весьма негативно ска¬
заться на работе М П С . Возможность использования сложных режимов ад­
ресации при обращении к в н е ш н и м устройствам для микропроцессорных
систем на основе универсальных М П н е столь важна. Поэтому в настоя­
щее время п р и построении М П С предпочтение отдается второму подходу.
Рассмотрим особенности обмена и н ф о р м а ц и е й микропроцессора с
в н е ш н и м и устройствами. Упрощенная временная диаграмма этого про¬
цесса представлена на рис. 8.3.

112
Лекция 8 Структура микропроцессорной системы

—1
CLK-

ША X X X X

ADS л / \ / \ / \
MR/IOR-

\ /
-< в Ц Г из ЦП > — <в цп>—

Удлиненный цикл чтения


Z

Рис. 8.3. Временная диаграмма обмена и н ф о р м а ц и е й между микро¬


процессором и в н е ш н и м устройством

П р и таком обмене микропроцессор использует стандартный ц и к л


ш и н ы длительностью 2 периода тактового генератора, начало которого
определяется сигналом A D S ш и н ы .
О д н а к о если в обмене задействованы относительно медленное
внешнее устройство или оперативная память, которые не успевают завер¬
шить обмен в текущем цикле работы микропроцессора, то о н и сбрасыва¬
ют сигнал R E A D Y , который проверяется микропроцессором в конце вто­
рого тактового сигнала цикла. П р и R E A D Y = 0 М П вставляет д о п о л н и ­
тельные т а к т ы о ж и д а н и я в ц и к л ш и н ы , ч т о б ы дать в о з м о ж н о с т ь
внешнему устройству завершить операцию ввода/вывода. Однако сигнал
неготовности внешнего устройства не может длиться более установлен­
ного времени (для ш и н ы ISA — 2,5 мкс), в противном случае генерирует­
ся прерывание по ошибке ввода/вывода. Это предотвращает зависание
системы в случае, например, механического повреждения данного кон¬
такта.
В общем случае стандартный ц и к л ш и н ы при обмене уже включает
несколько дополнительных тактов ожидания. П р и этом ц и к л ы обраще­
н и я к памяти короче циклов обращения к портам ввода/вывода. М и н и ­
мальная длительность цикла определяется чипсетом и может программи­
роваться о п ц и я м и BIOS Setup заданием тактов ожидания. Если О П или
внешнее устройство не нуждаются в дополнительных тактах, то их к о н -

113
Курс Архитектура микропроцессоров

троллеры выставляют на ш и н у сигнал OWS, по которому дополнительные


такты не вставляются.

Прямой доступ к памяти

В М П С используются два о с н о в н ы х способа организации передачи


д а н н ы х между п а м я т ь ю и п е р и ф е р и й н ы м и устройствами: программно
управляемая передача и прямой доступ к памяти П Д П (Direct Memory
Access — D M A ) .
Программно управляемая передача данных осуществляется при непо¬
средственном участии и под управлением процессора. Н а п р и м е р , при пе¬
ресылке блока данных из внешнего устройства в оперативную память
процессор должен выполнить следующую последовательность шагов:
1) сформировать начальный адрес области обмена О П ;
2) занести длину передаваемого массива данных в один из своих вну¬
тренних регистров, который будет играть роль счетчика;
3) выдать команду чтения и н ф о р м а ц и и из ВУ; при этом на ш и н у ад­
реса из М П выдается адрес ВУ, на ш и н у управления — сигнал чте­
н и я данных из ВУ, а считанные д а н н ы е заносятся во внутренний
регистр М П ;
4) выдать команду записи и н ф о р м а ц и и в О П ; при этом на шину ад¬
реса из М П выдается адрес я ч е й к и оперативной памяти, на ш и н у
управления — сигнал записи данных в О П , а на ш и н у данных в ы ­
ставляются д а н н ы е из регистра М П , в который они были помеще¬
н ы при чтении из ВУ;
5) модифицировать регистр, содержащий адрес оперативной памяти;
6) уменьшить счетчик д л и н ы массива на длину переданных данных;
7) если переданы не все д а н н ы е , то повторить шаги 3—6, в против¬
н о м случае закончить обмен.
К а к м ы в и д и м , п р о г р а м м н о у п р а в л я е м ы й о б м е н ведет к нерацио¬
н а л ь н о м у и с п о л ь з о в а н и ю м о щ н о с т и м и к р о п р о ц е с с о р а , к о т о р ы й вы¬
нужден в ы п о л н я т ь большое количество о т н о с и т е л ь н о простых о п е р а ­
ц и й , п р и о с т а н а в л и в а я работу над о с н о в н о й п р о г р а м м о й . П р и этом д е й ­
ствия, с в я з а н н ы е с о б р а щ е н и е м к о п е р а т и в н о й п а м я т и и к в н е ш н е м у
устройству, о б ы ч н о требуют у д л и н е н н о г о ц и к л а р а б о т ы микропроцес¬
сора, что п р и в о д и т к е щ е более с у щ е с т в е н н ы м п о т е р я м производитель¬
ности.
Альтернативой программно управляемому обмену служит прямой до­
ступ к памяти — способ быстродействующего подключения внешнего
устройства, при котором оно обращается к оперативной памяти, не пре­
рывая работы процессора. Такой обмен происходит под управлением от­
дельного устройства — контроллера прямого доступа к памяти ( К П Д П ) .

114
Лекция 8 Структура микропроцессорной системы

Схема включения К П Д П в состав микропроцессорной системы


представлена на рис. 8.4.

Рис. 8.4. Структура М П С с контроллером прямого доступа к памяти

Перед началом работы контроллер ПДП необходимо инициализиро­


вать: занести начальный адрес области О П , с которой производится обмен,
и длину передаваемого массива данных. В дальнейшем по сигналу запроса
прямого доступа контроллер фактически выполняет все те действия, кото­
рые обеспечивал микропроцессор при программно управляемой передаче.
Последовательность действий К П Д П при запросе на п р я м о й доступ
к памяти со стороны внешнего устройства следующая:
1. П р и н я т ь запрос на П Д П (сигнал D R Q ) от ВУ.
2. Сформировать запрос к М П на захват ш и н (сигнал H R Q ) .
3. П р и н я т ь сигнал от М П ( H L D A ) , подтверждающий факт перевода
микропроцессором своих ш и н в третье состояние.
4. Сформировать сигнал, с о о б щ а ю щ и й устройству ввода- вывода о
начале в ы п о л н е н и я циклов прямого доступа к памяти ( D A C K ) .
5. Сформировать на ш и н е адреса компьютера адрес я ч е й к и памяти,
предназначенной для обмена.
6. Выработать с и г н а л ы , о б е с п е ч и в а ю щ и е у п р а в л е н и е о б м е н о м
(IOR, M W для передачи данных из ВУ в оперативную память и
IOW, M R для передачи данных из оперативной памяти в ВУ).
7. Уменьшить значение в счетчике данных на длину переданных
данных.
8. Проверить условие окончания сеанса прямого доступа (обнуление
счетчика данных или снятие сигнала запроса на П Д П ) . Если усло­
вие окончания не выполнено, то изменить адрес в регистре теку­
щего адреса на длину переданных данных и повторить шаги 5—8.

115
Курс Архитектура микропроцессоров

П р я м о й доступ к памяти позволяет осуществлять обмен д а н н ы м и


между в н е ш н и м устройством и оперативной памятью параллельно с в ы ­
полнением процессором программы.
Структура К П Д П представлена на рис. 8.5.

Рис. 8.5. Структура контроллера прямого доступа к памяти

Контроллер состоит из 4 идентичных каналов, позволяющих под­


ключить к системе до четырех устройств, работающих в режиме П Д П .
В состав каждого канала входят следующие регистры:
• M R (Mode Register) — регистр режима. Определяет следующие па¬
раметры передачи:
• порядок и з м е н е н и я (увеличения или уменьшения) адреса О П
при передаче;
• возможность автоинициализации;
• режим обслуживания:
• одиночная передача (контроллер возвращает магистраль
процессору после каждого цикла П Д П ) ;
• блочная передача (контроллер владеет магистралью в тече¬
ние передачи всего массива);
• по требованию (окончание передачи определяется снятием
сигнала D R Q или подачей сигнала I E O P на в н е ш н и й вход
КПДП);
• каскадирование;

116
Лекция 8 Структура микропроцессорной системы

• C A R (Current Address Register) — регистр текущего адреса;


• B A R (Base Address Register) — базовый регистр адреса;
• C W R (Current Word Register) — текущий счетчик данных;
• W C R (Word Control Register) — базовый счетчик данных.
Значения в регистрах B A R и W C R устанавливаются п р и инициализа­
ц и и и в ходе циклов П Д П не меняются. В регистры C A R и C W R в начале
в ы п о л н е н и я П Д П заносятся значения из регистров B A R и W C R соответ­
ственно. П р и в ы п о л н е н и и П Д П эти регистры изменяются.
Управляющие регистры, общие для всего контроллера:
• C R (Command Register) — регистр команд — определяет:
• режим память-память или обычный. В режиме память-память
осуществляется обмен по схеме П Д П между двумя областями
О П (только для каналов 0 и 1) с использованием буферного ре¬
гистра T R (Temporary Register);
• запрет/разрешение П Д П ;
• порядок и з м е н е н и я приоритетов каналов:
• ф и к с и р о в а н н ы й приоритет;
• циклическое изменение приоритета после обработки за¬
проса на П Д П по одному из каналов;
• явное указание наиболее приоритетного канала;
• уровень сигналов D R Q и D A C K (настройка на активный уро¬
вень сигналов под особенности работы внешних устройств);
• S R (Status Register) — регистр условий: используется для фикса¬
ц и и признаков обмена по каждому из каналов и программных за¬
просов на П Д П .
Во избежание ложных срабатываний внешних устройств, не исполь¬
зующих в д а н н ы й момент режим прямого доступа, контроллер П Д П во
время режима П Д П вырабатывает сигнал A E N , который блокирует рабо¬
ту остальных внешних устройств:

AEN — i ^ ~ °й
шин
УР п авляет
контроллер ПДП;
\ 0 — шиной управляет МП или другой задатчик.

Для увеличения количества внешних устройств, которые могут быть


подключены к микропроцессору в режиме П Д П , используется каскадное
включение К П Д П ( рис. 8.6).
П р и этом ведомый К П Д П подключается к одному из каналов ведуще­
го контроллера по схеме подключения внешнего устройства, а непосредст­
венно с микропроцессором связывается только ведущий контроллер. В
стандартной конфигурации персональной Э В М применяются два К П Д П
(ведущий и ведомый), которые позволяют подключить до 7 внешних уст­
ройств, причем 2 канала закреплены за накопителями на жестком и гибком

117
Курс Архитектура микропроцессоров

Рис. 8.6. Каскадное включение контроллеров прямого доступа к памяти

дисках. В максимальной конфигурации при использовании ведущего и 4


ведомых К П Д П , подключенных к каждому из каналов ведущего, к М П
можно подключить до 16 внешних устройств, работающих в режиме П Д П .

Назначение и функции чипсета


в микропроцессорной системе
Чипсет (chipset) — это набор Б И С (обычно 1—3 микросхемы), функ­
ционально эквивалентный микросхемам, входящим в стандартную кон¬
фигурацию микропроцессорной системы.
К а к правило, чипсет интегрирует в себе ф у н к ц и и следующих уст¬
ройств:
• контроллера оперативной памяти;
• контроллеров к э ш - п а м я т и 2-го и / и л и 3-го уровня;
• контроллеров П Д П ;
• контроллеров приоритетных прерываний;
• контроллера клавиатуры;
• контроллера м ы ш и P S / 2 ;
• контроллера инфракрасного порта;
• таймера реального времени;
• моста ш и н ы P C I ;
• моста ш и н ы ISA и др.
Обычно в составе чипсета выделяют:
• северный мост (North Bridge) — системный контроллер, в кото­
р ы й входит контроллер системной ш и н ы , ш и н A G P и P C I , О З У и
к э ш - п а м я т и (для наборов под о б ы ч н ы й Pentium);
• ю ж н ы й мост (South Bridge) — п е р и ф е р и й н ы й контроллер, вклю¬
ч а ю щ и й контроллеры E I D E , клавиатуры, моста P C I - t o - P C I , по¬
следовательных/параллельных портов, ш и н ы U S B и других по¬
добных устройств.

118
Лекция 8 Структура микропроцессорной системы

Выбор чипсета во многом определяет конфигурацию М П С и ее п р о ­


изводительность. Если М П м о ж н о заменить, а емкость О З У увеличить, то
замена чипсета однозначно связана с заменой системной платы, а огра­
н и ч е н и я чипсета также однозначно ограничивают возможности замены
других элементов М П С : М П , ОЗУ, внешних устройств.
Чипсет накладывает ограничения на следующие функциональные
характеристики системы в целом: тип памяти, тип к э ш - п а м я т и второго
и / и л и третьего уровня, тип М П , максимальная частота системной ш и н ы ,
тип ш и н ы P C I (32- или 64-разрядная); поддержка многопроцессорной
конфигурации и некоторые другие характеристики.
Практика показывает, что разница в производительности системных
плат разных ф и р м , построенных с п р и м е н е н и е м одного и того же чипсе¬
та, составляет от силы несколько процентов, между тем к а к тот же пара­
метр для различных чипсетов может отличаться на порядок.
Рассмотрим использование чипсета на примере организации м и к р о ­
процессорной системы на базе М П Pentium III на ядре Katmai (рис. 8.7).

Рис. 8.7. Структура микропроцессорной системы с использованием


чипсета

Частота ш и н ы P C I составляет 33 МГц и п р и частоте системной ш и ­


н ы и 66, и 100 МГц (используется деление частоты на 2 и 3 соответствен-

119
Курс Архитектура микропроцессоров

но). A G P (Accelerated Graphics Port) — 32-разрядная ш и н а (тактовая ч а с ­


тота всегда 66 МГц), используемая для подключения графического адап­
тера и позволяющая ускорить обмен д а н н ы м и между графическим адап­
тером и основной памятью. В режиме A G P 2х э ф ф е к т и в н а я частота в 133
МГц обеспечивается использованием обоих фронтов импульсов частоты
66 МГц. Ш и н а I S A работает на частоте 8 МГц. За ее ф у н к ц и о н и р о в а н и е
отвечает мост P C I / I S A , я в л я ю щ и й с я о б ы ч н ы м PCI-устройством (просто
встроенным в чипсет).
Системная ш и н а может работать на разной частоте, н о все эти вари­
анты совместимы по разводке и электрически, что создает почву для «раз­
гона».
Таким образом, п р и смене частоты системной ш и н ы , например, с 66
на 100 МГц замене подлежат л и ш ь три устройства: процессор, чипсет и
память. Н и к а к и е другие устройства н е заметят подмены ш и н ы — н и A G P -
видеоадаптеры, н и любой и з PCI-контроллеров, н и старые ISA-карты. В
этом и заключается п р и н ц и п и а л ь н о е отличие ш и н ы 100 МГц от ш и н ы 66
МГц, разогнанной до 75/83 МГц. В первом случае н о в ы й чипсет обеспе¬
чивает работу P C I на частоте 33 (100/3) МГц, во втором старый чипсет и
не подозревает о «разгоне» и продолжает делить частоту системной ш и н ы
на 2, а в итоге частота P C I - ш и н ы равна 37,5 или 41,5 МГц, что может п р и ­
вести к неправильной работе некоторых PCI-устройств.

Краткие итоги. В лекции рассмотрены вопросы организации м и к р о ­


процессорных систем, взаимодействия входящих в нее устройств. П о ­
дробно изложен режим прямого доступа в память и используемый, пред¬
ставлена структура контроллера П Д П . Описаны ф у н к ц и и чипсета в мик¬
ропроцессорной системе.

120
Лекция 9 Конвейерная организация работы микропроцессора

Лекция 9. Конвейерная организация работы


микропроцессора

Цель лекции: изучение п р и н ц и п о в конвейерной организации работы


микропроцессоров, в л и я н и я к о н ф л и к т о в на работу конвейера и способов
уменьшения этого влияния.

Выполнение каждой команды складывается из ряда последователь­


ных этапов, суть которых н е меняется от команды к команде. С целью
увеличения быстродействия процессора и максимального использования
всех его возможностей в современных микропроцессорах используется
конвейерный принцип обработки информации. Этот п р и н ц и п подразумева¬
ет, что в каждый момент времени процессор работает над различными
стадиями выполнения нескольких команд, причем на в ы п о л н е н и е каж­
дой стадии выделяются отдельные аппаратные ресурсы. П о очередному
тактовому импульсу каждая команда в конвейере продвигается на следу­
ющую стадию обработки, выполненная команда покидает конвейер, а
новая поступает в него.
В различных процессорах количество и суть этапов различаются.
Рассмотрим п р и н ц и п ы конвейерной обработки и н ф о р м а ц и и на примере
пятиступенчатого конвейера, в котором выполнение команды складыва­
ется из следующих этапов:
1) IF (Instruction Fetch) — считывание команды в процессор;
2) ID (Instruction Decoding) — декодирование команды;
3) OR (Operand Reading) — считывание операндов;
4) EX (Executing) — в ы п о л н е н и е команды;
5) WB (Write Back) — запись результата.
Выполнение команд в таком конвейере представлено в табл. 9.1.

Таблица 9.1. П о р я д о к в ы п о л н е н и я команд в 5—ступенчатом


конвейере

Команда Такт
1 2 3 4 5 6 7 8 9
i IF ID OR EX WB
i+1 IF ID OR EX WB
i+2 IF ID OR EX WB
i+3 IF ID OR EX WB
i+4 IF ID OR EX WB

121
Курс Архитектура микропроцессоров

Оценка производительности идеального конвейера

Поскольку в каждом такте могут выполняться различные стадии об­


работки команд, длительность такта выбирается исходя из максимально­
го времени в ы п о л н е н и я всех стадий. К р о м е того, следует учитывать, что
для передачи команды с одной стадии обработки на другую требуется д о ­
полнительное время (At), связанное с записью промежуточных результа¬
тов обработки в буферные регистры.
Пусть для в ы п о л н е н и я отдельных стадий обработки требуются сле¬
дующие затраты времени (в некоторых условных единицах):

TIF = 20, TID = 15, TOR = 20, T EX = 25, TWB = 20.

Тогда, предполагая, что дополнительные расходы времени составля­


ют At = 5 единиц, получим время такта:

T = max {TIF, TID, TOR, T ,EX TWB} + At = 30.

О ц е н и м время в ы п о л н е н и я одной команды и некоторой группы ко¬


манд при последовательной и конвейерной обработке.
П р и последовательной обработке время в ы п о л н е н и я N команд со¬
ставит:

^ о с л = Nх (TIF+ TID + TOR + TEX + TWB) = 100N.

Анализ табл. 9.1 показывает, что при конвейерной обработке после


того, как получен результат в ы п о л н е н и я первой команды, результат оче­
редной команды появляется в следующем такте работы процессора. Сле¬
довательно,

^онв = 5 T + (N—1) х T.

П р и м е р ы длительности в ы п о л н е н и я некоторого количества команд


при последовательной и конвейерной обработке приведены в табл. 9.2.
Очевидно, что при достаточно длительной работе конвейера его бы¬
стродействие будет существенно превышать быстродействие, достигае¬
мое при последовательной обработке команд. Это увеличение будет тем
больше, чем меньше длительность такта конвейера и чем больше количе¬
ство выполненных за рассматриваемый период команд. С о к р а щ е н и е дли¬
тельности такта может достигаться разбиением выполнения команды на
большое число этапов, каждый из которых включает в себя относительно
простые операции и поэтому будет выполняться за более короткий п р о -

122
Лекция 9 Конвейерная организация работы микропроцессора

Таблица 9.2. Оценка эффективности конвейерной обработки

Количество Время
команд при последовательном при конвейерном
выполнении выполнении
1 100 150
2 200 240
10 1000 420
100 10000 3120

межуток времени. Так, если в микропроцессоре Pentium длина конвейера


составляла 5 ступеней (при максимальной тактовой частоте 200 МГц), то
в процессорах Pentium 4 на ядре Northwood длина конвейера составляла
20 ступеней, а на ядре Prescott она увеличена до 31 ступени п р и макси¬
мальной тактовой частоте 3,8 ГГц.
Значительное преимущество конвейерной обработки перед после­
довательной имеет место в идеальном конвейере, в котором отсутствуют
к о н ф л и к т ы и все команды выполняются друг за другом в установившем­
ся режиме, то есть без перезагрузки конвейера. Наличие к о н ф л и к т о в в
конвейере и его перезагрузки снижают реальную производительность
конвейера п о сравнению с идеальным случаем.

К о н ф л и к т ы в к о н в е й е р е и с п о с о б ы м и н и м и з а ц и и их
в л и я н и я на п р о и з в о д и т е л ь н о с т ь п р о ц е с с о р а
Конфликты — это такие ситуации в конвейерной обработке, которые
препятствуют в ы п о л н е н и ю очередной команды в предназначенном для
нее такте.
К о н ф л и к т ы делятся на три группы:
• структурные,
• по управлению,
• по д а н н ы м .

Структурные конфликты возникают в том случае, когда аппаратные


средства процессора н е могут поддерживать все возможные к о м б и н а ц и и
команд в режиме одновременного выполнения с совмещением.

Причины структурных конфликтов:


1. Н е полностью конвейерная структура процессора, при которой
некоторые ступени отдельных команд выполняются более одного такта.
Пусть этап в ы п о л н е н и я команды i+1 занимает 3 такта. Тогда диа¬
грамма работы конвейера будет иметь вид, представленный в табл. 9.3.

123
Курс Архитектура микропроцессоров

Таблица 9.3. Конвейерная обработка п р и задержке команды i+1 на


этапе E X

Команда Такт
1 2 3 4 5 6 7 8 9
i IF ID OR EX WB
i+1 IF ID OR EX EX EX WB
i+2 IF ID OR О О EX WB
i+3 IF ID OR О О EX
i+4 IF ID OR О О

В этом случае в работе конвейера возникают так называемые «пузы­


ри» (pipeline bubble) в обработке команд i+2 и следующих за ней начиная
с такта 6, которые снижают производительность процессора.
Если какой-то блок конвейера вносит задержку, то тормозится рабо­
та всего конвейера. Образуемый при этом «пузырь» должен пройти от м е ­
ста своего возникновения до самого конца конвейера (если, например,
возникла задержка на ступени считывания команды, то в следующем так­
те блок декодирования от него ничего н е получит, а через 3 такта соответ­
ственно блок сохранения результатов ничего н е получит от блока выпол­
н е н и я ) . Таким образом, скорость конвейера определяется скоростью са¬
мой медленной его ступени.
Этой ситуации м о ж н о было бы избежать двумя способами. Первый
предполагает увеличение времени такта до такой величины, которая поз­
волила бы все этапы любой команды выполнять за один такт. Однако п р и
этом существенно снижается э ф ф е к т конвейерной обработки, так к а к все
этапы всех команд будут выполняться значительно дольше, в то время к а к
обычно нескольких тактов требует в ы п о л н е н и е л и ш ь отдельных этапов
очень небольшого количества команд. Второй способ предполагает ис¬
пользование таких аппаратных р е ш е н и й , которые позволили бы значи¬
тельно снизить затраты времени на в ы п о л н е н и е действия, приводящего к
появлению «пузырей» (например, использовать матричные схемы у м н о ­
ж е н и я ) . Н о это приведет к усложнению схемы процессора и сокращению
на кристалле места для реализации на этой Б И С других, функционально
более важных узлов. Так к а к представленная в табл. 9.3 ситуация возника­
ет п р и реализации команд, относительно редко встречающихся в про¬
грамме, то обычно разработчики процессоров ищут компромисс между
увеличением длительности такта и усложнением того или иного устройст¬
ва процессора.
2. Недостаточное дублирование некоторых ресурсов.
Одним и з типичных примеров таких к о н ф л и к т о в служит к о н ф л и к т
из-за доступа к з а п о м и н а ю щ и м устройствам. И з табл. 9.1 видно, что в слу-

124
Лекция 9 Конвейерная организация работы микропроцессора

чае, когда операнды и команды находятся в одном з а п о м и н а ю щ е м уст­


ройстве начиная с такта 3, работу конвейера придется постоянно п р и о с ­
танавливать, поскольку различные команды в одном и том ж е такте обра­
щаются к памяти на считывание команды, выборку операнда, запись р е ­
зультата.
Борьба с к о н ф л и к т а м и такого рода проводится путем увеличения
количества однотипных функциональных устройств, которые могут од­
новременно выполнять одни и те ж е или схожие ф у н к ц и и . В з а п о м и н а ю ­
щих устройствах в современных микропроцессорах с этой целью разделя­
ют к э ш - п а м я т ь для хранения команд и к э ш - п а м я т ь данных, а также и с ­
пользуют многопортовую схему доступа к регистровой п а м я т и , п р и
которой к регистрам м о ж н о одновременно обращаться п о нескольким ка­
налам для записи и считывания и н ф о р м а ц и и . Н а п р и м е р , в м и к р о п р о ц е с ­
соре Itanium к блоку регистров общего назначения допускается одновре­
м е н н о е обращение на выполнение 8 операций чтения и 6 операций запи­
си. К о н ф л и к т ы из-за исполнительных устройств обычно сглаживаются
введением в состав микропроцессора дополнительных блоков. Так, в м и ­
кропроцессоре Pentium 4 для обработки целочисленных данных предус­
мотрено 4 АЛУ. П р и этом появляется возможность параллельной обра­
ботки и н ф о р м а ц и и в нескольких конвейерах. Процессоры, и м е ю щ и е в
своем составе более одного конвейера, называются суперскалярными.
Недостатком суперскалярных микропроцессоров является необхо­
димость синхронного продвижения команд в каждом и з конвейеров. В
табл. 9.4 представлена последовательность в ы п о л н е н и я команд в м и к р о ­
процессоре, и м е ю щ е м два конвейера, п р и условии, что команде К 1 требу­
ется 3 такта на этапе E X .

Таблица 9.4. Обработка команд в микропроцессоре с двумя конвейе¬


рами

Этап Такт
1 2 3 4 5 6 7
IF К1 К2 К3 К4 К5 К6 К7 К8 К7 К9 К7 К10 К11 К12
ID К1 К2 К3 К4 К5 К6 К5 К8 К5 К9 К7 К10
OR К1 К2 К3 К4 К3 К6 К3 К8 К5 К9
EX К 1 К2 К1 К4 К 1 К6 К3 К8
WB К2 К4 К 1 К6

П р и этом команды будут завершаться в порядке, отличающемся от


того, который предусмотрен программой: К 2 - К 4 - К 1 - К 6 - . . .
Следовательно, для обеспечения правильной работы суперскаляр¬
ного микропроцессора п р и возникновении затора в одном и з конвейеров

125
Курс Архитектура микропроцессоров

д о л ж н ы приостанавливать свою работу и другие. В противном случае мо¬


жет нарушиться исходный порядок завершения команд программы. Н о
такие приостановки существенно снижают быстродействие процессора.
Разрешение этой ситуации состоит в том, чтобы дать возможность
выполняться командам в одном конвейере вне зависимости от ситуации в
других конвейерах, а аппаратные средства микропроцессора д о л ж н ы га¬
рантировать, что результаты выполненных команд будут записаны в при¬
е м н и к в том порядке, в котором команды записаны в программе. Это
обеспечивается путем использования так называемого принципа неупоря­
доченного выполнения команд. Суть его заключается в следующем. Б л о к
выборки и декодирования выбирает команды из памяти и заносит их в бу¬
фер команд. П о мере готовности операндов и исполнительного блока со¬
ответствующего типа команды извлекаются из буфера для обработки. П о ­
рядок их и с п о л н е н и я может отличаться от предписанного программой.
Результаты этапа выполнения команды сохраняются в специальном буфе­
ре восстановления последовательности команд. Запись результата очеред­
ной команды из этого буфера в п р и е м н и к результата проводится л и ш ь по¬
сле того, как в ы п о л н е н ы все предшествующие команды и записаны их ре¬
зультаты. Преимущества такого подхода очевидны: команды
максимально используют возможности всех конвейеров, присутствую¬
щих в микроархитектуре микропроцессора, что обеспечивает его макси¬
мальную производительность.

Конфликты по управлению возникают при конвейеризации команд


переходов и других команд, и з м е н я ю щ и х значение счетчика команд.
Суть к о н ф л и к т о в этой группы наиболее удобно проиллюстрировать
на примере команд условного перехода. Пусть в программе, представлен¬
ной в табл. 9.1, команда i+1 является командой условного перехода, фор¬
мирующей адрес следующей к о м а н д ы в зависимости от результата выпол¬
н е н и я команды i . Команда i завершит свое выполнение в такте 5. В то же
время команда условного перехода уже в такте 3 должна прочитать необ¬
ходимые ей п р и з н а к и , чтобы правильно сформировать адрес следующей
команды. Если конвейер имеет большую глубину (например, 20 ступе¬
ней), то промежуток времени между формированием признака результа¬
та и тактом, где он анализируется, может быть еще больше.
Простейший способ разрешения этой ситуации — использование так
называемого метода выжидания. О н заключается в замораживании опе­
р а ц и й в конвейере путем блокировки в ы п о л н е н и я любой команды, сле¬
дующей за командой условного перехода, до тех пор, пока не станет изве¬
стным направление перехода. Привлекательность такого решения заклю­
чается в его простоте. Главный недостаток — р е з к о е у м е н ь ш е н и е
преимуществ конвейерной обработки. В инженерных задачах примерно

126
Лекция 9 Конвейерная организация работы микропроцессора

каждая шестая команда является командой условного перехода, поэтому


приостановки конвейера при в ы п о л н е н и и команд переходов до опреде­
л е н и я истинного направления перехода существенно скажутся на п р о и з ­
водительности процессора.
М о ж н о несколько улучшить эту ситуацию, использую схему «задер­
ж а н н ы х переходов». П р и этом на стадии к о м п и л я ц и и компилятор таким
образом структурирует получаемый объектный код, чтобы сделать коман¬
ды, следующие за командой перехода, действительными и полезными
(рис. 9.1).

а) исходная программа б) преобразованная программа

Рис. 9.1. Организация задержанного перехода

Слот задержки заполняется независимой командой, находящейся


перед командой условного перехода. Эта команда выполняется за то вре­
мя, пока микропроцессор формирует истинное условие, по которому
должно быть определено направление в ы п о л н е н и я программы. Одной из
основных трудностей в этом подходе является определение точного вре­
м е н и в ы п о л н е н и я к о м а н д ы , в н о с и м о й в слот задержки. Аппаратура
должна гарантировать реальное выполнение этих команд перед выполне¬
н и е м собственно перехода.

Более э ф ф е к т и в н ы м и для с н и ж е н и я потерь от к о н ф л и к т о в по управ­


л е н и ю являются методы предсказания переходов. О н и призваны м а к с и ­
мально ускорить определение адреса команды, выполняемой после ко¬
манды перехода.
Так к а к преимущества конвейерной обработки проявляются при
большом числе последовательно в ы п о л н е н н ы х команд, перезагрузка
конвейера приводит к значительным потерям производительности. П о ­
этому вопросам эффективного предсказания направления ветвления раз­
работчики всех микропроцессоров уделяют большое внимание.
Среди основных достоинств практически каждого нового микро¬
процессора производители анонсируют «улучшенный блок предсказания
переходов». Суть конкретных механизмов, обеспечивающих эти улучше­
н и я , к а к правило, не детализируется. Однако здесь все-таки м о ж н о выде¬
лить несколько основных подходов.

127
Курс Архитектура микропроцессоров

Методы предсказания переходов делятся на статические и д и н а м и ­


ческие. П р и использовании статических методов до выполнения п р о ­
граммы для каждой команды условного перехода указывается направле­
н и е наиболее вероятного ветвления. Это указание делается программой-
компилятором п о заложенным в ней алгоритмам. П о д о б н ы й подход
реализован, например, в H P PA-8x00. Также это может делать и сам п р о ­
граммист по опыту в ы п о л н е н и я аналогичных программ либо по результа­
там тестового в ы п о л н е н и я программы. Н а п р и м е р , в системе команд м и ­
кропроцессора Itanium для этого предназначена специальная команда.
Суть данного метода заключается в том, что п р и в ы п о л н е н и и к о м а н ­
д ы условного перехода специальный блок микропроцессора определяет
наиболее вероятное направление перехода, н е дожидаясь ф о р м и р о в а н и я
признаков, на основании анализа которых этот переход реализуется.
Процессор начинает выбирать из памяти и выполнять команды по пред­
сказанной ветви программы (так называемое исполнение по предположе­
нию, или «спекулятивное» исполнение). Однако так к а к направление пе¬
рехода может быть предсказано неверно, получаемые результаты с целью
обеспечения возможности их аннулирования н е записываются в память
или регистры (то есть для н и х н е выполняется этап WB), а накапливают­
ся в специальном буфере результатов.
Если после ф о р м и р о в а н и я анализируемых признаков оказалось, что
направление перехода выбрано верно, все полученные результаты пере¬
писываются и з буфера по месту назначения и в ы п о л н е н и е программы
продолжается в обычном порядке. Если направление перехода предсказа­
но неверно, все инструкции, выбранные после перехода, помечаются, с о ­
гласно интеловской терминологии, к а к поддельные (bogus instructions).
П р и этом буфер результатов и конвейер, содержащий команды, которые
следуют за командой условного перехода и находятся на разных этапах
обработки, — очищаются. Аннулируются результаты всех уже в ы п о л н е н ­
ных этапов этих команд. Конвейер начинает загружаться с первой коман¬
д ы другой ветви программы.
Следует отметить, что к о н ф л и к т ы п о управлению н е исчерпываются
только проблемами, связанными с командами условных переходов. О н и
возникают п р и выполнении всех команд, м е н я ю щ и х значение счетчика
команд. Это хорошо видно из табл. 9.1. Если команда iявляется командой
такого типа (например, команда безусловного перехода), то адрес перехо¬
да будет вычислен ею в такте 5, в то время к а к уже в такте 2 необходимо
выбирать в микропроцессор следующую команду п о этому адресу.
Методы динамического предсказания реализуются п р и в ы п о л н е н и и
программы в микропроцессоре. О н и осуществляют предсказание направ­
л е н и я переходов на основании результатов предыдущих выполнений дан¬
ной команды.

128
Лекция 9 Конвейерная организация работы микропроцессора

П р и использовании этих методов для команд условных переходов


анализируется предыстория переходов — результаты нескольких предыду­
щих команд ветвления по данному адресу. В этом случае возможно опре­
деление чаще всего реализуемого направления ветвления, а также в ы я в ­
ление чередующихся переходов.
Для команд безусловных переходов однажды вычисленный целевой
адрес сохраняется в специальной памяти B T B (Branch Target Buffer), отку­
да он извлекается сразу же п р и декодировании д а н н о й команды.
Аналогичный подход используется для команд вызова — возврата из
процедуры (анализ связок C A L L — R E T U R N ) .

Проблемы реализации точного прерывания


в конвейере

Обработка прерываний при конвейерной организации работы М П


оказывается достаточно сложной из-за того, что совмещенное выполне­
ние команд затрудняет определение возможности безопасного изменения
состояния м а ш и н ы произвольной командой. В конвейерной системе
команда выполняется по этапам. В ходе в ы п о л н е н и я отдельных этапов
команда может изменить состояние процессора. Тем временем возник¬
шее прерывание может вынудить м а ш и н у прервать обработку еще не за¬
вершенных команд.
П р и переходе на программу — обработчик прерывания необходимо
надежно очистить конвейер и сохранить состояние процессора таким,
чтобы повторное выполнение команды после возврата из прерывания
осуществлялось корректно.

Конфликты по данным возникают в случаях, когда выполнение од­


н о й команды зависит от результата в ы п о л н е н и я предыдущей команды.
П р и обсуждении этих к о н ф л и к т о в будем предполагать, что команда
i предшествует команде j.

\ i
1

IF
2

ID RO
3 4

EX
5

WB
(
i+l IF ID (RO: EX
/
чтение неверного результата

Рис. 9.2. К о н ф л и к т по д а н н ы м типа R A W

129
Курс Архитектура микропроцессоров

Существует несколько типов к о н ф л и к т о в по данным:


1. К о н ф л и к т ы типа R A W (Read After Write — чтение после записи):
команда j пытается прочитать операнд прежде, чем команда i запишет на
это место свой результат. П р и этом команда j может получить некоррект¬
ное старое значение операнда.
Проиллюстрируем этот тип к о н ф л и к т а на примере в ы п о л н е н и я к о ­
манд, представленных на рис. 9.2.
Пусть выполняемые команды имеют следующий вид:

i) ADD R1,R0; R1=R1+R0


i+1=j) SUB R2,R1; R2=R2-R1

Команда i изменит состояние регистра R1 в такте 5. Н о команда i+1


должна прочитать значение операнда R1 в такте 4. Если не п р и н я т ы спе¬
циальные меры, то из регистра R1 будет прочитано значение, которое бы¬
ло в н е м до в ы п о л н е н и я команды i.
Конфликты типа RAW обусловлены именно конвейерной организаци¬
ей обработки команд. О н и называются истинными взаимозависимостями.
Уменьшение в л и я н и я к о н ф л и к т а типа RAW обеспечивается мето­
дом, который называется пересылкой и л и продвижением данных (data
forwarding), обходом (data bypassing), иногда закороткой (short-circuiting).
В этом случае результаты, полученные на выходах исполнительных уст¬
ройств, п о м и м о входов п р и е м н и к а результата передаются также на входы
всех исполнительных устройств микропроцессора (рис. 9.3).

Очередь команд

АЛУ 1 АЛУ 2

Блок записи результата

Рис. 9.3. Уменьшение в л и я н и я к о н ф л и к т а типа R A W методом п р о ­


движения данных

Если устройство управления обнаруживает, что полученный к а к о й -


либо командой результат требуется одной из последующих команд в каче¬
стве операнда, то он сразу же, параллельно с записью в п р и е м н и к резуль¬
тата, передается на вход исполнительного устройства для использования
следующей командой.

130
Лекция 9 Конвейерная организация работы микропроцессора

Главной причиной двух других типов к о н ф л и к т о в по д а н н ы м являет­


ся возможность неупорядоченного в ы п о л н е н и я команд в современных
микропроцессорах, то есть выполнения команд н е в том порядке, в кото¬
р о м о н и записаны в программе (ложные взаимозависимости).
2. К о н ф л и к т ы типа W A R (Write After Read — запись после чтения):
команда j пытается записать результат в п р и е м н и к , прежде ч е м о н счита­
ется оттуда командой i. П р и этом команда i может получить некорректное
новое значение операнда:

i) ADD R1,R0; R1=R1+R0


i+1 = j) SUB R0,R2; R0=R0-R2

Этот к о н ф л и к т возникнет в случае, если команда j вследствие неупо­


рядоченного выполнения завершится раньше, чем команда i прочитает
старое содержимое регистра R0.
3. К о н ф л и к т ы типа WAW (Write After Write — запись после записи):
команда j пытается записать результат в п р и е м н и к , прежде ч е м в этот ж е
п р и е м н и к будет записан результат выполнения команды i , то есть запись
заканчивается в неверном порядке, оставляя в п р и е м н и к е результата зна¬
чение, записанное командой i:

i) ADD R1,R0; R1=R1+R0

j) SUB R1,R2; R1=R1-R2

Устранение к о н ф л и к т о в п о д а н н ы м типов WAR и WAW достигается


путем отказа от неупорядоченного исполнения команд, н о ч а щ е всего пу­
тем введения буфера восстановления последовательности команд.
Часть к о н ф л и к т о в по д а н н ы м может быть снята специальной мето­
д и к о й планирования компилятора. В простейшем случае компилятор
просто планирует распределение команд в базовом блоке. Базовый блок
представляет собой л и н е й н ы й участок последовательности программно¬
го кода с одним входом и одним выходом, в котором отсутствуют внут¬
р е н н и е команды перехода. Поскольку в таком блоке каждая команда бу­
дет выполняться, если выполняется первая из них, — м о ж н о построить
граф зависимостей этих команд и упорядочить их так, чтобы м и н и м и з и ­
ровать приостановки конвейера. Эта техника называется планированием
загрузки конвейера (pipeline scheduling) и л и планированием потока к о ­
манд (instruction scheduling).
Н а п р и м е р , для оператора А = B + С компилятор, скорее всего, сге¬
нерирует следующую последовательность команд:
1) Rb = B .

131
Курс Архитектура микропроцессоров

2) Rc = C .
3) Ra = Rb + Rc.
4) A = Ra.
Очевидно, в ы п о л н е н и е к о м а н д ы (3) должно быть приостановлено
до тех пор, пока н е станет доступным поступающий и з памяти операнд C .
Для данного простейшего примера компилятор н и к а к н е может
улучшить ситуацию, однако в ряде более общих случаев о н может реорга¬
низовать последовательность команд так, чтобы избежать приостановок
конвейера.
Пусть, например, имеется последовательность операторов:
А = B + С;
D = E — F.
В этом случае компилятор может сгенерировать следующую после¬
довательность команд, выполнение которой н е приведет к приостановке
конвейера:
1) Rb = B .
2) Rc = C .
3) Re = E .
4) Ra = Rb + Rc.
5) R f = F.
6) A = Ra.
7) R d = Re — Rf.
8) D = R d .
Заметим, что использование разных регистров для первого и второ­
го компилируемого оператора было достаточно важным для реализации
такого правильного планирования. В частности, если переменная e была
бы загружена в тот ж е самый регистр, что b или c, такое планирование н е
было бы корректным. В общем случае планирование конвейера может
потребовать увеличенного количества регистров.
Для простых конвейеров стратегия планирования на основе базовых
блоков вполне удовлетворительна, однако когда конвейеризация стано­
вится более интенсивной и действительные задержки конвейера растут,
требуются более сложные алгоритмы планирования.
Зачастую зависимость п о д а н н ы м н е является необходимой — просто
так уж повелось у программистов: ч е м меньше переменных (и регистров в
программах на ассемблере) использует программа — тем лучше. В резуль¬
тате зачастую получается, что вся программа использует один-два регист¬
ра с зависимостью по д а н н ы м чуть л и н е в каждой паре команд.
Устранение к о н ф л и к т о в , с в я з а н н ы х с л о ж н ы м и в з а и м о з а в и с и м о ­
с т я м и д а н н ы х , часто в о з м о ж н о путем переименования регистров (regis­
ter renaming). Суть этого м е х а н и з м а заключается в следующем. Про¬
цессоры, использующие переименование регистров, фактически име-

132
Лекция 9 Конвейерная организация работы микропроцессора

ют б о л ь ш е в о с ь м и р е г и с т р о в , о п р е д е л я е м ы х архитектурой х86 и л и I A -
32. П р и э т о м если к а к о й - л и б о к о м а н д е требуется и с п о л ь з о в а т ь ре¬
гистр, п р о ц е с с о р д и н а м и ч е с к и ставит в соответствие этому логическо¬
му (архитектурному) регистру о д и н из более м н о г о ч и с л е н н ы х физиче¬
с к и х регистров. Если другая к о м а н д а пытается обратиться к тому ж е
л о г и ч е с к о м у регистру, п р о ц е с с о р для п р е д о т в р а щ е н и я к о н ф л и к т а мо¬
жет поставить ему в соответствие другой ф и з и ч е с к и й регистр. Такие
п е р е и м е н о в а н и я действуют, п о к а к о м а н д ы п р о д в и г а ю т с я по конвейе¬
рам.
Таким образом, каждый раз, когда команда прямо или косвенно п и ­
шет в регистр, ей выделяется н о в ы й ф и з и ч е с к и й регистр. В М П имеется
таблица отображения логических (видимых программисту) регистров на
физические (видимые только процессору). Когда команде выделяется н о ­
вый ф и з и ч е с к и й регистр, таблица обновляется: логический регистр, на
который ссылалась команда, ставится в соответствие выделенному физи¬
ческому регистру (табл. 9.5).

Таблица 9.5. Механизм переименования регистров

Команда Действие Рабочий регистр


i П и ш е т в R0 С этого момента регистру R0 соответствует
выделенный для команды регистр P H Y 0
i+1 Читает из R0 Читает из P H Y 0
i+2 П и ш е т в R0 С этого момента регистру R0 соответствует
выделенный для команды регистр P H Y 1
i+3 Читает из R0 Читает из P H Y 1

П р и определении операндов команды имена логических регистров


преобразуются в имена физических, после чего значения последних зано­
сятся в поля операндов микрокоманд. М и к р о к о м а н д ы работают только с
ф и з и ч е с к и м и регистрами.
К а к м о ж н о увидеть, после декодирования команды i , которая в каче¬
стве п р и е м н и к а результата использует логический регистр R0, все прочие
команды, использующие в качестве операнда R0, будут обращаться к ф и ­
зическому регистру, выделенному для команды i. П р и этом если какая-то
команда после i будет писать в тот же логический регистр, ей будет выде¬
лен н о в ы й ф и з и ч е с к и й регистр, и все команды после нее будут использо¬
вать уже новый регистр.
И з табл. 9.5 видно, что команды стали независимы. Если команды,
работающие с логическим регистром R0, зависят друг от друга и их нель­
зя выполнять параллельно, то м и к р о к о м а н д ы «разведены» по физичес¬
к и м регистрам P H Y 0 и P H Y 1 и независимы.

133
Курс Архитектура микропроцессоров

Значение физического регистра переписывается в архитектурный,


когда завершается выполнение команды (фиксируется ее результат). В свою
очередь, завершение выполнения команды происходит, когда все предыду­
щ и е команды успешно завершились в заданном программой порядке.
Однако такой подход требует, чтобы микропроцессор п о м и м о про¬
граммно доступных архитектурных регистров содержал блок из гораздо
большего количества невидимых программисту физических регистров,
что и реализовано в большинстве современных микропроцессоров. На¬
пример, в микропроцессоре Itanium файл физических регистров имеет
емкость 128 строк.

К а к отмечалось в ы ш е , наличие к о н ф л и к т о в приводит к значитель¬


ному с н и ж е н и ю производительности микропроцессора. Определенные
т и п ы к о н ф л и к т о в требуют приостановки конвейера. П р и этом останав¬
ливается в ы п о л н е н и е всех команд, находящихся на различных стадиях
обработки (свыше 30 команд в Pentium 4). Другие к о н ф л и к т ы , например,
при неверном предсказанном направлении перехода, ведут к необходи¬
мости полной перезагрузки конвейера. Потери будут тем больше, ч е м бо¬
лее д л и н н ы й конвейер используется в микропроцессоре. Такая ситуация
явилась одной и з п р и ч и н с о к р а щ е н и я числа ступеней в микропроцессо¬
рах последних моделей. Так, в микропроцессоре Itanium конвейер содер¬
жит всего 10 ступеней. П р и этом его тактовая частота составляет 1 МГц.

Краткие итоги. В лекции рассмотрена конвейерная организация ра¬


боты микропроцессора. Дана оценка производительности идеального
конвейера. О п и с а н ы к о н ф л и к т ы в конвейере, с н и ж а ю щ и е производи¬
тельность микропроцессора, и методы уменьшения негативного в л и я н и я
этих конфликтов.

134
Лекция 10 Структура и особенности архитектуры микропроцессора Pentium 4

Л е к ц и я 10. С т р у к т у р а и о с о б е н н о с т и а р х и т е к т у р ы
микропроцессора Pentium 4

Цель лекции: изучение особенностей архитектуры микропроцессора


Intel Pentium 4, а также обработки данных в блоках M M X / S S E .

Микропроцессор Pentium 4 является завершающей моделью 32-раз­


рядных микропроцессоров ф и р м ы Intel с архитектурой IA-32. Основные
особенности этого процессора:
• новая микроархитектура процессора NetBurst (пакетно-сетевая);
• новая системная ш и н а F S B .
Микроархитектура процессора определяет реализацию его внутрен­
ней структуры, п р и н ц и п ы в ы п о л н е н и я поступающих команд, способы
размещения и обработки данных. Микроархитектура NetBurst отличается
от своих предшественников по целому ряду позиций:
1. П р и м е н е н а гарвардская структура с разделением потоков команд
и данных.
2. Используется г и п е р к о н в е й е р н а я т е х н о л о г и я (Hyper-Pipelined
Technology) выполнения команд, при которой число ступеней
конвейера достигает 31 (в Pentium III — 11 ступеней). Таким обра­
зом, одновременно в процессе в ы п о л н е н и я на разных стадиях ре­
ализации может находиться с в ы ш е 30 команд.
3. Используется динамическое в ы п о л н е н и е команд (dynamic execu­
tion), построенное на трех базовых концепциях: предсказание пе¬
реходов (branch prediction), д и н а м и ч е с к и й анализ потока данных
(dynamic data flow analysis) и спекулятивное в ы п о л н е н и е (out-of-
order execution). Аналогичный механизм, н а з в а н н ы й Dynamic
Execution, используется в М П Pentium III, однако в Intel Pentium 4
о н улучшен.
4. Выполнение арифметических и логических операций происходит
с удвоенной тактовой частотой процессора, что позволяет за один
такт получить результаты для двух команд.
5. Кеш-память 2-го уровня емкостью 256 Кбайт размещается непо­
средственно на кристалле процессора, что позволяет сократить вре­
мя выборки по сравнению с Pentuim III, где эта кэш-память распо­
лагается на отдельном кристалле в общем корпусе с процессором.
6. Значительно р а с ш и р е н ы возможности обработки чисел по прин¬
ципу S I M D в новом блоке SSE-2.

Рассмотрим эти особенности более подробно.


Структура М П Pentium 4 представлена на рис. 10.1.

135
Курс Архитектура микропроцессоров

Рис. 10.1. Структура микропроцессора Pentium 4

К о м а н д ы и данные поступают в микропроцессор через блок систем­


ного интерфейса.
Любой процессор архитектуры x86 обязательно оснащен процессор­
н о й ш и н о й . Эта ш и н а служит каналом связи между процессором и всеми
остальными устройствами в компьютере: памятью, видеокартой, жестким
диском и так далее. Так, классическая схема организации внешнего и н ­
терфейса процессора предполагает, что параллельная мультиплексиро­
ванная процессорная ш и н а , которую принято называть F S B (Front Side
Bus), соединяет процессор (иногда два процессора и л и даже больше) и
контроллер, обеспечивающий доступ к оперативной памяти и в н е ш н и м
устройствам. Этот контроллер обычно входит в состав северного моста
набора системной логики ( чипсета).

136
Лекция 10 Структура и особенности архитектуры микропроцессора Pentium 4

Для ускорения обмена с памятью в Pentium 4 используется новая ре­


ализация системной ш и н ы , обеспечивающая обмен с эквивалентной ча­
стотой 400 МГц. Такая скорость достигается путем п р и м е н е н и я нового т и ­
па сверхбыстродействующей двухканальной памяти типа R D R A M и спе¬
циальной микросхемы M C H (Memory Controller Hub), реализующей 4
канала передачи данных. П р и тактовой частоте каждого канала 100 МГц
обеспечивается общая частота обмена, эквивалентная 400 МГц. Ш и н а
включает 64-разрядную двунаправленную ш и н у данных, дающую пропу­
скную способность в 3,2 Гбайт/с, и 36-разрядную ш и н у адреса (33 адрес­
ных л и н и и А35-А3 и 8 л и н и й выбора байтов BE7-ВЕ0), что позволяет ад­
ресовать физическую память емкостью до 64 Гбайт.
И м е н н о учетверенная результирующая частота передачи данных я в ­
ляется одним из главных предметов гордости разработчиков Pentium 4.
Однако для многочисленных мелких запросов, где д а н н ы е в большинстве
своем умещаются в одну 64-байтную порцию (и, соответственно, не и с ­
пользуются возможности многоканальной передачи), важнее и м е н н о ча­
стота тактирования.
Последние модели Pentium 4 работают на частоте системной ш и н ы
150 МГц, что обеспечивает эквивалентную частоту F S B в 600 МГц и про¬
пускную способность в 4,8 Гбайт/с.
Полученная по системной ш и н е и н ф о р м а ц и я сохраняется в к э ш - п а ­
мяти 2-го уровня (L2) емкостью 256 Кбайт, общей для команд и данных,
которая размещается непосредственно на кристалле М П . Ш и р и н а ш и н ы ,
по которой идет обмен д а н н ы м и между к э ш - п а м я т ь ю L2 и процессором,
составляет 256 бит (32 байта), а ее тактовая частота совпадает с тактовой
частотой ядра процессора.
Гарвардская внутренняя структура реализуется на уровне к э ш - п а м я ­
ти 1-го уровня (L1) путем разделения потоков команд и данных. К э ш - п а ­
мять данных 1-го уровня имеет емкость 8 Кбайт. Вместо к э ш - п а м я т и к о ­
манд 1-го уровня в Pentium 4 используется к э ш - п а м я т ь для декодирован¬
ных команд (микрокоманд). Execution Trace Cache — это название и
одновременно способ реализации L 1 - ^ n r a инструкций в архитектуре
NetBurst. Смысловое содержание этого термина м о ж н о перевести как
«кэш трассировки выполняемых микрокоманд». В Execution Trace Cache
хранятся м и к р о к о м а н д ы (uops), которые были получены в результате де­
кодирования входного потока инструкций исполняемого кода и готовы
для передачи на в ы п о л н е н и е конвейеру. Емкость Execution Trace Cache
составляет 12 Кбайт.
После заполнения к э ш - п а м я т и м и к р о к о м а н д практически любая
команда будет храниться в ней в декодированном виде. Поэтому при по¬
ступлении очередной команды блок трассировки выбирает из этой кэш¬
памяти необходимые м и к р о к о м а н д ы , обеспечивающие ее выполнение.

137
Курс Архитектура микропроцессоров

Если в потоке команд оказывается команда условного перехода, то в к л ю ­


чается механизм предсказания ветвления, который формирует адрес сле¬
дующей выбираемой команды до того, как будет определено условие вы¬
полнения перехода.
После ф о р м и р о в а н и я потоков м и к р о к о м а н д производится выделе­
н и е регистров, необходимых для выполнения декодированных команд.
Эта процедура реализуется блоком распределения регистров. О н выделя­
ет для каждого указанного в команде логического регистра (регистра ц е ­
лочисленных операндов E A X , E B X и т. д., регистра операндов с плаваю­
щей точкой ST0—ST7 или регистра блоков M M X , SSE) один из 128 ф и з и ­
ческих регистров, входящих в состав блоков регистров замещения (БРЗ)
целочисленного блока микропроцессора и блока обработки чисел с пла¬
вающей точкой. Эта процедура позволяет минимизировать к о н ф л и к т ы в
конвейерах и выполнять команды, использующие одни и те ж е логичес¬
кие регистры, одновременно или с изменением их последовательности.
Ступени распределения/переименования конвейера могут выпустить три
м и к р о к о м а н д ы за такт на следующую ступень конвейера.
Выбранные м и к р о к о м а н д ы размещаются в очереди микрокоманд. В
ней содержатся м и к р о к о м а н д ы , реализующие в ы п о л н е н и е до 120 посту­
п и в ш и х и декодированных команд, которые затем направляются в испол¬
нительные устройства. Отметим, что в процессорах Pentium III в очереди
находятся м и к р о к о м а н д ы для 40 поступивших команд. Значительное уве­
личение числа команд, стоящих в очереди, позволяет более э ф ф е к т и в н о
организовать поток их исполнения, изменяя последовательность выпол­
н е н и я команд и выделяя команды, которые могут выполняться парал­
лельно. Эти ф у н к ц и и реализует блок распределения микрокоманд. О н
выбирает м и к р о к о м а н д ы из очереди не в порядке их поступления, а по
мере готовности соответствующих операндов и исполнительных уст¬
ройств. В результате команды, поступившие позже, могут быть выполне¬
н ы до ранее выбранных команд. П р и этом реализуется одновременное
в ы п о л н е н и е нескольких м и к р о к о м а н д (команд) в параллельно работаю¬
щих исполнительных устройствах. Таким образом, естественный порядок
следования команд (микрокоманд) нарушается, чтобы обеспечить более
полную загрузку параллельно включенных исполнительных устройств и
повысить производительность процессора.
Адреса операндов, выбираемых из памяти, вычисляются блоком
ф о р м и р о в а н и я адреса (БФА), который реализует интерфейс с к э ш - п а м я ­
тью данных 1-го уровня. В соответствии с заданными в декодированных
командах способами адресации формируются 48 адресов для загрузки
операндов из памяти в регистр Б Р З и 24 адреса для записи из регистра в
память (в Pentium III формируются 16 адресов для загрузки регистров и 12
адресов для записи в память). П р и этом Б Ф А формирует адреса операндов

138
Лекция 10 Структура и особенности архитектуры микропроцессора Pentium 4

для команд, которые еще не поступили на выполнение. П р и обращении к


памяти Б Ф А одновременно выдает адреса двух операндов: один для за­
грузки операнда в заданный регистр Б Р З , второй — для пересылки ре­
зультата из Б Р З в память. Таким образом реализуется процедура предва­
рительного чтения данных для последующей их обработки в и с п о л н и ­
тельных блоках (спекулятивная выборка).
Аналогичным образом организуется параллельная работа блоков
SSE, F P U , M M X , которые используют отдельный набор регистров и блок
ф о р м и р о в а н и я адресов операндов.
П р и выборке операнда из памяти производится обращение к к э ш ­
памяти данных (L1), которая имеет отдельные порты для чтения и запи­
си. За один такт производится выборка операндов для двух команд.
П р и ф о р м и р о в а н и и адресов обеспечивается обращение к заданному
сегменту памяти. Каждый сегмент может делиться на страницы. Для с о ­
к р а щ е н и я времени трансляции используется буфер ассоциативной транс­
ляции страничного адреса T L B , который хранит базовые адреса наиболее
часто используемых страниц.
М и к р о к о м а н д ы поступают в исполнительное ядро из блока распре­
деления по 4 портам в 8 исполнительных блоков. Эти порты выполняют
ф у н к ц и ю шлюзов к ф у н к ц и о н а л ь н ы м устройствам. Для обработки цело­
численных данных и в ы п о л н е н и я логических операций в Pentium 4 и с ­
пользуются 4 однотипных арифметико-логических устройства ( A L U ) .
Обработка чисел с плавающей запятой проходит в F P U . Блоки M M X и
SSE предназначены для в ы п о л н е н и я команд этих типов.
За один такт через порты может пройти до шести микрокоманд. Это
больше, чем может выполнить препроцессор (3 м и к р о к о м а н д ы за такт),
что дает некоторую свободу в случае резкого увеличения количества гото­
вых к и с п о л н е н и ю микрокоманд. Суперскалярная архитектура м и к р о ­
процессора реализуется путем организации исполнительного ядра М П в
виде ряда параллельно работающих блоков.
Арифметико-логические блоки A L U производят обработку целочис¬
ленных операндов, которые поступают из заданных регистров Б Р З . В эти
ж е регистры заносится и результат операции. П р и этом проверяются ус­
ловия ветвления для команд условных переходов и выдаются сигналы пе¬
резагрузки конвейера команд в случае неправильно предсказанного ветв¬
ления. Рабочая тактовая частота модулей A L U в два раза в ы ш е тактовой
частоты процессора. Это достигается за счет срабатывания как по перед¬
нему, так и по заднему фронтам задающего тактового сигнала. Таким об¬
разом, каждый ALU-модуль способен выполнить до двух целочисленных
операций за один рабочий такт процессора.
Эффективность конвейера резко снижается из-за необходимости его
перезагрузки при выполнении условных ветвлений, когда требуется произ-

139
Курс Архитектура микропроцессоров

вести очистку всех предыдущих ступеней и выбрать команду из другой вет¬


ви программы. Чтобы сократить потери времени, связанные с перезагруз­
кой конвейера, используется улучшенный блок предсказания ветвлений. Его
основной частью является ассоциативная память, называемая буфером ад­
ресов ветвлений B T B , в которой хранятся 4092 адреса ранее выполненных
переходов. Отметим, что в B T B процессора Pentium III хранятся адреса
только 512 переходов. Кроме того, B T B содержит биты, хранящие предыс­
торию ветвления, которые указывают, выполнялся ли переход при преды -
дущих выборках данной команды. П р и поступлении очередной команды
условного перехода указанный в ней адрес сравнивается с содержимым
B T B . Если этот адрес н е содержится в B T B , то есть ранее н е производились
переходы по данному адресу, то предсказывается отсутствие ветвления. В
этом случае продолжается выборка и декодирование команд, следующих за
командой перехода. П р и совпадении указанного в команде адреса перехо¬
да с каким-либо из адресов, хранящихся в B T B , производится анализ пре­
дыстории. В процессе анализа определяется чаще всего реализуемое на­
правление ветвления, а также выявляются чередующиеся переходы. Если
предсказывается выполнение ветвления, то выбирается и загружается в
конвейер команда, размещенная по предсказанному адресу. Более совер­
ш е н н ы й механизм предсказания переходов в М П Pentium 4 обеспечивает
уменьшение количества ошибочно предсказанных переходов в среднем на
33 % п о сравнению с Pentium III. Таким образом, резко уменьшается число
перезагрузок конвейера при неправильном предсказании ветвления.

В Pentium 4 также интегрирован набор из 144 новых S I M D - и н с т р у к -


ц и й , обеспечивающих одновременное выполнение одной операции над
несколькими операндами. Рассмотрим особенности использования этой
схемы обработки данных подробнее.
Технология M M X — итог совместной работы создателей архитекту¬
р ы микропроцессоров Intel и программистов. П р и ее разработке был ис¬
следован ш и р о к и й круг программ аудиовизуальной обработки информа¬
ции: обработка изображений, M P E G - в и д е о , синтеза музыки, сжатия р е ­
ч и и ее распознавания, поддержка видеоконференций, компьютерные
игровые программы и т. д. В результате этого анализа были выявлены ос­
новные особенности таких программ:
• использование данных целого типа небольшой разрядности, н а ­
пример, 8-разрядные графические пиксели и 16-разрядная оциф¬
ровка звука;
• короткие ц и к л ы с высокими к о э ф ф и ц и е н т а м и повторяемости;
• большое количество операций умножения и суммирования, в том
числе из-за широкого использования быстрого преобразования
Фурье;

140
Лекция 10 Структура и особенности архитектуры микропроцессора Pentium 4

• п р и м е н е н и е алгоритмов, требующих интенсивных вычислений;


• ш и р о к о е использование операций с высоким уровнем паралле¬
лизма.
Было отмечено, что в мультимедийных приложениях 80 % времени
в ы п о л н е н и я программы приходится на 10—20 % программного кода.
Малая разрядность данных требует дополнительных действий п р и их
обработке на 32-разрядном микропроцессоре, н е позволяя в то ж е время
использовать всю м о щ ь 32-разрядной архитектуры.
Простым и наглядным примером такого рода обработки может слу­
жить изменение значений всех пикселей видеопамяти на определенную
величину. Пусть емкость видеопамяти составляет 1 Мбайт, а каждый п и к ­
сель кодируется 1 байтом. Тогда для в ы п о л н е н и я указанного действия п о ­
требуется выполнить п р и м е р н о 1 м л н операций п о прибавлению к о н ­
станты к однобайтовому операнду, который выбирается из памяти. Одно¬
временное в ы п о л н е н и е таких действий над 4 операндами, что сократило
бы количество операций в 4 раза, невозможно в классической архитекту¬
ре IA-32 из-за отсутствия соответствующих команд в системе команд и
форматов используемых данных.
На устранение этих противоречий и были направлены основные
усилия разработчиков технологии M M X . Процессор Pentium M M X , в к о ­
тором впервые была реализована новая технология, был представлен
ф и р м о й Intel в январе 1997 года. Он позволил на 10—20 % повысить п р о ­
изводительность на стандартных тестах, а для специализированных муль¬
тимедийных приложений — на 50 %.

Основные черты MMX-технологии

Главной особенностью MMX-технологии является н о в ы й п р и н ц и п


обработки и н ф о р м а ц и и — обработка по схеме S I M D (Single Instruction —
Multiple Data: один поток команд — много потоков данных). Этот вид о б ­
работки подразумевает, что с п о м о щ ь ю одной команды выполняется од­
на и та ж е операция сразу над несколькими операндами, например, п р о ­
изводится суммирование нескольких пар слагаемых. Такой подход требу¬
ет поддержки к а к со стороны системы команд и форматов данных, так и
на аппаратном уровне.
В микропроцессоре Pentium M M X появились 4 новых типа данных
(рис. 10.2).
Для хранения этих данных в микропроцессоре были использованы
80-разрядные регистры процессора обработки чисел с плавающей точкой
(рис. 10.3).
М н о г о ф у н к ц и о н а л ь н о е использование регистров F P U требовало,
чтобы их содержимое сохранялось в памяти компьютера п р и переходе от

141
Курс Архитектура микропроцессоров

64
1 операнд х 64 разряда

32 32
2 операнда х 32 разряда

16 16 16 16
4 операнда х 16 разрядов

8 операндов х 8 разрядов

Рис. 10.2. Структура данных M M X

79 64 63
ST0 ммхо
ST1 ММХ1

ST7 ММХ7

Блок регистров F P U

Рис. 10.3. Отображение регистров M M X на регистры F P U

обработки чисел с плавающей запятой к обработке данных М М Х и обрат­


но, что несколько ухудшало производительность микропроцессора. Од­
нако это позволило существовавшим в то время о п е р а ц и о н н ы м системам
использовать стандартные механизмы работы с регистрами F P U при со­
хранении и восстановлении регистров в процессе переключения задач и
не потребовало каких-либо доработок ОС.
В систему команд микропроцессора Pentium М М Х были включены
57 новых инструкций. Их использование было призвано, во-первых,
уменьшить время в ы п о л н е н и я мультимедийных приложений, а во-вто­
рых, минимизировать конфликты в конвейере, который становился все бо­
лее многоступенчатым, что приводило к существенным потерям в п р о и з ­
водительности из-за конфликтов.
Проиллюстрируем это на примере нескольких команд.
Команда P A D D S B «Сложение со знаком с насыщением» (рис. 10.4)
выполняет те действия, трудности реализации которых в классической
архитектуре IA-32 м ы обсуждали выше. Она выполняет сложение одно-

142
Лекция 10 Структура и особенности архитектуры микропроцессора Pentium 4

временно 8 пар однобайтовых операндов. Кроме того, если при выполне­


н и и сложения произошло переполнение, то результатом операции будет
максимально возможное в этом формате число. Это избавляет програм­
миста от необходимости использования после в ы п о л н е н и я каждого сло­
ж е н и я команд условных переходов, анализирующих п р и з н а к переполне­
н и я результата, что, в свою очередь, благотворно сказывается на работе
конвейера.

8 8 8 8 8 8 8 8
В7 В6 В5 В4 ВЗ В2 В1 ВО операнд 1

D7 D6 D5 D4 D3 D2 D1 DO

B7+D7 B6+D6 B5+D5 B4+D4 B3+D3 B2+D2 B1+D1 B0+D0

Рис. 10.4. Схема в ы п о л н е н и я операции «Сложение со знаком с на­


сыщением»

Команда P M A D D W D «Умножение с накоплением» э ф ф е к т и в н а при


в ы п о л н е н и и вычислений, характерных для обработки звуковой и графи­
ческой и н ф о р м а ц и и . Она одновременно перемножает четыре операнда
формата «слово» (16 разрядов), попарно складывает результаты умноже­
н и й двух младших и двух старших байт и получает два 32-разрядных ре­
зультата (рис. 10.5).

16 16 16 16
вз В2 В1 во операнд 1

D3 | D2 | D1 | DO | операнд 2

B3xD3+B2xD2 | BlxDl+BQxDQ | результат

Рис. 10.5. Схема в ы п о л н е н и я операции «Умножение с накоплением»

К о м а н д а P M A X S B (реализована в блоке SSE м и к р о п р о ц е с с о р а


Pentium III) выполняет нахождение максимума одновременно для восьми
8-разрядных операндов (рис. 10.6). Она позволяет не только выполнить
операцию пакетами по 8 байт, но и избежать ветвлений, а следовательно,
и «штрафов» за их неправильное предсказание.
Технология М М Х получила свое р а з в и т и е в м и к р о п р о ц е с с о р е
Pentium III с появлением специального блока SSE (Streaming S I M D
Extension — потоковое S I M D - р а с ш и р е н и е ) обработки и н ф о р м а ц и и по

143
Курс Архитектура микропроцессоров

8 8 8 8 8 8 8 8
-2 3 4 -5 1 3 5 -6 операнд 1

3 -1 2 4 -2 1 6 -7 операнд 2

3 3 4 4 1 3 6 -6 результат

Рис. 10.6. П р и м е р в ы п о л н е н и я операции нахождения максимума

схеме S I M D . Этот блок содержит отдельный регистровый файл из восьми


128-разрядных регистров (рис. 10.7), что позволяет обрабатывать по схе­
ме S I M D числа с плавающей запятой (четыре 32-разрядных числа).

127 0
ХММО
ХММ1

ХММ7

Рис. 10.7. Б л о к регистров SSE/SSE2

Числа с плавающей запятой имеют следующий формат:


• знак: 1 разряд;
• порядок (смещенный): 8 разрядов;
• мантисса: 23 разряда.
Расширено и количество форматов чисел с ф и к с и р о в а н н о й точкой,
обрабатываемых по схеме S I M D :
• 16 операндов х 8 разрядов;
• 8 операндов х 16 разрядов;
• 4 операнда х 32 разряда;
• 2 операнда х 64 разряда.
Для обработки чисел новых форматов в систему команд д о п о л н и ­
тельно введены 70 новых команд.

Б л о к SSE2, включенный в микропроцессор Pentium 4, реализует 144


новые команды. И з этих 144 инструкций 68 расширяют возможности ста­
рых S I M D - и н с т р у к ц и й по работе с целыми числами, а 76 являются совер­
ш е н н о новыми. Среди последних — инструкции, позволяющие опериро-

144
Лекция 10 Структура и особенности архитектуры микропроцессора Pentium 4

вать со 128-разрядными числами (как целыми, так и вещественными с


двойной точностью).
Операции SSE2 позволили существенно повысить эффективность
п р и м е н е н и я микропроцессора п р и реализации трехмерной графики и со­
временных интернет-приложений, обеспечении сжатия и кодирования
аудио- и видеоданных и ряда других п р и м е н е н и й . В результате произво­
дительность процессора Pentium 4 п р и в ы п о л н е н и и таких операций стала
вдвое выше, чем Pentium III.
Отметим несколько новых по сравнению с М М Х инструкций, в о ­
шедших в состав команд SSE/SSE2.
Команда A D D S U B P S выполняет сложение второго и четвертого эле­
ментов с одинарной точностью с одновременным вычитанием первого и
третьего элементов. Эта инструкция полезна при работе с комплексными
числами в случае использования соответствующего типа переменных.
Еще одна команда — H A D D P S — осуществляет горизонтальное сло­
жение элементов с одинарной точностью. П е р в ы й результат является
суммой первого и второго элементов первого (исходного) операнда; вто­
рой результат — суммой третьего и четвертого элементов первого операн­
да; третий результат — суммой первого и второго элементов второго опе­
ранда (операнда назначения) и, наконец, четвертый результат — суммой
третьего и четвертого элементов второго операнда (рис. 10.8).

32 32 32 32
ВЗ В2 В1 ВО операнд 1

D3 | D2 | D1 | DO | операнд 2

| D3 + D2 | D1+D0 | В З + В 2 | B l +В0 | результат

Рис. 10.8. Схема в ы п о л н е н и я операции H A D D P S

Новые возможности в этом направлении обработки и н ф о р м а ц и и


были обеспечены в технологии SSE3, внедренной в ядре Prescott процес­
сора Pentium 4 добавлением набора из 13 инструкций, и в технологии
SSE4 в микропроцессорах семейства Intel Core 2 Duo.

Краткие итоги. В л е к ц и и рассмотрены структура и архитектурные


особенности микропроцессора Intel Pentium 4, завершающего линейку
32-разрядных микропроцессоров IA-32. Рассмотрены особенности его
микроархитектуры, организации новой системной ш и н ы F S B , обработки
и н ф о р м а ц и и в блоке SSE2.

145
Курс Архитектура микропроцессоров

Лекция 1 1 . Основные направления развития


архитектуры универсальных микропроцессоров

Цель лекции: изучить основные направления развития архитектуры


универсальных микропроцессоров.

Развитие микропроцессорной техники в области универсальных м и ­


кропроцессоров идет по пути постоянного п о в ы ш е н и я их производитель­
ности. Традиционными направлениями такого развития являются п о в ы ­
ш е н и е тактовой частоты работы М П и увеличение количества одновре¬
м е н н о в ы п о л н я е м ы х к о м а н д за счет у в е л и ч е н и я числа к о н в е й е р о в
(исполнительных устройств) в М П .
Однако оба эти направления следует признать экстенсивными, и м е ­
ю щ и м и естественные ограничения.
П о в ы ш е н и е тактовой частоты, которое в основном обеспечиваетсяя
путем увеличения количества ступеней в конвейере, приводит к большим
потерям времени при необходимости перезагрузки конвейера вследствие
к о н ф л и к т о в по управлению или п р и переключении на новую задачу. Та­
кое увеличение имеет также и физические ограничения, связанные со
схемотехникой кристалла Б И С . Ограничения определяются также влия¬
н и е м накладных расходов при передаче частично обработанной команды
на следующую ступень конвейера (значение At п р и определении длитель­
ности такта). Н а больших частотах эти расходы становятся с о и з м е р и м ы ­
ми с длительностью обработки на очередном этапе. Во многом это на¬
правление исчерпало себя в микропроцессоре Pentium 4, работающем на
частотах, близких к 4 ГГц.
П о в ы ш е н и е производительности за счет увеличения числа конвейе¬
ров в микропроцессоре м о ж н о оценить увеличением числа команд, вы¬
полняемых программами за такт (IPC — Instructions Per Cycle). Так, для
М П Alpha 21264 этот показатель равен 6, столько ж е микроопераций за
такт может выдать Pentium 4. Н о это предельные значения, а реальные
программные коды, в частности, из-за различных взаимозависимостей,
дают гораздо более низкое значение I P C . Дальнейшее увеличение числа
исполнительных устройств ведет к усложнению расположенного в Б И С
устройства управления, распределяющего команды по конвейерам, а так¬
ж е к сложным взаимозависимостям между д а н н ы м и . К тому ж е реальные
коды программ н е позволяют обеспечить э ф ф е к т и в н у ю загрузку всех
имеющихся в М П исполнительных устройств, что приводит к их просто¬
я м . Следует отметить также, что рост производительности микропроцес¬
сора н е является прямо п р о п о р ц и о н а л ь н ы м росту количества конвейе¬
ров, а обычно существенно ниже.

146
Лекция 11 Основные направления развития архитектуры микропроцессоров

В настоящее время для п о в ы ш е н и я производительности микропро¬


цессоров используется р я д новых подходов, о с н о в н ы м и и з которых явля¬
ются:
• C M P (Chip Multi Processing) — создание на одном кристалле систе¬
м ы и з нескольких микропроцессоров (многоядерность);
• S M T (Simultaneous MultiThreading) — многонитевая архитектура;
• E P I C (Explicitly Parallel Instruction Computing) — вычисления с яв¬
н ы м параллелизмом в командах.
Рассмотрим эти направления подробнее.
1. Направление CMP обеспечивается возросшими технологическими
возможностями, которые позволяют создать на одном кристалле не¬
сколько микропроцессоров и организовать их работу п о п р и н ц и п у муль¬
типроцессорных систем.
Производители чипов уже н е гонятся за частотой, сместив акцент на
многоядерную архитектуру, которая позволяет наращивать производи¬
тельность, сохраняя в приемлемых границах энергопотребление и тепло¬
выделение.
Многоядерные процессоры хорошо приспособлены для требова¬
тельных мультимедийных задач, таких к а к обработка видеозаписей, рабо¬
т ы с большими базами данных, одновременное в ы п о л н е н и е нескольких
ресурсоемких заданий, например, компьютерной игры, записи D V D и за¬
грузки файлов из Интернета.
П р и таком подходе задача п о в ы ш е н и я производительности работы
отдельных приложений требует распараллеливания последних, то есть
проблема перемещается с аппаратного на программный уровень. Н а дан¬
н ы й момент сложности заключаются в том, что большая часть существу¬
ющего программного обеспечения создавалась без расчета на использо¬
вание в многоядерных и многопроцессорных конфигурациях. Другими
словами, прогресс в области аппаратных средств на какое-то время опе¬
редил прогресс в области программного обеспечения.
Развитие микропроцессорной техники в этом направлении идет
очень быстрыми темпами. Так, к о м п а н и я Tilera в 2007 году начала постав­
ки специализированных процессоров Tile64, насчитывающих 64 ядра. А в
2009 году, к а к ожидается, свет увидит 120-ядерная м о д и ф и к а ц и я этого
процессора.

8 0 - я д е р н ы й п р о ц е с с о р от ф и р м ы Intel

Е щ е в 2001 году руководство ф и р м ы Intel уверенно обещало дотянуть


одноядерную архитектуру процессоров Pentium до 2010 года с поднятием
п л а н к и их рабочей частоты до 10 ГГц. Однако уже в 2008 году Intel объя¬
вила о п р е к р а щ е н и и выпуска одноядерных микропроцессоров. Н о в ы й

147
Курс Архитектура микропроцессоров

80- ядерный процессор от Intel, который в некоторых документах имеет


обозначение Polaris, обеспечивает производительность до 1,28 триллиона
операций с плавающей точкой в секунду (терафлопс) при частоте 4 ГГц.
Микропроцессор построен по технологии 65 н м из 100 млн транзисторов
2
на кристалле площадью 275 м м . Для сравнения: двухъядерный Intel Core
2 Extreme, также с технологическими нормами 65 н м , содержит 291 млн
2
транзисторов на площади 143 м м . Разница обусловлена малым количест¬
вом памяти на кристалле нового М П и доминированием логических схем
и схем ввода-вывода, размер которых трудно минимизировать. Большое
в н и м а н и е в н е м уделено новому показателю, который занимает все более
главенствующее положение, — производительность/ватт. П о этому пока¬
зателю Polaris обеспечивает чрезвычайную энергоэффективность: 16 ги-
гафлопс/Вт. Процессор работает при н а п р я ж е н и и питания 0,95 В.
Согласно заявлению представителей Intel, достигнутые показатели
отнюдь не являются предельными. И н ж е н е р ы к о м п а н и и могут значи¬
тельно увеличить производительность процессора за счет увеличения его
тактовой частоты. Так, например, на частоте 5,1 ГГц процессор демонст­
рирует 1,63 терафлопс, а на частоте 5,7 ГГц — 1,81 терафлопс. Однако с
ростом тактовой частоты растет и потребляемая мощность, составляя при
вышеуказанных режимах работы 175 и 265 ватт соответственно.
Polaris представляет собой 80 одинаковых процессорных элементов,
каждый из которых состоит из вычислителя и маршрутизатора на 6 пор¬
тов. Вычислитель содержит 2 устройства для операций умножения с на¬
коплением (FP Multiple-Accumulator, F P M A C ) , 3 Кбайт памяти команд и 2
Кбайт памяти данных, набор 32-разрядных регистров и оперирует 96-раз¬
р я д н ы м и сверхдлинными словами команд (Very Long Instruction Word —
VLIW). Планирование и параллельное выполнение команд возлагается на
компилятор (архитектура E P I C , аналогичная реализованной разработчи¬
ками Intel и в процессоре Itanium). Она позволяет процессору исполнять
до восьми команд за один такт. П о своему набору инструкций новый мик¬
ропроцессор несовместим с x86.
Все арифметические операции выполняются на FPMAC-модулях.
Эффективность многоядерных процессоров во многом определяется
пропускной способностью памяти системы. П р и м е н е н и е многоканаль¬
ных ш и н памяти и п о в ы ш е н и е их частоты сопряжено с чрезмерным ус¬
л о ж н е н и е м контроллеров. Другой путь уменьшения задержки — ввести
еще один уровень иерархии к э ш - п а м я т и . Однако это приведет к неоправ¬
данному увеличению памяти на кристалле, площадь которого эффектив¬
нее использовать для вычислительной логики. Несколько мегабайт до¬
полнительной к э ш - п а м я т и занимают площадь, достаточную для 10 про¬
ц е с с о р н ы х ядер. Такой подход обеспечит ш и р о к и й доступ ядер
процессора к памяти. К а ж д ы й слой будет содержать до 256 Мбайт.

148
Лекция 11 Основные направления развития архитектуры микропроцессоров

Другой фактор, ограничивающий производительность современных


компьютеров, — пропускная способность процессорной ш и н ы . Разделя¬
емые ш и н ы уже уступают свое место соединениям типа «точка-точка». В
Polaris используется сеть процессорных элементов, основанная на пере¬
даче данных с коммутацией каналов. Каждый маршрутизатор содержит
шесть 39-битных портов и обеспечивает суммарную пропускную способ¬
ность до 80 Гбайт/c при частоте микросхемы 4 ГГц. Четыре порта ведут к
с м е ж н ы м процессорным элементам, один к вычислителю, а шестой порт
в перспективе будет взаимодействовать с многослойной памятью. Систе¬
ма коммутации предусматривает взаимодействие каждого маршрутизато¬
ра с каждым. В микропроцессоре ядра независимы в плане операций вво¬
да-вывода. Поэтому, добавив необходимое П О , м о ж н о реализовать раз¬
л и ч н ы е интерфейсы и добиться любой функциональности устройства.
В настоящее время главное достижение Polaris — это создание фун¬
дамента (как аппаратного, так и идейного) для отработки новых техноло¬
гий многоядерных архитектур. Он представляет собой скорее исследова¬
тельский проект, чем инженерное решение.

2. Направление SMT в развитии архитектуры микропроцессоров ба¬


зируется на том, что одна задача не в состоянии полностью загрузить все
возрастающие ресурсы микропроцессора. Поэтому на одном процессоре
осуществляется запуск нескольких задач одновременно, при этом распа¬
раллеливание программ осуществляется аппаратными средствами М П .
Это позволяет более равномерно загрузить ресурсы процессора. Парал¬
лельно в разных устройствах М П могут выполняться команды из разных
задач. Так, микропроцессор Alpha 21264 поддерживает в ы п о л н е н и е до 4
задач одновременно. П р и поддержке S M T на 4 нити каждый процессор с
точки зрения операционной системы выглядит к а к 4 логических процес¬
сора. Исследования показали, что S M T позволяет увеличить производи¬
тельность данного процессора до двух раз, а дополнительные схемы уп¬
равления занимают всего около 10 % площади кристалла.

Некоторые микропроцессоры для максимального п о в ы ш е н и я своей


производительности используют оба вышеназванных подхода. Так, ком¬
п а н и я Sun Microsystems представила н о в ы й процессор U l t r a S P A R C T2.
Н о в ы й чип снабжен восемью ядрами, каждое из которых может обраба¬
тывать восемь потоков инструкций. Таким образом, он одновременно
способен оперировать с 64 потоками. Тактовая частота U l t r a S P A R C T2 со¬
ставляет от 900 МГц до 1,4 ГГц.

3. Направление EPIC фактически использует известную технологию


V L I W (Very Large Instruction Word) — очень длинного командного слова.

149
Курс Архитектура микропроцессоров

Распараллеливание алгоритма между исполнительными модулями произ¬


водится компилятором на этапе создания м а ш и н н о г о кода, когда коман¬
д ы объединяются в связки и не конкурируют между собой за ресурсы м и ­
кропроцессора. П р и этом упрощается блок управления на кристалле.
Особенности архитектуры EPIC:
1. Я в н ы й параллелизм в м а ш и н н о м коде. П о и с к зависимостей меж¬
ду командами проводит не процессор, а компилятор.
2. Большое количество регистров.
3. Масштабируемость архитектуры до большого количества ф у н к ц и ­
ональных устройств (АЛУ, F P U , M M X , SSE и т. п.).
4. П р и м е н е н и е предикатов. Предикатный подход исходит из пред¬
посылки, что возросшие м о щ н о с т и микропроцессоров позволяют
запускать параллельно команды из разных ветвей условного ветв¬
л е н и я вместо того, чтобы ожидать ф о р м и р о в а н и я истинных при¬
знаков для выбора правильного направления или полагаться на
блок предсказания переходов, рискуя прийти к необходимости пе¬
резагрузки достаточно длинных конвейеров в случае неудачного
предсказания. П р и этом каждая команда снабжается специаль¬
н ы м полем условия (предикатом) (рис. 11.1). П о мере определения
истинных признаков ветвления те команды, предикаты которых
указывали, что они выбраны из другой ветви, снимаются с обра¬
ботки в конвейере. Результаты команд не записываются в прием¬
н и к до определения правильности направления перехода.

поле предиката

Рис. 11.1. Предикатное исполнение команд

Отметим основные достоинства этого подхода:


1. Упрощается архитектура процессора. Вместо логики распаралле¬
л и в а н и я на E P I C - процессоре м о ж н о разместить больше регист¬
ров, функциональных устройств и т. п.

150
Лекция 11 Основные направления развития архитектуры микропроцессоров

2. Процессор н е тратит время на анализ потока команд.


3. Возможности процессора по анализу программы во время выпол¬
н е н и я ограничены сравнительно небольшим участком програм¬
м ы , тогда к а к компилятор способен произвести анализ всей про¬
граммы.
4. Если н е к о т о р а я п р о г р а м м а д о л ж н а запускаться м н о г о к р а т н о (а
и м е н н о т а к и бывает в п о д а в л я ю щ е м б о л ь ш и н с т в е случаев), вы¬
годнее распараллелить ее о д и н р а з п р и к о м п и л я ц и и , а н е тра¬
тить на это время к а ж д ы й р а з , когда о н а и с п о л н я е т с я н а процес¬
соре.

Однако архитектуре E P I C присущ и ряд недостатков:


1. Компилятор производит статический анализ программы, раз и на¬
всегда планируя вычисления. Однако даже при небольших изме¬
нениях исходных данных путь выполнения программы сущест¬
венно изменяется.
2. Значительно усложняются компиляторы, следовательно, увеличи¬
ваются время к о м п и л я ц и и программы и число о ш и б о к в самих
компиляторах. Если первый фактор, учитывая высокое быстро¬
действие современных компьютеров, н е очень существенен, то на
второй следует обратить определенное внимание. Исследованияя
показывают, что к моменту поставки даже ответственного про¬
граммного обеспечения в нем содержится п р и м е р н о 1 ошибка на
10 000 строк исходного кода. Следовательно, программа из 500
тыс. строк будет содержать около 50 ошибок, к а к бы хорошо н и
работали тестировщики. И эти о ш и б к и могут проявиться самым
н е о ж и д а н н ы м образом.
3. Производительность микропроцессора во многом определяетсяя
качеством компилятора. Правда, здесь необходимо четко опреде¬
лить, что понимается под производительностью, ведь количество
операций, выполняемых микропроцессором в единицу времени,
от компилятора н е зависит. Н о это тема будет особо рассмотрена
далее.
4. Увеличивается сложность отладки, так к а к отлаживается н е исход¬
ная программа, а о п т и м и з и р о в а н н ы й параллельный код. Про¬
граммисту тяжело определить место и причину появления ошиб¬
к и , так к а к в процессе трансляции исходной программы ее отдель¬
н ы е команды будут переставлены компилятором для обеспеченияя
оптимальности работы микропроцессора.

Типичным представителем архитектуры E P I C является микропро¬


цессор Itanium ф и р м ы Intel.

151
Курс Архитектура микропроцессоров

А р х и т е к т у р а м и к р о п р о ц е с с о р а Itanium

Д а н н ы й микропроцессор относится к новой, 64-разрядной архитек­


туре IA-64. Структура микропроцессора Itanium представлена на рис. 11.2.

Рис. 11.2. Структура микропроцессора Itanium

Системная ш и н а Itanium позволяет соединить до 4 микропроцессо¬


ров между собой без дополнительных мостов. Ее ш и н а данных имеет ш и ­
рину 64 разряда плюс 8 разрядов для коррекции ошибок. Тактовая частота
ш и н ы равна 133 МГц, но возможны 2 передачи за такт. Это обеспечивает
пропускную способность 2,1 Гбайт/с. Адресная ш и н а содержит 44 разряда.
Основные исполнительные ресурсы Itanium включают 4 целочис¬
л е н н ы х А Л У ( I U ) , 4 м у л ь т и м е д и й н ы х и с п о л н и т е л ь н ы х устройства
( M M X ) , 3 устройства обработки команд перехода ( B U ) , 2 устройства с
плавающей точкой, работающих с д а н н ы м и р а с ш и р е н н о й точности, и 2
устройства с плавающей запятой одинарной точности ( F P U ) . Кроме того,
имеются 2 устройства загрузки регистров / записи в память.

152
Лекция 11 Основные направления развития архитектуры микропроцессоров

После трансляции на исполнение команды поступают в виде 128-раз­


рядных связок, каждая из которых содержит 3 команды и маску (рис. 11.3).

4 •4 •4 >\4 •

МАСКА Команда 1 Команда 2 Команда 3

Рис. 11.3. Структура связки команд микропроцессора Itanium

В маске указывается, какой тип исполнительных устройств требует­


ся для той и л и и н о й команды, то есть команды компонуются таким обра­
зом, чтобы о н и не конфликтовали между собой из-за ресурсов м и к р о п р о ­
цессора.
Каждая команда имеет следующий формат (рис. 11.4):

, 6 ,7 ,7 ,7
< 1 4

коп Предикат R1 R2 R3

Рис. 11.4. Формат команды микропроцессора Itanium

В микропроцессоре имеется 9 портов четырех типов: 2 порта для к о ­


манд группы М , 2 — для команд I, 2 — для команд F и 3 — для команд
группы B . О н и играют роль шлюзов к устройствам, в ы п о л н я ю щ и м соот­
ветственно операции с памятью, целочисленные операции, операции п е ­
рехода и операции с плавающей запятой. Поле маски связки команд п о з ­
воляет не выдавать на одновременное выполнение больше команд, чем
имеется исполнительных ресурсов микропроцессора. К о м а н д ы разного
типа для в ы п о л н е н и я направляются в разные порты, и это позволяет э ф ­
фективно организовать параллельное выполнение команд.
Для обеспечения более полной загрузки ресурсов Itanium в состоя­
н и и выдавать на выполнение до 6 команд за такт. П р и прохождении через
порты осуществляется отображение виртуальных номеров регистров из
программного кода в физические регистры.
Архитектура IA-64 характеризуется очень большими емкостями ф а й ­
лов регистров. Файл регистров общего назначения G R в IA-64 имеет ем­
кость 128 строк. В Itanium он имеет 8 портов чтения и 6 портов записи. Эти
порты позволяют поддерживать одновременно 2 М-операции и 2 I-опера-
ц и и за такт. Файл регистров с плавающей запятой F R имеет ту же емкость
и обеспечивает одновременную работу двух М-операций и двух команд
F M A C («умножить-и-сложить»). Наконец, P R F - ф а й л однобитных регист­
ров-предикатов (их всего 64) имеет 15 портов чтения и 11 портов записи.

153
Курс Архитектура микропроцессоров

Эффективность работы функциональных устройств увеличена за


счет возможности прямой подачи результата в ы п о л н е н и я на вход другой
команды, минуя запись в регистры (продвижение данных).
Ц е л о ч и с л е н н о е исполнительное я д р о микропроцессора имеет 4
порта: 2 порта памяти и 2 собственно целочисленных порта. Все 4 порта
могут выдавать на в ы п о л н е н и е арифметические команды, команды сдви¬
га, логические команды, команды сравнения и большинство целочислен­
ных мультимедийных портов S I M D . М - п о р т ы могут также выполнять к о ­
манды загрузки регистров / записи в память, а I-порты — более редкие це¬
л о ч и с л е н н ы е команды: проверку бит, п о и с к нулевого байта и некоторые
виды сдвигов.
Устройства обработки чисел с плавающей точкой предполагают воз­
можность работы с 82-разрядным представлением чисел. Это обеспечива¬
ет, в частности, форматы чисел с плавающей точкой одинарной, двойной
и р а с ш и р е н н о й точности.
Глубина конвейера в М П Itanium составляетЮ стадий, что во многом
определяет частоту работы микропроцессора. Она составляет от 800 МГц
до 1 ГГц.
Двухпортовый к э ш данных первого уровня является 4-канальным и
имеет емкость 16 Кбайт с длиной строки 32 байта. В нем используется ал­
горитм сквозной записи. Благодаря наличию двух портов о н может в ы ­
полнять одновременно 2 операции загрузки регистров / записи в память в
любом сочетании. Загрузка операндов с плавающей точкой всегда н а ч и ­
нается с к э ш а второго уровня. Это связано с малой емкостью к э ш а д а н ­
ных первого уровня. К э ш команд первого уровня емкостью 16 Кбайт так­
ж е является 4-канальным.
Двухпортовый к э ш второго уровня емкостью 96 Кбайт содержит и
команды, и данные. О н является 6-канальным с д л и н о й строки 64 байта.
К а к и к э ш данных первого уровня, о н может выполнять 2 операции с па­
мятью за такт, н о в нем используется уже алгоритм обратной записи.
В н е ш н и й к э ш третьего уровня имеет емкость 4 Мбайт и длину стро­
ки 64 байта. О н является 4-канальным и может работать на частоте ядра
микропроцессора.
В микроархитектуре Itanium поддерживается ш и р о к и й спектр воз­
можных размеров страниц памяти: 4/8/16/64/256 Кбайт, 1/4/16/64/256
Мбайт.
Itanium имеет очень м о щ н у ю систему предсказания переходов, к о ­
торая использует практически все имеющиеся в этом направлении разра¬
ботки.
Во-первых, это традиционные таблицы предсказания переходов, к о ­
торых в Itanium имеется два типа — B P T (Branch Prediction Table) и М B P T
(Multiway Branch Prediction Table). Обе таблицы устроены, по сути, одина-

154
Лекция 11 Основные направления развития архитектуры микропроцессоров

ково, являясь 4-канальной множественно-ассоциативной к э ш - п а м я т ь ю


на основе адресов связок. В н и х применяется двухуровневый предиктор с
4-разрядным полем истории (счетчики последних переходов). ВРТ имеет
емкость 512 строк для обычных переходов, а М В Р Т — всего 64 строки, н о
для переходов с ветвлением на несколько направлений. Строки М В Р Т
включают соответственно и н ф о р м а ц и ю о трех слотах переходов, а н е об
одном, к а к в ВРТ. П р и м е н е н и е М В Р Т целесообразно и м е н н о для E P I C -
кодов с применением спекулятивной выборки и предикатов, поэтому на­
иболее часто употребляемыми становятся переходы со многими ветвями.

К р о м е М В Р Т / В Р Т для предсказания переходов используются к э ш


адресов перехода T A C (Target Address Cache), содержащий п о одной стро­
ке на связку, емкостью 64 строки, регистр адресов перехода T A R (Target
Address Register), содержащий п о одной строке на пару связок, емкостью 4
строки, буфер адресов возврата R S B (Return Stack Buffer), используемый
для команд перехода с возвратом, емкостью 8 строк. Д л я переходов отно­
сительно счетчика команд IP имеется два блока корректоров адреса пере¬
хода.
Содержимое T A R устанавливается командой предсказания перехода
brp с суффиксом imp. Если в T A R указан соответствующий п р и з н а к попа­
д а н и я , переход будет выполнен безотносительно к тому, что имеется в
В Р Т / М В Р Т . T A R содержит н е только признак, н о и адрес перехода. Пред¬
сказание T A R может игнорироваться только предиктором ц и к л о в (то есть
когда счетчик цикла указывает, что нужно выйти и з цикла).
К э ш ТАС заполняется командами перехода или аппаратурой пред­
сказания переходов Itanium. Если в М В Р Т / В Р Т имеется п р и з н а к попада­
н и я , ТАС предоставляет соответствующий адрес перехода.
Таким образом, от М В Р Т / В Р Т зависит, должен л и происходить пе¬
реход, а адрес берется из ТАС. Если ж е переход отсутствует в М В Р Т / В Р Т ,
но в ТАС есть п р и з н а к попадания, переход будет осуществлен.
Если д а н н ы е о переходе в В Р Т / М В Р Т отсутствуют, может использо¬
ваться статическое предсказание, кодируемое в команде перехода.

Краткие итоги. В лекции рассмотрены классические направления


п о в ы ш е н и я производительности микропроцессоров, показаны их огра­
н и ч е н и я . Представлены современные пути развития универсальных мик¬
ропроцессоров. Подробно рассмотрены микропроцессоры Polaris, реали¬
зующие многоядерную архитектуру М П , и Itanium с архитектурой E P I C .

155
Курс Архитектура микропроцессоров

Лекция 12. Микропроцессоры с RISC-архитектурой

Цель лекции: изучить основные п р и н ц и п ы построения R I S C - м и к р о -


процессоров.

Идеология RISC-архитектуры построения процессоров (Reduced


Instruction Set Computing — вычисления с с о к р а щ е н н ы м набором команд)
складывалась в к о н ц е 1970-х — начале 1980-х годов, когда потребовались
новые идеи для п о в ы ш е н и я производительности процессоров. Выводы
различных групп исследователей были о б о б щ е н ы в виде т а к называемого
правила «80/20»: 80 % времени выполнения программ занимает выполне­
н и е 20 % команд, входящих в состав системы команд. То есть в определе­
н и и производительности процессора основную роль играет л и ш ь пятая
часть всех команд, остальные ж е команды встречаются достаточно редко,
и время их выполнения существенного в л и я н и я на производительность
процессора н е оказывает. Исходя из этого было принято решение постро­
ить процессор, в котором выделенная небольшая группа команд выпол­
нялась бы максимально быстро за счет ее аппаратной реализации, а о с ­
тальные команды либо вообще удалялись и з системы команд, либо реали-
зовывались на микропрограммном уровне.
Сложившаяся в результате этого идеология RISC-архитектуры о п и ­
ралась на следующие принципы:
• набор команд сокращен до 70—100 команд (вместо нескольких с о ­
тен у CISC-микропроцессоров);
• большинство команд выполняется за 1 такт, и л и ш ь немногие — за
несколько или даже несколько десятков тактов;
• все к о м а н д ы обработки данных оперируют только содержимым
регистров процессора, а для обращения к более медленной опера­
тивной памяти предусмотрены исключительно инструкции вида
«загрузить в регистр» и «записать в память»;
• команды имеют простой, четко заданный формат;
• из набора команд и с к л ю ч е н ы редко используемых инструкции, а
также команд, н е вписывающихся в п р и н я т ы й формат;
• состав системы команд должен быть удобным для п р и м е н е н и я оп -
тимизирующих компиляторов с я з ы к о в высокого уровня.
Такой подход позволил у м е н ь ш и т ь объем аппаратуры процессора
за счет с о к р а щ е н и я блока управления п р и м е р н о в 10 раз, существенно
увеличить тактовую частоту работы процессора и снизить его тепловы¬
деление.
Несмотря на свое название, основой RISC-архитектуры является то,
что вся обработка сосредоточена только во внутренних регистрах микро¬
процессора.

156
Лекция 12 Микропроцессоры с RISC-архитектурой

Так как вся обработка проходит в регистрах, отпадает необходимость


в большом количестве режимов адресации операндов, а в системе команд
м о ж н о применять трехадресные команды, наиболее э ф ф е к т и в н ы е с точ­
ки зрения организации вычислительного процесса и в то ж е время не
и м е ю щ и е их главного недостатка — большой д л и н ы команды. Простой
формат команды легко поддается декодированию на соответствующей
ступени работы конвейера. Вспомним, что длина команды в CISC-архи­
тектуре IA-32 меняется в пределах от 1 до 15 байт, а наличие, формат и на­
значение многих полей команды неоднозначны и определяются структу¬
рой других полей.
Естественно, что этот подход потребовал использования в м и к р о ­
процессоре регистровой памяти большого объема (до 128 регистров). А
для обеспечения согласованной работы быстрых внутренних конвейеров
и относительно медленной оперативной памяти в R I S C - м и к р о п р о ц е с с о ­
рах предусматривается к э ш - п а м я т ь большой емкости.
Наличие большого количества регистров создает хорошую основу
для работы оптимизирующих компиляторов, которые позволяют эффек¬
т и в н о использовать все конвейеры микропроцессора.
Простой формат команды и ориентация на регистровую обработку
позволили безболезненно внедрить в RISC-процессорах конвейерный
принцип обработки и н ф о р м а ц и и .
Такая организация обеспечила существенное п о в ы ш е н и е произво­
дительности RISC-микропроцессоров по сравнению с микропроцессора­
ми CISC-архитектуры. Это привело к преобладанию М П данного типа в
тех областях, где производительность являлась основополагающим ф а к ­
тором, например, в серверах. В то ж е время о н и не н а ш л и своего места на
наиболее развитом р ы н к е вычислительной техники — р ы н к е персональ¬
ных компьютеров. Тому есть несколько причин:
• дороговизна RISC-процессоров и систем на их основе: изначаль¬
но эти процессоры были ориентированы на м о щ н ы е рабочие
станции и серверы, поэтому разработчики использовали в них ре¬
ш е н и я , с л и ш к о м дорогие для персональных компьютеров; даже
специальные, «дешевые» варианты RISC-компьютеров стоили го­
раздо дороже сравнимых с н и м и П К на базе процессоров Intel по
п р и ч и н е малых объемов производства;
• отсутствие широких наработок в области программного обеспече¬
ния: традиционной операционной системой для персональных
компьютеров была D O S , к ней впоследствии присоединились 16-
разрядные версии Windows, под которые написано огромное к о ­
личество популярных и хорошо знакомых пользователям п р о ­
грамм. Различные R I S C - п л а т ф о р м ы обычно использовали несо­
в м е с т и м ы е между с о б о й р а з н о в и д н о с т и U n i x , д л я к о т о р ы х

157
Курс Архитектура микропроцессоров

существовало значительно м е н ь ш е программ, главным образом


научно-технических (для рабочих станций) либо сетевых п р и л о ­
ж е н и й (для серверов);
• RISC-процессоры по своему основополагающему положению об­
ладают несовместимыми с х86 наборами команд, поэтому единст­
в е н н ы м способом исполнения кода х86 была эмуляция, которая
снижала производительность от десятков до сотен процентов, что
сводило на нет скоростные преимущества RISC-процессоров;
• отсутствие интереса к п р о н и к н о в е н и ю на этот р ы н о к у самих про¬
изводителей RISC-систем: многие «серьезные» ф и р м ы вроде D E C
или Sun полагали, что нет нужды удешевлять свои R I S C - с т а н ц и и ,
потому что пользователи все равно выберут их системы из-за оче¬
видных технических преимуществ.
Развитие архитектуры RISC-микропроцессоров шло по нескольким
направлениям. За счет п о в ы ш е н и я технологических возможностей п р о ­
изводства микропроцессоров смягчились требования к составу и ф о р м а ­
там используемых команд. В настоящее время их системы команд р а с ш и ­
рились с первоначальных 70—100 до 100—120. Увеличилось также и коли¬
чество используемых ф о р м а т о в к о м а н д . Однако о с н о в н о й п р и н ц и п
RISC-архитектуры остается неизменным: обработка данных выполняется
только над содержимым внутренних регистров М П без обращения к опе­
ративной памяти.
Вместо требования выполнения команды за один такт используется
требование получения очередного результата в очередном такте работы,
то есть фактически закреплен принцип конвейерной обработки данных.
Для обработки данных микропроцессоры получили не один, а не¬
сколько конвейеров со своими исполнительными устройствами.
Наиболее известными RISC-микропроцессорами в настоящее время
являются М П семейства S P A R C ф и р м ы Sun Microsystems, Alpha 21х64
ф и р м ы Digital Equipment и Rx000 ф и р м ы M I P S Computer Systems. За п о ­
следние годы активно внедряются в различную аппаратуру R I S C - м и к р о ­
процессоры семейства PowerPC. Среди ф и р м , выпускающих R I S C - м и к ­
ропроцессоры, находятся также Intel, Hewlett Packard.
С о в м е с т н ы й проект к о м п а н и й Apple, Motorola и I B M — микро¬
п р о ц е с с о р PowerPC (Performance Optimization With Enhanced R I S C ) —
был о р и е н т и р о в а н на с о з д а н и е недорогого, н о м о щ н о г о R I S C - п р о ц е с ­
сора и п л а т ф о р м ы для него. Д о п о я в л е н и я архитектуры Intel NetBurst
п р о ц е с с о р ы PowerPC почти всегда превосходили ч и п ы Intel в скорости
в ы ч и с л е н и й с п л а в а ю щ е й т о ч к о й на д е с я т к и п р о ц е н т о в , п р и этом п о ­
требляя н а м н о г о м е н ь ш у ю м о щ н о с т ь . П о р а з л и ч н ы м п р и ч и н а м на за¬
к л ю ч и т е л ь н о й стадии этого п р о е к т а среди р а з р а б о т ч и к о в осталась
лишь компания I B M .

158
Лекция 12 Микропроцессоры с RISC-архитектурой

Рассмотрим организацию работы RISC-микропроцессора на п р и м е ­


ре М П Power4 ф и р м ы I B M , который является логическим развитием ар¬
хитектуры PowerPC. М и к р о п р о ц е с с о р ы Power4 содержат свыше 180 м л н
транзисторов на кристалле и выпускаются с частотами до 1,7 ГГц п р и д о ­
статочно н и з к о м для высокопроизводительных процессоров уровне э н е р ­
гопотребления (70 Вт). С точки зрения производительности о н и остают­
ся о с н о в н ы м и и практически единственными конкурентами 64-разряд¬
ных микропроцессоров архитектуры IA-64. Структура микропроцессора
Power4 представлена на рис. 12.1.

Коммутатор C I U
л А Л

г г

]ч с и
] "Сэш Кэш Кэш М гтт
L2 L2 L2
л А Л А


^ К другим
£ микросхемам

>мсм-мсм

Рис. 12.1. Структура микропроцессора Power4

Оставаясь по своей сути RISC-микропроцессором, Power4 в то же


время имеет много особенностей. Отметим две главные из них.
Во- первых, Power4 стал первым микропроцессором, в котором была
реализована идея размещения нескольких процессорных ядер на одной
микросхеме. В состав М П Power4 входят два однотипных процессорных
ядра.
Во-вторых, на кристалле Power4 содержатся интегрированные аппа­
ратные средства, определяющие важные архитектурные черты м и к р о п р о -

159
Курс Архитектура микропроцессоров

цессорных систем на его основе. В числе этих средств порты каналов, на¬
прямую связывающих Power4 с другими процессорами внутри так н а з ы ­
ваемого микросхемного модуля (Multi-Chip Module — M C M ) , канал вво­
да-вывода (шина G X ) , интегрированный контроллер ш и н ы оперативной
памяти и к э ш а третьего уровня, разделяемого всеми процессорами M C M .
К а ж д ы й двухъядерный процессор Power4 упакован в керамический муль­
типроцессорный модуль вместе с тремя другими М П . Такой микросхем­
н ы й модуль M C M , содержащий четыре М П Power4, в итоге объединяет
восемь процессоров.
Структура ядра М П Power4 представлена на рис. 12.2.

Рис. 12.2. Структура ядра микропроцессора Power4

В составе каждого ядра Power4 имеется 8 конвейеризованных испол­


нительных устройств (executive unit — E U ) :
• два устройства обработки чисел с плавающей точкой (FP E U ) ,
каждое из которых может выполнять команды «умножить-и-сло-

160
Лекция 12 Микропроцессоры с RISC- архитектурой

жить», что дает 4 результата с плавающей точкой за такт. Опера¬


ц и и извлечения квадратного корня и деления с плавающей запя¬
той н е конвейеризованы;
• два устройства для работы с числами с ф и к с и р о в а н н о й запятой
( F X E U ) , деление может выполняться только в одном из устройств
FX EU;
• два устройства загрузки регистров / сохранения ( L D E U ) , которые
выполняют арифметические действия по генерации адресов па­
мяти;
• устройство обработки команд переходов ( B R E U ) ;
• устройство в ы п о л н е н и я логических операций с регистром усло¬
вий ( C R E U ) .
Для обеспечения возможности внеочередного в ы п о л н е н и я п р и м е ­
няются несколько специальных очередей к исполнительным устройствам
(IQ), в том числе очередь StQ для команд сохранения.
К а ж д о е и з я д е р имеет свой к э ш первого у р о в н я , о т д е л ь н ы й д л я
к о м а н д ( I - к э ш ) и д а н н ы х ( D - к э ш ) . I - к э ш е м к о с т ь ю 64 К б а й т я в л я е т с я
п р я м о а д р е с у е м ы м и может читать и л и п и с а т ь 32 байта за такт, ч т о э к ­
в и в а л е н т н о 8 к о м а н д а м . О н использует F I F O - а л г о р и т м з а м е щ е н и я
д а н н ы х . D - к э ш первого у р о в н я е м к о с т ь ю 32 К б а й т имеет д в у х к а н а л ь -
н у ю о р г а н и з а ц и ю , ч т о способствует у в е л и ч е н и ю э ф ф е к т и в н о с т и ис¬
п о л ь з о в а н и я его е м к о с т и п о с р а в н е н и ю с п р я м о а д р е с у е м о й о р г а н и з а ­
цией I-кэша.
К э ш второго уровня у ядер общий. Он является уже 8-канальным и
имеет относительно небольшую емкость 1,4 Мбайт. Это, однако, к о м п е н ­
сируется использованием с Power4 к э ш а третьего уровня большой емкос­
ти (32 Мбайт на двухъядерную микросхему Power4 или 128 Мбайт на м и ­
кросхемный модуль M C M и з четырех М П ) . К э ш второго уровня органи¬
зован в виде трех независимых блоков, каждый со своим контроллером и
интерфейсом доступа со стороны ядра (core interface unit — C I U ) . Распре­
деление обработки запросов в к э ш второго уровня между тремя блоками
способствует увеличению производительности. Каждое ядро имеет п о три
порта к C I U (для выборки команд — IF, загрузки регистров — L D и сохра­
н е н и я данных — ST). Контроллеры к э ш а второго уровня работают о д н о ­
временно, обрабатывая по 32 байта за такт процессора. Д л я поддержания
согласованного представления данных в к э ш е второго уровня использу­
ется р а с ш и р е н н ы й протокол M E S I , включающий 7 состояний. К э ш - п а ­
мять второго уровня разделяется н е только двумя процессорами кристал¬
ла, н о также и в н е ш н и м и процессорами других кристаллов микросхемно¬
го модуля через л и н и и связи ш и р и н о й 16 байт, работающими на частоте
более 500 МГц. Логической частью к э ш а второго уровня являются два так
называемых н е к э ш и р у ю щ и х устройства (non-caching unit — N C U ) , к а ж -

161
Курс Архитектура микропроцессоров

дое п р и п и с а н н о е к своему процессору. NCU-устройства отвечают за се-


риализацию команд и в ы п о л н е н и е некэшируемых операций в иерархии
памяти.
Через специальное устройство — «контроллер фабрики» (fabric con­
troller — F C ) д а н н ы е могут быть направлены в к э ш третьего уровня и опе­
ративную память. Весь ввод-вывод осуществляется через контроллер ши¬
н ы G X , и м е ю щ и й порт к F C .
Порт кристалла Power4, предназначенный для подключения к э ш ­
памяти 3-го уровня, имеет ширину 16 байт для каждого из двух направле­
н и й пересылки данных. Порт функционирует на 1/3 от тактовой частоты
процессоров кристалла, что обеспечивает пропускную способность к па¬
мяти на уровне 10 Гбайт/с. Следует отметить, что хотя к э ш третьего уров­
ня является в н е ш н и м по о т н о ш е н и ю к М П , его теги расположены внутри
кристалла, что сокращает время поиска нужной и н ф о р м а ц и и . К э ш треть­
его уровня является о б щ и м для модуля M C M , который может содержать
кроме микросхемы к э ш а третьего уровня четыре микросхемы Power4. Для
передачи данных между микросхемами Power4, входящими в М С М , в F C
предусмотрены выделенные порты, ориентированные на создание муль-
тимикропроцессорной системы.
Для обращения к оперативной памяти используется буфер ассоциа­
тивной трансляции страничного адреса T L B . В T L B поддерживаются
страницы памяти емкостью не только 4 Кбайт, но и 16 Мбайт. П о м и м о
этого имеется ассоциативный буфер таблицы сегментов S L B (Segment
Lookaside Buffer) емкостью 64 строки.

Микропроцессор Power4 несет в себе все черты RISC-архитектуры.


О н имеет 32 регистра общего назначения и 32 регистра для работы с ч и с ­
лами с плавающей точкой. Все вычисления производятся в регистрах, а
не в основной памяти. Система команд — трехадресная. Некоторое пред¬
ставление о ней дают следующие команды:

ld R A , 0(RB); загрузить в R A число из ячейки памяти, адрес которой


задан в R B
add R A , R B , R C ; R A = R B + R C

Каждая команда имеет длину 32 бита. Первые 6 бит определяют код


операции, а остальные имеют различное значение, зависящее от к о м а н ­
ды. Тот факт, что команды имеют ф и к с и р о в а н н у ю длину, позволяет п р о ­
цессору выполнять их более э ф ф е к т и в н о . Отметим, что все вычислитель¬
н ы е к о м а н д ы используют первый аргумент как место приемника резуль¬
тата. Регистры во всех этих командах обозначаются только их номерами.
Н а п р и м е р , команда, загружающая число 12 в регистр 5, имеет вид l i 5, 12.

162
Лекция 12 Микропроцессоры с RISC- архитектурой

Зная формат команды, м о ж н о определить, что 5 — это номер регистра, а


12 — это число. Н и к а к и х других указателей на это нет.
Система команд Power4 имеет максимальное для R I S C - м и к р о п р о ­
цессоров число команд, выполняемых за один такт, включая одну коман¬
ду перехода.
Сохранение в Power4 системы команд PowerPC, связанное с под­
держкой двоичного кода пользователей, потребовало п р и м е н е н и я н е
только однотактных команд, н о и микропрограмм и даже прерываний для
программной реализации наиболее сложных инструкций.
На стадии подготовки к и с п о л н е н и ю R I S C - к о м а н д ы архитектуры
PowerPC декодируются в так называемые внутренние микрооперации
(IOP). Таким образом, IOP есть аналог микроопераций в Pentium 4 (uops).
Однако в отличие от Pentium 4, I O P - к о м а н д ы , к а к правило, совпадают с
о б ы ч н ы м и командами PowerPC.
IOP содержат только команды, которые читают н е более двух регис¬
тров и пишут н е более чем в один регистр. И с к л ю ч е н и е сделано для н е к о ­
торых команд с плавающей точкой типа «умножить-и-сложить», в кото­
рых применяется три регистра-источника. Другие команды п р и необхо­
димости разбиваются на последовательность IOP-команд. Так, команда
загрузки нескольких слов в регистры преобразуется в несколько I O P - к о -
манд загрузки одного слова.
На начальных стадиях конвейера проверяются возможные взаимоза­
висимости команд (например, п о д а н н ы м ) , препятствующие их одновре­
менному и с п о л н е н и ю , и планируется объединение команд в группы. Так
что реально в микропроцессоре исполняются внутренние команды, кото­
р ы е объединяются в группы п о 5 команд. За один такт 5 команд из одной
группы пересылаются в очереди выполнения. Выборка I O P - к о м а н д из
очередей на в ы п о л н е н и е в исполнительные устройства E U может осуще¬
ствляться во внеочередном порядке. За один такт может завершиться
только одна группа команд. Это подразумевает завершение выполнения с
ф и к с а ц и е й результатов н е только всех команд д а н н о й группы, н о и всех
предшествующих групп. Д л я управления группами используется таблица
завершения групп G C T емкостью 20 строк, в каждой из которых содер­
жится адрес первой команды группы и и н ф о р м а ц и я о завершении команд
группы. Одновременно в Power4 может находиться на разных стадиях в ы ­
полнения до 215 команд, а в Pentium 4 — до 126 микрокоманд.
Процессоры Power4 являются суперскалярными, и м е ю щ и м и к о н ­
вейер д л и н о й 15 стадий и осуществляющими внеочередное спекулятив­
н о е исполнение команд с использованием техники переименования ре¬
гистров.
Для современных суперскалярных микропроцессоров, и м е ю щ и х
д л и н н ы е конвейеры, высокая точность предсказания переходов крайне

163
Курс Архитектура микропроцессоров

важна, а методы предсказания переходов быстро развиваются. За один


такт процессор может выбрать и з I-кэша и запустить на в ы п о л н е н и е до 8
команд, н о «поддерживаемый темп», то есть число команд, завершающих
в ы п о л н е н и е за один такт, равен 5. Логика предсказания переходов скани -
рует их, и за один такт может обработать до 2 команд перехода.
Подобно другим современным RISC-процессорам, в Power4 задей­
ствовано несколько механизмов предсказания переходов, включая стати¬
ческое и динамическое предсказание. П р и этом направление безуслов¬
ных переходов н е предсказывается, а направление условных переходов
предсказывается всегда. Д л я переходов, используемых п р и вызовах под­
программ, применяется специальный стек адресов, а для команд перехо­
дов в цикле используется особый к э ш счетчика. Запись в этот к э ш , к а к и
в стек адресов перехода п р и вызовах подпрограмм, происходит, если на
это есть указание в коде программы.
Для динамического предсказания в Power4 используются три табли­
ц ы истории переходов. Первая — традиционная таблица истории перехо­
дов емкостью 16К строк, индексом в которой является адрес команды п е ­
рехода. Вторая таблица связана с уникальной особенностью диспетчери-
рования команд в Power4 группами п о 5 команд. Эта таблица также
содержит 16К строк и отслеживает путь выполнения программы, приводя­
щ и й к переходу. Этот путь выполнения представлен 11-разрядным векто­
ром глобальной истории, по 1 биту на группу команд для всех предыдущих
выбранных 11 групп. Наконец, третья таблица — таблица селектора —
имеет те ж е самые 16К строк, в которых отслеживается, какая из двух схем
предсказания работает лучше. Н а ее основе генерируется окончательное
предсказание переходов.
Динамическое предсказание переходов может быть отменено стати¬
ческим, генерируемым программно, для чего используются два ранее за­
резервированных бита в командах условного перехода. Если эти биты о б ­
нулены, используется аппаратное динамическое предсказание.
К о н е ч н ы м результатом работы логики предсказания переходов я в ­
ляется загрузка в регистр I F A R адреса выбираемой команды.

Краткие итоги. В лекции рассмотрены п р и н ц и п ы построения и раз­


вития архитектуры RISC-процессоров. Рассмотрена архитектура м и к р о ­
процессора Power4, сочетающего в себе RISC-архитектуру и многоядер-
ность.

164
Лекция 13 Многопроцессорные и многомашинные вычислительные системы

Лекция 13. Многопроцессорные и многомашинные


вычислительные системы

Цель лекции: рассмотреть способы организации и области п р и м е н е ­


н и я многопроцессорных и м н о г о м а ш и н н ы х вычислительных систем.

В настоящее время тенденция в развитии микропроцессоров и сис¬


тем, построенных на их основе, направлена на все большее п о в ы ш е н и е их
производительности. Вычислительные возможности любой системы до¬
стигают своей наивысшей производительности благодаря двум факторам:
использованию высокоскоростных элементов и параллельному выполне¬
н и ю большого числа операций. Направления, связанные с п о в ы ш е н и е м
производительности отдельных микропроцессоров, м ы рассматривали в
предыдущих лекциях, а в этой л е к ц и и остановимся на вопросах распарал­
леливания обработки и н ф о р м а ц и и .
Существует несколько вариантов к л а с с и ф и к а ц и и систем параллель¬
н о й обработки данных. По-видимому, самой ранней и наиболее извест¬
н о й является классификация архитектур вычислительных систем, пред­
ложенная в 1966 году М. Ф л и н н о м . К л а с с и ф и к а ц и я базируется на п о н я ­
тии потока, под которым понимается последовательность элементов,
команд или данных, обрабатываемая процессором. Н а основе числа пото­
ков команд и потоков данных выделяются четыре класса архитектур:
SISD, M I S D , S I M D , M I M D .
SISD (single instruction stream /single data stream) — одиночный поток
команд и одиночный поток данных. К этому классу относятся прежде
всего классические последовательные м а ш и н ы , и л и , иначе, м а ш и н ы
ф о н - н е й м а н о в с к о г о типа. В таких м а ш и н а х есть только один поток ко¬
манд, все команды обрабатываются последовательно друг за другом и
каждая команда инициирует одну операцию с одним потоком данных. Н е
имеет значения тот факт, что для увеличения скорости обработки команд
и скорости выполнения арифметических операций процессор может ис¬
пользовать конвейерную обработку. В таком п о н и м а н и и м а ш и н ы данно¬
го класса фактически н е относятся к параллельным системам.
S I M D (single instruction stream / multiple data stream) — одиночный по¬
т о к команд и множественный поток данных. Применительно к одному
микропроцессору этот подход реализован в M M X - и S S E - расширениях
современных м и к р о п р о ц е с с о р о в . М и к р о п р о ц е с с о р н ы е системы типа
S I M D состоят из большого числа идентичных процессорных элементов,
имеющих собственную память. Все процессорные элементы в такой ма­
ш и н е выполняют одну и ту ж е программу. Это позволяет выполнять одну
арифметическую операцию сразу над многими д а н н ы м и — элементами

165
Курс Архитектура микропроцессоров

вектора. Очевидно, что такая система, составленная и з большого числа


процессоров, может обеспечить существенное п о в ы ш е н и е производи¬
тельности только на тех задачах, п р и р е ш е н и и которых все процессоры
могут делать одну и ту ж е работу.
M I S D (multiple instruction stream / single data stream) — множественный
поток команд и одиночный поток данных. Определение подразумевает
наличие в архитектуре многих процессоров, обрабатывающих один и тот
ж е поток данных. Р я д исследователей к данному классу относят конвей¬
ерные м а ш и н ы .
M I M D (multiple instruction stream / multiple data stream) — множествен¬
н ы й поток команд и множественный поток данных. Базовой моделью в ы ­
числений в этом случае является совокупность независимых процессов,
эпизодически обращающихся к разделяемым д а н н ы м . В такой системе
каждый процессорный элемент выполняет свою программу достаточно
независимо от других процессорных элементов. Архитектура M I M D дает
большую гибкость: п р и наличии адекватной поддержки со стороны аппа¬
ратных средств и программного обеспечения M I M D может работать к а к
однопользовательская система, обеспечивая высокопроизводительную
обработку данных для одной прикладной задачи, к а к многопрограммная
м а ш и н а , в ы п о л н я ю щ а я множество задач параллельно, и к а к некоторая
к о м б и н а ц и я этих возможностей. К тому ж е архитектура M I M D может ис¬
пользовать все преимущества современной микропроцессорной техноло¬
гии на основе строгого учета соотношения стоимость/производитель¬
ность. В действительности практически все современные многопроцес¬
сорные системы строятся на тех ж е микропроцессорах, которые м о ж н о
найти в персональных компьютерах, рабочих станциях и небольших од¬
нопроцессорных серверах.

К а к и любая другая, приведенная в ы ш е классификация несовер­


шенна: существуют м а ш и н ы , п р я м о в нее н е попадающие, имеются так¬
ж е важные п р и з н а к и , которые в этой к л а с с и ф и к а ц и и н е учтены. Рассмо¬
трим к л а с с и ф и к а ц и ю многопроцессорных и м н о г о м а ш и н н ы х систем на
основе другого признака — степени разделения вычислительных ресурсов
системы.
В этом случае выделяют следующие 4 класса систем:
• системы с симметричной мультипроцессорной обработкой (sym­
metric multiprocessing), или SMP-системы;
• системы, построенные п о технологии неоднородного доступа к
памяти (non-uniform memory access), и л и N U M A - с и с т е м ы ;
• кластеры;
• системы вычислений с массовым параллелизмом (massively paral­
lel processor), или M P P - с и с т е м ы .

166
Лекция 13 Многопроцессорные и многомашинные вычислительные системы

Самым высоким уровнем интеграции ресурсов обладает система с сим¬


метричной мультипроцессорной обработкой, или SMP-система (рис. 13.1).
В этой архитектуре все процессоры имеют равноправный доступ ко всему
пространству оперативной памяти и ввода/вывода. Поэтому SMP-архи-
тектура называется симметричной. Ее интерфейсы доступа к пространст­
ву ввода/вывода и О П , система управления к э ш - п а м я т ь ю , системное П О
и т. п. построены таким образом, чтобы обеспечить согласованный доступ
к разделяемым ресурсам. Соответствующие механизмы блокировки зало¬
ж е н ы и в ш и н н о м интерфейсе, и в компонентах операционной системы,
и при построении кэша.

Рис. 13.1. Система с симметричной мультипроцессорной обработкой

С точки зрения прикладной задачи, SMP-система представляет со¬


бой единый вычислительный комплекс с вычислительными ресурсами,
п р о п о р ц и о н а л ь н ы м и количеству процессоров. Распараллеливание вы¬
числений обеспечивается операционной системой, установленной на од­
н о м из процессоров. Вся система работает под управлением единой О С
( о б ы ч н о U N I X - п о д о б н о й , н о для I n t e l - п л а т ф о р м п о д д е р ж и в а е т с я
Windows N T ) .
О С автоматически в процессе работы распределяет процессы по
процессорным ядрам, оптимизируя использование ресурсов. Ядра задей-
ствуются равномерно, и прикладные программы могут выполняться па­
раллельно на всем множестве ядер. П р и этом достигается максимальное
быстродействие системы. Важно, что для синхронизации приложений
вместо сложных механизмов и протоколов межпроцессорной к о м м у н и -

167
Курс Архитектура микропроцессоров

кации применяются стандартные ф у н к ц и и ОС. Таким образом, п р о щ е


реализовать проекты с распараллеливанием программных потоков. Об¬
щая для совокупности ядер О С позволяет с п о м о щ ь ю служебных инстру­
ментов собирать статистику, единую для всей архитектуры. Соответствен¬
но, м о ж н о облегчить отладку и оптимизацию приложений на этапе разра¬
ботки или м а с ш т а б и р о в а н и я для других ф о р м м н о г о п р о ц е с с о р н о й
обработки.
В общем случае приложение, н а п и с а н н о е для однопроцессорной си¬
стемы, не требует м о д и ф и к а ц и и при его переносе в мультипроцессорную
среду. Однако для оптимальной работы программы или частей О С они п е ­
реписываются специально для работы в мультипроцессорной среде.
Сравнительно небольшое количество процессоров в таких машинах
позволяет иметь одну централизованную общую память и объединить
процессоры и память с п о м о щ ь ю одной ш и н ы .
Сдерживающим фактором в подобных системах является пропуск­
ная способность магистрали, что приводит к их плохой масштабируемос­
ти. П р и ч и н о й этого является то, что в каждый момент времени ш и н а спо¬
собна обрабатывать только одну транзакцию, вследствие чего возникают
проблемы разрешения к о н ф л и к т о в при одновременном обращении н е ­
скольких процессоров к одним и тем ж е областям общей физической па­
мяти. Вычислительные элементы начинают мешать друг другу. Когда п р о ­
изойдет такой конфликт, зависит от скорости связи и от количества в ы ­
ч и с л и т е л ь н ы х э л е м е н т о в . К р о м е того, с и с т е м н а я ш и н а имеет
ограниченное число слотов. Все это очевидно препятствует увеличению
производительности при увеличении числа процессоров. В реальных си¬
стемах м о ж н о задействовать не более 32 процессоров.
В современных микропроцессорах поддержка построения мульти­
процессорной системы закладывается на уровне аппаратной реализации
М П , что делает многопроцессорные системы сравнительно недорогими.
Так, для обеспечения возможности работы на общую магистраль каждый
микропроцессор ф и р м ы Intel начиная с Pentium Pro имеет встроенную
поддержку двухразрядного и д е н т и ф и к а т о р а п р о ц е с с о р а — A P I C
(Advanced Programmable Interrupt Controller). П о умолчанию C P U с самым
высоким номером идентификатора становится процессором начальной
загрузки. Такая и д е н т и ф и к а ц и я облегчает арбитраж ш и н ы данных в
SMP-системе. П о д о б н ы е средства м ы видели и в М П Power4, где на аппа­
ратном уровне поддерживается создание микросхемного модуля M C M из
4 микропроцессоров, включающего в совокупности 8 процессорных ядер.
Сегодня S M P ш и р о к о применяют в многопроцессорных суперком­
пьютерах и серверных приложениях. Однако если необходимо детерми¬
нированное исполнение программ в реальном масштабе времени, напри¬
мер, при визуализации мультимедийных данных, возможности сугубо

168
Лекция 13 Многопроцессорные и многомашинные вычислительные системы

симметричной обработки весьма ограничены. Может возникнуть ситуа¬


ция, когда приложения, выполняемые на различных ядрах, обращаются к
одному ресурсу ОС. В этом случае доступ получит только одно из ядер.
Остальные будут простаивать до высвобождения критической области.
Естественно, при этом резко снижается производительность приложений
реального времени.
Исчерпание производительности системной ш и н ы в SMP-системах
при доступе большого числа процессоров к общему пространству опера¬
тивной памяти и п р и н ц и п и а л ь н ы е ограничения ш и н н о й технологии ста­
ли п р и ч и н о й сдерживания роста производительности SMP-систем. Н а
д а н н ы й момент эта проблема получила два решения. Первое — замена
системной ш и н ы на высокопроизводительный коммутатор, обеспечива¬
ю щ и й одновременный неблокирующий доступ к различным участкам па¬
мяти. Второе решение предлагает технология NUMA.
Система, построенная по технологии NUMA, представляет собой набор
узлов, каждый из которых, по сути, является функционально законченным
однопроцессорным или SMP-компьютером. Каждый имеет свое локальное
пространство оперативной памяти и ввода/вывода. Н о с помощью специ­
альной логики каждый имеет доступ к пространству оперативной памяти и
ввода/вывода любого другого узла (рис. 13.2). Физически отдельные устрой­
ства памяти могут адресоваться как логически единое адресное пространст­
во — это означает, что любой процессор может выполнять обращения к л ю ­
бым ячейкам памяти, в предположении, что он имеет соответствующие пра­
ва доступа. Поэтому иногда такие системы называются системами с
распределенной разделяемой памятью ( D S M — distributed shared memory).

Рис. 13.2. Система, построенная по технологии неоднородного д о ­


ступа к памяти

169
Курс Архитектура микропроцессоров

П р и такой организации память каждого узла системы имеет свою ад¬


ресацию в адресном пространстве всей системы. Логика доступа к ресур¬
сам определяет, к памяти какого узла относится выработанный процессо­
р о м адрес. Если он не принадлежит памяти данного узла, организуется
обращение к другому узлу согласно заложенной в логике доступа карте
адресов. П р и этом доступ к локальной памяти осуществляется в несколь¬
ко раз быстрее, чем к удаленной.
П р и использовании наиболее распространенного сейчас варианта
c c - N U M A (cache-coherent NUMA — неоднородный доступ к памяти с с о ­
гласованием содержимого к э ш - п а м я т и ) обеспечивается к э ш и р о в а н и е
данных оперативной памяти других узлов.
Обычно вся система работает под управлением единой О С , как в
SMP. Возможны также варианты динамического разделения системы,
когда отдельные разделы системы работают под управлением разных ОС.
Довольно большое время доступа к оперативной памяти соседних
узлов по сравнению с доступом к О П своего узла в NUMA-системах на н а ­
стоящий момент делает такое использование не вполне оптимальным.
Так что полной функциональностью SMP-систем N U M A - к о м п ь ю т е р ы на
сегодняшний день не обладают. Однако среди систем общего назначения
NUMA-системы имеют один из наиболее высоких показателей по мас­
штабируемости и, соответственно, по производительности. Н а сегодня
максимальное число процессоров в c c - N U M A - с и с т е м а х может превы­
шать 1000 (серия Origin3000). Один из наиболее производительных супер­
компьютеров — Tera 10 — имеет производительностью 60 Тфлопс и состо­
ит из 544 SMP-узлов, в каждом из которых находится от 8 до 16 процессо¬
ров Itanium 2.

Следующим уровнем в иерархии параллельных систем являются


комплексы, также состоящие из отдельных м а ш и н , но л и ш ь частично
разделяющие некоторые ресурсы. Речь идет о кластерах.
Кластер представляет собой систему из нескольких компьютеров (в
большинстве случаев серийно выпускаемых), имеющих о б щ и й разделяе­
м ы й ресурс для хранения совместно обрабатываемых данных (обычно на¬
бор дисков или дисковых массивов) и объединенных высокоскоростной
магистралью (рис. 13.3).
В кластерной системе некоторое распределенное приложение па¬
раллельно на нескольких узлах обрабатывает о б щ и й набор данных, как
правило, таким образом, чтобы у пользователя возникла иллюзия работы
на одной м а ш и н е .
Обычно в кластерных системах не обеспечивается единая операци­
о н н а я среда для работы общего набора приложений на всех узлах класте­
ра. То есть каждый компьютер кластера — это автономная система с от-

170
Лекция 13 Многопроцессорные и многомашинные вычислительные системы

Рис. 13.3. Структура кластера

дельным экземпляром О С и своими, принадлежащими только ей систем¬


н ы м и ресурсами: набором заведенных пользователей, системными буфе¬
рами, областью свопинга и т. п. Приложение, запущенное на нем, может
видеть только общие диски или отдельные участки памяти. Н а узлах кла­
стера работают специально н а п и с а н н ы е для такой конфигурации п р и л о ­
ж е н и я , параллельно обрабатывающие о б щ и й набор данных. Н а каждой
из м а ш и н о н и представлены рядом процессов, программ, взаимодейству­
ющих с п о м о щ ь ю кластерного программного обеспечения. Таким обра­
зом, кластерное П О — это л и ш ь средство для взаимодействия узлов и
синхронизации доступа к о б щ и м д а н н ы м . Кластер к а к параллельная сис­
тема формируется на прикладном уровне, а не на уровне операционной
системы.
В настоящее время такие системы имеют две основные области п р и ­
менения: параллельные серверы баз данных и высоконадежные вычисли­
тельные комплексы. Р ы н о к параллельных СУБД и есть фактически р ы ­
н о к кластеров приложений. Высоконадежные комплексы представляют
собой группу узлов, на которых независимо друг от друга выполняются
некоторые важные приложения, требующие постоянной, непрерывной
работы. То есть в такой системе на аппаратном уровне фактически под¬
держивается основной механизм п о в ы ш е н и я надежности — резервирова­
ние. П р и ч е м узлы находятся в так называемом «горячем» резерве, и каж­
д ы й из них в любой момент готов продолжить вычисления при выходе из
строя какого-либо узла. П р и этом все приложения с отказавшего узла ав­
томатически переносятся на другие м а ш и н ы комплекса. Такая система
также формально является кластером, хотя в ней отсутствует параллель­
ная обработка общих данных. Эти данные обычно м о н о п о л ь н о использу­
ются в ы п о л н я е м ы м и в рамках кластера п р и л о ж е н и я м и и должны быть
доступны для всех узлов.

171
Курс Архитектура микропроцессоров

Если в кластере его узлы разделяют некоторые ресурсы, то параллель­


ные системы другого класса — системы вычислений с массовым параллелиз­
мом ( M P P ) — строятся из отдельных полностью независимых компьюте¬
ров, соединенных только высокоскоростной магистралью или коммуника¬
ц и о н н ы м и каналами (рис. 13.4). Это могут быть либо просто несколько
серийно выпускаемых U N I X - м а ш и н , соединенных с помощью высокопро­
изводительной сетевой среды, либо специально сконструированная систе¬
ма из отдельных функциональных блоков, объединенных коммутатором.

I
о о

у Узлы

Высокоскоростная магистраль
или коммутатор

Рис. 13.4. Структура M P P - с и с т е м ы

В такой системе адресное пространство состоит из отдельных адрес¬


ных пространств, которые логически не связаны между собой и доступ к
которым не может быть осуществлен аппаратно другим процессором.
П р и этом для обмена д а н н ы м и используется механизм передачи сообще¬
н и й между процессорами. Поэтому эти м а ш и н ы часто называют машина¬
м и с передачей сообщений. Пользователь может определить логический
номер процессора, к которому о н подключен, и организовать обмен сооб¬
щ е н и я м и с другими процессорами.
Н а машинах MPP-архитектуры используются два варианта работы
операционной системы. В одном из них п о л н о ц е н н а я операционная сис­
тема работает только на управляющей м а ш и н е (front-end); на каждом от¬
дельном модуле функционирует сильно урезанный вариант О С , обеспе¬
ч и в а ю щ и й работу только расположенной в н е м ветви параллельного при¬
ложения. Во втором варианте на каждом модуле работает полноценная,
к а к правило, U N I X - п о д о б н а я О С , устанавливаемая отдельно.
П р о г р а м м и р о в а н и е в такой системе — достаточно сложная задача.
О н а требует специального инструментария и особого системного п р о -

172
Лекция 13 Многопроцессорные и многомашинные вычислительные системы

граммного обеспечения для работы параллельных п р и л о ж е н и й , кото¬


р ы е о р и е н т и р о в а н ы на ф у н к ц и о н и р о в а н и е параллельных процессов,
распределенных по узлам M P P - с и с т е м ы , с о б м е н о м с о о б щ е н и я м и меж¬
ду н и м и .
П о в ы ш е н и е производительности м а ш и н с массовым параллелизмом
путем увеличения в них числа процессоров имеет определенные ограни­
чения. Ч е м большее число процессоров входит в состав M P P - с и с т е м ы ,
тем д л и н н е е каналы передачи управления и данных, а значит, и тем м е н ь ­
ш е тактовая частота. П р о и с ш е д ш е е возрастание н о р м ы массивности для
больших м а ш и н до 512 и даже 64К процессоров обусловлено не ростом
размеров м а ш и н ы , а увеличением степени интеграции схем, позволив¬
шей за последние годы резко повысить плотность размещения элементов
в устройствах. Топология сети межпроцессорного обмена в такого рода
системах может быть различной.
Главным преимуществом M P P - с и с т е м является их хорошая масшта­
бируемость: в отличие от SMP-систем, здесь каждый процессор имеет д о ­
ступ только к своей локальной памяти, в связи с чем не возникает необ¬
ходимости в потактовой синхронизации процессоров. Практически все
рекорды по производительности на сегодня устанавливаются на машинах
и м е н н о такой архитектуры, состоящих из нескольких тысяч процессоров.
Основными недостатками систем данного типа являются следующие:
• отсутствие общей памяти заметно снижает скорость межпроцес­
сорного обмена, поскольку нет общей среды для хранения д а н ­
ных, предназначенных для обмена между процессорами;
• требуется специальная техника программирования для реализа­
ц и и обмена с о о б щ е н и я м и между процессорами;
• каждый процессор может использовать только ограниченный
объем локального банка памяти;
• вследствие указанных архитектурных недостатков требуются зна­
чительные усилия для того, чтобы максимально задействовать с и ­
стемные ресурсы, следствием чего является высокая цена п р о ­
граммного обеспечения для M P P - с и с т е м с раздельной памятью.
Подведем некоторые итоги, касающиеся областей применимости
систем параллельной обработки данных различных типов.
SMP-системы потенциально обладают достаточными возможностя­
ми для обеспечения необходимой для большинства п р и м е н е н и й произво¬
дительности: вполне естественно увеличивать число процессоров, а не
ставить рядом еще один компьютер. Добавление одного процессора га¬
рантированно увеличивает производительность, а добавление, например,
узла в кластер адекватного ускорения не даст. Более того, в некоторых
случаях общая производительность системы может даже упасть, когда уз¬
л ы кластера начинают активно конкурировать за доступ к о б щ и м ресур-

173
Курс Архитектура микропроцессоров

сам, и взаимные блокировки сводят на нет преимущества параллельной


обработки.
N U M A - с и с т е м ы создаются для вполне определенных целей — обес­
печения масштабных расчетов. Системы, использующие эту архитектуру,
прежде всего применяются для уникальных высококачественных и высо¬
копроизводительных прикладных программ, требующих более восьми
процессоров. Однако о н и имеют высокую стоимость и требуют уникаль¬
ного П О (прикладные программы и О С ) .
Для современных систем п о м и м о вполне традиционных требований
по производительности, масштабируемости, цене дополнительные высо¬
кие требования предъявляются к надежности их работы. И м е н н о по этим
соображениям вычислительные к о м п л е к с ы на основе кластеров или
M P P - м а ш и н завоевывают все большую популярность.
M P P - с и с т е м ы обладают рядом преимуществ, главным из которых
является лучшая среди всех рассмотренных архитектур масштабируе­
мость. И м е н н о поэтому M P P - к о м п ь ю т е р ы обычно используются п р и
больших ресурсоемких вычислениях. К о н е ч н о , о н и применяются и п р и
построении больших баз данных, и в отказоустойчивых вычислительных
комплексах. Н о здесь их использование довольно ограничено. Это отчас­
ти связано с тем, что о н и все-таки дороже кластеров и имеют достаточно
большую начальную цену. Кластер ж е м о ж н о построить и з относительно
дешевых м а ш и н произвольной конфигурации.
Приведенная классификация систем параллельной обработки дан¬
ных достаточно условна. Разработчики вычислительных систем н е проек¬
тируют м а ш и н у какого-то специального класса, а стараются создать бо¬
лее производительную архитектуру. К р о м е этого, сам пользователь может
с использованием стандартных компонентов спроектировать комплекс,
архитектурно и функционально наиболее подходящий для решения кон¬
кретной задачи.

Транспьютеры

Для построения многопроцессорных систем могут быть использова¬


н ы специально разработанные процессоры, называемые транспьютера¬
ми. О н и были созданы в середине 1980-х годов ДрД~Д8Д|ДуД2ДГД{ДАД2
ф и р м о й I N M O S L t d (ныне — подразделение STMicroelectronics).
Транспьютер — это микропроцессор со встроенными средствами
межпроцессорной коммуникации, предназначенной для построения
многопроцессорных систем. Его название происходит от слов transfer (пе¬
редатчик) и computer (вычислитель).
Транспьютер включает в себя средства для в ы п о л н е н и я вычислений
( Ц П , АЛУ с плавающей точкой, внутрикристальную память) и 4 канала

174
Лекция 13 Многопроцессорные и многомашинные вычислительные системы

для связи (линка) с другими транспьютерами и / и л и другими устройства­


ми. Каждый л и н к представляет собой 2 однонаправленных последова­
тельных канала передачи и н ф о р м а ц и и . Встроенный интерфейс позволя­
ет подключать в н е ш н ю ю память емкостью до 4 Гбайт (рис. 13.5).

Рис. 13.5. Структура транспьютера

Многопроцессорная система может создаваться из набора транс¬


пьютеров, которые функционируют независимо и взаимодействуют через
последовательные каналы связи (рис. 13.6).

Рис. 13.6. Структуры многопроцессорных систем на базе транспью¬


теров

175
Курс Архитектура микропроцессоров

Организация транспьютеров и многопроцессорных систем на их о с ­


нове базируется на я з ы к е Occam, специально разработанном в начале
1980-х годов группой ученых из Оксфорда под руководством Дэвида М э я
по заданию к о м п а н и и I N M O S в рамках работ по созданию транспьюте¬
ров. Отметим основные характеристики этого я з ы к а с точки зрения его
п р и м е н е н и я для программирования транспьютерных систем:
• выполнение задачи разбивается на процессы, которые могут в ы ­
полняться параллельно;
• размещение процессов не привязано к конкретному оборудова­
н и ю : необязательно каждому процессу должен ставиться в соот¬
ветствие свой транспьютер — несколько процессов могут выпол¬
няться на одном транспьютере;
• я з ы к позволяет описать размещение процессов по оборудованию;
• я з ы к позволяет описать, к а к эти процессы обмениваются между
собой д а н н ы м и (какой процесс принимает и н ф о р м а ц и ю , от како¬
го процесса и в к а к о м объеме).
П р и передаче данных в л и н к процесс должен исполнить команду
вывода. Процесс, и с п о л н и в ш и й такую команду, задерживается до тех пор,
пока все д а н н ы е не будут переданы. Аналогично, при приеме данных из
л и н к а процесс должен исполнить команду ввода. П р и и с п о л н е н и и такой
команды процесс блокируется до тех пор, пока буфер не будет заполнен
д а н н ы м и . Взаимодействие с в н е ш н и м устройством через л и н к позволяет
транспьютеру синхронизовать свою деятельность с этими устройствами
без использования механизма прерываний.
Использование такого подхода позволило организовать виртуальные
каналы связи между процессами, которые могли размещаться как на един¬
ственном транспьютере, так и на нескольких транспьютерах, и виртуаль¬
н ы е л и н к и между процессами. Любой транспьютер может одновременно
образовывать любое число параллельных процессов. О н имеет специаль¬
н ы й планировщик, который производит распределение процессорного
времени между этими процессами. Тем самым появляется возможность,
имея всего л и ш ь один транспьютер, написать параллельную программу,
которая полностью выполняется на нем. Задача разбивается на ряд про¬
цессов, и все эти процессы параллельно протекают внутри одного транс¬
пьютера, периодически останавливаясь для получения данных друг от дру¬
га. Систему м о ж н о расширить другими транспьютерами и перенести на
них ряд процессов. П р и этом нужно просто переопределить таблицу свя­
зей процессов, указав, на каком транспьютере теперь выполняется тот или
иной процесс. Сама же программа изменений не претерпевает, а вычисли¬
тельная мощность системы, естественно, увеличивается.
П о м и м о интересных возможностей, связанных с построением муль­
типроцессорных систем без привлечения дополнительного оборудова-

176
Лекция 13 Многопроцессорные и многомашинные вычислительные системы

н и я , в транспьютерах были реализованы идеи, направленные на повыше¬


н и е их вычислительной мощности. Среди них хотелось бы отметить т о ,
что блок регистров транспьютера организован в виде стека. Это привело
к использованию преимущественно безадресной системы команд, что
обеспечило даже более высокую производительность, ч е м RISC-архитек­
тура. Второй момент, который следует выделить, — это одновременное ис¬
полнение группы, в которую входило до 8 команд, что обеспечивало полную
загрузку устройств процессора. И все это было реализовано в конце 1980-х го­
дов, задолго до появления E P I C и Itanium.
На момент своего появления транспьютеры были самыми быстродейст­
вующими 32-разрядными микропроцессорами. В процессе своего недолго
развития их характеристики достигли следующих значений:
• производительность: 200 M I P S , 25 M F L O P S (на 64-разрядном про¬
цессоре с плавающей точкой);
• емкость внутрикристальной памяти: 16 Кбайт;
• скорость обмена по линку: 100 Мбит/с.
В середине 1990-х, в эпоху расцвета микропроцессоров этого семей¬
ства, ф и р м а I N M O S п о м и м о собственно транспьютеров поставляла ш и ­
р о к и й набор трэмов (trem — TRansputer Extension Module) — устройств
ввода-вывода с л и н к о м в качестве интерфейса. В частности, поставлялись
трэмы, позволявшие подключить к транспьютеру через л и н к адаптеры
Ethernet и л и SCSI. В целях увеличения числа физических связей был разрабо­
тан программируемый коммутатор, осуществляющий передачу сообщения с
любого из 32 входов на любой из 32 выходов.
Транспьютеры успешно использовались в различных областях от встро­
енных систем до суперЭВМ. Однако технология транспьютеров серьезного
развития н е получила, так к а к начиная с Pentium Pro в универсальные м и ­
кропроцессоры введена возможность соединения процессоров в микро¬
процессорную систему, что обесценило главное преимущество транспью¬
теров — возможность построения многопроцессорных систем без допол­
н и т е л ь н ы х а п п а р а т н ы х затрат. В настоящее время транспьютеры не
производятся, они вытеснены похожими разработками конкурентов, осо¬
бенно Texas Instruments (TMS320) и Intel (80860).

Краткие итоги. В лекции представлена классификация Флинна систем


многопроцессорной обработки данных, основанная на понятии потока, а
также классификация многопроцессорных и многомашинных вычислитель­
ных систем на основе степени разделения вьгчислительньгх ресурсов систе­
мы. Рассмотрены структура и особенности работы S M P - , N U M A - , M P P - с и -
стем, а также кластеров. Описан специальный класс микропроцессоров —
транспьютеры, созданный для построения мультипроцессорных систем.

177
Курс Архитектура микропроцессоров

Лекция 14. Архитектура однокристального


микроконтроллера

Цель лекции: изучить архитектуру однокристальных микроконтрол¬


леров, рассмотреть работу основных функциональных блоков микрокон¬
троллера — системы прерывания, таймеров/счетчиков, параллельных и
последовательного портов.

Структура микроконтроллера МК-51

Архитектура однокристальных микроконтроллеров M C S - 5 1 , разрабо¬


танная фирмой Intel, стала де-факто стандартной для этого типа микропро¬
цессоров. Микропроцессоры, имеющие такую архитектуру, с определен¬
н ы м и модификациями выпускаются различными фирмами. В нашей стра­
не микроконтроллеры данной архитектуры относятся к семейству М К - 5 1 и
в настоящее время содержат следующие схемы: К1816ВЕ31, К1816ВЕ51,
К1816ВЕ751, К1830ВЕ31, К1830ВЕ51. Все они являются функционально
завершенными и содержат на кристалле все необходимые узлы для постро­
ения законченной системы управления минимальной конфигурации. Ос­
новные электрические характеристики этих схем представлены в табл. 14.1.

Таблица 14.1. Характеристики Б И С семейства М К - 5 1

Микросхема Аналог Емкость Тип памяти Ток


внутренней памяти программ потребления,
программ, байт мА
К1816ВЕ31 8031AH — внешняя 150
К1816ВЕ51 8051AH 4K ПЗУ 150
К1816ВЕ751 8751H 4K ППЗУ 220
К1830ВЕ31 80C31BH — внешняя 18
К1830ВЕ51 80C51BH 4K ПЗУ 18

Все приведенные в табл. 14.1 микроконтроллеры имеют емкость


внутренней памяти данных в 128 бит и максимальную в н е ш н ю ю тактовую
частоту — 12 МГц.
Дальнейшее описание будет относиться к микросхеме К1816ВЕ51,
если и н о е не оговорено особо.
Структурная схема М К - 5 1 представлена на рис. 14.1.
М К содержит:
• арифметико-логический блок (АЛБ), включающий в себя:
• 8-разрядное АЛУ;

178
Лекция 14 Архитектура однокристального микроконтроллера

Рис. 14.1. Структурная схема однокристального микроконтроллера


семейства М К - 5 1

• регистр-аккумулятор A и дополнительный регистр-аккумуля­


тор B , использующиеся при в ы п о л н е н и и операций умножения
и деления;
• битовое АЛУ;
• битовый аккумулятор, находящийся в разряде C слова состоя­
н и я процессора PSW, который в байтовых арифметических
операциях фиксирует сигнал переноса;
• внутреннюю память программ емкостью 4 Кбайт, в которой также
могут храниться константы;
• внутреннюю память данных емкостью 128 байт, используемую для
организации банков регистров общего назначения, стека и хране­
н и я пользовательских данных; часть этой памяти имеет побито¬
вый доступ;
• 32 двунаправленных интерфейсных л и н и и , индивидуально наст¬
раиваемых на ввод или вывод и н ф о р м а ц и и и организованных в
виде четырех 8-разрядных портов P0-P3;
• два 16-разрядных многорежимных таймера/счетчика T C 0 и T C 1 ,
используемых для организации временных задержек, подсчета

179
Курс Архитектура микропроцессоров

внешних событий (количества сигналов, поступающих по в н е ш ­


н и м входам ТО и Т1) и тактирования последовательного порта;
• двунаправленный дуплексный асинхронный последовательный
порт;
• двухуровневую приоритетную маскируемую систему прерываний от
трех внутренних источников (таймеров/счетчиков и последователь­
ного порта) и двух внешних, поступающих по входам INTO и I N T 1 ;
• устройство управления (УУ);
• встроенный тактовый генератор (ТГ), тактирование которого
проводится в н е ш н и м генератором с частотой f q ; частота м а ш и н ­
B

ного цикла составляет f Q / 12, время в ы п о л н е н и я команд М К с о ­


B

ставляет 1-4 периода м а ш и н н о г о цикла.

Формат регистра P S W представлен в табл. 14.2.

Таблица 14.2. Назначение разрядов регистра слова состояния про¬


цессора

Позиция Мнемоника
Функция
в регистре бита

7 C Перенос в арифметических операциях.


Битовый аккумулятор в логических
операциях

6 AC Флаг вспомогательного переноса. Устанавли­


вается и сбрасывается аппаратно при выпол­
н е н и и сложения и вычитания и сигнализиру¬
ет о переносе или займе в бите 3

5 F0 Флаг, специфицируемый пользователем

4 RS1
Н о м е р рабочего банка регистров

3 RS0

2 OV Переполнение в арифметических операциях

1 — Н е используется

О P П р и з н а к четности числа единиц в аккумуля-


торе

180
Лекция 14 Архитектура однокристального микроконтроллера

Организация памяти

Одной из основных особенностей однокристальных м и к р о к о н т р о л ­


леров, отличающих их от других типов микропроцессорных Б И С , являет­
ся так называемая «гарвардская архитектура», при которой память п р о ­
грамм и память данных физически и логически отделены друг от друга.
Память данных
Память данных, расположенная на кристалле (внутренняя память
данных), имеет емкость 128 байт с адресами 00h—7Fh. Она может быть

расширена до 64 Кбайт за счет подключения блоков в н е ш н е й памяти дан¬


ных.
П о м и м о возможности использования О З У в качестве массива опе­
ративной памяти, отдельные ее области имеют самостоятельное значе­
ние. Часть О З У применяется в качестве регистров общего назначения,
часть имеет прямоадресуемый доступ к отдельным битам, образуя так на­
зываемую битовую память. В О З У располагается также и область стека.
Распределение адресного пространства О З У показано на рис. 14.2.

181
Курс Архитектура микропроцессоров

Рис. 14.2. Структура внутренней памяти данных

М л а д ш и е 32 байта внутреннего ОЗУ данных сгруппированы в 4 бан­


ка по 8 регистров общего назначения в каждом ( Б А Н К 0 - Б А Н К 3). Опре¬
деление рабочего в д а н н ы й момент банка, то есть банка регистров, к ко¬
торому обращается программа при использовании и м е н R0—R7, осуще­
ствляется установкой битов RS0 и RS1 в регистре слова состояния PSW.
Наличие нескольких банков регистров сокращает длину команд за счет
уменьшения д л и н ы поля номера регистра, а также уменьшает время, н е ­
обходимое для сохранения и восстановления регистров при работе с под­
программами и обработчиками прерываний, что характерно для структу¬
р ы задач, решаемых микроконтроллерами.
ОЗУ данных с адресами 20h—2Fh образует область ячеек, к которым
возможен побитный доступ. Система команд М К - 5 1 содержит значитель­
ное количество инструкций, позволяющих работать с отдельными бита­
м и , используя при этом прямую адресацию. 128 бит, составляющие рас¬
сматриваемую область внутреннего ОЗУ д а н н ы х , имеют адреса бит
00h—7Fh и предназначены для работы с такими инструкциями. Таким об­
разом, к я ч е й к е с адресом, например, 21h м о ж н о обратиться как к байту,
используя ее прямой адрес 21h, а м о ж н о обратиться к ее отдельным битам
с п о м о щ ь ю команд, работающих с битовой и н ф о р м а ц и е й . П р и этом
младший бит этого байта имеет адрес 08h, а старший — 0Fh.
Я ч е й к и памяти с адресами 30h—7Fh используются как обычная опе­
ративная память.
Во внутреннем ОЗУ данных размещается также область стека. Ее п о ­
ложение не ф и к с и р о в а н о , а определяется значением указателя стека SP.
Адресное пространство внутренней памяти д а н н ы х с адресами
80h—FFh отведено под указание регистров специальных ф у н к ц и й микро¬
процессора. Область регистров специальных ф у н к ц и й содержит регист¬
р ы - з а щ е л к и портов ввода-вывода, регистры таймеров/счетчиков, регист¬
р ы управления и т. п. Эти регистры допускают только прямую адресацию.
Все ячейки внутреннего ОЗУ данных могут адресоваться с использо­
ванием п р я м о й и косвенной адресации. Обращение к регистрам специ­
альных ф у н к ц и й допускается с п р и м е н е н и е м только п р я м о й адресации.
К внешней памяти данных можно обращаться только на запись или
чтение с помощью специальных команд. Эти команды осуществляют обмен
информацией между внешней памятью данных и аккумулятором микрокон­
троллера и не влияют на внутреннюю память данных М К . Таким образом, в
системе могут одновременно присутствовать внутренняя память данных с
адресами 00h—0Fh и внешняя память данных с адресами 0000h—FFFFh.

182
Лекция 14 Архитектура однокристального микроконтроллера

Память программ
В зависимости от м о д и ф и к а ц и и , различные т и п ы Б И С М К - 5 1 и м е ­
ют разное распределение внутренней и внешней памяти программ (см.
табл. 14.1), оставляя неизменной максимально допустимую общую е м ­
кость в 64 Кбайт. Память программ адресуется с п о м о щ ь ю 16-разрядной
адресной ш и н ы с использованием счетчика команд (program counter —
P C ) , который вырабатывает 16-разрядные адреса. Она имеет байтовую
организацию и доступна только для чтения.
Обращение к внутренней или в н е ш н е й памяти программ происхо¬
дит автоматически с применением аппаратных средств М К . П р и этом в
зависимости от состояния управляющего входа D E M A микроконтролле­
ра вся память трактуется либо к а к только в н е ш н я я (при D E M A = 0), либо
как внутренняя, з а н и м а ю щ а я младшие адреса адресного пространства, и
в н е ш н я я , з а н и м а ю щ а я адреса от старшего адреса внутренней памяти
8000h до максимально допустимого F F F F h . С точки зрения программис­
та имеется только один массив памяти программ емкостью 64 Кбайт.

По сигналу сброса, поступающему на вход Reset, в


микроконтроллере выполняются следующие действия:
1. Устанавливаются в ноль программный счетчик P C и все регистры
специальных ф у н к ц и й , кроме защелок портов P0—P3, указателя
стека SP и регистра SBuf последовательного порта, что приводит к:
• запрету всех прерываний;
• остановке работы таймеров-счетчиков и последовательного
порта;
• выбору Б а н к а 0 регистров;
• началу работы любой программы с адреса 0 (программный
счетчик Р С = 0).
2. Указатель стека (SP) устанавливается в состояние SP = 07. SP ука­
зывает на верхнюю занятую ячейку стека. П р и обращении к стеку
на запись сначала значение SP увеличивается на 1, а затем п р о и з ­
водится запись во внутреннюю память данных п о адресу, храня­
щемуся в SP. Считывание из стека производится по адресу, храня­
щемуся в SP, после чего значение SP уменьшается на 1. Таким о б ­
разом, стек располагается в начальный момент начиная с адреса
8. Его положение в памяти м о ж н о переопределить, записав в SP
другое число.
3. З а щ е л к и всех л и н и й п о р т о в P0—P3 устанавливаются в 1,
настраивая их на ввод и н ф о р м а ц и и .
4. В регистр SBuf последовательного порта и в О З У записываются
случайные значения.

183
Курс Архитектура микропроцессоров

Система команд

Микроконтроллер имеет достаточно простую систему из 111 к о ­


манд, допускающую только следующие р е ж и м ы адресации:
• прямая к памяти данных (память данных и л и регистры специаль­
ных ф у н к ц и й ) ;
• косвенная к памяти данных (допустима только с использованием
регистров R0 и R1 рабочего банка регистров);
• прямая к регистрам;
• непосредственная;
• прямая к битам (в битовой памяти и л и в регистрах специальных
ф у н к ц и й , адреса которых кратны восьми, то есть заканчиваются
на 000b).
Система команд микроконтроллера М К - 5 1 приведена в табл. 14.3.
С п е ц и ф и к о й д а н н о й системы команд является отсутствие ортогонально¬
сти, и н ы м и словами, операции, которые м о ж н о проводить с некоторыми
регистрами и режимами адресации, н е всегда допустимы с другими реги-

что косвенная ад ресация возможн i с использованием только регистров


R0 и R1. Также чг сть команд можно выполнять т олько через специальный
регистр-аккумул [тор. Поэтому при программир овании следует обращать
особое в н и м а н и е на то, с к а к и м и регистрами и режимами адресации м о -
жет работать та и ли иная команда.

Таблица 14.3 . Система команд микроконтр ллера М К - 5 1

Мнемоника Режимы Время


адресации выполнения, Действие
такт
Арифметиче» :кие инструкц и и
ADD,A,byte Dir,Ind,Reg,Imm A=A+byte
A D D C A,byte Dir,Ind,Reg,Imm A=A+byte+C
DA A Аккумулятор Десятичная коррекция

DEC A Аккумулятор A=A-1


D E C byte Dir,Ind,Reg byte=byte-1
DIV AB Аккумулятор и B A=[A/B],B=mod(A/B)
INC A Аккумулятор A=A+1
I N C byte Dir,Ind,Reg byte=byte+1
INC DPTR DPTR 2 DPTR=DPTR+!
M U L AB Аккумулятор и B 4 B,A=B*A
S U B B A,byte Dir,Ind,Reg,Imm 1 A=A-byte-C

184
Лекция 14 Архитектура однокристального микроконтроллера

Логическг е инструкци] i
A N L A,byte Dir,Ind,Reg,Imm 1 A=A&byte
A N L byte,A Dir 1 byte= byte&A
A N L byte,#data Dir 2 byte= byte&#data
CLR A Аккумулятор 1 A=00h
CPL A Аккумулятор 1 A
A= (A)
O R L A,byte Dir,Ind,Reg,Imm 1 A = A v byte
O R L byte,A Dir 1 byte= byte v A
O R L byte,#data Dir 2 byte= byte v #data
RL A Аккумулятор 1 A = ( A ) I I C T на 1бит
RLC A Аккумулятор 1 A = ( A ) I J C T на 1бит
через С
RR A Аккумулятор 1 A = ( A ) J C n на 1бит
RRC A Аккумулятор 1 A = ( A ) J C n на 1бит
через С
SWAP A Аккумулятор 1 A(7...4) <=> A(3...0)
X R L A,byte Dir,Ind,Reg,Imm 1 A = A ~ byte
X R L byte,A Dir 1 byte= byte ~ A
X R L byte,#data D i r 2 byte= byte ~ #data
И н с т р у к щ и передачи д а н н ых во внутрен тей памяти данных
M O V A,src Dir,Ind,Reg,Imm 1 A=src
M O V dest, A Dir,Ind,Reg 1 dest=A
M O V dest, src Dir,Ind,Reg,Imm 1 dest=src
MOV DPTR,
#data Imm 2 DPTR=data
P U S H src Dir 2 SP=SP+1; @SP=src
P O P dest Dir 2 dest=@SP; SP=SP-1
X C H A,byte Dir,Ind,Reg 1 A <=> byte
X C H D A,@Ri Ind 1 A <=> @Ri
Инструкции пер едачи данных, исп ользующие вн е ш н ю ю память данных

M O V X A,@Ri 2 A=@Ri
M O V X @Ri,A 2 @Ri=A
M O V X A,@DPTR 2 A=@DPTR
M O V X @DPTR,A 2 @DPTR=A
Инструкции передачи данных , используюп (ие память программ
M O V C A,@A+
DPTR 2 A=@(A+DPTR)
M O V C A,@A+
PC 2 A=@(A+PC)
Булевы ш с т р у к ц и и
A N L C,bit bit 2 C = C & bit

185
Курс Архитектура микропроцессоров

A
A N L C,/bit bit 2 C = C & bit
CLR C Битовый 1 C=0
аккумулятор
C L R bit bit 1 bit=0
A
CPL C Битовый 1 C= C
аккумулятор
A
C P L bit bit 1 bit= bit
J C rel 2 Переход, если C=1
J N C rel 2 Переход, если C=0
JB bit,rel bit 2 Переход, если bit=1
J N B bit,rel bit 2 Переход, если bit=0
J B C bit,rel bit 2 Переход, если bit=1;
bit=0
M O V C,bit bit 2 C=bit
M O V bit,C bit 2 bit=C
O R L C,bit bit 2 C = C v bit
O R L C,/bit bit 2 C = C v "bit
SETB C Битовый 1 C=1
аккумулятор
S E T B bit bit 1 bit=1
Инструкции без условных пер еходов
C A L L adr 2 Вызов подпрограммы
1 1
A C A L L adr переход на ± 2 байт
1 6
L C A L L adr переход на ± 2 байт

J M P adr 2 PC=adr
1 1
A J M P adr переход на ± 2 байт
1 6
L J M P adr переход на ± 2 байт
8
S J M P adr переход на ± 2 байт

J M P @A+DPTR 2 PC=A+DPTR
NOP 1 Пустая команда
RET 2 Возврат из подпрограм¬
мы
RETI 2 Возврат из обработчика
прерывания
Инструкции условных переходов
C J N E A,byte,rel Dir,Imm 2 Переход, если A^byte
C J N E byte, Ind,Reg 2 Переход, если
#data,rel byte*#data
D J N Z byte,rel Dir,Reg 2 byte=byte-1; переход,
если byte*0

186
Лекция 14 Архитектура однокристального микроконтроллера

J Z rel Аккумулятор 2 Переход, если A=0


J N Z rel Аккумулятор 2 Переход, если A * 0

Примечания
1. Режимы адресации:
• D i r — п р я м а я (регистры с п е ц и а л ь н ы х ф у н к ц и й или п а м я т ь
данных);
• Ind — косвенная (допустима только относительно регистров R0
и R 1 ; в символической записи команды обозначается @R0 или
@R1 соответственно);
• Reg — прямая к регистрам;
• Imm — непосредственная (в символической записи команды
начинается с #);
• bit — прямоадресуемый бит (в битовой памяти или регистрах
специальных ф у н к ц и й ) ;
• C — битовый аккумулятор (бит C Y в регистре состояния PSW);
• запись «byte» в графе «Мнемоника» означает, что операнд в
этом поле может адресоваться с п о м о щ ь ю любого режима адре¬
сации из указанных в графе «Режимы адресации»;
• в командах, допускающих прямую, но не регистровую адреса­
ц и ю , может указываться регистр общего назначения, однако
при трансляции команды в м а ш и н н о е представление его номер
будет в этом случае представлен не трех-, а 8-разрядным двоич­
н ы м кодом, соответствующим прямому адресу этого регистра в
памяти данных; некоторые Ассемблеры требуют для таких к о ­
манд указания в я в н о м виде номера регистра в виде прямого ад­
реса я ч е й к и памяти данных.
2. Действия:
• В инструкции M U L A B производится перемножение содержи­
мого аккумулятора A и дополнительного аккумулятора B. Стар­
ш и е разряды произведения помещаются в аккумулятор A , а
младшие — в регистр B .
• В инструкции D I V A B содержимое аккумулятора A нацело де­
лится на содержимое регистра B. Частное помещается в акку­
мулятор A , а остаток — в регистр B. Операнды рассматривают­
ся как целые числа без знака.
• & — конъюнкция.
• v — дизъюнкция.
• © — «исключающее И Л И » .
А
• — логическое «НЕ».
• Ц С Л — циклический сдвиг влево.

187
Курс Архитектура микропроцессоров

• Ц С П — циклический сдвиг вправо.


• В операциях сдвига через С участвует 9-разрядный регистр (8-
разрядный аккумулятор и бит переноса С).
• <=> — обмен местами операндов.
• В и н с т р у к ц и и X C H D A , @ R i осуществляется обмен только
младших тетрад операндов.
• В инструкциях переходов:
• для безусловных переходов adr показывает, что в команде
кодируется абсолютный адрес памяти программ, по которо­
му осуществляется переход;
• для условных переходов rel показывает, что в команде кодиру­
ется относительный адрес памяти программ, по которому осу­
ществляется переход при выполнении указанного условия;
• во всех командах перехода при записи программы на ассем­
блере адрес перехода может быть задан меткой целевой ко¬
манды.
3. Некоторые Ассемблеры для инструкции вызова подпрограммы и
инструкции безусловного перехода требуют от программиста я в н о ­
го указания длины генерируемого адреса перехода, то есть записи в
программе инструкций A C A L L , L C A L L , A J M P , L J M P , SJMP, и не
воспринимают инструкции C A L L , JMP. Другие Ассемблеры само­
стоятельно генерируют инструкции, имеющие необходимую длину

188
Лекция 14 Архитектура однокристального микроконтроллера

поля адреса в зависимости от места расположения адреса перехода, и по¬


этому допускают использование инструкций C A L L и JMP.

Основные функциональные блоки


микроконтроллера МК-51
Система прерываний
Системы прерываний — важная часть любой управляющей системы.
От ее работы во многом зависит то, насколько э ф ф е к т и в н о м и к р о п р о ц е с ­
сорная система выполняет свои ф у н к ц и и . Общая структура системы пре­
р ы в а н и й М К - 5 1 представлена на рис. 14.3.
Рис. 14.3. Структура системы прерываний
Микроконтроллеры семейства М К - 5 1 обеспечивают поддержку пя¬
ти источников прерываний:
двух внешних прерываний, поступающих по входам INT0 и INT1
(линии порта Р3: Р3.2 и Р3.3 соответственно);
двух прерываний от таймеров/счетчиков Т / С 0 и Т / С 1 ;
прерывание от последовательного порта.
Запросы на прерывание фиксируются в регистрах специальных
ф у н к ц и й микроконтроллер а: флаги IE0, IE1, T F 0 , TF1 запросов на преры-
вание от INT0, I N T 1 , Т / ф и T / C 1 содержатся в регистре управления
T C O N (табл. 14.4), а флаги RI и TI запросов на прерывание от последова-
тельного порта — в регистре S C O N управления последовательным портом.

Таблица 14.4. Формат регистра T C O N

Позиция Мнемоника Функция


в регистре бита
0 IT0 Настройка вида прерывания INT0
1 IE0 Флаг запроса прерывания INT0
2 IT1 Настройка вида прерывания INT1
3 IE1 Флаг запроса прерывания INT1
4 TR0 Включение в работу таймера/счетчика 0
5 TF0 Флаг переполнения (запрос прерывания)
таймера/счетчика 0
6 TR1 Включение в работу таймера/счетчика 1
7 TF1 Флаг переполнения (запрос прерывания)
таймера/счетчика 1

Флаги T F 0 и TF1 устанавливаются аппаратно при переполнении с о ­


ответствующего таймера/счетчика (точнее, при переходе T / C x из состоя­
н и я «все единицы» в состояние «все нули»).

189
Курс Архитектура микропроцессоров

Флаги IE0 и IE1 устанавливаются аппаратно от внешних прерыва­


н и й IT0 и IT1 соответственно. В н е ш н и й запрос может вызвать установку
флага либо при н и з к о м уровне сигнала на соответствующем входе, либо
при переключении этого сигнала с высокого уровня на н и з к и й (с часто­
той, не превышающей п о л о в и н ы частоты внешней синхронизации М К ) .
Настройка на тип запроса осуществляется программной установкой бит
IT0 и IT1 в регистре управления T C O N . Установка ITx = 0 настраивает с и ­
стему прерывания на запрос по низкому уровню сигнала, ITx = 1 — запрос
на прерывание по спаду сигнала.
Флаги TI и R I устанавливаются аппаратно схемой последовательно­
го интерфейса после о к о н ч а н и я передачи или после о к о н ч а н и я приема
соответственно.
Все указанные флаги запросов на прерывание программно доступны
для установки и сброса. Программная установка флага запроса на п р е р ы ­
вание приводит к такой ж е реакции микроконтроллера, что и аппаратная
установка того ж е самого флага.
Флаги T F 0 и TF1 сбрасываются аппаратно при передаче управления
программе обработки соответствующего прерывания.
Сброс флагов IEx выполняется аппаратно при обслуживании п р е р ы ­
вания только в том случае, если прерывание было настроено на восприя-
тие спада сигнала INTx. Если прерывание было настроено на восприятие
уровня сигнала запроса,, то сброс флага IEx должна выполнять программа
обслуживания прерывания, воздействуя на источник прерывания для
снятия и м запроса.
Флаги TI и R I сбрасываются только программным путем.
Каждый вид преры вания индивидуально разрешается или запреща-
ется установкой или сбросом соответствующих разрядов регистра разре-
ш е н и я прер эывания IE. фтот регистр содержит также и бит общего запре-
щ е н и я всех прерываний. Формат регистра I E приведен в табл. 14.5.

Таблица 14.5. Назначение разрядов регистра IE

Позиция Мнемоника _
в регистре бита ужвдя
7 EA Запрет прерывания от всех источников
6 — Н е используется
5 — Н е используется
4 ES Запрет прерывания от последовательного порта

3 ET1 Запрет прерывания от таймера/счетчика T / C 1


2 EX1 Запрет прерывания от внешнего источника INT1

190
Лекция 14 Архитектура однокристального микроконтроллера

Таблица 14.6. Назначение разрядов регистра IP

Позиция Мнемоника
Функция
в регистре бита
7 — Н е используется
6 — Н е используется
5 — Н е используется
4 PS Приоритет прерывания от последовательного
порта
3 PT1 Приоритет прерывания от таймера/счетчика T / C 1

2 PX1 Приоритет прерывания от внешнего источника


INT1
1 PT0 Приоритет прерывания от таймера/счетчика T / C 0

I ET0 Запрет прерывания от таймера/счетчика T / C 0


0 EX0 Запрет прерывания от внешнего источника INT0

Каждому виду прерывания может быть программно присвоен один


из двух возможных приоритетов: 0 — н и з ш и й или 1 — в ы с ш и й .
Настройка приоритетов осуществляется установкой или сбросом с о ­
ответствующего бита регистра приоритетов прерываний IP. Формат этого
регистра приведен в табл. 14.6.
П р и одновременном поступлении запросов прерывания от источни­
ков, имеющих различные приоритеты, сначала обрабатывается запрос от
более приоритетного источника.
В случае одновременного поступления нескольких запросов на пре­
р ы в а н и я с одинаковым приоритетом порядок их обработки определяется
аппаратными средствами микроконтроллера и не может быть изменен
программно. Этот порядок соответствует последовательности опроса
флагов запросов прерываний, имеющей следующий вид:

IT0 — T F 0 — IT1 TF1 — (RI, TI)

Аппаратно реализуемый вызов обработчика прерываний состоит из


следующих действий:
• сохранение значения программного счетчика в стеке;
• загрузка в программный счетчик начального адреса точки входа в
соответствующий обработчик прерывания.
Точки входа в обработчик прерывания для каждого источника пре­
р ы в а н и й аппаратно зафиксированы. И х значения приведены в табл. 14.7.

191
Курс Архитектура микропроцессоров

Таблица 14.7. Адреса точек входа в обработчики прерываний

Источник прерывания Адреса точек входа


в обработчики прерыванияя
Внешнее прерывание (IT0) 03h
Таймер/счетчик (TF0) 0Bh
Внешнее прерывание (IT1) 13h
Таймер/счетчик (TF1) 1Bh
Последовательный порт (RI или TI) 23h

П о указанному адресу должна размещаться первая команда обработ­


чика прерывания. К а к правило, такой командой является команда безус­
ловного перехода в то место программы, где фактически располагается
обработчик.
П р и переходе на подпрограмму обработки п р е р ы в а н и я автомати­
ч е с к и н е з а в и с и м о от состояния регистра I E запрещаются все прерыва­
н и я , которые имеют уровень приоритета, р а в н ы й уровню приоритета
обслуживаемого п р е р ы в а н и я , — то есть в л о ж е н н ы е п р е р ы в а н и я с рав¬
н ы м уровнем приоритета з а п р е щ е н ы . Таким образом, низкоприоритет¬
н о е п р е р ы в а н и е ( и м е ю щ е е «0» в соответствующем разряде регистра IP)
может прерываться в ы с о к о п р и о р и т е т н ы м ( и м е ю щ и м «1» в соответству­
ю щ е м разряде регистра IP), н о н е н и з к о п р и о р и т е т н ы м . Обслуживание
в ы с о к о п р и о р и т е т н о г о п р е р ы в а н и я н е может быть прервано другим ис¬
точником.
Возврат из обработчика прерываний осуществляется с п о м о щ ь ю к о ­
манды R E T I , которая восстанавливает из стека значение программного
счетчика P C , сохраненного там в момент вызова обработчика прерыва¬
н и я , и логику приоритетов прерываний.

Блок таймеров/счетчиков

Таймеры/счетчики ( Т / С ) предназначены для подсчета внешних с о ­


бытий, получения программно управляемых временных задержек и в ы ­
полнения времязависимых ф у н к ц и й .
В состав блока Т / С входят следующие основные элементы:
• два 16-разрядных регистра Т / С 0 и Т / С 1 ,
• 8-разрядный регистр режимов T M O D ,
• 8-разрядный регистр управления T C O N ,
• схема инкремента,
• схемы управления.

192
Лекция 14 Архитектура однокристального микроконтроллера

Регистры Т / С 0 и Т / С 1 выполняют ф у н к ц и ю хранения текущего со­


стояния счетчика. К а ж д ы й из них состоит из пары 8-разрядных регист-
ров: (ТН0, TL0) для Т / С 0 и (TH1, TL1) для Т / С 1 . Регистры Т Н 0 и T H 1 с о -
держат старшие, а регистры ^ 0 и TL1 — младшие разряды регистров!
Т / С 0 и Т / С 1 . Каждый из этих регистров программно доступен по записи
и чтению.
Начальное значение счета заносится в регистры Т Н х и T L x тайме-
ра/счетчика программно. В процессе счета содержимое регистров Т / С
инкрементируется. Перенос, в о з н и к а ю щ и й при в ы п о л н е н и и счета, ф и к -
сируется; бите T F x регистра T C O N и может быть использован в качестве
запроса прерывания.
Назначение разрядов регистра режимов T M O D показано в табл. 14.8.

Рис. 14.4. Логика работы таймера/счетчика 1 в режиме 0

193
Курс Архитектура микропроцессоров

Таблица 14.8. Формат регистра T M O D

Позиция Мнемоника Ф у н к ц и я я

у ц
в регистре бита
7 GATE1 Разрешение управления Т / С 1 от внешнего
входа IT1:
1
0 — управление запрещено
— управление разрешено
6 C/T1 0 — работа Т / С 1 в режиме таймера
1 — - работа Т / С 1 в режиме счетчика внешних
событий
5 M1.1 Н о мер режима работы Т / С 1
4 M0.1 (00 — режим 0, 11 — режим 3)
3 GATE0 Ф у н к ц и и аналогичны битам 7-5, но для Т / С 0
2 C/T0
1 M1.0
0 M0.0

Включение/выключение таймера/счетчика в работу производится


битами TR1 и TR0 регистра управления T C O N . О н и устанавливаются и
сбрасываются программно, доступны по чтению. Установка бита в «1»
приводит к включению в работу соответствующего таймера/счетчика, а
сброс этого бита в «0» приводит к его остановке.
Таймеры/счетчики могут функционировать в одном из четырех ре¬
ж и м о в , определяемых разрядами M1.x и М0.х регистра T M O D . Режимы 0,
1, 2 полностью идентичны для обоих таймеров/счетчиков. Установка тай­
мера/счетчика 0 в режим 3 влияет на режим работы таймера/счетчика 1.
Режим 0. Таймер/счетчик представляет собой устройство на основе
13-разрядного регистра, состоящего из 8-разрядного регистра T H и пяти
младших разрядов регистра T L . Логика работы таймера/счетчика в р е ж и ­
ме 0 показана на рис. 14.4 на примере T / C 1 . Влияние управляющих сиг­
налов T R 1 , G A T E 1 , C / T 1 и сигнала внешнего управления INT1 на работу
таймера/счетчика представлено в табл. 14.9.

Таблица 14.9. Управление работой таймера/счетчика T / C 1

TR1 GATE1 INT1 C/T1 Выполняемая функция


0 X X X Останов
1 0 X 0 Счет в режиме таймера
1 0 X 1 Счет в режиме счетчика внешних событий
1 1 1 X Останов
1 1 1 0 Счет в режиме таймера

194
Лекция 14 Архитектура однокристального микроконтроллера

1 1 1 1 Счет в режиме счетчика внешних событий

П р и работе таймера/счетчика в режиме счетчика внешних событий


его содержимое увеличивается каждый раз п р и переключении из «1» в «0»
сигнала на счетном входе микроконтроллера (вывод T0 (P3.4) для T / C 0 и
вывод T1 (P3.5) для T / C 1 ) . П р и этом частота и з м е н е н и я сигналов на счет¬
н о м входе должна быть к а к м и н и м у м в 2 раза ниже в н е ш н е й частоты син¬
хронизации микроконтроллера.
Режим 1. А н а л о г и ч е н р е ж и м у 0, за и с к л ю ч е н и е м того, что в э т о м
р е ж и м е т а й м е р / с ч е т ч и к представляет собой устройство н а основе не
13-разрядного, а 16-разрядного регистра, состоящего из регистров T H x
и TLx.
Логика работы таймера/счетчика в этом режиме полностью соответ¬
ствует режиму 0.
Режим 2. Таймер/счетчик представляет собой устройство на основе
8-разрядного регистра T L . П р и каждом переполнении регистра T L , к р о ­
ме установки в регистре T C O N флага TF, происходит автоматическая пе¬
резагрузка содержимого регистра T L из регистра T H .
Логика работы таймера/счетчика в этом режиме также соответствует
режиму 0.
Режим 3. В режиме 3 T / C 1 заблокирован и просто сохраняет свое с о ­
стояние.
Таймер/счетчик T / C 0 в режиме 3 представляет собой два независи­
мых устройства на основе 8-разрядных регистров T H 0 и T L 0 . Устройство
на основе регистра T L 0 может работать к а к в режиме таймера, так и в ре¬
жиме счетчика внешних событий. За н и м сохраняются все биты управле­
н и я T / C 0 , о н о реагирует на воздействия по входам T0 и INT0. П р и пере­
п о л н е н и и T L 0 устанавливается флаг T F 0 . Устройство на основе регистра
T H 0 может работать только в режиме таймера. О н о использует бит в к л ю -

195
Курс Архитектура микропроцессоров

чения T R 1 , при переполнении T H 0 устанавливается флаг T F 1 . Других би­


тов управления устройство на основе T H 0 в этом режиме не имеет. Л о г и ­
ка работы T / C 0 в режиме 3 показана на рис. 14.5.

Рис. 14.5. Логика работы таймера/счетчика 0 в режиме 3

Установка T / C 0 в режим 3 лишает T / C 1 бита включения T R 1 . П о э т о ­


му T / C 1 в режимах 0, 1, 2 при G A T E 1 = 0 всегда включен и при перепол­
н е н и и в режимах 0 и 1 T / C 1 обнуляется, а в режиме 2 перезагружается, не
устанавливая флаг, если T / C 0 находится в режиме 3. Управление от вхо­
дов I N T 1 , T1 и использование бит управления C / T 1 , G A T E 1 для T / C 1 не
зависят от режима T / C 0 .
T / C 1 аппаратно связан с блоком синхронизации последовательного
интерфейса ( П И ) . П р и работе в режимах 0, 1, 2 при переполнении T / C 1
всегда вырабатывается импульс, который может использоваться для так­
тирования П И . Поэтому режим 3 для T / C 0 удобно применять тогда, ког­
да требуется работа П И , тактируемого таймером/счетчиком 1, и двух тай¬
меров/счетчиков или П И , таймера и счетчика.
Когда T / C 0 переведен в р е ж и м 3, T / C 1 м о ж н о выключить, переведя
его также в режим 3, использовать с последовательным портом для выра­
ботки импульсов тактирования или в любых других приложениях, не тре­
бующих прерывания.

В качестве примера использования блока таймеров/счетчиков рас¬


смотрим следующую задачу.

Необходимо подсчитать количество деталей, прошедших по конвей¬


еру за определенный промежуток времени, например, 1 минуту. П р и этом
подсчет должен проводиться в ф о н о в о м режиме, не отвлекая основные

196
Лекция 14 Архитектура однокристального микроконтроллера

ресурсы микроконтроллера от р е ш е н и я других задач, например, управле­


н и я тем ж е самым конвейером. К р о м е того, если конвейер остановлен, то
для исключения ложных срабатываний датчиков подсчет в это время п р о ­
водиться н е должен. Вывод полученных значений проводится на порты
P1 и P2 микроконтроллера.
Таймер/счетчик Т / С 0 будем применять в режиме таймера для отсче¬
та необходимого интервала времени. В режиме 1, использующем полную
длину разрядной сетки, таймер/счетчик выдает запрос прерывания через
1 6
каждые 2 м а ш и н н ы х циклов, что п р и частоте внешней синхронизации
f = 12 МГц составляет 65 536 мкс. Чтобы отсчитать интервал времени в 1
bq

м и н , необходимо п р и м е р н о 915 входов в обработчик прерывания. Д л я от­


счета этой величины используются регистр R0 с начальным значением
183 и регистр R1 с начальным значением 5.
Таймер/счетчик Т / С 1 задействуем в режиме счета внешних событий
с разрешением внешнего управления п о входу I N T 1 , на который подадим
сигнал от двигателя конвейера. Д л я считывания его показаний без пре­
к р а щ е н и я счета используется следующий прием. Сначала считывается
значение из старшего байта T H 1 таймера/счетчика, а затем и з младшего
байта T L 1 . После этого проверяется, н е изменилось л и показание старше­
го байта за время чтения младшего, и л и ш ь после этого результат считает­
ся принятым. Такой подход предохраняет от грубых о ш и б о к п р и чтении
работающего счетчика. Пусть, например, в начале чтения счетчик содер­
ж а л следующее значение: T H 1 = 00000000b, T L 1 = 111111111b. Если за
время чтения старшего байта счетчик увеличит свое значение на 1, то ми¬
кроконтроллер, н е использующий дополнительных проверок, получит
результат: 00000000 00000000b.
Схема данного микропроцессорного устройства представлена на
рис. 14.6.

Рис. 14.6. М П С для подсчета количества деталей

Программа р е ш е н и я этой задачи может выглядеть следующим обра-


зом:
.ORG 0
AJMP Begin ; на начало программы
.ORG 0Bh
AJMP IntTime ; на обработчик таймера
.ORG 30h
Begin: MOV IE,#00001000b ; разрешение прерывания Т / С 0
MOV TMOD,#00101100b ; настройка режимов счетчиков

197
Курс Архитектура микропроцессоров

MOV TH0,#0 ; сброс счетчика времени


MOV TL0,#0
MOV TH1,#0 ; сброс счетчика деталей
MOV TL1,#0
MOV R0,#183
MOV R1,#5
MOV TCON,#01010000b
SETB EA
AJMP $ ; фоновая задача
Int_Time: D J N Z R0,Out_Time ; обработчик Т / С 0
MOV R0,#183 ; восстановление параметра счета
DJNZ R1,Out_Time ; выход, если н е прошла 1 м и н
Read: MOV A,TH1 ; чтение Т / С 1
MOV R3,TL1
CJNE A,TH1,Read
MOV R4,A ; вывод результата
MOV P1,R3
MOV P2,R4
MOV TH1,#0 ; восстановление Т / С 1
MOV TL1,#0
MOV R1,#5 ; восстановление параметра счета
Out_Time: R E T I ; выход из обработчика Т / С 0
.END

Организация ввода-вывода информации


в микроконтроллере

Однокристальные микроконтроллеры обладают ш и р о к и м и возмож-


ностями по вводу и выводу и н ф о р м а ц и и . Микроконтроллеры семейства
М К - 5 1 для этих целей имеют:
• 4 параллельных 8-разрядных порта P0-P3, каждая л и н и я которых!
может индивидуально настраиваться на ввод либо вывод и н ф о р -
мации;
один последовательный порт.
Параллельные порты. П о м и м о возможности использования любого
из параллельных портов для ввода или вывода и н ф о р м а ц и и за каждым и з
них аппаратно закреплены определенные ф у н к ц и и .
Порт P0:
• выводит младший байт адреса (А7-А0) п р и работе с в н е ш н е й п а ­
мятью программ и внешней памятью данных;

198
Лекция 14 Архитектура однокристального микроконтроллера

• выдает из М К и принимает в М К байт данных п р и работе с в н е ш ­


ней памятью; п р и этом выдача адреса и обмен д а н н ы м и мульти­
плексируются во времени аппаратными средствами м и к р о к о н т ­
роллера, а для хранения младшего байта адреса в м и к р о п р о ц е с -

сорной системе должен быть предусмотрен в н е ш н и й по отноше¬


н и ю к М К регистр адреса;
• задает данные при программировании внутреннего П П З У в тех
Б И С , где оно предусмотрено, и читает содержимое внутренней
памяти программ.
Порт P1. Через порт P1 вводится младший байт адреса (А7-А0) при про­
граммировании внутреннего П П З У и чтении внутренней памяти программ.
Порт P2. Порт P2 применяется для вывода старшего байта адреса
(А15-А8) при обращении к в н е ш н е й памяти программ и данных и ввода
разрядов адреса А11-А8 при программировании внутреннего П П З У и чте­
н и и внутренней памяти программ.
Порт Р3. Каждый из разрядов порта Р3 используется для выполне­
н и я альтернативных ф у н к ц и й (табл. 14.10).

Таблица 14.10. Альтернативные ф у н к ц и и порта Р3

Позиция Мнемоника
Функция
в регистре бита
0 RxD Вход последовательного порта
1 TxD Выход последовательного порта
2 INT0 Вход запроса внешнего прерывания 0
3 INT1 Вход запроса внешнего прерывания 1
4 T0 Счетный вход таймера/счетчика 0

Для в ы п о л н е н и я этим портом альтернативных ф у н к ц и й необходи­


мо, чтобы защелки соответствующих разрядов содержали «1».

199
Курс Архитектура микропроцессоров

Таблица 14.11. Назначение разрядов регистра S C O N

Позиция Мнемоника
Функция
в регистре бита
7 SM0 Биты определения
6 SM1 режима работы
5 SM2 Бит разрешения многопроцессорной работы
4 REN Бит разрешения приема последовательных
данных
3 TB8 9-й бит передаваемых данных в режимах 2 и 3
2 RB8 9-й бит принимаемых данных в режимах 2 и 3
1 TI Флаг прерывания передатчика
0 RI Флаг прерывания приемника

Каждая л и н и я каждого параллельного порта может независимо от


других настраиваться к а к на ввод, так и на вывод данных. Д л я использо­
вания л и н и и в качестве входа необходимо, чтобы его защелка содержала
«1». Несмотря на различия в электрической организации этих портов, л о ­
гическая схема их работы выглядит так, к а к представлено на рис. 14.7 на
примере л и н и и 1 порта Р 1 .

Рис. 14.7. Логическая схема работы л и н и и Р1.1 п р и вводе и выводе


информации

П р и выводе и н ф о р м а ц и я записывается в некоторую внутреннюю за­


щелку P1.1. И н ф о р м а ц и я , вводимая по этой л и н и и , маскируется этой за­
щелкой. Если данная л и н и я н е настроена на ввод, то есть в защелку н е за­
несена «1», то в микроконтроллер будет вводиться только «0».

Блок последовательного интерфейса


Блок последовательного интерфейса предназначен для обмена дан¬
н ы м и между микроконтроллером и в н е ш н и м и устройствами в последова¬
тельном коде посредством л и н и й P3.0 и P3.1 порта P3, которые имеют
специальные обозначения R x D и T x D соответственно.
Управление работой последовательного порта осуществляется про¬
граммированием регистра S C O N и з блока регистров специальных функ¬
ц и й . Назначение разрядов этого регистра приведено в табл. 14.11.
Работа блока последовательного интерфейса в различных режимах
осуществляется следующим образом.
Режим 0. И н ф о р м а ц и я передается и принимается через вход R x D
(P3.0). Через выход передатчика T x D (P3.1) выдаются синхроимпульсы,
стробирующие п р и н и м а е м ы е и л и выдаваемые биты. Формат посылки —

200
Лекция 14 Архитектура однокристального микроконтроллера

8 бит. Частота приема и передачи — f Q/12, то есть частота тактирования


B

равна частоте м а ш и н н о г о цикла микроконтроллера.


Режим 1. И н ф о р м а ц и я передается через выход T x D , а принимается
через вход R x D . Формат п о с ы л к и — 10 бит (стартовый «0», 8 информаци¬
о н н ы х и стоповый — «1»). Частота приема и передачи задается програм¬
мированием таймера/счетчика 1 (T/C1).
Режим 2. И н ф о р м а ц и я передается через выход T x D , а принимается
через вход R x D . Формат п о с ы л к и — 11 бит (стартовый «0», 8 и н ф о р м а ц и ­
онных, программируемый 9-й бит и стоповый — «1»). 9-й бит при переда­
ч е берется из разряда TB8 регистра S C O N , а при приеме сохраняется в би­
те RB8 регистра S C O N . 9-й бит используется по усмотрению программи­
ста, например, к а к бит контроля передаваемой и н ф о р м а ц и и по четности.
Частота приема и передачи задается программно и может быть равна
f / 3 2 и л и f / 6 4 .
BQ BQ
Режим 3 аналогичен режиму 2, за исключением того, что частота
приема и передачи определяется переполнением таймера/счетчика 1.
Во всех режимах работы передача инициируется любой командой,
которая использует буферный регистр последовательного порта Sbuf как
регистр назначения.
П р и е м и н ф о р м а ц и и в р е ж и м е 0 инициируется условием (RI = 0) &
( R E N = 1). В остальных режимах прием инициируется приходом старт-
бита, если R E N = 1.
П р и е м и выдача байта данных начинается с младшего бита.
Бит S M 2 регистра S C O N используется для организации работы мно¬
гопроцессорных систем на основе данного микропроцессора. П р и S M 2 =
1 бит R I не активизируется, если в режимах 2 и 3 9-й п р и н и м а е м ы й бит
д а н н ы х равен «0». Это позволяет, например, разделить посылку, содержа¬
щую адрес, и посылку с д а н н ы м и .
В режиме 1 бит R I не активизируется, если не п р и н я т стоп-бит, рав¬
н ы й «1». В р е ж и м е 0 S M 2 должен быть равен «0».

Краткие итоги. В лекции рассмотрены общая организация и п р и н ц и ­


п ы работы однокристального микроконтроллера M S C - 5 1 ( М К - 5 1 ) , архи­
тектура которого фактически является стандартной для микропроцессо¬
ров этого класса. Представлены характеристики микроконтроллеров с ар¬
хитектурой М К - 5 1 , структура и о с н о в н ы е блоки микроконтроллера, а
также его система команд. Разобраны особенности режимов адресации и
использования различных команд. Рассмотрены порядок работы микро¬
контроллера при обработке прерываний, работа блока таймеров/счетчи¬
ков в различных режимах как при отсчете временных интервалов, так и
для счета в н е ш н и х событий. Разобрана работа параллельных и последова­
тельного портов. Представлены ф о р м а т ы управляющих регистров.

201
Курс Архитектура микропроцессоров

Лекция 15. Построение микропроцессорных


с и с т е м на о с н о в е о д н о к р и с т а л ь н ы х
микроконтроллеров. Тенденции развития
однокристальных микроконтроллеров

Цель лекции: изучить п р и н ц и п ы построения микропроцессорных


систем на основе однокристальных микроконтроллеров, использующих
различные п р и н ц и п ы обмена и н ф о р м а ц и е й ; рассмотреть тенденции в
развитии архитектуры М К .

Принципы организации взаимодействия


микропроцессора с внешними устройствами
Ф у н к ц и о н и р о в а н и е микропроцессорной системы, особенно ориен¬
тированной на системы управления, во многом определяется взаимодей­
ствием микропроцессора с в н е ш н и м и устройствами. Такое взаимодейст­
вие может строиться по трем о с н о в н ы м схемам:
• программно управляемый обмен;
• обмен по готовности внешнего устройства;
• обмен по прерыванию.
В первом случае микроконтроллер при возникновении необходимо¬
сти обмена обращается к ВУ и производит обмен и н ф о р м а ц и е й . Однако
при этом программа М К должна быть составлена таким образом, чтобы к
моменту обмена внешнее устройство было безусловно к нему готово.
Второй механизм обмена (обмен по готовности) предполагает перед
началом обмена проверку состояния готовности внешнего устройства.
Обмен производится л и ш ь при положительном результате такой провер­
ки. Этот способ используется в основном в тех случаях, когда м и к р о к о н ­
троллер не занят выполнением каких-либо иных задач и его работа стро­
ится по циклу «считывание показаний датчика — обработка — выдача уп­
равляющих воздействий — считывание показаний датчика — ...».
Обмен по прерыванию предусматривает прерывание естественного
порядка в ы п о л н е н и я программы в случае запроса на обмен от внешнего
устройства, который может поступить на М К в любой момент асинхрон¬
но по о т н о ш е н и ю к работе самого микроконтроллера. П о я в л е н и е запро­
са ведет к передаче управления специальной программе — обработчику
прерывания, которая и выполняет все необходимые для обмена действия,
после чего возвращает управление основной программе. Такой способ об¬
мена может быть использован в тех случаях, когда запросы от внешних ус¬
тройств поступают относительно редко, требуют быстрой реакции на них
и в то ж е время на микроконтроллер возложено р е ш е н и е ряда дополни -

202
Лекция 15 Построение микропроцессорных систем

тельных задач, в ы п о л н е н и е которых может проходить не в реальном мас¬


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

Рассмотрим реализацию этих п р и н ц и п о в на примере разработки


простейшей системы сбора и обработки и н ф о р м а ц и и , построенной на
основе микроконтроллера типа М К - 5 1 : М П С считывает показания от
аналоговых датчиков, преобразует эту и н ф о р м а ц и ю в ц и ф р о в о й код, об¬
рабатывает его и фиксирует результат во внешнем устройстве.
Взаимодействие м и к р о к о н т р о л л е р а с а н а л о г о - ц и ф р о в ы м преобра¬
зователем р а с с м о т р и м на п р и м е р е А Ц П К 1 1 1 3 П В 1 . Его у п р о щ е н н о е ус­
л о в н о - г р а ф и ч е с к о е и з о б р а ж е н и е , содержащее о б о з н а ч е н и я только тех
входов и выходов, к о т о р ы е используются п р и работе с М К , п р и в е д е н о
на р и с . 15.1, а в р е м е н н а я д и а г р а м м а , и л л ю с т р и р у ю щ а я его работу, — на
р и с . 15.2. А Ц П запускает п р е о б р а з о в а н и е «аналог-код» в м о м е н т пере¬
к л ю ч е н и я сигнала «Г/П» («гашение/преобразование») с в ы с о к о г о уров­
н я на н и з к и й . П р е о б р а з о в а н и е осуществляется не более 30 м к с ^ п р <
30мкс). Об о к о н ч а н и и п р е о б р а з о в а н и я свидетельствует п о я в л е н и е сиг­
нала н и з к о г о уровня на выходе ГД («готовность данных»). В этот м о ­
м е н т ц и ф р о в ы е выходы А Ц П (Q) переходят из с о с т о я н и я в ы с о к о г о и м ­
педанса в с о с т о я н и е выдачи ц и ф р о в о г о кода. Ц и ф р о в о й к о д на выходе
А Ц П — 10-разрядный (разряд Q0 — с т а р ш и й ) . Д л я в ы п о л н е н и я следу­
ю щ е г о п р е о б р а з о в а н и я А Ц П требует предварительной подачи сигнала
г а ш е н и я высокого уровня длительностью н е м е н е е 10 м к с на вход Г / П

203
Курс Архитектура микропроцессоров

(Ъ^ > 10мкс). П р и э т о м ц и ф р о в ы е выходы Q переходят в состояние в ы ­


сокого и м п е д а н с а , в к о т о р о м остаются до п о я в л е н и я сигнала н и з к о г о
у р о в н я на выходе ГД.

О
А# D Q
0
1
2
3
D 4
5
6
7
8
с
Г/П К1113ПВ1 гд

Рис.15.1. Условно-графическое обозначение аналого-цифрового


преобразователя К1113ПВ1

Рис. 15.2. Временная диаграмма работы аналого-цифрового преоб­


разователя

204
Лекция 15 Построение микропроцессорных систем

Ввод по готовности проиллюстрируем на примере построения М П С ,


р е ш а ю щ е й следующую задачу.
Микропроцессорная система определяет среднее значение шести
последовательных опросов датчика и выводит полученное значение на
внешнее устройство через порт P2. Обращение к датчику осуществляется
1 раз в секунду. В промежутках между работой с датчиком М К на выходе
P2.7 формирует периодическую последовательность импульсов длитель­
ностью t = 200 м к с и периодом T = 800 мкс. Н а время работы с датчиком
генерация сигнала на выходе P2.7 приостанавливается.
Структурная схема системы представлена на рис. 15.3. Н а схеме и з о ­
бражены только те входы и выходы элементов, которые необходимы для
п о н и м а н и я взаимодействия устройств и разработки программы. Здесь
выход готовности данных аналого-цифрового преобразователя подсоеди­
нен к входу P1.5 микроконтроллера. Микроконтроллер запускает А Ц П
сигналом низкого уровня на выходе Р1.6 и постоянно контролирует со­
стояние входа P1.5. Появление на нем сигнала низкого уровня свидетель¬
ствует о том, что преобразование закончено и микроконтроллер может
приступить к обработке этих данных.

Рис. 15.3. Структурная схема микропроцессорной системы с вводом


и н ф о р м а ц и и по готовности данных

Прежде чем писать программу, обсудим вопрос, ответ на который


представляется очевидным: к а к определить среднее из нескольких значе­
ние? Ну конечно же так:

Однако если действовать напрямую по этой формуле, то в процессе


суммирования можно получить результат, выходящий за пределы разрядной

205
Курс Архитектура микропроцессоров

сетки М К , хотя очевидно, что среднее значение нескольких отсчетов, каж¬


дый из которых имеет допустимую длину, должно лежать в допустимых пре¬
делах. Можно использовать несколько вариантов решения этой проблемы:
1. Отслеживать появление переполнения и при необходимости пере­
ходить к расширенной разрядной сетке. Это ведет к усложнению
программы и сложностям при выполнении деления на последнем
шаге вычислений, так как команда деления, входящая в систему
команд М К - 5 1 , позволяет делить л и ш ь 8-разрядные операнды.
2. Преобразовать вычисление среднего значения к виду:

Однако при этом возрастает количество операций деления и снижа­


ется точность вычислений.
Таким образом, даже самый простой, казалось бы, вопрос может
весьма существенно отразиться на вариантах построения м и к р о п р о ц е с ­
сорной системы и разработке алгоритмов ее ф у н к ц и о н и р о в а н и я .
Так как нашей целью является анализ вариантов обмена и н ф о р м а ­
цией между М К и в н е ш н и м устройством, а не иллюстрация вычислитель¬
ных возможностей микроконтроллера, используем третий вариант реше¬
ния. Будем считывать с А Ц П 5-разрядный код, фактически снижая точ­
н о с т ь п р е д с т а в л е н и я п о к а з а н и я д а т ч и к а , н о о б е з о п а с и в себя от
возможных переполнений при суммировании 6 показаний: сумма всех
показаний н и при каких значениях не выйдет за пределы 8-разрядной
сетки. В схеме подключения учтено, что на выходе А Ц П старшим разря­
дом кода является Q0, а в М К разряд 0 — младший.
Отсчет интервала в 1 сек проведем с п о м о щ ь ю таймера/счетчика
Т / С 0 , работающего в режиме 2, что обеспечивает его автоматическую пе¬
резагрузку, и регистров R1 и R2. Таймер/счетчик настроим на выдачу сиг¬
нала переполнения каждые 250 мкс, а с п о м о щ ь ю регистров R1 и R2 о р ­
ганизуем вложенный ц и к л для подсчета 4000 вхождений (R1 = 250, R2 =
16) в обработчик прерываний.
Временные задержки, используемые при генерации сигнала на вы¬
ходе P2.7 и сигнала гашения А Ц П , в ы п о л н и м с учетом длительности в ы ­
полнения отдельных команд М К (см табл. 14.3).
Полученная программа приведена ниже.

; Ввод и н ф о р м а ц и и по готовности
.ORG 0H
A J M P Start ; на начало программы
.ORG 0BH
A J M P Int_TC0 ; на обработчик прерывания Т / С 0

206
Лекция 15 Построение микропроцессорных систем

. O R G 30H
Start: MOV IE,#00000010b ; разрешение прерываний от Т / С 0
MOV TCON,#0 ; сброс флагов, останов Т / С 0
MOV P0,#00011111b
MOV P1,#01100000b
MOV P2,#00000000b
MOV TMOD,#00000010b ; Т / С 0 в режим 2
MOV TL0,#6 ; настройка Т / С 0 на 250 м к с
MOV TH0,#6
CLR A
MOV R0,#6 ; количество опросов датчика
MOV R1,#250
;2=0
MOV R2,#16
SETB TR0 ; запуск T / C 0
SETB EA ; разрешение всех прерываний
; Генерация сигнала на выходе P2.7
Cycle: S E T B P2.7 ; P2.7 = 1
MOV R3,#100
Delay1: D J N Z R3,DELAY1 ; задержка на t = 200 м к с
CLR P2.7 ; P2.7 = 0
MOV R3,#3 ; Задержка на T—t = 600 м к с
Delay2: MOV R4,#100
D J N Z R4,$
D J N Z R3,Delay2
A J M P Cycle ; возврат на ц и к л генерации сигнала
; Обработчик прерываний от таймера
Int_TC0: C L R TR0 ; останов таймера
D J N Z R1,Out_Int ; подсчет количества входов в обработчик
MOV R1,#250
D J N Z R2,Out_Int
MOV R2,#16
Opros: CLR P1.6 ; запуск А Ц П
JB P1.5,$ ; ожидание готовности данных
ADD A,P0
SETB
MOV
P1.6
R5,#5
;2 2
; гашение А Ц П
= + D;

D J N Z R5,$
D J N Z R0, Opros ; проверка о к о н ч а н и я опроса
MOV B,#6 ; вычисление среднего значения
DIV AB
ANL P2,#11100000b
2/
; вывод результата
; Dср = n
207
Курс Архитектура микропроцессоров

ORL P2,A
SETB P2.5 ; строб записи в ВУ
CLR P2.5
CLR A ; восстановление параметров цикла
MOV R0,#6
Out Int: SETB TR0 ; запуск таймера
RETI ; выход и з обработчика
.END

Программно управляемый ввод предполагает, ч т о к моменту обраще¬


н и я микроконтроллера к внешнему устройству последнее готово к обме­
ну. Эта ситуация требует учета особенностей работы конкретного устрой­
ства. В н а ш е м случае анализ работы аналого-цифрового преобразователя
показывает, что если между запуском А Ц П и считыванием с него инфор¬
м а ц и и проходит н е менее 30 м к с , то это гарантирует завершение преобра­
зования аналог-код и достоверность данных на выходе преобразователя.
Анализ времени в ы п о л н е н и я некоторого участка программы м о ж н о сде­
лать на основе данных о времени выполнения отдельных команд, приве­
денных в табл. 14.3. П р и составлении программы для р е ш е н и я нашей за­
дачи м ы введем эту задержку я в н ы м образом, используя команды работы
с циклами.
Пусть задача ставится так: разработать микропроцессорную систему,
которая определяет максимальное значение шести последовательных по¬
казаний датчика и выводит полученное значение на внешнее устройство.
Обращение к датчику осуществляется 1 раз в секунду. В промежутках
между работой с датчиком М П С на выходе P2.7 формирует периодичес¬
кую последовательность импульсов длительностью t = 200 мкс и перио¬
дом T = 800 мкс.
В этом случае схема М П У будет аналогична схеме, представленной
на рис. 15.3, за исключением того, что в ней будет отсутствовать л и н и я ,
соединяющая выход готовности данных А Ц П с микроконтроллером.
Программа р е ш е н и я этой задачи имеет следующий вид:

; Программно управляемый ввод


.ORG 0H
A J M P Start ; на начало программы
.ORG 0BH
A J M P Int_TC0 ; на обработчик таймера Т / С 0
. O R G 30H
Start: MOV IE,#00000010b
MOV TCON,#0 ;сброс флагов, останов Т / С 0
MOV P0,#00011111b

208
Лекция 15 Построение микропроцессорных систем

MOV P1,#01000000b
MOV P2,#00000000b
MOV TMOD,#00000010b
MOV TL0,#6
MOV TH0,#6
MOV R0,#6 ; количество опросов датчика
MOV R1,#250
MOV R2,#16
MOV R6,#0 ;регистр для хранения максимума
S E T B TR0 ; запуск T / C 0
SETB EA ; разрешение всех прерываний
; Генерация сигнала на выходе P2.7
Cycle: S E T B P2.7 ; P2.7 = 1
MOV R3,#100
Delay1: D J N Z R 3 , D E L A Y 1 ; задержка на t = 200 мкс
CLR P2.7 ; P2.7 = 0
M O V R3,#3 ; Задержка на T—t = 600 м к с
Delay2: M O V R4,#100
D J N Z R4,$
D J N Z R3,Delay2
A J M P Cycle ; возврат на ц и к л генерации сигнала
; Обработчик прерываний от таймера
Int_TC: C L R TR0 ; останов таймера
D J N Z R1,Out_Int ; подсчет количества входов в обработчик
MOV R1,#250
D J N Z R2,Out_Int
MOV R2,#16
CLR P1.6 ; запуск А Ц П
MOV R5,#15
M1: D J N Z R5,M1 ;задержка на преобразования сигнала
M O V A,R6 ; сравнение с текущим максимумом
CLR C
S U B B A,P0
JNB A.7,M2
MOV R6,P0 ; замена текущего максимума
M2: S E T B P1.6 ; гашение А Ц П
MOV R5,#5 ; задержка на гашение А Ц П
M3: D J N Z R5,M3
D J N Z R0,Out_Int ;проверка окончания опроса
M O V A,R6
ANL P2,#11100000b ;вывод результата

209
Курс Архитектура микропроцессоров

ORL P2,A
CLR P2.5 ;строб записи в ВУ
SETB P2.5
MOV R6,#0 ;восстановление параметров цикла
MOV R0,#6
Out_Int: S E T B TR0 ;запуск таймера
RETI ;выход и з обработчика
.END

Анализ ввода по прерыванию проведем на следующем примере.


Микропроцессорная система определяет минимальное значение п о ­
казаний 6 датчиков и выводит полученное значение на внешнее устройст­
во. Опрос датчиков проводится непрерывно. Во время в ы п о л н е н и я ана­
лого-цифрового преобразования М П С решает другие задачи.
Структура микропроцессорной системы в этом случае имеет вид,
представленный на рис. 15.4.

D MUX A#D - РО Р2
SMC

стр
0 1 0 0 D
| Датчик 0| 1 2 1 1
2 2 3
leg
2 2
3 3 4 3
D 3
4 4 Л_ 4 4 ft X "
5 5 5...7 5 С
6 t
7 Р1
1
А 1 РЗ
0 2 0,1
INTO
1 3...5 2
Г/П
2 К590КН6 К1113ПВ1 6 К1816ВЕ51 3...7

Рис. 15.4. Структурная схема М П С с 6 датчиками и вводом инфор¬


м а ц и и п о прерыванию

И з м е н е н и я п о с р а в н е н и ю с р и с . 15.3 к а с а ю т с я введения в М П С
аналогового мультиплексора и п о д к л ю ч е н и я выхода готовности д а н ­
н ы х А Ц П к о входу запроса в н е ш н е г о п р е р ы в а н и я I N T 0 (вход 2 порта
P3) м и к р о к о н т р о л л е р а . Здесь же следует обсудить н а с т р о й к у п р е р ы в а ­
н и я п о этому входу. К а к отмечалось в ы ш е , в н е ш н и е п р е р ы в а н и я мик¬
р о к о н т р о л л е р а могут быть н а с т р о е н ы на установку флага запроса л и б о

210
Лекция 15 Построение микропроцессорных систем

по н и з к о м у у р о в н ю , л и б о п о спаду сигнала н а входах I N T х . В н а ш е м


случае этот сигнал поступает с выхода готовности д а н н ы х А Ц П и п е р е ­
ключается с высокого уровня н а н и з к и й к а к раз в м о м е н т о к о н ч а н и я
п р е о б р а з о в а н и я . Так ч т о целесообразно настроить установку запроса
п р е р ы в а н и я п о входу I N T 0 н а в о с п р и я т и е среза этого сигнала. К тому
ж е в этом случае запрос будет сбрасываться автоматически п р и входе в
обработчик.
Перед запуском А Ц П м и к р о к о н т р о л л е р д о л ж е н выдать на адрес¬
н ы й вход мультиплексора н о м е р датчика, п о к а з а н и я которого будут
с ч и т а н ы . Д л я х р а н е н и я этого номера в п р о г р а м м е используется регистр
R2. Д л я о р г а н и з а ц и и с р а в н е н и я п о к а з а н и я первого датчика с т е к у щ и м
м и н и м а л ь н ы м з н а ч е н и е м в з а д е й с т в о в а н н ы й д л я этих целей регистр R6
занесем п р и и н и ц и а л и з а ц и и м а к с и м а л ь н о в о з м о ж н ы й 5-разрядный
к о д 00011111b.
Выполнение ф о н о в о й задачи имитируем бесконечным ц и к л о м , в ы ­
ход и з которого происходит по сигналу прерывания от А Ц П .
Текст программы с необходимыми комментариями приведен ниже.

; Ввод п о прерыванию
.ORG 0H
AJMP Start ; на начало программы
.ORG 3
AJMP Int INT0 ; на обработчик INT0
.ORG 30H
Start: MOV IE,#00000001b ; разрешение прерываний от INT0
MOV TCON,#00000001b ; сброс флагов, INT0 по срезу
MOV P0,#00011111b
A C A L L INIT
SETB EA ; разрешение всех прерываний
M: AJMP M ; фоновая задача
; Обработчик прерываний от INT0
Int_INT0: M O V A,R6 ; сравнение с текущим м и н и м у м о м
CLR C
SUBB A,P0
JB A.7,M1
MOV R6,P0
M1: SETB P1.6 ; гашение А Ц П
MOV R5,#5 ; задержка на гашение
DJNZ R5,$
DJNZ R3,M2 ; проверка опроса всех датчиков
ANL P2,#11100000B ; вывод результата

211
Курс Архитектура микропроцессоров

MOV A,R4
ORL P2,A
CLR P2.5 ; строб записи в ВУ
SETB P2.5
A C A L L INIT
RETI
M2: INC R2 ; А
др = А
др + 1

A C A L L INIT1
RETI ; выход из обработчика
; начальные установки
INIT: MOV R2,#11000000b ; R2<2...0> = <номер датчика>
MOV R6,#00011111b ; регистр для хранения минимума
MOV R3,#6 ; количество датчиков
INIT1: MOV P1,R2 ; выдача номера датчика
CLR P1.6 ; запуск А Ц П
RET
.END

Тенденции развития однокристальных


микроконтроллеров

Однокристальные М К имеют чрезвычайно большую область п р и м е ­


н е н и я , поэтому их разнообразие весьма ш и р о к о . В отличие от универ­
сальных микропроцессоров, где с появлением новых возможностей м и к ­
ропроцессоры предыдущих п о к о л е н и й достаточно быстро сходят со сце­
н ы , на р ы н к е однокристальных М К до настоящего времени присутствуют
как 4-разрядные Б И С с частотой работы в единицы мегагерц, так и 32-
разрядные схемы, работающие на частоте до 150 МГц. Ведутся разработ­
ки и в области 64-разрядных М П . Общее количество ежегодно выпускае­
мых в мире Б И С микроконтроллеров составляет более 10 млрд штук, и
оно постоянно увеличивается.
Основную часть всех выпускаемых в н а с т о я щ е е время изделий д а н ­
ного класса составляют м и к р о к о н т р о л л е р ы разрядностью 8 и 16 бит. 4-
р а з р я д н ы е м и к р о к о н т р о л л е р ы стабильно занимают о к о л о 10 % р ы н к а ,
н о за последнее время их доля начинает медленно уменьшаться. В то ж е
время наиболее и н т е н с и в н о развиваются в ы с о к о п р о и з в о д и т е л ь н ы е 32-
р а з р я д н ы е м и к р о к о н т р о л л е р ы с богатыми п е р и ф е р и й н ы м и в о з м о ж н о с ­
тями.
Хотя около 70 % всех выпускаемых микроконтроллеров имеют архи­
тектуру M C S - 5 1 , н о и она н е остается полностью н е и з м е н н о й , а постоян­
но модифицируется.

212
Лекция 15 Построение микропроцессорных систем

Разные ф и р м ы вносят в базовую архитектуру свои дополнения и усо­


вершенствования. Рассмотрим их на примере микроконтроллеров A V R
ф и р м ы Atmel.
Прежде всего отметим, что эта ф и р м а явилась родоначальником и с ­
пользования Flash-памяти на кристалле микроконтроллера. Это начина­
н и е оказалось очень удачным. Объем выпуска М К с однократно програм­
мируемой памятью программ постоянно сокращается из-за быстрого раз­
вития и удешевления Flash-технологии и замещается Flash-версиями. В
настоящее время три четверти всех выпускаемых в мире микроконтролле­
ров имеют Flash-память программ на кристалле.
Отметим особенности архитектуры и микроархитектуры микрокон¬
троллеров A V R :
• наличие трех видов з а п о м и н а ю щ и х устройств на кристалле:
• системной программируемой Flash-памяти программ с возможно­
стью программирования (загрузки) по последовательному интер¬
фейсу;
• программируемой энергонезависимой памяти данных E E P R O M и
• ОЗУ данных;
• программируемые биты защиты от чтения и записи программной
памяти и E E P R O M ; защита кода от несанкционированного досту­
па для выделенного во Flash-памяти блока;
• 32 восьмиразрядных регистра общего назначения, которые пред­
ставляются единым регистровым файлом и не разбиваются на
банки регистров;
• RISC-подобное процессорное ядро, использующее многоуровне­
вый конвейер; все 32 регистра непосредственно связаны с а р и ф ­
метико-логическим устройством, которое позволяет выполнять
одну команду для двух разных регистров за один такт системного
генератора;
• более развитая система прерываний, в том числе 4 уровня приори¬
тетов внешних запросов;
• встроенные в кристалл развитые и н т е р ф е й с н ы е возможности;
• специальные средства для управления встроенной системой от¬
ладки, поддерживающие протокол J T A G ;
• F U S E - б и т ы для задания настроек ряда внутренних блоков м и к р о ­
контроллера путем установки энергонезависимых «перемычек» на
этапе программирования М К , что обеспечивает микроконтролле¬
рам существенный запас гибкости при настройке на конкретное
приложение.
Система команд М К A V R расширена по о т н о ш е н и ю к М К - 5 1 и
включает около 130 команд. Она имеет больше команд работы с регистро¬
вым файлом и в н е ш н и м и устройствами и использует 5 режимов адреса-

213
Курс Архитектура микропроцессоров

ц и и , среди которых — косвенная автоинкрементная и косвенная автоде­


крементная. Система команд полностью ортогональная.
Главная к о н ц е п ц и я ф и р м ы Atmel состоит в том, что современные
микроконтроллеры д о л ж н ы не только обладать высокой производитель¬
ностью и высокой интеграцией встроенных устройств, но и иметь н и з к и е
стоимость и энергопотребление, небольшие размеры и широкую под¬
держку средствами разработки.
Для уменьшения энергопотребления в микроконтроллерах A V R
используется технология picoPower, которая устанавливает 6 в о з м о ж ­
н ы х р е ж и м о в э н е р г о с б е р е ж е н и я , в том ч и с л е за счет ш и р о к о г о д и а п а з о ­
на и с т о ч н и к о в п и т а н и я (от 1,6 до 3,6 вольт). К о н т р о л л е р ы этого с е м е й ­
ства с п о с о б н ы д л и т е л ь н о е время работать от батарейного и с т о ч н и к а
п и т а н и я в таких п р и л о ж е н и я х , к а к п р и б о р ы с Ж К И , у п р а в л е н и е осве­
щ е н и е м , с и с т е м ы безопасности, а в т о м а т и з а ц и я бытовых п р и б о р о в и
устройств.
Наибольшую известность фирма Atmel получила на р ы н к е 8-разряд¬
ных микроконтроллеров. Н о известна она также и в области производст­
ва 32-разрядных высокопроизводительных микроконтроллеров. Одной
из последних моделей в этом направлении являются микроконтроллеры
семейства A T 3 2 U C 3 . И х основные характеристики и особенности приве¬
д е н ы ниже:
• тактовая частота до 66 МГц;
• энергопотребление в активном режиме 0,48 мВт/МГц;
• Flash-память объемом до 256 Кбайт;
• память S R A M до 128 Кбайт;
• шесть 16-разрядных таймеров/счетчиков;
• сторожевой таймер (watchdog) с р а с ш и р е н н ы м и возможностями,
обеспечивающими дополнительную защищенность системы от
потери данных при «зависаниях» какого-либо из блоков в систе­
ме. Обработка «зависания» производится с возможностью сохра­
н е н и я критических данных перед генерацией сигнала сброса.
М а к с и м а л ь н а я длительность задержки перед ф о р м и р о в а н и е м
прерывания либо сигнала сброса увеличена до 8 секунд;
2
• до 4 интерфейсов U S A R T , интерфейс SPI, 2 интерфейса I C ; кон¬
троллер прямого доступа к памяти;
• выход сигналов ш и р о т н о - и м п у л ь с н о й модуляции ( Ш И М ) на
каждой л и н и и ввода/вывода; Ш И М обеспечивает выдачу перио¬
дического сигнала программируемой длительности и скважности
на исполнительные устройства системы управления;
• скоростной 12-разрядный 9-канальный А Ц П с частотой дискре­
тизации до 1,5 млн отсчетов в секунду;
• часы реального времени;

214
Лекция 15 Построение микропроцессорных систем

• аппаратная поддержка я з ы к а Java;


• поддержка виртуальной памяти;
• аппаратная поддержка команд, характерных для ц и ф р о в о й обра¬
ботки сигналов, например, умножение с накоплением ( M A C ) .

Краткие итоги. В л е к ц и и рассмотрены п р и н ц и п ы обмена и н ф о р м а ­


цией в микропроцессорной системе: программно управляемый обмен,
обмен по готовности, обмен по прерыванию. Приведены п р и м е р ы сис¬
тем, в которых реализованы эти п р и н ц и п ы обмена, и программы их рабо¬
ты. Рассмотрены тенденции развития р ы н к а однокристальных микро¬
контроллеров и развитие архитектуры M S C - 5 1 на примере микроконт¬
роллеров A V R ф и р м ы Atmel.

215
Курс Архитектура микропроцессоров

Лекция 16. Процессоры цифровой


обработки сигналов

Цель лекции: рассмотреть области п р и м е н е н и я , общие п р и н ц и п ы


построения и особенности архитектуры процессоров ц и ф р о в о й обработ¬
ки сигналов к а к отдельного класса микропроцессоров.

Процессоры цифровой обработки сигналов представляют собой класс


специализированных микропроцессоров, предназначенных для р е ш е н и я
задач цифровой обработки сигналов ( Ц О С ) , к которым относятся обработ¬
ка звуковых сигналов, обработка изображений, распознавание речи, рас¬
познавание образов, цифровая фильтрация, спектральный анализ и др.
Часто в литературе такие микропроцессоры называются цифровыми сиг­
нальными процессорами ( Ц С П ) , или D S P (Digital Signal Processors).
Первые процессоры этого класса появились в конце 1970-х годов. Тре­
бования практики, связанные с широким развитием мобильной беспровод­
ной связи, стационарных систем широкополосной связи, использованием
цифровой обработки сигналов в бытовой аудио- и видеотехнике и устройст¬
вах компьютерной периферии, с одной стороны и колоссальный прогресс
электронной промышленности с другой привели к тому, что к настоящему
времени производительность Ц С П возросла до сотен миллионов операций
в секунду, а цена упала более чем на 90 % и даже для самых мощных процес­
соров составляет в настоящее время менее $20. Низкая потребляемая м о щ ­
ность (менее 1 Вт на максимальной частоте работы процессора) обеспечива¬
ет их широкое использование в различных встраиваемых устройствах от бы¬
товой электроники до бортовых систем специального назначения.
Цифровая обработка сигналов — это арифметическая обработка по¬
следовательности значений амплитуд сигнала, получаемых через равные
промежутки времени. Главное, что отличает эту и н ф о р м а ц и ю , — она не¬
обязательно заносится в память и поэтому может оказаться недоступной
в будущем. Следовательно, обрабатывать ее нужно в реальном масштабе
времени (РМВ).
К основным особенностям цифровой обработки сигналов, которые во
многом определяют архитектуру процессоров DSP, относятся:
• поточный характер обработки больших объемов данных в Р М В ;
• обеспечение возможности интенсивного обмена с в н е ш н и м и уст¬
ройствами.
Для э ф ф е к т и в н о й реализации алгоритмов ц и ф р о в о й обработки сиг­
налов необходима аппаратная поддержка базовых операций Ц О С . Поэто¬
му рассмотрим вначале п р и н ц и п ы ц и ф р о в о й обработки сигналов, оказы¬
в а ю щ и е особое влияние на архитектуру Ц С П .

216
Лекция 16 Процессоры цифровой обработки сигналов

Любой аналоговый сигнал можно представить в виде характеристик —


либо амплитуда-время, либо частота-амплитуда. Д л я перехода от одной
формы представления к другой используется преобразование Фурье. Опера­
ции, выполняющие это преобразование, являются базовыми в цифровой
обработке сигналов.
Преобразование Фурье представляет собой в общем случае работу с
некоторой непрерывной функцией. С н е п р е р ы в н ы м преобразованием
Фурье удобно работать в теории, н о н а практике м ы обычно имеем дело с
дискретными д а н н ы м и . Д л я обработки звуковых и видеосигналов в к о м ­
пьютере о н и сначала преобразуются в цифровую форму и представляют­
ся в виде некоторого набора отсчетов частот и амплитуд, производимых
через определенные промежутки времени (период дискретизации). П о ­
этому здесь стоит говорить не об интегральном, а о дискретном преобразо¬
вании Фурье ( Д П Ф ) .
Пусть дана конечная последовательность чисел x , x x , x (в 0 b 2 N - 1

общем случае комплексных). Дискретное преобразование Фурье заключа­


ется в поиске другой последовательности X , X X , X , элементы 0 b 2 N - 1

которой вычисляются п о формуле:

N_ i —j 2nkn

Xne N 161
Xk=Yu ( )
n=0

Пусть дана конечная последовательность чисел X q , Х Х , X _ ! (в Ь 2 N

общем случае комплексных). Обратное дискретное преобразование Фурье


заключается в поиске другой последовательности х , х х , x _ эле­ 0 ь 2 N b

менты которой вычисляются п о формуле:

N _ i jlnkn

k = 0

В общем случае гармоническое колебание, которое имеет вид, пред­


ставленный н а рис. 16.1, описывается следующим выражением:

k
А А
x=Asm{2nt/T+q>)

Т Ф ЪТ Ф
\ 2 со 4 со СО

Ф Т Ф \ / t
со 4 со
А

Рис. 16.1. О б щ и й вид гармонического колебания

217
Курс Архитектура микропроцессоров

х=А$т(^ + Ф ) (16.3)

где А — амплитуда сигнала, Т — его период, ср — сдвиг фазы сигнала.


Это колебание м о ж н о описать также выражением:

х = A cos (cot + ф) (16.4)

где со = 2JC/T — круговая частота сигнала. Д а н н о е выражение будем н а з ы ­


вать гармоникой.
Преобразуем последнее выражение к виду:

х = A cos ф COS(2JC/T) — A sin ср sin(2jc/T) (16.5).

Выделим в ( 1 6 . 5 ) элементы, независимые от t, и обозначим их к а к Re


и Im. В результате получим:

х = Re COS(2JC/T) — I m sin(2jc/T),

где Re = A cos 2JC/T, Im = A sin 2JC/T.


П о величинам Re и I m м о ж н о однозначно восстановить амплитуду и
фазу исходной гармоники:

2 2
(р = Arctg —\,А = VRe + Im (16.6)

Разложим каждое комплексное число Х из выражения обратного к

преобразования Фурье (16.2) н а м н и м у ю и действительную составляю­


щ и е Х = R e + ф I m , а экспоненту — п о формуле Эйлера н а синус и к о ­
к k k

синус действительного аргумента. Получим:

N—\ е
(16-7)
• . ^ г ^ к • (2пкп\ Im / 2пкп\
к 1

+ г Х[— s m ( — ) - ^ c o s ( — ) ]
А; = 0

Рассмотрим теперь ф у н к ц и ю х = f(t), представляющую собой н е к о ­


торое звуковое и л и какое-либо иное колебание. Пусть это колебание о п и ­
сано г р а ф и к о м н а временном интервале [О, Т] (рис. 16.2).
Д л я обработки этого сигнала в компьютере нужно выполнить его
дискретизацию. С этой целью временной интервал делится н а N—1 частей

218
Лекция 16 Процессоры цифровой обработки сигналов

х 3

х 2

х х

х 0
IT 2J ЗТ 4J 51
N N N N N
X N

Рис. 16.2. Дискретизация гармонической ф у н к ц и и

и сохраняются значения ф у н к ц и и х , х х , x _ ! для N точек н а грани­


0 ь 2 N

цах интервалов.
В результате прямого дискретного преобразования Фурье могут быть
получены N значений для Х согласно (16.1).
к

Если теперь применить обратное дискретное преобразование Фурье,


то получится исходная последовательность {х }. Исходная последователь­
п

ность состояла из действительных чисел, а последовательность {Х } в об­ к

щ е м случае комплексная. Если приравнять нулю ее м н и м у ю часть, то п о ­


лучим:

N- 1
Rei, / 2пкп\ Im k . / 2пкп\ п

х =f(t ) = X [
п n N
к=0 (16.8)

Сопоставив эту формулу с формулами (16.4) и (16.6) для гармоники,


увидим, что выражение (16.8) представляет собой сумму из N гармониче­
ских колебаний разной частоты, фазы и амплитуды. То есть физический
смысл дискретного преобразования Фурье состоит в том, чтобы предста­
вить некоторый дискретный сигнал в виде суммы гармоник. Параметры
каждой гармоники вычисляются п р я м ы м преобразованием Фурье, а сум­
ма гармоник — обратным.
Теперь, например, операция «фильтр нижних частот», которая «выре­
зает» из сигнала все частоты выше некоторой заданной, может просто об­
нулить коэффициенты, соответствующие частотам, которые необходимо
удалить. Затем, после обработки, выполняется обратное преобразование.
Особенности цифровой обработки сигналов рассмотрим н а примере
алгоритма нерекурсивной фильтрации. Структура устройства, реализую­
щего д а н н ы й алгоритм, показана н а рис. 16.3.

219
Курс Архитектура микропроцессоров

х[к+1]

Умножи­
тель

г а,

т Умножи­
¥ тель Y[k]
+ •
X

т Умножи­
¥ тель

Циклический
буфер

Рис. 16.3. Схема работы нерекурсивного фильтра

Обработка заключается в ф о р м и р о в а н и и выходного сигнала Y[k] по


з н а ч е н и я м N последних входных отсчетов х[к], которые поступают на
вход устройства через определенный интервал времени Т. П р и н я т ы е от­
счеты сохраняются в ячейках циклического буфера. П р и приеме очеред­
ного отсчета содержимое всех ячеек буфера переписывается в соседнюю
п о з и ц и ю , самый старый отсчет покидает буфер, а н о в ы й записывается в
его младшую ячейку.
Аналитически алгоритм работы нерекурсивного фильтра записыва­
ется как:
N-1

Y[k] = ^x[k-i] *щ (16.9)


/= 0

где a — к о э ф ф и ц и е н т ы , определяемые типом фильтра.


t

Отсчеты с выходов элементов буфера поступают на умножители, на


вторые входы которых поступают к о э ф ф и ц и е н т ы a . Результаты произве­
t

д е н и й складываются и формируют отсчет выходного сигнала Y[k], после


чего содержимое буфера сдвигается на 1 п о з и ц и ю и ц и к л работы фильтра
повторяется. Выходной сигнал Y[k] должен быть вычислен до поступле­
н и я следующего входного сигнала, то есть за интервал T. В этом заключа­
ется суть работы устройства в реальном масштабе времени. Интервал вре­
м е н и T задается частотой дискретизации, которая определяется областью

220
Лекция 16 Процессоры цифровой обработки сигналов

п р и м е н е н и я фильтра. П о следствию из теоремы Котельникова в дискрет­


н о м сигнале период, соответствующий наивысшей представимой часто­
те, соответствует двум периодам дискретизации. П р и обработке звуково­
го сигнала частоту дискретизации м о ж н о принять в 40 кГц. В этом случае
если необходимо реализовать ц и ф р о в о й нерекурсивный фильтр 50-го п о ­
рядка, то за время в 1/40 кГц = 25 м к с должно быть в ы п о л н е н о 50 у м н о ­
ж е н и й и 50 н а к о п л е н и й результатов умножения. Д л я обработки видеосиг¬
нала интервал времени, за который д о л ж н ы быть в ы п о л н е н ы эти дейст¬
вия, будет на несколько порядков меньше.
Если выполнять Д П Ф входной последовательности напрямую, строго
по исходной формуле, то потребуется много времени. Посчитав по опреде­
2
лению ( N раз суммировать N слагаемых), получаем величину порядка N .
Тем н е менее, можно обойтись существенно меньшим числом операций.
Наиболее популярным из алгоритмов ускоренного вычисления Д П Ф
является метод Кули-Тьюки (Cooley-Tukey), п о з в о л я ю щ и й вычислить
k
Д П Ф для числа отсчетов N = 2 за время порядка N * l o g N (отсюда и назва­
2

ние — быстрое преобразование Фурье, Б П Ф , или в английском варианте


F F T — Fast Fourier Transformation). Основная идея этого метода заключает­
ся в рекурсивном разбиении массива чисел на два подмассива и сведении
вычисления Д П Ф от целого массива к вычислению Д П Ф от подмассивов в
отдельности. П р и этом процесс разбиения исходного массива на подмасси-
вы проводится по методу побитовой обратной сортировки (bit-reversal sort­
ing). Сначала входной массив делится на две подмассива — с четными и н е ­
четными номерами. Каждый из подмассивов перенумеровывается и снова
делится на два подмассива — с четными и нечетными номерами. Эта сор­
тировка продолжается до тех пор, пока размер каждого подмассива н е до¬
стигнет 2 элементов. В результате (что можно показать математически) но¬
мер каждого исходного элемента в двоичной системе переворачивается. То
есть, например, для однобайтных номеров двоичный номер 00000011 ста­
нет номером 110000000, номер 01010101 — номером 10101010.
Существуют алгоритмы Б П Ф для случаев, когда N является степе¬
нью произвольного простого числа (а н е только д в о й к и ) , а также в случае,
когда число N является произведением степеней простых чисел любого
числа отсчетов. Однако Б П Ф , реализованное п о методу Кули-Тьюки для
k
случая N = 2 , получило наиболее ш и р о к о е распространение. П р и ч и н а
этого в том, что алгоритм, построенный по этому методу, обладает рядом
очень хороших технологических свойств:
• структура алгоритма и его базовые операции н е зависят от числа
отсчетов (меняется только число прогонов базовой операции);
• алгоритм легко распараллеливается с использованием базовой
операции и конвейеризуется, а также легко каскадируется ( к о э ф ­
ф и ц и е н т ы Б П Ф для 2 N отсчетов могут быть получены преобразо-

221
Курс Архитектура микропроцессоров

ванием к о э ф ф и ц и е н т о в двух Б П Ф по N отсчетов, полученных


«прореживанием» исходных 2 N отсчетов через один);
• алгоритм прост и компактен, допускает обработку данных «на ме­
сте» и не требует дополнительной оперативной памяти.

Однокристальные микроконтроллеры и даже универсальные микро¬


процессоры оказываются относительно медленными при в ы п о л н е н и и
операций, характерных для Ц О С . К тому ж е требования к качеству преоб­
разования аналоговых сигналов постоянно возрастают. В сигнальных ми­
кропроцессорах такие операции поддерживаются на аппаратном уровне и
выполняются, соответственно, достаточно быстро. Работа в реальном
масштабе времени требует от процессора также поддержки на аппаратном
уровне таких действий, как обработка прерываний, программных циклов.
Все это приводит к тому, что DSP-процессоры, архитектурно в к л ю ­
чая в себя многие черты к а к универсальных микропроцессоров, особенно
с RISC-архитектурой, так и однокристальных микроконтроллеров, в то же
время значительно отличаются от них. Универсальный микропроцессор
п о м и м о чисто вычислительных операций выполняет ф у н к ц и ю объединя¬
ющего звена всей микропроцессорной системы, в частности компьютера.
О н должен управлять работой различных компонентов аппаратного обес­
печения, таких как дисководы, графические дисплеи, сетевой интерфейс,
с тем чтобы обеспечить их согласованную работу. Это приводит к доста¬
точно сложной архитектуре, поскольку она должна поддерживать наряду
с целочисленной арифметикой и операциями с плавающей запятой такие
базовые ф у н к ц и и , как защита памяти, мультипрограммирование, обра¬
ботка векторной графики и т. п. В итоге т и п и ч н ы й универсальный микро¬
процессор с C I S C - , а зачастую и RISC-архитектурой имеет систему из не¬
сколько сотен команд, которые обеспечивают выполнение всех этих
ф у н к ц и й , и соответствующую аппаратную поддержку. Это ведет к необ¬
ходимости иметь в составе такого М П десятки миллионов транзисторов.
В то ж е время DSP-процессор является узкоспециализированным ус­
тройством. Его единственная задача — быстро обрабатывать поток циф¬
ровых сигналов. О н состоит главным образом из высокоскоростных ап¬
паратных схем, в ы п о л н я ю щ и х арифметические ф у н к ц и и и манипулиру¬
ю щ и х б и т а м и , о п т и м и з и р о в а н н ы х т а к и м о б р а з о м , ч т о б ы быстро
обрабатывать большие объемы данных. В силу этого набор команд у D S P
куда меньше, чем у универсального микропроцессора: их число обычно
не превышает 80. Это значит, что для D S P требуется облегченный декодер
команд и гораздо меньшее число исполнительных устройств. К р о м е того,
все исполнительные устройства в конечном итоге д о л ж н ы поддерживать
высокопроизводительные арифметические операции. Таким образом, ти¬
п и ч н ы й DSP-процессор состоит не более чем из нескольких сот тысяч (а

222
Лекция 16 Процессоры цифровой обработки сигналов

не десятков миллионов, как в современных C I S C - М П ) транзисторов. В


силу этого такие М П потребляют меньше энергии, что позволяет исполь­
зовать их в продуктах, работающих от батарей. К р а й н е упрощается их
производство, поэтому они находят себе п р и м е н е н и е в недорогих устрой­
ствах. Сочетание низкого энергопотребления и невысокой стоимости
позволяет использовать их не только в высокой сфере телекоммуника¬
ц и й , но и в сотовых телефонах и роботах-игрушках.

Отметим основные особенности архитектуры процессоров цифровой


обработки сигналов:
1. Гарвардская архитектура, основу которой составляет физическое и
логическое разделение памяти команд и памяти данных. Ключевые коман­
д ы DSP-процессора являются многооперандными, и ускорение их работы
требует одновременного чтения нескольких ячеек памяти. Соответственно
на кристалле имеются раздельные ш и н ы адреса и данных (в некоторых ти­
пах процессоров — несколько ш и н адреса и данных). Это позволяет совме­
щать во времени выборку операндов и исполнение команд. Использование
модифицированной гарвардской архитектуры предполагает, что операнды
могут храниться не только в памяти данных, но и в памяти команд вместе с
программами. Например, в случае реализации цифровых фильтров коэф¬
фициенты могут храниться в памяти программ, а значения данных — в па­
мяти данных. Поэтому коэффициент и данные могут выбираться в одном
м а ш и н н о м цикле. Для обеспечения выборки команды в том же м а ш и н н о м
цикле используется либо кэш-память программ, либо двукратное обраще­
ние к памяти программ за время машинного цикла.
2. Для сокращения времени выполнения одной из основных опера­
ц и й цифровой обработки сигнала — умножения — применяется аппарат­
н ы й умножитель. В процессорах общего назначения эта операция реали­
зуется за несколько тактов сдвига и сложения и занимает много времени,
а в DSP-процессорах благодаря специализированному умножителю нужен
всего один цикл. Встроенная схема аппаратного умножения позволяет в ы ­
полнить за 1 такт основную операцию Ц О С — умножение с накоплением
(Multiply-Accumulate — M A C ) для 16- и / и л и 32-разрядных операндов.
3. Аппаратная поддержка циклических буферов. Н а п р и м е р , для
фильтра, представленного на рис. 16.3, при каждом вычислении отсчета
выходного сигнала используется н о в ы й отсчет входного сигнала, кото­
р ы й сохраняется в памяти на месте самого старого. Для такого циркули­
рующего буфера может использоваться ф и к с и р о в а н н а я область ОЗУ. П р и
этом во время вычислений генерируются л и ш ь последовательные значе­
н и я адресов ОЗУ вне зависимости от того, какая операция — запись или
чтение — выполняется в настоящий момент. Аппаратная реализация ц и к ­
лических буферов позволяет установить параметры буфера (адрес начала,

223
Курс Архитектура микропроцессоров

длина) в программе вне тела цикла фильтрации, что позволяет сократить


время в ы п о л н е н и я циклического участка программы.
4. С о к р а щ е н и е длительности командного такта. Это во многом обес¬
печивается приемами, характерными для RISC-процессоров. Главными
из них являются размещение операндов большинства команд в регистрах,
а также конвейеризация на уровне команд и микрокоманд. Конвейер
имеет от 2 до 10 ступеней, что позволяет на различных стадиях выполне­
н и я одновременно обрабатывать до 10 команд. П р и этом используется ге­
нерация адресов регистров параллельно с выполнением арифметических
операций, а также многопортовый доступ к памяти. Сюда ж е м о ж н о от­
нести и такой прием, характерный для универсальных микропроцессоров
с EPIC-архитектурой, как п р и м е н е н и е команд со сверхбольшой д л и н о й
слова (VLIW), генерируемых на стадии к о м п и л я ц и и программы. Этому
ж е служит и рассмотренная в ы ш е гарвардская архитектура процессора,
характерная для однокристальных микроконтроллеров.
5. Наличие на кристалле процессора внутренней памяти, что роднит
Ц С П с однокристальными М К . Встроенная в процессор память обычно
имеет значительно большее быстродействие, чем внешняя. Наличие встро­
енной памяти позволяет значительно упростить систему в целом, умень¬
шить ее размеры, энергопотребление и стоимость. Емкость внутренней па¬
мяти является результатом определенного компромисса. Ее увеличение ве¬
дет к удорожанию процессора и увеличивает энергопотребление, а
ограниченная емкость памяти программ не позволяет хранить сложные ал­
горитмы. Большинство DSP-процессоров с фиксированной точкой имеют
малую емкость внутренней памяти, обычно от 4 до 256 Кбайт, и невысокую
разрядность внешних ш и н данных, связывающих процессор с внешней па­
мятью. В то ж е время Ц С П с плавающей точкой обычно предполагают ра­
боту с большими массивами данных и сложными алгоритмами и имеют л и ­
бо встроенную память большой емкости, либо большую разрядность адрес­
ных ш и н для подключения внешней памяти (а иногда и то, и другое).
6. Ш и р о к и е возможности по аппаратному взаимодействию с внеш¬
н и м и устройствами, включающие:
• большое разнообразие интерфейсов, в том числе контроллеры ло¬
кальной п р о м ы ш л е н н о й сети C A N , встроенные коммуникацион¬
2
н ы е (SCI) и п е р и ф е р и й н ы е (SPI) интерфейсы, I C , U A R T ;
• несколько входов для аналоговых сигналов и, соответственно,
встроенный А Ц П ;
• выходные каналы широтно-импульсной модуляции ( Ш И М ) ;
• развитую систему внешних прерываний;
• контроллеры прямого доступа в память.
7. В некоторых DSP-семействах предусмотрены специальные аппа¬
ратные средства, облегчающие создание мультипроцессорных систем с
параллельной обработкой данных для н а р а щ и в а н и я производительности.
224
Лекция 16 Процессоры цифровой обработки сигналов

8. D S P - п р о ц е с с о р ы ш и р о к о используются в мобильных устройствах,


где потребляемая мощность является основной характеристикой. Для
с н и ж е н и я энергопотребления в сигнальных процессорах применяется
множество методов, в том числе уменьшение н а п р я ж е н и я питания и вве­
дение ф у н к ц и й управления потреблением, например, динамическое и з ­
менение тактовой частоты, переключение в с п я щ и й или дежурный режим
либо отключение не используемой в д а н н ы й момент периферии. Следует
отметить, что эти меры оказывают значительное воздействие на скорость
работы процессора и при некорректном использовании могут привести к
неработоспособности проектируемого устройства (в качестве примера
м о ж н о упомянуть некоторые сотовые телефоны, которые в результате
о ш и б о к в программах управления энергопотреблением иногда перестава­
ли включаться) или к ухудшению его эксплуатационных характеристик
(например, значительному времени восстановления работоспособности
при выходе из спящего режима).
Система команд сигнальных процессоров имеет многие черты систем
команд универсальных микропроцессоров (особенно с RISC-архитекту­
рой) и однокристальных микроконтроллеров. Она включает в себя основ¬
н ы е арифметические и логические операции и команды переходов, но в
меньшем, чем в универсальных М П , количестве. Ч и с л о режимов адреса¬
ц и и операндов также относительно невелико. Команда имеет простой,
четко заданный формат. Д л и н а команды составляет одно, реже два 16-
разрядных слова. Однако наряду с использованием сокращенного набора
к о м а н д , в D S P - п р о ц е с с о р а х п р и м е н я ю т с я и такие характерные для
MMX-обработки аппаратно поддерживаемые инструкции, как команды
поиска минимума и максимума, получения абсолютного значения, сло­
ж е н и я с н а с ы щ е н и е м , при котором в случае переполнения при сложении
двух чисел результату присваивается максимально возможное в д а н н о й
разрядной сетке значение. Это ведет к уменьшению количества конфлик¬
тов в конвейере и повышает эффективность работы процессора.
С другой стороны, Ц С П содержат ряд команд, наличие которых
обусловлено с п е ц и ф и к о й их п р и м е н е н и я и которые вследствие этого ред¬
ко присутствуют в микропроцессорах других типов. Прежде всего это, ко¬
нечно, команда умножения с накоплением суммы M A C , лежащая в осно¬
ве Ц О С : А = В*С+А. В системах команд некоторых сигнальных процес¬
соров м о ж н о при программировании указать число в ы п о л н е н и й этой
команды в цикле и правила изменения индексов для адресации операн­
дов В и С. П р и этом в отличие от команд повторения обычных процессо¬
ров сигнальный процессор может аппаратно поддерживать проверку ус¬
ловия завершения цикла. Сюда ж е м о ж н о отнести и команды сдвига (пе­
резаписи) в соседнюю ячейку О З У данных, поддерживающие работу
циклического буфера для подготовки умножения в следующем такте.

225
Курс Архитектура микропроцессоров

Для э ф ф е к т и в н о й реализации алгоритмов Б П Ф в систему команд


некоторых DSP-процессоров включены возможности адресации с ревер¬
сированием бит адреса.
П р о г р а м м и р о в а н и е м и к р о п р о ц е с с о р о в этого класса т а к ж е имеет
свои о с о б е н н о с т и . З н а ч и т е л ь н о е удобство д л я разработчика, о б ы ч н о
связываемое с использованием языков высокого уровня, в большинст­
ве случаев оборачивается п о л у ч е н и е м м е н е е к о м п а к т н о г о и быстрого
кода. Так к а к о с о б е н н о с т и Ц О С предполагают работу в р е а л ь н о м вре¬
м е н и , это п р и в о д и т к необходимости и с п о л ь з о в а н и я для р е ш е н и я тех
ж е задач более м о щ н ы х и дорогих DSP. Такая ситуация о с о б е н н о к р и ­
т и ч н а для к р у п н о с е р и й н о й п р о д у к ц и и , где р а з н и ц а в стоимости более
производительного D S P и л и д о п о л н и т е л ь н о г о п р о ц е с с о р а играет важ¬
ную роль. В то ж е время в с о в р е м е н н ы х условиях скорость разработки
(и, следовательно, выхода нового изделия на р ы н о к ) может п р и н е с т и
больше выгод, ч е м затраты в р е м е н и на о п т и м и з а ц и ю кода п р и написа¬
н и и п р о г р а м м ы на ассемблере.
К о м п р о м и с с н ы м подходом здесь служит использование ассемблера
для н а п и с а н и я наиболее критичных с точки зрения время- и ресурсоем-
кости участков программы, в то время как основная часть программы п и ­
шется на я з ы к е высокого уровня, как правило, Си или С и + + .
Предположим, что программа на С и пишется в 5 раз быстрее, чем на
ассемблере, а получаемый в результате трансляции код работает пример¬
но во столько ж е раз медленнее. Тогда в случае, когда некоторый участок
программы объемом 20 % кода занимает 80 % времени в ы п о л н е н и я п р о ­
граммы, что бывает достаточно часто («правило 80/20»), получим, что
программирование этого фрагмента на ассемблере приведет к увеличе¬
н и ю времени программирования на 80 %, но уменьшит время работы
программы почти втрое (табл. 16.1).

Таблица 16.1. Анализ эффективности различных методов програм­


мирования

Вся программа Вся программа Программа на Си


на Си на ассемблере с фрагментом
на ассемблере

Время программиро­ 100 500 180


вания (в условных
единицах)
Время выполнения
программы (в условных
единицах) 100 20 36

226
Лекция 16 Процессоры цифровой обработки сигналов

Вот почему программы для процессоров, имеющих критичное зна­


ч е н и е времени работы, хотя в большинстве случаев и н а п и с а н ы на С и , но
пестрят ассемблерными вставками.
К интересным особенностям DSP-ассемблеров м о ж н о отнести на¬
личие двух ф о р м записи многих команд — мнемонической и алгебраиче¬
ской. Мнемоническая форма аналогична записи команд для обычных
микропроцессоров, например, A D D dst, src. Другая, алгебраическая ф о р ­
ма в ассемблерах микропроцессоров других классов используется реже, в
то время как на DSP-ассемблере упомянутая команда может быть записа¬
на в виде dst = dst + src. Обычно ассемблеры D S P понимают обе ф о р м ы
записи, н о , например, ассемблеры A D I и Lucent применяют только алге¬
браическую запись.

Спектр к о м п а н и й , представленных на р ы н к е DSP-процессоров, бо¬


лее ш и р о к , чем среди производителей универсальных микропроцессоров.
В настоящее время доминирующее положение на р ы н к е Ц С П занимает
ф и р м а Texas Instruments. Среди остальных производителей этой продук¬
ц и и следует выделить ф и р м ы Freescale Semiconductor (ранее подразделе¬
н и е Motorola), Analog Devices, Philips Semiconductors и Agere Systems
(Lucent Microelectronic) (табл. 16.2). Следует отметить, что д а н н ы й р ы н о к
является очень п о д в и ж н ы м , что приводит к его постоянному перераспре­
делению между к о м п а н и я м и и появлению на р ы н к е новых игроков.

Таблица 16.2. О с н о в н ы е производители сигнальных процессоров


(2006 год)

Компания Доля рынка


Texas Instruments 54,3 %
Freescale Semiconductor 14,1 %
Analog Devices 8,0 %
Philips Semiconductors 7,5 %
Agere Systems 7,3 %
Прочие 8,8 %

С ростом числа областей п р и м е н е н и я Ц О С и сложности алгоритмов


обработки возрастают требования к сигнальным процессорам в плане п о ­
в ы ш е н и я быстродействия и оснащенности и н т е р ф е й с н ы м и и другими
специализированными узлами. В настоящее время на р ы н к е присутству¬
ет множество типов Ц С П , как универсальных, так и ориентированных на
достаточно узкий круг задач. Естественно, н и один из процессоров не мо¬
жет быть оптимальным для всех приложений. Поэтому первая задача раз-

227
Курс Архитектура микропроцессоров

работчика — выбор процессора, наиболее подходящего п о производи­


тельности, цене, наличию определенной п е р и ф е р и и , потребляемой м о щ ­
ности, простоте использования и другим критериям.
Н а п р и м е р , для таких портативных устройств, к а к мобильные теле­
ф о н ы , портативные ц и ф р о в ы е плееры, первостепенными являются стои­
мость, степень интеграции и потребляемая мощность, а максимальная
производительность зачастую н е нужна, так к а к обычно влечет за собой
значительное п о в ы ш е н и е потребляемой мощности, н е давая преиму¬
ществ п р и обработке относительно низкоскоростных аудиоданных. В то
ж е время для гидроакустических или радиолокационных систем опреде­
л я ю щ и м и параметрами являются скорость работы, наличие высокоско­
ростных интерфейсов, а стоимость является второстепенным критерием.
Хотя большинство ф и р м выпускает широкую номенклатуру процес­
соров, которые могут быть использованы для различных п р и м е н е н и й ,
среди них наблюдается определенная специализация. Так, следует отме­
тить предпочтительность процессоров Analog Devices для приложений,
требующих в ы п о л н е н и я больших объемов математических вычислений
(таких к а к цифровая фильтрация сигнала, вычисление корреляционных
ф у н к ц и й и т. п.), поскольку их производительность на подобных задачах
выше, ч е м у процессоров к о м п а н и й Freescale и Texas Instruments. В то ж е
время для задач, требующих в ы п о л н е н и я интенсивного обмена с внеш¬
н и м и устройствами (многопроцессорные системы, различного рода про¬
м ы ш л е н н ы е контроллеры), предпочтительнее использовать процессоры
Texas Instruments, обладающие высокоскоростными и н т е р ф е й с н ы м и под¬
системами. К о м п а н и я Freescale является лидером по объему производст¬
ва относительно дешевых и достаточно производительных 16- и 24-раз¬
рядных сигнальных процессоров с ф и к с и р о в а н н о й точкой.

Рассмотрим структуру и основные характеристики DSP-процессора


на примере процессора цифровой обработки сигналов TMS320F2833x фир¬
м ы Texas Instruments.
Семейство этих п р о ц е с с о р о в представляет собой 32-разрядные ц и ­
ф р о в ы е сигнальные п р о ц е с с о р ы , о б ъ е д и н я ю щ и е в себе м о щ н ы е и эф¬
ф е к т и в н ы е технологии ц и ф р о в о й обработки сигналов с богатым набо¬
р о м п е р и ф е р и й н ы х устройств и простотой и с п о л ь з о в а н и я . Д а н н а я плат­
форма процессоров изначально создавалась для приложений
управления электродвигателями и электроприводами. В процессе р а з ­
вития о н и приобрели более развитую п е р и ф е р и ю и м о щ н о е 32-разряд­
н о е я д р о сигнального процессора, за счет чего область их п р и м е н е н и я
значительно р а с ш и р и л а с ь и в н а с т о я щ е е время включает в себя также те
области, где р а н е е т р а д и ц и о н н о п р и м е н я л и с ь м о щ н ы е м и к р о к о н т р о л ­
л е р ы . В н а с т о я щ е е в р е м я с е м е й с т в о в к л ю ч а е т в себя м о д е л и

228
Лекция 16 Процессоры цифровой обработки сигналов

TMS320F2832, TMS320F2833 и TMS320F2835, о т л и ч а ю щ и е с я частотой


с и н х р о н и з а ц и и , емкостью внутренней п а м я т и и н е к о т о р ы м и другими
к о л и ч е с т в е н н ы м и параметрами. В д а л ь н е й ш е м о п и с а н и и м ы будем
опираться на характеристики Ц С П модели TMS320F2835, структура к о ­
торого представлена на рис. 16.4.
Секретный код

Рис. 16.4. Ц и ф р о в о й сигнальный процессор TMS320F2835

Процессор содержит блок обработки чисел с плавающей точкой, а п ­


паратный умножитель, п о з в о л я ю щ и й выполнять за один цикл операцию
типа 32x32 бит M A C либо две операции типа 16x16 бит M A C , а также так
называемое атомарное АЛУ, которое обеспечивает выполнение за 1 цикл
таких операций, к а к ч т е н и е - м о д и ф и к а ц и я - з а п и с ь по любому из адресов
памяти, что позволяет значительно повысить производительность и эф¬
фективность кода.
В состав процессора входят разнообразные з а п о м и н а ю щ и е устрой¬
ства:
• однопортовое ОЗУ ( S A R A M ) объемом 34К*16 слов; оно состоит
из 8 блоков с организацией 4 К 16-разрядных слов каждый и 2 бло-

229
Курс Архитектура микропроцессоров

ков емкостью п о 1К*16 байт, в которых может храниться таблица


векторов прерываний;
• П З У (в этом процессоре обозначается к а к O T P — one-time pro­
grammable): 1К*16 разрядов;
• модуль Flash-памяти емкостью 512 Кбайт, который позволяет раз­
работчику многократно изменять программу в процессоре, в том
числе и непосредственно в готовом изделии, что обеспечивает
максимальную легкость и удобство обновления программных вер­
сий приборов. Flash-память разбита на секторы, что позволяет
пользователю программировать л и ш ь часть памяти, н е осуществ­
ляя предварительного полного стирания. Однако следует отме­
тить, что Flash-память работает медленнее, ч е м ядро процессора и
его основная память (память программ и память данных), поэто¬
му некоторые части кода, такие к а к ф у н к ц и и прерываний, а так¬
ж е ф у н к ц и и , критичные к скорости в ы п о л н е н и я , н е могут выпол­
няться из Flash;
• загрузочная память Boot R O M объемом 8 К слов по 16 разрядов.
Записанная здесь микропрограмма выполняется ядром процессо­
ра каждый раз п р и подаче питания на процессор, а также после
сброса. Результатом ее в ы п о л н е н и я является передача ф у н к ц и й
загрузки программы, которую Ц С П должен выполнить, опреде¬
ленному периферийному устройству, подключенному п о интер¬
2
фейсу SPI, I C и т. п., либо внутренней или в н е ш н е й Flash-памя­
ти. Здесь ж е содержатся таблицы нормализованных значений ма¬
тематических ф у н к ц и й , таких к а к синус, косинус, а также таблицы
векторов прерываний.
Flash-память, П З У и блоки L0—L7 О З У з а щ и щ е н ы 128-разрядным
секретным ключом.
Память имеет возможность р а с ш и р е н и я до 2М*16 слов посредством
16/32-разрядной ш и н ы E M I F .

Система команд для работы с числами в формате с плавающей точ­


кой является функционально полной. П о м и м о обычных арифметических
команд и команд конвертирования форматов (из формата с фиксирован¬
ной в формат с плавающей точкой и обратно), система команд включает
в себя также команды получения первого приближения обратного значе­
н и я числа в формате с плавающей точкой и квадратного корня. Тем са­
м ы м аппаратно обеспечивается высокая эффективность любых операций
с плавающей точкой, включая деление. Компилятор С и / С и + + автомати­
чески оптимизирует программу пользователя с учетом возможного парал­
лельного в ы п о л н е н и я команд, добавляя, к а к правило, н е к о н ф л и к т у ю -

230
Лекция 16 Процессоры цифровой обработки сигналов

щ и е между собой команды загрузки операндов, которые понадобятся на


следующих этапах вычислений (VLIW-подход). Эти аппаратные возмож­
ности поддерживаются компилятором С и / С и + + . Н а аппаратном уровне
поддерживаются как команды повторения отдельной инструкции, так и
команды повторения блока кода.
Все процессоры семейства F2833x являются высокоинтегрирован-
н ы м и устройствами и содержат:
• последовательные интерфейсы, включающие:
• 2 сетевых порта C A N , позволяющие организовать две незави­
симо работающие CAN-сети — для подключения внутренних
интеллектуальных устройств и внешних, например, для связи с
системами управления верхнего уровня;
• 3 порта а с и н х р о н н о г о последовательного и н т е р ф е й с а S C I
( U A R T ) , используемых для межпроцессорной или другой асин­
хронной связи в дуплексном и полудуплексном режимах;
• порт синхронного последовательного интерфейса (SPI);
2
• шину I C;
• 2 буферированных последовательных порта M c B S P ;
• 88 последовательных портов ввода-вывода общего назначения
(GPIO) с независимым тактированием и возможностью много¬
канальных режимов работы с поддержкой блочной передачи по
каждому каналу;
• порт J T A G , п о з в о л я ю щ и й отлаживать систему в реальном вре¬
мени;
• 12-разрядный 16-канальный А Ц П со временем преобразования
сигнала 80 нс, что на сегодняшний день является лучшим резуль¬
татом среди А Ц П , встроенных в Ц С П ;
• 6 контроллеров прямого доступа в память. Передача данных по ка­
налу П Д П выполняется пакетами. Д л и н а каждого пакета — не бо­
лее 32 16-разрядных слов. Общее число пакетов в передаче — до
65535. П о завершении передачи канал П Д П может генерировать
запрос прерывания для новой и н и ц и а л и з а ц и и контроллера П Д П .
В процессе передачи данных возможна их ортогональная переста­
новка для последующего ускорения обработки данных централь¬
н ы м процессором. Каналы работают в режиме либо циклически
меняющихся, либо фиксированных приоритетов. В последнем
случае процесс передачи данных по низкоприоритетным каналам
может прерываться и возобновляться при завершении высоко¬
приоритетной передачи;
• три 32-разрядных таймера;
• сторожевой таймер, предохраняющий систему от зависания;

231
Курс Архитектура микропроцессоров

• шесть 32-разрядных каналов захвата внешних событий (enhanced


capture — e C A P ) , используемых в системах, где важно точное со¬
гласование во времени внешних событий, например, п р и измере¬
н и и периода следования сигналов;
• два 32-разрядных модуля e Q E P (enhanced quadrature encoder
pulse), предназначенных для поддержки измерений скорости и ча­
стоты, детектирования заклинивания ротора и определения его
положения, контроля неисправностей. Могут использоваться к а к
дополнительные модули C A P ;
• расширенный блок широтно-импульсной модуляции (enhanced
pulse-width modulator — e P W M ) , обеспечивающий ф у н к ц и о н и р о ­
вание 18 каналов Ш И М , 6 и з которых работают на повышенной
частоте с разрешением 150 пс. Ш и р о к и е возможности этого блока
связаны с основными областями применения данного сигнально­
го процессора: автомобильная промышленность, промышленная
автоматика, измерительные приборы, преобразователи мощности.
Рассмотрим работу этого блока более подробно.
Каждый модуль Ш И М - г е н е р а т о р а содержит базовый таймер, блок
сравнения, конструктор выходных Ш И М - с и г н а л о в . Модуль имеет два
выхода E P W M A и E P W M B , которые м о ж н о использовать либо независи¬
мо друг от друга, либо в паре.
Базовый таймер модуля работает в режимах нереверсивного и ревер­
сивного счетчика. Период Ш И М задается в регистре периода, а началь­
ное состояние счетчика аппаратно загружается и з регистра фазового
сдвига. Тем самым обеспечивается возможность ф о р м и р о в а н и я различ¬
н ы м и каналами Ш И М - с и г н а л о в , сдвинутых друг относительно друга на
любой заданный угол.
Отличительной особенностью блока являются два независимых к а ­
нала с регистрами задания двух уставок сравнения C M P A и C M P B . К о н ­
структор Ш И М - с и г н а л о в для каждого и з двух выходов позволяет по л ю ­
бому из пяти входных событий сгенерировать следующие выходные с о ­
бытия: установить высокий или н и з к и й уровень сигнала; переключить с
высокого на н и з к и й уровень и л и обратно; оставить состояние выхода н е ­
и з м е н н ы м . Чтобы сконструировать выходные периодические сигналы,
разработчику нужно расставить на «опорной ц и ф р о в о й пиле» графичес­
кие обозначения требуемых выходных событий и в соответствии с н и м и
проинициализировать Ш И М - г е н е р а т о р . Н а рис. 16.5 в качестве примера
показано ф о р м и р о в а н и е двух Ш И М - с и г н а л о в . Входные события по срав­
н е н и ю A вверх ( C A | ) и вниз ( C A j ) управляют фронтами первого Ш И М -
сигнала, а по сравнению B вверх ( C B | ) и вниз ^ В ] , ) — фронтами второ¬
го Ш И М - с и г н а л а .

232
Лекция 16 Процессоры цифровой обработки сигналов

И м е е т с я в о з м о ж н о с т ь по н у ж н о м у с о б ы т и ю ( н а п р и м е р , «по п е р и ­
оду») генерировать запрос п р е р ы в а н и я и в процедуре о б с л у ж и в а н и я

TBCTR

Рис. 16.5. Конструирование выходных Ш И М - с и г н а л о в

этого прерывания изменять параметры Ш И М - с и г н а л о в (период,


скважность).
Структура процессора обеспечивает быструю реакцию на прерыва­
н и я и их обработку. Запросы прерываний генерируются к а к в н е ш н и м и
устройствами, так и модулями самого процессора. Б л о к обработки в н е ш ­
них прерываний (Peripheral Interrupt Expansion — PIE) используется для
проведения арбитража запросов прерываний от внешних устройств и под­
держивает до 8 запросов внешних маскируемых прерываний, которые м о ­
гут поступать по л ю б о й из 64 л и н и й п о р т о в общего н а з н а ч е н и я
GPIO0—GPIO63, а также запрос по внешнему входу X N M I . Каждое пре¬
рывание может быть настроено на срабатывание по высокому или низко¬
му уровню сигнала и разрешено либо запрещено к обслуживанию. Б л о к
обработки прерываний для каждого из внешних запросов содержит 16-
разрядный счетчик, который может применяться для отметки количества
прерываний данного типа.
В качестве источников внутренних прерываний выступают таймеры,
каналы П Д П и другие модули процессора.
Каждое из прерываний имеет свой вектор прерываний, который м о ­
жет быть изменен. Приоритеты прерываний устанавливаются к а к на ап­
паратном, так и на программном уровнях.
Напряжение питания процессора составляет 1,9 В, а напряжение
внешних портов 3,3 В.

233
Курс Архитектура микропроцессоров

В семействе процессоров 320F28х больше в н и м а н и е уделяется с н и ­


ж е н и ю энергопотребления (до 0,05 мВт на 1 млн операций в секунду). Это
достигается за счет отключения неактивных устройств и возможностью
управления энергопотреблением со стороны пользователя (до 64 р е ж и ­
мов энергопотребления).
Наличие модуля поддержки вычислений с плавающей запятой удо­
рожает процессор, поэтому для разработчиков, работающих и с к л ю ч и ­
тельно в формате с ф и к с и р о в а н н о й точкой, предлагаются п о м и м о п р о ­
цессоров серии 2833х точно такие ж е изделия, но без этого модуля: 28235,
28234, 28232.

Ц и ф р о в о й с и г н а л ь н ы й п р о ц е с с о р ADSP BF561

В ряде задач, например, в задачах обработки видеоизображений с


высоким разрешением, мощности одного, даже высокопроизводительно¬
го процессора оказывается недостаточно. Р е ш е н и е этой проблемы идет
по двум направлениям.
Во-первых, это создание мультипроцессорных систем. В некоторых
DSP-семействах для наращивания производительности предусмотрены
специальные аппаратные средства, облегчающие создание мультипро¬
цессорных систем с параллельной обработкой данных.
Во-вторых, это разработка многоядерных цифровых сигнальных
процессоров, аналогично такому ж е направлению в развитии архитекту¬
р ы универсальных М П . Рассмотрим второй подход на примере цифрово¬
го сигнального процессора A D S P BF561 ф и р м ы Analog Devices.
Основные функциональные блоки процессора показаны на рис. 16.6.
Основу процессора составляют два вычислительных ядра B L A C K -
F I N , каждое из которых имеет свой набор ресурсов, включающий вычис¬
лительный блок, блок управления и набор регистров.
Основу вычислительного блока составляют два 16-разрядных M A C -
устройства. Так как процессор работает на частоте 600 МГц, это обеспечи­
вает в ы п о л н е н и е MAC-операций с эквивалентной частотой 2,4 ГГц (по 2
MAC-устройства в каждом из двух ядер).
П о м и м о этого в вычислительный блок каждого из ядер входят следу¬
ю щ и е устройства:
• два 40-разрядных АЛУ для выполнения обычных арифметических
и логических операций над 16- и 32-разрядными д а н н ы м и ;
• 40-разрядное устройство сдвига, в ы п о л н я ю щ е е п о м и м о собствен¬
но сдвигов различных типов также нормализацию и извлечение
экспоненты, обработку отдельных бит или наборов бит;

234
Лекция 16 Процессоры цифровой обработки сигналов

• четыре 8-разрядных видео-АЛУ, которые поддерживают некото­


рые операции над 8-разрядными д а н н ы м и , характерные для задач
обработки видеоизображений;

Рис. 16.6. Структура процессора A D S P BF561

• блок регистров общего назначения, в к л ю ч а ю щ и й восемь 32-раз­


рядных регистров, каждый из которых в зависимости от конкрет­
н о й операции может рассматриваться к а к одно 32-разрядное сло­
во и л и к а к два 16-разрядных.
Каждое ядро процессора имеет собственную память емкостью 100
Кбайт, доступную только ему и работающую на частоте ядра: 32 Кбайт п а ­
мяти команд, из которых 16 Кбайт могут быть сконфигурированы к а к
к э ш команд, 64 Кбайт памяти данных, из которых 32 Кбайт могут быть
сконфигурированы к а к к э ш данных, и 4 Кбайта специального О З У для
сохранения контекста (scratchpad).

235
Курс Архитектура микропроцессоров

На кристалле также имеется менее быстродействующая (работающая


на половине частоты ядра) память второго уровня объемом 128 Кбайт, д о ­
ступная обоим ядрам. В ней могут храниться как команды, так и данные.
К процессору через 32-разрядную ш и н у данных может быть п о д к л ю ­
чено до четырех банков в н е ш н е й памяти емкостью от 16 до 128 Мбайт
каждый с общей емкостью до 512 Мбайт.
Отдельного адресного пространства ввода/вывода в процессоре нет,
и адресация ко всем ресурсам проводится посредством единого 32-раз­
рядного адреса.
Процессор имеет 10-уровневый конвейер команд.
Процессор A D S P BF561 имеет очень богатый набор интегрирован¬
ных периферийных узлов, часть из которых входит в состав каждого из
ядер, а другие являются о б щ и м и ресурсами процессора. Сюда относятся:
• 14 32-разрядных таймеров, 12 из которых являются о б щ и м и и м о ­
гут также программироваться как Ш И М - г е н е р а т о р ы , а еще два
используются каждым из ядер;
• два сторожевых таймера (по одному в каждом из ядер);
• 4-канальный внутренний контроллер П Д П для ускорения обмена
между блоками памяти внутри процессора;
• 32- и 16-разрядный контроллеры П Д П ; каждый из этих контрол­
леров имеет по 12 каналов для пересылок между внутренней п а м я ­
тью процессора и периферией и по 4 канала для пересылок между
внутренней и в н е ш н е й памятью;
• контроллер прерываний системы, который преобразует все пре¬
р ы в а н и я от периферийных узлов, контроллеров П Д П и в н е ш н и е
прерывания (всего 61 источник) в прерывания ядра общего назна­
чения;
• по одному контроллеру прерываний в каждом из ядер, которые
поддерживают 9 прерываний общего назначения и выделенные
прерывания: сброса, эмуляции, немаскируемое прерывание, пре­
р ы в а н и я от таймеров и т. д.;
• два 16-разрядных параллельных порта P P I , к о т о р ы е п о з в о л я ю т
без и с п о л ь з о в а н и я д о п о л н и т е л ь н о й л о г и к и подключать к про¬
цессору м н о г и е стандартные А Ц П , Ц А П , видеокодеры и деко¬
деры;
• 48 программируемых портов ввода-вывода общего назначения
(GPIO);
• набор стандартных последовательных интерфейсов — SPI, S P O R T
и U A R T (с поддержкой IrDA) и т. д.

236
Лекция 16 Процессоры цифровой обработки сигналов

Процессор поддерживает р е ж и м ы прямой адресации, косвенной ад­


ресации с пред- и постинкрементом и специфические для задач цифро¬
вой обработки сигналов режимы циклической адресации и адресации с
реверсированием бит адреса.
Система команд процессора, аналогично RISC-микропроцессорам,
имеет структуру, ориентированную на регистры и поддержку я з ы к о в в ы ­
сокого уровня.
Краткие итоги. В лекции рассмотрен особый класс микропроцессор¬
ных Б И С — ц и ф р о в ы е сигнальные процессоры. Приведены п р и м е р ы ци¬
фровой обработки сигналов и используемого при этом дискретного пре¬
образования Фурье. Выделены особенности Ц С П , вытекающие и з облас­
ти их п р и м е н е н и я и с у щ е с т в е н н о в л и я ю щ и е н а их архитектуру.
Рассмотрена архитектура сигнальных микропроцессоров TMS320F2833x
ф и р м ы Texas Instruments и A D S P BF561 ф и р м ы Analog Devices, и м е ю щ и е
в настоящее время наилучшие характеристики в этом классе микропро¬
цессоров.

237
Курс Архитектура микропроцессоров

Лекция 17. Методы и средства отладки


микропроцессорных систем

Цель лекции: рассмотреть процесс тестирования и отладки микро¬


процессорных систем, используемые при этом методы и средства.

В ж и з н е н н о м ц и к л е микропроцессорной системы выделяются три


основных этапа: проектирование, изготовление и эксплуатация. Д л я под­
держания микропроцессорной системы в работоспособном состоянии
необходимо учитывать к а к специфику каждого этапа ее жизненного цик¬
ла, так и особенности М П С к а к объекта контроля.
Прежде всего, рассмотрим некоторые основные понятия, связанные
с контролем и диагностикой цифровых вычислительных устройств.
Процедура проверки правильности функционирования объекта на­
зывается контролем или тестированием. В результате контроля определя­
ется, находится ли объект в исправном состоянии. Если объект находится
в неисправном состоянии, то возникает задача поиска неисправности —
диагностирования. Процесс устранения найденных неисправностей назы­
вается отладкой.

Рассмотрим в первую очередь особенности МП БИС и микропроцес­


сорной системы в целом как объекта контроля, которые затрудняют п р о ц е ­
дуру контроля и поиска неисправностей.
1. Высокая сложность БИС. Полная проверка схемы должна обеспе­
чивать проверку ее работоспособности п р и всех возможных состояниях.
Ч и с л о возможных состояний определяется количеством внутренних эле­
ментов памяти. Взяв для примера только регистровую память о д н о к р и с ­
2 5 6
тального микроконтроллера (32 регистра по 8 разрядов), получим 2 со­
стояний. Д л я полного их перебора с частотой 100 МГц потребуется время
67
порядка 10 лет! Очевидно, что такой вариант неприемлем и никогда на
практике н е реализуется. Следовательно, любая М П Б И С может содер­
жать неисправности. Самое неприятное в этой ситуации то, что эти н е и с ­
правности носят характер сбоев, то есть проявляются только при опреде¬
л е н н о м сочетании данных внутри Б И С , и поэтому весьма трудно подда¬
ются выявлению.
Самой известной о ш и б к о й этого рода является, безусловно, ошибка
в процессоре обработки чисел с плавающей точкой микропроцессора
Pentium, выпущенного в 1993 году. Она проявлялась в неточном выполне­
н и и операции деления (погрешность в 8-м десятичном знаке после запя­
той) для некоторых операндов. Ошибка проявлялась, только если дели­
тель содержал шесть последовательных бит, с 5-го п о 10-й, установленных

238
Лекция 17 Методы и средства отладки микропроцессорных систем

в единицу. Она была вызвана дефектами в микрокоде реализации алго¬


ритма деления. Вероятность обнаружения о ш и б к и оценивалась к а к один
к девяти миллионам, а вероятность встречи с ней — 1 раз в 27 000 лет. Од­
нако несмотря на это, ф и р м а Intel пошла на то, чтобы заменить п о требо­
ванию все дефектные процессоры, понеся п р и этом, естественно, значи¬
тельные убытки.
Аналогичная ошибка была выявлена в к о н ц е 2007 года в четырехъя-
дерных серверных процессорах Barcelona, а также в чипах Phenom для на­
стольных компьютеров к о м п а н и и A M D . Она была связана с особеннос­
тями реализации буфера быстрого преобразования адреса ( T L B ) к э ш - п а ­
мяти третьего уровня. О ш и б к а в отдельных ситуациях приводила к
зависанию системы.
Иногда отдельные неисправности проявляют себя только на высо¬
ких частотах работы Б И С . Поэтому некоторые производители схем, оп¬
ределив в ходе тестирования, что отдельные Б И С из некоторой партии
схем дают сбои на начальной, самой высокой частоте, проверяют ее рабо¬
тоспособность на более низких частотах, где схемы этой партии могут
оказаться вполне работоспособными. И м е н н о с указанием такой частоты
работы эти Б И С и поступают на рынок. Такой подход служит одной из ос¬
н о в «разгона» схем.
2. Малое количество контрольных точек схем. Несмотря на то что
корпуса современных микропроцессорных Б И С имеют до 1,5 тыс. выво¬
дов, сложность микропроцессоров такова, что непосредственно подать
тестовое воздействие на любую точку схемы невозможно. Также невоз¬
м о ж н о напрямую проверить состояние какого-либо узла Б И С . Это требу­
ет подачи сложных последовательностей сигналов на доступные для воз­
действия точки схемы и синхронного анализа д л и н н ы х последовательно­
стей состояний в точках, доступных для прямого контроля. Поэтому
воздействия и представления результатов носят к о с в е н н ы й , опосредован¬
н ы й характер, что может привести к неверной интерпретации получае¬
мых при тестировании данных.
3. Неразделимость аппаратуры и программного обеспечения. Аппара­
тура и программное обеспечение М П С представляют собой единый к о м ­
плекс. Свои ф у н к ц и и микропроцессорная система выполняет под воз­
действием программ, часть из которых к тому ж е хранится в постоянной
памяти Б И С и системы. О ш и б к и в работе системы могут быть обусловле­
н ы к а к неисправностями аппаратной части, так и о ш и б к а м и , допущен¬
н ы м и при разработке П О .
4. Сложность и неразделимость аппаратуры, составляющей микропро­
цессорную систему. М П С , особенно на этапе ее эксплуатации, невозмож­
но разделить на ф у н к ц и о н а л ь н ы е узлы для их автономной проверки. Это
объясняется конструктивными и схемотехническими особенностями м и -

239
Курс Архитектура микропроцессоров

кропроцессорных средств. Во-первых, чисто конструктивно подключить


тестирующую аппаратуру к отдельным Б И С , составляющим систему,
весьма сложно. Во-вторых, разделение микропроцессорной системы на
отдельные ф у н к ц и о н а л ь н ы е узлы при современном уровне интеграции
элементов на кристалле невозможно. Сам микропроцессор содержит ши¬
р о к и й набор функционально различных устройств от целочисленного
АЛУ до з а п о м и н а ю щ и х устройств различного вида и назначения. В то же
время одни и те ж е ф у н к ц и и распределяются по различным Б И С . Н а п р и ­
мер, обработкой прерываний занимается к а к сам микропроцессор, так и
контроллер приоритетных прерываний, входящий в состав схем чипсета,
которые, в свою очередь, выполняют множество других ф у н к ц и й . П о э т о ­
му проверка выполнения той или и н о й ф у н к ц и и в микропроцессорной
системе затрагивает работу всех составляющих ее схем и предъявляет в ы ­
сокие требования к к в а л и ф и к а ц и и обслуживаемого персонала.
5. Необходимость одновременного контроля состояния большого числа
многоразрядных шин. Общая разрядность ш и н , по которым происходит вза¬
имодействие между компонентами микропроцессорной системы, весьма
велика. Н о главную проблему составляет не только количество точек, в к о ­
торых требуется анализировать сигналы. Простая регистрация их поведе­
н и я мало что даст для определения места и характера неисправности.
Обычно требуется регистрация и анализ сигналов на протяжении значи­
тельного временного интервала и в связи с редкими и однократными собы­
тиями. К числу таких событий, идентификация которых необходима в п р о ­
цессе контроля, относится появление заданных комбинаций сигналов на
шинах М П С и даже появление заданной последовательности таких комби¬
наций: обращение по определенному адресу на запись определенных дан¬
ных, появление сигнала запроса прерывания определенного типа или даже
сигнал помехи. П р и наступлении такой ситуации следует проанализиро¬
вать, а следовательно, предварительно запомнить состояние ш и н на протя¬
ж е н и и как нескольких предшествующих тактов, так и нескольких тактов,
которые следуют за указанным событием. В то ж е время для М П С на осно¬
ве однокристальных микроконтроллеров и Ц С П эта проблема не столь ос¬
тра, так как реализация большинства функций системы осуществляется
внутренними средствами этих микропроцессоров. Поэтому такие системы
имеют малое число периферийных схем, а обмен между н и м и и микропро¬
цессором часто выполняется по последовательным интерфейсам.
6. Высокое быстродействие схем, образующих М П С , которое требует
чрезвычайно быстродействующей контрольной аппаратуры. Частоты, на
которых работают современные Б И С , доходят до нескольких гигагерц. В
то ж е время чтобы определить, например, факт переключения какого-ли¬
бо сигнала, частота контролирующей аппаратуры должна быть как мини¬
мум в два раза больше.

240
Лекция 17 Методы и средства отладки микропроцессорных систем

7. Шинная организация микропроцессорной системы. Магистрально-


модульный п р и н ц и п построения М П С затрудняет определение источни­
ка искажения и н ф о р м а ц и и в магистрали. Неверное считывание и н ф о р ­
м а ц и и из ОЗУ в микропроцессор может быть вызвано не поломкой к а к о ­
г о - л и б о и з этих двух устройств, а н е и с п р а в н о с т ь ю с о в е р ш е н н о
посторонней для данного процесса схемы, при которой ее выход постоян­
но заземляет одну из л и н и й общей магистрали.

Наряду с и м е ю щ и м и с я трудностями в процессе контроля и отладки


микропроцессорная система имеет ряд достоинств, облегчающих этот
процесс.
1. Способность к самоконтролю, то есть способность М П под дейст¬
вием программы сравнительно небольшого объема генерировать очень
большие тестовые последовательности. В этом случае используется м е ­
тод раскрутки. Сначала отлаживается синхронизация М П С и создается
некоторое я д р о из микропроцессора и памяти небольшой емкости. В па­
мять записывается программа, которая под управлением м и к р о п р о ц е с ­
сора генерирует тесты для контроля всего ОЗУ, а затем, по мере п о д к л ю ­
ч е н и я новых блоков памяти, — и для других узлов м и к р о п р о ц е с с о р н о й
системы.
2. Способность микропроцессора к логической обработке информации,
что позволяет сравнивать отклики проверяемых узлов с эталонными без
п р и м е н е н и я дополнительной аппаратуры. П р и этом значительно умень­
шается объем и н ф о р м а ц и и , которую должна зафиксировать контрольно-
испытательная аппаратура, а весь анализ получаемой и н ф о р м а ц и и (на­
пример, сравнение получаемых реакций с эталонными) выполняет сам
М П , который может не только определить характер неисправности, но
иногда и точно указать ее место.
3. Программная доступность всех узлов МПС позволяет м и к р о п р о ц е с ­
сору выдавать на них тестовые воздействия, получать и анализировать ре­
акции на эти воздействия.
4. П р и с о с т а в л е н и и тестовых и д и а г н о с т и ч е с к и х п р о г р а м м разра¬
б о т ч и к имеет дело не с н о в ы м я з ы к о м п р о г р а м м и р о в а н и я к о н т р о л ь н о й
а п п а р а т у р ы , а с привычными средствами программирования микропро¬
цессора.
5. Важной особенностью М П С , как и других цифровых систем, я в ­
ляется стандартное представление электрических сигналов. Это позволяет
упростить контроль состояния точек и свести его л и ш ь к определению
принадлежности данного состояния к зоне сигнала 0 или 1. Прибегать к
измерениям аналоговых величин — длительности фронта импульса, а м п ­
литуды сигнала и т. п. — приходится только при подозрении на выход из
строя одного из электронных компонентов схемы.

241
Курс Архитектура микропроцессоров

О с о б е н н о с т и к о н т р о л я и о т л а д к и МПС на р а з л и ч н ы х
этапах жизненного цикла
Рассмотренные особенности тестирования и отладки м и к р о п р о ц е с ­
сорных систем по-разному преломляются на различных этапах их суще­
ствования.
Этап разработки является наиболее ответственным, трудоемким и
требует высокой к в а л и ф и к а ц и и разработчиков, так к а к о ш и б к и , допу¬
щ е н н ы е на этом этапе, обычно обнаруживаются л и ш ь на стадии испыта­
н и я законченного образца и требуют длительной и дорогостоящей пере¬
работки всей системы.
Одной из главных задач этого этапа является распределение ф у н к ­
ц и й , в ы п о л н я е м ы х м и к р о п р о ц е с с о р н о й системой, между ее аппаратной
и программной частями. Максимальное использование аппаратных
средств упрощает разработку и обеспечивает в ы с о к о е быстродействие
системы в целом, н о сопровождается, к а к п р а в и л о , увеличением с т о и ­
мости и потребляемой м о щ н о с т и . В то ж е время увеличение удельного
веса п р о г р а м м н о г о обеспечения позволяет сократить ч и с л о устройств
системы, ее стоимость, повышает возможность адаптации с и с т е м ы к
н о в ы м условиям п р и м е н е н и я , но приводит к увеличению необходимой
емкости п а м я т и , с н и ж е н и ю быстродействия, увеличению сроков п р о е к ­
тирования.
П р о ц е с с п е р е р а с п р е д е л е н и я ф у н к ц и й между а п п а р а т н о й и п р о ­
г р а м м н о й ч а с т я м и М П С н о с и т и т е р а ц и о н н ы й характер. К р и т е р и е м
в ы б о р а здесь я в л я е т с я в о з м о ж н о с т ь м а к с и м а л ь н о й р е а л и з а ц и и з а д а н ­
н ы х ф у н к ц и й п р о г р а м м н ы м и с р е д с т в а м и п р и условии о б е с п е ч е н и я
з а д а н н ы х п о к а з а т е л е й ( б ы с т р о д е й с т в и я , э н е р г о п о т р е б л е н и я , стоимо¬
сти и т. д . ) .
С точки зрения контроля и диагностики М П С д а н н ы й этап имеет сле¬
дующие особенности:
• отсутствуют отработанные тестовые программы: проектирование
аппаратной части М П С всегда идет параллельно с разработкой
программ, а иногда и аппаратуры для ее тестирования и отладки;
построение тестовых программ и анализ результатов производят­
ся разработчиком вручную на основании его представлений о
принципах работы и структуре разрабатываемой системы;
• существует большая вероятность появления нескольких неис¬
правностей одновременно; здесь могут присутствовать неисправ¬
ности, связанные как с дефектами электронных компонентов, так
и с о ш и б к а м и монтажников и программистов;
• связанная с предыдущим положением неопределенность причи¬
н ы неисправности: отказы в аппаратуре или о ш и б к и в программе;

242
Лекция 17 Методы и средства отладки микропроцессорных систем

• возможные о ш и б к и разработчиков: система может абсолютно


правильно выполнять предписанные ей разработчиком действия,
но сами эти предписания были неверны.
Все эти п р и ч и н ы делают задачи контроля и диагностики на этапе раз­
работки М П С наиболее сложными, а требования к к в а л и ф и к а ц и и персо¬
нала весьма высокими.
Инструментальные средства контроля и диагностики на этом этапе
д о л ж н ы отвечать следующим требованиям:
• возможность измерений как цифровых, так и аналоговых сигна¬
лов;
• разнообразие режимов работы и оперативность настройки на за¬
д а н н ы й режим;
• оперативность и наглядность представления результатов измере¬
ний;
• возможность работы как с аппаратурой, так и с программным
обеспечением.

На этапе производства микропроцессорной системы на первый план


выдвигаются требования:
• высокой производительности,
• полноты контроля,
• высокой автоматизации с целью с н и ж е н и я требований к квали¬
ф и к а ц и и обслуживающего персонала.
Контроль на этом этапе проводится с использованием отработанных
тестовых программ. Тестирование проводится на специально разработан¬
ных контрольных стендах (в случае достаточно большого объема произ¬
водства), предназначенных для выдачи тестовых воздействий и автомати­
ческого анализа реакций на них. К а к правило, на этом этапе проводится
только контроль работоспособности системы по п р и н ц и п у «годен — не
годен». Определение места и характера неисправности проводится более
в ы с о к о к в а л и ф и ц и р о в а н н ы м персоналом в ходе отдельного процесса.

Контроль в процессе эксплуатации, как правило, проще, чем на пре¬


дыдущих этапах, по следующим причинам:
• вероятность появления двух и более неисправностей одновремен¬
но весьма мала;
• обычно требуется контроль правильности работы только при ре­
ш е н и и конкретных задач, при этом тесты поставляются вместе с
самим изделием.
Однако требования к инструментальным средствам, предназначен­
н ы м для эксплуатационного обслуживания М П С , весьма противоречивы.
С одной стороны, это требование компактности, а часто даже портатив-

243
Курс Архитектура микропроцессоров

ности этих средств, с другой — требования универсальности и автомати­


зации процесса контроля, чтобы иметь возможность использовать персо¬
нал невысокой к в а л и ф и к а ц и и .

Рассмотрим теперь собственно инструментальные средства контроля


и отладки микропроцессорных систем.
Точность, с которой тот или и н о й тест локализует неисправности,
называется его разрешающей способностью. Требуемая разрешающая
способность определяется к о н к р е т н ы м и целями испытаний. Н а п р и м е р ,
при отладке опытного образца необходимо прежде всего определить при¬
роду неисправности (аппаратная или программная). В заводских услови­
ях желательно осуществлять диагностику неисправности вплоть до уровня
наименьшего заменяемого элемента, чтобы минимизировать стоимость
ремонта. П р и тестировании аппаратуры в процессе эксплуатации для ее
ремонта часто необходимо установить, в каком сменном блоке изделия
имеется неисправность.

Средства контроля и отладки должны:


• управлять поведением системы и / и л и ее модели;
• собирать и н ф о р м а ц и ю о поведении системы и / и л и ее модели, об­
рабатывать и представлять на удобном для разработчика уровне;
• моделировать поведение внешней среды проектируемой системы.

Сроки и качество отладки системы зависят от средств отладки. Чем


совершеннее приборы, имеющиеся в распоряжении инженера-разработ¬
чика, тем скорее м о ж н о начать отладку аппаратуры и программ и тем бы¬
стрее обнаружить и устранить о ш и б к и , обнаружение и устранение кото¬
рых на более поздних этапах проектирования обойдется гораздо дороже.
К а к показывает опыт разработки, производства и эксплуатации
М П С , окончательный контроль работоспособности должен производить¬
ся на реальной аппаратуре и на рабочих тактовых частотах. Поэтому инст¬
рументальные средства должны обеспечивать решение задач генерации
входных воздействий и регистрации выходных реакций в реальном време¬
ни. Наличие в М П С двунаправленных ш и н требует обеспечения возмож­
ности переключения контрольного оборудования с передачи на прием в
течение одного периода тактовой частоты. Для контроля временных ха­
рактеристик требуются весьма быстродействующие инструментальные
средства. Кроме того, значительная длина тестовых программ вызывает
потребность в использовании запоминающих устройств большой емкости.
П р и проектировании микропроцессорных систем чаще всего в на¬
стоящее время рядовому инженеру приходится иметь дело с однокрис¬
тальными микроконтроллерами. Этот класс М П Б И С имеет самую ш и р о -

244
Лекция 17 Методы и средства отладки микропроцессорных систем

кую номенклатуру изделий, ориентирован на различные области приме¬


н е н и я , выпускается наиболее массовым тиражом. Поэтому рассмотрение
инструментальных средств контроля, диагностирования и отладки М П С
будем проводить с упором и м е н н о на использование этого класса микро¬
процессоров.
В начале проводится автономная отладка аппаратной и программной
частей М П С . Отладка аппаратуры предполагает тестирование отдельных
устройств микропроцессорной системы: процессора, ОЗУ, контроллеров
внешних устройств, блока питания, генератора тактовых импульсов и т. д.
П р и автономной отладке аппаратуры могут потребоваться приборы,
умеющие:
• выполнять аналоговые измерения;
• подавать импульсы определенной ф о р м ы и длительности;
• подавать последовательность сигналов одновременно на несколь¬
ко входов в соответствии с заданной временной диаграммой или
заданным алгоритмом ф у н к ц и о н и р о в а н и я аппаратуры;
• сохранять значения сигналов с многих л и н и й в течение промежут­
ка времени, определяемого задаваемыми событиями;
• обрабатывать и представлять собранную и н ф о р м а ц и ю в удобном
для разработчика виде.
Для автономной отладки аппаратуры на схемном уровне ш и р о к о и с ­
пользуются осциллографы, вольтметры, амперметры, частотомеры, гене¬
раторы импульсов, сигнатурные анализаторы. На более высоком уровне
применяют внутрисхемные эмуляторы, эмуляторы ПЗУ, логические ана­
лизаторы, платы развития, а также специальные отладочные средства, к о ­
торые встраиваются в Б И С на этапе их разработки.

Внутрисхемный эмулятор

Одним из главных обстоятельств, затрудняющих отладку М П С , я в ­


ляется недоступность внутренних элементов Б И С для тестовых воздейст­
вий и непосредственного контроля их состояний. Контроль и изменение
состояний внутренних элементов Б И С осуществляются косвенно, путем
передачи и н ф о р м а ц и и от внутренних элементов Б И С к ее выводам при
контроле и в обратном направлении при и з м е н е н и и состояния элементов.
Внутрисхемный эмулятор (ВСЭ) — это наиболее мощное и универсаль­
ное отладочное средство, которое делает процесс функционирования отла¬
живаемой системы прозрачным, то есть легко контролируемым, произволь¬
но управляемым и модифицируемым. Основная область применения ВСЭ в
настоящее время — это разработка встраиваемых систем на базе однокрис­
тальных микроконтроллеров. ВСЭ представляет собой программно-аппа¬
ратное средство, способное заменить эмулируемый М К в реальной схеме.

245
Курс Архитектура микропроцессоров

Стыковка ВСЭ с отлаживаемой системой производится при помощи кабе­


ля со специальной эмуляционной головкой, которая вставляется в разъем
на плате отлаживаемой М П С вместо М К . Если М К нельзя удалить из отла­
живаемой системы, то использование эмулятора возможно, только если
этот микроконтроллер имеет отладочный режим, при котором все его выво¬
д ы находятся в третьем состоянии. В этом случае для подключения эмуля­
тора используют специальный адаптер-клипсу, который подключается не¬
посредственно к выводам эмулируемого М К . При этом процессор системы
проектирования (хост-процессор) выполняет все функции целевого М К и к
тому же позволяет отслеживать ход вычислительного процесса.
С точки зрения процесса отладки ВСЭ выполняет в составе отладоч¬
ного комплекса следующие функции:
• управление ходом вычислительного процесса в макетном образце
М П С : и н и ц и а л и з а ц и ю начального состояния управляющих и ин¬
ф о р м а ц и о н н ы х регистров М К и запуск программы отлаживаемой
М П С по шагам или до выполнения заданного условия;
• сбор и н ф о р м а ц и и о ходе вычислительного процесса отлаживае¬
мой М П С и передачу ее в отладочный комплекс для преобразова­
н и я , анализа, отображения и документирования;
• задание программных воздействий на макетный образец непо¬
средственно из ОЗУ отладочного комплекса.
П р е к р а щ е н и е эмуляции и с п о л н е н и я происходит при появлении за­
данного события, которое прерывает программу пользователя и передает
управление хост-процессору для исполнения программ режима опроса.
События, вызывающие прерывание программы, могут включать:
• выполнение заданного числа шагов;
• появление заданной к о м б и н а ц и и логических состояний на ш и н а х
МПС;
• появление заданной последовательности таких к о м б и н а ц и й .
Система проектирования содержит карту адресного пространства,
хранящую и н ф о р м а ц и ю о заданном отображении для каждого блока ад­
ресного пространства памяти и блока портов ввода-вывода разрабатыва­
емой системы. Таким образом, пользователь может в ходе отладки «под­
ставлять» вместо еще отсутствующих в макете областей памяти или в н е ш ­
них устройств области памяти или устройства системы проектирования. В
ходе эмуляции по карте адресного пространства для каждого обращения
к памяти или порту ввода-вывода из эмулируемой программы определя­
ется, следует ли их отрабатывать как обращение к реальным устройствам
разрабатываемой М П С или как обращение к устройствам системы проек¬
тирования, п о д м е н я ю щ и м эти устройства. П о мере отладки тех или и н ы х
устройств целевой системы они могут физически размещаться на плате с
соответствующим изменением карты адресного пространства.

246
Лекция 17 Методы и средства отладки микропроцессорных систем

Платы р а з в и т и я

К внутрисхемным эмуляторам тесно примыкает такой класс инстру­


ментальных отладочных средств, как платы развития (Evaluation Boards),
или оценочные платы. Трудно найти производителя однокристальных
микроконтроллеров или цифровых сигнальных процессоров, который не
выпускал бы их параллельно с основной продукцией. О н и являются сво­
его рода конструкторами для макетирования электронных устройств.
Обычно это печатная плата с установленным на ней М К или Ц С П и всей
необходимой ему стандартной периферией. На этой плате также устанав¬
ливают схемы связи с в н е ш н и м компьютером. К а к правило, там ж е и м е ­
ется свободное поле для монтажа специфических схем пользователя.
Иногда предусмотрена уже готовая разводка для установки дополнитель­
ных устройств, рекомендуемых ф и р м о й , например, ПЗУ, ОЗУ, Ж К И - д и с ­
плей, клавиатура, А Ц П и т. д.
Эти средства могут применяться для следующих целей:
• тестирование и отладка программного обеспечения систем на ре¬
альных образцах микроконтроллеров и сигнальных процессоров;
• комплексная отладка макета системы, используемого затем в ка­
честве образца для реализации прототипной системы;
• реализация одноплатных контроллеров, встраиваемых в мелкосе¬
рийную продукцию;
• изучение ф у н к ц и о н и р о в а н и я микроконтроллеров, получение на­
выков их практического п р и м е н е н и я .

ПЗУ-мониторы

В качестве вспомогательного средства при использовании внутрисхем¬


ного эмулятора применяются резидентные мониторы отладки, или ПЗУ-
мониторы (ROM-monitors). ПЗУ-монитор — это очень простая и по воз­
можности небольшая программа, дающая пользователю возможность в оп¬
ределенной степени контролировать выполнение тестируемой программы,
одновременно работающей в целевом устройстве. В простейшем случае от¬
ладочный монитор поставляется в виде микросхемы ПЗУ, которая вставля­
ется в специальную розетку на плате развития. Плата также имеет ОЗУ для
программ пользователя и канал связи с внешним компьютером или терми­
налом. Прикладная программа должна быть специально подготовлена: в
нужные места необходимо вставить вызовы отладочных подпрограмм мо¬
нитора. Готовую прикладную программу получают из отлаженной путем
удаления всех вызовов мониторных функций и самого монитора отладки.
ПЗУ-мониторы обычно используются для контроля исполнения тес¬
товой программы на отлаженном оборудовании. О н и , как правило, п о -

247
Курс Архитектура микропроцессоров

ставляются производителями интегральных схем или их партнерами для


испытаний п е р и ф е р и й н ы х устройств, тестовых алгоритмов на реальном
кристалле или на окончательной целевой системе. П З У - м о н и т о р ы де¬
шевле полнофункциональных ВСЭ. О с н о в н ы е недостатки ПЗУ-монито¬
ров заключаются в том, что они не являются программами реального вре­
мени и изменяют карту памяти.

Э м у л я т о р ПЗУ

П р и г е н е р а ц и и тестовых воздействий в М П С используются эмуля­


торы ПЗУ, к о т о р ы е представляют собой с п е ц и а л ь н ы м образом п о д ­
ключаемую оперативную п а м я т ь , з а м е н я ю щ у ю П З У на время отладки
системы. Это устройство позволяет пользователю избежать м н о г о к р а т ­
н ы х ц и к л о в п е р е п р о г р а м м и р о в а н и я ПЗУ, с в я з а н н ы х с отладкой про¬
граммы.
Для выполнения ф у н к ц и й загрузки и изменения содержимого п а м я ­
ти эмулятор должен иметь средства для подключения к внешнему устрой­
ству. К а к правило, роль такого устройства выполняет в н е ш н я я ЭВМ.
Программа с компьютера загружается в эмуляционное ОЗУ через один из
стандартных каналов связи. Для логического, электрического и конструк­
тивного согласования эмулятора П З У и разрабатываемой М П С служит бу­
фер-адаптер. Буфер-адаптер может быть сменным и выбирается в зависи­
мости от конструктивного исполнения М П С и типа применяемых в ней
микросхем памяти.
Эмулятор П З У используется к а к для з а м е н ы на э т а п е отладки
в н е ш н е й п о с т о я н н о й п а м я т и м и к р о к о н т р о л л е р а , так и для э м у л и р о в а ­
н и я его внутренней п а м я т и к о м а н д . В п о с л е д н е м случае н а х о д я щ а я с я
на кристалле М К п а м я т ь д о л ж н а быть с к о н ф и г у р и р о в а н а т а к и м обра­
з о м , ч т о б ы все о б р а щ е н и я к П З У к о м а н д п р и в о д и л и к о б р а щ е н и ю и с ­
ключительно к внешней памяти. Например, в микроконтроллерах с ар­
хитектурой M C S - 5 1 для этой цели может служить с п е ц и а л ь н ы й вход
DEMA.
В к о н ц е этапа отлаженная программа заносится с п о м о щ ь ю п р о ­
грамматора в энергонезависимую память М К , и проверяется работа М П С
без эмулятора ПЗУ на реальных частотах.
Эмуляторы П З У могут в ы п о л н я т ь часть ф у н к ц и й схемных э м у л я ­
торов. П р и этом их р е а л и з а ц и я оказывается п р о щ е и д е ш е в л е , так к а к
о н и н е эмулируют ф у н к ц и и м и к р о к о н т р о л л е р а , к о т о р ы й в п р о ц е с с е от¬
л а д к и продолжает работать в составе системы. Вследствие этого э м у л я ­
т о р ы П З У я в л я ю т с я у н и в е р с а л ь н ы м и средствами, к о т о р ы е могут и с ­
пользоваться для отладки систем с р а з л и ч н ы м и м о д е л я м и микроконт¬
роллеров.

248
Лекция 17 Методы и средства отладки микропроцессорных систем

Логический анализатор

К а к отмечалось выше, отладка современных микропроцессорных


систем требует от инструментальных средств следующих возможностей:
• синхронный контроль состояния многоразрядных ш и н ;
• регистрация последовательностей состояний в связи с редкими и
однократными событиями;
• высокая частота работы.
Традиционные приборы контроля работы цифровых схем (амперме¬
тры, вольтметры, осциллографы, даже многолучевые с з а п о м и н а н и е м ин¬
формации) этим с п е ц и ф и ч е с к и м требованиям не удовлетворяют.
Для этих целей разработаны специальные устройства — логические
анализаторы (ЛА). Основной областью п р и м е н е н и я ЛА является этап раз­
работки М П С , когда отсутствуют и проверенная аппаратура, и отлажен­
ные программы. И м е н н о в этих условиях проявляются преимущества ЛА
к а к универсального и гибкого в п р и м е н е н и и прибора, позволяющего раз¬
работчику находить п р и ч и н ы сложных аппаратно- программных неис¬
правностей.
Основу логического анализатора составляет память логических по­
следовательностей (ПЛП). Тактовые сигналы записи в П Л П могут выра­
батываться внутренним генератором ЛА или поступать от контролируе­
мой схемы. В последнем случае тактовые сигналы могут стробироваться
другими в н е ш н и м и сигналами или их комбинацией. В случае заполнения

Рис. 17.1. Структура памяти логических последовательностей

249
Курс Архитектура микропроцессоров

всего объема П Л П запись в нее продолжается циклически с нулевого ад­


реса. Таким образом, в памяти всегда хранятся N последних принятых
слов, где N — емкость П Л П .
Режим регистрации продолжается до появления события, заданного
оператором при настройке, или к о м б и н а ц и и таких событий. Регистрация
может быть прекращена не только непосредственно в момент события, но
и через определенное число тактов после него. В этом случае в П Л П фик¬
сируются состояния сигналов в контрольных точках в моменты как пред¬
шествовавшие событию, так и непосредственно следовавшие за н и м , что
облегчает анализ ситуации (рис. 17.1). Количество тактов последействия
также определяется при настройке.
С о в р е м е н н ы е логические анализаторы и м е ю т с т а н д а р т н ы е с р е д ­
ства п о д к л ю ч е н и я к к о н т р о л и р у е м о й М П С , б о л ь ш о е р а з н о о б р а з и е ус¬
л о в и й запуска по п о с л е д о в а т е л ь н о с т и с о б ы т и й , н а л и ч и е разнообраз¬
н ы х р е ж и м о в о т о б р а ж е н и я и н ф о р м а ц и и , в ы с о к о е б ы с т р о д е й с т в и е (до
н е с к о л ь к и х гигагерц), б о л ь ш у ю е м к о с т ь П Л П к а к п о ч и с л у регистри¬
руемых к а н а л о в ( н е с к о л ь к о с о т е н ) , т а к и по д л и н е р е г и с т р и р у е м о й по¬
с л е д о в а т е л ь н о с т и (десятки мегабит на к а н а л ) . Н е к о т о р ы е м о д е л и л о ­
гических анализаторов снабжаются встроенными генераторами тесто­
вых п о с л е д о в а т е л ь н о с т е й , что п о з в о л я е т и с п о л ь з о в а т ь их в качестве
а в т о н о м н ы х п р и б о р о в п р и п о и с к е н е и с п р а в н о с т е й в о т д е л ь н ы х бло¬
ках М П С .

Сигнатурный анализатор

П о и с к неисправности в М П С с п о м о щ ь ю логического анализатора


требует высокой к в а л и ф и к а ц и и персонала. Для каждой конкретной неис¬
правности необходимо заново разрабатывать процедуру испытаний, на¬
страивать прибор на н о в ы й режим работы, который, по м н е н и ю операто¬
ра, позволит обнаружить и локализовать неисправность. Поэтому Л А ис¬
пользуются в основном на этапе разработки М П С . В то ж е время о н
малопригоден на этапах производства и эксплуатации системы. Здесь
большее распространение получили п р и н ц и п ы сигнатурного анализа,
которые, не требуя высокой к в а л и ф и к а ц и и персонала, позволяют быстро
и точно отыскивать вышедший из строя компонент М П С с п о м о щ ь ю н е ­
дорогого и компактного оборудования.
С и г н а т у р н ы й а н а л и з о с н о в а н на п р е о б р а з о в а н и и д л и н н ы х после¬
довательностей д в о и ч н ы х сигналов в д в о и ч н о е ч и с л о , н а з ы в а е м о е сиг¬
натурой. И з м е р я е м ы е д в о и ч н ы е последовательности возбуждаются в
к о н т р о л ь н ы х точках М П С под действием с п е ц и а л ь н о й тестовой про¬
г р а м м ы . Сигнатуры к о н т р о л ь н ы х точек определяются на заведомо р а ­
б о т о с п о с о б н о й системе и указываются на п р и н ц и п и а л ь н о й схеме М П С

250
Лекция 17 Методы и средства отладки микропроцессорных систем

п о д о б н о тому, к а к на схемах аналоговых устройств указываются осцил¬


л о г р а м м ы и н е к о т о р ы е п а р а м е т р ы аналоговых сигналов. Сигнатура
представляется, к а к п р а в и л о , в виде н е с к о л ь к и х ш е с т н а д ц а т е р и ч н ы х
цифр.
В настоящее время в связи со все возрастающей интеллектуализаци¬
ей устройств сигнатурные анализаторы постепенно утрачивают свои по¬
зиции.

JTAG-эмулятор

В последнее время к о м п а н и и — производители микропроцессоров и


микроконтроллеров интегрируют в свои новые разработки модули с
ф у н к ц и я м и встроенной отладки — отладчики на кристалле. Для поддерж­
ки ф у н к ц и й встроенной отладки необходим специальный канал связи с
компьютером. Ч а щ е всего в качестве такого канала используется тесто­
вый последовательный интерфейс типа JTAG, поэтому аппаратное сред¬
ство отладки, построенное на базе встроенного в кристалл отладочного
модуля, часто называют JTAG-эмулятором. Аббревиатура J T A G возникла
по н а и м е н о в а н и ю разработчика — объединенной группы по тестам Joint
Test Action Group.
И н т е р ф е й с о м J T A G , р е а л и з о в а н н ы м с о г л а с н о стандарту I E E E
1149.1-2001, управляет одно устройство-контроллер (чаще всего это пер¬
сональный компьютер, о с н а щ е н н ы й соответствующим п р о г р а м м н ы м
обеспечением и интерфейсным адаптером), к которому может быть под¬
ключено несколько тестируемых устройств.
В состав интерфейса J T A G входят 5 однонаправленных последова­
тельных л и н и й связи (один из сигналов необязательный). Эти сигналы
образуют тестовый порт ТАР (Test Access Port), через который тестируемое
устройство подключается к тестирующему оборудованию (контроллеру).
В задачу тестирующего оборудования входит ф о р м и р о в а н и е тестовых
сигналов по программе тестирования, определенной разработчиком тес¬
тируемого устройства, и сравнение полученных результатов с эталонами.
Один и тот ж е контроллер и порт могут использоваться для тестирования
любого числа устройств, поддерживающих J T A G . Для этого устройства
своими портами ТАР соединяются в цепочку. Стандартизованный логи­
ческий формат позволяет контроллеру независимо общаться с каждым из
устройств цепочки.
JTAG-эмулятор позволяет выполнять следующие действия:
1. Пошаговый (на уровне м а ш и н н ы х команд) режим выполнения
программы.
2. Заморозка п е р и ф е р и и п р и останове: в м о м е н т перехода в р е ж и м
останова в ы п о л н е н и я п р о г р а м м ы пользователя JTAG-эмулятор

251
Курс Архитектура микропроцессоров

блокирует и с т о ч н и к тактовой частоты, у п р а в л я ю щ и й работой


центрального процессора и п е р и ф е р и й н ы х устройств. Это обес¬
печивает точное отслеживание модельного времени. J T A G - э м у ­
лятор обеспечивает точное соответствие времени в ы п о л н е н и я
п р о г р а м м ы пользователя времени работы п е р и ф е р и й н ы х уст¬
ройств.
3. Доступ к ресурсам микроконтроллера при останове: JTAG-эмуля­
тор предоставляет доступ ко всем ресурсам микроконтроллера в
режиме останова в ы п о л н е н и я программы пользователя.
Поскольку и н ф о р м а ц и я вводится в отлаживаемое устройство и в ы ­
водится из него через последовательный порт, метод J T A G не может слу­
жить заменой полнофункциональному эмулятору, так как не в состоянии
отразить текущее состояние внутренних ш и н .

Однако он имеет ряд очевидных достоинств:


1. Н и з к а я стоимость средства отладки: в п р о с т е й ш е м случае J T A G -
эмулятор может состоять из кабеля, с о е д и н я ю щ е г о порт к о м ­
пьютера с J T A G - п о р т о м на отлаживаемой плате. Все р е ж и м ы от­
ладки м и к р о к о н т р о л л е р а поддерживаются п р о г р а м м н ы м обес¬
печением.
2. Максимально точное соответствие условий отладки рабочим усло¬
виям серийного изделия: отладка М П С может осуществляться на
серийной плате, д о п о л н е н н о й только 5-контактным разъемом
порта ТАР на серийном М П . К а к следствие, электрические и вре¬
м е н н ы е характеристики системы в процессе отладки абсолютно
идентичны характеристикам рабочего режима.
3. В о з м о ж н о с т ь о д н о в р е м е н н о г о т е с т и р о в а н и я н е с к о л ь к и х уст­
ройств, объединенных JTAG-цепочкой, причем стандарт не вво¬
дит никаких ограничений на количество устройств в цепочке.
К недостаткам JTAG-эмулятора относятся следующие:
1. Необходимое условие использования JTAG-эмулятора — наличие
встроенной в микроконтроллер Flash-памяти программ, посколь­
ку для загрузки программы пользователя при отладке JTAG-эму­
лятор задействует собственную память микроконтроллера. В м и к ­
роконтроллерах, у которых применяется другой тип памяти п р о ­
грамм (например, только П П З У ) , реализация JTAG-эмулятора на
кристалле невозможна.
2. JTAG-эмулятор имеет ограниченное (обычно не более 8) количе¬
ство точек останова.
3. Трудности в реализации пошагового режима на уровне операторов
я з ы к а высокого уровня, так как для отработки этого режима в ис¬
ходный текст отлаживаемой программы в начале каждого опера-

252
Лекция 17 Методы и средства отладки микропроцессорных систем

тора Я В У должна вставляться команда вызова отладочного мони¬


тора, а количество контрольных точек ограниченно.
4. Программа пользователя, которая загружается для отладки, имеет
больший размер и большее времен в ы п о л н е н и я , ч е м рабочая п р о ­
грамма, в связи с необходимостью вставки в нее команд вызова от­
ладочного монитора. Это нарушает, хотя и несущественно, мас­
штаб реального времени в ы п о л н е н и я программы пользователя в
режиме отладки с JTAG-эмулятором.
5. JTAG-эмулятор н е поддерживает точки останова п о с л о ж н ы м
(комплексным) условиям, которые реализованы, например, во
внутрисхемных эмуляторах.
J T A G ш и р о к о используется д л я отладки р е а л ь н ы х устройств. Тес­
тируемая п р о г р а м м а может быть т о й о к о н ч а т е л ь н о й версией (после
у д а л е н и я к о м а н д вызова м о н и т о р а о т л а д к и ) , к о т о р а я будет п о с т а в ­
ляться.
Интерфейс J T A G применяется н е только для тестирования, н о и для
программирования различных устройств, в том числе и энергонезависи­
мой памяти микроконтроллеров. Контакты для сигналов J T A G имеются
на ш и н е P C I , однако в их использовании единообразия н е наблюдается
(либо остаются н е п о д к л ю ч е н н ы м и , либо соединяются для организации
цепочки).
Отметим, что интерфейсом J T A G в настоящее время оснащаются н е
только однокристальные микроконтроллеры и сигнальные процессоры,
но и универсальные микропроцессоры вплоть до моделей с наивысшей
на сегодняшний день производительностью, например, Intel Core i7
Extreme Edition. Здесь о н позволяет н е только тестировать сам процессор
(это н е представляет особого прикладного интереса), н о и организовать
зондовый режим отладки (probe mode). Зондовый режим является м о щ ­
н ы м средством отладки системного программного обеспечения; обыч­
н ы й процессор, связанный с тестовым контроллером интерфейсом J T A G ,
превращается во внутрисхемный эмулятор.

Средства разработки и отладки программного


обеспечения
После того к а к разработчиком были распределены ф у н к ц и и микро¬
процессорной системы между аппаратной и программной ее частями, их
разработка до определенного момента может проводиться автономно.
Для разработки программного обеспечения в настоящее время использу­
ются интегрированные среды разработки, содержащие в своем составе тек­
стовые редакторы, компиляторы, редакторы связей, загрузчики и симу-
ляторы.

253
Курс Архитектура микропроцессоров

Текстовые р е д а к т о р ы служат для с о з д а н и я текста п р о г р а м м ы . К а к


п р а в и л о , о н и и м е ю т более о г р а н и ч е н н ы е в о з м о ж н о с т и по с р а в н е н и ю с
у н и в е р с а л ь н ы м и п р о г р а м м а м и этого т и п а и о р и е н т и р о в а н ы на особен¬
н о с т и н а п и с а н и я п р о г р а м м на используемых я з ы к а х п р о г р а м м и р о в а ­
ния.
Традиционным я з ы к о м программирования для М П С , работающих в
реальном масштабе времени (а и м е н н о к этому классу относится боль­
шинство систем управления, сбора и обработки и н ф о р м а ц и и на базе од­
нокристальных микроконтроллеров и Ц С П ) , является Ассемблер. В н а ­
стоящее время в распоряжение разработчиков практически повсеместно
предоставляется также компилятор с языка С и , а иногда С и + + и даже П а ­
скаля. К а к правило, в этом случае используются специальные о п т и м и з и ­
рующие компиляторы, но даже они не всегда позволяют написать п р и е м ­
лемую по времени выполнения и объему памяти программу, что вызыва¬
ет необходимость их доработки на Ассемблере.
Редактор связей собирает единый и с п о л н я е м ы й модуль из несколь¬
ких объектных программных модулей.
Если программы предыдущих типов используются при любом п р о ­
цессе программирования, то симуляторы являются с п е ц и ф и ч е с к и м п р о ­
граммным средством, используемым в процессе проектирования М П С .
Симуляторы предоставляют пользователю возможность выполнить тести­
рование и отладку разработанного программного обеспечения на про¬
граммно-логической модели микропроцессора.
Симуляторы позволяют запустить программу и полностью п р о с л е ­
дить ее и с п о л н е н и е . Загрузив программу в симулятор, пользователь
имеет возможность запускать ее в п о ш а г о в о м или н е п р е р ы в н о м режи¬
мах, задавать условные или безусловные точки останова, контролиро¬
вать и свободно м о д и ф и ц и р о в а т ь содержимое я ч е е к памяти и регистров
моделируемого микропроцессора.
Симулятор охватывает сразу несколько процессоров одного семей -
ства. Выбор конкретного типа М П среди моделей семейства обеспечива¬
ется соответствующими о п ц и я м и меню. П р и этом моделируется работа
Ц П , всех портов ввода/вывода, прерываний и другой периферии.
Изначально отладка программ с использованием симуляторов ве­
лась на уровне м а ш и н н ы х команд в символьных обозначениях регистров.
В состав современных симуляторов входят также отладчики на языках
высокого уровня, поскольку в комплект разработчика, как правило, вхо­
дит и соответствующий компилятор.
Основное достоинство симуляторов заключается в том, ч т о , п о ­
скольку о н и н е требуют н а л и ч и я реальных аппаратных средств, разра­
ботка п р о г р а м м н о г о обеспечения может идти параллельно с их разра¬
боткой.

254
Лекция 17 Методы и средства отладки микропроцессорных систем

Главным недостатком этого подхода является то, что, поскольку м о ­


д е л и р о в а н и е осуществляется п р о г р а м м н ы м с п о с о б о м , отлаживаемая
программа исполняется не в реальном масштабе времени. П р и этом все
сигналы ввода/вывода д о л ж н ы генерироваться специальными подпро­
граммами, разработанными для имитации периферийных устройств. Од­
нако существует м н е н и е , что хорошо н а п и с а н н ы й симулятор дает доста­
точно точное представление о работе программы целевого М П , включая
ее временные характеристики.
Изначально симуляторы создавали сами разработчики М П Б И С и
продавали их по очень н и з к о й цене или даже поставляли бесплатно, для
того чтобы потенциальные пользователи могли заранее познакомиться с
особенностями новых схем и начать разработку П О для них до появления
на р ы н к е достаточного количества новых Б И С . Н ы н е симуляторы п о ­
ставляет множество производителей эмуляторов и компиляторов, в то
время как традиционные поставщики — производители интегральных
схем — предпочитают покидать этот рынок.

Комплексная отладка микропроцессорных систем

К а к правило, микропроцессорная система на основе М К или Ц С П —


это система реального времени, то есть корректность ее функционирова¬
н и я зависит от времени выполнения отдельных программ и скорости ра­
боты аппаратуры. Поэтому система считается отлаженной после того, как
рабочие программы правильно функционируют на действительной аппа¬
ратуре системы в реальных условиях.
Дополнительным свойством, которым д о л ж н ы обладать средства
комплексной отладки по сравнению со средствами автономной отладки,
является возможность управления поведением М П С и сбора информа¬
ц и и о ее поведении в реальном времени.
Эти средства позволяют вести разработку и отладку, постепенно ус­
л о ж н я я аппаратуру и программы. П р и этом разработка, изготовление и
отладка проводятся поэтапно с нарастанием сложности. Н о в ы е блоки а п ­
паратуры и программы вводятся в создаваемую систему, присоединяясь к
проверенной ее части.
На этапе комплексной отладки микропроцессорной системы ис¬
пользуются следующие основные приемы:
1) пошаговое отслеживание поведения системы;
2) останов ф у н к ц и о н и р о в а н и я системы при в о з н и к н о в е н и и опреде­
ленного события;
3) чтение и и з м е н е н и е содержимого памяти или регистров системы
в момент останова;
4) отслеживание поведения системы в реальном времени.

255
Курс Архитектура микропроцессоров

Всем этим условиям в наилучшей степени удовлетворяют п о л н о ­


ф у н к ц и о н а л ь н ы е внутрисхемные эмуляторы.

Краткие итоги. В лекции рассмотрены процесс тестирования и отлад¬


ки микропроцессорных систем, специфика М П Б И С и микропроцессор¬
ной системы в целом как объекта контроля. Определены особенности
контроля и отладки М П С на различных этапах жизненного цикла. Пред­
ставлены инструментальные средства, используемые как для автономного
тестирования и отладки аппаратных и программных частей М П С , так и
для их комплексной отладки в условиях реального функционирования.

256
Лекция 18 Методы и средства оценки производительности микропроцессоров

Лекция 18. Методы и средства оценки


производительности микропроцессоров
и микропроцессорных систем

Цель лекции: изучение методов и средств оценки производительнос¬


ти микропроцессоров и микропроцессорных систем различных классов.

Большое разнообразие представленных на р ы н к е микропроцессоров


и систем, построенных на их основе, требует системного подхода к выбо¬
ру той или и н о й аппаратной платформы и конфигурации. Критерии вы¬
бора определяются к о н к р е т н ы м и требованиями к системе и базируются
на ряде общих требований, предъявляемых к ее характеристикам. К н и м
относятся стоимость, надежность, энергопотребление, масштабируе­
мость и ряд других, которые важны в тех или и н ы х областях. Н о выбор
микропроцессора и М П С для любого п р и м е н е н и я н е может обойтись без
о ц е н к и важнейшего показателя — производительности.
Казалось бы, основной мерой оценки производительности микро¬
процессора должна выступать его тактовая частота. Однако начиная с н е ­
которого момента развития микропроцессорной техники рост тактовой
частоты и производительность микропроцессора начинают идти разны¬
м и , все больше расходящимися дорогами. Н а начальном этапе развития,
когда частоты различных микропроцессоров н е очень различались между
собой, главным показателем производительности были архитектура М П ,
которая во многом определялась именем фирмы-разработчика, и разряд¬
ность. И м е н н о о н и и выносились в название микропроцессора (напри¬
мер, знаменитые I-8080 ф и р м ы Intel или Z-80 ф и р м ы Zilog). С появлени­
ем первых 32-разрядных микропроцессоров Intel в их название п о м и м о
прочей и н ф о р м а ц и и стала вноситься тактовая частота. Трудно сказать,
было ли это началом так называемой «войны мегагерц», однако со време­
н е м сложилась такая ситуация, что потребитель обращал в н и м а н и е ско¬
рее на рост тактовой частоты, нежели на изменение архитектуры процес¬
соров или технологий их производства.
В то ж е время с развитием архитектуры, появлением суперскаляр¬
н ы х м и к р о п р о ц е с с о р о в , в о з м о ж н о с т е й обработки д а н н ы х п о схеме
S I M D , оптимизации структуры к э ш - п а м я т и тактовая частота становится
скорее показателем уровня совершенства технологического процесса, н о
отнюдь н е производительности. Более того, л и н е й к и микропроцессоров,
например, Pentium 4, имеют несколько процессоров с одной тактовой ча¬
стотой, хотя предназначены для абсолютно различных рынков.
П е р в о й переход от указания тактовой частоты в н а з в а н и и своих
м и к р о п р о ц е с с о р о в к у к а з а н и ю рейтинга производительности (PR) в ы -

257
Курс Архитектура микропроцессоров

п о л н и л а ф и р м а A M D . Д л я своего м и к р о п р о ц е с с о р а Athlon X P о н а ввела


P R , о п р е д е л я в ш и й с я к а к р е а л ь н ы й уровень производительности в срав¬
н е н и и с к о н к у р и р у ю щ и м и процессорами ( к о н е ч н о ж е , это был прежде
всего процессор ф и р м ы Intel — Pentium 4), р а б о т а ю щ и м и на более вы¬
с о к о й частоте. Введение такой м а р к и р о в к и прежде всего п о к а з ы в а л о ,
что к о м п а н и я п о - п р е ж н е м у занимает место на р ы н к е р я д о м с лидером.
П р е ж д е этому м е ш а л о указание и м е н н о реальной тактовой частоты про¬
цессоров A M D .

MIPS и MFLOPS

С подходом, о с н о в а н н ы м на сравнении производительности микро¬


процессоров п о их рабочим частотам, тесно связан подход по оценке про¬
изводительности системы по тому, насколько быстро система может вы¬
полнять команды процессора.
Однако это весьма расплывчатый показатель. Скорость работы про¬
цессора, обычно выражаемая в миллионах операций в секунду (millions of
instructions per second — MIPS), сильно привязана к его тактовой частоте.
К р о м е того, оценка производительности в MIPS существенно зависит от
системы команд микропроцессора: одна команда в микропроцессоре од¬
ного типа может быть эквивалентна по вычислительной мощности не¬
скольким командам другого М П . К тому ж е различные операции, особен¬
но в CISC-микропроцессорах, требуют разного времени для их выполне­
ния. Следовательно, MIPS-оценка существенно зависит от того, какие
команды принимаются в расчет. Таким образом, MIPS является полез¬
н ы м показателем л и ш ь п р и сравнении процессоров одного производите¬
ля. Такие процессоры д о л ж н ы поддерживать одинаковую систему к о ­
манд. К р о м е того, следует применять одинаковые компиляторы. Сущест­
в е н н а я слабость MIPS к а к п о к а з а т е л я п р о и з в о д и т е л ь н о с т и часто
являлась поводом для шутки: M I P S — это аббревиатура выражения
«Meaningless Indicator of Processor Speed» («бессмысленный показатель
скорости процессора»).
Аналогичным подходом является измерение производительности
работы процессора в миллионах операций с плавающей точкой в секунду
(millions of floating-point operations per second — MFLOPS). Обычно с к о ­
рость в MFLOPS вычисляют для смеси операций сложений и умножений
с плавающей точкой. Н о поскольку микропроцессоры становятся все бы¬
стрее и быстрее, значение максимума MFLOPS перестает быть полезным
в качестве разумной меры производительности операций с плавающей
точкой: ограничивающим фактором становится пропускная способность
каналов памяти (насколько быстро д а н н ы е м о ж н о перемещать и з процес¬
сора и в процессор).

258
Лекция 18 Методы и средства оценки производительности микропроцессоров

Тестовые п р о г р а м м ы

Вследствие недостатков рассмотренных в ы ш е подходов к измере¬


н и ю производительности вычислительных систем, в настоящее время для
этих целей обычно используют так называемые бенчмарки (benchmark) —
тестовые программы, которые измеряют производительность при типо¬
вой рабочей нагрузке. Зафиксировав рабочую нагрузку, м о ж н о варьиро¬
вать базовые системные параметры и сравнивать производительность си¬
стемы в разных конфигурациях и разные системы между собой.
Существует три вида тестовых программ:
1) к о м п о н е н т о - з а в и с и м ы е и н с т р у м е н т ы ( п о д о б н ы е п р о г р а м м е
Linpack и смесям S P E C c p u для универсальных М П и BDTImark
для Ц С П ) ;
2) средства о ц е н к и всей системы, например, набор Т Р С для эмуля­
ц и и коммерческих сред и SPEChpc для о ц е н к и производительно¬
сти в области высокопроизводительных вычислений; и н а к о н е ц ,
3) программы, разработанные пользователем.

Тестовая программа Linpack

Linpack является о д н о й и з первых тестовых программ, п р и н я т ы х


I T - с о о б щ е с т в о м на вооружение. О н а , так ж е к а к и п р и измерениях п р о ­
изводительности в MIPS и M F L O P S , измеряет время и количество опе¬
р а ц и й , н о делает это п р и в ы п о л н е н и и к о н к р е т н о й практической задачи:
р е ш е н и и п л о т н о й системы л и н е й н ы х уравнений методом и с к л ю ч е н и я
Гаусса.
Существует несколько версий Linpack, различающихся п о размеру
системы л и н е й н ы х уравнений, которые о н и решают, а также п о числовой
точности и основным нормам для тестирования. Наиболее часто п р и м е ­
няли версию с матрицей 100 х 100, с результатами двойной точности, с
к о м п и л я ц и е й текста на Фортране с запретом оптимизации.
Сердцевиной тестовой программы Linpack 100 х 100 является под­
программа, которая умножает вектор на константу и добавляет его к дру­
гому вектору. Н а каждой итерации этого цикла выполняются две опера­
ц и и с плавающей точкой (умножение и сложение) и три операции с п а м я ­
тью (два чтения и запись).
Когда к э ш - п а м я т ь микропроцессоров увеличилась настолько, что
смогла полностью вмещать все д а н н ы е тестовой программы, о ц е н к и , по¬
лучаемые с п о м о щ ь ю Linpack 100 х 100, перестали быть полезными:
структуры данных для всей программы составляют только 320 Кбайт.
В дополнение к тесту Linpack 100 х 100 был разработан тест Linpack
1000 х 1000, в котором система уравнений может быть решена с п о м о щ ь ю

259
Курс Архитектура микропроцессоров

любого метода по выбору производителя. Более м о щ н ы й Linpack — это


важная тестовая программа, поскольку она дает корректный верхний
предел для производительности операций с плавающей точкой. Это акту¬
ально при р е ш е н и и очень больших высокооптимизированных научных
задач в конкретной системе. Эти тесты могут выполняться на компьюте­
рах при разном числе процессоров, давая также о ц е н к и качества распа­
раллеливания.

Тесты SPECcpu

В к о н ц е 1980-х годов был сформирован Консорциум по оценке п р о ­


изводительности систем (Systems Performance Evaluation Cooperative —
SPEC). SPEC выполняет две основные функции:
• разрабатывает тестовые пакеты;
• собирает и публикует о ф и ц и а л ь н ы е результаты тестирования.
Ч л е н а м и SPEC являются все ведущие в области производства м и к ­
ропроцессоров, компьютеров и программного обеспечения к о м п а н и и
(всего с в ы ш е 40): Advanced M i c r o Devices ( A M D ) , Compaq, Hewlett
Packard, I B M , Intel, Microsoft, Sun Microsystems и другие.
Первая тестовая программа SPEC для микропроцессора была назва­
на SPEC89. В настоящее время действует уже пятая версия этих тестов —
SPEC2006. Одной из главных п р и ч и н , требующих необходимости регу­
лярного пересмотра тестов SPECcpu, является рост емкости к э ш - п а м я т и
современных микропроцессоров. Вследствие этого с течением времени
многие тесты из состава S P E C c p u оказываются хорошо локализуемыми в
к э ш е , что для серьезных современных приложений, вообще говоря, не ха­
рактерно. За счет выпуска новых версий тестов организация S P E C не от¬
стает от новейших тенденций в аппаратных средствах и в разработке ком¬
пиляторов, не давая производителям «подгонять» свои системы под хоро­
ш и е результаты тестирования.
В состав тестов S P E C c p u входят реальные п р и л о ж е н и я из различ­
ных областей. П р и этом совокупность тестов подбирается таким обра¬
зом, чтобы они по возможности покрывали р а з л и ч н ы е характеристики
микроархитектуры процессоров, в л и я ю щ и е на производительность. И с ­
ходные п р о г р а м м н ы е коды тестов S P E C c p u имеют большой объем, а вре­
мя прогона всех тестов составляет много часов. Все эти тесты д о л ж н ы
быть хорошо п е р е н о с и м ы , то есть д о л ж н ы успешно работать на различ¬
ных типах компьютеров с р а з л и ч н ы м и о п е р а ц и о н н ы м и системами и
компиляторами.
Тестовый пакет S P E C c p u предназначен для о ц е н к и производитель¬
ности м и к р о п р о ц е с с о р о в и вычислительных систем. О н состоит из двух
групп тестов: C I N T c p u для о ц е н к и производительности на ц е л о ч и с л е н -

260
Лекция 18 Методы и средства оценки производительности микропроцессоров

н ы х операциях и C F P c p u для о ц е н к и производительности на операциях


с п л а в а ю щ е й точкой. Буква «C» в названиях тестов означает, ч т о тесты
я в л я ю т с я « к о м п о н е н т н ы м и » (component-level), в отличие от тестов про¬
изводительности системы в целом. Группы тестов Cint и Cfp ориентиро¬
в а н ы н а оценку работы м и к р о п р о ц е с с о р о в , подсистемы к э ш - п а м я т и и
о п е р а т и в н о й п а м я т и , а также к о м п и л я т о р о в . Эти тесты н е имеют о т н о ­
ш е н и я к о ц е н к е производительности сети, д и с к о в и л и графической
подсистемы.
Результаты тестов представляются в четырех вариантах («метри­
ках»), определяемых при различных способах к о м п и л я ц и и программ и
организации вычислений:
• метрики типа «base» получаются на тестах, которые д о л ж н ы к о м ­
пилироваться так ж е , к а к пользователи будут компилировать свои
программы, то есть с некоторыми базовыми о п ц и я м и оптимиза­
ц и и , одинаковыми для всех тестов в тестовом пакете. Другая груп¬
па метрик, без приставки «base», соответствует наилучшей опти¬
м и з а ц и и , которую производитель может обеспечить для каждого
конкретного теста;
• метрики типа «rate» позволяют оценить суммарный объем вычис¬
л е н и й , который компьютер может выполнить за определенное
время. То есть на SMP-компьютере позволяется запустить не¬
сколько к о п и й одного теста и в качестве результата выдать сум¬
марное количество итераций, выполненное всеми процессорами
за определенное ф и к с и р о в а н н о е время. В противном случае, на
тестах без приставки «rate», оценивается просто «скорость» вы¬
числений.

Таблица 18.1. Тесты, входящие в состав SPECint2006

Тест Язык реализации Область применения

400.perlbench Си Я з ы к программирования Perl V5.8.7

401.bzip2 Си Сжатие

403.gcc Си Компилятор С и

429.mcf Си Комбинаторная оптимизация

445.gobmk Си Игра Го (искусственный интеллект)

261
Курс Архитектура микропроцессоров

Разработчики тестов SPECcpu отказались от использования стандарт¬


ных абсолютных единиц типа M F L O P S или M I P S . Вместо этого использу¬
ются собственные относительные единицы S P E C . Результаты «нормализу­
ются» по отношению к аналогичным результатам на так называемой «эта­
лонной» м а ш и н е . Для тестов SPECcpu2006 это рабочая станция Sun
Ultra/296 МГц. Н а данной машине прогон всех тестов SPECcpu2000 занима¬
ет примерно двое суток.
Тестовые наборы S P E C c p u состоят из нескольких независимых тес­
товых программ, каждая и з которых дает отдельный показатель произво­
дительности. Д л я усреднения результатов п о отдельным тестам в д а н н о м
тестовом наборе используется среднее геометрическое от нормализован¬
ных результатов всех тестов.
Состав тестов SPECint2006 представлен в табл. 18.1, а тестов
SPECfp2006 — в табл. 18.2.
П р и переходе от тестов SPECcpu2000 к тестам SPECcpu2006 в их со¬
ставе произошло резкое увеличение доли программ на С + + (с одной до
трех). Более того, четыре программы на С + + (из 17) появились даже в
SPECfp2006. И хотя Фортран в SPECfp2006 остался основным я з ы к о м ,
его доля существенно уменьшилась.

Таблица 18.2. Тесты, входящие в состав SPECfp2006

Тест Язык реализации Область примененияя

410.bwaves Фортран Д и н а м и к а жидкости

416.gamess Фортран Квантовая химия

433.milc Си Физика: квантовая хромодинамика

434.zeusmp Фортран Ф и з и к а / Астрофизика

435.gromacs Си/Фортран Биохимия / Молекулярная д и н а м и к а

436.cactusADM Си/Фортран Ф и з и к а / Общая теория относитель¬


ности

437.leslie3d Фортран Гидродинамика

444.namd Си++ Биология / Молекулярная д и н а м и к а

447.dealII Си++ Анализ конечных элементов

262
Лекция 18 Методы и средства оценки производительности микропроцессоров

Тесты SPEC HPC2002 для оценки


высокопроизводительных систем

Для о ц е н к и характеристик систем в области высокопроизводитель¬


ных вычислений (high performance computing, H P C ) S P E C предлагает на¬
бор тестов, которые:
• представляют объемные, реально действующие приложения в об¬
ласти научной и технологической обработки данных;
• используют п р о м ы ш л е н н ы е стандартные интерфейсы параллель¬
ного прикладного программирования;
• поддерживают п р и н ц и п ы разделения памяти и программирова­
н и я пересылки сообщений;
• могут оценивать компьютеры с разделением памяти и кластеры из
рабочих станций наравне с т р а д и ц и о н н ы м и M P P - с и с т е м а м и ;
• допускают определенные виды ручной оптимизации кодов.
В состав H P C - т е с т о в входят:
• тестовый пакет MPI2007, предназначенный для измерения п р о и з ­
водительности при интенсивных вычислениях с использованием
M P I - и н т е р ф е й с а для пересылки сообщений внутри широкого д и ­
апазона кластеров и SMP-систем;
• пакет S P E C O M P , который включает в себя наборы О М Р М 2 0 0 1 и
OMPL2001 для измерения производительности мультипроцессор­
ных систем и систем с разделением памяти.

Оценка производительности сигнальных


процессоров
К л ю ч е в о й параметр п р и в ы б о р е процессора цифровой обработки
сигналов — это его быстродействие. О н о влияет на время в ы п о л н е н и я
обработки входного сигнала и, следовательно, определяет максималь¬
ную частоту этого сигнала. Н о , к а к было п о к а з а н о в ы ш е , о ц е н к а быст¬
родействия процессора в M I P S ^ в б о л ь ш и н с т в е случаев несостоя¬
тельна.
Одно из р е ш е н и й этой проблемы — сравнивать процессоры по ско¬
рости выполнения операций, наиболее характерных для данного класса
микропроцессоров, например, по операциям умножения с накоплением
( M A C ) . Скорость выполнения таких операций критична для алгоритмов,
использующих цифровую фильтрацию, корреляцию и преобразования
Фурье. Более точной является оценка скорости исполнения определен¬
ных алгоритмов, например, фильтрации. Однако это требует разработки
соответствующих программ и тщательного анализа результатов тестиро-

263
Курс Архитектура микропроцессоров

вания. К сожалению, такая оценка также не дает полной и н ф о р м а ц и и о


реальном быстродействии процессора.
Поэтому для цифровых сигнальных процессоров, как и для универ­
сальных М П , пользуются о ц е н к а м и , в ы п о л н я е м ы м и авторитетными
международными к о м п а н и я м и , лидером среди которых в этой области
является к о м п а н и я BDTI — Berkeley Design Technology, Inc. В состав этой
к о м п а н и и входят представители около 100 ф и р м , включая лидеров в раз­
работке процессоров цифровой обработки сигналов — к о м п а н и и Texas
Instruments, Analog Devices, Freescale.
BDTI производит оценку сигнальных процессоров не только по быст­
родействию, но и по другим важным для областей п р и м е н е н и я Ц С П к р и ­
териям: эффективности памяти, энергопотреблению и т. д.
В состав тестов, последняя версия которых — BDTImark2000, входят
5 тестовых пакетов. Главную роль в оценке производительности сигналь¬
ных процессоров в их классическом п р и м е н е н и и играет тест B D T I D S P
Kernel Benchmark, который включает 12 тестовых программ для ключевых
алгоритмов обработки, таких как Б П Ф , К И Х - ф и л ь т р . Остальные пакеты
ориентированы на оценку работы Ц С П в конкретных областях: обработ¬
ка видеоданных, телекоммуникационные устройства и т. д.

Средства оценки всей системы рассмотрим на примере тестов T P C ,


разработанных для эмуляции коммерческих сред.
П о мере р а с ш и р е н и я использования компьютеров при обработке
транзакций в сфере бизнеса все более важной становится возможность
объективного сравнения систем между собой. С этой целью в 1988 году
был создан Совет по оценке производительности обработки транзакций
(Transaction Processing Performance Council — TPC). На сегодня членами
TPC являются практически все к р у п н е й ш и е производители аппаратных
платформ и программного обеспечения для автоматизации коммерчес­
кой деятельности. Д о создания TPC отсутствовало общее согласие отно­
сительно методики о ц е н к и систем обработки транзакций. Ш и р о к о ис¬
пользовались два тестовых пакета: Дебет/Кредит и TPI. Однако эти паке¬
ты не позволяли осуществлять адекватную оценку систем: они не имели
полных с п е ц и ф и к а ц и й , не давали объективных, проверяемых результа­
тов, не содержали полного описания конфигурации системы, ее стоимо­
сти и методологии тестирования, не обеспечивали объективного, беспри­
страстного сравнения одной системы с другой.
Основные задачи, решаемые TPC, сходны с задачами, р е ш а е м ы м и
S P E C : точное определение тестовых пакетов для о ц е н к и систем обработ¬
ки транзакций и баз данных, а также распространение объективных, про¬
веряемых данных. П р и о п и с а н и и конфигурации системы приводятся
д а н н ы е , существенные для коммерческих вычислительных систем: блок-

264
Лекция 18 Методы и средства оценки производительности микропроцессоров

схемы подключения каналов и устройств ввода/вывода, детальный с п и ­


сок аппаратных средств и программного обеспечения, включая номера
составных частей, их описание и номер версии, цена системы, а также
стоимость запасных частей, необходимых для эксплуатации системы в т е ­
ч е н и е 5 лет. Объем внешней памяти системы должен обеспечивать хране­
н и е и н ф о р м а ц и и о транзакциях за период 30, 90 или 180 дней.
TPC определяет и управляет форматом нескольких тестов для о ц е н ­
ки производительности O L T P (On-Line Transaction Processing). Так, на­
пример, в ы п у щ е н н ы й в ноябре 1989 года и используемый до настоящего
времени тест T C P - A предназначен для о ц е н к и производительности с и с ­
тем, работающих в среде интенсивно обновляемых баз данных. Такая сре­
да характеризуется:
• множеством терминальных сессий в режиме on-line;
• значительным объемом ввода/вывода п р и работе с дисками;
• умеренным временем работы системы и приложений;
• целостностью транзакций.
Практически п р и выполнении теста эмулируется типичная вычис­
лительная среда банка, включающая сервер базы данных, терминалы и
л и н и и связи.
Тест T P C - A определяет пропускную способность системы, измеряе¬
мую количеством транзакций в секунду (tps A ) , которые система может
выполнить при работе с множеством терминалов.

Рассмотренные подходы к тестированию отдельных компонентов и


вычислительных систем в целом н е всегда удовлетворяют всех разработ¬
ч и к о в и пользователей средств вычислительной техники. Вот почему пе¬
риодически делаются п о п ы т к и создать новые тестовые пакеты, которые
д о л ж н ы , по м н е н и ю авторов, устранить существующие пробелы и позво¬
лить оценить характеристики, наиболее важные для конкретной области
применения.
Одной и з независимых организаций, осуществляющей оценку п р о ­
изводительности вычислительных систем, является частная к о м п а н и я
A I M Technology, которая была основана в 1981 году. К о м п а н и я разрабаты­
вает и поставляет программное обеспечение для измерения производи¬
тельности систем, а также оказывает услуги п о тестированию систем ко¬
н е ч н ы м пользователям и поставщикам вычислительных систем и сетей,
которые используют п р о м ы ш л е н н ы е стандартные операционные систе¬
м ы , такие к а к U N I X и O S / 2 .
За время своего существования к о м п а н и я разработала специальное
программное обеспечение, позволяющее легко создавать различные ра­
бочие нагрузки, соответствующие требованиям п о использованию тести¬
руемой системы.

265
Курс Архитектура микропроцессоров

Набор тестов A I M делится на две категории: стандартные и заказ­


ные. В стандартный пакет входят тесты, которые потребляют определен¬
н ы е ресурсы системы и тем самым акцентируют в н и м а н и е на определен¬
ных компонентах, из которых складывается ее общая производитель­
ность. К настоящему времени A I M создала восемь стандартных смесей:
1. Универсальная смесь для рабочих станций (General Workstation Mix).
2. Смесь для механического С А П Р (Mechanical C A D M i x ) .
3. Смесь для г е о и н ф о р м а ц и о н н ы х систем (GIS M i x ) .
4. Смесь универсальных деловых приложений (General Business).
5. Многопользовательская смесь (Shared/Multiuser M i x ) .
6. Смесь для вычислительного (счетного) сервера (ComputeServer Mix).
7. Смесь для файл-сервера (File Server M i x ) .
8. Смесь СУБД ( R B M S M i x ) .
В частности, многопользовательский тестовый пакет представляет
собой набор тестов для системы U N I X , который оценивает все аспекты
производительности системы, включая основные аппаратные средства,
используемые в многопрограммной среде. Этот тестовый пакет модели¬
рует многопользовательскую работу в среде разделения времени путем ге¬
нерации возрастающих уровней нагрузки на центральный процессор, а
также подсистему ввода/вывода и переключение контекста, и измеряет
производительность системы при работе с множеством процессов.
П р и каждом запуске генератора тестовых пакетов могут выполняться
любые отдельные или все доступные тесты в любом порядке и при любом
количестве проходов, позволяя тем самым создавать для системы практи¬
чески любую необходимую рабочую нагрузку. Все это дает возможность
тестовому пакету моделировать любой тип смеси для лучшего представле­
н и я реальной окружающей обстановки и конфигурирования системы.
Если некоторые требуемые тесты отсутствуют в составе генератора
тестовых пакетов, они могут быть легко туда добавлены. Заказная смесь
может быть связана со специфическим приложением, которое создает
для системы необычную нагрузку.
Результатом тестирования является кривая пропускной способнос­
ти, показывающая возможности системы по обработке нагрузочной сме­
си в зависимости от моделируемой нагрузки. Это позволяет с достаточной
достоверностью дать заключение о возможностях работы системы при
д а н н о й нагрузке или при ее изменении.
Для о ц е н к и и сравнения систем в AIM используются следующие
критерии:
• пиковая производительность (рейтинг производительности по A I M ) ;
• максимальная пользовательская нагрузка;
• индекс производительности утилит;
• пропускная способность системы.

266
Лекция 18 Методы и средства оценки производительности микропроцессоров

Рейтинг производительности по A I M определяет н а и в ы с ш и й уро­


вень производительности системы, который достигается при оптималь¬
н о м использовании центрального процессора, операций с плавающей
точкой и к э ш и р о в а н и я диска. О н устанавливается в относительных еди¬
ницах производительности некоторой эталонной м а ш и н ы , в качестве ко¬
торой используется V A X 11/780.
Максимальная пользовательская нагрузка определяет точку, н а ч и ­
ная с которой производительность системы падает н и ж е приемлемого для
i-го пользователя уровня.
Индекс производительности утилит определяет количество пользо­
вательских нагрузок, которые данная система выполняет в течение одно¬
го часа. Используемый в д а н н о м случае набор тестов многократно выпол¬
няет выбранные утилиты U N I X в качестве основных и фоновых заданий
при умеренных пользовательских нагрузках. Этот параметр показывает
возможности системы по в ы п о л н е н и ю универсальных утилит U N I X .
Максимальная пропускная способность определяет пиковую п р о и з ­
водительность мультипрограммной системы, измеряемую количеством
выполненных заданий в минуту.
Тестовые пакеты AIM проверяют производительность системы и
всех ее основных компонентов в многозадачной среде, включая Ц П ,
F P U , память, диски, системные и библиотечные вызовы. Это сближает их
с тестами SPEChpc.

Краткие итоги. Производительность микропроцессоров и м и к р о п р о ­


цессорных систем является одним из важнейших показателей, влияющих
на их выбор для различных п р и м е н е н и й . Сравнение производительности
микропроцессоров по их тактовой частоте и о ц е н к и производительности
в миллионах операций в секунду являются несостоятельными из-за суще­
ственных различий в архитектуре М П . В настоящее время для этих целей
используются пакеты тестовых программ (бенчмарки), специально разра­
батываемые и постоянно обновляемые авторитетными международными
организациями, такими как Консорциум по оценке производительности
систем (SPEC) или Berkeley Design Technology ( B D T I ) .

267
Курс Архитектура микропроцессоров

Список сокращений

CISC-микропроцессоры (Completed вычисления с п о л н ы м набором


Instruction Set Computing) команд.
D M A (Direct Memory Access) п р я м о й доступ к памяти ( П Д П ) .
D S P (Digital Signal Processor) процессор ц и ф р о в о й обработки
сигналов.
E P I C (Explicitly Parallel Instruction вычисления с я в н ы м
Computing) параллелизмом в командах.
G D T (Global Descriptor Table) глобальная таблица дескрипторов.
IP (Instruction Pointer) указатель команд.
L D T (Local Descriptor Table) локальная таблица дескрипторов.
механизм замещения наиболее
L R U (Least Recently Used)
долго неиспользуемой строки.
операция умножения
M A C (Multiply-Accumulate)
с накоплением суммы.
M F L O P S (Millions O f Floating¬
Point Operations Per Second) м и л л и о н ы операций с плавающей

M I P S (Millions O f Instructions точкой в секунду.


Per Second) м и л л и о н ы операций в секунду.
M M U (Memory Management Unit) блок управления памятью.
N U M A (Non-Uniform Memory мультипроцессорная система,
Access) построенная по технологии
неоднородного доступа к памяти.
P C (Program Counter) счетчик команд, программный
счетчик.
R I S C - м и к р о п р о ц е с с о р ы (Reduced вычисления с с о к р а щ е н н ы м
Instruction Set Computing)
набором команд.
S I M D (Single Instruction Stream /
одиночный поток команд
Multiple Data Stream)
и множественный поток данных.
SISD (Single Instruction Stream /
одиночный поток команд /
Single Data Stream)
одиночный поток данных.
S M P (symmetric multiprocessing)
система с симметричной
SP (Stack Pointer) мультипроцессорной обработкой.
T R (Task Register) указатель стека.
TSS (Task State Segment) регистр задачи.
V L I W (Very Large Instruction Word) сегмент состояния задачи.
очень д л и н н о е командное слово.

268
Список сокращений

АЗУ ассоциативное запоминающее устройство.


АЛУ арифметико-логическое устройство.
АЦП аналого-цифровой преобразователь.
БИС большая интегральная схема.
БКВВ битовая карта ввода/вывода.
БПФ быстрое преобразование Фурье.
ВСЭ внутрисхемный эмулятор.
ВУ внешнее устройство.
ДПФ дискретное преобразование Фурье.
КП кэш-память.
КПП контроллер приоритетных прерываний.
КПДП контроллер прямого доступа к памяти.
ЛАП логическое адресное пространство.
МП микропроцессор.
МК микроконтроллер.
МПС микропроцессорная система.
МПУ микропроцессорное устройство.
ОЗУ оперативное запоминающее устройство.
ОП оперативная память.
ПДП прямой доступ к памяти.
ПО программное обеспечение.
РМВ реальный масштаб времени.
РОН регистр общего назначения.
ОС операционная система.
ФАП физическое адресное пространство.
ЦОС цифровая обработка сигнала.
ЦАП цифро-аналоговый преобразователь.
ЦСП ц и ф р о в о й сигнальный процессор.
ШИМ широтно-импульсная модуляция.

269
Курс Архитектура микропроцессоров

Литература

1. Александров Е.К., Грушвицкий Р.И., Куприянов М . С . и др. М и к р о ­


процессорные системы: Уч. пособие для вузов. — С П б . : Политех¬
ника, 2002.
2. Б о б о р ы к и н А.В., Л и п о в е ц к и й Г.П., Л и т в и н с к и й Г.В. и др. Однокри¬
стальные м и к р о Э В М . — М.: М И К А П ( Б И Н О М ) , 1994. — 400 с.
3. Бродин В.Б., Шагурин И . И . Микропроцессор i486. Архитектура,
программирование. — М.: « Д И А Л О Г - М И Ф И » , 1993. — 240 с.
4. Б р э й Б. М и к р о п р о ц е с с о р ы Intel 8086/8088, 80186/80188, 80286,
80386, 80486, Pentium, Pentium Pro Processor, Pentium II, Pentium III,
Pentium 4: архитектура, программирование и интерфейсы. — 6-е
изд., С П б . : Б Х В - С - П б , 2005. — 1328 с.
5. Грушвицкий Р.И., Александров Е.К., Пузанков Д.В. и др. Микро¬
процессорные системы: Учеб. пособие для вузов / П о д ред. Д.В. Пу-
занкова. — С П б . : Политехника, 2002. — 935 с.
6. Гук М., Ю р о в В. Процессоры Pentium 4, Athlon и Duron. — С П б :
Питер, 2001. — 512 с.
7. Гуров В.В., Рыбаков А.А. Разработка микропроцессорных систем на
основе однокристальных микроконтроллеров: Лабораторный прак¬
тикум. — М.: М И Ф И , 2000. — 84 с.
8. Гуров В.В., Чуканов В.О. Основы теории и организации Э В М . —
М.: И Н Т У И Т ; Б И Н О М . Лаборатория з н а н и й , 2006. — 272 с.
9. Ершова Н . Ю . , Соловьев А.В. Организация вычислительных систем
[Электронный ресурс] — Режим доступа: http://www.intuit.ru/depart-
ment/hardware/csorg/.
10. Корнеев В.В., Киселев А.В. Современные микропроцессоры. —
СПб.: БХВ-Петербург, 2003. — 448 с.
11. М я с н и к о в А.В., Игнатьев М . Б . , К о ч к и н А.А. и др. Микропроцессо­
ры: системы программирования и отладки / П о д ред. А.В. М я с н и к о -
ва, М . Б . Игнатьева. — М.: Энергоатомиздат, 1985.
12. Нерода В.Я., Торбинский В.Э., Ш л ы к о в Е.Л. Однокристальные м и ­
к р о Э В М M C S - 5 1 . — М.: Диджитал К о м п о н е н т с , 1995.
13. Микропроцессоры. В 3-х кн.: Учебн. для втузов/ П о д ред.
Л.Н.Преснухина. — М.: Высш. ш к . , 1986.
14. Н о в и к о в Ю.В., Скоробогатов П . К . Основы микропроцессорной
техники. — М.: И Н Т У И Т ; Б И Н О М . Лаборатория з н а н и й , 2009 г. —
357 с.
15. Н о в и к о в Ю.В., К а л а ш н и к о в О.А., Гуляев С.Э. Разработка устройств
сопряжения для персонального компьютера типа I B M P C : Практ.
пособие / П о д общ. ред. Ю.В. Новикова. — М.: Э К О М , 1997. —
224 с.

270
Литература

16. Орловский Г.В. Введение в архитектуру М П 80386. — С П б . : И Н -


Ф О К О М , 1992.
17. Шагурин И . И . , Бердышев Е.М. Процессоры семейства Intel P6:
Pentium II, Pentium III, Celeron и др.: архитектура, программирова¬
ние, интерфейс. — М.: Горячая л и н и я — Телеком, 2000.
18. A M D Corporation [Электронный ресурс] — Режим доступа:
http://www.amd.com.
19. Analog Devices Inc. [Электронный ресурс] — Режим доступа:
http://www.analog.com.
20. Atmel Corporation [Электронный ресурс] — Режим доступа:
http://www.atmel.com.
21. Berkeley Design Technology Inc. [Электронный ресурс] — Режим до¬
ступа: http://www.bdti.com/.
22. Intel Corporation [Электронный ресурс] — Режим доступа:
http://www.intel.com.
23. Texas Instruments Inc. [Электронный ресурс] — Режим доступа:
http://www.ti.com.
24. The Standard Performance Evaluation Corporation [Электронный р е ­
сурс] — Режим доступа: http://www.spec.org.

271
Учебное издание

Гуров В а л е р и й В а л е н т и н о в и ч

АРХИТЕКТУРА МИКРОПРОЦЕССОРОВ
Учебное пособие

Литературный редактор С. Перепелкина


Корректор А . Ангелина
Компьютерная верстка Н. Овчинникова

1
Подписано в печать 25.12.2009. Формат 60x90 / . 1 6

Гарнитура Таймс. Бумага офсетная. Печать офсетная.


Усл. печ. л. 17. Тираж 2000 экз. Заказ №

ООО «ИНТУИТ.ру»
Интернет-Университет Информационных Технологий, www.intuit.ru
Москва, Электрический пер., 8, стр.3.
E-mail: admin@intuit.ru, http://www.intuit.ru

ООО «БИНОМ. Лаборатория знаний»


Москва, проезд Аэропорта, д. 3
Телефон: (499) 157-1902, (499) 157-5272
E-mail: binom@lbz.ru, http://www.lbz.ru

Вам также может понравиться