gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Beginners > dma transfer speed - vs asm copies

#84684 - Ant6n - Wed May 24, 2006 4:33 am

Hey,

in the specs it says, regarding the speed of dma transfers:

"Transfer Rate/Timing
Except for the first data unit, all units are transferred by sequential reads and writes. For n data units, the DMA transfer time is:

2N+2(n-1)S+xI

Of which, 1N+(n-1)S are read cycles, and the other 1N+(n-1)S are write cycles, actual number of cycles depends on the waitstates and bus-width of the source and destination areas (as described in CPU Instruction Cycle Times chapter). Internal time for DMA processing is 2I (normally), or 4I (if both source and destination are in gamepak memory area)."

does anybody know what exactly N,n,S,x and I refers to?
why should I use dma as oppossed to load and store words assembler directives (unrolled loop); which is faster?

thx
anton

#84690 - wintermute - Wed May 24, 2006 7:02 am

http://forum.gbadev.org/viewtopic.php?t=5275
_________________
devkitPro - professional toolchains at amateur prices
devkitPro IRC support
Personal Blog

#84692 - Ant6n - Wed May 24, 2006 7:32 am

sorry, ok, so

n - number of words/halfwords transferred
N - nonsequencial waitstate
S - sequential waitstate
I - internal cycle
yes?

still doesnt tell me what the xI is.
so at the end an ldm/stm has about the same speed (arm in internal ram), i take it?
that still doesnt really tell me why i should us the one or the other...

#84772 - poslundc - Wed May 24, 2006 5:52 pm

I could not find the passage you quoted in either GBATEK or the Cowbite Virtual Hardware Spec. It's hard to say what it means without having the source document to examine.

If you are quoting an official Nintendo document, they are classified and under copyright, and considered off-limits in this forum.

Dan.

#84790 - Ant6n - Wed May 24, 2006 8:30 pm

official Nintendo document? yeah right...

http://nocash.emubase.de/gbatek.htm#dmatransfers

the last point...
...just noticed it actually says it there, its either 2I, or 4I

#84791 - thegamefreak0134 - Wed May 24, 2006 8:30 pm

Quote:
I could not find the passage you quoted in either GBATEK or the Cowbite Virtual Hardware Spec. It's hard to say what it means without having the source document to examine.

If you are quoting an official Nintendo document, they are classified and under copyright, and considered off-limits in this forum.

Dan.


It's in GBATEK under DMA Transfers>>Transfer Rate/Timing.
_________________
What if the hokey-pokey really is what it's all about?

[url=http:/www.darknovagames.com/index.php?action=recruit&clanid=1]Support Zeta on DarkNova![/url]

#84801 - poslundc - Wed May 24, 2006 9:13 pm

thegamefreak0134 wrote:
Quote:
I could not find the passage you quoted in either GBATEK or the Cowbite Virtual Hardware Spec. It's hard to say what it means without having the source document to examine.

If you are quoting an official Nintendo document, they are classified and under copyright, and considered off-limits in this forum.

Dan.


It's in GBATEK under DMA Transfers>>Transfer Rate/Timing.


Ah, I found it in the http://www.work.de/nocash/gbatek.htm version... the version at http://www.work.de/nocash/gbatek.htm doesn't have that part... it must be legacy Internet.

So, from the look of it the "x" is either 2 or 4 depending on what regions you are reading from and writing to.

Dan.