0% found this document useful (0 votes)
3 views

module4

Embedded system design module 4

Uploaded by

Akshatha J
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

module4

Embedded system design module 4

Uploaded by

Akshatha J
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 18

ARM Processor Fundamentals

(Note: MAC = multiply-accumulate unit)

- A 32-bit processor implemented either by


Von Neumann architecture ( shown
above)
or
Harvard architecture with 2 types of instruction sets
— load and store instructions

- Instructions have 2 source registers (Rn and Rm) and one


destination register (Rd)

- Rm can be preprocessed in the barrel shifter before it enters the


ALU
2.1 Register

- Up to 18 active register:

16 data registers (r0~r15) : for holding either data or


address 2 processor status registers

- r13 : stack pointer (sp)


- r14 : link register (lr)
- r15 : program counter (pc)
- r0~r13 are orthogonal (equally well application)
- cpsr : current program status register
- spsr : saved program status register
2.2 Current Program Status Register

Divided into 4 fields (each with 8-bit wide):

- Flags : holding instruction conditions

- Status : reserved

- Extension : reserved

- Control : indicate the processor mode


1. Processor Modes

- The processor mode determines which registers are active and

the access rights to the cpsr register itself.


- 7 processor modes:

Processor mode Abbrev. Description Notes


Noraml program exection
User usr
mode
Run privileged OS tasks
System sys P
A protected mode for the OS
Supervisor svc p, e
Implements virtual memory
Abort abt p, e
and/or memory protection
Supports software emulation
Undefined und p, e
of hardware coprocessors
Used for general-purpose
Interrupt irq p, e
interrupt handling
Supports a high-speed data
Fast interrupt fiq p, e
transfer or channel process
[note] Privileged modes : p Execption modes : e

- Each process mode is either privileged or nonprivileged

A privileged mode allows full read-write access to the cpsr


A nonprivileged mode only allows to read access to the
control filed in the cpsr but still allows read-write access to
the condition flags.
2.2.2 Banked Registers

- 37 registers in the register file.


- 20 registers, called banked registers (identifed by the shading in
the diagram), are hidden from a program at different times.
- All processor modes except system mode have a set of associate
banked registers that are a subset of the main 16 registers.
- A banked register maps one-to-one onto a user mode register
- The processor mode can be changed by a program that writes directly
to the cpsr, if it has the privilege.
- The following exceptions and interrupts cause a mode change:
+ Reset
+ Interrupt request
+ Fast interrupt request
+ Software interrupt
+ Data abort,
+ Prefetch abort
+ Undefined instruction.
2.2.2 Banked Registers (cont.)

- The cprs is not coped into spsr when a mode change


is forced due to a program writing directly to the cpsr.

- The saving of the cspr only occurs when an exception or


interrupt is raised.
2.2.3 State and Instruction Sets

- There are 3 instruction


sets : ARM – 32-bit
instructions Thumb – 16-bit
instructions Jeazelle – 8-bit
instructions

- No intermingle sequence of different instruction set is


allowed.

- The hardware portion of Jazelle only supports a subset of the


Java byecodes; the rest are emulated in software.

2.2.4 Interrupt masks

- Two interruput marks—I and F—are used to stop specific


interrupt requests from interrupting the processor.
- The mask bits, 7 and 6 (or I and F), are used to control the
masking of IRQ and FIQ, respectively.
2.2.5 Condition Flags

- The hardware only sets the flags.


- To clear the flag you need to write to the cpsr.

- Bit 5 is used to set for thumb-enable.


- Bit 24 is uese to set for Jazelle-enable.
2.2.6 Condition Execution

- Most instructions have a condition attribute that determines if


the core will execute it based on the setting of the condition
flag.

- The condition attribute is postfixed in the instruction


mnemonic, which is coded into the instruction.
2.3 Pipeline

- to speed up instruction execution

- ARM9 : 1.1 Dhrystone MIPS per Mhz—an increasing in


instruction throughput by around 13% compared with an
ARM7.

- ARM10 : 1.3 Dhrystone MIPS per Mhz—an increasing in


instruction throughput by around 34% compared with an
ARM7.
-
- 2.3.1 Pipeline Executing Characteristics

- In ARM state, the pc always points to the address of the


instruction plus 8 bytes.
- In Thumb state, the pc is the instruction address plus 4
bytes

- The execution of a branch instruction or branching by the


direct modification of the pc causes the ARM core to flush its
pipeline
.
- ARM10 uses branch prediction which reduces the effect of a
pipeline flush.

- An instruction in the execute stage will complete even though


an interrupt has been raised. Other instructions in the
pipeline will be abounded.
2.4 Exceptions, Interrupts, and the Vector Table

- When an exception or interrupt occurs, the processor sets the


pc to a specific memory address.
- The interrupt address is within a special address called vector
table
- The entries in the vector table are instructions that branch to
specific routines designed to handles a particular exception or
interrupt.
- The memory map address 0x0000000 is reserved for the vector
table, a set of 32-bit words.
- On some processes the vector table can be optionally located
at a higher address in memory—starting at the offset
0xffff0000.
2.5 Core Extensions

- To improve performance, manage resources, and provide


extra functionality.
- - Three hardware extension: cache and tightly couple menory,
memory management, and coprocessor interface.

2.5.1 Cache and Tightly Couple Memory

- Two types of cache:

+ cache for the combination of data and instruction which is


attached to the von Neumann-style core.

+ cache for separated data and instruction which is attached


to the Harvard-style core.
1. Cache and Tightly Couple Memory (cont.)

- The tightly coupled memory (TCM), a type of fast SRAM, is


located close to the core for the real-time system.
- TCMs appear as memory in the address map and can be
accessed as fast memory.
- A combination of caches and TCMs is shown below.
2.5.2 Memory Management

- Generally, embedded system use multiple memory


devices—ROM, SRAM, FlahROM, DRAM

- It’s necessary to have a method to help organize these devices


and protect the system from applications trying to make
inappropriate accesses to hardware.

- ARM cores have 3 different types of memory management


hardware:
+ No extensions – nonprotected memory for small, simple
embedded systems.

+ Memory protection unit (MPU) – using a limited number of


memory region which are controlled with a set of special
coprocessor registers, and each region is defined with
specific access permission.

+ Memory management unit (MMU) – using a set of


translation table to provide fine-grained control over
memory, which are stored in main memory and provide a
virtual-to-physical address memory map as well as access
permission.
6. Architecture Revisions

Every ARM processor implementation executes a specific


instruction set architecture—ISA.

1. Nomenclature

- JTAG : IEEE1149.1 Standard Test Access Port

- EmbeddedICE macrocell : the debug hardware built into the


processor that allows breakpoints and watchpoints to be
set. (ICE : in-circuit emulator)

- Synthesizible : meaning that the processor core is supplied as


source code that can be compiled into a form easily used by
EDA (electronic design automation) tools.
2.6.2 Architecture Evolution
2.7 ARM Processor Families

-end-

You might also like