计算机组成与体系结构第二次试验:存储器实验


虚幻给睫毛膏
虚幻给睫毛膏 2022-09-21 14:51:07 50278
分类专栏: 资讯

前言

为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!

一、实验目的

本实验的主要内容是了解 RAM(Random Access Memory,静态随机存储器)和ROM(Read Only Memory,只读存储器)的工作特性;掌握存储器与总线的连接及存储器地址空间映射的原理。通过设计一个8位字长的存储器电路,包括ROM和RAM两个地址相互独立的存储器,实现对ROM和RAM存储器的数据读写操作及数据成批导入 ROM 的操作。

二、实验环境

操作系统:Win10
实验用软件:Proteus 8

三、实验内容

本实验的存储器电路如图2-1所示,由地址输入单元、存储器及地址选择电路组成。存储器电路中共有两条总线:12位地址总线ABUS_[0.11]和8位数据总线DBUS[0.7]。图左边是拨码开关构成的12位地址输入端,其连接在地址总线ABUS[0…11]上,通过三个绿色数码管输出显示12位地址信息。图2-1右边则是存储器ROM、RAM及其地址选择电路。
ROM和RAM存储器内部有三态门结构,其数据输出端直接连在数据总线DBUS_[0…7]上,通过两个红色数码管显示8位数据信息。
存储器是用来存储信息的部件,是计算机的重要组成部分,常见的半导体存储器类型主要有ROM和BAM。ROM一般容量较大,在断电的时候仍然可以保存数据:ROM只能读出数据,不能写人数据。而RAM存储器一般容量较小,在断电之后就丢失数据;RAM既可读出数据,又可写入数据。本实验中使用的ROM存储器是2764(8Kbit),RAM存储器是6116(2Kbit)。
如图2-2所示,ROM芯片2764的数据线D-D,接到数据总线,地址线AoAs由地址锁存器74LS273给出,用来对ROM片内存储单元寻址,其余地址线AsA12接地。2764有两个控制端:CE(片选)和OE(读)。RAM芯片6116的数据线DoD,接到数据总线,地址线A0A7由地址锁存器74LS273给出,用来对RAM片内存储单元寻址,其余地址线As-A1o接地。6116有三个控制端:CE(片选)、OE(读)和WE(写)。
存储器电路控制信号的逻辑功能见表2-1所示。值得注意的是,在对ROM或RAM读写的时候,首先必须在存储器的片选有效(CE=0)的前提下,才能对相应的存储器读(OE=0)
或写(WE=0)。例如,对ROM芯片2764进行读操作,必须令使能ROM CE-0且ROM OE=0。
存储器片选信号ROM_CE和RAM_CE是由地址信号的高4位ABUS_8~ABUS_11经过片选逻辑电路自动形成的,不需要拨码开关控制。
其次,必须在地址锁存器(74LS273)ROM_AR、RAM_AR锁存地址信号,才能选中存储器片内相应的单元。地址锁存器ROM_AR和RAM_AR的输入都连接至地址总线ABUS_0
~ABUS_7,在其CLK端开关出现上升沿跳变的时候,地址总线ABUS_0-ABUS_7的数据打入ROM_AR或RAM_AR锁存。锁存后无论地址总线ABUS如何变化,选中的存储单元也不会发生改变,可以进行稳定的读写操作(存储器数据端输入或输出)。
存储器电路设计的最重要环节是存储器与地址总线的连接,因为连接方式决定了存储器地址空间的映射关系,即决定了每个存储器芯片在整个存储空间中的地址范围。12位地址总线的理论地址空间为4KB(000HFFFH),本实验将其中最低的512B的地址分配为ROM区(000H1FFH),最高的128B地址为RAM区(F80H~FFFH),其余留空,如图2-3所示。
存储器电路的设计一般将地址总线区分为低位地址线和高位地址线两部分:低位地址线直接和存储器芯片的地址信号连接作为片内地址译码,而高位地址线的连接主要用来产生片选信号(称为片间地址译码),以决定每个芯片在整个存储系统中的地址范围。
在本实验中,12位地址总线分为低8位地址线和高4位地址线。低8位地址线ABUS0
ABUS7分别与ROM和RAM芯片的地址线AoA7共用;高4位地址线ABUS_8~ABUS_11则通过两个3-8译码器进行译码,如图2-2所示。低位3-8译码器U13最低2位之一输出有效,则片选ROM芯片(“负逻辑”判断,使用与门);同样,高位3-8译码器U15最高1位输出与地址线A同时有效,则片选RAM芯片(“负逻辑”判断,A7先反相,再使用或门)。
值得注意的是,相同的存储器地址空间映射,可以有不同的片选电路实现方法(例如使用“正逻辑”判断)。

