Load-Store Unit Load-to-Load Fusing for CPU Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The latency associated with memory load instructions in CPUs is high due to complex operations like address lookup and data alignment, which affects overall CPU performance, especially when dependent instructions are executed sequentially.

Innovation Solution

A method and system that cascade the execution of consecutive memory load instructions by performing alignment, sign extension, and endian operations in parallel, allowing the selection of a memory-load address-forwarded result to be used for the next address, thereby reducing latency by executing the second instruction's initial cycle coincidentally with the last cycle of the first instruction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If memory load instructions are executed sequentially with complex operations (address lookup, alignment, sign extension, endian operations), then processing accuracy is maintained, but execution latency increases to 3-5 cycles per instruction

Engineering Contradiction:
Improveprocessing accuracyVSAvoidexecution latency
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs alignment, sign extension, and endian operations in parallel with the memory load operation rather than sequentially. Specifically, the alignment logic and address generation unit operate concurrently with the cache access, preparing data and addresses in advance so that subsequent operations can proceed without waiting for previous operations to complete, thereby reducing overall execution latency while maintaining processing accuracy

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements load-to-load fusing where the second load instruction's address generation begins before the first load instruction completes. The address generation unit continuously operates by taking the destination address of the first load as the source address for the second load, eliminating idle cycles between instructions and maintaining continuous useful action throughout the execution pipeline

Inventive Principle:
Principle #20Continuity of useful action

2Reliability

If dependent memory load instructions are executed sequentially, then correct data dependency handling is ensured, but combined latency increases affecting CPU performance

Engineering Contradiction:
Improvedata dependency handlingVSAvoidCPU performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges two consecutive load instructions into a single fused operation where the first load's destination address becomes the second load's source address. This combining eliminates the sequential barrier between dependent instructions, allowing both operations to proceed in a coordinated manner that maintains data dependency correctness while reducing the total execution time from 6-10 cycles to 3-5 cycles

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces an intermediary mechanism where the address generation unit and alignment logic serve as mediators between the first and second load instructions. These intermediary components prepare and forward addresses and data in parallel, enabling the second instruction to proceed without waiting for the first instruction to fully complete, thus maintaining reliability while improving productivity

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10956155B2Memory load to load fusing
Publication Date: 2021.03.23 SAMSUNG ELECTRONICS CO LTD
  • US10956155B2 patent drawing
  • US10956155B2 patent drawing
  • US10956155B2 patent drawing

AI summary

A system and a method to cascade execution of instructions in a load-store unit (LSU) of a central processing unit (CPU) to reduce latency associated with the instructions. First data stored in a cache is read by the LSU in response a first memory load instruction of two immediately consecutive memory load instructions. Alignment, sign extension and/or endian operations are performed on the first data read from the cache in response to the first memory load instruction, and, in parallel, a memory-load address-forwarded result is selected based on a corrected alignment of the first data read in response to the first memory load instruction to provide a next address for a second of the two immediately consecutive memory load instructions. Second data stored in the cache is read by the LSU in response to the second memory load instruction based on the selected memory-load address-forwarded result.