Parallel Processor Trusted Execution Environment Data Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional confidential computing systems are unable to protect data in use by parallel processing units (PPUs), such as graphics processing units (GPUs), which limits the performance advantages offered by hardware accelerators due to security requirements, and existing solutions fail to secure data and code during execution in multi-tenant environments.

Innovation Solution

Extending a trusted execution environment (TEE) of a central processing unit (CPU) to include a PPU, allowing an encrypted virtual machine (VM) to access the PPU while preventing unauthorized access, and creating a compute protected region (CPR) in PPU memory to secure data, with encryption and decryption mechanisms for secure communication and memory protection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional confidential computing is used to protect data in use by CPU, then data confidentiality is improved, but performance is worsened due to inability to use hardware accelerators

Engineering Contradiction:
Improvedata confidentialityVSAvoidcomputing performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the computing environment into trusted and untrusted zones by extending the TEE to include the PPU. Data and code are partitioned into protected regions within PPU memory that are accessible only to the trusted execution environment, while untrusted entities remain excluded. This segmentation allows performance-critical operations to run on the PPU without compromising security.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements nested protection by placing the PPU compute protected region within the broader CPU TEE. The encrypted VM running on the CPU TEE can securely access the PPU CPR, creating a nested secure environment. This allows hardware acceleration to be nested within the confidential computing boundary, maintaining both security and performance.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Productivity

If PPU is provided access to encrypted VM, then computing performance is improved, but security is worsened due to potential unauthorized access

Engineering Contradiction:
Improveaccelerated computingVSAvoidsecurity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces encrypted communication channels and secure memory interfaces as intermediaries between the encrypted VM and the PPU. Data transfers between the CPU and PPU are mediated through encryption/decryption operations and protected memory access paths. This intermediary layer allows the PPU to access encrypted data for processing while preventing unauthorized access to the actual data values.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If compute protected region is created in PPU memory, then data protection is improved, but device complexity is worsened

Engineering Contradiction:
Improvedata protectionVSAvoidmemory protection mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the PPU's memory management functions with the CPU TEE's security mechanisms. The PPU's address translation and memory access control are combined with the encrypted VM's security context to create a unified protection system. This merging allows the PPU to enforce memory protection without requiring completely separate security hardware, reducing overall complexity.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20230297696A1Confidential computing using parallel processors with code and data protection
Publication Date: 2023.09.21 NVIDIA CORP
  • US20230297696A1 patent drawing
  • US20230297696A1 patent drawing
  • US20230297696A1 patent drawing

AI summary

In examples, a parallel processing unit (PPU) operates within a trusted execution environment (TEE) implemented using a central processing unit (CPU). A virtual machine (VM) executing within the TEE is provided access to the PPU by a hypervisor. However, data of an application executed by the VM is inaccessible to the hypervisor and other untrusted entities outside of the TEE. To protect the data in transit, the VM and the PPU may encrypt or decrypt the data for secure communication between the devices. To protect the data within the PPU, a protected memory region may be created in PPU memory where compute engines of the PPU are prevented from writing outside of the protected memory region. A write protect memory region is generated where access to the PPU memory is blocked from other computing devices and/or device instances.