Hardware Autoloader for Secure Multi-Processor Booting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge in loading executable instructions into a multi-processor integrated circuit is to prevent untrusted instructions and data from being loaded into each processor, which could compromise the security of genuine application data.

Innovation Solution

A hardware module, referred to as an autoloader, is used to distribute a trusted secondary bootloader to each processor, ensuring that only trusted application instructions are loaded by securely issuing read requests to external memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a multi-processor system loads executable instructions from external memory, then the system can execute applications, but untrusted instructions and data may be loaded compromising security

Engineering Contradiction:
ImprovesecurityVSAvoidmalicious code loading
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces an intermediary component (secure boot device or trusted execution environment) that acts as a mediator between the external memory and the processors. This intermediary validates the executable instructions before they are loaded into processors, ensuring that only trusted code is executed while preventing malicious code from compromising the system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary validation of executable instructions during the boot process before the processors execute them. The secure boot device validates the integrity and authenticity of the operating system kernel and other critical software components in advance, ensuring that only verified trusted code is loaded into the processors' memory spaces.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If multiple processors share a common memory space for loading instructions, then the loading process is simplified, but the risk of cross-contamination between processors increases

Engineering Contradiction:
Improveinstruction loadingVSAvoidprocessor isolation
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent segments the memory space into processor-specific regions, with each processor having its own dedicated memory space for storing executable instructions. This segmentation is enforced through memory management mechanisms that prevent processors from accessing or executing code in other processors' memory spaces, thereby maintaining isolation while allowing simplified loading procedures within each processor's designated space.

Inventive Principle:
Principle #1Segmentation

3Reliability

If the system performs security validation of all executable instructions, then security is improved, but the boot time and initialization overhead increase

Engineering Contradiction:
Improvesecurity validationVSAvoidboot time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs security validation of executable instructions during the boot process before normal operation begins. The secure boot device validates the operating system kernel and critical system software during system initialization, so that by the time the processors start executing applications, the security validation is already complete. This preliminary action ensures security without adding overhead during normal operation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4118549B1Hardware autoloader
Publication Date: 2025.10.08 GRAPHCORE LTD
  • EP4118549B1 patent drawingFigure 1
  • EP4118549B1 patent drawingFigure 2
  • EP4118549B1 patent drawingFigure 3

AI summary

A new apparatus and method for securely distributing an application to processors of a processing unit. The processing unit is formed as part of an integrated circuit and comprises a plurality of processors (referred to as tiles), each having their own execution unit and storage for storing application data and additional executable instructions. The integrated circuit comprises a hardware module (referred to herein as the autoloader) that is configured to distribute a set of bootloader instructions (referred to herein as a secondary bootloader) to each of at least some of the tiles. Each of the tiles then executes instructions of the received secondary bootloader, which causes each tile to issue read requests to read a set of executable application instructions from a memory external to the integrated circuit. Each tile then performs operations using the received set of executable application instructions so as execute the application using the processing unit.