Atomic Accesses

Exclusive Access
Exclusive访问机制可以提供信号量类型的操作。

什么是信号量?

信号量本质是一个计数器, 用于多进程对共享数据对象的读取,它和管道不同,它不以传送数据为主要目的,
它主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个进程独享。

申请信号量(P操作,计数器减1)–>操作临界资源–>释放信号量(V操作,计数器加1)

(注:PV操作必须是原子操作)

多个执行流为了访问临界资源会竞争式的申请信号量, 因此信号量是会被多个执行流同时访问的,也就是说信号量本质也是临界资源。

注:信号量本质是计数器,但并不意味着只有计数器,其中还包含了一个等待队列。

slave要求额外的逻辑来支持Ex访问。

一个ex访问的基本机制是:

  • Master从一个地址执行一次ex读。
  • 稍后,Master尝试通过对相同的地址执行ex写来完成本次独占操作,且本次写的AWID和上次ex读的ARID相匹配。
  • 如果上次ex读之后没有其他master对这个位置进行写入,那么这次ex写成功。在这种情况下,ex写更新内存。

从Master视角看ex访问:
Master通过执行ex读开启一个独占操作。如果事务成功,slave返回EXOKAY响应。
如果Master尝试对一个不支持独占操作的slave执行ex读,slave返回OKAY响应。
在ex读之后的某个时间,Master尝试对同一位置进行ex写。如果这个位置的内容没有被改变,则ex写成功。slave返回EXOKAY响应,并且更新内存。如果内容发生改变,ex写失败,slave返回OKAY响应,内存不会更新。

从Slave视角看ex访问:
不支持ex访问的slave必须为normal和exclusive访问都提供OKAY响应。
支持ex访问的slave必须具有monitor硬件。
独占访问监控器记录任何ex读的地址和ARID值。然后它会监控那个位置直到写发生或者另一个具有相同ARID的ex读将monitor重置。
当slave收到具有给定AWID值的ex写时,监视器将检查该地址是否正在被监控以使用该AWID进行独占访问。如果是,表明没有写入发生,本次ex写正常进行以完成独占访问。slave返回EXOKAY响应给master并且更新内存位置。否则返回OKAY响应。

独占访问限制
ex写和ex读的突发长度和突发大小必须相同。
独占访问的地址必须和transaction的总byte数(burst size * burst length)对齐。
ex读的ARID必须和ex写的AWID匹配。
在AXI4中,独占访问的突发长度不得超过16。

Locked Access
AXI4不支持locked事务了。Locked事务的实现对Interconnect的复杂度和QoS的能力有重要影响,并且大多数组件也不要求locked事务。

AXI3:Normal、Exclusive、Locked
AXI4:Normal、Exclusive
AXI4-Lite:Normal

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值