Caching 计算机体系结构:缓存传输分析

Caching 计算机体系结构:缓存传输分析,caching,computer-architecture,data-transfer,Caching,Computer Architecture,Data Transfer,这是我考试学习指南上的一个问题,我们还没有讨论如何计算数据传输。任何帮助都将不胜感激 给定的是一个容量为2Mbyte(1MByte=2^20字节)的8路集关联二级数据缓存 块大小为128字节。缓存通过共享的32位地址和 数据总线。高速缓存和RISC-CPU通过单独的地址和数据总线连接,每个总线都有一个 32位的宽度。CPU正在执行加载字指令 a) 在缓存未命中的情况下,有多少用户数据从主存传输到缓存 b) 如果缓存未命中,有多少用户数据从缓存传输到CPU?您需要首先计算缓存线大小: 缓存块数:2

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

给定的是一个容量为2Mbyte(1MByte=2^20字节)的8路集关联二级数据缓存 块大小为128字节。缓存通过共享的32位地址和 数据总线。高速缓存和RISC-CPU通过单独的地址和数据总线连接,每个总线都有一个 32位的宽度。CPU正在执行加载字指令

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


b) 如果缓存未命中,有多少用户数据从缓存传输到CPU?

您需要首先计算缓存线大小:

  • 缓存块数:2MB/128B=16384块(14位)
  • 套数:16384/8路=2048套(11位)
  • 地址宽度:32位
  • 行偏移位:32-14-11=7位
  • 所以缓存线的大小是128B——实际上一条线是一个块,但最好知道上面的计算

    a) 有多少用户数据从主存传输到缓存 如果缓存未命中

    在您的问题中,二级缓存是主内存之前的最后一级缓存。因此,如果在二级缓存中找不到缓存线(找不到要查找的缓存线),则需要从主内存中获取缓存线因此将从主存传输128B的用户数据。地址总线和数据总线共享的事实并不影响性能

    b) 在这种情况下,有多少用户数据从缓存传输到CPU 一个缓存未命中


    如果您到达二级缓存,则意味着您错过了一级缓存。因此,CPU必须从二级缓存向一级缓存传输完整的一级缓存线因此L1行大小为128B,那么128B的数据将从L2传输到L1。CPU将只使用该行的一小部分将生成未命中的指令馈送到一级缓存。无论该行是否从二级缓存中删除,都应该在问题句(包含/排除缓存)中说明。

    您的问题与编程无关,也没有显示任何搜索效果。@mrgenco它与低级编程有关,即计算机体系结构。就搜索工作而言,我花了8个小时通读我的书,试图找出如何做到这一点。但是我在我的书中找不到这个信息;这是我的教授提出的问题。因此,我请求帮助。告诉我们你的想法和原因,如果你是对的,我们会告诉你:)@VAndrei它早就到期了,但我真的不知道该怎么做。我说:对于A,因为有8个128字节的块需要更新,所以8*128=1024字节将从内存中传输。对于B,有两条32位总线,首先发送64位,然后声明未命中,因此在从内存中解决未命中后,指令必须向CPU重新发送另一条64位,总计128位。然而,这只是我如何理解这一点的简单逻辑(我根本不理解这一点);这只是我最好的猜测,因为我不能让它空白。