On 12 Dec 2008 at 19:18, Andy Holt wrote:
Technically none of them can be pure Harvard
architecture because the
operating system can write to memory (to load the program) and then start
executing instructions from the same memory.
We agree on that one, even "pure" Harvard isn't what it used to mean.
Pure Harvard architecture used to mean separate stores (and, by
extension, datapaths) for instructions and data. Lower PICs probably
qualify, as the data and program areas are very separate (and not
even of the same word length).
But it's a bit of a stretch to say that a machine with a defeatable
protection scheme is "Harvard" in any sense of the word. By that
logic, an 80286 running in protected mode is a Harvard machine. By
that token upper PICs with software-writable program memory are not
Harvard, even though the data books say the contrary.
Things get more complicated even on the "pure" architectures if off-
line storage (e.g. tape, cards, quipu, guru beads) can be written by
a program and read into either data or program (i.e. executed) space.
Is a machine with separate code and data spaces still considered to
be "Harvard" if the instruction set includes an "execute" instruction
that permits modification of the target instruction operand
specification? (e.g. the S/360 EX instruction).
It's not a simple distinction.
Cheers,
Chuck