Datorsystemteknik DVG A03 Föreläsning 3

Relevanta dokument
Institutionen för elektro- och informationsteknologi, LTH

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

Datorteknik. Föreläsning 1. Kursinformation, introduktion, aritmetik. Institutionen för elektro- och informationsteknologi, LTH.

Digital- och datorteknik

IE1205 Digital Design: F6 : Digital aritmetik 2

Digital- och datorteknik

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

Digital Aritmetik Unsigned Integers Signed Integers"

Digital- och datorteknik

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

F2 Binära tal EDA070 Datorer och datoranvändning

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

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

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

F2 Datarepresentation talbaser, dataformat och teckenkodning

Binär addition papper och penna metod

IE1204 Digital Design

Maskinorienterad Programmering /2011. Maskinorienterad Programmering 2010/11. Maskinnära programmering C och assemblerspråk

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

Stack och subrutiner Programmeringskonventionen

DIGITALA TAL OCH BOOLESK ALGEBRA

DE FYRA RÄKNESÄTTEN (SID. 11) MA1C: AVRUNDNING

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

Digital elektronik CL0090

Datorsystemteknik Föreläsning 7DAVA14

Talrepresentation. Heltal, positiva heltal (eng. integers)

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

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

Datorsystemteknik DVGA03 Föreläsning 8

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

Datorsystemteknik DAV A14 Föreläsning 1

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

Datoraritmetik. Från labben. Från labben. Några exempel

Matematik klass 4. Vårterminen FACIT. Namn:

Föreläsning 8: Aritmetik och stora heltal

Matematik klass 4. Vårterminen. Namn: Anneli Weiland Matematik åk 4 VT 1

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

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

Övningsblad 1.1 A. Tallinjer med positiva tal. 1 Skriv det tal som motsvaras av bokstaven på tallinjen.

Digital- och datorteknik

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

DOP-matematik Copyright Tord Persson Övning Bråkräkning. Matematik 1. Uppgift nr 14 Addera 9. Uppgift nr 15 Addera 3. Uppgift nr 16 Subtrahera

Maskinorienterad programmering. Kompendium: Aritmetik för HC12 Roger Johansson, 2013

Ma C - Tek Exponentialekvationer, potensekvationer, logaritmlagar. Uppgift nr 10 Skriv lg4 + lg8 som en logaritm

KW ht-17. Övningsuppgifter

Dra streck. Vilka är talen? Dra pil till tallinjen. Skriv på vanligt sätt. Sätt ut <, > eller =

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

CE_O3. Nios II. Inför lab nios2time

Arbetsblad 1:1. Tiondelar på tallinjen 0,1 0,5 0,9 0,2 0,8 0,3 0,8 1,1 1,5 1,6 2,1 2,4 1,1 1,4 2,6 3,2 3,8

Arbetsblad 1:1. Tiondelar på tallinjen 0,9 1,1 0,8. 6 Sätt ut pilar som pekar på talen: A = 0,3 B = 0,8 C = 1,4

Arbetsblad 1:1. Tiondelar på tallinjen. 6 Sätt ut pilar som pekar på talen: A = 0,3 B = 0,8 C = 1,4

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

n Kap 4.1, 4.2, (4.3), 4.4, 4.5 n Numerisk beräkning av derivata med n Felen kan t ex vara avrundningsfel eller mätfel n Felet kan mätas

Polling (cyklisk avfrågning) Avbrott

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

TAL OCH RÄKNING HELTAL

Grundläggande Datorteknik Digital- och datorteknik

Lösningar till tentamen i EIT070 Datorteknik

Digital- och datorteknik

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

Räkna med C# Inledande programmering med C# (1DV402)

7 november 2014 Sida 1 / 21

Övning log, algebra, potenser med mera

Grunderna i stegkodsprogrammering

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

Algebra, exponentialekvationer och logaritmer

Matematik EXTRAUPPGIFTER FÖR SKOLÅR 7-9

3-5 Miniräknaren Namn:

Binär aritmetik TSIU02 Datorteknik

Kort beskrivning av Sveriges första dator BESK

Föreläsning 8: Aritmetik och stora heltal

Övningsblad2.3Ä. 2 0, 3 j 5. Addition och subtraktion av heltal med algoritm. IQ '-^ff 2 tiotal - 4 tiotal går inte. ' "-Ii? 5 «1.

Datorsystemteknik D. Lösningar till tentamen i kursen EDA330 14/1 2000

3-3 Skriftliga räknemetoder

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

Block 1 - Mängder och tal

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Datorsystemteknik DVGA03 Föreläsning 5

Manual matematiska strategier. Freja. Ettan

Specifikation av spelen i Rutiga Familjen

Teknisk Beräkningsvetenskap I Tema 1: Avrundning och populationsmodellering

Tema: Pythagoras sats. Linnéa Utterström & Malin Öberg

Algoritmer i Treviso-aritmetiken.

Mattestegens matematik

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

Andragradsekvationer. + px + q = 0. = 3x 7 7 3x + 7 = 0. q = 7

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

Sammanfattningar Matematikboken Y

DOP-matematik Copyright Tord Persson. Potensform. Uppgift nr 10. Uppgift nr 11 Visa varför kan skrivas = 4 7

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

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Lösningar till tentamen i EIT070 Datorteknik

Kodningskonventioner (XCC12) Specifikation av strncpy: Övningsexempel: Maskinorienterad Programmering 2011/2012

2-4: Bråktal addition-subtraktion. Namn:.

1Mer om tal. Mål. Grunddel K 1

Sammanfattningar Matematikboken X

Matematik Steg: Bas. Mål att sträva mot Mål Målkriterier Omdöme Åtgärder/Kommentarer

Transkript:

Datorsystemteknik DVG A03 Föreläsning 3 Datoraritmetik Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH

Hur stora tal kan vi få med N bitar? Största talet = 2 n-1 + 2 n-2 + + 2 0 = 2 n -1 8 bitar (byte): 0<= x <=255 16 bitar: 0<= x <=65535 32 bitar: 0<= x <=4 294 967 295

Men negativa tal då? Alla heltal är ju inte naturliga tal. Hur representas negativa tal? Det har funnits försök (1-komplement) med att låta biten längst till vänster vara teckenbit (1: neg. tal) Nackdelar: Två nollor, addition och subtraktion blir konstiga Den bästa (?) representationen: 2- komplement

2-komplementrepresentation av negativa tal Idé: Representera (-1) så att (-1)+1 = 0 på enkelt sätt Exempel: 4 bitars tal. 1=0001. Hur bör (-1) se ut så att (-1)+1=0000 (4bit)? 0001 + abcd = 0000. Lösning: d=1,c=1,b=1,a=1 (-1)=1111 (4bitar) 111 (minnessiffror) 0001 +abcd ------- (1) 0000

Relationen mellan positiva och negativa tal i 2-komplementrepresentation Låt x vara det binära talet x med alla bitpositioner inverterade. Då består x+x av bara ettor! Alltså är x+x =-1 i 2-komplement Förenkla: -x=x +1

2-komplement exempel Hitta 2-komplementrepr av -x då x=18 i 6- bits repr. x = 010010 x = 101101 x +1 = 101110 = (-18) Tillbaka: 101110 -> 010001. 010001+1=010010 = 18

Operationer på binära tal - Addition och subtraktion Addera 17 och 13 i 6-bits 2-komp representation: 1 010001 + 001101 ------------ 011110 = 30

Operationer på binära tal Addition och subtraktion Addera 17 och 15 i 6-bits 2-komp representation: 11111 010001 + 001111 ------------ 100000 = -32 (Jättefel) Vi har fått OVERFLOW. Hårdvaran kan kolla detta!

Overflow vid addition och subtraktion Overflow kan detekteras om : Addition: två positiva tal ger negativt resultat eller två negativa tal ger positivt resultat Subtraktion: Positivt-negativt-> negativt resultat eller negativt-positivt -> positivt resultat.

Fördelarna med 2-komplement Entydig nolla Addition mm blir konsekvent Teckenbit längst till vänster lätt att testa om <0 Enkelt att förlänga ett tal till flera bitar: Ex: ett 8-bits tal förlängs till 32 genom att teckenbiten kopieras till de 24 nya positionerna till vänster. Detta kallas teckenförlängning (sign extension).

MIPS-instruktioner - addition add $s1,$s2,$s3 #Addera 2-kompl talen i #register $s2 och $s3, lägg i $s1 #Kollar overflow addi $s1,$s2,k #Addera konstant K till reg #$s2, lägg i $s1. Kollar #overflow addu $s1,$s2$s3 #Addera positiva tal - kollar ej #overflow. När används den?

MIPS-instruktioner - subtraktion sub $s1,$s2,$s3 #Subtrahera $s2-$s3, lägg i $s1 #Kollar overflow subu $s1,$s2,$s3 #Subtrahera positiva tal - #kollar ej overflow

Operationer på decimala tal Multiplikation och division Multiplikationsalgoritmen från småskolan: Multiplicera (101) 10 (multiplikand) med (110) 10 multiplikatorn (OBS! Basen 10) 101 *110 ------ 000 (0*multiplikanden) 101 (skifta vänster, 1* mult.) 101 (skifta vänster, 1*mult.) -------- 11110 (addera)

Multiplikation av binära tal För binära tal kan det aldrig vara annat än 0 eller 1 i skiften! Annars likadant! 101 *110 ------ 000 (0*multiplikanden) 101 (skifta vänster, 1* mult.) 101 (skifta vänster, 1*mult.) -------- 11110 (addera)

Multiplikation Multiplikation av binära tal består av en serie additioner och skiftningar! Kan göras relativt snabbt (men långsammare än addition )

MIPS-instruktioner för multiplikation och division mult $s1,$s2 #Multiplicera innehållet i #register $s1 med $s2 och lägg #resultatet i specialregister HI #och LO div $s1,$s2 #Dividera $s1/$s2, lägg kvoten #i LO och resten i HI Specialregister HI och LO. Läses på speciellt vis.

Uppdaterad modell av MIPS Generella register $0 $1 $2 $3... $30 $31 Programräknare PC Specialregister HI LO

Hur representeras reella tal? 2,7182818. Lagförslag i county i mellanvästern: pi = 4! 6,02. 10 23 1,609. 10-19 Sådana tal kallas ofta för flyttal -- decimalkommat flyter i representationen. Motsats: fixpunktsrepresentation (används i snabba implementationer av tex bildkodningsalgoritmer).

Flyttal Normaliserade flyttal: t.ex. 1,0. 10 12 Ej normaliserat flyttal: 0,026. 10 2 Normaliserat: 2,6. 10 0 En siffra till vänster om kommat hos signifikanden

Ett normaliserat flyttal Ett decimalt flyttal: tecken Ett binärt flyttal: tecken signifikand -6,234 10 23 signifikand -1.011 2 011 exponent bas exponent bas

Representation av flyttal (IEEE 754) tecken exponent signifikand 1 8 bitar 23 bitar Basen är underförstått lika med 2 Exponenten representeras i excess-127 Signifikanden är ett fixtal x, 0 x < 1 Värdet = (-1) tecken (1.0 + signifikand) 2 (exponent-127) En implicit etta i signifikanden ökar noggrannheten En exponent i excess-format tillåter jämförelser av två flyttal med heltalsinstruktioner

Addition/subtraktion av flyttal Algoritm: 1. Jämför de båda talens exponenter. Skifta det minsta talets signifikand (inkl. implicit etta) till höger så att de båda talens exponenter blir lika stora 2. Addera/subtrahera signifikanderna 3. Normalisera summan (skifta, ändra exponent) 4. Om det blir exponent overflow är det aritmetiskt fel 5. Avrunda signifikanden 6. Om avrundningen medför att talet blir onormaliserat, gå till steg 3 VI BEHÖVER EXEMPEL!

Multiplikation av flyttal är enklare! Algoritm: 1. Addera exponenterna och dra ifrån en excess 2. Multiplicera signifikanderna 3. Normalisera produkten 4. Om det blir exponent overflow är det aritmetiskt fel 5. Avrunda signifikanden 6. Om avrundningen medför att talet blir onormaliserat, gå till steg 3 7. Beräkna produktens tecken