Эта статья не содержит достаточного контекста для тех, кто не знаком с предметом . ( Май 2019 ) |
В компьютерных сетях флит ( блок управления потоком или цифра управления потоком ) — это атомарная часть уровня связи , которая формирует сетевой пакет или поток . [1] Первый флит , называемый заголовочным флитом, содержит информацию о маршруте этого пакета (а именно, адрес назначения) и устанавливает поведение маршрутизации для всех последующих флитов, связанных с пакетом. За заголовочным флитом следует ноль или более тел флитов, содержащих фактическую полезную нагрузку данных. Последний флит, называемый хвостовым флитом, выполняет некоторую бухгалтерию для закрытия соединения между двумя узлами .
Виртуальное соединение сохраняет состояние, необходимое для координации обработки flits пакета. Как минимум, это состояние определяет выходной порт текущего узла для следующего перехода маршрута и состояние виртуального соединения (простой, ожидание ресурсов или активное). Виртуальное соединение может также включать указатели на flits пакета, которые буферизуются на текущем узле, и количество буферов flit, доступных на следующем узле. [2] : 237
Растущая потребность в производительности вычислительных систем привела отрасль в область многоядерных и многоядерных процессоров. В этой установке выполнение ядра (программы) разделяется между несколькими процессорами, а вычисления происходят параллельно, что обеспечивает производительность по отношению к времени выполнения. Однако это подразумевает, что процессоры теперь должны иметь возможность общаться друг с другом и обмениваться данными и управляющими сигналами бесперебойно. Одним из простых подходов является шинное соединение , группа проводов, соединяющих все процессоры. Однако этот подход не масштабируется по мере увеличения числа процессоров в системе. [ необходима цитата ] Следовательно, масштабируемая высокопроизводительная сеть соединений лежит в основе параллельной компьютерной архитектуры .
Формальное определение сети взаимосвязей
«Сеть взаимосвязей I представлена сильно связанным направленным мультиграфом, I = G(N,C) . Набор вершин мультиграфа N включает набор узлов обрабатывающих элементов P и набор узлов маршрутизаторов RT . Набор дуг C представляет собой набор однонаправленных каналов (возможно, виртуальных), которые соединяют либо обрабатывающие элементы с маршрутизаторами, либо маршрутизаторы друг с другом». [3]
Основное ожидание от сети взаимосвязей — иметь как можно более низкую задержку, то есть время, необходимое для передачи сообщения от одного узла к другому, должно быть минимальным, при этом позволяя большому количеству таких транзакций происходить одновременно. [4] Как и в случае с любыми другими компромиссами в инженерном проектировании, сеть взаимосвязей должна достигать этих характеристик, сохраняя при этом стоимость реализации как можно ниже. Обсудив, что ожидается от сети, давайте рассмотрим несколько точек проектирования, которые можно настроить для получения необходимой производительности.
Основными строительными блоками сети взаимосвязей являются ее топология , алгоритм маршрутизации , стратегия коммутации и механизм управления потоком.
Топология : Это относится к общей инфраструктуре сети взаимосвязей; шаблон, в котором соединены несколько процессоров. Этот шаблон может быть как регулярным, так и нерегулярным, хотя многие многоядерные архитектуры сегодня используют весьма регулярные сети взаимосвязей.
Алгоритм маршрутизации : определяет, какой путь должно пройти сообщение, чтобы обеспечить доставку в узел назначения. Выбор пути основан на нескольких показателях, таких как задержка, безопасность и количество задействованных узлов и т. д. Существует множество различных алгоритмов маршрутизации, которые предоставляют различные гарантии и предлагают различные компромиссы производительности.
Стратегия коммутации : алгоритм маршрутизации определяет только путь, по которому сообщение должно достичь своего узла назначения. Фактический путь сообщения в сети является ответственностью стратегии коммутации. В основном существует два типа стратегий коммутации: сеть с коммутацией каналов — это сеть, в которой путь зарезервирован и заблокирован от других сообщений, пока сообщение не будет доставлено в узел назначения. Известным примером сети с коммутацией каналов являются телефонные службы, которые устанавливают цепь через множество коммутаторов для вызова. Альтернативный подход — сеть с коммутацией пакетов , в которой сообщения разбиваются на более мелкие компактные сущности, называемые пакетами . Каждый пакет содержит часть данных в дополнение к порядковому номеру. Это означает, что каждый пакет теперь может быть передан индивидуально и собран в пункте назначения на основе порядкового номера.
Управление потоком: Обратите внимание, что ранее мы установили тот факт, что через соединительную сеть в любой момент времени может проходить несколько сообщений. Механизм управления потоком, реализованный на уровне маршрутизатора, отвечает за решение, какое сообщение будет передано, а какое будет задержано.
Каждая сеть имеет ширину w и скорость передачи f , которые определяют пропускную способность сети как b = w*f . Количество данных, переданных за один цикл, называется физической единицей или phit . Как можно заметить, ширина сети также равна размеру phit. Следовательно, пропускная способность сети также может быть определена в терминах phit/сек. Каждое передаваемое сообщение может быть разбито на более мелкие фрагменты фиксированной длины, называемые пакетами . Пакеты, в свою очередь, могут быть разбиты на блоки управления потоком сообщений или flits .
Важно отметить, что flits представляют логические единицы информации, в то время как phits представляют физический домен, то есть phits представляют количество бит, которые могут быть переданы параллельно за один цикл. Рассмотрим Cray T3D. [5] Он имеет сеть взаимосвязей, которая использует управление потоком сообщений на уровне flit, где каждый flit состоит из восьми 16-битных phits. Это означает, что его размер flit составляет 128 бит, а размер phit — 16 бит. Также рассмотрим коммутатор IBM SP2. [6] Он также использует управление потоком сообщений на уровне flit, но его размер flit равен его размеру phit, который установлен в 8 бит.
Обратите внимание, что размер сообщения является доминирующим решающим фактором (среди многих других) при выборе ширины flit. В зависимости от размера сообщения есть два конфликтующих варианта дизайна:
На основе размера пакетов необходимо определить ширину физического канала между двумя маршрутизаторами. Это означает, что если размер пакета большой, ширина канала также должна быть большой, однако большая ширина канала подразумевает большую площадь и более высокое рассеивание мощности. В целом, ширина канала сводится к минимуму. Ширина канала (которая также определяет ширину phit) теперь учитывается при определении ширины flit. [7]
На этом этапе важно отметить, что хотя межмаршрутизаторные передачи обязательно строятся в терминах phits, методы коммутации работают в терминах flits. [7] Для получения более подробной информации о различных методах коммутации см. wormhole switching и cut-through switching . Поскольку большинство методов коммутации работают с flits, они также оказывают большое влияние на определение ширины flit. Другие определяющие факторы включают надежность, производительность и сложность реализации.
Рассмотрим пример того, как пакеты передаются с точки зрения flits. В этом случае на рисунке мы имеем пакет, передаваемый между A и B. Процесс передачи пакета происходит в следующие шаги.
Flit (единицы/цифры управления потоком) — это единица объема данных при передаче сообщения на уровне канала. Flit может быть принят или отклонен на стороне получателя на основе протокола управления потоком и размера буфера приема. Механизм управления потоком на уровне канала позволяет получателю отправлять непрерывный поток сигналов для управления тем, следует ли ему продолжать отправлять flits или прекратить отправлять flits. Когда пакет передается по каналу, его необходимо разделить на несколько flits перед началом передачи. [ необходима цитата ]
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка )