[From the last episode: We reviewed the wide range of topics we’ve covered in the area of IoTThe Internet of Things. A broad term covering many different applications where "things" are interconnected through the internet. securityRefers to whether or not IoT devices or data are protected from unauthorized viewers..]
We now change directions away from security (for the moment, anyway). We’re going to pursue notions of computing, the fourth aspect of the IoT. We’ve already covered the other three – sensing, actuating, and communicating – although there’s much more to say if we want to later on.
We’ve seen that sensing measures the world; communicating sends those measurements somewhere, computing makes a decision based on the measurements, and actuating takes action based on that decision (with communication further passing that decision to the actuatorsA way of controlling some device electronically. It might turn the device on or off or change a setting or property or do any other thing that the device is capable of.). So… who makes those decisions?
In this series of discussions, we’ll look at processing both inside IoT devices, where it’s pretty simple, and up in the cloudA generic phrase referring to large numbers of computers located somewhere far away and accessed over the internet. For the IoT, computing may be local, done in the same system or building, or in the cloud, with data shipped up to the cloud and then the result shipped back down., where it’s much more complex and where things are changing pretty dramatically. We’ll start by looking at a typical kind of systemThis is a very generic term for any collection of components that, all together, can do something. Systems can be built from subsystems. Examples are your cell phone; your computer; the radio in your car; anything that seems like a "whole." to see what the role of the processorA computer chip that does computing work for a computer. It may do general work (like in your home computer) or it may do specialized work (like some of the processors in your smartphone). is. As a spoiler, the processor’s role is central – as is given away by another geeky name for a processor: the CPUStands for "central processing unit." Basically, it's a microprocessor - the main one in the computer. Things get a bit more complicated because, these days, there may be more than one microprocessor. But you can safely think of all of them together as the CPU., which stands for central processing unit.
Processors as Bakers
The notion of a single central processor is somewhat outdated, but we’ll get to that in due time. For now, you might think of the processor as… hmmm… how about a baker. I started to say the conductor of an orchestra, but that doesn’t quite work. With an orchestra, the conductor is the leader (and, so as not to earn the wrath of the Leonard Bernsteins of the world, it is a lot of work in and of itself), but it’s the rest of the orchestra that actually produces the sound. In a system, the processor does most of the work; it doesn’t just lead.
So that’s why comparing it to a baker is better.
- A baker does the main work of making bread and donuts and cakes.
- They get their instructions from a recipe.
- They have access to a pantry, where they go for ingredients.
- They have a proofing oven and cold storage where they can put work in progress.
- They have a place to put their finished goods.
- They may outsource some of the work – like drying the raisins for the cinnamon rolls or making the sprinkles for the cupcakes – but the baker does most of the work.
Let’s turn that into a processor scenario.
- The processor does the main work of computing.
- It gets its instructions from memory, where they’re stored.
- It has access to data – in memory or from sensorsA device that can measure something about its environment. Examples are movement, light, color, moisture, pressure, and many more., for example – where it can go for inputs.
- It also uses that memory for storing temporary data for work in progress.
- It has a place to send their final results.
- It may offload some of the work – like encryptionEncryption refers to encoding and decoding (or encrypting and decrypting) data so that it can't be read unless you have the right key. It's critical for good security. – but the processor does most of the work.
Do It Faster!!!
Why would we offload some of the work? Mostly because you can do many jobs faster in a specialized piece of hardwareIn this context, "hardware" refers to functions in an IoT device that are built into a silicon chip or some other dedicated component. It's distinct from "software," which refers to instructions running on a processor. than you can with softwareIn this context, "software" refers to functions in an IoT device that are implemented by running instructions through some kind of processor. It's distinct from "hardware," where functions are built into a silicon chip or some other component.. These are often called acceleratorsA circuit, usually done with hardware instead of software, that can perform some task faster than a processor can. Instead of the processor handling the task itself, it offloads the work to the accelerator, and the accelerator sends the answer (whatever that means for the task) back to the processor.. Encryption, as an example, takes lots of math to do, so we’re better off doing it in hardware to save time and battery juice. For that specific example, it can also be good for security if you’re using a hardware root of trust. If you do encryption in software, someone may be able to hackThis can mean a couple things. A quick-and-dirty (but not elegant) trick to get something done is a hack. A computer security break-in is also a hack (because inelegant tricks are used to break in). It can be a noun or a verb ("he hacked my computer"). the system and see what’s happening. If done in a hardware accelerator that’s built properly, the operation is forever hidden from prying eyes.
Of course, this is all super simplified. An engineer that works with this stuff could point out all kinds of different ways to do this and all kinds of details that I’ve omitted, but that’s not important for what we’re doing. The basic idea here is that of a processor following a recipe (that is, executing a program) and turning ingredients (input data) into some output result (like a loaf of bread), with the possible help of an accelerator (like a sprinkle-maker).
Leave a Reply