Tool/software: Code Composer Studio
from spna165.pdf L1 cache 600 MHz L2 cache 300 MHz External memory~100 MHZ memory
so i test this use the same function ,change site of the in put buffer and comparison use cycles
this is the cmd
-stack 0x4000
-heap 0x2000000
MEMORY {
L1P_SRAM : origin = 0x00E00000, len = 0x8000
L1D_SRAM : origin = 0x00F00000, len = 0x8000 /* 16 KB SRAM */
// L1D_CACHE : origin = 0x00F04000, len = 0x4000 /* 16 KB cache */
// L1D_CACHE : origin = 0x00F00000, len = 0x8000 /* 16 KB cache */
L2_SRAM : origin = 0x00800000, len = 0x48000 /* SARAM in L2, = 256 + 32 - 128 = 160 KB*/
// L2_CACHE : origin = 0x00828000, len = 0x20000 /* Cache for L2, which is configured as 128 KB*/
DSP2_L2_SRAM : origin = 0x40800000, len = 0x48000
SL2_SRAM : origin = 0x5B000000, len = 0x40000
EXT_MEM_CACHE : origin = 0x80000000, len = 0x06000000 /* DSP Used cachable area */
EXT_MEM_heap : origin = 0x86000000, len = 0x02000000 /* DSP Used cachable area */
}
SECTIONS
{
vectors :> EXT_MEM_CACHE
.cio :> EXT_MEM_CACHE
.bss :> EXT_MEM_CACHE ////usually reserves space for uninitialized variables
.text :> EXT_MEM_CACHE //////contains executable code
.cinit :> EXT_MEM_CACHE
.const :> EXT_MEM_CACHE
.far :> EXT_MEM_CACHE
.fardata :> EXT_MEM_CACHE /////usually contains initialized data
.neardata :> EXT_MEM_CACHE ///////usually contains initialized data
.rodata :> EXT_MEM_CACHE
.sysmem :> EXT_MEM_CACHE
.switch :> EXT_MEM_CACHE
.L2SramSect :> L2_SRAM
.stack :> L2_SRAM
.heap :> EXT_MEM_heap
}
input = (int *)0x00F00000; for L1 1300000
input = (int *)0x00800000; for L2 1300000
input = (int *)0x80000000; for DDR 12000000
result is L1 and L2 same DDR much more
so problem is why L1 not faster than L2?