[From the last episode: We looked at the role of cacheA place to park data coming from slow memory so that you can access it quickly. It's built with SRAM memory, but it's organized so that you can figure out which parts haven't been used in a while so that they can be replaced with new cached items. Also, if you make a change to cached data, that change has to make its way back into the original slow storage. memory in 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)..]
Now that we’ve looked at the major components of a computing 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.", let’s put them together. We won’t talk about how we’re putting them together for the moment; that comes next.
We’ll start with the processor and the memories. They all need to be able to talk to each other somehow. Or, at the very least, the processor has to be able to talk to all of the memories. Do we need to connect them all separately, with, say a flash connection on the processor and then a separate 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. connection? There may be other things as well (which we won’t talk about for now) that the processor needs to connect to. We’re talking lots of connections!
Taking the Bus
Instead, what we typically use (there are exceptions) is called a busA way of connecting the components of a computing system where the components all share the same wires, but a controller makes sure that only one device can put its signals on the wires at a time.. You can often think of a bus as a wire, but it’s really a bunch of wires running next to each other. But that’s not what makes a bus a bus. When you use a bus, everything connects to that bus. Yeah, that means the memories and lots of other things as well, all on the same bus. How can that happen? Isn’t everything going to be trying to talk all at the same time on those same wires?
Well, yeah, they would, except that busses are designed specifically to deal with this. Each bus has its bus protocolThe “rules of the road” for a specific bus. Determines how a bus controller decides who gets access to the bus when., which is a set of rules determining how something can access the bus. When you are on the bus, you want to be the only one on the bus so that some other signals don’t mess up your signals. So someone has to play traffic cop.
And “traffic” is a good way to look at it. A bus is essentially a highway for signals. The difference is that only one set of cars from one interchange can be on the highway at any given time. It’s like metering lights on steroids: they’re not simply slowing down traffic that’s going onto the highway; it’s blocking all the traffic from one entrance until the cars that got on from another entrance have all taken their exit.
Keeping Peace on the Highway
That’s what the bus protocol does. It controls who gets access to the bus when. When something wants to get onto the bus, it asks permission. The bus controller will then decide whether to grant that permission or make the thing wait. If no one is using the bus, then it’s easy: the answer is “Yes.” If someone else is on the bus at the moment, then you simply wait until they’re done to get the “Yes.”
But what if multiple things are asking to get on at the same time? That’s where the controller keeps track of priorities, and it may tell one thing to wait because something with higher priority has asked to get on. If, say, two things are competing with the same priority? Well, it might let the first request go first, or it might randomly let one go first.
Busses are really important, and they’re all over the place. Because of the delays associated with permissions and waiting, they have to be really efficient. They’re also convenient in that you can design things to talk to a particular bus. If one company makes a processor that goes onto a specific bus (for example, the company Arm makes a processor family, and they have a bus called AMBA, for Advanced Microcontroller Bus Architecture), then other companies might design things that can attached to that bus. Then, like Legos, we can piece them together into a system.
How We Build These
This is a generic look. There are lots of ways to build these. We could put separate chipsAn 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. on a board or we could combine these things onto a single chip (which we’ll talk about next week). The details matter, since signals on a board are way longer than signals inside a chip, making them slower. Also, you can run many more tiny signals on a chip than you can on a board. You can use a hard driveA type of persistent (non-volatile) memory built from rotating platters and “read heads” that sense the data on the platters. for permanent memory if you connect a board to it; you can’t put a hard drive on a chip (but you could use flash memoryA type of memory that can retain its contents even with the power off. Thumb drives use flash memory.). So the exact way you configure this depends enormously on how it will be realized.
Leave a Reply