Ssylka

Как повысить эффективность межпроцессорного обмена данными с помощью эмуляции Intel NTB Gen3?

Создание виртуального двойника Intel NTB Gen3 в QEMU позволяет разработчикам тестировать и отлаживать протоколы межпроцессорного обмена данными без необходимости использования реального оборудования. Такой подход обеспечивает симметричную конфигурацию, высокую скорость разработки и возможность отладки с помощью gdb. Модель QEMU полностью совместима с драйверами Linux и поддерживает работу с регистрами, прерываниями и окнами памяти, что является ключевым для реализации различных сценариев обмена данными.
Как повысить эффективность межпроцессорного обмена данными с помощью эмуляции Intel NTB Gen3?
Изображение носит иллюстративный характер

Использование Memory Windows (MW) в NTB позволяет передавать данные между узлами через PCIe. Существует несколько способов обмена: через сообщения с адресами и данными, через общую память BAR, alias в общее пространство памяти, и предоставление оперативной памяти в качестве BAR для соседнего узла. Наиболее эффективным методом является предоставление оперативной памяти как BAR для соседнего узла, обеспечивающее высокую скорость обмена без лишнего копирования данных, но при этом требуется экспорт всей памяти. Гибридный метод, использующий DMA, обеспечивает контроль адресов и изоляцию памяти, но может замедлять производительность.

Для работы с прерываниями в QEMU, модель использует регистры Doorbell, при записи в которые вызываются прерывания на противоположной стороне. Модель также эмулирует регистры Scratchpad для обмена простыми данными и Message для более эффективного обмена через очередь сообщений. Прерывания передаются между машинами через сокеты, что позволяет корректно эмулировать их работу. Для полной совместимости с драйверами Intel NTB требуется передавать информацию о статусе прерываний, что решается путём передачи ссылки на область памяти, содержащую состояние вектора прерываний.

Производительность модели Intel NTB Gen3 в QEMU позволяет успешно разрабатывать и тестировать различные транспорты обмена данными, такие как RPMSG, Virtio/Vhost и NTRDMA, что является ключевым фактором для создания высокоскоростных и надежных систем. Тесты производительности, проведенные с помощью утилит ntb_perf и iperf3, показывают, что модель обеспечивает высокую скорость передачи данных и низкую задержку, особенно при использовании методов, связанных с передачей оперативной памяти между узлами, что сопоставимо с реальным оборудованием.


Новое на сайте

19033Обнаружение древнейшей подтвержденной спиральной галактики с перемычкой COSMOS-74706 19032Микрогравитация на мкс превратила вирусы в эффективных убийц устойчивых бактерий 19031Как древние римляне управляли капиталом, чтобы обеспечить себе пассивный доход и защитить... 19030Миссия Pandora: новый инструмент NASA для калибровки данных телескопа «Джеймс Уэбб» 19029Телескоп Джеймс Уэбб запечатлел «неудавшиеся звезды» в звездном скоплении вестерлунд 2 19028Как «пенопластовые» планеты в системе V1298 Tau стали недостающим звеном в понимании... 19027Возможно ли одновременное глобальное отключение всего мирового интернета? 19026Станет ли бактериальная система самоуничтожения SPARDA более гибким инструментом... 19025Насколько опасной и грязной была вода в древнейших банях Помпей? 19024Гравитационная ориентация и структура космических плоскостей от земли до сверхскоплений 19023Сколько частей тела и органов можно потерять, чтобы остаться в живых? 19022Зачем Сэм Альтман решил внедрить рекламу в бесплатные версии ChatGPT? 19021Хитроумная маскировка вредоноса GootLoader через тысячи склеенных архивов 19020Удастся ли знаменитому археологу Захи Хавассу найти гробницу Нефертити до ухода на покой? 19019Действительно ли «зомби-клетки» провоцируют самую распространенную форму эпилепсии и...