空心雨毕业论文网是专业的论文代写网站,提供毕业论文、职称论文、硕士论文、计算机论文等的代写服务,同时还提供各种期刊的论文发表。如果你有需要,请联系我们QQ:5599630;电话:13350726595;E-mail:singlehearted@vip.qq.com
RSS
 
当前位置 :空心雨毕业论文网 >> 工学论文 >> 通信学 >> 正文

网络处理器软件开发模型的研究(2)

来源:网络转载 作者:okxy168.com 时间:2008-01-09 浏览:4 字体:【

IXP2400的软件开发也分为内核程序和微代码两部分。XSCALE内核的开发通常可以使用基于ARM平台嵌入式操作系统开发工具链,如WINDRIVER公司的TORNADO或基于GNU的LINUX工具链等;另一部分是对微引擎的编程,这部分使用INTEL公司提供的DEVELOPER WORKBENCH开发环境,主要使用微代码来进行编程。DEVELOPER WORKBENCH提供了完善的编译、链接、仿真和调试功能。为了方便开发人员开发,消除平面之间通信等一些细节,INTEL提供了它的网络处理器开发模型,称为IXA可移植框架(PORTABILITY FRAMEWORK)如图2所示。INTEL IXA可移植框架中最重要的组成部分就是在微引擎上和XSCALE核上开发的代码模型。基于不同硬件上开发的代码模块分别为微模块(MICROBLOCK)和核心组件(CORE COMPONENT)。每一个模块都代表了一个进行包处理的代码单元。这里实际上引入了构件的思想,开发人员将各种模块以一定的顺序组织在一起,组成一个特定的应用。下面分别对框架中的各个层次进行讨论。(1)微模块数据平面的微引擎在逻辑上分成一个或多个微模块(MICROBLOCK)。每一个微模块都是一个宏或者一个微引擎或由INTEL提供的一些底层库写成的函数。微模块之间彼此独立,这些就提高了代码的可重用性,同时也简化了微引擎手代码的编写。微引擎与INTEL XSCALE核共享一部分内存,大部分网络包的处理都通过微引擎来进行,一些例外的包将传递给INTEL XSCALE核心组件来处理。微模块从功能上一般包括与一些高层协议相关包的处理微模块和与硬件紧密相关的微模块。前者包括IPV4转发、网桥、网络地址转换(NAT)等;后者包括包的接收和发送模块及分组队列管理模块等。(2)核心组件核心组件(CORE COMPONENT)运行在XSCALE核上,实现了相关微模块的配置、管理和例外处理等工作。一个核心组件可能管理着多于一个微模块。具体来讲,核心组件主要完成以下一些功能:配置微模块(通过引入变量的静态配置和控制模块的动态配置);初始化维护一些可能被其它应用程序修改的数据结构;提供了一个例外处理和控制消息处理机制来处理微模块发送过来的包和消息。(3)微引擎数据平面优化库微引擎数据平面优化库(OPTIMIZED MICROENGINE DATA PLANE LIBRARY)包括一些底层的微引擎宏指令和用微引擎的特殊C语言写的函数库,用来编写微模块和一些微引擎的代码。这些为是经过INTEL优化的,非常高效,代码的占用小,同时也是非常底层的。库主要包含三信方面:对处理器硬件单元的操作,比如对微引擎内部的本地内存(LOCAL MEMORY)、临界区(CRITICAL SECTIONS)操作等;协议头的解析函数,如IPV4、IPV6协议等;哈希单元的查找,CRC等。(4)微模块基本设施库微模块基本设施库(MICROBLOCKS INFRASTRUCTURE LIBRARY)提供了访问暂存包描述符的API,DISPATCH LOOP的实现是通过它来完成的。一个DISPATCH LOOP将运行在一个微引擎内部线程之间的多个微模块组成一个MICROBLOCK组。关键的地方是,DISPATCH LOOP提供了一种多个微模块之间高效共享包的描述符、包头信息等重要数据结构的方式,实现了多个微模块间的数据传递。DISPATCH LOOP也提供了向其它DISPATCH LOOP也提供了向其它DISPATCH LOOP和XSCALE核之间发送和接收包的接口。(5)资源管理库资源管理库(RESOURCE MANAGEMENT LIBRARY)是XSCALE核的一个软件组件,它向内核提供了微引擎的API,比如硬件的资源管理接口,大大简化了硬件初始化的任务,配置和资源的共享;微模块与核心组件之间的通信API,开发者屏蔽了微引擎与XSCALE核之间通道的一些细节。(6)核心组件基本设施库核心组件基本设施库(CORE COMPONENTS INFRASTRUCTURELIBRARY)为XSCALE核心组件设计和构造提供了一些底层的API,同时也提供了组件之间传递包和消息的机制。其于核心组件基本设施库的一个核心组件一般都要包含以下函数:1个初始化函数;1个结束函数;1个或多个包的处理名句柄;1个或多个消息处理句柄。(7)操作系统服务层操作系统服务层(OPERATING SYSTEM SERVICES LAYER)对运行在XSCALE核上的代码提供了一个抽象层。开发人员编写的XSCALE核心运行代码包括资源管理库。应该利用这一层,而不是直接去利用操作系统提供的API,从而提高系统的可移植性。OSSL主要提供了以下几类接口:线程管理、同步原语、互斥操作、定时器、内存管理和消息日志。(8)控制平面平台开发工具包控制平面的PDK(PLATFORM DEVELOPMENT KIT)为XSCALE核心组件与运行控制平面的软件之间提供了接口。它所提供的API编程接口现在是符合国际网络处理器论坛(NPF)提出的标准的,各种控制平面的网络协议栈和用它可以很方便的集成进来。3 网络处理器应用实例利用INTEL IXA可移植框架来实现INTEL IXP2400的一个简单路由转发系统。数据分组在IXP2400中的流动过程如下:以太网MAC器件接收数据,放入MSD单元的接收缓存当中,向微引擎发出信号,表示数据已经收到,微引擎将接收缓存中数据传输到SDRAM,微引擎通过对MSF总线单元的访问命令将前几个字节(分组头)传送到传输寄存器中,微引擎对分组的以太网头进行修改,而将数据分组写入发送队列,然后通知MSF单元将数据分组传送给适当的MAC器件。图3所示为典型路由器应用系统中的数据流。在图3所示的处理转发结构中,每一个模块代表一个微模块。发送和接收模块和MSF硬件紧密相关。处理器芯片的MSF总线接口单元中有一对BUFFER,即输入BUFFER和输出BUFFER,分别用作接收和发送的缓冲区。开发者通过用这些相应的硬件寄存器,硬件设备可自动进行相应的转发处理。

阅读更多内容<<上一页 · 1 · 2
4
最新评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
      本站是由一个众多学科的博士群体组建而成,主要创办者为成都各重点高校博士。本论文网内理工科写手均为博士,文科类写手大部分为博士,且领域涵盖广泛,写作势力强大,若有部分专业,没有相关的写手,我们给你寻找合适的写手! 依托强大的人力资源,我们本着诚心交流的宗旨,专门为您排解写作上的难题。从在科研及实践工作中稳扎稳打的经历,我们具备了研究问题,解决问题的能力。论文写作和论文发表,作为教育体系的一个重要环节,我们确实有能力给您解决好问题,正所谓,真金不怕火来炼,请相信我们的势力,没有把握的事,我们不会做!
      本站受多家期刊委托,其中包括国家级中文核心期刊目录正刊,CSSCI目录正刊,增刊,省级以上公开出版的优秀期刊正刊,本站负责论文推荐发表,加急1个月即可发表。本站负责论文发表,不发表承诺退款!!目前主要负责法律,管理,经济,理工,农学,行政,医学,艺术,英语等类论文发表论文代写。详细期刊目录见本站相关内容。
赞助商链接