第三章存储系统4-4

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

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

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

资源描述

13.4.2多模块交叉存储器1.存储器的模块化组织一个由若干模块组成的主存储器是线性编址。地址在各模块安排方式有两种方式:顺序方式和交叉方式。在常规主存储器设计中,访问地址采用顺序方式,图3.17(a)所示。2设存储器容量为32字,分M0-M3四个模块,每个模块存储8个字。访问地址按顺序分配给一个模块后,接着又按顺序为下一个模块分配访问地址.存储器的32个字可由5位地址寄存器指示,高2位选择4个模块中的一个,低3位选择每个模块中的8个字。在顺序方式中某个模块进行存取时,其他模块不工作。而某一模块出现故障时,其他模块可以照常工作,另外通过增添模块来扩充存储器容量也比较方便。缺点:是各模块一个接一个串行工作,因此存储器的带宽受到了限制。3图3.17(b)表示采用交叉方式寻址的存储器模块化组织示意图。存储器容量也是32个字,也分成4个模块,每个模块8个字。但地址的分配方法与顺序方式不同:将4个线性地址0,1,2,3依次分给M0,M1,M2,M3模块,再将线性地址4,5,6,7依次分配给M0,M1,M2,M3……直到全部线性地址分配完毕为止。当存储器寻址时,用地址寄存器的低2位选择4个模块中的一个,用高3位选择模块中的8个字。4用地址码的低位字段经过译码选择不同的模块,高位字段指向相应模块内的存储字.连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续。对连续字的成块传送,交叉方式的存储器可以实现多模块流水式并行存取,大大提高存储器的带宽。CPU的速度比主存快,同时从主存取出n条指令,必然会提高机器的运行速度。52.多模块交叉存储器的基本结构图3.18示出了四模块交叉存储器结构框图。主存被分成4个相互独立、容量相同的模块M0,M1,M2,M3,每个模块都有自己的读写控制电路、地址寄存器和数据寄存器,各自以等同的方式与CPU传送信息.如果程序段或数据块都是连续地在主存中存取,将大大提高主存的访问速度。6CPU同时访问四个模块,由存储器控制部件控制它们分时使用数据总线进行信息传递。对每一个存储模块来说,从CPU给出访存命令直到信息仍然使用了一个存取周期时间,而对CPU来说,它可以在一个存取周期内连续访问四个模块。各模块的读写过程将重叠进行,多模块交叉存储器是一种并行存储器结构。7下面作定量分析。设模块字长等于数据总线宽度,设模块存取一个字的存储周期为T,总线传送周期为r,存储器的交叉模块数为m,为了实现流水线方式存取应当满足:T=mr成块传送可按r间隔流水方式进行,也就是每经r时间延迟后启动下一个模块。图3.31示出了m=4的流水线方式存取示意图。8m=T/r称为交叉存取度。交叉存储器要求其模块数必须大于或等于m以保证启动某模块后经mr时间再次启动该模块时,它的上次存取操作已经完成。连续读取m个字所需的时间为:t1=T+(m-1)r顺序方式存储器连续读取m个字所需时间为t2=mT从以定量分析可知,由于t1t2,交叉存储器的带宽确实大大提高了。9(例4)设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期r=50ns问顺序存储器的交叉存储器的带宽各是多少?解:顺序存储器和交叉存储器连续读出m=4个字的信息总量都是:q=64位×4=256位顺序存储器和交叉存储器连续读出4个字所需的时间分别是:t2=mT=4×200ns=800ns=8×10-7st1=T+(m-1)r=200ns+3×50ns=350ns=3.5×10-7s顺序存储器和交叉存储器的带宽分别是:W2=q/t2=256/(8×10-7)=32×10-7[位/s]W1=q/t1=256/(3.5×10-7)=73×10-7[位/s]103.二模块交叉存储器举例下图,每个模块的容量为256K×32位,有8片256K×4位的DRAM芯片组成。存储器的总容量为2MB(512K×32位).数据总线宽度为32位,地址总线宽度为24位。11DRAM存储器有读周期、写周期和刷新周期.存储器读/写周期时,在行选信号RAS有效下输入行地址,在列选通信号CAS有效下输入列地址,于是芯片中行列矩阵中的某一位组被选中。如果是读周期,此位组内容被读出;如果是写周期,将总线上数据写入此位组。刷新周期是在RAS有效下输入刷新地址,此地址指示的一行所有存储元全部被再生。刷新周期比读/写周期有高的优行权,当对同一行进行读/写与刷新操作时,存储控制器对读/写请求予以暂存,延迟此行刷新结束后再进行。1224位的存储器物理地址指定的系统主存总容量可达16MB,按“存储体-块-字”进行寻址。其中高3位用于存储体选择,全系统有8个2MB存储体A20-A3的18位地址用于模块中256K个存储字的选择。读/写周期时,它们分为行、列地址两部分送至芯片的9位地址引脚。一个块内所有芯片的RAS引脚连接到一起,模块0由RAS0驱动,模块1由RAS1驱动。在读/写周期时,A2用于模块选择,连续的存储字(32位,双字)交错分存在两个模块上,偶地址在模块0,奇地址在模块1。CPU给出的主存地址中没有A1、A0位。替代的是4个字节允许信号BE3-BE0,允许对A23-A2指定的存储字(双字)中的字节或字完成读/写访问。当BE3-BE0全有效时,完成双字存取。13DRAM存储器需要逐行定时刷新,防止存储信息的电容漏电而造成信息丢失。DRAM芯片的读出是一种破坏性读出,在读取之后要立即按读出信息予以充电再生。若CPU先后两次读取的存储字使用同一RAS选通信号,CPU在接收到第一个存储字之后必须插入等待状态,直至前一存储字再生完毕才开始第二个存储字的读取。图3.33是无等待状态成块存取示意图。由于采用m=2的交叉存取度的成块传递,两个连续地址字的读取之间不必插入等待状态,称为零等待存取。14153.4.3相联存储器1.相联存储器的基本原理相联存储器是按内容访问的存储器。相联存储器指其中任一存储项内容作为地址来存取的存储器用来寻址存储器的子段叫做关键字,简称为键。16相联存储器的基本原理把存储单元所存内容的某一部分作为检索项(关键字),去检索该存储器,并将存储器中与该检索项符合的存储单元内容进行读出或写入。172.相联存储器的组成相联存储器存储体检索寄存器屏蔽寄存器符合寄存器比较线路代码寄存器控制线路18(1)检索寄存器检索寄存器:用来存放检索字。检索寄存器的位数和相联存储器的存储单元位数相等(n位),每次检索时,取检索寄存储器中若干位为检索项。19(2)屏蔽寄存器:屏蔽寄存器用来存放屏蔽码。屏蔽寄存器的位数和检索寄存器位数相同。20(3)符合寄存器符合寄存器用来存放按检索项内容检索存储体中与之符合的单元地址。(4)比较线路比较线路是把检索项和从存储体中读出的所有单元内容的相应位进行比较,如果有某个存储单元和检索符合,就把符合寄存器的相应位置“1”,表示该字已被检索。(5)代码寄存器代码寄存器用来存放存储体中读出的代码,或者存放向存储体中写入的代码。21(6)存储体用高速半导体存储器构成,以求快速存取。相联存储器作用1.用于虚拟存储器中存放分段表、页表和快表;2.在高速缓冲存储器中,相联存储器作为存放cache的行地址之用。223.5Cache存储器3.5.1Cache基本功能与原理1.Cache的功能解决CPU和主存之间速度不匹配采用的一项重要技术。主存的缓冲存储器,由高速的SRAM组成。23242.Cache的基本原理图3.36Cache原理图253.5.2主存与cache的地址映射地址映射:为了把主存块放到cache中,采用某种方法把主存地址定位到cache中.地址映射方式1.全相联方式:一对多2.直接方式:多对一3.组相联方式:组对应,组内行任意261.全相联映射方式(一对多)主存的数据块大小称为块cache的数据块大小称为行将主存中一个块的地址(块号)与块的内容(字)一起存于cache的行中,块地址存于cache行的标记部分中。全部标记用一个相联存储器保存全部数据用一个普通RAM保存27全相联映射主存cache图3-23全相联映象第0块第1块第0块…第1块…第N-1块第MN-1块28全相联映射•特点:(一对多)主存的一个块直接拷备到中cache任意一行。缺点:比较器电路难于设计和实现。全相联映射:只适合于小容量cache采用。29不相等块失效块表01N-1主存地址块内地址cache地址主存块号块内地址比较块号…相联查找cache块号主存块号标志302.直接映射方式(多对一)是一种多对一的映射关系,一个主存块只能拷贝到cache的一个特定行位置上去。Cache的行号I和主存的块号j有如下函数关系:I=jmodm主存cache第0块第1块第0块…第1块第N-1块……第(M-1)N块第N-1块第(M-1)N-1块…第MN-1块第0区第M-1区图3-20cache的直接相联映象31不相等块失效图3-21直接映象的地址变换方法块内地址主存地址cache地址块表0按块号查找N-1主存区号标志访问cache主存块号区号块内地址比较块号…323.组相联映射方式组相联映射方式是全相联映射和直接映射两种方式的折衷方案。组对应,组内行任意33343.5.3替换策略及更新策略常用替换算法:1.最不经常使用(LFU)算法2.近期最少使用(LRU)算法3.随机替换4.FIFO算法(先进先出)351.最不经常使用(LFU)算法原理:将一段时间内被访问次数最少的那行数据换出。实现过程:每行设置一个计数器。新行建立后从0开始计数,每访问一次,被访问的计数器增1。当需要替换时,对这些特定行的计数值进行比较,将计数值最小的行换出,同时将计数器清零。缺点:这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内,不能严格反映近期访问情况。362.近期最少使用(LRU)算法原理:将近期内长久未被访问过的行换出。实现过程:每行设置一个计数器,但是Cache每命中一次,命中行计数器清零,其它各行计数器增1。当需要替换时,比较各特定行的计数器,将计数值最大的行换出,这种算法保护了刚进入cache中的新数据行。特点:符合cache工作原理,使cache有较高的命中率。373.随机替换原理:从特定行位置中随机地选取一行换出即可。实现过程:从特定行中随机地选取一行。特点:在硬件上容易实现,速度也比前两种策略快。但随意换出的数据很可能马上以要使用,从而降低命中率和cache工作效率。384.FIFO算法原理:选择最早装入cache中的页作为被替换的页。实现过程每一个页都与一个“装入顺序数”相联系,每当一个页送入cache或从cache中取出时,更新“装入顺序数”。检查这些数,就可以决定最先进入的页特点:在硬件上容易实现,但经常使用的页也有可能由于它是最早的页而被替换。393.5.4Cache的写操作策略三种写操作策略:1.写回法当CPU写cache命中时,只修改Cache的内容,而不立即写入主存。只有当此行被换出时写回主存。2.全写法当写cache命中时cache与主存同时发生写修改。3.写一次法写命中与写未命中的处理方法与写回法基本相同只是第一次写命中时要同时写入主存。403.5.5奔腾PC机的Cache奔腾PC机是一单CPU系统,它采用两级cache结构安装在主板上的2级cache(L2),其容量是512KB采用2路组相联映射方式,每行可以是32B,64或128B集成在CPU内的1级cache(L1),其容量是16KB,采用的也是2路组相联映射方式,每行是32B。CPU中的L1分设成各8KB的指令cache和数据Cache这种体系结构有利于CPU高速执行程序41CPU与外部数据交换时存储器读写总线周期主要有两类:一类是256位狡发式传送,用于L1的行填入和行写出。另一类是不经L1的64位(或32位,16位,8位)传送,此时CHACE#为高电平,称为非超高速缓存式传送。42图3.42奔腾两极Cache工作环境43L2级cache

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

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

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

×
保存成功