嵌入式操作系统中实现多核处理器通信的装置及方法

文档序号:7666706阅读:247来源:国知局
专利名称:嵌入式操作系统中实现多核处理器通信的装置及方法
技术领域
本发明涉及多核处理器在嵌入式揭:作系统中的通信领域,更具体的涉及 一种嵌入式操作系统中实现多核处理器通信的装置及方法。
背景技术
随着电信业务的不断扩大,系统对处理器的要求越来越高,传统的单核 处理器已经逐渐不能适应大规4莫应用的需要,在这种背景下,多核处理器开 始在电信这个大舞台上展露锋芒。相比于传统的单核处理器,对应的多核处 理器的性能更高,而价格更低,因此深受电信厂商的追捧。
嵌入式才喿作系统都有一套协议栈,通过将网口和协议栈绑定,上层应用 就可以通过协议栈与外界自由通信,而无需关注报文格式的问题。嵌入式操 作系统的网络系统如图l所示。
嵌入式搡作系统大多支持SENS (增强型网络堆栈,Scalable Enhanced Networks Stack)协议栈,SENS协议栈提供了可替换的网络设备驱动程序, 而专为这个网络堆栈而编写的网络接口设备驱动程序被称作END (增强的 网络驱动程序,Enhanced Network Driver)。如图2所示,SENS模型包含三 个部分协议驱动程序、MUX(多元接口, multiplexer)和END。 SENS模 型独立于硬件设备接口,它将网络设备驱动程序细化,使开发者可以专注于 END本身的开发。在驱动程序和上层协议(如TCP/IP)之间,SENS模型 提供了协议驱动层。在协议层和驱动程序之间,SENS模型提供了 MUX层。 MUX层直接和END驱动程序交互,其应用程序接口提供了独立于网络协议 的驱动程序接口,可以与多个独立的END单元同时交互。
对于单核处理器来说, 一般一个核只配有一个网口,该网口只负责与外 界通信。而对于多核处理器来说,会遇到下面的问题
(1) 多个核如何与外界通信?
(2) 核与核之间如果想传输协议报文,又该如何通信? 当前的技术中没有很好的解决上述问题,有如下的缺陷
(1) 核间通信独立于核与外界通信方式,对于上层应用来说需要两套 机制完成通信工作,不够灵活。
(2) 核间通讯没有挂接协议栈,因此只能收发报文,无法使用协议栈 提供的功能,导致功能很单一。
综上所述,当前需要一种嵌入式操作系统中多核处理器通信的技术方案。

发明内容
本发明所要解决的技术问题是提供一种嵌入式搡作系统中实现多核处 理器通信的装置及方法,可以进行核间通信,也可以与外界进行通信。
为了解决上述问题,本发明提供了
4寺权利要求核定后补充
与现有技术相比,应用本发明,克服了现有技术的不足,首先无论是对
外通信还是核间通信都挂接协议栈,功能更强大,上层应用开发更加方便; 其次将对外通信和核间通信对于上层透明化,使得应用层无须关注底层的传 输细节。


