Prefetch Circuitry with Address Translation Buffer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The prefetching process in data processing apparatuses can be too slow, causing data processing to slow down as predicted data may not be in the cache by the time it is required, leading to delays in retrieving data from main memory.

Innovation Solution

Implementing address translation circuitry with a buffer to store recent address translations and using prefetch circuitry to predict virtual memory addresses based on access patterns, allowing for pre-heating of address translation data by extrapolating patterns further into the future and providing predicted addresses to the address translation circuitry to reduce the need for time-consuming page walks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If prefetch circuitry waits for address translation data to be retrieved from main memory, then address translation accuracy is maintained, but prefetching speed deteriorates causing data processing to slow down

Engineering Contradiction:
Improveprefetching speedVSAvoiddata processing delay
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The address translation circuitry performs address translation in advance by receiving virtual addresses from the prediction scheme and generating corresponding physical addresses before the actual data prefetch is needed. This preliminary address translation eliminates the waiting time during the actual prefetch operation, resolving the contradiction between maintaining translation accuracy and improving prefetching speed

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The address translation process is segmented into separate stages: virtual address prediction, address translation, and data prefetching. By separating these functions, the system can prepare physical addresses in advance without blocking the subsequent data retrieval operations, thereby improving overall prefetching speed while maintaining translation accuracy

Inventive Principle:
Principle #1Segmentation

2Productivity

If address translation data is retrieved from main memory during prefetching, then translation accuracy is ensured, but the prefetching process becomes too slow and data processing must wait

Engineering Contradiction:
Improveoverall processing performanceVSAvoidprefetching speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The system performs address translation as a preliminary action before the actual data prefetch operation. The address translation circuitry receives virtual addresses from the prediction scheme and generates physical addresses in advance, so that when data prefetch is initiated, the translation is already complete. This eliminates the bottleneck where prefetching had to wait for memory retrieval of translation data

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The address translation circuitry acts as an intermediary component between the prediction scheme and the data prefetching mechanism. It receives virtual addresses from the predictor, translates them to physical addresses, and provides the translated addresses to the prefetch circuitry, enabling smooth coordination between prediction and execution without speed penalties

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11163691B2Apparatus and method for performing address translation using buffered address translation data
Publication Date: 2021.11.02 ARM LTD
  • US11163691B2 patent drawing
  • US11163691B2 patent drawing
  • US11163691B2 patent drawing

AI summary

Examples of the present disclosure relate to an apparatus comprising processing circuitry to perform data processing operations, storage circuitry to store data for access by the processing circuitry, address translation circuitry to maintain address translation data for translating virtual memory addresses into corresponding physical memory addresses, and prefetch circuitry. The prefetch circuitry is arranged to prefetch first data into the storage circuitry in anticipation of the first data being required for performing the data processing operations. The prefetching comprises, based on a prediction scheme, predicting a first virtual memory address associated with the first data, accessing the address translation circuitry to determine a first physical memory address corresponding to the first virtual memory address, and retrieving the first data based on the first physical memory address corresponding to the first virtual memory address. The prefetch circuitry is further arranged, based on the prediction scheme, to predict a second virtual memory address associated with second data in anticipation of the second data being prefetched, and to provide the predicted second virtual memory address to the address translation circuitry to enable the address translation circuitry to obtain the address translation data for the second virtual memory address.