以下仅是个人对CMN的浅显理解: CMN全称为coherent mesh network,是一种互联技术,通过在系统中设立多个节点之间的互联来实现高性能和可靠性 CMN的具体应用:应用于多核之间的cache一致性 以上图为例,每个cluster均有片内cache,当CPU对DDR写一个值时,例如向ddr 0x100地址写入0x1 当没有CMN时的操作: Cluster0写值首先是存放在cache中的,cache line常见为32/64字节。当Cluster0的cache中的数据还未刷入ddr中时,Cluster1要读取ddr 0x100地址的数据,那么此时便存在cache一致性的问题。该问题可以通过软件方法来进行解决,Cluster1在对ddr 0x100地址操作之前,先flush cache,再进行操作,但这样会导致相当麻烦,一旦忘记操作便会出现很大问题。 有CMN时: 同样,Cluster0写值首先是存放在cache中,当Cluster0的cache中的数据还未刷入ddr中时,Cluster1要读取ddr 0x100地址的数据时,由于有CMN的存在,CMN对Cluster0刚操作同样的地址是有“记录”的,那么CMN会将Cluster0操作的值给到Cluster,这样就可以保证数据的一致性 想具体可参考ARM官网对CMN的介绍 网络讲解CMN的博客: CMN总线介绍
标签:CMN,20240305,--,ddr,cache,地址,0x100,Cluster0 From: https://www.cnblogs.com/lethe1203/p/18055592