Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга Башков.doc
Скачиваний:
40
Добавлен:
20.11.2019
Размер:
26.92 Mб
Скачать

2.3. Развитие семейства мп 8086

Архитектура 16-разрядных микропроцессоров фирмы Intel развивалась (см. рис. 2.1) по двум направлениям: интеграция в одном микропроцессорном кристалле схем обрамления и интерфейсных схем (линия 80186) и расширение системных возможностей процес­сора (линия 80286, 80386).

МП 80186/80188 (система iAPX 186) [2.5, 2.7, 3.3].

Микропроцессор 80186, упрощенная структура которого дана на рис. 2.21, кроме устройства сопряжения с шиной и устройства обработки, выполняющих те же функции, что и в МП 8086, содержит:

генератор тактовых синхросигналов,

программируемый контролер прерываний,

три программируемых 16-разрядных таймера,

два программируемых контролера канала прямого доступа в память,

программируемые формирователи сигналов выборки кристаллов ЗУ и ВВ.

МП 80186 упакован в квадратный корпус типа JEDEC с 68 вы­водами (по 17 на каждой стороне) и выпускается в двух модифика­циях с рабочими частотами 6 и 8 МГц. При полной программной совместимости снизу (МП 80186 может выполнять все программы, написанные для 8086), производительность 80186, в среднем в два раза выше, чем 8086. В МП 80186 введено десять новых команд, которые упрощают программирование или повышают быстродей­ствие.

Генератор тактовых импульсов полностью обеспечивает как внутреннюю, так и внешнюю синхронизацию микропроцессорной системы на базе 80186. Период тактовых импульсов стабилизирует­ся внешним кварцевым резонатором удвоенной частоты. В гене­раторе предусмотрены также схемы синхронизации внешних асинхронных сигналов сброса и готовности.

Управление работой всех внутренних дополнительных уст­ройств МП осуществляет через соответствующие регистры, составляющие единый регистровый блок управления длиной 256 байт. Каждый регистр адресуется смещением относительно базового адреса, который программно записывается в специальный регистр перемещения (последние два байта управляющего блока). Блок управления разрядом M/IO в регистре перемещения может «накладываться» на адресное поле памяти или на адресное поле устройств ввода-вывода. В последнем случае доступ к регистрам управления возможен только с помощью команд ввода-вывода.

Программируемый контроллер прерываний предназначен для обработки запросов на прерывания от внутренних и внешних ис­точников. Внутренними источниками могут быть таймеры и каналы прямого доступа. Пять внешних запросов INT3—INT0 и не маски­руемый NMI поступают через соответствующие контакты микросхе­мы. Контроллер может работать в двух, программно задаваемых режимах: основном и совместимом с 8086.

В контроллере содержится 15 программно доступных регистров (смещения 2216—3Е16), с помощью которых процессор управляет его работой. Например, для каждого внешнего источника запроса можно установить реакцию либо на уровень, либо на фронт сигна­ла. С помощью маски можно подавить запрос от любого источника. Программно для каждого внутреннего и внешнего источника можно задать один из восьми приоритетных уровней. Контроллер, при наличии нескольких запросов, выберет наиболее приоритетный и аппаратно сформирует соответствующий вектор прерывания. При поступлении более приоритетного запроса во время обслужи­вания менее приоритетного контроллер выполнит переключение на его обработку.

В основном режиме допускается каскадное подключение восьми дополнительных контролеров типа 8259А, что расширяет коли­чество обрабатываемых внешних запросов до 128. В режиме, со­вместимом с 8086, внутренний контроллер функционирует под управлением внешнего, имитируя структуру системы прерывания, принятую для операционной системы iRMX.

В МП 80186 встроено три программно управляемых 16-разряд­ных таймера, два из которых (Tmr0 и Tmr1) имеют внешние входы и выходы. Третий таймер (Tmr2) используется только для внутрен­них нужд МП: организации системного таймера, генерации вре­менных задержек, генерации запроса на передачу данных через канал прямого доступа. Таймеры Tmr0, Tmrl разработчик может применять для различных целей, например, для подсчета внешних событий, генерации периодических и непериодических сигналов и т. п.

Управление работой таймеров осуществляется через одиннадцать 16-разрядных регистров (смещения 5016—6616). Каждый таймер имеет 4 программно доступных регистра: регистр режима — управ­ления, регистр счетчика, максимальный регистр А и максимальный регистр В (в Tmr2 регистра В нет). На вход таймеров, в зависимости от кода в регистре управления — режима, можно подавать внешние сигналы, воспринимаемые по фронту или уровню, или тактовые

