存储器分类
- 寄存器
- Cache(一般use SRAM)
内部存储器 (ROM, RAM)
CPU总线访问
容量$\le 2^{N_{地址总线}} \times 8bits$
内容:系统软件(ROM),当前将运行application software(RAM)
内存分类:
基本内存:00000H~9FFFFH,640KB,DOS系统;
高端内存:A0000H~FFFFFH,384KB,系统ROM、缓冲区;
扩充内存:CPU直接寻址范围之外的物理存储器,扩充内存管理软件EMM管理,映射到高端内存中;
扩展内存:1MB以上但不是通过内存扩充卡映射来获得的内存空间;
- 外部存储器
- 专用设备(如硬盘驱动器、软驱、光驱等)管理
- CPU不直接访问
- 容量不受限制
- 内容:任意 software, data
程序运行
- step1 内存ROM: 引导程序 -> start system
- step2 外存: 系统、应用程序 -> 内存RAM
- step3 内存RAM: run 系统、应用程序
- step4 内存RAM: store 中间结果(while running program)
- step5 内存RAM: 最后结果 -> 外存(when program exit)
存储器指标
- memory size
- access time(存取时间、速度)
- 功耗
- 性价比
- 工艺复杂
- 集成度
- 控制简单:是否need 刷新
RAM(Random Access Memory)
种类:
Static RAM, SRAM
例子:
2114 (1K*4位)
6116 (2K*8位) $\overline{CS}$
6264 (8K*8位) $\overline{CE}$
62128 (16K*8位)
62256 (32K*8位) $\overline{CS}$
FIFO: First In First Out
ASRAM (asynchronous SRAM)
SSRAM (synchronous SRAM)
例子:SBSRAM: Synchronous Burst SRAM
Dynamic RAM, DRAM
SDRAM (Synchronous Dynamic RAM)
用时钟同步CPU和DRAM;
有突发模式;
有PC66/100/133/150不同规范速率,工作频率分别是66/100/133/150MHz;
DDR SDRAM (Double data rate SDRAM)
时钟上升沿、下降沿均传输数据,速率加倍;
数据线宽64位(8字节);
主要标准:DDR200/266/333/400等,分别对应PC1600/2100/2700/3200规范
例:DDR200,工作频率100MHz,传输速率200MHz,传输带宽1600MB/s。
DDR2 SDRAM
在DDR的基础上,有两倍的预读取能力,数据传输速率4倍于工作频率;
主要标准:DDR2 400/533/667/800等;
DDR3 SDRAM
是DDR2的升级,数据传输速率8倍于工作频率;
主要标准:DDR3 800/1066/1333/1600等;
DDR4 SDRAM
是DDR3的升级,数据传输速率8倍于工作频率,频率提高;
最低标准DDR4 1600。random access/read any unit
- 不同于顺序存储器,for不同存储单元:visit time 一样
- 存储数据lost(when 断电)
property | SRAM | DRAM |
---|---|---|
memory size | small | big |
access time | short | long |
功耗 | 大 | 小 |
性价比 | price high | price low |
工艺复杂 | complex | simple |
集成度 | 低 | 高 |
控制简单:是否需刷新 | 简单:不需要 | 复杂:需要 (刷新时限 2ms) |
SRAM-62256 && DRAM MT48LC4M32
62256
A0 ~ A14 15根地址线,可访问215=32768(32K)存储单元;
I/O1 ~ I/O8,8根数据线;
3个控制引脚 控制 存储器的读写:
$\overline{CS}$:片选信号chip select,低有效,允许存储器读写 (6116 为$\overline{CS}$ ,6264中为 $\overline{CE}$ chip enable)
$\overline{WE}$:写控制信号,低有效,低电平为写
$\overline{OE}$:输出使能,低有效,在读存储器周期中,$\overline{OE}$为低电平允许输出数据
两根电源线:Vcc,Vss
为了刷新,控制器有3 功能
时序功能
地址处理功能
仲裁功能
MT48LC4M32
初始化:Initialization
在正常操作之前进行
通过LOAD MODE REGISTER command对模式寄存器(Mode Register)编程
ROM
种类
掩膜ROM: Mask Programmed ROM
PROM 可编程ROM: Programmable ROM
EPROM 可擦除的PROM: Erasable PROM
例子:2716,2732,2764,27128,27256,27512 $\overline{CE}$
它们的存储容量分别为2K、4K、6K、16K、32K、64K Byte;
- $\overline{E}$ 即 $\overline{CE}$ ,$\overline{G}$ 即 $\overline{OE}$
E2PROM/EEPROM 电擦除的PROM: Electrically Erasable PROM
例子:2816的基本特点
容量为2K×8bit的电擦除PROM,它的管脚排列与EPROM2716一致。
2816的存储时间为250ns, 按字节为单位进行擦除和编程,擦除和编程只用$\overline{CE}$、$\overline{OE}$两个信号来控制
NOR flash/NAND flash 闪烁存储器FLASH
串行EEPROM
Cache
微机系统的内存组织
16位微机系统 (8086)
20根地址线—> 2^20=1MB存储空间 00000H~FFFFFH;
两个512KB的存储器组成:(两个存储器和地址线A19~A1连接)
奇地址存储器(高字节存储器),与数据总线D15 ~ D8高8位相连;
偶地址存储器(低字节存储器),与数据总线D7 ~ D0低8位相连;
字节访问 && 按字访问两种方式
按字节访问时:可只访问奇地址存储体,也可只访问偶地址存储体
按字访问时:
对准状态
1 个字的低 8 位在偶地址体中,高 8位在奇地址体中。
(A0 和$\overline{BHE}$ ==0) 用 1个总线周期即可通过D15~ D0 完成 16位的字传输
非对准状态
1个字的低 8位在奇地址体中,高 8位在偶地址体中。
CPU 会自动用两个总线周期完成 16位的字传输,
第一个总线周期访问奇地址体,在 D15~ D8 传输低 8位数据,
第二个总线周期访问偶地址体,在 D7~ D0传输高 8位数据。
32位微机系统
32位地址总线—> 2^32 = 4GB 的物理地址空间,地址范围为 0 ~ FFFFFFFFH
4个存储体,每个为 1GB : (4个存储体均与地址线 A31~ A2 相连 )
均与32位数据总线D31 ~ D0相连
字节允许信号$\overline{BE3}$~$\overline{BE0}$则作为体选信号分别连接 1个存储体
32 位存储器要满足对 8位、16 位、32 位各种不同规格的数据的访问 ($\overline{BE3}$~$\overline{BE0}$ 决定)
在 D23~ D16或 D31~ D24上进行 8位传输时,分别在 D7~ D0 或 D15~8 上传输同样数据;
在 D31~ D16上进行 16位传输时,在 D15~0 上也传输同样数据。
- 地址 A31~ A2 选择双字的起始地址,(A1A0==00)地址A31~A0是 4的倍数即 0、4、8、……FFFFFFFCH
对准状态、非对准状态:
如果用奇地址进行字访问或双字访问,或者用不是 4的倍数的地址进行双字访问,
==> 出现非对准状态,这时需要用 2个总线周期完成字传输或双字传输
存储器应用设计
预备知识:
74LS138 :
G1 == 1 & $\overline{G2A}$ == 0 & $\overline{G2B}$ == 0时选通
(CBA) = i 决定 $\overline{Y_{i}}$ == 0
注意:
8086、8088的 $\overline{M}$/IO == 0 时 ,才能74LS138选通,对存储器操作
8086、8088的 $\overline{WR}$ —> SRAM存储器$\overline{WE}$ (EPROM、EEPROM没有)
8086、8088的 $\overline{RD}$ —> SRAM、EPROM、EEPROM存储器 $\overline{OE}$
8086通过 $\overline{Y_{i}}$ + A0 => $\overline{CE}$ 偶位、$\overline{Y_{i}}$ + $\overline{BHE}$ => $\overline{CE}$ 奇位 —-> 8位(D7~D0, D15~D8)拓展为16位(D15~D0);
8088 没有A0,$\overline{BHE}$ 决定输出奇偶位的作用
2716,2732,2764,27128,27256,27512 的 $\overline{PGM}$ == +5V
选通信号:
- SRAM (6116、62256 为$\overline{CS}$ ;6264中为 $\overline{CE1}$ chip enable,$\overline{CE2}$不接)
- EPROM 2716,2732,2764,27128,27256,27512 为 $\overline{CE}$ or $\overline{CS}$
存储拓展
存储宽度扩展: 位扩展 (多个存储器$\overline{CE}$ 同时选通,data同时输入输出I/O)
8086的8位(D7~D0, D15~D8)拓展为16位(D15~D0)
[通过 $\overline{Y_{i}}$ + A0 => $\overline{CE}$ 偶位、$\overline{Y_{i}}$ + $\overline{BHE}$ => $\overline{CE}$ 奇位]
存储深度扩充: 字扩展 (不同 Address —> 不同存储器的$\overline{CE_{i}}$ 分别选通)
地址译码方式
线选法
直接用地址线作为片选信号,不需要片选译码器
优点:译码逻辑简单
缺点1:整个存储器的地址常常不连续;
缺点2:同一单元可对应不同的地址,形成地址重叠
全地址译码法
除去用作片内译码的低位地址后,把全部高位地址进行译码来产生片选信号
优点:存储单元地址是唯一的、不存在地址重叠问题;
缺点:需要较多的译码逻辑
全译码法8088与SRAM 6264(8K * 8bits)构成32KB存储空间
部分地址译码法
除去用作片内译码的低位地址后,将高位地址的一部分进行译码来产生片选信号
优点:存储单元地址是唯一的、不存在地址重叠问题 => 充分利用存储空间;
缺点:需要较多的译码逻辑
部分译码法8088与SRAM 6116(2K * 8 bits)构成8KB存储空间
8086 和 8088的杂例
图5.35 8088需要16KB的ROM和16KB的RAM
16KB的ROM:两片EPROM2764 8K*8bits
16KB的RAM:两片SRAM6264 8K*8bits
图5.36 8088需要256KB的ROM和256KB的RAM
256KB的ROM:?片EPROM27256 32K*8bits
256KB的RAM:?片SRAM62256 32K*8bits
ROM地址范围的选取:高端,C0000H~FFFFFH
RAM地址范围的选取:00000H~3FFFFH
8086芯片简化图
8086通过 $\overline{Y_{i}}$ + A0 => $\overline{CE}$ 偶位、$\overline{Y_{i}}$ + $\overline{BHE}$ => $\overline{CE}$ 奇位 —-> 8位(D7~D0, D15~D8)拓展为16位(D15~D0);
图5.39 全译码法8086与6116构成8KB存储空间 (6116:2K*8bits)
图5.40 8086与ROM/RAM综合
6116(2K×8bit)构成8KB(4K字)的RAM
2716 (2K×8bits)构成8KB(4K字)的ROM