本章节详细介绍了由发起主设备(initiating master)在读取地址通道和写入地址通道上可以发起的事务。每个事务组预期的通道活动被描述,并对每个事务提供了简要概览。每个事务都包括了相关的缓存行状态变化的描述。章节内容涵盖以下几个部分:
-
发起主设备(Initiating Master):讨论了发起主设备的角色和功能,以及它如何通过读取地址和写入地址通道发起事务。
-
监听过滤(Snoop Filtering):描述了在监听操作中如何根据发起主设备的需求过滤相关的监听请求,以及这些请求如何影响缓存行的状态。
-
不同事务上的状态变化:概述了在执行各种事务时,缓存行状态如何变化,包括读事务、写事务、使无效事务等。
-
状态变化描述:提供了对缓存行状态变化的详细描述,解释了每种状态变化的含义和背后的机制。
-
读事务(Read Transactions):详细介绍了读事务的类型、流程和缓存行状态的变化,如ReadOnce、ReadShared等。
-
清洁事务(Clean Transactions):讨论了清洁事务,如CleanInvalid和CleanShared,以及它们如何影响缓存行的清洁状态。
-
制造事务(Make Transactions):描述了制造事务,如MakeInvalid和MakeUnique,以及它们如何改变缓存行的状态,通常是将其变为无效或唯一的状态。
-
写事务(Write Transactions):详细介绍了写事务的类型和流程,包括如何处理脏数据和缓存行状态的变化。
-
驱逐事务(Evict Transactions):讨论了驱逐事务,如WriteEvict,以及它们如何从缓存中移除缓存行,并可能将其写回内存。
-
处理重叠写事务(Handling Overlapping Write Transactions):探讨了当多个写事务同时发生时,如何管理和协调这些事务,以确保数据一致性和事务的正确执行。
4.1主设备(initiating master)的行为
本节描述了发起主设备(initiating master)的行为。通常,发起主设备会发起一个事务来推进其内部操作,例如加载(load)或存储(store)操作。以下是发起主设备在执行加载和存储操作时的内部行动要求:
加载操作(Load Operation):
对于加载操作,主设备需要获取数据,这可以通过以下两种方式之一实现:
- 有效缓存行副本:主设备从其缓存中找到并使用适当的、有效的缓存行副本。
- 返回有效读数据的事务:如果缓存中没有有效副本,主设备需要发起一个读取事务,该事务能够返回有效的读取数据。
存储操作(Store Operation):
对于存储操作,主设备需要获得存储缓存行的权限,这同样可以通过以下两种方式之一实现:
- 处于唯一状态的缓存行副本:主设备拥有适当缓存行的唯一副本,这意味着没有其他缓存持有该数据的副本。
- 允许存储的事务类型:如果主设备没有缓存行的副本,或者缓存行不是唯一的,它需要发起一个事务,该事务允许主设备存储缓存行。这可能涉及到获取对缓存行的独占访问权限,或者等待直到缓存行变为非共享状态。
Note:
- 发起主设备必须确保在加载或存储操作之前,它拥有适当的数据副本,并且遵守系统的缓存一致性协议。
- 在存储操作中,如果主设备没有获得适当的权限,它可能需要等待,直到缓存行的状态变为允许它进行存储为止。
- 主设备的行为必须与系统中的其他组件协调一致,以确保数据的一致性和系统的稳定性。
在ACE协议中可以事务分成5类:

本文详细解释了ACE协议中发起主设备如何通过不同类型的事务(如读、写、清洁、制造和逐出)在读取地址和写入地址通道上进行操作,描述了事务对缓存行状态的影响,以及监听过滤在缓存一致性中的作用。
最低0.47元/天 解锁文章
501





