Подсемейство интегрированных сетевых процессоров (ИСП) QorIQ LS1023A/1043A компании NXP продолжает ряд многоядерных интеллектуальных коммуникационных и сетевых систем на кристалле (СнК) со встроенными ARM-ядрами и макроархитектурой Layerscape от Freescale Semiconductor [1, 2]. Это подсемейство бюджетных приборов с новыми 64-разрядными процессорными ядрами Cortex-A53 способно обеспечить стабильную суммарную пропускную способность на уровне 10 Гбит/с при весьма умеренном энергопотреблении в широком диапазоне рабочих температур и сохраняет преемственность с фирменной для Freescale сетевой архитектурой ускорения путей данных DPAA (Data Paths Acceleration Architecture) [3, 4].
Две модели семейства, QorIQ LS1023A и QorIQ LS1043A, различаются только числом процессорных ядер и в дальнейшем будут рассматриваться вместе под общим обозначением QorIQ LS10x3A, где «x» как раз показывает число ядер в модели. Укрупненная структура ИСП QorIQ LS10x3A представлена на рисунке 1.
Центральный процессор и память

Рис. 1. Структура ИСП QorIQ LS10x3A
Центральный процессор ИСП QorIQ LS10x3A включает два или четыре ядра ARM Cortex-A53 с полностью реализованной архитектурой ARMv8-A, работающие на частотах до 1,6 ГГц. 64-разрядная архитектура позволяет непосредственно использовать 40-разрядные адреса памяти.
Каждое процессорное ядро содержат в себе:
· диспетчер памяти MMU (Memory Management Unit) с основным буфером ассоциативной трансляции TLB (Translation Lookaside Buffer) на 512 адресов (степень ассоциативности буфера равна 4) и раздельными полностью ассоциативными буферами для инструкций и данных по 10 элементов каждый;
· сопроцессор NEON с организацией SIMD (Single Instruction / Multiple Data), работающий с векторами в форматах фиксированной и плавающей запятой;
· аппаратуру реализации дополнительных возможностей архитектуры ARMv8-A, в частности для эффективной поддержки криптографии;
· раздельные кэши инструкций и данных первого уровня объемом по 32 Кбайт (степень ассоциативности 4).
Все ядра обслуживаются общим кэшем второго уровня объемом 1 Мбайт с возможностью использования кода исправления ошибок ECC (Error Correction Code).
Контроллер внешней оперативной памяти типа SDRAM DDR3L/4 имеет 32-разрядную внешнюю шину, способен обслуживать четыре банка оперативной памяти объемом до 32 Гбайт и может работать на частоте 800 МГц (1,6 GT/s). Производительность подсистемы памяти существенно повышает возможность иметь до 32 одновременно открытых страниц. Поддерживаются поточные передачи массивов, интерливинг и 4-разрядный код ECC.
Контроллер внешней flash-памяти IFC (Integrated Flash Controller) c 8- или 16-разрядной шиной совместим с памятями типа NOR (размер банка до 256 Мбайт, опция мультиплексирования адреса) и NAND (размер страниц до 8 Кбайт), а также традиционными статическими памятями с произвольным доступом SRAM и ROM.
Общесистемные компоненты

