第4章 计算机体系结构存储系统.ppt_第1页
第4章 计算机体系结构存储系统.ppt_第2页
第4章 计算机体系结构存储系统.ppt_第3页
第4章 计算机体系结构存储系统.ppt_第4页
第4章 计算机体系结构存储系统.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录,第4章存储系统4.1存储系统层次结构和性能指标4.2并行内存4.3虚拟内存4.4缓存内存4.5三级存储系统,4.1存储系统层次结构和性能指标,存储系统的设计目标是使存储系统和处理器的速度以较少的成本相匹配,或者达到与处理器相对应的工作速度和传输带宽,同时也要求存储系统具有尽可能多的容量。速度、容量和价格是存储系统设计中应该考虑的三个主要因素。4.1.1存储系统的层次结构。存储系统的层次指的是构成存储系统的几个不同的物理存储器(M1-锰)之间的辅助软件、硬件或辅助硬件的匹配,从而从应用程序设计者的角度来看,它们在逻辑上是一个整体,使得存储系统的等效访问速度接近最高层M1的访问速度,最低层Mn的容量,并且每比特的价格接近最低层Mn的每比特的价格。具有这种分层结构的存储系统实现更高性价比的一个重要基础是程序对存储空间的访问具有程序访问局部性的特征。程序访问局部性包括时间局部性和空间局部性。时间局部性是指程序将在不久的将来使用的信息,它可能是当前正在使用的信息。空间局部性意味着程序在不久的将来使用的信息可能与存储空间中当前使用的信息相邻。由于程序访问的局部性,在存储空间中彼此相邻的信息可以作为“块”或“页”放入一级存储器M1,具有最小的容量和最快的速度。很可能在不久的将来,许多连续的访问将在M1的相同“块”或相同“页”中找到所需的信息,使得访问速度可以接近M1的访问速度。2.存储系统的多层分层结构,有一个t1 C2.存储系统的n个内存访问周期之间的关系。图4.1存储系统层次结构,3。存储系统的透明性要求,在程序执行期间,中央处理器产生连续的逻辑地址流,这些逻辑地址需要被转换成某个Mi的物理地址,以便访问该Mi。这种地址转换对程序员来说应该是透明的。两个相邻存储器M1和M1之间的块或页的移入和移出对程序员来说也应该是透明的。存储系统的这种透明性是由管理存储系统的硬件和软件自动实现的。在三级存储系统中,VirtualMemory是针对主存容量不能满足要求而提出的。缓存内存是针对主存速度不能满足要求而提出的。图4.2三级存储系统的结构,4.1.2存储系统的性能指标,1。存储容量虚拟存储技术为用户设计了一个虚拟地址空间,它比主存储器的实际地址空间大得多,并且采用与主存储器相同的随机存取方法。2.当连续访问磁带存储器时,存储系统可以提供的数据传输率称为存储器的最大带宽。命中率如果逻辑地址流指定的信息在M1可以访问的次数是N1,在M1不能访问的次数是N2,命中率是3。单位容量平均价格辅助存储系统的单位容量平均价格为,6。存取效率,和5。等效访问周期二级存储系统的等效内存周期表示为,其中T1和T2分别是M1和M2存储器的访问周期。4.2并行内存并行内存是指在一个内存访问周期内可以并行访问多个内存字的内存,它可以有效地提高内存的带宽。并行存储器主要有两种,一种是单多字并行存储器,另一种是低阶交叉寻址多存储体并行存储器。4.2.1单个多字并行存储器,单个多字并行存储器将存储器的存储字长增加n倍,以存储n个指令字或数据字,因此单个多字并行存储器的最大带宽比单个字存储器的最大带宽增加n倍。单个多字并行存储器具有较高的访问冲突概率。访问冲突主要来自以下几个方面。(1)取指令冲突(2)读操作数冲突(3)写数据冲突(4)读写冲突,4.2.2低阶交叉寻址多体并行存储器,1。交叉寻址多体并行存储器由m个存储体组成,其存储单元地址采用低阶交叉寻址方法:如果每个存储体的容量为n个存储字,则存储单元地址的低log2m位称为存储体编号k,高log2n位称为内部地址I。低阶交叉寻址存储单元地址A的计算公式为:A=mi k。如果地址A已知,则存储体编号k=Amodm,可以计算存储单元的体内地址。多存储体并行存储器的交错存储方法可以在以下四种并行访问模式下实现对交错存储的nn二维阵列的无存储体冲突访问:对阵列中任意行的N个元素的并行访问。(2)并行访问阵列的任意列中的n个元素。(3)并行访问阵列对角线的n个元素或任何子对角线的所有元素。(4)并行访问阵列中任何子阵列的n个元素。当二维神经网络阵列以交错方式存储时,需要存储体的数量,m是质数。由二维数组的任何元素aij存储的体数和体地址分别为:其中p是满足的任何自然数;k是数组的第一个元素a00所在的存储体的存储体编号,通常取k=0。图4.444二维阵列和4.3虚拟存储器错位存储。在虚拟存储技术中,由程序编译产生的访问地址称为虚拟地址,由虚拟地址表示的存储空间称为虚拟空间。当程序代码运行时,在根据真实地址访问主存储器之前,虚拟地址必须被转换成主存储器物理地址(或称为主存储器真实地址)。虚拟地址和真实地址之间的对应规则称为地址映射。当程序运行时,虚拟存储系统根据地址映射将虚拟地址转换为真实地址,这称为地址转换。地址转换对应用程序程序员来说是透明的,并且是由存储系统自动完成的。如果根据虚拟地址要访问的数据不在主存储器中(未命中),则称为访问失败,然后需要访问磁盘存储器。此时,必须将虚拟地址转换为磁盘存储器的物理地址,这称为外部地址转换,然后才能访问磁盘存储器,并且要访问的数据块被传输到主存储器中。外部地址翻译更依赖于软件。当有新的数据块要传送到主存储器中时,如果主存储器中没有空闲位置,则存在实际的存储器冲突,那么必须采用某种替换算法来确定新数据块传送到主存储器中的位置。4.3.1虚拟内存的地址转换。1.分段虚拟内存的地址转换程序一般有一定的模块结构。这些模块被称为段。一个段占用的存储容量称为段长度。因为程序段是由程序员在编写程序时决定的,所以程序段的长度是不同的。通过分段分配主存空间的存储管理方法称为分段管理。图4.5段虚拟内存、和2的地址转换。页面虚拟内存的地址转换。分页将虚拟地址空间和主存储器地址空间划分成相同大小的页面,程序以页面为单位进出主存储器。虚拟空间中的页面称为虚拟页面,主内存空间中的页面称为真实页面。每个程序都使用一个页表来存储信息,例如加载到主存储器中的程序的每个虚拟页的位置(实际页号)。虚拟页面在页面表中占据一行。因此,虚拟空间中虚拟页面的数量是页面表中的行数(存储的字)。图4.6页面虚拟内存的地址转换3。分段页虚拟内存的地址转换分段页管理的基本思想是分段管理用户编写的程序的虚拟空间,而主存的物理空间是以页管理的。在段-页虚拟内存中,用户仍然根据逻辑段编写程序,但是虚拟空间到主内存物理空间的映射是在页中完成的。(1)目录表目录表的基本思想是用目录表代替页表,目录表中的行数是实际的页数,因此,目录表中的行数远远小于页表中的行数,使得目录表所需的存储容量更小。然而,目录表需要通过关联查找来访问,因此需要较小的关联存储器来存储目录表,并且使用关联存储器的并行关联查找功能来访问目录表,从而加快了表查找的速度。图4.8采用了目录表的地址转换,(2)快表和慢表将页表分为快表和慢表,以提高查找表的速度。快速表是慢速表的部分副本,用于存储需要在一段时间内频繁访问的存储单词。快速表以目录表的形式组织,并存储在关联存储器中。快速表的容量可达816个存储字,存取速度相当于中央处理器中一般寄存器的存取速度。慢速表将页表的所有存储字存储在主存储器中。图4.9使用快速和慢速表的地址转换。页面式虚拟内存的虚拟空间分为8个虚拟页面,虚拟页面数量为07,页面大小为1024字,主内存容量为4096字。当页表用于地址转换时,页表的当前内容如下表所示。(1)列出将发生页面失效的所有虚拟页码。(2)如果程序根据以下虚拟地址访问内存:0,3728,1023,1024,2055,7800,4096,6800,请计算主内存转换后的真实地址(以十进制数表示)。(1)页表的行号是虚拟页的页码。Load bit=1 表示对应的虚拟页面已经加载到真实页码所指示的真实页面位置;Load bit=0 表示对应的虚拟页面没有加载到内存中,该行的实际页码无效。因此,根据标题给出的页面表,页面失败的虚拟页面有:2、3、5、7。(2)页面虚拟内存的虚-实地址转换的计算步骤如下。(1)从虚拟地址Av计算虚拟空间中虚拟地址的虚拟页号p和页内偏移量d,其中l是页长度。(2)通过虚拟页码查找页表的相应行。如果load bit=0 ,页面将会无效,需要分页,而不是转换为实际地址。如果load bit=1 ,则取出相应的实际页码p。例如,通过将虚拟页0的P=0作为页表的第一地址的相对偏移量,找到页表的第一行(行号为0),并从中提取实际页号p=3。(3)根据实际页号p和页内偏移量d计算实际地址,并且d=d。例如,虚拟地址1023的实际地址是A=31024 1023=4095。表4.1示例4.1虚拟和真实地址转换,4.3.2页面替换算法及其命中率,1。几种页面替换算法随机替换算法(RANDom replacement algorithm)用软件或硬件随机生成被替换的虚拟页码。先进先出替换算法(先进先出算法)选择载入主存的虚拟页面作为替换页面。替换算法(LRU算法)至少在不久的将来被用来选择最近访问次数最少的虚拟页面作为替换页面。在不久的将来使用时间最长的替换算法也被称为LRU算法。该算法选择在不久的将来访问时间最长的虚拟页面作为替换页面。最佳替换算法选择将来访问时间最长的页面作为替换页面。2。页面替换算法的命中率计算。通过在典型程序的虚拟页面地址流中使用替换算法模拟替换过程,可以获得对主存储器的命中次数,从而可以获得虚拟页面地址流使用替换算法时主存储器的命中率。有一个程序共有5个虚拟页面,从0到4。程序执行过程中访问虚拟页面的地址流为:1,2,1,0,4,1,3,4,2,1,4,1如果有3个真实页面分配给程序,请举例说明使用和替换3个主内存页面的过程利用堆栈对程序的虚拟页面地址流进行一次处理,可以得到H(n)和n之间的关系,从而可以根据程序需要访问内存的主内存命中率H来确定应该分配给程序的实际页面数n,利用有限的主内存空间资源可以达到更高的性价比。堆栈类型替换算法的定义,假设A是长度为L的任何虚拟页面地址流,T是t-1个虚拟页面已经被处理的时间点,N是分配给虚拟页面地址流的主存储器页面的实际数量,Bt(n)表示在T个时间点的N个真实页面中的虚拟页面的集合,Lt表示在处理的虚拟页面地址流中直到T个时间点的具有不同虚拟页面数量的页面的数量。如果替换算法具有以下包含属性。替换算法是堆栈替换算法。2.虚拟页面地址流的堆栈处理过程。通过使用堆栈处理技术对虚拟页地址流进行一次处理,可以同时获得主存储器的不同实页分配给虚拟页地址流时的主存储器命中率。St是堆栈中Lt个不同虚拟页号的有序集合,St(1)是St的顶项,St(2)是St的次顶项,依此类推。LRU算法将刚刚访问的虚拟页号推入栈顶单元,将栈顶单元中的虚拟页号与其他栈单元中的虚拟页号进行比较,并删除栈顶单元中具有相同虚拟页号的其他栈单元,从而确保栈中保留的虚拟页号都是不同的页号。对于示例3.1中给出的虚拟页面地址流,使用LRU算法来堆叠虚拟页面地址流。当分配给程序的实际页数分别为1、2、3、4和5页时,计算主内存的命中率。使用LRU算法堆栈虚拟页面地址流的过程如图4.12所示。可以看出,当n=1时,没有命中,H1=0;当n=2时,H2=2/12=0.167;当n=3时,H3=5/12=0.417;当n=4时,H4=6/12=0.5;当n5时,H5=7/12=0.583。图4.12使用LRU算法堆叠虚拟页面地址流。4.4缓存,缓存,有效解决了中央处理器处理速度和内存系统访问速度的匹配问题。缓存存储系统和虚拟存储系统是两级存储系统,在地址转换、替换算法和性能评估等方面有很多相似之处,但也有很多不同之处:缓存和内存之间的数据交换是以块为单位进行的。(2)两个存储器之间的速度比不同。(3)在中央处理器和高速缓冲存储器之间以及中央处理器和主存储器之间有直接路径。如果中央处理器未能访问高速缓冲存储器中的块,中央处理器可以直接访问主存储器。缓存存储系统旨在提高整个存储系统的速度,而虚拟存储系统旨在扩展存储系统的容量。缓存存储系统对系统程序员和应用程序程序员透明,而虚拟存储系统仅对应用程序程序员透明。4.4.1缓存的地址映射和地址转换。1.全关联地址映射及其地址转换全关联地址映射指的是主存储器中可以加载到高速缓存中任何块位置的任何块。所有关联图像都具有最低的块冲突概率和最高的缓存空间利用率。所有关联图像的地址转换由目录表实现,目录表需要存储在关联存储器中。目录表中的行数(即关联存储器中的存储单元数)是缓存中的块数。在高速缓冲存储器中,高速缓冲存储器容量是2C字节,主存储器是由m个存储体组成的低阶交叉寻址并行存储器,总的主存储器容量是由存储单元寻址的2M字节,并且每个存储体的存储单元是k个字节。采用全关联映射,通过关联目录表实现地址转换。(1)写出主存地址和缓存地址的格式,并指出每个字段的长度。(2)找出目录表中的行数、比较的位数和目录表的宽度。解决方案(1)当使用全关联映射时,主存储器地址

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论