[From the last episode: We looked at a basic computing system.]
So far, we’ve seen that a computing system has to consist, at least, of a 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). and some memory. And we’ve seen that there are different kinds of memories with different properties, and we may need some of all of them.
Fast and Furious
If you’re building the biggest, fastest computer ever, then you want a monster of a processor. You can make a computer chipAn electronic device made on a piece of silicon. These days, it could also involve a mechanical chip, but, to the outside world, everything looks electronic. The chip is usually in some kind of package; that package might contain multiple chips. "Integrated circuit," and "IC" mean the same thing, but refer only to electronic chips, not mechanical chips. only so big, so, in this case, you probably want to make the biggest, baddest processor you can. The whole chip will be a processor. Which means that, for the memories, you’ll need to use separate chips. So you would have a board (usually called a printed circuit boardSome kind of board (usually rigid) that gets metal connections “printed” onto it. Electronic components can then be soldered on., or PCB) with a processor chip and several memory chips on it.
Each of those chips will be super optimized for what it does. We talked about the processor, but it’s even more the case with the memories. If you’re making a big memory chip, you’re going to adjust the way you build it to make possible the biggest, cheapest memory you can. So each of the memories and the processor will be built a different way – and that’s ok, because each of them is on a separate chip.
A More Modest Mousetrap
But let’s ratchet back our hubris a little and talk about the situations where you have a relatively simple job to do. You’re not calculating the weather forecast for the entire universe; you’re just trying to make an IoTThe Internet of Things. A broad term covering many different applications where "things" are interconnected through the internet. device work. You definitely need some computing, but you don’t need all that firepower that the huge processor could provide.
In that case, you don’t have a huge processor, and you don’t have huge memories. What if you put them all on the same chip? Well, then you’d have what we call a microcontroller (or MCU). A typical microcontroller will have a modest processor, some SRAMStands for "static random access memory." This is also temporary memory in a computer. It's very fast compared to other kinds of memory, but it's also very expensive and burns a lot of energy, so you don't have nearly so much. for quick computing, and some flash memoryA type of memory that can retain its contents even with the power off. Thumb drives use flash memory. to store the program and any data that has to stick around when the powerThe rate of energy consumption. For electricity, it’s measured in watts (W). goes off.
There are lots of microcontrollers available, and many of them are tuned for specific applications. Some might be better at communications; some might be better at controlling machinery. It all depends on what kinds of signals they can accept easily. The number of combinations and possibilities is enormous, and, indeed, there are many, many different microcontrollers to choose from. And IoT devices are very likely to contain one.
Put It All Together
We can take the idea one step further. Let’s say you’ve got some kind of system that you’d like to build, and you expect that you’re going to sell a bazillion of them. And maybe you have some specialized things that need to happen. Like, oh, say you need to connect to the cell phone system, have good graphics that can show videos, and take pictures that you can process in the system without any other 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.. Oh, and run random programs that people load into the system.
Well, that sounds pretty much like a smartphone. A smartphone has more than one chip, but much of the basic guts is integrated together onto a single chip purpose-built for that application. You have a whole system on that one chip. Which gives us the name for this sort of setup: system-on-chip, or SoC. You can see an example of a smartphone-like SoC below (highly simplified, with lots of stuff left out).
MCUs vs. SoCs
An SoC will sound a bit like an MCU, but here’s the difference: MCUs are built generically – even in all of their flavors – for system builders to buy and work into a larger system. Many people could use the same MCU in many different systemsThis 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.".
SoCs, unlike MCUs, are usually designed for one specific system. And they’re created by the company building the system. Creating a chip costs many millions of dollars to do the design and then create the masks used to build the chip. Heck, the masks by themselves can cost millions (which is why chip designers spend most of their time making sure that they didn’t make any mistakes so that they don’t have to make fixes and then create a new expensive set of masks to replace the ones that had the mistake). That means that you need to be able to sell a lot of what you’re building to pay for all that work.
It would take a pretty sophisticated, high-volume IoT application to warrant an SoC dedicated to that one device. What could happen, though, is that a company might want to build a family of many different types of IoT device that could talk to each other. And they might think through a common set of things they all need, and then build an SoC for that. Then, instead of that SoC being good for only one IoT device, it acts as what folks call a platformThis word can mean different things. It may mean a set of infrastructure on which someone can build an IoT device or service. Or it could be a generic piece of hardware that can be used for many different things.. In effect, it’s a custom MCU that they can use in all the systems. It’s just that only that company gets to use it; no one else can buy it at their local Fry’s like they can with a standard MCU.
Embedding All the Things
There is a particular challenge when building MCUs and SoCs: the memory isn’t going on its own chip; it’s sitting on the same chip as the processor and other memories. So you can’t do those optimization things that you do when building a chip that’s only memory. So the flash memory won’t be quite as efficient, nor will the SRAM. We call this embedded memory: the memory is embedded onto the same chip as other stuff. So we make compromises.
But that’s what engineering is all about: since there are no perfect solutions, we make the tradeoffs necessary to get the job done.
Leave a Reply