Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция 20. Мультипроцессорные и избыточные системы




20.1. Мультипроцессорные и избыточные системы

В современных ПК встречаются варианты установки нескольких (двух или более) процессоров на одной системной шине. При этом возможны конфигурации с симметричной мультипроцессорной обработкой (Symmetric Multi-Processing, SMP) и контролем функциональной избыточности (Functional Redundancy Checking, FRC).

В конфигурации с контролем функциональной избыточности два процессора (пара Master и Checker) выступают как один логический. Основной процессор (Master) работает в обычном однопроцессорном режиме. Проверочный процессор (Checker) выполняет все те же операции «про себя», не управляя шиной, и сравнивает выходные сигналы основного (проверяемого) процессора с теми сигналами, которые он генерирует сам, выполняя те же операции без выхода на шину. В случае расхождения вырабатывается сигнал ошибки, который может обрабатываться как прерывание. FRC-контроль применяют только в особо ответственных системах. Поддержка FRC появилась, начиная с процессоров Intel Pentium, но не во всех последующих моделях; она имеется и у процессоров фирмы AMD.

Симметричные мультипроцессорные системы

Наиболее популярной целью объединения процессоров является симметричная мультипроцессорная oбpaбomкa (SMP). В системе SMP каждый процессор решает свою задачу, порученную ему операционной системой. В документе Intel «Multiprocessor Specification» (MPS) симметрия рассматривается в двух аспектах:

· симметрия памяти все процессоры пользуются общей памятью, работают с одной копией ОС;

· симметрия ввода-вывода все процессоры разделяют общие устройства ввода-вывода и общие контроллеры прерываний.

Система может быть симметричной по памяти, но асимметричной по прерываниям от ввода-вывода, если для обслуживания этих прерываний выделяется собственный процессор. В х86 симметрию по прерываниям обеспечивают контроллеры APIC. Аппаратная (физическая) реализация SMP может быть различной, здесь уже есть своя история:

· объединение нескольких физических процессоров на одной локальной шине процессоры Pentium, Р6, Pentium 4;

· подключение каждого процессора к системной плате (с общей памятью) выделенными шинами процессоры Athlon;

· подключение к каждому процессору собственного ОЗУ и их объединение с периферийными устройствами через HyperTransport процессоры Athlon-64, Opteron;

· размещение на одном кристалле нескольких логических процессоров с разделяемыми операционными блоками «гиперпотоковые» (hyperthreading) модели Pentium 4;

· размещение на одном кристалле нескольких независимых процессорных ядер с разделяемым вторичным кэшем мультиядерные модели Pentium 4.

Применение SMP требует поддержки со стороны BIOS, ОС и приложений (чтобы работать быстрее, они должны быть многопотоковыми). Поддержку SMP имеют такие ОС, как Novell NetWare, Microsoft Windows NT/2000x/XP и различные диалекты Unix. Цена мультипроцессорных версий ОС, как правило, значительно выше цены соответствующих однопроцессорных версий. Поначалу это становилось препятствием к применению гиперпотоковых (и мультиядерных) процессоров в обычных системных платах. Теперь достигнута договоренность о том, что число процессоров, на которое лицензируется ОС, соответствует числу физических (отдельно устанавливаемых) процессоров. Это открывает возможности широкого распараллеливания на уровне процессоров (ускорение работы CISC-процессоров х86 за счет микроархитектуры обходится все дороже).

Объединение процессоров на локальной шине

В первых мультипроцессорных системах на базе Pentium и Р6 процессоры объединялись с помощью общей локальной («фасадной», FSB) шины, через которую они связывались с чипсетом системной платы. В таких системах, в принципе, могут использоваться процессоры одной модели, но разного степпинга. Частоты ядра у них должны совпадать (внешняя частота у них, естественно, едина). Процессоры, объединенные общей локальной шиной, разделяют ресурсы и этой шины, и компьютера (память и периферийные устройства). В каждый момент времени шиной может управлять только один процессор, по определенным правилам они меняются ролями.

Симметричные системы имеют специальные механизмы арбитража доступа к локальной шине. Процессор – текущий владелец шины – отдает управление шиной другому процессору по его запросу только по завершении операции.

Интерфейс Pentium (начиная со второго поколения) позволяет на одной локальной системной шине устанавливать два процессора, при этом почти все их одноименные выводы просто объединяются. Роль конкретного процессора в системе фиксирована – она определяется внешними сигналами во время спада сигнала RESET. Один из процессоров назначается первичным (primary processor), или загрузочным (Bootstrap Processor, BSP), другой – вторичным (Dual Processor, DP). После сигнала RESET сразу начинает функционировать только первичный процессор (BSP), выполняя программный код инициализации. Вторичный процессор начинает функционирование только после приема соответствующего сообщения по шине APIC, посланного в ходе программы инициализации.

