CPU缓存(Cache)详解(1)
关键词:CPU 缓存 Cache
导言:CPU缓存(Cache Memoney)即是位于CPU与内存之间的临时存储器,它的容量比内存小但数据交换速率却快很多,在很大程度上影响CPU工作中的性能表现。
Intel新上市的Core架构CPU以其优秀的性能扭转了其在与AMD竞争中的不利态势,与上一代的NetBurst架构相比,Core架构带来了许多革命性的改变(具体可参阅(Intel Core架构再解析、再看Conroe与AM2的技术比较、Intel Core vs. AMD K8:CPU架构分析、Conroe vs FX-62:Intel重占上风?、初窥Core 2 Duo E6600等),其中,Core架构CPU高效的缓存设计无疑是引人注目的这点,其8-Way 32KB 指令缓存(Instruction Cache) + 32KB 数据缓存(Data Cache)和16-Way 256Bit 4MB (低端型号为2MB)的L2 Cache设计,与AMD K8的2-Way 64K Instruction Cache + 64KB Data Cache和16-Way 128Bit 1MB (部份型号为512KB) L2 Cache设计相比,优势十分明显,这使得Core架构CPU的内存读取性能大大提高,从而在根本上提高了CPU的性能。
Intel为什么要采取这样的设计?CPU的缓存在CPU的工作中究竟起到什么作用?本文将对CPU缓存的原理与基本概念做一简单解析。
CPU缓存的工作原理
当CPU要读取一个数据时,首先会从缓存(Cache)中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
通过优化的的读取机制,可以使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。
早期的CPU缓存容量很小,并且功能单一,Intel从Pentium时代后把缓存进行了分类,当时集成在CPU内核中的缓存已不足以满足CPU的需求,而制造工艺上的限制又不能大幅度提高缓存的容量。因此出现了集成在与CPU同一块电路板上和主板上的缓存等不同类型,于是当时便把CPU内核集成的缓存称为一级缓存(L1 cache),而外部的称为二级缓存(L2 Cache);后来随着生产技术的不断提高,最终二级缓存也被挪进了CPU当中。通常一级缓存中还分数据缓存(Data Cache,D-Cache)和指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了CPU效能。此外,Intel在Pentium 4 CPU中还增加了一种一级追踪缓存,容量为12KB。
| 共3页: 1 [2] [3] 下一页 |

搜索