// system registers
MSR , Xt ; Write to System register
MRS Xt, ; Read from System register
// special-purpose registers
MSR , Xt ; Write to Special-purpose register
MRS Xt, ; Read from Special-purpose register
System registers的Reset
Arm architecture里Reset value只应用于具有RW属性的registers和register fields。但是有些特例:
Some RO registers or fields, including feature ID registers and some status registers or register fields, always return a known value.
Some RW and RO registers or register fields return status information about the PE. Unless the register description indicates that the value is UNKNOWN on reset, a read of the register immediately after a reset returns valid information.
Some RW and RO registers and fields are aliases of other registers or fields. In these cases, the reset behavior of the aliased register or field determines the value returned by a read of the register immediately after a reset.
WO registers that only have an effect on writes do not have meaningful reset values. However, an access to a WO register might affect underlying state, and that state might have a defined reset value.
IMPLEMENTATION DEFINED registers have IMPLEMENTATION DEFINED reset behavior.
在同1个PE上,对于system registers的read操作与之前instructions在执行上可以是任意的,也就是out of order的关系。除非有以下情况:
Any data dependencies between the instructions, including read-after-read dependencies, are respected. PS:也就是说有dependency关系的话,order关系还是要硬件遵循的。
The reads to the register do not occur earlier than the most recent Context synchronization event to its architectural position in the instruction stream. PS:因此CSE经常用于确保system registers的作用时间点。
All direct writes to the same register, that use the same encoding for that register, are guaranteed to occur in program order relative to each other.
All direct writes to a register occur in program order with respect to all direct reads to the same register using the same encoding.
Any System register access that an Arm Architecture Specification or equivalent specification defines as not requiring synchronization.
When FEAT_BRBE is implemented, execution of BRB INJ does not require explicit synchronization to use the result of direct writes to the Branch record injection data registers in program order before BRB INJ.
Program order, in the event that both the reads or writes are caused by an instruction executed on this PE, other than one caused by a memory access by this PE.
The order of arrival of asynchronous reads and writes at the PE relative to the execution of instructions that cause reads or writes.
The order of arrival of asynchronous reads and writes at the PE relative to each other.