5计算机组成原理(第五章)

Download Report

Transcript 5计算机组成原理(第五章)

第五章




存储系统
存储器是记忆信息的实体,是数字计算机数据存储、信
息处理、自动连续执行程序的重要基础。
一般来说,计算机系统采用多级存储器体系结构,即由
容量、速度和价格各不相同的存储器构成存储系统。
设计一个容量大、速度快、成本低的存储系统是计算机
发展的一个基本要求。
本章重点讨论主存储器的工作原理、组成方式以及用半
导体存储芯片构成主存储器的一般原则和方法,并介绍
高速缓冲存储器和虚拟存储器的基本原理。
1
本章主要内容
主要内容






存储系统概述
随机存储器(SRAM、DRAM)和只读存储器(ROM)
主存储器的构成
提高主存速度的技术
高速缓冲存储器Cache
虚拟存储器
2
一、存储器概述
存储器是计算机系统的重要组成部分,是计算机
系统中的记忆设备,用来存放程序和数据。
二进制代码位是存储器中的最小存储单位,称为
一个存储位或存储元。由若干个存储元组成一个
存储单元,由若干存储单元组成一个存储器。
存储器和存储系统是两个不同的概念。存储系统
是由容量、速度和价格各不相同的存储器构成。
3
1、存储器分类

按存储介质分:




半导体存储器
磁表面存储器
光存储器
按存取方式分:




随机存储器
顺序存储器
半顺序存储器
按读写功能分:



只读存储器(ROM)
随机读写存储器(RAM)
按信息可保存性分:


易失性存储器
非易失性存储器
4
2、存储器的层次结构




计算机对存储器的要求是容量大、速度快、成本低。
但在一个存储器中同时满足这三方面的要求是困难的.
解决办法:把不同容量、不同速度的存储器,按一定
的体系结构组织起来,形成多级存储系统。
通常采用三级存储系统,由高
速缓冲存储器(cache)、主存
储器和外存储器构成。cache
和主存储器合称内存储器。
这种多层次结构已成为现代计
算机的典型存储结构。
5
各级存储器的作用



高速缓冲存储器(cache)
一个高速、小容量、半导体存储器,位于主存和CPU
之间,用来存放正在执行的程序段和数据。
主存储器
计算机系统中的主要存储器,用来存放计算机运行期
间所需要的程序和数据,它能和CPU、cache交换指
令和数据。
辅助存储器
用来存放当前暂不参与运行的程序和数据以及一些需
要永久性保存的信息。特点是存储容量大、位成本低,
但存取速度慢。CPU不能直接访问。
6
多级存储系统的效果


三级存储系统可分为两个层次:cache—主存层次和
主存—外存层次(称为虚拟存储器)。
各级存储器的职能各不相同。cache主要强调快速存
取,解决主存的存取速度和CPU的运算速度之间匹配
问题;外存主要强调大的存储容量,以满足海量数据
的存储要求;主存则要求选取适当的存储容量和存取
速度,来容纳系统的核心软件和较多的用户程序。

多级存储系统的效果:速度接近最快的那个存储器,
容量接近最大的那个存储器,位价格接近最便宜的那
个存储器。
7
3、主存储器的组织

主存由存储体、地址译码驱动电路、I/O和读写电路组成。
字节编址的计算机既能
字节寻址也能字寻址…
字地址的安排有两种:
大端方案和小端方案

在主存中,存放一个机器字的存储单元,称为字存储单元,相
应的单元地址叫字地址。而存放一个字节的单元,称为字节存
储单元,相应的地址叫字节地址。如果可编址的最小单位是字
单元,则该计算机称为按字寻址的计算机;如果可编址的最小
单位是字节,则该计算机称为按字节寻址的计算机。
8
4、主存储器的技术指标




存储容量:存储器中可以容纳的存储单元的总数称为
该存储器的存储容量。存储容量越大,能存储的信息
越多。存储容量常用字数或字节数来表示。
存取时间:启动一次存储器操作到完成该操作所经历
的时间。存取时间越小,存取速度越快。
存取周期:进行一次完整的主存读写操作所需要的全
部时间,即连续两次读写操作之间所需要的最短时间。
存取周期含内部状态恢复时间,略大于存取时间.
存储器带宽:单位时间内存储器所存取的信息量,它
以字/秒、字节/秒、位/秒为单位来表示,带宽是衡
量存储器数据传输速率的重要指标。
9
二、随机存储器: SRAM存储器
目前使用最多的随机存储器是半导体存储器。根
据存储信息的原理不同,又分为静态随机存储器
(SRAM)和动态随机存储器(DRAM)。半导体存
储器优点是存取速度快、体积小、可靠性高;其
缺点是断电后存储器中存储的信息随即丢失。
以下介绍静态随机存储器SRAM。
10
1、存储元的读写原理
存储元是存储器中的最小存储单位,它的基本作用是存储一
位二进制信息(0或1)。作为存储元的材料或者电路,必须
具备以下基本功能:
 具备两种稳定状态
 两种稳定状态经外部信号控制可以相互转换(状态写入)
 通过控制可以得到其中的信息(状态读出)
 无外部原因作用,其中的信息能长期保存
存储元可以由各种材料制成,但最常见的由MOS电路组成。
其中,SRAM存储元是用双稳态触发器存储信息的。
11
六管静态存储元电路


静态MOS存储元由T1、
T2、T3、T4管组成的双稳
态触发器保存信息,而且
因为T3、T4管给T1、T2管
供电,能长期保存信息不
变。掉电后,原来的信息
也就随即消失。
T1、T2管为工作管
T3、T4管为负载管
T5、T6、T7、T8为控制管
12
六管静态存储元工作原理(一)

状态保持(X、Y译码线至少有一个为低电平)
A点高
B点低
状态1
A点低
B点高
状态0
T1截止
A点高
T1导通
A点低
B点低
T2导通
B点高
T2截止
13
六管静态存储元工作原理(二)

