Perfektes Timing

Der Scheduler



Für seinen Entscheidungsprozess benötigt der Scheduler exakt drei eTPU-Zyklen. Betrachtet man einen Prozessor, der mit einem Systemtakt von 100 MHz arbeitet – dies ist weder das Maximum noch das Minimum für Prozessoren mit integrierter eTPU –, so kann der Servicevorgang für ein Ereignis 60 ns nach Eintreten des Ereignisses gestartet werden. Diese Zeit ist wesentlich kürzer als die Interruptlatenzzeit der CPU. Auf der anderen Seite kann diese Zeit auch länger sein, wenn mehrere Service-Anforderungen gleichzeitig anstehen. Gute eTPU-Funktionen sollten sich nicht lange mit Servicevorgängen für einen Kanal aufhalten, um die anderen Kanäle nicht zu vernachlässigen. Aufgaben mit anspruchsvollem Timing sollten daher als mehrere Servicevorgänge unterschiedlicher Ereignisse oder als Servicekette für ein Ereignis organisiert werden.


Warum beträgt die Integergröße der eTPU 24 bit und nicht 16 oder 32 bit? Was bedeuten diese 24 bit Auflösung für ein Timing-Modul?
Betrachtet man einen 100-MHz-Prozessor, dessen eTPU mit einer maximalen Frequenz von 50 MHz (100 MHz/2) getaktet wird, bedeutet das, dass die Auflösung der eTPU bei 20 ns (1/50 MHz) liegt. Die eTPU kann einen Ausgangspin zur vorgegebenen Zeit mit einer Genauigkeit von ±10 ns umschalten, und sie kann auch den Zeitpunkt einer Signalflanke mit einer Genauigkeit von ±10 ns erfassen. Das ist wirklich gut, aber nicht übertrieben (hängt von der Anwendung ab). Gleichzeitig kann die eTPU-Hardware mit der oben beschriebenen Genauigkeit einen Impuls mit einer maximalen Dauer von 0,335 s (224 x 20 ns) erzeugen bzw. messen.
Zieht man eine Auflösung von 16 bit in Betracht, so läge die maximale Impulsdauer bei 0,0013 s, ist also nicht ausreichend, und mit einer Genauigkeit von 32 bit wäre sie bei 1 min 25 s, was sich als unnötig erweist.