BIOS Boot Latency via Security Co-Processor Driver
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The latency associated with booting a computing device due to waiting for responses from security co-processors, such as TPMs, is significant and contradicts standards requiring quick boot times and minimal downtime.
Innovation Solution
A computing device architecture that allows the BIOS to continue initializing other components while waiting for responses from the security co-processor by using a security co-processor driver module to manage communication and a timer module to establish periodic interrupts, enabling the system to check for response readiness and proceed with other initialization tasks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the BIOS waits for responses from the security co-processor before continuing initialization, then security co-processor commands are executed correctly, but boot time increases significantly
Solution Approach 1:
The BIOS submits security co-processor commands to a command list in advance and continues initialization without waiting for responses. The responses are retrieved later through periodic interrupts, allowing the BIOS to perform preliminary actions (submitting commands) without blocking subsequent operations.
Solution Approach 2:
A command list structure serves as an intermediary between the BIOS and security co-processor. The BIOS interacts with the command list rather than directly waiting for the co-processor, allowing asynchronous operation where commands are queued and responses are collected at convenient intervals.
2Loss of time
If the BIOS continuously polls the security co-processor for responses, then response availability is quickly detected, but system performance decreases due to frequent interruptions
Solution Approach 1:
Instead of continuous polling, the system uses periodic interrupts at defined intervals to check for security co-processor responses. This periodic approach balances timely response detection with reduced system overhead, allowing initialization to proceed efficiently without constant interruptions.
Data Source
Figure 1~2
Figure 3
Figure 4
AI summary
Technologies for improving platform initialization on a computing device include beginning initialization of a platform of the computing device using a basic input/output system (BIOS) of the computing device. A security co-processor driver module adds a security co-processor command to a command list when a security processor command is received from the BIOS module. The computing device establishes a periodic interrupt of the initialization of the platform to query the security co-processor regarding the availability of a response to a previously submitted security co-processor command, forward any responses received by the security co-processor driver module to the BIOS module, and submit the next security co-processor command in the command list to the security co-processor.