Want to keep learning?

This content is taken from the Raspberry Pi Foundation & National Centre for Computing Education's online course, Design and Prototype Embedded Computer Systems. Join the course to learn more.

Skip to 0 minutes and 3 secondsA computer system is built using a combination of hardware and software that dictates what the system can do and how it can do it. The software is made up of programmed instructions for interacting with the hardware and handling data. Broadly, computer systems receive data from inputs such as a touch screen or sensor. Store data in memory so it can be accessed. Process data to make it more meaningful. And output data so it can be experienced by a user or another device. All computer systems are designed using this general model of input, storage, process, and output. But there are some differences in how these systems can be constructed and used.

Skip to 0 minutes and 42 secondsSo computer systems can be divided into two categories, general purpose and embedded systems. A general purpose computer system can be programmed to perform a large number of tasks. Users or devices can interact with them in a variety of ways to meet a broad range of needs. The ability to run many different pieces of software allows a general purpose system to be versatile with the type of tasks it can perform. Software can be easily added, updated, and removed, which alters the functionality of the system. A typical general purpose system has multiple inputs and outputs that can be connected to it. For example, the USB ports on your laptop allow other devices to change the capabilities and features available to the system.

Skip to 1 minute and 23 secondsWhilst general purpose systems are versatile, they aren't always fully optimised to perform specific tasks. Embedded systems are designed to perform a small number of tasks efficiently. An example of an embedded system is a pacemaker, a small device placed inside a person that monitors and regulates their heartbeat. If the sensor detects an abnormal heart rhythm, the device will send an electrical pulse to their heart to regulate their heartbeat. Embedded systems are built to have close control over the hardware using firmware. It's a type of software use specifically for this purpose. Assembly language is often used to develop firmware because it provides direct control over specific hardware components.

Skip to 2 minutes and 2 secondsMost modern embedded systems contain a microcontroller, which consists of a central processing unit, or CPU, to process the data, as well as a fixed amount of RAM and ROM. Most embedded systems only run the firmware added to the device by the manufacturer, but some devices can have their firmware updated by the user. Embedded systems are specialised, highly efficient, reliable, easy to design, cheap to produce, compact in size, and usually have a low power consumption. There are four main categories of embedded systems based on their performance and functional requirements. These categories aren't mutually exclusive and a system could be a combination of more than one.

Skip to 2 minutes and 41 secondsStandalone embedded systems work by themselves and don't require a host system to handle the communication of data between devices or other computer systems. Examples of standalone embedded systems are digital watches and video games consoles. Real-time embedded systems perform tasks with a specific time interval, such as streaming video and audio. These can be further classified into three subtypes-- hard, firm, and soft real-time systems, which we'll learn more about next week. Networked embedded systems connect to a network of devices in order to share resources. For example, a wireless credit card machine. And mobile systems are found in portable electronics. Whilst they're easy to transport, they may have limited memory or resources available, such as fitness trackers and digital cameras.

Skip to 3 minutes and 28 secondsWhat are some of the disadvantages of embedded systems compared to general purpose systems? Share your thoughts in the comments section below.

Embedded and general-purpose computer systems

Computer systems vary widely in the tasks they perform and how users interact with them, but there are some common characteristics that we can attribute to all computer systems.

Features of a computer system

A computer system is built using a combination of hardware and software that dictates what the system can do and how it can do it. The software is made up of programmed instructions for interacting with the hardware and handling data.

Computer systems can be described in terms of:

  • Receiving data from inputs, for example a touchscreen or sensor
  • Storing the data in memory so it can be accessed
  • Processing the data to make it more meaningful
  • Outputting data so that it can be experienced by a user or another device

All computer systems are designed using this general model: input, storage, process, and output. However, there are some fundamental differences in how computer systems can be constructed and used. Computer systems can be split into two main categories: general-purpose and embedded systems.

General-purpose systems

A general-purpose system is a computer system that can be programmed to perform a large number of tasks. General-purpose computers are designed so that users or devices can interact with them in a variety of ways to meet a broad range of needs.

The ability to run many different pieces of software allows a general-purpose system to be quite versatile in terms of the types of tasks it can perform. Software can be added, updated, and removed fairly easily, which alters the functionality of a system.

An illustration of a piece of software being installed onto a laptop

Typically, a general-purpose system has a wide range of inputs and outputs that can be connected to it. For example, including USB ports on a laptop allows other devices to change the capabilities and features available to the laptop.

As general-purpose systems are designed to carry out many different types of process, they are often not fully optimised to perform each individual task. For some tasks, optimisation is key!

Embedded systems

Embedded systems are computer systems that carry out a small number of tasks. When designing an embedded system, manufacturers will focus on the dedicated functions that the system needs to perform. They will optimise the system until it performs each of these tasks very efficiently.

An example of an embedded system is a pacemaker, a small device placed inside a person that monitors and controls their heartbeat to ensure it is beating regularly. If the sensors pick up that the heart rhythm is abnormal, the device sends electrical pulses to the heart to regulate the heartbeat.

An image of a pacemaker or a monitor displaying the heartbeat rate of a person

Embedded systems are built to have very close control over the hardware using firmware, which is a type of software used for this purpose. Assembly language is often used to develop firmware, as it provides direct control over specific hardware components.

Modern embedded systems contain a microcontroller, which consists of a central processing unit (CPU) to process data, as well as a fixed amount of RAM and ROM. Earlier embedded systems were based on microprocessors that contained only the CPU.

Most embedded systems solely run the firmware added to the device by the manufacturer. However, some devices can have their firmware updated by the user.

Advantages of embedded systems

As embedded systems are specialised to the tasks they perform, they can have a number of benefits. They are:

  • Highly efficient at performing tasks
  • Extremely reliable
  • Easy to design
  • Cheap to produce
  • Compact in size
  • Low in power consumption

Types of embedded systems

Embedded systems can be broken down into four main categories based on their performance and functional requirements. The categories are not mutually exclusive and a system could represent a combination of these.

Stand-alone embedded systems

Stand-alone embedded systems work by themselves and do not require a host system to handle the communication of data between devices or other computer systems. Examples of stand-alone embedded systems are digital watches and video games consoles.

Real-time embedded systems

A real-time embedded system is designed to perform a task within a specific time period, such as streaming video and audio. These can be further classified into three types: hard, firm, and soft real-time systems. You will find out more about these next week.

Networked embedded systems

Networked embedded systems are connected to a network of devices so that they can share and access resources. An example of a networked embedded system is a card machine for taking payments by credit or debit card.

Mobile embedded systems

Mobile embedded systems are found in portable electronics. These are easy to transport but may have limitations, such as the amount of memory or resources available. Examples of mobile embedded systems are fitness trackers and digital cameras.

Discussion

What are some of the disadvantages of embedded systems compared to general-purpose systems?

Share your thoughts in the comments section below.

Share this video:

This video is from the free online course:

Design and Prototype Embedded Computer Systems

Raspberry Pi Foundation