Take a look at our
ThinkPads.com HOME PAGE
For those who might want to contribute to the blog, start here: Editors Alley Topic
Then contact Bill with a Private Message

Flush-mount Laptop Adapters Part 1: Cardbus to USB2.0 *PICS*

Performance, hardware, software, general buying and gaming discussion..
Post Reply
Message
Author
dr_st
Moderator
Moderator
Posts: 8013
Joined: Sat Oct 29, 2005 6:20 am
Location: Israel

Flush-mount Laptop Adapters Part 1: Cardbus to USB2.0 *PICS*

#1 Post by dr_st » Fri Mar 15, 2013 10:14 am

During the past year I’ve had an unhealthy fascination with various card adapters (PCMCIA/CardBus/ExpressCard) offering expansion for laptops. Specifically I was focusing on adapters that sit flush with the chassis (for aesthetic/convenience purposes) and offer the most commonly requested expansion options:
  • USB2.0 for USB1.1-equipped machines
  • USB3.0 for USB2.0-equipped machines
  • Media card for machines without a card slot
I was interested in comparing the different devices to each other as well as to native controllers integrated with the laptop, when possible.

As part of my hobby of sharing knowledge and discussing geeky computer-related stuff, I will convey my findings in a multi-part story.

All pictures can be clicked for larger versions.

Part 1 – CardBus to USB2.0

Some related discussions on the forum:
Add PCMCIA to USB 2.0 CARDBUS + Bluetooth to T23 *PICS*
Flush fitting USB2 card for my T30 *PIC*
PC Card, Cardbus, SD Card adapters, readers & performance

Reasons to get one
  • Adding USB2 capabilities to machine otherwise having only USB1 (e.g., A3x/T30 series).
  • Adding extra USB ports (e.g., T4x and older laptops had at most two such ports).
  • Restoring USB 2 functionality in case where the built-in USB controller has malfunctioned (e.g., Southbridge failures on T4x and other machines often had partial or total USB controller failure as the first and sometimes only symptom).
The players

The most common flush Cardbus-USB2 adapter is the AKE BC168, which exist in two flavors – with a VIA controller or a NEC controller. Both types offer two USB2 ports and a power connector. These adapters are sold by a wide variety of sellers on eBay, Amazon and others. Note that while the manufacturer identifies these two as separate products, they share the same model number, and so many sellers don’t distinguish between the two (some do).

The actual cards you get may look a bit different from the pictures (most likely the high volume of manufacturing accounts for differences in the process). The marking may be a bit different – you may have a black/red triangle next to the “BC168”, the VIA/NEC name may or may not be mentioned on the back of the card, and the 8 studs indicating the card as a 32-bit CardBus (as opposed to 16-bit PCMCIA) may or may not be present. For my testing I had one NEC-based card, and two VIA-based ones, and while all three looked different (see picture), their characteristics stayed similar. No behavioral differences at all could be noticed between the two VIA units. Thus I conclude that these markings are irrelevant.


Image
Three AKE BC168 cards (NEC, VIA, VIA), each with a different look. While only the rightmost one has the official CardBus gold strip and 8 studs, all three are 32-bit cards.

Package and physical properties

All the cards I received came in a flimsy cardboard package, which included the card itself (in a plastic bag), a driver mini-CD (never needed it, although old Win9x distributions might), and a USB power cable. The latter is provided to pull power from an existing built-in USB port on the machine into a DC-5V input socket on the card, in case you need to connect peripherals requiring more power than the CardBus interface can provide. Typically you won’t need it (more on it later).

The cards themselves sit flush with the chassis in all machines I tested them in. That’s good. The bad – since they sit flush and have no spring-loading mechanism, taking them out may be difficult. Sometimes you may need to pry the card out with fingers or pliers. Be careful not to damage the USB port housing, which is made out very flimsy aluminium. Since the typical scenario would be to plug the card into the machine and never take it out, one might ignore the potential extraction difficulty. Nevertheless, if your usage pattern would require you to frequently exchange Cardbus adapters, the issue should not be overlooked.

On systems with dual CardBus slots one might plug two such cards simultaneously, however the USB ports on top of each other will be too close and unusable at the same time anyway, for most typical USB plugs (see picture).

Image Image
AKE BC168 in X32 (left) and A31p (right). Despite having two slots on the A31p, they are too close to plug any but the slimmest USB devices above one another, so this configuration is impractical.

Hardware specifications

Code: Select all