импульсы синхронизации. В максимальные регистры А и В зано­сятся предельные значения, после достижения которых счетчик таймера сбрасывается в ноль и вырабатывает сигнал запроса на прерывание и внешний выходной сигнал, вид которого тоже про­граммно контролируется. Возможен режим автоматического пере­ключения максимальных регистров А и В. Программное изменение содержимого свободного максимального регистра позволяет гене­рировать произвольно сложные непериодические сигналы. Процес­сор может в любой момент прочитать содержимое регистра счетчика таймера или записать в него новый код.

Два контроллера каналов прямого доступа в память (direct memory access channel, DMA channel) обеспечивают передачу дан­ных между различными областями памяти и/или устройствами ввода-вывода с максимальной скоростью 2 Мбайт/с. Управление paботой каналов осуществляется с помощью шести 16-разрядных ре­гистров (смещения CO16—CA16 для канала 0, смещения D016—DА16 для канала 1): регистр — указатель источника (2 слова), регистр — указатель приемника (2 слова), счетчик передач и регистр режима. Код в последнем регистре задает: режим синхронизации (от источ­ника, от приемника, асинхронно), разрядность данных (байт, сло­во), генерацию запроса на прерывание после окончания обмена, относительный приоритет между каналами, режим изменения ука­зателей источника и приемника (не изменять, увеличивать, умень­шать) после каждого обмена, поле адресов памяти или поле адресов ввода-вывода отдельно для приемника и источника.

Количество обменов, которое необходимо выполнить, опреде­ляется содержимым счетчика передач, первоначально устанавлива­емым программно. После каждого обмена содержимое счетчика уменьшается на единицу. При достижении нуля обмен прекращает­ся и, если запрограммировано, генерируется запрос на прерывание. Максимальное количество передаваемых по каналу данных 64 Кбайт или 64 Кслов. Двадцатиразрядные указатели приемника и источни­ка адресуют данные в поле адресов памяти или ввода-вывода. Ука­затели после каждой передачи автоматически уменьшаются (увели­чиваются) на 1 при обмене байтами или на 2 при обмене словами. Отмечается высокая гибкость встроенных контроллеров прямого доступа, их функциональные возможности значительно шире, чем у многих контроллеров, реализованных в виде отдельных БИС [2.7].

Программируемые формирователи обеспечивают генерацию ше­сти сигналов выборки кристаллов памяти и семи сигналов выборки устройств ввода-вывода. Сигнал LCS выдается при обращении. к «младшей» области памяти, начинающейся с адреса 0000016 Сигнал UCS генерируется при обращении к «старшей» области памя­ти, которая заканчивается адресом FFFFF16. Длина этих двух областей может быть установлена программно. Остальные четыре сигнала выборки кристаллов памяти МСS3—MCS0 формируются при обращении к некоторой «средней» области, начальный адрес и длина которой также задаются программно. Сигналы выборки периферийных устройств PCS6 — PCS0 генерируются при обращении к области адресов устройства ввода-вывода, начальный адрес кото­рой устанавливается процессором. Для управления схемами форми­рования используются четыре регистра (смещения А016—А816).

Считается, что встроенные в МП 80186 устройства сокращают на 15—20 корпусов количество схем обрамления и периферийных схем, необходимых для построения законченного микропроцессорного вычислителя.

МП 80286 (система iАРХ286) [2.8, 2.12, 3.4]. Этот микропро­цессор ориентирован на построение многозадачных и многопользо­вательских систем, аппаратно поддерживает виртуальное адресное пространство объемом 1 Гбайт (физически адресуется память 16 Мбайт) и четырехуровневую систему защиты программ и данных. МП 80286 программно совместим «сверху» с 8086 и 80186, список его команд расширен системными операциями и операциями управле­ния режимами работы памяти и защиты.

Упрощенная структура микропроцессора приведена на рис. 2.22. Кроме устройства сопряжения с шиной и устройства обработки, функционально аналогичным соответствующим элементам МП 8086, в состав 80286 включены декодер команд и формирователь адресов. Как и в МП 8086 устройство связи с шиной выполняет предваритель­ную выборку команд, когда в шестибайтной очереди освобождается не менее двух байт. Устройство декодирования извлекает из очереди первую команду и расшифровывает ее, формируя 69-разрядную микрокоманду, которая загружается в собственную очередь декоди­рованных команд. После завершения выполнения текущей операции устройство обработки извлекает из очереди декодированных команд очередную микрокоманду и начинает выполнять ее. Операции по обработке адресов и проверки правильности доступа к памяти и портам ввода-вывода возложены на устройство формирования адре­сов. Внутренние устройства МП 80286 образуют четырехступенча­тый конвейер независимо от работающих блоков, что значительно повышает производительность процессора. В [3.4] указывается на шестикратное повышение производительности по сравнению с МП 8086, хотя в 12.12] приведены более сдержанные оценки, полученные экспериментально.

