原子操作控制 (ATOMCTL) 寄存器¶
我们拥有原子操作控制 (ATOMCTL) 寄存器。该寄存器决定了在各种组合下使用 S32C1I 指令的效果,这些组合包括:
有或没有能够对内存进行内部原子事务处理的一致性缓存控制器。
有或没有能够自行进行原子事务处理的智能内存控制器。
该核心针对这三种类型的缓存操作提供了一个默认值。
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 |
保留 |
保留 |
保留 |