AHB传输---内存类型

AHB5定义了Extended_Memory_Types属性。这个属性定义了一个接口是否支持本节中描述的扩展存储器类型。如果这个属性没有定义,那么接口就不支持扩展存储器类型。

本规范的这一版为每类存储器类型添加了额外的HPROT信号,并为每种存储器类型提供了更详细的要求列表。

表3-5 HPROT位的含义

名称描述
HPROT[0]Data/Inst

被断言时,此位表示传输是数据访问。

未被断言表示传输是指令取指。

HPROT[1]Privileged

被断言时,此位表示传输是特权访问。

未被断言表示传输是非特权访问。

HPROT[2]Bufferable

如果HPROT[4:3]都未被断言,那么当此位为:

  • 未被断言,写响应必须来自最终目的地址。
  • 被断言,写响应可以从中间设备给出,但写传输必须及时在最终目的地址可见。
HPROT[3]Modifiable

被断言时,传输的特性可以被修改。

未被断言时,传输的特性不得修改。

HPROT[4]Lookup

被断言时,传输必须在缓存中查找。

未被断言时,传输不需要在缓存中查找,且传输必须传播到最终目的地址。

HPROT[5]Allocate

被断言时,出于性能原因,本规范推荐此传输应在缓存中分配。

未被断言时,出于性能原因,本规范推荐此传输不应在缓存中分配。

HPROT[6]Shareable

被断言时,表示此传输到的存储器区域与系统中的其他master共享。在传输对其他master可见之前,不得为传输提供响应。

未被断言时,表示此传输为非共享的,存储器区域不与系统中的其他master共享,传输的响应不保证对其他master可见。

1. 数据或指令

所有传输都包含数据或指令保护位HPROT[0]:

  • 当该位被断言(置为高)时,表示传输是数据访问。
  • 当该位未被断言(置为低)时,表示传输是指令取指。

协议将这种指示定义为一种提示。并非在所有情况下都准确,例如,当事务包含指令和数据项的混合时。 本规格说明书建议,除非访问明确已知为指令访问,否则主设备应将HPROT[0]设置为高,以指示数据访问。

2. 特权或非特权

所有传输都包含特权或非特权保护位HPROT[1]:

  • 当该位被断言时,表示传输是特权访问。
  • 当该位未被断言时,表示传输是非特权访问。

注意:一些处理器支持多个特权级别,请参阅所选处理器的文档以确定到AHB特权级别的映射。这里提供的唯一的区分是特权访问和非特权访问。

3. 存储器类型

本节提供了有关HPROT保护控制信号的额外信息,以及这些信号如何与不同类型的存储器相关联。表3-6显示了HPROT[6:2]信号与存储器类型之间的映射。表3-6未显示的位组合是不允许的。 设备存储器类型后缀“E”表示允许早期写响应。 设备存储器类型后缀“nE”表示不允许早期写响应,且写响应必须来自最终目的地址。

表3-6 HPROT[6:2] 映射到存储器类型

HPROT[6]HPROT[5]HPROT[4]HPROT[3]HPROT[2]存储器类型
00000Device-nE
00001Device-E
00010Normal Non-cacheable, Non-shareable
00 或 1110Write-through, Non-shareable
00 或 1111Write-back, Non-shareable
10010Normal Non-cacheable, Shareable
10 或 1110Write-through, Shareable
10 或 1111Write-back, Shareable

4.  设备存储器要求

对于所有设备存储器,即Device-nE和Device-E,要求行为如下:

  • 读取数据必须从最终目的地址获取。
  • 传输不得分割为多个传输或与其他传输合并。
  • 读取不得预取或推测性执行。
  • 写入不得合并。
  • 来自同一master的对同一slave的读写传输必须保持有序。
  • 传输的大小,如HSIZE所示,不得更改。
  • 允许将突发传输分解为多个较小的突发,但是原始突发中的NONSEQ(非顺序)和SEQ(顺序)传输的总数必须与结果较小突发中的NONSEQ和SEQ传输的总数相同。
  • 允许对HPROT的唯一更改是将传输从可缓冲(Bufferable)转换为非缓冲(Non-bufferable)。

