Local Memory Barrier Instruction Ordering for Multi-Core Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-socket, multi-core computing systems, memory operations can be executed out of order, leading to potential side effects and incorrect results, necessitating effective memory barrier instructions to enforce a specified order of execution.

Innovation Solution

The method involves issuing a subset of instructions at one processing element, with a memory barrier instruction that pauses execution until acknowledgments from all processing elements confirm the observed issuance of previous instructions, allowing for either global or local ordering constraints to be enforced, depending on the type of memory barrier instruction used.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory operations are allowed to execute out of order to improve processing efficiency, then productivity is improved, but reliability deteriorates due to potential side effects and incorrect results

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcorrectness of memory operations
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the memory system into multiple domains (e.g., L1 cache domain, L2 cache domain, main memory domain) and introduces domain-specific memory barrier instructions. Each domain can have independent ordering constraints, allowing out-of-order execution within domains while maintaining correctness across domains. This segmentation resolves the contradiction by enabling parallel processing within domains while preserving reliability through domain-boundary enforcement.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements local quality by allowing different ordering semantics for different memory domains. Local memory barrier instructions enforce ordering only within a specific domain, while global memory barrier instructions enforce ordering across all domains. This enables selective application of ordering constraints, improving productivity in domains that don't require strict ordering while maintaining reliability in domains that do.

Inventive Principle:
Principle #3Local quality

2Reliability

If global memory barrier instructions are used to enforce strict ordering across all processing elements, then reliability is improved, but productivity deteriorates due to execution pauses

Engineering Contradiction:
Improveordering constraint enforcementVSAvoidexecution throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the monolithic global memory barrier into domain-specific barrier instructions. Instead of requiring all processing elements to synchronize across all domains, the system allows independent progression in each domain. This segmentation reduces the critical path and allows continued execution in domains that don't require synchronization, thereby maintaining productivity while ensuring reliability where needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by implementing memory barriers that enforce ordering only to the extent necessary for correctness. Rather than universally enforcing global ordering in all scenarios, the system allows programmers to select appropriate barrier types (local vs. global) based on specific requirements. This partial enforcement of ordering constraints maintains reliability for critical operations while avoiding unnecessary productivity penalties in non-critical paths.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If local memory barrier instructions are used to reduce synchronization overhead, then productivity is improved, but adaptability deteriorates due to limited ordering scope

Engineering Contradiction:
Improvesynchronization overhead reductionVSAvoidordering constraint flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal memory barrier framework that includes both local and global barrier instructions as part of the same instruction set architecture. This multi-functionality allows the system to adapt to different programming needs by selecting the appropriate barrier type. The framework is designed to handle both domain-specific and system-wide ordering requirements, providing versatility without sacrificing productivity benefits of local barriers.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent implements dynamic adaptability by allowing the ordering scope to be selected based on runtime requirements. The system can dynamically choose between local and global memory barrier enforcement depending on the specific memory access patterns and correctness requirements of the executing code. This dynamic selection mechanism provides adaptability while maintaining the productivity advantages of localized ordering where applicable.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10782896B2Local instruction ordering based on memory domains
Publication Date: 2020.09.22 MARVELL ASIA PTE LTD
  • US10782896B2 patent drawing
  • US10782896B2 patent drawing
  • US10782896B2 patent drawing

AI summary

A method for managing an observed order of instructions in a computing system includes utilizing an overloaded memory barrier instruction to specify whether a global ordering constraint or a local ordering constraint is enforced.