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.[1]
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.
Event System (EVSYS) with SleepWalking[9] in Atmel (now Microchip Technology)
SAMD,
SAML and
SAMC 32-bit ARM Cortex-M0+ microcontrollers since 2013[23][24]
^Wolf, Axel (March 1994).
"Connecting the C166 architecture to CAN (I)"(PDF). Components. Applications Microcontrollers. Vol. XXIX, no. 4.
Siemens Aktiengesellschaft. pp. 42–44.
Archived(PDF) from the original on 2021-12-02. Retrieved 2021-12-02. (3 pages) (NB. Mentions the term "autonomous peripherals" in conjunction with the Siemens/Infineon
SAB 80C166 in 1994 already. Part II of the article:
[2])
^Irber, Alfred (Summer 2018) [2016-02-25, 2009-09-25].
Embedded Systems SS2018(PDF). 2.0 (in German). Munich, Germany: FH München - Hochschule für angewandte Wissenschaften, Fakultät für Elektrotechnik und Informationstechnik. pp. 1, 17, 28, 37–40. ES.
Archived(PDF) from the original on 2021-12-02. Retrieved 2021-12-02.
^"XC800 Product Presentation - Capture Compare Unit CC6"(PDF).
Infineon. May 2006. XC886 CC6 V1.
Archived(PDF) from the original on 2018-05-10. Retrieved 2018-05-10. […] Drives need realtime performance – control loop must run faster than 2-4 PWM periods (e.g. 100-200us) – CPU performance is valuable and must be saved for key tasks – Question: How to offload the CPU? –Answer: Build intelligent and autonomous peripherals! […] CC6 in a Drive application: – generate PWM patterns for all kind of motors – operate always in a safe state – even in an error condition – interact with ADC for sensorless control of motors […] CC6 is used intensively – the more it works autonomous the more CPU load can be saved for control algorithms […]