PREVIEW
Program Counter (8-bit)

Program Counter (8-bit)

Counters signal_cellular_alt Advanced schedule 28 min

Interactive Circuit

8-Bit-Befehlszähler (PC)

Übersicht

  • Zweck: Der 8-Bit-Befehlszähler (PC, Program Counter) ist ein spezialisiertes Register, das die Speicheradresse des nächsten zu holenden und auszuführenden Befehls in einer CPU enthält. Er inkrementiert nach jedem Befehlsholvorgang automatisch, um auf den nachfolgenden Befehl zu zeigen, oder kann bei Sprüngen und Verzweigungen mit einer neuen Adresse geladen werden.
  • Symbol: Der Befehlszähler wird durch einen rechteckigen Block mit Eingängen für Takt, Ladedaten, Inkrement, Ladefreigabe, Reset und Ausgangsfreigabe sowie einer 8-Bit-Adressausgabe dargestellt.
  • DigiSim.io-Rolle: Dient als kritische Komponente in CPU-Designs, indem er den Programmablauf steuert, die Adresse für Befehlsholoperationen liefert und sequentielle wie nicht-sequentielle Ausführungsmuster ermöglicht.

8-Bit-Befehlszähler-Komponente

Funktionsbeschreibung

Logikverhalten

Der Befehlszähler hält und aktualisiert die Adresse des nächsten auszuführenden Befehls. Er kann sequentiell inkrementieren, eine neue Adresse für Sprünge und Verzweigungen laden oder seinen aktuellen Wert basierend auf Steuersignalen halten.

Funktionstabelle:

RST LD INC CLK OE Operation A0-A7-Ausgang
1 X X X X Reset auf null Hi-Z
0 1 X 1 Neue Adresse laden D0-D7-Daten
0 1 X 0 Neue Adresse laden Hi-Z
0 0 1 1 Inkrementieren Adresse + 1
0 0 1 0 Inkrementieren Hi-Z
0 0 0 1 Aktuellen Wert halten Aktuelle Adresse
0 0 0 0 Aktuellen Wert halten Hi-Z
X X X 0 X Keine Änderung Vorheriger Zustand

Hinweis: ↑ steht für eine steigende Taktflanke, X steht für „don't care". RST ist asynchron – wenn aktiv, setzt es den Zähler unabhängig von anderen Signalen sofort zurück. OE steuert die Tri-State-Ausgänge – wenn inaktiv (0), gehen alle Ausgänge in den Hi-Z-Zustand.

Eingänge und Ausgänge

  • Eingänge:

    • D0-D7[7:0]: 8-Bit-Dateneingänge zum Laden einer neuen Adresse bei Sprüngen oder Verzweigungen.
    • CLK: 1-Bit-Takteingang, der die Operationen des Zählers synchronisiert.
    • LD: 1-Bit-Ladefreigabe-Eingang, der das Laden von den Dateneingängen aktiviert, wenn aktiv.
    • RST: 1-Bit-Reset-Eingang, der den Zähler bei Aktivierung auf 0x00 zurücksetzt.
    • INC: 1-Bit-Inkrement-Freigabe-Eingang, der eine Inkrementoperation auslöst, wenn aktiv.
    • OE: 1-Bit-Ausgangsfreigabe-Eingang, der die Tri-State-Ausgänge steuert.
  • Ausgänge:

    • A0-A7[7:0]: 8-Bit-Adressausgänge, die mit dem Speicheradressbus verbunden werden (Tri-State-gesteuert durch OE).

Pin-Belegung

Eingangs-Pins (linke Seite):

  • Pins 0-7: D0-D7 (Dateneingänge für paralleles Laden)
  • Pin 8: CLK (Takt – synchronisiert alle Operationen)
  • Pin 9: LD (Ladefreigabe – ermöglicht paralleles Laden von Daten)
  • Pin 10: RST (Reset – setzt den Zähler asynchron auf 0x00 zurück)
  • Pin 11: INC (Inkrement-Freigabe – aktiviert das Inkrementieren des Zählers)
  • Pin 12: OE (Ausgangsfreigabe – steuert die Tri-State-Ausgänge)

Ausgangs-Pins (rechte Seite):

  • Pins 0-7: A0-A7 (Adressausgänge zum Speicherbus)

Konfigurierbare Parameter

  • Reset-Wert: Der Wert, auf den der PC zurückgesetzt wird (typischerweise 0x00).
  • Taktflankenempfindlichkeit: Ob der PC an steigenden oder fallenden Taktflanken arbeitet.
  • Tri-State-Steuerung: Wie das Ausgangsfreigabesignal die Ausgangstreiber steuert.
  • Signallaufzeit: Die Zeit, die die Ausgänge benötigen, um sich nach einem auslösenden Ereignis zu ändern.

Visuelle Darstellung in DigiSim.io

Der 8-Bit-Befehlszähler wird als rechteckiger Block mit beschrifteten Eingängen auf der linken Seite (D0-D7, CLK, LD, RST, INC, OE) und Ausgängen (A0-A7) auf der rechten Seite dargestellt. Der Takteingang ist üblicherweise mit einem Dreieckssymbol gekennzeichnet, das die Flankenempfindlichkeit anzeigt. In einer Schaltung visualisiert die Komponente ihren aktuellen Zustand durch den an den Ausgängen angezeigten Adresswert und durch Farbänderungen auf den verbundenen Leitungen.

Pädagogischer Wert

Schlüsselkonzepte

  • Programmablaufsteuerung: Zeigt, wie Computer die Reihenfolge der Befehlsausführung verwalten.
  • Adressierung: Veranschaulicht das Konzept der Speicheradressierung in Computersystemen.
  • Steuersignale: Zeigt, wie digitale Signale das Verhalten sequenzieller Schaltungen steuern.
  • Von-Neumann-Architektur: Stellt eine grundlegende Komponente speicherprogrammierter Computer vor.
  • Sequenzielle Logik: Veranschaulicht die praktische Anwendung von Registern und Zählern.

Lernziele

  • Die Rolle des Befehlszählers im Befehlszyklus einer CPU verstehen.
  • Lernen, wie sequentieller und nicht-sequentieller Programmablauf (Sprünge, Verzweigungen) implementiert wird.
  • Erkennen, wie Steuersignale den Betrieb des Befehlszählers mit anderen CPU-Komponenten koordinieren.
  • Befehlszähler-Konzepte beim Entwurf einfacher CPU-Architekturen anwenden.
  • Die Beschränkungen des Adressraums basierend auf der Bitbreite verstehen (8-Bit-PC = 256 adressierbare Stellen).

Anwendungsbeispiele/Szenarien

  • Grundlegendes CPU-Design: Kernkomponente in einer minimalen Prozessorarchitektur.
  • Befehlssequenzierung: Steuerung der Reihenfolge der Befehlsausführung.
  • Implementierung von Sprüngen: Änderung des Programmablaufs zur Ausführung von Befehlen außerhalb der Reihenfolge.
  • Unterprogrammaufrufe: Speichern der aktuellen Adresse vor dem Sprung in ein Unterprogramm.
  • Schleifenimplementierung: Wiederholtes Ausführen einer Befehlssequenz.
  • Interrupt-Behandlung: Temporäres Umleiten des Programmablaufs zur Bearbeitung von Interrupts.

Technische Hinweise

  • Ein 8-Bit-PC begrenzt den direkt adressierbaren Speicher auf 256 Byte (2^8 Stellen).
  • Der PC wird typischerweise mit einem 8-Bit-Register in Kombination mit einer Inkrementer-Schaltung realisiert.
  • In den meisten CPU-Designs inkrementiert der PC automatisch während der Holphase des Befehls.
  • Sprung- und Verzweigungsbefehle ändern den normalen sequentiellen Ablauf, indem sie neue Werte in den PC laden.
  • Der PC-Wert wird typischerweise während der Holphase des Befehlszyklus auf den Adressbus gelegt.
  • Fortgeschrittenere Implementierungen können Funktionen wie Branch Prediction oder Pipelining zur Leistungssteigerung enthalten.
  • In größeren CPU-Architekturen werden PCs mit größeren Bitbreiten (16, 32, 64) verwendet, um größere Speicherbereiche zu adressieren.

Verwandte Komponenten

  • Speicher (RAM/ROM): Speichert die vom PC adressierten Befehle.
  • Adressbus: Der vom PC-Ausgang getriebene Bus.
  • Befehlsregister (IR): Speichert den aus der vom PC adressierten Adresse geholten Befehl.
  • Steuerwerk: Erzeugt die INC-, LOAD-, ENABLE-, RESET-Signale für den PC basierend auf decodierten Befehlen.
  • ALU: Kann Sprungzieladressen berechnen, die in den PC geladen werden.
  • Register: Allzweckregister können Adressen für indirekte Sprünge enthalten.

school Lernpfad

arrow_back Voraussetzungen

arrow_forward Nächste Schritte

help_outline Häufig gestellte Fragen

Was ist ein Programmzähler?

Der PC enthält die Speicheradresse des nächsten abzurufenden Befehls. Er erhöht sich nach jedem Abruf und kann mit Sprungzielen geladen werden.

Wie ermöglicht der PC Sprünge?

Sprungbefehle laden eine neue Adresse in den PC, was den Ausführungsfluss vom sequenziellen zum Sprungziel ändert.

play_arrow Live-Schaltung ausführen

Weitere Komponenten ansehen