Page 1 of 1

USB, pro and cons? (Re:8259)

Posted: Mon Sep 04, 2006 2:24 pm
by Kemp
I think USB mouses are stupid... Who needs a high speed general purpose port to use a mouse???
You don't have a USB port in order to have a mouse, you have a mouse that happens to be able to use an existing connection type. As for why it uses USB and not the old PS/2 connectors:
  • It enables legacy hardware to be removed from the chipset (this isn't happening very fast but things will be better for it).
  • USB provides a unified and extendable interface for any device that wants to attach to the system, this reduces the amount of code you need. For example often a simple generic USB driver will support a huge range of different devices, which wasn't really in the design spec for PS/2 ports.
  • All the cool kids use USB :P </peer pressure>

Re:8259

Posted: Mon Sep 04, 2006 9:53 pm
by João Jerónimo
*It enables legacy hardware to be removed from the chipset (this isn't happening very fast but things will be better for it).
*USB provides a unified and extendable interface for any device that wants to attach to the system, this reduces the amount of code you need.
Parhaps... but I'm not so sure the standardization is so simple, don't forget you have firewire, which uses, I think, a different protocol...

And what I had been told is that motherboards don't really "want" OS developers to start using the new interfaces (in order to really incentivate them to drop old ones and reduce the amount of code)...

And you won't be simply dropping drivers for legacy hardware (unless you act like NVIDIA, that has recently dropped support for "old" graphic cards from their official driver package), unless you are programming for you only and with no intention of releasing your work... even Linux has support for XT harddisks!
For example often a simple generic USB driver will support a huge range of different devices, which wasn't really in the design spec for PS/2 ports.
Hum... are you telling me I can write a driver that will control any USB-2.0 peripheral created from now on? Doesn't seem possible, but parhaps you are right...
* All the cool kids use USB :P
That's an invalid argument...

PS: I think that USB mouses and keyboards only exist because it's fashion, seems modern and looks very good to use hight speed ports, instead of old unfashioned ports, for everything... Fortunately, it's not so bad as USB modems...
If you want standard protocols for accessing devices, I think it would be much better to unify all the ports under a standard protocol at chipset level...

JJ

Re:8259

Posted: Tue Sep 05, 2006 2:42 am
by Pype.Clicker
if i was looking for the reason for which we have USB mice, i'd search towards laptop vendors. Little space to provide connectors and not convenient to add hardware in the case.
In that case, knowing that you just need to provide 2 ports and that they could accept WIFI cards, external disks, additional keyboard/mouse (if your customer happen to hate the input device you've built in), and that if two ports isn't enough, Custie still can buy a hub to concentrate things ... hmm ...

The first USB mouse i've seen was on Apple Macintosh, and that was indeed cool because you had plugs on the keyboard itself, so you needn't to plug yet-another-wire at the rear of the computer.

but that's barely on-topic, is it?

Re:8259

Posted: Tue Sep 05, 2006 10:27 am
by Kemp
If you want standard protocols for accessing devices, I think it would be much better to unify all the ports under a standard protocol at chipset level...
Thus, USB :P (Yes I know there's firewire, but it has nowhere near the usage that USB does, plus having a mere two types of connectors isn't too bad compared to how many we used to have)
Hum... are you telling me I can write a driver that will control any USB-2.0 peripheral created from now on? Doesn't seem possible, but parhaps you are right...
Nope, I mean that there are defined classes of devices and in general a generic driver for each class can use the basic functionality of any device in that class.
That's an invalid argument...
Yes it is, that was the point :P Peer pressure influences a lot of business decisions, particularily in computing. It's invalid but quite true.

Re:8259

Posted: Thu Sep 14, 2006 3:21 pm
by João Jerónimo
Quotes are from Kemp link
If you want standard protocols for accessing devices, I think it would be much better to unify all the ports under a standard protocol at chipset level...
Thus, USB :P (Yes I know there's firewire, but it has nowhere near the usage that USB does, plus having a mere two types of connectors isn't too bad compared to how many we used to have)
OK, ok, ok, ok... but you don't talk to all USB devices through the PC chipset using an unified protocol (as I suggested), do you?
Hum... are you telling me I can write a driver that will control any USB-2.0 peripheral created from now on? Doesn't seem possible, but parhaps you are right...
Nope, I mean that there are defined classes of devices and in general a generic driver for each class can use the basic functionality of any device in that class.
That is true even for many non-USB devices...

JJ

Re:8259

Posted: Fri Sep 15, 2006 3:53 am
by Kemp
OK, ok, ok, ok... but you don't talk to all USB devices through the PC chipset using an unified protocol (as I suggested), do you?
Well you have the single USB driver (or two if you want to be compatible with both types of controller, but afaik that's not neccesary at all) and then a generic driver for each class of device (a few classes at most of you're just supporting what you have on your system rather than what everyone could possibly have). If you can come up with a protocol suitable for accessing any device then I'd very much like to hear it (a single protocol incorporating the commands from every other protocol doesn't count :P)

Re:8259

Posted: Sat Sep 16, 2006 10:00 am
by João Jerónimo
Kemp wrote:
OK, ok, ok, ok... but you don't talk to all USB devices through the PC chipset using an unified protocol (as I suggested), do you?
Well you have the single USB driver (or two if you want to be compatible with both types of controller, but afaik that's not neccesary at all) and then a generic driver for each class of device (a few classes at most of you're just supporting what you have on your system rather than what everyone could possibly have). If you can come up with a protocol suitable for accessing any device then I'd very much like to hear it (a single protocol incorporating the commands from every other protocol doesn't count :P)
Ok, you are right...

And what about USB modems? They use interrupts to tell the host a packet has been received, don't they?
But I've read that ethernet does this much better because their interrupt mechanism (or something else) causes less overhead on the CPU than USB modems...

JJ

Re:8259

Posted: Sat Sep 16, 2006 10:09 am
by Kemp
ACK on that, if you have the option of connecting to your net hardware via ethernet and sub go ethernet every time. Every USB modem I've ever had (dial-up and adsl) has had serious performance drops and even totally dropped lines when my processor is under load. Never had that problem with nice little routers (mainly as they're not relying on my machine at all to control the connection) :) Part of the problem I believe is that for usb modems virtually the whole of the process if implemented in software, there almost no hardware involved (ironically making the old parallel/serial modems better if you don't want extra cpu load).

Re:8259

Posted: Sun Sep 17, 2006 4:19 am
by Habbit
Kemp wrote: Every USB modem I've ever had (dial-up and adsl) has had serious performance drops and even totally dropped lines when my processor is under load. {...}Part of the problem I believe is that for usb modems virtually the whole of the process if implemented in software, there almost no hardware involved {...}
But that doesn't really have anything to do with USB modems: they suck hard because they are software modems, not because they are USB. In that point they are like the infamous PCI winmodems, but with the additional overhead of the USB link. There's nothing, however, preventing you from making a "real hardware" USB modem.

Oh, and by the way, I've had a 3Com ADSL modem and never had any performance hit nor line break at 100% CPU usage - it must be one of those very few hardware modems!

Re:8259

Posted: Sun Sep 17, 2006 6:49 am
by Kemp
Yeah, I wasn't saying that a pure hardware USB modem couldn't be made, merely that no-one seems to like making them.

Heh, I'd probably trust 3com to get get things right more than my one, but it was free and I can grab a nice adsl router to replace it soon. In reference to what I said, I've noticed line speeds drop when my processor is under heavy load (as would be expected for something implemented in software, and my modem confirms this by indicating that it has to wait for the PC to catch up), but the dropping of the line only seems to happen under certain types of load. The timing matches up far too well for it to be coincedence but I fail to see how different things using the cpu heavily can make that much difference.