计算机组织与结构课件第4章存储系统组织与结构.ppt

上传人:wj 文档编号:13088978 上传时间:2023-06-10 格式:PPT 页数:146 大小:2.02MB
下载 相关 举报
计算机组织与结构课件第4章存储系统组织与结构.ppt_第1页
第1页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第2页
第2页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第3页
第3页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第4页
第4页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第5页
第5页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第6页
第6页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第7页
第7页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第8页
第8页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第9页
第9页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第10页
第10页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第11页
第11页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第12页
第12页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第13页
第13页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第14页
第14页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第15页
第15页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第16页
第16页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第17页
第17页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第18页
第18页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第19页
第19页 / 共146页
计算机组织与结构课件第4章存储系统组织与结构.ppt_第20页
第20页 / 共146页
亲,该文档总共146页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机组织与结构课件第4章存储系统组织与结构.ppt

《计算机组织与结构课件第4章存储系统组织与结构.ppt》由会员分享,可在线阅读,更多相关《计算机组织与结构课件第4章存储系统组织与结构.ppt(146页珍藏版)》请在冰点文库上搜索。

计算机组织与结构课件第4章存储系统组织与结构.ppt

第4章存储系统组织与结构,本章结构,4.1存储系统概述,存储器的组织存储器的分类存储器的分层结构,1.存储器的组织,从物理上讲,存储器是由具有一定记忆功能的物理器件构成的。

从逻辑上讲,存储器可以看成是由一个个存储单元构成的连续的地址空间。

如图4-1是存储器的逻辑组织结构图。

计算机CPU对存储器的操作主要有两种:

一是读,二是写。

所谓“读”,是指CPU将某个指定的存储单元的内容从存储器中取出,送入CPU或其它部件中处理;所谓“写”,是指CPU将其它某个部件中的数据写入到指定的存储单元。

CPU对存储器的读、写操作统称为CPU访存操作。

一般来讲,CPU与存储器之间的物理连接主要包括三组信号线:

地址线、数据线和控制线,如图4-2示。

CPU对存储器的读操作过程如下:

要访问的存储单元地址ARAR内容送地址总线CPU发出读命令READ存储单元内容读出至数据总线数据总线DR,CPU对存储器的写操作过程如下:

要访问的存储单元地址AR要写入的数据DRAR内容送地址总线DR内容送数据总线发出写命令WRITEDR中的内容写入存储单元,2.存储器的分类,按照存储器在计算机中的作用划分,主要包括计算机主存、计算机辅存和高速缓存。

主存(Memory)又称为计算机内存,就是冯诺依曼结构中的存储器,用于存储要执行的程序和处理的数据辅存(Storage)又称为计算机外存,在现代冯诺依曼机器中,程序在执行之前是以文件的方式存储在外存中,当要运行某程序时,由操作系统将该程序从外存调入内存中;高速缓存(Cache)是一种小容量、高速度的存储器,目前,在计算机的主板和CPU中均设置了高速缓存,设置高速缓存的目的是利用程序的局部性原理实现计算机的存储层次,提高CPU的访存速度,以匹配CPU和主存之间在速度上的差异。

按照存储器所使用的物理存储介质或材料划分,目前主流存储器主要有三种:

半导体存储器;磁介质存储器;光存储器。

在现代计算机中,半导体存储器主要用作计算机的主存,而磁介质存储器和光存储器则用作计算机辅存。

按照存储器的读写功能划分,主要有两种:

一是随机存取存储器RAM,可以对存储单元按地址随机存取;二是只读存储器ROM,在正常工作条件下,对单元内容只可读不可写。

RAM和ROM均属于半导体存储器,是构成计算机主存的主要存储介质,而其中RAM在计算机中用于存储操作系统的常驻内存部分和用户程序,ROM则用于存储操作系统的内核。

存储器还有易失性和非易失性之分。

所谓易失性是指写入存储器中的内容在通电情况下能够保存,一掉电则全部丢失;非易失性则是指写入存储器中的内容在不通电情况下仍然能够保存。

将以上类型的存储器总结如下图4-4所示。

知识拓展:

FlashMemory,Flashmemory称为闪速存储器(简称闪存),是在EPROM的基础上发展起来的一种新型半导体存储器,于1983年推出,1988年逐渐商品化,进入90年代中后期开始逐步得到广泛应用。

