Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Организация микропроцессоров и микропроцессорных систем. Учебное пособие
.pdf
71
Поле База содержит 32-разрядный линейный базовый адрес сегмента. Поле Размер определяет размер сегмента (20 разрядов). Бит G – дробность. Он определяет размерность единиц, в которых интерпретируется
поле Размер. Если G=0, то размерность определяется в байтах и размер
сегмента составляет до 1 МБ, если G=1, то размерность в страницах объемом 4 КБ. Тогда размер сегмента достигает 4 ГБ. Байт D – разрядность, по
умолчанию определяет разрядность формируемого адреса и выбираемого
операнда. При D=0 используются 16-разрядные адреса, а при D=1 – 32разрядные. Поле прав доступа определяется так же, как в защищенном 16разрядном режиме.
Замечание. Системные дескрипторы, предназначенные для хранения
LDT и TSS, имеют формат, аналогичный представленному на рис. 4.6.
Только в них отсутствует бит D, а у дескриптора TSS в поле Тип байта
прав доступа указывается режим: 16- или 32-разрядный.
Регистры математического сопроцессора остались теми же, что и в
реальном режиме МП х86/16. Но формат указателя исключительных ситуаций ЕР изменился и в нем находятся не физические, а логические адреса команды и операнда – селектор:смещение.
В системных регистрах GDTR, IDTR, LDTR, TR изменилась разрядность поля База. Оно стало 32-разрядным. Кроме того, в этом поле регистров GDTR, IDTR задаются не физические, а линейные адреса. В защищенном 32-разрядном режиме нет регистра MSW. Вместо него имеются три
регистра управления: CR0, CR2, CR3.
Регистр управления CR0 содержит поля регистра MSW и биты, определяющие режим работы микропроцессора: бит PG – включение страничной адресации памяти (при PG =1 страничный механизм включён); биты CD, NW – управление режимами работы внутренней кэш-памяти
(CD = 1 – запрещение заполнения кэш-памяти; NW = 1 – запрет сквозной
записи). Регистр CR2 содержит линейный адрес, который вызвал страничную ошибку, например отсутствие страницы в оперативной памяти или
недостаточный уровень привилегий при обращении к странице. В регистре
CR3 находится базовый адрес каталога таблицы страниц (старшие 20 разрядов), а также биты PCD и PWT, управляющие работой кэш-памяти при
страничной адресации (при PCD = 1 загрузка содержимого страницы в
кэш-память запрещена; при PWT = 1 реализуется режим сквозной записи, а
при PWT = 0 – обратной записи).
Регистры отладки (DR0...DR3, DR6, DR7) и тестирования (TR1...
TR12) имеют следующее назначение: 32-разрядные регистры DR0...DR3
содержат линейные адреса четырех контрольных точек останова при отладке; регистр состояния DR6 показывает текущее состояние МП при останове в этих точках; регистр управления DR7 задает условия останова в
контрольных точках; TR1...TR12 используются при тестировании кэш-

72
31 22
21 12
11 0
Каталог
Таблица
Относительный адрес
Линейный адрес
Каталог n
Таблица m
Относительный адрес r
Начало
каталога
Раздел 1023
Раздел n
Каталог
разделов
Раздел 0
…
…
Физический базовый адрес каталога
Рг CR0
Страница 1023
Страница m
Страница 0
…
…
Таблица страниц
для раздела n
Байт 4095
Байт r
Байт 0
…
…
Физический базовый
адрес таблицы
Физический базовый
адрес страницы m
ОП
4 КБ
памяти и буфера ассоциативной трансляции адресов страниц TLB (конкретное назначение каждого из этих регистров зависит от модели МП).
5.3. Страничная организация памяти
Страничная организация памяти применяется только в защищенном
режиме, если в регистре управления CR3 бит PG = 1. Такая организация
позволяет программисту использовать все виртуальное пространство памяти, определяемое архитектурой МП, которое гораздо больше, чем основная физическая память.
При такой организации сегмент памяти разбивается на разделы, а
каждый раздел - на страницы размером 4 КБ. Все разделы сегмента объединяются в каталог, а все страницы сегмента – в таблицу страниц. Для обращения к такому пространству памяти используются линейные адреса.
Такой адрес при страничной организации памяти рассматривается как совокупность трех полей, показанная на рис. 5.7.
Рис. 5.7
Устройство управления памятью транслирует виртуальный линейный адрес в физический по схеме, приведенной на рис. 5.8.
Содержимым каждой строки каталога является указатель входа в
раздел, а содержимым строки таблицы страниц является указатель входа в
Рис. 5.8

