# US 9,430,375 B2 · Techniques for storing data in bandwidth optimized or coding rate optimized code words based on data access frequency

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

- Number: US 9,430,375 B2
- Document ID: US9430375B2
- Status: Granted
- Kind: B2
- Application number: 14/144,158
- Filed: 2013-12-30
- Published: 2015-07-02
- Granted: 2016-08-30
- Earliest claimed: 2013-12-30
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Charles John Camp; Timothy John Fisher; Bryan Bordeaux Grandy; Thomas Parnell; Andrew Dale Walls
- Web page: https://patentgrep.com/patent/US9430375B2

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 11/1012: {using codes or arrangements adapted for a specific type of error (G06F11/1048 takes precedence)}
- G06F 11/108: {Parity data distribution in semiconductor storages, e.g. in SSD}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A technique for operating a data storage system that includes a non-volatile memory array controlled by a controller includes storing, in the non-volatile memory array, first data whose frequency of access is above a first access level in a bandwidth optimized code word. Second data whose frequency of access is below a second access level is stored in the non-volatile memory in a code rate optimized code word.

## Claims

### Claim 1

A method of operating a data storage system including a non-volatile memory array controlled by a controller, comprising:
storing, in the non-volatile memory array, first data whose frequency of access is above a first access level in a bandwidth optimized code word container; and
storing, in the non-volatile memory array, second data whose frequency of access is below a second access level in a code rate optimized code word container, wherein the second access level is the same as or less than the first access level and the bandwidth optimized code word container is smaller than the code rate optimized code word container.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
determining the frequency of access for the first data; and
determining the frequency of access for the second data.

### Claim 3 (depends on 1)

The method of claim 1, wherein the bandwidth optimized code word container and the code rate optimized code word container do not include padding when stored in the non-volatile memory array.

### Claim 4 (depends on 1)

The method of claim 1, wherein the non-volatile memory array is a NAND flash memory array.

### Claim 5 (depends on 1)

The method of claim 1, wherein the bandwidth optimized code word container is a one-quarter page container or a one-half page container and the code rate optimized code word container is a one page container.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
creating the bandwidth optimized code word container and the code rate optimized code word container using a turbo product code, wherein the first access level and the second access level correspond to a same value.

### Claim 7

A data storage system, comprising:
a controller coupled to a non-volatile memory array, wherein the controller is configured to:
store, in the non-volatile memory array, first data whose frequency of access is above a first access level in a bandwidth optimized code word container; and
store, in the non-volatile memory array, second data whose frequency of access is below a second access level in a code rate optimized code word container, wherein the second access level is the same as or less than the first access level and the bandwidth optimized code word container is smaller than the code rate optimized code word container.

### Claim 8 (depends on 7)

The data storage system of claim 7, wherein the controller is further configured to:
determine the frequency of access for the first data; and
determine the frequency of access for the second data.

### Claim 9 (depends on 7)

The data storage system of claim 7, wherein the bandwidth optimized code word container and the code rate optimized code word container do not include padding when stored in the non-volatile memory array.

### Claim 10 (depends on 7)

The data storage system of claim 7, wherein the non-volatile memory array is a NAND flash memory array.

### Claim 11 (depends on 7)

The data storage system of claim 7, wherein the bandwidth optimized code word container is a one-quarter page container or a one-half page container and the code rate optimized code word container is a one page container.

### Claim 12 (depends on 7)

The data storage system of claim 7, wherein the controller is further configured to:
create the bandwidth optimized code word container and the code rate optimized code word container using a turbo product code.

### Claim 13

A program product for a data storage system including a non-volatile memory array, the program product comprising:
a storage device; and
program code stored within the storage device that, when executed by a controller of the data storage system, causes the data storage system to perform:
storing, in the non-volatile memory array, first data whose frequency of access is above a first access level in a bandwidth optimized code word container; and
storing, in the non-volatile memory array, second data whose frequency of access is below a second access level in a code rate optimized code word container, wherein the second access level is the same as or less than the first access level and the bandwidth optimized code word container is smaller than the code rate optimized code word container.

### Claim 14 (depends on 13)

The program product of claim 13, wherein the program code, when executed by the controller, causes the data storage system to further perform:
determining the frequency of access for the first data; and
determining the frequency of access for the second data.

### Claim 15 (depends on 13)

The program product of claim 13, wherein the bandwidth optimized code word container and the code rate optimized code word container do not include padding when stored in the non-volatile memory array.

### Claim 16 (depends on 13)

The program product of claim 13, wherein the non-volatile memory array is a NAND flash memory array.

### Claim 17 (depends on 13)

The program product of claim 13, wherein the bandwidth optimized code word container is a one-quarter page container or a one-half page container and the code rate optimized code word container is a one page container.

### Claim 18 (depends on 13)

The program product of claim 13, wherein the bandwidth optimized code word container and the code rate optimized code word container are created using a turbo product code.
