Presentation laddar. Vänta.

Presentation laddar. Vänta.

Digital och Datorteknik – EDA451 2009/2010 1 Mikroprogrammering EDA 451 - Digital och Datorteknik 2009/2010 Mikroprogrammering Arbetsboken, avsnitt 28.

Liknande presentationer


En presentation över ämnet: "Digital och Datorteknik – EDA451 2009/2010 1 Mikroprogrammering EDA 451 - Digital och Datorteknik 2009/2010 Mikroprogrammering Arbetsboken, avsnitt 28."— Presentationens avskrift:

1 Digital och Datorteknik – EDA451 2009/2010 1 Mikroprogrammering EDA 451 - Digital och Datorteknik 2009/2010 Mikroprogrammering Arbetsboken, avsnitt 28 Ur innehållet: Mikroprogrammerad styrenhet Mikrominne Mikro-PC

2 Digital och Datorteknik – EDA451 2009/2010  Maurice Wilkes (1953) föreslog ”modern” mikroprogrammering. Avsaknad av tillräckligt snabba minnen gjorde att ideerna var före sin tid.  Wilkes, EDSAC 2 (1958) mikroprogrammerad styrenhet med kärnminnen (ROM).  IBM/360 (1964) första kommersiella mikroprogrammerade familjen av datorer.  Mikroprogrammerad mikroprocessor, MC68000, 1979 Mikroprogrammering 2

3 Digital och Datorteknik – EDA451 2009/2010 Generell styrenhet, fast kopplad logik 3 Mikroprogrammering Instruktionsregister avkodare kombinatoriskt nät tillstånds- generering (sekvens- nät) Flaggor (från ALU) Styrsignaler till dataväg Klocka QmQm Q2Q2 Q1Q1 C1C1 C2C2 CpCp InIn I1I1 I2I2 FETCH EXECUTE RESET n st. unika instruktioner (operationskoder) p st. styrsignaler m st. unika tillstånd

4 Digital och Datorteknik – EDA451 2009/2010 Generell styrenhet, mikroprogrammerad logik 4 Mikroprogrammering FETCH EXECUTE RESET Instruktionsregister Icke-flyktigt minne (ROM) tillstånds- generering (sekvens- nät) Klocka C1C1 C2C2 CpCp Flaggor (från ALU) Styrsignaler till dataväg (minnesord i mikrominnet) ”mikrominne” ”insignaler” bildar tillsammans unik adress

5 Digital och Datorteknik – EDA451 2009/2010 Fast kopplad/mikroprogrammerad logik 5 Mikroprogrammering Fast kopplad logik (Hardwired Control Unit) OP-kod (i 7 - i 0) LD A LD B LD R OE A OE B OE R f0f0 f1f1 f2f2 f3f3 g0g0 g1g1 g2g2 IncPC DecS IncS MR MW Styrenhet Styr- signaler till data- vägen (30 st) CP Reset Flaggor (4) (N, Z, V, C) Sekvensnät/ kombinatorik insignaler utsignaler Mikroprogrammerad logik (Microprogrammed Control Unit) ”Read Only” mikrominne adress data

6 Digital och Datorteknik – EDA451 2009/2010 ”Mikrominnet” 6 Mikroprogrammering ”Read Only” mikrominne adress data Signaler från datavägen Styrsignaler till datavägen b 30 LD A Styrsignaler till datavägen (30+1 st) Adr i-1 Adr i Adr i+1 OP-kod (i 7 - i 0) LD A LD B LD R OE A OE B OE R f0f0 f1f1 f2f2 f3f3 g0g0 g1g1 g2g2 IncPC DecS IncS MR MW Styrenhet Styr- signaler till data- vägen (30 st) CP Reset Flaggor (4) (N, Z, V, C) LD B LD R NF MW MR b0b0

7 Digital och Datorteknik – EDA451 2009/2010 Princip för användning av mikrominnet 7 Mikroprogrammering Ord i mikrominnet, Styrsignaler till datavägen (30+1 st) Adress i mikrominnet

8 Digital och Datorteknik – EDA451 2009/2010 ● Max 256 instruktioner ● Antag 5 klockcykler per instruktion (5 uppsättningar styrsignaler)  Dvs totalt ca 1300 uppsättningar av styrsignaler, dvs 1300 tillstånd ● Ett minne med 1300 ord och där varje ord innehåller 31 bitar borde räcka Hur stort blir mikrominnet? 8 Mikroprogrammering IncS CP (OP-kod) i 7 - i 0 Flaggor (4) LD A LD B LD R OE A OE B OE R f0f0 f1f1 f2f2 f3f3 g0g0 g1g1 g2g2 IncPC DecS MR MW PROM 2 17 st = 128k 32-bitars ord Styr- signaler till data- vägen (30 st) q0q0 q1q1 q2q2 q3q3 NF Adress (17) Utnyttjandegrad: 1300/128×1024 ≈ 0,01 = 1%

9 Digital och Datorteknik – EDA451 2009/2010 9 Mikroprogrammering Vi kan öka utnyttjandegraden genom att minska antalet adressledningar till mikrominnet K= k 4 k 3 k 2 k 1 k 0 GK/ GK’GKGK 0/1 00000 / 1G 0 = 0 0/1 0001C / C’G 1 = C 0/1 0010V / V’G 2 = V 0/1 0011Z / Z’G 3 = Z 0/1 0100N / N’G 4 = N 0/1 01010 / 1G 5 = 0 0/1 0110? / ?’G 6 = ? 0/1 01110 / 1G 7 = 0 0/1 10000 / 1G 8 = 0 0/1 1001C+Z / (C+Z)’ G 9 = C+Z 0/1 1010 N  V / (N  V)’ G A = N  V 0/1 1011 Z+(N  V) / [Z+(N  V)]’ G B = Z+(N  V) 0/1 11000 / 1G C = 0 0/1 11010 / 1G D = 0 0/1 11100 / 1G E = 0 0/1 11111 / 0G F = 1 Utnyttjandegrad: 1300/16×1024 ≈ 0,08 = 8%

10 Digital och Datorteknik – EDA451 2009/2010 Mikrominnet i FLEX 10 Mikroprogrammering Styrord till datavägen (32 bitar)Nästa styrminnesadress (11 bitar)Villkorskod (5 bitar) Minnets storlek ALLTID heltalspotens av 2 och: 2 10 =1024 <1300 < 2 11 = 2048 Ord i mikrominnet, styrord: Adressområde: 000 – 7FF

11 Digital och Datorteknik – EDA451 2009/2010 Exempel 1 på organisation av mikrominnet 11 Mikroprogrammering mikroinstruktion Instruktionens OP- kod används för att addressera ett block av mikroinstruktioner. Den längsta instruktionen blir dimensionerande för alla exekverings- sekvenser. Enkel mekanism för ”micro-PC”

12 Digital och Datorteknik – EDA451 2009/2010 12 Mikroprogrammering Exempel 2 på organisation av mikrominnet mikroinstruktion Instruktionens OP- kod används för att addressera instruktionens första mikroinstruktion. Flödeskontroll av ”micro-PC”

13 Digital och Datorteknik – EDA451 2009/2010 Organisation/Adressering av mikrominnet i FLEX 13 Mikroprogrammering CP LD  PC Inc  PC Mikroprogram- räknare,  PC Styrminne Adress till styrminnet (11) Styrsignaler till datavägen Eventuell hoppadress Villkorskod Till datavägen Ev. hoppadress till styrminnet (11) Villkor G K (Data in) MUXMUX 0 2 3 15 0 1 C V Z 1 N 4 492H 000H Adress Styrminnesinnehåll 100H 0FFH 108H Första mikroinstruktionen ur respektive "EXECUTE"-sekvens "RESET"-sekvensen "FETCH"-sekvensen Påföljande mikroinstruktioner ur respektive "EXECUTE "-sekvens 110H 7FFH Oanvänt utrymme Organisation av mikrominnet i FLEX

14 Digital och Datorteknik – EDA451 2009/2010 14 Mikroprogrammering Mikroinstruktionens uppbyggnad Grupper med ömsesidigt uteslutande styrsignaler kan kodas i fält för att spara utrymme i mikrominnet.

15 Digital och Datorteknik – EDA451 2009/2010 EXEMPEL, kodning i fält 15 Mikroprogrammering

16 Digital och Datorteknik – EDA451 2009/2010 ”Minimal” (ingen) kodning i fält 16 Mikroprogrammering Styrordets (mikroinstruktionens) bredd adressbitar styrsignaler Antal mikroinstruktioner

17 Digital och Datorteknik – EDA451 2009/2010 ”Maximal” (alla styrsignaler) kodning i fält 17 Mikroprogrammering Antal styrsignalkombinationer är H n adressbitar styrsignaler Antal mikroinstruktioner

