SMP-архитектуры в маршрутизаторах. Архитектурные решения многопроцессорных систем. Защита переменной ядра для SMP

SMP-архитектуры в маршрутизаторах. Архитектурные решения многопроцессорных систем. Защита переменной ядра для SMP

04.04.2019

Владислав Шаров

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

Мультипроцессорная обработка используется на больших ЭВМ уже более 30 лет. Подобные системы состоят из набора совместно используемых запоминающих устройств и нескольких центральных процессоров, работающих под управлением одной копии ОС. Современные архитектуры, как правило, состоят из нескольких однородных микропроцессоров и массива общей памяти. Все процессоры в системе имеют доступ к любой точке памяти (обычно через шину и/или коммутатор). За распараллеливание процессов между процессорами отвечает ОС. Стандарт де-факто для построения многопроцессорных серверов на базе процессоров Intel Itanium 2 - архитектура SMP ccNUMA (Symmetric MultiProcessing with cache coherent Non Uniform Memory Access).

До недавнего времени симметричность в SMP относилась к роли процессоров в работе ОС: имелось в виду, что все процессоры могут "видеть" всю память и способны выполнять любую задачу, которую им назначает ОС. С появлением технологий с неоднородным доступом к памяти - NUMA (Non-Uniform Memory Access) производителям компьютерного оборудования потребовалось провести различие между системами с поддержкой NUMA и другими серверными архитектурами. Вообще говоря, NUMA - это архитектура памяти, используемая в многопроцессорных системах, где время доступа зависит от местонахождения памяти. Все процессоры могут "видеть" всю память, но конкретный процессор работает с собственной локальной памятью гораздо быстрее, нежели с нелокальной, которая, в свою очередь, будет локальной для другого процессора или разделяется между несколькими процессорами. NUMA, как и SMP, позволяет объединить вычислительную мощность множества процессоров, каждый из которых обращается к общему пулу памяти. Однако в этом случае для связи процессоров друг с другом они организованы в небольшие группы, или узлы. Например, 16-процессорный сервер может содержать четыре узла по четыре процессора. Каждый узел имеет собственный пул памяти.

Поскольку в традиционных системах время доступа ко всем модулям памяти в серверах было однородным или "симметричным", то такие системы обозначались и как "память с однородным доступом" - UMA (Unified Memory Access), и как симметричные мультипроцессорные системы - SMP. Последний вариант получил более широкое распространение. С точки зрения ОС, системы NUMA "симметричны", поскольку все процессоры имеют равные права, но с точки зрения аппаратных характеристик их нельзя считать SMP-системами.

Базовая архитектура SMP

Ключевое понятие многопроцессорных архитектур - узел. Он представляет собой вычислительную систему, состоящую из одного или нескольких процессоров, имеющую оперативную память и систему ввода-вывода (рис. 1). Узел характеризуется тем, что на нем работает единственная копия ОС. Симметричный многопроцессорный (SMP) узел содержит два или более одинаковых и равноправных процессора. Все процессоры имеют одинаковый доступ к вычислительным ресурсам узла. В качестве базы для построения SMP-систем чаще всего используются три системных решения: магистральная шина, масштабируемое когерентное соединение и коммутатор.

Рис. 1. Архитектура SMP.

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

На шине, используемой для серверов на основе процессоров Intel, каждый процессор может "следить" за любым другим и отслеживать запросы к памяти. Именно так реализуется когерентность кэш-памяти. Если один процессор обнаруживает, что другой обращается к памяти по какому-то из принадлежащих первому адресов (т. е. у него имеется самая свежая копия данных), то процессор отвечает на запрос и выгружает данные из своей кэш-памяти. При необходимости записать данные по адресу процессор запрашивает права на использование ресурса и оставляет их за собой до тех пор, пока он снова не выгрузит "устаревшие" данные обратно в память, или до тех пор, пока другой процессор не затребует эти права.

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

Этот подход оказался очень успешным в случае четырехпроцессорных серверов, однако ему присущ ряд ограничений, которые не позволяют применять его в среде с большим числом обрабатываемых транзакций. Другое ограничение данного подхода - низкая готовность. Отказ одного из компонентов может сделать шину недоступной для других. Определить, какой именно компонент вышел из строя, очень сложно, в особенности если нельзя запустить ОС, и тогда вся система выводится из эксплуатации на период тестирования и ремонта. Конструкции на основе технологии ccNUMA и неблокируемого коммутатора используют компоненты, которые можно изолировать, продиагностировать и в некоторых случаях восстановить, при этом остальные составляющие системы продолжают поддерживать работу ОС и приложений.

Для создания 16- или 32-процессорных систем предназначена технология SCI - масштабируемое когерентное межсоединение (Scalable Coherent Interconnect). Несколько четырехпроцессорных системных плат соединяются при помощи SCI и конфигурируются как одна большая многопроцессорная система. Хотя на первый взгляд она напоминает локальную сеть, на самом деле это не так. SCI - это двоично-последовательное кольцо, работающее с высокой скоростью и с очень малым временем латентности. Система выглядит как кластер, но таковым не является. Выполняется только одна копия ОС, которая "видит" единую, непрерывную, большую память, распределенную на все четырехпроцессорные платы. С точки зрения ОС это SMP-система, поскольку все процессоры имеют равную ответственность. Но очевидно, что доступ процессора к индивидуальным модулям памяти и к кэшированным процессорами данным несимметричен. Доступ процессора к удаленной памяти занимает в несколько раз больше времени в сравнении с доступом к локально хранящимся данным, т. е. это системы с неоднородным доступом к памяти.

Архитектура NUMA-Q

Считается, что один из прорывов в компьютерных технологиях связан с компанией Sequent (которая в 1999 г. была куплена корпорацией IBM). История ее такова: в 1983 г. в Портленде (шт. Орегон, США) восемнадцать бывших сотрудников компании Intel под руководством Кейси Пауэлла организовали компанию Sequel. Она ориентировалась на создание вычислительных архитектур для обслуживания ИТ в самых трудоемких сферах работы с деловой информацией: в оперативной обработке транзакций, в системах поддержки принятия решений и деловых коммуникациях. В начале 80-х, когда самые трудные задачи решались на мэйнфреймах, Sequel поставила своей целью создать вычислительную платформу, которая существенно превосходила бы возможности однопроцессорных систем, но при этом строилась на самых распространенных и недорогих процессорах от Intel.

