The right interface makes all the difference

The Fujitsu Stylistic LT C-500 has a single PCMCIA/CardBus Type II slot, and a Compact Flash slot which are controlled by a Texas Instruments PCI1420 CardBus controller. Since I am now using a CF card for the hard drive, I wanted to compare the performance of the CF card through the on board IDE controller and the CF/PCMCIA slots. After inserting the card into the CF slot (which is hidden behind a door, which can be closed again after inserting the card), I used hdparm to check the capabilities of the card in that slot. Unfortunately, it reported DMA was not available, but none of the pio modes were flagged as what were being used. Checking dmesg showed that the kernel was only using PIO0, and trying to force a different PIO mode with “hdparm -p 1” failed. PIO0 has a maximum transfer rate of 3.3 MB/sec according to Wikipedia, and is more CPU intensive then DMA/UDMA. This all combined for some pretty poor performance, as seen in the table below (all tests done with the same model CF card):

Connection Block write Block read Random seeks
Internal 44-pin IDE (UDMA2) 5.9 MB/sec 23.0 MB/sec 305.5 per second
Compact Flash slot (PIO0) 1.2 MB/sec 1.6 MB/sec 20.9 per second
PC Card (PIO0) 1.3 MB/sec 1.5 MB/sec 20.8 per second

The testing in the PC Card slot was done with an CF to PCMCIA adapter card. I don’t believe there is any logic in this adapter, it should just be a pin adapter. I don’t know why the seeks dropped down so much when going through the PCMCIA controller, there must be some overhead in the controller. The lesson learned is don’t even consider RAIDing the internal drive with a PCMCIA mounted CF card, or using the CF card slot for swap.

Leave a Comment