Chained Resource Locking for Compute-Near-Memory Parallel Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer architectures face inefficiencies in data transfer between processors and memory, leading to performance and capacity constraints, particularly in compute-intensive operations like neural networks and simulations, due to high cache miss rates and traditional locking mechanisms that limit parallel execution efficiency.

Innovation Solution

The implementation of a compute-near-memory (CNM) system with hybrid threading processors and a scalable locking mechanism that uses event messaging to pass locks between threads, eliminating contention on lock values and improving parallel efficiency by allowing threads to initiate their own threads or sub-threads, thereby reducing latency and enhancing system performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional locking mechanisms are used for resource management, then thread synchronization is achieved, but parallel execution efficiency deteriorates due to lock contention

Engineering Contradiction:
Improvethread synchronizationVSAvoidparallel execution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces an event messaging system as an intermediary between threads that need synchronized access to shared resources. Instead of threads directly contending for locks, they post events to a queue and receive notifications when resources become available. This mediator approach eliminates direct lock contention while maintaining synchronization guarantees, allowing multiple threads to proceed in parallel without blocking each other.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If compute units are placed far from memory, then memory access flexibility is improved, but data transfer time and energy consumption increase

Engineering Contradiction:
Improvememory access flexibilityVSAvoiddata transfer time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the computing system into multiple compute-near-memory units, each with its own local memory and processing elements. This segmentation allows data to be processed close to where it is stored, eliminating the need for frequent long-distance data transfers. Each segment can independently access its local memory without interfering with other segments, maintaining flexibility while reducing transfer time and energy consumption.

Inventive Principle:
Principle #1Segmentation

3Productivity

If cache memory size is increased to reduce cache misses, then compute-intensive operation performance improves, but memory capacity and cost increase

Engineering Contradiction:
Improvecompute-intensive operation performanceVSAvoidmemory capacity
Core Design Contradiction:
ProductivityVSVolume of stationary object

Solution Approach 1:

The patent transitions from a traditional hierarchical memory model to a compute-near-memory architecture where processing elements are distributed across multiple memory modules. This dimensional change allows the system to achieve high performance for compute-intensive operations by placing compute units close to memory, eliminating the need for large cache memory while maintaining low latency access to data.

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

Data Source

PatentUS20250094242A1Chained resource locking
Publication Date: 2025.03.20 MICRON TECHNOLOGY INC
  • US20250094242A1 patent drawing
  • US20250094242A1 patent drawing
  • US20250094242A1 patent drawing

AI summary

Devices and techniques for chained resource locking are described herein. Threads form a last-in-first-out (LIFO) queue on a resource lock to create a chained lock on the resource. A data store representing the lock for the resource holds the previous thread's identifier, enabling a subsequent thread to wake the previous thread using the identifier when the subsequent thread releases the lock. Generally, the thread releasing the lock need not interact with the data store, reducing contention for the data store among many threads.