ACE Protocol Chapter C4

本文探讨了不同类型的缓存操作如何影响缓存状态的变化,包括读取、写入及清理等交易对缓存一致性的影响。详细介绍了各种缓存状态(如Unique、Shared、Dirty等)之间的转换规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C4.3 不同transaction导致的state变化

state可能会被以下影响:

1. 传输类型;

2. 在AR通道上的读响应;

3. 是否master支持外部的snoop filter;

4. 是否master指定的预测读;


如果传输读响应返回PassDirty,则cache line一定要变为dirty状态。PassDirty在以下状态使能:

1. ReadNotSharedDirty

2. ReadShared

3. ReadUnique

如果传输读响应返回IsShared,则cache line要么变为Shared,要么变为Invalid。IsShared在以下状态使能:

1. ReadOnce

2. ReadClean

3. ReadNotSharedDirty

4. ReadShared

5. CleanShared

一个Unique状态的cache line可以移动到Shared 状态,但是这个行为不鼓励。

如果没有外部的snoop filter,允许cache line从Clean状态变为Invalid状态。

C4.3.1 load不会导致cache line状态的跳转;

C4.3.2 Store对cache line状态的影响

在执行一个store命令之前,master应当检查它是否有store的权限。仅当master在uniqueclean或者是uniquedirty状态时,才能存放。

如果master没有这个store的权限,那么它应当:

1. 在AR通道发起transaction,获取store的权限,然后执行store指令,存储到cache上。在store之后,master一定要处于UniqueDirty状态。可以使用以下操作获取权限:

ReadUnique

CleanUnique

MakeUnique

2. 在AW通道发起操作,获取store的权限,然后执行store指令,存储到主存上。可以store并且更新主存传输类型如下:

WriteUnique

WriteLineUnique

C4.3.3 与主存更新相关的状态改变

如果cache line是dirty状态,那么可以将其更新到主存。

使用WriteBack/WriteClean,更新主存。更新之后,cacheline一定要变成clean/invalid 状态。

如果支持外部的snoop filter,应当有以下限制:

1. 写回类型的,cache line变而为无效;

2.写清类型的,cache line变为清;

C4.3.4 与cache一致性相关的状态改变

影响cache一致性的操作如下:

1. CleanShared;

2. CleanInvalid;

3. MakeInvalid;

在发起cache 一致性操作之前,master一定要保证:

对于CleanShared,cache line一定要在clean或者Invalid状态;

对于CleanInvalid和MakeInvalid,cache line一定要在Invalid状态。

注意:cache维护操作不会影响当前行的状态。

C4.4  state change


C4.5 Read Transactions (在AR通道上)

C4.5.1 Read No Snoop

Read No Snoop 用于读不在shareable区域内的数据。当传输完成时,cache对allocate的状态没有要求;

C4.5.2 Read Once

用于读取在shareable的区域的数据。这种操作用于获取数据的快照,这个数据也不会被cache。

C4.5.3 Read Clean

Read Clean操作用于确定不将更新主存的责任传递给发起动作的master。

如果一个master(比如一个写通型的)想要获取一份干净的cache line,可以使用这个操作。

C4.5.4 Read Not Share Dirty

Read Not Share Dirty在不是IsShared 和PassDirty同时是使能的其他情况下完成。

主要用于一个cache master发起一个load 操作,并且接受除了ShareDirty 状态的其他任何状态。

这个操作要求的响应如下:

如果IsShared 响应这个cache line已经被共享了,那么PassDirty一定要保证cache line是干净的。

C4.5.5 ReadShared

ReadShared 是一个读操作,可以接受任何IsShared和PassDirty的组合类型

如果一个cache line一开始是在一个shared clean的状态,如果操作返回的类型是PassDirty,那么cache line一定要变到 Dirty的状态。


C4.5.6 ReadUnique

这个操作获取数据的备份,并且可以保证数据保持在unique状态。这就允许master 执行一个store操作到这个cache line。

典型地,一个ReadUnique操作在如下场景被使用:发起操作的master执行一个部分cache line store,并且没有cache line的拷贝。

C4.6 Clean Transactions

C4.6.1 Clean Unique

CleanUnqiue 也是发生在shareable域的,主要用于保证:

 cache line处于unqiue状态。这使得master 可以发起store到这个cache line的操作,但是这个transaction不要求获得master的拷贝。

如果其他处于dirty状态的cache被写入主存并且其他的cache line被移除。

transaction响应的要求如下:

  • IsShared 响应需要保证当前cache line上unqiue的。
  • Pass Dirty一定要被失效。

