当前位置: 首页 > news >正文

计算机组成原理与体系结构-实验三 存储器(Proteus 8.15)

目录

一、实验目的

二、实验内容

三、实验器件

四、实验原理

五、实验步骤

六、思考题


一、实验目的

1、了解静态随机存储器 RAM 和只读存储器 ROM 的工作特性及读写方法。

2、掌握存储器与总线的连接及存储器地址空间映射的原理。

二、实验内容

设计一个 8 位字长、12位地址空间(利用率非100%,没有完全一一对应的映射关系,严谨的数学表示应该叫单射且非满射)的存储器通路,与 ROM 和 RAM 两个地址相互独立的(内部)存储器建立映射关系,实现对 ROM只读存储器 和 RAM 随机存取存储器的数据读写操作及数据成批导入 ROM 的操作。

本质上就是两层映射,第一层映射是把12位空间的外地址分配哪些有效(连续)区段分配给ROM、给RAM(“外部偏置”);第二层映射就是有效区段的地址对应到ROM或者RAM存储器的哪些存储区段(根据实际器件,ROM地址空间最大是13位,RAM是11位,本实验只用到ROM的低9位空间和RAM的低7位空间),一般来说是从连续区域到连续区域的映射,需要设置一个 “内部偏置”,本实验内部偏置均为0。

具体的映射关系如下图,需要把外部空间的0x000-0x1FF对应到ROM的0x000到0x1FF(13位表示,这里最高位(内部偏置)是0,用十六进制简化表示),把0xF80-0xFFF对应到RAM的0x80-0xFF(最高3位是000,内部偏置是0)。

图 11      映射关系

三、实验器件

1、只读存储器 2764 及静态随机存储器 6116。

2、三态门(74LS244)、寄存器(74LS273)及 3-8 译码器(74LS138)。

四、实验原理

实验课提供的实验指导中关于原理这一部分的内容太长,而且个人感觉重点不是很突出。

其实只需要弄明白下面的核心逻辑一张图,就会连接存储器映射通路的核心(中枢)电路,其他的连线相对友好。

图 12      实验三 RAM/ROM存储器 核心逻辑

本实验绝大多数操作都是在设定外部偏置,其核心逻辑就是2个3-8译码器的连线设计,译码器的输入和地址空间的最高4位有关,也就是外部偏置,输出连接存储器的CE片选输入。具体结构见图13。

12位地址空间address的MSB(address[11])对应片选信号(E1),address[10:8]输入译码器,根据要求图(图11),对于RAM这三位都是1,还需要结合address[7]的值(相当于又一个外部偏置),所以RAM的片选输入信号CE=Y7+Q7如果要加更多的偏置(缩小内部有效空间)可以使用多输入或门,全0才能使能存储器。对于ROM,唯一的不同就是address[10:8]出现了两组取值000和001,所以ROM的片选输入信号CE=Y0Y1更多的输入(扩大内部有效空间)可以选用多输入与门,只要有1个0(3-8译码器的每个输出大部分时候都是1)就可以使能存储器

如果要调整内部偏置,直接调整ROM的A12-A9输入和RAM的A10-A7输入。

图 13      3-8译码器电路结构[1]

五、实验步骤

图 14      实验三 存储器 把ROM的数据写入RAM后,再把RAM的数据输出显示到7段数码管(Proteus 8.15)

六、思考题

1. 假设把 .asm 文件中的某个 ORG 语句改为“ORG 0224H”,请问该 ORG 定义 的数据段还能被访问到么?如果不能,是数据批量导入 ROM 出错么?请修改 ROM 的地址片选电路,保证“ORG 0224H”所定义的数据段能被访问到。

这就是在调整内部地址空间的偏置,原来偏置是0x0000(其实本实验用到的ROM只有13位地址空间),现在调整为0x0200(0000 0010 0000 0000),所以把ROM的A9输入连接POWER高电平(常量)即可。

2. 为何 ROM 和 RAM 需要使用两个独立的 3-8 译码器?假设 RAM 的片选电路与 ROM的片选电路共用一个 3-8 译码器,即 ROM 所在 3-8 译码器的最低 2个端口给 ROM 使用,最高 1个端口给 RAM 使用。请给出 ROM 和 RAM 的地址空间范围。

这是关于外部映射的问题。因为两个存储器对应的外部映射,在12位地址空间中MSB不同,ROM是0,RAM是1,所以译码器的片选信号在不同情况下有效;这和实验的要求相关,如果都是0(低一半空间)或者1(高一半空间),那么两个3-8译码器是可以合并的。

所以提出了第二个子问题,这时候自然有两种情况,ROM->0x000-0x1FF、RAM->0x780-0x7FF;或者 ROM->0x800-0x9FF、RAM->0xF80-0xFFF。

3. 假设 RAM 的地址空间范围改为 800H-8FFH,请问存储器地址片选电路如何修改?假设再把 ROM 的地址空间范围改为 600H-7FFH,请问存储器地址片选电路又如何修改?

这也是外部映射的问题。显然需要使用两个3-8译码器,因为12位地址空间的MSB出现了“分歧”。注意RAM的内部有效空间变成了8位,内部偏置为0不变,RAM的片选输入信号;ROM内部有效空间位数不变,内部偏置为0不变(根据.asm烧录程序而定),片选输入信号

图 15      实验三 存储器 思考题3 改造的片选逻辑

图 16     实验三 存储器 思考题3 把ROM的数据写入RAM后,再把RAM的数据输出显示到7段数码管

相关文章:

  • 零基础学习RabbitMQ(4)--RabbitMQ快速入门
  • Rust 和C++工业机器人实践
  • 当SAM遇到声纳图像时之论文阅读
  • TreeMap源码分析 红黑树
  • mac系统快捷键及命令安装
  • LSNet: 基于侧向抑制的神经网络
  • 预测性 SRE 与自动化修复
  • fvcom 网格文件grd制作
  • yolov11安装,训练模型,tensorrtx加速,Qt预测图像
  • mac触摸板设置右键
  • python pyecharts 数据分析及可视化(2)
  • 八股文——JAVA基础:hashCode()方法的作用与意义以及与equals方法的联动
  • 通过阿里云部署n8n工作流自动备份GitHub
  • Gartner《Everything Technical Professionals Need to KnowAbout DA Strategy》学习心得
  • RuoYi-Vue学习环境搭建
  • docker compose基本使用以及示例
  • 云端可视化耦合电磁场:麦克斯韦方程组的应用-AI云计算数值分析和代码验证
  • 学习使用Visual Studio分析.net内存转储文件的基本用法
  • MybatisPlus-03.快速入门-常用注解
  • 横向移动01