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

ARMv8 STNP指令在AXI4总线上如何实现?

Hi 专家们!有如下3个问题请教一下:

1、一直没有弄明白STNP 在总线层面是如何实现的;对于LDNP指令,查看AXI4\ACE协议手册看到有ReadOnce transaction,其特点与LDNP完全吻合,但一直没有找到与STNP相对应的transaction。

2、MAIR寄存器中对于Normal memory属性的描述有transient和non-transient,后者是否就是用于实现LDNP/STNP的呢?

3、ARMv8手册中所定义的Normal non-Cacheable类型带不带Bufferable属性呢?因为手册中没有明说,而AXI4总线上对于Normal non-Cacheable Bufferable和non-Bufferable都支持。


  • 抱歉,回复的有点慢了。

    1、一直没有弄明白STNP 在总线层面是如何实现的;对于LDNP指令,查看AXI4\ACE协议手册看到有ReadOnce transaction,其特点与LDNP完全吻合,但一直没有找到与STNP相对应的transaction。

    Answer: LDNP/STNP并不影响总线上的bahevior ,假设配置的inner/outer cache attributes是normal memory, WBRWA, 那么总线上还是会看到AxCACHE=0xf.

    2、MAIR寄存器中对于Normal memory属性的描述有transient和non-transient,后者是否就是用于实现LDNP/STNP的呢?

    Answer: No。我的理解是这是两种实现non-temporal access的方式。一种通过MMU,一种通过指令。

    3、ARMv8手册中所定义的Normal non-Cacheable类型带不带Bufferable属性呢?因为手册中没有明说,而AXI4总线上对于Normal non-Cacheable Bufferable和non-Bufferable都支持。

    Answer: 虽然AXI协议中有Normal non-Cacheable non-Bufferable的定义, 但Normal memory对于processor来说始终都是bufferable的。(至少目前为止是这样。)