Card               AKE BC168 - NEC                              AKE BC168 – VIA
Chip               NEC uPD720101                                VIA VT6214L
Ports (External)   5 (2)                                        4 (2)
VID:DID:REV (USB1) 1033:0035:43                                 1106:3038:62
VID:DID:REV (USB2) 1033:00E0:04                                 1106:3104:65
Description (USB1) NEC PCI to USB Open Host Controller          VIA Rev 5 or later USB Universal Host Controller
Description (USB2) Standard Enhanced PCI to USB Host Controller VIA USB Enhanced Host Controller
Table 1. AKE BC168 Hardware IDs and specifications

Both cards appear as standard PCI devices behind the Cardbus bridges which they are connected to. All the information except the controller chip names was obtained through USBView. The controllers actually offer more USB ports than are exposed, but I don’t think they can be used in any way.

Like most USB2 controllers of the time, these also use companion controllers to provide USB1 support. These appear as if they were separate USB controllers in the device list (hence the separate device IDs). VIA, like Intel, uses UHCI. NEC, like the rest, uses OHCI.

Compatibility

For whatever reason, the VIA-based card simply refuses to work on most modern laptops. I’ve tried a few T60s, an X61 and an HP 8510w. These machines use different chipsets and CardBus controllers, so it cannot be a very specific compatibility problem, but a more general thing.

The symptoms can be – card not recognized, card recognized but doesn’t pick up anything plugged into it, and system restarts whenever something is plugged or unplugged. Very rarely some USB1 peripherals like a mouse would work, but I couldn’t get anything USB2 to function at all. To be sure it’s not a software issue I also tried the card under Linux – same problems. As of now, I have no idea what causes this behavior. The NEC-based card, on the other hand, worked well in every laptop I tried it on.

As shoddy as the VIA controller seemed to be with anything T60 and above, it worked without issues on all the older laptops – from A31 to X32/T42 generation. Luckily, that is the kind of machines for which one is most likely to consider such a card in the first place.

Data Transfer Performance

The Cardbus adapters were tested in several laptops, and compared to each other as well as to some onboard USB controllers. The following settings were used in all tests:
  • Flash drive - Sandisk Extreme USB3 64GB. This one can hit speeds way above 100MB/s with a USB3.0 connection, so definitely not be a limiting factor in controller benchmarking.
  • Utility - CrystalDiskMark with 100MB files and sequential read/write (no change was observed with larger files)
  • Operating system – Windows XP SP3, running in safe mode to squeeze the maximum possible performance (experiments showed that in normal mode USB performance can drop by ~10-15%).
  • No other USB2 device plugged at the same time – apparently transfer rates can drop 15-30% just because of another device being plugged in, even if only one is being used simultaneously.
Overall, this guarantees that the numbers will pretty much be close to the absolute best you can expect, and in practice your results may be a bit lower.

Code: Select all

            A31P: P4-M 2.0GHz, WinXP PRO SP3
Controller   Intel ICH3-M   NEC uPD720101 Via VT6214L
Interface   Onboard(USB1.1)    Cardbus      Cardbus
Read Speed       1.0MB/s       18.7MB/s     25.4MB/s
Write Speed      1.0MB/s       10.2MB/s     11.3MB/s
Table 2. Comparison to the onboard USB1.1 ICH3-M controller on the A31p

The test clearly shows how poor USB1.1 is. With the theoretical limit of 12Mbps (1.5MB/s), and practical transfer speeds around 1MB/s, it is clearly inadequate for any modern day data transfer. Any of the above CardBus controllers will be a worthy upgrade, with VIA delivering noticeably better speeds than the NEC, especially in reading (surprise?)

Code: Select all

            T42: Pentium M 745 1.8GHz, WinXP PRO SP3
Controller   Intel ICH4-M   NEC uPD720101 Via VT6214L
Interface       Onboard         Cardbus     Cardbus
Read Speed      32.6MB/s        19.4MB/s    27.4MB/s
Write Speed     27.4MB/s        18.8MB/s    16.4MB/s
Table 3. Comparison to the onboard USB2.0 ICH4-M controller on the T42


Comparing to an integrated USB2.0 controller the pictures is very different. The onboard Intel ICH4-M controller delivered much faster read and write speeds, than the CardBus solutions. Interestingly, this test shows that the NEC chip has a small edge over the VIA chip when it comes to write speeds, although the read speeds on the VIA are significantly better.

CardBus Controllers Performance Comparison

It would be interesting to check whether the CardBus controller itself affects performance. For this purpose I ran the test on laptops of comparable hardware, but with different integrated CardBus controllers – A31p vs Evo N610c and T42 vs X32.

Code: Select all

