您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第3章--存储系统设计f
第3章存储系统设计第3章存储系统设计3.1存储系统原理3.2交叉访问存储器3.3页式虚拟存储器3.4Cache存储器习题3第3章存储系统设计3.1存储系统原理3.1.1基本概念从用户的角度来看,存储器的三个主要指标是:容量、速度和价格。用户对存储器的要求是“容量大、速度快、价格低”,显然,这三个要求是相互矛盾的,因为很明显存储器的速度越快,价格就越高;存储器的容量越大,速度就越慢。下面我们来具体解释一下这三个概念。第3章存储系统设计存储器容量SM=W·l·m。其中W为单个存储体的字长,l为单个存储体的字数,m为并行工作的存储体的个数。也就是说,存储器的容量与单个存储体的字长、单个存储体的字数和并行工作的存储体的个数成正比。第3章存储系统设计存储器的速度可以用访问时间TA、存储周期TM或频宽Bm来描述。Bm是存储器被连续访问时,可以提供的数据传送速率,通常用每秒传送信息的位数(或字节数)来衡量。单体的Bm=W/TM。m个存储体并行工作时可达到的最大频宽Bm=W·m/TM。以上指的都是理想情况下,存储器所能达到的最大频宽。由于存储器不一定总能连续满负荷地工作,所以,实际频宽往往要低于最大频宽。第3章存储系统设计为了提高CPU的访存速度,有以下二种方法:(1)在组成上引入并行和重叠技术,构成并行主存系统。在保持每位价格基本不变的情况下,能使主存的频宽得到较大的提高。如单体多字存储器、多体交叉存储器。(2)改进存储器的系统结构,发展存储体系(或称存储系统)。如采用Cache-主存-辅存存储层次的存储器。第3章存储系统设计所谓存储体系,是指计算机系统的存储器部分由多种不同的存储器构成,由操作系统和硬件技术来完成程序的定位,使之成为一个完整的整体。由于它由多级存储器构成,故又称之为存储层次。存储器价格包含了存储单元本身以及为实现存储器操作所必须的外围电路的价格。第3章存储系统设计3.1.2多级存储层次为实现用户“容量大、速度快、价格低”的要求,仅用单一的一种存储器很难达到这一目标,较为理想的方法就是采用存储层次,用多种存储器构成存储器的层次结构。图3.1是多级存储层次的示意图。其中,M1,M2,…,Mn为用不同技术实现的存储器。最靠近CPU的M1速度最快,容量最小,每位价格最高;而离CPU最远的Mn则相反,速度最慢,容量最大,每位价格最低。对于其中任何相邻的两级来说,靠近CPU的存储器总是容量小一些,速度快一些,价格高一些。第3章存储系统设计图3.1多级存储层次第3章存储系统设计若设ci、TAi、Smi分别表示Mi的每位价格、访问时间和存储容量,则多级存储层次中任何相邻二级之间存在以下关系:cici+1TAiTAi+1SMiSMi+1多级存储层次设计追求的目标是:从CPU看,是一个整体,该存储系统具有接近最高层M1的速度、最低层Mn容量,而每位价格却是接近Mn的。第3章存储系统设计为了使存储体系能有效地工作,当CPU要用到某个地址的内容时,总是希望它尽可能已经在速度较快的M1中准备好,这就要求未来被访问信息的地址在某种程度上可以预知(判)。因此,能否预知(判)出下步所要访问的程序块,对存储体系的构成是非常重要的。而这种预判的可能性是基于计算机程序的一个特性,即程序的局部性。局部性原理指出,绝大多数程序访问的指令和数据都是相对簇聚的,它包括时间上的局部性和空间上的局部性。第3章存储系统设计时间局部性是指在最近的未来要用到的信息很可能是现在正在使用的信息,这主要是程序循环造成的,即循环中的语句要被重复的执行。空间局部性是指在最近的未来要用到的信息很可能与现在正在使用的信息,在程序空间上是相邻或相近的,这主要是由于指令通常是顺序执行的,以及数据一般是以向量、阵列、树形、表格等形式簇聚地存储所致。第3章存储系统设计根据程序的局部性,存储层次的构成和管理主要采用以下两种方法相结合:(1)Mi级一般只需存放Mi+1级中近期使用过的块和页(根据时间局部性);(2)在从Mi+1级取所要访问的字送到Mi级时,一并把该字所在的块或页整个取出来(根据空间局部性),以增大CPU在访问Mi级时的命中率。第3章存储系统设计3.1.3存储系统的性能参数这里以二级存储层次为例来分析其性能,二级存储层次结构如图3.2所示。存储层次主要采用三个性能参数:平均位价格c、命中率H和等效访问时间TA。第3章存储系统设计图3.2二级存储层次第3章存储系统设计设ci、TAi、SMi分别表示Mi的平均位价格、访问时间和存储容量。1.平均位价格cM2M1M22M11SSScScc显然,当SM1SM2时,c≈c2。第3章存储系统设计2.命中率H命中率为CPU访问存储系统时,在M1中找到所需信息的概率。211RRRH其中,R1为逻辑地址流的信息能在M1中访问到的次数,R2为逻辑地址流的信息当时在M2中还未调到M1的次数。第3章存储系统设计3.等效访问时间TATA=HTA1+(1-H)TA2我们总希望TA越接近于TA1为好,也就是说存储层次的访问效率e=TA1/TA,越接近于1越好。设CPU对存储层次相邻两级的访问时间比r=TA2/TA1,则,H)r(1H1H)T(1HTTTTeA2A1A1AA1第3章存储系统设计由上式可得,对于不同的访问时间比r、命中率H与访问效率e的关系如图3.3所示。由图可见,要使访问效率e接近于1,在r值越大时,就要求命中率H越高。第3章存储系统设计图3.3对于不同的r,命中率H与访问效率e的关系第3章存储系统设计前面介绍了二级存储体系的性能参数,下面我们再来讨论更为复杂的存储系统。(1)假设存储体系由n级存储器构成,如图3.1所示。设TAi、Ri、Hi分别表示Mi的访问时间、访问次数和命中率,则有:n2111RRRRHn3222RRRRHn1)(iiiiRRRRH1Hn第3章存储系统设计那么等效访问时间TAi则为:TAi=H1TA1+(1-H1)H2TA2+(1-H1)(1-H2)H3TA3+…+(1-H1)(1-H2)…(1-Hn-1)TAn(2)假设Cache存储器分为指令体(I-Cache)和数据体(D-Cache),如图3.4所示。第3章存储系统设计CPUI-CacheD-Cache主存储器图3.4Cache分为指令体和数据体的二级存储体系第3章存储系统设计设指令Cache和数据Cache的访问时间均为tc,主存的访问时间为tm,指令Cache的命中率为hi,数据Cache的命中率为hd,CPU访存取指的比例为fi,则存储体系的等效访问时间为:TA=fi(hitc+(1-hi)tm)+(1-fi)(hdtc+(1-hd)tm)第3章存储系统设计例3.1某机是由高速缓存与主存组成的二级存储系统,高速缓存存取周期tc=50ns,主存存取周期tm=400ns。访问Cache的命中率为0.96。(1)系统等效的存取周期TA为多少?(2)如果将高速缓存分为指令体与数据体,使等效存取周期减小了10%。在所有的访问操作中有20%是访问指令体,而访指令体的命中率仍为0.96(假设不考虑写操作一致性的问题),问数据体的访问命中率应是多少?第3章存储系统设计解:(1)系统等效的存取周期为:TA=htc+(1-h)tm=0.96*50+(1-0.96)*400=64ns第3章存储系统设计(2)设改进后的D-Cache的命中率为hd,按公式TA=fi(hitc+(1-hi)tm)+(1-fi)(hdtc+(1-hd)tm)64*(1-10%)=0.2(0.96*50+(1-0.96)*400)+(1-0.2)(hd*50+(1-hd)*400)280hd=275.2hd≈0.983第3章存储系统设计3.2交叉访问存储器3.2.1主存系统的类型1.主存系统的类型根据主存中存储体的个数,以及CPU访问主存一次所能读出的信息的位数,可以将主存系统分为以下四种类型:第3章存储系统设计(1)单体单字存储器,即存储器只有一个存储体,而且存储体的宽度为一个字。如图3.5所示是一个字长为W位的单体主存,一次可以访问一个存储器字,所以主存最大频宽Bm=W/TM。假设,此存储器字长W与CPU所要访问的字(数据字或指令字,简称CPU字)的字长W相同,则CPU从主存获得信息的速率就为W/TM。我们称这种主存是单体单字存储器。第3章存储系统设计(2)单体多字存储器,即存储器只有一个存储体,但存储体的总线宽度较大,可以是多个字,如图3.6所示。若要想提高主存频宽Bm,使之与CPU速度匹配,显然可以想到,在同样的器件条件(即同样的TM)下,只有设法提高存储器的字长W才行。例如,改用图3.6的方式组成,这样,主存在一个存储周期内就可以读出4个CPU字,相当于CPU从主存中获得信息的最大速率提高到原来的4倍,即Bm=4W/TM。我们称这种主存为单体多字存储器。第3章存储系统设计W位地址寄存器读出寄存器图3.5单体单字存储器第3章存储系统设计地址寄存器W位单字长寄存器W位W位W位W位图3.6单体多字(m=4)存储器第3章存储系统设计(3)多体单字交叉存取的存储器。如:多体交叉存储器,因为每个存储体都是一个CPU字的宽度。(4)多体多字交叉存储器。它将多分体并行存取与单体多字相结合。我们将能并行读出多个CPU字的单体多字、多体单字交叉、多体多字交叉存取的主存系统称为并行主存系统。第3章存储系统设计2.单体多字方式与多体单字交叉方式的区别(1)单体多字方式要求可并行读出的m个字必须是地址顺序排列且处于同一主存单元。(2)而主存采用多体单字方式组成,即采用m个存储体交叉编址,多个存储体并行进行存取操作,每个存储体的宽度一般是一个字的宽度。其所花费的器件和总价格并不比采用单体多字方式的多多少,但其实际带宽却可以比较高。这是因为多体单字方式只要m个地址不发生分体冲突(即没有发生两个以上地址同属一个分体),即使地址之间不是顺序的,仍可并行读出,使实际带宽提高成单体单字的m倍。基本的多体交叉方法有两种,即高位交叉访问存储器和低位交叉访问存储器。第3章存储系统设计3.2.2高位交叉访问存储器图3.7是高位交叉的四体交叉存储器结构示意图。如果主存空间为N=2n字,那么访问该存储器的地址为n位。若存储器由M=2m个存储体构成,用高m位地址来选择不同的存储体,低n-m位为体内的地址。当高m位不相同时,便可以访问不同的存储体,即当多个处理机发出的访存地址高位不相同时,可对共享存储器内的不同存储体进行同时存取。当多个处理机发出的访存地址高位相同时,即访存同一存储体时,就不能并行操作了,我们称之为存储器的分体冲突。高位交叉访问存储器一般适合于共享存储器的多机系统。第3章存储系统设计图3.7高位交叉的四体交叉存储器结构示意图第3章存储系统设计3.2.3低位交叉访问存储器图3.8是低位交叉的四体交叉存储器结构示意图。如果模块的字是与数据总线等宽(W位)。若模块存取一个字的存储周期是θ,由m个子周期τ(τ要大于或等于总线传送周期)组成,即θ=mτ,并使用m个模块来交叉存取,则成块存取可按τ间隔流水进行,即每经τ时间延迟后即启动下一模块。这样,连续读m个字所需时间为θ+(m-1)τ,而顺序组织方式却要mθ时间,显然加快了成块存取速度。模四多体交叉存取存储器的流水存取示意图如图3.9所示。第3章存储系统设计如果主存空间为N=2n字,那么访问该存储器的地址为n位。若存储器由M=2m个存储体构成,用低m位地址来选择不同的存储体,高n-m位为体内地址。当低m位不相同时,便可以访问不同的存储体,即当处理机发出的访存地址访问不同的存储体时(地址不一定连续),可对存储器内的不同存储体进行并行存取(这里的并行性指的是并发性)。当处理机访存同一存储体时,就不能并行操作了。低位交叉访问存储器一般适合于单处理机内的高速数据存取及带Cache的主存。第3章存储系统设计图3.8低位交叉的四体交叉存储器结构示意图第3章存储系统设计图3.9模四多体交叉存取存储器的流水存取示意图第3章存
本文标题:第3章--存储系统设计f
链接地址:https://www.777doc.com/doc-6129454 .html