多核电子装置及其分组处理方法

文档序号:1821539 发布日期:2021-11-09 浏览:2次 >En<

阅读说明:本技术 多核电子装置及其分组处理方法 (Multi-core electronic device and packet processing method thereof ) 是由 金玲煜 李元辅 洪荣基 于 2020-03-20 设计创作,主要内容包括:提供了一种多核电子装置。所述多核电子装置包括多核和存储器,其中,多核包括多个核,每个核被配置为在驱动器核层、网络处理核层和应用核层中处理分组,存储器被配置为存储执行指令,所述执行指令用于使所述多个核中的第一核在接收到分组时识别用于将分组传递到操作系统域的驱动器核的位置、用于在用户域中处理分组的应用核的位置以及处理量,基于驱动器核的位置、应用核的位置和会话的处理量中的至少一个来确定用于处理分组的网络处理核的位置,并且控制网络处理核对分组执行网络堆栈处理。(A multi-core electronic device is provided. The multi-core electronic device includes a plurality of cores, each core configured to process a packet in a driver core layer, a network processing core layer, and an application core layer, and a memory configured to store an execution instruction for causing a first core of the plurality of cores to identify, upon receiving the packet, a location of the driver core for delivering the packet to an operating system domain, a location of the application core for processing the packet in a user domain, and a throughput, determine a location of the network processing core for processing the packet based on at least one of the location of the driver core, the location of the application core, and the throughput of the session, and control the network processing core to perform network stack processing on the packet.)

多核电子装置及其分组处理方法

技术领域

本公开涉及一种多核电子装置及其分组处理方法。

背景技术

5G是用于低延迟和高吞吐量通信的第五代技术标准。用于提供5G网络服务的通信系统使用高度复杂的硬件技术和软件技术来实现高数据速率。

例如,为了使电子装置支持5G网络服务,在硬件方面有必要使用多个处理器(例如,多核处理器),并且在软件方面有必要使用用于在多个核上同时并行地处理接收到的分组的技术。基于软件的多核分组分发处理技术的重要性在于将接收到的分组高效地分发到核。这种分组分发处理技术的示例可包括在Linux操作系统(OS)中引入的接收分组转向(RPS)和接收流转向(RFS)。

RPS是一种用于根据分组的会话通过随机分配核来允许对分组进行网络堆栈(例如,传输控制协议/互联网协议(TCP/IP)层)处理的技术。RFS是一种用于通过将用于接收会话的应用核与用于网络堆栈处理的核相匹配来确定用于对接收到的分组进行网络堆栈处理的核的技术。

此外,电子装置可采用新的应用编程接口(API)(NAPI)技术,以用于在分组到达网络接口时向内核通知分组到达状态。NAPI是一种用于在接收到预定数量的分组时以批处理的方式有效地处理数据并将该批分组传递到上层的技术。

上述信息仅作为

背景技术

信息呈现,以帮助理解本公开。关于上述内容中的任何内容是否可适用于关于本公开的现有技术,尚未做出任何确定,也未做出断言。

发明内容

技术问题

在不考虑应用和核的状态的情况下随机选择用于处理分组的核的接收分组转向(RPS)技术可能导致延迟或无法优化多核处理器的吞吐量。例如,如果驱动器任务处理核和网络堆栈处理核的能力不满足应用的需求,则难以在新的应用编程接口(API)(NAPI)和传输控制协议(TCP)处理过程中执行批处理,这导致低吞吐量和低效操作。在接收流转向(RFS)技术的情况下,即使当分组由位于与应用核相同位置的网络核处理时,如果分组在单个会话中到达或者分组被集中在特定会话中,则负载(或开销)被施加到相应的核,导致无法实现多核性能的充分利用。

本公开的各方面是为了至少解决上述问题和/或缺点,并且至少提供下面描述的优点。因此,本公开的一方面用于提供一种用于以分布式方式对分组进行批处理并对经批处理的分组进行处理的多核电子装置及其核确定方法和设备,其能够通过考虑驱动器核、网络核和应用核的性能和互操作来最大化分组的批量大小,从而减少不必要的开销并保证更高性能。

技术方案

另外的方面将部分地在下面的描述中阐述,并且部分地将从描述中显而易见,或者可通过实践所呈现的实施例来学习。

根据本公开的一方面,提供了一种多核电子装置。所述多核电子装置包括通信电路、多核和存储器,所述多核包括多个核,其中,每个核被配置为在驱动器核层、网络处理核层和应用核层中处理分组,所述存储器被配置为存储用于所述多个核中的第一核的指令,所述指令用于:当所述通信电路接收到分组时,识别用于将所述分组传递到操作系统域的驱动器核的位置、用于在用户域中处理所述分组的应用核的位置以及与所述分组相应的会话的处理量,基于所述驱动器核的位置、所述应用核的位置和所述会话的处理量中的至少一个来确定用于处理所述分组的网络处理核的位置,并且控制所述网络处理核对传递到所述操作系统域的所述分组执行网络堆栈处理。

根据本公开的另一方面,提供了一种电子装置。该电子装置包括通信电路、多核、存储器和处理器,其中,所述多核包括多个核,每个核被配置为在驱动器核层、网络处理核层和应用核层中处理分组,所述处理器被配置为当所述通信电路接收到分组时,进行控制以识别用于将所述分组从多个核中的一个核传递到操作系统域的驱动器核的位置、用于在用户中处理所述分组的应用核的位置,基于所述驱动器核的位置、所述应用核的位置和会话的处理量中的至少一个来确定所述多个核中用于处理所述分组的网络处理核的位置,并且进行控制以使用所述网络处理核对所述分组执行网络堆栈处理。

本发明的有益效果

根据各种公开的实施例,可确定用于处理分组的应用核的位置,并基于用于处理接收到的分组的驱动器核的位置和应用核的位置以及每次会话的分组处理量来选择用于TCP/IP堆栈处理的网络处理核。所提出的方法在通过使用在较低层中示出能力等于或大于在较高层中的能力的核来提高多核电子装置的批处理性能和效率方面是有利的。

根据以下结合附图公开了本公开的各种实施例的详细描述,本公开的其他方面、优点和显著特征对于本领域技术人员将变得显而易见。

附图说明

通过结合附图的以下描述,本公开的特定实施例的上述和其它方面、特征及优点将更加明显,其中:

图1是示出根据本公开的实施例的网络环境中的电子装置的框图;

图2是示出根据本公开的实施例的多核电子装置的配置的框图;

图3a和图3b是根据本公开的各种实施例的网络分组处理操作的示图;

图4是根据本公开的实施例的网络分组处理主机的示图;

图5是示出根据本公开的实施例的电子装置的分组处理操作的示图;

图6是示出根据本公开的实施例的电子装置的分组处理操作的示图;

图7是示出根据本公开的实施例的确定用于处理分组的核的方法的流程图;

图8是示出根据本公开的实施例的确定用于处理分组的核的方法的流程图;

图9是示出根据本公开的实施例的确定用于处理分组的核的方法的流程图;

图10是示出根据本公开的实施例的确定用于处理分组的核的方法的流程图;

图11是示出根据本公开的实施例的确定用于处理分组的核的方法的流程图;

图12是示出根据本公开的实施例的确定用于处理分组的核的方法的流程图;以及

图13a、图13b和图13c是用于示出根据本公开的各种实施例的效果的曲线图。

在整个附图中,应当注意,相同的附图标记用于描绘相同或相似的元件、特征和结构。

具体实施方式