从功能特性上讲,它可以归属于ROM,因为它具有非易失性的特点。

但从目前计算机的使用上讲,它是作为计算机外部存储器来使用的。

3.存储器的分层结构,用户对计算机存储器的要求:

容量大,速度快,成本低,为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前通常采用多级存储器体系结构。

存储器的层次中包括高速缓冲存储器Cache、主存和辅存,其中:

Cache是由小容量(通常为几十KB到几十MB)、高速的半导体存储器件构成;主存一般使用动态半导体存储器件构成,在速度上比Cache慢,但容量更大,价格相对更低,现代机器根据应用要求的不同通常将主存配置到几百MB到几十GB甚至更大;辅存又称海量存储器,通常由磁介质存储器构成,其特点是容量大,速度慢,价格最便宜。

Cache又可以进一步分为片上Cache和板上Cache。

片上Cache是指CPU内部配置的Cache,又称为一级Cache,板上Cache是指计算机主板上配置的Cache,又称为二级Cache。

一级Cache比二级Cache的容量更小,但速度更快。

在有些机器中,还进一步将指令和数据分开,分别存放在指令缓存和数据缓存中。

4.2半导体存储器,半导体存储器的种类半导体存储器的组成与工作原理主存储器的设计,1.半导体存储器的种类,随机存取存储器RAM按构成其单元电路的不同,又分为静态随机存取存储器(简称SRAM)和动态随机存取存储器(简称DRAM)。

这两种存储器相比较而言,SRAM速度更快,但片容量小,价格更贵,因此SRAM主要用作计算机的cache,而DRAM则用作计算机主存。

只读存储器ROM种类较多,主要包括传统的掩膜式ROM、一次可编程式ROM(PROM)、紫外线可擦除可编程式ROM(UVEPROM)和电可擦除可编程式ROM(EEPROM)。

前三种ROM在正常工作条件下只可读不可写,是真正意义上的只读存储器,而EEPROM实际上可读可写,但与RAM相比较,最大的不同是:

它们均是非易失性的。

掩膜式ROM是一种定制式ROM,生产厂家根据用户的需要专门制作掩膜版,将用户提交的程序或数据固定制作在芯片上。

这种芯片的特点是,一旦制作好,芯片中的内容就无法进行修改。

因此,这种芯片主要用于用户需大批量生产具有固定功能的ROM的场合使用,如在工业控制、家用电器等中均有应用。

一次可编程式PROM(ProgrammableROM)顾名思义是这种存储器可以进行一次写入或编程。

PROM出厂时是空片,芯片的内容为全0或全1,用户可以根据自己的需要将编制好的程序或数据一次写入,一旦写入内容就无法再进行修改。

PROM相对掩膜式ROM来说,使用更加灵活,用户可以根据自己的需要批量购买,也可以只购买几片。

紫外线可擦除可编程式UVEPROM(UVErasableProgrammableROM)是一种可重复改写的ROM,当用户要对芯片中的内容进行修改或重写时,需首先使用紫外线对芯片的擦除窗口进行照射(一般可放置在专门的紫外线光源下照射),经过一段时间后,芯片中的内容全部被擦除,成为空片,然后使用专门的编程器,将新的内容写入芯片中。

UVEPROM和编程器例图。

电可擦除可编程式EEPROM可以实现在板上直接擦除和改写。

由于EEPROM的灵活性使其得到广泛的应用。

半导体存储器的种类总结如下图4-8所示。

2.半导体存储器的组成与工作原理,半导体存储器是由一个个位单元电路组成,每个位单元电路存储一位二进制信息。

(1)静态RAM的组成及工作原理,静态RAM的位单元电路使用由三极管构成的触发器组成,利用触发器的状态存储0、1信息。

如图4-9是一个MOS型六管静态RAM单元电路的构成图。

如图4-10是一个静态RAM芯片的组成结构图。

(2)动态RAM的组成及工作原理,动态RAM的位单元电路与静态RAM相比有很大的不同,静态RAM的位单元电路是依靠由三极管构成的触发器的状态来存储0、1信息的,而动态RAM的位单元电路则是依靠三极管上的极电容的电荷的有无来存储0、1信息的。

如图4-11是一个单管动态RAM位单元电路。

(3)ROM的组成及工作原理,图4-12给出了一个掩膜式ROM组成示意图。

知识拓展:

新型动态存储器SDRAM和DDR,SDRAM全称为同步动态随机存取存储器(SynchronousDynamicRandomAccessMemory),是一种新型动态存储器。

传统的DRAM是异步工作的,CPU向存储器发送地址和控制信号后,需等待存储器进行内部操作(地址译码、读出信号放大、输出缓冲等),从而影响了系统性能。

而SDRAM与CPU之间是同步工作的,在进行存储器内部操作的同时,允许CPU做其他的事情,而无需空等待。

DDR全称为双倍速率同步动态随机存取存储器,即DDRSDRAM(DoubleDateRateSynchronousDynamicRandomAccessMemory),是一种在SDRAM基础上发展起来的具有双数据速率的新型动态存储器,由三星公司于1996年提出,并得到了一些主要芯片组厂商的支持。

SDRAM是在每一个时钟周期的时钟的上升沿进行一次数据传输;而DDR则是在每一个时钟周期内传输两次数据,即分别在时钟的上升沿和下降沿各传输一次数据,因此称为双倍速率同步动态随机存取存储器。

DDR2、DDR3、DDR4,在同等核心频率下,DDR2的实际工作频率是DDR的两倍。

这得益于DDR2内存拥有两倍于标准DDR内存的4BIT预读取能力。

换句话说,虽然DDR2和DDR一样,都采用DDR2内存的频率了在时钟的上升延和下降延同时进行数据传输的基本方式,但DDR2拥有两倍于DDR的预读取系统命令数据的能力。

DDR3DDR4,3.主存储器的设计,半导体存储器是构成现代计算机主存储器的主要存储介质,在进行计算机主存储器设计时,主要要考虑以下几方面的因素:

存储器芯片的选择,半导体存储器芯片种类繁多,在选择存储器芯片构成机器主存储器时,应根据需要合理选择。

CPU与存储器的速度匹配,机器的性能是由多方面的因素决定的,其中CPU访存速度是影响机器性能的关键因素之一,高性能CPU需要高速的存储器相匹配。

存储器与CPU的信号连接,主要包括数据信号线、地址信号线和控制信号线的连接等。

(1)半导体存储器芯片,半导体存储器芯片的性能主要体现在两个方面:

一是芯片的容量,二是芯片的存取速度。

存储器芯片的容量可以表征为以下形式:

容量字数位数其中,字数表示存储器芯片所具有的字单元数,而位数则表示每一个字单元所具有的位单元数。

半导体存储器芯片是通过引出脚与外部连接的。

引出脚主要包括四类:

数据引脚、地址引脚、控制引脚和电源及接地引脚。

图4-13(a)、(b)、(c)分别给出的是三种芯片256K位的SRAM、16M位的DRAM和8M位的EPROM的引脚图。

引脚功能说明。

在有些场合,为突出芯片的引脚功能,也常常给出它们的引脚符号图。

静态RAM芯片2114和动态RAM芯片2116的引脚符号图如图4-14所示。

(2)半导体存储器读写周期,存储器芯片在出厂时,其存取速度就已经确定,厂家在对芯片的有关技术说明中会给出其存取速度的相关技术参数,这一技术参数主要是通过存储器的读写周期(又称为存储周期)来反映的,而读写周期是通过波形图(又称时序图)来体现的。

2114的读周期波形图,2114的写周期波形图,在进行机器硬件系统设计时,一方面要保证逻辑电路设计的正确性,另一方面还要保证时序设计的正确性,两者缺一不可。

(3)半导体存储器与CPU的连接,在构成计算机主存储器时,还需要根据机器容量的要求和所选用的半导体存储器芯片容量的情况进行综合设计。

当单片存储器芯片的容量不能直接满足主存储器容量的要求时,需要选择多片进行容量扩展连接,以构成主存储器模块。

下面我们分三种情况介绍存储器的容量扩展连接。

(1)位扩展连接设主存储器的容量为MN位,而选用的存储器芯片的容量为Mn位。

具体连接方法是:

所有芯片的地址线A对应连接在一起;所有芯片的片选信号线CE对应连接在一起;所有芯片的读写WE线对应连接在一起;每个芯片的数据线各自单独引出。

【例4.1】使用一种64M4位的存储器芯片构成64M16的主存储器,并与一个16位的CPU连接。

解:

64M4位的存储器芯片构成64M16的主存储器需要的芯片数为16/44片,并进行位扩展连接,如下图4-18所示。

(2)字扩展连接字扩展连接的情况是:

设主存储器的容量为MN位,而选用的存储器芯片的容量为mN位。

具体连接方法是:

所有芯片的地址线A与CPU的低位对应地址线连接在一起;所有芯片的数据线对应连接在一起;所有芯片的读写WE线对应连接在一起;每个芯片的片选信号线CE各自单独引出,并由CPU剩余的部分高位地址线产生。

【例4.2】使用一种16M16位的存储器芯片构成64M16的主存储器,并与一个16位的CPU连接。

分析:

单个16M16位芯片内有16M个存储单元,16M=224,需要24位二进制地址码片内寻址;每个单元可以存储16位二进制数,与主存的字长一致。

而要构造的主存容量为64M16位,要64M个存储单元,因此要用多个16M16位芯片进行存储单元数的扩展,即字扩展。

(),解

(1),

(2)地址空间的划分,第1组地址,第2组地址,第3组地址,第4组地址,地址译码,译码(Decode)将某个特定的编码输入翻译为有效输出的过程存储器译码电路可编程逻辑器件PLD译码器门电路组合,(3)与CPU的连接,(3)字位扩展连接字位扩展连接的情况是:

设主存储器的容量为MN位,而选用的存储器芯片的容量为mn位,其中,M、N分别是m、n的整数倍。

在这种情况下,单片存储器芯片的字单元数和字单元的位数均不能满足主存储器的要求。

这时,需要进行一种字位扩展连接,使用(M/m)(N/n)个芯片连接起来,连接方法就是将以上两种情况结合起来考虑。

4.3交叉存储技术,1.交叉存储技术的基本思想2.交叉存储器模块的组织3.交叉存储器的组成,1.交叉存储技术的基本思想,先来看一个生活中的例子。

假设某一产品需要两道生产工序完成,分别是工序1和工序2,且两道工序采用流水作业的方式进行。

现在安排两个工人A、B分别做工序1和工序2,其中工人A完成工序1的时间是t,而工人B完成工序2的时间是3t。

那么,在这种情况下,流水线将每隔3t的时间生产出一个该产品。

现在我们改变一下流水模式,增加2个工作速度与B相同的工人C、D都来做工序2,这样就是工人A一人做工序1,而工人B、C、D三人同时做工序2。

在4个工人都满负荷工作的情况下,流水线将每隔t的时间生产出一个该产品。

我们可以吸取这一思想,应用到计算机CPU与存储系统的配置上。

由于CPU的速度远比存储器的速度快,当采用单CPU和单存储器模块时,CPU每进行一次访存操作,都需要等待存储器的操作,且一个访存周期只能从单个的存储器模块中存取一个字单元。

如果我们多配置几个存储器模块,让CPU与多模块的存储器之间采用以上后一种流水模式进行工作,那么,就可以实现一个访存周期能从多个的存储器模块中存取多个字单元。

2.交叉存储器模块的组织,为了实现CPU在一个访存周期能从多个的存储器模块中存取多个字单元的目标,我们还需要对存储器模块的组织进行合理的配置。

假设存储器共有32个字单元,分为4个模块,每个模块有8个字单元。

我们考察以下两种编址方式:

一是每个模块仍然像传统存储器一样进行线性编址,即模块1的单元地址是07,模块2的单元地址是815,模块3的单元地址是1623,模块4的单元地址是2431;二是采用交叉编址的方式,即模块间的单元地址是连续的,而模块内的单元地址是不连续的。

(a)线性方式(b)交叉方式,在采用图(a)的线性方式编址的情况下,当CPU要同时访问多个连续的存储单元时,这些单元分布在同一模块的概率是最大的。

例如CPU在某一访存周期需向存储器读4个字单元的数据,这4个字单元地址是连续的,那么它们只有可能分布在一个或两个存储模块中。

由于对于每个存储模块来说,一个访存周期只能读写一个字单元,因此,采用这种线性编址方式并不能使CPU在一个访存周期存取多个字单元。

而采用图(b)的交叉编址方式则不同,当CPU要同时访问多个连续的存储单元时,由于交叉编址的特殊性,使得这些单元会分布在不同模块。

例如CPU在某一访存周期需向存储器读4个字单元的数据,这4个字单元地址是连续的,那么它们会分别分布在四个存储模块中。