73
31 12
11 7
6
5
4
3
2 1 0
Физический базовый адрес
таблицы страниц
Резерв ОС
D
А
PCD
PWT
U/S
R/W
P
страницу. По структуре они аналогичны. Указатель включает в себя физический базовый адрес соответствующей таблицы страниц или страницы
(старшие 20 байт) и атрибуты этой страницы. Формат строки каталога
(таблицы) показан на рис 5.9.
Рис. 5.9
Бит D – модификация. Для элементов каталога разделов значение
бита D является неопределенным. Для таблицы страниц устанавливается
микропроцессором в 1 при записи на данную страницу. Бит А – доступ.
Является признаком доступа в раздел. Используется вместе с битом D для
определения разделов или страниц, содержимое которых подлежит замене
из внешней памяти. Биты PWT и PCD используются для управления работой кэш-памяти при страничной адресации. Бит PCD – запрещение кэширования страницы. При PCD = 1 кэширование запрещено. Бит PWT – бит
обратной записи страниц. Определяет метод обновления внешней кэшпамяти (кэш второго уровня). При PWT = 1 обновление проводится методом сквозной записи, при PWT = 0 – методом обратной записи. Биты U/S
(пользователь/супервизор) и R/W (чтение/запись) используются в механизме защиты страниц. Бит P – присутствие. Разрешает использование
данной строки для трансляции адреса.
Буфер ассоциативной трансляции TLB. Страничная организация памяти требует дополнительных затрат времени для преобразования линейного адреса в физический. Эти затраты бывают весьма значительны, если в
каждом цикле производить обращение к ОП для выбора указателя входа в
раздел или страницу. Существенное сокращение времени преобразования
адресов достигается за счёт специализированной внутренней кэш-памяти.
Она называется буфером ассоциации трансляции TLB.
Основой TLB является память с ассоциативной выборкой, которая
содержит 20-разрядные базовые адреса 32-х страниц (20 старших разрядов
физического адреса). Каждый из базовых адресов имеет свой признак (тэг).
В качестве тэга используются старшие 17 разрядов линейного адреса (31 –
15 биты). Буфер TLB состоит из двух модулей памяти (основные и дополнительные) и логики обслуживания. Схема представлена на рис. 5.10.
Основной модуль памяти содержит восемь блоков, каждый из которых обеспечивает входы для 4-х страниц. Вход в определённую страницу
реализуется с помощью размещенной в модуле строки битов. Она содержит информацию о выбираемой странице (базовый адрес, атрибуты) и информацию, необходимую для её выбора (тэг, биты доступа к странице).
Таким образом, основной модуль содержит 32 строки, позволяющие непосредственно, то есть без обращения к каталогу и таблице страниц (которая

74
находится в ОП), определить базовый физический адрес для одной из 32-х
страниц, параметры которой загружены в TLB.
Рис. 5.10
Работа TLB происходит следующим образом. После формирования
линейного адреса три младших разряда поля Таблицы (биты 14 - 12 линейного адреса) определяют номер одного из восьми блоков TLB. Старшие 17
разрядов линейного адреса (биты 31-15 линейного адреса) сравниваются с
17 битами тэгов, содержащихся в четырёх строках выбранного блока.
Если для какой-либо строки тэг и старшие разряды линейного адреса
совпадают, то указанный в этой строке базовый адрес выдается на адресной линии А31 – А12. Так обеспечивается выборка нужной страницы. В
этом случае реализуется кэш-попадание и не требуется обращение к ОП
для выбора указателей входа в раздел и страницу.
Если базовый адрес нужной страницы отсутствует в TLB, то такой
случай является кэш-промахом. При этом МП выполняет описанную выше
процедуру формирования физического адреса. Полученный при этом 20разрядный базовый адрес вместе с соответствующими семнадцатью разрядами линейного адреса (тэг) заносятся в строку одного из блоков TLB. Номер его задается битами с 14 по 12 линейного адреса (младшие разряды
поля Таблица). Выбор одной из четырех строк адресованного блока, в которую заносится новое содержимое, определяется принятым механизмом
замещения.
Для буфера ассоциативной трансляции принят механизм замещения
наиболее долго неиспользуемой строки (LRU). При этом выбор в блоке за-

