32-bit Cardbus usb 2.0 controller not performing anywhere near 480Mbps Windows XP
I have a 32-bit cardbus for usb 2.0 containing a NEC 720101 chipset and the description says it supports hi-speed 480Mbps yet even with a usb 3.0 device it only reaches near 18Mbps. I have tried changing the driver from what was obtained automatically by the windows update to something written for 98se/me but that didn't improve anything either.. I've tried installing different drivers to see if that would allow it to perform at its hi-speed but with no difference in speed.
Is there something different I may need to look at other than the driver?
It is self-powered (the 2 usb 2.0 ports with 3 other low-powered ports by the laptop itself) and the usb in question can at least reach 100Mbps on my other laptop so I know it's not the usb.
Any other information that I can give to help solve this please let me know. Even if you only have ideas rather than direct solutions I am willing to look at almost anything at this point.
Other details:
OS: XP SP3
usb is powered using 150mA according to USB Root Hub Properties 'Power' tab but the 2 hi speed slots each hold 500mA and are the ones self-powered.
Comments
Cardbus doesn't even support that high of a bandwidth. The theoretical max it can go is around 130mbps. Yea yeah your usb card's chipset supports that high of a bandwidth. But you are still limited by the bus of the machine you're running it on. And if it doesn't support that bandwidth, you are not going to get it.
Assuming I understand you correctly, even if the cardbus theoretical speed is 130Mbps that still leaves 112Mbps of improvement. Am I wrong? Taken from wikipedia on https://en.wikipedia.org/wiki/PC_Card: The speed of CardBus interfaces in 32-bit burst mode depends on the transfer type: in byte mode, transfer is 33 MB/s; in word mode it is 66 MB/s; and in dword (double-word) mode 132 MB/s.
None of these speeds are achieved. Wondering if something may need to done with the BIOS.. I looked there already and nothing seemed odd. It was listed 32bit.. enabled.. Nothing more specific than that from what I could see. Maybe it's the cardbus controller themselves lacking further support? But there's little to no information on that model online last I looked.
Yes, ~130mbps is the max. But without knowing your hardware, I can't tell if it supports that speed.
At a bare minimum the standard for 32bit Cardbus is 33mBps.
However, there are an assortment of variables that may be causing a performance drop. There could be fluff between the addon usb chipset and the connector on the card. Ala the way it brings it to the Cardbus interface. This chipset comes in a variety of addon standards, from Pcie to expresscard (also pcie) and cardbus. Quite possible there may be something that is bottlenecking the bandwidth or otherwise causing a slowdown.
https://www.ti.com/product/PCI1420
This model is the closest I have found and..
"Pipelined architecture allows greater than 130M bps throughput from CardBus-to-PCI and from PCI-to-CardBus" my model might just be some small revision of it but I wouldn't expect it to become slower.
The main issue now is trying to go through every possibility to rule out the cause for the bottleneck or lack of performance. What other possible explanations can I look into not mentioned yet?
Yes, but what guarantee do you have that shows your combination of hardware has this chip? What guarantee do you have that shows you have a chip that follows a design like this?
What I'm try to get at is you don't know how either piece of hardware was designed. We don't either, and especially no remote clue not without knowing what your computer is and specifically the name of that usb card.
I do know that when I have a 108Mbps network card in the same controller it operates at the intended speed as I just remembered. Maybe the card is defective somehow? I just wouldn't know how to explain it being defective in this small manner.. Maybe the voltage/amps isn't what it ought to be? I can always try to the other card that is the exact same but I don't want to open it unless I have a very good idea. The usb card is a sandisk ultra 32gb. It runs at least up to 100Mbps on my other pc. I have considered whether the driver of the usb itself might not be good enough like the driver obtained automatically might just only make it compatible but not as intended. Like on the hardware tab it is listed asa a disk drive for type but I don't know if that's normal for usb. I think I am giving enough information to start drawing some conclusions it's just a matter of time.
Earlier Sandisks of larger capacity identified as disk drives to the OS. I have a 5 year old 64gb sandisk that also identifies as a hard disk. I don't think they changed that until recently.
I have a 300mbps Hama wireless card that gives me ~250mbps. But that equates to around 30MBps.
If the card was defective, there would also be many obvious signs. But no, so my money's going to something unanticipated hardware design causing a slowdown in hardware that wasn't in the manufacturer's test lab.
Hey I just wanna add a small update. I did the math and also remembered like you pointed out the MB/s is not Mb/s. If my device hypothetically supported only 100Mbps that's about 12.5MB/s.. which matches up to the Sequential Read result of 13.13MB/s. However Sequential Write got a result of 21.257MB/s which is about 170Mbps.. and that's closer to the max performance of the typical cardbus controller at least compared to the specs of a model close to mine from the TI site as mentioned: Pipelined architecture allows greater than 130M bps throughput from CardBus-to-PCI and from PCI-to-CardBus .. So getting 170Mbps is actually not bad for a slightly newer model. I'm going to assume that the results are therefore normal as you said, but as I read elsewhere online without the 2.0 Hi-speed certification not on the box or product there's no guarantee if this is as fast as these USB host controller cards can go (or if they're simply copying the logo and lying).. I'm going to try one in a little while and compare results and see if there's any improvement, but so far it's a sigh of relief. I have no idea how I forgot the crucial different between MB and Mb.. I'll update the discussion later when I see the results next week.
the part of a such speed is because, 480mbps is theoretical maximum, it doesn't mean it will be always 480mbps
Not even theoretical, the USB consortium advertises just the raw physical bit rate. Encoding, protocol overhead, CPU processing time and other things needs to be substracted from that.
The reason is that the USB consortium wanted to compete with FireWire 400 – in numbers. But Firewire actually delivers 400 Mb/s of data, this is what the FireWire consortium decided to avertise.
FW with is SCSI heritage also uses a smart host controller. There's not much CPU processing required, which means your Cardbus would only need to transfer the effective data, instead of the whole bus protocol encapsulated data.
In the end, USB as a price-optimized consumer bus doesn't even come close, one can roughly substact 25% of the advertised USB data rate as overhead.