# US 2016/0259733 A1 · Methods for maintaining a storage mapping table and apparatuses using the same

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

- Number: US 2016/0259733 A1
- Document ID: US20160259733A1
- Status: Published application
- Kind: A1
- Application number: 14/862,913
- Filed: 2015-09-23
- Published: 2016-09-08
- Earliest claimed: 2015-03-04
- Assignees: Silicon Motion, Inc.
- Applicants: Silicon Motion, Inc.
- Inventors: Wen-Chi HONG
- Web page: https://patentgrep.com/patent/US20160259733A1

## CPC

- G06F 12/0292: {using tables or multilevel address translation means (G06F12/023 takes precedence; address translation in virtual memory systems G06F12/10)}
- G06F 12/0215: {with look ahead addressing means}
- G06F 12/1009: using page tables, e.g. page table structures
- G06F 2212/65: Details of virtual memory and virtual address translation
- G06F 2212/70: Details relating to dynamic memory management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The method for maintaining a storage mapping table is introduced. After a total number of logical blocks, which exceeds a specified number, have been programed into a storage unit, an access interface is directed to program a corresponding group of a storage mapping table of a DRAM (Dynamic Random Access Memory) into a first block of the storage unit according to a group number of an unsaved group queue. A group mapping table of the DRAM is updated to indicate that the latest data of the group of the storage mapping table is stored in which location in the storage unit. The group number is removed from the unsaved group queue.

## Claims

### Claim 1

A method for maintaining a storage mapping table, performed by a processing unit, comprising:
after a total number of logical blocks, which exceeds a specified number, have been programed into a storage unit, directing an access interface to program a corresponding group of a storage mapping table of a DRAM (Dynamic Random Access Memory) into a first block of the storage unit according to a group number of an unsaved group queue;
updating a group mapping table of the DRAM to indicate that the latest data of the group of the storage mapping table is stored in which location in the storage unit; and
removing the group number from the unsaved group queue.

### Claim 2 (depends on 1)

The method of claim 1, wherein execution time for programing the group of the storage mapping table of the DRAM into the first block of the storage unit is limited within a predefined time period.

### Claim 3 (depends on 1)

The method of claim 1, wherein the group stores information regarding which location in the storage unit data of a LBA (Logical Storage Address) range is physically stored in.

### Claim 4 (depends on 3)

The method of claim 3, wherein the storage mapping table stores information regarding which location in the storage unit data of each LBA is physically stored according to the order of the LBAs.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
after receiving a standby immediate command, directing the access interface to program the group mapping table of the DRAM into the last page of the first block of the storage unit.

### Claim 6 (depends on 5)

The method of claim 5, wherein the information of the groups are stored in the group mapping table according to the order of the LBAs.

### Claim 7 (depends on 6)

The method of claim 6, wherein the group mapping table comprises a plurality of cells and at least one cell stores information indicating which unit of the first block stores data of a group with an LBA range.

### Claim 8 (depends on 7)

The method of claim 7, wherein at least one cell stores a null value to indicate data of all logical blocks corresponding to a group that has not been programmed into the storage unit.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
after programing data of a logical block into an unit of a second block of the storage unit, updating the storage mapping table to indicate that the data of the logical block is physically stored in the unit of the second block; and
updating the unsaved group queue to indicate that a corresponding group of the storage mapping table has been updated but not stored in the storage unit.

### Claim 10

An apparatus for maintaining a storage mapping table, comprising:
an access interface, coupled to a storage unit;
a processing unit, coupled to the access interface, after a total number of logical blocks, which exceeds a specified number, have been programed into the storage unit, directing the access interface to program a corresponding group of a storage mapping table of a DRAM (Dynamic Random Access Memory) into a first block of the storage unit according to a group number of an unsaved group queue; updating a group mapping table of the DRAM to indicate that the latest data of the group of the storage mapping table is stored in which location in the storage unit; and removing the group number from the unsaved group queue.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein execution time for programing the group of the storage mapping table of the DRAM into the first block of the storage unit is limited within a predefined time period.

### Claim 12 (depends on 10)

The apparatus of claim 10, wherein the group stores information regarding which location in the storage unit data of a LBA (Logical Storage Address) range is physically stored in.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the storage mapping table stores information regarding which location in the storage unit data of each LBA is physically stored according to the order of the LBAs.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the processing unit, after receiving a standby immediate command, directs the access interface to program the group mapping table of the DRAM into the last page of the first block of the storage unit.

### Claim 15 (depends on 10)

The apparatus of claim 10, wherein the information of the groups are stored in the group mapping table according to the order of the LBAs.

### Claim 16 (depends on 10)

The apparatus of claim 10, wherein the group mapping table comprises a plurality of cells and at least one cell stores information indicating which unit of the first block stores data of a group with an LBA range.

### Claim 17 (depends on 16)

The apparatus of claim 16, wherein at least one cell stores a null value to indicate data of all logical blocks corresponding to a group that has not been programmed into the storage unit.

### Claim 18 (depends on 10)

The apparatus of claim 10, wherein the processing unit, after programing data of a logical block into an unit of a second block of the storage unit, updates the storage mapping table to indicate that the data of the logical block is physically stored in the unit of the second block; and updates the unsaved group queue to indicate that a corresponding group of the storage mapping table has been updated but not stored in the storage unit.
