AHB---独占传输

1.独占传输介绍

AHB5定义了Exclusive_Transfers属性。这个属性定义了一个接口是否支持独占传输的概念。如果这个属性没有定义,那么接口就不支持独占传输。

独占传输提供了一种支持类似semaphore操作的机制。

一个独占访问序列是一个单一master发起的一系列独占传输,操作步骤如下:

  1. 从一个地址执行一个独占读取(Exclusive Read)传输。
  2. 基于从独占读取获得的数据计算一个新数据,以便存储到该地址。
  3. 在独占读取和独占写入之间可以有其他的非独占传输。
  4. 对同一个地址用新数据执行一个独占写入(Exclusive Write)传输:
    • 如果自从独占读取传输以来没有其他master写入该位置,独占写入传输就成功并更新内存。
    • 如果自从独占读取传输以来另一个master已经写入了该位置,独占写入传输就失败,内存位置不会被更新。
  5. 对独占写传输的响应表明传输是成功还是失败。

这个序列确保只有在存储到内存时,该位置仍然保持用于计算要写入该位置的新值的相同值时,才更新内存位置。

如果独占写入传输失败,预期master将重复整个独占访问序列。

如果在独占读传输之后,同一个master更新相同或重叠的位置,是否会导致相关的独占写传输成功或失败,这是硬件实现定义的。

2.独占访问监视器

为了支持独占访问序列,需要一个独占访问监视器,该监视器必须确定独占写入传输是成功还是失败。

独占访问监视器必须能够同时监控系统中每个能够进行独占访问的master的至少一个地址位置。

独占访问监视器在系统中的位置没有定义。然而,它必须被放置在能够观察到用于独占访问序列的所有地址位置的地方。例如,如果一个系统包括多个内存控制器,那么所有的访问都必须通过包含独占访问监视器的中心点进行路由,或者在每个内存控制器处需要一个单独的独占访问监视器。

系统不要求对所有地址位置支持独占访问序列。对于不支持独占访问序列的访问,提供了一个故障安全机制。通常,系统会对主内存支持独占访问序列,但不会对任何外围设备支持

3. 独占访问信号

与独占传输相关联的额外信号包括:

  • HEXCL       独占传输。表明当前传输是独占访问序列的一部分。这个信号是地址阶段信号,并且具有与HADDR相同的有效性约束。

  • HMASTER[m:0]     master标识。具有多个独占传输能力的线程的master必须生成这个信号来区分不同的线程。 由master生成的HMASTER值将与互连生成的值结合,以确保呈现给独占访问监视器的HMASTER值是唯一的。 这个信号是地址阶段信号,并且具有与HADDR相同的有效性约束。

  • HEXOKAY     独占确认。增加了一个额外的响应信号来指示独占传输的成功或失败。

HMASTER[m:0]信号的宽度是硬件设计定义的。然而,本规范推荐以下宽度:

  • 对于master组件,根据支持独占传输能力的线程数量实现所需的位宽。
  • 对于master连接的互连端口,实现4位。互连可以选择性地支持更大的位宽配置。
  • 对于slave或监视器组件,实现8位。slave或监视器组件可以选择性地支持更大的位宽配置。

HMASTER信号的使用不限于独占传输,系统内的互连和slave组件可以使用这个信号来区分系统中的不同master,并相应地调整它们的行为。因此,对于所有传输,而不仅仅是独占传输,必须提供有效的HMASTER指示。

3.1 响应信号

HEXOKAY信号用于指示独占传输的成功或失败:

  • 当HEXOKAY被断言时,表明独占传输已成功,并且对于独占写传输,表明内存位置已被更新。
  • 当HEXOKAY未被断言时,表明独占传输已失败。这可能是因为:
    • 尝试对不支持独占传输的地址位置进行独占传输。
    • 独占写传输失败,因为自匹配的独占读传输以来,内存位置没有保持不变。在这种情况下,内存位置不会被更新。

master可以通过确保首先对位置执行独占读传输,来确保它不会尝试对不支持独占传输的地址位置执行独占写传输。

对HEXOKAY适用以下约束:

  • HEXOKAY只能在HREADY被断言的同一周期内被断言。
  • HEXOKAY不能在HRESP被断言的同一周期内被断言。

4.  独占传输限制

独占传输必须遵守以下限制条件:

  • 必须有一次单数据传输。
  • 突发类型必须被指示为SINGLE或INCR(增量)。
  • 不得包含BUSY传输。
  • 地址必须根据HSIZE指示的数据大小对齐。
  • HPROT信号的值必须保证独占访问监视器能够看到传输。

注意:

  • 如果独占访问监视器位于系统缓存的下游,则传输必须是不可缓存的;如果独占访问监视器位于系统缓存的上游,则允许传输是可缓存的。

独占读传输和独占写传输被认为是同一独占访问序列的一部分,以下信号对于两次传输都必须相同:

  • HADDR,地址。
  • HSIZE,数据大小。
  • HPROT,保护控制。
  • HBURST,突发类型。
  • HMASTER,主设备标识。
  • HNONSEC,非安全(如果适用)。

允许master发出一个独占读传输而不在同一独占访问序列中跟随一个独占写传输。

允许master发出一个独占写传输,该传输未在相同独占访问序列中先前进行独占读传输。在这种情况下,独占写传输必须失败,并且必须取消断言HEXOKAY响应信号。

一个master不得在同一时间点有两个未完成的独占传输。在早期独占传输的数据阶段进行中时,不得发出独占传输的地址阶段,无论传输是否是同一独占访问序列的一部分。

允许在不同HMASTER值的早期独占传输的数据阶段进行中时,发出具有特定HMASTER值的独占传输的地址阶段。

注意: 独占传输的地址阶段被定义为HEXCL被断言且HTRANS指示为NONSEQ时。当HTRANS指示IDLE(空闲)时,HEXCL的断言不被视为独占传输的地址阶段。

AHB Burst传输是指在AMBA(Advanced Microcontroller Bus Architecture)高级微控制器总线架构中的一种数据传输方式。它通过在一次传输传输多个数据项来提高数据传输效率。这种传输方式可以使用不同的传输类型和不同的传输长度。其中,传输类型可以是INCR(递增)、FIXED(固定)或WRAP(循环),而传输长度可以是不定长或固定长度。 在AHB Burst传输中,INCR传输类型表示每次传输的地址会递增,可以按照一个固定步长进行地址增加。例如,一个INCR的写请求burst的地址步长为0x2,表示每次传输的地址会增加0x2。同样地,一个INCR的读请求burst的地址步长为0x4,表示每次传输的地址会增加0x4。这样可以在一次传输中连续读取或写入多个地址的数据项。 另外,AHB Burst传输中的等待状态(Waited transfers)会影响下一个传输的地址阶段的时间。在某些地址的传输过程中,可能会存在等待状态,这会延长下一个地址的传输时间。例如,在一个到地址B的传输过程中的数据阶段有一个等待状态,这会导致下一个地址C的地址阶段被延迟。 此外,在AHB Burst传输中,还有单次传输的方式,即SINGLE burst。这种传输方式只包含一个长度为1的不定长burst,用于单次数据传输。 综上所述,AHB Burst传输是一种在AMBA高级微控制器总线架构中使用的数据传输方式,它可以提高数据传输效率。根据不同的传输类型和传输长度,可以实现递增或固定步长的连续数据传输,并且可能存在等待状态影响下一个传输的地址阶段的时间。此外,还可以使用单次传输方式进行单次数据传输。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【AHB协议解读 三】传输(Transfers)](https://blog.csdn.net/qq_41849447/article/details/116902245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值