【2017年计算机408统考真题】计组13题
13. 某计算机主存按字节编址, 由4个64Mx8位的DRAM芯片采用交叉编址方式构成, 并与宽度为32位的存储器总线相连, 主存每次最多读写32位数据。若double型变量x的主存 地址为804 001AH, 则读取x需要的存储周期数是____
【原解析】
13. 解析: 由4个DRAM芯片采用交叉编址方式构成主存可知主存地址最低二位表示该字节存储的芯片编号。double型变量占64位, 8 个字节。 它的主存地址804 001AH最低二位是 10, 说明它从编号为2的芯片开始存储(编号从0开始)。一个存储周期可以对所有芯片各读取一个字节, 因此需要3轮, 故选C。
但系,点解,系米好想问点解呢????
这解析看得懂才怪呢。。网上搜了十几版、牛客网、王道、天勤的答案,还有b站的真题讲解,乱七八糟。
网传有另外版本的答案,说什么存储周期的,应该是错的。
计算机系统基础 第2版 袁春风 第263页 多看书 嘻嘻
在存储系统这章节的哦,不是在数据对齐讲的。不过这出题人也是挺阴险的。
【因此,如果访问的一个int型数据不对齐,假定在第6、7、8、9这四个存储单元中,则需要访问两次存储器;如果数据对齐的话,即起始地址是4的倍数,则只要访问一次即可。这就是数据需要对齐的原因。显然,了解存储器结构可以更好地理解第3章提到的数据对齐问题。】
大概意思,我自己脑补的 不知道对不对,进行位扩展之后,每块DRAM的数据线在总线上面的那位位置都是焊死的,一次总线只能送一批,也就是数据总线送一次,每块DRAM给一个字节,只能按照0,1,2,3块的顺序。
你可能想2 3 0 1 / 2 3 0 1 这样读,就2个周期嘛,但是计算机并不知道哦,别人只知道数据从首地址开始读,要是那样理解的话double变量就乱了。。。。
多看看计算机系统基础 第2版 袁春风 第263页 ~~~~~
上岸更新2024.05.07~
没想到还是挺多人问的,(已上岸 题目记不太清了 画了个大概的示意图),不能用人的思维去思考这个问题,计算机是通过电线来传播电信号的,电线是焊死在电路板上面的,第一个时间周期传过来XXX1 第二个时间周期传过来2345 第三个时间周期传过来678X 没用的可以丢弃啊
所以绝对不能1234 5678 这样子读取~ 哪怕数据没用也要读取
ps大端小端好像是默认的(默认其中一个 具体我忘了) 其他的确实没说明白 建议去骂出题人
各大书的解析都没有点出来是数据对齐的问题 这是大家的疑惑点吧