1.01k likes | 1.13k Views
Pipelining - Ablauf. Aufgaben 1b) bis 1e). ADD $1,$1,$2 OR $2,$2,4 SL $3,$3,5 STO $1,$4,3 TRAP 0,Halt,0. $1=0x11+0x22=0x33. ADD $1,$ 1,$2 OR $2,$2,4 SL $3,$3,5 STO $1,$4,3 TRAP 0,Halt,0. $1=0x33. $2= 0010 0010 ($2) || 0000 0100 ( 4) = 0010 0110=0x26.
E N D
Pipelining- Ablauf Aufgaben 1b) bis 1e)
ADD $1,$1,$2 OR $2,$2,4 SL $3,$3,5 STO $1,$4,3 TRAP 0,Halt,0 $1=0x11+0x22=0x33
ADD $1,$1,$2 OR $2,$2,4 SL $3,$3,5 STO $1,$4,3 TRAP 0,Halt,0 $1=0x33 $2= 0010 0010 ($2) || 0000 0100 ( 4) = 0010 0110=0x26
ADD $1,$1,$2 OR $2,$2,4 SL $3,$3,5 STO $1,$4,3 TRAP 0,Halt,0 $1=0x33 $2=0x26 $3= 0011 0011 00000 ($3)<< 5 = 0110 0110 0000 = 0x660
ADD $1,$1,$2 OR $2,$2,4 SL $3,$3,5 STO $1,$4,3 TRAP 0,Halt,0 $1=0x33 $2=0x26 $3=0x660 0x20……00+0x3=0x20……03 Aber: OCTA => 3 LSB´s zu Null M8[0x20……00]=0x33($1)
ADD $1,$1,$2 $1=0x33 OR $2,$2,4 $2=0x26 SL $3,$3,5 $3=0x660 STO $1,$4,3 M8[0x20……0]=0x33($1) TRAP 0,Halt,0
Sp.-Puls Reg.-Schreiben ES Ergebnisauswahl Sp.-Schreiben Steuerung SP ES Zugriffs-Art Reg.-Puls 4 2 Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 Direktoperand 64 Pipelining - Datenpfad Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y $Y Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 32 Lesen $Z 8 64 64 0 16..23 56 X X X 8 8 8 8 64
Initialisierte Werte Sp.-Puls Reg.-Schreiben ES Ergebnisauswahl Sp.-Schreiben Steuerung SP ES Zugriffs-Art Reg.-Puls 4 2 Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 Registerblock: Direktoperand 64 Clk2 2 64 Clk3 Clk4 X-Auswahl ... ... BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben $5 0x55 8 64 64 64 Schreib- Daten $X Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse $4 0x2000000000000000 0 32 64 64 Lese- Daten $Y $Y Schreiben/ Lesen $X 64 1 64 $3 0x33 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher $2 0x22 0..7 1 Dir Op. 32 Lesen $Z 8 64 64 $1 0x11 0 16..23 56 X X X $0 0x00 8 8 8 8 64
Sp.-Puls Reg.-Schreiben ES Ergebnisauswahl Sp.-Schreiben ADD $1,$1,$2 Opcode: 0x20 01 01 02 Steuerung SP ES Zugriffs-Art Reg.-Puls 4 2 Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 Direktoperand 64 Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse ADD $1,$1,$2 $1=0x33 OR $2,$2,4 $2=0x26 SL $3,$3,5 $3=0x660 STO $1,$4,3 M8[0x20……0]=0x33($1) TRAP 0,Halt,0 0 32 64 64 Lese- Daten $Y $Y Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 32 Lesen $Z 8 64 64 0 16..23 56 X X X 8 8 8 8 64
1.Takt ADD Befehlwird ins Befehlsregistergeladen Keine unbekannten Werte in Register & Speicher schreiben! Sp.-Puls Clk 1: ja Clk 2: nein Clk 3: nein Clk 4: nein Reg.-Schreiben ES 0 Ergebnisauswahl Sp.-Schreiben Steuerung SP ES 0 0 Zugriffs-Art Reg.-Puls 4 2 Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 0 Direktoperand 64 Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 0x20010102 Lese- Daten $Y $Y Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 32 Lesen $Z 8 64 64 0 16..23 56 X X X 8 8 8 8 64
1.Takt Opcode an Steuerung Sp.-Puls Clk 1: ja Clk 2: nein Clk 3: nein Clk 4: nein Reg.-Schreiben ES 0 Ergebnisauswahl Sp.-Schreiben Steuerung SP ES 0 0 Zugriffs-Art Reg.-Puls 4 2 Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 0 Direktoperand 64 Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0x20 0 32 64 64 Lese- Daten $Y $Y 0x20010102 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 32 Lesen $Z 8 64 64 0 16..23 56 X X X 8 8 8 8 64
1.Takt SteuerunggeneriertalleSteuersignale für ADD Befehl Sp.-Puls Clk 1: ja Clk 2: nein Clk 3: nein Clk 4: nein Reg.-Schreiben ES 0 Ergebnisauswahl Sp.-Schreiben 1 1 Steuerung SP ES 0 0 0 Zugriffs-Art Reg.-Puls 4 2 X Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 02 0 0x20 Direktoperand 64 0 Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y $Y 0x20010102 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 32 Lesen $Z 8 64 64 0 16..23 56 X X X 8 8 8 8 64
1.Takt Adresse von Zielregister $X wird an Zwischenregistergelegt Sp.-Puls Clk 1: ja Clk 2: nein Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 0 Ergebnisauswahl 1 Sp.-Schreiben Steuerung SP ES 0 0 0 Zugriffs-Art Reg.-Puls 4 2 X Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 0 02 0x20 Direktoperand 64 0 Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0x01 0 32 64 64 Lese- Daten $Y $Y 0x20010102 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 32 Lesen $Z 8 64 64 0 16..23 56 X X X 8 8 8 8 64
1.Takt Wert am Adress-Eingang $X des Registerblockswirdbestimmt Sp.-Puls Clk 1: ja Clk 2: nein Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 0 Ergebnisauswahl 1 Sp.-Schreiben Steuerung SP ES 0 0 0 Zugriffs-Art Reg.-Puls 4 2 X Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 0 02 0x20 Direktoperand 64 0 Clk2 2 64 X-Auswahl ==0 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0x01 0 32 64 64 Oder: Lese- Daten $Y $Y 0x20010102 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x01 8 8 8 8 64
1.Takt Wert am Adress-Eingang $X des Registerblockswirdbestimmt Sp.-Puls Clk 1: ja Clk 2: nein Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 0 Ergebnisauswahl 1 Sp.-Schreiben Steuerung SP ES 0 0 0 Zugriffs-Art Reg.-Puls 4 2 X Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 0 02 0x20 Direktoperand 64 0 Clk2 2 64 X-Auswahl ==1 Clk3 Clk4 BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y $Y 0x20010102 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 32 Lesen $Z 8 64 64 0 16..23 ? 56 X X X 0x01 8 8 8 8 64
1.Takt Wert am Adress-Eingang $Y des Registerblockswirdbestimmt Sp.-Puls Clk 1: ja Clk 2: nein Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 0 Ergebnisauswahl 1 Sp.-Schreiben Steuerung SP ES 0 0 0 Zugriffs-Art Reg.-Puls 4 2 X Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 0 02 0x20 Direktoperand 64 0 Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0x01 0 32 0x01 oder? 64 64 Lese- Daten $Y $Y 0x20010102 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x01 8 8 8 8 64
1.Takt Wert am Adress-Eingang $Z des Registerblocks & Direktoperandwerdenbestimmt Sp.-Puls Clk 1: ja Clk 2: nein Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 0 Ergebnisauswahl 1 Sp.-Schreiben Steuerung SP ES 0 0 0 Zugriffs-Art Reg.-Puls 4 2 X Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 0 02 0x20 Direktoperand 64 0 Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0x02 0 32 0x01 oder? 64 64 Lese- Daten $Y $Y 0x20010102 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 64 8..15 Daten Lesen $Y 0x01 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 32 Lesen $Z 0x02 8 64 64 0x0…02 0 16..23 56 X X X 0x01 8 8 8 8 64
1.Takt Daten für $X, $Y, $Z aus dem Registerblock lesen Sp.-Puls Clk 1: ja Clk 2: nein Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 0 Ergebnisauswahl 1 Sp.-Schreiben Steuerung SP ES 0 0 0 Zugriffs-Art Reg.-Puls 4 2 X Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 0 02 Registerblock: 0x20 Direktoperand 64 0 Clk2 2 64 Clk3 Clk4 X-Auswahl ... ... BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben $5 0x55 8 64 64 64 Schreib- Daten $X 0x0…11 oder ? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse $4 0x2000000000000000 0 32 0x01 oder? 64 64 Lese- Daten $Y $Y 0x0…11 0x20010102 Schreiben/ Lesen $X 64 1 64 $3 0x33 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 0x0…22 64 8..15 Daten Lesen $Y 0x01 $Z = 1 Erg ALU Daten- Speicher $2 0x22 0..7 1 Dir Op. 0x0…02 32 Lesen $Z 0x02 8 $X = Oder $X = ? $Y = 64 64 $1 0x11 0 16..23 56 X X X 0x01 $0 0x00 8 8 8 8 64
1.Takt Pipeline-Register nach Takt 1: Sp.-Puls Clk 1: ja Clk 2: nein Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 0 Ergebnisauswahl 1 Sp.-Schreiben Steuerung SP ES 0 0 0 Zugriffs-Art Reg.-Puls 4 2 X Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 0 02 0x20 Direktoperand 64 0 Clk2 2 64 Clk3 Clk4 X-Auswahl ==egal BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x0…11 oder ? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 0x01 oder? 64 64 Lese- Daten $Y $Y 0x0…11 0x20010102 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 0x0…22 64 8..15 Daten Lesen $Y 0x01 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 0x0…02 32 Lesen $Z 0x02 8 64 64 0 16..23 56 X X X 0x01 8 8 8 8 64
ja Reg.Schr.: 0 ES X-Auswahl: egal nein Erg.Ausw.: Clk1: Clk2: Clk3: Clk4: Übungsskript S.171 oben nein Sp.Schr.: Reg.Schr.: 0 0 SP nein Zugr.-Art: Erg.Ausw.: ALU: Sp.Schr.: Reg.Schr.: 0 0 AF Dir.Op.: Zugr.-Art: Erg.Ausw.: $X: $X: Lese-Daten: $Y: $Z: ADD $1,$1,$2 Erg.ALU: Erg.ALU: Dir.Op.: Opcode: 0x20010102 X: X: X:
2.Takt Inhalte von ADD werden in Register übernommen Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 0 Ergebnisauswahl 1 Sp.-Schreiben Steuerung SP ES 0 0 0 Zugriffs-Art Reg.-Puls 4 2 X Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 0 02 Direktoperand 64 0 Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x0…11 oder ? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y $Y 0x0…11 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU $Z 0 Lese- Daten $Z 0x0…22 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 0x0…02 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x01 8 8 8 8 64
2.Takt AF-Phase des ADD Befehls Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 0 0 0 Zugriffs-Art Reg.-Puls 4 2 X X Clk1 64 ALU-Funktion 8 AF SP ES Add 02 24..31 0 0 02 Direktoperand 64 0 0 Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x0…11 oder ? 0x0…11 oder ? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y 0x0…11 $Y 0x0…11 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU + 0x33 $Z 0 Lese- Daten $Z 0x0…22 0x0…22 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 0x0…02 0x0…02 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x01 0x01 8 8 8 8 64
2.Takt OR Befehlwird ins Befehlsregistergeladen Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 Ergebnisauswahl 1 Sp.-Schreiben OR $2,$2,4 Opcode: 0xC1 02 02 04 Steuerung SP ES 1 0 0 Zugriffs-Art Reg.-Puls 4 2 1 X Clk1 64 ALU-Funktion 8 AF SP ES Add 0 24..31 0 0 02 Direktoperand 64 X 0 Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x11 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse ADD $1,$1,$2 $1=0x33 OR $2,$2,4 $2=0x26 SL $3,$3,5 $3=0x660 STO $1,$4,3 M8[0x20……0]=0x33($1) TRAP 0,Halt,0 0 32 64 64 0xC1020204 Lese- Daten $Y $Y 0x11 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU 0x33 $Z 0 Lese- Daten $Z 0x22 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 0x02 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x01 0x01 8 8 8 8 64
2.Takt OR Befehlwirddekodiert Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 Ergebnisauswahl 1 Sp.-Schreiben 1 1 Steuerung SP ES 1 0 0 0 Zugriffs-Art Reg.-Puls 4 2 1 X X Clk1 64 ALU-Funktion 8 AF SP ES Add 0 24..31 0 00 0 02 0xC1 Direktoperand 64 X 0 1 Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x11 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0x02 0x04 0xC1 0x02 0 0x02 32 0x02 oder? 64 64 0xC1020204 Lese- Daten $Y $Y 0x11 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU 0x33 $Z 0 Lese- Daten $Z 0x22 64 8..15 0x02 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 0x0…04 0x02 32 Lesen $Z 0x04 0x04 8 64 64 0x0…04 0 16..23 56 X X X 0x02 0x01 0x01 8 8 8 8 64
2.Takt OR Befehlwirddekodiert Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 1 0 0 0 Zugriffs-Art Reg.-Puls 4 2 1 X X Clk1 64 ALU-Funktion 8 AF SP ES Add 0 24..31 0 0 00 02 Registerblock: 0xC1 Direktoperand 64 X 1 0 Clk2 2 64 Clk3 Clk4 X-Auswahl ... ... BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben $5 0x55 8 64 64 64 Schreib- Daten $X 0x22 od.? 0x11 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten $Z= 16..23 Adresse $4 0x2000000000000000 0 32 0x02 oder? 64 64 0xC1020204 Lese- Daten $Y $Y 0x22 0x11 Schreiben/ Lesen $X 64 1 64 $3 0x33 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU 0x33 $Z 0 Lese- Daten $Z 0x22 0x20...0 64 8..15 0x02 Daten Lesen $Y Oder $X = ? $X = $Y = 1 Erg ALU Daten- Speicher $2 0x22 0..7 1 Dir Op. 0x0…04 0x02 32 Lesen $Z 0x04 8 64 64 $1 0x11 0 16..23 56 X X X 0x02 0x01 0x01 $0 0x00 8 8 8 8 64
2.Takt Pipeline-Register nachTakt 2: Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: nein Clk 4: nein Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 1 0 0 0 Zugriffs-Art Reg.-Puls 4 2 1 X X Clk1 64 ALU-Funktion 8 AF SP ES Add 0 24..31 0 0 00 02 0xC1 Direktoperand 64 X 1 0 Clk2 2 64 Clk3 Clk4 X-Auswahl ==egal BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x22 od.? 0x11 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 0x02 oder? 64 64 0xC1020204 Lese- Daten $Y $Y 0x22 0x11 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU 0x33 $Z 0 Lese- Daten $Z 0x22 0x20…0 64 8..15 0x02 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 0x0…04 0x02 32 Lesen $Z 0x04 8 64 64 0 16..23 56 X X X 0x02 0x01 0x01 8 8 8 8 64
ja Reg.Schr.: ES 1 X-Auswahl: egal ja Erg.Ausw.: 1 Clk1: Clk2: Clk3: Clk4: nein Übungsskript S.171 unten Sp.Schr.: Reg.Schr.: SP 0 0 nein Zugr.-Art: Erg.Ausw.: egal ALU: Sp.Schr.: Reg.Schr.: AF 0x02 0 0 Dir.Op.: Zugr.-Art: Erg.Ausw.: 0 $X: $X: Lese-Daten: 0x11 oder unbestimmt 0x11 $Y: $Z: Erg.ALU: Erg.ALU: OR $2,$2,4 0x22 Dir.Op.: Opcode: 0xC1020204 0x02 X: X: X: 0x01 ADD $1,$1,$2
3.Takt Inhalte von ADD werden in Register übernommen Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: nein Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 0 0 0 1 0 Zugriffs-Art Reg.-Puls 4 X X 1 Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 00 02 0 0 Direktoperand 2 64 1 0 X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x0…22 oder ? 0x11 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y $Y 0x0…22 0x11 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU 0x33 $Z 0 Lese- Daten $Z 0x20…0 0x22 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 0x0…04 0x02 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x02 0x01 0x01 8 8 8 8 64
3.Takt SP Phase des ADD Befehls Speicher: Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: nein Reg.-Schreiben ES Adresse Inhalt 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben 0x0000000000000000 xxxxxxxx Steuerung SP ES 0 0 0 1 1 Zugriffs-Art Reg.-Puls 4 0x0000000000000001 xxxxxxxx X X 1 1 Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 ... 0 00 02 0 0 Direktoperand 2 64 1 0 X X Clk2 2 0 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x0…22 oder ? 0x11 od.? 0x11 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y $Y 0x0…22 0x11 Adr=0x33 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU 0x33 <0x33> 0x33 0x0000000000000033 $Z 0 Lese- Daten $Z xxxxxxxx 0x20…0 0x22 64 8..15 0x33 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0..7 1 Dir Op. 0xFFFFFFFFFFFFFFFF xxxxxxxx 0x0…04 0x02 32 Lesen $Z Lesedaten=<0x33> 8 64 64 0 16..23 56 X X X 0x02 0x01 0x01 0x01 8 8 8 8 64
3.Takt Inhalte von OR werden in Register übernommen Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: nein Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 0 0 1 Zugriffs-Art Reg.-Puls 4 2 X X 1 Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 00 02 1 0 Direktoperand 64 1 0 1 X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x0…22 oder ? 0x11 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y $Y 0x0…22 0x11 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x33> 0x33 $Z 0 Lese- Daten $Z 0x20…0 0x22 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 1 Dir Op. 0x0…04 0x02 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x02 0x01 0x01 0x01 8 8 8 8 64
3.Takt AF-Phase des OR Befehls Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: nein Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 0 0 1 Zugriffs-Art Reg.-Puls 4 2 X X 1 Clk1 64 ALU-Funktion 8 AF SP ES Add 00 24..31 0 00 1 0 Direktoperand 64 1 1 1 X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x0…22 oder ? 0x0…22 oder ? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y 0x0…22 $Y 0x0…22 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU || <0x33> 0x26 0x33 $Z Lese- Daten $Z 0x20…0 0 0x20…0 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 Dir Op. 1 0x0…04 0x0…04 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x02 0x02 0x01 0x01 8 8 8 8 64
3.Takt SL Befehlwird ins Befehlsregistergeladen Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: nein Reg.-Schreiben ES 1 Ergebnisauswahl 1 Sp.-Schreiben SL $3,$3,5 Opcode: 0x39 03 03 05 Steuerung SP ES 1 0 1 Zugriffs-Art Reg.-Puls 4 2 1 X 1 Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 0 00 0 1 0 Direktoperand 64 1 X 1 X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x22 oder ? 0x22 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse ADD $1,$1,$2 $1=0x33 OR$2,$2,4 $2=0x26 SL$3,$3,5 $3=0x660 STO $1,$4,3 M8[0x20……0]=0x33($1) TRAP 0,Halt,0 0 32 64 64 0x39030305 Lese- Daten $Y 0x22 $Y Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x33> 0x26 0x33 $Z 0 Lese- Daten $Z 0x20…0 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 1 Dir Op. 0x04 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x02 0x02 0x01 0x01 8 8 8 8 64
3.Takt SL Befehlwirddekodiert Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: nein Reg.-Schreiben ES 1 Ergebnisauswahl 1 Sp.-Schreiben 1 1 Steuerung SP ES 0 0 1 1 Zugriffs-Art Reg.-Puls 4 2 X X 1 Clk1 64 1 ALU-Funktion 8 AF SP ES Add 00 24..31 0 04 1 0 0 0x39 Direktoperand 64 1 1 1 X X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x22 oder ? 0x22 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0x03 0x05 0x03 0 0x39 0x03 32 0x03 oder? 64 64 0x39030305 Lese- Daten $Y 0x22 $Y Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x33> 0x26 0x33 $Z 0 Lese- Daten $Z 0x20…0 64 8..15 0x03 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 1 Dir Op. 0x04 0x0…05 32 Lesen $Z 0x05 0x05 8 64 64 0x0…05 0 16..23 56 X X X 0x02 0x03 0x02 0x01 0x01 8 8 8 8 64
3.Takt SL Befehlwirddekodiert Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: nein Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 0 0 1 1 Zugriffs-Art Reg.-Puls 4 2 X X 1 Clk1 64 1 ALU-Funktion 8 AF SP ES Add 00 24..31 0 04 1 0 0 Registerblock: 0x39 Direktoperand 64 1 1 1 X X Clk2 2 64 Clk3 Clk4 X-Auswahl ... ... BZ 32 Registerblock BR $Z= 64 Schreiben Zugriffs- Art Schrei- ben $5 0x55 8 64 64 64 Schreib- Daten $X 0x33 oder? 0x22 oder ? 0x22 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse $4 0x2000000000000000 0 32 0x03 oder? 64 64 0x39030305 Lese- Daten $Y 0x22 $Y 0x33 Schreiben/ Lesen $X 64 Oder $X = ? $X = $Y = 1 64 $3 0x33 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x33> 0x26 0x33 $Z 0 Lese- Daten $Z 0x20…0 0x55 64 8..15 0x03 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 $2 0x22 0..7 1 Dir Op. 0x04 0x0…05 32 Lesen $Z 0x05 8 64 64 $1 0x11 0 16..23 56 X X X 0x02 0x03 0x02 0x01 0x01 $0 0x00 8 8 8 8 64
3.Takt Pipeline-Register nachTakt 3: Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: nein Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 0 0 1 1 Zugriffs-Art Reg.-Puls 4 2 X X 1 Clk1 64 1 ALU-Funktion 8 AF SP ES Add 00 24..31 0 04 1 0 0 0x39 Direktoperand 64 1 1 1 X X Clk2 2 64 Clk3 Clk4 X-Auswahl ==egal BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x33 oder? 0x22 oder ? 0x22 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 0x03 oder? 64 64 0x39030305 Lese- Daten $Y 0x22 $Y 0x33 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x33> 0x26 0x33 $Z 0 Lese- Daten $Z 0x20…0 0x55 64 8..15 0x03 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 1 Dir Op. 0x04 0x0…05 32 Lesen $Z 0x05 8 64 64 0 16..23 56 X X X 0x02 0x03 0x02 0x01 0x01 8 8 8 8 64
ja Reg.Schr.: ES 1 X-Auswahl: egal ja Erg.Ausw.: 1 Clk1: Clk2: Clk3: Clk4: ja Übungsskript S.172 oben Sp.Schr.: Reg.Schr.: SP 0 1 nein Zugr.-Art: Erg.Ausw.: egal 1 ALU: Sp.Schr.: Reg.Schr.: AF 0x00 0 0 Dir.Op.: Zugr.-Art: Erg.Ausw.: 1 egal $X: $X: Lese-Daten: 0x22 oder unbestimmt 0x11 oder unbestimmt 0x22 $Y: $Z: Erg.ALU: Erg.ALU: SL $3,$3,5 0x33 0x20..0 Dir.Op.: Opcode: 0x39030305 0x04 X: X: X: 0x02 0x01 OR $2,$2,4 ADD $1,$1,$2
4.Takt Inhalte von ADD werden in Pipeline-Register 4 übernommen Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: ja Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 0 0 0 1 1 1 Zugriffs-Art Reg.-Puls 4 X X 1 1 Clk1 64 1 ALU-Funktion 8 AF SP ES Add 24..31 0 04 00 1 0 0 0 Direktoperand 2 64 1 1 1 X X X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x0…33 oder ? 0x22 od.? 0x22 od.? 0x11 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y $Y 0x0…33 0x22 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x33> 0x26 0x33 0x33 $Z 0 Lese- Daten $Z 0x0…55 0x20…0 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 1 Dir Op. 0x0…05 0x04 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x03 0x02 0x02 0x01 0x01 0x01 8 8 8 8 64
4.Takt ES Phase von ADD Befehl Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: ja Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 0 0 0 1 1 1 Zugriffs-Art Reg.-Puls 4 X X 1 1 Clk1 64 1 ALU-Funktion 8 AF SP ES Add 24..31 04 00 1 1 0 0 0 Direktoperand 2 64 1 1 1 1 X X X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 64 64 64 Schreib- Daten $X 0x0…33 oder ? 0x22 od.? 0x22 od.? 0x11 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y $Y 0x0…33 0x22 Schreiben/ Lesen $X 64 1 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x33> 0x26 0x33 0x33 $Z 0 Lese- Daten $Z 0x0…33 0x20…0 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 0x33 1 Dir Op. 0x0…05 0x04 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x03 0x02 0x01 0x02 0x01 0x01 0x01 8 8 8 8 64
4.Takt Inhalte von OR werden in Pipeline-Register 3 übernommen Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: ja Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 0 0 1 1 Zugriffs-Art Reg.-Puls 4 X X 1 1 Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 04 00 1 0 0 Direktoperand 2 64 1 1 1 X X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 1 64 64 64 Schreib- Daten $X 0x33 0x0…33 oder ? 0x22 od.? 0x22 od.? 0x11 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y $Y 0x0…33 0x22 Schreiben/ Lesen $X 64 1 0x01 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x33> 0x26 0x33 $Z 0 Lese- Daten $Z 0x0…55 0x20…0 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 1 Dir Op. 0x0…05 0x04 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x03 0x02 0x02 0x01 0x01 8 8 8 8 64
4.Takt SP Phase des OR Befehls Speicher: Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: ja Reg.-Schreiben ES Adresse Inhalt 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben 0x0000000000000000 xxxxxxxx Steuerung SP ES 0 0 1 1 Zugriffs-Art Reg.-Puls 4 0x0000000000000001 xxxxxxxx X X 1 1 Clk1 64 ALU-Funktion 8 AF SP ES Add 24..31 ... 04 00 1 0 0 Direktoperand 2 64 1 1 1 X X Clk2 2 0 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 1 64 64 64 Schreib- Daten $X 0x33 0x0…33 oder ? 0x22 od.? 0x22 od.? 0x22 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adr=0x26 Adresse 0 32 64 64 Lese- Daten $Y $Y 0x0…33 0x22 Schreiben/ Lesen $X 0x0000000000000026 xxxxxxxx 64 1 0x01 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x33> 0x26 <0x26> 0x26 $Z 0 Lese- Daten $Z 0x0…55 0x20…0 64 8..15 0x26 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 1 Dir Op. 0xFFFFFFFFFFFFFFFF xxxxxxxx 0x0…05 0x04 32 Lesen $Z Lesedaten=<0x26> 8 64 64 0 16..23 56 X X X 0x03 0x02 0x02 0x01 0x02 8 8 8 8 64
4.Takt Inhalte von SL werden in Pipeline-Register 2 übernommen Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: ja Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 0 0 1 Zugriffs-Art Reg.-Puls 4 2 X X Clk1 64 1 ALU-Funktion 8 AF SP ES Add 24..31 04 00 1 0 Direktoperand 64 1 1 1 X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 1 64 64 64 Schreib- Daten $X 0x33 0x0…33 oder ? 0x22 od.? 0x22 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y $Y 0x0…33 0x22 Schreiben/ Lesen $X 64 1 0x01 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x26> <0x33> 0x26 $Z 0 Lese- Daten $Z 0x20…05 0x20…0 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 0x26 1 Dir Op. 0x0…05 0x04 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x03 0x02 0x02 0x02 0x01 8 8 8 8 64
4.Takt AF-Phase des SL Befehls Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: ja Reg.-Schreiben ES 1 1 Ergebnisauswahl 1 1 Sp.-Schreiben Steuerung SP ES 0 0 1 Zugriffs-Art Reg.-Puls 4 2 X X Clk1 64 1 ALU-Funktion 8 AF SP ES Add 24..31 04 04 1 0 Direktoperand 64 1 1 1 X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 1 64 64 64 Schreib- Daten $X 0x33 0x0…33 oder ? 0x0…33 Oder ? 0x22 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 32 64 64 Lese- Daten $Y 0x0…33 $Y 0x0…33 Schreiben/ Lesen $X 64 1 0x01 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU << <0x26> <0x33> 0x26 0x660 $Z Lese- Daten $Z 0x0…55 0 0x0…55 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 0x26 Dir Op. 1 0x0…05 0x0…05 32 Lesen $Z 8 64 64 0 16..23 56 X X X X 0x03 0x03 0x02 0x02 0x01 8 8 8 8 64
4.Takt STO Befehlwird ins Befehlsregistergeladen Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: ja Reg.-Schreiben ES 1 Ergebnisauswahl 1 Sp.-Schreiben STO $1,$4,3 Opcode: 0xAD 01 04 03 Steuerung SP ES 0 1 Zugriffs-Art Reg.-Puls 4 2 X Clk1 64 1 ALU-Funktion 8 AF SP ES Add 24..31 04 1 0 Direktoperand 64 1 1 X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 1 64 64 64 Schreib- Daten $X 0x33 0x33 oder? 0x33 oder? 0x22 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse ADD $1,$1,$2 $1=0x33 OR$2,$2,4 $2=0x26 SL $3,$3,5 $3=0x660 STO $1,$4,3 M8[0x20……0]=0x33($1) TRAP 0,Halt,0 0 32 64 64 0xAD010403 Lese- Daten $Y $Y 0x33 Schreiben/ Lesen $X 64 1 0x01 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x26> <0x33> 0x660 0x26 $Z 0 Lese- Daten $Z 0x55 64 8..15 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 0x26 1 Dir Op. 0x05 32 Lesen $Z 8 64 64 0 16..23 56 X X X 0x03 0x03 0x02 0x02 0x01 8 8 8 8 64
4.Takt STO Befehlwirddekodiert Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: ja Reg.-Schreiben ES 1 Ergebnisauswahl 1 Sp.-Schreiben 0 • X Steuerung SP ES 1 0 1 Zugriffs-Art Reg.-Puls 4 2 X STO Clk1 64 1 ALU-Funktion 8 AF SP ES Add 1 24..31 02 04 1 0 0xAD Direktoperand 64 1 1 1 1 X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 1 64 64 64 Schreib- Daten $X 0x33 0x33 oder? 0x33 oder? 0x22 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0x01 0x03 0x01 0 0xAD 0x04 32 0x01 Oder 0x01 64 64 0xAD010403 Lese- Daten $Y $Y 0x33 Schreiben/ Lesen $X 64 1 0x01 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x26> <0x33> 0x660 0x26 $Z 0 Lese- Daten $Z 0x55 64 8..15 0x04 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 0x26 1 Dir Op. 0x0…03 0x05 32 Lesen $Z 0x03 0x03 8 64 64 0x0…03 0 16..23 56 X X X 0x01 0x03 0x03 0x02 0x02 0x01 8 8 8 8 64
4.Takt Pipeline-Register nachTakt 4: Sp.-Puls Clk 1: ja Clk 2: ja Clk 3: ja Clk 4: ja Reg.-Schreiben ES 0 1 Ergebnisauswahl X 1 Sp.-Schreiben Steuerung SP ES 1 0 1 Zugriffs-Art Reg.-Puls 4 2 X STO Clk1 64 1 ALU-Funktion 8 AF SP ES Add 1 24..31 02 04 1 0 Direktoperand 64 1 1 1 1 X Clk2 2 64 Clk3 Clk4 X-Auswahl BZ 32 Registerblock BR 64 Schreiben Zugriffs- Art Schrei- ben 8 1 64 64 64 Schreib- Daten $X 0x33 0x33 oder? 0x33 oder? 0x22 od.? Befehls- Speicher Lese- Daten $X $X $X Schreib- Daten 16..23 Adresse 0 0x01 32 0x01 Oder 0x01 64 64 0xAD010403 Lese- Daten $Y $Y 0x33 Schreiben/ Lesen $X 64 1 0x01 64 Erg ALU Adr. Lese- Daten 0 Lese Dat. ALU <0x26> <0x33> 0x660 0x26 $Z 0 Lese- Daten $Z 0x55 64 8..15 0x04 Daten Lesen $Y 1 Erg ALU Daten- Speicher 0x33 0..7 0x26 1 Dir Op. 0x0…03 0x05 32 Lesen $Z 0x03 8 64 64 0 16..23 56 X X X 0x01 0x03 0x03 0x02 0x02 0x01 8 8 8 8 64
ja Reg.Schr.: ES 1 X-Auswahl: egal ja Erg.Ausw.: 1 Clk1: Clk2: Clk3: Clk4: ja Übungsskript S.172 unten Sp.Schr.: Reg.Schr.: SP 0 1 ja Zugr.-Art: Erg.Ausw.: egal 1 ALU: Sp.Schr.: Reg.Schr.: AF 0x04 0 1 Dir.Op.: Zugr.-Art: Erg.Ausw.: 1 egal 1 $X: $X: Lese-Daten: 0x33 oder unbestimmt 0x22 oder unbestimmt <0x33> 0x33 $Y: $Z: Erg.ALU: Erg.ALU: STO $1,$4,3 0x26 0x55 0x33 Dir.Op.: • Opcode: • 0xAD010403 0x05 X: X: X: 0x03 0x02 0x01 SL $3,$3,5 OR $2,$2,4 ADD $1,$1,$2