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 best solutions below
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
- How to get temperature value from DS18B20 voltage
- Swich table in case of CRC error
- How verify server's hardware before install it into data center?
- What strategies and practices are used, when running very intense and long calculations, to ensure that hardware isn't damaged?
- Hardware upgrade for developing android App on Android studio
- XMega: CDC on USB composite controller does not function properly
- How do user-space applications control hardware (Location/Network/Wifi) in Android?
- How to get parameter name of "Target hardware"-Field in "Run on target hardware" in Matlab Simulink?
- lshw return network device is unclaimed, I need more diagnostic
- How to get started on creating a safe that will open and close upon entering a passcode into it?
- Generating fingerprint of virtual machines
- Can Java control hardware devices on PC?
- Using Dependency Injection for hardware abstraction
- Get Ram Information OSX
- Benefit of hardware with mobile access instead of wifi
Related Questions in CPU-ARCHITECTURE
- Real-world analog to TIS-100
- What is faster: equal check or sign check
- Multicore clock counter consistency
- How do MemReq and MemResp exactly work in RoccIO - RISCV
- What is the simplest Turing complete CPU instruction set which can execute code from ROM?
- Had 16-bit DOS a memory access limitation of 1 MB? If yes, how?
- Are correct branch predictions free?
- Assembly: why some x86 opcodes are invalid in x64?
- Memory barriers force cache coherency?
- FreeRTOS : How to measure context switching time?
- HACK Machines and its assembler
- Peak FLOPs per cycle for ARM11 and Cortex-A7 cores in Raspberry Pi 1 and 2
- Computer Architecture/Assembly, Amdahl's Law
- How the heap and stack size is decided in process image
- How can I get the virtual address of a shared library by the use of computer architecture state?
Related Questions in VON-NEUMANN
- What are some examples of non-Von Neumann architectures?
- Differences between low-and high-level languages using the Von Neumann model
- What would the assembly language equivalents of the operations on the original Turing machine be?
- How can I tell whether my computer is Harvard or von Neumann architecture?
- Finding the position of the lowest value in a Von Neumann Neighborhood
- How does parallel processing solve Von Neumann's bottleneck?
- What is the purpose of the CIR if I have the MDR in Von Neumann Architecture?
- Any advantages of von Neumann architecture?
- Is the Raspberry Pi based on Harvard Architecture?
- Types of computers
- von-Neumann machines and Lambdas
- Harvard Architecture maps to HLL
- introduction to CS - stored-program concept - can't understand concept
- Simple truly random number generator
- Use cases for self-modifying code?
Related Questions in HARVARD-ARCHITECTURE
- booting linux on harvard architecture
- Aren't the von Neumann model and the Turing model practically the the same thing?
- How can I tell whether my computer is Harvard or von Neumann architecture?
- Where does code memory in Harvard architecture refers to?
- configuring the overlapping address for code and data in linker script
- 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
- Any advantages of von Neumann architecture?
- Is the Raspberry Pi based on Harvard Architecture?
- Harvard Architecture maps to HLL
- How to make two otherwise identical pointer types incompatible
- Does the Harvard architecture have the von Neumann bottleneck?
- Retargeting gcc/llvm for a new Harvard architecture RISC
- Initialising global variables in C in Harvard CPU
- In the Harvard Architecture, are there two MAR's and MBR/MDR's?
- How is inline assembly possible on AVR 8-bit?
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)
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?
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.