IP Library Patent Application 16425913
Patent Application
App. No. 16/425,913

Method and Apparatus for Facilitating a Trim Process Using Auxiliary Tables

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 None
App. No.
16/425,913
Abstract

A method for processing a trim command via an input and output (“I/O”) command of a solid-state drive (“SSD”) using various tables is disclosed. The process is able to retrieve a trim node state table (“TNST”) from a local memory in response to the trim command. Upon identifying current node status of the TNST associated with a logical block address (“LBA”) referenced by the trim command, a trim operation is processed to a node if the current node status indicates a pending state. After changing the node status to a dirty state when the current node status is in a clean state, the content of a trim invalid bitmap table (“TIBT”) is updated to indicate the status of LBAs when the current node status is in a dirty state.

Claims (38)

1 . A method for processing an input and output (“I/O”) command to a solid-state drive (“SSD”), comprising:

retrieving a trim node state table (“TNST”) from a local memory in response to a trim command;

identifying current node status of the TNST associated with a logical block address (“LBA”) referenced by the trim command;

processing a trim operation to a node if the current node status indicates a pending state;

changing the node status to a dirty state when the current node status is in a clean state; and

updating content of a trim invalid bitmap table (“TIBT”) indicating status of the LBAs when the current node status is in a dirty state.

2 . The method of claim 1 , further comprising processing the I/O command when the current node status is in an idle state.

3 . The method of claim 1 , wherein retrieving a trim node state table (“TNST”) includes loading the TNST from a nonvolatile memory to a volatile memory.

4 . The method of claim 1 , wherein processing a trim operation includes changing the node status to a dirty state.

5 . The method of claim 4 , wherein changing the node status to a dirty state includes incrementing content of a dirty counter.

6 . The method of claim 5 , wherein incrementing content of a dirty counter includes updating the content of the TIBT.

7 . The method of claim 6 , wherein updating the content of the TIBT includes processing the I/O command.

8 . The method of claim 1 , further comprising indexing a plurality of entries of the TIBT by a node entry of the TNST.

9 . The method of claim 8 , further comprising indicating node status for each node of TNST by a trim snapshot bit table.

10 . An apparatus configured to store information, comprising:

a nonvolatile memory (“NVM”) configured to store information persistently and organized into a plurality of pages addressable by a plurality of local block addresses (“LBAs”);

a trim invalid bitmap table (“TIBT”) coupled to the NVM and configured to contain a plurality of entries wherein each entry is assigned to an LBA indicating status of the LBA; and

a trim node state table (“TNST”) coupled to the TIBT and configured to include multiple nodes wherein each node points to a group of TIBT entries indicating bit states associated with the group of TIBT.

11 . The apparatus of claim 10 , further includes a trim snapshot bit table (“TSBT”) coupled to the TNST and configured to identify which dirty node within the TNST needs to be saved.

12 . The apparatus of claim 11 , further includes a volatile memory configured to store the TIBT, the TNST, and TSBT for optimal performance.

13 . The apparatus of claim 11 , further includes a backup power supply configured to save content of the TSBT when power down is detected.

14 . The apparatus of claim 13 , wherein the backup power supply is a capacitor.

15 . A method for backup information relating to trim command for a solid-state drive (“SSD”), comprising:

detecting an unintended system power loss;

activating a backup power supply to maintain a backup operation for a trim memory storing memory block deallocation information;

identifying and retrieving a trim node state table (“TNST”) indicating current states of a trim invalid bitmap table (“TIBT”) which represents memory deallocation status associated to logical block addresses (“LBAs”) from a local memory in response to the system power loss;

processing and extracting at least a portion of the TNST reflecting status of TIBT; and

storing the portion of the TNST in a predefined location of non-volatile memory (“NVM”).

16 . The method of claim 15 , further comprising extracting a portion of TIBT corresponding to all trim nodes with ‘dirty’ state and storing the portion of TIBT in a predefined NVM location designated for storing TIBT before powering down the backup power supply.

18 . The method of claim 15 , further comprising:

identifying a trim snapshot bit table (“TSBT”) indicating a snapshot of the TNST shortly before detection of system power loss; and

storing the TSBT in a predefined NVM location designated for storing TSBT before powering down the backup power supply.

19 . The method of claim 15 , further comprising:

retrieving a crash recovery dirty node processing pointer (“CDNPtr”) to continue a read command upon detection of power restoration; and

processing trim of the node if a TNST[LBA] state has a ‘pending’ state.

20 . The method of claim 15 , further comprising:

retrieving a crash recovery dirty node processing pointer (“CDNPtr”) to continue a read command upon detection of power restoration; and

processing trim of the node if a TNST[LBA] state has a ‘dirty’ state and LBAs are greater than the CDNPtr.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2022
From: CNEX LABS, INC.
To: POINT FINANCIAL, INC.
Reel/Frame 058951/0738 →