Реферат на тему:
“Архитектура серверов корпоративных баз данных”
Московский Государственный
Инженеро-Физический Институт (ТУ)
Оглавление
Введение
1. Системы управления базами данных и серверы баз данных
Серверы Escala компании Bull
2.1. Архитектура PowerScale
2.2. Семейство UNIX-серверов Escala
Серверы компании Hewlett-Packard
3.1. Семейство компьютеров Alpha
Серверы фирмы DEC
4.1. Семейство компьютеров Alpha
Отказоустойчивые серверы компании Tandem Computer Inc.
Заключение
Список литературы
Приложение 1
Введение
Появление в 80-х годах персональных компьютеров (ПК) и локальных сетей ПК самым серьезным образом изменило организацию корпоративных вычислений. В отличие от традиционной, хорошо управляемой и безопасной среды вычислений предприятия, построенной на базе универсальной вычислительной машины (мейнфрейм) с подсоединенными к ней терминалами, среда локальных сетей ПК плохо контролируется, плохо управляется и небезопасна. С другой стороны, расширенные средства сетевой организации делают возможным разделение бизнес-информации внутри групп индивидуальных пользователей и между ними, внутри и вне корпорации и облегчают организацию информационных процессов в масштабе предприятия. Чтобы ликвидировать брешь между отдельными локальными сетями ПК и традиционными средствами вычислений, а также для организации распределенных вычислений в масштабе предприятия появилась модель вычислений на базе рабочих групп.
Как правило, термины серверы рабочих групп и сетевые серверы используются взаимозаменяемо. Сервер рабочей группы может быть сервером, построенным на одном процессоре компании Intel, или суперсервером (с несколькими ЦП), подобным изделиям компаний Compaq, HP, IBM и DEC, работающим под управлением операционной системы Windows NT. Это может быть также UNIX-сервер компаний Sun, HP, IBM и DEC.
По уровню общесистемной производительности, функциональным возможностям отдельных компонентов, отказоустойчивости, а также в поддержке многопроцессорной обработки, системного администрирования и дисковых массивов большой емкости суперсерверы вышли в настоящее время на один уровень с мейнфреймами и мощными миникомпьютерами. Современные суперсерверы характеризуются:
наличием двух или более центральных процессоров RISC, либо CISC;
многоуровневой шинной архитектурой, в которой высокоскоростная системная шина связывает между собой несколько процессоров и оперативную память, а также множество стандартных шин ввода/вывода, размещенных в том же корпусе;
поддержкой технологии дисковых массивов RAID;
поддержкой режима симметричной многопроцессорной обработки, которая позволяет распределять задания по нескольким центральным процессорам или режима асимметричной многопроцессорной обработки, которая допускает выделение процессоров для выполнения конкретных задач.
Основу следующего уровня современных информационных систем предприятий и организаций составляют корпоративные серверы различного функционального назначения, построенные на базе операционной системы Unix. Архитектура этих систем варьируется в широких пределах в зависимости от масштаба решаемых задач и размеров предприятия. Двумя основными проблемами построения вычислительных систем для критически важных приложений, связанных с обработкой транзакций, управлением базами данных и обслуживанием телекоммуникаций, являются обеспечение высокой производительности и продолжительного функционирования систем. Наиболее эффективный способ достижения заданного уровня производительности - применение параллельных масштабируемых архитектур. Задача обеспечения продолжительного функционирования системы имеет три составляющих: надежность, готовность и удобство обслуживания. Все эти три составляющих предполагают, в первую очередь, борьбу с неисправностями системы, порождаемыми отказами и сбоями в ее работе. Эта борьба ведется по всем трем направлениям, которые взаимосвязаны и применяются совместно.
Существует несколько типов систем высокой готовности, отличающиеся своими функциональными возможностями и стоимостью. Наиболее оптимальным по отношению высокая готовность/стоимость являются кластерные системы.
В данном реферате будут рассмотрены особенности архитектуры RISC процессоров фирм DEC, Hewlett-Packard и Bull и особенности построения на их основе многопроцессорных SMP серверов и кластерных систем.
1. Системы управления базами данных и серверы баз данных
Одним из наиболее распространенных классов прикладных систем для серверов, выпускаемых большинством компаний-производителей компьютерной техники, являются системы управления базами данных (СУБД). Серверы СУБД значительно более сложны, чем, например, серверы сетевых файловых систем NFS. Стандартный язык реляционных СУБД (SQL) намного богаче, чем набор операций NFS. Более того, имеется несколько популярных коммерческих реализаций СУБД, доступных на серверах различных компаний, каждая из которых имеет совершенно различные характеристики.
Как приложения, ориентированные на использование баз данных, так и сами СУБД сильно различаются по своей организации. Если системы на базе файловых серверов сравнительно просто разделить по типу рабочей нагрузки на два принципиально различных класса (с интенсивной обработкой атрибутов файлов и с интенсивной обработкой самих данных), то провести подобную классификацию среди приложений баз данных и СУБД просто невозможно.
Хотя на сегодня имеется целый ряд различных архитектур баз данных, рынок UNIX-систем, кажется, остановился главным образом на реляционной модели. Абсолютное большинство инсталлированных сегодня систем реляционные, поскольку эта архитектура выбрана такими производителями как Oracle, Sybase, Ingres, Informix, Progress, Empress и DBase.
Но даже с учетом того, что подавляющее большинство систем работает по одной и той же концептуально общей схеме, между различными продуктами имеются большие архитектурные различия. Возможно наиболее существенным является реализация самой СУБД.
На выбор архитектуры сервера влияют следующие факторы:
· Требования по аппаратным средствам выбранной СУБД;
· Тип приложения и число одновременно работающих пользователей;
· Надежность;
· Стоимость;
· Разнообразие программного обеспечения (ПО);
· Масштабируемость.
Наряду с ценой, возможность масштабируемости системы является определяющим фактором при выборе того или иного сервера. Под масштабируемостью понимается возможность для модернизации сети или вычислительной платформы на случай необходимости увеличить рабочую нагрузку. В многопроцессорных и кластерных системах проблемы с масштабируемостью решена.
Наиболее распространены две многопроцессорные технологии: симметричная и параллельная обработка. Неунифицированный доступ к памяти (Non-Uniform Memory Access, NUMA) является новейшей разновидностью SMP.
SMP используется главным образом при работе с большими базами данных, хотя в последние годы она стала применяться для складов данных и систем поддержки принятия решений. MPP применяется в научных и инженерных приложениях для сложных программ с большим объемом вычислений, например для моделирования погоды на земном шаре или взаимодействия субатомарных частиц.
С точки зрения масштабируемости основное различие между SMP и MPP в том, каким образом отдельные процессоры управляют памятью. В случае SMP все процессоры совместно используют одну общую шину памяти. Конкуренция за шину снижает эффективность архитектуры с общей памятью при увеличении числа процессоров. Наличие отдельного высокоскоростного кэша памяти для каждого процессора, как это предусмотрено в SMP-машинах старшего класса, смягчает, но не устраняет данную проблему. Из-за такого ограничения многие конфигурации SMP состоят максимум из 2, 4 или 8 процессоров. Поддержка более 8 процессоров предполагает всякие изыски в аппаратной архитектуре, и лишь редкие SMP-машины поддерживают свыше 32 процессоров. Несомненным плюсом подобного подхода является то, что SMP-компьютер выглядит для приложения как обычная однопроцессорная машина; это значительно упрощает программирование. Обычно все, что необходимо, чтобы воспользоваться преимуществами многопроцессорной обработки, - это многопоточная программа и операционная система, способная распределять потоки между процессорами.
В случае MPP каждый процессор имеет собственную память и шину памяти. Преимуществом такой конфигурации является то, что конкуренция за шину отсутствует, а число процессоров может достигать сотен и тысяч. (Как правило, решение считается "массово-параллельным", только когда число процессоров превышает 64.).
NUMA можно рассматривать как промежуточный этап между SMP и MPP. Она определяет архитектуру для взаимодействия нескольких "узлов" SMP. Узлом может быть компьютер в кластере, хотя сегодня чаще всего имеют в виду группу процессоров в компьютере. Каждый узел располагает своей собственной выделенной физической памятью, что устраняет конкуренцию за ресурсы. Узлы связаны посредством координатного коммутатора таким образом, что все они могут обращаться к одному и тому же виртуальному пространству памяти. Все узлы вместе выглядят для приложения как одна SMP-машина.
Многопроцессорный компьютер выполняет лишь одну копию операционной системы. Если выполняются несколько копий ОС, но процессоры интегрированы таким образом, что, с точки зрения администратора, пользователя или приложения, они выглядят как одна система, то мы имеем дело с кластеризацией.
Несмотря на то что Sun объявила о 64-процессорной SMP-машине (Starfire Ultra Enterpise 10000), разработка и создание SMP-машин с 32 или 64 процессорами представляет серьезные трудности и сопряжена со значительными расходами. При построение SMP-машин с использованием NUMA имеет верхний предел в 32 процессора. Для постороения более сложных систем используется кластеризация – объединение машин в кластеры.
Кластеризация служит для объединения высокопроизводительных систем. Первой концепцию кластерной системы анонсировала компания DEC, определив ее как группу объединенных между собой вычислительных машин, представляющих собой единый узел обработки информации. По существу VAX-кластер представляет собой слабосвязанную многомашинную систему с общей внешней памятью, обеспечивающую единый механизм управления и администрирования. В настоящее время на смену VAX-кластерам приходят UNIX-кластеры. При этом VAX-кластеры предлагают проверенный набор решений, который устанавливает критерии для оценки подобных систем.
VAX-кластер обладает следующими свойствами:
· Разделение ресурсов. Компьютеры VAX в кластере могут разделять доступ к общим ленточным и дисковым накопителям. Все компьютеры VAX в кластере могут обращаться к отдельным файлам данных как к локальным;
· Высокая готовность. Если происходит отказ одного из VAX-компьютеров, задания его пользователей автоматически могут быть перенесены на другой компьютер кластера. Если в системе имеется несколько контроллеров внешних накопителей и один из них отказывает, другие контроллеры автоматически подхватывают его работу;
· Высокая пропускная способность. Ряд прикладных систем могут пользоваться возможностью параллельного выполнения заданий на нескольких компьютерах кластера;
· Удобство обслуживания системы. Общие базы данных могут обслуживаться с единственного места. Прикладные программы могут инсталлироваться только однажды на общих дисках кластера и разделяться между всеми компьютерами кластера;
· Расширяемость. Увеличение вычислительной мощности кластера достигается подключением к нему дополнительных VAX-компьютеров. Дополнительные накопители на магнитных дисках и магнитных лентах становятся доступными для всех компьютеров, входящих в кластер.
Работа любой кластерной системы определяется двумя главными компонентами: высокоскоростным механизмом связи процессоров между собой и системным программным обеспечением, которое обеспечивает клиентам прозрачный доступ к системному сервису.
В настоящее время широкое распространение получила также технология параллельных баз данных. Эта технология позволяет множеству процессоров разделять доступ к единственной базе данных. Распределение заданий по множеству процессорных ресурсов и параллельное их выполнение позволяет достичь более высокого уровня пропускной способности транзакций, поддерживать большее число одновременно работающих пользователей и ускорить выполнение сложных запросов. Существуют три различных типа архитектуры, которые поддерживают параллельные базы данных:
· Симметричная многопроцессорная архитектура с общей памятью (Shared Memory SMP Architecture). Эта архитектура поддерживает единую базу данных, работающую на многопроцессорном сервере под управлением одной операционной системы. Увеличение производительности таких систем обеспечивается наращиванием числа процессоров, устройств оперативной и внешней памяти;
· Архитектура с общими (разделяемыми) дисками (Shared Disk Architecture). Это типичный случай построения кластерной системы. Эта архитектура поддерживает единую базу данных при работе с несколькими компьютерами, объединенными в кластер (обычно такие компьютеры называются узлами кластера), каждый из которых работает под управлением своей копии операционной системы. В таких системах все узлы разделяют доступ к общим дискам, на которых собственно и располагается единая база данных. Производительность таких систем может увеличиваться как путем наращивания числа процессоров и объемов оперативной памяти в каждом узле кластера, так и посредством увеличения количества самих узлов;
· Архитектура без разделения ресурсов (Shared Nothing Architecture). Как и в архитектуре с общими дисками, в этой архитектуре поддерживается единый образ базы данных при работе с несколькими компьютерами, работающими под управлением своих копий операционной системы. Однако в этой архитектуре каждый узел системы имеет собственную оперативную память и собственные диски, которые не разделяются между отдельными узлами системы. Практически в таких системах разделяется только общий коммуникационный канал между узлами системы. Производительность таких систем может увеличиваться путем добавления процессоров, объемов оперативной и внешней (дисковой) памяти в каждом узле, а также путем наращивания количества таких узлов.
Таким образом, среда для работы параллельной базы данных обладает двумя важными свойствами: высокой готовностью и высокой производительностью. В случае кластерной организации несколько компьютеров или узлов кластера работают с единой базой данных. В случае отказа одного из таких узлов, оставшиеся узлы могут взять на себя задания, выполнявшиеся на отказавшем узле, не останавливая общий процесс работы с базой данных. Поскольку логически в каждом узле системы имеется образ базы данных, доступ к базе данных будет обеспечиваться до тех пор, пока в системе имеется по крайней мере один исправный узел. Производительность системы легко масштабируется, т.е. добавление дополнительных процессоров, объемов оперативной и дисковой памяти, и новых узлов в системе может выполняться в любое время, когда это действительно требуется.
Параллельные базы данных находят широкое применение в системах обработки транзакций в режиме on-line, системах поддержки принятия решений и часто используются при работе с критически важными для работы предприятий и организаций приложениями, которые эксплуатируются по 24 часа в сутки.
2. Серверы
Escala
компании
Bull
Группа компаний, объединенных под общим названием Bull, является одним из крупнейших производителей информационных систем на мировом компьютерном рынке и имеет свои отделения в Европе и США.
Архитектура PowerScale, представляет собой первую реализацию симметричной мультипроцессорной архитектуры (SMP), разработанной Bull специально для процессоров PowerPC. В начале она была реализована на процессоре PowerPC 601, но легко модернизируется для процессоров 604 и 620. Эта новая SMP-архитектура используется в семействе систем Escala.
Микропроцессор PowerPC поддерживает мультипроцессорную обработку, в частности, модель тесно связанных вычислений в разделяемой (общей) памяти. Работа тесно связанных процессоров предполагает использование разными процессорами одной общей памяти и одной операционной системы, которая управляет всеми процессорами и аппаратурой системы. Процессоры должны конкурировать за разделяемые ресурсы.
В симметричной мультипроцессорной системе все процессоры считаются функционально эквивалентными и могут выполнять операции ввода/вывода и другие вычисления.
Разработанное Bull семейство Escala обеспечивает масштабируемость и высокую готовность систем, центральным местом которых является симметричная мультипроцессорная архитектура, названная PowerScale, позволяющая производить постепенную модернизацию и объединять в системе от 1 до 8 процессоров.
2.1.Архитектура PowerScale
В современных системах SMP наиболее актуальным вопросом разработки является создание высокопроизводительной подсистемы памяти для обеспечения высокоскоростных RISC-процессоров данными и командами. Общее решение этой проблемы заключается в использовании большой высокоскоростной кэш-памяти, т.е. в создании иерархии памяти между процессорами и разделяемой глобальной памятью. Архитектура PowerScale предлагает новый подход к решению вопросов традиционного узкого горла, ограничивающего производительность SMP-систем, а именно, новую организацию управления кэш-памятью и доступа к памяти.
При моделировании прикладных систем, для работы которых необходимо манипулирование огромными объемами данных и разделения доступа к этим данным между многими пользователями или программами, на системах SMP, были замечены два особых эффекта:
Из-за малой вероятности нахождения соответствующих данных в кэш-памяти возникает весьма интенсивный трафик между системной памятью и кэшами ЦП.
В традиционной SMP-системе по умолчанию одна из задач планировщика заключается в том, чтобы запустить следующий разрешенный для выполнения процесс на первом же процессоре, который становится свободным. Поэтому по мере того, как увеличивается число процессоров и процессов, вероятность перемещения процессов с одного процессора на другой, также увеличивается. Эта побочная миграция процессов приводит к существенному увеличению уровня трафика между кэшами ЦП. Поэтому ключевым вопросом обеспечения высокой системной производительности становится физическая реализация когерентности кэш-памяти.
В традиционной SMP-архитектуре связи между кэшами ЦП и глобальной памятью реализуются с помощью общей шины памяти, разделяемой между различными процессорами. Как правило, эта шина становится слабым местом конструкции системы и стремится к насыщению при увеличении числа инсталлированных процессоров. Это происходит потому, что увеличивается трафик пересылок между кэшами и памятью, а также между кэшами разных процессоров, которые конкурируют между собой за пропускную способность шины памяти.
В архитектуре PowerScale компании Bull интерфейс памяти реализован с учетом указанного выше профиля приложений и рассчитан на использование нескольких поколений процессоров со все возрастающей производительностью. В действительности архитектура PowerScale с самого начала была разработана в расчете на поддержку до 8 процессоров PowerPC 620.
В архитектуре PowerScale (Рис. 1) основным средством оптимизации доступа к разделяемой основной памяти является использование достаточно сложной системной шины. В действительности эта "шина" представляет собой комбинацию шины адреса/управления, реализованной классическим способом, и набора магистралей данных, которые соединяются между собой посредством высокоскоростного матричного коммутатора. Эта система межсоединений получила название MPB_SysBus. Шина памяти используется только для пересылки простых адресных тегов, а неблокируемый матричный коммутатор - для обеспечения более интенсивного трафика данных. К матричному коммутатору могут быть подсоединены до 4 двухпроцессорных портов, порт ввода/вывода и подсистема памяти.
Главным преимуществом такого подхода является то, что он позволяет каждому процессору иметь прямой доступ к подсистеме памяти. Другим важным свойством реализации является использование расслоения памяти, что позволяет многим процессорам обращаться к памяти одновременно.
Ниже приведена схема, иллюстрирующая общую организацию доступа к памяти (Рис. 2) Каждый процессорный модуль имеет свой собственный выделенный порт памяти для пересылки данных. При этом общая шина адреса и управления гарантирует, что на уровне системы все адреса являются когерентными.
В системе используются большие кэши второго уровня (L2), дополняющие кэши первого уровня (L1), интегрированные в процессорах PowerPC. Это позволяет оптимизировать уровень миграции процессов между процессорами и увеличивает общую пропускную способность системы. Очевидно, что всегда полезно выполнять процесс на одном и том же процессоре и иметь более высокий коэффициент попаданий в кэш, чем при выполнении процесса на следующем доступном процессоре. Используя алгоритмы, базирующиеся на средствах ядра системы, можно определить наиболее подходящее использование пула процессоров с учетом текущего коэффициента попаданий в кэш.
Рис. 1. Архитектура PowerScale
Рис. 2. Схема организации доступа к памяти
Модель памяти
Процессор PowerPC определяет слабо упорядоченную модель памяти, которая позволяет оптимизировать использование пропускной способности памяти системы. Это достигается за счет того, что аппаратуре разрешается переупорядочивать операции загрузки и записи так, что требующие длительного времени операции загрузки могут выполняться ранее определенных операций записи. Такой подход позволяет уменьшить действительную задержку операций загрузки. Архитектура PowerScale полностью поддерживает эту модель памяти как на уровне процессора за счет набора команд PowerPC, так и глобально путем реализации следующих ограничений:
Обращения к глобальным переменным синхронизации выполняются строго последовательно.
Никакое обращение к переменной синхронизации не выдается процессором до завершения выполнения всех обращений к глобальным данным.
Никакие обращения к глобальным данным не выдаются процессором до завершения выполнения предыдущих обращений к переменной синхронизации.
Для обеспечения подобной модели упорядоченных обращений к памяти на уровне каждого процессора системы используются определенная аппаратная поддержка и явные команды синхронизации. Кроме того, на системном уровне соблюдение необходимых протоколов для обеспечения упорядочивания обращений между процессорами или между процессорами и подсистемой ввода/вывода возложено на программное обеспечение.
Подсистема памяти
С реализацией архитектуры глобальной памяти в мультипроцессорной системе обычно связан очень важный вопрос. Как объединить преимущества "логически" локальной для каждого процессора памяти, имеющей малую задержку доступа, с требованиями реализации разделяемой глобальной памяти?
Компания Bull разработала патентованную архитектуру, в которой массив памяти полностью расслоен до уровня длины строки системного кэша (32 байта). Такая организация обеспечивает минимум конфликтов между процессорами при работе подсистемы памяти и гарантирует минимальную задержку. Требование реализации глобальной памяти обеспечивается тем, что массив памяти для программных средств всегда представляется непрерывным.
Предложенная конструкция решает также проблему, часто возникающую в других системах, в которых использование методов расслоения для организации последовательного доступа к различным областям памяти возможно только, если платы памяти устанавливаются сбалансировано. Этот, кажущийся тривиальным, вопрос может приводить к излишним закупкам дополнительных ресурсов и связан исключительно с возможностями конструкции системы. PowerScale позволяет обойти эту проблему.
Архитектура PowerScale автоматически оптимизирует степень расслоения памяти в зависимости от того, какие платы памяти инсталлированы в системе. В зависимости от конкретной конфигурации она будет использовать низкую или высокую степень расслоения или их комбинацию. Все это полностью прозрачно для программного обеспечения и, что более важно, для пользователя.
Архитектура матричного коммутатора
Архитектура коммутатора реализована с помощью аппаратной сети, которая осуществляет индивидуальные соединения типа точка-точка процессора с процессором, процессора с основной памятью и процессора с магистралью данных ввода/вывода. Эта сеть работает совместно с разделяемой адресной шиной. Такой сбалансированный подход позволяет использовать лучшие свойства каждого из этих методов организации соединений.
Разделяемая адресная шина упрощает реализацию наблюдения (snooping) за адресами, которое необходимо для аппаратной поддержки когерентности памяти. Адресные транзакции конвейеризованы, выполняются асинхронно (расщеплено) по отношению к пересылкам данных и требуют относительно небольшой полосы пропускания, гарантируя, что этот ресурс никогда не войдет в состояние насыщения.
Организация пересылок данных требует больше внимания, поскольку уровень трафика и время занятости ресурсов физического межсоединения здесь существенно выше, чем это требуется для пересылки адресной информации. Операция пересылки адреса представляет собой одиночную пересылку, в то время как операция пересылки данных должна удовлетворять требованию многобайтной пересылки в соответствии с размером строки кэша ЦП. При реализации отдельных магистралей данных появляется ряд дополнительных возможностей, которые обеспечивают:
максимальную скорость передачи данных посредством соединений точка-точка на более высоких тактовых частотах;
параллельную пересылку данных посредством организации выделенного пути для каждого соединения;
разделение адресных транзакций и транзакций данных. Поэтому архитектуру PowerScale компании Bull можно назвать многопотоковой аппаратной архитектурой (multi-threaded hardware architecture) с возможностями параллельных операций.
На Рис. 3 показаны основные режимы и операции, выполняемые матричным коммутатором(ССA2 - сдвоенный контроллер адресов кэш-памяти; CCD2 - сдвоенный контроллер данных кэш-памяти; IOD - дочерняя плата ввода/вывода; DCB - матричный коммутатор данных; SMC - контроллер системной памяти ).
Рис. 4.3. Матричный коммутатор.
Параметры производительности
Вслед за установочной фазой транзакции (например, после установки адреса на адресной шине) данные могут пересылаться через коммутатор на полной скорости синхронизации. Это возможно благодаря организации соединению точка-точка, которое создается для каждой отдельной транзакции. Поэтому в дальнейшем какие-либо помехи отсутствуют. Возможно также выполнять параллельно несколько операций, например, множественный доступ к памяти или пересылки между кэшами.
Для того чтобы уменьшить задержку памяти, операции чтения начинаются до выполнения каких-либо действий по обеспечению глобальной когерентности на уровне системы. Ответы когерентности полностью синхронизированы, разрешаются за фиксированное время и поступают всегда прежде, чем будет захвачен разделяемый ресурс - шина памяти. Это помогает избежать ненужных захватов шины. Любые транзакции, которые не разрешаются когерентно за данное фиксированное время, позднее будут повторены системой.
Используемая в системе внутренняя частота синхронизации равна 75 МГц, что позволяет оценить уровень производительности разработанной архитектуры. Интерфейс физической памяти имеет ширину 32 байта и, учитывая арбитраж шины, позволяет пересылать 32 байта каждые 3 такта синхронизации. Это дает скорость передачи данных 800 Мбайт/с, поддерживаемую на уровне интерфейса памяти. Каждый порт ЦП имеет ширину 8 байт и способен передавать по 8 байт за такт, т.е. со скоростью 600 Мбайт/с. Следует отметить, что это скорость, достигаемая как при пересылке ЦП-память, так и при пересылке кэш-кэш. Скорость 800 Мбайт/с для памяти поддерживается с помощью буферов в коммутаторе, которые позволяют конвейеризовать несколько операций.
Пропускная способность может достигать пикового значения 1400 Мбайт/с. Таким образом, максимальная пропускная способность будет варьироваться в диапазоне от 800 до 1400 Мбайт/с в зависимости от коэффициента попаданий кэш-памяти.
Когерентность кэш-памяти
Проблема когерентности памяти в мультипроцессорной системе возникает из-за того, что значение элемента данных, хранящееся в кэш-памяти разных процессоров, доступно этим процессорам только через их индивидуальные кэши. При этом определенные операции одного из процессоров могут влиять на достоверность данных, хранящихся в кэшах других процессоров. Поэтому в подобных системах жизненно необходим механизм обеспечения когерентного (согласованного) состояния кэшей. С этой целью в архитектуре PowerScale используется стратегия обратной записи, реализованная следующим образом.
Каждый процессор для своей работы использует двухуровневый кэш со свойствами охвата. Это означает, что кроме внутреннего кэша первого уровня (кэша L1), встроенного в каждый процессор PowerPC, имеется связанный с ним кэш второго уровня (кэш L2). При этом каждая строка в кэше L1 имеется также и в кэше L2. В настоящее время объем кэша L2 составляет 1 Мбайт на каждый процессор, а в будущих реализациях предполагается его расширение до 4 Мбайт. Сама по себе кэш-память второго уровня позволяет существенно уменьшить число обращений к памяти и увеличить степень локализации данных. Для повышения быстродействия кэш L2 построен на принципах прямого отображения. Длина строки равна 32 байт (размеру когерентной гранулированности системы). Следует отметить, что, хотя с точки зрения физической реализации процессора PowerPC, 32 байта составляют только половину строки кэша L1, это не меняет протокол когерентности, который управляет операциями кэша L1 и гарантирует что кэш L2 всегда содержит данные кэша L1.
Кэш L2 имеет внешний набор тегов. Таким образом, любая активность механизма наблюдения за когерентным состоянием кэш-памяти может быть связана с кэшем второго уровня, в то время как большинство обращений со стороны процессора могут обрабатываться первичным кэшем. Если механизм наблюдения обнаруживает попадание в кэш второго уровня, то он должен выполнить арбитраж за первичный кэш, чтобы обновить состояние и возможно найти данные, что обычно будет приводить к приостановке процессора. Поэтому глобальная память может работать на уровне тегов кэша L2, что позволяет существенно ограничить количество операций наблюдения, генерируемых системой в направлении данного процессора. Это, в свою очередь, существенно увеличивает производительность системы, поскольку любая операция наблюдения в направлении процессора сама по себе может приводить к приостановке его работы.
Вторичная когерентность кэш-памяти
Вторичная когерентность кэш-памяти требуется для поддержки когерентности кэшей L1&L2 различных процессорных узлов, т.е. для обеспечения когерентного состояния всех имеющихся в мультипроцессорной системе распределенных кэшей (естественно включая поддержку когерентной буферизации ввода/вывода как по чтению, так и по записи).
Вторичная когерентность обеспечивается с помощью проверки каждой транзакции, возникающей на шине MPB_SysBus. Такая проверка позволяет обнаружить, что запрашиваемая по шине строка уже кэширована в процессорном узле, и обеспечивает выполнение необходимых операций. Это делается с помощью тегов кэша L2 и логически поддерживается тем фактом, что L1 является подмножеством L2.
Физическая реализация архитектуры
Ниже на Рис. 5 показана схема, представляющая системные платы, разработанные компанией Bull, которые используются для физической реализации архитектуры PowerScale.
Многопроцессорная материнская плата, которая используется также в качестве монтажной панели для установки модулей ЦП, модулей основной памяти и одной платы в/в (IOD).
Каждый модуль ЦП, построенный на базе PowerPC 601/604, включает два микропроцессора и связанные с ними кэши. Имеется возможность модернизации системы, построенной на базе процессоров 601, путем установки модулей ЦП с процессорами 604. Смешанные конфигурации 601/604 не поддерживаются.
Дочерняя плата ввода/вывода (
IOD
)
работает в качестве моста между шинами MCA и комплексом ЦП и памяти. Поддерживаются 2 канала MCA со скоростью передачи 160 Мбайт/с каждый. Хотя поставляемая сегодня подсистема в/в базируется на технологии MCA, это не является принципиальным элементом архитектуры PowerScale. В настоящее время проводятся исследования возможностей реализации нескольких альтернативных шин ввода/вывода, например, PCI.
Каждая плата памяти состоит из четного числа банков. Максимальное число банков равно 16. Объем памяти на каждой плате может быть 64, 256 или 512 Мбайт.
Коммутатор данных (DCB) интегрирован в нескольких СБИС (4х16 бит) и функционально соединяет магистраль данных MPB_SysBus с подсистемой памяти, модулями ЦП и платой в/в. Ширина магистрали данных DCB на уровне массива памяти составляет 256 + 32 бит, а ширина магистрали данных для каждого порта ЦП и порта в/в равна 64 + 8 бит. Операции DCB управляются контроллером системной памяти (SMC) с помощью командной шины, обеспечивающей необходимую коммутацию устройств.
Рис. 5. Физическая реализация PowerScale
2.2.Семейство UNIX-серверов Escala
Основные характеристики серверов Escala в зависимости от применяемого конструктива даны в таблице 1. Системы семейства Escala обеспечивают подключение следующих коммуникационных адаптеров: 8-, 16- и 128-входовых адаптеров асинхронных последовательных портов, 1- или 4-входовых адаптеров портов 2 Мбит/с X.25, а также адаптеров Token-Ring, Ethernet и FDDI.
Таблица 1
МОДЕЛЬ Escala |
M101 |
M201 D201 D401 R201 |
Mini-Tower |
DesksideRack-Mounted |
|
ЦП (PowerPC 601) |
||
Тактовая частота (МГц) |
75 |
75 75 75 75 |
Число процессоров |
ј |
2/4 2/8 4/8 2/8 |
Размер кэша второго уровня (Кб) |
512 |
512 1024 1024 1024 |
ПАМЯТЬ |
||
Стандартный объем (Мб) |
32 |
6464 64 64 |
Максимальный объем (Мб) |
512 |
512 2048 2048 2048 |
ВВОД/ВЫВОД |
||
Тип шины |
MCA |
MCA MCA MCA MCA |
Пропускная способность (Мб/с) |
160 |
160 160 2x160 2x160 |
Количество слотов |
6 |
6 15 15 16 |
Емкость внутренней дисковой памяти Гб) |
1/18 |
1/18 2/36 4/99 - |
Количество посадочных мест |
||
3.5" |
4 |
4 7 7 7 |
5.25" |
2 |
2 3 3 3 |
Емкость внешней дисковой памяти (Гб) |
738 |
738 1899 1899 2569 |
3. Серверы фирмы DEC
Корпорация Digital Equipment широко известна в мире и является одной из крупнейших компьютерных компаний, компьютеры которой остаются популярными уже в течение почти 40 лет (начиная с ее основания в 1957 году и выпуска первых машин PDP-1 в 1960 г.).
Компания Digital широко известна своими сериями мини-ЭВМ PDP-11 и VAX, работающими под управлением операционных систем RSX11M и VMS соответственно.
В настоящее время корпорация Digital сконцентрировала основные усилия на разработке и производстве современных 64-разрядных RISC-систем. Новейший микропроцессор Alpha DECchip 21164 на сегодня является самым быстрым микропроцессором. Архитектура Alpha полностью сохраняет преемственность поколений компьютеров: практически все программное обеспечение ЭВМ VAX работает и на новых системах Alpha.
3.1. Семейство компьютеров Alpha
Отличительная черта платформы Alpha - это сбалансированность. Благодаря 64-разрядной архитектуре и высокоскоростным каналам связи с периферией Alpha поддерживает работу с огромными массивами данных, как на дисках, так и в оперативной памяти, что является весьма критичным для многих приложений.
Другим отличительным качеством платформы Alpha является ее универсальность с точки зрения применения различных операционных систем (NetWare, Pick, DECelx, OpenVMS, Digital UNIX, Windows NT).
Семейство серверов Alpha представляет собой полный ряд систем: от минимальной конструкции до сервера крупной распределенной сети. Ниже дано описание основных свойств этих компьютеров и средств их реализации.
Высокая надежность и доступность:
"Горячее" переключение дисков, т.е. внутренний диск может быть заменен во время работы сервера.
Код коррекции ошибок (ECC, Error Correcting Code). Серверы Alpha включают ECC для основной и кэш- памяти. При использовании этой технологии происходит постоянная проверка памяти, причем при этом ошибки не только обнаруживаются, но и автоматически корректируются.
Технология дублирования дисков (Redundant Array of Inexpensive Disks, RAID)
Двойная шина SCSI.
Дублирование источников питания.
Автоматический перезапуск системы. При сбое в операционной системе эта возможность минимизирует время недоступности системы.
Управление температурным режимом. Системы AlphaServer включают температурные и другие датчики, позволяющие следить за состоянием системы.
Открытая архитектура:
Шина PCI, обеспечивающая скорость передачи 132 Мб/с и соответствие международным стандартам.
Стандартные слоты EISA, предоставляющие возможность использования большого количества стандартных карт.
Высокоскоростной интерфейс SCSI-2 для подключения до 7 периферийных устройств, обеспечивающие в два раза более высокую скорость передачи шины SCSI и возможность подключения различных стандартных периферийных устройств.
Сетевые опции, включающие Ethernet, Token Ring, FDDI.
Средства управления:
Реализация удаленного управления.
Расширенные средства диагностики.
Получение информации о конфигурации системы.
Программное обеспечение управления нестандартными ситуациями и журналы диагностики сбоев.
Расширяемость/наращиваемость:
Возможность обновления процессора ("upgrade").
Возможность подключения внешней памяти.
Использование симметричной мультипроцессорной обработки (Symmetric Multi-Processing, SMP), позволяющей добавлять дополнительные процессоры.
Гибкость выбора операционной системы (OpenVMS AXP, Digital UNIX, Microsoft Windows NT).
Использование кластеров:
Возможность построения кластерных систем.
Основные характеристики серверов AlphaServer представлены в таблице 2.
Таблица 2.
Система/ Характеристики |
AlphaServer2100 AlphaServer8200 AlphaServer8400 |
Частота |
4/233:233 МГц 300 МГц 4/275:275 МГц 4/200:200 МГц |
Число процессоров |
1-4 1-6 1-12 |
Максимальная память |
2 Гб 6 Гб 14 Гб |
Память на диске |
500 Гб 10 Тб 10 Тб |
Поддержка ввода/вывода |
3 слота PCI; 8 слотов EISA; 108 слотов PCI; 8 слотов EISA; 144 слота PCI; 8 слотов EISA; 1 слот PCI/EISA |
ECC память |
Да Да Да |
RAID |
Да Да Да |
Авто перезагрузка |
Да Да Да |
Дублирование питания |
Да Да Да |
Управление температурой |
Да Да Да |
AlphaServer
8400
AlphaServer 8400 - это реализация сервера на базе микропроцессора DECchip 21164 (частота - от 300 МГц) высокопроизводительного сервера масштаба предприятия. AlphaServer 8400 поддерживает до 12 процессоров, 14 Гб памяти и скорость ввода/вывода свыше 1,2 Гб/сек. Сбалансированная конструкция и быстрые процессоры позволяют обеспечивать обработку более 3000 транзакций в секунду. Архитектура AlphaServer 8400 разработана с учетом возможности использования будущих поколений микропроцессора Alpha. AlphaServer 8400 оснащается высокоскоростными шинами ввода/вывода PCI (144 слота на 12 физически различных шинах). Данный компьютер имеет относительно низкую стоимость в своем классе и может использоваться в качестве сервера крупной распределенной базы данных, обеспечивая при этом надежность и готовность на уровне более дорогих мэйнфреймов.
AlphaServer
8200
Компьютер AlphaServer 8200 - это одна из наиболее высокопроизводительных систем для офиса в современной промышленности. Его конфигурация может включать до шести микропроцессоров DECchip 21164. Имея все преимущества 64-разрядной Alpha-архитектуры, до 6 Гб памяти и до 108 слотов PCI, данный сервер обеспечивает возможности роста даже для самых крупных и сложных приложений. AlphaServer 8200 поддерживает операционные системы OpenVMS, Digital UNIX и Windows NT. Небольшие предприятия и крупные подразделения могут использовать производительность, мощность и надежность этого сервера для приложений, которые прежде функционировали на системах масштаба крупного предприятия. Большие базы данных, процессы моделирования, системы поддержки принятия решений - вот несколько примеров приложений, которые легко поддерживаются AlphaServer 8200.
AlphaServer
2100
Системы AlphaServer 2100 (Рис.7.) представляют собой недорогие SMP-серверы, базирующиеся на шинах PCI/EISA. Они поддерживают операционные системы OpenVMS, Digital UNIX и Windows NT. Данные компьютеры могут использоваться в качестве серверов высокопроизводительных коммерческих приложений и баз данных, а также серверов крупных локальных сетей. AlphaServer 2100 4/233 (микропроцессор DECchip 21064A) имеет частоту 233 МГц с кэш-памятью 1 Мб; AlphaServer 2100 4/275 (микропроцессор DECchip 21064A) – 275 МГц с кэш-памятью 4 Мб; AlphaServer 2100 5/250 (микропроцессор DECchip 21164) – 250 МГц с кэш-памятью 4 Мб. Каждая система может иметь конфигурацию с 1-4 процессорами, поддерживает до 2 Гб оперативной памяти и до 64 Гб внутренней дисковой памяти. Пропускная способность системной шины равна 667 Мб/сек, а высокопроизводительная подсистема ввода/вывода PCI имеет пиковую пропускную способность 132 Мб/сек. Шина ввода/вывода EISA (33 Мб/сек) поддерживает широкий спектр стандартных устройств.
Микропроцессор
21066, 21164 – 2-х или 4-х канальный суперскалярный процессор имеет следующие характерные черты:
· Все команды фиксированной длины и формата;
· FPU поддерживет формат чисел как фирмы DEC, так и стандарта IEEE;
· 32 64-х разрядных регистра для целых чисел и 32 64-х разрядных для чисел с плавающей точкой;
· Встроеный кэш прямого отображения для чтения/записи данных;
· Встроеный кэш прямого отображения для чтения команд;
· Встроенные буфера преобразования инструкций и данных.
Системная шина
– соединяет процессор с памятью и подсистемой ввода/вывода. Является синхронной, мультипликсированной 128-битной шиной адреса/данных. На шине используется контроль четности. Все передачи длиной 32 байта и пиковая производительность – 666Mb/sec.
Система памяти:
Высокая скорость обращения достигается:
· Наличием буферов потокового чтения;
· Контроль по четности адреса и данных;
· Регенерация проводиться с учетом обращений к памяти;
На Рис. 6. представлена блок-схема микропроцессора 21066. Основными компонентами этого процессора являются: кэш-память команд, целочисленное устройство, устройство плавающей точки, устройство выполнения команд загрузки/записи, кэш-память данных, а также контроллер памяти и контроллер ввода/вывода.
Кэш-память команд представляет собой кэш прямого отображения емкостью 8 Кбайт. Команды, выбираемые из этой кэш-памяти, могут выдаваться попарно для выполнения в одно из исполнительных устройств. Кэш-память данных емкостью 8 Кбайт также реализует кэш с прямым отображением. При выполнении операций записи в память данные одновременно записываются в этот кэш и в буфер записи. Контроллер памяти или контроллер ввода/вывода шины PCI обрабатывают все обращения, которые проходят через расположенные на кристалле кэш-памяти первого уровня. Контроллер памяти прежде всего проверяет содержимое внешней кэш-памяти второго уровня, которая построена на принципе прямого отображения и реализует алгоритм отложенного обратного копирования при выполнении операций записи. При обнаружении промаха контроллер обращается к основной памяти для перезагрузки соответствующих строк кэш-памяти. Контроллер ввода/вывода шины PCI обрабатывает весь трафик, связанный с вводом/выводом. Под управлением центрального процессора он выполняет операции программируемого ввода/вывода. Трафик прямого доступа к памяти шины PCI обрабатывается контроллером PCI совместно с контроллером памяти. При выполнении операций прямого доступа к памяти в режиме чтения и записи данные не размещаются в кэш-памяти второго уровня. Интерфейсы памяти и PCI были разработаны специально в расчете на однопроцессорные конфигурации и не поддерживают реализацию мультипроцессорной архитектуры.
Рис. 6. Основные компоненты процессора Alpha
21066
Рис.7.
Архитектура AlphaServer 2100A
На рисунке 7 показан пример системы, построенной на базе микропроцессора 21066. В представленной конфигурации контроллер памяти выполняет обращения как к статической памяти, с помощью которой реализована кэш-память второго уровня, так и к динамической памяти, на которой построена основная память. Для хранения тегов и данных в кэш-памяти второго уровня используются кристаллы статическая памяти с одинаковым временем доступа по чтению и записи.
Конструкция поддерживает до четырех банков динамической памяти, каждый из которых может управляться независимо, что дает определенную гибкость при организации памяти и ее модернизации.
Высокоскоростная шина PCI имеет ряд привлекательных свойств. Помимо возможности работы с прямым доступом к памяти и программируемым вводом/выводом она допускает специальные конфигурационные циклы, расширяемость до 64 бит, компоненты, работающие с питающими напряжениями 3.3 и 5 В, а также более быстрое тактирование. Базовая реализация шины PCI поддерживает мультиплексирование адреса и данных и работает на частоте 33 МГц, обеспечивая максимальную скорость передачи данных 132 Мбайт/с. Шина PCI непосредственно управляется микропроцессором. На рисунке 5.18 показаны некоторые высокоскоростные периферийные устройства: графические адаптеры, контроллеры SCSI и сетевые адаптеры, подключенные непосредственно к шине PCI. Мостовая микросхема интерфейса ISA позволяет подключить к системе низкоскоростные устройства типа модема, флоппи-дисковода и т.д.
3.Серверы компании Hewlett-Packard
Компания Hewlett-Packard была учреждена в Калифорнии в 1938 году с целью создания электронного тестирующего и измерительного оборудования.
Основой разработки современных компьютеров Hewlett-Packard является архитектура PA-RISC. Она была разработана компанией в 1986 году, и с тех пор, благодаря успехам интегральной технологии, прошла несколько стадий своего развития от многокристального до однокристального исполнения. Архитектура PA-RISC разрабатывалась с учетом возможности построения многопроцессорных систем, которые реализованы в старших моделях серверов.
Как известно, одна из главных причин перехода к RISC — стремление выполнять команду за один такт. Для достижения большей производительности разработчики RISC создают процессоры, выполняющие за один такт несколько команд. Такие процессоры называют суперскалярными. Эти процессоры сложнее — их реализуют, как правило, на нескольких кристаллах, что ведет к ограничению частоты. Hewlett-Packard первой разработала суперскалярный процессор на одном кристалле с высокой тактовой частотой. Для того, чтобы более полно использовать возможности суперскалярных процессоров, в набор PA-RISC включены составные команды, которые выполняют на разных частях кри-сталла сразу несколько операций. Вследствие этого, PA-
Еще одна особенность PA-RISC — большие внешние кэши (Рис. 8.). В отличие от некоторых других процессоров, где размер кэша достаточен лишь для быстрого выполнения простых тестов, кэши PA-RISC форсируют работу реальных приложений и служат ключевым отличием от других реализаций RISC. Хранение команд и данных осуществляется в раздельных кэшах, причем процессор соединяется с ними с помощью высокоскоростных 64-битовых шин. Кэш-память реализуется на высокоскоростных кристаллах статической памяти (SRAM), синхронизация которых осуществляется непосредственно на тактовой частоте процессора. При тактовой частоте 100 МГц каждый кэш имеет полосу пропускания 800 Мбайт/с при выполнении операций считывания и 400 Мбайт/с при выполнении операций записи. Микропроцессор аппаратно поддерживает различный объем кэш-памяти: кэш команд может иметь объем от 4 Кбайт до 1 Мбайт, кэш данных - от 4 Кбайт до 2 Мбайт. Чтобы снизить коэффициент промахов применяется механизм хеширования адреса. В обоих кэшах для повышения надежности применяются дополнительные контрольные разряды, причем ошибки кэша команд корректируются аппаратными средствами.
Еще один метод, используемый в RISC-архитектурах для повышения производительности — это конвейер. Для ускорения выполнения команды ее обработка разбивается на ступени: выборка, декодирование, выполнение, обратная запись и т.д. Все ступени конвейера работают одновременно. Наличие конвейера — главный фактор, благодаря которому RISC превосходит CISC. 5-ступенчатый конвейер минимизирует задержки из-за остановов, характерные для суперконвейерных архитектур.
Другими важными особенностями PA-RISC являются:
Расширенные возможности 64-разрядных вычислений.
Встроенная поддержка графики. Набор команд PA-RISC расширен графическими возможностями. Эти команды наряду с огромной производительностью вещественных вычислений позволяют добиться замечательных характеристик графики без помощи графических процессоров.
Встроенная поддержка мультимедиа. Первым процессором с поддержкой мультимедиа был PA-7100LC. Он мог декодировать видео MPEG-1 со скоростью 30 кадров в секунду с полным стереозвуком. Благодаря встроенной поддержке типов данных мультимедиа в базовой архитектуре, Hewlett-Packard в состоянии обеспечить очень высокую скорость отображения без дополнительных затрат.
Рис. 8
. Блок-схема взаимодействия процессора и внешних кэшов
Процессор подсоединяется к памяти и подсистеме ввода/вывода посредством синхронной шины. Процессор может работать с тремя разными отношениями внутренней и внешней тактовой частоты в зависимости от частоты внешней шины: 1:1, 3:2 и 2:1. Это позволяет использовать в системах разные по скорости микросхемы памяти.
Процессор PA-8xxx вобрал в себя все известные методы ускорения выполнения команд. В его основе лежит концепция "интеллектуального выполнения", которая базируется на принципе внеочередного выполнения команд. Это свойство позволяет PA-8000 достигать пиковой суперскалярной производительности благодаря широкому использованию механизмов автоматического разрешения конфликтов по данным и управлению аппаратными средствами. Эти средства хорошо дополняют другие архитектурные компоненты, заложенные в структуру кристалла: большое число исполнительных функциональных устройств, средства прогнозирования направления переходов и выполнения команд по предположению, оптимизированная организация кэш-памяти и высокопроизводительный шинный интерфейс.
PA-8500 (Рис. 9.) является 4-х канальным суперскалярным процессором, выполняющим 4 операции за такт. PA-8500 имеет следующие архитектурные особенности:
Наибольший размер кэша первого уровня на процессор (1 МБ - данные, 0.5 МБ - инструкции).
По два 64-разрядных модуля с плавающей точкой для функций загрузки/выгрузки, умножения/сложения, деления/извлечения квадратного корня, целочисленных, сдвиговых/логических функций каждый - всего 10 функциональных модулей.
Буфер предсказания ветвления для 56 инструкций (instruction reorder buffer - IRB)
Спекулятивное выполнение
Статическое и динамическое предсказание ветвлений
Перечисленные особенности рассматриваются ниже более подробно.
PA-8500 реализован в 0.25 микронной технологии. Новая технология позволяет разместить на чипе большой кэш первого уровня, что дает возможность повысить частоту без необходимости наличия связанных кэшей второго уровня.
Кэш второго уровня имеет цикл медленнее цикла кэша первого уровня, а также обладает более низкой пропускной способностью. Задержка, вызванная доступом к более медленному кэшу второго уровня, сочетается с необходимостью извлечь полную строку кэша для заполнения кэша первого уровня, а не просто заполнить его текущими данными. Большой кэш первого уровня поможет избежать ограничений многоуровневой структуры кэша, так как направляет потоки инструкций и данных непосредственно в хранилище данных.
Рис.9
. Архитектура процессора PA
-8500
Процессор PA-8500 предоставляет доступ к большему объему данных за два такта из своего 0.5MB кэша инструкций и 1MB кэша данных, чем многие системы могут предоставить за 10 и более тактов из кэша второго уровня. Механизм установки очередности инструкций поддерживает постоянную загрузку функциональных модулей процессора, предотвращая их простой, как это обычно происходит в традиционных конвеерных процессорах.
Одной из задач при разработке PA-8500 было создание чипового кэша, который бы мог уместиться в выделенную зону чипа и, тем не менее, поддерживал бы высокий уровень установки очередности инструкций. Такое решение требует, чтобы кэш данных поддерживал выполнение двух одновременных операций памяти при поддержке двухтактного доступа. Задача была решена использованием двухбанковой системы, разработанной для внекристального кэша данных. Система реализована в виде простого однопортового RAM, что помогло сохранить пространство на чипе. Поскольку каждый запрос имеет отношение только к половине кэша, физическая длина доступа была уменьшена, что позволило достичь меньшего времени доступа.
Все данные, хранящиеся в кэше PA-8500, защищены от возникновения однобитовых ошибок. Необходимо принять все меры к сохранению целостности данных. Для кэша инструкций достаточно простой четности, поскольку его содержимое всегда безошибочно. Всякий раз, когда доступ к инструкциям сигнализирует об ошибке, доступ обрабатывается как неудачное обращение в кэш. Строки кэша с нарушенными данными аннулируются и данные поступают из памяти заново.
Больше усилий необходимо предпринять для обеспечения защиты кэша данных, потому как коррекция необходима когда неверная строка кэша нарушается. PA-8500 предоставляет 6 лишних битов на слово для возможности коррекции однобитовой ошибки и защиты кэша данных. Однако, коррекция происходит не прямо во время доступа к кэшу, так как это бы увеличило бы время задержки доступа. Вместо этого, ошибки распознаются параллельной логикой коррекции ошибок. Если ошибка распознана, поврежденные данные выбрасываются из кэша. Если строка неверна, коррекция ошибки происходит на пути копирования. Если строка верна, она аннулируется, а доступ производится еще раз, что заставляет строку переместиться в кэш с исправленными данными.
При наличии большого чипового кэша первого уровня в сочетании с мощным механизмом предсказания ветвления, PA-8500 не нуждается в дорогом, присоединенном напрямую к процессору кэше второго уровня. Что, в свою очередь, устраняет необходимость в интегрированном контроллере кэша второго уровня. В дополнение к этому, нет необходимости в большом количестве выводов процессора, обслуживающих соединения с внешними RAM.
Процессор PA-8500 обладает раздельной архитектурой, в которой логика интерпретирования инструкций не связана с конвеерной логикой функциональных модулей. Подобная архитектура позволяет процессору частично интерпретировать инструкции задолго до действительного исполнения инструкций функциональным модулем (модулями). Интерпретированные инструкции хранятся в очереди внутри чипа. Одновременно PA-8500 может таким образом обрабатывать до 56 инструкций.
Процессор обрабатывает до 4 инструкций за такт. Для поддержания суперскалярной производительности на максимально возможном уровне процессор PA-8500 содержит в себе десять функциональных модулей: два независимых модуля для операций с плавающей точкой, два независимых функциональных модуля деления и извлечения квадратного корня, два независимых 64-разрядных целочисленных арифметических логических модуля (ALU), два модуля сдвиговых/логических функций (хотя эти модули разделены с целочисленными ALU, за такт ими выполняются лишь две из возможных четырех инструкций), и два независимых модуля загрузки/выгрузки.
Что касается важных функциональных модулей для операций с плавающей точкой, каждый из них способен выполнить одну инструкцию умножения/сложения за такт. Таким образом, пиковая производительность операций с плавающей точкой в четыре раза превышает тактовую частоту. Важно отметить, что инструкция умножения/сложения является комбинированной, - то есть для выполнения одной инструкции необходимо выполнение двух операций. Это не просто повышает производительность, выполнение комбинации умножения/сложения требует одной инструкции в IRB, что еще более повышает эффективность процессора. Инструкция умножения/сложения имеет трех тактовую задержку, но при наличии конвеерности, результат выдается каждый такт.
Для того, чтобы использовать весь набор функциональных модулей, процессор оснащен 56-командным буфером предсказания ветвлений (IRB - instruction reorder buffer) двух портовым кэшем данных и способностью выбирать четыре инструкции за такт из большого кэша инструкций. Процессор может хранить до 56 инструкций в буфере и выполнять их в тот момент, когда необходимые данные и функциональный модуль (модули) станут доступными. Взаимосвязь данных и инструкций, хранящихся в буферах известна, инструкции поступают в функциональные модули точно в момент, когда данные и функциональные модули будут доступны.
Могучим оружием PA-8500 является его способность производить спекулятивное выполнение, которое заставляет процессор "отгадывать" путь выполнения и выполнять инструкции по этому пути. Если догадка неверна, спекулятивно выполненные инструкции сбрасываются. Спекулятивное выполнение поддержано интеллектуальным механизмом предсказания ветвлений, базирующемся на 2,048-командном кэше истории ветвления. Предсказание ветвлений определяет порядок выполнения инструкций (то есть, какая инструкция, по его мнению, будет выполнена) и эти инструкции спекулятивно выполняются. Если ответвление предсказано неправильно, эти инструкции просто сбрасываются, в случае если они еще не удалены.
Таблица истории ветвлений (BHT - branch history table) в PA-8500 является стандартной матрицей двухбитных ячеек, но информация, хранимая в них, не является информацией о направлении ответвления (выбранного или невыбранного). Модернизированный BHT позволяет PA-8500 сочетать возможности статического и динамического методов предсказания ветвлений в одной аппаратной структуре, что не требует наличия двух или трех аппаратных матриц, как в некоторых других методах предсказания ветвлений.
Конструкция процессора обеспечивает реализацию двух способов построения многопроцессорных систем. При первом способе каждый процессор подсоединяется к интерфейсному кристаллу, который наблюдает за всеми транзакциями на шине основной памяти. В такой системе все функции по поддержанию когерентного состояния кэш-памяти возложены на интерфейсный кристалл, который посылает процессору соответствующие транзакции. Кэш данных построен на принципах отложенного обратного копирования и для каждого блока кэш-памяти поддерживаются биты состояния "частный" (private), "грязный" (dirty) и "достоверный" (valid), значения которых меняются в соответствии с транзакциями, которые выдает или принимает процессор.
Второй способ организации многопроцессорной системы позволяет объединить два процессора и контроллер памяти и ввода-вывода на одной и той же локальной шине памяти. В такой конфигурации не требуется дополнительных интерфейсных кристаллов и она совместима с существующей системой памяти. Когерентность кэш-памяти обеспечивается наблюдением за локальной шиной памяти. Пересылки строк между кэшами выполняются без участия контроллера памяти и ввода-вывода. Такая конфигурация обеспечивает возможность построения очень дешевых высокопроизводительных многопроцессорных систем.
Серверы HP
9000 класса D
В секторе рынка серверов рабочих групп компания HP представлена довольно широкой серией систем HP9000 класса D. Это серия систем с относительно низкой стоимостью, которая конкурирует с серверами, построенными на базе ПК. 1–2–процессорные серверы начального уровня на процессорах РА–7300LC и РА–8000. Изначально позиционировались как серверы для малого бизнеса, однако сейчас производительность новых старших моделей этого класса вполне достаточна для обслуживания очень больших организаций (несколько сотен активных пользователей СУБД). При этом стоимость их по–прежнему соответствует стоимости серверов нижнего уровня. Работают под управлением операционной системы HP-UX.
Серверы HP
9000 класса K
1–6–процессорные серверы среднего уровня на процессорах РА–8000 и РА8200. Модель К570 с шестью процессорами РА–8200 200MHz является рекордсменом по скорости обработки транзакций в классе средних серверов — 21.358tpm (ближайший конкурент — AlphaServer 4100 с четырьмя процессорами DECchip 21164 600MHz — показал 15.100tpm). Официальные данные по быстродействию вышедших в феврале моделей K380/K580 еще не опубликованы, однако, по оценкам НР, их транзакционная производительность на 15–20% выше, чем у К570. Серверы способны обслужить до тысячи активных пользователей СУБД, а значит, перекрывают потребности подавляющего большинства организаций.
Архитектуры D– и K–Class схожи: процессоры, память и контроллеры ввода/вывода общаются через внутреннюю шину с производительностью 960MB/sec. Различается максимальное число процессоров, а также интерфейсы для подключения плат расширения: в D–Class используются шины EISA и HP–HSC (High Speed Connect, пиковая скорость 160MB/sec), а в K–Class — шины HP–HSC и HP–PB (Precision Bus, пиковая скорость 32 MB/sec). Стандартные интерфейсы серверов включают: 2 x RS–232 (для консоли и UPS), Centronics, Ethernet, SCSI–2 и/или F/W SCSI–2, многие модели — также порт удаленного управления со встроенным модемом. Платы расширения включают F/W SCSI–2, Fibre Channel, Ethernet, Token–Ring, FDDI, 100VG, 100Base–T, ATM, ISDN, X.25, SNA, мультиплексоры на различное число портов RS–232.
В конструкции сервера предусмотрены 4 отсека для установки дисковых накопителей, а с помощью специальных стоек (кабинетов) расширения емкость дисковой памяти системы может быть доведена до 8.3 Тбайт. Основные параметры серверов HP9000 класса К представлены в таблице 3.
Таблица 3. Основные характеристики серверов HP
9000 класса K
МОДЕЛЬ |
K210 |
K220 |
K260 K420 K450 K460 |
ЦП |
|||
Тип процессора |
PA7200 |
PA7200 |
PA8000 PA7200 PA8000 PA8000 |
Тактовая частота (МГц) |
120 100(D210) |
120 |
180 120 160 180 |
Число процессоров |
1-4 |
1-4 |
1-4 1-4 1-4 1-4 |
Пропускная способность системной шины (Мб/сек) |
960 |
960 |
960 960 960 960 |
Размер кэша (Кб) (команд/данных) |
256/ 256 |
1024/ 1024 |
1024/1024 1024/1024 1024/1024 1024/1024 |
ПАМЯТЬ |
|||
Минимальный объем (Мб) |
64 |
128 |
128 128 128 128 |
Максимальный объем (Гб) |
2.0 |
2.0 |
2.0 3.0 4.0 4.0 |
ВВОД/ВЫВОД |
|||
Количество слотов HP-HSC |
1 |
1 |
1 5 5 5 |
Количество слотов HP-PB |
4 |
4 |
4 8 8 8 |
Максимальная пропускная способность подсистемы в/в (Мб/сек) |
288 |
288 |
288 288 288 288 |
Количество отсеков для дисков Fast/Wide SCSI-2 |
4 |
4 |
4 4 4 4 |
Максимальная емкость дисковой памяти (Tб) |
3.8 |
3.8 |
3.8 8.3 8.3 8.3 |
Количество последовательных портов |
2 |
2 |
2 2 2 2 |
Количество параллельных портов |
1 |
1 |
1 1 1 1 |
Сетевые интерфейсы |
Ethernet |
Ethernet |
Ethernet Ethernet Ethernet Ethernet |
Симметричные многопроцессорные серверы HP
9000 класса Т
Самым мощным и расширяемым рядом корпоративных серверов компании HP на базе ОС UNIX является семейство HP9000 класса T. Это следующее поколение серверов, которое было разработано компанией вслед за HP9000 model 870. В настоящее время объявлены 12-процессорные системы Т600 на базе процессора PA-8000, поставки которых должны начаться в 1997 году. Существующие системы (Т500 и Т520) допускают замену старых процессоров на процессоры PA-8000.
Характерной особенностью архитектуры серверов класса Т является большая емкость кэш-памяти команд (1 Мбайт) и данных (1 Мбайт) у каждого процессора системы. Серверы класса T используют 64-битовую шину с расщеплением транзакций, которая поддерживает до 14 процессоров, работающих на частоте 120 МГц. Эта шина обеспечивает в установившемся режиме пропускную способность 768 Мбайт/с при пиковой производительности 960 Мбайт/с.
Серверы класса T могут поддерживать до 8 каналов HP-PB (HP Precision Bus), работающих со скоростью 32 Мбайт/с, однако в стойке основной системы поддерживается только один канал HP-PB. Для обеспечения полной конфигурации подсистемы ввода/вывода необходима установка 7 стоек расширения, занимающих достаточно большую площадь. Общая пиковая полоса пропускания подсистемы в/в в полностью сконфигурированной 8-стоечной системе составляет 256 Мбайт/с, что меньше полосы пропускания подсистемы в/в серверов класса К. Однако максимальная емкость дисковой памяти при использовании RAID-массивов достигает 20 Тбайт.
Указанная двухярусная шинная структура сервера обеспечивает оптимальный баланс между требованиями процессоров и подсистемы ввода/вывода, гарантируя высокую пропускную способность системы даже при тяжелой рабочей нагрузке. Доступ процессоров к основной памяти осуществляется посредством мощной системной шины процессор-память, поддерживающей когерентное состояние кэш-памятей всей системы. В будущих системах планируется 4-кратное увеличение пропускной способности подсистемы ввода/вывода.
4. Отказоустойчивые серверы компании Tandem Computer Inc.
Надежные вычислительные машины являются ключевыми элементами для построения наиболее ответственных прикладных систем в сфере розничной торговли, финансов и телефонной коммутации. На современном этапе развития информационных технологий подобные приложения предъявляют широкий диапазон требований к масштабируемости, поддержке открытых стандартов и обеспечению отказоустойчивости систем. Одной из наиболее известных в мире фирм, работающих в данной области, является компания Tandem. В настоящее время для удовлетворения различных требований рынка надежных вычислений она поставляет две различные линии своих изделий: системы Tandem NonStop и системы Tandem Integrity.
Системы Tandem NonStop, первые модели которых появились еще в 1976 году, базируются на реализации многопроцессорной обработки и модели распределенной памяти. Для обеспечения восстановления после сбоев аппаратуры и ошибок программного обеспечения эти системы используют механизмы передачи сообщений между процессными парами. База данных NonStop SQL, в основе архитектуры которой лежит модель системы без разделения ресурсов (shared-nothing), показала линейную масштабируемость в приложениях обработки транзакций на конфигурациях, содержащих более 100 процессоров. Первоначально системы NonStop были нацелены на создание приложений оперативной обработки транзакций (OLTP), но в настоящее время интенсивно используются и в других ответственных приложениях (системах передачи сообщений и системах поддержки принятия решений).
В 1990 году компания Tandem объявила о начале выпуска систем Integrity. Для маскирования ошибок в работе систем Integrity используются методы аппаратной избыточности (трехкратное резервирование), обеспечивающие продолжение непрерывной работы в условиях сбоев без воздействия на приложения.
Хотя указанные две линии изделий компании имеют отличия, они удовлетворяют целому ряду общих требований и используют многие общие технологии и компоненты. Все системы Tandem гарантируют целостность данных и устойчивость к сбоям, и кроме того, обеспечивают масштабируемость и возможность производить модернизацию системы в режиме online. Обе линии изделий NonStop и Integrity позволяют выполнять техническое обслуживание систем в режиме online (установку и замену плат, источников питания и вентиляторов без остановки системы и выключения питания). Применяемые конструкции допускают установку обеих систем в офисных помещениях, стандартных машинных залах вычислительных центров или на телефонных станциях. В системах используются много общих компонентов таких, как накопители на дисках, элементы памяти и микропроцессоры.
В 1991 году компания Tandem начала программу объединения лучших свойств обеих систем в единой линии изделий. Основой для объединения архитектур послужила разработка главного транспортного средства - системной сети ServerNet. ServerNet представляет собой многоступенчатую пакетную сеть, используемую как для организации межпроцессорных связей, так и для реализации связей с устройствами ввода/вывода. ServerNet обеспечивает эффективные средства для обнаружения и изоляции неисправностей, а также реализует прямую поддержку альтернативных каналов передачи данных для обеспечения непрерывной работы системы при наличии отказов сети. Разработка этой сети предоставляет новые возможности развития обеих линий изделий, включая большую масштабируемость, интерфейсы с открытыми стандартами шин и улучшенную поддержку мультимедийных приложений.
Архитектура систем NonStop
На Рис. 10 показана базовая архитектура систем NonStop. Эта архитектура предполагает объединение двух или более ЦП при помощи дублированной высокоскоростной межпроцессорной шины. Каждый процессор имеет один или несколько каналов в/в, соединяющих его с двухпортовыми дисковыми контроллерами и коммуникационными адаптерами. В действительности в первых пяти поколениях систем NonStop (NonStop I, II, TXP, CLX и VLX) было реализовано только по одному каналу в/в на процессор, а пара разделяемых шин обеспечивала объединение до 16 процессоров. В более поздних системах NonStop Cyclone и Himalaya K10000/20000 для увеличения пропускной способности системы межсоединений была применена сегментация межпроцессорной шины на базе четырехпроцессорных секций. Секции могут объединяться с помощью оптоволоконных линий связи в узлы (до четырех секций в узле). Системы NonStop II, TXP, VLX и Cyclone поддерживают также возможность построения оптоволоконного кольца, которое позволяет объединить между собой до 14 узлов и обеспечивает быстрый обмен данными внутри домена, состоящего из 224 процессоров. В системе Cyclone к каждому процессору могут подсоединяться несколько каналов в/в, причем каждые четыре канала управляются своей парой контроллеров прямого доступа к памяти.
Рис. 10. Архитектура NonStop
После разработки и успешных испытаний системы Cyclone компания Tandem перешла на применение в своих изделиях RISC процессоров компании MIPS (вместо использовавшихся ранее заказных CISC процессоров). В системах CLX/R и К200 используются процессоры R3000, а в системах Himalaya K10000, K20000 и K2000 - процессоры R4400. Одновременно с объявлением в 1993 году о начале поставок нового семейства систем Himalaya компания анонсировала также оптоволоконную сеть межпроцессорного обмена TorusNet, предназначенную для построения крупномасштабных кластеров. TorusNet обеспечивает соединение четырехпроцессорных секций с помощью избыточной сети с топологией двухмерного тора.
Все аппаратные компоненты систем NonStop построены на основе принципа "быстрого проявления неисправности" (fail fast disign), в соответствии с которым каждый компонент должен либо функционировать правильно, либо немедленно останавливаться. В более ранних системах Tandem реализация этого принципа широко опиралась на использование методов проверки четности, избыточного кодирования или проверки допустимости состояния при выполнении каждой логической функции. Современные конструкции для обнаружения ошибок в сложной логике полагаются главным образом на методы дублирования и сравнения. Все системы, имеющие ЦП на базе микропроцессоров, для гарантии целостности данных и быстрого обнаружения неисправностей выполняют сравнение выходов дублированных и взаимно синхронизированных микропроцессоров. В системах NonStop ответственность за восстановление после обнаружения неисправности в аппаратуре возлагается на программное обеспечение.
Операционная система NonStop Kernel систем NonStop непрерывно развивалась и к настоящему времени превратилась из патентованной фирменной операционной системы в систему, которая обеспечивает полностью открытые интерфейсы, построенные на основе промышленных стандартов. Для поддержки устойчивости критически важных процессов в NonStop Kernel реализованы низкоуровневые механизмы контрольных точек, а также специальный слой программных средств, на котором строится как патентованная среда Guardian, так и открытая среда Posix-XPG/4.
Архитектура систем Integrity
Основной задачей компании Tandem при разработке систем семейства Integrity было обеспечение устойчивости к одиночным отказам аппаратуры при соблюдении 100% переносимости стандартных UNIX-приложений. Для маскирования аппаратных неисправностей в системах Integrity используется тройное модульное резервирование (TMR - triple-modular redundancy) в процессоре, кэш-памяти и основной памяти.
Три процессора выполняют одинаковые потоки команд, но работают с независимой синхронизацией. Процессоры синхронизируются во время обработки обращений к глобальной памяти и при обслуживании внешних прерываний. Все обращения к глобальной памяти с выходов резервируемых процессоров поступают через схемы голосования в пару контроллеров TMR. Схемы голосования на основе сравнения обращений между собой обнаруживают возможные неисправности процессоров и посылают достоверные запросы в остальную часть системы. Для обнаружения неисправностей в конструкциях контроллера TMR и процессора в/в используются средства самоконтроля. Каждый периферийный контроллер содержит стандартную плату VME, которая через специальную плату адаптера подсоединяется к паре шин в/в, защищенных четностью. Плата адаптера позволяет осуществлять коммутацию контроллера с двумя процессорами в/в.
В системах Integrity реализация платы основного процессора не требует сложной логики самоконтроля. Однако это делает ее конструкцию отличной от конструкции процессорной платы систем NonStop, хотя в обеих используются одни и те же микропроцессоры. Архитектура новых систем объединяет требования базовой конструкции Integrity при сохранении совместимости с требованиями систем NonStop.
Архитектура системы на базе ServerNet
Новая системная архитектура, построенная на базе ServerNet, объединяет свойства систем NonStop и Integrity. Она решает общую задачу построения отказоустойчивых систем различного масштаба путем реализации гибких методов соединения стандартных функциональных блоков (модулей ЦП/памяти, подсистем внешней памяти и коммуникационных адаптеров).
Рис. 11. Архитектура системы на базе ServerNet
.
На Рис. 11. показана архитектура типичной системы, построенной на базе ServerNet. Эта система состоит из нескольких процессорных узлов и узлов ввода/вывода, объединенных друг с другом системной сетью ServerNet. Базовым элементом системной сети ServerNet является маршрутизатор, выполненный в виде отдельной заказной СБИС. Для обеспечения отказоустойчивости предполагается возможность построения двух независимых подсетей ServerNet: X и Y. В типовой конфигурации системы большинство ее узлов имеют двухпортовые интерфейсы, обеспечивающие подсоединение каждого узла к этим независимым подсетям. Одной из дополнительных возможностей новой архитектуры является наличие специальной шины когерентности, допускающей подключение до четырех ЦП. Эта шина обеспечивает согласованное состояние общей для нескольких процессорных узлов памяти и их кэшей при выполнении программ, разработанных в расчете на мультипроцессорную обработку в системе с разделяемой общей памятью.
При работе под управлением операционных систем, поддерживающих отказоустойчивость программными средствами (подобных NonStop Kernel), процессорные узлы выполняют независимые потоки команд, все пересылки данных осуществляются ЦП по сети ServerNet.
Как уже отмечалось, для обеспечения отказоустойчивости в системе Integrity требуются три процессорных кристалла и три массива микросхем памяти. Новая архитектура требует четырех процессорных кристаллов (два на модуль ЦП) и двух массивов микросхем памяти. Стоимость реализации этих двух подходов существенно зависит от размера памяти. Для типовых систем оба метода имеют сравнимую стоимость.
ServerNet
ServerNet представляет собой быструю, масштабируемую, надежную системную сеть, обеспечивающую гибкость соединения большого числа ЦП и периферийных устройств в/в между собой. Главными свойствами этой сети коммутации пакетов являются малая задержка и высокая надежность передачи данных. Для уменьшения задержки в сети применяется метод червячной маршрутизации, не требующий приема всего пакета до его отсылки к следующему приемнику. Физический уровень ServerNet образуют независимые каналы приема и передачи, каждый из которых имеет 9-битовое поле команд/данных и сигнал синхронизации. Поле команд/данных обеспечивает кодирование 256 символов данных и до 20 символов команд. Символы команд используются для управления уровнем звена, инициализации и сигнализации об ошибках. Кодирование в одних и тех же линиях команд и данных сокращает количество контактов и упрощает обнаружение ошибок в логике управления.
Система использует ServerNet для организации связей ЦП-ЦП, ЦП-В/В и В/В-В/В. Пересылки между микропроцессором и памятью для каждого узла ЦП остаются локальными.
Данные в сети ServerNet пересылаются со скоростью 50 Мбайт в секунду. Такая скорость передачи данных была выбрана исходя из того, чтобы превзойти потребности существующих периферийных устройств при соблюдении низких цен. В будущих поколениях ServerNet производительность линий связи будет увеличиваться по мере необходимости.
В настоящее время максимальная длина линии связи ServerNet ограничена 30 м. В будущих адаптерах предполагается увеличение расстояния между узлами ServerNet с помощью последовательных оптоволоконных линий связи. Предполагается, что этот переход будет относительно простым, поскольку все функции управления используют одни и те же линии команд/данных.
Все транзакции по сети ServerNet происходят в два этапа: выполнение запроса и ожидание соответствующего ответа, который должен вернуться до истечения заданного интервала времени (счетчика таймаута). Все узлы ServerNet поддерживают возможность выдачи несколько исходящих запросов в другие узлы.
В СБИС маршрутизатора ServerNet реализован матричный переключатель размерностью 6х6. Решение о направлении маршрутизации принимается на основе анализа идентификатора приемника из заголовка пакета. В состав маршрутизаторов входят входные буфера FIFO, логика арбитража и управления потоком данных, реализованная с помощью ЗУПВ таблица маршрутизации и матричный переключатель (Рис. 12.). Инициализация и реконфигурация сети выполняются программными средствами путем загрузки соответствующих таблиц маршрутизации.
Рис. 12. СБИС 6-портового маршрутизатора ServerNet
.
Процессорный модуль
Одним из базовых элементов системы является процессорный модуль (ЦП), блок-схема которого показана на Рис. 13. В ЦП, построенном на принципах быстрого проявления неисправностей, имеются два порта ServerNet, обеспечивающие его соединение через системную сеть с другими ЦП и устройствами в/в. Для реализации механизмов разделяемой общей памяти несколько ЦП могут объединяться друг с другом с помощью шины когерентности.
Рис. 13. Блок-схема ЦП.
В состав ЦП входят два микропроцессора, каждый из которых имеет независимый вторичный кэш. Каждый микропроцессор подсоединяется к шине памяти с помощью СБИС процессорного интерфейса. При выполнении обращений к памяти эти СБИС сравнивают выходы обоих микропроцессоров для обнаружения всех возможных ошибок микропроцессора и кэша. Память ЦП защищена кодом ECC, который обеспечивает коррекцию всех одиночных ошибок и обнаружение любых ошибок в отдельных микросхемах ДЗУПВ или адресных линиях. Массив микросхем памяти соединяется с шиной памяти ЦП через пару СБИС контроллеров памяти. Эти СБИС во время обращений к памяти взаимно проверяют выходы друг друга.
ЦП могут иметь прямой доступ к памяти других ЦП с помощью дополнительной шины когерентности. Эта шина обеспечивает аппаратную поддержку стандартных приложений UNIX или Windows NT, которые используют симметричную мультипроцессорную обработку (SMP). Каждый ЦП подсоединяется к шине с помощью пары самоконтролирующихся СБИС интерфейса когерентности. Эти СБИС обеспечивают кэш-когерентный доступ к общей памяти используя дублированную память тегов и стандартный протокол аннулирования блоков кэш-памяти. Они обеспечивают также когерентность кэш-памяти при выполнении обращений к памяти со стороны В/В. Все передачи данных по шине когерентности защищены кодом ECC. Проверка синдрома ECC для данных, пересылаемых по шине, и сравнение выходов СБИС позволяет обнаруживать сбои шины или СБИС интерфейса.
СБИС процессорного интерфейса ЦП реализуют два порта ServerNet. Линии приема данных обоих портов ServerNet подсоединяются к обеим СБИС процессорного интерфейса. Каждая СБИС формирует данные для передачи по обоим портам ServerNet, но реально данные передаются только из одного порта. Вторая СБИС принимает данные, передаваемые другой СБИС, сравнивает полученное значение со значением, которое она сформировала сама, и сигнализирует об ошибке при любом рассогласовании данных.
Организация ввода/вывода
Новая система в/в обеспечивает практически неограниченные возможности масштабирования по числу объединяемых узлов и пропускной способности сети. Она эффективно поддерживает модель распределенных вычислений разрешая любому процессору обращаться к любому контроллеру в/в и допуская реализацию прямых связей контроллер-контроллер.
Дуплексная работа
Аппаратная отказоустойчивая система реализуется с помощью дуплексной пары, которая создается путем соответствующего конфигурирования двух процессорных модулей. Идентичное состояние памяти и кэшей в этих двух модулях поддерживается благодаря выполнению на обоих ЦП одного и того же программного кода с теми же самыми данными, а также поступлению в память обоих ЦП всего потока ввода. Оба ЦП генерируют идентичные исходящие потоки вывода. Один из этих потоков выбирается маршрутизаторами для пересылки в контроллеры в/в или другие процессоры.
Модули ЦП имеют развитые средства обнаружения неисправностей. ЦП останавливается при обнаружении его схемами контроля любой ошибки. Остановка ЦП приводит к тому, что по обоим его портам ServerNet будет передана запрещенная кодовая комбинация. В результате маршрутизатор может определить неисправный ЦП (основополагающим правилом системы установлено, что все ошибки ЦП должны приводить к передачам по ServerNet запрещенных кодовых комбинаций).
Когда маршрутизатор, подсоединенный к дуплексному ЦП, обнаруживает ошибку, он начинает выполнение протокола восстановления. Этот протокол реализован полностью аппаратно без привлечения программных средств. При этом один из ЦП исключается из работы, а другой свою работу продолжит. Протокол гарантирует, что исправный ЦП останется работать. Однако существуют случаи, когда в исключенном ЦП неисправности отсутствуют. Например, к исключению ЦП из работы могут привести неисправности в одном из маршрутизаторов или в одной из линий связи ServerNet. В этих случаях система обслуживания может исключить из работы неисправный маршрутизатор, а исключенный ЦП перевести в состояние online.
Если при пересылке пакета из ЦП маршрутизатор обнаруживает неисправность линии связи ServerNet, он помечает пакет как недостоверный. Любой узел ServerNet, который получит этот пакет, будет его игнорировать. Это означает, что неисправность в ЦП, маршрутизаторе или линии связи может привести к потере одного или нескольких пакетов. При нормальной дуплексной работе только один из двух маршрутизаторов дуплексных процессоров пересылает пакеты, поступающие из каждого ЦП. Это ограничивает потерю пакетов пределами одной подсети ServerNet. Интерфейсные кристаллы обнаруживают потерю пакетов ServerNet с помощью средств временного контроля. Программное обеспечение ввода/вывода выполняет восстановление путем повторной передачи данных по альтернативному пути.
Возможности масштабирования системы
ServerNet обеспечивает широкие возможности для масштабирования системы. Обычно расширение выполняется с помощью встроенных кабельных соединений, а также установки в гнезда расширения ServerNet плат маршрутизаторов. Кроме того, добавление каждого ЦП обеспечивает увеличение числа линий связи ServerNet и эффективно расширяет общую пропускную способность в/в системы. В отличие от других массивно-параллельных архитектур сети ServerNet не ограничены только регулярными топологиями типа гиперкубов или торов. Сеть ServerNet позволяет увеличить число линий связи в любом месте, где требуется дополнительная пропускная способность. Приложения с умеренными требованиями к системе межсоединений могут довольствоваться минимальным количеством связей, а следовательно, использовать достаточно дешевую сеть, в то время как приложения с высокой интенсивностью обработки данных могут рассчитывать на организацию сети с большей связностью.
В настоящее время в области масштабируемых распределенных вычислений начали широко использоваться также стандартные системы UNIX. В ряде научных приложениях кластеры рабочих станций начали заменять суперкомпьютеры. Предполагается, что эта тенденция станет главной движущей силой для усиленной разработки приложений и операционной среды распределенных вычислений.
Система обслуживания
Основные функции системы обслуживания включают инсталляцию системы, формирование сообщений об ошибках, диагностику и управление средствами контроля питающих напряжений и температурных режимов работы. Системой обслуживания управляют два сервисных процессора (SP), которые размещаются в каждой стойке и работают как специализированные контроллеры в/в ServerNet. SP, размещенные в разных стойках, также связаны друг с другом посредством ServerNet.
Система обслуживания использует специальную систему независимых шин. Эти шины базируются на двух стандартных для промышленности интерфейсах: SPI (Serial Peripheral Interconnect) компании Motorola и систему сканирования в стандарте IEEE 1149.1 JTAG. SPI используется в качестве недорогой последовательной шины в/в для связи со всеми средствами контроля и управления состоянием окружающей среды. Система обслуживания использует средства сканирования для управления, инициализации, тестирования и отображения работы всех СБИС. Применяемое Tandem расширение к стандарту IEEE 1149.1, обеспечивает доступ к регистрам СБИС. Работа средств сканирования никак не затрагивает нормальную работу СБИС. Этот универсальный механизм обеспечивает средство для инициализации СБИС, определения топологии ServerNet и передачи сообщений об ошибках.
Первые системы Tandem
на базе технологии ServerNet
Структурная схема одного из базовых вариантов сервера дана на Рис. 14. Можно выделить три главные подсистемы: процессорную подсистему, подсистему в/в и подсистему внешней памяти.
Процессорная подсистема строится на базе системных плат (SPU), каждая из которых включает по два микропроцессора с памятью и логикой сравнения, связанные дублированными каналами с подсистемой в/в. В качестве микропроцессоров применяются процессоры MIPS R4400 с кэш-памятью первого уровня емкостью 32 Кбайт (16 Кбайт - кэш команд и 16 Кбайт - кэш данных), работающие на тактовой частоте 200 МГц. Объем кэш-памяти второго уровня составляет 1 Мбайт/процессор. Объем основной памяти системы может достигать 1 Гбайт (в четырехпроцессорной конфигурации).
Подсистема в/в ServerNet создает отказоустойчивую магистраль передачи данных между SPU и контроллерами периферийных устройств и коммуникационными адаптерами. Отказоустойчивость обеспечивается благодаря использованию двух независимых подсетей Servernet. В составе каждого сервера имеется многофункциональный контроллер SSC (Standard System Controller). SSC обеспечивает интерфейс ServerNet с контроллерами в/в, контроллерами SCSI-2 для внутренних устройств массовой памяти, сервисным процессором, а также последовательными и сетевыми интерфейсами для поддержки средств диагностики и консоли. Пара контроллеров SSC обеспечивают отказоустойчивый доступ к устройствам массовой памяти. Каждый контроллер SSC содержит пару интерфейсов шины SCSI-2, которые соединены с другим контроллером SSC и обеспечивают два независимых пути доступа ко всем внутренним дисковым и ленточным накопителям. Система поддерживает "зеркалирование" дисков для обеспечения непрерывного доступа к хранящимся на дисках данным.
В серверы могут также устанавливаться дополнительные контроллеры Ethernet, асинхронного и синхронного интерфейсов, каждый из которых имеет по два порта для обеспечения доступа к процессорам через две независимых подсети Servernet. Контроллеры SSC и дополнительные контроллеры в/в могут заменяться в процессе работы системы (в режиме "горячей" замены). Основные характеристики серверов S4000-CM S4000-CO представлены в Таблице ...
Рис. 14. Структурная схема сервера семейства Integrity
S
4000
.
Таблица 4. Основные параметры моделей CM
и CO
семейства Integrity
S
4000
S4000-CM S4000-CO |
|
Возможности стойки |
|
Количество плат SPU |
48 |
Процессорные конфигурации: |
|
Симплексная |
1-4 проц.SMP1-4 проц.SMP |
Дуплексная (отказоустойчивая) |
1-2 проц.SMP1-4 проц.SMP |
Количество маршрутизаторов |
24 |
Количество плат SSC |
24 |
Количество гнезд в/в ServerNet |
1020 |
Количество мест установки устройств внешней памяти |
1236 |
Процессор |
|
Микропроцессор |
MIPS RISC R4400 MIPS RISC R4400 |
Тактовая частота |
200 МГц 200 МГц |
Первичный кэш |
16 Кб - команды 16 Кб – данные 16 Кб - команды 16 Кб - данные |
Вторичный кэш |
1 Мб / процессор 1 Мб / процессор |
Основная память |
|
Объем |
128/256ECC/проц. 128/256ECC/проц. |
Максимально в системе |
1024 Мб 1024 Мб |
Пропускная способность шины памяти (пиковая) |
400 Мб/с / проц. 400 Мб/с / проц. |
Подсистема в/в |
|
Количество каналов в/в |
2 подсистемы в/в ServerNet2 подсистемы в/в ServerNet |
Пропускная способность каналов в/в (пиковая) |
200 Мб/с / проц. 150 Мб/с / проц. |
Пропускная способность каналов в/в (пиковая) |
800 Мб/с / сист. 600 Мб/с / сист. |
Заключение
В реферате был рассмотрен способ построения сервера на базе многопроцессорной SMP архитектуры, но это не единственное возможное решение. Сервер может быть построен на базе супер компьютера или группы дешевых персональных компьютеров объединенных в кластер.
Бурное развитие сетевых технологий привело к появлению новых направлений в построении серверных систем (кластерные системы). Очень сложно определить какой тип и класс сервера нужно выбрать, какой фирме производителю отдать предпочтение. Каждая фирма для своей продукции разрабатывает набор тестов, которые учитывают специфику оцениваемой системы и зачастую не являются объективными.
В этом случае на помощь приходит набор стандартных тестов, разрабатываемых независимыми организациями. Основные типы тестов – SPEC, AIM, TPC и другие. В таблице 5. представлены параметры производительности рассмотренных систем.
Как видно из таблицы наилучшие характеристики имеют системы построенные на базе процессоров фирмы Alpha. Фирма DEC после перехода с процессоров VAX на Alpha постепенно занимает лидирующее положение. Основными состовляющими успеха является мощный процессор с высокой тактовой частотой, хорошая масштабируемость серверов (до 16 процессоров) и возможность объединения машин в кластер.
Таблица 5. Характеристики производительности
Компания
|
Кофигурация
|
tpmC
|
MIPS
|
SPECint95
|
Цена
|
Digital
|
AlphaServer 2100 5/300
|
263
|
7.03
|
-
|
|
Digital
|
AlphaServer 8400 5/350 (8 CPUs) |
11,456
|
300
|
10.1
|
2,972,726
|
HP
|
HP 9000 K570
|
14.6
|
|||
Tandem
|
NonStop Himalaya K 10000-112
|
20,918
|
-
|
-
|
3,529,520
|
Tandem
|
Integrity NR/4436 Server
|
6,313
|
-
|
-
|
-
|
Bull
|
Escala Series T (360MHz)
|
~2,000
|
-
|
14.2
|
1,409,965
|
Список литературы
1) www.citfofum.ru
2) www.hp.com
3) www.dec.com
4) www.microprocessor.sco.ru
5) www.parallel.ru