Системы, удовлетворяющие МП-спецификации, обладают симметричностью памяти и ввода-вывода, что позволяет обеспечить расширяемость аппаратных средств, а также стандартизовать программные средства.
МП-спецификация определяет системную архитектуру на основе следующих компонентов аппаратуры: системные процессоры, контроллеры АРIС, системная память, шина расширения ввода-вывода.
Системные процессоры. В целях обеспечения совместимости с существующими программными средствами для PC/AT, спецификация основывается на процессорах семейства Intel 486 или Pentium.
Хотя все процессоры в МП-системе функционально идентичны, спецификация выделяет два их типа: загрузочный процессор (BSP) и прикладные процессоры (АР). Какой процессор играет роль загрузочного, определяется аппаратными средствами или совместно аппаратурой и BIOS. Это сделано для удобства и имеет значение только во время инициализации и выключения. BSP-процессор отвечает за инициализацию системы и за загрузку ОС. АР-процессор активизируется после загрузки ОС.
Контроллеры APIC. Данные контроллеры обладают распределенной архитектурой, в которой функции управления прерываниями распределены между двумя функциональными блоками: локальным и ввода-вывода. Эти блоки обмениваются информацией через шину, называемую шиной коммуникаций контроллера прерываний (ICC).
В МП-системе множество локальных блоков и блоков ввода-вывода могут коллективно использовать одну запись, взаимодействуя через шину ICC. Блоки APIC совместно отвечают за доставку прерывания от источника прерываний до получателей по всей МП-системе.
Блоки APIC дополнительно увеличивают расширяемость за счет разгрузки шины памяти от трафика прерываний, а также разделения между процессорами нагрузки по обработке прерываний.
Благодаря распределенной архитектуре, локальные блоки или блоки ввода-вывода могут быть реализованы в отдельной микросхеме или интегрированы с другими компонентами системы.
В системах, совместимых с МП-спецификацией, используется архитектура памяти стандарта AT. Вся память используется как системная за исключением адресов, зарезервированных под устройства ввода-вывода и BIOS.
МП-системы нуждаются в значительно более высокой пропускной способности шины памяти по сравнению с однопроцессорными. Требования возрастают пропорционально числу процессоров на шине памяти. Поэтому спецификация содержит рекомендации использовать кэши второго уровня, призванные снизить трафик по шине и реализующие следующие функции: стратегия обновления с обратной записью и протокол определения согласованности кэшей. От кэшей второго уровня и контроллеров шины памяти требуется, чтобы они были полностью прозрачны для программных средств.
Спецификация обеспечивает построение МП-систем на основе платформ PC/AT, отвечающих промышленным стандартам. В проектах могут быть использованы стандартные шины ISA, EISA, MCA, VL, PCI.
BIOS выполняет функции слоя, изолирующего особенности аппаратных средств от ОС и программных приложений. Стандартный однопроцессорный BIOS выполняет следующие функции: проверяет системные компоненты; строит таблицы конфигурации, используемые ОС; инициализирует процессор и всю остальную систему.
В многопроцессорных системах BIOS дополнительно выполняет следующие функции: передает информацию о конфигурации в ОС, которая идентифицирует все процессоры и другие компоненты МП-систем; переводит все процессоры и другие компоненты многопроцессорной системы в заданное состояние.
Одна из главных целей этой спецификации состоит в том, чтобы обеспечить возможность построения микроядерных ОС для многопроцессорных систем. Это достигается благодаря гибкому балансу между возможностями аппаратуры я BIOS. Посредством BIOS потенциально огромное разнообразие аппаратурных конфигураций уменьшается всего до нескольких вариантов, которые легко могут быть обработаны на начальной загрузочной фазе работы ОС.
Для того чтобы ОС могла работать на многопроцессорных платформах, аппаратные средства должны обладать определенным набором свойств. Их спецификация определяет способ реализации компонентов, перечисленных я предыдущем разделе.
Соответствие спецификации подразумевает несколько аспектов, которые перечислены ниже.
Спецификация МП-памяти основывается на стандартной карте памяти PC/AT размером до 4Gb.
Кэшируется вся память за исключением области, отведенной для описания регистров локального блока APIC. Все процессоры имеют доступ к главной памяти и участкам памяти, отведенным под ROM BIOS.
Часто для улучшения рабочих характеристик в МП-системах приходится использовать внешние кэши. Наличие и детали реализации внешних кэшей в спецификации MPS не рассматриваются. Однако, если предполагается их использовать, они должны отвечать определенным требованиям:
- Внешние кэши должны поддерживать согласованность между собой, с главной памятью, внутренними кэшами и другими важными устройствами.
- Процессоры должны обмениваться между собой надежным образом, что означает невозможность взаимовлияния в тех случаях, когда сразу несколько процессоров получают доступ к одной области памяти. Внешние кэши должна! гарантировать, что все блокированные операции видимы другим процессорам.
Для защиты целостности некоторых критических операций с памятью Intel-совместимые процессоры используют специальный сигнал. Разработчики системных программных средств должны использовать этот сигнал для управления доступом процессоров к памяти. .
Для гарантии АТ-совместимости блокировка некорректных операций с памятью в АТ-совместимых шинах в согласованной системе должна реализовываться строго в соответствии со спецификациями на шины.
Применяется при управлении устройствами ввода-вывода, чтобы операции с памятью и вводом-выводом выполнялись строго в запрограммированном порядке. Строгое упорядочивание операций ввода-вывода поддерживается процессорами.
Для оптимизации функционирования памяти процессоры и микропроцессорные наборы часто реализуют буферы записи и кэши обратной записи. Intel-совместимые процессоры гарантируют упорядоченный доступ процессоров ко всем внутренним кэшам и буферам записи.
В МП-совместимой системе прерывания управляются контроллерами APIC. Контроллеры APIC являются элементом распределенной архитектуры, в которой функции управления прерывания распределены между двумя функциональными блоками. Эти блоки обмениваются информацией через шину (ICC). Устройство ввода-вывода определяет появление прерывания, адресует его локальному блоку и посылает по шине ICC.
В МП-совместимой системе используется по одному локальному блоку на процессор. Число блоков ввода-вывода должно быть не менее одного.
Чтобы обеспечить расширение функций и внесение изменений в будущем, архитектура APIC определяет только программный интерфейс блоков APIC. Разные версии протоколов APIC могут быть реализованы с разными протоколами шины и спецификациями электрических сигналов.
В спецификации определены три режима прерывания:
1. Режим PIC эффективно обходит все компоненты APIC и заставляет систему функционировать в однопроцессорном режиме.
2. Режим виртуальной линии — использует APIC как виртуальную линию, в остальном совпадает с режимом PIC.
3. Режим симметричного ввода-вывода — позволяет работать с многими процессорами.
Первые два режима обеспечивают совместимость с PC/AT. В МП-совместимой системе должен быть реализован хотя бы один из этих режимов. ОС многопроцессорной системы загружается в одном из РС/АТ-совместимых режимов. Затем ОС переключается в многопроцессорный режим. В этом режиме требуется функционирование хотя бы одного блока ввода-вывода APIC. Прерывания ввода-вывода генерируются контроллером блока ввода-вывода. Все линии прерывания или замаскированы, или работают вместе с блоком ввода-вывода в смешанном режиме. Блок ввода-вывода имеет вход прерываний общего назначения, который можно программировать индивидуально для различных режимов работы. Распределение линий прерывания ввода-вывода делается конкретно для каждой системы.
Данный блок имеет два входа прерываний общего назначения, зарезервированных для системных прерываний. Эти входы можно программировать индивидуально для различных режимов работы.