Re: arm9 memory throughput
- From: CBFalconer <cbfalconer@xxxxxxxxx>
- Date: Thu, 31 Jul 2008 09:41:57 -0400
Nils wrote:
.... snip ...
Doing the same using DMA I get numbers around 1.3Gb/s on the same
system.
I know that I never get the full theoretic memory throughput but
200mb/s is a lot less than we have expected. Now I want to
understand why this happends. Unfortunately I know s**t about
memory interfaces, memory latencies and all the other stuff.
Could somone please explain me what the memory and CPU does
between the writes?
Let's assume a simple testing mechanism. The actual assembly code
will be something like:
call recordtime
mov r1, #I; number of tests to apply
mov r2, A1; starting address to use
mov r3, #0; initialize counter
; start of loop
lp: mov f4, r2+r3; where to write
mov (r4), #0; what we are measuring!!!
inc r3
cmp r3, r1
jnz lp; do it again
; end of loop
call recordtime
call computeanddisplay
Now look at the work done within the loop compared to the writes.
Each instruction requires a memory read just to access it. There
are 5 of these. At best the COU requires no time to execute
things, in which case there is already a 6 : 1 reduction in writing
speed from memory access speed.
Smart use of caches etc. can improve this ratio. It will never
become 1. And any such improvement costs money.
--
[mail]: Chuck F (cbfalconer at maineline dot net)
[page]: <http://cbfalconer.home.att.net>
Try the download section.
.
- Follow-Ups:
- Re: arm9 memory throughput
- From: John Devereux
- Re: arm9 memory throughput
- References:
- arm9 memory throughput
- From: Nils
- arm9 memory throughput
- Prev by Date: Re: abt acquiring emg signals..
- Next by Date: Re: computer-driven fans II
- Previous by thread: Re: arm9 memory throughput
- Next by thread: Re: arm9 memory throughput
- Index(es):
Relevant Pages
|