Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!dogie.macc.wisc.edu!uwvax!astroatc!nicmad!madnix!jason From: jason@madnix.UUCP (Jason Blochowiak) Newsgroups: comp.sys.apple Subject: Harvard Architecture (was Re: Apple single and ......) Message-ID: <1179@madnix.UUCP> Date: 16 Mar 90 11:18:18 GMT References: <3602.25f919c8@vax5.cit.cornell.edu> Reply-To: jason@madnix.UUCP (Jason Blochowiak) Distribution: comp Organization: ARP Software, Madison, WI Lines: 34 q4kx@vax5.cit.cornell.edu (Joel Sumner) writes: >1. Could someone please explain exactly what "Harvard Architecture" is and >how it affects the 65816 (or how it is implemented in a processor)? A Princeton architecture (also known as a Von Neumann machine) consists of (basically) a CPU and some memory. That memory can function as either data or code. The Harvard architecture, on the other hand, has a CPU, code memory, and data memory. The one major problem with this is that code is sometimes data, and so it didn't get real popular for a long time. Well, people are getting interested in it again, now that it's possible to have multiple segments - it makes caching code easier, as the CPU won't have to re-fetch the code from main memory ever (assuming there's enough space in the cache), as it won't change. Now, the 680x0's architecture discourages self-modifying code, so it's not too painful for it to go Harvard, but the 65816 & 6502 programmers of the world do use self-modifying code (despite the fact that it's a real pain to debug), and that would pretty much invalidate the entire code/data separation. Good enough? > [#2 was something else...] >Thanks >Joel >q4kx@cornella -- Jason Blochowiak - jason@madnix.UUCP or, try: astroatc!nicmad!madnix!jason@spool.cs.wisc.edu "Education, like neurosis, begins at home." - Milton R. Saperstein