# US 11,030,096 B2 · Method of identifying and preparing a key block in a flash memory system and memory controller therefor

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

- Number: US 11,030,096 B2
- Document ID: US11030096B2
- Status: Granted
- Kind: B2
- Application number: 16/244,252
- Filed: 2019-01-10
- Published: 2020-07-16
- Granted: 2021-06-08
- Earliest claimed: 2019-01-10
- Applicants: Western Digital Technologies, Inc.
- Inventors: Niles Yang; Sahil Sharma; Rohit Sehgal; Phil Reusswig
- Web page: https://patentgrep.com/patent/US11030096B2

## CPC

- G06F 12/0646: {Configuration or reconfiguration}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/064: {Management of blocks}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 11/3034: {where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/3058: {Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations (thermal management in cooling arrangements of a computing system G06F1/206)}
- G06F 11/3485: {for I/O devices}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G11C 29/44: Indication or identification of errors, e.g. for repair
- G11C 29/52: Protection of memory contents; Detection of errors in memory contents
- G06F 2201/81: Threshold
- G06F 2201/88: Monitoring involving counting
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F 2212/7206: Reconfiguration of flash memory system
- G06F 2212/7207: management of metadata or control data
- G11C 29/74: {using duplex memories, i.e. using dual copies}
- G11C 29/765: {in solid state disks}
- G11C 2029/0409: {Online test}
- G11C 2029/0411: {Online error correction}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

Preparing a key block in a memory system. Various methods include: selecting a candidate key block of memory; checking a quality of the candidate key block using a word line of the candidate key block; altering operating parameters of the candidate key memory block; and registering the candidate key memory block as the key block. Where altering the operating parameters includes replacing a first set of parameters associated with the first memory block with a second set of parameters, where the first set of parameters includes a first erase parameter, a first program parameter, and a first read parameter, where the memory block operating in a normal block mode is accessed using the first set of parameters, and the second set of parameters includes a second erase parameter, a second program parameter, and a second read parameter, where the first memory block is accessed using the second set of parameters.

## Claims

### Claim 1

A method for preparing a key block in a memory system, comprising:
selecting a candidate key block of memory;
checking a quality of the candidate key block using a non-data word line of the candidate key block;
altering operating parameters of the candidate key block;
registering the candidate key block as the key block;
receiving a value indicative of temperature of the memory system;
determining the value indicative of temperature is above a temperature threshold amount;
in response to determining the value indicative of temperature is above the temperature threshold amount, performing a read scrub operation on the key block to retrieve key data in the key block as second key data,
determining a bit error rate of the second key data is above a bit error rate threshold amount; and
in response to determining the bit error rate of the second key data is above the bit error rate threshold amount, moving the second key data to a second key block.

### Claim 2 (depends on 1)

The method of claim 1, wherein altering the operating parameters further comprises replacing a first set of parameters associated with the candidate key block with a second set of parameters, wherein:
the first set of parameters includes a first erase parameter, a first program parameter, and a first read parameter, wherein the first set of parameters is used to access a memory block that is a normal block, and
the second set of parameters includes a second erase parameter, a second program parameter, and a second read parameter, wherein the key block is accessed using the second set of parameters, and the second set of parameters is different from the first set of parameters.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
erasing a first data in the key block using the second erase parameter; and
programming the key data in the key block using the second program parameter, wherein the second erase and program parameters create a read margin of the key block that is greater than a read margin created by the first erase and program parameters.

### Claim 4 (depends on 1)

The method of claim 1, wherein checking the quality of the candidate key block further comprises:
performing a voltage threshold scan, with an adjusted read level, to generate test data from the non-data word line of the candidate key block;
comparing the test data to an expected value; and
determining the quality of the candidate key block based on the comparing.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
selecting a second candidate key block of memory;
checking a quality of the second candidate key block using a non-data word line of the second candidate key block;
determining the quality of the second candidate key block is poor; and
flagging the second candidate key block as faulty.

### Claim 6 (depends on 3)

The method of claim 3, further comprising:
in response to determining the value indicative of temperature is above the temperature threshold amount, performing a read error handling operation to recover a portion of the key data as recovered data; and
moving the recovered data to the second key block.

### Claim 7 (depends on 3)

The method of claim 3, further comprising:
checking, at a predetermined time interval, a quality of the key block; and
in response to determining the quality of the key block is poor, moving the key data to the second key block.

### Claim 8 (depends on 3)

The method of claim 3, further comprising:
determining a number of reads of the key block is greater than a read threshold amount; and
moving the key data to the second key block.

### Claim 9

A memory controller, comprising:
a first port configured to couple to a memory array;
the memory controller configured to:
select a candidate key block in the memory array, the memory array including a second memory block operating in a normal mode;
check a quality of the candidate key block using a non-data wordline of the candidate key block;
associate a first set of parameters with the candidate key block, the first set of parameters including a first erase parameter, a first program parameter and a first read parameter;
register the candidate key block as a key block,
receive a value indicative of temperature of the memory array;
determine the value indicative of temperature is above a temperature threshold amount;
in response to determining the value indicative of temperature is above the temperature threshold amount, performing a read scrub operation on the key block to retrieve key data in the key block as second key data,
determine a bit error rate of the second key data is above a bit error rate threshold amount; and
in response to determining the bit error rate of the second key data is above the bit error rate threshold amount, moving the second key data to a second key block.

### Claim 10 (depends on 9)

The memory controller of claim 9, wherein when the memory controller associates the first set of parameters, the memory controller is further configured to:
adjust the first erase parameter from a second erase parameter; and
adjust the first program parameter from a second program parameter, wherein:
the second memory block operating in a normal mode is programmed using the second erase and program parameters, and
a read margin of the candidate key block is greater than a read margin of the second memory block operating in the normal mode.

### Claim 11 (depends on 9)

The memory controller of claim 9, wherein the memory controller is further configured to program data in the key block using the first set of parameters, and wherein the first set of parameters is different from a second set of parameters used to access the second memory block operating in the normal mode.

### Claim 12 (depends on 9)

The memory controller of claim 9, wherein the memory controller is further configured to:
select the second memory block as a second candidate key block;
check a quality of the second candidate key block using a non-data word line of the second candidate key block; and
in response to determining the quality of the second candidate key block is poor, flag the second candidate key block as faulty.

### Claim 13

A non-volatile storage system, configured to monitor a key block, comprising:
a memory array storing a first data in a first block of memory in the memory array, wherein the first block is accessed using a first set of parameters and the first block is a key block; and
a controller coupled to the memory array, wherein the controller is configured to:
determine a check event has occurred associated with the key block, wherein the check event comprises a temperature of the storage system rising above a temperature threshold amount;
in response to determining the check event has occurred, perform a read scrub on the key block to retrieve the first data as second data;
determine a bit error rate of the second data is above a bit error rate threshold amount; and
in response to determining the bit error rate of the second data is above the bit error rate threshold amount, move the second data to a second key block in the memory array.

### Claim 14 (depends on 13)

The non-volatile storage system of claim 13, wherein the check event further comprises the temperature of the storage system rising above the temperature threshold amount within a time interval.

### Claim 15 (depends on 13)

The non-volatile storage system of claim 13, wherein when the controller performs the read scrub, the controller is further configured to:
perform a read error handling operation to recover a portion of the first data as recovered data; and
move, in response to performing the read error handling operation, the recovered data to the second key block.

### Claim 16 (depends on 13)

The non-volatile storage system of claim 13, wherein the controller is further configured to:
determine a number of reads of the second key block is greater than a read threshold amount; and
move the second data of the second key block to a different key block.

### Claim 17 (depends on 13)

The non-volatile storage system of claim 13, wherein the controller is further configured to:
check a quality of the key block; and
in response to determining the quality of the key block is poor, convert the key block to a normal block.

### Claim 18 (depends on 13)

The non-volatile storage system of claim 13, wherein the controller is further configured to:
monitor a number of reads of the second key block;
in response to a second check event occurring, perform an additional secondary read scrub on the second key block;
in response to a read error occurring during the additional secondary read scrub, move a data in the second key block to a different key block;
in response to determining a quality of a non-data word line of the second key block is poor, flag the second key block as faulty; and
convert the second key block to a normal block.
