概述
本节刷题内容:存储器
题库来源:王道考研,百度文库,408真题
涉及的知识点:
- 半导体随机存储器
- SRAM
- DRAM
- 主存扩容
- 并行存储器
- Cache及其替换算法
补充知识点
- SRAM和DRAM在与CPU的连接上有什么不同?
答:在实际中,DRAM芯片采用的是地址复用技术,至于什么是地址复用技术,自行查阅资料。做题只需要知道一点,那就是其地址线变为原来所需要的一半。片选的时候用两个跟线,一根用来选行,一根用来选列。(分别称为行通选线和列通选线)。 - 按字编址与按字节编址。
一般的我们常常使用 字数X位数的方式来表示计算机容量。比如8K X16位 代表的是这个存储器一共有8K个存储单元,没有存储单元存放16位字。
我们知道 1B = 8bit。所以上面的8K X16位可以写成8K X 2B也就是16KB,所以上面的式子表示的容量又可以写成是16KB。因此,如果按字节编址,上面的式子应该表示为:
16K X 1B
如果按字编址,那么写法应该是这样的:
8K X16位(这个位数跟机器字长有关,题目会给) - 主存块与主存单元的区别。
主存块,是为了与Cache或者是与虚拟存储器更好的映射,从而按照一定大小分成的块(这里是个人理解,未经证实,慎重参考)。而存储单元是主存中一个个有编号的单元,就像8K X16位就有8k个这样的单元。从0开始编号。所以某个主存有8k个存储单元不等于其有8K个块,至于它在第几块,除一下就知道了。(后面有参看的题目) - 交叉存储方式什么时候会发生访存冲突?
交叉存储的特点就是一次性并行访问多个存储体,并且边访问边传输,达到提高访存速度的目的。假设有这样的一个4体交叉访问存储系统:
访问序列为 0 1 2 3 ,这个时候恰好刚刚一次访问完毕,因为各个序列号都位于不同的储存体内,访存不会发生冲突。但是如果序列号为0 2 3 4呢?4显然跟0在同一个存储体,由于事先访问了0,于是在结束这一行的并行访问的时候,是在占用存储体1的,这个时候也就导致4访问不到。于是发生访存冲突。
所以得出结论,只要在相邻的m个序列中,存在位于同一个存储体中的序列,他们就会发生访存冲突。(假设有m个体) - 怎么计算所需要的地址线与数据线?
先回顾一下地址线与数据线的作用:
地址线:单向输入,其位数与存储字的位数有关
数据线:双向输入,其位数与读出或者写入的数据位有关。
地址线10根,数据线8根,那么芯片的容量可以表示为:
2^10 X 8 = 8K位,所以用这种方式很容易知道数据线与地址线的个数
第一题
分析:这道题考查的是DRAM与SRAM之间的区别,基本概念题。放在这里只是希望能再熟悉一下基本的特点。秒选23.
第二题
分析:这两道都是概念题,记住就好。无论是SRAM还是DRAM都是易失性存储器。由于ROM是只读的,断电不会失去数据,所以为非易失性。SRAM速度快,被广泛用于Cache的制作。刷新的问题就不说了。所以11选A。
再看看第二题,闪存是一种只读存储器(ROM),所以属于非易失性,采用随机存储方式,是理想的磁盘替代者。那么为什么A不对。因为我们说过,ROM的写入都是要擦除才能进行写入的。而读取操作不需要对主存进行什么改变,因此写操作一定是要比读操作要慢的,毕竟写之前要擦除。
第三题
分析:这四道题都是一类题。所以放在一起,一次性攻克。引脚数,是指所有连线的个数(包括地址线,数据线,片选等等)。1024 = 2^10.,数据线显然是8根。加上片选线,读,写线。加起来最少为21.
第二题倒是干脆利落,32k = 2^15,秒选C
第三题,按照正常思维,我们需要10根地址线,8根数据线,但是题目说了地址复用技术,所以地址线减半,为5根。所以光是地址线+数据线就需要了 5+8 = 13(根),加上两根读写线,两根通选线,所以最少为13+2+2 = 17(根)
第四题,有了上一题就好办了,注意题目问的是该DRAM的地址引脚跟数据引脚,没问其他的。所以4M = 2^22,需要22根地址线,但是注意了,DRAM是地址复用的,所以需要的是 11+8 = 19(根)。
第四题
分析:这是一道简单的计算题。如果题目没有特殊说明,一般的刷新周期取2ms。
1.异步刷新是按行一次刷新,缩短死时间,每一行之间间隔(2ms/64)刷新一次,然后向下取整,结果为31us。
2.集中刷新,其刷新一次所需要的时间 = 要刷新的行数 X 存取周期。死时间为6.4us,死时间率是指死时间占刷新周期的比例,结果为0.32%。
第五题
分析:这道题目很有味道,可以说很经典,首先我们要知道字位扩展的原理,扩展后的地址变化,二进制与16进制之间的转换。很精彩,我就手写一次。
第六题
分析:上一道题是给出容量算地址,这道题反过来,给出地址算容量。我们先确定这个地址空间包含多少个可用的地址:
5FFFH - 4000H + 1 = 2000H(为什么加1?因为地址从0开始数的)。
一个16进制数用4个二进制数表示,所以2000H是2^13B(题目说了按字节编址)。也就是8KB。所以RAM地区为64 -8 = 56KB,所以,所需要的芯片数为(56K X 8位)/(8K X 4位) = 14
未完待续…(好困,明天继续,跟自己说一声:晚安)
最后
以上就是唠叨眼神为你收集整理的挑战408——组成原理(16)——存储器刷题(1)的全部内容,希望文章能够帮你解决挑战408——组成原理(16)——存储器刷题(1)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复