Exploring Microcontroller & Microprocessor Architectures

In summary,Microcontrollers typically have many peripherals and memories built into them while microprocessors are designed to interface with external peripherals and memories. Microprocessors are more powerful than microcontrollers and are used to run operating systems and software applications.
  • #1
pairofstrings
411
7
I drew picture of microcontroller and microprocessor based on what I read earlier. I am not sure if it's right. Tell me if I am missing anything here. If possible give me detailed figure of microcontroller's and microprocessor's internal stuff or give me a website that describes a real microcontrollers' and microprocessors' internals. I haven't seen any book so far that has detailed view of internals of these components. Also tell me if I can design these components using VLSI techniques (By writing and simulating codes(VHDL and VERILOG) and then synthesizing then generating the codes and then testing it on some FPGA)?

Do we have different architectures for microcontrollers and micprocessors?

I am learning these concepts but I need few insights and superficial knowledge to be motivated and I will know what I am going to come across and what I am going to be learning about. Please answer the above questions.

Thanks...
 

Attachments

  • Diff btw Controller and Processor.jpg
    Diff btw Controller and Processor.jpg
    13.2 KB · Views: 594
Last edited:
Engineering news on Phys.org
  • #2


Don't quote me as I never really look up. I just join in. The older processors like 8085, Z80, 8051 type of microprocessor have their own architecture in their ALU, instruction sets, registers etc. But this is really the core of the processor. They need peripherals like EEPROM, RAMS, Interrupt Controllers etc. Now a days, some of these processor core are implemented into a kind of all-in-one unit that not only can sustain on itself, it has special peripherals like ADC, DAC, USB interface, serial interface. Also to be a stand alone, they contain EEPROM for programs, RAM etc. They seem to call these family of processor Microcontrollers. Most of the time, you don't need to speed and high performance like the big Intel Pentium or newer processor. All you need is some dumb little 8 bits processors to do the job. They are easy to support, easy to program, it is perfect for smaller projects particular with all the add-ons.

For example, Cypress has a whole family of USB interface using 8051 core. I personally used an Analog Devices ADuC831 with mux ADC, multiple DACs etc. I implemented a whole controller with CAN bus interface by just one controller and a FPGA. Cypress mainly the USB interface, I don't recall they have ADC, DAC at the time, and some even need external memory. They must have newer ones that have more stuff in it now as 6 years is two generation or like a century ago already.

At lease in my days, 8051 and 68HC11 core were very common.
 
Last edited:
  • #3


Like yungman said, microprocessors usually are more limited in what they can do by themselves, and are designed to interface with many external peripherals and memories. A microprocessor is a processing unit that is very specialized hardware at doing a handful of general functions very well and very fast, and they are used to run a wide range of software applications.

Likewise, microcontrollers usually have many peripherals built into them and also many memories and memory interface controllers are included with them. A microcontroller has a processing unit with a wide range of hardware with many functions used to usually run 1 software application and used for a small number of specialized tasks (like sending signals to a motor and monitoring certain sensors).

Microcontrollers usually are more specific and have less powerful processor architecture to be cheap so you can put them in portable and disposable products. The best example of a microcontroller's processor is the ARM core architecture family. Microcontrollers also are generally designed to work more specifically for real time applications, while microprocessors often are used to run operating systems like windows 7 or post-processing software. Of course, the line is blurring as microcontrollers are now being built that operate in the 2GHz + and can run operating systems like in smart phones and mp3 players.

Basically a microprocessor is a stand-alone processing unit with a very specialized and fast instruction and data processing ability, but needs to be interfaced to other basic hardware functions (like program memory), and is generally useless by itself, while a microcontroller can do everything it needs without being interfaced to other hardware functions, can be programmed directly with internal non-volatile memory, and it can interface to other hardware if desired.
 
  • #4


Also, I would say your figure is incomplete and somewhat incorrect. Microcontrollers don't necessarily have internal RAM, but they can have internal RAM, and many processors in microcontrollers also have in-built memory too.
 
  • #5


DragonPetter said:
Also, I would say your figure is incomplete and somewhat incorrect. Microcontrollers don't necessarily have internal RAM, but they can have internal RAM, and many processors in microcontrollers also have in-built memory too.

You mean microcontrollers can have in-built memory in the processor and can also have memory outside the processor and all of these things are on the same IC.

And microprocessors only have processors with in-built memory in terms of registers...

Right?
 
Last edited:
  • #6


pairofstrings said:
You mean microcontrollers can have in-built memory in the processor and can also have memory outside the processor and all of these things are on the same IC.

And microprocessors only have processors with in-built memory in terms of registers...

Right?

Yes, microcontrollers have all kinds of internal memories but also have peripherals called "bus interface" or "memory controllers" that let them interface to other ICs like SDRAM or NAND flash.

Microprocessors can also have built in cache which is volatile memory that gives them faster access to data; that's what I thought you were referring to as in-built memory. And yes, they have registers and and program stacks and stuff like that too.
 
  • #7


And the microcontrollers are becoming more like a microprocessors these days because of more power packed into that processor of microcontroller except that in the case of microcontroller, RAM , Memory, in-built memory, processor are on the same IC but in the case of microprocessor Memory, RAM and other peripheral are not on the IC. Right? Then where are they located?
 
  • #8


pairofstrings said:
And the microcontrollers are becoming more like a microprocessors these days because of more power packed into that processor of microcontroller except that in the case of microcontroller, RAM , Memory, in-built memory, processor are on the same IC but in the case of microprocessor Memory, RAM and other peripheral are not on the IC. Right? Then where are they located?

