The video I’m watching about the two architectures says that Harvard architectures “can fetch instructions at the same time as reading/writing data”. This makes sense, but how is this different from pipelining? Can’t be von Neumann architectures do this as well? It also says that Von Neumann architectures follow a linear fetch, decode, execute cycle. Again, this doesn’t make sense to me. Surely pipelining means that they don’t have to do this, right?
In: 5
The big ELI5 difference between von Neumann and Harvard is that Harvard stores instructions separately from data, and treats them as two separate things that never mix. In von Neumann, instructions are just another type of data.
This means that on a true Harvard architecture, some of the things we take for granted in a standard desktop computer are impossible. Let’s download a game from the Internet (as data) and play it (as code)!
When you get down into the guts of modern microprocessors, there’s sometimes weird semi-Harvardish stuff going on, but all modern general-purpose PCs and phones at least *behave* like von Neumann architectures. The main place you’ll find Harvard thinking is in microcontrollers (Arduino, for instance), which are programmed once to do one job that never changes.
Latest Answers