In: Computer Science
1. Explain the following:
a) Types Real Time Systems.
b) Design metrics for Real Time Embedded Systems.
2. Explain the main differences between ASIP, FPGA, PLD and ASIC.
3. Define the processor technology and compare between single purpose processor, general purpose proces- sor and application specific processor.
a)
RTOS
Windows CE(Microsoft Widows)
Used small foot print mobile and connected devices .Supported by ARM,MIPS, SH4 & x86 architectures
LynxOS
Complex, hard real-time applications
POSIX- compatible, multiprocess, multithreaded OS.
Supported by x86, ARM, PowerPC architectures
VxWorks
(Wind river)
Most widely adopted RTOS in the embedded industry.
Used in famous NASA rover robots Spirit and Opportunity
Certified by several agencies and international standards for real time systems, reliability and security-critical applications.
Micrium µC/OS-II
Ported to more than a hundred architectures including x86, mainly used in microcontrollers with low resources.
Certified by rigorous standards, such as RTCADO-178B
QNX
Most traditional RTOS in the market.
Microkernel architecture; completely compatible with the POSIX
Certified by FAADO-278 and MIL-STD-1553 standards.
Symbian
Designed for Smart phones
Supported by ARM, x86 architecture
VRTX
Suitable for traditional board based embedded systems and SoC architectures
Supported by ARM, MIPS, PowerPC & other RISC
Architectures.
RTLINUX
Open-source
b)
Design metrics is a measure of an implementation's features such as its cost, size, power, and performance. It must be of a size to fit on a single chip, must perform fast enough to process data in real time and consume minimum power to extend battery life.
A Design Metric is a measurable feature of the system’s performance, cost, time for implementation and safety etc. Most of these are conflicting requirements i.e. optimizing one shall not optimize the other: e.g. a cheaper processor may have a lousy performance as far as speed and throughput is concerned.
1. NRE cost (nonrecurring engineering cost)
It is one-time cost of designing the system. Once the system is designed, any number of units can be manufactured without incurring any additional design cost; hence the term nonrecurring.
2. Unit cost
The monetary cost of manufacturing each copy of the system, excluding NRE cost.
3. Size
The physical space required by the system, often measured in bytes for software, and gates or transistors for hardware.
4. Performance
The execution time of the system
5. Power Consumption
It is the amount of power consumed by the system, which may determine the lifetime of a battery, or the cooling requirements of the IC, since more power means more heat.
6. Flexibility
The ability to change the functionality of the system without incurring heavy NRE cost. Software is typically considered very flexible.
7. Time-to-prototype
The time needed to build a working version of the system, which may be bigger or more expensive than the final system implementation, but it can be used to verify the system’s usefulness and correctness and to refine the system’s functionality.
8. Time-to-market
The time required to develop a system to the point that it can be released and sold to customers. The main contributors are design time, manufacturing time, and testing time. This metric has become especially demanding in recent years. Introducing an embedded system to the marketplace early can make a big difference in the system’s profitability.
9. Maintainability
It is the ability to modify the system after its initial release, especially by designers who did not originally design the system.
10. Correctness
This is the measure of the confidence that we have implemented the system’s functionality correctly. We can check the functionality throughout the process of designing the system, and we can insert test circuitry to check that manufacturing was correct.
2
ASIC (Application Specified Integrated Circuit) is a customized integrated circuit. It is usually used by a person or company for a very limited usage. So when it is developed, only the person or company who orders it can use it. It is not useful for other usages, for example, an IC designed for a specific line of cellular phones of a company, whereby no other products can use it except the cell phones belonging to that product line.
- ASIC is just built for one and only one customer.
- ASIC is used only in one product line
- Only volume production of ASICs for one product can make sense which means low unit cost for high volume products, otherwise the cost is not efficient.
- Can exploit parallelism to achieve high performance
- Low power consumption
ASIP (application specific instruction processor) is usually used in SoC (System on a Chip). ASIP is an architecture including two parts which are a minimum ISA (Instruction Set Archietecture) and a configurable logic which you can use to design your own instruction set. So it provides relatively high flexibility compared to ASIC and better performance compared to FPGA (Field Programmable Gate Array). Also, it is cheaper than FPGA, but slightly more expensive than ASIC.
- ASIP can help build your own instruction set to meet your specific requirement.
- It provide a minimum ISA, which can make shorter TTM (Time to Market).
FPGA means Field Programmable Gate Array. It can be “field” programmed to work as per the intended design. It means it can work as a microprocessor or graphics card, or even as both at once. The designs running on FPGA’s are generally created using hardware description languages such as VHDL and Verilog. FPGA is made up of number of Configurable Logic Blocks (CLB’s) and are connected with Programmable Interconnects. The CLB’s are primarily made of Look-Up Tables (LUT’s), Multiplexers and Flip-Flops. They can implement complex logic functions. Apart from CLB’s, and routing interconnects, many FPGA’s also contain dedicated hard-silicon blocks for various functions such as Block RAM, DSP Blocks, External Memory Controllers, PLL’s etc. These dedicated hardware blocks are critical in competing with ASIC’s.
PLD means Programmable Logic Device.
ASIC = Application Specific Integrated Circuit.
PLD is relatevly simple logic device, that can be programed to implement some logic function. In general this logic function is combination of AND and OR.
ASIC is a chip designed for a particular application (as opposed to the integrated circuits that control functions such as RAM in a PC). ASICs are built by connecting existing circuit building blocks in new ways. Since the building blocks already exist in a library, it is much easier to produce a new ASIC than to design a new chip from scratch.
3
An embedded processor is a type of microprocessor designed into a system to control electrical and mechanical functions. Embedded processors are usually simple in design, limited in computational power and I/O capabilities, and have minimal power requirements. At a basic level, embedded processors are a CPU chip placed in a system that it helps control.
Embedded processors are often confused with microcontrollers. While they do perform similar functions, they integrate with their given system in different ways. The actual functions they perform can also be different as well.
Microcontrollers are the result of technological advances decreasing the size of controllers. Eventually, all of the components of a controller including I/O devices and memory evolved into a single chip, giving us the “micro” in microcontrollers. These chips are small, self-contained devices that have all of the features necessary to control the system they are embedded in.
This control autonomy is the primary difference between microcontrollers and embedded processors. Embedded processors require other external components such as integrated memory and peripheral interfaces to perform their designated functions. The two devices are frequently referred to as one device because embedded processors are often components within a microcontroller.
Processor technology involves the architecture of the computation engine used to implement a system’s desired functionality. All devices we know have processors embedded in it (microwave, cars ...). Choosing the right embedded processor is critical to perform the wanted operations.
general purpose processor
The system designer only needs to program the processor’s memory to carry out the required functionality: software portion. These types are created to produce large numbers for a variety of applications
Here are some general characteristics from a general purpose processor:
Advantages:
easy to design and use (only programming the memory)
design time is thus low
design cost is thus low
reprogrammability (changing functionalities or improving a system becomes easy when you only need to change the program)
Disadvantages:
performance is not very good
size is high ( because they are built to be used in a variety of applications with different specifications and all these specifications must be possible on the processor)
they consume much power
Usually they are used to put in a product the first time it goes to the market, because of their cheap design cost and ease to use. Because of the use of code, a designer usually strives to minimize compiled code size, rather than maximize performance.
example:Microcontroller (MCU), Microprocessor
Basically a microprocessor performs all the tasks that must be accomplished by a microcontroller/embedded system. A general microprocessor consists of a bus unit which is a pathway to communicate with the (computer) memory, an instruction cache to keep track of instructions coming from the computer memory through the bus unit, a (pre)fetch unit copying instructions from the instruction cache for further processing, a decode unit getting instructions from the prefetch unit that will be converted to a binary code understood by the processor, a control unit that performs tasks or instructions which are comprised in the binary code coming from the decode unit , ‘data cache’ to save instructions or data, an ALU (arithmetic logic unit) that executes mathematic operations such as adding, multiplying…, and finally registers which are also some memory used by the ALU to store the results of performed operations. A microcontroller does not have a data bus or bus unit as described above for a general microprocessor. The reason is that there is no need to communicate to memory because memory is incorporated on the same chip as the microprocessor itself. A MCU is typically used as a systems controller, with many conditional operations and frequent changes in program flow. The MCU code is written in C or C++. There’s a wide variety of MCUs available: from 4-bit, 32 kHz models to 32-bit, 500 MHz devices, and beyond(The "-bit" designation refers to the width of a device's data bus, registers, execution units, etc.)
If you choose an embedded operating system (Windows, Linux, Dos...) a microprocessor is needed. But for real-time operations you better not use a microprocessor. The microcontroller is actually a low-end microprocessor, and is used in more simple tasks (traffic light to hold the light for a certain time...)
single purpose processor
This type of processor is designed to execute exactly one program. An embedded designer creates a single-purpose processor by designing a custom digital circuit Advantages and disadvantages are more or less the opposite of the general-purpose processor:
Advantages:
performance is very good
small size (exact to fit one solution)
they consume little power
Disadvantages:
not very easy to design and design time is thus high
design cost is thus higher
reprogramming is difficult
limited flexibility: not easy to make changes, accommodate features
In design we can make a difference between standard single-purpose processors and custom single-purpose processors (ASSP). The standard single-purpose processors (hardware peripherals) are explained in a different chapter Hardware Peripherals. They are used for in a wide variety of applications for the same task.
example: application-specific integrated circuit (ASIC),application-specific standard product (ASSP)
They are designed to fit the specific requirements of an end product. In the design process they will be optimised for both power and performance. An ASIC is introduced for a product usually after a product is stabilised on the market (with non-ASIC solution), because of the higher development time and cost. After the stabilisation the producer can look for extra margin by making the processor as good as possible for his application. A disadvantage is that when you make a mistake, you will need to make a whole new chip, but for a general-purpose processor you just change the code and recompile. You can use an ASIC in a stable market where technology and requirements aren't going to change rapidly.
application specific instruction-set processor (ASIP)
An ASIP is designed for a particular class of applications with common characteristics it’s an 'intermediate' solution between a general-purpose and a single-purpose processor and gives more flexibility than a single purpose processor and still better performance, power, size than a general purpose processor. Of course this leads to a longer design time (cost) and there's also a compiler problem, you will have to create your compiler usually yourself.
example:Digital signal processor (DSP)
A DSP is optimized to efficiently perform repetitive and numerically intensive tasks such as matrix operations, convolution for filtering in real-time, because of the performance limitations of the MCUs. DSPs can run at very high clock rates, and they are often compared in terms of how many millions of MAC operations they can perform per second. This metric is known as "mega MACS," or MMACS.
A DSP is optimized to do mathematical operations, but not for supervisory control. Thus, DSP-based systems are integrated with the slower MCUs, this can be done in 2 ways:
Discrete DSP + MCU (separate in the system)
Advantages:
design of DSP and MCU separate from each other
Disadvantages:
hard partitioning between control and DSP function, if there are too many instructions for the DSP, the MCU can’t take over
the DSP and MCU require different development tools
Convergent Processor (a convergent processor is optimized both for computation on real-time data flows, and for control-oriented tasks)
Advantages:
optimised for computation on real-time data flows as well as for control-oriented tasks
high clock rates
lower power dissipation
Disadvantages:
mixing a control application with signal processing on the same device, non-real-time tasks may interfere with time-critical tasks
the skills of developers must be higher