ARM ACE协议学习(二)

本文详细介绍了ARM ACE协议中的信号描述,包括RA和WA通道的信号如AxDOMAIN、AxCACHE等,以及cache line的大小限制和transaction constraints。还探讨了Read响应、Write响应、Snoop地址和Snoop响应通道的细节,强调了在不同操作中信号的要求和交互。
摘要由CSDN通过智能技术生成

ACE信号描述

一、RA和WA通道

1)AxDOMAIN[1:0]信号指明了cache 操作的domain:
在这里插入图片描述
Device事务中AxCACHE[1]=0,只能用系统级
Cacheable事务中中AxCACHE[3:2]!=0,不能使用系统级在这里插入图片描述
2)AxBAR[1:0]指明了Barrier transaction

在这里插入图片描述
3)ARSNOOP[3:0]和AWSNOOP[2:0]
在这里插入图片描述
在这里插入图片描述
cache line的大小限制
最小值为以下值中的较大者:
•16个字节
•数据总线的宽度(单位为byte)
最大值为以下值中的较小的:
•2048字节
•最大突发长度16×数据总线的宽度(单位为byte)例如:bus width 1024 maximum = 1024/8×16

Transaction constraints

以下操作必须为cache line size
ReadClean
ReadNotSharedDirty
ReadShared
ReadUnique
CleanUnique
MakeUnique
CleanShared
CleanInvalid
MakeInvalid
WriteLineUnique
Evict
1、AxLEN必须为1、2、4、8、16**
2、AxSIZE必须等于总线位宽
3、AxBURST
1)INCR地址必须对齐cache line size=AxLEN×AxSIZE
2)WRAP地址必须对齐AxSIZE
3)不支持fixed
4、AxDOMAIN
1)除CleanShared、CleanInvalid、MakeInvalid外域必须为Inner Shareable 或 Outer Shareable
2)CleanShared、CleanInvalid、MakeInvalid的域必须为Non-shareable、 Inner Shareable 或 Outer Shareable.
5、AxBAR
必须为normal access
6、AxCACHE
必须为Modifiable.
7、AxLOCK
1)如果事务为ReadNotSharedDirty, ReadUnique,
MakeUnique, CleanShared, CleanInvalid, MakeInvalid,
WriteLineUnique 或Evict. 必须为0
2)如果为ReadClean, ReadShared, 或CleanUnique.0或1都可以
8、WriteLineUnique事务要求所有write data strobe置位
9、以下事务要求AxLEN为正确的cache line size,即使并未传递数据
CleanUnique
MakeUnique
CleanShared
CleanInvalid
MakeInvalid
Evict.

ReadOnce和 WriteUnique transactions
1、AxDOMAIN必须为Inner Shareable或Outer Shareable
2、AxBURST必须为INCR 或 WRAP
3、AxCACHE必须为Modifiable.
4、AxLOCK必须为normal access

WriteBack and WriteClean transactions
1、AWBURST
1)WRAP地址必须对齐AxSIZE(总线位宽),burst length 必须为2, 4, 8 or 16。AWSIZE x AWLEN不能超过cache line size
2)INCR burst length必须小于16,最后一个字节为AWISZE对齐的首地址加AWSIZE x AWLEN。最后一字节必须与第一个字节位于同一个line中
2、AWDOMAIN必须为System
3、AWBAR必须为normal access
4、AxCACHE必须为Modifiable.
5、AxLOCK必须为normal access

Barrier transactions
1、AxADDR 必须为全0
2、AxBURST 必须为INCR
3、AxLEN 必须为全0
4、AxSIZE必须为总线位宽
5、AxCACHE必须为Normal, Non-cacheable.
6、AxLOCK必须为normal access
7、AxSNOOP必须为全0

二、RR(读响应)通道
在这里插入图片描述
RRESP[2]:为高时数据必须将数据写入主存
RRESP[3]:为高时表明其他cache中存在的copy必须保持Shared状态,为低时表明仅仅为cache的copy可以为Unique状态

当需要移除所有其他cache中的copy时RRESP[3]必须为低,如以下事务
ReadUnique
CleanUnique
MakeUnique
CleanInvalid
MakeInvalid.
当不允许传递dirty时RRESP[2]必须为低,如以下事务
ReadOnce
ReadClean
CleanUnique
MakeUnique
CleanShared
CleanInvalid
MakeInvalid.
当这两位不起作用时必须为低,如以下事务
ReadNoSnoop
Barrier transactions
DVM transactions.

以下操作含有1个read data传输
CleanUnique
MakeUnique
CleanShared
CleanInvalid
MakeInvalid
Barrier
DVM.
因此必须将RLAST置位,RDATA值忽略

EXOKAY只有ReadNoSnoop, ReadClean, ReadShared或CleanUnique允许响应
三、RACK(读告知)通道
RACK信号在主端读完成后必须置位一个时钟周期,且依赖于RVALID/RREADY,就像RLAST信号,且不能被延迟
RACK必须发送到所有事务
RACK不含有顺序信息,顺序与last read和read response有关
RACK被interconnect用来保证主端的snoop port访问同一个地址的进程完成后才能发起事务
三、WR(写响应通道)通道
EXOKAY 只响应 WriteNoSnoop事务
四、WR(写告知)通道
WACK信号在主端写完成后必须置位一个时钟周期
WACK信号依赖于BVALID/BREADY
WACK必须发送到所有事务包括barrier transactions
WACK不含有顺序信息,顺序与write response有关
WACK被interconnect用来保证主端的snoop port访问同一个地址的进程完成后才能发起事务
五、AC(Snoop address)通道
ACVALID:为高时snoop address可用
ACREADY:为高时主端可接受snoop address信息
ACADDR[ac-1:0]:snoop address位宽必须与读写地址位宽保持一致。
ACSNOOP[3:0] :Snoop事务类型
ACPROT[2:0]:Snoop保护类型 ACPROT[1]可被定义两个地址空间:安全的和不安全的,也可以被定义为额外地址位防止地址混淆

在这里插入图片描述
五、CR(Snoop response)通道
CRVALID:表明Snoop response是有效的
CRREADY:表明Snoop response可在这个周期被接收
CRRESP[4:0]:表明Snoop response的类型
在这里插入图片描述
CRRESP[0]:
为高时代表要提供full cache line data,为低时不需要
以下操作如果snoop导致了cache hit则需要传输数据 (如果line为clean的,虽然不一定需要传输数据,但推荐仍进行传输)
ReadOnce
ReadClean
ReadNotSharedDirty
ReadShared
ReadUnique.
当cache hit且dirty
CleanInvalid和CleanShared操作需要传输数据
CRRESP[1]:
为高时代表snoop 的cache line发生了错误,需要系统支持错误修正,如果系统不支持则永久置低
CRRESP[2]:
为高时需要将dirty数据写入主存
CRRESP[3]:
为高时表明snoop完成后cache保留cache line的copy
CRRESP[4]:
为高时表明snoop之前cache处于unique状态其他cache没有copy

在这里插入图片描述
五、CD(Snoop data)通道
CDVALID:snoop data有效
CDREADY:snoop data准备接收
CDDATA[cd-1:0]:snoop data
CDLAST:最后一次数据传输
CDDATA位宽不必要与读写数据位宽一致
snoop data位宽可以为32, 64, 128, 256, 512, 或1024,但要满足
• cache line size transactions must be a full data bus width
• the burst length must be 1, 2, 4, 8, or 16.
CD(Snoop data)通道是可选的,但cache 主端不能保有dirty数据,在获得dirty数据时必须首先把dirty数据写入主存。
六、snoop通道依赖关系

在这里插入图片描述

  • 6
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值