You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

计算机体系结构习题求助:Tag大小与Cache总位数计算

Cache总位数计算方法

首先明确:Cache总位数不止包含数据存储区的容量,还要额外计入每个Cache块配套的控制位开销。

已知参数梳理

  • 地址位宽:32bit
  • 块参数:128项/块,8bit/项 → 单块大小为128B
  • Cache布局:6路组相联,数据区总大小192KB
  • 写策略:写回(Write Back)
  • 已求得Tag位宽:17bit

核心计算公式

Cache总位数 = 数据区总位数 + 所有Cache块的控制位总位数

步骤1:计算Cache总块数

总块数 = Cache数据总大小 ÷ 单块大小
本题代入得:
总块数 = 192KB ÷ 128B = (192×1024B) ÷ 128B = 1536块

步骤2:计算单块控制位大小

每个Cache块的控制位包含三部分:

  • Tag位:本题为17bit,用于地址匹配
  • 有效位:固定1bit/块,标记当前块是否存储有效数据
  • 脏位:写回策略下需额外加1bit/块,标记当前块是否被修改过、是否需要写回主存;写直达策略无需该位
    本题单块控制位总和 = 17 + 1 + 1 = 19bit

步骤3:求和得到总位数

  • 数据区总位数 = 192KB × 8bit/B = 192×1024×8 = 1572864bit
  • 控制位总位数 = 总块数 × 单块控制位 = 1536 × 19 = 29184bit
  • Cache总位数 = 1572864 + 29184 = 1602048bit

补充说明:你之前提到的地址结构拆分存在笔误,正确32位地址拆分应为「Tag17bit + 组索引8bit + 块内偏移7bit」,组索引8bit对应2^8=256组(1536块÷6路=256组),块内偏移7bit对应单块128B的寻址需求,三者相加刚好为32bit。

内容的提问来源于stack exchange,提问作者Nessya Nakache

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 07:51:02