Edward 4年前提问
0
5-1 ACE第一部分的一些问题
  1. CCI是基于ACE协议的总线,采用的是crossbar的结构。CCN是基于CHI的总线,采用的是RING结构。CMN是基于CHI-B的总线,采用的是MESH结构。以上这些理解方式正确吗?那NOC是什么总线呢?

  2. ACE协议是用于系统中连接在总线的各个master上的coherent问题,而对于一个cluster或者一个拥有Multi core的processor内部的多个cache之间的coherent问题是由SCU模块解决的,这个理解正确吗?

  3. 讲义第7页提到,DVM messages are only sent between masters in the same inner shareable domain。请问这里inner shareable domain是什么意思?

  4. 讲义第7页提到,CCI does not differentiate inner or outer shareable,请问讲师这里是想表达CCI不能区分inner或者outer domain这个意思吗?但是ACE接口上不是有Axdomain信号吗,那么为什么CCI不能区分domain呢?

  5. 讲义第7页提到,Marking an area as Non-cacheable or Device implicitly marks that region of memory as being accessed by masters in the system domain,请问讲师可以具体解释下想表达的意思吗,我不是很理解。

  6. 讲义第10页提到,对于CPU系统来说,如果想要coherent必须满足的几个点。我想问(1)MMU为什么一定要开?(2)memory为什么一定要shareable,举个例子,如果不是shareable的,那么一段memory field只能共master0用,另一段memory field只能共master1用,这样反而不就没有一致性问题了吗?

被浏览 :  654
收起
( 0 ) 评论
mushroom 4年前回复
0

Q1. CCI是基于ACE协议的总线,采用的是crossbar的结构。CCN是基于CHI的总线,采用的是RING结构。CMN是基于CHI-B的总线,采用的是MESH结构。以上这些理解方式正确吗?那NOC是什么总线呢?
A: CCI 可以理解为是优化过的crossbar结构,可以更大限度的减少latency和并行处理数据能力。 CCN是基于CHI的RING based的总线。CMN-600 是基于AMBA5 CHI.B的mesh 总线。现在大家说的NOC的总线,更多的是指的是Arteris, Netspeed 和 Sonics的产品。 是一种不同于NIC-400(crossbar)的,基于Package 的具有多种总线拓扑架构(tree, mesh, ring, etc) 的一类总线.
Q2. ACE协议是用于系统中连接在总线的各个master上的coherent问题,而对于一个cluster或者一个拥有Multi core的processor内部的多个cache之间的coherent问题是由SCU模块解决的,这个理解正确吗?
A2: 理解正确。 ACE更多的是解决多个cluster/master之间的coherent 问题。 一个cluster内部多的core之间的coherent 是由SCU等逻辑保证。需要说明的是,很多core和SCU的交互协议也是一种变种的ACE协议。
Q3. 讲义第7页提到,DVM messages are only sent between masters in the same inner shareable domain。请问这里inner shareable domain是什么意思?
A3: 这个要求是从ARM ARM(achitecture reference manual)角度说的。架构上认为运行相同OS或者hyperviser的所有processor是在一个Inner shareable domain中的。而与DVM message 有关的I cache/TLB等操作应该是broadcast给处于一个inner shareable domain 的master 或者PE的。

然而从AMBA总线的角度看,DVM message 从ardomain的信号的角度看,是可以inner shareable 或者outer shareable domain. 因为AMBA总线和ARM ARM文档并不是一个完全的紧密耦合和对应的关系。但是很多cluster 发出的DVM message的确是ardomain=2’b01(inner shareable)
Q4. 讲义第7页提到,CCI does not differentiate inner or outer shareable,请问讲师这里是想表达CCI不能区分inner或者outer domain这个意思吗?但是ACE接口上不是有Axdomain信号吗,那么为什么CCI不能区分domain呢?

A4: 这里不是不能,一方面是简化设计。另外,从概念上来说,属于inner shareable domain 的master必然同时属于对应的Outshareable domain. 也就是说,即使是innershareable domain的操作,也是需要data coherency. 所以,从coherent总线的角度看,也的确没有太大必要区分。后面的CHI从协议上就取消了outer和inner的区分。

Q5. 讲义第7页提到,Marking an area as Non-cacheable or Device implicitly marks that region of memory as being accessed by masters in the system domain,请问讲师可以具体解释下想表达的意思吗,我不是很理解。

A5:这同样是ARM ARM的要求。以Device为例,在ACE protocol的角度看,它是system shareble的。

Q6. 讲义第10页提到,对于CPU系统来说,如果想要coherent必须满足的几个点。我想问(1)MMU为什么一定要开?(2)memory为什么一定要shareable,举个例子,如果不是shareable的,那么一段memory field只能共master0用,另一段memory field只能共master1用,这样反而不就没有一致性问题了吗?

A6: 1>只有MMU开,才能做地址和属性的保护和变换。如果MMU不开,所有的地址默认是device的,无法从硬件上保证coherent
2> 只有MMU开,D cache才能工作
3> coherent 问题的起源就是因为多个PE或者master需要对相同的地址做访问,这样才需要有一种机制保证系统参与者能够看到正确的数据。 如果地址不shareable, 那的确没有了一致性的问题。但是这样做是否可行,要从系统设计的角度考虑,要看系统的spec. 当然,我们上面讲的是硬件机制保证coherent. 如果使用软件机制保证,可以不开MMU,也可以对某个地址设置”non-shareable” 属性。

添加评论
我的答案
提交答案