微引擎与STRONGARM核的通信方法.pdf

上传人:b*** 文档编号:682145 上传时间:2018-03-04 格式:PDF 页数:9 大小:360.18KB
返回 下载 相关 举报
摘要
申请专利号:

CN200410061108.8

申请日:

2004.11.16

公开号:

CN1614955A

公开日:

2005.05.11

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):H04L 12/66申请日:20041116授权公告日:20080409终止日期:20091216|||授权|||实质审查的生效|||公开

IPC分类号:

H04L12/56; H04L29/06

主分类号:

H04L12/56; H04L29/06

申请人:

北京北方烽火科技有限公司;

发明人:

彭凯; 刘胜超; 徐波

地址:

430074湖北省武汉市洪山区邮科院路88号北方烽火科技公司研发中心

优先权:

专利代理机构:

湖北武汉永嘉专利代理有限公司

代理人:

朱必武

PDF下载: PDF下载
内容摘要

微引擎与StrongArm核的通信方法,在VXWORKS所管理的地址空间中开辟一个共享缓冲区,将共享缓冲区分成多块;取SRAM的固定单元用作传递数据包的计数索引,选取SRAM可以直接用指令进行锁操作;微引擎读取计数索引单元的值,决定包的起始地址,将第一分片(SOP)拷贝到相应的SDRAM单元;中间分片(MOP)按照正常的处理流程;尾部分片(EOP)拷贝到共享缓冲区;同时在每个包的头部,添加标识位和StrongArm核要用到的附加信息;在协议栈上启动一个收包任务,查询包计数索引,发现有新的交给核的包就计算出对应的地址,到共享缓冲区去取出该包进行处理。该方法能使StrongArm核不通过协议栈直接取到微引擎提供的原始MAC帧,增加包处理的灵活性和效率。

权利要求书

1、  微引擎与StrongArm核的通信方法,其特征在于包括以下步骤:
a、系统初始化时开辟新的SDRAM缓冲区,该缓冲区在VXWORKS所管理的地址空间之外,由VXWORKS协议栈通过绝对地址访问,该缓冲区称为共享缓冲区;将共享缓冲区分块;取SRAM的固定单元用作传递数据包的计数索引,选取SRAM可以直接用指令进行锁操作,保证互斥;
b、微引擎收到包的第一片64字节(SOP)后,经过判断该包需要交给StrongArm核处理后,读取计数索引单元的值,决定该包的起始地址,将该片拷贝到相应的SDRAM单元;
c、中间分片(MOP)按照正常的处理流程,将分片放在包描述符所分配的SDRAM缓冲区中;
d、尾部分片(EOP)进行内存拷贝,将其拷贝到共享缓冲区;同时在每个包的头部,添加标识位和StrongArm核要用到的附加信息;
e、在协议栈上启动一个收包任务,查询包计数索引,发现有新的交给核的包就计算出对应的地址,到共享缓冲区去取出该包进行处理。

2、
  如权利要求1所述的微引擎与StrongArm核的通信方法,其特征在于共享缓冲区每一块2048个字节。

说明书

微引擎与StrongArm核的通信方法
技术领域
本发明涉及一种网络处理器中微引擎与StrongArm核进行数据通信的方法。
背景技术
在过去10年中,网络设备的研制开发和互连网的发展相互促进。早期的网络设备(例如网桥和路由器)主要由通用CPU和专用标准设备组成,功能依赖于软件设计,因此容易扩展,便于适应网络中出现的新协议和新业务。这种设计的缺点是处理能力低,无法适应网络传输技术的发展和满足附加性能的需求。随着网络规模和接口速度的增加,通用CPU对某些网络处理任务尤其是数据接收、交换转发等方面的处理性能难以满足要求,这就促使网络设备厂家开发出了基于内嵌专用集成电路(ASIC)的简单且具有固定功能的设备,例如第二层以太网交换机。这种ASIC设计方案能有效提高网络设备处理性能和速度,却降低了灵活性。后来在ASIC基础上又出现了交换套片构建方案,如第二层以太网“单片交换”设备。这种方案优化了硬件间的连接,提高了指令执行效率,但仍没有克服ASIC缺乏灵活性的固有缺点。当今网络规模和性能迅速增长,新业务接连出现,要求网络设备具有线速和智能的处理能力。网络处理器便是一种新兴、有效的统一解决方案,它适用于各层网络处理,具有ASIC高速处理性能和可编程特性,既能保证系统灵活性,又能完成线速处理数据包所要求的高性能硬件功能。
INTEL公司是网络处理和以太网互连领域的领导者和革新者。IXP1200是公司INTEL网络处理器产品,它具有强大的并行处理能力和良好的应用灵活性可以完成的分组交换处理功能,峰值带宽可达6。26GBPS被业界认为是第一个真正的网络处理器。IXP1200网络处理器具有高性能的并行处理能力以及灵活的通信协议处理能力。IXP1200网络处理器由一个ARM V4结构的StrongArm核和六个独立的32比特可编程的RISC微引擎组成。StrongArm核主要用来进行管理控制一些复杂的任务,像地址学习、建立和维护路由表以及网络管理等操作。每个微引擎在硬件上可以支持四个线程,可用来高速转发数据包。IXP1200提供了IX BUS总线接口,通过IX BUS接口可以和以太网MAC芯片相连。MAC芯片接收来的数据包要送到微引擎,通过微引擎对数据包的处理来决定数据包是转发到其他以太网端口还是送给StrongArm核来处理
目前微引擎与StrongArm核的通信方式主要采用PETH伪驱动的方式进行
PETH驱动用于和IXP1200的微引擎交互来进行收发数据包PETH驱动使得每个IXP1200 IXB U S以太网端口(10/100和吉比特端口)对于VxWorks核来说就像一个实实在在的以太网设备。微引擎接收到数据包进行协议分析处理后,发送到一个专门的端口(18)排队,PETH驱动把队列中的数据包取出,并且将它送到VxWorks核。对于发送数据包,当应用程序或VxWorks核产生数据包后就会被发送到PETH驱动,PETH驱动收到数据包后,就会把这些数据包送到相应微引擎的发送队列中去。这样做的优点是:实现简单,微引擎只需要按照正常的包流程对给核的包进行处理,中间的传递过程由协议栈自动完成,包的传递细节对业务完全透明,这样做的缺点是:缺乏灵活性,无法满足对包进行的针对业务的特殊处理。由于VXWORKS协议栈没有提供源代码,因此无法在TCP层以下取到完整的数据包来进行链路层的修改。同时由于给核的包需要协议栈层层解码,无法灵活的根据其具体情况提高协议栈的处理效率
发明内容
本发明的目的在于提供一种新的微引擎与StrongArm核的通信方法,使用该方法能使StrongArm核不通过协议栈直接取到微引擎提供的原始MAC帧,增加包处理的灵活性和效率。
技术方案:
本发明提出的微引擎与StrongArm核的通信方法,包括以下步骤:
a。系统初始化时开辟新的SDRAM缓冲区,该缓冲区在VXWORKS所管理的地址空间之外,由VXWORKS协议栈通过绝对地址访问;将共享缓冲区分块;取SRAM的固定单元用作传递数据包的计数索引,选取SRAM可以直接用指令进行锁操作,保证互斥;
b。微引擎收到包的第一片64字节(SOP)后,经过判断该包需要交给StrongArm核处理后,读取计数索引单元的值,决定该包的起始地址,将该片拷贝到相应的SDRAM单元;
c中间分片(MOP)按照正常的处理流程,将分片放在包描述符所分配的SDRAM缓冲区中;
d尾部分片(EOP)处理时,此时该包除了第一分片(SOP)已到共享缓冲区其余分片都在包描述符所分配的缓冲区中,进行内存拷贝,将该包其余部分拷贝到共享缓冲区;同时在每个包的头部,添加标识位和StrongArm核要用到的附加信息;
e在协议栈上启动一个收包任务,查询包计数索引,发现有新的交给核的包就计算出对应的地址,到共享缓冲区去取出该包进行处理。如上所述的微引擎与StrongArm核地通信方法,其特征在于共享缓冲区每一块2048个字节,可以保证容纳最长的以太网帧。
有益效果:
本发明的有益效果是:
a。StrongArm核可以直接得到完整的MAC帧;
b。给StrongArm核的包不需要协议栈进行层层解码,直接由我们的收包任务根据业务的需要处理;
C。如果我们的收包任务发现该包需要交给协议栈处理可以通过消息的形式传递给协议栈处理,否则自己处理,增加了灵活性;
d.减少了PETH驱动的加载,降低系统的复杂型,增强系统的稳定性。
附图说明
图1是网络处理器的结构图。
图2是现阶段利用PETH驱动处理的软件结构图。
图3包处理的流程图。
具体的实施方式
数据包需要交给StrongArm核处理时,微引擎和核分别进行如下的处理。
微引擎的处理工作如下:
1.检测接收状态机收到的MPACKET的类型,分成SOP和非SOP的包分别处理。
2.对SOP的包经过对包的业务流程,如果业务流程不需要交给StrongArm核处理,按照正常的业务流程进行存储转发,否则进入我们所设计的微引擎与StrongArm核通信流程。
1>得到用读锁指令获得的索引号,该索引号表示该包放到共享缓冲区的第几块,通过计算得到该包的起始放置地址。使用读锁指令保证了该索引号的正确性;
2>将该SOP包从FIFO中拷贝到该包在共享缓冲区所分配的区块中,在该区块的头部加入部分附加信息以提供给StrongArm核上的收包任务使用,至此SOP包处理完毕。
3.对于非SOP也非EOP的包处理
因为此种MPACKET没有包头信息,因此无法决定该分片的流向,为了实现的简便可以将其按正常的存储转发处理过程放入存储转发缓冲区。
4对于EOP的处理
当微引擎获得的MPACKET为EOP时,就到系统的外部邮箱去获得指定的输出端口号以及处理SOP时获得的索引号,根据这些信息,可以决定该分片是否应交给StrongArm核,如果不是,就进行入队操作进行存储转发,如果是,将其拷贝到共享缓冲区中该包所分配的区块中,然后进行逆向拷贝,将前面存储的中间分片也拷贝到共享缓冲区中。因为包的组织结构完全相同,因此两个缓冲区的相对偏移也是一样的,可以很方便的实现拷贝。
5至此整个包就完全拷贝到共享缓冲区中为该包分配的区块中,然后在该区块头部预留的16个字节的最高位置位表明有包,后面的字节可以填上其他附加信息,视具体情况而定。
StrongArm核的工作如下
1启动一个收包任务,该任务轮询共享缓冲区中每个区块的第一个字节,如果置位表明有包等待处理;
2开始处理该包,将首位清掉,表明开始处理;
3进行字节序倒换,MAC过滤等基本操作后,按业务流程处理该包决定该包的流向;

微引擎与STRONGARM核的通信方法.pdf_第1页
第1页 / 共9页
微引擎与STRONGARM核的通信方法.pdf_第2页
第2页 / 共9页
微引擎与STRONGARM核的通信方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《微引擎与STRONGARM核的通信方法.pdf》由会员分享,可在线阅读,更多相关《微引擎与STRONGARM核的通信方法.pdf(9页珍藏版)》请在专利查询网上搜索。

微引擎与StrongArm核的通信方法,在VXWORKS所管理的地址空间中开辟一个共享缓冲区,将共享缓冲区分成多块;取SRAM的固定单元用作传递数据包的计数索引,选取SRAM可以直接用指令进行锁操作;微引擎读取计数索引单元的值,决定包的起始地址,将第一分片(SOP)拷贝到相应的SDRAM单元;中间分片(MOP)按照正常的处理流程;尾部分片(EOP)拷贝到共享缓冲区;同时在每个包的头部,添加标识位和。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1