Memory Queue Architecture for Multi-Processor Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-performance multi-processor systems face memory bandwidth limitations due to memory conflicts in multi-bank memory organizations, where simultaneous data accesses often lead to stalls and reduced performance, especially in applications requiring high parallelism and bandwidth.

Innovation Solution

The proposed solution involves a memory queue architecture with dedicated queues for each functional unit and memory bank, combined with software techniques for optimizing data layout and access scheduling, to reduce memory conflicts and improve data throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a true multi-port memory is used to provide high memory bandwidth, then data throughput is improved, but cost and complexity increase non-linearly

Engineering Contradiction:
Improvedata throughputVSAvoidmemory system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory system is segmented into multiple single-port memory banks instead of using a single true multi-port memory. Each memory bank can be independently accessed, and the banks are organized in a way that allows parallel data transfers. This segmentation approach achieves high data throughput while keeping individual memory components simpler and more cost-effective.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple single-port memory banks are merged to function as a pseudo multi-port memory system. By combining the capabilities of several simpler memory units, the system achieves the performance characteristics of a true multi-port memory without the associated complexity and cost penalties.

Inventive Principle:
Principle #5Merging (Combining)

2Device complexity

If multiple single-port memory banks are assembled to form a pseudo multi-port system, then cost is reduced, but memory conflicts occur when multiple accesses target the same bank

Engineering Contradiction:
Improvememory system complexityVSAvoiddata throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent introduces an additional dimension to memory addressing by implementing memory banks with multiple ports or by creating a hierarchical memory structure. This allows memory accesses to be routed through different paths or layers, enabling simultaneous non-conflicting accesses to different data while using the same physical memory bank, thereby eliminating memory conflicts without increasing overall system complexity.

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

Solution Approach 2:

An intermediary arbitration mechanism or multiplexer is introduced between the memory banks and the functional units. This intermediary component manages the memory access requests, ensuring that multiple simultaneous accesses to the same bank are resolved without stalling the system, thus maintaining high data throughput while using simpler single-port memory banks.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If memory accesses are serviced immediately without queuing, then response time is reduced, but memory conflicts cause stalls and performance degradation

Engineering Contradiction:
Improvememory access latencyVSAvoiddata throughput
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

Memory access requests are placed in queues at functional units or at memory banks in advance of actual data transfer. This preliminary queuing allows the system to prepare and buffer requests, then service them in an optimized manner that avoids conflicts. The queue acts as a buffer that decouples the immediate access need from the actual memory operation timing, enabling conflict-free simultaneous accesses.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The memory queue system ensures continuous productive operation by buffering memory requests and maintaining steady data flow. Instead of stalling when conflicts occur, the queue allows overlapping of memory operations, ensuring that functional units continue executing instructions without interruption while memory bandwidth is efficiently utilized.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS8560795B2Memory arrangement for multi-processor systems including a memory queue
Publication Date: 2013.10.15 INTERUNIVERSITAIR MICRO ELECTRONICS CENT (IMEC VZW)
  • US8560795B2 patent drawing
  • US8560795B2 patent drawing
  • US8560795B2 patent drawing

AI summary

A hardware memory architecture or arrangement suited for multi-processor systems or arrays is disclosed. In one aspect, the memory arrangement includes at least one memory queue between a functional unit (e.g., computation unit) and at least one memory device, which the functional unit accesses (for write and/or read access).