SlideShare a Scribd company logo
8
Most read
11
Most read
22
Most read
Introduction toIntroduction to
ARM Micro-controllersARM Micro-controllers
Ravikumar Tiwari
Assistant Professor
Dept. of Electronics, GHRCE
ravikumar.tiwari@raisoni.net
www.facebook.com/rravik
www.twitter.com/Ravi6096
ARM family of micro-controllersARM family of micro-controllers
“ARM” architecture: designed by Advance
RISC Machines Ltd., U.K. (www.arm.com)
Designs the ARM range of RISC processor
cores Many versions exist with backward
compatibility.
ARM does not fabricate silicon itself
ARM7TDMI is one popular ARM version.
Several manufacturers.
ARM Powered Products
ARM architecture basicsARM architecture basics
 Reduced Instruction Set Computer (RISC).
 32 bit architecture
 Optional 16 bit THUMB mode in ARM7TDMI
 Pipeline architecture
 Data-processing operations only on registers.
 “Accumulator” register not provided and not required.
 32 bit arithmetic operations in 1 instruction (except
division).
 Various modes of operation: user, supervisor …
 Exceptions such as interrupt, memory abort …
 Other special features to support Operating Systems.
ARM7TDMI architectureARM7TDMI architecture
One of the most popular ARM variant architectures.
Offers very good price/performance ratio.
2 Operating States:
◦ 32 bit ARM
◦ 16 bit THUMB.
ARM state offers very high performance (speed).
THUMB state offers tight code density (size).
Operating State can be changed by software.
Instruction length is 32 bit (ARM) or 16 bit (THUMB)
Pipelining
The ARM7TDMI core uses a pipeline to increase the speed of the
flow of instructions to the processor. This enables several operations
to take place simultaneously. The processing and memory systems
to operate continuously
A three-stage pipeline is used, so instructions are executed in three
stages:.
Fig. ARM7TDMI processor block
diagram
Fig. ARM7TDMI main
processor logic
Fig. ARM7TDMI processor functional diagram
ARM7TDMI modesARM7TDMI modes
7 modes of operation:
User (usr): normal program execution mode.
FIQ (fiq): to support DMA kind of operations.
IRQ (irq): for general purpose interrupt
handling.
Supervisor (svc): protected mode for OS.
Abort (abt): to handle memory access abort.
System (sys): Privileged user mode for OS.
Undefined (und): Entered when undefined
instruction is executed.
ARM7TDMI registersARM7TDMI registers
Total 31 registers – each 32 bit.
At any time, 16 general registers and 1 or 2 status
registers are visible in ARM state.
General registers are named R0 to R15.
R15 is same as Program Counter (PC).
R14 is same as Link Register (LR). When a sub-routine
is called, return address is automatically saved in LR.
R13 is often used as Stack Pointer (SP).
ARM7TDMI registers …ARM7TDMI registers …
CPSR (Current Program Status Register) contains
condition code flags (like Z, C) and current mode
bits.
SPSR (Saved Program Status Register) holds saved
copy of previous CPSR.
A subset of ARM registers is visible in THUMB
state.
Only R0 to R7 and PC, LR, SP are directly visible in
THUMB state.
ThumbThumb
 Thumb is a 16-bit instruction set
◦ Optimised for code density from C code (~65% of ARM code size)
◦ Improved performance from narrow memory
◦ Subset of the functionality of the ARM instruction set
 Core has additional execution state - Thumb
◦ Switch between ARM and Thumb using BX instruction
015
31 0
ADDS r2,r2,#1
ADD r2,#1
32-bit ARM Instruction
16-bit Thumb Instruction
For most instructions generated by compiler:
 Conditional execution is not used
 Source and destination registers identical
 Only Low registers used
 Constants are of limited size
 Inline barrel shifter not used
ARM / THUMB advantageARM / THUMB advantage
Many ARM operations can be done in 1 THUMB
instruction; some need 2 or more THUMB
instructions.
Using THUMB instructions results in 30-40%
reduction in code size.
Using ARM instructions provides faster performance.
Intermixing of ARM and THUMB code results in
optimum solution in terms of code size and speed.
ARM Instruction SetARM Instruction Set
All instructions are conditionally executed. Conditions
can be “if Z flag set”, “if C flag clear” etc. “Always” is
a valid condition.
Many instructions are of the form: “ADD R1,R2,R3” –
add contents of R2 with contents of R3 and store result
in R1.
Instructions to add, subtract, multiply 8/16/32 bit
numbers.
Instructions for logical operations AND, OR, EXOR…
ARM Instruction Set …ARM Instruction Set …
Instructions for comparison of 32 bit numbers.
MOV instructions to move contents of
registers and constants.
Immediate addressing mode supported, but not
all values of constants are legal.
Special Multiply-Accumulate instruction.
Load / store instructions to move data between
registers and memory.
ARM Instruction Set …ARM Instruction Set …
Load / store instructions support various addressing
modes like indexed, pre/post increment/decrement of
base, write-back of base and so on.
Special SWAP instruction to exchange contents of a
register and a memory location.
Branch (B) instruction to transfer control.
Branch and Link (BL) instruction to call a sub-routine.
BX instruction to branch and change state (ARM /
THUMB).
Applications of ARM Micro-controllersApplications of ARM Micro-controllers
Any application desiring 32 bit performance.
3.3 V (or even lower voltage) ARM micro-controllers
– suitable for battery operation.
Applications requiring faster performance at lower
power consumption.
Applications requiring higher performance at not-so-
high prices.
Some ARM7TDMI family membersSome ARM7TDMI family members
LPC21xx family (Philips).
ADuC7026 (Analog Devices).
AT91RM42800A (Atmel).
Future of ARMFuture of ARM
ARM is already most popular among 32 bit micro-
controllers.
Competes equally well with 16 bit micro-controllers,
due to THUMB architecture.
Competes with 8 bit micro-controllers due to better
price/performance ratio.
Newer ARM architectures include DSP capabilities to
compete with DSP processors.
ARM is likely to stay popular for long time.
Links for more information:Links for more information:
www.arm.com
www.semiconductors.philips.com
www.analogdevices.com
www.atmel.com
www.spjsystems.com/armboards.htm
www.spjsystems.com/scarm.htm
Thanks for your time!
?

More Related Content

What's hot (20)

PDF
Introduction to arm architecture
Zakaria Gomaa
 
PPT
AVR Fundamentals
Vinit Vyas
 
PDF
Unit II arm 7 Instruction Set
Dr. Pankaj Zope
 
PPTX
AVR ATmega32
Prashant Tiwari
 
PDF
ARM Architecture Instruction Set
Dwight Sabio
 
PPTX
PIC Microcontrollers
Abdullah Saghir Ahmad
 
PPTX
Pic microcontroller architecture
DominicHendry
 
DOCX
ARM7-ARCHITECTURE
Dr.YNM
 
PPT
8086 micro processor
Poojith Chowdhary
 
PPT
The ARM Architecture: ARM : ARM Architecture
sreea4
 
PPTX
8251 USART
ShivamSood22
 
DOC
PIC MICROCONTROLLERS -CLASS NOTES
Dr.YNM
 
PPT
ARM - Advance RISC Machine
EdutechLearners
 
PPT
PIC timer programming
Akash Puri
 
PPTX
Msp 430 architecture module 1
SARALA T
 
PDF
ARM CORTEX M3 PPT
Gaurav Verma
 
PPTX
8051 Microcontroller PPT's By Er. Swapnil Kaware
Prof. Swapnil V. Kaware
 
PPTX
ARM Processor
Aniket Thakur
 
PPTX
ARM Processors
Mathivanan Natarajan
 
PPTX
Instruction set of 8086
9840596838
 
Introduction to arm architecture
Zakaria Gomaa
 
AVR Fundamentals
Vinit Vyas
 
Unit II arm 7 Instruction Set
Dr. Pankaj Zope
 
AVR ATmega32
Prashant Tiwari
 
ARM Architecture Instruction Set
Dwight Sabio
 
PIC Microcontrollers
Abdullah Saghir Ahmad
 
Pic microcontroller architecture
DominicHendry
 
ARM7-ARCHITECTURE
Dr.YNM
 
8086 micro processor
Poojith Chowdhary
 
The ARM Architecture: ARM : ARM Architecture
sreea4
 
8251 USART
ShivamSood22
 
PIC MICROCONTROLLERS -CLASS NOTES
Dr.YNM
 
ARM - Advance RISC Machine
EdutechLearners
 
PIC timer programming
Akash Puri
 
Msp 430 architecture module 1
SARALA T
 
ARM CORTEX M3 PPT
Gaurav Verma
 
8051 Microcontroller PPT's By Er. Swapnil Kaware
Prof. Swapnil V. Kaware
 
ARM Processor
Aniket Thakur
 
ARM Processors
Mathivanan Natarajan
 
Instruction set of 8086
9840596838
 

Viewers also liked (20)

PPTX
LPC 2148 ARM MICROCONTROLLER
sravannunna24
 
PPTX
Introduction to ARM
Puja Pramudya
 
PDF
Introduction to ARM Architecture
Racharla Rohit Varma
 
PPTX
Fun with arduino
Ravikumar Tiwari
 
PPT
ARM Introduction
Ramasubbu .P
 
PDF
PIC CONTROLLERS
Tanmay Bakshi
 
PPT
Arm
vikky_cool87
 
PPT
ARM Architecture
Kshitij Gorde
 
PPTX
Pic microcontroller [autosaved] [autosaved]
gauravholani
 
PDF
02 : ARM Cortex M4 Specs || IEEE SSCS AlexSC
IEEE SSCS AlexSC
 
PPT
8-bit PIC Microcontrollers
Premier Farnell
 
DOCX
8086 pin diagram description
Akhil Singal
 
PDF
PIC microcontroller review
Mohsen Sarakbi
 
PDF
Communication protocols - Embedded Systems
Emertxe Information Technologies Pvt Ltd
 
PPT
A presentation on electronic wallet
Nitish Xavier Tirkey
 
PPT
Microcontroller 8051
Rashmi
 
PPT
Microprocessor 80386
yash sawarkar
 
PPTX
C Programming Language Tutorial for beginners - JavaTpoint
JavaTpoint.Com
 
DOC
8051 Microcontroller Notes
Dr.YNM
 
LPC 2148 ARM MICROCONTROLLER
sravannunna24
 
Introduction to ARM
Puja Pramudya
 
Introduction to ARM Architecture
Racharla Rohit Varma
 
Fun with arduino
Ravikumar Tiwari
 
ARM Introduction
Ramasubbu .P
 
PIC CONTROLLERS
Tanmay Bakshi
 
ARM Architecture
Kshitij Gorde
 
Pic microcontroller [autosaved] [autosaved]
gauravholani
 
02 : ARM Cortex M4 Specs || IEEE SSCS AlexSC
IEEE SSCS AlexSC
 
8-bit PIC Microcontrollers
Premier Farnell
 
8086 pin diagram description
Akhil Singal
 
PIC microcontroller review
Mohsen Sarakbi
 
Communication protocols - Embedded Systems
Emertxe Information Technologies Pvt Ltd
 
A presentation on electronic wallet
Nitish Xavier Tirkey
 
Microcontroller 8051
Rashmi
 
Microprocessor 80386
yash sawarkar
 
C Programming Language Tutorial for beginners - JavaTpoint
JavaTpoint.Com
 
8051 Microcontroller Notes
Dr.YNM
 
Ad

Similar to ARM Micro-controller (20)

PDF
Unitii armarchitecture-130305014346-phpapp01
mannepalli Srinivasulu
 
PPTX
Unit 4 _ ARM Processors .pptx
VijayKumar201823
 
DOCX
Arm processors' architecture
Dr.YNM
 
PPTX
Arm corrected ppt
anish jagan
 
PPT
arm-intro.ppt
MostafaParvin1
 
PPTX
Lecture8
misgina Mengesha
 
PPTX
ARM introduction registers architectures
KNaveenKumarECE
 
PPT
ARM.ppt
MostafaParvin1
 
PPTX
ARM Architecture,blkdgm,modes,family.pptx
nagavanikanagavel1
 
PPT
07-arm_overview.ppt
AswathRangaraj1
 
PDF
Introduction to ARM7 micro Processor.pdf
jiyamogaec22
 
PPT
07-arm_overview.ppt
meenakshi_l
 
PPT
LPC 2148 Instructions Set.ppt
ProfBadariNathK
 
PPT
ARM_2.ppt
MostafaParvin1
 
PDF
2 introduction to arm architecture
satish1jisatishji
 
PPTX
ARM Processor ppt.pptx
jayesh205437
 
PPT
arm.ppt, RISC Machines , Acorn, Apple and VLSI
Radhakrishna Singh
 
PPTX
Unit vi (2)
Siva Nageswararao
 
Unitii armarchitecture-130305014346-phpapp01
mannepalli Srinivasulu
 
Unit 4 _ ARM Processors .pptx
VijayKumar201823
 
Arm processors' architecture
Dr.YNM
 
Arm corrected ppt
anish jagan
 
arm-intro.ppt
MostafaParvin1
 
ARM introduction registers architectures
KNaveenKumarECE
 
ARM Architecture,blkdgm,modes,family.pptx
nagavanikanagavel1
 
07-arm_overview.ppt
AswathRangaraj1
 
Introduction to ARM7 micro Processor.pdf
jiyamogaec22
 
07-arm_overview.ppt
meenakshi_l
 
LPC 2148 Instructions Set.ppt
ProfBadariNathK
 
ARM_2.ppt
MostafaParvin1
 
2 introduction to arm architecture
satish1jisatishji
 
ARM Processor ppt.pptx
jayesh205437
 
arm.ppt, RISC Machines , Acorn, Apple and VLSI
Radhakrishna Singh
 
Unit vi (2)
Siva Nageswararao
 
Ad

More from Ravikumar Tiwari (7)

PDF
Course Outcome and Program Outcome Calculation(new method)
Ravikumar Tiwari
 
PPTX
ARM- Programmer's Model
Ravikumar Tiwari
 
PPTX
8051 Addressing modes
Ravikumar Tiwari
 
PPTX
8051 Assembly Language Programming
Ravikumar Tiwari
 
PPTX
8051 Microcontroller
Ravikumar Tiwari
 
PPTX
RISC Vs CISC, Harvard v/s Van Neumann
Ravikumar Tiwari
 
PPTX
Introducing Embedded Systems and the Microcontrollers
Ravikumar Tiwari
 
Course Outcome and Program Outcome Calculation(new method)
Ravikumar Tiwari
 
ARM- Programmer's Model
Ravikumar Tiwari
 
8051 Addressing modes
Ravikumar Tiwari
 
8051 Assembly Language Programming
Ravikumar Tiwari
 
8051 Microcontroller
Ravikumar Tiwari
 
RISC Vs CISC, Harvard v/s Van Neumann
Ravikumar Tiwari
 
Introducing Embedded Systems and the Microcontrollers
Ravikumar Tiwari
 

Recently uploaded (20)

PPTX
Biosensors, BioDevices, Biomediccal.pptx
AsimovRiyaz
 
PDF
Halide Perovskites’ Multifunctional Properties: Coordination Engineering, Coo...
TaameBerhe2
 
PDF
WD2(I)-RFQ-GW-1415_ Shifting and Filling of Sand in the Pond at the WD5 Area_...
ShahadathHossain23
 
PPTX
Knowledge Representation : Semantic Networks
Amity University, Patna
 
PPTX
OCS353 DATA SCIENCE FUNDAMENTALS- Unit 1 Introduction to Data Science
A R SIVANESH M.E., (Ph.D)
 
PPTX
What is Shot Peening | Shot Peening is a Surface Treatment Process
Vibra Finish
 
PPT
New_school_Engineering_presentation_011707.ppt
VinayKumar304579
 
PDF
Viol_Alessandro_Presentazione_prelaurea.pdf
dsecqyvhbowrzxshhf
 
PDF
Electrical Machines and Their Protection.pdf
Nabajyoti Banik
 
PDF
methodology-driven-mbse-murphy-july-hsv-huntsville6680038572db67488e78ff00003...
henriqueltorres1
 
PPTX
MODULE 05 - CLOUD COMPUTING AND SECURITY.pptx
Alvas Institute of Engineering and technology, Moodabidri
 
PDF
SERVERLESS PERSONAL TO-DO LIST APPLICATION
anushaashraf20
 
PPTX
fatigue in aircraft structures-221113192308-0ad6dc8c.pptx
aviatecofficial
 
PPTX
Numerical-Solutions-of-Ordinary-Differential-Equations.pptx
SAMUKTHAARM
 
PDF
Electrical Engineer operation Supervisor
ssaruntatapower143
 
PDF
20ES1152 Programming for Problem Solving Lab Manual VRSEC.pdf
Ashutosh Satapathy
 
PPT
Footbinding.pptmnmkjkjkknmnnjkkkkkkkkkkkkkk
mamadoundiaye42742
 
PPT
Testing and final inspection of a solar PV system
MuhammadSanni2
 
PDF
Digital water marking system project report
Kamal Acharya
 
PPTX
DATA BASE MANAGEMENT AND RELATIONAL DATA
gomathisankariv2
 
Biosensors, BioDevices, Biomediccal.pptx
AsimovRiyaz
 
Halide Perovskites’ Multifunctional Properties: Coordination Engineering, Coo...
TaameBerhe2
 
WD2(I)-RFQ-GW-1415_ Shifting and Filling of Sand in the Pond at the WD5 Area_...
ShahadathHossain23
 
Knowledge Representation : Semantic Networks
Amity University, Patna
 
OCS353 DATA SCIENCE FUNDAMENTALS- Unit 1 Introduction to Data Science
A R SIVANESH M.E., (Ph.D)
 
What is Shot Peening | Shot Peening is a Surface Treatment Process
Vibra Finish
 
New_school_Engineering_presentation_011707.ppt
VinayKumar304579
 
Viol_Alessandro_Presentazione_prelaurea.pdf
dsecqyvhbowrzxshhf
 
Electrical Machines and Their Protection.pdf
Nabajyoti Banik
 
methodology-driven-mbse-murphy-july-hsv-huntsville6680038572db67488e78ff00003...
henriqueltorres1
 
MODULE 05 - CLOUD COMPUTING AND SECURITY.pptx
Alvas Institute of Engineering and technology, Moodabidri
 
SERVERLESS PERSONAL TO-DO LIST APPLICATION
anushaashraf20
 
fatigue in aircraft structures-221113192308-0ad6dc8c.pptx
aviatecofficial
 
Numerical-Solutions-of-Ordinary-Differential-Equations.pptx
SAMUKTHAARM
 
Electrical Engineer operation Supervisor
ssaruntatapower143
 
20ES1152 Programming for Problem Solving Lab Manual VRSEC.pdf
Ashutosh Satapathy
 
Footbinding.pptmnmkjkjkknmnnjkkkkkkkkkkkkkk
mamadoundiaye42742
 
Testing and final inspection of a solar PV system
MuhammadSanni2
 
Digital water marking system project report
Kamal Acharya
 
DATA BASE MANAGEMENT AND RELATIONAL DATA
gomathisankariv2
 

ARM Micro-controller

  • 1. Introduction toIntroduction to ARM Micro-controllersARM Micro-controllers Ravikumar Tiwari Assistant Professor Dept. of Electronics, GHRCE [email protected] www.facebook.com/rravik www.twitter.com/Ravi6096
  • 2. ARM family of micro-controllersARM family of micro-controllers “ARM” architecture: designed by Advance RISC Machines Ltd., U.K. (www.arm.com) Designs the ARM range of RISC processor cores Many versions exist with backward compatibility. ARM does not fabricate silicon itself ARM7TDMI is one popular ARM version. Several manufacturers.
  • 4. ARM architecture basicsARM architecture basics  Reduced Instruction Set Computer (RISC).  32 bit architecture  Optional 16 bit THUMB mode in ARM7TDMI  Pipeline architecture  Data-processing operations only on registers.  “Accumulator” register not provided and not required.  32 bit arithmetic operations in 1 instruction (except division).  Various modes of operation: user, supervisor …  Exceptions such as interrupt, memory abort …  Other special features to support Operating Systems.
  • 5. ARM7TDMI architectureARM7TDMI architecture One of the most popular ARM variant architectures. Offers very good price/performance ratio. 2 Operating States: ◦ 32 bit ARM ◦ 16 bit THUMB. ARM state offers very high performance (speed). THUMB state offers tight code density (size). Operating State can be changed by software. Instruction length is 32 bit (ARM) or 16 bit (THUMB)
  • 6. Pipelining The ARM7TDMI core uses a pipeline to increase the speed of the flow of instructions to the processor. This enables several operations to take place simultaneously. The processing and memory systems to operate continuously A three-stage pipeline is used, so instructions are executed in three stages:.
  • 7. Fig. ARM7TDMI processor block diagram
  • 9. Fig. ARM7TDMI processor functional diagram
  • 10. ARM7TDMI modesARM7TDMI modes 7 modes of operation: User (usr): normal program execution mode. FIQ (fiq): to support DMA kind of operations. IRQ (irq): for general purpose interrupt handling. Supervisor (svc): protected mode for OS. Abort (abt): to handle memory access abort. System (sys): Privileged user mode for OS. Undefined (und): Entered when undefined instruction is executed.
  • 11. ARM7TDMI registersARM7TDMI registers Total 31 registers – each 32 bit. At any time, 16 general registers and 1 or 2 status registers are visible in ARM state. General registers are named R0 to R15. R15 is same as Program Counter (PC). R14 is same as Link Register (LR). When a sub-routine is called, return address is automatically saved in LR. R13 is often used as Stack Pointer (SP).
  • 12. ARM7TDMI registers …ARM7TDMI registers … CPSR (Current Program Status Register) contains condition code flags (like Z, C) and current mode bits. SPSR (Saved Program Status Register) holds saved copy of previous CPSR. A subset of ARM registers is visible in THUMB state. Only R0 to R7 and PC, LR, SP are directly visible in THUMB state.
  • 13. ThumbThumb  Thumb is a 16-bit instruction set ◦ Optimised for code density from C code (~65% of ARM code size) ◦ Improved performance from narrow memory ◦ Subset of the functionality of the ARM instruction set  Core has additional execution state - Thumb ◦ Switch between ARM and Thumb using BX instruction 015 31 0 ADDS r2,r2,#1 ADD r2,#1 32-bit ARM Instruction 16-bit Thumb Instruction For most instructions generated by compiler:  Conditional execution is not used  Source and destination registers identical  Only Low registers used  Constants are of limited size  Inline barrel shifter not used
  • 14. ARM / THUMB advantageARM / THUMB advantage Many ARM operations can be done in 1 THUMB instruction; some need 2 or more THUMB instructions. Using THUMB instructions results in 30-40% reduction in code size. Using ARM instructions provides faster performance. Intermixing of ARM and THUMB code results in optimum solution in terms of code size and speed.
  • 15. ARM Instruction SetARM Instruction Set All instructions are conditionally executed. Conditions can be “if Z flag set”, “if C flag clear” etc. “Always” is a valid condition. Many instructions are of the form: “ADD R1,R2,R3” – add contents of R2 with contents of R3 and store result in R1. Instructions to add, subtract, multiply 8/16/32 bit numbers. Instructions for logical operations AND, OR, EXOR…
  • 16. ARM Instruction Set …ARM Instruction Set … Instructions for comparison of 32 bit numbers. MOV instructions to move contents of registers and constants. Immediate addressing mode supported, but not all values of constants are legal. Special Multiply-Accumulate instruction. Load / store instructions to move data between registers and memory.
  • 17. ARM Instruction Set …ARM Instruction Set … Load / store instructions support various addressing modes like indexed, pre/post increment/decrement of base, write-back of base and so on. Special SWAP instruction to exchange contents of a register and a memory location. Branch (B) instruction to transfer control. Branch and Link (BL) instruction to call a sub-routine. BX instruction to branch and change state (ARM / THUMB).
  • 18. Applications of ARM Micro-controllersApplications of ARM Micro-controllers Any application desiring 32 bit performance. 3.3 V (or even lower voltage) ARM micro-controllers – suitable for battery operation. Applications requiring faster performance at lower power consumption. Applications requiring higher performance at not-so- high prices.
  • 19. Some ARM7TDMI family membersSome ARM7TDMI family members LPC21xx family (Philips). ADuC7026 (Analog Devices). AT91RM42800A (Atmel).
  • 20. Future of ARMFuture of ARM ARM is already most popular among 32 bit micro- controllers. Competes equally well with 16 bit micro-controllers, due to THUMB architecture. Competes with 8 bit micro-controllers due to better price/performance ratio. Newer ARM architectures include DSP capabilities to compete with DSP processors. ARM is likely to stay popular for long time.
  • 21. Links for more information:Links for more information: www.arm.com www.semiconductors.philips.com www.analogdevices.com www.atmel.com www.spjsystems.com/armboards.htm www.spjsystems.com/scarm.htm Thanks for your time!
  • 22. ?

Editor's Notes

  • #14: The Thumb instruction set was designed by looking at the instructions produced by the ARM C compiler from real application code to see which instructions were most often used. This subset of instructions was then compressed into 16-bit opcodes to give better code density and better performance from narrow memory A Thumb compatible processor is still a 32-bit processor, but it has the ability to execute either sections of ARM code or sections of Thumb code. The two instruction sets cannot be interleaved though, a special form of branch has to be used to change “state”. The diagram then shows the way that a typical 32-bit ARM instruction might be “compressed” into a 16-bit Thumb one.