Микропроцессор работает в двух режимах: реальной адресации и защищенной виртуальной адресации. В первом режиме МП адре­сует 1 Мбайт памяти с помощью адресных линий А19—А0 и . Сегментация памяти, формирование физического адреса полностью аналогичны МП 8086. При инициализации и перезапуске микропро­цессор автоматически переходит в режим реальной адресации. Основным режимом работы является защищенная виртуальная адресация, при которой каждому заданию доступен 1 Гбайт виртуальной памяти, отображаемой на 16 Мбайт физической. Для зада­ния виртуального адреса используется 32-разрядный указатель, состоящий из 16-разрядного смещения в сегменте и 16-разрядного селектора сегмента. Селектор, который подобно базе сегмента для

МП 8086 хранится в сегментном регистре, содержит старшие 14 разрядов виртуального адреса и два разряда уровня приоритетности сегментов (поле RPL). Виртуальное адресное пространство делится на две равные части по 512 Мбайт — глобальную область и локаль­ную область. Глобальная область доступна всем заданиям, находя­щимся в системе, локальная — только заданию, к которому она относится. Таким образом, каждое задание имеет свою защищенную локальную виртуальную память емкостью 512 Мбайт.

Отображение виртуального адреса на физическое адресное пространство в МП 80286 представлено на рис. 2.23. Любой сегмент па­мяти (локальной или глобальной), необходимый для выполнения

задания, например сегмент данных, стека или программы, задается с помощью 64-разрядного описателя сегмента — дескриптора (seg­ment descriptor), который занимает восемь последовательных байт памяти. Дескриптор содержит 24-разрядную базу сегмента, 16-раз­рядное ограничение (длина сегмента — от 1 байта до 64 Кбайт) и байт доступа, определяющий тип сегмента, его привилегии и пра­вила обращения. Дескрипторы сегментов, необходимые для про­хождения задания, объединяются в таблицу локальных дескрипто­ров. Кроме дескрипторов сегментов таблица может содержать также дескрипторы вызова подпрограмм и заданий. Всего таблица может включать 8192 дескриптора. Аналогично образуется и таблица глобальных дескрипторов, определяющая программные сегменты и сегменты данных, доступные любому заданию.

В процессе выполнения текущего задания базовые адреса таблиц глобальных и локальных дескрипторов содержатся в специальных регистрах. При загрузке селектора в сегментный регистр, напри­мер, командой MOV, по его второму разряду (поле Т) определяется тип таблицы (если Т=0, то глобальная, если Т=1, то локальная) дескрипторов и, соответственно, тип виртуальной памяти. Старшие 13 разрядов селектора (индекс) определяют смещение вызываемого дескриптора в таблице относительно базы. Если соблюдаются все привилегии (текущий и запрашиваемый уровни достаточны для доступа), дескриптор считывается из таблицы и загружается в спе­циальный программно недоступный набор регистров (кэш) сегмент­ных дескрипторов, состоящий из четырех 48-разрядных регистров. При обращении к памяти, например, для чтения данных исполни­тельный адрес ЕА сравнивается с ограничением. Если предел сег­мента не нарушен (причем можно задавать сегменты «растущие» вверх — сегменты данных и «растущие» вниз — сегменты стека), то физический адрес формируется как сумма 24-разрядного базо­вого адреса сегмента и исполнительного адреса. По этому адресу и извлекается код данных из памяти. В случае отсутствия сегмента в физической памяти наступает исключительное событие (exeption) «нет сегмента», по которому управление передается операционной системе для подкачки сегмента с внешнего носителя. После записи сегмента в физическую память управление возвращается в програм­му пользователя, и операция чтения повторяется.