В процессорах Р6 заложены более развитые возможности SMP. Системная шина Р6, в отличие от локальной шины Pentium, изначально ориентирована на разделяемое управление множеством симметричных (до четырех на шине) и несимметричных (до восьми) агентов. Сокет 8 (Pentium Pro) и слот 2 (Pentium II Хеоп) позволяют объединять до четырех процессоров, слот 1 (Pentium II) допускает объединение не более двух процессоров. Какой из процессоров станет первичным, определяется по загрузочному протоколу – здесь нет жесткой аппаратной привязки роли процессора к его «географическому» адресу. Это позволяет повысить надежность системы SMP, поскольку любой процессор может без механического вмешательства во время инициализации взять на себя роль BSP. Протокол мультипроцессорной инициализации работает на шине APIC, он позволяет управлять инициализацией до 15 процессоров. Процессоры могут пользоваться содержимым «чужого» кэша без его предварительной выгрузки в основную память.

Гиперпотоковые и мультиядерные процессоры

В процессорах Pentium 4 (начиная с частоты 3,06 ГГц) и Хеоn применяется гиперпотоковая (hyperthreading) технология: один физический процессор одновременно может выполнять два потока инструкций х86. Для фон-неймановской машины это означает, что физический процессор (микросхема, устанавливаемая в сокет) имеет два комплекта архитектурных (прикладных и системных) регистров. В каждом комплекте имеется, естественно, свой указатель инструкций, «идущий» по своему потоку. Таким образом, речь идет о двух логических процессорах, физически расположенных на одном кристалле микросхемы. Эти логические процессоры совместно используют ряд общих микроархитектурных блоков физического процессора (вторичный кэш, исполнительные блоки арифметико-логического устройства). Такое разделение позволяет повысить эффективность функционирования исполнительных блоков: один даже «гиперконвейер» Pentium 4, исполняющий инструкции х86, плотно загрузить их работой не может. Конечно, логические процессоры не являются полностью независимыми – иногда приходится ожидать освобождения ресурса, занятого соседом.

Следующий шаг в этом направлении – мультиядерные процессоры, в которых на одном кристалле объединены общей шиной несколько функционально-законченных процессоров. Структурная схема мультиядерных процессоров Pentium 4 приведена на рис.20.1.

Рис.20.1. Структура мультиядерных процессоров Pentium 4:

а – с раздельными интерфейсами системной шины;

б – с объединенным интерфейсом

В них каждое ядро обладает собственным кэшем L2 (и, естественно, кэшем данных L1 и кэшем трасс). Размер кэша L2 каждого ядра может достигать 1-2 Мбайт. Интерфейс системной шины у двух ядер может быть как общим, так и раздельным. Двухъядерный процессор, предназначенный для использования в относительно небольших системах (размером до четырех ядер), фактически, является двумя отдельными процессорами, каждый со своим интерфейсным блоком (рис.16.1а). Их интерфейсные сигналы объединяются в общую системную шину на системной плате. Процессоры для более крупных систем содержат общий блок интерфейса системной шины (рис.16.1б), поскольку объединение на одной шине интерфейсов более чем двух процессоров для высокоскоростных шин вызывает ряд трудностей.

Заметим, что мультипроцессорные кристаллы в RISC-архитектурах начали применять намного раньше, причем в более мощных вариантах (с интегрированным контроллером памяти).

Фирма AMD долгое время для своих процессоров х86 механизм SMP не поддерживала, ограничиваясь поддержкой FRC (контроль избыточности). Первым из процессоров AMD, поддерживающих SMP, стал процессор Athlon. Использованная в нем шина EV6 является двухточечной, и для мультипроцессорных систем чипсет должен каждому процессору предоставлять собственную шину в монопольное владение. Таким образом, средством объединения нескольких процессоров является северный хаб чипсета системной платы. Основным разделяемым ресурсом становится контроллер памяти, расположенный в чипсете.

20.2. Совместимость и основные характеристики процессоров