写入(X、Y译码线为高电平,T5、T6、T7、T8导通)
“1”
写“1”:
左位线加高电平
右位线加低电平
A点高
B点低
T2导通
T1截止
“0”
写“0”:
左位线加低电平
右位线加高电平
A点低
B点高
T2截止
T1导通
14
六管静态存储元工作原理(三)

读出(X、Y译码线为高电平,T5、T6、T7、T8导通)
“1”
读“1”:
A点高、T2导通
B点低、T1截止
读“0”:
A点低、T2截止
B点高、T1导通
VCC经T3、5、7使
左位线流过电流
“0”
VCC经T4、6、8使
右位线流过电流
15
2、SRAM存储器的组成
SRAM存储器由存储体、读写电路、地址译码电路、控制电路组成。
16
SRAM存储器的组成(续一)


存储体:存储体是存储单元的集合。 在大容量存储器中,往往把各
个字的同一位组织在一个集成芯片中。例如,芯片有4096×1位,
则表示该芯片具有4096个字的同一位。
地址译码器:地址译码器有两种:单译码和双译码。



单译码:地址译码器只有一个,译码器的每个输出对应一个字。
当地址线数较多时,译码器将变得复杂而庞大,成本上升。
双译码:在双译码方式中,地址译码器分成X方向和Y方向两个
译码器。两个译码器交叉译码的结果,使译码选择结果没有减少,
而选择线数大幅度下降。
例如:芯片的4096个字排成64×64的矩阵,需要12根地址线。
低6位作为X译码器的输入,高6位作为Y译码器的输入,两译码
器输出各64根,总共需要128根。
17
SRAM存储器的组成(续二)




驱动器:在双译码结构中,一条X选择线要控制所有挂接的存储
单元,上述为64个电路,负载很大。为此,在译码器输出后需要
加驱动器,来驱动X选择线上的所有存储元电路。
I/O电路:它处于数据线和被选中的单元之间,用来控制被选中单
元的读出或写入,并具有放大信号的作用。
片选与读/写控制:一片集成电路的容量是有限的,要组成一个大
容量的存储器,需要将多块芯片连接起来使用。某个地址只用到
某个(某些)芯片,需要进行选择控制。只有当片选信号有效时
才能选中某一片。至于是读还是写,取决于CPU发出的命令。
输出驱动电路:为了扩展存储器的容量,经常需要将几个芯片的
数据线并联在一起;另外,存储器的读出数据或写入数据都放在
双向的数据总线上,这就要用到三态输出缓冲器。
18
3、SRAM存储芯片


SRAM存储芯片有多种型号,引脚组成如下:
 地址线:与存储芯片的单元数有关
 数据线:与存储芯片的字长有关
 片选线CS:SRAM必须有,用于芯片选择
 读/写控制信号WE
 电源线、地线
存储芯片的地址范围是其地址线从全“0”到全“1”的所有编码。
例1、某SRAM芯片,其存储容量为16K×8位,问:
①该芯片引出线的最小数目应为多少?
②存储器芯片的地址范围是多少?
解: ① 16K=214,所以地址线14位,而字长8位对应8位数据线,加
上片选信号CS、读/写控制信号WE、电源线和地线,该芯片
引出线的最小数目为26。
② 存储器芯片的地址范围为0000H—3FFFH。
19
4、SRAM的读写时序:读周期

读周期:在读周期内,地址输入信息不允许改变,片
选信号CS在地址有效之后变为有效,使芯片被选中。
最后在数据线上得到读出信号。读写控制信号WE在
读周期中保持高电平。
20
SRAM的读写时序:写周期

写周期: 写周期与读周期相似,但除了要加地址
和片选信号外,还要加一个低电平有效的写入脉
冲WE,并提供写入数据。
21
5、存储器的扩展
目前生产的存储器芯片的容量是有限的,它
在字数或字长方面与实际存储器的要求都有
差距,所以需要在字方向和位方向进行扩展
才能满足实际存储器的容量要求。
存储器扩展通常采用位扩展法、字扩展法、
或者字位同时扩展法。
22
位扩展法


当构成内存的存储器芯片的字长小于内存单元的字长
时,就要进行位扩展,使每个单元的字长满足要求。
也就是说,因字的位数不够而扩展数据输出线的数目.
位扩展特点:




位扩展法只加大字长(增加数据输出线的数目)
存储器的字数和芯片的字数一致(存储器的单元数不变)
对芯片无片选要求,访问时芯片被全部被选中(同时选中)
除数据线外,把其它同类线并联在一起。
23
位扩展法举例

例、使用8K×1的RAM芯片,组成8K×8的存
储器,可采用如图所示的位扩展法进行扩展。
其它
线并
联
对应
连接
24
字扩展法


字扩展是指在字长不变的情况下,增加存储单元数。
也就是,因总的字数不够而扩展地址输入线的数目。
字扩展的特点


仅在字方向上扩展,而位数不变。
连线方法:


每个芯片的地址线、数据线、控制线并联
片选信号分别引出,从而使各芯片占据不同的地址范围。
25
字扩展法举例

例、使用16K×8的SRAM芯片组成64K×8的存储器。
需要芯片数计算:64÷16=4片。
由于64K=216,需要16条地址线;8位数据需要8条数据
线。其中,16K=214,每片的16K寻址需要14条地址线,
剩余2条地址线通过2:4译码后,做4个片选信号。
26
字扩展的地址分配情况
A15A14 片选
00
01
1
2
10
3
11
4
最低地址/最高地址
十六进制地址
0000 0000 0000 0000B
0000H
0011 1111 1111 1111B
3FFFH
0100 0000 0000 0000B
4000H
0111 1111 1111 1111B
7FFFH
1000 0000 0000 0000B
8000H
1011 1111 1111 1111B
BFFFH
1100 0000 0000 0000B
C000H
1111 1111 1111 1111B
FFFFH
27
字和位同时扩展法



