Front End Core TLB for Shared Virtual Memory Page Fault Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor designs using shared virtual memory between the CPU and GPU suffer from inefficiencies in page fault handling, resulting in slower performance due to driver-based mechanisms that involve significant CPU overhead and treat page faults differently from regular exceptions.

Innovation Solution

Implementing a lightweight front end core that acts as a memory management unit for accelerators, utilizing a translation lookaside buffer (TLB) and page walker module to handle page faults natively, and incorporating a TLB shootdown handler to manage access permissions, thereby reducing CPU overhead and leveraging native OS virtual memory support.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If driver-based page fault handling mechanisms are used for GPU memory management, then memory management functionality is provided, but CPU overhead increases significantly and performance decreases

Engineering Contradiction:
Improvepage fault handling performanceVSAvoidCPU overhead time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

A front end core is introduced as an intermediary component between the GPU and the CPU. This front end core includes a translation lookaside buffer (TLB) and page walker module that handle page fault management locally, acting as a mediator that prevents direct CPU involvement in routine page fault operations while maintaining proper memory management functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The GPU system is enhanced with self-service capabilities through the front end core, which autonomously handles page fault detection, TLB management, and page walker operations. This allows the system to manage its own memory access faults without requiring continuous CPU intervention, thereby reducing CPU overhead and improving handling performance.

Inventive Principle:
Principle #25Self-service

2Productivity

If native OS virtual memory support is implemented through front end core, then CPU overhead is reduced, but device complexity increases

Engineering Contradiction:
Improvememory management efficiencyVSAvoidaccelerator structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory management functionality is segmented into distinct modular components: a front end core, translation lookaside buffer (TLB), and page walker module. This segmentation allows each component to perform its specific function independently, making the overall complex system more manageable and maintainable while enabling efficient native OS virtual memory support.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP3373105B1Apparatus and method for accelerating operations in a processor which uses shared virtual memory
Publication Date: 2020.03.18 INTEL CORP
  • EP3373105B1 patent drawingFigure 1A~1B
  • EP3373105B1 patent drawingFigure 2
  • EP3373105B1 patent drawingFigure 3

AI summary

An apparatus and method are described for coupling a front end core to an accelerator component (e.g., such as a graphics accelerator). For example, an apparatus is described comprising: an accelerator comprising one or more execution units (EUs) to execute a specified set of instructions; and a front end core comprising a translation lookaside buffer (TLB) communicatively coupled to the accelerator and providing memory access services to the accelerator, the memory access services including performing TLB lookup operations to map virtual to physical addresses on behalf of the accelerator and in response to the accelerator requiring access to a system memory.