Adressbus: Definition, Aufbau und Bedeutung für den Speicherzugriff
Adressbus: Aufbau, Funktion und Bedeutung für den Speicherzugriff prägnant erklärt – wie Adressleitungen die adressierbare Speichergröße bestimmen und Systeme beeinflussen.
Ein Adressbus ist ein Teil der Computer-Bus-Architektur und dient dazu, Speicher- und Geräteadressen zwischen der CPU und anderen Systemkomponenten zu übertragen. Er überträgt keine Nutzdaten selbst, sondern eindeutige Adressinformationen in Form von Binärzahlen (Bits), damit der Hauptspeicher oder Peripheriegeräte vom Datenbus angesprochen werden können.
Aufbau und Funktionsweise
Physisch besteht ein Adressbus aus einer Anzahl von Leitungen (Drähten oder Leiterbahnen auf der Hauptplatine). Jede Leitung repräsentiert ein einzelnes Bit der Adresse. Die Anzahl dieser Leitungen — die Breite des Adressbusses — bestimmt die maximale Anzahl an eindeutig adressierbaren Speicherplätzen: mit n Leitungen lassen sich 2^n Adressen unterscheiden. Üblicherweise gibt jede Adresse ein Byte an (bei byteadressierbaren Architekturen), sodass die adressierbare Speichergröße 2^n Bytes beträgt.
Adressraum berechnen — Beispiele
- Ein 32-Bit-Adressbus kann 2^32 = 4.294.967.296 Adressen adressieren, das entspricht 4 GiB (ungefähr 4,29 Milliarden Bytes).
- Ein 36-Bit-Adressbus adressiert 2^36 = 68.719.476.736 Bytes, also 64 GiB. Manche ältere und spezielle Systeme nutzen 36 oder ähnliche Breiten, und in historischen Beschreibungen findet man daher die Angabe „bis zu 36 Adressleitungen“ für Personalcomputer.
- Bei einem 64-Bit-Adressbus ergeben sich theoretisch 2^64 Adressen. Das sind 16 Exbibyte (16 EiB = 2^64 Bytes); in dezimaler Schreibweise entspricht das etwa 18,4 Exabytes.
Richtung, Multiplexing und Adressdekodierung
Im Gegensatz zum Datenbus ist der Adressbus in den meisten Systemen unidirektional: Die CPU sendet Adressen an Speicher oder Peripherie; die adressierten Geräte antworten nicht über denselben Adressbus. Manche Bussysteme multiplexen Adress- und Datenleitungen, um Pin-/Leitungsanzahl zu sparen — dabei werden Adressbits zeitlich von Datenbits unterschieden. Zusätzlich benötigt das System eine Adressdekodierung (Address Decoding), damit ein bestimmtes Gerät oder ein bestimmter Speicherbereich auf eine Adresse reagiert.
Adressbus im Kontext des Systembusses
Der Adressbus ist eines der drei zentralen Elemente des klassischen Systembusses, neben dem Datenbus (überträgt die eigentlichen Daten) und dem Steuerbus (überträgt Steuer- und Statussignale wie Read/Write, Interrupts, Taktsignale). Die Aufteilung in mehrere spezialisierte Busse war historisch wichtig, um Architektur und Modularität zu vereinfachen; moderne Systeme verwenden darüber hinaus zahlreiche spezialisierte Busse und Bridges, sodass die Architektur deutlich komplexer ist.
Betriebssysteme, Chipsatz und praktische Beschränkungen
Die theoretisch adressierbare Menge an Speicher hängt allein von der Adressbusbreite ab, aber die tatsächlich nutzbare Menge wird durch weitere Faktoren begrenzt:
- Der Chipsatz und die Hardware der Hauptplatine legen oft eine physikalische Adressbreite fest (z. B. implementieren viele x86-64-Prozessoren ursprünglich nur 48 oder 52 physische Adressleitungen, obwohl die Architektur 64 Bit vorsieht).
- Das Betriebssystem muss Unterstützung für den größeren Adressraum bieten; ein 64-Bit-CPU ohne 64-Bit-OS kann die Vorteile nicht nutzen.
- Ein Teil des Adressraums kann für Speicher-Mapped I/O, Firmware oder hardwarereservierte Bereiche vorbehalten sein, wodurch weniger RAM adressierbar bleibt.
- Erweiterungsverfahren wie Physical Address Extension (PAE) bei x86 ermöglichen z. B. die Nutzung von mehr als 4 GiB physischem Speicher bei 32-Bit-CPUs (typischerweise 36 physische Adressleitungen → bis zu 64 GiB physisch), setzen aber jeweilige OS- und Treiberunterstützung voraus.
Physische vs. virtuelle Adressen
Moderne Betriebssysteme verwenden üblicherweise virtuelle Adressen, die der CPU über die Memory Management Unit (MMU) in physische Adressen übersetzt. Der Adressbus transportiert ausschließlich physische Adressen (bzw. Signale, die zur Auswahl von Speicherbereichen führen). Virtuelle Adressen existieren nur innerhalb der Prozessor-/OS-Ebenen und werden vor dem Zugriff in physische Adressen umgewandelt.
Wichtige Begriffe auf einen Blick
- Adressbreite: Anzahl der Leitungen im Adressbus (n). Adressierbarer Speicher = 2^n Bytes (bei Byte-Adressierbarkeit).
- Adressraum: Gesamtheit aller möglichen Adressen.
- Adressdekodierung: Logik, die bestimmt, welches Gerät/Segment auf eine gegebene Adresse reagiert.
- Memory-Mapped I/O: Nutzung von Adressraumbereichen für die direkte Ansteuerung von Peripherie.
Zusammenfassend lässt sich sagen: Der Adressbus ist die strukturierte Leitung, über die ein System angibt, wo Daten gelesen oder geschrieben werden sollen. Seine Breite bestimmt den theoretischen Adressraum, praktische Grenzen ergeben sich jedoch durch Hardware‑Implementierung, Betriebssystem und die Speicheradressierungsstrategie des Systems. Moderne Computerarchitekturen haben den klassischen einfachen Systembus weiterentwickelt, aber das grundlegende Prinzip der Adressübermittlung bleibt zentral für den Speicherzugriff.
Fragen und Antworten
F: Was ist ein Adressbus?
A: Ein Adressbus ist eine Computer-Bus-Architektur, die zur Übertragung von Daten zwischen Geräten verwendet wird. Er verbindet die CPU mit dem Hauptspeicher und speichert die Hardwareadresse des physischen Speichers in binären Zahlen, so dass der Datenbus auf den Speicher zugreifen kann.
F: Wie viele Drähte hat ein Adressbus?
A: Die Anzahl der Drähte in einem Adressbus bestimmt, wie viele eindeutige Speicherplätze adressiert werden können. Moderne Personal Computer und Macintoshes haben in der Regel bis zu 36 Adressleitungen.
F: Welche anderen Elemente sind Teil der Systembus-Architektur?
A: Neben dem Adressbus umfasst die Systembus-Architektur auch einen Datenbus und einen Steuerbus.
F: Auf wie viel Speicher kann ein 32-Bit-Adressbus zugreifen?
A: Ein System mit einer 32-Bit-Adresse kann auf 4 Gigabyte Speicherplatz zugreifen.
F: Auf wie viel Speicherplatz kann eine 64-Bit-Adresse zugreifen?
A: Ein System mit einer 64-Bit-Adresse kann in Verbindung mit einem unterstützenden Betriebssystem auf 16 Exbibyte praktisch unbegrenzten Speicherplatz zugreifen.
F: Welchen Zweck erfüllen die Systembusse eines einzelnen Computers?
A: Der Zweck der Systembusse eines einzelnen Computers besteht darin, wichtige Komponenten innerhalb des Computers miteinander zu verbinden und die Kosten zu senken, während die modulare Integration verbessert wird.
Suche in der Enzyklopädie