● CPU缓存的诞生与发展
早期的80486相当于把80386和完成浮点运算的数学协处理器80387以及8kB的高速缓存集成到一起,这种片内高速缓存称为一级(L1)缓存,80486还支持主板上的二级(L2)缓存。
内含8KB的高速缓存,同样是80486处理器的创举。缓存可以用于对频繁访问的指令和数据实现快速的混合存放,使整个芯片的性能得到大幅度提升。缓存概念由此诞生,并一直延续到今天成为影响CPU性能的重要因素。
在Cache中的数据是内存中的一小部分(我们可以理解为CPU的缓存是内存的高速镜像),但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从Cache中调用,从而加快读取速度。由此可见,在CPU中加入Cache是一种高效的解决方案,这样整个内存储器(Cache+内存)就变成了既有Cache的高速度,又有内存的大容量的存储系统了。
计算机存储系统金字塔
在CPU里面内置了高速缓存可以提高CPU的运行效率,这也正是当时的486DLC比386DX-40快的原因。内置的L1高速缓存的容量和结构对CPU的性能影响较大,容量越大,性能也相对会提高不少,所以这也正是一些公司力争加大L1级高速缓冲存储器容量的原因。
80486处理器带来的性能的飞跃,也让计算机产业走上更快的发展道路,不过这时更多的半导体芯片设计公司已经开始向Intel发起挑战,因为大家都看到了这块硕大的蛋糕正在被Intel一个人侵吞。
面对越来越激烈的竞争,Intel于1993年推出了新一代高性能处理器Pentium(奔腾),之所以称其为Pentium而不是80586,是因为Intel想通过注册商标来防止别的厂商使用相同的名字,根本原因是Intel沿用多年的数字商标如80X86是不受法律保护的,竞争对手通常用这些商标偷换概念宣传以自己的产品。
Pentium将一级缓存增加到了16kB,这种改进大大提升了CPU的性能,使得Pentium的速度比80486快数倍。总体来说缓存的规模扩大在Pentium时代,已经成为业界对于CPU性能提升的重要共识,而缓存的大小也逐渐成为判断CPU性能的重要标准。
当然我们需要知道,直到Pentium时代,也只有一级缓存是在CPU核心内部的,因为构成缓存的电路使用6T SRAM晶体管,SRAM的每一个比特位需要占用6个晶体管,存储密度较低,1MB容量的二级缓存就需要占用5000万个晶体管,这是一个相当惊人的数字。当时的Pentium集成度只达到了310万个晶体管。
实际上Pentium的一级缓存是由8KB数据cache和8KB指令cache构成的,这种缓存结构叫做双cache哈弗结构。CPU没有内部cache,被称作纯粹的冯•诺依曼结构,又称作普林斯顿体系结构(Princeton architecture),这是传统的电子计算机结构。
哈佛结构是指程序和数据空间独立的体系结构,目的是为了减轻程序运行时的访存瓶颈。哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。