[Cialug] Masters and Slaves

Colin Burnett cmlburnett at gmail.com
Sat Nov 1 20:26:12 CDT 2008


On Sat, Nov 1, 2008 at 6:42 PM, Zachary Kotlarek <zach at kotlarek.com> wrote:
>
> That's only half true. While SATA is generally used as a point-to-point
> connection, with port multipliers most HBAs allow up to 16 nodes per
> channel. The shared-bus architecture is purely unidirectional though -- the
> controller can see all 16 nodes but the other nodes can only see the
> controller.

It's still P2P.  The host talks to the multiplier which then knows
which port to talk to.  Between the host and multiplier is a
bidirectional channel with only the host and the multiplier.  Between
the multiplier and devices is a bidirectional channel with only the
multiplier and the device.  It is *not* a shared bus.

Ethernet is a shared bus.  802.11 is a shared "bus".  Both have
instances where multiple devices try to talk simultaneously and they
have to go through contention to find out who talks.   PCI and all of
its predecessors (to my knowledge) were all shared, but PCIe uses P2P
"lanes".

*Logically* you can think of SATA as a shared bus because the OS can
talk to multiple devices on the same "bus" but that's merely an
abstraction provided by the controller & multiplier.  Much the same
way TCP makes a socket connection *look* circuit-switched, serialized,
and "error free" but we know that IP (and down) is not and, thus, TCP
provides that abstraction.

I presume we're arguing at different layers?


Colin


More information about the Cialug mailing list