66ak2h12芯片,自己的单板,有两块内存,一个是2G,一个是8G, DDR3A_REMAP_EN 管教应该是悬空的,内部下拉。
系统启动后,显示的/proc/iomem(内存部分如下):
80000000-9fffffff : System RAM (boot alias)
a0000000-afffffff : pcie_mem
b0000000-b7ffffff : System RAM (boot alias)
f0000000-ffffffff : System RAM (boot alias)
800000000-81fffffff : System RAM
800008000-80092f023 : Kernel code
80097c000-800a0d143 : Kernel data
830000000-837ffffff : System RAM
838000000-86fffffff : CMEM
870000000-8ffffffff : System RAM
980000000-99fffffff : CMEM
9a0000000-9ffffffff : System RAM
测试20kB数据通过memcpy拷贝速率,测试结果如下,如果通过mmap映射2G DDR,则拷贝速率非常慢,而malloc两块内存的拷贝非常快,请问什么原因?测试结果如下:另外,拷贝数据到2G DDR似乎也比较快。
mmap /dev/mem内存的地址为0xd0000000,在下面的测试结果中为fmem
root@k2hk-evm:~# ./mem
memP1 addr = 0xb6fd2000!
memP2 addr = 0xb6fcc000!
mallocP1 addr = 0x00021008!
mallocP2 addr = 0x00026010!
memcpy malloc -> fmem!
i = 100000, blocksize = 20480, dur = 3(s) 163514(us)!
memcpy fmem -> malloc!
i = 100000, blocksize = 20480, dur = 92(s) 300060(us)!
memcpy malloc -> malloc!
i = 100000, blocksize = 20480, dur = 0(s) 254845(us)!
memcpy fmem -> fmem!
i = 100000, blocksize = 20480, dur = 183(s) 6233(us)!
由于单板作为PCIe EP把PCIe地址空间映射到2G DDR,所以这个性能是不够的,请问,这个问题是如何造成的?
这里是采用sdk附带的例程edmabw运行后的结果,请问这个测试结果是否有问题
Single channel EDMA bandwidth measured in GB/s
==============
From DSP Core: 0 1 2 3 4 5 6 7
==============
ddr => ddr : 0.030 0.030 0.048 0.047 0.042 0.042 0.048 0.047
ddr => msmc : 0.104 0.111 0.124 0.123 0.126 0.125 0.128 0.127
ddr => l2 : 0.105 0.112 0.130 0.129 0.130 0.129 0.130 0.129
msmc => ddr : 0.049 0.049 0.078 0.079 0.077 0.077 0.079 0.079
msmc => msmc : 0.293 0.295 0.294 0.295 0.295 0.295 0.468 0.462
msmc => l2 : 0.295 0.296 0.296 0.296 0.296 0.296 0.297 0.295
l2 => ddr : 0.049 0.050 0.081 0.080 0.080 0.080 0.081 0.082
l2 => msmc : 0.294 0.296 0.295 0.295 0.296 0.296 0.296 0.295
l2 => l2 : 0.278 0.279 0.279 0.280 0.295 0.295 0.279 0.277