原子操作控制 (ATOMCTL) 寄存器

我们拥有原子操作控制 (ATOMCTL) 寄存器。该寄存器决定了在各种组合下使用 S32C1I 指令的效果,这些组合包括:

  1. 有或没有能够对内存进行内部原子事务处理的一致性缓存控制器。

  2. 有或没有能够自行进行原子事务处理的智能内存控制器。

该核心针对这三种类型的缓存操作提供了一个默认值。

0x28: (WB: Internal, WT: Internal, BY:Exception)

在 FPGA 卡上,我们通常模拟一个可以实现 RCW 事务的智能内存控制器。对于带有外部内存控制器的 FPGA 卡,我们在执行缓存 (WB) 事务时让其在内部进行原子操作,并对非缓存操作使用内存 RCW。

对于没有一致性缓存控制器(非 MX)的系统,我们总是使用内存控制器的 RCW,尽管非 MX 控制器很可能支持内部操作。

客户警告

几乎所有的客户都是从不支持原子 RCW 内存事务的供应商那里购买内存控制器,因此他们很可能希望将此寄存器配置为不使用 RCW。

开发人员可能会发现,在缓存被旁路的情况下进行测试时,使用旁路 (Bypass) 模式下的 RCW 很方便;例如在研究缓存别名 (cache alias) 问题时。

请参阅 ISA 第 4.3.12.4 节;位

  WB     WT      BY
5   4 | 3   2 | 1   0

2 位

字段

取值:

WB - 回写 (Write Back)

WT - 直写 (Write Thru)

BY - 旁路 (Bypass)

0

异常

异常

异常

1

RCW 事务

RCW 事务

RCW 事务

2

内部操作

内部操作

保留

3

保留

保留

保留