Компания Sequel, переименованная в 1987 г. в Sequent Computer Systems, реализовала первую SMP-версию ОС Unix, обладающую независимой от процессора архитектурой; а в мае 1987 г. анонсировала первую компьютерную систему Symmetry (Unix SMP), масштабируемую до 30 процессоров Intel. Первая ОС SMP Unix компании Sequent называлась DYNIX и представляла собой развитие BSD 4.2. В 1990 г. Sequent выпустила новую версию ОС для своих машин на основе Unix System V; эта версия получила название DYNIX/ptx. На требования увеличить надежность систем Sequent ответила созданием в 1992 г. кластеров для Unix. Кроме того, Sequent небезуспешно решала одну из главных проблем архитектуры SMP - преодоление барьера масштабируемости, подняв планку с помощью архитектуры NUMA почти на порядок.

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

Обеспечение когерентности

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

Известны два основных класса протоколов когерентности кэш-памяти, один из которых строится на основе справочника (directory based). В этом случае информация о состоянии блока физической памяти содержится только в одном месте, называемом справочником (физически справочник может быть распределен по узлам системы). В протоколах наблюдения (snooping) каждая кэш-память, которая содержит копию данных некоторого блока физической памяти, имеет соответствующую копию служебной информации о ее состоянии. Централизованная система записей отсутствует. Обычно кэш-память расположена на общей (разделяемой) шине, и все ее контроллеры наблюдают за шиной (просматривают ее), чтобы определить, не содержат ли они копию соответствующего блока.

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

В отличие от классической архитектуры NUMA, при использовании кэш-когерентного доступа к неоднородной памяти - ccNUMA (cache coherent NUMA) все процессоры объединены в один узел (рис. 2), причем первый уровень иерархии памяти образует их кэш-память, а ccNUMA поддерживает когерентность внутри узла аппаратно. В системах ccNUMA распределенная память представляется единым адресным пространством. Не происходит никакого копирования страниц или данных. Нет программной передачи сообщений для синхронизации доступа. Есть просто единый массив памяти (хотя физически он состоит из отдельных частей). Аппаратная когерентность кэш-памяти означает, что не требуется никакого ПО для поддержки актуальности множества копий данных. Все это выполняется на аппаратном уровне так же, как в любом SMP-узле, с одним экземпляром ОС и множеством процессоров. В свою очередь NUMA-Q - это, по сути, реализация архитектуры ccNUMA компанией Sequent.

Рис. 2. Архитектура ccNUMA.

Элементарным блоком платформы NUMA-Q (рис. 3) служил квод (quad), в котором объединялись четыре процессора, блок разделяемой памяти и шина PCI с семью слотами. Несколько кводов можно было объединить для формирования более крупного одиночного SMP-узла с аппаратно-реализованной кэш-когерентностью. Кэш-когерентное соединение, устанавливаемое между шинами, называлось IQ-Link. Оно было практически полностью прозрачно для программ, подобно обычной кэш-памяти. В традиционном смысле память в каждом кводе не была локальной; скорее, это была одна треть адресного пространства физической памяти, имевшая собственный адресный диапазон. Адресная карта распределялась по памяти равномерно, при этом каждый квод содержал смежную часть адресного пространства. Например, если требуемый адрес находился за пределами диапазона локальной памяти квода, поиск распространялся на кэш-память IQ-Link, которая называлась удаленной. Доступ к ней осуществлялся с такой же скоростью, как и к локальной памяти квода. Если и в кэш-памяти IQ-Link данные не удавалось найти, отсылался запрос на шину IQ-Link. После того как требуемое значение загружалось из другого квода, оно сохранялось в удаленной кэш-памяти IQ-Link запрашивающего квода.


Рис. 3. Архитектура NUMA-Q.

CMP-архитектура

