Forums

Are DMA modes possible in CompactFlash in TrueIDE mode?

Started by Darin Johnson April 9, 2006
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

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.
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 control
MPC5200 is a PowerPC device intended for automotive applications.
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
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

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
Un bel giorno Mark McDougall digit&#2013265922;:

> 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