Friday, October 09, 2020

Embedded Systems Part 2

With embedded systems, hardware limitations are common because of the cost of scaling production to millions. Thus the chips used in embedded devices are more limited compared to those in PCs. It sounds counterintuitive, but constraints can encourage creativity.

Often in embedded systems, lower cost processors do specific jobs. Microcontrollers and systems on a chip are two common choices. While not as powerful as laptop CPUs, they can combine chips for CPU, RAM, non-volatile memory, and peripherals into one. They allow fewer chips and thus a smaller and cheaper circuit board. This reduces the labor required to assemble and test the board. In addition to cost, using fewer chips helps with miniaturization and can lower power consumption. More space for the battery on a mobile device implies it could hold more energy and last longer on a single charge.  Other types of chips used in embedded systems can outperform PC CPUs. For example, FPGAs or ASICs used for crypto-mining are limited in what they can do in general but are tuned to outperform desktop CPUs on their specific task.

The software in embedded and desktop systems is also different. Because the chips for embedded devices are limited in resources or flexibility, software engineers need to creatively optimize their hardware use. Crafting code specific to the hardware means  what works on a desktop x86 CPU may not be right for an embedded system.

Sunday, August 23, 2020

Embedded Systems

A poker player can go all-in with their chips. But it seems the world has gone all-in with electronic chips. They are embedded everywhere we go. Everyday items such as a remote control, a TV set, or a car have specialized computer systems that combine the hardware we see with software code hidden inside. These computers are different from pcs and tablets and are called embedded systems. Let’s explore some fundamentals about embedded systems to get another view of the world.

Most embedded systems use hardware resources differently than PC programs. Embedded systems tend to utilize 100% of the resources of the hardware. For example, on a basic universal tv remote control with a non-upgradeable database of protocols, leaving extra space doesn’t make sense. More protocols could have fit in to make the device more useful. On the other hand, most PC programs need to leave resources unused so other applications and the operating system can use them. For example, this allows you to have a zoom meeting app running while also having a web browser running in the background. Another difference is the hardware on an embedded system tends to be more specialized than a PC. A cheap universal remote has just an led light for feedback when you press a button. PCs have a monitor to display a wide variety of images. Another specialization is that a universal tv remote depends on communicating with another device. It doesn’t have value without a tv. A PC can be used for both alone for creation, say to record and edit a local video file, and with other computers for communication, as in a transfer of that edited video to a web server for hosting at YouTube.

In the next post, I will explore how embedded systems work with limited resources.

Monday, May 25, 2020