Смекни!
smekni.com

Многопроцессорные системы Операционные системы UNIX (стр. 2 из 7)

Возрождение многоядерности произошло благодаря инженерам корпорации Digital Equipment. Во второй половине 90-х задумались о многоядерности в микропроцессорах; это произошло при переходе процессора от Alpha 21164 (EV5) к Alpha 21264 (EV6). Тогда исследователям удалось установить две важные закономерности, распространяющиеся на процессоры. Во-первых, оказалось, что для линейного роста производительности монолитных (одноядерных) процессоров требуется обеспечить квадратичный рост числа транзисторов. Во-вторых, как следствие, также нелинейно возрастет сложность проектирования. Элементарное рассуждение подсказывает, что суммирование производительности нескольких ядер даст ту же совокупную производительность, что и одно ядро при меньшем числе транзисторов. Вопрос в том, как объединить мощности отдельных ядер, в этом состоит коренная проблема многоядерности. Реакцией на обнаруженные проблемы стал проект Piranha, предполагавший создание 8-ядерного процессора, где каждое ядро должно было иметь отдельную кэш-память для команд и данных, для совместной работы процессоры объединялись коммутатором. Однако после перехода в ведение Compaq проект Piranha был похоронен, процессор так и не был реализован.

Параллельно с проектом Piranha группа исследователей из Стэндфордского университета во главе с Кунле Олокотуном работала над «многоголовым процессором» Hydra. В качестве ядра использовался процессор MIPFS 4600. Работа дала хорошие результаты. Впоследствии Sun Mirosystems купила эту компанию и, заменив ядро MIPFS 4600 на UltraSPARC II и увеличив число ядер вдвое, выпустила экспериментальный процессор Niagara, получивший в серии наименование UltraSPARC T1.

Успеху Niagara способствовало то, что в Sun велась собственная разработка двухъядерного процессора MAJC 5200, где каждое ядро способно обрабатывать четыре потока команд. Процессор UltraSPARC T1 является конвергенцией Hydra и MAJC 5200.

У IBM разработки многоядерных процессоров заметно связаны с производством игр. Так, процессор Xenon предназначен для игровой консоли. Другой проект, Cell, включает двухпотоковое ядро SMT Power и восемь ядер, которые называют синергетическими процессорными элементами (Synergistic Processing Element, SPE), работающими по принципу SIMD. Основное ядро Power выполняет команды из системы команд PowerPC, поддерживая специализированную систему команд SPE. С очевидным опозданием свои предложения сделали корпорации AMD и Intel: борьба на многоядерном поле стала и для производителей процессоров архитектуры x86 одним из самых актуальных вопросов сегодняшнего дня.


1.2. Общая структура многопроцессорной системы

При построении многопроцессорной архитектуры может использоваться одна из нескольких концептуальных моделей соединения вычислительных элементов.

На рис.2 показана общая структура МП-системы: связанная архитектура с общей памятью с распределенной обработкой данных и прерываний ввода-вывода. Она полностью симметрична; т. е. все процессоры функционально идентичны и имеют одинаковый статус, и каждый процессор может обмениваться с каждым другим процессором. Симметричность имеет два важных аспекта: симметричность памяти и ввода-вывода.

Память симметрична, если все процессоры совместно используют общее пространство памяти и имеют в этом пространстве доступ с одними и теми же адресами. Симметричность памяти предполагает, что все процессоры могут исполнять единственную копию ОС.

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

Рис.2 Архитектура многопроцессорной системы.

Основные компоненты

Системные процессоры. В целях обеспечения совместимости с существующими программными средствами, спецификация основывается на процессорах семейства Intel 486 или Pentium. Хотя все процессоры в МП-системе функционально идентичны, спецификация выделяет два их типа: загрузочный процессор(BSP) и прикладные процессоры(AP). Какой процессор играет роль загрузочного, определяется аппаратными средствами или совместно аппаратурой и BIOS. Это сделано для удобства и имеет значение только во время инициализации и выключения. BSP-процессор отвечает за инициализацию системы и за загрузку ОС. AP-процессор активизируется после загрузки ОС.

