A processor has an architecture that provides the processing speed
advantages of the Harvard architecture, but does not require two separate
external memories in order to expand both data memory and program
instruction memory. The processor has separate program memory space and
data memory space, but provides the capability to map at least a portion
of the program memory space to the data memory space. This allows most
program instructions that are processed to obtain the speed advantages of
simultaneous program instruction and data access. It also allows program
memory space and data memory space to be expanded externally to the
processor using only one external memory device that includes both
program instructions and data. The processor includes a program memory
space operable to store program instructions and data, a data memory
space operable to store data, and mapping circuitry operable to map at
least a portion of the program memory space to the data memory space. The
program memory space may be internal to the processor. The processor may
further comprise a page register operable to specify a location of the
program memory space that is mapped to the data memory space.