当构成一个容量较大的存储器时,往往会出现这样
的情况,存储芯片的位数和字数都不能满足存储器
的要求,需要在字方向和位方向上同时扩展。
例如,要求用m×n的芯片组成容量为M×N的存储
器,共需要(M/m)×(N/n)个存储芯片。不过
为了降低成本、减轻系统负载、缩小存储器模块尺
寸,一般应尽量选择集成度高的芯片来构成实际使
用的存储器。
我们将在存储器设计中详细介绍这种扩展技术。
28
举例: 1K×4芯片扩展为4KB存储器
A11~A10
译
码
器
CS3
CS0 CS1
A9~A0
WR
2114
A9~A0 CS
WE
2114
WE
D7~D4
D3~D0
… …
…
CPU
A9~A0 CS
…
MREQ
CS2
A9~A0 CS
2114
A9~A0 CS
WE
2114
WE
D3~D0
D7~D4
D7~D0
29
6、CPU和主存的连接



存储器同CPU连接时,需要完成包括地址线、数据线
以及控制线在内的连接。
片选信号对SRAM和ROM是必须的,所以需要产生存
储芯片的片选信号。通常,片选信号是通过高位地址
译码产生的,字选信号(选择存储单元)是由低位地
址线提供的。
举例来说,在微电子学院找一个同学,比较好的办法
是首先要找到他的班级,相当于“片选”;再从班中
找到这个同学,相当于“字选”。若把学号看作地址,
往往班级编号在前面,产生“片选”信号;而学生序
号在后,用于产生“字选”信号。
30
CPU和主存的连接(续)

片选信号的译码分为线选法、全译法以及部分译码法。



线选法:用除片内寻址外的高位地址线直接(或取反)分别接
到各个存储芯片的片选端。当某地址线为“0”时,就选中对应
的存储芯片。线选法不需要译码器,但会导致地址空间的不连
续。
全译法:除片内寻址外的全部高位地址都作为地址译码器的输
入,译码器的输出作为各芯片的片选信号。地址范围唯一确定,
连续、不重叠 。
部分译码法:用除片内寻址外的高位地址的一部分来译码,产
生片选信号。部分译码法会产生多个地址对应一个存储单元的
现象,地址重叠。
31
三、随机存储器: DRAM存储器



动态随机存储器DRAM是利用电容存储电荷的特性
来存储数据的,通常定义电容充电至高电平为1,
放电至低电平为0。
电容电荷会逐渐漏掉,要使保存的信息不变,就需
要每隔一段时间对电容补充电荷,即需要刷新。
采用电容存储电荷方式存储信息,一,不需要双稳
态电路,可以简化电路,提高存储器芯片的存储容
量;二,电路间隔性充电,可降低功耗。这两点都
使存储芯片集成度提高、成本下降。
32
1、四管存储元的读写原理
在六管静态存储元电路中,栅极存在一定的电容,
所以在去掉负载管T3、T4之后,仍能存储信息。这
是因为MOS管栅极电阻很高,漏电流很小,在一
定时间内,这些电荷还能够维持得住。这就为动态
存储元利用栅极电容存储信息提供了基础。去掉负
载管后,就形成了四管存储元结构。
33
四管动态存储元电路

去掉负载管T3、T4之后,T1、
T2 管不再构成双稳态触发器。
T1、T2管为工作管
T5、T6、T7、T8为控制管

两个稳态:
C1有电荷、C2无电荷为“0”
C1无电荷、C2有电荷为“1”
用于4K以下芯片
34
四管动态存储元工作原理

保持状态(X、Y线至少一个为低电平)

写入状态(X、Y线高电平,T5678导通)
35
四管动态存储元工作原理(续)


读出状态(X、Y线高电平,T5678导
通;预充信号为高,T9、10导通)
刷新(X线高电平,T5、6导通;预充
信号高,T9、10导通)
36
2、单管动态存储元工作
用于4K以上芯片
• 为了进一步简化结构,提高集成度,
采用单管动态存储元。它只有一个电
容和一个MOS管。电容C用来存储电
荷,MOS管V用来控制读写。
• 保持状态:字线加低电平,V断开,电
容C基本上无放电回路,从而维持电容
的“0”、“1”状态。
• 写入状态:字线加高电平,V导通。写入0时,位线W加低电平,电
容C通过控制管对位线W放电,呈现低电平状态;写入1时,位线W
加高电平,位线W通过控制管V对电容C充电,呈现高电平。
• 读出状态:字线加高电平,V导通。若原来存储1,C上有电荷,经
控制管V在位线上产生电流,读出1;若原来存储0,C上无电荷,在
位线上不产生电流,读出0。
• 刷新:单管存储元的读出操作会使C上的电荷发生变化,属于破坏性
读出,需要读后重写,也叫再生。刷新过程由外围电路自动完成。
37
3、DRAM的特点
由动态存储元构成DRAM存储芯片。DRAM芯片的容量都比较大,如
2164 DRAM芯片容量为64K×1。DRAM芯片具有以下特点:




DRAM中的数据输入线(DIN)与数据输出线(DOUT)是分开的,
且有各自的锁存器。
地址线引脚只引出一半,行地址选通信号RAS和列地址选通信号
CAS在时间上错开进行地址复用,内部有两个锁存器,分别接收
行地址和列地址。
有WE控制信号,没有CS片选信号,扩展时用RAS信号代替CS
(RAS为行选通信号、非行地址线)。
刷新是DRAM最突出的特点,有刷新电路,地址线也作刷新用,
而且只用行地址线。SRAM不需要刷新。
38
关于DRAM引脚举例
例2、某一动态RAM芯片,容量64K×1,除电源线、
接地线、刷新线外,该芯片的最小引脚数目是多少?
解: 64K=216,由于地址线引脚只有地址线数一半,所
以为8条;数据输入线与数据输出线是分开的,所以数
据线引脚为2条;它有读写控制信号WE 1条,而没有片
选信号;芯片有行选通信号RAS和列选通信号CAS,
共2条。所以,除电源线、接地线和刷新线外,该芯片
的最小引脚数目为8+2+1+2=13条。
39
4、DRAM的刷新



