Intel 80486

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 15:13, 25 мая 2016.
Intel 80486
Intel 80486DX-33.jpg
Микропроцессор Intel 80486
Производство: С 10 april 1989 по September 2007
Производители:
  • Intel
Частота CPU: 16 MHz — 100 MHz
Технология производства: 600 nm — 1000 nm
ISA: x86
Предшественник Intel 80386
Преемник Intel Pentium I
Варианты корпуса:

Intel 80486 — 32-битный скалярный x86-совместимый микропроцесcор четвёртого поколения, выпущенный 10 апреля 1989 года фирмой Intel. Этот микропроцессор является модернизированной версией микропроцессора 80386. Именно у этого микропроцессора впервые появился встроенный математический сопроцессор (FPU). Имел применение как правило в настольных ПК, в высокопроизводительных рабочих станциях, в серверах и портативных ПК .

Технические характеристики

Разрядность регистров: 32 бит
Разрядность внешних шин данных и адреса: 32 бит
Объём виртуальной адресуемой памяти: 64 Тбайт
Объём физической адресуемой памяти: 4 Гбайт
Тактовая частота процессора, МГц: 16—33
Корпус: 168- и 169-контактный керамический PGA, 132- и 208-контактный пластиковый PQFP

Модификации i80486

  • DX - начиная с него добавили со-процессор (i80487).
  • SX - не содержит встроенный со-процессор.

Микроархитектура i486SX

Рис.1. i486SX

DX:

  • Тактовая частота: 50 - 133 МГц
  • Впервые применены рассинхронные шины.
  • Процессорная память и тактовая частота существенно увеличились:
    DX4 - скорость процессора выше в 4 раза
    DX2 - скорость процессора выше в 2 раза
  • CR4

Микроархитектура i486DX2/DX4

Рис. 2. i486DX2/DX4

Процессоры 486

Процессоры Intel486™ представляют второе поколение 32-разрядных процессоров. Обладая всеми свойствами процессора 386 и обеспечивая полную обратную совместимость с прежними представителями семейства х86, эти процессоры имеют ряд существенных изменений:

  • В процессор введен внутренний кэш первого уровня (Internal cache Level 1) и предусмотрены все необходимые средства для построения памяти с двухуровневым кэшированием, допускающей работу и в мультипроцессорных системах.
  • Повышена производительность локальной шины — введены пакетные циклы, позволяющие передавать очередное слово данных в каждом такте шины (а не через такт, как в обычном режиме).
  • Ведены буферы отложенной записи.
  • В архитектуре применено RISC-ядро, позволяющее наиболее часто встречающиеся инструкции выполнять за 1 такт — средняя производительность процессора на той же тактовой частоте по сравнению с 386-м удвоилась.
  • В состав процессора введен высокопроизводительный математический сопроцессор FPU (Floating-Point Unit), программно совместимый с сопроцессором 387 (в 486SX сопроцессор отсутствует, в 486SL — имеется в некоторых моделях).
  • Увеличена очередь команд до 16 байт.
  • Введены новые инструкции (BSWAP, XADD, CMPXCHG, INVLD, WBINVD).
  • Добавлена защита страниц памяти от записи на уровне супервизора.
  • Введены функции контроля выравнивания операндов.
  • Расширены средства тестирования — введены регистры TR3, TR4, TR5 для тестирования внутреннего кэша.
  • Введена возможность тестирования процессора извне по интерфейсу JTAG (не у всех моделей).
  • Введено умножение тактовой частоты системной платы (внутренняя частота DX2 равна двукратной внешней, в DX4 кратность может быть 2, 2,5 и 3).

