Skip to content

第六章:存储器系统设计 ​

§ 6.1 存储器的分类 ​

存储器分为外存储器和内存储器

外存就是磁盘那些

我们主要讨论内存的电路设计,内存也叫半导体存储器

内存分为两类:

  • 只读存储器
    • ROM 一次性掩模只读存储器
    • PROM 可编程的一次性掩模只读存储器 (只能一次性编程,买回来是空片,每个二进制代码都是1)
    • EPROM(常用) 紫外线可擦除的可编程ROM,目前的EPROM大多是以27打头的,2716就是2kb的容量
    • EEPROM 电可擦除的自读存储器 大多数型号都是28系列
  • 随机存取存储器(RAM)
    • SRAM(静态RAM) 存储原理类似单稳态电路,读写速度快,但价格高,一般用在cache里 目前的SRAM一般是62打头的例如6264,即8k*8的容量,62128即8K*8的容量 2114芯片为1k*4的芯片,一个单元是4位,但是计算机内部的内存单元是8位组织的,所以我我们需要把两个2114串起来变成一个1k*8的单元,这种在每个字节位数上的扩展叫做位扩展,那么如果我们需要2k*8单元,我们就需要把刚才用两个2114构成的1k*8的字节再弄一个上去,这就叫字节扩展
    • DRAM(动态RAM) 原理类似于电容,电容会漏电,所以需要设计动态刷新电路,这是一个很复杂的电路,刷新周期一般不小于2毫秒,读写速度慢,但价格低廉,计算机内的内存条都是这个

由于DRAM需要设计复杂的动态刷新电路,所以本章重点为SRAM的设计

ROM里存取的都是系统管理程序,例如主板上的ROM里存储的就是BIOS(基本输入输出系统) 如果我们自己设计了一个东西,我这个设备里面的ROM里存储的也是我这个产品的管理程序,我们一般把这个管理程序称为监控程序

image-20210331211039544

§ 6.2 存储器的主要技术指标 ​

  1. 容量 例:总容量32KB 选择:62256芯片,一片芯片为32k*8容量,所以需要1片 选择:2114芯片:一片芯片为1k*4的容量,两片扩展为1k*8,需要2*32=64片 这样选择缺点很多,例如,功耗大,散热大,干扰大,体积大 所以在存储器扩展设计时,尽量选容量大的来扩展

  2. 速度 存取时间(access time)是指从启动一次存储器操作,到完成这次操作的时间。比如对于读操作,从读信号有效到数据稳定地出现在存储器芯片数据引脚所经历的时间就是存取时间。

    存储周期(memory cycle)是指对于两次独立的存储器单元的操作,从启动第一次操作开始到能够启动第二次操作之间的最小时间间隔。 保守估计,芯片最小读出和写入时间应该满足:

§ 6.3 几种存储器芯片 ​

SRAM 6264芯片 6264为8k*8的容量,采用双列直插封装,28个引脚,其中13根地址输入引脚,8根数据引脚,一根GND接地线,一根Vcc电源线 片选信号有两个:,当同时有效时,才被选中,这个器件未选中的时候数据引脚呈现第三态,在实际引用中我们可以让一个信号始终有效,把他改为单片选 一个输出允许引脚,当这个引脚有效时,把地址信号对应的单元传到数据总线上输出给CPU 一个写控制端,当这个引脚有效时,把数据引脚上的信息,写到地址引脚接收到的地址信息对应的单元上去 NC引脚为悬空引脚,没有实际作用

显然,和不可能同时有效

image-20210401054013612

6264的存储器结构为8k个8位单元,8K为单元个数,8k=,所以是13根地址线,一个单元是8位,所以是8根数据线

对于8088而言,非常简单,我们只需要把地址线的低13位,即:A0~A12和6264的地址线相连,剩余的地址线走译码电路之后连接片选信号,保证剩余位数不变的时候选中该片,8位数据线正好连接8位数据线

