# US 12,499,959 B2 · Testing parity and ECC logic using MBIST

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

- Number: US 12,499,959 B2
- Document ID: US12499959B2
- Status: Granted
- Kind: B2
- Application number: 18/090,733
- Filed: 2022-12-29
- Published: 2024-07-04
- Granted: 2025-12-16
- Earliest claimed: 2022-12-29
- Assignees: Advanced Micro Devices, Inc.
- Applicants: Advanced Micro Devices, Inc.
- Inventors: Balatripura S. Chavali; Chetana Nagendra Keltcher; William Andrew Halliday
- Web page: https://patentgrep.com/patent/US12499959B2

## CPC

- G11C 29/12: Built-in arrangements for testing, e.g. built-in self testing [BIST] {or interconnection details}
- G06F 11/1044: {with specific ECC/EDC distribution}
- G06F 11/1048: {using arrangements adapted for a specific error detection or correction feature}
- G11C 29/02: Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C 29/36: Data generation devices, e.g. data inverters
- G11C 29/42: using error correcting codes [ECC] or parity check
- G11C 2029/1208: {Error catch memory}
- G11C 2029/3602: {Pattern generator}
- G11C: STATIC STORES (semiconductor memory devices H10B)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A processing device used for MBIST is provided which comprises a data storage structure configured to store data, data protection circuitry configured to add at least one protection bit to corresponding portions of the data written to the data storage structure, data protection checking circuitry configured to identify one or more errors made by the data protection circuitry and an MBIST controller configured to receive the corresponding portions of data written to the data storage structure and receive at least one indication identifying the one or more errors.

## Claims

### Claim 1

A processing device used for performing a memory built in self-test (MBIST), the processing device comprising:
a data storage structure configured to store data;
data protection circuitry configured to add a protection token to corresponding portions of the data written to the data storage structure;
data protection checking circuitry configured to identify one or more errors made by the data protection circuitry; and
an MBIST controller that is communicatively coupled to the data storage structure, the data protection circuitry and the data protection checking circuitry, wherein the MBIST controller is configured to perform the MBIST by:
controlling a number of bits in the protection token,
receiving the corresponding portions of the data written the data storage structure,
receiving, from the data protection checking circuitry, at least one indication identifying the one or more errors made by the data protection circuitry,
detecting a logic fault in the data protection checking circuitry based on the at least one indication, and
indicating that the MBIST fails when the logic fault in the data protection checking circuitry is detected.

### Claim 2 (depends on 1)

The processing device of claim 1, wherein the protection token includes at least one parity bit and the data protection circuitry comprises:
a parity generator configured to add the at least one parity bit to the corresponding portions of the data written to the data storage structure; and
a parity checker configured to identify the one or more errors by the parity generator based on the at least one parity bit and the corresponding portions of the data written to the data storage structure.

### Claim 3 (depends on 1)

The processing device of claim 1, wherein the protection token includes a plurality of error correction code bits and the data protection circuitry comprises:
an error correction code generator configured to add the plurality of error correction code bits to the corresponding portions of the data written to the data storage structure; and
an error correction code checker configured to identify the one or more errors by the error correction code generator based on the corresponding portions of the data and the error correction code bits written to the data storage structure.

### Claim 4 (depends on 1)

The processing device of claim 1, wherein the protection token includes at least one of:
at least one parity bit; or
a plurality of error correction code bits.

### Claim 5 (depends on 1)

The processing device of claim 1, wherein for each error identified by the data protection circuitry, the MBIST controller is configured to log an entry in a portion of memory in response to receiving a corresponding at least one indication identifying the one or more errors.

### Claim 6 (depends on 1)

The processing device of claim 1, wherein the MBIST controller receives the at least one indication, identifying the one or more errors, from the data protection checking circuitry.

### Claim 7 (depends on 1)

