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

Are DMA modes possible in CompactFlash in TrueIDE mode?
Started by ●April 9, 2006
Reply by ●April 9, 20062006-04-09
Darin Johnson wrote:> 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."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> 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?If I remember correctly, SanDisk's Extreme III cards actually support up to UDMA-4.> 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.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 by ●April 9, 20062006-04-09
Tim Clacy wrote:> > and get more throughput. I'm using the ATA controller on an MPC5200 > > If you're stuck in a PC environment, you probably don't have much controlMPC5200 is a PowerPC device intended for automotive applications.
Reply by ●April 9, 20062006-04-09
Un bel giorno Darin Johnson digit�:> 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)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 by ●April 9, 20062006-04-09
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 by ●April 10, 20062006-04-10
dalai lamah wrote:> 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. :)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, <http://www.vl.com.au> 21-25 King St, Rockdale, 2216 Ph: +612-9599-3255 Fax: +612-9599-3266
Reply by ●April 12, 20062006-04-12
Un bel giorno Mark McDougall digit�:> Ridata, Pretec, Kingmax, Sagatek all have CF that support UDMA mode 2.Thanks, I'll give them a try.> 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.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
