Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Архитектура процессоров




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

Real Address Mode — режим реальной адресации (или просто реальный режим — Real Mode), полностью совместимый с 8086. В этом режиме возможна адресация до 1 Мбайт физической памяти (на самом деле, как и у 80286, — почти на 64 Кбайт больше).

Protected Virtual Address Mode — защищенный режим виртуальной адресации (или просто защищенный режим — Protected Mode). В этом режиме процессор позволяет адресовать до 4 Гбайт физической памяти, через которые при ис­пользовании механизма страничной адресации могут отображаться до 16 тера­байт виртуальной памяти каждой задачи. Существенным дополнением является Virtual 8086 Mode — режим виртуального процессора 8086 (V86). Этот режим является особым состоянием задачи защищенного режима, в котором процессор функционирует как 8086. На одном процессоре в таком режиме могут однов­ременно исполняться несколько задач с изолированными друг от друга реаль­ными ресурсами. При этом использование физического адресного пространства памяти управляется механизмами сегментации и трансляции страниц.

Защищенный режим появился еще в процессоре 80286, но имел не все воз­можности, доступные в 32-разрядных процессорах. Попытки выполнения недопустимых команд, выхода за рамки отведенного пространства памяти и разрешенной области ввода/вывода контролируются сис­темой защиты.

Процессоры могут оперировать с 8, 16 и 32-битными операндами, строками байт, слов и двойных слов, а также с битами, битовыми полями и строками бит. Для обработки чисел в формате с плавающей точкой и выполнения транс­цендентных функций 32-разрядные процессоры предполагают использование мощного математического сопроцессора. У процессоров 486 и старше сопроцес­сор является встроенным (правда, в некоторых моделях его может и не быть). Для процессора 386 предназначен сопроцессор 80387, программно-совместимый с 8087 и 80287 (хотя они имеют и некоторые различия). Кроме сопроцессоров 80387 существуют более производительные FPU Cx83S87 и Cx83D87 фирмы Cyrix для 386SX и DX соответственно. Сопроцессоры Weitek 3167 и 4167 для 386DX еще более мощные, но они несовместимы с Intel, требуют специального гнезда и математического обеспечения (хотя возможно и универсальное гнездо для 387 и 3167). Поддержка сопроцессора Weitek при его использовании дол­жна быть разрешена опциями BIOS Setup.

 

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

Внутреннее кэширование обращений к памяти применяется в процессорах, на­чиная с 486. С кэшированием связаны новые функции процессоров, биты ре­гистров и внешние сигналы.

Процессоры 486 и Pentium имеют внутренний кэш первого уровня, в Pen­tium Pro и Pentium II имеется и вторичный кэш. Процессоры могут иметь как единый кэш инструкций и данных, так и общий. Выделенный кэш инструкций обычно используется только для чтения. Для внутреннего кэша чаще всего при­меняется наборно-ассоциативная архитектура.

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

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

Любой внутренний запрос процессора на обращение к памяти направляется во внутренний кэш. Теги строк набора, который обслуживает данный адрес, сравниваются со старшими битами запрошенного физического адреса. Если ад­ресуемая область представлена в строке кэш-памяти — случай попадания (Cache Hit), запрос на чтение обслуживается только кэш-памятью, не выходя на внеш­нюю шину. Запрос на запись модифицирует данную строку и в зависимости от политики записи на внешнюю шину выходит либо сразу (при сквозной записи), либо несколько позже при использовании алгоритма обратной записи.

В случае промаха (Cache Miss) запрос на запись направляется только на внешнюю шину, а запрос на чтение обслуживается сложнее. Если этот запрос относится к кэшируемой области памяти, выполняется цикл заполнения целой строки кэша — все 16 байт (32 — для Pentium) читаются из оперативной па­мяти и помещаются в одну из строк набора кэша, обслуживающего данный адрес. Если затребованные данные не укладываются в одной строке, заполняется и соседняя. Заполнение строки процессор старается выполнить самым быстрым способом — пакетным циклом с 32-битными передачами (64-битными для Pen­tium и старше).

