某计算机主存储器的电流如下图所示,试问:1)ROM和RAM芯片的规格是多少?(用?K*?位表示)2)ROM和RAM的容量各是多少?(用KB表示)3)ROM和RAM的地址范围是多少?))
1. 题目讲解
1.1 地址线
这道题目主要是看地址线,地址线从,也就是说有15条地址线,不要把它想象得太复杂,地址线其实就是电线,它能通过电流的高低不同来表示0和1这两个状态(即高电平和低电平),当你有一条电线的时候,你可以表示2个状态(0
和1
),当你拥有两条电线的时候,你可以表示4个状态(00
,01
,10
,11
),以此类推
换成地址线的话,也就是一条地址线可以选择2个地址,2条地址线可以选择4个地址……当你有13条电线的时候,你可以选择个地址,记住这个结论,后面需要用到
那么,我们再来看地址线,他们同时连接到一个ROM、四个RAM,当地址线工作的时候,(注意,这里的“工作”是说他们有电流流过的时候,ROM和四个RAM是能够同时接收到地址线的电流,但5个存储器要同时工作是很混乱的,这个时候我们就需要用到译码器了
1.2 译码器
译码器见名会意,就是翻译解析的意思,上图这个74LS139译码器,连接两条地址线和,我们知道2条地址线可以表示4个地址,那么它的四个输出端对应的就是4个不同的地址:即00
,即01
,即10
,即11
假如此时为00
,选择输出端就是,那么这条电线就有高电平输出到ROM,ROM的片选信号引脚收到高电平后,它就能够使ROM工作了,而此时其他四个RAM是不工作的
两条地址线,一个译码器就能够使我们的各个存储器有序的工作了。
1.3 锁存器
接着,我们需要进入到ROM和RAM的内部了,前面通过我们可以选择到某一存储器的某一地址,但我们还不太清楚选择的这个地址里面有什么东西,那就来说个结论,这个地址其实就是一个锁存器
再次强调下,ROM和RAM都是存储器,内部都是用锁存器来锁存数据的
你可以去仔细研究一下锁存器,但在这里我们只需要知道锁存器的功能就好了,锁存器是能够将数据锁存起来的,这么些个数据其实也就是0
或者1
,也就是说,锁存器能够保存0
和1
。
说一下位这个概念,1位就是说这一个位置可以存放
0
或者1
,2位就是说着有两个位置可以存放0
和1
。
一个锁存器,肯定不止锁存一个0或者1,也就是不止锁存1位,可以是4位、8位等等
1.4 总结
那么这整个电路的工作就是这样的,以读操作为例(即CPU的引脚为高电平):
当工作时,选择某一存储器的某一地址,告诉这个地址上的锁存器,“你要工作了,把你的锁存的数据,输出到数据总线上”
这里的数据总线就是图上的
2. 答案解析
2.1 第一小题
对于第一小题,?K是问这一存储器有多少个地址,?位是问这一存储器地址上的锁存器锁存的位数。
每个ROM/RAM存储器连接的都是13条地址线,13条地址线就是
这里
ROM连接的数据总线是,说明它的锁存器是8位
一个RAM连接的数据总线是或者,说明它的锁存器是4位
答案就呼之欲出了,ROM芯片的规格是,ROM芯片的规格是
2.2 第二小题
这里有一个坑,答案是要用KB表示,我们知道1B=8bit,也就1B等于8位,所以我们需要知道ROM或者RAM可以存储多少个8位的数据量
ROM比较简单,就一个ROM,且它的锁存器是8位的,从地址线就可以知道共有个锁存器,也就是说ROM能够存储个8位的数据量,转换成就是
而RAM就稍微复杂点,它是由四个RAM两两间相互关联组成的,我们先来单看其中两个RAM
这两个RAM里的锁存器是4位的,右边的RAM存放低4位,左边RAM存放高4位,在输出的时候就能够合并输出一个8位的数据了
换个角度看,它本质上无非就是将一个8位的数据拆成两半分别存储,所以,我们就能够知道这两个RAM就相当于一个ROM,同样是,那还有另外2个RAM,总共就是
至于为什么RAM不和ROM一样,非要将一个8位的数据拆成两半分别存储超出我的知识范围,留个坑,待研究
2.3 第三小题
第3小题就很简单了
共有14条地址线,地址范围也就是:
首先通过译码器,当为00时,通过选择ROM,那么最高两位就是00,范围就是:
这么长的数据写起来挺费劲的,一般换算成16进制,也就是从0H
到1FFFH
剩余的RAM也好求了,最高两位是01到10,范围就是:
换算成16进制也就是2000H
到5FFFFH