在网上很多帖子说L1,L2,L3是不同cache层级的关系,从L1中取不到,L1就从L2中取,L2再从L3中取。
可是在我们的板子上的配置中,貌似L1代表真正的cache,L2中属于某一个核的内存,L3是多个核共享的内存;L2,L3是内存,而非cache。
哪位大侠能帮忙给小妹解释下下嘛?
------最佳解决方案--------------------------------------------------------
用高速设备来缓冲低速设备的数据,都可以叫做cache,比如用内存来缓冲磁盘文件,用SRAM来缓冲DRAM等等。
差别无非是速度快慢,还有数据(广义的数据)在cache中的存储结构,unified或者non-unified,前者代码和数据共享cache,后者分离成单独的指令cache和数据cache。大多数处理器,L1 cache通常是non-unified cache,而L2/L3 cache一般是unified cache。
------其他解决方案--------------------------------------------------------
我们在定义全局变量的时候,需要指定其在L2,还是在L3或者是在DDR。L2中,就只有单个core可见,在L3和DDR中,这个DSP的所有core都可见。这个应该不是传统意义的cache概念吧?否则为什么能定义全局变量在里面呢?
------其他解决方案--------------------------------------------------------
共享或者独占的cache在一般的架构中都有这种概念,不过可以指定数据的位置这有点象NUMA中的局部存储的概念了,具体没有研究freescale 8156,不清楚它的多处理器/多核结构是NUMA还是传统的SMP。