75
мещаемой строки определяется тремя битами L0, L1, L2 LRU, которые
хранятся в дополнительном модуле памяти TLB. Логика обслуживания
TLB устанавливает эти биты по мере обращения к соответствующим адресам (строкам). В каждый момент времени сочетание L0, L1, L2 указывает,
к какой из строк данного блока дольше всего не приводилось обращение.
Именно эта строка замещается при кэш–промахе, если все четыре строки
блока ранее заполнены.
МП может формировать физические адреса для 128 КБ оперативной
памяти. При этом доля кэш-попаданий составляет в среднем 98 %. Поля
Атрибуты страниц содержат разряды PCD (запрет кэширования) и PWT
(сквозная запись в странице). Поля доступа содержат следующие разряды:
V - бит достоверности (при V=0 – строка не заполнена); D - бит модификации; U - бит пользователь/супервизор; W - бит запись/чтение. Назначение последних трех разрядов аналогично битам D, R/W, U/S указателей
входа.
5.4. Организация кэш-памяти
Кэш-память – быстродействующая буферная память ограниченного
объема, которая располагается между МП и относительно медленной ОП.
В процессе работы отдельные блоки информации копируются из ОП в
кэш-память. Когда микропроцессор обращается за командой или данными,
проверяется их наличие в кэш-памяти. Если необходимая информация находится там, то она быстро извлекается. Такой случай обращения называют кэш-попаданием. Если необходимая информация в кэш-памяти отсутствует, то она выбирается из ОП и заносится в кэш-память. Такой случай
называют кэш-промахом.
Такая память может располагаться как внутри микропроцессора, так
и вне его. Соответствие содержимого оперативной памяти и кэш-памяти
обеспечивается определёнными механизмами записи и чтения. Так, при
записи используются механизмы сквозной записи или обратной. При
сквозной записи выполняется одновременное изменение кэш-памяти и ОП.
Такой механизм обычно используется для внутренней кэш-памяти МП.
Недостатками такой организации являются большие затраты времени и
возрастание интенсивности использования системных магистралей.
При обратной записи любое изменение содержимого кэш-памяти вызывает установку специального признака (бита модификации или мусора).
При обновлении содержимого кэш-памяти блок информации, содержащий
установленный бит мусора, переписывается обратно в ОП. Этот механизм
используется в кэш-памяти второго уровня. Его недостатками является
следующее: логика работы здесь сложнее, чем при сквозной записи, следовательно, более сложным является кэш-контроллер; в случае неисправимой ошибки содержимое кэш-памяти теряется и невозможно определить,
содержит ли ОП правильную информацию.

76
Если при чтении произошел кэш-промах и кэширование данной области разрешено, то производится обновление строки кэш-памяти, т.е. новая информация вводится в кэш из ОП. При этом удаляется информация,
отмеченная как недостоверная. Если таковой нет, то используется правило
удаления из кэш-памяти информации, которая дольше всего оказывалась
невостребованной. Логическая организация внутренней кэш-памяти показана на рис. 5.11. Это память ассоциативного типа, состоящая из строк
длиной 16 байт. Строки объединены в 128 наборов по четыре строки в каждом (L0, L1, L2, L3).
Рис. 5.11
Заполнение кэш-памяти осуществляется построчно, т.е. в случае
промаха из ОП в нее копируется целая строка, включающая затребованный
байт. Адресация кэша осуществляется с помощью 28 разрядов адреса, которые делятся на два поля: тэг (21 разряд) и индекс набора (семь разрядов).
В дополнительном массиве кэш-памяти хранятся: признаки наборов биты достоверности строк (свободна-занята) V0, V1, V2, V3, которые устанавливаются при заполнении соответствующих строк и указывают на
возможность их использования; биты B0, B1, B2, которые используются
при обновлении строк в соответствии со стратегией LRU.
В цикле чтения информации семи разрядов сформированного адреса
(А4-А0) выбирают один из наборов, а 21 разряд (А11-А31) сравнивается с
тэгами четырех строк выбранного набора. При совпадении с одним из тэгов имеет место кэш-попадание и в цикле записи производится запись по
заданному адресу как в соответствующую ячейку кэш-памяти, так и в адресуемую ячейку ОП. При кэш-промахе запись производится только в ОП,
а обновление строки кэш-памяти не происходит.

77
Управление функционированием внутренней кэш-памяти первого
уровня осуществляется битами CD и NW регистра управления CR0. Они
определяют четыре режима работы: 1) CD=1, NW=1. Если очистка кэшпамяти произведена, то кэширование запрещено. Если не произведена, то
данные из кэша могут быть прочитаны; 2) CD=1, NW=0. Заполнение кэшпамяти запрещено, но сквозная запись и аннулирование строк разрешены;
3) CD=0, NW=1. Запрещенная комбинация, генерируется исключение;
4) CD=0, NW=0. Кэширование разрешено, нормальный режим работы.
5.5. Режимы работы 32-разрядного микропроцессора
Микропроцессор с архитектурой х86/32 может работать в двух режимах - реальном и защищенном. Во втором случае МП может функционировать еще в трех режимах: в режиме виртуального МП I8086; в защищенном 16-разрядном режиме; в защищенном 32-разрядном режиме.
Реальный режим. Здесь МП выполняет программы, написанные
для МП I8086 и для реального режима МП I80286 и I80386. С точки зрения
программиста, МП в реальном режиме представляет собой более быстрый
МП I8086 с расширенным набором команд и числом регистров. Все программы выполняются с наиболее высоким уровнем приоритета CPL=0.
Физические адреса здесь образуются так же, как и в МП I8086 (сдвиг влево
на 4 разряда содержимого сегментного регистра + смещение). Объем физической памяти составляет 1 МБ, а размеры сегментов фиксированы - 64
КБ. Причем сегменты могут перекрываться. По умолчанию в реальном режиме используются 16-разрядные операнды и адреса. При использовании
префиксов можно обрабатывать 32-разрядные адреса. Однако если эти адреса выходят за пределы сегмента (64 КБ) или адресуемой памяти (1 МБ),
то реализуется прерывание.
Режим виртуального МП I8086 (V86). Этот режим реализуется при
установке в регистре EFLAGS значения признака VM=1. Таким образом, в
режиме V86 МП работает как виртуальный процессор, состоящий из аппаратных средств и программного обеспечения МП I8086 и системного ПО
(монитор V86). Особенности функционирования МП в режиме V86:
а) все программы, выполненные в режиме V86, имеют низкий уровень привилегий: CPL=3. Однако выполнение команд ввода-вывода IN,
OUT, INS, OUTS не зависит от значения поля IOPL;
б) в режиме V86 не осуществляется защита сегментов. Однако может
использоваться страничная организация памяти и соответственно защита
страниц;
в) использование команд, исполняемых только в защищенном режиме, вызывает прерывание;
г) возможность выполнения нескольких задач МП I8086.
Защищенный 16-разрядный режим. Программы, предназначенные
для выполнения в защищенном режиме на МП с архитектурой х86/16 (на-

78
0 или 1 байт
0 или 1 байт
0 или 1 байт
0 или 1 байт
Префикс повторения команды
Префикс размера адреса
Префикс размера
операнда
Префикс замены
сегмента
1 или 2 байта
0 или 1 байт
0 или 1 байт
0, 1, 2, 4 байта
0, 1, 2, 4 байта
КОП
MOD R/M
SIB
disp
data
mod
reg/КОП
r/m
SS
index
base
пример, МП I80286), выполняются без изменений на 32-разрядных МП.
Входящие в систему МП I80286 дескрипторы, исполняемые сегменты,
шлюзы и таблицы локальных дескрипторов используются как в МП
I80286, так и в 32-разрядных МП. Просто работая с дескрипторами, МП
анализирует последние 32 разряда. Если обнаруживает в них нули, то рассматривает дескриптор как принадлежащий МП 80286. Все задачи работают в этом режиме с сегментами состояния задачи TSS МП I80286. Отличие TSS МП I80286 от TSS 32-разрядных МП рассмотрено выше. Таким
образом, МП с архитектурой х86/32 в этом режиме функционирует как быстрый МП с архитектурой х86/16.
Защищенный 32-разрядный режим. В этом режиме логические адреса задаются как 16-разрядный селектор:32-разрядное смещение. Это позволяет обрабатывать 32-разрядные операнды и генерировать 32разрядные линейные адреса. Кроме использования дополнительных регистров, при переключении задач в этом режиме используется расширенный
формат сегмента состояния задачи TSS. В него вводится бит ловушки Т,
используемый при отладке программного обеспечения. Сюда также записывается содержимое регистра управления CR3, которое используется
только при страничной организации памяти. Два последних бита обязательной части TSS определяют относительный адрес начала битовой кар-
ты ввода-вывода (БКВВ). Каждый бит БКВВ соответствует однобайтовому порту ввода-вывода. При записи в соответствующем бите БКВВ 0 разрешается при CPL>IOPL обращение напрямую к порту ввода-вывода, номер которого соответствует порядковому номеру данного бита в карте
ввода-вывода. Используется в служебных и отладочных целях.
5.6. Команды микропроцессоров с архитектурой x86/32
Команды МП с архитектурой х86/32 имеют следующую структуру:
префиксы замены; код операции; постбайт режима адресации; байт масштаба-индекса-базы; смещение; непосредственный операнд. Все поля,
кроме КОП, являются необязательными. Размер команд может составлять
от 1 до 11 байт. Общий формат команды представлен на рис. 5.12.
Рис. 5.12

