IP Library Granted Patent US 11,640,270
Granted Patent B2
US 11,640,270 · App. 17/866,149 · Granted May 2, 2023

Firmware-controlled and table-based conditioning for flexible storage controller

Inventors: Priyanka Nilay Thakore (Mountain View, CA); Chen Xiu (Beijing, CN); Lyle E. Adams (San Jose, CA); Wanqiang Zhang (Beijing, CN)
G06F3/0659G06F3/0619G06F3/0634G06F3/0679
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,640,270
App. No.
17/866,149
Granted
May 2, 2023
Kind
B2
Abstract

Firmware instruction(s) are selected 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) state information. It is determined 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. In the event the determined handling is to perform the selected firmware instructions, an instruction sequence is obtained, from a sequencing table that includes one or more instruction sequences associated with a storage media device, based at least in part on the one or more selected firmware instructions. In the event the determined handling is to perform the one or more selected firmware instructions, the obtained instruction sequence is output to the storage media device.

Claims (57)

1. A storage controller system, comprising:

hardware that is configured to:

select one or more firmware instructions from a plurality of firmware instructions based at least in part on: a configurable conditions table that includes one or more conditions for handling the plurality of firmware instructions and state information;

determine how to handle the one or more selected firmware instructions based at least in part on: the configurable conditions table and the state information; and

determine to handle the one or more selected firmware instructions by performing the one or more selected firmware instructions, wherein the performing the one or more selected firmware instructions includes, obtaining, from a configurable sequencing table that includes one or more instruction sequences associated with a storage media device, an instruction sequence based at least in part on the one or more selected firmware instructions; and

an interface configured to output, to the storage media device, the obtained instruction sequence, wherein:

the configurable sequencing table includes: a first writable control store (WCS) table of command sequences and a second WCS table of physical command instructions;

obtaining the instruction sequence includes:

accessing the first WCS table of command sequences, at a first index included in the one or more selected firmware instructions, to obtain a second index in the second WCS table of physical command instructions; and

accessing the second WCS table of physical command instructions at the second index to obtain one or more physical command instructions; and

outputting the obtained instruction sequence includes using the one or more physical command instructions that are located at least in part at the second index in the second WCS table of physical command instructions.

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. The storage controller system recited in claim 1 , wherein:

the configurable conditions table includes a post-processing condition that includes: a status update location that is specific to the storage media device and a status update value that is specific to the storage media device; and

the hardware is further configured to update the status update location with the status update value, as specified by the post-processing condition.

4. The storage controller system recited in claim 1 , wherein:

the configurable conditions table includes a post-processing condition that includes: a debug-related update location and a debug-related update value, wherein if a firmware of the storage controller system is in a debug mode, the firmware enables the post-processing condition; and

the hardware is further configured to update the debug-related update location with the debug-related update value, as specified by the post-processing condition.

5. The storage controller system recited in claim 1 , wherein:

the storage media device supports a suspend command that permits suspension of one or more of the following: a program command or an erase command;

the state information includes suspend-related state information;

the configurable conditions table includes suspend-related condition information; and

determining how to handle the one or more selected firmware instructions includes comparing the suspend-related state information and the suspend-related condition information.

6. The storage controller system recited in claim 1 , wherein:

the state information includes timer-related state information;

the configurable conditions table includes timer-related condition information; and

determining how to handle the one or more selected firmware instructions includes comparing the timer-related state information and the timer-related condition information.

7. The storage controller system recited in claim 6 , wherein a timer associated with the timer-related state information begins counting in response to one or more of the following: a program command or an erase command.

8. A method, comprising:

providing hardware that is configured to:

select one or more firmware instructions from a plurality of firmware instructions based at least in part on: a configurable conditions table that includes one or more conditions for handling the plurality of firmware instructions and state information;

determine how to handle the one or more selected firmware instructions based at least in part on: the configurable conditions table and the state information; and

determine to handle the one or more selected firmware instructions by performing the one or more selected firmware instructions, wherein the performing the one or more selected firmware instructions includes, obtaining, from a configurable sequencing table that includes one or more instruction sequences associated with a storage media device, an instruction sequence based at least in part on the one or more selected firmware instructions; and

providing an interface configured to output, to the storage media device, the obtained instruction sequence, wherein:

the configurable sequencing table includes: a first writable control store (WCS) table of command sequences and a second WCS table of physical command instructions;

obtaining the instruction sequence includes:

accessing the first WCS table of command sequences, at a first index included in the one or more selected firmware instructions, to obtain a second index in the second WCS table of physical command instructions; and

accessing the second WCS table of physical command instructions at the second index to obtain one or more physical command instructions; and

outputting the obtained instruction sequence includes using the one or more physical command instructions that are located at least in part at the second index in the second WCS table of physical command instructions.

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

10. The method recited in claim 8 , wherein:

the configurable conditions table includes a post-processing condition that includes: a status update location that is specific to the storage media device and a status update value that is specific to the storage media device; and

the hardware is further configured to update the status update location with the status update value, as specified by the post-processing condition.

11. The method recited in claim 8 , wherein:

the configurable conditions table includes a post-processing condition that includes: a debug-related update location and a debug-related update value;

the method further includes placing a firmware in a debug mode and enabling the post-processing condition with the firmware in the debug mode; and

the hardware is further configured to update the debug-related update location with the debug-related update value, as specified by the post-processing condition.

12. The method recited in claim 8 , wherein:

the storage media device supports a suspend command that permits suspension of one or more of the following: a program command or an erase command;

the state information includes suspend-related state information;

the configurable conditions table includes suspend-related condition information; and

determining how to handle the one or more selected firmware instructions includes comparing the suspend-related state information and the suspend-related condition information.

13. The method recited in claim 8 , wherein:

the state information includes timer-related state information;

the configurable conditions table includes timer-related condition information; and

determining how to handle the one or more selected firmware instructions includes comparing the timer-related state information and the timer-related condition information.

14. The method recited in claim 13 , wherein a timer associated with the timer-related state information begins counting in response to one or more of the following: a program command or an erase command.

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/0769 →
Continuity (2)
Provisional Application 63226009 · Jul 27, 2021
Related Publication 20230033116A1 · Feb 2, 2023