天天看点

CHI-F协议学习笔记-第一章-介绍-续

1.1 Cache一致性综述Coherence overview

硬件cache一致性允许系统组件间共享memory,而不需要软件维护缓存以保持一致性。

如果两个组件对同一存储器位置的写入可以被所有组件以相同的顺序观察到,则存储器区域是一致的。

1.1.1 一致性模型

图1-2显示了一个一致性系统,它包括三个请求器组件,每个组件都有一个本地缓存和一致性协议节点。该协议允许相同内存位置的缓存副本驻留在一个或多个请求程序组件的本地缓存中。

CHI-F协议学习笔记-第一章-介绍-续

Figure 1‑2 Example coherency model

一致性协议强制每当store发生在地址位置时,数据值的副本不超过一个。一致性协议确保所有请求者在任何给定地址位置观察到正确的数据值。在每个存储到一个位置后,其他请求者可以为自己的本地缓存获取数据的新副本,以允许存在多个缓存副本。

一个cache line定义为64byte对齐的memory区域,大小为64byte。所有一致性被维护的粒度都以cache line为单位。

主存只有在缓存不需要保持副本的时候才会被更新。协议不需要主存一直保持最新。

注:

尽管不需要更新主存,当缓存副本存在时是可以更新主存的。

协议允许请求者觉得当前缓存cache line是否是唯一的副本或者在相同的位置还有其他副本,这可以保证:

如果一个缓存行是唯一的副本,请求者组件可以改变缓存行数据而不用通知系统中的其他请求者。

如果缓存行数据可能在其他cache中有效,请求者必须通过合适的事务来通知其他缓存。

1.1.2 缓存状态模型

为了确定一个动作是否需要执行当一个组件获取缓存行,协议定义了缓存的状态。每一个状态基于以下缓存行特性:

Valid,invalid 当valid,缓存行存在于cache,当invalid,缓存行在cache中不存在。

Unique,shared 当为unique时,缓存行数据只存在于本cache中。当为shared时,缓存行数据不止存在一个cache中,但这是不能保证的。

Clean,Dirty 当clean,拥有缓存的组件不需要更新主存,当dirty时,缓存行数据已经被修改,并且和主存不一致,这个缓存行数据必须在最终更新一致。

Full, Partial, Empty 完整缓存行的所有字节都有效。部分缓存行可能有一些字节有效,其中一些字节不包含或包含所有字节。空缓存行没有有效的字节。一个有效的缓存行若不是部分有效或者empty,被认为是Full。

CHI-F协议学习笔记-第一章-介绍-续

Figure 1‑3 Cache state model

1.2 组件名字Component naming

CHI协议节点类型分类如下:

RN 请求节点,产生协议事务,包括向互联发起读写

一个请求节点可以再划分为:

RN-F:全一致性请求节点

包括硬件一致性缓存

允许产生协议定义的所有事务

支持所有的侦听事务

RN-D:支持DVM特性的IO一致性请求节点

不包含硬件一致性缓存

可以接收DVM事务

产生协议规定事务的子集

RN-I:IO一致性请求节点

不包含硬件一致性缓存

不可以接收DVM事务

产生协议规定事务的子集

不需要侦听功能

HN:主节点位于互联网络中,接收请求节点发起的协议事务。

主节点可以进一步划分为:

HN-F 全一致性Home节点

除了DVMop类型,可以接收所有的请求类型事务

包括一个Point of coherence(POC)通过需要侦听的RN-F来管理一致性,合并事务的侦听响应,向发起请求的请求节点发送一个单独的响应

预期是通过Point of Serialization(POS)管理memory请求访问顺序。

为了减少侦听操作,可能包含一个目录或者侦听过滤器

HN-I 非一致性home 节点

处理协议规定的有限的请求类型

不包括PoC,并且没有能力处理侦听请求。若是收到了侦听情况,必须回复协议兼容的信息

预期是通过Point of Serialization(POS)管理memory请求访问顺序。

MN 杂项事务节点。从请求节点接收DVM事务,完成需要的操作并且返回一个响应。

SN 从属节点。从属节点从主节点接收请求,完成所需的操作,并返回响应。

从属节点进一步分类为:

SN-F用于普通内存的从属节点类型。它可以处理非侦听读取,写请求和原子请求,包括它们的独占访问,以及缓存维护操作(CMO)请求。

SN-I 用于外围设备或普通内存的从属节点类型。它可以处理不可侦听的读、写和原子请求,包括它们的独占访问,以及CMO请求。

CHI-F协议学习笔记-第一章-介绍-续

Figure 1‑4 Protocol node examples

1.3 读取数据来源Read data source

在基于CHI的系统中,读请求从不同的源头获取数据:

互联网络的cache

从节点

被侦听的RN-F

CHI-F协议学习笔记-第一章-介绍-续

Figure 1‑5 Possible Data providers for a Read request

Home的一个选项是请求RN-F或从属节点仅向Home返回数据。Home继而将接收到的数据的副本转发给请求者。如果数据提供程序能够将数据响应直接转发给请求者,而不是通过Home,则可以删除在该读取事务流中获取数据的跳转。

本协议使用几种技术来减少完成事务过程中的跳转。减少的跳转hop可以节省读和写过程中的延迟,同时对互联带宽使用进行了优化。这些技术可以分为:

Direct Memory Transfer(DMT)

定义了从节点直接发送数据给请求节点

Direct cache transfer(DCT)

定义了一个侦听的RNF直接发送数据给请求节点。

Direct Write-data Transfer(DWT)

定义了请求节点直接发送写数据到从节点。

继续阅读