5
$\begingroup$

Is it one of:

  • Harvard
  • Modified Harvard
  • von Neumann

Or are they antiquated models that modern computers are only loosely based on?

If you asked Intel or AMD what would they say?

$\endgroup$
8
$\begingroup$

Modern general-purpose high-performance processors use separate instruction and data caches, and so could be classified as modified Harvard even though they use a unified address space. (Some microcontrollers—usually to provide extra memory or protection without a memory protection unit—use a Harvard architecture in which data and code use separate address spaces.)

x86 might be considered a little more nearly "pure" von Neumann than some other ISAs in that self-modified code is guaranteed to be handled properly if a jump is used. Many other ISAs require an instruction synchronization instruction and may require explicit invalidation of any modified memory from the instruction cache (i.e., the instruction cache is not necessarily coherent).

Cross-modified code is somewhat more complex; even x86 requires a synchronizing instruction.

$\endgroup$
3
$\begingroup$

Depends on how you see it, but the most common answer is Von Neumann, because there is no physical separation between data and program in modern CPU. However, in actuality modern machines are perhaps better described as modified Harvard Architecture, because for security reasons, modern machines do implement mechanisms to prevent data from being accidentally executed as code (this is the cause of many security issues in older systems), in the form of DEP (Data Execution Prevention) or NX bit (No eXecute bit), essentially making them more like Harvard architecture.

$\endgroup$
  • $\begingroup$ Harvard architecture has physically separate storage and signal pathways. That doesn't suggest it's comparable to software security mechanisms, more so to a CPU cache separating instructions and data. $\endgroup$ – AsksAnyway May 11 '14 at 19:01
  • $\begingroup$ If you asked Intel or AMD what would they say? $\endgroup$ – AsksAnyway May 11 '14 at 19:03
  • $\begingroup$ @AsksAnyway On most typical CPUs, there are separate pathways for code and data: each have their own pipeline. It's the memory controller that merges the two paths. So you could say that the CPU itself is Harvard (with a lot of cruft to make it not too Harvard) while the machine as a whole is Von Neumann. $\endgroup$ – Gilles May 11 '14 at 23:03
-1
$\begingroup$

I think Von Neumann is appealing answer but most processors implement a modified harvard architecture so they can load programs for disk storage as data and then execute it!..

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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