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

我们有原子操作控制 (ATOMCTL) 寄存器。该寄存器决定了在各种组合情况下使用 S32C1I 指令的效果

  1. 有或没有一个可以内部对内存进行原子事务处理的相干缓存控制器。

  2. 有或没有一个可以自行执行原子事务处理的智能内存控制器。

对于三种类型的缓存操作,核心会启动默认值

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

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

对于没有相干缓存控制器的系统(非 MX),我们始终使用内存控制器的 RCW,尽管非 MX 控制器可能支持内部操作。

客户警告

几乎所有客户都从不支持原子 RCW 内存事务的供应商处购买内存控制器,并且很可能希望配置此寄存器以不使用 RCW。

当测试缓存旁路时(例如研究缓存别名问题),开发人员可能会发现使用旁路模式下的 RCW 很方便。

请参阅 ISA 的第 4.3.12.4 节;位

  WB     WT      BY
5   4 | 3   2 | 1   0

2 位

字段

WB - 写回

WT - 写通

BY - 旁路

0

异常

异常

异常

1

RCW 事务

RCW 事务

RCW 事务

2

内部操作

内部操作

保留

3

保留

保留

保留