Information Technology Reference
In-Depth Information
von Programmierern oder Übersetzern neben anderen nicht verzichtbaren Speicher-
räumen berücksichtigt und verwaltet werden müssen.
Indirekte Adressierung (indirect addressing)
Bei der indirekten Adressierung ist die effektive Adresse für den Zugriff auf den
Daten- oder Befehlsspeicherraum gleich dem Inhalt eines Registers, dessen Regis-
ternummer im Befehl codiert ist (Bild 1.10d). Die indirekte Adressierung wird
benötigt, um auf Daten zugreifen zu können, deren Adressen erst zur Laufzeit eines
Programms bekannt sind. So wird die indirekte Adressierung z.B. zur Referenzüber-
gabe von Parametern an Funktionen, Prozeduren, Methoden usw. - im Folgenden
der Einfachheit halber als Unterprogramme bezeichnet - verwendet. Dabei wird
statt eines Datums die Adresse des Datums - eine sog. Referenz - übergeben und
darüber auf den Wert lesend oder schreibend zugegriffen.
We il z ur Parameterübergabe normalerweise ein in Software realisierter, dem Daten-
adressraum zuzuordnender Stapel verwendet wird, sind für Zugriffe über Referen-
zen zwei Schritte erforderlich: Zuerst muss die jeweilige Adresse in ein Register
geladen und anschließend auf das Datum indirekt zugegriffen werden. Indem diese
beiden Schritte zusammengefasst werden, kann der indirekte Zugriff zwar einfacher
formuliert, nicht jedoch beschleunigt werden, weil pro Zeiteinheit nur ein einzelner
Zugriff auf den Datenspeicherraum möglich ist, also ebenfalls zwei Verarbeitungs-
schritte notwendig sind. Da indirekte Zugriffe mit Referenzen im Datenspeicher-
raum komplizierter zu realisieren sind als solche mit Referenzen im Registerspei-
cherraum, werden erstere nur von wenigen Prozessoren unterstützt - z.B. vom nicht
mehr gefertigten MC68040 von Motorola [120].
Die indirekte Adressierung erlaubt es i.Allg. indirekt nur auf den Datenspeicher-
raum zuzugreifen. Aus diesem Grunde können Daten, die über ihre Adresse ange-
sprochen, also z.B. als Referenz an ein Unterprogramm übergeben werden sollen,
nicht im Registerspeicher gehalten werden. Dies ist ein Nachteil, weil, wie bereits
erwähnt, Zugriffe auf den Datenspeicherraum langsamer sind als Zugriffe auf den
Registerspeicherraum.
Einige Prozessoren erlauben es deshalb auf den Registerspeicher indirekt zuzugrei-
fen. Der ebenfalls nicht mehr gefertigte Am29000 von AMD besitzt z.B. 64 globale
und 128 lokale Register, die jeweils 32 Bit breit sind. Letztere können über die
Inhalte ausgewählter globaler Register indirekt adressiert werden [1]. Falls sich ein
Datum definitiv im lokalen Registerspeicher befindet, kann ein Zugriff sehr schnell
ausgeführt werden. Ist dies jedoch nicht der Fall, ist zu differenzieren, ob sich der
Zugriff auf den Registerspeicherraum oder den Datenspeicherraum bezieht, was
einen ähnlichen Aufwand erfordert, als würde man das Datum fest im Datenspei-
cherraum halten. Ein weiterer Nachteil dieser Technik ist, dass die Register des Pro-
zessors ausschließlich 32 Bit breit angesprochen werden können, indirekte Zugriffe
auf Datentypen anderer Breite deshalb zusätzlichen Aufwand erfordern.
Die Probleme werden mit der an der TU Berlin entwickelten 32-Bit-Nemesis-Archi-
tektur in der Version 1.0 vermieden [114, 108], und zwar, indem der Registerspei-
Search WWH ::




Custom Search