版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 存储体系,5.4 高速存储器,解决CPU与主存速度上的差异的方法: 从CPU角度,两种办法解决这个问题: 一种是CPU在遇到访存指令时,立即启动存储器操作,然后CPU继续执行其他指令。如果在主存数据还没有被读出时CPU就要使用这些数据,那么CPU停下来等待存储器操作。 另一种解决办法是不让CPU暂停工作,让编译器在读到存储器数据之前不要生成使用该内容的指令。 从存储器角度,几种有效途径: 主存采用更高速的技术来缩短存储器的读出时间,或加长存储器的字长; 采用并行操作的多端口存储器; 在CPU和主存之间加入一个高速缓冲存储器(Cache),以缩短读出时间; 在每个存储器周期中存取几个字。
2、,一、双端口存储器,2K16位双端口存储器IDT7133的逻辑框图,何时冲突? 冲突的解决:判别逻辑 设置BUSY#=0延迟一端口,直到优先端口完成读写操作,被 延迟端口的BUSY#复位。,FIFO(先进先出的存储器):一端读,一端写 随电子工艺的飞速发展,出现了三端口及以上存储器。,二、多体存储器 (多模块存储器) 1、顺序编址,模块数n 第j个模块第i个单元地址= ni+j, i=0,1,2,m-1,块内地址,块号,m=2L n=2k,L 位 k 位,2、多体交叉存储器,设 每个存储体的字长都等于数据总线的宽度 存储体存取一个字的存储周期为T, 总线传送周期为 存储器的交叉存储体数为M T
3、/称为交叉存取度,当MT/时,可以保证启动某模块后经M时间再次启动该模块时,它的上次存取操作已经完成。 为了实现流水线方式存取,应当满足T=M 这样,连续读取M个字所需的时间为t1=T+(M-1) 顺序存取M个字所需时间为t2=MTt1,4体交叉存储器的流水线方式存取示意图,通过改进主存的组织方式来提高存储器的带宽,t2 t1 Bw1=M个字信息/ t1 Bw2= M个字信息/ t2 Bw1 Bw2,CPU同时访问M个存储体,由存储器控制部件控制它们分时使用数据总线进行信息传递。采用M个存储体流水式并行存取的方式 多体交叉存储器实际上是一种模块式的存储器,可以并行执行多个独立的操作。,r体交叉
4、存储器,每隔1/r访存周期启动一个存储体的操作, 存储器的带宽可以增加到单个存储体的r倍。,用定量分析方法证明交叉存储器带宽大于顺序存储器带宽,解:假设(1)存储器模块字长等于数据总线宽度 (2)模块存取一个字的存储周期等于T. (3)总线传送周期为 (4)交叉存储器的交叉模块数为m. 交叉存储器为了实现流水线方式存储,即每通过时间延迟后启动下一模快,应满足 T = m, (1) 这样连续读取m个字所需要时间为 t1 = T + (m 1) = m + m = (2m 1) (2) 故交叉存储器带宽为W1 = 1/t1 = 1/(2m-1) (3) 而顺序方式存储器连续读取m个字所需时间为 t
5、2 = mT = m2 (4) 存储器带宽为W2 = 1/t2 = 1/m2 (5) 比较(3)和(2)式可知,交叉存储器带宽 顺序存储器带宽。,例:设存储器容量为32字,字长64位,模块数M=4,采用交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期=50ns。问存储器的带宽是多少?如果不采用交叉方式进行组织,存储器的带宽又是多少?,解:4体交叉存储器连续读出4个字的信息总量是: q=64位4=256位 4体交叉存储器连续读出4个字所需的时间是: t1=T+(M-1)=200ns+350ns=350ns=3.510-7 秒 4体交叉存储器的带宽是:W1=q/t1=2
6、56/(3.510-7)=7310-7 位/秒 若不采用交叉方式进行组织,则存储器连续读出4个字的信息总量还是 q=64位4=256位 存储器连续读出4个字所需的时间是:t2=MT=4200ns=800ns=810-7 秒 存储器的带宽是:W2=q/t2=256/(810-7)=3210-7 位/秒,例:在一个4体交叉存储器中(具有4个存储体的低位交叉存储器),如果处理器的访存地址为以下十进制值。求该存储器比单体存储器的平均访问速率提高多少(忽略初启时的延时)。 (1)1,2,3,。,100 (2)2,4,6,。,200 (3)3,6,9,。,300,解:(1)访问地址为连续的100个地址,各
7、个访问操作可以交叉进行,访问速率可达单体存储器的4倍。 (2)访问地址是间隔为2的地址序列,存储器以每隔1/4存储周期进行访问时,由于存在存储体的冲突,即地址2与地址6处于同一存储体,地址4与8处于同一存储体,需等待存储体上一次访问结束时才能启动下一次访问,实际上只有2个存储体交叉访问,访问速率可达单体的2倍。 (3)访问地址是间隔为3的地址序列,存储器以每隔1/4存储周期进行访问时,访问的存储体分别是3,2,1,0,3,2,1,0,。,各属于不同的存储体,4个存储体可完全交叉访问,所以访问速率可达单体存储器的4倍。,机字长32位,常规设计的存储空间32M,若将存储空间扩展到256M,请提出一
8、种可能的方案,用多体交叉存取方案,即将主存分成8个相互独立、容量相同的模块M0,M1,M2,M7,每个模块32M32位。它们各自具备一套地址寄存器、数据缓冲器,各自以等同的方式与CPU传递信息,其组成如图,0 8,三、相联存储器P143 在相联存储器中,一个字是通过它的部分内容而不是它的地址进行检索的。,相联存储器的基本组成,相联存储器检索举例,5.5 高速缓冲存储器Cache,Cache、主存与CPU的关系,5.5 高速缓冲存储器Cache,一、Cache的特点 1、 Cache是位于CPU与主存之间的高速小容量的SRAM,目的是 2、 Cache设置的理论基础是程序访问的局部性原理(时间、
9、空间) 3、 Cache内容是主存部分内容的副本 4、 Cache包括管理在内的所有内容是由硬件完成的,对程序员是透明的。,Cache的原理图,二、Cache的基本原理 1、 Cache的组成结构,地址映射 替换,主存标记,2、Cache的读写操作 CPU读一个字时,首先Cache控制逻辑判断这个字是否在Cache中,若在,就立即送给CPU,称为Cache “读命中”;否则,称为Cache “读不命中”,通常有两种方法解决Cache 的“读不命中”情况: 其一,将主存中该字所在的数据块复制到Cache中,然后再把这个字传送给CPU; 其二,把此字从主存读出送到CPU,同时,把包含这个字的数据块
10、从主存中读出送到Cache中。 当CPU访存写一个字时,Cache控制逻辑根据地址判断这个字是否在Cache中,若不在,称为Cache“写不命中”,否则,称为Cache“写命中”. 当CPU写Cache不命中时,直接写主存,然后有两种做法: 其一,不将该数据所在的块拷贝到Cache行,称为WTNWA法; 其二,将该数据所在块拷贝到Cache的某行,称为WTWA法。 当CPU写Cache命中时, 写贯穿法:所有写操作既对Cache也对主存进行 写回策略:当CPU写Cache命中时,写操作只是对Cache进行,而不修改主存的相应内容,仅当此Cache行被换出时,相应的主存内容才被修改,3、Cach
11、e的命中率 在一个程序执行期间,设 Nc表示Cache完成存取的总次数, Nm表示主存完成存取的总次数, 命中率h指CPU访问主存数据时,命中Cache的次数,占全部访问次数的比率; 失效率就指CPU访问主存数据时,不命中Cache的次数,占全部访问次数的比率。 若tc表示命中时Cache的访问时间,tm表示Cache “不命中”时主存的访问时间,1-h表示不命中率,则Cache/主存系统的平均访问时间ta为: 或 设r=tm/tc表示主存慢于Cache的倍率,e表示访问效率,则有 命中率h与程序的行为、Cache的容量、组织方式、块的大小有关,已知cache 命中率 h=0.98,主存比ca
12、che 慢4倍,已知主存存取周期为200ns,求cache/主存的效率和平均访问时间。设不命中时不访问Cache 解:Tm= 200ns, Tm/Tc=4,Tc=Tm/4=50ns =0.9850ns+(1-0.98) 200ns =53ns E=Tc/Ta=50ns/53ns= 0.94,已知cache / 主存系统效率为85% ,平均访问时间为60ns,cache 比主存快4倍,求主存储器周期是多少?cache命中率是多少? 解:因为:ta = tc / e 所以 :tc = tae = 600.85 = 51ns (cache存取周期) tm = tcr =51 4 = 204ns (主
13、存存取周期) 因为:e = 1 / r + (1 r )H 所以: H = 2.4 / 2.55 = 0.94,三、主存与Cache的地址映射方式 Cache的数据块大小称为行,主存的数据块大小称为块,行与块是等长的。为了更方便地叙述,现统一给出以下三种地址映射方式的前提条件: 设i表示主存块号, j表示Cache行号, 主存容量为2m块, Cache容量为2c行, 每个字块中含2b个字。 其中,i=0,1,2,., 2m-1;j=0,1,2,., 2c -1。 1、直接映射 直接映射是一种多对一的映射关系。在直接映射方式下,Cache的行号j和主存的块号i有如下函数关系:,直接映像的缺点是机
14、制不灵活,Cache命中率低。,根据cache块号,找到Cache中相应行,标记比较,如相等,则命中, 否则,不命中,根据主存地址直接访问主存,这里的 区号即书上的标记,例m=12,b=4,c=6,问主存5A6BH直接映射到Cache的第几行? t=m-c=6 主存地址分布: 5A6BH=0101101001101011b 100110B=38,6 6 4,主存1MB,每字块512B,Cache 8KB,每行512B,字节编址 求直接映射主存地址的分布。 解: 每字块512B= 29B, b=9 主存块数=1MB/512B=2048=211, m=11 Cache行数=8KB/512B=16=
15、 24, c=4,t=m-c=7 主存地址分布:,7 4 9,设有一个Cache的容量为2K字,每块16字,字编址求 1)该cache可容纳多少个块?128 2)如果主存的容量是256K字,则有多少块?214 3)主存的地址有多少位?Cache地址有多少位?18,11 4)在直接映射下,主存中的第i块映射到cache中哪一块? i mod 128 5)直接映射时存储器的地址分成哪几段?各段多少位?,设一个直接映射的cache中有8块,访问主存进行读操作的块地址序列为10110B,11010B,10110B,10000B,00100B,10000B,10010B,即10进制的22,26,22,2
16、6,16,4,16,18,求每次访问后cache中的内容。,访问顺序 12345678 块地址 222622261641618 块分配情况,操作状态 调进 调进 命中 命中 调进 调进 命中 替换,2、全相联映射,全相联映像的优点是机制灵活,命中率高。 全相联映射方式的主要缺点是比较器电路难于设计和实现,因此只适合于小容量的Cache。,设一个全相联映像的cache中有8块,访问主存进行读操作的快地址序列为10110B,11010B,10110B,10000B,00100B,10000B,10010B,即10进制的22,26,22,26,16,4,16,18,求每次访问后cache中的内容。,
17、访问顺序 12345678 块地址 222622261641618 块分配情况,操作状态 调进 调进 命中 命中 调进 调进 命中 调进,3、组相联映射 组相联方式将Cache的行分成2c-r组,每组2r行。主存的字块存放到Cache中的哪个组是固定的,至于映射到该组哪一行是灵活的,即有如下函数关系: 其中 0k2r-1 组相联映像的优点是大大增加了映射的灵活性,主存中一块可映射到Cache 的2r块,提高了命中率。每次比较只是进行2r路比较,r 较小时,硬件开销不是很大。 组相联映像通常采用2路、4路和8路比较,即取r=1,r=2,r=3。,根据组地址找到组,该组2r行的标记与主存标记比较,
18、有一个相等, 则命中,根据块内地址访问,否则,不命中,根据整个主存地址访问主存。,主存字块标记的,设一个4路组相联映像的cache中有8块,访问主存进行读操作的块地址序列为10110B,11010B,10110B,10000B,00100B,10000B,10010B,即10进制的22,26,22,26,16,4,16,18,求每次访问后cache中的内容。,访问顺序 12345678 块地址 222622261641618 块分配情况,操作状态 调进 调进 命中 命中 调进 调进 命中 替换,替换算法为FIFO,主存16MB,每字块8字,Cache 8KB,32位/字,字节编址 分别求直接映
19、射、全相联映射和4路组映射下主存地址的分布。 主存地址1C568AH 4路组映射到cache哪一组? 解:每字块32B= 25B, b=5 主存块数=16MB/32B=219, m=19 Cache行数=8KB/32B= 28, c=8,t=m-c=11 主存地址分布:,11 8 5,4路组,r=2, Cache组数=8KB/(4*32B)= 26, d=c-r=6,t+r=13 主存地址分布:,13 6 5,1C568AH=000111000101011010001010B 110100B=52,根据主存区号和块号与区号标记+主存块号标记比较,有一个相等, 则命中,根据主存组号和相联存储器的
20、cache块号和主存块内地址访问Cache, 否则,不命中,根据整个主存地址访问主存。,组相联的另一种策略:主存的一组直接映射到的一组,组内全相联,区号,块内地址,组内块号,组号,区号标记主存块号标记cache块号,相联存储器,组号,块号,块内地址,主存,cache,设一个4路组相联映射的cache中有8块,访问主存进行读操作的块地址序列为10110B,11010B,10110B,10000B,00100B,10000B,10010B,即10进制的22,26,22,26,16,4,16,18,求每次访问后cache中的内容。,访问顺序 12345678 块地址 222622261641618
21、块分配情况,操作状态 调进 调进 命中 命中 调进 调进 命中 调进,用组相联的另一种策略,四、替换算法 1、随机替换算法 2、先进先出算法(FIFO) 3、最近最少使用算法(LRU) 该算法统计哪一个Cache行是近段时间使用次数最少的Cache行,需替换时就将它替换出去。 LRU替换算法可以通过为每个Cache行设置一个计数器来实现LRU替换算法,Cache每命中一次,命中行的计数器被清零,其他行的计数器加1,需要替换的话,就将计数器值最大的行替换出去。,先进先出替换策略,近期最久未使用替换策略,计算机主存容量为256K字,Cache为8K字。主存与Cache之间按组相联映射, Cache
22、的每组有4个行,每行有64个字。假设开始时Cache为空,CPU按顺序从 主存地址为0,1,2, ,8447单元执行“取“操作(不命中时,采用将主存中 含有该字的块送入Cache后,再从Cache中把需要的字读出送CPU的方法), 然后又重复执行20次。设Cache存取时间为主存的1/10。替换使用LRU算法, 请计算上述操作总的存取时间与不用Cache相比,速度提高多少倍?,8448字/64字=132行 CACHE组数=8K/(4*64)=32组,每组4行 第一次132行,每行一个字不命中 后20次,每次4*5行,每行一个字不命中 不命中的次数=132+20*20=532 总的访问次数=88
23、48*21 命中率h=(8848*21-532)/(8848*21) 设主存存取时间为Tm Tc=0.1Tm Ta=h*Tm+(1-h)*(Tm+Tc) Tm/Ta,03 3235 6467 9699 128131,Cache的多层次设计P152,一、单级Cache和两级Cache 二、统一cache和分离cache 三、cache一致性问题,六、Pentium 的Cache,Pentium处理器框图,L1级cache 8KB 4路组 8KB 2路组 L2级Cache 4路组 L1级Cache的内容是L2级Cache的子集 L2级Cahce的内容是主存的子集,L1级数据Cache的结构,8KB
24、 2路组 128组每组2行,每行32B,Pentium 32位DB 36位AB 字编址,P155,5.6 虚拟存储器,虚拟存储器的概念,设置目的,管理方法。 虚拟存贮器是通过硬件和操作系统来管理的,是一种通过软、硬件结合的方法来扩大内存容量的技术。 逻辑地址(虚地址)和物理地址 在虚拟存储器中,根据寻址方式计算出的有效地址是 物理地址 采用虚拟存贮器的主要目的是解决速度和容量价格的矛盾,扩大主存贮器的存贮空间,并能进行自动管理和调度, 常用的虚拟存贮系统由_主存-辅存_两级存贮器组成, 虚拟存储器的实现方式:段式、页式和段页式。,页式虚拟存储器,基号是操作系统给每个程序产生的地址附加的地址字段
25、,以便于区分不同程序的地址空间。 页式虚拟存储器中内存和辅存换进、换出的基本单位是页。 页表是一个数据结构,其基本作用就是将逻辑地址变换为物理地址,逻辑地址,物理地址,0 1 2,7,6,2,在前图所示的页式虚拟存储器中,假定页面大小为1024字节,求对应于虚拟地址2050的主存地址,设页号6位。 2050/1024=2,该地址位于第2页(页号从0开始) 2050 mod 1024 =2,页内地址为2 逻辑地址为0000100000000010B 从页表可见,第2页映像到主存的第7页,主存地址为 7*1024+2=7170 物理地址 0001110000000010B,用快表(页表)的虚实地址
26、转换条件,快表放在相联存贮器中,其容量为8个存贮单元,问:(1)CPU按虚地址1去访问主存时主存的实地址码是多少?(2)当CPU按虚地址2去访问主存时主存的实地址码是多少?(3)当CPU按虚地址3去访问主存时主存的实地址码是多少?,虚拟地址 页号 页内地址,33 25 7 6 4 15 5 30,42000 38000 96000 60000 40000 80000 54000 70000,页号,该页在主存中的起始地址,15,0324,7,0128,48,0516,1,2,3,(1) 用虚拟地址为1的页号15作为快表检索项,查得页号为15的页在主存中的起始地址为80000,故将80000与虚拟
27、地址中的页内地址码0324相加,求得主存实地址码为80324。 (2)主存实地址码 = 96000 + 0128 = 96128 (3)虚拟地址3的页号为48,当用48作检索项在快表中检索时,没有检索到页号为48的页面,此时操作系统暂停用户作业程序的执行,转去执行查页表程序。如该页面在主存中,则将该页号及该页在主存中的起始地址写入主存;如该页面不存在,则操作系统要将该页面从外存调入主存,然后将页号及其在主存中的起始地址写入快表。,一个有32位程序地址空间,页面容量为1KB,主存容量为8MB,设页表中的控制位3位,问 (1)逻辑页号字段有多少位?页表将有多少行? (2)页表的每一行有多少位?页表
28、的容量有多少字节? (1)1KB=210B ,页内地址10位,逻辑页号32-10=22位,页表长度为222=4M行 (2)主存页框架的数量=8MB/1KB=213个,主存页号字段13位,控制字段3位,页表每行16位, 页表容量=22216位=8MB,段式虚拟存储器,不同程序被映射到不同的段中,每个程序有一个短标志符,即基号。 段式虚拟存储器中内存和辅存换进、换出的基本单位是段。 段就是指按照程序的逻辑结构划分成的多个相对独立部分,例如,过程、子程序、一个数组或一张表等都可以作为一个段处理,段的长度因程序而异,每个段安排一个段号,段式管理的优点是段的逻辑独立性使它易于编译、管理、修改和保护,还可
29、以实现多道程序共享等。缺点是段的长度各不相同,起点和终点不定,不利于调用时在内存中找到合适的空间,常常导致在段间留下许多零碎的空余空间,因此不能很好地利用内存存储空间,从而造成浪费。 内存按页分配的存储管理方式就是页式管理,其优点是页面的起始和终止地址是固定的,方便造页表,新页调入内存也很容易掌握,比段式管理的空间浪费小;缺点是由于页不是逻辑上独立的实体,所以处理、保护和共享都不及段式方便。 页式虚拟存储器能有效地提高内存利用率,而段式虚拟存储器则能很好地满足用户需要。将两者结合起来,取长补短,形成一种新的虚拟存储器的实现方式,其既具有段式虚拟存储器中分段共享、分段保护等优点,又如页式虚拟存储
30、器般能很好地解决存储“碎片”问题,这种虚拟存储器管理方式就叫段页式管理。,段页式虚拟存储器,在段页式虚拟存储系统中,程序按逻辑单位分段,每段再分成若干页,每道程序是通过一个段表和一组页表来进行定位的,5.7 外存储器,一、磁盘存储器 磁盘存储器包括硬磁盘和软磁盘。 1、硬磁盘 典型结构为温彻斯特硬磁盘,简称温盘。温盘的磁头与盘面不接触,且随气流浮动,因此使用寿命较长。温盘的优点是防尘性能好,可靠性高,对使用环境要求不高。 硬盘的6个主要技术指标: 磁头。好的磁头可以提高硬盘的整体性能。硬盘一般采用两种磁头:磁阻磁头(Magneto Resistive heads,MR)和巨磁组磁头( GiantMagneto Resistive
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物质发电生产设备租赁承包合同
- 保健品摊位租赁合同
- 学校实验室设备架租赁协议
- 企业并购重组策略
- 儿童剧副导演聘用协议
- 植物园施工便道工程合同
- 2024年度供应链管理合同(含多个供应方)
- 墙面施工合同:办公楼内部装修
- 娱乐场所设施维护
- 石油化工钩机租赁合同
- 辽宁省大连市金普新区2024-2025学年七年级上学期11月期中英语试题(无答案)
- 生态文明学习通超星期末考试答案章节答案2024年
- 区病案质控中心汇报
- 期中测试卷(1-4单元)(试题)2024-2025学年四年级上册数学人教版
- 教育局职业院校教师培训实施方案
- 《万维网服务大揭秘》课件 2024-2025学年人教版新教材初中信息技术七年级全一册
- 2024年新华社招聘应届毕业生及留学回国人员129人历年高频难、易错点500题模拟试题附带答案详解
- 人教版(2024新版)七年级上册英语Unit 5单元测试卷(含答案)
- 美食行业外卖平台配送效率提升方案
- 中国民用航空局信息中心招聘笔试题库2024
- 芯片设计基础知识题库100道及答案(完整版)
评论
0/150
提交评论