提供参照附图的以下描述以帮助全面理解由权利要求及其等同物限定的本公开的各种实施例。所述描述包括各种具体细节以帮助理解,但是这些细节仅被认为是示例性的。因此,本领域普通技术人员将认识到,在不脱离本公开的范围和精神的情况下,可对本文描述的各种实施例进行各种改变和修改。此外,为了清楚和简明,可省略对众所周知的功能和结构的描述。

在以下描述和权利要求书中使用的术语和词语不限于书面含义,而是仅由发明人使用以使能够清楚且一致地理解本公开。因此,对于本领域技术人员显而易见的是,提供本公开的各种实施例的以下描述仅用于说明目的,而不是为了限制由所附权利要求及其等同物限定的本公开的目的。

应当理解,除非上下文另有明确规定,否则单数形式“一”、“一个”和“该”包括复数指示物。因此,例如,对“组件表面”的引用包括对一个或多个这样的表面的引用。

图1是示出根据各种实施例的网络环境100中的电子装置101的框图。

参照图1,网络环境100中的电子装置101可经由第一网络198(例如,短距离无线通信网络)与电子装置102进行通信,或者经由第二网络199(例如,长距离无线通信网络)与电子装置104或服务器108进行通信。根据实施例,电子装置101可经由服务器108与电子装置104进行通信。根据实施例,电子装置101可包括处理器120、存储器130、输入装置150、声音输出装置155、显示装置160、音频模块170、传感器模块176、接口177、触觉模块179、相机模块180、电力管理模块188、电池189、通信模块190、用户识别模块(SIM)196或天线模块197。在一些实施例中,可从电子装置101中省略所述部件中的至少一个(例如,显示装置160或相机模块180),或者可将一个或更多个其它部件添加到电子装置101中。在一些实施例中,可将所述部件中的一些部件实现为单个集成电路。例如,可将传感器模块176(例如,指纹传感器、虹膜传感器、或照度传感器)实现为嵌入在显示装置160(例如,显示器)中。

处理器120可运行例如软件(例如,程序140)来控制电子装置101的与处理器120连接的至少一个其它部件(例如,硬件部件或软件部件),并可执行各种数据处理或计算。根据一个实施例,作为所述数据处理或计算的至少部分,处理器120可将从另一部件(例如,传感器模块176或通信模块190)接收到的命令或数据加载到易失性存储器132中,对存储在易失性存储器132中的命令或数据进行处理,并将结果数据存储在非易失性存储器134中。根据实施例,处理器120可包括主处理器121(例如,中央处理器(CPU)或应用处理器(AP))以及与主处理器121在操作上独立的或者相结合的辅助处理器123(例如,图形处理单元(GPU)、图像信号处理器(ISP)、传感器中枢处理器或通信处理器(CP))。另外地或者可选择地,辅助处理器123可被适配为比主处理器121耗电更少,或者被适配为具体用于指定的功能。可将辅助处理器123实现为与主处理器121分离,或者实现为主处理器121的部分。

在主处理器121处于未激活(例如,睡眠)状态时,辅助处理器123可控制与电子装置101(而非主处理器121)的部件之中的至少一个部件(例如,显示装置160、传感器模块176或通信模块190)相关的功能或状态中的至少一些,或者在主处理器121处于激活状态(例如,运行应用)时,辅助处理器123可与主处理器121一起来控制与电子装置101的部件之中的至少一个部件(例如,显示装置160、传感器模块176或通信模块190)相关的功能或状态中的至少一些。根据实施例,可将辅助处理器123(例如,图像信号处理器或通信处理器)实现为在功能上与辅助处理器123相关的另一部件(例如,相机模块180或通信模块190)的部分。

存储器130可存储由电子装置101的至少一个部件(例如,处理器120或传感器模块176)使用的各种数据。所述各种数据可包括例如软件(例如,程序140)以及针对与其相关的命令的输入数据或输出数据。存储器130可包括易失性存储器132或非易失性存储器134。

可将程序140作为软件存储在存储器130中,并且程序140可包括例如操作系统(OS)142、中间件144或应用146。

输入装置150可从电子装置101的外部(例如,用户)接收将由电子装置101的其它部件(例如,处理器120)使用的命令或数据。输入装置150可包括例如麦克风、鼠标或键盘。

声音输出装置155可将声音信号输出到电子装置101的外部。声音输出装置155可包括例如扬声器或接收器。扬声器可用于诸如播放多媒体或播放唱片的通用目的,接收器可用于呼入呼叫。根据实施例,可将接收器实现为与扬声器分离,或实现为扬声器的部分。

显示装置160可向电子装置101的外部(例如,用户)视觉地提供信息。显示装置160可包括例如显示器、全息装置或投影仪以及用于控制显示器、全息装置和投影仪中的相应一个的控制电路。根据实施例,显示装置160可包括被适配为检测触摸的触摸电路或被适配为测量由触摸引起的力的强度的传感器电路(例如,压力传感器)。

音频模块170可将声音转换为电信号,反之亦可。根据实施例,音频模块170可经由输入装置150获得声音,或者经由声音输出装置155或与电子装置101直接(例如,有线地)连接或无线连接的外部电子装置(例如,电子装置102)的耳机输出声音。

传感器模块176可检测电子装置101的操作状态(例如,功率或温度)或电子装置101外部的环境状态(例如,用户的状态),然后产生与检测到的状态相应的电信号或数据值。根据实施例,传感器模块176可包括例如手势传感器、陀螺仪传感器、大气压力传感器、磁性传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(IR)传感器、生物特征传感器、温度传感器、湿度传感器或照度传感器。

接口177可支持将用来使电子装置101与外部电子装置(例如,电子装置102)直接(例如,有线地)或无线连接的一个或更多个特定协议。根据实施例,接口177可包括例如高清晰度多媒体接口(HDMI)、通用串行总线(USB)接口、安全数字(SD)卡接口或音频接口。

连接端178可包括连接器,其中,电子装置101可经由所述连接器与外部电子装置(例如,电子装置102)物理连接。根据实施例,连接端178可包括例如HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。

触觉模块179可将电信号转换为可被用户经由他的触觉或动觉识别的机械刺激(例如,振动或运动)或电刺激。根据实施例,触觉模块179可包括例如电机、压电元件或电刺激器。

相机模块180可捕获静止图像或运动图像。根据实施例,相机模块180可包括一个或更多个透镜、图像传感器、图像信号处理器或闪光灯。

电力管理模块188可管理对电子装置101的供电。根据实施例,可将电力管理模块188实现为例如电力管理集成电路(PMIC)的至少部分。

电池189可对电子装置101的至少一个部件供电。根据实施例,电池189可包括例如不可再充电的原电池、可再充电的蓄电池、或燃料电池。

通信模块190可支持在电子装置101与外部电子装置(例如,电子装置102、电子装置104或服务器108)之间建立直接(例如,有线)通信信道或无线通信信道,并经由建立的通信信道执行通信。通信模块190可包括能够与处理器120(例如,应用处理器(AP))独立操作的一个或更多个通信处理器,并支持直接(例如,有线)通信或无线通信。根据实施例,通信模块190可包括无线通信模块192(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星系统(GNSS)通信模块)或有线通信模块194(例如,局域网(LAN)通信模块或电力线通信(PLC)模块)。这些通信模块中的相应一个可经由第一网络198(例如,短距离通信网络,诸如蓝牙、无线保真(Wi-Fi)直连或红外数据协会(IrDA))或第二网络199(例如,长距离通信网络,诸如蜂窝网络、互联网、或计算机网络(例如,LAN或广域网(WAN)))与外部电子装置进行通信。可将这些各种类型的通信模块实现为单个部件(例如,单个芯片),或可将这些各种类型的通信模块实现为彼此分离的多个部件(例如,多个芯片)。无线通信模块192可使用存储在用户识别模块196中的用户信息(例如,国际移动用户识别码(IMSI))识别并验证通信网络(诸如第一网络198或第二网络199)中的电子装置101。

