Digital- och datorteknik

Relevanta dokument
Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

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

Binär addition papper och penna metod

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

F2 Binära tal EDA070 Datorer och datoranvändning

Digital Aritmetik Unsigned Integers Signed Integers"

Digital elektronik CL0090

Digital- och datorteknik

F2 Datarepresentation talbaser, dataformat och teckenkodning

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

Datorsystemteknik DVG A03 Föreläsning 3

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Talrepresentation. Heltal, positiva heltal (eng. integers)

DIGITALA TAL OCH BOOLESK ALGEBRA

IE1205 Digital Design: F6 : Digital aritmetik 2

Grundläggande Datorteknik Digital- och datorteknik

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

IE1204 Digital Design

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

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Moment 2 - Digital elektronik. Föreläsning 1 Binära tal och logiska grindar

2-14 Binära talsystemet-fördjupning Namn:

EDA216. Digital- och datorteknik. Diverse kompletterande material

Talsystem Teori. Vad är talsystem? Av Johan Johansson

exempel på Tentamen 2

Digital Design IE1204

Det finns en hemsida. Adressen är

Aritmetisk kodning. F (0) = 0 Exempel: A = {1, 2, 3} k=1. Källkodning fö 5 p.1/12

Mattias Wiggberg Collaboration

Laboration Kombinatoriska kretsar

Föreläsning 7. Felrättande koder

2-13 Binära talsystemet Namn:

Datorsystem. Övningshäfte. Senast uppdaterad: 22 oktober 2012 Version 1.0d

Shannon-Fano-Elias-kodning

Digital- och datorteknik

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

Digitala system EDI610 Elektro- och informationsteknik

Föreläsning 8: Aritmetik och stora heltal

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Digital- och datorteknik

Digital- och datorteknik

Flyttal kan också hantera vanliga tal som både 16- och 32-bitars dataregister hanterar.

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

Tenta i Digitalteknik

Laboration Kombinatoriska kretsar

Digital- och datorteknik

Digital- och datorteknik

Binär aritmetik TSIU02 Datorteknik

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

F2 Datarepresentation talbaser, dataformat och teckenkodning

Styrteknik: MELSEC FX och numeriska värden

LEU431. Digital- och datorteknik. Diverse kompletterande material

Digital Design IE1204

Talrepresentation. Ett tal kan representeras binärt på många sätt. De vanligaste taltyperna som skall representeras är:

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

2-5 Decimaltal Namn: Inledning. Vad är ett decimaltal, och varför skall jag arbeta med dem?

Tenta i Digitalteknik

Styrteknik: Binära tal, talsystem och koder D3:1

EDA215 Digital- och datorteknik för Z

Övningar och datorlaborationer, Datorer i system

Tenta i Digitalteknik

Digital- och datorteknik

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

Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.

Digital- och datorteknik

Optimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.

Digital- och datorteknik

Digital- och datorteknik

2-1: Taltyper och tallinjen Namn:.

Uppgift 1 ( Betyg 3 uppgift )

Källkodning. Egenskaper hos koder. Några exempel

PARITETSKONTROLL. Om generatorn i vidstående exempel avkänner ett jämt antal ettor ger den en nolla ut. Detta innebär att överföringen

TENTAMEN(Nu anpassad till FLIS- processorn)

Institutionen för elektro- och informationsteknologi, LTH

Innehåll. Datorteknik. Abstraktionsnivå 1. Spelkonsol - blockschema. Spelkonsol abstraktionsnivå 2. Abstraktionsnivå 2

Tenta i Digitalteknik

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Digital- och datorteknik

Tenta i Digitalteknik

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

CE_O3. Nios II. Inför lab nios2time

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

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Adaptiv aritmetisk kodning

översiktskurs (5DV031)

7 november 2014 Sida 1 / 21

Introduktion till programmering och Python Grundkurs i programmering med Python

Övningar och datorlaborationer, Datorer i system

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

Digital- och datorteknik

Skurlängdskodning. aaaabbbbbbbccbbbbaaaa. Man beskriver alltså sekvensen med ett annat alfabet än det ursprungliga.

a) A = 3 B = 4 C = 9 D = b) A = 250 B = 500 C = a) Tvåhundrasjuttiotre b) Ettusenfemhundranittio

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Minneselement,. Styrteknik grundkurs. Digitala kursmoment. SR-latch med logiska grindar. Funktionstabell för SR-latchen R S Q Q ?

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Transkript:

