Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Организация вычислительных систем на базе микропроцессоров с архитектурой x86. Учебное пособие
.pdf
Министерство образования и науки Российской Федерации
Рязанский государственный радиотехнический университет
С.В. СКВОРЦОВ, В.И. ХРЮКИН
ОРГАНИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
НА БАЗЕ МИКРОПРОЦЕССОРОВ С АРХИТЕКТУРОЙ х86
Учебное пособие
Рязань 2017

УДК 681.51.01
Рязанский государственный
радиотехнический университет, 2017
Организация вычислительных систем на базе микропроцессоров с
архитектурой x86: учеб. пособие / С.В. Скворцов, В.И. Хрюкин; Рязан. гос.
радиотехн. ун-т. Рязань, 2017. 64 с.
Рассмотрены вопросы организации вычислительных систем на основе микропроцессоров с архитектурой x86. Приведены структурные схемы
и программные модели микропроцессоров в реальном и защищенном ре-
жимах работы. Показаны эволюция и особенности архитектурных решений на примере микропроцессоров семейства Intel x86.
Предназначено для магистрантов направления 11.04.03, обучающих-
ся по образовательной программе «Конструирование и технология элек-
тронно-вычислительных средств», и могут быть полезны студентам других
направлений, изучающим микропроцессорную технику.
Табл. 8. Ил. 65. Библиогр.: 5 назв.
Микропроцессорная система, программная модель, регистр, опера-
тивная память, формат команды, режимы адресации, прерывания и исключения, селекторы и дескрипторы, организация памяти, реальный и защищенный режим, мультизадачность, переключение задач
Печатается по решению редакционно-издательского совета Рязанского государственного радиотехнического университета.
Рецензент: кафедра САПР вычислительных средств Рязанского го-
сударственного радиотехнического университета (зав. кафедрой проф.
В.П. Корячко)
С к в о р ц о в Сергей Владимирович
Х р ю к и н Владимир Иванович
Организация вычислительных систем
на базе микропроцессоров с архитектурой x86
Редактор Р.К. Мангутова
Корректор С.В. Макушина
Подписано в печать 20.10.17. Формат бумаги 60х84 1/16.
Бумага писчая. Печать трафаретная. Усл. печ. л. 4,0.
Тираж 25 экз. Заказ
Рязанский государственный радиотехнический университет.
390005, Рязань, ул. Гагарина, 59/1.
Редакционно-издательский центр РГРТУ.

ВВЕДЕНИЕ
При создании вычислительных средств различного назначения в ка-
честве их основы широко используются два класса изделий цифровой техники: устройства с жесткой структурой, выполненные на базе цифровых
логических схем; устройства с программным управлением (ЭВМ).
В устройствах с жесткой структурой логические элементы соединяются в соответствии с реализуемыми функциями. Достоинством такого
подхода является простота реализации, недостатком то, что любое изменение функции требует изменения схемы, проверочных тестов, а иногда и
конструкции. Системы на основе ЭВМ могут легко перенастраиваться на
реализацию новых функций. Для этого достаточно изменить программу.
Недостатком здесь является то, что быстродействие таких систем ниже по
сравнению с системами с жесткой структурой, реализующими такие же
функции.
Развитие полупроводниковых технологий привело к созданию БИС,
которые сблизили два указанных класса изделий и объединили их достоинства. В качестве устройств с жесткой структурой сейчас используются
программируемые логические интегральные схемы. Работы в направлении
создания БИС с программным управлением привели к созданию нового
класса средств вычислительной техники - микропроцессоров (МП).
МП – это программно-управляемое устройство, выполненное в виде
одной или нескольких БИС и предназначенное для обработки данных и
управления процессом обработки. Первый промышленный микропроцессор появился в 1971 году. Он был создан фирмой Intel. Это четырехразрядный МП I4004, который использовался в калькуляторах.
Широкое использование микропроцессоров началось только в 1974
году с появлением восьмиразрядного МП I8080. Этот МП сыграл значительную роль в развитии микропроцессорной техники. Он во многом определил основы архитектуры для всех последующих поколений микропроцессоров. Такой МП имеет раздельные 8-разрядную шину данных и 16разрядную шину адреса, возможность подключения памяти ёмкостью до
64 килобайт (КБ) и до 256 внешних устройств.
Очередным крупным шагом в развитии микропроцессорной техники
стало появление в 1978 г. 16-разрядного универсального микропроцессора
I8086. Этот микропроцессор заложил основы архитектуры x86. Именно
МП с такой архитектурой фирм Intel, AMD, VIA, Transmeta, IDT, Cyrix
наиболее часто используются при построении персональных ЭВМ, а также
микропроцессорных систем (МПС).
В связи с этим является актуальным рассмотрение вопросов организации МП с архитектурой х86 (16-разрядных x86/16, 32-разрядных x86/32,
64-разрядных x86/64) и проектирования микропроцессорных систем
(МПС) обработки данных на основе таких МП.

