I have a Sandisk SDHC 4GB Class 2 memory card, and I have benchmarked its reading speed with Palimpsest Disk Utility, under Linux and with my Acer Travelmate 5720G laptop.
These are the speeds when it is inserted in the builtin card reader of my laptop:

While these instead are the values obtained while using an external USB reader (similar to the one in the image at the bottom of this question):

As you can see, in comparison with the USB reader, the speed is basically halved when using the builtin reader, and this behaviour sounds strange to me.
Shouldn't be the builtin reader be faster, or at least of equal speed? After all, with the external USB reader there is at least one extra step if compared with the builtin one.
I thought that the bottleneck was caused by the USB reader, but apparently it is not the case.
EDIT Here are the specs of the SD reader
product: PCIxx12 SDA Standard Compliant SD Host Controller [104C:803C]
vendor: Texas Instruments [104C]
bus info: pci@0000:0f:06.3
version: 00
width: 32 bits
clock: 33MHz
capabilities: Power Management, bus mastering, PCI capabilities listing
configuration: driver: sdhci-pci latency: 57 maxlatency: 4 mingnt: 7
resources: irq: 22 memory: fc006800-fc0068ff
and it is attached to this PCI bridge
product: 82801 Mobile PCI Bridge [8086:2448]
vendor: Intel Corporation [8086]
bus info: pci@0000:00:1e.0
version: f3
width: 32 bits
clock: 33MHz
capabilities: pci, subtractive_decode, bus mastering, PCI capabilities listing
resources: ioport: 6000(size=4096) memory: fc000000-fc0fffff ioport: c4000000(size=67108864)
The USB controller interface instead should be this one:
product: 82801H (ICH8 Family) USB2 EHCI Controller #1 [8086:2836]
vendor: Intel Corporation [8086]
bus info: pci@0000:00:1d.7
version: 03
width: 32 bits
clock: 33MHz
capabilities: Power Management, Debug port, Enhanced Host Controller Interface (USB2), bus mastering, PCI capabilities listing
configuration: driver: ehci_hcd latency: 0
resources: irq: 23 memory: fc304400-fc3047ff
Sample USB card reader
