本章节介绍了ACE接口的附加信号,这些信号是ACE协议中用于管理和维护缓存一致性的关键组成部分。以下是本章节包含的主要内容:
目录
2.1现有AXI通道的变更
这部分详细介绍了ACE协议对现有AXI4通道所做的修改。AXI4是一种高性能、高带宽、低延迟的内存映射通信接口,ACE协议在AXI4的基础上进行了扩展,以支持更复杂的缓存一致性操作。这些变更可能包括新增的信号、对现有信号功能的扩展或对信号行为的修改,以适应ACE协议的需求。
-
2.1.1 AXI4通道
AXI4协议定义了几个关键的通道,用于在系统中的不同组件之间传输数据和控制信息。以下是AXI4协议中的所有通道:
读地址通道(Read Address Channel):
ARID[i]
: 读事务的ID。ARADDR[j]
: 读请求的目标地址。ARLEN[k]
: 突发长度,表示突发中要传输的数据数量。ARSIZE[l]
: 突发大小,表示每个数据传输的大小。ARBURST[m]
: 突发类型,指示事务是单次传输还是连续突发。ARLOCK[n]
: 锁定标志,用于指示事务是否需要原子性处理。ARCACHE[o]
: 缓存属性,用于指定缓存行为。ARPROT[p]
: 保护属性,用于指定内存访问的权限。ARVALID
: 读地址通道有效标志,指示地址信息是否有效。ARREADY
: 目标设备准备接收读地址信息的标志。
读数据通道(Read Data Channel):
RID[i]
: 读数据的ID。RDATA[j]
: 读操作返回的数据。RRESP[l]
: 响应类型,指示事务的状态(OKAY, EXOKAY, SLVERR, DECERR)。RLAST[m]
: 突发传输的最后一个数据。RVALID
: 读数据通道有效标志,指示数据是否有效。RREADY
: 请求设备准备接收数据的标志。
写地址通道(Write Address Channel):
AWID[i]
: 写事务的ID。AWADDR[j]
: 写请求的目标地址。AWLEN[k]
: 突发长度,表示突发中要传输的数据数量。AWSIZE[l]
: 突发大小,表示每个数据传输的大小。AWBURST[m]
: 突发类型,指示事务是单次传输还是连续突发。AWLOCK[n]
: 锁定标志,用于指示事务是否需要原子性处理。AWCACHE[o]
: 缓存属性,用于指定缓存行为。AWPROT[p]
: 保护属性,用于指定内存访问的权限。AWVALID
: 写地址通道有效标志,指示地址信息是否有效。AWREADY
: 目标设备准备接收写地址信息的标志。
写数据通道(Write Data Channel):
WID[i]
: 写事务的ID。WDATA[j]
: 要写入的数据。WSTRB[k]
: 字节使能,指示哪些字节是有效的。WLAST[l]
: 突发传输的最后一个数据。WVALID
: 写数据通道有效标志,指示数据是否有效。WREADY
: 目标设备准备接收数据的标志。
响应通道(Response Channel):
BID[i]
: 响应的ID。BRESP[l]
: 响应类型,指示事务的状态(OKAY, EXOKAY, SLVERR, DECERR)。BVALID
: 响应通道有效标志,指示响应信息是否有效。BREADY
: 请求设备准备接收响应的标志。
-
2.1.2 AXI4基础上的变更
读地址通道(AR)信号
信号名称 | 来源(Source) | 描述(Description) |
---|---|---|
ARSNOOP[3:0] | 主设备(Master) | 指示Shareable读事务的事务类型。这些信号可以用来指定读事务是否需要监听(Snoop)或其他特殊处理。 |
ARDOMAIN[1:0] | 主设备(Master) | 指示读事务的共享域。这些信号定义了读事务影响的缓存一致性域,例如,是否只影响内部共享域或整个系统。 |
ARBAR[1:0] | 主设备(Master) | 指示事务是否为读屏障。读屏障事务用于确保在屏障之前的事务对所有缓存可见,以维护一致性和顺序性。 |
写地址通道(AW)信号
信号名称 | 来源(Source) | 描述(Description) |
---|---|---|
AWSNOOP[2:0] | 主设备(Master) | 指示Shareable写事务的事务类型。这些信号可以用来指定写事务是否需要监听或其他特殊处理。 |
AWDOMAIN[1:0] | 主设备(Master) | 指示写事务的共享域。这些信号定义了写事务影响的缓存一致性域。 |
AWBAR[1:0] | 主设备(Master) | 指示事务是否为写屏障。写屏障事务用于确保在屏障之前的事务对所有缓存可见,并且写屏障事务通常会导致缓存行的无效化或逐出。 |
AWUNIQUE | 主设备(Master) | 仅由支持WriteEvict事务的组件所需。WriteEvict事务用于从缓存中逐出数据,而无需写回主内存。 |
读数据通道(R)信号
信号名称 | 来源(Source) | 描述(Description) |
---|---|---|
RRESP[3:2] | 互连(Interconnect) | 读响应信号,指示读传输的状态。RRESP信号包含两个比特,可以表示多种状态信息,例如成功的读操作(OKAY),错误的响应(EXOKAY,表示虽然读操作成功,但出现了某些异常),或者读操作失败(SLVERR,表示 Slave 错误)等。 |
2.2ACE定义的附加通道
ACE协议定义了一些额外的通道来处理缓存一致性相关的操作。这些通道包括监听地址通道(Snoop Address Channel)、监听响应通道(Snoop Response Channel)和监听数据通道(Snoop Data Channel)。这些通道用于在缓存之间传输监听事务,确保系统中的数据一致性。
2.2.1监听地址通道(AC)信号
信号名称 | 来源(Source) | 描述(Description) |
---|---|---|
ACVALID | 互连(Interconnect) | 表示监听地址通道信号有效。当此信号有效时,表示ACADDR和ACSNOOP等信号携带了有效的事务信息。 |
ACREADY | 主设备(Master) | 表示主设备可以接受监听地址通道上的传输。此信号是主设备用来告知互连它已准备好接收监听请求的。 |
ACADDR[ac-1:0] | 互连(Interconnect) | 监听事务中第一个传输的地址。ac是监听地址总线的宽度。 |
ACSNOOP[3:0] | 互连(Interconnect) | 监听事务类型。这些信号定义了监听事务的类型,例如读监听或写监听。 |
ACPROT[2:0] | 互连(Interconnect) | 监听事务的保护属性。ACE规范仅为ACPROT[1]分配了含义。 |
2.2.2监听响应通道(CR)信号
信号名称 | 来源(Source) | 描述(Description) |
---|---|---|
CRVALID | 主设备(Master) | 表示监听响应通道信号有效。当此信号有效时,表示CRRESP信号携带了有效的监听响应信息。 |
CRREADY | 互连(Interconnect) | 表示互连可以接受监听响应通道上的传输。此信号是互连用来告知主设备它已准备好接收监听响应的。 |
CRRESP[4:0] | 主设备(Master) | 监听响应,指示监听事务的状态。CRRESP信号包含了响应的状态信息,例如是否成功监听到数据,或者是否需要采取进一步的一致性操作。 |
2.2.3监听数据通道(CD)信号
信号名称 | 来源(Source) | 描述(Description) |
---|---|---|
CDVALID | 主设备(Master) | 表示监听数据通道信号有效。当此信号有效时,表示CDDATA等信号携带了有效的数据信息。 |
CDREADY | 互连(Interconnect) | 表示互连可以接受当前周期的监听数据。此信号是互连用来告知缓存主设备它已准备好接收数据的。 |
CDDATA[cd-1:0] | 主设备(Master) | 监听数据,包含了在监听事务中传输的实际数据。cd是监听数据总线的宽度,决定了每次传输可以携带的数据量。 |
2.3ACE定义的附加响应信号和信令要求
这部分描述了ACE协议中新增的响应信号以及相关的信令要求。响应信号用于指示事务的处理状态,例如,一个读请求是否成功完成,或者一个写请求是否已经被目标缓存接受。信令要求则涉及到如何正确地使用这些信号来维护系统的稳定性和性能。
在ACE协议中,读确认信号(Read Acknowledge Signal)和写确认信号(Write Acknowledge Signal)是用于指示主设备(Master)已经完成读或写事务的重要信号。此外,ACE协议还定义了重置要求,确保系统在启动或重置时能够正确初始化。
2.3.1读确认信号(RACK)
信号名称 | 来源(Source) | 描述(Description) |
---|---|---|
RACK | 主设备(Master) | 读确认信号,指示主设备已经完成了一个读事务。当读数据通道的RVALID 信号有效时,主设备在接收到数据后应发送RACK 信号,以表明读操作已成功完成。 |
2.3.2写确认信号(WACK)
信号名称 | 来源(Source) | 描述(Description) |
---|---|---|
WACK | 主设备(Master) | 写确认信号,指示主设备已经完成了一个写事务。在写操作成功完成并且写数据通道的WVALID 信号已被消费后,主设备应发送WACK 信号。 |
2.3.3重置要求(Reset Requirements)
ACE协议使用AXI标准的活动低(active LOW)重置信号ARESETn
。在重置期间,以下接口要求适用:
- 主设备接口必须将
RACK
、WACK
、CRVALID
和CDVALID
信号驱动为低电平(LOW)。 - 互连(Interconnect)必须将
ACVALID
驱动为低电平。
在重置之后,互连被允许在ACLK
的上升沿开始驱动ACVALID
为高电平(HIGH),这发生在ARESETn
信号变为高电平之后。这意味着系统在重置后必须等待至少一个时钟周期才能开始正常的事务处理。