About 8.3 billion microprocessors were produced worldwide in 2009. However, microprocessors for information processing such as personal computers (PC) is about 0.15 billion (which is only 2% of the total sold). The remaining 98% is used for embedded systems.
A real-time system is required to complete processing in a timely and reliable manner. Its output results must be produced in response to input conditions within a deterministic time limit (often in a range of micro seconds). If the results are not produced within that time limit, unpredictable consequences will occur, potentially damaging the system or the people relying on that system.
Programmable Logic Controller (PLC) is one of the real-time control systems widely used for electro-mechanical process automations such as machinery control in factory assembly lines. Unlike consumer applications, electro-mechanical automations require real-time processing capability. A microcontroller (MCU) is commonly chosen for PLC implementation due to its simple architecture which ensures real-time interrupt response.
Architecture migration takes multiple areas into consideration, including hardware architectural differences, operating systems, system firmware, and migration/development tools. Another architecture aspect to be considered when migrating from MCU to Intel® Atom™ microarchitecture is moving from a uni-processor serial code to a software system that supports Intel® Hyper-Threading Technology. This paper mainly focuses on hardware interrupt architectural analysis which is an essential consideration for real-time industrial control applications.
Microprocessor vs. Microcontroller Architecture Differences
A microprocessor (MPU), such as the Intel® Atom™ processor or Intel® Core™ i7 processor, contains no memory, graphics, or peripherals on the processor itself. For this reason, they are usually referred to as general-purpose microprocessors.
Memory, graphics, and peripherals (external to the processor) are required for systems that are implemented using MPUs. Most of the current MPU systems realize memory, graphics, and peripherals through chipsets, such as Graphics and Memory Controller Hub (GMCH), I/O Controller Hub (ICH), or System Controller Hub (SCH). Although it incurs higher cost, they have the advantage of versatility such that the designer can decide on the amount of memory and I/Os needed to fit the task of the target systems.
A microcontroller (MCU) has a CPU in addition with a fixed amount of memory and peripherals on a single chip. Therefore, external memory or peripherals are not common for systems built from MCUs. In general, when compared to MPUs, MCUs have limited processing power and lack of graphic capability. Systems built from MCUs often require some I/O operations to read signals and turn on/off certain bits. Many MCUs are focused on specific end applications and integrate specific I/O to suit for example ADC, DAC, PWM, etc.
Figure 1. Microprocessor (MPU) System
Figure 2. Microcontroller (MCU) System
Microprocessor vs microcontroller
Microprocessor (MPU) = CPU
Microcontroller (MCU) = CPU + Peripherals + Memory
Peripherals = I/O Ports, Clock, Timers, UARTs, ADC/DAC.....
Memory = EEPROM, SRAM, EPROM, Flash.....
The architectures of MCU and the Intel® Atom™ processor are different in terms of instruction sets, registers, and memory categories. Despite the architectural differences, the beauty of software development using high-level programming language (such as C-language) is that the source code is portable between hardware architectures. High-level language compilers handle instruction sets and register differences, and generate the machine code for the target processor architecture.
For a long time, the C language has been the high-level language of choice for embedded systems development. Widely available open source software is available for x86 architectures and other architectures including MCUs, which makes it relatively easy to escape from the baggage of legacy product architectures when considering new product designs.