Remapping Inoperable Memory Blocks Using Byte-Level Pointers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Phase change memory (PCM) devices face limitations due to inoperable bits, which can render entire memory blocks unusable, leading to data loss and performance issues when error-correcting pointers are exhausted, resulting in slower application performance or crashes.
Innovation Solution
Generating a data structure with memory page pointers that identify inoperable bits, allowing the memory controller to avoid these bits during operations by mapping around them, and storing this data structure in reserved memory blocks with metadata association.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If error-correcting pointers are used to handle inoperable bits, then memory reliability is improved, but the number of correctable cell failures is limited and subsequent failures render entire blocks unusable
Solution Approach 1:
The patent divides the memory block into individually addressable bytes rather than treating the entire block as a single unit. When inoperable bits are detected, only the specific byte containing the inoperable bit is marked as unusable through the data structure, while the remaining bytes remain accessible. This segmentation allows the memory system to continue operating with partial block functionality rather than requiring complete block discard.
Solution Approach 2:
The patent introduces a data structure as an intermediary layer between the physical memory block and the logical memory address space. This data structure stores byte-level inoperability information and enables the memory controller to translate logical addresses to valid physical locations, avoiding inoperable bits without requiring complete block remapping. The intermediary data structure absorbs the impact of cell failures and prevents them from propagating to the entire block.
2Reliability
If entire memory blocks are discarded when inoperable bits are detected, then memory reliability is maintained, but memory waste increases and performance decreases
Solution Approach 1:
The patent segments the memory block at the byte level, allowing individual bytes with inoperable bits to be identified and excluded while preserving the functionality of remaining bytes. The data structure stores information about inoperable bytes, enabling the system to navigate around damaged areas and utilize healthy portions of the same memory block, thereby reducing memory waste.
Solution Approach 2:
The patent applies local quality by treating each byte within the memory block independently regarding inoperability. Instead of applying a uniform discard policy to the entire block, the system selectively marks only the specific bytes containing inoperable bits as unusable. This localized approach preserves the utility of adjacent healthy bytes and minimizes the impact of cell failures on overall memory capacity.
3Productivity
If virtual page remapping is performed when block failures occur during runtime, then application continuity is maintained, but application performance slows down
Solution Approach 1:
The patent performs preliminary action by detecting and recording inoperable bits during memory initialization or idle periods, storing this information in data structures before runtime operations begin. When the memory system is actively processing applications, the pre-computed data structures are already available, allowing the memory controller to quickly translate addresses and avoid inoperable bits without performing time-consuming remapping operations during critical runtime periods.
Solution Approach 2:
The patent implements a dynamic address translation mechanism that adapts to the specific pattern of inoperable bits in each memory block. Rather than using static remapping tables that require extensive updates, the system dynamically generates address translations based on the current state of the data structures, optimizing performance by only translating addresses that need to avoid inoperable bytes while leaving other addresses unchanged.
Data Source
AI summary
Inoperable bits are determined in a memory block. Rather than abandon the block as inoperable, a data structure is generated that includes at least one memory page pointer that identifies the location of the inoperable bits in the memory block. The data structure is stored in one of a group of memory blocks that are reserved for the data structures. A pointer to the data structure is stored in metadata associated with the memory block with the inoperable bits. When a later memory operation is received for the memory block, the pointer is retrieved from the metadata and the memory page pointers are used to avoid the inoperable bits.