System                      Compaq Evo N610c, P4-M 1.8GHz                 Thinkpad A31p, P4-M 2.0GHZ
USB Controller      NEC uPD720100A      NEC uPD720101    Via VT6214L     NEC uPD720101     Via VT6214L
CardBus Controller  None (onboard)       Texas Instruments PCI1420                Ricoh R5C552
Read Speed            18.9MB/s             20.2MB/s       26.5MB/s          18.7MB/s        25.4MB/s
Write Speed           18.1MB/s             19.5MB/s       15.4MB/s          10.2MB/s        11.3MB/s
Table 4. Ricoh R5C552 vs TI PCI1420 vs N610c onboard

The N610c and A31p have almost the same base hardware, so we can assume the performance differences to be related to the CardBus controller itself. We can see a noticeable advantage to the Texas Instruments PCI1420 versus the Ricoh R5C552, especially in the write speed.

Another interesting comparison is to the onboard USB2.0 controller of the Evo N610c, which is a slightly earlier generation NEC chip. The N610c was one of the few laptops that chose to ditch the slow USB1.1 in the Intel ICH3-M chipset, and integrate a separate USB2.0 controller. The performance of the onboard uPD720100A is comparable but slightly lower to that of the CardBus uPD720101, with the VT6214L again showing higher read speeds and lower write speeds. This test clearly shows that the lower performing Ricoh CardBus controller is a bottleneck, while the TI is not.

Code: Select all

System                 X32, Pentium M 2.0GHz	       T42, Pentium M 1.8GHz
USB Controller      NEC uPD720101	Via VT6214L    NEC uPD720101	Via VT6214L
CardBus Controller          Ricoh R5C554	         Texas Instruments TI4520A
Read Speed             18.9MB/s      25.6MB/s         19.4MB/s       27.4MB/s
Write Speed            10.4MB/s      11.6MB/s         18.8MB/s       16.4MB/s
Table 5. Ricoh R5C554 vs TI4520A

Comparing again similar machines, with other controllers from the same manufacturers (Ricoh and TI) we see again that the Ricoh controller is a serious bottleneck when it comes to writing. In fact, it completely masks the small write speed advantage of the NEC uPD720101 over the VIA VT6214L. The TI also holds a small advantage in the read speed department.

Powering USB Devices

The CardBus interface typically provides enough power for a standard USB device. In practice, it is usually possible to connect two flash drives to both ports and not need extra power. Some devices that are designed to consume more power (like phones/tablets that charge their battery from the USB port) will sometimes not work or work but refuse to charge. In such cases, connecting extra power from an existing USB port on the system (even USB1.1) to the DC-in socket will provide the extra needed for such devices.

Pre-Boot Environment Support

In all of the laptops tested, the CardBus interface is not functioning during the pre-boot environment (BIOS). This means that it is not possible to boot from a USB device attached to the CardBus adapter, and keyboard/mouse will not work in the BIOS, but only after the OS is loaded.

Conclusion and Discussion

The tests showed that the CardBus controllers are good ways to add USB2.0 capabilities to a USB1.1 laptop, such as Thinkpad A3x, R4x, T30, X30 and older. However, if you consider using them to add more USB2.0 ports to a system which already has integrated USB2.0, you should be advised that their performance is lower than of the integrated controller, and they do not work during pre-boot environments.

The two things that surprised me were:
  • The VIA controller not working on newer machines, even though it works without a hitch on older ones. This phenomenon is yet unexplained. If you have a T/R/Z6x or newer machine with CardBus and for some reason want to add more USB ports – make sure to get only the NEC variant.
  • The VIA controller actually outperforming the NEC significantly in read speeds (NEC, the pioneers of USB2.0, have always enjoyed better reputation). To be fair, the writing performance of the NEC is higher, but only if you have a TI, not Ricoh CardBus controller.
The things that were more or less expected:
  • Both controllers falling short of the integrated Intel USB2.0. It is generally the case that Intel starts integrating late (that’s why ICH3 still only had USB1.1), but once they do – they do it well.
  • The Texas Instrument CardBus solutions outperforming the Ricoh ones. Their reputation was always a bit higher. Ricoh’s advantage was in integrating other features such as Firewire in the same chip. In T60 and older T series, IBM/Lenovo decide to exclude Firewire, so they could integrate the TI controllers.
Part 2 is online here.
Last edited by dr_st on Tue May 28, 2013 7:03 am, edited 5 times in total.
Thinkpad 25 (20K7), X1 Carbon (20HQ), Yoga 14 (20FY), T430s (IPS FHD + Classic Keyboard), X220 4291-4BG
X61 7673-V2V, T60 2007-QPG, T42 2373-F7G, X32 (IPS Screen), A31p w/ Ultrabay Numpad, A21m 2628-GXU

GACrabill
Junior Member
Junior Member
Posts: 402
Joined: Thu Jul 22, 2004 11:26 pm
Location: Indiana

Re: Flush-mount Laptop Adapters Part 1: Cardbus to USB2.0 *PICS*

#2 Post by GACrabill » Sat Mar 16, 2013 1:08 am

Absolutely excellent write-up !

I will be waiting on pins and needles for the 3.0 report.

Thanks !

automobus
Senior Member
Senior Member
Posts: 546
Joined: Sun Jan 24, 2010 5:32 pm
Location: USA : Illinois : Chicago

observed real-world performance of CardBus and High Speed USB

#3 Post by automobus » Mon Oct 06, 2014 11:42 am

I doubt I will ever again collect CardBus throughput samples, but I have some notes in my head or on paper which I did not yet post. I hope it will be helpful for other real users and hobbyists, if they can pick-up where I left-off instead of measuring 'old news' slow speeds. I previously wrote a short write-up about PC Card technology, responding to some confusion. And I summarised some of my speed/throughput speed tests in a thread about T43 + Dock, where is rather off-topic.



CardBus
The highest-speed transfers I witnessed from CardBus systems is approximately 113 Mo/s read, 70 Mo/s write, both using SATA cards. But I know, it can be higher.

I read many reports, found around English language Web, that Ricoh CardBus bridges are gimped, limited, cheap or lousy, while TI's chips are so much superior. I am guilty of spreading misinformation, blaming Ricoh for dismal input/output speeds in most mobile PCs, from the cutest loveliest ultraportables to desktop replacements, from cheap crummy consumer craptops to 'two thousand dollar professional grade'. Although bridge chip might contribute to speed caps, it is not the main problem. The problem is bigger, somewhere higher-up and more central to computer system, than particular CardBus Bridges. I do not understand it: something to do with firmware, resources such as memory and interrupts, different priorities for different components. It might be solvable with firmware optimisation.

I learned, some cards require a larger memory window than others. I learned, PCI bus can use any clockrate up to 33 MHz. Previously, I thought it was always exactly 33 MHz wherever PCI can be found. I wonder whether some laptops simply have a slower PCI bus.

Some laptops with a CardBus bridge, can only use 16-bit PC Cards: their firmware is so bad, that CardBus Cards are not usable.

In one experiment, I thought I observed CardBus throughput exceed memory throughput! In that system, time seemed to slow down: during CardBus i/o, minutes on a wall clock would elapse, while computer timed tens of seconds. I guess, clock ticking interrupts were not being counted, or something like that.

One common quirk in low-budget craptops, is incorrect PCI IDs. I found some which were backward or endian-reversed, some with zero subsystem ID, some where sub Vendor and Device were swapped, and I saw one device where VID:DID subV:subD was pattern of ALI:thing Intel:Intel. For such specimens, it is better to read what is actual IC markings, than to trust PCI ID.

I am not smart enough to put CoreBoot on X60 or T60. But here is a question for a hacker to investigate: what is CardBus performance with CoreBoot? Any better or same as with vendor BIOS?

CardBus really is essentially PCI in a credit card, and some (if not all) CardBus cards can be wired directly to PCI bus without a CBB. One can find for sale on the Web, ExpressCard or PCIe adapter devices for using CardBus cards, which contain just PCIe-to-PCI bridge, no CBB.

If I were motivated to experiment further, then I would seek more than one CardBus add-in PCI card, ideally ones with same CBB as found in some laptops. I got rid of my SATA CardBus cards (even the oh-so-special SiI3124 card). I would love to know 'how fast can it go', if someone else has the resources to find out.

For now, the best I have read is by Rob Art Morgan, in his Bare Feats article 2006-01-09 REVIEW: FirmTek's CardBus SATA. http://barefeats.com/hard65.html He measured 108 Mo/s read and 96 Mo/s write, using some Silicon Image SATA card, TI PCI1510A, some 2004 PowerBook. I think, a Pentium M laptop should be capable of even higher throughput, at least due to better memory performance. Notice, he observed lower speed from 2005 PowerBook. Apparently, even Apple did not maximise CardBus performance every time.

I found a couple letters on mailing lists, mentioning or suggesting CardBus performance penalty.
I found a letter from 2005, about EHCI.
I found a letter from 2009, about SiI3512.



USB
Different USB devices have different performance characteristics. One must not generalise all hosts, all memory card readers, all HDD, all Stick, as having an imaginary 'standard USB performance profile'. This was a common misconception of multiple Mac fanatics. High-Speed or Hi-Speed, bulk only transfer mass storage class BOT MSC, in real equipment, delivers almost 48 Mo/s. Which is faster than a deluded Apple fan's beloved FireWire 400 in even theory, never mind in practice. Stefan Richter, the Linux IEEE 1394 developer, did the math at 2004. (IIUIC, If I understand it correctly, SBP2 payload data is less than 45 Mo/s.)
http://sourceforge.net/p/linux1394/mail ... /13740607/
http://permalink.gmane.org/gmane.linux. ... devel/4209
http://marc.info/?l=linux1394-devel&m=109128028930225

•NEC µPD720101 rev 04 can read 26 Mo/s from a single mass storage drive, can write 23 Mo/s to a single drive. µPD720101 can read 26.9 Mo/s from two drives simultaneously (NEC JAPAN D720101F1 0350PUA64 in PowerBook6,2 (G4 12 DVI) A1010).
•When I had a chance to simply test a NEC µPD720102, IIRC, it read about 31 Mo/s.
•Intel ICH4 82801DB EHCI (8086:24cd r1) reads 39.7 Mo/s from INIC-1605L (bpt=777).
•Intel ICH5M EHCI can read 46 Mo/s from three devices simultaneously.
•Intel ICH6M EHCI can read 40 Mo/s from a single LUN, or approximately 47 Mo/s from three devices simultaneously.
•Intel ICH9M EHCI can read ≥ 38 Mo/s from a single target/LUN, or nearly 48 Mo/s from three devices simultaneously.
•NEC µPD720200 xHCI, which I had opportunity to try in a Dell Inspiron N411Z laptop and a PCIe card in tower PC, seems to handle just 40 Mo/s of High Speed bulk traffic.
•VIA EHCI 1106:3104 rev 86, I think part of VIA VN800 chipset, can read 41 Mo/s from a single target.
•Intel PCH HM65 Cougar Point EHCI 8086:1c26 rev 5 (this Intel design integrates RMH, it is newer and different from their older ICH EHCI circuitry) can do 41.5 Mo/s from a single target/LUN (in MacBookPro8,1; sub-ID 8086:7270).
•AMD FCH A70M Hudson-M3 xHCI 1022:7812 rev 3 (AMD's first generation) can do 41.5 Mo/s HiSpeed from a single target (tested in HP Pavilion g4 Notebook PC; sub-ID 103c:1847; not tested multiple targets with hub).
•Intel Celeron N2840 xHCI 8086:0f35 rev e can read ≥ 44 Mo/s from a single target (tested in Acer Aspire ES1-512-C96S; sub-ID 1025:0936).
•Intel Core i5-4250U i5-4258U (Haswell : PCH 8 Lynx Point) xHCI 8086:9c31 rev 4 attains bulk read and write throughput nearly 48 Mo/s from a single target (both MacBookAir6,2 MacBookPro11,1; sub-ID 8086:7270).

•ALi M5621 (TH07) PATA high speed bridge achieved 35 Mo/s (linear read to Intel 82801DB ICH4 EHCI, when it worked).
•ASMedia ASM1153E SATA bridge, at high speed, sustains 47 Mo/s read and write bulk-only mass storage transfer.
•Cypress CY7C68300C-56PVXC (B 04 PHI 0643 | CYP 667702) PATA high speed bridge is capable of: 46 Mo/s read, 44 Mo/s write (bs=512 Mio).
•Initio INIC-1605L SATA high speed bridge can deliver 47 Mo/s read, 47 Mo/s write.
•Initio INIC-1607P SATA high speed bridge can deliver 47 Mo/s read/write.
•JMicron JM20337 is horrible, you should never let anything important touch it; it can do 31 Mo/s read, and it can do 44 Mo/s write.
•NEC µPD720130GC (0451X3A16) PATA high speed bridge can: read 46 Mo/s (bpt=256), write 44 Mo/s (bs=512 Mio)
•Prolific PL-2507 PATA high speed bridge can deliver 41 Mo/s rw.

•Intel ICH4 82801DB UHCI reads 1.06 Mo/s from INIC-1605L (bpt=777).
•Opti FireLink 82C861 OHCI (1045:c861 r10) reads 1.13 Mo/s from INIC-1605L (bpt=864).
•At Full Speed, 1.2 Mo/s read speed is possible. This benchmarked by Lu Baolu.
http://article.gmane.org/gmane.linux.usb.general/115987
http://marc.info/?l=linux-usb&m=141284475713272
http://www.spinics.net/lists/linux-usb/msg115198.html

bpt is blocks per transfer. Lines which mention bpt, were tested with sg_read. bs is block size when tested with dd.

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Thinkpad - General HARDWARE/SOFTWARE questions”

Who is online

Users browsing this forum: Bing [Bot] and 6 guests