4
1. ОРГАНИЗАЦИЯ МПС НА ОСНОВЕ МИКРОПРОЦЕССОРОВ
С АРХИТЕКТУРОЙ х86/16. РЕАЛЬНЫЙ РЕЖИМ
1.1. Структурная модель МП с архитектурой х86/16
при работе в реальном режиме
Реальный режим (режим реальных адресов) МП обеспечивает одно-
пользовательскую, однозадачную работу МПС. Наиболее важной особенностью работы МП в этом режиме является конвейерный принцип выполнения команд с их предварительной выборкой. Это обеспечивает максимальную пропускную способность системы шины.
Рассмотрим, как реализуется этот принцип. В общем виде процесс
выполнения команды программы содержит следующие этапы: 1) выборка
кода команды из памяти; 2) декодирование команды; 3) чтение операндов
из памяти, если это необходимо; 4) выполнение операции в арифметикологическом устройстве (АЛУ); 5) запись результатов, если этого требует
команда.
Обычно в МП эти этапы выполняются последовательно, что приводит к малой загрузке по времени магистралей МПС. Здесь же структура
МП ориентирована на параллельную реализацию этапов выборки и выполнения команд. Поэтому в состав МП входят два относительных устройства, работающих асинхронно. Это операционное устройство (ОУ) и устройство сопряжения с системной шиной или шинный интерфейс (ШИ).
Упрощенная структурная схема МП в реальном режиме работы
представлена на рис. 1.1. Здесь ШД – шина (магистраль) данных; ША –
шина (магистраль) адресов; ШУ – шина (магистраль) управления.
В состав ОУ входят: шестнадцатиразрядное АЛУ; общие регистры
или регистры общего назначения (РОН) AX, BX, CX, DX, SI, DI, SP, BP и
буферные регистры; регистр флагов или признаков F; схема управления
МП.
Все регистры и внутренние магистрали ОУ 16-разрядные. Операци-
онное устройство не имеет связи с внешними шинами МП. На АЛУ поступают коды команд из очереди команд, расположенной в шинном интерфейсе. Получение операндов также производится через шинный интерфейс (регистр обмена).
МП ориентирован на обработку 16-разрядных слов, поэтому и адреса, которые выдает ОУ, также являются 16-разрядными. Шинный интерфейс
преобразует их в 20-разрядные, что позволяет обращаться к 1 МБ оперативной памяти. ШИ осуществляет: 1) выборку команд из памяти; 2) обращение
к памяти или внешнему устройству для считывания операндов и записи
результатов по запросам ОУ.
В состав ШИ входят: сегментные регистры CS, DS, ES, SS, необходимые для обращения к памяти; сумматор адреса, используемый для преобразования 16-разрядных логических адресов в 20-разрядные физические или

