Embedded systems hardware architecture


The embedded systems architecture, refer to a set of rules stating how computer software and hardware are combined together and how they interact to make a computer functional, furthermore, the computer architecture also specifies which technologies the computer is able to handle. An embedded system  architecture is a specification, which describes how software and hardware interact together to produce a functioning platform.

When a person thinks of the word “architecture”, the human mind will probably think of the assembly of buildings or houses, moreover, with the same principle in mind, embedded system architecture involves the construction of a embedded system internally and externally.

There are three main categories in an embedded system architecture:

•System design: The system design is the hardware parts, which includes multiprocessors, memory controllers, CPUs, data processors, and direct memory access. The system design can be considered to be the actual computer system.

•Instruction set architecture: This revolves around the CPU which could be a microntroller or a microprocessor. It includes the CPU capabilities and functions, furthermore it also includes the CPU’s data formats, programming language and processor register types and instructions, which are used by the computer programmers. The CPU is the part in a an embeded system, which makes a program run, whether it was the operating system or an application software.

•Microarchitecture: The microarchitecture in a system will define the storage element/data paths and how they will be implemented into the instruction set architecture, the microarchitecture also is responsible for data processing. 

All these will comes together in a certain order to make the system functional.

A typical embedded system consists of two parts, an embedded software and an hardware. 
Microntrollers, microprocessors, memory, bus, input/output, controller, sensors and actuators are the embeded hardware.
An embedded system hardware has a software embedded into it. This software is known as the operating system or firmware. Other embedded system software can be also a special application and device drivers.
There are two types of embedded system architecture, the Harvard architecture and the von Neumann architecture. 

The architecture of an embedded system consists of actuators, sensors, Analog to digital converter, digital to analog converter, memory and processor.

The input and output system  are characteristics of any open system, and the embedded system is no exception. In the embedded system, the hardware and software often collaborate to deal with various input signals from the outside and output the processing results through some form. The input signal may be an ergonomic device such as a touch screen, buttons, keyboard or gesture control system, or the output of a sensor circuit in another embedded system. The output may be in form of sound, light, electricity, or another analog signal, or a record or file for a database.
Simply, embedded system architectures describes how each parts of the system are connected together.





Harvard architecture.

The Harvard architecture was first named after Harvard Mark I computer. Compared with the von Neumann architecture, a Harvard architecture's processor has two outstanding feutures. First, instructions and data are stored in two separate memory modules; instructions and data do not coexist in the same module. Second, two independent buses are used as dedicated communication paths between the CPU and memory; there is no connection between the two buses.





Because the Harvard architecture has separate program memory and data memory, it can provide greater data memory bandwidth, making it the ideal choice for digital processing. Most systems designed for digital signal processing. Most systems designed for digital signal processing (DSP) adopt the Harvard architecture. The Von Neumann architecture feutures simple hardware design and flexible program and data storage and is usually the chosen for general purpose and most embedded systems. 
To efficiently perform memory read/write, the processor is not directly connected to the main memory, but to the cache. Commonly, the only difference between the Harvard architecture and ttw Von Neumann architecture is single or dual L1 cache is often divided into an instruction cache(I cache) and a data cache (D cache), but the Von Neumann architecture has a single cache.






The Von Neumann architecture.

The von Neumann architecture is also known as the von Neumann's model or Princeton architecture. It's a type of embedded system architecture based on a 1945 description by John Von Neumann and other.

The term "Von Neumann architecture" has evolved to mean any stored program computer in which an instruction fetch and a data operation cannot happen simultaneously because they share a common bus. This is termed as the von Neumann's bottleneck and it often limits the performance of the system.

The Von Neumann architecture's design is simpler than an Harvard architecture which is also a stored program system but has one dedicated set of address and data buses for reading and writing to memory, and another set of address and data buses to fetch instructions.




A stored program digital computer keeps both program instructions and data in read-write, random-access memory (RAM). Stored program computers were an advancement over the program controlled computers of the 1940s, such as the Colossus and the ENIAC. Those were programmed by setting switches and inserting patches cables to route data and control signals between various functional units. The vast majority of modern computers use the same memory for both data and program instructions, but have caches between the CPU and memory, and for the caches closest to the CPU, have separate caches for instructions and data, so that most instruction and data fetches use separate buses (split cache architecture).

The earliest computers such as ENIAC and Colossus were program-controlled machines in which writing a new program or changing some existing program required re-wiring, restructuring or redesigning the machines. Thus, programming in these computers was a quite tedious task. To ease the programming process, an idea known as ‘stored program concept’ was proposed by a mathematician and an early computer scientist named John Von Neumann. According to this concept, both data and instructions are kept in the main memory. Thus, a computer could get its instructions from the memory and the programs could be setup or changed from within the memory as well, without having to redesign the computer. All the computers based on stored program concept are known as Von Neumann systems employing the ‘Von Neumann architecture’.

Most of the conventional and today’s modern computers that are based on Von Neumann architecture consists of four hardware components: a CPU with control unit, ALU, main memory and an I/O(input/output) system. In addition, these computers can process the instructions in a sequential manner. The architecture shown in the image above depicts the working of a Von Neumann computer. Here, the I/O instructions are passed through ALU to the control unit. All the programs are executed by  the following;

The control unit determines the location of the next program instruction to be executed using the program counter and fetches it from the main memory.

The instruction is then decoded into the language understandable by the ALU. 

The  required  data  operands  for  executing  the  instructions  are  fetched  from  main  memory  and stored into the CPU registers.

The instructions are executed by ALU and the results are placed in registers or memory.


Techie Brainiac

The brain behind BuildNode and NodeHut, builder, Tech geek, entrepreneur, innovator, inventor and an embedded and electronics engineer. Got an industrial training at RLG institute of technology. I'm holding a degree in computer science and engineering and have written hundreds of articles and tutored a lot of beginners like you. .

Post a Comment

Previous Post Next Post