18 Digital och Datorteknik – EDA451 2009/2010 FLEX med mikroprogrammerad styrenhet 18 Mikroprogrammering Styrminne 2k * 48 bitar Styrminnes- adress (11 bitar) Styrsignaler till datavägen (30 st) ”New Execute” (Används internt i styrenheten) NE 000 I(8) Resetadress till styrminnet (100H) CP LD  PC Inc  P  PC MUXMUX Villkor, GK/ GK’ MUX 11 Reset 1D1D CP NE C1C1 MUX Reset  01 0 1 Styrminnesadress Nästa styrminnes- adress (11 bitar) Villkors- nummer (5 bitar) 492H 000H Adress Styrminnesinnehåll 100H 0FFH 108H Första mikroinstruktionen ur respektive "EXECUTE"-sekvens "RESET"-sekvensen "FETCH"-sekvensen Påföljande mikroinstruktioner ur respektive "EXECUTE "-sekvens 110H 7FFH Oanvänt utrymme K= k 4 k 3 k 2 k 1 k 0 GK/ GK’GKGK 0/1 00000 / 1G 0 = 0 0/1 0001C / C’G 1 = C 0/1 0010V / V’G 2 = V 0/1 0011Z / Z’G 3 = Z 0/1 0100N / N’G 4 = N 0/1 01010 / 1G 5 = 0 0/1 0110? / ?’G 6 = ? 0/1 01110 / 1G 7 = 0 0/1 10000 / 1G 8 = 0 0/1 1001C+Z / (C+Z)’ G 9 = C+Z 0/1 1010 N  V / (N  V)’ G A = N  V 0/1 1011 Z+(N  V) / [Z+(N  V)]’ G B = Z+(N  V) 0/1 11000 / 1G C = 0 0/1 11010 / 1G D = 0 0/1 11100 / 1G E = 0 0/1 11111 / 0G F = 1 Reset = 1 Reset = 0, NE=0, GK = 1 Reset = 0, NE=0, GK = 0 Reset = 0 NE=1

19 Digital och Datorteknik – EDA451 2009/2010 DigiFlex 19 Mikroprogrammering 492H 000H Adress Styrminnesinnehåll 100H 0FFH 108H Första mikroinstruktionen ur respektive "EXECUTE"-sekvens "RESET"-sekvensen "FETCH"-sekvensen Påföljande mikroinstruktioner ur respektive "EXECUTE "-sekvens 110H 7FFH Oanvänt utrymme K= k 4 k 3 k 2 k 1 k 0 GK/ GK’GKGK 0/1 00000 / 1G 0 = 0 0/1 0001C / C’G 1 = C 0/1 0010V / V’G 2 = V 0/1 0011Z / Z’G 3 = Z 0/1 0100N / N’G 4 = N 0/1 01010 / 1G 5 = 0 0/1 0110? / ?’G 6 = ? 0/1 01110 / 1G 7 = 0 0/1 10000 / 1G 8 = 0 0/1 1001C+Z / (C+Z)’ G 9 = C+Z 0/1 1010 N  V / (N  V)’ G A = N  V 0/1 1011 Z+(N  V) / [Z+(N  V)]’ G B = Z+(N  V) 0/1 11000 / 1G C = 0 0/1 11010 / 1G D = 0 0/1 11100 / 1G E = 0 0/1 11111 / 0G F = 1

20 Digital och Datorteknik – EDA451 2009/2010 FLEX - RESET 20 Mikroprogrammering TillståndSummatermRTN-beskrivningStyrsignaler (=1) Q0Q0 Q0Q0 FF 16 →Rf 3, f 2, f 1, f 0, LD R Q1Q1 Q1Q1 R→MAOE R, LD MA Q2Q2 Q2Q2 M→PCMR, LD PC Med fast kopplad logik Med mikroprogrammerad logik Sekvens Adress (Hex) Hopp villkor G K Hopp adress (Hex) Styrsignaler (aktiva) RESET100G 0 =0f 3, f 2, f 1, f 0, LD R 101G 0 =0OE R, LD ’MA 102G F =1108 MR, LD ’PC NF

21 Digital och Datorteknik – EDA451 2009/2010 21 Mikroprogrammering Sekvens Adress (Hex) Hopp villkor G K Hopp adress (Hex) Styrsignaler (aktiva) RESET100G 0 =0f 3, f 2, f 1, f 0, LD R 101G 0 =0OE R, LD ’MA 102G F =1108 MR, LD ’PC NF

22 Digital och Datorteknik – EDA451 2009/2010 Sekvens Adress (Hex) Hopp villkor G K Hopp adress (Hex) Styrsignaler (aktiva) FETCH108G 0 =0OE PC, LD MA, IncPC 109G 0 =0LD I, MR, NE FLEX - FETCH 22 Mikroprogrammering TillståndSummatermRTN-beskrivningStyrsignaler (=1) Q3Q3 Q3Q3 PC→MA, PC+1→PCOE PC, LD MA, IncPC Q4Q4 Q4Q4 M→IM→IMR, LD I Med fast kopplad logik Med mikroprogrammerad logik

23 Digital och Datorteknik – EDA451 2009/2010 23 Mikroprogrammering Sekvens Adress (Hex) Hopp villkor G K Hopp adress (Hex) Styrsignaler (aktiva) FETCH108G 0 =0LD MA, IncPC, 109G 0 =0LD I, MR, NE

24 Digital och Datorteknik – EDA451 2009/2010 EXEMPEL – ”MOVB #data,Adr” 24 Mikroprogrammering Första lediga mikrominnesadress: 49A: Instruktionsformat (3 bytes): F0dataAdr Sätt upp adress för ”data” Läs”data” till T(emp)-register Sätt upp adress till ”Adr” Sätt upp för skrivning, ”Adr” -> MA Skriv data i minnet Instruktion (Mnemonic) MOVB #data,Adr Instruktionsformat Allokering i mikrominne 49A-49D F0dataAdr AdressTransfer- villkor G K Transfer- adress Aktiva styrsignalerRTN-beskrivning D0G 0 ’=149AOE PC, LD MA PC→MA 49AG 0 =0IncPC, LD T, MRM→T, PC+1→PC 49BG 0 =0OE PC, LD MA, LD R, f 1 PC→MA, T→R 49CG 0 =0LD MA, MR, IncPCM[MA]→MA,PC+1→PC 49DG 0 ’=1108OE R, MWR → M[MA]

25 Digital och Datorteknik – EDA451 2009/2010 25 Mikroprogrammering Instruktion (Mnemonic) MOVB #data,Adr Instruktionsformat Allokering i mikrominne 49A-49D F0dataAdr AdressTransfer- villkor G K Transfer- adress Aktiva styrsignalerRTN-beskrivning D0G 0 ’=149AOE PC, LD MA PC→MA 49AG 0 =0IncPC, LD T, MRM→T, PC+1→PC 49BG 0 =0OE PC, LD MA, LD R, f 1 49CG 0 =0LD MA, MR, IncPC 49DG 0 ’=1108OE R, MW

26 Digital och Datorteknik – EDA451 2009/2010 26 Mikroprogrammering EXECUTE – ”BNE ” TillståndRTN-beskrivningStyrsignaler ii PC→MA, PC→TOE PC, LD MA, LD T.  i+1 M+T+1→R, PC+1→PCMR, f 3, f 1, g 0, LD R, IncPC.  i+2 If (Z=0) : R→PC;OE R, LD PC =Z’, NF.  i+2 33 Z 1 CP OE R,LD PC MR, f 3, f 1, g 0, LD R, IncPC ii OE PC, LD MA, LD T  i+1 CP Med mikroprogrammerad logik Med fast kopplad logik K= k 4 k 3 k 2 k 1 k 0 GK/ GK’GKGK 0/1 00000 / 1G 0 = 0 0/1 0001C / C’G 1 = C 0/1 0010V / V’G 2 = V 0/1 0011Z / Z’G 3 = Z 0/1 0100N / N’G 4 = N 0/1 01010 / 1G 5 = 0 0/1 0110? / ?’G 6 = ? 0/1 01110 / 1G 7 = 0 0/1 10000 / 1G 8 = 0 0/1 1001C+Z / (C+Z)’ G 9 = C+Z 0/1 1010 N  V / (N  V)’ G A = N  V 0/1 1011 Z+(N  V) / [Z+(N  V)]’ G B = Z+(N  V) 0/1 11000 / 1G C = 0 0/1 11010 / 1G D = 0 0/1 11100 / 1G E = 0 0/1 11111 / 0G F = 1 Instruktion (Mnemonic) BNE,rel8 Instruktionsformat Allokering i mikrominne 29B-29D 5Frel8 AdressTransfer- villkor G K Transfer- adress Aktiva styrsignalerRTN-beskrivning 05FG F =129BOE PC, LD MA, LD T PC→MA, PC→T 29BG 3 ’=Z’29DMR,f 3,f,g 0,LD R,IncPCM+T+1→R, PC+1→PC 29CG F =1108 29DG F =1108OE R, LD PC R→PC;

27 Digital och Datorteknik – EDA451 2009/2010 EXECUTE – ”DBEQ A, ” 27 Mikroprogrammering DBEQDecrement register and branch on equal Instruktion:DBEQ A,Adr RTN:A-1  A; if A = 0:PC+Offset  PC Flaggor:N: Ettställs om resultatets teckenbit (bit 7) får värdet 1. Z: Ettställs om samtliga åtta bitar i resultatet blir noll. V: Ettställs om 2-komplementoverflow uppstår. C: Ettställs om borrow uppstår. Beskrivning:Minskar innehållet i register A med 1. Testar därefter innehållet i register A. Om A=0 utförs ett hopp till adressen Adr = PC+Offset. Offset räknas från adressen efter branchinstruktionen, dvs vid uträkningen av hoppadressen pekar PC på operationskoden direkt efter branchinstruktionen i minnet. Om A≠0 utförs inget hopp. Nästa instruktion blir i så fall den direkt efter branchinstruktionen i minnet. Man vill införa en ny instruktion i FLEX-datorn: Visa hur instruktionen kan implementeras hos en FLEX med mikroprogrammerad styrenhet. Svara genom att komplettera följande tabell:

28 Digital och Datorteknik – EDA451 2009/2010 Mikroprogram för FLEX 28 Mikroprogrammering Instruktion (Mnemonic) DBEQ A,rel8 Instruktionsformat Allokering i mikrominne 4B0-4BF F1rel8 AdressTransfer- villkor G K Transfer- adress Aktiva styrsignalerRTN-beskrivning

29 Digital och Datorteknik – EDA451 2009/2010 29 Mikroprogrammering Instruktion (Mnemonic) DBEQ A,rel8 Instruktionsformat Allokering i mikrominne 4B0-4BF F1rel8 AdressTransfer- villkor G K Transfer- adress Aktiva styrsignalerRTN-beskrivning F1G 0 ’=14B0LD CC,LD R,OE A, f 3,f 0 A-1→R, Flags→CC 4B0G 0 =0LD A,OE R R→A Vi inser att instruktionen kan sättas samman av DECA och BEQ DECA

30 Digital och Datorteknik – EDA451 2009/2010 30 Mikroprogrammering Instruktion (Mnemonic) DBEQ A,rel8 Instruktionsformat Allokering i mikrominne 4B0-4BF F1rel8 AdressTransfer- villkor G K Transfer- adress Aktiva styrsignalerRTN-beskrivning F1G 0 ’=14B0LD CC,LD R,OE A, f 3,f 0 A-1→R, Flags→CC 4B0G 0 =0LD A,OE R R→A 4B1G 0 =0LD MA,OE PC,LD T PC→MA, PC→T 4B2G 3 =Z4B4 MR,f 3,f 1,g 0,LD R IncPC M+T+1→R PC+1→PC Adress- beräkning och flaggtest

31 Digital och Datorteknik – EDA451 2009/2010 31 Mikroprogrammering Instruktion (Mnemonic) DBEQ A,rel8 Instruktionsformat Allokering i mikrominne 4B0-4BF F1rel8 AdressTransfer- villkor G K Transfer- adress Aktiva styrsignalerRTN-beskrivning F1G 0 ’=14B0LD CC,LD R,OE A, f 3,f 0 A-1→R, Flags→CC 4B0G 0 =0LD A,OE R R→A 4B1G 0 =0LD MA,OE PC,LD T PC→MA, PC→T 4B2G 3 =Z4B4 MR,f 3,f 1,g 0,LD R IncPC M+T+1→R PC+1→PC 4B3G 0 ’=1108 4B4G 0 ’=1108OE R,LD PC R→PC Utförs om: Z=0 Z=1


Ladda ner ppt "Digital och Datorteknik – EDA451 2009/2010 1 Mikroprogrammering EDA 451 - Digital och Datorteknik 2009/2010 Mikroprogrammering Arbetsboken, avsnitt 28."

Liknande presentationer


Google-annonser