首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算机体系结构:高速缓存传输分析

计算机体系结构:高速缓存传输分析
EN

Stack Overflow用户
提问于 2014-11-21 20:07:42
回答 1查看 186关注 0票数 0

这是我的考试学习指南上的一个问题,我们还没有讨论如何计算数据传输。任何帮助都将不胜感激。

给出了一个容量为2 MByte (1M字节= 2^20字节)、块大小为128字节的8路组关联二级数据高速缓存。高速缓冲存储器通过共享的32位地址和数据总线连接到主存储器。高速缓冲存储器和RISC-CPU通过分离的地址和数据总线连接,每条总线的宽度为32位。CPU正在执行加载字指令

a)在高速缓存未命中的情况下,有多少用户数据从主存储器传输到高速缓存?

b)在高速缓存未命中的情况下,有多少用户数据从高速缓存传输到CPU?

EN

回答 1

Stack Overflow用户

发布于 2014-11-23 05:09:00

你需要先计算你的缓存线大小:

  1. 缓存块数量: 2MB / 128B = 16384块(14位)
  2. 组数: 16384 /8路=2,048组(11位)
  3. 地址宽度: 32位
  4. 行偏移位: 32 - 14 - 11 =7位

所以缓存线的大小是128B --一条线实际上是一个块,但是知道上面的计算是很好的。

a)在高速缓存未命中的情况下,有多少用户数据从主存储器传输到高速缓存?

在您的问题中,L2缓存是主内存之前的最后一级缓存。因此,如果在L2缓存中未命中(没有找到要查找的行),则需要从主内存中获取行。将从主存储器传送用户数据的SO128B。地址总线和数据总线共享的事实不会影响。

b)在高速缓存未命中的情况下,有多少用户数据从高速缓存传输到CPU?

如果你到达了L2缓存,这意味着你错过了L1缓存。因此,CPU必须从L2向L1传输一个完整的L1缓存线。,因此L1行大小为128B,那么128B的数据将从L2传输到L1。然后,CPU将仅使用该行一小部分来将产生未命中的指令馈送到L1高速缓存中。无论该行是否从L2中逐出,这都应该在问题语句(包含/独占缓存)中说明

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27061056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档