高通吧 关注:181,491贴子:4,696,701
  • 60回复贴,共1

重新反思arm能否学8e全砍l3缓存,以及对缓存是否越大越好

只看楼主收藏回复

早些年的时候,都说不能越大越好。
举个例子:一个核心有4m的12缓存,一个核心有8m的12缓存。
第一种情况:如果两个核心的数据都在l2中,且l2缓存已经满了,那么前者只需要在4m大小的数据垃圾里面找到自己需要的,而另一个需要在8m大小的数据垃圾里面寻找。此时就可以看出前者更快找到。
第二种情况:如果两者都已经被占用了4m的12缓存数据,那前一个核心只能继续在l3缓存里寻找,后一个核心则可以在l2缓存里寻找,而l2缓存的速度远超l3,那后一个往往更快找到。所以此时得出缓存不是越大越好。但为啥8e就可以玩两个超大核共享12m的12巨型缓存,这可是对很多场景的速度有很大的影响,却游戏实际效果很不错?
猜测:首先,说明以往的1m的l2缓存,远不够超大核用,因为超大核往往负责主线程,对CPU要求高的同时对缓存很大数据,实际游戏里,因为l2不够经常需要访问l3缓存,导致速度很慢。
对arm是否要照搬策略的猜想:
首先超大l2共享缓存不仅仅是会影响部分场景的延时,在延时要求高的地方会有副作用,同时有个很致命的问题,那就是成本,所以必须动刀l3来节省,而arm真的适合动刀13做巨型12吗?
arm的CPU架构是大中小逻辑,是有两种完全不同的专属架构,而且需要互通数据,因为日常使用的时候当小核性能不够就要线程转移给中核,当性能要求很低的时候,转移给处于更高效性能区间的小核,这样就能尽可能的节省功耗。
理想很美好,现实很残酷,如果3中核和4小核共用的是巨型l2缓存而非l3,对于xm系列中核没啥影响,可是对a7系列小核影响太大了,a7系列小核定位低性能区间能效好,但性能上限低,此时如果配巨型I2缓存,检索速度变慢非常多,而且arm对a7系列的推荐也就是512kb,一下翻24倍变成12m,延时很可能超标。
而高通的小核和中核没有区分,6个直接一样的,虽然有影响,但没有那么大。所以arm的a7系列和xm系列的区别,三丛集道路,看样子不适合盲目堆l2,并且此时需要l3互通数据。
个人想法改善:
既然如此,不如部分采纳高通的l2缓存灵感并结合arm大中小理念。
首先l2缓存方面:
1x5配8ml2缓存,3x5m共享6ml2缓存,4a730每个配512k6的l2缓存。
思路:主线程是需要高性能大l2缓存的,所以分配给x5没跑,而有部分游戏需要吃双核,还需要一个比较强力的核心配一个比较大的l2缓存,那就给共享l2缓存的x5m,一个x5m最多可以分配6ml2缓存,并且虽然共享6ml2缓存会在当一个核心不需要大缓存时,延时有副作用,好在x5m的性能不错,不会有太大的延时增加的影响。而日常使用中,小核a730往往分配的是既不需要性能,也不需要大缓存的小任务,所以没必要共享,也没必要给大l2缓存,全部分开,做到低延时高能效。
l3缓存方面:arm的小中大策略,日常使用小中之前会经常转移负载、尽量的实现好的功耗表现,而对于中大之间则没有频繁的转移,大型游戏的主线程负责核心是很稳定的最大核心,而轻度使用时单大核心往往处于休眠状态,并且加之小核选择了不共享l2缓存所以l3缓存方面:
x5有了巨型8ml2缓存不需要配l3缓存,3x5m和4a730共享4ml3(3x5m本身就共享了6ml2,加上a730所分配的任务也不需要大缓存,妥妥够用,最多a730负载转移给x5m时需要数据互通罢了),这样分开的l3缓存够用延时还能得到提升。
总计:1x5单8ml2,3x5m共享6ml2以及和4a730共享4ml3,4a730每个单配512k的12缓存。
一共16ml2缓存和4ml3缓存。
总结:为了秉承arm大中小思路,大核独占巨型l2缓存,中核既要兼容需要大缓存的情况又要尽可能减少延时增加的副作用,就共享6ml2取中庸之道,而小核则分别分配小l2缓存,极致追求能效和延时。而在数据互通方面,选择最频繁的3+4互通4ml3即可,因为l2的增加,l3不需要那么大并且在频繁数据互通迁移负载时,小l3的延时也能得到改善。


IP属地:江西来自Android客户端1楼2025-05-11 01:40回复
    大家觉得我这套1x5(单配8ml2缓存)+3x5m(共享6ml2缓存)+4a730(分别配512kb缓存)最后3x5m和4a730共享4ml3缓存的布局,能不能实际效果比8e强


    IP属地:江西来自Android客户端2楼2025-05-11 01:43
    收起回复
      2025-08-02 13:31:19
      广告
      不感兴趣
      开通SVIP免广告
      你这个好乱


      IP属地:江苏来自Android客户端3楼2025-05-11 01:45
      回复
        不如2个p核,6个e核一起共享36M二缓


        IP属地:江苏来自Android客户端4楼2025-05-11 01:46
        收起回复
          8e2真的给36M二缓吗?这么良心?不太信


          IP属地:江苏来自Android客户端5楼2025-05-11 01:47
          回复
            说错了,32M二缓


            IP属地:江苏来自Android客户端6楼2025-05-11 01:47
            回复
              cpu二缓32 gpu二缓16 系统16?
              这么给力吗?啊这


              IP属地:江苏来自Android客户端7楼2025-05-11 01:48
              收起回复
                8mbl2够吗,膏通8e一些厂商都是关掉一个p核,来供另一个p核充足的l2。


                IP属地:海南来自Android客户端10楼2025-05-11 09:06
                收起回复
                  2025-08-02 13:25:19
                  广告
                  不感兴趣
                  开通SVIP免广告
                  大为震撼,我都不知道L3可以小于L2


                  IP属地:安徽来自iPhone客户端11楼2025-05-11 10:17
                  收起回复
                    arm公版一直都是走類x86架構的路線,用類x86的L1+L2+L3與類似環形總線ring的dsu總線,並且通常不會有太多的負雜設計,類似amd那樣,不管關幾個核,L3大小不變,要追上高通這套類果式L2,還是得同時增加x系列的L2與L3,並且L3容量保持略大於高通的果式L2,比如本代9400理想一點應該是x925 2.5m L2+共享14m L3,x4大核應該維持1m L2就足夠了,或是稍微加一點變1.25m L2+共享14m L3,我想在吃緩存的項目中,就不遜於8e了


                    IP属地:中国台湾来自Android客户端12楼2025-05-11 10:29
                    回复
                      缓存不是越大越好,是因为这玩意特别占成本和面积,一块芯片如果一大半都是缓存,还有什么空间给你放核心?核心弱了缓存有什么用?缓存少了核心施展不开也不行,得合理分配


                      IP属地:贵州来自Android客户端13楼2025-05-11 12:27
                      收起回复
                        12缓存,你觉得还用看?


                        IP属地:广东来自Android客户端14楼2025-05-11 19:00
                        回复
                          砍不了 因为做不到


                          IP属地:四川来自Android客户端15楼2025-05-18 19:46
                          回复