Drzewo zegarowe (clock tree)
Sieć oscylatorów, mnożników i dzielników, która decyduje, z jaką częstotliwością pracuje każda część mikrokontrolera — i czy w ogóle dostaje zegar.
U korzenia siedzi jedno lub kilka źródeł: wewnętrzny oscylator RC, który startuje natychmiast, ale dryfuje z temperaturą; zewnętrzny rezonator kwarcowy, dokładny, lecz stabilizujący się przez milisekundy; często także kwarc 32,768 kHz dla zegara czasu rzeczywistego. PLL mnoży częstotliwość w górę, a preskalery dzielą ją w dół dla poszczególnych magistral. Każde peryferium wisi na końcu gałęzi, za własną bramką.
Ta bramka stoi za jednym z najczęstszych błędów w firmware: konfigurujesz UART z pietyzmem i nic się nie dzieje, bo jego zegar nigdy nie został włączony. Drzewo wpływa na więcej niż prędkość. Szybszy zegar rdzenia wymaga więcej stanów oczekiwania flasha, prędkości transmisji wynikają z zegara magistrali, a bramkowanie zegara to pierwsze narzędzie, po które sięga się przy ograniczaniu poboru mocy. Producenci dostarczają graficzne narzędzia do rysowania drzewa, co sporo mówi o tym, jak przyjemne jest robienie tego ręcznie.