CPU und Architektur

Welcher Bereich wird beim Aufruf einer Subroutine (Funktion) üblicherweise genutzt, um Rücksprungadresse usw. vorübergehend zu sichern?

  1. AStack
  2. BCache-Tag
  3. CFester ROM-Bereich
Antwort und Erläuterung anzeigen

Antwort: A. Stack

Beim Aufruf einer Subroutine werden Rücksprungadresse, zu sichernde Registerwerte und lokale Variablen auf den Stack gelegt. Der Stack arbeitet nach dem LIFO-Prinzip (zuletzt Eingelegtes wird zuerst entnommen), sodass auch bei verschachtelten oder rekursiven Aufrufen in der richtigen Reihenfolge zurückgekehrt wird. Die oberste Position zeigt der Stackpointer an. Wird bei zu tiefer Rekursion der Bereich aufgebraucht, kommt es zum Stack-Überlauf; es gibt auch Angriffe, die durch das Überschreiten von Arraygrenzen die Rücksprungadresse überschreiben.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu CPU und Architektur

  1. Welche Kombination gehört zu den „drei C“ der Cache-Fehlzugriffe?
  2. Welcher Mechanismus legt bei einer Out-of-Order-CPU die Ergebnisse umgeordnet ausgeführter Befehle in der ursprünglichen Programmreihenfolge fest (Retire)?
  3. Was ist der Hauptzweck der Registerumbenennung (Register Renaming) in Out-of-Order-CPUs?
  4. Welche Anordnung, etwa in KI-Beschleunigern, ordnet viele Multiply-Accumulate-Einheiten gitterförmig an und berechnet Matrixprodukte, indem Daten nacheinander an benachbarte Recheneinheiten weitergegeben werden?
  5. Welches Modell stellt grafisch dar, ob die Leistung eines Programms durch Rechenleistung oder Speicherbandbreite begrenzt wird, mit der arithmetischen Intensität (Operationen pro Byte) auf der horizontalen Achse?

Vergleiche zu diesem Thema