DRAM存储元是依靠栅极电容来存储信息的,电容的绝
缘电阻不是无穷大,因而电荷会泄漏掉,如同流沙漏斗
一样。通常MOS管栅极电容上的电荷只能保持几毫秒。
为了维持DRAM记忆单元存储的信息,每隔一定时间必
须对所有记忆单元的电容补充电荷,这个过程叫刷新。
一般来说,DRAM的刷新间隔为2ms~4ms,主要取决
于MOS管栅极电容上电荷泄漏的速度。
DRAM存储器全部刷新一遍所需的时间,如2ms,称为
刷新间隔;而刷新一行所需的时间称为刷新周期,刷新
周期在时间上等于存取周期。
40
① 刷新控制




无论是由刷新控制逻辑产生地址逐行刷新,还是芯片内
部自动刷新,都不依赖外部访问,刷新对CPU是透明的.
刷新通常是一行一行进行的,每一行中各记忆单元同时
被刷新,故刷新操作仅需要行地址,不需要列地址。
刷新操作类似于读操作,但又有区别。刷新操作仅给栅
极电容补充电荷,不需要信息输出。
所有芯片同时被刷新。在考虑刷新问题时,应当从单个
芯片的存储容量着手,而不是从整个存储器容量着手。
41
② 刷新方式
常用的刷新方式有三种:集中方式、分散方式和异步方式。
集中刷新方式:在允许的最大刷新间隔内(如2ms),前一段时间进
行读写操作或保持,后一段时间集中进行刷新。在刷新操作期间,停
止读写操作。刷新时间=存储矩阵行数×存取周期。
例如,对32×32存储矩阵的芯片
刷新(1024字),共需要32个刷
新周期。假设存取周期为0.5 s,
则在2ms内可以安排4000个存取
周期,其中用前3968个周期进行
读写操作或保持,用后32个周期
集中安排为刷新周期。
集中刷新方式的优点是读写期间不受刷新的影响,但主要缺点是在刷
新期间不能访存,这段时间称为“死区”。
42
刷新方式(续一)
分散刷新方式:把系统的一个存取周期分为两部分,前半部分时间
进行读写操作或保持,后半部分时间用来进行刷新操作。在一个系
统的存取周期内刷新存储矩阵中的一行。
如果存储芯片的存取周期为
0.5 s,则系统的存取周期应
为1 s 。仍以前述32×32矩
阵为例,整个存储芯片刷新一
遍需要32 s。
分散刷新方式的优点是没有死区,但加大了系统的存取周期,降低了
整机的速度;刷新过于频繁,没有充分利用允许的最大刷新间隔。
43
刷新方式(续二)
异步刷新方式:把集中刷新和分散刷新结合起来,便形成了异步刷新
方式。异步刷新先用刷新的行数把最大刷新间隔进行分割,然后再将
已分割的每段时间分为两部分,前一大段时间用于读写操作或保持,
后一小段时间用于刷新(先分散、后集中)。
对于32×32的存储矩阵,在
2ms内需要将32行刷新一遍,
所以相邻两行的刷新间隔
=2ms/32=62.5 s。(刷新
间隔分为32个时段)
异步刷新方式既能充分利用最大刷新间隔时间,减少了刷新次数,
又能保持系统的高速性。这种方法虽然也有“死区”,但很小。所
以是一种比较实用的刷新方式。
44
5、DRAM的读写时序
读周期:在读周期中,行地址必须在RAS有效之前有效,
列地址也必须在CAS有效之前有效,且在CAS到来之前,
WE必须为高电平,并保持到CAS脉冲结束之后。
45
DRAM的读写时序(续)
写周期:在写周期中,当WE有效之后,输入的数据必须
保持到CAS变为低电平之后。 在RAS、CAS和WE全部
有效时,数据被写入存储器。
46
6、DRAM与SRAM的比较

每片DRAM的存储容量大约是SRAM的4倍

DRAM的价格大约是SRAM的1/4

DRAM所需功率大约只有SRAM的1/6

DRAM由于使用动态元件,速度比SRAM低

DRAM需要刷新,不仅浪费时间,而且需要刷新电路

DRAM一般用作主存储器,而SRAM用作高速缓冲存
储器(cache)。
47
四、只读存储器ROM

RAM为随机存储器,当掉电时,所存储的
内容立即消失。而只读存储器ROM,即使
掉电,所存储的内容也不会丢失。

ROM构成主存储器时,和RAM统一编址,
一般ROM用来存放系统程序。
48
1、ROM的分类
ROM分为以下几类:




掩模式只读存储器(ROM)
一次编程ROM(PROM)
多次编程ROM(EPROM)
闪速存储器(Flash Memory)
49
只读存储器(一)


掩模式只读存储器(ROM)
掩模式ROM由芯片制造商在制造时写入内容,以后只能读出而
不能写入。它的基本存储原理是以元件的“有或无”来表示存
储元的信息(“1”或“0”),可以用二极管或晶体管作为元件,
其存储的内容不会改变。
优点可靠性高、集成度高、形成批量后价格便宜,缺点是对制
造商依赖性太大,灵活性差。
一次编程ROM(PROM)
PROM可由用户根据需要来确定ROM中的内容,常见的熔丝式
PROM以熔丝的接通和断开来表示所存的信息(“1”或“0”)。
刚出厂的产品,其熔丝全部接通;使用前,用户根据需要断开
某些单元的熔丝(写入)。断开后的熔丝是不能再接通的,所
以是一次性写入的存储器。双极型PROM除熔丝式PROM外,
还有PN结击穿型PROM,都只能进行一次性写入。
50
只读存储器(二)


多次编程ROM(EPROM)
EPROM不仅可以由用户写入信息,而且可以对其内容进行多次改
写。EPROM出厂时,存储内容为全1。用户可以将其中某些单元
改为0。在更新内容时,可将原存储内容擦除、恢复为全1。
EPROM分两种,一种为光擦只读存储器UVEPROM(紫外线、整
片擦除),另一种为电擦只读存储器EEPROM(E2PROM,电擦
除、可字擦除和数据块擦除)。
闪速存储器(Flash Memory)
闪速存储器是一种快速擦写型存储器,主要特点是既能不加电长
期保存信息,又能在线快速擦除和改写内容,兼备ROM和RAM的
优点,同时具有DRAM的高密度。它是目前惟一具有大容量、非
易失性、低价格、可在线改写、并具有瞬时启动特性的高速存储
器。瞬时启动特性是指闪速存储器能直接与CPU连接,不必从盘
上到RAM的加载步骤, CPU可以直接访问,如U盘。
51
2、ROM举例


2716是2K×8的EPROM芯片
 11位地址线
 8位数据线
 片选信号
 高压输入引脚线、编程脉冲线
 电源线、地线
24条引出线
与RAM芯片的区别:
 2716没有读写控制线;
 增加了高压输入引脚和编程脉冲两个写入信号。
52
五、存储器的构成
存储器的设计,一般可按下列步骤进行:




根据可用芯片,计算容量和所需芯片数量
进行地址分配,完成扩展
片选逻辑设计
位扩展,画出逻辑连接图,步骤如下:





连接地址线
连接片选线
连接数据线
连接控制线
字单元扩展,完成逻辑图连接,步骤同位扩展。
53
存储器设计举例

例:用1K×4芯片构成4KB的存储器。画出连接图,给出地址分配和片
选逻辑。
 根据可用芯片,计算容量和所需芯片数。
(4÷1)×(8÷4) = 4×2 = 8片
 进行地址分配,完成扩展。
位:1K×4 → 1K×8:2片构成一个芯片组
字:1K×8 → 4K×8:4个芯片组
地址分配没有给出特殊要求,可以从0地址开始分配:
总容量4K=212 → 需要12位地址:
0000 0000 0000 ~ 1111 1111 1111
一个组1K=210 → 需要10位地址:
00 0000 0000 ~ 11 1111 1111
000H~3FFH,400H~7FFH,800H~BFFH,C00H~FFFH
54
存储器设计举例(续一)

片选逻辑设计
用低地址线进行字选,用高地址线进行片选。1KB芯片组与1K×4
芯片的地址位数相同,需要10位地址线,占低10位,剩余的2位
高地址线用来产生4个芯片组的片选信号。
片选信号可用2:4译码器译码、也可用与非门产生,采用全译码:
CS0=A11A10,CS1=A11A10,CS2=A11A10,CS3=A11A10
多数存储器芯片的片选输入采用负逻辑:
CS0=A11A10,CS1=A11A10,CS2=A11A10,CS3=A11A10

画出逻辑连接图
55
存储器设计举例(续二)
第一步:位扩展
第二步:字扩展
56
存储器设计举例(续三)
例:某半导体存储器容量15KB,其中固化区8KB,可选
EPROM芯片为4K×8;随机读写区7KB,可选SRAM芯
片有:4K×4、2K×4、1K×4。地址总线A15~A0,双向
数据总线D7~D0,R/W控制读/写,MREQ为低电平时允许
存储器工作信号。设计并画出该存储器逻辑图,说明地址
分配、片选逻辑、片选信号极性。
解:EPROM芯片需要:8÷4=2片;(4K×8→8KB,字扩展)
SRAM芯片需要:8÷4=2片;( 4K×4→4KB,位扩展)
8÷4=2片;( 2K×4→2KB,位扩展)
8÷4=2片;( 1K×4→1KB,位扩展)
57
存储器设计举例(续四)
除字选外,剩余
高位用于片选
该存储器的地址分配如下:
4K×8 EPROM
0000 0000 0000 0000 CS
0
0000H~0FFFH 0000 1111 1111 1111
4K×8 EPROM
1000H~1FFFH
4K×4 RAM(2片)
2000H~2FFFH 0010 0000 0000 0000 CS2
0010 1111 1111 1111
2K×4 RAM(2片)
3000H~37FFH 0011 0000 0000 0000 CS3
0011 0111 1111 1111
8K
7K
0001 0000 0000 0000 CS
1
0001 1111 1111 1111
3800H~3BFFH 0011 1000 0000 0000 CS4
0011 1011 1111 1111
把A14-12输入3:8译码器译码,用0-2号输出线对应CS0-2;
3号输出线和A11组合生成CS3,和A11、A10组合后生成CS4。
1K×4 RAM(2片)
58
存储器设计举例(续五)
3
CS3
0011 0000 **
0011 0111 **
CS3=L4A11
2
CS
4
0011 1000 **
0011 1011 **
1
CS4=L4A11A10
4
59
六、高速存储器

主存速度的提高一直没有跟上CPU速度的提高。



1998年以前,DRAM的存取时间为60ns,相当于
16.7MHz,而当时的CPU速度已经达到300MHz;
目前,主存的速度达到266MHz或者更高一些,而CPU的
速度则达到了3GHz甚至更快。
必须提高存储器与CPU之间数据传输的效率。




缩短存储器的读出时间,或者加大存储器的字长
采用并行操作的双端口存储器
在CPU与存储器之间插入一个高速缓冲器(cache)
在每个存取周期中存取多个字
60
1、双端口存储器



存储器在现代计算机系统中往往处于中心位置,一
方面要不断地接受CPU的访问,另一方面还要频繁
地与众多的I/O设备交换信息。
传统的单端口存储器只有一套主存数据寄存器
(MDR)、主存地址寄存器(MAR)、地址译码器
和读写电路,在任一时刻只能接受来自CPU或者I/O
设备其中一方的访问请求,属于串行工作模式。
双端口存储器正是为解决了这一问题而设计的,它
具有两个可访问的、相互独立的端口。
61
双端口存储器(续)


