Unified Hypervisor Boot Image for Multi-ISA Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current hypervisor boot images are architecture-specific, requiring separate images for different processor instruction set architectures (ISAs) and exception levels, leading to integration and maintenance challenges, especially with extensions like ARMv8.1-VHE and varying exception levels in ARM platforms.

Innovation Solution

A 'compound' boot image is created with multiple bootbanks for each supported architecture, allowing a first stage bootloader to identify and select the appropriate second stage bootloader and bootbank based on the system's architecture, enabling booting across different ISAs and exception levels from a single image.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate hypervisor images are used for different architectures (x86_64, arm64) and exception levels (EL1, EL2), then the correct image can be selected for each specific machine, but the system complexity increases and manual selection becomes necessary

Engineering Contradiction:
Improvecorrect image selectionVSAvoidmultiple image management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a universal boot image that contains multiple bootbanks, each tailored for different architectures (x86_64, arm64) and exception levels (EL1, EL2). The first stage bootloader automatically detects the system architecture and selects the appropriate bootbank, eliminating the need for separate images while maintaining architecture-specific correctness. This multi-functional approach allows a single image to serve multiple purposes across different hardware platforms.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The boot image incorporates a first stage bootloader that performs self-detection of the system architecture and automatically selects the correct bootbank without requiring manual administrator intervention. The bootloader reads system registers and configuration data to identify the architecture type and exception level, then autonomously loads the appropriate second stage bootloader from the correct bootbank, making the system self-configuring.

Inventive Principle:
Principle #25Self-service

2Reliability

If architecture-specific images are used, then each image can be optimized for its target architecture, but integration and maintenance challenges increase

Engineering Contradiction:
Improvearchitecture-specific optimizationVSAvoidimage integration and maintenance
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent segments the boot image into multiple bootbanks, where each bootbank contains architecture-specific and exception level-specific second stage bootloaders. This segmentation allows each bootbank to be optimized for its specific target (x86_64 with EL2, arm64 with EL1, etc.) while being organized within a single unified image structure. The first stage bootloader manages the segmentation by selecting the appropriate bootbank based on detected system characteristics.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges multiple architecture-specific images into a single unified boot image that contains all necessary bootbanks for different architectures (x86_64, arm64) and exception levels (EL1, EL2). This combining approach maintains the optimizations of architecture-specific images while eliminating the need for separate image files, simplifying distribution and maintenance. The unified image structure allows all architecture variants to coexist in one package.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If manual image selection is required for different architectures and exception levels, then the correct image can be chosen, but the booting time and bandwidth requirements increase

Engineering Contradiction:
Improvecorrect image selectionVSAvoidbooting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent prepares all possible architecture-specific and exception level-specific bootbanks in advance within the single boot image during image creation. The first stage bootloader performs preliminary detection of the system architecture and exception level support before attempting to load the second stage bootloader. This preliminary action eliminates the need for trial-and-error loading or manual selection, allowing the system to directly load the correct bootbank from the start, reducing boot time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11113071B1Unified hypervisor image for multiple processor ISAs
Publication Date: 2021.09.07 VMWARE INC
  • US11113071B1 patent drawing
  • US11113071B1 patent drawing
  • US11113071B1 patent drawing

AI summary

A method for booting a computer system includes: loading a first stage bootloader of a plurality of first stage bootloaders from a boot image based on a known configuration of the computer system; executing the first stage bootloader to identify a selected bootbank of a plurality of bootbanks in the boot image based on the known configuration of the computer system; executing, by the first stage bootloader, a second stage bootloader from the boot image with an instruction to boot from the selected bootbank; and executing, by the second stage bootloader, a binary file in the selected bootbank.