Digital och Datorteknik – EDA / Mikroprogrammering EDA Digital och Datorteknik 2009/2010 Mikroprogrammering Arbetsboken, avsnitt 28 Ur innehållet: Mikroprogrammerad styrenhet Mikrominne Mikro-PC
Digital och Datorteknik – EDA /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
Digital och Datorteknik – EDA /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
Digital och Datorteknik – EDA /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
Digital och Datorteknik – EDA /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
Digital och Datorteknik – EDA /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
Digital och Datorteknik – EDA /2010 Princip för användning av mikrominnet 7 Mikroprogrammering Ord i mikrominnet, Styrsignaler till datavägen (30+1 st) Adress i mikrominnet
Digital och Datorteknik – EDA /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%
Digital och Datorteknik – EDA / 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/ / 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/ / 1G 5 = 0 0/1 0110? / ?’G 6 = ? 0/ / 1G 7 = 0 0/ / 1G 8 = 0 0/1 1001C+Z / (C+Z)’ G 9 = C+Z 0/ N V / (N V)’ G A = N V 0/ Z+(N V) / [Z+(N V)]’ G B = Z+(N V) 0/ / 1G C = 0 0/ / 1G D = 0 0/ / 1G E = 0 0/ / 0G F = 1 Utnyttjandegrad: 1300/16×1024 ≈ 0,08 = 8%
Digital och Datorteknik – EDA /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
Digital och Datorteknik – EDA /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”
Digital och Datorteknik – EDA / 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”
Digital och Datorteknik – EDA /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 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
Digital och Datorteknik – EDA / Mikroprogrammering Mikroinstruktionens uppbyggnad Grupper med ömsesidigt uteslutande styrsignaler kan kodas i fält för att spara utrymme i mikrominnet.
Digital och Datorteknik – EDA /2010 EXEMPEL, kodning i fält 15 Mikroprogrammering
Digital och Datorteknik – EDA /2010 ”Minimal” (ingen) kodning i fält 16 Mikroprogrammering Styrordets (mikroinstruktionens) bredd adressbitar styrsignaler Antal mikroinstruktioner
Digital och Datorteknik – EDA /2010 ”Maximal” (alla styrsignaler) kodning i fält 17 Mikroprogrammering Antal styrsignalkombinationer är H n adressbitar styrsignaler Antal mikroinstruktioner
Digital och Datorteknik – EDA /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 11 Reset 1D1D CP NE C1C1 MUX Reset 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/ / 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/ / 1G 5 = 0 0/1 0110? / ?’G 6 = ? 0/ / 1G 7 = 0 0/ / 1G 8 = 0 0/1 1001C+Z / (C+Z)’ G 9 = C+Z 0/ N V / (N V)’ G A = N V 0/ Z+(N V) / [Z+(N V)]’ G B = Z+(N V) 0/ / 1G C = 0 0/ / 1G D = 0 0/ / 1G E = 0 0/ / 0G F = 1 Reset = 1 Reset = 0, NE=0, GK = 1 Reset = 0, NE=0, GK = 0 Reset = 0 NE=1
Digital och Datorteknik – EDA /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/ / 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/ / 1G 5 = 0 0/1 0110? / ?’G 6 = ? 0/ / 1G 7 = 0 0/ / 1G 8 = 0 0/1 1001C+Z / (C+Z)’ G 9 = C+Z 0/ N V / (N V)’ G A = N V 0/ Z+(N V) / [Z+(N V)]’ G B = Z+(N V) 0/ / 1G C = 0 0/ / 1G D = 0 0/ / 1G E = 0 0/ / 0G F = 1
Digital och Datorteknik – EDA /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
Digital och Datorteknik – EDA / 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
Digital och Datorteknik – EDA /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
Digital och Datorteknik – EDA / Mikroprogrammering Sekvens Adress (Hex) Hopp villkor G K Hopp adress (Hex) Styrsignaler (aktiva) FETCH108G 0 =0LD MA, IncPC, 109G 0 =0LD I, MR, NE
Digital och Datorteknik – EDA /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]
Digital och Datorteknik – EDA / 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
Digital och Datorteknik – EDA / Mikroprogrammering EXECUTE – ”BNE ” TillståndRTN-beskrivningStyrsignaler ii 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 33 Z 1 CP OE R,LD PC MR, f 3, f 1, g 0, LD R, IncPC ii 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/ / 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/ / 1G 5 = 0 0/1 0110? / ?’G 6 = ? 0/ / 1G 7 = 0 0/ / 1G 8 = 0 0/1 1001C+Z / (C+Z)’ G 9 = C+Z 0/ N V / (N V)’ G A = N V 0/ Z+(N V) / [Z+(N V)]’ G B = Z+(N V) 0/ / 1G C = 0 0/ / 1G D = 0 0/ / 1G E = 0 0/ / 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 = DG F =1108OE R, LD PC R→PC;
Digital och Datorteknik – EDA /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:
Digital och Datorteknik – EDA /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
Digital och Datorteknik – EDA / 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
Digital och Datorteknik – EDA / 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
Digital och Datorteknik – EDA / 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