Основы микропроцессорной техники | ||||||||||||||||
Раздел 7. Организация персонального компьютера | ||||||||||||||||
| «Структура курса | Глава 1 | Глава 2 | Глава 3 | Глава 4 | Глава 5 | Глава 6 | Раздел 7 | Глава 8 | Дополнения | ||||||||||||||||
| Раздел 7 - Страницы: « 1 | 2 | 3 | 4 | 5 | 6 | 7 | » | ||||||||||||||||
7.2.3. Особенности процессора 8038632-разрядный процессор i80386 открыл новый этап в истории микропроцессоров Intel и персональных компьютеров типа IBM PC. Естественно, он сохранял полную совместимость со своими 16-разрядными предшественниками, чтобы не отказываться от разработанного для них программного обеспечения. Но именно в 80386 преодолено жесткое ограничение на длину непрерывного сегмента памяти в 64 Кбайт, было пережитком прошлого и следствием не самых удачных архитектурных решений 8086. В защищенном режиме 80386 длина сегмента может достигать 4 Гбайт, то есть весь объем физически адресованной памяти. Таким образом, память фактически стала непрерывной. Кроме того, 80386 обеспечивает поддержку виртуальной памяти объемом до 64 Тбайт (1 Тбайт = 1024 Гбайт). Встроенный блок управления памятью поддерживает механизмы сегментации и страничной трансляции адресов (Paging). Обеспечивается четырехуровневая система защиты памяти и ввода / вывода, а также перекмикання задач. Процессор 80386, как и 80286, может работать в двух режимах:
Переключение между этими двумя режимами в обе стороны, в отличие от 80286, происходит достаточно быстро, с помощью простой последовательности команд, и аппаратного сброса процессора не нужно. Процессор может оперировать с 8, 16, 32-битными операндами, строками байт, слов и двойных слов, а также с битами, битными полями и строками бит. В архитектуру процессора введены средства отладки и тестирования. Разрядность регистров данных (AX, BX, CX, DX) и адресов (SI, DI, BP, SP) увеличена до 32. При этом в их обозначении появилась приставка E (Extended - расширенный), например, EAX, ESI. Отсутствие приставки в имени означает ссылку на младшие 16 разрядов соответствующего регистра. Регистры данных и адресов объединенные в группу регистров общего назначе ния, которые иногда могут заменять друг друга. Это может рассматриваться как отход от идеологии специализации всех регистров. Регистры селекторов оставлены 16-разрядными, но добавлены два новых регистры FS и GS для задания дополнительных сегментов данных. Также расширен до 32 разрядов регистра-указатель (счетчик) команд EIP. 32-разрядным стал и регистр флагов EFLAGS. Его биты, определенные для 8086 и 80286, остались прежними, но добавлены 6 новых бит (Рис. 7.6). Такой же формат используется и в процессорах 80486 и Pentium.
Регистры сегментов процессора содержат 16-битные указатели (в реальном режиме) или селекторы (в защищенном режиме) шести сегментов. С каждым из шести сегментных регистров связаны программно недоступны регистры дескрипторов, как и в случае 80286. В защищенном режиме в регистры дескрипторов загружается 32-битная базовая адрес сегмента, 32-битный лимит и атрибуты сегментов. Кроме упомянутых регистров в состав процессора входят еще четыре управляющие регистра (CR0, CR1, CR2, CR3), которые сохраняют признаки состояния процессора, общие для всех задач. В процессоре Pentium к ним добавлен еще и регистр CR4. Кроме того, процессор содержит еще системные адресные регистры для ссылок на сегменты и таблицы в защищенном режиме, регистры настройки и регистры тестирования. Как видим, от модели к модели количество регистров процессора постоянно растет. Процессор позволяет выделять в памяти сегменты и страницы. Сегменты в реальном режиме имеют фиксированный размер, в защищенном - переменный. Страницы, которых не было в предыдущих моделях, представляют собой области логической памяти размером 4 Кбайт, каждая из которой может отображаться на любую область физической памяти. Если сегменты используются на прикладном уровне, то страницы применяются на системном. Применительно к памяти различают три адресных пространства: логическое, линейный и физический. О принципах адресации у процессора 80386 уже говорилось в разделе 3.1.2 (см. Рис. 3.8). Процессор 80386 может использовать режимы 32-битной или 16-битной адресации. Режим 16-битной адресации соответствует режимам процессоров 8086 и 80286, при этом как компоненты адреса используются младшие 16 бит соответствующих регистров. Отличие 32-битной адресации отражено в табл. 7.1.
Так же, как и предшественн ики, процессор 80386 обрабатывает все виды прерываний: аппаратные (маскированных и немасковани) и программные, которые в данном случае обрабатываются как разновидность исключений; и исключение. Исключения подразделяются на отказы, ловушки и аварийные завершения.
Каждому номеру прерывания (0 ... 255) или исключения соответствует элемент в таблице дескрипторов прерываний IDT (Interrupt Descriptor Table). В защищенном режиме IDT может иметь размер от 32 до 256 дескрипторов, каждый из которых состоит из 8 байт. Отличия от предыдущего процессора 80286 в выполнении операций ввода / вывода сводятся к добавлению возможностей обращения к 32-битных портов. Важно отметить, что строковые команды процессора 80386 обеспечивают блочный ввод / вывод с большей скоростью, чем стандартный контроллер прямого доступа к памяти. Процессор выпускался в 100-выводном корпусе. Была предусмотрена возможность подключения внешнего сопроцессора 80387. А теперь остановимся несколько подробнее на защищенном режиме, который используется на полную мощность именно начиная с 32-разрядных процессоров, так как процессор 80286 имел существенные ограничения и в большинстве случаев работал все же в реальном режиме. Защищенный режим был предложен для обеспечения независимости одновременного выполнения нескольких задач (как системных, так и прикладных. Для этого предусмотрена защита ресурсов каждой задачи от действий других задач. Под ресурсами здесь понимается память данным, программами, системными таблицами, а также используемая задачей аппаратура. Защита базируется на сегментации памяти, причем, в отличие от реального режима, задача не может переопределять положения своих сегментов в памяти и использует только сегменты, возложенные на него операционной системой. Сегмент определяется дескриптором сегмента, задающий положение сегмента в памяти, его размер (или лимит), назначение и характеристики защиты. Защита с помощью сегментации не позволяет:
Защищенный режим предусматривает средства переключения задач. Состояние каждой задачи (т.е. состояние всех регистров процессора) хранится в специальном сегменте состояния задачи, на который указывает селектор в регистре задачи. При переключении задачи достаточно загрузить в регистр задачи новый селектор, и состояние предыдущего задания автоматически сохранится, а в процессор загрузится состояние новой (или ранее прерванной) задачи. Это развитие идеи стека. В защищенном режиме предусматриваются иерархическая четырехуровневая (уровни 0, 1, 2, 3) система привилегий, предназначенная для управления выполнением привилегирован ых команд и доступом к дескрипторов (Рис. 7.7). Уровень 0 соответствует неограниченным правам доступа и уделяется ядру операционной системы. Уровень 3 дает минимальные права и уделяется прикладным задачам. Уровни привилегий относятся к дескрипторов, селекторов и задач. Кроме того, в регистре флагов является двохбитове поле привилегий ввода / вывода (см. Рис. 7.4 и 7.6), управляющий доступом к командам ввода / вывода и флагом прерываний. Механизм виртуальной памяти, используемый в защищенном режиме, позволяет любой задачи использовать логический пространство размером до 64 Тбайт (16 К сегментов по 4 Гбайта. Для этого каждый сегмент в своем дескриптор имеет специальный бит, указывающий на присутствие данного сегмента в оперативной памяти в данный момент. Неиспользуемый сегмент может быть выгружен из оперативной памяти во внешнюю память (обычно - на диск), о чем делается отметка в его дескриптор. На освободившееся место, из внешней памяти может закачиваться другой сегмент (это называется подкачки или подкачки. При обращении задачи к отсутствующего в оперативной памяти сегмента производится специальный исключение, и выполняет свопинг. С точки зрения выполняемой программы, виртуальная память ничем не отличается от реальной (говорят, что виртуальная память прозрачная), не считая задержки на процесс перекачки информации на диск и с диска.
Реальное использование системы защиты и виртуальной памяти возлагается на операционную систему, в идеале должна обеспечивать работоспособность даже в случае некорректного выполнения прикладных задач. В памяти существует три типа таблиц дескрипторов: локальная таблица дескрипторов LDT, глобальная таблица дескрипторов GDT и таблица дескрипторов прерываний IDT. Каждой таблице соответствует свой регистр процессора (соответственно, LDTR, GDTR и IDTR), где хранятся дескрипторы сегментов. Глобальная таблица содержит дескрипторы, доступные всем задачам, а локальная может быть для каждой задачи своя. Дескрипторы состоят из 8 байт (как и в 80286. Однако их назначение различно. Для примера на Рис. 7.8 показано форматы дескрипторов сегмента программ и данных процессоров 80286 и 80386.
Существуют также системные сегменты, предназначены для хранения локальных таблиц дескрипторов и таблиц состояния задач. Их дескрипторы (тоже 8-байтным) определяют базовую адрес, лимит сегмента, права доступа (чтение, чтение / запись, только выполнение или выполнение / чтение) и присутствие сегмента в оперативной памяти. Задачи, дескрипторы и селекторы имеют свои уровни привилегий. Привилегии задач действуют на выполнение команд и использование дескрипторов. Текущий уровень привилегии задач определяется двумя младшими битами регистра CS. Привилегии дескриптора описываются полем DPL (Рис. 7.8). DPL определяет наименьший уровень привилегий, с которым возможен доступ к данному дескриптора. Привилегии селектора задаются полем RPL (см. Рис. 7.5). Привилегии проверяются при попытках записи в сегментные регистры, а также при выполнении некоторых команд. Таким образом, начиная с процессора 80386, появляются средства обслуживания многозадачной режима. Естественно, процесс р не может обрабатывать несколько задач одновременно, выполняя по несколько команд сразу. Он только периодически переключается между задачами. Но с точки зрения пользователя получается, что компьютер параллельно работает с несколькими задачами. | ||||||||||||||||
| «Структура курса Раздел 7 - Страницы: « 1 | 2 | 3 | 4 | 5 | 6 | 7 | » | ||||||||||||||||