AMBA5 AHB协议规范(AHB5,AHB-Lite)中文版-第九章 原子性

第九章

原子性
本章定义了两个原子属性。它包括以下部分:
– 单次拷贝原子性大小 on page 9-76.
– 多次拷贝原子性on page 9-77.

9.1 Single-copy atomicity size

单次拷贝原子性大小定义了传输中保证以原子方式更新的数据字节数。
单次拷贝原子性大小是为一组正在通信的组件定义的。例如:
– 处理器、DSP和DRAM控制器在一个64位的单拷贝原子组中。
– 一个更大的组,包括处理器、DSP、DMA、DRAM、SRAM和外设,属于一个32位的单拷贝原子组。
传输的单副本原子性保证永远不会大于其起始地址的对齐。例如,64位单副本原子组中没有对齐到8字节边界的突发没有任何64位单副本原子性保证。
当写传输更新内存位置时,必须保证观察者可以看到:
– 没有更新位置。
– 更新到至少一个单副本原子性大小的数据量。
不允许另一个观察者在某个时间点看到单副本原子性大小内的一些数据字节的更新,然后在稍后的时间点看到相同单副本原子性大小内的其他数据字节的更新。
与传输相关的字节选通不影响单副本原子性大小。
要求大于单副本原子性大小的传输必须以至少为单副本原子性大小的块更新内存。
Note
在确定单副本原子性大小时,不会考虑更新数据值的确切时刻。必须确保的是,没有主机能够观察到部分更新的原子数据形式。
例如,在许多系统中,诸如链表之类的数据结构是由32位的原子元素组成的。 这些元素之一的原子更新要求同时更新整个32位值。对于任何主机来说,在一个时间点上只观察16位的更新,然后在稍后的时间点上观察其他16位的更新,都是不可接受的。
更复杂的系统需要支持更大的原子元素,特别是64位的原子元素,以便主机可以使用基于这些更大的原子元素的数据结构进行通信。

9.2 Multi-copy atomicity

AHB5定义了Multi_Copy_Atomicity属性。定义此属性是为了指定系统提供多副本原子性。
如果Multi_Copy_Atomicity属性设置为True,则系统被定义为具有该属性。
不支持Multi_Copy_Atomicity属性的系统默认值为False。
一个系统被定义为多拷贝原子,如果:
– 所有代理都以相同的顺序观察到对相同位置的写操作。
– 一个写入到代理可观察的位置的操作,而不是发布者被所有代理都可观察。
通过避免使用转发缓冲区,可以确保多副本原子性,转发缓冲区可以使传输对系统中的某些代理可见,但对所有代理都不可见。
Note
在包含某种形式的硬件缓存一致性的系统中,还存在其他要求,以确保多副本原子性。这些额外的要求在本规范中没有进一步详细讨论。


版权声明:本文为Michael177原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。