由于具有左、右两个端口,所以可以接受来自两方面的访问请求,
使存储器并行工作,从而提高了整个计算机系统的效率。这是一
种空间并行的实现技术。
当两个端口同时存取同一个存储单元时,会发生冲突。这时,由
存储器的仲裁逻辑根据两端口访问请求到达的微小差别来决定先
为哪个端口服务,而另一端口要暂停操作,等待开放端口。
62
2、多体交叉存储器



假如同时能从存储器取出多条指令,必然会提高机器的运算速度。
多体交叉存储器就是基于这种思想提出来的。
一个由若干存储模块组成的主
存储器是线性编址的。这些地
址在各个模块中有两种安排方
式:顺序方式和交叉方式。以
32字4模块M0-M3为例来说明.
顺序方式地址分配如图所示。
存储器32个字可用5位地址表示,
高2位选择4个模块中的一个,
低3位选择模块中的8个字.
63
多体交叉存储器(续一)




交叉方式寻址的存储器的模块化组织,地址的分配方法与顺序方
式有所不同。
先将4个线性地址0、1、2、3依
次分配给M0、M1、M2、M3模块,
再将线性地址4、5、6、7依次分
配给M0、M1、M2、M3模块……
直到全部地址分配。
当存储器寻址时,用地址寄存器
的低2位选择4个模块中的一个,
而用高3位选择模块中的8个字。
这样,连续地址分布在相邻的不
同模块内,而同一个模块内的地
址都是不连续的。
64
多体交叉存储器(续二)

多体交叉存储模块可以有两种不同的访问方式。



一种方式是所有模块在一个存取周期内同时启动,各自的
数据寄存器并行地读出或写入信息,称为“同时访问” ;
另一种方式是M个模块按一定顺序轮流启动各自的存取周
期,并规定启动两个相邻模块的最小时间间隔等于单个模
块存取周期的1/M,称为“交叉访问”。
多体交叉存储器采用交叉访问。多体交叉存储器为实现多模块
流水式并行存取提供支持,大大提高了存储器的带宽。多体交
叉存储器是一种时间并行的实现技术。
65
3、相联存储器(CAM)





常规存储器是按地址访问的,即送一个地址码,选中一个单元,然后
进行读写操作。与此相反,相联存储器是一种不按地址访问的存储器,
而是根据所存储的数据字的全部内容或者部分内容进行访问和存取的,
即相联存储器是按内容寻址的存储器。
CR为比较寄存器,存放要检
索的内容。
MR为屏蔽寄存器,相应位设
置成1表示该位参加比较。
SRR为查找结果寄存器,置1
的位表示对应的字满足要求。
硬件实现,一次就能查出所需
要的结果。
66
七、高速缓冲存储器(cache)


到目前为止,主存速度的提高始终没有跟上CPU的发
展。据统计,CPU的速度平均每年提高60%,而组成
主存的DRAM的速度平均每年只改进7%。
解决问题的直接办法,要么降低CPU的速度,要么更
换高速主存。前者不能被人们接受,后者使计算机的
价格大幅度提高。——速度与价格的矛盾。
67
1、Cache技术解决速度与价格的矛盾


计算机专家的研究,发现了一个规律:在一个较短的时
间段内,CPU集中访问局部范围的存储器地址,而对该
地址范围之外的地址很少访问。——程序局部性原理。
高速缓冲技术就是利用程序局部性原理,在CPU和主存
之间插入一个高速、小容量的存储器,来存放程序正在
执行的一小部分,并让CPU从这个高速、小容量的存储
器中取指令和数据,来进行工作。 ——高速的存储器配
合高速的CPU进行工作,计算机的整体速度也高,同时
由于高速存储器的容量小 ,价格增加也小。
68
Cache技术解决速度与价格的矛盾(续)



新问题:经过一段时间,CPU要执行另一部分程序,但
它不在高速、小容量存储器中。怎么办?
当计算机发现上述问题时,就把要执行的程序或要处理
的数据拿进来,替换掉原来旧的内容,然后继续高速执
行新的程序段或处理新的数据。
通常把这个高速、小容量的存储器称为高速缓冲存储器,
也叫Cache。如果计算机能在Cache中访问到程序或数
据,称为Cache命中;如果程序或数据在Cache中找不
到,必须访问主存,则称为Cache未命中。
69
关于Cache的说明

Cache能使计算机性能得到很大提高,而价格并没有
显著增加,较好地解决了速度和价格的矛盾。

Cache中存放的内容和主存中存放的内容是一样的,
或者说,Cache中存放的程序或数据是主存中程序或
数据的最活跃部分,是一个副本。在程序执行过程中,
Cache对程序员来说是透明的、看不到。


为了获得高速度,Cache全部用硬件实现,也只有用
硬件实现,才能获得最高的速度。
下面讨论Cache的实现,涉及三个问题:地址变换、
内容替换和更新操作。
70
2、地址映射



CPU工作时,执行的是主存中的指令,发出的地址是
主存的地址,但真正访问的是Cache的内容,这就涉
及如何把主存地址转换为Cache地址的问题。
在Cache中,把主存地址空间对应到Cache中,即确
定二者位置的对应关系,进而把主存的程序或数据复
制到Cache中,称为地址映射。
地址映射有三种方法:全相联方式、直接方式和组相
联方式。
71
全相联映射方式



假定主存1M字节,Cache为4K字节,都按字节编址。
现在把Cache分成8块,每块512字节,即半K字节;
相应地,把主存也按Cache块的大小分块,每块半K,
1M字节的主存分为2K块。
规则:主存中的任何一块,可以放到Cache中的任何
一个块位置,也就是说,2048个主存块中的任何一块
可以放到8个Cache块中的任何一块,存放的位置没有
任何限制。
见下页原理图。
72
全相联映射方式(续一)
把主存的某一
块放入Cache
后,在随后的
访问中怎么知
道谁是谁呀?
实现Cache的基础——相联存储器按内容访问,是Cache不
可缺少的一部分,被用作地址映射器。Cache的8个块,需
要8个相联存储器单元来记录这些块的编号,一一对应。
73
全相联映射方式(续二)

假定,某一时刻CPU送出主存地址81250H。
首先查看相联存储器
中有无409H。如果有,
说明该块已经在
Cache中,命中;如
果没有,说明主存的
409H块还没有复制到
Cache中,未命中。
查找Cache
74
全相联映射方式(续三)

需要讨论一下未命中的情况。如果未命中怎么处理?
 查看Cache中哪一块空。假如第6块没有被占用,为一空块。
 把主存的第409H块调入,放在这个空的块中。全相联的特点
是只要有空块,就可以放进去。(先不考虑没有空块的情况)
 把主存块的块号409H同时写入相联存储器的第6个单元。
75
全相联映射方式(续四)

当完成上述操作后,进行访问Cache的地址变换。



低9为不变,仍作为块内地址用。
比较后,409H换为6,因为409H放在Cache第6块。
Cache块号6和块内地址拼接,即形成Cache地址。
76
全相联映射方式(续五)

再举一个例子:假设此时CPU又送出一个地址81376H
77
全相联方式的特点




主存块可以放到Cache的任何一块中,存放不受限制,
非常灵活,并可充分利用Cache的空间。
为追求速度,全相联存储器由硬件按内容、同时全部比
较,只比较一次。
相联存储器存储的是主存的块号,比较后获得Cache的
块号,由此实现了地址变换。
主存块号全长存储(11位),即所有位都存储,实现比
较的逻辑电路太复杂,只用于小容量Cache中。
78
直接映射方式



仍假定主存1M字节,按字节编址;Cache为4K字节,
也按字节编址。Cache分成8块,每块512字节。
为了实现直接映射,首先需要按照Cache的大小把主
存分区,每个区的大小就是Cache的大小,主存共计
1M/4K=256个区;再把每个区分成和Cache同样大小
的块,Cache有8块、主存的每个区也有8块。
规则:主存每个区中,某一编号的块必须放入Cache
中相同编号的块内(0号块→0号块, 1号块→1号块,...),
即使有空块,也不能放入其它块内。
79
直接映射方式(续一)
80
直接映射方式(续二)



仍以上面的例子来说明地址的转换,CPU送出主存地址81250H
可见,寻找的是81H区的第1块,它只能放在Cache的第一块。
现在需要判断第1块空否。如果空,就把主存第81H区的第1块
装入Cache的第1块,同时把81H放入相联存储器的第1个单元,
以此标识主存块装入Cache块中。主存的块号决定了把区号放
入相联存储器的哪个单元。
直接映射,块号不需要存储,减少了相联存储器的位数(8位)。
81
直接映射方式(续三)

再来看Cache地址的形成:
Cache地址=块号//块内地址= 250H(001//0 0101 0000)
直接映射方式可以立即得到Cache地址。

直接映射的特点:




区内块只能放在相同编号的Cache块内,别的块空也不能放。
地址转换非常容易。
Cache结构简单,每次只比较区内块号所规定的那一个单元。
由于映射关系固定,冲突增加,需要进行频繁调入调出操作。
82
组相联映射方式




组相联映射是全相联映射和直接映射的一种折中方案。它先按
Cache的大小把主存分区,再把Cache和主存的区等分成组,
组内分成块,块内包含相同的字数。
映射规则为:组间采用直接映射,而组内块采用全相联映射。
组相联映射方式中,各组的块数v一般取值较小,典型值2、4、
8、16。这种规模的比较器容易设计和实现;而块在组中的存
放又有一定的灵活性,使冲突减少。
由于组间采用直接映射,所以组号不需要存储,只存储区号和
块号,减少了相联存储器的位数。比较在一个组内所对应的相
联存储器单元中进行,其它操作与前两种映射方式基本相同。
83
组相联映射方式(续)

Cache地址 = 组号//Cache块号//块内地址
84
3、替换算法
当CPU访问Cache时,如果不命中,就需要从主
存中传送数据块到Cache中。如果Cache的空间
被占满时,如何用新数据替换旧数据?这就是下
面要介绍的替换算法。常用的替换算法有三种,
随机算法、先进先出算法和最近最少使用算法。
85
替换算法(续)



随机算法
随机替换算法最简单,实际上不需要什么算法,随机性地选择一
行进行替换即可。优点:在硬件上容易实现、速度也快;缺点:
换出去的数据很可能马上要用到,命中率低。
先进先出算法(FIFO)
先进先出算法是按数据块进入Cache的先后顺序决定淘汰的顺序,
在需要更新时,将最先进入Cache的数据块作为被替换的对象。
优点:容易实现,系统开销也小;缺点:会替换掉调用多个子程
序的主程序段、或者被频繁调用的子程序。
最近最少使用算法(LRU)
最近最少使用算法是把CPU近期最少使用的数据块作为被替换的
对象。这种替换算法需要随时记录Cache中各数据块的使用情况,
以便确定近期最少使用的数据块。这种算法相对比较合理,保护
了刚进入Cache的新数据块,有较高的命中率 。
86
4、更新策略
对Cache,除读操作外还有写操作。由于它保存的信息
是主存中最急需执行的若干信息块的副本,在写操作时
涉及如何保持Cache信息和主存信息的“一致性”问题。
解决这个问题有两种常用的办法:写回法和全写法。
87
更新策略(续)

写回法
写回法是指在CPU执行写操作时,只把数据写入Cache;仅当需要
替换时,才把修改过的Cache块写回主存。这种方法让Cache在
CPU和主存之间读写两个方面都起到了高速缓冲作用。采用这种更
新策略,需要在Cache表中建立一个标志位,修改块内容时该标志
置1;在替换块时,标志位为1就写回来主存。该策略操作速度快,
但具有出现数据不一致性的潜在危险。

