The 8051 microcontroller has 4K bytes of internal ROM, 128 bytes of internal RAM, four 8-bit I/O ports, two 16-bit timers/counters, and one serial interface. It uses a Harvard architecture with separate memory spaces for program and data. External memory can be used for both program and data via address multiplexing. The machine cycle time depends on the oscillator frequency, with examples given of 1.085 μs for an 11.0592 MHz oscillator and 0.75 μs for a 16 MHz oscillator.