Programmable Prefetcher for Dynamic Memory Access Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processors with predetermined prefetchers often fail to optimize memory access performance due to inefficiencies in predicting future memory requests, leading to suboptimal prefetching operations that can negatively impact processing efficiency.

Innovation Solution

A programmable prefetcher is introduced, comprising a load monitor, a programmable prefetch engine, and a prefetch requester, which can be configured with custom prefetch programs to accurately anticipate and prefetch data based on specific application needs, utilizing programmable logic elements and interconnectors to optimize prefetch operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional predetermined prefetchers are used, then the device complexity is reduced and ease of manufacture is improved, but memory access performance deteriorates due to inability to accurately predict future memory requests

Engineering Contradiction:
Improvememory access performanceVSAvoidprefetcher complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The prefetcher transitions from a static predetermined algorithm to a dynamic programmable system that can adapt its prefetching behavior based on actual memory access patterns. The load monitor continuously tracks memory requests and dynamically adjusts prefetch parameters, enabling the system to optimize performance for different workloads while maintaining a manageable hardware structure.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the operational parameters of the prefetcher from fixed predetermined values to dynamically adjustable parameters based on monitored memory access patterns. By modifying prefetch parameters such as prefetch distance and timing based on actual workload characteristics, the system achieves high reliability without requiring overly complex hardware.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If multiple predetermined prefetchers are incorporated to handle different processes, then adaptability is improved, but device complexity increases and the prefetchers tend to thrash and conflict with each other

Engineering Contradiction:
Improveprefetcher adaptabilityVSAvoidprefetcher structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal programmable prefetcher that can handle multiple different processes and workloads through a single adaptable structure. Rather than having separate dedicated prefetchers for different process types, this single prefetcher can be reconfigured via programming to optimize for any workload, thereby achieving high adaptability without the complexity and conflicts of multiple simultaneous prefetchers.

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

Solution Approach 2:

The load monitor provides continuous feedback on actual memory access patterns to the programmable prefetcher. This feedback mechanism allows the prefetcher to adapt its behavior dynamically based on real workload characteristics, enabling a single prefetcher to effectively handle multiple different processes without thrashing or conflict.

Inventive Principle:
Principle #23Feedback

3Productivity

If inaccurate prefetch algorithms are used, then device complexity is reduced, but processing efficiency deteriorates due to retrieving too much wrong information

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidprefetch algorithm complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The programmable prefetcher with load monitor effectively serves itself by automatically learning and adapting to the specific memory access patterns of each workload. The system monitors its own operational effectiveness and adjusts its prefetching behavior accordingly, achieving high processing efficiency through self-optimization without requiring excessively complex external control mechanisms.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3179375B1Processor with programmable prefetcher
Publication Date: 2020.05.06 VIA ALLIANCE SEMICON CO LTD
  • EP3179375B1 patent drawingFigure 1
  • EP3179375B1 patent drawingFigure 2
  • EP3179375B1 patent drawingFigure 3

AI summary

A processor including a programmable prefetcher for prefetching information from an external memory. The programmable prefetcher includes a load monitor, a programmable prefetch engine, and a prefetch requester. The load monitor tracks load requests issued by the processor to retrieve information from the external memory. The programmable prefetch engine is configured to be programmed by at least one prefetch program to operate as a programmed prefetcher, such that during operation of the processor, the programmed prefetcher generates at least one prefetch address based on the load requests issued by the processor. The requester uses each generated prefetch address to prefetch information from the external memory. A prefetch memory may store one or more prefetch programs and a prefetch programmer may be included to select from among stored prefetch programs to program the prefetcher based on an executing process. Each prefetch program may be configured according to a prefetch definition.