16

xucvai · 2021年05月26日

ARM系列 -- ACE(二)

谦虚是不可缺少的品德。
-- 孟德斯鸠

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,包含全部处理器。

WeChat Image_20210526134621.png

图1  共享域示意图

ACE支持分布式虚拟存储(distributed virtual memory, DVM)。下图中,master发出的是虚拟地址(VA),SMMU负责把虚拟地址转换成物理地址(PA)

WeChat Image_20210526134632.png

图2  虚拟存储系统

ACE相比AXI增加了一些信号和几组通道。先来看增加的信号,在读地址通道(read address channel,AR)多出的信号如下:

WeChat Image_20210526134641.png

在写地址通道(write address channel,AW)多出的信号:

WeChat Image_20210526134704.png

在读数据通道(read data channel,R)多出的信号:

WeChat Image_20210526134652.png

我们慢慢来看这些信号都是做什么用的。先说ARDOMAIN和AWDOMAIN。刚刚介绍过,ACE引入了一个可共享域(shareability domain)的概念。所谓的可共享域,就是说在同一个域内的主机,需要把有关一致性(coherency)和栅障(barrier)的事务传递给其它的主机。AxDOMAIN(x表示R或W,以下同)的定义如下:

WeChat Image_20210526134713.jpg

Non-shareable好理解,就是不与其它处理器共享;对于inner域的所有处理器来说,一个处理器的操作会被这个域内其它处理器看到,但是不会影响别的inner域;对于outer域,可以由多个inner域组成,如果一个处理器的操作影响到outer域,那么这个操作会被outer域包含的所有inner域看到;system也比较简单了,就是整个系统。定义这么多域的作用,其实就是要确定某一个操作,需要广播到哪一个层次。

搭配着AxCACHE信号,有了下表的组合:

WeChat Image_20210526134723.jpg

ACE协议是支持barrier的,到了ACE5,barrier就被拿掉了,以后再说。对于ARBAR和AWBAR信号来说,其含义如下图所定义:

WeChat Image_20210526134733.jpg

接下来是ARSNOOP和AWSNOOP,其含义可以分类为:

  • Non-snooping:这些传输事务不需要监听其它处理器
  • Coherent:这些事务要送到其它处理器,因为这些处理器的cache中有该内存位置的备份
  • Memory update:这些事务更新内存,但是不需要监听其它处理器
  • Cache maintenance:这些事务要送到其它处理器,因为这些处理器的cache中有该内存位置的备份。这些事务也要传输给下游的cache
  • Barrier:这些事务建立了其他事务之间的顺序
  • DVM:这些事务是有关DVM(distributed virtual memory)的操作

结合ARBAR,ARDOMAIN和ARSNOOP,读地址控制信号组合如下表:

WeChat Image_20210526134743.jpg

同样,AWBAR,AWDOMAIN和AWSNOOP的组合如下表:

WeChat Image_20210526134753.jpg

至于AWUNIQUE信号,与各种写入事务一起使用,以改进较低级别缓存层次结构(如L3或系统级缓存)的操作。

WeChat Image_20210526134803.jpg

ACE在AXI基础上增加了三个通道,snoop地址通道(snoop address channel,AC),snoop响应通道(snoop response channel,CR)和snoop数据通道(snoop data channel,CD),如下面几个表所示。

WeChat Image_20210526134812.jpg

WeChat Image_20210526134820.jpg

WeChat Image_20210526134829.jpg

对于处理器而言,CD通道是一个可选的输出通道。处理器通过此通道发出snoop数据,比如read snoop事务。

ACE额外支持两个确认信号:

WeChat Image_20210526134841.jpg

先这样吧,下周接着整\~\~\~

【未完,待续】

作者:老秦谈芯
来源:https://mp.weixin.qq.com/s/7P8PabaKS1dub2rSB4WL3Q
qrcode_LaoQinTanXin_1.jpg

相关文章推荐

更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
7927
内容数
82
Arm AMBA协议集,APB,AHB,AXI,CHI等相关公开课回放及文章
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息