De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

1Ben Bruidegom 1 Hoe werkt een “loopje” nu precies? Recapitulatie rekenmachines week 1 Van rekenmachine naar rekenmachine met “loopjes”

Verwante presentaties


Presentatie over: "1Ben Bruidegom 1 Hoe werkt een “loopje” nu precies? Recapitulatie rekenmachines week 1 Van rekenmachine naar rekenmachine met “loopjes”"— Transcript van de presentatie:

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 11 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


Download ppt "1Ben Bruidegom 1 Hoe werkt een “loopje” nu precies? Recapitulatie rekenmachines week 1 Van rekenmachine naar rekenmachine met “loopjes”"

Verwante presentaties


Ads door Google