k450-Anwendung_Datenpfade_von_ReTI
k450-Anwendung_Datenpfade_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
Zur Erinnerung: ReTI bisher
Register der CPU:
| Register | Bedeutung |
|---|---|
| ACC | Akkumulator |
| IN1 | Indexregister 1 |
| IN2 | Indexregister 2 |
| PC | Befehlszähler |
Befehle: load, store
Page 3
Zur Erinnerung: Datenpfade von ReTI
ReTI besteht aus:
- 4 benutzersichtbaren Registern PC, ACC, IN1, IN2
→ Realisiert durch Zähler (PC) bzw. Register. - Einem
-Wort-Speicher (Wortbreite von 32 Bit), der Daten und Befehle enthält
→ Realisiert durch SRAM. - ReTI unterstützt Load-/Store-, Compute-, Indexregister- und Sprungbefehle.
Befehlsformat (32 Bit):
| 31 30 | 29 | ... | 24 | 23 ... 0 |
|---|---|---|---|---|
| Typ | Spezifikation | Parameter |
Page 4
Zur Erinnerung: ReTI-Befehle im Überblick
| Bits | 31 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 ... 0 |
|---|---|---|---|---|---|---|---|---|
| Load | 0 1 | M | * | D | ||||
| Store | 1 0 | M | S | D | ||||
| Compute | 0 0 | MI | F | D | ||||
| Jump | 1 1 | C | * |
Legende: M – Modus; S – Source; D – Destination; MI – memory/immediate; F – Function; C – Condition
Page 5
Umsetzung von ReTI: Externe Sicht
3-Bus-Architektur zur Ansteuerung von Speicher und I/O-Geräten:
- 32 Bit breiter Datenbus
, - 32 Bit breiter Adressbus
, - Kontrollbus
(Breite später festgelegt).
Page 6
Umsetzung von ReTI: Interne Sicht
CPU besteht aus:
- Programmzähler PC.
- 3 weitere für Benutzer sichtbaren Registern ACC, IN1, IN2,
- Instruktionsregister I,
- ALU,
- CPU-internen Bussen:
, für linken bzw. rechten Operanden der ALU,- internem Datenbus
.
Register, PC, ALU, Busse und die zugehörigen Treiber sind 32 Bit breit.
Page 7
Interner Aufbau der ReTI-CPU
Siehe Schaltbild auf der Folie. Enthält: PC, IN1, IN2, ACC, ALU, I, Busse A, D, DI, R, L sowie Treiber:
DDId, ALUDId, 0Ld, PCLd, IN1Ld, IN2Ld, ACCLd, 0Rd, IRd, DRd, IAd, ALUAd, PCAd, ASMd
Page 8
Hinweise zum Schaltbild
Namenskonvention für Treiber: Treiber zwischen Bus/Baustein X und Bus/Baustein Y: XYd;
Output-Enable-Signal: XYdoe.
0Ldund0Rdkönnen auf bzw. legen.- Busse
und sind an den Speicher (sowie I/O-Geräte) angeschlossen, s. nächste Folie.
Das Bild enthält keine Steuerleitungen:
- Output-Enable-Signale der Treiber,
- Funktionsauswahl der ALU,
- Clock-Signale und „Clock-Enable-Signale" der Register.
Page 9
Speicher
- Datenein- und ausgänge mit Datenbus
der CPU verbunden. - Adressleitungen mit Adressbus
der CPU verbunden. - Treiber
ASMdimmer enabled.
Kontrollsignale: /SMDdoe (active low), SMw
Page 10
Verfeinerung des Schaltbilds
Siehe Folie: vollständiges Schaltbild inkl. SRAM mit Treiber ASMd.
Page 11
Verarbeitung der Daten im Register I
Gerade verarbeiteter Befehl im Instruktionsregister I:
: Befehlskodierung (für die im Schaltbild nicht dargestellten Steuersignale benötigt) : Speicheradresse oder Konstante für die ALU.
| Verwendung | Transformation | Treiber |
|---|---|---|
| Speicheradresse | IAd enabled |
|
| „Natürliche" 24-Bit-Konstante | IRd enabled |
|
| Ganzzahlige 24-Bit-Konstante | IRd enabled |
Page 12
Verfeinerung
Neues Kontrollsignal sext:
sext= 0: Ersetze durch .sext= 1: Ersetze durch .
Page 13
Weitere Verfeinerung für Register (1/3)
Im Buch von Keller / Paul werden die Clockeingänge aller Register Reg
mit einem Clocksignal Regck verbunden, das durch die Kontrolllogik
berechnet wird.
⇒ Datenübernahme zu ausgewählten Zeitpunkten
Vorgehen bei Realisierung der ReTI auf einer Platine mit diskreten
Bausteinen OK!
Nicht OK bei heutigen Designs, die Prozessoren auf einem einzigen
Chip integrieren.
Page 14
Weitere Verfeinerung für Register (2/3)
Gründe für „Designrule" (Entwurfsregel), die es verbietet, Clockeingänge mit
berechneten Datensignalen zu verbinden:
- „Clock-Tree-Synthese" gewährleistet, dass die steigende Flanke der
globalen Clock an allen Clockeingängen zum gleichen Zeitpunkt
ankommt (z. B. durch Ausgleich des Effekts unterschiedlicher
Leitungsverzögerungen m. H. von Treibern).
Datensignale auf Clockeingängen verhindern Clock-Tree-Synthese. - Heutige Werkzeuge zur automatischen Timing-Analyse
(und Berechnung der maximalen Clockfrequenz) sind nicht in der Lage,
mit berechneten Clocksignalen umzugehen. - Höhere Anforderungen an „Flankensteilheit" der Clocksignale.
Page 15
Weitere Verfeinerung für Register (3/3)
Transformation bzw. Verfeinerung: Statt berechnetem Clocksignal erhält jedes
Register einen MUX am Eingang, gesteuert durch Regcken (Clock-Enable),
während ck die globale Clock bleibt.
Page 16
Programmabarbeitung durch ReTI
Zwei sich abwechselnde Phasen der CPU:
bedingt durch „Von-Neumann-Architektur"
(gemeinsamer Befehls- und Daten-Speicher)
- Fetch-Phase: Lädt nächsten auszuführenden Befehl aus Memory ins Instruktionsregister I der CPU.
- Execute-Phase: Befehl, der in I steht, wird ausgeführt.
Vorgehen:
- Definition der Datenpfade, d.h. der benötigten Datenverbindungen zwischen den Komponenten der CPU.
- Herleitung der Kontrollsignale zur Ansteuerung der im Punkt 1 hergeleiteten Datenpfade:
- Treiber-OE
- ALU-Funktionsselektion
- Enable für Register-Clocks
- Sequentielle Synthese.
Page 17
Datenpfade: Fetch-Phase
Siehe Schaltbild auf der Folie.
Page 18
Fetch-Phase, Treiber
Welche Treiber müssen in der Fetch-Phase enabled sein?
a. ALUAd
b. ASMd
c. DDId
d. IAd
e. IRd
f. PCAd
g. PCLd
h. SMDd
Page 19
Datenpfade: Fetch-Phase
Siehe Schaltbild auf der Folie.
Page 20
Bedeutung des Diagramms
In der Fetch-Phase muss:
- Bus
mit PC verbunden sein, d.h.PCAdenabled. - Bus
mit Speicher verbunden sein, d.h.SMDdenabled. - Register I den Wert von Bus
übernehmen, d.h.Ickenmuss enabled werden. - Alle anderen Treiber (außer denen, die stets enabled sind) sind disabled, um Bus Contentions zu vermeiden.
Die Steuersignale müssen in der Fetch-Phase entsprechend gesetzt sein.
Z.B. Icken = 1, /PCAdoe = 0, /SMDdoe = 0, /ALUAdoe = 1, usw. (Output-Enable-Signale active low!)
Page 21
Fetch: Die durchgeschalteten Pfade
PC → PCAd → A → SRAM(ASMd) → D → I
Page 22
Datenpfade in der Execute-Phase
Betrachte die Execute-Phase unterschiedlicher Befehlstypen:
- Compute Immediate,
- Compute Memory,
- JUMP,
- LOAD,
- LOADIN1 (LOADIN2 analog),
- LOADI,
- STORE,
- STOREIN1,
- MOVE.
Page 23
Datenpfade: Compute Immediate (1/2)
Siehe Schaltbild auf der Folie.
Page 24
Datenpfade: Compute Immediate (2/2)
Durchgeschaltete Pfade:
I → IRd → R → ALU
ACC → ACCLd → L → ALU
ALU → ALUDId → DI → ACC
Page 25
Datenpfade: Compute Memory (1/2)
Siehe Schaltbild auf der Folie.
Page 26
Datenpfade: Compute Memory (2/2)
Durchgeschaltete Pfade:
I → IRd → R → ALU
ACC → ACCLd → L → ALU
I → IAd → A → SRAM(ASMd) → D → DRd → R → ALU
ALU → ALUDId → DI → ACC
Page 27
Datenpfade: JUMP (1/2)
Siehe Schaltbild auf der Folie.
Page 28
Datenpfade: JUMP (2/2)
Durchgeschaltete Pfade:
I → IRd → R → ALU
PC → PCLd → L → ALU
ALU → ALUDId → DI → PC
Page 29
Datenpfade: LOAD i (1/2)
Siehe Schaltbild auf der Folie.
Page 30
Datenpfade: LOAD i (2/2)
Durchgeschaltete Pfade:
I → IAd → A → SRAM(ASMd) → D → DDId → DI → ACC
Page 31
Datenpfade: LOADIN1 i (1/2)
Siehe Schaltbild auf der Folie.
Page 32
Datenpfade: LOADIN1 i (2/2)
Durchgeschaltete Pfade:
I → IRd → R → ALU
ACC → ACCLd → L → ALU
ALU → ALUAd → A → SRAM(ASMd) → D → DDId → DI → IN1
Page 33
Datenpfade: LOADI i (1/2)
Siehe Schaltbild auf der Folie.
Page 34
Datenpfade: LOADI i (2/2)
Durchgeschaltete Pfade:
0 → 0Ld → L → ALU
I → IRd → R → ALU
ALU → ALUDId → DI → ACC
Page 35
Datenpfade: STORE i (1/2)
Siehe Schaltbild auf der Folie.
Page 36
Datenpfade: STORE i (2/2)
Durchgeschaltete Pfade:
I → IAd → A → SRAM(ASMd)
ACC → D → SRAM (SMw)
Page 37
Datenpfade: STOREIN1 i (1/2)
Siehe Schaltbild auf der Folie.
Page 38
Datenpfade: STOREIN1 i (2/2)
Durchgeschaltete Pfade:
I → IRd → R → ALU
IN1 → IN1Ld → L → ALU
ALU → ALUAd → A → SRAM(ASMd)
ACC → D → SRAM (SMw)
Page 39
Datenpfade: MOVE ACC IN1 (1/2)
Siehe Schaltbild auf der Folie.
Page 40
Datenpfade: MOVE ACC IN1 (2/2)
Durchgeschaltete Pfade:
ACC → ACCLd → L → ALU
0 → 0Rd → R → ALU
ALU → ALUDId → DI → IN1
Page 41
Zusätzliche Befehle
Man kann weitere Befehle ohne zusätzliche Hardware realisieren!
- Load- und Compute-Befehle mit beliebigem Zielregister
. - Kein
, wenn . - Befehlsformat:
LOAD r i;ADD r i; etc.
Befehlskodierung:
| Bits | 31 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 ... 0 |
|---|---|---|---|---|---|---|---|---|
| Load | 0 1 | M | * | D | ||||
| Compute | 0 0 | MI | F | D |








