天线模块197可将信号或电力发送到电子装置101的外部(例如,外部电子装置)或者从电子装置101的外部(例如,外部电子装置)接收信号或电力。根据实施例,天线模块197可包括一个或更多个天线,并且因此,可由例如通信模块190(例如,无线通信模块192)选择适合于在通信网络(诸如第一网络198或第二网络199)中使用的通信方案的至少一个天线。随后可经由所选择的至少一个天线在通信模块190和外部电子装置之间发送或接收信号或电力。

上述部件中的至少一些可经由外设间通信方案(例如,总线、通用输入输出(GPIO)、串行外设接口(SPI)或移动工业处理器接口(MIPI))相互连接并在它们之间通信地传送信号(例如,命令或数据)。

根据各种实施例,电子装置101的处理器120可包括N个核。N个核可包括消耗更多功率并且具有更多处理能力的高性能核(例如,大核)以及消耗更少功率并且具有更少处理能力的低性能核(例如,小核)。

根据各种实施例,在网络环境100中,电子装置101可从网络接收分组,并且以分布式方式使用多个核来处理接收到的分组。例如,核可被分层组织以在它们自己的层上对分组进行处理:驱动器核用于将接收到的分组传递到上层、网络处理核用于网络堆栈处理、以及应用核用于在用户域中进行应用处理。

对多核电子装置101和用于考虑电子装置101中的驱动器核的位置和应用核的位置来确定用于网络堆栈处理的网络处理核的位置的方法进行描述。

图2是示出根据本公开的实施例的多核电子装置的配置的框图。

参照图2,多核电子装置201(例如,图1中的电子装置101)可包括多核210(例如,图1中的处理器120)、网络驱动器220、核管理控制器230和存储器240(例如,图1中的存储器130)。

根据实施例,多核210可以是包括至少N个核211、212、213和214的处理器。该描述涉及但不限于多核210包括第一类型核(例如,高性能核、高功率核和大核)和第二类型核(例如,低性能核、低功率核和小核)的情况。可根据电子装置的规格来确定第一类型核和第二类型核的数量。

根据实施例,包括在多核210中的N个核可用核编号(例如,核0、核1、核2、核4和核N)来表示。多核210中包括的核可根据其性能被分类为第一集群和第二集群之一。电子装置201可根据核编号将核分类为集群中的一个集群。例如,假设8个核,核4至核7落入第一集群,而核0至3落入第二集群。电子装置201可基于核编号来识别核是属于第一集群还是第二集群。

根据实施例,网络驱动器220可包括网络接口卡(NIC)(未示出)。网络驱动器220可被实现为用于与另一装置进行网络通信的软件组件。根据实施例,网络驱动器220可经由外围组件互连(PCI)快速接口被连接到通信处理器的调制解调器(例如,局域网(LAN)卡)。根据各种实施例,NIC可包括但不限于LAN卡。电子装置201可经由无线连接或有线连接被连接到网络。电子装置101可使用NIC或调制解调器的媒体访问控制(MAC)地址连接到网络。

根据实施例,网络驱动器220(例如,NIC)可包括用于对接收到的分组进行排队的接收(Rx)缓冲器(未示出)和用于对由用户域中的应用进行处理的分组进行排队以进行传输的发送(Tx)缓冲器(未示出)。

根据实施例,网络驱动器220可通过与另一电子装置的网络通信来接收分组。根据实施例,网络驱动器220可被安装在核中并且从NIC(或包括调制解调器的通信处理器)接收针对传入的分组的中断信号。核可包括OS(例如,图1中的OS 142)。例如,核可接收多个分组,并且可将多个分组传递到不同层核。

根据实施例,核管理控制器230可由多核210的多个核中的至少一个核驱动,或者作为图1中的处理器120的一部分。

根据实施例,核管理控制器可以是被配置为独立于多核210操作的硬件组件。

根据另一实施例,核管理控制器230可以是软件程序(例如,图1中的程序140)。例如,作为软件组件的核管理控制器230可按照可由处理器120执行的命令(或指令)的形式被存储在存储器240中。

根据实施例,核管理控制器230可检测应用的执行,将多个核中的一个核分配给该应用,并且控制多核210。

根据实施例,核管理控制器230可监测关于正经由网络通信传送的分组的会话的信息,以确定用于处理分组的核的位置(即,标识)。例如,核的位置可包括核编号或集群类型信息。根据实施例,核管理控制器230可获取分组的会话ID、将分组传递到并发处理引擎的驱动器核的标识符(例如,编号)、与会话ID相关的应用(例如,用于处理分组的应用)核的标识符和/或每个会话的处理信息中的至少一个。例如,并发处理引擎可以是在OS(例如,图1中的OS 142)上运行的软件组件,并且被理解为用于利用会话ID识别从网络接收的分组并以分布式方式在核上处理分组的引擎。

根据实施例,核管理控制器230可基于从并发处理引擎接收的信息来确定用于对分组进行网络堆栈(例如,TCP/IP堆栈)处理的网络处理核的标识符(例如,编号)。

根据实施例,核管理控制器230可基于从并发处理引擎接收的信息来确定用于对分组进行网络堆栈(例如,TCP/IP堆栈)处理的网络处理核的集群类型。

根据实施例,核管理控制器230可监测用于在用户域中处理数据的应用核的位置,以检测该应用核的位置的改变,并且基于该应用核的位置的改变来改变网络处理核的位置。

根据实施例,核管理控制器230可监测应用的操作状态以确定应用核的位置,并且如果需要,可进行控制以改变应用核的位置。例如,应用核的位置可包括指示核编号或者集群类型的信息。例如,如果需要在应用层中从高性能核改变为低性能核,则核管理控制器230可选择低功率集群中的核中的一个核,并且将选择的低功率核指定为应用核。

根据实施例,核管理控制器230可基于会话ID来检查处理应用的核的操作时间和正由核进行处理的分组的数量,并且如果特定核的操作时间大于阈值,则基于处理应用的核所属的核集群来确定应用核的位置。例如,如果用于处理与音频播放应用相关的分组的应用核属于高性能集群,则可将与音频播放应用相应的应用核的位置确定为高性能核。

根据实施例,核管理控制器230可基于应用是在前台运行还是在后台运行来确定应用核的位置。

根据实施例,核管理控制器230可为特定应用预先指定核位置,或者通过机器学习来指定应用核的位置。

根据实施例,核管理控制器230可检查分组处理级别(例如,低、中和高)以确定相关会话的网络处理核。

根据实施例,核管理控制器230可基于应用核的位置、用于将分组传递到并发处理引擎的驱动器核的位置和应用的特征信息中的至少一个来改变阈值,并且通过将阈值水平与阈值进行比较来确定网络处理核。应用的分组处理量可以是以时间为单位处理的分组数据的量,并且由每秒字节(BPS)、每秒比特(BPS)或每秒分组(PPS)的单位表示。

根据实施例,核管理控制器230可根据执行应用的主核的位置来改变关于应用的分组处理量的阈值。

根据实施例,核管理控制器230可根据应用是在前台运行还是在后台运行来改变关于应用的分组处理量的阈值。

