 |
ты с отдельным математическим сопроцессором. К 80386 может
быть подключен математический сопроцессор либо 80287, либо
более производительный 80387. Для прикладного программного
обеспечения сопроцессоры прозрачны; они лишь расширяют архи-
тектуру 80386 с помощью регистров, типов данных и операций,
требуемых стандартом IEEE754. Комбинация 80386 и 80387 может
исполнять 1,8 миллион операций.
32-битный процессор, работающий с частотой 16 мгц, имеет
большее быстродействие, чем большинство быстродействующих па-
мятей, вследствии чего его производительность может быть ог-
раничена временами доступа к памяти. 80386 был спроектирован
так, чтобы с максимальной эффективностью использовать как на-
иболее быстродействующие статистические ОЗУ, так и недорогие
динамические ОЗУ. Для обращения к быстрой памяти, например
типа кэш, 80386 вырабатывает двухтактный магистральный цикл
для адреса/данных. (Памяти типа кэш 80386 могут иметь любой
объем от минимального полезного 4 кбайт до максимального, ох-
ватывающего все физическое адресное пространство). Обращение
к более медленной памяти (или к устройствам ввода/вывода) мо-
жет производиться с использованием конвейерного формирования
адреса для увеличения времени установки данных после адреса
до 3 тактов при сохранении двухтактных циклов в процессоре.
Вследствие внутреннего конвейерного форморования адреса при
исполнении команды, 80386, как правило, вычисляет адрес и оп-
ределяет следующий магистральный цикл во время текущего ма-
гистрального цикла. Узел конвейерного формирования адреса пе-
редает эту опережающую информацию в подсистему памяти, позво-
ляя, тем самым, одному банку памяти дешифрировать следующий
магистральный цикл, в то время как другой банк реагирует на
текущий магистральный цикл.
1.3. Обеспечение работы с виртуальной памятью
Виртуальная память позволяет ставить максимальный объем
программы или группы программ в зависимость от имеющегося ад-
ресного пространства на диске, а не от об'ема физической па-
мяти (ОЗУ), которая в настоящее время приблизительно в 400
раз дороже. Из вытекающей отсюда гибкости выигрывают изгото-
вители оборудования (которые могут поставлять изделия, отли-
чающиеся лишь в конфигурациях памяти и в уровне производи-
тельности), программисты (которые могут предоставлять управ-
ление хранением программ операционным системам и избегать на-
писания программ с перекрывающимися структурами) и конечные
пользователи (которые могут вводить новые и большие по объему
прикладные программы, не опасаясь нехватки памяти).
Виртуальная память реализуется операционной системой с
соответствующей аппаратурной поддержкой. Микропроцессор 80386
обеспечивает работу с системами виртуальной памяти с сегмент-
ной или страничной организацией. Сегментная виртуальная па-
мять больше подходит для небольших 16-битных систем, в кото-
рых об'ем сегмента не превышает 64 кбайт. 80386 обеспечивает
работу с сегментами объемом до 4 гбайт; поэтому в большинстве
больших систем на базе 80386 системы виртуальной памяти будут
использовать возможность страничного запроса. Для каждой
страницы 80386 вырабатывает биты присутствия, занятости или
регистрации обращения, которые необходимы для эффективной ре-
ализации виртуальной памяти со страничными запросами. В слу-
чае обращения к несуществующей странице 80386 автоматически
делает переход к операционной системе, если операционная сис-
тема считала с диска отсутствующую страницу, 80386 выполняет
команду повторно. Высокая производительность в работе с вир-
туальной памятью обеспечивается в 80386 использованием внут-
ренней кэш-памяти для хранения страничной информации. Эта
кэш-память (называемая буфером просмотра трансляции, TLB) со-
держит информацию о распределении адресов 32 страниц, исполь-
зовавшихся последними. Страницы виртуальной памяти 80386 име-
ют об'ем 4 кбайт, храня одновременно распределение 128 кбайт
памяти, буфер TLB позволяет 80386 преобразовать адреса внутри
кристалла, не обращаясь к хранящейся в памяти таблице стра-
ниц. В типичных системах 98-99% поиска адресов будет осущест-
вляться через буфер TLB.
1.4. Механизмы защиты
Выполняя 3-4 миллиона операций в секунду, 80386 имеет
достаточно вычислительной мощности для обеспечения самых
сложных систем, состоящих из сотен или тысяч программных мо-
дулей. В таких системах вопрос заключается не в том, будут ли
ошибки, а в том как их накти и повозможности быстро устранить
и насколько их действие может быть ограничено. Такие системы
могут быть быстро отлажены и сделаны более надежными при се-
рийном освоении, если процессор будет проверять каждую коман-
ду по критерию защиты. При этом степень и тип используемой
защиты зависит от конкретного применения. Обычно простые сис-
темы реального времени работают достаточно хорошо без исполь-
зования защиты. Различные требования к защите могут быть наи-
более полно удовлетворены с помощью набора выборочно исполь-
зуемых функций защиты, введенных в 80386:
- разделение адресных пространств задач;
- введение 0-4 уровней привилегий ;
- использование привилегированных команд (например,HALT);
- разделение сегментов по типам (например, кодовый сег-
мент или сегмент данных);
- введение прав доступа к сегментам и страницам (напри-
мер, право только чтения или только исполнения);
- проверка границ сегмента.
Для сохранения максимельной производительности все про-
верки защиты в 80386 выполняются одновременно с выполнением
команды.
1.5. Расширенные возможности отладки
Четыре внутренних отладочных регистра 80386 помогают
значительно сократить время отладки программы. Эти регистры
работают независимо от системы защиты и поэтому могут быть
использованы в любых системах, включая те, которые будут ра-
ботать без защиты. Не менее важно и то, что они дают возмож-
ность устанавливать контрольные точки данных, помимо конт-
рольных точек команд. 80386 отслеживает все четыре текущих
адресных контрольных точки одновременно, не снижая скорости
выполнения программы.
Контрольные точки команд вызывают переход (обычно в
программу-отладчик) при выполнении команды, в большинстве
процессоров это осуществляется с помощью специальной команды,
которую отладчик записывает после команды, представляющей ин-
терес. Задавая адреса контрольных точек в регистрах, 80386
устраняет программные искажения, неизбежные при внесении ко-
манд перехода в защищенную или общую часть программы. Конт-
рольные точки данных, наличие которых является, для микропро-
цессора свойством уникальным, для целей отладки особенно по-
лезны. По контрольной точке данных можно установить момент
чтения адреса или же момент его записи или чтения. Используя
контрольные точки данных, программист может, например, быстро
установить команду, ответственную за ошибочную запись в
структуре данных.
Кроме регистров контрольных точек, 80386 имеет и более
традиционные отладочные функции в виде контрольных точек ко-
манд и пошагового исполнения программы.
1.6. Совместимость с микропроцессорами 8086/80286
Два поколения процессоров семейства 86 предшествуют про-
цессору 80386 - 80286 и 8086, с каждым из них 80386 совместим
на уровне двоичных кодов. Благодаря такой совместимости эко-
номятся программные затраты, обеспечивается быстрый выход на
рынок и доступ к обширной библиотеке программного обеспече-
ния, написанного для машин на базе микропроцессоров семейства
86.
Микропроцессор 80386, конечно, может выполнять программы
для 8086, он также может одновременно выполнять программы для
80286 и 80386. Однако наиболее важным свойством совместимости
80386 представляется свойство, называемое VIRTUAL 86 ( вирту-
альный 86), устанавливающее защищенную структуру для 8086
внутри системы задач 80386. Дополняя свойство виртуального
8086 страничной организацией памяти, 80386 может закрепить за
каждой задачей виртуального 8086 1 мбайтное адресное прост-
ранство в любой области физического адресного пространства
80386. Более того, если операционная система 80386 обеспечи-
вает работу с виртуальной памятью, то задачи виртуального
8086 могут переноситься с диска и обратно как любые другие
задачи. Таким образом, свойство виртуального 8086 позволяет
80386 одновременно выполнять программы, написанные для трех
поколений семейства 86.
1.7. Заключение
Микропроцессор 80386 обеспечивает ту базовую производи-
тельность, которая необходима для построения высокопроизводи-
тельных микропроцессорных систем. Архитектура 80386 достаточ-
но гибка: не ориентируясь на одно представление о вычисли-
тельной машине, она дает разработчикам систем воможность вы-
бирать те варианты, которые наилучшим образом подходят для
конкретного применения.
Полный набор свойств для управления памятью, включающий
сегментацию, страничное разделение и обеспечение работы с
виртуальной памятью, реализуется внутри кристалла. До четырех
уровней защиты может быть использовано для возведения границ
между программными компонентами, однако защита может и не ис-
пользоваться. Задачи виртуального 8086 могут обогатить
32-битные системы необычайно большим набором стандартных
программ, уже разработанных для машин на базе 8086.
Производительность и гибкость микропроцессора 80386 мо-
гут быть дополены другими устройствами фирмы ИНТЕЛ и доведены
до максимума. К этим устройствам относятся контроллеры ло-
кальных сетей, усовершенстванные контроллеры прямого доступа
к памяти, контроллеры дисков и графические сопроцессоры.
2. Прикладная архитектура
Микропроцессор 80386 дает разработчику прикладных прог-
рамм на языке ассемблера или разработчику компилятора широкий
набор 32-битных ресурсов. В данной главе эти ресурсы рассмат-
риваются в трех разделах:
1) регистры;
2) память и логическая адресация;
3) типы данных и команды.
2.1. Регистры
Во всех вычислительных машинах, включая 80386, имеются
регистры, которые программисты могут использовать для срочно-
го промежуточного хранения. К данным, хранящимся в этих ре-
гистрах, можно обратиться без магистральных циклов, что сок-
ращает время использования команды и предоставляет больше ма-
гистрального времени другим процессором, например, контролле-
рам прямого доступа к памяти. В 80386 имеется восемь програм-
мно доступных общих регистров, еще восемь регистров добавля-
ется при подключении математического сопроцессора 80287 или
80387. Два других регистра 80386, предназначенных не для хра-
|