Pi 4 SoC

How is a Pi 4 arranged internally, and how does it differ from a desktop PC?

The Pi 4 is heavily optimised for being low power and low cost. The chip which includes the CPU is referred to as a SoC, "System on a Chip," as it includes many components which would traditionally be found as discrete components elsewhere on the motherboard. The following diagram of the SoC, the Broadcom BCM2711, is only an approximation to the truth, but it shows some of the key points.

Pi 4 SoC

Pi 4 SoC

Pi 3 SoC

Pi 3 SoC

The dotted line encloses everything on the SoC.

Main clock speeds

Pi 3Pi 3+Pi 4Pi 400

The Pi 4 marked a significant change from earlier Pis. The first three generations of Pi used very similar SoCs, the BCM2835 to BCM2837, with changes to clock speed and CPU being the biggest differences between them. The Pi 4 makes several other changes, in that the GPU moves from the VideoCore IV of earlier models to the VideoCore VI, the memory interface moves from DDR2/900 of the Pi 3B (DDR2/1000 in the Pi 3B+) to DDR4/3200, and the ethernet interface moves onto the SoC rather than sitting on an external USB2 bus. Also there is now a (single) PCIe link, which is used for an external USB3 controller. Earlier Pis supported USB2 only, with a single USB2 link from the SoC being shared by a USB hub and the ethernet controller.

So the Pi 4 represents a large change in the bandwidth available between the SoC and the outside world. Memory bandwidth increased by a factor of three, ethernet bandwidth by a factor of two, SD card bandwidth by a factor of two (due to a later version of the SDIO interface), USB by almost a factor of ten.

(I have been unable to determine anything much about the internal AMBA AXI bus(es) within the SoC. An educated guess suggests 128 bits and 500MHz for the Pi 4. If so, then its bandwidth of 8GB/s is less than that of the 12.8GB/s of the memory interface. The best rate I have measured is just over 5.5GB/s, which is consistent with a theoretical maximum of 8GB/s.)

If one were to compare this to a contemporary desktop PC, then even the Pi 4 looks low on I/O capabilities. A standard PC or laptop memory bus is 128 bits wide, not 32, so even though it might still be DDR4/2400, it can supply almost 40GB/s rather than about 12.8GB/s. (The number after the / gives the number of millions of transfers a second the memory bus can make. However, for the Pi each transfer is four bytes, and for the average PC it is 16 bytes.) Similarly a standard SATA3 disk interface is rated at 600MB/s, far faster than the Pi 4's 50MB/s SD card interface.

Desktop block diagram

N.B. Some interfaces, such as the camera and audio interfaces, are not shown. Most of the above information is sourced from web searches, and may be a fairly weak approximation to the truth. My apologies to any Broadcom or Pi engineers who are in tears by this point. If you wish to send in corrections, please do!