Intel 80386

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:51, 25 ноября 2016.
Open book.svg Авторство
Мокеев А.И.
Согласовано: 15.04.2016
Intel 80386
Ic-photo-intel-A80386DX-33-IV-(386DX).png
Intel 80386 DX@16 МГц
Производство: С Июня 1986 по Сентябрь 2007
Производители:
  • Intel
  • AMD
  • IBM
Частота CPU: 12 МГц — 40 МГц
Технология производства: 1.5нм — 1нм
ISA: x86 (IA-32)
Предшественник Intel 80286
Преемник Intel 80486
Варианты корпуса:
Разновидности:

Intel 80386 (i386) - первый 32-битный процессор. Применялся, преимущественно, в настольных и портативных ПК. В настоящее время в основном используются в контроллерах. Год анонса - 1986.

Основные характеристики

  • 32-х битная шина данных.
  • 4Гб памяти (теоретически)
    • EIP,ES1,ED1,ESP - по 32 бита
    • G1 - 16 бит
    • GDT и IDT - по 32 бита
    • CR1,CR2 и CR3 - по 32 бита
  • механизмы аппаратной отладки
  • тактовая частота от 25МГц до 40МГц (последняя версия)
  • конвеер 6 ступеней
  • защищенный режим: виртуальных адресов
  • реальный режим
  • полная совместимость программ с х286
  • модификации процессора:
Intel 80386SL
Intel 80386EX
Intel 80386DX
  • страничная адресация памяти
Рис.2 Регистры.
  • х386 впервые требует L1 (внешний аппаратный кэш, требует для управления контроллер)


Объем физической памяти - 4 Гб (возможно адресовать) Объем виртуальной памяти - 64 Тб (1986 г. !)

  • виртуальный режим (подсистема защищенного режима) - позволяет исполнять программы для реального режима в защищенном режиме.
  • SMM режим - позволяет в процессорсы выполняющие процесс переключать на альтернат код (по внешнему прерыванию). Код в SMM режиме изолирован от кода в ОС. Поддержка различных аппаратных устройств для мобильных платформ.

В SMM режиме поддержка аппаратная платформа вне зависимости от ОС (используется и в наше время в мобильных и не только платформ).

О процессоре i80386

Процессор 80386 выпускался достаточно долгое время в самых различных модификациях. Первая версия процессора имела тактовую частоту 16 МГц, выполняя от 5 до 6 млн. операций в секунду. В 1987 г. тактовая частота увеличилась до 20 МГц (от 6 до 7 млн. операций в секунду). Планка в 25 МГц была взята в 1988 г. (8,5 млн. операций в секунду). Дальнейшее улучшение технологии позволило в 1989 г. достичь частоты в 33 МГц (11,4 млн. операций в секунду). Количество транзисторов в процессоре 80386 достигло рекордной для того времени величины — 275 000 (вначале использовалась технология 1,5 мкм, а в дальнейшем — 1 мкм). С помощью нового процессора стало возможным адресовать 4 Гбайт памяти, а размеры виртуальной памяти достигли 64 Тбайт (терабайт). В 1985 г. такие возможности были просто ошеломляющи, но посмотрите на свой персональный компьютер — сегодня винчестер в 4 Гбайт явно маловат для мультимедийных применений! Процессор 80386 выпускался не только корпорацией Intel, но и многими другими фирмами в самых разных модификациях. Например, наиболее популярным вариантом корпуса стал пластмассовый с планарными выводами, которые припаивались к материнской плате, что не допускало смены процессора. А компьютеры с таким типом процессора, которые до сих пор с успехом используются, имеют тактовые частоты 33 и 40 МГц. Заметим, что для промышленных компьютеров даже сейчас выпускаются не только процессоры 386, но и 16-разрядные 8088 и 80286. Несмотря на тщательность проработки конструкции, к великому сожалению, в первых версиях процессора Intel 386 содержалась ошибка, касающаяся выполнения 32-разрядных арифметических операций. Поэтому на корпуса процессоров, которые неправильно функционируют в 32-разрядном режиме, нанесена маркировка "16 bit operations only". To есть такие процессоры могут правильно выполнять только программы, работающие в 16-разрядном режиме, а, например, установить Windows 95 на компьютер с таким процессором не удастся. Так как многие возможности Intel 386 довольно долгое время были не востребованы широким кругом пользователей, то для уменьшения цены на компьютеры в 1988 г. был выпущен процессор, который маркировался суффиксом SX. Процессор Intel 386SX, как и 8088, обладал сокращенной в два раза шиной данных, а для адресации ячеек памяти использовалось всего 24 разряда вместо 32-х. После выхода Intel 386SX полноразрядные варианты стали носить название Intel 386DX. Для портативных компьютеров в 1990 г. был выпущен процессор Intel 386SL. Он полностью повторял основные технические характеристики Intel 386SX. Для целей энергосбережения использовались технические решения, которые позволяли отключать неиспользуемые внутренние блоки. Кроме того, в архитектуру процессора включили кэш-память и средства управления памятью. Количество транзисторов в процессоре увеличилось до 855 000 (технология 1 мкм).

