Master-Slave Prefetcher Architecture for Multi-Processor Scalability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional main memory prefetch systems face challenges in scalability, logic complexity, design frequency, area consumption, and power consumption, particularly in multi-processor systems where memory controller prefetchers struggle to track address-streams from multiple processors, leading to performance degradation and inefficiencies.

Innovation Solution

A main memory prefetch system is implemented with a master-slave prefetcher arrangement, where the master prefetcher component communicates with the processor and sends requests to the memory controller, while the slave prefetcher component accesses and stores data in the prefetch cache, utilizing prefetch hints to predict address patterns and reduce bandwidth requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a memory controller based prefetcher is used to track address-streams from multiple processors, then prefetching capability is provided, but device complexity and difficulty of detecting and measuring increase significantly

Engineering Contradiction:
Improveprefetching capabilityVSAvoidcomplexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The prefetcher functionality is segmented into two independent components: a master prefetcher component located in the processor that generates prefetch requests, and a slave prefetcher component located in the memory controller that executes prefetch operations. This segmentation eliminates the need for a single complex memory controller prefetcher to track all address-streams from multiple processors, thereby reducing device complexity while maintaining prefetching capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The master prefetcher component acts as an intermediary between the processor and the memory controller's slave prefetcher component. It translates processor memory access patterns into prefetch requests and sends them to the slave prefetcher, which then executes the prefetch operations. This intermediary approach simplifies the memory controller's role while preserving prefetching functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the memory controller prefetcher is split into multiple instances, then scalability is improved, but address-stream tracking becomes complicated and unworkable

Engineering Contradiction:
ImprovescalabilityVSAvoidaddress-stream tracking
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

By segmenting the prefetcher into master and slave components, each instance can independently handle address-stream tracking for its associated processor without interfering with other instances. The master component in each processor manages its own address-streams, eliminating the complexity of coordinated tracking across multiple memory controller instances.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each processor's master prefetcher component independently generates prefetch requests based on its own address-stream patterns, and the corresponding slave prefetcher component in the memory controller independently executes these requests. This self-service approach eliminates the need for complex inter-instance coordination and simplifies address-stream tracking.

Inventive Principle:
Principle #25Self-service

3Loss of time

If prefetch operations are performed before instructions are needed, then latency is reduced, but bandwidth requirements increase

Engineering Contradiction:
ImprovelatencyVSAvoidbandwidth requirements
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The system performs partial prefetching by only prefetching data that is likely to be needed based on address-stream patterns, rather than prefetching all possible data. The master prefetcher generates requests based on observed access patterns, and the slave prefetcher executes selective prefetch operations, reducing unnecessary bandwidth consumption while maintaining low latency for actually needed data.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The prefetcher system uses feedback from actual memory access patterns to dynamically adjust prefetching behavior. The master prefetcher monitors address-streams and generates prefetch requests based on observed patterns, allowing the system to prefetch only when beneficial, thereby reducing bandwidth requirements while maintaining low latency.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9734072B2Main memory prefetch operation and multiple prefetch operation
Publication Date: 2017.08.15 AMPERE COMPUTING LLC
  • US9734072B2 patent drawing
  • US9734072B2 patent drawing
  • US9734072B2 patent drawing

AI summary

Provided is an integrated circuit that includes a first prefetcher component communicatively coupled to a processor and a second prefetcher component communicatively coupled to the memory controller. The first prefetcher component configured for sending prefetch requests to the memory controller. The second prefetcher component configured for accessing prefetch data based on the prefetch request and storing the prefetch data in a prefetch cache of the memory controller.