# US 2026/0093527 A1 · Scheduler for reconfigurable accelerator

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2026/0093527 A1
- Document ID: US20260093527A1
- Status: Published application
- Kind: A1
- Application number: 19/270,767
- Filed: 2025-07-16
- Published: 2026-04-02
- Earliest claimed: 2024-09-30
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Dong-hyeon PARK; Hyungwoo LEE
- Web page: https://patentgrep.com/patent/US20260093527A1

## CPC

- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/485: {Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence)}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/5033: {considering data affinity}
- G06F 9/5044: {considering hardware capabilities}
- G06F 9/505: {considering the load}
- G06F 9/5088: {involving task migration}
- G06F 2209/483: Multiproc
- G06F 2209/501: Performance criteria
- G06F 2209/5021: Priority
- G06F 2209/509: Offload
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of scheduling tasks includes: monitoring an accelerator to determine a resource state thereof; in response to receiving a first task from a processor among processors, determining that the first task is dispatchable for execution by the reconfigurable accelerator based on the resource state; in response to receiving a second task from any of the processors, determining that the second task is not dispatchable for execution by the accelerator based on the resource state; based on the first task being determined to be dispatchable, dispatching the first task to the accelerator for execution thereby; based on the second task being determined to be not dispatchable, adding the second task to a queue ordering tasks to be executed by the reconfigurable accelerator; and based on a change in the resource state, according to the ordering, dispatching a task in the queue to the accelerator.

## Claims

### Claim 1

A method of scheduling tasks performed by a scheduler, the method comprising:
monitoring a reconfigurable accelerator to determine a resource state of the reconfigurable accelerator;
in response to a first task being received from a processor among processors sharing the reconfigurable accelerator, determining that the first task is dispatchable for execution by the reconfigurable accelerator based on the resource state;
in response to a second task being received from any of the processors sharing the reconfigurable accelerator, determining that the second task is not dispatchable for execution by the reconfigurable accelerator based on the resource state;
based on the first task being determined to be dispatchable, dispatching the first task to the reconfigurable accelerator for execution thereby;
based on the second task being determined to be not dispatchable, adding the second task to a queue used to manage an order of tasks to be executed by the reconfigurable accelerator; and
based on a change in the resource state, according to the order, dispatching a task in the queue to the reconfigurable accelerator.

### Claim 2 (depends on 1)

The method of claim 1, wherein
the monitoring comprises receiving an availability state of processing hardware and memory of the reconfigurable accelerator at predetermined time intervals.

### Claim 3 (depends on 1)

The method of claim 1, wherein
the determining that the first task is dispatchable comprises comparing available memory and processing-hardware capacity of the reconfigurable accelerator with a data size and processing-hardware requirement of the first task.

### Claim 4 (depends on 1)

The method of claim 1, wherein
the dispatching of the first task to the reconfigurable accelerator comprises:
instructing a processor controller to generate a bitstream to be transmitted to the reconfigurable accelerator; and
in response to the bitstream being transmitted to the reconfigurable accelerator, operation of the processor processing the task thereon is stopped.

### Claim 5 (depends on 1)

The method of claim 1, wherein
the determining that the second task is not dispatchable is based on determining that either available memory of the reconfigurable processor does not satisfy a data size of the second task or that processing-hardware capacity of the reconfigurable accelerator does not satisfy a processing-hardware requirement of the second task.

### Claim 6 (depends on 1)

The method of claim 1, wherein
the adding of the second task to the queue comprises:
determining that a third task represented in the queue has a data pointer corresponding to a data pointer of the second task, and based thereon adding the second task in a position of the queue that is set relative to a position of the third task in the queue.

### Claim 7 (depends on 1)

The method of claim 1, wherein
the adding of the second task to the queue comprises:
determining that a third task represented in the queue has a hardware configuration that overlaps with a hardware configuration of the second task, and based thereon adding the second task in a position of the queue that is set relative to a position of the third task in the queue.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
receiving, from the any of the processors, an execution completion signal corresponding to a third task; and
deleting the third task from the queue based on the execution completion signal.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
during execution of the reconfigurable accelerator, based on an available processing-hardware capacity of the resource state space being confirmed, reconfiguring processing hardware of the reconfigurable accelerator to execute a next task in the queue according to the order.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
dispatching a third task included in the queue to the reconfigurable accelerator according to the order and based on a change in the resource state.

### Claim 11 (depends on 1)

The method of claim 1, wherein
the adding of the second task to the queue comprises:
in response to an age of the second task in the queue exceeding a threshold, adjusting processing priority of the second task in the queue.

### Claim 12 (depends on 1)

The method of claim 1, wherein
the reconfigurable accelerator is a coarse-grained reconfigurable array (CGRA) accelerator.

### Claim 13 (depends on 1)

A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform the method of claim 1.

### Claim 14

