计算机系统结构存储系统

上传人:宝路 文档编号:47981133 上传时间:2018-07-07 格式:PPT 页数:170 大小:1.45MB
返回 下载 相关 举报
计算机系统结构存储系统_第1页
第1页 / 共170页
计算机系统结构存储系统_第2页
第2页 / 共170页
计算机系统结构存储系统_第3页
第3页 / 共170页
计算机系统结构存储系统_第4页
第4页 / 共170页
计算机系统结构存储系统_第5页
第5页 / 共170页
点击查看更多>>
资源描述

《计算机系统结构存储系统》由会员分享,可在线阅读,更多相关《计算机系统结构存储系统(170页珍藏版)》请在金锄头文库上搜索。

1、陈嘉 多媒体教学课件福州大学软件学院存储系统的层次结构与性能指标存储系统的设计目标:以较小的成本使存 储系统的工作速度与处理机的速度相匹配, 同时要求存储系统有尽可能大的容量。程序访问局部性:时间局部性:程序在最近的未来要用到的 信息很可能是现在正在使用的信息。 (如循环程序)空间局部性:程序在最近的未来要用到的 信息很可能同现在正在使用的信息在存储空 间位置上相邻近。(如顺序执行程序,数据 聚族存储)存储系统的多级层次结构:M1 (T1,S1,C1)M2 (T2,S2,C2)Mn (Tn,Sn,Cn)T1C2Cn 单位容量平均价格通过程序访问局部性原理使存储系统的等效 访问速度接近于M1的访

2、问速度 存储系统的容量为Mn的容量,每位价格接近 于Mn的每位价格程序局部性不仅使层次结构的存储系统在 速度、容量和价格的综合水平较高,而且 可对存储空间采用分块或分页的管理方式 来获得对M1较高的命中率由于程序访问的时间和空间局部性,从而 保证对M1有较高的命中率存储系统层次结构要解决的问题:l 定位问题l 寻址问题l 替换问题l 写回问题三级存储系统Cache内存辅存Cache存储器 虚拟存储器虚拟存储器(主存-辅存存储系统)是针对主存容量不 能满足要求而提出的,对应用程序员透明,对系统程序员不透明。虚拟存储器的等效访问速度接近于主存访问速度,容量却是辅存的容量,每位价格接近辅存的每位价格

3、Cache存储器(Cache-主存存储系统)是针对主存速度不能满足要求而提出的,对应用程序员和系统程 序员都透明。虚拟存储器在主存和辅存之间增加辅助的硬、软件,使主存和辅存构成一个整体Cache存储器的等效访问速度接近于物理Cache的访问速度,其容量却是主存的容量,每位价格接近主存的每位价格在物理Cache和主存之间增加辅助硬件,使Cache 和主存构成一个整体存储系统的性能指标:存储容量 “Cache-主存”存储系统 存储系统的容量就是主存的容量“主存-辅存”存储系统 虚拟地址空间的容量虚拟地址空间既不是主存的地址空间,也不是辅存 的地址空间,这个虚拟地址空间比主存的实际地址 空间大得多,

4、并采用像主存一样的随机访问方式存储系统带宽存储器最大带宽每秒从存储器进出信息的最大数量 (若存储周期200ns,存储字为32位,则存储器带宽为160M位/秒)存储器带宽存储器被连续访问时能提供的数据传输速率实际带宽最大带宽单位容量平均价格C=C1S1+C2S2S1+S2S1S2,CC2l 如果S1与S2相差太大,则会使得对M1的命中 率很低 l要使C接近于C2,还应使增加的辅助软硬件价 格只占价格中很小比例,否则性价比将会显著 降低命中率 命中率由CPU产生的逻辑地址在存储器M1中 访问到指定信息的概率 H=N1 N1+N2与命中率相关的因素l 程序的访存地址流l 采用的M1和M2之间的地址映

5、像关系l 采用的块或页面替换算法l M1的容量等效访问周期T=HT1+(1-H)T2H1, TT1访问效率e=T1 T1 H+(1-H)T2/T1=访问效率与命中率和两级存储器的访问周期比有关存储系统的透明性要求地址变换和替换算法对程序员都应是透明的, 这种透明性由对存储系统进行管理的硬件和 软件自动实现地址映象 虚拟地址与物理地址间对应关系的规则地址变换 虚拟存储系统按照某种地址映象方式把虚拟地址转换成物理地址 相邻层之间的数据传送单位l CPU与高速缓存之间:字l 高速缓存与主存储器之间:块(每块32个 字节)l 主存与磁盘之间:页面(每页4K字节,包 括128块)l 磁盘与磁带之间:段并