Intel 80386 («Интел 80386») — 32-битный микропроцессор третьего поколения архитектуры x86, выпущенный компанией Intel в октябре 1985. Первый 32-битный процессор компании. От предшественника (80286) его отличают следующие возможности: три режима работы (защищенный, реальный и виртуальный); 26 новых инструкций; 32-битная шина адреса, позволяющая адресовать до 4 гигабайт физической памяти.

В новом процессоре была использована 32-битная плоская модель памяти, отличная от сегментной, использовавшейся до этого. Эта модель будет использоваться во всех процессорах архитектуры x86 вплоть до появления 64-битных технологий AMD64 и EM64T.

Для выполнения операций с вещественными числами был разработан математический сопроцессор 80387. От 80287 он отличался оптимизированным набором инструкций, позволяющим за такт выполнять большее число команд. В виртуальном режиме процессор мог одновременно выполнять несколько задач, предназначенных для i8086.

Процессор выпускался по 1,5-1-микронной технологии с тактовой частотой 16, 20, 25 и 33 МГц в пяти модификациях: 80386DX для настольных компьютеров, бюджетный 80386SX (16-битный, с 24-битной шиной адреса), мобильный 80386SL (вариант 80386SX с пониженным энергопотреблением), а также 80376 и 80386EX для встроенных систем (варианты 80386SX, оба не поддерживали реальный режим). Были доступны частоты от 16 до 33 МГц. Кристалл процессора 80386 содержал примерно 275 тысяч транзисторов. На материнских платах 80386 впервые была установлена кэш-память.

Клоны 80386 выпускались многими компаниями: Cyrix, IBM, Texas Instruments, AMD и др. Следующим процессором от Intel, продолжившим развитие 80386, стал 80486.

Интерфейс процессоров 386DX и 386SX

Процессоры 386DX выпускались в корпусах PGA и PQFP (рис. 1 и 2 и табл. 1). Их интерфейс отличается от 8086 применением раздельных шин адреса и данных, конвейерной адресации, а также составом и назначением управляющих сигналов. По сравнению с интерфейсом 80286 появилась возможность динамического управления разрядностью шины данных и конвейеризацией адреса, изменился состав управляющих сигналов, назначение которых стало более отчетливым.

Рис. 1. Расположение выводов процессора 386DX в корпусе PGA

Процессоры 386SX выпускались в 100-выводном корпусе PQFP (рис. 3). Их интерфейс почти совпадает с DX, различия касаются разрядности шин адреса и данных (см. табл. 1 и 2). Дальнейшее описание непосредственно относится к процессору 386DX, а в конце приводятся отличия процессора 386SX. 

Рис. 2. Расположение выводов процессора 386DX в корпусе PQFP и рис. 3. Расположение выводов процессора 386SX в корпусе PQF
Таблица 1 (1 часть) Расположение выводов процессоров 386
Таблица 1 (2 часть) Расположение выводов процессоров 386
Таблица 2 (1 часть) Назначение сигналов процессора 386
Таблица 2 (2 часть) Назначение сигналов процессора 386

Синхронизация процессора осуществляется внешним сигналом CLK2, частота которого делится пополам внутренним делителем для получения сигнала внутренней синхронизации. Каждому периоду CLK2 соответствует одна из двух фаз внутренней синхронизации (фаза 1 или фаза 2). Максимальная пропускная способность локальной шины процессора — одно двойное слово за каждые два цикла внутренней частоты PCLK.

