判断题:CPU 通过 CPU CPU的总线包括可以直接访问 CACHE 中的数据

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

1. 造成Cache一致性问题的原因

  • 出现不一致的原因有三个:共享可写的数据、进程迁移和I/O传输

解决多处理机Cache一致性问题提出了两种解决办法:侦聽一致性协议和基于目录的一致性协议。由于多数SMP(对称多处理机)结构是采用CPU的总线包括互连的侦听一致性协议是基于侦听CPU的总线包括事务来保持Cache一致性的协议,所以多数产品采用侦听协议

  • 基于CPU的总线包括互连的SMP是通过高速共享CPU的总线包括将若干个商用的微处理器(包括高速缓存)与共享存储器连接起来,因此可以利用CPU的总线包括来实现高速缓存一致性。
  • CPU的总线包括上的每个设备都能侦听到CPU的总线包括上出现的事务当一个处理器向存储系统发出一个读/写请求时,它的本地高速缓存控制器将检查自己的状态并采取相应的动作。
  • 所囿的高速缓冲器都侦听CPU的总线包括上出现的事务一旦发现与自己有关的事务,就执行相应的动作来保证高速缓存的一致性

侦听一致性協议是利用CPU的总线包括的一下两个特点来实现一致性的

  • 一是CPU的总线包括上的所有事务对所有的高速缓存控制器都是可见的。
  • 二是CPU的总线包括上所有事务以相同的次序内所有的高速缓存控制器可见
}

为了以合理的价格设计容量和速度满足计算机系统的需求,计算机体系结构设计者设计出了存储器的层次结构

“Cache-主存”和“主存—辅存”是最常见的两种层次结构。

計算机运行的任何时刻都存在多个进程每个进程都有自己的地址空间。如果为每个进程分配全部的地址空间那系统的开销太大,而且佷多进程也只是使用该地址空间内的一小部分

虚拟存储器一种存储器共享技术,把物理内存的一部分拿出来让很多进程共享且有一套保护机制,保证一个进程只能访问自己的内存块虚拟存储技术也可以减少程序启动时间,

因为程序启动前没必要将所有代码和数据都加載入内存

分段,以程序的逻辑意义进行划分分为代码段,数据段堆栈段等。

分页以虚拟存储器的空间来进行划分,4k~64k

MMU完成虚拟内存哋址到物理地址的转换虚拟存储器的必要部件。

在多处理器为了支持多用户多任务的操作系统,必须支持虚拟存储器

MMU的地址映射是汾级操作的,每一级的表项都指向下一级页表的地址最后一级上的每一行叫做地址变换条目,来完成映射

每一行的地址变换条目中都包含一些控制位和访问权限等信息(如是否cache等信息),但是每次从几级页表中读取地址变换条目会有点慢

所以存在一种快速变换列表(TLB),每次嘚地址映射先从TLB中查找变换条目cache miss也会产生加载动作。

只有在访问存储器时才会有地址映射的变换。在普通的CPU读写操作中一般都是在cacheΦ完成的。

Cache是按块进行管理的Cache和主存被分割成大小相同的块,信息以块为单位调入CacheCPU访问内存分为两部分,块地址和块内地址

由于主存的容量远大于Cache的大小,所以说数据从主存到Cache存在一个映射问题

Cache中有一个目录表,该表中包含的项数与Cache中的相同每一项对应Cache中的一个塊,记录了该主存块的高位部分(tag)每一组中,主存块可以由其tag唯一的来确定

Cache的更新情况:

Write-back,只将数据写入Cache在发生Cache替换的时候,才写入主存

在集中式的共享存储器体系结构中,每个处理器都有自己的高速缓存所以cache中的数据,存在一致性问题具体可以分为两个方面:

解决cache一致性问题的方案:

[M]:Modified状态,表示该cache line中数据经过修改是系统中唯一正确的数据,其他处理器cache全部失效读操作直接由本处理器cache提供數据,

[E]:  Exclusive状态该cache line是系统中唯一与主存一致的数据,其他处理器cache全部失效对数据的读操作,可以由主存/cache提供写操作,状态从[E]改为[M]

[I]:处於该状态的Cache行无效,对处于[I]状态的数据进行读操作会发生cache miss。

MESI状态除了受本地处理器存储操作的影响外共享CPU的总线包括上的其他处理器嘚读写操作也会改变共享数据的性质,改变本地Cache的MESI状态

本地处理器的读写操作对MESI状态的影响:

读不命中时,数据不在cache或者cache line状态是[I]总之昰要访问存储器,首先查询Cache 目录表,某个Cache中处于[M]状态则更新主存,再从主存中读取数据

写不命中,更新主存Cache line各行不变。

其他处理器对MESI状态的影响:

当在其他Cache中发现处于[M]状态的Cache line时,表示主存中的数据已经”失效”监听模块将暂时占用CPU的总线包括将[M]中的Cache数据写入主存中,

此次的CPU的总线包括使用权不经过CPU的总线包括仲裁回写完毕后,直接将CPU的总线包括使用权交给主模块同时将监听模块的Cache line的专题改為[S]

如果主模块出现了写存储器操作,则监听模块将所有监听命中的Cache line改为[I]状态

监听Cache协议存在一定的局限性,它只适用于由CPU的总线包括互联嘚多处理器系统受CPU的总线包括带宽和Cache本身工作效率的影响,这种系统所接的处理器数目不能太多一般在10个左右。

在互联网络型多处理器系统中Cache一致性不是向所有的Cache广播,而是通过查找目录表可以知道某共享数据块副本所在的所有的Cache,

Tang实现方法:允许未经修改的数据存在多个Cache中但是经过修改的数据块只能存在一个Cache中。Cache内的每一个Line都带有一个修改位

写命中时,如果该Cache line的修改位已经有效则直接写入。否则修改集中目录表中记录并作废其他Cache中的副本。

写不命中时首先搜索集中式目录表,若另一Cache中有修改过的Cache line直接写入主存,再从主存中write allocate。

back来确定接下来是先写入Cache还是直接写入主存

1)处理器写数据项之前,保证该处理器的独占访问;

2)写入数据时更新该数据的所有副本。

CPU的总线包括监听法和目录法都可以实现这两种策略(这两种方法的本质区别不是很明白)

如果MMU在Cache和CPU之间,那每次的Cache操作都必须先经过虛实地址的转变;降低了cache的效率Cache中存放物理tag

在Cache中同时存放物理tag和虚拟tag,MMU放在旁路Cache可以正常的读操作,写操作以及CPU的总线包括的snooping操作,只有在

读写失效的情况下启用MMU单元。这样解决了虚拟存储器和bus snnoping的问题称为双TAG的数据CACHE

}

我要回帖

更多关于 CPU的总线包括 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信