Aktivera Kursens mål: LV6 LV7 Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruktruera olika kombinatoriska nät som ingår i en dator. Studera hur addition/subtraktion utförs (+flaggor) Konstruera register som används för att lagra data i datorn. Koppla samman register med bussar till en enkel dataväg Veckans mål: Koppla samman register och ALU till en dataväg Förstå hur ett minne är uppbyggd och ansluta detta till datavägen Program och hur detta lagras i minne Fatta hur datorn startar och arbetar Räknare och mera vippor Dagens mål, Du ska kunna: Konstruera och använda en enkel dataväg Kunna programmera en enkel dataväg (RTN) Förstå uppbyggnaden av ett minne Använda en enkel dataväg med minne Förstå von Neumans princip med program och minne Ansluta CC-register till datavägen
ALU:n ska anslutas hur då? Arb s 99 f 3 f 2 f f U = f(d,e,f,c in ) Operation Resultat Bitvis nollställning D E Bitvis invertering D k D(8) E(8) Bitvis invertering E k Bitvis OR D OR E Bitvis AND D AND E Bitvis XOR D XOR E Funktion C in ALU Flaggor D + + C in D + C in D + FFH + C in D - + C in D + E + C in D + D + C in 2D + C in D +E k + C in D - E - + C in U(8) Bitvis nollställning Bitvis nollställning Bitvis ettställning FFH 2
Användning av resultatregister (R) för lagring av utdata från ALU. Buss LD T Reg T D E Funktion C in LD R ALU U Reg R Flaggor 3
Anslutning av resultatregister (R) till buss. LD T Reg T D E Funktion C in ALU U Flaggor LD R Reg R OE R 4
Processor Dataväg Datadel Styrenhet Enkel dataväg Ge ny klockpuls Ge nya styrsignaler Arb s 74 Ge ny klockpuls Ge nya styrsignaler Ge ny klockpuls Ge nya styrsignaler Ge ny klockpuls Ge nya styrsignaler 5
Fo7 Dagens mål: Konstruera och använda en enkel dataväg Kunna programmera en enkel dataväg (RTN) Förstå uppbyggnaden av ett minne Använda en enkel dataväg med minne Förstå von Neumans princip med program och minne Ansluta CC-register till datavägen 6
Ge en sekvens av styrsignaler som utför: RTN-beskrivning: : 2: 3: 4: 5: 7
Fo7 Dagens mål: Konstruera och använda en enkel dataväg Kunna programmera en enkel dataväg (RTN) Förstå uppbyggnaden av ett minne Använda en enkel dataväg med minne Förstå von Neumans princip med program och minne Ansluta CC-register till datavägen 8
Arb s 82 Minnet Processor Minnet Minnet Primärminnen Sekundärminne Blockminne Program Data RAM-minnen: ROM PROM FLASH RWM 9
Data in Minne LD Register Adressbuss (8) Program Data ut MR MW Läs Skriv Adress Minne Data Minnes adress k k+ k+2 k+3 k+4 k+5 Minnet Minnesregister i Minnesregister i+ Minnesregister i+2 Minnesregister i+3 Minnesregister i+4 Minnesregister i+5 MR Databuss (8) Data ut Data in
Minns Man Minnet? Arb s 83 Avkodare Anslutningar till processorn Adress - Buss f (Adress ) f f 2 f 255 (Adress 255) Skriv & Läs & LD Läs Buffert Minnes - register En MEM_R MEM_W Skriv & LD 255 Minnes - register 255 Data- Läs & Läs E n 255 Buss
Enkel dataväg med RWM Arb s 86 Gör Uppgift 75 2
Fo7 Dagens mål: Konstruera och använda en enkel dataväg Kunna programmera en enkel dataväg (RTN) Förstå uppbyggnaden av ett minne Använda en enkel dataväg med minne Förstå von Neumans princip med program och minne Ansluta CC-register till datavägen 3
Program och minne Arb s 92 John Louis Von Neumann (93-957) Det lagrade programmets princip, dvs program och data i samma minne. Maskinprogram i minnet Tillhörande assemblerprogram Instruktion Adress Data 4
Program o Minne - forts Arb s 92 Instruktionsformat INCA Maskinprogram OP-kod 2 Maskinprogram 2 LDAA OP-kod Adr Adr 2 2 2 2 2 F 6 B 6 3F 6 FE 6 9 6 4 6 4A 6 5
Processorns arbetssätt Maskinprogram Tillhörande i minnet assemblerprogram Adr. C LDAB #$23 D 23 E 29 ADDB $F3 F F3 2 TFR B,A 4F CMPB #$3 2 3 3 6 BLO $29 4 3 Arb s 95 Processor Dataväg Datadel Adressdel Styrenhet RESET FETCH EXECUTE 6
Fo7 Dagens mål: Konstruera och använda en enkel dataväg Kunna programmera en enkel dataväg (RTN) Förstå uppbyggnaden av ett minne Använda en enkel dataväg med minne Förstå von Neumans princip med program och minne Ansluta CC-register till datavägen 7
Fånga C-flaggan. Kap 7 Blå LD T Reg T D E Funktion C in ALU U Flaggor LD R Reg R OE R 8
Inkoppling av flaggregister mellan ALU och buss. LD T Reg T Kap 7 Blå D E Funktion C in U ALU Flaggor LD R Reg R LD CC Reg CC OE R OE CC 9
Inkoppling av väljare (multiplexer) för val av C in. LD T Reg T Kap 7 Blå C 2 M U X C 3 2 Funkt D C in LD R ALU U Reg R E LD CC Flaggor Reg CC g g C OE R OE CC 2
Inkoppling av väljare (mux) för val av indata till CC-registret. LD T Reg T Kap 7 Blå C 2 M U X C 3 2 Funkt D C in LD R ALU U Reg R E Flaggor g 2 LD CC MUX Reg CC g g OE R OE CC 2
Kap 7 Blå Logiknät för databehandling med aritmetik/logikenhet (ALU). LD A Reg A LD B Reg B LD T Reg T C 2 M U X C 3 2 Funkt C in D LD R U ALU Reg R E Flaggor g 2 LD CC MUX Reg CC g g OE A OE B OE R OE CC 22
Veckans mål: LV3 Fo8 Koppla samman register och ALU till en dataväg Förstå hur ett minne är uppbyggd, ansluta detta till datavägen Program och hur detta lagras i minne Fatta hur datorn startar och arbetar Räknare och mera vippor Dagens mål. Du ska kunna: Beskriva Processorns Arbetssätt Ange styrsignalsekvens för RESET Ange styrsignalsekvens för FETCH Ange styrsignalsekvenser för olika EXECUTE-faser Konstruera och använda JK- och T-vippa Kunna analysera räknare Ta fram Excitationstabeller 23
Processorns arbetssätt Processor Dataväg Datadel Adressdel Maskinprogram Tillhörande i minnet assemblerprogram Adr. C LDB #$23 D 23 E 29 ADDB $F3 F F3 2 TFR B,A 4F CMPB #$3 2 3 3 6 BLO $29 4 3 Arb s 95 Styrenhet RESET FETCH EXECUTE 24
Maskinprogram i minnet Adr. C LDB #$23 D 23 E 29 ADDB $F3 F F3 2 TFR B,A 4F CMPB #$3 2 3 3 6 BLO $29 4 3 Nästa operationskod Styrsignalgenerering för den databehandlande enheten. Kap 7 Blå Styrsignaler LD I Instruktionsregister (I) Operationskod (Val av operation) Styrenhet ALUfunktion 25 LD A OE A LD B OE B
LD A Reg A LD B Reg B C 2 M U X C 3 2 g g Funkt C in D LD R LD T U ALU Reg R Reg T E Flaggor g 2 LD CC MUX Reg CC Kap 7 Blå Styrenhet och del av dataväg. OE A OE B OE R OE CC Nästa operationskod Styrsignaler Flaggor från flaggregistret LD I Reg I Reset Styrenhet 26
Fo8 Dagens mål. Du ska kunna: Beskriva Processorns Arbetssätt Ange styrsignalsekvens för RESET Ange styrsignalsekvens för FETCH Ange styrsignalsekvenser för olika EXECUTEfaser Konstruera och använda JK- och T-vippa Kunna analysera räknare Ta fram Excitationstabeller 27
Processorns arbetssätt RESET Arb s 95 PC: Programräknare (Pekar på nästa instruktion) Datadel Processor Dataväg Styrenhet Adressdel PC PC = ) Bilda adressen FF Maskin Assembler program program Adr. F LDAA #$55 55 2 NOP 3 28 ADDA $5 4 5 3) Läs (start adr) från adr FF i minnet till PC FE FF Reset Vektor 2) Adressera Minnet (Adr FF) 28
State RTN- Styrsignaler beskr FF 6 R ALU-fkn = F 6, LD R =. R MA OE R =, LD MA =. 2 M PC MR=, LD PC Kommentar ALU-funktionen väljs så att talet FF 6 finns på ALU:ns utgång. Laddingången på R-registret ettställs så att utvärdet från ALU n (FF 6 ) laddas i R-registret vid nästa klockpuls. Talet FF 6 i R-registret kopplas ut på bussen. Bussinnehållet laddas i minnesadressregistret vid nästa klockpuls. =. Minnesinnehållet på adressen FF 6 läses. Det dataord som läses placeras i PC vid nästa klockpuls. Nästa klockcykel skall vara den första i FETCH-sekvensen. 29
Fo8 Dagens mål. Du ska kunna: Beskriva Processorns Arbetssätt Ange styrsignalsekvens för RESET Ange styrsignalsekvens för FETCH Ange styrsignalsekvenser för olika EXECUTEfaser Konstruera och använda JK- och T-vippa Kunna analysera räknare Ta fram Excitationstabeller 3
State RTN Styrsignaler Kommentar PC MA, OE PC =, LD MA =, PC+ PC IncPC=. M I MR=, LD I =. Adressen till instruktionens operationskod kopieras från PC till minnesadressregistret MA. Adressen som finns i PC ökas med ett. Läs operationskoden från minnet. Placera den i instruktionsregistret I. Nästa state skall vara det första i EXECUTE-sekvensen. (PC) OPKOD??? 3
Fo8 Dagens mål. Du ska kunna: Beskriva Processorns Arbetssätt Ange styrsignalsekvens för RESET Ange styrsignalsekvens för FETCH Ange styrsignalsekvenser för olika EXECUTEfaser Konstruera och använda JK- och T-vippa Kunna analysera räknare Ta fram Excitationstabeller 32
(PC) F 55 Instruktion: Format: LDAA #Data Ord: OP-kod (LDAA #$55) Ord2: Data State RTN Styrsignale Kommentar r PC MA, OE PC =, Instruktionens datadel finns i minnesordet efter OP-koden. När LD MA =, EXECUTE-sekvensen inleds pekar PC på instruktionens datadel. PC kopieras därför över till minnesadressregistret MA så att datadelen kan läsas från minnet under nästa klockcykel. PC+ PC IncPC=. Innehållet i PC ökas med ett, så att PC pekar på nästa adress i minnet där OP-koden för nästa instruktion skall finnas. M A MR=, Läs instruktionens datadel "Data" från minnet och placera den i LD A = A-registret. Nästa Digital klockcykel o Datorteknik skall OHLV3 vara den första i FETCH-sekvensen. 33
Arb s Processorns arbetssätt RESET FETCH EXECUTE (Starttillstånd) Insignalen Reset= NF NF NF NF NF 2 3 4 5 6 7 NF 9 RESET FETCH EXECUTE 34
Fo8 Dagens mål. Du ska kunna: Beskriva Processorns Arbetssätt Ange styrsignalsekvens för RESET Ange styrsignalsekvens för FETCH Ange styrsignalsekvenser för olika EXECUTEfaser Konstruera och använda JK- och T-vippa Kunna analysera räknare Ta fram Excitationstabeller 35
Principen för JK-vippa: S5.5 J & S S C Q S R Q + Q Otillåtet K & R R Q J K S R Q + Q Q Q Q 36
JK - Vippan Jfr med SR-vippan J J Q S S Q C C K K Q R R Q J K Q + Q Q S R Q + Q Otillåtet 37
T - Vippan S5.6 T J Q C K Q Funktionstabell J K Q + Q Q' Funktionstabell T Q + Q Q 38
Asynkrona ingångar för ettställning och nollställning Vippor förses ofta med extra ingångar som påverka utsignalen oberoende av klockpulsen och övriga insignaler. Dessa ingångar kallas därför för asynkrona ingångar. För ett- (eng Preset) och nollställning (eng Clear) av utsignalen. Benämns S - R på samma sätt som S- och R-signalerna hos en SR-latch. S D C R D-vippan har asynkrona S- och R-ingångar. S5.7 39
Fo8 Dagens mål. Du ska kunna: Beskriva Processorns Arbetssätt Ange styrsignalsekvens för RESET Ange styrsignalsekvens för FETCH Ange styrsignalsekvenser för olika EXECUTEfaser Konstruera och använda JK- och T-vippa Kunna analysera räknare Ta fram Excitationstabeller 4
Arbetsgång - analys räknare s5.24 -> & J C Q J C Q 2 J C Q 3 K K K Studera kopplingen och bestäm vippornas insignaler (T =, T 2 =, T 3 =) 2 Sätt upp en tabell med - Detta tillstånd (Alla kombinationer av Q, Q 2, Q 3 ) - Insignaler (T, T 2, T 3 ) - Nästa tillstånd (Q +, Q 2+, Q 3+ ) 3 Ange insignalernas värden i tabellen och---- 4 ange vad nästa tillstånd blir 5 Rita slutligen en tillståndsgraf 4
Analys räknare & s5.23 J C Q J C Q 2 J C Q 3 K K K ) 2) T = T 2 = Q T 3 = Q Q 2 Funktionstabell T Q + Q Q Detta Insignaler Nästa Tillstånd Tillstånd Q 3 Q 2 Q T 3 T 2 T Q + 3 Q + 2 Q + 3) 4) 42
Analys räknare s5.26 Tillståndsdiagram: Fördelar: Vi ser funktionen. Vi upptäcker om vi har gjort fel! q 3 q 2 q Q 3 Q 2 Q Q + 3 Q + 2 Q + 5) 43
Arb s 6 Uppgift 88 Välj en JK-vippa och anslut Q -utgången till J-ingången. Ettställ de övriga ingångarna. Ge ett antal klockpulser och observera att utgångarna Gör Uppgift 88 44
Fo8 Dagens mål. Du ska kunna: Beskriva Processorns Arbetssätt Ange styrsignalsekvens för RESET Ange styrsignalsekvens för FETCH Ange styrsignalsekvenser för olika EXECUTEfaser Konstruera och använda JK- och T-vippa Kunna analysera räknare Ta fram Excitationstabeller 45
Syntes Räknare Konstruera en räknare som räknar sekvensen --2-3- -4-5-- osv. Vi vet Detta tillstånd Vi vet Nästa tillstånd VAD SKA VIPPORNAS INSIGNALER VARA FÖR ATT HAMNA I NÄSTA TILLSTÅND???? NY TABELL 46
Utsignaler Insignaler Detta tillstånd Q Nästa tillstånd Q + q3 q2 q q q3 + q2 + q + q + J 3 K 3 J 2 K 2 J K J K 47
Excitationstabeller - forts Kmp s 5.8 Vad blir utgången Q + om insignalen är.. Funktionstabell J K Q + Q Q Vad skall ingången vara om tillståndsändringen i Q Q + är.. Excitationstabell Q Q + J K 48
Fo9 Veckans mål: Koppla samman register och ALU till en dataväg Förstå hur minne är uppbyggd, ansluta detta till datavägen Program och hur detta lagras i minne Fatta hur datorn startar och arbetar Räknare och mera vippor Dagens mål. Du ska kunna: Konstruera räknare Använda räknaren 74HC63 Konstruera en Fast kopplat styrenhet till FLEX Implementera RESET-fasen i FLEX Implementera FETCH-fasen i FLEX Implementera olika EXECUTE-faser i FLEX 49
Utsignaler Insignaler Detta tillstånd Q Nästa tillstånd Q + q3 q2 q q q3 + q2 + q + q + J 3 K 3 J 2 K 2 J K J K 5
Arbetsgång - syntes räknare Konstruera en räknare som räknar sekvensen???? Rita en tillståndsgraf 2 Sätt upp en tabell med: - Detta tillstånd (Alla kombinationer av Q, Q 2, Q 3 ) - Nästa tillstånd (Q +, Q 2+, Q 3+ ) - Vippornas Insignaler 3 Ange Nästa tillstånd i tabellen 4 Använd vippornas excitationstabell och ange vippornas insignaler 5 Minimera uttrycken för insignalerna 6 Realisera räknaren 5
Arb s Uppgift 93 Konstruera en räknare som räknar sekvensen --2-3- -4-5-- osv. Räknaren skall realiseras med JK-vippor grindar tillgängliga i Kopplingsboxen 52
Fo9 Dagens mål. Du ska kunna: Konstruera räknare Använda räknaren 74HC63 Konstruera en Fast kopplat styrenhet till FLEX Implementera RESET-fasen i FLEX Implementera FETCH-fasen i FLEX Implementera olika EXECUTE-faser i FLEX 53
Arb s 4 Uppgift 96 -Räknaren 74HC63 Grönt = etta 54
Fo9 Dagens mål. Du ska kunna: Konstruera räknare Använda räknaren 74HC63 Konstruera en Fast kopplat styrenhet till FLEX Implementera RESET-fasen i FLEX Implementera FETCH-fasen i FLEX Implementera olika EXECUTE-faser i FLEX 55
Arb s 2 Styrenheten Klockpuls Nya styrsignaler IN- Styr-enhet UT- Klockpuls Nya styrsignaler signaler signaler Klockpuls Nya styrsignaler Klockpuls Nya styrsignaler 56
Styrenheten - forts Arb s 2 OP-kod LD A LD B LD R (i 7 - i ) Flaggor (4) (N, Z, V, C) Styrenhet OE A OE B OE R f f f 2 f 3 g g Styrsignaler till datavägen (3 st) Reset g 2 IncPC IncS DecS MR MW 57
Styrenheten - forts Arb s 23 Flaggor (4) LD A LD B LD R (OP-kod) i 7 - i OE A OE B OE R Reset LOAD (Q 3 = ) CTR4 5CT= M M2 G3 3CT=5 G4 C5 2,3,4+,5 D,5 D,5 D q q q 2 Kombinat oriskt nät f f f 2 f 3 g g g 2 IncPC IncS DecS MR MW Styrsignaler till datavägen (3 st),5 D q 3 NF NF 58
Mask. prog Tillhörande i minnet assemblerprog Adr. C LDAB #$23 D 23 E 29 ADDB $F3 F F3 2 TFR B,A 4F CMPB #$3 2 3 3 6 BLO $29 4 3 RESET OP-kod OP-kod FETCH Adr EXECUT E NF NF NF NF NF NF RESET FETCH EXECUTE 59
Från flaggregistret I 2 Q 5 I 4 Q 5 Q 5 I 2 Q 5 I 4 Arb s 24 C V Z N C C N N Flaggvillkor I 7 Q 6 Q 6 I 7 LD A Från instruktionsregistret i i 2 i 2 4 i 6 64 i 7 28 OP-kods avkodare I I I 2 I 4 I FF I 7 Q 9 I Q 5 Q 9 I AD Q 5 I Styrsignaler (3 st) I Q 5 Q 5 I Från räknaren q q 2 4 q 2 q 3 8 Tillståndsavkodare Q Q Q 2 Q 3 Q 4 Q 5 I 2 Q 5 Q 5 I 2 NF Q 5 I C6 Digital o Datorteknik Q OHLV3 Q I C6 6
Styrenheten - forts Arb s 25 Avkodade insignaler till styrenheten I 2 Q 5 AND-OR area Q 5 I 2 Utsignal från styrenheten I 4 Q 5 Q 5 I 4 I 7 Q 6 Q 6 I 7 LD A Booleskt uttryck: LD A = Q 5 I 2 + Q 5 I 4 + Q 6 I 7 + + Q 9 I AD I AD Q 9 Q 9 I AD 6
Fo9 Dagens mål. Du ska kunna: Konstruera räknare Använda räknaren 74HC63 Konstruera en Fast kopplat styrenhet till FLEX Implementera RESET-fasen i FLEX Implementera FETCH-fasen i FLEX Implementera olika EXECUTE-faser i FLEX 62
Processorns arbetssätt RESET Arb s 95 PC: Programräknare (Pekar på nästa instruktion) Datadel Processor Dataväg Styrenhet Adressdel PC = PC ) Bilda adressen FF 3) Läs (start adr) från adr FF i minnet till PC Maskin Assembler program program Adr. F LDAA #$55 55 2 NOP 3 28 ADDA $5 4 5 FE FF Reset Vektor 2) Adressera Minnet (Adr FF) 63
Processorns arbetssätt - RESET Tillstånd Summaterm RTN-beskrivning Styrsignaler (=) Q Q FF 6 R f 3, f 2, f, f, LD R Q Q R MA OE R, LD MA Q 2 Q 2 M PC MR, LD PC 64
Processorns arbetssätt - FETCH Tillstånd Summaterm RTN-beskrivning Styrsignaler (=) Q 3 Q 3 PC MA PC+ PC OE PC, LD MA IncPC Q 4 Q 4 M I MR, LD I 65
(PC) F 55 Instruktion: Format: LDAA #Data Ord: OP (LDAA #$55) Ord2: D Tillstånd Summaterm RTN-beskrivning Styrsignaler (=) Q 5 Q 5 *I F PC MA OE PC, LD MA Q 6 Q 6 *I F PC+ PC M A IncPC MR, LD A, NF 66
Tillstå Summater RTN-beskrivning Styrsignaler (=) nd m struktionsnr (OP-kod) AND State xx I9 * Q5 I9 * Q6 I9 * Q7 Y Z Q P W U NF 67
Aktivera Processorns arbetssätt Ge ny klockpuls Ge nya styrsignaler Ge ny klockpuls RESET FETCH EXECUTE Ge nya styrsignaler Ge ny klockpuls Ge nya styrsignaler OP-kod OP-kod Adr Ge ny klockpuls Ge nya styrsignaler NF NF NF NF NF NF RESET FETCH EXECUTE 68