Boot From Block Device Accelerator for Secure Multi-Core MCU Boot
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multi-core microcontroller units (MCUs) face increased boot sequence durations due to the need to transfer and authenticate entire boot images from external storage to internal memory, which can cause performance issues in time-sensitive applications and limit their implementation.
Innovation Solution
The implementation of a boot from block device accelerator (BBDAc) that performs on-the-fly incremental authentication and loading of boot images, allowing for secure boot loading while transferring portions of the boot image to internal memory based on requests from compute cores.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If entire boot images are transferred from external storage to internal memory, then secure boot authentication is ensured, but boot sequence duration increases
Solution Approach 1:
The boot image is divided into multiple slices that can be transferred and authenticated independently. The system transfers only the necessary slices to internal memory rather than the entire boot image, enabling parallel authentication operations and reducing boot sequence duration while maintaining security through incremental authentication of each slice.
Solution Approach 2:
The system performs authentication operations in parallel with the transfer process by pre-authenticating slices before they are fully transferred to internal memory. This preliminary authentication action allows the authentication operation to overlap with the transfer operation, significantly reducing the overall boot sequence duration while ensuring security.
2Adaptability or versatility
If multiple boot images are stored in integrated flash, then multi-core MCU boot requirements are met, but flash memory capacity requirements increase
Solution Approach 1:
The patent extracts the boot image storage function from the integrated flash memory and places it in external block storage devices. This allows multi-core MCUs to store multiple boot images externally, significantly reducing the flash memory capacity requirements while maintaining the ability to support multiple compute cores with separate boot images.
Solution Approach 2:
The system introduces an external block storage device as an intermediary between the MCU and the boot images. This intermediary storage solution enables the MCU to access multiple boot images without requiring them to be stored in the integrated flash, thereby reducing the flash capacity requirement while maintaining multi-core boot capability.
3Quantity of substance
If boot images are transferred from external storage, then flash memory capacity is reduced, but transfer time increases
Solution Approach 1:
The system implements continuous authentication operations during the transfer process, where authentication of boot image slices occurs concurrently with their transfer from external storage to internal memory. This continuous action eliminates idle waiting time and significantly reduces the overall transfer time while maintaining the benefit of reduced flash memory capacity requirements.
Solution Approach 2:
The system performs authentication operations in advance and in parallel with the transfer process, pre-authenticating slices before they are fully transferred. This preliminary action allows the authentication operation to overlap with the transfer operation, reducing the effective transfer time and making the external storage approach more efficient.
Data Source
AI summary
An example device includes a first interface configured to couple to a first memory that is configured to store an image that includes a set of slices; a second interface configured to couple to a second memory; and a direct memory access circuit coupled to the first and second interfaces. The direct memory access circuit receives a transaction that specifies a read of a slice of the set of slices; and based on the transaction, reads the slice from the first memory; performs operations to the slice; and stores the slice in the second memory.


