- SRAM
- 用SRAM构成8086/8088的内存
- 连接方式
- 拓展电路
- 译码电路
- 用SRAM构成80386/80486内存
- 利用SRAM构成Pentium的内存
- 用SRAM构成8086/8088的内存
- ROM
- 用EPROM构成8086/8088的内存
- 用E2PROM构成8086/8088内存
- 闪速E2PROM:Flash
- 其他存储器
- SRAM综合设计举例
- 举例1:构成8086内存(16位)
- 举例2:构成8088内存(8位)
- 总结
SRAM
用SRAM构成8086/8088的内存
考察方式:画电路图,编程测试。
核心:数据线,地址线,片选线怎么连,译码电路怎么设计
连接方式
全地址译码连接
部分地址译码连接
拓展电路
- 拓展位:片内地址之前
- 连接方式
- 地址线和数据线直接和系统总线相连
- 拓展位作为译码电路的输出连到芯片片选端
把大地址分解为连续的内存空间,分别存到不同存储器
- 拓展位:片内地址之后
- 连接方式
- 拓展位直接作为片选连到芯片片选端
- 数据线分高位和低位连接,地址线按偏移连接(偏移位数为拓展位的位数)
把大地址空间按地址末位分配到不同存储器,不同存储器中的存储的数据对应的内存地址是不连续的
当拓展位为1位时,就是分奇偶存储体
- 读8位,读偶地址的16位(对齐的):一个时钟周期
- 读奇地址开头的16位:两个时钟周期(因为两个数据不对齐,字地址不同)
译码电路
- 直接用门电路或者38译码器
- ROM作译码器
- 数字比较器作译码器
- PLD作译码器
ROM作为译码器
ROM本质是一个映射:(接口地址,ROM值)。接口地址就是各个接口的01情况,所以映射可以理解为(接口电平,ROM值)。由此可见,如果把ROM值填为各个接口电平真值表的取值,那么ROM就可以实现任何组合逻辑。
其他地方填全1保证了其他情况下SRAM不会被选中
- 上拉电阻:保证当ROM译码器不选中任何芯片的时候,引脚输出为高电平。如果不加,则为高阻状态,芯片片选相当于悬空,状态不定。
- 245和244分别是双向(数据线)和单向驱动(地址线)
- 245的DR段连接内存读
数字比较器作为译码器
好处是可以很方便地把同一个芯片映射到不同的地址上。
利用PLD作为译码器
PLC是可编程阵列,把它用作译码器的原理和ROM译码器是一样的,这里就不再赘述。
用SRAM构成80386/80486内存
- 8086是双体结构,而80386是多体结构,但无论是几个存储体,本质都一样,都是位扩展,拓展位体现在片内地址后面。
- 这里分为4个存储体,所以字拓展位为2位,译码为四路(BE0~3)后直接连到四个芯片的片选,数据线按高低位连接,地址线偏移2位后连接。
- 内存的读写信号需要译码后读出(图中74F138)
多体结构存储情况
利用SRAM构成Pentium的内存
ROM
用EPROM构成8086/8088的内存
只读不写,所以没有接内存写信号
- 怎么将地址范围转换为存储器容量
- 两个地址范围映射到同一个较大的存储器时,译码器怎么接?低电平或逻辑,接与门即可
拓展:
如果不采用8K8bit而采用8K4bit的存储器,则需要先进行位拓展成8位存储器(8086无法读取4位内容),然后再进行字扩展
用E2PROM构成8086/8088内存
基本介绍:
5~10ms对于cpu来说是一段很长的时间,此时cpu处于忙等待状态
电路构成:
busy信号开漏输出,实现线与逻辑,只要有一个芯片的busy=0,那么状态端口的输出就为0,表示总线忙。
状态端口通过一个三态门输出,只有在 \(A_{15}-A_0\) 为 7000H 的时候,才能读取到状态端口的电平情况,相当于定义了一个接口地址。 【避免总线竞争】
闪速E2PROM:Flash
NOR支持随机读取,可以像读取SRAM一样读取它,但是集成度低,速度慢
不支持随机读取,但是集成度高,速度快
其他存储器
SRAM综合设计举例
举例1:构成8086内存(16位)
- 选择芯片类型与数目,画出芯片连接图:由于是8086,所以需要位扩展为16位内存,划分奇偶存储体,相同类型的芯片为偶数片。A0作为偶地址(低地址)片选信号,BHE作为高地址片选信号。
- 画出内存分析表,圈出芯片内部地址范围,构成译码电路:由于芯片的起始地址不是16K的整数倍,所以芯片内部的起始地址不是从0开始,此时芯片的内部地址 A13 需要参与译码,这样从A12开始看,就是从0开始了。这样分完后16K的存储器会对应译码器的两路输出,把这两路输出相与即可。
- 加驱动:复习244和245的结构【8位输入,一个双使能,一个单使能】
- 单向驱动:地址线 \(A_1 - A_{13}\) ,控制信号:A0、BHE、MEMR、MEMW。共17根线。三片244
- 双向驱动:数据线 \(D_0 - D_{15}\) 。两片235,方向控制用MEMR信号,使能信号接芯片片选。
模块化电路设计
- 编写汇编程序:
CX=24K,预计算出24K*0.001=24
举例2:构成8088内存(8位)
- 选择芯片类型与数目:由于是8088,内存为8位,所以无需位扩展,相同芯片的数目也不必为偶数位。
- 画内存分析图,圈出片内地址,构成译码电路:片内地址从0开始,无需参与译码。
- 加上驱动:单向244(地址与控制信号)与双向245(数据信号)
总结
设计步骤:
区分8086还是8088:8086是16位内存,且分奇偶存储体。
- 选择芯片的类型和数目:
- 8086:位扩展,相同类型芯片为偶数片
- 8088:无限制
- 画出内存地址分析图,圈出片内地址,构成译码电路
- 8086:位拓展后的芯片容量翻倍,看做整体;A0作为地位片选信号,片内地址整体左移;如果片内地址不是从0开始,那么片内地址要参与译码
- 8088:无限制
- 加上驱动:单向244(地址与控制信号)与双向245(数据信号)
- 244和245都是8个输入
- 244两个使能,245一个使能一个方向,方向接驱动后的MEMR
- 编写汇编程序:与电路的相关性体现在
- 译码电路的内存地址
- 接口地址
第六章 输入输出技术