CACHE方案作业

发布 2022-07-17 17:21:28 阅读 5734

高速缓存cache是位于cpu和主存储器之间规模较小、存取速度快捷的静态存储器。cache一般由高速ram (例如双极型存储器或静态mos存储器)构成,采用的映射方式有直接映像方式、全相联映像和组相联映像方式。可以使程序和数据共享一个cache,也可以按程序和数据分别设置。

还可以把cache存储器分成若干个体,采用多体n路相联映像。

cache在cpu中起着举足轻重的作用,借助cache, cpu可以以较快的速度存取静态存储器中的数据,而且系统成本上升不大。它是微机系统在不大幅度增加成本的前提下,使性能提升的一个非常有效的技术。

全新的intel advanced smart cache有效加强多核心架构的效率,传统的双核心设计每个独立的核心都有自己的l2 cache,但intel core微架构则是通过核心内部的shared bus router共用相同的l2 cache,当cpu 1运算完毕后把结果存在l2 cache时,cpu 0便可通过shared bus router读取cpu 1放在共用l2 cache上资料,大幅减低读取上的延迟并减少使用fsb带宽,同时加入l2 & dcu data pre-fetchers及deeper write output缓冲存储器,大幅增加了cache的命中率。

cache会与内存建立一种索引方式,处理器核心向cache发出目标数据的地址,然后开始在cache的标签部分搜索目标地址,如果目标地址存在,则表示cpu命中所要的数据,反之则未命中。如果未命中,则cache会通过系统总线在内存中寻址相应的数据,并且把数据写入到cache中。在寻址的方式相同的前提下,如果cache容量太大,就会导致处理器花费大量的时间比较cache中的地址。

就算寻址方式可以避免这种现象,也会以牺牲cache的命中率为代价。

intel 高速缓存结构

为了弥补cpu与内存之间的差距,从80486开始,在cpu内部采用了cache cpu内部的cache由硬件进行控制运行,对操作系统和应用软件都是透明的。在80486中,数据和指令都统一存储在同一个高速缓存中,因此也称为“统一的写通式高速缓存”。“写通”的含义是:

对高速缓存单元内任何数据的修改,同时必须写入到内存中,以保持高速缓存与内存数据的一致性。这个过程不需要操作系统或应用软件干预。80486只有一级高速缓存。

pentium 高速缓存结构

1、pentium 的存储器系统。

微计算机的内存储器系统一般分为三个层次,处理器内部的第一级cache即l1 cache,置于处理器内部或外部的第二级cache,或称为l2 cache以及主存储器dram。这三个层次又是怎样组织的呢?常用的cache结构通常有两种,通视(look-through)结构和旁视(look-aside)结构。

look-through结构设计了处理器局部总线和系统总线以及存储器总线之间的隔离措施,将cache控制器置于处理器局部总线和系统总线以及存储器总线之间。而look-aside结构则没有隔离处理器局部总线和系统以及存储器总线的措施。处理器直接与系统总线和dram相连,cache控制器则被安置在总线的一旁。

在look-through的结构中,当处理器需要访问存储器,首先进行cache目录查找,看cache中是否存在所需存储器信息的副本。如果cache命中,处理器将以零等待状态访问内部cache,处理器发出的存储器请求信息不会被传送到主存储器和系统总线上。所以减少了系统总线和存储器总线的使用时间,允许并发操作的发生。

两个总线主设备在同一个系统中可以同时运行是look-through cache结构的主要优点。处理器能够以零等待态访问它的本地cache(look-through),而另一个总线主,比如dma或其它智能控制器,可以利用系统总线或存储器总线访问存储器,两种操作相互不会发生干扰,可以同时进行。look-through结构还可以支持多处理器系统。

因此look-through cache结构的性能优于look-aside结构。这种结构的不足是,在cache不命中的情况下,cache目录查找延迟了请求存储器访问的时间。另外由于结构复杂,设计制造的难度使得**高于look-aside cache结构。

在采用look-aside cache结构的系统里,一旦处理器启动一个总线周期,系统中的所有设备都要检测这个总线地址,就象系统中没有cache那样。这种结构虽然简单廉价,但系统总线占用率高,多个总线主设备无法并发工作。

pentium的存储器系统多采用look-through cache结构。pentium微处理器内部集成了8k字节的**cache和8k字节的数据cache,称之为l1级cache。处理器通过l2级cache控制器连接l2级cache。

系统的主存dram是经过双端口的dram控制器连接在l2 cache控制器上的,l2 cache控制器与pentium处理器直接相连,起到了隔离处理器局部总线和系统以及存储器总线的作用。在pentium系列的微机系统当中,芯片组(chip set)北桥和南桥分别连接了系统的存储器和系统总线并对它们进行控制,l2 cache和l2 cache控制器是北桥的一部分。微处理器和外部环境连接的信号分为6组:

- 地址信号;

- 数据信号;

- 总线周期控制信号;

- 监听控制信号;

- l2 cache控制信号;

- 总线主控制信号。

处理器访问储存器的过程大致是这样的,首先查找处理器内部的l1 cache,看其中是否存在目标存储器单元的备份,当发现所要访问的数据不在l1时,便产生对片外的存储器访问,此时,l2 cache控制器将cpu发出的地址、数据与控制信号传递到l2 cache控制器与存储器连接的总线上,先进行对l2 cache的访问。如果发现要访问的数据仍然不在l2中,才启动对主存储器dram的访问。不管在那一级存储器中找到了要寻址的单元,对目标访问以后,都要设置和修改维护数据一致性的mesi标志。

2、pentium cache 组织原则。

**cache和数据cache采用了二路组相联的结构。我们称这两个高速缓存存储体为0路和1路。0路和1路各包含128个cache行,并且都拥有一个由128个目录项组成的目录与它相关联,cache行和目录项一一对应。

cache的目录有三个可以同步访问的端口。其中两个端口分别对应于流水线u和v,它们支持对两路组兼容的访问。另一个端口用于监听系统中其他处理器对存储器的操作。

每个cache行都包含32字节,如果是**cache,处理器每次从cache读取32个字节的数据,将它们送到预取队列。**cache是只读的,它只使用了mesi协议的一部分(s和i)。数据cache的结构和**cache基本相同,由于数据cache是可读写的,它使用了完全的mesi协议。

下面以数据cache为例对cache结构以及pentium 微处理器与存储器的关系进行讨论。

cache控制器把主存看成是由和cache路大小相同的页组成。pentium二路组相联cache的每一路是4k字节,这就意味着4gb的存储空间被分为1048576页,页号从0到1048575,每页大小都是4k字节。 从结构上,每个主存页也被看成与一路cache格式相同,每页具有128行(0~127),每行32字节。

每当从主存读出一行数据进行cache行替换的时候,数据总是被装在与主存页中行序号相同的cache行当中。主存的页面地址同时被记录在相同序号的目录项中。

从cache控制器的角度,也可以清楚地看出目录项和访问端口各部分的作用。在每一路cache中,每个目录项对应一个cache行。目录项包含20位的标记域、1位校验域和2位状态域。

标记域记录了装入cache行的数据**于哪个主存页,即主存页的地址(a31~a12)。这是记录cache数据与主存储器关系的唯一标志。一位的校验位在每次更新目录项时产生并写入。

两位状态位指出cache中的行所包含的信息的m、e、s、i状态。访问目录的端口包括三个部分,20位的标记域记录了目标存储器高位地址a31~a12,指出目标地址属于主存的哪一页;7位的行域记录了目标存储器次7位地址a11~a5,指出了目标地址是页中的哪一行,也就是数据可能存在于cache路中的哪一行;最低2位是双字域,指示了目标存储器a4~a2三位地址,指出所要访问的双字在行中的哪一排(bank),也就是cache行中的位置。

