ECC Memory Byte Masking with 16-Bit Parity Update
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Semiconductor memory devices face challenges in performing error correction coding on a 16-bit or greater basis while allowing byte-based masking, as existing systems either increase cell overhead or prevent byte-based masking due to the inability to update parity data during masking operations.
Innovation Solution
A semiconductor memory device with an ECC engine that calculates parity data by dividing normal data into sections for masking, enabling column selection lines to read and update data, and using a mode selection unit to switch between masking and normal modes, allowing for ECC coding on a 16-bit basis with byte-based masking capabilities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data is ECC coded on a 16-bit basis to reduce cell overhead, then cell overhead decreases, but byte-based masking becomes impossible
Solution Approach 1:
The 16-bit data is segmented into two 8-bit sections (first section and second section), allowing independent processing of each byte. The ECC engine can selectively update one section while preserving the other, enabling byte-based masking operations while maintaining 16-bit ECC coding for reduced cell overhead.
Solution Approach 2:
The system dynamically switches between different operating modes (normal mode and masking mode) based on the column address. The mode selection unit determines whether to perform full 16-bit ECC update or selective byte-based masking, providing adaptability while maintaining efficient 16-bit coding.
2Adaptability or versatility
If data is ECC coded on an 8-bit basis to enable byte-based masking, then byte-based masking becomes possible, but cell overhead increases
Solution Approach 1:
The system segments 16-bit data into two 8-bit sections that can be independently processed. This allows the ECC engine to perform byte-based masking on one section while maintaining the benefits of 16-bit ECC coding, thus reducing cell overhead compared to pure 8-bit coding while preserving masking capability.
Solution Approach 2:
The ECC engine is designed to perform multiple functions: it can execute full 16-bit ECC coding for reduced overhead, or switch to selective 8-bit section processing for byte-based masking. This multi-functionality resolves the contradiction by allowing the same hardware to achieve both goals under different operating conditions.
3Quantity of substance
If masking operation is performed on a 16-bit basis, then cell overhead reduces, but updating only specific bytes becomes impossible
Solution Approach 1:
The 16-bit data width is segmented into two independent 8-bit sections with separate column selection lines. This segmentation enables selective updating of specific bytes (first section or second section) while maintaining the efficiency of 16-bit ECC coding, thus achieving both reduced cell overhead and selective byte update capability.
Solution Approach 2:
The mode selection unit acts as an intermediary that determines the operating mode based on the column address. It mediates between the 16-bit ECC coding requirement and the selective byte update requirement by switching between normal mode (full update) and masking mode (selective update), enabling both functionalities.
Data Source
AI summary
A semiconductor memory device includes a memory cell array and an error correction code (ECC) engine. The memory cell array stores bits of normal data and parity data therein. The ECC engine performs a masking operation in a masking mode, the ECC engine calculating the parity data using the normal data. The normal data includes a first section that is to be updated and a second section that is to be saved by the masking operation.


