如果CPU的cache(缓存)容量上GB或更高,会有哪些不同?

如果CPU的cache(缓存)容量上GB或更高,会有哪些不同?

除了1G Cache,其他条件没什么变化。

1G的SRAM在CPU同频/半频工作挺夸张的,假设是L4,如果实现了,片内L4访问的Lantecy可能需要100个周期以上,这等于拖慢了访问主存速度。假设原来访问主存Latency是200T,那现在则是300T。

如果测试代码是随机访问数据,或流访问数据,总体性能会有较大下降。如果测试代码是计算型,比如压缩加密等,不需要频繁访问Cache,其性能还是受CPU主频控制,增加1GCache没什么用,性能不变。对于需要使用>8MB<1GB内存的无规律访问内存的测试程序,1GCache才能发挥作用。

如果CPU的cache(缓存)容量上GB或更高,会有哪些不同?

上图是AMD发布的RYZEN APU,共2M L2 +4M L3加起来约等于四个ZEN CORE的面积。

这种毕竟是特殊程序,其典型单线程代表,omnetpp的MKPI能从5降到0,mcf的MKPI能从10降到0。对后者来说,也就是每百条指令,有一次MemHit变为L4CacheHit的收益。估算当下处理器一次MemHit大致要200周期(50ns,CPU4GHz),变为L4Hit后收益为100周期。处理器IPC按1。5算。算下来mcf上当下处理器做8个周期的工作,拥有1GCache的相同处理器只需要5个周期,性能提升37。5%。

由于较多的程序都没有上述特征,实际上这种1GCache的CPU整体使用性能很可能是下降的,这是由于1GCache的ASIC实现较慢导致的。如果开脑洞无视ASIC实现问题,强行假设现在的IntelI7处理器L3Cache=1G。那么"Fit8M~1GBMemory"的这类程序能获得37。5%+的提升。接下来问题就转换成了"有多少程序fit8M~1GMemory?"我不知道。看了下Spec2k6,按子调用来计数,8M时MKPI在5以上的有12个,占21%。当然MKPI是和CPU结构的相关项,这里也有偏差。

其实Spec2k6的程序特性分布特点,和普通用户日常程序特点也不一样。普通用户上网,Spec在浪费电。干脆强行假设程序特性也一样吧,那么结论是有21%的程序能提升37。5%,平均提升量约7。9%。

如果CPU的cache(缓存)容量上GB或更高,会有哪些不同?

如果不是用SRAM实现就不算脑洞了,但Cache到1G肯定是多核汇聚的,IBMPower9是120MBeDRAMCache,24Core。Core0访问L3Cache0。23的latency应该不同,用了NUCA。单核性能并非处理器卖点,性能上IBM强调的是on-die/IOBandwidth,要并发。该讨论的是,单核程序怎样写(编译)才能与硬件适配得好。如果扯到并发,1GCache这个命题就要加更多的限定条件,比如接口位宽,比如是统一/分布访问,比如衡量性能指标。不然没法答,像如果有1GRMB怎么花一样没法答。不过也有些能预测的,1GCache如果实现,就会有大量在512MCache上都会卡的代码,你以为好的硬件提供了好的用户体验?No。提供了好的特效。

如果CPU的cache(缓存)容量上GB或更高,会有哪些不同?

如果CPU的cache(缓存)容量上GB或更高,会有哪些不同?

如果CPU的cache(缓存)容量上GB或更高,会有哪些不同?


分享到:


相關文章: