0
$\begingroup$

The shared bus between the program memory and data memory leads to the von Neumann bottleneck, the limited throughput (data transfer rate) between the central processing unit (CPU) and memory compared to the amount of memory. Because the single bus can only access one of the two classes of memory at a time, throughput is lower than the rate at which the CPU can work. This seriously limits the effective processing speed when the CPU is required to perform minimal processing on large amounts of data. The CPU is continually forced to wait for needed data to be transferred to or from memory. Since CPU speed and memory size have increased much faster than the throughput between them, the bottleneck has become more of a problem, a problem whose severity increases with every newer generation of CPU.

Source : https://en.m.wikipedia.org/wiki/Von_Neumann_architecture#Von_Neumann_bottleneck

There can be up to a 53% difference between the growth in speed of processor speeds and the lagging speed of main memory access.

So, if the processor-memory performance gap is so big then isn't creating more powerfull processors useless ?

$\endgroup$
3
  • $\begingroup$ I'm not exactly sure what you're asking here. The section following the one you quoted provides methods to mitigate the problem. Why do you think this bottleneck would make constructing faster processors pointless? Please edit your question to provide more detail. $\endgroup$
    – Discrete lizard
    Commented Apr 17, 2018 at 7:41
  • $\begingroup$ Yes there are some ways to mitigate this bottleneck but it is already mentioned in the section that , the bottleneck has become more of a problem, a problem whose severity increases with every newer generation of CPU. Also you can compare the speed at which RAM can provide data to CPU. The "memory wall" is the growing disparity of speed between CPU and memory outside the CPU chip. From 1986 to 2000, CPU speed improved at an annual rate of 55% while memory speed only improved at 10%. $\endgroup$
    – Physicist
    Commented Apr 17, 2018 at 8:03
  • $\begingroup$ Trivially parallel computation with small memory usage still can benefit from more faster CPU's, right? And looking at GPU, these are neither fast nor massively parallel, with bottleneck in shared memory, but we still like to use them. $\endgroup$
    – Evil
    Commented Apr 17, 2018 at 9:41

1 Answer 1

1
$\begingroup$

Creating faster processors with more cores makes sense because more speed and more cores is not the only change.

Big changes are:

  1. Bigger caches. Ryzen Threadripper has up to 288MB of cache. My iPhone has more than 16 MB of cache. Your processor can do an awful lot of work without ever touching RAM.

  2. More memory bandwidth. Data transfer has gone from 32 bit to 64 bit to 128 bit to 256 bit transfers in parallel and not stopping there.

  3. Improved streaming. The time needed to move consecutive data is very much improved, so the right algorithms can process data at massive speed.

  4. Changed algorithms. If I know that memory access speed has become the bottleneck, then I can change algorithms that were optimal with a processor of ten years ago to be optimal on today's processors.

$\endgroup$

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.