原子操作控制 (ATOMCTL) 寄存器¶
我们有原子操作控制 (ATOMCTL) 寄存器。该寄存器决定了在各种组合情况下使用 S32C1I 指令的效果
有或没有一个可以内部对内存进行原子事务处理的相干缓存控制器。
有或没有一个可以自行执行原子事务处理的智能内存控制器。
对于三种类型的缓存操作,核心会启动默认值
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 |
保留 |
保留 |
保留 |