ECC Memory Architecture for Fast Partial Writes and Bus Error Correction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional error correction codes for memories in system-on-chips (SoCs) face issues such as high timing overhead, inefficient handling of partial writes, and neglect of crosstalk on long buses, which impact system performance and reliability, especially in mission-critical applications.

Innovation Solution

The implementation of an electronic circuit with a memory circuit, address and data buffers, a control circuit, and error correcting code (ECC) mechanisms that include a multiplexer, comparator, and mixer circuit to manage partial writes, generate parity bits, and bypass data from a write buffer during reads, utilizing Hsiao codes for low overhead and high throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional ECC schemes based on Hamming codes are used, then error detection and correction capability is provided, but timing overhead increases and system operating frequency decreases

Engineering Contradiction:
Improveerror detection and correction capabilityVSAvoidtiming overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The memory system is segmented into multiple banks, allowing parallel error correction operations to be performed simultaneously across different banks. This segmentation enables the system to maintain error correction capability while reducing the effective timing overhead by distributing the correction workload across multiple independent units operating in parallel.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Error correction codes are pre-calculated and stored in lookup tables during design time. During operation, the system performs preliminary actions by pre-charging sense amplifiers and pre-positioning correction data in buffers before actual memory access occurs. This eliminates the need for complex real-time error calculation, significantly reducing timing overhead while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If pipelining is used to reduce timing overhead, then timing overhead decreases, but throughput decreases due to CPU having to defer memory transactions

Engineering Contradiction:
Improvetiming overheadVSAvoidthroughput
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

An intermediary buffer structure is introduced between the CPU and the pipelined error correction system. This buffer acts as a mediator that absorbs the pipeline latency, allowing the CPU to continue issuing memory transactions without waiting for error correction to complete. The buffer holds intermediate results while the pipeline processes, maintaining both low timing overhead and high throughput by decoupling CPU operation from error correction timing.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Difficulty of detecting and measuring

If conventional testing methods using ATPG or BIST techniques are used, then gate and cell level faults are detected, but crosstalk on long buses is ignored

Engineering Contradiction:
Improvefault detection capabilityVSAvoidcrosstalk on long buses
Core Design Contradiction:
Difficulty of detecting and measuringVSObject-affected harmful factors

Solution Approach 1:

The error correction system is designed with multi-functionality to handle multiple types of faults simultaneously. The same ECC circuitry that corrects bit errors also detects bus crosstalk errors through syndrome analysis. The system universally handles both traditional gate-level faults and electromagnetic crosstalk effects, providing comprehensive protection without requiring separate dedicated testing mechanisms for each fault type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Ease of operation

If partial writes are handled using conventional methods, then memory write operations are performed, but throughput is impacted due to inefficient handling

Engineering Contradiction:
Improvepartial write capabilityVSAvoidthroughput
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system performs partial error correction by applying ECC only to the specific portion of data being written or read, rather than processing the entire memory word. For partial writes, the system calculates ECC only for the modified bytes and merges them with pre-calculated ECC for unchanged bytes. This selective approach maintains full partial write capability while significantly improving throughput by reducing the amount of error correction computation required for each operation.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8671329B2Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes
Publication Date: 2014.03.11 TEXAS INSTRUMENTS INC
  • US8671329B2 patent drawing
  • US8671329B2 patent drawing
  • US8671329B2 patent drawing

AI summary

An electronic circuit (200) for use with an accessing circuit (110) that supplies a given address and a partial write data portion and also has dummy cycles. The electronic circuit (200) includes a memory circuit (230) accessible at addresses, an address buffer (410), a data buffer (440) coupled to the memory circuit (230), and a control circuit (246) operable in the dummy cycles to read data from the memory circuit (230) to the data buffer (440) from a next address location in the memory circuit (230) and to store that next address in the address buffer (410). The electronic circuit further includes a multiplexer (430), a comparing circuit (420) responsive to the given address and a stored address in the address buffer (410), to operate the multiplexer (430) to pass data from the data buffer (440) or to pass data from the memory circuit (230) instead; and a mixer circuit (450) operable to put the partial write data portion into the data taken from the selected one of the data buffer (440) or memory circuit (230). Other circuits, devices, systems, processes of operation and processes of manufacture are also disclosed.