IP Library › Granted Patent US 12,591,453
Granted Patent B2
US 12,591,453 · App. 17/963,716 · Granted Mar 31, 2026

Method and system for multi-core load scheduling in an operating system (OS) less communication network

Inventors: Mahantesh Kothiwale (Bangalore, IN); Aneesh Deshmukh (Bangalore, IN); Jitender Singh Shekhawat (Bangalore, IN); Nayan Ostwal (Bangalore, IN); Nitin Anand (Bangalore, IN); Srinivasa Rao Kola (Bangalore, IN)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F9/4881
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,591,453
App. No.
17/963,716
Granted
Mar 31, 2026
Kind
B2
Abstract

A method and system for multi-core load scheduling in an operating system (OS) less communication network is disclosed. The method comprises initializing a plurality of threads for processing corresponding functionalities of incoming packets. The method further comprises synchronizing the plurality of initialized threads with each other for simultaneous processing of the one or more incoming packets. The method further comprises determining central processing unit (CPU) load on each of the plurality of cores and an ingress data-rate of one or more incoming data packets. The method further comprises enabling or disabling at least one flag based on the determined load and the ingress data-rate and determining at least one thread based on the enabled flag by the RL agent. The method further comprises processing the corresponding functionalities associated with the one or more incoming packets based on the at least one determined thread.

Claims (85)

1 . A method for multi-core load scheduling for functional decomposition of incoming packets in an operating system (OS) less communication network, comprising:

initializing a plurality of threads, and executing on a multi-core processing unit including a plurality of cores, for processing corresponding functionalities associated with one or more incoming packets received from a plurality of user equipment (UEs);

synchronizing the plurality of initialized threads with each other for simultaneous processing of the one or more incoming packets;

executing a reinforcement learning (RL) agent in at least one core of the multi-core processing unit, and determining, by the RL agent, a central processing unit (CPU) load on each of the plurality of cores, and an ingress data-rate of the one or more incoming packets;

enabling or disabling, by the RL agent based on each of the determined CPU load and the ingress data-rate, a flag corresponding to each of the plurality of threads for processing the corresponding functionalities associated with the one or more incoming packets;

determining at least one thread among the plurality of threads based on the corresponding enabled flag; and

processing the corresponding functionalities associated with the one or more incoming packets based on the at least one determined thread,

wherein the plurality of threads are configured to run on the plurality of cores of the multi-core processing unit,

wherein each of the plurality of cores is responsible for processing a functionality associated with the one or more incoming packets of each UE, and

wherein the functionality associated with the one or more incoming packets of each UE comprises one of a packet data convergence protocol (PDCP) stage, a radio resource control (RLC) stage, a medium access control (MAC) stage, and a functional application platform interface (FAPI) stage.

2 . The method as claimed in claim 1 , wherein the RL agent corresponds to a pre-trained prediction unit.

3 . The method as claimed in claim 2 , wherein the pre-trained prediction unit is configured to perform a closed loop learning method for a system under learning, and wherein the closed loop learning method includes:

defining a policy based on a plurality of options related to an action available in a given state of the system under learning;

performing the action based on the defined policy;

fine tuning the performed action based on one or more rewards received by the pre-trained prediction unit and the performed action; and

generating a table based on the performed action and the one or more rewards in different states of the system under learning.

4 . The method as claimed in claim 3 , wherein

the plurality of options includes a definition related to a learning of the pre-trained prediction unit with respect to the action performed by the pre-trained prediction unit in real-time, and

the fine tuning is performed until a reception of an optimized reward.

5 . The method as claimed in claim 3 ,

wherein the enabling or disabling of the flag includes the action performed by the pre-trained prediction unit;

wherein the ingress data-rate determined by the pre-trained prediction unit includes the state of the system; and

wherein the determination of the CPU load on each of the plurality of cores includes the one or more rewards received by the pre-trained prediction unit.

6 . The method as claimed in claim 1 , wherein the ingress data-rate relates to the one or more incoming data packets in a buffer of each of the plurality of cores.

7 . The method as claimed in claim 1 , wherein, for determining the at least one thread, the method further comprises:

determining each of core load conditions, a throughput, a thermal efficiency, and a power optimization level of the multi-core processing unit.

8 . The method as claimed in claim 1 , further comprising:

determining a throughput of the multi-core processing unit based on a type of the one or more incoming packets; and

disabling, based on determining that the throughput of the multi-core processing unit is greater than a specified threshold value, an enabled flag for reducing a CPU load on the plurality of cores, and a power consumed by the plurality of cores.

9 . The method as claimed in claim 1 , wherein the one or more incoming packets correspond to one or more user requests from the plurality of UEs, wherein the one or more incoming packets correspond to each of the one or more user requests and are initialized to a plurality of dedicated cores, and the method further comprises:

determining a ratio of an egress data-rate with respect to an ingress data-rate of the one or more incoming packets;

enabling or disabling, based on the determined ratio and the CPU load on each of the plurality of cores, the flag for processing of the one or more incoming packets corresponding to each of the one or more user requests by dynamically distributing to at least one buffer of a plurality of cores different from the initialized dedicated cores; and