Три разряда (поле Type) в байте доступа сегмента определяют допустимые действия с кодами, расположенными в сегменте. Один из разрядов задает тип сегмента — данные или коды программы. Для сегмента данных возможна защита от записи. Для сегмента программных кодов обеспечивается защита от чтения и/или выпол­нения заданиями с более низким приоритетом. Поле DPL опреде­ляет один из четырех уровней привилегий данного сегмента. Наи­более привилегированный нулевой уровень предназначен для ядра операционной системы. Первый и второй уровни обычно назна­чаются расширениям операционной системы. Самый низкий уро­вень, четвертый, присваивается заданиям пользователя. Уровень привилегий текущего задания определяется содержимым поля RPL в сегментном регистре CS программных кодов. При попытке загру­зить новый селектор в сегментный регистр данных DS происходит аппаратное сравнение текущего уровня (RPL из CS), запрашива­емого уровня (RPL из селектора) и уровня доступа (DPL из байта доступа дескриптора). Только, если текущий и запрашиваемый уровни меньше или равны (не менее приоритетны) уровню привиле­гий дескриптора, задание получает доступ к сегменту данных.

Межсегментные передачи управления (вызовы подпрограмм и возвраты из них, обработка прерываний и исключений) выполня­ются только через специально оговоренные шлюзы (gate), которые также задаются своими дескрипторами. Формат дескриптора шлю­за во многом подобен дескриптору сегмента. Передача управления из менее привилегированной программы в область с большими при­вилегиями помимо шлюзов невозможна и вызывает соответству­ющее исключение. При любой передаче управления между сегмен­тами с помощью механизма привилегий происходит проверка допус­тимости такого перехода. Дескрипторы вызовов подпрограмм и заданий располагаются в таблицах локальных и глобальных дес­крипторов. Дескрипторы прерываний образуют специальную таб­лицу, определяющую до 256 входов в подпрограммы обработки пре­рываний и исключений.

Считается, что совокупность архитектурных и схемных решений, заложенных в МП 80286, открывает широкие возможности по построению многозадачных и многопользовательских микросистем повышенной производительности.

Микропроцессор 80386 (система iAPX386) [2.8, 2.9, 3.5]. 32-разрядный микропроцессор 80386 выполнен по усовершенствованной HMOS технологии с 1.5-микронными проектными нормами на квадратном кристалле со стороной 9,9 мм, содержит 250 000 транзисторов и работает с тактовой частотой 16 МГц. МП размещается в кера­мическом кристаллоносителе со 132 выводами. Структура микропроцессора приведена на рис. 2.24.

Процессор организован как конвейер восьми независимо работающих устройств, четыре из которых функционально идентичны МП 80286. Устройство сопряжения с шиной обеспечивает информационную связь МП с внешними элементами. Полноразрядная шина адреса позволяет подключать физическую память емкостью до 4 Гбайт. Шина данных поддерживает передачу кодов с максимальной скоростью до 32 Мбайт/с. С помощью специального входного сигна­ла (BS16) можно динамически изменять разрядность передаваемых по шине данных кодов. Получив этот сигнал, устройство сопряже­ния аппаратно организует передачу 32-разрядных кодов последова­тельно за два цикла по 16 разрядов каждый. Причем, на работе остальных блоков МП это никак не отражается. Устройство предва­рительной выборки загружает внутреннюю очередь команд, из ко­торой они читаются устройством предварительного декодирования. Последнее, по коду команды, формирует 100-разрядную микроко­манду, которую заносит в очередь микрокоманд. Устройство управ­ления и устройство обработки извлекают первую микрокоманду из очереди и обеспечивают ее выполнение.

Физические адреса форми­руются блоком трансляции адресов, состоящим из двух устройств, поддерживающих страничную и сегментную организацию памяти. Допустимость обращений к памяти и портам ввода-вывода прове­ряется устройством защиты.

В блоке обработки регистровый файл включает те же регистры, что и МП 8086 и МП 80286, расширенные до 32 разрядов. Сохранены все способы адресации операндов (формирования исполнительного адреса ЕА), типы и форматы обрабатываемых данных. Пересылоч­ные и арифметико-логические операции могут выполняться над 8-, 16- и 32-разрядными кодами. В среднем, для выполнения одной ко­манды требуется 4.4 такта синхронизации, что при частоте 16 МГц дает

