Why computer architecture based on von Neumann architecture is preferred over Harvard architecture, when designing personal computers; while Harvard architecture is used for designing microcomputer based computer systems and DSP based computer systems?
von neumann vs harvard architecture
6.7k views Asked by SouvikMaji At
2
There are 2 answers
0
MooseBoys
On
The fundamental difference between Von Neumann architecture and Harvard architecture is that while in the Harvard architecture, instruction memory is distinct from data memory, in Von Neumann they are the same. This reflects the practical reality of PCs (in which programs are stored and read from the same medium as data, usually disk and RAM), and microcontrollers (in which the program is stored in non-volatile memory, and data is stored in volatile memory).
Related Questions in HARDWARE
- Is cartopy projections are computaionally heavy?
- Memory location changing from 0 to 1 consistently on Mac
- How to adjust differences of hardwares while executing code
- Read/write data to DS1642
- How can I get current cpufreq in kernel code?
- Is it possible to fetch iPhone device model number (MT552GR/A) programatically?
- The problem with running the Simulink model on arduino uno
- In VSC and other apps, when i scroll the text becomes black and turns normal after a very short delay 100ms. It is really annoying
- ERROR in rc_mpu_calibrate_accel_routine, center of fitted ellipsoids(in beagle bone blue)
- Will the 16n prefetch in DDR5 affect the bandwidth of small-granularity memory accesses?
- suppose a program is running on 5 threads.If an extra thread is added,what factors should be considered?
- Signed Driver rejected by Windows 10
- How to randomly simulate keypresses for special keys
- How does a TLB manage memory translation for addresses that cross page boundaries?
- Get number of RAM channels as a property of the system
Related Questions in CPU-ARCHITECTURE
- What is causing the store latency in this program?
- what's the difference between "nn layout" and "nt layout"
- Will a processor with such a defect work?
- How do i find number of Cycles of a processor?
- Why does LLVM-MCA measure an execution stall?
- Can out-of-order execution of CPU affect the order of new operator in C++?
- running SPEC in gem5 using the SimPoint methodology
- Why don't x86-64 (or other architectures) implement division by 10?
- warn: MOVNTDQ: Ignoring non-temporal hint, modeling as cacheable!, While simulating x86 with spec2006 benchamrks I am getting stuck in warn message
- arithmetic intensity of zgemv versus dgemv/sgemv?
- What is the microcode scoreboard?
- Why don't x86/ARM CPU just stop speculation for indirect branches when hardware prediction is not available?
- Question about the behaviour of registers
- How to increase throughput of random memory reads/writes on multi-GB buffers?
- RISVC Single Cycle Processor Data Path and Testbench
Related Questions in VON-NEUMANN
- Differences between low-and high-level languages using the Von Neumann model
- Counting the total number of even/odd numbers in a 2D graph
- What is the purpose of the CIR if I have the MDR in Von Neumann Architecture?
- Solution for 1 D heat conduction with Finite Difference not reducing error with increase in grid points
- Artificial Intelligence & Von Neumann Model
- Is C++ considered a Von Neumann programming language?
- Does the Harvard architecture have the von Neumann bottleneck?
- Why is von neumann faster than harvard architecture
- Why does instruction memory of IAS has 2 segments
- Link between models of computation, computer system architectures and programming paradigms
- How does a computer distinguish whether a binary pattern is an instruction or just a number?
- Solution pattern for 2D stencil pattern
- How do contemporary processors differ from a pure von Neumann architecture?
- Is the Raspberry Pi based on Harvard Architecture?
- why do we use RAM model of computation for algorithmic analysis when it corresponds to harvard architecture?
Related Questions in HARVARD-ARCHITECTURE
- How would I take a simple program to multiply two numbers in MARIE assembly and rewrite it in a language readable for a one address VM
- configuring the overlapping address for code and data in linker script
- Initialising global variables in C in Harvard CPU
- In the Harvard Architecture, are there two MAR's and MBR/MDR's?
- Aren't the von Neumann model and the Turing model practically the the same thing?
- Does the Harvard architecture have the von Neumann bottleneck?
- Why is von neumann faster than harvard architecture
- How to make two otherwise identical pointer types incompatible
- How is inline assembly possible on AVR 8-bit?
- Where does code memory in Harvard architecture refers to?
- Is the Raspberry Pi based on Harvard Architecture?
- why do we use RAM model of computation for algorithmic analysis when it corresponds to harvard architecture?
- Which architectures are Harvard and which are Von Neumann?
- Retargeting gcc/llvm for a new Harvard architecture RISC
- How can I tell whether my computer is Harvard or von Neumann architecture?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Well current CPU designs for PC's have both Harvard and Von Neumann elements (more Von Neumann though).
If you look at the L1 caches you would see that in AMD, ARM and Intel systems you have Instruction L1 Cache and Data L1 Cache, that can be accessed independently and in parallel. That's the Harvard part. However, in L2, L3 or in DRAM, data and codes are mixed. That's the Von Neumann part.
So why isn't a pure Harvard architecture adopted for PC's? My opinion is that it does not make sense. If you profile main majority of applications, you would see that the L1 Instruction Cache miss ratio is very small. This means that generally code size is not a problem. So it wouldn't make sense to design a fully separate path for code. Data can grow very large but code can't really.
In DSP's it makes sense to use separate code and data paths. That's because DSP's work mainly on "streaming data" meaning that the need for caching is rather small. Also the DSP codes can contain pre-computed coefficients that increase the code size. So there is a balance between data size and code size, meaning that it makes sense using a Harvard architecture.