在ARM手册中,res0和res1之间的区别是什么?

时间:2016-08-11 00:46:22

标签: arm

如注册字段描述中所示。例如:

  

[47:0] BADDR [47:x]   转换表基址,位[47:x]。位[x-1:0]为res0。

2 个答案:

答案 0 :(得分:5)

RES0在“ARMv8体系结构参考手册”中有正确定义(另请参阅the standard ARM glossary),但总的来说,它意味着具有未知值的保留字段,软件必须在初始化时写入全0,然后保留(通过对寄存器的读 - 修改 - 写操作)。值得注意的是,软件不应该依赖于随后读回的字段。

RES1,正如您现在可能想象的那样,仅与1而不是0相同(即初始化所有位设置)。

这本质上是一种向前兼容性承诺,如果该字段的任何部分被重新用于表示未来版本的体系结构中的某些内容,则当前保留的值将是“安全”。设置保留当前行为。有时,它还用于保留已删除过时功能的向后兼容性(例如,大多数保留的SCTLR位)。

答案 1 :(得分:0)

还值得注意的是,链接到的词汇表Notlike也是《 ARM体系结构参考手册》 ARMv8 PDF的一部分,当前位于:https://developer.arm.com/docs/ddi0487/a/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile 版本DDI0487A_j_armv8_arm,这是最终的ARMv8参考。

“词汇表”出现在该文档的末尾的“魔术”节中,没有节号。