一级缓存和二级缓存有什么区

来源:百度知道 编辑:UC知道 时间:2024/05/11 03:40:05

由于CPU的运算速度愈来愈快,主存储器(DRAM)的数据存取速度常无法跟上CPU的速度,因而影响计算机的执行效率,如果在CPU与主存储器之间,使用速度最快之SRAM来作为CPU的数据快取区,将可大幅提升系统的执行效率,而且透过Cache来事先读取CPU可能需要的数据,可避免主存储器与速度更慢的辅助内存的频繁存取数据,对系统的执行效率也大有帮助。

不过因SRAM比DRAM贵太多,如果主存储器全采用SRAM则系统造价太高,所以一般皆只安装512KB~1MB的Cache。Cache的应用除了加在CPU与主存储器之间外,硬盘、打印机、CD-ROM等外围设备也都会加上Cache来提升该设备的数据存取效率。

按照数据读取顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存,二级缓存,部分高端CPU还具有三级缓存,每一级缓存中所储存的全部数据都是下一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增的。当CPU要读取一个数据时,首先从一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找。一般来说,每级缓存的命中率大概都在80%左右,也就是说全部数据量的80%都可以在一级缓存中找到,只剩下20%的总数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓存是整个CPU缓存架构中最为重要的部分。

一级缓存(Level 1 Cache)简称L1 Cache,位于CPU内核的旁边,是与CPU结合最为紧密的CPU缓存,也是历史上最早出现的CPU缓存。由于一级缓存的技术难度和制造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带来的性能提升却不明显,性价比很低,而且现有的一级缓存的命中率已经很高,所以一级缓存是所有缓存中容量最小的,比二级缓存要小得多。

一般来说,一级缓存可以分为一级数据缓存(Data Cache,D-Cache)和一级指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据以及对执行这些数据的指令进行即时解码,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。目前大多数CPU的一级数据缓存和一级指令缓存具有相同的容量,例如AMD的At