Instruction Dependency Keys for Crash Consistent Memory Ordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems with non-volatile main memory (NVMM), ensuring efficient and proper ordering of memory operations becomes increasingly challenging due to the high number of barriers required for crash-consistent applications, which limits flexibility and efficiency in instruction execution.

Innovation Solution

The introduction of explicit dependency keys (EDKs) and complementary parameters within the instruction set architecture (ISA) allows for the definition and enforcement of ordered constraints between instructions, eliminating the need for Data Synchronization Barriers (DSBs) by explicitly linking producer and consumer instructions, enabling precise control over dependency ordering and allowing for out-of-order execution without compromising persistence.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If Data Synchronization Barriers (DSBs) are inserted into program code to ensure proper memory operation order, then reliability of persistent state is improved, but device complexity and execution overhead increase

Engineering Contradiction:
Improvecrash consistencyVSAvoidinstruction complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the ordering information from separate barrier instructions and embeds it directly into the instruction metadata fields. Each instruction now carries its own ordering dependencies (pred_req, succ_req, pred_grant, succ_grant) within its metadata, eliminating the need for external barrier instructions to enforce ordering.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent merges the ordering constraint enforcement mechanism with the instruction execution flow itself. By integrating ordering metadata into each instruction and using these fields to control execution dependencies, the system combines data processing and ordering enforcement into a unified mechanism, reducing the need for separate barrier instructions.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If barriers are inserted to ensure proper ordering of memory operations, then reliability of persistent state is improved, but productivity decreases due to increased execution time

Engineering Contradiction:
Improvepersistent state consistencyVSAvoidinstruction execution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary encoding of ordering requirements directly into instruction metadata during instruction generation. The pred_req and succ_req fields are pre-populated with ordering dependencies, allowing the execution engine to resolve ordering constraints without inserting additional barrier instructions, thus maintaining execution speed while ensuring reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces metadata fields (pred_req, succ_req, pred_grant, succ_grant) as intermediaries that carry ordering information between instructions. These metadata fields act as mediators that enable the execution engine to enforce ordering constraints implicitly without requiring explicit barrier instructions, thereby maintaining productivity while ensuring reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If explicit dependency keys are used to link producer and consumer instructions, then instruction execution flexibility is improved, but device complexity increases

Engineering Contradiction:
Improveexecution flexibilityVSAvoidinstruction set complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic dependency resolution by allowing instructions to have variable ordering requirements specified in their metadata. The pred_req and succ_req fields can be selectively set based on the specific ordering needs of each instruction, enabling flexible adaptation to different execution scenarios without requiring a fixed, complex instruction set architecture.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies local quality by allowing each instruction to have its own specific ordering requirements encoded in its metadata fields. Rather than enforcing a uniform ordering policy across all instructions, the system allows each instruction to specify its local ordering dependencies (pred_req, succ_req), enabling fine-grained control over execution ordering without increasing overall system complexity.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11740907B2Systems and methods for determining a dependency of instructions
Publication Date: 2023.08.29 ARM LTD
  • US11740907B2 patent drawing
  • US11740907B2 patent drawing
  • US11740907B2 patent drawing

AI summary

In a particular implementation, a method includes: receiving, at a central processing unit (CPU), first and second instructions of a plurality of instructions obtained from a memory, where the first instruction corresponds to a preceding instruction of a second instruction, and where the second instruction corresponds to a succeeding instruction of the first instruction; determining a dependency of the first and second instructions; sending the first and second instructions to an issue queue of the CPU; executing, at the CPU, the first and second instructions; and completing, at the CPU, the first and second instructions.