IP Library Granted Patent US 11,853,795
Granted Patent B1
US 11,853,795 · App. 18/124,199 · Granted Dec 26, 2023

Scoreboard for tracking completion of tasks

Inventors: Priyanka Nilay Thakore (Mountain View, CA); Chen Xiu (Beijing, CN); Lyle E. Adams (San Jose, CA); Deqiang Yang (Beijing, CN)
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 11,853,795
App. No.
18/124,199
Granted
Dec 26, 2023
Kind
B1
Abstract

A hardware functional module in a System On Chip (SOC) performs a given task, where the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC. A first notification that the given task has completed is sent from the hardware functional module to a scoreboard module, where the scoreboard module is implemented in hardware on the SOC. The scoreboard module: in response to receiving the first notification, increments a counter; determines whether the counter exceeds a threshold; and in the event it is determined that the counter exceeds the threshold, sends, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed.

Claims (198)

1. A System On Chip (SOC), comprising:

a hardware functional module that is configured to:

perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC; and

send, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC;

the scoreboard module, wherein the scoreboard module is configured to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed; and

the firmware, wherein:

the counter has a first size;

the counter is one of a plurality of counters in the SOC; and

the plurality of counters includes a second counter having a second size.

2. The SOC recited in claim 1 , wherein the hardware functional module is implemented on an application-specific integrated circuit (ASIC).

3. A System On Chip (SOC), comprising:

a hardware functional module that is configured to:

perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC; and

send, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC;

the scoreboard module, wherein the scoreboard module is configured to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed; and

the firmware, wherein:

the hardware functional module is configured to perform the given task in response to receiving a command message that includes a scoreboard identifier (SBID) that is associated with the counter; and

the scoreboard module is further configured to select the counter from a plurality of counters based at least in part on the SBID.

4. A System On Chip (SOC), comprising:

a hardware functional module that is configured to:

perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC; and

send, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC;

the scoreboard module, wherein the scoreboard module is configured to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed; and

the firmware, wherein:

the hardware functional module is configured to perform the given task in response to receiving a command message that includes a scoreboard identifier (SBID) that is associated with a location in a data structure;

the hardware functional module is further configured to write state information associated with the given task to the location associated with the SBID; and

the firmware is further configured to:

access the state information at the location using the SBID; and

determine a next step based at least in part on the state information.

5. A System On Chip (SOC), comprising:

a hardware functional module that is configured to:

perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC; and

send, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC;

the scoreboard module, wherein the scoreboard module is configured to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed; and

the firmware, wherein:

the firmware is further configured to increment by zero one or more of the following: the counter or the threshold; and

the scoreboard module is further configured to:

determine whether the counter exceeds the threshold in response to any change to the counter, including incrementing the counter by zero; and

determine whether the counter exceeds the threshold in response to any change to the threshold, including incrementing the threshold by zero.

6. A System On Chip (SOC), comprising:

a hardware functional module that is configured to:

perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC; and

send, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC;

the scoreboard module, wherein the scoreboard module is configured to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed; and

the firmware, wherein:

the hardware functional module is further configured to perform the given task in response to receiving a command message that includes a scoreboard identifier (SBID) that is associated with target information in the scoreboard module; and

the scoreboard module is further configured to:

access the target information using the SBID, wherein the target information includes an interrupt associated with the firmware; and

send the second notification, including by sending the second notification to the firmware via the interrupt.

7. A System On Chip (SOC), comprising:

a hardware functional module that is configured to:

perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC; and

send, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC;

the scoreboard module, wherein the scoreboard module is configured to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed; and

the firmware, wherein:

the hardware functional module is further configured to perform the given task in response to receiving a command message that includes a scoreboard identifier (SBID) that is associated with target information in the scoreboard module; and

the scoreboard module is further configured to:

access the target information using the SBID, wherein the target information includes a firmware communication queue; and

send the second notification, including by sending the second notification to the firmware via the firmware communication queue.

8. A System On Chip (SOC), comprising:

a hardware functional module that is configured to:

perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC; and

send, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC;

the scoreboard module, wherein the scoreboard module is configured to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed; and

the firmware, wherein:

the hardware functional module is further configured to perform the given task in response to receiving a command message that includes a comparison enable that is set to a DISABLE value in the event a value for the threshold is unknown; and

the scoreboard module is further configured to:

in the event the comparison enable is set to an ENABLE value, determine whether the counter exceeds the threshold; and

in the event the comparison enable is set to the DISABLE value, bypass the determination of whether the counter exceeds the threshold.

9. A System On Chip (SOC), comprising:

a hardware functional module that is configured to:

perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC; and

send, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC;

the scoreboard module, wherein the scoreboard module is configured to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed; and

the firmware, wherein:

the hardware functional module is further configured to:

perform the given task in response to receiving a command message that includes a first scoreboard identifier (SBID) and a second SBID; and

send the first notification, including by sending the first SBID and the second SBID to the scoreboard module; and

the scoreboard module is further configured to:

select the counter and a second counter from a plurality of counters based at least in part on the first SBID and the second SBID, respectively;

