考研笔记:有关片选信号逻辑表达式求解的探究

考研笔记:有关片选信号逻辑表达式求解的探究

  • 今天做题时碰到了一个让人非常头疼的问题,是一道涉及到计算机组成原理知识点的题目,本以为通过之前书上讲的普通方法便可立即解出此题,但跃跃一试一番后,发现自己却错地一塌糊涂,于是便打开参考答案仔细研究了一番,可琢磨了好一阵子后还是一头雾水,因此只好去网上搜资料,看有没有大佬能够给出片选信号逻辑表达式求解的详细流程来观摩一番,可是翻来覆去,还是没有找到令人满意的答案,要么是感觉大佬们的话语有些深奥,要么是感觉大佬给的信息量对于我这个菜鸟来说有些支离破碎,因此自己折腾了好一阵子还是没有摸清任何头绪…

    经过了一番纠结后,我打开了平常打草稿的笔记本,在上面随便涂鸦起来,可就在一千钧一发之际,我不经意地瞥了一眼之前研究数据结构算法设计中动态规划时打的草稿中自己归纳的一句话:“要求大问题,先求小问题。”

    就在这时,我灵机一动,像是明白了什么。我再重新看了一遍题目,把题目中的主要关键名词关键数据都审视了一番,看看自己对于这些名词和数据是否都真正理解透了,后面我便把所有自己所想的与网上百度百科给出的权威解释逐一进行对比,发现了一个令人震惊的结果——我所认为我知道的可能并不是真正正确的

    于是之后我便通过百度百科上的权威解释网上各位大佬的综合解答把这道题目中的关键名词和关键数据给重新认识了一番,最后再做一遍时果然得出了正确的结果。

    我想这可能或许就是考研的魅力吧,它让我片刻停下了驴子般的生活,开始真正地思考了起来,平时自己都是过于浮躁,做题时太过于浮躁,太过于注重于结果,而忽略了过程,忽略过了由来,自然搞不清最终的结果

貌似扯得有点多了,那接下来就让我们进入正题吧~

首先题目如下:

设某机中,CPU的地址总线A15 ~ A0,数据总线D7 ~ D0(A0,、D0位为最低位),存储器地址空间为3000H~67FFH。其中3000H ~ 4FFFH为ROM区,选用4K×2的ROM芯片,5000H ~ 67FFH为RAM区,选用2K×4的SRAM芯片。请问:
(1)组成该存储器需要多少片ROM芯片和SRAM芯片?
(2)ROM芯片、SRAM芯片各需连接CPU的那几根地址线和数据线?
(3)应如何设置片选信号,分别写出各片选信号的逻辑表达式。

  • 对于这道题目,直接用平常老师上课讲的内容来做根本没法入手,因为老师只教过你一个公式:所需芯片数目=设计要求的存储器容量/已知芯片存储容量,而考研的题目往往不会考的这么简单,往往会把我们原先认为简单的问题复杂化,会涉及多个知识点(这句话第一次我还是听我们高数老师讲的),所以根据这个公式来计算我们就会觉得奇怪,总感觉缺少点什么。
  • 这里给出了已知芯片的存储容量,即规模为4K×2的ROM芯片,2K×4的SRAM芯片,但题目中所给出的存储器地址空间却是一串我们看得似懂非懂的数据:3000H~67FFH,3000H ~ 4FFFH ,5000H ~ 67FFH?

所以为了搞清楚这里面的来龙去脉,我们首先得学会计算机操作系统的一些基本知识:

  1. 内存地址只是一个编号,代表一个字节(8bit)的内存空间
  2. 内存地址用4位16进制8位16进制表示的区别。例如经常可以看到某些书籍上写的内存地址0x0001,在另外一些书籍上写的内存地址又变成了0x00000001,都是表示的编号为1的内存地址,4位16进制表示的内存地址和用8位16进制表示的内存地址,其实都是代表一个8bit的存储空间而已
  3. 经常说32位的操作系统最多支持4GB的内存空间,也就是说CPU只能寻址2的32次方(4GB),这里的4GB是以Byte为单位的,而不是bit。也就是说4G=41024M(Byte)=410241024Kb(Byte)=4102410241024bit(Byte),即2的32次方个8bit单位。
  4. 内存地址是内存当中存储数据的一个标识,并不是数据本身,通过内存地址可以找到内存当中存储的数据。
  5. 计算机内存地址用16进制数来表示。例如题目中的000FH表示内存地址编号为(000F)16= (0000 0000 0000 1111)2=(15)10即用十进制表示以0编号开头的第16个存储单元,其中H为16进制的标识符。0000H ~ 000FH这段内存块可以存储有4个元素的整型数组(一个整型元素占四个字节的内存)。

