Upload
brie
View
141
Download
3
Embed Size (px)
DESCRIPTION
第四章 存储器和存储系统. 分层的存储系统. 基本概念 存储容量 存储器可以容纳的二进制信息量 存储器包含的存储单元的总数 存储容量 = 存储单元(字节) 存储器所能记忆的全部二进制信息量 例如:某存储器有 4096 字节的存储单元 则存储器的存储容量为 4KB = 32KBit. 寄存器组. 高速缓冲存储器. 主 存 储 器. 辅 助 存 储 器. 存储系统的分层结构. 价格. 容量. 高. 小. CPU 内部. 主机内部. 外部设备. 低. 大. CPU. Cache. RAM. - PowerPoint PPT Presentation
Citation preview
分层的存储系统 基本概念
存储容量 存储器可以容纳的二进制信息量
存储器包含的存储单元的总数 存储容量 = 存储单元(字节) 存储器所能记忆的全部二进制信息量 例如:某存储器有 4096 字节的存储单元 则存储器的存储容量为 4KB = 32KBit
存储系统中的主存 按存储介质分类
半导体存储器体积小、功耗低、存取时间短、信息容易丢失
磁表面存储器信息不易丢失
磁芯存储器体积庞大、工艺复杂、功耗大
光盘存储器记录密度高、耐用性好、可靠性高、可互换性强
按存取方式分类 只读存储器( ROM ) 掩膜 ROM 、 PROM 、 EPROM 、 EEPROM 、
FLASH memory 随机存取存储器( RAM ) SRAM 、 DRAM 串行访问存储器 磁带存储器
主存的工作过程 主存的技术指标
存储容量主存中能存放二进制代码的总数存储容量 = 存储单元数 * 字长
存储速度 存取时间:又叫存储器的访问时间,是指启动一次存
储器操作(读或写)到完成该操作所需要的全部时间 存取周期:存储器进行连续两次独立的存储器操作所
需要的最小时间间隔 MOS 的存取周期 100ns , TTL 的存取周期 10ns
存储器的带宽 每秒从存储器中进出信息的最大数量。单位为字节 /
秒或字 / 秒例如:存取周期为 500ns ,则 1 秒周内能进行 1/ ( 50
0 * 10-9 ) = 200 万次操作,假设每个存储周期能够 访问 16 位的二进制数,则它的带宽为 200 万 * 2 * 8 = 200 万 * 2 字节 / 秒 = 4M 字节 / 秒
提高存储器的带宽:缩短存取周期、增加存储字长、增加存储体
地址线 编号方式: A0 , A1 ,……, An
存储器芯片引脚的数目决定的存储器的容量。一个存储器芯片引脚的数目为 10则地址范围为 00 0000 0000 – 11 1111 1111存储容量为 210 = 1024 个存储单元,即 1KB 。
假设 CPU 有 16 位的地址总线,那么它可以访问的存储空间范围为 0000H – FFFFH ,即 216 = 64KB
8086 , 8088 地址总线为 20 位,可以访问的存储空间的范
围为: 00000H – FFFFFH ,即 220 = 1MB
80286 地址总线为 24 位,可访问的存储空间为 16M80386 , 80486 和 Pentium 地址总线为 32 位,可
访问的存储空间为 4GPentium Pro 和 Pentium II 的地址总线为 36 位,可访问的存储空间为 64G16 位二进制数表示的地址:0000, 0001, 0002, …………………… 000E, 000F0000, 0001, 0002, …………………… 000E, 000F…………………………………………………………FFE0, FFE1, FFE2, …………………… FFEE, FFEFFFF0, FFF1, FFF2, ………………….… FFFE, FFFF
数据线 表示方式: D0 , D1 ,…………, Dm
存储器的容量通常为字节*也可以用字( 16 位)、 4 位或 1 位来进行表示
1K*8 表示有 1K 的存储容量,每个存储单元输出 8 位数据16K * 1 表示有 16K 的存储容量,每个存储单元输出 1 位 的数据
芯片选择线(片选线) 存储器芯片上有一个或一个以上允许存储器芯片工
作的控制线
表示方式:片选( CS ),片允许( CE ), 或简写为 S
读写控制线 存储器芯片上传输读、写控制信号, ROM 只有
读信号, RAM上有一到两个读写控制信号 表示方式
ROM 允许输出信号 OE 或简称 G RAM 读信号 WE 或简称 W 写信号 OE 或简称 G
利用存储器芯片构造存储系统 利用与非门实现译码
例:假设某微处理器有 20根地址线 A0 , A1 , A2 ,…………, A19
8根数据线 D0 , D1 , D2 ,…………, D7 20根地址线: CPU 可以访问 1M 个存储单元 8根数据线: CPU 和存储器之间每次传送的数 据为 8 位
存储器使用 2K * 8 EPROM : 11根地址线,8
根数据线
2K*8
EPROM
数据线 D0~D7
地址线 A0~A10
CE
OEVPP
VCC
RD
地址线 A12~A19
地址线 A11
M/IO
2K * 8 EPROM被译为地址 FF000H~FF7FFH
G2A
G2B
G1 C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
11 X X X X X 1 1 1 1 1 1 1 1
X 11 X X X X 1 1 1 1 1 1 1 1
X X 00 X X X 1 1 1 1 1 1 1 1
0 0 1 0 0 0 0 1 1 1 1 1 1 1
0 0 1 0 0 1 1 0 1 1 1 1 1 1
0 0 1 0 1 0 1 1 0 1 1 1 1 1
0 0 1 0 1 1 1 1 1 0 1 1 1 1
0 0 1 1 0 0 1 1 1 1 0 1 1 1
0 0 1 1 0 1 1 1 1 1 1 0 1 1
0 0 1 1 1 0 1 1 1 1 1 1 0 1
0 0 1 1 1 0 1 1 1 1 1 1 1 0
例:假设微处理器系统中从 0E0000H开始的 64K 存储区
无存储器,已知某一类 RAM 是 8K*8 的存储芯片,
如何进行扩充?
8K*8
CE
W/R
数据线 D0~D7地址线 A0~A12
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
A0~A12 D0~D7 A0~A12 D0~D7
数据线
地址线RD
W/R
W/R
A13~A1
5A16
A17~A1
9
A
B
C
G1
G2A
G2B
E0000~E1FFFE2000~E3FFFE4000~E5FFFE6000~E7FFFE8000~E9FFFEA000~EBFFFEC000~EDFFFEE000~EFFFF
CE CE………………
……
……
D0~D7
1K * 8 A 1K * 8 B
WE
A0~A
9
A10
存储器的容量为 2K ,即
000 0000 0000 100 0000 0000
011 1111 1111 111 1111 11111 K 1 K
CS0 CS1
例:假设 8086 系统中从 0E0000H 开始的 64K 存储区无
存储器, 2764EPROM 是 8k*8 的只读存储器,如何
对其进行扩充?解:第一步:将地址范围写成二进制代码,并确定其总容量
A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
…… …… ……
1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
64K
第二步:根据地址范围的容量及该范围在计算机中的应用,选
择存储芯片
要扩充 64K 的存储容量,给定了只读存储器 2764EPROM ,
共需要 8 片 2764EPROM 进行扩充。
第四步:片选信号的形成
第三步:分配地址线
将 CPU 的低 13 位地址线 A0~A12 与 2764EPROM相连,剩下
的高位地址线用于产生片选信号。
1 译码器的输入端 A 、 B 、 C ,决定了 Y0~Y7那个端口有输出,
从而决定选中哪片芯片,将 A15 、 A14 、 A13 分别与 C 、 B 、A相
连,从 000~111变化,从而可以选择 8 片芯片。
A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
…… …… ……
1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 为了使译码器进行工作, G1 位高电平, G2A 、 G2B 位低电平,
可以将 A19 、 A18 、 A17 连接到一个与非门上,与非门的输出和
G2A 、 G2B输入端相连。 A16 可以和一个非门电路相连,输
出和 G1 的输入端相连。
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
A0~A12 D0~D7 A0~A12 D0~D7
数据线
地址线RD
W/R
W/R
A13~A1
5A16
A17~A1
9
A
B
C
G1
G2A
G2B
E0000~E1FFFE2000~E3FFFE4000~E5FFFE6000~E7FFFE8000~E9FFFEA000~EBFFFEC000~EDFFFEE000~EFFFF
CE CE………………
……
……
A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
…… …… ……
1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1针对译码器的 Y0输出,这时 CBA=000 ,即
A15=0 , A14=0 , A13=0
地址范围: 1110 0000 0000 0000 0000 = E0000H
1110 0001 1111 1111 1111 = E1FFFH
针对译码器的 Y1输出,这时 CBA=001 ,即
A15=0 , A14=0 , A13=1
地址范围: 1110 0010 0000 0000 0000 = E2000H
1110 0011 1111 1111 1111 = E3FFFH
例:假设 CPU 有 16根地址线, 8根数据线,并用 MREQ作 为访存控制信号(低电平有效),用 WR 做读 / 写控制信号(高电平为读,低电平为写),现有下列存储芯片: 1K*4 位 RAM , 4K*8 位 RAM , 8K*8 位 RAM , 2K*8 位 ROM , 4K*8 位 ROM , 8K*8 位 ROM及 74LS138译码器和各种门电路,画出 CPU 与存储器的连接图,要求:
1. 主存地址空间分配
6000H ~ 67FFH 为系统程序区
6800H ~ 6BFFH 为用户程序区
2. 合理选用上述存储芯片,说明各选几片?
3. 详细画出存储器芯片的片选逻辑图。
解:第一步:将地址范围写成二进制代码,并确定其总容量
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
…… …… ……
0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1
0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0
…… …… ……
0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1
系统程序区2K*8
用户程序区1K*8
第二步:根据地址范围的容量及该范围在计算机中的应用,选
择存储芯片
由 6000H ~ 67FFH 为系统程序区,为 2K*8 位,应选择一
片 2K*8 位 ROM
由 6800H ~ 6BFFH 为用户程序区,为 1K*8 位,应选择两
片 1K*4 位 RAM第三步:分配 CPU 的地址线
将 CPU 的低 11 位地址线 A10 ~ A0 与 2K*8 位的 ROM 地址线相
连,将 CPU 的低 10 位地址线 A9 ~ A0 与 1K*4 位的 RAM 地址
线相连,剩下的高位地址与访存控制信号共同产生存储芯
片的片选信号。
第四步:由题给出的 74LS138 译码器的输入逻辑关系可知,必须保
证 G1 为高电平, G2A 、 G2B 为低电平才能使译码器工作。
A15 为低,连接到 G2A上, A14 为高,连接到 G1上, MREQ
为低,连接到 G2B上 。保证了三个控制端的要求
A13 、 A12 、 A11 连接到 C 、 B 、 A上。输出 Y4 有效时,选中
一片 ROM; Y5 有效时,同时 A10 有效为低电平,选中两片
RAM 。读出时低电平有效, RAM 的读 / 写控制端与 CPU的
命令端WR相连
* ROM 的数据线是单向的
2K * 8 1K * 4 1K * 4
MREQ
D7
D6
D5
D4
D3
D2
D1
D0
WR
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
C
B
A
A13
A12
A11
G1
G2A
G2BA15
A14
Y7Y6Y5Y4Y3Y2Y1Y0
提高访问存储器速度的方法 多存储体方式
单体多字系统W位 W 位 W 位 W 位
地址寄存器
主存控制部件
数据寄存器
存储体
……………
……………
前提:指令和数据在主存中必须是连续存放的,一旦遇到转移指令或者操作数不能连续存放,这种方法的效果就不明显
多体并行存储系统(地址码被分为体号、体内地址两部分)
高位交叉编址 – 有利于存储器的扩充
体 号 体内地址
地址译码
……
0
1
n-1
……
n
n+1
2n-1
……2n
2n+1
3n-1
……
3n
3n+1
4n-1
000000000001000010000011000100000101000110000111001000001001001010001011001100001101001110001111
010000010001010010010011010100010101010110010111011000011001011010011011011100011101011110011111
100000100001100010100011100100100101100110100111101000101001101010101011101100101101101110101111
110000110001110010110011110100110101110110110111111000111001111010111011111100111101111110111111
M0 M1 M2 M3
000000000100001000001100010000010100011000011100100000100100101000101100110000110100111000111100
M0 M1 M2 M3
000001000101001001001101010001010101011001011101100001100101101001101101110001110101111001111101
000010000110001010001110010010010110011010011110100010100110101010101110110010110110111010111110
000011000111001011001111010011010111011011011111100011100111101011101111110011110111111011111111
高速缓冲存储器 -- Cache 问题的提出
避免 CPU 与 I/O争抢访存 I/O 设备向主存请求的级别高于 CPU 访存 解决 CPU 与主存之间速度不匹配的问题 CPU 的速度每年增长 60% RAM 速度每年改进 7% 程序访问的局部性原理使 CPU 与 Cache交换信
息成为可能
Cache 的工作原理012....2m-1
……
字块 0字块 1字块 2
字块 2m-1
主存块号 块内地址M块 = 2m B 个字 = 2b
m 位 b位n 位
012....2c-1
……字块 0字块 1字块 2
字块 2c-1
缓存块号 块内地址C块 = 2c B 个字 = 2b
c 位 b位
标记
影响 Cache命中率的因素 块长 一般块长取 4至 8 个可编址单位(字或字节) IBM370/168 的主存是 4 体交叉,每个体宽为 64 位( 8 个字节), Cache 的块长为 32 个字节。 容量 Cache 的容量是成本与命中率的折衷 80386 主存的最大容量为 4GB , Cache 的容量
为 16KB 或 32KB ,命中率可达 95%以上
CPU
地址总线
数据总线
主
存 Cache 存储体
Cache 数据替换机构 主存 Cache 地址映像变换机构
主存地址
命中、产生 Cache 地址
直接通路
没命中
访问主存替换 Cache
替换算法 先进先出( FIFO )
优点:实现容易、开销小 缺点:可能把一些常用的程序,如子程序、循环程序块,作为最早进入 Cache块,替换出去
近期最少使用法( LRU ) 优点:命中率高 缺点:开销大
Cache 的读 / 写操作 读操作开始
CPU发出访问地址
命中?
访问 Cache ,取出信息送 CPU
访问主存,取出信息送 CPU
将新的主存块调入 Cache 中
执行替换算法腾出空位
结束
Y N Cache满? Y
N
写操作 写直达法:数据写入 Cache 的同时,也写入主存的相应的块。
能始终保证 Cache 中的内容和主存中的内容一致。 写回法:数据每次只是暂时写入 Cache 中,并用标志将该块加以注明,当该块从 Cache 中替换出去时,才写入主存中。
该方法速度快,但因主存中的字块未经随时修改,可能失效。
信息只写入主存,同时将相应的 Cache块有效位置“ 0”,表明此块已失效,需要时从主存中调入。还有一种情况,被修改的单元不在 Cache 内,这时,写操作只对主存进行。
存储容量 外存储器所能存储的二进制信息的总数量。一般以
位或字节为单位。 磁盘存储器容量
盘面数:可以存储数据的盘面个数 扇区:每个磁道分为若干个区域,每个扇区存放 512 个
字节数据 磁盘存储器容量 = 盘面数 * 每个盘面的磁道数 *扇区数
* 每个扇区存储字节数 格式化容量和非格式化容量
非格式化容量:磁盘表面可以利用的磁化单元总数 格式化容量:磁盘按某种特定的存储格式所能存储
数据的总量
平均存取时间平均找道时间 + 平均等待时间 +控制指令运行时
间 数据传输率
单位时间内磁表面存储器向主机传送数据的位数或字节数数据传输率 = 记录密度 * 记录介质的运行速度
误码率是衡量磁表面存储器出错概率的参数误码率 = 出错信息的位数 / 读出的总信息位数
记录方式 归零制( RZ)
记录 1 时通正向脉冲电流,记录 0 时通负向脉冲电流 两位信息之间的驱动电流归零 记录密度不高,目前很少使用
不归零制( NRZ) 磁头线圈始终有电流 当连续记录 1 或者 0 时,写电流方向不变,只有当
两个相邻的代码不同时,写电流才改变方向。 见 1就翻的不归零制( NRZ1 )
磁头线圈始终有电流 记录 0 时电流不改变方向,记录 1 时电流改变方向
调相制( PM ) 记录 0 时,电流由负编正,记录 1 时,电流由正变负 每两个相同信息的交界处,电流方向变化一次;相邻
信息不同时,电流方向不变 应用于磁带存储器中
调频制( FM ) 以驱动电流变化的频率不同来区别记录 1 或者 0 记录 0 时,在一位信息的记录时间内电流保持不变;
记录 1 时,在一位信息记录时间的中间时刻,电流改变一次方向。相邻信息的交界处,线圈电流均变化一次。
广泛应用于硬磁盘和软磁盘中 改进调频制( MFM )
记录 0 时,在记录时间内电流不变,在记录 1 时在记录时间的中间时刻电流发生一次变化。(与调频制相同)
只有当连续记录两个或两个以上的 0 时,才在每位的起始处电流改变一次。
写入同样的数据序列时, MFM比 FM 磁翻转次数少,在相同长度的磁层上可记录的信息量将会增加,从而提高了磁记录密度。
倍密度软磁盘采用 MFM 的记录方式
评价记录方式的主要指标 编码效率
位密度与磁化翻转密度的比值,可以用记录一位信息的最大磁化翻转次数来表示
FM 、 PM 记录方式中,记录一位信息的最大磁化翻转次数为 2 ,因此编码效率为 50%。
MFM 、 NRZ、 NRZ1 中,编码效率为 100% 自同步能力
从单个磁道读出的脉冲序列中所提取同步时钟脉冲的难易程度。
NRZ1采用外同步 FM 、 MFM 是具有自同步能力的记录方式
软磁盘存储器 概述
软盘存储器的盘片使用类似塑料薄膜唱片的柔性材料制成的,简称软盘
软盘特点 转速低、存取速度低 活动磁头、可换盘片结构 软盘的磁头直接接触盘片进行读写 价格便宜、保存方便、使用灵活
第一台软盘机是 IBM公司 1972年研制成功的 IBM3740 数据录入系统,采用的是 8英寸单密度软盘,容量为 256K 。
软盘驱动器和控制器 软磁盘存储器由软盘驱动器(驱动结构、磁头、
定位机构、读写电路)、软盘控制器(解释来自主机的命令并向软盘驱动器发出各种控制信号,同时还要检测驱动器的状态,发送读写数据命令)、软磁盘片三部分组成
具体操作 寻道操作:将磁头定位在目标磁道上 地址检测操作:主机将目标地址送往磁盘控制器,控
制器从驱动器上按记录格式读区地址信息,并与目标地址进行比较,找到欲读写信息的磁盘地址
读写数据操作:首先检测数据标志是否正确,然后将数据字段的内容读入内存,最后进行 CRC校验
写数据操作:写数据时,不仅要将原始信息经编码后写入磁盘,同时还要写上数据区标志和 CRC校验码及间隙
初始化:在盘片上写格式化信息,对每个磁道划分区段
温彻斯特硬盘 是一种可移动磁头固定盘片的磁盘存储器 1972年首先应用在 IBM3340硬盘存储器中 采用密封组合方式,将磁头、盘片、驱动部件以及读
写电路等制成一个不能随意拆卸的整体 防尘性能好、可靠性高、对环境要求不高
硬盘存储器的结构 磁盘驱动器 主要包括主轴、定位驱动及数据控制等部分 磁盘控制器:接收主机发送来的命令 盘片