"DVDXpert" - компас в мире Hi-Fi и High End техники и другой stereo и home cinema аппаратуры.
Симметричные мультипроцессорные системы☛Как это работает? ✎ |
До последнего времени практически все персональные компьютеры и рабочие станции имели в своем составе единственный процессор общего назначения. Стремление к снижению стоимости микропроцессоров и повышение их производительности побудило изготовителей компьютеров все шире внедрять в практику системы, мы отнесли к классу симметричных мультипроцессорных. Для этого класса характерны следующие отличительные признаки.
Наличие двух или более одинаковых или близких по характеристикам процессоров.
Процессоры имеют доступ к общей памяти, с которой они соединены или через общую системную магистраль, или через другой механизм обеспечения взаимодействия, но в любом случае время доступа к ресурсам памяти со стороны любого процессора примерно одинаков.
Процессоры имеют доступ к общим средств ввода-вывода или через один канал, или через разделительные каналы.
Все процессоры способны выполнять одинаковый набор функций (отсюда и определение симметричная система).
Весь комплекс руководствуется общей операционной системой, обеспечивающей взаимодействие между процессорами и программами на уровне задач, файлов и элементов данных.
Первые четыре признака в этом списке комментировать не нужно. Что касается пяти признаков, то в ней оказывается наиболее важное отличие SMP-систем от кластерных систем, в которых взаимодействие между компонентами осуществляется, как правило, на уровне отдельных сообщений или полных файлов. В SMP-системе возможен обмен информацией между компонентами и на уровне отдельных элементов данных и, таким образом, можно организовать более тесное взаимодействие между процессами. В SMP-системе распределение процессов или потоков задач между отдельными процессорами возлагается на операционную систему.
Наиболее существенные преимущества SMP-систем перед однопроцессорными заключаются в следующем.
Повышение производительности. Если-отдельные задачи программы могут выполняться параллельно, система, содержащая множество процессоров, будет работать быстрее, чем система с одним процессором того же типа (рис. 2.1).
Надежность. Поскольку все процессоры в SMP-системе однотипны и могут выполнять те же задачи, в случае отказа одного из них запланированную для него задачу можно передать другому процессору. Соответственно, выход из строя одного из процессоров не приведет к потере работоспособности всей системы.
Возможность функционального наращивания. Пользователь может повысить производительность системы, включив в него дополнительные процессоры.
Производство однотипных систем различной производительности. Производитель компьютеров предложить клиентам гамму систем с одинаковой архитектурой, но разной стоимостью и производительностью, будут отличаться количеством процессоров.
Нужно отметить, что все эти преимущества зачастую являются потенциальными и далеко не всегда на практике их удается реализовать.
Очень привлекательной для пользователей особенностью SMP-систем является ее прозрачность. Операционная система берет на себя все заботы по распределению задач между отдельными процессорами и синхронизации их работы.
1 Структурная организация SMP-систем
На рис. 2.2 показана обобщенная блок-схема мультипроцессорной системы. В составе системы есть два или более процессоры, каждый из которых имеет в своем распоряжении весь комплект необходимых узлов - устройство управления, АЛУ, регистры и блок кэша. Каждый процессор имеет доступ к главной памяти системы и устройств ввода-вывода через определенную подсистему взаимодействия. Процессоры могут обмениваться данными и сообщениями через главную память (для этого в ней выделяется отдельная область связи). Кроме того, в системе может поддерживаться и возможность непосредственного обмена сигналами между отдельными процессорами. Часто общая память организована таким образом, что процессоры могут одновременно обращаться к ее отдельных блоков. В некоторых вариантах систем процессоры располагают блоки локальной памяти и собственных каналов ввода-вывода кроме ресурсов общего пользования.
Варианты структурной организации мультипроцессорных систем можно классифицировать следующим образом:
системы с общей или распределенной во времени магистралью;
системы с многопортовым памятью
системы с центральным устройством управления.
Системы с общей магистралью
Использование общей магистрали в режиме разделения времени - это простейший способ организации совместной работы процессоров в SMP-системе (рис. 2.3). Структура магистрали и интерфейс практически те же, что и в однопроцессорной системе. В составе магистрали предусматриваются линии данных, адреса и управляющих сигналов. Для упрощения работы механизма прямого доступа к памяти со стороны модулей ввода-вывода принимаются следующие меры:
Адресация организуется таким образом, что по коду адреса можно различать модули при определении источников и приемников данных.
Арбитраж. Любой модуль ввода-вывода может временно стать руководителем магистрали. Арбитр с помощью некоторого механизма приоритетов обеспечивает решение конфликтов с появлением конкурирующих запросов на управление магистралью.
Разделение времени. Когда один из модулей получает право управления магистралью, другие модули блокируются и должны, если в этом есть необходимость, приостановить исполнение операций и ожидать, пока им будет предоставлен доступ к магистрали.
Эти функции, обычные для однопроцессорных систем, можно без особых изменений использовать и в мультипроцессорной системе. Основное отличие заключается в том, что в борьбе за право доступа к блоку памяти участвуют не только модули ввода-вывода, но и процессоры.
Магистральная структура связей имеет несколько преимуществ по сравнению с другими подходами к реализации подсистемы взаимодействия.
Простота. Этот вариант - самый простой, поскольку физический интерфейс, схема адресации, механизм арбитража и логика разделения ресурсов или магистра остаются, по существу, такими же, как и в однопроцессорной системе.
Гибкость. Систему с магистральной организацией связей достаточно просто перенастроить, добавив в нее новые процессоры.
Надежность. Магистраль является пассивной средой, и выход из строя любого подключенного к ней устройства не приводит к потере работоспособности системы в целом.
Основной недостаток системы с общей магистралью - ограниченная производительность. Все операции доступа к главной памяти должны проходить по единственному пути - через общую магистраль и, следовательно, быстродействие системы ограничена длительностью цикла магистрали. Частично с этой проблемой позволяет справиться оснащение каждого процессора собственным блоком кэш-памяти, что снижает количество обращений к главной памяти. Как правило, применяется двухуровневая организация кэша - кэш уровня L1 размещается в БИС процессора (внутренний кэш), а кэш уровня L2 - внешний.
Как мы уже не раз подчеркивали выше, применение кэш-памяти в мультипроцессорной системе порождает проблему согласованности или информационной целостности кэшей отдельных процессоров. Мы рассмотрим методы ее решения в разделе 3.
2 Системы с многопортовым памятью
Использование в SMP-системах многопортовым памяти позволяет организовать прямое обращение каждого процессора и модуля ввода-вывода к общему массиву информации, независимо от всех других (рис. 2.4). При этом каждый модуль памяти должен быть оснащен логической схемой решения возможных конфликтов. Для этого чаще портам назначаются определенные приоритеты. Как правило, электрический и физический интерфейс каждого порта идентичен и относительно устройства, подключенного к этому порту, модуль памяти можно рассматривать как однопортовый. Поэтому в схеме процессора или модуля ввода-вывода практически не требуется проводить никаких изменений для подключения к многопортовым памяти.
Существенно усложняется только схема блока общей памяти, но это окупается за счет повышения производительности системы в целом, поскольку каждый процессор имеет канал для доступа к информации общего пользования. Другое преимущество систем с такой организацией - возможность выделения областей памяти для исключительного использования определенным процессором (или группой процессоров). Это упрощает создание системы защиты информации от несанкционированного доступа и сохранения программ восстановления в областях памяти, недоступных для модификации другими процессорами.
Есть еще один существенный момент при работе с многопортовым памятью. При восстановлении информации в кэше любого процессора необходимо выполнять сквозной записи в главную память, поскольку не существует другого способа сообщить другие процессоры о внесении изменений в данные.
3 Системы с центральным устройством управления
Центральное устройство управления организует раздельные потоки данных между независимыми модулями - процессорами, памятью и модулями ввода-вывода. Контроллер может запоминать запросы и выполнять функции арбитра и распределителя ресурсов. На него также возлагаются функции передачи информации о состоянии управляющих сообщений и оповещения процессоров об изменении информации в кэшах.
Поскольку все логические функции, связанные с координацией работы компонентов системы, реализуются в одном центральном устройстве управления, интерфейсы процессоров, памяти и модулей ввода-вывода остаются практически неизменными. Это обеспечивает системе почти такую же гибкость и простоту, как и при использовании общей магистрали. Основной недостаток такого подхода - существенное усложнение схемы устройства управления, которые может привести к снижению производительности.
Структура с центральным устройством управления в свое время была широко распространена при построении многопроцессорных вычислительных комплексов на базе крупных машин, таких, как машины семейства IBM S/370. В настоящее время они встречаются очень редко.
4. Особенности операционных систем мультипроцессорных комплексов
Многопроцессорных вычислительном комплексе операционная система должна таким образом распределять работу между процессорами и другими ресурсами, чтобы пользователь был спасен от необходимости самостоятельно контролировать ресурсы. С точки зрения пользователя такой комплекс должен выглядеть как единая мультипрограммная система с одним процессором. И в однопроцессорной, и в SMP-системе в каждый момент времени могут быть активными несколько задач или процессов, и функция операционной системы заключается в том, чтобы спланировать выполнение задач и распределить между ними необходимые ресурсы. Пользователь может спроектировать программу таким образом, что она будет включать множество процессов или потоков в рамках отдельного процесса и при этом никак не учитывать, будет ли эта программа выполняться в однопроцессорной или в SMP-системе. Итак, операционная система должна иметь все функции мультипрограммной системы, а также должна быть в обеспечить работой много процессоров. Отметим следующие ключевые вопросы, которые должны учитываться при проектировании операционной системы многопроцессорного комплекса. *
Параллельное выполнение одних и тех же функций при запросе конкурирующих процессов. Отдельные компоненты операционной системы должны обладать свойством реентерабильности, т.е. возможностью параллельного выполнения на нескольких процессорах одновременно. Когда несколько процессоров выполняют системные подпрограммы обращаются к одним и тем же системных данных (таблиц, управляющие структурами и т.п.), должны быть предусмотрены специальные средства, обеспечивающие правильность и точность системной информации.
Планирование может выполняться любым процессором комплекса, поэтому должны быть предусмотрены средства, предупреждающие появление конфликтов. Планировщик должен назначать процессы, готовые к выполнению, тем процессорам, свободные в данный момент.
Когда несколько активных процессов пытаются обратиться к общего поля памяти и разделяемых ресурсов ввода-вывода, необходимо обеспечить эффективную синхронизацию выполнения запросов.
Механизм управления памятью в мультипроцессорных комплексе должен обеспечивать решение всех задач, свойственных однопроцессорной системе, и дополнительно к ним поддерживать параллельную работу аппаратных модулей, в частности при использовании многопортовым памяти. Операционная система должна также заботиться и о координации работы механизмов страничного обмена различных процессоров, когда несколько процессоров работают с одной и той же страницей или сегментом памяти.
На операционную систему возлагается функция обеспечения работоспособности комплекса в случае выхода из строя одного из процессоров. При этом операционная система должна перераспределить задачи, которые выполнялись им, между другими процессорами комплекса и, соответственно, внести изменения в системных таблиц.
5 SMP-системы на базе больших вычислительных машин
В большинстве SMP-систем персонального пользования и рабочих станций для организации взаимодействия между компонентами используется системная магистраль (см. рис. 2.3). Весьма полезно рассмотреть альтернативный подход, применяемый в комплексах на базе больших компьютеров (мейнфреймов) семейства IBM S/390 . Блок-схема такого комплекса изображена на рис. 2.5. В семейство входят компьютеры различных классов - от однопроцессорных с единственной платой главной памяти до высокопроизводительных систем с десятком процессоров и четырьмя блоками главной памяти. В конфигурацию также включены дополнительные процессоры, выполняющие функции модулей ввода-вывода. Основные компоненты вычислительных комплексов на базе IBM S/390 следующие.
Процессор ПР - CISC-микропроцессор, в котором управление обработкой наиболее часто используемых команд реализовано аппаратно, а остальные команды выполняются с помощью микропрограмм. В состав БИС каждого ПР входит кэш уровня L1 объемом 64 Кбайт, в котором хранятся и команды и данные.
Кэш уровня L2 объемом 384 Кбайт. Блоки кэша L2 объединены по два в кластеры, причем каждый кластер поддерживает работу с тремя процессорами и обеспечивает доступ ко всему адресного пространства основной памяти.
Адаптер переключения магистрали-BSN (bus-switching network adapter), который организует связь блоков кэша L2 с одним из четырех блоков главной памяти. В состав BSN входит и кэш уровня L3 объемом 2 Мбайт.
Одноплатный блок главной памяти объемом 8 Гбайт. В состав комплекса входят четыре таких блока, обеспечивая общий объем главной памяти 32 Гбайт.
В этой структуре есть несколько особенностей, на которых стоит остановиться подробнее:
коммутируемая подсистема взаимосвязей;
совместно используемый кэш уровня L2;
кэш уровня L3.
У SMP-системах персонального пользования и рабочих станциях общепринятой является структура с единой системной магистралью (см. рис. 2.3). Впоследствии в этом варианте магистраль может стать узким местом, препятствующим дальнейшему наращиванию системы - добавлению в нее новых компонентов. Проектировщики систем IBM S/390 попытались справиться с этой проблемой двумя способами. Во-первых, они разделили подсистему главной памяти на четыре одноплатных блоки, оснастив каждый из них собственным контроллером, который способен с высокой скоростью обрабатывать запросы к памяти. В результате суммарная пропускная способность канала доступа к памяти увеличилось в четыре раза. Во-вторых, связь между каждым процессором (фактически, между его кэшем уровня L2) и отдельным блоком памяти реализована не в форме магистрали общего пользования, а, скорее, в форме двухточечной соединения - каждый связь подключает группу из трех процессоров через кэш L2 до модуля BSN. В свою очередь, BSN выполняет функцию переключателя, объединяет пять каналов связи (четыре из кэшами L2 и один с блоком памяти) - связывает четыре физических каналы в одну логическую магистраль передачи данных. Таким образом, сигнал, поступающий по каждому из четырех каналов, подключенных к кэшей L2, дублируется по другим трем каналам, и тем самым обеспечивается информационная целостность кешив.Звернемо внимание на то, что хотя в системе есть четыре отдельных блока памяти, каждый процессор и каждый блок кэша L2 оснащен только двумя физическими портами, через которые они связываются с подсистемой главной памяти. Такое решение выбрано потому что каждый блок кэша L2 может хранить данные только с половины всего адресного пространства памяти. Для обслуживания запросов всего адресного пространства используется пара блоков кэша, и каждый процессор должен иметь доступ к обоих блоков в паре.