Существует несколько разновидностей процессоров Intel486, различающихся наличием сопроцессора, средств энергосбережения, возможностью умножения внешней тактовой частоты, политикой записи внутреннего кэша и напряжением питания:

  • Р4 Intel486DX — полный вариант (CPU + FPU), кэш с прямой записью;
  • Р23 Intel486SX — вариант без FPU, кэш с прямой записью;
  • P23N Intel487SX — аналог процессора 486DX (FPU + CPU), устанавливаемый в гнездо сопроцессора и отключающий «основной» SX-процессор;
  • Intel486SL Enhanced — процессор со средствами SMM и возможностью остановки синхронизации (StopClock) для снижения энергопотребления;
  • Р24 Intel486DX2 — процессор с удвоением частоты;
  • P24D — улучшенный вариант IntelDX2 с WB-кэшем;
  • Р24С — IntelDX4 CPU — процессор с утроением частоты (ОЕМ-версия), питание 5 или 3,3 В и могут иметь средства SMM;
  • Р24Т — Pentium®OverDrive® (замена для Intel486): по архитектуре — Pentium, по шине — 486-й;
  • Р23Т - Intel486 SX (или DX) OverDrive.

Рассмотрим подробнее основные нововведения в архитектуру процессоров, появившиеся в четвертом поколении.

Блоки и интерфейс процессоров

Внутренний кэш

Процессор 486 имеет внутренний первичный кэш (Cache Level 1) размером 8 Кбайт, единый для данных и инструкций. Кэш имеет 4-канальную наборно-ассоциативную архитектуру и работает на уровне физических адресов памяти. Кэш содержит 128 наборов по четыре строки размером по 16 байт каждая.

Строки в кэш-памяти выделяются только при чтении, политика записи первых процессоров 486 — Write Through (сквозная запись) — полностью программно прозрачная; более поздние модификации позволяют переключаться на политику Write Back (обратная запись).

Заполнение строки процессор старается выполнить самым быстрым способом — пакетным циклом с 32-битными передачами, но контроллер памяти, конечно, может и «умерить его пыл» — потребовать 16- или 8-битных обменов и отказаться от пакетного режима.

Выбор строки для замещения выполняется на основе анализа бит LRU (Least Recently Used) по алгоритму «псевдо-LRU». Выделение и замещение строк выполняется только для кэш-промахов чтения, при промахах записи заполнение строк не производится.

Кэширование каталогов страниц (TLB) в процессоре 486 отличается от 386- го только улучшением алгоритма замещения — здесь тоже реализован алгоритм псевдо-LRU.

Пакетный режим передачи данных

На смену конвейерной адресации предыдущих процессоров, начиная с процессора 486, введен режим пакетной передачи (Burst Mode). Этот режим предназначен для быстрых операций со строками кэша. Строка кэша процессора 486 имеет длину 16 байт, следовательно, для ее пересылки требуется четыре 32-разрядных шинных цикла. Поскольку использование кэша предполагает, что строка должна в нем присутствовать целиком, ввели пакетный цикл (Burst Cycle), оптимизированный для операций обмена внутреннего кэша с оперативной памятью. В этом цикле адрес и сигналы идентификации типа шинного цикла выдаются только в первом такте пакета, а в каждом из последующих тактов могут передаваться данные, адрес для которых уже не передается по шине, а вычисляется из первого по правилам, известным и процессору, и внешнему устройству. В пакетный цикл процессор может преобразовать любой внутренний запрос на множественную передачу, но при чтении его размер ограничен одной строкой кэша, а при записи в стандартном режиме шины в пакет может собираться не более 32 бит. Более поздние модели процессоров при работе с WB-кэшем при записи строк в память собирают в пакет четыре 32-битных цикла, но это уже работа в расширенном режиме шины 486-го процессора.

Пакетный цикл (рис. 3) начинается процессором так же, как и обычный: на внешней шине устанавливается адрес, сигналы идентификации типа цикла и формируется строб ADS#. В следующем такте передается первая порция данных, и, если она не единственная, сигнал BLAST# имеет пассивное значение. Если адресованное устройство поддерживает пакетный режим, оно должно ответить сигналом BRDY# вместо сигнала RDY# по готовности данных в первой же передаче данных цикла. В этом случае процессор продолжит цикл как пакетный, не вводя такта адресации-идентификации (с сигналом ADS#), а сразу перейдет к передаче следующей порции данных. Нормально о завершении пакетного цикла процессор сообщает устройству сигналом BLAST#, который выдается в такте последней передачи пакета. Если у процессора есть намерения собрать пакет, а устройство отвечает сигналом RDY#, данные будут передаваться обычными циклами. Введением сигнала RDY# вместо BRDY# внешнее устройство может в любой момент прервать пакетную передачу, и процессор ее продолжит обычными циклами. В идеальном варианте (без тактов ожидания) для передачи 16 байт в пакетном режиме требуется всего пять тактов шины вместо восьми, которые потребовались бы при обычном режиме обмена.

