CPC G06F 9/4881 (2013.01) | 20 Claims |
1. A storage controller System On Chip (SOC) that interfaces with a host and a storage system, comprising:
a hardware functional module that:
performs 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
sends, 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 firmware includes a host command module that interfaces with the host and a backend command module that interfaces with the storage system; and
the first notification includes a scoreboard identifier; and
the scoreboard module that:
in response to receiving the first notification:
selects one of a plurality of scoreboard counters based at least in part on the scoreboard identifier to obtain a selected scoreboard counter, wherein the plurality of scoreboard counters includes a first scoreboard counter associated with the host command module and a second scoreboard counter associated with the backend command module; and
increments the selected scoreboard counter;
determines whether the selected scoreboard counter exceeds a corresponding scoreboard threshold; and
in the event it is determined that the selected scoreboard counter exceeds the corresponding scoreboard threshold, sends, from the scoreboard module to the firmware, a second notification indicating that the plurality of tasks has completed, including by:
in the event the scoreboard identifier corresponds to the host command module, sending the second notification to the host command module; and
in the event the scoreboard identifier corresponds to the backend command module, sending the second notification to the backend command module.
|