79
В таких командах префиксы – один или несколько байтов, предшествующие команде и модифицирующие операцию этой команды. Префикс
повторения команды используется с командами обработки строк. Заставляет команду воздействовать на каждый элемент строки. Префикс размера
адреса переключает разрядность адреса, определяя образование 32- или 16разрядных адресов. Префикс размера операнда переключает разрядность
операндов, устанавливая их 32- или 16-разрядными. Префикс замены сегмента в явной форме указывает, какой сегментный регистр должна использовать команда.
Байт SIB включает три поля: SS – поле шкалы (scale), задающее
масштабный коэффициент при обращении к многобайтным массивам данных; index - поле, задающее номер индексного регистра; base - поле, задающее номер базового регистра. Для 32-битного микропроцессора в качестве базового и индексного регистров может использоваться любой 32битный РОН. Эффективный адрес EA с использованием этих полей вычисляется следующим образом: EA = base + index scale (SS) + disp. В связи с
введением поля SS появились дополнительные виды адресации: масштабированная базовая индексная адресация; масштабированная базовая индексная адресация со смещением.
По сравнению с МП с архитектурой х86/16 в 32-разрядные МП добавились две функциональные группы команд: команды манипуляции битами и команды поддержки зашиты страниц, а также префиксы изменения
разрядности.
Таким образом, в систему команд с МП с архитектурой х86/32 наряду с собственными командами входят команды реального режима и защищенного 16-разрядного режима, предназначенные для организации защиты
и управления многозадачной работой МП (загрузка системных регистров,
команды изменения уровня привилегий, прав доступа и границ сегментов
и т.д.).
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Гуров В.В. Архитектура микропроцессоров. М.: Бином. Лабора-
тория знаний, 2010. 272 с.
2. Гуров В.В. Микропроцессорные системы. М.: Инфра-М, 2016.
336 с.
3. Костров Б.В., Ручкин В.Н. Архитектура микропроцессорных сис-
тем. М.: Издательство «Диалог-МИФИ», 2007. 304 с.
4. Костров Б.В., Ручкин В.Н. Микропроцессорные системы и мик-
роконтроллеры. М.: ТехБук, 2007. 320 с.
5. Таненбаум Э., Остин Т. Архитектура компьютера. СПб.: Питер,
2013. 816 с.

