2009年 7月 27日 8时 34分 1年 月 日 时 分第三章 存储系统
概述
随机读写存储器
只读存储器
高速存储器
CACHE存储器
虚拟存储器
2009年 7月 27日 8时 34分 2年 月 日 时 分概述 —— 基本概念
基本概念
存储元件:用一个具有两种稳定状态,并且在一定条件下状态可相互转换的物理器件来表示二进制数码 0和 1,这种器件称为存储元件。
存储元:可存放 1bit信息。
存储单元:由若干个存储元组成一个存储单元。
存储器:由若干个存储单元组成了存储器。
2009年 7月 27日 8时 34分 3年 月 日 时 分概 述 —— 存储器分类
存储器分类
– 按存储介质分
– 按存取方式分
– 按存储器的读写功能分
– 按信息的可保性分
– 按在计算机系统中的作用分
2009年 7月 27日 8时 34分 4年 月 日 时 分概述 —— 存储系统的层次结构
存储系统的层次结构存储器系统是计算机中用于 存储程序和数据的部件,很重要。
对其要求是:
尽可能快的读写速度尽可能大的存储容量尽可能低的费用成本怎样才能更好地实现这些要求呢?
2009年 7月 27日 8时 34分 5年 月 日 时 分
解决方案 — 多 级存储器体系结构用生产成本与运行 成本不同 的存储 容量不同,读写 速度不同 的 多种存储介质,
组成一个统一的存储器系统,使每种介质都处于不同的地位,发挥不同的作用,充分发挥各自 在 速度,容量,成本 方面 的优势,从而达到最优性能价格比,满足使用要求。
概述 —— 存储系统的层次结构
2009年 7月 27日 8时 34分 6年 月 日 时 分存取速度 容量成本 存储成本
CPU 10ns 512B 1800 (美分 /KB)
缓存 20~40ns 128KB 72
主存 60~100ns 512MB 5.6
虚存 10~20ms 60~228GB 0.23
后援 2~20M 512GB~2TB 0.01
若能使 CPU大半部分时间访问高速缓存,只在从缓存中读不到时才从主存中去读,当从主存中还读不到时才去成批量读虚存,
此时 CPU 转去完成一点其它处理而不是空闲等待,以提高运行效率。
概述 —— 存储系统的层次结构
2009年 7月 27日 8时 34分 7年 月 日 时 分
1,一致性原则,
处在不同层次的同一个信息应保持相同的值。
2,包含性原则,
处在内层的信息一定被包含在其外层的存储器中,反之则不成立,即内层存储器的全部信息,是其相邻外层信息的一部分的复制品 。
层次间应满足的原则概述 —— 存储系统的层次结构
2009年 7月 27日 8时 34分 8年 月 日 时 分概述 —— 存储系统的层次结构
CPU
Cache
Memory
辅存虚拟存储器软件

