EDA 451 - Digital och Datorteknik Dagens föreläsning: Centralenheten och dess byggblock, läroboken kapitel 7 arbetsbokens kapitel 10-14 Ur innehållet: Laddbara register och bussar Överföring mellan register, ”Dataväg” Dataväg med Aritmetik/Logik- enhet (ALU) En manuell styrenhet ”Vi börjar bygga en centralenhet”
Dataväg med ALU ”Dataväg och minne” ”Styrenhet med fast kopplad logik” ”Mikroprogrammerad styrenhet”
Illustration, Digiflex Arkiv -> Kombinatorik/Sekvensnät ->Klockat Register Starta Digiflex och demonstrera UG4:56 Observera först vad som visas i Display-modulen! Välj nu att klicka i LD-rutan på registret. Du har nu angett att ettställa load enable (LD = 1). Ge sedan registret en klockpuls vid att klicka på Clk på registret. Vad klockas in i registret? _________________________________ och varför? ____________________________________________ Välj nu att ändra innehållet i Source-modulen vid att skriva över några av nollorna som visas. Aktivera sedan output enable på Source-modulen och ge en ny klockpuls. Vilket hexadacimalt värde har du angett i Source-modulen? _____ Vad klockas in i registret? ________________________________ Verkar detta stämma? ____________________________________ _____________________________________________________ Vilken signal, på vilken modul, måste du aktivera för att visa registerinnehållet på Display-modulen? ______________________________________________________
Högst en OE-signal får vara aktiv åt gången... x e f Z 1 x 1 Grind x OEx y Grind 1 y OEy Högst en OE-signal får vara aktiv åt gången... z Grind 1 z OEz
Register och bussar, Dataväg
Illustration, Digiflex exempel: (R)→A Arkiv -> Datavägen ->Dataöverföring mellan register OER 1 LDA 2 CP 3 buss regA 4 regR Styrsignaler för enkel dataväg Fyll i styrsignalvärdena, för överföringen R A i följande tabell. Demonstrera UG4:57, 58 Inför 58, Lägg vardet 27(hex) i register R OES OEA OEB OET OER LDA LDB LDT LDR RTN- beskrivning 1 R A
Värdet placeras på bussen från ”Source” Hur många klockpulser krävs för att placera värdet 7116 i register A,B,T och R? Lösning; Fyll i styrsignalvärdena, för överföringen 7116 A,B,T,R i följande tabell. Värdet placeras på bussen från ”Source” OES OEA OEB OET OER LDA LDB LDT LDR RTN- beskrivning 1 R A Demonstrera UG4:59
För in styrsignalerna.... ...ge klockpuls....
Aritmetisk/Logisk Enhet (ALU) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 D (d7,d6,d5,d4, d3,d2,d1,d0) E (e7,e6,e5,e4, e3,e2,e1,e0) U (u7,u6,u5,u4, u3,u2,u1,u0) F (f3,f2,f1,f0) Cin kombinatorik N V Z C
ALU’ns funktioner
Illustration, Digiflex Arkiv -> Kombinatorik/Sekvensnät ->Aritmetik/Logik enhet
Anslutning av ALU till datavägen Hur kopplar vi in en ALU till datavägen?
Temporärregister (T) för lagring av indata Bussen kan bara innehålla en av ALU’ns operander åt gången
Resultatregister (R) för lagring av utdata Eftersom resultatet i ALU’ns U-register ändras direkt om någon av ingångarna ändras måste det vara möjligt att spara värdet i ett register.
Dataväg med Aritmetisk/Logisk Enhet (ALU) Manöverpanel – strömställare för styrsignaler.
Illustration, Digiflex Arkiv -> Datavägen ->Enkel Dataväg
Exempel: B+1→B (INCrement B) f3 f2 f1 f0 U = f(D,E,F,Cin) Operation Resultat 0 0 0 0 Bitvis nollställning 0 0 0 1 D 0 0 1 0 E 0 0 1 1 Bitvis invertering D1k 0 1 0 0 E1k 0 1 0 1 Bitvis OR D OR E 0 1 1 0 Bitvis AND D AND E 0 1 1 1 Bitvis XOR D XOR E 1 0 0 0 D + 0 + Cin D + Cin 1 0 0 1 D + FF16 + Cin D 1 + Cin 1 0 1 0 D + E + Cin 1 0 1 1 D + D + Cin 2D + Cin 1 1 0 0 D +E1k + Cin D E 1 + Cin 1 1 0 1 1 1 1 0 1 1 1 1 Bitvis ettställning FF16 Demonstrera UG4:64 Observera att en given operation som regel kan utföras på flera olika sätt. Vi eftersträvar vanligtvis det effektivaste (minst klockcykler).
Steg 1: Steg 2: B→D Cin = 1 F=1,0,0,0 U→R R→B I RTN-beskrivningen anger vi, klockpuls för klockpuls, hur datavägen används. Steg 1: RTN-beskrivning: CP1: ______________ ______________ CP2: ______________ CP3: ______________ CP4: ______________ CP5: ______________ B→D B+1 → R Cin = 1 F=1,0,0,0 (D + Cin) R→B U→R Resultatet B+1 finns nu i register R. Eftersom bussen är upptagen krävs ytterligare steg för att återföra resultatet till B Steg 2: R→B
Utifrån RTN-beskrivningen, fyll i tabellen med styrsignalernas värden CP1: ______________ ______________ CP2: ______________ CP3: ______________ CP4: ______________ CP5: ______________ Utifrån RTN-beskrivningen, fyll i tabellen med styrsignalernas värden B+1 → R CP OE LD ALU Funk Src S A B R T 3 2 1 0 Cin 1 1000 00 2 0000 R→B I DigiFlex får tabellen följande utseende:
Nollställning av register A, CLRA Cykel Operation (RTN) Aktiva styrsignaler Beskrivning 1 0→R LDR ALU’ns U-register nollställs ty F(0), dvs f3=f2=f1=f0=0. Vid klockpulsen överförs U till R. 2 R→A OER, LDA Innehållet i register R överförs till register A 1 I DigiFlex: 2
Bitvis komplementbildning av registerinnehåll A, COMA Cykel Operation (RTN) Styrsignaler Beskrivning 1 A’→R OEA, f1, f0 LDR A kopplas till ALU’n F(3), dvs f3=f2=0,f1=f0=1. Vid klockpulsen överförs U till R. 2 R→A OER, LDA Innehållet i register R överförs till register A 1 2 I DigiFlex:
Sammanfattning ”Dataväg och minne” ”Styrenhet med fast kopplad logik” ”Mikroprogrammerad styrenhet”