von neumann archeitecture vs harvard arch

Status
Not open for further replies.

Disha Karnataki

Full Member level 5
Joined
Jul 20, 2013
Messages
249
Helped
9
Reputation
18
Reaction score
8
Trophy points
18
Location
india
Visit site
Activity points
2,231
when in class we were writing differences between von neumann arch(VNA) and harvard arch(HA) one such difference was:
for HA:it is not possible to fetch the instruction code and data simultaneously.
for VNA: instruction code & data can be fetched simultaneously.
how???
does VNA uses parallel programing?? well, i don't know much about parallel programing but just studied in brief that it's used in order to do tasks simultaneously.
please expalin the difference mentioned above.
 

Harvard has two or more address and data buses so it IS possible to access data memory and instruction memory simultaneously, subject to that being a sensible thing for the program to do. If the data is a constant it can be stored as a bit field inside the instruction itself.

VNA can only fetch sequentially from the same memory space so the only time it can read both at the same time is if for example it used 16 bit reads and the instruction and data were 8 bits wide each and in adjacent addresses.

Brian.
 

the only time it can read both at the same time is if for example it used 16 bit reads and the instruction and data were 8 bits wide each and in adjacent addresses.

Brian.
you mentioned it the opposite way i.e your first para should be for VNA and the second one for HA.
you mean tough the uc has only one bus then to it can access the data & instruction memory simultaneously if it were 16bit??
 

you mean tough the uc has only one bus then to it can access the data & instruction memory simultaneously if it were 16bit??

Not quite what I meant. There is no mechanism for specifically reading data and instructions at the same time from the same bus no matter what width the bus is, what I meant was that in some circumstances the data may follow an instruction or the instruction may follow the data and both might be read in one operation if the read operation was wide enough to encompass both. It's a very specific condition which is possible but not normally used in programming because the placement of data or instructions next to each other in memory cannot be guaranteed in most cases.

A safe programmer and a good compiler would ensure the data was defined in it's own block and would not rely on it's absolute address.

Brian.
 
Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…