Как RDMA передает данные между двумя серверами без ЦП?

. Я читал о RoCE, и там говорится о передаче нулевой копии данных между памятью на одном сервере напрямую в память приложения на другом сервере. В большинстве статей указывается, что это делается без участия процессора. Хотя я не понимаю, как это реализовано. Как данные попадают из адаптера в ОЗУ без какой-либо обработки со стороны ЦП? Как он узнает, где в оперативной памяти находятся данные приложения?

2
задан 3 November 2021 в 15:53
1 ответ

Я думаю, вы неправильно понимаете «без процессора». Это не означает, что ЦП вообще не задействован -, это просто означает, что ЦП не выполняет копирование. Он выполняет -через драйверы -настройку операции копирования, а затем аппаратное обеспечение выполняет фактическую обработку.

Ваша ссылка говорит об этом ОЧЕНЬ явно -только что прочитал:

RDMA поддерживает сеть с нулевым-копированием, позволяя сетевому адаптеру передача данных напрямую по проводу

Это операция копирования, а не настройка. Кто-то должен сказать сетевой адаптер.

Поймите, что современные сети, в которых это действительно работает, имеют скорость 100+ гигабит -10+ гигабайт -в секунду, часто объединяют несколько линий, а в наши дни максимальная скорость составляет 400 гигабит.

Это много -для ЦП, чтобы читать из ОЗУ, циклически перебирать его, а затем отправлять адаптеру, когда вы могли бы просто указать адаптеру, какую память читать и отправлять.

Но опять же, «отсутствие участия» — это не «совсем отсутствие ЦП», а «ЦП не копирует данные». Он по-прежнему осуществляет весь контроль.

3
ответ дан 3 November 2021 в 16:32

Теги

Похожие вопросы