Сетевые процессоры: "пламенный мотор" современных компьютерных сетей
Сетевые процессоры специально проектировались для выполнения коммуникационных функций и решения задач управления пакетами данных. Они позволяют осуществлять внутреннюю маршрутизацию и коммутацию при высоких скоростях обмена. И если раньше для каждого коммутатора, маршрутизатора или устройства доступа разрабатывались специализированные микросхемы (ASIC), то теперь производители сетевого оборудования получают микропроцессор, выполняющий все основные сетевые функции. Остается только написать соответствующее программное обеспечение. Очевидно, что сетевые процессоры упрощают конструкцию и увеличивают производительность сетевого оборудования. Кроме того, повышение производительности систем, использующих сетевые процессоры, теперь достигается простой заменой морально устаревшего процессора новым. Последний момент выглядит особенно привлекательным, ведь разработка специализированных микросхем — процесс очень дорогостоящий. При этом жизненный цикл микросхем короток, чего не скажешь о сетевых процессорах.
Независимо от набора функций, большинство устройств, подпадающих под категорию “сетевой процессор”, основано либо на многостадийной, конвейерной (рис.2), либо на параллельной мультипроцессорной архитектуре (рис.3). Конвейерный сетевой процессор пригоден для обработки потоков данных последовательным образом. Как видно из рис.2, каждый блок конвейера имеет свою локальную память. Сетевой процессор, основанный на мультипроцессорной архитектуре, обеспечивает большую программную гибкость, чем конвейерный. В этом случае каждый процессор работает с памятью, общей для всех.
Известны также и гибридные архитектурные решения. Одно из них – комбинация суперконвейерной (вплоть до 64 стадий) структуры и технологии множества параллельных конвейеров (multiple parallel pipelines). Другое основано на применяемой в суперкомпьютерах концепции процессорных массивов, которые могут быть сконфигурированы как параллельные многостадийные многопроцессорные конвейеры. Обе концепции крайне интересны, однако пока не нашли применения в серийно выпускаемых сетевых процессорах.
Любой сетевой процессор выполняет набор основных функций обработки пакетов данных, в который входят:
· классификация/синтаксический разбор;
· поиск/пересылка;
· управление полезной информацией/редактирование;
· организация очереди/распределение времени.
Выбор той или иной архитектуры сетевого процессора связывается с эффективностью передачи пакетов данных и во многом определяется типом сети, а также сложностью задач в ее отдельной точке. Например, для использования в глобальных сетях, характеризующихся большим количеством физических связей и протоколов, асинхронных друг другу, предпочтительны сетевые процессоры с параллельной архитектурой.
Конвейерная архитектура более всего похожа на линии сборки, где специфические операции производятся постадийно. Пакеты transport media и termination-протоколы имеют последовательную природу, и поэтому наиболее эффективна их обработка процессором с конвейерной архитектурой.
Конвейерные процессоры работают обычно на более низких тактовых частотах, чем их параллельные собратья, и обеспечивают меньшую гибкость в обработке в пределах одной стадии. Повышение производительности при этом достигается повышением тактовой частоты, а улучшение функциональных качеств процессоров – использованием соответствующих программ непосредственно в том месте конвейера, где это необходимо.
Системы памяти сетевых процессоров с конвейерной и параллельной архитектурами сильно различаются. Обычно каждый блок конвейера имеет свою локальную память, которая не зависит от указателей или любой другой информации входящего потока данных. Локальная память служит как для хранения команд, так и данных, используемых при обработке (таблиц, структур и т.д.). Существуют решения, в которых микрокоманды хранятся в отдельном буфере, отдельно от областей хранения данных. В любом случае локальная память каждого блока конвейера ограничена в соответствии с задачами, выполняемыми на данной стадии обработки. При необходимости связь внутри процессора осуществляется посредством prepending control information, которая дописывается в начало пакета или передается по внешнему каналу. Таким образом, операция, которую необходимо выполнить, определяется последующим блоком.
Процессоры с параллельной архитектурой строятся, как правило, на основе нескольких RISC-процессоров, каждый из которых независимо от других обрабатывает свой пакет данных. Их усовершенствование не ограничивается простым увеличением числа микропроцессоров в них. Повышение производительности достигается за счет увеличения тактовой частоты, лучшего использования памяти и усовершенствованием программ управления обработкой пакетов. Важнейшая задача, которую приходится решать программному обеспечению сетевого процессора с параллельной архитектурой, – добиться, чтобы обработанные пакеты выходили в той же последовательности, в которой входили в процессор. Другая задача – увеличение загруженности процессора и устранение причин, вызывающих необходимость ожидания ввода/вывода. Для обеспечения занятости процессора при задержках, связанных, например, с доступом к ресурсам, часто применяется перекрытие операции обработки и пакета и ввода/вывода, или так называемое контекстное переключение (context switching). Эта операция позволяет одновременно обрабатывать разные контексты одним процессором. Например, когда один контекст находится в ожидании окончания операции ввода/вывода, пакет, относящийся к другому контексту, может обрабатываться. Однако на обработку контекстного переключения порой требуется несколько процессорных циклов, поэтому вынужденная плата за эффективное использование процессора – понижение производительности.
Основные игроки на рынке сетевых процессоров – IBM, Intel, Motorola, Texas Instruments, C-Port, Agere Systems.
Сетевой процессор компании Agere Systems (рис.4) создан на основе чипсета Payload Plus 10G, состоящего из двух микросхем: NP10, осуществляющей функции классификации, и TM10, занимающейся управлением трафиком [2]. Трехчиповая конфигурация сетевого процессора, состоящая из одного чипа NP10 и двух TM10, обеспечивает полнодуплексную обработку пакетов на скорости 10 Гбит/с. Программирование процессора осуществляется с помощью языков Functional Programming Language и C-подобного Agere Scripting Language.
Недавно корпорация Intel выпустила новую версию сетевого процессора IPX1200 и инструментарий для разработки программ к нему [3]. Процессор IPX1200 характеризуется повышенным быстродействием ядра и шин. Тактовая частота его ядра 232 МГц, частота шины внешней памяти – 116 МГц, а рабочая частота ввода-вывода – 104 МГц. Кроме того, объем встроенной управляющей памяти каждого из шести микроядер удвоен по сравнению с сетевыми процессорами предыдущих версий. Теперь память процессора может содержать до 2000 командных слов, предоставляя производителям оборудования возможность реализовать в нем дополнительные функции. Новый IPX1200 может работать в диапазоне температур от -40 до 85 °С. В нем объединены два вычислительных компонента, играющих важнейшую роль в большинстве сетевых систем: встроенный микропроцессор и контроллеры передачи данных со скоростью, сравнимой с кабельной трансляцией. Встроенный микропроцессор StrongARM служит для выполнения задач по управлению сетью. Шесть программируемых микроконтроллеров ведут многопоточную обработку данных, перемещаемых по сети со скоростью трансляции по кабелю. При этом одновременно могут выполняться семь различных сетевых задач, и в очередь для выполнения в течение одного цикла ставятся еще восемнадцать. Такая контекстно-зависимая подкачка в режиме нулевого ожидания обеспечивается специализированными инструкциями микроконтроллеров. Соединительное устройство IXB3208 на шине IX позволяет подключать несколько сетевых процессоров IXP1200, благодаря чему производительность системы может достигать 10 Гбит/с. Масштабируемость сетевых решений в широком диапазоне параметров производительности гарантирует повышенную окупаемость средств, вложенных в разработку программного обеспечения для микроконтроллеров.
В свою очередь IBM представила однокристальный сетевой процессор IBM32NPR161EXPCAC133 [4]. Он обеспечивает интерфейс в соответствии со стандартами 10/100 Ethernet, Gigabit Ethernet и Packet over SONET. Сетевой процессор состоит из 16 параллельных процессоров протоколов и встроенного процессора IBM PowerPC (рис.5). Каждый процессор протокола имеет доступ к семи акселераторам-сопроцессорам, которые обеспечивают высокоскоростную обработку данных. Память для процессоров протоколов, которая позволяет хранить 16384 команды, устроена следующим образом: 32К внутренней памяти SRAM для немедленного доступа, внешняя ZBT SRAM для быстрого доступа и внешняя DDR DRAM для хранения больших объемов информации. Акселераторы осуществляют операции пересылки и изменения пакетов данных, а также поиск по дереву инструкций процессора. Процессоры протокола наделены возможностью фильтрации пакетов с данными, что важно для защиты информации в сетях. В сетевом процессоре также реализованы алгоритмы контроля потоком, использующие информацию об уровнях очереди и трафика, обеспечивающие надежность работы сети, особенно в случае ее сильной загруженности. Сопроцессор на основе IBM PowerPC, иначе называемый Control Point Processor, выполняет функции управления и, кроме того, обеспечивает связь с другими сетевыми процессорами или устройствами компьютера по шине PCI или DASL.
Сетевой процессор от IBM позволяет обрабатывать данные по протоколам Layer 2, Layer 3, Layer 4 и высшего уровня. Его можно использовать и как отдельное устройство, и как компонент большой системы (рис.6).
Как ни странно, но основную конкурентную борьбу на рынке сетевых процессоров ведут между собой два гиганта – корпорации IBM и Intel. Следует отметить, что если сетевой процессор IBM был разработан на основе собственных технологий, то Intel, напротив, покупала недостающие ноу-хау. Так, в состав Intel вошли компании Softcom Microsystems и Level One Communications. Последняя обошлась Intel в 2 млрд. долл. Кроме того, Intel приобрела микропроцессорную технологию StrongArm, на основе которой строятся процессоры серии IXP. Затраты корпорации, как видим, весьма серьезны. Однако игра стоит свеч: по мнению аналитиков, оборот рынка сетевых процессоров постоянно увеличивается и к 2005 году достигнет 90 млрд. долл.
Литература
1. Samuel J. Barnett. When Shopping for Network Processors, One Size does not Fit All. - Electronic Design, 2001, April 2.
2. www.agere.com
3. www.intel.com
4. www.ibm.com
Intel намерена удерживать первенство на рынке Laptop
Свидетельствует Форум разработчиков
По данным группы In-Stat издательства Cahners, Intel сохранит лидирующее положение на рынке процессоров мобильных ПК по крайней мере до 2003 года. Этот прогноз, составленный еще в относительно благополучном 2000 году, тем не менее, справедлив и сегодня. Его подтвердил и вице-президент компании Пауль Отеллини, раскрыв во вступительном слове на осеннем Форуме разработчиков Intel (27–30 августа 2001 года) планы фирмы по превращению дорожных ПК (laptops) в мобильные терминалы сети Интернет с возможностью подключения с помощью разнообразных платформ беспроводного доступа (Bluetooth, 802.11, WLAN или даже сети сотовой связи).
Основа новой системы (кодовое имя Banias) – процессорное ядро, рассчитанное на мобильные применения. Основная цель программы Banias – повышение быстродействия при одновременном снижении энергозатрат с тем, чтобы создаваемые компьютерные устройства по потребляемой мощности и характеристикам в режиме покоя были сопоставимы с современными сотовыми телефонами. Это потребует сокращения потребляемой ими мощности на 30%. Чтобы решить эту задачу, специалисты Израильского центра разработок фирмы, где проводятся работы по данной программе, должны уменьшить площадь транзисторов некоторых схем, ввести агрессивную технологию управления пропусканием тактовых импульсов для перевода неработающих схем в режим ожидания (или глубокого сна), и, наконец, использовать метод "слияния" микроопераций, позволяющий объединять несколько команд в одну.
В планы Intel входит и совместная работа с производителями дисплеев по созданию средств воспроизведения, способных реагировать на уровень освещенности окружающей среды и тем самым потреблять минимальную энергию в зависимости от конкретных условий работы. Laptop'ы на базе семейства Banias, подключенные к сетям с беспроводным доступом, смогут работать и при отключенном дисплее – например, загружать интернетовские файлы даже после того, как компьютер с закрытой крышкой уложен в кейс или сумку.
Очевидно, сначала процессорное ядро семейства Banias будет выполнено на основе улучшенной микроархитектуры 1,33-ГГц процессора P6 (Pentium III), который сейчас лидирует на рынке элементов мобильных систем. Правда, Intel интенсивно разрабатывает микропроцессоры P4 семейства Northwood. И вслед за сообщением в первый день Форума об отгрузке коммерческих образцов процессоров на частоту 2 ГГц , изготовленных по 0,13-мкм технологии, на следующий день фирма представила разработку процессора семейства на частоту 3,5 ГГц (в ходе демонстрации возможностей процессора в машине с ОС Windows его тактовая частота была равна 3 ГГц). Полностью производство процессоров серии Northwood с топологическими нормами 0,13 мкм будет освоено в I квартале 2002 года. Первые версии чипов семейства Banias появятся в I квартале 2003 года.
www.eet.com/conferences/idf/story/OEG20010828S009