我知道对于网卡来说,操作系统必须为它分配tx/rx环,这样当OS想接收/发送数据包时,网卡就会知道数据包在哪里,哪些数据包将被传输。
当我读到DMA的时候,我看到了一个叫做DMA环缓冲器的东西。DMA环和tx/rx环是一样的吗?或者是什么关系?
发布于 2017-11-23 08:15:15
简短回答:这些都是一样的。
详细信息:首先,请参阅与您的问题非常相关的这个职位。
在这篇文章中,它说:
异步方法的一个变体经常出现在网卡上。这些卡通常期望看到在与处理器共享的内存中建立的循环缓冲区(通常称为DMA环形缓冲区);每个传入的数据包被放置在环网中的下一个可用缓冲区中,并发出中断信号。然后,驱动程序将网络数据包传递给内核的其余部分,并在环中放置一个新的DMA缓冲区。
DMA环允许NIC直接访问软件使用的内存。软件(内核情况下的NIC驱动程序)为环分配内存,然后将其映射为DMA内存,这样NIC就会知道它可以访问它。TX数据包将由软件在此内存中创建,并由NIC读取和传输(通常是在软件发出NIC信号之后,它应该开始发送)。RX数据包将由NIC写入此内存,并由软件读取和处理(通常是在发出中断以发出工作信号之后)。
希望这能有所帮助。
发布于 2019-12-26 18:07:38
现在1和2可以是DMA可缓存,它们被称为DMA TX/RX环和DMA TX/RX缓冲器。现在,由于RX/TX环必须始终保持,所以它们是作为一致/相干DMA类型的。缓冲器是流/单一DMA类型的内存。




发布于 2020-07-18 13:21:32
DMA环缓冲器和TX/RX环是相同的。
DMA有两种类型的环形缓冲区。
https://stackoverflow.com/questions/47450231
复制相似问题