Hardware Autoloader for Secure Multi-Processor Booting
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
3Reliability
If the system performs security validation of all executable instructions, then security is improved, but the boot time and initialization overhead increase
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.
Data Source
Figure 1
Figure 2
Figure 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.