Albero di clock
La rete di oscillatori, moltiplicatori e divisori che decide a quale frequenza funziona ciascuna parte di un microcontrollore, e se riceve un clock oppure no.
Alla radice ci sono una o più sorgenti: un oscillatore RC interno che parte subito ma deriva con la temperatura, un cristallo esterno preciso ma che impiega millisecondi a stabilizzarsi, e spesso un cristallo da 32,768 kHz per il real-time clock. Un PLL moltiplica la frequenza e i prescaler la dividono per i vari bus. Ogni periferica sta in fondo a un ramo, dietro il proprio gate.
Quel gate è all'origine di uno dei bug più comuni del firmware: si configura una UART con cura maniacale e non succede nulla, perché il suo clock non è mai stato attivato. L'albero governa più della velocità. Un clock di core più alto richiede più wait state della flash, i baud rate derivano dal clock del bus e il clock gating è il primo strumento a cui si ricorre quando bisogna ridurre i consumi. I produttori forniscono strumenti grafici per disegnare l'albero, il che dice qualcosa su quanto sia divertente farlo a mano.