Grundläggande Datorteknik Digital- och datorteknik Kursens mål: Fatta hur en dator är uppbggd (HDW) Fatta hur du du programmerar den (SW) Fatta hur HDW o SW samverkar Digital teknik Dator teknik 2 Lärandemål: ) Talsstem, binära koder och datoraritmetik. Konvertering mellan olika talsstem 2. Utifrån given problemställning applicera binära koder så som NBC, NBCD, ASCII, Gra, Excess, tecken/belopp och komplementkoder. 3. Redogöra för och tillämpa binär aritmetik (addition och subtraktion). 3 β = 2 β = 8 β = β = 6 binärt oktalt decimalt hexadecimalt 2 3 4 5 6 7 2 3 4 5 6 7 2 2 2 3 4 5 6 7 8 9 2 3 4 5 6 7 2 3 4 5 6 7 8 9 A B C D E F S2.4 4
GRAY- KOD Tabell 2.2. Grakoder. Decimal ordning Kodord i trebitars Grakod 2 3 4 5 6 Kodord i frbitars Grakod S2.6 NBCD-kod Skriv (563,782) på NBCD-kod. Decimal siffra NBCD 2 3 4 S2.9 7 8 9 5 6 2 7 8 3 4 5 5 9 6 ASCII-koden. Alfanumeriska koder 2 3 4 5 6 7 b6b5b4 b3b2bb NUL DLE SP @ P ` p SOH DC! A Q a q STX DC2 2 B R b r ETX DC3 # 3 C S c s EOT DC4 $ 4 D T d t ENQ NAK % 5 E U e u ACK SYN 6 F V f v BEL ETB 7 G W g w BS CAN ( 8 H X h x HT EM ) 9 I Y i LF SUB * : J Z j VT ESC + ; K [Ä k {ä FF FS, < L \Ö l ö CR GS - = M ]Å m }å S RS. > N ^ n ~ S US /? O _ o RUBOUT Grundläggande Datorteknik (DEL) fo6 2 3 4 5 6 7 8 A B 9 C D E F S2.29 Ex A =4 6 7 Excesskod Tabell 2.. Excess-2 n- kodning vid n = 4. Ex avkoda: 2 Excess-2 n- n=4 2 3 +2 2 ++ -2 3 = 4 Nivå k Kodord i excess-2 n- -kod (n=4) -8-7 -6-5 -4-3 -2-2 3 4 5 6 7 S2.5 8
Def 2-Komplement: Pos: Y = Y Neg: (-Y) = 2 n - Y = Y 2K Att tvåkomplementera: Ex 4 bit: 2 n =2 4 =6 2 n -Y = 2 n --Y + = 6--Y+ = 5-Y+ (= Y K +) Ex Y=6: Hitta (-Y) 5 - Y - = Y K = INVERSEN! Def komp! Y K addera + = Y 2K = Y K += Y 2K (-Y = ) (-6 = ) Att subtrahera: X-Y = X + Y 2K = X + Y K + Arb s 3 9 Def Flaggor Statusflaggor ut från ALU:n som indikerar om resultatet blev rätt eller fel C Carr Tal utan tecken [,5] (ADD : minnessiffra; SUB: lånesiffra) V Overflow Tal med tecken [-8,7] N Negative Tal med tecken [-8,7] Z Zero Tal med och utan tecken C=: Resultatet av operationen blev fel för en operation utan tecken V=: Resultatet av operationen blev fel för en operation med tecken N=: Resultatet av operationen blev negativt för en operation med tecken Z=: Resultatet av operationen blev noll Arb s 32 2) Digitalteknik Lärandemål:. Definiera grundläggande logiska operationer och dess motsvarande logiska grindar. 2. Tillämpa den booleska algebrans räknelagar. 3. Utföra algebraisk förenkling av booleska uttrck. 4. Visa likhet/olikhet mellan booleska uttrck. Logikkretssmboler för grundläggande logikoperationer. Funktion Grind Grafisk smbol = x+ = x = x' ELLER (OR) OCH (AND) INVERTERARE (ICKE, NOT) x x x S3.8 S.4 = ( x+)' NOR x = (x )' NAND x 2
Sammanfattning Boolesk algebra +=; =; +=; =; =; = de Morgans lagar Funktionstabell Sätt upp tabell med alla kombinationer av invariabler Binär evaluering Gör kolumner för delutrcken. Kommutativa lagarna x + = + x x = x Rep: Satser inom Boolesk algebra. 2. Distributiva lagarna x ( + ) = x + x x + ( ) = (x + ) (x + ) 7. Associativa lagarna x + ( + ) = (x + ) + x ( ) = (x ) 8. De Morgans lagar (x + )' = x' ' (x )' = x' + ' 3. x + = x x = x 4. x + x' = x x' = 5. x + = x = 6. x + x = x x x = x 9. (x')' = x S3.8 3 4 Lärandemål: 2) Digitalteknik - Kombinatoriska nät. Realisera logiska uttrck med grindnät. 2. Beskriva, analsera och konstruera kombinatoriska nät med hjälp av funktionstabeller och boolesk algebra. 3. Kunna minimera logiska uttrck för realisering i kombinatoriska nät. 5 X Y Z Grindnät för exempel Kalle f(x,,) = x + + x' X Y Z Disjunktiv (minimal) form (Summa av Produkter) f(x,,) = x + x' f X Z Y f + x' Konjunktiv (minimal) form (Produkt av summor) f(x,,) = (x + ) ( + x') 6 f
Sammanfattning NORMAL form Funktionstabell MINIMAL form Kranaughdiagram DISJUNKTIV (normal / minimal) form Σ av Prod Ex: (x )+(xw)+(xw) Ettor Mintermer: ( ) = NAND / NAND - logik C D E F Sammanfattning NAND- och NOR-logik?? Samma sak KONJUNKTIV (normal / minimal) form Prod av Σ:or Ex: (x+)(x ++w)( +w ) Nollor Maxtermer: (++) = NOR / NOR - logik C D E F?? Samma sak 7 8 Praktikfall, minimering av grindnät Ext4 f f = a 2 'a 'a ' S4. x w w w Ett grindnät med utsignalen f och fra insignalerna x,,, w är givet. f Kan man konstruera ett "mindre" nät? ) Anals 2) Funktionstabell 3) Minimering (Karnaugh) 4) Realicering 9 a a a 2 Kodomvandlare NBC till en av åtta" f f 2 f 3 f 4 f 5 f 6 f = a 'a 'a 2 f = a 'a a ' 2 2 f = a 'a a 3 2 f = a a 'a ' 4 2 f = a a 'a 5 2 f = a a a ' 6 2 f 7 = a 2 a a f 7 a a 2 a 2 4 BIN/OCT 2 3 4 5 6 7 2 f f f 2 f 3 f 4 f 5 f 6 f 7
En delmängd av veckans mål: Fo4 Konstruktruera de olika kombinatoriska nät som ingår i en dator. Exempel på sådana nät är väljare, kodomvandlare och ALU (beräkningsenheten i processorn). Studera hur addition/subtraktion utförs Dagens mål: Kodomvandlare (en kod IN annan kod UT) Don t care termer (ger färre grindar) Väljare (många signaler IN + strsig en signal UT) Fördelare (en signal IN+strsig många signaler UT) Heladderare (adderar x++c in =s ut och c ut ) Koda tal (2-komplementsrepresentationen) a i a b i b i i c i+ c i a i b i P Q = a i b i Prosamsmbolen för en heladderare. = s i S 4.5 c n c n-c n-2...c i...c a n- a n-2...a i...a a s i + b n- b n-2...b i...b b s n- s n-2...s i...s s c i CI CO C i+ 2 22 Def Flaggor Statusflaggor ut från ALU:n som indikerar om resultatet blev rätt eller fel C Carr Tal utan tecken [,5] (ADD : minnessiffra; SUB: lånesiffra) V Overflow Tal med tecken [-8,7] N Negative Tal med tecken [-8,7] Z Zero Tal med och utan tecken C=: Resultatet av operationen blev fel för en operation utan tecken V=: Resultatet av operationen blev fel för en operation med tecken N=: Resultatet av operationen blev negativt för en operation med tecken Z=: Resultatet av operationen blev noll Arb s 32 23 ADD: X+Y 2 3 4 5 6 7 SUB x x x 2 x 3 x 4 x 5 x 6 x 7 7 q = = = = = = SUB: X-Y= X+Y 2k = X+Y k + = q 7 P Q s s s 2 s 3 s 4 s 5 s 6 7 s 7 = 7 c c CI 8 CO = C ut Ext6 Minnessiffra ut vid addition Lånesiffra ut vid subtraktion. 24
Lärandemål: 2) Digitalteknik - Sekvensnät Grindad SR-latch Ofta förses SR-latchar med en tredje ingång, till vilken en strpuls C Härvid erhålls en s k grindad SR-latch. ansluts S5.7. Analsera och konstruera snkrona tillståndsmaskiner med hjälp av tillståndstabeller och tillståndsgrafer. 2. Använda D-, T- och JK- vippor för konstruktion av minneselement och räknare. R Q S Q C C S Q R Q 25 26 CP LD D in7 C2 G Q 7 D ut7 D in6 C2 G Q 6 D ut6 D in5 C2 G Register och bussar Q 5 D ut5 D in4 C2 G Q 4 D ut4 D in3 C2 G CP LD Q 3 D ut3 D in2 C2 G Q 2 D ut2 D in C2 G D in Register D ut Q D ut D in C2 G Q D ut 27 J C K CP Arbetsgång - anals räknare Q J C K Q 2 J C 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 s5.25 -> Q 3 28
Anals räknare CP T = T 2 = Q J K C T 3 = Q Q 2 Funktionstabell T Q + Q Q Q ) 2) J K C Q 2 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) J K C s5.25 Q 3 29 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? 3 Arbetsgång - sntes räknare Konstruera en räknare som räknar sekvensen???? Lärandemål: 3) Datorns uppbggnad och funktion 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 uttrcken för insignalerna 6 Realisera räknaren 3. Beskriva, analsera och konstruera kombinatoriska och sekventiella nät som tpiskt används för att bgga en dators centralenhet, dvs. dataväg, strenhet, aritmetisk/logisk enhet (Arithmetic/Logical Unit). 2. Beskriva, analsera och konstruera en strenhet baserad på fast kopplad logik och kunna implementera instruktionsexekvering i denna logik. 3. Kunna utföra elementär maskinnära programmering (maskinprogrammering och assemblerprogrammering). 4. Beskriva in-/ut- matningsenheter och minnessstem tillsammans med centralenheten. 32
Veckans mål: Konstruera strenheten. genom att.. implementera olika maskininstruktioner i strenheten. Villkorliga hopp Subrutiner och stack Skriva enkla program för FLISP Strukturerad assemblerprogrammering LV5 Fo2 Enkel dataväg Ge n klockpuls Ge na strsignaler Ge n klockpuls Ge na strsignaler Ge n klockpuls Ge na strsignaler Ge n klockpuls Ge na strsignaler Arb s 65 Digital och Datorteknik fo2 33 34 Execute Processorns arbetssätt - RESET Arb s 7 State Summa-term RTN Strsignaler = Kommentar del Processor väg essdel PC 3) Läs C till PC Maskin Assembler program program. C LDAB #$23 D 23 E 29 ADDB $F3 F F3 Strenhet ) Bilda FF FE FF C Reset Vektor 2) essera Minnet 36
Ge n klockpuls Ge na strsignaler Ge n klockpuls Ge na strsignaler Ge n klockpuls Ge na strsignaler Ge n klockpuls Ge na strsignaler Aktivera Processorns arbetssätt RESET FETCH EXECUTE NF NF NF NF NF 2 3 4 5 6 7 NF 5 Instruktionsformat LDA OP-kod INCA OP-kod Maskinprogram 2 2 2 2 Aktivera Program och minne Maskinprogram F 6 B 6 3F 6 FE 6 Mask. prog Tillhörande i minnet assemblerprog. C LDA #$23 D 23 E 29 ADDA $F3 F F3 2 TFR X,Y 4F CMPA #$3 2 3 3 6 BLO $29 4 3 2 9 6 RESET FETCH EXECUTE 37 2 2 4 6 48 6 38 Assemblerprogram Handassemblering Maskinprogram Instruktionslistan för FLISP LDA #$3C ADDA $43 STA 4,X JMP $2E? 8 F 9 3C A 96 B 43 C E3 D 4 E 33 F 2E 2 39 4
Maskinprogram 8 F 9 3C A 96 B 43 C E3 D 4 E 33 F 2E Disassemblering? 2 Assemblerprogram LDA #$3C ADDA $43 STA 4,X JMP $2E 4 Vad gör processorn vid BMI? ) Läser in HELA branch-instruktionen (PC pekar på nästa instruktion i minnet dvs. PC = $4) 2) Undersöker N-flaggan OM N= FETCH på adress $4 OM N= PC + offset PC FETCH på adress $A Minne h $2 h $52 2h $5B 3h $6 4h PC $4 +Offset $6 =N PC $A OP-Kod BMI $A Offset Next OP 42 Stack: Subrutin o stack Ett minnesutrmme Stackpekare: Register SP Pekar på översta elementet på stacken Minne Program Huvud program JSR JSR Subrutiner Ett stcke kod som återanvänds flera gånger. Man utför hopp till och från en subrutin JSR Jump to SubRoutine RTS ReTurn from Subroutine Subrutin Subrutin: Ett stcke kod, avslutat med instruktionen RTS RTS JSR: Hopp TILL subrutin JSR RTS: Återhopp FRÅN subrutin 43 44
Dagens mål: Du ska kunna. Skriva kontrollstrukturer If then else; While, Do while testa bitar Använda IO-simulatorer Skriva strukturerade assemblerprogram för FLISP Programmoduler Top-down/Bottom up Inre och ttre dokumentation LV5 Fo3 Kontrollstruktur if (...) {Satser} else {Satser2} If Then Else End Villkor JA Satser Satser 2 NEJ if (DipSwitch >= 5) HexDisp = ; else HexDisp = 2;... LDAB DipSwitch CMPB #5 BLO else LDAB # STAB HexDisp BRA end else LDAB #2 STAB HexDisp end...... Test av tal utan tecken BLO Villkor: R<M C= Digital och Datorteknik fo2 45 Test av tal med tecken BLT Villkor: R<M N V = Digital o Datorteknik fo 4 46 Start Programmeringsprojekt Bgg ett stoppur s4 init Displa IncClock CheckKbd tangent? Nej Ingen tangent nedtrckt Start Stopp Ja Starta klockan ess Kommentar? Nej 2? Nej 3? Nej Ja Ja Ja StartClock Stanna klockan StopClock Nollställ klockan ResetClock Clock $2 Timmar $5 Tio minuter $ Minuter $3 Tio sekunder $7 Sekunder $4 Tiondelar 47 48
Assemblerdirektiv LV6 Fo4 [smbol] FCB uttrck[,uttrck[,...]] (Form Constant Bte) [smbol] FCS "teckensträng" (Form Constant String) [smbol] RMB uttrck (Reserve Memor Btes) [smbol] ORG uttrck (Origin) smbol EQU uttrck (Equate) Veckans mål: Ansluta In- och Utportar till Flisp In-och utmatning Avbrott essavkodning Ansluta minnen och I/O-moduler 49 Digital o Datorteknik fo 4 5 Mottagaren Redo? J Sänd till mottagaren Bus Wait Villkorlig överföring N M ottagaren Redo? J Sänd till mottagaren Polling N IRQ Inför Avbrott Flispdator Strenheten Avbrottssignal Avbrotts- SubRutin som som skriver skriver ut ett ut tecken ett tecken RTI RTS READY buss Skrivare UT-PORT : TextP A H Pekare/adress till nästa tecken Text H e j Huvudprogram D u ASCIIkoder K för texta sträng l l e! EOT Slutmarkeing 5 52
Avbrott - Sammanfattning. OM I-flaggan=: Processorn känner att IRQ är aktiverad och slutför utförandet av pågående instruktion. 2. Processorn sparar huvudprogrammets återhoppsadress och övriga registerinnehåll på stacken, save status. Därefter läser processorn startadressen för avbrottsrutinen från IRQ-vektorn (från adress $FD). Denna startadress placeras i PC. I-flaggan ETT-ställs 2 3. Avbrottsrutinen startas (med I-flaggan=). 5 4. Avbrottsrutinen avslutas med instruktionen RTI som får 6 processorn att utföra restore status, dvs registerinnehållen återställs från stacken (med gamla I=). 5. Återhopp till huvudprogram. 6. Därmed återstartas huvudprogrammet där det blev avbrutet 53 3 4 LV6 Fo5 Dagens mål: Du ska kunna. Skilja på olika minnestper Förklara principer för olika bussprotokoll Förstå begreppen Timing och VM (Valid Memor ess) Konstruera adressavkodningslogik. ) Fullständig Avk 2) Ofullständig Avk Processorns adressrum Processor - Bussar Minne Skrivare Mus etc 54 Klocka Eclk Buss Bussckel HC2 Eclk Bussckel ess och databuss Bussckel Klocka. buss Multiplexad Buss MC2 eller någon processor essbuss buss Klocka. buss Strobe buss ACK Strobe essbuss Processor buss ACK Här är adressen Här är data Minne Klocka Asnkront Bussprotokoll Klocka essbuss Processor buss M inne buss Bussckel Bussckel Bussckel Icke Multiplexad Buss 55 Snkront Bussprotokoll. buss buss En bussckel 56
Att ansluta en Xk Bte Minnes- modul med startadress $ Att ansluta en 8-kbte ROM- modul till ett befintligt sstem Xk Bte RWMmodul CS R/W essbuss A -A buss D 7 -D Arbetsgång: Tolka beskrivningen av minnesmodulen Rita tabell Ange modulens första adress Ange modulens sista adress Märk ut konstanta resp varierande adressledningar Rita adressavkodningslogiken E/EClk Processor R/W CS-logik för RWM Och ROM essbuss A 5 -A A 5 -A A -A CSRWM CSROM 2kBte RWMmodul CS R/W CS 8kBte ROMmodul A 2 -A D 7 -D 57 buss D 7 -D 58