Scout Core Prefetching for Multi-Core Chip Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Single thread processor performance growth is limited due to skewed power requirements, and increasing core count on multi-core chips does not always yield proportional performance gains, as cache and memory sharing constraints hinder performance increases.

Innovation Solution

A multi-core chip architecture with a scout core that monitors and prefetches data for a parent core using a shared cache, allowing for speculative prefetching based on detected data patterns, thereby improving cache access latency without requiring extensive additional hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If additional hardware is provided for complex prefetching algorithms, then prefetching capability is improved, but device complexity and area increase

Engineering Contradiction:
Improveprefetching capabilityVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A scout core is introduced as an intermediary component that monitors parent cores and generates prefetch requests. The scout core acts as a mediator between the parent core's memory access patterns and the shared cache, translating observed access patterns into prefetch operations without requiring complex hardware modifications to the parent core itself.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The scout core creates a simplified copy or model of the parent core's behavior by monitoring its cache access patterns. Instead of implementing complex prefetching logic in the parent core, the scout core replicates the monitoring function and generates prefetch requests based on observed patterns, reducing the hardware complexity burden on the main processing units.

Inventive Principle:
Principle #26Copying

2Productivity

If more cores are added to the chip, then performance growth is improved, but power consumption increases

Engineering Contradiction:
Improvechip performanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The scout core performs multiple functions: it monitors multiple parent cores, detects cache miss patterns, generates prefetch requests, and manages shared cache utilization. This multi-functional approach allows a single core to support multiple parent cores, improving overall chip performance without proportionally increasing power consumption.

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

Solution Approach 2:

The scout core performs preliminary actions by proactively monitoring parent core behavior and generating prefetch requests before the parent cores actually need the data. This preliminary prefetching reduces cache misses and improves performance without requiring the parent cores to consume additional power for complex memory management operations.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If dedicated hardware is used for monitoring cache misses, then detection precision is improved, but area and hardware resources increase

Engineering Contradiction:
Improvecache miss detectionVSAvoidhardware area
Core Design Contradiction:
Measurement precisionVSArea of stationary object

Solution Approach 1:

The scout core autonomously monitors parent cores and detects cache miss patterns without requiring dedicated hardware monitoring circuits. The scout core uses software or microcode-based monitoring that leverages existing core resources, achieving precise cache miss detection while minimizing additional hardware area requirements.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9116816B2Prefetching for a parent core in a multi-core chip
Publication Date: 2015.08.25 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9116816B2 patent drawing
  • US9116816B2 patent drawing
  • US9116816B2 patent drawing

AI summary

Embodiments of the invention relate to prefetching data on a chip having at least one scout core, at least one parent core, and a shared cache that is common between the at least one scout core and the at least one parent core. A prefetch code is executed by the scout core for monitoring the parent core. The prefetch code executes independently from the parent core. The scout core determines that at least one specified data pattern has occurred in the parent core based on monitoring the parent core. A prefetch request is sent from the scout core to the shared cache. The prefetch request is sent based on the at least one specified pattern being detected by the scout core. A data set indicated by the prefetch request is sent to the parent core by the shared cache.