19

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

clabacchio
  • 13,481
  • 4
  • 40
  • 80
Abhijit K Rao
  • 527
  • 1
  • 5
  • 10

4 Answers4

42

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'.

Wouter van Ooijen
  • 48,407
  • 1
  • 63
  • 136
  • I would suggest that a useful dividing between microprocessors and microcontrollers is to say that the latter have enough stuff on chip to run at least somewhat usefully without any attached RAM or ROM. The only murky cases would be devices which include space for mask ROM, but are frequently sold without any useful code therein. I would regard such devices as microcontrollers if their behavior in use would be essentially indistinguishable from the behavior of one whose mask ROM was "programmed" but externally disabled. – supercat Jun 18 '12 at 15:49
  • @supercat: My division would not be according to 'how it can be used' but rather to 'how it is used' (or maybe 'how it is intended to be used'). According to you the LPC2478 would be a microcontroller, I consider it a hybrid. – Wouter van Ooijen Jun 18 '12 at 16:06
  • With 98K of on-board RAM and 512K of on-board flash, it certainly sounds as though it could be quite usefully employed in systems without any external memory; from a quick glance at the data sheet, I would regard that one as being in the "microcontroller" camp, and I wouldn't consider it a close call. – supercat Jun 18 '12 at 16:48
  • I know you don't, but I do. The chip is (or was) regularly used to run for instance Linux, so I think that although it certainly can be used as a microcontroler, it is not (only) a microcontroler. – Wouter van Ooijen Jun 18 '12 at 17:21
  • Perhaps it is all in the name? A micro-controller is a chip with a CPU mainly designed and used for controlling other components/chips, though still capable of processing data. A micro-processor is a chip with a CPU mainly designed and used for processing data, though it also obviously must control other components (as for instance external RAM). – Pål-Kristian Engstad Dec 09 '15 at 23:59
  • That doesn't solve the naming problem, because the designers often bet on both horses, and they certainly won't tell you that you use their chip in a way it wasn't designed for. There is no escape of the fact that some chips are simply both: they are designed to fulfill both roles, are used in both roles, and fulfill them well. – Wouter van Ooijen Dec 10 '15 at 06:38
  • I'm a bit late to the party, but can somebody explain what makes the Cortex so different from previous ARMs? – MadTux May 16 '18 at 15:47
  • That's a very different question, too large for a comment, and maybe too large for a 'normal' question. Very short: ARMs are a wide span, Cortexes are 'just' a reshuffle and renaming combined with a next step in the development of the ARM architecture. – Wouter van Ooijen May 16 '18 at 16:06
14

Technically, ARM is a microprocessor, or, more specifically, a microprocessor architecture. The thing to understand, though, is that it doesn't represent a physical microprocessor, but the design that allows to build one.

ARM Holdings is a multinational semiconductor group that doesn't manufacture any CPU; instead, they design them and then sell the architecture under licensing. The designs are used to build microprocessors as well as microcontrollers, but what ARM provides is just the core.

It's also wrong to say that it's a microcontroller, because it's the manufacturer that takes the ARM core and build all the peripherals around it.

clabacchio
  • 13,481
  • 4
  • 40
  • 80
10

Neither (and both)

ARM is a company who license CPU cores.

The ARM core can be, and is, used by lots of companies to make both microcontrollers and microprocessors.

Toby Jaffey
  • 28,796
  • 19
  • 96
  • 150
1

ARM is core for both microprocessor and micro-controller. ARM is based on CPU architecture so we generally call it has microprocessor when placed on a chip if ARM is combined with memories (RAM and ROM) on a single chip we can call it has micro-controller it has limited memory but when coming to microprocessor RAM and ROM are connected externally speed will be more.

user52027
  • 11
  • 1