Lesson plan
Zero register
A zero register is a processor register that always returns the value zero and has no effect when it is written to. It is found in instruction set architectures including the CDC 6600, MIPS, SPARC, Alpha, ARM64, and RISC-V, among others. Zero appears as a constant in many instructions, notably "branch if zero", and optimizing these instructions can have a positive benefit on performance. Some architectures accomplish this with dedicated opcodes, specialized variations of their basic instructions. Implementing these requires additional logic in the instruction decoder. The zero register can accomplish the same effect without requiring new opcodes, although at the cost of dedicating a register to this feature, which may have negative impact for architectures with limited number of registers. The rationale given for including it in RISC-V is that "Dedicating a register to zero is surprisingly a large factor in simplifying the RISC-V ISA." The x86 architecture has no zero register, while ARM added a zero register for ARM64. Some instruction set architectures, such as System/360 through z/Architecture and POWER/PowerPC/Power ISA have registers that are not always zero, but that are zero when the register is used as an index register.
Article summary
A zero register is a processor register that always returns the value zero and has no effect when it is written to. It is found in instruction set architectures including the CDC 6600, MIPS, SPARC, Alpha, ARM64, and RISC-V, among others. Zero appears as a constant in many instructions, notably "branch if zero", and optimizing these instructions can have a positive benefit on performance. Some architectures accomplish this with dedicated opcodes, specialized variations of their basic instructions. Implementing these requires additional logic in the instruction decoder. The zero register can accomplish the same effect without requiring new opcodes, although at the cost of dedicating a register to this feature, which may have negative impact for architectures with limited number of registers. The rationale given for including it in RISC-V is that "Dedicating a register to zero is surprisingly a large factor in simplifying the RISC-V ISA." The x86 architecture has no zero register, while ARM added a zero register for ARM64. Some instruction set architectures, such as System/360 through z/Architecture and POWER/PowerPC/Power ISA have registers that are not always zero, but that are zero when the register is used as an index register.
Key claims
No claims recorded.
Discussion questions
- Summarise the article in your own words. Which single claim would you verify first, and why?
- Which claim in this article is most likely to be revised as the sources update? How would you check its current status?
- If two sources disagreed about one of these facts, what would you need in order to trust one over the other?
Bibliography
No sources recorded.
Key claims and bibliography are generated from the same tracked claims and sources as the article page.