Hardware Topology#

Any ONI-compliant system is comprised of at least three hierarchical hardware elements:

These hardware elements are managed within a single host computer where they are governed by a single Acquisition Context. An ONI system is arranged in a tiered-star network similar to that of USB, which is shown here:

Host Computer [Uses API and Driver Translator to communicate with Controller]
|...||
|   || Host Interconnect 0
|   ||
|   |+-- Controller 0 [Governed by a Context & generates a Device Table]
|   |    |
|   |    | Port Interconnect 0
|   |    |
|   |    +-- Hub 0
|   |    |   |
|   |    |   +-- Device 0.0.0 (Host.Hub.Device)
|   |    |   +-- Device 0.0.1
|   |    |   +-- ..
|   |    |   +-- Device 0.0.N
|   |    |
|   |    +-- Hub 1
|   |    ·
|   |    ·
|   |    ·
|   |    +-- Hub M
|   |
|   | Host Interconnect 1
|   |
|   + Controller 1
·
·
·
|
| Host Interconnect P
|
+--- Controller P

An ONI-compliant hardware system must have at least a single Host, a single Controller, a single Hub, and a single Device. Hubs can be physically separate hardware elements that communicate with the controller, or can share the same hardware. For instance, an FPGA can run the controller logic, contain a hub with local devices, and connect to external hubs through a digital link. Device groups operating in different clock domains, even if they lie in the same physical hardware, must form independent hubs.