Joe, Re: "If I understand correctly, the system bus bandwidth is not the same as the memory bandwidth. Don't several processors share the same system bus? In this case, the average memory bandwidth is divided by the number of processors, four I think, giving each processor on average 1.6 GB/sec."
If it were possible to run a bus at 100% utilization, then the maximum amount of bandwidth per processor running on a shared bus interface at full capacity would indeed by 1.6GB/s. However, things don't exactly work that way. Even point to point busses do not achieve 100% utilization, either because of protocol overhead, or simply because the CPU isn't able to put transactions on the bus on every bus cycle. Consequently, there is a lot of room to optimize the bus interface on a shared bus to make it more efficient. Techniques like out of order transaction handling, pipelining, and advanced buffering allow more processors on a shared bus to take up empty cycles, and thus make best use of the bandwidth. Point to point topologies may be more efficient in the long run, but a simple back-of-the-napkin calculation of dividing the bandwidth between processors on a shared bus, while taking the full bandwidth of a point to point bus would yield a pretty unrealistic comparison.
wbmw |