# Autonomous peripheral operation

In computing, autonomous peripheral operation is a hardware feature found in some microcontroller architectures to off-load certain tasks into embedded autonomous peripherals in order to minimize latencies and improve throughput in hard real-time applications as well as to save energy in ultra-low-power designs.

## Overview

Forms of autonomous peripherals in microcontrollers were first introduced in the 1990s. Allowing embedded peripherals to work independently of the CPU and even interact with each other in certain pre-configurable ways off-loads event-driven communication into the peripherals to help improve the real-time performance due to lower latency and allows for potentially higher data throughput due to the added parallelism. Since 2009, the scheme has been improved in newer implementations to continue functioning in sleep modes as well, thereby allowing the CPU (and other unaffected peripheral blocks) to remain dormant for longer periods of time in order to save energy. This is partially driven by the emerging IoT market.
Conceptually, autonomous peripheral operation can be seen as a generalization of and mixture between direct memory access (DMA) and hardware interrupts. Peripherals that issue event signals are called event generators or producers whereas target peripherals are called event users or consumers. In some implementations, peripherals can be configured to pre-process the incoming data and perform various peripheral-specific functions like comparing, windowing, filtering or averaging in hardware without having to pass the data through the CPU for processing.

## Implementations

Known implementations include:
* Peripheral Event Controller (PEC) in Siemens/Infineon C166 and C167 16-bit microcontrollers since 1990
* Intelligent autonomous peripherals (Capture compare unit [de] CCU6) in Infineon XC800 series of 8051-compatible 8-bit microcontrollers since 2005
* Event System (EVSYS) in Atmel AVR XMEGA 8-bit microcontrollers since 2008
* Peripheral Event System (PES) with SleepWalking in Atmel (now Microchip Technology) AVR32 AT32UC3L 32-bit microcontrollers since 2009
* Peripheral Reflex System (PRS) in Energy Micro (now Silicon Labs) Gecko EFM32 32-bit ARM-based microcontrollers since 2009
* IXYS/Zilog ZNEO Z16FMC 16-bit microcontrollers since 2011
* Event Link Controller (ELC) in Renesas microcontrollers since 2011
* Programmable Peripheral Interconnect (PPI) in Nordic nRF 32-bit ARM-based microcontrollers since about 2011
* Autonomous peripherals in Infineon XMC 32-bit microcontrollers since 2012
* Data Transfer Manager (DTM) in Silicon Labs Precision32 SiM3L1 32-bit ARM Cortex-M3 microcontrollers since 2012
* Peripheral Event System (PES) with SleepWalking in Atmel (now Microchip Technology) SAM4L 32-bit ARM Cortex-M4 microcontrollers since 2012
* Power-Smart Peripherals in Freescale (now NXP) Kinetis L 32-bit ARM Cortex-M0+ microcontrollers since 2012
* Event System (EVSYS) with SleepWalking in Atmel (now Microchip Technology) SAMD, SAML and SAMC 32-bit ARM Cortex-M0+ microcontrollers since 2013
* Core Independent Peripherals (CIP) in Microchip PIC16F and PIC18F as well as Microchip AVR ATtiny 8-bit microcontrollers since 2015
* Peripherals Interconnect Matrix in STMicroelectronics' STM32 32-bit ARM-based microcontrollers since 2015
* Low-Power Background Autonomous Mode (LPBAM) in STMicroelectronics' STM32U5 32-bit ARM-based microcontrollers since 2021