5
ОУ
Сумматор адреса
CS
DS
ES
SS
IP
Рг обмена
15 0
Схема
управления
системной
шиной
AH AL
BH BL
CH CL
DH DL
SP
BP
SI
DI
15 8 7 0
AX
BX
CX
DX
1 2 3 4 5
6
Схема
управ-
ления
МП
Буферные Рг
АЛУ
F
16
8
16
20
ШИ
ШД15-0
ША19-0
ШУ
очередь команд
Общие регистры
Внутренняя шина данных
исполнительные адреса; указатель команд IP, аналогичный по назначению
программному счетчику (счетчику команд); регистр обмена используется
для передачи информации между шинным интерфейсом и ОУ; очередь команд, состоящих из шести 8-битных регистров, предназначенная для хранения байтов кода команд.
Функционирование шинного интерфейса производится следующим
образом. Когда ОУ занято выполнением команды, ШИ самостоятельно производит опережающую выборку очередных байтов команд из памяти. Они
поступают во внутреннюю регистровую память и называются очередью команд. Эта очередь может содержать до 6 байт потока команд. Это позволяет
выдавать на ОУ сохраненные команды по мере их необходимости без загрузки внешних магистралей МП системы. Когда в очереди команд оказывается два свободных байта, ШИ производит выборку из памяти следующего командного слова.
Очевидно, что очередь обеспечивает положительный эффект только
при естественном порядке передачи команд. Если ОУ выполняет команду
передачи управления в другую точку программы, то ШИ выполняет следующие действия: 1) очищает очередь команд; 2) получает код команды из
нового адреса; 3) передает этот код в ОУ и начинает заполнять очередь команд заново.
Рис. 1.1

6
В том случае когда ОУ требует обращения к памяти или внешнему
устройству, ШИ приостанавливает выборку команд и запись их в очередь
для организации необходимого обмена информацией.
1.2. Организация регистров в реальном режиме
Все программно-доступные регистры можно разделить на 4 группы.
Форматы регистров представлены на рис. 1.2.
Рис. 1.2
В программной модели МП имеется четырнадцать 16-разрядных ре-
гистров.
1. Группа РОН используется обычно для хранения операндов при
выполнении арифметических и логических операций над байтами или словами. В этой группе допускается раздельная адресация старших и младших
байтов. Некоторые команды предписывают регистрам данной группы специальное назначение: АХ – 16-разрядный аккумулятор, в котором АL восьмиразрядный аккумулятор; ВХ – базовый регистр в командах с соответствующей адресацией; СХ - счетчик в циклах и командах сдвигов; DХ расширение аккумулятора до 32-х разрядов. Кроме того, DХ используется
при косвенной адресации УВВ.

7
OF
DF
IF
TF
SF
ZF AF PF CF
Указательные и индексные регистры предназначены для хранения
индексной информации. Указательные регистры SP и ВР хранят 16разрядные значения смещений адреса в пределах сегмента памяти, выделенного под стек. При этом SP указывает на вершину стека, а ВР – на основание стека.
2. Индексные регистры SP, DI содержат смещение адреса в пределах
сегментов памяти, выделенных под данные. Используются они в качестве
индексных регистров в соответствующих способах адресации. Кроме того,
в командах работы с цепочками байт или слов SI указывает на исходную
цепочку, а DI – на результирующую цепочку. Важной особенностью регистров этой группы является возможность их использования в качестве 16разрядных РОН в арифметико-логических операциях, т.е. как и регистров
1-й группы.
3. Наличие четырех сегментных регистров объясняется способом
адресации памяти. Хотя в реальном режиме МП вырабатывает 20-разрядные исполнительные адреса, оперирует он с 16-разрядными логическими
адресами, состоит из базового адреса сегмента (базы) и внутрисегментного
адреса (смещения). Сумматор адреса преобразует эти составляющие логические адреса в 20-разрядный физический адрес. При выполнении программы МП могут одновременно обращаться к 4 сегментам памяти по 64
КБ каждый.
Начальные (базовые) адреса сегментов содержатся в сегментных ре-
гистрах: CS – регистр сегмента кода, содержащий базовый адрес сегмента
кода, откуда выбираются команды программы; DS - регистр сегмента данных, содержащий базовый адрес сегмента данных, в котором размещаются
переменные и массивы программы; SS - регистр сегмента стека, содержащий базовый адрес стека, в котором реализуются все стековые операции;
ES - регистр дополнительного сегмента, который содержит базовый адрес
сегмента, обычно использующегося для хранения промежуточных данных.
4. Последнюю группу составляют два 16-битных регистра: IP - указатель команд, который является аналогом стандартного программного
счетчика РС; F- регистр флагов или признаков.
Шинный интерфейс осуществляет модификацию IP таким образом,
что он указан на следующую по порядку команду. Изменение содержимого IP пользователем может быть выполнено только с помощью команд передачи управления.
Регистр признаков F имеет формат, представленный на рис. 1.3.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Флаги управления Флаги состояния
Рис. 1.3

