0_МПиИСТС_Все главы. Микропроцессоры и интерфейсные средства транспортных средств
Скачать 10.01 Mb.
|
6.1. Архитектура микропроцессоров 80186/80188Микропроцессоры 80186 и 80188 подобны микропроцессорам 8086 и 8088, и почти одинаковы с ними, за тем исключением, что они содержат ряд встроенных контроллеров. Единственным отличием между самими микропроцессорами 80186 и 80188 является разрядность их информационных шин. Микропроцессор 80186, как и 8086, имеет 16-разрядную шину данных, тогда как микропроцессор 80188 и его предшественник 8088 имеют 8-разрядную информационную шину. Структура внутренних регистров микропроцессоров 80186/80188 практически идентична микропроцессорам 8086/8088. Единственная разница состоит в том, что микропроцессоры 80186/80188 содержат дополнительные резервные векторы прерывания и некоторые очень мощные встроенные возможности ввода-вывода. Микропроцессоры 80186/80188 часто называют встроенными контроллерами (embedded controllers). Имеется четыре разные версии микропроцессоров 80186/80188, которые все выполнены по КМОП технологии. Микропроцессоры 80C186XL и 80C188XL наиболее сходны с базовыми версиями процессоров 80186/80188, тогда как микропроцессоры 80С186ЕС и 80С188ЕС являются наиболее усовершенствованными. Базовая блок-схема микропроцессора 80186 На рис. 6.1 приводится блок-схема микропроцессора 80188, которая, в общем, представляет все версии. Обратите внимание, что эта блок-схема подходит и для микропроцессора 80188, за исключением отсутствия вывода BHE/S7 и того, что выводы AD15-AD8 обозначены как A15-A8. Следует отметить, что внутренняя структура этого микропроцессора немного сложнее, чем у микропроцессора 8088. Блок-схемы микропроцессоров 80186 и 80188 идентичны, за исключением очереди предварительной выборки, которая составляет 4 байта в микропроцессоре 80186 и 6 байт в микропроцессоре 80188. Микропроцессор 80188 (подобно 8088) имеет блок шинного интерфейса, или иначе BIU (Bus Interface Unit), и операционный блок, или EU(Execution Unit).
Кроме блока шинного интерфейса и операционного блока семейство микропроцессоров 80186/80188 имеет тактовый генератор, программируемый контроллер прерывания, программируемые таймеры, программируемый контроллер DMA и программируемый блок выбора кристалла. Данные усовершенствования существенно повышают эффективность микропроцессоров 80186/80188 и сокращают количество периферийных компонентов, требуемых для реализации вычислительной системы. Во многих популярных подсистемах персональных компьютеров использовались микропроцессоры 80186 и 80188 в качестве дискового контроллера с кэшем, контроллеров локальной сети (LAN — Local Area Network) и т. д. Микропроцессоры 80186/80188 также находят применение в сотовой телефонной сети в качестве коммутатора (switcher). Программное обеспечение микропроцессоров 80186/80188 идентично с микропроцессором 80286. 6.2. Микропроцессор 80286Микропроцессор 80286 является усовершенствованной версией микропроцессора 8086, которая была разработана для многопользовательской и мультизадачной операционной среды. Микропроцессор 80286 способен адресовать 16 Мбайт физической памяти и 1 Гбайт виртуальной памяти за счет использования системы управления памятью. В настоящее время процессор 80286 больше не используется в персональных компьютерных системах, но иногда находит применение в системах управления как встроенный контроллер. 6.2.1 Аппаратные особенностиНа рис. 6.2 приведена блок-схема микропроцессора 80286. Она, в отличие от микропроцессоров 80186/80188, не содержит в себе встроенных контроллеров. Вместо них он содержит блок управления памятью, иначе MMU (Memory-Management Unit), который на блок-схеме назван блоком адресации (address unit). Ознакомление с блок-схемой показывает, что адресные выводы А23—А0, а также выводы BUSY , CAP, ERROR , PEREQ и РЕАСК являются новыми, или добавленными, выводами, которых нет в микропроцессоре 8086. Сигналы BUSY , ERROR , PEREQ и РЕАСК используются при работе с сопроцессором, примером которого является 80287. Аналогичный вывод TEST процессора 8088/8086 в процессоре 80286 называется BUSY. Шина адреса разрядностью 24 бита позволяет адресовать 16 Мбайт физической памяти. Вывод САР соединяется с конденсатором емкостью 0,047 мкФ +20% с рабочим напряжением 12 В, который в свою очередь подключают к нулевому потенциалу. Конденсатор необходим для работы внутреннего делителя частоты. Для сравнения на рис. 6.3 приведены условные схемы обозначения микропроцессоров 8086 и 80286. Следует заметить, что микропроцессор 80286 не имеет мультиплексированной шины адреса/данных. Микропроцессор 80286 работает в реальном и защищенном режимах. В реальном режиме работы микропроцессор 80286, используя только 16-разрядную шину адреса, адресует лишь 1 Мбайт памяти и, в сущности, является идентичным с микропроцессором 8086. В защищенном режиме работы микропроцессор 80286, используя все 24 разряда, адресует уже 16 Мбайт физической памяти. В состав микропроцессора 80286, кроме регистра EFLAGS, добавлены еще регистр слова состояния машины (MSW), регистр задачи (TR), регистры таблиц дескрипторов (GDTR, IDTR, LDTR) и 6 регистров расширения сегментных регистров.
6.2.2 Система командСистема команд микропроцессора 80286 включает все команды процессоров 8086/8088 и имеет ряд дополнительных команд. Дополнительные команды управляют системой виртуальной памяти с помощью блока управления памятью микропроцессора 80286. В табл. 6.1 перечислены все эти команды с комментариями относительно назначения каждой из них. Здесь приведены только дополнительно добавленные в микропроцессоре 80286 команды. Кроме них система команд микропроцессора 80286 содержит новые, добавленные еще и для микропроцессоров 80186/80188 команды, такие как: INS, OUTS, BOUND, ENTER, LEAVE, PUSHA, POPA, а также команды целочисленного умножения на константу и команды сдвигов, включая циклические, с указанием счетчика в константе. Таблица 6.1. Дополнительные команды микропроцессора 80286
Ниже следует описание некоторых специальных команд, которые используются для управления защитой. □ CLTS Команда CLTS (clear task-switched flag) сбрасывает бит флага переключения задач TS (task-switched) в регистре состояния машины MSW (machine state word). Если флаг TS установлен и следующая команда, относящаяся к сопроцессору 80287, вызовет прерывание (тип вектора 7). Это позволяет программно определить, относится ли контекст сопроцессора к текущей задаче. Команда clts используется в системе и считается привилегированной командой, поскольку она может выполняться только в защищенном режиме с нулевым уровнем привилегий. Команды для установки флага TS не существует. Однако установить флаг можно при помощи записи логической единицы в бит 3 (TS) регистра состояния машины MSW с использованием команды lmsw. □ LAR Команда LAR (load access rights) считывает дескриптор сегмента и размещает копию байта прав доступа в 16-разрядный регистр. Примером является команда LAR ах, вх, которая загружает регистр АХ байтом прав доступа из выбранного дескриптора по значению селектора, указанного в регистре ВХ. Команда используется для получения прав доступа, чтобы она могла быть проверена перед программным использованием сегмента памяти, описанного дескриптором. □ LSL Команда LSL (load segment limit) загружает в выделенный для пользователя регистр граничное значение сегмента. Например, команда LSL ах, вх загружает в регистр АХ граничное значение сегмента, описываемое дескриптором, который выбирается селектором, указанным в регистре ВХ. Эта команда используется для проверки граничного значения сегмента. □ ARPL Команда ARPL (adjust requested privilege level) используется для проверки селектора, чтобы уровень привилегий запрашиваемого селектора не нарушался. Примером является команда ARPL ах, CX. Регистр АХ содержит запрашиваемый уровень привилегий, а СХ содержит значения селектора вызывающего процесса для доступа к дескриптору. Если запрашиваемый уровень привилегий имеет приоритет ниже, чем у проверяемого дескриптора, то устанавливается флаг нуля ZF. Использование команды гарантирует, что параметр-селектор в подпрограмме не запросит большего уровня привилегированности, чем ему позволит вызывающий процесс. □ VERR Команда VERR (verify for read access) проверяет сегмент на возможность считывания. Это означает, что сегмент кода может иметь защиту от несанкционированного чтения. Если считывание из сегмента кода разрешено, то устанавливается флаг нуля ZF, если же не разрешено, то флаг будет сброшен. Команда VERR ах проверяет дескриптор, выбираемый с помощью регистра АХ. □ VERW Команда VERW (verify for write access) проверяет сегмент на возможность записи. Сегмент кода может иметь защиту от несанкционированной записи. Если запись в сегмент кода разрешена, то устанавливается флаг нуля ZF, если же не разрешена, то флаг будет сброшен. 6.2.3. Виртуальная памятьМеханизм виртуальной памяти (virtual memory machine) позволяет системам, имеющим относительно небольшую физическую память (16 Мбайт для микропроцессора 80286), отображать достаточно большую область памяти (1 Гбайт для процессора 80286). Сам же механизм виртуальной памяти заключается в том, что на жестком диске создается файл обмена (swap-файл) размером в несколько десятков мегабайт, который, по сути, является как бы расширением оперативной памяти системы. При работе системы по мере необходимости осуществляется перекачка данных и программ между файлом обмена на жестком диске и физической памятью. Адресация виртуальной памяти в системе осуществляется с помощью дескрипторов. Каждый дескриптор (рис. 6.7) процессора 80286 описывает сегмент памяти размером в 64 Кбайта, а сам процессор имеет возможность использовать 16К дескрипторов. Таким образом, это позволяет системе иметь виртуальную память емкостью до 1 Гбайт (64 Кбайт х 16К). Дескрипторы описывают сегмент памяти только в защищенном режиме. Микропроцессор 80286 имеет дескрипторы, которые определяют коды, данные, стековые сегменты, прерывания, процедуры и задачи. Доступ к дескриптору выполняется загрузкой, выполняемой в защищенном режиме, сегментного регистра селектором. Селектор получает доступ к дескриптору, который описывает область памяти. |