Шина данных допускает как 16-, так и 32-разрядный режим обмена, в зависимости от состояния входного сигнала BS16#. При чтении в 16-разрядном режиме данные на линиях D[ 16:31] игнорируются, при записи процессор управляет всей шиной данных независимо от сигнала BS16#.

Шина адреса позволяет адресовать 4 Гб физической памяти (00000000- FFFFFFFFh) в защищенном режиме и 1 Мб из области младших адресов в реальном режиме. Из этого правила для реального режима есть два исключения:

  • линии А[20:31] после сигнала RESET во время выборки кода находятся в единичном состоянии до первой инструкции межсегментного перехода;
  • линия А20 может принимать единичное значение, когда сочетание значения сегментного регистра и эффективного адреса приводят к переходу через границу OFFFFFh (максимально возможное значение физического адреса в реальном режиме OOOlFFEFh). Для обеспечения полной совместимости с 8086 применяют программно управляемый вентиль (GATE А20), принудительно обнуляющий бит А20 системной шины адреса.

При выполнении инструкций ввода-вывода процессор адресуется к области в 64 Кб пространства ввода-вывода (00000000-0000FFFFh). При обмене с со¬процессором в циклах ввода-вывода процессор выставляет адреса 800000F8- 800000FFh, что упрощает дешифрацию адреса внешними схемами.

Линии А[31:2] идентифицируют адрес с точностью до двойного слова, а в пределах этого слова сигналы ВЕ[0:3] непосредственно указывают, какие байты используются в данном цикле. BE0# относится к D[0:7], BE1# — к D[8:15], BE2# — к D[16:23] и ВЕЗ# — к D[24:31]. Число активных линий BEi определя¬ет, сколько байт (1, 2, 3 или 4) передается в данном цикле, при этом все байты могут быть только смежными. Если в текущем цикле записи оба сигнала BE0# и BE1# неактивны, выводимые данные старших байт автоматически дублируются на линиях младших (D[24:31] на D[8:15], D[16:23] на D[0:7]). Если адресованное слово (или двойное слово) пересекает границу двойного слова, процессор после пересылки уместившейся младшей части автоматически генерирует дополнительный цикл обмена с другими значениями А[31:2] и ВЕ[0:3].

Сигнал BS16# вводится внешней схемой, если текущий цикл адресуется к 16-битному устройству, подключенному к младшей половине шины данных. Если в данном цикле предполагалась передача данных и двух старших байт, процессор автоматически вводит дополнительный цикл для передачи этих байт по младшей половине шины данных.

Рис. 4. Формирование сигналов адресации для 16-разрядных шин

Для связи с системной шиной, имеющей возможность подключения 8-, 16- и 32-битных устройств (шины ISA и EISA) и полную шину адреса, включающую сигналы АО, А1 и SBHE#, недостающие сигналы генерируются из сигналов ВЕ[0:3]# по логике, приведенной на рис. 4.4. Для 8-битных устройств, как и при использовании 80286 или 8086, необходим «косой» буфер данных между линиями D[8:15] процессора и Data[0:7] системной шины.

Тип цикла локальной шины определяется сигналами M/IO#, D/C#, W/R# и LOCK#, комбинация которых действительна во время активности сигнала ADS# (табл. 3).

Сигналы управления шиной ADS#, READY# и NA# задают временные границы циклов и управляют конвейерной адресацией. Сигнал ADS# отмечает начало каждого цикла, во время его действия производится идентификация типа цикла и фиксируется соответствующий ему адрес (линии А[31:2] и ВЕ[0:3]#). Сигнал READY# дол¬жен вводиться внешней схемой в каждом цикле, отмечая готовность к завершению текущего цикла. Сигнал NA# используется для запроса следующего адреса при конвейерной адресации, когда внешние схемы уже готовы воспринять новый адрес и сигналы идентификации. Если процессор уже имеет внутренний запрос на следующий шинный цикл, он выдаст адрес и идентификаторы следу¬ющего цикла до завершения текущего.

Таблица 3. Декодирование шинных циклов процессора 386

Сигналы арбитража локальной шины предназначены для передачи управления локальной шиной другому устройству по его запросу — переходу в состояние лог. «1» линии HOLD. Когда процессор сочтет возможным передачу управления (в незаблокированных циклах сразу по завершении текущего шинного цикла), он выставит сигнал подтверждения HLDA. В таком состоянии процессор переводит в высокоимпедансное состояние все двунаправленные и выходные линии (кроме самого сигнала HLDA). Этим состоянием можно пользоваться и для отладки аппаратных средств.

