Shared Memory Bank Segmentation for Parallel Access Conflict Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing shared memory systems in multithreaded processor systems face significant latency and overhead due to off-chip memory location and the need for serial access to prevent conflicts, which hinders parallel processing efficiency.

Innovation Solution

A shared memory system with multiple independently-addressable banks allows parallel access to multiple locations, using address conflict logic to serialize requests as needed to avoid conflicts, and enables data broadcasting to reduce serialization requirements, facilitating low-latency access within a multithreaded processor core.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If shared memory is located off-chip to provide larger storage capacity, then storage capacity is improved, but access speed deteriorates due to increased latency

Engineering Contradiction:
Improvestorage capacityVSAvoidaccess speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The shared memory is divided into multiple independently-addressable banks, allowing parallel access to different segments of memory simultaneously. This segmentation enables the system to maintain large total storage capacity while providing multiple high-speed access paths, effectively resolving the contradiction between storage capacity and access speed.

Inventive Principle:
Principle #1Segmentation

2Reliability

If semaphores are used to prevent conflicting access requests, then data consistency is improved, but access efficiency deteriorates because only one thread can access shared memory at a time

Engineering Contradiction:
Improvedata consistencyVSAvoidaccess efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By dividing shared memory into multiple banks that can be accessed in parallel, the system eliminates the need for semaphore-based serialization. Multiple threads can simultaneously access different banks without conflicts, maintaining data consistency through independent bank access while dramatically improving access efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of parallelism by organizing memory into banks that can be accessed simultaneously. This dimensional change from sequential single-bank access to parallel multi-bank access resolves the contradiction between reliability and productivity.

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

3Productivity

If multiple threads access the same memory location in parallel, then parallel processing throughput is improved, but access conflicts increase

Engineering Contradiction:
Improveparallel processing throughputVSAvoidaccess conflicts
Core Design Contradiction:
ProductivityVSObject-generated harmful factors

Solution Approach 1:

The memory is segmented into multiple banks, allowing threads that would otherwise conflict on the same memory location to access different banks in parallel. This segmentation eliminates access conflicts while maintaining high parallel processing throughput.

Inventive Principle:
Principle #1Segmentation

4Speed

If caches are maintained for each processor to enable fast access, then access speed is improved, but system complexity increases due to cache coherence management overhead

Engineering Contradiction:
Improveaccess speedVSAvoidcache coherence management
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent extracts the coherence management problem by using independently-addressable memory banks that eliminate the need for cache coherence protocols. Each bank can be accessed independently without requiring coordination between processors, reducing system complexity while maintaining fast access speeds.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8108625B1Shared memory with parallel access and access conflict resolution mechanism
Publication Date: 2012.01.31 NVIDIA CORP
  • US8108625B1 patent drawing
  • US8108625B1 patent drawing
  • US8108625B1 patent drawing

AI summary

Concurrent threads in a multithreaded processor share access to a memory, with any location in the shared memory being accessible by any thread. In one embodiment, the shared memory has multiple independently-addressable memory banks, and one location per bank can be accessed in parallel. Parallel processing engines executing the threads generate a group of parallel memory access requests. Address conflict logic determines whether the requests can be satisfied in parallel (e.g., based on bank access constraints) and serializes the requests to the extent needed to avoid conflicts. In some embodiments, data read from one address in the shared memory can be broadcast to multiple processing engines.