in response to receiving the first notification, increment the second counter;

determine whether the second counter exceeds a second threshold; and

in the event it is determined that the second counter exceeds the second threshold, send, from the scoreboard module to a target that is associated with the second SBID, a third notification indicating that a second plurality of tasks have completed.

10. A method, comprising:

using a hardware functional module in a System On Chip (SOC) to perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC;

sending, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC; and

using the scoreboard module to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed, wherein:

the counter has a first size;

the counter is one of a plurality of counters in the SOC; and

the plurality of counters includes a second counter having a second size.

11. The method recited in claim 10 , wherein the hardware functional module is implemented on an application-specific integrated circuit (ASIC).

12. A method, comprising:

using a hardware functional module in a System On Chip (SOC) to perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC;

sending, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC; and

using the scoreboard module to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed, wherein:

the hardware functional module performs the given task in response to receiving a command message that includes a scoreboard identifier (SBID) that is associated with the counter; and

the method further includes using the scoreboard module to select the counter from a plurality of counters based at least in part on the SBID.

13. A method, comprising:

using a hardware functional module in a System On Chip (SOC) to perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC;

sending, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC; and

using the scoreboard module to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed, wherein:

the hardware functional module performs the given task in response to receiving a command message that includes a scoreboard identifier (SBID) that is associated with a location in a data structure;

the method further includes using the hardware functional module to write state information associated with the given task to the location associated with the SBID; and

the method further includes using the firmware to:

access the state information at the location using the SBID; and

determine a next step based at least in part on the state information.

14. A method, comprising:

using a hardware functional module in a System On Chip (SOC) to perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC;

sending, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC; and

using the scoreboard module to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed, wherein the method further includes:

using the firmware to increment by zero one or more of the following: the counter or the threshold; and

using the scoreboard module to:

determine whether the counter exceeds the threshold in response to any change to the counter, including incrementing the counter by zero; and

determine whether the counter exceeds the threshold in response to any change to the threshold, including incrementing the threshold by zero.

15. A method, comprising:

using a hardware functional module in a System On Chip (SOC) to perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC;

sending, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC; and

using the scoreboard module to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed, wherein:

the hardware functional module performs the given task in response to receiving a command message that includes a scoreboard identifier (SBID) that is associated with target information in the scoreboard module; and

the method further includes using the scoreboard module to:

access the target information using the SBID, wherein the target information includes an interrupt associated with the firmware; and

send the second notification, including by sending the second notification to the firmware via the interrupt.

16. A method, comprising:

using a hardware functional module in a System On Chip (SOC) to perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC;

sending, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC; and

using the scoreboard module to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed, wherein:

the hardware functional module performs the given task in response to receiving a command message that includes a scoreboard identifier (SBID) that is associated with target information in the scoreboard module; and

the method further includes using the scoreboard module to:

access the target information using the SBID, wherein the target information includes a firmware communication queue; and

send the second notification, including by sending the second notification to the firmware via the firmware communication queue.

17. A method, comprising:

using a hardware functional module in a System On Chip (SOC) to perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC;

sending, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC; and

using the scoreboard module to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed, wherein:

the hardware functional module performs the given task in response to receiving a command message that includes a comparison enable that is set to a DISABLE value in the event a value for the threshold is unknown; and

the method further includes using the scoreboard module to:

in the event the comparison enable is set to an ENABLE value, determine whether the counter exceeds the threshold; and

in the event the comparison enable is set to the DISABLE value, bypass the determination of whether the counter exceeds the threshold.

18. A method, comprising:

using a hardware functional module in a System On Chip (SOC) to perform a given task, wherein the given task is one of a plurality of tasks that are associated with a work item and the work item is managed by firmware in the SOC;

sending, from the hardware functional module to a scoreboard module, a first notification that the given task has completed, wherein the scoreboard module is implemented in hardware on the SOC; and

using the scoreboard module to:

in response to receiving the first notification, increment a counter;

determine whether the counter exceeds a threshold; and

in the event it is determined that the counter exceeds the threshold, send, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks have completed, wherein the method further includes:

using the hardware functional module to:

perform the given task in response to receiving a command message that includes a first scoreboard identifier (SBID) and a second SBID; and

send the first notification, including by sending the first SBID and the second SBID to the scoreboard module; and

using the scoreboard module to:

select the counter and a second counter from a plurality of counters based at least in part on the first SBID and the second SBID, respectively;

in response to receiving the first notification, increment the second counter;

determine whether the second counter exceeds a second threshold; and

in the event it is determined that the second counter exceeds the second threshold, send, from the scoreboard module to a target that is associated with the second SBID, a third notification indicating that a second plurality of tasks have completed.

Assignments (2)
CHANGE OF NAME Recorded Aug 13, 2025
From: BEIJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
To: NANJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 072008/0631 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2023
From: THAKORE, PRIYANKA NILAY; XIU, CHEN; ADAMS, LYLE E.; YANG, DEQIANG
To: BEIJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 064488/0987 →
Continuity (1)
Provisional Application 63392321 · Jul 26, 2022