之后再理解与这道题题目有关的知识点:

  1. 将多个芯片组合起来常采用位扩展法字扩展法字和位同时扩展法。位扩展是指只在位数方向扩展(加大字长),而芯片的字数和存储器的字数是一致的;字扩展是指仅在字数方向扩展而位数不变,字扩展将芯片的地址线数据线读写线并联,由片选信号来区分各个芯片。(本题需采用字和位同时扩展,即在字数方向和位数方向上同时扩展。)
  2. 片选信号取决于存储器芯片以外的高位地址,片选信号CS非在低电平时有效。
  3. 存储器往往要是由一定数量的芯片构成的。CPU要实现对存储单元的访问,首先要选择存储芯片,即进行片选;然后再从选中的芯片中依地址码选择出相应的存储单元,以进行数据的存取,这称为字选。片内的字选是由CPU送出的N条低位地址线完成的,地址线直接接到所有存储芯片的地址输入端,而存储芯片的片选信号则大多是通过高位地址译码后产生的。常见的片选法有线选法全译码法部分译码法

故再理解了这些知识点的基础上,我们再来做这道题目,运用相应的知识点可以清晰地给出相应解答:

(1)、已知数据总线为8位,ROM区为3000H~4FFFH,故ROM容量为8K×8(8K是根据4FFFH与3000H相差的内存大小化成二进制计算得来的),ROM芯片数=8K×8/4K×2=8片(分为2组,每组4片).RAM区为5000H ~ 67FFH,故RAM容量为6K×8,SRAM芯片数 = 6K×8/2K×4=6片(分为3组,每组2片)。

(2)、ROM芯片的容量为4K×2,具有12(4K=2^12)根地址线、2根数据线,因此ROM芯片的地址线连接CPU地址线的低12位A11 ~ A0,每组ROM的4个芯片分别连接CPU数据线的D7D6、D5D4、D3D2、D1D0。SRAM芯片的容量为2K×4,具有11根地址线、4根数据线,因此SRAM芯片的地址线连接CPU地址线的低11位A10 ~ A0,每组SRAM内的2片芯片分别连接CPU数据线的D7D6D5D4、D3D2D1D0。

(3)、ROM区有2个片选信号(片选信号数目由分组数目确定),RAM区有3个片选信号,共需5个片选信号,根据地址分配的要求,各片选信号的逻辑表达式如下(其中CS0、CS1用于ROM区片选,CS2、CS3、CS4用于RAM区片选):
CS0=A15非A14非A13A12,
CS1=A15非A14A13非A12非
CS2=A15非A14A13非A12A11非
CS3=A15非A14A13非A12A11
CS4=A15非A14A13A12非A11非

最后以CS0与CS1的求法为例着重解析一下:ROM区的内存地址为3000H~4FFFH,有两个片选信号,则此内存区域被分割成了两个子内存区域3000H ~ 3FFFH,4000H ~ 4FFFH,因为ROM区中ROM芯片的地址线连接CPU地址线的低12位A11 ~ A0,所以还有A15、A14、A13、A12未用,因此ROM区的片选信号将由A15、A14、A13、A12这四位确定。对于子内存地址3000H ~ 3FFFH,其对应的A15、A14、A13、A12位分别为0、0、1、1,所以其片选信号的逻辑表达式为A15非A14非A13A12,对于子内存地址4000H ~ 4FFFH,其对应的A15、A14、A13、A12位分别为0、1、0、0,所以其片选信号的逻辑表达式为A15非A14A13非A12非。对于RAM区用同样地方法将内存地址分割成三个子内存地址5000H ~ 57FFH, 5800H ~ 5FFFH, 6000H ~ 67FFH,即可求得相应结果。

  • 88
    点赞
  • 249
    收藏
    觉得还不错? 一键收藏
  • 31
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值