Memory Controller Non-Sequential Prefetching Reduces CPU Idle Time

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-speed CPUs experience significant idle time due to data starvation, with existing solutions like increasing cache size, memory speed, and bandwidth being costly and inefficient, and prior art solutions such as Northbridge caches being ineffective due to uncoordinated access leading to bandwidth contention.

Innovation Solution

A memory controller that non-sequentially prefetches data by storing address pairs in a table data structure, prioritizing them based on frequency of use, and transferring cache lines from a prefetch cache to reduce latency, thereby alleviating CPU idle time without increasing costs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If cache size is increased to reduce CPU idle time, then data availability improves, but CPU cost increases significantly

Engineering Contradiction:
ImproveCPU idle timeVSAvoidCPU cost
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The invention segments the cache system into two distinct parts: the traditional CPU caches (L1/L2) and a separate prefetch cache in the memory controller. This segmentation allows the prefetch cache to handle predictive data fetching independently, reducing the burden on CPU caches and decreasing CPU idle time without requiring a proportional increase in CPU cache size or cost.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The prefetch cache acts as an intermediary between system memory and the CPU caches. It predictively fetches data blocks based on observed access patterns and stores them in advance, mediating the data flow so that the CPU receives data more quickly without the CPU itself needing larger or more expensive cache structures.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If system memory speed is increased to reduce CPU idle time, then data access speed improves, but system cost increases

Engineering Contradiction:
ImproveCPU idle timeVSAvoidsystem cost
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The prefetch cache performs preliminary data fetching actions by predictively loading data blocks into the cache before the CPU actually needs them. By analyzing access patterns and pre-fetching data in advance, the system reduces CPU idle time without requiring the system memory itself to be faster or more expensive.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If memory bandwidth is increased to reduce CPU idle time, then data transfer capacity improves, but architecture complexity and cost increase

Engineering Contradiction:
ImproveCPU idle timeVSAvoidmemory bus architecture
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The prefetch cache implements self-service by autonomously monitoring CPU access patterns and automatically fetching data without requiring increased memory bandwidth or complex bus architecture. The system serves itself by using simple access pattern detection to trigger prefetch operations, reducing CPU idle time through intelligent data loading rather than brute-force bandwidth increases.

Inventive Principle:
Principle #25Self-service

4Loss of time

If Northbridge cache is added to reduce CPU idle time, then data staging capacity improves, but bandwidth contention increases due to uncoordinated access

Engineering Contradiction:
ImproveCPU idle timeVSAvoidbandwidth contention
Core Design Contradiction:
Loss of timeVSObject-generated harmful factors

Solution Approach 1:

The prefetch cache in the memory controller serves multiple functions simultaneously: it acts as a data staging area like the Northbridge cache, performs intelligent prefetching based on access patterns, and coordinates with both CPU caches and system memory. This multi-functionality reduces CPU idle time while avoiding bandwidth contention through coordinated access management.

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

Solution Approach 2:

The prefetch cache implements feedback mechanisms by monitoring CPU access patterns and using this information to make intelligent prefetching decisions. By observing which data blocks are accessed and when, the system adjusts its prefetching behavior to reduce bandwidth contention while maintaining high data availability, eliminating the uncoordinated access problems of prior Northbridge cache designs.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8356142B1Memory controller for non-sequentially prefetching data for a processor of a computer system
Publication Date: 2013.01.15 NVIDIA CORP
  • US8356142B1 patent drawing
  • US8356142B1 patent drawing
  • US8356142B1 patent drawing

AI summary

A memory controller for non-sequentially prefetching data for a processor of a computer system. The memory controller performs a method including the step of storing a plurality of address pairs in a table data structure, wherein the address pairs include a first address and a second address. The first address and the second address are non-sequential as fetched by a processor of a computer system. The address pairs are prioritized in accordance with a frequency of use for each of the address pairs. A system memory of the computer system is accessed and a plurality of cache lines corresponding to the address pairs are stored in a prefetch cache. Upon a cache hit during a subsequent access by the processor, data is transferred from the cache lines stored in the prefetch cache to the processor.