硬件硬件计算机存储系统的层次结构
2009年 7月 27日 8时 34分 9年 月 日 时 分概述 —— 数据存放顺序
1,存放一个机器字的存储单元,称为字存储单元。相应的单元地址为字地址。
2,存放一个字节的单元,称为字节单元。
相应的地址称为字节地址。
2009年 7月 27日 8时 34分 10年 月 日 时 分概述 —— 数据存放顺序
一个 16位二进制的字存储单元可存放两个字节,可以按字地址寻址,也可以按字节地址寻址。
数据在存储器中的存放顺序
– 低端方式:低对低,高对高高字节存放在高地址,低字节存放在低地址
– 高端方式:
2009年 7月 27日 8时 34分 11年 月 日 时 分概述 —— 主要技术指标
存储容量,在一个存储器中可以容纳的存储单元总数通常称为该存储器的存储容量。 1KB=210B,
1MB=220B,1GB=230B,1TB=240B
存取时间(存储器的访问时间),是指从启动一次存储器操作达到完成该操作所经历的时间。
存储周期,是指连续启动两次读操作所需要间隔的最小时间。
存储器的带宽,是单位时间里存储器所存取的信息量。通常以位 /秒或字节 /秒来表示。
2009年 7月 27日 8时 34分 12年 月 日 时 分
3.2.2主存储器的基本结构
主存储器是由存储体加上一些外围电路构成。外围电路包括地址译码驱动器、
数据寄存器和存储器控制电路。
主存储器的基本操作:读操作、写操作、刷新操作
CPU的读命令和写命令
2009年 7月 27日 8时 34分 13年 月 日 时 分随机读写存储器
半导体存储器的优缺点:
优:半导体存储器的优点是存取速度快,
存储体积小,可靠高,价格低廉;
缺:断电后存储器不能保存信息;
静态 MOS存储器
动态 MOS存储器
2009年 7月 27日 8时 34分 14年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
六管静态 MOS存储元是由两个 MOS反相器交叉耦合而成的触发器。一个存储元存一位二进制代码,如果一个存储单元为 n
位,则需由 n个存储元才能组成一个存储单元 。
2009年 7月 27日 8时 34分 15年 月 日 时 分
写操作
写,1”:在 I/O线上输入高电位,在 I/O
线上输入低电位,开启 T5,T6,T7,T8四个晶体管,
把高、低电位分别加在 A,B点,使 T1管截止,
使 T2管导通,将,1”写入存储元,
写,0”:在 I/O线上输入低电位,在 I/O
线上输入高电位,打开 T5,T6,T7,T8四个开门管,
把低、高电位分别加在 A,B点,使 T1管导通,
T2管截止,将,0”信息写入了存储元。
2009年 7月 27日 8时 34分 16年 月 日 时 分
读操作?
若某个存储元被选中,则该存储元的
T5,T6,T7,T8管均导通,A,B两点与位线 D与 D相连 。
存储元的信息被送到 I/O与 I/O线上。
I/O与 I/O线接着一个差动读出放大器,从其 电流方向 可以判知所存信息是,1”还是
,0”。
2009年 7月 27日 8时 34分 17年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
SRAM的组成
– 存储体:存储单元的集合。
– 地址译码器:地址译码器的输入信息来自 CPU的地址寄存器。地址译码有两种方式,单译码方式和双译码方式。
– 驱动器:通常加在译码器的输出之后。
– I/O电路:处在数据总线和被选用的单元之间,用以控制被选中的单元读出或写入。
– 片选与读 /写控制电路:在地址选择时,首先要进行选片。
– 输出驱动电路:
2009年 7月 27日 8时 34分 18年 月 日 时 分
SRAM结构
2009年 7月 27日 8时 34分 19年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
SRAM存储器芯片举例 2114( 1k× 4)
其中:
地址线,A0-A9
数据线,D0-D3
控制线,CS*,
WE*等
2009年 7月 27日 8时 34分 20年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
存储器的读出时间,从给出有效地址后,
经过译码电路、驱动电路的延迟,到读出所选中单元的内容,再经过 I/O电路的延迟后在外部总线上稳定地出现所读出的数据信息。
读周期,表示存储片进行两次连续读操作时所必须间隔的时间,它总是略大于读出时间。
2009年 7月 27日 8时 34分 21年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
写周期,要实现写操作,必须要求片选信号和写信号都为低。而且在地址变化期间,写信号必须为高(即无效)。
2009年 7月 27日 8时 34分 22年 月 日 时 分随机读写存储器 —— 动态 MOS存储器
动态存储器的组成
– 四管动态存储器
– 单管动态存储器
2009年 7月 27日 8时 34分 23年 月 日 时 分
四管动态存储元在六管静态存储元电路中,
信息暂存于 T1,T2管的栅极,这是因为管子总是存在着一定的电容。负载管 T3,T4是为了给这些存储电荷补充电荷用的。
由于 MOS的栅极电阻很高,
故泄漏电流很小,在一定的时间内这些信息电荷可以维持住 。为了减少管子以提高集成度,把负载管 T3,T4去掉,这样变成了四管的动态存储电路。
2009年 7月 27日 8时 34分 24年 月 日 时 分
写操作,I/O与 I/O加相反的电平,当 T5,T6截止时,靠 T1,
T2管栅极电容的存储作用,在一定时间内 (如 2ms)可保留所写入的信息。
读操作,先给出预充信号,
使 T9,T10管导通,位线 D和
D上的电容都达到电源电压。
字选择线使 T5,T6管导通时,
存储的信息通过 A,B端向位
刷新操作,为防止存储的信息电荷泄漏而丢失信息,由外界按一定规律不断给栅极进行充电,补足栅极的信息电荷。
2009年 7月 27日 8时 34分 25年 月 日 时 分
单管动态存储元它由一个管子 T1和一个电容 C构成,写入时,字选择线为,1”,
T1管导通,定入信息由位线 ( 数据线 ) 存入电荷 C上的电荷,通过 T1
输出到数据线上,通过读出放大器即可得到存储信息 。
2009年 7月 27日 8时 34分 26年 月 日 时 分
单管存储元电路和四管存储元电路对比
名 称 优 点 缺 点
四管存储元电路 外围电路比较简单,管子多,占用的芯片面积大
刷新时不需要另加外部逻辑
单管存储元电路 元件数量少,集成度高 需要有高鉴别能力的读出放大器配合工作,外围电路比较复杂。
2009年 7月 27日 8时 34分 27年 月 日 时 分随机读写存储器 —— 动态 MOS存储器
动态存储器的操作
– 写入操作
– 读出操作
– 刷新操作
2009年 7月 27日 8时 34分 28年 月 日 时 分随机读写存储器 —— 动态 MOS存储器
动态 RAM的存储元件依靠电容上的电荷表示存储的数据信息,而电容的绝缘电阻不可能无限大,因此漏电不可避免。
每隔一定的时间就对存储体中全部的存储电进行充电,以补充所消失的电荷,维持原存信息不变,这个过程称为,刷新,。
显然,只要定时给全部存储元电路执行一边读操作,而信息不向外输出,那么就可实现信息再生或刷新。
2009年 7月 27日 8时 34分 29年 月 日 时 分随机读写存储器 —— 动态 MOS存储器
DRAM 的刷新
集中式刷新
分散式刷新
异步式刷新
刷新周期:从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止,
这一段时间称为刷新时间。一般为,2ms,
4ms,8ms
DRAM的刷新针对芯片进行刷新特别注意在计算时算到芯片级就可以了 。。
2009年 7月 27日 8时 34分 30年 月 日 时 分随机读写存储器 —— 动态 MOS存储器
集中式刷新
在整个的 2MS的时间内集中对每一行进行刷新,刷新时读 /写操作停止。每行的刷新一般与一次的读 /写周期相等。
0 1 2 3870 3871 3872 3873 3999
2009年 7月 27日 8时 34分 31年 月 日 时 分
例如,
对 128*128矩阵存储器进行刷新时,刷新的时间相当于 128个读周期,假如读写周期为 0.5us,刷新周期为 2ms,那么共有 2ms/0.5us=4000个周期。其中
4000-128=3872个周期用来 读写或维持,然后用 128
个周期,相当于 128*0.5=64us用来 刷新操作 。由于在这 64us中不进行读写操作,故称其为死时间。
2009年 7月 27日 8时 34分 32年 月 日 时 分
分散式刷新方式
把每行存储元件的刷新分散安排在各个读写周期内即把读写周期分为两段,前段表示读写,后段表示刷新时间 。
例如,对 128*128的存储器,假如存储器的读写周期为 0.5us,那么刷新的时间也为 0.5us,则整个存储系统周期为 1us。只需 128us就能对全部的存储单元刷新一遍。
R/W REF R/W REF R/W REF R/W REF
128us
2009年 7月 27日 8时 34分 33年 月 日 时 分随机读写存储器 —— 动态 MOS存储器
2009年 7月 27日 8时 34分 34年 月 日 时 分随机读写存储器 —— 动态 MOS存储器
异步刷新方式,
将集中式和分散式结合起来,即在 2ms内分散地把 128行刷新一遍,
2ms/128=15.5us
R/W R/W R/W R/WR/WREF R/W REF
15.5uS 15.5uS
2009年 7月 27日 8时 34分 35年 月 日 时 分
说明 1M× 1位 DRAM片子的刷新方法,刷新周期定为 8ms,
【 解 】
如果选择一个行地址进行刷新,刷新地址为 A0—A8,因此这一行上的 2048个存储元同时进行刷新,即在 8ms内进行 512个周期的刷新。
按照这个周期数,512× 2048= 1 048 567,
即对 1M位的存储元全部进行刷新。
刷新方式可采用:在 8ms中进行 512次刷新操作的集中刷新方式,或按 8ms÷ 512= 15.5μs 刷新一次的异步刷新方式。
2009年 7月 27日 8时 34分 36年 月 日 时 分
3.2.4 高性能主存储器
1,EDRAM芯片 P88 图 3.18
2,EDRAM内存条
2009年 7月 27日 8时 34分 37年 月 日 时 分
3.2.5 读写存储器(自学)
1、动态 RAM( Dynamic RAM)
2,FPM DRAM快速页面式动态随机存储器;
3,EDO DRAM
4、双列直插式内存模块 ——DIMM
5、高速内存 ——SDRAM
6,DDR
7,RDRAM
2009年 7月 27日 8时 34分 38年 月 日 时 分
FPM DRAM
当 FRM DRAM读取数据时,如果它预测到下一次读取数据的位臵是相邻位臵,那么读取数据的速度就可以加快。
FRM DRAM的工作原理,是较早的微机中普遍使用的内存。它每隔 3个时钟周期传送一次数据。
在快页模式下,当预测到所需的下一条数据所存放的位臵与当前位臵相邻时,就会触发数据所在行的下一列。
2009年 7月 27日 8时 34分 39年 月 日 时 分
EDO的工作原理:
每隔 2个时钟周期传送一次数据。
先触发内存中的一行,然后触发所需的那一列。但是当找到所需的那条信息时,EDO
DRAM将输出数据缓冲区保持开放,直到下一列存取或下一度周期开始。由于缓冲区保持开放,因而 EDO消除了等待状态,使突发式传送更加迅速。
2009年 7月 27日 8时 34分 40年 月 日 时 分
SDRAM芯片
SDRAM为同步动态随机存储器型芯片,它是在
DRAM上集成了一个 SRAM实现的小容量的高速缓冲器。
从而使 DRAM芯片的性能得到显著改进。
它与 CPU共享一个时钟周期,以相同的速度同步工作,
每一个时钟脉冲的上升沿便开始传递数据。
以 SRAM保存一行内容的办法,对成块传送非常有利。如果连续的地址高 11位相同,意味着属于同一行地址,那么连续变动的 9位列地址就会使 SRAM中相应位组连续读出,这称为 猝发式读取。
2009年 7月 27日 8时 34分 41年 月 日 时 分
SDRAM的工作原理
SDRAM基于双存储体系结构,内含两个交错的存储阵列,允许两个内存页面同时打开,这样当 CPU从一个存储体或阵列访问数据时,另一个已准备好读写数据了。通过两个存储阵列的紧密切换,
读取效率能得到成倍的提高。
2009年 7月 27日 8时 34分 42年 月 日 时 分
SDRAM的结构,另外两个优点:
在 SRAM读出期间可同时对 DRAM阵列进行刷新。
芯片内的数据输出路径与输入路径是分开的,
允许在写操作完成的同时来启动同一行的读操作 。
SDRAM内存条存储模块本身具有高速成块存取能力,这种模块内存储字完全顺序排放,以猝发式存取来完成高速成块存取的方式,在当代微型机中获得了广泛应用。 (SDRAM,DDR)
2009年 7月 27日 8时 34分 43年 月 日 时 分
DDR
DDR是由 VIA,IBM,AMD等几家公司联合制定开发的内存规范。经过了这些年内存条价格的持续波动以后,现在它的价格已经很低,且目前无论是使用 AMD还是 Intel的 CPU都有为之构建的主板平台,所以无论从整体还是个体角度考虑,都比采用 RDRAM内存的系统便宜不少,因此逐渐成了市场的主流。
2009年 7月 27日 8时 34分 44年 月 日 时 分
规格及标称
DDR采用的是双倍数据传输,具有 SDRAM内存两倍的带宽,在 100MHz下,DDR内存理论上可提供
100MHz× 2× 8Byte=1.6GB/s的数据传输率,在
133MHz下可达到 2.1GB/s。
当然,DDR运用在系统上速度就会比 SDR快整整两倍。在现阶段的系统条件下,DDR内存通常比
SDR内存快 5%,而在一些与内存带宽密切相关的软件应用中 DDR才能够发挥自己的作用,增加的效能可能达到 30%之多。
2009年 7月 27日 8时 34分 45年 月 日 时 分
DDR内存条的命名:
由于 DDR比 SDRAM的数据带宽提高了一倍,所以一开始就有了这样的命名方式:把工作频率为
100/ 133MHz的 DDR内存称作 DDR200/ 266,
像 DDR333的工作频率自然就是 166MHz了。
另一种表示方法就是用 DDR内存的最大理论传输率来命名,例如 DDR266的工作频率是 133MHz,
它的最大理论传输率是 64 bit× 2 × 133 MHz =
2133 MB/s,所以就采用了 PC2100命名。
DDR内存的工作原理
2009年 7月 27日 8时 34分 46年 月 日 时 分
大多数 DDR内存都使用 8 到 16个内存芯片。我们这里有一条 8
芯片的内存条。这 8个芯片都采用并行总线和 64位总线连接。
DDR 内存的寻址信号和数据信号是完全区分开的。要注意上面这幅图片仅仅是简化图,实际原理要复杂得多。最关键的是
64位的数据总线被划分成了 8个并行数据线,用来连接这些内存芯片。
寻址和命令信号会在同一时间传输到内存条上的所有芯片里。
2009年 7月 27日 8时 34分 47年 月 日 时 分
RDRAM
RDRAM是由美国 Rambus公司设计生产的,并由 Intel最早提出并运用在 PC平台上的。它最主要的工作原理是依靠高时钟频率来简化每个时钟周期数据量。由于有超高的频率
(通常为 300MHz和 400MHz,800MHz),又由于它的行地址与列地址寻址总线是各自分离的独立总线,使 RDRAM
的最大传输率达到了 3.2GB。
性能是 RDRAM的一个优势,但是其劣势也是明显的。首先是同传统 SDRAM内存的不兼容,这样使得无论是厂家更换生产线还是用户改变系统平台,都要付出高昂成本。其次
RDRAM是 RAMBUS公司的专利,其他厂商如果要生产就需要支付一笔相当高的专利费用。
2009年 7月 27日 8时 34分 48年 月 日 时 分
注意:三条彩色的数据传输线。
寻址总线的工作原理和数据总线的工作原理一样。 Rambus
传输线穿过两条(或四条)
RIMM,然后分别在两端终止。
所有的 Rambus芯片都是串在传输线上的。每个芯片都是 16
位的,所以 RDRAM 通道只需要一个芯片就可以工作了。
而 DDR 内存则采用 8个 8位的并行数据线。第一条内存上的第一个内存芯片和第二条内存上的第一个内存芯片连接,其它芯片也是一样。必须要有 4-
16个内存芯片,内存条才能工作。
因此 RDRAM虽然只有一条 16位的数据线,但是这一条数据线却可以连接全部的内存芯片。
2009年 7月 27日 8时 34分 49年 月 日 时 分内存的性能指标
容量
速度
内存的奇偶校验
内存的工作电压
FPM 5V,EDO 5V
SDRAM 3.3V
DDR2把工作电压从 DDR的 2.5V降到 1.8V
2009年 7月 27日 8时 34分 50年 月 日 时 分基本内存显示缓冲区接口卡 BIOS使用影子内存扩展内存
ROM
640KB
384KB
384KB
14976KB
16MB
0000000
009FFFF00A0000
00BFFFF00C0000
00DFFFF00E0000
00F00000100000
015FFFF0016000
0FFFFFF
FFE0000
FFFFFFF
主存物理地址的存储空间分布
奔腾 CPU数据总线为 64位,地址总线为 32位。
2009年 7月 27日 8时 34分 51年 月 日 时 分
3.3
只读存储器和闪速存储器
2009年 7月 27日 8时 34分 52年 月 日 时 分信息只能读出不能随意写入的存储器,称为只读存储器,记为只读存储器 ROM。
它的特点是通过一定方式将信息写人之后,信息就固定在 ROM中,供电电源切断之后,信息也不会丢失 。
它的最大优点是具有 不易失性 。
只读存储器主要用来存放一些不需要修改的程序,如微程序,子程序,某些系统软件和用户软件 。
只读存储器和闪速存储器 —— 只读存储器
2009年 7月 27日 8时 34分 53年 月 日 时 分
1.掩膜式 ROM
特点,
由厂家制成,用户不能修改。可靠性高。
存储元,二极管双极型晶体管
MOS管工作原理:
管子的基极连选择线,该管导通,反向后输出为,1”,反之输出为,0”。
– 掩摸式只读存储器,数据在芯片制造过程中就确定优 点,可靠性和集成度高,价格便宜
– 缺 点,不能重写
2009年 7月 27日 8时 34分 54年 月 日 时 分
2.PROM
特点,用户可自行改变产品中某些存储元,用户可编程一次。
熔丝型 PROM
多发射极管基极连选择线编程写入时,熔丝烧断输出为,1”,不断为,0”。
优 点,可以根据用户需要编程缺 点,只能一次性改写
3.EPROM--可擦除可编程只读存储器 ( Erasible Programmable
ROM)
可以用紫外光照射擦除原来的数据,然后再重新写入新的数据。
优点,可以多次改写 ROM中的内容。
基本存储元:
制造时,硅栅上无电荷,该管无导电沟道,D,S间不导电,存,1”。
写,0”时,D,S间加 25V高压,另加编程脉冲,选中的单元 D,S被瞬间击穿,电子注入硅栅。高压去掉后,
因硅栅有绝缘层包围,电荷无法泄露硅栅变负,形成导电沟道,存储元导通,输出为,0”。
衰减期很长,降到 80%需 100年。 用紫外光照射后,硅栅上的电荷形成光电流泄露,使电路恢复起始状态,变为,1”。
2009年 7月 27日 8时 34分 56年 月 日 时 分
EEPROM
E2PROM 又记为 EEPROM,是电可擦除电可改写的只读存储器。在 EPROM中的信息是用电的方式编程写入的,但要擦除它们要靠外界的紫外线照射才行。
而 E2PROM由于其本身带有 UPP编程电源,故可以使用单一的十 5V电源擦除和写入,而不必外加
UPP编程电源和紫外灯,使用十分方便。
2009年 7月 27日 8时 34分 57年 月 日 时 分
EEPROM 实例
2816( 2K× 8)
Vpp 脱机编程时加 25V
正常时加 5V
2816
2009年 7月 27日 8时 34分 58年 月 日 时 分
EEPROM芯片种类很多,如 2816,2732,
2764,27128,27256,27512等。
它们之间的区别在于存储容量的不同。
2816是 2K× 8位,而 27256为 32K× 8位。
2009年 7月 27日 8时 34分 59年 月 日 时 分闪速存储器 ( Flash Memory) 是一种快擦写存储器,也是一种具有不挥发性的存储器,可以在线进行擦除和重写 。 目前其集成度和价格已接近
EEPROM,因而它是 EPROM和 E2PROM的理想替代器件 。
Flash Memory与 E2PROM的逻辑结构相似,
是在它的基础上制作的,最主要的 区别在于存储元的结构和制作工艺 。
EEPROM 可 以 进 行 字 节 擦 除,而 Flash
Memory 不能按字节擦除,只能整片擦除 。
Flash Memory
2009年 7月 27日 8时 34分 60年 月 日 时 分
E盘
U盘指盘
2009年 7月 27日 8时 34分 61年 月 日 时 分只读存储器和闪速存储器 —— 闪速存储器
闪速存储器:是一种高密度的、非易失性的读写半导体存储器。
特点,1.固有的非易失性
2.廉价的高密度
3.可直接执行
4.固态性能
5.高传输率
2009年 7月 27日 8时 34分 62年 月 日 时 分
2009年 7月 27日 8时 34分 63年 月 日 时 分
闪速存储器的工作原理
闪速存储器是在 EEPROM功能基础上增加了电路的电擦除和重新编程能力。芯片引入一个 指令寄存器 来实现这种功能。其作用是,
(1)保证 TTL电平的控制信号输入;
(2)在擦除和编程过程中稳定供电;
(3)最大限度的与 EEPROM
2009年 7月 27日 8时 34分 64年 月 日 时 分
当 VPP引脚不加高电压时,它只是一个只读存储器。
当 VPP引脚加上高电压时,除实现
EEPROM通常操作外,
通过指令寄存器,可以实现存储器内容的变更。
当 VPP=VPPL时,指令寄存器的内容为读指令,使 28F256A成为只读存储器,称为 写保护 。
2009年 7月 27日 8时 34分 65年 月 日 时 分
闪速存储器的工作模式
读操作,片选信号 CE是供电控制端,输出允许信号 OE
用于控制数据从输出引脚的输出。只有这两个信号同时有效时,才能实现数据输出。
输出禁止操作,当输出允许控制端 OE处于高电平时,
28F256A
等待操作,当片选信号 CE处于逻辑高电平时,等待操作抑制了 28F256A的大部分电路,减少器件功耗。
写操作,当 VPP为高电压时,通过指令寄存器实现器件的擦除和编程 。当 CE=0且 WE=0时,通过写周期对指令寄存器进行写入。
2009年 7月 27日 8时 34分 66年 月 日 时 分
闪速存储器与 CPU的连接
由于闪存电路结构的特点,大大简化了对存储器系统实施电路更新所需要的接口电路,也简化了存储器和 CPU的连接。
2009年 7月 27日 8时 34分 67年 月 日 时 分闪存能提供高性能、低功耗、高可靠性以及瞬时启动能力,所以有可能使现有的存储器结构发生变化。下图具有先进性能的存储器体系结构:
2009年 7月 27日 8时 34分 68年 月 日 时 分主存储器组织
2009年 7月 27日 8时 34分 69年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
存储器与 CPU 的连接
CPU对存储器进行读 /写操作,首先由 地址总线 给出地址信号,然后要发出读操作或写操作的 控制信号,最后在 数据总线 上进行信息交流,要完成地址线的连接、
数据线的连接和控制线的连接。
存储器芯片的容量是有限的,为了满足实际存储器的容量要求,需要对存储器进行扩展。
位扩展法
字扩展法
字位同时扩展法
2009年 7月 27日 8时 34分 70年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
位扩展法:
– 当芯片的容量和主存容量相同,而位数不足时,就要对位数进行扩展。
– 方法,将多片存储芯片的地址端、片选端和读 /写控制端各自并联在一起,而他们的数据端分别引出,连到存储器不同位的数据总线上。
2009年 7月 27日 8时 34分 71年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
例:用 Intel2114芯片,组成 1024*8的存储器。
解,2114的规格为 1024*4,所以需要两片。
2009年 7月 27日 8时 34分 72年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
I/O1 I/O2 I/O3 I/O4
WE 2114 CS
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
I/O1 I/O2 I/O3 I/O4
WE 2114 CS
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9CPU
A0
A9
CS
D0-D8
2009年 7月 27日 8时 34分 73年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
假定使用 8K× 1的 RAM存储器芯片,那么组成 8K× 8位的存储器,每一片 RAM是
8192× 1,故其地址线为 13条( A0— A12),
可满足整个存储体容量的要求。每一片对应于数据的 1位(只有 1条数据线),故只需将它们分别接到数据总线上的相应位即可。
在这种方式中,对片子没有选片要求,就是说片子按已被选中来考虑,如果片子有选片输入端( CS),可将它们直接接地。
2009年 7月 27日 8时 34分 74年 月 日 时 分
2009年 7月 27日 8时 34分 75年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
字扩展法,当芯片字长与主存相同,而容量不足时,就需要用几片存储器芯片组成合起来的存储空间即地址空间进行扩展,称为字扩展。
方法,将各芯片的地址线,数据线、读 /写线分别并联在一起,片选信号单独连接,用来区分各片地址,用高位地址经过译码而产生的输出信号作为各个芯片的片选信号,用低位地址作为各芯片的片内地址。
例:用 16K× 8位的芯片采用字扩展法组成 64K× 8
位的存储器。
4个芯片的数据端与数据总线 D0— D7相连,
地址总线低位地址 A0— A13与各芯片的 14位地址端相连,而两位高位地址 A14,
A15经译码器和 4个片选端相连。
2009年 7月 27日 8时 34分 77年 月 日 时 分
2009年 7月 27日 8时 34分 78年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
例:用 Intel2114芯片,组成 4096*4的存储器。
解:
2114的规格为 1024*4;系统地址线,12
条,数据线 4条;芯片地址线,10条,数据线 4条 。
2009年 7月 27日 8时 34分 79年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
I/O1 …,,I/O4
WE 2114 CS
A0 …,A9
I/O1 …,,I/O4
WE 2114 CS
A0 …,A9
I/O1 …,,I/O4
WE 2114 CS
A0 …,A9
I/O1 …,,I/O4
WE 2114 CS
A0 …,A9
CPU
A0
A9
D0-D3
A10
A11
2:4
译码器w
E
2009年 7月 27日 8时 34分 80年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
A11A10A9A8A7A6A5A4A3A2A1A0
0 0 0 ………………… 0
0 0 1 ………………… 1
0 1 0 ………………… 0
0 1 1 ………………… 1
1 0 0 ………………… 0
1 0 1 ………………… 1
1 1 0 ………………… 0
1 1 1 ………………… 1
000-----3FF 1K
400-----7FF 1K
800-----BFF 1K
C00-----FFF 1K
2009年 7月 27日 8时 34分 81年 月 日 时 分随机读写存储器 —— 静态 MOS存储器字位同时扩展法:
实际的存储器 往往 需要对字和位同时扩展,如果所用的存储器芯片的规格是
m*n,组成容量位 M,字长为 N的存储器,
所需要的芯片数则为
n
N
m
M?
2009年 7月 27日 8时 34分 82年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
假设用 16K*1的存储芯片组成 64K*16的存储器。
解:所需的芯片数为
系统的地址线,16条,A0---A15
系统的数据线,16条,D0---D15
芯片的地址线,14条,A0---A13
芯片的数据线,1条,D0
641161664
2009年 7月 27日 8时 34分 83年 月 日 时 分随机读写存储器 —— 静态 MOS存储器
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
0 0 0 ………………… 0
0 0 1 ………………… 1
0 1 0 ………………… 0
0 1 1 ………………… 1
1 0 0 ………………… 0
1 0 1 ………………… 1
1 1 0 ………………… 0
1 1 1 ………………… 1
0000-----3FFF
4000-----7FFF
8000-----BFFF
C000-----FFFF
2009年 7月 27日 8时 34分 84年 月 日 时 分
2,4
译码器
D0 D1 D15
A0-A13
A14
A15
C
P
U
2009年 7月 27日 8时 34分 85年 月 日 时 分
例 5— 1 用 INTEL2114芯片 1K*4构成 4K*8
的存储系统。
2009年 7月 27日 8时 34分 86年 月 日 时 分只读存储器和闪速存储器 —— 只读存储器
例 3,CPU的地址总线 16根,双向数据总线 8根,控制总线中与主存有关的信号 MERQ,R/W。主存地址空间分配如下,0— 8191为系统程序区,由只读存储芯片组成,8192— 32767为用户程序区,最后 2K
地址空间为系统工作区。
现有芯片:
EPROM 8K*8
SRAM 16K*1,2K*8,4K*8,8K*8
请设计该计算机主存储器,画出主存储器逻辑框图。
2009年 7月 27日 8时 34分 87年 月 日 时 分只读存储器和闪速存储器 —— 只读存储器
解:主存地址空间分布如图所示。
8K( EPROM)
24K( SRAM)
30K(空)
2K( SRAM)
0
8191
8192
32767
63487
65535
2009年 7月 27日 8时 34分 88年 月 日 时 分
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
0 0 0 0 0 0 ………………… 0
0 0 0 1 1 1 ………………… 1
0 0 1 0 0 0 ………………… 0
0 0 1 1 1 1 ………………… 1
0 1 0 0 0 0 ………………… 0
0 1 0 1 1 1 ………………… 1
0 1 1 0 0 0 ………………… 0
0 1 1 1 1 1 ………………… 1
……
1 1 1 1 1 0 ………………… 0
1 1 1 1 1 1 ………………… 1
0000-----1FFF(8K)
4000-----5FFF (8K)
6000-----7FFF (8K)
F800-----FFFF (2K)
2000-----3FFF (8K)
2009年 7月 27日 8时 34分 89年 月 日 时 分只读存储器和闪速存储器 —— 只读存储器根据条件选用
ROM,8k*8位,1片
RAM,8K*8,3片,2K*8,1片只读存储器和闪速存储器 —— 只读存储器
D7 D0
EPROM
A0 A12
D7 D0
SRAM
A0 A12
D7 D0
SRAM
A0 A12
D7 D0
SRAM
A0 A12
D7 D0
SRAM
A0 A10
CPU
D0
D7
R/W
A0A
10A
11A
12
A13A
14
A15
MREQ
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
74LS138
A B C
CS
2009年 7月 27日 8时 34分 91年 月 日 时 分作业
P125------1\3\4\ 6
2009年 7月 27日 8时 34分 92年 月 日 时 分
3.4 高速存储器
2009年 7月 27日 8时 34分 93年 月 日 时 分高速存储器
由于 CPU和主存储器在速度上不匹配,而且在一个 CPU周期中可能需要用几个存储器字,这便限制了高速计算,为了使 CPU不至因为等待存储器读写操作的完成而无事可做,可以采取一些加速 CPU和存储器之间有效传输的特殊措施。
2009年 7月 27日 8时 34分 94年 月 日 时 分
双端口存储器
多模块交叉存储器
相联存储器
2009年 7月 27日 8时 34分 95年 月 日 时 分双端口存储器
双端口存储器的逻辑结构 见图 3.27
提供了两个相互独立的端口,各自具备地址线、数据线和控制线,因而可以对存储器中任何位置上的数据进行过独立的存取操作。
当两个端口同时存取存储器同一单元时,
便发生了读写冲突,为解决此问题,特设置了 busy标志。
2009年 7月 27日 8时 34分 96年 月 日 时 分多模块交叉存储器
存储器的模块化组织
一个由若干个模块组成的主存储器是线性编址的。这些地址在各模块中如何安排,有两种方式:
–顺序方式
–交叉方式
2009年 7月 27日 8时 34分 97年 月 日 时 分高速存储器 —— 多模块交叉存储器
顺序方式:
在顺序方式中某个模块进行存取时,其他模块可以照常工作。
另外通过增添模块来扩充存储器也比较方便。但顺序方式的缺点是各模块一个接一个串行工作,因此存储器的带宽受到了限制 。
2009年 7月 27日 8时 34分 98年 月 日 时 分高速存储器 —— 多模块交叉存储器模块 字
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
4 3 2 1 0
2009年 7月 27日 8时 34分 99年 月 日 时 分高速存储器 —— 多模块交叉存储器
设存储容量为 32字,分成 M0---M3四个模块,每个模块存储 8个字,访问地址按顺序分配给一个模块后,接着又按顺序为下一个模块分配访问地址。
这样,存储器的 32个字可由 5位地址寄存器指示,其中,高 2位选择 4个模块中的一个,低 3位选择每个模块中的 8个字。
2009年 7月 27日 8时 34分 100年 月 日 时 分高速存储器 —— 多模块交叉存储器
交叉方式,用地址码的低位字段经过译码选择不同的模块,而高位字段指向相应模块内的存储字。
这样,连续地址分布在相邻的不同模块中,而同一模块内的地址都是不连续的。因此,对连续字的成块传送,交叉方式的存储器可以实现多模块流水式并行存取,大大提高存储器的带宽。
2009年 7月 27日 8时 34分 101年 月 日 时 分高速存储器 —— 多模块交叉存储器
存储容量是 32个字,分成 4个模块,
每个模块 8个字,当存储器寻址时,用地址寄存器的低 2位选择 4个模块中的一个,
而用高 3位选择模块中的 8个字。
字 模块
4 3 2 1 0
2009年 7月 27日 8时 34分 102年 月 日 时 分高速存储器 —— 多模块交叉存储器字 模块
0
4
8
12
16
20
24
28
1
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
3
7
11
15
19
23
27
31
4 3 2 1 0
2009年 7月 27日 8时 34分 103年 月 日 时 分高速存储器 —— 多模块交叉存储器
多模块交叉存储器的基本结构
CPU
存储器控制部件
M0 M1 M2 M3
2009年 7月 27日 8时 34分 104年 月 日 时 分
每个模块各自以等同的方式与 CPU传送信息。
CPU同时访问四个模块,由存储器控制部件控制它们分时使用数据总线进行信息传递 。是一种并行
模块字长等于数据总线宽度,模块存取一个字的存储周期为 T,总线传送周期为 τ,存储器的交叉模块数为 m,为了实现流水线方式存取,应当满足 T=mτ ( m=T/τ 称为交叉存取度)交叉存储器要求其模块数必须大于或等于 m,以保证启动某模块后经 mτ 时间再次启动该模块时,它的上次存取操作已经完成。
2009年 7月 27日 8时 34分 105年 月 日 时 分
这样,连续读取 m个字所需的时间为
t1=T+(m-1)τ
顺序方式存储器连续读取 m个字所需时间为 t2=mT。
交叉存储器的带宽确实大大提高了。
m=4的流水线方式存取示意图如上图
1
2
3
4
1
2009年 7月 27日 8时 34分 106年 月 日 时 分
设存储器容量为 32字,字长 64位,模块数 m=4,分别用顺序方式和交叉方式进行组织。存储周期 T=200ns,数据总线宽度为 64位,总线传送周期 τ=50ns 。问顺序存储器和交叉存储器的带宽各是多少?
【 解 】
顺序存储器和交叉存储器连续读出 m=4个字的信息总量都是,q=64位 × 4=256位顺序存储器和交叉存储器连续读出 4个字所需的时间分别是:
t2=mT=4× 200ns=800ns=8× 10-7s;
t1=T+(m-1)*τ =200ns+3*50ns=350ns=3.5× 10-7s
顺序存储器和交叉存储器的带宽分别是:
W2=q/t2=256÷ (8× 10-7)=32× 107[位 /s] ;
W1=q/t1=256÷ (3.5× 10-7)=73× 107[位 /s]
2009年 7月 27日 8时 34分 107年 月 日 时 分高速存储器 ——
相联存储器,是按内容访问存储器。
相联存储器的基本原理是把存储单元所存内容的某一部分作为检索项(即关键字项),去检索存储器,并将存储器中该检索项符合的存储单元内容进行读出或写入。
2009年 7月 27日 8时 34分 108年 月 日 时 分相联存储器
1.基本原理按内容寻址的存储器。
地址 存储项(记录) 字段任一存储项都可以直接用该项的内容作为地址来存取的存储器,称为相联存储器。
选用来寻址的字段称 关键字 。简称键( KEY)。
存储项的格式:
KEY,DATA
学 号 姓 名 性 别 平均成绩
200112001 万 一 男 89.8
200112002 李 立 女 90
物理地址
n
n+1
2009年 7月 27日 8时 34分 109年 月 日 时 分高速存储器 ——
相联存储器的组成
– 检索寄存器
– 屏蔽寄存器
– 符合寄存器
– 比较线路
– 代码寄存器
– 存储体检索寄存器屏蔽寄存器比较线路存储器译码选择电路代码寄存器
1
2
.
.
.
m
符合寄存器
2009年 7月 27日 8时 34分 110年 月 日 时 分
3.5 Cache 存储器
2009年 7月 27日 8时 34分 111年 月 日 时 分
Cache存储器 —— 基本原理
CACHE的功能
CACHE是一种高速缓冲存储器,是为了解决 CPU和主存之间速度不匹配而采用的一项重要技术。
CACHE能高速地向 CPU提供指令和数据,
从而加快了程序的执行速度。
为追求高速,包括管理在内的全部功能由硬件实现。
2009年 7月 27日 8时 34分 112年 月 日 时 分
Cache存储器 —— 基本原理
小容量快速存储器
位于 CPU和内存之间
可以在放在 CPU内部,也可作为单独的模块。
2009年 7月 27日 8时 34分 113年 月 日 时 分
Cache存储器 —— 基本原理
LRU管理逻辑相联存储器
CPU 主存
CPU与 CACHE之间的数据是以字为单位,而 CACHE与主存之间的数据交换是以块为单位的。当 CPU读取主存中一个字时,便发出此字的内存地址到 CACHE和主存。
此时 CACHE控制逻辑依据地址判断此字当前是否在 CACHE 中,若是,
此字立即传送给 CPU;若非,则用主存读周期把此字从内存读出送到 CPU,与此同时,把含由这个字的整个数据块从主存读出送到
CACHE中。
2009年 7月 27日 8时 34分 114年 月 日 时 分
Cache存储器 —— 基本原理
CACHE的命中率,在一个程序执行期间,
设 Nc表示 cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率。则有:
mc
c
NN
Nh
2009年 7月 27日 8时 34分 115年 月 日 时 分
Cache存储器 —— 基本原理
若 tc表示命中时的 Cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则 Cache/主存系统的平均访问时间 ta为:
ta=htc+(1-h)tm
2009年 7月 27日 8时 34分 116年 月 日 时 分
Cache存储器 —— 基本原理
设 r=tm/tc表示主存慢于 Cache的倍率,e
表示访问效率,则有:
hrrrhhthht
t
t
te
mc
c
a
c
)1(
1
)1(
1
)1(
2009年 7月 27日 8时 34分 117年 月 日 时 分
CPU执行一段程序时,cache完成存取的次数为 1900次,主存完成存取的次 数为 100
次,已知 cache存取周期为 50ns,主存存取周期为 250ns,求 cache/主存系统的效率和平均访问时间。
【 解 】
h=Nc/(Nc+Nm)=1900/(1900+100)=0.95
r=tm/tc=250ns/50ns=5
e=1/(r+(1-r)h)=1/(5+(1-5)× 0.95)=83.3%
ta=tc/e=50ns/0.833=60ns
2009年 7月 27日 8时 34分 118年 月 日 时 分
Cache存储器 —— 地址映射
主存与 CACHE的地址映射
– 全相联映射方式
– 直接映射方式
– 组相联映射方式
2009年 7月 27日 8时 34分 119年 月 日 时 分
Cache存储器 —— 地址映射
全相联映射方式:
在全相联映射中,将主存中一个块的地址与块的内容一起存于 CACHE的行中,
其中块地址存于 CACHE 行的标记部分中。
CACHE的数据块大小称为 行 。主存的数据块大小称为 块 。行与块是等长的。
2009年 7月 27日 8时 34分 120年 月 日 时 分
主存中一个块的地址与块的内容一起存于 cache的行中,其中块地址存于 cache
行的标记部分中。
这种方法可使主存的一个块直接拷贝到 cache中的任意一行上,非常灵活。
它的主要缺点是比较器电路难于设计和实现,因此只适合于小容量 cache采用。
2009年 7月 27日 8时 34分 121年 月 日 时 分
Cache存储器 —— 地址映射
( a) 全相联映象
0
2
4
6
3
1
5
7
0
2
4
6
3
1
5
7
8
10
12
14
11
9
13
15
行号块号标记 Cache
主存
2009年 7月 27日 8时 34分 122年 月 日 时 分
直接映射方式
这也是一种多对一的映射关系,但一个主存块只能拷贝到 cache的一个特定行位臵上去。
cache的行号 i和主存的块号 j有如下函数关
i=j mod m ( m为 cache中的总行数)
直接映射方式的优点是硬件简单,成本低。
缺点是每个主存块只有一个固定的行位臵可存放,容易产生冲突。因此适合大容量 cache
采用 。
2009年 7月 27日 8时 34分 123年 月 日 时 分
Cache存储器 —— 地址映射
直接映射方式:
i = j mod m
( b) 直接映象
0
2
4
6
3
1
5
7
0
2
4
6
3
1
5
7
8
10
12
14
11
9
13
15
块号块号
Cache
主存
2009年 7月 27日 8时 34分 124年 月 日 时 分
组相联映射方式
这种方式是前两种方式的折衷方案。
它将 cache分成 u组,每组 v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的,即有如下函数关系:
m= u× v 组号 q= j mod u
组相联映射方式中的每组行数 v一般取值较小,这种规模的 v路比较器容易设计和实现。而块在组中的排放又有一定的灵活性,冲突减少。
2009年 7月 27日 8时 34分 125年 月 日 时 分
Cache存储器 —— 地址映射
组相联映射方式
( c) 组相联映象块号块号 Cache
主存
0
2
4
6
3
1
5
7
第 0组第 1组第 2组第 3组
0
2
4
6
3
1
5
7
8
10
12
14
11
9
13
15
2009年 7月 27日 8时 34分 126年 月 日 时 分
Cache存储器 —— 替换策略
cache工作原理要求它尽量保存最新数据,
必然要产生替换。
替换策略
– 随机法
– FIFO
– LRU
最不经常使用 (LFU)算法
LFU算法将一段时间内被访问次数最少的那行数据换出。
每行设臵一个计数器。从 0开始计数,每访问一次,被访行的计数器增 1。当需要替换时,将计数值最小的行换出,同时将这些行的计数器都清零。
这种算法将计数周期限定在对这些特定行两次替换之间的
近期最少使用 (LRU)
LRU算法将近期内长久未被访问过的行换出。每行也设臵一个计数器,cache每命中一次,命中行计数器清零,其它各行计数器增 1。当需要替换时,将计数值最大的行换出。
这种算法保护了刚拷贝到 cache中的新数据行,有较高的命中率 。
随机替换策略从特定的行位臵中随机地选取一行换出。在硬件上容易实现,且速度也比前两种策略快。
缺点是降低了命中率和 cache工作效率 。
2009年 7月 27日 8时 34分 128年 月 日 时 分
Cache存储器 —— 写操作策略写策略
– 写回法
– 全写法
– 写一次法
2009年 7月 27日 8时 34分 129年 月 日 时 分
写回法,
当 CPU写 CACHE命中时,只修改 CACHE的内容,
而不立即写入主存。只有 当此行被换出时才写回主存。
如果 CPU写 CACHE未命中,未包含欲写字的主存块在 CACHE分配一行,将此块整个拷贝到 CACHE后对其进行修改。
实现这种方法时,每个 cache行必须配臵一个修改位,以反映此行是否被 CPU修改过。
这种方法减少了访问主存的次数,但是存在不一致性的隐患。
2009年 7月 27日 8时 34分 130年 月 日 时 分
全写法,
当写 CACHE命中时,CACHE与主存同时发生写修改,因而较好地维护了 CACHE和主存内容的一致性。
当写 CACHE未命中时,只能直接向主存进行写入。
缺点是降低了 cache的功效。
2009年 7月 27日 8时 34分 131年 月 日 时 分
写一次法:
基于写回法并结合全写法的写策略,
写命中与写未命中的处理方法与写回法基本相同,只是第一次写命中时同时要写入主存。
2009年 7月 27日 8时 34分 132年 月 日 时 分
奔腾 PC机的 cache
奔腾 PC机采用两级 cache结构。安装在主板上的 2级 cache(L2)采用 2路 组相联映射方式,集成在 CPU内的 1级 cache(L1)
也采用 2路 组相联映射方式,L1又是 L2的子集,从而使 L1未命中处理时间大大缩短。 CPU中的 L1分设成各 8KB的指令 cache
和数据 cache,有利于 CPU高速执行程序。
L2级 cache采用的是 写回法,L1级数据 cache采用的是 写一次法 。
2009年 7月 27日 8时 34分 133年 月 日 时 分
数据 cache采用 2路组相联结构,采用 最近最少使用算法 LRU替换算法。
L2级 cache的内容是主存的子集,而
L1级 cache又是 L2级 cache的子集。 L2负责整个系统的 cache/主存一致性,L1负责响应 L2,与 L2一起维护 L1/L2两个
cache的一致性,保证三级存储系统的一致性。
2009年 7月 27日 8时 34分 134年 月 日 时 分
练习:
某计算机系统的内存储器由 cache和主存构成,cache的存取周期为 45ns,主存的存取周期为 200ns。已知在一段给定的时间内,CPU共访问内存 4500次,其中 340
次访问主存。问:
Cache的命中率是多少?
Cpu访问内存的平均时间是多少纳秒?
Cache-主存系统的效率是多少?
2009年 7月 27日 8时 34分 135年 月 日 时 分解:
1,cache的命中率
h=Nc/(Nc+Nm)=( 4500-340) /4500=0.92
2,cpu访存的平均时间
ta=htc+(1-h)tm=0.92 × 45+(1-0.92) × 200=57.4[ns]
3,cache-
e=tc/ ta=45/57.4=0.78=78%
2009年 7月 27日 8时 34分 136年 月 日 时 分
3.6 虚拟存储器
2009年 7月 27日 8时 34分 137年 月 日 时 分虚拟存储器 —— 基本概念
什么是虚拟存储器?
虚拟存储器是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。
虚拟存储器指的是主存 —— 外存层次。它以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。
2009年 7月 27日 8时 34分 138年 月 日 时 分
虚拟地址 (虚地址):
由编译程序生成的,是程序的逻辑地址,其地址空间的大小受到辅助存储器容量的限制。
虚拟地址空间,受辅助存储器容量的限制。
物理地址 (实地址):
由 CPU地址引脚送出,用于访问主存的地址。
物理地址空间,cpu地址总线的宽度为 m位,那么物理地址空间的大小用 2m来表示。
2009年 7月 27日 8时 34分 139年 月 日 时 分
CACHE和虚拟存储器都基于程序局部性原理:
1,把程序中最近常用的部分驻留在高速的存储器中。
2,一旦这部分变得不常用了,把他们送回到低速的存储器中。
3,这种换入换出是由硬件或操作系统完成的,对用户是透明的。
4,力图使存储系统的性能接近高速存储器,价格接近低速存储器。
两种存储系统的主要区别在于:
在虚拟存储器中未命中的性能损失要远大于
cache系统中未命中的损失。
每次传输的信息单元的大小相差很大。
2009年 7月 27日 8时 34分 140年 月 日 时 分
主存 -外存层次的基本信息传送单位
主存 -外存层次的基本信息传送单位可采用几种不同的方案,段、页 或 段页 。
段 是按照程序的逻辑结构划分成的多个相对独立部分,作为独立的逻辑单位。
页 是主存物理空间中划分出来的等长的固定区域。
段页式管理 采用分段和分页结合的方法。
2009年 7月 27日 8时 34分 141年 月 日 时 分页式虚拟存储器
页式管理:该系统传送的基本信息单位式定长的页。
逻辑页:在页式虚拟存储系统中,把虚拟空间分成页,称为逻辑页;
物理页:主存空间也分成同样大小的页,
称为物理页。
2009年 7月 27日 8时 34分 142年 月 日 时 分虚拟存储器 —— 页式虚拟存储器
假设逻辑页号为 0,1,2,…,m,物理页号为
0,1,…,n,显然有 m>n,由于页的大小都取 2的整数幂个字,所以,页的起点都落在低位字段为零的地址上。
虚存地址 分为两个字段:高位字段为逻辑页号,
低位字段为页内行地址。
实存地址 也分两个字段:高位字段为物理页号,
低位字段为页内行地址。由于两者的页面大小一样,所以 页内行地址是相等的。
虚拟存储器 —— 页式虚拟存储器页面基地址 逻辑页号 页内行地址物理页号 页内行地址页表基址寄存器 虚存地址实存地址
+
页表(在主存中)
控制位 主存页面号
2009年 7月 27日 8时 34分 144年 月 日 时 分
为了避免页表已保存或已调入主存储器时对主存访问次数的增多,把页表的最活跃部分存放在高速存储器中组成 快表。
快表由 硬件 组成,比页表小得多,查表时,由逻辑页号同时去查快表和慢表,
当在快表中有此逻辑页号时,就能很快地找到对应的物理页号送入实主存地址寄存器,从而做到虽采用虚拟存储器但访主存速度几乎没有下降。
2009年 7月 27日 8时 34分 145年 月 日 时 分图 快表与慢表实现内部地址变换
2009年 7月 27日 8时 34分 146年 月 日 时 分段式虚拟存储器
在段式虚拟存储系统中,段是按照程序的逻辑结构划分的,各个段的长度因程序而异,虚拟地址由段号和段内地址组成。
优点 是段的逻辑独立性使它易于编译、管理、
修改和保护,也便于多道程序共享;某些类型的段具有动态可变长度,允许自由调度以便有效利用主存空间。
缺点 是因为段的长度各不相同,起点和终点不定,给主存空间分配带来麻烦,而且容易在段间留下许多空余的零碎存储空间,造成浪费。
2009年 7月 27日 8时 34分 147年 月 日 时 分虚拟存储器 —— 段式虚拟存储器
为了把虚拟地址变换成实主存地址,
需要一个段表,装入位为,1”表示该段已调入主存,为,0”则表示该段不在主存中;
段的长度可大可小,所以,段表中需要有长度指示 。
在访问某段时,如果段内地址值超过段的长度,则发生地址 越界中断 。段表也是一个段,可以存在外存中,需要时再调入主存。但一般是驻留在主存中。
虚拟存储器 —— 段式虚拟存储器段表基地址 段号 段内地址主存地址段表基址寄存器 虚存地址实存地址
+
段表(在主存中)
+
段起址 装入位 段长段号
2009年 7月 27日 8时 34分 149年 月 日 时 分段页式虚拟存储器
段页式虚拟存储器是段式虚似存储器和页式虚拟存储器的结合 。
在这种方式中,把程序按 逻辑单位分段 以后,再把 每段分成固定大小的页 。 程序对主存的 调入调出是按页面进行 的,但它又可以按段实现共享和保护 。
因此,它可以兼取页式和段式系统的优点 。
它的缺点是在地址映象过程中需要多次查表 。
目前,大中型机一般都采用这种段页式存储管理方式 。
2009年 7月 27日 8时 34分 150年 月 日 时 分
多道程序,如果有多个用户在机器上独立运行就称为多道程序。
多道程序的每一道(每个用户)需要一个基号
(用户标志号),可由它指明该道程序的段表起始地址(存放在基址寄存器中)。
这样,虚拟地址应包括基号、段号、页号、页内地址。格式如下:
基号 段号 页号 页内地址
2009年 7月 27日 8时 34分 151年 月 日 时 分
例,今假设有三道程序 ( 用户标志号为 A,B,
C),其基址寄存器内容分别为 SA,SB,SC,逻辑地址到物理地址的转移过程见下图 。 在主存中,
每道程序都有一张段表,A程序有 4段,C程序有
3段 。 每段应有一张页表,段表的每行就表示相应页表的起始位臵,而页表内的每行即为相应的物理页号 。
解:地址转换过程如下:
( 1) 根据基号 C,执行 SC( 基址寄存器内容 ) 加 1( 段号 )
操作,得到段表相应行地址,其内容为页表的起始地址 b。
( 2) 执行 b( 页表起始地址 ) +2( 页号 ),得到物理页号的地址,其内容即为物理页号 10。
( 3) 物理页号与页内地址拼接即得物理地址 。
虚拟存储器 —— 段页式虚拟存储器
C 1 2 d
SA
SB
SC
A
B
C
10 d
1
2
8
7
10
12
4
+
+
基址寄存器 程序 A段表程序 C段表
S A+0
S B+1
S A+2
S A+3
S C+0
S C+1
S C+2
A+0
A+1
B+0
B+1
B+2
C+0
C+1
逻辑地址物理地址基号 段号 页号 页内地址物理页号
2009年 7月 27日 8时 34分 153年 月 日 时 分虚拟存储器 —— 替换算法
替换算法
虚拟存储器中的页面替换策略和 cache中的行替换策略有很多相似之处,但有三点显著不同:
(1)缺页至少要涉及前一次磁盘存取,读取所缺的页,缺页使系统蒙受的损失要比 cache未命中大得多。
(2)页面替换是由操作系统软件实现的。
(3)页面替换的选择余地很大,属于一个进程的页面都可替换。
2009年 7月 27日 8时 34分 154年 月 日 时 分
假设主存只有 a,b,c三个页框,组成 a进 c出的 FIFO
队列,进程访问页面的序列是 0,1,2,4,2,3,
0,2,1,3,2号。若采用① FIFO算法,② FIFO算法 +LRU算法,用列表法分别求两种替换策略情况下的命中率。
【 解 】 求解表格如下所示
2009年 7月 27日 8时 34分 155年 月 日 时 分
假设主存只有 a,b,c三个页框,组成 a进 c出的
FIFO队列,进程访问页面的序列是 3,4,2,6,
4,3,7,4,3,6号。若采用① FIFO算法,②
FIFO算法 +LRU算法,用列表法分别求两种替换策略情况下的命中率。
2009年 7月 27日 8时 34分 156年 月 日 时 分例:在页式虚拟存储器中,若主存容量为 16MB,
页面容量为 4KB,程序地址空间为 1G,问虚页号有多少位?页表长度为多少?页内地址有多少位?
解:由于页面容量为 4KB=212B,程序地址空间 =1GB=230B,故虚页号字段位数 =30-
12=18,页表长度 =218行,页内地址段为
12位数。
2009年 7月 27日 8时 34分 157年 月 日 时 分
例,设主存容量 4MB,虚存容量 1GB,页面大小为
4KB。
1、写出主存地址格式。
2、写出虚拟地址格式。
3、页表长度为多少?
解:
主存地址格式为:
虚拟地址格式为:
页表长度为 218=256K。
页号( 10位) 页内地址( 12位)
21 12 11 0
页面号( 18位) 页内地址( 12位)
29 12 11 0
2009年 7月 27日 8时 34分 158年 月 日 时 分
3.5存储保护和校验技术
2009年 7月 27日 8时 34分 159年 月 日 时 分存储区域保护访问方式保护
2009年 7月 27日 8时 34分 160年 月 日 时 分存储区域保护
当多个用户共享主存时,应防止由于 一个用户程序出错而破坏其他用户的程序和系统软件,以及 一个用户程序不合法地访问不是分配给它的主存区域 。
在虚拟存储系统中,通常采用 页表保护,段表保护 和 键式保护 方法。
2009年 7月 27日 8时 34分 161年 月 日 时 分
1,
每个程序的段表和页表本身都有自己的保护功能。
每个程序的虚页号是固定的,经过虚地址向实地址变换后的实存页号也就固定了。那么不论虚地址如何出错,
也只能影响到相对的几个主存页面。不会侵犯其他程序空间。
段表和页表的保护功能相同,但段表中除包括段表起点外,还包括段长(如图示可判断越界中断)。
2009年 7月 27日 8时 34分 162年 月 日 时 分
2,键保护方式
这种方法是为主存的每一页配一个键,称为存储键,相当于一把,锁,。为了打开这个锁,
必须有钥匙,称为 访问键 。
访问键赋予每道程序,并保存在该道程序的状态寄存器中。当数据要写入主存的某一页时,
访问键要与存储键相比较。若两键相符,则允许访问该页,否则拒绝访问。
另外还有 取数保护键,为每个页面设臵一个取数键寄存器。
2009年 7月 27日 8时 34分 163年 月 日 时 分
3,环保护方式
环保护方式可以做到对正在执行的程序本身的核心部分或关键部分进行保护。它是按 系统程序和用户程序的重要性 及 对整个系统的正常运行的影响程度 进行分层,每一层叫做一个环。
在现行程序运行前由操作系统定好程序各页的环号,并臵入页表中。然后把该道程序的开始环号送入 CPU的 现行环号寄存器 。程序可以访问任何外层空间;访问内层空间则需 由操作系统的环控例行程序判断这个向内访问是否合法 。
2009年 7月 27日 8时 34分 164年 月 日 时 分访问方式保护
对主存信息的使用可以有三种方式,读 (R)、
写 (W)和执行 (E),相应的访问方式保护就有 R,W,
E三种方式形成的逻辑组合,这些访问方式保护通常作为程序状态寄存器的保护位,并且和区域保护结合起来实现。
2009年 7月 27日 8时 34分 165年 月 日 时 分作业
P125
8,9,10,11,14