第3章存储系统设计fppt课件.ppt
《第3章存储系统设计fppt课件.ppt》由会员分享,可在线阅读,更多相关《第3章存储系统设计fppt课件.ppt(236页珍藏版)》请在三一办公上搜索。
1、第3章 存储系统设计,3.1 存储系统原理 3.2 交叉访问存储器 3.3 页式虚拟存储器 3.4 Cache存储器 习题3,3.1 存储系统原理,3.1.1 基本概念 从用户的角度来看,存储器的三个主要指标是:容量、速度和价格。用户对存储器的要求是“容量大、速度快、价格低”,显然,这三个要求是相互矛盾的,因为很明显存储器的速度越快,价格就越高;存储器的容量越大,速度就越慢。下面我们来具体解释一下这三个概念。,存储器容量SM=Wlm。其中W为单个存储体的字长,l为单个存储体的字数,m为并行工作的存储体的个数。也就是说,存储器的容量与单个存储体的字长、单个存储体的字数和并行工作的存储体的个数成正
2、比。,存储器的速度可以用访问时间TA、存储周期TM或频宽Bm来描述。Bm是存储器被连续访问时,可以提供的数据传送速率,通常用每秒传送信息的位数(或字节数)来衡量。单体的Bm=W/TM。m个存储体并行工作时可达到的最大频宽Bm=Wm/TM。以上指的都是理想情况下,存储器所能达到的最大频宽。由于存储器不一定总能连续满负荷地工作,所以,实际频宽往往要低于最大频宽。,为了提高CPU的访存速度,有以下二种方法: (1)在组成上引入并行和重叠技术,构成并行主存系统。在保持每位价格基本不变的情况下,能使主存的频宽得到较大的提高。如单体多字存储器、多体交叉存储器。 (2)改进存储器的系统结构,发展存储体系(或
3、称存储系统)。如采用Cache-主存-辅存存储层次的存储器。,所谓存储体系,是指计算机系统的存储器部分由多种不同的存储器构成,由操作系统和硬件技术来完成程序的定位,使之成为一个完整的整体。由于它由多级存储器构成,故又称之为存储层次。 存储器价格包含了存储单元本身以及为实现存储器操作所必须的外围电路的价格。,3.1.2 多级存储层次 为实现用户“容量大、速度快、价格低”的要求,仅用单一的一种存储器很难达到这一目标,较为理想的方法就是采用存储层次,用多种存储器构成存储器的层次结构。 图3.1是多级存储层次的示意图。其中,M1,M2,Mn为用不同技术实现的存储器。最靠近CPU的M1速度最快,容量最小
4、,每位价格最高;而离CPU最远的Mn则相反,速度最慢,容量最大,每位价格最低。对于其中任何相邻的两级来说,靠近CPU的存储器总是容量小一些,速度快一些,价格高一些。,图3.1 多级存储层次,若设ci、TAi、Smi分别表示Mi的每位价格、访问时间和存储容量,则多级存储层次中任何相邻二级之间存在以下关系: cici+1 TA iTA i+1 SM iSM i+1 多级存储层次设计追求的目标是:从CPU看,是一个整体,该存储系统具有接近最高层M1的速度、最低层Mn容量,而每位价格却是接近Mn的。,为了使存储体系能有效地工作,当CPU要用到某个地址的内容时,总是希望它尽可能已经在速度较快的M1中准备
5、好,这就要求未来被访问信息的地址在某种程度上可以预知(判)。因此,能否预知(判)出下步所要访问的程序块,对存储体系的构成是非常重要的。而这种预判的可能性是基于计算机程序的一个特性,即程序的局部性。局部性原理指出,绝大多数程序访问的指令和数据都是相对簇聚的,它包括时间上的局部性和空间上的局部性。,时间局部性是指在最近的未来要用到的信息很可能是现在正在使用的信息,这主要是程序循环造成的,即循环中的语句要被重复的执行。 空间局部性是指在最近的未来要用到的信息很可能与现在正在使用的信息,在程序空间上是相邻或相近的,这主要是由于指令通常是顺序执行的,以及数据一般是以向量、阵列、树形、表格等形式簇聚地存储
6、所致。,根据程序的局部性,存储层次的构成和管理主要采用以下两种方法相结合: (1)Mi级一般只需存放Mi+1级中近期使用过的块和页(根据时间局部性); (2)在从Mi+1级取所要访问的字送到Mi级时,一并把该字所在的块或页整个取出来(根据空间局部性),以增大CPU在访问Mi级时的命中率。,3.1.3 存储系统的性能参数 这里以二级存储层次为例来分析其性能,二级存储层次结构如图3.2所示。存储层次主要采用三个性能参数:平均位价格c、命中率H和等效访问时间TA 。,图3.2 二级存储层次,设ci、TAi、SMi分别表示Mi的平均位价格、访问时间和存储容量。 1. 平均位价格c,显然,当SM1 SM
7、2时,cc2。,2. 命中率H 命中率为CPU访问存储系统时,在M1中找到所需信息的概率。,其中,R1为逻辑地址流的信息能在M1中访问到的次数,R2为逻辑地址流的信息当时在M2中还未调到M1的次数。,3. 等效访问时间TA TA =HTA1 +(1-H)TA2 我们总希望TA越接近于TA1为好,也就是说存储层次的访问效率e=TA1/TA,越接近于1越好。 设CPU对存储层次相邻两级的访问时间比r=TA2/TA1,则,,由上式可得,对于不同的访问时间比r、命中率H与访问效率e的关系如图3.3所示。由图可见,要使访问效率e接近于1,在r值越大时,就要求命中率H越高。,图3.3 对于不同的r,命中率
8、H与访问效率e的关系,前面介绍了二级存储体系的性能参数,下面我们再来讨论更为复杂的存储系统。 (1)假设存储体系由n级存储器构成,如图3.1所示。设TAi、Ri、Hi分别表示Mi的访问时间、访问次数和命中率,则有:,那么等效访问时间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.4 Cache分为指令体和数据体的二级存储体系,设指令Cache和数据Cache的访问时间均为tc,主存的访问时间
9、为tm,指令Cache的命中率为hi,数据Cache的命中率为hd,CPU访存取指的比例为fi,则存储体系的等效访问时间为: TA= fi(hitc+(1- hi)tm)+(1- fi)( hdtc+(1- hd) tm),例3.1 某机是由高速缓存与主存组成的二级存储系统,高速缓存存取周期tc=50ns,主存存取周期tm=400ns。访问Cache的命中率为0.96。 (1)系统等效的存取周期TA为多少? (2)如果将高速缓存分为指令体与数据体,使等效存取周期减小了10%。在所有的访问操作中有20%是访问指令体,而访指令体的命中率仍为0.96(假设不考虑写操作一致性的问题),问数据体的访问命
10、中率应是多少?,解:(1)系统等效的存取周期为:TA =htc+(1-h)tm =0.96*50+(1-0.96)*400 =64ns,(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.2 hd0.983,3.2 交叉访问存储器,3.2.1 主存系统的类型 1. 主存系统的类型 根据主存中存储体的个数,以及CPU访问主存一次所能读出的信息的位数,可以
11、将主存系统分为以下四种类型:,(1)单体单字存储器,即存储器只有一个存储体,而且存储体的宽度为一个字。如图3.5所示是一个字长为W位的单体主存,一次可以访问一个存储器字,所以主存最大频宽Bm=W/TM。假设,此存储器字长W与CPU所要访问的字(数据字或指令字,简称CPU字)的字长W相同,则CPU从主存获得信息的速率就为W/ TM。我们称这种主存是单体单字存储器。,(2)单体多字存储器,即存储器只有一个存储体,但存储体的总线宽度较大,可以是多个字,如图3.6所示。若要想提高主存频宽Bm,使之与CPU速度匹配,显然可以想到,在同样的器件条件(即同样的TM)下,只有设法提高存储器的字长W才行。例如,
12、改用图3.6的方式组成,这样,主存在一个存储周期内就可以读出4个CPU字,相当于CPU从主存中获得信息的最大速率提高到原来的4倍,即Bm=4W/TM。我们称这种主存为单体多字存储器。,图3.5 单体单字存储器,图3.6 单体多字(m=4)存储器,(3)多体单字交叉存取的存储器。如:多体交叉存储器,因为每个存储体都是一个CPU字的宽度。 (4)多体多字交叉存储器。它将多分体并行存取与单体多字相结合。 我们将能并行读出多个CPU字的单体多字、多体单字交叉、多体多字交叉存取的主存系统称为并行主存系统。,2. 单体多字方式与多体单字交叉方式的区别 (1)单体多字方式要求可并行读出的m个字必须是地址顺序
13、排列且处于同一主存单元。 (2)而主存采用多体单字方式组成,即采用m个存储体交叉编址,多个存储体并行进行存取操作,每个存储体的宽度一般是一个字的宽度。其所花费的器件和总价格并不比采用单体多字方式的多多少,但其实际带宽却可以比较高。这是因为多体单字方式只要m个地址不发生分体冲突(即没有发生两个以上地址同属一个分体),即使地址之间不是顺序的,仍可并行读出,使实际带宽提高成单体单字的m倍。 基本的多体交叉方法有两种,即高位交叉访问存储器和低位交叉访问存储器。,3.2.2 高位交叉访问存储器 图3.7是高位交叉的四体交叉存储器结构示意图。如果主存空间为N=2n字,那么访问该存储器的地址为n位。若存储器
14、由M=2m个存储体构成,用高m位地址来选择不同的存储体,低n-m位为体内的地址。当高m位不相同时,便可以访问不同的存储体,即当多个处理机发出的访存地址高位不相同时,可对共享存储器内的不同存储体进行同时存取。当多个处理机发出的访存地址高位相同时,即访存同一存储体时,就不能并行操作了,我们称之为存储器的分体冲突。高位交叉访问存储器一般适合于共享存储器的多机系统。,图3.7 高位交叉的四体交叉存储器结构示意图,3.2.3 低位交叉访问存储器 图3.8是低位交叉的四体交叉存储器结构示意图。 如果模块的字是与数据总线等宽(W位)。若模块存取一个字的存储周期是,由m个子周期(要大于或等于总线传送周期)组成
15、,即=m,并使用m个模块来交叉存取,则成块存取可按间隔流水进行,即每经时间延迟后即启动下一模块。这样,连续读m个字所需时间为+(m-1),而顺序组织方式却要m时间,显然加快了成块存取速度。模四多体交叉存取存储器的流水存取示意图如图3.9所示。,如果主存空间为N=2n字,那么访问该存储器的地址为n 位。若存储器由M=2m个存储体构成,用低m位地址来选择不同的存储体,高n-m位为体内地址。当低m位不相同时,便可以访问不同的存储体,即当处理机发出的访存地址访问不同的存储体时(地址不一定连续),可对存储器内的不同存储体进行并行存取(这里的并行性指的是并发性)。当处理机访存同一存储体时,就不能并行操作了
16、。低位交叉访问存储器一般适合于单处理机内的高速数据存取及带Cache的主存。,图3.8 低位交叉的四体交叉存储器结构示意图,图3.9 模四多体交叉存取存储器的流水存取示意图,在最好的情况下,即一个模m的多体交叉访问存储器在不发生分配冲突时的带宽是单体带宽的m倍。,3.2.4 拓宽存储器带宽的方法 前面讲过,并行主存系统可达到的最大频宽Bm=Wm/TM ,由这个式子可以看出: 提高模m的值,是能提高主存系统的频宽的,但主存频宽并不是随m值增大而线性提高,也就是说其实际效率并不像所希望的那么高。例如,CDC-6600、7600采用模32交叉实际频宽只是理想频宽的三分之一都不到,这是因为:,(1)工
17、程实现上由于模m越高,存储器数据总线越长,总线上并联的负载越重,有时还不得不增加门的级数,这些都会使传输延迟增加; (2)是系统效率问题。对模m交叉,如果都是顺序的取指令,效率是可以提高到m倍的,但实际上程序中指令不总是顺序执行的,一旦出现转移,效率就会下降,转移的频度越高,这种并行主存系统的效率下降就越大,而数据的顺序性比指令差,实际的频宽可能还要低一些。,图3.10 m个分体并行存取B=f()曲线,从图3.10中不难看出,如果转移概率0.3时,m=4、8、16的B的差别不大,即在这种情况下,模m的取值再大,对系统效率也并没有带来多大的好处;而在0.1时,m值的大小对B的改进则会有显著的影响
18、。为了降低转移概率,就要求在程序中尽量少使用转移指令。,如果从最不利的情况考虑,假设让所有的申请(包括指令和数据)都是完全随机性的,Hellerman用单服务、先来先服务排队论模型进行模拟,估算出B=m0.56 ,即得出随m的提高,主存频宽只是以近似平方根的关系得到改善。 因为程序的转移概率不会很低,数据分布的离散性较大,所以单纯靠增大m来提高并行主存系统的带宽是有限的,而且性能价格比还会随m的增大而下降。,在有些系统中,主存与处理机通过总线相连,主存的宽度受总线宽度的限制不能做的太宽,为提高数据传输的速度,这些系统中广泛采用突发式(burst mode)传送数据,即在一个总线周期中以数据块传
19、送的方式将数据块从主存调入Cache。,3.3 页式虚拟存储器,3.3.1 虚拟存储器的工作原理 在1961年,英国曼彻斯特大学的Kilburn等人提出了虚拟存储器的概念。经过20世纪60年代初到70年代初的发展完善,虚拟存储器已广泛应用于大中型计算机系统。目前几乎所有的计算机都采用了虚拟存储系统。,虚拟存储器是“主存-辅存”层次进一步发展的结果。它由价格较贵、速度较快、容量较小的主存储器M1和一个价格低廉、速度较慢、容量很大的辅助存储器M2(通常是硬盘)组成,在系统软件和辅助硬件的管理下,就像一个单一的、可直接访问的大容量主存储器。由于中央处理机只能执行已装入主存的那一部分程序块,同时,为了
20、提高主存空间的利用率,应及时释放出主存中现已不用的那部分空间,以便装入别的程序块。,这样,随着程序的运行,程序的各个部分就会在主存和辅存之间调进调出。当辅存中的程序调入主存时,必须进行程序在主存中的定位。为了使应用程序员对其程序不用修改就可以在虚拟存储器上运行,即应用程序员不用考虑如何把程序地址映象和变换成实际主存的物理地址,这种程序的定位应当是由系统提供的定位机构来自动完成,从而使之对应用程序员透明。应用程序员可以用机器指令的地址码对整个程序统一编址,就如同应用程序员具有对应于这个地址码宽度的存储空间(称为程序空间)一样,而不必考虑实际主存空间的大小。,虚拟存储器可以分为两类:页式和段式。本
21、节我们主要学习页式虚拟存储器。在页式虚拟存储器中通过把主存空间和程序空间都机械等分成固定大小的页(页面大小随机器而定,一般为512B到几KB),按页顺序编号,用相应的映象表机构来指明该程序的某页是否已经装入主存。若已经装入主存,则应同时指明其在主存中所处的位置;如果未装入主存,则去辅存中调页,并建立起程序空间和实存空间的地址映象关系。这样,程序执行时通过查映象表将程序(虚拟)地址变换成实际主存(物理)地址再访问主存。,此存储系统具有主存的速度和辅存的容量,提高了存储器系统的性能价格比。CPU直接访问主存,主存与辅存之间的信息交换由操作系统和硬件来完成,这种把辅存看作是主存的一部分,以扩大主存容
22、量的技术,称之为虚拟技术。用虚拟技术设计的存储器,称为虚拟存储器。,这些主存与辅存之间实际存在的操作和辅助软、硬件,对应用程序设计者来讲是透明的。但虚拟存储器对系统程序员来讲基本上是不透明的,只是某些部分(如虚拟地址到主存地址的变换)由于采用硬件实现才是透明的。虚拟地址又称逻辑地址,是指访问虚拟空间的地址。由于指令中给出的地址码是按虚存空间来统一编址的,因此指令的地址码实际上是虚拟地址。而物理地址是指访问主存空间的地址。,3.3.2 虚拟存储器的地址映象与变换 1. 虚拟地址到物理地址之间的映象与变换 地址映象是指按某种规则(算法)建立多用户虚拟地址Ns与物理地址np之间的对应关系。在页式虚拟
23、中,由于多用户虚拟地址中的页内地址与物理地址中的页内地址相同,其地址映象主要是多用户虚页号Nv与实存(物理)页号nv之间的对应关系。 在页式管理方式中,虚拟地址和物理地址的格式如图3.11所示。,每道程序都有自己的内页表,内页表的长度等于程序的页数,在程序装入和运行过程中,页表基址寄存器和页表的内容全部由存储层次来完成置定和修改(即由硬件来完成),对用户完全透明。内页表一般都是按照虚存页号的顺序进行排列,所以内页表中的虚存页号可省略,而主存页号就是实页号。,图3.11 虚拟地址、物理地址和内页表的格式,地址变换是指程序按照某种映象关系装入实存后,在执行程序时,多用户虚拟地址Ns如何变换成对应的
24、实存地址np。对页式虚拟而言,其核心是如何将多用户虚页号Nv变换成实存(物理)页号nv,很显然地址变换就是利用了地址映象关系,地址变换与地址映象之间密切相关。,由于是把大的虚存空间压缩到小的主存空间去,主存中的每一个页面位置必须能与多个虚页相对应,能对应多少个虚页与采用的映象方式有关。这就不可避免地会发生两个以上的虚页想要进入主存中同一个页面位置的现象,这种现象被称为发生了页面争用或实页冲突。一旦发生实页冲突,只能先装入其中的一个虚页,待其退出主存之后方可再装入,这当然会使执行效率下降。因此,映象方式的选择主要应考虑能否尽量减少实页冲突概率,其次也要考虑辅助硬件是否少、成本低,实现是否方便,以
25、及地址变换的速度是否快等。,由于虚存空间远远大于实存空间,页式虚拟存储器一般采用实页冲突概率最低的全相联映象,但全相联映象方式的地址映象需要内页表,辅助硬件较多,成本较高,地址映象与地址变换由存储层次统一来完成。页式管理的全相联定位映象机构及其地址的变换过程如图3.12所示,由于它采用页表作为地址映象表,故又称之为页表法。由用户标志u指明该道程序使用哪个页表基址寄存器,从而可以找到该道程序在主存中的起点x。再根据x+NV找到主存中的一行,从而获得实页号nv,然后由实页号nv和页内位移nr拼接成实地址。,在页表法中,由于每一个虚页都要占用页表中的一行,在N道程序的页表中总共有N2Nv行,装入位为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储系统 设计 fppt 课件

链接地址:https://www.31ppt.com/p-1354220.html