A scheduler comprising:
one or more processors; and
a memory storing instructions that when executed by the one or more processors cause the scheduler to:
monitor a reconfigurable accelerator to determine a resource state of the reconfigurable accelerator;
in response to a first task being received from a processor among processors sharing the reconfigurable accelerator, determine that the first task is dispatchable for execution by the reconfigurable accelerator based on the resource state;
in response to a second task being received from any of the processors sharing the reconfigurable accelerator, determine that the second task is not dispatchable for execution by the reconfigurable accelerator based on the resource state;
based on the first task being determined to be dispatchable, dispatch the first task to the reconfigurable accelerator;
based on the second task being determined to be not dispatchable, add the second task to a queue used to manage an order of tasks to be executed by the reconfigurable accelerator; and
based on a change in the resource state, according to the order, dispatch a task included in the queue to the reconfigurable accelerator.

### Claim 15 (depends on 14)

The scheduler of claim 14, wherein
the monitoring comprises receiving an availability state of processing hardware and memory of the reconfigurable accelerator at predetermined time intervals.

### Claim 16 (depends on 14)

The scheduler of claim 14, wherein
the determining that the first task is dispatchable comprises comparing available memory and processing-hardware capacity of the reconfigurable accelerator with a data size and processing-hardware requirement of the first task.

### Claim 17 (depends on 14)

The scheduler of claim 14, wherein
the dispatching of the first task to the reconfigurable accelerator comprises:
instructing a processor controller to generate a bitstream to be transmitted to the reconfigurable accelerator; and
in response to the bitstream being transmitted to the reconfigurable accelerator, operation of the processor processing the task is stopped.

### Claim 18 (depends on 16)

The scheduler of claim 16, wherein
the determining that the second task is not dispatchable is based on determining that either available memory of the reconfigurable processor does not satisfy a data size of the second task or that processing-hardware capacity of the reconfigurable accelerator does not satisfy a processing-hardware requirement of the second task.

### Claim 19 (depends on 14)

The scheduler of claim 14, wherein
the adding of the second task to the queue comprises:
determining that a third task represented in the queue has a data pointer corresponding to a data pointer of the second task, and based thereon adding the second task in a position of the queue that is set relative to a position of the third task in the queue.

### Claim 20 (depends on 14)

The scheduler of claim 14, wherein
the adding of the second task to the queue comprises:
determining that a third task represented in the queue has a hardware configuration that overlaps with a hardware configuration of the second task, and based thereon adding the second task in a position of the queue that is set relative to a position of the third task in the queue.

### Claim 21 (depends on 14)

The scheduler of claim 14, wherein
the scheduler is configured to:
receive, from any of the processors, an execution completion signal corresponding to a third task; and
delete the third task from the queue based on the execution completion signal.

### Claim 22 (depends on 14)

The scheduler of claim 14, wherein
during execution of the reconfigurable accelerator, based on an available processing-hardware capacity of the resource estate space being confirmed, reconfigure the processing hardware of the reconfigurable accelerator to execute a next task in the queue according to the order.

### Claim 23 (depends on 14)

The scheduler of claim 14, wherein
dispatching a third task included in the queue to the reconfigurable accelerator according to the order is based on a change in the resource state.

### Claim 24 (depends on 14)

The scheduler of claim 14, wherein
the adding of the second task to the queue comprises:
in response to an age of the second task in the queue exceeding a threshold, adjusting processing priority of the second task in the queue.

### Claim 25

A method, comprising:
receiving, by an accelerator device, tasks executing on cores and transferred to the accelerator by the cores, wherein the cores analyze the tasks to select the tasks for transfer to the accelerator device, and each received task includes a task description specifying values of respective attributes of the task;
managing a first-in-first-out (FIFO) task queue by the accelerator device, the managing comprising receiving the tasks and adding entries to the task queue that respectively represent the received tasks and that include the respective task descriptions of the tasks, wherein each time a new entry for a new task and its task description are added to the queue:
it is determined whether at least a portion of the task description of the new task matches a corresponding portion of the task description of any entry in the task queue;
when it is determined that at least a portion of the task description of the new task matches a corresponding portion of the task description of any entry in the task queue, the new entry for the task is added at a position in the task queue that corresponds to the position in the task queue of the entry with the matching task description;
when it is determined that at least a portion of the task description of the new task does not match a corresponding portion of the task description of any entry in the task queue, the new entry for the task is added to the end of the task queue.

### Claim 26 (depends on 25)

The method of claim 25, wherein each task description describes, about its corresponding task, a data size requirement of the corresponding task, a processing-hardware requirement of the corresponding task, and a location of data used by the corresponding task.

### Claim 27 (depends on 25)

The method of claim 25, wherein the accelerator device has reconfigurable processing elements (PEs), and wherein each task description describes, about its corresponding task, a processing-hardware requirement of the corresponding task, and wherein while a first task is being executed by the accelerator device, based on monitoring a state of unallocated PEs of the accelerator device, and based on the processing-hardware requirement of a second task that is being dequeued from the task queue for execution by the accelerator device: configuring some of the unallocated PEs for use by the second task while the first task is executing and before the second task begins executing.
