IP Library › Granted Patent US 11,586,465
Granted Patent B2
US 11,586,465 · App. 17/138,649 · Granted Feb 21, 2023

Scalable hardware thread scheduler

Inventors: Niraj Nandan (Plano, TX); Mihir Mody (Bangalore, IN)
Assignee: Texas Instruments Incorporated
G06F9/4881G06F9/30098G06F9/3836G06F9/544
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 11,586,465
App. No.
17/138,649
Granted
Feb 21, 2023
Kind
B2
Abstract

A device includes a hardware data processing node configured to execute a respective task, and a hardware thread scheduler including a hardware task scheduler. The hardware task scheduler is coupled to the hardware data processing node and has a producer socket, a consumer socket, and a spare socket. The spare socket is configured to provide data control signals also provided by a first socket of the producer and consumer sockets responsive to a memory-mapped register being a first value. The spare socket is configured to provide data control signals also provided by a second socket of the producer and consumer sockets responsive to the memory-mapped register being a second value.

Claims (63)

1. A device, comprising:

a hardware data processing node configured to execute a respective task; and

a hardware thread scheduler comprising a hardware task scheduler, the hardware task scheduler coupled to the hardware data processing node and having a producer socket, a consumer socket, and a spare socket;

wherein the spare socket is configured to provide data control signals also provided by the producer socket responsive to a memory-mapped register being a first value; and

wherein the spare socket is configured to provide data control signals also provided by the consumer socket responsive to the memory-mapped register being a second value.

2. The device of claim 1 , wherein:

the producer socket is one of a plurality of producer sockets and the spare socket is a spare producer socket;

the spare producer socket is configured to provide data control signals also provided by a first producer socket of the plurality of producer sockets responsive to the memory-mapped register being a first value; and

the spare producer socket is configured to provide data control signals also provided by a second producer socket of the plurality of producer sockets responsive to the memory-mapped register being a second value.

3. The device of claim 2 , wherein:

the memory-mapped register is a first memory-mapped register and the hardware task scheduler is a first hardware task scheduler;

the consumer socket is one of a plurality of consumer sockets and the first hardware task scheduler includes a spare consumer socket;

the spare consumer socket is configured to provide data control signals to and receive data control signals from a producer socket of a second hardware task scheduler responsive to a second memory-mapped register being a third value; and

the spare consumer socket is configured to provide data control signals to and receive data control signals from a producer socket of a third hardware task scheduler responsive to the second memory-mapped register being a fourth value.

4. The device of claim 2 , wherein:

the spare producer socket is a first spare producer socket and the memory-mapped register is a first memory-mapped register;

the hardware task scheduler includes a second spare producer socket;

the second spare producer socket is configured to provide data control signals also provided on the first producer socket responsive to a second memory-mapped register being a third value; and

the second spare producer socket is configured to provide data control signals also provided on the second producer socket responsive to the second memory-mapped register being a fourth value.

5. The device of claim 2 , wherein the spare socket is configured to transition from duplicating data provided on the first producer socket to duplicating data provided on the second producer socket responsive to the memory-mapped register being updated from the first value to the second value.

6. The device of claim 2 , further including a spare scheduler having:

a consumer socket coupled to one of the plurality of producer sockets of the hardware task scheduler; and

a plurality of producer sockets configured to provide data duplicated from the consumer socket.

7. The device of claim 6 , wherein the consumer socket of the spare scheduler is coupled to the spare producer socket.

8. A device, comprising:

a hardware data processing node configured to execute a respective task;

a hardware thread scheduler comprising a hardware task scheduler, the hardware task scheduler coupled to the hardware data processing node and having a plurality of producer sockets; and

a spare scheduler having:

a consumer socket coupled to one of the plurality of producer sockets of the hardware task scheduler; and

a plurality of producer sockets configured to provide data control signals from the consumer socket.

9. The device of claim 8 , wherein the spare scheduler is not directly coupled to a hardware data processing node.

10. The device of claim 8 , wherein the spare scheduler is a first-level spare scheduler and the device further includes:

a second-level spare scheduler having:

a consumer socket coupled to one of the plurality of producer sockets of the first-level spare scheduler; and

a plurality of producer sockets configured to provide data control signals from the consumer socket.

11. The device of claim 10 , wherein one or more memory-mapped registers are configured to specify:

a first coupling between the consumer socket of the first-level spare scheduler and the one of the plurality of producer sockets of the hardware task scheduler; and

a second coupling between the consumer socket of the second-level spare scheduler and the one of the plurality of producer sockets of the first-level spare scheduler.

12. The device of claim 11 , wherein one of the couplings is updated from a first time period to a second time period responsive to an update to the one or more memory-mapped registers between the first and second time periods.

13. The device of claim 8 , wherein:

the hardware task scheduler includes a spare producer socket;

the spare producer socket is configured to provide data control signals also provided on a first producer socket of the plurality of producer sockets responsive to a memory-mapped register being a first value; and

the spare producer socket is configured to provide data control signals also provided on a second producer socket of the plurality of producer sockets responsive to the memory-mapped register being a second value.

14. The device of claim 13 , wherein:

the memory-mapped register is a first memory-mapped register and the hardware task scheduler is a first hardware task scheduler;

the first hardware task scheduler includes a plurality of consumer sockets and a spare consumer socket;

the spare consumer socket is configured to receive data control signals from a producer socket of a second hardware task scheduler responsive to a second memory-mapped register being a third value; and

the spare consumer socket is configured to receive data control signals from a producer socket of a third hardware task scheduler responsive to the second memory-mapped register being a fourth value.

15. A method, comprising:

configuring, by scheduling software executing on a processor, a hardware thread scheduler to perform a thread of tasks, wherein the hardware thread scheduler includes a hardware task scheduler coupled to a hardware data processing node configured to execute a task of the thread;

configuring, by the scheduling software, a spare socket of the hardware task scheduler to provide data control signals also provided on one of a plurality of producer sockets or a plurality of consumer sockets of the hardware task scheduler by writing a value to a memory-mapped register;

providing data control signals also provided on a first producer socket of the plurality of producer sockets to the spare socket responsive to the memory-mapped register being a first value; and

providing data control signals also provided on a second producer socket of the plurality of producer sockets to the spare socket responsive to the memory-mapped register being a second value.

16. The method of claim 15 , further comprising:

writing, by the scheduling software, the first value to the memory-mapped register; and

subsequently writing, by the scheduling software, the second value to the memory-mapped register;

wherein the spare socket transitions from providing data control signals also provided on the first producer socket to providing data control signals also provided on the second producer socket responsive to the memory-mapped register being updated from the first value to the second value.

17. The method of claim 15 , wherein the spare socket is a first spare socket, the method further comprising configuring, by the scheduling software, a second spare socket of the hardware task scheduler to provide data control signals also provided on another one of the plurality of producer sockets or the plurality of consumer sockets of the hardware task scheduler.

18. The method of claim 15 , further comprising configuring, by the scheduling software, a spare scheduler consumer socket to be coupled to one of the plurality of producer sockets of the hardware task scheduler, wherein the spare scheduler includes a plurality of producer sockets configured to provide data control signals from the spare scheduler consumer socket, and wherein the spare scheduler is not directly coupled to a hardware data processing node.

19. The method of claim 15 , wherein the hardware task scheduler is a first hardware task scheduler including a plurality of consumer sockets and a spare consumer socket, the method further comprising:

configuring, by the scheduling software, the spare consumer socket by writing a value to a memory-mapped register;

responsive to the memory-mapped register being a first value, receiving data control signals at the spare consumer socket from a producer socket of a second hardware task scheduler; and

responsive to the memory-mapped register being a second value, receiving data control signals at the spare consumer socket from a producer socket of a third hardware task scheduler.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2020
From: NANDAN, NIRAJ; MODY, MIHIR
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 054781/0424 →
Continuity (2)
Provisional Application 63011143 · Apr 16, 2020
Related Publication 20210326174A1 · Oct 21, 2021