【计算机系统原理】 组相联 Cache 地址划分与访问过程

目录

组相联映射

主存地址划分

[1. 计算地址总位数](#1. 计算地址总位数)

[2. 计算块内偏移量](#2. 计算块内偏移量)

[3. 计算 Cache 组数与组号位数](#3. 计算 Cache 组数与组号位数)

[4. 计算标记位(Tag)位数](#4. 计算标记位(Tag)位数)

[5. 地址划分结果](#5. 地址划分结果)

[主存块与 Cache 行的映射关系](#主存块与 Cache 行的映射关系)

[1. 映射规则](#1. 映射规则)

[2. 示例映射](#2. 示例映射)

[CPU 访问主存单元 0240CH 的过程](#CPU 访问主存单元 0240CH 的过程)

[1. 地址分解](#1. 地址分解)

[2. 访问流程](#2. 访问流程)


组相联映射

主存地址划分

1. 计算地址总位数

主存容量 256KB = 2^8 × 2^10 B = 2^18 B,因此主存地址总长度为 18 位

2. 计算块内偏移量

块大小 64B = 2^6 B,因此块内偏移占 6 位,用于定位块内字节。

3. 计算 Cache 组数与组号位数

  • Cache 总块数:1KB / 64B = 16
  • 2 路组相联 → 每组 2 行 → 组数 = 16 / 2 = 8 = 2^3
  • 因此组号占 3 位,用于定位 Cache 组。

4. 计算标记位(Tag)位数

标记位 = 地址总位数 - 组号位数 - 块内偏移位数 = 18 - 3 - 6 = 9位,用于唯一标识主存块。

5. 地址划分结果

地址段 位数 作用
标记位(Tag) 9 位 标识主存块,与 Cache 组内各行标记比较
组号(Index) 3 位 定位 Cache 中的目标组
块内偏移(Offset) 6 位 定位主存块内的具体字节

主存块与 Cache 行的映射关系

1. 映射规则

  • 主存块号 = 主存地址 / 块大小
  • 组号 = 主存块号 mod 组数
  • 主存块只能映射到对应组内的任意一行(2 路组相联 → 每组 2 行可选)

2. 示例映射

以主存块号 i 为例:

  • 组号 g = i mod 8
  • 可映射到第 g 组的第 0 行或第 1 行
  • 若组内两行均已满,则需按替换算法(如 LRU)替换其中一行

CPU 访问主存单元 0240CH 的过程

1. 地址分解

将十六进制地址 0240CH 转换为 18 位二进制:0240CH = 0000 0010 0100 0000 1100B

  • 块内偏移(低 6 位):000011B0CH
  • 组号(中间 3 位):010B2
  • 标记位(高 9 位):000000100B04H

2. 访问流程

  1. 地址拆分:CPU 将 18 位地址拆分为 9 位标记、3 位组号、6 位块内偏移。
  2. 组定位 :根据组号 2 定位到 Cache 的第 2 组。
  3. 标记比较 :将标记 04H 与第 2 组内两行的标记并行比较:
    • 若某行标记匹配且有效位为 1 → Cache 命中
    • 若未匹配或有效位为 0 → Cache 缺失
  4. 命中处理 :根据块内偏移 0CH,从命中行中读取目标字节并返回 CPU。
  5. 缺失处理
    • 向主存请求读取包含 0240CH 的整个主存块(64B)。
    • 将主存块加载到第 2 组的空闲行中;若组内无空闲行,按替换算法淘汰一行。
    • 更新该行标记为 04H,有效位置 1。
    • 根据块内偏移 0CH 读取目标字节并返回 CPU。
相关推荐
晓晓_za89866811 小时前
Geo 优化服务 CI/CD 流水线搭建:源码自动构建、测试与灰度发布
运维·服务器·tcp/ip·spring·缓存·ci/cd
nvd1115 小时前
LiteLLM 与 Redis 响应缓存机制:从精确哈希匹配到模型底层 KV-Cache 边界
redis·缓存·哈希算法
名字还没想好☜18 小时前
Next.js 用 cookies()/headers() 读请求信息:动态渲染触发、缓存失效与在 Server Action 里读写 cookie
前端·javascript·缓存·react·next.js·app router
lv__pf19 小时前
redis缓存数据库进阶
数据库·redis·缓存
草莓熊Lotso19 小时前
【Redis 初阶】Hash 类型深度解析:结构化数据存储的最优解
linux·网络·数据库·redis·tcp/ip·缓存·哈希算法
kyle~20 小时前
计算机系统 --- 缓存一致性
开发语言·c++·缓存·计算机系统
深念Y1 天前
SSD 寿命洁癖:编译过程不入盘的原则与实践
缓存·io·内存·编译·ssd·读取·写入
智购科技无人售货机厂家1 天前
2026自动售货机实时库存管理系统:从Redis缓存到持久化的数据架构演进~YH
redis·缓存·架构
晓晓_za8986681 天前
Geo 优化源码蒸馏词机制:地域词库构建与匹配逻辑详解
运维·tcp/ip·spring·缓存·ci/cd
nvd111 天前
LiteLLM 如何使用 Redis:从部署位置到精确响应缓存
redis·缓存·gateway