2014-11-21 126 views
0

这是一个关于我的考试学习指南的问题,我们还没有介绍如何计算数据传输。任何帮助将不胜感激。计算机体系结构:高速缓存传输分析

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

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

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

+0

您的问题与编程无关,并且不显示任何搜索消息。 – mrgenco 2014-11-21 12:11:20

+0

@mrgenco它涉及到低级编程,即计算机体系结构。就搜索工作而言,我花了8个小时阅读我的​​书,试图找出如何做到这一点。尽管我在书中找不到这些信息,这是我的教授的问题。捏造。因此,我正在寻求帮助。 – user4278114 2014-11-21 12:24:51

+0

告诉我们你的想法,为什么,我们会告诉你,如果你是对的:) – VAndrei 2014-11-21 19:41:35

回答

0

你需要计算第一缓存行大小:

  1. 缓存块数:2MB/128B = 16384块(14位)
  2. 的台数:16384/8路= 2048套( 11位)
  3. 地址宽度:32位
  4. 线偏移位:32 - 14 - 11 = 7个比特

所以高速缓存行大小为128B - 实际上人ine是一个块,但是知道上面的计算是很好的。

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

在你的问题中,L2缓存是主内存之前的最后一级缓存。所以如果你错过了二级缓存(,你没有找到你正在寻找的行),你需要从主内存中获取行。 因此128B的用户数据将从主存储器传输。地址总线和数据总线共享的事实不会影响。

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

如果您到达L2缓存,那意味着您错过了L1缓存。因此从L2开始,CPU必须将一条完整的L1高速缓存线转移到L1。 因此,L1行的大小是128B,那么128B的数据将从L2到L1。 CPU将仅使用该行的一小部分将生成未命中的指令送入L1缓存。无论L2是否被驱逐,这应该在问题句子(包括/独占缓存)中陈述