第三章存储系统[四].

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章存储系统存储器概述主存储器的基本构造和操作主存储器组织高速缓冲存储器Cache高速存储器半导体存储器芯片虚拟存储器原因:主存工作速度总落后于CPU的需求,主存容量总是落后于软件的需求.提高存储器性能的方法:提高主存工作速度—(1)提高主存读写速度:从最早使用的DRAM到后来的FPMDRAM、EDODRAM、SDRAM、DDRSDRAM和若RDRAM等;(2)在DRAM芯片中采用高速存取方式,如相联存储器、双端口存储器等;(3)采用并行主存技术.改善系统结构—采用多级存储体系结构3.6高速存储器3.6.1相联存储器(CAM——ContentAccessMemory)一、相联(联想)存储器的实质(工作原理)与常规存储器按地址访问不同,CAM是既可按地址寻址,又可按内容(通常是某些字段)寻址.CAM的每个字由若干字段组成,待检索的某字段作为关键字,用它与存储体中所有单元进行比较,找出关键字相同的所有数据字.用于信息检索、Cache和虚拟存储器.二、相联存储器的结构与功能结构框图如下:检索寄存器(n位)屏蔽寄存器(n位)数据寄存器(n位)存储体(包括比较电路)(m个单元,每单元n位)译码电路地址寄存器12m┇匹配寄存器┇┇┇••••••••••••••••••图3.32相联存储器的结构框图①用来存放待检索内容②屏蔽关键字段以外的值,即进行检索时,将MR中要比较的位置置为1,不需要比较的位置置为0.③存储体中各单元相应字段同时与关键字比较,相同者,匹配寄存器相应位置为1.若同时有i个字满足要求,则相应有i位为1④译码电路找到对应的存储单元.也具备按地址访问的功能。CRMRCAM在Cache中的具体应用⑤数据寄存器存放读出或写入的数据.⑥字选择寄存器用来确定哪些字参与检索.┇字选择寄存器5590…00…00…00…011…1第一次检索寄存器内容屏蔽寄存器内容1赵XX男175822钱XX男186113孙XX女175844李XX男19604…N丁XX女18520序号姓名性别年龄分数图3.33相联存储器检索举例例如:某高校学生入学总成绩已经存入相联存储器如图3.33,要求列出“总分”在560-600分范围内学生名单.可用二次查找完成:第一次找出“总分”大于559的考生,第二次再找出“总分”小于601的考生.匹配寄存器字选择寄存器5590…00…00…00…011…1第一次检索寄存器内容屏蔽寄存器内容1赵XX男175822钱XX男186113孙XX女175844李XX男19604…N丁XX女18520序号姓名性别年龄分数图3.33相联存储器检索举例分别将559和601作为关键字段内容置于比较寄存器中,屏蔽寄存器只在“总分”字段上设置11…1,而在其他字段设置00…0,表示不必比较,第一次查找结果送入匹配寄存器,为了进行第二次查找,先将匹配寄存器内容送入字选择寄存器,并将比较寄存器中的559更换为601,然后将第二次查找结果送入匹配寄存器,匹配寄存器和字选择寄存器内容同时为1位所对应的考生,即为查找结果。匹配寄存器字选择寄存器1111010101检索寄存器(n位)屏蔽寄存器(n位)数据寄存器(n位)存储体(包括比较电路)(m个单元,每单元n位)译码电路地址寄存器12m┇匹配寄存器┇┇┇••••••••••••••••••图3.32相联存储器的结构框图CRMR从按地址访问的存储器中检索某一个单元,平均约W/2次操作(W为存储单元数),而在相联存储器中仅需要进行一次检索操作,故大大提高了处理速度。3.6.2双端口存储器端口:指读/写控制电路。常规存储器为单端口存储器,即每次只能接收一个地址,访问一个存储单元。在高速系统中,主存是信息交换的中心,CPU、外设需要频繁访问主存,而单端口存储器每次只能接受一个访存者,影响工作速度。双端口存储器:具有两个彼此独立的读/写口,每个读/写口有独立的地址寄存器和译码电路,可以并行地独立工作。地址寄存器地址寄存器译码器译码器存储体应用实例:FPMDRAM+双口技术用于视频卡(VRAM)地址地址MDRMDR数据数据读写电路读写电路WEWEMARMAR•工作方式:两个读/写口可以按各自接收的地址,同时并行访问主存。与两个独立存储器不同的是,两套读/写口的访存空间相同,可以访问同一区间、同一存储单元。在发生访存冲突时由存储器仲裁逻辑解决。图3.34双端口存储器示意图3.6.3多模块交叉(多体交叉)存储器一、并行主存系统用W/w片字长w的芯片可以扩展成W位字长的存储器,一般把这种扩展叫存储芯片的并联组织(位扩展)。各个芯片同时工作,在一个Tm内读出一个W位的字,获得Bm=W/Tm的频宽。同理可进一步把n个W位字长的同容量存储器并成一个更大的存储器以获得Bm=nXW/Tm的频宽。这样组织的主存系统叫并行主存系统。作用:加快从主存读出信息到CPU的速度,以解决主存和CPU之间速度不匹配的问题。二、并行主存系统的两种组成方式——单体多字方式与多体并行方式多个存储体共用一套地址寄存器和控制逻辑还是各个模块有各自独立的控制部件?即各块是否可以独立工作?单体多字和多体并行即因此而有别。1、单体多字并行主存系统如下图所示,多个并行工作的存储器共用一套地址寄存器,按同一地址码并行地访问各自的对应单元,假定送入的地址码为A,则n个存储器同时访问各自的A号单元.可将这n个存储器视作一个大的主存储器,每个编址对应于n字×w位,故称为单体多字方式,适用于向量运算.即一个向量型的操作数是n个标量型操作数的集合,可按同一地址分别存放于n个并行主存中.地址寄存器地址M0M1….Mn-1W位W位….W位n×w图3.35单体多字并行主存系统地址译码器2、多体并行主存系统(1)多体交叉存储器组成:n个容量相同的存储器(或称为n个存储体),它们具有自己的地址寄存器、数据线、读写时序,形成可以同时工作又独立编址且容量相同的n个分存储体,故称为多体系统.总线控制CPU地址寄存器地址寄存器地址寄存器地址寄存器存控部件…………04M0152637M1M2M3数据存控部件:接收系统中各部件或设备的访存请求,按预定的优先顺序进行排队,响应其访存请求;分时接收各请求源发来的访存地址,转送至相应存储体等等。(2)多体交叉编址分为高位交叉(顺序方式)和低位交叉编址(交叉方式)。高位交叉编址:程序按体内地址连续存放,一个存储体存满后再存入下一个存储体,存储器地址寄存器的高位表示体号,低位表示体内地址.MDRM0地址译码MARMDRM1地址译码MARMDRMn-1地址译码MAR体号体内地址图3.36(a)高位交叉编址的多体存储器……00000M0M1M2M34321000001000100001100100001010011000111010000100101010010110110001101011100111110000100011001010011101001010110110101111100011001110101101111100111011111011111模块(分体)号块内字地址数据寄存器MDR(16位)DB(16位)图3.36(b)高位交叉编址的多体存储器(例)16位16位16位16位高位交叉即模块地址在高位低位交叉编址:同一存储体中的地址是不连续的,程序连续存放在相邻体中.存储器地址寄存器的低位部分选择不同的存储体,而高位部分则指向存储体内的存储字.MDRM0地址译码MARMDRM1地址译码MARMDRMn-1地址译码MAR体号体内地址图3.37(a)低位交叉编址的多体存储器……00000数据总线DB(16位)4321000001000100001100100001010011000111010000100101010010110110001101011100111110000100011001010011101001010110110101111100011001110101101111100111011111011111模块(分体)号块内字地址译码器寻找模块图3.37(b)低位交叉编址的多体存储器(例)MDR0MDR3MDR2MDR1MAR0MAR3MAR2MAR116位16位16位16位高位交叉编址特点:地址高位选择模块,地址低位选择字;某模块进行存取时,其它模块不工作;某模块出现故障时,不影响其它模块;扩容方便;各模块串行工作,存储器带宽受限.低位交叉编址特点:地址低位选择模块,地址高位选择字;连续地址分布在不同模块中,模块可同时并行工作,提高了带宽;但一个模块出错,则程序出错.例:一个四体并行交叉存储器,每个模块的容量是16K×32位,存取周期为200ns,在下述说法中()是正确的。A.在200ns内,该存储器能向CPU提供256位二进制信息B.B.在200ns内,该存储器能向CPU提供128位二进制信息C.在50ns内,每个存储模块能向CPU提供32位二进制信息D.在50ns内,该存储器能向CPU提供128位二进制信息(3)多体交叉存储体分时工作原理无论多体存储器中有几个分体,CPU与主存之间数据通路仍是一个W位.n个W位如何在一个存储周期Tm中读出?分时启动多个分体,使得每个Tm周期内得到多个单体字宽的数据.设主存有n个分体(模块),各自的存取周期都是Tm;则第一个分体启动后,每隔1/n个Tm再启动下一个分体.例:设有4体交叉的存储器,分时即每隔1/4Tm启动一个分体.要点:存储器读出虽用一个Tm,一旦读出后在主存——CPU的总线上传递的速度以及处理的速度要比读内存快得多.M3M2M1M01/42/43/412t(Tm)图3.38模4交叉存取分时工作示意图单体访存周期单体访存周期T时间字模块W0M0W1M1W2M2W3M3W0M0图3.29流水方式存取示意图设每个体的存储字长和数据总线的宽度一致,低位交叉编址的存储器模块数为n,存取周期为T,总线传输周期为,当采用流水线方式时,应满足T=n.n=T/称为交叉存取度,要求模块数=n,以保证启动某模块后经n时间再启动该模块时,它的上一次存取操作已经完成.T时间字模块W0M0W1M1W2M2W3M3W0M0图3.29流水方式存取示意图对于低位交叉存储器,连续读取n个字所需时间t1为:t1=T+(n-1)对于高位交叉存储器,连续读取n个字所需时间t2为:t2=nT例:设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织.存储周期T=200ns,数据总线宽度为64位,总线传送周期=50ns.问顺序存储器和交叉存储器的带宽各是多少?解:二者读出4个字的信息量均为64×4=256位;所需时间不同,分别为:T1=T+(m-1)=350nsT2=mT=800ns带宽分别为:W1=256/350=73×107位/sW2=256/800=32×107位/s例:某机器采用4体交叉存储器,今执行一小段循环程序,此程序放在存储器的连续地址单元中.假设每,条指令的执行时间相等,而且不需要到存储器存取数据,请问在下面两种情况中(执行的指令数相等),程序的运行时间是否相等?(1)循环程序由6条指令组成,重复执行80次.(2)循环程序由8条指令组成,重复执行60次.…………指令1指令5指令2指令6指令3指令4指令7指令8M0M3M2M1(1)T1=(T+7)+8×79=T+639(2)T2=(T+7)+8×59=T+479T1-T2=160∴T1T2解:(1)6条指令,重复80次(2)8条指令重复60次例:设某计算机采用直接映像Cache,已知主存容量为4MB,Cache容量为4096B,字块长度为8个字(32位/字).(1)画出反映主存与Cache映像关系的主存地址各字段分配框图,并说明各字段的名称及位数;(2)设cache初始状态为空,若CPU依次从主存第0,1,…,99号单元读出100个字(主存一次读出一个字),并重复按此次序读10次,问命中率为多少?(3)若Cache的存取时间为50

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功