Пример системы CC-NUMA — SGI/Cray Origin 2000. Origin 2000 может содержать до 64 узлов, соединенных масштабируемой сетью CrayLink. В каждом узле один или два процессора, до 4 ГБ памяти и соединения с подсистемой ввода-вывода. Максимальная конфигурация — 128 процессоров с общим объемом памяти в 256 ГБ. Пока в Origin 2000 устанавливаются процессоры MIPS R10000, работающие на частоте 195 МГц и имеющие кэши второго уровня объемом 4МБ.
Два процессора в одном узле работают не так, как в конфигурации SMP, из-за того, что между кэшами L2 нет протокола слежения. Вместо этого, они действуют как два отдельных процессора, использующие общие линии связи с памятью узла и вводом-выводом. Процессоры узла соединены с микросхемой хаба, которая, в свою очередь, подключена к памяти узла, подсистеме ввода-вывода и межузловой сети CrayLink. Микросхема хаба передает локальные обращения непосредственно памяти узла. Отдельная память в хабе предназначена для кэширования удаленных данных. Если запрос на удаленные данные не может быть удовлетворен памятью хаба, то выполняется обращение по межузловой сети к удаленному узлу. Интересно также то, что для быстрого переключения потоков информации внутри хаба есть перекрестный переключатель.
Кроме всего прочего, Cray Origin 2000 (конфигурации, насчитывающие более 64 процессоров, обозначены как системы Cray; меньшие модели — как SGI) — основа проекта ASCI Blue Mountain, о котором мы говорили в главе 2. Возможно, Вы помните, что этот проект состоит из двух частей. Работы ведутся поэтапно в Национальной лаборатории Лос-Аламоса, с задачей получить в конце 1998 года конфигурацию с 3072 процессорами, которая сможет достичь 4 терафлоп. Параллельно в Ливерморской национальной лаборатории будет развернута система IBM ASCI Blue Pacific, которая должна достичь аналогичного уровня производительности с помощью 512 8-каналь-ных узлов SMP. Успех или неудача этих двух систем, несомненно, многое скажут о том, каковы перспективы машин с распределенной общей памятью.
Недавно было проведено несколько исследований, направленных на улучшение производительности систем CC-NUMA и дальнейшее сокращение соотношения времени обработки промахов локальных и удаленных кэшей. Выяснилось, что в этом плане много обещает конфигурация СОМА. Эта система использует тот же самый протокол когерентности кэшей на основе справочника, что и CC-NUMA, но в СОМА часть основной памяти узла выделяется для работы в качестве большого кэша удаленных данных. Отдельный кэш удаленных данных в RAD СОМА устранен; вместо этого удаленные данные размещаются в иерархии кэшей процессора и основной памяти узла.
Первый проект СОМА в начале 90-х годов, позволял осуществлять перенос данных в основную память узла порциями, равными по размеру блоку кэша (такой подход аналогичен хранению блоков кэша в отдельном удаленном кэше CC-NUMA). Проблема этого подхода в том, что размеры блоков кэша меньше страниц памяти, поэтому для управления вторым размером страниц основной памяти в узле нужна дополнительная аппаратура, по сути, дублирующая описанную в главе 8 аппаратуру виртуальной памяти. Последние реализации СОМА, названные S-COMA (simple-COMA), хранят удаленные данные в основной памяти узла только блоками, равными размеру страницы. Благодаря этому, доступ как к удаленным, так и к локальным данным может осуществляться имеющейся аппаратурой виртуальной памяти. Конечно, в узле SMP по-прежнему нужна аппаратура, поддерживающая протокол когерентности кэша на основе справочников для удаленных данных, вместо протокола слежения для локальных данных.
S-СОМА потенциально превосходит по производительности CC-NUMA, так как в состоянии задействовать для хранения удаленных данных большую память узла. Эта архитектура может динамически настраивать размер памяти для удаленных данных в соответствии с потребностями приложения. С другой стороны, S-COMA требует пересылки по сети межузловых соединений блоков данных большего размера в случае удаленного промаха на узле. В течение следующих нескольких лет мы увидим, вытеснит ли СОМА или какой-либо ее вариант используемую ныне архитектуру CC-
NUMA.
Будущее ввода-вывода AS/400
Высокопроизводительные процессоры для будущих систем AS/400 ничего не дадут, если им не поставлять достаточно данных для полноценной загруженности. Давайте кратко рассмотрим будущее подсистемы ввода-вывода AS/400. Хотя этому вопроса уже уделено большое внимание в предыдущих главах, я постараюсь не повторяться.
Читать дальше