Контроллеры APIC. Данные контроллеры обладают распределенной архитектурой, в которой функции управления прерываниями распределены между двумя функциональными блоками: локальным и ввода-вывода. Эти блоки обмениваются информацией через шину, называемую шиной коммуникаций контроллера прерываний. Блоки APIC совместно отвечают за доставку прерывания от источника прерываний до получателей по всей МП-системе.

Системная память. В системах, совместимых с МП-спецификацией, используется архитектура памяти стандарта AT: вся память используется как системная за исключением адресов, зарезервированных под устройства ввода-вывода и BIOS.

МП-системы нуждаются в высокой пропускной способности по сравнению с однопроцессорными. Требования возрастают пропорционально числу процессоров на шине памяти.

Шина расширения ввода-вывода. Спецификация обеспечивает построение МП-систем на основе платформ PC/AT, отвечающих промышленным стандартам. В проектах могут быть использованы стандартные шины ISA, EISA, MCA, VL и PCI. BIOS выполняет функции слоя, изолирующего особенности аппаратных средств от ОС и программных приложений. В многопроцессорных системах BIOS выполняет следующие функции: проверяет системные компоненты; строит таблицы конфигурации, используемые ОС; инициализирует процессор и всю остальную систему; дополнительно: передает информацию о конфигурации в ОС, которая идентифицирует все процессоры и другие компоненты МП-систем; переводит все процессоры и другие компоненты многопроцессорной системы в заданное состояние. Одна из главных целей этой спецификации состоит в том, чтобы обеспечить возможность построения микроядерных ОС для многопроцессорных систем.

1.3. Спецификация аппаратных средств многопроцессорной системы

Для того чтобы ОС могла работать на многопроцессорных платформах, аппаратные средства должны обладать определенным набором свойств.

Конфигурация системной памяти. Спецификация МП-памяти основывается на стандартной карте памяти РС/АТ размером до 4 ГБайт.

Кэшируемость и доступность физической памяти для процессоров. Кэшируется вся память за исключением области, отведенной для описания регистров локального блока APIC. Все процессоры имеют доступ к главной памяти и участкам памяти, отведенным под ROM BIOS.

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

Для гарантии AT-совместимости блокировка некорректных операций с памятью в AT-совместимых шинах в согласованной системе должна реализовываться строго в соответствии со спецификациями на шины.

Упорядочение записей в памяти. Применяется при управлении устройствами ввода-вывода, чтобы операции с памятью и вводом-выводом выполнялись строго в запрограммированном порядке. Строгое упорядочивание операций ввода-вывода поддерживается процессорами.

Управление прерываниями. В МП-совместимой системе прерывания управляются контроллерами APIC используя по одному локальному блоку на процессор. Число блоков ввода-вывода должно быть не менее одного.

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

1. Режим PIC эффективно обходит все компоненты APIC и заставляет систему функционировать в Однопроцессорном режиме.

2. Режим виртуальной линии - использует APIC как виртуальную линию, в остальном совпадает с режимом PIC.

3. Режим симметричного ввода-вывода - позволяет работать с многими процессорами.

Отображение памяти APIC. В согласованной МП-системе все контроллеры APIC должны быть реализованы как описанные в памяти устройства ввода-вывода. Базовые адреса APIC находятся в верхней части адресного пространства памяти. Все локальные блоки отображаются в одних и тех же адресах, которые не подлежат коллективному использованию, а используются каждым процессором индивидуально. Контроллеры ввода-вывода отображаются так, чтобы обеспечить их совместное использование всеми процессорами(полную симметричность доступа).

Таймеры интервалов. Локальные блоки содержат 32-битный программируемый таймер с двумя независимыми входами. Таймеры блока ввода-вывода имеют один вход.

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

"Мягкая" загрузка только частично инициализирует процессор.

Таблицы конфигурации МП-систем ОС должна иметь доступ к информации о конфигурации МП-системы. Предусмотрено два метода передачи этой информации в ОС: минимальный, позволяющий задать конфигурацию посредством выбора одного из нескольких подразумеваемых наборов значений параметров аппаратуры; и максимальный, обеспечиващий высокую гибкость при проектировании аппаратных средств за счет произвольных установок.