On Tue, 18 Nov 2003, Eric Smith 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.
I don't even think it would be impossible to build a wide-purpose computer
around an AD SHARC DSP, even.
Peace... Sridhar