A few words about ARM Architecture
- Posted by admin
- on Jan, 21, 2013
- in ARM Microcontroller, Electronics, General Know How, Interfacing Tutorial, STM32, STM32F4 Doscovery
- Blog No Comments.
This tutorial covers most of the theory you need to know about ARM Family of CPU architecture. It includes features of ARM core, Version History. Anyone who is not interested in reading theory and just want to use it for some quick application development can skip this part of tutorial.
ARM is a 32-bit RISC (Reduced Instruction Set Computer) processor architecture developed by ARM corporation. It was previously known as Advanced RISC Machines and prior to that Acron RISC Machines.The ARM architecture is licensed to companies that want to manufacture ARM-based CPUs or system-on-a-chip products. This enables the licensees to develop their own processors compliant with the ARM instruction set architecture. For example, the device we are using (LPC21XX) is ARM architecture based SOC product developed by NXP semiconductors, similarly all major semiconductor manufacturers like Atmel, Samsung, TI they all make ARM based SOCs. So learning about ARM is pretty cool as once you are familiar to ARM instruction set you can easily switch between various ARM based SOCs available in market.
ARM Processors are embedded in products ranging from cell phones, PDAs to automotive breaking systems. You probably own one yourself unknowingly ! ARM cores are widely used in everyday digital electronic devices. ARM7TDMI is one of the most successful ARM core, it provides up to 120 Dhrystone MIPS and is known for its high code density and lower power consumption which makes it ideal for mobile electronics applications. ARM7TDMI is the one which we are going to learn over time.
RISC (Reduced Instruction SET !, What does that mean ?)
If you ask me in single line about, What RISC Computer really mean, I would say, In RISC I put as many instructions as i want but i keep all of them simple at hardware level. So, if I execute a program on a CISC computer and that same program on RISC computer. RISC computer may take more number of instructions than CISC, but RISC will execute them fast at real Hardware level, So ultimately its not like, that RISC is always fast, it depends on what kind of program you are running.
The RISC Features present in ARM are as follows.
- Large Uniform register file, with 16 general purpose registers in user mode.
- Load/Store Architecture : The instructions that process data operate only on registers and are separate from instructions that access memory. So the instructions that deals with data (addition, subtraction etc.) do not access memory at all. Separate instructions fetch data from memory and keep them in local registers, data instructions operate with data in registers.
- Uniform and fixed length instruction fields. All ARM instructions are 32 bit long and most of them have a regular three operand encoding.
Download ARM Architecture reference Manual here
Figure above is a block level architecture representation for ARM CORTEX M3, Each version of ARM architecture has some additional features along with the ARM cpu core. There are lots of interesting features in architecture of each of the ARM versions, it is not possible to discuss them in a single post, there are books dedicated to discuss the features of ARM architecture, but a curious mind like yours
can figure out on your own that, why ARM based SOCs are so much popular in consumer electronics devices and other digital places.
Data Sizes and Instruction SETS
- As mentioned earlier ARM is a 32 bit architecture. Data moves In/Out in 32 bit/ 4 Bytes chunk.
- For ARMs Byte means 8 bits, Half Word means 16 bits and Word means 32 bits.
- Most ARM implements two instruction Sets, 32 bit ARM Instructions and 16 bit THUMB Instructions.
History
For detailed version history of ARM cpu cores please visit
http://en.wikipedia.org/wiki/List_of_ARM_microprocessor_cores
Here we talk mostly about LPC Family of ARM based micro controller by NXP semi conductor and STM32 Family of ARM based SOCs.
You may also like to read…
I2C EEPROM Interfacing with STM32F4 Discovery Board http://www.electroons.com/blog/?p=1
Comments & Responses
Recent Posts
- Make In India - What it means to Indian Maker’s Community ?
- Breadboard Power Supplies - Read before you Buy One
- Product Review : Discover Wi-Fi extension board for stm32f4 discovery
- Product Review: OKI78SR-5/1.5 Switching Regulator from muRata Power Solutions
- Product Review - STM8S- Discovery by ST Microelectronics
- Know How : Using GSM Modem - Part 2/2
- Know How : Using GSM Modem - Part 1/2
- ST Microelectronics launches STM32 Nucleo Series
- SW18020P Vibration Switch Testing “Shake Switch”
- TCM8230MD Camera Breakout Board PCB, Can also mount AT45DB Series Flash Memory Chip
- IC Packages of Many Kinds - A comprehensive list
- Keil project setup for STM32F4 Discovery
- DIY - 12V 7.2Ah SMF Battery Charger Circuit
- Lonely Night Projects : DIY PMMC and Series Motor Model
- Toys from Trash with Arvind Gupta
- BodyCom Technology by Microchip for Embedded Security & Authentication
- Programmers for Atmel AVR Microcontrollers
- Nikola Tesla - The Greatest Inventor Ever Lived
- Crystal, Resonator and Oscillators, what’s the difference ?
- Pitfalls in STM32 Standard Peripheral Library & Possible Solutions
- Interrupt Driven UART Serial Communication for Atmel AVR
- DIY PICkit2
- What Thomas Edison expected job candidates to know !
- What does ‘AVR’ stands for ?
- Interfacing MCP4725, 12 bit DAC with AVR Microcontroller #avrPrayog
- Interfacing AT93C46 SPI EEPROM with avrPrayog
- How to recover the Unallocated space on Your SD card due to Raspberry Pi OS
- Driving an Alphanumeric LCD with avrPrayog
- Using Arduino/Freeduino as AVR ICSP Programmer
- DoCircuits : Turn your Web Browser into Prototyping Desk
Things You find here
- ADC Interfacing (1)
- Analog Design (4)
- Analog Designs (7)
- Arduino (9)
- ARM Microcontroller (12)
- ARM7 (6)
- Atmel AVR (8)
- Battery Chargers (2)
- Camera Interfacing (1)
- Display (1)
- EAGLE (3)
- EEPROM (2)
- Electrical Enginnering (6)
- Electronics (28)
- General Interest (15)
- General Know How (25)
- GSM Modem (2)
- Hello World (4)
- I2C (2)
- Interfacing Tutorial (15)
- Lonely Night Projects (4)
- LPC21xx (4)
- Make (4)
- mbed (1)
- Microchip (1)
- Microchip PIC (1)
- NXP (4)
- Open Source Ecology (2)
- Open Source Hardware (9)
- PCB Designing (2)
- Physical Computing (5)
- PIC Related (1)
- Power Supply (5)
- Product Review (2)
- Raspberry PI (1)
- Repair Tricks (2)
- SPI (2)
- ST Micro (8)
- STM32 (8)
- STM32F4 Doscovery (8)
- stm8 bit (1)
- Switch Mode Power supply (2)
- Technology (3)
- UART (3)
- Uncategorized (1)
Recently Said
- st1114g on How to recover the Unallocated space on Your SD card due to Raspberry Pi OS
- KpT, on How to recover the Unallocated space on Your SD card due to Raspberry Pi OS
- Neomanderx3 on I2C EEPROM Interfacing with STM32F4 Discovery
- Gábor on DIY PICkit2
- sapher on I2C EEPROM Interfacing with STM32F4 Discovery
- Tonino on DIY PICkit2
- nate on How to recover the Unallocated space on Your SD card due to Raspberry Pi OS
- mahd on TCM8230MD Camera Breakout Board PCB, Can also mount AT45DB Series Flash Memory Chip
- Andrew on How to recover the Unallocated space on Your SD card due to Raspberry Pi OS
- pavan on DIY - 12V 7.2Ah SMF Battery Charger Circuit



