计算机组成原理题目透析(1)

news/2024/11/17 2:47:32/
  1. 某计算机的主存地址空间大小为256 MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64 B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示:

图片.png

假定int类型数据用32位补码表示,程序编译时 i , j , s u m i, j, sum i,j,sum均分配在寄存器中,数组a按行优先方式存放,其首地址为320(十进制数)。请回答下列问题,要求说明理由或给出计算过程。

(1)若不考虑用于 C a c h e Cache Cache一致性维护和替换算法的控制位,则数据 C a c h e Cache Cache的总容量为多少?

(2)数组元素 a [ 0 ] [ 31 ] a[0][31] a[0][31] a [ 1 ] [ 1 ] a[1][1] a[1][1]各自所在的主存块对应的 C a c h e Cache Cache行号分别是多少( C a c h e Cache Cache行号从 0 0 0开始)?

(3)程序 A 和 B A和B AB的数据访问命中率各是多少?哪个程序的执行时间更短?


分析:

  • 主存地址空间大小为 256 M B 256 MB 256MB
    • 主存总容量为 2 28 B 2^{28}B 228B
  • 按字节编址
    • 单位为字节
  • 指令 C a c h e Cache Cache和数据 C a c h e 分 Cache分 Cache
    • 这句话意味着在计算 C a c h e Cache Cache容量时,不单单是计算 C a c h e Cache Cache数据容量那么简单了,还需加上指令所占的容量。
  • 8 8 8 C a c h e Cache Cache行,每个 C a c h e Cache Cache行大小为 64 B 64 B 64B
    • 计算出 C a c h e Cache Cache的总容量为 8 ∗ 64 = 2 9 B 8*64=2^9B 864=29B,同时也告诉了我们主存一个块有 64 B ( 2 6 ) 64B(2^6) 64B(26)大小,一共有 2 28 / 2 6 = 2 22 2^{28}/2^{6} = 2^{22} 228/26=222 个块。
  • 数据 C a c h e Cache Cache采用直接映射方式
    • 直接映射意味着 C a c h e Cache Cache的指令包含着标记位+有效位

整理得:

  1. 对于主存
    1. 主存总容量为 2 28 B 2^{28}B 228B
    2. 一共有 2 22 2^{22} 222 个块,一个块有 2 6 2^6 26大小
  2. 对于 C a c h e Cache Cache
    1. C a c h e Cache Cache的总容量为 2 9 B 2^9B 29B
    2. 一共有 2 3 2^3 23 个块,一个块有 2 6 2^6 26大小
  3. C a c h e 总容量 = C a c h e 数据容量 + C a c h e 指令容量 Cache总容量 = Cache数据容量+Cache指令容量 Cache总容量=Cache数据容量+Cache指令容量

对于第一题:数据 C a c h e Cache Cache的总容量为 C a c h e 数据容量 + C a c h e 指令容量 Cache数据容量+Cache指令容量 Cache数据容量+Cache指令容量

$Cache数据容量: $ 64 ∗ 8 64 * 8 648

$Cache指令容量(标记位+有效位): $ 有效位始终为 1 位 有效位始终为1位 有效位始终为1,下面来求标记位:

首先明确标记位来自于哪里,标记位是为了找到主存中某一块内容在 C a c h e Cache Cache中的映射位置,所以它来源于主存块地址

主存地址

  • 主存块号(直观看出主存有多少块)
    • 标记(就是通过它来与 C a c h e Cache Cache建立联系)
    • 行号(直观看出 C a c h e Cache Cache有多少行(块))
  • 块内地址

因此可以明确的是:对于本题,主存地址: 28 = 22 ( 19 + 3 ) + 6 28 = 22 (19 + 3) + 6 28=22(19+3)+6,因此得出结论 C a c h e 指令容量的标记位为 19 Cache指令容量的标记位为19 Cache指令容量的标记位为19,最终得出本题答案 512 + 19 + 1 = 532 512 + 19 + 1 = 532 512+19+1=532

简介写法:

image


对于第二题:一个 i n t int int型数据 4 4 4个字节,而主存( C a c h e Cache Cache)一个块 64 64 64个字节,故而得出一个块可以存放 16 16 16 i n t int int型数据

对于 a [ 0 ] [ 31 ] a[0][31] a[0][31] 32 m o d 16 = = 0 32 mod 16 == 0 32mod16==0不难知道该元素的主存地址为 320 + 31 ∗ 4 = 444 = 320 + 31 * 4 = 444= 320+314=444= 0000....0001 0000....0001 0000....0001 1011 1011 1011 1100 1100 1100

  • 六位块内地址为 111100 111100 111100
  • 22位主存块号 0000....0110 0000....0110 0000....0110

观察22位储存块号的后四位得到该元素处于 C a c h e Cache Cache的第六块

简介写法:

  • 算出改元素的主存地址
  • 直接将其与 C a c h e Cache Cache块大小取余得到结果

444 444 444 d i v div div 64 64 64 = 6 6 6


对于第三题:

  • 当程序A存入一个元素时,由于 C a c h e Cache Cache 会一下子将给元素的附近的(包括该元素)共16个元素一起存入,再次访问该元素的下一个元素时,由于元素按行再按列存入,元素的存储顺序与使用顺序高度吻合,除了访问的第一个元素不会命中,剩下15个均会命中,因此命中率位 16 / 15 16/15 16/15 = 93.75 93.75% 93.75
  • 第二个程序按列执行循环,在执行内层循环时,将连续访问不同行的同一列数据,不同行的同一列数据使用的是同一 C a c h e Cache Cache单元,每次都不会命中,命中率为0。
  • 显然A快于B


http://www.ppmy.cn/news/408415.html

相关文章

蓝桥杯第十二届填空题1,2详解

关于第十二届蓝桥杯填空题1.2解题思路 第一次发表博客和自己解题心得如果有错误请大家多多讲解帮助 *第一题 【问题描述】 小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都是 32 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空…

蓝桥杯.Java.空间

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 题目描述 小蓝准备用256MB的内存空间开一个数组,数组的每个元素都是 32 位 二进制整数 如果不考虑程序占用的空间和维护内存需要的辅助空间 请问 256MB 的空间可…

java数字转换MB,GB

1KB1024 1MB1024*1024 1GB1024*1024*1024 var bytes??; function bytesToMBSize(bytes) { if (bytes 0) return 0; var k 1024; var mb bytes/k/k; //转化为MB return mb.toFixed(2);//保留2位小数 } //给numberbox赋值 1. $(#spaceP…

从零实现 SPI_flash(W25Q256)

前言: SPI是全双工,即同一时刻可以双向通讯。 SPI是英语serial peripheral interface 的缩写,顾名思义就是穿行外围设备接口。是motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器…

假设某台式计算机的内存容量为256,计算机二级试题与答案

出国留学网小编们精心为广大考生准备了“计算机二级C试题及答案”,各位同学赶快学起来吧,做好万全准备,祝各位同学考试顺利通过。更多相关资讯请持续关注出国留学网。 1.20GB的硬盘表示容量约为(  )。答案:C A)20亿个字节 B)20亿…

W25Q256学习

一、基本特性 容量256Mb,最小的组织单位是页每个页256个字节,可进行页编程(一次写256个字节);16个页组成4KB的扇区,可进行扇区擦除,128个扇区组成32KB块,64KB的组,可以整片擦除。256有8192个扇…

三种256MB SPIFLASH的高性能模式和软复位学习笔记

三种256MB SPIFLASH的高性能模式和软复位学习笔记 WINBONECONTINUE READ MODEThe Fast Read Dual I/OThe Fast Read Quad I/O SOFTWARE RESET EONPERFORMANCE ENHANCE MODESOFTWARE RESET MXICPERFORMANCE ENHANCE MODERESET 转载请标明出处 https://blog.csdn.net/weixin_4368…