Digital Aritmetik Unsigned Integers Signed Integers"

Relevanta dokument
Talrepresentation. Heltal, positiva heltal (eng. integers)

IE1205 Digital Design: F6 : Digital aritmetik 2

24/09/2013. Talrepresentationer" Digital Aritmetik Unsigned Integers Signed Integers" Positiva Heltal" Addition" Heltal" Addition"

Digital Design IE1204

Digital- och datorteknik

Digital Design IE1204

Digital- och datorteknik

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Datorsystemteknik DVG A03 Föreläsning 3

Digital- och datorteknik

Binär addition papper och penna metod

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

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

IE1204 Digital Design

Digital elektronik CL0090

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

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- och datorteknik

DIGITALA TAL OCH BOOLESK ALGEBRA

Tenta i Digitalteknik

F2 Datarepresentation talbaser, dataformat och teckenkodning

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

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

Tenta i Digitalteknik

Det finns en hemsida. Adressen är

NUV 647E. Digitalteknik och Datorarkitektur 5hp. 3x12 = 36 2x12 = 24 1x12 = 12 0x12 = 18

D0013E Introduktion till Digitalteknik

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

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

Tenta i Digitalteknik

Grundläggande Datorteknik Digital- och datorteknik

Tenta i Digitalteknik

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

Tenta i Digitalteknik

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

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

Tenta i Digitalteknik

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

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

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

Digitalteknik och Datorarkitektur 5hp

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

Mattias Wiggberg Collaboration

Digitala System: Datorteknik ERIK LARSSON

Tenta i Digitalteknik

Tentamen. Datorteknik Y, TSEA28

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

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

Laboration Kombinatoriska kretsar

Datorarkitekturer med operativsystem ERIK LARSSON

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

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

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

Institutionen för elektro- och informationsteknologi, LTH

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

CE_O1. Nios II. Enkla assembler-instruktioner.

TSEA28 Datorteknik Y (och U)

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Grundläggande datavetenskap, 4p

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

Laboration Kombinatoriska kretsar

Objektorienterad programmering Föreläsning 4

Föreläsning 8: Aritmetik och stora heltal

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

Binär aritmetik TSIU02 Datorteknik

Tentamen Datorteknik Y, TSEA28 Datum

PNSPO! Adressering i Omrons PLC. 14 mars 2012 OMRON Corporation

Foto: Rona Proudfoot (some rights reserved) Datorarkitektur 1. Datapath & Control. December

Närliggande allokering Datorteknik

översiktskurs (5DV031)

Digital Design IE1204

Datorteknik ERIK LARSSON

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

EDA215 Digital- och datorteknik för Z

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

2-1: Taltyper och tallinjen Namn:.

Lösningsförslag till tentamen i Digitalteknik, TSEA22

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Digital- och datorteknik

Föreläsning 8: Aritmetik I

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 2. Programmering i C och assembler MIPS instruktionsarkitektur. Institutionen för elektro- och informationsteknologi, LTH

F5 Introduktion till digitalteknik

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

PASS 2. POTENSRÄKNING. 2.1 Definition av en potens

Tentamen. Datorteknik Y, TSEA28

HF0010. Introduktionskurs i datateknik 1,5 hp

Tentamen. Datorteknik Y, TSEA28

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

Datorsystemteknik DVGA03 Föreläsning 8

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

F5 Introduktion till digitalteknik

Mål. Datorteknik. Innehåll. Vad händer med en add-instruktion? Vad händer med en add-instruktion. Instruktioner som bitmönster i minnet

Specifikation av spelen i Rutiga Familjen

Simulering med ModelSim En kort introduktion

Transkript:

Digital Aritmetik Unsigned Integers Signed Integers" Slides! Per Lindgren! EISLAB! Per.Lindgren@ltu.se! Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se!

Talrepresentationer" Ett tal kan representeras binärt på många sätt.! De vanligaste taltyperna som skall representeras är:! Heltal, positiva heltal (eng. integers)! ett-komplementet, två-komplementet, sign-magnitude! Decimala tal med fix tal-område! Fix-tal (eng. fixed-point)! Decimala tal i olika talområden! Flyt-tal (eng. floating-point)! 2!

