免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2291 | 回复: 4
打印 上一主题 下一主题

[驱动] 网卡在不同工作模式下的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-17 10:19 |只看该作者 |倒序浏览
最近一直有个问题让我疑惑着,网卡在不同工作模式下是如何与CPU还有DMA配合进行工作的呢?虽然知道大概过程,但是一直没有具体的文档来说明一下。

比如,网卡工作在100M全双工和10M半双工下,CPU与网卡协同工作完成数据的收发的方式都是一样的呢?

看了网卡芯片手册,CPU芯片手册,只知道一个大概,有没有针对这部分介绍比较详细的文档或者书籍?

盼不吝赐教,多谢了!

论坛徽章:
0
2 [报告]
发表于 2012-04-17 10:55 |只看该作者
网卡工作在100M或是10M,无论是发送或是接受数据在cpu看来都是一样的,换句话说,软件是一样的。但是刚开始的配置部分是不一样的。
网卡工作在100M或是10M,对于网卡本身来讲是不一样的,网卡内部按照相关的模式取操作。

取个简单的例子,在例子中
我对应cpu ,你对应网卡

我现在要求你把仓库1000辆车的货物运送到目的,方式是一次发10辆车(配置部分)。ok,当你得知这一消息后,你就按照我说的方式去做,一次10辆发车,发100此后,完成任务,你就通知我(发送完成中断或是我主动查询)。

论坛徽章:
0
3 [报告]
发表于 2012-04-17 11:10 |只看该作者
回复 2# npuazm


    谢谢你的回答

在CPU看来,网卡工作在什么模式都没有关系,但是对于网卡而言,工作在不同模式下给CPU的中断的时序和次数可能都不太一致,这样一来,可能会影响到其他模块的操作,进而影响整个系统的运行。

具体一点,比如:网卡现在需要接收大量的数据,当工作在100M全双工的模式下时,其接收数据,CPU和DMA配合完成这部分工作,应用程序使用得到的数据进行相应的操作。这是没有问题的。

又当网卡工作在10M半双工的模式下时,接收数据也是正常的,应用程序使用得到的数据也可以正常操作,但是此时系统的反应特别慢,实际上就是卡住了(我看来)

软件一致,不同之处就是网卡工作模式不一致,造成系统不能正常工作,对于这个问题,我是选择从分析网卡不同工作模式入手,不知道是不是我的思路有问题?希望你能够给我建议。

非常感谢你的热心回答,谢谢!

论坛徽章:
0
4 [报告]
发表于 2012-04-17 13:43 |只看该作者
软件一致,不同之处就是网卡工作模式不一致,造成系统不能正常工作,对于这个问题,我是选择从分析网卡不同工作模式入手,不知道是不是我的思路有问题?希望你能够给我建议。
这个问题只能说说我的看法:
首先说一个网卡工作在什么样的模式,为什么工作在这个模式,一般是通过phy来决定的。
比如一个开发板网卡的phy板通过网络与电脑相连的时候,两者之间通过自动协商确定工作模式,例如MMI 100M 全双工,也就是说这个在插上网线的时候,工作模式就确定了。当然你也可以自己在网卡插上后,在通过软件设置工作模式(包括设置网卡工作模式,phy工作模式)。
网卡工作模式不一致,造成系统不能正常工作
这个我觉的和应用有关系。
比如在玩游戏的时候,有的游戏就有硬件要求,内存的大小,显卡的大小。这个在你用应用软件的时候,就要求了。
同理,你说的那个网卡的应用程序,有没有可能人家自己要求,比如100M 全双工。
我只是说说自己看法,那个大侠懂这个,帮帮这个兄弟

论坛徽章:
0
5 [报告]
发表于 2012-04-17 13:50 |只看该作者
回复 4# npuazm


    呵呵,谢谢,phy是自动协商的,就是接交换机(100M)和接HUB(10M)出现不同的情况,难以理解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP