首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
某计算机主存按字节编址,由4个64M×8位的DRAM芯片采用
[单选题]
某计算机主存按字节编址,由 4 个 64M×8 位的 DRAM 芯片采用交叉编址方式构成,并与宽度为 32 位的存 储器总线相连,主存每次最多读写 32 位数据。若 double 型变量 x 的主存地址为 804 001AH,则读取 x 需要的存储周期数是
1
2
3
4
查看正确选项
添加笔记
求解答(34)
邀请回答
收藏(17)
分享
纠错
6个回答
添加回答
10
牛客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
回复(6)
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
回复(0)
0
牛客258612874号
我的猜想是,由于题目说的交叉编址,读取804 001A的数据要连续读出23456789地址的数,那么第一个周期读出23,第二个周期4567,第三个周期89。也有可能不是这样,只是猜想
发表于 2021-04-01 00:23:33
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
2017
Java工程师
上传者:
小小
难度:
6条回答
17收藏
10190浏览
热门推荐
相关试题
1.该校教师最多的是哪一年?( ...
资料分析
言语理解与表达
资料分析
评论
(1)
有同事不完成任务,影响力进度,你怎...
业务综合
评论
(1)
你身边有哪些人还没有使用滴滴,你认...
用户研究
评论
(1)
怎么做一个需求
需求分析
评论
(1)
A/B test场景问题,第一类错...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题