图1是嵌入式搡作系统的网络系统层结构图; 图2是SENS结构图3是本发明具体实施方式
的嵌入式操作系统中实现多核处理器通信 的装置结构图4是本发明具体实施方式
的嵌入式操作系统中实现多核处理器通信 的方法流^_图5是本发明具体实例中报文发送流程图; 图6是本发明具体实例中报文接收流程图。
具体实施例方式
下面结合附图和具体实施方式
对本发明作进一步说明。
如图3所示, 一种嵌入式操作系统中多核处理器通信装置,包括CPU ^t块、中断模块、内存模块、网络模块,其中
(1) CPU模块
CPU模块,是多核处理器所拥有的各个CPU核,每个CPU核包含两套 装置 一是IP识别单元,用于识别需要发送报文的IP地址,从而选择不同 的发送装置进行发送;二是END单元,用于负责绑定IP地址,以及与协议 栈进行通信,END单元包括对外通信END单元和核间通信END单元,其 中,对外通信END单元用于对外通信;核间通信END单元用于CPU核间 通信;
(2) 中断模块
中断模块包括两部分 一是核间中断单元,用于控制CPU核之间的中 断,即CPU核与CPU核之间可以发送中断请求,每个CPU核可以向指定 目标CPU核发送中断请求,同时目标CPU核也能够通过该核间中断单元识 别中断请求派发地的源CPU核;二是网口中断单元,用于使CPU核能够识 别对应网络才莫块是否收到中断请求;
(3) 内存模块
内存模块包括两部分 一是多CPU核所共享的共享内存单元,用于使 CPU核之间可以互相通信,共享内存单元包括共享内存锁,其中共享内存 锁用于使共享内存的操作不会沖突,保证了安全性和可靠性;二是各个CPU 核所独有的私有内存单元,用于网络模块对外的通信,存储向网络模块发送 或者从网络才莫块接收到的报文;
(4) 网络模块,用于使CPU核可以与外界进行通信。
网络模块指的是CPU核对应的网口 ,每个CPU核都有一个对应的网口 , 通过网口, CPU核可以与外界进行通信。
一种嵌入式操作系统中实现多核处理器通信的装置,包括网络模块、内
存模块、CPU模块、中断模块,其中,
所述内存模块包括多CPU核所共享的共享内存单元和各个CPU核所独
有的私有内存单元,其中,
多CPU4亥所共享的共享内存单元,在核间通信中,用于使CPU核之间 互相通信,存储CPU核间发送的报文;
所述共享内存单元包括共享内存锁,其中共享内存锁用于共享内存的操
作,使共享内存的操作不会冲突,保证了安全性和可靠性。
各个CPU核的私有内存单元,用于所述网络^^莫块对外的通信,存储向 网络模块发送或者从网络模块接收到的报文;
所述私有内存单元,在对外通信中,用于存储向网络模块发送的报文, 通知网络模块将该报文发送。
所述网络模块,用于接收所述私有内存单元发送的报文,同时发送中断 请求,完成CPU核的通信;
所述网络模块是CPU核对应的网口 ,每个CPU核都有一个对应的网口 , 通过网口, CPU核与外界进行通信。
CPU模块是多核处理器所拥有的各个CPU核,每个CPU核包含IP识 别单元、增强的网络驱动程序END单元,其中
所述IP识别单元,用于识别需要发送报文的IP地址,从而选择相应的 END单元进行发送;
所述END单元,用于接收所述IP识别单元的发送信息,绑定IP地址, 以及与协议栈进行通信。
所述END单元包括对外通信END单元和核间通信END单元,其中,
.所述对外通信END单元用于对外通信,接收协议栈发送的报文,并发 送到对应内存模块的私有内存单元;
所述核间通信END单元用于CPU核间通信,对内存模块的共享内存单 元设置共享内存锁,接收协议栈发送的^L文并发送到共享内存单元。
所述中断模块包括核间中断单元、网口中断单元,其中,
所述核间中断单元用于控制CPU核之间的中断,*接收源CPU核的中断 请求,选择当前CPU核中核间通信的END单元,从内存;f莫块的共享内存单 元中取出数据,送交协议栈,并向目标CPU核设置中断,完成CPU核的通 信;即CPU核与CPU核之间可以发送中断请求,每个CPU核可以向指定 目标CPU核发送中断请求,同时目标CPU核也通过该核间中断单元识别中 断请求派发地的源CPU核;
所述网口中断单元,用于接收所述网络模块的中断请求并发送到CPU 核,CPU核从对应内存模块的私有内存单元中取出所述报文,送交协议栈, 并向目标地址设置中断,完成CPU核的通信。
如图4所示, 一种嵌入式操作系统中实现多核处理器通信的方法,包括 以下步骤,
步骤iio、初始化cpu模块,配置内存模块中的私有内存单元;
对每个CPU核配置内存模块中的私有内存单元,包括以下步骤,
步骤IIOI、初始化CPU模块的对外通信END单元,包括指定设备号、 分配MAC (介质访问控制)地址等;
步骤1102、初始化内存模块中的私有内存单元;
步骤1103、对IP地址进行绑定,包括将对外通信END单元绑定到MUX 中,以及将协议栈与对外通信END单元进行绑定,此时选择的IP地址为IPO;
步骤1104、设置中断模块的网口中断单元。
步骤120、配置内存模块的共享内存单元;
配置共享内存单元,包括以下步骤,
步骤1201、初始化CPU模块的核间通信END单元,包括指定设备号、 分配MAC地址等;
步骤1202、初始化共享内存单元,同时设置共享内存锁;
步骤1203、对IP地址进行绑定,包括将核间通信END单元绑定到MUX 中,以及将协议栈与核间通信END单元进行绑定,此时选择的IP地址为IP1;
步骤1204、设置中断模块的核间中断单元。
步骤130、 CPU模块的IP识别单元识别目标的IP地址,根据IP地址选 择对应的END单元;
步骤140、若是对外通信,则将报文放入内存模块的私有内存单元中, 并通过中断模块的网口中断单元向目标地址设置中断,同时发送中断请求, 完成CPU核的才艮文发送;
若是CPU核间通信,则将报文放入内存模块的共享内存单元中,并通 过中断模块的核间中断单元向目标地址设置中断,同时发送中断请求,完成
CPU核的报文发送。
步骤150、若中断模块的网口中断单元收到中断请求,则M应内存模 块的私有内存单元中取出数据,送交协议栈,完成CPU核的报文接收。
若中断模块的核间中断单元收到中断请求,则从内存模块的共享内存单 元中取出数据,送交协议栈,完成CPU核的报文接收。
下面结合具体实例对本发明作进一步说明。
CPU核的报文发送步骤如图5所示。
.步骤210、 CPU模块的IP识别单元根据需要发送报文的目标IP地址选 择对应的END单元;
步骤220、判断是否是核间通讯地址,如果是,则执行步骤250;否则 目标IP地址为非核间通讯地址,执行步骤230;
步骤230、选择对外通信END单元,协议栈将发送的报文放入对应内 存模块的私有内存单元中;
步骤240、通知对应网络模块开始发送私有内存单元中的数据,完成对 外通信中CPU核的报文发送,结束;
步骤250、选择核间通信END单元,对内存模块的共享内存单元设置 共享内存锁;
此时目标IP地址为核间通ifl地址。
步骤260、协议栈将发送的报文》文入共享内存单元中;
步骤270、对内存模块的共享内存单元解除共享内存锁;
步骤280、通过IP识别单元识别出需要通信的目标CPU核;
步骤290、通过中断模块的核间中断单元向目标CPU核设置核间中断, 完成核间通信中CPU核的报文发送,结束。
CPU核的报文接收步骤如图6所示。
.步骤310、检测中断模块,判断是否是网口中断,如果是,则执行步骤 320,否则执行步骤340;
如果网口中断单元收到中断,则说明对应网络模块有报文发送进来。
步骤320、选择当前CPU核中对外通信的END单元;
步骤330、 M应内存模块的私有内存单元中取出数据,并送交协议栈, 完成CPU核的报文接收,结束;
步骤340、检测中断模块,判断是否是核间中断,如果是,则执行步骤 350,否则,结束;
如果核间中断单元收到中断,则说明核间有报文发送进来。
步骤350、选择当前CPU核中核间通信的END单元;
步骤360、对内存模块的共享内存单元设置共享内存锁;
步骤370、从对应内存模块的共享内存单元中取出数据,并送交协议栈, 完成CPU核的报文接收。
步骤380、对内存模块的共享内存单元解除共享内存锁,结束。
本发明提供了多核处理器在嵌入式操作系统中对外通信以及核间通信 的方法,采用了该方法的系统不仅可以与外部的网络i殳备进行通信,还可以 让内部的核间进行通信,且两种通信的区别对于系统的应用层来说完全透 明,无论是核间通信还是对外通信都可以灵活采用嵌入式操作系统协议栈所 提供的支持,4吏得系统的通信功能更加完善和强大,此外因为核间通信采用 的共享内存方式,其效率和可靠性也很高。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范 围应该以权利要求的保护范围为准。
权利要求
1、一种嵌入式操作系统中实现多核处理器通信的装置,其特征在于,包括内存模块、网络模块,其中,所述内存模块,在对外通信中,用于存储向网络模块发送的报文,通知网络模块将该报文发送;所述网络模块,用于接收所述内存模块发送的报文,同时发送中断请求,完成CPU核的通信。
2、 如权利要求l所述的装置,其特征在于,所述内存模块包括多CPU核所共享的共享内存单元和各个CPU核所独 有的私有内存单元,其中,多CPU核所共享的共享内存单元,在核间通信中,用于使CPU核之间 互相通信,存储CPU核间发送的报文;各个CPU核的私有内存单元,用于所述网络模块对外的通信,存储向 网络模块发送或者从网络模块接收到的报文。
3、 如权利要求2所述的装置,其特征在于,所述共享内存单元包括共享内存锁,其中共享内存锁用于共享内存的操作。
4、 如权利要求3所述的装置,其特征在于,所述网络模块是CPU核对应的网口 ,每个CPU核都有一个对应的网口 , 通过网口, CPU核与外界进4亍通信。
5、 如权利要求4所述的装置,其特征在于,还包括CPU模块,CPU模块是多核处理器所拥有的各个CPU核,每个 CPU核包含IP识别单元、增强的网络驱动程序END单元,其中所述IP识别单元,用于识别需要发送报文的IP地址,从而选择相应的 END单元进4于发送;所述END单元,用于接收所述IP识别单元的发送信息,绑定IP地址, 以及与协议栈进行通信。
6、 如权利要求5所述的装置,其特征在于,所述END单元包括对外通信END单元和核间通信END单元,其中,所述对外通信END单元用于对外通信,接收协议栈发送的报文,并发 送到对应内存模块的私有内存单元;所述核间通信END单元用于CPU核间通信,对内存模块的共享内存单 元设置共享内存锁,接收协议栈发送的报文并发送到共享内存单元。
7、 如权利要求6所述的装置,其特征在于,.还包括中断模块,所述中断模块包括核间中断单元、网口中断单元,其中,所述核间中断单元用于控制CPU核之间的中断,接收源CPU核的中断 请求,选择当前CPU核中核间通信END单元,从内存模块的共享内存单元 中取出数据,送交协议栈,并向目标CPU核设置中断,完成CPU核的通信;所述网口中断单元,用于接收所述网络模块的中断请求并发送到CPU 核,CPU核从对应内存模块的私有内存单元中取出报文,送交协议栈,并 向目标地址设置中断,完成CPU核的通信。
8、 一种嵌入式才喿作系统中实现多核处理器通信的方法,所述系统包 括内存模块,包括以下步骤,a、 初始化CPU模块,配置所述内存模块,内存模块用于网络模块对外 的通信,存储向网络模块发送的报文;b、 内存模块接收到所述报文后,若是CPU核的对外通信,则将所述报文放入内存模块的私有内存单元 中,并通过中断模块的网口中断单元向目标地址设置中断,同时发送中断请 求,完成CPU核的报文发送;若是CPU核间通信,则将所述报文放入内存模块的共享内存单元中,并通过中断模块的核间中断单元向目标地址设置中断,同时发送中断请求,完成CPU核的报文发送。
9、如权利要求8所述的方法,其特征在于, 所述步骤a中包括,步骤IIOI、初始化CPU模块的END单元,包括指定设备号、分配介 质访问控制地址;步骤1102、初始化内存模块;步骤1103、对IP地址进行绑定,包括将END单元绑定到多元接口中, 以及将协议栈与END单元进行绑定;步骤1104、设置中断模块;所述中断模块包括核间中断单元、网口中 断单元,所述核间中断单元用于控制CPU核之间的中断;所述网口中断单 元,用于使CPU核识别对应网络模块是否收到中断请求;步骤1105、 CPU模块识别目标的IP地址,根据IP地址选择对应的END 单元。
10、 如权利要求8所述的方法,其特征在于, 还包括,若所述中断才莫块的网口中断单元收到中断请求,则从对应内存模块的私 有内存单元中取出数据,送交协议栈,完成CPU核的报文接收;若所述中断模块的核间中断单元收到中断请求,则从内存模块的共享内 存单元中取出数据,送交协议栈,完成CPU核的报文接收。
全文摘要
本发明公开了一种嵌入式操作系统中实现多核处理器通信的装置及方法,包括内存模块、网络模块,其中,所述内存模块,在对外通信中,用于存储向网络模块发送的报文,通知网络模块将该报文发送;所述网络模块,用于接收所述内存模块发送的报文,同时发送中断请求,完成CPU核的通信。应用本发明,克服了现有技术的不足,首先无论是对外通信还是核间通信都挂接协议栈,功能更强大,上层应用开发更加方便;其次将对外通信和核间通信对于上层透明化,使得应用层无须关注底层的传输细节。
文档编号H04L12/56GK101170511SQ200710187350
公开日2008年4月30日 申请日期2007年11月20日 优先权日2007年11月20日
发明者赵昊翔, 郭树波 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1