Digital- och datorteknik Föreläsning #7 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola

Aritmetik i digitala system Speciella egenskaper: Systemet arbetar med kodord (s k maskintal) med ett begränsat antal sifferpositioner: Endast tal inom ett begränsat talområde kan användas Spill ( overflow ) kan uppstå vid en aritmetiska beräkning i de fall då dess resultat hamnar utanför talområdet Systemet använder kodord som representerar antingen enbart positiva tal eller både positiva och negativa tal: En lämplig kodning måste finnas för båda typer av tal Spill måste kunna detekteras oavsett vilken typ av tal som ingår i en beräkning

Talområde: Aritmetik i digitala system Det talområde som gäller för ett digitalt system beror på om man beaktar tal utan tecken eller tal med tecken. För tal utan tecken är minsta möjliga talvärde = 0 För tal med tecken beror minsta möjliga talvärde på antalet sifferpositioner samt vilken talrepresentation som används. Vi återkommer strax till detta. Givet bas r och n sifferpositioner blir talområdet för tal utan tecken: 0, r n 1 Exempel: För decimala tal med 4 siffror blir talområdet Exempel: För binära tal med 8 bitar blir talområdet 0, 10 4 1 0, 2 8 1 = 0, 9999 = 0, 255

Aritmetik i digitala system Addition av tal utan tecken: Räknereglerna för addition är likvärdiga oavsett vilket talsystem som används, och kan anpassas till digitala system med n sifferpositioner: Om addition av två tal utan tecken ger en minnessiffra ( carry out ) till sifferposition r n har spill inträffat, och talområdets övre gräns har passerats. Demo: decimal addition av talen X = 7396 10 Y = 5842 10 Demo: binär addition av talen X = 10101101 2 = 173 10 Y = 01100110 2 = 102 10

Aritmetik i digitala system Subtraktion av tal utan tecken: Räknereglerna för subtraktion är likvärdiga oavsett vilket talsystem som används, och kan anpassas till digitala system med n sifferpositioner: Om subtraktion av två tal utan tecken kräver ett lån ( borrow ) från sifferposition r n har spill inträffat, och talområdets undre gräns har passerats. Negativa tal finns ju inte för tal utan tecken. Demo: decimal subtraktion av talen X = 7396 10 Y = 5842 10 Demo: binär subtraktion av talen X = 10101101 2 = 173 10 Y = 01100110 2 = 102 10

Aritmetik i digitala system Subtraktion av tal utan tecken: Räknereglerna för subtraktion är likvärdiga oavsett vilket talsystem som används, och kan anpassas till digitala system med n sifferpositioner: Om subtraktion av två tal utan tecken kräver ett lån ( borrow ) från sifferposition Hur hanteras r n har spill tal inträffat, med tecken och i talområdets aritmetiken? undre gräns har passerats. Negativa tal finns ju inte för tal utan tecken. Demo: decimal För att subtraktion förstå det av måste talen vi X = definiera 7396 10 en lämplig form av teckenrepresentation. Y = 5842 10 Demo: binär subtraktion av talen X = 10101101 2 = 173 10 Y = 01100110 2 = 102 10

Teckenrepresentation Tecken-belopp-representation: Om vi låter mest signifikant bit (position 2 n-1 ) i kodordet representera tecken, och de övriga bitarna representera talets belopp (absolutvärde) får vi ett symmetriskt talområde. kodord värde 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 0 1 0 1-1 1 1 0-2 1 1 1-3 pos neg Exempel: Med n = 3 bitar och tecken-belopp kan man representera talområdet [ 3,+3]. Observera att talområdet nu förvisso blir symmetriskt (min = 3, max = +3), men att vi samtidigt har fått två nollor (+0 och -0) med olika kodord. Denna representation är inte lämplig då vanlig binär addition inte ger rätt resultat den kräver olika beräkningsmetoder för olika kombinationer av positiva och negativa tal.

Teckenrepresentation Excess-N-representation: Vi såg tidigare att man med hjälp av en excess-n-kod kan representera både positiva och negativa tal. Analog/Digital-omvandlare, ADC Givare (Sensor) Spänning t ex [-8V,+8V] Analog Digital w z y x U = xyzw 2 (Binärt kodat värde för spänningen.) Start Färdig Koden decimalt: Koden binärt: 0 0000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Spänningsvärde: -8V -7V -6V -5V -4V -3V -2V -1V 0V +1V +2V +3V +4V +5V +6V +7V +8V U Man får här spänningen i volt genom att subtrahera 8 från kodordets värde (excess 8).

Teckenrepresentation Excess-N-representation: Kan denna representation, som har teckenbit och bara en nolla, leda till något bättre? kodord värde 0 0 0-4 0 0 1-3 0 1 0-2 0 1 1-1 1 0 0 0 1 0 1 1 1 1 0 2 1 1 1 3 neg pos Exempel: Med n = 3 bitar och excess-4-kod kan man representera talområdet [ 4,+3]. Observera att talområdet nu blir osymmetriskt (min = 4, max = +3), på grund av att talet 0 betraktas som positivt. Denna representation är inte heller helt lämplig då vanlig binär addition inte fungerar direkt, utan kräver att teckenbiten i resultatets kodord inverteras efter additionen för att det skall representera rätt värde.

Teckenrepresentation Excess-N-representation: Men vad händer om vi inverterar teckenbiten i excess-n-kod? Invertera teckenbit Sortera tabell kodord värde kodord värde kodord värde 0 0 0-4 1 0 0-4 0 0 0 0 0 0 1-3 0 1 0-2 neg 1 0 1-3 1 1 0-2 neg 0 0 1 1 0 1 0 2 pos 0 1 1-1 1 1 1-1 0 1 1 3 1 0 0 0 0 0 0 0 1 0 0-4 1 0 1 1 1 1 0 2 pos 0 0 1 1 0 1 0 2 pos 1 0 1-3 1 1 0-2 neg 1 1 1 3 0 1 1 3 1 1 1-1

Teckenrepresentation Excess-N-representation: Men vad händer om vi inverterar teckenbiten i excess-n-kod? Invertera teckenbit Sortera tabell kodord värde 0 0 0-4 0 0 1-3 0 1 0-2 0 1 1-1 neg kodord värde 1 0 0-4 1 0 1-3 1 1 0-2 1 1 1-1 neg Detta kallas för 2-komplementsrepresentation. 1 0 0 0 0 0 0 0 1 0 1 1 pos 0 0 1 1 pos 1 1 0 2 0 1 0 2 1 1 1 3 0 1 1 3 kodord värde 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0-4 1 0 1-3 1 1 0-2 1 1 1-1 pos neg

Teckenrepresentation 2-komplementsrepresentation: Med denna representation fungerar vanlig binär addition med såväl positiva som negativa tal! kodord värde 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0-4 1 0 1-3 1 1 0-2 1 1 1-1 pos neg Man kan alltså addera en godtycklig kombination av positiva och negativa tal, med en och samma metod och utan att behöva göra efterjusteringar: 1 + 2 = 001 + 010 = 011 = 3-1 + 0 = 111 + 000 = 111 = -1-2 + -1 = 110 + 111 = 101 = -3 3 + -3 = 011 + 101 = 000 = 0

Teckenrepresentation 2-komplementsrepresentation: Med denna representation fungerar vanlig binär addition med såväl positiva som negativa tal! kodord värde 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0-4 1 0 1-3 1 1 0-2 1 1 1-1 Man kan alltså addera en godtycklig kombination av positiva och negativa tal, med en och samma metod och utan att behöva göra efterjusteringar: Observera att det i dessa fall verkar som om spill i pos minnessiffran kan 1 + ignoreras 2 = 001 så + länge 010 = som 011 = 3 kvarvarande bitar ger rätt resultat! -1 + 0 = 111 + 000 = 111 = -1 neg -2 + -1 = 110 + 111 = 101 = -3 3 + -3 = 011 + 101 = 000 = 0 Vilken egenskap hos 2-komplementsrepresentationen gör att detta är möjligt?

2-komplementsrepresentation Vad är ett 2-komplement? 2-komplementet till ett tal Y i det binära talsystemet är det tal ( Y) som vid addition av de två talens kodord ger resultatet 0. Mer generellt gäller att r-komplementet till ett tal Y i ett talsystem med bas r är det tal ( Y) som vid addition av de två talens kodord ger resultatet 0. Givet den bas r och det antal sifferpositioner n som ett digitalt system arbetar med definieras r-komplementet för ett tal Y på följande sätt: Y r-komplement = r n Y För binära tal definieras alltså 2-komplementet för ett tal Y som: Y 2-komplement = 2 n Y

