Pattern Based Preload Engine for Cache Prefetching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional hardware prefetchers face issues with redundancy and timing problems, and software-based preload instructions are inefficient due to the need for multiple load/store and ALU instructions, limiting their effectiveness in caching data based on access patterns.

Innovation Solution

A software-defined preload engine that uses a pattern-based approach, where a trigger instruction with an index and base address accesses a preload engine offset table to determine an offset specific to the application's location and state, allowing for efficient prefetching of data into cache memory based on access patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional hardware prefetchers are used, then data prefetching is performed, but prefetch redundancy and prefetch insertion timing problems occur

Engineering Contradiction:
Improvedata prefetching efficiencyVSAvoidprefetch redundancy and timing problems
Core Design Contradiction:
ProductivityVSObject-generated harmful factors

Solution Approach 1:

The patent introduces a software-defined preload engine as an intermediary between traditional hardware prefetchers and the cache system. This engine uses a pattern-based approach with trigger instructions that index into offset tables to determine precise prefetch timing and addresses, eliminating the redundancy and timing issues of traditional hardware prefetchers while maintaining efficient data prefetching.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the operational parameters of prefetching by using software-defined trigger instructions that specify program location and state, rather than relying on hardware-based address pattern detection. This allows dynamic adjustment of prefetch parameters including offset tables, base addresses, and trigger conditions to optimize prefetching for specific access patterns without redundancy.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If software based preload instructions are used, then data can be preloaded into cache, but multiple load/store and ALU instructions are required which diminishes the benefit

Engineering Contradiction:
Improvecache preload capabilityVSAvoidnumber of load/store and ALU instructions
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple separate instructions (load/store and ALU instructions) into a single unified trigger instruction. This trigger instruction contains an index into the preload engine offset table and a base address, combining what would traditionally require multiple instructions into one operation, thereby reducing instruction count while maintaining full preload capability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent performs preliminary action by pre-computing and storing offset values in offset tables during software initialization or compilation phases. This allows the runtime trigger instruction to simply index into these pre-computed tables rather than performing complex address calculations at runtime, reducing the number of ALU instructions needed during execution.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If a preload engine targeting a specific address pattern is used, then prefetching can be performed, but real world cases hardly benefit

Engineering Contradiction:
Improveprefetch executionVSAvoidapplicability to real world cases
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal preload engine that can handle multiple access patterns through a single pattern-based interface. The trigger instruction mechanism with offset table indexing provides a unified approach that adapts to various real-world access patterns (sequential, strided, random, etc.) without requiring pattern-specific hardware logic, thereby achieving both prefetch execution and broad applicability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces dynamic adaptability by allowing software to define and update access patterns in the offset tables at runtime. The preload engine can dynamically adjust prefetch parameters based on actual program behavior and access patterns observed during execution, making it adaptable to diverse real-world cases rather than being fixed to a single address pattern.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10248569B2Pattern based preload engine
Publication Date: 2019.04.02 FUTUREWEI TECHNOLOGIES INC
  • US10248569B2 patent drawing
  • US10248569B2 patent drawing
  • US10248569B2 patent drawing

AI summary

A method includes obtaining a trigger instruction responsive to execution of an application reaching a specific location and state, wherein the trigger instruction includes an index into a preload engine offset table and a base address, accessing the preload engine offset table based on the index and base address to determine an offset specific to the application location and state, and prefetching data into cache as a function of the base address and offset.