Watchcop

Co-Prozessor zur Überwachung des Zeitverhaltens eines Programms

Projektmitarbeiter: Christian Ristig, René Fritzsche, Christian Siemers

Mit WatchCop wird eine Co-Prozessorarchitektur bezeichnet, die speziell zur Überwachung des aktuellen Zeitverhaltens eines von-Neumann-Mikroprozessors konzipiert wurde. Ansatzpunkt zur applikationsspezifischen Überwachung sind Instruktionen, die auf Maschinencodeebene in das Programm eingefügt werden und ein Monitoring des Programmlaufs ermöglichen.

Zwei generelle Varianten des Monitorings können gewählt werden:

  • Der WatchCop kann als Array von Timern aufgefasst werden, von denen jeweils einer eine bekannte Watchdog-Funktionalität aufweist. Ein Underflow eines solchen Timers kann dann einen Interrupt Request, einen Non-Maskable IRQ (oder hochpriorisierten IRQ) oder einen Reset auslösen, je nach Konfiguration.
  • Der WatchCop kann als Zeitüberwachung (Monitoring) eingesetzt werden, indem laufend Messpunkte aufgenommen werden und somit ein präzises Wissen über die Zeitverhältnisse zur Laufzeit existiert. Hieraus können dann weitere Reaktionen abgeleitet werden.

Das Interface zwischen Prozessor und Co-Prozessor besteht aus Instruktionen, die die Kopplung durchführen, also z.B. Messpunkte definieren, und Signalen vom Co-Prozessor zum Prozessor, also IRQ bzw. Reset. Die Rückwirkung auf den Programmlauf durch die zusätzlich integrierten Instruktionen ist sehr gering, Benchmarks, die an einer Softcore-Implementierung durchgeführt wurden, zeigen, dass diese i.d.R. < 0,1 % sind.

Anwendungen sind eine Applikationsüberwachung oder auch Applikations-internes Scheduling zwischen Threads eines Prozesses, die ohne Hilfe eines Betriebssystems ausgeführt wird (siehe TEC [Time-Enhanced C]).

Publikationen: RFS10a, RFS10b

Mikroarchitektur einer WatchCop Implementierung (als Coprozessor #2 der MIPS Architektur)
 

© TU Clausthal 2013 · Impressum