第 5 章
DESCRIPTION
第 5 章. 存 储 器. 中国科学技术大学 何克东. 5.1 存储器分类. 磁带 磁盘 光盘 闪存. 磁表面存储器. 外部存储器. 存储器. 静态 RAM ( SRAM ) 动态 RAM ( DRAM ) 非易失 RAM(NVRAM ). 随机存取存储器 ( RAM ). 内部存储器 ( 半导体存储器 ). 掩膜式 ROM 一次性可编程 ROM ( PROM ) 紫外线擦除可编程 ROM(EPROM ) 电擦除可编程 ROM ( EEPROM ). 只读存储器 ( ROM ). 闪 存 - PowerPoint PPT PresentationTRANSCRIPT
第 5 章
存 储 器
中国科学技术大学 何克东
存储器
内部存储器( 半导体存储器 )
只读存储器 ( ROM)
随机存取存储器( RAM)
静态 RAM ( SRAM)
动态 RAM ( DRAM)
非易失 RAM(NVRAM)掩膜式 ROM
一次性可编程 ROM ( PROM)
紫外线擦除可编程 ROM(EPROM)
电擦除可编程 ROM ( EEPROM)
外部存储器
磁带磁盘光盘闪存
5.1 存储器分类
磁表面存储器
闪 存
闪速存储器( Flash Memory )亦称快擦写存储器,是一种 20 世纪 80 年代才由 INTEL 公司推出,近年发展最快,前景看好的新型存储芯片。它的主要特点是既可在不加电的情况下长期保存信息,具有非易失性,又能在线进行快速擦除与重写,兼具有 EEPROM 和
SRAM 的优点。其集成度与位价格己接近 EPROM ,是代替 EPROM 和 EEPROM 的理想器件,也是未来小型磁盘的替代品(电子盘),将广泛应用于笔记本计算机和便携式电子与通信设备中。
固态硬盘( SSD Solid State Disk 或 Solid State Drive ),
也称作电子硬盘或者固态电子盘,是由控制单元和固态存储单元( DRAM 或 FLASH 芯片)组成的硬盘。固态硬盘的接口规范和定义、功能及使 用方法上与普通硬盘的相同,在产品外形和尺寸上也与普通硬盘一致。
优点: ▲防震抗摔性好 ▲数据存储速度快
▲ 功耗低 ▲重量轻 ▲无噪音缺点: ▲ 价格高 ▲容量小
半导体存储器的分类
按制造工艺 双极型:速度快、集成度低、功耗大 MOS 型:速度慢、集成度高、功耗低
按使用属性 随机存取存储器 RAM :可读可写、断电丢失 只读存储器 ROM :正常只读、断电不丢失
5.2 随机存储存储器 RAM
组成单元 速度 集成度 应用SRAM 触发器 快 低 小容量系统DRAM 极间电容 慢 高 大容量系统
半导体存储器芯片的结构地址寄存
地址译码
存储体
控制电路
AB
数据寄存
读写电路 DB
OE WE CS
① 存储体 存储器芯片的主要部分,用来存储信息
② 地址译码电路 根据输入的地址编码来选中芯片内某个特定的存储单
元 ③ 片选和读写控制逻辑
选中存储芯片,控制读写操作
① 存储体 每个存储单元具有一个唯一的地址,可存储 1 位(位
片结构)或多位(字片结构)二进制数据 存储容量与地址、数据线个数有关:芯片的存储容量
=存储单元数 × 存储单元的位数= 2M×N
M :芯片的地址线根数 N :芯片的数据线根数
1KB
210×8
译码器
A5
A4
A3
A2
A1
A0 63
0
1
存储单元
64 个单元
行译码
A2
A1
A0 7
1
0
列译码
A3A4A5
0 1 7
64 个单元
单译码 双译码
② 地址译码电路
单译码结构 ( 线形译码 ) 双译码结构(复合译码)
双译码可简化芯片设计 主要采用的译码结构
③片选和读写控制逻辑 片选端 CS 或 CE
有效时,可以对该芯片进行读写操作 输出 OE
控制读操作。有效时,芯片内数据输出 该控制端对应系统的读控制线
写 WE 控制写操作。有效时,数据进入芯片中 该控制端对应系统的写控制线
一、 静态 RAM(SRAM)
SRAM 的基本存储单元是触发器电路 每个基本存储单元存储二进制数一位 许多个基本存储单元形成行列存储矩阵 SRAM 一般采用“字结构”存储矩阵:
每个存储单元存放多位( 4 、 8 、 16 等) 每个存储单元具有一个地址
无需“刷新”
1 0
静态存储电路
0 1
静态 RAM 结构组成原理图
二、动态 RAM(DRAM)
集成度高,功耗低 具有易失性,必须刷新 破坏性读出,必须读后重写 读后重写,刷新均经由刷新放大器进行
动态存储电路
单管 DRAM的存储矩阵
DRAM 接口逻辑图
地址多路复用器: 把来自 CPU 的地址转换成行地址和列地址分两次送出给 DRAM 。刷新定时器: 提供周期性刷新 DRAM 芯片所需的定时功能。刷新地址计数器 :提供只用 RAS 不用 CAS 的刷新操作所需的刷新地址。仲裁器 : 来自 CPU 的访问存储器的请求和来自刷新定时器的刷新请求同时产生时要由仲裁器对两者的优先权进行判决。控制信号发生器 ( 定时发生器 )提供行地址选通信号 RAS 、列地址选通信号 CAS 、写允许信号WE 和刷新地址计数器的计数输人信号,以满足对 DRAM 进行正常访问和刷新的要求。总线收发器 (I / O 数据缓冲器 ): 为 DRAM 的输入、输出数据提供 I / O缓冲
64K×1 256K×1
三、存储器的工作时序
EDO(Extended Data Output RAM)--扩充数据输出随机存储器 SDRAM(Synchronous DRAM)-- 同步动态随机存储器 RDRAM(Rambus DRAM)-- 存储器总线式动态随机存储器 DDR 内存 (DDR SDRAM):即双倍速率 SDRAM(Dual Date
Rate SDRAM), 其最大特点便是能在时钟触发沿的上、下沿都能进行数据传输 (SDRAM仅能在上升沿传输数据 ),所以相对于SDRAM 来说能将内存的传输速率提高一倍。DDR2 是英特尔极力推动的新一代内存 ,DDR2 构建在 DDR 的基础上 , 通过增加 4 位预取机制使得在核心频率不变的条件下将数据带宽提升 4 倍 , 高频率、高带宽是 DDR2 最大的优点。
新一代内存— DDR3
计算机存储系统层次关系
四、高速缓冲存储器
Cache 是一个速度等于或接近于上级的小容量存储器,由于主存与辅存之间的 Cache 未普遍应用,这里的 Cache 主要指 CPU 与主存之间的 Cache ,它用于保存下级存储器刚才被存取过的指令或数据及其邻近小范围的指令或数据。它的目标是,以较小的硬件投资,利用程序存取行为的局部性,使以后的多次访问在 cache 有很高的命中率,从而大大减少实际访问下级存储器的频度。
虽然 cache 成本稍贵,但实际的平均存取速度却有了很大程度的提高。 cache技术是改善计算机系统性能的一个重要手段。
主存储器
(M2)Cache存储器 (M1)
地址映象变换机构
Cache替换策略
主存中页号 主存中页内地址
Cache中页号 Cache中页内地址
命中
主存地址
不命中已装不进
Cache 地址
还可以装入
访问主存替换Cache
访问主存装入Cache
数据总线
Cache的结构原理图
CACHE 的结构
主存储器映射的数据
数据在主存储器中的地址
存储器的平均存取周期 =Cache命中率 ×Cache 存取周期 +(1-Cache命中率 )×处理机存取周期
例 : 某系统中 ,处理器的存取周期为 40ns,Cache 的存取周期是 1us,Cache命中率是 0.5,处理机的的存储器平均存取周期是多少? 解 : 代入公式 0.5×1×103+(1-0.5)×40=500+20=520ns=0.52us
CACHE要解决的问题
•命中率
•数据更新
•替换
一.映射方式 这里的“映射” ,其物理含义就是位置对应关系 , 即将CPU给出字的主存地址变换成可能含有此字的 cache 行位置,使用 cache 的动力在于它的高速 , 因此也要求这个地址变换过程尽可能地快,故此过程是以硬件完成的。这带来的另一好处是 cache 的透明性 ,除了程序运行速度提高之外 ,用户包括系统软件编制人员 , 丝毫未感觉到cache 的存在。
cache 的存储器按与主存交换数据块的大小划分成行( line ) ,用 Li表示 ,其中 i= 0 , 1 , 2 ,…, m-1 ,共有 m 行,主存的块用 Bj表示,其中 j = 0 , 1 , 2 ,…, n-1 ,共有 n 块。行与块是等长 ,设每个块(行)由k个连续的字 ( 这里的“字”是指可存取的最小单位 )组成。
全相联、直接映射、组相联
1. 全相联映射( fully associative-mapping )
常简称为相联映射,这种方式是将主存的一个块区映象到 Cache 的任何一个地方,极其灵活;但这也带来查找困难,对于一个指定的内存地址必须将其块号与 cache所有行的标记同时关联比较。
2.直接映射方式 直接映射( direct mapping )方式是把主存的一个区块只能拷贝到 cache 的一个特定位置上去。块号 j 与保存此块的 Cache 行 i 有如下关系:
i = j MOD m ( m 是 cache 行数)
12 MOD 8=4
对频繁交替访问主存,就会经常不命中。
28 MOD 8=4
页号页号
3.组相联映射方式 上述两种映射方式的优缺点正好相反。从存放位置的灵活性以及命中率来看,全相联映射方式要好;就比较电路简单以及硬件投资少来看,直接映射方式要优。若有一种方式能适度地兼有两者优点又尽量避免两者缺点就太好了,这个折衷方案就是组相联映射方式( Set-associative mapping )。
Cache 分成若干组 , 每个组中有若干区块。主存的一个区块拷贝到 cache 的某个对应组中 ,但在这个组中的位置是任意的。
12 MOD 4=0
命中率比直接映象方式稍高 ,但标记占用较多 SRAM, 控制比较复杂。目前计算机中常采用双路或四路组相联方式。
直接映象 全相联映象 组相联映象
过程
( 1 )主存地址分成区号、块号、块内地址( 2 )在主存地址中截取与 Cache地址对就部分作为 Cache 地址( 3 )以块号为地址访问目录表读出区号与主存地址中区号比较( 4 )若相等,命中( 5 )若不相等,块失效,停止Cache访问。访主存,并调块
( 1 )主存地址分成主存块号和块内地址( 2 )用主存块号同目录表相联比较( 3 )若相同,则取出 Cache块号,Cache块号与块内地址拼接成 Cache地址,访问 Cache( 4 )若无相同的,则产生缺块、调块
( 1 )主存地址分区号、组号、块号、块内地址( 2 )用组号选出一组( 3 )对该组用区号 +块号全相联比较( 4 )或找不到,则块失效( 5 )若找到一样,则将读出的Cache块号与组号和块内地址拼接形成 Cache 地址。
目录表
长: Cache 大小宽:主存地址位 -Cache 地址位
长: Cache 大小宽:(主存块号 +Cache块号)位主存块号位参与比较
长: 2ncbCache 大小宽:(区号 +2块号)位(区号 +块号)位参与与比较
优点
( 1 )硬件省,目录表小,成本低( 2 )访问 Cache 与访问区号表同时进行
( 1 )块冲突最低( 2 ) Cache空间利用率最高
集中全相联和直接映象的优点弥补他们的缺点
缺点
( 1 )块冲突概率很大( 2 ) Cache空间利用率很低
( 1 )映象表太长( 2 )查表速度慢
块冲突仍大于全相联利用率低于全相联目录表大于直接方式
三种地址映象方式进行对比
二、数据更新
通写式: CACHE 中的数据一经修改 , 立即写入主存。
回写法:只在数据被替换时 ,才将数据写回主存。
三.替换策略
最不经常使用( LFU )算法
将一段时间内被访次数最少的那行数据换出。为此,每行设置一个计数器,新行建立后从 0 开始计数,每访问一次被访行的计数器增 1 。当需要替换时,对这些特定行的计数值进行比较,将计数最小的行换出,同时将这些特定行的计数器都清零。(刚建立的数据会被换出)
近期最少使用( LRU )算法 LRU ( Least Recent1y Used )算法是将近期内长久未被访问过的行换出。为此每行也是设置一个计数器 , 但它们是 cache 每命中一次 , 命中行计数器清零 ,其它各行计数器增 1,因此它是未访问次数计数器。当需要替换时 , 比较各特定行的计数值,将计数值最大的行换出。这种算法显然保护了刚拷贝进新数据的行 , 符合 cache 工作原理,因而使 cache 有较高的命中率。
随机替换
5.3 只读存储器 ROM
掩膜 ROM :信息制作在芯片中,不可更改 PROM :允许一次编程,此后不可更改 EPROM :用紫外光擦除,擦除后可编程;并允许用户
多次擦除和编程 EEPROM ( E2PROM ):采用加电方法在线进行擦
除和编程,也可多次擦写 Flash Memory (闪存):能够快速擦写的 EEPROM ,但只能按块( Block )擦除
EPROM 顶部开有一个圆形的石英窗口,用于紫外线透过擦
除原有信息 一般使用专门的编程器(烧写器)编程 编程后,应该贴上不透光封条 出厂未编程前 ,每个基本存储单元都是信息 “ 1” 编程就是将某些单元写入信息 0
存储器层次结构
CPU
CACHE
主存(内存)
辅存(外存)
Cache- 主存
提高速度Cache- 主存
提高速度
主存-辅存
增加容量主存-辅存
增加容量
虚拟存储系统简介 主存-辅存这一层次的发展 , 形成了虚拟存储系统。 随着系统程序和应用程序要求主存容量越来越大,出现
虚拟存储系统。虚拟存储系统是建立在主存和辅存物理结构基础上,由硬件和操作系统存储管理软件组成的一种存储体系。它将主存和辅存看成一个庞大的存储体系,用户不必考虑内存的大小,只需按自己的实际需要去做就可以了。
内存
主存
虚存
硬盘
5.4 半导体存储器与 CPU的连接 这是本章的重点内容 SRAM 、 EPROM 与 CPU 的连接 译码方法同样适合 I/O 端口
存储芯片与 CPU 的连接
1. 存储芯片的 数据线2. 存储芯片的 地址线3. 存储芯片的 片选端4. 存储芯片的 读写控制线
CPU 的总线负载能力
CPU 的总线驱动能力有限 单向传送的地址和控制总线,可采用三态锁存器和三态单向驱动器等来加以锁存和驱动
双向传送的数据总线,可以采用三态双向驱动器来加以驱动
CPU 的总线驱动能力有限 单向传送的地址和控制总线,可采用三态锁存器和三态单向驱动器等来加以锁存和驱动
双向传送的数据总线,可以采用三态双向驱动器来加以驱动
注意问题
存储芯片与 CPU总线时序的配合 分析存储器的存取速度是否满足
CPU总线时序的要求 如果不能满足:
考虑更换存储芯片 总线周期中插入等待状态 TW
存储芯片地址线的连接 芯片的地址线通常应全部与系统的低位地址总线相连
寻址时,这部分地址的译码是在存储芯片内完成的,我们称为“片内译码”
系统地址现的高位参与“片选”
控制信号的连接
M/IO 、 RD 、 WR 、 ALE 、 READY 、 WAIT 、
DT/R 、 DEN
片内译码
A9 ~ A0
存储芯片
000H001H002H
…3FDH3FEH3FFH
全 0
全 1
000000000000000000010000000010
…111111110111111111101111111111
范围( 16 进制 )A9 ~ A0
译码和译码器 译码:将某个特定的“编码输入”翻译为唯一
“有效输出”的过程 译码电路可以使用门电路组合逻辑 译码电路更多的是采用集成译码器
常用的 2:4 译码器: 74LS139 常用的 3:8 译码器: 74LS138 常用的 4:16 译码器: 74LS154
一、存储器的地址选择 线性选择方式 全译码选择方式 部分译码选择方式
( 1 )线性选择方式 线选译码:只用少数几根高位地址线进行芯片
的译码,且每根负责选中一个芯片(组) 虽构成简单,但地址空间严重浪费 会出现地址重复(一个存储单元对应多个存储
地址)
线选译码示例 A14
A12 ~ A0
A13
(1)2764
(2)2764
CE CE
A19 ~ A15 A14 A13 A12 ~ A0 一个可用地址
12
××××××××××
1 00 1
全 0 ~ 全 1全 0 ~ 全 1
04000H ~ 05FFFH02000H ~ 03FFFH
A14 A13 不能同时为 0
⑵全译码选择方式 全译码:所有的系统地址线均参与对存储单元
的译码寻址,包括 片内译码:低位地址线对芯片内各存储单元的译码寻址
片选译码:高位地址线对存储芯片的译码寻址 采用全译码,每个存储单元的地址都是唯一的,
不存在地址重复 译码电路可能比较复杂、连线也较多
全译码示例
A15
A14
A13
A16
CBA
G1 LS138
2764A19
A18
A17
A12 ~ A0
CEY6
G2A
G2B
IO/M
1C000H
1DFFFH
全 0
全 1
0 0 0 1 1 1 0
0 0 0 1 1 1 0
地址范围A12 ~ A0A19A18A17A16A15A14 A13
⑶部分译码选择方式 部分译码:只有部分高位地址线参与对存储
芯片的译码 每个存储单元将对应多个地址 ( 地址重复),
需要选取一个可用地址 可简化译码电路的设计 但系统的部分地址空间将被浪费
部分译码示例
138
A17 A16
A11 ~ A0
A14 A13
A12(4)(3)(2)(1)
2732273227322732CBA
G1G2A
G2BIO/M
CE CE CE CE
Y0Y1Y2Y3
A19 ~ A15 A14 ~ A12 A11 ~ A0 一个可用地址
1234
××10×××10×××10×××10×
000001010011
全 0 ~ 全 1全 0 ~ 全 1全 0 ~ 全 1全 0 ~ 全 1
20000H ~ 20FFFH21000H ~ 21FFFH22000H ~ 22FFFH23000H ~ 23FFFH
内存的扩展
位扩展 增加字长(每个存储单元的位数) 字扩展 增加存储器容量(存储单元数)
二、存储器的数据线及控制线的连接
位扩展 若芯片的数据线正好 8 根:
一次可从芯片中访问到 8 位数据 全部数据线与系统的 8 位数据总线相连
若芯片的数据线不足 8 根: 利用多个芯片扩充数据位 这个扩充方式简称“位扩展”
2114( 1 )
A9 ~ A0
I/O4 ~ I/O1
片选
D3 ~ D0
D7 ~ D4
A9 ~ A0
2114( 2 )
A9 ~ A0
I/O4 ~ I/O1CE
CE
多个位扩充的存储芯片的数据线连接于系统数据总线的不同位数
其它连接都一样 这些芯片应被看作是一个整体 常被称为“芯片组”
位扩展
字扩展 存储系统常需利用多个存储芯片扩充容量,也就是扩充了主存储器地址范围
这种扩充简称为“地址扩展”或“字扩展” 进行“地址扩展”,需要利用存储芯片的片选
端对多个存储芯片(组)进行寻址 这个寻址方法,主要通过将存储芯片的片选端
与译码器的输出端相关联来实现
地址扩充(字扩展)
片选端
D7 ~ D0
A19 ~ A10
A9 ~ A0
A9 ~ A0 D7 ~ D0
CE1K×8( 2 )
A9 ~ A0 D7 ~ D0
CE
译码器
0000000000
0000000001
1K×8( 1 )
举 例
A Y0
B Y1
C Y2
G1 Y3
G2A Y4
G2B Y5
74LS138 Y6
Y7
A11
A12
A13
A14
&
A19……A15
RAM
ROM○
A10~A0
例 : 写出下图中 RAM 和 ROM各自的存储容量以及地址范围
A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
RAM
1 1 1 1 1 1 0 1 0 0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
ROM
1 1 1 1 1 1 1 1 0 0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
RAM=211=2K
ROM=211=2K
RAM:FD000H
|
FD7FFH
R0M:FF000H
|
FF7FFH
1#1 1 1 0 0 0 0 0
101
01
01
01
01
01
01
01
01
01
01
01
2#1 1 1 0 0 0 1 0
101
01
01
01
01
01
01
01
01
01
01
01
A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
8K×8
8K×8
例:扩展
D15~D8
例:用 1K×8的 RAM 芯片构成 4KB 的存储器 ,安排在 64K空间的最低位置 ,共 16 根地址线 , 则 4K 芯片占用的地址空间分别为:
1 # 0 0 0 0 0 0 01
01
01
01
01
01
01
01
01
01
2 # 0 0 0 0 0 1 01
01
01
01
01
01
01
01
01
01
3 # 0 0 0 0 1 0 01
01
01
01
01
01
01
01
01
01
4 # 0 0 0 0 1 1 01
01
01
01
01
01
01
01
01
01
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A01#: 0000~03FFH
2#: 0400~07FFH
3#: 0800~0BFFH
4#: 0C00~0FFFH
例 5-4 :用 4K×8 的 EPROM 芯片 2732,8K×8 的 RAM 芯片 6264, 译码器74LS138 构成 8K 字的 ROM 和 8K 字 RAM 的存储器系统 ,地址从 00000H开始 , 连续 ,系统配置为最小模式。图
计算所需芯片个数: EPROM= (要求容量×字长) / (芯片容量×字长) = ( 8K×16 ) / ( 4K×8 ) =4 RAM= (要求容量×字长) / (芯片容量×字长) = ( 8K×16 ) / ( 8K×8 ) =2 地址分配: 片内地址线: EPROM = 4K=212,A12~A1 , A13 二次译码 RAM = 8K=213,A13~A1
片选地址线(译码器输入端) :A16~A14
剩余地址线: A19~A17→G2A 确定扩展方式: EPROM: 字扩展、位扩展; RAM: 位扩展 确定译码器控制端的连线 : 确定译码器输出与芯片组的连接 控制信号的连接
EPROM1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0
EPROM2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
EPROM3 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0
EPROM4 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
RAM1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
RAM2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
A19A18A17A16 A15A14A13A12A11A1 0 A9 A8 A7 A6 A5 A4
A3 A2 A1 A0
1#EPROM1:00000H~01FFEH EPROM2:00001H~01FFFH2#EPROM3:02000H~03FFEH EPROM4:02001H~03FFFH
3#SRAM1:04000H~07FFEH SRAM2:04001H~07FFFH
EPROM: 4K×8 →8K×16 RAM:8K×8→8K×16
A17A18A19
+
CE
CE
&
&
A0
BHE
5.5 存储器空间的分配和使用
扩展内存 XMS
FFFFFH 64K 高端内存 HMA
C8000H ROM扩展、系统 BIOS 地址384KB上位存储器( UM )
C0000H VGABIOS
B8000H 彩色字符模式视频缓冲区B0000H 单色字符模式视频缓冲区A0000H 图形模式视频缓冲区
可用空间640KB主存储器临时程序区 TPA
系统程序( DOS 的驻留部分、驱动程序等)
00500H DOS 数据区00400H BIOS 数据区00000H 中断向量表
DOS操作系统的内存安排