Infiniband транспортный слой
У меня возникают проблемы с пониманием контекста с http://www.redbooks.ibm.com/redbooks/pdfs/sg247351.pdf
Он описывает, как реализован транспортный уровень, но каждая информация, которую я только что прочитал, объясняет особенности, а не то, как реализован транспортный уровень.
Архитектура InfiniBand предлагает значительное улучшение для транспортного уровня по сравнению с другими технологиями, такими как Ethernet: все функции реализованы в аппаратном обеспечении.
Есть ли способ узнать основную идею о том, как функции реализованы в аппаратном обеспечении для транспортного уровня Infiniband? Например, использует ли он логические элементы управления и регистры для запуска всех необходимых функций транспортного уровня?
2 ответа
Я выяснил и подтвердил с поставщиками Infiniband, хотя документ объясняет, что транспортный уровень построен на аппаратном уровне, он относится только к парам очередей в HCA. Соответственно, большая часть логики работает только в фоновом режиме из драйвера Infiniband.
Общий процесс
1) Приложение написано для использования InfiniBand.
2) Интерфейсы в драйвере Mellanox (например, MPI) позволяют приложению через драйвер записывать данные непосредственно в область памяти (отправляя рабочий запрос) на сервере (теперь мы находимся на транспортном уровне).
3) Детали пространства памяти между исходным и целевым серверами обмениваются, так что теперь обмен данными будет происходить между этими областями оперативной памяти. Это является ключевым преимуществом InfiniBand, поскольку он обходит ядро / ЦП и обменивается данными на аппаратном уровне (между областями памяти, используя пары очередей между HCA (адаптерами). Когда мы говорим, что данные обмениваются на аппаратном уровне, мы говорим о памяти сервера и ГКА.
4) HCA будет сегментировать пакеты в соответствии с MTU и передавать данные на провод. На другом конце он будет снова собран. Это все еще "Транспортный уровень".
5) Когда биты проталкиваются на провод - это физический уровень.
Заключение
Драйвер находится в фоновом режиме, сообщая ОС, как взаимодействовать с HCA (выбор транспортного протокола InfiniBand, vs, Ethernet, MTU, CM vs, режима обмена пар очереди RD и т. Д.). Кроме того, он предоставляет программные интерфейсы InfiniBand и дополнительные утилиты для устранения неполадок и т. Д. Я думаю, вы могли бы сказать, что здесь есть некоторая логика, обеспечиваемая драйвером OFED HCA.
InfiniBand - это четко определенный сквозной протокол межсоединений, который официально определен и поддерживается Торговой ассоциацией InfiniBand.
Вы можете найти полные спецификации на сайте IBTA: http://www.infinibandta.org/content/pages.php?pg=technology_public_specification
В приведенных выше спецификациях вы можете найти что угодно, от определений физического уровня до высокоуровневых протоколов управления соединениями и администраторов подсетей. Это руководство, которое производители оборудования InfiniBand используют для реализации своих продуктов. Реализации, зависящие от поставщика, могут существенно отличаться в том, как и где реализована функциональность, и во многих случаях являются конфиденциальными.