Смекни!
smekni.com

Обзор архитектуры процессоров Intel (стр. 1 из 2)

Обзор архитектуры процессоров Pentium, Pentium PRO, Pentium II фирмы Intel.

Процессор Pentium – P54.

Выпущен в 1993 г. Разрядность шины адреса – 32 бита, таким образом, максимальный

размер адресуемой памяти равен 4 Гб. Разрядность шины данных – 64 бита.

Процессоры P54 включают в себя:

Суперскалярная архитектура – два параллельно работающих конвейера обработки

позволяют одновременно обрабатывать до двух инструкций за такт. Конвейеры носят

названия U и V. U-конвейер (U-pipeline) – это АЛУ с полным набором инструкций,

он может исполнять все целочисленные инструкции и инструкции с плавающей точкой.

V-конвейер (V-pipeline) – АЛУ с ограниченным набором инструкций, может исполнять

только простые (выполняемые за один такт – MOV, INC, DEC и т.п.) инструкции –

черты RISC-архитектуры.

На кристалле интегрирован ассоциативный кэш первого уровня – L1 размером 16К,

который включает в себя раздельные кэши команд и данных (по 8К для команд и для

данных). Кэш может быть сконфигурирован как WT (write-trough) – со сквозной

записью либо с обратной записью –WB (write-back). Вкратце алгоритм работы WT и

WB выглядят так: при сквозной записи (write-through) каждая операция записи

одновременно выполняется и в строку кэша, и в ОЗУ. При этом, ЦП при каждой

операции записи вынужден ждать окончания относительно долгой записи в ОЗУ.

Алгоритм WB (обратная запись) позволяет уменьшить количество операций записи на

шине основной памяти. Если блок памяти, в который должна производиться запись

отображён и в кэше, то физическая запись сначала будет воспроизведена в эту

действительную строку кэша, и она будет отмечена как грязная (dirty) или

модифицированная, т.е. требующая выгрузки в ОЗУ. Только после этой выгрузки

строка станет чистой (clean) и её можно будет использвать для кэширования других

блоков без потери целостности данных. В ОЗУ данные переписываются только целой

строкой.

Каждый из кэшей включает в себя строки длиной 32 байта и содержит буфер TLB –

буфер преобразования линейных адресов в физические. Кэш поддерживает протокол

MESI, названный по определяемым им состояниям: Modified, Exclusive, Shared и

Invalid.

M-state – строка присутствует только в одном кэше и она модифицирована. Доступ к

этой строке возможен без регенерации внешнего цикла (по отношению к локальной

шине).

E-state - строка присутствует только в одном кэше, но она не модифицирована.

Доступ к этой строке возможен без регенерации внешнего цикла. При записи в неё

она перейдёт в состояние “M”.

S-state – строка может присутствовать в нескольких кэшах. Её чтение возможно без

регенерации внешнего цикла, а запись в неё должна сопровождаться сквозной

записью в ОЗУ, что повлечёт за собой аннулирование соответствующих строк в

других кэшах.

I-state – строка отсутствуует в кэше, её чтение может привести к генерации цикла

заполнения строки. Запись в неё будет сквозной и выйдет на внешнюю шину.

Процессор имеет встроенный усовершенствованный блок вычисления с плавающей

точкой. Быстрые алгоритмы полностью переработанного со времён 487-сопроцессоров

FPU обеспечивают более чем десятикратное увеличение скорости при работе с

основными операциями, включающими ADD, MUL, LOAD и т.п. по сравнению с 487.

Конвейерная организация позволяет обрабатывать две целочисленные операции и одну

(а при определённых условиях и две) операцию с плавающей точкой за такт.

Применена технология динамического предсказания ветвлений, для этого введены два

буфера предвыборки.

Введена возможность оперирования страницами размером 4 Мб в режиме страничной

переадресации.

Введено расширение архитектуры (относительно базовой архитектуры 32-х разрядных

МП) – добавлены новые регистры и команды. Сюда входит, например, инструкция

CPUID, позволяющая в любой момент времени получить сведения о классе, модели и

архитектурных особенностях данного ЦП. К расширению также относятся и регистры,

специфические для модели, их можно разделить на 3 группы:

тестовые регистры TR1...TR12. Они позволяют управлять большинством

функциональных узлов ЦП, обеспечивая возможность тестирования их

работоспособности: с помощью битов регистра TR12 можно запретить новые

архитектурные свойства (предскизиние и трассировку ветвлений, параллельное

выполнение инструкций), а также работу кэша L1.

средства мониторинга произволительности . Сюда входят таймер реального времени

(TSC) – 64 битный счётчик, работающий на инкремент с каждым тактом ядра ЦП,

для его чтения предназначена команда RDTSC; счётчики событий CTR0 и CTR1 – оба

разрядностью 40 бит, программируются на подсчёт событий различных классов,

связанных с шинными операциями, исполнением инструкций, работой конвейеров,

кэша и т.п.

регистры-фиксаторы адреса и данных цикла, вызвавшего срабатывание контроля

машинной ошибки.

Применено выявление ошибок внутренних устройств (внутренний контроль паритета) и

внешнего интерфейса шины, контроль паритета шины адреса.

В состав чипа введён APIC (Advanced Programmable Interrupt Controller) –

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

Реализована возможность построения многопроцессорных (максимальное количестно ЦП

– 2 штуки) систем двух типов: SMP – синхронная многопроцессорная обработка, и

FRC – функционально избыточная система.

Режим SMP (поддерживают процессоры Pentium начиная со второго поколения –

Pentium 75 и далее). Каждый ЦП выполняет свою задачу, порученную ему

операционной системой (Novell NetWare, OS/2, Windows NT, UNIX). При этом оба ЦП

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

каждый момент времени шиной может управлять только один процессор из двух, по

определённым правилам они меняются ролями. Для обработки аппаратных прерываний

традиционные аппаратные средства становятся непригодными, так как пежняя схема

подачи запроса INTR и передачи вектора в цикле INTA# ориентирована на

единственность ЦП. Для решения этой задачи в структуру Pentium начиная со

второго поколения был включён APIC. Этот контроллер имеет внешние сигналы

локальных прерываний (LINT) и трёхпроводную интерфейсную шину, по которой оба

процессора связываются с контроллером перываний на системной плате. Запросы

локальных прерываний обслуживает процессор, на выводы которого поступают их

сигналы; общие (разделяемые) прерывания приходят к процессорам в виде сообщений

по интерфейсу APIC. Таким образом, контроллеры APIC каждого из процессоров и

контроллер прерываний на системной плате, связанные интерфейсом APIC выполняют

маршрутизацию прерываний.

В режиме FRC оба процессора (один – Master, второй – Checker) выступают как один

логический. Основной процессор (Master) работает в обычном однопроцессорном

режиме. Проверяющий (Checker) выполняет все те же операции вхолостую, не

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

генерирует он сам. В случае обнаружения расхождения вырабатывается сигналл

ошибки IERR, который может обрабатываться как прерывание.

При построении многопроцессорной системы можно использовать поцессоры разного

степпинга, но частоты ядра должны совпадать (шина синхронизируется общим

сигналом).

Блок-диаграмма процессоров P54 расположена ниже:

Ниже приведена диаграмма мультипроцессорной системы:

Процессор Pentium MMX – P55C.

В 1996 году Intel разработала процессор с новым расширением, ориентированным на

применение в мультимедиа, 2D и 3D графику. Итак, P55C это:

Увеличенные кэши команд и данных – по 16К каждый.

Расширенная CMOS (E-CMOS) технология позволила расположить на кристалле 4.5

миллионов транзисторов.

Увеличено количество ступеней конвейера.

Улучшен способ предсказания ветвлений (он был позаимствован у Pentium PRO).

Количество буферов записи увеличено вдвое, их теперь четыре.

Для мультипроцессорной системы реализован только режим SMP, FRC исключён.

И, наконец, самое интересное! На кристалле расположен новый блок – блок MMX

(Multi Media Extention), который позволяет обрабатывать целочисленные данные

(определённого типа – нового) методом SIMD (Single Instruction Multiple Data) –

одна инструкция параллельно обрабатывает несколько данных. Для реализации блока

MMX были введены:

восемь дополнительных 64-битных регистра (ММ0...ММ7)

четыре новых целочисленных типа данных. Регистры MMX могут содержать упакованные

64-битные типы данных – упакованные байты, упакованные слова, упакованные

даойные слова и квадро-слова (смотри рисунок).

57 новых инструкций для одновременной обработки нескольких единиц данных

одновременно.

На самом деле, регистры MMX физически расположены в стеке регистров FPU, так что

новых регистров этот процессор не предоставляет, и чередование использования

программой инструкций FPU и MMX приводит к снижению эффективности работы,

связанному с необходимостью пересылок данных из стека в память и обратно. В

принципе, эффективность MMX вызывает некоторые сомнения, так как те функции, для

которых они целесообразны, с неоспоримо большим успехом выполняются графическими

акселераторами, которые уже стали обыденными J. К тому же для использования

новых команд необходима перекомпиляция ПО. Можно предположить, что введение MMX

является первой ступенью в маниакальном стремлении Intel перенести всю работу в

ПК на плечи центрального процессора, получившем дальнейшее распространение в

Katmai (Pentium III) в виде новых KNI (SSE)-команд (вспомним рекламу: Pentium

III – новые возможности Internet, хе-хе).

Блок-диаграмму процессора P55C можно увидеть здесь:

Процессор P6 – Pentium PRO.

Революционная вещь в своём роде. Выпущен где-то в районе 1995 года. Первые

экземпляры были выполнены по 0.6 мкм BiCMOS-технологии. Тройная суперскалярная

архитектура (конвейер имеет 12 уровней и поддерживает динамическое выполнение

инструкций) – возможно выполнение 3-х команд за такт.