Рис. 2. Максимальная конфигурация сетевых интерфейсов
Связь с памятью процессора и прочих абонентов с прямым доступом обеспечивается через фирменную иерархическую когерентную коммутационную структуру (interconnect fabric) CCI-400. Структура может работать на частотах до 400 МГц, гарантирует когерентность кэшей, некоторые элементы качества обслуживания абонентов и содержит системные диспетчеры памяти SMMU (System MMU), обслуживающие устройства прямого доступа в память.
Контроллер прямого доступа в память с поддержкой очередей qDMA (Queue Direct Memory Access) может передавать с высокой скоростью блоки данных между областями оперативной памяти, оперативной памятью и флэш-памятью через IFC, а также между памятью и интерфейсом PCIe. Каждый передаваемый блок данных может быть представлен в памяти сплошным массивом или несколькими фрагментами, сборка и разборка которых осуществляется с помощью табличных описателей. Контроллер может организовывать до восьми командных очередей и одну очередь состояний. Он поддерживает канальную виртуализацию с двумя или четырьмя виртуализированными блоками по числу ядер процессора.
Средства общесистемной поддержки ИСП включают:
· восемь многофункциональных таймеров, совмещенных с устройствами широтно-импульсной модуляции PWM (Pulse-Width Modulation);
· пять сторожевых (watch-dog) таймеров;
· контроллер прерываний GICv4, связанный с системой управления питанием;
· монитор производительности PMUv3 (Performance Monitor Unit);
· встроенную макроячейку трассировки ETMv4 (Embedded Trace Macrocell);
· компоненты безопасной архитектуры ARM TrustZone и безопасный загрузчик;
· встроенные средства визуализации и отладки.
Сетевые возможности
Сетевые возможности ИСП QorIQ LS10x3A определяются совокупностью разнопланового специфического оборудования и методических подходов к его использованию. Оборудование включает сетевые интерфейсы и специализированные аппаратные ускорители, а методические подходы — макроархитектуру Layerscape и архитектуру DPAA, позволяющие наиболее эффективно объединить возможности универсальных центральных процессоров с различными системами инструкций и разнообразных спецпроцессоров для достижения максимальной производительности и пропускной способности ИСП.
В набор сетевых интерфейсов ИСП QorIQ LS10x3A входят:
· пять MAC-контроллеров Ethernet на скорость передачи данных 1 Гбит/с (1G);
· MAC-контроллер Ethernet на 2,5 Гбит/с (2,5G);
· MAC-контроллер Ethernet на 10 Гбит/с (10G).
Два MAC-контроллера 1G имеют выделенные трансиверные интерфейсы RGMII, а три остальных контроллера 1G и контроллер 2,5G могут объединяться на общем трансиверном интерфейсе QSGMII, реализуемом в блоке преобразователя параллельных кодов в последовательные и обратно SerDes (Serializer/Deserializer). SerDes имеет четыре дорожки (lanes) и способен работать на частоте до 10 ГГц. Кроме того, контроллер 2,5G может работать через интерфейс SGMII, также реализуемый блоком SerDes. Наконец, для MAC-контроллера 10G в том же SerDes предусмотрена реализация интерфейса XFI. Таким образом, при использовании всех MAC-контроллеров Ethernet в блоке SerDes обязательно окажутся задействованными минимум две дорожки, оставляя не более двух свободных дорожек для остального высокоскоростного ввода-вывода. Максимально возможная конфигурация сетевых интерфейсов ИСП с использованием всех наличных MAC-контроллеров Ethernet показана на рисунке 2.
Специализированные сетевые процессоры и ускорители включают:
· диспетчеры кадров, очередей и буферов;
· процессор безопасности (security engine);
· облегченный коммуникационный микроконтроллер µQUICC, обеспечивающий поддержку устаревших асинхронных коммуникационных интерфейсов типа HDLC.
Диспетчер кадров (frame manager) выполняет «налету» с пропускной способностью 10 Гбит/с классификацию входящих с сетевых интерфейсов кадров и пакетов. Он осуществляет проверку и генерацию контрольных кодов CRC (Check Redundancy Codes), ведет статистику RMON и выполняет ряд других функции соответственно группе стандартов IEEE-802.3, IEEE-801Qbb, IEEE-803.3az и IEEE-1588v2.
Диспетчеры очередей (queue manager) и буферов (buffer manager), реализующие совместно с диспетчером кадров архитектуру DPAA, обеспечивают прохождение обрабатываемых кадров и пакетов по некому внутреннему «виртуальному конвейеру» без участия центрального процессора и прикладных программ. При этом гарантируется пропускная способность такого «конвейера» не хуже 10 Гбит/с.
Также элементом DPAA, который может включаться в «виртуальный конвейер», является сопроцессор безопасности SEC (security and encryption engine). Он поддерживает такие распространенные криптотехнологии, как IPSec, SSL/TLS, SRTP и 3GPP RLC. Сопроцессор включает генератор случайных чисел и аппаратные ускорители шифрования для целого ряда широко применяемых протоколов (DESA, AESA, CRCA, KFHA, STHA, MDHA, PKHA, ZUCA, ZUCE), благодаря чему гарантирует шифрование «налету» с пропускной способностью на уровне 5 Гбит/с.
Универсальный ввод-вывод
Комплект универсальных системных интерфейсов ввода-вывода включает:
· три высокоскоростных интерфейса PCIe 2.0 (PCI Express) с номинально возможными конфигурациями дорожек x1, x2 или x4, работающих на скоростях передачи данных 2,5 / 5 Гбит/с с 32- или 40-разрядным адресом;
· высокоскоростной интерфейс SATA 3.0 (Serial Advanced Technology Attachment), работающий на скоростях 1,5 / 3 / 6 Гбит/с;
· три интерфейса USB 3.0, способных работать в режимах host и device на скоростях super-speed (5 GT/s), high-speed (480 Mbps) и full-speed (12 Mbps);
· улучшенный контроллер флэш-карт SD/eSDHC/eMMC;
· пять (4+1) интерфейсов SPI c рабочей частотой до 62,5 МГц;
· четыре интерфейса I2C;
· шесть малопотребляющих универсальных асинхронных приемопередатчиков LPUART (Low-Power Universal Asynchronous Receiver-Transmitters), два из которых могут работать в режиме обычных UART;
· универсальный контроллер выбора пользовательского устройства GPCM (General-Purpose, Chip-select Controller).
Интерфейсы PCIe и SATA в качестве приемопередатчиков физического уровня используют общий с сетевыми интерфейсами четырехдорожечный SerDes, что выглядит довольно странно. Например, теоретически допустимая конфигурации PCIe x4, практически оказывается невозможной даже для одного из трех таких интерфейсов, если SerDes используется контроллером SATA или хотя бы одним MAC-контроллером Ethernet, притом что на семь таких контроллеров предусмотрено только два выделенных интерфейса RGMII, а контроллеры Ethernet на скоростях 2,5G и 10G вообще могут работать только через SerDes. К счастью, по крайней мере контроллеры USB имеют свои собственные встроенные приемопередатчики PHY. На рисунке 3 показана максимальная конфигурация высокоскоростного ввода-вывода с несколькими подключенными периферийными устройствами (ПУ) и диском.
Управление питанием и энергопотреблением

ИСП QorIQ LS10x3A специально проектировались с упором на малое потребление энергии. Сама архитектура ARM в совокупности с технологией 28 нм создали для этого хорошие предпосылки. Экономия динамической мощности осуществляется традиционными методами селективного управления тактовыми сигналами. Далее сокращать потребляемую энергию может сам пользователь, выключая неиспользуемые компоненты СнК. Это может дать весьма существенный эффект, так как никогда все функциональные блоки ИСП не используются одновременно. В частности, выше уже приводились примеры физической невозможности использования из-за ограниченности числа дорожек SerDes сразу всех сетевых MAC-контроллеров, если задействованы интерфейсы PCIe или SATA, и наоборот.
Улучшенное разделение ресурсов

Рис. 4. Маршрутизатор SOHO на основе ИСП QorIQ LS10x3A
Архитектура безопасности ИСП семейства QorIQ позволяет надежно избегать рисков нежелательных конфликтов ресурсов СнК. Гораздо более сложной задачей является предотвращение воздействия различных вредоносных программ, особенно в условиях все более широкого использования стороннего и открытого программного обеспечения (ПО). ИСП QorIQ LS10x3A предлагает новый уровень аппаратного разделения, гарантирующий полную изоляцию явно выделенных приложению ресурсов от других приложений.
В многоядерном процессоре функцию разделения ресурсов памяти между работающими программами выполняют MMU. Но помимо центрального процессора в ИСП имеются и другие сопроцессоры, ускорители, а также устройства ввода-вывода, обладающие правом прямого доступа в память. Они тоже могут быть использованы вредоносным ПО для несанкционированного доступа к чужим данным или нарушения нормальной работы системы в целом. Чтобы избежать этого, в ИСП семейства QorIQ введены дополнительные блоки диспетчеризации памяти SMMU, которые выполняют трансляцию адресов прямого доступа в память от спецпроцессоров и устройств ввода-вывода, используя тот же двухуровневый механизм, что и MMU центрального процессора. Управление доступом через SMMU базируется на определителях управления доступом AMQ (Access Management Qualifiers), статических или динамических, задаваемых устройством прямого доступа на каждой транзакции. Благодаря SMMU гипервизор имеет возможность привязывать абонентов с прямым доступом к гостевым операционным системам (ОС), а те, в свою очередь, — связывать эти абоненты с определенными приложениями.
Кроме того, ИСП QorIQ LS10x3A, как и другие приборы с ARM-ядрами, реализует архитектуру безопасности ARM TrustZone, позволяющую ОС повышенной безопасности распределять устройства с прямым доступом в память между защищенным и незащищенным «мирами» (secure and non-secure worlds).
Безопасная загрузка и защита критических данных
Наличие в ИСП MMU и SMMU дает возможность гипервизору надежно разделять ресурсы памяти и контролировать доступ к ней. В результате ИСП становится весьма устойчив к воздействиям плохо отлаженных и откровенно вредоносных программ. В дополнение к этому ИСП семейства QorIQ предоставляют разработчикам особо доверенных систем дополнительную возможность доверенной начальной загрузки рабочего кода, чтобы исключить злоумышленную подмену ПО. Гарантия аутентичности загружаемого кода достигается цифровой подписью разработчика системы, которая проверяется специальной аппаратурой ИСП во время загрузки кода, но также может контролироваться и в процессе работы.
Механизм безопасной загрузки поддерживает как внутренние, так и внешние памяти с системными программами и данными. Так, например, системный разработчик может снабдить каждую свою систему некоторым количеством приватных ключей шифрования RSA, которые могут использоваться при взаимной аутентификации. Эти ключи изначально хранятся зашифрованными во внешней постоянной памяти, а во время безопасной загрузки могут быть расшифрованы и сохранены во встроенной защищенной памяти (например, в кэше, используемом в режиме SRAM). Так как сессионные ключи могут исчисляться тысячами и десятками тысяч, механизм безопасной загрузки предполагает их шифрование и хранение в зашифрованном виде в основной памяти.
Средства разработки и отладки
Для ИСП QorIQ LS10x3A по умолчанию поставляются компоненты ОС Linux:
· среда программирования на основе Linux;
· средства интеграции Linux;
· драйверы;
· специфическое ПО от NXP с комплексными решениями широкого профиля для работы в современных сетях.
Бóльшая часть системного ПО использует стандартные конфигурации ОС Linux и представляет собой готовые к использованию решения, которые, однако, при желании могут быть в той или иной степени реконфигурированы и доработаны пользователем в соответствии с его потребностями.
Пакеты ПО для ИСП QorIQ LS10x3A поставляются в составе базового комплекта разработки ПО — SDK (Software Development Kit) — при получении разрешения на использование прибора. В состав SDK входят:
· промежуточное ПО (middleware) для ОС Linux в пространстве kernel (KVM, диспетчер памяти, файловая система, сетевой стек);
· драйверы в пространстве kernel (Ethernet, PCIe, USB, безопасность);
· открытые сетевые приложения, использующие сервисы промежуточного ПО, и соответствующий инструментарий;
· интерфейсы прикладного программирования API (Application Programming Interfaces) системных вызовов ОС Linux.
В этом контексте нельзя не упомянуть комплексное многофункциональное сетевое ПО VortiQa от компании Freescale [5], предназначенное, в первую очередь, для работы на многоядерных ИСП семейства QorIQ.
Для наладки ПО в многоядерных системах с большим количеством разделяемого оборудования Freescale разработала специальную улучшенную архитектуру многоядерной отладки AMDA (Advanced Multicore Debug Architecture). Специальная встроенная аппаратура визуализации и отладки эффективно взаимодействует с внешними средствами разработки и наладки, в числе которых имеется и фирменная система CodeWarrior, и средства от сторонних поставщиков, весьма многочисленные и разнообразные для архитектуры ARM.
Примеры применения ИСП QorIQ LS10x3A

Рис. 5. Устройство UTM на основе ИСП QorIQ LS10x3A
ИСП QorIQ LS10x3A открывает возможность создания недорогих многофункциональных маршрутизаторов для дома или небольшого офиса SOHO (Small Office / Home Office), в том числе с пассивным охлаждением. Пример подобного маршрутизатора дан на рисунке 4.
Аппаратные ускорители, встроенные в архитектуру DPAA, позволяют производить типовую обработку пакетов на скоростях до 10 Гбит/с без шифрования и 5 Гбит/с с ним, оставляя свободным центральный процессор и позволяя тем самым пользователю решать любые специфические задачи прикладным программированием. Кроме того, имеющаяся в ИСП аппаратная поддержка виртуализации существенно облегчает создание виртуализированных платформ маршрутизации в таких современных технологиях, как программно определяемые сети SDN (Software Defined Networking), виртуализация сетевых функций NFV (Network Functions Virtualization), а также реализации высокопроизводительных каналов в «облака» для виртуальных частных сетей VPN (Virtual Private Networks).
В число прикладных задач, которые могут решаться на программируемом центральном процессоре ИСП и при необходимости превращать его в полноценное универсальное устройство сетевой защиты UTM (Unified Threats Management), входят:
· маршрутизация, в том числе с использованием специальных протоколов;
· различные брандмауэры (firewalls);
· глубокая инспекция пакетов DPI (Deep Packet Inspection);
· обнаружение и защита от вторжений IDS/IPS (Intrusion Detection/Prevention System).
Пример типичного устройства UTM на основе ИСП QorIQ LS10x3A показан на рисунке 5.
Удобству использования ИСП QorIQ LS10x3A способствуют умеренное потребление мощности (типичная величина 2,8 Вт, максимальная — 4 Вт на частоте 1,2 ГГц), расширенный рабочий диапазон температур (–45…+105 oC), единственная опорная частота для всех компонентов СнК и возможность выбора корпуса прибора:
· FC-PBGA с 621 выводами, 21×21 мм с шагом 0,8 мм
· FC-PBGA с 780 выводами, 23×23 мм с шагом 0,8 мм (совместимый с приборами подсемейства QorIQ LS108xA).
Литература
1. В. Егоров. Интегрированные сетевые процессоры Freescale с ARM-ядрами // «Электронные компоненты» № 4, 2013. С. 85–89.
2. В. Егоров. Интегрированные сетевые процессоры Freescale с ARM-ядрами поднимаются на следующий «ярус» // «Электронные компоненты» № 7, 2015. С. 84–88.
3. В. Егоров. Архитектурные инновации в многоядерных ИКМ QorIQ // «Электронные компоненты» № 10, 2010. С. 67–72.
4. В. Егоров. Второе поколение интегрированных коммуникационных микроконтроллеров QorIQ от Freescale // «Электронные компоненты» № 9, 2012. С. 99–103.
5. В. Егоров. Сетевое ПО VortiQa для многоядерных ИКМ Freescale // «Электронные компоненты» № 10, 2012. С. 98–101.