80
ВВЕДЕНИЕ……………………………………………………..……….........
3
1. АРХИТЕКТУРА МИКРОПРОЦЕССОРОВ И
МИКРОПРОЦЕССОРНЫХ СИСТЕМ….…………................….…….……
5
1.1. Принципы построения МП и МПС ……….....................…………..
5
1.2. Классификация, структура и форматы команд МП………………..
9
1.3. Виды адресации МП ……..…….……..………..…….……......…….
12
1.4. Микропрограммируемые микропроцессоры и МПС………………
16
2. ОРГАНИЗАЦИЯ МПС НА ОСНОВЕ МИКРОПРОЦЕССОРОВ
С АРХИТЕКТУРОЙ х86/16. РЕАЛЬНЫЙ РЕЖИМ…………..…….…..
21
2.1. Структурная модель МП с архитектурой х86/16
при работе в реальном режиме……………………………….……...
21
2.2. Организация регистров в реальном режиме…………………..……
23
2.3. Организация памяти и ввода/вывода в МПС на основе
микропроцессоров с архитектурой х86………………………………
25
2.4. Форматы команд микропроцессора………………………….…..…..
28
2.5. Виды адресации микропроцессора………………………….…..…...
30
3. ОРГАНИЗАЦИЯ МПС С МАТЕМАТИЧЕСКИМ
СОПРОЦЕССОРОМ………………………………………………...…….
36
3.1. Общая характеристика и форматы данных сопроцессора…..…….
36
3.2. Программная модель математического сопроцессора……………...
39
3.3. Форматы команд математического сопроцессора…………..…..…..
44
4. ОРГАНИЗАЦИЯ МПС НА ОСНОВЕ МИКРОПРОЦЕССОРОВ
С АРХИТЕКТУРОЙ х86/16. ЗАЩИЩЕННЫЙ РЕЖИМ……………….
46
4.1. Структурная организация микропроцессора в защищенном
16-разрядном режиме………………………………………..………..
46
47
4.3. Управление памятью МПС в защищенном
шестнадцатиразрядном режиме………………………………………
50
4.4. Организация защиты в микропроцессоре……………………………
53
4.5. Мультизадачность и переключение задач …………………..............
58
4.6. Прерывания и исключения в микропроцессоре………………..........
61
5. ОРГАНИЗАЦИЯ МПС НА ОСНОВЕ МИКРОПРОЦЕССОРОВ
С АРХИТЕКТУРОЙ х86/32……………………………………………….
64
5.1. Развитие микропроцессоров с архитектурой x86/32………………..
64
5.2. Регистровая организация МП с архитектурой x86/32………………
69
5.3. Страничная организация памяти……………………………………..
72
5.4. Организация кэш-памяти …………………………………………….
75
5.5. Режимы работы 32-разрядного микропроцессора…………………..
77
5.6. Команды микропроцессоров с архитектурой x86/32 ……………….
78
БИБЛИОГРАФИЧЕСКИЙ СПИСОК..……………………………………...
79
ОГЛАВЛЕНИЕ
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