根据实施例,核管理控制器230可基于预定信息或学习出的信息,根据应用核的位置来改变关于应用的分组处理量的阈值。

根据实施例,存储器240可包括以下项中的至少一个:动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率2(DDR2)RAM、Rambus动态随机存取存储器(RDRAM)或其他类型的存储器。

根据实施例,存储器240可临时存储软件(例如,程序(图1中的程序140)和并发处理引擎)以及与软件相关联的指令的输入和输出数据。

根据实施例,程序可包括用于控制电子装置201的资源的OS、中间件和应用。OS可控制一个或更多个系统资源(例如,进程、存储器和功率)的管理(例如,分配和解除分配)。中间件可提供各种功能,以便应用使用与电子装置201的一个或更多个系统资源相关联地提供的功能和信息。

图3a和图3b是根据本公开的各种实施例的网络分组处理操作的示图,并且图4是根据本公开的实施例的网络分组处理主机的示图。图3a和图3b中描绘的电子装置可示出用于接收分组并处理所接收的分组的装置的配置。

参照图4,电子装置(例如,图2中的电子装置201)包括多核410(例如,图2中的多核210),并且可经由网络驱动器320(例如,图2中的网络驱动器220)接收分组并在硬件域、OS域和用户域中处理接收到的分组。

参照图3a,电子装置可包括布置在硬件域中的NIC 315、布置在OS域中的网络驱动器320、并发处理引擎340、核管理控制器330(例如,图2中的核管理控制器230)和TCP/IP堆栈350、以及布置在用户域中的应用360。这里,术语“OS域”和“核域”以相同或相似的含义使用。

参照图3b,电子装置可包括布置在硬件域中的NIC 315和并发处理引擎A341、布置在OS区域中的网络驱动器320、并发处理引擎340、核管理控制器330和TCP/IP堆栈350、以及布置在用户域中的应用360。

参照图3b,并发处理引擎可被实现为使用多个存储器的硬件组件。在图3b的实施例中,并发处理引擎A341将由NIC 315接收的分组排队到内部存储器缓冲器(例如,队列),并且激活存储器缓冲器专用核(即,第一核、第二核等)。被激活的核可控制网络驱动器的操作并且对并发处理引擎340进行操作。在图3b的实施例中,可理解,存在操作网络驱动器320的多个核。在以下描述中,假定NIC 315、网络驱动器320、并发处理引擎340、核管理控制器330和TCP/IP堆栈350以与参照图3a描述的方式相同的方式进行操作。电子装置可在OS域中处理接收到的分组(例如,解封装),并且作为在OS域中处理分组的结果向用户提供服务。经由网络驱动器接收的分组可由NIC、网络驱动器320、TCP/IP堆栈350和应用360按顺序处理。接收到的分组可由在每一层中用不同编号标识的核来处理。

根据实施例,经由网络驱动器接收的分组可由驱动器核A、网络处理核B和应用核C按照如图4所示的顺序处理。然而,为了便于解释,核被公开为软件,但是它们可被实现为在各个层中操作的硬件组件(例如,核1、核2、核3...)。稍后描述主机和用于在各个层中处理分组的核的操作。

根据实施例,网络驱动器320可经由NIC接收网络分组。网络驱动器320可将接收到的分组传递到并发处理引擎340。

根据实施例,网络驱动器320可立即将接收到的分组传递到并发处理引擎340。

根据实施例,并发处理引擎340可生成从网络驱动器320接收的分组的会话ID,以用于按照会话识别分组。并发处理引擎340可基于IP地址信息(例如,发送方IP地址和接收方IP地址)和端口信息(例如,发送方端口和接收方端口)来生成会话ID,以在标识分组会话中使用。并发处理引擎340可向核管理控制器330发送接收到的分组的会话ID和已经将分组传递到并发处理引擎340的驱动器核A的编号。

根据实施例,并发处理引擎340可从核管理控制器330接收电子装置的多核410中的核之中用于负责分组会话的核的位置的位置信息。核的位置信息可以是核编号或核集群信息。例如,用于负责会话的核可以是用于TCP/IP堆栈处理的核,例如,图4中的网络处理核B。

根据实施例,并发处理引擎340可激活与所确定的位置相应的网络处理核,并且将从网络驱动器320接收的分组发送到TCP/IP堆栈350。

根据实施例,TCP/IP堆栈350可对分组执行网络层(例如,IP层)和传输层(例如,TCP层和用户数据报协议(UDP)层)处理。例如,TCP/IP堆栈350可对接收到的分组执行IP和TCP处理,并且将经TCP处理的分组发送到用户缓冲器447或应用核C。

根据实施例,核管理控制器330可包括管理器331和数据库(DB)332。

核管理控制器330可基于管理器331和DB 332来监测OS域中的分组处理状态和应用的操作状态,并且基于从并发处理引擎340接收的分组的会话ID和核确定策略来确定用于对分组进行处理的网络(例如,TCP/IP堆栈)处理核B和/或应用核C的位置。例如,核管理控制器330可确定网络处理核B和/或应用核C的标识符或者应用核C所属的集群的类型。

根据实施例,核管理控制器330的管理器331可从并发处理引擎340接收所接收到的分组的会话ID。管理器331可监测与相应的会话ID相关的信息。例如,管理器331可监测针对每个应用的会话分组吞吐量、网络驱动器320已经将相应会话的分组传递到并发处理引擎340的驱动器核A的位置、以及将相应会话的分组从TCP/IP堆栈350传递到应用360的应用核C的位置。例如,管理器331可检查将相应会话的分组从包括在TCP/IP堆栈350中的代理(未示出)传递到应用360的应用核C的编号或集群信息。

根据实施例,管理器331可将所监测的信息(例如,分组处理量和核位置)存储在DB332中。

根据实施例,管理器331可基于所监测的信息、应用核C的位置、驱动器核A的位置和相应会话的分组处理量来确定用于处理相应会话的分组的网络处理核B(和/或应用处理核C)的位置。

根据实施例,管理器331可确定网络处理核B和/或应用核C的位置。例如,并发处理引擎340可基于从管理器331接收的位置信息来选择属于高性能集群的核之一,并且将所选择的核分配为网络处理核B,其中,该位置信息指示高性能集群。

根据实施例,DB 332可存储关于由管理器331监测的会话的信息、预定义的核确定策略信息、会话信息、核信息和应用信息。例如,为了便于解释,DB 332可以以表格的形式实现,但不限于此。

表1是存储核信息的表。核信息可包括与各个核编号和核最大时钟信息相应的集群类型。管理器331可检查相应核的关于位置(即,集群类型)的核信息。

表1

核编号 集群类型 最大时钟
0 1.7GHz
1 1.7GHz
... ... ...
8 2.7GHz

表2是存储每个应用的会话信息的表。会话信息可包括由会话ID标识的会话的吞吐量、Rx数据大小、驱动器核编号或标识符、Rx数据大小、应用核编号或标识符、应用标识(ID)信息和阈值处理量范围信息。会话的处理量表示在预定时段期间处理的分组的数量。例如,如果在会话期间每秒处理10兆字节(MB)的分组,则会话的处理量可以是每秒10MB(MBps)。

根据实施例,会话信息可包括与应用核C编号和核的阈值处理量范围的组合相应的驱动器核A编号、应用核B编号和网络处理核C编号。

表2

会话ID 驱动器核 应用核 Rx数据大小 处理量 网络处理核 应用ID
0 0 3 10Mb 10Mbps 2 1
1 0 5 150Mb 150Mbps 7 2
... ... ... ... ... ... ...
N [0,M] [0,M] Number Number [0,M] K

