Unaligned Load Instruction Handling via Stream Buffer Suppression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face inefficiencies when handling unaligned load instructions, leading to unnecessary additional load operations due to partial data word loading, which can result in performance bottlenecks and increased power consumption.

Innovation Solution

Implementing a stream buffer to store excess data from full data word loads and using unaligned load handling modes to suppress initial load operations for subsequent instructions targeting the same excess data, along with dividing data access operations into overlapping sequences to manage stall conditions effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If the load circuitry triggers a series of load operations to load unaligned block data from data words, then the unaligned block of data can be loaded correctly, but additional load operations are required compared to aligned loads

Engineering Contradiction:
Improvedata alignment precisionVSAvoidload operation efficiency
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The load circuitry performs a preliminary full data word load that extends beyond the unaligned block boundaries. This preliminary action loads the excess part of the data word into the stream buffer in advance, so that subsequent unaligned load instructions can retrieve data from the buffer without triggering additional memory accesses, thus resolving the contradiction between precise data alignment handling and load operation efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The data word is segmented into two parts: the required block data and the excess part. The load circuitry separately handles these segments by loading the full data word, storing the excess part in the stream buffer, and allowing subsequent loads to consume from the buffer. This segmentation allows the system to maintain alignment precision while reducing redundant load operations

Inventive Principle:
Principle #1Segmentation

2Productivity

If the load circuitry loads a full data word including excess part beyond the unaligned block, then subsequent unaligned loads can reuse this data, but power is consumed for loading unnecessary data

Engineering Contradiction:
Improvesubsequent load operation efficiencyVSAvoidpower consumption for data retrieval
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system performs a preliminary full data word load and stores the excess part in the stream buffer before subsequent unaligned load instructions are executed. This preliminary action ensures that when subsequent loads need data from the excess part, it is already available in the buffer, avoiding additional power-consuming memory accesses while consuming power only once for the full data word load

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The stream buffer serves as a self-service mechanism that automatically provides data to subsequent unaligned load instructions without requiring them to trigger new load operations. The buffer holds the excess part of the data word and makes it available for reuse, allowing the system to serve subsequent loads from local storage rather than consuming power for repeated memory accesses

Inventive Principle:
Principle #25Self-service

3Productivity

If the load circuitry suppresses the initial load operation for subsequent unaligned load instructions, then the number of load operations is reduced, but the initial portion of data must be available from a preceding operation

Engineering Contradiction:
Improvenumber of load operationsVSAvoiddata availability for suppression
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The load circuitry performs a preliminary full data word load that extends beyond the unaligned block boundaries, storing the excess part in the stream buffer. This preliminary action ensures data is available before subsequent unaligned load instructions are processed, allowing the circuitry to confidently suppress initial load operations for subsequent instructions while maintaining data availability and reliability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The stream buffer acts as an intermediary between the data store and subsequent load circuitry operations. It holds the excess part of the data word and mediates data transfer by providing this data to subsequent unaligned load instructions, allowing the circuitry to suppress redundant load operations while ensuring data availability through the buffer intermediary

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10503506B2Apparatus and method for accessing data in a cache in response to an unaligned load instruction
Publication Date: 2019.12.10 ARM LTD
  • US10503506B2 patent drawing
  • US10503506B2 patent drawing
  • US10503506B2 patent drawing

AI summary

A mechanism is provided for improving performance when executing unaligned load instructions which load an unaligned block of data from a data store. In a first unaligned load handling mode, a final load operation of a series of load operations performed for the instruction loads a full data word extending beyond the end of the unaligned block of data to be loaded by that instruction. If an initial portion of the unaligned block of data to be loaded by a subsequent unaligned load instruction corresponds to the excess part in the stream buffer for the earlier instruction, then an initial load operation for the subsequent instruction can be suppressed. A mechanism is also described for allowing series of dependent data access operations triggered by a given instruction to be halted partway through when a stall condition arises, and resumed partway through later, by defining overlapping sequences of transactions.