Digital- och datorteknik

Relevanta dokument
Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

Digital Aritmetik Unsigned Integers Signed Integers"

Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4

Digital elektronik CL0090

Binär addition papper och penna metod

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

ÖH kod. ( en variant av koden används i dag till butikernas streck-kod ) William Sandqvist

Grundläggande Datorteknik Digital- och datorteknik

Datoraritmetik. Binär addition papper och penna metod. Binär subtraktion papper och penna metod. Binär multiplikation papper och penna metod

Talrepresentation. Heltal, positiva heltal (eng. integers)

IE1204 Digital Design

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Digital- och datorteknik

IE1205 Digital Design: F6 : Digital aritmetik 2

EDA216. Digital- och datorteknik. Diverse kompletterande material

Tenta i Digitalteknik

Digital- och datorteknik, , Per Larsson-Edefors Sida 1

Laboration Kombinatoriska kretsar

Laboration Kombinatoriska kretsar

Digital- och datorteknik

Digital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen

Digital- och datorteknik

LV6 LV7. Aktivera Kursens mål:

exempel på Tentamen 2

Digital- och datorteknik

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik 2010/2011

Digital- och datorteknik

Tenta i Digitalteknik

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Digitala System: Datorteknik ERIK LARSSON

Digital- och datorteknik

TSEA22 Digitalteknik 2019!

TENTAMEN(Nu anpassad till FLIS- processorn)

Digital Design IE1204

Digital- och datorteknik

Tenta i Digitalteknik

TENTAMEN (Något redigerad)

Det finns en hemsida. Adressen är

ALU:n ska anslutas hur då?

Tenta i Digitalteknik

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Digital- och datorteknik

Tenta i Digitalteknik

Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Tenta i Digitalteknik

Digital- och datorteknik. Lars-Eric Arebrink. Betyg 4: 36 poäng Betyg 5: 48 poäng

Digital- och datorteknik. Lars-Eric Arebrink. Av institutionen utgiven instruktionlista FLEXIBLE INSTRUKTION SET PROCESSOR FLISP

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

Laboration i digitalteknik Introduktion till digitalteknik

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik

Digitala system EDI610 Elektro- och informationsteknik

Centralenheten: ALU, dataväg och minne

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

TENTAMEN. Digital- och datorteknik E. Institutionen för data- och informationsteknik Avdelningen för datorteknik. Elektro Åk 1/ lp 4 EDA216/DIT790

EDA215 Digital- och datorteknik för Z

Försättsblad till skriftlig tentamen vid Linköpings universitet

Digital- och datorteknik

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Datorsystemteknik DVG A03 Föreläsning 3

Digital Design IE1204

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Digital- och datorteknik. Lars-Eric Arebrink. Betyg 4: 36 poäng Betyg 5: 48 poäng

2-1: Taltyper och tallinjen Namn:.

TENTAMEN. Digital- och datorteknik. Institutionen för data- och informationsteknik Avdelningen för datorteknik LEU431. Lars-Eric Arebrink

DIGITAL ELEKTRONIK. Laboration DE3 VHDL 1. Namn... Personnummer... Epost-adress... Datum för inlämning...

Laboration 6. A/D- och D/A-omvandling. Lunds universitet / Fakultet / Institution / Enhet / Dokument / Datum

Digital- och datorteknik

F5 Introduktion till digitalteknik

LEU431. Digital- och datorteknik. Diverse kompletterande material

Digitala elektroniksystem

SMD033 Digitalteknik. Digitalteknik F1 bild 1

Digital- och datorteknik

Exempel 3 på Tentamen

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

Tentamen i Digitalteknik, EITF65

Grunderna i stegkodsprogrammering

Tentamen i Digital Design

Styrteknik: MELSEC FX och numeriska värden

F5 Introduktion till digitalteknik

Addition och subtraktion generalisering

Digital- och datorteknik

Uppgift 1: a) u= a c + a bc+ ab d +b cd

CE_O3. Nios II. Inför lab nios2time

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Tentamen i Digitalteknik 5p

Sekvensnät i VHDL del 2

Tentamen (Svar och lösningsförslag)

F2 Binära tal EDA070 Datorer och datoranvändning

Kihl & Andersson: , 4.5 Stallings: , , (7.3)

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Processor pipelining genom historien (Intel i9-intel i7)

Utvidgad aritmetik. AU

Transkript:

Digital- och datorteknik Föreläsning #8 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik halmers tekniska högskola Vi har sett att man bör kunna bygga en komponent (ett grindnät) för addition av en enskild t, och sedan seriekoppla (kaskadkoppla) n stycken sådana komponenter för att erhålla en n-tars adderare. Ett grindnät för taddition som inte tar hänsyn till inkommande minnesffra kallas för en halvadderare ( half adder ). Ett grindnät för taddition som tar hänsyn till inkommande minnesffra kallas för en heladderare ( full adder ). c n c n- c i c c c n- x x + y n- y i y y s n- s s Härledning av grindnät för en halvadderare: Samma som halvadderare för c i = y i c i y i = c i AND-funktion XOR-funktion y i y i c i Villkorlig inverterare XOR-funktion för c i = NXOR-funktion för c i =

Samma som halvadderare för c i = Samma som halvadderare för c i = c i y i + c i ( + y i ) Men: denna t blir även om vi väljer XOR i stället för OR. Och vi har ju faktiskt redan denna XOR-funktion i halvadderaren. c i y i + c i ( ) y i c i c i y i = c i y i c i y i c i O + c i ( ) Konstruktion av 4-tars adderare: Vi kan nu kaskadkoppla fyra heladderare och få en an- an-2......a an- an-2 a... augendffror...a a 4-tars adderare. + bn- bn-2 Flera... 4-tars...b adderare b addendffror kan sedan sn sn- sn-2... sn...s sn- sn-2 s... summaffror...s s på samma sätt kopplahop för att bygga adderare för 8, 6 eller 32 tars närtal. x y c in rincipen och grindnät rincipen för addition och grindnät av rincipen två för n-tars addition och grindnät tal av två för n-tars addition tal av två n-tars tal O s cn cn- cn-2...ci+ cn ci...c cn- cn-2...ci+ minnesffror cn ci...c cn- cn-2...ci+ minnesffror ci...c minnesffror an- an-2... augendffror...a a augendffror + bn- bn-2... +...b bn- bn-2 b... addendffror...b b addendffror sn sn- sn-2... summaffror...s s summaffror För att addera två n-tars För tal att krävs addera det två enligt n-tars uppställningen För tal att krävs addera det två ovan enligt n-tars n uppställningen grindnät tal krävs som det ovan ldar enligt n uppställningen grindnät som ovan ldar n st grindnät som ldar utgnalerna och ci+ av utgnalerna ingnalerna och, ci+ och av utgnalerna ci, ingnalerna dvs n st heladderare och, ci+ och av ci, med ingnalerna dvs symbol n st heladderare och, och ci, med dvs symbol n st heladderare och med symbol och funktionstabell y x nedan. funktionstabell nedan. funktionstabell nedan. y 2 x 2 y 3 x 3 ci O ci+ ci O ci ci+ O ci+ c 4 Heladderare s Heladderare Heladderare s 2 s 3 ci+ ci ci ci+ Ur funktionstabellen får Ur man funktionstabellen fram och ci+ får på Ur S man funktionstabellen normal fram form: och ci+ får på S man normal fram form: och ci+ på S normal form: ci ci+ = a i'b i'c i + a i'b ic i' + a ib i'c i' = + a i'b a ib i'c ic i + a i'b ic i' (4.2 + ibkm) i'c i' = + a i'b a ib i'c ic i + a i'b ic i' (4.2 + ibkm) i'c i' + a ib ic i = a i'b ic i + a ib i'c i + a ib ic i' + = a ib i'b ic ic i i + a ib i'c (4.3 i + i akm) ib ic i' + = a ib i'b ic ic i i + a ib i'c (4.3 i + i akm) ib ic i' + a ib ic i (4.2 i KM) (4.3 i KM) 2 = (a i b i) c i = (a i b i) c i (4.4 i KM) = (a i b i) c i (4.4 i KM) = a ib i + (a i b i)c i = a ib i + (a i (4.5 b i)c i i KM) = a ib i + (a i (4.5 b i)c i i KM) Motsvarande grindnät: Motsvarande grindnät: Motsvarande grindnät: (4.4 i KM) (4.5 i KM)

Konstruktion av 4-tars adderare: Vi kan nu kaskadkoppla fyra heladderare och få en 4-tars adderare. Flera 4-tars adderare kan sedan på samma sätt kopplahop för att bygga adderare för 8, 6 eller 32 tars närtal. x y c in y x y 2 x 2 y 3 x 3 Vad bestämmer löptiden för adderaren? s rincipen och grindnät för addition av två n-tars tal cn cn- cn-2...ci+ ci...c minnesffror an- an-2......a a augendffror + bn- bn-2......b b addendffror sn sn- sn-2......s s summaffror För att addera två n-tars tal krävs det enligt uppställningen ovan n st grindnät som ldar utgnalerna och ci+ av ingnalerna, och ci, dvs n st heladderare med symbol och funktionstabell nedan. O O ci O ci+ ci O ci+ c 4 s Heladderare s 2 s 3 ci ci+ Konstruktion av 4-tars subtraktionsenhet: Det vore praktiskt om vår 4-tar adderare också kunde användas för subtraktion. Och vi har faktiskt redan sett hur detta skulle kunna gå till: -komplement Y 2-komplement = 2 n Y = 2 n + Y = (2 n Y) + X Y = X + ( Y) = X + Y 2 komplement = X + Y komplement + carry-in Vi kan alltså erhålla subtraktionen X Y genom att addera X till de inverterade tarna i Y (-komplementet) samt lägga till till summan via adderarens carry-in. Ur funktionstabellen får man fram och ci+ på S normal form: = a i'b i'c i + a i'b ic i' + a ib i'c i' + a ib ic i = a i'b ic i + a ib i'c i + a ib ic i' + a ib ic i (4.2 i KM) (4.3 i KM) = (a i b i) c i = a ib i + (a i b i)c i (4.4 i KM) (4.5 i KM) Motsvarande grindnät: Aritmetik i digitala system & & & Konstruktion av 4-tars addition/subtraktionsenhet: ci+ ci Vi kan nu konstruera en enhet för både addition och subtraktion genom att ansluta tarna för Y via villkorliga inverterare. De villkorliga inverterarna styrs av gnalen SUB som väljer om kretsen skall utföra addition (SUB = ) eller subtraktion (SUB = ) med Y. Signalen SUB sätter också rätt värde på carry-in : vid addition och vid subtraktion. Vi återkommer strax till den villkorliga inverteringen vid. ci ci+ Tolkning av resultat Vi har alltså en enhet för både addition och subtraktion som kan arbeta med såväl tal utan tecken som tal med tecken. Fråga: Hur vet enheten vilken typ av tal som används? Svar: Det vet den inte! Den måste därför alltid generera resultat som kan användas för endera typen av tal. 3

Tolkning av resultat Vi har en enhet som kan ge spill vid operationer på tal både med och utan tecken. Fråga: Hur vet man om resultatet har gett spill eller ej? Svar: Enheten måste generera information om spill för båda typer av tal. Det är sedan upp till användaren att tolka resultaten på rätt sätt. Denna information om spill finn s k flaggtar. Flaggtar: Flaggtar användnte bara för att detektera spill utan också för att indikera andra egenskaper hos ett resultat. Som vi skall se senare kan programvaran i en dator konstrueras så att den vidtar olika åtgärder beroende på vilka egenskaper ett resultat har. De vanligast förekommande flaggtarna i ett digitalt system är Z (zero): Z-flaggan indikerar om resultatet av en operation blev. N (negative): N-flaggan indikerar om resultatet av en operation blev negativt (oftast bara av intresse vid aritmetik på tal med tecken) (carry): -flaggan indikerar om resultatet av en operation mellan tal utan tecken resulterade i spill. V (overflow): V-flaggan indikerar om resultatet av en operation mellan tal med tecken resulterade i spill. Z-flaggan: Baserat på resultatet från en aritmetisk operation skall Z-flaggan sättas till när alla tar s n-, s n-2,, s, s i resultatet är lika med. Z = s n s n 2 s s N-flaggan: Baserat på resultatet från en aritmetisk operation skall N-flaggan sättas till när resultatet är mindre än. Då vi använder 2-komplementaritmetik vet vi att resultatet är mindre än när teckenten s n- =. N = s n 4

-flaggan: Vi såg tidigare att carry-out c n = indikerar spill från en n-tars addition av tal utan tecken. Vi såg också att carry-out c n = indikerar spill från en n-tars subtraktion av tal utan tecken när man använder 2-komplementaritmetik. -flaggan: Vi såg tidigare att carry-out c n = indikerar spill från en n-tars addition av tal utan tecken. Vi såg också att carry-out c n = indikerar spill från en n-tars subtraktion av tal utan tecken när man använder 2-komplementaritmetik. Vi kan alltså erhålla -flaggan genom att använda en villkorlig invertering av carry-out c n från additionen, styrd av gnalen SUB. = c n SUB adderas. Resultatet kommer aldrig närmare talområdets gränser än vad något av de två talen gör. gränser än vad något av de av tallinjen. Detta ger oss två möjligheter till spill:. adderas. Addition Resultatet av två potiva kommer tal ger aldrig ett närmare negativt talområdets resultat. gränser än vad något av de två talen gör. gränser än vad något av de av tallinjen. Villkor för spill: x n y n s n 5

Detta ger oss två möjligheter till spill:. adderas. Addition Resultatet av två potiva kommer tal ger aldrig ett negativt närmare resultat. talområdets gränser än 2. vad Addition något av två de två negativa talen gör. tal ger ett potivt resultat. gränser än vad något av de av tallinjen. Villkor för spill: x n y n s n Genom adderas. att Resultatet komnera kommer de två fallen aldrig får vi närmare ett slutligt talområdets villkor för spill gränser vid addition. än vad något av de två talen gör. gränser än vad något av de V av = tallinjen. x n y n s n + x n y n s n Vid subtraktion av tal med samma tecken kan spill aldrig uppträda. För att inse detta påminner vi oss om att subtraktion X Y utförs medelst additionen X + Y 2-komplement. Då måste de två talen som adderas ha olika tecken, vilket vi vet inte kan ge spill. Vid subtraktion av tal med olika tecken kan spill uppträda. Med ett liknande resonemang inser vi att de två talen som adderas har samma tecken, vilket vi vet kan orsaka spill. Vid subtraktion av tal med samma tecken kan spill aldrig uppträda. För att inse detta Vi påminner får alltså vi samma oss om villkor att subtraktion för spill vid X Y subtraktion utförs medelst som additionen vid addition. X + Y 2-komplement. Då måste de två talen som adderas ha olika tecken, vilket vi vet inte kan ge spill. Vid subtraktion av tal med olika tecken kan spill uppträda. Med ett liknande resonemang inser vi att de två talen som adderas har samma tecken, V vilket = x n vi vet y n kan s n orsaka + x n spill. y n s n 6

Aritmetik-/logikenhet (ALU) Aritmetik-/logikenhet (ALU) Ett nytt komnatoriskt nät: Vår adderare kan nu, tillsammans med en uppsättning logikgrindar, användas för att bygga upp en aritmetik- och logikenhet (ALU). Detta nya komnatoriska nät är nödvändigt för att kunna utföra beräkningar i datorn. Gränssnittet mot grindnätet utgörs av ett antal operationsgnaler (F), ett par datngångar (D och E), en datautgång (U) samt fyra flaggtar (Z, N, och V). D (d7,d6,d5,d4, d3,d2,d,d) E (e7,e6,e5,e4, e3,e2,e,e) komnatorik in F (f3,f2,f,f) N V Z U (u7,u6,u5,u4, u3,u2,u,u) ALU tslice : Varje t U i på datautgången ansluts till en väljare ( multiplexer ) som, styrd av operationsgnalerna F, levererar en t av resultatet (en s k tslice ) från den valda operationen. Exempel på operationer i en ALU: addition och subtraktion tvis XOR tvis OR tvis AND tvinvertering tkonstanter och Exempel: Väljare för tslice med åtta operationer. "" INV i AND i OR i XOR i SUB i ADD i "" f f f 2 U i D(8) E(8) Funktion (f3f2ff) in ALU Flaggor Aritmetik-/logikenhet (ALU) U(8) ALU för laboration : f 3 f 2 f f U = f(d,e,f, in ) Operation Resultat Bitvis nollställning D E Bitvinvertering Dk Bitvinvertering Ek Bitvis OR D OR E Bitvis AND D AND E Bitvis XOR D XOR E Den ALU ni möter i laboration arbetar med 8-tars maskintal, och innehåller de operationer vi visade för vår enkla tslice, samt ytterligare ett par varianter av addition. D + + in D + in D + FFH + in D + in D + E + in D + E + in D + D + in 2D + in D +Ek + in D E + in Bitvis nollställning Bitvis nollställning Bitvis ettställning FFH 7