Role of Processor Selection in Embedded Systems, Use of Software Tools For Development of An Embedded Systems
Role of Processor Selection in Embedded Systems, Use of Software Tools For Development of An Embedded Systems
Following factors need to be considered during processor selection for an embedded system
Performance Considerations
Power considerations
Peripheral Set
Operating Voltage
Specialized Processing Units
Price
Performance Considerations
The performance speed of a processor is dependent primarily on its architecture and its
silicon design.
Evolution of fabrication techniques helped packing more transistors in same area there by
reducing the propagation delay.
Also presence of cache reduces instruction/data fetch timing.
Pipelining and super-scalar architectures further improves the performance of the
processor.
Power considerations
Increasing the logic density and clock speed has adverse impact on power
requirement of the processor.
A higher clock implies faster charge and discharge cycles leading to more power
consumption.
More logic leads to higher power density there by making the heat dissipation
difficult.
Further with more emphasis on greener technologies and many systems becoming
battery operated, it is important the design is for optimal power usage.
Peripheral set
Every system design needs, apart from the processor, many other peripherals for
input and output operations.
Since in an embedded system, almost all the processors used are SoCs, it is better
if the necessary peripherals are available in the chip itself.
This offers various benefits compared to peripherals in external IC’s such as
optimal power architecture, effective data communication using DMA, lower
BoM etc. So it is important to have peripheral set in consideration when selecting
the processor.
Operating Voltages:
Each and every processor will have its own operating voltage condition.
The operating voltage maximum and minimum ratings will be provided in the respective
data sheet or user manual.
it is cheaper to work with a 5V micro-controller when the input supply is 5V and a 3.3
micro-controllers when operated with Li-on batteries.
Specialized Processing:
Apart from the core, presence of various co-processors and specialized processing units
can help achieving necessary processing performance.
Co-processors execute the instructions fetched by the primary processor thereby reducing
the load on the primary.
Some of the popular co-processors include
1.Floating Point Co-processor:
RISC cores supports primarily integer only instruction set.
Hence presence of a FP co-processor can be very helpful in application involving
complex mathematical operations including multimedia, imaging, codecs, signal
processing etc.
2.Graphic Processing Unit:
GPU(Graphic Processing Unit) also called as Visual processing unit is responsible for
drawing images on the frame buffer memory to be displayed.
with increasing graphic requirements such as textures, lighting shaders etc, GPU’s have
become a mandatory requirements for mobile phones, gaming consoles etc.
Various GPU’s like ARM’s MALI, PowerVX, OpenGL etc are increasing available in
higher end processors. Choosing the right co-processor can enable smooth design of the
embedded application.
Digital signal processors:
Price
Assemblers
An assembler is a program that takes basic computer instructions (called as assembly language)
and converts them into a pattern of bits that the computer's processor can use to perform its basic
operations. An assembler creates object code by translating assembly instruction mnemonics into
opcodes, resolving symbolic names to memory locations. Assembly language uses a mnemonic
to represent each low-level machine operation (opcode).
Compilers:
The name "compiler" is primarily used for programs that translate the source code from a high
level programming language to a low-level language (e.g., assembly language or machine code).
Cross-Compiler
A cross compiler is a compiler capable of creating executable code for a platform other than the
one on which the compiler is running. For example, a compiler that runs on a Windows 7 PC but
generates code that runs on Android smartphone is a cross compiler.