Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdLieven Boender Laatst gewijzigd meer dan 10 jaar geleden
1
1Ben Bruidegom 1 Hoe werkt een “loopje” nu precies? Recapitulatie rekenmachines week 1 Van rekenmachine naar rekenmachine met “loopjes”
2
2Ben Bruidegom 2 Recapitulatie rekenmachines Vier hoofdcomponenten en hun samenhang
3
3Ben Bruidegom 3 Rekenmachine II
4
4Ben Bruidegom 4 Instructieset Rekenkundige en logische instructies ADD SUB AND Immediate instructies (Instructies met één constant getal) LOADI ADDI SUBI ANDI Datatransfer COPY
5
5Ben Bruidegom 5 Instructieset van Rekenmachine II InstructieBetekenisVoorbeeldBetekenis ADD rd, rs, rtOptellen registersADD $5, $6, $7r5 r6 + r7 SUB rd, rs, rtAftrekken registersSUB $5, $6, $7r5 r6 - r7 AND rd, rs, rtBitwise AND registersAND $5, $6, $7r5 r6 & r7 COPY rd, rtCopy registerCOPY $3, $2r3 r2 ADDI rd, rs, immOptellen register en constanteADDI $5, $6, 0x1234r5 r6 + 0x1234 SUBI rd, rs, immAftrekken register en constanteSUBI $7, $6, 0x1234r7 r6 - 0x1234 ANDI rd, rs, immBitwise AND register en const.ANDI $5, $6, 0d34r5 r6 & 0d34 LOADI rd, immLaad getal in registerLOAD $1, 0x 0020r1 0x0020
6
6Ben Bruidegom 6 Hoe werkt een “loopje” nu precies? Recapitulatie rekenmachine Van rekenmachine naar rekenmachine met “loopjes”
7
7Ben Bruidegom 7 Uitbreiding instructieset met Branch- instructies: Rekenkundige en logische instructies ADD SUB AND COPY Immediate instructies (Instucties met één constant getal) ADDI SUBI ANDI LOADI Branch instucties BZ (Branch if zero) BEQ (Branch if equal) BRA (Branch always)
8
8Ben Bruidegom 8 Voorwaarden Branch-instructie Een sprong in een programma wordt alleen uitgevoerd als: - er een Branch-instructie geprogrammeerd is én - de Zero-uitgang van de ALU 1 is.
9
9Ben Bruidegom 9 Uitbreiding hardware Componenten die de voorwaarden scheppen om een sprong mogelijk te maken. Dit zijn: een Branch-bit; een extra ALU-uitgang; (zero flag) een AND-poort; een LoadPC-ingang zodat de PC naar een andere waarde kan gaan de volgende; een extra Adder om het adres te berekenen waar de PC naar toe moet springen.
10
10Ben Bruidegom 10 ALU met Zero-flag A B 11 Z Y(y 15, y 14,….,y 0 )
11
11Ben Bruidegom 11 Wanneer wordt een branch-instructie uitgevoerd? Evaluatie conditie (zero)
12
12Ben Bruidegom 12 Wanneer wordt een branch-instructie uitgevoerd? Evaluatie conditie (zero) Er gelden twee voorwaarden: Branch-instructie Zero-flag is 1 (ALU-resultaat is 0) De uitgang van de AND-poort wordt dan 1 en deze stuurt LoadPC
13
13Ben Bruidegom 13 Naar welke instructie springt de PC? Huidige waarde PC is 5; FFFD = -3; 3 instructies terug; Nieuwe waarde PC wordt 2
14
14Ben Bruidegom 14 Naar welke instructie springt de PC? Syntax : BEQ rs, rt, label Voorbeeld: BEQ $7, $5, label Betekenis: if (inhoud register 7 = inhoud register 5) goto label Welke operatie moet de ALU uitvoeren?
15
15Ben Bruidegom 15 Waarom is er een RegWrite-lijn nodig?
16
16Ben Bruidegom 16 Wanneer wordt er gesprongen? Clock ALU Zero Branch LoadPC Voorwaarden sprong: Branch = 1 Zero = 1 Opgaande klokflank tijd
17
17Ben Bruidegom 17 Wanneer wordt er gesprongen? Clock ALU Zero Branch LoadPC Voorwaarden sprong: Branch = 1 Zero = 1 Opgaande klokflank tijd
18
18Ben Bruidegom 18 Spikes & glitches Clock ALU Zero Branch LoadPC spike glitch tijd
19
19Ben Bruidegom 19 Toelichting opdracht 8 Vermenigvuldigen op de basisschool Multiplicand a 1210 Multiplier b 1301 1210 0000 3630 1210 Product 1574210
20
20Ben Bruidegom 20 Vermenigvuldigen binair Multiplicand a 1010 Multiplier b 1101 1010 0000 1010 Product 10000010
21
21Ben Bruidegom 21 Multiplicand a 1010 Multiplier b 1101 1010 0000 01010 1010 110010 1010 Product 10000010 Vermenigvuldigen binair
22
22Ben Bruidegom 22 Multiplicand a 1010 Multiplier b 1101 1010 110010 1010 Product 10000010 Vermenigvuldigen binair
23
23Ben Bruidegom 23 Multiplicand a 1010 Multiplier b 1101 1010 110010 1010 Product 10000010 Vermenigvuldigen
24
24Ben Bruidegom 24 Multiplicand a 1010 Multiplier b 1101 1010 110010 1010 Product 10000010 Shifting & Masking b1101result0000 mask0001a1010 b AND mask0001ADD(a, result)1010
25
25Ben Bruidegom 25 Multiplicand a 1010 Multiplier b 1101 1010 110010 1010 Product 10000010 Shifting & Masking b1101result1010 mask0010a10100 b AND mask0000No ADD ADD mask, mask, mask = Shl 1, mask ADD a, a, a = Shl 1, a
26
26Ben Bruidegom 26 Multiplicand a 1010 Multiplier b 1101 1010 110010 1010 Product 10000010 Shifting & Masking b1101result1010 mask0100a101000 b AND mask0100ADD(a, result)110010
27
27Ben Bruidegom 27 Multiplicand a 1010 Multiplier b 1101 1010 110010 1010 Product 10000010 Shifting & Masking b1101result110010 mask1000a1010000 b AND mask1000ADD(a, result)10000010
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.