Positiva Heltal" Positiva Heltal: 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 1 0 1 1 0 1 = 1*2 6 + 1*2 5 + 1*2 3 + 1*2 2 + 1*2 0 = 109 3!

Addition" Carry-out = 0 resultatet OK 5 + 2 7 C 4 =0 0101 + 0010 0111 4!

Addition" Carry-out = 1 resultatet fel 7 0111 +14 + 1110 111 21 10101 c 4 =1 c 3 =1 5!

Heltal" Positiva Heltal: 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 1 0 1 1 0 1 = 1*2 6 + 1*2 5 + 1*2 3 + 1*2 2 + 1*2 0 = 109 Men hur representerar vi negativa tal??? 6!

Två-komplementet" X x X R 0 00 000 0 1 00 001 1 2 n-1-01 111 2 n-1-1 1-2 n-1 10 000 2 n-1-2 11 110 2 n -2-1 11 111 2 n -1 Talområde: -(2 n-1 )..+(2 n-1-1) Decimal komplementering (2 siffror): - 49 10 2-49=51 Binär komplementering (5 siffor): -15 2 5-15=17 Vid två-komplementering inverteras ingående digits, och talet 1 läggs till, dvs (d 1 d 0 ) i basen b representeras som (b-1-d 1 )(b-1-d 0 )+1. Två-komplementet har den egenskapen att addition och subtraktion enkelt kan utföras. Tecken-bit Fördel: En nolla. Nackdel: Risk för overflow 7!

Talkonvertering Positiva till Negativa tal" 01111 +15 10000 invertera 10001 Lägg till ett 10001-15 8!

Talkonvertering Negativa till Positiva tal" 10001-15 01110 Invertera 01111 Lägg till ett 01111 +15

Talkonvertering Positiva till Negativa tal" 01001 +9 10!

Talkonvertering Negativa till Positiva tal" 10111-9

Heltal (2-komplement)" Representation med 2-komplement! B=b N-1 b N-2...b 1 b 0 där b i {0,1} b N-1 b N-2... b 1 b 0 Tecken-Bit (Sign Bit) Decimalvärde D(B)=-b N-1 2 N-1 +b N-2 2 N-2 +...+b 1 2 1 +b 0 2 0 12!

Heltal: (2-komplement)" 000 111 0 001-1 1 110-2 2 010-3 3 101-4 011 100 13!

Sign-extension" Heltal: -2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 1 0 1 1 0 1 = -1*2 6 + 1*2 5 +1*2 3 + 1*2 2 + 1*2 0 = - 45-2 n-1 2 n-2 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 Teckenbiten har negativ vikt 1 1 1 1 1 0 1 1 0 1 Kopiera teckenbiten för att utvidga talområdet genom att använda flera bitar! 14!

Addition av två heltal" X x X R 0 00 000 0 1 00 001 1 2 n-1-01 111 2 n-1-1 1-2 n-1 10 000 2 n-1-2 11 110 2 n -2-1 11 111 2 n -1 X R =x mod 2 n Y R =y mod 2 n ADD(x,y)= x+y mod 2 n = X R +Y R mod 2 n 1111111 01111111 + 01111111 11111110 Overflow uppkommer om additionen hamnar utanför talområdet 15!

Addition" (+5) + (+2) (+7) 0101 + 0010 0111 16!

Addition" (-5) + (+2) (-3) 1011 + 0010 1101 17!

Addition" (+5) + (-2) (+3) 0101 + 1110 1 0011 Carry-biten kan ignoreras! 18!

Addition" (-5) + (-2) (-7) 1011 + 1110 1 1001 Extra carry-biten kan ignoreras! 19!

Overflow" (+5) + (+5) (-6) 0101 + 0101 1 1 1010 Overflow teckenbiten stämmer inte överens med ingående tal... 20!

Overflow (2)" (-5) + (-5) (+6) 1011 + 1011 011 1 0110 Overflow teckenbiten stämmer inte överens med ingående tal... 21!

