And I just wanted to say quick note about interconnection networks.
if you guys are, get interested in interconnection networks as we go along,
I highly recommend this book. I have not assigned anything from this
book for this class. But this is Bill Dalley and Brian Towles'
interconnections book. It's quite good.
It's kind of the definitive guide on the subject matter.
Okay. So,
interconnection networks. We,
we talked about buses and we talked about memory protocol about buses.
That's only one way to share information. Now, people may argue that's a intuitive
way to share information because we had the ability to do load and storage from
our processor. But there are other ways to share
information. So, in today's lecture, we are going to
talk about two main pieces of two main topics. One, how do you share information
in, in a different way which commingles the movement of data with a
synchronization primitive. We are going to call that messaging,
[COUGH] which is in contrast to memory or communicating via memory addresses.
We're also going to talk about different ways to connect together processors,
which can either have better performance or better scalability, i.e.,
have more nodes in the system. And, okay, so let's, let's compare and
contrast buses to other forms of network and see why we might want to change.
So, this, this is going back to what we had just talked about.
Let's say, you have two cores on a bus. And let's forget about how you want to
communicate. It could either be via shared memory or
it could be via messaging or it could be via some other protocol,
Ethernet, whatever, whatever you want put here,
which is basically a form of messaging. We have one core and it wants to
communicate with another core. Note, I don't draw any caches here
because there may not be caches, there may be caches.
It's doesn't, it's kind of immaterial here.
If one person wants to talk to another person, they can just yell at the other
person. It's two people so there's, it's pretty
easy to do. We, now, there is some challenges,
we can't both talk at the same time. We might not be able to understand each
other. So, there's some arbitration that needs
to happen. But, in general, that arbitration is
pretty simple. Only two, two cores or entities on this
bus. Okay.
Now we, now we go to more cores. So, we have four people in a room trying
to shout to each other. Well, or four people on a bus trying to
shout to each other. And as, as we just talked about, the
bandwidth can be a challenge here. The arbitration for the bus can be a
challenge. And because we're talking about
interconnection networks, the wire delay and capacitance of the
network can be worse or it can be a challenge here.
So, if we got one core, it needs to drive the shared multidrop bus.
There's a lot of capacitance on this bus, much more so than this case because all
of a sudden, we've, we've, doubled the length of the bus, so the wires are
longer and we've also put more loads on the bus.
So, there's actually more capacitance on this bus.