IP Library › Granted Patent US 12,093,739
Granted Patent B2
US 12,093,739 · App. 18/417,445 · Granted Sep 17, 2024

Method and apparatus for managing threads in manycore

Inventors: Ju Hyun Kim (Yongin-si, KR); Jae Wan Yeon (Yongin-si, KR); Kwang Sun Lee (Yongin-si, KR)
Assignee: MetisX CO., Ltd.
G06F9/5038G06F9/5072G06F2209/5018G06F2209/505
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,093,739
App. No.
18/417,445
Granted
Sep 17, 2024
Kind
B2
Abstract

A method for managing threads in a manycore system is launched by one or more processors, and includes receiving, from a host processor, a job descriptor associated with one or more tasks according to an offloading request of the host processor, generating threads for each of the one or more tasks based on the job descriptor, and allocating the generated threads to one or more cores of a cluster that includes a plurality of cores.

Claims (36)

1. A method for managing threads in a manycore system, the method being executed by one or more processors and comprising:

receiving, from a host processor, a job descriptor associated with one or more tasks according to an offloading request of the host processor;

generating threads for each of the one or more tasks based on the job descriptor;

allocating the generated threads to one or more cores of a cluster that includes a plurality of cores;

pushing, into a thread operation queue, operation information associated with an operation of the threads allocated to the one or more cores;

after the pushing the operation information, receiving, by the one or more cores, the operation information from the thread operation queue; and

in response to the one or more cores receiving the operation information, removing the operation information from the thread operation queue,

wherein the operation information includes thread launch information associated with a launch of the generated threads, and the one or more cores launch the generated threads based on the thread launch information,

the operation information further includes thread termination information associated with a termination of the threads launched based on the thread launch information,

the receiving the operation information from the thread operation queue includes, in response to completion of the tasks of the launched threads, receiving, by the one or more cores, thread termination information from the thread operation queue,

if the one or more cores terminate executing the threads based on the thread termination information, the job descriptor is pushed into a termination queue, and

each of the generated threads is launched asynchronously, and each of the launched threads can be terminated asynchronously.

2. The method according to claim 1 , wherein the allocating the generated threads to the one or more cores includes allocating the generated threads to the one or more cores based on thread state information associated with threads previously allocated to the one or more cores, and

the thread state information is updated based on a state register associated with the threads previously allocated to the one or more cores.

3. The method according to claim 1 , wherein the job descriptor pushed into the termination queue is transmitted to the host processor or to a cluster different from the cluster including the one or more cores.

4. The method according to claim 1 , wherein the operation information further includes thread synchronization information associated with a synchronization between the thread launched based on the thread launch information and a thread different from the launched thread,

the receiving the operation information from the thread operation queue further includes receiving, by the one or more cores, the thread synchronization information from the thread operation queue, in response to a request for synchronization between the launched thread and the thread different from the launched thread, and

the launched thread is switched to a sleep state based on the thread synchronization information.

5. The method according to claim 4 , further comprising receiving, by the one or more cores, thread synchronization completion information, in response to completion of the synchronization between the launched thread and the thread different from the launched thread,

wherein the thread switched to the sleep state is released from the sleep state based on the thread synchronization completion information.

6. A non-transitory computer-readable recording medium storing instructions that, when executed by one or more processors, cause performance of the method according to claim 1 .

7. A manycore system comprising:

a plurality of cores; and

a plurality of clusters each including a hardware processor for managing threads launched by one or more of the plurality of cores,

wherein the hardware processor of a respective cluster of the plurality of clusters is connected with the plurality of cores included in the respective cluster of the plurality of clusters, and is configured to:

receive, from a host processor, a job descriptor associated with one or more tasks according to an offloading request of the host processor;

generate threads for each of the one or more tasks based on the job descriptor;

allocate the generated threads to one or more cores of one of the plurality of clusters;

push, into a thread operation queue, operation information associated with an operation of the threads allocated to the one or more cores;

after the pushing the operation information, receiving, by the one or more cores, the operation information from the thread operation queue; and

in response to the one or more cores receiving the operation information, remove the operation information from the thread operation queue,

wherein the operation information includes thread launch information associated with a launch of the generated threads, and the one or more cores launch the generated threads based on the thread launch information,

the operation information further includes thread termination information associated with a termination of the threads launched based on the thread launch information,

the receiving the operation information from the thread operation queue includes, in response to completion of the tasks of the launched threads, receiving, by the one or more cores, thread termination information from the thread operation queue,

if the one or more cores terminate executing the threads based on the thread termination information, the job descriptor is pushed into a termination queue, and

each of the generated threads is launched asynchronously, and each of the launched threads can be terminated asynchronously.

Assignments (2)
CHANGE OF NAME Recorded Jan 13, 2025
From: METISX CO., LTD.
To: XCENA INC.
Reel/Frame 069877/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2024
From: KIM, JU HYUN; YEON, JAE WAN; LEE, KWANG SUN
To: METISX CO., LTD.
Reel/Frame 066185/0141 →
Priority Claims (1)
KR 10-2023-0022751 · Feb 21, 2023 · national
Continuity (1)
Related Publication 20240281293A1 · Aug 22, 2024