Address Translation Cache Filter Circuitry for Splinter Condition Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing systems with address translation caches, handling page invalidate requests becomes inefficient due to the 'splinter condition' where the first stage page size exceeds the second stage page size, leading to uncertainty about where address translation data is stored, necessitating a full cache scan, which impacts performance.

Innovation Solution

An apparatus and method that includes filter circuitry to detect the splinter condition and guide maintenance circuitry to only check specific entries of the address translation cache for page invalidate requests, reducing the need for a full cache scan by using filter entries to identify which entries need to be checked based on the presence of the splinter condition.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the first stage page size exceeds the second stage page size (splinter condition), then address translation data can be obtained through multi-stage translation process, but it becomes impossible to ascertain where the relevant address translation data will have been stored within the address translation cache, requiring a full cache scan

Engineering Contradiction:
Improvemulti-stage translation process capabilityVSAvoidpage invalidate request handling performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the address translation cache into multiple sets, where each set corresponds to a specific page size. When a splinter condition is detected (first stage page size exceeds second stage page size), the maintenance circuitry uses the filter circuitry to identify which specific sets contain the relevant address translation data, rather than scanning the entire cache. This segmentation allows targeted invalidation of only the necessary sets, improving performance while maintaining multi-stage translation capability.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the entire address translation cache is scanned to determine entries that need to be invalidated, then all possible entries can be checked, but performance is significantly impacted

Engineering Contradiction:
Improvecompleteness of cache invalidationVSAvoidtime to process page invalidate request
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary action by detecting the splinter condition at the time of address translation data allocation and recording this information in the filter circuitry. When a page invalidate request arrives, the maintenance circuitry can immediately consult the filter circuitry to identify which sets need checking, rather than scanning the entire cache. This preliminary recording of splinter condition information enables fast, targeted invalidation while ensuring all relevant entries are checked.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If address translation data is allocated based on the smaller of the two page sizes, then cache organization is simplified, but the splinter condition creates uncertainty about data location

Engineering Contradiction:
Improvecache allocation simplicityVSAvoiddata location identification
Core Design Contradiction:
Device complexityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces the filter circuitry as an intermediary between the allocation circuitry and the maintenance circuitry. The filter circuitry records information about splinter conditions and page size mappings. When address translation data is allocated based on the smaller page size, the filter circuitry stores metadata indicating whether a splinter condition exists. The maintenance circuitry then uses this intermediary information to correctly identify which cache sets contain the relevant data, resolving the location uncertainty without changing the simple allocation scheme.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10649907B2Apparatus and method for handling page invalidate requests in an address translation cache
Publication Date: 2020.05.12 ARM LTD
  • US10649907B2 patent drawing
  • US10649907B2 patent drawing
  • US10649907B2 patent drawing

AI summary

An apparatus is provided having processing circuitry for executing multiple items of supervised software under the control of a supervising element, and a set associative address translation cache having a plurality of entries, where each entry stores address translation data used when converting a virtual address into a corresponding physical address of a memory system comprising multiple pages. The address translation data is obtained by a multi-stage address translation process comprising a first stage translation process managed by an item of supervised software and a second stage translation process managed by the supervising element. Allocation circuitry is responsive to receipt of obtained address translation data for a specified virtual address, to allocate the obtained address translation data into an entry of a selected set of the address translation cache, where the selected set is identified using a subset of bits of the specified virtual address chosen in dependence on a final page size associated with the obtained address translation data. Filter circuitry is provided having a plurality of filter entries, and is responsive to detecting that a splinter condition exists for the obtained address translation data, to indicate in a chosen filter entry that the splinter condition has been detected for the specified item of supervised software that is associated with the obtained address translation data. The splinter condition exists when a first stage page size used in the multi-stage translation process exceeds the final page size. Maintenance circuitry is then responsive to a page invalidate request associated with an item of supervised software, to reference the filter circuitry to determine which entries of the address translation cache need to be checked in order to process the page invalidate request, in dependence on whether a filter entry of the filter circuitry indicates presence of the splinter condition for that item of supervised software.