TO THE POINT OF PROTOCOLS
One common aspect for all of these
serial interfaces is that, for the most
part, they're all point-to-point switching. Point-to-point connections and
protocols are easier to route than
parallel bus architectures. In fact,
they all can place a hub, switch, or
switch fabric between two nodes.
In many instances, no switch will
be used. SATA drives are normally
connected to their controller. It's
more common for SAS and Fibre
Channel drives to run through switching networks. At the other extreme is
Ethernet, which spans the Internet
with millions of switches. In between
is PCI Express, where at least one
switch is very common.
On the plus side, switching and
switch fabrics often provide redundancy, higher throughput, and easy
expansion. On the minus side, there
is added latency and complexity. Ethernet, PCI Express, InfiniBand, Serial
RapidIO, and Fibre Channel all offer
cut-through, where a packet moving
into a switch can be sent out before
the entire packet is received, assuming the path isn't already busy.
With switches comes the issue of
routing. Serial RapidIO uses source-based routing at the low level.
Address-based routing is also common in addition to identifier-based
routing. TCP/IP routing typically
occurs at a higher level in all but Ethernet switches, where TCP/IP is
essentially a native protocol.
Just to make the traffic more interesting, many of these interfaces support features like virtual lanes and
remote DMA. Virtual lanes differ from
I/O virtualization, as they permit the
segregation and possibly prioritization
of traffic.
Of course, switching is more common in peer-to-peer environments like
Ethernet. But only imagination
restricts host-based architectures like
USB and PCI Express. In the case of
USB, bridges like Standard Microsystems' (SMSC) SB2524 link multiple
USB hosts to multiple USB devices
(see "USB Branches Out").
PCI Express has defaults to a single root tree with a host that controls
devices at the leaves. A technique
called reverse bridging allows multiple hosts to exist within a tree. The
hosts operate cooperatively, and any
host can stomp all over the other
devices. Standards that are more
advanced like PCI Express IO Virtualization (IOV) tackle these issues.
For more, see "I/O Virtualization".