Could USB ever take over PCI

 
Thread Tools Search this Thread
Special Forums Hardware Could USB ever take over PCI
# 1  
Old 08-14-2013
Could USB ever take over PCI

Internally speaking, for your motherboard bus. Would it be possible for a usb standard to be used in place of the PCI or PCIe bus that is now nearly standard on all PC's? If not, why wouldn't this work?
# 2  
Old 08-14-2013
Hardly -- For instance, PCI can transfer up to 16 GB/s whereas the most recent USB devices are peaking at 4-5 Gbps (~600 MB/s).

Nowadays most commercial PCI cards use 16 transfer lanes (known as PCI 16x) whereas USB has only two.

This also means that PCI buses are much larger than a USB slot. PCI is great for performance-critical scenarios while USB is great for portability.

Quote:
why wouldn't this work?
It would definitely work, but there's no benefit from doing it that way other than 'for the sake of science'. Smilie
# 3  
Old 10-21-2013
Quote:
Originally Posted by Lost in Cyberia
Internally speaking, for your motherboard bus. Would it be possible for a usb standard to be used in place of the PCI or PCIe bus that is now nearly standard on all PC's? If not, why wouldn't this work?
It would not work for several reasons.

Firstly USB does not support DMA transfer modes. USB operates only in PIO mode, which is crufty and old and slow. PATA, SATA, Firewire, SCSI all operate in DMA mode, which is the biggest factor for why they are so much faster interfaces for attaching hard drives than USB.

Secondly USB has very high protocol overhead and poor performance with bulk data transfers. For example, USB 2.0 has a raw bitrate of 480 Mbits/s. That is 60 MB/s. Yet anyone who's used a USB hard drive knows that even on the newest fastest computers, real world USB 2.0 transfer rates are barely over 30 MB/s. I.e. USB can barely achieve 50% efficiency. Firewire, SCSI, SATA/PATA, on the other hand, achieve 90%+ of their raw bitrate in real world performance.

Another point worth mentioning is the abysmal bus power provided by USB. Only 500 mW. It's the worst of all external peripheral busses. Firewire has been providing 3x the bus power for many years now as compared with USB. And since you're evaluating it as a replacement for PCI-E, which carries 75w, you can see that you'd need about 150 USB ports to provide the bus power of a single PCI-E slot.

Lastly USB performs very poorly at isochronous transfers. Isochronous transfers are critical for audio and video work, where precise timing is key. This is why all Pro Audio/Video gear has been on Firewire for many years, instead of USB, because even though the USB standard includes isochronous support, it's a hack, and doesn't work very well in the real world.

USB was originally designed as a replacement for the RS232 serial port, PS/2 keyboard and mouse port, and the joystick port. All very low speed serial devices. And USB works quite well for these devices. For high bitrate bulk data transfers, low latency, etc. USB is a real turd.

As for one replacing the other, if anything, its the other way round. Look at Thunderbolt. It's essentially an external PCI-E, and as you might expect, it performs leagues ahead of USB for bandwidth intensive devices like hard disks or VGA displays.

Last edited by lupin..the..3rd; 10-21-2013 at 04:15 PM..
# 4  
Old 10-21-2013
Leaving aside the performance problems, there's a bigger fundamental difference between the two. There's things PCI can do and USB just can't. DMA as mentioned above is one of them.

