GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie ist die Beziehung zwischen DMA-Ringpuffer und TX/RX-Ring für eine Netzwerkkarte?

Kurze Antwort :Das sind die gleichen.

Mehr Details :Sehen Sie sich zuerst diesen Beitrag an, der sich sehr auf Ihre Frage bezieht.

In diesem Artikel heißt es:

Eine Variante des asynchronen Ansatzes wird oft bei Netzwerkkarten gesehen. Diese Karten erwarten oft, dass ein kreisförmiger Puffer (oft als DMA-Ringpuffer bezeichnet) in einem mit dem Prozessor gemeinsam genutzten Speicher eingerichtet wird; jedes eingehende Paket wird in den nächsten verfügbaren Puffer darin platziert und ein Interrupt wird signalisiert. Der Treiber leitet dann die Netzwerkpakete an den Rest des Kernels weiter und platziert einen neuen DMA-Puffer darin.

Der DMA-Ring ermöglicht der NIC den direkten Zugriff auf den von der Software verwendeten Speicher. Die Software (der NIC-Treiber im Kernel-Fall) weist Speicher für die Ringe zu und bildet ihn dann als DMA-Speicher ab, damit die NIC weiß, dass sie darauf zugreifen kann. TX-Pakete werden in diesem Speicher von der Software erstellt und von der NIC gelesen und übertragen (normalerweise nachdem die Software der NIC signalisiert hat, dass sie mit der Übertragung beginnen soll). RX-Pakete werden von der NIC in diesen Speicher geschrieben und von der Software gelesen und verarbeitet (normalerweise nachdem ein Interrupt ausgegeben wurde, um zu signalisieren, dass Arbeit vorhanden ist).

Hoffe das hilft.


  1. Der Ringpuffer enthält die Start- und Endadresse des Puffers im RAM. Der TX-Ring enthält die Adressen des Puffers im RAM, der die zu übertragenden Daten enthält. Der RX-Ring enthält die Adresse des Puffers im RAM, wo die NIC die Daten ablegt.

    Diese Ringe sind im RAM vorhanden.

  2. TX-Puffer und RX-Puffer befinden sich im RAM, auf das durch TX/RX-Ringe verwiesen wird.

  3. Jetzt hat das Netzwerkkartenregister die Position des Ringpuffers im RAM .

Jetzt können 1 und 2 DMA-fähiger Puffer sein, sie heißen DMA TX/RX-Ring und DMA TX/RX-Puffer. Da nun der RX/TX-Ring durchgehend bestehen bleiben muss, werden sie als konsistenter/kohärenter DMA-Speichertyp hergestellt. Während Puffer erstellt werden Streaming/Einzelner DMA-Speichertyp


Linux
  1. Was ist der Unterschied zwischen InnoDB und MyISAM?

  2. Der Sinn von Uniq -u und was macht es?

  3. Was ist der Unterschied zwischen Puffer- und Cache-Speicher in Linux?

  4. Was ist der Unterschied zwischen „Zum Entfernen markieren“ und „Zum vollständigen Entfernen markieren“ im Synaptic Package Manager?

  5. Welches Netzwerk-Dateifreigabeprotokoll hat die beste Leistung und Zuverlässigkeit?

Was ist der Unterschied zwischen Linux und Unix?

So sichern und wiederherstellen Sie eine SD-Karte für Raspberry Pi

VLANs für Systemadministratoren:Die Grundlagen

Network Attached Storage (NAS) und Storage Area Networks (SAN) – was ist der Unterschied?

Was ist der Unterschied zwischen DMA und Memory-Mapped IO?

Wie lauten der Standardbenutzername und das Standardkennwort für eine Ubuntu Live-CD?