BIOS-BMC Communication Control via Request Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing communication paths between a BIOS and a BMC in high-end servers are limited, leading to situations where multiple communication requests cannot be processed simultaneously, potentially causing OS tasks to be delayed or the system to shut down due to prolonged communication times with the BMC.
Innovation Solution
A communication control method that divides communication requests into two processes: a first process to store the request and restart the OS without immediate communication, and a second process to perform the actual communication with the BMC, utilizing a communication queue and regular interrupts to manage these requests efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the BIOS uses exclusive control with semaphore to manage communication paths, then communication order is maintained, but the OS operation is blocked and system productivity decreases
Solution Approach 1:
The communication request processing is segmented into two independent processes: a first process that stores communication requests in a queue and allows the OS to restart, and a second process that actually performs the communication with the BMC. This segmentation eliminates the blocking effect while maintaining communication control reliability.
Solution Approach 2:
The first process performs preliminary action by storing communication requests in advance before the actual communication occurs. This allows the OS to restart and continue operations while the communication is prepared and executed in the background by the second process.
2Reliability
If the BIOS waits for BMC communication to complete before restarting OS process, then communication is completed, but communication time increases and OS response is delayed
Solution Approach 1:
The communication processing is divided into two separate processes that can run independently. The first process handles request storage and OS restart without waiting for communication completion, while the second process handles the actual communication asynchronously, thereby reducing communication time and preventing OS delays.
Solution Approach 2:
The useful action of OS operation continues uninterrupted while the communication process runs in the background. The first process stores the request and restarts the OS immediately, maintaining continuous productive operation, while the second process completes the communication without blocking the OS.
3Reliability
If multiple communication requests are processed sequentially through a single path, then hardware limitations are respected, but communication throughput decreases
Solution Approach 1:
The system dynamically manages communication requests by implementing a queue-based first process that can accept and store multiple requests simultaneously, then processes them through the second process. This dynamic approach respects hardware limitations while improving throughput by allowing parallel request acceptance and background processing.
Solution Approach 2:
Multiple communication requests are stored in advance in the queue managed by the first process before actual communication occurs. This preliminary storage action allows the system to respect hardware path limitations while maintaining high throughput by preparing multiple requests for efficient sequential or parallel execution.
Data Source
AI summary
A communication control device controls communication between a BIOS (Basic Input/Output System) and a BMC (Baseboard Management Controller). The device includes a processor that performs a process of an OS (Operating System) and a process of the BIOS. When a communication request for communication with the BMC occurs from the BIOS or OS, the processor performs a process associated with the communication request by dividing it into a first process and a second process. The first process is configured to store contents of the communication request and make the OS restart a process without performing the communication between the BIOS and the BMC in response to the communication request. The second process is configured to actually perform the communication between the BIOS and the BMC in response to the stored communication request.


