AHB协议翻译(三)
7、时钟和复位
7.1.1时钟
每个组件使用单个时钟源HCLK。所有输入信号均在HCLK的上升沿采样,所有输出信号的变化必须发生在HCLK上升沿之后。
7.1.2复位
HRESETn是唯一复位信号,可以异步置为,但需要HCLK上升沿后同步置低。
组件必须定义复位信号需要保持的最小周期数,以确保组件完全复位并输出所需要的复位状态。
在复位期间,所有主机必须确保地址和控制信号处于有效电平,并且HTRANS[1:0]指示IDLE。
在复位期间,所有从机必须确保HREADYOUT为高电平。
8、独占(exclusive)传输
8.1介绍
AHB5定义了Exclusive_Transfers属性。此属性如果为true,则表明支持独占传输。
独占传输提供了一套支持旗语操作的机制。
独占访问序列是来自单个主机的独占传输序列,使用以下步骤操作
- 从地址执行独占读取操作
- 根据从独占读取中获得的数据值计算要存储到该地址的新数据。
- 在独占读操作和独占写操作之间可以存在其他非独占传输。
- 使用新数据值对同一地址进行独占写操作。
- 如果自第一步独占读操作以来没有其他主机写入该位置,则独占写入操作成功,并更新内存。
- 如果该期间有其他主机写入该位置,则独占写入失败并且内存位置未更新。
- 对独占写操作的响应指示传输是成功还是失败。
这个操作流程确保只有当存储到内存的位置仍然保存着用于计算要写入到该位置的新值时,内存位置才会被更新。
如果独占写传输失败,预计主机将重复整个独占访问流程。
在一个独占读传输之后,同一个主机对同一个或重叠的位置进行更新是否会导致相关的独占写传输成功或失败,这是由IMPLEMENTATION定义的。
8.2独占访问监视器
需要独占访问监视器来支持独占访问流程,并且此监视器必须能够确定独占写入传输是成功还是失败。
独占访问监视器必须能够同时监视系统中每个具有独占访问能力的主机的至少一个地址位置。
整体系统中并未定义独占访问监视器的位置。但是,必须放置它,使它能够观察所有支持独占访问地址的独占访问。例如,如果一个系统包括多个内存控制器,则所有独占访问都通过包含独占访问监视器的中心点路由,或者每个内存控制器都需要一个单独的独占访问监视器。
不要系统支持对所有地址的独占访问。系统需要提供访问不支持独占访问序列地址的故障安全机制。通常,系统支持对主存储器的独占访问,但不支持对任何外围设备的独占访问。
8.3独占访问信号
HEXCL | 指示当前传输为独占传输。该信号是地址相位信号,具有与HADDR相同时序。 |
---|---|
HMASTER[m:0] | 主标识符。存在多个具备独占能力的主机时,必须生成此信号以区分线程。主设备生成的HMASTER将与互联组件生成的值相结合,以确保呈现给独占访问监视器的HMASTER的值是唯一的。 |
HEXOKAY | 指示独占传输成功或失败 |
HMASTER的位宽有IMPLEMENTION定义。然后此spec推荐以下宽度
- 对于主机,有几个具备独占访问能力的主机位宽就是几。
- 对于主机互联组件,可以选为4bit。当然这是可选的,也可以支持更大位宽配置。
- 对于从机或监控总监,可以选为8bit。也可支持更大位宽配置。
HMASTER允许用于独占传输以外的操作。允许系统中的互联组件和从机使用细心好来区分不同主机并适当调整它们行为。因此必须为所有传输提供有效HMASTER,而不仅仅是独占传输。
8.3.1响应信号
HEXOKAY拉低时,表示传输失败,原因可能如下
- 尝试对不支持独占传输的地址进行操作
- 独占传输写入失败,因为自独占传输读操作以来,该位置数据发生了变化。
如果一个地址位置不支持独占传输,主机可以通过确保它总是先执行独占读传输来确保它不会尝试执行独占写传输到该地址位置。主机可以通过确保它一直对那个位置首先执行一个独占读传输确保它不会试图对一个不支持独占传输地址位置执行独占写传输。
约束HEXOKAY
- 必须只和HREADY在同一个周期中有效
- 不能和HRESP相同的周期中有效
8.4独占传输的限制
以下限制适用于独占传输
- 必须有一个单一的数据传输
- 必须指示突发类型为incr或single
- 不能包括BUSY传输
- 地址必须与HSIZE指示的数据大小对齐
- HPROT信号的值必须保证独占访问监视器具有传输可见性
如果独占访问监视器位于系统缓存的下游,则传输必须是不可缓存的。如果独占访问监视器位于系统缓存的上游,则允许传输是可缓存的。
为了将独占读取传输和独占写入传输视为同一独占访问序列的一部分,以下信号对于两个传输必须相同
- HADDR
- HSIZE
- HPROT
- HBURST
- HMASTER
- HNONSEQ
允许主机发出一个独占读传输,但绝不允许在相同的独占访问序列跟随一个独占写传输。
允许主机发出一个独占写传输,在这个传输之前没有在相同的独占访问序列下的独占读传输。在这种情况下,独占写传输必须失败,
一个主机不得在同一时间点有两个未完成的独占传输。当先前独占传输的数据阶段正在进行时,不得发出独占传输的地址阶段。无论传输是否属于同一独占访问序列,这一点都适用。
当具有不同HMASTER值的较早独占传输的数据阶段正在进行时,允许发出具有特定HMASTER值的独占传输的地址阶段。
独占传输的地址阶段定义为当HEXCL有效且HTRANS指示NONSEQ时。当HTRANS指示空闲时,HEXCL的置位不被定义为独占传输的地址阶段。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】