För 4-bit-tal! Logik för att detektera overflow" Overflow om a 3 = b 3 och b 3 r 3!! Overflow = a 3 b 3 r 3 + a 3 b 3 r 3 Overflow = a n 1 b n 1 r n 1 + a n 1 b n 1 r n 1 22!

Subtraktion" Hur gör man subtraktionen på ett enkelt sätt? A - B = A +(-B)= A +(2 s complement B) = A +(NOT B) + 1 23!

Subtraktion" (+5) - (+2) (+3) 0101-0010???? 0101 + 1101 1 0011 I stället för subtraktion, gör en addition med 2-komplementet! 24!

Subtraktion" (-5) - (+2) (-7) 1011-0010???? 1011 + 1110 1001 25!

Subtraktion" (+5) - (-2) (+7) 0101-1110???? 0101 + 0010 0111 26!

Subtraktion" (-5) - (-2) (-3) 1011-1110???? 1011 + 0010 1101 27!

Tvåkomplementsrepresentation, en sammanfattning" Område: -2 N-1 upp till 2 N-1 1! Negation: Invertera varje bit (det boolska komplementet), addera sedan 1.! Expansion av bitlängd: Lägg till ytterligare bit positioner till vänster om teckenbiten, med samma värde som teckenbiten.! Overflow-regeln: Om två nummer med samma tecken adderas, så har det blivit overflow om resultatet har ett motsatt tecken.! Subtraktionsregeln: För att subtrahera B från A, ta två-komplementet av B och addera till A." 28!

(Alternativt sätt att detektera overflow)" (+7) + (+2) (+9) c 4 =0 c 3 =1 0111 + 0010 011 1001 Overflow eftersom c 4 och c 3 är olika! 29!

(Alternativt sätt att detektera overflow)" (-7) + (+2) (-5) c 4 =0 c 3 =0 1001 + 0010 000 1011 Inte overflow eftersom c 4 och c 3 är lika! 30!

(Alternativt sätt att detektera overflow)" (+7) 0111 + (-2) + 1110 111 (+5) 10101 c 4 =1 c 3 =1 Inte overflow eftersom c 4 och c 3 är lika! 31!

(Alternativt sätt att detektera overflow)" (-7) 1001 + (-2) + 1110 100 (-9) 10011 c 4 =1 c 3 =0 Overflow eftersom c 4 och c 3 är olika! 32!

För 4-bit-tal! (Logik för att detektera overflow)" Overflow om c 3 och c 4 är olika! Annars är det inte overflow!! Overflow = c 3 c 4 + c 3 c 4 = c 3 c 4 För n-bit-tal! Overflow = c n 1 c n 33!

Aritmetisk Hårdvara" 34!

Halv-adderaren (eng. Half adder)" c 0a + 0b cs a b c s 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 a b 0 1 0 1 0 0 0 1 a b 0 1 0 1 0 1 1 0 c = a b s =a b a b HA s c a b s c 35!

Hel-adderaren (eng. Full adder)" c ut c in 0 a + 0 b c ut s a b c in c ut s 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 c in c in ab 00 01 11 10 0 0 0 1 0 1 0 1 1 1 c ut = a b + c in a + c in b ab 00 01 11 10 0 0 1 0 1 a b c in FA s c ut 1 1 0 1 0 s = a b c in 36!

Hel-adderare Komposition med halv-adderare" Vi kan även konstruera en hel-adderare mha två halv-adderare och en ELLERgrind! a b c in FA s c ut a b c in HA HA s cut Komposition tillåter att konstruera nya system med hjälp av kända byggblock! 37!

Hel-adderaren (eng. Full adder)" c ut c in 0 a + 0 b c ut s a b c in c ut s 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 c in c in ab 00 01 11 10 0 0 0 1 0 1 0 1 1 1 c ut = a b + c in a + c in b ab 00 01 11 10 a b c in FA s c ut a b c in HA (s) (c ut ) HA s cut 0 1 0 1 0 1 1 0 1 0 s = a b c in 38!

Mer komposition" Komposition kan även användas för att konstruera n-bit-adderare! Man behöver n hel-adderare för att konstruera en n-bit-adderare! 39!