对于Device-nE:

  • 写响应必须从最终目的地址获取。

对于Device-E:

  • 写响应可以从中间点获取。
  • 在给出写响应的点,写传输必须对所有其他master可见。
  • 写传输必须及时到达最终目的地址。

5. 普通存储器要求

对于所有普通存储器,即普通非缓存存储器、写通式和写回式,要求行为如下:

  • 读取可以是推测性的。
  • 读取可以获取比需要的更多的数据。
  • 写入可以合并。
  • 传输的特性,如HBURST和HSIZE,可以更改。
  • 来自同一master的对重叠地址的读写传输必须保持有序。
  • 对于共享事务,只有在传输对所有其他master可见时才给出响应。

另外,对于普通非缓存存储器:

  • 写传输必须及时在最终目的地址可见。

        注意:没有机制可以确定写传输何时到达其最终目的地址。

  • 读取数据必须从以下来源之一获取:
    • 最终目的地址
    • 正在传输至其最终目的地址的写传输
  • 如果读取数据是从写传输中获取的:
    • 它必须来自最新版本的写入。
    • 数据不得被缓存以服务于后续的读取。
  • 读取不得为后续使用而缓存获取的数据

注意 对于普通非缓存存储器,读取数据可以从仍在向其最终目的地址传输的写传输中获取,这与读取和写入传输同时传播到达最终目的地址是无法区分的。以这种方式返回的读取数据并不表明写传输在最终目的地址可见。

另外,对于写通式(Write-through):

  • 写响应可以从中间缓存或缓冲区获取。
  • 读取数据可以被缓存在中间缓存或缓冲区。
  • 读取和写入传输都需要进行缓存查找。
  • 写事务必须及时在最终目的地址可见。

        注意:没有机制可以确定写事务何时在最终目的地址可见。

另外,对于写回式(Write-back):

  • 写响应可以从中间缓存或缓冲区获取。
  • 读取数据可以被缓存在中间缓存或缓冲区。
  • 读取和写入传输都需要进行缓存查找。
  • 写事务不需要在最终目的地址可见。

6. 分配属性(Allocate attribute)

写通式和写回式传输包含一个分配属性,HPROT[5]:

  • 当该位被断言(置为高)时,出于性能原因,本规范推荐此传输应在缓存中分配。
  • 当该位未被断言(置为低)时,出于性能原因,本规范推荐此传输不应在缓存中分配。

7. 兼容性考虑

表3-7 展示了本规范推荐的映射,以便为仅包含 HPROT[3:0] 信号的组件提供 HPROT[6:0] 信号。

表3-7 HPROT[3:0] 信号组件提供 HPROT[6:0] 信号的映射

当在仅包含HPROT[3:0]的系统中使用支持HPROT[6:0]的组件时,那么高位的HPROT位可以被移除。

注意 这种方法会导致将写通式(Write-through)映射到非缓存存储器(Non-cacheable memory)。然而,也可以使用另一种方案,特别是如果提供了额外的信息来确定更合适的映射。

8.安全传输

AHB5定义了Secure_Transfers属性。这个属性定义了一个接口是否支持安全和非安全传输的概念。如果这个属性没有定义,那么接口就不支持安全传输。

支持安全传输的接口有一个额外的信号,HNONSEC。当进行非安全传输时,这个信号被断言;当进行安全传输时,这个信号未被断言。

HNONSEC是地址阶段信号,并且与HADDR具有相同的有效性约束。

在将不支持安全传输的组件进行接口连接时,必须小心处理。

注意:这个信号被定义为,当它被断言时,传输被识别为非安全的。这与ARM安全扩展实现中的其他信号一致。

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值