在完成CleanUnqiue操作时,发起操作的master可以store这个cache line。如果这个cache line在store 操作前是无效的,那么一定要发起一个full cache line操作,将数据allocate到cache中。在full cache line 存储之后,这个cache line就在unqiue dirty状态了。

Store 操作一定要和Clean Unique是原子操作,因此,任何在CleanUnique之后的操作都将被延迟,直到store完成。

Clean Unique可以用于完成exclusive操作。

Snoop filter在完成CleanUnique操作之后,会将cache line认为是已经allocate了。

        cache line如果在clean uniqu操作之前是allocate状态,那么在这个操作之后,仍然是allocate状态。

        如果cache line在Clean Unique操作之前没有被分配,或者在CleanUnique期间被失效,那么当CleanUnique完成时,这个master应当:

        完成一个full cache line store,那么这个cache line就被分配了。

        完成一个整行或者部分行的写回操作,用于表明这个cache line已经不是allocated状态了。

        重启另一个传输,如ReadUnique传输,在整行或者部分行成为allocated状态之前。

       不发起一个store操作。在这情况下,master一定要发起evict操作用于通知snoop filter,这个cache line已经不是allocated状态了。



























### 回答1: 阿姆巴总线协议是一种用于芯片间连接的开放式标准,包括阿姆巴总线规范与阿姆巴总线接口规范。阿姆巴总线规范定义了总线的结构、信号传输方式、总线操作,以及总线控制器和可编程逻辑的行为和特性。 amba庐 axi(Advanced eXtensible Interface)和ace(AXI Coherency Extension)协议是阿姆巴总线接口规范的扩展版本,支持高性能和高效的系统互联。axi协议已被广泛采用,被认为是现代SoC设计中的事实标准。 axi协议支持多个主操作总线,并且提供了高度的灵活性和可扩展性,可以满足不同的SoC设计需求。此外,axi协议还提供了流水线传输和乱序传输的支持,可以有效提高数据传输效率。 ace协议是axi协议的扩展版本,提供了高效的数据一致性管理功能。ace协议支持多级缓存一致性,可以减少数据读写冲突和不一致问题,提高系统性能和稳定性。 综上所述,amba庐 axi和ace协议是现代SoC设计中重要的标准,为高性能和高效的系统互联提供了重要支持,是SoC设计工程师必须掌握的技术之一。 ### 回答2: AMBA(Advanced Microcontroller Bus Architecture)是ARM体系结构中用于芯片内部通信的标准总线接口。AMBA包括多个协议,其底层协议称为APB(Advanced Peripheral Bus),高级协议称为AHB(Advanced High-performance Bus)和AXI(Advanced eXtensible Interface)。 AXI是AMBA协议的最新版本。与AHB相比,AXI具有更高的带宽和更低的延迟,以满足系统对高性能和低功耗的要求。AXI协议规范包括AXI4、AXI4-Lite和AXI4-Stream三种。 ACE是AXI协议规范的一种扩展,提供了一种AXI与外部高速缓存(例如L2缓存)之间的接口。ACE协议规范包括ACE-Lite和ACE两种版本。 IHI 0022h是AMBA协议规范的具体文档,其中包含了AHB、APB、AXI和ACE协议的详细说明,以及信号、传输类型、时序和响应等方面的规范。对于以ARM内核为基础的芯片设计者来说,这个文档是设计和开发过程中必不可少的参考文献。 ### 回答3: AMBA是一个总线标准,广泛应用于ARM公司的处理器间的互联。AMBA总线被设计成一个用于系统-on-chip(SoCs)的标准总线,它连接着处理器、外设和存储器,实现了SoC内部的通信。 而AMBA协议中,AXI和ACE协议则是其中两种典型的总线协议。AXI协议被设计为所有AMBA3处理器总线之间的标准接口,包括了高级性能处理器、图像处理器和数字信号处理器等。而ACE协议是架构统一缓存共享扩展协议,为提高AMBA的共享性能和可伸缩性设计,加强了系统内存一致性的控制。这些协议规范中对于各种数据传输的信息进行了详细的描述,包括寻址方式、数据的传输规定等。 ARM iHI 0022h的规范是关于AMBA协议的详细说明,其中包括了AXI和ACE协议的规定。该规范详细描述AMBA协议的各个方面,包括总线结构、传输协议、信号规范和一致性协议等内容。对于SoC设计者和软件开发者来说,理解并实现AMBA协议非常重要,能够帮助优化系统性能和有效管理SoC内部的数据流动,提高其可靠性和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值