Корпорация Unisys (http://www.unisys.com) впервые обнародовала свои планы создания 32-процессорного сервера в 1997 г. А вот поддерживать и совершенствовать SMP-архитектуры на базе процессоров Intel компания начала еще в 1991 г. Ее фирменной разработкой стала СМР (Cellular MultiProcessing) - перестраиваемая симметрично-многопроцессорная архитектура, которая позволяла комбинировать традиционную мультипроцессорную архитектуру SMP и кластерные технологии.

Ячейки CMP - это процессорные элементы, называемые sub-pods, или сells. CMP проектировалась в расчете на 64-разрядный Itanium, однако задержки с выпуском этого процессора привели к тому, что первые версии CMP-серверов использовали 32-разрядный Pentium III Xeon. Одновременно Unisys позаботилась о возможном сосуществовании процессоров Xeon и Itanium в рамках одной CMP-системы. В настоящее время на базе CMP-архитектуры выпускается два семейства серверов ES7000 (рис. 4): Aries (32-разрядные процессоры) и Orion (64-разрядные).

Рис. 4. Сервер Unisys Orion 560.

Итак, в каждой процессорной ячейке CMP (рис. 5) установлено четыре процессора. Кроме имеющегося у каждого кристалла стандартной кэш-памяти 2-го уровня, в архитектуру элемента включена разделяемая между четырьмя процессорами кэш-память 3-го уровня TLC (Third Level Cache). Очевидно, что применение в CMP-серверах кэш-памяти 3-го уровня, имеющей большую емкость, способно существенно поднять производительность, особенно в случае бизнес-приложений, для которых характерен интенсивный обмен данными с оперативной памятью. Что касается оперативной памяти, то емкость блока MSU (Memory Storage Unit) наращивается блоками.

Рис. 5. Базовая архитектура CMP.

Устройство управления памятью, подсистема ввода-вывода и процессоры в процессорном элементе связаны между собой при помощи матричного коммутатора (crossbar), а не посредством традиционной системной шины. Технология коммутации, пришедшая из мира мэйнфреймов, уже давно применяется и в SMP-серверах как типичный архитектурный прием. Преимущество этой архитектуры перед шиной - устранение конфликтов на системной шине и соответственно отсутствие перегрузок.

Подсистема ввода-вывода в СМР основывается на стандартных интерфейсах PCI (PCI-X). Однако, чтобы повысить эффективность путем использования режима DMA, три шины PCI, входящие в состав процессорного элемента, связаны с коммутатором через специальный мост ввода-вывода DIB (Direct I/O Bridge). Каждая шина имеет несколько PCI-слотов.

Процессорный элемент представляет собой почти готовую SMP-систему, использующую матричный коммутатор вместо системной шины. Разработчики заложили в CMP уникальные особенности, обеспечивающие возможность статического и динамического парционирования (разбиения) SMP-сервера и приводящие к преобразованию всей SMP-системы в кластер, в свою очередь, построенный из SMP-серверов с числом процессоров, кратным четырем. Отметим, что в кластерах на базе CMP-систем возможно совместное использование оперативной памяти (shared memory), т. е. узлы могут взаимодействовать через общее поле оперативной памяти. Для повышения производительности предлагается использовать технику интерливинга (interleaving), когда байты 0-63 берутся из первого MSU, байты 64-127 - из второго и т. д. Выделение разделов в СМР предполагает, что в каждом из них может работать своя ОС.

Серверы серии ES7000 построены на основе монтируемой в стойку конструкции-ячейки высотой 4U (18 см), содержащей от четырех до восьми процессоров. Объединив до четырех ячеек, можно создать серверы с числом процессоров до 32. Все модели располагают специализированными сервисными процессорами для дистанционного управления и экземпляром программы Unisys Server Sentinel.

Архитектура NUMAFlex

Усилия корпорации SGI (http://www.sgi.com) по разработке собственной версии архитектуры ccNUMA воплотились в серверы семейства Origin 3x00. Эти компьютеры, построенные на базе технологии NUMAflex, имеют архитектуру памяти NUMA 3 (поскольку это уже третье поколение подобной архитектуры). Благодаря модульной конструкции серверы SGI легко масштабируются под конкретную задачу или приложение с использованием набора базовых модулей, при этом вычислительная мощность сервера наращивается от двух до 512 процессоров.

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

NUMAflex действительно отличается особой гибкостью при построении различных конфигураций системы и ее изменении "на лету", в процессе функционирования. В NUMAflex реализована возможность разбиения всей системы ccNUMA на разделы (партиции, или домены), которые также представляют собой ccNUMA- или SMP-компьютеры. Деление на разделы позволяет преображать систему ccNUMA в кластерную структуру. Узлами этого кластера могут быть опять-таки ccNUMA-cерверы.

К числу основных преимуществ архитектуры NUMAflex следует отнести отказ от использования больших системных плат, характерных для систем с множеством процессоров. Это не только удешевляет конструкцию, но и повышает ее общую надежность, поскольку устраняет системную шину как единую точку сбоя для относительно большого числа процессоров.

Архитектура NUMAflex строится на базе модулей семи различных типов, которые называются "кирпичами" (brick): C-brick - процессорный модуль, I-brick - модуль базового ввода-вывода, R-brick - коммутационный модуль, P-brick - модуль расширения PCI, D-brick - дисковый модуль, X-brick - расширение XIO для высокопроизводительного ввода-вывода и G-brick - графический модуль (InfiniteReality). "Кирпичи" снабжены собственными источниками питания, что повышает отказоустойчивость системы в целом. Они помещаются в стандартную стойку, причем для небольших систем рекомендуется конструктив 17U.

Один из важнейших компонентов архитектуры NUMA 3 - специализированная микросхема Bedrock. Этот матричный коммутатор с восемью входами и шестью выходами действует как контроллер между процессорами и локальной и удаленной памятью. Кроме того, он предоставляет процессору канал в систему ввода-вывода. Отметим также, что восьмипортовый высокопроизводительный матричный коммутатор находится в узле маршрутизатора.

В блоке питания размещается от трех до шести распределенных источников питания с горячей заменой, обеспечивающих напряжение 48 В для C-, I-, P-, X- и R-кирпичей. Источники всегда устанавливаются в избыточной конфигурации N+1, чтобы никакой индивидуальный отказ не затронул работу сервера в целом.

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

Отметим также, что в системах Origin 3x00 с 512 процессорами можно выделить 32 раздела. Минимальный домен должен содержать один вычислительный модуль, включающий два или четыре процессора. Каждая партиция имеет собственные средства ввода-вывода, свой IP-адрес и работает под управлением собственной версии ОС. Для обеспечения связи между разделами-узлами кластера используется NUMAlink 3 - стандартное соединение, которое дает гораздо более высокую пропускную способность и более низкие задержки, чем традиционные каналы связи между узлами кластеров. При разбиении сервера NUMAflex на разделы с переходом к кластерной структуре можно построить систему высокой доступности, причем от обычного кластера этого типа она будет отличаться высокой производительностью каналов, соединяющих узлы. Благодаря использованию доменов обеспечивается эффективное управление рабочей нагрузкой, т. е. разделение ресурсов между коллективами пользователей или группами задач. Кроме того, допускается модернизация ОС при одновременном продолжении эксплуатации текущей версии. Повышение отказоустойчивости происходит за счет устранения общих точек сбоя и образования кластеров высокой доступности.

Концепция FAME

Концепция FAME (Flexible Architecture for Multiple Environments), предложенная корпорацией Bull (http://www.bull.com), позволяет с помощью высокоскоростных коммутаторов создавать SMP-системы и строить кластеры с архитектурой ссNUMA. Специалисты Bull оптимизировали архитектуру NUMA для построения больших SMP-систем из блоков QBB (Quad Brick Block) с четырьмя процессорами Intel Itanium 2 и отдельной памятью. Кроме модулей QBB, в систему включены модули ввода-вывода IOB (Input Output Boxes). Такой набор компонентов обеспечивает модульность за счет комбинирования процессоров и памяти и ввода-вывода, что позволяет строить как простейшие системы начального уровня, так и объединенную архитектуру самой высокой мощности с помощью репликации и межсоединений.

Описанная выше конструкция основана на использовании инженерами Bull высокоскоростных межсоединений и микросхемы FSS (FAME Scalability Switch), которая обеспечивает для каждого процессора доступ к вводу-выводу и согласованное обращение к общей памяти (объем последней может достигать 256 Гбайт). Заметим, что эта память образуется путем объединения модулей памяти каждого QBB.

Устройство FSS, в производстве которого используется 0,18-мкм технология КМОП с медными межсоединениями, представляет собой кристалл со стороной 18 м. Он состоит из 60 млн транзисторов и имеет 1520 контактов ввода-вывода, что, безусловно, делает FSS одной из самых сложных микросхем. Устройство FSS обеспечивает единство информации в масштабах всей системы, независимо от того, где находится эта информация - в основной памяти или скопирована в кэш-память процессоров. Таким образом, FSS позволяет построить большую многопроцессорную систему с единым адресным пространством. FSS также оптимизирует трафик между процессорами и синхронизирует передачу данных внутри сервера.

Таким образом, 32-процессорная система состоит из модулей, каждый из которых содержит два FSS - для защиты от сбоев и повышения пропускной способности, до четырех QBB и двух блоков ввода-вывода (IOB). Модули связаны между собой за счет соединения FSS каждого модуля через четыре канала XSP (eXtended Scalability Port) с тактовой частотой 2,5 ГГц и общей пропускной способностью свыше 25 Гбайт/с. Пропускная способность памяти обеспечивается за счет агрегирования контроллеров памяти SNC (Scalability Node Controller), установленных на каждом четырехпроцессорном блоке, - пропускная способность памяти у каждого SNC равна 6,4 Гбайт/с (до 25 Гбайт/с для всех его интерфейсов). В максимальной конфигурации архитектура FAME обеспечивает пропускную способность памяти свыше 50 Гбайт/с.

Особое внимание было уделено оптимизации задержек доступа к памяти за счет эффективной организации фильтрации трафика согласования содержания кэш-памяти. В результате удалось значительно уменьшить трафик внутри QBB. Так называемый коэффициент NUMA - обычно самое слабое звено в системах, состоящих из "кирпичиков", - также значительно улучшился. Он равен 1:2:3 (время доступа к памяти в том же QBB, в другом QBB того же модуля и QBB в другом модуле соответственно), поэтому архитектура FAME обеспечивает высокую производительность даже в случае ПО, которое не было специально настроено для NUMA.

Подсистема ввода-вывода FAME разрабатывалась с целью оптимизировать доступ к данным и сети. Использование стандартных доступных на рынке компонентов и мощных функций коммутации позволило легко интегрировать новейшие технологии. Система была настроена для получения производительности ввода-вывода, которая соответствовала бы вычислительной мощности. При этом четверть пропускной способности FSS выделяется для ввода-вывода. Будучи архитектурой для больших корпоративных систем, FAME реализует достаточную пропускную способность с несколькими быстрыми шинами PCI-X (восемь на один IOB), что обеспечивает работу высокоскоростных контроллеров (например, FCS/Fibre Channel 2 Гбит/с) без интерференции и с улучшенным исправлением ошибок. Использование сетей хранения данных SAN обеспечивает использование резервных каналов для эффективной балансировки нагрузки подсистемы ввода-вывода. Более того, подсистема ввода-вывода обеспечивает очень высокую масштабируемость и производительность: пиковую пропускную способность ввода-вывода до 6 Гбит/с, в установившемся режиме - 2 Гбит/с, 250-300 тыс. операций ввода-вывода в секунду.

Все периферийные и коммуникационные устройства соединяются с IOB через платы PCI-X. Архитектура FAME включает сеть SAN, которую могут использовать несколько серверов. Централизованное администрирование обеспечивает единый механизм реконфигурирования доменов и их путей доступа к системе хранения. Поэтому при перемещении набора ресурсов (например, два QBB и один IOB) из одного домена в другой необходимо выполнить синхронизирующую реконфигурацию сети межсоединений, используя FSS и сеть Fibre Channel, обеспечивающую доступ к системам хранения. Эта операция выполняется полностью автоматически.

Самый мощный сервер G-Scale

Серверы компании Kraftway (http://www.kraftway.ru) G-Scale 6008, 6016 и 6032 созданы на базе процессоров Intel Itanium 2 и предназначены для высокопроизводительных вычислений, исполнения критически важных бизнес-приложений и создания устойчивых к сбоям кластерных систем. Они обладают оптимальным соотношением цена/производительность, а также легко масштабируются, обеспечивая защиту инвестиций.

В прошлом году компания Kraftway, единственный отечественный производитель серверных систем с числом процессоров более четырех, расширила модельный ряд своего флагманского семейства G-Scale за счет сервера Kraftway G-Scale 6032, содержащего до 32 процессоров Intel Itanium 2.

Сервер Kraftway G-Scale.

В семейство серверов Kraftway G-Scale 60хх входят многопроцессорные серверы на базе процессоров Intel Itanium 2. Модель Kraftway G-Scale 6032 - самая производительная на сегодняшний день в данной линейке. Помимо двукратного увеличения числа процессоров, в два раза вырос и максимальный объем оперативной памяти (до 256 Гбайт), а размещение всего приложения заказчика в оперативной памяти может дать многократное ускорение его выполнения.

Системы Kraftway G-Scale 60xx позволяют создавать надежные, отказоустойчивые решения, сочетающие в себе все преимущества открытой архитектуры и улучшающие возврат инвестиций. Технические параметры серверов Kraftway G-Scale 60xx позволяют применять их для консолидации приложений, работы со сверхбольшими базами данных, выполнения ресурсоемких мультимедиа-приложений и ПО для систем безопасности.

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

Гибкая архитектура Kraftway G-Scale позволяет конфигурировать сервер таким образом, что он превращается в серверную ферму в одном корпусе. Это стало возможным благодаря технологии аппаратного разделения ресурсов. В зависимости от нагрузки система Kraftway G-Scale 6032 может быть разделена на несколько (от двух до четырех) независимых серверов, каждый из которых выполняет свое приложение. При изменении нагрузки администратор легко перераспределяет аппаратные ресурсы, решая стоящие перед предприятием задачи оптимальными средствами.

Серверы Kraftway G-Scale работают под управлением 64-разрядных версий наиболее распространенных серверных ОС Microsoft Windows и Linux.

Классификация архитектур по параллельной обработке данных

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

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

В 1966 г. М.Флинном (Flynn) был предложен чрезвычайно удобный подход к классификации архитектур КС. В его основу было положено понятие потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. Соответствующая система классификации основана на рассмотрении числа потоков инструкций и потоков данных и описывает четыре архитектурных класса :

1) SISD (Single Instruction Single Data)2) MISD (Multiple Instruction Single Data)3) SIMD (Single Instruction Multiple Data)4) MIMD (Multiple Instruction Multiple Data)

