原子操作控制(ATOMCTL)寄存器¶
我们有原子操作控制(ATOMCTL)寄存器。该寄存器决定了在使用 S32C1I 指令时,在各种组合情况下的影响:
无论有无可以进行内部原子事务的相干缓存控制器。
无论有无可以自行进行原子事务的智能内存控制器。
对于三种类型的缓存操作,Core 以默认值启动。
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 |
保留 |
保留 |
保留 |