The performances of my video processing project by imx6 seem to be limited by by the memory bandwidth.
I have benchmarked the memory bandwidth and the result is just 10% of the theoretical value.
Freescale SABRE board (MCIMX6Q-SDB)
Memory. 1 GB DDR3 SDRAM up to 533 MHz (1066 MTPS)
Memory 1GBytes of 64-bit wide DDR3 @ 532MHz
Ubuntu L3.0.35_4.0.0_UBUNTU_RFS / or LTIB 4.0.0 / or Original Demo SD
Theoretical memory bandwidth:
DDR3 1066 x 64 bits = > 1066*8 = 8528 MB/s
Measured memory bandwidth:
I use the mbw tool. I have checked the source, and the memcpy method is the 1 (0 is loop 'for', and 2 is a small mem block cached).
# mbw -t1 100
AVG Method: DUMB Elapsed: 0.24973 MiB: 100.00000 Copy: 400.426 MiB/s
This 'memcpy' reads and writes the memory, and the real memory bandwidth is 2x400 = 800 MB/s, just 10% of the theoretical value.
I made my own memory test project, and the results are equivalent.
I guess the display used part of memory bandwidth, but where is the other 90% memory bandwidth ?
If this result is normal, this limitation stop my project.
Is there any ideas to help me go on?
Thank you very much.