arm architecture in details

33
1 Lviv Embedded TechTalk: ARM Architecture In Details Andrew Lukin 2017-11-23

Upload: globallogic-ukraine

Post on 22-Jan-2018

137 views

Category:

Technology


0 download

TRANSCRIPT

1

Lviv Embedded TechTalk:

ARM Architecture In Details

Andrew Lukin

2017-11-23

2

In general

3

RISC -- Reduced Instructions Set Computer

● Small set of simple and general instructions

● Fixed length instructions

● Simpler processor’s core logic

● Harvard architecture -- architecture with physically separate storage and signal pathways for instructions and data

● Load/Store architecture -- separate instructions for memory access

● A lot of general purpose registers or even register files

4

Evolution of the ARM architecture

5

Registers ARMv7

6

Registers AArch64 (ARMv8)

7

PSTATE at AArch32

8

OS-specific

9

ARMv7 exceptions

10

AArch64 exceptions model

11

Exceptions table

12

Exceptions

● A synchronous exception if it is generated as a result of execution or attempted

execution of the instruction stream, and where the return address provides

details of the instruction that caused it.

● An asynchronous exception is not generated by executing instructions, while the

return address might not always provide details of what caused the exception.

● In the ARMv7-A architecture, the prefetch abort, Data Abort and undef

exceptions are separate items.

● In AArch64, all of these events generate a Synchronous abort. The exception

handler may then read the syndrome and FAR registers to obtain the necessary

information to distinguish between them.

13

Interrupts

14

Execution states

15

Execution states - Registers mapping

16

MMU

17

MMU ARMv7

18

AArch64 MMU Support

19

MMU - Caches

● Point of Coherency (PoC) -- is the point at which all observers, for example,

cores, DSPs, or DMA engines, that can access memory, are guaranteed to

see the same copy of a memory location. Typically, this is the main external

system memory.

● Point of Unification (PoU) -- is the point at which the instruction and data

caches and translation table walks of the core are guaranteed to see the

same copy of a memory location

20

MMU + ASID

21

MMU - Normal memory

● Normal memory -- The processor can re-order, repeat, and merge accesses

to it.

Furthermore, address locations that are marked as Normal can be accessed

speculatively by the processor, so that data or instructions can be read from

memory without being explicitly referenced in the program, or in advance of

the actual execution of an explicit reference. Such speculative accesses can

occur as a result of branch prediction, speculative cache linefills, out-of-order

data loads, or other hardware optimizations.

22

MMU - Device memory

● Device memory --

○ Device-nGnRnE most restrictive (equivalent to Strongly Ordered

memory in the ARMv7 architecture).

○ Device-nGnRE

○ Device-nGRE

○ Device-GRE least restrictive

● Gathering of non Gathering (G or nG) -- whether multiple accesses can be

merged into a single bus transaction for this memory region.

● Re-ordering (R or nR) -- whether accesses to the same device can be re-

ordered with respect to each other.

● Early Write Acknowledgement (E or nE) -- whether an intermediate write

buffer between the processor and the slave device being accessed is allowed

to send an acknowledgement of a write completion

23

Instructions

24

Instruction changes

25

Instruction changes

26

Instruction changes

27

Multiplication instructions in assembly language

28

ABI

29

ABI for AArch64

30

PCS

31

Links

1. Programmer’s Guide for ARMv8-A (DEN0024A)

2. ARM® Architecture Reference Manual

ARMv8, for ARMv8-A architecture profile

DDI0487B_a_armv8.pdf

3. ARM® Architecture Reference Manual

ARMv7-A and ARMv7-R edition

DDI0406C_C_arm_architecture_reference_manual.pdf

32

Questions?

33

Thank you

Andrew Lukin

Sr Embedded Developer

[email protected]

+380-95-303-43-76