Are DMA modes possible in CompactFlash in TrueIDE mode?

I've done an ATA IDENTIFY on several high speed CompactFlash devices, using True-IDE mode, and none of them report any DMA capability at all. This is a bit worrying. (ie, 2GB Lexar Media drives for example)

The CFA 3.0 spec is confusing in this regard. Sometimes it says that DMA modes are supported, but at other times other times there are implications that DMA is not supported. For instance, section

6.2.1.6.11 has the line "Bit 8 shall be set to 0. Read/Write DMA commands are not currently permitted on CF cards."

So what's the scoop here? Am I just unlucky and am trying a whole lot of fast CFs that are only fast when used with PCMCIA? Are there CFs out there that support UDMA-2 with TrueIDE?

I'm only getting 6MB/s with PIO-4, with an optimized copy loop (contiguous sectors, multimode). DMA was supposed to help save this and get more throughput. I'm using the ATA controller on an MPC5200 cpu.

-- Darin Johnson

Reply to
Darin Johnson
Loading thread data ...

I think that is referring to 'Word DMA'. The following two sections are probably more relevent to what you're looking for:

6.2.1.6.18 Word 63: Multiword DMA Transfer 6.2.1.6.26 Word 88: Ultra DMA Modes Supported and Selected

If I remember correctly, SanDisk's Extreme III cards actually support up to UDMA-4.

If you're stuck in a PC environment, you probably don't have much control over PIO mode timings and DMA will give better throughput. If you're in an embedded environment and have complete control, you should be able to get >20MB/s using PIO mode 6.

Reply to
Tim Clacy

MPC5200 is a PowerPC device intended for automotive applications.

Reply to
larwe

Un bel giorno Darin Johnson digitò:

I've tried several models of CompactFlash (Sandisk "standard", Sandisk Extreme III, Kingston Elite Pro, Transcend 120x, etc...) as boot drive for a PC104 device, and I didn't find one that worked in UDMA. I suppose it isn't mandatory by standards; if there is some manufacturer that implemented it anyway, I'd be glad to know it. :)

--
asd
Reply to
dalai lamah

I think most of the CFs I tried were manufactured before the CFA 3.0 standard, which may explain some things. It's disappointing that lots of them claim to be high speed but don't seem to be. Most that I tried were Lexar.

I did find a plain SanDisk CF that supported MDMA-2 though, so there's hope that some later models might do UDMA.

-- Darin Johnson

Reply to
Darin Johnson

We've actually found the opposite - *more* cards support UDMA than MDMA!

Sandisk (Ultra-II, Extreme-III), Simpletec support MDMA mode 2. Ridata, Pretec, Kingmax, Sagatek all have CF that support UDMA mode 2.

FWIW in general the performance bottleneck would appear to be the flash access itself, rather than the ATA I/O (obviously on writes but also on reads) as sustained performance was often well below theoretical transfer rates for both MDMA and UDMA mode 2.

Regards,

--
Mark McDougall, Engineer
Virtual Logic Pty Ltd, 
 Click to see the full signature
Reply to
Mark McDougall

Un bel giorno Mark McDougall digitò:

Thanks, I'll give them a try.

Of course! If I remember correctly, even PIO mode 4 can give a sustained T/R of 16 MB/s. My concern isn't the transfer rate, but mostly the CPU occupation.

--
asd
Reply to
dalai lamah

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.