English version of this page
Next:Abgrenzung von anderen Hardware-Lösungen  Up:Entwurf  Previous:Entwurf  Inhalt

Komodo-Mikrocontroller

Der Komodo-Mikrocontroller, dessen Blockdiagramm in Abb. 4.1 zu sehen ist, soll in seinem Entwurf an den picoJava-I(TM)-Kern von Sun Microsystems Inc. mit dessen vierstufiger Pipeline (fetch, decode, execute, write back) sowie dessen Optimierungen hinsichtlich der Stack-Architektur und Speicherbereinigung angelehnt sein.

Die wesentlichen Neuerungen gegenüber dem picoJava-I(TM) sind die Mehrfädigkeit mit dem sich daraus ergebenden Prioritätenmanager für das Hardware-Scheduling und die Unterbrechungsbehandlung mit Hilfe der Signaleinheit.

Der Komodo-Mikrocontroller soll vier Kontrollfäden gleichzeitig laden können, wobei nur drei für die Echtzeitbehandlung von Ereignissen vorgesehen sind. Der vierte ist für allgemeine Aufgaben des Betriebssystems, der Speicherbereinigung oder sonstige Aufgaben, die nicht unter Echtzeitbedingungen erfüllt werden müssen, reserviert. Über die vier Befehlszähler (PC0,...,PC3) in der Befehlsholestufe werden in Abhängigkeit von den Statusbits (Priorität, Kontrollfaden aktiv, PC gültig) und dem Füllstand der einzelnen Befehlsfenster (IW0,...,IW3) neue Befehlspakete der Größe 4 Bytes geladen.

Die Dekodierstufe wird vom Prioritätenmanager gesteuert, der abhängig von der eingestellten Scheduling-Technik, eventuellen Latenzen des letzten Befehls, dem Füllgrad der Befehlsfenster und den Statusbits das Befehlsfenster auswählt, aus dem der nächste Befehl dekodiert wird. Dies geschieht beispielsweise durch die Auswahl des Befehlsfensters gemäß dem Anteil an zugeteilter Rechenzeit der Kontrollfäden. Der vom Benutzer spezifizierte garantierte Prozentsatz an CPU-Zeit soll innerhalb eines Intervalls von ungefähr 100 Takten eingehalten werden. Aus dem aktuellen Befehlsfenster wird ein Befehl entnommen und dekodiert, was auch zum Aufruf eines Mikroprogramms oder einer Trap-Routine führen kann. Der Prioritätenmanager, über den im Echtzeitsystem das Konzept der Interrupt-Service-Threads (IST) anstelle von Interrupt-Service-Routinen (ISR) verwirklicht werden soll [23], ist Thema einer weiteren Diplomarbeit [26].

Der dekodierte Befehl wird an die Ausführungsstufe (EXE) weitergereicht, wo er von der Speicherzugriffseinheit (MEM) oder der arithmetisch-logischen Einheit (ALU) verarbeitet wird. Anschließend schreibt die Write-Back-Stufe (WBU) das Ergebnis in den Stackregistersatz des entsprechenden Kontrollfadens zurück.

Über die Signaleinheit können externe Ereignisse direkt auf die Statusbits im Mikrocontroller abgebildet werden und so eine schnelle Reaktion auslösen.



Abbildung 4.1: Blockdiagramm des Komodo-Mikrocontrollers


Next:Abgrenzung von anderen Hardware-Lösungen  Up:Entwurf  Previous:Entwurf  Inhalt
Robert Zulauf

2000-04-27