我知道对于网卡,操作系统必须为其分配tx / rx环,以便当操作系统想要接收/传输数据包时,网卡将知道数据包的位置以及要传输的数据包。
当我读到DMA时,我看到一些名为DMA环缓冲区的东西。 DMA环和tx / rx是否相同?或者是什么关系?
答案 0 :(得分:2)
简答:这些都是一样的。
更多详情: 首先,请参阅与您的问题非常相关的this post。
在this article中说:
通常可以在网络中看到异步方法的变体 牌。这些卡通常期望看到循环缓冲区(通常称为 在与处理器共享的存储器中建立的DMA环缓冲器; 每个传入的数据包都放在下一个可用的缓冲区中 响铃,并发出中断信号。然后驱动程序通过网络 数据包到内核的其余部分,并在其中放置一个新的DMA缓冲区 环。
DMA环允许NIC直接访问软件使用的内存。软件(内核中的NIC驱动程序)为环分配内存,然后将其映射为DMA内存,因此NIC知道它可以访问它。 TX数据包将由软件在此存储器中创建,并由NIC读取和传输(通常在软件向NIC发出信号后应开始传输)。 RX数据包将由NIC写入此存储器,并由软件读取和处理(通常在发出中断后发出信号)。
希望这有帮助。
答案 1 :(得分:1)
环形缓冲区包含RAM中缓冲区的开始和结束地址。 TX Ring将在RAM中包含缓冲区的地址,其中包含要发送的数据。 RX环将包含NIC用来放置数据的RAM中的缓冲区地址。
这些环存在于RAM中。
TX缓冲区和RX缓冲区位于TX / RX环指向的RAM中。
现在,网卡寄存器在RAM中具有振铃缓冲区的位置。
现在1和2可以是具有DMA功能的缓冲区,它们分别称为DMA TX / RX环和DMA TX / RX缓冲区。 现在,由于必须始终保持RX / TX环,因此将它们作为一致/一致的DMA类型的存储器。 虽然使缓冲区成为流式/单DMA类型的内存
答案 2 :(得分:0)
DMA环缓冲区和TX / RX环是同一件事。
DMA有两种类型的环形缓冲区