Cache Kownledge -- Cache层次结构 & Cache一致性

一、缓存的体系结构

1. Cache层次结构

计算机系统中缓存层次结构通常由多个级别的缓存组成,这些级别包括L1缓存、L2缓存和L3缓存。每个级别的缓存都有不同的特性,例如容量、访问速度和成本。层次化缓存结构的设计旨在利用不同级别缓存的优势,通过提供更小、更快的缓存来提高数据访问速度,并通过较大、较慢的缓存提供更大的存储容量。这有助于平衡性能和成本。

以下是一般的层次化缓存结构图:

2. CPU读取方式

  • 程序执行时,会先将内存中的数据加载到共享的 L3 Cache 中,再加载到每个核心独有的 L2 Cache,最后进入到最快的 L1 Cache,之后才会被 CPU 读取。
  • CPU读取数据时:
    1. 发起读取请求(Fetch)

      • CPU 从程序计数器(Program Counter,PC)中获取下一条指令的地址。
      • 将该地址发送到 L1 指令缓存。
    2. L1 指令缓存检查(L1 I-cache Check)

      • 如果指令在 L1 指令缓存中命中(Cache Hit),则直接从 L1 指令缓存中读取指令。
      • 如果没有命中(Cache Miss),则继续到下一级缓存。
    3. L2 缓存检查(L2 Cache Check)

      • 如果指令在 L2 缓存中命中,从 L2 缓存中读取指令,并更新 L1 指令缓存。
      • 如果没有命中,则继续到下一级缓存。
    4. L3 缓存检查(L3 Cache Check)

      • 如果指令在 L3 缓存中命中,从 L3 缓存中读取指令,并更新 L2 和 L1 指令缓存。
      • 如果没有命中,则继续到主内存。
    5. 主内存访问(Main Memory Access)

      • 如果指令在主内存中,从主内存中读取指令,并更新 L3、L2 和 L1 指令缓存。
    6. 指令解码(Decode)

      • CPU 对获取的指令进行解码,识别出具体的操作。
    7. 执行指令(Execute)

      • CPU 根据解码结果执行相应的操作,可能包括读取或写入数据。

以下是Cache结构图:

3. 映射方式

关联性的选择取决于系统的设计目标和性能需求。直接映射简单,但冲突可能较多;组相联映射在性能和成本之间取得平衡;全相联映射提供最大的关联性,但通常需要更多的硬件资源。不同的应用场景可能需要不同类型的缓存关联性。

  1. 直接映射(Direct Mapping):

    • 原理:主要原理是将主存中的每个块映射到缓存中的一个特定缓存行。具体来说,一个主存块只能映射到缓存的一个固定位置,而不是可以在多个位置中选择。这个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值