CN112352404B - 用于处理电子设备的数据分组的装置和方法 - Google Patents
用于处理电子设备的数据分组的装置和方法 Download PDFInfo
- Publication number
- CN112352404B CN112352404B CN201980041797.0A CN201980041797A CN112352404B CN 112352404 B CN112352404 B CN 112352404B CN 201980041797 A CN201980041797 A CN 201980041797A CN 112352404 B CN112352404 B CN 112352404B
- Authority
- CN
- China
- Prior art keywords
- core
- data packets
- data packet
- data
- electronic device
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/65—Re-configuration of fast packet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
- H04L49/602—Multilayer or multiprotocol switching, e.g. IP switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9021—Plurality of buffers per packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
- H04W28/065—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
- Communication Control (AREA)
Abstract
公开了一种电子设备,该电子设备包括:无线通信调制解调器,与通信调制解调器连接并包括多个核的至少一个处理器,以及与处理器可操作地连接的非易失性存储器,其中,该非易失性存储器存储指令,该指令使得该处理器的第一核:从无线通信调制解调器接收具有第一大小的第一数据分组,并将第一数据分组的至少一部分发送到处理器的第二核,并且使得第二核从第一核接收第一数据分组的至少一部分,至少部分地基于第一数据分组的类型,将第一数据分组的至少一部分合并到具有大于第一大小的大小的多个第二数据分组,以及将第二数据分组发送到处理器的除第一核和第二核之外的至少另一个核。
Description
技术领域
本公开总体上涉及一种电子设备,并且更具体地,涉及一种可以高速处理接收到的数据分组的电子设备的数据分组处理装置和方法。
背景技术
电子设备可以在与其他电子设备进行通信时,处理各种类型的内容的大数据分组,例如,高分辨率图像、视频和音乐。
电子设备可以通过高速通信调制解调器接收高速的大数据分组。例如,与第四代(4G)移动通信相比,第五代(5G)移动通信可以提供高吞吐量(例如,每秒2吉比特(Gbps)-10Gbps)以及低延迟通信服务。电子设备可能需要能够处理高速接收到的大数据分组而不会延迟的数据分组处理。例如,在以流传输方法接收到数据分组的情况下,电子设备无延迟地处理接收到的数据分组非常重要。
电子设备可以应用数据分组分发和数据分组合并方法来增强数据分组的吞吐量的性能,例如,设备驱动器。当电子设备分发数据分组时,由于合并数据分组所需的时间,在处理数据分组中可能存在延迟。
这样,在本领域中需要一种消除通信系统中数据分组合并中的这种延迟的方法和装置。
发明内容
技术方案
本公开的一方面在于至少解决上述问题和缺点,并至少提供下述优点。因此,本公开的一方面在于提供一种用于通过对接收到的数据分组的类型进行分类并将数据分组分发给多个核来高速处理数据分组的装置和方法。
本公开的另一方面在于提供一种装置和方法,该装置和方法可以配置用于对接收到的数据分组进行分类并将数据分组分发到多个核的设备驱动器,以独立地具有读出接收到的数据分组的配置以及执行通用接收减负(GRO)和接收分组控制(RPS)的配置。
本公开的另一方面在于提供一种装置和方法,该装置和方法可以对设备驱动器的接收缓冲器(Rx队列)的分组进行分类并且将该分组分发给多个核,并使多个核能够关于分类后的各个数据分组执行GRO和RPS。
根据本公开的一方面,一种电子设备包括:无线通信调制解调器;与通信调制解调器连接并包括多个核的至少一个处理器;以及与处理器可操作地连接的非易失性存储器,其中,当所述处理器被执行时,非易失性存储器存储有指令,该指令使处理器的第一核从无线通信调制解调器接收具有第一大小的第一数据分组,并将第一数据分组的至少一部分发送到处理器的第二核,以及使第二核从第一核接收第一数据分组的至少一部分,至少部分地基于第一数据分组的类型,将第一数据分组的至少一部分合并为具有大于第一大小的大小的多个第二数据分组,以及将第二数据分组发送到处理器的除第一核和第二核之外的至少一个其他核。
根据本公开的另一方面,一种用于处理电子设备的数据分组的方法包括:第一数据分组处理操作,用于分发接收到的数据分组并将数据分组存储在待办事项队列中;以及第二数据分组处理操作,用于处理存储在待办事项队列中的数据分组并将数据分组传递到上层,其中,第一数据分组处理操作包括:由第一核从无线通信调制解调器接收具有第一大小的第一数据分组,并将第一数据分组的至少一部分发送到处理器的第二核;以及由第二核从第一核接收第一数据分组的至少一部分,至少部分地基于第一数据分组的类型,将第一数据分组的至少一部分合并为具有大于第一大小的大小的多个第二数据分组,以及将第二数据分组存储在至少一个网络堆栈核的待办事项队列中。
根据本公开的另一方面,一种电子设备包括:无线通信调制解调器;以及至少一个处理器,其与通信调制解调器可操作地连接并且包括多个核,其中,处理器包括:第一数据分组处理单元,所述第一数据分组处理单元被配置为处理接收到的数据分组,并将所述数据分组存储在待办事项队列中;以及第二数据分组处理单元,所述第二数据分组处理单元被配置为处理存储在所述待办事项队列中的所述数据分组并将所述数据分组传递到上层,其中,所述第一数据分组处理单元包括:第一核,所述第一核被配置为从所述无线通信调制解调器接收具有第一大小的第一数据分组,并且将所述第一数据分组的至少一部分发送到所述处理器的第二核;以及所述第二核,被配置为从所述第一核接收所述第一数据分组的至少一部分,至少部分地基于所述第一数据分组的类型,将所述第一数据分组的所述至少一部分合并为具有大于所述第一大小的大小的多个第二数据分组,以及将所述第二数据分组发送到至少一个网络堆栈核。
附图说明
通过以下结合附图的描述,本公开的某些实施例的上述和其他方面、特征和优点将变得更加明显,其中:
图1是根据实施例的网络环境中的电子设备的框图;
图2A示出了根据实施例的电子设备的数据分组处理操作;
图2B示出了根据实施例的电子设备的数据分组处理操作;
图3示出了根据实施例的电子设备的数据分组处理操作;
图4示出了根据实施例的电子设备的数据分组处理操作;
图5示出了根据实施例的电子设备的数据分组处理操作;
图6A示出了根据实施例的在电子设备中处理数据分组的第一示例;
图6B示出了根据实施例的在电子设备中处理数据分组的第二示例;
图6C示出了根据实施例的在电子设备中处理数据分组的第三示例;
图6D示出了根据实施例的在电子设备中处理数据分组的第四示例;
图7示出了根据实施例的电子设备的数据分组处理操作;以及
图8示出了根据实施例的在电子设备中基于接收到的数据分组的处理状态来处理数据分组的操作。
具体实施方式
在下文中,将参考附图描述各种实施例。在附图中,相同的附图标记指代相同的元件,并且为了方便起见,可以夸大每个组件的尺寸。为了清楚和简洁起见,将省略这里结合的已知功能和配置的详细描述。
本文所使用的术语并不旨在将本文所阐述的技术特征限制于特定实施例,而是包括对相应实施例的各种改变、等同或替换。应当理解,除非相关上下文清楚地另外指出,否则与项目相对应的名词的单数形式可以包括一个或更多个项目。
如这里所使用的,诸如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的至少一个”以及“A、B或C中的至少一个”的短语中的每一个短语可包括在与所述多个短语中的相应一个短语中一起列举出的项的所有可能组合。如这里所使用的,诸如“第1”和“第2”或者“第一”和“第二”的术语可用于将相应部件与另一部件进行区分,并且不限制部件的重要性或顺序。应当理解,如果第一元件被称为结合或不结合术语“可操作地”或“通信地”“耦接”、“耦接至”、“连接”或“连接至”第二元件,则第一元件可以与第二元件直接地(诸如有线地或无线地)耦接,或者可以经由第三元件与第二元件耦接。
根据本文公开的实施例的电子设备可以是各种类型的设备,诸如便携式通信设备(例如,智能电话)、计算机设备、便携式多媒体设备、便携式医疗设备、相机、可穿戴设备和家用电器中的至少一个。电子设备不限于上述设备。
图1是示出了根据实施例的网络环境100中的电子设备101的框图。参照图1,电子设备101可以经由第一网络198(例如,短距离无线通信网络)与电子设备102通信,或者可以经由第二网络199(例如,长距离无线通信网络)与电子设备104或服务器108通信。电子设备101可以经由服务器108与电子设备104通信,并且可以包括处理器120、存储器130、输入设备150、声音输出设备155、显示设备160、音频模块170、传感器模块176、接口177、触觉模块179、相机模块180、电力管理模块188、电池189、通信模块190、用户识别模块(SIM)196或天线模块197。可以从电子设备101中省略组件中的至少一个,或者可以在电子设备101中添加一个或更多个其他组件。某些组件可以实现为单个集成电路。例如,传感器模块176(例如,指纹传感器、虹膜传感器或照度传感器)可以被实现为嵌入在显示设备160中。
处理器120可以执行程序140以控制至少一个其他组件,例如电子设备101的与处理器120耦接的硬件或软件组件,并且可以执行各种数据处理或计算。作为数据处理或计算的至少一部分,处理器120可以将从另一组件接收的命令或数据加载到易失性存储器132中,处理易失性存储器132中存储的命令或数据,并将结果数据存储在非易失性存储器134中。处理器120可以包括主处理器121(例如,中央处理单元(CPU)或应用处理器(AP))和可以独立于主处理器121或与主处理器121结合使用的辅助处理器123(例如,图形处理单元(GPU)、图像信号处理器(ISP)、传感器集线器处理器或通信处理器(CP))。另外地或可替代地,辅助处理器123可以适合于比主处理器121消耗更少的功率,或者可以是功能特定的,并且可以被实现为与主处理器121分离或作为其一部分。
当主处理器121处于非活动(例如,睡眠)状态时,辅助处理器123可以代替主处理器121控制与电子设备101的组件中的至少一个组件相关的功能或状态中的至少一些,或在主处理器121处于活动状态时与主处理器121一起控制与电子设备101的组件中的至少一个组件相关的功能或状态中的至少一些。辅助处理器123可以被实现为在功能上与辅助处理器123相关的另一组件的一部分,例如相机模块180或通信模块190。
可以包括易失性存储器132和非易失性存储器134的存储器130可以存储由电子设备101的至少一个组件使用的各种数据。各种数据可以包括程序140和用于与输入数据或输出数据相关的命令的输入数据或输出数据。程序140可以作为软件存储在存储器130中,并且可以包括操作系统(OS)142、中间件144或应用146。
输入设备150可以从电子设备101的外部(例如,用户)接收要由电子设备101的其他组件使用的命令或数据,并且可以包括麦克风、鼠标或键盘。
声音输出设备155可以将声音信号输出到电子设备101的外部,并且可以包括扬声器或接收器。扬声器可以用于一般目的,例如播放多媒体或播放唱片,而接收器可以用于来电。接收器可以被实现为与扬声器分开或作为扬声器的一部分。
显示设备160可以在视觉上向电子设备101的用户提供信息,并且可以包括显示器、全息图设备或投影仪、控制显示器、全息图设备和投影仪中的相应一个的控制电路以及适于检测触摸的触摸电路,或者适于测量由触摸引起的力的强度的传感器电路(例如,压力传感器)。
音频模块170可以将声音转换成电信号,反之亦然,并且可以经由输入设备150获得声音,或者可以经由声音输出设备155或与电子设备101直接地(例如,有线)或无线地耦接的外部电子设备102的耳机输出声音。
传感器模块176可以检测电子设备101的操作状态(例如,功率或温度)或电子设备101外部的环境状态(例如,用户的状态),然后生成电信号或与检测到的状态对应的数据值。传感器模块176可以包括手势传感器、陀螺仪传感器、大气压传感器、磁传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(IR)传感器、生物特征传感器、温度传感器、湿度传感器或照度传感器。
接口177可以支持一种或更多种指定协议,以用于电子设备101与外部电子设备102直接(例如,有线地)或无线地耦接,并且可以包括高清晰度多媒体接口(HDMI)、通用串行总线(USB)接口、安全数字(SD)卡接口或音频接口。
连接端子178可以包括连接器,电子设备101可以通过该连接器与外部电子设备102物理连接,并且可以包括HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。
触觉模块179可以将电信号转换成可以由用户经由其触觉或运动感觉来识别的机械刺激(例如,振动或运动)或电刺激,并且可以包括电机、压电元件或电刺激器。
相机模块180可以捕获静止图像或运动图像,并且可以包括一个或更多个透镜、图像传感器、图像信号处理器或闪光灯。
电力管理模块188可以管理提供给电子设备101的电源,并且可以被实现为电源管理集成电路(PMIC)的至少一部分。
电池189可以向电子设备101的至少一个组件供电,并且可以包括不可充电的原电池、可充电的蓄电池或者燃料电池。
通信模块190可以支持在电子设备101与外部电子设备之间建立直接(例如,有线)通信信道或无线通信信道,并且经由所建立的通信信道来执行通信。通信模块190可以包括能够独立于处理器120运行的一个或更多个通信处理器,并支持直接(例如,有线)通信或无线通信,并且可以包括无线通信模块192(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星系统(GNSS)通信模块)或有线通信模块194(例如,局域网(LAN)通信模块或电力线通信(PLC)模块)。这些通信模块中的相应一个可以经由第一网络198(例如,短距离通信网络,诸如BluetoothTM、无线保真(Wi-Fi)直连或红外数据关联(IrDA))或第二网络199(例如,远程通信网络,例如蜂窝网络、互联网或计算机网络(例如,LAN或广域网(WAN)))与外部电子设备通信。可将这些各种类型的通信模块实现为单个组件(例如,单个芯片),或可将这些各种类型的通信模块实现为彼此分离的多个组件(例如,多个芯片)。无线通信模块192可使用存储在用户识别模块196中的用户信息(例如,国际移动用户识别码(IMSI))识别并验证通信网络(诸如第一网络198或第二网络199)中的电子设备101。
天线模块197可将信号或电力发送到电子设备101的外部(例如,外部电子设备)或者从电子设备101的外部(例如,外部电子设备)接收信号或电力,并且可以包括一个或更多个天线,并且从该一个或更多个天线中,通信模块190可以选择适合于在通信网络(例如,第一网络198或第二网络199)中使用的通信方案的至少一个天线。随后可经由所选择的至少一个天线在通信模块190和外部电子设备之间发送或接收信号或电力。
上述部件中的至少一些可经由外设间通信方案(例如,总线、通用输入输出(GPIO)、串行外设接口(SPI)或移动工业处理器接口(MIPI))相互连接并在它们之间通信地传递信号(例如,命令或数据)。
可经由与第二网络199连接的服务器108在电子设备101和外部电子设备104之间发送或接收命令或数据。电子设备102和104中的每一个可以是与电子设备101相同类型的设备,或者是与电子设备101不同类型的设备。在电子设备101上执行的所有或一些操作可以在外部电子设备102、104或108中的一个或多个上执行。例如,如果电子设备101应该自动执行功能或服务或者应该响应于来自用户或另一装置的请求执行功能或服务,则电子设备101可请求所述一个或更多个外部电子设备执行所述功能或服务中的至少部分,而不是运行所述功能或服务,或者电子设备101除了运行所述功能或服务以外,还可请求所述一个或更多个外部电子设备执行所述功能或服务中的至少部分。接收到所述请求的所述一个或更多个外部电子设备可执行所述功能或服务中的所请求的所述至少部分,或者执行与所述请求相关的另外功能或另外服务,并将执行的结果传递到电子设备101。电子设备101可在对所述结果进行进一步处理的情况下或者在不对所述结果进行进一步处理的情况下将所述结果提供作为对所述请求的至少部分答复。为此,可使用例如云计算技术、分布式计算技术或客户机-服务器计算技术。
本文中的电子设备可以是各种类型之一,包括但不限于便携式通信设备(例如,智能电话)、计算机设备、便携式多媒体设备、便携式医疗设备、相机、可穿戴设备或家用电器。
图2A示出了根据实施例的电子设备的数据分组处理操作,图2B示出了根据实施例的电子设备的数据分组处理操作。
参照图2A,电子设备可以包括调制解调器211和分组处理软件200。分组处理软件200可以包括第一数据分组处理单元213、第二数据分组处理单元215、应用框架217和应用219。分组处理软件200可以存储在存储器130中,并且可以在处理器120中执行。第一数据分组处理单元213可以包括至少一个网络设备(网络设备#1至网络设备#n)。例如,第二数据分组处理单元215可以是网络堆栈(传输控制协议(TCP)/互联网协议(IP)或用户数据报协议(UDP))。在图2A中,第一数据分组处理单元213、第二数据分组处理单元215和应用框架217可以被包括在中间件144中。调制解调器211可以由硬件配置。
电子设备的处理器120可以是在一个芯片(CPU芯片)中包括多个CPU核的多核处理器。例如,八核处理器可以包括八(8)个核。多核处理器可以包括消耗较少功率的低性能核(小核)和消耗大量功率的高性能核(大核)。小核和大核可以使用相同的存储区域,并且可以根据情况在大核和小核之间动态地分发任务。在下面的描述中,核可以用作包括处理器核或核的含义的术语。
AP 120可以经由调制解调器211接收数据分组并且可以经由调制解调器211发送数据分组。调制解调器211可以支持5G移动通信并且可以被包括在CP 123中。电子设备的AP可以经由调制解调器211将数据分组发送到外部电子设备102、104或服务器108,并且可以接收从外部电子设备或服务器发送的数据分组。
可以在控制与电子设备和/或操作系统相关的资源的操作系统143上驱动应用219。操作系统可以包括AndroidTM、LinuxTM、iOSTM、WindowsTM、SymbianTM、TizenTM或BadaTM。应用框架217可以共同提供应用219所需的功能,或者可以向应用219提供使应用219能够使用电子设备中的受限系统资源的各种功能。
电子设备的应用219可以经由应用框架217和第二数据分组处理单元215发送和接收数据分组。第二数据分组处理单元215可以包括网络层,诸如TCP、UDP或IP。第二数据分组处理单元215可以经由第一数据分组处理单元213将数据分组发送到调制解调器211,或者可以从调制解调器211接收数据分组。第一数据分组处理单元213可以包括网络设备(诸如调制解调器、局域网(LAN)卡、近场通信(NFC)、无线保真(Wi-Fi)、显示器、音频或视频)的设备驱动器。
例如,图2A示出了内核的结构,该内核包括诸如网络堆栈的第二数据分组处理单元215和诸如网络设备驱动器的第一数据分组处理单元213。经由调制解调器211接收的数据分组可以通过内核的网络设备驱动器向上移动到网络堆栈,并且上层的应用219可以使用相应的分组。
内核中的第一数据分组处理单元213(网络设备)可以以新的应用程序接口(API)(NAPI)或netif_rx方法进行操作。每当发生中断时,netif_rx方法都可以处理接收到的数据分组。当接收到中断时,NAPI方法可以切换到轮询(polling)模式,并且可以一次处理预定数量的数据分组。当接收到中断时,第一数据分组处理单元213可以从调制解调器211获取与napi_weight一样多的数据分组,并且可以释放诸如处理核的资源,然后可以等待下一个调度。
用于处理接收到的数据分组的方法可以包括:每当硬件中断请求(HW IRQ)发生(通知处理器在调制解调器211处接收数据的中断),由第一数据分组处理单元213将来自网络接口卡(NIC)缓冲器的数据分组发送到网络设备缓冲器(Rx队列),由第一数据分组处理单元213将已处理的数据分组插入第二数据分组处理单元215的各个核的待办事项队列,由第二数据分组处理单元215读取存储在待办事项队列中的数据分组,并进行网络堆栈处理。待办事项队列是指等待连接到网络堆栈(诸如TCP)的队列,并且可以分配给存储器。
内核中的第一数据分组处理单元213可以在接收到硬件中断时简化处理,并且可以通过使用软件中断处理来完成数据分组处理的其他部分(下半部分)。
图2B示出与数据分组的接收相关的缓冲器之间的关系。在处理器诸如通过外围组件互连快速(PCI-E)接口从调制解调器211接收的数据分组可以被存储在NIC 262的内部接收缓冲器(NIC内部缓冲器261)中。NIC 262可以将数据分组存储在诸如接收到的队列的环形缓冲器263中。例如,NIC 262可以接收数据分组并且可以根据网络驱动器设置将数据分组发送到内部接收缓冲器261或指定的环形缓冲器263。NIC 262可以生成HW IRQ,可以将数据分组的接收通知给处理器,并且处理器可以针对相应的网络驱动器执行软件中断处理(softirq)。接收缓冲器可以指可以等待到网络设备的连接的队列,并且可以被分发给存储器130。
诸如第一数据分组处理单元213之类的驱动器264可以通过协议(套接字/TCP/IP/以太网)处理(265)来处理存储在环形缓冲器中的分组,并且可以将分组发送到上层,诸如第二数据分组处理单元215。当使用NAPI时,在驱动器262与上层之间可能没有缓冲器。上层可以直接访问存储在环形缓冲器263中的分组。在上层中处理的数据分组的有效载荷数据可以存储在接收到的套接字缓冲器267中。应用268可以访问套接字缓冲器267中的数据。不支持NAPI的驱动器264可以将数据分组存储在上层的待办事项队列中。待办事项队列可能处于等待状态,在该等待状态下连接请求未被完全处理。待办事项设置可以是连接队列的最大值,该连接队列针对接收等待者,并且当待办事项队列已满时,可能会拒绝其他套接字请求。在用于处理多个核中的网络堆栈的方法中,待办事项队列可以分配给每个处理器核。上层可以处理存储在待办事项队列中的数据分组,并且可以将数据分组存储在套接字队列中。
图3示出了根据实施例的电子设备的数据分组处理操作。
参照图3,电子设备可以包括第一数据分组处理单元310和第二数据分组处理单元340。第一数据分组处理单元310可以是网络设备驱动器,并且可以包括接收队列320和分组分发(接收分组控制)单元330。接收队列320和第二数据分组处理单元340中的数字“1”、“2”、“3”可以指示接收到的分组的TCP/IP报头的信息的示例。核可以基于GRO技术将具有相同报头信息的分组合并为一个分组。
当处理器从调制解调器接收数据分组时,处理器可能会接收到中断。即,调制解调器可以在NIC卡中生成HW IRQ,以通知AP接收数据分组。CP可以发送需要的最大传输单元(MTU)的许多数据分组,然后可以生成中断请求(IRQ)。例如,在生成一个IRQ之前,缓冲器中最多可以存储330个数据分组。
从CP随HW IRQ一起接收到的数据分组可以进入(可以存储)在按数据类型分类的存储空间中,例如进程间通信(IPC)数据、网络数据分组数据或记录文件系统(RFS)数据。例如,NIC和/或第一数据分组处理单元310可以分析存储在调制解调器缓冲器中的数据分组的报头。当数据分组是IPC数据时,可以将数据分组传递到适当的程序模块,例如无线接口层(RIL),并且当数据分组是网络分组数据时,即从网络接收的互联网分组数据,可以将数据分组传递到第二数据分组处理单元340,例如TCP/UDP/IP层。在图3中,第一数据分组分发单元310的操作可以由核3执行。
第一数据分组处理单元310可以包括接收队列320和分组分发单元330。在网络数据分组的情况下,在RPS技术中,第一数据分组处理单元310可以将数据分组分发并传递到第二数据分组处理单元340的多个核。分发策略可以是根据设置的条件(例如IP地址、PORT号或随机值)对接收到的数据分组进行分类(第一数据分组处理),并将分类后的数据分组发送到第二数据分组处理单元340的相应核(网络堆栈)。例如,第一数据分组处理单元310可以根据每个数据分组指定/答复当前可用的核,例如第二数据分组处理单元的核,并且可以将相应的数据分组分配/插入适当的待办事项队列,例如仅为相应核指定的待办事项队列。例如,在图3中,核3可以合并具有报头信息“1”的网络数据分组,将合并的网络数据分组传递给核4,合并具有报头信息“2”的网络数据分组,将合并的网络数据分组传递给核5,合并具有报头信息“3”的网络数据分组,并将合并的网络数据分组传递给核6。
当生成诸如NET_RX IRQ之类的指定软件中断时,第二数据分组处理单元340可以处理存储在每个缓冲器中的数据分组,并且可以将数据分组传递到上层(套接字/应用)。例如,第二数据分组处理单元340可以分析数据分组的IP报头,识别关于IP分组的选项,并且确定数据分组的下一路径。可以根据为第二数据分组处理单元340的每个核指定的软件中断上下文(例如NET_RX上下文),处理由第一数据分组处理单元310分发和传递的分组。可以在由第一数据分组处理单元310的诸如RPS技术之类的分发策略预先设置的第二数据分组处理单元340的各个核中分发和处理网络数据分组。第二数据分组处理单元340可以防止网络数据分组在特定的CPU核上合并,使各种核并行地处理数据分组,并且无延迟地处理大数据分组。
即使根据RPS分发和处理数据分组,5G移动通信系统也可能缺少核资源。GRO方法可以指的是这样的技术,该技术当接收网络数据分组时,网络设备驱动器(第一数据分组处理单元310)将具有相同IP/TCP报头信息的连续分组数据合并为一个分组(例如最大64KB),并将数据分组数据移到网络堆栈中。
图4示出了根据实施例的电子设备中的数据分组处理操作。
参照图4,电子设备可以包括第一数据分组处理单元410和第二数据分组处理单元450。第一数据分组处理单元410可以包括接收队列420、分组合并单元430和分组分发单元440。例如,接收队列420、分组合并单元430和第二数据分组处理单元450中的数字“1”、“2”、“3”可以指示接收到的分组的TCP/IP报头信息的示例。分组合并单元430可以基于GRO技术将具有相同报头信息的分组合并为一个分组。例如,第一数据分组处理单元410的操作可以在核3中执行。
接收到的数据分组可以被存储在第一数据分组处理单元410的接收队列420中。分组合并单元430可以分析接收队列420中的数据分组,并且可以通过分析数据分组的报头并将具有相同IP/TCP报头信息的数据分组合并为一个分组,将连续数据分组合并为一个分组。分组合并单元410可以使第二数据分组处理单元450的核来处理具有相同IP/TCP报头的数据分组。例如,分组合并单元430可以将具有报头信息为“1”的网络数据分组合并为第一数据分组,可以将具有报头信息为“2”的网络数据分组合并为第二数据分组,并且可以将具有报头信息为“3”的网络数据分组合并为第三数据分组。分组分发单元440可以分发在分组合并单元430中合并的第一数据分组、第二数据分组和第三数据分组,并且可以将数据分组传递到第二数据分组处理单元450的核4、5和6的指定缓冲器。
指定的缓冲器可以是第二数据分组处理单元450的核4、5和6的对应的待办事项队列。存储在指定的缓冲器中的数据分组可以是这样的一个分组,其中通过GRO功能将具有相同报头信息的数据分组进行合并。在指定核中操作的第二数据分组处理单元450可以针对进入待办事项队列的分组执行网络堆栈处理,例如TCP协议和/或IP协议,并且可以将分组传递到上层,例如套接字层。
GRO功能可以在作为第一数据分组处理单元410的核心3之类的CPU上下文中执行,并且第二数据分组处理单元450的操作可以与之前的操作相同的方式执行。当使用GRO方式时,可以减少在第二数据分组处理单元450中处理的数据分组的数量,并且第二数据分组处理单元340可以减少处理每个数据分组所需的时间。在处理数据分组时,网络设备驱动器可以基于GRO方式通过合并接收到的数据分组来减少在网络堆栈上处理数据分组所需的时间。当使用GRO功能时,可以减少从AP发送到CP的确认数量,从而减少CP的负载以及在AP处理网络数据分组所需的时间。
当使用GRO功能时,可以减少在第二数据分组处理单元450处理分组所需的时间,但是在第一数据分组处理单元410处理第一数据分组所需的时间会增加。当执行GRO功能的时间过长时,GRO占用的时间可能成为处理数据所需的总时间的瓶颈。
图5示出了根据实施例的电子设备的数据分组处理操作。
参照图5,电子设备可以包括第一数据分组处理单元510和第二数据分组处理单元570。第一数据分组处理单元510可以包括接收队列520、第一分组分发单元530、分组合并单元540和第二分组分发单元560。例如,接收队列520、分组合并单元540和第二数据分组处理单元570中的数字“1”、“2”,“3”可以指示接收到的分组的报头信息的示例。分组合并单元540可以基于GRO技术将具有相同报头信息的分组合并为一个分组。例如,可以在核3中执行接收队列520和第一分组分发单元530的操作,可以在核1和2中执行分组合并单元540的操作,并且可以在核4至6中执行第二数据分组处理单元570的操作。
根据第一数据分组处理单元510的操作,接收队列520可以存储经由调制解调器接收的数据分组。电子设备可以在与第一数据分组处理单元操作的核3不同的核1或2中执行GRO功能。第一分组分发单元530可以分析存储在接收队列520中的数据分组,并且可以将数据分组分发并传递到分组合并单元540的指定CPU。电子设备可以在多个核1和2中执行GRO功能。例如,第一分组分发单元530可以分析存储在接收队列520中的数据分组,并且可以将数据分组分发并传递到分组合并单元540的指定CPU核。第一分组分发单元530可分析存储在接收队列520中的数据分组,确定是否选择激活GRO功能,当选择激活GRO功能时,指定至少一个核来执行用于数据分组的GRO功能,并将数据分组传递到核。例如,可以将未被确定使用GRO功能的分组流传递到第二数据分组处理单元570。
第二分组分发单元560可以分析数据分组,并且可以将数据分组分发并传递到第二数据分组处理单元570的指定CPU核,该CPU核可以执行与图3的分组分发单元330和图4的分组分发单元440相同的操作。
图5的第一数据分组处理单元510可以通过独立地配置从接收队列520和第一分组分发单元530读出数据分组的配置以及用于处理GRO的配置(分组合并单元540和第二分组分发单元560)来分发和处理数据分组。例如,第一数据分组处理单元510可以包括核,以从接收队列520中读出数据分组,分析该分组,确定是否执行GRO,以及确定CPU核执行GRO(第一RPS功能);至少一个核以执行GRO,和第二个RPS功能。另外,第一数据分组处理单元510可以驱动多个GRO,并且可以在多个CPU核中执行数据分组的GRO。第一分组分发单元530可以对接收队列520的数据分组进行过滤和分类,并且可以将数据分组存储在各个GRO缓冲器中。
例如,第一分组分发单元530可以基于数据分组的报头信息来分发数据分组,并且可以进行操作以将具有报头信息为“1”的网络数据分组传递给执行分组合并操作的核1,以将具有报头信息为“2”的网络数据分组发送到核2,并将具有报头信息为“3”的网络数据分组传递到第二分组分发单元560。分组合并单元540的核1可以将具有报头信息为“1”的网络数据分组合并为第一数据分组,可以将具有报头信息为“2”的网络数据分组合并为第二数据分组。第二分组分发单元560可以将在分组合并单元540中合并的第一数据分组和第二数据分组以及从第一分组分发单元530传递的第三数据分组分发并传递到第二数据分组处理单元450的核4、5和6的指定的各个缓冲器。
第一RPS功能的第一分组分发单元530可以是这样的核分发模块,其对存储在接收队列中的分组进行分类并且将该分组分发给执行GRO功能的至少一个核,第二RPS功能的第二分组分发单元560可以是这样的核分发模块,其对通过GRO技术处理(合并)的数据分组进行分类,并将该数据分组分发到网络堆栈的至少一个核。
第一数据分组处理单元510可以在将存储在接收队列520中的数据分组传递到分组合并单元540之前,确定在第一分组分发单元530中执行GRO功能的CPU核。分组合并单元540的CPU核可以包括由第一分组分发单元530确定的至少一个CPU核。分组合并单元540可以通过由第一分组分发单元530确定的CPU核来合并数据分组。第一数据分组处理单元510可以减少由GRO增加的处理所需时间,例如核3的运行时间。例如,当独立地执行GRO操作时,第一数据分组处理单元510可以将网络设备层处理所需的时间(即,每个数据分组1.6毫秒(例如一次传输的330个数据分组))减少大约10%,即,减少到1.4毫秒,因此,TCP DL TP可能从1.4左右增加大约10%,即从1.4Gbps至1.5Gbps。
根据处理速率,电子设备的处理器可以包括多个核,该多个核包括诸如大核的高性能核和诸如小核的低性能核。例如,当处理器包括八(8)个核(八核)时,处理器可以包括四个高性能核和四个低性能核。电子设备可以指定用于执行第一数据分组处理单元510的分组合并单元540的GRO功能的最大核数,和/或用于处理第二数据分组处理单元570的最大核数。例如,第一数据分组处理单元510的第二分组分发单元560可以指定两个或三个核以在第二数据分组处理单元570中分发和处理数据分组。第一数据分组处理单元510可以指定额外的核以进行分发并由GRO处理。
电子设备可以指定用于确定是否执行GRO功能的核和用于执行GRO功能的核。例如,当确定电子设备处于GRO瓶颈状态时,例如,当处理GRO需要过多的时间时,当在相应的核中执行另一个核处理任务时,或者当每小时从接收队列631进入的分组数量大于或等于阈值时,执行第一RPS功能的核(例如第一核)可以在运行期间指定其他核来处理GRO,例如第二核,第三核等,并且可能使得核以分布式方式执行GRO功能。
当电子设备正以分布式方式处理GRO的同时释放了GRO处理中的瓶颈状态时(第二核或多个核形成GRO),执行第一RPS功能的CPU核可以执行GRO功能,而其他核不执行GRO。例如,当由于在网络堆栈中仅打开一个套接字(端口)而减少或期望减少GRO处理所需的时间时,电子设备可能不会以分布式方式执行GRO。
电子设备的第一分组分发单元530可以确定/改变要在分组合并单元540和第二分组分发单元560中使用的CPU核的数量。例如,电子设备可以根据第二数据分组处理单元570中使用的套接字(端口)的数量,确定要以分布式方式处理GRO的核的数量。当网络驱动器中可用的核的最大数为5,而当前激活的套接字的数量为3时,电子设备可以将以分布式方式处理GRO的核数设置为3,例如第二核、第三核和第四核,并且可以为第二数据分组处理单元570设置其他两个核,例如网络堆芯。
即,电子设备可以优先处理核以处理GRO。例如,当网络驱动器中可用的最大核数为5并且当前激活的套接字数为2时,电子设备可以将要以分布式方式处理GRO的CPU核数设置为2,例如第二核和第三核,并且可以将其他的第三核设置为第二数据分组处理单元570的CPU核。例如,在图5中,核3可以是第一核,核1可以是第二核,核2可以是第三核,并且核4至核6可以是网络堆栈核。
电子设备可以将被指定为用于处理GRO的核的核重新指定为第二数据分组处理单元570的网络堆栈核,或者可以将处于空闲状态的另一个核指定为网络堆栈核。电子设备可以将优先级给予用于执行GRO的核以能够快速处理GRO,或者可以将优先级给予用于处理第二数据分组的核。
电子设备可以确定将在第一数据分组处理单元510中使用的核的类型和将在第二数据分组处理单元570中使用的核的类型。例如,电子设备可以分配更高性能的核以处理GRO,并且可以分配低性能的核以处理第二数据分组。具有相同信息的数据分组,例如分组报头,可以被合并在第一数据分组处理单元510的分组合并单元540中,使得减少了数量的数据分组可以被传递到第二数据分组处理单元570。因此,可以减少第二数据分组处理单元570的网络堆栈核的负载。因此,可以将低性能核分配为第二数据分组处理单元570的网络堆栈核。例如,电子设备的第一数据分组处理单元510可以监视进入每个端口的数据分组的数量,并且可以将不同类型的核重新分配给分组合并单元540。
图6A示出了根据实施例的在电子设备中处理数据分组的第一示例,图6B示出了根据实施例的在电子设备中处理数据分组的第二示例,图6C示出了根据实施例的在电子设备中处理数据分组的第三示例,图6D示出了根据实施例的在电子设备中处理数据分组的第四示例。处理器可以包括多个核处理器,例如图5的核1,其可以根据硬件中断和/或软件中断来执行中断处理程序上下文,诸如第一NETRX上下文至第二NETRX上下文。
处理数据分组的电子设备可以包括第一数据分组处理单元510和第二数据分组处理单元570。第一数据分组处理单元可以包括执行第一RPS功能的第一核和至少一个核(例如第二核至第N核的一部分或全部),以执行GRO和第二RPS功能。
第一RPS功能可以指对存储在接收队列中的分组进行分类并且将分组分发给执行GRO功能的至少一个核。第二RPS功能可以指的是对通过GRO技术处理(合并)的数据分组进行分类,并且将数据分组分发到用于网络堆栈的至少一个核。第二数据分组处理单元可以包括在第一数据分组处理单元中指定的至少一个网络堆栈核,并且网络堆栈核可以处理从第一数据分组处理单元传递的数据分组,并且可以将数据分组传递到上层。
参照图6A,第一核600可以是核3,并且可以包括用于存储接收到的数据分组的接收队列631和第一分组分发单元633。
NIC 610可以是处理器的调制解调器接口,其可以经由诸如PCI-E接口和/或共享存储器接口之类的指定接口与调制解调器电连接,并且可以经由NIC接口向调制解调器发送数据或从调制解调器接收数据。NIC 610可以将从调制解调器传递的数据分组发送到由第一数据分组处理单元(例如网络驱动器)预先分配的主机存储器缓冲器,并且可以将中断(HW IRQ)通知操作系统(驱动器)。
第一核600可以包括用于存储接收到的数据分组的接收队列631和第一分发单元633。当在处理器处接收到HW IRQ时,处理器可以执行在第一核中操作的中断处理程序。接收队列631可以存储接收到的数据分组。第一分组分发单元633可以在将数据分组传递到执行GRO的核(诸如第二核到第N核)之前确定用于传递数据分组的核。当确定GRO处理当前处于瓶颈状态时,例如当需要过多的时间来处理GRO或在相应的CPU核中执行另一核处理任务时,第一分组分发单元633可以在运行期间确定至少一个核以用于处理GRO,并且可以分发和处理数据分组。第一分组分发单元633可以基于第二数据分组处理单元中使用的套接字的数量来确定或改变用于GRO的核的数量,并且可以确定核的类型。
第二核650(例如,图6A1中的核1)可以包括分组合并单元653和第二分组分发单元655。图6A示出了CPU核650执行GRO的示例。分组合并单元653可以分析存储在接收队列631中的数据分组,并且可以将具有相同信息的数据分组合并为一个数据分组。第二分组分发单元655可以将合并的数据分组分发并传递到第二数据分组处理单元的网络堆栈核680的待办事项队列683、网络堆栈核690的待办事项队列693。
第二数据分组处理单元可以包括至少一个网络堆栈核。图6A示出了两个网络堆栈核680、690的示例,其中网络堆栈核680可以包括待办事项队列683、TCP/IP处理单元685和应用处理单元687。网络堆栈核690可以包括待办事项队列693、TCP/IP处理单元695和应用处理单元697。待办事项队列683、693可以是相应的网络核680、690的接收网络队列。TPC/IP处理单元685、695可以基于信息(IP/PORT信息)针对存储在相应待办事项队列683、695中的数据分组执行网络TCP/IP处理,并且可以将数据分组传递到套接字缓冲区。应用处理单元687、697可以从套接字读取数据。
第一核600可以接收从调制解调器传递的具有第一大小的第一数据分组,并且可以将第一数据分组存储在接收队列631中。第一核600可以将存储在接收队列631中的第一数据分组的至少一部分传递至第二核650。例如,第一核600的第一分组分发单元633可以分析GRO的处理状态,并且,当数据分组处于瓶颈状态时,可以指定第二核650并将接收到的数据分组的全部或一部分传递到第二核。例如,当确定每小时从接收队列631传入的分组的数量大时,第一核600的第一分组分发单元633可以指定第二核650,并且可以将接收到的数据分组的全部或一部分传递到第二核。
第二核650可以从第一核600接收第一数据分组的至少一部分,并且至少部分地基于第一数据分组的类型,可以将接收到的第一数据分组的至少一部分合并为具有大于第一大小的大小的多个第二数据分组。第二核650可以将第二数据分组发送到处理器的除第一核和第二核之外的至少另一个核680、690。例如,第二核650可以包括分组合并单元653和第二分组分发单元655,并且分组合并单元653可以基于分组报头信息识别接收到的第一数据分组的类型,并且可以通过合并相同类型的数据分组来生成第二数据分组。第二分组分发单元655可以将在分组合并单元653中合并的第二数据分组存储在网络堆栈核680、690的相应的待办事项队列683、693中。
参照图6B,第一数据分组处理单元可以包括第一核600(核3)、第二核650(核1)和第三核660(核2)。第一核600可以包括接收队列631和第一分组分发单元633。第二核650和第三核660可以分别包括分组合并单元653、663和第二分组分发单元655、665。第二数据分组处理单元可以包括具有待办事项队列683和TCP/IP处理单元685的网络堆栈核680,以及具有待办事项队列693和TCP/IP处理单元695的网络堆栈核690。网络堆栈核680可以是核5,网络堆栈核690可以是核6。
第一核600可以将接收到的具有第一大小的数据分组的一部分发送到第二核650,并且可以将第一数据分组的另一部分发送给第三核660。第二核650可以从第一核600接收第一数据分组的至少一部分,并且可以至少部分地基于第一数据分组的类型,将接收到的第一数据分组的至少一部分合并为具有大于第一大小的大小的多个第二数据分组。第二核650可以将第二数据分组发送到处理器的除第一核600至第三核660之外的至少一个其他核680、690。第三核660可以从第一核600接收第一数据分组的其他部分,并且可以至少部分地基于数据分组的类型,将第一数据分组的其他部分合并为具有大于第一大小的大小的多个第三数据分组。第三核660可以将第三数据分组发送到处理器的除第一核600至第三核660之外的至少一个其他核680、690。
参照图6C,第一数据分组处理单元可以包括第一核600(核3)、第二核650(核1)和第三核660(核2)。第一核600可以包括接收队列631、第一分组分发单元633、分组合并单元635和第二分组分发单元637。第二核650和第三核660可以包括分组合并单元653、663和第二分组分发单元655、665。第二数据分组处理单元可以包括分别具有待办事项队列683、693和TCP/IP处理单元685、695的网络堆栈核680、690。网络堆栈核680可以是核5,网络堆栈核690可以是核6。
第一核600可以将接收到的具有第一大小的数据分组的一部分发送到第二核650,并且可以将第一数据分组的其他部分发送到第三核660。第一核600还可以执行GRO功能和第二RPS功能。第一核600可以至少部分地基于数据分组的类型,将第一数据分组的其他部分合并为具有大于第一大小的大小的多个第四数据分组。第一核600可以将第四数据分组发送到与第一核600至第三核660不同的至少一个其他核680、690(网络堆栈核)。第二核650和第三核660的操作可以与图6B中的操作相同。
网络堆栈核680、690的待办事项队列683、693可以存储从第一核600发送的第四数据分组、从第二核650发送的第二数据分组以及从第三核660发送的第三数据分组。网络核680、690可以处理第二数据分组、第三数据分组和第四数据分组,并且可以将数据分组传递到套接字。
在图6A、图6B和图6C中,第一核600、第二核650和第三核660中的至少一个核可以执行大量接收减负(LRO)过程,并且可以通过使用LRO过程的至少一部分将第一数据分组合并为的已合并的数据分组(例如第二数据分组、第三数据分组或第四数据分组)中的至少一个,该LRO过程将接收到的数据分组(第一数据分组)重新合并为更大的数据分组(更少数量的数据分组)以将其传递到系统的网络堆栈。
参照图6D,当由GRO处理所需的时间最小并且因此不需要数据分组的分布式处理时,第一数据分组处理单元600可以禁用GRO功能。第一核600可以包括接收队列631、第一分组分发单元633和第二分组分发单元637。当GRO功能被禁用时,第一核600可以将具有第一大小的第一数据分组发送到处理器的除第一核600之外的至少一个其他核680、690。
电子设备的第一核可以执行第一RPS功能并且可以基于数据分组的容量和核平衡来确定至少一个核。例如,第一核可以确定第二核至第N核,如图6A、图6B和图6C所示,并且可以执行GRO和第二RPS功能。如图6C所示,第一核可以被确定为执行GRO和第二RPS功能的核。
根据各种实施例,电子设备可以包括:无线通信调制解调器;至少一个处理器,其与通信调制解调器连接并且包括多个核;以及与处理器可操作地连接的非易失性存储器。该非易失性存储器可以存储有指令,当被执行时,该指令使得处理器的第一核从无线通信调制解调器接收具有第一大小的第一数据分组,并且将第一数据分组的至少一部分发送到处理器的第二核,以及使得第二核从第一核接收第一数据分组的至少一部分,至少部分地基于第一数据分组的类型,将第一数据分组的至少一部分合并为具有大于第一大小的大小的多个第二数据分组,并将第二数据分组发送到处理器的除第一核和第二核之外的至少一个其他核。
所述指令可以使得第一核将第一数据分组的其他部分发送到处理器的第三核,并使得第三核从第一核接收第一数据分组的所述其他部分,至少部分地基于所述类型,将第一数据分组的所述其他部分合并为具有大于第一大小的大小的多个第三数据分组,并将第三数据分组发送到至少一个其他核。
所述指令可以使第一核至少部分地基于所述类型将第一数据分组的其他部分合并为具有大于所述第一大小的大小的多个第四数据分组,并将所述第四数据分组发送到至少一个其他核。
所述指令可以使第一核、第二核和第三核中的至少一个执行LRO过程,并通过使用LRO过程将第一数据分组合并到第二数据分组、第三数据分组和第四数据分组中的至少一个。
电子设备可以包括诸如Linux或Unix内核系统之类的内核系统作为操作系统,并且指令可以使处理器执行由内核系统提供的GRO过程,该GRO过程包括与LRO过程的至少一部分基本相同的过程。
根据各种实施例,电子设备可以包括:无线通信调制解调器;和至少一个处理器,其与通信调制解调器可操作地连接并且包括多个核;第一数据分组处理单元,其被配置为处理接收到的数据分组并将数据分组存储在待办事项队列中;以及第二数据分组处理单元,其被配置为处理待办事项队列中存储的数据分组并将该数据分组传递到上层。第一数据分组处理单元可以包括:第一核,该第一核被配置为从无线通信调制解调器接收具有第一大小的第一数据分组,并且将该第一数据分组的至少一部分发送到处理器的第二核;第二核,该第二核被配置为从第一核接收第一数据分组的至少一部分,至少部分地基于第一数据分组的类型,将第一数据分组的至少一部分合并为具有大于第一大小的大小的多个第二数据分组,并将第二数据分组发送到至少一个网络堆栈核。
第一数据分组处理单元还可以包括第三核。第一核可以将第一数据分组的其他部分发送到处理器的第三核,并且第三核可以从第一核接收第一数据分组的其他部分,至少部分地基于所述类型,可以将第一数据分组的其他部分合并为具有大于第一大小的大小的多个第三数据分组,并且可以将第三数据分组发送到至少一个其他网络堆栈核。
第一核可以至少部分地基于类型将第一数据分组的其他部分合并为具有大于第一大小的大小的多个第四数据分组,并且可以将第四数据分组发送到至少一个其他网络堆栈核。
第一核、第二核和第三核中的至少一个可以执行LRO过程,并且可以通过使用LRO过程的至少一部分将第一数据分组合并到第二数据分组、第三数据分组或第四数据分组中的至少一个。
电子设备可以包括内核系统作为操作系统,并且第一核可以执行由内核系统提供的GRO过程,该GRO过程包括与LRO过程的至少一部分基本相同的过程。
第一核可以包括:接收队列,用于接收第一大小的第一数据分组;以及第一分组分发单元(接收分组控制单元),用于基于处理数据分组所需的时间来确定至少一个第二核来处理GRO。
第二核可以包括:GRO单元,用于基于从第一核传递的第一数据分组的信息,将具有相同信息的第一数据分组合并到第二数据分组中;以及第二分组分发单元,用于将合并的第二数据分组存储在至少一个网络堆栈核的待办事项队列中。
当处理数据分组所需的时间过长时,第一分组分发单元还可以指定第三核以合并第一数据分组,并且第三核可以包括GRO单元以从第一核接收第一数据分组的其他部分,至少部分地基于类型将第一数据分组的其他部分合并为具有大于第一大小的大小的多个第三数据分组,第二数据分组分发单元被配置为将第三数据分组分发并发送到至少一个其他网络堆栈核的待办事项队列。
第一核还可以包括:GRO单元,用于至少部分地基于所述类型,将第一数据分组的其他部分合并为具有大于第一大小的大小的多个第四数据分组;以及第二分组分发单元,其被配置为将第四数据分组发送到至少一个其他网络堆栈核。
第一核、第二核和第三核中的至少一个可以执行LRO过程,并且可以通过使用LRO过程的至少一部分将第一数据分组合并到第二数据分组、第三数据分组或第四数据分组中的至少一个。
图7示出了根据实施例的电子设备的数据分组处理操作。
参照图7,当在步骤711中,从调制解调器接收到数据分组并且接收到中断时,电子设备可以执行中断处理程序。在步骤713中,电子设备可以基于数据的类型将中断接收到的分组存储在划分后的存储空间中。在步骤715中,电子设备可以通过执行可以在第一核中执行的第一RPS功能来确定合并数据分组的核。在步骤717中,电子设备可以通过执行GRO功能来合并具有第一大小的相同信息的第一数据分组。合并后的数据分组的大小可以大于具有第一大小的第一数据分组的大小。在步骤719中,电子设备可以通过执行第二RPS功能来分发和发送合并的数据分组。例如,电子设备可以将合并的数据分组分发到网络堆栈核的待办事项队列,并且可以将数据分组存储在其中。电子设备可以处理存储在待办事项队列中的合并的数据分组,并且可以将数据分组传递到套接字。例如,在步骤721中,电子设备可以识别并处理(网络TCP/IP处理)存储在待办事项队列中的合并的数据分组的信息(IP/PORT信息),并且可以将数据分组传递至套接字缓冲器。
电子设备的第一核可以从调制解调器接收具有第一大小的第一数据分组,并且可以将接收到的第一数据分组的至少一部分发送到第二核,该第二核可以从第一核接收第一数据分组的至少一部分,至少部分地基于第一数据分组的类型,可以将接收到的第一数据分组的至少一部分合并为具有大于第一大小的大小的多个第二数据分组中。第二核可以将合并的第二数据分组至少存储在网络堆栈核的待办事项队列中。
图8示出了根据实施例的在电子设备中基于接收到的数据分组的处理状态来处理数据分组的操作。
参照图8,当在步骤811中生成HW IRQ时,电子设备可以在步骤813中接收数据分组。在步骤815中,电子设备可以分析数据分组的处理状态。例如,电子设备可以基于数据分组的容量(高容量)和核平衡来识别数据分组的处理状态。当数据分组具有高容量时,例如当进入预定时间的分组的数量大于或等于阈值时,或者需要核平衡时,电子设备可以进行到步骤817执行第一RPS功能。在步骤819中,电子设备可以基于数据分组的处理状态来存储执行GRO功能的核的数量和核的类型(大核、小核)。在步骤821,电子设备可以确定合并数据分组的核。在步骤823中,电子设备可以执行GRO功能以合并具有第一大小的相同信息的第一数据分组。合并的数据分组的大小可以大于第一数据分组的大小。在步骤825,电子设备可以执行第二RPS功能以分发和发送合并的数据分组。例如,电子设备可以将合并的数据分组分发到网络堆栈核的待办事项队列,并且可以将数据分组存储在其中。在步骤815中,当数据分组不具有高容量或不需要核平衡时,电子设备可以进行到操作823以执行第二RPS功能。在步骤827中,电子设备可以识别并处理(网络TCP/IP处理)存储在待办事项队列中的合并的数据分组的信息(IP/PORT信息),并且可以将数据分组传递至套接字缓冲器。
根据各种实施例,一种用于处理电子设备的数据分组的方法可以包括:第一数据分组处理操作,用于分发接收到的数据分组并将该数据分组存储在待办事项队列中;以及第二数据分组处理操作,用于处理存储在待办事项队列中的数据分组并将数据分组传递到上层。所述第一数据分组处理操作可以包括:由第一核从无线通信调制解调器接收具有第一大小的第一数据分组;将第一数据分组的至少一部分发送至处理器的第二核;通过第二核,从第一核接收第一数据分组的至少一部分,至少部分地基于第一数据分组的类型,将第一数据分组的至少一部分合并到具有大于第一大小的大小的多个第二数据分组,并将第二数据分组存储在至少一个网络堆栈核的待办事项队列中。
第一数据分组处理操作还可以包括:由第一核将第一数据分组的其他部分发送到处理器的第三核;以及由第三核从第一核接收第一数据分组的其他部分,至少部分地基于类型,将第一数据分组的其他部分合并到多个具有大于第一大小的大小的第三数据分组,并将第三数据分组存储在至少一个其他网络堆栈核的待办事项队列中。
所述第一数据分组处理操作还可以包括:至少部分地基于所述类型,由第一核将第一数据分组的其他部分合并到具有大于第一大小的大小的多个第四数据分组,并且将第四数据分组存储在至少一个其他网络堆栈核的待办事项队列中。
所述第一数据分组处理操作还可以包括:由第一核、第二核或第三核中的至少一个执行LRO过程,以及通过使用LRO过程的至少一部分将第一数据分组合并到第二数据分组、第三数据分组或第四数据分组中的至少一个。
在第一数据分组处理操作中,第一核、第二核或第三核中的至少一个可执行系统提供的GRO过程,该GRO过程包括与LRO过程的至少一部分基本相同的过程。
当通过应用GRO来处理大的分组或处理数据分组时,电子设备可以在将数据分组发送到网络堆栈之前基于数据的处理状态来确定至少一个核来执行GRO。电子设备可以在网络设备驱动器中分发CPU的操作,因此可以最小化处理数据分组的延迟。
如本文所使用的,术语“模块”可以包括以硬件、软件或固件实现的单元,并且可以与诸如“逻辑”、“逻辑块”、“部件”或“电路”之类的其他术语互换使用。模块可以是适于执行一个或更多个功能的单个集成组件或其最小单元或一部分,并且可以以专用集成电路(ASIC)的形式实现。
本文所阐述的实施例可以被实现为包括存储在机器可读的存储介质中的一个或更多个指令的软件。例如,机器的处理器可在处理器的控制下调用存储在存储介质中的一个或更多个指令中的至少一个,并在使用或不使用一个或更多个其他组件的情况下执行指令,因此根据所调用的至少一条指令使机器执行至少一个功能。一个或更多个指令可以包括由编译器生成的代码或由解释器可执行的代码。可以以非暂时性存储介质的形式来提供机器可读存储介质。术语“非暂时性”表示存储介质是有形设备,并且不包括信号(例如,电磁波),但是不区分数据永久地或是临时存储在存储介质中的位置。
根据本公开的实施例的方法可以被包括并提供在计算机程序产品中,该计算机程序产品可以作为产品在卖方和买方之间进行交易。该计算机程序产品可以以机器可读存储介质(例如,光盘只读存储器(CD-ROM))的形式分发,或者可以经由应用商店在线地或者直接在两个用户设备之间下载或上传。如果在线分发,则计算机程序产品的至少一部分可以临时生成或存储在机器可读存储介质中,例如制造商服务器的存储器、应用商店的服务器或中继服务器。
上述组件的每个组件(例如,模块或程序)可以包括单个实体或多个实体。可以省略上述组件中的一个或更多个,或者可以添加其他组件中的一个或更多个。替代地或附加地,可以将多个组件(例如,模块或程序)集成到单个组件中。在这种情况下,集成组件仍可以以与集成之前多个组件中的相应组件执行的功能相同或相似的方式来执行多个组件中的每个组件的一个或更多个功能。由模块、程序或另一组件执行的操作可以顺序地、并行地、重复地或启发式地执行,一个或更多个操作可以以不同的顺序执行或被省略,或者可以添加一个或更多个其他操作。
尽管已经参照本公开的某些实施例示出和描述了本公开,但是本领域技术人员将理解,可以在不脱离由所附权利要求及其等同形式限定的本公开的精神和范围的情况下对形式和细节进行各种改变。
Claims (11)
1.一种用于处理电子设备的数据分组的方法,所述方法包括:
第一数据分组处理操作,用于分发接收到的数据分组并将所述数据分组存储在待办事项队列中;以及
第二数据分组处理操作,用于处理存储在所述待办事项队列中的所述数据分组并将所述数据分组传递到上层,
其中,所述第一数据分组处理操作包括:
由处理器的第一核从无线通信调制解调器接收具有第一大小的多个第一数据分组,以及
基于所述多个第一数据分组的报头信息中所包括的第一信息,向所述处理器的第二核发送所述多个第一数据分组的第一部分;
基于所述多个第一数据分组的报头信息中所包括的第二信息,向所述处理器的第三核发送所述多个第一数据分组的第二部分,所述第二信息与所述第一信息不同;
由所述第二核从所述第一核接收所述多个第一数据分组的第一部分,至少部分地基于所述多个第一数据分组的类型,将所述多个第一数据分组的第一部分合并为具有大于所述第一大小的大小的第一多个第二数据分组,以及将所述第一多个第二数据分组存储在至少一个网络堆栈核的待办事项队列中;
由所述第三核从所述第一核接收所述多个第一数据分组的第二部分,至少部分地基于所述多个第一数据分组的类型,将所述多个第一数据分组的第二部分合并为具有大于所述第一大小的大小的第二多个第二数据分组,以及将所述第二多个第二数据分组存储在所述至少一个网络堆栈核的待办事项队列中;
由所述第一核至少部分地基于所述多个第一数据分组的类型将除了所述多个第一数据分组的所述第一部分和所述第二部分之外的所述多个第一数据分组的其余部分合并为具有大于所述第一大小的大小的第三多个第二数据分组,以及将所述第三多个第二数据分组存储在所述至少一个网络堆栈核的待办事项队列中。
2.根据权利要求1所述的方法,其中,所述第一数据分组处理操作还包括:
由所述第一核、所述第二核和所述第三核中的至少一个执行大量接收减负(LRO)过程;以及
通过使用所述LRO过程的至少一部分将所述多个第一数据分组合并为所述第一多个第二数据分组、所述第二多个第二数据分组和所述第三多个第二数据分组中的至少一者。
3.根据权利要求2所述的方法,其中,在所述第一数据分组处理操作中,所述第一核、所述第二核和所述第三核中的至少一个被配置为执行通用接收减负(GRO)过程,所述GRO过程包括与所述LRO过程的至少一部分相同的过程。
4.一种电子设备,所述电子设备包括:
无线通信调制解调器;以及
至少一个处理器,所述至少一个处理器与所述无线通信调制解调器可操作地连接并且包括多个核,
其中,所述处理器包括:
第一数据分组处理单元,所述第一数据分组处理单元被配置为处理接收到的数据分组,并将所述数据分组存储在待办事项队列中;以及
第二数据分组处理单元,所述第二数据分组处理单元被配置为处理存储在所述待办事项队列中的所述数据分组并将所述数据分组传递到上层,
其中,所述第一数据分组处理单元包括:
所述处理器的第一核,所述第一核被配置为从所述无线通信调制解调器接收具有第一大小的多个第一数据分组,基于所述多个第一数据分组的报头信息中所包括的第一信息,向所述处理器的第二核发送所述多个第一数据分组的第一部分,基于所述多个第一数据分组的报头信息中所包括的第二信息,向所述处理器的第三核发送所述多个第一数据分组的第二部分,所述第二信息与所述第一信息不同,至少部分地基于所述多个第一数据分组的类型,将除所述第一部分和所述第二部分之外的所述多个第一数据分组的其余部分合并为具有大于所述第一大小的大小的第三多个第二数据分组,以及向至少一个网络堆栈核发送所述第三多个第二数据分组;
所述第二核,所述第二核被配置为从所述第一核接收所述多个第一数据分组的第一部分,至少部分地基于所述多个第一数据分组的类型,将所述多个第一数据分组的第一部分合并为具有大于所述第一大小的大小的第一多个第二数据分组,以及向所述至少一个网络堆栈核发送所述第一多个第二数据分组;以及
所述第三核,所述第三核被配置为从所述第一核接收所述多个第一数据分组的第二部分,至少部分地基于所述多个第一数据分组的类型,将所述多个第一数据分组的第二部分合并为具有大于所述第一大小的大小的第二多个第二数据分组,以及向所述至少一个网络堆栈核发送所述第二多个第二数据分组。
5.根据权利要求4所述的电子设备,其中,所述第一核、所述第二核和所述第三核中的至少一个被配置为执行大量接收减负(LRO)处理,并且通过利用所述LRO过程的至少一部分将所述多个第一数据分组合并为所述第一多个第二数据分组、所述第二多个第二数据分组和所述第三多个第二数据分组中的至少一者。
6.根据权利要求5所述的电子设备,其中,所述第一核还被配置为执行通用接收减负(GRO)过程,所述GRO过程包括与所述LRO过程的至少一部分相同的过程。
7.根据权利要求5所述的电子设备,其中,所述第一核包括:
接收队列,所述接收队列被配置为接收所述第一大小的所述多个第一数据分组;以及
第一分组分发单元,所述第一分组分发单元被配置为基于处理数据分组所需的时间来确定处理通用接收减负(GRO)过程的至少一个第二核或至少一个第三核,所述GRO过程包括与所述LRO过程的至少一部分相同的过程。
8.根据权利要求7所述的电子设备,其中,所述第二核和所述第三核均包括:
通用接收减负(GRO)单元,包括在所述第二核和所述第三核中的所述GRO单元被配置为基于从所述第一核传递的所述多个第一数据分组的信息,分别将具有相同信息的所述多个第一数据分组合并为所述第一多个第二数据分组和所述第二多个第二数据分组;以及
第二分组分发单元,所述第二分组分发单元被配置为将合并成的所述第一多个第二数据分组和所述第二多个第二数据分组存储在所述至少一个网络堆栈核的待办事项队列中。
9.根据权利要求8所述的电子设备,其中,所述第一分组分发单元被配置为:当处理所述数据分组所需的时间过多时,进一步指定所述第三核合并所述多个第一数据分组的第二部分;并且
其中:
包括在所述第三核中的所述GRO单元被配置为从所述第一核接收所述多个第一数据分组的所述第二部分,至少部分地基于所述类型,将所述多个第一数据分组的所述第二部分合并为具有大于所述第一大小的大小的所述第二多个第二数据分组;并且
所述第三核还包括第二分组分发单元,所述第二分组分发单元被配置为将所述第二多个第二数据分组分发并发送到至少一个其他网络堆栈核的待办事项队列。
10.根据权利要求9所述的电子设备,其中,所述第一核还包括:
GRO单元,所述GRO单元被配置为至少部分地基于所述类型,将所述多个第一数据分组的其余部分合并为具有大于所述第一大小的大小的所述第三多个第二数据分组;以及
第二分组分发单元,所述第二分组分发单元被配置为向所述至少一个其他网络堆栈核发送所述第三多个第二数据分组。
11.根据权利要求10所述的电子设备,其中,所述第一核、所述第二核和所述第三核中的至少一个被配置为执行大量接收减负(LRO)处理,并且通过利用所述LRO过程的至少一部分将所述多个第一数据分组合并为所述第一多个第二数据分组、所述第二多个第二数据分组和所述第三多个第二数据分组中的至少一者。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180081520A KR102604290B1 (ko) | 2018-07-13 | 2018-07-13 | 전자 장치의 데이터 패킷 처리 장치 및 방법 |
KR10-2018-0081520 | 2018-07-13 | ||
PCT/KR2019/008109 WO2020013510A1 (en) | 2018-07-13 | 2019-07-03 | Apparatus and method for processing data packet of electronic device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112352404A CN112352404A (zh) | 2021-02-09 |
CN112352404B true CN112352404B (zh) | 2023-07-25 |
Family
ID=69138575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980041797.0A Active CN112352404B (zh) | 2018-07-13 | 2019-07-03 | 用于处理电子设备的数据分组的装置和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11102137B2 (zh) |
EP (1) | EP3782339B1 (zh) |
KR (1) | KR102604290B1 (zh) |
CN (1) | CN112352404B (zh) |
WO (1) | WO2020013510A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102604290B1 (ko) * | 2018-07-13 | 2023-11-20 | 삼성전자주식회사 | 전자 장치의 데이터 패킷 처리 장치 및 방법 |
KR20200112439A (ko) * | 2019-03-22 | 2020-10-05 | 삼성전자주식회사 | 멀티 코어를 포함하는 전자 장치 및 이의 패킷 처리를 위한 방법 |
KR20220126591A (ko) * | 2021-03-09 | 2022-09-16 | 삼성전자주식회사 | 패킷을 프로세싱하는 전자 장치 및 그 동작 방법 |
US11888938B2 (en) * | 2021-07-29 | 2024-01-30 | Elasticflash, Inc. | Systems and methods for optimizing distributed computing systems including server architectures and client drivers |
CN113890789B (zh) * | 2021-09-29 | 2023-03-21 | 华云数据控股集团有限公司 | 适用于数据中心的udp隧道流量的分流方法、流量转发方法 |
CN117561706A (zh) * | 2021-11-22 | 2024-02-13 | 华为技术有限公司 | 一种处理数据包的方法和设备 |
WO2023093984A1 (en) * | 2021-11-25 | 2023-06-01 | Huawei Cloud Computing Technologies Co., Ltd. | Method and computing device for processing task request |
CN114866625A (zh) * | 2022-04-19 | 2022-08-05 | 哲库科技(北京)有限公司 | 数据包处理方法及相关产品 |
CN115185878A (zh) * | 2022-05-24 | 2022-10-14 | 中科驭数(北京)科技有限公司 | 一种多核分组网络处理器架构及任务调度方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9356866B1 (en) * | 2014-01-10 | 2016-05-31 | Juniper Networks, Inc. | Receive packet steering for virtual networks |
CN107209548A (zh) * | 2015-02-13 | 2017-09-26 | 英特尔公司 | 在多核处理器中执行功率管理 |
CN107430425A (zh) * | 2015-04-16 | 2017-12-01 | 英特尔公司 | 用于基于网络负荷来调整处理器功率使用率的设备和方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003089A (en) * | 1997-03-31 | 1999-12-14 | Siemens Information And Communication Networks, Inc. | Method for constructing adaptive packet lengths in a congested network |
US6359877B1 (en) * | 1998-07-21 | 2002-03-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for minimizing overhead in a communication system |
US6631422B1 (en) * | 1999-08-26 | 2003-10-07 | International Business Machines Corporation | Network adapter utilizing a hashing function for distributing packets to multiple processors for parallel processing |
US20030235194A1 (en) * | 2002-06-04 | 2003-12-25 | Mike Morrison | Network processor with multiple multi-threaded packet-type specific engines |
KR100489685B1 (ko) * | 2003-02-20 | 2005-05-17 | 삼성전자주식회사 | 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한패킷 송수신 장치와 그 방법 |
US7395538B1 (en) * | 2003-03-07 | 2008-07-01 | Juniper Networks, Inc. | Scalable packet processing systems and methods |
US7809009B2 (en) * | 2006-02-21 | 2010-10-05 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
US8340194B2 (en) * | 2008-06-06 | 2012-12-25 | Apple Inc. | High-yield multi-threading method and apparatus for video encoders/transcoders/decoders with dynamic video reordering and multi-level video coding dependency management |
DK2810413T3 (en) * | 2012-02-03 | 2019-03-18 | Ericsson Telefon Ab L M | Device suitable for use in an advanced digital baseband processor |
US9396154B2 (en) * | 2014-04-22 | 2016-07-19 | Freescale Semiconductor, Inc. | Multi-core processor for managing data packets in communication network |
US9880953B2 (en) | 2015-01-05 | 2018-01-30 | Tuxera Corporation | Systems and methods for network I/O based interrupt steering |
US10681607B2 (en) * | 2018-06-22 | 2020-06-09 | Intel Corporation | Receive-side scaling for wireless communication devices |
KR102604290B1 (ko) * | 2018-07-13 | 2023-11-20 | 삼성전자주식회사 | 전자 장치의 데이터 패킷 처리 장치 및 방법 |
-
2018
- 2018-07-13 KR KR1020180081520A patent/KR102604290B1/ko active IP Right Grant
-
2019
- 2019-07-03 CN CN201980041797.0A patent/CN112352404B/zh active Active
- 2019-07-03 EP EP19833609.1A patent/EP3782339B1/en active Active
- 2019-07-03 WO PCT/KR2019/008109 patent/WO2020013510A1/en unknown
- 2019-07-15 US US16/511,538 patent/US11102137B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9356866B1 (en) * | 2014-01-10 | 2016-05-31 | Juniper Networks, Inc. | Receive packet steering for virtual networks |
CN107209548A (zh) * | 2015-02-13 | 2017-09-26 | 英特尔公司 | 在多核处理器中执行功率管理 |
CN107430425A (zh) * | 2015-04-16 | 2017-12-01 | 英特尔公司 | 用于基于网络负荷来调整处理器功率使用率的设备和方法 |
Non-Patent Citations (1)
Title |
---|
多核软件网络设备上的自适应网络流量平衡;BUH TOMAZ等;《计算机网络》;20140429;第69卷;第5节 * |
Also Published As
Publication number | Publication date |
---|---|
CN112352404A (zh) | 2021-02-09 |
WO2020013510A1 (en) | 2020-01-16 |
KR102604290B1 (ko) | 2023-11-20 |
EP3782339A4 (en) | 2021-03-10 |
EP3782339B1 (en) | 2022-11-23 |
EP3782339A1 (en) | 2021-02-24 |
US11102137B2 (en) | 2021-08-24 |
KR20200007420A (ko) | 2020-01-22 |
US20200021533A1 (en) | 2020-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112352404B (zh) | 用于处理电子设备的数据分组的装置和方法 | |
US11758023B2 (en) | Multicore electronic device and packet processing method thereof | |
US11374881B2 (en) | Method for processing network packets and electronic device therefor | |
US20220272070A1 (en) | Electronic device for controlling packet transmission, and operating method thereof | |
US11924114B2 (en) | Device and method for processing data packet | |
CN115053198A (zh) | 用于控制进程的电子装置及其方法 | |
US11392523B2 (en) | Electronic device and operation method of electronic device | |
CN111083190B (zh) | 处理数据的方法和电子装置 | |
US20230401009A1 (en) | Method and memory device for atomic processing of fused commands | |
EP3876610B1 (en) | Electronic device for reducing power consumption in network on basis of wi-fi direct protocol, and method related thereto | |
EP4290378A1 (en) | Electronic device and method for processing sensor data of electronic device | |
EP4319101A1 (en) | Electronic device, and method for processing received data packet by electronic device | |
US20230046243A1 (en) | Method and apparatus for controlling transmission of packet | |
US11934694B2 (en) | Memory device and method to restock entries in serial link |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |