Flush-mount Laptop Adapters Part 3

SD Card Readers/Writers

Background

The SecureDigital (SD) form factor clearly won the battle of the memory cards, pushing other formats, such as CompactFlash, MemoryStick and others to the fringes. In recent years, almost every laptop comes with an SD slot (which is often actually an X-in-1 slot also accepting other formats of similar form factors). However, several generations ago SD slots were not standard on laptops, and one wanted to read/write SD cards, one needed to resort to connecting a reader via USB or any standard laptop expansion slot, such as CardBus or ExpressCard.

Also, with time, the SD standard evolved, towards supporting higher capacities, starting with SDHC (High Capacity) and, recently SDXC (Extreme Capacity). Any SD card over 2GB has to be SDHC, whereas cards over 32GB must be SDXC. While backwards compatibility is mandated by the standard (SDHC/SDXC devices must support regular SD cards), forward compatibility cannot be guaranteed. Some old devices will not support SDXC and sometimes not even SDXC cards.

A good amount of information and a run-down of current standards can be found at the SD Association Home Page.

In this roundup I ventured to compare several different SD readers, in terms of speed and compatibility. To do so I used several different cards – from basic, cheap 2GB microSD, to a high-performance 64GB SDXC.

Note: even though these devices are commonly referred to as readers, they are in fact readers/writers. I have yet to encounter one that could only read SD cards and not write them, and if they do exist, they are naturally not very useful.

The SD Readers

The following devices were used in this review:

BlueProton SDHC Reader

This is a simple and super-cheap USB2.0 device (currently less than $5). The actual chip seems to be by Silicon Motion (Feiya), and the USB IDs (Vendor:Product:Device) are 090C:6200:0100. It appears as a “Generic – USB SD Reader USB Device” in the device manager.

CardBus Multi-Card Reader

The one I got looks a little different (see picture), but I am almost certain they are the same thing with a different label. They are typically sold at about $15-20. Physically it is a simple card which sits basically flush with the laptop (sticks out just a little bit). The card is almost flush, but not 100%. Neither the adapter, nor the card are spring-loaded.

Despite the lack of the proper CardBus gold stripe, and the no-name branding, it is in fact not a PCMCIA device, but a true 32-bit CardBus device. It appears on the PCI bus behind whatever CardBus controller is used in your laptop. It in fact appears to be a VIA VT6213L PCI-to-USB bridge (PCI vendor/device/revision IDs are 1106:3104:65) , with a USB Card Reader wired to one of the USB ports. The reader appears to be an Alcor Micro (USB device 058F:6366:0100), and shows as “Multiple Card Reader USB Device” (only when an actual card is inserted).

SDCBA-C01 CardBus SDHC/SDXC/SDIO Reader

This one is also quite widespread on “the internets”, and is a bit more pricy than the other one, going for $25-30 in most places. It does, have the CardBus gold stripe, but is that the only thing that warrants the higher price? Actually, no. Compared to the cheaper reader, this one is clearly more rigid, of higher build quality, both the reader and the card slots are spring-loaded, and it sits more flush with the laptop chassis (more on that later). If you are curious mostly about performance (as most of us are), scroll down to the performance section.

It differs from the above devices also in that it is a true PCI device, and not a “USB reader behind a PCI device”.  It is identified in the device manager as “SDA Standard Compliant SD Host Controller”, in the “Secure Digital Host Controller” section. It uses a Ricoh R5C8xx chip (PCI IDs are 1180:0822:22), although I cannot be sure of the exact revision (most likely an R5C833).

Finally, this one claims to support SDIO (not just memory cards), but in the absence of any such devices in my possession, I could not test it.

Sandisk SDAD-109 ExpressCard Multi-Card Reader

Sold at about $10-20 at most venues, this one is a no-frills reader, with the difference being that it uses the newer ExpressCard interface, instead of the older PC Card. It sits almost flush with the laptop chassis (sticks out less than half a centimeter), but the card, when inserted, sticks out a good deal. It is a USB Device (connecting through the USB pins of the ExpressCard interface), so it just shows up as a standard mass storage device, and as “Sandisk ExpCard Adpt USB Device” when a card is inserted. USB IDs are 0781:B6D1:9412.

Realtek USB3.0 SDXC Reader

One of the most interesting members of this review, it is one of the first readers that use USB3.0. It seems to be quite rare, though, as many more sprung out in the recent year or so, which appear to be more widespread. The need for such readers is obvious – many memory cards now boast speeds of 50+ MB/s, which is way over the capabilities of USB2.0.

This particular one is also interesting, because it has two slots – for full size SD cards, and microSD cards, so an adapter is not required. However, they seem to be multiplexed, so only one card can be used at the same time. The card appears as “Generic – USB3.0 CRW -SD USB Device” and the USB IDs are 0BDA:0307:0125.

In addition to the external readers, I also tested the built-in card readers on the following Thinkpads:

X61

The X61 uses a Ricoh R5C847 PCI SD controller. It uses the standard Microsoft driver, and like the Cardbus SDCBA-C01, presents itself as “SDA Standard Compliant SD Host Controller”. The PCI IDs are 1180:0822:21.

T410

The T410 uses a 5-in-1 reader, which actually shows up as two different devices (one for SD/MMC, and one for the other formats). The SD portion is also an “SDA Standard Compliant SD Host Controller”, except this one uses the PCI-Express interface. The chip is Ricoh R5U23x/24x, but I could not figure out which one. The PCI IDs are 1180:E822:01.

T420

The 4-in-1 reader in the T420 is also a PCI-Express Ricoh R5U23x/24x, but a slightly different revision.PCI IDs are 1180:E823:05. One interesting this is that this one uses a driver provided by Ricoh, and not the standard Microsoft driver. It will show up as “Ricoh PCIe SDXC/MMC Host Controller” under “IDE ATA/ATAPI Controllers”.

The Memory Cards

Several cards were tested in this round-up (all of them Sandisk, because this is what I had around):

Sandisk Premier 2GB microSD + adapter

Sandisk Extreme III 4GB SDHC (rated at 20MB/s speed)

Sandisk Extreme UHS-1 64GB SDXC (rater at 45MB/s speed)

Sandisk and some others manufacture SD cards rated up to 95MB/s, but I did not have access to any of them, and didn’t feel like buying them just for the review, as they are too expensive.

Adapter Flushness

One of the key requirements for me when using various adapters is that they sit flush with the chassis and can be left inside the laptop permanently without causing interference. On the surface, all the tested CardBus/ExpressCard adapters meet these requirements, but there are subtle but important differences, as you can see in the picture.

The Sandisk ExpressCard sticks out just a little bit, but the inserted card sticks out a lot. This means that you can leave the adapter permanently plugged in, but leaving the card in it all the time is not convenient if you move the laptop around in a bag.

The VIA CardBus multi-reader (seen in the A31p’s bottom slot) is almost flush as well, but as you can see it does stick out a bit further than the USB adapter right above it. Normally, this is a non-issue, but it bothered me in one particular case – when I was using it in a T60, with a AKE ExpressCard/54 to USB3.0 adapter in the ExpressCard slot, the difference in depth was sufficient to prevent USB3.0 device from making contact with the USB3.0 pins in the adapter, and they would only function in USB2.0 mode (a problem I mentioned in the earlier review of the USB3.0 adapters).

The best of all is the SDCBA-C01 – it sits perfectly flush, and the card, when inserted, is flush as well. So you can really leave it, and the card, inside the laptop all the time, making it a really compact way to expand your laptop’s storage capacity.

Picture 1. Top: VIA CardBus SD adapter and card in an A31p. Bottom: SDCBA-C01 CardBus-SD Adapter and Sandisk SDAD-109 ExpressCard-SD Adapter in a T60, both with SD cards inserted.

SDXC Compatibility

Now that SDXC cards over 32GB are becoming more widespread, SDXC compatibility is one of the most important points of a reader. Most of the readers in this round-up could handle the 64GB SDXC in one way or another. The only one that downright didn’t is the BlueProton USB2.0 adapter. One can’t complain at that price point though.

However, not all readers support SDXC equally. The PCIe and USB-based adapters (including the Sandisk ExpressCard) had no problems seeing the 64GB card in all environments. A hotfix installation may be required, depending on your OS and service pack.

However, the PCI-based SDCBA-C01 could only support it under NT6 (Vista/Win7), not under XP.  It is likely that the XP SD Host driver stack does not support SDXC properly. For the same reason, I could not get the PCI-based built-in reader in the X61 to read the card under XP (I conjecture it would work fine in Vista/7, but I could not test it as that laptop only has XP installed).

Now, the 64GB could still be formatted to 32GB, and used as a SDHC card. However, there are some caveats here, depending on the chosen file system. I found that if formatted to exFAT 32GB, the 64GB-capable readers would not see it and require you to format it again to 64GB to function properly. However, formatted to NTFS/FAT32 32GB, it would function fine in all readers, all environments.

So to summarize the findings:

  • USB and PCIe readers work fine with SDXC everywhere
  • PCI-based readers that show as SD adapters and not Mass storage devices only support SDXC under NT6 OSes, not XP
  • The 64GB card can be formatted to 32GB to work everywhere, but one should use NTFS/FAT32 for best compatibility in this case

And two more points about Windows XP:

  • It does not support exFAT out of the box, but installing hotfix KB955704 adds compatibility
  • Its disk management interface (diskmgmt.msc) does not show memory cards attached to SD Host Controllers. You will only see the memory card there if it goes through the USB Mass Storage driver stack. This is a driver stack limitation which was fixed in NT6.

Pre-Boot Environment Support

The USB-based adapters (including the Sandisk ExpressCard, since it just uses the USB pins going to the chipset) are visible in the BIOS, and therefore bootable in any laptop that supports booting from USB (which is any laptop). The PCI (including CardBus) or PCIe-based readers do not seem to be bootable in any of the tested laptops.

Performance – Low-end memory cards

The first test involves the simple microSD, which offers only mediocre performance.

Most devices show pretty consistent speeds of 10-12MB/s read, and 9-9.5MB/s write. This is clearly the maximum the card can deliver. The cheaper Cardbus reader and the built-in PCI-based reader of the X61 fall behind the pack. Whether that is a fluke or not will be seen in the next tests.

Performance – Mid-range memory cards

The next test involves the 4GB SDHC which is rated at 20MB/s.

The results of this tests are more interesting as we begin to see some differentiation between the devices. Both Cardbus adapters show reasonable performance, but the more expensive, and higher quality SDCBA-C01 is somewhat faster. The USB2.0 and ExpressCard (which is also USB2.0) readers show good performance, on par with the faster CardBus device.

One big surprise is the shockingly bad speeds of the X61 built-in reader. It seems to be using a similar Ricoh PCI controller as the SDCBA-C01, and using the same Microsoft driver, but the difference is tremendous. No matter how I tested, I could not squeeze more performance out of the X61 reader, and I have no explanation to this phenomenon.

The PCIe-based readers on the newer laptops have a noticeable advantage, and gain about 3MB/s extra, both in the read and write speeds, over the rest. At this point, they are probably limited by the card itself, so the next test, with an even faster card should be pretty interesting.

Performance – High Speed memory cards

The final and most extensive test involved the SDXC Extreme 64GB SDXC, rated at 45MB/s. In this scenario the card is not likely to be the limiting factor, and should provide a good indication of the maximum speed one can squeeze from each of the reader/writer devices.

Very interesting conclusions can be reached from this test.

The USB2.0-based readers (including the BlueProton, the Sandisk ExpressCard and the Via CardBus/USB) show essentially the same results as in the previous test. Despite the memory card being more than twice as fast, there is no improvement. The practical limit for these devices seems to be around 20MB/s, with the Via CardBus falling slightly behind, especially on write speeds. Without any data to back it up, I can conjecture that the double interface (CardBus and then USB) between the host system and the memory card presents some overhead which affects the speed.

The PCI-based CardBus adapter, SDCBA-C01, does show some improvement, but not much. It is marginally faster than the USB devices, but nothing that would be noticed in practical applications. Furthermore, its performance depends a lot on the CardBus controller – the speeds are good on the T60, but really bad on the X61. It appears that the Ricoh CardBus controller on the X61 is not much better than the built-in SD controller, which again shows atrocious rates.

Things get interesting once you get to the USB3.0 and PCIe readerse. The USB3.0 reader demonstrates much better speeds even when connected to a USB2.0 port. At about 30-33MB/s read and 21-24MB/s write, it appears to be hitting a bottleneck in the USB2.0 controller itself.

Once connected to a USB3.0 controller, the performance is much better. How much depends on the controller – the uPD720202 which was shown to be a better performer than the FL1000 in the the USB3.0 roundup demonstrates it here as well. As always with USB controllers, the speed of the host CPU also matters. The absolute best rates of 47MB/s read and 42MB/s write were achieved through the uPD720201 controller hooked up to an overclocked QX9650 desktop system, which is faster than all the laptops in this review.

Finally, something very interesting is the huge performance difference between the built-in PCIe readers in the T410 and T420. The former showed pretty much the same performance as with the Extreme III 20MB/s card, but the latter was almost twice as fast, on par with the USB3.0 reader! I am puzzled as to the reason for this, as the controllers seem to be very similar. I suspect it may have something to do with the fact that different drivers are used. Ricoh provides its own driver for the T420, but the T410 uses the built-in Microsoft SD driver. It is possible that the Ricoh driver includes some tweaks to unlock the full potential of the controller, but alas, it does not seem to be compatible with the T410, so I could not test this theory.

Conclusion

Almost every one of the reviewed adapters could be useful in its niche. While the PCIe and USB3.0 readers definitely have the performance edge, in most cases they do not directly compete with the PCI/CardBus/USB2.0 adapters, because the majority of older laptops will not feature the new interfaces, while the new ones will have done away with the old ones.

BlueProton SDHC Reader

Advantages: Very cheap, compatible with any laptop/desktop

Disadvantages: Average performance, no SDXC support

Target use: A simple, no-frills adapter to take with you “on the go” that you wouldn’t cry about losing/breaking. However the Realtek USB3.0 is not much more expensive, and is much faster, even in USB2.0 mode.

CardBus Multi-Card Reader

Advantages: Inexpensive, mostly flush with the laptop

Disadvantages: Not 100% flush, card sticks out, average performance

Target use: Hard to think of any. In most cases the SDCBA-C01 is not much more expensive, but provides better performance and build quality. However, if you need SDXC support in WinXP, this may be a better choice, as the SDCBA-C01 has problems with it, due to the limitations of the XP SD driver.

SDCBA-C01 CardBus SDHC/SDXC/SDIO Reader

Advantages: Great build quality, completely flush, very good performance

Disadvantages: Somewhat pricey, performance depends on CardBus controller, no SDXC support in WinXP

Target use: Probably the best CardBus-SD adapter you can find, as it supports all SD memory card standards and even SDIO. However, the performance may suffer in case of poor CardBus implementations, as was demonstrated in the X61. Also, there is no SDXC support under WinXP (OS/driver limitation).

Sandisk SDAD-109 ExpressCard Multi-Card Reader

Advantages: Cheap, good performance, bootable (as it connects to the built-in USB chipset)

Disadvantages: Not 100% flush, card sticks out, wastes ExpressCard slot which may be utilized for faster devices

Target use: If you have an ExpressCard slot and no other use for it, and if you want to boot from SD devices.

Realtek USB3.0 SDXC Reader

Advantages: Best performance, supports microSD without adapter, very cheap for what you get

Disadvantages: Bulky, would block adjacent ports

Target use: If you have fast memory cards, and your built-in reader cannot utilize them fully. Also great for on the go adapter.

Built-in readers versus external ones

If you already have a built-in SD reader – would you benefit from an external one? If you have a modern laptop, like the T410/T420 – the built-in is probably good enough. If you have an older laptop, you may still opt for an external reader, to get better performance. However that really depends on how often you transfer data to/from your memory cards, how much you transfer and how fast your memory card is.

Part 3, Update 1 – T410/T420 PCIe SD readers revisited

While making this survey, I noticed a big performance difference between the built-in SD readers of the T410 and the T420, despite the apparent similarity in hardware. I theorized that it has something to do with the driver provider (Ricoh provides its own driver for the T420, but the T410 uses the standard Microsoft driver). This theory, however, proves false.

I did manage to obtain a driver from Ricoh which is compatible with the SD reader of the T410, namely this one. This driver was originally offered only for certain Sony VAIO notebooks, but it is provided by Ricoh and compatible with any of their card readers with a matching device ID, such as the one in the T410. This appears to be the latest version of that driver available, and it’s from 2010.

With this driver installed, the “SDA Standard Compliant SD Host Controller” changes to “Ricoh PCIe SD Bus Host Adapter”, under “IDE ATA/ATAPI Controllers”.  However, the performance remains basically unchanged.

A further investigation raised the theory that the UHS bus is the likely culprit. Per this link, host devices which do not support the UHS (Ultra High Speed) SD bus will be limited to ~23MB/s throughput, even when the card supports it. These were indeed roughly the numbers that the T410 reader was limited to, and I assumed it was not a coincidence.

From poking around the source code of the Linux SD host drivers I found out that native SD devices (as opposed, for example, to USB-based ones) have a register in their I/O space which indicates which version of the SD spec this support. The offset of this register is 0xFE (see, for instance, Free Electrons Linux Reference). Using RWEverything I took a peek at the relevant offset in the I/O space of the two readers, and lo and behold – the T420/X220 one indicated support of Spec version 3 (value of 0x2 at 0xFE), whereas the T410 reader as well as the CardBus reader (SDCBA-C01) did not. Version 3 is the minimum version indicating UHS-I support, per the SD association.

This is good enough evidence for me to consider this mystery solved. I can also propose, based on this evidence that the *10 series uses the Ricoh R5U231 controller, which does not mention UHS-I support, whereas the *20 series uses the Ricoh R5U232 which does. But this is not 100% certain, since there are other, similar chips mentioned at the Ricoh website for discontinued products.

The bottom line is that the built-in reader of the T420/T520/W520/X220 series significantly outperforms the older revision present in T410/T510/W510 series. If you are considering obtaining an older Thinkpad of that generation, and the performance of the built-in reader is important to you, you should definitely take the difference into account.

Part 3, Update 2 – Even faster SD cards, PCIe and USB3.0 readers

I recently managed to lay my hands on a Delkin 32GB UHS-1 SD633X SDHC card. It is rated for 95MB/s read and 80MB/s write, which is significantly faster than the Sandisk Extreme SDXC that was used for the main review.

So I decided to retest some of the earlier contenders, focusing naturally only on the faster ones: the PCIe Ricoh reader in the X220 (the same as in the T420) and the USB3.0 Realtek Reader. It seemed pointless to test the other readers/interfaces, as the earlier benchmarks clearly indicated their performance limiting even the 45MB/s Sandisk card.

I also added a new contestant – The Delkin USB3.0 Universal Reader, which is basically an external multi-card reader with a USB3.0 upstream connection.

The USB3.0 devices were tested in the X220 (Core i7 @2.8GHz), in the T60 (Core 2 Duo @2.0GHz), and in the QX9650 desktop PC (Core 2 Quad @3.6GHz), for reference.

Delkin SD633X 32GB (95/80MB/s)

Device

Read (seq.)

Write (seq.)

Read (4K)

Write (4K)

Delkin USB3.0 Universal Reader (T60, USB3.0-Exp uPD720202)

77.6MB/s

72.9MB/s

7.4MB/s

0.4MB/s

Realtek SDXC Reader (T60, USB3.0-Exp uPD720202)

78.8MB/s

72.6MB/s

2.9MB/s

0.3MB/s

Built-in SD Reader (X220, PCIe QM67)

86.0MB/s

45.8MB/s

8.9MB/s

0.3MB/s

Delkin USB3.0 Universal Reader (X220, USB3.0 uPD720200)

89.5MB/s

82.1MB/s

7.4MB/s

0.4MB/s

Realtek SDXC Reader (X220, USB3.0 uPD720200)

90.1MB/s

82.5MB/s

2.7MB/s

0.3MB/s

Delkin USB3.0 Universal Reader (Desktop, USB3.0 uPD720201)

83.3MB/s

76.9MB/s

8.8MB/s

0.4MB/s

Realtek SDXC Reader (Desktop, USB3.0 uPD720201)

89.9MB/s

79.9MB/s

3.0MB/s

0.4MB/s

The Delkin and Realtek USB3.0 readers show very similar performance when it comes to sequential read/write speed, with the Realtek slightly pulling ahead on the read speed. Remarkably, when it comes to 4K random read, it’s the Delkin reader that trumps the Realtek reader, being 2-3 times faster. 4K random write is nothing to speak about in all cases, but it is probably due to the card itself.

The X220 built-in reader manages to keep up as far as read speeds are concerned, but write speed leaves much to be desired – only hovering around 45MB/s versus 80MB/s for the USB 3.0 devices. However, unless you user very fast UHS-I cards and frequently need to copy large files from the laptop to the card, investing in an external reader makes no sense.

Finally, once again we see that the CPU speed plays an important factor on USB performance, with the much slower T60 lagging behind the desktop and the X220. The PCIe revision makes a smaller difference in comparison – the Gen1 desktop manages to almost keep up with the Gen2 laptop.

Part 4

Leave a comment