Network World, США

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

Для получения доступа к нужным ресурсам, их эффективного распределения и определения приоритетов трафика сетевым системам все чаще требуется информация о приложениях. Обработка потоков пакетов с учетом их состояния в сетях с гигабитной пропускной способностью требует прямого доступа к памяти на скоростях, которые недоступны традиционным современным процессорам. А заказные микросхемы (application-specific integrated circuit, ASIC), хотя и обладают достаточно высокой производительностью, не могут быть адаптированы к современным темпам стремительных изменений сетевых протоколов и приложений.

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

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

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

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

Каждая операция с памятью порождает задержку обработки. В условиях повышенных требований, предъявляемых к скорости обращений к памяти, для сохранения малой задержки и высокой пропускной способности многопроцессорным архитектурам, ориентированным на сетевые технологии, необходимо поддерживать очень большое количество одновременно выполняемых потоков и конвейеров. Каждый из них требует выделения дополнительных ресурсов. Обработка пакетов с разделением их на 100 и более потоков в сочетании с проведением глубокого анализа пакетов позволяет довести задержку в канале с пропускной способностью 10 Гбит/с до величины, не превышающей одной миллисекунды. Таким образом, применение технологии MMT создает условия для эффективной работы с приложениями VoIP, а также для выполнения других чувствительных к задержкам задач.

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


Массовая многопоточность

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