DRAM-Backed TLB Translation Buffer for Asynchronous Maintenance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory address translation systems face inefficiencies in handling large storage and asynchronous maintenance operations, particularly in multi-stage translations and cache management, which can lead to delays and resource bottlenecks.

Innovation Solution

The proposed solution involves a memory address translation apparatus with a page table access circuitry, a translation data buffer, and comparison circuitry to efficiently manage address translations, allowing for asynchronous maintenance operations and improved cache utilization by storing translations in a DRAM-backed TLB and using a fill queue to prioritize maintenance operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If a traditional TLB is used for address translation, then translation speed is improved, but the storage capacity is limited and cannot handle large address spaces

Engineering Contradiction:
Improvetranslation speedVSAvoidstorage capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent divides the translation buffer into multiple segments or levels. The first level uses a traditional TLB for fast translation of frequently accessed addresses, while the second level uses a larger, slower buffer (such as a page table walker or extended TLB) to store translations for less frequently accessed addresses. This segmentation allows the system to maintain high translation speed for common cases while expanding total storage capacity to handle large address spaces.

Inventive Principle:
Principle #1Segmentation

2Reliability

If synchronous maintenance operations are performed on the TLB, then data consistency is ensured, but system performance deteriorates due to stalls

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs maintenance operations (such as invalidation or updating of translation entries) in advance or asynchronously, rather than synchronously blocking translation operations. For example, when a page table entry is updated, the system can asynchronously update the corresponding TLB entries or mark them for invalidation, allowing translation operations to continue without stalls. This preliminary or asynchronous action maintains eventual data consistency while preserving system performance.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the TLB is fully utilized to store translations, then translation efficiency is improved, but cache memory availability is reduced

Engineering Contradiction:
Improvetranslation efficiencyVSAvoidcache memory availability
Core Design Contradiction:
ProductivityVSVolume of stationary object

Solution Approach 1:

The patent implements a multi-functional memory structure where the same physical memory resources serve multiple purposes. The translation buffer can dynamically allocate space for address translations while also allowing the same or adjacent memory regions to be used as cache for data or instructions when not needed for translations. This multi-functionality allows the system to maximize translation efficiency when needed while preserving cache availability for other operations, eliminating the need for dedicated separate memory spaces.

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

Data Source

PatentUS10853262B2Memory address translation using stored key entries
Publication Date: 2020.12.01 ARM LTD
  • US10853262B2 patent drawing
  • US10853262B2 patent drawing
  • US10853262B2 patent drawing

AI summary

Memory address translation apparatus comprises page table access circuitry to access a page table to retrieve translation data; a translation data buffer to store one or more instances of the translation data, comprising: an array of storage locations arranged in rows and columns; a row buffer comprising a plurality of entries and comparison circuitry responsive to a key value dependent upon at least the initial memory address, to compare the key value with information stored in each of at least one key entry and an associated value entry for storing at least a representation of a corresponding output memory address, and to identify which of the at least one key entry, if any, is a matching key entry storing information matching the key value; and output circuitry to output, when there is a matching key entry, at least the representation of the output memory address.