This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

cortex-a53 A64模式 如何发出INCR(2 or 4)传输去访问normal non-cacheable属性空间

Hi,

     在使用cortex-a53访问normal non-cacheable属性空间时遇到如下问题,麻烦专家们帮忙解答,多谢

    1.cortex-a53访问normal non-cacheable属性的地址空间,使用连续的ldp,发出的读传输都是arlen=0的传输,如何才能发出INCR(2 or 4)的读传输呢?
    2.cortex-a53访问normal non-cacheable属性的地址空间,使用连续的stp,目前发出的写传输均是awlen>0的传输,想问一下,什么情况下连续的stp发出的写传输awlen会是0呢?

Parents
  • 1:在AArch64下,使用LDP访问normal non-cacheable memory,如果地址是对齐的,AXI的transaction attribute和一条LDP指令传输的size是match的。例如:如果使用 ldp  x0, x1, [x10],会看到一个single 128bit的read。如果使用ldp  q0, q1, [x10], 会看到INCR2 128bit的一个read。(AArch64应该很难发INCR4的burst)。

    2: 对normal memory(包括normal non-cacheable)的写操作,处理器都会尝试在Store buffer进行merge之后再往外发,所以你看到的现象是符合预期的。如果想让A53发single的wirte, 可以在指令之间插dmb或者dsb指令。

Reply
  • 1:在AArch64下,使用LDP访问normal non-cacheable memory,如果地址是对齐的,AXI的transaction attribute和一条LDP指令传输的size是match的。例如:如果使用 ldp  x0, x1, [x10],会看到一个single 128bit的read。如果使用ldp  q0, q1, [x10], 会看到INCR2 128bit的一个read。(AArch64应该很难发INCR4的burst)。

    2: 对normal memory(包括normal non-cacheable)的写操作,处理器都会尝试在Store buffer进行merge之后再往外发,所以你看到的现象是符合预期的。如果想让A53发single的wirte, 可以在指令之间插dmb或者dsb指令。

Children