Сколько гигабайт составляет размер адресного пространства для процессора 486

Обновлено: 06.07.2024

Процессор i386 имеет два режима работы - реальный (real mode) и защищенный (protected mode). В реальном режиме процессор i386 работает как быстрый процессор 8086 с несколько расширенным набором команд. В защищенном режиме процессор i386 может использовать все механизмы 32-х разрядной организации памяти, в том числе механизмы поддержки виртуальной памяти и механизмы переключения задач. Кроме этого, в защищенном режиме для каждой задачи процессор i386 может эмулировать 86 и 286 процессоры, которые в этом случае называются виртуальными процессорами. Таким образом, при многозадачной работе в защищенном режиме процессор i386 работает как несколько виртуальных процессоров, имеющих общую память.

Средства поддержки сегментации памяти:

Физическое адресное пространство процессора i386 составляет 4 Гбайта, что определяется 32-разрядной шиной адреса. Физическая память является линейной с адресами от 00000000 до FFFFFFFF в шестнадцатеричном представлении. Виртуальный адрес, используемый в программе, представляет собой пару - номер сегмента и смещение внутри сегмента. Смещение хранится в соответствующем поле команды, а номер сегмента - в одном из шести сегментных регистров процессора (CS, SS, DS, ES, FS или GS), каждый из которых является 16-битным. Средства сегментации образуют верхний уровень средств управления виртуальной памятью процессора i386, а средства страничной организации - нижний уровень. Средства страничной организации могут быть как включены, так и выключены (за счет установки определенного бита в управляющем регистре процессора), и в зависимости от этого изменяется смысл преобразования виртуального адреса, которое выполняют средства сегментации.

На рисунке 2.20,а показана структура данных в сегментном регистре. Эта структура называется селектором, так как предназначена для выбора дескриптора определенного сегмента из таблиц дескрипторов сегментов. Дескриптор сегмента описывает все характеристики сегмента, необходимые для проверки правильности доступа к нему и нахождения его в физическом адресном пространстве. Процессор i386 поддерживает две таблицы дескрипторов сегментов - глобальную (Global Descriptor Table, GDT) и локальную (Local Descriptor Table, LDT). Глобальная таблица предназначена для описания сегментов операционной системы и сегментов межзадачного взаимодействия, то есть сегментов, которые в принципе могут использоваться всеми процессами, а локальная таблица - для сегментов отдельных задач. Таблица GDT одна, а таблиц LDT должно быть столько, сколько в системе выполняется задач. При этом активной в каждый момент времени может быть только одна из таблиц LDT.

Из рисунка 2.20 видно, что селектор состоит из трех полей - 13-битного поля индекса (номера сегмента) в таблицах GDT и LDT, 1-битного поля - указателя типа используемой таблицы дескрипторов и двухбитного поля текущих прав доступа задачи - CPL. Разрядность поля индекса определяет максимальное число глобальных и локальных сегментов задачи - по 8K (213) сегментов каждого типа, всего 16 K. С учетом максимального размера сегмента - 4 Гбайта - каждая задача при чисто сегментной организации виртуальной памяти работает в виртуальном адресном пространстве в 64 Тбайта.


Рис. 2.20. Форматы селектора и дескрипторов данных и кода:

а - формат селектора; б - формат регистра GDTR;

в - формат дескриптора сегмента данных или кода

Механизм дескрипторов:

Дескриптор виртуального сегмента, состоит из нескольких полей, основными из которых являются поле базы - базового 32-разрядного физического адреса начала сегмента, поле размера сегмента и поле прав доступа к сегменту - DPL (Descriptor Privilege Level). Сначала процессор определяет правильность адреса, сравнивая смещение и размер сегмента (в случае выхода за границы сегмента происходит прерывание типа исключение - exсeption). Потом процессор проверяет права доступа задачи к данному сегменту, сравнивая значения полей CPL селектора и DPL дескриптора сегмента. В процессоре i386 мандатный способ определения прав доступа (называемый также механизмом колец защиты), при котором имеется несколько уровней прав доступа, и объекты какого-либо уровня имеют доступ ко всем объектам равного уровня или более низких уровней, но не имеет доступа к объектам более высоких уровней. В процессоре i386 существует четыре уровня прав доступа - от 0-го, который является самым высоким, до 3-го - самого низкого. Очевидно, что операционная система может использовать механизм уровней защиты по своему усмотрению. Однако предполагается, что нулевой уровень будет использован для ядра операционной системы, а третий уровень - для прикладных программ, промежуточные уровни - для утилит и подсистем операционной системы, менее привилегированных, чем ядро.

