Memory Access Circuit With Prefetching for DSP Latency Hiding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern digital signal processors face challenges such as increasing workloads, memory system latency, and limited bandwidth, which are exacerbated by the complexity of systems on a chip and the in-order nature of central processing units, leading to subpar performance and scalability issues.

Innovation Solution

The integration of streaming engines with vector support, scoreboarded loads, speculative loads, and software-directed prefetch, along with a credit-based bidirectional bus protocol, enhances memory system efficiency and coherence, allowing for improved bus utilization and data transfer rates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the bus width and clock rate are increased to increase bandwidth, then the bandwidth is improved, but the latency increases and routing issues worsen

Engineering Contradiction:
ImprovebandwidthVSAvoidlatency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent implements a prefetching mechanism that retrieves data from memory before it is actually needed by the processor. The prefetcher monitors memory access patterns and initiates data transfer in advance, storing prefetched data in buffer memory. This preliminary action eliminates the need to wait for memory operations during normal processing, effectively hiding memory latency without requiring wider buses or higher clock rates.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If deeper buffering is implemented to hide latency, then the latency penalty is reduced, but the device complexity increases

Engineering Contradiction:
Improvelatency penaltyVSAvoidbuffering complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent implements a self-service buffering system where the buffer memory automatically manages its own content based on observed memory access patterns. The prefetcher monitors which memory addresses are being accessed and autonomously decides what data to prefetch and when, without requiring complex external control logic. This self-managing approach reduces the overall system complexity while still providing effective latency hiding through intelligent buffering.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If the CPU operates in-order to maintain simplicity, then the ease of operation is improved, but the ability to hide latency is reduced

Engineering Contradiction:
ImproveCPU simplicityVSAvoidcache penalty
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent introduces a prefetcher as an intermediary component between the in-order CPU and the memory system. This prefetcher acts as a mediator that proactively retrieves data and places it in buffer memory ahead of time, allowing the simple in-order CPU to access data without stalling. The intermediary handles the complexity of latency management separately from the CPU core, preserving CPU simplicity while effectively hiding memory latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20240411703A1Processor architecture with memory access circuit
Publication Date: 2024.12.12 TEXAS INSTRUMENTS INC
  • US20240411703A1 patent drawing
  • US20240411703A1 patent drawing
  • US20240411703A1 patent drawing

AI summary

Disclosed embodiments include an electronic device having a processor core, a memory, a register, and a data load unit to receive a plurality of data elements stored in the memory in response to an instruction. All of the data elements hare the same data size, which is specified by one or more coding bits. The data load unit includes an address generator to generate addresses corresponding to locations in the memory at which the data elements are located, and a formatting unit to format the data elements. The register is configured to store the formatted data elements, and the processor core is configured to receive the formatted data elements from the register.