Scatter-gather
Подробнее
- Владелец
- STMicroelectronics
- Год
- 2007
- Тип
- Семейство микроконтроллеров
- Официальный сайт
- st.com
Передача, которая читает из нескольких отдельных областей памяти или пишет в них за один заход, не копируя их предварительно в одно место.
Простой канал DMA умеет перемещать лишь один непрерывный блок. При scatter-gather ему выдают список дескрипторов — адрес и длину каждого фрагмента — и он обходит их по порядку, не будя процессор между ними. Gather собирает данные из разных мест при передаче, scatter разбрасывает их при приёме.
Классический пример — сетевые карты: заголовок протокола лежит в одном буфере, полезная нагрузка в другом, и карта читает оба напрямую. Та же идея есть и в программном виде — readv() и writev(), появившиеся в 4.2BSD. В прошивках её часто сочетают с кольцом дескрипторов, по которому контроллер DMA ходит бесконечно.