This glossary describes some of the terms used in ARM manuals. Where terms can have several meanings, the meaning presented here is intended.
A mechanism that indicates to a core that the value associated with a memory access is invalid. An abort can be caused by the external or internal memory system as a result of attempting to access invalid instruction or data memory. An abort is classified as either a Prefetch or Data Abort, and an internal or External Abort.
See Also Data Abort, External Abort and Prefetch Abort.
- Addressing modes
A mechanism, shared by many different instructions, for generating values used by the instructions. For four of the ARM addressing modes, the values generated are memory addresses (which is the traditional role of an addressing mode). A fifth addressing mode generates values to be used as operands by data-processing instructions.
A data item stored at an address that is divisible by the number of bytes that defines the data size is said to be aligned. Aligned words and halfwords have addresses that are divisible by four and two respectively. The terms word-aligned and halfword-aligned therefore stipulate addresses that are divisible by four and two respectively.
- ARM instruction
A word that specifies an operation for an ARM processor to perform. ARM instructions must be word-aligned.
- ARM state
A processor that is executing ARM (32-bit) word-aligned instructions is operating in ARM state.
The FPU coprocessor bounces an instruction when it fails to signal the acceptance of a valid FPU instruction to the ARM processor. This action initiates Undefined instruction processing by the ARM processor. The FPU support code is called to complete the instruction that was found to be exceptional or unsupported by the FPU coprocessor.
See Also Trigger instruction, Potentially exceptional instruction, and Exceptional state.
An 8-bit data item.
- Condition field
A four-bit field in an instruction that specifies a condition under which the instruction can execute.
- Conditional execution
If the condition code flags indicate that the corresponding condition is true when the instruction starts executing, it executes normally. Otherwise, the instruction does nothing.
- Control bits
The bottom eight bits of a Program Status Register. The control bits change when an exception arises and can be altered by software only when the processor is in a privileged mode.
A processor that supplements the main processor. It carries out additional functions that the main processor cannot perform. Usually used for floating-point math calculations, signal processing, or memory management.
A core is that part of a processor that contains the ALU, the datapath, the general-purpose registers, the Program Counter, and the instruction decode and control circuitry.
See Current Program Status Register.
- Current Program Status Register (CPSR)
The register that holds the current operating processor status.
- Default NaN mode
A mode in which all operations that result in a NaN return the default NaN, regardless of the cause of the NaN result. This mode is compliant with the IEEE 754 standard but implies that all information contained in any input NaNs to an operation is lost.
- Denormalized value
See Subnormal value.
- Disabled exception
An exception is disabled when its exception enable bit in the FPCSR is not set. For these exceptions, the IEEE 754 standard defines the result to be returned. An operation that generates an exception condition can bounce to the support code to produce the result defined by the IEEE 754 standard. The exception is not reported to the user trap handler.
See Do Not Modify.
- Do Not Modify (DNM)
In Do Not Modify fields, the value must not be altered by software. DNM fields read as Unpredictable values, and must only be written with the same value read from the same field on the same processor. DNM fields are sometimes followed by RAZ or RAO in parentheses to show which way the bits must read for future compatibility, but programmers must not rely on this behavior.
- Double-precision value
Consists of two 32-bit words that must appear consecutively in memory and must both be word-aligned, and that is interpreted as a basic double-precision floating-point number according to the IEEE 754-1985 standard.
A 64-bit data item. The contents are taken as being an unsigned integer unless otherwise stated.
- Enabled exception
An exception is enabled when its exception enable bit in the FPCSR is set. When an enabled exception occurs, a trap to the user handler is taken. An operation that generates an exception condition might bounce to the support code to produce the result defined by the IEEE 754 standard. The exception is then reported to the user trap handler.
A fault or error event that is considered serious enough to require that program execution is interrupted. Examples include attempting to perform an invalid memory access, external interrupts, and undefined instructions. When an exception occurs, normal program flow is interrupted and execution is resumed at the corresponding exception vector. This contains the first instruction of the interrupt handler to deal with the exception.
- Exceptional state
When a potentially exceptional instruction is issued, the FPU coprocessor sets the EX bit, FPEXC, and loads a copy of the potentially exceptional instruction in the FPINST register. If the instruction is a short vector operation, the register fields in FPINST are altered to point to the potentially exceptional iteration. When in the exceptional state, the issue of a trigger instruction to the FPU coprocessor causes a bounce.
See Also Bounce, Potentially exceptional instruction, and Trigger instruction.
- Exception service routine
See Interrupt handler.
- Exception vector
See Interrupt vector.
The component of a floating-point number that normally signifies the integer power to which two is raised in determining the value of the represented number.
- External Abort
An indication from an external memory system to a core that the value associated with a memory access is invalid. An external abort is caused by the external memory system as a result of attempting to access invalid memory.
See Also Abort, Data Abort and Prefetch Abort.
The destination register and the accumulate value in triadic operations. Sd for single-precision operations and Dd for double-precision.
- Flush-to-zero mode
In this mode, the FPU coprocessor treats the following values as positive zeros:
arithmetic operation inputs that are in the subnormal range for the input precision
arithmetic operation results, other than computed zero results, that are in the subnormal range for the input precision before rounding.
The FPU coprocessor does not interpret these values as subnormal values or convert them to subnormal values.
The subnormal range for the input precision is -2Emin < x < 0 or 0< x < 2Emin.
The second source operand in dyadic or triadic operations. Sm for single-precision operations and Dm for double-precision
The first source operand in dyadic or triadic operations. Sn for single-precision operations and Dn for double-precision.
The floating-point field that lies to the right of the implied binary point.
A 16-bit data item.
- IEEE 754 standard
IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Std. 754-1985. The standard that defines data types, correct operation, exception types and handling, and error bounds for floating-point systems. Most processors are built in compliance with the standard in either hardware or a combination of hardware and software.
- Ignore (IGN)
Must ignore memory writes.
- Illegal instruction
An instruction that is architecturally Undefined.
The behavior is not architecturally defined, but is defined and documented by individual implementations.
The behavior is not architecturally defined, and does not have to be documented by individual implementations. Used when there are a number of implementation options available and the option chosen does not affect software compatibility.
In the IEEE 754 standard format to represent infinity, the exponent is the maximum for the precision and the fraction is all zeros.
- Input exception
A FPU exception condition in which one or more of the operands for a given operation are not supported by the hardware. The operation bounces to support code for processing.
- Intermediate result
An internal format used to store the result of a calculation before rounding. This format can have a larger exponent field and fraction field than the destination format.
- Interrupt handler
A program that control of the processor is passed to when an interrupt occurs.
- Interrupt vector
One of a number of fixed addresses in low memory, or in high memory if high vectors are configured, that contains the first instruction of the corresponding interrupt handler.
- Load/store architecture
A processor architecture where data-processing operations only operate on register contents, not directly on memory contents.
- Load Store Unit (LSU)
The part of a processor that handles load and store transfers.
See Load Store Unit.
- Memory bank
One of two or more parallel divisions of interleaved memory, usually one word wide, that enable reads and writes of multiple words at a time, rather than single words. All memory banks are addressed simultaneously and a bank enable or chip select signal determines which of the banks is accessed for each transfer. Accesses to sequential word addresses cause accesses to sequential banks. This enables the delays associated with accessing a bank to occur during the access to its adjacent bank, speeding up memory transfers.
Not a number. A symbolic entity encoded in a floating-point format that has the maximum exponent field and a nonzero fraction. An SNaN causes an invalid operand exception if used as an operand and a most significant fraction bit of zero. A QNaN propagates through almost every arithmetic operation without signaling exceptions and has a most significant fraction bit of one.
- Potentially exceptional instruction
An instruction that is determined, based on the exponents of the operands and the sign bits, to have the potential to produce an overflow, underflow, or invalid condition. After this determination is made, the instruction that has the potential to cause an exception causes the FPU coprocessor to enter the exceptional state and bounce the next trigger instruction issued.
See Also Bounce, Trigger instruction, and Exceptional state.
A processor is the circuitry in a computer system required to process data using the computer instructions. It is an abbreviation of microprocessor. A clock source, power supplies, and main memory are also required to create a minimum complete working computer system.
Reads are defined as memory operations that have the semantics of a load. That is, the ARM instructions LDM, LDRD, LDC, LDR, LDRT, LDRSH, LDRH, LDRSB, LDRB, LDRBT, LDREX, RFE, STREX, SWP, and SWPB, and the Thumb instructions LDM, LDR, LDRSH, LDRH, LDRSB, LDRB, and POP.
Java bytecodes that are accelerated by hardware can cause a number of reads to occur, according to the state of the Java stack and the implementation of the Java hardware acceleration.
A field in a control register or instruction format is reserved if the field is to be defined by the implementation, or produces Unpredictable results if the contents of the field are not zero. These fields are reserved for use in future extensions of the architecture or are implementation-specific. All reserved bits not used by the implementation must be written as 0 and read as 0.
- Rounding mode
The IEEE 754 standard requires all calculations to be performed as if to an infinite precision. For example, a multiply of two single-precision values must accurately calculate the significand to twice the number of bits of the significand. To represent this value in the destination precision, rounding of the significand is often required. The IEEE 754 standard specifies four rounding modes.
In round-to-nearest mode, the result is rounded at the halfway point, with the tie case rounding up if it would clear the least significant bit of the significand, making it even.
Round-towards-zero mode chops any bits to the right of the significand, always rounding down, and is used by the C, C++, and Java languages in integer conversions.
Round-towards-plus-infinity mode and round-towards-minus-infinity mode are used in interval arithmetic.
- Saved Program Status Register (SPSR)
The register that holds the CPSR of the task immediately before the exception occurred that caused the switch to the current mode.
See Should Be One.
See Should Be Zero.
See Should Be Zero or Preserved.
- Scalar operation
A FPU coprocessor operation involving a single source register and a single destination register.
See Also Vector operation.
- Short vector operation
A FPU coprocessor operation involving more than one destination register and perhaps more than one source register in the generation of the result for each destination.
- Should Be One (SBO)
Should be written as 1 (or all 1s for bit fields) by software. Writing a 0 produces Unpredictable results.
- Should Be Zero (SBZ)
Should be written as 0 (or all 0s for bit fields) by software. Writing a 1 produces Unpredictable results.
- Should Be Zero or Preserved (SBZP)
Should be written as 0 (or all 0s for bit fields) by software, or preserved by writing the same value back that has been previously read from the same field on the same processor.
The component of a binary floating-point number that consists of an explicit or implicit leading bit to the left of the implied binary point and a fraction field to the right.
See Saved Program Status Register.
The stride field, FPSCR[21:20], specifies the increment applied to register addresses in short vector operations. A stride of 00, specifying an increment of +1, causes a short vector operation to increment each vector register by +1 for each iteration, while a stride of 11 specifies an increment of +2.
- Subnormal value
A value in the range (-2Emin < x < 2Emin), except for 0. In the IEEE 754 standard format for single-precision and double-precision operands, a subnormal value has a zero exponent and a nonzero fraction field. The IEEE 754 standard requires that the generation and manipulation of subnormal operands be performed with the same precision as normal operands.
- Support code
Software that must be used to complement the hardware to provide compatibility with the IEEE 754 standard. The support code has a library of routines that performs supported functions, such as divide with unsupported inputs or inputs that might generate an exception in addition to operations beyond the scope of the hardware. The support code has a set of exception handlers to process exceptional conditions in compliance with the IEEE 754 standard.
A nonzero result or value that is between the positive and negative minimum normal values for the destination precision.
An exceptional condition in a FPU coprocessor that has the respective exception enable bit set in the FPSCR register. The user trap handler is executed.
- Trigger instruction
The FPU coprocessor instruction that causes a bounce at the time it is issued. A potentially exceptional instruction causes the FPU coprocessor to enter the exceptional state. A subsequent instruction, unless it is an FMXR or FMRX instruction accessing the FPEXC, FPINST, or FPSID register, causes a bounce, beginning exception processing. The trigger instruction is not necessarily exceptional, and no processing of it is performed. It is retried at the return from exception processing of the potentially exceptional instruction.
See Also Bounce, Potentially exceptional instruction, and Exceptional state.
A data item stored at an address that is not divisible by the number of bytes that defines the data size is said to be unaligned. For example, a word stored at an address that is not divisible by four.
Indicates an instruction that generates an Undefined instruction trap. See the ARM Architecture Reference Manual for more details on ARM exceptions.
For reads, the data returned when reading from this location is unpredictable. It can have any value. For writes, writing to this location causes unpredictable behavior, or an unpredictable change in device configuration. Unpredictable instructions must not halt or hang the processor, or any part of the system.
- Unsupported values
Specific data values that are not processed by the FPU coprocessor hardware but bounced to the support code for completion. These data can include infinities, NaNs, subnormal values, and zeros. An implementation is free to select which of these values is supported in hardware fully or partially, or requires assistance from support code to complete the operation. Any exception resulting from processing unsupported data is trapped to user code if the corresponding exception enable bit for the exception is set.
- Vector operation
An FPU coprocessor operation involving more than one destination register, perhaps involving different source registers in the generation of the result for each destination.
See Also Scalar operation.
A 32-bit data item.
Writes are defined as operations that have the semantics of a store. That is, the ARM instructions
SWPB, and the Thumb instructions
Java bytecodes that are accelerated by hardware can cause a number of writes to occur, according to the state of the Java stack and the implementation of the Java hardware acceleration.