Motivation
Aufgrund ihrer universellen Einsetzbarkeit und ihrer Flexibilität sind Mikroprozessoren zu einem unverzichtbare Bestandteil in aktuellen Systems-on-Chip (SoCs) geworden. Der am Heinz Nixdorf Institut (Fachgebiet Schaltungstechnik, Prof. Dr.-Ing. U. Rückert) entwickelte Mikroprozessorkern kann an die jeweilige Aufgabe innerhalb eines SoCs angepasst werden, um die Ressourceneffizienz des SoCs zu erhöhen.

Blockschaltbild des S-Core Mikroprozessorkerns
Implementierung
Der 32-Bit RISC Prozessorkern S-Core ist in Zusammenarbeit mit der Infineon Technologies AG (München) für den Einsatz in eingebetteten Systemen entwickelt worden. Um die Anforderungen an den benötigten Speicher gering zu halten, sind alle Befehle des S-Cores nur 16 Bit breit. Trotz dieser geringen Breite für die Instruktionen sind noch etwa 11% aller möglichen Opcodes frei für Erweiterungen. Zusätzlich ist in der Architektur der Einsatz von Hardware-Beschleunigern vorgesehen, so dass Ergänzungen des Prozessors verhältnismäßig leicht realisiert werden können. Bei dem S-Core handelt es sich um eine Zwei-Adress Maschine mit einer Load/Store Architektur.
Der Prozessor unterstützt zwei verschiedene Modi, den Supervisor-Modus und den User-Modus. Im User-Modus, in dem normale Anwenderprogramme arbeiten sollten, stehen nicht alle Befehle und Register zur Verfügung. Der Supervisor-Modus ist gedacht für das Betriebssystem und Ausnahmen. In diesem Modus sind alle Befehle und Register verfügbar. Während einer Ausnahmebehandlung schaltet der Prozessor automatisch in den Supervisor-Modus um.
In der S-Core Architektur gibt es normale und schnelle Interrupts, wobei die schnellen Interrupts die höhere Priorität haben. Für beide Arten von Interrupts gibt es eigene Register (EPC, EPSR, FPC, FPSR), um das aktuelle Prozessorstatusregister und den aktuellen Programmzähler zu speichern. Damit können schnelle Interrupts auch dann noch ausgeführt werden, wenn bereits ein normaler Interrupt bearbeitet wird.
Weiter besitzt die S-Core Architektur Lade- und Speicherbefehle, die mehrere Register mit einem Befehl laden bzw. speichern können, wodurch Kontextwechsel beschleunigt werden. Außerdem gibt es Befehle, die einzelne Bits in den Registern manipulieren können. Dadurch kann in vielen Fällen eine Maskenbildung verbunden mit einer anschließenden UND- oder ODER-Operation vermieden werden.

Testplatine für den S-Core
Der komplette Mikroprozessorkern liegt als ein synthetisierbares VHDL-Modell vor, so dass Erweiterungen einfach möglich sind. Die technologieunabhängige Beschreibung ermöglicht es zudem, den Prozessorkern auf verschiedene Zieltechnologien, wie beispielsweise FPGAs oder Standardzellen, abzubilden. Der Prozessor wurde in einer 0,13µm CMOS Technologie bei Infineon gefertigt und am Fachgebiet Schaltungstechnik erfolgreich getestet. Mit einer Chipfläche von 0,25mm² beträgt die Leistungsaufnahme des Prozessorkerns bei einer Taktfrequenz von 160MHz nur 20mW.

