Nintendo 3DS ARM Documentation

Terminology

This page details terminology that is commonly used when relating to ARM CPU internals.

  • RAO – Read-As-One

    • Hardware must implement the field as reading as all 1s.
    • Software can rely on the field reading as all 1s.
    • This description can apply to a single bit that reads as 1, or to a field that reads as all 1s.
  • RAO/SBOP – Read-As-One, Should-Be-One-or-Preserved on writes

    • Hardware must implement the field as Read-as-One, and must ignore writes to the field.
    • Software can rely on the field reading as all 1s, but must use an SBOP policy to write to the field.
    • This description can apply to a single bit that reads as 1, or to a field that reads as all 1s.
  • RAO/WI – Read-As-One, Writes Ignored

    • Hardware must implement the field as read as Read-as-One, and must ignore writes to the field.
    • Software can rely on the field reading as all 1s, and on writes being ignored.
    • This description can apply to a single bit that reads as 1, or to a field that reads as all 1s.
  • RAZ – Read-As-Zero

    • Same as RAO, but with 0s instead of 1s.
  • RAZ/SBZP – Read-As-Zero, Should-Be-Zero-or-Preserved on writes

    • Same as RAO/SBOP, but with 0s instead of 1s.
  • RAZ/WI – Read-As-Zero, Writes Ignored

    • Same as RAO/WI, but with 0s instead of 1s.
  • SBO – Should-Be-One

    • Hardware must ignore writes to the field.
    • Software should write the field as all 1s. If software writes a value that is not all 1s, it must expect an UNPREDICTABLE result.
    • This description can apply to a single bit that should be written as 1, or to a field that should be written as all 1s.
  • SBOP – Should-Be-One-or-Preserved

    • Hardware must ignore writes to the field.
    • If software has read the field since the processor implementing the field was last reset and initialized, it should preserve the value of the field by writing the value that it previously read from the field. Otherwise, it should write the field as all 1s.
    • If software writes a value to the field that is not a value previously read for the field and is not all 1s, it must expect an UNPREDICTABLE result.
    • This description can apply to a single bit that should be written as its preserved value or as 1, or to a field that should be written as its preserved value or as all 1s.
  • SBZ – Should-Be-Zero

    • Hardware must ignore writes to the field.
    • Software should write the field as all zeroes, otherwise it's considered unpredictable.
    • Applies to a single bit, or a bit field that should be all zeroes.
  • SBZP – Should-Be-Zero-or-Preserved on writes.

    • Same as SBOP, but with 0s instead of 1s.
  • UNKNOWN

    • Does not contain valid data, and can vary from moment to moment, or instruction to instruction.
    • An UNKNOWN value must not return information that cannot be accessed at the current or a lower level of privilege using instructions that are not UNPREDICTABLE and do not return UNKNOWN values.
    • Must not be documented or promoted as having a defined value or effect.
  • UNPREDICTABLE

    • Means the behavior cannot be relied upon. UNPREDICTABLE behavior must not perform any function that cannot be performed at the current or a lower level of privilege using instructions that are not UNPREDICTABLE.
    • UNPREDICTABLE behavior must not be documented or promoted as having a defined effect.
    • An instruction that is UNPREDICTABLE can be implemented as UNDEFINED.