IP Library Granted Patent US 12670063
Granted Patent B2
US 12670063 · App. 18/899,342 · Granted Jun 30, 2026

Memory error checking in data processing systems

Inventors: Daren Croxford (Swaffham Prior, GB); Jussi Tuomas Pennala (Lund, SE); Philip Malcolm Done (Cambridge, GB); Mark Stephen Bellamy (Haverhill, GB)
Assignee: ARM Limited
G06F11/1044G06F12/023G06F2212/1032
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12670063
App. No.
18/899,342
Granted
Jun 30, 2026
Kind
B2
Abstract

Disclosed is memory access logic that is operable to perform different accesses to a particular memory element depending on whether or not a memory error checking scheme is being implemented for the memory element. A set of error checking bits are stored in the memory element for implementing the memory error checking scheme. The memory error checking scheme can thus be selectively enabled and memory accesses performed accordingly such that when the memory error checking scheme is enabled, it is ensured that the required error checking bits are accessed.

Claims (40)

1 . An apparatus comprising:

a memory element, wherein the memory element comprises an access lane, wherein the access lane has a certain data width and is configured to store within that data width a respective set of data bits and to also store within that data width an associated set of one or more error checking bits for implementing a memory error checking scheme for the set of data bits, the error checking bits thus being stored in the access lane of the memory element together with the set of data bits, and wherein the access lane is configured as a set of plural channels, each channel corresponding to a respective sub-portion of the access lane; and

an associated memory interface circuit including memory access logic for controlling access to the respective memory element,

wherein, when new data is to be written to a sub-portion of the access lane, the memory access logic is selectively controllable to perform different memory access operations, including:

(i) a first access operation comprising reading the full data width of the access lane, thus including reading all of the data bits and the corresponding error checking bits, and then writing the new data into the full data width of the access lane together with an updated set of error checking bits based on the new data; and

(ii) a second, different access operation in which the new data is written to a selected one or more of the channels of the set of plural channels into which the access lane is configured.

2 . The apparatus of claim 1 , wherein the access lane has a data width greater than 16 bits.

3 . The apparatus of claim 2 , wherein the access lane has a data width greater than 32 bits.

4 . The apparatus of claim 1 , wherein the number of data bits stored within the access lane is at least twice the number of error checking bits stored within the access lane.

5 . The apparatus of claim 1 , wherein the set of error checking bits includes a plurality of error checking bits, and wherein the access lane is configured such that the plurality of error checking bits are distributed across the set of plural of channels into which the access lane is configured, each channel thus respectively configured to store both data bits and a respective one or more error checking bits from the set of error checking bits.

6 . The apparatus of claim 1 , wherein the set of error checking bits includes a plurality of error checking bits, and wherein the access lane is configured such that the respective set of error checking bits is stored in a respective one of the channels into which the access lane is configured.

7 . The apparatus of claim 1 , wherein the first access operation is performed as a read-modify write operation.

8 . A data processing system comprising:

at least one processing element;

a respective memory element that the at least one processing element is configured to access when performing its processing, wherein the memory element comprises an access lane, wherein the access lane has a certain data width and is configured to store within that data width a respective set of data bits and to also store within that data width an associated set of one or more error checking bits for implementing a memory error checking scheme for the set of data bits, the error checking bits thus being stored in the access lane together with the set of data bits, and wherein the access lane is configured as a set of plural channels, each channel corresponding to a respective sub-portion of the access lane; and

an associated memory interface circuit including memory access logic for controlling the at least one processing element's access to the respective memory element,

wherein the memory error checking scheme can be selectively enabled in respect of the memory element, and

wherein, when new data is to be written to a sub-portion of the access lane, the memory access logic is configured to perform different memory access operations depending on whether or not the memory error checking scheme is enabled, wherein:

when the memory error checking scheme is enabled, the memory access logic is configured to perform a first access operation comprising reading the full data width of the access lane, thus including reading all of the data bits and the corresponding error checking bits, and then writing the new data into the full data width of the access lane together with an updated set of error checking bits based on the new data,

whereas when the memory error checking scheme is not enabled, the memory access logic is operable to perform a second, different access operation in which the new data is written to a selected one or more of the channels of the set of plural channels into which the access lane is configured.

9 . The data processing system of claim 8 , wherein the respective memory element has a data width greater than 16 bits.

10 . The data processing system of claim 9 , wherein the respective memory element has a data width greater than 32 bits.

11 . The data processing system of claim 8 , wherein the number of data bits stored within the access lane is at least twice the number of error checking bits stored within the access lane.

12 . The data processing system of claim 8 , wherein the set of error checking bits includes a plurality of error checking bits, and wherein the memory element is configured such that the plurality of error checking bits are distributed across the set of plural of channels into which the access lane is configured, each channel thus respectively configured to store both data bits and a respective one or more error checking bits from the set of error checking bits.

13 . The data processing system of claim 8 , wherein the set of error checking bits includes a plurality of error checking bits, and wherein the access lane is configured such that the respective set of error checking bits is stored in a respective one of the channels into which the access lane is configured.

14 . The data processing system of claim 8 , wherein the first access operation is performed as a read-modify write operation.

15 . The data processing system of claim 8 , wherein when data is to be read from the respective access lane, when the memory error checking scheme is enabled, the memory access logic is configured to issue a read transaction to read the full data width of the access lane, whereas when the memory error checking scheme is not enabled, the memory access logic is configured to issue a read transaction to read only the desired data bits.

16 . The data processing system claim 8 , wherein the at least one processing unit is a graphics processor or a processing unit within a graphics processor.

17 . The data processing system of claim 8 , wherein the memory error checking scheme is selectively enabled or not enabled in respect of the memory element on a per-output basis.

18 . A method of initialising a memory element access lane for subsequent memory accesses, wherein the memory element access lane has a certain data width and is configured to store within that data width a respective set of data bits and to also store within that data width an associated set of one or more error checking bits for implementing a memory error checking scheme for the set of data bits, the error checking bits thus being stored in the memory element access lane together with the set of data bits,

wherein the memory error checking scheme is selectively enabled or not enabled in respect of the memory element, and wherein the method comprises:

when the memory error checking scheme is not enabled in respect of the memory element:

setting the value of each of the error checking bits in the set of error checking bits to a same value, the same value being whichever of 0 or 1 it is more efficient to read from the memory element access lane.

19 . The method of claim 18 , wherein the memory element access lane is configured as a set of plural channels, each channel corresponding to a respective sub-portion of the memory element access lane, and wherein the set of error checking bits includes a plurality of error checking bits that are distributed across the set of plural of channels into which the memory element access lane is configured, each channel thus respectively operable to store both data bits and a respective one or more error checking bits from the set of error checking bits, the method comprising:

when the memory error checking scheme is not enabled in respect of the memory element:

whenever data is to be written to a particular one of the channels into which the memory element access lane is configured, writing the said same value for each of the error checking bits stored within that channel.

20 . The method of claim 18 , wherein the memory element access lane is configured as a set of plural channels, each channel corresponding to a respective sub-portion of the memory element access lane, and wherein the set of error checking bits includes a plurality of error checking bits that are stored within a respective one of the channels into which the memory element access lane is configured, the method comprising:

when the memory error checking scheme is not enabled in respect of the memory element:

initially setting the value of each of the error checking bits in the set of error checking bits to said same value; and then

controlling subsequent writes such that the respective one of the channels that stores the error checking bits is not written to.