Speculative Parallel Execution for Unaligned Load Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cache line unaligned load operations in microprocessors are inefficient due to the need for duplicate execution and resource arbitration, leading to significant processing time consumption and reduced performance, especially in software programs with frequent unaligned loads.

Innovation Solution

A microprocessor system and method for speculative parallel execution of cache line unaligned load instructions, utilizing a predictor to identify unaligned loads, dispatching instructions to two load pipelines, and merging data from both pipelines to provide a single result, thereby avoiding the inefficiencies of conventional unaligned load handling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If cache line unaligned load operations are handled using conventional sequential execution, then the microprocessor can maintain simple load pipeline architecture, but processing time increases and performance decreases due to duplicate execution and resource arbitration

Engineering Contradiction:
Improveprocessing speedVSAvoidload operation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the unaligned load operation into two separate load requests, each targeting a different cache line. The load dispatcher divides the original load instruction into multiple sub-requests that can be processed in parallel by different load pipelines, eliminating the need for sequential execution and reducing overall processing time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of parallelism by utilizing multiple load pipelines that can operate simultaneously. Instead of processing unaligned loads sequentially in a single pipeline, the system distributes load requests across multiple pipelines, transforming a sequential single-dimensional process into a parallel multi-dimensional operation.

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

2Reliability

If duplicate load instructions are issued to handle unaligned loads, then data retrieval can be attempted from multiple cache lines, but resource arbitration complexity increases and processing efficiency decreases

Engineering Contradiction:
Improvedata retrieval accuracyVSAvoidload pipeline complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary action by having the load dispatcher pre-process unaligned load instructions and generate appropriate sub-requests before execution. The dispatcher analyzes the load address and data length to determine which cache lines need to be accessed, preparing the load requests in advance so that the execution stage can process them efficiently without complex arbitration.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The load dispatcher acts as an intermediary between the instruction fetch unit and the load pipelines. It receives unaligned load instructions, analyzes them, and transforms them into appropriate sub-requests for the load pipelines. This intermediary function simplifies the overall system architecture by centralizing the complexity in the dispatcher rather than distributing it across multiple pipelines.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If load instructions are sequentially executed to retrieve data crossing cache line boundaries, then the microprocessor can use simple cache access logic, but instruction stream stalls occur and performance is reduced

Engineering Contradiction:
Improvecache access simplicityVSAvoidinstruction execution throughput
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent introduces dynamic behavior to the load access system. The load dispatcher dynamically analyzes each unaligned load instruction and generates appropriate sub-requests based on the specific address and data length. The load pipelines dynamically process these sub-requests in parallel, and the result merger dynamically combines the results. This dynamic adaptation allows the system to maintain simple cache access logic while achieving high throughput through parallel execution.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3171264B1System and method of speculative parallel execution of cache line unaligned load instructions
Publication Date: 2019.07.17 VIA ALLIANCE SEMICON CO LTD
  • EP3171264B1 patent drawingFigure 1~2
  • EP3171264B1 patent drawingFigure 3~4
  • EP3171264B1 patent drawingFigure 5~6

AI summary

A system and method of performing speculative parallel execution of a cache line unaligned load instruction including speculatively predicting whether a load instruction is unaligned with a cache memory, marking the load instruction as unaligned and issuing the instruction to a scheduler, dispatching the unaligned load instruction in parallel to first and second load pipelines, determining corresponding addresses for both load pipelines to retrieve data from first and second cache lines incorporating the target load data, and merging the data retrieved from both load pipelines. Prediction may be based on matching an instruction pointer of a previous iteration of the load instruction that was qualified as actually unaligned. Prediction may be further based on using a last address and a skip stride to predict a data stride between consecutive iterations of the load instruction. The addresses for both loads are selected to incorporate the target load data.