Dual-Port Memory Slice Architecture for Allocation Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory management systems face inefficiencies due to competition between clients and the list manager for accessing memory blocks, which affects overall system performance as the list manager must compete with clients for memory access, even for a small portion used for storing links.

Innovation Solution

The system employs a dual-memory slice architecture where a single-port memory slice is accessible only to clients for data storage and a dual-port memory slice is accessible to both clients and the list manager for link storage, allowing separate allocation and access without conflicting usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single memory slice is used for storing both information and links, then device complexity is reduced, but the list manager must compete with clients for memory access, reducing allocation efficiency

Engineering Contradiction:
Improvememory structureVSAvoidmemory allocation efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The memory is divided into two separate slices: a first memory slice for storing information blocks and a second memory slice for storing links. This segmentation eliminates the competition between clients and the list manager for access to the same memory resources, thereby improving allocation efficiency while maintaining manageable complexity through structured organization.

Inventive Principle:
Principle #1Segmentation

2Extent of automation

If the list manager accesses memory blocks to allocate them to clients, then memory allocation function is performed, but the list manager competes with clients for memory access, increasing access time

Engineering Contradiction:
Improvememory allocation functionVSAvoidmemory access time
Core Design Contradiction:
Extent of automationVSLoss of time

Solution Approach 1:

By separating the memory into two slices with distinct access rights, the list manager can efficiently perform allocation operations on the second slice without waiting for clients to finish accessing the first slice. This reduces memory access time and improves overall system throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The second memory slice acts as an intermediary structure that the list manager uses to maintain its allocation data structure. This intermediary allows the list manager to operate independently from client access patterns, reducing contention and wait times.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If a dual-port memory slice is used for both clients and list manager access, then adaptability is improved, but competition for access increases, reducing system performance

Engineering Contradiction:
Improvememory access flexibilityVSAvoidsystem performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

Instead of using a single dual-port memory slice that causes competition, the system segments the memory into two separate slices with different port configurations. The first slice is accessible only to clients, while the second slice is accessible to both clients and the list manager. This segmentation reduces competition and improves system performance while maintaining the necessary adaptability through the dual-port configuration of the second slice.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8918593B2Method and system for memory management
Publication Date: 2014.12.23 MARVELL ASIA PTE LTD
  • US8918593B2 patent drawing
  • US8918593B2 patent drawing
  • US8918593B2 patent drawing

AI summary

A single-ported memory for storing information and only accessible to a plurality of clients, and a dual-ported memory for storing links and accessible to the plurality of clients and to a list manager that maintains a data structure for allocating memory blocks from the first memory and the second memory to the plurality of clients. The dual-ported memory is accessible to both the plurality of clients and the list manager. A method includes receiving a request from a client for access to memory storage at the single-ported memory and the dual-ported memory, and allocating a block of the single-ported memory to the client and a block of the dual-ported memory to the client. After the client has used the memory storage, the allocated block of the single-ported memory and the dual-ported memory are released to a free list data structure used by the list manager to assign storage.