Организация вычислительных систем

Анализ развития процессоров фирмы Intel: семейство Pentium

Показывать лекцию целиком

Организация и режимы работы процессоров семейства Pentium

С именем Pentium и Intel ассоциируется ряд новых технологий и стандартов. Необходимость повышенной скорости передачи данных привела к созданию шины PCI. Новые мультимедийные приложения и обработка в реальном масштабе времени с телевизионным качеством заставили пересмотреть интерфейс видеоконтроллера - появились технологии быстрого графического интерфейса DCI и вывода трехмерной графики 3D Render.

Процессор Pentium включает все особенности процессора Intel-486 и имеет ряд новых существенных черт, таких как:

  • суперскалярная архитектура, включающая два конвейера и позволяющая за один такт процессора выполнить более одной команды;
  • предсказание ветвлений в программе, что реализуется специальными логическими схемами, которые определяют точку передачи управления в программе и обеспечивают предварительную подготовку к выполнению определенных фрагментов программы;
  • конвейерное устройство для обработки данных с плавающей точкой (FPU);
  • раздельные кэш-памяти команд и данных емкостью 8 Кбайт каждая;
  • поддержка протокола обратной записи MESI (Modified/Exclusive/Shared/Invalid) для кэш-памяти данных;
  • 64-разрядная ШД и 32-разрядная ША;
  • конвейеризация машинного цикла;
  • контроль на четность адреса и данных;
  • внутренний контроль на четность;
  • режим управления системой (System Management Mode).
  • В процессор Pentium встроены средства самотестирования и средства отладки программного обеспечения на основе механизма контрольных точек для останова процессора при выборе команд и обращений к данным.

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

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

    Для предсказания ветвлений в программе процессор Pentium содержит два буфера предвыборки команд, один из которых обеспечивает предвыборку команд на линейном участке, а другой служит для предвыборки команд в соответствии с алгоритмом функционирования буфера целевого ветвления BTB (Branch Target Buffer). Это почти всегда позволяет осуществить предвыборку необходимой для выполнения команды.

    Каждая кэш-память является двухканальной множественно-ассоциативной и имеет специальный буфер ассоциативной трансляции TLB (Translation Lookaside Buffer) для преобразования линейных адресов в физические. Кэш-память данных обеспечивает режим обратной (Writeback) или сквозной (Writethrough) записи строка за строкой и поддерживает протокол MESI.

    Устройство управления памятью в процессоре Pentium поддерживает страницы до 4 Мбайт.

    Динамическое исполнение программ в процессоре Pentium Pro

    Процессор Pentium Pro совместим со всеми приложениями, созданными для семейства IA-32. Архитектура Pentium Pro в основном оптимизирована для работы с интенсивным использованием 32-разрядных регистров (ШД - 64-разрядная).

    Внутри корпуса микросхемы находятся два кристалла: процессор и кэш-память второго уровня емкостью 256 Кбайт.

    В Pentium Pro применено динамическое исполнение программы. Этот термин определил 3 способа обработки данных:

  • глубокое предсказание ветвлений (с вероятностью > 90% можно предсказать 10 = 15 ближайших переходов);
  • анализ потока данных (на 20-30 шагов вперед посмотреть программу и определить зависимость команд по данным или ресурсам);
  • опережающее исполнение команд (ЦП P6 может выполнять команды в порядке, отличном от их следования в программе).
  • SIMD-расширения архитектуры IA-32

    Многие алгоритмы работы с мультимедийными данными допускают простейшие элементы распараллеливания, когда одна операция может выполняться параллельно над несколькими числами. Такой подход называется SIMD - single-instruction multiple-data (одна инструкция - множество данных). Впервые эта технология была реализована в поколении P55 (микропроцессор Pentium MMX).

    MMX (Multi-Media eXtension) - это SIMD-расширение для потоковой обработки целочисленных данных, реализованное на основе блока FPU (с использованием регистров FPU). Набор инструкций MMX оперирует 64-битными регистрами MM0-MM7, являющимися псевдонимами для младшей 64-битной части регистров FPU R0-R7), так что одновременное выполнение команд MMX и вещественной арифметики невозможно. Инструкции MMX оперируют 64-битными типами данных:

  • упакованные байты (8 х 8 бит);
  • упакованные слова (4 х 16 бит);
  • упакованные двойные слова (2 х 32 бит);
  • четверное слово (1 х 64 бит).
  • Таким образом, одна инструкция MMX может выполнить арифметическую или логическую операцию над "пакетами" целых чисел, упакованных в регистрах MMX. Например, инструкция PADDSB складывает 8 байт одного "пакета" с соответствующими восьмью байтами другого пакета, фактически выполняя сложение восьми пар чисел одной инструкцией.

    Первый процессор P6 (Pentium Pro) был разработан до выхода Pentium MMX, поэтому в нем отсутствует эта возможность, однако в последующих моделях P6 данная технология закрепилась.

    В процессоре Pentium II соединены лучшие свойства процессоров Intel: производительность процессора Pentium Pro и возможности технологии MMX. Это сочетание обеспечивает существенное увеличение производительности процессоров Pentium II по сравнению с предыдущими процессорами IA-32-архитектуры.

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

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

    Развитием идеи SIMD для вещественных чисел стала технология SSE (Streamed SIMD Extensions), впервые представленная в процессорах Pentium III. Блок SSE дополняет технологию MMX восемью 128-битными регистрами XMM0-XMM7 и 32-битным регистром управления и состояния MXCSR. Регистры XMM0-XMM7 независимы, т.е., в отличие от регистров MM0-MM7, не отображаются ни на какие другие регистры процессора. Инструкции SSE оперируют 128-битным типом данных - "упакованные одинарной точности" (4 х 32 бит), содержащим 4 вещественных числа в формате IEEE-754 single precision. Инструкции SSE могут выполнять операции над "пакетами" вещественных чисел, т. е. одна инструкция выполняет операцию над пакетом из четырех пар вещественных чисел (рис. 6.1).

    (рис 6.1) Схема работы инструкции ADDPS (сложение "пакетов")

    В МП Pentium 4 была представлена технология SSE2, дополняющая SSE новыми типами данных и новыми инструкциями. Инструкции SSE2 также оперируют 128-битными регистрами XMM0-XMM7, но при этом добавлены пять новых типов данных:

  • упакованные двойной точности (2 х 64 бит IEEE-754 double precision);
  • упакованные байты (16 x 8 бит);
  • упакованные слова (8 х 16 бит);
  • упакованные двойные слова (4 х 32 бит);
  • упакованные четверные слова (2 х 64 бит).
  • Все команды MMX, SSE и SSE2 доступны в любом режиме работы процессора: реальном, защищенном, виртуальном.

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

    Повышение производительности IA-32 достигалось не только путем оптимизации конвейера команд и добавления исполнительных блоков, но и, например, внедрением кэш-памяти в ядро процессора. В семействе IA-32 встроенный кэш L1 размером 8 Кбайт впервые был реализован в процессорах Intel-486. В процессорах Pentium размер кэша был удвоен. Первые представители P6 (Pentium Pro) содержали также кэш L2 размером 256 или 512 Кбайт. Однако такое решение в то время оказалось слишком дорогим и невыгодным, поэтому в Pentium II была представлена технология Dual Independent Bus (DIB) - двойная независимая шина. Процессор выполнялся в виде картриджа с печатным краевым разъемом, на который выведена системная шина. На картридже размером 14х6,2х1,6см устанавливались микросхема ядра процессора (CPU Core), несколько микросхем, реализующих вторичный кэш, и вспомогательные дискретные элементы (резисторы и конденсаторы). Удаление вторичного кэша из кристалла процессора позволило использовать для кэш-памяти и памяти тегов микросхемы сторонних производителей, специализирующихся на выпуске сверхбыстродействующей памяти. Объем вторичного кэша определялся емкостью и числом установленных микросхем памяти. Для доступа к кэшу и для доступа к внешней памяти использовались раздельные шины. Такое же архитектурное решение использовалось в первых моделях Pentium III. Начиная с 1999 года (Pentium III Coppermine), кэш L2 вновь был возвращен внутрь кристаллов процессоров.

    Процессор Pentium 4 является 32-разрядным представителем семейства IA-32, по микроархитектуре принадлежащим к новому, седьмому (по классификации Intel) поколению. С программной точки зрения он представляет собой процессор IA-32 с очередным расширением системы команд - SSE2. По набору программно-доступных регистров Pentium 4 повторяет процессор Pentium III. С внешней, аппаратной точки зрения - это процессор с системной шиной нового типа, в которой кроме повышения тактовой частоты применены ставшие уже привычными принципы двойной (2х) и четырехкратной (4х) синхронизации, а также предпринят ряд мер по обеспечению работоспособности на ранее немыслимых частотах. Микроархитектура процессора, получившая название NetBurst, разработана с учетом высоких частот как ядра (>1,4 ГГц), так и системной шины (400 МГц). Название микроархитектуры указывает на сетевую направленность процессора: его мощь необходима для ресурсоемких мультимедийных Интернет-приложений.

    Процессор Pentium 4 является однокристальным. Кроме собственно вычислительного ядра, он содержит кэш-память двух уровней. Вторичный кэш, общий для инструкций и данных, имеет размер 256 Кбайт и разрядность шины 256 бита (32 байта), как и в последних процессорах Pentium III. Шина вторичного кэша работает на частоте ядра, что обеспечивает ее пропускную способность 32х1,4 = 44,8 Гбайт/с на частоте 1,4 ГГц. Вторичный кэш имеет ЕСС-контроль, позволяющий обнаруживать и исправлять ошибки. Первичный кэш данных имеет такую же высокую пропускную способность (44,8 Гбайт/с), но его объем сократился вдвое (8 Кбайт против 16 в Pentium III). Первичный кэш инструкций в привычном понимании отсутствует, его заменил кэш трассы (trace cache). В нем хранятся последовательности микроопераций, в которые декодированы инструкции. Здесь могут помещаться до 12К микроинструкций.

    Интерфейс системной шины процессора рассчитан только на однопроцессорные конфигурации, отсутствует также возможность избыточного функционального контроля (FRC). Интерфейс во многом напоминает шину Р6, протокол также ориентирован на одновременное выполнение нескольких транзакций. Принят ряд мер по обеспечению высокой пропускной способности. В процессоре Pentium 4 частота шины 400 МГц с "четырехкратной накачкой" (quad pumped) - тактовая частота системной шины составляет 100 МГц, но частота передачи адресов и данных выше. Новая информация по линиям с общей синхронизацией может передаваться на каждом такте с частотой 100 МГц. Для 2 и 4-кратной передачи используется синхронизация от источника данных. По шине адреса информация передается в режиме 2-кратной передачи, стробами являются два сигнала ADSTB0# и ADSTB1#. По спаду этих стробов передается адрес, а по фронту - информация о типе транзакции. Таким образом, в каждом такте шины (за 10 нс) передается и адрес, и тип транзакции (у Р6 на это требовалось 2 такта, что занимало 15-30 нс). По шине данных информация передается с четырехкратной частотой, для чего используются пары стробирующих сигналов DSTBp[0:3]# и DSTBn[0:3]# с периодом 5 нс (частота 200 МГц). Стробы сдвинуты относительно друг друга на 2,5 нс (половину своего маленького такта), синхронизация по их спадам и дает учетверенную частоту передачи.

    Разрядность шины данных, как и в предыдущих двух поколениях процессоров, составляет 64 бита (8 байт), что в режиме 4-кратной передачи дает максимальную пропускную способность 100х4х8=3,2 Гбайт/с. У процессоров Pentium III шина обеспечивала 133х8=1,06 Гбайт/с. Шина адреса имеет разрядность 36 бит, и это позволяет адресовать те же 64 Гбайт памяти, из которых кэшируются только первые 4 Гбайт.

    Исполнительные устройства МП (АЛУ) работают на удвоенной частоте, что дает возможность выполнять большинство целочисленных инструкций за половину такта. По сравнению с предыдущими поколениями IA-32, Pentium 4 содержит самый длинный конвейер команд, состоящий из 20 этапов и названный гиперконвейером. В связи с этой особенностью многие специалисты отмечают, что микроархитектура NetBurst будет иметь максимальную производительность исполнения предсказуемых (линейных и циклических) участков программы, характерных для приложений, на которые ориентирован Pentium 4. На непредсказуемо ветвящихся программах, к которым относятся, например, офисные приложения, длинный гиперконвейер оказывается менее эффективным, чем конвейер Р6, если бы тот удалось разогнать до частот 1,4 ГГц и выше. Чтобы частично компенсировать этот недостаток, были существенно оптимизированы механизмы спекулятивного исполнения и предсказания ветвлений.

    (рис 6.2) Микроархитектура NetBurst

    Архитектурные особенности процессоров семейства Pentium

    Процессоры семейства Pentium имеют ряд архитектурных и структурных особенностей по сравнению с предыдущими моделями микропроцессоров фирмы Intel. Наиболее характерными из них являются:

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

  • 32-разрядная внутренняя структура;
  • использование системной шины с 36 разрядами адреса и 64 разрядами данных;
  • раздельная внутренняя кэш-память первого уровня для команд и данных емкостью по 16 Кбайт;
  • поддержка общей кэш-памяти команд и данных второго уровня емкостью до 2 Мбайт;
  • конвейерное исполнение команд;
  • предсказание направления программного ветвления с высокой точностью;
  • ускоренное выполнение операций с плавающей точкой;
  • приоритетный контроль при обращении к памяти;
  • поддержка реализации мультипроцессорных систем;
  • наличие внутренних средств, обеспечивающих самотестирование, отладку и мониторинг производительности.
  • Инициализация ПЭВМ на базе i86-х

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

    Системное ядро ПК включает в себя:

  • ЦП;
  • 2-3-канальных таймера;
  • 2 контроллера прерываний с 8 уровнями каждый;
  • 2-4-канальных контроллера ПДП;
  • порты ввода/вывода;
  • CMOS-память;
  • часы реального времени;
  • контроллер клавиатуры;
  • минимум 64 Кб нижней памяти.
  • К модулям расширения относятся:

  • контроллеры накопителей;
  • накопители;
  • видеоадаптеры;
  • сетевые карты.
  • В соответствии с архитектурой ПК построен и механизм пробуждения. После включения питания выполняются следующие действия:

  • самодиагностика, идентификация, проверка процессора и сопроцессора;
  • проверка и инициализация системного ядра;
  • включение механизма "PlugPlay";
  • проверка и инициализация видеоадаптера;
  • проверка CMOS-памяти и часов реального времени;
  • определение объема и проверка оперативной памяти;
  • проверка клавиатуры и инициализация портов (LPT, COM);
  • инициализация дисковых накопителей;
  • проверка модулей расширения BIOS;
  • включение механизма APR;
  • вызов системного загрузчика;
  • загрузка ОС.
  • Все перечисленные выше действия выполняет центральный процессор ПК под управлением BIOS (Basic Input Output System), записанного в микросхемах ПЗУ. BIOS представляет собой подпрограммы, предназначенные для изоляции операционной системы (ОС) и прикладных программ от конкретной аппаратной реализации того или иного узла персонального компьютера. Поэтому все обращения ОС или прикладных программ переадресуются подпрограммам BIOS. Исключения составляют программы, напрямую работающие с аппаратурой.

    Встроенное программное обеспечение, кроме BIOS, содержит программы: POST (Power On Self Test - тест при включении питания), BIOS SETUP (программа установки параметров ПК и взаимодействия с CMOS-памятью, где эти данные хранятся). На этапе пробуждения ПК основное значение приобретает программа POST, обеспечивающая поиск, инициализацию и проверку компьютера.

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

    В последнее время BIOS часто хранится во flash-памяти, что позволяет пользователю обновлять (дополнять) версию BIOS без привлечения специальной аппаратуры.

    Вопросы для самоконтоля

  • Что понимают под суперскалярной архитектурой?
  • Какие команды могут быть спаренными?
  • Какие способы обработки данных объединяет термин " динамическое исполнение программы "?
  • В чем состоит внутренняя RISC-архитектура ЦП Pentium Pro?
  • В работе какого процессора наблюдается отклонение от принципов фон Неймана? В чем это проявляется?
  • В чем состоит преимущество использования двойной независимой шины?
  • Что нового появилось в архитектуре процессора Pentium III по сравнению с Pentium MMX?
  • Какие особенности имеет Net Burst-архитектура?
  • В чем состоит отличие кэш-команд ЦП Pentium IV от всех предыдущих?
  • Вернуться к учебному плану