0
\$\begingroup\$

I am trying to understand how exactly the main memory and peripheral devices like NIC, video card, hard disk, USB, etc. are physically or electrically connected to the system bus. Pasting here the diagram from the linked Wikipedia page:

enter image description here

Now based on this basic diagram, I initially thought that the RAM copper pins and peripheral copper pins are in direct physical contact with the system bus copper wires, I mean, literally copper-to-copper connection. But upon further googling it seems that the RAM and peripherals are instead connected to a chipset, which in turn is the one connected to the system bus?

So if I am to include the chipset in the basic diagram, this is how I imagine it:

enter image description here

Is this correct? If yes, then does the chipset act like a "gateway" to the system bus for memory and peripherals similar to a gateway in computer networks? If not, then please correct the diagram and my understanding. Thank you.

\$\endgroup\$
1
  • \$\begingroup\$ Search for ‘Northbridge’. Wikipedia has a good description of what happens in a PC (which is the assumption as all computing devices are not necessarily the same) \$\endgroup\$
    – Kartman
    Commented Oct 18, 2023 at 11:03

2 Answers 2

1
\$\begingroup\$

I am trying to understand how exactly the main memory and peripheral devices like NIC, video card, hard disk, USB, etc. are physically or electrically connected to the system bus.

From your link:

The system bus approach is obsolete in the modern personal and server computers

So you're reading a historical article about computing in decades past. Modern computers tend to integrate most of the functions of the chipset into CPU itself. This CPU is already a decade old, but is representative of how many 2023 processors work:

Sandy Bridge EP

Source

Instead of a system bus external to the processor there is an internal bus that connects the caches of the individual cores together along with external interfaces such as the IMC (memory controller), PCIe (graphics and storage) and QPI (which is now mainly used in servers to connect multiple CPU sockets but historically connected the chipset). What people refer to the chipset now typically is essentially just a PCIe device with a bunch of common controllers integrated (USB, LAN, PCIe switch for more ports, etc).

The "gateway" to the system is probably the PCIe interface, since ultimately most externally facing ports plug (PCIe slots, USB ports, ethernet, wifi, etc) into it. The internal bus (in this case the two rings for Intel) connects the PCIe devices to memory or CPU cores as needed.

\$\endgroup\$
1
  • \$\begingroup\$ I think it's worth mentioning that intel's "mesh" in the end means multiple rings of the kind you show in your picture, with complex FIFOs in between. So, the ring is not "the new system bus", but just a local interconnect, and it doesn't have separate address, data and control lines dedicated to a singular view of the world, but is a transaction-based bus – if you will, a packet computer network. \$\endgroup\$ Commented Oct 18, 2023 at 20:45
0
\$\begingroup\$

I am trying to understand how exactly the main memory and peripheral devices like NIC, video card, hard disk, USB, etc. are physically or electrically connected to the system bus.

No single such bus exists in most modern application processor machines (i.e., in x86 PCs, Arm64 phones, etc). In other words, if it has a NIC and USB, it probably isn't based on an architecture with a system bus.

You need to read the second sentence in that article you linked to!

The technique was developed to reduce costs and improve modularity, and although popular in the 1970s and 1980s, more modern computers use a variety of separate buses adapted to more specific needs.

The main thing here is that CPU designers will not like buses, in the strict sense of the word "bus". When you're communicating with other cores (plural) and with multi-channel memory controllers and with DMA-capable PCIe root complexes, trying to force everything through a single bus that's shared between all of these is a bottleneck.

So,

  1. buses are undesirable as they are a shared medium which becomes a bottleneck as soon as your architecture isn't based on the idea that the CPU controls everything and itself is the bottleneck (i.e., as soon as peripherals were able to do DMA, it was clear that system buses weren't going to cut it)
  2. system-wide shared resources are essentially a no-go in systems with multiple equal actors (e.g., processor cores). All the modern interworkings between CPU cores and their peripherals (e.g. infinity fabric for AMD, QPI for intel) are based on point-to-point links – they're more similar to a switched ethernet than to say, ISA.

Internally in a CPU core, the idea of buses as drafted in 1970s era text books doesn't exist, as far as I can tell, in modern CPUs, either.

\$\endgroup\$
2
  • \$\begingroup\$ ok thanks, so this means I should forget about "system bus" because it is obsolete, right? \$\endgroup\$
    – Noob_Guy
    Commented Oct 18, 2023 at 12:51
  • \$\begingroup\$ I mean, yes, as said, second sentence in the article. \$\endgroup\$ Commented Oct 18, 2023 at 13:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.