GNU/Linux >> Belajar Linux >  >> Linux

Apa hubungan buffer cincin DMA dan cincin TX/RX untuk kartu jaringan?

Jawaban Singkat :Ini adalah sama.

Detail lebih lanjut :Pertama, lihat posting ini yang sangat terkait dengan pertanyaan Anda.

Dalam artikel ini disebutkan:

Varian dari pendekatan asinkron sering terlihat dengan kartu jaringan. Kartu-kartu ini sering berharap untuk melihat buffer melingkar (sering disebut buffer cincin DMA) yang dibuat dalam memori yang digunakan bersama dengan prosesor; setiap paket yang masuk ditempatkan di buffer berikutnya yang tersedia di dalam ring, dan interupsi diberi sinyal. Pengemudi kemudian meneruskan paket jaringan ke seluruh kernel, dan menempatkan buffer DMA baru di sana.

Cincin DMA memungkinkan NIC untuk langsung mengakses memori yang digunakan oleh perangkat lunak. Perangkat lunak (driver NIC dalam kasus kernel) sedang mengalokasikan memori untuk cincin dan kemudian memetakannya sebagai memori DMA, sehingga NIC akan mengetahuinya dapat mengaksesnya. Paket TX akan dibuat dalam memori ini oleh perangkat lunak dan akan dibaca dan dikirim oleh NIC (biasanya setelah perangkat lunak memberi sinyal pada NIC, ia harus mulai mentransmisikan). Paket RX akan ditulis ke memori ini oleh NIC dan akan dibaca serta diproses oleh perangkat lunak (biasanya setelah interupsi dikeluarkan untuk memberi sinyal ada pekerjaan).

Semoga ini bisa membantu.


  1. Ring Buffer Berisi Alamat Awal dan Akhir Buffer di RAM.TX Ring akan berisi alamat Buffer di RAM yang berisi data yang akan dikirim.RX Ring akan berisi alamat Buffer di RAM tempat NIC akan menempatkan data.

    Dering ini ada di RAM.

  2. Buffer TX dan buffer RX ada di RAM yang ditunjukkan oleh cincin TX/RX.

  3. Sekarang Network Card Register memiliki Location of Rings Buffer di RAM .

Sekarang 1 dan 2 dapat menjadi buffer yang mendukung DMA, mereka disebut cincin DMA TX/RX dan buffer DMA TX/RX. Sekarang karena cincin RX/TX harus tetap ada selama mereka dibuat sebagai meory tipe DMA yang konsisten/koheren. Sementara Buffer dibuat streaming/Tipe memori DMA tunggal


Linux
  1. Apa perbedaan antara buffer dan memori cache di Linux?

  2. Apa antarmuka untuk panggilan sistem ARM dan di mana itu didefinisikan dalam kernel Linux?

  3. Apa perbedaan antara Mark for Removal dan Mark for Complete Removal di Synaptic Package Manager?

  1. Apa perbedaan antara satu garis putus-putus dan dua garis untuk parameter prompt perintah?

  2. Apa alasan rmdir(1) dan rm(1) hidup berdampingan?

  3. Apa perbedaan antara ls dan l?

  1. Apa perbedaan antara InnoDB dan MyISAM?

  2. Inti dari Uniq -u Dan Apa Fungsinya??

  3. Apa nama pengguna dan kata sandi default untuk Live CD Ubuntu?