Vector Memory Micro-Op Dispatch for Non-Blocking Pipelines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing vector instruction dispatch mechanisms in processors often lead to pipeline stalls and inefficiencies due to the mix of scalar and vector instructions, particularly when handling complex addressing modes like indexed or constant stride, which disrupt the flow of operations and reduce overall performance.

Innovation Solution

Implementing a non-blocking vector instruction dispatch system that decomposes vector instructions into multiple micro-operations (VMMOs and VMEMOs) based on memory addressing modes, allowing these to be processed in dedicated queues, thereby maintaining pipeline efficiency and enabling simultaneous execution of additional instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If vector instructions are mixed with scalar instructions in the same pipeline, then the processor can handle diverse operations, but pipeline stalls occur and performance decreases

Engineering Contradiction:
Improveinstruction handling capabilityVSAvoidpipeline throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the instruction pipeline into separate scalar and vector processing paths. Vector instructions are decomposed into multiple vector micro-operations (VMMOs) that are processed in dedicated vector execution units, while scalar instructions follow a separate path. This segmentation prevents vector operations from blocking scalar operations and vice versa, resolving the pipeline stall issue while maintaining the ability to handle both instruction types.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If complex addressing modes like indexed or constant stride are implemented, then memory access flexibility is improved, but dispatch complexity increases and stalls occur

Engineering Contradiction:
Improvememory addressing capabilityVSAvoiddispatch mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements preliminary calculation of address sequences for complex addressing modes. When a vector instruction with indexed or constant stride addressing is decoded, the expected address sequence is pre-calculated and stored in a buffer before execution. This allows the dispatch unit to quickly retrieve pre-computed addresses without performing complex calculations during the critical dispatch phase, reducing dispatch complexity and preventing stalls.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If vector instructions are decomposed into multiple micro-operations, then pipeline efficiency is improved and parallel execution is enabled, but instruction complexity increases

Engineering Contradiction:
Improvepipeline efficiencyVSAvoidinstruction decomposition complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a vector micro-operation buffer as an intermediary structure between the decode unit and vector execution units. Decoded vector instructions are transformed into standardized VMMOs and stored in this buffer, which manages the decomposition and scheduling of micro-operations. This intermediary absorbs the complexity of instruction decomposition, presenting a simplified interface to both the decoder and execution units while enabling efficient parallel processing of multiple VMMOs.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20260056740A1Non-blocking vector instruction dispatch with micro-element operations
Publication Date: 2026.02.26 AKEANA INC
  • US20260056740A1 patent drawing
  • US20260056740A1 patent drawing
  • US20260056740A1 patent drawing

AI summary

A processor core is accessed. The processor core is configured to execute vector instructions, scalar instructions, and micro-operations. A vector memory instruction is decoded. The vector memory instruction is associated with a memory addressing mode. The decoding includes replacing the vector memory instruction with one or more vector memory micro-operations (VMMOs). The one or more VMMOs are substituted with one or more vector memory element micro-operations (VMEMOs). The substituting is based on the memory addressing mode. At least one VMEMO within the one or more VMEMOs is forwarded to a memory queue within a plurality of memory queues. A memory operation is issued to a load-store unit within the processor core. The issuing includes selecting, from the plurality of memory queues, the memory operation. The replacing is based on a micro-operation sequencer. One or more destination registers for the vector memory instruction are determined.