当流水线需要从存储器读数据(或向存储器写结果)时,便给出了要访问的存储器地址,令cache控制器通过目录端口在cache目录中查找,看cache中是否存在该存储单元的副本。cache控制器以行号为索引查找目录项。首先检查0路和1路索引指示的目录项状态位,如果某一路的状态位为(i),表示这一路cache行包含的是无效信息,那么就转向检查另一路的状态。

如果状态位指示该路cache行所包含的是合理信息,那么cache控制器就把内存地址的页号和目录项中标记域表示的页地址相比较。如果主存的页地址和某一个目录项标记域的地址匹配,就说明cache与此目录项相关的行中存放了这个要找的数据块。

如果主存页地址和任何一个标记域都不匹配,就产生了cache的不命中,cache控制器就要执行cache行的替换,请求总线单元从主存中读取所需要的数据,覆盖掉与主存行序号相同的2路cache行中的一行。pentium的cache控制器采用"最近最少使用替换算法",从2路的行中选择最近最少使用的那一行进行替换。一个128位的lru标志,每位对应2个序号相同的目录项。

lru标志位记录了2个同序号行中最近最少使用行所在路的序号。从存储器读出数据进行cache行替换的时候,根据lru位指示的路序号,用新数据替换最近最少使用的那一行。例如,对应于第5行的lru位为0,表示0路最近最少使用。

如果需要在cache中复制某一页存储器第5行的数据,那么就要将新数据填入0路的第5行。然后对lru位更新,第5行的最近最少使用位变为1,1路的第5行成为最近最少使用行。

数据更新以后,相关的目录项也要更新,要在标记域中记录源存储器的页号并修改mesi状态。

pentium cpu 有两个独立的一级高速缓存,一个为8kb的指令高速缓存(lii cache ),另一个为8kb的数据高速缓存(l1 cache)。允许两个高速缓存同时进行指令和数据地存取。为了保证高速缓存中数据的一致性,采用了高速缓存一致性协议(mesi)。

在pentium cpu一级高速缓存中,公共的64位内部总线给两个高速缓存输入数据或指令,每个高速缓存的行长为32个字节,适合于数据的突发传输,一次突发传输可以传送4个64位的数据。

指令高速缓存和数据高速缓存都是双路组相关的(第1路和第2路)。相关是指高速缓存的静态存储器(sram)和特征位(tag)存储区既是分割开的,又是相互联系的。每路分为128个组(0-127),每组分为:

指令高速缓存一致性位(m esi) 、指令特征位(tag)、指令高速缓存(sram)、数据高速缓存一致性位(mesi) 、数据特征位(tag)、数据高速缓存(sram)。

高处作业施工方案作业方案

焦作建业世和府项目 标段。高空作业施工方案。编制。审核。批准。施工单位 湖南大华建设工程 高空作业施工方案。工程概况 工程名称 焦作建业世和府项目 标段。建设地点 焦作市丰收路以北 文汇路以东。建设单位 焦作世和府置业 施工单位 湖南大华建设工程 建筑概述 ii标段1栋22层高层住宅 地上22层 地...

高处作业 交叉作业方案

一 工程概况。工程名称 建设单位 设计单位 监理单位 施工单位 工程地址 建筑面积 结构特征 二 工程的特殊情况。高处作业 交叉作业基本情况 按国家高处作业规范规定。2m以上为高处作业。本工程2m以上施工内容为脚手架 模板安拆 钢筋绑扎 混凝土浇筑 电气水暖安装 砌筑工程 装饰工程 外墙节能工程 屋...

高空作业作业方案

武汉神舟科技发展 在炼铁事业部二炼铁区域现场进行产销一体化网络施工,因工作需要,需进行高空作业 高于基础地面2米 为确保整个高空作业过程安全可控,特制订以下作业方案。一 工作内容 1 铺设光缆 自炼铁机房至烧结配料 烧结主控室 喷煤主控室 1 高炉主控室 2 高炉主控室 1 槽下主控室。2 槽下主控...