Академический Документы
Профессиональный Документы
Культура Документы
Thumb-2
A64 AArch64
address register
P
C incrementer
PC
register
bank
instruction
decode
A multiply &
L register
U control
A B
b
u b b
s u u
s barrel s
shifter
ALU
D[31:0]
time
1 2 3
• Latency
Time it takes for an instruction to get through the pipeline.
• Throughput
Number of instructions executed per time period.
Pipelining increases throughput without reducing latency.
© G.N. Khan ARM Processors/Cores – EE8205: Embedded Computer Systems Page: 14
ARM CPU Features: Modified RISC
Multiple Load and Store Operation
Reduce the penalty of data accesses during a stall in the pipeline
Multiple load/store instructions can move any of the ARM registers
to and from memory, and update the memory address register
automatically after the transfer.
• This not only allows one instruction to transfer many words of
data (in a single bus burst), it also reduces the amount of
instructions needed to transfer data.
• Make the ARM code smaller than other 32-bit CPUs
• These instructions can specify an update of the base address
register with a new address after (or even before) the transfer.
RISC CPU architectures would normally use a second instruction (add or
subtract) to form the next address in a sequence.
ARM does it automatically with a single bit in the instruction, again a
useful saving in code size.
© G.N. Khan ARM Processors/Cores – EE8205: Embedded Computer Systems Page: 15
ARM CPU (More) Features
All instructions are conditionally executed:
• A very useful feature
• Loads, stores, procedure calls and returns, and all other operations
can execute conditionally after some prior instruction to set the
condition code flags
• Any ALU instruction may set the flags
• This eliminates short forward branches in ARM code
• It also improves code density and avoids flushing the pipeline for
branches and increase execution performance
Most of the architectures have conditional branch instructions
These follow a test or compare instruction to control the flow of
execution through the program
Some architectures also have a conditional move instruction,
allowing data to be conditionally transferred between registers
System on chip
EmbeddedICE JTAG
controller por t JTAG TAP EmbeddedICE
host data
system Embedded
ARM
trace
core
address macrocell
control
ARM9TDMI:
instr uction r. read data memor y reg
fetch shift/ALU access write
decode
Sign Extender
R15 Rd
(pc) Registers
R0 – R15
Rm
Rn
Barrel Shifter
MAC
ALU
Result Bus
3 3 2 2 2 2 2 2 2 1 1 1
1 0 9 8 7 6 5 4 3 6 5 0 9 8 0
APSR N C Z V Q
IPSR 0 or exception #
Shift Instructions
<shift> Meaning Notes
LSL #n Logical shift left by n bits Zero fills; 0 ≤ n ≤ 31
LSR #n Logical shift right by n bits Zero fills; 1 ≤ n ≤ 32
ASR #n Arithmetic shift right by n bits Sign extends; 1 ≤ n ≤ 32
ROR #n Rotate right by n bits 1 ≤ n ≤ 32
RRX Rotate right w/C by 1 bit
Old SP
PSR
Return Address
Increasing Addresses
12
Cycles
Latency:
17 Cycles
Tail Chaining
Without Tail-Chaining
With Tail-Chaining
NVIC INTERRUPTS
Navigation System
iPhone based on
ARM1176JZ
Communication Interfaces
• Allow data exchange between independent electronic modules in
the car, as well as remote sub modules.
• High Speed (up to 1Mbps) CAN (Control Area Network) is a 2-
wire, fault tolerant differential bus.
• It serves as the main vehicle bus type for connecting the various
electronic modules in the car with each other.
• LIN supports low speed (up to 20 kbps) single bus wire networks,
used to communicate with remote sub functions of the
infotainment system.
The main load types in a Cluster are the stepper motors that operate
the gauges and the various indicator and back light sources.
• The Stepper motor drivers are typically integrated in the μC.
• LED drivers are typically multi-channel devices with serial interfaces to
the μC or Darlington arrays.