How can we say an Intel i7 processor is a microprocessor? It has got:
- internal cache memory
- RAM
- BIOS memory
- ROM.
Only thing left would be I/O pins. If it has got that too, how come that is a microprocessor?
How can we say an Intel i7 processor is a microprocessor? It has got:
Only thing left would be I/O pins. If it has got that too, how come that is a microprocessor?
The terms microprocessor and microcontroller are most often defined by marketing people -- a certain sub-genus of Homo Sapiens that does not tend to follow common literary convention.
The terms microprocessor and microcontroller (and the related terms CPU and MCU) are often used incorrectly (or some might claim that they are not well defined). Even when they are used and defined correctly, there are many shades of grey between microprocessor and microcontroller that confuse matters.
For example, let's say that the Intel line of chips are called a Microprocessor. But if Intel came out with a line of highly integrated chips made for mobile devices they would be very close to a microcontroller -- but the Intel marketing people would never advertise them as microcontrollers! Instead they would call them something like "highly integrated mobile microprocessors," or maybe they'd invent a new term ("Intel On-The-Go" or something).
It is best to not get hung up on the terms microcontroller and microprocessor. Doing so risks causing brain damage -- or at the very least, you will stop being any fun at parties.
There's a major misunderstanding there: an i7 doesn't have RAM, ROM or BIOS memory - they're provided by the motherboard.
Actually, as was noted in a comment, the i7 does have a small amount of RAM (the cache can be used as RAM) and ROM (for the boot ROM). But even then, for the CPU to be useful, you still need external memory and peripherals.
The history of cpu design is what defines something as a microcontroller vs a microprocessor.
CPUs used to be huge boards with multiple integrated circuits and individual transistors. Then Intel had enough of that nonsense and created the Intel 4001 in 1971. It integrated the CPU and all of its main components into a single chip. This is considered the first microprocessor. It still needed external peripherals (like memory for it to do anything meaningful). Simply, it made things easier and smaller to create computers.
Then TI said, wait, why not throw everything in a single chip? So they came out with the first micro controller in 1971 as well, the TMS 1000. It combined read-only memory, read/write memory, processor and clock on one chip and was targeted at embedded systems. Intel responded with the 8048, and eventually the 8051, which is STILL a very popular microcontroller type (go figure).
Main differences at that point, microprocessors are part of bigger designs, while a microcontroller are plug and play and ready to go.
Today, anyone referring to a cpu is referring to a microprocessor. While microprocessers now tend to have a ton of extra things inside them (like you mentioned, multiple levels of caches, some ram, some rom, multiple caches), they are still designed as components for large computer systems, including allowing for co-processors (north/south bridges, fpus, gpus), externally extended memory buses, etc.). Microcontrollers haven't changed much. And then you have Systems on a Chip, which does the same to microprocessors as microcontrollers did (You can get Noac (NES) and Goac (Genesis) and Aoac (Atari) the size of a flash drive. Do you remember how big those were?).
The main difference between microprocessers and microcontrollers today is really that a microprocessor is still designed for larger systems, and takes ARBITRARY RUN TIME CODE (OS, user applications). Microcontrollers on the other hand, are still designed for embedded circuits, and are programmed with the only code they need (they are sometimes used for things like basic interpreters, but the majority are used for a single goal).
There is much overlap, but intended market and the goal for Arbitrary Run Time code vs embedded fixed code is what makes one or the other. (Analogy, microprocessors are like an Operating System, while microcontrollers are like single function applications.)
It's Micro-processor and we can not call it a Micro-controller because micro-controller is something that has On-chip peripherals like Timers/UARTs etc. Intel i7, in my knowledge, don't have any on-chip peripherals. Having loads of memory doesn't make it a Micro-controller. You may refer this question for more difference points.