Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!julius.cs.uiuc.edu!apple!motcsd!dms!albaugh From: albaugh@dms.UUCP (Mike Albaugh) Newsgroups: comp.arch Subject: Re: harvard architectures Message-ID: <1170@dms.UUCP> Date: 18 Oct 90 03:17:26 GMT References: <7883@darkstar.ucsc.edu> Organization: Atari Games Inc., Milpitas, CA Lines: 57 From article <7883@darkstar.ucsc.edu>, by haynes@ucscc.UCSC.EDU (99700000): [ stuff about the "etymology" of Harvard and "Von Neuman" architectures. As originally defined the opposite of Harvard was Princeton, I believe. Of course, Von Neuman was associated with Princeton (or the Institute for Advanced Studies) by then :-) But that's more along the lines of comp.nostalgia. The following _may_ not be :-) > Since those early days various things have clouded the distinction between > the two architectures. > 1) Even in pure "von Neumann" architectures the idea of self-modifying > code has become rather passe' > 2) The Burroughs machines from the B6500 on have used tag bits to > distinguish instructions from data when both are living in the same > memory. So it can't fetch instructions from data words. I'll treat these two together. The machine described in the "Draft report on Edvac", the basis of the term "Von Neuman machine", was, in a sense, a "tagged" machine. Each memory word was to have a bit, settable _only_ by the program loading device, that identified it as program or data. "Storing" to a word tagged as an instruction modified _only_ the address portion of the word, while "executing" a word tagged as data acted as a "load immediate". So, the potential for "self modifying code" was limited to those operations that are now performed by index registers, later invented (like so many things) at the University of Manchester and patented by IBM :-) Note that the favorite "reasons I need self-modifying code" that surface around here could only be done on such a machine by somehow writing out a modified version of the program to the (not really defined) I/O device and "re-booting" the machine. And an un-related midor nit.: > 4) A lot of microprocessor systems, particularly embedded micros, have > absolutely read-only instruction code, with read-write memory used only > for data. Although these are in the same address space the code > certainly can't modify itself. But it _can_ (and many do) write a modified copy of itself into RAM and execute it, if there is but one address space. The original Von Neuman machine could not "create" instructions (other than "Load Immediate") on the fly. > haynes@ucscc.ucsc.edu > "Any clod can have the facts, but having opinions is an Art." > Charles McCabe, San Francisco Chronicle Bring back the Open Channel (for when I lose my Newsfeed :-) Mike | Mike Albaugh (albaugh@dms.UUCP || {...decwrl!pyramid!}weitek!dms!albaugh) | Atari Games Corp (Arcade Games, no relation to the makers of the ST) | 675 Sycamore Dr. Milpitas, CA 95035 voice: (408)434-1709 | The opinions expressed are my own (Boy, are they ever)