Внутренний запрос процессора на данные удовлетворяется сразу, как только затребованные данные считываются из ОЗУ — заполнение строки до конца может происходить параллельно с обработкой полученных данных. Если в на­боре, который обслуживает данный адрес памяти, имеется свободная строка (с нулевым битом достоверности), заполнена будет именно она и для нее ус­тановится бит достоверности. Если свободных строк в наборе нет, будет заме­щена строка, к которой дольше всех не было обращений. Выбор строки для замещения выполняется на основе анализа бит LRU (Least Recently Used) no алгоритму «псевдо-LRU». Эти биты модифицируются при каждом обращении к строке данного набора (кэш-попадании или замещении).

Таким образом, выделение и замещение строк выполняется только для кэш-промахов чтения, при промахах записи заполнение строк не производится. Уп­равлять кэшированием можно только на этапе заполнения строк, кроме того, существует возможность их аннулирования — объявления недостоверными и очистки всей кэш-памяти. Если затребованная область памяти присутствует в строке внутреннего кэша, то он обслужит этот запрос.

Процессоры 386/387

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

адресацей и разрядностью (16/32) шины данных. Позже, в 1988 году фирмой Intel был выпущен вариант процес­сора Intel386™ SX с 16-разрядной шиной данных и 24-разрядной шиной адреса, а полноразрядный вариант получил официальное название Intel386™ DX. Как и в случае с 8088, это было сделано с целью удешевления компьютера, собранного на базе данного процессора. Это удешевление, конечно же, обернулось и сни­жением производительности компьютера примерно в полтора раза по сравнению с использованием DX на той же тактовой частоте. Процессоры Intel386™ SX и Intel386™ DX отличаются только внешней шиной данных и адреса, их програм­мные модели идентичны. В 1990 году появился процессор Intel386™SL со сред­ствами управления энергопотреблением, разработанный специально для портативных компьютеров. В комплекте с 386SL выпускалась БИС 82360SL, содержащая набор PC-периферии, контроллер сигналов шины ISA, контроллер динамической памяти и контроллер внешнего кэша размером 16-64 Кбайт с архитектурой прямого отображения либо 2- или 4-канальной наборно-ассоциа-тивной архитектурой.

В дальнейшем описании для краткости эти процессоры будем обозначать как 386, добавляя суффиксы SX, DX или SL при необходимости подчеркнуть различия.

Внутренняя очередь команд процессора 386 имеет размер 16 байт. Количест­во тактов, требуемое для выполнения инструкций, примерно такое же, как и у 80286. Предусмотрена возможность использования математического сопроцес­сора Intel387, программно-совместимого с 8087 и 80287. Возможно и использо­вание сопроцессора 80287, но его производительность ниже.

С появлением процессора 386 в PC появилась возможность более эффек­тивного использования памяти и стал широко применяться защищенный режим. Некоторые процессоры первых выпусков не обеспечивали полную работо­способность в 32-разрядном режиме, о чем должна была свидетельствовать мар­кировка «16 bit operations only». Попытка установить на компьютер с таким процессором 32-разрядную ОС обречена на неудачу (при установке Windows 95 будет сообщение об ошибке «В1»). Однако подавляющее большинство процес­соров 386 полностью отвечает спецификациям 32-разрядных процессоров, при­веденным выше.

Процессоры 486

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

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

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

  • Р4 Intel486 DX — полный вариант (CPU+FPU), кэш с прямой записью.
  • Р23 Intel486 SX — вариант без FPU, кэш с прямой записью.

· P23N Intel487 SX - аналог процессора 486 DX (FPU+CPU), устанавли­ваемый в гнездо сопроцессора и отключающий «основной» SX-процессор.

  • Intel486SL Enhanced — процессор со средствами SMM и возможностью остановки синхронизации (StopClock) для снижения энергопотребления.
  • Р24 Intel486DX2 — процессор с удвоением частоты. 4 P24D — улучшенный вариант IntelDX2 с WB-кэшем.

· Р24С IntelDX4 CPU — процессор с утроением частоты (OEM-версия), питание 5 В или 3,3 В может иметь средства SMM.

· Р23Т Intel486 SX (или DX) OverDrive.

Процессор Р24Т — Pentium®OverDrive®, хотя и имеет системную шину про­цессора Intel486, по архитектуре относится к классу Pentium.

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

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

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

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

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

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

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

Поделиться:





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





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...