compiled by Lewis Loflin
Computer architecture shapes how CPUs and microcontrollers work at the most basic level. The classic Von Neumann model uses a single memory space for both instructions and data, while the Harvard model separates program and data memory for faster, more predictable performance. These choices also affect how devices handle memory-mapped I/O and port-mapped I/O, two common ways of connecting peripherals. This guide explains the differences clearly and shows how they apply to the PIC16F57 microcontroller, a simple yet powerful 8-bit device that demonstrates Harvard architecture in action. By comparing classic systems like the 6502 with the PIC16F57, you’ll see how architecture impacts memory use, I/O design, and programming style in embedded systems.
Note: The 6502 and similar CPUs relied on external ICs for RAM, ROM, and I/O devices. In contrast, microcontrollers such as the PIC16F54 / PIC16F57 family integrate program memory, data memory, and peripherals into a single chip. Keep this distinction in mind when comparing architectures — the 6502 illustrates a system built from multiple chips, while the PIC represents an all-in-one embedded solution.
The PIC16F57 is an interesting teaching device when discussing computer architecture. Classic CPUs such as the 6502 or Z80 follow a Von Neumann architecture, where both program code and data share a single memory space and bus. In those machines, it is natural to use memory-mapped I/O, since any address can be decoded to either RAM, ROM, or a peripheral. This is the model many early microcomputers used.
In contrast, the PIC16F57 is a Harvard architecture microcontroller. It has completely separate program memory (ROM/flash) and data memory (RAM and Special Function Registers). Instructions are fetched from program memory, while data and I/O are handled in the data space. Because the spaces are separate, the PIC16F57 cannot execute directly from RAM, and moving constants into RAM requires special instructions. Peripherals and control registers are not “memory-mapped” in the traditional Von Neumann sense — instead, they reside in the SFR area of the data memory map.
For students coming from the 6502 or other Von Neumann systems, this distinction is crucial: the PIC16F57 demonstrates how a Harvard design simplifies instruction fetch but forces a different style of programming and hardware interfacing. It is a perfect example of how the theory of computer architecture translates into real embedded hardware.
Key point: Von Neumann and Harvard describe processor/memory architectures, while memory-mapped I/O and port-mapped I/O describe I/O addressing schemes. They often appear in different combinations.
Examples mapped to your experience
EPROM (Erasable PROM) became a commercial reality in the early 1970s and rapidly scaled through the 1980s. These devices used floating-gate transistors to trap charge, and they could only be erased by exposing the quartz window on the package to ultraviolet (UV) light for several minutes. Without that erase cycle, an EPROM is effectively read-only.
Notes