IP Library Granted Patent US 11,650,753
Granted Patent B2
US 11,650,753 · App. 17/866,169 · Granted May 16, 2023

Firmware-controlled and table-based conditioning for synchronous handling of exception cases

Inventors: Priyanka Nilay Thakore (Mountain View, CA); Chen Xiu (Beijing, CN); Lyle E. Adams (San Jose, CA); Wanqiang Zhang (Beijing, CN)
G06F3/0655G06F3/0604G06F3/0679G06F9/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,650,753
App. No.
17/866,169
Granted
May 16, 2023
Kind
B2
Abstract

In response to receiving an exception indication, an exception-handling state variable in state information is asserted. Firmware instruction(s) are selected from a plurality of firmware instructions based at least in part on: (1) a conditions table that includes condition(s) for handling the plurality of firmware instructions and (2) the state information that includes the exception-handling state variable. It is determined how to handle the selected firmware instruction(s) based at least in part on: (1) the conditions table and (2) the state information that includes the exception-handling state variable where. The plurality of firmware instructions includes: (1) a non-exception-handling set of firmware instruction(s) and (2) an exception-handling set of firmware instruction(s). The conditions table prioritizes execution, by the hardware, of the exception-handling set of firmware instructions over that of the non-exception-handling set of firmware instructions in the event the exception-handling state variable is asserted. A storage media device is communicated with via an interface.

Claims (70)

1. A storage controller system, comprising:

firmware that is configured to: in response to receiving an indication associated with an exception, assert an exception-handling state variable included in state information;

hardware that is configured to:

select one or more firmware instructions from a plurality of firmware instructions based at least in part on: (1) a conditions table that includes one or more conditions for handling the plurality of firmware instructions and (2) the state information that includes the exception-handling state variable; and

determine how to handle the one or more selected firmware instructions based at least in part on: (1) the conditions table and (2) the state information that includes the exception-handling state variable, wherein:

the plurality of firmware instructions includes: (1) a non-exception-handling set of one or more firmware instructions that are unrelated to exception handling and (2) an exception-handling set of one or more firmware instructions that are related to exception handling; and

the conditions table prioritizes execution, by the hardware, of the exception-handling set of firmware instructions over that of the non-exception-handling set of firmware instructions in the event the exception-handling state variable is asserted; and

an interface that is configured to communicate with a storage media device, wherein:

the storage media device includes a plurality of dies;

the state information includes a plurality of die-specific state information;

each one of the plurality of die-specific state information includes a die-specific exception-handling state variable;

the die-specific exception-handling state variable includes a freeze bit;

the firmware is further configured to put the exception-handling set of firmware instructions into a prioritized queue; and

selecting the one or more firmware instructions from the plurality of firmware instructions includes:

in response to the freeze bit being asserted, selecting, for a die in the plurality of dies that corresponds to the asserted freeze bit, the prioritized queue with the exception-handling set of firmware instructions over a lower priority queue with the non-exception-handling set of firmware instructions, as prescribed by the conditions table; and

in response to the freeze bit being de-asserted, resuming selection of, for the die in the plurality of dies that corresponds to the asserted freeze bit, the lower priority queue with the non-exception-handling set of firmware instructions, as prescribed by the conditions table.

2. The storage controller system recited in claim 1 , wherein the hardware includes one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

3. A storage controller system, comprising:

firmware that is configured to: in response to receiving an indication associated with an exception, assert an exception-handling state variable included in state information;

hardware that is configured to:

select one or more firmware instructions from a plurality of firmware instructions based at least in part on: (1) a conditions table that includes one or more conditions for handling the plurality of firmware instructions and (2) the state information that includes the exception-handling state variable; and

determine how to handle the one or more selected firmware instructions based at least in part on: (1) the conditions table and (2) the state information that includes the exception-handling state variable, wherein:

the plurality of firmware instructions includes: (1) a non-exception-handling set of one or more firmware instructions that are unrelated to exception handling and (2) an exception-handling set of one or more firmware instructions that are related to exception handling; and

the conditions table prioritizes execution, by the hardware, of the exception-handling set of firmware instructions over that of the non-exception-handling set of firmware instructions in the event the exception-handling state variable is asserted; and

an interface that is configured to communicate with a storage media device, wherein:

the storage media device includes a plurality of dies;

the state information includes a plurality of die-specific state information;

each one of the plurality of die-specific state information includes a die-specific exception-handling state variable;

the die-specific exception-handling state variable includes a flush bit; and

determining how to handle the one or more selected firmware instructions includes: in response to the flush bit being asserted, discarding, for a die in the plurality of dies that corresponds to the asserted flush bit, the non-exception-handling set of firmware instructions that are in a queue to-be-flushed, as prescribed by the conditions table.

4. The storage controller system recited in claim 3 , wherein discarding further includes selectively discarding based on instruction type so that:

a first non-exception-handling firmware instruction, having a first instruction type and included in the queue to-be-flushed, is kept in the queue to-be-flushed after flushing; and

a second non-exception-handling firmware instruction, having a second instruction type and included in the queue to-be-flushed, is discarded from the queue to-be-flushed after flushing.

5. The storage controller system recited in claim 3 , wherein discarding further includes re-routing a non-exception-handling firmware instruction that has passed by a skip-versus-execute fork, back to the skip-versus-execute fork via a path for partially-executed firmware instructions.

6. The storage controller system recited in claim 3 , wherein the hardware includes one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

7. A method, comprising:

providing firmware that is configured to: in response to receiving an indication associated with an exception, assert an exception-handling state variable included in state information;

providing hardware that is configured to:

select one or more firmware instructions from a plurality of firmware instructions based at least in part on: (1) a conditions table that includes one or more conditions for handling the plurality of firmware instructions and (2) the state information that includes the exception-handling state variable; and

determine how to handle the one or more selected firmware instructions based at least in part on: (1) the conditions table and (2) the state information that includes the exception-handling state variable, wherein:

the plurality of firmware instructions includes: (1) a non-exception-handling set of one or more firmware instructions that are unrelated to exception handling and (2) an exception-handling set of one or more firmware instructions that are related to exception handling; and

the conditions table prioritizes execution, by the hardware, of the exception-handling set of firmware instructions over that of the non-exception-handling set of firmware instructions in the event the exception-handling state variable is asserted; and

providing an interface that is configured to communicate with a storage media device, wherein:

the storage media device includes a plurality of dies;

the state information includes a plurality of die-specific state information;

each one of the plurality of die-specific state information includes a die-specific exception-handling state variable;

the die-specific exception-handling state variable includes a freeze bit;

the firmware is further configured to put the exception-handling set of firmware instructions into a prioritized queue; and

selecting the one or more firmware instructions from the plurality of firmware instructions includes:

in response to the freeze bit being asserted, selecting, for a die in the plurality of dies that corresponds to the asserted freeze bit, the prioritized queue with the exception-handling set of firmware instructions over a lower priority queue with the non-exception-handling set of firmware instructions, as prescribed by the conditions table; and

in response to the freeze bit being de-asserted, resuming selection of, for the die in the plurality of dies that corresponds to the asserted freeze bit, the lower priority queue with the non-exception-handling set of firmware instructions, as prescribed by the conditions table.

8. The method recited in claim 7 , wherein the hardware includes one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

9. A method, comprising:

providing firmware that is configured to: in response to receiving an indication associated with an exception, assert an exception-handling state variable included in state information;

providing hardware that is configured to:

select one or more firmware instructions from a plurality of firmware instructions based at least in part on: (1) a conditions table that includes one or more conditions for handling the plurality of firmware instructions and (2) the state information that includes the exception-handling state variable; and

determine how to handle the one or more selected firmware instructions based at least in part on: (1) the conditions table and (2) the state information that includes the exception-handling state variable, wherein:

the plurality of firmware instructions includes: (1) a non-exception-handling set of one or more firmware instructions that are unrelated to exception handling and (2) an exception-handling set of one or more firmware instructions that are related to exception handling; and

the conditions table prioritizes execution, by the hardware, of the exception-handling set of firmware instructions over that of the non-exception-handling set of firmware instructions in the event the exception-handling state variable is asserted; and

providing an interface that is configured to communicate with a storage media device, wherein:

the storage media device includes a plurality of dies;

the state information includes a plurality of die-specific state information;

each one of the plurality of die-specific state information includes a die-specific exception-handling state variable;

the die-specific exception-handling state variable includes a flush bit; and

determining how to handle the one or more selected firmware instructions includes: in response to the flush bit being asserted, discarding, for a die in the plurality of dies that corresponds to the asserted flush bit, the non-exception-handling set of firmware instructions that are in a queue to-be-flushed, as prescribed by the conditions table.

10. The method recited in claim 9 , wherein discarding further includes selectively discarding based on instruction type so that:

a first non-exception-handling firmware instruction, having a first instruction type and included in the queue to-be-flushed, is kept in the queue to-be-flushed after flushing; and

a second non-exception-handling firmware instruction, having a second instruction type and included in the queue to-be-flushed, is discarded from the queue to-be-flushed after flushing.

11. The method recited in claim 9 , wherein discarding further includes re-routing a non-exception-handling firmware instruction that has passed by a skip-versus-execute fork, back to the skip-versus-execute fork via a path for partially-executed firmware instructions.

12. The method recited in claim 9 , wherein the hardware includes one or more of the following: an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

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 Oct 14, 2022
From: THAKORE, PRIYANKA NILAY; XIU, CHEN; ADAMS, LYLE E.; ZHANG, WANQIANG
To: BEIJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 061430/0514 →
Continuity (2)
Provisional Application 63226009 · Jul 27, 2021
Related Publication 20230034009A1 · Feb 2, 2023