由于每个存储模块均能独立进行读写操作,这就使得CPU在一个访存周期能够同时存取多个字单元。

在交叉编址情况下:

由于数据总线一次只能容纳一个字单元数据,因此,这多个存储模块必须采取在时间上交错开来的方式与CPU通过数据总线交换数据。

理想情况下,若CPU的总线操作速度是存储器的读写速度的n倍,则应配置不少于n个存储模块与CPU相匹配。

定量分析:

假设每个模块的字单元长度等于数据总线宽度,存储器模块的存储周期为T,CPU的总线传送周期为(即CPU从总线读取一个字单元或向总线写一个字单元的时间为),存储器的交叉模块数为m,为了实现流水线方式存取,应当满足:

Tm,CPU与单模块存储器和采用交叉编址方式的多模块存储器之间的数据存取示意图。

(a)单模块存储器(b)多模块交叉存储器,从图中可以看出,CPU向单模块存储器存取n个数据所需的总时间为nT,采用的是完全顺序存取方式;而CPU向多模块交叉存储器存取n个数据所需的总时间为T+(n-1),采用的是在时间上交错开来的并行存取方式。

3.交叉存储器的组成,在多模块交叉存储系统中,为保证每个模块均能够进行独立的读写操作,需为每个存储模块配置独立的读写电路,并由一个存储器控制部件进行顺序控制。

如图4-25是一个四模块交叉存储器的组成结构图。

4.4高速缓冲存储器,Cache实现的基本原理主存与Cache的地址映射替换算法Cache的写策略Cache性能分析Cache举例:

Pentium4的Cache组织,1.Cache实现的基本原理,程序的局部性原理:

对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,CPU对一个程序指令的访问往往集中在一个较小的存储器逻辑地址空间范围内,也就是说,CPU取指令和取数据的操作具有空间上局部分布的倾向,这种现象就称为程序访问的局部性。

Cache的基本思想,基于程序的局部性原理,在CPU与主存之间设置一个小容量的高速缓冲存储器Cache,当一个程序调入主存运行时,将该程序当前要执行的指令及其后将执行的一部分指令同时调入Cache中,CPU每次首先从Cache中取指令执行,根据程序的局部性原理,CPU大部分情况下可以在Cache中取到指令(称为命中),只要命中率足够的高,就可以使得CPU访存的速度接近于访Cache的速度。

Cache的工作原理,Cache工作原理图,CPU的访存地址(主存地址)首先通过一个主存-Cache的地址映射机构转换成一个访Cache的地址。

如果CPU要访问的这一单元内容已经在Cache中,则本次访Cache命中,于是从Cache中将该单元的内容读出,并送CPU;若CPU要访问的这一单元不在Cache中,则本次访Cache不命中,于是使用CPU的访存地址直接访问主存,从主存中将该单元的内容读出,并送CPU,从而完成了一次CPU的访存操作。

在Cache存储器组织中,Cache和主存都按块进行组织,每一个块由若干个字单元组成,且主存的块和Cache的块大小相同。

在不命中的情况下,CPU访存结束后,还需将本次所访问的单元所在主存的块的全部单元内容调入Cache中。

若当前Cache已满,则需将Cache中的一个旧块替换出来。

2.主存与Cache的地址映射,CPU每次访存时,给出的是一个主存地址。

但在Cache-主存层次中,CPU首先访问的是Cache,并不是主存。

为此,需要一种机制将CPU的访主存地址转换成访Cache地址。

主存地址与Cache地址之间的转换是与主存块与Cache块之间的映射关系紧密联系的。

主要有三种地址映射方式,分别为全相联映射、直接相联映射和组相联映射。

全相联映射,全相联映射是指主存中任一块都可以映射到Cache中任一块的方式。

例如,设Cache共有2C块,主存共有2M块,当主存的某一块j需调进Cache中时,它可以存入Cache的块0、块1、块i、或块2C-1的任意一块上。

地址转换过程:

全相联映射方式的优点是Cache的空间利用率高,但缺点是相联存储器庞大,比较电路复杂,因此只适合于小容量的Cache之用。

直接相联映射,直接相联映射方式是指主存的某块j只能映射到满足如下特定关系的Cache块i中:

ijmod2C,地址转换过程:

直接相联映射方式的优点是比较电路最简单,但缺点是Cache块冲突率较高,从而降低了Cache的利用率。

组相联映射,将Cache分成2u组,每组包含2v块。

主存的块与Cache的组之间采用直接相联映射,而与组内的各块则采用全相联映射。

也就是说,主存的某块只能映射到Cache的特定组中的任意一块。

主存的某块j与Cache的组k之间满足如下关系:

kjmod2u,地址转换过程:

组相联映射法将全相联映射和直接相联映射两种方法的优点很好的结合。

其实,全相联映射和直接相联映射可以看成是组相联映射的两个极端情况。

若u0,vC,则Cache只包含1组,此即全相联映射方式;若uC,v0,则组内的块数等于1,此即直接相联映射。

在实际应用中,相联映射方式每组的块数一般取值较小,典型值为2、4、8、16等,分别称为两路组相联、四路组相联等。

这样一方面使得比较器的规模较小,实现较容易;另一方面,Cache每组增加的可映射块数可有效减少冲突,提高Cache访问的命中率。

3.替换算法,当CPU访Cache发生不命中的情况时,就直接访主存,并同时将所访问单元所在的一个主存块一并调入Cache中。

如果此时该主存块在Cache中的所有特定位置已被其它块所占用,则需进行替换,即从特定位置中选择一个老的主存块从Cache中调出,将新的主存块调入Cache。

随机法:

每次随机选择一个主存块替换出去。

这种算法不考虑各块的使用情况,在可替换特定块数少的情况下容易造成将正需使用的块替换出去,从而使Cache的命中率会有所降低。

先进先出(FIFO)法每次将最先调入Cache的主存块替换出去。

该算法记录每个块的调入时间,当要发生替换时,从所有可能被替换的主存块中选择一个最先调入Cache的块替换出去。

该算法实现较容易,系统开销较小,但并不十分符合主存块在Cache中的使用规律,有可能造成正需使用的块被调出,从而影响Cache的命中率。

最不经常使用(LFU)算法每次将Cache中访问最少的块替换出去。

这种算法为每个块设置一个计算器,从0开始计数,每被命中一次计数器增1。

当需要替换时,从所有可能被替换的主存块中选择一个计数器值最小的块(最不经常使用)替换出去。

这种算法将计数周期限定在对这些特定块两次替换之间的间隔时间内,因而不能严格反映近期块使用的情况。

近期最少使用(LRU)算法每次将近期最少使用的主存块替换出去。

该算法在实现时,为每个调入Cache的主存块设置一个计数器,一个块每命中一次,其计数器清零,同时将其它块的计数器增1。

当需要替换时,从所有可能被替换的主存块中选择一个计数器值最大的块(该块近期最少使用)替换出去。

这种算法符合Cache工作原理,可使Cache具有较高的命中率。

4.Cache的写策略,Cache中的内容可以看成是主存的一个子集,即每次总是将主存的部分块的内容调入Cache中。

CPU对Cache的读操作是不会影响Cache的内容的,也就不会影响Cache与主存内容的一致性。

但写就不一样了,当CPU对Cache的某块进行了一次写操作,但对主存该块的内容却没有同时进行写,则会造成主存和Cache内容的不一致。

因此,对Cache的写需要采取某种策略或方法。

全写法(write-through)又称写直达法,CPU每次在写Cache命中时,在写Cache的同时,也对相应的主存块进行写入;当写Cache未命中时,则直接写主存。

全写法是写Cache和写主存同步进行,其优点是Cache和主存的内容能保持高度的一致性,缺点是Cache对CPU的写操作起不到高速缓存的作用,失去了Cache的功效。

统计表明,一般程序中的写操作占到了存储器操作的15左右,对于一些特殊应用的程序,其写操作比例会更高。

在这种情况下,采用全写法实现写操作会影响Cache的效率。

写回法(write-back)CPU每次在写Cache命中时,只写Cache,暂不写主存,只有当某被写命中的块从Cache中替换出去时才写回主存。

这种方法使Cache在CPU的写操作中也同样能发挥高速缓存的作用,但却存在主存与Cache内容不一致的隐患。

写回法在实现时,为每个Cache块设置一个标志位,以反映Cache的某块是否被修改过。

当某块被替换出去时,根据标志位决定在替换的同时是否进行回写操作。

未被修改过的块在替换出去时,无需进行回写,只有被

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2