1 / 14
文档名称:

共享存储器Cache一致性中监听协议 (Snooping protocol)的实现和优化.doc

格式:doc   大小:373KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

共享存储器Cache一致性中监听协议 (Snooping protocol)的实现和优化.doc

上传人:lizhencai0001 2018/7/20 文件大小:373 KB

下载得到文件列表

共享存储器Cache一致性中监听协议 (Snooping protocol)的实现和优化.doc

文档介绍

文档介绍:共享存储器Cache一致性中监听协议(Snooping protocol)的实现和优化
摘要:
本文首先主要对共享存储器Cache一致性中Snooping协议的实现和优化进行了详细的介绍和分析。
在前言部分介绍了多处理器体系结构,对这种体系的概念进行介绍。然后介绍了多处理器体系结构中存储器的组织结构,引出了本文中介绍的共享存储器结构。在第一章中,我们首先介绍了Snooping协议的基本形式和实现方法。并在其基础上阐述了广泛使用的MESI协议的实现策略。第二章是本文的主要内容,在这一章中,我们介绍了近几年来的最新论文中提出的4种监听协议的优化方法,并对其原理和实现进行了详细的分析和介绍。在最有一章中,我们对上面的协议的优化方法进行了综合分析,得到了这些方法的共同特点和各自得特性,并对他们进行了对比和分析。
本文主要介绍和分析监听协议的实现和它的几个优化和变种:基本实现技术、MESI协议、RegionScout Filters、P/C模型下的优化、广播过滤法、猜测技术。
前言:
随着单处理器系统结构的发展,开发ILP(指令级并行)的空间正在减少,再加上单处理器的发热量不断升高以及人们对电源关注程度的增加,单处理器发展的速度正在逐步减慢,这导致了计算机体系结的新的发展——多处理器体系结构的蓬勃发展。
在多处理器并行系统结构中人们根据多处理器种限制要求最多的单元中的指令所调用的数据流和指令流的并行度,把所有计算机归为四类:
单指令流,单数据流(SISD):单处理器。
单指令流,多数据流(SIMD):同一条指令被多个使用不同数据流的多处理器执行。SIMD计算机通过将相同的操作以并行的方式应用于数据的各个项来实现数据级别的并行。每个处理器有自己的数据存储器,但是系统中有唯一的指令存储器和控制处理器用来获取指令和分配指令。
多指令流,单数据流(MISD):只是中理论模型,目前好像还没有这种类型的商用机器。
多指令流,多数据流(MIMD): 每个处理器有自己的指令并对自己的数据惊醒处理。MIMD计算机一般是实现线程级别的并行处理,因为多线程之间的数据以来较少,可并行度高。
一般来说MIMD进行的线程级别的并行要比数据级别上的并行更加灵活,所以商业用途广发。现有的MIMD机器根据处理器的个数可以分为两类,这两类机器的存储器组织方式和互联策略也不一样。由于处理器的构成方式会随着时间而改变,因此,更具处理器组织方式而不是处理器构成方式来区分多处理器的种类比较合适。
这两种类型分别是:
集中共享存储器系统结构。只有一个单一的存储器,每个处理器有自己的一级或多极cache来缓存存储器中的数据完成数据流的并行。但是这里需要对cache的一致性给与保证。
分布式存储器系统结构。这种结构中,多处理器的存储器在物理上是分布的。
在共享存储器中,所有的数据都存储在共享的一个存储器中,每个处理器有自己的cache来缓存数据,这就要求我们保证各个cache中的数据的一致性。目前广泛采用的两种保证一致性的协议是:
目录式:每个cache的共享状态存放在一个叫“目录”的地方。
监听式:每个cache保留共享状态的副本。通过广播和监听来实现一致性。
Snooping Protocol协议介绍

监听一致性协议一般通过每个节点的有限状态控制器来实现。这个控制器对来自处理器或总线的请求做出响应。通过响应每个消息,按照协议对数据的共享状态进行修改,保证cache中数据的一致性。这种消息的发送和接收不仅仅局限于总线结构,对于任何一种互联网络,只要它支持消息的广播,都可以用来实现监听。
最简单的协议有三个中状态:无效、共享和修改。共享状态是指块是有可能被共享的;修改状态是指块在cache中已经被更新。修改状态表示该块已经被独占。
下表显示了该协议的各种cache请求与操作。
请求
来源
地址Cache块状态
Cache操作类型
功能和解释
读命中
处理器
共享或修改
一般命中
读Cache中的数据
读缺失
处理器
无效
一般缺失
在总线上发送缺失信息
读缺失
处理器
共享
替换
地址冲突缺失:在总线上发送读缺失信息
读缺失
处理器
修改
替换
地址冲突缺失:写回阻塞,在总线上发读缺失消息
写命中
处理器
修改
一般命中
在cache中写数据
写命中
处理器
共享
一致
在总线上发送写数据
写缺失
处理器
无效
一般缺失
在总线上发送写数据
写缺失
处理器
共享
替换
地址冲突缺失:在总线上发送读缺失信息
写缺失
处理器
修改
替换
地址冲突缺失:写回阻塞,在总线上发读缺失消息
读缺失
总线
共享
无动