Microcontroller vs Microprocessor
The term microprocessor and microcontroller can be confusing for those who are new to this field. I recommend you to read our articles What is a Microcontroller ? and What is a Microprocessor ? to understand more about microcontroller and microprocessor.
Both microcontroller and microprocessor are programmable multipurpose silicon chip, clock driven, register based, accepts binary data as input and provides output after processing it as per the instructions stored in the memory. Let’s see the key differences between them.
Difference between Microcontroller and Microprocessor
Difference in Architecture
Microprocessor incorporates core functions of a computer’s central processing unit (CPU). It requires other peripherals connected externally, like RAM, ROM, input output devices etc. This gives us the flexibility of choosing peripherals, RAM, ROM etc. as per our need.
While a microcontroller can be said as a standalone device which has internal RAM, ROM and other peripherals like Analog to Digital Converter, Capture/Compare/PWM modules, UART, I2C, SPI etc. Microcontroller provides only some fixed amount of RAM or ROM. It is not possible to add additional RAM/ROM to majority of the microcontrollers available in the market. The only way is to choose a different microcontroller.
Difference in Application
Microprocessors are intended for general purpose applications while microcontrollers are made for specific applications. For example, you can use your computer for any applications like watching movie, web browsing, word processing, playing games etc. While the microcontroller used in your washing machine is programmed to control operations of the washing machine. You cannot use it for anything else unless it is programmed to do so.
Difference in Processing Power
Microprocessors have very high processing power when compared to microcontrollers. Usually clock speed of microprocessors are above 1GHz, while microcontroller’s clock speed ranges from 20MHz to 120MHz. As we stated above, a microcontroller is designed for specific application, so it needs only the hardware required for the specific application. For example, applications like washing machine, air conditioning etc. requires only limited amount of RAM, ROM and processing power. So the microcontroller is having less processing power when compared to a microprocessor.
Microprocessors are used from small tasks like word processing to high end task like in servers. That is why it is termed as a general purpose device. So it should have higher processing power. And it is also scalable since the peripherals like RAM, ROM etc. are connected externally.
Difference in Power Consumption
Usually microprocessor based systems have higher power consumption as it is having higher processing power and lot of power hungry peripherals are connected externally. While microcontroller based systems having less power consumption and it is even used in battery powered applications providing years of battery life.
Difference in Price
Comparing microprocessors and microcontrollers in cost is not justified. Undoubtedly microcontrollers are far cheaper than microprocessors. And the cost of systems based on microprocessor will vary a lot based on external peripherals required, while microcontrollers require fewer external peripherals.
And one more thing which we need to note here is that microprocessors runs above 1GHz clock speed while microcontroller usually operates below 200MHz. So the system cost and designing complexity will be higher with microprocessor due the speed of operation.
Difference in System Size
Usually microprocessor based systems have bigger form factor since it requires a lot of external peripherals when compared to a microcontroller. While microcontroller is widely used in portable and hand held devices.
|Microprocessor is commonly used in general purpose applications like in a computer systems.||Microcontroller is commonly used for application specific purposes like in embedded systems.|
|Microprocessors widely uses Von Neumann architecture.||Microcontrollers widely uses Harvard architecture.|
|Microprocessors mainly contain only processing unit, peripherals like RAM, ROM etc. has to be connected externally.||Unlike microprocessors, microcontrollers have peripherals like RAM, ROM etc. embedded into the chip.|
|The clock speed in which a microprocessor can operate is quite HIGH when compared to a microcontroller. Usually it is above 1GHz.||The clock speed in which a microcontroller can operate is quite LOW when compared to a microprocessor. Usually it ranges from 20MHz to 120MHz.|
|Microprocessors have very high computational capacity when compared to a microcontroller.||Microcontrollers have less computational capacity when compared to a microprocessor. It is intended for simpler tasks.|
|Usually microprocessors will have an embedded high performance math co-processor which enables microprocessors to do floating point calculations very fast,||Only high-end microcontrollers will have math co-processors.|
|Usually circuits associated with microprocessors are complex because of the number of external peripherals attached.||Usually circuits associated with microcontrollers are simple because most of the peripherals are embedded into the chip.|
|Higher system cost.||Lower system cost.|
|Higher power consumption.||Lesser power consumption.|
|Microprocessor based systems are large in size.||Microcontroller based systems are more compact or having small size.|
|Commonly used in personal computers, laptops, smartphones etc.||Commonly used in washing machines, smart door locks, air conditioners etc.|
|Manufactured by Intel, AMD etc.||Manufactured by Microchip, TI, NXP, Atmel etc.|
Who is the winner ?
As you might understand, we cannot declare a winner here, as we need to choose them depending on our applications. It is completely illogical to use a microprocessor for your washing machine. Technically a microprocessor will be able to handle all operations inside a washing machine but it will add cost of a computer to your washing machine. Similarly we cannot use a microcontroller as the main processor for your personal computer. In this case technically a microcontroller won’t be able to run all the applications that you use on a computer.
Do you feel like I missed something here ? Please comment below.