Ripple-Carry Adderaren (RCA) " a n-1 b n-1 a 1 b 1 a 0 b 0 c utn-1 FA c inn-1 FA c in1 c ut0 FA c in0 s n-1 s 1 s 0 a n-1 b n-1... a 0 b 0 c utn-1 n-bit ADD c in0 T D =n*t FA (c in -> c out ) A=n*A FA s n-1... s 0 40!

Subtraktion" Subtraktion kan göras genom addition med två komplementet! Invertera alla bitar av den andra operanden! Addera 1! 41!

Add/sub-enheten" y n 1 y 1 y 0 Add/Sub = 0: Addition Add/Sub = 1: Subtraktion Add Sub control x n 1 x 1 x 0 c n n -bit adder c 0 s n 1 s 1 s 0 42!

EXEMPEL" y n 1 y 1 y 0 Add/Sub = 0: Addition Add/Sub = 1: Subtraktion Add Sub control x n 1 x 1 x 0 c n n -bit adder c 0 s n 1 s 1 s 0 x = 1010 y = 0110 Add = 0 (addition) 43!

EXEMPEL" y n 1 y 1 y 0 Add/Sub = 0: Addition Add/Sub = 1: Subtraktion Add Sub control x n 1 x 1 x 0 c n n -bit adder c 0 s n 1 s 1 s 0 x = 1010 y = 0110 Add = 1 (subraktion) 44!

Arithmetic Logic Unit (ALU)" Funktionsväljare f 0 f 1 AU LU A/L MUX f 0 f 1 A/L x ALU y c in A/L f1 f0 Funktion 0 0 0 x+y 0 0 1 x-y 1 0 0 x and y 1 0 1 x or y 1 1 0 x xor y 1 1 1 x nor y 45!

EXEMPEL" Funktionsväljare f 0 f 1 AU LU A/L MUX f 0 f 1 A/L x ALU y c in x = 1001 y = 0110 A/L f1 f0 Funktion 0 0 0 x+y 0 0 1 x-y 1 0 0 x and y 1 0 1 x or y 1 1 0 x xor y 1 1 1 x nor y 46!

(Komparator)" Komparatorn implementeras som subtraktionskrets! 47!

A<B (unsigned)" A < B -> A B < 0 R = A B -> A + (-B)! Inspektera Carry-out, 1 -> A<B false e.g 7<2! (+7) 0111 + (-2) + 1110 111 (+5) 10101 c 4 =1 48!

A<B (unsigned)" A < B -> A B < 0 R = A + (-B)! Inspektera Carry-out, 0 -> A<B true e.g 2<7! (+2) 0010 + (-7) + 1001 0 (+5) 01011 C 4 =0 49!

A<B (signed)" A < B -> A B < 0 R = A + (-B)! Inspektera N, 1 -> A<B true e.g 2<7! (+2) 0010 + (-7) + 1001 0 (+5) 01011 N=1 50!

A<B (signed)" A < B -> A B < 0 R = A + (-B)! Inspektera N, 1 -> A<B true, men det stämmer inte (+7) 0111 e.g 7< -5! + (-(-5)) + 0101 0 (+5) 01100 N=1 51!

A<B (signed)" Vi måste även ta hänsyn till overflow! Dvs, A<B -> A-B<0, N xor V = 1! V=1 (A,B samma tecken R motsatt tecken) (+7) + (-(-5)) (+5) 0111 + 0101 0 01100 N=1 52!

A<B " Olika beteende om vi betraktar talen som signed eller unsigned! Unsigned, kolla carry-out! Signed, kolla V xor N! Därför två olika instruktioner i MIPS! SLTU (unsigned)! SLT (signed)! (se MIPS instruktionsuppsättning för fler varianter)! 53!

Sammanfattning" Addition och subtraktion av heltal! Två-komplementet! Subtraktion av ett tal implementeras som addition med dess två-komplement! ALU utför både! aritmetiska (ADD,SUB, SLT/SLTU etc.) och! logiska operationer (AND, OR, etc.)!! D0011E, Digitalteknik!