Multi-Core Page Table Isolation for Meltdown Mitigation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The Meltdown hardware security vulnerability allows unprivileged processes to read inaccessible kernel memory by exploiting speculative execution, posing a significant risk to microprocessors from Intel, IBM, and ARM, with current fixes like page table isolation (PTI) causing substantial performance overhead, especially in embedded and real-time systems.

Innovation Solution

Implementing a multi-core processing unit with separate translation lookaside buffers (TLBs) and process page tables for each core, enabling page table isolation only on the application core while maintaining full kernel access on the OS core, thereby mitigating speculative access without the need for frequent TLB flushes and updates during context switching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If page table isolation (PTI) is implemented to secure processes from speculative rogue cache loads, then security against Meltdown attacks is improved, but system performance deteriorates due to frequent TLB flushes and context switching overhead

Engineering Contradiction:
ImprovesecurityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system is divided into two separate processing cores: an application core that runs user processes with PTI enabled, and an OS core that runs the operating system kernel with full kernel address space access. This segmentation allows security and performance requirements to be satisfied in different parts of the system simultaneously, eliminating the need for frequent context switching and TLB flushes that plague single-core PTI implementations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a thin kernel layer that runs on the application core alongside user processes. This thin kernel acts as an intermediary that handles essential system calls with PTI enabled, while more complex operations are offloaded to the OS core. This intermediary approach maintains security boundaries while reducing the performance overhead of full PTI implementation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If page table isolation is implemented to isolate kernel address space from user processes, then security is improved, but device complexity increases due to multiple page table sets and context switching mechanisms

Engineering Contradiction:
ImprovesecurityVSAvoidpage table management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system separates kernel and user address space management across different cores. The OS core maintains full kernel page tables without isolation, while the application core uses isolated page tables for user processes. This segmentation simplifies page table management within each core compared to a single-core system that must dynamically switch between isolated and non-isolated page table configurations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges the application core and OS core into a single multi-core processing unit that shares physical memory and other hardware resources. This merging allows the system to benefit from parallel processing while maintaining separate address space isolation, reducing the overall complexity compared to using multiple separate systems or complex single-core context switching mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10713353B2Separate cores to secure processes from speculative rogue cache loads
Publication Date: 2020.07.14 VMWARE INC
  • US10713353B2 patent drawing
  • US10713353B2 patent drawing
  • US10713353B2 patent drawing

AI summary

The present disclosure addresses the meltdown vulnerability resulting from speculative execution in a multi-core processing system. The operating system (OS) can be loaded for execution on one of several processing cores (OS core), while an application can be loaded for execution on another of the processing cores (application core). The OS core uses process page tables that map the entire kernel address space to physical memory. Conversely, the application core uses pages tables that map only a portion of the kernel address space to physical memory.