GNU/Linux >> Tutoriels Linux >  >> Linux

Quelle est la relation entre le tampon en anneau DMA et l'anneau TX/RX pour une carte réseau ?

Réponse courte :Ce sont les mêmes.

Plus de détails :Tout d'abord, consultez ce post qui est très lié à votre question.

Dans cet article, il est écrit :

Une variante de l'approche asynchrone est souvent observée avec les cartes réseau. Ces cartes s'attendent souvent à voir un tampon circulaire (souvent appelé tampon en anneau DMA) établi dans la mémoire partagée avec le processeur ; chaque paquet entrant est placé dans le prochain tampon disponible dans l'anneau, et une interruption est signalée. Le pilote transmet ensuite les paquets réseau au reste du noyau et place un nouveau tampon DMA dans l'anneau.

L'anneau DMA permet à la carte réseau d'accéder directement à la mémoire utilisée par le logiciel. Le logiciel (le pilote de la carte réseau dans le cas du noyau) alloue de la mémoire aux anneaux, puis la mappe en tant que mémoire DMA, afin que la carte réseau sache qu'elle peut y accéder. Les paquets TX seront créés dans cette mémoire par le logiciel et seront lus et transmis par la carte réseau (généralement après que le logiciel signale à la carte réseau qu'elle doit commencer à transmettre). Les paquets RX seront écrits dans cette mémoire par la carte réseau et seront lus et traités par le logiciel (généralement après l'émission d'une interruption pour signaler qu'il y a du travail).

J'espère que cela vous aidera.


  1. Le tampon en anneau contient les adresses de début et de fin du tampon dans la RAM. L'anneau TX contiendra les adresses du tampon dans la RAM contenant les données à transmettre. L'anneau RX contiendra l'adresse du tampon dans la RAM où la carte réseau placera les données.

    Ces anneaux sont présents dans la RAM.

  2. Le tampon TX et le tampon RX sont dans la RAM pointée par les anneaux TX/RX.

  3. Maintenant, le registre de la carte réseau a l'emplacement du tampon d'anneaux dans la RAM.

Maintenant, 1 et 2 peuvent être des tampons compatibles DMA, ils sont appelés anneau DMA TX/RX et tampon DMA TX/RX. Maintenant, puisque l'anneau RX/TX doit rester tout au long, ils sont créés en tant que type de mémoire DMA cohérent/cohérent. streaming/Type de mémoire DMA unique


Linux
  1. Quelle est l'interface pour les appels système ARM et où est-elle définie dans le noyau Linux ?

  2. Quelle est la différence entre DMA-Engine et DMA-Controller ?

  3. Quelle est la différence entre Marquer pour suppression et Marquer pour suppression complète dans Synaptic Package Manager ?

  4. Quelle est la différence entre un tiret et deux tirets pour les paramètres d'invite de commande ?

  5. Quelle est la raison pour laquelle rmdir(1) et rm(1) coexistent ?

Quelle est la différence entre Linux et Unix ?

Comment sauvegarder et restaurer une carte SD pour Raspberry Pi

VLAN pour les administrateurs système :les bases

Stockage en réseau (NAS) et réseaux de stockage (SAN) - Quelle est la différence ?

Quelle est la différence entre DMA et les E/S mappées en mémoire ?

Quelle est la différence entre l'utilisation en amont et l'emplacement pour php-fpm ?