This is because the PCI bus is an extension of the CPU's own hardwired bus, essentially. It has most of the same features as the CPU's own bus, and communication is extremely direct, to the point all hardware on PCI as well as system memory in general ends up inhabiting the same memory map. (More or less. It's gotten more complicated with each revision, but once configured, still handles itself in a manner like this.) Use one address and you're talking to system memory. Use another address and you're talking to video RAM. Use another address and you're talking to your network card's boot ROM. And such.

This turns out to be vital for things your computer absolutely needs to boot, like video. They can include little bits of machine code on the cards which give the BIOS a very basic ability to use them. The BIOS doesn't have to load a driver to see it, the code just kind of appears in memory where it needs to be thanks to the memory map. This is also why mac's require different kinds of video cards than PC's -- different kind of BIOS.

USB is extremely in-direct; it takes tons of messages back and forth to do anything, and wasn't designed as a CPU bus anyway. Things PCI does with one pulse would have to be emulated in software. Rigidly standard things like USB keyboards are handled in BIOS these days, USB media as well (though often badly). But you couldn't replace a PCI video card with a USB one and have your computer boot. The BIOS by nature is too dumb to load a driver, and sees no video as a result, and cannot boot.

Last edited by Corona688; 10-21-2013 at 05:42 PM..
# 5  
Old 10-21-2013
As others have said, apple vs. orange.

Both have their place. So while the argument has been on what PCIe can do vs USB, certainly USB has strengths for certain cases.

So.. the answer is "no", but iMHO, it's because one is an apple and the other is an orange.

If you think differently, go and get on of those high speed USB 3.0 docking solutions that do displaylink to handle multiple monitors over your USB 3.0... and when that fails (and eventually it will), you will have a better understanding for why this just doesn't work.
# 6  
Old 10-22-2013
So if USB is such a mediocre protocol for electricity, transfer rates, and lack of DMA, why/how is it the most universal and popular? Why isn't firewire, or thunderbolt made standard? Proprietary reasons?
# 7  
Old 10-22-2013
Quote:
Originally Posted by Lost in Cyberia
So if USB is such a mediocre protocol for electricity, transfer rates, and lack of DMA, why/how is it the most universal and popular?
Please understand that we're not saying USB is bad. I like it, it has a lot of things going for it.

USB and Firewire have these handy features:
  • They're electrically simple. Power, ground, a shielded pair for data -- that's it. That lets them use simple connectors and work well on long thin cheap cables. They can be protected from static well enough to be handled by humans without special precautions.
  • Very isolated and robust. It won't cause things to crash or explode if you unplug it by accident. If an error happens, the computer can retry.
  • They have appealing plug-and-play features. It's convenient for a hardware manufacturer to make custom devices for them.

These features are a trade-off. PCIE is fast, but a 12-foot PCIE cable would need to be as thick as your fist. PCIE is direct, meaning, if you unplugged it while your computer was on, your computer would either crash or become a smoking wreck! And the same features which make USB handy make it less efficient.

Quote:
Why isn't firewire, or thunderbolt made standard? Proprietary reasons?
Firewire is a standard, and if you really want it you can get it. It's not popular, though.

I think USB became more popular because it entered the market as a cheap keyboard connector. Everyone had it. Not everyone had firewire, since that was higher-end -- if you didn't have a digital video camera, you had no use for it. Its faster speed made its cables more expensive too (inevitable). When USB started getting used for disks and things they made it faster.

People use USB because it's reliable, available, and good enough. (Also, a firewire video card is just as silly as a USB one.)

Thunderbolt is something new.

Last edited by Corona688; 10-22-2013 at 08:49 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Slackware

converting mouse to pci

Need to free up a usb port for webcam. What does xorg.conf look like in order to work if I move mouse to PCI port via a converter plug? (1 Reply)
Discussion started by: slak0
1 Replies

2. Solaris

available PCI slots on v440

How do I find any available PCI slots on a v440? When I run prtconf, I get the following output? But I am not able to make out whether all the PCI slots are used. ================================= IO Devices ================================= Bus Freq Brd Type MHz Slot ... (1 Reply)
Discussion started by: jtamminen
1 Replies

3. Programming

help writing pci firmware

For a project that I'm working on I want to write a low level PCI driver, but I can't seem to find any free/cheap documentation on PCI firmware specifications. I came across the "pci firmware specification 3.0" manual but this costs USD $1000 :eek:. I am not developing a commercial product... (13 Replies)
Discussion started by: neur0n
13 Replies

4. UNIX for Dummies Questions & Answers

USB-USB cable between linux and windows computers

Is there an easy way to setup a cross-over cable (USB-USB) between a linux box and a windows PC? My 2 machines are next to each other but I really do not want to keep transfering my files using my USB drive. Thanks! (4 Replies)
Discussion started by: Xterra
4 Replies

5. Linux

PCI Card recognized

I installed PCI Card HP SC44Ge - SAS1068E on my linux CentOS 5.4 is there a way to find out if the PCI is properly installed and recognized by linux. lspci is enough? just to add that PCI card is connected to a tape... also how can I find out driver and firmware version? thanks a... (1 Reply)
Discussion started by: karlochacon
1 Replies

6. UNIX for Dummies Questions & Answers

sun blade 100 test-all frozen at pci@1f,0/usb/c,3

platform: sunblade 100 Solaris 10. When running a test-all from the ok prompt on this new (to me) system, it locks up at pci@1f,0/usb/c,3. It's been there for about 25 minutes. I do have a usb keyboard and mouse attached, both are known good. There is no flash stick/ thumb drive... (0 Replies)
Discussion started by: montana77
0 Replies

7. UNIX for Dummies Questions & Answers

bad pci slot?

Hi, im having a problem installing my pci wireless card. Im using knoppix, but my problem is with the mobo i think. im using an older laptop, toshiba satellite 2540 and when i plug in the card i get lights on sometimes. this means its getting power right. so then to install the card into the... (0 Replies)
Discussion started by: jestra
0 Replies

8. Solaris

Pci Id

How do I get the PCI ID for my Realtek adapter? It's a Solaris x86 installation. (5 Replies)
Discussion started by: kuultak
5 Replies

9. BSD

WLAN PCI Cards

Hi! I just wanted to know what network cards are supported in FreeBSD. I have looked at the list of supported cards but I can't find any of them in the stores. Is the list not updated, I would really preciate info about where (in EU, Sweden) I can buy them. /Peter (2 Replies)
Discussion started by: Barfly.se
2 Replies
Login or Register to Ask a Question

Featured Tech Videos