The processing device of claim 1, wherein
the MBIST controller is configured to generate a number of read and write test patterns during an MBIST procedure,
the one or more errors are tracked for each corresponding portion of the data during the MBIST procedure, and
at completion of the MBIST procedure, the one or more errors tracked for each corresponding portion of the data indicate whether or not the number of test patterns generated a target number of correct results.

### Claim 8 (depends on 1)

The processing device of claim 1, wherein the data storage structure is one of memory, an array of latches and an array of registers.

### Claim 9 (depends on 1)

The processing device of claim 1, wherein the protection token includes at least one protection bit and the data protection checking circuitry is configured to:
for the corresponding portion of the data:
generate at least one additional protection bit from data read from the data storage structure;
compare the at least one additional protection bit to the at least one protection bit read from the data storage structure to provide a compared result; and
identify an error from the compared result.

### Claim 10

A memory built in self-test (MBIST) controller used in a processing device, the MBIST controller comprising:
a processor, and
a communication interface that is communicatively coupled to a data storage structure, a data protection circuitry and a data protection checking circuitry, wherein the MBIST controller configured to:
generate a sequence of read and write operations to different portions of the data storage structure; and
for each corresponding portion of data written to and read from the data storage structure:
control a number of protection bits in a protection token to add to the corresponding portion of data by the data protection circuity;
control the data protection circuitry to add the protection token to the corresponding portion of data;
receive the number of protection bits and the corresponding portion of data written to and read from the data storage structure;
receive at least one indication, from data protection checking circuitry, identifying one or more errors by the data protection circuitry,
detect a logic fault in the data protection checking circuitry based on the at least one indication,
indicate that the MBIST fails when the logical fault in the data protection checking circuitry is detected.

### Claim 11 (depends on 10)

The MBIST controller of claim 10, wherein the number of the protection bits is a number of parity bits and the MBIST controller is configured to:
control the data protection circuitry to add the number of parity bits to the corresponding portion of data; and
receive the indication, from the data protection checking circuitry, identifying the one or more errors resulting from the data protection circuitry adding the number of parity bits.

### Claim 12 (depends on 10)

The MBIST controller of claim 10, wherein the number of the protection bits is a number of error correction code bits and the MBIST controller is configured to:
control the data protection circuitry to add a number of error correction code bits to the corresponding portion of data; and
receive the indication, from the data protection checking circuitry, identifying one or more errors resulting from the data protection circuitry adding the number of error correction code bits.

### Claim 13 (depends on 10)

The MBIST controller of claim 10, wherein for each error identified by the data protection checking circuitry, the MBIST controller is configured to log an entry in a portion of memory.

### Claim 14

A method for performing a memory built in self-test (MBIST), the method comprising:
generating, by a MBIST controller, portions of data to be written to a data storage structure;
controlling, by the MBIST controller, a number of protection bits in a protection token to be added to the corresponding portion of data;
writing, by the MBIST, the data and the protection token to the data storage structure using data protection circuitry;
receiving, by the MBIST controller an indication of one or more errors made by the data protection circuitry;
detecting a logic fault in the data protection checking circuitry based on the indication; and
indicating that the MBIST fails when the logical fault in the data protection checking circuitry is detected.

### Claim 15 (depends on 14)

The method of claim 14, further comprising logging the one or more errors in memory.

### Claim 16 (depends on 14)

The method of claim 14, wherein adding the protection bits to the portion of data comprises adding parity bits to the portion of data.

### Claim 17 (depends on 14)

The method of claim 14, further comprising:
generating additional parity bits from data read from the data storage structure;
comparing the additional parity bits to parity bits read from the data storage structure to provide a compared result; and
identifying an error from the compared result.

### Claim 18 (depends on 14)

The method of claim 14, wherein adding the protection bits to the portion of data comprises adding error correction code bits to the portion of data.

### Claim 19 (depends on 14)

The method of claim 14, further comprising:
generating additional error correction code bits from the data read from the data storage structure;
comparing the additional error correction code bits to error correction code bits read from the data storage structure to provide a compared result; and
identifying an error from the compared result.
