A typical SoC consists of:
- a microcontroller, microprocessor or digital signal processor (DSP) core – multiprocessor SoCs (MPSoC) have more than one processor core
- memory blocks including a selection of ROM, RAM, EEPROM and flash memory
- timing sources including oscillators and phase-locked loops
- peripherals including counter-timers, real-time timers and power-on resetgenerators
- external interfaces, including industry standards such as USB, FireWire,Ethernet, USART, SPI
- analog interfaces including ADCs and DACs
- voltage regulators and power management circuits
A bus – either proprietary or industry-standard such as the AMBA bus from ARM Holdings – connects these blocks. DMA controllers route data directly between external interfaces and memory, bypassing the processor core and thereby increasing the data throughput of the SoC.