[发明专利]一种应用于具有多CPU和网卡的系统的网卡驱动方法有效
申请号: | 201310309455.7 | 申请日: | 2013-07-23 |
公开(公告)号: | CN103440213A | 公开(公告)日: | 2013-12-11 |
发明(设计)人: | 刘炳伟;王金桂 | 申请(专利权)人: | 深圳市共进电子股份有限公司 |
主分类号: | G06F13/10 | 分类号: | G06F13/10 |
代理公司: | 深圳市凯达知识产权事务所 44256 | 代理人: | 王琦 |
地址: | 518067 广东省深圳市南山区南海*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用于 具有 cpu 网卡 系统 驱动 方法 | ||
1.一种应用于具有多CPU和网卡的系统的网卡驱动方法,包括网卡驱动过程一和网卡驱动过程二,其特征在于,还包括步骤:在各个CPU的数据结构中分别创建数据接收设备队列和数据发送设备队列,初始化为空;
所述网卡驱动过程一具体包括:
①在通信对端的以太网数据到达网卡时,产生硬件中断,同时关闭硬件中断,调用中断处理进程;
②将所述网卡添加至一CPU的数据接收设备队列中;
③重新开启硬件中断,同时设置所述网卡当前所处数据接收设备队列所属的CPU软中断,所述中断处理进程返回;
所述网卡驱动过程二具体包括:
进行软中断轮询;对于软中断置位的CPU,
先扫描其数据接收设备队列,依次对该数据接收设备队列中的每个网卡进行处理:先从设备寄存器中读取相应的数据,将数据打包后挂入当前网卡的数据接收链表中;然后从数据接收设备队列中摘除当前网卡,并将当前网卡挂入一CPU的数据发送设备队列中;
再依次对其数据发送设备队列中的设备进行处理:将当前网卡的数据接收链表中的数据处理后发送至协议栈。
2.如权利要求1所述的网卡驱动方法,其特征在于,所述步骤②,将所述网卡添加至一CPU的数据接收设备队列的过程进一步包括:
所述中断处理进程轮询各CPU,查看所述网卡存在于当前CPU的数据接收设备队列还是数据发送设备队列中,
若存在于当前CPU的数据接收设备队列,则跳转至步骤③;
若存在于当前CPU的数据发送设备队列中,则将该网卡移到一CPU的数据接收设备队列后跳转至步骤③;
若不存在于任一CPU的数据接收设备队列及数据发送设备队列中,则将该网卡添加至一CPU的数据接收设备队列中,之后跳转至步骤③。
3.如权利要求2所述的网卡驱动方法,其特征在于,所述步骤②中,在中断处理进程轮询各CPU的过程中,若所述网卡存在于当前CPU的数据发送设备队列中,则将该网卡移到负载最少的CPU的数据接收设备队列后跳转至步骤③。
4.如权利要求2所述的网卡驱动方法,其特征在于,所述步骤②中,在中断处理进程轮询各CPU的过程中,若所述网卡存在于当前CPU的数据发送设备队列中,则将该网卡移到当前CPU的数据接收设备队列后跳转至步骤③。
5.如权利要求2所述的网卡驱动方法,其特征在于,所述步骤②中,在中断处理进程轮询各CPU的过程中,若所述网卡不存在于任一CPU的数据接收设备队列及数据发送设备队列中,则将该网卡添加至负载最少的CPU的数据接收设备队列,之后跳转至步骤③。
6.如权利要求1所述的网卡驱动方法,其特征在于,所述网卡驱动过程二中,在将当前网卡从软中断置位的CPU的数据接收设备队列中摘除后,将该网卡挂入负载最少的CPU的数据发送设备队列中。
7.如权利要求3、5或6所述的网卡驱动方法,其特征在于,该方法中,判定其数据发送设备队列中设备数量最少的CPU为负载最少的CPU。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市共进电子股份有限公司,未经深圳市共进电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310309455.7/1.html,转载请声明来源钻瓜专利网。