Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| hardware:bussystem [2025/11/23 15:23] – swe | hardware:bussystem [2025/12/20 14:53] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| # Bus (Binary Unit System) | # Bus (Binary Unit System) | ||
| - | {{ : | ||
| - | --- | ||
| - | {{ : | + | {{: |
| - | + | ||
| - | --- | + | |
| - | + | ||
| - | {{ : | + | |
| ### Systembus – Prinzip | ### Systembus – Prinzip | ||
| Line 28: | Line 22: | ||
| * **Steuerung: | * **Steuerung: | ||
| * Unidirektional (CPU → Speicher/ | * Unidirektional (CPU → Speicher/ | ||
| + | |||
| + | {{: | ||
| ### Steuerbus (Control Bus) | ### Steuerbus (Control Bus) | ||
| Line 34: | Line 30: | ||
| * Beinhaltet auch Leitungen für Taktung und Zugriffskontrolle. | * Beinhaltet auch Leitungen für Taktung und Zugriffskontrolle. | ||
| * Bidirektional (CPU ↔ Speicher/ | * Bidirektional (CPU ↔ Speicher/ | ||
| - | |||
| - | |||
| - | --- | ||
| - | |||
| - | |||
| - | # 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, | ||
| - | $$ | ||
| - | |||
| - | Aufteilung: | ||
| - | |||
| - | $$ | ||
| - | \underbrace{A_7, | ||
| - | \underbrace{A_3, | ||
| - | $$ | ||
| - | |||
| - | 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**, | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | Eine Speicherzelle (insbesondere DRAM) besteht typischerweise aus: | ||
| - | |||
| - | * **einem Transistor** | ||
| - | * **einem kleinen Kondensator** | ||
| - | |||
| - | Diese Zellen liegen **in einer Matrix**, wie ein Koordinatensystem: | ||
| - | |||
| - | ``` | ||
| - | Zeilen | ||
| - | 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/ | ||
| - | |||
| - | 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: | ||
| - | |||
| - | ``` | ||
| - | | ||
| - | | ||
| - | 4 Bit → │ aktiviert genau 1 WL │ → 16 Word Lines | ||
| - | | ||
| - | |||
| - | | ||
| - | | ||
| - | 4 Bit → │ wählt 1 Bit Line │ → 16 Bit Lines | ||
| - | | ||
| - | |||
| - | 16 x 16 Zellen | ||
| - | | ||
| - | WL0 → | ||
| - | WL1 → | ||
| - | | ||
| - | WL15 → | ||
| - | | ||
| - | ↑ | ||
| - | 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, | ||
| - | |||
| - | Das ist hocheffizient und spart Platz und Energie. | ||
| - | |||
| - | --- | ||
| - | |||
| - | Ah, jetzt kommen wir zu einem klassischen Architekturthema: | ||
| - | |||
| - | --- | ||
| - | |||
| - | # 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, | ||
| - | |||
| - | --- | ||
| - | |||
| - | # 3. Einschränkungen in der Praxis | ||
| - | |||
| - | * Tatsächlich stand in alten Systemen manchmal sogar **weniger als 4 GB zur Verfügung**, | ||
| - | * 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). | ||
| - | |||
| - | |||
| - | |||
| - | |||