Registerfenster
# Registerfenster

Registerfenster sind eine Organisationsform der prozessorientierten Register. Diese ermöglichen das schnelle Hin- und Herschalten zwischen verschiedenen Prozessen (auch als Multithreading bezeichnet) ohne aufwändiges Neuladen der Registerinhalte, da das Register auf den vom aktiven Prozess benötigten „Fenster“ umgeschaltet werden kann.

## Aufbau

Die vorhandenen Register werden in drei Abschnitte (Fenster) geteilt: In, Out und Local. Ein Current Window Pointer (CWP) zeigt auf das aktuell aktive Fenster. Wechselt nun der Prozess (durch Starten eines neuen oder Beenden eines alten Prozesses), so wird der CWP inkrementiert (erhöht) bzw. dekrementiert (vermindert), um auf das nächste Fenster zu zeigen. Die bisher benutzten Registerfenster stehen dem neuen Prozess nach dem Umbenennen der Register nach wie vor zur Verfügung, allerdings unter neuen Namen.

## Vorteile

Mit relativ wenigen Registern ermöglicht man es vielen Prozessen, parallel zu arbeiten, ohne aufwendig die Inhalte der Register ein- bzw. auszulagern.

## Nachteile

Bei stark verschachtelten Prozeduraufrufen kann der Vorteil der Registerfenster nicht ausgenutzt werden, da ab einer gewissen Anzahl von aktiven Prozessen eine Sättigung eintritt, abhängig von der Anzahl der Registerfenster.

## Implementierung

Die SUN UltraSPARC II benutzte 32 64-Bit-Register nach obigem Prinzip.

## Quellen

* Andrew S. Tanenbaum, James Goodman: Computerarchitektur, 4. Auflage, 2001