Рис. 3. Пакетный цикл чтения

Пакетный режим предполагает соблюдение одних и тех же правил формирования последующих адресов как процессором, так и внешним устройством (памятью). Во время пакетного цикла процессора 486 старшие биты адреса А[31:4] остаются неизменными (как и сигналы идентификации M/IO#, D/C# и W/R#). Изменяться могут только биты А[3:2] и сигналы ВЕ[3:0] (у процессоров с 64- битной шиной данных неизменны А[31:5], а меняются только А[4:3] и ВЕ[7:0]). Таким образом, один пакетный цикл не может пересекать границу строки кэша. Кроме того, имеется специфический порядок следования адресов в пакетном цикле, который определяется начальным адресом пакета (задается процессором) и разрядностью передач (задается устройством сигналами BS16# и BS8#). В табл. 1. приведен порядок следования адресов для 32-разрядных передач. Если во время пакетного цикла процессор обнаружит активность сигналов BS16# или BS8# до того, как перейти к следующему адресу (согласно таблице), будут завершены текущие 32-битные циклы. Так, например, при начальном адресе 4 и введении сигнала BS16# порядок адресов в пакетном цикле будет 4-6-0-2-С-Е-8-А. Поскольку пакетный режим поддерживается обычно только оперативной памятью (вместе со вторичным кэшем), разрядность которой стараются не усекать, на практике преобразование последовательности адресов в 8- или 16-битные передачи вряд ли где используется.

Таблица 1. Последовательность адресов в пакетном цикле 486
Первый адрес Второй адрес Третий адрес Четвертый адрес
0 4 8 C
4 0 C 8
8 C 0 4
C 8 4 0

Приведенный порядок чередования (interleaving) адресов в пакетном цикле характерен для всех процессоров Intel и совместимых с ними, начиная с 486-го. Он оптимизирован для двухбанковой организации памяти, подразумевающей чередование банков, используемых в соседних передачах пакетного цикла.  В процессорах с 64-битной шиной данных идея чередования та же, но значение адресов просто удваивается. С точки зрения памяти у каждой микросхемы во время пакетного цикла могут изменяться только два младших бита адреса (независимо от разрядности шины данных процессора). Данный порядок чередования поддерживает любая память с пакетным режимом: динамическая BEDO DRAM, SDRAM и статическая Sync Burst SRAM, РВ SRAM. Процессоры других семейств (например, применяемые в MAC, POWER PC) используют линейный (linear) порядок адресов в пакете. Микросхемы пакетной памяти обычно имеют входной сигнал, задающий порядок адресов для конкретного применения.

Процессор 486 может использовать пакетный цикл для любых передач, если требуемые данные вписываются в принятую структуру пакета. При считывании максимальная длина пакета не может превышать 4x32=128 бит, а при записи в стандартном режиме шины — только 32 бит. Таким образом, при записи в стандартном режиме действительно пакетным может быть только цикл, состоящий из неполноразрядных передач. Если очередная требуемая порция данных не вписывается в правила формирования пакета, она будет передана обычными (не пакетными) шинными циклами.

Во время пакетного цикла, как и в обычном цикле, темп обмена (число тактов ожидания) задается устройством: оно вводит сигнал BRDY# по готовности данных (в обычных циклах для этой цели используется сигнал RDY#). Временная диаграмма пакетных циклов обращения к памяти (главным образом, чтения) является основной характеристикой производительности памяти компьютера. Ее описывают числом тактов системной шины, требуемых для каждой передачи пакета. При этом, естественно, оговаривают и саму частоту. Так, например, для динамической памяти BEDO-50 недостижимый идеал — цикл 5-1-1-1 на частоте 66 МГц.

Математический сопроцессор

В Intel 486 был использован встроенный математический сопроцессор (англ. Floating Point Unit, FPU). Вообще, это был первый микропроцессор семейства x86 со встроенным FPU. Встроенный FPU был программно совместим с микросхемой Intel 80387 — математическим сопроцессором, применявшимся в системах с процессором 80386. Благодаря использованию встроенного сопроцессора удешевлялась и ускорялась система за счёт уменьшения общего числа контактов и корпусов микросхем.

Буфера отложенной записи

Процессор 486 имеет четыре внутренних буфера для операций записи. Если во время внутреннего запроса процессора на запись все буфера свободны и шина не занята, запись выполняется сразу без буферирования. Если шина занята, запрос направляется в буфер, занимая для записи только один внутренний такт, а из буфера данные выгружаются в оперативную память или устройства ввода- вывода по мере освобождения внешней шины. Внешние операции записи из буферов будут производиться в том же порядке, что и поступившие запросы. Однако если при наличии неосвобожденных буферов появится запрос на чтение памяти, он может быть обслужен и раньше, чем удовлетворятся предшествующие ему запросы на запись. Это изменение последовательности может произойти только в том случае, если все запросы записи в буферах связаны с кэш-попаданиями, а запрос на чтение относится к кэш-промаху. Только в этом случае процессор может смело менять порядок операций, но только один раз до тех пор, пока не освободятся все буфера записи. Больше одного раза менять порядок в общем случае нельзя, потому что считанные данные могут заместить модифицированную строку кэша, из которой обновленная информация как раз и ожидает в буфере очереди на запись в основную память. В таком случае вторая попытка изменения последовательности может нарушить целостность данных.

Для операций ввода-вывода изменение порядка невозможно. Чтение ввода- вывода никогда не может обгонять запись в память (иначе отказались бы работать многие периферийные устройства). Одиночные операции вывода не буферируются с тем, чтобы дать устройствам возможность своевременно (для программы) сообщить о своей реакции на запись в порт (вызвать аппаратное прерывание или цикл аннулирования строки). Однако способы введения программной задержки (I/O Bus recovery time) между одиночными операциями вывода для процессора 486 отличаются от предшествующих: здесь команда JMP, ранее безусловно приводящая к генерации внешнего цикла обращения к памяти скорее всего будет обслужена из внутреннего кэша, и желаемой задержки не произойдет. Надежным способом введения внешнего цикла шины между циклами вывода является явная операция чтения некэшируемой области памяти. Эта операция будет выполнена только после завершения предыдущего цикла вывода, а последующая операция вывода начнется только по завершении этого чтения.

Операции блочного вывода, вызванные инструкцией REP OUTS, будут использовать буфера (но их порядок не будет нарушен).

Интерфейс процессоров 486

Процессоры 486 исполняются в корпусах PGA-168, или PGA-169, PQFP, или SQFP. Начиная с процессоров 486 в системных платах PC стали широко применяться ZIF-сокеты (Zero Insert Force Socket) — «разъемы с нулевым усилием вставки», предназначенные для установки процессоров в корпусах PGA со штырьковыми выводами. Унификация расположения выводов процессоров одного класса и наличие конфигурационных переключателей позволяет пользователю заменять старые процессоры на более мощные модификации. Легкость установки требуемого процессора и последующей его замены на более совершенные модели позволяют выполнять эту операцию даже конечным пользователям. Для процессоров 486 стали выпускать системные платы, рассчитанные на различные модификации и тактовые частоты — своеобразный конструктор «собери сам».

Процессоры 487SX выпускались в корпусах PGA-169, имеющих матрицу 17x17. Дополнительный вывод не нес электрических функций, а использовался как чисто механический ключ для обеспечения правильной ориентации в гнезде сопроцессора. Вывод В14 (МР — Math Present) процессора 487SX использовался для сигнализации присутствия сопроцессора в гнезде. Его постоянный низкий (активный) уровень сигнала отключал основной процессор (сигналом BOFF#). Системные платы с установленным процессором и гнездом для сопроцессора широкого распространения (особенно в нашей стране) не получили, их вытеснили платы с единственным ZIF-сокетом. Вид корпуса PGA-168 и 169 приведен на рис. 4.

Для установки процессоров 486 был разработан сокет 1, имеющий 169 контактов матрицы 17x17. Разводка выводов процессоров в корпусах PGA-168 и PGA-169 различается только положением выводов сигналов UP# и FERR#. В сокетах гнезда А13 и С14 (сигнал FERR#) соединяются вместе, что позволяет устанавливать в них процессоры в обоих типах корпусов, а гнезда В14 и АН (сигнал UP#) обычно не используются. Гнездо В14 может использоваться как сигнал TMS для выбора режима тестирования по интерфейсу JTAG, который реализован не во всех моделях 486. Приведенная нумерация контактов относится к сокету 1 с матрицей выводов 17x17. 

Рис. 4. Процессоры 486 в корпусах PGA-168 и 169

Процессоры 486 могут быть установлены и в сокеты 2, 3 или 6, имеющие матрицу 19x19, внешние рады которой не используются процессорами в корпусах PGA-168 и 169. При этом внутренние три ряда контактов по назначению совпадают с разводкой выводов процессора 486, но имеют смещенную нумерацию: ножка А1 корпуса PGA-168 и 169 попадает в гнездо В2 матрицы 19x19. Внешние ряды матрицы используются как дополнительные контакты питания процессоров Pentium OverDrive.

Сокет 3 отличается от сокета 2 возможностью использования питания 3 В. Малораспространенный сокет 6 имеет питание только 3,3 В. Сигналы, специфичные для процессоров с WB-кэшем, теоретически могут присутствовать (или отсутствовать) во всех этих типах сокетов. Вид сокетов представлен на рис. 5 и 6.

Рис. 5. Сокет 1 и рис. 6. Сокеты 2,3 и 6


Интерфейс процессоров 486 похож на интерфейс 386-х, но имеет некоторые новшества: пакетный режим передачи, механизм аннулирования строк и очистки кэша, расширенный арбитраж, контроль паритета данных и возможность 8-разрядного обмена. Для более поздних версий процессора, поддерживающих политику обратной записи первичного кэша, и процессоров со средствами SMM и управления энергопотреблением имеются дополнительные сигналы.


Синхронизация процессора осуществляется внешним сигналом CLK, все временные параметры отсчитываются относительно его положительного перепада. Внешняя тактовая частота процессором уже не делится пополам (как у 386-го), а может даже умножаться на коэффициент, который у разных моделей процессоров может принимать значение 1, 2, 2,5 и 3. При этом интерфейс внешней шины процессора всегда работает на внешней частоте (Bus Frequency), а частота тактирования вычислительного ядра (Core Frequency) может повышаться в несколько раз. Стандартными значениями внешней частоты являются 25, 33,33, 40 и 50 МГц. Коэффициент умножения задается уровнем логического сигнала на входе CLKMUL.. Для процессоров Аm5х86 высокий уровень (или неподключенный контакт) задает К=4, низкий — К=3. Для процессоров Intel DX4 и AMD DX4 высокий уровень (или неподключенный контакт) задает К=3, низкий — К=2, для процессоров DX2 низкий уровень задает К=2. Эти сигналы используются только в процессорах DX2 и DX4, и на системной плате обычно имеется джампер (или переключатель), задающий его потенциал. Установкой джампера в соответствующее положение можно выбрать требуемый коэффициент умножения, но, естественно, только в пределах возможностей данного процессора: DX2 не заставить умножать частоту на 3.

Шина адреса позволяет адресовать 4 Гб физической памяти (00000000- FFFFFFFFh) в защищенном режиме и 1 Мб из области младших адресов в реальном режиме. Сигналом A20M# можно включить принудительное обнуление линии А20 (как для внутреннего кэша, так и для внешних операций). Таким образом эмулируется циклический возврат адреса процессора 8086/88 (сигнал воспринимается только в реальном режиме). При выполнении инструкций ввода-вывода процессор адресуется к области в 64 Кб пространства ввода вывода (00000000-0000FFFFh).

Линии А[31:2] идентифицируют адрес с точностью до двойного слова, а в пределах этого слова сигналы ВЕ[0:3] непосредственно указывают, какие байты используются в данном цикле. Линии А[31:4], определяющие адрес строки внутреннего кэша, в циклах аннулирования работают на ввод.

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

Каждый байт шины данных имеет бит паритета DP[3:0]. Схемы паритета генерируют корректные контрольные биты в циклах записи, а в циклах чтения в случае ошибки паритета только вырабатывается сигнал ошибки на выходе РСНК#, никак не влияющий на работу процессора. Он может использоваться внешними схемами по усмотрению разработчика системной платы. Контроль четности (число единиц в байте вместе с битом паритета должно быть четным) выполняется для всех байт, участвующих в конкретном цикле.

Тип цикла локальной шины определяется сигналами M/IO#, D/C#, W/R# и LOCK# во время активности сигнала ADS# (табл. 2). Декодирование отличается от такового в 386-м положением специального цикла, который перемещен из комбинации 101 в 001.

ДЛЯ управления шинными циклами процессор имеет входные сигналы готовности RDY# и BRDY#. Они вырабатываются внешними схемами по их готовности к завершению шинного цикла (как и для процессора 386). Сигнал BRDY# вырабатывает устройства, поддерживающие пакетный режим обмена. На возможность пакетного продолжения начатого цикла процессор указывает выходным сигналом BLAST# (при его низком уровне нет перспектив пакетного продолжения).

Таблица 2.Декодирование шинных циклов процессора 486
M/IO# D/C# W/R# Тип Цикла
0 0 0 Подтверждение пребывания (INTA#)
0 0 1 Если BE2# = 0 - останов.(Halt), если ВЕ0# = 0 - отключение (Shutdown)
0 1 0 Чтение порта (IORD#)
0 1 1 Запись в порт (IOWR#)
1 0 0 Выборка кода (MEMRD#)
1 1 0 Чтение памяти (MEMRD#)
1 1 1 Запись в память (MEMWR#)

Сигналы арбитража локальной шины по сравнению с предыдущими процессорами дополнены выходной линией BREQ, управляемой процессором в любом состоянии. Этот сигнал указывает внешнему арбитру на то, что процессор имеет внутренний запрос на использование шины. Сигнал устанавливается одновременно со стробом ADS#. Если процессор в данный момент не управляет шиной (по сигналу HOLD, AHOLD или BOFF), то сигнал появится в тот момент, когда процессор выставил бы сигнал ADS#, если бы он управлял шиной. Сигнал BREQ обеспечивает эффективный арбитраж в многопроцессорных системах.

Для запроса передачи управления локальной шиной другому устройству используется сигнал HOLD. Когда процессор сочтет возможным передачу управления (в незаблокированных циклах — сразу по завершении текущего шинного цикла), он выставит сигнал подтверждения HLDA. Кроме того, имеется сигнал безусловного отключения процессора от шины — BOFF#. По этому сигналу процессор отдает управление шиной в следующем же такте, а текущий цикл может быть прерван. По окончании действия сигнала BOFF# процессор рестартует прерванный цикл, снова введя такт адресации и идентификации со стробом ADS#. Для внутренних узлов процессора это выглядит как введение тактов ожидания.

Сигнал AHOLD предназначен для захвата внешним контроллером только шины адреса для аннулирования строк внутренней кэш-памяти. По этому сигналу процессор в ближайшем такте переключает линии А[31:4] в режим ввода (адрес, выводимый процессором, воспринимается внешними схемами только в такте идентификации). Внешний контроллер устанавливает на шине адрес аннулируемой строки (в сущности, это адрес памяти, по которому производится запись со стороны внешнего контроллера). Аннулирование строки производится при наличии строба внешнего адреса EADS#.

К интерфейсу кэш-памяти относятся входные сигналы KEN# (разрешение кэширования памяти по текущему адресу), FLUSH# (аннулирование всех строк внутреннего кэша с предварительной выгрузкой модифицированных строк в случае применения обратной записи) и выходные сигналы PWT и PCD, управляющие внешним кэшированием. Процессоры, работающие в режиме обратной записи кэша, используют дополнительные сигналы INV, HITM#, CACHE# и WB/WT#.

Первые процессоры семейства 486-х в первичном кэше обеспечивали только политику сквозной записи (Write Through). Для них не было необходимости в реализации пакетного режима при записи. Запись внешним контроллером в кэшируемую память приводит только к аннулированию строки кэша, если ячейка, к которой обращается внешний контроллер, представлена и во внутреннем кэше. Для политики обратной записи интерфейс усложняется — необходимо обеспечение возможности выгрузки модифицированных строк кэша в основную память, если к памяти, отображаемой этими строками, обращается внешний контроллер шины. С этими различиями связаны понятия стандартного и расширенного режима шины процессора 486.

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

  • на сигнал FLUSH# процессор не отвечает специальным циклом подтверждения;
  • по сигналу FLUSH# процессор аннулирует все строки внутреннего кэша за 15-20 тактов CLK;
  • сигналы, специфичные для WB-кэша (BLEN#, EWBE#, WB/WT#, INV), игнорируются;
  • сигнал EADS# воспринимается в любой момент времени.

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

  • по сигналу FLUSH# процессор выполняет обратные записи модифицированных строк кэша, после чего отвечает специальным циклом подтверждения;
  • обратная запись модифицированных строк кэша, выполняемая по сигналу FLUSH# и инструкции WBINVD, может занимать около 2000 тактов CLK, система должна наблюдать за шиной, ожидая специального цикла подтверждения;
  • сигналы BLEN#, EWBE#, WB/WT#, INV воспринимаются процессором;
  • сигнал WB/WT# воспринимается в каждом цикле обращения к памяти, позволяя определять политику записи для каждой строки отдельно;
  • сигнал EADS# воспринимается только в состоянии HOLD, AHOLD или BOFF#;
  • сигнал PLOCK# не активен (постоянный высокий уровень).

Выбор режима шины осуществляется процессором по состоянию линии WB/WT# в момент окончания сигнала RESET, низкому уровню соответствует стандартный режим шины (сквозная запись). Сигнал внутри процессора резистором подтягивается к низкому уровню, так что на системной плате, не поддерживающей режим обратной записи, у которой контакт В-13 (Т-1 в сокетах 2 и 3) свободен, процессор всегда будет работать в стандартном режиме.

Сброс и аппаратные прерывания процессора по интерфейсу аналогичны предыдущим процессорам. Сигналы NMI и INTR высоким уровнем вызывают немаскируемые и маскируемые прерывания. Сигнал RESET сбрасывает процессор в исходное состояние, при его действии никакие другие входные сигналы, включая и HOLD, не воспринимаются. Если во время спада сигнала RESET удерживается высокий уровень на линии AHOLD, процессор выполнит внутренний тест BIST (Built-In Self Test). Дополнительный сигнал SRESET переводит процессор в исходное состояние, но с сохранением состояния кэша, буферов записи, регистров FPU и некоторых бит других регистров.

Встроенный математический сопроцессор не требует дополнительных сигналов для организации обмена данными, как это было в прежних процессорах. Однако для обеспечения совместимости с архитектурой IBM PC, в которой векторы прерываний, зарезервированные Intel под исключения процессора и сопроцессора, традиционно используются для иных целей, процессоры 486DX имеют пару сигналов FERR# и IGNNE#. Сигнал ошибки сопроцессора FERR# аналогичен сигналу ERROR# сопроцессора 387 — он вырабатывается в случае возникновения немаскированного исключения. Этот сигнал в РС заводится на вход запроса IRQ13 вторичного контроллера прерываний. Входной сигнал IGNNE# заставляет сопроцессор игнорировать ошибки (не вырабатывать внутренние исключения), при этом ошибка индицируется сигналом FERR# и может обрабатываться принятым в РС способом.

Процессор 486SX не может работать ни с каким внешним сопроцессором (нет внешнего интерфейса). Как уже было сказано выше, при установке «сопроцессора» 487SX существующий «основной» процессор полностью отключается.

См. также

  1. "i80486" материал из Википедии — свободной энциклопедии.