# US 10,372,533 B2 · Non-volatile memory apparatus and empty page detection method thereof

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

- Number: US 10,372,533 B2
- Document ID: US10372533B2
- Status: Granted
- Kind: B2
- Application number: 15/221,598
- Filed: 2016-07-28
- Published: 2017-09-28
- Granted: 2019-08-06
- Earliest claimed: 2016-03-28
- Assignees: VIA Technologies, Inc.
- Applicants: VIA Technologies, Inc.
- Inventors: Ying Yu Tai; Jiangli Zhu
- Web page: https://patentgrep.com/patent/US10372533B2

## CPC

- G06F 11/1068: {in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence)}
- H03M 13/1105: {Decoding}
- H03M 13/1128: {Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations}
- G11C 29/52: Protection of memory contents; Detection of errors in memory contents
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

A non-volatile memory (NVM) apparatus and an empty page detection method thereof are provided. The NVM apparatus includes a NVM and a controller. The controller reads the content of a memory page of the NVM. The controller performs Low Density Parity Check (LDPC) decoding for at least one codeword of the memory page to obtain a decoded codeword and a check-result vector. The controller determines that the memory page is not an empty page when the LDPC decoding for the codeword is successful. The controller counts an amount of the bits being 1 (or 0) in the check-result vector when the LDPC decoding for the codeword is fail. Based on the amount of the bits being 1 (or 0) in the check-result vector, the controller determines whether the memory page is an empty page.

## Claims

### Claim 1

A flash memory apparatus, comprising:
a flash memory; and
a controller, coupled to the flash memory, configured to perform an empty page detection method to determine whether a memory page of the flash memory is an empty page, wherein the empty page detection method comprises:
reading, by the controller, a content of the memory page;
performing, by the controller, a Low Density Parity Check (LDPC) decoding for at least one codeword of the read content of the memory page to obtain a decoded codeword and a check-result vector, wherein the check-result vector is calculated by multiplying the decoded codeword and a parity-check matrix through the performed LDPC decoding;
determining, by the controller, whether the LDPC decoding for the at least one codeword is successful or unsuccessful according to the check-result vector, wherein
when the obtained check-result vector is a zero vector, determining that the LDPC decoding for the at least one codeword is successful, and then further determining that the memory page corresponding to the at least one codeword is not an empty page, and
when the obtained check-result vector is not the zero vector, determining that the LDPC decoding for the at least one codeword is unsuccessful, and then further determining whether the memory page corresponding to the at least one codeword is an empty page or not by one of two procedures, wherein the two procedures comprises:
counting a first amount of bits with a value of 1 in the check-result vector, and determining that the memory page is an empty page when the first amount is larger than a first preset threshold, otherwise determining that the memory page is not an empty page, and
counting a second amount of bits with a value of 0 in the check-result vector, and determining that the memory page is an empty page when the second amount is smaller than a second preset threshold, otherwise determining that the memory page is not an empty page.

### Claim 2 (depends on 1)

The flash memory apparatus according to claim 1, wherein the controller comprises:
a LDPC decoder, coupled to the flash memory to receive the content of the memory page, configured to perform the LDPC decoding for the at least one codeword of the read content of the memory page to obtain the decoded codeword and the check-result vector;
a random access memory (RAM), coupled to the LDPC decoder to store the check-result vector; and
a central processing unit (CPU), coupled to the RAM to read the check-result vector, wherein the CPU performs the step of determining whether the LDPC decoding for the at least one codeword is successful or unsuccessful according to the check-result vector.

### Claim 3 (depends on 1)

The flash memory apparatus according to claim 1, wherein the controller comprises:
a LDPC decoder, coupled to the flash memory to receive the content of the memory page, configured to perform the LDPC decoding for the at least one codeword of the read content of the memory page to obtain the decoded codeword and the check-result vector, wherein the LDPC decoder counts the first amount or the second amount when the LDPC decoding for the at least one codeword is determined as unsuccessful;
a random access memory (RAM), coupled to the LDPC decoder, wherein the RAM is configured to store the counted first amount and the counted second amount; and
a central processing unit (CPU), coupled to the RAM, wherein the CPU is configured to determine that the memory page is not an empty page when the LDPC decoding for at least one codeword is successful, and read the first amount or the second amount when the LDPC decoding for at least one codeword is unsuccessful,
wherein the CPU determines that the memory page is an empty page when the first amount is larger than a first preset threshold, otherwise determines that the memory page is not an empty page,
wherein the CPU determines that the memory page is an empty page when the second amount is smaller than a second preset threshold, otherwise determines that the memory page is not an empty page.

### Claim 4 (depends on 3)

The flash memory apparatus according to claim 3, wherein the LDPC decoder comprises:
a decoder, coupled to the flash memory to receive the content of the memory page, configured to perform the LDPC decoding for the at least one codeword of the read content of the memory page to obtain the decoded codeword;
a checker, coupled to the decoder to receive the decoded codeword, configured to perform a check calculation for the decoded codeword to generate the check-result vector; and
a counter, coupled to the checker to receive the check-result vector, configured to counts the first amount and the second amount.

### Claim 5

An empty page detection method for determining whether a memory page of a flash memory in a flash memory apparatus is an empty page, wherein the flash memory apparatus comprises the flash memory and a controller, and the empty page detection method comprises:
reading, by the controller, a content of the memory page;
performing, by the controller, a Low Density Parity Check (LDPC) decoding for at least one codeword of the read content of the memory page to obtain a decoded codeword and a check-result vector, wherein the check-result vector is calculated by multiplying the decoded codeword and a parity-check matrix through the performed LDPC decoding;
determining, by the controller, whether the LDPC decoding for the at least one codeword is successful or unsuccessful according to the check-result vector, wherein
when the obtained check-result vector is a zero vector, determining that the LDPC decoding for the at least one codeword is successful, and then further determining that the memory page corresponding to the at least one codeword is not an empty page, and
when the obtained check-result vector is not the zero vector, determining that the LDPC decoding for the at least one codeword is unsuccessful, and then further determining whether the memory page corresponding to the at least one codeword is an empty page or not by one of two procedures, wherein the two procedures comprises:
counting a first amount of bits with a value of 1 in the check-result vector, and determining that the memory page is an empty page when the first amount is larger than a first preset threshold, otherwise determining that the memory page is not an empty page, and
counting a second amount of bits with a value of 0 in the check-result vector, and determining that the memory page is an empty page when the second amount is smaller than a second preset threshold, otherwise determining that the memory page is not an empty page.