全写法
全写法是指CPU在执行写操作时,必须把数据同时写入Cache和主
存。当Cache中某一块需要替换时,用新数据块直接覆盖原来的数
据即可。该方法实现简单,能确保Cache和主存的数据一致性,但
会降低存取速度,使Cache失去写操作时的高速缓冲功能。
88
八、虚拟存储器
虚拟存储器由主存储器和联机工作的磁盘共同组
成,这两个存储器在硬件和系统软件的共同管理
下工作,构成存储系统的主存—外存层次,主要
解决系统的容量问题。
89
1、虚拟存储器的基本概念





虚拟存储器是一个容量非常大的存储器的逻辑模型,不是任何实
际的物理存储器,它借助于磁盘等辅助存储器来扩大主存容量。
虚拟存储器是在硬件和操作系统的共同管理下,以透明的方式给
用户提供一个比实际主存空间大的多的程序地址空间。
虚拟存储器解决两个问题,一是解决主存容量不足的问题,二是
解决存储设备的自动管理问题,使得用户无需考虑所编写的程序
在主存中能否放得下以及放在什么位置的问题。
用户编程所用到的地址空间范围称为虚地址,也叫逻辑地址,虚
地址是由编译程序生成的;虚地址对应的存储空间称为虚拟空间,
也叫逻辑空间。
实际的主存单元地址称为实地址,也叫物理地址,实地址是由
CPU地址引脚送出、用于访问主存的。实地址对应的是主存空间,
也叫物理空间。
90
虚拟存储器的工作过程

在物理存储层次上,程序和数据在操作系统管理下,先送入磁
盘,然后操作系统将当前运行所需要的部分调入主存,供CPU
使用,其余暂不运行部分留在磁盘中。
程序运行时,CPU以虚地址来访问主存。先由存储管理硬件判
断该地址的内容是否已经调入主存。如果已在主存,则由地址
变换机构把虚地址转换为实地址,据此访问主存的实际单元;
如果尚未调入主存,则通过缺页中断程序,把需要的内容调入
或实现主存内容的更换。

按照主存—外存层次的信息传送单位不同,虚拟存储器分为三
种:页式、段式和段页式虚拟存储器。
91
2、页式虚拟存储器




主存空间和虚存空间都划分成若干个大小相等的页。
主存页称为实页,虚存页称为虚页。
虚地址分为两个字段:虚页号和页内地址。实地址也
分为两个字段:实页号和页内地址。
虚地址到实地址的变换是由页表实现的。页表是一张
存放在主存中的虚页号和实页号的对照表,记录着虚
页调入主存时被安排在主存中的位置信息。
在硬件上,设置一个页表基址寄存器,存放当前所运
行程序的页表的起始地址。
92
页式虚拟存储器(续)


页式虚拟存储器的页
面长度是固定的,页
表的建立和新页的调
入比较方便。
在最后一页会存在一
些零头无法利用,造
成一点浪费;同时,
页不是逻辑上独立的
实体,使程序的处理、
保护和共享都比较麻
烦。
93
3、段式虚拟存储器


在段式虚拟存储器中,
段是按照程序的逻辑结
构划分的,各个段的长
度因程序的不同而不同.
为了把虚拟地址变换成
主存的实地址,虚拟地
址划分成两部分:段号
和段内地址,并通过一
个“段表”来实现地址
的变换,见右图。
94
段式虚拟存储器(续)

由于段的划分与程序
的分段相对应,所以
段具有逻辑独立性;
易于管理和多道程序
共享。但是,段的长
度不固定,给主存的
分配带来了麻烦,容
易留下零头,造成浪
费。
95
4、段页式虚拟存储器



段页式虚拟存储器是段式管理和页式管理的结合。这种方式把程
序按逻辑结构分段后,再把每段分成大小相等的页,主存空间也
化成同样大小的页。程序分段、段分页。
段页式虚拟存储器的地址变换是通过段表和页表实现的。每个程
序对应一个段表,段表中的每个表目对应一个段、并指向该段的
页表起始地址。
在多道程序运行的环境中,每道程序需要一个基号,即用户标志
号,这个基号指向的是一个基址寄存器,这个基址寄存器里存放
着该程序段表的起始地址。所以一个虚拟地址实际上划分为四部
分:基号、段号、页号和页内地址。
96
段页式虚拟存储器(续)

段页式虚拟存储器的地址变换过程如下:




用基号找到基址寄存器(放段表的起始地址)。
段表的表目地址 = 基址寄存器的值+段号
从该表目中取出页表的起始地址。
页表表目地址 = 页表起始地址+页号
从该表目中取出实页号(物理页号)
主存实地址(物理地址)= 实页号//页内地址
段页式虚拟存储器具备段式虚拟存储器和页式虚拟存
储器的优点,缺点是在地址的映射过程中需要多次查
表。计算机中一般都采用这种段页式管理方式。
97
5、两个存储层次的简单比较

Cache—主存层次以信息块为单位,在主存和Cache之间传送数
据,纯硬件实现;虚拟存储器(主存—外存层次)以页或段为单
位在主存和外存之间传送数据,由硬件和软件共同管理。

Cache—主存层次弥补了主存和CPU之间的速度差距;虚拟存储
器弥补了主存容量和应用要求之间的差距。


主存的存取时间是Cache存取时间的5~10倍;磁盘存取时间是主
存存取时间的上千倍,在CPU访问主存不命中时,虚拟存储系统
要花费很多时间从外存中调入数据。
Cache—主存层次力图以Cache的速度、主存的价格来提供服务;
虚拟存储器力图以主存的速度、外存的价格来满足要求。
98
两个存储层次的简单比较(续)

Cache—主存层次与主存—外村层次的关系:
99