Harvard and von Neumann Architecture - Nand2Tetris
There's a subtle difference.

Building intuitive and engaging (customer, developer, user, visual) experiences is my Ikigai.
Search for a command to run...
There's a subtle difference.

Building intuitive and engaging (customer, developer, user, visual) experiences is my Ikigai.
No comments yet. Be the first to comment.
In this series, I will publish my notes, understandings and learnings from the Nand2Tetris course available on Coursera. I will also include additional real world tidbits throughout my posts.
The computer senses your touch but how does it realize it?
sagatu telugodi aavedana
![Scalability, Reliability and Maintainability [Tenglish]](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1759079554176%2F86761c98-abd6-4c0a-a763-cb7578149542.png&w=3840&q=75)
Gotta learn the art of references from my prof now

Take some time. 'a' is definitely not the answer.

OCD Intensifies

import { curves } from "bezier-curves";

Some of the quotes and information are part of the Nand2Tetris course available on Coursera.
Let's think from a normal standpoint where we have a single memory device that both stores the program that we need to execute and also stores the data for the program during execution. There are two cycles in this operation. Since we can only operate once on the memory per clock cycle, we have to execute an instruction in 2 cycles.
The two cycles would be:
This is how von Neumann Architecture handles instruction fetching and execution - in two cycles.
To overcome this limitation of using 2 cycles, the Harvard Mark I relay-based computer, stored instructions on punched tape (the ROM) and data in electro-mechanical counters (or in other words, the RAM).
That's where the architecture got its name from - Harvard Architecture.
Why is this better? The CPU can access both the instruction to execute and also the data required to execute the instruction in the same cycle. So, for something that needs 48 clock cycles to execute, we can finish it in 24 clock cycles. This is quite advantageous and saves time but it's costlier as we need to maintain two memory devices instead of one.
CPUs that are currently in use implement a modified version of the Harvard Architecture, which is called as, lo and behold, Modified Harvard Architecture. The most significant modification is the use of a split-cache where we implement memory hierarchy and store the instructions in separate data and instruction memory at low levels. The modification is that, instead of having 2 address spaces, one for instructions and one for data, we use single address space.