首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
某计算机主存按字节编址,由4个64M×8位的DRAM芯片采用
[单选题]
某计算机主存按字节编址,由 4 个 64M×8 位的 DRAM 芯片采用交叉编址方式构成,并与宽度为 32 位的存 储器总线相连,主存每次最多读写 32 位数据。若 double 型变量 x 的主存地址为 804 001AH,则读取 x 需要的存储周期数是
1
2
3
4
查看答案及解析
添加笔记
求解答(35)
邀请回答
收藏(18)
分享
纠错
6个回答
添加回答
11
牛客736456724号
发表于 2022-10-03 15:04:29
回复(1)
9
11二
网上找答案看了很多回答,感觉找不到自己能完全理解的解释,以下整理了两种出现的多的方法以及我自己的一些理解
首先 double 的存储在芯片中是下图这么存的
方法1:
读取双精度浮点型数据就是读取64位数据,即从M2开始按交叉编址的顺序往后读 8 个字,在这里就晓得这种解法可以和具体地址无关
题目的问题问的是,存取周期数而不是存取时间,存取周期 = 存取时间 + 恢复时间
按流水线的算法算出总时间 t = T + 7 * T / 4 = 2 * T + 3 * T / 4 ≈ 3T(根据题意显然是向上取整)
方法2:
另外一种解法大概就是利用题目所说每次最多读写 32 位数据+边界不对齐这两点来判断解题的思路,所以得先从 M0 开始读取,读三行,每行时间读取时间为 T,所以总共需要三个存取周期。
个人看法1:
如果让我反驳方法2认可方法1的话,我认为题目中的最多 32 位这个条件就是为了说明使多体并行的结构成立,也就是 4 个存储器,每个存储器的存储单元为 8 bit,4 * 8 = 32,而多体并行存储器的并行是按流水线的算法来运作的,也就是并不是真正的同时运行,只是在读取过程中最多有 4 个存储周期在时序上重叠而已。实际上存储器的占用和释放都是错开的,不是同时的。所可能不能简单地理解为我每次读多少个内存块,每次花多少时间。
个人看法2:
如果让我反驳方法1认可方法2的话,我的想法是,4个DRAM芯片最后是连到宽度为32位的数据总线上的,所以不需要采取每个模块按流水线的方法来交替激活和释放,可以每次直接同时选择四个芯片进行传输
发表于 2022-06-11 21:46:13
回复(7)
7
晴空201909251701653
不是,
一次读取32位说明是低位交叉编址,4个芯片,
四体并行低位交叉存储器总共就4个模块,不存在2-9,低位交叉编址后两位为模块体的体号,(A=10%4=2,体号从0开始)double是64位也就是8B字节,按字节编址,要读8个字节,每次可读32位也就是4个字节,低位交叉编址第一轮是(模块2-模块3)第二轮是(0-3)最后一轮是(模块0-1)就读完了
发表于 2021-08-17 17:38:28
回复(0)
1
牛客108295591号
考时序的,和地址没有关系,两个周期取不完,
连续存取m个字所需的时间为t=T+(m-1)*r,T为存取周期,r为总线传输周期=1/4T
发表于 2021-10-26 19:37:39
回复(2)
0
steelhead
这题答案不应该是2嘛?每次读32位难道不需要花2个周期?从第一个周期开始M2开始到第二个周期的M1正好两个周期,而且题目问的不正好是存储周期数吗?存储周期定义为模块存取一个字的周期T(定义在王道计算机组成原理24年P89第四行)。很显然这里的一个字为32位,double64位需要2个T。我想T为2更合理一些。
发表于 2024-05-23 20:56:07
回复(1)
0
牛客258612874号
我的猜想是,由于题目说的交叉编址,读取804 001A的数据要连续读出23456789地址的数,那么第一个周期读出23,第二个周期4567,第三个周期89。也有可能不是这样,只是猜想
发表于 2021-04-01 00:23:33
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
2017
Java工程师
上传者:
小小
难度:
6条回答
18收藏
11683浏览
热门推荐
相关试题
在大语言模型中,什么是"Gated...
大模型开发
评论
(1)
下面关于 Java 中的异常处理说...
Java
评论
(1)
关于大模型“上下文窗口”的理解,以...
大模型概念
评论
(1)
Vue Router的全局前置守卫...
Vue
评论
(1)
在Vue.js中,组件data选项...
Vue
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题