k460-Kontrolllogik_von_ReTI
k460-Kontrolllogik_von_ReTI
Page 1
Kapitel 4 – Sequentielle Logik
- Speichernde Elemente
- Sequentielle Schaltkreise
- Entwurf sequentieller Schaltkreise
- SRAM
- Anwendung: Datenpfade von ReTI
- Anwendung: Kontrolllogik von ReTI
Albert-Ludwigs-Universität Freiburg
Prof. Dr. Armin Biere
Institut für Informatik
Page 2
Zu generierende Kontrollsignale
- Clock-Enable-Signale für alle Register
, Bez.:rcken. - Output-Enable-Signale (active low) für alle Treiber
XYd, Bez.:/XYdoe. - Funktions-Select-Signale
zum Selektieren der Funktion, die von der ALU ausgeführt wird. - Signale
/PCclear,/PCloadfür PC. sextzur Berechnung der Füllbits bei 24-Bit-Immediate-Konstanten.- Für den Speicher benötigen wir die Kontrollsignale
/SMDdoe(active low),SMw.
Page 3
Idealisierte Timing-Diagramme
Grobe Ablaufplanung mit idealisierten Timing-Diagrammen.
Vereinfachende Annahme: Verzögerungszeit aller Bausteine = 0.
Befehlsabarbeitung ist unterteilt in Takte (= Folge von Taktsignalen high, low).
Fragen:
- Wie sollen Kontrollsignale zusammenspielen?
- In welchem Takt sollen welche Treiber aktiviert?
- Welche Registerclock enabled werden?
Page 4
Befehlsabarbeitung in Takten
Fetch- als auch Execute-Phase bestehen aus 4 Takten gleicher Länge.
Kontrollsignal:
: Fetch-Phase, : Execute-Phase.
Signale
- Steigende Flanken (Anfang des Taktes) werden mit
bezeichnet ( ) - Fallende Flanken (Mitte des Taktes) werden mit
bezeichnet ( )
Clock ck, Signale
Weitere (Kontroll-)Signale werden aus den Phasensignalen erzeugt.
Page 5
Erzeugung der Phasensignale
- 2-Bit-Zähler zählt bei jeder positiven Flanke von
ckum 1 hoch. Sresetaktiv → PC := 0- Sprungbefehl / Befehlskodierung steuert die Kontrolllogik.
- Erzeugt Sequenz der Phasensignale
.
Page 6
Idealisiertes Timing-Diagramm
Siehe Folie. Zeigt den Verlauf über Fetch- und Execute-Phase mit den Takten
/SMDdoe, Icken, rcken*, /PCload, /PCclear, ck, SMw
(
Page 7
Idealisiertes Timing-Diagramm
Siehe Folie (gleiche Darstellung wie Page 6).
Page 8
Kontrollsignale
Welche der folgenden Funktionen realisiert das Signal /SMDdoe, wie es bei der Ausführung eines entsprechenden Befehls gebraucht wird?
a.
b.
c.
d. Keine der obigen
Page 9
Zur Erinnerung: Datenpfade
Siehe Schaltbild auf der Folie (vollständige ReTI-CPU mit allen Treibern).
Page 10
Entwurfsziele
- Nutze Busse möglichst lange (unter Vermeidung von Bus Contention).
- Clock-Enable-Signale der Register möglichst spät
⇒ viel Zeit für Berechnung neuer Daten. - Nach dem Entwurfsende muss das Timing der CPU mit den konkreten Werten der eingesetzten Fertigungstechnologie überprüft werden.
„Wie schnell kann man maximal takten, um korrektes Funktionieren zu garantieren?"
Page 11
Aufbau der Kontrolllogik (1/2)
Kontrolllogik realisiert durch einen Endlichen Automaten.
Kontrollsignale sind Ausgangssignale des Endlichen Automaten.
- Ist ein Kontrollsignal active low, dann bezeichnen wir es z.B. mit
/x.
Ausgangssignal/xergibt sich dann durch Negation des Ausgangssignals eines entsprechenden FFs mit Eingangssignalxpre. - Ist ein Kontrollsignal active high, dann bezeichnen wir es z.B. mit
.
Ausgangssignal entspricht dem Ausgangssignal eines FFs mit Eingangssignalxpre.
Page 12
Aufbau der Kontrolllogik (2/2)
Kombinatorischer Schaltkreis bereitet aus Eingängen (/reset, ACC[31:0], I[31:24], Ickenpre, PCLdoepre, ...) vor, die in D-FFs gespeichert werden.
Ein Teil der D-FFs wird mit ck geclockt, ein anderer mit /ck.
Page 13
Berechnung von Icken als erstes Beispiel (1/2)
Siehe Timing-Diagramm auf der Folie.
Page 14
Berechnung von Icken als erstes Beispiel (2/2)
Ickenpre hat steigende Flanke bei
Realisierung:
Page 15
Berechnung von ACCcken, IN1cken, IN2cken, PCcken
Analog, unter Berücksichtigung der Tatsache, dass Register nur bei bestimmten Befehlen neu beschrieben werden dürfen.
Page 16
Berechnung von ACCcken als Beispiel (1/3)
Siehe Timing-Diagramm auf der Folie.
Page 17
Berechnung von ACCcken als Beispiel (2/3)
ACCckenpre hat steigende Flanke bei
Aber nur bei folgenden Befehlen:
- Compute mit D = ACC
- Load mit D = ACC
- Move mit D = ACC
Kodierung:
- Compute:
- Load:
- Move:
- D = ACC:
Kodierung S, D:
| S / D | Register |
|---|---|
| 0 0 | PC |
| 0 1 | IN1 |
| 1 0 | IN2 |
| 1 1 | ACC |
Page 18
Berechnung von ACCcken als Beispiel (3/3)
Page 19
Datenpfade und Treiber auf L und R
Siehe Schaltbild auf der Folie.
Page 20
Idealisiertes Timingdiagramm
Siehe Folie.
Page 21
Treiber auf Bussen L und R
0Ld, PCLd, IN1Ld, IN2Ld, ACCLd, 0Rd, IRd, DRd.
Enabled in der ganzen Execute-Phase.
Beispiel für Realisierung: /PCLdoe.
Enabled für:
- JUMP (
) - Compute-Befehle (
) mit D = PC ( ) - MOVE (
) mit S = PC ( )
Page 22
Berechnung von /PCLdoe (1/2)
Siehe Timing-Diagramm auf der Folie.
PCLdoepre hat steigende Flanke bei
Page 23
Berechnung von /PCLdoe (2/2)
Output-Enable-Signale für andere Treiber auf
Page 24
Datenpfade und Treiber auf Adressbus
Siehe Schaltbild auf der Folie.
Page 25
Treiber auf Adressbus
PCAd: enabled (unabhängig vom Befehl) bei der Fetch-Phase, disabled bei der Fetch-Phase.IAd,ALUAd: enabled bei , disabled bei von Execute (aber nicht bei allen Befehlen).
Die D-FFs zu Output-Enable-Signalen auf dem Adressbus werden mit der invertierten Clock getaktet (Verschiebung um einen halben Takt!)
Page 26
Idealisiertes Timingdiagramm
Siehe Folie.
Page 27
Weitere Kontrollsignale
- Treiber auf
, - Signale
/PCload,/PCclear - Speicheransteuerung: s. nächste Folie.
- Kontrolle der ALU und Sign-Extension:
- Funktions-Select-Signale
der ALU - Eingangsübertrag
cin sextundfill
- Funktions-Select-Signale
All diese Signale werden durch den kombinatorischen Schaltkreis (ohne zusätzliche FFs) berechnet.
Page 28
Idealisiertes Timing-Diagramm
Siehe Folie.
Page 29
Speicheransteuerung
Output-Enable /SMDdoe für SMDd (Treiber am Speicherausgang) aktiviert von
- Fetch
- Compute Memory
- LOAD, LOADINj
Schreibsignal für Speicher SMw (memory write) aktiviert von
- STORE, STOREINj
Page 30
Zusammenfassung Sequentielle Logik
- Sequentielle Schaltkreise bestehen aus speichernden Elementen (Latches, Flipflops) und einem kombinatorischen Kern.
- Sie implementieren endliche Zustandsautomaten.
- Der Entwurf eines sequentiellen Schaltkreises besteht aus der Aufstellung des Zustandsdiagramms, der Zustandsminimierung, der Zustandskodierung und der Synthese der kombinatorischen Logik.
- Nun war es uns möglich, den Entwurf von ReTI zu vervollständigen (noch ohne exakte Timing-Analyse).





