determining the at least one buffer among the plurality of buffers based on the corresponding enabled flag; and

processing the one or more incoming packets based on the at least one determined buffer.

10 . The method as claimed in claim 1 , wherein the ingress data-rate relates to the one or more incoming packets in the buffer to be processed by the corresponding core, and the egress data-rate relates to outgoing packets from the buffer of the corresponding core after completion of the processing of the one or more packets.

11 . The method as claimed in claim 1 , wherein the enabling or disabling of the flag of the one or more incoming packets includes the action performed by a pre-trained prediction unit;

wherein the ingress data-rate determined by the pre-trained prediction unit includes the state of the system under learning; and

wherein determining the ratio of the egress data-rate with respect to the ingress data-rate, and the utilization of each core includes the one or more rewards that are received by the pre-trained prediction unit in response to one or more performed actions.

12 . The method as claimed in claim 9 , further comprising:

determining a throughput of the multi-core processing unit and an occupancy status of a plurality of buffers based on the one or more incoming packets; and

disabling, based on determining that the throughput of the multi-core processing unit is greater than a first specified threshold value and the occupancy status of the plurality of buffers is greater than a second specified threshold value, the enabled flag for reducing a CPU load on the plurality of cores, a power consumed by the plurality of cores, and a congestion in the plurality of buffers.

13 . A method for multi-core load scheduling in an operating system (OS) less communication network, comprising:

initializing a plurality of threads, and executing on a multi-core processing unit including a plurality of cores, for processing one or more user requests from a plurality of user equipment (UEs);

synchronizing the plurality of initialized threads with each other for simultaneous processing of one or more incoming packets;

executing a reinforcement learning (RL) agent in at least one core of the multi-core processing unit, and determining, by the RL agent, a central processing unit (CPU) load on each of the plurality of cores, and an occupancy level of a plurality of buffers of the plurality of cores for processing the one or more incoming packets by dynamically distributing the one or more incoming packets to the plurality of buffers or the plurality of threads;

enabling or disabling, by the RI agent, a first flag corresponding to each of the plurality of threads for corresponding functionalities based on the determined CPU load on each of the plurality of cores;

enabling or disabling, by the RL agent, a second flag for distribution of the one or more incoming packets across the plurality of buffers based on the determined occupancy level of the plurality of buffers;

determining at least one thread among the plurality of threads based on the corresponding enabled first flag;

determining at least one buffer among the plurality of buffers based on the enabled second flag; and

processing the one or more incoming packets based on each of the at least one determined thread and the at least one determined buffer,

wherein each of the one or more user requests includes a request for processing of the one or more incoming packets, and wherein the plurality of threads are configured to run on the plurality of cores for processing the corresponding functionalities associated with the one or more incoming packets, and

wherein each functionality associated with each of the one or more incoming packets comprise one of a packet data convergence protocol (PDCP) stage, a radio resource control (RLC) stage, a medium access control (MAC) stage, and a functional application platform interface (FAPI) stage.

14 . The method as claimed in claim 13 , wherein the occupancy level of the plurality of buffers comprises a difference between an ingress data-rate relating to the one or more incoming packets in the plurality of buffers and the egress data-rate relating to one or more outgoing packets from the plurality of buffers.

15 . A network entity for load scheduling for functional decomposition of incoming packets in a communication network, comprising:

an operating system (OS) less multi-core processing unit, comprising at least one processor comprising processor circuitry, configured individually and/or cooperatively, to receive one or more user requests from a plurality of user equipments (UEs), wherein the OS less multi-core processing unit is configured to:

initialize a plurality of threads, and executing on the multi-core processing unit including a plurality of cores, for processing corresponding functionalities associated with one or more incoming packets received from the plurality of UEs;

synchronize the plurality of initialized threads with each other for simultaneous processing of the one or more incoming packets;

execute a reinforcement learning (RL) agent in at least one core of the multi-core processing unit, and determine, by the RL agent, a central processing unit (CPU) load on each of the plurality of cores, and an ingress data-rate of the one or more incoming packets;

enable or disable, by the RL agent based on each of the determined CPU load and the ingress data-rate, a flag corresponding to each of the plurality of threads for processing the corresponding functionalities associated with the one or more incoming packets;

determine at least one thread among the plurality of threads based on the corresponding enabled flag; and

process the corresponding functionalities associated with the one or more incoming packets based on the at least one determined thread,

wherein the plurality of threads are configured to run on the plurality of cores of the multi-core processing unit,

wherein each of the plurality of cores is responsible for processing a functionality associated with the one or more incoming packets of each UE, and

wherein the functionality associated with the one or more incoming packets of each UE comprises one of a packet data convergence protocol (PDCP) stage, a radio resource control (RLC) stage, a medium access control (MAC) stage, and a functional application platform interface (FAPI) stage.

16 . The network entity as claimed in claim 15 ,

wherein the one or more incoming packets corresponds to one or more user requests from the plurality of UEs,

wherein one or more incoming packets corresponding to each of the one or more user requests and are initialized to plurality of dedicated cores, and

wherein the OS less multi-core processing unit is further configured to:

determine a ratio of an egress data-rate with respect to an ingress data-rate of the one or more incoming packets;

enable or disable, based on the determined ratio and the CPU load on each core, the flag for processing of the one or more incoming packets corresponding to each of the one or more user requests by dynamically distributing to at least one buffer of a plurality of cores different from the initialized dedicated cores; and

determine the at least one buffer among the plurality of buffers based on the corresponding enabled flag; and

process the one or more incoming packets in the at least one determined buffer.

17 . A network entity for load scheduling for functional decomposition of incoming packets in a communication network, comprising:

an operating system (OS) less multi-core processing unit comprising at least one processor comprising processor circuitry, configured individually and/or cooperatively to receive one or more user requests from a plurality of user equipments (UEs), wherein the OS less multi-core processing unit is configured to:

initialize a plurality of threads, and executing on the multi-core processing unit including a plurality of cores, for processing one or more user requests from a plurality of UEs;

synchronize the plurality of initialized threads with each other for simultaneous processing of the one or more incoming packets;

execute a reinforcement learning (RL) agent in at least one core of the multi-core processing unit, and determine, by the RL agent, a central processing unit (CPU) load on each of the plurality of cores, and an occupancy level of a plurality of buffers of the plurality of cores for processing the one or more incoming packets by dynamically distributing the one or more incoming packets to the plurality of buffers or the plurality of threads;

enable or disable, by the RL agent, a first flag corresponding to each of the plurality of threads for corresponding functionalities based on the determined CPU load on each of the cores;

enable or disable, by the RL agent, a second flag for distribution of the one or more incoming packets across the plurality of buffers based on the determined occupancy level of the plurality of buffers;

determine at least one thread among the plurality of threads based on the corresponding enabled first flags;

determine at least one buffer among the plurality of buffers based on the enabled second flag; and

process the one or more incoming packets based on each of the at least one determined thread and the at least one determined buffer,

wherein each of the one or more user requests includes a request for processing of the one or more incoming packets, and wherein the plurality of threads are configured to run on the plurality of cores for processing the corresponding functionalities associated with the one or more incoming packets, and

wherein each functionality associated with each of the one or more incoming packets comprise one of a packet data convergence protocol (PDCP) stage, a radio resource control (RLC) stage, a medium access control (MAC) stage, and a functional application platform interface (FAPI) stage.

18 . The network entity as claimed in claim 17 , wherein the occupancy level of the plurality of buffers comprises a difference between an ingress data-rate relating to the one or more incoming packets in the plurality of buffers and the egress data-rate relating to one or more outgoing packets from the plurality of buffers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2022
From: KOTHIWALE, MAHANTESH; DESHMUKH, ANEESH; SHEKHAWAT, JITENDER SINGH; OSTWAL, NAYAN; ANAND, NITIN; KOLA, SRINIVASA RAO
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 061381/0604 →
Priority Claims (2)
IN 202141046320 · Oct 11, 2021 · national
IN 202141046320 · Oct 7, 2022 · national
Continuity (1)
Related Publication 20230110930A1 · Apr 13, 2023
References Cited (18)
US 8296773B2 · Bose et al. · 2012 [cited by applicant]
US 20090007133A1 · Paul · 2009 [cited by examiner]
US 20090249352A1 · Hohensee · 2009 [cited by examiner]
US 20140052965A1 · Sarel · 2014 [cited by applicant]
US 20160239074A1 · Lee et al. · 2016 [cited by applicant]
US 20180203744A1 · Wiesmaier et al. · 2018 [cited by applicant]
US 20190286483A1 · Chitnis · 2019 [cited by examiner]
US 20210075730A1 · Palermo · 2021 [cited by examiner]
US 20220200932A1 · Tsiaflakis · 2022 [cited by examiner]
US 20230205606A1 · Palermo · 2023 [cited by examiner]
CN 106713185 · 2017 [cited by applicant]
CN 107209548 · 2021 [cited by applicant]
JP 6072834 · 2017 [cited by applicant]
WO 2016057817 · 2016 [cited by applicant]
J. F. Martinez and E. Ipek, “Dynamic Multicore Resource Management: A Machine Learning Approach,” in IEEE Micro, vol. 29, No. 5, pp. 8-17, Sep.-Oct. 2009 (Year: 2009). [cited by examiner]
S. Bezzubtsev et al., “An Approach to the Construction of a Network Processing Unit,” 2018 International Scientific and Technical Conference Modern Computer Network Technologies (MoNeTeC), Moscow, Russia, 2018, pp. 1-12… [cited by examiner]
Indian Office Action issued Sep. 13, 2023 in corresponding Indian Patent Application No. 202141046320. [cited by applicant]
Kapoor et al. , “Chronos: Predictable Low Latency for Data Center Applications”, SoCC '12, Oct. 14-17, 2022, 14 pages. [cited by applicant]