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

Организация вычислительных систем на базе микропроцессоров с архитектурой x86. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
Министерство образования и науки Российской Федерации
Рязанский государственный радиотехнический университет
С.В. СКВОРЦОВ, В.И. ХРЮКИН
ОРГАНИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
НА БАЗЕ МИКРОПРОЦЕССОРОВ С АРХИТЕКТУРОЙ х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 байт в памяти. На формат команд непосредственно влияет выбор режима адре­сации. МП имеет организацию команд типа «регистр-память». С точки зрения адресации это означает, что команды адресуют не более двух опе­рандов, причем одновременное обращение к двум ячейкам памяти не до­пускается.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]