Validering av flyttalsberäkningar och. ForSyDe
|
|
- Stig Isaksson
- för 8 år sedan
- Visningar:
Transkript
1 Validering av flyttalsberäkningar och sinus- och cosinusimplementation på FPGA för ForSyDe Validation of Floating Point calculations and Sine and Cosine implementation on FPGA using ForSyDe HUSSEIN EZZEDDINE Examensarbete inom Elektroteknik, Grundnivå, 15 hp Handledare på KTH: Svante Granqvist Examinator: Thomas Lind TRITA-STH 2014:09 KTH Skolan för Teknik och Hälsa Handen, Sverige
2 2
3 Sammanfattning Denna rapport behandlar två olika implementeringar på FPGA: Pipelinad implementering av flyttal med dubbel-precision samt implementering av cosinus- och sinusfunktion. Uppdraget med examensarbetet är att felsöka varför uppdragsgivarens sinus- och cosinusfunktioner generar felaktigt resultat samt åtgärda upptäckta fel. Under experimentets gång tillämpades flera metoder för att lokalisera fel. Testbänkar skrevs med olika scenarier för att lokalisera fel i flyttalsimplementationen med verktyget ModelSim Altera. ForSyDe användes för att skapa testmodeller som testar sinus- och cosinusfunktionen på en FPGA. Matematiska program som Mathematica samt Matlab användes för att utföra beräkningar med hög precision. Resultaten visar att flyttalsimplementationen genererar korrekt resultat efter att ha åtgärdat upptäckta fel. sinus/cosinus funktionen generar fortfarande fel resultat, dock med en marginell förminskning av fel. Utvärdering av experimentets resultat visar dock att felen som genereras av sinus- och cosinusfunktionen kan elimineras med ett par trigonometriska regler. Nyckelord Flyttal, Dubbel-Precision, Sinus, Cosinus, Maclaurin, FPGA, ForSyDe, Pipeline, Validering 3
4 4
5 Abstract This report deals with two different implementations on a FPGA: Pipelined Double-Precision Floating Point implementation and Sine/Cosine implementation. The purpose of this thesis is to troubleshoot why the Sine/Cosine function generates incorrect results and to alter the errors found. During the experiments, several methods were applied for troubleshooting. Test-benches with different scenarios were written to be used with ModelSim Altera in order to find possible faults in the Floating Point implementation. Test-models were also generated with the tool ForSyDe to test the Sine/Cosine implementation on a FPGA. Mathematical softwares such as Mathematica was used for calculations with high precision. The results indicates that the Floating Point implementation are generating correct results, after fixing the faults found. The Sine/Cosine function still generates faults in the results, but with a marginal reduction of errors. However, evaluation of the results shows that the errors produced by the Sine/Cosine function can be eliminated with a few trigonometric rules. Keywords Floating point, Double-Precision, Sine, Cosine, FPGA, ForSyDe, Pipeline, Validation 5
6 6
7 Förord Jag skulle vilja tacka min handledare Johnny Öberg på KTH ES samt Francisco Robino för deras stöd samt bidrag av kunskap till detta examensarbete. Jag skulle även vilja tacka min handledare Svante Granqvist på KTH STH för att ha bidragit med råd och vägledning under examenarbetets gång, samt för att ha givit mig konstruktiv feedback för rapporten. 7
8 8
9 Innehållsförteckning 1 Inledning Bakgrund Målformulering Avgränsningar Lösningsmetoder Teori Flyttal med dubbel-precision Representation av flyttal Precision IEEE Specialfall IEEE Avrundningsfel Exempel: 6+3 (8 bitar) Implementeringar Flyttalsoperator (Aritmetik) Sinus- och Cosinushårdvaruimplementering Beskrivning av metodik Validering av flyttalsimplementation i ModelSim Altera Felsökning av HW Sinus- och Cosinusfunktion Validering av Maclaurinalgoritm i Mathematica Resultat Resultat efter att ha åtgärdat fel i flyttalsimplementation Resultat: Sinus- och Cosinusfunktion Diskussion och slutsats Källförteckning Bilagor Felmeddelande ModelSim Altera Sammanfattning av fel ModelSim Altera
10 Felsökningsprocedur: Sinus- & Cosinusfunktion Simulering av modell: två olika jämförelser för validering av Maclaurinalgoritm
11 11
12 12
13 1 Inledning 1.1 Bakgrund Antalet processorer på ett chip ökar ständigt och det blir allt vanligare med flerkärniga system. Å andra sidan har förmågan att programmera dessa flerkärniga system inte utvecklats i samma takt som teknologin. Det är en av orsakerna till att programmeringsmetodiken ForSyDe utvecklats. En del av metodiken är att låta ForSyDe importera funktioner som produceras av andra verktyg, exempelvis Matlab/Simulink. Funktionen kan användas som den är, dvs. köras som C-kod (mjukvara) på en av processorerna eller omvandlas till hårdvaruaccelerator med hjälp av transformeringsverktyget Calc2HW. När det kommer till att transformera aritmetiska operationer i form av C- kod till hårdvara, används flyttal med dubbel-precision. Nackdelen är dock att versionen utvecklad av IEEE (IEEE-754) inte är tillräckligt effektiv. Orsaken är för att de aritmetiska operationerna inte använder pipelines, vilket medför att systemets kapacitet inte utnyttjas. Man har därför valt att implementera en egen flyttalsversion med dubbelprecision som använder pipelines. En snabbare hårdvaruversion av sinus- och cosinusberäkningar har även varit av intresse för uppdragsgivaren. Genom att tillämpa flyttalsimplementationen kan man enkelt öka funktionens hastighet. Ett problem som har upptäckts med sinus- och cosinusfunktionen som används i hårdvaran, är att den inte alltid genererar samma resultat i de sista bitarna som dess motsvarighet i mjukvara. Man misstänker att problemet är relaterat till olika avrundningsmetoder i flyttalsimplementationen. 13
14 1.2 Målformulering Följande mål är uppdelade i obligatoriska mål (O.x) samt valfria mål (V.x). O.1 Studera nuvarande testbänk, som är skriven i VHDL. Verifiera att testbänken täcker samtliga tänkbara fall för flyttals aritmetik. O.2 Studera VHDL implementationen av IEEE-754 standarden för de olika aritmetiska operationerna och jämför med den nuvarande implementationen, särskilt avrundningsmetoderna som används. Förslag på korrigeringar ska tilläggas på den nuvarande implementationen. O.3 Testa den slutgiltiga flyttals implementationen i sinus- och cosinusfunktionen med transformeringsverktyget i ForSyDe för att jämföra resultatet med den ursprungliga implementationen. Notera ifall felen har reducerats. V.1 Implementera och testa en ny version av operationen DIV (division) för att göra den snabbare än IEEE standarden V.2 Testa DIV operationen i en demonstratör, eg. en fungerande prototyp av systemet på en FPGA tillsammans med ett testprogram som körs på en de lokala processorerna. 1.3 Avgränsningar Flyttals implementationerna ska vara av formatet dubbel-precision (64 bitar) Implementationerna ska följa IEEE-754 standarden Implementationerna ska klara av en klockfrekvens på 50MHz 1.4 Lösningsmetoder Följande metoder och instrument har bedömts som lämpliga verktyg för att kunna genomföra arbetet: Quartus Altera som är en programmeringsmiljö i VHDL för att programmera FPGA enheter (Hårdvara). ModelSim Altera som är ett simuleringsverktyg för att kunna verifiera och felsöka digitala kretsar. Eclipse Nios II som är en programmeringsmiljö i C för att programmera processorer (Mjukvara). 14
15 Matlab är ett verktyg för att utföra matematiska beräkningar samt rita grafer. Mathematica som är ett verktyg som används för att utföra matematiska beräkningar med hög precision. 15
16 16
17 2 Teori 2.1 Flyttal med dubbel-precision Trots att detta examensarbete är baserat på dubbel-precision (64 bitars flyttal) kommer exemplen att bestå av 8 bitar; principerna är dock fortfarande desamma. Ett av målen är att studera IEEE-754 standarden för flyttal och av den orsaken kommer en del av det teoretiska vara baserat på det. Flyttal är en metod för att representera approximationer av reella tal. Flyttal har en konstant relativ noggrannhet med varierande absolutfel, tillskillnad från exempel fixpunktsmetoden som har en varierande absolutfel och konstant absolutfel. [1] Representation av flyttal Att lagra stora reella tal i form av binära tal i digitala system kräver långa sekvenser av ettor och nollor. Som åtgärd är flyttal baserad på samma idé som grundpotensform. Se ekvation 2.1, där a är reella talet, b basen samt e exponenten. [2] N = a b e ekv. 2.1 Normaliserad grundpotensform Att skriva ett reellt tal i grundpotensform kan utföras på flera sätt, och att låta ett digitalt system hantera alla möjliga former kräver extra kapacitet som i sin tur kan försämra prestandan. Av den orsaken har man valt att endast använda en form, normaliserad grundpotensform. Se kriterium a 10 < a 2 < kriterium
18 Exempel 2.1 klargör proceduren för normalisering av binära tal, med precisionen p = ( ) (Icke normaliserat) ( ) (Icke normaliserat) ( ) (Normaliserat, enligt kriterium 2.1) Exempel 2.1 Normalisering av binärt tal För omvandling från normaliserat binärt tal till decimaltal tillämpas ekvation 2.2. [3] p 1 (1 + bit n 2 n ) ekv. 2.2 n=1 Lagring av flyttal Vid lagring av flyttal har man valt att spara det som en vektor av bitar, arrangerade som i figur Tecken t Exponent e b (n bitar) Mantissa M (m bitar) Figur 2.1 Delarna som ingår för representation av flyttal. Biten innan binära kommat är inte inkluderad i mantissan, utan är underförstådd. 18
19 Tecken t: lagring av negativa tal i digitala system kan vara komplicerat. Av den orsaken har man valt att använda en Teckenbit (t) för att indikera ifall reella talet är negativt eller positivt. Det tar bort behovet av att använda tvåkomplementform eller någon annan metod för att lagra negativa tal. Mantissa M: även kallad signifikant, innehåller samtliga bitar efter binära kommat med precisionen p. Biten innan binära kommat är inte inkluderad i vektorn. Ettan innan binära kommat (eller nollan, beskrivs under fallen för specialfall) är alltid implicit inkluderad och kallas därför för den gömda biten. Exponenten e b : anger hur många steg talet har skiftats åt höger eller vänster. Fastän exponenten kan anta positiva eller negativa värden så är exponenten inte representerad i tvåkomplementform, utan snarare representerad i excessform (kallas även för offset form). Exponenten lagras således endast som positiva värden. För att lagra exponenten e, adderas ett beräknat offsetvärde (ekvation 2.3), och för att läsa exponenten e b subtraheras offset värdet. Offset värde = 2 n 1 1(n = antalet bitar i e b ) ekv. 2.3 För att konvertera ett normaliserat tal i flyttalsformat till ett reellt tal tillämpas ekvation 2.4. [4] N Norm = 1 s 1. M 2 e b offset ekv
20 2.1.2 Precision IEEE-754 Tecken Exponent Mantissa Offset Figur 2.2 Dubbel-precision flyttal, 64-bitar Fast dubbelprecision endast har 52 bitar i fraktionen (se figur 2.2) så kan man i tabell 2.1 observera att precisionen p är 53 bitar. Orsaken är för att den gömda biten alltid är en etta bortsett från denormaliserade tal, beskrivs under specialfall. Tabell 2.1 IEEE-754 format IEEE-754 har valt att e min < e max för att undvika att man överstiger det maximala värdet minnet kan hantera (overflow). Ett exempel är 1 2 e min. Man kan dock understiga det minimala värdet minnet kan hantera (underflow) med e max, men det ser man inte lika allvarligt på eftersom att man oftast kan representera underflow med en nolla. 20
21 2.1.3 Specialfall IEEE-754 Tabell 2.2 Sammanfattad lista över olika typer av fall för flyttal Exponent e Mantissa M Specialfall e = e min 1 M = 0 ±0 (Noll) e = e min 1 M 0 0. M 2 e min (De-norm.) e min e e max M = 1. M 2 e (Normaliserat) e = e max + 1 M = 0 (Oändligt) e = e max + 1 M 0 NaN (Inget reellt tal) IEEE-754 har ett antal reserverade kombinationer för att kunna representera specialfall. Nedan beskrivs samtliga specialfall. För en sammanfattad lista, se tabell 2.2. [5] 1. Talet 0 Detta sker när talet är 0, eller när man understiger det minsta möjliga tal som kan representeras (underflow). Vid ett sådant scenario är den gömda biten en nolla och inte en etta som vid ett normaliserat tal, och ekvationen blir således enligt ekvation 2.5 [6]. Teckenbiten kan vara antingen 0 eller 1. N = 1 sign ekv Figur 2.3 Talet ± 0 21
22 2. De-normaliserade flyttal (gradvis underflow) Tillvägagångssättet för att lagra flyttal med normaliserad grundpotensform ger inte möjlighet att representera tal som är väldigt nära noll. För att åtgärda det har man valt att införa ett specialfall för tal som är mindre än det lägsta talet som kan representeras med normaliserad grundpotensform. [7] e e min 1 f 0 kriterium 2.2 Uppfyller flyttalet kriterium 2.2, då behöver talet inte normaliseras. Man skiftar således fraktionen tills exponenten e antar värdet e min, vilket i sin medför att den gömda biten antar värdet 0. För att omvandla ett de-normaliserat flyttal till ett reellt tal tillämpas ekvation 2.6 [8] N denorm = 1 sign 0. F 2 e min ekv F 0 Figur 2.4 ±De normaliserat tal 3. Oändligt (±overflow) Detta sker när ett tal överskrider intervallet av möjliga tal Figur 2.5 ± (oändligt) 22
23 4. NaN (Inget reellt tal) Detta sker när ett tal är odefinierat, tabell 2.3 visar ett par exempel. [9] F 0 Figur 2.6 NaN (Inget reelt tal) Tabell 2.3 Scenarion som resulterar i NaN Operation Orsak ± ± 0 / 0 0, x(x < 0) Avrundningsfel Mellan två tal finns det oändligt många reella tal, att representera samtliga reella tal är dock inte möjligt med flyttal som består av ett ändligt antal bitar. Avrundningsfel är därför ett faktum med flyttal. [10] Avrundningsmetoder IEEE-754 stödjer följande avrundningsmetoder: avrunda mot 0, avrunda mot +, avrunda mot samt avrunda mot närmaste. Den sistnämnda, avrunda mot närmaste är dock standarden hos IEEE
24 Avrunda mot närmaste följer kriterium 2.3. Tal 0.4 Avrunda ned Tal 0.6 Avrunda upp kriterium 2.3 Ett specialfall är dock när talet är 0.5, det IEEE-754 gör vid ett sådant fall är: avrunda mot ett jämnt tal. Om talet exempelvis är 2.5, då avrundas talet till 2. [11] Noggrannhet Något man bör ta hänsyn till när man arbetar med flyttal är att fördelningen mellan flyttalen inte är jämnt fördelade. Antag att b = 2, p = 2, e min = 2 och e max = 3. De icke negativa talen kan då illustreras enligt figur 2.7 Figur 2.7 Notera att flyttalen ökar med en faktor 2 för varje ökning av exponenten. Mellan exponenterna ska 2 p = 4 flyttal delas över det tillgängliga intervallet mellan två exponenter, och detta leder till att precisionen försämras avsevärt ju högre värde exponenten har. [12] Förbättring av avrundningsfel Det finns flera metoder som kan tillämpas för att minimera avrundningsfel. Man kan exempelvis beräkna talet exakt (oändlig precision) och sedan avrunda. Detta kan dock vara väldigt kostsamt i processorkraft i förhållande till hur mycket felet egentligen minskar. IEEE-754 använder tre extra bitar, vilket medför att precisionen tillfälligt blir p + 3. Man har valt att döpa dessa tre extra bitar enligt följande: skydds-, avrundnings- samt sticky bit. Där sticky bit antar den minst signifikanta biten. Sticky biten har en särskild egenskap; när någon hög bit skiftas genom sticky biten, då kommer sticky biten att förbli hög. [13] 24
25 2.1.5 Exempel: 6+3 (8 bitar) 1. Konvertera till flyttalsformat Bestäm fall Normalisera Lagra Utför operation 1. Skifta minsta talet (M) tills de antar samma exponent 2. Addera 1, , , Bestäm fall Normalisera Lagra , offset = 9 25
26 2.2 Implementeringar Denna sektion beskriver översiktligt metoderna som används vid implementering av flyttals-, sinus- och cosinusberäkningar Flyttalsoperator (Aritmetik) Flyttalsimplementationen använder Alteras megafunktioner [14] för att utföra matematiska operationer; addition, subtraktion samt multiplikation. Fördelen med dessa operationer är att man kan reglera antalet pipeline steg. Pipeline är när man delar upp en seriell operation i flera processer, arrangerade så att utgången av varje process är kopplad till ingången till en annan process. Figur 2.8 illustrerar en pipeline modell. [15] Process 1 Räkna Räkna Räkna Process 2 Analysera Analysera Analysera Process 3 Skriv ut Skriv ut Skriv ut t 0 t 1 t 2 Figur 2.8 Pipeline modell: efter 3 cykler skrivs resultaten ut efter varje cykel. 26
27 2.2.2 Sinus- och Cosinushårdvaruimplementering Vid sinus- och cosinusberäkningar används metoden Taylorutveckling kring 0. Denna metod kännetecknas även vid namnet Maclaurinutveckling [16], se ekvation cos(x) = 1 x2 2! + x4 4! x6 6! + x8 8! = = ( 1) n x2n (2n)! n=0 ekv. 2.7 sin(x) = x x3 3! + x5 5! x7 7! + x9 9! = x 2n+1 = ( 1) n (2n + 1)! n=0 ekv. 2.8 I hårdvaruimplementeringen används de 21 första koefficienterna i Maclaurinutvecklingen för att beräkna sinus- och cosinusvärden. Beräkningar tillämpas med de implementerade flyttalsoperationerna. 27
28 28
29 3 Beskrivning av metodik Flera tillvägagångssätt utfördes för att felsöka samt åtgärda möjliga fel i implementationerna. Denna sektion beskriver samt förklarar varför metoderna nedan används. Mål V.1 samt V.2 (att utveckla en DIV funktion) kommer inte att tas med i Beskrivning av metodik (3) samt Resultat (4) på grund av begränsningar i Alteras megafunktioner. En av begränsningarna är att funktionen inte stödjer antalet bitar som behövs. 3.1 Validering av flyttalsimplementation i ModelSim Altera En testbänk skriven i VHDL, som täcker alla påtänkta beräkningsscenarion, användes för att felsöka flyttalsimplementationen. Ett VHDL-2008 kompatibelt bibliotek som heter IEEE-754 proposed användes som referens för att säkerställa att resultatet från implementationerna är korrekta (ett av målen är att ta hänsyn till IEEE standarden). På grund av att Alteras beräkningsmetodik är pipelinad och IEEE inte är det, måste en fördröjning appliceras på resultaten från IEEE. Detta för att resultaten från implementationen samt IEEE ska matcha varandra tidsmässigt när de kommer in i jämförelseblocket. Figur 3.1 visar testmodellen, där A och B är två insignaler av typen flyttal och ALU består av tre operatorer: ADD, SUB samt MUL. A B FP IMPL. ALU FP IEEE ALU Delay Comparison Figur 3.1 Jämförelse mellan beräkningar från IEEE samt pipelinad implementation 29
30 När en skillnad uppstår mellan IEEE och implementationen i jämförelseblocket skrivs ett felmeddelande ut på terminalen i ModelSim Altera. Figur 3.2 illustrerar upplägget av felmeddelandet. Bilaga 1. Typ av operator och fel s: e b : f Verkligt resultat s: e b : f Förväntat resultat Hela bitmönstret av verkligt resultat I fraktionen Figur 3.2 Felmeddelande, terminal i ModelSim Altera En kortfattad förklaring av upplägget i figur 3.2: Typ av operator och fel : beskriver vilken typ av operator som användes när ett fel upptäcktes, e.g. ADD, SUB eller MUL. Typ av fel kan exempelvis vara avrundningsfel. De två nästa raderna skriver ut resultatet i flyttals representation, där de tre olika delarna är separerade. Verkligt och förväntat resultat är implementationen samt IEEE, respektive. Den sista raden är helt enkelt hela resultatet av fraktionen. Detta medför att man kan inspektera de trunkerade bitarna. Felmeddelandet förenklar proceduren för felsökning, vilket gör det enkelt att spåra fel som uppstår i koden. 30
31 De applicerade testfallen kan ses i tabell 3.1. A B betyder att en av ingångarna A eller B antar värden från en ingångskolumn, samtidigt som den andra antar värden från den andra ingångskolumnen. Efter att sekvensen utförts, roteras ingångskolumnerna så att A och B byter värden med varandra. och 0 betyder att värdet sakta går mot oändligheten eller mot 0 (värdet innan multipliceras 2 och 0.5 för varje iteration), respektive. Tabell 3.1 Olika testscenarion för testbänken Ingång Resultat A B Normal Normal Normal Normal Denormal Normal Normal Denormal Denormal Denormal Denormal Noll Y När testbänken exekverat samtliga tester, skrivs följande ut i terminalen: antalet iterationer, antalet fel samt hur många gånger en viss typ av fel uppstått. Detta för att ge en sammanfattad bild av samtliga fel. Bilaga 2. För att säkerställa att de modifierade koderna i flyttalsimplementationerna är korrekta utförs ytterligare testfall med andra beräkningsscenarion. Orsaken är för att det kan finnas en sannolikhet att man inte utfört tillräckligt många stickprov. 31
32 3.2 Felsökning av HW Sinus- och Cosinusfunktion Figur 3.3 HW-accelerator & SW SINUS/COSINUS modell, ForSyDe För att bekräfta att resultaten från hårdvaruacceleratorn med sinus- och cosinusimplementeringen är korrekta används dess motsvarighet i mjukvaran som referens. I verktyget ForSyDe, beskrivs ett system som en uppsättning av kommunikationsprocesser. Processer tilldelas sedan till processornoder. I detta test är en modell i ForSyDe upplagd med fyra olika noder. [17-19] Process P 0 sänder testvärden till process P 1 och P 3. Där värdena är fördefinierade, mellan 2π α 2π. P 1 och P 3 beräknar sinus- och cosinusvärden och skickar deras resultat till P 2, som skriver ut deras resultat i en terminal på datorn. De tre processerna (P 0, P 2 och P 3 ) är implementerade i mjukvara (SW) och P 1 i en hårdvaruaccelerator. Se figur 3.3. Hela systemet körs på en FPGA- 32
33 bräda (Altera DE-115) med en samplingsfrekvens på 1Hz så att användaren kan se resultaten ticka på terminalen. Verktyget ForSyDe genererar alla nödvändiga filer som behövs för att skapa en modell enligt figur 3.3. Quartus Altera och Eclipse Nios II används sedan för att ladda upp hårdvara- och mjukvaruinformation, respektive, till FPGA-plattformen. Resultaten utläses från nod P 2 genom JTAG med Eclipse Nios II. För att säkerställa att all information uthämtats, skrivs värdena ut i hexadecimalformat. Detta är dock väldigt besvärligt för en människa att läsa. P 2 skriver därför istället ut nödvändiga kommandon som behövs för att göra det möjligt att kopiera & klistra resultat för jämförelse i ett referensverktyg (figur 3.4), Mathematica eller Matlab. I detta fall används Mathematica, för att erhålla ett felfritt värde upp till erforderlig precision. För att få en visuell bild av hur felen minimerats efter att ha åtgärdat fel i flyttalsimplementationen används Matlab för att rita en graf av båda fallen, skillnad innan och efter man åtgärdat fel. Bilaga 3. Figur 3.4 Kommandon i Eclipse Nios II Differens i Mathematica Kopiera & Klistra 33
34 3.3 Validering av Maclaurinalgoritm i Mathematica Ett till test utförs för att verifiera att felen i sinus- och cosinusimplementeringen endast är relaterat till beräkningarna i flyttalsimplementationen, och inte till avrundningsfel i koefficienterna. I teorin nämns det att inte alla reella tal kan representeras i flyttalsformat (figur 2.7). Därför kan det finnas en sannolikhet att avrundningsfelen i koefficienterna inte är försumbara. Därför används Mathematica för att simulera två scenarion för att bekräfta om ovannämnda beteende kan försummas eller inte. En jämförelse dras mellan den inbyggda sinus- och cosinusfunktionen och en annan som använder Maclaurin algoritmen med samma antal koefficienter som i hårdvaruimplementeringen. I den första jämförelsen använder Maclaurinalgoritmen endast koefficienter med högprecision i Mathematica, och i den andra jämförelsen är koefficienterna konverterade till flyttalsformat och sedan tillbaka till reella värden. Bilaga 4. Värdena som används är detsamma som i sektion 3.2: 2π α 2π. Detta tillåter en att även kunna göra en jämförelse med resultaten i 3.2. För att få en visuell bild används Matlab för att rita graferna. 34
35 35
36 36
37 4 Resultat Under denna sektion är varje delsektion i Resultat (4) relaterat till varje delsektion under Beskrivning av metoder (3). 4.1 Resultat efter att ha åtgärdat fel i flyttalsimplementation Resultatet under denna delsektion (4.1) är sammankopplat till Validering av flyttals implementation i ModelSim Altera (3.1). Nedan visas tre tabeller som presenterar mängden fel som uppstått i flyttalsimplementationen, tabell Tabell 4.1 antal fel - innan fel åtgärdat i flyttalsimplementering De feltyper som sträcker sig från oändligt till denormal informerar vad resultatet borde ha varit. Exempelvis bör 21 resultat i MUL ha varit av typen oändligt men istället visade sig vara något annat. Stickprov: Operator 5167 Feltyp: MUL ADD SUB Avrundning Oändligt NaN Noll Normal Denormal Annat Totalt fel: antal
38 Tabell 4.2 Antal fel - efter att ha åtgärdat fel i flyttalsimplementering Stickprov: Operator 5167 Feltyper: MUL [5167] ADD [5167] SUB [5167] Avrundning Oändligt NaN Noll Normal Denormal Annat Totalt fel: antal Tabell 4.3 Antal fel Verifiering av tabell 4.2 Stickprov: Operator 5167 Feltyper: MUL [5167] ADD [5167] SUB [5167] Avrundning Oändligt NaN Noll Normal Denormal Annat Totalt fel: antal
39 4.2 Resultat: Sinus- och Cosinusfunktion Denna delsektion visar resultaten från två delsektioner: Felsökning av HW Sinusoch Cosinusfunktion (3.2) samt Validering av Maclaurinalgoritm i Mathematica (3.3). Figur består av fyra olika simuleringar sammanfogade under respektive graf. Den blåa samt röda linjen är relaterat till delsektion 3.2 och den svarta samt gröna linjen är relaterat till delsektion 3.3. Den röda- samt blåa linjen motsvarar beräkningar med FPGA (differens mellan hårdvara samt mjukvara) innan man åtgärdat fel och efter att ha åtgärdat fel i flyttalsimplementation, respektive. Den svarta- samt gröna linjen motsvarar beräkningar i Mathematica, differens mellan Maclaurinalgoritm samt inbyggd sinus- och cosinusfunktion. E tot = e 13 innan E totefter = e 13 Förbättring = E tot efter E totinnan 20.8% Figur 4.1 Sinus-Förbättring efter att ha åtgärdat fel i % E tot = e 13 innan E totefter = e 13 Förbättring = E tot efter E totinnan 26.3% Figur 4.2 Cosinus-Förbättring efter att ha åtgärdat fel i % 39
40 Figur 4.3 Sinus - Figur 4.4 Cosinus - 40
41 41
42 42
43 5 Diskussion och slutsats Testbänken som utformades under examensarbetets gång har visat sig vara ett väldigt effektivt verktyg för att lokalisera fel i flyttalsimplementationerna. De olika parametrarna i felmeddelandet som skrivs ut i terminalen när ett fel upptäcks bidrar till att man enkelt vet vilka sektioner i koderna man ska granska samt modifiera. Mer än 10,000 stickprov användes totalt för att vara på säkra sidan att man upptäckt samtliga potentiella fel. Innan detta examensarbete utfördes fanns det misstankar om att felen som uppstod i sinus- och cosinusimplementationen ursprungligen kom från olika avrundningsmetoder i flyttalsimplementationen jämfört med IEEE De olika stickproven som användes i testbänken har dock visat att även andra fel än avrundningsfel existerar i flyttalsimplementationerna. Man har dock enkelt lyckats eliminera samtliga lokaliserade fel effektivt med hjälp utav de olika parametrarna från felmeddelandena. Trots att flyttalsresultaten nu matchar IEEE-754 enligt testbänken i ModelSim Altera, genererar hårdvaruacceleratorn fortfarande felaktiga resultat från sinus- och cosinusimplementationen, dock med en reducering av medelfel med ~20.8% samt ~26.3% för sinus och cosinus, respektive. Experimentet visar oss att felen producerade från HW sinus- och cosinusfunktion inte har sitt ursprung från flyttalsberäkningar, utan snarare från otillräcklig precision i koefficienterna representerade i flyttalsformat i Maclaurinalgoritmen. 43
44 Denna slutsats kan verifieras med följande punkter (med hänsyn till figur 4.3-4): 1. Den gröna linjen, som representerar differensen mellan Maclaurinalgoritmen med reella koefficienter (samma antal som i hårdvaruimplementeringen) och dess inbyggda funktion, beräknat i Mathematica med hög precision, visar att det inte finns någon skillnad mellan båda algoritmerna. Slutsats 1: Felet är inte pga. för få koefficienter. 2. Den svarta linjen, samma som punkten ovan. Skillnaden är dock att Maclaurinkoefficienterna är omvandlade till flyttals format och sedan tillbaka till reella tal. Svarta linjen visar däremot att det nu finns en märkbar skillnad mellan båda algoritmerna. Slutsats 2: Avrundningsfelen i Maclaurinkoefficienterna som introduceras vid konvertering till flyttalsformat kan inte försummas. 3. Den svarta linjen följer samma mönster som hårdvarans resultat (blå och röd linje). Slutsats 3: Indikerar att den blåa linjen (HW sinus & cosinus) har samma typ av fel som svarta linjen. Slutsatsen måste därför vara att det inte är möjligt att implementera en sinus- och cosinusfunktion med tillräcklig precision (fel < 1 LSB) med Maclaurinalgoritm. Graferna visar dock att felen mellan π α π är tillräckligt små. Genom 2 2 att beräkna samtliga värden inom första kvadranten, kan problemet lösas. Detta kan implementeras genom att utnyttja följande samband: Kvadrant Sinus Cosinus 1. Sin(α) Cos(α) 2. Sin(α) Cos(90 + α) Sin(α) 3. Sin(270 + α) Cos(α) Cos(180 + α) Cos(α) 4. Sin(180 + α) Sin(α) Cos(270 + α) Sin(α) 44
45 Man kan ta sambandet ovan ytterligare ett steg längre, att utföra samtliga beräkningar i den första halva kvadranten, vilket skulle resultera i att man har 8 olika samband att ta hänsyn istället. Detta skulle medföra att resultaten uppnår bättre precision. Det är dock en fråga om uppoffring: precision eller kapacitet. Orsaken till att mål V.1 (implementering av operatorn DIV) inte uppnåddes är för att Alteras megafunktion inte stödjer tillräckligt många bitar som behövs för att kunna utföra beräkningarna. För att lösa detta problem behöver man utveckla en egen DIV operator som stödjer dubbel-precision. Tid och utrymme har dock inte varit tillräckligt under examensarbetets gång för att lösa detta problem och kan därför vid intresse utföras i ett framtida arbete. De obligatoriska målen 1-2 har uppnåtts med väldigt goda resultat. Testbänken har modifierats så att endast utskriften av felmeddelandet i terminalen (ModelSim Altera) är nödvändigt. Även flera stickprov har lagts till i testbänken. Innan hade man endast lokaliserat fel relaterat till avrundningsfel, nu har man dock lyckats upptäcka många andra fel. Samtliga upptäckta fel har korrigerats, samt att flyttalsimplementationerna nu även följer IEEE-754 standarden. Syftet med mål 3 var att endast jämföra HW och SW sinus- och cosinusfunktionerna samt notera ifall resultaten förbättrats efter att ha åtgärdat fel i flyttalsimplementationerna. Fler experiment har däremot utförts för att lokalisera ursprungskällan för fel, vilket visade sig vara koefficienterna i Maclaurinalgoritmen, som inte erhåller tillräckligt hög precision. 45
46 46
47 Källförteckning [1] Mark Zwolinski, 2004, Digital System Design with VHDL, s.34 [2] Bagenal, Frans, University of Colorado at Boulder, Scientific Notation, [3] Douglas A. Kerr, 2011, Scientific Notation and Floating point Representation, [4] Peter J. Ashenden, Digital Design: An Embedded Systems Approach Using VHDL, s.141, 2014 [5] Goldberg, David, 1991, What Every Computer Scientist Should Know About Floating Point Arithmetic, s , 2014 [6] Goldberg, David, s.157 [7] Goldberg, David, s.186 [8] Finley, Thomas, 2000, Floating Point, [9] Goldberg, David, s.181 [10] Goldberg, David, s.157 [11] Goldberg, David, s.191 [12] Goldberg, David, s.158 [13] Goldberg, David, s.177 [14] Altera, 2014, Integer Arithmetic IP Cores User Guide, [15] National Instruments, 2011, Programming Strategies For Multicore Processing: Pipelining, 2014 [16] Girardi, Maria, Professor, University of South Carolina, Taylor Series, pdf, 2014 [17] J. Öberg, F. Robino, 2011, A NoC Generator for the Sea-of-Cores Era, ACM Digital Libraries, 2014 [18] ] F. Robino, J. Öberg, 2013, The HeartBeat model: a platform abstraction enabling fast prototyping of real-time applications on NoCbased MPSoC on FPGA, 2014 [19] 47
48 48
49 Bilagor 1. Felmeddelande ModelSim Altera 49
50 2. Sammanfattning av fel ModelSim Altera 50
51 3. Felsökningsprocedur: Sinus- & Cosinusfunktion Kopiera & Klistra in Mathematica Differens mellan SW och HW Sinus & Cosinus Matlab Plotta differensen Beräkningar sparas i Matlab dokument 51
52 4. Simulering av modell: två olika jämförelser för validering av Maclaurinalgoritm Mathematica Inbyggd Sinus/Cosinusfunktion Differens Maclaurinalgoritm (Reella koefficienter) Maclaurinalgoritm (Konv. koefficienter) Matlab Plotta grafer 52
53 53
IE1205 Digital Design: F6 : Digital aritmetik 2
IE1205 Digital Design: F6 : Digital aritmetik 2 Talrepresentationer Ett tal kan representeras binärt på många sätt. De vanligaste taltyperna som skall representeras är: Heltal, positiva heltal (eng. integers)
Datorsystemteknik DVG A03 Föreläsning 3
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
Föreläsning 8: Aritmetik och stora heltal
2D1458, Problemlösning och programmering under press Föreläsning 8: Aritmetik och stora heltal Datum: 2006-11-06 Skribent(er): Elias Freider och Ulf Lundström Föreläsare: Per Austrin Den här föreläsningen
Teknisk Beräkningsvetenskap I Tema 1: Avrundning och populationsmodellering
Teknisk Beräkningsvetenskap I Tema 1: Avrundning och populationsmodellering Eddie Wadbro 5 november 2014 Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (1 : 21) Innehåll Datoraritmetik
Datoraritmetik. Från labben. Från labben. Några exempel
Datoraritmetik Beräkningsvetenskap I Från labben Två huvudtyper av fel: diskretiseringsfel och avrundningsfel Olika sätt att mäta fel: relativt fel, absolut fel Begreppen ε M, Inf, NaN, overflow, underflow,
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
Datoraritmetik Beräkningsvetenskap I/KF Kursboken n Kap 4., 4., (4.3), 4.4, 4. n I kap 4.3 används Taylorutvecklingar. Om du ännu inte gått igenom detta i matematiken, kan du oppa över de delar som beandlar
LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M
TANA21+22/ 5 juli 2016 LAB 1. FELANALYS 1 Inledning I laborationerna används matrishanteringsprogrammet MATLAB. som genomgående använder dubbel precision vid beräkningarna. 1.1 Innehåll Du ska 1. bestämma
7 november 2014 Sida 1 / 21
TANA09 Föreläsning 2 Talrepresentation i datorer. Flyttalssystem. Datoraritmetik och Beräkningsfel. Beräkningsfelsanalys och Kancellation. Serier och Resttermsuppskattningar. Tillämpning - Beräkning av
Digital- och datorteknik
Digital- och datorteknik Föreläsning #24 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Allmänt Behovet av processorinstruktioner för multiplikation
Flyttal kan också hantera vanliga tal som både 16- och 32-bitars dataregister hanterar.
FLYTTAL REAL Flyttal används i datorsystem för s k flytande beräkning vilket innebär att decimalkommat inte har någon fix (fast) position. Flyttal består av 2 delar (mantissa och exponent). När ett datorsystem
Föreläsning 8: Aritmetik och stora heltal
DD2458, Problemlösning och programmering under press Föreläsning 8: Aritmetik och stora heltal Datum: 2007-11-06 Skribent(er): Martin Tittenberger, Patrik Lilja Föreläsare: Per Austrin Denna föreläsning
IE1204 Digital Design
IE1204 Digital Design F1 F3 F2 F4 Ö1 Booles algebra, Grindar MOS-teknologi, minimering F5 F6 Ö2 Aritmetik Ö3 KK1 LAB1 Kombinatoriska kretsar F7 F8 Ö4 F9 Ö5 Multiplexor KK2 LAB2 Låskretsar, vippor, FSM
F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!
F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Von Neumann-arkitekturen Gemensamt minne för programinstruktioner och data. Sekventiell exekvering av instruktionerna.
Fel- och störningsanalys
Fel- och störningsanalys 1 Terminologi Antag att x är ett exakt värde och x är en approximation av x. Vi kallar då absoluta felet i x = x x, relativa felet i x = x x x. Ofta känner vi inte felet precis
ÖH kod. ( en variant av koden används i dag till butikernas streck-kod ) William Sandqvist
ÖH 8.4 7-4-2-1 kod Kodomvandlare 7-4-2-1-kod till BCD-kod. Vid kodning av siffrorna 0 9 användes förr ibland en kod med vikterna 7-4-2-1 i stället för den binära kodens vikter 8-4-2-1. I de fall då en
Approximation av funktioner
Vetenskapliga beräkningar III 8 Kapitel Approximation av funktioner Vi skall nu övergå till att beskriva, hur man i praktiken numeriskt beräknar funktioner I allmänhet kan inte ens elementära funktioner
TANA17 Matematiska beräkningar med Matlab
TANA17 Matematiska beräkningar med Matlab Laboration 1. Linjär Algebra och Avbildningar Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion I denna övning skall
Maskinorienterad Programmering - 2010/2011. Maskinorienterad Programmering 2010/11. Maskinnära programmering C och assemblerspråk
Maskinorienterad Programmering 2010/11 Maskinnära programmering C och assemblerspråk Ur innehållet: 32-bitars aritmetik med 16-bitars processor IEEE754 flyttal Maskinnära programmering - C 1 CPU12, ordlängder
Uppgift 1 ( Betyg 3 uppgift )
2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal
f (a) sin
Hur kan datorn eller räknedosan känna till värdet hos till exempel sin0.23 eller e 2.4? Denna fråga är berättigad samtidigt som ingen tror att apparaterna innehåller en gigantisk tabell. Svaret på frågan
F2 Datarepresentation talbaser, dataformat och teckenkodning
F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Jonas Wisbrant Datarepresentation I en dator lagras och behandlas all information i form av binära tal ettor och nollor.
Fel- och störningsanalys
Fel- och störningsanalys Terminologi Antag att x är ett exakt värde och x är en approximation av x. Vi kallar då absoluta felet i x = x x, relativa felet i x = x x x. Ofta känner vi inte felet precis utan
TANA19 NUMERISKA METODER
HT2/2016 LINJE+ÅK+KLASS : TANA19 NUMERISKA METODER Laboration 1 Felanalys Namn : Personnummer : E-post : @student.liu.se Namn : Personnummer : E-post : @student.liu.se Godkänd datum : Sign : Retur : 1
Digital Aritmetik Unsigned Integers Signed Integers"
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
Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik
Digitalteknik 3p, vt 01 Struktur: Elektroteknik A Kurslitteratur: "A First Course in Digital Systems Design - An Integrated Approach" Antal föreläsningar: 11 (2h) Antal laborationer: 4 (4h) Examinationsform:
Grunderna i stegkodsprogrammering
Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer
TAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Laboration 3. Linjär algebra Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion 2 En Komet Kometer rör sig enligt ellipsformade
DIGITAL ELEKTRONIK. Laboration DE3 VHDL 1. Namn... Personnummer... Epost-adress... Datum för inlämning...
UMEÅ UNIVERSITET Tillämpad fysik och elektronik 2014 John Berge et al. DIGITAL ELEKTRONIK Laboration DE3 VHDL 1 Namn... Personnummer... Epost-adress... Datum för inlämning... Introduktion Syftet med denna
Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45
Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45 Adderare Addition av två tal innebär att samma förfarande upprepas för varje position i talet. För varje position sakapas en summasiffra och en minnessiffra.
Föreläsning 8: Aritmetik I
DD2458, Problemlösning och programmering under press Föreläsning 8: Aritmetik I Datum: 2009-11-03 Skribent(er): Andreas Sehr, Carl Bring, Per Almquist Föreläsare: Fredrik Niemelä 1 Flyttal Att representera
Datorsystem. Övningshäfte. Senast uppdaterad: 22 oktober 2012 Version 1.0d
Datorsystem Övningshäfte Senast uppdaterad: 22 oktober 2012 Version 1.0d Innehåll Innehåll i 1 Introduktion 1 1.1 Errata............................................... 1 2 Datorns grunder 2 2.1 Övningsuppgifter.........................................
a = a a a a a a ± ± ± ±500
4.1 Felanalys Vill man hårddra det hela, kan man påstå att det inte finns några tal i den tillämpade matematiken, bara intervall. Man anger till exempel inte ett uppmätt värde till 134.78 meter utan att
TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1
Halmstad University School of Information Science, Computer and Electrical Engineering Tomas Nordström, CC-lab TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Datum: 2012-05- 23 Tid och plats: 9:00 13:00 i
DEC Alpha instruktions Arkitektur
DEC Alpha instruktions Arkitektur David Ekberg December 4, 2017 Innehållsförteckning 1 Sammanfattning...3 2 Bakgrund...3 3 Syfte...3 4 Pipeline...4 4.1 Datatyper...4 4.2 Instruktions arkitektur...5 5 Slutsats...6
Feluppskattning och räknenoggrannhet
Vetenskapliga beräkningar III 10 Kapitel 2. Feluppskattning och räknenoggrannhet Sedan datorerna togs i bruk på 1950 talet, har det blivit möjligt att utföra beräkningar i långt större skala än tidigare.
Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln
Matlab-föreläsning (4), 10 september, 015 Innehåll m-filer (script) - fortsättning från föreläsning 1 In- och utmatning Sekvenser, vektorer och matriser Upprepning med for-slingor (inledning) Matlab-script
Tenta i Digitalteknik
Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2011-08-26 Skrivtid 9.00-14.00 Maximalt resultat 50 poäng Godkänt resultat 25 poäng Jourhavande lärare Per Lindgren Tel 070 376 8150 Tillåtna hjälpmedel
Kapitel 2. Feluppskattning och räknenoggrannhet
Kapitel 2. Feluppskattning och räknenoggrannhet Sedan datorerna togs i bruk på 1950 talet, har det blivit möjligt att utföra beräkningar i långt större skala än tidigare. Liksom vid beräkningar för hand
Datorsystem. Tentamen 2011-10-29
Datorsystem Tentamen 2011-10-29 Instruktioner Samtliga svar skall vara motiverade och läsbara. Eventuella tabeller och beräkningar som används för att nå svaret ska också finnas med i lösningen. Ett svar
Lösningsanvisningar till de icke obligatoriska workoutuppgifterna
Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Linjära system 7. (a) Falskt. Kondition är en egenskap hos problemet oberoende av precisionen i beräkningarna. (b) Falskt. Pivotering påverkar
DIGITALA TAL OCH BOOLESK ALGEBRA
DIGITALA TAL OCH BOOLESK ALGEBRA Innehåll Talsystem och koder Aritmetik för inära tal Grundläggande logiska operationer Logiska grindar Definitioner i Boolesk algera Räknelagar BINÄRA TALSYSTEMET Binärt
Sammanfattninga av kursens block inför tentan
FÖRELÄSNING 14 Sammanfattninga av kursens block inför tentan BILD Vi har jobbat med numerisk metoder, datorprogram och tolkning av lösning. Numeriska metoder BILD olika områden: Linjära ekvationssytem,
Matriser och Inbyggda funktioner i Matlab
Matematiska vetenskaper 2010/2011 Matriser och Inbyggda funktioner i Matlab 1 Inledning Vi skall denna vecka se på matriser och funktioner som är inbyggda i Matlab, dels (elementära) matematiska funktioner
Mer om funktioner och grafik i Matlab
CTH/GU 2/22 Matematiska vetenskaper Inledning Mer om funktioner och grafik i Matlab Först skall vi se lite på funktioner som redan finns i Matlab, (elementära) matematiska funktioner som sinus och cosinus
Hantering av hazards i pipelines
Datorarkitektur med operativsystem Hantering av hazards i pipelines Lisa Arvidsson IDA2 Inlämningsdatum: 2018-12-05 Abstract En processor som använder pipelining kan exekvera ett flertal instruktioner
Linjära ekvationssystem
Föreläsning 3 Linjära ekvationssystem Gausselimination Vanlig gausselimination för det linjära ekvationssystemet Ax = b utgår från den utökade matrisen [A b] och applicerar elementära radoperationer på
AD-DA-omvandlare. Mätteknik. Ville Jalkanen. ville.jalkanen@tfe.umu.se 1
AD-DA-omvandlare Mätteknik Ville Jalkanen ville.jalkanen@tfe.umu.se Inledning Analog-digital (AD)-omvandling Digital-analog (DA)-omvandling Varför AD-omvandling? analog, tidskontinuerlig signal Givare/
Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler
Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1. Hur många unsigned integers kan man göra med n bitar? Vilket talområde får dessa
Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2
Hyper Threading Intels implementation av SMT Datorarkitekturer med operativsystem - EITF60 Felix Danielsson IDA2 Sammanfattning Simultaneous multithreading (SMT) är en teknik som används i processorer
Linjära ekvationssystem
Linjära ekvationssystem Gausselimination Vanlig gausselimination för det linjära ekvationssystemet Ax = b utgår från den utökade matrisen [A b] och applicerar elementära radoperationer på denna för att
Talrepresentation. Heltal, positiva heltal (eng. integers)
Talrepresentation 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
MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...
Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»
Kapitel 3. Approximation av funktioner
Kapitel 3. Approximation av funktioner Vi skall nu övergå till att beskriva, hur man i praktiken numeriskt beräknar funktioner. I allmänhet kan inte ens elementära funktioner såsom sinus- och cosinusfunktionerna
Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp
Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp Institutionen för elektro- och informationsteknik Campus Helsingborg, LTH 2016-12-22 8.00-13.00 Uppgifterna i tentamen ger totalt 60
SVAR TILL TENTAMEN I DATORSYSTEM, HT2013
Rahim Rahmani (rahim@dsv.su.se) Division of SAS Department of Computer and Systems Sciences Stockholm University SVAR TILL TENTAMEN I DATORSYSTEM, HT2013 Tentamensdatum: 2013-10-30 Tentamen består av totalt
Matriser och Inbyggda funktioner i Matlab
CTH/GU STUDIO 1 TMV036a - 2012/2013 Matematiska vetenskaper Matriser och Inbyggda funktioner i Matlab Analys och Linjär Algebra, del A, K1/Kf1/Bt1 Moore: 2.3, 3.1-3.4, 3..1-3.., 4.1, 7.4 1 Inledning Nu
Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
Talrepresentation. Ett tal kan representeras binärt på många sätt. De vanligaste taltyperna som skall representeras är:
Talrepresentation Ett tal kan representeras inärt på många sätt. De vanligaste taltyperna som skall representeras är: Heltal, positiva heltal (eng. integers ett-komplementet, två-komplementet, sign-magnitude
Digital elektronik CL0090
Digital elektronik CL9 Föreläsning 3 27--29 8.5 2. My Talsystem Binära tal har basen 2 Exempel Det decimala talet 9 motsvarar 2 Den första ettan är MSB, Most Significant Bit, den andra ettan är LSB Least
Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45
Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45 Adderare Addition av två tal innebär att samma förfarande upprepas för varje position i talet. För varje position sakapas en summasiffra oh en minnessiffra.
2320 a. Svar: C = 25. Svar: C = 90
2320 a Utgå ifrån y = sin x Om vi subtraherar 25 från vinkeln x, så kommer den att "senareläggas" med 25 och således förskjuts grafen åt höger y = sin(x 25 ) Svar: C = 25 b Utgå ifrån y = sin x Om vi adderar
Resträkning och ekvationer
64 Resträkning och ekvationer Torsten Ekedahl Stockholms Universitet Beskrivning av uppgiften. Specialarbetet består i att sätta sig in i hur man räknar med rester vid division med primtal, hur man löser
Mer om funktioner och grafik i Matlab
CTH/GU 2017/2018 Matematiska vetenskaper Mer om funktioner och grafik i Matlab 1 Inledning Först skall vi se lite på funktioner som redan finns i Matlab, (elementära) matematiska funktioner som sinus och
F2 Binära tal EDA070 Datorer och datoranvändning
Datarepresentation F2 Binära tal EDA070 Roger Henriksson I en dator lagras och behandlas all information i form av binära tal ettor och nollor. En binär siffra kallas för en bit BInary digit. Ett antal
Pipelining i Intel Pentium II
Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.
GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse
GRUNDER I VHDL Innehåll Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse KOMPONENTMODELL Modell för att beskriva komponenter Externt interface Intern funktion
Envariabelanalys 5B1147 MATLAB-laboration Derivator
Envariabelanalys 5B1147 MATLAB-laboration Derivator Sanna Eskelinen eskelinen.sanna@gmail.com Sonja Hiltunen sonya@gmail.com Handledare: Karim Dao Uppgift 15 Problem: Beräkna numeriskt derivatan till arctan
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)
Datorsystem 2 CPU Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur CPU Visning av Akka (för de som är intresserade) En dators arkitektur På en lägre nivå kan vi ha lite olika
Binär addition papper och penna metod
EDA4 - Digital och Datorteknik 9/ EDA 4 - Digital och Datorteknik 8/9 Dagens föreläsning: Aritmetik, lärobok kapitel 6 Ur innehållet: hur man adderar och subtraherar tal i det binära talsystemet hur man
Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647
Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel
Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4
Ext-6 (Ver 2010-08-09) 1(5) Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4 Tecken-beloppsrepresentation av heltal Hur skall man kunna räkna med negativa tal i ett digitalt system,
5B1134 Matematik och modeller
KTH Matematik 1 5B1134 Matematik och modeller 2006-09-11 2 Andra veckan Trigonometri Veckans begrepp enhetscirkeln, trigonometriska ettan trigonometrisk funktion, sinuskurva period, fasförskjutning, vinkelhastighet
Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram
Mål Lab 2: Underprogram Följande laboration introducerar underprogram; procedurer, funktioner och operatorer. I denna laboration kommer du att lära dig: Hur man skriver underprogram och hur dessa anropas.
Simulering med ModelSim En kort introduktion
Linköpings universitet Institutionen för systemteknik Laborationer i digitalteknik Datorteknik 2017 Simulering med ModelSim En kort introduktion TSEA22 Digitalteknik D Linköpings universitet SE-581 83
Digitala projekt rapport
Digitala projekt rapport Alexander Westrup, d04aw@student.lth.se Martin Sandgren, d04ms@student.lth.se 4 december 2007 Innehåll 1 Abstract 1 2 Inledning 1 3 Arbetsgång 1 4 Hårdvara 1 4.1 Processor...............................
Lösningsanvisningar till de icke obligatoriska workoutuppgifterna
Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Linjära system 7. (a) Falskt. Kondition är en egenskap hos problemet oberoende av precisionen i beräkningarna. (b) Falskt. Pivotering påverkar
Signalanalys med snabb Fouriertransform
Laboration i Fourieranalys, MVE030 Signalanalys med snabb Fouriertransform Den här laborationen har två syften: dels att visa lite på hur den snabba Fouriertransformen fungerar, och lite om vad man bör
Denna uppdelning är ovanlig i Sverige De hela talen (Både positiva och negativa) Irrationella tal (tal som ej går att skriva som bråk)
UMEÅ UNIVERSITET Institutionen för matematik och matematisk statistik Olof Johansson, Nina Rudälv 2006-10-24 SÄL 1-10p Avsnitt 1.1 Grundläggande begrepp Detta avsnitt behandlar de symboler som används
Shannon-Fano-Elias-kodning
Datakompression fö 5 p.1 Shannon-Fano-Elias-kodning Antag att vi har en minnesfri källa X i som tar värden i {1, 2,...,L}. Antag att sannolikheterna för alla symboler är strikt positiva: p(i) > 0, i. Fördelningsfunktionen
Tekniska beräkningar. Vad är tekn beräkningar? Vad är beräkningsvetenskap? Informationsteknologi. Informationsteknologi
Tekniska beräkningar stefan@it.uu.se Vad är tekn beräkningar? Finns några olika namn för ungefär samma sak Numerisk analys (NA) Klassisk NA ligger nära matematiken: sats bevis, sats bevis, mer teori Tekniska
Lösandet av ekvationer utgör ett centralt område inom matematiken, kanske främst den tillämpade.
1.1 Ekvationslösning Lösandet av ekvationer utgör ett centralt område inom matematiken, kanske främst den tillämpade. 1.1.1 Polynomekvationer Ett polynom i en variabel x är som bekant en summa av termer
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 1 Kursinformation, introduktion, aritmetik Innehåll Hur kan en dator se ut? Vilka är kursens mål? Hur är denna kurs upplagd? Hur ser ett datorsystem ut från applikation till hårdvara?
Innehåll. Datorteknik. Abstraktionsnivå 1. Spelkonsol - blockschema. Spelkonsol abstraktionsnivå 2. Abstraktionsnivå 2
Innehåll Datorteknik Föreläsning 1 Hur kan en dator se ut? Vilka är kursens mål? Hur är denna kurs upplagd? Hur ser ett datorsystem ut från applikation till hårdvara? Vilken är relationen mellan programvara
LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer
LUNDS UNIVERSITET Parallell exekvering av Float32 och INT32 operationer Samuel Molin Kursansvarig: Erik Larsson Datum 2018-12-05 Referat Grafikkort utför många liknande instruktioner parallellt då typiska
Matematik EXTRAUPPGIFTER FÖR SKOLÅR 7-9
Matematik EXTRAUPPGIFTER FÖR SKOLÅR 7-9 Matematik Extrauppgifter för skolår 7-9 Pärm med kopieringsunderlag. Fri kopieringsrätt inom utbildningsenheten! Författare: Mikael Sandell Copyright 00 Sandell
Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform
Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform Den laborationen har syften: dels att visa lite hur den snabba Fouriertransformen fungerar, och lite om vad man den an dels att
Digital- och datorteknik
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
Trigonometriska funktioner och deras derivata
Trigonometriska funktioner och deras derivata Tid: 80 minuter Hjälpmedel: Grafräknare, Formelblad & Linjal 1. 2 1 1,5 π 2π Amplituden är "höjden" på kurvan från jämviktsläget. Här gäller att amplituden
SF1661 Perspektiv på matematik Tentamen 24 oktober 2013 kl Svar och lösningsförslag. z 11. w 3. Lösning. De Moivres formel ger att
SF11 Perspektiv på matematik Tentamen 4 oktober 013 kl 14.00 19.00 Svar och lösningsförslag (1) Låt z = (cos π + i sin π ) och låt w = 1(cos π 3 + i sin π 3 ). Beräkna och markera talet z11 w 3 z 11 w
Linjär algebra med tillämpningar, lab 1
Linjär algebra med tillämpningar, lab 1 Innehåll Per Jönsson Fakulteten för Teknik och Samhälle, 2013 Uppgifterna i denna laboration täcker kapitel 1-3 i läroboken. Läs igenom motsvarande kapitel. Sitt
Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor
Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor Sammanfattning: Utvecklingen från processor till processor är inte lätt. Det finns många beslut som måste tas när det gäller kompatibilitet,
Digital- och datorteknik
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
Konvergens för iterativa metoder
Konvergens för iterativa metoder 1 Terminologi Iterativa metoder används för att lösa olinjära (och ibland linjära) ekvationssystem numeriskt. De utgår från en startgissning x 0 och ger sedan en följd
Titel Mall för Examensarbeten (Arial 28/30 point size, bold)
Titel Mall för Examensarbeten (Arial 28/30 point size, bold) SUBTITLE - Arial 16 / 19 pt FÖRFATTARE FÖRNAMN OCH EFTERNAMN - Arial 16 / 19 pt KTH ROYAL INSTITUTE OF TECHNOLOGY ELEKTROTEKNIK OCH DATAVETENSKAP
NUV 647E. Digitalteknik och Datorarkitektur 5hp. 3x12 = 36 2x12 = 24 1x12 = 12 0x12 = 18
Digital kommer från latinets digitus som betyder "finger" eller "tå" (jfr engelskans digit). Uttrycket kommer från den gamla seden att räkna på fingrarna, och avslöjar att det rör sig om räkning med diskreta
Tentamen i Envariabelanalys 2
Linköpings universitet Matematiska institutionen Kurskod: TATA42 Provkod: TEN Tentamen i Envariabelanalys 2 206 0 8, 4 9 Inga hjälpmedel. Lösningarna ska vara fullständiga, välmotiverade, ordentligt skrivna
Avsnitt 5, introduktion.
KTHs Sommarmatematik Introduktion 5:1 5:1 Avsnitt 5, introduktion. Radianer Vinkelmåttet radianer är i matematiska sammanhang bättre än grader, särskilt när man sysslar med de trigonometriska funktionerna
Räkna med C# Inledande programmering med C# (1DV402)
Räkna med C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i verket
Maskinorienterad programmering. Kompendium: Aritmetik för HC12 Roger Johansson, 2013
Maskinorienterad programmering Kompendium: Aritmetik för HC12 Roger Johansson, 2013 0 Aritmetik för HC12 1 Aritmetik 32 bitars multiplikation/division med 16-bitars processor. IEEE-754, flyttalsrepresentation
Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga
Datorarkitektur I Tentamen Lördag 10 April 2010 Ekonomikum, B:154, klockan 09:00 14:00 Examinator: Karl Marklund 0704 73 32 17 karl.marklund@it.uu.se Tillåtna hjälpmedel: Penna Radergummi Linjal Följande