[发明专利]一种网络设备写表方法及装置在审
申请号: | 201310717789.8 | 申请日: | 2013-12-23 |
公开(公告)号: | CN104731711A | 公开(公告)日: | 2015-06-24 |
发明(设计)人: | 姜海明;王治春 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F12/08 |
代理公司: | 工业和信息化部电子专利中心 11010 | 代理人: | 梁军 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 网络设备 方法 装置 | ||
技术领域
本发明涉及通信领域,特别是涉及一种网络设备写表方法及装置。
背景技术
现今网络发展速度惊人,网络流量的增长及新业务的出现,需要网络设备具有线速和灵活的处理能力。目前网络芯片包括集成电路(Application Specific Integrated Circuit,简称为ASIC)和NP(网络处理器)两大类。
网络芯片外围接口非常丰富,如静态随机存储器(Static RAM,简称为SRAM)、三态内容寻址存储器(ternary content addressable memory,简称为TCAM)、同步动态随机存储器(Synchronous Dynamic Random Access Memory,简称为SDRAM)等,这些存储器存放着各种业务表项,如端口表、介质访问控制(medium access control,简称为MAC)表、路由表等;另外,芯片内部包括大量的寄存器。
网络设备运行过程中,控制层软件会频繁的与芯片进行交互,比如下发业务配置等。对芯片而言,主要就是读写芯片存储器和内部寄存器。目前很多网络设备表项、寄存器配置是通过CPU(中央处理器)与芯片进行消息交互实现的。
目前Linux操作系统广泛应用于网络设备驱动中,Linux系统分为用户态和内核态两个层面。芯片驱动层次如图1所示的Linux系统设备驱动软件层次示意图,目前网络设备驱动发送消息的通常做法是用户态申请内存并将消息填充到用户态内存中,由于实际与芯片交互的是内核层,因此必须将消息从用户态的内存拷贝到内核态的内存中,然后从内核态的内存通过总线写入硬件芯片中。
由于网络交换设备中消息交互非常频繁,极限情况每秒钟可能有上万条消息发送,因此这涉及了大量的内存申请,以及用户态、内核态的拷贝操作。这对网络设备的CPU是一个很大的负担,影响了网络设备的写表效率。
针对相关技术中网络设备写表方法对CPU的负担较大的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中网络设备写表方法对CPU的负担较大的问题,本发明提供了一种网络设备写表方法及装置,用以解决上述技术问题。
根据本发明的一个方面,本发明提供了一种网络设备写表方法,其中,该方法包括:内核空间预先申请内存,将内核空间内存映射到用户空间,得到用户空间内存地址;上述用户空间向上述内核空间申请上述内核空间内存,得到对应的用户空间内存地址;将上述用户空间内存地址和消息大小记录在缓冲区buffer描述符中传递给上述内核空间;上述内核空间将上述用户空间内存地址转换为内核空间内存地址,通过直接内存存取(Direct Memory Access,简称为DMA)控制器将消息写入芯片。
优选地,内核空间将内核空间内存映射到用户空间,得到用户空间内存地址之后,上述方法还包括:内核空间根据上述用户空间内存地址,计算上述用户空间内存地址相对于内核空间内存地址的偏移量;其中,上述偏移量=内核空间内存地址-用户空间内存地址。
优选地,用户空间向内核空间申请上述内核空间内存,得到上述用户空间内存地址,包括:用户空间向内核空间申请内核空间内存,得到其内核空间内存地址;用户空间根据上述偏移量和上述内核空间内存地址,计算得到用户空间内存地址。
优选地,内核空间通过上述DMA控制器将消息写入芯片,包括:内核空间将上述内核空间内存地址和上述消息大小,传递给上述DMA控制器,内核空间的驱动通过上述DMA控制器将消息写入芯片。
优选地,用户空间将待释放的用户空间内存地址,记录到上述buffer描述符中传递给内核空间;内核空间根据上述偏移量和上述用户空间内存地址,计算得到内核空间内存地址;内核空间将上述内核空间内存地址传递给内核空间的驱动;内核空间的驱动释放上述buffer描述符。
优选地,内核空间将上述内核空间内存映射到用户空间,包括:内核空间将上述内核空间内存,通过mmap映射到用户空间。
根据本发明的另一方面,本发明还提供了一种网络设备写表装置,应用于内核空间,其中,该装置包括:内存申请模块,用于预先申请内存,将内核空间内存映射到用户空间,得到用户空间内存地址;消息写入模块,用于在接收到用户空间传递的用户空间内存地址后,将上述用户空间内存地址转换为内核空间内存地址,通过直接内存存取DMA控制器将消息写入芯片。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司;,未经中兴通讯股份有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310717789.8/2.html,转载请声明来源钻瓜专利网。