IP Library › Granted Patent US 11,748,258
Granted Patent B2
US 11,748,258 · App. 17/975,565 · Granted Sep 5, 2023

Method for managing a memory apparatus

Inventors: Tsai-Cheng Lin (Hsinchu, TW); Chun-Kun Lee (Hsinchu County, TW)
Assignee: Silicon Motion, Inc.
G06F12/0246G06F12/1009G06F2212/7207G06F2212/7208G06F2212/7209
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,748,258
App. No.
17/975,565
Granted
Sep 5, 2023
Kind
B2
Abstract

A method for managing a memory apparatus including a plurality of non-volatile (NV) memory elements includes: programming a physical block of a specific NV memory element, including: receiving a host command from a host; obtaining a host address and data from the host command; and linking the host address to a page of a physical block of the specific NV memory element and storing the data into the physical block. Before the pages of the physical block are fully programmed, a temporary local page linking address table is stored and is updated each time a linking relationship is changed. When the memory apparatus is to be shut down, the temporary local page linking address table is written to the specific NV memory element; and when the memory apparatus begins a start-up process, a global page address linking table is built by reading the local page address linking table.

Claims (27)

1. A method for managing a memory apparatus comprising a plurality of non-volatile (NV) memory elements, each NV memory element comprising a plurality of physical blocks, and a volatile memory, the method comprising:

programming at least a physical block of a specific NV memory element of the NV memory elements, comprising:

receiving a first host command from a host;

obtaining a first host address and first data from the first host command; and

linking the first host address to at least a first page of a physical block of the specific NV memory element and storing the first data into the physical block;

before the pages of the physical block are fully programmed, storing a temporary local page linking address table in the volatile memory, and updating the temporary local page linking address table each time a linking relationship between a page of the physical block and a host address is changed;

when the memory apparatus is to be shut down, writing the temporary local page linking address table to the physical block of the specific NV memory element; and

when the memory apparatus begins a start-up process, building a global page address linking table by reading the local page address linking table.

2. The method for managing a memory apparatus of claim 1 , wherein the step of programming at least a physical block of a specific NV memory element of the NV memory elements further comprises:

receiving a second host command from a host;

obtaining a second host address and second data from the second host command; and

linking the second host address to at least a second page of a physical block of the specific NV memory element and storing the second data into the physical block.

3. The method for managing a memory apparatus of claim 2 , wherein for the local page address linking table of the specific NV memory element, a difference value of the first host address and the second host address is greater than a number of pages of the physical block.

4. The method for managing a memory apparatus of claim 2 , wherein for the local page address linking table of the specific NV memory element, a difference value of the first host address and the second host address is less than a number of pages of each physical block of the plurality of physical blocks.

5. The method of claim 1 , wherein the memory apparatus is a solid state drive (SSD).

6. The method of claim 1 , wherein the volatile memory is a Dynamic Random Access Memory (DRAM) or a Static Random Access Memory (SRAM).

7. A memory apparatus, comprising:

a plurality of non-volatile (NV) memory elements, each NV memory element comprising a plurality of physical blocks, at least one of the plurality of physical blocks of each of the NV memory elements for storing a local page address linking table of the NV memory element;

a volatile memory for storing a global page address linking table which is built from each local page address linking table of each of the plurality of NV memory elements;

a transmission interface, for receiving commands from a host; and

a processing unit, for programming at least a physical block of a specific NV memory element of the NV memory elements by obtaining a first host address and first data from a first host command, linking the first host address to at least a first page of a physical block of the specific at least one NV memory element and storing the first data in the first page, wherein before the pages of the physical block are fully programmed, the processing unit stores a temporary local page linking address table in the volatile memory, and updates the temporary local page linking address table each time a linking relationship between a page of the physical block and a host address is changed, and when the memory apparatus is to be shut down, the processing unit writes the temporary local page linking address table to the physical block of the specific NV memory element;

wherein when the memory apparatus begins a start-up process, the processing unit builds the global page address linking table by reading the local page address linking table.

8. The memory apparatus of claim 7 , wherein the processing unit further obtains a second host address and second data from a second host command, links the second host address to at least a second page of the physical block of the specific at least one NV memory element and stores the second data in the second page.

9. The memory apparatus of claim 8 , wherein for the local page address linking table of the specific at least one NV memory element, a difference value of the first host address and the second host address is greater than a number of pages of the physical block.

10. The memory apparatus of claim 8 , wherein for the local page address linking table of the specific at least one NV memory element, a difference value of the first host address and the second host address is less than a number of pages of the physical block.

11. The memory apparatus of claim 7 , wherein the memory apparatus is a solid state drive (SSD).

12. The memory apparatus of claim 7 , wherein the volatile memory is a Dynamic Random Access Memory (DRAM) or a Static Random Access Memory (SRAM).

Continuity (10)
Continuation 17351168 · Jun 17, 2021
Continuation 16888836 · May 31, 2020
Continuation 16596703 · Oct 8, 2019
Continuation 15642295 · Jul 5, 2017
Continuation 14566724 · Dec 11, 2014
Continuation 13604644 · Sep 6, 2012
Continuation 12471462 · May 25, 2009
Provisional Application 61140850 · Dec 24, 2008
Provisional Application 61112173 · Nov 6, 2008
Related Publication 20230048550A1 · Feb 16, 2023