DSP Prefetch Buffer with Alias Cache for Deterministic Loop Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional direct-mapped cache prefetch buffers in digital signal processors face issues such as cacheline aliasing leading to starvation, non-deterministic execution times due to alignment changes, and inefficiency when loop sizes exceed the buffer size, resulting in power wastage and performance delays.

Innovation Solution

A prefetch buffer system comprising a direct-mapped cache main buffer, an alias buffer, a prefetch controller, a lock register, and a protect register, which manages cacheline storage and protection to prevent aliasing, ensure zero-overhead execution, and maintain deterministic performance by using multiplexers to select cachelines and generate control signals, allowing for efficient handling of loops of varying sizes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If the prefetch buffer is implemented as a direct-mapped cache to reduce power consumption, then energy efficiency is improved, but cacheline aliasing occurs leading to starvation and non-deterministic execution

Engineering Contradiction:
Improvepower consumptionVSAvoidexecution determinism
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The prefetch buffer is segmented into two distinct parts: a main buffer embodied as a direct-mapped cache for storing cachelines, and an alias buffer for storing potentially aliasing cachelines. This segmentation allows the system to maintain the power efficiency of a direct-mapped cache while eliminating aliasing-related starvation and non-deterministic execution by redirecting aliasing cachelines to the alias buffer.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The alias buffer acts as an intermediary structure between the direct-mapped cache and the instruction fetch interface. It intercepts and stores cachelines that would otherwise cause aliasing conflicts in the main buffer, thereby preventing starvation and ensuring deterministic execution without sacrificing the power efficiency benefits of the direct-mapped cache architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the prefetch buffer size is increased to accommodate larger loop bodies, then loop execution capability is improved, but cacheline thrashing occurs wasting power

Engineering Contradiction:
Improveloop body size accommodationVSAvoidpower waste from thrashing
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

By segmenting the prefetch buffer into a main buffer and an alias buffer, the system can accommodate larger loop bodies without causing thrashing in the main buffer. The alias buffer captures and holds cachelines that would otherwise be repeatedly evicted and re-fetched from the main buffer, thereby reducing thrashing and power waste while enabling support for larger loop bodies.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically changes the effective capacity and behavior parameters of the prefetch buffer by introducing the alias buffer. This allows the buffer system to adapt to larger loop bodies while maintaining optimal cache utilization and avoiding the thrashing that would occur in a simple enlarged direct-mapped cache.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If the prefetch buffer is sized to accommodate small loops only, then cacheline aliasing is avoided, but the buffer cannot handle larger loop bodies efficiently

Engineering Contradiction:
Improvealiasing avoidanceVSAvoidloop body size handling
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The prefetch buffer is divided into a main buffer and an alias buffer, where the main buffer maintains the small size needed to avoid aliasing conflicts, while the alias buffer provides additional capacity for handling larger loop bodies. This segmentation allows the system to preserve aliasing avoidance properties while gaining the ability to efficiently handle larger loops.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The solution adds a new dimension to the prefetch buffer architecture by introducing the alias buffer as a separate storage space. This dimensional expansion allows the system to handle larger loop bodies without compromising the aliasing avoidance properties of the main buffer, effectively decoupling the constraints of small-loop optimization from the requirements of large-loop support.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS9348590B1Digital signal processor prefetch buffer and method
Publication Date: 2016.05.24 VERISILICON HLDGCO LTD
  • US9348590B1 patent drawing
  • US9348590B1 patent drawing
  • US9348590B1 patent drawing

AI summary

A prefetch buffer and prefetch method. In one embodiment, the prefetch buffer has a main buffer embodied as a direct-mapped cache, and the prefetch buffer includes: (1) an alias buffer associated with the main buffer and (2) a prefetch controller associated with the main buffer and the alias buffer and operable to cause the alias buffer to store potentially aliasing cachelines of a loop body instead of the main buffer.