# US 12,223,187 B2 · SSD supporting deallocate summary bit table and associated SSD operations

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,223,187 B2
- Document ID: US12223187B2
- Status: Granted
- Kind: B2
- Application number: 18/195,565
- Filed: 2023-05-10
- Published: 2023-08-31
- Granted: 2025-02-11
- Earliest claimed: 2021-09-30
- Assignees: Kioxia Corporation
- Applicants: Kioxia Corporation
- Inventors: Saswati Das; Manish Kadam
- Web page: https://patentgrep.com/patent/US12223187B2

## CPC

- G06F 3/061: {Improving I/O performance}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 11/1441: {Resetting or repowering}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

The present invention is directed to an SSD that stores data in a plurality of regions of the SSD, each of the regions associated with a plurality of logical cluster addresses. The SSD also sets a deallocation status of each of the plurality of regions in a deallocate flag bitmap and sets a deallocation status of one or more sections of the deallocate flag bitmap in a deallocate summary table, wherein each of the one or more sections corresponds to more than one of the plurality of regions. In response to a shutdown or loss of power event, The SSD writes to non-volatile memory only sections of the deallocation flag bitmap with a predetermined deallocation status in the deallocate summary table. The SSD stores the deallocate flag bitmap is stored in a first volatile memory and stores the deallocate summary table is stored in a second volatile memory, different from the first volatile memory.

## Claims

### Claim 1

A method of managing a Solid State Drive (SSD), the method comprising:
storing data in a plurality of regions of the SSD;
setting a deallocation status of each of the plurality of regions in a deallocate flag bitmap;
setting a deallocation status of one or more sections of the deallocate flag bitmap in a deallocate summary table,
wherein each of the one or more sections corresponds to more than one of the plurality of regions, and
the deallocate summary table is stored in a first volatile memory, different from a second volatile memory.

### Claim 2 (depends on 1)

The method of claim 1, wherein each of the regions of the plurality of regions is associated with a plurality of logical cluster addresses.

### Claim 3 (depends on 1)

The method of claim 1, wherein the deallocate flag bitmap is stored in a second volatile memory, different from the first volatile memory.

### Claim 4 (depends on 1)

The method of claim 1, further comprising, in response to shutdown or loss of power, writing to non-volatile memory only sections of the deallocate flag bitmap with a predetermined deallocation status in the deallocate summary table.

### Claim 5 (depends on 1)

The method of claim 1, wherein the predetermined allocation status indicates a section is dirty.

### Claim 6 (depends on 1)

The method of claim 1, wherein each deallocation status of each of the one or more sections of the deallocate summary is a two-bit status.

### Claim 7 (depends on 1)

The method of claim 1, the method further comprising:
updating the deallocation status of a region of the plurality of regions in response to one of a deallocation command, a beginning of a background deallocation process for the region, or a completion of the background deallocation process for the region.

### Claim 8 (depends on 7)

The method of claim 7, the method further comprising:
updating the deallocation status of a section comprising the region in response to updating the deallocation status of the region.

### Claim 9 (depends on 1)

The method of claim 1, wherein the first volatile memory is DRAM.

### Claim 10 (depends on 1)

The method of claim 1, wherein the second non-volatile memory is SRAM or DTCM.

### Claim 11 (depends on 1)

The method of claim 1, the method further comprising:
setting an entry in a deallocate flag address pointer table based on the deallocation status of a section of the one or more sections of the deallocate flag bitmap corresponding to the entry.

### Claim 12 (depends on 1)

The method of claim 1, the method further comprising:
setting an entry in a deallocate flag pointer address table based on the deallocation status of a subset of a plurality of regions corresponding to the entry.

### Claim 13 (depends on 1)

The method of claim 1, the method further comprising:
storing an entry in a deallocate flag pointer address table, wherein the entry is either a valid pointer or a predetermined value based on the deallocation status of a section, associated with the entry, of the one or more section of the deallocate flag bitmap; and
in response to a restoration of power event, loading from the non-volatile memory only sections of the deallocate flag bitmap associated with a valid pointer.

### Claim 14

A Solid State Drive (SSD), the SSD comprising:
non-volatile memory comprising a plurality of non-volatile memory dies;
a first volatile memory;
a second volatile memory; and
a controller, wherein the controller is configured to:
store data in a plurality of regions of the SSD;
set a deallocation status of each of the plurality of regions in a deallocate flag bitmap;
set a deallocation status of one or more sections of the deallocate flag bitmap in a deallocate summary table, wherein
each of the one or more sections corresponds to at more than one of the plurality of regions, and
the deallocate summary table is stored in a first volatile memory.

### Claim 15 (depends on 14)

The SSD of claim 14, wherein each of the regions is associated with a plurality of logical cluster addresses, the plurality of logical cluster addresses each associated with a media cluster address of the plurality of non-volatile memory dies.

### Claim 16 (depends on 14)

The SSD of claim 14, wherein the controller is further configured to, in response to shutdown or loss of power, write to non-volatile memory only sections of the deallocation flag bitmap with a predetermined deallocation status in the deallocate summary table.

### Claim 17 (depends on 14)

The SSD of claim 14, wherein the deallocate flag bitmap is stored in a second volatile memory, different from the first volatile memory.

### Claim 18 (depends on 14)

The SSD of claim 14, wherein the predetermined allocation status indicates a section is dirty.

### Claim 19 (depends on 14)

The SSD of claim 14, wherein each deallocation status of each of the one or more sections of the deallocate summary is a two-bit status.

### Claim 20 (depends on 14)

The SSD of claim 14, wherein the controller is further configured to:
update the deallocation status of a region of the plurality of regions in response to one of a deallocation command, a beginning of a background deallocation process for the region, or a completion of the background deallocation process for the region.

### Claim 21 (depends on 20)

The SSD of claim 20, wherein the controller is further configure to:
updating the deallocation status of the section comprising the region in response to updating the deallocation status of the region.

### Claim 22 (depends on 14)

The SSD of claim 14, wherein the first volatile memory is DRAM.

### Claim 23 (depends on 14)

The SSD of claim 14, wherein the second volatile memory is SRAM or DTCM.

### Claim 24 (depends on 14)

The SSD of claim 14, wherein the controller is further configure to:
set an entry in a deallocate flag address pointer table based on the deallocation status of a section of the one or more sections of the deallocate flag bitmap corresponding to the entry.

### Claim 25 (depends on 14)

The SSD of claim 14, wherein the controller is further configured to:
set an entry in a deallocate flag pointer address table based on the deallocation status of a subset of a plurality of regions corresponding to the entry.

### Claim 26 (depends on 14)

The SSD of claim 14, wherein the controller is further configured to:
store an entry in a deallocate flag pointer address table a deallocate flag pointer address table, wherein the entry is either a valid pointer or a predetermined value based on the deallocation status of a section, associated with the entry, of the one or more section of the deallocate flag bitmap; and
in response to a restoration of power event, load from the non-volatile memory only sections of the deallocate flag bitmap associated with a valid pointer.