表3是存储与预定应用ID相应的操作标志值的表。标志值可以是指示预定应用的信息。

表3

应用ID 标志
0 0
1 1
... ...
K 编号

表4是核确定策略的表。管理器331可基于驱动器核A的位置、应用核C的位置和会话的处理量信息来确定网络处理核B的位置。例如,在驱动器核A属于低性能类型、应用核C属于高性能类型并且分组处理量高的情况下,管理器331可确定网络堆栈处理核B属于高性能类型。管理器331还可确定网络处理核B的位置,使得具有预定编号的核或在属于高性能类型的核中随机选择的核执行网络堆栈处理。

表4

在下文中,对主机和在OS域中处理分组的核的操作进行描述。参照图4,多核410可包括但不限于核1 411、核2 412、核3 413和核4 414。多核410中包括的核可根据其性能被分类为低性能集群或高性能集群之一。例如,核1 411和核2 412可属于低性能集群,并且其特征在于较少功耗和低处理能力,然而,核3 413和核4 414可属于高性能集群,并且其特征在于较多功耗和高处理能力。

驱动器核A可将分组从网络驱动器320传递到并发处理引擎340。例如,驱动器核A可在并发处理引擎340的引擎缓冲器442中对传递到网络驱动器320的分组进行排队。驱动器核A可控制并行处理引擎340。

根据实施例,并发处理引擎340可基于从核管理控制器330接收的核分配信息将多核410的核之一确定为网络处理核B。并发处理引擎340可激活由所确定的网络处理核B的编号标识的核,并且在与所确定的网络处理核B相应的引擎缓冲器442中对分组进行排队。

网络处理核B可处理TCP/IP堆栈350中的分组。应用核C可在用户域中处理TCP缓冲器中经TCP处理的分组。

根据实施例,经由网络驱动器320接收的分组可由驱动器核A、网络处理核B和应用核C按顺序依次处理。分组可由在每一层中用不同编号标识的核来处理。例如,在分组处理过程中,核0可被指定为驱动器核A,并且核3可被指定为网络核B。

可为各个层的核A、B和C分配用于处理分组的缓冲器。例如,可为驱动器核A分配用于对分组进行排队并将分组传递到并发处理引擎340的驱动器缓冲器441。可为并发处理引擎340分配用于临时对将被传递到网络处理核B的分组进行排队的引擎缓冲器442。可为网络处理核B分配用于TCP/IP处理的TCP缓冲器443。可按照会话分配TCP缓冲器443,但不限于此。可为应用核C分配用于应用的数据处理的用户缓冲器447。尽管为了便于解释,图4描绘了每层单个缓冲器,但是每层可存在多个缓冲器。每个缓冲器可以以堆栈结构的存储器或队列的形式实现,但不限于此。每个缓冲器可以是电子装置201(例如,图1中的电子装置101)的存储器(例如,图1中的存储器130)的一部分。

根据实施例,网络驱动器320可在任意驱动器核A的控制下将从NIC接收的分组发送到并发处理引擎340的引擎缓冲器442。

例如,如果分组到达网络驱动器,则具有特定编号的核(例如,核1 411)被激活作为驱动器核A,其可控制并发处理引擎340的操作并且对接收到的分组在并发处理引擎340的引擎缓冲器442中进行排队。

并发处理引擎340可生成分组的会话ID,并且将会话ID信息和从接收到分组的驱动器核A的位置信息发送到核管理控制器330。

核管理控制器330可与接收到的分组的会话ID相关联地确定用于在用户域中处理应用360的应用核C的位置,并且向并发处理引擎340提供应用核C的位置信息。例如,核管理控制器330可基于应用核C的位置、驱动器核A的位置和会话分组处理量来确定用于TCP/IP堆栈处理的网络处理核B的位置。

并发处理引擎340可激活与基于从核管理控制器330接收的位置信息确定的位置相应的网络处理核B。并发处理引擎340可基于从核管理控制器330接收的位置信息来反映应用核C的变化的位置信息,并且分配网络处理核B,以便能力等于或高于应用核C的能力的核对分组进行处理。

网络处理核B可对在TCP缓冲器443中排队的分组执行TCP堆栈处理。例如,如果核3413由并发处理引擎340激活,则由核3索引的网络处理核B将在引擎缓冲器442中排队的分组发送到TCP缓冲器443,并对在TCP缓冲器443中排队的分组执行TCP/IP堆栈处理。

应用核C可基于分组的会话ID来处理由网络处理核B进行TCP/IP处理的分组。

根据实施例,TCP缓冲器443可被分配到至少一个区域。例如,TCP缓冲器443可被包括在Rx队列区域444和积压区域445中,其中,Rx队列区域444用于对将被传递到应用或由应用读取的分组(即,TCP处理的分组)进行排队,将被执行TCP/IP堆栈处理的分组被传递到积压区域445。Rx队列区域444可存储由网络处理核B进行TCP/IP处理的分组。

根据实施例,网络处理核B可对积压区域445中的分组进行排队以用于TCP/IP堆栈处理,同时应用360将分组从Rx队列区域444输出到用户域。

根据实施例,与分组的会话ID相关联的应用可对在积压区域445中排队的所有分组进行批处理,同时应用核C对在Rx队列区域444中排队的所有经TCP处理的分组进行处理。

根据各种实施例,所提出的电子装置能够通过确定允许具有等于或大于在较高层中操作的能力的核在较低层中操作来对在较低层中处理的分组进行最佳批处理,并将最佳批处理的分组传递到较高层,从而提高多核性能。

图5是示出根据本公开的实施例的分组处理操作的示图。

在现有技术的基于接收分组转向(RPS)的技术中,如果从网络驱动器接收到分组,则在没有任何优先级顺序的情况下,在多个核中任意选择网络处理核来执行TCP/IP处理。在基于接收流转向(RFS)的技术中,选择应用590正在其上运行的具有核编号(核N)的网络处理核来执行TCP/IP处理。根据现有技术,在不考虑核的处理能力和执行应用的核的位置的情况下选择网络处理核,这引起应用核和驱动器核之间的性能差异,导致无法充分利用多核处理性能。此外,如果分组集中在特定会话中,则这可能使核过载,从而导致分组处理性能下降。

参照图5,包括多核(例如,图2中的多核210和图4中的多核410)的电子装置(例如,图1中的电子装置101和图2中的电子装置201)可基于分组的会话ID来确定应用核的位置,并且基于驱动器核的位置和会话的分组处理量来确定用于TCP/IP堆栈处理的网络处理核的位置(例如,编号或集群类型)。根据各种实施例,考虑到较低层和较高层的核的性能所确定的网络处理核对分组执行网络堆栈处理,这提高了基于多核的批处理性能。

根据实施例,如果分组510到达网络驱动器,则可激活核1的驱动器核。与分组相关联的应用可对由核N的应用核进行TCP/IP堆栈处理的分组进行处理。核1的驱动器核可将分组发送到并发处理引擎(例如,图3a和3b中的并发处理引擎340),如附图标记520所示。然后,并发处理引擎可基于从核管理控制器接收的位置信息将用于执行TCP/IP堆栈处理的网络处理核分配到核2。可考虑应用核的位置(核2)、驱动器核的位置(核1)和分组会话的处理量来确定网络处理核的位置。

如果核1的驱动器核激活核2的网络处理核,则并发处理引擎可将分组发送到TCP缓冲器(例如,图4中的TCP缓冲器443)。网络处理核可对TCP缓冲器中排队的分组执行TCP/IP堆栈处理。应用可输出由核N的应用核进行TCP/IP堆栈处理的分组。