SISD (single instruction stream / single data stream) – одиночный поток команд и одиночный поток данных. К этому классу относятся последовательные компьютерные системы, которые имеют один центральный процессор, способный обрабатывать только один поток последовательно исполняемых инструкций. В настоящее время практически все высокопроизводительные системы имеют более одного центрального процессора, однако каждый из них выполняет несвязанные потоки инструкций, что делает такие системы комплексами SISD-систем, действующих на разных пространствах данных. Для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка. В случае векторных систем векторный поток данных следует рассматривать как поток из одиночных неделимых векторов. Примерами компьютеров с архитектурой SISD могут служить большинство рабочих станций Compaq, Hewlett-Packard и Sun Microsystems.

MISD (multiple instruction stream / single data stream) – множественный поток команд и одиночный поток данных. Теоретически в этом типе машин множество инструкций должно выполняться над единственным потоком данных. До сих пор ни одной реальной машины, попадающей в данный класс, создано не было. В качестве аналога работы такой системы, по-видимому, можно рассматривать работу банка. С любого терминала можно подать команду и что-то сделать с имеющимся банком данных. Поскольку база данных одна, а команд много, то имеем дело с множественным потоком команд и одиночным потоком данных.


SIMD (single instruction stream / multiple data stream) – одиночный поток команд и множественный поток данных. Эти системы обычно имеют большое количество процессоров, от 1024 до 16384, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единственная инструкция параллельно выполняется над многими элементами данных. Примерами SIMD-машин являются системы CPP DAP, Gamma II и Quadrics Apemille. Другим подклассом SIMD-систем являются векторные компьютеры. Векторные компьютеры манипулируют массивами сходных данных подобно тому, как скалярные машины обрабатывают отдельные элементы таких массивов. Это делается за счет использования специально сконструированных векторных центральных процессоров. Когда данные обрабатываются посредством векторных модулей, результаты могут быть выданы на один, два или три такта частотогенератора (такт частотогенератора является основным временным параметром системы). При работе в векторном режиме векторные процессоры обрабатывают данные практически параллельно, что делает их в несколько раз более быстрыми, чем при работе в скалярном режиме. Примерами систем подобного типа являются, например, компьютеры Hitachi S3600.

MIMD (multiple instruction stream / multiple data stream) – множественный поток команд и множественный поток данных. Эти машины параллельно выполняют несколько потоков инструкций над различными потоками данных. В отличие от упомянутых выше многопроцессорных SISD-машин, команды и данные связаны, потому что они представляют различные части одной и той же задачи. Например, MIMD-системы могут параллельно выполнять множество подзадач с целью сокращения времени выполнения основной задачи. Большое разнообразие попадающих в данный класс систем делает классификацию Флинна не полностью адекватной. Действительно, и четырехпроцессорный SX-5 компании NEC, и тысячепроцессорный Cray T3E попадают в этот класс. Это заставляет использовать другой подход к классификации, иначе описывающий классы компьютерных систем. Основная идея такого подхода может состоять, в следующем. Будем считать, что множественный поток команд может быть обработан двумя способами: либо одним конвейерным устройством обработки, работающем в режиме разделения времени для отдельных потоков, либо каждый поток обрабатывается своим собственным устройством. Первая возможность используется в MIMD-компьютерах, которые обычно называют конвейерными или векторными, вторая – в параллельных компьютерах. В основе векторных компьютеров лежит концепция конвейеризации, т.е. явного сегментирования арифметического устройства на отдельные части, каждая из которых выполняет свою подзадачу для пары операндов. В основе параллельного компьютера лежит идея использования для решения одной задачи нескольких процессоров, работающих сообща, причем процессоры могут быть как скалярными, так и векторными.

Классификация архитектур КС нужна для того, чтобы понять особенности работы той или иной архитектуры, но она не является достаточно детальной, чтобы на нее можно было опираться при создании многопроцессорных КС, поэтому следует вводить более детальную классификацию, которая связана с различными архитектурами ЭВМ и с используемым оборудованием.

SMP (symmetric multiprocessing) – симметричная многопроцессорная архитектура. Главной особенностью систем с архитектурой SMP является наличие общей физической памяти, разделяемой всеми процессорами.

Рисунок 2.1 - Схематический вид SMP-архитектуры

Память служит, в частности, для передачи сообщений между процессорами, при этом все вычислительные устройства при обращении к ней имеют равные права и одну и ту же адресацию для всех ячеек памяти. Поэтому SMP-архитектура называется симметричной. Последнее обстоятельство позволяет очень эффективно обмениваться данными с другими вычислительными устройствами. SMP-система строится на основе высокоскоростной системной шины (SGI PowerPath, Sun Gigaplane, DEC TurboLaser), к слотам которой подключаются функциональные блоки типов: процессоры (ЦП), подсистема ввода/вывода (I/O) и т. п. Для подсоединения к модулям I/O используются уже более медленные шины (PCI, VME64). Наиболее известными SMP-системами являются SMP-cерверы и рабочие станции на базе процессоров Intel (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu и др.) Вся система работает под управлением единой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживается Windows NT). ОС автоматически (в процессе работы) распределяет процессы по процессорам, но иногда возможна и явная привязка.

Преимущества SMP-систем:

а) простота и универсальность для программирования. Архитектура SMP не накладывает ограничений на модель программирования, используемую при создании приложения: обычно используется модель параллельных ветвей, когда все процессоры работают независимо друг от друга. Однако можно реализовать и модели, использующие межпроцессорный обмен. Использование общей памяти увеличивает скорость такого обмена, пользователь также имеет доступ сразу ко всему объему памяти. Для SMP-систем существуют довольно эффективные средства автоматического распараллеливания;

б) простота эксплуатации. Как правило, SMP-системы используют систему кондиционирования, основанную на воздушном охлаждении, что облегчает их техническое обслуживание;

в) относительно невысокая цена.

Недостатки SMP-систем :

а) системы с общей памятью плохо масштабируются. Этот существенный недостаток SMP-систем не позволяет считать их по-настоящему перспективными. Причиной плохой масштабируемости является то, что в данный момент шина способна обрабатывать только одну транзакцию, вследствие чего возникают проблемы разрешения конфликтов при одновременном обращении нескольких процессоров к одним и тем же областям общей физической памяти. Вычислительные элементы начинают друг другу мешать. Когда произойдет такой конфликт, зависит от скорости связи и от количества вычислительных элементов. В настоящее время конфликты могут происходить при наличии 8-24 процессоров. Кроме того, системная шина имеет ограниченную (хоть и высокую) пропускную способность (ПС) и ограниченное число слотов. Все это очевидно препятствует увеличению производительности при увеличении числа процессоров и числа подключаемых пользователей. В реальных системах можно задействовать не более 32 процессоров.

Для построения масштабируемых систем на базе SMP используются кластерные или NUMA-архитектуры. При работе с SMP-системами используют так называемую парадигму программирования с разделяемой памятью (shared memory paradigm).

UMA – Uniform Memory Access

5. SMP-архитектура используется в cерверах и РС на базе процессоров Intel, AMD, Sun, IBM, HP

(+) : простота, «отработанность» базовых принципов

(-) : весь обмен м/д процессором и памятью осущ. по 1 шине – узкое горлышко арх-ры – ограничение производительности, масштабируемости.

Пример:

MPP – архитектура: Massive parallel processing

Система с массовым параллелизмом. В основе лежал транспьютер – мощный универсальный процессор, особенностью которого было наличие 4 линков (коммуникационные каналы связи). Каждый линк состоит из двух частей, служащих для передачи информации в противоположных направлениях, и используется для соединения транспьютеров между собой и подключения внешних устройств. Архитектура: множество узлов, каждые узел – ОП+ЦП

Классическая МРР-архитектура: каждый узел соединен с 4 узлами по каналу «точка-точка».

Пример: Intel Peragon

Кластерная архитектура

Реализация объединения машин, представляющегося единым целым для ОС, системного ПО, прикладных программами пользователей.

Типы кластеров

  1. Системы высокой надежности/готовности (High Availability Systems, HA).
  2. Системы для высокопроизводительных вычислений (High Performance, HP, Compute clusters).
  3. Многопоточные системы.
  4. Load-balancing clusters. (распределение вычислительной нагрузки)

Пример: архитектура кластера theHIVE

5. NUMA архитектура Non Uniform Memory Access – неоднородный доступ к памяти

Каждый процессор имеет доступ к своей и к чужой памяти (для доступа в чужую память используется коммутационная сеть или даже проц чужого узла). Доступ к памяти чужого узла может поддерживаться аппаратно: спец. контроллеры.



- : дорого, плохая масштабируемость.

Сейчас: NUMA осущ доступ к чужой памяти программно.

Вычислительная система NUMA состоит из набора узлов (содержит один или несколько процессоров, на нем работает единственная копия ОС), которые соединены между собой коммутатором либо быстродействующей сетью.

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

ОП физически распределена, но логически общедоступна.

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

Примеры конкретных реализаций: cc-NUMA, СОМА, NUMA-Q

Пример: HP Integrity SuperDome

Упрощенные блок-схемы SMP (а) и MPP (б)

  1. Пять основных архитектур высокопроизводительных ВС, их краткая характеристика, примеры. Сравнение кластерной архитектуры и NUMA.

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

  1. SMP архитектура. Принципы организации. Достоинства, недостатки. Масштабируемость в «узком» и «широком» смысле. Область применения, примеры ВС на SMP.

SMP архитектура (symmetric multiprocessing) - cимметричная многопроцессорная архитектура. Главной особенностью систем с архитектурой SMP является наличие общей физической памяти, разделяемой всеми процессорами.

1. SMP-система строится на основе высокоскоростной системной шины, к слотам которой подключаются функциональные блоки трех типов: процессоры (ЦП), оперативная память (ОП), подсистема ввода/вывода (I/O).

2. Память является способом передачи сообщений между процессорами.

3. Все вычислительные устройства при обращении к ОП имеют равные права и одну и ту же адресацию для всех ячеек памяти.



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

5. SMP используется в cерверах и рабочих станциях на базе процессоров Intel, AMD, Sun, IBM, HP.

6. SMP-система работает под управлением единой ОС (либо UNIX-подобной, либо Windows). ОС автоматически (в процессе работы) распределяет процессы по процессорам, но иногда возможна и явная привязка.

Принципы организации:

SMP система состоит из нескольких однородных процессоров и массива общей памяти.

Один из часто используемых в SMP архитектурах подходов для формирования масштабируемой, общедоступной системы памяти, состоит в однородной организации доступа к памяти посредством организации масштабируемого канала память-процессоры.

Каждая операция доступа к памяти интерпретируется как транзакция по шине процессоры-память.

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

Когерентность кэшей поддерживается аппаратными средствами.

Все остальное - в одном экземпляре: одна память, одна подсистема ввода/вывода, одна операционная система.

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

Масштабируемость:

В «узком» смысле: возможность подключения аппаратных средств в некоторых пределах (процессоры, память, интерфейсы).

В «широком» смысле: линейный рост показателя производительности при увеличении аппаратных средств.

Достоинства:

Простота и универсальность для программирования. Архитектура SMP не накладывает ограничений на модель программирования, используемую при создании приложения: обычно используется модель параллельных ветвей, когда все процессоры работают абсолютно независимо друг от друга - однако, можно реализовать и модели, использующие межпроцессорный обмен. Использование общей памяти увеличивает скорость такого обмена, пользователь также имеет доступ сразу ко всему объему памяти.

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

