# US 12,182,415 B2 · Encoding system data in parity symbols

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

- Number: US 12,182,415 B2
- Document ID: US12182415B2
- Status: Granted
- Kind: B2
- Application number: 17/848,774
- Filed: 2022-06-24
- Published: 2023-11-09
- Granted: 2024-12-31
- Earliest claimed: 2022-05-06
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Majid Anaraki Nemati; Anthony Dwayne Weathers
- Web page: https://patentgrep.com/patent/US12182415B2

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 11/1048: {using arrangements adapted for a specific error detection or correction feature}
- G06F 3/0638: {Organizing or formatting or addressing of data}
- G06F 3/0673: {Single storage device}
- G06F 11/1032: {Simple parity}
- 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 RAM chip includes host dies and parity dies. A memory controller receives system data to be stored on the RAM chip that is in excess of the storage capacity of the host dies. The memory controller encodes the system data in the parity symbols of the parity dies. The system data is retrieved by decoding the parity symbols and identifying the system data from the decoded information.

## Claims

### Claim 1

A method for encoding data, comprising:
at a memory controller for a RAM chip, the RAM chip including one or more data dies and one or more parity dies:
receiving host data from a host, the host data having a host size that is equal to a memory capacity of the one or more data dies of the memory controller;
receiving system data from a system, the system data different than the host data, wherein the system data plus the host data exceeds the memory capacity of the one or more data dies;
encoding the host data received from the host and the system data received from the system into one or more symbols; and
storing the one or more symbols in the one or more parity dies.

### Claim 2 (depends on 1)

The method of claim 1, wherein the system data received from the system is not directly stored in the one or more parity dies.

### Claim 3 (depends on 1)

The method of claim 1, further comprising storing the host data in the one or more data dies of the RAM chip.

### Claim 4 (depends on 3)

The method of claim 3, wherein the system data is not directly stored in the one or more data dies.

### Claim 5 (depends on 1)

The method of claim 1, wherein the one or more parity dies include error correcting code for an extended codeword, the extended codeword including the host data and the system data.

### Claim 6 (depends on 1)

The method of claim 1, further comprising, after encoding the host data and the system data into the one or more symbols, deleting the system data.

### Claim 7 (depends on 1)

A method for encoding and decoding data, comprising:
the method of encoding data of claim 1; and
at a memory controller for a RAM chip, the RAM chip including one or more parity dies and one or more host dies:
receiving one or more parity symbols from the one or more parity dies, the one or more parity symbols having error correcting code (ECC) with system data encoded in the ECC; and
decoding the system data from the ECC.

### Claim 8 (depends on 7)

The method of claim 7, wherein the system data is not stored on the one or more parity dies.

### Claim 9 (depends on 7)

The method of claim 7, wherein decoding the system data includes decoding an extended codeword from the ECC, the extended codeword including host data stored on the one or more host dies and the system data.

### Claim 10 (depends on 9)

The method of claim 9, wherein the RAM chip includes a plurality of die sets, each die set including at least one host die and at least one parity die, wherein each die set includes an extended codeword, and wherein the system data is encoded into the extended codeword of each die set.

### Claim 11 (depends on 10)

The method of claim 10, wherein decoding the system data includes decoding the extended codeword and determining a system data value for the system data, and further comprising determining that a majority of valid system data values is correct.

### Claim 12 (depends on 11)

The method of claim 11, further comprising, if there is no majority of valid system data values, declaring the data undecodable.

### Claim 13 (depends on 1)

The method of claim 1, wherein the system data includes a marker for the host data that identifies whether the host data includes an error.

### Claim 14 (depends on 1)

The method of claim 1, wherein the system data includes a label of the host data.

### Claim 15

A device for storing data, comprising:
one or more data dies;
one or more parity dies; and
a controller in communication with the one or more data dies and the one or more parity dies, the controller including instructions executable to:
receive host data from the one or more data dies, the host data having a host size that is equal to a memory capacity of the one or more data dies;
receive system data from a system, the system data different than the host data, wherein the system data plus the host data exceeds the memory capacity of the one or more data dies;
encode the host data received from the one or more data dies and the system data received from the system into one or more symbols; and
storing the one or more symbols in one or more parity dies.

### Claim 16 (depends on 15)

The device of claim 15, wherein the system data received from the system is not directly stored in the one or more parity dies.

### Claim 17 (depends on 15)

The device of claim 15, wherein the instructions are further executable to store the data in the one or more data dies.

### Claim 18 (depends on 17)

The device of claim 17, wherein the system data is not directly stored in the one or more parity dies.

### Claim 19 (depends on 15)

The device of claim 15, wherein the instructions are further executable to perform error correcting functions with the one or more symbols in the one or more parity dies.

### Claim 20 (depends on 15)

The device of claim 15, wherein the instructions are further executable to, after encoding the data and the system data into the one or more symbols, delete the system data.