6、行存储器并行存储器通过设置多个存储器或存储体, 使它们并行工作,在一个存储器访问周期能 并行访问到多个存储字单体多字并行存储器把存储器的存储字字长增加n倍,以存放n个指令字或数据字,从而在一个存储周期内能访问到n个指令字或数据字,最大带宽比单体单字存储器的最大带宽提高n倍优点:实现简单缺点:访问冲突概率大l取指令冲突 一个存储字中有一个转移指令字时,转移指令后 预取的指令字只能作废l读操作数冲突 单体多字并行存储器一次取出的n个数据字不一 定都是要执行的指令所需要的操作数,而当前 执行指令需要的全部操作数也可能不包含在一个 存储字中而不能被一次取出 数据存放的随机性比指令存放的随机性大,所以

7、读操作数冲突的概率较大l写数据冲突 必须凑齐n个数据字后才能作为一个存储字 一次写入存储器。需要先把属于一个存储字 的n个数读到数据寄存器中,然后再把整个 存储字写回存储器l读写冲突 在要读出的数据字和要写入的数据字同处于 一个存储字时,读和写的操作就无法在同一 个存储周期中完成交叉访问存储器l 由多个存储体组成一个更大容量的主存时 ,对存储器的多个存储体的存储单元采用 交叉编址方式,组成交叉访问存储器高位交叉访问存储器高位(体号k)低位(体内地址j) log2m位log2n位A=k*n+j (0=jn,0=km) k= A/n j=A mod n由m个存储体组成,每个存储体的容量均为n个字缺

8、点:由于程序的连续性和局部性,在程序执行 过程中被访问的指令序列和数据绝大多数会分布 在同一存储体中,引起访问冲突优点:有利于扩大常规主存容量MBRMAR存储 体 0MBRMAR存储 体 1MBRMAR存储 体 n-100000000 0000000100ffffff01000000 0100000101ffffffff000000 ff000001ffffffff 译码器高位(体号)低位(体内地址) 地址寄存器高位(体内地址j) 低位(体号k) log2n位log2m位A=j*m+k (0jn,0km )j= A/mk=A mod m低位交叉访问存储器由m个存储体组成,每个存储体的容量均为n

9、个字优点:避免了顺序执行程序和顺序读取指令时存储体的访问冲突缺点:不便于主存容量的扩充,在执行转移指令或随机访问数据时仍会产生访问冲突按m个连续的存储单元地址访问存储器,将对m个不同的存储体中各自一个存储单元进行访问,即在一个存储器访问周期中访问了m个存储单元MBRMAR存储 体 0MBRMAR存储 体 1MBRMAR存储 体 n-100000000 00000100ffffff0000000001 00000101ffffff01000000ff 000001ffffffffff 译码器高位(体内地址)低位(体号)地址寄存器无冲突访问存储器一维数组的无冲突访问在低位交叉访问存储器中,由于程序

10、中的转移指令 和数据访问的随机性仍可能产生访问存储体的冲突a0a1a2a3a4a5a6a7a8a9a10a110号体1号体2号体3号体 0 1 2 3体内地址变址位移量访问4个元素的冲突情况1无冲突 2一半冲突 3无冲突4全冲突通常把存储体的个数n选为质数,变址位移量选 为同n互质若存储体的个数与变址位移量互质,就不会 产生一维数组的访问冲突二维数组的无冲突访问要求对存放在并行存储器中的二维数组按行, 按列,按对角线,按反对角线访问均能实现 无冲突访问a00a01a02a03a10a11a12a13a20a21a22a23a30a31a32a330号体1号体2号体3号体 0 1 2 3体内地址

11、按列访问冲突!0号体1号体2号体3号体 0 1 2 3体内地址按对角线和反对角线访问冲突!a00a01a02a03 a11a12a13a10a22a23a20a21a33a30a31a32体内地址=i 体号=( j-i )%N0号体1号体2号体3号体 0 1 2 3体内地址a00 a11a22a33a03a02a01a12a13a10a21a20a23a30a31a32按行,按列,按对角线及反对角线访问均不 产生冲突。但需要对准网络把数组元素的地 址变换成并行存储器的实际地址a00a02a03a01a13a11a10a12a21a23a22a20a32a30a31a330号体1号体2号体3号体

