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 состоит из трёх типов элементов:
- Маршрутизаторы (routers): коммутационные узлы, которые принимают пакеты, определяют следующий шаг на основе адреса и передают пакет на соответствующий выходной порт. Каждый маршрутизатор имеет несколько портов (обычно 5: 4 для соседних маршрутизаторов и 1 для подключения к локальному функциональному блоку).
- Каналы связи (links): физические проводники (шины) между маршрутизаторами. Характеризуются шириной (числом бит, передаваемых за такт) и тактовой частотой.
- Сетевые интерфейсы (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 →