Bus (Binary Unit System)

**This is an old revision of the document!**

Bus (Binary Unit System)



Systembus – Prinzip

  • Zusammenschluss von Datenbus, Adressbus und Steuerbus zur Kommunikation der CPU mit Speicher und Peripherie.

Vergleich: Datenbus, Adressbus und Steuerbus

Datenbus (Data Bus)

  • Funktion: Bidirektionale Datenübertragung zwischen CPU, Speicher und Peripherie.
  • Breite: Abhängig von der Datenwortbreite der CPU (8, 16, 32 oder 64 Bit).
  • Bidirektional (CPU ↔ Speicher/Peripheriegeräte).

Adressbus (Address Bus)

  • Funktion: Überträgt Speicheradressen unidirektional.
  • Breite: Bestimmt, wie viel Speicher direkt adressierbar ist. Abhängig von der CPU-Architektur (z. B. 16, 32 oder 64 Bit)
  • Steuerung: Vom Master (CPU) gesteuert.
  • Unidirektional (CPU → Speicher/Peripheriegeräte).

Steuerbus (Control Bus)

  • Funktion: Steuerung des Busverkehrs, Lesen/Schreiben von RAM, Ein-/Ausgabe, Interrupts.
  • Beinhaltet auch Leitungen für Taktung und Zugriffskontrolle.
  • Bidirektional (CPU ↔ Speicher/Peripheriegeräte).

Darstellung von Zeilen und Spalten bei einem 8-Bit-Adressbus

Ein 8-Bit-Adressbus kann insgesamt $2^8 = 256$ Speicherzellen adressieren.

Intern wird die 8-Bit-Adresse meist in Zeilen (Row) und Spalten (Column) aufgeteilt.

Typisch ist eine 4-Bit-Zeilenadresse und eine 4-Bit-Spaltenadresse:

$$ A_7,A_6,A_5,A_4,A_3,A_2,A_1,A_0 $$

Aufteilung:

$$ \underbrace{A_7,A_6,A_5,A_4}{\text{Row (4 Bit)}}; \underbrace{A_3,A_2,A_1,A_0}{\text{Column (4 Bit)}} $$

Damit ergibt sich:

  • Anzahl der Zeilen:

$$ 2^4 = 16 $$

  • Anzahl der Spalten:

$$ 2^4 = 16 $$

  • Gesamt:

$$ 16 \times 16 = 256 $$


Beispieladresse

Adresse (binär):

$$ 1011,0010 $$

Aufteilung:

  • Row:

$1011 = 11_{\text{dezimal}}$

  • Column: $$ 0010 = 2_{\text{dezimal}} $$

Ergebnis: Zugriff auf Speicherzelle Zeile 11, Spalte 2.

Was ist //wirklich// im Chip?

Intern gibt es natürlich Verbindungen (Leiterbahnen).

Aber auch hier gilt: Es sind nicht 16×16 Drähte für jede einzelne Zelle, sondern organisierte Leitungen, die zusammen mit Decodern arbeiten.

Eine Speicherzelle (insbesondere DRAM) besteht typischerweise aus:

  • einem Transistor
  • einem kleinen Kondensator

Diese Zellen liegen in einer Matrix, wie ein Koordinatensystem:

Zeilen   → Word Lines (WL)
Spalten → Bit Lines (BL)
Also:

  • 16 Word Lines (Zeilenleitungen)
  • 16 Bit Lines (Spaltenleitungen)

Damit kann man eine 16×16-Matrix = 256 Zellen adressieren.


2. Warum braucht man keine 256 Drähte?

Weil jede Zeile eine gemeinsame Word Line teilt und jede Spalte eine gemeinsame Bit Line.

Das Prinzip:

  • Jede der 16 Zeilenleitungen verbindet alle Zellen in dieser Zeile.
  • Jede der 16 Spaltenleitungen verbindet alle Zellen in dieser Spalte.

Die Kombination aus einer aktiven Word Line + einer bestimmten Bit Line führt direkt zu genau einer Zelle.

Also:

$$ 16\ \text{Word Lines} + 16\ \text{Bit Lines} = 32\ \text{interne Leitungen} $$

Nicht 256.


3. Wie kommt das Adresssignal zu einer bestimmten Zeile/Spalte?

Durch Decoder:

  • Row Decoder: Nimmt 4 Bits und aktiviert genau 1 von 16 Word Lines.
  • Column Decoder: Nimmt 4 Bits und wählt genau 1 Bit Line.

Also:

  • Von außen: 8 Bits Adresse
  • Im Chip: Aufgeteilt in 4 Bit Row + 4 Bit Column
  • Decoder wählen 1 Word Line + 1 Bit Line
  • Dadurch Zugriff auf eine bestimmte Zelle

4. Beispielhafte Darstellung

Externe Anschlüsse:

A7 A6 A5 A4 A3 A2 A1 A0   (8 Adressdrähte)

Interne Struktur:

             Row-Decoder (4 Bit)
         ┌────────────────────────┐
4 Bit →  │ aktiviert genau 1 WL   │ → 16 Word Lines
         └────────────────────────┘

             Column-Decoder (4 Bit)
         ┌────────────────────────┐
4 Bit →  │ wählt 1 Bit Line        │ → 16 Bit Lines
         └────────────────────────┘

                   16 x 16 Zellen
           +---------------------------+
WL0  →     |  o   o   o   o ...      |
WL1  →     |  o   o   o   o ...      |
           |   ...                   |
WL15 →     |  o   o   o   o ...      |
           +---------------------------+
                ↑
               BL (über Decoder ausgewählt)
Ja, die Speicherzellen sind intern verdrahtet. Aber:

  • Es sind keine 256 direkten Drähte
  • Sondern 32 interne Leitungen (16 Word Lines + 16 Bit Lines)
  • Und Decoder entscheiden, welche davon aktiv ist

Das ist hocheffizient und spart Platz und Energie.


Ah, jetzt kommen wir zu einem klassischen Architekturthema: Adressraum bei 32-Bit-Systemen. Lass uns das Schritt für Schritt erklären.


1. Adressbusbreite vs. adressierbarer Speicher

Die Adressbusbreite bestimmt, wie viele Speicherzellen ein Prozessor maximal adressieren kann:

$$ \text{adressierbarer Speicher} = 2^{\text{Adressbusbreite}} $$

  • Bei einem 32-Bit-Prozessor sind 32 Adressleitungen verfügbar.
  • Also können theoretisch adressiert werden:

$$ 2^{32} = 4.294.967.296 \text{ Adressen} $$

  • Meist gilt 1 Adresse = 1 Byte → 4.294.967.296 Byte = 4 GB.

2. Warum nur 4 GB?

  • 32 Bit können binär maximal 2³² unterschiedliche Zahlen darstellen (0 bis 4.294.967.295).
  • Jede Zahl entspricht einer Speicheradresse.
  • Damit kann der Prozessor nicht mehr als 2³² Bytes = 4 GB direkt adressieren, egal wie viel RAM physisch vorhanden ist.

3. Einschränkungen in der Praxis

  • Tatsächlich stand in alten Systemen manchmal sogar weniger als 4 GB zur Verfügung, z. B. wegen Memory-Mapped I/O (Grafikkarten, Peripherie blockieren Adressraum).
  • Erst bei 64-Bit-Systemen mit 64 Adressleitungen kann der theoretische Adressraum auf 16 Exabyte wachsen (praktisch nutzbar deutlich kleiner).

4. Merksatz

32 Bit → maximal 2³² Adressen → 4 GB RAM. Mehr RAM geht nur, wenn der Prozessor mehr Adressleitungen hat (z. B. 36-Bit-PAE oder 64-Bit-Prozessor).