这是我的考试学习指南上的一个问题,我们还没有讨论如何计算数据传输。任何帮助都将不胜感激。
给出了一个容量为2 MByte (1M字节= 2^20字节)、块大小为128字节的8路组关联二级数据高速缓存。高速缓冲存储器通过共享的32位地址和数据总线连接到主存储器。高速缓冲存储器和RISC-CPU通过分离的地址和数据总线连接,每条总线的宽度为32位。CPU正在执行加载字指令
a)在高速缓存未命中的情况下,有多少用户数据从主存储器传输到高速缓存?
b)在高速缓存未命中的情况下,有多少用户数据从高速缓存传输到CPU?
发布于 2014-11-23 05:09:00
你需要先计算你的缓存线大小:
所以缓存线的大小是128B --一条线实际上是一个块,但是知道上面的计算是很好的。
a)在高速缓存未命中的情况下,有多少用户数据从主存储器传输到高速缓存?
在您的问题中,L2缓存是主内存之前的最后一级缓存。因此,如果在L2缓存中未命中(没有找到要查找的行),则需要从主内存中获取行。将从主存储器传送用户数据的SO128B。地址总线和数据总线共享的事实不会影响。
b)在高速缓存未命中的情况下,有多少用户数据从高速缓存传输到CPU?
如果你到达了L2缓存,这意味着你错过了L1缓存。因此,CPU必须从L2向L1传输一个完整的L1缓存线。,因此L1行大小为128B,那么128B的数据将从L2传输到L1。然后,CPU将仅使用该行一小部分来将产生未命中的指令馈送到L1高速缓存中。无论该行是否从L2中逐出,这都应该在问题语句(包含/独占缓存)中说明
https://stackoverflow.com/questions/27061056
复制相似问题