PCIe Endpoint Boot From Root Complex Memory With Minimal Local RAM
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing method of transferring boot software from a root complex to a PCIe endpoint's volatile memory for execution results in increased complexity and cost due to the need for large memory storage and centralized management by the root complex.
Innovation Solution
The boot process is divided into two stages, where configuration software is executed locally to define an endpoint configuration block, and boot software is fetched in portions from the root complex memory via PCIe bus, reducing the need for large local memory and enabling centralized management by the root complex.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If boot software is transferred to PCIe endpoint's volatile memory for execution, then the endpoint can execute boot software independently, but memory requirements and system complexity increase
Solution Approach 1:
The patent segments the boot process into two distinct stages: configuration stage (executing configuration software stored locally in non-volatile memory) and boot stage (fetching and executing boot software from root complex memory). This segmentation allows the endpoint to have minimal local memory while still achieving independent execution capability, resolving the contradiction between reliability and complexity.
2Speed
If boot software is stored in PCIe endpoint's volatile memory, then execution speed improves, but memory cost and size requirements increase
Solution Approach 1:
The patent applies preliminary action by having the root complex prepare and stage the boot software in its own memory before the endpoint needs to execute it. The endpoint configuration block is pre-configured with the memory address where boot software will be located, allowing the endpoint to directly fetch and execute boot software from root complex memory without requiring large local volatile memory, thus achieving fast execution with minimal memory requirements.
3Ease of operation
If boot software is managed centrally by root complex, then management simplicity improves, but transfer and access complexity increases
Solution Approach 1:
The patent introduces the endpoint configuration block (ECB) as an intermediary structure that bridges the root complex and endpoint. The ECB contains critical information including the memory address of boot software, allowing the root complex to manage boot software centrally while providing the endpoint with direct access information. This intermediary approach simplifies management while avoiding complex transfer protocols by using standard PCIe memory access operations.
Data Source
AI summary
Boot of a PCIe EP coupled to a RC by a PCIe bus comprises setting, by the PCIe EP, a program counter of a CPU of the PCIe EP to an address indicative of an address of memory of the RC which stores the boot software to execute. A memory transaction to read, by the PCIe EP via the PCIe bus, a portion of the boot software stored in the address of the memory of the RC which store the boot software is performed followed by receiving by the CPU the portion which is read from the memory of the RC via the PCIe bus and PCIe controller of the EP. The portion is stored by the CPU in an instruction cache of the CPU and the CPU of the PCIe EP executes an instruction of the portion of the boot software that is received.


