Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info. |
Difference between revisions of "XIO"
Line 11: | Line 11: | ||
Other devices known to have XIO interfaces are: | Other devices known to have XIO interfaces are: | ||
− | * BRIDGE: XIO to PCI-64 bridge ([[Octane]], [[Origin]]) | + | * BRIDGE: XIO to PCI-64 bridge ([[SGI Octane]], [[Origin]]) |
* XBRIDGE: XIO to PCI-X bridge ([[Altix]]) | * XBRIDGE: XIO to PCI-X bridge ([[Altix]]) | ||
− | * HQ4: command processor of ImpactSR cards ([[Octane]]) | + | * HQ4: command processor of ImpactSR cards ([[SGI Octane]]) |
* KTOWN: frontend for InfiniteReality2 cards ([[Onyx]], [[Origin]] variation) | * KTOWN: frontend for InfiniteReality2 cards ([[Onyx]], [[Origin]] variation) | ||
* XC: Crosstown converter | * XC: Crosstown converter |
Revision as of 01:08, 17 September 2018
What is XIO?
XIO is a high-speed communications channel, used for most newer SGI systems (IP27, IP30, IP35 - note the SGI O2 is NOT a XIO system). It's typically used in a switched star topology, the switch being called XBow.
XIO devices are called widgets.
XIO is a packet-based, high-performance computer bus employed by SGI Octane, Origin, Altix, Fuel and Tezro machines. It forms a bus between high-performance system devices and the memory controller. XIO devices are called "widgets".
XIO is usually used in a star topology -- a router called Xbow (cross-bow) connects up to eight fully-symmetrical devices in a system (typically, one of them is the memory controller / CPU bridge, called HEART in SGI Octane or HUB in Origin).
Other devices known to have XIO interfaces are:
- BRIDGE: XIO to PCI-64 bridge (SGI Octane, Origin)
- XBRIDGE: XIO to PCI-X bridge (Altix)
- HQ4: command processor of ImpactSR cards (SGI Octane)
- KTOWN: frontend for InfiniteReality2 cards (Onyx, Origin variation)
- XC: Crosstown converter
XIO employs two source-synchronous channels (one in each direction), each 8 or 16 bits wide. They are clocked at 400 MHz to achieve peak rates of 800 MB/s. Each of the devices can utilize the full bandwidth, as the XBow router prevents collisions by being able to route between any two points.
Transfer is organized into micropackets. These contain a total of 128 bits of data and 32 bits of control. The control information encapsulates an 8 bit sideband (used by higher layers for framing), sequence numbers (for go-back-n link-layer retransmissions) and check bits (CRC-16). The link layer is able to run both on 8- and 16-bit links, and if a upper half of a 16-bit link is non-functional, it will automatically revert to using the 8 lower bits.
XIO is usually used on a single-ended, source-synchronous physical layer (STL levels - SGI Transistor Logic). There is also a version called Crosstown, which uses normal cabling and differential Positive Referenced Emitter Coupled Logic (PECL) transmission.
XIO boards use very fragile compression connectors, which should be handled with extreme care.
Physical layer
XIO is usually used on a single-ended, source-synchronous physical layer (STL levels - SGI Transistor Logic). It's either an 8- or 16-bit channel, running at 400 MHz (using the dreaded compression connectors). There is also a version, called Crosstown, that uses normal cabling and differential PECL transmission.
Link layer
XIO contains a link-layer protocol (LLP) shared with CrayLink. Transfer is organized into micropackets. These contain a total of 128 bits of data and 32 bits of control. The control information encapsulates an 8 bit sideband (used by higher layers for framing), sequence numbers (for go-back-n link-layer retransmissions) and check bits (CRC-16).
The link layer is able to run both on 8- and 16-bit links, and if a upper half of a 16-bit link is non-functional, it will automatically revert to using the 8 lower bits.
Transactions
XIO supports basic read/write memory transactions. IRQs are sent through XIO by instructing a device to write a defined value to some register in another XIO widget. This write actually triggers the IRQ handling process in the interrupt controller. For instance, the HEART chip has such register at 0x80 in XIO widget space.
XIO addresses differ from physical processor addresses. They are two-part (widget-offset) and each XIO device is free to implement the translation from its unified memory space to the XIO address. BRIDGE and HEART are examples of two different approaches.
Device identification
There is no distinction between memory and configuration space in XIO. Instead, each XIO device has a predefined header that consists of a widget ID and several configuration registers.