Относительно невысокая цена.

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

Архитектура SMP наиболее безопасна. Из этого не следует, что передача данных между кэшами желательна. Параллельная программа всегда будет выполняться тем быстрее, чем меньше взаимодействуют ее части. Но если эти части должны взаимодействовать часто, то программа будет работать быстрее на SMP.

Недостатки:

SMP-cистемы плохо масштабируемы:

1. Системная шина имеет ограниченную (хоть и высокую) пропускную способность и ограниченное число слотов, так называемое «узкое горлышко».

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

Все это препятствует увеличению производительности при увеличении числа процессоров и числа подключаемых пользователей. В реальных системах эффективно можно использовать не более 8-16-32 процессоров.

Область применения: для работы с банковскими приложениями

Пример: Архитектура Sun Fire T2000. Архитектура UltraSPARC T1.

  1. SMP архитектура. Совершенствование и модификация SMP архитектуры. SMP в современных многоядерных процессорах. Когерентность КЭШа.

SMP архитектура (symmetric multiprocessing) - cимметричная многопроцессорная архитектура. Главной особенностью систем с архитектурой SMP является наличие общей физической памяти, разделяемой всеми процессорами.

Совершенствование и модификация SMP:

Пример: Архитектура QBB серверных систем серии GS DEC

С целью увеличения производительности шины произведена попытка убрать шину, но оставить общий доступ к памяти --> переход и замена общей шины локальным коммутатором (или системой коммутаторов): каждый процессор в каждый момент времени скоммутирован с 4 банками памяти.

Каждый проц работает с каким-то банком памяти,

Переключается на другой банк памяти

Начинает работу с другим банком памяти.

5. СИММЕТРИЧНЫЕ МУЛЬТИПРОЦЕССОРНЫЕ СИСТЕМЫ

5.1. Отличительные признаки и преимущества симметричных

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

Для класса симметричных мультипроцессорных (SMP – symmetric multiprocessor ) систем характерны следующие отличительные признаки:

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

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

    процессоры имеют доступ к общим средствам ввода–вывода либо через один и тот же канал, либо через раздельные каналы;

    все процессоры способны выполнять одинаковый набор функций (отсюда и определение симметричная система);

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

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

Наиболее существенные преимущества SMP–систем перед однопроцессорными состоят в следующем.

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

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

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

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

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

Очень привлекательной для пользователей особенностью SMP–систем является ее прозрачность. Операционная система берет на себя все заботы по распределению задач между отдельными процессорами и синхронизации их работы.

5.2. Структурная организация SMP –систем

На рис. 5.1 показана обобщенная блок–схема мультипроцессорной системы.

Рис. 5.1. Обобщенная схема мультипроцессорной системы

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

Варианты структурной организации мультипроцессорных систем можно классифицировать следующим образом:

    системы с общей или разделяемой во времени магистралью;

    системы с многопортовой памятью;

    системы с центральным устройством управления.

5.2.1. Системы с общей магистралью

Использование общей магистрали в режиме разделения времени – это самый простой способ организации совместной работы процессоров в SMP–системе (рис. 5.2). Структура магистрали и интерфейс практически те же, что и в однопроцессорной системе. В составе магистрали предусматриваются линии данных, адреса и управляющих сигналов. Для упрощения работы механизма прямого доступа к памяти со стороны модулей ввода–вывода принимаются следующие меры.

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

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

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

Эти функции, обычные для однопроцессорных систем, можно без особых изменений использовать и в мультипроцессорной системе. Основное отличие в том, что в борьбе за право доступа к блоку памяти принимают участие не только модули ввода–вывода, но и процессоры.


Рис. 5.2. Организация SMP системы с общей магистралью

Магистральная структура связей имеет несколько преимуществ по сравнению с другими подходами к реализации подсистемы взаимодействия.

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

Гибкость . Систему с магистральной организацией связей довольно просто переконфигурировать, добавив в нее новые процессоры.

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

Основной недостаток системы с общей магистралью – ограниченная производительность. Все операции доступа к главной памяти должны проходить по единственному пути – через общую магистраль и, следовательно, быстродействие системы ограничено длительностью цикла магистрали. Частично с этой проблемой позволяет справиться оснащение каждого процессора собственным блоком кэш–памяти, что снижает количество обращений к главной памяти. Как правило, применяется двухуровневая организация кэша: кэш уровня L1 размещается в БИС процессора (внутренний кэш), а кэш уровня L2 – внешний.

Однако применение кэш–памяти в мультипроцессорной системе порождает проблему согласованности или информационной целостности кэшей отдельных процессоров.

5.2.2. Системы с многопортовой памятью

Использование в SMP–системах многопортовой памяти позволяет организовать прямое обращение каждого процессора и модуля ввода–вывода к общему массиву информации, независимо от всех других (рис. 5.3). При этом каждый модуль памяти должен быть оснащен логической схемой разрешения возможных конфликтов. Для этого чаще всего портам назначаются определенные приоритеты. Как правило, электрический и физический интерфейс каждого порта идентичен и по отношению к устройству, подключенному к этому порту; модуль памяти можно рассматривать как однопортовый. Поэтому в схеме процессора или модуля ввода–вывода практически не нужно проводить никаких изменений для подключения к многопортовой памяти.


Рис. 5.3. Схема многопортовой памяти

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

Есть еще один существенный момент при работе с многопортовой памятью. При обновлении информации в кэше любого процессора необходимо выполнять сквозную запись в главную память, поскольку не существует иного способа оповестить другие процессоры о внесении изменений в данные.

5.2.3. Системы с центральным устройством управления

Центральное устройство управления организует раздельные потоки данных между независимыми модулями – процессорами, памятью и модулями ввода–вывода. Контроллер может запоминать запросы и выполнять функции арбитра и распределителя ресурсов. На него также возлагаются функции передачи информации о состоянии, управляющих сообщений и оповещения процессоров об изменении информации в кэшах.

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

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

