-
讲义第23页,讲到CPU Cluster 1和CPU Cluster 2属于一个inner domain,MASTER X和MASTER Y属于另一个inner domain,我想请问这里当这4个同时连到同一个coherent总线时,总线如何区分他们属于两个不同的inner domain,因为AxDomain信号好像只能表示是inner domain,但是无法指明是哪一个inner domain。
-
讲义30页,关于ReadNoSnoop的第一种情况Non-Cacheable,(1)这里我想请问在一个多CPU的系统中,每个CPU的page table是一样的吗,在物理上是同一份拷贝,还是不同的CPU可以有不同的page table,对同一块地址设置不同的属性? (2)如果不同的CPU可以有不同的page table,对同一块地址设置不同的属性,那么连在当前coherent总线上的所有CPU中的page table中都必须把这块地址设置成Non-Cacheable时,才可以发起ReadNoSnoop操作,反之,如果有的CPU中的page table把这块地址设置成Non-Cacheable,而有的CPU不这么设置,就不能发起ReadNoSnoop操作,这个理解正确吗? (3)这里讲的,对于一个地址有inner属性和outer属性,请问inner属性和outer属性具体是指什么意思?是inner domain和outer domain?
-
讲义38页,关于ReadOnce的Memory type,(1)提到must be modifiable,请问这里modifiable是指什么意思? (2)ReadOnce的Typical Case有access memory marked with write back no-read-allocate,我想请问有没有write-through no-read-allocate这种memory type,如果有的话,是不是也可以用ReadOnce。
-
关于snoop filter, (1)我想请问snoop filter是不是一般实现在coherent 总线中,因为只有coherent总线才知道哪些地址的数据在哪些master的cache中,还是说snoop filter也可以实现在其他地方? (2)讲义中提到write back和write evict都可以用于enable snoop filter,以write back为例,这里是指总线当发现write back时,就同时write dirty cacheline to memory并enable snoop filter?还是指总线事实上不支持write back操作,当看到write back时就转义为enable snoop filter? (3)最差情况下,snoop filter内部需要记录信息的条数等于coherent总线上连着的所有master中cache容量的总和除以cacheline大小,用以准确记录每个master中每个cache的每条cacheline对应的地址,从而可以在snoop时查询到需要snoop哪几个master,这个理解是否正确,按这个说法,对于cache容量比较大或者master数目比较多的总线所实现的snoop filter的面积岂不是会很大?
-
讲义45页,关于write clean的Typical Case,提到Eviction of the dirty lines from L2, when the line is still present in L1,这里所说的情景是指write clean的ACE transaction发生在L1和L2cache之间,也就是coherent总线是在CPU内部的,连着多个L1和一个L2,这个理解正确吗?
-
讲义46页,讲师提到对于Unique Clean的cacheline,当CPU需要替换这条cacheline时,可以在CPU内部默默的直接把他invalid操作,不用发起ACE transaction,我想说这里是不是有一个前提是系统中没有snoop filter,因为如果有snoop filter在记录着这一行Cacheline Unique Clean的信息,CPU内部默默直接invalid的操作,就会引起snoop filter中记录信息与实际情况不符的问题,这个理解正确吗?