Beruflich Dokumente
Kultur Dokumente
1. Register organization
ARM has 37 registers in total, all of which are 32‐bits long.
– 1 dedicated program counter
– 1 dedicated current program status register
– 5 dedicated saved program status registers
– 30 general purpose registers
16 visible, R0 – R15
Others speed up the exception process
Special roles:
Hardware
o R14 – Link Register (LR):
optionally holds return address or branch instructions
Register 14 is the Link Register (LR). This register holds the
address of the next
instruction after a Branch and Link (BL or BLX) instruction, which
is the instruction
used to make a subroutine call.
o R15 – Program Counter (PC)
-When the processor is executing in ARM state:
– All instructions are 32 bits in length
– All instructions must be word aligned
– Therefore the PC value is stored in bits [31:2] with bits [1:0] equal to zero (as
instruction cannot be halfword or byte aligned).
Software
o R13 - Stack Pointer (SP)
R13 is used by the PUSH and POP instructions in T variants, and by the SRS and
RFE instructions from ARMv6.
o Current Program Status Register (CPSR)
o Saved Program Status Register (SPSR)
o On exception, entering mod mode:
1. Default Case
– The address is treated as truncated, with address bits[1:0] treated as zero
for word accesses, and address bit[0] treated as zero for halfword accesses.
2• Alignment checking: When the appropriate control bit is set, a data abort signal indicates
an alignment fault for attempting unaligned access.
3 .Unaligned access: When this option is enabled, the processor uses one or more
memory accesses to generate the required transfer of adjacent bytes transparently to the
programmer.
ENDIAN SUPPORT :A state bit (E-bit) in the system control register is set and cleared under
program control using the SETEND instruction
All of the ARM designs use a set-associative cache, with the degree of associativity and
the line size varying.
An interesting feature of the ARM architecture is the use of a small first-in first out
(FIFO) write buffer to enhance memory write performance. The write buffer is interposed
between the cache and main memory and consists of a set of addresses and a set of data
words. The write buffer is small compared to the cache,
and may hold up to four independent addresses.