Adressierung

Aus Modellbau-Wiki
Wechseln zu: Navigation, Suche

Als Adressierung bezeichnet man die eindeutige Lokalisierung einer Speicherzelle oder eines Geräts in einem Computer. Nur durch eine eindeutige Zuordnung von Adressen zu den Speicherzellen ist es möglich auf abgelegte Daten im Arbeitsspeicher oder auf der Festplatte und auf angeschlossene Geräte wie beispielsweise Drucker, Scanner, Laufwerke gezielt zuzugreifen.

Inhaltsverzeichnis

Adressierung im Arbeitspeicher

Sie wird beispielsweise verwendet, um die Operanden für eine Rechenoperation im Speicher zu lokalisieren und den Speicherort für das Ergebnis anzugeben. Die Zuführung der Adressen zum Rechenwerk erfolgt dabei über den Adressbus. Je lückenloser die Operanden im Speicher abgelegt sind, desto schneller kann der Datenzugriff erfolgen. Bei idealer Speicherausrichtung erfolgt der Zugriff innerhalb eines Prozessortaktes.

Man unterscheidet fünf Hauptadressierungsarten:

Direkte Adressierung

Bei dieser Adressierungsart wird die Speicheradresse bei jedem Befehl direkt und vollständig angegeben. Die Gesamtheit der möglichen Adressen bildet den Adressbereich dieser Adressierungsart.

# Addiere Adresse 22 und 6 und speichere das Ergebnis in Adresse 1
add 10110, 00110, 00001  

Diese Adressierungsart wird heute nur noch in Integrierten Schaltkreisen und Embedded Systems mit wenig Speicherplatz angewandt. So würde in einem 32 bit Rechner ein einfacher Additionsbefehl schon nur für die Adressangaben 66 Bit benötigen. Zur Verringerung des Speicheraufwands werden zwei weitere Möglichkeiten der Adressierung verwendet.

Indizierte und relative Adressierung

Beide Adressierungsarten verwenden ein Register zur Speicherplatzersparnis. Bei der indizierten Adressierung wird das so genannte Indexregister zu jeder Adressangabe hinzuaddiert.

# Addiere die Adresse 22 und 23 und speichere das Ergebnis in Adresse 1
load index, 10110
add 0, 1, 00001

Für das Durchlaufen von Speicherbereichen ist dies hervorragend geeignet. Bei der relativen Adressierung speichert das Register die so genannte Basisadresse und die Adressen für die Befehle werden nur noch als Offset angegeben. Dabei sind negative und positive Offset möglich.

#Addiere die Adresse 65540 und 65550 und speichere das Ergebnis in 65537
/* load basis, 1000000000000000
add 0011, 1101, 0001 */
 load basis, 10000000000000000
 add 0100, 1110, 0001

Da ein Rechner mehr als ein Register hat, muss ein jeder Befehl dieser Art einen kurzen Verweis enthalten, meist eine 4-bit oder 8-bit Angabe, die das Register angibt. Aber auch diese Adressierungsarten sind für heutige Rechner nicht mehr ausreichend.

Virtuelle Adressierung

Betriebssysteme verwenden die Virtuelle Adressierung, um Programme ausführen zu können, die mehr Speicherplatz benötigen als an physikalischem Arbeitsspeicher im RAM überhaupt zur Verfügung steht. Der gesamte zur Verfügung stehende Speicherplatz wird als Virtueller Adressraum bezeichnet und der Zugriff auf die darin enthaltenene Adressen ist die virtuelle Adressierung. Das jeweilige Betriebssystem verwendet eine Virtuelle Speicherverwaltung, die sich einer Memory Management Unit bedient, um Teile des Programms auf die Festplatte auszulagern und ggf. in den Arbeitsspeicher zu laden, falls sich eine gewählte Adresse außerhalb des im RAM befindlichen Adressraums befindet. Die Angabe der Adressen erfolgt dabei entweder direkt, relativ, indiziert oder auch symbolisch.

Symbolische Adressierung

Symbolische Adressierung erlaubt es dem Programmierer Adressen mit Namen sogenannten Mnemonics zu belegen, um Fehler bei der Angabe der Adresse zu vermeiden.

#Addiere die Adresse 65540 und 65550 und speichere das Ergebnis in 65537
define operand1, 1000000000000011
define operand2, 1000000000001101
define ergebnis, 1000000000000001
add operand1, operand2, ergebnis

Rechnerarchitektur

Die verschiedenen Adressierungsarten werden von der Rechnerarchitektur ermöglicht bzw. realisiert. Analog dazu, wie von der Hausarchitektur die Anordnung der Zimmer bestimmt wird und dass man über das Treppenhaus die oberen Stockwerke erreichen kann.

Adressierung bei Modellbahnen

Im Motorola 2-Format, das ausschließlich für Wechselstrombahnen geeignet ist, können bis zu 80, beim DCC-Format bis zu 9999 Adressen programmiert werden.

Die Adressen werden über Steuerpulte eingestellt und werden im Dekoder eingespeichert. Werden jetzt Fahrbefehle an diese Adresse geschickt, reagiert nur der Dekoder mit dieser Adresse. Sind zwei Dekoder auf die selbe Adresse programmiert, reagieren beide gleichzeitig.

Hinweis

Dieser Artikel basiert auf dem Artikel Adressierung (Datenverarbeitung) aus der freien Enzyklopädie Wikipedia und steht unter der GNU-Lizenz für freie Dokumentation. In der Wikipedia ist eine Liste der Autoren verfügbar.