知乎用户
ljgibbs
授权转发
本系列我想深入探寻 AXI4 总线。不过事情总是这样,不能我说想深入就深入。当前我对 AXI总线的理解尚谈不上深入。但我希望通过一系列文章,让读者能和我一起深入探寻 AXI4。
声明1:部分时序图以及部分语句来自 ARM AMBA 官方手册
(有的时候感觉手册写得太好了,忍不住就直接翻译了。。)
声明2:AXI 总线是 ARM 公司的知识产权
备注:
-
下载手册可以到ARM官网搜AMBA ,需要注册 ARM 账号。官方手册developer.arm.com
-
百度文库应该有中文翻译版本。
事务类型与属性
AXI 协议中定义了一组信号表示读写传输事务的类型,分别为 ARCACHE 以及 AWCACHE,合称为 AXCACHE。两者控制了
- 传输事务在整个系统中如何进行(How a transaction progresses through the system)
- 系统缓存对传输事务的操作(How any system-level caches handle the transaction)
AXI 协议中存在两类主机:存储从机(Memory Slave)与外设从机(Peripheral Slave)。
我们协议中传输事务属性主要是为存储从机准备的礼物,存储从机必须支持所有的事务属性信号。
而对于外设从机,支持哪些属性信号,就看着办了,协议只有一个要求:外设从机必须完成整个传输事务,哪怕存在其不支持的某个事务属性信号。
外设从机对于属性信号的支持以及相应的访问方式(method of access)由具体实现决定(IMPLEMENTATION DEFINED),一般设计者会将支持的方式列于该从机的规格书中,从机也只对所支持访问方式进行正确响应。
极端情况下,从机接收到一个不支持的访问方式,然后 GG (比如崩溃)了,这是可以的。但是一定一定要完成这次的传输事务后再 GG,以防止整个系统死锁。
协议也不要求从机支持复活机制。(continued correct operation is not required)
系统级缓存
注意