Quantcast
Channel: Последние публикации
Viewing all articles
Browse latest Browse all 20

Качество обслуживания: Computer Networks vs. Network on Chip

$
0
0
Традиционно устройства внутри микропроцессора коммутировались с помощью общей шины. С течением времени росла степень интеграции, что сопровождалось увеличением числа блоков внутри микропроцессора. При числе блоков порядка десятков и сотен, шинная архитектура соединений становится непригодной из-за ограниченной пропускной способности и масштабируемости.
Современные системы межсоединений, архитектуры которых сильно зависят от области применения, объединяют под общим названием коммуникационных фабрик (communication fabrics). При этом для северного кластера микросхем потребительской электроники характерна централизованная структура, являющаяся дальнейшим развитием идей общей шины в сторону конвейеризации и параллельной обработки запросов. Южный кластер традиционно имеет древовидную иерархическую структуру. Для серверов применяют распределенные архитектуры типа «сеть на кристалле» (Network on Chip, NoC), такие как кольца и решетки.

Если проводить аналогии, то сети на кристалле (NoC) являются прямым аналогом вычислительных (компьютерных) сетей, которые исторически возникли намного раньше. Вопросы их проектирования, в том числе и в области качества обслуживания, достаточно подробно исследованы в литературе и отражены в технических стандартах. Для компьютерных сетей существуют методы анализа и обеспечения требований к пропускной способности, задержке и её вариации, надежности и т.д. Пришло время разобраться, в чем же отличия компьютерных сетей от сетей на кристалле, которые препятствуют использованию существующих подходов к обеспечению качества обслуживания и вынуждают разрабатывать новые.

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

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

Аргумент в пользу сетей на кристалле: в глобальных сетях, поток данных может проходить через участки, построенные по различным технологиям, отличающимся способами коммутации, разделения среды, маршрутизации и т.д. Например, при звонке с IP-телефона на сотовый телефон, голосовой трафик может сначала проходить через локальную сеть с коммутацией пакетов, затем через сеть ATM с коммутацией соединений и, наконец, через мобильную сеть построенную по третьей технологии (например, UMTS). Чтобы обеспечить выполнение требований качества обслуживания на всем пути от источника к получателю, необходимо учитывать отличия механизмов качества обслуживания в этих типах сетей. Для сетей на кристалле архитектура заранее известна и проблемы связанные с передачей данных между разными типами сетей не актуальны.

Число агентов подключенных к сети на кристалле и их поведение в процессе эксплуатации остается неизменным, в то время как для компьютерных сетей оно может меняться. Это приводит к тому, что в компьютерных сетях гораздо выше «запас прочности». В частности линии связи большую часть времени функционируют не на пределе своей пропускной способности, а между двумя узлами может существовать несколько маршрутов. Последнее позволяет использовать для передачи критичных к параметрам качества обслуживания данных другой маршрут, нежели для остальных данных. В сетях на кристалле, как правило, маршрутизация носит детерминированный характер, а линии связи работают под нагрузкой близкой к предельной.
Можно приводить еще множество отличий, например, что компьютерные сети в случае выхода линии связи из строя могут провести реконфигурацию и продолжить работу, а для сетей на кристалле выход линии связи из строя, как правило, фатален. Но какое же отличие является главным?

Принципиальным отличием компьютерных сетей от сетей на кристалле является масштаб времени. Для компьютерных сетей время обработки пакетов измеряется микросекундами или миллисекундами, тогда как для сетей на кристалле время обработки и доставки пакетов измеряется наносекундами и долями наносекунд. При этом требования к пропускной способности в сетях на кристалле сопоставимы или превосходят требования для компьютерных сетей. Это накладывает дополнительные ограничения на используемые алгоритмы маршрутизации, планирования и арбитража. Для компьютерной сети анализ одного пакета данных может предполагать выполнение целой подпрограммы, в то время как в сетях на кристалле большинство решений должно приниматься за 1-2 периода тактового сигнала или и вовсе комбинационно. Это делает неприменимыми для сетей на кристалле практически все алгоритмы обеспечения качества обслуживания, используемые в компьютерных сетях.

За последнее десятилетие были предложены подходы к проектированию коммуникационных фабрик, призванные обеспечить гарантии качества обслуживания “по построению”. Их можно условно разделить на две категории. Подходы на основе дифференциации трафика (traffic differentiation) решают проблему конкурирующих запросов введением уровней приоритета, соответствующих разным классам трафика. Однако для сложной системы затруднительно определить необходимое количество уровней приоритетов и избежать таких проблем, как инверсии приоритета и истощения ресурсов (starvation).
Проблема инверсии приоритетов заключается в следующем: если в одной из очередей пакетов высокоприоритетному пакету предшествует низкоприоритетный, то продвижение пакета с высоким приоритетом блокируется до тех пор, пока не будет обработан низкоприоритетный пакет. Такая ситуация потенциально приводит к нарушению требований качества обслуживания для высокоприоритетного трафика. Фактически приоритет обслуживания блокирующего пакета повышается по сравнению с тем классом трафика, к которому он принадлежит. Избежать этого можно, например, повсеместным использованием раздельных очередей для буферизации различных классов трафика.

Передача без конкуренции (contention-free transmisson) основывается на той или иной схеме резервирования ресурсов перед началом передачи. Разделение времени обработки, использование мест в очередях, порядок передачи по разделяемым линиям связи, планируются заранее. Если тот или иной ресурс оказывается невостребованным тем, кому он предназначался согласно плану, то он не используется даже при наличии других запросов на этот ресурс.
Используя статическое резервирование, несложно добиться определенных гарантий производительности. Такой подход позволяет оптимизировать архитектуру под конкретное приложение и пригоден для встраиваемых систем, но приводит к низкой утилизация ресурсов в системах на кристалле широкого спектра применения. Это объясняется опять же тем, что поведение узлов сети может сильно изменяться с течением времени. При динамическом резервировании ресурсов, после того как ресурсы уже зарезервированы, удается добиться и гарантий производительности и хорошей утилизации ресурсов. Но сам процесс резервирования может занять длительное время и задержки на стадии резервирования по-прежнему трудно оценить.

Viewing all articles
Browse latest Browse all 20

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>