根据实施例,应用的位置可根据电子装置的操作状态从核N移动到核2。例如,可根据应用执行位置(例如,前台和后台)和核负载值来动态地改变在用户域中执行应用的应用核的位置590。

如果应用核的位置从位置590改变到位置591,则并发处理引擎可将网络处理核的位置从核2位置550改变到核3位置551。并发处理引擎可将位置531处的分组发送到核3中的TCP缓冲器。核3的网络处理核可对分组执行TCP/IP堆栈处理。核2的应用核可对由核3的网络处理核处理的分组进行处理。

根据实施例,包括多核的电子装置可考虑应用核的位置或驱动器核的位置来确定网络堆栈处理核。

图6是示出根据本公开的实施例的电子装置的分组处理操作的图。

参照图6,包括多核(例如,图2中的多核210和图4中的多核410)的电子装置(例如,图1中的电子装置101和图2中的电子装置201)可确定应用核的编号(或集群类型)以及用于TCP/IP堆栈处理的网络处理核的编号(或集群类型),以改变用于处理分组的应用核的位置。

例如,考虑到应用核的位置、驱动核的位置和每个会话的处理量,电子装置可将核3的位置650确定为用于TCP/IP堆栈处理的网络处理核。驱动器核可控制并发处理引擎在TCP缓冲器中对分组进行排队。核3的网络处理核可对在TCP缓冲器(例如,图4中的TCP缓冲器443)中排队的分组执行TCP/IP堆栈处理。

例如,读出并处理经TCP/IP堆栈处理的分组的应用核可将其位置从核N位置690移动到核2位置691。在图6中,在核N的应用核中操作的应用可以是由应用核编号(例如,集群类型)预先确定的应用。当接收到的分组的会话处理量等于或大于预定水平时,电子装置可改变应用核的位置690。例如,如果接收到的分组的会话处理量达到中等或高水平,则电子装置可通过反映预定核的位置来将应用核的位置从核N位置690改变到核2位置691。如果接收到的分组的会话处理量是低水平,则电子装置可保持应用核的位置690。在应用核的位置是否从核N位置690改变到核2位置691的情况下,核2的应用核可读出并处理经TCP/IP堆栈处理的分组。

图7是示出根据本公开的实施例的确定用于对分组进行处理的核的方法的流程图。

参照图7,操作710至770可由包括多核(例如,图2中的多核210和图4中的多核410)的电子装置(例如,图1中的电子装置101和图2中的电子装置201)执行。

根据实施例,在操作710,电子装置101可经由NIC(例如,图3a和图3b中的NIC 315)接收至少一个分组。

在操作720,电子装置可基于接收到的分组来激活多核的多个核中的具有任意编号X的驱动器核A。

根据实施例,核可在通信处理器的控制下被激活。核可以是具有预定默认编号的核或被随机选择的核。核可以是在睡眠模式下在核之中被选择的核。

在操作730,电子装置中具有编号X的驱动器核A可在并发处理引擎(例如,图3a和3b中的并发处理引擎340、图5中的并发处理引擎540和图6中的并发处理引擎640)的引擎缓冲器(例如,图4中的引擎缓冲器442)中对接收到的分组进行排队。

根据实施例,并发处理引擎可生成接收到的分组的会话ID,并且将分组的会话ID和已经将分组发送到并发处理引擎的驱动器核A的编号信息发送到核管理控制器(例如,图2中的核管理控制器230以及图3a和图3b中的核管理控制器330)。核管理控制器可考虑驱动器核A的位置(例如,编号X)、与分组相关联的应用核C的位置(例如,编号Y)以及分组处理量来确定网络核B的位置(例如,编号或集群类型)。

在操作740,电子装置的驱动器核A可从核管理控制器接收网络处理核的位置信息。

在操作750,驱动器核A可激活与从位置信息获取的位置相应的网络处理核B。网络处理核B可将存储在并发处理引擎中的分组发送到TCP缓冲器。

根据实施例,如果网络处理核的位置指示集群类型,则电子装置的驱动器核A可激活属于相应集群类型的核之一。

在操作760,电子装置的网络处理核B可对分组执行TCP/IP处理。

在操作770,电子装置的应用核C可对由网络处理核B进行TCP/IP处理的分组进行处理。应用核C可以是用于操作与接收到的分组的会话ID相关联的应用的核。

根据实施例,操作760和770可同时或并行执行。例如,分配到TCP/IP堆栈的TCP缓冲器可包括用于对经TCP/IP处理的分组进行排队的Rx缓冲器和用于在分组被处理之前对分组进行排队的积压缓冲器。应用核C可对在Rx缓冲器中排队的分组进行处理,并且同时或并行地,网络处理核B可对在积压缓冲器中排队的分组执行TCP/IP堆栈处理。

根据各种实施例,电子装置(例如,图1中的电子装置101和图2中的电子装置201)可包括通信装置(例如,图1中的通信模块190)、由在驱动器核A层、网络处理核B层和应用核C层中的至少一个层中操作的用于处理分组的多个核组成的多核(例如,图2中的多核210)、以及存储可由多个核中的至少一个核执行的指令的存储器(例如,图1中的存储器130和图2中的存储器240),其中,所述指令用于检查将由通信装置接收的分组传递到OS域的驱动器核的位置、用于在用户域中处理分组的应用核的位置以及与所接收的分组相应的会话的处理量,基于驱动器核的位置和应用核的位置以及会话的处理量中的至少一个来确定核中的网络处理核的位置,并且在所定位的网络处理核处对传递到OS域的分组执行网络堆栈处理。

根据实施例,网络处理核的位置是根据能力差异分类的核类型的核编号或集群信息,网络处理核的位置可以是根据性能差异分类的核编号或集群类型集群信息。

根据实施例,所述指令使多核中的一个核通过选择核编号来确定网络处理核的位置,以控制网络处理核层。

根据实施例,多个核被分类为第一集群类型和第二集群类型之一,并且所述指令使多核中的至少一个核确定网络处理核的集群类型并且通过随机选择属于所确定的集群类型的核编号来确定网络处理核的位置,以确定网络处理核的位置。

根据实施例,所述指令使多核的核激活多个核中具有任意核编号X的驱动器核,通过具有核编号X的驱动器核将分组发送到操作系统域,在具有核编号X的驱动器核处获取所确定的网络处理核的位置,基于所获取的网络处理核的位置通过具有核编号X的驱动器核将分组发送到具有核编号Z的网络处理核,在具有核编号Z的网络处理核处对接收到的分组进行网络堆栈处理,并且在具有任意核编号Y的应用核处对由具有核编号Z的网络处理核处理的分组进行处理。

根据实施例,所述指令使多核的核:通过批处理在数量上与由网络处理核配置的预定参考处理量相应的分组来进行处理。

根据实施例,电子装置包括在操作系统域中进行操作的并发处理引擎和核管理控制器,其中,所述指令使并发处理引擎:生成来自驱动器核的分组的会话标识信息,将会话标志信息和将分组发送到并发处理引擎的驱动器核的核编号发送到核管理控制器,从核管理控制器获取网络处理核的位置,并且将从驱动器核接收的分组发送到所确定的位置处的网络处理核。

根据实施例,所述指令使核管理控制器:基于接收到的分组的会话标识信息、驱动器核的核编号、处理分组的应用核的核编号和会话的分组处理量信息中的至少一个来确定网络处理核的核编号,并且将网络处理核的核编号发送到并发处理引擎。

根据实施例,所述指令使得多核中的至少一个核:通过基于分组的会话标识信息来监测处理分组的应用的操作以确定应用核的位置,并且基于改变应用核的位置的条件被满足来改变核之中的处理分组的应用核的位置,基于确定与分组相关联的应用相应的核的位置未被指定,根据应用是在前台运行还是后台运行来确定应用核的位置。根据实施例,所述指令使多核中的至少一个核执行以下操作中的至少一个:基于确定用于与分组相关联的应用的核的位置被指定,利用该核的指定位置来识别应用核的位置,基于确定与分组相关联的应用相应的核的位置未被指定,根据应用是在前台运行还是后台运行来确定应用核的位置,并且通过与应用的分组处理相关的学习来确定应用核的位置。

图8是示出根据本公开的实施例的确定用于处理分组的核的方法的流程图。

参照图8,在操作810,包括多核(例如,图2中的多核210)的电子装置(例如,图1中的电子装置101和图2中的电子装置201)可通过NIC(例如,图3a和3b中的NIC 315)接收分组。

在操作820,电子装置可在接收到分组时激活多核的多个核中由编号X标识的驱动器核A。

在操作830,电子装置中由编号X标识的驱动器核A可将接收到的分组在并发处理引擎(例如,图3a和3b中的并发处理引擎340)的引擎缓冲器(例如,图4中的引擎缓冲器442)中进行排队。

在操作840,并发处理引擎生成分组的会话ID,并且从核管理控制器(例如,图2中的核管理控制器230和图3a和3b中的核管理控制器330)接收网络处理核B的编号Y。例如,可通过图9的操作910至操作960来执行操作840,以获取网络处理核B的位置信息(例如,编号Y)。

根据实施例,并发处理引擎可检查接收到的分组的会话ID,将已经将分组传递到并发处理引擎的驱动器核A的编号X发送到核管理控制器,并且从核管理控制器接收网络处理核B的编号Y。

根据实施例,核管理控制器可考虑与分组的会话ID相关联的应用核的位置、驱动器核的位置和每个会话处理量来确定用于执行TCP/IP堆栈处理的网络处理核B的编号。

根据实施例,核管理控制器可将网络处理核B的编号信息发送到并发处理引擎。并发处理引擎可分配由相应编号标识的网络处理核B用于处理接收到的分组。

在操作850,驱动器核A可激活由编号Y标识的网络处理核B。

在操作860,由编号Y标识的网络处理核B可输出来自引擎缓冲器的分组,并且将分组在TCP缓冲器中进行排队。

在操作870,由编号Y标识的网络处理核B可对在TCP缓冲器中排队的分组执行TCP/IP处理。

在操作880,应用核C可对经TCP/IP处理的分组进行处理。

尽管描述了电子装置控制图9和图10的操作,但是可理解,图3a和图3b中描绘的核管理控制器或控制多核的处理器控制所述操作。

图9是示出根据本公开的实施例的用于多核电子装置确定用于处理分组的核的方法的流程图。

参照图9,包括多核(例如,图2中的多核210和图4中的多核410)的电子装置(例如,图1中的电子装置101和图2中的电子装置201)可确定用于对分组执行网络堆栈(例如,TCP/IP堆栈)处理的网络处理核B的位置。尽管描述了电子装置控制操作910至操作960,但是可理解,核管理控制器(例如,图2中的核管理控制器230和图3a和3b中的核管理控制器330)或控制多核的处理器(例如,图1中的处理器120)可控制所述操作。

在操作910,电子装置可从并发处理引擎(例如,图3a和3b中的并发处理引擎340、图5中的并发处理引擎540和图6中的并发处理引擎640)接收分组的会话ID。在操作920,电子装置可获取关于每个应用会话的会话处理信息。在操作930,电子装置可获取已经将分组发送到并发处理引擎的驱动器核的位置信息(例如,核编号)。在操作940,电子装置可获取用于对与会话ID相关联的分组进行处理的应用核C的位置信息(例如,核编号或者集群类型)。

在操作950,电子装置可基于会话处理信息、核策略信息、驱动器核A的位置X和应用核C的位置Z来确定网络处理核B的位置Y。在操作960,电子装置可将关于网络处理核B的编号Y的信息发送到并发处理引擎。

图10是示出根据本公开的实施例的用于多核电子装置确定用于处理分组的核的方法的流程图。

参照图10,包括多核(例如,图2中的多核210和图4中的多核410)的电子装置(例如,图1中的电子装置101和图2中的电子装置201)可针对改变来监测用户域中处理数据的应用核的位置,并且基于应用核的改变的位置来确定网络处理核B的位置。

在操作1010,电子装置可在用户域中检测处理TCP缓冲器中排队的分组的应用。

在操作1020,电子装置可基于应用ID获取处理应用数据的应用核C的编号“a”。

根据实施例,电子装置可基于从包括在网络处理堆栈(例如,TCP/IP堆栈)中的代理接收的应用ID来获取应用核C的位置信息(例如,核编号或集群类型)。

在操作1030,电子装置可监测应用操作状态。

在操作1040,电子装置可确定应用核的位置。

根据实施例,电子装置可基于应用ID检查在核对应用进行处理的时间内的应用操作状态和正被处理的分组的数量,并且如果预定集群类型的核的使用大于阈值操作值,则将相应核的集群类型指定为处理应用的主核的位置。

根据实施例,电子装置可基于应用是在前台还是在后台运行来指定应用核的位置。

根据实施例,电子装置可为特定应用预先指定核位置,或者通过机器学习指定应用核的位置。

在操作1050,电子装置可根据应用核的位置来确定应用的分组处理量的处理量阈值。

根据实施例,电子装置可基于应用核的位置信息、将分组传递到并发处理引擎的驱动器核的位置信息和应用的特征信息来改变应用的分组处理量的阈值。

根据实施例,电子装置可根据处理应用的主核的位置来改变分组处理量的阈值。

根据实施例,电子装置可基于应用是在前台运行还是在后台运行来改变分组处理量的阈值。

根据实施例,电子装置可基于预先配置的信息来改变分组处理量的阈值,或者如果通过学习指定了应用核的位置,则可基于核的指定位置来改变分组处理量的阈值。

在操作1060,电子装置可更新应用信息。在操作1070,电子装置可通过应用更新的信息来确定网络处理核和/或应用核中的至少一个。

图11是示出根据本公开的实施例的用于多核电子装置确定用于处理分组的核的方法的流程图。

参照图11,在操作1110,包括多核(例如,图2中的多核210和图4中的多核410)的电子装置(例如,图1中的电子装置101和图2中的电子装置201)可检查处理接收到的分组的应用(或app)的状态。在操作1120,电子装置可确定应用是否正在前台运行。如果确定应用正在前台运行,则在操作1130,电子装置可确定是否存在在前台运行的应用的核映射。如果确定应用不在前台运行,则在操作1125,电子装置可确定是否存在在后台运行的应用的核映射。例如,应用的核映射可以是基于应用ID指示预先指定的核的位置的信息。

如果在操作1130或1125确定存在相应应用的核映射,则在操作1140,电子装置可根据应用核映射来指定用于TCP/IP堆栈处理的RPS核的集群类型位置。例如,RPS核可以是网络处理核。如果确定不存在相应应用的核映射,则流程进行到操作1150。

在操作1145,电子装置可确定是否需要更新应用核。根据实施例,如果应用核映射中指定的核的位置与用户域中处理数据的应用核的位置不同,则电子装置可确定需要更新应用核映射。根据实施例,如果经过了预定用于更新核映射的时段,则电子装置可确定需要更新应用核映射。

