Контроллер DMA выполняет шесть типов операций на шине. В порядке убывания приоритета это следующие операции.
1. Запись менеджера приёмного буфера.
2. Чтение менеджера приёмного буфера.
3. Чтение передаваемых данных DMA.
4. Запись принимаемых данных DMA.
5. Чтение менеджера передающего буфера.
6. Запись менеджера передающего буфера.
Буфер FIFO
Глубина буфера FIFO EMAC составляет 28 Б. Кроме того, в нём имеется область размером 28 Б, предназначенная для "компенсации" влияния системной тактовой частоты, времени ожидания памяти и сетевого быстродействия.
Как правило, данные перемещаются в/из FIFO порциями размером в четыре слова. При приёме запрос шины обрабатывается, когда буфер FIFO содержит четыре слова и имеет свободное пространство ещё для трёх. При передаче запрос к шине генерируется, когда в буфере FIFO имеется свободное пространство для четырёх слов или когда имеется пространство для двух слов, но если следующая передача должна производиться только одним или двумя словами.
Таким образом, задержка шины должна быть меньше, чем время, которое требуется на приём или на загрузку в буфер FIFO и передачу трёх слов (12 Б данных). При скорости обмена 100 Мбит/с требуется 960 не, чтобы передать или принять 12 Б данных. Шесть циклов задающего генератора необходимы для загрузки данных из шины в FIFO. Для частоты задающего генератора 60 МГц это время составит 100 не, а задержка шины равна 860 не.
