一、Cache技术的基础与核心内容1.1 什么是Cache?Cache是位于CPU和主存储器之间的一种高速小容量存储器,通常由SRAM(静态随机存取存储器)构成。它的核心使命是解决CPU与主存(DRAM)之间的速度鸿沟——CPU的时钟周期以纳秒甚至亚纳秒计算,而主存的访问延迟则高出1-2个数量级。Cache通过存储最近或频繁访问的数据副本,让CPU能以接近其运行速度获取数据。1.2 Cache的基石:局部性原理Cache之所以有效,是因为程序运行时的内存访问呈现出极强的局部性(Locality)特征:时间局部性(Temporal Locality):一旦某个内存单元被访问,它在不久的将来很可能再次被访问。例如:循环体中的指令、频繁使用的函数参数、被反复访问的计数器变量。空间局部性(Spatial Locality):一旦某个内存单元被访问,它附近的存储单元也将在不久的将来被访问。例如:顺序遍历数组、顺序执行的指令流。基于这两个原理,当CPU请求数据时,Cache会将包含目标数据在内的一个连续数据块(Cache Line)一起加载进来,为后续的空间局部性访问做好准备。1.3 命中率与平均访问时间Cache的性能通过命中率(Hit Rate)来衡量:命中率=Cache命中次数总访问次数命中率=总访问次数Cache命中次数​命中(Hit):CPU请求的数据在Cache中找到,CPU直接从Cache获取。未命中(Miss):CPU请求的数据不在Cache中,CPU必须从速度较慢的主存中读取。Cache的平均访问时间(t)由以下公式决定:t=h×t1+(1−h)×t2t=h×t1​+(1−h)×t2​h:命中率t1:Cache访问时间(SRAM)t2:主存访问时间(DRAM)当命中率h非常高时,平均访问时间t将接近极快的t1。1.4 地址映射方式Cache与主存之间的数据映射方式决定了主存中的数据块将被存放在Cache的哪个位置。映射方式特点优点缺点直接映射每个主存块只能映射到Cache中唯一固定的位置。硬件实现简单、速度快。冲突率高,多个主存块竞争同一Cache行,导致频繁替换。全相联映射每个主存块可映射到Cache中的任意位置。命中率高,Cache利用率最高。硬件复杂、成本高、速度慢。适用于特殊用途的Cache。组相联映射将Cache分组,主存块可映射到特定组内的任意一行。综合了前两者的优点,在性能与成本间取得平衡。复杂度高于直接映射,但低于全相联映射。1.5 Cache替换算法当Cache已满但发生未命中时,需要替换算法来决定淘汰哪个旧数据块以腾出空间。算法英文核心思想特点