1、第三章:存储系统,一、存储器分类 1、概念:存储器是计算机系统中的记忆设备,用来存放程序和数据。 构成存储器的存储介质,目前主要采用半导体器件和磁性材料。一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,均可以存储一位二进制代码。这个二进制代码位是存储器中最小的存储单位,称为一个存储位或存储元。由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。 2、存储器的分类:(1)按存储介质分:半导体器件和磁性材料。 (2)按存取方式分:随机存储器和顺序存储器。(3)按存储器的读写功能分:只读存储器(ROM)、随机读写存储器(RAM)。 (4)按信息的可保存性分:非永久记忆的存
2、储器、永久性记忆的存储器。磁性材料做成的存储器是永久性存储器,半导体读写存储器RAM是非永久性存储器。(5)按在计算机系统中的作用分:主存储器、辅助存储器、高速缓冲存储器、控制存储器等。,3、存储器的分级结构:CPU能直接访问的存储器称为内存储器,它包括高速缓冲存储器和主存储器。CPU不能直接访问外存储器,外存储器的信息必须调入内存储器后才能为CPU进行处理。,高速缓冲存储器:高速缓冲存储器(简称cache),它是计算机系统中的一个高速小容量半导体存储器。 主存储器:简称主存,是计算机系统的主要存储器,用来存入计算机运行期间的大量程序和数据。它能和cache交换数据和指令。 外存储器:简称外存
3、,它是大容量辅助存储器。目前主要使用磁盘存储器、磁带存储器和光盘存储器。 4、主存储器的技术指标:主存储器的性能指标主要是存储容量、存取时间、存储周期和存储器带宽。 存入一个机器字的存储单元,通常称为字存储单元,相应的单元地址叫字地址。而存入一个字节的单元,称为字节存储单元,相应的地址称为字节地址。 在一个存储器中可以容纳的存储单元总数通常称为该存储器的存储容量。存储容量越大,能存储的信息就越多。存储容量常用字数或字节数(B)来表示,如64K字,512KB,64MB。外存中为了表示更大的存储容量,采用GB,TB等单位。,其中1KB=210B,1MB= 220B,1GB= 230B ,1TB=
4、240B。B表示字节,一个字节(Byte)定义为8个二进制位,所以计算机中一个字的字长通常是8的倍数。存储容量这一概念反映了存储空间的大小。 存取时间又称存储器访问时间,是指从启动一次存储器操作到完成该操作所经历的时间。具体讲,从一次读操作命令发出到该操作完成,将数据读入数据缓冲寄存器为止所经历的时间,即为存储器存取时间。1s=103ms=106s=109ns 存储周期是指连续启动两次读操作所需间隔的最小时间。通常,存储周期略大于存取时间,其时间单位为ns(纳秒)。 存储器带宽是单位时间里存储器所存取的信息量,通常以位/秒或字节/秒做度量单位。带宽是衡量数据传输速率的重要技术指标。 二、随机读
5、写存储器 1、SRAM存储器:基本存储元是组成存储器的基础和核心,它用来存储一位二进制信息0或1。 图3.2示出了六管SRAM存储元的电路图,它是由两个MOS反个器交叉耦合而成的触发器。一个存储元存储一位二进制代码,如果一个存储单元为 n位,则需由n个存储元才能组成一个存储单元。 存储元选择、写操作、读操作过程。,2、SRAM组成:一个SRAM存储器由存储体、读写电路、地址译码电路和控制电路等组成,其框图示于图3.3中。 存储体:是存储单元的集合。在较大容量的存储器中,往往把各个字的同一位组织在一个集成片中。例如图3.3中的4096 1位,是指4096个字的同一位。由这样的16个片子则可组成4
6、096 16的存储器。同一位的这些字通常排成矩阵的形式,如64 64=4096。由X选择线(行线)和Y选择线(列线)的交叉来选择所需要的单元。 地址译码器:用来存放所要访问(写入或读出)的存储单元的地址。CPU要选择某一存储单元,就在地址总线A0A11上输出此单元的地址信号给地址译码器。地址译码器把用二进制代码表示的地址转换成输出端的高电位,用来驱动相应的读写电路,以便选择所要访问的存储单元。地址译码的方式:单译码方式, 双译码方式。 思考题:地址输入线n=12,经地址译码器译码可译出多少个状态? 驱动器、 I/O电路、 片选与读/写控制电路、 输出驱动电路。,3、SRAM存储器芯片实例:图3
7、.5示出2114存储器芯片逻辑结构方框图。它是一个1K 4位的SRAM,片上共有4096个六管存储元电路,排成64 64的矩阵。因为是1K字,故地址线10位(A0-A9),其中6根用于行译码产生64根行选择线,4根用于列译码产生16条列选择线。,4、存储器与CPU连接:位扩展法、字扩展法、字位同时扩展法。 位扩展法(位并联):假定使用8K 1的RAM存储器芯片,那么组成8K 8位的存储器,可采用图3.6所示的位扩展法。此时只加大字长(位数增加),而存储器的字数与存储器芯片字数一致。, 字扩展法(地址串联):字扩展是仅在字向扩充,而位数不变,因此将芯片的地址线、数据线、读/写控制线并联,而由片选
8、信号来区分各片地址,故片选信号端连接到片译在码器的输出端。图3.7所示出用16K 8位的芯片采用字扩展法组成64K 8位的存储器连接图。图中4个芯片的数据线与数据总线D0-D7相连,地址总线低位地址A0-A13与各芯片的14位地址端相连,两位高位地址A14,A15经译码器和4个选端相连。, 字位同时扩展:在字向和位向上同时进行扩展 一个的容量假定为 M N 位,若使用 l k 位的芯片( l M, k N),需要在字向和位向同时进行扩展。此时共需要 ( M / l )) ( N / k )个存储器芯片。 思考题: 1、32K 16表什么意思?(32K=215,15根地址线,16根数据线) 2、
9、构成 4M 32存储器需要16K 8的芯片多少片? ( 16K= 214 , 4M= 222,故需要芯片: (4M/ 16K)*(32/8)=1024, 22根地址线中有22-14=8根用作片选线,14根地址线。) 5、存储器读写周期。,例:设有一个具有24位地址和8位字长的存储器,问: (1)该存储器能存储多少个字节的信息? (2)如果存储器由4M 1位SRAM芯片组成,需要多少片? (3)需要多少位地址作芯片选择? 解:(1)存储单元数为224=16M=16777216单元,故能存储16777216个字节的信息。 (2)由于存储容量为16MB(8位字长),每4M字节需要8片(位并联方式),
10、故所需芯片数为16/4 8=32片。 (3)如果用32片4M 1位SRAM芯片组成一个16MB的存储器,地址总线的低22位可以直接连到芯片的A0-A21管脚,而地址总线的高两位( A23,A22)需要通过2:4线译码器进行芯片选择。存储器组成方案为位并联与地址串联相结合的方式。 (怎样进行位并联与地址串联的?请同学们画出结构图) 思考题:P125-1 作业题:P125-2,三、DRAM存储器: 1、四管动态存储元:写操作、读操作、刷新操作。,2。.2讲,2、单管动态存储元:写入时,字选择为“1”,T1管导通,写入信息由位线(数据线)存入电容C中;读出时,字选择为“1”,存储在电容C上的电荷,通
11、过T1输出到数据线上,通过读出放大器即可得到存储信息。,3、 DRAM的刷新方式:集中式、分散式、异步式,见图3.14 4、存储器控制电路:,四、主性能的主存储器: 1、EDRAM芯片又称增强型DRAM芯片,它是在DRAM芯片上集成了一个SRAM实现的小容量高速缓冲存储器(cache),从而DRAM芯片从而的性能等到显著改进,可以实现猝发式读取。 1M 4位EDRAM芯片结构框图 见图3.18 2、 EDRAM内存条 见书图3.19 3、主存物理地址的存储空间分布见图3.20 思考题1 :奔腾CPU的数据总线宽度为64位,地址总线宽度32位, 问:奔腾主存的最大物理地址空间为多少?,23264
12、=423064 =423088=32GB,3.3 只读存储器和闪速存储器 1、只读存储器:ROM、光擦可编程只读存储器EPROM、,例3: 已知CPU的地址总线16根( A15-A0 ,A0为低位),双向数据总线8根(D7-D0),控制总线中与主存有关的信号有MREQ(允许访存,低电平有效),R/W(高电平为读命令,低电平为写命令)。 主存地址空间分配如下:0-8191为系统程序区,由只读存储芯片组成;8192-32767为用户程序区;最后(最大地址)2K地址空间为系统程序工作区。上述地址为十进制,按字节编址。现有如下存储器芯片: EPROM:8K 8位(控制端仅有CS) SRAM:16K 1
13、位, 2K 8位, 4K 8位, 8K 8位 请从上述芯片中选择适当芯片设计该计算机主存储器, 画出主存储器逻辑框图,注意画出选片逻辑 (可选用门电路及3:8译码器74LS138) 与CPU的连接,说明选哪些存储器芯片, 选多少片。,0 8191 8192 32767 63487 65535,主存储器的组成与CPU连接逻辑图如图3.24所示。,解:主存地址空间分布如下图所示。 根据给定条件,选用EPROM:8K 8位芯片 1 片。 SRAM: 8K 8位芯片3片, 2K 8位芯片 1 片。 3:8译码器仅用Y0,Y1,Y2,Y3,和Y7输出端,且对最后的2K 8位芯片还需加门电路译码。,819
14、2=81024=8K 32768=321024=32K , 32-8=24K 65536=641024=64K=216,主存储器组成与CPU的连接图,2、闪速存储器:是一种高密度、非易失性的读/写半导体存储器。,计算机组成原理,高速存储器,存储器构成:存储元存储体存储器,提高:高性能的主存储器EDRAM 闪速存储器,3.4高速存储器,采取加速CPU和存储器之间有效传输的特殊措施,可以通过下列几种途径实现: (1)主存储器采用更高速的技术来缩短存储器的读出时间,或加长存储器的字长; (2)采用并行操作的双端口存储器; (3)在CPU和主存储器之间插入一个高速缓冲存储器(),以缩短读出时间; (4
15、)在每个存储器周期中存取几个字;,1、双端口存储器:具有两组相互独立的读写控制线路。见图,2、多模块交叉存储器: 顺序方式:设容量32字,分四模块,每块存储8个字。访问地址按顺序分配给一个模块后,接着又按顺序为下一模块分配访问地址。,3、多模块交叉存储器: 交叉方式。见图3.29b,4、多模块交叉存储器的基本结构框图:,5、多模块交叉存储器流水方式存取示意图: 图3.31 假设模块存取一个字的存储周期为T,总线传送周期为,存储器的交叉模块数为m,那么为了实现流水线方式存取,应当满足 T=m即成块传送可按间隔 流水方式进行,也就是每经 时间延迟后启动下一个模块。 示出了m=4的流水线方式存 取示
16、意图。 连续读取m个字所需的时间 为:t1=T+(m-1) 而顺 序方式存储器连续读取m个 字所需时间为: t2=mT 从以上定量分析可知,由于 t1 t2,交叉存储器的带宽 确实大大提高了。,例4设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期 = 50ns。问顺序存储器和交叉存储器的带宽各是多少? 解:设顺序存储器和交叉存储器连续读出4个字,则信息总量都是: q=64位 4=256位 顺序存储器和交叉存储器连续读出4个字所需的时间分别是: t2=mT=4 200ns=800ns=8 10-7 s t
17、1=T+(m-1)= 200ns +3 50ns=350ns=3.5 10-7 s 顺序存储器和交叉存储器的带宽分别是: W2= q t2=256 (8 10-7 )=32 107 位s W1= q t1=256 (3.5 10-7 )=73 107 位s,6、二模块交叉存储器举例:每个模块的容量为256K32位,由8片256K4位的DRAM芯片组成。存储器的总容量为2MB(512K 32位)。数据总线宽度为32位,地址总线宽度为24位。,7、相联存储器: 不是按地址而是按内容访问的存储器。见图3.34, 3.5 cache存储器: 是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而
18、采用的一项重要技术。是介于CPU和主存之间的小容量存储器,但存取速度比主存快。,1 cache存储器的基本原理:CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干字组成,是定长的。当CPU读取主存中一个字时,便发出此字的内存地址到cache和主存。此时cache控制逻辑依据地址传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。,2、 cache的命中率:在一个程序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有: 若t
19、c表示命中时的cache访问时间,tm表示未命中的主存访问时间,1-h表示未命中率,则cache/主存系统的平均访问时间ta为: ta=htc+(1-h)tm 我们追求的目标是,以较小的硬件代价使cache/主存系统的平均访问时间ta 越接近tc 越好。设r=tm/tc表示主存慢于cache的倍率,e表示访问效率,则有 由表达式看出,为提高访问效率,命中率h越接近1越好,r值以5-10为宜,不宜太大。 命中率h与程序的行为、 cache的容量、组织方式、块的大小有关,例5CPU执行一段程序时, cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns
20、,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。 解:,3、奔腾PC机是一个单CPU系统。它采用两级cache结构。安装在主板上的2级cache(L2),其容量是512KB,采用2路组相联映射方式,每行可以是32B,64B或128B。集成在CPU内的1级cache(L1),其容量是16KB,采用的也是2路组相联映射方式,每行是32B。L2的内容是32MB容量主存的子集,L1又是L2的子集,从而使L1未命中处理时间大大缩短。, 3.6 虚拟存储器 一、基本概念:虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器,它借助于磁盘等辅助存储器来扩大主存容量
21、,使之为更大或更多的程序所使用。 虚拟存储器指的是主存-外存层次。它以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。此时程序的逻辑地址称为虚拟地址(虚地址),程序的逻辑地址空间称为虚拟地址空间。物理地址(实地址)由CPU地址引脚送出,它是用于访问主存的地址。设CPU地址总线的宽度为m位,那么物理地址空间的大小用2m来表示。 段是利用程序的模块化性质,按照程序的逻辑结构划分成的多个相对独立部分,例如,过程、子程序、数据表、阵列等。把主存按段分配的存储管理方式称为段式管理。 页式管理系统的基本信息传送单位是定长的页。主存的物理空间被划分为等长的固定区域,称为页面。 二、页式虚拟存储
22、器:在页式虚拟存储系统中,把虚拟空间分成页,称为逻辑页;主存空间也分成同样大小的页,称为物理页。 段式虚拟存储器:在段式虚拟存储系统中,段是按照程序的逻辑结构划分 的,各个段的长度因程序而异。虚拟地址由段号和段内地址组成 。 段页式虚拟存储器:段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合。在这种方式中,把程序按逻辑单位分段以后,再把每段分成固定大小的页。,例A(p125-11):主存容量为4MB,虚存容量为1GB,则虚拟地址和物理地址各为多少位?如页面大小为4KB,则页表长度是多少? 解:主存4MB=222B 所以物理地址(主存地址)为22位 虚存1GB=230B 所以虚地址为30位
23、 页大小4KB=212B 所以: 页内地址段位数由4KB=212B,故为12位。 作业:P1256 P1259,3.7 存储保护 一、存储区域保护: 页表保护 段表保护 键保护方式 环保护方式 二、访问方式保护 3end,例P125- 2、已知某64位机主存采用半导体存储器,其地址码为26位,若使用256K16位的DRAM芯片组成该机所允许的最大主存空间,并选用模块结构形式,问: (1)若每个模块板为1024K64位,共需几个模块板? (2)每个模块板内共有多少DRAM芯片? (3)主存共需多少DRAM芯片?CPU如何选择各模块板? 解:(1)因64位机,地址26位数量大地址空间为226=64
24、M 故存储容量为64M 64位,若每块模板为1024K64位, 则需:(64M 64)/( 1024K64)=64 个模块板,(2)因每个DRAM芯片为 256K16位,故每个模板内有: ( 1024K64)/( 256K16)=4 4=16 片芯片 (3)主存共需:64 16=1024 块DRAM芯片。 CPU如何选择各模块板: 因芯片为256 K16位,故芯片有16根数据线,18根地址线,用之构成1024K64位模块板时,需64根数据线,20根地址线,故需芯片 4 片采用位并联方式扩展成256K64位的存储体,再将此存储体 4 块采用字串联方式构成1024K64位模块,地址线A0A17用作
25、DRAM芯片地址线,A18A19通过2:4译码器对四个存储体进行片选。又由于主存容量为64M 64位,故需26根地址线,用去20根A0A19作模块板地址线,余下的A20A25六根线用作 26=64 块模块板的片选信号。,例P125- 3、用16K 8位的DRAM芯片构成64K 32位存储器,要求: (1)画出该存储器的组成逻辑框图。 (2)设存储器读/写周期为0.5 S ,CPU在1S内至少要访问一次。试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少? 解:(1)构成64K 32位存储器需16K 8位的DRAM: (64K 32)/(
26、16K 8)=4 4=16片,此时需将4片DRAM位扩展成16K 32位存储体,再将此存储体4个字串联成64K 32位的存储器,因16K 8的芯片有8根数据线,14根地址线,而64K 32的存储器有32根数据线,16根地址线,故将A0A13用作DRAM的地址线,A14A15用作4个存储体的片选通信号。,(2)因存储器为64K 32位,故有16根地址线,若用A0A6作行选信号,可译出27=128根行地址线, A7A15作列选信号,可译出 29=512根列地址线。若采用行刷新方式,最好用 异步刷新方式:在2ms内分散地把128行刷新一遍。 2000 S 128=15.5 S ,即每隔15.5 S
27、刷新一行, 对全部存储器刷新一遍所需实际刷新时间为: 128 0.5 S =64 S 。 因为:读/写周期为0.5 S ,而CPU在1 S 内至少访问一次,当然也可以用分散刷新,但当CPU在1 S 内访问二次存储器时,分散刷新便无法进行了。 对动态MOS 存储器来刷新的最大时间间隔为 2ms,例P125- 4、有一个1024 32位的存储器,由128K 8位的DRAM芯片构成。问:(1)总共需要多少DRAM芯片? (2)设计此存储体组成框图。 (3)采用异步刷新方式,如单元刷新间隔不超过8ms,则刷新信号周期是多少? 解:(1)总共需芯片数:( 1024 32)/( 128K 8)=32片 1
28、28K 8芯片有17根地址线、8根数据线, 1024 32存储器有20根地址线,32根数据线,故将A0A16用来连接芯片,余下的20-17=3根A17A19用作片选信号(3:8译码器),选择8个存储体,将芯片4个以位并联方式连接,构成一个128K 32的存储体,再将这样的存储体8个以字串联方式连接即可。 (2)参考教材P77-图3.7,(3)对这个存储器选择行地址刷新,刷新地址为A0A8,即在8ms内进行29=512个周期的刷新,余下的11根地址用作列选择,刷新方式可用:在8ms中进行512次刷新操作的集中刷新方式,或按8ms 512=15.5 S 刷新一次的异步刷新方式。,例P125- 7
29、某机器中,已知配有一个地址空间为 0000H-3FFFH的ROM区域。现在再用一个RAM芯片(8K 8)形成40K 16位的RAM区域,起始地址为6000H。假设RAM芯片有CS 和WE信号控制端。CPU的地址总线为A15-A0,数据总线为D15-D0,控制信号为R/W(读/写),MREQ(访存) 要求:(1)画出地址译码方案。 (2)将ROM与RAM同CPU连接。 解 (1). 需8K 8的 RAM 芯片数: (40 K 16)/( 8K 8)=10片, 用两片RAM采用位并联方式构成8 K 16存储模块, 由此5个模块采用字串联方式构成40K 16存储区。,呀!去年上海大学考研题!,(2)
30、 . 因8K=213地址线13根,地址寄存器13位: 0000H1FFFH 的地址空间为: 8K 2000H3FFFH 的地址空间为: 8K 4000H5FFFH 的地址空间为: 8K 6000H7FFFH 的地址空间为: 8K 8000H9FFFH 的地址空间为: 8K 也就是 高位地址A15A14A13从000100变化,所以5个8K地址编号为 0000H9FFFH,若从6FFFH作起始地址,则此RAM区域为 6000HFFFFH。 (3) . 因ROM的地址空间为0000H-3FFFH,故 0011FFFH为 214 = 16K,所以总的地址空间为16K + 40K=56K 介于215和
31、216之间,故选地址线16根。,D15 D0,SRAM 8KB,A0 A12,D15 D0,EPROM 16KB,A0 A12,D15 D0,SRAM 8KB,A0 A12,D15 D0,SRAM 8KB,A0 A12,D15 D0,SRAM 8KB,A0 A12,A0 A10 A11 A12 A13 A14 A15,D0 D15,CS,CS,CS,CPU,R/W,74LS138,A B C,Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7,MREQ,主存储器组成与CPU的连接图,A0 A12,CS,SRAM 8KB,D15 D0,6、用32K 8位的EPROM芯片组成128K 16位的只读存储
32、器,试问: (1)数据寄存器多少位? (2)地址寄存器多少位? (3)共需多少个EPROM芯片? (4)画出此存储器组成框图。 解:(1)数据寄存器 16 位 (2)地址寄存器 17 位 (3)共需EPROM芯片: (128K 16)/ (32K 8)=8,(4) 存储器组成框图,例B、 用8K 8位ROM芯片和8K 4位的RAM芯片组成存储器,按字节编制,其中RAM 的地址为 0000H-5FFFH , ROM 的地址为6000H-9FFFH,画出此存储器组成结构图。 解:,RAM地址范围: 0000H-5FFFH 展开: 0000 0000 0000 0000 - 0101 1111 11
33、11 1111 因从0000H-1FFFH 为213=8K,高位地址A15A14A13从000010故RAM的寻址空间为 3个8K=24K,按字节编制则容量为24K 8位,所以需要8K 4位的RAM芯片数为 (24K 8)/ (8K 4)=6 ROM芯片的末地址-首地址=9FFFH -6000H=3FFFH 所以ROM寻址空间为214=16K ,存储容量为16K 8位, 所以需要8K 8位的ROM芯片数为: (16K 8)/ (8K 8)=2,思考题: 8、设存储器容量为64M,字长为64位,模块数m=8,分别用顺序和交叉方式进行组织。存储周期T=100ns ,数据总线宽度为64位,总线传送周期=50ns。求:顺序存储器和交叉存储器的带宽各是多少?,第三章,Game over Thank you !,