8
Флаги состояния характеризуют признаки результата.
CF – флаг переноса. Этот бит устанавливается в 1, если арифметиче-
ская операция вызвала перенос (заем) из старшего бита результата. Используется при сложении и вычитании многобайтных чисел, а также в командах сдвига.
PF – флаг паритета (четность). Устанавливается в 1, если младшие
восемь разрядов результата содержат четное число единичных бит. Используется для контроля ошибок передачи данных.
AF – флаг вспомогательного переноса. Устанавливается в 1, если
арифметическая операция вызвала перенос (заем) из младшей тетрады в
старшую, исполняется в командах десятичной арифметики при работе с
упакованными числами.
ZF – флаг нуля. При установке в 1 характеризует признак нулевого
результата.
SF – флаг знак результата. Устанавливается в состояние, в котором
находится старший бит результата.
OF – флаг переполнения. Устанавливается в 1, если результат пре-
вышает диапазон представимых чисел в разрядной сетке АЛУ.
Флаги управления воздействуют на те или иные аспекты работы МП.
DF – флаг направления. Управляет направлением обработки данных
в операциях с цепочками байт или слов. При DF=1 используется автодекрементный режим индексных регистров SI, DI, а при DF=0 - автоинкрементный режим.
IF – флаг прерывания. При IF=1 разрешается обработка внешних
маскируемых прерываний. При IF=0 – запрет.
TF - покомандный режим работы МП. Используется при отладке
программ. Если TF=1, то МП выполняет команды пошагово.
1.3. Организация памяти и ввода/вывода в МПС на основе
микропроцессоров с архитектурой х86
В реальном режиме МП обеспечивает адресацию памяти емкостью 1
мегабайт (МБ). Это пространство памяти представляет собой одномерный
массив байт, каждый из которых имеет 20-разрядный адрес. Байт является
минимально адресуемой единицей памяти. Для записи адресов используется 16-ричная система счисления. Адреса ячеек имеют значения 00000h,
00001h, …, FFFFEh, FFFFFh.
Любые два смежных байта образуют 16-разрядное слово, где младший байт имеет меньший адрес, а старший – больший. Обращение к слову
производится путем указания адреса его младшего байта.
Каждая программа делит пространство памяти на сегменты по 64 КБ.
Сегмент состоит из смежных ячеек памяти и является независимой и отдельно адресуемой единицей памяти. Сегменты могут быть смежными (со-

9
Тип обращения к памяти
База по умолчанию
Вариант базы
Смещение
Выбор команды
CS
-
IP
Стековая операция
SS
-
SP
Выборка операнда
DS
CS, ES, SS
EA
Цепочка – источник
DS
CS, ES, SS
SI
Цепочка - приёмник
ES
-
DI
Базовый адрес
(CS, DS, ES, SS)
0000
0000
Смещение
(IP, SP, DI, SI, EA)
Сумматор адреса
Логический
адрес
19 4 3 0
19 16 15 0
19 0
ШИ
ША 19-0
Физический
адрес
седними), непересекающимися, пересекающимися частично или полностью.
Начальные адреса сегментов хранятся в соответствующих сегментных регистрах. Текущие сегменты обеспечивают для программы следующее рабочее пространство: 64 КБ для объектного кода; 64 КБ для стека;
128 КБ для данных. Адрес каждой ячейки (байта) памяти в реальном режиме является 20-разрядным, а МП работает с 16-разрядной информацией.
Рассмотрим, каким образом осуществляется формирование адресов
памяти. Принято считать, что каждая ячейка памяти имеет два адреса: физический и логический. Физический адрес – это 20-битное значение, которое выдается на ША и однозначно указывает положение каждого байта в
пространстве памяти 1МБ. Программы оперируют логическими адресами,
что позволяет записать их без предварительного размещения в памяти, т.е.
использовать относительные адреса. Логический адрес состоит из двух 16битных значений: базового адреса сегмента (базы); внутрисегментного адреса (смещения). Он задается в виде база: смещение.
База указывает адрес первого байта сегмента, смещение определяет
расстояние в байтах от начала сегмента до соответствующей ячейки. Значения базы и смещения задаются 16-ричными числами из диапазона от
0000h до FFFFh, например 4AC8h:8D6Eh.
Когда ШИ обращается к памяти, он формирует из логического адреса физический. Для этого база сегмента и смещение суммируются в соответствии со схемой, представленной на рис. 1.4.
Источники логического адреса зависят от типа обращения к памяти и
приведены в табл. 1.1.
Рис. 1.4
Таблица 1.1

