AMBA5 AHB协议规范(AHB5,AHB-Lite)中文版-第八章 独占传输
第八章
独占传输
本章描述独占传输的概念。它包括以下部分:
-- 概述 on page 8-70.
-- 独占访问监控 on page 8-71.
-- 独占访问信号 on page 8-72.
-- 独占传输的限制 on page 8-73.
8.1 Introduction
AHB5定义了Exclusive_Transfers属性。此属性定义接口是否支持独占传输的概念。如果没有定义此属性,则接口不支持独占传输。
独占传输提供了一种支持旗语类型操作的机制。
一个独占访问序列是一个来自单个主机的独占传输序列,它使用以下步骤操作:
- 从某个地址执行独占读传输。
- 根据从Exclusive Read获得的数据值,计算一个新的数据值存储到该地址。
- 在独占读和独占写之间可以有其他非独占传输。
- 对同一个地址执行独占写传输,新的数据值为:
-- 如果在独占读传输之后没有其他主机写入该位置,独占写传输成功并更新内存。
-- 如果在独占读传输之后,另一个主机已经写入该位置,那么独占写传输将会失败,并且内存位置不会被更新。 - 对独占写传输的响应表明传输是成功的还是失败的。
这个序列确保只有当存储到内存的位置仍然保存着用于计算要写入到该位置的新值时,内存位置才会被更新。
如果独占写传输失败,预计主机将重复整个独占访问序列。
在一个独占读传输之后,同一个主机对同一个或重叠的位置进行更新是否会导致相关的独占写传输成功或失败,这是由IMPLEMENTATION定义的。
8.2 Exclusive Access Monitor
需要一个独占访问监视器来支持独占访问序列,并且这个监视器必须决定独占写传输是成功还是失败。
独占访问监视器必须能够同时监视系统中每个具有独占访问能力的主机的至少一个地址位置。
独占访问监视器在系统中的位置没有定义。但是,必须对它进行定位,使它能够观察到所有用于独占访问序列的地址位置的访问。例如,如果一个系统包含多个内存控制器,要么所有访问都通过包含独占访问监视器的中心点路由,要么在每个内存控制器上都需要一个单独的独占访问监视器。
系统不需要支持对所有地址位置的独占访问序列。为访问不支持独占访问序列的位置提供了故障安全机制。通常,系统应该支持对主存的独占访问序列,而不是对任何外围设备的独占访问序列。
8.3 Exclusive access signaling
与独占传输相关联的其他信号有:
HEXCL -- 独占传输. 指示传输是独占访问序列的一部分。 该信号是一个地址阶段信号,具有与HADDR相同的有效性约束。
HMASTER[m:0] -- 主机标识符. 有多个具有独占能力的线程的主机必须生成这个信号来区分线程。由主机生成的HMASTER值将与互连生成的值相结合,以确保呈现给独占访问监视器的HMASTER值是唯一的。该信号是一个地址阶段信号,具有与HADDR相同的有效性约束。
HEXOKAY -- 独占成功。添加一个附加的响应信号来指示独占传输的成功或失败。
HMASTER[m:0]信号的宽度是IMPLEMENTATION DEFINED实现定义的。然而,本规范推荐以下宽度:
-- 对于主机组件,实现支持的具有独占能力的线程数量所需的位数。
-- 对于主机连接的互连端口,实现4位。可选地,互连可以支持更大位宽的配置。
-- 对于从组件或监控组件,实现8位。可选地,从组件或监视器组件可以支持更大的位宽配置。
允许将HMASTER信号用于独占传输以外的目的。允许系统中的互连和从机组件使用该信号来区分系统中的不同主机,并适当地调整它们的行为。因此,必须为所有传输提供有效的HMASTER指示,而不仅仅是独占传输。
8.3.1 Response signaling
HEXOKAY信号用来指示Exclusive Transfer的成功或失败:
-- 当有效时,HEXOKAY表示独占传输已经成功,对于一个独占写传输,内存位置已经更新。
-- 当无效时,HEXOKAY表示独占传输失败。这可能是因为:
- 试图向不支持独占传输的地址位置进行独占传输。
- 独占写传输失败,因为自匹配的独占读传输以来,内存位置没有保持不变。在这种情况下,内存位置不会更新。
如果一个地址位置不支持独占传输,主机可以通过确保它总是先执行独占读传输来确保它不会尝试执行独占写传输到该地址位置。主机可以通过确保它一直对那个位置首先执行一个独占读传输确保它不会试图对一个不支持独占传输地址位置执行独占写传输。
以下约束应用于HEXOKAY:
-- HEXOKAY必须只和HREADY在同一个周期中有效。
-- HEXOKAY不能在与HRESP相同的周期中有效。
8.4 Exclusive Transfer restrictions
以下限制应用于独占传输:
-- 必须有一个单一的数据传输。
-- 必须注明为突发类型SINGLE或突发类型INCR。
-- 必须不包括一个BUSY传输
-- 地址必须与HSIZE表示的数据大小对齐。
-- HPROT信号的值必须保证独占访问监视器有传输可见性。
Note
HPROT信号必须保证独占访问监视器有传输可见性。如果独占访问监视器位于系统缓存的下游,则传输必须是不可缓存的。如果独占访问监视器位于系统缓存的上游,则允许传输为可缓存的。
对于一个独占读传输和一个独占写传输,被认为是同一个独占访问序列的一部分,以下信号对于两个传输必须是相同的:
-- HADDR, 地址.
-- HSIZE, 数据大小.
-- HPROT, 保护控制.
-- HBURST, 突发类型.
-- HMASTER, 主机标识符.
-- HNONSEC, 不安全,如果适用的话。
允许主机发出一个独占读传输,但绝不允许在相同的独占访问序列跟随一个独占写传输。
允许主机发出一个独占写传输,在这个传输之前没有在相同的独占访问序列下的独占读传输。在这种情况下,独占写传输必须失败,HEXOKAY响应信号必须无效。主机不能在同一时间点有两个独占传输未完成。在之前的独占传输的数据阶段进行时,不得发出独占传输的地址阶段。这应用于传输是否属于相同的独占访问序列。
允许在具有特定HMASTER值的独占传输的地址阶段发布,而具有不同HMASTER值的更早的专有传输的数据阶段正在进行。当之前具有不同HMASTER值得独占传输的数据阶段在进行时,允许具有特定HMASTER值的独占传输的地址阶段发出。
Note
独占传输的地址阶段定义为HEXCL有效并且HTRANS表明NONSEQ。当HTRANS指示IDLE时,HEXCL有效不是定义为Exclusive Transfer的地址阶段。
浙公网安备 33010602011771号