

Haven't heard a single critical analysis of Thunderbolt. So here I go.. - justanotheratom

I am not an expert by any means, but I do have something to say about this Thunderbolt thing.<p>First things first, Thunderbolt is just a technology, not a protocol, which is good, but it also has some implications. For instance, it cannot really replace any existing protocols. So questions about the fate of USB 3.0 in the wake of Thunderbolt sound misguided to me.<p>It seems to me that Apple's intention behind this technology is to have a single type of port to connect everything. That would make it seem like you can get rid of your USB, firewire etc. ports. But since your device expects to be plugged into a certain port, you ultimately have to provide that port. Which means that you do need to buy a new dongle, unlike what people are claiming. For instance, if you have a USB flash disk, one end of the Thunderbolt cable can be plugged into your MacBook, but the other end has to expose a USB port (assuming Thunderbolt will carry USB packets, which it does not today). So either the cable has to be Thunderbolt on one end and USB on the other, or the device needs to have a Thunderbolt port. This is good for Apple because eventually they can have only Thunderbolt ports on their Macs, which saves money and makes them cheaper, but pushes the cost out to consumers or device manufacturers.<p>Also, currently supported protocols are PCI Express and Displayport. PCI-E is interesting because it makes it sound like you can in theory connect just about anything. But there are a couple of problems with this. If I want to make my USB device play nice with Thunderbolt today, I have to have something that understands the PCI protocol. That means, my USB device needs to carry an embedded USB controller. Similarly, if I have a SATA disk, it needs to carry a SATA controller. As one can imagine, this is expensive, not scalable, and just a waste of money. The other problem is that Operating Systems and BIOS's don't expect their PCI devices to get hot-plugged, which in theory they should, and Apple can certainly ensure that for the MACs. But most PCI devices themselves do not expect to be hot-plugged. Given these two problems, I don't see how an ecosystem can develop around Thunderbolt. But its Apple, so they might have a brilliant plan that I cannot imagine myself.<p>I do see this technology as ideal for docking solutions. Imagine your iPad or iPhone with a single Thunderbolt connector that can be docked onto something which can then connect to a mouse, keyboard, display and what not. Beyond that, I am running out of ideas.
======
CountSessine
Yes, this is something that I've been thinking about the last couple of days.
Thunderbolt doesn't seem to be a complete protocol stack like USB - at least
that's what Intel's emphasis on Thunderbolt's PCIe protocol implies. Rather,
it seems to have a simple encapsulation protocol. Without a protocol stack you
can't have stuff like class drivers or channel categories (bulk, isochronous,
etc). Not unless you re-use another protocol or technology that also uses
PCIe, like USB EHCI or something.

But then what does the EHCI talk to over the Thunderbolt-PCIe? An EHC? Where?
On the Thunderbolt device? In the Thunderbolt cable? Or is the EHCI
reprogrammed to include a software EHC? Maybe that's what how Thunderbolt will
work - re-implement every hardware bus controller (SATA, USB, etc) in
software. A peripheral plugged into a Thunderbolt port on a computer would be
either

\- A peripheral with a Thunderbolt connector itself, connected with a
Thunderbolt-to-Thunderbolt cable. The peripheral would actually be
communicating Thunderbolt-encapsulated USB packets (or SATA or whatever) with
a software USB EHC in the computer.

\- A legacy peripheral (USB/SATA/whatever) connected with an expensive
Thunderbolt-to-USB cable. The cable would have to do the Thunderbolt
encapsulation and transcoding for the peripheral. Again, it would be
communicating with a software USB EHC in the computer.

I can kind of understand why Intel would be interested in this. If doing
anything useful over Thunderbolt means implementing existing hardware
controllers in software (SATA HBA, USB EHC, etc), Thunderbolt is going to be a
great way of burning excess CPU cycles. Just as USB was a less CPU-efficient
connector than Firewire, Thunderbolt may need even more CPU cycles. This would
be a great technology to promote if you're in the business of selling people
CPU cycles.

~~~
CountSessine
Update for my post. I was sort of right the first time:

 _But then what does the EHCI talk to over the Thunderbolt-PCIe? An EHC?
Where? On the Thunderbolt device?_

It appears from details emerging that Thunderbolt really is just an
encapsulation connector/protocol. Don't think of it is a USB competitor - it's
a USB encapsulator. Think of having a Thunderbolt connector on your laptop but
then also in your monitor at home. The monitor has an USB EHCI, a SATA HBA,
etc to support a bunch of integrated USB ports and maybe an eSATA connector or
two. You get home, connect your laptop to your monitor via Thunderbolt, and
new USB and SATA adapters appear in your laptop's PCIe configuration.

Thunderbolt is more of an external PCIe bus than a peripheral bus like USB. It
doesn't compete with USB for mice or keyboards. But given that eSATA is a far
superior connector for storage devices than USB 3 is (NCQ, DMA, RAID, etc),
and that Thunderbolt will be able to encapsulate SATA connections, Thunderbolt
_might_ compete with USB 3 on at least that level.

------
timthorn
> But most PCI devices themselves do not expect to be hot-plugged

Is that actually true? It's been some time since I went through the protocol,
but PCIe does have native support for hot-plug. Certainly during the
enumeration, I don't see why a card (distinct from the host) would care in the
least whether the rest of the system was booted or not.

Don't forget that ExpressCards are effectively PCIe, and they have no problems
with being inserted or removed whilst a system is turned on.

~~~
justanotheratom
It is true that in theory, they should be hot-pluggable. But try plugging out
a hard-drive while your system is running, bad things happen. USB devices, on
the other hand, expect to be hot-plugged, and take appropriate measures for
that. For example, removable media flash drives don't do as much caching in
volatile memory as internal SATA hard drives. Another example would be a
graphics card, which, if you plugin while the system is running, won't get
recognized. But if you want to use Thunderbolt to power external displays that
carry their own graphics cards, the underlying assumption being that the card
already knows how to talk PCI, then you can see that there will be a problem.

------
zerohp
Your entire post looks like speculation without expertise to back it up. Your
ideas about hot plugging are completely wrong. Have you ever designed a
hardware device, or at least implemented a driver?

Seeing as how you created your account right before posting this, it feels
like astroturfing.

~~~
justanotheratom
I am certainly not an expert and can definitely be wrong here. Perhaps you can
provide your insights. I just haven't seen many insightful articles on the
interwebs.

ps: Had to look up what astroturfing is. No, I am just mostly a lurker on HN.

