As described in the previous post on Embedded System Design, the processor forms the most important part of the embedded system. In this post, we will discuss about various types of processors, processor classification and supporting technologies available at our disposable for the embedded system design. We will also look in to the considerations to be factored during embedded system processor selection process.
While in an embedded system, a micro controller is a more accurate term as most of them are highly integrated and are System-On-Chips, we will use the term “Processor” to refer to the processing core.
With the first popular processor “Intel 4004” available commercially in 1971, there are a large number of processors available for designing a system. These processors can be classified in a number of ways.
By Data width
The microprocessors are available in various data width configurations like 8-bit, 16-bit, 32-bit, 64-bit etc. Typically, a ‘n’ bit-width processor can manipulate a ‘n’-bit data in a single instruction cycle. For example, a 32-bit microprocessor will have registers of 32-bits wide and hence perform operations on a 32 bit data in a cycle than an 8-bit controller that may need more than 4 cycles to do the same process.
Higher bit-width processors will also generally come with a larger addressing capability thereby enabling heavier operating system to run. But with lower bit width, higher code density can be achieved enabling more functionality in a same amount of program memory.
By Number of Cores
Nowadays microprocessors are available with more than one cores typically, but not limited to, 2 or 4 cores. Such multi-core processors are well-suited for multitasking environments because they offer multiple execution contexts simultaneously. Various factors need to be considered during selection of a multi-core processor including the cache availability, power consumption etc. To use the multiple cores effectively, the operating system must support the same which is a norm for major OS’s lately.
By Type of Cores
In a multi-core processor, the cores inside may be of same or of different architectures. Symmetrical multi-core processor is the one in which the cores are identical. Asymmetrical multi-core processor unlike the former will have different cores with different instruction sets, clock speeds, and have differing memory and programming models. The big.LITTLE from ARM is an example of this architecture. The key benefit of such a model is that each of the cores is typically specialized to accomplish a specific type of task; therefore, yielding improved performance.
The main disadvantage of asymmetrical multi-core is that the application development is complex and highly application specific, whereas in symmetrical multi-core processors, it is relatively easier. Similarly the main disadvantage of symmetrical mulitcore is that, because the cores are designed for general use, they cannot be optimized to perform a particular type of task.
Various vendors have designed processor cores based on different design philosophies and technologies each suitable for different application scenarios. Some of them include the ARM, PPC, x86, AVR’s, SH etc
ARM is one of the leading suppliers of microprocessor technology, offering the widest range of microprocessor cores to address the performance, power and cost requirements for almost all application markets. Arguably ARM core offers the best Power-Performance ratio and is the most used in the battery-operated embedded segments especially with the mass proliferation of smart phones.
ARM cores are available in various computational capabilities. The latest v7 cores are available for different application scenarios such as Cortex-A series for Applications, Cortex-R for Real Time and Cortex-M for Micro-controller profiles.
ARM cores also available with different technologies like
- Thumb Instruction Set – 16 bit instruction set for higher code density
- Jazalle – Java Byte Code Execution
- VFP – Vector Floating Point Units
- SIMD – Single Instruction Multiple Data
- NEON – Advanced SIMD for media processing
- TrustZone – Security Extension
ARM architecture support processors in 32-bit and 64-bit core and in single-core/multi-core variants.
PowerPC is an acronym for Performance Optimization With Enhanced RISC – Performance Computing. This is a RISC architecture created by Apple–IBM–Motorola (AIM) alliance originally for personal computers. PowerPC CPUs have since become popular as embedded and high-performance processors. The PowerPC is mostly known for its use in Apple’s Macs and their design is optimized for use in communication segments. Along with the i386 and the ARM, the PowerPC (PPC) is a very well supported architecture in Linux.
x86 is the generic name of a microprocessor architecture first developed and manufactured by Intel. X86 architecture has been widely used in desktop and servers. While X86 processors are CISC based designs, the latest of them uses a RISC-based instruction execution unit internally.
The primary advantage is that we are very much used to these cores as they are the dominant in the PC segment. Hence any software application that works on the X86 PC also works on the embedded target with a very minimal effort. Also because of their prolonged leadership in the market, there are a numerous ready-made applications available.
The main disadvantage of X86 processor is that the power consumption is high compared to ARM processors along with limited industrial grade temperature availability. The design complexity as well as the overall cost is generally high.
The AVR is a modified Harvard architecture 8-bit RISC single chip micro-controller developed by Atmel. These cores are very popular and are very useful for low end application segments. A wide range of processors are available for selection from Atmel supporting multiple peripherals. They have also come up with 32 bit cores for powerful applications.
PIC is a family of modified Harvard architecture micro-controllers made by Microchip Technology. They are the most low cost devices and are very popular with the student community and are also used in the industrial segments. They are available in wide range of core and peripheral set options.
Now that the processor classification is discussed, in the next article, we will discuss about the other consideration in choosing the processor.