En introuktion till Datorteknik för I Roger Johansson Datortekniken ligger till grun för en lång ra välbekanta varagsprlar Mobiltelefoner, meiaspelare; mp3, IPOD igitalboar, "laptops, hemma-bio spelkonsoler mikrovågsugnar huslarm, "smartcars" etc.
Samma teknik ligger också till grun för ett stort antal av samhällets tekniska sstem arbetsstationer bilar flgplan trafiksstem larmsstem robotar processmaskiner meicinsk apparatur rmfarkoster m fl 3 Alla essa tekniska "prlar" och sstem innehåller igitala sstem. Datorsstem t är programmerbara igitala it sstem. Digitala sstem baseras på igital teknik som alltså är funamental för skapanet av atorsstem. Kärnan i ett atorsstem är en mikroprocessor. 4
Mikroelektronikens kt utveckling Antalet transistorer som rms på en kiselbricka i k förubblas var 8-e måna... 5 Talsstem och talomvanling 6
Binär koning Begrepp Tal och talsstem ASCII-ko NBCD 7 Begrepp vi binär koning begrepp betelse eempel... bit/bitar bitsträng binärt or minsta informationsenhet, kan anta två vären eller sekvens av bitar... koor κ 7 κ 6 κ 5 κ 4 κ 3 κ κ κ också ett binärt or men me en fastställ koning (betelse) orläng antal bitar i oret nibble orlängen 4 bitar bte orlängen 8 bitar = A (ASCII) = 65 (naturligt tal) = -7 (heltal) 8
P iti t i lt Positionssstem, -ecimalt Ett N bitars tal N = n+m är n är antalet siffror i heltalselen och Ett N-bitars tal. N = n+m är n är antalet siffror i heltalselen och m är antalet siffror i bråkelen skriver vi allmänt: m m n n ) (....... Minst signifikanta siffra (LSD) Mest signifikanta siffra (MSD) Decimalpunkt Eempelvis, talet:,6,5,4 3 6 5 4 3 3,456 3 Där N=6, n=m=3, varje siffras vikt avgörs av ess position i talet... 9 P iti t llt Positionssstem, generellt Talbasen kan ock vara praktiskt taget va som helst m m m m n n n n ) ( ) (...... Talbasen kan ock vara praktiskt taget va som helst... Eempel: = m m m m n n n n...... ) ( ) ( ) ( Eempel: = m m n n ) ( m m m m n n n n...... ) ( ) ( Vi använer vanligen et enklare skrivsättet )....... ( ) ( m m n n N g
bas bas bas 6 Talbaser ecimalt binärt heaecimalt Vi använer huvusakligen tre olika talbaser: Decimalt, för att vi är vana a vi et. Binärt, för att et motsvarar informationselementen i et igitala sstemet. Heaecimalt, ärför att et är ett bekvämt sätt att skriva grupper av binära siffror Eempel: (3) = () =(D) 6 3 3 4 4 5 5 6 6 7 7 8 8 9 9 A B C 3 D 4 E 5 F Talomvanlingar För talomvanling till basen använer vi efinitionen irekt... Eempel: Omvanla till ecimal form: a) (.) b) (A.8F) 6 Lösning: a) (.) = {N=6, n=m=3, =} = + + + - + - + -3 = 4 + + + /+ /4 + /8 = 6 + 7/8 = (6,875) b) (A.8F) 6 = {N=4 4, n=m=, =6} = 6 + 6 + 8 6 - + 5 6 - = 6 + + 8/6 + 5/56 = 6 + 43/56 = (6,55859375)
Omvanling från N till N. Dela upp N i heltalsel l l och bråktalsel. l. Heltalselen omvanlas via succesiva ivisioner me. 3. Bråkelen omvanlas via succesiva multiplikationer me. Eempel: Omvanla (,8) till binär form. Bråkelen avkortas vi behov till 7 korrekta bråksiffror. 3. Omvanla () till binär form / = 6 + / = 6/ = 3 + / = 3/ = 5 + / = 5/ = 7 + / 3 = Heltalselen sålees: 7/ = 3 + / 4 = 3/ = + / 5 = / = + / 6 = () Terminerings- villkor 4
. Omvanla (,8) till binär form,8 =,36 =,7 =,44 =,88 = 76,76 =,5 =,36 - =,7, - = -,44,88-3 = -4 =,76-5 =,5-6 =,4-7 = Termineringsvillkor enligt uppgiftsteten 7 st. korrekta kt bråksiffror Bråkelen sålees: (.) ) 5 Omvanla till heaecimal form Eempel: Omvanla (,8) 8) till heaecimal form. Bråkelen avkortas vi behov till korrekta bråksiffror. Heltalselen: Bråkelen: /6 = 7 + /6 = () =(A) 6 7/6 = + 7/6 = (7) =(7) 6,8 6 =,88 - = () =() 6,88 6 = 4,8 - = (4) =(E) 6 Svar: (,8) 8) 7A.E 6
Alfanumeriska tecken ASCII American Stanar Coe for Information Interchange Tpiskt använningsområe: Tangentbor 7 7-bitars ASCII koning κ 6κ 5κ 4 κ 3κ κ κ NUL DLE SP @ P ` p SOH DC! A Q a q STX DC B R b r ETX DC3 # 3 C S c s EOT DC4 $ 4 D T 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 HT EM ) 9 I Y i LF SUB * : J Z j z VT ESC + ; K [Ä k {ä FF FS, < L \Ö l ö CR GS - = M ]Å m }å S RS. > N ^ n ~ S US /? O _ o RUBOUT (DEL) 8
ASCII Eempel Tetsträngen t Hej representeras som: H e j Tetsträngen 9756 representeras som: 9 7 5 6 9 Ecess n ko kvantisera signal 3 Använs för att koa bipolära storheter, eempelvis att representera ett spänningsintervall - V < analog signal < Volt -,5 -,5 -,5 -,5,5,5 - -3 uppmätt analog signal Ecess-3 Men också som eponent i IEEE- flttal l (beskrivs nean...)
Flttal l Eempel: Omvanla (,8) till normaliserat tal me fltane bråkpunkt (flttal). Lösning: Vi har tiigare sett att: (,8) = (.) Men etta kan också skrivas: (.) 6 Normalisera mantissa m < Eponent Teckenbit måste finnas, eftersom båe talet och eponenten är bipolära (+/-) +(.) +6 Teckenbit: = + = - tecken //. eponent ecess 8 Normalisera mantissa Här använer vi ecess-n Koning minst 4 bitar behövs här t 6 = (), vs tre bitar Och vi kräver smmetriskt +/-
tecken //. eponent Normalisera mantissa Egentligen onöigt att lagra enna, t en är allti... Vilket leer oss till... 3 IEEE - Flttalsstanar l t flttalsformat noggrannhet i resultat från aritmetiska operationer omvanling mellan heltal och flttal omvanling till/från anra flttalsformat avrunning unantagshantering vi operationer på flttal, eempelvis ivision me och resultat som ej kan representeras av flttalsformatet. Stanaren efinierar fra olika flttalsformat: Single format, totaltt 3 bitar Double format, totalt 64 bitar Single etene format, antalet bitar är implementationsberoene Double etene format, totalt 8 bitar 4
MSB LSB S C F är: F (fractional part) kallas också signifikan, är en normaliserae mantissan, vs en första (implicita) ettan i mantissan utelämnas i representationen och mantissan skiftas ett steg till vänster. På så sätt uppnår vi tterligare noggrannhet eftersom vi får tterligare en siffra i et lagrae talet. C (karakteristika) kt i tik )är eponenten uttrckt på ecess(n) )format, n beror på vilket av e fra formaten som avses. S (sign) är teckenbit för F. Format S C F Single bit 8 bitar ecess(7) 3 bitar Double bit bitar ecess(3) 5 bitar Etene bit 5 bitar ecess(47) 64 bitar 5 Aritmetik 6
Binär aition papper och penna meto Eempel:(5) + (3) =? minnessiffror (5) augen (3) + aen (8) summa 7 Binär multiplikation lik papper och penna meto Eempel: (5) () =? (5) multiplikan l () multiplikator + (75) po proukt 8
Binär subtraktion papper och penna meto Eempel:() - (43) =? minnessiffror () minuen (43) - subtrahen (67) skillna 9 Binär ivision i i papper och penna meto Eempel:(33) : (6) =? ivisori - kvot ivien - - - rest () :() = () + () :() 3
8-bitars aition 8 bitar ger 5 talområet + 6 +.. 8 - =..55 54 + 5 + 59 Spill! ( Overflow ) 3 Geometrisk tolkning - tallinje 5 6 55 3 54 5 Vi säger att C-flaggan, generera från aition av e mest signifikanta bitarna är en spillinikator. 3
8-bitars subtraktion 54-5 - 49 5-6 - 55 För att kunna utföra subtraktionen tvingas vi låna av en tänkt siffra me vikt 8. Spill! ( Unerflow ) 33 Geometrisk tolkning - tallinje 54 49 55 5 6 55 3 Den tänkta lånebiten kallar vi Borrow, en spillinikator. 34
Tal me tecken - Tvåkomplementsform +/- X, N-bitars tal: N- N-... : X : X< X om X N- = N - X om X N- = Eempel: 8-bitars tal +/- 9: +9-9=[56-9=37] 35 Tvåkomplementsform - Meto för teckenbte t X+Y = n Y är -komplementet till X (n-bitars tal) För 8-bitars tal sålees: Y = X k = 8 X = = ( 8 -) X + = 7 6 5 4 3 + Detta kallas -komplement (X k ). Bitvis invertering 36
Eempel: Bestäm maskintalet på 8 bitars tvåkomplementsform för ecimala talet -5 Vi utgår enklast från X=5 (och söker X k) ) (5) = X = X k = + - (5) = X k = 37 Tvåkomplementsform - aition Relation A och B, om: A,B A, B<, A<, B, Utförs A+B som: A+B A+B k = [A+( N -B)] (mo N )= A-B = A + (-B) A k +B = [( N -A)+B] (mo N )= -A+B = B + (-A) AB< A,B< A =[( k +B k N -A)+( N -B)] (mo N )= -A-B B= -(A+B) Dvs. Oavsett vilka tecken e ingåene talen har så fungerar rättfram binär aition. 38
Tvåkomplementsform - subtraktion Vi inser också att en subtraktion kan utföras me hjälp av en aerare t A-B = A+(-B) och B=B k= B k+ Eempel: 6 5=6+(-5)= + + (5) = () Dvs -komplement: () k + 39 Tvåkomplementsform - talområe n n Eempel: 8-bitars tal -8 7 4
Tvåkomplementsform - spillinikatorer A + B är A och B< B -8 7 A ma B ma A Slutsats: Om A och B har olika tecken vi aition kan -komplementspill inte uppträa 4 A + B = S, är A och B A B -8 S 7 S A B Slutsats: Om A och B har samma tecken vi aition kan -komplementspill uppträa. Vi kan konstatera spill genom en teckenöverläggning, vs: spill = (A ) (B ) (S<) 4
A + B = S, är A< och B < B A -8 S 7 B A S I etta fall kan vi skriva spillvillkoret: spill = (A<) (B<) (S ) 43 Vi sammanfattar Tvåkomplementsform är lämplig representation för binära negativa heltal. Subtraktion utförs som aition av tvåkomplement Spillinikator vi aition av naturliga tal [...N] C Carr = c n Spillinikator vi subtraktion av naturliga tal [...N] Borrow = c n Spillinikator vi aition/subtraktion av n-bitars heltal [-M..N] me tvåkomplementsrepresentation: Overflow = s n- n- n- + s n- n- n- 44
Grinar och vippor... 45 Negation, ICKE NOT-grin (Inverterare) satslogik p pp Boolesk algebra TTL (Transistor- Transistor- Logic) sanningstabell funktionstabell f= IEC-smbol f 5 Volt F S Amerikansk smbol S F f f Observera e alternativa skrivsätten inom Boolesk algebra ' Volt 46
Disjunktion, ELLER OR-grin satslogik p q pq Boolesk algebra TTL (Transistor- Transistor- Logic) 5 Volt sanningstabell funktionstabell f=+ IEC-smbol f F F F F S S S F S S S S Amerikansk smbol f f V Volt 47 Konjunktion, OCH AND-grin satslogik p q pq Boolesk algebra TTL (Transistor- Transistor- Logic) sanningstabell funktionstabell f= IEC-smbol & f 5 Volt F F F F S F S F F S S S Amerikansk smbol f f Volt 48
Antalet t ingångar kan utökas 5 Volt z w f= () (zw) f z w f = zw z w Volt Antal ingångar (fan-in), begränsas av använ kretsteknologi. 49 5 Volt z w f = (+)+(z+w) f z w f = ++z+w z w Volt 5
Negera konjunktion, ICKE-OCH NAND-grin satslogik p q (pq) Boolesk algebra TTL (Transistor- Transistor- Logic) sanningstabell funktionstabell f=() IEC-smbol & f 5 Volt F F S F S S S F S S S F Amerikansk smbol f f Volt 5 Negera isjunktion, ICKE-ELLER ELLER NOR-grin satslogik p q (pq) Boolesk algebra TTL (Transistor- Transistor- Logic) 5 Volt sanningstabell funktionstabell f=(+) IEC-smbol f F F S F S F S F F S S F Amerikansk smbol f f V Volt 5
(NOT) Ekluerane ELLER, (ICKE) XOR-grin Dfiiti Definition: = + IEC-smbol funktionstabell = f f= Amerikansk smbol f funktionstabell f=() () = + IEC-smbol = f Amerikansk smbol 53 Kombinatoriska i nät 3 4 m f (,,,..., m ) f (,,,..., m ) f (,,,..., m ) f n (,,,..., m ) Ett kombinatoriskt nät har fit antal ingångar (m-) och fit antal utgångar (n-). Varje utgång har i varje ögonblick et väre som entigt bestäms av insignalerna. Vi introucerar komponenter som bggblock i atorn. 54
Se Arbetsbok, kap. 8 Väljare (Multipleer) l s f f s f s s s f 3 3 4 4 5 5 6 M U X f av 8 väljare 6 s MUX 7 7 3 s s s s s s 8 s 3 3 3 4 4 s 5 s 6 6 7 av väljare 5 av 4 väljare 7 f 55 Binär aition Uppställning för aition av två st. n-bitars tal: c n c n- c n-...c i...c a n- a n-...a i...a a + b n- b n-...b i...b b s n s n- s n-...s i...s s vi koncentrerar oss på a b c s C aition av en bit, säg bit i. c i+ c i i + i = s i a i b i c i s i C i+ Helaeraren, ett kombinatoriskt nät me 3 insignaler och utsignaler a i si s i C i+ b i c i Smbol blför helaerare hl a i P s i b i Q c i CI CO C i+ 56
f 3 f f f U = f(d,e,f,c in ) Operation Resultat ALU-funktioner Bitvis nollställning D(8) E(8) D Funktion C in ALU Flaggor E Bitvis invertering D k Bitvis invertering E k Bitvis OR D OR E U(8) Bitvis AND D AND E ALU:ns logik- och aritmetikoperationer på inata D och E efinieras av ingångarna Funktion (F) och C in enligt tabellen. F = (f 3, f, f, f ). Bitvis XOR D XOR E D + + C in D + C in D + FFH + C in D +C in D + E + C in D + D + C in D + C in "+" och "-" avser aritmetiska operationer. D k menas att samtliga bitar i D inverteras. D +E k + C in D E + C in Bitvis nollställning Bitvis nollställning Bitvis ettställning FFH 57 Sekvensnät 3 4 m Kombinatoriskt nät f (,,,..., m,q,q,...,q i ) f (,,,..., m,q,q,...,q i ) f (,,,..., m,qq,qq,...,qq i ) f n (,,,..., m,q,q,...,q i ) Varje utgång har i varje ögonblick et väre som entigt bestäms av insignaler och tillstån. q e q e q i e i q q q i 58
Latch (låskrets) R Q S Q Q kan ettställas eller nollställas för att ärefter behålla väret. Kopplingen är ett minneselement och kallas SR-latch. R=Reset Funktionstabell S R Q + Q * Smbol S=Set Q Asnkront minneselement 59 Flanktrigga D-vippa Funktionstabell D Q D Q D Q + CP CP Q D D CP Q Snkront minneselement 6
D-vippa me Loa Enable G CP & S D C R S D C G R Strsignalen G ( Gate ) kan använas för att strpa klockpulsen. Då G= behåller vippan sitt väre oavsett va som finns på D-ingången 6 Labart register D D Q D C G D C G Q D D C Q G D 3 D Q 3 C G CP LD D -7, D in Register D 4 D C G Q 4 Q -7, D ut D 5 D C G Q 5 D 6 D C G Q 6 Registrets innehåll påverkas av ingångarnas g nivåer D 7 D Q 7 först vi en klockpuls OCH om LD-signalen är aktiv. C G CP LD 6
Dataväg sammankopplae register Buss D in LD A Register A LD B Register B D ut D ut CP 63 Gi Grin OE Grin OE Grin z z OEz Högst en OE-signal aktiv åt gången... 64
Enkel ataväg me ALU Centralenhet Dataväg Register ALU CP LD A Reg A CP LD B Reg B CP LD T Reg T Bussar Strenhet OE A D E Flaggor F(f,f,f,f 3 ) ALU Strsignaler: C in LD A U LD B LD T CP Reg R LD LD R R OE A OE B OE R OE B F(f OE,f,f,f 3 ) R C in 65 Minnessstem 66
Minnessstem Primärminnen S-RAM, D-RAM, ROM, EPROM, FLASH Sekunärminnen Hårisk Fleskiveenheten Tertiärminnen Banstationer Optiska lagringsmeia 67 Statiskt RAM (966) Dnamiskt RAM (DRAM) 97 Intel i3 4-bit Dnamiskt RAM 56-bit TTL RAM (Fairchil) 68
ROM (965) EPROM (97) MINNE STYRKRETS Intel 33, 4-bit ROM FLASH 988 BLOCK -minnes åtkomst 69 Hårisken IBM 35 (956) Kapacitet 5- MBte 7
Utveckling av lagringskapacitet it t 7 Fleskivan (967),44 MBte 9 kbte 36 kbte 7
Compact Disc(965) Digital Versatile Disc(993) 65-9 MBte 4,7-7 GBte 73 Banstationer ti IBM 34 (97) IBM 7 (949) IBM 76 (95) MB IBM MP35 (996) 3GB/kasett 74
Centralenhetens arbetssätt 75 Centralenhet t och minne 76
Centralenhetens t arbetssätt En centralenhet har minst tre faser : RESET FETCH EXECUTE Åteställning vi spänningstillslag eller av ttre signal Hämta maskininstruktion från minne Utför maskininstruktion 77 Eempel: B+ B B (INCrement B) f3 f f f U = f(d,e,f,cin) Operation Resultat Bitvis nollställning D E Bitvis invertering D k Bitvis invertering E k Bitvis OR D OR E Bitvis AND D AND E Bitvis XOR D XOR E D + + Cin D + Cin D + FF 6 +Cin D +Cin D + E + Cin D+D+Cin D+Cin D +E k +Cin D E +Cin Bitvis nollställning Bitvis nollställning Bitvis ettställning FF 6 Observera att en given operation som regel kan utföras på flera olika sätt. Vi eftersträvar vanligtvis et effektivaste (minst klockckler). 78
IRTN-beskrivningen anger vi, klockpuls för klockpuls, hur atavägen använs. Steg : B D Cin = F=,,, U R Resultatet B+ finns nu i register R. Eftersom bussen är upptagen krävs tterligare steg för att återföra resultatet till B Steg : RTN-beskrivning: B+ R CP: CP: CP3: CP4: R B R B CP5: 79 Program och ata 8
Program och minne John Louis Von Neumann (93-957) Det lagrae programmets princip, vs program och ata i samma minne. Maskinprogram i minnet Tillhörane assemblerprogram Instruktion Aress Data 8 Instruktionsformat t Eempelvis: ADDB Ar OP-ko Ar LDAB #ata OP-ko ata TFR B,A OP-ko Aress Maskinprogram Assemblerprogram Instruktion operan- mnemonic information Bte-wie 8 bitar ata på varje aress 8
HCSDG56, blockiagram 83 Registeruppsättning i CPU 5 8 7 A B D 5 X 5 Y 5 SP 5 PC 7 S X H I N Z V C 8-BIT ACCUMULATORS A AND B OR 6-BIT DOUBLE ACCUMULATOR D INDEX REGISTER X INDEX REGISTER Y STACK POINTER PROGRAM COUNTER CONDITION CODES REGISTER 84
Instruktionsgrupper LOAD-instruktioner Mnemonic Funktion Operation LDAA Loa A (M) A LDAB Loa B (M) B LDD Loa D (M:M+) A:B LDS Loa SP (M:M+) SP H :SP L LDX Loa ine register X (M:M+) M XX H :X L LDY Loa ine register Y (M:M+) Y H :Y L LEAS Loa effective aress into SP Effective aress SP LEAX Loa effective aress into X Effective aress X LEAY Loa effective aress into Y Effective aress Y STORE-instruktioner Mnemonic Funktion Operation STAA Store A (A) M STAB Store B (B) M STD Store D (A) M, (B) M+ STS Store SP SP H :SP L M:M+ STX Store X X H :X L M:M+ STY Store Y Y H :Y L M:M+ MOVE-instruktioner Mnemonic Funktion Operation MOVB Move bte (8 bitar) (M ) M MOVW Move wor (8 bitar) (M:M+) M:M+ 85 EXEMPEL memcop( from, to, size ) Kan (informellt) koas... memcop: LDAB size LDX from LDY to memcop _ loop: memcop_en: TSTB BEQ LDAA STAA DECB BRA RTS memcop_en,x+,y+ memcop_loop 86