Определение

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

Уже скоро наиболее прогрессивные пользователи мощных систем смогут еще раз убедиться в правоте пословицы о том, что одна голова хорошо, а две — лучше. Это произойдет тогда, когда компании Sun Microsystems, IBM, Compaq Computer, Hewlett-Packard и другие производители начнут поставлять серверы старшего класса, построенные по технологии многопроцессорной обработки на кристалле (CMP — chip multiprocessing). Это станет шагом вперед по сравнению с современными системами, оснащенными блоками с несколькими независимыми процессорными модулями. (В ряду этих компаний отсутствует Intel, в которой больше полагаются на поддержку параллелизма на уровне команд — менее дорогую технологию повышения скорости и производительности.)

«В основе этого направления лежит одна простая мысль — не проще ли вместо того, чтобы создавать все более и более сложные процессоры, помещать их по нескольку в один модуль, — пояснил Линли Гвеннап, старший аналитик консультационной компании Linley Group, специализирующейся на проблематике микропроцессоров. — Трудность состоит лишь в том, что если операционная система не будет ?понимать?, что имеет дело с парой процессоров, большого преимущества добиться не удастся». Гвеннап добавил, что в будущем, несомненно, операционные системы станут поддерживать многопроцессорные кристаллы, правда, тогда трудности переместятся в сферу разработки приложений.

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

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

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

Эти непохожие архитектуры

В наступившем квартале компания Sun Microsystems планирует представить модуль MAJC-5200 c двумя 500-мегагерцевыми процессорами, графическим процессором и блоком передачи данных. Скорость передачи данных при пиковых нагрузках ввода/вывода будет достигать 4,8 Гбайт/с. Процессоры работают с совместно используемым четырехканальным кэшем данных, поддерживающим ассоциативные множества, кроме того, каждый процессор будет иметь собственный двухканальный кэш команд, поддерживающий ассоциативные множества, емкостью 16 Кбайт.

Дополнительной возможностью MAJC-5200 станет поддержка многопотоковой обработки — аппаратное обеспечение сможет подразделять задачи на побайтовые «порции», в определенном порядке поступающие на каждый процессор для избежания потерянных циклов. Впрочем, Марк Трембли, старший проектировщик группы процессорных продуктов компании Sun, обращает внимание на то, что далеко не все программные приложения оптимизированы для многопотоковой обработки. В качестве компенсации в MAJC-5200 будет использоваться Java Virtual Machine для спекулятивного выделения потоков в Java-программах.

В IBM, напротив, предпочли не реализовывать поддержку многопотоковой обработки в своем высокоскоростном, гигагерцевом процессоре Power4. Для обеспечения эффективной передачи данных каждый процессор Power4 будет «перекачивать» их из своей 32-мегабайтной памяти в кэш-память второго и третьего уровня для поддержки связи между процессорами и буферизации информации из системной памяти.

«Камнем преткновения для всех систем при увеличении тактовой частоты являетcя физическая удаленность памяти, — пояснил Джоэл Тендлер, директор по стратегиям в области технологии серверной группы IBM. — Цикл обработки при частоте 500 МГц составляет 1 нс, при 1 ГГц — это 2 нс. Именно поэтому мы добавляем в иерархию памяти дополнительную кэш-память».

Скорость шины свыше гигагерца

Вначале системы Power4 будут работать с шиной, поддерживающей частоту 500 МГц (это составляет половину скорости процессора), хотя они рассчитаны на скорости шины, превышающие 1 ГГц, в расчете на рост быстродействия процессоров. В IBM рассчитывают выпустить CMP-процессор во второй половине года.

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


Два подхода к CMP

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

MAJC-5200 компании Sun Microsystems
Power4 Design компании IBM

Поделитесь материалом с коллегами и друзьями