Tom Jennings wrote:
Strictly-speaking, Microchip's PICs are NOT
COMPUTERS. Of course I don't
make that distinction when working with them.
I strongly disagree with any definition of "computer" that *requires*
the machine to have a von Neumann architecture. In fact, most people
do not even define computer to necessarily be of the stored program
variety, although I'm willing to accept such a definition.
The earliest PICs (eg. the NMOS PIC1654 from General Instruments in
the 1970s, and the CMOS PIC16C54 from Microchip in the 1980s) do have
a strict Harvard architecture. Program memory is in an entirely
separate address space from data memory, and they have no way for the
program to be able to read or write an arbitrary location in program
memory. Table lookup works because there is a way to do a branch to
a computed address (though it is limited to only a portion of the program
address space), and there is a single instruction that loads the
accumulator with a constant and returns (RETLW).
More recent PICs (late 1990s to present) have used a modified Harvard
architecture. They have added means for the program to read arbitrary
locations in program memory, and in flash memory based parts, to write
to program memory.
Eric