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. 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. Known implementations include: Peripheral Event Controller (PEC) in Siemens/Infineon C166 and C167 16-bit microcontrollers since 1990 Intelligent autonomous peripherals (Capture compare unit 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-b
Paolo Ienne, Andrea Guerrieri, Lana Josipovic
David Atienza Alonso, Adriana Arza Valdes, Una Pale
Natacha Yolande Emmanuel Marie Linard de Guertechin, Aymeric Genet, Novak Kaluderovic