12、 0 1 2 3体内地址a00a20a30a10a21a01a11a31a32a12a02a22a13a33a23a030号体1号体2号体3号体 0 1 2 3体内地址体号=2*(iLjH)+(iHiLjL)( 为异或运算 ) 体内地址=jP.Budnik和D.J.Kuck提出了一种能对n*n二 维数组实现按行,按列,按对角线,按子对 角线,按反对角线,并行访问数组中任意一 个n0.5n0.5子数组中的n个元素无冲突的存储 方案:要求并行存储体的个数mn,且m取质数。二维数组的任意元素aij在无冲突并行存储器 中的体号和体内地址分别为:体号= (2p*i+j+k) mod m体内地址= i 其

13、中,p是满足m=22p+1的任意自然数;k是 数组第一个元素a00所在存储体的体号,一般 取k=0。a00a01a02a03a13a10a11a12a21a22a23a20a30a31a32a330号体1号体2号体3号体4号体0123体内 地址n=4, m=5,p=1,k=0存储空间的(m-n)/m被浪费,存储空间利用率不高 m个存储体组成的并行存储器的最大带宽为fmax=mW/T, n*n的二维数组错位存储后,可达到的实际带宽为 f=(n/m)fmax虚拟存储器虚拟存储器中的三种地址空间l 主存储器地址空间 由主存单元地址表示的可以随机访问的地址空间虚拟存储器为应用程序员提供一个比主存 容量

14、大得多的可以按接近主存的工作速度运 行的存储空间l 虚拟地址空间既不是主存的地址空间,也不是辅存的地址空间,是由虚拟地址表示的,比主存的实际地址空间大得多且可以随机访问的空间l 辅存地址空间 由数据块的外部地址表示的顺序访问的地址空间虚拟存储器中的三种地址l 主存地址 主存存储单元的地址 l 辅存地址 辅存上数据的存放地址 l 虚拟地址 程序经编译生成的访存地址 地址映象 虚拟地址与主存物理地址间对应关系的规则地址变换 虚拟存储系统按照某种地址映象方式把虚拟地址转换成物理地址的过程对应用程序员透明,由存储系统自动完成外部地址变换 将虚拟地址转换为磁盘存储器物理地址 外部地址变换更多依靠软件实现

15、替换算法 当有新数据块调入主存,而主存已没有空闲位置时,需要采用某种替换算法确定新数据块调入主存的位置段式虚拟存储器的地址映象与地址变换由程序员将一个大的复杂程序划分为逻辑上相互独立的若干模块或它们的部分集合,这些模块称为段。每个程序段都从0开始编址(段内偏移),段可长可短。段式管理:把主存空间按段进行分配的存储管理方式段表:存放程序的各段装入主存的相关信息段长,起始地址,访问方式,装入位l 装入位表示要访问的程序段是否已经装入主存l 访问方式可以指出本程序段是否需要保护和保护的级别,例如允许读允许写,允许读禁止写每个程序都用一个段表来存放该程序的各段 装入主存的有关信息段号段长起始地址 01

16、K8K 150016K 22009K 320030KMainFunc1()Func2()Func3()8k 9k16k30k主存储器用户程序段式虚拟存储器的地址映象用户号U段号S段内偏移D多用户虚地址Av6As段表 长度段表基 地址+012345段名起始地址装入位段长访问 方 式+主存实 地址段表段表基址寄存器检查是否越界主存或磁盘0N-1AsCPU内有一个段表基址寄存器堆,每道程序使用其中的一个段表基址寄存器如果装入位给出的信息表示要访问的段不在主存中,则称发生了段失效,那么不能将虚地址变换成主存实地址。需要从磁盘存储器中把该段读入主存,并在段表中填入该段的相关信息随着长度不等的段在主存中不断调入调出,主存中出现段间零头 (不足以容纳一个段),使主存空间利用率较低可通过定时运行段间零头回收程序来合并段间零头成为一个连续空间,但将增加系统运行的时间开销段表中的起始地

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号