在操作1150,电子装置可确定并存储用于在用户域中处理数据的应用核的位置。在操作1155,电子装置可确定相同应用核位置确定结果的次数是否达到N,如果是,则在操作1160,核可更新相应应用的核映射。在操作1170,电子装置可考虑基于应用核位置确定结果而确定的应用核的位置信息来配置用于TCP/IP堆栈处理的RPS核。

图12是示出根据本公开的实施例的用于多核电子装置确定用于处理分组的核的方法的流程图。

参照图12,在操作1210,包括多核(例如,图2中的多核210和图4中的多核410)的电子装置(例如,图1中的电子装置101和图2中的电子装置201)可激活多核的多个核中的具有编号X的驱动器核A。在操作1220,电子装置中的具有编号X的驱动器核A可将分组发送到并发处理引擎。在操作1230,电子装置的驱动器核A可获取基于驱动器核A的位置X和应用核C的位置Y确定的网络处理核B的位置。

在操作1240,与由电子装置获取的位置相应的网络处理核B可对接收到的分组执行TCP/IP处理。

在操作1250,电子装置可确定应用核C的位置是否被改变。例如,电子装置可通过执行参照图10或图11描述的操作来确定应用核C的位置是否被改变。

如果在操作1250确定应用核C的位置被改变,则在操作1270,具有改变的核编号W的应用核C'可处理由网络处理核B进行TCP/IP处理的分组。如果在操作1250确定应用核C的位置未被改变,则在操作1260,具有核编号Y的应用核C可处理由网络处理核B进行TCP/IP处理的分组。

根据各种实施例,电子装置(例如,图1中的电子装置101和图2中的电子装置201)可包括通信装置(例如,图1中的通信模块190)、由在驱动器核A层、网络处理核B层和应用核C层中的至少一个层中操作的多个核组成的多核(例如,图2中的多核210)、存储器(例如,图1中的存储器130和图2中的存储器240)和处理器(例如,图1中的处理器120);处理器可进行控制以检查作为多核的多个核之一的用于在经由通信装置接收到至少一个分组时将分组发送到OS域的驱动器核的位置、在用户域中处理分组的应用核的位置、以及与接收到的分组相应的会话的处理量,基于驱动器核的位置、应用核的位置和会话的处理量中的至少一个确定核中的网络处理核的位置,并且控制多个核中的所确定的位置处的网络处理核对分组执行网络堆栈处理。

根据实施例,处理器被配置为通过选择核编号来确定网络处理核的位置,以控制网络处理核层。

根据实施例,多个核被分类为第一集群类型和第二集群类型之一,并且处理器被配置为进行控制以确定网络处理核的集群类型,并通过选择属于所确定的集群类型的核编号来确定网络处理核的位置,以确定网络处理核的位置。

根据实施例,处理器被配置为进行控制以激活多个核中具有任意核编号X的驱动器核,通过具有核编号X的驱动器核将分组发送到操作系统域,在具有核编号X的驱动器核处获取所确定的网络处理核的位置,基于所获取的网络处理核的位置通过具有核编号X的驱动器核将分组发送到具有核编号Z的网络处理核,在具有核编号Z的网络处理核处对接收到的分组执行网络堆栈处理,并且在具有任意核编号Y的应用核处对由具有核编号Z的网络处理核处理的分组进行处理。

根据实施例,处理器被配置为进行控制以通过在操作系统域中对在数量上与由网络处理核配置的预定参考处理量相应的分组进行批处理来进行处理。

根据实施例,电子装置包括并发处理引擎,其中,并发处理引擎在操作系统域中进行操作并且被配置为生成来自驱动器核的分组的会话标识信息,将会话标识信息和将分组发送到并发处理引擎的驱动器核的核编号发送到处理器,从处理器获取网络处理核的位置,并且将分组发送到所确定的位置的网络处理核。

根据实施例,处理器被配置为基于接收到的分组的会话标识信息、驱动器核的核编号、处理分组的应用核的核编号和会话的分组处理量信息中的至少一个来确定网络处理核的核编号,并将网络处理核的核编号发送到并发处理引擎,其中,并发处理引擎被配置为将分组发送到与接收到的核编号相应的网络处理核。

根据实施例,处理器被配置为进行控制以通过基于分组的会话标识信息监测处理分组的应用的操作来确定应用核的位置,并且基于改变应用核的位置的条件被满足来改变核中的处理分组的应用核的位置。

根据实施例,处理器被配置为进行控制以基于确定用于与分组相关联的应用的核的位置被指定,利用核的指定的位置来识别应用核的位置,基于确定与和分组相关联的应用相应的核的位置未被指定,根据应用是在前台还是在后台运行来确定应用核的位置,或者通过与应用的分组处理相关的学习来确定应用核的位置。

图13a、图13b和图13c是示出根据本公开的各种实施例的效果的曲线图。

参照图13a,曲线图以比较的方式示出了用于在会话期间处理相同数量的分组的现有技术和所提出的技术的电流消耗。附图标记1310表示用于处理分组的现有技术的消耗电流量,并且附图标记1320表示根据各种公开的实施例之一选择的核对分组进行处理的所提出的技术的消耗电流量。例如,与在会话的分组处理量等于或大于阈值的情况下选择用于网络堆栈处理的大型核的现有技术不同,即使当会话的分组处理量等于或大于阈值时,所提出的技术也可基于应用核和驱动器核的位置来确定用于网络堆栈处理的核。在使用所提出的技术的情况下,通过考虑会话的处理量以及应用核和驱动核的位置信息来确定用于对接收到的分组执行网络堆栈处理的核,可最大化批处理效率。参照图13a,与现有技术相比,所提出的技术将电流消耗效率提高了11%。图13b是以比较的方式示出了现有技术和所提出的技术在会话期间的吞吐量的图。参照图13b,附图标记1330表示现有技术的RPS技术的分组处理量,附图标记1340表示现有技术的分组处理量,并且附图标记1350表示所提出的技术的分组处理量,在所提出的技术中,分组由考虑应用核的位置而确定的核以及用于执行网络堆栈处理的核来处理。例如,在随机选择用于执行网络堆栈处理的核的情况下,可能由于相对低性能的核执行TCP/IP处理,导致对从驱动器核传递的分组进行批处理的效率低。所提出的技术能够通过考虑会话的分组处理量以及应用核和驱动器核的位置来确定用于对经批处理的分组进行处理的核,从而有效地处理分组。参照图13b,与现有技术相比,通过以最大化批处理吞吐量的方式选择层核,所提出的技术将分组处理量提高了6%-67%。图13c是以比较的方式示出了用于在两个会话期间处理相同数量的分组的现有技术和所提出的技术的电流消耗的曲线图。附图标记1360表示用于处理分组的现有技术的消耗电流量,并且附图标记1370表示所提出的技术的消耗电流量,在所提出的技术中根据各种公开的实施例之一选择的核对分组进行处理。与现有技术不同,在使用所提出的技术的情况下,可通过确定用于处理每个会话的分组的核的位置来最大化批处理效率。参照图13c,与现有技术相比,所提出的技术将电流消耗效率提高了6%。

虽然已经参照本公开的各种实施例示出和描述了本公开,但是本领域技术人员将理解,在不脱离由所附权利要求及其等同物限定的本公开的精神和范围的情况下,可在其中进行形式和细节上的各种改变。

39页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:所执行代码中的错误识别

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!