Embedded Systems: Architecture
Updated: Aug 24, 2020
An #embedded system is defined as the integration of computer memory, processor, and input/output peripheral devices designed to perform a particular task in a given time. The Embedded system is a cornerstone of the electronics industry. Almost all the #electronic appliances that we use are manufactured only with the help of embedded #systems. The usage of the embedded systems ranges from mobile phones, digital watches to traffic light controllers, and avionics.
The complexity of an embedded system depends on the task to which it has been assigned. The embedded systems are constructed based on certain rules and regulations.
Technically, it can be called as Architecture. The embedded systems #architectures are determined by circuit technology, application requirements, and market constraints. This article briefly reviews the concepts of embedded architecture, the trend, and it's practical implications.
Basic Architecture of Embedded Systems
There is a broad variety of embedded system architectures that significantly differ from general-purpose computer architecture. There are primarily two types of architecture that apply to embedded systems namely Von Neumann architecture and Harvard architecture. Before moving forward to those let us witness the basic computer architecture first.
This architecture consists of components such as memory unit, microprocessor, input, and output modules to interact with the outside world. All these components are interconnected by a system bus to communicate with each other and execute a program.
The input/output modules are responsible for the exchange of data between the memory unit, microprocessor, and external devices.
The system bus acts as a transmitter of data and helps in the signal communication between the components.
In embedded systems, the role of a microprocessor is the same as the function of a CPU in a general-purpose computer. It performs certain operations such as executing the instructions, controlling the function of the system, and also processes the data.
The memory unit of the system stores the data as well as the instructions which are to be executed.
The external devices are nothing but secondary storage devices such as flash drives and hard disks. It also includes equipment required for communication between systems and also for the termination of the operation.
Now let's comprehend the Von Neumann and Harvard architecture.
Von Neumann Architecture
This architecture was proposed by a computer scientist John Von Neumann in 1945.
It is also called as Princeton architecture.
It consists of memory, control unit, Arithmetic Logical Unit (ALU), and input, output devices.
Here, only one signal bus or data path is available for both data and instructions.
Therefore, it requires two clock cycles. One for fetching instructions and another clock cycle is to process the data [read or write operation].
The design is simple and easy to implement.
It uses only a single sequential memory and so the speed of operation is high and also consumes less time.
Advantages of Von Neumann architecture:
The processing speed in Von Neumann architecture is high when compared to others, as a result of this it consumes less time to perform an operation.
It occupies less physical space when compared to Harvard architecture.
In this architecture, the sequence of instructions can be changed only by unconditional or conditional jump instructions.
The allocation of memory space can be designed by programmers.
Data acquired from the memory and from the other devices are accessed in the same way.
Disadvantages of Von Neumann architecture:
The Instructions are in the same memory, as a result, the data can be accidentally rewritten by an error in a program.
The serial instruction processing does not allow parallel execution of the program and so they are simulated later by the operating system.
One bus is a bottleneck type. So only one information can be accessed at a time.
Some defective programs fail to release memory when they are finished with it, which may cause the computer to crash due to insufficient memory.
This architecture was invented from Automatic Sequence Controlled Calculator nick-named as Harvard Mark 1 in 1937.
There are separate signal buses available for data and instructions. And there is no connection between them.
A single clock cycle is enough for its operation as separate buses are used to access data and instructions.
The design is a bit complex and difficult for implementation.
Harvard architecture allocates separate memory space for #program instructions and data signals. So, it involves more time and consumes more power.
Advantages of Harvard architecture:
Two separate #memory units along with two signal buses are available which allows the parallel access to the data as well as the instructions.
The speed of execution is 2 times more when compared to Von Neumann architecture.
Both memories can use different cell sizes.
The program can't rewrite itself as in Von Neumann without the knowledge of the programmer.
The two memory units can be designed using different technologies (Flash/EEPROM, SRAM/DRAM)
Disadvantages of Harvard architecture:
Free data memory cannot be used for storing the instructions and vice versa.
Production of a system with two separate buses is expensive.
The control units of the two buses are more complicated.
The development of complicated control unit requires more time.
CISC and RISC
CISC and RISC are the two main concepts that helped in the evolution of embedded systems. In the early stages, the #computers are operated with a large set of instructions. those are categorized under Complex instruction Set Computer [CISC]. It has a high clock speed per second and the emphasis is on hardware. Pipelining is not possible and it consists of many addressing modes.
In early 1980, the designers recommended that computers should perform with a minimal set of instructions. And these are called Reduced Instruction Set Computer [RISC]. It has low clock speed per second and emphasis is on software. It has only a few addressing modes and pipelining of instructions is also possible.