CN103870318A - 非对称式处理的多核心系统与其网络设备 - Google Patents
非对称式处理的多核心系统与其网络设备 Download PDFInfo
- Publication number
- CN103870318A CN103870318A CN201210538742.0A CN201210538742A CN103870318A CN 103870318 A CN103870318 A CN 103870318A CN 201210538742 A CN201210538742 A CN 201210538742A CN 103870318 A CN103870318 A CN 103870318A
- Authority
- CN
- China
- Prior art keywords
- module
- bag
- core
- management module
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明的实施例提供一种非对称式处理的多核心系统,其可用在网络设备中。此非对称式处理的多核心系统内的次要处理核心会辅助处理其主要处理核心的工作,进而让整个网络设备的整体效能提升,且使其运作更为流畅。不同于传统的处理方法,此非对称式处理的多核心系统不用大量地搬移或复制经处理后的包的数据,而能节省大量的存储器频宽,以及减少功率消耗。
Description
技术领域
本发明是有关于一种非对称式处理的多核心系统,且特别是有关于一种不需要大量复制或搬移存储器所储存的数据的非对称式处理的多核心系统与具有此非对称式处理的多核心系统的网络设备。
背景技术
随着制程技术与芯片设计技术的发达,目前有很多的网络设备都会具有多个处理核心,以快速地处理来所要传送或接收的多个包。一般来说,最常见的就是具有不对称处理的双核心系统的网络设备。所谓的不对称处理是指两个或多个处理核心的处理能力不同,其中一个处理核心可能具有较快的处理速度与较大的功率消耗,另一个处理核心可能具有较慢的处理速度与较低的功率消耗。
在具有不对称处理的双核心系统的网络设备下,不同的处理核心会执行各自的操作系统,因此要让两个处理核心一起协同运作,并达到最大的网络效能,就必须要规划完善的同步技术,让两个处理核心可以各司其职。
请参照图1,图1是传统不对称处理的双核心系统的方块图。不对称处理的双核心系统10包括了主要处理核心10_Core0、次要处理核心10_Core1、暂存器10_Reg、存储器10_Mem、第一外围装置10_Ph0与第二外围装置10_Ph1。第一外围装置10_Ph0与第二外围装置10_Ph1在此例子中皆为以太网媒体接取控制器(包括网络层、媒体接取层与实体层),且皆与外部交换构件10_ExSw连接。因此,在这个例子当中,不对称处理的双核心系统10与外部交换构件10_ExSw可以形成一个网络设备。除此之外,第一外围装置10_Ph0与第二外围装置10_Ph1也有可能是其他类型的外围,例如通用串行总线(USB)外围装置。
主要处理核心10_Core0与次要处理核心10_Core1共用暂存器10_Reg与存储器10_Mem,且存储器10_Mem被切分为三个存储区域10_Mem0、10_MemS与10_Mem1,其中存储区域10_MemS为主要处理核心10_Core0与次要处理核心10_Core1所共用,存储区域10_Mem0与10_Mem1则分别为主要处理核心10_Core0与次要处理核心10_Core1所专用。
主要处理核心10_Core0与次要处理核心10_Core1的处理能力不同,且分别执行不同的操作系统。次要处理核心10_Core1会分担主要处理核心10_Core0的网络处理工作,以达到最大的网络效能。
一般操作系统都会具有两个位置空间,其中一个为用户空间,另一个为核心空间。用户空间用以给使用者存取,使用者程序可以在此用户空间内毫无顾虑地执行。核心空间用以让操作系统执行使用与存取,以提供使用者程序的执行环境。主要处理核心10_Core0的操作系统例如是Windows操作系统,此Windows操作系统例如具有核心空间10_KS0与用户空间10_US0。同样地,次要处理核心10_Core1的操作系统例如是Linux操作系统,此Linux操作系统例如具有核心空间10_KS1与用户空间10_US1。
传统上,主要处理核心10_Core0与次要处理核心10_Core1一起协同运作的处理方法约有两种类型,以下将分别通过图2A与2B来分别说明。
请同时参照图1与图2A,图2A是双核心系统的协同运作的传统处理方法的流程图。首先,在步骤S20,外部交换构件10_ExSw将接收到的包通过第一外围装置10_Ph0传送给主要处理核心10_Core0进行第一处理。接着,在步骤S21,主要处理核心10_Core0对包进行第一处理。之后,在步骤S22,主要处理核心10_Core0通过第一外围装置10_Ph0、外部交换构件10_ExSw与第二外围装置10_Ph1将包传送给次要处理核心10_Core1进行第二处理。
之后,在步骤S23,次要处理核心10_Core1对包进行第二处理。然后,在步骤S24,次要处理核心10_Core1将包通过第二外围装置10_Ph1、外部交换构件10_ExSw与第一外围装置10_Ph0传送给主要处理核心10_Core0进行最后处理。最后,在步骤S25,主要处理核心10_Core0对包进行最后处理。
举例来说,主要处理核心10_Core0可以负责决定包路由,而次要处理核心10_Core1可以负责包数量统计或包类型分析。主要处理核心10_Core0收到包后,可以先初步地对包的目的地址进行分析(如同上述的第一处理),次要处理核心10_Core1可以统计包数量或分析包类型,最后,主要处理核心10_Core0便可以根据包的目的地址与包类型决定路由(如同上述的最后处理)。
请同时参照图1与图2B,图2B是双核心系统的协同运作的另一传统处理方法的流程图。首先,在步骤S30,外部交换构件10_ExSw将接收到的包通过第一外围装置10_Ph0传送给主要处理核心10_Core0进行第一处理。接着,在步骤S31,主要处理核心10_Core0对包进行第一处理,并将包储存在存储区域10_MemS中。之后,在步骤S32,主要处理核心10_Core0通过沟通接口(在图1未示出)告知次要处理核心10_Core1对包进行第二处理。
然后,在步骤S33,次要处理核心10_Core1自存储区域10_MemS读取包。之后,在步骤S34,次要处理核心10_Core1对包进行第二处理,并将包储存在存储区域10_MemS中。接着,在步骤S35,次要处理核心10_Core1通过沟通接口告知主要处理核心10_Core0对包进行最后处理。然后,在步骤S36,主要处理核心10_Core0自存储区域10_MemS读取包。最后,在步骤S37,主要处理核心10_Core0对包进行最后处理。
举例来说,主要处理核心10_Core0可以负责决定包路由,而次要处理核心10_Core1可以负责包数量统计或包类型分析。主要处理核心10_Core0收到包后,可以先初步地对包的目的地址进行分析(如同上述的第一处理),次要处理核心10_Core1可以统计包数量或分析包类型(如同上述的第二处理),最后,主要处理核心10_Core0便可以根据包的目的地址与包类型决定路由(如同上述的最后处理)。
一般来说,大部分网际网络应用的程序都执行在用户空间内,因此当主要处理核心10_Core0每次要对包进行第一处理或最后处理时,都必需把储存在核心空间10_KS0内的包通过存储器复制的方式搬移或复制至用户空间10_US0内。同样地,当次要处理核心10_Core1每次要对包进行第二处理时,也都必需把储存在核心空间10_KS1内的包通过存储器复制的方式搬移或复制至用户空间10_US1内。
对于图2A的处理方法而言,储存在用户空间10_US0内的包的存储区域是在主要处理核心10_Core0所专用的存储区域10_Mem0中,而当次要处理核心10_Core1要处理包时,储存在存储区域10_Mem0内的包会先被复制或搬移至核心空间10_KS1后,才会被复制或搬移至用户空间10_US1内,以使得次要处理核心10_Core1能够对包进行第二处理。
对于图2B的处理方法而言,储存在用户空间10_US0内的包的存储区域是在共用的存储区域10_MemS中,而当次要处理核心10_Core1要处理包时,存储区域10_MemS内的包会先被复制或搬移至核心空间10_KS1后,才会被复制或搬移至用户空间10_US1内,以使得次要处理核心10_Core1能够对包进行第二处理。
图2A的处理方法需要通过第一外围装置10_Ph0、外部交换构件10_ExSw与第二外围装置10_Ph1转送包,其效率与效能显然地会比图2B的处理方法来得差。虽然,图2B的处理方法的效率较图2A的处理方法来得佳,但无论如何,图2A与图2B的处理方法都需要大量地搬移或复制包的数据,而浪费了存储器10_Mem的频宽。除此之外,不断地通过主要或次要处理核心10_Core0、10_Core1来搬移存储器10_Mem的数据也会造成较多的功率消耗。
发明内容
本发明的实施例提供一种非对称式处理的多核心系统,所述非对称式处理的多核心系统包括主要处理核心、次要处理核心、暂存器、存储器、第一外围装置与第二外围装置。主要处理核心具有第一操作系统,所述第一操作系统包括第一核心空间与第一用户空间,所述第一核心空间包括以太网驱动器模块与接收端阵列管理模块,所述第一用户空间包括第一控制管理模块。次要处理核心具有第二操作系统,所述第二操作系统包括第二核心空间与第二用户空间,所述第二用户空间包括第二控制管理模块。暂存器为所述主要处理核心与所述次要处理核心所共用。存储器具有所述主要处理核心所能使用的第一存储区域。第一外围装置连接在所述主要处理核心与外部交换构件。第二外围装置连接在所述次要处理核心与所述外部交换构件。所述以太网驱动器模块透通过所述第一外围装置接收来自于所述外部交换构件的包,所述包会被所述接收端阵列管理模块储存在所述第一存储区域;其中所述第二控制管理模块根据一存储器绝对位置直接读取所述第一存储区域所储存的包的数据,并加以处理,以产生处理结果,所述第二控制管理模块会将所述处理结果告知所述接收端阵列管理模块。所述接收端阵列管理模块再根据所述处理结果,对所述包进行处理。
本发明的实施例提供一种网络设备,其包括非对称式处理的多核心系统与外部交换构件。所述非对称式处理的多核心系统包括主要处理核心、次要处理核心、暂存器、存储器、第一外围装置与第二外围装置。主要处理核心具有第一操作系统,所述第一操作系统包括第一核心空间与第一用户空间,所述第一核心空间包括以太网驱动器模块与接收端阵列管理模块,所述第一用户空间包括第一控制管理模块。次要处理核心具有第二操作系统,所述第二操作系统包括第二核心空间与第二用户空间,所述第二用户空间包括第二控制管理模块。暂存器为所述主要处理核心与所述次要处理核心所共用。存储器具有所述主要处理核心所能使用的第一存储区域。第一外围装置连接在所述主要处理核心与外部交换构件。第二外围装置连接在所述次要处理核心与所述外部交换构件。所述以太网驱动器模块通过所述第一外围装置接收来自于所述外部交换构件的包,所述包会被所述接收端阵列管理模块储存在所述第一存储区域;其中所述第二控制管理模块根据一存储器绝对位置直接读取所述第一存储区域所储存的包的数据,并加以处理,以产生处理结果,所述第二控制管理模块会将所述处理结果告知所述接收端阵列管理模块。所述接收端阵列管理模块再根据所述处理结果,对所述包进行处理。
基于上述,本发明的实施例提供一种非对称式处理的多核心系统,其可用在网络设备中。此非对称式处理的多核心系统内的次要处理核心会辅助处理其主要处理核心的工作,进而让整个网络设备的整体效能提升,且使其运作更为流畅。不同于传统的处理方法,此非对称式处理的多核心系统不用大量地搬移或复制经处理后的包的数据,而能节省大量的存储器频宽,以及减少功率消耗。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是传统不对称处理的双核心系统的方块图;
图2A是双核心系统的协同运作的传统处理方法的流程图;
图2B是双核心系统的协同运作的另一传统处理方法的流程图;
图3是本发明的实施例所提供的非对称式处理的双核心系统的方块图;
图4是本发明的另一实施例所提供的非对称式处理的双核心系统的方块图;
图5是本发明的实施例所提供的双核心系统的协同运作的处理方法的流程图;
图6A是根据本发明的实施例所提供的主要处理核心与次要处理核心的沟通与处理包的示意图;
图6B是根据本发明的实施例所提供的存储器储存阵列方式的示意图;
图7是本发明的实施例所提供的非对称式处理的多核心系统的方块图;
图8是本发明的另一实施例所提供的非对称式处理的多核心系统的方块图。
附图标记说明:
10、30、50:非对称式处理的双核心系统;
70、80:非对称式处理的多核心系统;
10_Core0、30_Core0、30_Core3:主要处理核心;
10_Core1、30_Core1、30_Core2:次要处理核心;
10_Reg、30_Reg:暂存器;
10_Mem、30_Mem、50_Mem、70_Mem、80_Mem:存储器;
10_Mem0、10_Mem1、10_MemS、30_Mem0、30_Mem1、30_MemS、50_Mem0、50_Mem1、70_Mem0~70_Mem2、70_MemS、80_Mem0~80_Mem3、80_MemS:存储区域;
10_Ph0、30_Ph0:第一外围装置;
10_Ph1、30_Ph1:第二外围装置;
30_Ph2:第三外围装置;
30_Ph3:第四外围装置;
10_ExSw、30_ExSw:外部交换构件;
S20~S25、S30~S37、S40~S46:步骤流程;
30_US0、30_US1:用户空间;
30_KS0、30_KS1:核心空间;
60_CM0、60_CM1:控制管理模块;
60_App:应用程序模块;
60_Noti:指示管理模块;
60_QM:阵列管理模块;
60_OS_Rx:操作系统接收功能模块;
60_PacFree:包释放模块;
60_IPC0、60_IPC1:沟通指示代理模块;
60_RxQM:接收端阵列管理模块;
60_EDri:以太网驱动器模块。
具体实施方式
请参照图3,图3是本发明的实施例所提供的非对称式处理的双核心系统的方块图。不对称处理的双核心系统30包括了主要处理核心30_Core0、次要处理核心30_Core1、暂存器30_Reg、存储器30_Mem、第一外围装置30_Ph0与第二外围装置30_Ph1。第一外围装置30_Ph0与第二外围装置30_Ph1在此例子中皆为以太网媒体接取控制器(包括网络层、媒体接取层与实体层),且皆与外部交换构件30_ExSw连接。因此,在这个例子当中,不对称处理的双核心系统30与外部交换构件30_ExSw可以形成一个网络设备。除此之外,第一外围装置30_Ph0与第二外围装置30_Ph1也有可能是其他类型的外围,例如通用串行总线(USB)外围装置。
图3的双核心系统30与图1的双核心系统10的差异仅在于,图3次要处理核心30_Core1具有对存储器30_Mem直接存取的功能,亦即一种直接存储器映射技术被应用在次要处理核心30_Core1中,然而,图1的次要处理核心10_Core1则无此功能,其依然必须通过存储器复制的方法将包的数据搬移或复制至用户空间10_US1后,次要处理核心10_Core1才能对储存在用户空间10_US1内的包进行第二处理。
接着,请参照图4,图4是本发明的另一实施例所提供的非对称式处理的双核心系统的方块图。图4与图3不同处在于,图3的双核心系统30的存储器30_Mem具有共用的存储区域30_MemS,然而,图4的双核心系统50的存储器50_Mem却不具有共用的存储区域。次要处理核心30_Core1一样具有直接存取存储器50_Mem的功能,只是,在这个实施例中,次要处理核心30_Core1是根据存储器绝对位置存取存储区域50_Mem0内经第一处理后的包的数据。在不考虑可能会影响到主要处理核心30_Core0的操作系统内核心空间30_KS0的数据的情况下,图4的双核心系统50的效能表现会近似于图3的双核心系统的表现。
请参照图5,图5是本发明的实施例所提供的双核心系统的协同运作的处理方法的流程图。首先,在步骤S40,外部交换构件30_ExSw将接收到的包通过第一外围装置30_Ph0传送给主要处理核心30_Core0进行第一处理。此时,主要处理核心30_Core0的操作系统的核心空间30_KS0内的包的数据会被送至其用户空间30_US0,且更进一步地说,包的数据可能会储存在图3的存储区域30_MemS(或图4的存储区域50_Mem0)。
接着,在步骤S41,主要处理核心30_Core0对包进行第一处理。之后在步骤S42,处理核心30_Core0判断是否可以让次要处理核心30_Core1对包进行第二处理,若可以,则主要处理核心30_Core0通过沟通接口(在图3未示出)告知次要处理核心30_Core1对包进行第二处理。
在步骤S43中,次要处理核心30_Core1自存储区域30_MemS(或图4的存储区域50_Mem0)直接读取包的数据,并对包的数据进行第二处理。更详细地说,存储区域30_MemS内的包的数据并不会被复制或搬移至次要处理核心30_Core1的操作系统的核心空间30_KS1,且核心空间30_KS1并没有包的数据可以被复制或搬移至次要处理核心30_Core1的操作系统的用户空间30_US1。相反地,次要处理核心30_Core1根据存储器绝对位置来读取存储区域30_MemS(或图4的存储区域50_Mem0)内的包的数据,并且将存储区域30_MemS(或图4的存储区域50_Mem0)内用来储存包的数据的储存空间当作用户空间30_US1内的储存空间。换言之,次要处理核心30_Core1可以直接读取存储器30_Mem(或图4的存储器50_Mem)所储存的所有数据。
接着,在步骤S44,次要处理核心30_Core1对经第一处理后的包进行第二处理,并通过沟通接口告知主要处理核心对包30_Core0进行最后处理。之后,在步骤S45,主要处理核心30_Core0自存储区域30_MemS读取经第一处理后的包的数据。更详细地说,存储区域30_MemS(或图4的存储区域50_Mem0)经第一处理后的包的数据会先被复制或搬移至核心空间30_KS0后,才会被复制或搬移至用户空间30_US0。最后,在步骤S46中,主要处理核心30_Core0对经第一处理后的包进行最后处理。
另外,要说明的是,在其他实施例中,主要处理核心30_Core0在步骤S41中,可能不会对包进行第一处理,且主要处理核心30_Core0在步骤S41中,也可能不会对包进行最后处理。换言的,在其他实施例中,主要处理核心30_Core0可能仅负责传送包给外部交换构件30_ExSw与接收来自于外部交换构件30_ExSw的包,而次要处理核心30_Core1用来负责对包进行处理。
请参照图6A与图6B,图6A是根据本发明的实施例所提供的主要处理核心与次要处理核心的沟通与处理包的示意图,图6B是根据本发明的实施例所提供的存储器储存阵列方式的示意图。主要处理核心30_Core0的操作系统例如是Windows操作系统,此Windows操作系统具有用户空间30_US0与核心空间30_KS0。次要处理核心30_Core1的操作系统例如是Linux操作系统,此Linux操作系统具有用户空间30_US1与核心空间30_KS1。双核心系统30(或图4的双核心系统40)包括控制管理模块60_CM0、60_CM1、操作系统接收功能模块60_OS_Rx、包释放模块60_PacFree、沟通指示代理模块60_IPC0、接收端阵列管理模块60_RxQM与以太网驱动器模块60_EDri与沟通指示代理模块60_IPC1等基于软件程序码所实现的模块。
控制管理模块60_CM0为用户空间30_US0所执行的程序,且操作系统接收功能模块60_OS_Rx、包释放模块60_PacFree、沟通指示代理模块60_IPC0、接收端阵列管理模块60_RxQM与以太网驱动器模块60_EDri皆为核心空间30_KS0所执行的程序。控制管理模块60_CM1的应用程序模块60_App、指示(notification)管理模块60_Noti与阵列管理模块60_QM皆为用户空间30_US1所执行的程序,且沟通指示代理模块60_IPC1为核心空间30_KS1所执行的程序。
图6A的例子适用于图3或图4的非对称式处理的双核心系统,因此图6A的存储器可以是存储器30_Mem或50_Mem。在图6A中,双核心系统30(或图4的双核心系统50)还包括了位于接收端阵列管理模块60_RxQM与以太网驱动器模块60_EDri之间的包过滤模块60_Filter。然而,此处的包过滤模块60_Filter并非为必要的模块。
首先,以太网驱动器模块60_EDri会通过第一外围装置30_Ph0自外部交换构件30_ExSw接收来自于网络的包。包过滤模块60_Filter会分析接收的包,以决定要将包送至接收端阵列管理模块60_RxQM,或者送至操作系统接收功能模块60_OS_Rx。若包并不需要次要处理单元30_Core1进行处理,则包会被包过滤模块60_Filter送至操作系统接收功能模块60_OS_Rx。若包需要次要处理单元30_Core1进行处理,则包会被包过滤模块60_Filter送至接收端阵列管理模块60_RxQM。
接收端阵列管理模块60_RxQM用以管理存储器30_Mem或50_Mem内储存所储存的包的数据,将所收到的包,以先进先出(First-In-First-Out,FIFO)的方式存放在包阵列中,并更新阵列标头(QueueHead),且用来储存包的数据的存储区域实际上是位于主要处理核心30_Core0的核心空间30_KS0。此处用来储存包的数据的存储区域可能是存储器30_Mem的存储区域30_MemS或存储器50_Mem的存储区域50_Mem0。
控制管理模块60_CM1的阵列管理模块60_QM使用轮询(Polling)的方式读取所述阵列,一旦发现阵列标头变动,便知道接收端阵列管理模块60_RxQM有新的包需要处理,阵列管理模块60_QM便使用存储器绝对位置对存储器30_Mem或50_Mem来读取包,以让次要处理核心30_Core1对包进行处理。换句话说,阵列管理模块60_QM并不会对包的数据在存储器30_Mem或50_Mem内进行复制与搬移,阵列管理模块60_QM可以直接读取存储器30_Mem或50_Mem内的所有数据,而不会有大量数据在存储器30_Mem或50_Mem内复制与搬移的情况。
阵列管理模块60_QM在读取完成后,会将处理结果写在阵列的控制字段中,并更新阵列标尾(QueueTail)。接收端阵列管理模块60_RxQM可以使用轮询的方式来检查阵列标尾。当接收端阵列管理模块60_RxQM发现阵列标尾的值变动,便会了解阵列管理模块60_QM有处理完包,且接收端阵列管理模块60_RxQM可以将处理结果从所述阵列的控制字段取出。接着,接收端阵列管理模块60_RxQM会根据处理结果,将包给操作系统接收功能模块60_OS_Rx或包释放模块60_PacFree。本发明可以利用轮询的方式让主要处理核心30_Core0与次要处理核心30_Core1得知何时处理包与读取存储器30_Mem或50_Mem的数据。
包释放模块60_PacFree可以根据发出丢弃信息指示第一外围装置30_Ph1的缓冲存储器将此包的数据丢弃。操作系统接收功能模块60_OS_Rx根据发出通过信息可以对包进行其他的处理,以让主要处理核心30_Core0呼叫其他流程,以继续下一阶段的处理或将处理完后的包发送出去。
一般来说,在有使用轮询且配合图6B的储存阵列方式下,图6A的沟通指示代理模块60_IPC0、60_IPC1并非必要的模块。上述图6A与图6B为使用中断通知来达成及时沟通主要处理核心30_Core0以及次要处理核心30_Core1,以弥补轮询的不足的实施例。因包需要次要处理单元30_Core1进行处理,因此接收端阵列管理模块60_RxQM会送出发出通知信息给沟通指示代理模块60_IPC0,以指示沟通指示代理模块60_IPC0协助进行主要处理核心30_Core0与次要处理核心的30_Core1间的沟通。
沟通指示代理模块60_IPC0会根据发出报告信息发送中断信号,例如为门铃警示(Doorbell)信号,给次要处理核心30_Core1的沟通指示代理模块60_IPC1。沟通指示代理模块60_IPC1会根据中断信号产生输出输入控制信号给控制管理模块60_CM1的指示管理模块60_Noti。
指示管理模块60_Noti在收到来自沟通指示代理模块60_IPC1所传送的输出输入控制信号后,会指示控制管理模块60_CM1开启阵列管理模块60_QM,以让阵列管理模块60_QM根据存储器绝对位置对存储器30_Mem或50_Mem来读取包,并接着让次要处理核心30_Core1对包进行处理。
当次要处理核心30_Core1对包进行处理后,包的结果会存放在阵列的控制字段中,并更新阵列标尾,指示管理模块60_Noti会依据应用程序模块60_App的指示向沟通指示代理模块60_IPC1发出输出输入控制信号。沟通指示代理模块60_IPC1根据输出输入控制信号产生中断信号给沟通指示代理模块60_IPC0。沟通指示代理模块60_IPC0根据中断信号产生发出报告信息给接收端阵列管理模块60_RxQM,以启动接收端阵列管理模块60_RxQM根据所述处理结果,对所述包进行处理。换言之,通过接收沟通指示代理模块60_IPC0的发出报告信息,接收端阵列管理模块60_RxQM可以即时地检查阵列标尾,而解决使用轮询方式所产生的等待时间的问题。
上述将存储器直接映射技术应用在次要处理核心的概念并非限定于非对称式处理的双核心系统,换言之,上述的处理方法亦可以应用在对称式处理的多核心系统。
请参照图7,图7是本发明的实施例所提供的非对称式处理的多核心系统的方块图。与图3的双核心系统相比,图7的多核心系统70还多出了次要处理核心30_Core2与第三外围装置30_Ph2。在图7中,存储器70_Mem被切分为四个存储区域70_Mem0~70_Mem2与70_MemS,其中存储区域70_Mem0为主要处理核心30_Core0所专用,存储区域70_Mem1与70_Mem2分别为次要处理核心30_Core1与30_Core2所专用,且存储区域70_MemS为主要处理核心30_Core0、次要处理核心30_Core1与30_Core2所共用。
多核心系统70具备两个次要处理核心30_Core1、30_Core2,当其中一个次要处理核心无法顺利地与主要处理核心30_Core0协同处理时,另一个次要处理核心可以与主要处理核心30_Core0协同处理,以达到非对称式处理的多核心系统的最大效能。
图8是本发明的另一实施例所提供的非对称式处理的多核心系统的方块图。与图7的多核心系统70相比,图8的多核心系统80还多出了一个主要处理核心30_Core3与第四外围装置30_Ph3,且存储器80_Mem被切分为五个存储区域80_Mem0~80_Mem3与80_MemS,其中存储区域80_MemS为主要处理核心30_Core0、30_Core3、次要处理核心30_Core1与30_Core2所共用,存储区域80_Mem0~80_Mem3分别为主要处理核心30_Core0、次要处理核心30_Core1、30_Core2与主要处理核心30_Core3所专用。理论上,非对称式处理的多核心系统80的效能应该会优于非对称式处理的多核心系统70。
另外,上述实施例所提供的非对称式处理的双核心系统或多核心系统皆可以与外部交换构件形成一种网络设备,而达到包处理与包传递的最大效能。此种网络设备可以是手机、笔记型电脑、台式电脑或伺服器等。
综上所述,本发明的实施例提供一种非对称式处理的多核心系统,其可用在网络设备中。此非对称式处理的多核心系统内的次要处理核心会辅助处理其主要处理核心的工作,进而让整个网络设备的整体效能提升,且使其运作更为流畅。不同于传统的处理方法,此非对称式处理的多核心系统不用大量地搬移或复制经处理后的包的数据,而能节省大量的存储器频宽,以及减少功率消耗。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (20)
1.一种非对称式处理的多核心系统,其特征在于,包括:
一主要处理核心,具有一第一操作系统,所述第一操作系统包括一第一核心空间与一第一用户空间,所述第一核心空间包括一以太网驱动器模块与一接收端阵列管理模块,所述第一用户空间包括一第一控制管理模块;
一次要处理核心,具有一第二操作系统,所述第二操作系统包括一第二核心空间与一第二用户空间,所述第二用户空间包括一第二控制管理模块;
一暂存器,为所述主要处理核心与所述次要处理核心所共用;
一存储器,具有所述主要处理核心所能使用的一第一存储区域;
一第一外围装置,连接在所述主要处理核心与一外部交换构件;以及
一第二外围装置,连接在所述次要处理核心与所述外部交换构件;
其中所述以太网驱动器模块通过所述第一外围装置接收来自于所述外部交换构件的一包,所述包会被所述接收端阵列管理模块储存在所述第一存储区域;其中所述第二控制管理模块根据一存储器绝对位置直接读取所述第一存储区域所储存的包的数据,并加以处理,以产生一处理结果,所述第二控制管理模块会将所述处理结果告知所述接收端阵列管理模块;所述接收端阵列管理模块再根据所述处理结果,对所述包进行处理。
2.根据权利要求1所述的非对称式处理的多核心系统,其特征在于,所述接收端阵列管理模块将所收到的包,以先进先出的方式存放在所述存储器的一包阵列中,并据此更新一阵列标头;其中所述第二控制管理模块具有一阵列管理模块,其使用轮询的方式读取所述包阵列,若所述阵列管理模块发现所述阵列标头变动,则所述阵列管理模块使用所述存储器绝对位置直接读取所述第一存储区域所储存的包的数据,以让所述次要处理核心针对所述包进行处理。
3.根据权利要求2所述的非对称式处理的多核心系统,其特征在于,在所述阵列管理模块读取所述包阵列完成后,所述阵列管理模块会将所述处理结果写在所述包阵列的一控制栏位中,并更新所述包阵列的一阵列标尾。
4.根据权利要求3所述的非对称式处理的多核心系统,其特征在于,所述接收端阵列使用轮询的方式检查所述阵列标尾,若所述接收端阵列管理模块发现所述阵列标尾的值变动,则将所述处理结果从所述包阵列的所述控制字段取出。
5.根据权利要求1所述的非对称式处理的多核心系统,其特征在于,所述第一核心空间还包括一操作系统接收功能模块与一包释放模块;所述接收端阵列管理模块根据所述处理结果将所述包给所述操作系统接收功能模块或所述包释放模块;所述包释放模块根据所述接收端阵列管理模块所产生的一发出丢弃信息指示所述第一外围装置的缓冲存储器将所述包的数据丢弃;所述操作系统接收功能模块根据所述接收端阵列管理模块所产生的一发出通过信息对所述包进行其他的处理,以让所述主要处理核心呼叫其他流程,以继续下一阶段的处理或将处理完后的包发送出去。
6.根据权利要求2所述的非对称式处理的多核心系统,其特征在于,所述第一核心空间还包括一第一沟通指示代理模块,所述第二核心空间还包括一第二沟通指示代理模块;所述接收端阵列管理模块传送一第一发出报告信息给所述第一沟通指示代理模块;所述第一沟通指示代理模块根据所述第一发出报告信息输出一第一中断信号给所述第二沟通指示代理模块;所述第二沟通指示代理模块根据所述中断信号输出一第一输出输入控制信号给所述第二控制管理模块;所述第二控制管理模块在收到所述第一输出输入控制信号后,所述第二控制管理模块启动所述阵列管理模块,根据所述存储器绝对位置直接读取所述第一存储区域所储存的包的数据,进行处理。
7.根据权利要求6所述的非对称式处理的多核心系统,其特征在于,当所述次要处理核心对所述包进行处理完毕后,所述第二控制管理模块输出一第二输出输入控制信号给所述第二沟通指示代理模块,以告知所述主要处理核心所述次要处理核心已经对包处理完毕;所述第二沟通指示代理模块根据所述第二输出输入控制信号产生一第二中断信号给所述第一沟通指示代理模块;所述第一沟通指示代理模块根据所述第二中断信号产生一第二发出报告信息给所述接收端阵列管理模块,以启动接收端阵列管理模块根据所述处理结果,对所述包进行处理。
8.根据权利要求7所述的非对称式处理的多核心系统,其特征在于,所述第二控制管理模块包括一应用程序模块、一指示管理模块与一阵列管理模块;所述阵列管理模块根据所述存储器绝对位置直接读取所述第一存储区域所储存的包的数据;所述指示管理模块会依据所述应用程序模块的指示向所述第二沟通指示代理模块发出所述第二输出输入控制信号。
9.根据权利要求5所述的非对称式处理的多核心系统,其特征在于,所述第一核心空间还包括一包过滤模块;所述包过滤模块接收来自于所述以太网驱动器模块,并决定要将所述包送至所述接收端阵列管理模块或所述操作系统接收功能模块。
10.根据权利要求1所述的非对称式处理的多核心系统,其特征在于,所述第一存储区域是所述主要处理核心所专用的存储区域,或者是所述主要处理核心与次要处理核心所共用的存储区域。
11.一种网络设备,其特征在于,包括一非对称式处理的多核心系统与一外部交换构件,所述对称式处理的多核心系统包括:
一主要处理核心,具有一第一操作系统,所述第一操作系统包括一第一核心空间与一第一用户空间,所述第一核心空间包括一以太网驱动器模块与一接收端阵列管理模块,所述第一用户空间包括一第一控制管理模块;
一次要处理核心,具有一第二操作系统,所述第二操作系统包括一第二核心空间与一第二用户空间,所述第二用户空间包括一第二控制管理模块;
一暂存器,为所述主要处理核心与所述次要处理核心所共用;
一存储器,具有所述主要处理核心所能使用的一第一存储区域;
一第一外围装置,连接在所述主要处理核心与一外部交换构件;以及
一第二外围装置,连接在所述次要处理核心与所述外部交换构件;
其中所述以太网驱动器模块通过所述第一外围装置接收来自于所述外部交换构件的一包,所述包会被所述接收端阵列管理模块储存在所述第一存储区域;其中所述第二控制管理模块根据一存储器绝对位置直接读取所述第一存储区域所储存的包的数据,并加以处理,以产生一处理结果,所述第二控制管理模块会将所述处理结果告知所述接收端阵列管理模块;所述接收阵列管理模块再根据所述处理结果,对所述包进行处理。
12.根据权利要求11所述的网络设备,其特征在于,所述接收端阵列管理模块将所收到的包,以先进先出的方式存放在所述存储器的包阵列中,并据此更新一阵列标头;其中所述第二控制管理模块包括一阵列管理模块,其使用轮询的方式读取所述包阵列,若所述阵列管理模块发现所述阵列标头变动,则所述阵列管理模块使用所述存储器绝对位置直接读取所述第一存储区域所储存的包的数据,以让所述次要处理核心针对所述包进行处理。
13.根据权利要求12所述的网络设备,其特征在于,在所述阵列管理模块读取所述包阵列完成后,所述阵列管理模块会将所述处理结果写在所述包阵列的一控制栏位中,并更新所述包阵列的一阵列标尾。
14.根据权利要求13所述的网络设备,其特征在于,所述接收端阵列使用轮询的方式检查所述阵列标尾,若所述接收端阵列管理模块发现所述阵列标尾的值变动,则将所述处理结果从所述包阵列的所述控制字段取出。
15.根据权利要求11所述的网络设备,其特征在于,所述第一核心空间还包括一操作系统接收功能模块与一包释放模块;所述接收端根据所述处理结果将所述包给所述操作系统接收功能模块或所述包释放模块;所述包释放模块根据所述接收端阵列管理模块所产生的一发出丢弃信息指示所述第一外围装置的缓冲存储器将所述包的数据丢弃;所述操作系统接收功能模块根据所述接收端阵列管理模块所产生的一发出通过信息对所述包进行其他的处理,以让所述主要处理核心呼叫其他流程,以继续下一阶段的处理或将处理完后的包发送出去。
16.根据权利要求12所述的网络设备,其特征在于,所述第一核心空间还包括一第一沟通指示代理模块,所述第二核心空间还包括一第二沟通指示代理模块;所述接收端阵列管理模块传送一第一发出报告信息给所述第一沟通指示代理模块;所述第一沟通指示代理模块根据所述第一发出报告信息输出一第一中断信号给所述第二沟通指示代理模块;所述第二沟通指示代理模块根据所述中断信号输出一第一输出输入控制信号给所述第二控制管理模块;所述第二控制管理模块在收到所述第一输出输入控制信号后,所述第二控制管理模块启动所述阵列管理模块,根据所述存储器绝对位置直接读取所述第一存储区域所储存的包的数据,进行处理。
17.根据权利要求16所述的网络设备,其特征在于,当所述次要处理核心对所述包进行处理完毕后,所述第二控制管理模块输出一第二输出输入控制信号给所述第二沟通指示代理模块,以告知所述主要处理核心所述次要处理核心已经对包处理完毕;所述第二沟通指示代理模块根据所述第二输出输入控制信号产生一第二中断信号给所述第一沟通指示代理模块;所述第一沟通指示代理模块根据所述第二中断信号产生一第二发出报告信息给所述接收端阵列管理模块,以启动接收端阵列管理模块根据所述处理结果,对所述包进行处理。
18.根据权利要求17所述的网络设备,其特征在于,所述第二控制管理模块包括一应用程序模块、一指示管理模块与一阵列管理模块;所述阵列管理模块根据所述存储器绝对位置直接读取所述第一存储区域所储存的包的数据;所述指示管理模块会依据所述应用程序模块的指示向所述第二沟通指示代理模块发出所述第二输出输入控制信号。
19.根据权利要求15所述的网络设备,其特征在于,所述第一核心空间还包括一包过滤模块;所述包过滤模块接收来自于所述以太网驱动器模块,并决定要将所述包送至所述接收端阵列管理模块或所述操作系统接收功能模块。
20.根据权利要求11所述的网络设备,其特征在于,所述第一存储区域是所述主要处理核心所专用的存储区域,或者是所述主要处理核心与次要处理核心所共用的存储区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210538742.0A CN103870318B (zh) | 2012-12-11 | 2012-12-11 | 非对称式处理的多核心系统与其网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210538742.0A CN103870318B (zh) | 2012-12-11 | 2012-12-11 | 非对称式处理的多核心系统与其网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103870318A true CN103870318A (zh) | 2014-06-18 |
CN103870318B CN103870318B (zh) | 2017-05-24 |
Family
ID=50908885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210538742.0A Active CN103870318B (zh) | 2012-12-11 | 2012-12-11 | 非对称式处理的多核心系统与其网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103870318B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254578A (zh) * | 2016-09-28 | 2016-12-21 | 深圳震有科技股份有限公司 | 双核amp系统构架下的以太网报文透传方法及系统 |
CN108390940A (zh) * | 2018-03-13 | 2018-08-10 | 上海铼钠克数控科技股份有限公司 | 以太网通信系统 |
CN108717362A (zh) * | 2018-05-21 | 2018-10-30 | 北京晨宇泰安科技有限公司 | 一种基于可继承结构的网络设备配置模型及配置方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7047368B2 (en) * | 2003-09-02 | 2006-05-16 | Sirf Technology, Inc. | Memory reallocation and sharing in electronic systems |
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
CN101216814A (zh) * | 2007-12-26 | 2008-07-09 | 杭州华三通信技术有限公司 | 一种多核多操作系统之间的通信方法及系统 |
CN101917350A (zh) * | 2010-09-13 | 2010-12-15 | 南京中兴特种软件有限责任公司 | 一种Linux下基于网卡驱动的零拷贝以太网报文捕获及发送的实现方法 |
US8161482B1 (en) * | 2007-04-13 | 2012-04-17 | Marvell International Ltd. | Power optimization for multi-core devices |
-
2012
- 2012-12-11 CN CN201210538742.0A patent/CN103870318B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7047368B2 (en) * | 2003-09-02 | 2006-05-16 | Sirf Technology, Inc. | Memory reallocation and sharing in electronic systems |
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
US8161482B1 (en) * | 2007-04-13 | 2012-04-17 | Marvell International Ltd. | Power optimization for multi-core devices |
CN101216814A (zh) * | 2007-12-26 | 2008-07-09 | 杭州华三通信技术有限公司 | 一种多核多操作系统之间的通信方法及系统 |
CN101917350A (zh) * | 2010-09-13 | 2010-12-15 | 南京中兴特种软件有限责任公司 | 一种Linux下基于网卡驱动的零拷贝以太网报文捕获及发送的实现方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254578A (zh) * | 2016-09-28 | 2016-12-21 | 深圳震有科技股份有限公司 | 双核amp系统构架下的以太网报文透传方法及系统 |
CN106254578B (zh) * | 2016-09-28 | 2019-07-12 | 深圳震有科技股份有限公司 | 双核amp系统构架下的以太网报文透传方法及系统 |
CN108390940A (zh) * | 2018-03-13 | 2018-08-10 | 上海铼钠克数控科技股份有限公司 | 以太网通信系统 |
CN108717362A (zh) * | 2018-05-21 | 2018-10-30 | 北京晨宇泰安科技有限公司 | 一种基于可继承结构的网络设备配置模型及配置方法 |
CN108717362B (zh) * | 2018-05-21 | 2022-05-03 | 北京晨宇泰安科技有限公司 | 一种基于可继承结构的网络设备配置系统及配置方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103870318B (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3701706B1 (en) | Blockchain-based data migration method and apparatus | |
CN110309088B (zh) | Zynq fpga芯片及其数据处理方法、存储介质 | |
CN110334070A (zh) | 数据处理方法、系统、设备及存储介质 | |
TWI478055B (zh) | 非對稱式處理之多核心系統與其網路設備 | |
CN103324592A (zh) | 一种数据迁移控制方法、数据迁移方法及装置 | |
WO2024088268A1 (zh) | Rdma事件管理方法、设备及存储介质 | |
CN103109293A (zh) | 一种用户行为处理系统及方法 | |
US9116881B2 (en) | Routing switch apparatus, network switch system, and routing switching method | |
CN111464447B (zh) | 一种超带宽多核心以太网交换芯片转发表同步的方法及装置 | |
CN103870318A (zh) | 非对称式处理的多核心系统与其网络设备 | |
CN103975301B (zh) | 通过本地服务器对本地客户机应用进行事件服务的方法 | |
CN114143140A (zh) | 一种数据传输系统、方法、存储介质及电子设备 | |
CN101452430A (zh) | 多处理器之间的通信方法与包括多处理器的通信装置 | |
CN105607940A (zh) | 一种arm平台中bdk向uefi bios传递信息的方法 | |
WO2024067529A1 (zh) | 基于rdma的建连方法、装置、设备及存储介质 | |
CN113297124B (zh) | 设备枚举方法、设备、系统及存储介质 | |
Bertolotti et al. | Modular design of an open-source, networked embedded system | |
CN115964195A (zh) | Dds主题的进程通信方式配置方法及装置 | |
CN110532032A (zh) | 一种开机文件系统检测方法以及相关设备 | |
CN116341508A (zh) | 报文模板的动态配置方法、装置、计算机设备及存储介质 | |
CN103605628A (zh) | 基于pci-e主从设备之间的命令交互方法及系统 | |
CN114064324A (zh) | 进程间通信方法、装置、设备及计算机可读存储介质 | |
CN110661869B (zh) | 一种节点上线方法、系统、装置、设备及计算机存储介质 | |
CN103927153A (zh) | 一种系统配置的方法、设备及系统 | |
CN113923249B (zh) | 一种高性能网络长连接建立方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |