Information Technology Reference
In-Depth Information
Anhang A:
Nemesis Programmiermodell (Version 1.1)
Nemesis ist eine an der TU Berlin definierte, für den Einsatz in eingebetteten Syste-
men optimierte Prozessorarchitektur, die in unterschiedlichen Varianten, nämlich
Nemesis S (simple), Nemesis C (classic) und Nemesis X (extended) implementiert
wurde. Neben dem Prozessorkern sind darin eine skalierbare, sehr einfach zu reali-
sierende Speicherverwaltungseinheit und ein Zeitgeber vorgesehen, also Kompo-
nenten, die die Portierung moderner Betriebssysteme wie Linux oder Windows CE
vereinfachen. Des Weiteren ist es möglich, den Prozessorkern kundenspezifisch um
bis 255 Coprozessoren zu erweitern, und zwar mit sich nahtlos in den Befehlssatz
der Nemesis-Architektur einreihenden Coprozessorbefehlen.
Signalverarbeitung.
Natürlich lassen sich die Coprozessoren auch zur Signalverar-
beitung vorsehen. Jedoch ist dies meist unnötig, da die Nemesis-Architektur einige
Merkmale besitzt, die eine effektive Signalverarbeitung ermöglichen. Zum Beispiel
stehen Adressierungsarten zur Verfügung, mit denen sich Zeiger automatisch modi-
fizieren und Ringpuffer einfach realisieren lassen (Moduloadressierung). Auch sind
Befehle zur Schleifenverarbeitung vorgesehen, die, eine entsprechende Prozesso-
rimplementierung vorausgesetzt, einen Schleifensprung in Null Takten ermöglichen.
Schließlich ist eine akkumulierende Multiplikation zwar nicht in einem Befehl
codierbar, aber durch eine dynamische Befehlgruppierung (instruction folding [176,
177], collapsing [149]) auch von nicht superskalar arbeitenden Prozessoren in einem
Takt ausführbar (s. u.). (Der Leser sollte sich jedoch darüber im Klaren sein, dass
durch die dynamische Befehlsgruppierung die in signalverarbeitenden Algorithmen
oft benötigte Produktsumme nicht mit derselben Geschwindigkeit wie von Signal-
prozessoren berechnet werden kann, nämlich vor allem deshalb nicht, weil man für
das Laden der zu verknüpfenden Operanden separate Befehle benötigt.)
Lade-/Speichere-Architektur.
Wie für RISC-Architekturen üblich, erlaubt auch
Nemesis Zugriffe auf den Hauptspeicher ausschließlich mit Hilfe von Lade- oder
Speicherebefehlen. Dabei stehen jedoch deutlich mehr Adressierungsarten zur Ver-
fügung als bei vergleichbaren Architekturen. So kann der Hauptspeicher absolut,
indirekt, basisrelativ mit optional skaliertem Index, befehlszählerrelativ und stapel-
zeigerrelativ angesprochen werden. Bei Verwendung der basisrelativen Adressie-
rung lässt sich der Basiszeiger außerdem vor oder nach den Zugriff automatisch
modifizieren (prä- oder postmodifizierende Adressierung). Schließlich ermöglicht
es die bereits erwähnte Moduloadressierung, einen im Hauptspeicher befindlichen
Ringpuffer anzusprechen.
Durch zusätzliche Befehlsmodifizierer lässt sich die Wirkung der Lade- bzw. Spei-
cherebefehle außerdem verändern. So ist z.B. ein sog. Prefetch codierbar, um eine
Search WWH ::
Custom Search