# US 2016/0259679 A1 · Methods for Reprogramming Data 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/0259679 A1
- Document ID: US20160259679A1
- Status: Published application
- Kind: A1
- Application number: 14/862,697
- Filed: 2015-09-23
- Published: 2016-09-08
- Earliest claimed: 2015-03-04
- Assignees: Silicon Motion, Inc.
- Applicants: Silicon Motion, Inc.
- Inventors: Che-Wei Hsu
- Web page: https://patentgrep.com/patent/US20160259679A1

## CPC

- G06F 12/0802: Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G11C 11/5628: {Programming or writing circuits; Data input circuits}
- G06F 2212/1016: Performance improvement
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- G06F 2212/1036: Life time enhancement
- G06F 2212/205: Hybrid memory, e.g. using both volatile and non-volatile memory
- G06F 2212/7209: Validity control, e.g. using flags, time stamps or sequence numbers
- G06F 2212/7211: Wear leveling
- G11C 16/0483: {comprising cells having several storage transistors connected in series}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

A method for reprogramming data, performed by a processing unit, is disclosed to include at least the following steps. After a page of data has failed to be programmed into a first block of a storage unit, it is determined whether the failed page is an upper page or a first lower page. When the failed page is an upper page, a host page number associated with a second lower page of a wordline including at least the failed page is obtained, a second block is selected, and an access interface is directed to reprogram data from the second lower page to the upper page into the second block.

## Claims

### Claim 1

A method for reprogramming data, performed by a processing unit, comprising:
after inspecting that a page of data has failed to be programmed into a first block of a storage unit, determining whether the failed page is an upper page or a first lower page;
when the failed page is the upper page, obtaining a host page number associated with a second lower page of a wordline comprising the failed page;
when the failed page is the upper page, selecting a second block; and
when the failed page is the upper page, directing an access interface to reprogram data from the second lower page to the upper page into the second block.

### Claim 2 (depends on 1)

The method of claim 1, wherein the wordline comprises a plurality of memory cells, each memory cell stores information of a LSB (Least Significant Bit) and a MSB (Most Significant Bit), the LSBs of the memory cells collectively form the second lower page and the MSBs of the memory cells collectively form the upper page.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
when the failed page is the upper page, reading data, which is stored in the second lower page originally, from a DRAM (Dynamic Random Access Memory) and storing the read data in a data buffer; and
when the failed page is the upper page, directing the access interface to program the data of the data buffer into the second block.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
when the failed page is the first lower page, selecting the second block; and
when the failed page is the first lower page, directing the access interface to program data of the first lower page into the second block.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
filling unused pages of the first block with dummy values.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
determining whether the page of data has failed to be programmed into the first block of the storage unit.

### Claim 7 (depends on 6)

The method of claim 6, wherein the determination whether the page of data has failed to be programmed into the first block of the storage unit is achieved by inspecting a register setting through the access interface.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
setting a physical storage location associated with the host page number, which is stored in a storage mapping table, to point to the second block.

### Claim 9

An apparatus for reprogramming data, comprising:
an access interface, coupled to a storage unit; and
a processing unit, coupled to the access interface, after inspecting that a page of data has failed to be programmed into a first block of a storage unit, determining whether the failed page is an upper page or a first lower page; when the failed page is the upper page, obtaining a host page number associated with a second lower page of a wordline comprising the failed page, selecting a second block and directing an access interface to reprogram data from the second lower page to the upper page into the second block.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein the wordline comprises a plurality of memory cells, each memory cell stores information of a LSB (Least Significant Bit) and a MSB (Most Significant Bit), the LSBs of the memory cells collectively form the second lower page and the MSBs of the memory cells collectively form the upper page.

### Claim 11 (depends on 9)

The apparatus of claim 9, wherein when the failed page is the upper page, the processing unit reads data, which is stored in the second lower page originally, from a DRAM (Dynamic Random Access Memory), stores the read data in a data buffer and directs the access interface to program the data of the data buffer into the second block.

### Claim 12 (depends on 9)

The apparatus of claim 9, wherein when the failed page is the first lower page, the processing unit selects the second block and directs the access interface to program data of the first lower page into the second block.

### Claim 13 (depends on 9)

The apparatus of claim 9, wherein the processing unit further fills unused pages of the first block with dummy values.

### Claim 14 (depends on 9)

The apparatus of claim 9, wherein the processing unit further determines whether the page of data has failed to be programmed into the first block of the storage unit.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein the processing unit inspects a register setting through the access interface to determine whether the page of data has failed to be programmed into the first block of the storage unit.

### Claim 16 (depends on 9)

The apparatus of claim 9, wherein the processing unit further sets a physical storage location associated with the host page number, which is stored in a storage mapping table, to point to the second block.
