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

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

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