Сигналы интерфейса с сопроцессором практически те же, что и у процессо-а 80286, это позволяет наряду с сопроцессором 387 (DX и SX, в соответствии с основным) использовать 80287. Сигнал PEREQ, является запросом сопроцессора на обмен данными, в ответ на который процессор выполняет передачи в циклах ввода-вывода. Сигнал BUSY# вырабатывается сопроцессором во время выполнения вычислительных инструкций. Сигнал ERROR# вызывает исключение 16 при инструкциях, адресованных сопроцессору, но в РС он, как правило, не используется.

Высокий уровень сигналов NMI и INTR вызывает немаскируемое и маскируемое прерывания. Сигнал RESET сбрасывает процессор в исходное состояние, при его действии никакие другие входные сигналы, включая и HOLD, не воспринимаются. Если во время спада сигнала RESET удерживается низкий уровень на линии BUSY#, процессор выполнит внутренний тест BIST (Built-In Self Test).

Конвейерная адресация (Pipelined Addressing), применяемая в процессоре, предусматривает возможность начала (фазы идентификации и адресации) ново¬го цикла, не дожидаясь завершения физического обмена данными предыдущего цикла. Конвейерная адресация запрашивается внешними схемами по сигналу NA#. Если этот сигнал неактивен, конвейерная адресация не используется и значение сигналов адреса и идентификации будет действительно на все время цикла (в отличие от 80286). При использовании конвейерной адресации для совместимости с шинами (например, ISA) и устройствами, подразумевающими действительность адреса на все время цикла, сигналы шины адреса процессора должны защелкиваться регистрами. Временные диаграммы шинных циклов процессора приведены на рис. 5 и 6.

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

Рис. 5. Неконвейерные шинные циклы 80386
Рис. 6. Конвейерные шинные циклы 80386

Формирование управляющих сигналов системной шины IOR#, IOW#, MEMR#, MEMWR#, INTA# и ALE выполняется внешними микросхемами чип¬сета системной платы.

Управление временной диаграммой подразумевает задержку (Command de¬lay) и растяжку (Command extension) командных циклов. Растяжка при необходимости удлиняет командный цикл обращения с помощью задержки сигнала READY#. Задержка предназначена для сдвига начала командного импульса системной шины относительно соответствующего ему сигнала ADS# и осуществляется внешними микросхемами чипсета. Управление задержкой и растяжкой циклов в зависимости от типа и адреса обращения возлагается на микросхемы чипсета системной платы, а для задания длительности циклов системной шины и времени восстановления (Recovery Time) для различных операций в машинах класса АТ обычно имеются соответствующие опции BIOS SETUP.

Отличия процессора 386SX обусловлены сокращением разрядности шины данных и адреса.

  • Шина данных имеет разрядность 16 бит, динамическое изменение разрядности 16/32 (сигнал BS16#) исключено, и 32-битные обмены требуют как минимум двух циклов.
  • Из четырех сигналов разрешения байт остались только два младших, пере¬именованных в BLE# и ВНЕ#. Их назначение сохранилось (не путать с сигналом ВНЕ# процессора 80286, который имеет несколько иное функциональное назначение). В связи с этим в шине адреса появился сигнал А1.
  • Разрядность шины адреса сокращена до 24 бит, адрес выводится линиями А[23:1], ВНЕ# и BLE#. Поскольку старшие 8 бит адреса просто отсечены, попытка адресации по физическому адресу, превышающему 16 Мб, приводит к циклическому повторению первых 16 Мб адресного пространства. При обмене с сопроцессором в циклах ввода-вывода процессор выставляет адреса 8000F8-8000FFh.

В остальном процессоры 386SX и 386DX совпадают.

См. также

  1. 80386 [Электронный ресурс] : Материал из Википедии — свободной энциклопедии : Версия 81648938, сохранённая в 18:27 UTC 1 ноября 2016 / Авторы Википедии // Википедия, свободная энциклопедия. — Электрон. дан. — Сан-Франциско: Фонд Викимедиа, 2016. — Режим доступа: http://ru.wikipedia.org/?oldid=81648938