对于8086而言相对复杂一点,我们要把A1~A13连接到数据线,除了A0以外,剩下的地址线也去走译码电路连接到片选信号,如果我们让A0=0,那么这是偶地址,走低8位数据线,所以我们把6264的地8位数据线和6264的数据线连起来,如果我们让=0,表示这是奇地址,我们就把8086的高8位数据线连接到6264上

如果我们要给系统扩充32k字节的SRAM,用Intel公司的6264芯片,需要多少片? 6264的内存组织为8k*8,我们需要32k*8的内存,所以一共需要4片 我们为这样一个32k字节的内存布线 四片数据线连到一起,四片地址线连到一起,连到(最大模式为),连到(最大模式),接到+5V电源 13根地址线连接到8088的A0~A12,因为有4片,所以我们把A13和A14用来选择模块,剩下的都不变,,我们把这些不变的线译码后,再和A13和A14译码产生四个信号做模块选择

image-20210401062444754

本图为6116,原理是类似的

在进行译码的时候,和这种控制信号也要参加译码,让这两个线过一下或们,保证CPU目前正在对存储器进行操作,最小模式时,要把

2114芯片(了解)

组织结构为1k*4,如果我们把这个芯片要组成存储器子系统,要先把他扩展为8位的内存单元

image-20210401063959958

负责读和写两个功能,低电平时表示对存储器写,高电平为对存储器读

image-20210401064619509

EPROM

2764芯片 片容量为8k*8

image-20210401064859777

13根地址引脚,8根数据引脚, 为片选信号,和6264的是一样的,为读允许信号.Vpp为编程电压输入端,为编程引脚,26脚为悬空引脚,没有用

eprom有两种工作方式,只读和编程,编程方式只能写入,正常方式只能读取

我们要对2764进行写入的时候,给地址线前面设计一个锁存电路,数据线也设计一个锁存电路,当数据段端和地址端都锁好后,给Vpp一个编程电压(高压,不同公司电压不同),再给一个负脉冲(50ms左右),就完成了一个字节单元的写入 但是在实际上,为了快速编程,我们只需要给一个8微秒就可以实现百分之九十九的成功率 写入完毕一定要再把数据读出来核对一下

我们的重点应该是只读状态下的2764电路设计

地址线,数据线,和6264一样 片选信号为,和6264的是一样的

和6264也一样,Vpp和接+5V

§ 6.4 扩展存储器设计 ​

位扩展,在2114已经说过了,字节扩展在6264也说过了,这里就不重复介绍了

存储器地址译码

看一个例题: image-20210401073605212

首先我们分析一下,8k容量,需要1片6264,并且起始地址是62000H,末址为62000H+2^13^-1

A19 A18 A17 A16 A15 A14 A13A12~A0
0 1 1 0 0 0 10000000000000
0 1 1 0 0 0 11111111111111(8K)

image-20210401075158270

这样就得到了片选信号,这里不变的地址全部参加了译码,这种译码方式称为全地址译码

全地址译码的优点:地址是唯一的,节约空间 全译码的缺点:线路复杂,用到的逻辑门多,成本增加,费硬件

如果我们让一部分不变的线路不参加译码,那么就意味着有部分内存空间重叠了,这种译码方式叫做部分地址译码 部分译码方式可以让译码电路简答,但地址有重叠

74LS138 38译码器,如下 image-20210402010426632

真值表: image-20210402010437517

8086系统中存储器的扩展

在8086系统中,扩展存储器时要考虑奇体和偶体 奇体存储器的数据线要和8086高八位数据线相连 偶体存储器的数据线要和8086低八位数据线相连

奇偶体各有19根地址线,最大寻址为512k,两个合起来就是1M

奇体和偶体的19根地址线连起来,连接到8086的高19位地址线,把A~0~空出来单独译码

A0和读写控制信号译码为低电平再连接偶体的片选信号

和读写控制信号信号译码为低电平再连接偶体的片选信号

CPU的读写控制信号和内存的读写控制信号相连

控制信号过与门后与走或门 最小模式时,参加译码

以笔记为镜,可以知得失