Das Referat zum Thema Prozessorregister von Jens Kreber.

 


Abstract

Bearbeiten

Die Prozessorregister sind direkt mit dem Prozessor verknüpfte Speicherbereiche und bieten somit die schnellste Möglichkeit, (Zwischen-)Ergebnisse von Rechenoperationen abzulegen. Meistens entspricht die Größe eines einzelnen Registers gerade der Wortbreite ("16-Bit-Mikrocontroller", "oder auch 32-Bit-.."); die Anzahl an verfügbaren Einheiten hängt sehr von der Architektur ab.

Es gibt verschiedene Typen von Registern, die einerseits reine Zahlenwerte, Adressen oder verschieden interpretierbare Daten enthalten. Sie werden benutzt um arithmetische Operationen durchzuführen oder den Arbeitsspeicher zu adressieren. Daneben gibt es noch einige Spezialregister, die wichtige Funktionalitäten bieten wie den Program Counter (PC), der die korrekte Befehlsabarbeitung gewährleistet oder den Stack Pointer, der die Verwaltung des Stapels ermöglicht.

Dieser Stapel wird benötigt um Registerwerte beim Aufruf von Unterprogrammen oder Interrupts zu sichern. Unterprogramme ermöglichen eine bessere Strukturierung des Programms (für häuftig benötigte Aufgaben). Iterrupts stellen neben dem Polling eine Methode zum Behandeln externer Ereignisse (z.B. Tastendruck) dar; sie unterbrechen den aktuellen Programmablauf.

Gliederung

Bearbeiten
  • Warum Prozessorregister?
  • Der Aufbau des Registersatzes
  • Eigenschaften, Wortbreite
  • Einfache Registertypen
    • Datenregister
    • Adressregister
    • Universalregister
    • Program Counter & Befehlsregister
  • Unterprogramme
  • Externe Ereignisse
  • Interrupts
    • Warum Interrupts?
    • Eigenschaften & Ablauf
  • Zustandssicherung - Stack
    • Idee
    • Push & Pop mit Registern
    • Stackpointer
  • Zusätzliche Register
  • Überläufe


Bearbeiten

Wikipedia-Artikel

Bearbeiten
Bearbeiten
  • Für technisch ganz Interessierte eine tolle Seite zu Interrupts


  

1 Kurze Fakten

Ja Nein
Prozessorregister sind feste Bestandteile des Prozessors
Der Registersatz besitzt etwa den Speicherumfang des Arbeitsspeichers
Die Zugriffszeit auf Register ist extrem kurz
Ein Registersatz besteht nur aus einigen wenigen Registern
Register müssen über ein komplexes Bussystem adressiert werden
Aufbau, Anzahl & Typen der Register sind bei jedem Prozessor identisch

2 Für welche Funktionen werden die ~register genutzt?

Daten- Adress- Universal- Spezial-
Adressierung des Arbeitsspeichers
Prozessorinterne Zustandsangabe & Fehlerdetektion
Zwischenspeichern von Ergebnissen der ALU
Speichern von komplexen Grafikdaten

3 Lückentext für Begriffe

Neben den "normalen" Registern gibt es noch besondere wie den

(engl.), der die Adresse des aktuellen / als nächstes auszuführenden Befehls enthält.
Außerdem sorgt der

(engl.) dafür, dass der sog. "Keller" richtig genutzt werden kann.
Dieser bietet lediglich zwei Operationen:

zum Auflegen eines Elementes und

zum Herunternehmen.
Um externe Ereignisse zu behandeln existieren zwei Methoden: Einmal das

, bei dem regelmäßig überprüft wird ob ein Ereignis stattgefunden hat. Stattdessen kann man auch

benutzen, die den aktuellen Programmablauf unterbrechen.

4 Warum sichert man die Registerinhalte auf einem Stack im Arbeitsspeicher?

Für sehr kleine Datenmengen (wenige Bytes) ist es um einiges effektiver sie auf dem Stack zu speichern als in Registern
Die Unterroutinen sollen alle Register zur Verfügung haben
Die Hauptroutine soll ihre alten Registerwerte zur Verfügung haben
Weniger belegte Register beschleunigen den Ablauf der Routine