第5章 存储系统
CPU 微型计算机中存储器的作用 存 储 器 M I/O 接 口 输 入 设 备 I 数据总线 DB 控制总线 CB 地址总线 AB 出 O 外部 存储 接口 外部 存储 设备
微型机的存储系统、分类及其特点 半导体存储芯片的外部特性及其与系统 的连接 存储器扩展技术 高速缓存 本章主要内容 微型机的存储系统、分类及其特点 半导体存储芯片的外部特性及其与系统 的连接 存储器扩展技术 高速缓存
5.1 概 述 内容: 微型机的存储系统 半导体存储器的基本概念 存储器的分类及其特点 两类半导体存储器的主要区别
微型机的存储系统 将两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件或软硬件相结合的方法组织起来 这样就构成了计算机的存储系统。 将两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件或软硬件相结合的方法组织起来 这样就构成了计算机的存储系统。 系统的存储速度接近最快的存储器, 存储容量接近最大的存储器。
现代微机系统的存储器层次结构 存储器是用来存储信息的部件。 存储器的三级结构: Cache容量小(几百KB),速度与CPU相当 主存容量大(256MB~512MB) ,速度比Cache慢 外存容量大(40~80GB),速度慢
微型机的存储系统 Cache存储系统 虚拟存储系统 主存储器(内存) 磁盘存储器(外存) 高速缓冲存储器(快存) 主存储器(内存) 解决速度问题 虚拟存储系统 解决容量问题 高速缓冲存储器(快存) 主存储器(内存) 主存储器(内存) 磁盘存储器(外存)
存储器的层次结构 微机拥有不同类型的存储部件(多层/多级结构), 由上至下容量越来越大,但速度越来越慢。 CPU内核 快 寄存器堆 小 高速缓存 容量 速度 主存储器 联机外存储器 慢 脱机外存储器 大
两大类——内存、外存 内存/主存——存放当前运行的程序和数据。 特点:存取速度快、容量小、随机存取、CPU可直接访问。 材料:通常由半导体存储器构成。 分类:RAM、ROM。 外存/辅存——存放非当前使用的程序和数据。 特点:存取速度慢、容量大、顺序存取/块存取、需调入内存后 CPU才能访问。 材料:通常由磁、光存储器构成,也可以由半导体存储器构成。 分类:磁盘、磁带、CD-ROM、DVD-ROM、固态盘、U盘。
半导体存储器 由能够表示二进制数“0”和“1”的、具有记忆功能的一些半导体器件组成。如触发器、MOS管的栅极电容等。 能存放1位二进制数的器件称为一个存储元。 若干存储元(多位)构成一个存储单元。
内存/主存储器的分类 内存/主存储器 随机存取存储器 Random Access Memory (RAM) 特性:能读能写、挥发 作用:存放编写的程序和数据 只读存储器 Read Only Memory (ROM) 特性:只能读不能写、不挥发 作用:存放固定的程序和数据
随机存取存储器(RAM)特点及分类 双极型RAM 特点: 存取快\驱动强\集成度低\功耗大\价格高 RAM 静态存储器Static RAM(SRAM) 组成:双稳态触发器存储1/0信息 特点: 存取较快\功耗较小\价格较便宜 动态存储器Dynamic RAM (DRAM) 组成:电容充放电存储1/0信息 特点: 集成度高\功耗低\价格便宜 MOS型RAM EDO SDRAM DDR RAMBUS …. 组成单元 速度 集成度 应用 SRAM 触发器 快 低 小容量系统 DRAM 极间电容 慢 高 大容量系统 NVRAM 带微型电池 小容量非易失
只读存储器(ROM)分类 只读存储器 ROM (固定或掩模ROM) PROM (一次性可编程ROM) EPROM (可擦除可编程ROM) EEPROM 或 E2PROM (可电擦除可编程ROM 字节、页 ) Flash ROM (闪存ROM 整片、块 )
ROM 种类 掩膜ROM: 信息制作在芯片中,不可更改 PROM: 允许一次编程,此后不可更改 EPROM: 用紫外光擦除,擦除后可编程; 并允许用户多次擦除和编程 EEPROM (E2PROM):采用加电方法在线进 行擦除和编程,也可多次擦写 Flash Memory (闪存):能够快速擦写的 EEPROM,但只能按块(Block)擦除
存储器的主要技术指标 存储容量:存储单元个数M×每单元位数N 存取时间:从启动读(写)操作到操作完成的时间 存取周期:两次独立的存储器操作所需间隔的 最小时间 可靠性: 平均故障间隔时间MTBF 功耗: 动态功耗、静态功耗
半导体存储器芯片的结构-典型的RAM的示意图
(1) 存储体 一个基本存储电路只能存储一个二进制位。 将基本的存储电路有规则地组织起来,就是存储体。 存储体又有不同的组织形式: --将各个字的同1位组织在一个芯片中, 如:8118 16K*1(DRAM) --将各个字的 4位 组织在一个芯片中, 如:2114 1K*4 (SRAM) --将各个字的 8位 组织在一个芯片中, 如:6116 2K*8 (SRAM)。 (2) 外围控制电路 地址译码器、I/O电路、片选控制端CS 、输出缓冲器等
地址译码电路的译码方式-以6根地址线为例 单译码方式 双译码方式 单译码 选择线64条 行译码 A2 A1 A0 7 1 列译码 列译码 A3A4A5 64个单元 双译码-可简化芯片设计 译码器 A5 A4 A3 A2 A1 A0 63 1 存储单元 64个单元 单译码 选择线16条
5.2 随机存取存储器(RAM) 要求掌握: SRAM与DRAM的主要特点 几种常用存储器芯片及其与系统的连接 存储器扩展技术
一、静态存储器(SRAM) 材料:用双稳态触发器存储信息。 特点:速度快(<5ns)、不需刷新、外围电路比较 简单、但集成度低(存储容量小,约1Mbit/片)、 功耗大。 应用:在PC机中,SRAM被广泛地用作高速缓冲 存储器Cache。 容量与地址线数关系: 对容量=M*N的SRAM芯片,其地址线数=㏒2M;数据线数=N。 反之,若SRAM芯片的地址线数为K,则可以推断其单元数为2K个。
基本存储电路- 6管静态存储电路: 存储1个二进制位 基本存储电路- 6管静态存储电路: 存储1个二进制位 Q1、Q2 组成一个R-S触发器, Q3、 Q4 作为负载电阻, Q5、 Q6 作为控制门(X向译码)。 注意:若双向译码,还需增加Q7、 Q8 作为控制门(Y向译码)。 (1)写入时 地址选择线=1 由数据I/O线输入。 若I/O=1,使Q2 导通,Q1 截止, A=1,B=0。 (2)读出时 地址选择线=1 A、B点信号由Q5、Q6送出到数据I/O线上。 若A=1,B=0,则I/O=1。
典型SRAM芯片 Intel CMOS RAM芯片 2114\6116\6232\6264\62128\62256\62512 (1K 4 2KB 4KB 8KB 16KB 32KB 64KB) 其中 6264容量=8KB=8K8=213 8=(29 24 ) 8 说明:13根地址线(9根X向,4根Y向), 8根数据线, 还需片选线、读写线和电源线。 下面将介绍6264芯片 主要引脚功能 工作时序 与系统的连接使用
SRAM 6264芯片逻辑符号 A12-A0 CS1 CS2 6264 13 8 D7-D0 OE WE
6264芯片的主要引线 地址线: A0~A12 数据线: D0~ D7 输出允许信号:OE 写允许信号: WE 选片信号: CS1、CS2 (一般CS2 =1)
6264的工作方式和工作过程 工作方式表 读操作、写操作的工作时序参见p201、p202 方式 操 作 0 0 0 非法 操 作 0 0 0 非法 不允许WE与OE同时为低电平 0 1 0 读出 从RAM中读出数据 0 0 1 写入 将数据写入RAM中 0 1 1 选中 6264内部I/O三态门均处于高阻 1 × × 未选中 读操作、写操作的工作时序参见p201、p202
存储器读时序图 指定地址 有效数据 WE为高电平
存储器写时序图 有效数据 指定地址A0-A12(A19)
8086/8088读周期时序
8086/8088写周期时序
CPU总线M读、写时序(简化) 思考: 是否插入TW以及插入几个TW? M读时序 M写时序 A19~A0 CLK D7~ D0 T4 T1 MEMR CLK D7~ D0 T4 T1 T2 T3 Tw MEMW D7~D0 M写时序 思考: 是否插入TW以及插入几个TW?
MEMR MEMW MEMR MEMW
CPU与M连接时的几点考虑: 1 CPU总线时序与M的读写时序 高速CPU与低速M间的速度若不匹配,应在CPU访问M的周期内插入等待脉冲TW。下面仅考虑两者匹配。 2 CPU总线的负载能力 系统总线一般能带1~几个TTL负载。系统总线需驱动隔离时,DB要双向驱动,AB与CB则单向驱动,驱动器的输出连至M或其他电路。下面仅考虑不需驱动。 3.M结构的选定 CPU的DB有8、16、32、64位等几类,相应M的结构分为单体、2体、4体、8体等。CPU与M连接时,M是单体结构还是多体结构。下面先仅考虑两者D相等。
5.DRAM控制器(DRAM与CPU连接专用) 4.片选信号(片外)及片内地址产生机制 由于M芯片的容量是有限的,微机中M的总容量一般远大于M芯片的容量,因此,M往往由多片M芯片组成,在CPU与M芯片之间必须设有片选择译码电路,一般由CPU的高位地址译码产生片选,而低位地址送给存储器芯片的地址输入端,以提供存储芯片内部的行、列地址。 5.DRAM控制器(DRAM与CPU连接专用) 它是CPU和DRAM芯片之间的接口电路,目前已生产出不同型号的集成芯片(带刷新电路)。它将CPU的信号变换成适合DRAM芯片的信号,不同的计算机系统有不同的DRAM控制器。后面再讨论DRAM 。
6264芯片与系统的连接--类比居民小区寻找10- 508 内存 8088系统 片内 地址 6264(1) 片外 地址 6264(n) 8086 /8088 最大模式/ 最小模式 存储总线 系统总线 D0~D7 D0~D7 A0 片内 地址 A0 • 低位地 址信号 • • • • • 6264(1) • A12 A12 内存 8088系统 MEMW WE +5V MEMR OE CS2 译码 电路 A13 Y0 CS1 高位地 址信号 • • • • • • • • • • A19 片外 地址 6264(n) Yn
译码电路 作用: 将输入的一组二进制编码变换为一个特定的控制信号,即:将输入的一组高位地址信号通过变换,产生一个有效的控制信号,用于选中某一个存储器芯片,从而确定该存储器芯片在内存中的地址范围。 组成: 它可用普通的逻辑芯片或专门的译码器实现。 存储器地址译码方法: 根据存储器的片选信号译码 (1)线选法: 从高位选择几条地址线 (2)全译码法: 高位全部参加译码 (3)部分译码: 高位地址线部分参加译码
三种译码方式特点 (1)全译码法 片内寻址未用的全部高位地址线都参加译码,译码输出作为片选信号。 全译码的优点是每个芯片的地址范围是唯一确定,而且各片之间是连续的。缺点是译码电路比较复杂。 (2)部分译码 用片内寻址外的高位地址的一部分译码产生片选信号。 部分译码优点是较全译码简单,但缺点是存在地址重叠区。 (3)线选法 高位地址线不经过译码,直接(或经反相器)分别接各存储器芯片的片选端来区别各芯片的地址。 它的优点是电路最简单, 但缺点是也会造成地址重叠,且各芯片地址不连续。
全地址译码 用全部的高位地址信号作为译码信号,使得存储器芯片的每一个单元都占据一个唯一的内存地址。 存储器 芯片 存储器 芯片 … … 低位地址 A0 … 全部地址 Ax 片选信号 译 码 器 … 全部高位地址 优点是每个芯片的地址范围是唯一确定,而且各片之间是连续的。缺点是译码电路比较复杂。
全地址译码例(参见p203) & 6264芯片的地址范围: A19~A13 A12~A0 A19~A13 A12~A0 111100000……0 ~ 111100011……1 = F0000 H ~ F1FFF H A12~A0 A12 ~ A0 A19 1 A18 1 6264 高位地址线全部参加译码 A17 1 A16 & 1 A15 D7 ~ D0 A14 ≥1 1 D7~D0 A13
部分地址译码 用部分高位地址信号(而不是全部)作为译码信号,使得被选中得存储器芯片占有几组不同的地址范围。 存储器 芯片 存储器 芯片 … 低位地址 A0 … 全部地址 Ax 片选信号 译 码 器 … 部分高位地址 部分译码较全译码简单,但存在地址重叠区。
部分地址译码例(参见p204) & 同一物理存储器占用两组地址: F0000H~F1FFFH B0000H~B1FFFH A18不参与译码( A18=1/0=x) A19A18 A17~A13 A12~A0 1 1/0 1 1 0 0 0 0 ~ 0 1 ~ 1 = F0000H~F1FFFH 或 B0000H~B1FFFH A19 1 此例使用高5位地址作为译码信号,从而使被选中芯片的每个单元都占有两个地址,即这两个地址都指向同一个单元。 A17 1 到6264 CS1 A16 1 & A15 A14 ≥1 1 A13
使用译码器的应用举例 将SRAM 6264芯片与系统连接,使其地址范围为:38000H~39FFFH和78000H~79FFFH。 选择使用74LS138译码器构成译码电路 74LS138逻辑图: Y0 G1 Y1 G2A Y2 G2B Y3 Y4 A Y5 B Y6 C Y7 译码允许信号 片选信号输出 地址信号 (接到不同的存储体上)
74LS138的真值表(注意:输出低电平有效) 可以看出,当译码允许信号有效时,Yi是输入A、B、C的函数,即 Y=f(A,B,C) G1 G2A G2B C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 其 他 值 X X X 1 1 1 1 1 1 1 1
应用举例(续): 0 0/1 1 1 1 0 0 0 ~ 0 1 ~ 1 & & 下图中A18不参与译码,故6264的地址范围为: A19A18 A17~A13 A12~A0 0 0/1 1 1 1 0 0 0 ~ 0 1 ~ 1 =38000H~39FFFH或78000H~79FFFH D0~D7 D0~D7 A0 A0 • • • • • • 6264 A12 A12 MEMW WE MEMR OE 0/1 & 1 G1 CPU系统 1/0 Y0 CS1 G2A A17 1 & CS2 A16 1 G2B • • • A15 1 138 A19 C +5V A14 B A13 A 可接其它 存储芯片 Y7
线选地址译码 高位地址线不经过译码,直接(或经反相器)分别接各存储器芯片的片选端来区别各芯片的地址。 存储器 芯片 存储器 芯片 … A0 低位地址 … 全部地址 Ax 片选信号 … 高位地址 也会造成地址重叠,且各芯片地址不连续。
全译码示例 A15 A14 A13 A16 C B A E3 138 2764 A19 A18 A17 A12~A0 CE Y6 E2 E1 IO/M 1C000H 1DFFFH 全0 全1 0 0 0 1 1 1 0 地址范围 A12~A0 A19A18A17A16A15A14 A13
部分译码示例 138 A17 A16 A11~A0 A14 A13 A12 (4) (3) (2) (1) 2732 C B A E3 E2 IO/M CE Y0 Y1 Y2 Y3 A19~ A15 A14~ A12 A11~A0 一个可用地址 1 2 3 4 ××10× 000 001 010 011 全0~全1 20000H~20FFFH 21000H~21FFFH 22000H~22FFFH 23000H~23FFFH
线选译码示例 切记: A14 A13=00的情况不能出现 00000H~01FFFH的地址不可使用 A14 A12~A0 A13 (1) 2764 (2) CE A19~ A15 A14 A13 A12~A0 一个可用地址 1 2 ××××× 1 0 0 1 全0~全1 04000H~05FFFH 02000H~03FFFH 切记: A14 A13=00的情况不能出现 00000H~01FFFH的地址不可使用
本次课程的安排 布置本次课作业及预习下次课的内容(1分) 简单复习上次课讲授的主要内容(5~8分) 存储系统3级体系、内存RAM/ROM分类、SRAM的结构(基本单元\6264)、SRAM与CPU系统连接(连接5要素\高位地址3种接法--- 全译码、部分译码、线选)等。 简单介绍本次课准备讲授的内容(86~92分) DROM的结构(基本单元\2164)、DRAM与CPU系统连接(3种扩展---位/字/字位)、8088/8086 与 M连接比较等。 ROM的结构(基本单元\2764)、 RAM/ROM与CPU连接等。 简单总结本次课主讲的内容(2~5分) 布置本次课作业及预习下次课的内容(1分)
二、动态随机存储器DRAM 材料:DRAM是靠MOS电路中的栅极电容来存储信息的。由于电容上的电荷会逐渐泄漏,需要定时充电以维持存储内容不丢失(称为动态刷新),所以DRAM需要设置刷新电路,相应外围电路就较为复杂。 刷新定时间隔:一般为几ms 特点:是集成度高(存储容量大,可达1Gbit/片以上),功耗低,但速度慢(10ns左右),需要刷新。 应用:非常广泛,如微机中的内存条、显卡上的显存几乎都是用DRAM制造的。 注意:DRAM与SRAM的异同
DROM的基本存储电路 数据以电荷形式存于电容器上,三极管作为开关。 (1)写入时,行选择线为 1 ,Q导通,C充电/放电; (2)读出时,行选择线为 1 ,电容C上电荷通过Q送到数据线上,经放大,送出; (3)需刷新,逐行进行(行选1时选中,内部进行,刷新放大器读出再重写C,不改变C原来状态)。刷新周期通常为2ms~8ms,刷新电路做在片外/片或模块内 Y向地址选择线 X向地址选择线 数据线(读出/写入)
单元存储电路及刷新放大器 刷新放大器
常见DRAM的种类: (1) SDRAM——它在1个CPU时钟周期内可完成数据的访问和刷新,即可与CPU的时钟同步工作。SDRAM的工作频率目前最大可达150MHz,存取时间约为5~10ns,最大数据率为150MB/s。 (2) RDRAM——由Rambus公司所开发的高速DRAM。其最大数据率可达1.6GB/s。 (3) DDR DRAM——是对SDRAM的改进,它在时钟的上升沿和下降沿都可以传送数据,其数据率可达200~800 MB/s。 …… RAM的3个特性: (1) 可读可写 非破坏性读出,写入时覆盖原内容。 (2) 随机存取 存取任一单元所需的时间相同。 (3) 易失性(挥发性) 当断电后,存储器中的内容立即消失。
典型DRAM芯片2164A 常见DRAM有4116(16K×1)和2164(64K×1)等 采用行地址X和列地址Y 双方向译码来确定一个单元; 行地址、列地址分时传送,共用一组地址线A0~A7; 地址线的数量仅 为同等容量SRAM 芯片的一半。 1 1 0 0 0 列地址 行地址 以24=22×22为例 (两个2-4译码器)
2164A的内部结构 256 X向 Y向 如何实现X向地址和Y向地址 的分时传送?
DRAM地址锁存 R: 行(RAW) 地址 C: 列(Column)地址
DRAM芯片地址复用(Multiplexing) LS158 二选一 2164A
2164A引脚与逻辑符号 8
主要引线 RAS:行地址选通信号,用于锁存行地址; CAS:列地址选通信号,用于锁存列地址。 地址总线A0~A7上先送上行地址A0~A7 ,后送上列地址A8~A15 ,它们分别在RAS和CAS有效期间被锁存在(X/Y方向)地址锁存器中。 对比:SRAM情况- -省线 DIN: 数据输入 DOUT:数据输出 对比:SRAM中情况 写入 WE=0 读出 OE=0 WE=0 ---数据写入 WE=1 ---数据读出 WE:“写允许”信号 对比:SRAM中情况 输入/输出合用1根D
三种操作 (1) 数据读出 (2) 数据写入 (3) 刷新:将存放于每位中的信息读出再照原样写入原单元的过程 参见p208-p209读/写/刷新工作时序图
DRAM读时序 R:行(RAW)地址 C:列(Column)地址 =1 读出
DRAM 2164的读周期 存储地址需要分两批传送 行地址选通信号RAS*有效,开始传送行地址 DOUT 地址 TCAC TRAC TCAH TASC TASR TRAH TCAS TRCD TRAS TRC 行地址 列地址 WE CAS RAS 存储地址需要分两批传送 行地址选通信号RAS*有效,开始传送行地址 随后,列地址选通信号CAS*有效,传送列地址,CAS*相当于片选信号 读写信号WE*读有效 数据从DOUT引脚输出
DRAM 2164的写周期 存储地址需要分两批传送 行地址选通信号RAS*有效,开始传送行地址 随后,列地址选通信号CAS*有效,传送列地址 TWCS TDS 列地址 行地址 地址 TDH TWR TCAH TASC TASR TRAH TCAS TRCD TRC TRAS DIN WE CAS RAS 存储地址需要分两批传送 行地址选通信号RAS*有效,开始传送行地址 随后,列地址选通信号CAS*有效,传送列地址 读写信号WE*写有效 数据从DIN引脚进入存储单元
DRAM 2164的刷新 采用“仅行地址有效”方法刷新 行地址选通RAS*有效,传送行地址 列地址选通CAS*无效,没有列地址 芯片内部实现一行存储单元的刷新 没有数据从输入输出 存储系统中所有芯片同时进行刷新 DRAM必须每隔固定时间就刷新 TRC TCRP TRAS 高阻 TASR TRAH 行地址 地址 DIN CAS RAS
三、存储器扩展技术 假设扩展同种芯片,则需要的芯片 : 总片数=总容量/(容量/片) 用多片存储芯片构成一个需要的内存空间,它们在整个内存中占据不同的地址范围,任一时刻仅有1片(或1组)被选中。 位扩展 —— 扩展每个存储单元的位数 (扩展宽度) 字扩展 —— 扩展存储单元的个数 (扩展长度) 字位扩展—— 两者的综合 (扩展宽度和长度) 假设扩展同种芯片,则需要的芯片 : 总片数=总容量/(容量/片) … … … … … … 位扩展 字扩展 字位扩展
位扩展 存储器芯片的存储容量等于M × N : 单元数M(=2K) × 每单元的位数N … 存储器芯片的存储容量等于M × N : 单元数M(=2K) × 每单元的位数N 当构成内存的存储芯片的字长 < 内存单元的字长时,就要进行位扩展,使每个单元的字长满足要求。 8088/8086的内存单元的字长=8/16。 位扩展 字节数 字长
位扩展例1: 把两片SRAM 2114,其容量=1K4=210 4 扩展为1KB=1K 8 (参见p211 图5-19) 2114 (1) A9~A0 I/O4~I/O1 片选 D3~D0 D7~D4 (2) CE 10 两个芯片可看作为一个整体的“芯片组” 1 4 4 (1) 多个位扩充的存储芯片的数据线连接于系统数据总线的不同位数, 其它连接都一样; (2) 这些芯片应被看作是一个整体, 常被称为“芯片组”,它们应同时选中,一起进行读或写.
位扩展例2:用8片容量为64K x 1的2164A芯片构成 64KB = 64K x 8存储器, 64K x 1的2164A 芯片需8片 构成64K x 8=64KB DB D0~D7 D0 D1 D7 一个 整体的“芯片组” 2164A (1) 2164A (2) 2164A (8) WE RAS CAS MEMW 行选 列选 … 64K x 1 64K x 1 64K x 1 64K x 8 A0~A7 A0~A7 A0~A7 LS158 二选一 … A0~A7 A8~A15 A0~A7 A8~A15 A0~A7 A8~A15 AB A0~A15 如何实现? (参见p210/p211 图5-18 / 图5-20)
DRAM控制器结构
位扩展方法总结: 位扩展方法: 将每片的地址线、控制线并联,数据线分别引出。 位扩展特点: 存储器的单元数不变,位数增加。 … 位扩展
字扩展 特点: 地址空间的扩展。芯片每个单元中的字长满足,但单元数不满足。 扩展原则: … 特点: 地址空间的扩展。芯片每个单元中的字长满足,但单元数不满足。 扩展原则: 每个芯片的地址线、数据线、控制线并联,仅片选端分别引出,以实现每个芯片占据不同的地址范围。 字扩展 注意:实际上前面讲授SRAM扩展时已介绍了
字扩展例 译码器 用两片1KB=1K×8位=210 ×8位的SRAM芯片构成容量为2KB=2K×8位的存储器 (参见p212) 片选端 D7~D0 A19~A10 A9~A0 (2) CE (1) 译码器 0000000001 0000000000 两芯片不同时选中,不会同时工作 总容量2K8 1K8 1K8
字位扩展 根据内存容量及芯片容量确定所需存储芯片数; 进行位扩展以满足字长要求; 进行字扩展以满足容量要求。 … 字位扩展 … … … 根据内存容量及芯片容量确定所需存储芯片数; 进行位扩展以满足字长要求; 进行字扩展以满足容量要求。 若已有存储芯片的容量为L×K,要构成容量为M ×N的存储器,需要的芯片数为: (M ×N) / (L×K) =(M / L) ×(N / K) 字位扩展 即 总片数=总容量/(容量/片)= 字扩展倍数 × 位扩展倍数
字位扩展例 注意:以上的例子中所需的地址线数并未从系统整体上考虑。 用4K×1位=212×1的芯片组成16KB =214×8的存储器。 再扩成16KB —— 4*8=32片 (=16K×8 / 4K×1) 地址线需14根(A0-A13),其中12根(A0-A11)用于片内寻址,2根(A12,A13)用于片选译码。连接图。 (参见p213) 注意:以上的例子中所需的地址线数并未从系统整体上考虑。 在实际系统中,总线中的地址线数往往要多于所需的地址线数,这时除片内寻址的低位地址线(即片内地址线)外,剩余的高位地址线一般都要用于片选译码。
例: 某半导体存储器总容量4Kⅹ8。其中固化区2K字节,选用EPROM芯片2716(2Kⅹ8);工作区2K字节,选用SRAM芯片2114(1Kⅹ4)。 解: 先确定所需芯片数:固化区2Kⅹ8,需2716一块;工作区2Kⅹ8,2块2114拼接为一组容量为1Kⅹ8,需2组,共4块2114。见下图。 存储器总容量为4Kⅹ8,共12条地址线A0~A11,8条数据线,各存储器芯片的地址分配和片选逻辑如下表。
8088系统中存储器的连接使用方法 存储器与8088系统总线的连接要点: 存储器的地址范围? 根据要求的地址范围可确定用哪几根地址线进行片选,哪几根地址线做片内寻址以及如何进行片选译码。 系统总线上与存储器有关的信号线有哪些? 熟悉与存储器有关的总线信号和存储芯片引脚的功能。 译码电路的构成(译码器的连接方法) 系统地址空间一般比存储芯片的容量大(即总线中的地址线数多于存储芯片的地址线数),物理内存实际只占用系统地址空间的一小块区域。把物理内存分配到系统地址空间的哪一块区域,取决于如何进行地址译码。
8088系统中存储器连接涉及到的总线信号包括: 地址线: A19-A0 数据线: D7-D0 (注意:8086为: D15-D0 ) 控制线: 存储器读信号MEMR 存储器写信号MEMW 需要考虑的存储芯片引脚 地址线: An-1-A0: 接地址总线的An-1-A0 数据线: D7-D0: 接数据总线的D7-D0 片选线: CS(CE) (可能有多根): 接地址译码器的片选输出Ym-Y0 控制线: 输出允许OE(即读出允许) : 接MEMR 写入允许WE: 接MEMW
*补充:8086的16位存储器接口 数据总线为16位,但存储器按8位进行编址 --- 用两个8位的存储体(BANK)构成16位 如何产生? 如何连接? A19-A0 体选信号 和读写控制 译码器 BANK0 偶数地址 BANK1 奇数地址 控制信号 D7-D0 D15-D8 如何产生? D15-D0
*8086的16位存储器接口 读写数据有以下几种情况: 8086读写16位数据的特点: 读写从偶数地址开始的16位的数据 读写从奇数地址开始的16位的数据 读写从偶数地址开始的8位的数据 读写从奇地址开始的8位的数据 8086读写16位数据的特点: 读16位数据时会读两次,每次8位。 读高字节时BHE=0,A0=1; 读低字节时BHE=1,A0=0 每次只使用数据线的一半:D15-D8 或 D7-D0 写16位数据时一次写入。 BHE和A0同时为0 同时使用全部数据线D15~D0
*8086的16位存储器接口 两种译码方法 独立的存储体译码器 每个存储体用一个译码器; 缺点:电路复杂,使用器件多。 独立的存储体写选通 译码器共用,但为每个存储体产生独立的写控制信号 但无需为每个存储体产生独立的读信号,因为8086每次仅读1字节。对于字,8086会连续读2次。 电路简单,节省器件。
1)独立的存储体译码器 64KB×8片 D15-D9 D7-D0 高位存储体 (奇数地址) A16-A1 A15-A0 注意这些信号线的连接方法 A19 A18 A17 C B A Y0 Y7 CS OE WE Vcc G1 G2A G2B BHE 64KB×8片 MEMR MEMW D7-D0 D7-D0 低位存储体 (偶数地址) A15-A0 A19 A18 A17 C B A Y0 Y7 CS Vcc G1 G2A G2B OE WE A0 读16位数据时每个体被选中几次? MEMW信号同时有效,但只有一个存储体被选中
8086系统与存储器的连接 译码器 译码器
译码器 输出 地址范围 A19~A16 A15~A13 A12~A0 全0 000 从全0到全1 Y0 00000H~01FFFH 001 010 Y2 04000H~05FFFH 011 Y3 06000H~07FFFH 100 Y4 08000H~09FFFH 101 Y5 0A000H~0BFFFH 110 Y6 0C000H~0DFFFH 111 Y7 0E000H~0FFFFH
2)独立的存储体写选通 64KB×8片 D15-D9 D7-D0 高位存储体 (奇数地址) A16-A1 A15-A0 ≥1 CS OE BHE OE WE MEMW ≥1 A0 64KB×8片 MEMR D8-D0 D7-D0 低位存储体 (偶数地址) A15-A0 A19 A18 A17 C B A Y0 Y7 CS Vcc GND G1 G2A G2B OE WE 读16位数据时每个体被选中几次? 每个存储体用不同的写控制信号
5.3 只读存储器(ROM) 掩模 ROM 一次性可写 PROM 可读写ROM 分 类 EPROM(紫外线擦除) EEPROM(电擦除) Flash ROM (快速闪存)
掩膜式只读存储器ROM 由MOS管组成掩膜式只读存储器的结构 0 0 0 1 单译码 0 0 1 0 0 0 1 1 0 1 0 0 容量=4×4=22×4 字位线的交叉点有MOS管存0,而无MOS管存1
EPROM的基本存储电路
EEPROM基本存储电路
Flash ROM基本存储单元电路
一、EPROM 特点: 可多次编程写入; 掉电后内容不丢失; 内容的擦除需用紫外线擦除器。 典型的EPROM芯片有:2716(2K×8)、 2732 (4K×8) 、 2764 (8K×8)、 27128 (16K×8)、 27256 (32K×8) 、27512 (64K×8)等
EPROM2764芯片引脚及内部结构
EPROM 2764的主要引脚 8K×8bit芯片,其引脚与SRAM 6264完全兼容 主要引脚: 地址信号:A0 ~ A12 数据信号:D0 ~ D7 输出信号:OE 片选信号:CE 编程脉冲输入:PGM 编程电压: VPP
2764的工作方式 工作方式 其中编程写入的特点: 每出现一个编程负脉冲PGM就写入一个字节数据 数据读出 -- 在正常工作电路中 数据读出 -- 在正常工作电路中 编程写入 -- 在专门的写入器中 擦除 -- 在专门的擦除器中 标准编程方式 快速编程方式 工作方式 其中编程写入的特点: 每出现一个编程负脉冲PGM就写入一个字节数据
2764A的工作方式选择表 方式 A9 A0 VPP VCC 数据端 功能 读 低 高 × 5 V 数据输出 输出 禁止 高阻 备用 编程 数据输入 校验 标识符 制造商编码 器件编码 引脚
2764A编程波形 太宽使编程时间长,且芯片功耗大 TMS27C040仅100s
8088系统与2764EPROM和6264SRAM的连接 Vcc 思考: 请同学们自己计算8片存储芯片的地址
二、EEPROM( E2PROM ) 特点: 可在线编程写入; 掉电后内容不丢失; 电可擦除。 典型E2PROM芯片有:2816/2817(2K×8)、 2864/98C64A (8K×8)等
EEPROM芯片2817A 存储容量为2K×8 28个引脚: 11根地址线A10~A0 8根数据线I/O7~I/O0 片选CE* NC A12 A7 A6 A5 A4 A3 A2 A1 A0 I/O0 I/O1 I/O2 GND Vcc WE* A8 A9 OE* A10 CE* I/O7 I/O6 I/O5 I/O4 I/O3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 存储容量为2K×8 28个引脚: 11根地址线A10~A0 8根数据线I/O7~I/O0 片选CE* 读写OE*、WE* 状态输出RDY/BUSY*
EEPROM芯片2864A 存储容量为8K×8 28个引脚: 13根地址线A12~A0 8根数据线I/O7~I/O0 片选CE* Vcc WE* NC A8 A9 A11 OE* A10 CE* I/O7 I/O6 I/O5 I/O4 I/O3 A12 A7 A6 A5 A4 A3 A2 A1 A0 I/O0 I/O1 I/O2 GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 存储容量为8K×8 28个引脚: 13根地址线A12~A0 8根数据线I/O7~I/O0 片选CE* 读写OE*、WE*
典型E2PROM芯片98C64A 容量: 8K×8bit芯片 主要引脚: 13根地址线(A0 ~ A12) 8位数据线(D0 ~ D7) 输出允许信号(OE) 写允许信号(WE) 选片信号(CE) 状态输出端(READY/BUSY)
98C64A的工作方式 数据读出 编程写入 擦除 字节写入:每一次BUSY正脉冲写 入一个字节 自动页写入:每一次BUSY正脉写 入一页(1~ 32字节) 字节擦除:一次擦除一个字节 片擦除:一次擦除整片
E2PROM的应用 可通过编写程序实现对芯片的读写,但 每写入一个字节都需判断READY/BUSY 端的状态,仅当该端为高电平时才可写 入下一个字节。
例5-6 将一片98C64A接到系统总线上,使其地址范围在3E000H~3FFFFH之间,并编写程序将芯片所有单元写入66H。 电路图见下面所示。 READY/BUSY端的状态通过一个接口电路送到CPU数据总线的D0,CPU读入该状态以判断一个写周期是否结束。 READY/BUSY状态接口地址为02E0H。 66H 98C64A 3E000H~3FFFFH 02E0H
下面分别用延时等待方式和查询READY/BUSY端状态方式向芯片的所有单元写入66H。 程序2:查询状态方式 START: MOV AX,3E00H MOV DS,AX MOV SI,0000H MOV CX,2000H MOV BL,66H AGAIN:MOV DX,02E0H WAIT: IN AL,DX TEST AL,01H JZ WAIT MOV [SI],BL INC SI LOOP AGAIN HLT 程序1:延时等待方式 START: MOV AX,3E00H MOV DS,AX MOV SI,0000H MOV CX,2000H MOV AL,66H AGAIN:MOV [SI],AL CALL TDELAY20MS INC SI LOOP AGAIN HLT
四、闪速 flash E2PROM 特点: 通过向内部控制寄存器写入命令的方法来控制芯片的工作方式,而非用引脚的信号来控制芯片的工作。 应用 BIOS 便携式闪存硬盘(U盘) 典型的芯片:28F040(512K×8)等
闪速E2PROM的工作方式 数据读出 编程写入 擦 除 读单元内容 读内部状态寄存器内容 读芯片的厂家及器件标记 数据写入,写软件保护 擦 除 数据写入,写软件保护 字节擦除,块擦除,片擦除 擦除挂起
5.4 高速缓存(Cache) 了解: Cache的基本概念; 基本工作原理; 命中率; Cache的分级体系结构
1)为什么需要高速缓存? CPU工作速度与内存工作速度不匹配 解决办法: 例如,800MHz的PIII CPU的一条指令执行时间约为1.25ns,而133MHz的SDRAM存取时间为7.5ns,即83%的时间CPU都处于等待状态,运行效率极低。 解决办法: CPU插入等待周期——降低了运行速度; 采用高速RAM——成本太高; 在CPU和RAM之间插入高速缓存——成本上升不多、但速度可大幅度提高。
2)工作原理 基于程序执行的两个特征(局部性原理): 程序访问的局部性:过程、循环、子程序。 数据存取的局部性:数据相对集中存储。 存储器的访问相对集中的特点使得我们可以把频繁访问的指令、数据存放在速度非常高(与CPU速度相当)的SRAM——高速缓存CACHE中。需要时就可以快速地取出。
CAM—Content Access Memory Cache的工作原理 CAM—Content Access Memory ②检索(用主存地址作为关键字,查找CAM)—前提:每次访问的主存地址都保留在CAM内。 ①送主存地址 AB CPU Cache控制部件 RAM Cache DB ③命中则发出读 Cache命令, 从Cache取数据 ④不命中则发出读RAM命令, 从RAM取数据
只要命中率相当高,就可以大大提高CPU的运行效率,减少等待。现代计算机中CACHE的命中率都在90%以上。 找到(称为命中)——直接取出使用; 没找到——到RAM中取,并同时存放到CACHE中,以备下次使用。 只要命中率相当高,就可以大大提高CPU的运行效率,减少等待。现代计算机中CACHE的命中率都在90%以上。 命中率影响系统的平均存取速度 系统的平均存取速度≈ Cache存取速度×命中率+RAM存取速度×不命中率
例如:RAM的存取时间为8ns,CACHE的存取时间为1ns,CACHE的命中率为90%。则存储器整体访问时间由没有CACHE的8ns减少为: 1ns×90% + 8ns×10% = 1.7ns 速度提高了近4倍。 在一定的范围内,Cache越大,命中率就越高,但相应成本也相应提高 Cache与内存的空间比一般为1128
*Cache系统有三个需要解决的主要问题: 解决:把Cache与主存都分成大小相同的页(若主存容量为2n,Cache容量为2m,页的大小为2p(即页内地址有p位),则主存的页号共有(n-p)位,Cache页号共有(m-p)位)这样,主存—Cache地址变换,就是如何把主存页映射到Cache页上(即只映射页号)。 全相连映射——主存任意页可映射到Cache的任意页。这需要有一个很大的页号映射表(共有2m-p项),放在CAM存储器中。昂贵,但冲突小。 直接映射——主存页号B与Cache页号b满足关系:b=B mod 2m-p 例如:主存0、4、8、12,…页映射到Cache的0页,主存1、5、9、13,…映射到Cache的1页,依此类推。不需要页号映射表,但冲突概率高。 组相连映射——把页分组,然后结合上面两种方法:组间直接映射,组内全映射。
不命中时如何替换Cache内容 Cache与主存的一致性 有以下几种替换算法: 两种常用的更新算法: 随机替换 先进先出FIFO 最近最少使用LRU(Least Recently Used) 最久没有使用LFU(Least Frequently Used) Cache与主存的一致性 两种常用的更新算法: 写穿式(WT,Write Through)——同时更新 回写式(WB,Write Back)——仅当替换时才更新主存
*Cache的读写操作 写穿式 回写式 写操作 读操作 贯穿读出式 旁路读出式
写穿式(Write Through) 从CPU发出的写信号送Cache的同时也写入主存。 Cache CPU 主 存
回写式(Write Back) 数据一般只写到Cache,当Cache中的数据被再次更新时,才将原来的数据写入主存相应页,并接受新的数据。 CPU Cache 主 存
贯穿读出式 CPU对主存的所有数据请求都首先送到Cache,在Cache中查找。若命中,则切断CPU对主存的请求,并将数据送出;如果不命中,则将数据请求传给主存。 CPU Cache 主 存
旁路读出式 CPU向Cache和主存同时发出数据请求。如果命中,则Cache将数据送给CPU,并同时中断CPU对主存的请求;若不命中,Cache不做任何动作,由CPU直接访问主存。 Cache CPU 主 存
3)PC机中的CACHE 一般有两级CACHE(有的具有三级) L1 CACHE——容量一般为8KB~64KB L2 CACHE——容量一般为128KB~2MB 新型CPU一般将这两级CACHE都做在CPU内核中。而且运行速度与CPU内核相同,使CPU的整体性能有了极大的提高。 指令Cache和数据Cache 各种CPU的Cache配置见教材p229表5-5。
IBM PC/XT的内存空间分配 00000H RAM区 640KB 9FFFFH 保留区 128KB BFFFFH ROM区 256KB FFFFFH
作业 P244 5.3 5.5 5.7 5.10 5.11(注意地址范围是F0000H~F1FFFH) 谢谢!