Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KS_LK_AllInOne.docx
Скачиваний:
175
Добавлен:
23.11.2019
Размер:
28.78 Mб
Скачать

1.2 Мультипроцессоры uma с много- ступенчатыми сетями

В основе «совсем другого подхода» лежит небольшой коммутатор 2х2 (рис. 8.21, а). Этот коммутатор содержит два входа и два выхода. Сообщения, приходящие на лю­бую из входных линий, могут переключаться на любую выходную линию. В на­шем примере сообщения будут содержать до четырех частей (рис. 8.21, 6).

  • Поле Модуль сообщает, какую память использовать.

  • Поле Адрес определяет адрес в этом модуле памяти.

  • В поле Код операции содержится операция, например READ или WRITE.

  • Наконец, дополнительное поле Значение может содержать операнд, например 32-битное слово, которое нужно записать при выполнении операции WRITE. Комму­татор исследует поле Модуль и использует его для определения, через какую выход­ную линию нужно отправить сообщение: через Х или через Y.

п.

    1. Мультипроцессоры numa

Размер мультипроцессоров UMA с одной шиной обычно ограничивается до не­скольких десятков процессоров, а для координатных мультипроцессоров или муль­типроцессоров с коммутаторами требуется дорогое аппаратное обеспечение, и они ненамного больше по размеру. Чтобы получить более 100 процессоров, нужно что-то предпринять. Отметим, что все модули памяти имеют одинаковое время доступа. Это наблюдение приводит к разработке мультипроцессоров NUMA (NonUniform Memory Access — с неоднородным доступом к памяти).

    1. Мультипроцессоры CC-NUMA

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

Однако с добавлением кэш­памяти нужно будет добавить и способ совместимости кэшей. Один из способов — отслеживать системную шину. Технически это сделать несложно, но мы уже виде­ли (когда рассматривали Enterprise 10000), что даже с четырьмя отслеживающи­ми шинами и высокоскоростным координатным коммутатором шириной 16 байтов для передачи данных 64 процессора — это верхний предел. Для создания мульти­процессоров действительно большого размера нужен совершенно другой подход.

Самый популярный подход для построения больших мультипроцессоров CC-NUMA (Cache Coherent NUMA — NUMA с согласованной кэш-памятью) — муль­типроцессор на основе каталога. Основная идея состоит в сохранении базы дан­ных, которая сообщает, где именно находится каждая строка кэш-памяти и каково ее состояние. При обращении к строке кэш-памяти из базы данных выявляется информация о том, где находится эта строка и изменялась она или нет. Поскольку обращение к базе данных происходит на каждой команде, которая обращается к памяти, база данных должна находиться в высокоскоростном специализирован­ном аппаратном обеспечении, которое способно выдавать ответ на запрос за долю цикла шины.

    1. Мультипроцессор Sequent numa-q

Машина DASH никогда не была коммерческим продуктом. В этом разделе мы рас­смотрим одно из коммерческих изделий — машину Sequent NUMA-Q 2000. В ней используется очень интересный протокол когерентности кэширования — SCI (Scalable Coherent Interface — масштабируемый когерентный интерфейс). Этот протокол стандартный (стандарт IEEE 1569), поэтому он используется и в ряде других машин CC-NUMA.

В основе машины NUMA-Q лежит стандартная плата quard board, которая про­изведена компанией Intel. Плата содержит 4 процессора Pentium Pro и до 4 Гбайт ОЗУ. Каждый процессор содержит кэш-память первого уровня и кэш-память вто­рого уровня. Непротиворечивость кэшей сохраняется благодаря отслеживанию локальной шины платы quard board с использованием протокола MESI. Скорость передачи данных в локальной шине составляет 534 Мбайт/с. Размер строки кэш­памяти равен 64 байтам. Схема мультипроцессора NUMA-Оизображена на рис. 8.26.

Чтобы расширить систему, нужно вставить плату сетевого контроллера в гнездо платы quad board, предназначенное для контроллеров сети.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]