Switching Apparatus for Shared I/O Link Initialization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computer architectures require a one-to-one correspondence between processing complexes, I/O interfaces, and I/O devices, making upgrades difficult and costly, especially in environments where increased I/O demands emerge, such as the need for faster network architectures.
Innovation Solution
A switching apparatus and method that separates processing complexes from I/O controllers/devices, allowing multiple processing complexes to share I/O resources through a common load-store fabric, with link training logic to initialize links transparently to operating systems, enabling shared I/O endpoints and controllers to be utilized without modifying existing hardware or software.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a one-to-one correspondence between processing complexes and I/O devices is maintained, then system simplicity and reliability are preserved, but adaptability and upgradeability deteriorate
Solution Approach 1:
The system segments the traditional one-to-one mapping into a many-to-one relationship where multiple processing complexes are decoupled from individual I/O devices. The load-store fabric acts as an intermediary layer that separates processing complexes from I/O controllers, allowing independent scaling and upgrading of each component without affecting the others.
Solution Approach 2:
The load-store fabric provides a universal interface that can accommodate multiple types of processing complexes and I/O devices simultaneously. This universal bus structure allows different I/O devices to be shared across multiple processing complexes, enabling the system to adapt to various I/O demands without requiring dedicated controllers for each processing complex.
2Reliability
If dedicated I/O controllers are provided for each processing complex, then reliability and performance are improved, but cost and device complexity increase
Solution Approach 1:
Multiple processing complexes are merged into a shared I/O environment through the load-store fabric, allowing them to access common I/O controllers and devices. This consolidation reduces the total number of I/O controllers required while maintaining reliable access for each processing complex through the standardized load-store interface.
Solution Approach 2:
The load-store fabric serves as an intermediary layer between processing complexes and I/O controllers, managing access and data transfer without requiring dedicated controllers for each processing complex. This mediator ensures reliable I/O operations while reducing the overall quantity of I/O controllers needed in the system.
3Reliability
If link initialization is performed for each operating system domain separately, then protocol compliance is ensured, but initialization time and complexity increase
Solution Approach 1:
The link training logic performs preliminary initialization of the link between the shared I/O controller and the load-store fabric before operating system domains are established. By pre-configuring the physical link and basic protocol parameters, the system reduces the initialization overhead when multiple operating system domains need to access the shared I/O resources.
Data Source
AI summary
An apparatus has a first plurality of I/O ports, a second I/O port, and link training logic. The first plurality is coupled to a plurality of operating system domains through a load-store fabric. Each of the first plurality is configured to route transactions between the plurality of operating system domains and the switching apparatus. The second I/O port is coupled to a first shared input/output endpoint. The first shared input/output endpoint is configured to request/complete the transactions for each of the plurality of operating system domains. The link training logic is coupled to the second I/O port. The link training logic initializes a link between the second I/O port and the first shared input/output endpoint to support the transactions corresponding to the each of the plurality of operating system domains. The link is initialized in a manner that is transparent to the plurality of operating system domains.