10
МП с архитек-
турой x86
(реальный ре-
жим)
ША
ШД
ШУ
Память
1МБ
Порты
ввода/вывода
16
20
16
16
16
20
Здесь ЕА – эффективный адрес, т.е. смещение операнда, которое вычисляет ОУ в соответствии с заданным в команде режимом адресации.
Организация ввода/вывода. Для связи с внешними устройствами МП
с архитектурой х86 в реальном режиме имеет дополнительное пространство ввода/вывода, изолированное от пространства памяти. Структурная
схема МПС, отражающая организацию памяти и ввода/вывода, показана на
рис. 1.5.
Рис. 1.5
Адресное пространство ввода/вывода МП содержит до 64К 8-битных
портов или до 32К 16-битных портов, где К=1024.
Команды ввода IN и вывода ОUТ передают данные между аккумуляторами AL (байты) или АХ (слова) и адресуемыми портами. Пространство
ввода/вывода не сегментируется.
Для обращения к порту ввода/вывода ШИ выдает 16-битный адрес
порта на младшие разряды шины адреса ША 15-0. Возможно использование 8-битных адресов устройств ввода/вывода (УВВ). Тогда 8-битный адрес порта дублируется на линиях ША 7-0, ША 15-8.
Доступ к портам пространства ввода/вывода может быть организован с использованием 2-х методов адресации: прямого и непрямого (косвенного). В случае прямой адресации номер порта задается 8-битовым непосредственным операндом в команде. В этом случае обеспечивается обращение к первым 256 портам с номерами от 00h до FFh.
Непрямая адресация портов подобна косвенной регистровой адресации данных в памяти. Номер требуемого порта берется из регистра DX и
может указать любую ячейку пространства ввода/вывода объемом 64 КБ.
1.4. Форматы команд микропроцессора
Команды при реальном режиме работы МП занимают от 1 до 6 байт
в памяти. На формат команд непосредственно влияет выбор режима адресации. МП имеет организацию команд типа «регистр-память». С точки
зрения адресации это означает, что команды адресуют не более двух операндов, причем одновременное обращение к двум ячейкам памяти не допускается.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
