版权所有,引用请注明出处 第四章、存储系统 原著 谭志虎 主讲(改编) 蒋文斌
Outline 存储器概述 主存储器 高速缓冲存储器 外存储器 虚拟存储器 存储保护
4.1 存储器概述 存储器分类 存储器分级结构 存储器的性能指标
存储器分类 按存储介质分 按存取方式分 按存储器的读写功能分 按信息的可保存性分 按在计算机系统中的作用分
按存储介质分 半导体存储器 磁存储器 激光存储器 双极型存储器 MOS存储器 速度快、功耗低 磁芯、磁带、磁盘 容量大,速度慢、体积大 CD-ROM CD-RW CD-R DVD-ROM DVD-RW DVD-R 便于携带,廉价,易于保存
按存取方式分 随机存储器 顺序存储器 存储器中的任意存储单元都能随机存取 且存取时间与物理位置无关 磁芯、半导体存储器 存储器存取时间与物理位置有关 磁盘、磁带、激光存储器
按读/写功能分 只读存储器 (ROM) 存储器内容是预置的,固定的,无法改写 读/写存储器 既能读出也能写入的存储器 随机存储器RAM
按信息的可保存性分 易失性存储器 Volatile Memories 非易失性存储器Non-Volatile Memories 断电后信息消失 SRAM DRAM 非易失性存储器Non-Volatile Memories 断电后仍能保存信息 磁存储器、激光存储器、NVRAM
按在计算机系统中的作用分 主存储器 辅助存储器 高速缓冲存储器 Cache 控制存储器
存储系统分层结构 存储容量 CPU寄存器 Cache(SRAM) 内存 主存(DRAM) 磁盘 外存/辅存 磁带、光盘 存储速度 单位成本
Outline 存储器概述 主存储器 高速缓冲存储器 外存储器 虚拟存储器 存储保护
4.2 主存储器 基本概念 随机存储器 只读存储器 主存储器与CPU的连接 几种新型存储器 高速主存储器
主存储器特征 由半导体MOS存储器组成 存储单元:字存储单元,字节存储单元 按地址进行访问 字地址,字节地址 属于随机访问存储器 主存空间包含读/写存储空间和只读存储空间
2 主存储器 基本概念 随机存储器 只读存储器 主存储器与CPU的连接 几种新型存储器 高速主存储器
随机存取存储器(Random Access Memory) 静态MOS存储器 SRAM 动态MOS存储器 DRAM MOS: Metal Oxide Semiconductor
三极管的特性 ic ib icmax i b Rb i c B E C Ucc
三极管的特性 截止状态: UB 、ib、 ic为0,Uc 高 放大状态: ib、 ic为线性放大关系 Rb i c B E C Ucc
六管SRAM存储器(SRAM Cell) T1 T2 工作管 T3 T4负载管 T5 T6 X向门控管 T7 T8 Y向门控管 X地址译码线 VDD(5V) T4 T3 T5 T6 T1 T2 T1 T2 工作管 T3 T4负载管 T5 T6 X向门控管 T7 T8 Y向门控管 Vss(0V) T7 T8 I/O O/I Y地址译码线
六管SRAM存储器两种状态 T4 T3 Vss(0V) T1 T2 T5 T7 T8 T6 VDD(5V) Y地址译码线 I/O A B X地址译码线 X地址译码线 VDD(5V) T3 T4 T5 A B T6 T1 T2 Vss(0V) T7 T8 I/O I/O Y地址译码线 截止状态 导通装态 低电位 高电位
六管SRAM存储器读操作 X地址译码线 VDD(5V) T3 T4 T5 A B T6 T1 T2 Vss(0V) D D T7 T8 I/O Y I/O 截止状态 导通装态 低电位 高电位
六管SRAM存储器写操作 X地址译码线 VDD(5V) T3 T4 T5 A B T6 T1 T2 Vss(0V) D D T7 T8 I/O I/O Y地址译码线 截止状态 导通装态 低电位 高电位
位存储体封装 X地址译码线 X X为行选择线 D为数据输出口 位存储体的行选择线选中方能读出或者写入数据 位存储体 D D Y地址译码线
存储矩阵 X0 D 位存储体 X D 位存储体 X X1 D 位存储体 X X2 D 位存储体 X X3 D 位存储体 X Y0 Y1
64x64 存储矩阵 … X0 X1 X63 0,0 1,0 63,0 … Y0 0,1 1,1 63,1 … Y1 0,63 1,63 63,63 … Y63 … 存储矩阵 64×64=4096 I/O电路
4k*4位存储体 D0 D1 D2 D3 64*64 Y0 Y63 … 64*64 Y0 Y63 … 64*64 Y0 Y63 … X0 X63 X1
4k*4位存储体 64*64 Y0 Y63 … X0 X63 X1
地址译码器 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 3:8译码器 OE A2 A1 A0 A2A1A0 Y7 Y6 Y4 Y3 Y2 000 1 100 1 001 1 101 1 01 010 1 110 1 011 1 111 1
各种译码器 1-2译码器 2-4译码器 3-8译码器 4-16译码器 3-8译码 Y7 Y2 Y1 Y0 … OE#
单译码方式 N位地址,寻址2n个存储单元,2n根译码线 Byte 0 Byte 1 N 路 N 译 Byte 2 位 码 地 … 电 址 输 入 Byte 2 … … … Byte 2n-1 N位地址,寻址2n个存储单元,2n根译码线
双译码方式 X 地 址 译 码 Y 地 址 译 码 N位地址, 寻址2n个存储单元 2*2n/2根译码线 01 02 03 0n 10 12 13 1n Y 地 址 译 码 N位地址, 寻址2n个存储单元 2*2n/2根译码线 n0 n1 n2 nn
静态存储器芯片结构 … X0 X1 I/O 电 路 X向地址译码器 X向驱动器 … DBUS … Y0 Y1 m位Y向地址 Y向地址译码器 存储单元阵列 I/O 电 路 X向地址译码器 X向驱动器 … DBUS n位X向地址 … Y0 Y1 m位Y向地址 Y向地址译码器 Y向驱动器 控制电路 RD WR CS
驱动器与I/O电路 驱动器 I/O电路 一条选择线带很多存储位时负载过大 在地址译码器输出端增加驱动电路 保证每一个存储位都能正常工作。 存储体与数据总线之间的电路 读出时具有放大信号的作用
2114引脚图(1Kx4) 地址线 数据线 读写控制线 片选线 电源线 地线 2114 A6 A5 A4 A3 A0 A1 A2 CS GND 1 2 3 4 5 6 7 8 9 18 17 16 15 14 13 12 11 10 VCC A7 A8 A9 I/O1 I/O2 I/O3 I/O4 WE 2114
A3 行 选 择 64×64 存储矩阵 VCC A4 GND A5 … A6 A7 A8 … I/O1 输入 数据 控制 I/O2 I/O3 列选择 I/O2 I/O3 I/O4 A0 A1 A2 A9 CS & WE &
单管DRAM存储器及读过程 X地址译码线 T1 C Vss(0V) D T2 Y地址译码线 I/O 电容用于存储电荷,有电荷代表1,否则代表0 Vss(0V) D T2 Y地址译码线 I/O
单管DRAM存储器写过程 X地址译码线 C T1 电容用于存储电荷,有电荷代表1,否则代表0 Vss(0V) D T2 Y地址译码线 I/O
DRAM 刷新相关概念 泄漏完毕之前如不能补充电荷,存储信息发生丢失,信息存储到信息泄漏完毕之间必须完成刷新过程,称为最大刷新周期, 从上一次对存储器刷新结束到下一次对整个存储器刷新结束所需要的时间称为刷新周期,刷新一块芯片所需的刷新周期数由芯片矩阵的行数决定。
DRAM 刷新放大器 放大器 有效数据 X地址译码线 预置脉冲PS A’ X / Y / RD C T1 T2 D Y地址译码线 I/O Vss(0V) VDD(5V) T3 PS T4 TS A B T1 T2 放大器 I/O
DRAM 阵列 Y0 Yi I/O X0 X1 VDD(5V) VDD(5V) Xi
2116引脚图(16Kx1) 地址线 数据线 读写控制线 RAS CAS 电源线 地线
2116 存储单元 32x128存储单元 64条选择线译码器(X) 128输出放大器 32x128存储单元 128条列选择线译码器(Y)
DRAM的刷新 集中式 分散式 异步式
集中刷新方式 2ms内集中安排所有刷新周期。 用在实时要求不高的场合。 读写/维持 刷新过程/ 死区 刷新间隔2ms RW RW … RW 刷新1 刷新2 … 128 RW 500ns 500ns 刷新间隔2ms 用在实时要求不高的场合。
分散刷新方式 各刷新周期分散安排在存取周期中。 用在低速系统中 存储周期 刷新间隔2ms RW 刷新1 RW 刷新2 … … RW 128 500ns 500ns 刷新间隔2ms 用在低速系统中
异步刷新方式 用在大多数计算机中。 各刷新周期分散安排在2ms内 2ms 每隔一段时间刷新一行。 ≈15.5 微秒 128行 每隔15.5微秒提一次刷新请求,刷新一行;2毫秒内刷新完所有行 RW … RW 刷新1 … RW … RW 128 RW 500ns 500ns 15.5微秒 15.5微秒 用在大多数计算机中。
刷新的几点说明 不同材料、生产工艺的动态存储器刷新周期不同,常见的有2ms 、4ms、 8ms,刷新时间间隔不能超过刷新周期。 存储体采用双译码的行、列结构,刷新是按照行进行的。 刷新地址是由专门器件----- 刷新地址计数器给出。
4.2 主存储器 基本概念 随机存储器 只读存储器 主存储器与CPU的连接 几种新型存储器 高速主存储器
只读存储器(ROM) 掩模式只读存储器(MROM) 一次编程只读存储器(PROM) 多次编程只读存储器(EPROM, EEPROM)
只读存储器 VCC X T1 S D
只读存储器阵列 VCC A3 A2 A1 A0 2 3 4 1 输出 5 片选 行地址译码器 列地址译码器 X0 X1 X2 X3 Y0
熔丝式ROM(PROM) X T1 S D
可擦写ROM——EPROM N基片 源极 - - - - 漏极 电极导体 (a) 单元结构 浮置栅 二氧化硅 (b) 电路结构
MOS管与EPROM的两种状态 (a) MOS晶体管结构 源极 栅极 漏极 电极导体 二氧化硅 N基片 (b) MOS晶体管导通状态 +5V - - - - 漏极 电极导体 二氧化硅 N基片 (b) MOS晶体管导通状态 +5V Vdd Vss - - - - - - - - - - - - - - - - - - - - + + + N基片 (d) EPROM晶体管导通状态 +25V 0V 击穿电流 - - - -- - - - - - - - - - - - - - - - - - - + + + + + N基片 (c) EPROM晶体管结构 浮置栅 - - - - N基片
EPROM 高压写入 紫外线光照擦除
编程器
紫外线擦除器
电可擦写ROM——EEPROM Electrically Erasable Programmable ROM 控制栅极 源极 漏极 电极导体 - - - - - - - - 基片 二氧化硅
易失性半导体存储器 VOLATILE FPM DRAM (Fast Page Mode RAM) SRAM DRAM FPM DRAM (Fast Page Mode RAM) EDO DRAM (Enhanced Data Out DRAM) SDRAM (Synchronous DRAM) PC66 PC100 PC133 168 pin DDR SDRAM (double data rate synch. DRAM) PC1600 PC2100 PC2700 PC3200 184/240 pin DDR200 DDR266 DDR333 DDR400 RDRAM (Rambus DRAM)
非易失性半导体存储器 NON-VOLATILE ROM (read only memory) PROM (Programmable ROM) EPROM (Erasable PROM) EEPROM (Electrically Erasable PROM) NVRAM (Non-volatileRAM) BRAM (Battery-backup RAM) FERAM (FerroelectricRAM) MRAM (Magnetoresistive RAM)
4.2 主存储器 基本概念 随机存储器 只读存储器 主存储器与CPU的连接 几种新型存储器 高速主存储器
新型存储器 NVRAM Flash Memory
NVRAM 非易失性存储器 SRAM、微电池、电源检测、切换开关集成 写数据时间短,适合存放实施采集的重要数据。
闪速存储器 Flash Memory 在不加电的情况下可长期保持存储的信息。本质上属于EEPROM,既有ROM的特点,又有很高的存取速度,而且易于擦除和重写,功耗很小。 存放BIOS,升级方便
4.2 主存储器 基本概念 随机存储器 只读存储器 主存储器与CPU的连接 几种新型存储器 高速主存储器
主存储器与CPU的连接 地址线的连接 数据线的连接 控制信号线的连接 存储扩展
主存储器与CPU的连接 A10-0 MREQ# R/W# CPU D1~D0 WE A CS 2K ×2 D0D1 D0,D1
存储器扩展 字长扩展(数据总线扩展) 各芯片并行工作 字数扩展(地址总线扩展) 同一时刻仅一芯片工作
字长(位)扩展(DBUS) 2Kx2 -> 2Kx8 A10-0 MREQ# R/W# CPU D7~D0 A10-0 WE A CS 2K ×2 D D7D6 D5 D4 D3 D2 D1 D0 一个存储系统容量为 N位,若使用k位的芯片,k<N,共需要(N/k)个芯片
字数(字)扩展(ABUS) 8Kx8->32Kx8 MREQ# R/W# CPU D7~D0 2-4译码 ramsel4 ramsel2 ramsel1 ramsel0 OE# A14-13 A12-0 WE A CS 8K ×8 D WE A CS 8K ×8 D WE A CS 8K ×8 D WE A CS 8K ×8 D D7~D0 一个存储系统容量为 M,若使用容量l的芯片,l<M,共需要(M/l)个芯片
一个存储系统容量为 M*N位,若使用l*k位的芯片,l<M,k<N,共需要(M/l)*(N/k)个芯片 综合扩展 8Kx8 -> 32Kx32 MREQ# OE# 2-4译码 00 01 10 11 A14-13 A12-0 A12-0 R/W# CPU WE A CS 8Kx8 4片 D WE A CS 8Kx8 4片 D WE A CS 8Kx8 4片 D WE A CS 8Kx8 4片 D D31~D0 D31~D0 D31~D0 D31~D0 D31~D0 一个存储系统容量为 M*N位,若使用l*k位的芯片,l<M,k<N,共需要(M/l)*(N/k)个芯片
芯片表示的主存空间 8位 8位 地址 1 2 Address 8K 1 8K 2 2048个 存储单元 1 2 3 4 … 8K 3 1 2 Address 8K 1 8K 2 2048个 存储单元 1 2 3 4 … 8K 3 Address 8K 4 32767 D7D6…D1D0 D7 D6 … D1 D0
各芯片地址范围 8位 A14A13A12 A0 . 1 8K 1 1 . 8K 2 1 . 8K 3 1 . 8K 4 D7D6…D1D0
例1 设有32片256K×1位的SRAM芯片 (1) 采用位扩展方法可构成多大容量的存储器? (2) 该存储器需要多少字节地址位? (3) 画出该存储器与CPU连接的结构图,设CPU的接 口信号有地址信号、数据信号、控制信号MREQ#和R/W#。 解:256K*1位SRAM芯片包含18根地址线 (1)32片256K×1位的SRAM芯片可构成256K×32位的存储器。 (2)如采用32位字编址方式,则需要18条地址线,因为218=256K Word。 如果采用的字节编址方式,则需要20条地址线,因为220=1024K byte。
A17-0 MREQ# R/W# CPU D31~D0 A17-0 WE A CS 256K ×1 D WE A CS 256K ×1 D WE A CS 256K ×1 D WE A CS 256K ×1 D D0 D1 D2 D31
例2 设有若干片256K×8位的SRAM芯片,问: (1) 采用字扩展方法构成2048KB存储器需多少片SRAM芯片? (2) 该存储器需要多少字节地址位? (3) 画出该存储器与CPU连接的结构图,设CPU的接口信号 有地址信号、数据信号、控制信号MREQ#和R/W#。 解:256K*8位SRAM芯片包含18根地址线 (1) 该存储器需要2048K/256K = 8片SRAM芯片; (2) 需要21条地址线,因为221=2048K, 其中高3位经过译码器输出后用于芯片选择, 低18位作为每个存储器芯片的地址输入。 (3) 该存储器与CPU连接的结构图如下。
A20-0 MREQ# R/W# CPU D7~D0 111 译码器 010 001 000 … OE# A20-18 A17-0 WE A CS 256K ×8 D WE A CS 256K ×8 D WE A CS 256K ×8 D WE A CS 256K ×8 D D7~D0 D7~D0 D7~D0 D7~D0
(2)需要(2048/256)x(32/8)=32片SRAM芯片。 例3 设有若干片256K×8位的SRAM芯片,问: (1) 如何构成2048K×32位的存储器? (2) 需要多少片RAM芯片? (3) 该存储器需要多少字节地址位? (4) 画出该存储器与CPU连接的结构图,设CPU的接口信号有地址信号、数据信号、控制信号MREQ#和R/W#。 解: 256K*8位SRAM芯片包含18根地址线 (1)采用字位扩展的方法。 (2)需要(2048/256)x(32/8)=32片SRAM芯片。 (3)2048 K x 32bit=221 x 4 byte=223 byte 故需要23根地址线
首先进行位扩展,构成32bit需要4片256K*8bit芯片,4片构成一组。 按照新构成的存储组进行字扩展,需要2048/256=8组 字扩展中的各个部件串行工作,需要片选,利用3-8译码器进行片选即可。
A20-0 MREQ# R/W# CPU D31~D0 ramsel7 译码器 ramsel2 ramsel1 ramsel0 OE# A20-18 A17-0 WE A CS 256Kx8 4片 D WE A CS 256Kx8 4片 D WE A CS 256Kx8 4片 D WE A CS 256Kx8 4片 D D31~D0
例4 某计算机的主存地址空间中,从地址0x0000到3FFF为ROM存储区域,从0x4000到0x5FFF为保留地址区域,暂时不用,从0x6000到0xFFFF为RAM地址区域。RAM的控制信号为CS#和WE#,CPU的地址线为A15~A0,数据线为8位的线路D7~D0,控制信号有读写控制R/W#和访存请求MREQ#,要求: (1) 如果ROM和RAM存储器芯片都采用8K×1的芯片,试画出存储器与CPU的连接图。 (2) 如果ROM存储器芯片采用8K×8的芯片,RAM存储器芯片采用4K×8的芯片,试画出存储器与CPU的连接图。 (3) 如果ROM存储器芯片采用16K×8的芯片,RAM存储器芯片采用4K×8的芯片,试画出存储器与CPU的连接图
解: 8KB的存储区域可以用8片存储器芯片构成一组实现。8K×1的存储器芯片的地址线需要13条,即A12~0。 0x0000到0x3FFF为ROM存储区域,从0x4000到0x5FFF为保留地址区域,暂时不用,从0x6000到0xFFFF为RAM地址区域。 CPU 访问0~0xFFFF的地址空间需要地址线16根,为A15~A0,数据线为8位的线路D7~D0
1 1 1 0x0000 ~0x3FFF 16K*8 ROM 0x4000~0x5FFF 8K*8 RESERVED 0x4000~0x5FFF 8K*8 RESERVED 1 0x6000 ~0xFFFF 40K*8 RAM 1
1、ROM和RAM采用8K×1的芯片 A15-0 MREQ# R/W# CPU D7~D0 111 译码器 011 001 000 OE# WE A CS 8Kx1 8片ROM D WE A CS 8Kx1 8片ROM D WE A CS 8Kx1 8片RAM D WE A CS 8Kx1 8片RAM D D7~D0
2、RAM采用4K×8位的芯片 A15-0 A12 MREQ# CPU D7~D0 R/W# 111 译码器 011 001 000 OE# & A11-0 & WE A CS 8Kx8 1片ROM D WE A CS 8Kx8 1片ROM D WE A CS 4Kx8 1片RAM D WE A CS 4Kx8 1片RAM D D7~D0
3、ROM采用16K×8位的芯片 A15-0 A12 MREQ# CPU D7~D0 R/W# 111 译码器 011 001 000 OE# A15-13 A12-0 & A11-0 A13-0 ≥1 & WE A CS 16Kx8 1片ROM D WE A CS 4Kx8 1片RAM D WE A CS 4Kx8 1片RAM D D7~D0 D7~D0 D7~D0
4.2 主存储器 基本概念 随机存储器 只读存储器 主存储器与CPU的连接 几种新型存储器 高速主存储器
高速存储器 CPU与存储器之间的速度无法匹配 解决之道 采用高速器件提高速度 增加字长,在每个存储周期中存取多个字 采用双端口存储器 将主存划分为多个模块,多模块并行 增加Cache
它是在普通DRAM芯片中增加了一小容量的SRAM Cache 高速器件 1、增强型DRAM (EDRAM) 它是在普通DRAM芯片中增加了一小容量的SRAM Cache 2.同步DRAM(SDRAM)。 普通DRAM CPU访问的过程是先给出要访问单元的地址和控制信号(R/W),经过一段延迟时间(存取时间)向DRAM写入数据或从DRAM中读出数据。在这一段延迟时间内,CPU只能等待。SDRAM与CPU的数据交换时钟信号同步,且以处理器/主存总线的最高速度运行,不需要等待时间。 3.DDR SDRAM DDR (Double Data Rate) SDRAM。利用时钟周期的上沿和下沿分别进行两次数据传输,从而实现双倍数据传输速率
4.Rambus DRAM (RDRAM) Intel在1996年提出。是一种全新的内存规范。主要是为服务器和工作站领域的应用而研制的。它利用时钟信号的上沿和下沿传输数据,每时钟周期传输2 bit数据。因此在时钟频率为400MHZ时,其数据传输率达到800Mbit/s。 与传统的DRAM采用RAS,CAS,WE和CE控制绝然不同。
采用高速器件提高速度; 增加字长,在每个存储周期中存取多个字。 采用双端口存储器; 将主存划分为多个模块,多模块并行 增加Cache;
双端口存储器 具有两组相互独立的读写控制线路的存储器 两组读写控制线路可以并行操作 当两个端口地址不相同,无冲突,可以并行存取 端口地址相同,发生读写冲突,无法并行存取 存储体 (A0-10)L (A0-10)R R/WL R/WR BUSYL BUSYR (D0-15)L (D0-15)R
增加Cache; 采用高速器件提高速度; 增加字长,在每个存储周期中存取多个字。 采用双端口存储器; 将主存划分为多个模块,多模块并行
各芯片地址范围 8位 A14A13A12 A0 . 1 8K 1 1 . 8K 2 1 . 8K 3 1 . 8K 4 D7D6…D1D0
多模块顺序存储器 扩充容量方便 故障隔离 模块串行工作 带宽受限 顺序方式 内存地址 M0 M1 M2 M3 数据总线 模块2bit 6 7 1 2 3 4 5 8 14 15 9 10 11 12 13 16 22 23 17 18 19 20 21 24 30 31 25 26 27 28 29 扩充容量方便 故障隔离 模块串行工作 带宽受限 数据总线 顺序方式
模块并行工作,CPU比存储器要快,能同时取出多条指令或者数据,可以大大提高机器的运行速度以及存储带宽 多模块交叉存储器 内存地址 字3bit 模块2bit M0 M1 M2 M3 24 28 4 8 12 16 20 1 25 29 5 9 13 17 21 2 26 30 6 10 14 18 22 3 27 31 7 11 15 19 23 模块并行工作,CPU比存储器要快,能同时取出多条指令或者数据,可以大大提高机器的运行速度以及存储带宽 数据总线 交叉方式
顺序编址与交叉编址 顺序方式 交叉方式 内存地址 内存地址 M0 M1 M2 M3 M0 M1 M2 M3 数据总线 数据总线 模块2bit 6 7 1 2 3 4 5 8 14 15 9 10 11 12 13 16 22 23 17 18 19 20 21 24 30 31 25 26 27 28 29 24 28 4 8 12 16 20 1 25 29 5 9 13 17 21 2 26 30 6 10 14 18 22 3 27 31 7 11 15 19 23 数据总线 数据总线 顺序方式 交叉方式
交叉存储器结构
流水方式存取示意图 T = m m = T/ 交叉存取度 t1=T+(n-1) t2=nT t1<t2 字 T = m m = T/ 交叉存取度 连续读取n个字的时间 t1=T+(n-1) t2=nT M0 M3 M2 M1 M0 时间 T T: 模块存取周期 :总线传输周期 m: 存储器交叉模块数 t1<t2