усредненное быстродействие 3.6 MIPS. На простейших опера­циях (передача из регистра в регистр) быстродействие увеличивается до 8 MIPS. Существенно отличается в МП 80386 организация вирту­альной памяти. При сохранении идеи сегментации, аналогичной 80286, во-первых, максимальная длина сегмента увеличена до 4 Гбайт и, во-вторых, введена двухуровневая страничная организа­ция памяти. Виртуальный адрес состоит из 14-разрядного селектора, загружаемого в один из 6 сегментных регистров, и 32-разрядного исполнительного адреса (смещения в сегменте). Таким образом, ем­кость адресуемой виртуальной памяти составляет 246= 64 Тбайт. Столь гигантский объем виртуальной памяти, по мнению разработ­чиков, необходим для подключения перспективных внешних запо­минающих устройств сверхвысокой емкости, например, оптических дисков. Селектор сегмента задает расположение дескриптора в соот­ветствующей (локальной или глобальной) таблице, по которой опре­деляется базовый адрес сегмента, длина сегмента и правила доступа. Сумма базового и исполнительного адресов, вычисляемая в устрой­стве сегментации так же, как и в МП 80286, является исходной для страничного устройства. В 80386 эта сумма получила название ли­нейного адреса. Линейный адрес разбивается на три поля: 10-раз­рядное поле индекса в справочнике таблиц, 10-разрядное поле ин­декса в таблице страниц и 12-разрядное поле смещения в странице (рис. 2.25). Следовательно, длина страницы составляет 4 Кбайт, а вся физическая память разбивается на 220 страниц. В памяти рас­полагается справочник таблиц, который содержит до 1024 входных точек (начальных адресов) таблиц страниц. Каждая таблица в свою очередь определяет 1024 начальных адреса страницы в физической памяти. Начальный адрес справочника таблиц хранится в специ­альном 32-разрядном регистре, формирование физического адреса выполняется в два этапа: сначала из справочника таблиц по стар­шему индексу линейного адреса выбирается начальный адрес таб­лицы страниц, затем по второму индексу из таблицы выбирается начальный адрес страницы. Сумма начального адреса страницы и смещения из линейного адреса дает физический адрес требуемой ячейки памяти. Если найденная страница отсутствует в памяти, возникает исключение «нет страницы» и операционная система за­гружает с внешнего носителя 4 Кбайт в физическую память и запи­сывает соответствующий адрес в таблицу страниц. После этого пре­рванная команда выполняется повторно. Информация о 32 наиболее используемых страницах хранится в специальном кэше (наборе регистров) страничных дескрипторов, что позволяет адресовать 128 Кбайт памяти без обращения к справочнику таблиц и таблице страниц. По данным [2.8] только в 2 % обращений к памяти прихо­дится перегружать кэш дескрипторов, т. е. введение страничной адресации практически не снижает скорость формирования физи­ческих адресов.

Имеется возможность программно отключать как сегментацию памяти, так и поиск страниц. Первое делается загрузкой всех сегментных регистров одинаковыми селекторами, задающими нулевой базовый адрес сегмента. Тогда 32-разрядный исполнительный адрес ЕА фактически становится линейным адресом. Формирование физи­ческого адреса из линейного просмотром таблиц можно отменить, устанавливая соответствующий разряд управляющего регистра. При этом линейный адрес воспринимается как физический. Следо­вательно, допустимо четыре разных способа организации памяти в МП 80386: бесстраничная несегментированная, емкостью 4 Гбайт; страничная несегментированная, емкостью 4 Гбайт со страницами по 4 Кбайт; сегментированная бесстраничная виртуальная память, емкостью 64 Тбайт с сегментами по 4 Гбайт и страничная сегменти­рованная виртуальная память, емкостью 64 Тбайт с сегментами по 4 Гбайт и страницами по 4 Кбайт. Конкретно выбираемая органи­зация определяется, в первую очередь, требованиями к емкости и скорости доступа к памяти, защищенности данных и программ. При инициализации МП 80386 автоматически переходит в режим реаль­ной адресации (как и МП 80286), в котором эмулируется работа микропроцессора 8086. В этом режиме загружаются все таблицы и системные регистры процессора, а затем программно выполняется переход к основному режиму работы с выбранной организацией памяти. К несомненным преимуществам МП 80386 относится и самотестирование, позволяющее при его инициализации проверить свыше 75 % аппаратуры интегральной схемы.

Совокупность архитектурных и схемных достоинств делает МП линии 8086, 80286, 80386 фактически международным стандар­том для построения персональных и многопользовательских микро­ЭВМ. Фирма Intel объявила также о разработке нового микропро­цессора 80486, первые поставки которого запланированы на 1989 г. Выпуск персональных ЭВМ на его базе ожидается в 1990—1991 гг. На момент написания пособия, предполагаемые технические харак­теристики МП 80486 не были опубликованы, хотя ожидается, что он будет содержать 1—1.25 млн. вентилей, иметь производитель­ность 15—20 млн. операций/с, адресовать 4 Гбайт физической памяти с виртуальной адресацией до 64 Тбайт.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]