Sunday, 13 July 2014

Is ARM a microprocessor or microcontroller?


I have been having a hard time trying to know if ARM is a microprocessor or microcontroller or something else?



Answer



Neither.


ARM is a CPU architecture (more accurate, a family of related CPU architectures). If you put that CPU (or anyother) CPU on a chip all by itself, you have a microprocessor (like they did in the age-old Acorn machines). If you combine it with ROM (Flash), RAM and peripherals on one chip, you have a microcontroller (example: LPC2148).


Things can get a bit muddy when you combine the CPU with ROM and RAM, but also provide the data, address and control lines on the pins, so external memory can be added. Such a chip is can be used either in microcontroller mode, or in microprocessor mode. (example: LPC2478)


Nowadays smaller systems (up to 0.5Mb Flash, a few 10's Kb RAM) are available as microcontroller. Larger systems (typically running a Linux or something similar) are typically composed of a microprocessor with external RAM. (ROM can be external too, or a small boot-rom on chip + an SD card or similar). Examples: The Raspberry Pi and other small Linux boards, the ESP8266, or open up any mobile phone, set-top box, modem/router, etc.



Funny note: microcontrollers tend to be short on RAM, hence the run from Flash, which often limits their speed. Microprocessors often have plenty RAM, have a slower Flash, from which the code and data is loaded into RAM for execution.


Nowadays (2015) the term ARM is increasingly confusing, because it can refer to the company that makes the ARM designs, or to one of the designs. (The ARM company itself does not make chips, it licenses its designs to chip makers.) The recent Cortex 'family' of designs is sufficiently different from the old ARM designs that I prefer not to call it 'ARM'.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...