四、实验步骤

1)按照“2.3ROM批量导人数据的技巧”小节所述,将project.asm文件编译的hex二进制文件加载到ROM芯片2764,并且查看ROM烧写的数据段是否正确。
2)启动仿真前,令ROMOE=RAMOE=RAM_WE=1;启动仿真后,令SW_BUS=0,手动拨码开关输人024H到地址总线ABUS_[0…11](绿色数码管显示)。
3)令地址锁存信号ROM_CLK上升沿跳变0→1,将地址总线上的024H打入地址锁存器ROMAR;令ROMOE=0,使能ROM存储器2764输出,在数据总线DBUS[0…7](红色数码管显示)上查看存储单元[024H]读出的内容。
4)手动拨码开关,向地址锁存器RAMAR打入地址F80H;令RAMWE=0,使能RAM存储器6116输入,把存储单元[024H]的内容写入存储单元[F80H]。再令RAM_WE=1,结束对RAM存储器的写人操作。
5)令ROM_OE=1(禁止ROM存储器2764输出)且RAM_OE=0(允许RAM存储器6116输出),在数据总线DBUS_[0.7]上观察存储单元[F80H]的写入内容是否正确。
6)按照上述操作,把ROM存储器单元[024H]、[028H]、[02CH]、[030H]的内容依次写入RAM存储器单元[F80H]、[F81H]、[F82H]、[F83H],查看写入RAM的数据是否正确。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、实验结果

在这里插入图片描述
在这里插入图片描述

六、实验总结

  1. 假设把project.asm文件中的某个ORG语句改为“ORG0224H”,请问该ORG定义的数据段还能被访问到么?如果不能,是数据批量导入ROM出错么?请修改ROM的地址片选电路,保证“ORG0224H”所定义的数据段能被访问到。
    答:不能。应该是数据批量导入ROM出错。
  2. 为何ROM和RAM需要使用两个独立的3-8译码器?假设RAM的片选电路与ROM的片选电路共用一个3-8译码器,即ROM所在3-8译码器的最低2个端口给ROM使用,最高1个端口给RAM使用。请给出ROM和RAM的地址空间范围。
    答:因为ROM和RAM两个操作方式和功能均不一,前者只读,后者可读可写;两者的空间地址范围不一。RAM:0XXH ~ 8XXH;ROM:X00H~XFFH;
  3. 假设RAM的地址空间范围改为800H-8FFH,请问存储器地址片选电路如何修改?假设再把ROM的地址空间范围改为600H~7FFH,请问存储器地址片选电路又如何修改?
    答:前者RAM范围只需调整最低两个端口;后者ROM需要调整三个端口。

心得体会:
进行本次实验操作时,实验器件多,连线复杂,哪怕连线完成、实验图做好后,依然不了解这个图的用途及原理。之后,本人通过查阅资料、同学讨论等等方式对本次实验有了大概的理解,同时,本次实验步骤复杂,稍不留意就容易前功尽弃,需要我们在做实验时谨慎再谨慎。

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=9173
赞同 0
评论 0 条
虚幻给睫毛膏L0
粉丝 0 发表 4 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2941
【软件正版化】软件正版化工作要点  2860
统信UOS试玩黑神话:悟空  2819
信刻光盘安全隔离与信息交换系统  2712
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1246
grub引导程序无法找到指定设备和分区  1213
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  163
点击报名 | 京东2025校招进校行程预告  162
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  160
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  157
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!