谦虚是不可缺少的品德。
-- 孟德斯鸠
ARM引入了一个概念,共享域(shareability domains.),包含以下几种:
- Inner shareable,意味着它适用于整个内部可共享域。这表示该domain内的处理器之间可以相互share数据。一个系统可以有多个inner shareable domains,并且当某个操作影响到其中一个inner shareable domain时,它并不会影响到其它的inner shareable domain。
- Outer shareable,意味着它适用于内部可共享和外部可共享域。一个outer shareable domain可以由一个或多个inner shareable domain组成,并且当一个操作影响到outer shareable domain时,也会影响到其下所有的inner shareable domain。
- Non-shareable,表示相关区域只能给指定的处理器访问。
- Full System,包含全部处理器。
图1 共享域示意图
ACE支持分布式虚拟存储(distributed virtual memory, DVM)。下图中,master发出的是虚拟地址(VA),SMMU负责把虚拟地址转换成物理地址(PA)
图2 虚拟存储系统
ACE相比AXI增加了一些信号和几组通道。先来看增加的信号,在读地址通道(read address channel,AR)多出的信号如下:
在写地址通道(write address channel,AW)多出的信号:
在读数据通道(read data channel,R)多出的信号:
我们慢慢来看这些信号都是做什么用的。先说ARDOMAIN和AWDOMAIN。刚刚介绍过,ACE引入了一个可共享域(shareability domain)的概念。所谓的可共享域,就是说在同一个域内的主机,需要把有关一致性(coherency)和栅障(barrier)的事务传递给其它的主机。AxDOMAIN(x表示R或W,以下同)的定义如下:
Non-shareable好理解,就是不与其它处理器共享;对于inner域的所有处理器来说,一个处理器的操作会被这个域内其它处理器看到,但是不会影响别的inner域;对于outer域,可以由多个inner域组成,如果一个处理器的操作影响到outer域,那么这个操作会被outer域包含的所有inner域看到;system也比较简单了,就是整个系统。定义这么多域的作用,其实就是要确定某一个操作,需要广播到哪一个层次。
搭配着AxCACHE信号,有了下表的组合:
ACE协议是支持barrier的,到了ACE5,barrier就被拿掉了,以后再说。对于ARBAR和AWBAR信号来说,其含义如下图所定义:
接下来是ARSNOOP和AWSNOOP,其含义可以分类为:
- Non-snooping:这些传输事务不需要监听其它处理器
- Coherent:这些事务要送到其它处理器,因为这些处理器的cache中有该内存位置的备份
- Memory update:这些事务更新内存,但是不需要监听其它处理器
- Cache maintenance:这些事务要送到其它处理器,因为这些处理器的cache中有该内存位置的备份。这些事务也要传输给下游的cache
- Barrier:这些事务建立了其他事务之间的顺序
- DVM:这些事务是有关DVM(distributed virtual memory)的操作
结合ARBAR,ARDOMAIN和ARSNOOP,读地址控制信号组合如下表:
同样,AWBAR,AWDOMAIN和AWSNOOP的组合如下表:
至于AWUNIQUE信号,与各种写入事务一起使用,以改进较低级别缓存层次结构(如L3或系统级缓存)的操作。
ACE在AXI基础上增加了三个通道,snoop地址通道(snoop address channel,AC),snoop响应通道(snoop response channel,CR)和snoop数据通道(snoop data channel,CD),如下面几个表所示。
对于处理器而言,CD通道是一个可选的输出通道。处理器通过此通道发出snoop数据,比如read snoop事务。
ACE额外支持两个确认信号:
先这样吧,下周接着整\~\~\~
【未完,待续】
作者:老秦谈芯
来源:https://mp.weixin.qq.com/s/7P8PabaKS1dub2rSB4WL3Q
相关文章推荐
更多IC设计技术干货请关注IC设计技术专栏。