Для всех процессоров, применяемых в PC, характерна принадлежность к единой архитектурной линии Intel Architecture (IA-32), в которой процессоры следующих моделей вбирают в себя все свойства и инструкции предыдущих. Правда, некоторые инструкции объявлены не архитектурными, а зависящими от модели, и их наличие и функционирование в следующих моделях не гарантируется. Состав регистров и флагов по мере «взросления» процессоров постоянно расширяется. Для совместимости программного обеспечения, написанного для ранних моделей процессоров, со следующими моделями следует осторожно обращаться с неиспользуемыми (зарезервированными) битами и регистрами:

· не изменять значения битов, не используемых в данном процессоре;

· гарантировать нечувствительность программ к значению этих битов;

· при загрузке регистров в зарезервированные биты записывать нули;

· не пытаться использовать эти биты для хранения каких-либо признаков.

Декларируемая обратная совместимость новых моделей с предыдущими означает, что программный код, написанный для процессора 8088, должен таким же образом исполняться и на 80386, и на Pentium 4, и на любых других совместимых процессорах. В большинстве случаев так это и происходит, но программы на более новых процессорах исполняются, естественно, быстрее. Здесь и кроется один из подводных камней совместимости. Дело в том, что большинство программ для PC не только выполняет вычисления, но и управляет различным внутренним и внешним оборудованием. При этом оборудование требует определенной последовательности действий и соблюдения временных характеристик. Устройства с невысоким быстродействием не могут, например, воспринимать последовательные обращения к ним, идущие в соседних тактах системной шины ввода-вывода. Программные способы организации задержек должны опираться на сведения о модели (и если есть возможность, о тактовой частоте) процессора, на котором исполняется код. Иначе возможны перекосы в обе стороны, которые могут приводить к разнообразным неприятным эффектам.

В IBM PC применялись процессоры х86 всех поколений, первые пять поколений уже практически не применяются. На сегодняшний день наибольший интерес представляют процессоры 6-8-го поколений.

Скорость работы процессора характеризуется частотой ядра, а также пропускной способностью канала доступа к памяти. Последняя характеристика приводится как частота FSB – частота передачи 8-байтных блоков данных. Для процессоров AMD со встроенным контроллером памяти приводится частота шины памяти DDR SDRAM (частота передачи блоков в два раза выше); разрядность шины памяти у обычных процессоров – 64 бита (8 байт), у особо мощных процессоров – 128 бит (16 байт). Пиковая пропускная способность обращений к памяти равна произведению разрядности передаваемых блоков и частоты их передачи. Заметим, что процессоры со встроенным контроллером памяти выгодно отличаются и меньшей задержкой доступа к памяти (по сравнению с доступом через системную шину). В параметрах кэша L1 указывается размер кэша инструкций (I) и кэша данных (D); для процессоров Pentium 4 (и его «родственников» с микроархитектурой NetBurst) вместо размера кэша инструкций указан размер кэша трассы. Буква Е после размера кэша L2 означает эксклюзивность: в кэше уровней 1 и 2 информация не дублируется. Параметр «НТ, МС» показывает число логических процессоров: НТ – признак гиперпотокового ядра, 2С – наличие двух ядер (2С НТ означает четыре логических процессора). Графа Е64 указывает на поддержку 64-битного расширения (х86-64 у AMD и ЕМ64Т у Intel). Расширения команд для блоков ММХ не указывается, поскольку поддерживается всеми современными процессорами. Для SSE указывается номер последнего из имеющихся расширений (SSE3 означает, что поддерживаются и SSE2, и SSE). Параметр «Бит NX» указывает поддержку запрета исполнения для страниц памяти.

Во встраиваемых PC-совместимых компьютерах (управляющих, инструментальных и т.п.) с успехом применяются (и до сих пор выпускаются) процессоры 4-5-го поколений. Они отличаются от своих более поздних собратьев меньшей ценой, низким энергопотреблением и более легким согласованием с 8-и 16-битной периферией.

Принадлежность процессора к какому-либо из первых шести поколений была вполне очевидной и могла легко определяться по сигнатуре, сообщаемой в инструкции CPUID. С новыми поколениями дело обстоит сложнее: в сигнатуре в поле семейства, которое раньше соответствовало поколению, указывается F – признак «расширенного» семейства. Есть подозрения, что эти сложности возникли от того, что 7-е (К7) и 8-е (х86-64) поколения фирма AMD ввела раньше фирмы Intel. Возможно, от понятия «поколение» придется в будущем отказаться.

Контрольные вопросы

1. Объединение процессоров на одной локальной шине.

2. Симметричная мультипроцессорная обработка (режим SMP).

3. Гиперпотоковые и мультиядерные процессоры в РС.




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 1291; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.025 сек.