Таким образом, доступ к виртуальному сегменту считается законным, если уровень прав селектора CPL выше или равен уровню прав сегмента DPL (CPL ( DPL). При нарушении прав доступа происходит прерывание, как и в случае несоблюдения границ сегмента. Далее проверяется наличие сегмента в физической памяти по значению бита P дескриптора, и если сегмент отсутствует в физической памяти, то происходит прерывание. При наличии сегмента в памяти вычисляется физический линейный адрес путем сложения базы сегмента и смещения и производится доступ к элементу физической памяти по этому адресу.

В случае, когда селектор указывает на таблицу LDT, виртуальный адрес преобразуется в физический аналогичным образом, но для доступа к самой таблице LDT добавляется еще один этап, так как в процессоре регистр LDTR указывает на размещение таблицы LDT не прямо, а косвенно. Сам регистр LDTR имеет размер 16 бит и содержит селектор дескриптора таблицы GDT, который описывает расположение этой таблицы в физической памяти. Поэтому при доступе к элементу физической памяти через таблицу LDT происходит двукратное преобразование виртуального адреса в физический, причем оба раза по описанной выше схеме. Сначала по значению селектора LDTR определяется физический адрес дескриптора из таблицы GDT, описывающего начало расположения таблицы LDT в физической памяти, а затем с помощью селектора задачи вычисляется смещение в таблице LDT и определяется физический адрес нужного дескриптора. Далее процесс аналогичен преобразованию виртуального адреса с помощью таблицы GDT.


Дескриптор сегмента содержит еще несколько полей. Однобитное поле G определяет единицу измерения размера сегмента, при G = 0 размер определяется в байтах, и тогда сегмент не может быть больше 64 К, а при G = 1 размер определяется в 4К-байтных страницах, при этом максимальный размер сегмента достигает указанных 4 Гбайт. Поле D определяет тип адресации сегмента: при D = 0 сегмент является 16-битным (для режима эмуляции 16-битных процессоров i86 и i286), а при D = 1 сегмент является 32-битным. Кроме этого в дескрипторе имеется поле типа сегмента, которое в свою очередь делится на несколько полей (рисунок 2.21). Поле S определяет, является ли сегмент системным (S = 1) или пользовательским (S = 0). В свою очередь пользовательские сегменты делятся на сегменты данных (E=0) и сегменты кода (E=1). Для сегмента данных определяются однобитные поля:

ED - направления распространения сегмента (ED = 0 для обычного сегмента данных, распространяющегося в сторону увеличения адресов, ED = 1 для стекового сегмента данных, распространяющегося в сторону уменьшения адресов),

W - поле разрешения записи в сегмент (при W=1 запись разрешена, при W=0 - запрещена),

A - поле доступа к сегменту (1 означает, что после очистки этого поля к сегменту было обращение по чтению или записи, это поле может использоваться операционной системой в ее стратегии замены страниц в оперативной памяти).

Для сегмента кода используются однобитные признаки:

A - имеет смысл, аналогичный полю A сегмента данных,

R - разрешает или запрещает чтение из кодового сегмента,

C - бит подчинения, разрешает или запрещает вызов данного кодового сегмента из другого кодового сегмента с более низкими правами доступа.

В процессоре i386 существует большое количество системных сегментов, к которым в частности относятся системные сегменты типа LDT, шлюзы вызова подпрограмм и задач и сегменты состояния задачи TSS.

Таким образом, для использования чисто сегментного механизма процессора i386 операционной системе необходимо сформировать таблицы GDT и LDT, загрузить их в память (для начала достаточно загрузить только таблицу GDT), загрузить указатели на эти таблицы в регистры GDTR и LDTR и выключить страничную поддержку. Если же операционная система не хочет использовать сегментную организацию виртуальной памяти, то ей достаточно создать таблицу дескрипторов из одного входа (дескриптора) и загрузить базовые значения сегмента в дескриптор. Виртуальное адресное пространство задачи будет состоять из одного сегмента длиной максимум в 4 Гбайта.

Руководителем проекта по разработке микропроцессора Intel486 был Патрик Гелсингер (Patrick Gelsinger).

В мае 2006 года Intel заявила, что производство чипов 80486 прекратится в конце сентября 2007 года. И хотя для прикладных программ на персональных компьютерах этот чип уже долгое время являлся устаревшим, Intel продолжала производить его для использования во встраиваемых системах.

Содержание

Описание



Процессор базируется на той же архитектуре, что применялась, однако в нём имелось несколько значимых усовершенствований. Основные из которых:

  • Внутренний кеш первого уровня
  • Встроенный математический сопроцессор
  • Конвейерная обработка инструкций (команд)
  • Усовершенствованный модуль интерфейса шины (bus interface unit)
  • Укороченные циклы памяти (burst mode)
  • Использование буферов записи

Процессор обладал 32-битными шинами адреса и данных. Это требовало наличия памяти в виде четырёх 30-контактных или одного 72-контактного модуля SIMM.

Однако, в результате использования интегрированной кеш-памяти, существенно возросло количество транзисторов в процессоре и, как следствие, увеличилась площадь кристалла. Увеличение количества транзисторов привело к существенному увеличению рассеиваемой мощности. В среднем, рассеиваемая мощность увеличилась в 2 раза, по сравнению с аналогичными моделями серии Intel386. Во многом этому способствовала интеграция кеш-памяти, хотя были и другие факторы, но они не столь существенны. По этой причине процессоры Intel486 старших моделей уже требовали принудительного (активного) охлаждения.

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

Изначально все выпускавшиеся микропроцессоры Intel486 оснащались работающим сопроцессором, эти процессоры получили имя Intel486DX. Позже, в 1991 году, Intel решает выпустить процессоры с отключённым сопроцессором, и эти процессоры получили наименование Intel486SX. Системы построенные на этих процессорах могли оснащаться отдельным сопроцессором, например, Intel487SX или сопроцессором других производителей.

Конвейерная обработка инструкций

В Intel486 был усовершенствован механизм выполнения инструкций в несколько этапов. Конвейер процессоров серии Intel486 состоял из 5 ступеней: выборка инструкции, декодирование инструкции, декодирование адресов операндов инструкции, выполнение команды, запись результата выполнения инструкции. Использование конвейера позволило во время выполнения одной инструкции производить подготовительные операции над другой инструкцией. Это в значительной степени позволило увеличить производительность процессора.

Регистры и инструкции

В процессоре имеется тот же набор инструкции что и в Intel386, к которому было добавлено несколько дополнительных регистров, а именно, три 32-битных тестовых регистра (TR5, TR4, TR3). Также были добавлены новые флаги в регистре флагов (EFLAGS) и в других управляющих регистрах (CR0, CR3).

Вследствие включения сопроцессора в кристалл процессора, в Intel 486 можно обращаться и к регистрам FPU: регистры данных, регистр тегов, регистр состояния, указатели команд и данных FPU, регистр управления FPU.

Длина очереди инструкций была увеличена до 32 байт.

Модели

Начиная писать эту статью, я не знаю, стоит ли в нее вставлять всю серию из трех видео, посвященных обзору, тестированию и эксплуатации компьютера на базе самого быстрейшего классического 486 процессора, работающего на тактовой частоте 133 МГц. Да, у многих в голове сохранились воспоминания о топовой «четверке» Intel 486DX на 66 МГц или Intel 486DX4 на 100 МГц, но были и более быстрые процессоры от ее извечного конкурента – AMD.

Впрочем, в процессе написания статьи я подумаю и решу, ну а вы, по ходу ее прочтения это увидите.

Итак, четверное поколение x86 совместимых процессоров Intel было анонсировано 10 апреля 1989 года, то есть уже 30 лет назад. В тот год еще существовала такая страна, как СССР, в которой уже 4-й год шла «Перестройка», а в США никто и не мог мечтать о том, что через 3 года его основного геополитического конкурента не станет.

Я не думаю, что нам стоит говорить об архитектурных различиях между i386DX и i486DX, желающие могут посмотреть статью на Вики , а еще лучше на соответствующих специализированных ресурсах.

Отмечу лишь то, что для конечного пользователя отличие 4-го поколения x86 совместимых процессоров от 3-го поколения – это наличие в одном кристалле и классического x86 ядра и математического сопроцессора (FPU).

Да, в продаже были и процессоры i486SX с отключенным FPU, к которым можно было докупить i487DX, если это позволяла материнская плата, представлявший собой обычный 486DX, но с отличавшимся назначением некоторых выводов и одной лишней (169) ножкой.

Умеют же некоторые компании продать дважды одно и то же своим потребителям. Такой смекалке хотелось бы позавидовать, если бы это не было фактическим обманом.

Однако, возвращаясь к теме статьи, хочу добавить, что во времена господства на рынке процессоров 4-го поколения, когда уже вышли такие игровые хиты, как Wolfenstein 3D, Doom, Duke 3D, а на подходе был настоящий трехмерный Quake, очень быстро развивались и другие элементы персональных компьютеров.

Если первые 486-е были рассчитаны на использование в ПК с шиной ISA 8 и 16 бит, то спустя некоторое время появилась процессорная шина VLB (Vesa Local Bus). Шина VLB являлась классической для 486 компьютеров. На закате 486 платформы актуальными стали материнские платы с очень быстрой для своего времени шиной PCI. Возможностей PCI хватало даже для первых 3D ускорителей – 3Dfx Voodoo и nVIDIA Riva. Впрочем, на 486 компьютерах ее возможности были избыточными.

Итак, можно ли выжить на 486 компьютере в 2020 году? Для того чтобы это понять и увидеть насколько комфортно это делать, я рекомендую посмотреть видео ниже. Но если вы не сторонник просмотра видео, то вкратце я вам об этом ниже.

Начну с того, что даже по меркам самых простых процессоров 5-го поколения, например Intel Pentium 75-100 МГц или AMD K5, любые 486 процессоры – это, как одно время было модно говорить, настоящие «слоупоки».

Медленность процессоров 4-го поколения относительно 5-го поколения связана даже не столько с «отсталым» ядром, хотя и это имеет место, но еще и с узкой шиной памяти. Так, если на Pentium шина обмена данными с памятью – 64 бита (поэтому для этих ПК требовались парные модули оперативной памяти SIMM), то 486 имеет 32-битную шину.

При этом стоит отметить, что для относительно комфортной работы в Windows 95-98 скорости 486, работающего на 66-100 МГц вполне достаточно. Более того, в видео выше я тестировал компьютер на базе 486 процессора на Windows 2000 и не могу сказать, что он работал раздражающе медленно. Да, комфорт – понятие относительное, но для полноценной работы его возможностей вполне хватает. По крайней мере, работа с текстами, с простыми электронными таблицами, просмотр фотографий и т.д. доступны.

В общем и целом, даже в конце 2019 года и 2020 году, имея древний компьютер на базе «четверки», вполне себе можно использовать по назначению и даже играть на нем. Впрочем, если вам интересно в какие игры можно играть на 486-м, рекомендую посмотреть два видео ниже.

Первое посвящено непосредственно сборке и настройке компьютера, а второе попытке его заставить работать на тактовой частоте в 160 МГц.

Да, некоторые «четверки» работали на 160 МГц, хотя в это и сложно поверить. Мой опыт в этом направлении достаточно интересен.

Спасибо за внимание, если статья понравилась, ставьте лайки и подписывайтесь на канал! Все лучшее – впереди!

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

Содержание

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

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

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

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


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

Микроархитектура 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 (обратная запись).

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

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

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

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


Таблица 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 бит. Таким образом, при записи в стандартном режиме действительно пакетным может быть только цикл, состоящий из неполноразрядных передач. Если очередная требуемая порция данных не вписывается в правила формирования пакета, она будет передана обычными (не пакетными) шинными циклами.

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

В 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 стали выпускать системные платы, рассчитанные на различные модификации и тактовые частоты — своеобразный конструктор «собери сам».


Процессоры 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.



Синхронизация процессора осуществляется внешним сигналом 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.

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

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

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

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

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

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

Читайте также: