Digital- och datorteknik

Relevanta dokument
Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

Binär addition papper och penna metod

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

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

Digital Aritmetik Unsigned Integers Signed Integers"

F2 Binära tal EDA070 Datorer och datoranvändning

Digital elektronik CL0090

Digital- och datorteknik

F2 Datarepresentation talbaser, dataformat och teckenkodning

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

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Datorsystemteknik DVG A03 Föreläsning 3

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Talrepresentation. Heltal, positiva heltal (eng. integers)

IE1205 Digital Design: F6 : Digital aritmetik 2

DIGITALA TAL OCH BOOLESK ALGEBRA

Grundläggande Datorteknik Digital- och datorteknik

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

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

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

IE1204 Digital Design

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

exempel på Tentamen 2

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Digital Design IE1204

EDA216. Digital- och datorteknik. Diverse kompletterande material

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

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Laboration Kombinatoriska kretsar

Mattias Wiggberg Collaboration

Shannon-Fano-Elias-kodning

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

Föreläsning 7. Felrättande koder

Digitala system EDI610 Elektro- och informationsteknik

Föreläsning 8: Aritmetik och stora heltal

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

2-13 Binära talsystemet Namn:

Digital- och datorteknik

Digital- och datorteknik

Laboration Kombinatoriska kretsar

Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

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

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

Binär aritmetik TSIU02 Datorteknik

Digital Design IE1204

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

Tenta i Digitalteknik

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

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

F2 Datarepresentation talbaser, dataformat och teckenkodning

EDA215 Digital- och datorteknik för Z

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

LEU431. Digital- och datorteknik. Diverse kompletterande material

Styrteknik: MELSEC FX och numeriska värden

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

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

Digital- och datorteknik

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

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.

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

TENTAMEN(Nu anpassad till FLIS- processorn)

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

Tenta i Digitalteknik

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

Digital- och datorteknik

Övningar och datorlaborationer, Datorer i system

Tenta i Digitalteknik

Digital- och datorteknik

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

Adaptiv aritmetisk kodning

Uppgift 1 ( Betyg 3 uppgift )

7 november 2014 Sida 1 / 21

Introduktion till programmering och Python Grundkurs i programmering med Python

Digital- och datorteknik

översiktskurs (5DV031)

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

Digital- och datorteknik

Digital- och datorteknik

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

2-1: Taltyper och tallinjen Namn:.

Institutionen för elektro- och informationsteknologi, LTH

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

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

Tentamen i Digital Design

Laboration i digitalteknik Introduktion till digitalteknik

Analog till Digitalomvandling

AD-DA-omvandlare. Mätteknik. Ville Jalkanen. 1

Analog till Digitalomvandling

5:2 Digitalteknik Boolesk algebra. Inledning OCH-funktionen

Tenta i Digitalteknik

Översikt, kursinnehåll

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Digital- och datorteknik

Transkript:

Digital- och datorteknik Föreläsning #7 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Speciella egenskaper: Systemet arbetar med kodord (s k maskintal) med ett begränsat antal sifferitioner: 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 itiva tal eller både itiva och ativa 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: 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 sifferitioner samt vilken talrepresentation som används. Vi återkommer strax till detta. Givet bas r och n sifferitioner 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, 9999 0, 2 8 1 = 0, 255 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 sifferitioner: Om addition av två tal utan tecken ger en minnessiffra ( carry out ) till sifferition r n har spill inträffat, och talområdets övre gräns har passerats. Demo: decimal addition av talen Demo: binär addition av talen X = 7396 10 Y = 5842 10 1

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 sifferitioner: Om subtraktion av två tal utan tecken kräver ett lån ( borrow ) från sifferition r n har spill inträffat, och talområdets undre gräns har passerats. Negativa tal finns ju inte för tal utan tecken. 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 sifferitioner: Om subtraktion av två tal utan tecken kräver ett lån ( borrow ) från sifferition 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 subtraktion av talen X = 7396 10 Y = 5842 10 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 Demo: binär subtraktion av talen Tecken-belopp-representation: Om vi låter mest signifikant bit (ition 2 n-1 ) i kodordet representera tecken, och de övriga bitarna representera talets belopp (absolutvärde) får vi ett symmetriskt talområde. 1 0 1-1 1 1 1-3 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 itiva och ativa tal. Koden decimalt: Koden binärt: 0 0000 Vi såg tidigare att man med hjälp av en excess-n-kod kan representera både itiva och ativa tal. Givare (Sensor) Spänning t ex [-8V,+8V] Analog/Digital-omvandlare, ADC Analog Man får här spänningen i volt genom att subtrahera 8 från kodordets värde (excess 8). Start Digital w z y x Färdig U = xyzw2 (Binärt kodat värde för spänningen.) 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 2

Kan denna representation, som har teckenbit och bara en nolla, leda till något bättre? Men vad händer om vi inverterar teckenbiten i excess-n-kod? Invertera teckenbit Sortera tabell 0 0 0-4 0 0 1-3 0 1 0-2 0 1 1-1 1 0 1 1 1 1 0 2 1 1 1 3 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 itivt. 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. 0 0 0-4 0 0 1-3 0 1 0-2 0 1 1-1 1 0 1 1 1 1 0 2 1 1 1 3 Men vad händer om vi inverterar teckenbiten i excess-n-kod? Invertera teckenbit Sortera tabell 0 0 0-4 0 0 1-3 0 1 0-2 Detta 0 1 1 kallas -1 för 2-komplementsrepresentation. 1 0 1 1 1 1 0 2 1 1 1 3 2-komplementsrepresentation: Med denna representation fungerar vanlig binär addition med såväl itiva som ativa tal! Man kan alltså addera en godtycklig kombination av itiva och ativa 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 3

2-komplementsrepresentation: Med denna representation fungerar vanlig binär addition med såväl itiva som ativa tal! 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. Man kan alltså addera en godtycklig kombination av itiva och ativa 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 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-2 + -1 = 110 + 111 = 101 = -3 3 + -3 = 011 + 101 = 000 = 0 Vilken egenskap hos 2-komplementsrepresentationen gör att detta är möjligt? 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 sifferitioner 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 ition 2 0 vid addition, tillsammans med 1-komplementet. 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 sifferition 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 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. Demo: binär subtraktion av talen 4

Talområde för tal med tecken: Givet bas r och n sifferitioner blir talområdet för tal med tecken i r-komplementrepresentation: rn, r n 1 Exempel: För decimala tal med 4 siffror blir talområdet 104, 10 4 1 = 5000, 4999 Exempel: För binära tal med 8 bitar blir talområdet 28, 2 8 1 = 128, 127 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 ition 2 n, utan kräver ytterligare analys av talens och resultatets egenskaper. Varför det blir så kommer vi att visa litet senare. 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 ition 2 0 och med slut i ition 2 n-1 : En bitaddition i ition 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 ition 2 i är dels en bit s i i slutresultatet och dels en utgående minnessiffra ( carry out ) c i+1 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 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 5

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 1 0 1 0 1 1 0 1 c i+1 = x i y i x i y i s i c i+1 AND-funktion XOR-funktion 6