Well, with the high-end microcontrollers they usually are interfacing to external RAM and flash storage ICs despite having other peripherals built in. This is because the amounts of memory needed for these applications are so high that they can't fit it into the microcontroller anymore. Those microcontrollers still have audio/visual codecs, A/D converters, and other specialized peripherals built into them, so they still are considered microcontrollers.

In microprocessors, the memory, RAM, and other peripherals are located on a motherboard usually. In the case of a PC computer architecture, the RAM interfaces to the software through an IC chip called a memory controller, and this bus is usually referred to as the north-bridge, while the other peripherals (graphics card, sound care, wireless network card) are interfaced on another controller on a bus called the south-bridge.
 
  • #9


DragonPetter said:
In the case of a PC computer architecture, the RAM interfaces to the software through an IC chip called a memory controller, and this bus is usually referred to as the north-bridge, while the other peripherals (graphics card, sound care, wireless network card) are interfaced on another controller on a bus called the south-bridge.

Sorry I'm little slow. I drew a figure and I think I understood it correctly. I am going to take a course on Computer Architecture later. This is going to help me. Thanks...
Can you confirm if the figure is right..
 

Attachments

  • North and South Bridge.jpg
    North and South Bridge.jpg
    13.7 KB · Views: 458
  • #10


The figure is close, but not quite right. The RAM block should be replaced with a CPU block and get rid of the software cloud all together and replace it with the RAM block. The north bridge and south bridge buses usually have different memory controllers as the buses have different interfaces (different I/O, control, and address lines), but the south bridge usually talks to the CPU through the northbridge as a middle man. I guess to answer your original question of how a microprocessor is interfaced to the other peripherals, you could say it is on a motherboard like I said, but it is implemented on the motherboard with something called a chipset, which is designed for a specific microprocessor architecture (x86 for example). see:
http://en.wikipedia.org/wiki/Chipset
http://en.wikipedia.org/wiki/Northbridge_(computing))
http://en.wikipedia.org/wiki/Southbridge_(computing))

Also, the software block probably should not be drawn in these diagrams because it is very much hardware, and only consider the software storage/processing after you have the hardware architecture drawn out and understood.

Remember there are always exceptions to these setups, and like I said this is specific to personal computers. There are many other configurations and architectures possible. I guess the point of drawing it out will help you distinguish it from a microcontroller though.
 
  • #11


Remember micro controller usually based on some primitive microprocessor core like I said before. The two are not un-related. A lot of the micro controller are based on very primitive 8 bit processor like 8051 where people are familiar with. Micro controller is meant to be a all in one processor for smaller, cheaper units.

Best way to do is look into a family of micro controller. Eg. look at Analog Devices ADuC8xx family. They have a lot of different micro controllers all based on 8051 processor. You can choose the one with the closest peripherals that suit you. I chose ADuC831 because it has an ADC with multiplex input so I can monitor different sensors. They have different amount of memories and other features you can choose from. Also the whole family of Cypress micro controllers with USB interface using 8051 also. You'll get a much better idea by getting your feet wet and look at the data sheets than to keep talking about definition of them. They are nothing more than names. Don't worry about getting the functional block diagram correct as they can be different for different family.
 
  • #12


yungman said:
A lot of the micro controller are based on very primitive 8 bit processor like 8051 where people are familiar with. Micro controller is meant to be a all in one processor for smaller, cheaper units.
Hmm.. suppose I use a 'Digital Signal Processors' and other processors and peripherals on a single IC chip then it's called a System-on-Chip but do you think it's still a microcontroller? I know they are just names but I am little curious. Please don't mind.
 
  • #13


Can't comment on those I never used for my design. But it is more important to get your feet wet on the real thing. All I care is to have a core that I am familiar with, the peripherals that I want for my purpose and call it good. There are so many of them out there that you'll be spending so much time to get an inclusive definition that you can just go and do a design!
 
  • #14


pairofstrings said:
Hmm.. suppose I use a 'Digital Signal Processors' and other processors and peripherals on a single IC chip then it's called a System-on-Chip but do you think it's still a microcontroller? I know they are just names but I am little curious. Please don't mind.

A DSP is a very specialized microprocessor intended for specialized applications (though most DSPs can probably be used for general microprocessor tasks):
http://en.wikipedia.org/wiki/Digital_signal_processor

SOC probably falls under the definition of a microcontroller, since they usually include everything needed for a basic computer, including some current sinks (if not a kitchen one). However, any person / company that can use it probably isn't too worried about the distinction between microprocessor / controller / SoC.
 

FAQ: Exploring Microcontroller & Microprocessor Architectures

What is the difference between a microcontroller and a microprocessor?

A microcontroller is a single chip that contains a CPU, memory, and other peripherals, while a microprocessor is only a CPU and requires external components for memory and other functions.

What are the advantages of using microcontrollers in electronic devices?

Microcontrollers offer a compact and cost-effective solution for building electronic devices, as they can perform multiple functions on a single chip and require fewer external components. They also consume less power and can be programmed for specific tasks.

How do microcontrollers and microprocessors communicate with other electronic components?

Microcontrollers and microprocessors can communicate with other electronic components through various communication protocols such as SPI, I2C, UART, and USB. These protocols allow for data transfer between devices and peripherals.

What factors should be considered when selecting a microcontroller or microprocessor for a project?

The factors that should be considered include the required processing power, memory capacity, communication protocols, and input/output capabilities. The cost and availability of the chip should also be taken into consideration.

How can one program a microcontroller or microprocessor?

Microcontrollers and microprocessors can be programmed using various programming languages such as C, C++, and assembly. There are also integrated development environments (IDEs) specifically designed for programming these chips, which provide tools for writing, compiling, and debugging code.

Back
Top