5.3. SMP –системы на базе больших вычислительных машин

5.3.1. Структура SMP –системы на базе больших

вычислительных машин

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

Процессор ПР - CISC–микропроцессор, в котором управление обработкой наиболее часто используемых команд реализовано аппаратно, а остальные команды выполняются с помощью микропрограмм. В состав БИС каждого ПР входит кэш уровня L1 объемом 64 Кбайт, в котором хранятся и команды, и данные.

Кэш уровня L 2 объемом 384 Кбайт. Блоки кэша L2 объединены по два в кластеры, причем каждый кластер поддерживает работу с тремя процессорами и обеспечивает доступ ко всему адресному пространству основной памяти.

Адаптер переключения магистрали - BSN (bus switching network adapter ), который организует связь блоков кэша L2 с одним из четырех блоков главной памяти. В состав BSN входит и кэш уровня L3 объемом 2 Мбайт.

Одноплатный блок главной памяти объемом 8 Гбайт. В состав ком-плекса входят четыре таких блока, обеспечивая общий объем главной памяти 32 Гбайт.

В этой структуре есть несколько особенностей, на которых стоит остановиться подробнее:

    переключаемая подсистема взаимосвязей;

    совместно используемый кэш уровня L2;

    кэш уровня L3.


Рис.5.4. Блок–схема SMP–системы на базе больших машин

5.3.2. Переключаемая подсистема взаимосвязей

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

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

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

Не смотря на то, что в системе имеется четыре отдельных блока памяти, каждый процессор и каждый блок кэша L2 оснащен только двумя физическими портами, через которые они связываются с подсистемой главной памяти. Такое решение выбрано, потому что каждый блок кэша L2 может хранить данные только из половины всего адресного пространства памяти. Для обслуживания запросов ко всему адресному пространству используется пара блоков кэша, и каждый процессор должен иметь доступ к обоим блокам в паре.

5.3.3. Совместное использование блоков кэша уровня L 2

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

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

Анализ типичных приложений, выполняемых в системе, показал, что достаточно большая часть команд и данных совместно используется разными процессорами.

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

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

5.3.4. Кэш уровня L 3

Еще одна особенность SMP–системы на базе большой машины – включение в ее структуру кэша третьего уровня, L3. Кэш L3 входит в состав каждого блока BSN и, следовательно, является буфером между кэшами L2 и одним из блоков главной памяти. Применение этого кэша позволяет уменьшить задержку поступления данных, которые отсутствуют в кэшах L1 и L2. Если эти данные ранее потребовались какому–либо из процессоров, то они присутствуют в кэше L3 и могут быть переданы новому процессору. Время извлечения данных из кэша L3 меньше времени обращения к блоку главной памяти, что и обеспечивает выигрыш в быстродействии.

В табл. 5.1 показаны данные, полученные при исследовании производительности типичной SMP–системы на базе IBM S/390 . Показатель "задержка доступа" характеризует время, необходимое для извлечения данных процессором в случае, если они присутствуют в том или ином структурном элементе подсистемы памяти. При запросе процессором новой информации в 89% случаев она отыскивается в его собственном кэше L1. В остальных 11% случаев приходится обращаться к кэшам следующих уровней или к блоку главной памяти. В 5% случаев необходимая информация отыскивается в кэше L2 и т.д. Только в 3% случаев приходится в конце концов обращаться к блоку главной памяти. Без кэша третьего уровня этот показатель был бы в два раза больше.

Таблица 5.1

Показатели эффективности элементов подсистемы памяти

в SMP–системе на базе IBM S/390

Подсистема памяти

Задержка доступа (циклов работы

процессора)

Процент попаданий

Главная память

5.4. Информационная целостность кэшей и протокол MESI

5.4.1. Способы решения проблемы информационной

целостности

В современных вычислительных системах стало нормой использование блоков кэша одного или двух уровней, связанных с каждым процессором. Такая организация позволяет добиться высокой производительности системы, но порождает проблему информационной целостности данных в кэшах разных процессоров. Суть ее состоит в том, что в кэшах разных процессоров возможно хранение копий одних и тех же данных из главной памяти. Если при этом некоторый процессор обновляет какой–либо из элементов таких данных в своей копии, то копии, с которыми имеют дело остальные процессоры, становятся недостоверными, как и содержимое главной памяти. Возможно применение двух вариантов методики дублирования внесенных изменений в главной памяти:

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

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

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

системМетодические указания

Университет Кафедра компьютерных измерительных систем и метрологии ________________________________________________ И Н Ф О Р М А Т И К А Архитектура вычислительных систем . Основные подсистемы персонального компьютера...

5.2. Симметричная многопроцессорная архитектура SMP

SMP (symmetric multiprocessing ) – симметричная многопроцессорная архитектура. Главной особенностью систем с архитектурой SMP (рис.5.5) является наличие общей физической памяти, разделяемой всеми процессорами.

Рисунок 5.5 – Схематический вид SMP-архитектуры

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

SMP-система строится на основе высокоскоростной системной шины (SGI PowerPath, Sun Gigaplane, DEC TurboLaser), к слотам которой подключаются функциональные блоки типов: процессоры (ЦП), подсистема ввода/вывода (I/O) и т. п. Для подсоединения к модулям I/O используются уже более медленные шины (PCI, VME64).

Наиболее известными SMP-системами являются SMP-cерверы и рабочие станции на базе процессоров Intel (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu и др.) Вся система работает под управлением единой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживается Windows NT). ОС автоматически (в процессе работы) распределяет процессы по процессорам, но иногда возможна и явная привязка.

Основные преимущества SMP-систем:

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

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

- относительно невысокая цена .

Недостатки:

- системы с общей памятью плохо масштабируются .

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

В настоящее время конфликты могут происходить при наличии 8-24 процессоров. Все это очевидно препятствует увеличению производительности при увеличении числа процессоров и числа подключаемых пользователей. В реальных системах можно задействовать не более 32 процессоров. Для построения масштабируемых систем на базе SMP используются кластерные или NUMA-архитектуры. При работе с SMP-системами используют так называемую парадигму программирования с разделяемой памятью (shared memory paradigm).



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows