Открыть сервис

Network-on-Chip

Network-on-Chip (NoC, сеть на кристалле, сеть-на-чипе) — это метод организации межсоединений в сверхбольших интегральных схемах (СБИС), при котором связь между функциональными блоками (ядрами процессора, контроллерами памяти, специализированными ускорителями) осуществляется через коммуникационную сеть, построенную из маршрутизаторов и каналов связи, а не через традиционные шины или точки-точка. NoC рассматривается как масштабируемая альтернатива шинной архитектуре для систем на кристалле (SoC) с большим числом компонентов, обеспечивающая высокую пропускную способность и предсказуемую задержку при передаче данных.

История

Предпосылки возникновения

С развитием полупроводниковой технологии и ростом числа транзисторов на кристалле возникла проблема масштабирования традиционных межсоединений. Классические шины (например, AMBA от ARM или CoreConnect от IBM) перестали справляться с ростом числа блоков: при добавлении новых устройств падала пропускная способность шины, росла задержка и потребление энергии. Проводники на верхних слоях металлизации становились узким местом, так как их задержка росла быстрее, чем задержка логических элементов.

Первые концепции (1990-е — начало 2000-х)

Термин «сеть на кристалле» впервые появился в академической литературе в конце 1990-х годов. Пионерские работы были выполнены в Стэнфордском университете (проект «SCORE») и в Техническом университете Делфта. В 2002 году вышла знаковая статья Л. Бенини и Дж. Де Микели «Networks on Chips: A New SoC Paradigm», в которой были сформулированы основные принципы NoC: децентрализация, пакетная коммутация, использование маршрутизаторов и топологий, заимствованных из компьютерных сетей.

Коммерциализация (2005—2015)

Первые коммерческие продукты на базе NoC появились в середине 2000-х годов. Компания Tilera (позднее приобретена Mellanox, ныне часть NVIDIA) выпустила многоядерные процессоры с сеткой 4×4, 8×8 и 16×16, где каждое ядро было соединено с соседними через маршрутизаторы. В 2011 году компания Arteris (ныне Arteris IP) начала лицензирование IP-блоков для построения NoC, которые используются в SoC для мобильных устройств, автомобильной электроники и IoT. В 2012 году Intel представила экспериментальный процессор «Knights Landing» (Xeon Phi) с кольцевой шиной, которая по сути являлась одномерной NoC.

Современное состояние (2015 — настоящее время)

Сегодня NoC является стандартом де-факто для всех сложных SoC. Её применяют в процессорах для смартфонов (Qualcomm Snapdragon, Apple A-серии), в графических процессорах (NVIDIA, AMD), в сетевых процессорах (Broadcom, Marvell), в FPGA и в специализированных чипах для искусственного интеллекта (Google TPU, Habana Gaudi). Развитие технологии 3D-интеграции и чиплетной архитектуры (chiplet) привело к появлению концепции Network-on-Package (NoP) — сети на уровне корпуса микросхемы.

Классификация NoC

NoC классифицируются по нескольким ключевым признакам:

По топологии

Топология определяет, как маршрутизаторы и каналы связи соединены между собой. Наиболее распространённые топологии:

ТопологияОписаниеПреимуществаНедостатки
Сетка (Mesh)Двумерная решётка, каждый маршрутизатор соединён с 4 соседями (север, юг, запад, восток).Простота реализации, хорошая масштабируемость, возможность локальной передачи.Длинные пути между удалёнными узлами, неоднородная задержка.
Тор (Torus)Сетка с закольцованными краями (каждый маршрутизатор соединён с 4 соседями, включая противоположный край).Меньшая средняя задержка, чем у Mesh, за счёт сокращения путей.Более сложная разводка, проблемы с синхронизацией на закольцованных каналах.
Кольцо (Ring)Маршрутизаторы соединены последовательно в кольцо.Простота, низкая стоимость.Пропускная способность ограничена шириной кольца, высокая задержка при большом числе узлов.
Звезда (Star)Центральный маршрутизатор соединён со всеми остальными.Минимальная задержка между любыми двумя узлами (через центр).Единая точка отказа, центральный маршрутизатор — узкое место.
Дерево (Tree)Иерархическая структура, корневой маршрутизатор соединён с дочерними.Хороша для трафика «многие к одному» (например, память — кэш).Проблемы с балансировкой нагрузки, возможна перегрузка корня.
Гиперкуб (Hypercube)Каждый маршрутизатор соединён с log2(N) соседями.Минимальная задержка, высокая надёжность.Сложная разводка, высокая стоимость.

По методу коммутации

  • Коммутация каналов (circuit switching): перед передачей данных устанавливается физический путь от источника к получателю. Путь удерживается до конца сеанса. Обеспечивает детерминированную задержку, но неэффективно использует ресурсы при пульсирующем трафике.
  • Коммутация пакетов (packet switching): данные разбиваются на пакеты, каждый пакет передаётся независимо. Путь может меняться от пакета к пакету. Высокая утилизация каналов, но возможна переменная задержка.
  • Виртуальная коммутация каналов (virtual cut-through): гибридный метод — пакет начинает передаваться по мере поступления, не дожидаясь полного приёма в маршрутизаторе. Снижает задержку по сравнению с коммутацией пакетов.

По алгоритму маршрутизации

  • Детерминированная маршрутизация: путь фиксирован для данной пары источник-получатель. Пример — маршрутизация X-Y (сначала по оси X, затем по оси Y) в сетке.
  • Адаптивная маршрутизация: маршрут может меняться в зависимости от текущей загрузки сети. Позволяет избегать перегрузок, но требует более сложных маршрутизаторов.
  • Маршрутизация на основе таблиц: каждый маршрутизатор хранит таблицу, в которой указан следующий шаг для каждого возможного адресата. Гибкая, но требует памяти.

По организации очередей

  • Очереди на входе (input queuing): пакеты хранятся во входных буферах маршрутизатора. Простая реализация, но возможна блокировка головы очереди (HOL blocking).
  • Очереди на выходе (output queuing): пакеты хранятся на выходных портах. Устраняет HOL blocking, но требует большего числа буферов.
  • Виртуальные каналы (virtual channels, VC): каждый физический канал разделён на несколько логических каналов, каждый со своей очередью. Улучшает использование каналов и снижает вероятность взаимоблокировок (deadlock).

Устройство и архитектура

Основные компоненты

NoC состоит из трёх типов элементов:

  1. Маршрутизаторы (routers): коммутационные узлы, которые принимают пакеты, определяют следующий шаг на основе адреса и передают пакет на соответствующий выходной порт. Каждый маршрутизатор имеет несколько портов (обычно 5: 4 для соседних маршрутизаторов и 1 для подключения к локальному функциональному блоку).
  2. Каналы связи (links): физические проводники (шины) между маршрутизаторами. Характеризуются шириной (числом бит, передаваемых за такт) и тактовой частотой.
  3. Сетевые интерфейсы (network interfaces, NI): преобразуют данные от функциональных блоков (например, запросы на чтение/запись памяти) в формат пакетов NoC и обратно. Обычно NI реализует протоколы более высокого уровня (например, AXI, OCP).

Поток управления

Поток управления (flow control) определяет, как пакеты передаются между маршрутизаторами. Основные механизмы:

  • Рукапожатие (handshake): передатчик выставляет данные на канал и сигнал «valid», приёмник при готовности отвечает сигналом «ready».
  • Кредитный механизм (credit-based): приёмник сообщает передатчику количество свободных буферных слотов (кредитов). Передатчик может отправить пакет только если есть кредиты.
  • Стоп-старт (stop-and-go): приёмник может отправить сигнал «стоп» для приостановки передачи при переполнении буфера.

Пакетная структура

Типичный пакет NoC состоит из:

  • Заголовок (header): содержит адрес назначения, тип операции (чтение/запись), идентификатор потока, контрольную сумму.
  • Полезная нагрузка (payload): собственно данные (например, 32-512 бит).
  • Хвостовик (tail): может содержать информацию о конце пакета и дополнительные проверки.

Применение

Многоядерные процессоры

NoC является основой для соединения десятков и сотен ядер в современных процессорах. Например, в процессоре AMD EPYC (архитектура Zen) используется кольцевая шина, которая по сути является одномерной NoC. В процессоре Intel Xeon Phi (Knights Landing) применяется кольцевая NoC с двумя кольцами.

Системы на кристалле (SoC) для мобильных устройств

В SoC для смартфонов и планшетов NoC соединяет CPU-ядра, GPU, DSP, нейронные процессоры (NPU), контроллеры памяти, видео-кодеки и периферийные интерфейсы. Например, в SoC Qualcomm Snapdragon 8 Gen 3 используется собственная NoC-архитектура «Fabric», обеспечивающая пропускную способность до 100 ГБ/с.

Графические процессоры (GPU)

Современные GPU содержат тысячи ядер, объединённых в кластеры (SM, CU). Внутри кластера используется локальная NoC, а между кластерами — глобальная NoC. Например, в архитектуре NVIDIA Ampere (GA102) используется иерархическая NoC с кольцами и сетками.

Сетевые процессоры

Сетевые процессоры (NPU) обрабатывают пакеты данных на скорости линии. NoC позволяет эффективно распределять нагрузку между множеством процессорных ядер и ускорителей. Пример — процессоры семейства Broadcom BCM88800.

Искусственный интеллект

Специализированные чипы для ИИ (TPU, NPU) используют NoC для соединения вычислительных блоков (систолических массивов) с памятью. Например, в Google TPU v4 используется трёхмерная NoC (3D Torus) для соединения 4096 чипов.

Преимущества и недостатки

Преимущества

  • Масштабируемость: NoC легко масштабируется до сотен и тысяч узлов без существенного снижения производительности.
  • Высокая пропускная способность: параллельная передача данных по множеству каналов.
  • Энергоэффективность: короткие локальные соединения потребляют меньше энергии, чем длинные глобальные шины.
  • Предсказуемость задержки: в детерминированных топологиях (например, кольцо) задержка между любыми двумя узлами известна.
  • Отказоустойчивость: при выходе из строя одного маршрутизатора трафик может быть перенаправлен по альтернативным путям.

Недостатки

  • Сложность проектирования: требуется разработка маршрутизаторов, протоколов и алгоритмов маршрутизации.
  • Площадь кристалла: маршрутизаторы и буферы занимают значительную площадь (до 10-20% от общей площади SoC).
  • Задержка на маршрутизацию: каждый маршрутизатор добавляет задержку (обычно 1-2 такта) на обработку пакета.
  • Проблемы синхронизации: в больших NoC требуется синхронизация тактовых сигналов между удалёнными маршрутизаторами.

Интересные факты

  • Первая коммерческая NoC была реализована в процессоре Tilera TILE64 (2007 год), который содержал 64 ядра, соединённых в сетку 8×8.
  • В суперкомпьютере Fugaku (Япония) используется NoC на основе топологии «Tofu» (Torus Fusion), соединяющая 158 976 процессоров A64FX.
  • Компания Arteris IP является крупнейшим поставщиком IP-блоков для построения NoC, её технологии используются в более чем 500 различных SoC.
  • В 2021 году исследователи из MIT представили NoC на основе фотонных каналов, способную передавать данные со скоростью до 10 Тбит/с.

Источники

  • Benini L., De Micheli G. «Networks on Chips: A New SoC Paradigm» (2002)
  • Marculescu R. et al. «Outstanding Research Problems in NoC Design: System, Microarchitecture, and Circuit Perspectives» (2009)
  • Dally W.J., Towles B. «Principles and Practices of Interconnection Networks» (2004)
  • Arteris IP. «FlexNoC Interconnect IP Product Brief» (2023)
  • AMD. «AMD EPYC 9004 Series Processors: Architecture Overview» (2022)
  • Google. «TPU v4: An Optically Reconfigurable Supercomputer for Machine Learning» (2023)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →