针对包转发引擎的微内核制造技术

技术编号:2868254 阅读:258 留言:0更新日期:2012-04-11 18:40
一种基于MIPS64的双CPU微内核,对BCM1250三种地址空间进行映射,对虚拟地址空间进行管理,其特征在于:支持1GB主存,内存管理针对包转发应用,将虚拟地址空间划分为代码段、数据段、栈空间、堆空间和包空间,并且在双CPU之间共享这些内存空间。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术属于计算机网络通信领域,具体涉及一种在IP交换机中为BCM1250实现包转发功能提供的系统支撑。
技术介绍
BCM1250是Broadcom公司推出的一款通信处理器芯片,该芯片集成了两个高性能的MIPS64 CPU,BCM1250在IP交换机系统中实现包转发功能,包括Ipv4转发、MPLS转发、L2VPN、L3VPN、ACL、QOS、组播、接入控制、NAT等功能,并且支持多种接口类型。由于BCM1250有两个CPU,所以系统的功能分布在这两个CPU上,如图1所示,ACL、接口管理在CPU0上实现,Ipv4转发、MPLS转发、L2VPN、L3VPN、组播、接入控制由CPU1完成,NAT和QOS由两个CPU各完成一部分。在实现系统的功能时,需要对转发进行控制。BCM1250上并不实现IP协议栈,而由交换机系统的主控CPU完成,因此BCM1250必须处理从主控CPU下达的转发控制命令,更新系统中的转发表项,从而达到控制转发过程的目的;同时,BCM1250自身也负担一部分转发控制的功能,比如ARP协议。在BCM1250中完成这项功能的模块称为转发控制模块,由CPU0来完成。包转发流程一般模型是查表,根据命中的表项中的指定动作做相应操作,比如将包丢弃等。包转发控制是通过带外通信信道将相应的表项添入表中,比如将一条OSPF路由加入路由表中。可见,BCM1250所要实现的功能模型是相对简单的。参考图2,BCM1250软件系统结构包括转发模块和转发支撑平台。转发模块包括转发控制模块和转发流程模块。转发模块实现整个系统的功能,转发支撑平台是实现这些系统功能的系统支撑。目前,基于BCM1250的系统支撑都是使用操作系统,比如vxWorks或嵌入式linux。但是,这些OS都是通用的操作系统,而不是针对某一种特定的应用而设计的,虽然OS本身的可靠性很高,但是,OS为了满足各种用户不同的应用需求,系统结构复杂,特别是在以下这些方面内存管理和任务调度,以及对多CPU的支持。当用户使用时,系统的时间和空间开销都很大,从而影响了系统性能。由于OS本身的复杂性和提供的接口的复杂性,都会影响整个系统的可靠性;同时,操作系统复杂的接口也会影响系统的开发效率。作为包转发这样的特殊应用的系统支撑,需满足性能、可靠性、可调谐性等需求,因此,通用的操作系统并不适合于BCM1250的包转发功能。
技术实现思路
本专利技术克服上述BCM1250的系统支撑的不足,提供一种针对包转发引擎的微内核,该微内核在满足功能开发的需求同时,可保持系统的简洁和高效。本专利技术的
技术实现思路
一种基于MIPS64的双CPU微内核,对BCM1250三种地址空间进行映射,对虚拟地址空间进行管理,支持1GB主存,内存管理针对包转发应用,将虚拟地址空间划分为代码段、数据段、栈空间、堆空间和包空间,并且在双CPU之间共享这些内存空间。任务管理将两个CPU分别对应一个任务,每个任务包括多个线程。堆空间包括K-heap和U-heap,两个CPU共享U-heap空间控制权,U-heap空间采用slab堆管理器和静态页表管理,CPU0独自拥有K-heap空间控制权,K-heap和U-heap支持cache-line大小对齐。限制数据段不超过64KB。定义全局数组和结构型全局变量时,必须在K-Heap空间中分配,其它全局变量存放在数据段空间中。双CPU运行在各自的栈空间上,每一个任务的所有线程共用一个栈空间。任务间通信机制包括共享内存和消息队列,任务间提供同步锁、互斥锁和读写锁。线程间通信机制包括共享内存和消息队列,基于时间片线程调度实行主动退出和固定点切换。对于定时发生的事件,提供一定时器,定时器的时间粒度为1ms。本专利技术的技术效果本专利技术微内核的系统最关键部件内存管理和任务调度完全是为了满足包转发应用而设计,因此,系统简洁而高效。以简洁的体系结构,代码的完全可见性,使用户可以全面高效地分析系统的各个部件,从而提供了极高的可调谐性。在使用微内核进行转发功能的开发过程中,相对于OS,微内核体现了很大的优势。首先,开发周期短。由于微内核接口简单,任务调度简单,从而用户可以更快更好地应用微内核进行功能开发;其二,系统稳定性高。由于系统结构简单,使系统稳定性的获得更加容易;其三,在性能上,对于相同的转发功能,由于微内核更少的系统开销,所以获得了更高的转发性能。如下表所示,采用相同的转发代码,在不同的转发平台上的实际应用的测试结果 (ppspackets per second(每秒处理包数))附图说明图1是本专利技术BCM1250转发功能分布示意图;图2是本专利技术BCM1250软件结构示意图;图3是本专利技术微内核系统结构的示意图;图4是本专利技术虚拟地址空间的示意图;图5是本专利技术BCM1250系统运行结构示意图;图6是本专利技术微内核线程调度的流程图。具体实施例方式参考图3,微内核包括初试化、内存管理、中断管理、任务管理、设备管理、文件系统和调试模块。微内核的初始化包括系统引导,内存初始化,双CPU初始化,中断初始化,设备管理初始化和任务初始化。微内核的内存管理BCM1250的CPU(SB1)是一个MIPS64的CPU,支持64位寻址。在BCM1250中需要对地址进行三级映射虚拟地址空间->物理地址空间->主存地址空间。在系统中,支持1GB主存,微内核对BCM1250三种地址空间映射如下表所示 微内核的用户使用的地址空间是虚拟地址空间。如上表所示,映射方式的结果虚拟地址空间并非连续的,但是,这种映射方式,避开了MIPS内存操作的TLB缺页中断处理,从而提高了系统的效率。这种不连续的虚拟地址空间也不会对虚拟地址空间进一步管理带来不便。微内核对虚拟地址空间进行管理,虚拟地址空间划分为代码段、数据段、栈空间、堆空间和包空间,并且在双CPU之间共享这些内存空间。如图4所示,代码段,数据段,K-heap堆空间和栈空间占256MB空间(地址范围0x8000 0000~0x9000 0000);U-heap堆空间为512MB(地址范围0xa800 0000 8000 0000~0xa800 0000 a000 0000);包空间为256MB(地址范围0xa800 0000 c000 0000~0xa800 0000 d000 0000)。在分析MIPS64内存映射方式,应用的需求的基础上,设计了平面式内存管理。即,任何一个任务或线程对1GB的虚拟地址空间都是可见的,适合BCM1250硬件的SMP(对称多处理器系统)架构。MIPS体系结构中,L2 cache对性能的影响非常大,在BCM1250中,当数据从内存中获得时,需要100个以上的CPU时钟周期的时延;当数据从L2cache中获得,只需20个CPU时钟周期的时延。因此,在整个系统设计中,特别是内存管理模块充分考虑高效利用L2 cache。利用MIPS体系中的pipeline,对关键数据通过预取指令放入L2 cache中,从而提高系统性能。在整个系统的数据结构设计上,以一个cache line的大小作为设计的基础,在一个cache line中存放更多有意义的数据。对于全局静态变量,将采用从堆空间中分配,可以更好地控制变量起始地址的字节对齐(一个本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:黄明飞
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1