arm9 memory throughput



Hi folks.

I'm working on an ARM9 system (the DaVinci). Yesterday a workmate and I made some tests to measure the memory speed of the system and we wonder a bit about the numbers we get.

In short the system during our tests looked like this:

* RAM is DDR2 at roughly 160Mhz
* The CPU is an ARM9 and runs at roughly 300Mhz
* We disabled all components that may access the RAM (e.g. video out, DSP ect).

In our tests we cleared a 3Mb chunk of memory using 32 bit writes and measured a troughput of 200 Mb/s. We tried everything possible to improve the speed, e.g. unroll the loop, use store-multiple instructions ect. We always get the 200Mb/s. We can even put up to four nops between the writes and the numbers don't change.


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?

Thanks
Nils

.



Relevant Pages

  • Next July 27: boot failure(hang) on x86_64 box.
    ... Freeing unused kernel memory: 1360k freed ... ACPI: PM-Timer IO Port: 0x488 ... CPU: L2 Cache: 1024K ... # AX.25 network device drivers ...
    (Linux-Kernel)
  • [PATCH] Document Linuxs memory barriers [try #3]
    ... The attached patch documents the Linux kernel's memory barriers. ... I've tried to get rid of the concept of memory accesses appearing on the bus; ... barring implicit enforcement by the CPU. ...
    (Linux-Kernel)
  • Oops in 2.6.28-rc9 and -rc8 -- mtrr issues / e1000e
    ... Bios 1.04beta did show correct memory sizing in dmidecode, ... I hope this is as simple as me doing something glaringly wrong in the kernel ... DMI present. ... CPU: L2 cache: 6144K ...
    (Linux-Kernel)
  • Re: read vs. mmap (or io vs. page faults)
    ... not fit in main memory, and there are overheads related to the heuristics ... But because the CPU is underutilized, ... reasonably sized user buffer). ... You have to measure the actual overhead to see what the actual cost is. ...
    (freebsd-questions)
  • Sun Fire v440 hardware problem (cant get ok>)
    ... 0>Init CPU ... 1>Set JBUS config reg ... 0>Probe and Setup Memory ... Could not read diag-level from NVRAM! ...
    (SunManagers)