Hierarchical Immutable Content-Addressable Memory Processor for Fragmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional Von Neumann computer architecture faces challenges with memory management, particularly with variable-sized and structured data, leading to issues like memory fragmentation, inefficient use of caches, and increased complexity in maintaining software correctness, especially in real-time and critical applications.

Innovation Solution

The Hierarchical Immutable Content-Addressable Memory Processor (HICAMP) architecture organizes physical memory into fixed-sized blocks, providing a non-duplicating write capability to ensure no duplicate data exists across active blocks, allowing for efficient memory management and reduced copying, and uses a virtual-to-physical block mapping to simplify data access and sharing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If conventional Von Neumann architecture uses linear memory array with sequential addresses, then memory implementation is simple and easy to use for fixed-sized data, but memory fragmentation occurs with variable-sized data and software complexity increases

Engineering Contradiction:
Improvememory implementation simplicityVSAvoidsoftware complexity for handling variable-sized data
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent divides memory into fixed-size blocks (e.g., 64 bytes) rather than using a linear array. Each block can be independently allocated and managed, allowing variable-sized data to be represented as a sequence of these fixed blocks. This segmentation eliminates fragmentation at the block level while simplifying memory management software.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical structure with multiple levels of blocks (first-level blocks containing second-level blocks, etc.). This dimensional transformation from flat linear memory to hierarchical block structure enables efficient handling of variable-sized data without increasing software complexity, as the hierarchy is managed hardware-level.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If dynamic memory allocator locates contiguous region for variable-sized data, then data storage is flexible, but memory space becomes fragmented over time and allocation requests fail even with ample total memory

Engineering Contradiction:
Improvevariable-sized data storage flexibilityVSAvoidmemory allocation reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

Memory is segmented into fixed-size blocks that can be independently allocated. Variable-sized data is represented as a sequence of these blocks, allowing flexible storage without fragmentation. The segmentation is managed at the hardware level, ensuring contiguous allocation always succeeds as long as total memory is sufficient.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses content-addressable memory to create copies of data blocks. When data is allocated, a copy of the data is made and stored in a new block, with a pointer to the original block. This copying mechanism enables flexible variable-sized data storage while maintaining reliable allocation by working with fixed-size block units rather than attempting to allocate arbitrary contiguous regions.

Inventive Principle:
Principle #26Copying

3Reliability

If garbage collector re-compacts memory periodically to make regions contiguous, then memory fragmentation is reduced, but execution is interfered with and response time becomes unpredictable in real-time systems

Engineering Contradiction:
Improvememory contiguityVSAvoidexecution time and response time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs memory compaction and reorganization in advance at the hardware level during memory allocation, rather than waiting for fragmentation to occur. The hierarchical block structure is maintained and managed proactively, eliminating the need for periodic garbage collection interrupts and ensuring continuous predictable execution in real-time systems.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the software-based garbage collection mechanism with a hardware-based memory management system. The hierarchical block structure and content-addressable memory enable automatic block management at the hardware level, eliminating the need for software garbage collection processes that would interrupt execution and cause unpredictable response times.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Adaptability or versatility

If variable-size data grows in length, software allocates new contiguous region and copies data, but an extra level of indirection is introduced through fixed size location for pointer management

Engineering Contradiction:
Improvevariable-sized data handlingVSAvoidindirection level
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Variable-sized data is segmented into fixed-size blocks, eliminating the need for dynamic allocation and copying. Each block is a fixed unit that can be directly addressed, removing the extra level of indirection. The segmentation is handled at the hardware level through the hierarchical block structure, so no additional pointer management software is needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses content-addressable memory to store copies of data blocks directly at their logical addresses. When data is accessed, the block is copied to the required location without needing intermediate pointer structures. This copying mechanism at the hardware level eliminates the need for software-level indirection through fixed-size pointer locations.

Inventive Principle:
Principle #26Copying

5Adaptability or versatility

If structured data uses pointers for non-contiguous memory units, then variable-sized data can be represented, but determining when memory region can be freed becomes difficult and access overhead increases

Engineering Contradiction:
Improvevariable-sized and structured data representationVSAvoidmemory management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments memory into fixed-size blocks that form the basis of all data structures. Variable-sized and structured data are represented as sequences or hierarchies of these blocks, eliminating the need for complex pointer management. The segmentation is hardware-managed, making it simple to determine when blocks can be freed based on their usage status rather than tracking complex pointer references.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of using pointers to reference non-contiguous memory units (the conventional approach), the patent inverts the approach by using fixed-size blocks as the fundamental units that automatically provide contiguity through their hierarchical structure. This inversion simplifies memory management by making the container (block) simpler than the contained data, allowing straightforward allocation and freeing operations.

Inventive Principle:
Principle #13The other way round (Inversion)

6Reliability

If multiple processes use structured data with virtual address translation, then process isolation is provided, but sharing structured data between processes requires serialization and copying with significant performance penalty

Engineering Contradiction:
Improveprocess isolationVSAvoiddata sharing performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments memory into fixed-size blocks that can be directly shared between processes. The hierarchical block structure provides a common address space that eliminates the need for virtual address translation during data sharing. Processes can directly access shared blocks without serialization, achieving both process isolation through the block structure and high-performance data sharing through direct block access.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses content-addressable memory to provide direct copying of block contents between processes without serialization. When a process needs to access data from another process, the block is copied directly at the hardware level, eliminating the need for complex serialization and deserialization operations. This copying mechanism maintains process isolation while enabling efficient data sharing through direct block-level operations.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10282122B2Methods and systems of a memory controller for hierarchical immutable content-addressable memory processor
Publication Date: 2019.05.07 INTEL CORP
  • US10282122B2 patent drawing
  • US10282122B2 patent drawing
  • US10282122B2 patent drawing

AI summary

Improved memory management is provided according to a Hierarchical Immutable Content Addressable Memory Processor (HICAMP) architecture. In HICAMP, physical memory is organized as two or more physical memory blocks, each physical memory block having a fixed storage capacity. An indication of which of the physical memory blocks is active at any point in time is provided. A memory controller provides a non-duplicating write capability, where data to be written to the physical memory is compared to contents of all active physical memory blocks at the time of writing, to ensure that no two active memory blocks have the same data after completion of the non-duplicating write.