2020博物馆分类排行
全世界各行各业联合起来,internet一定要实现!
老文章正文

并非越大越好-漫谈CPU与缓存

2004-06-10 eNet&Ciweek

增加L1 Cache

要解决CPU与内存交换数据不同步这个系统瓶颈问题,其中一个办法是在靠近工厂的市区设置一个小型的仓库B(L1 Cache)。




平时把生产最迫切需要、用得最多的原材料(指令和数据)从仓库A(内存)调配到仓库B(L1 Cache),这样工厂生产所需要的原材料就可以很快地调配过来,减少空运转的时间。当所需的原材料在仓库B中找不到(缓存未命中)时,仍然要到仓库A(内存)里调配,虽然无可避免地使工厂又进入空运转,或部分空运转(CPU等待若干个时钟周期),但这样毕竟使等待时间大大降低了。

小知识:缓存有一个“预读”功能,也就是可以通过一定的算法,猜测接下来所要的数据,并预先取入缓存。

再添L2 Cache

随着CPU的频率提高,与内存之间交换数据不同步的现象更明显了,可以理解为仓库A(内存)搬离郊区,迁到更远的地方了。解决这一问题的一个更好的办法就是在城市的边缘再设立一个比仓库B大的仓库C,也就是我们说的二级缓存。



它的作用是把郊区之外的仓库A(内存)中最迫切用的材料(指令)运到仓库C,而工厂如果在仓库B中找不到所需的材料,就可以到仓库C中找,而不必老远跑到仓库A那里找,节省了不少时间。

通常情况下,L2包括L1所有的数据,另外还有一些附加的数据。换言之,L1与L2、L2与内存之间是子母关系,所以CPU缓存的出现更有效地解决了CPU空等待所造成的资源浪费问题。

CPU缓存越大越好?

当然,CPU缓存并不是越大越好,因为缓存采用的是速度快、价格昂贵的静态RAM(SRAM),由于每个SRAM内存单元都是由4~6个晶体管构成,增加缓存会带来CPU集成晶体管个数大增,发热量也随之增大,给设计制造带来很大的难度。所以就算缓存容量做得很大,但如果设计不合理会造成缓存的延时,CPU的性能也未必得到提高。





相关频道: eNews 老文章

您对本文或本站有任何意见,请在下方提交,谢谢!

投稿信箱:tougao@enet16.com
广告