2-komplementsrepresentation 2-komplement i praktiken Ett effektivt sätt att arbeta med 2-komplement är att observera följande: Y 2-komplement = 2 n Y = 2 n 1+ 1 Y = (2 n 1 Y) + 1 1-komplement carry-in Uttrycket inom parentes kallas för 1-komplementet av Y, och erbjuder möjligheten att ta komplementet på varje siffra var och en för sig. Den återstående termen 1 använder man sedan som minnessiffra ( carry in ) i position 2 0 vid addition, tillsammans med 1-komplementet. För binära tal betyder det att man byter ut varje bit y i mot 1 y i (vilket ju innebär en logisk invertering av varje bit) Exempel: binärt tal med 8 bitar Y 1-komplement = 2 8 1 Y = 11111111 2 Y För decimala tal kan man på samma sätt använda 9-komplementet.

Aritmetik i digitala system Subtraktion av tal utan tecken: Med 2-komplementaritmetik kan man utföra subtraktionen X Y av två tal utan tecken genom att utföra additionen X + Y 2-komplement Om additionen av två tal utan tecken med 2-komplementaritmetik inte ger en minnessiffra till sifferposition 2 n har spill inträffat. Man inser detta genom att observera att 2-komplementet innehåller en term 2 n som skall finnas kvar i ett resultat utan spill. X Y = X + ( Y) = X + Y 2 komplement = X + 2 n Y = 2 n + X Y Demo: binär subtraktion av talen X = 10101101 2 = 173 10 Y = 01100110 2 = 102 10

Aritmetik i digitala system Talområde för tal med tecken: Givet bas r och n sifferpositioner blir talområdet för tal med tecken i r-komplementrepresentation: rn 2, r n 2 1 Exempel: För decimala tal med 4 siffror blir talområdet 104 2, 10 4 2 1 = 5000, 4999 Exempel: För binära tal med 8 bitar blir talområdet 28 2, 2 8 2 1 = 128, 127

Aritmetik i digitala system Addition och subtraktion av tal med tecken: Aritmetik för tal med tecken kan anpassas till binära digitala system med n bitars kodord på följande sätt: Kodorden har 2-komplementrepresentation. Addition X + Y utförs direkt på kodorden. Subtraktion X Y utförs medelst additionen X + Y 2-komplement. Detektering av spill vid addition eller subtraktion av två tal med tecken kan inte ske enbart via minnessiffran i position 2 n, utan kräver ytterligare analys av talens och resultatets egenskaper. Varför det blir så kommer vi att visa litet senare.

Aritmetik i digitala system Grindnät för addition: Vid manuell addition S = X + Y av två binära heltal X och Y med n bitar kan vi se att beräkningen kan betraktas som en serie av additioner av enskilda bitar, med början i position 2 0 och med slut i position 2 n-1 : En bitaddition i position 2 i tar bit x i från X och bit y i från Y, samt en inkommande minnessiffra ( carry in ) c i Resultatet från en bitaddition i position 2 i är dels en bit s i i slutresultatet och dels en utgående minnessiffra ( carry out ) c i+1 c n c n-1 c i+1 c i c 1 c 0 c n-1 x i x 1 x 0 + y n-1 y i y 1 y 0 s n-1 s i s 1 s 0

Aritmetik i digitala system Grindnät för addition: Man bör alltså kunna bygga en komponent (ett grindnät) för addition av en enskild bit, och sedan seriekoppla (kaskadkoppla) n stycken sådana komponenter för att erhålla en n-bitars adderare. Ett grindnät för bitaddition som inte tar hänsyn till inkommande minnessiffra kallas för en halvadderare ( half adder ). Ett grindnät för bitaddition som tar hänsyn till inkommande minnessiffra kallas för en heladderare ( full adder ). c n c n-1 c i+1 c i c 1 c 0 c n-1 x i x 1 x 0 + y n-1 y i y 1 y 0 s n-1 s i s 1 s 0

Aritmetik i digitala system Grindnät för addition: Härledning av grindnät för en halvadderare: x i y i s i c i+1 s i = x i y i 0 0 0 0 0 1 1 0 c i+1 = x i y i x i s i 1 0 1 0 1 1 0 1 y i c i+1 AND-funktion XOR-funktion